From 994294d03479c8b574fd8b9a2ed3e782de112f54 Mon Sep 17 00:00:00 2001 From: Sam McCord Date: Thu, 13 Jun 2024 11:18:47 -0600 Subject: [PATCH] chore(build): add artifacts, remove ts conditions --- .github/workflows/on-push-to-main.yml | 49 ++++++++++--------- .gitignore | 1 + README.md | 25 ++++++++++ packages/evm/.gitignore | 2 +- .../interfaces/IERC1271.sol/IERC1271.dbg.json | 2 +- .../IERC1155Errors.dbg.json | 2 +- .../draft-IERC6093.sol/IERC20Errors.dbg.json | 2 +- .../draft-IERC6093.sol/IERC721Errors.dbg.json | 2 +- .../token/ERC1155/ERC1155.sol/ERC1155.d.ts | 18 +++++++ .../ERC1155/ERC1155.sol/ERC1155.dbg.json | 2 +- .../ERC1155/IERC1155.sol/IERC1155.dbg.json | 2 +- .../IERC1155Receiver.dbg.json | 2 +- .../IERC1155MetadataURI.dbg.json | 2 +- .../ERC1155Utils.sol/ERC1155Utils.dbg.json | 2 +- .../utils/Arrays.sol/Arrays.dbg.json | 2 +- .../utils/Context.sol/Context.dbg.json | 2 +- .../contracts/utils/Panic.sol/Panic.dbg.json | 2 +- .../SlotDerivation.dbg.json | 2 +- .../StorageSlot.sol/StorageSlot.dbg.json | 2 +- .../introspection/ERC165.sol/ERC165.dbg.json | 2 +- .../IERC165.sol/IERC165.dbg.json | 2 +- .../utils/math/Math.sol/Math.dbg.json | 2 +- .../utils/math/SafeCast.sol/SafeCast.dbg.json | 2 +- .../accounts/Receiver.sol/Receiver.dbg.json | 2 +- .../@solady/auth/Ownable.sol/Ownable.d.ts | 18 +++++++ .../@solady/auth/Ownable.sol/Ownable.dbg.json | 2 +- .../OwnableRoles.sol/OwnableRoles.dbg.json | 2 +- .../@solady/tokens/ERC20.sol/ERC20.dbg.json | 2 +- .../@solady/tokens/ERC721.sol/ERC721.dbg.json | 2 +- .../Initializable.sol/Initializable.dbg.json | 2 +- .../utils/LibClone.sol/LibClone.dbg.json | 2 +- .../utils/LibPRNG.sol/LibPRNG.dbg.json | 2 +- .../utils/LibString.sol/LibString.dbg.json | 2 +- .../@solady/utils/LibZip.sol/LibZip.dbg.json | 2 +- .../ReentrancyGuard.dbg.json | 2 +- .../SafeTransferLib.dbg.json | 2 +- .../SignatureCheckerLib.dbg.json | 2 +- ... => 0ab469e910ae3035995ca09344e77bdd.json} | 2 +- .../BoostCore.sol/BoostCore.dbg.json | 2 +- .../BoostRegistry.sol/BoostRegistry.dbg.json | 2 +- .../actions/Action.sol/Action.dbg.json | 2 +- .../ContractAction.dbg.json | 2 +- .../ERC721MintAction.dbg.json | 2 +- .../AllowList.sol/AllowList.dbg.json | 2 +- .../SimpleAllowList.dbg.json | 2 +- .../SimpleDenyList.dbg.json | 2 +- .../budgets/Budget.sol/Budget.dbg.json | 2 +- .../SimpleBudget.sol/SimpleBudget.dbg.json | 2 +- .../VestingBudget.sol/VestingBudget.dbg.json | 2 +- .../AllowListIncentive.dbg.json | 2 +- .../CGDAIncentive.sol/CGDAIncentive.dbg.json | 2 +- .../ERC1155Incentive.d.ts | 4 +- .../ERC1155Incentive.dbg.json | 2 +- .../ERC1155Incentive.json | 4 +- .../ERC20Incentive.dbg.json | 2 +- .../Incentive.sol/Incentive.dbg.json | 2 +- .../PointsIncentive.dbg.json | 2 +- .../shared/BoostError.sol/BoostError.dbg.json | 2 +- .../shared/BoostLib.sol/BoostLib.dbg.json | 2 +- .../shared/Cloneable.sol/Cloneable.dbg.json | 2 +- .../shared/Mocks.sol/MockERC1155.dbg.json | 2 +- .../shared/Mocks.sol/MockERC20.dbg.json | 2 +- .../shared/Mocks.sol/MockERC721.dbg.json | 2 +- .../tokens/Points.sol/Points.dbg.json | 2 +- .../SignerValidator.dbg.json | 2 +- .../Validator.sol/Validator.dbg.json | 2 +- packages/evm/package.json | 5 +- packages/sdk/package.json | 5 +- tsconfig.json | 1 - 69 files changed, 154 insertions(+), 94 deletions(-) rename packages/evm/artifacts/build-info/{77c946d6b220784dccfddb6cde255b9d.json => 0ab469e910ae3035995ca09344e77bdd.json} (61%) diff --git a/.github/workflows/on-push-to-main.yml b/.github/workflows/on-push-to-main.yml index 89df0619..c768008d 100644 --- a/.github/workflows/on-push-to-main.yml +++ b/.github/workflows/on-push-to-main.yml @@ -57,32 +57,33 @@ jobs: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN }} - docs: - needs: check - name: Deploy Docs - runs-on: ubuntu-latest + # TODO: do we want this? + # docs: + # needs: check + # name: Deploy Docs + # runs-on: ubuntu-latest - permissions: - contents: write - pages: write - id-token: write + # permissions: + # contents: write + # pages: write + # id-token: write - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive + # steps: + # - uses: actions/checkout@v4 + # with: + # submodules: recursive - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: nightly + # - name: Install Foundry + # uses: foundry-rs/foundry-toolchain@v1 + # with: + # version: nightly - - name: Build Documentation (mdBook) - working-directory: ./packages/evm - run: forge doc --build + # - name: Build Documentation (mdBook) + # working-directory: ./packages/evm + # run: forge doc --build - - name: Publish Documentation - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: ./packages/evm/docs/book - token: ${{ secrets.GITHUB_TOKEN }} + # - name: Publish Documentation + # uses: JamesIves/github-pages-deploy-action@v4 + # with: + # folder: ./packages/evm/docs/book + # token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 57a4dd0a..6849068f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist coverage .cache tsconfig.tsbuildinfo +.DS_Store diff --git a/README.md b/README.md index 9cdb3945..f3eb6b42 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # Boost Protocol +- [Boost Protocol](#boost-protocol) + - [Overview](#overview) + - [How It Works](#how-it-works) + - [Boost Creation](#boost-creation) + - [Boost Participation](#boost-participation) + - [Development](#development) + - [Prerequisites](#prerequisites) + - [Getting Started](#getting-started) + [![Documentation](https://img.shields.io/badge/documentation-gh--pages-blue)](https://rabbitholegg.github.io/boost-protocol/index.html) [![Test Status](https://github.com/rabbitholegg/boost-protocol/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/rabbitholegg/boost-protocol/actions/workflows/test.yml) @@ -66,3 +75,19 @@ The Boost Protocol is designed to be flexible and customizable, allowing develop 3. **Submit Proof of Completion**: If the Boost's Action can't be immediately validated on-chain from the Validator contract, the user must submit proof of completion to the Validator. The proof can take many forms, including signatures, merkle proofs, and ZK proofs. The Validator will verify the proof and attest to the user's completion of the Boost. 4. **Claim Incentives**: Once the Validator has confirmed the user has completed the Boost's Action, the user can claim the Incentives. The Incentives can be claimed immediately or over time, depending on the rules defined by the Boost creator. Once claimed, the Incentives are transferred to the user's wallet. + +## Development + +### Prerequisites + +- [Node ~20](https://github.com/nvm-sh/nvm) +- [PNPM](https://pnpm.io/installation) +- [Foundry](https://book.getfoundry.sh/getting-started/installation) + +### Getting Started + +Clone the repository - `git clone https://github.com/rabbitholegg/boost-protocol` + +Install dependencies - `pnpm install`. This command will also initialize all submodules required for `evm` package development. + +Build packages - `turbo build` or `pnpm build` diff --git a/packages/evm/.gitignore b/packages/evm/.gitignore index 0564aa28..fa4ecd65 100644 --- a/packages/evm/.gitignore +++ b/packages/evm/.gitignore @@ -17,4 +17,4 @@ docs/ # Dotenv file .env -sdk/ \ No newline at end of file +sdk/ diff --git a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/IERC1271.sol/IERC1271.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/IERC1271.sol/IERC1271.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/IERC1271.sol/IERC1271.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/IERC1271.sol/IERC1271.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.d.ts b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.d.ts index 5d1637d4..8740e80b 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.d.ts +++ b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.d.ts @@ -434,12 +434,25 @@ export interface ERC1155$Type { } declare module "@nomicfoundation/hardhat-viem/types" { + export function deployContract( + contractName: "ERC1155", + constructorArgs?: [], + config?: DeployContractConfig + ): Promise>; export function deployContract( contractName: "@openzeppelin/contracts/token/ERC1155/ERC1155.sol:ERC1155", constructorArgs?: [], config?: DeployContractConfig ): Promise>; + export function sendDeploymentTransaction( + contractName: "ERC1155", + constructorArgs?: [], + config?: SendDeploymentTransactionConfig + ): Promise<{ + contract: GetContractReturnType; + deploymentTransaction: GetTransactionReturnType; + }>; export function sendDeploymentTransaction( contractName: "@openzeppelin/contracts/token/ERC1155/ERC1155.sol:ERC1155", constructorArgs?: [], @@ -449,6 +462,11 @@ declare module "@nomicfoundation/hardhat-viem/types" { deploymentTransaction: GetTransactionReturnType; }>; + export function getContractAt( + contractName: "ERC1155", + address: Address, + config?: GetContractAtConfig + ): Promise>; export function getContractAt( contractName: "@openzeppelin/contracts/token/ERC1155/ERC1155.sol:ERC1155", address: Address, diff --git a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.dbg.json index 092c4fb2..eec936ef 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.dbg.json index 092c4fb2..eec936ef 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.dbg.json index 092c4fb2..eec936ef 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.dbg.json index ce3e466b..7f69e8fe 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol/ERC1155Utils.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol/ERC1155Utils.dbg.json index ce3e466b..7f69e8fe 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol/ERC1155Utils.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol/ERC1155Utils.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/Panic.sol/Panic.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/Panic.sol/Panic.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/Panic.sol/Panic.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/Panic.sol/Panic.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/SlotDerivation.sol/SlotDerivation.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/SlotDerivation.sol/SlotDerivation.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/SlotDerivation.sol/SlotDerivation.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/SlotDerivation.sol/SlotDerivation.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json index ec908840..230e8bd0 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json index 092c4fb2..eec936ef 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json index 092c4fb2..eec936ef 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json index 092c4fb2..eec936ef 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.dbg.json b/packages/evm/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.dbg.json index 092c4fb2..eec936ef 100644 --- a/packages/evm/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.dbg.json +++ b/packages/evm/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/accounts/Receiver.sol/Receiver.dbg.json b/packages/evm/artifacts/@solady/accounts/Receiver.sol/Receiver.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/accounts/Receiver.sol/Receiver.dbg.json +++ b/packages/evm/artifacts/@solady/accounts/Receiver.sol/Receiver.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.d.ts b/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.d.ts index b6caccc9..a0bcc419 100644 --- a/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.d.ts +++ b/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.d.ts @@ -164,12 +164,25 @@ export interface Ownable$Type { } declare module "@nomicfoundation/hardhat-viem/types" { + export function deployContract( + contractName: "Ownable", + constructorArgs?: [], + config?: DeployContractConfig + ): Promise>; export function deployContract( contractName: "@solady/auth/Ownable.sol:Ownable", constructorArgs?: [], config?: DeployContractConfig ): Promise>; + export function sendDeploymentTransaction( + contractName: "Ownable", + constructorArgs?: [], + config?: SendDeploymentTransactionConfig + ): Promise<{ + contract: GetContractReturnType; + deploymentTransaction: GetTransactionReturnType; + }>; export function sendDeploymentTransaction( contractName: "@solady/auth/Ownable.sol:Ownable", constructorArgs?: [], @@ -179,6 +192,11 @@ declare module "@nomicfoundation/hardhat-viem/types" { deploymentTransaction: GetTransactionReturnType; }>; + export function getContractAt( + contractName: "Ownable", + address: Address, + config?: GetContractAtConfig + ): Promise>; export function getContractAt( contractName: "@solady/auth/Ownable.sol:Ownable", address: Address, diff --git a/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.dbg.json b/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.dbg.json +++ b/packages/evm/artifacts/@solady/auth/Ownable.sol/Ownable.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/auth/OwnableRoles.sol/OwnableRoles.dbg.json b/packages/evm/artifacts/@solady/auth/OwnableRoles.sol/OwnableRoles.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/auth/OwnableRoles.sol/OwnableRoles.dbg.json +++ b/packages/evm/artifacts/@solady/auth/OwnableRoles.sol/OwnableRoles.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/tokens/ERC20.sol/ERC20.dbg.json b/packages/evm/artifacts/@solady/tokens/ERC20.sol/ERC20.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/tokens/ERC20.sol/ERC20.dbg.json +++ b/packages/evm/artifacts/@solady/tokens/ERC20.sol/ERC20.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/tokens/ERC721.sol/ERC721.dbg.json b/packages/evm/artifacts/@solady/tokens/ERC721.sol/ERC721.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/tokens/ERC721.sol/ERC721.dbg.json +++ b/packages/evm/artifacts/@solady/tokens/ERC721.sol/ERC721.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/Initializable.sol/Initializable.dbg.json b/packages/evm/artifacts/@solady/utils/Initializable.sol/Initializable.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/Initializable.sol/Initializable.dbg.json +++ b/packages/evm/artifacts/@solady/utils/Initializable.sol/Initializable.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/LibClone.sol/LibClone.dbg.json b/packages/evm/artifacts/@solady/utils/LibClone.sol/LibClone.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/LibClone.sol/LibClone.dbg.json +++ b/packages/evm/artifacts/@solady/utils/LibClone.sol/LibClone.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/LibPRNG.sol/LibPRNG.dbg.json b/packages/evm/artifacts/@solady/utils/LibPRNG.sol/LibPRNG.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/LibPRNG.sol/LibPRNG.dbg.json +++ b/packages/evm/artifacts/@solady/utils/LibPRNG.sol/LibPRNG.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/LibString.sol/LibString.dbg.json b/packages/evm/artifacts/@solady/utils/LibString.sol/LibString.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/LibString.sol/LibString.dbg.json +++ b/packages/evm/artifacts/@solady/utils/LibString.sol/LibString.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/LibZip.sol/LibZip.dbg.json b/packages/evm/artifacts/@solady/utils/LibZip.sol/LibZip.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/LibZip.sol/LibZip.dbg.json +++ b/packages/evm/artifacts/@solady/utils/LibZip.sol/LibZip.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json b/packages/evm/artifacts/@solady/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +++ b/packages/evm/artifacts/@solady/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/SafeTransferLib.sol/SafeTransferLib.dbg.json b/packages/evm/artifacts/@solady/utils/SafeTransferLib.sol/SafeTransferLib.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/SafeTransferLib.sol/SafeTransferLib.dbg.json +++ b/packages/evm/artifacts/@solady/utils/SafeTransferLib.sol/SafeTransferLib.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/@solady/utils/SignatureCheckerLib.sol/SignatureCheckerLib.dbg.json b/packages/evm/artifacts/@solady/utils/SignatureCheckerLib.sol/SignatureCheckerLib.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/@solady/utils/SignatureCheckerLib.sol/SignatureCheckerLib.dbg.json +++ b/packages/evm/artifacts/@solady/utils/SignatureCheckerLib.sol/SignatureCheckerLib.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/build-info/77c946d6b220784dccfddb6cde255b9d.json b/packages/evm/artifacts/build-info/0ab469e910ae3035995ca09344e77bdd.json similarity index 61% rename from packages/evm/artifacts/build-info/77c946d6b220784dccfddb6cde255b9d.json rename to packages/evm/artifacts/build-info/0ab469e910ae3035995ca09344e77bdd.json index 4bab0da9..dbac7431 100644 --- a/packages/evm/artifacts/build-info/77c946d6b220784dccfddb6cde255b9d.json +++ b/packages/evm/artifacts/build-info/0ab469e910ae3035995ca09344e77bdd.json @@ -1 +1 @@ -{"id":"77c946d6b220784dccfddb6cde255b9d","_format":"hh-sol-build-info-1","solcVersion":"0.8.25","solcLongVersion":"0.8.25+commit.b61c2a91","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/interfaces/IERC1271.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1271.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-1271 standard signature validation method for\n * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n */\ninterface IERC1271 {\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param hash Hash of the data to be signed\n * @param signature Signature byte array associated with _data\n */\n function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue);\n}\n"},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/ERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"./IERC1155.sol\";\nimport {IERC1155MetadataURI} from \"./extensions/IERC1155MetadataURI.sol\";\nimport {ERC1155Utils} from \"./utils/ERC1155Utils.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {Arrays} from \"../../utils/Arrays.sol\";\nimport {IERC1155Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the basic standard multi-token.\n * See https://eips.ethereum.org/EIPS/eip-1155\n * Originally based on code by Enjin: https://github.com/enjin/erc-1155\n */\nabstract contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI, IERC1155Errors {\n using Arrays for uint256[];\n using Arrays for address[];\n\n mapping(uint256 id => mapping(address account => uint256)) private _balances;\n\n mapping(address account => mapping(address operator => bool)) private _operatorApprovals;\n\n // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json\n string private _uri;\n\n /**\n * @dev See {_setURI}.\n */\n constructor(string memory uri_) {\n _setURI(uri_);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC1155).interfaceId ||\n interfaceId == type(IERC1155MetadataURI).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC1155MetadataURI-uri}.\n *\n * This implementation returns the same URI for *all* token types. It relies\n * on the token type ID substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n *\n * Clients calling this function must replace the `\\{id\\}` substring with the\n * actual token type ID.\n */\n function uri(uint256 /* id */) public view virtual returns (string memory) {\n return _uri;\n }\n\n /**\n * @dev See {IERC1155-balanceOf}.\n */\n function balanceOf(address account, uint256 id) public view virtual returns (uint256) {\n return _balances[id][account];\n }\n\n /**\n * @dev See {IERC1155-balanceOfBatch}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] memory accounts,\n uint256[] memory ids\n ) public view virtual returns (uint256[] memory) {\n if (accounts.length != ids.length) {\n revert ERC1155InvalidArrayLength(ids.length, accounts.length);\n }\n\n uint256[] memory batchBalances = new uint256[](accounts.length);\n\n for (uint256 i = 0; i < accounts.length; ++i) {\n batchBalances[i] = balanceOf(accounts.unsafeMemoryAccess(i), ids.unsafeMemoryAccess(i));\n }\n\n return batchBalances;\n }\n\n /**\n * @dev See {IERC1155-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC1155-isApprovedForAll}.\n */\n function isApprovedForAll(address account, address operator) public view virtual returns (bool) {\n return _operatorApprovals[account][operator];\n }\n\n /**\n * @dev See {IERC1155-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeTransferFrom(from, to, id, value, data);\n }\n\n /**\n * @dev See {IERC1155-safeBatchTransferFrom}.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeBatchTransferFrom(from, to, ids, values, data);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n * (or `to`) is the zero address.\n *\n * Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n * or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n * - `ids` and `values` must have the same length.\n *\n * NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead.\n */\n function _update(address from, address to, uint256[] memory ids, uint256[] memory values) internal virtual {\n if (ids.length != values.length) {\n revert ERC1155InvalidArrayLength(ids.length, values.length);\n }\n\n address operator = _msgSender();\n\n for (uint256 i = 0; i < ids.length; ++i) {\n uint256 id = ids.unsafeMemoryAccess(i);\n uint256 value = values.unsafeMemoryAccess(i);\n\n if (from != address(0)) {\n uint256 fromBalance = _balances[id][from];\n if (fromBalance < value) {\n revert ERC1155InsufficientBalance(from, fromBalance, value, id);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance\n _balances[id][from] = fromBalance - value;\n }\n }\n\n if (to != address(0)) {\n _balances[id][to] += value;\n }\n }\n\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n emit TransferSingle(operator, from, to, id, value);\n } else {\n emit TransferBatch(operator, from, to, ids, values);\n }\n }\n\n /**\n * @dev Version of {_update} that performs the token acceptance check by calling\n * {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n * contains code (eg. is a smart contract at the moment of execution).\n *\n * IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n * update to the contract state after this function would break the check-effect-interaction pattern. Consider\n * overriding {_update} instead.\n */\n function _updateWithAcceptanceCheck(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal virtual {\n _update(from, to, ids, values);\n if (to != address(0)) {\n address operator = _msgSender();\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n ERC1155Utils.checkOnERC1155Received(operator, from, to, id, value, data);\n } else {\n ERC1155Utils.checkOnERC1155BatchReceived(operator, from, to, ids, values, data);\n }\n }\n }\n\n /**\n * @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n * - `ids` and `values` must have the same length.\n */\n function _safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev Sets a new URI for all token types, by relying on the token type ID\n * substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n *\n * By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n * URI or any of the values in the JSON file at said URI will be replaced by\n * clients with the token type ID.\n *\n * For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n * interpreted by clients as\n * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n * for token type ID 0x4cce0.\n *\n * See {uri}.\n *\n * Because these URIs cannot be meaningfully represented by the {URI} event,\n * this function emits no events.\n */\n function _setURI(string memory newuri) internal virtual {\n _uri = newuri;\n }\n\n /**\n * @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _mint(address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function _mintBatch(address to, uint256[] memory ids, uint256[] memory values, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens of type `id` from `from`\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n */\n function _burn(address from, uint256 id, uint256 value) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n * - `ids` and `values` must have the same length.\n */\n function _burnBatch(address from, uint256[] memory ids, uint256[] memory values) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC1155InvalidOperator(address(0));\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Creates an array in memory with only one value for each of the elements provided.\n */\n function _asSingletonArrays(\n uint256 element1,\n uint256 element2\n ) private pure returns (uint256[] memory array1, uint256[] memory array2) {\n /// @solidity memory-safe-assembly\n assembly {\n // Load the free memory pointer\n array1 := mload(0x40)\n // Set array length to 1\n mstore(array1, 1)\n // Store the single element at the next word after the length (where content starts)\n mstore(add(array1, 0x20), element1)\n\n // Repeat for next array locating it right after the first array\n array2 := add(array1, 0x40)\n mstore(array2, 1)\n mstore(add(array2, 0x20), element2)\n\n // Update the free memory pointer by pointing after the second array\n mstore(0x40, add(array2, 0x40))\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/extensions/IERC1155MetadataURI.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"../IERC1155.sol\";\n\n/**\n * @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[ERC].\n */\ninterface IERC1155MetadataURI is IERC1155 {\n /**\n * @dev Returns the URI for token type `id`.\n *\n * If the `\\{id\\}` substring is present in the URI, it must be replaced by\n * clients with the actual token type ID.\n */\n function uri(uint256 id) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (token/ERC1155/IERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC-1155 compliant contract, as defined in the\n * https://eips.ethereum.org/EIPS/eip-1155[ERC].\n */\ninterface IERC1155 is IERC165 {\n /**\n * @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\n */\n event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);\n\n /**\n * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n * transfers.\n */\n event TransferBatch(\n address indexed operator,\n address indexed from,\n address indexed to,\n uint256[] ids,\n uint256[] values\n );\n\n /**\n * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n * `approved`.\n */\n event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n\n /**\n * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n *\n * If an {URI} event was emitted for `id`, the standard\n * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n * returned by {IERC1155MetadataURI-uri}.\n */\n event URI(string value, uint256 indexed id);\n\n /**\n * @dev Returns the value of tokens of token type `id` owned by `account`.\n */\n function balanceOf(address account, uint256 id) external view returns (uint256);\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] calldata accounts,\n uint256[] calldata ids\n ) external view returns (uint256[] memory);\n\n /**\n * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n *\n * See {setApprovalForAll}.\n */\n function isApprovedForAll(address account, address operator) external view returns (bool);\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes calldata data) external;\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external;\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/IERC1155Receiver.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface that must be implemented by smart contracts in order to receive\n * ERC-1155 token transfers.\n */\ninterface IERC1155Receiver is IERC165 {\n /**\n * @dev Handles the receipt of a single ERC-1155 token type. This function is\n * called at the end of a `safeTransferFrom` after the balance has been updated.\n *\n * NOTE: To accept the transfer, this must return\n * `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n * (i.e. 0xf23a6e61, or its own function selector).\n *\n * @param operator The address which initiated the transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param id The ID of the token being transferred\n * @param value The amount of tokens being transferred\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n */\n function onERC1155Received(\n address operator,\n address from,\n uint256 id,\n uint256 value,\n bytes calldata data\n ) external returns (bytes4);\n\n /**\n * @dev Handles the receipt of a multiple ERC-1155 token types. This function\n * is called at the end of a `safeBatchTransferFrom` after the balances have\n * been updated.\n *\n * NOTE: To accept the transfer(s), this must return\n * `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n * (i.e. 0xbc197c81, or its own function selector).\n *\n * @param operator The address which initiated the batch transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param ids An array containing ids of each token being transferred (order and length must match values array)\n * @param values An array containing amounts of each token being transferred (order and length must match ids array)\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n */\n function onERC1155BatchReceived(\n address operator,\n address from,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport {IERC1155Receiver} from \"../IERC1155Receiver.sol\";\nimport {IERC1155Errors} from \"../../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Library that provide common ERC-1155 utility functions.\n *\n * See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155].\n */\nlibrary ERC1155Utils {\n /**\n * @dev Performs an acceptance check for the provided `operator` by calling {IERC1155-onERC1155Received}\n * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n *\n * The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n * Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n * the transfer.\n */\n function checkOnERC1155Received(\n address operator,\n address from,\n address to,\n uint256 id,\n uint256 value,\n bytes memory data\n ) internal {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155Received(operator, from, id, value, data) returns (bytes4 response) {\n if (response != IERC1155Receiver.onERC1155Received.selector) {\n // Tokens rejected\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-IERC1155Receiver implementer\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n\n /**\n * @dev Performs a batch acceptance check for the provided `operator` by calling {IERC1155-onERC1155BatchReceived}\n * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n *\n * The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n * Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n * the transfer.\n */\n function checkOnERC1155BatchReceived(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, values, data) returns (\n bytes4 response\n ) {\n if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {\n // Tokens rejected\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-IERC1155Receiver implementer\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Arrays.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Arrays.sol)\n// This file was procedurally generated from scripts/generate/templates/Arrays.js.\n\npragma solidity ^0.8.20;\n\nimport {SlotDerivation} from \"./SlotDerivation.sol\";\nimport {StorageSlot} from \"./StorageSlot.sol\";\nimport {Math} from \"./math/Math.sol\";\n\n/**\n * @dev Collection of functions related to array types.\n */\nlibrary Arrays {\n using SlotDerivation for bytes32;\n using StorageSlot for bytes32;\n\n /**\n * @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n bytes32[] memory array,\n function(bytes32, bytes32) pure returns (bool) comp\n ) internal pure returns (bytes32[] memory) {\n _quickSort(_begin(array), _end(array), comp);\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of bytes32 in increasing order.\n */\n function sort(bytes32[] memory array) internal pure returns (bytes32[] memory) {\n sort(array, _defaultComp);\n return array;\n }\n\n /**\n * @dev Sort an array of address (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n address[] memory array,\n function(address, address) pure returns (bool) comp\n ) internal pure returns (address[] memory) {\n sort(_castToBytes32Array(array), _castToBytes32Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of address in increasing order.\n */\n function sort(address[] memory array) internal pure returns (address[] memory) {\n sort(_castToBytes32Array(array), _defaultComp);\n return array;\n }\n\n /**\n * @dev Sort an array of uint256 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n uint256[] memory array,\n function(uint256, uint256) pure returns (bool) comp\n ) internal pure returns (uint256[] memory) {\n sort(_castToBytes32Array(array), _castToBytes32Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of uint256 in increasing order.\n */\n function sort(uint256[] memory array) internal pure returns (uint256[] memory) {\n sort(_castToBytes32Array(array), _defaultComp);\n return array;\n }\n\n /**\n * @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n * at end (exclusive). Sorting follows the `comp` comparator.\n *\n * Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n *\n * IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n * be used only if the limits are within a memory array.\n */\n function _quickSort(uint256 begin, uint256 end, function(bytes32, bytes32) pure returns (bool) comp) private pure {\n unchecked {\n if (end - begin < 0x40) return;\n\n // Use first element as pivot\n bytes32 pivot = _mload(begin);\n // Position where the pivot should be at the end of the loop\n uint256 pos = begin;\n\n for (uint256 it = begin + 0x20; it < end; it += 0x20) {\n if (comp(_mload(it), pivot)) {\n // If the value stored at the iterator's position comes before the pivot, we increment the\n // position of the pivot and move the value there.\n pos += 0x20;\n _swap(pos, it);\n }\n }\n\n _swap(begin, pos); // Swap pivot into place\n _quickSort(begin, pos, comp); // Sort the left side of the pivot\n _quickSort(pos + 0x20, end, comp); // Sort the right side of the pivot\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first element of `array`.\n */\n function _begin(bytes32[] memory array) private pure returns (uint256 ptr) {\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(array, 0x20)\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n * that comes just after the last element of the array.\n */\n function _end(bytes32[] memory array) private pure returns (uint256 ptr) {\n unchecked {\n return _begin(array) + array.length * 0x20;\n }\n }\n\n /**\n * @dev Load memory word (as a bytes32) at location `ptr`.\n */\n function _mload(uint256 ptr) private pure returns (bytes32 value) {\n assembly {\n value := mload(ptr)\n }\n }\n\n /**\n * @dev Swaps the elements memory location `ptr1` and `ptr2`.\n */\n function _swap(uint256 ptr1, uint256 ptr2) private pure {\n assembly {\n let value1 := mload(ptr1)\n let value2 := mload(ptr2)\n mstore(ptr1, value2)\n mstore(ptr2, value1)\n }\n }\n\n /// @dev Comparator for sorting arrays in increasing order.\n function _defaultComp(bytes32 a, bytes32 b) private pure returns (bool) {\n return a < b;\n }\n\n /// @dev Helper: low level cast address memory array to uint256 memory array\n function _castToBytes32Array(address[] memory input) private pure returns (bytes32[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast uint256 memory array to uint256 memory array\n function _castToBytes32Array(uint256[] memory input) private pure returns (bytes32[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast address comp function to bytes32 comp function\n function _castToBytes32Comp(\n function(address, address) pure returns (bool) input\n ) private pure returns (function(bytes32, bytes32) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast uint256 comp function to bytes32 comp function\n function _castToBytes32Comp(\n function(uint256, uint256) pure returns (bool) input\n ) private pure returns (function(bytes32, bytes32) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /**\n * @dev Searches a sorted `array` and returns the first index that contains\n * a value greater or equal to `element`. If no such index exists (i.e. all\n * values in the array are strictly less than `element`), the array length is\n * returned. Time complexity O(log n).\n *\n * NOTE: The `array` is expected to be sorted in ascending order, and to\n * contain no repeated elements.\n *\n * IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n * support for repeated elements in the array. The {lowerBound} function should\n * be used instead.\n */\n function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n low = mid + 1;\n }\n }\n\n // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound.\n if (low > 0 && unsafeAccess(array, low - 1).value == element) {\n return low - 1;\n } else {\n return low;\n }\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value greater or equal than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound].\n */\n function lowerBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value strictly greater than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound].\n */\n function upperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {lowerBound}, but with an array in memory.\n */\n function lowerBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {upperBound}, but with an array in memory.\n */\n function upperBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getAddressSlot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getBytes32Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getUint256Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(address[] memory arr, uint256 pos) internal pure returns (address res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(bytes32[] memory arr, uint256 pos) internal pure returns (bytes32 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(uint256[] memory arr, uint256 pos) internal pure returns (uint256 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(address[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(bytes32[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(uint256[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"},"@openzeppelin/contracts/utils/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 ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a > b, a, b);\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a < b, a, b);\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2²⁵⁶ and mod 2²⁵⁶ - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2²⁵⁶ + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2²⁵⁶. Also prevents denominator == 0.\n if (denominator <= prod1) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2²⁵⁶ / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @dev Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, expect 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Ferma's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked has failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n /// @solidity memory-safe-assembly\n assembly {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n uint256 exp;\n unchecked {\n exp = 128 * SafeCast.toUint(value > (1 << 128) - 1);\n value >>= exp;\n result += exp;\n\n exp = 64 * SafeCast.toUint(value > (1 << 64) - 1);\n value >>= exp;\n result += exp;\n\n exp = 32 * SafeCast.toUint(value > (1 << 32) - 1);\n value >>= exp;\n result += exp;\n\n exp = 16 * SafeCast.toUint(value > (1 << 16) - 1);\n value >>= exp;\n result += exp;\n\n exp = 8 * SafeCast.toUint(value > (1 << 8) - 1);\n value >>= exp;\n result += exp;\n\n exp = 4 * SafeCast.toUint(value > (1 << 4) - 1);\n value >>= exp;\n result += exp;\n\n exp = 2 * SafeCast.toUint(value > (1 << 2) - 1);\n value >>= exp;\n result += exp;\n\n result += SafeCast.toUint(value > 1);\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n uint256 isGt;\n unchecked {\n isGt = SafeCast.toUint(value > (1 << 128) - 1);\n value >>= isGt * 128;\n result += isGt * 16;\n\n isGt = SafeCast.toUint(value > (1 << 64) - 1);\n value >>= isGt * 64;\n result += isGt * 8;\n\n isGt = SafeCast.toUint(value > (1 << 32) - 1);\n value >>= isGt * 32;\n result += isGt * 4;\n\n isGt = SafeCast.toUint(value > (1 << 16) - 1);\n value >>= isGt * 16;\n result += isGt * 2;\n\n result += SafeCast.toUint(value > (1 << 8) - 1);\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\n /**\n * @dev Returns the downcasted uint248 from uint256, reverting on\n * overflow (when the input is greater than largest uint248).\n *\n * Counterpart to Solidity's `uint248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\n return uint248(value);\n }\n\n /**\n * @dev Returns the downcasted uint240 from uint256, reverting on\n * overflow (when the input is greater than largest uint240).\n *\n * Counterpart to Solidity's `uint240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\n return uint240(value);\n }\n\n /**\n * @dev Returns the downcasted uint232 from uint256, reverting on\n * overflow (when the input is greater than largest uint232).\n *\n * Counterpart to Solidity's `uint232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\n return uint232(value);\n }\n\n /**\n * @dev Returns the downcasted uint224 from uint256, reverting on\n * overflow (when the input is greater than largest uint224).\n *\n * Counterpart to Solidity's `uint224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\n return uint224(value);\n }\n\n /**\n * @dev Returns the downcasted uint216 from uint256, reverting on\n * overflow (when the input is greater than largest uint216).\n *\n * Counterpart to Solidity's `uint216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\n return uint216(value);\n }\n\n /**\n * @dev Returns the downcasted uint208 from uint256, reverting on\n * overflow (when the input is greater than largest uint208).\n *\n * Counterpart to Solidity's `uint208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\n return uint208(value);\n }\n\n /**\n * @dev Returns the downcasted uint200 from uint256, reverting on\n * overflow (when the input is greater than largest uint200).\n *\n * Counterpart to Solidity's `uint200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\n return uint200(value);\n }\n\n /**\n * @dev Returns the downcasted uint192 from uint256, reverting on\n * overflow (when the input is greater than largest uint192).\n *\n * Counterpart to Solidity's `uint192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\n return uint192(value);\n }\n\n /**\n * @dev Returns the downcasted uint184 from uint256, reverting on\n * overflow (when the input is greater than largest uint184).\n *\n * Counterpart to Solidity's `uint184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\n return uint184(value);\n }\n\n /**\n * @dev Returns the downcasted uint176 from uint256, reverting on\n * overflow (when the input is greater than largest uint176).\n *\n * Counterpart to Solidity's `uint176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\n return uint176(value);\n }\n\n /**\n * @dev Returns the downcasted uint168 from uint256, reverting on\n * overflow (when the input is greater than largest uint168).\n *\n * Counterpart to Solidity's `uint168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\n return uint168(value);\n }\n\n /**\n * @dev Returns the downcasted uint160 from uint256, reverting on\n * overflow (when the input is greater than largest uint160).\n *\n * Counterpart to Solidity's `uint160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\n return uint160(value);\n }\n\n /**\n * @dev Returns the downcasted uint152 from uint256, reverting on\n * overflow (when the input is greater than largest uint152).\n *\n * Counterpart to Solidity's `uint152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\n return uint152(value);\n }\n\n /**\n * @dev Returns the downcasted uint144 from uint256, reverting on\n * overflow (when the input is greater than largest uint144).\n *\n * Counterpart to Solidity's `uint144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\n return uint144(value);\n }\n\n /**\n * @dev Returns the downcasted uint136 from uint256, reverting on\n * overflow (when the input is greater than largest uint136).\n *\n * Counterpart to Solidity's `uint136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\n return uint136(value);\n }\n\n /**\n * @dev Returns the downcasted uint128 from uint256, reverting on\n * overflow (when the input is greater than largest uint128).\n *\n * Counterpart to Solidity's `uint128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\n return uint128(value);\n }\n\n /**\n * @dev Returns the downcasted uint120 from uint256, reverting on\n * overflow (when the input is greater than largest uint120).\n *\n * Counterpart to Solidity's `uint120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\n return uint120(value);\n }\n\n /**\n * @dev Returns the downcasted uint112 from uint256, reverting on\n * overflow (when the input is greater than largest uint112).\n *\n * Counterpart to Solidity's `uint112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\n return uint112(value);\n }\n\n /**\n * @dev Returns the downcasted uint104 from uint256, reverting on\n * overflow (when the input is greater than largest uint104).\n *\n * Counterpart to Solidity's `uint104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\n return uint104(value);\n }\n\n /**\n * @dev Returns the downcasted uint96 from uint256, reverting on\n * overflow (when the input is greater than largest uint96).\n *\n * Counterpart to Solidity's `uint96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\n return uint96(value);\n }\n\n /**\n * @dev Returns the downcasted uint88 from uint256, reverting on\n * overflow (when the input is greater than largest uint88).\n *\n * Counterpart to Solidity's `uint88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\n return uint88(value);\n }\n\n /**\n * @dev Returns the downcasted uint80 from uint256, reverting on\n * overflow (when the input is greater than largest uint80).\n *\n * Counterpart to Solidity's `uint80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\n return uint80(value);\n }\n\n /**\n * @dev Returns the downcasted uint72 from uint256, reverting on\n * overflow (when the input is greater than largest uint72).\n *\n * Counterpart to Solidity's `uint72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\n return uint72(value);\n }\n\n /**\n * @dev Returns the downcasted uint64 from uint256, reverting on\n * overflow (when the input is greater than largest uint64).\n *\n * Counterpart to Solidity's `uint64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\n return uint64(value);\n }\n\n /**\n * @dev Returns the downcasted uint56 from uint256, reverting on\n * overflow (when the input is greater than largest uint56).\n *\n * Counterpart to Solidity's `uint56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\n return uint56(value);\n }\n\n /**\n * @dev Returns the downcasted uint48 from uint256, reverting on\n * overflow (when the input is greater than largest uint48).\n *\n * Counterpart to Solidity's `uint48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\n return uint48(value);\n }\n\n /**\n * @dev Returns the downcasted uint40 from uint256, reverting on\n * overflow (when the input is greater than largest uint40).\n *\n * Counterpart to Solidity's `uint40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\n return uint40(value);\n }\n\n /**\n * @dev Returns the downcasted uint32 from uint256, reverting on\n * overflow (when the input is greater than largest uint32).\n *\n * Counterpart to Solidity's `uint32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\n return uint32(value);\n }\n\n /**\n * @dev Returns the downcasted uint24 from uint256, reverting on\n * overflow (when the input is greater than largest uint24).\n *\n * Counterpart to Solidity's `uint24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\n return uint24(value);\n }\n\n /**\n * @dev Returns the downcasted uint16 from uint256, reverting on\n * overflow (when the input is greater than largest uint16).\n *\n * Counterpart to Solidity's `uint16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\n return uint16(value);\n }\n\n /**\n * @dev Returns the downcasted uint8 from uint256, reverting on\n * overflow (when the input is greater than largest uint8).\n *\n * Counterpart to Solidity's `uint8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\n return uint8(value);\n }\n\n /**\n * @dev Converts a signed int256 into an unsigned uint256.\n *\n * Requirements:\n *\n * - input must be greater than or equal to 0.\n */\n function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\n return uint256(value);\n }\n\n /**\n * @dev Returns the downcasted int248 from int256, reverting on\n * overflow (when the input is less than smallest int248 or\n * greater than largest int248).\n *\n * Counterpart to Solidity's `int248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int240 from int256, reverting on\n * overflow (when the input is less than smallest int240 or\n * greater than largest int240).\n *\n * Counterpart to Solidity's `int240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int232 from int256, reverting on\n * overflow (when the input is less than smallest int232 or\n * greater than largest int232).\n *\n * Counterpart to Solidity's `int232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int224 from int256, reverting on\n * overflow (when the input is less than smallest int224 or\n * greater than largest int224).\n *\n * Counterpart to Solidity's `int224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int216 from int256, reverting on\n * overflow (when the input is less than smallest int216 or\n * greater than largest int216).\n *\n * Counterpart to Solidity's `int216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int208 from int256, reverting on\n * overflow (when the input is less than smallest int208 or\n * greater than largest int208).\n *\n * Counterpart to Solidity's `int208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int200 from int256, reverting on\n * overflow (when the input is less than smallest int200 or\n * greater than largest int200).\n *\n * Counterpart to Solidity's `int200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int192 from int256, reverting on\n * overflow (when the input is less than smallest int192 or\n * greater than largest int192).\n *\n * Counterpart to Solidity's `int192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int184 from int256, reverting on\n * overflow (when the input is less than smallest int184 or\n * greater than largest int184).\n *\n * Counterpart to Solidity's `int184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int176 from int256, reverting on\n * overflow (when the input is less than smallest int176 or\n * greater than largest int176).\n *\n * Counterpart to Solidity's `int176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int168 from int256, reverting on\n * overflow (when the input is less than smallest int168 or\n * greater than largest int168).\n *\n * Counterpart to Solidity's `int168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int160 from int256, reverting on\n * overflow (when the input is less than smallest int160 or\n * greater than largest int160).\n *\n * Counterpart to Solidity's `int160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int152 from int256, reverting on\n * overflow (when the input is less than smallest int152 or\n * greater than largest int152).\n *\n * Counterpart to Solidity's `int152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int144 from int256, reverting on\n * overflow (when the input is less than smallest int144 or\n * greater than largest int144).\n *\n * Counterpart to Solidity's `int144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int136 from int256, reverting on\n * overflow (when the input is less than smallest int136 or\n * greater than largest int136).\n *\n * Counterpart to Solidity's `int136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int128 from int256, reverting on\n * overflow (when the input is less than smallest int128 or\n * greater than largest int128).\n *\n * Counterpart to Solidity's `int128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int120 from int256, reverting on\n * overflow (when the input is less than smallest int120 or\n * greater than largest int120).\n *\n * Counterpart to Solidity's `int120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int112 from int256, reverting on\n * overflow (when the input is less than smallest int112 or\n * greater than largest int112).\n *\n * Counterpart to Solidity's `int112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int104 from int256, reverting on\n * overflow (when the input is less than smallest int104 or\n * greater than largest int104).\n *\n * Counterpart to Solidity's `int104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int96 from int256, reverting on\n * overflow (when the input is less than smallest int96 or\n * greater than largest int96).\n *\n * Counterpart to Solidity's `int96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int88 from int256, reverting on\n * overflow (when the input is less than smallest int88 or\n * greater than largest int88).\n *\n * Counterpart to Solidity's `int88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int80 from int256, reverting on\n * overflow (when the input is less than smallest int80 or\n * greater than largest int80).\n *\n * Counterpart to Solidity's `int80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int72 from int256, reverting on\n * overflow (when the input is less than smallest int72 or\n * greater than largest int72).\n *\n * Counterpart to Solidity's `int72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int64 from int256, reverting on\n * overflow (when the input is less than smallest int64 or\n * greater than largest int64).\n *\n * Counterpart to Solidity's `int64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int56 from int256, reverting on\n * overflow (when the input is less than smallest int56 or\n * greater than largest int56).\n *\n * Counterpart to Solidity's `int56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int48 from int256, reverting on\n * overflow (when the input is less than smallest int48 or\n * greater than largest int48).\n *\n * Counterpart to Solidity's `int48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int40 from int256, reverting on\n * overflow (when the input is less than smallest int40 or\n * greater than largest int40).\n *\n * Counterpart to Solidity's `int40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int32 from int256, reverting on\n * overflow (when the input is less than smallest int32 or\n * greater than largest int32).\n *\n * Counterpart to Solidity's `int32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int24 from int256, reverting on\n * overflow (when the input is less than smallest int24 or\n * greater than largest int24).\n *\n * Counterpart to Solidity's `int24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int16 from int256, reverting on\n * overflow (when the input is less than smallest int16 or\n * greater than largest int16).\n *\n * Counterpart to Solidity's `int16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int8 from int256, reverting on\n * overflow (when the input is less than smallest int8 or\n * greater than largest int8).\n *\n * Counterpart to Solidity's `int8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\n }\n\n /**\n * @dev Converts an unsigned uint256 into a signed int256.\n *\n * Requirements:\n *\n * - input must be less than or equal to maxInt256.\n */\n function toInt256(uint256 value) internal pure returns (int256) {\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n\n /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n /// @solidity memory-safe-assembly\n assembly {\n u := iszero(iszero(b))\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Panic.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"content":"// SPDX-License-Identifier: MIT\n// This file was procedurally generated from scripts/generate/templates/SlotDerivation.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n * corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n * the solidity language / compiler.\n *\n * See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n *\n * Example usage:\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using StorageSlot for bytes32;\n * using SlotDerivation for bytes32;\n *\n * // Declare a namespace\n * string private constant _NAMESPACE = \"\" // eg. OpenZeppelin.Slot\n *\n * function setValueInNamespace(uint256 key, address newValue) internal {\n * _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n * }\n *\n * function getValueInNamespace(uint256 key) internal view returns (address) {\n * return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {StorageSlot}.\n *\n * NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n * upgrade safety will ignore the slots accessed through this library.\n */\nlibrary SlotDerivation {\n /**\n * @dev Derive an ERC-7201 slot from a string (namespace).\n */\n function erc7201Slot(string memory namespace) internal pure returns (bytes32 slot) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, sub(keccak256(add(namespace, 0x20), mload(namespace)), 1))\n slot := and(keccak256(0x00, 0x20), not(0xff))\n }\n }\n\n /**\n * @dev Add an offset to a slot to get the n-th element of a structure or an array.\n */\n function offset(bytes32 slot, uint256 pos) internal pure returns (bytes32 result) {\n unchecked {\n return bytes32(uint256(slot) + pos);\n }\n }\n\n /**\n * @dev Derive the location of the first element in an array from the slot where the length is stored.\n */\n function deriveArray(bytes32 slot) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, slot)\n result := keccak256(0x00, 0x20)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, address key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bool key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes32 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, uint256 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, int256 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, string memory key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes memory key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.24;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * Since version 5.1, this library also support writing and reading value types to and from transient storage.\n *\n * * Example using transient storage:\n * ```solidity\n * contract Lock {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;\n *\n * modifier locked() {\n * require(!_LOCK_SLOT.asBoolean().tload());\n *\n * _LOCK_SLOT.asBoolean().tstore(true);\n * _;\n * _LOCK_SLOT.asBoolean().tstore(false);\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct Int256Slot {\n int256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev UDVT that represent a slot holding a address.\n */\n type AddressSlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a AddressSlotType.\n */\n function asAddress(bytes32 slot) internal pure returns (AddressSlotType) {\n return AddressSlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a bool.\n */\n type BooleanSlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a BooleanSlotType.\n */\n function asBoolean(bytes32 slot) internal pure returns (BooleanSlotType) {\n return BooleanSlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a bytes32.\n */\n type Bytes32SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Bytes32SlotType.\n */\n function asBytes32(bytes32 slot) internal pure returns (Bytes32SlotType) {\n return Bytes32SlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a uint256.\n */\n type Uint256SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Uint256SlotType.\n */\n function asUint256(bytes32 slot) internal pure returns (Uint256SlotType) {\n return Uint256SlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a int256.\n */\n type Int256SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Int256SlotType.\n */\n function asInt256(bytes32 slot) internal pure returns (Int256SlotType) {\n return Int256SlotType.wrap(slot);\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(AddressSlotType slot) internal view returns (address value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(AddressSlotType slot, address value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(BooleanSlotType slot) internal view returns (bool value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(BooleanSlotType slot, bool value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Bytes32SlotType slot) internal view returns (bytes32 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Bytes32SlotType slot, bytes32 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Uint256SlotType slot) internal view returns (uint256 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Uint256SlotType slot, uint256 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Int256SlotType slot) internal view returns (int256 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Int256SlotType slot, int256 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n}\n"},"@solady/accounts/Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\n/// @author Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\n///\n/// @dev Note:\n/// - Handles all ERC721 and ERC1155 token safety callbacks.\n/// - Collapses function table gas overhead and code size.\n/// - Utilizes fallback so unknown calldata will pass on.\nabstract contract Receiver {\n /// @dev For receiving ETH.\n receive() external payable virtual {}\n\n /// @dev Fallback function with the `receiverFallback` modifier.\n fallback() external payable virtual receiverFallback {}\n\n /// @dev Modifier for the fallback function to handle token callbacks.\n modifier receiverFallback() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n let s := shr(224, calldataload(0))\n // 0x150b7a02: `onERC721Received(address,address,uint256,bytes)`.\n // 0xf23a6e61: `onERC1155Received(address,address,uint256,uint256,bytes)`.\n // 0xbc197c81: `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)`.\n if or(eq(s, 0x150b7a02), or(eq(s, 0xf23a6e61), eq(s, 0xbc197c81))) {\n mstore(0x20, s) // Store `msg.sig`.\n return(0x3c, 0x20) // Return `msg.sig`.\n }\n }\n _;\n }\n}\n"},"@solady/auth/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple single owner authorization mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n///\n/// @dev Note:\n/// This implementation does NOT auto-initialize the owner to `msg.sender`.\n/// You MUST call the `_initializeOwner` in the constructor / initializer.\n///\n/// While the ownable portion follows\n/// [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,\n/// the nomenclature for the 2-step ownership handover may be unique to this codebase.\nabstract contract Ownable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The caller is not authorized to call the function.\n error Unauthorized();\n\n /// @dev The `newOwner` cannot be the zero address.\n error NewOwnerIsZeroAddress();\n\n /// @dev The `pendingOwner` does not have a valid handover request.\n error NoHandoverRequest();\n\n /// @dev Cannot double-initialize.\n error AlreadyInitialized();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ownership is transferred from `oldOwner` to `newOwner`.\n /// This event is intentionally kept the same as OpenZeppelin's Ownable to be\n /// compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173),\n /// despite it not being as lightweight as a single argument event.\n event OwnershipTransferred(address indexed oldOwner, address indexed newOwner);\n\n /// @dev An ownership handover to `pendingOwner` has been requested.\n event OwnershipHandoverRequested(address indexed pendingOwner);\n\n /// @dev The ownership handover to `pendingOwner` has been canceled.\n event OwnershipHandoverCanceled(address indexed pendingOwner);\n\n /// @dev `keccak256(bytes(\"OwnershipTransferred(address,address)\"))`.\n uint256 private constant _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE =\n 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0;\n\n /// @dev `keccak256(bytes(\"OwnershipHandoverRequested(address)\"))`.\n uint256 private constant _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE =\n 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d;\n\n /// @dev `keccak256(bytes(\"OwnershipHandoverCanceled(address)\"))`.\n uint256 private constant _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE =\n 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The owner slot is given by:\n /// `bytes32(~uint256(uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))))`.\n /// It is intentionally chosen to be a high value\n /// to avoid collision with lower slots.\n /// The choice of manual storage layout is to enable compatibility\n /// with both regular and upgradeable contracts.\n bytes32 internal constant _OWNER_SLOT =\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927;\n\n /// The ownership handover slot of `newOwner` is given by:\n /// ```\n /// mstore(0x00, or(shl(96, user), _HANDOVER_SLOT_SEED))\n /// let handoverSlot := keccak256(0x00, 0x20)\n /// ```\n /// It stores the expiry timestamp of the two-step ownership handover.\n uint256 private constant _HANDOVER_SLOT_SEED = 0x389a75e1;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Override to return true to make `_initializeOwner` prevent double-initialization.\n function _guardInitializeOwner() internal pure virtual returns (bool guard) {}\n\n /// @dev Initializes the owner directly without authorization guard.\n /// This function must be called upon initialization,\n /// regardless of whether the contract is upgradeable or not.\n /// This is to enable generalization to both regular and upgradeable contracts,\n /// and to save gas in case the initial owner is not the caller.\n /// For performance reasons, this function will not check if there\n /// is an existing owner.\n function _initializeOwner(address newOwner) internal virtual {\n if (_guardInitializeOwner()) {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n if sload(ownerSlot) {\n mstore(0x00, 0x0dc149f0) // `AlreadyInitialized()`.\n revert(0x1c, 0x04)\n }\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Store the new value.\n sstore(ownerSlot, or(newOwner, shl(255, iszero(newOwner))))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, 0, newOwner)\n }\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Store the new value.\n sstore(_OWNER_SLOT, newOwner)\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, 0, newOwner)\n }\n }\n }\n\n /// @dev Sets the owner directly without authorization guard.\n function _setOwner(address newOwner) internal virtual {\n if (_guardInitializeOwner()) {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, sload(ownerSlot), newOwner)\n // Store the new value.\n sstore(ownerSlot, or(newOwner, shl(255, iszero(newOwner))))\n }\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, sload(ownerSlot), newOwner)\n // Store the new value.\n sstore(ownerSlot, newOwner)\n }\n }\n }\n\n /// @dev Throws if the sender is not the owner.\n function _checkOwner() internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // If the caller is not the stored owner, revert.\n if iszero(eq(caller(), sload(_OWNER_SLOT))) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Returns how long a two-step ownership handover is valid for in seconds.\n /// Override to return a different value if needed.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _ownershipHandoverValidFor() internal view virtual returns (uint64) {\n return 48 * 3600;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC UPDATE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Allows the owner to transfer the ownership to `newOwner`.\n function transferOwnership(address newOwner) public payable virtual onlyOwner {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(shl(96, newOwner)) {\n mstore(0x00, 0x7448fbae) // `NewOwnerIsZeroAddress()`.\n revert(0x1c, 0x04)\n }\n }\n _setOwner(newOwner);\n }\n\n /// @dev Allows the owner to renounce their ownership.\n function renounceOwnership() public payable virtual onlyOwner {\n _setOwner(address(0));\n }\n\n /// @dev Request a two-step ownership handover to the caller.\n /// The request will automatically expire in 48 hours (172800 seconds) by default.\n function requestOwnershipHandover() public payable virtual {\n unchecked {\n uint256 expires = block.timestamp + _ownershipHandoverValidFor();\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to `expires`.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x20), expires)\n // Emit the {OwnershipHandoverRequested} event.\n log2(0, 0, _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE, caller())\n }\n }\n }\n\n /// @dev Cancels the two-step ownership handover to the caller, if any.\n function cancelOwnershipHandover() public payable virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to 0.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x20), 0)\n // Emit the {OwnershipHandoverCanceled} event.\n log2(0, 0, _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE, caller())\n }\n }\n\n /// @dev Allows the owner to complete the two-step ownership handover to `pendingOwner`.\n /// Reverts if there is no existing ownership handover requested by `pendingOwner`.\n function completeOwnershipHandover(address pendingOwner) public payable virtual onlyOwner {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to 0.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, pendingOwner)\n let handoverSlot := keccak256(0x0c, 0x20)\n // If the handover does not exist, or has expired.\n if gt(timestamp(), sload(handoverSlot)) {\n mstore(0x00, 0x6f5e8818) // `NoHandoverRequest()`.\n revert(0x1c, 0x04)\n }\n // Set the handover slot to 0.\n sstore(handoverSlot, 0)\n }\n _setOwner(pendingOwner);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC READ FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the owner of the contract.\n function owner() public view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := sload(_OWNER_SLOT)\n }\n }\n\n /// @dev Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\n function ownershipHandoverExpiresAt(address pendingOwner)\n public\n view\n virtual\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the handover slot.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, pendingOwner)\n // Load the handover slot.\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MODIFIERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Marks a function as only callable by the owner.\n modifier onlyOwner() virtual {\n _checkOwner();\n _;\n }\n}\n"},"@solady/auth/OwnableRoles.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\nimport {Ownable} from \"./Ownable.sol\";\n\n/// @notice Simple single owner and multiroles authorization mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n/// @dev While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173)\n/// for compatibility, the nomenclature for the 2-step ownership handover and roles\n/// may be unique to this codebase.\nabstract contract OwnableRoles is Ownable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The `user`'s roles is updated to `roles`.\n /// Each bit of `roles` represents whether the role is set.\n event RolesUpdated(address indexed user, uint256 indexed roles);\n\n /// @dev `keccak256(bytes(\"RolesUpdated(address,uint256)\"))`.\n uint256 private constant _ROLES_UPDATED_EVENT_SIGNATURE =\n 0x715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The role slot of `user` is given by:\n /// ```\n /// mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED))\n /// let roleSlot := keccak256(0x00, 0x20)\n /// ```\n /// This automatically ignores the upper bits of the `user` in case\n /// they are not clean, as well as keep the `keccak256` under 32-bytes.\n ///\n /// Note: This is equivalent to `uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))`.\n uint256 private constant _ROLE_SLOT_SEED = 0x8b78c6d8;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Overwrite the roles directly without authorization guard.\n function _setRoles(address user, uint256 roles) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n // Store the new value.\n sstore(keccak256(0x0c, 0x20), roles)\n // Emit the {RolesUpdated} event.\n log3(0, 0, _ROLES_UPDATED_EVENT_SIGNATURE, shr(96, mload(0x0c)), roles)\n }\n }\n\n /// @dev Updates the roles directly without authorization guard.\n /// If `on` is true, each set bit of `roles` will be turned on,\n /// otherwise, each set bit of `roles` will be turned off.\n function _updateRoles(address user, uint256 roles, bool on) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n let roleSlot := keccak256(0x0c, 0x20)\n // Load the current value.\n let current := sload(roleSlot)\n // Compute the updated roles if `on` is true.\n let updated := or(current, roles)\n // Compute the updated roles if `on` is false.\n // Use `and` to compute the intersection of `current` and `roles`,\n // `xor` it with `current` to flip the bits in the intersection.\n if iszero(on) { updated := xor(current, and(current, roles)) }\n // Then, store the new value.\n sstore(roleSlot, updated)\n // Emit the {RolesUpdated} event.\n log3(0, 0, _ROLES_UPDATED_EVENT_SIGNATURE, shr(96, mload(0x0c)), updated)\n }\n }\n\n /// @dev Grants the roles directly without authorization guard.\n /// Each bit of `roles` represents the role to turn on.\n function _grantRoles(address user, uint256 roles) internal virtual {\n _updateRoles(user, roles, true);\n }\n\n /// @dev Removes the roles directly without authorization guard.\n /// Each bit of `roles` represents the role to turn off.\n function _removeRoles(address user, uint256 roles) internal virtual {\n _updateRoles(user, roles, false);\n }\n\n /// @dev Throws if the sender does not have any of the `roles`.\n function _checkRoles(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Throws if the sender is not the owner,\n /// and does not have any of the `roles`.\n /// Checks for ownership first, then lazily checks for roles.\n function _checkOwnerOrRoles(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // If the caller is not the stored owner.\n // Note: `_ROLE_SLOT_SEED` is equal to `_OWNER_SLOT_NOT`.\n if iszero(eq(caller(), sload(not(_ROLE_SLOT_SEED)))) {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Throws if the sender does not have any of the `roles`,\n /// and is not the owner.\n /// Checks for roles first, then lazily checks for ownership.\n function _checkRolesOrOwner(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n // If the caller is not the stored owner.\n // Note: `_ROLE_SLOT_SEED` is equal to `_OWNER_SLOT_NOT`.\n if iszero(eq(caller(), sload(not(_ROLE_SLOT_SEED)))) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Convenience function to return a `roles` bitmap from an array of `ordinals`.\n /// This is meant for frontends like Etherscan, and is therefore not fully optimized.\n /// Not recommended to be called on-chain.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _rolesFromOrdinals(uint8[] memory ordinals) internal pure returns (uint256 roles) {\n /// @solidity memory-safe-assembly\n assembly {\n for { let i := shl(5, mload(ordinals)) } i { i := sub(i, 0x20) } {\n // We don't need to mask the values of `ordinals`, as Solidity\n // cleans dirty upper bits when storing variables into memory.\n roles := or(shl(mload(add(ordinals, i)), 1), roles)\n }\n }\n }\n\n /// @dev Convenience function to return an array of `ordinals` from the `roles` bitmap.\n /// This is meant for frontends like Etherscan, and is therefore not fully optimized.\n /// Not recommended to be called on-chain.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _ordinalsFromRoles(uint256 roles) internal pure returns (uint8[] memory ordinals) {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the pointer to the free memory.\n ordinals := mload(0x40)\n let ptr := add(ordinals, 0x20)\n let o := 0\n // The absence of lookup tables, De Bruijn, etc., here is intentional for\n // smaller bytecode, as this function is not meant to be called on-chain.\n for { let t := roles } 1 {} {\n mstore(ptr, o)\n // `shr` 5 is equivalent to multiplying by 0x20.\n // Push back into the ordinals array if the bit is set.\n ptr := add(ptr, shl(5, and(t, 1)))\n o := add(o, 1)\n t := shr(o, roles)\n if iszero(t) { break }\n }\n // Store the length of `ordinals`.\n mstore(ordinals, shr(5, sub(ptr, add(ordinals, 0x20))))\n // Allocate the memory.\n mstore(0x40, ptr)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC UPDATE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Allows the owner to grant `user` `roles`.\n /// If the `user` already has a role, then it will be an no-op for the role.\n function grantRoles(address user, uint256 roles) public payable virtual onlyOwner {\n _grantRoles(user, roles);\n }\n\n /// @dev Allows the owner to remove `user` `roles`.\n /// If the `user` does not have a role, then it will be an no-op for the role.\n function revokeRoles(address user, uint256 roles) public payable virtual onlyOwner {\n _removeRoles(user, roles);\n }\n\n /// @dev Allow the caller to remove their own roles.\n /// If the caller does not have a role, then it will be an no-op for the role.\n function renounceRoles(uint256 roles) public payable virtual {\n _removeRoles(msg.sender, roles);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC READ FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the roles of `user`.\n function rolesOf(address user) public view virtual returns (uint256 roles) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n // Load the stored value.\n roles := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Returns whether `user` has any of `roles`.\n function hasAnyRole(address user, uint256 roles) public view virtual returns (bool) {\n return rolesOf(user) & roles != 0;\n }\n\n /// @dev Returns whether `user` has all of `roles`.\n function hasAllRoles(address user, uint256 roles) public view virtual returns (bool) {\n return rolesOf(user) & roles == roles;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MODIFIERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Marks a function as only callable by an account with `roles`.\n modifier onlyRoles(uint256 roles) virtual {\n _checkRoles(roles);\n _;\n }\n\n /// @dev Marks a function as only callable by the owner or by an account\n /// with `roles`. Checks for ownership first, then lazily checks for roles.\n modifier onlyOwnerOrRoles(uint256 roles) virtual {\n _checkOwnerOrRoles(roles);\n _;\n }\n\n /// @dev Marks a function as only callable by an account with `roles`\n /// or the owner. Checks for roles first, then lazily checks for ownership.\n modifier onlyRolesOrOwner(uint256 roles) virtual {\n _checkRolesOrOwner(roles);\n _;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ROLE CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // IYKYK\n\n uint256 internal constant _ROLE_0 = 1 << 0;\n uint256 internal constant _ROLE_1 = 1 << 1;\n uint256 internal constant _ROLE_2 = 1 << 2;\n uint256 internal constant _ROLE_3 = 1 << 3;\n uint256 internal constant _ROLE_4 = 1 << 4;\n uint256 internal constant _ROLE_5 = 1 << 5;\n uint256 internal constant _ROLE_6 = 1 << 6;\n uint256 internal constant _ROLE_7 = 1 << 7;\n uint256 internal constant _ROLE_8 = 1 << 8;\n uint256 internal constant _ROLE_9 = 1 << 9;\n uint256 internal constant _ROLE_10 = 1 << 10;\n uint256 internal constant _ROLE_11 = 1 << 11;\n uint256 internal constant _ROLE_12 = 1 << 12;\n uint256 internal constant _ROLE_13 = 1 << 13;\n uint256 internal constant _ROLE_14 = 1 << 14;\n uint256 internal constant _ROLE_15 = 1 << 15;\n uint256 internal constant _ROLE_16 = 1 << 16;\n uint256 internal constant _ROLE_17 = 1 << 17;\n uint256 internal constant _ROLE_18 = 1 << 18;\n uint256 internal constant _ROLE_19 = 1 << 19;\n uint256 internal constant _ROLE_20 = 1 << 20;\n uint256 internal constant _ROLE_21 = 1 << 21;\n uint256 internal constant _ROLE_22 = 1 << 22;\n uint256 internal constant _ROLE_23 = 1 << 23;\n uint256 internal constant _ROLE_24 = 1 << 24;\n uint256 internal constant _ROLE_25 = 1 << 25;\n uint256 internal constant _ROLE_26 = 1 << 26;\n uint256 internal constant _ROLE_27 = 1 << 27;\n uint256 internal constant _ROLE_28 = 1 << 28;\n uint256 internal constant _ROLE_29 = 1 << 29;\n uint256 internal constant _ROLE_30 = 1 << 30;\n uint256 internal constant _ROLE_31 = 1 << 31;\n uint256 internal constant _ROLE_32 = 1 << 32;\n uint256 internal constant _ROLE_33 = 1 << 33;\n uint256 internal constant _ROLE_34 = 1 << 34;\n uint256 internal constant _ROLE_35 = 1 << 35;\n uint256 internal constant _ROLE_36 = 1 << 36;\n uint256 internal constant _ROLE_37 = 1 << 37;\n uint256 internal constant _ROLE_38 = 1 << 38;\n uint256 internal constant _ROLE_39 = 1 << 39;\n uint256 internal constant _ROLE_40 = 1 << 40;\n uint256 internal constant _ROLE_41 = 1 << 41;\n uint256 internal constant _ROLE_42 = 1 << 42;\n uint256 internal constant _ROLE_43 = 1 << 43;\n uint256 internal constant _ROLE_44 = 1 << 44;\n uint256 internal constant _ROLE_45 = 1 << 45;\n uint256 internal constant _ROLE_46 = 1 << 46;\n uint256 internal constant _ROLE_47 = 1 << 47;\n uint256 internal constant _ROLE_48 = 1 << 48;\n uint256 internal constant _ROLE_49 = 1 << 49;\n uint256 internal constant _ROLE_50 = 1 << 50;\n uint256 internal constant _ROLE_51 = 1 << 51;\n uint256 internal constant _ROLE_52 = 1 << 52;\n uint256 internal constant _ROLE_53 = 1 << 53;\n uint256 internal constant _ROLE_54 = 1 << 54;\n uint256 internal constant _ROLE_55 = 1 << 55;\n uint256 internal constant _ROLE_56 = 1 << 56;\n uint256 internal constant _ROLE_57 = 1 << 57;\n uint256 internal constant _ROLE_58 = 1 << 58;\n uint256 internal constant _ROLE_59 = 1 << 59;\n uint256 internal constant _ROLE_60 = 1 << 60;\n uint256 internal constant _ROLE_61 = 1 << 61;\n uint256 internal constant _ROLE_62 = 1 << 62;\n uint256 internal constant _ROLE_63 = 1 << 63;\n uint256 internal constant _ROLE_64 = 1 << 64;\n uint256 internal constant _ROLE_65 = 1 << 65;\n uint256 internal constant _ROLE_66 = 1 << 66;\n uint256 internal constant _ROLE_67 = 1 << 67;\n uint256 internal constant _ROLE_68 = 1 << 68;\n uint256 internal constant _ROLE_69 = 1 << 69;\n uint256 internal constant _ROLE_70 = 1 << 70;\n uint256 internal constant _ROLE_71 = 1 << 71;\n uint256 internal constant _ROLE_72 = 1 << 72;\n uint256 internal constant _ROLE_73 = 1 << 73;\n uint256 internal constant _ROLE_74 = 1 << 74;\n uint256 internal constant _ROLE_75 = 1 << 75;\n uint256 internal constant _ROLE_76 = 1 << 76;\n uint256 internal constant _ROLE_77 = 1 << 77;\n uint256 internal constant _ROLE_78 = 1 << 78;\n uint256 internal constant _ROLE_79 = 1 << 79;\n uint256 internal constant _ROLE_80 = 1 << 80;\n uint256 internal constant _ROLE_81 = 1 << 81;\n uint256 internal constant _ROLE_82 = 1 << 82;\n uint256 internal constant _ROLE_83 = 1 << 83;\n uint256 internal constant _ROLE_84 = 1 << 84;\n uint256 internal constant _ROLE_85 = 1 << 85;\n uint256 internal constant _ROLE_86 = 1 << 86;\n uint256 internal constant _ROLE_87 = 1 << 87;\n uint256 internal constant _ROLE_88 = 1 << 88;\n uint256 internal constant _ROLE_89 = 1 << 89;\n uint256 internal constant _ROLE_90 = 1 << 90;\n uint256 internal constant _ROLE_91 = 1 << 91;\n uint256 internal constant _ROLE_92 = 1 << 92;\n uint256 internal constant _ROLE_93 = 1 << 93;\n uint256 internal constant _ROLE_94 = 1 << 94;\n uint256 internal constant _ROLE_95 = 1 << 95;\n uint256 internal constant _ROLE_96 = 1 << 96;\n uint256 internal constant _ROLE_97 = 1 << 97;\n uint256 internal constant _ROLE_98 = 1 << 98;\n uint256 internal constant _ROLE_99 = 1 << 99;\n uint256 internal constant _ROLE_100 = 1 << 100;\n uint256 internal constant _ROLE_101 = 1 << 101;\n uint256 internal constant _ROLE_102 = 1 << 102;\n uint256 internal constant _ROLE_103 = 1 << 103;\n uint256 internal constant _ROLE_104 = 1 << 104;\n uint256 internal constant _ROLE_105 = 1 << 105;\n uint256 internal constant _ROLE_106 = 1 << 106;\n uint256 internal constant _ROLE_107 = 1 << 107;\n uint256 internal constant _ROLE_108 = 1 << 108;\n uint256 internal constant _ROLE_109 = 1 << 109;\n uint256 internal constant _ROLE_110 = 1 << 110;\n uint256 internal constant _ROLE_111 = 1 << 111;\n uint256 internal constant _ROLE_112 = 1 << 112;\n uint256 internal constant _ROLE_113 = 1 << 113;\n uint256 internal constant _ROLE_114 = 1 << 114;\n uint256 internal constant _ROLE_115 = 1 << 115;\n uint256 internal constant _ROLE_116 = 1 << 116;\n uint256 internal constant _ROLE_117 = 1 << 117;\n uint256 internal constant _ROLE_118 = 1 << 118;\n uint256 internal constant _ROLE_119 = 1 << 119;\n uint256 internal constant _ROLE_120 = 1 << 120;\n uint256 internal constant _ROLE_121 = 1 << 121;\n uint256 internal constant _ROLE_122 = 1 << 122;\n uint256 internal constant _ROLE_123 = 1 << 123;\n uint256 internal constant _ROLE_124 = 1 << 124;\n uint256 internal constant _ROLE_125 = 1 << 125;\n uint256 internal constant _ROLE_126 = 1 << 126;\n uint256 internal constant _ROLE_127 = 1 << 127;\n uint256 internal constant _ROLE_128 = 1 << 128;\n uint256 internal constant _ROLE_129 = 1 << 129;\n uint256 internal constant _ROLE_130 = 1 << 130;\n uint256 internal constant _ROLE_131 = 1 << 131;\n uint256 internal constant _ROLE_132 = 1 << 132;\n uint256 internal constant _ROLE_133 = 1 << 133;\n uint256 internal constant _ROLE_134 = 1 << 134;\n uint256 internal constant _ROLE_135 = 1 << 135;\n uint256 internal constant _ROLE_136 = 1 << 136;\n uint256 internal constant _ROLE_137 = 1 << 137;\n uint256 internal constant _ROLE_138 = 1 << 138;\n uint256 internal constant _ROLE_139 = 1 << 139;\n uint256 internal constant _ROLE_140 = 1 << 140;\n uint256 internal constant _ROLE_141 = 1 << 141;\n uint256 internal constant _ROLE_142 = 1 << 142;\n uint256 internal constant _ROLE_143 = 1 << 143;\n uint256 internal constant _ROLE_144 = 1 << 144;\n uint256 internal constant _ROLE_145 = 1 << 145;\n uint256 internal constant _ROLE_146 = 1 << 146;\n uint256 internal constant _ROLE_147 = 1 << 147;\n uint256 internal constant _ROLE_148 = 1 << 148;\n uint256 internal constant _ROLE_149 = 1 << 149;\n uint256 internal constant _ROLE_150 = 1 << 150;\n uint256 internal constant _ROLE_151 = 1 << 151;\n uint256 internal constant _ROLE_152 = 1 << 152;\n uint256 internal constant _ROLE_153 = 1 << 153;\n uint256 internal constant _ROLE_154 = 1 << 154;\n uint256 internal constant _ROLE_155 = 1 << 155;\n uint256 internal constant _ROLE_156 = 1 << 156;\n uint256 internal constant _ROLE_157 = 1 << 157;\n uint256 internal constant _ROLE_158 = 1 << 158;\n uint256 internal constant _ROLE_159 = 1 << 159;\n uint256 internal constant _ROLE_160 = 1 << 160;\n uint256 internal constant _ROLE_161 = 1 << 161;\n uint256 internal constant _ROLE_162 = 1 << 162;\n uint256 internal constant _ROLE_163 = 1 << 163;\n uint256 internal constant _ROLE_164 = 1 << 164;\n uint256 internal constant _ROLE_165 = 1 << 165;\n uint256 internal constant _ROLE_166 = 1 << 166;\n uint256 internal constant _ROLE_167 = 1 << 167;\n uint256 internal constant _ROLE_168 = 1 << 168;\n uint256 internal constant _ROLE_169 = 1 << 169;\n uint256 internal constant _ROLE_170 = 1 << 170;\n uint256 internal constant _ROLE_171 = 1 << 171;\n uint256 internal constant _ROLE_172 = 1 << 172;\n uint256 internal constant _ROLE_173 = 1 << 173;\n uint256 internal constant _ROLE_174 = 1 << 174;\n uint256 internal constant _ROLE_175 = 1 << 175;\n uint256 internal constant _ROLE_176 = 1 << 176;\n uint256 internal constant _ROLE_177 = 1 << 177;\n uint256 internal constant _ROLE_178 = 1 << 178;\n uint256 internal constant _ROLE_179 = 1 << 179;\n uint256 internal constant _ROLE_180 = 1 << 180;\n uint256 internal constant _ROLE_181 = 1 << 181;\n uint256 internal constant _ROLE_182 = 1 << 182;\n uint256 internal constant _ROLE_183 = 1 << 183;\n uint256 internal constant _ROLE_184 = 1 << 184;\n uint256 internal constant _ROLE_185 = 1 << 185;\n uint256 internal constant _ROLE_186 = 1 << 186;\n uint256 internal constant _ROLE_187 = 1 << 187;\n uint256 internal constant _ROLE_188 = 1 << 188;\n uint256 internal constant _ROLE_189 = 1 << 189;\n uint256 internal constant _ROLE_190 = 1 << 190;\n uint256 internal constant _ROLE_191 = 1 << 191;\n uint256 internal constant _ROLE_192 = 1 << 192;\n uint256 internal constant _ROLE_193 = 1 << 193;\n uint256 internal constant _ROLE_194 = 1 << 194;\n uint256 internal constant _ROLE_195 = 1 << 195;\n uint256 internal constant _ROLE_196 = 1 << 196;\n uint256 internal constant _ROLE_197 = 1 << 197;\n uint256 internal constant _ROLE_198 = 1 << 198;\n uint256 internal constant _ROLE_199 = 1 << 199;\n uint256 internal constant _ROLE_200 = 1 << 200;\n uint256 internal constant _ROLE_201 = 1 << 201;\n uint256 internal constant _ROLE_202 = 1 << 202;\n uint256 internal constant _ROLE_203 = 1 << 203;\n uint256 internal constant _ROLE_204 = 1 << 204;\n uint256 internal constant _ROLE_205 = 1 << 205;\n uint256 internal constant _ROLE_206 = 1 << 206;\n uint256 internal constant _ROLE_207 = 1 << 207;\n uint256 internal constant _ROLE_208 = 1 << 208;\n uint256 internal constant _ROLE_209 = 1 << 209;\n uint256 internal constant _ROLE_210 = 1 << 210;\n uint256 internal constant _ROLE_211 = 1 << 211;\n uint256 internal constant _ROLE_212 = 1 << 212;\n uint256 internal constant _ROLE_213 = 1 << 213;\n uint256 internal constant _ROLE_214 = 1 << 214;\n uint256 internal constant _ROLE_215 = 1 << 215;\n uint256 internal constant _ROLE_216 = 1 << 216;\n uint256 internal constant _ROLE_217 = 1 << 217;\n uint256 internal constant _ROLE_218 = 1 << 218;\n uint256 internal constant _ROLE_219 = 1 << 219;\n uint256 internal constant _ROLE_220 = 1 << 220;\n uint256 internal constant _ROLE_221 = 1 << 221;\n uint256 internal constant _ROLE_222 = 1 << 222;\n uint256 internal constant _ROLE_223 = 1 << 223;\n uint256 internal constant _ROLE_224 = 1 << 224;\n uint256 internal constant _ROLE_225 = 1 << 225;\n uint256 internal constant _ROLE_226 = 1 << 226;\n uint256 internal constant _ROLE_227 = 1 << 227;\n uint256 internal constant _ROLE_228 = 1 << 228;\n uint256 internal constant _ROLE_229 = 1 << 229;\n uint256 internal constant _ROLE_230 = 1 << 230;\n uint256 internal constant _ROLE_231 = 1 << 231;\n uint256 internal constant _ROLE_232 = 1 << 232;\n uint256 internal constant _ROLE_233 = 1 << 233;\n uint256 internal constant _ROLE_234 = 1 << 234;\n uint256 internal constant _ROLE_235 = 1 << 235;\n uint256 internal constant _ROLE_236 = 1 << 236;\n uint256 internal constant _ROLE_237 = 1 << 237;\n uint256 internal constant _ROLE_238 = 1 << 238;\n uint256 internal constant _ROLE_239 = 1 << 239;\n uint256 internal constant _ROLE_240 = 1 << 240;\n uint256 internal constant _ROLE_241 = 1 << 241;\n uint256 internal constant _ROLE_242 = 1 << 242;\n uint256 internal constant _ROLE_243 = 1 << 243;\n uint256 internal constant _ROLE_244 = 1 << 244;\n uint256 internal constant _ROLE_245 = 1 << 245;\n uint256 internal constant _ROLE_246 = 1 << 246;\n uint256 internal constant _ROLE_247 = 1 << 247;\n uint256 internal constant _ROLE_248 = 1 << 248;\n uint256 internal constant _ROLE_249 = 1 << 249;\n uint256 internal constant _ROLE_250 = 1 << 250;\n uint256 internal constant _ROLE_251 = 1 << 251;\n uint256 internal constant _ROLE_252 = 1 << 252;\n uint256 internal constant _ROLE_253 = 1 << 253;\n uint256 internal constant _ROLE_254 = 1 << 254;\n uint256 internal constant _ROLE_255 = 1 << 255;\n}\n"},"@solady/tokens/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple ERC20 + EIP-2612 implementation.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\n///\n/// @dev Note:\n/// - The ERC20 standard allows minting and transferring to and from the zero address,\n/// minting and transferring zero tokens, as well as self-approvals.\n/// For performance, this implementation WILL NOT revert for such actions.\n/// Please add any checks with overrides if desired.\n/// - The `permit` function uses the ecrecover precompile (0x1).\n///\n/// If you are overriding:\n/// - NEVER violate the ERC20 invariant:\n/// the total sum of all balances must be equal to `totalSupply()`.\n/// - Check that the overridden function is actually used in the function you want to\n/// change the behavior of. Much of the code has been manually inlined for performance.\nabstract contract ERC20 {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The total supply has overflowed.\n error TotalSupplyOverflow();\n\n /// @dev The allowance has overflowed.\n error AllowanceOverflow();\n\n /// @dev The allowance has underflowed.\n error AllowanceUnderflow();\n\n /// @dev Insufficient balance.\n error InsufficientBalance();\n\n /// @dev Insufficient allowance.\n error InsufficientAllowance();\n\n /// @dev The permit is invalid.\n error InvalidPermit();\n\n /// @dev The permit has expired.\n error PermitExpired();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Emitted when `amount` tokens is transferred from `from` to `to`.\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n /// @dev Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n /// @dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`.\n uint256 private constant _TRANSFER_EVENT_SIGNATURE =\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;\n\n /// @dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`.\n uint256 private constant _APPROVAL_EVENT_SIGNATURE =\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The storage slot for the total supply.\n uint256 private constant _TOTAL_SUPPLY_SLOT = 0x05345cdf77eb68f44c;\n\n /// @dev The balance slot of `owner` is given by:\n /// ```\n /// mstore(0x0c, _BALANCE_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let balanceSlot := keccak256(0x0c, 0x20)\n /// ```\n uint256 private constant _BALANCE_SLOT_SEED = 0x87a211a2;\n\n /// @dev The allowance slot of (`owner`, `spender`) is given by:\n /// ```\n /// mstore(0x20, spender)\n /// mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let allowanceSlot := keccak256(0x0c, 0x34)\n /// ```\n uint256 private constant _ALLOWANCE_SLOT_SEED = 0x7f5e9f20;\n\n /// @dev The nonce slot of `owner` is given by:\n /// ```\n /// mstore(0x0c, _NONCES_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let nonceSlot := keccak256(0x0c, 0x20)\n /// ```\n uint256 private constant _NONCES_SLOT_SEED = 0x38377508;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev `(_NONCES_SLOT_SEED << 16) | 0x1901`.\n uint256 private constant _NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX = 0x383775081901;\n\n /// @dev `keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")`.\n bytes32 private constant _DOMAIN_TYPEHASH =\n 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;\n\n /// @dev `keccak256(\"1\")`.\n bytes32 private constant _VERSION_HASH =\n 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6;\n\n /// @dev `keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\")`.\n bytes32 private constant _PERMIT_TYPEHASH =\n 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 METADATA */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the name of the token.\n function name() public view virtual returns (string memory);\n\n /// @dev Returns the symbol of the token.\n function symbol() public view virtual returns (string memory);\n\n /// @dev Returns the decimals places of the token.\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the amount of tokens in existence.\n function totalSupply() public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := sload(_TOTAL_SUPPLY_SLOT)\n }\n }\n\n /// @dev Returns the amount of tokens owned by `owner`.\n function balanceOf(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Returns the amount of tokens that `spender` can spend on behalf of `owner`.\n function allowance(address owner, address spender)\n public\n view\n virtual\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x34))\n }\n }\n\n /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n ///\n /// Emits a {Approval} event.\n function approve(address spender, uint256 amount) public virtual returns (bool) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the allowance slot and store the amount.\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x34), amount)\n // Emit the {Approval} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, caller(), shr(96, mload(0x2c)))\n }\n return true;\n }\n\n /// @dev Transfer `amount` tokens from the caller to `to`.\n ///\n /// Requirements:\n /// - `from` must at least have `amount`.\n ///\n /// Emits a {Transfer} event.\n function transfer(address to, uint256 amount) public virtual returns (bool) {\n _beforeTokenTransfer(msg.sender, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, caller())\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, caller(), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(msg.sender, to, amount);\n return true;\n }\n\n /// @dev Transfers `amount` tokens from `from` to `to`.\n ///\n /// Note: Does not update the allowance if it is the maximum uint256 value.\n ///\n /// Requirements:\n /// - `from` must at least have `amount`.\n /// - The caller must have at least `amount` of allowance to transfer the tokens of `from`.\n ///\n /// Emits a {Transfer} event.\n function transferFrom(address from, address to, uint256 amount) public virtual returns (bool) {\n _beforeTokenTransfer(from, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let from_ := shl(96, from)\n // Compute the allowance slot and load its value.\n mstore(0x20, caller())\n mstore(0x0c, or(from_, _ALLOWANCE_SLOT_SEED))\n let allowanceSlot := keccak256(0x0c, 0x34)\n let allowance_ := sload(allowanceSlot)\n // If the allowance is not the maximum uint256 value.\n if add(allowance_, 1) {\n // Revert if the amount to be transferred exceeds the allowance.\n if gt(amount, allowance_) {\n mstore(0x00, 0x13be252b) // `InsufficientAllowance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated allowance.\n sstore(allowanceSlot, sub(allowance_, amount))\n }\n // Compute the balance slot and load its value.\n mstore(0x0c, or(from_, _BALANCE_SLOT_SEED))\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(from, to, amount);\n return true;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EIP-2612 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev For more performance, override to return the constant value\n /// of `keccak256(bytes(name()))` if `name()` will never change.\n function _constantNameHash() internal view virtual returns (bytes32 result) {}\n\n /// @dev Returns the current nonce for `owner`.\n /// This value is used to compute the signature for EIP-2612 permit.\n function nonces(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the nonce slot and load its value.\n mstore(0x0c, _NONCES_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Sets `value` as the allowance of `spender` over the tokens of `owner`,\n /// authorized by a signed approval by `owner`.\n ///\n /// Emits a {Approval} event.\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) public virtual {\n bytes32 nameHash = _constantNameHash();\n // We simply calculate it on-the-fly to allow for cases where the `name` may change.\n if (nameHash == bytes32(0)) nameHash = keccak256(bytes(name()));\n /// @solidity memory-safe-assembly\n assembly {\n // Revert if the block timestamp is greater than `deadline`.\n if gt(timestamp(), deadline) {\n mstore(0x00, 0x1a15a3cc) // `PermitExpired()`.\n revert(0x1c, 0x04)\n }\n let m := mload(0x40) // Grab the free memory pointer.\n // Clean the upper 96 bits.\n owner := shr(96, shl(96, owner))\n spender := shr(96, shl(96, spender))\n // Compute the nonce slot and load its value.\n mstore(0x0e, _NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX)\n mstore(0x00, owner)\n let nonceSlot := keccak256(0x0c, 0x20)\n let nonceValue := sload(nonceSlot)\n // Prepare the domain separator.\n mstore(m, _DOMAIN_TYPEHASH)\n mstore(add(m, 0x20), nameHash)\n mstore(add(m, 0x40), _VERSION_HASH)\n mstore(add(m, 0x60), chainid())\n mstore(add(m, 0x80), address())\n mstore(0x2e, keccak256(m, 0xa0))\n // Prepare the struct hash.\n mstore(m, _PERMIT_TYPEHASH)\n mstore(add(m, 0x20), owner)\n mstore(add(m, 0x40), spender)\n mstore(add(m, 0x60), value)\n mstore(add(m, 0x80), nonceValue)\n mstore(add(m, 0xa0), deadline)\n mstore(0x4e, keccak256(m, 0xc0))\n // Prepare the ecrecover calldata.\n mstore(0x00, keccak256(0x2c, 0x42))\n mstore(0x20, and(0xff, v))\n mstore(0x40, r)\n mstore(0x60, s)\n let t := staticcall(gas(), 1, 0, 0x80, 0x20, 0x20)\n // If the ecrecover fails, the returndatasize will be 0x00,\n // `owner` will be checked if it equals the hash at 0x00,\n // which evaluates to false (i.e. 0), and we will revert.\n // If the ecrecover succeeds, the returndatasize will be 0x20,\n // `owner` will be compared against the returned address at 0x20.\n if iszero(eq(mload(returndatasize()), owner)) {\n mstore(0x00, 0xddafbaef) // `InvalidPermit()`.\n revert(0x1c, 0x04)\n }\n // Increment and store the updated nonce.\n sstore(nonceSlot, add(nonceValue, t)) // `t` is 1 if ecrecover succeeds.\n // Compute the allowance slot and store the value.\n // The `owner` is already at slot 0x20.\n mstore(0x40, or(shl(160, _ALLOWANCE_SLOT_SEED), spender))\n sstore(keccak256(0x2c, 0x34), value)\n // Emit the {Approval} event.\n log3(add(m, 0x60), 0x20, _APPROVAL_EVENT_SIGNATURE, owner, spender)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero pointer.\n }\n }\n\n /// @dev Returns the EIP-712 domain separator for the EIP-2612 permit.\n function DOMAIN_SEPARATOR() public view virtual returns (bytes32 result) {\n bytes32 nameHash = _constantNameHash();\n // We simply calculate it on-the-fly to allow for cases where the `name` may change.\n if (nameHash == bytes32(0)) nameHash = keccak256(bytes(name()));\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Grab the free memory pointer.\n mstore(m, _DOMAIN_TYPEHASH)\n mstore(add(m, 0x20), nameHash)\n mstore(add(m, 0x40), _VERSION_HASH)\n mstore(add(m, 0x60), chainid())\n mstore(add(m, 0x80), address())\n result := keccak256(m, 0xa0)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL MINT FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Mints `amount` tokens to `to`, increasing the total supply.\n ///\n /// Emits a {Transfer} event.\n function _mint(address to, uint256 amount) internal virtual {\n _beforeTokenTransfer(address(0), to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let totalSupplyBefore := sload(_TOTAL_SUPPLY_SLOT)\n let totalSupplyAfter := add(totalSupplyBefore, amount)\n // Revert if the total supply overflows.\n if lt(totalSupplyAfter, totalSupplyBefore) {\n mstore(0x00, 0xe5cfe957) // `TotalSupplyOverflow()`.\n revert(0x1c, 0x04)\n }\n // Store the updated total supply.\n sstore(_TOTAL_SUPPLY_SLOT, totalSupplyAfter)\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, 0, shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(address(0), to, amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL BURN FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Burns `amount` tokens from `from`, reducing the total supply.\n ///\n /// Emits a {Transfer} event.\n function _burn(address from, uint256 amount) internal virtual {\n _beforeTokenTransfer(from, address(0), amount);\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, from)\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Subtract and store the updated total supply.\n sstore(_TOTAL_SUPPLY_SLOT, sub(sload(_TOTAL_SUPPLY_SLOT), amount))\n // Emit the {Transfer} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, shl(96, from)), 0)\n }\n _afterTokenTransfer(from, address(0), amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL TRANSFER FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Moves `amount` of tokens from `from` to `to`.\n function _transfer(address from, address to, uint256 amount) internal virtual {\n _beforeTokenTransfer(from, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let from_ := shl(96, from)\n // Compute the balance slot and load its value.\n mstore(0x0c, or(from_, _BALANCE_SLOT_SEED))\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(from, to, amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL ALLOWANCE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Updates the allowance of `owner` for `spender` based on spent `amount`.\n function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the allowance slot and load its value.\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n let allowanceSlot := keccak256(0x0c, 0x34)\n let allowance_ := sload(allowanceSlot)\n // If the allowance is not the maximum uint256 value.\n if add(allowance_, 1) {\n // Revert if the amount to be transferred exceeds the allowance.\n if gt(amount, allowance_) {\n mstore(0x00, 0x13be252b) // `InsufficientAllowance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated allowance.\n sstore(allowanceSlot, sub(allowance_, amount))\n }\n }\n }\n\n /// @dev Sets `amount` as the allowance of `spender` over the tokens of `owner`.\n ///\n /// Emits a {Approval} event.\n function _approve(address owner, address spender, uint256 amount) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n let owner_ := shl(96, owner)\n // Compute the allowance slot and store the amount.\n mstore(0x20, spender)\n mstore(0x0c, or(owner_, _ALLOWANCE_SLOT_SEED))\n sstore(keccak256(0x0c, 0x34), amount)\n // Emit the {Approval} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, shr(96, owner_), shr(96, mload(0x2c)))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HOOKS TO OVERRIDE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Hook that is called before any transfer of tokens.\n /// This includes minting and burning.\n function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n\n /// @dev Hook that is called after any transfer of tokens.\n /// This includes minting and burning.\n function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n}\n"},"@solady/tokens/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple ERC721 implementation with storage hitchhiking.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC721.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/token/ERC721/ERC721.sol)\n///\n/// @dev Note:\n/// - The ERC721 standard allows for self-approvals.\n/// For performance, this implementation WILL NOT revert for such actions.\n/// Please add any checks with overrides if desired.\n/// - For performance, methods are made payable where permitted by the ERC721 standard.\n/// - The `safeTransfer` functions use the identity precompile (0x4)\n/// to copy memory internally.\n///\n/// If you are overriding:\n/// - NEVER violate the ERC721 invariant:\n/// the balance of an owner MUST always be equal to their number of ownership slots.\n/// The transfer functions do not have an underflow guard for user token balances.\n/// - Make sure all variables written to storage are properly cleaned\n// (e.g. the bool value for `isApprovedForAll` MUST be either 1 or 0 under the hood).\n/// - Check that the overridden function is actually used in the function you want to\n/// change the behavior of. Much of the code has been manually inlined for performance.\nabstract contract ERC721 {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev An account can hold up to 4294967295 tokens.\n uint256 internal constant _MAX_ACCOUNT_BALANCE = 0xffffffff;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Only the token owner or an approved account can manage the token.\n error NotOwnerNorApproved();\n\n /// @dev The token does not exist.\n error TokenDoesNotExist();\n\n /// @dev The token already exists.\n error TokenAlreadyExists();\n\n /// @dev Cannot query the balance for the zero address.\n error BalanceQueryForZeroAddress();\n\n /// @dev Cannot mint or transfer to the zero address.\n error TransferToZeroAddress();\n\n /// @dev The token must be owned by `from`.\n error TransferFromIncorrectOwner();\n\n /// @dev The recipient's balance has overflowed.\n error AccountBalanceOverflow();\n\n /// @dev Cannot safely transfer to a contract that does not implement\n /// the ERC721Receiver interface.\n error TransferToNonERC721ReceiverImplementer();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Emitted when token `id` is transferred from `from` to `to`.\n event Transfer(address indexed from, address indexed to, uint256 indexed id);\n\n /// @dev Emitted when `owner` enables `account` to manage the `id` token.\n event Approval(address indexed owner, address indexed account, uint256 indexed id);\n\n /// @dev Emitted when `owner` enables or disables `operator` to manage all of their tokens.\n event ApprovalForAll(address indexed owner, address indexed operator, bool isApproved);\n\n /// @dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`.\n uint256 private constant _TRANSFER_EVENT_SIGNATURE =\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;\n\n /// @dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`.\n uint256 private constant _APPROVAL_EVENT_SIGNATURE =\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925;\n\n /// @dev `keccak256(bytes(\"ApprovalForAll(address,address,bool)\"))`.\n uint256 private constant _APPROVAL_FOR_ALL_EVENT_SIGNATURE =\n 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ownership data slot of `id` is given by:\n /// ```\n /// mstore(0x00, id)\n /// mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n /// let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n /// ```\n /// Bits Layout:\n /// - [0..159] `addr`\n /// - [160..255] `extraData`\n ///\n /// The approved address slot is given by: `add(1, ownershipSlot)`.\n ///\n /// See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip\n ///\n /// The balance slot of `owner` is given by:\n /// ```\n /// mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let balanceSlot := keccak256(0x0c, 0x1c)\n /// ```\n /// Bits Layout:\n /// - [0..31] `balance`\n /// - [32..255] `aux`\n ///\n /// The `operator` approval slot of `owner` is given by:\n /// ```\n /// mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n /// mstore(0x00, owner)\n /// let operatorApprovalSlot := keccak256(0x0c, 0x30)\n /// ```\n uint256 private constant _ERC721_MASTER_SLOT_SEED = 0x7d8825530a5a2e7a << 192;\n\n /// @dev Pre-shifted and pre-masked constant.\n uint256 private constant _ERC721_MASTER_SLOT_SEED_MASKED = 0x0a5a2e7a00000000;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC721 METADATA */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the token collection name.\n function name() public view virtual returns (string memory);\n\n /// @dev Returns the token collection symbol.\n function symbol() public view virtual returns (string memory);\n\n /// @dev Returns the Uniform Resource Identifier (URI) for token `id`.\n function tokenURI(uint256 id) public view virtual returns (string memory);\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC721 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the owner of token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function ownerOf(uint256 id) public view virtual returns (address result) {\n result = _ownerOf(id);\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(result) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Returns the number of tokens owned by `owner`.\n ///\n /// Requirements:\n /// - `owner` must not be the zero address.\n function balanceOf(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Revert if the `owner` is the zero address.\n if iszero(owner) {\n mstore(0x00, 0x8f4eb604) // `BalanceQueryForZeroAddress()`.\n revert(0x1c, 0x04)\n }\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n result := and(sload(keccak256(0x0c, 0x1c)), _MAX_ACCOUNT_BALANCE)\n }\n }\n\n /// @dev Returns the account approved to manage token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function getApproved(uint256 id) public view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n if iszero(shl(96, sload(ownershipSlot))) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n result := sload(add(1, ownershipSlot))\n }\n }\n\n /// @dev Sets `account` as the approved account to manage token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n /// - The caller must be the owner of the token,\n /// or an approved operator for the token owner.\n ///\n /// Emits an {Approval} event.\n function approve(address account, uint256 id) public payable virtual {\n _approve(msg.sender, account, id);\n }\n\n /// @dev Returns whether `operator` is approved to manage the tokens of `owner`.\n function isApprovedForAll(address owner, address operator)\n public\n view\n virtual\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, operator)\n mstore(0x08, _ERC721_MASTER_SLOT_SEED_MASKED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x30))\n }\n }\n\n /// @dev Sets whether `operator` is approved to manage the tokens of the caller.\n ///\n /// Emits an {ApprovalForAll} event.\n function setApprovalForAll(address operator, bool isApproved) public virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Convert to 0 or 1.\n isApproved := iszero(iszero(isApproved))\n // Update the `isApproved` for (`msg.sender`, `operator`).\n mstore(0x1c, operator)\n mstore(0x08, _ERC721_MASTER_SLOT_SEED_MASKED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x30), isApproved)\n // Emit the {ApprovalForAll} event.\n mstore(0x00, isApproved)\n // forgefmt: disable-next-item\n log3(0x00, 0x20, _APPROVAL_FOR_ALL_EVENT_SIGNATURE, caller(), shr(96, shl(96, operator)))\n }\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function transferFrom(address from, address to, uint256 id) public payable virtual {\n _beforeTokenTransfer(from, to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n from := and(bitmaskAddress, from)\n to := and(bitmaskAddress, to)\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, caller()))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n let owner := and(bitmaskAddress, ownershipPacked)\n // Revert if the token does not exist, or if `from` is not the owner.\n if iszero(mul(owner, eq(owner, from))) {\n // `TokenDoesNotExist()`, `TransferFromIncorrectOwner()`.\n mstore(shl(2, iszero(owner)), 0xceea21b6a1148100)\n revert(0x1c, 0x04)\n }\n // Load, check, and update the token approval.\n {\n mstore(0x00, from)\n let approvedAddress := sload(add(1, ownershipSlot))\n // Revert if the caller is not the owner, nor approved.\n if iszero(or(eq(caller(), from), eq(caller(), approvedAddress))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Update with the new owner.\n sstore(ownershipSlot, xor(ownershipPacked, xor(from, to)))\n // Decrement the balance of `from`.\n {\n let fromBalanceSlot := keccak256(0x0c, 0x1c)\n sstore(fromBalanceSlot, sub(sload(fromBalanceSlot), 1))\n }\n // Increment the balance of `to`.\n {\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x1c)\n let toBalanceSlotPacked := add(sload(toBalanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(toBalanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(toBalanceSlot, toBalanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, from, to, id)\n }\n _afterTokenTransfer(from, to, id);\n }\n\n /// @dev Equivalent to `safeTransferFrom(from, to, id, \"\")`.\n function safeTransferFrom(address from, address to, uint256 id) public payable virtual {\n transferFrom(from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function safeTransferFrom(address from, address to, uint256 id, bytes calldata data)\n public\n payable\n virtual\n {\n transferFrom(from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /// @dev Returns true if this contract implements the interface defined by `interfaceId`.\n /// See: https://eips.ethereum.org/EIPS/eip-165\n /// This function call must use less than 30000 gas.\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let s := shr(224, interfaceId)\n // ERC165: 0x01ffc9a7, ERC721: 0x80ac58cd, ERC721Metadata: 0x5b5e139f.\n result := or(or(eq(s, 0x01ffc9a7), eq(s, 0x80ac58cd)), eq(s, 0x5b5e139f))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL QUERY FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns if token `id` exists.\n function _exists(uint256 id) internal view virtual returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := iszero(iszero(shl(96, sload(add(id, add(id, keccak256(0x00, 0x20)))))))\n }\n }\n\n /// @dev Returns the owner of token `id`.\n /// Returns the zero address instead of reverting if the token does not exist.\n function _ownerOf(uint256 id) internal view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := shr(96, shl(96, sload(add(id, add(id, keccak256(0x00, 0x20))))))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL DATA HITCHHIKING FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // For performance, no events are emitted for the hitchhiking setters.\n // Please emit your own events if required.\n\n /// @dev Returns the auxiliary data for `owner`.\n /// Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n /// Auxiliary data can be set for any address, even if it does not have any tokens.\n function _getAux(address owner) internal view virtual returns (uint224 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n result := shr(32, sload(keccak256(0x0c, 0x1c)))\n }\n }\n\n /// @dev Set the auxiliary data for `owner` to `value`.\n /// Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n /// Auxiliary data can be set for any address, even if it does not have any tokens.\n function _setAux(address owner, uint224 value) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let packed := sload(balanceSlot)\n sstore(balanceSlot, xor(packed, shl(32, xor(value, shr(32, packed)))))\n }\n }\n\n /// @dev Returns the extra data for token `id`.\n /// Minting, transferring, burning a token will not change the extra data.\n /// The extra data can be set on a non-existent token.\n function _getExtraData(uint256 id) internal view virtual returns (uint96 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := shr(160, sload(add(id, add(id, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Sets the extra data for token `id` to `value`.\n /// Minting, transferring, burning a token will not change the extra data.\n /// The extra data can be set on a non-existent token.\n function _setExtraData(uint256 id, uint96 value) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let packed := sload(ownershipSlot)\n sstore(ownershipSlot, xor(packed, shl(160, xor(value, shr(160, packed)))))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL MINT FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Mints token `id` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must not exist.\n /// - `to` cannot be the zero address.\n ///\n /// Emits a {Transfer} event.\n function _mint(address to, uint256 id) internal virtual {\n _beforeTokenTransfer(address(0), to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n to := shr(96, shl(96, to))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n // Revert if the token already exists.\n if shl(96, ownershipPacked) {\n mstore(0x00, 0xc991cbb1) // `TokenAlreadyExists()`.\n revert(0x1c, 0x04)\n }\n // Update with the owner.\n sstore(ownershipSlot, or(ownershipPacked, to))\n // Increment the balance of the owner.\n {\n mstore(0x00, to)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let balanceSlotPacked := add(sload(balanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(balanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(balanceSlot, balanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, 0, to, id)\n }\n _afterTokenTransfer(address(0), to, id);\n }\n\n /// @dev Mints token `id` to `to`, and updates the extra data for token `id` to `value`.\n /// Does NOT check if token `id` already exists (assumes `id` is auto-incrementing).\n ///\n /// Requirements:\n ///\n /// - `to` cannot be the zero address.\n ///\n /// Emits a {Transfer} event.\n function _mintAndSetExtraDataUnchecked(address to, uint256 id, uint96 value) internal virtual {\n _beforeTokenTransfer(address(0), to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n to := shr(96, shl(96, to))\n // Update with the owner and extra data.\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n sstore(add(id, add(id, keccak256(0x00, 0x20))), or(shl(160, value), to))\n // Increment the balance of the owner.\n {\n mstore(0x00, to)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let balanceSlotPacked := add(sload(balanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(balanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(balanceSlot, balanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, 0, to, id)\n }\n _afterTokenTransfer(address(0), to, id);\n }\n\n /// @dev Equivalent to `_safeMint(to, id, \"\")`.\n function _safeMint(address to, uint256 id) internal virtual {\n _safeMint(to, id, \"\");\n }\n\n /// @dev Mints token `id` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must not exist.\n /// - `to` cannot be the zero address.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeMint(address to, uint256 id, bytes memory data) internal virtual {\n _mint(to, id);\n if (_hasCode(to)) _checkOnERC721Received(address(0), to, id, data);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL BURN FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to `_burn(address(0), id)`.\n function _burn(uint256 id) internal virtual {\n _burn(address(0), id);\n }\n\n /// @dev Destroys token `id`, using `by`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function _burn(address by, uint256 id) internal virtual {\n address owner = ownerOf(id);\n _beforeTokenTransfer(owner, address(0), id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n by := shr(96, shl(96, by))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n // Reload the owner in case it is changed in `_beforeTokenTransfer`.\n owner := shr(96, shl(96, ownershipPacked))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // Load and check the token approval.\n {\n mstore(0x00, owner)\n let approvedAddress := sload(add(1, ownershipSlot))\n // If `by` is not the zero address, do the authorization check.\n // Revert if the `by` is not the owner, nor approved.\n if iszero(or(iszero(by), or(eq(by, owner), eq(by, approvedAddress)))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Clear the owner.\n sstore(ownershipSlot, xor(ownershipPacked, owner))\n // Decrement the balance of `owner`.\n {\n let balanceSlot := keccak256(0x0c, 0x1c)\n sstore(balanceSlot, sub(sload(balanceSlot), 1))\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, owner, 0, id)\n }\n _afterTokenTransfer(owner, address(0), id);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL APPROVAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `account` is the owner of token `id`, or is approved to manage it.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function _isApprovedOrOwner(address account, uint256 id)\n internal\n view\n virtual\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := 1\n // Clear the upper 96 bits.\n account := shr(96, shl(96, account))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, account))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let owner := shr(96, shl(96, sload(ownershipSlot)))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // Check if `account` is the `owner`.\n if iszero(eq(account, owner)) {\n mstore(0x00, owner)\n // Check if `account` is approved to manage the token.\n if iszero(sload(keccak256(0x0c, 0x30))) {\n result := eq(account, sload(add(1, ownershipSlot)))\n }\n }\n }\n }\n\n /// @dev Returns the account approved to manage token `id`.\n /// Returns the zero address instead of reverting if the token does not exist.\n function _getApproved(uint256 id) internal view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := sload(add(1, add(id, add(id, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Equivalent to `_approve(address(0), account, id)`.\n function _approve(address account, uint256 id) internal virtual {\n _approve(address(0), account, id);\n }\n\n /// @dev Sets `account` as the approved account to manage token `id`, using `by`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n /// - If `by` is not the zero address, `by` must be the owner\n /// or an approved operator for the token owner.\n ///\n /// Emits a {Approval} event.\n function _approve(address by, address account, uint256 id) internal virtual {\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n account := and(bitmaskAddress, account)\n by := and(bitmaskAddress, by)\n // Load the owner of the token.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let owner := and(bitmaskAddress, sload(ownershipSlot))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // If `by` is not the zero address, do the authorization check.\n // Revert if `by` is not the owner, nor approved.\n if iszero(or(iszero(by), eq(by, owner))) {\n mstore(0x00, owner)\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Sets `account` as the approved account to manage `id`.\n sstore(add(1, ownershipSlot), account)\n // Emit the {Approval} event.\n log4(codesize(), 0x00, _APPROVAL_EVENT_SIGNATURE, owner, account, id)\n }\n }\n\n /// @dev Approve or remove the `operator` as an operator for `by`,\n /// without authorization checks.\n ///\n /// Emits an {ApprovalForAll} event.\n function _setApprovalForAll(address by, address operator, bool isApproved) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n by := shr(96, shl(96, by))\n operator := shr(96, shl(96, operator))\n // Convert to 0 or 1.\n isApproved := iszero(iszero(isApproved))\n // Update the `isApproved` for (`by`, `operator`).\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n mstore(0x00, by)\n sstore(keccak256(0x0c, 0x30), isApproved)\n // Emit the {ApprovalForAll} event.\n mstore(0x00, isApproved)\n log3(0x00, 0x20, _APPROVAL_FOR_ALL_EVENT_SIGNATURE, by, operator)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL TRANSFER FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to `_transfer(address(0), from, to, id)`.\n function _transfer(address from, address to, uint256 id) internal virtual {\n _transfer(address(0), from, to, id);\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function _transfer(address by, address from, address to, uint256 id) internal virtual {\n _beforeTokenTransfer(from, to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n from := and(bitmaskAddress, from)\n to := and(bitmaskAddress, to)\n by := and(bitmaskAddress, by)\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n let owner := and(bitmaskAddress, ownershipPacked)\n // Revert if the token does not exist, or if `from` is not the owner.\n if iszero(mul(owner, eq(owner, from))) {\n // `TokenDoesNotExist()`, `TransferFromIncorrectOwner()`.\n mstore(shl(2, iszero(owner)), 0xceea21b6a1148100)\n revert(0x1c, 0x04)\n }\n // Load, check, and update the token approval.\n {\n mstore(0x00, from)\n let approvedAddress := sload(add(1, ownershipSlot))\n // If `by` is not the zero address, do the authorization check.\n // Revert if the `by` is not the owner, nor approved.\n if iszero(or(iszero(by), or(eq(by, from), eq(by, approvedAddress)))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Update with the new owner.\n sstore(ownershipSlot, xor(ownershipPacked, xor(from, to)))\n // Decrement the balance of `from`.\n {\n let fromBalanceSlot := keccak256(0x0c, 0x1c)\n sstore(fromBalanceSlot, sub(sload(fromBalanceSlot), 1))\n }\n // Increment the balance of `to`.\n {\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x1c)\n let toBalanceSlotPacked := add(sload(toBalanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(toBalanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(toBalanceSlot, toBalanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, from, to, id)\n }\n _afterTokenTransfer(from, to, id);\n }\n\n /// @dev Equivalent to `_safeTransfer(from, to, id, \"\")`.\n function _safeTransfer(address from, address to, uint256 id) internal virtual {\n _safeTransfer(from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeTransfer(address from, address to, uint256 id, bytes memory data)\n internal\n virtual\n {\n _transfer(address(0), from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /// @dev Equivalent to `_safeTransfer(by, from, to, id, \"\")`.\n function _safeTransfer(address by, address from, address to, uint256 id) internal virtual {\n _safeTransfer(by, from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeTransfer(address by, address from, address to, uint256 id, bytes memory data)\n internal\n virtual\n {\n _transfer(by, from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HOOKS FOR OVERRIDING */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Hook that is called before any token transfers, including minting and burning.\n function _beforeTokenTransfer(address from, address to, uint256 id) internal virtual {}\n\n /// @dev Hook that is called after any token transfers, including minting and burning.\n function _afterTokenTransfer(address from, address to, uint256 id) internal virtual {}\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PRIVATE HELPERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns if `a` has bytecode of non-zero length.\n function _hasCode(address a) private view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := extcodesize(a) // Can handle dirty upper bits.\n }\n }\n\n /// @dev Perform a call to invoke {IERC721Receiver-onERC721Received} on `to`.\n /// Reverts if the target does not support the function correctly.\n function _checkOnERC721Received(address from, address to, uint256 id, bytes memory data)\n private\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Prepare the calldata.\n let m := mload(0x40)\n let onERC721ReceivedSelector := 0x150b7a02\n mstore(m, onERC721ReceivedSelector)\n mstore(add(m, 0x20), caller()) // The `operator`, which is always `msg.sender`.\n mstore(add(m, 0x40), shr(96, shl(96, from)))\n mstore(add(m, 0x60), id)\n mstore(add(m, 0x80), 0x80)\n let n := mload(data)\n mstore(add(m, 0xa0), n)\n if n { pop(staticcall(gas(), 4, add(data, 0x20), n, add(m, 0xc0), n)) }\n // Revert if the call reverts.\n if iszero(call(gas(), to, 0, add(m, 0x1c), add(n, 0xa4), m, 0x20)) {\n if returndatasize() {\n // Bubble up the revert if the call reverts.\n returndatacopy(m, 0x00, returndatasize())\n revert(m, returndatasize())\n }\n }\n // Load the returndata and compare it.\n if iszero(eq(mload(m), shl(224, onERC721ReceivedSelector))) {\n mstore(0x00, 0xd1a57ed6) // `TransferToNonERC721ReceiverImplementer()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Initializable mixin for the upgradeable contracts.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)\nabstract contract Initializable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The contract is already initialized.\n error InvalidInitialization();\n\n /// @dev The contract is not initializing.\n error NotInitializing();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Triggered when the contract has been initialized.\n event Initialized(uint64 version);\n\n /// @dev `keccak256(bytes(\"Initialized(uint64)\"))`.\n bytes32 private constant _INTIALIZED_EVENT_SIGNATURE =\n 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The default initializable slot is given by:\n /// `bytes32(~uint256(uint32(bytes4(keccak256(\"_INITIALIZABLE_SLOT\")))))`.\n ///\n /// Bits Layout:\n /// - [0] `initializing`\n /// - [1..64] `initializedVersion`\n bytes32 private constant _INITIALIZABLE_SLOT =\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Override to return a custom storage slot if required.\n function _initializableSlot() internal pure virtual returns (bytes32) {\n return _INITIALIZABLE_SLOT;\n }\n\n /// @dev Guards an initializer function so that it can be invoked at most once.\n ///\n /// You can guard a function with `onlyInitializing` such that it can be called\n /// through a function guarded with `initializer`.\n ///\n /// This is similar to `reinitializer(1)`, except that in the context of a constructor,\n /// an `initializer` guarded function can be invoked multiple times.\n /// This can be useful during testing and is not expected to be used in production.\n ///\n /// Emits an {Initialized} event.\n modifier initializer() virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n let i := sload(s)\n // Set `initializing` to 1, `initializedVersion` to 1.\n sstore(s, 3)\n // If `!(initializing == 0 && initializedVersion == 0)`.\n if i {\n // If `!(address(this).code.length == 0 && initializedVersion == 1)`.\n if iszero(lt(extcodesize(address()), eq(shr(1, i), 1))) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n s := shl(shl(255, i), s) // Skip initializing if `initializing == 1`.\n }\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n if s {\n // Set `initializing` to 0, `initializedVersion` to 1.\n sstore(s, 2)\n // Emit the {Initialized} event.\n mstore(0x20, 1)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n }\n\n /// @dev Guards an reinitialzer function so that it can be invoked at most once.\n ///\n /// You can guard a function with `onlyInitializing` such that it can be called\n /// through a function guarded with `reinitializer`.\n ///\n /// Emits an {Initialized} event.\n modifier reinitializer(uint64 version) virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n version := and(version, 0xffffffffffffffff) // Clean upper bits.\n let i := sload(s)\n // If `initializing == 1 || initializedVersion >= version`.\n if iszero(lt(and(i, 1), lt(shr(1, i), version))) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n // Set `initializing` to 1, `initializedVersion` to `version`.\n sstore(s, or(1, shl(1, version)))\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n // Set `initializing` to 0, `initializedVersion` to `version`.\n sstore(s, shl(1, version))\n // Emit the {Initialized} event.\n mstore(0x20, version)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n\n /// @dev Guards a function such that it can only be called in the scope\n /// of a function guarded with `initializer` or `reinitializer`.\n modifier onlyInitializing() virtual {\n _checkInitializing();\n _;\n }\n\n /// @dev Reverts if the contract is not initializing.\n function _checkInitializing() internal view virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(and(1, sload(s))) {\n mstore(0x00, 0xd7e6bcf8) // `NotInitializing()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Locks any future initializations by setting the initialized version to `2**64 - 1`.\n ///\n /// Calling this in the constructor will prevent the contract from being initialized\n /// or reinitialized. It is recommended to use this to lock implementation contracts\n /// that are designed to be called through proxies.\n ///\n /// Emits an {Initialized} event the first time it is successfully called.\n function _disableInitializers() internal virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n let i := sload(s)\n if and(i, 1) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n let uint64max := shr(192, s) // Computed to save bytecode.\n if iszero(eq(shr(1, i), uint64max)) {\n // Set `initializing` to 0, `initializedVersion` to `2**64 - 1`.\n sstore(s, shl(1, uint64max))\n // Emit the {Initialized} event.\n mstore(0x20, uint64max)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n }\n\n /// @dev Returns the highest version that has been initialized.\n function _getInitializedVersion() internal view virtual returns (uint64 version) {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n version := shr(1, sload(s))\n }\n }\n\n /// @dev Returns whether the contract is currently initializing.\n function _isInitializing() internal view virtual returns (bool result) {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n result := and(1, sload(s))\n }\n }\n}\n"},"@solady/utils/LibClone.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Minimal proxy library.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)\n/// @author Minimal proxy by 0age (https://github.com/0age)\n/// @author Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie\n/// (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)\n/// @author Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\n///\n/// @dev Minimal proxy:\n/// Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime,\n/// it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern,\n/// which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.\n///\n/// @dev Minimal proxy (PUSH0 variant):\n/// This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai.\n/// It is optimized first for minimal runtime gas, then for minimal bytecode.\n/// The PUSH0 clone functions are intentionally postfixed with a jarring \"_PUSH0\" as\n/// many EVM chains may not support the PUSH0 opcode in the early months after Shanghai.\n/// Please use with caution.\n///\n/// @dev Clones with immutable args (CWIA):\n/// The implementation of CWIA here implements a `receive()` method that emits the\n/// `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata,\n/// enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards\n/// composability. The minimal proxy implementation does not offer this feature.\n///\n/// @dev Minimal ERC1967 proxy:\n/// An minimal ERC1967 proxy, intended to be upgraded with UUPS.\n/// This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n/// This proxy is automatically verified on Etherscan.\n///\n/// @dev ERC1967I proxy:\n/// An variant of the minimal ERC1967 proxy, with a special code path that activates\n/// if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the\n/// `implementation` address. The returned implementation is guaranteed to be valid if the\n/// keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.\nlibrary LibClone {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The keccak256 of the deployed code for the ERC1967 proxy.\n bytes32 internal constant ERC1967_CODE_HASH =\n 0xaaa52c8cc8a0e3fd27ce756cc6b4e70c51423e9b597b11f32d3e49f8b1fc890d;\n\n /// @dev The keccak256 of the deployed code for the ERC1967I proxy.\n bytes32 internal constant ERC1967I_CODE_HASH =\n 0xce700223c0d4cea4583409accfc45adac4a093b3519998a9cbbe1504dadba6f7;\n\n /// @dev The keccak256 of the deployed code for the ERC1967 beacon proxy.\n bytes32 internal constant ERC1967_BEACON_PROXY_CODE_HASH =\n 0x14044459af17bc4f0f5aa2f658cb692add77d1302c29fe2aebab005eea9d1162;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Unable to deploy the clone.\n error DeploymentFailed();\n\n /// @dev The salt must start with either the zero address or `by`.\n error SaltDoesNotStartWith();\n\n /// @dev The ETH transfer has failed.\n error ETHTransferFailed();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Deploys a clone of `implementation`.\n function clone(address implementation) internal returns (address instance) {\n instance = clone(0, implementation);\n }\n\n /// @dev Deploys a clone of `implementation`.\n /// Deposits `value` ETH during deployment.\n function clone(uint256 value, address implementation) internal returns (address instance) {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * --------------------------------------------------------------------------+\n * CREATION (9 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * --------------------------------------------------------------------------|\n * RUNTIME (44 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * |\n * ::: keep some values in stack ::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 0 0 | |\n * |\n * ::: copy calldata to memory ::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 cds 0 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 cds 0 0 0 0 | |\n * 37 | CALLDATACOPY | 0 0 0 0 | [0..cds): calldata |\n * |\n * ::: delegate call to the implementation contract :::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 0 0 | [0..cds): calldata |\n * 73 addr | PUSH20 addr | addr 0 cds 0 0 0 0 | [0..cds): calldata |\n * 5a | GAS | gas addr 0 cds 0 0 0 0 | [0..cds): calldata |\n * f4 | DELEGATECALL | success 0 0 | [0..cds): calldata |\n * |\n * ::: copy return data to memory :::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | rds rds success 0 0 | [0..cds): calldata |\n * 93 | SWAP4 | 0 rds success 0 rds | [0..cds): calldata |\n * 80 | DUP1 | 0 0 rds success 0 rds | [0..cds): calldata |\n * 3e | RETURNDATACOPY | success 0 rds | [0..rds): returndata |\n * |\n * 60 0x2a | PUSH1 0x2a | 0x2a success 0 rds | [0..rds): returndata |\n * 57 | JUMPI | 0 rds | [0..rds): returndata |\n * |\n * ::: revert :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * --------------------------------------------------------------------------+\n */\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n instance := create(value, 0x0c, 0x35)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Deploys a deterministic clone of `implementation` with `salt`.\n function cloneDeterministic(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic clone of `implementation` with `salt`.\n /// Deposits `value` ETH during deployment.\n function cloneDeterministic(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n instance := create2(value, 0x0c, 0x35, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the initialization code of the clone of `implementation`.\n function initCode(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(add(result, 0x40), 0x5af43d3d93803e602a57fd5bf30000000000000000000000)\n mstore(add(result, 0x28), implementation)\n mstore(add(result, 0x14), 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n mstore(result, 0x35) // Store the length.\n mstore(0x40, add(result, 0x60)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n hash := keccak256(0x0c, 0x35)\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the address of the deterministic clone of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(address implementation, bytes32 salt, address deployer)\n internal\n pure\n returns (address predicted)\n {\n bytes32 hash = initCodeHash(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL PROXY OPERATIONS (PUSH0 VARIANT) */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Deploys a PUSH0 clone of `implementation`.\n function clone_PUSH0(address implementation) internal returns (address instance) {\n instance = clone_PUSH0(0, implementation);\n }\n\n /// @dev Deploys a PUSH0 clone of `implementation`.\n /// Deposits `value` ETH during deployment.\n function clone_PUSH0(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * --------------------------------------------------------------------------+\n * CREATION (9 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 5f | PUSH0 | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 5f | PUSH0 | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * --------------------------------------------------------------------------|\n * RUNTIME (45 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * |\n * ::: keep some values in stack ::::::::::::::::::::::::::::::::::::::::::: |\n * 5f | PUSH0 | 0 | |\n * 5f | PUSH0 | 0 0 | |\n * |\n * ::: copy calldata to memory ::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 | |\n * 5f | PUSH0 | 0 cds 0 0 | |\n * 5f | PUSH0 | 0 0 cds 0 0 | |\n * 37 | CALLDATACOPY | 0 0 | [0..cds): calldata |\n * |\n * ::: delegate call to the implementation contract :::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 | [0..cds): calldata |\n * 5f | PUSH0 | 0 cds 0 0 | [0..cds): calldata |\n * 73 addr | PUSH20 addr | addr 0 cds 0 0 | [0..cds): calldata |\n * 5a | GAS | gas addr 0 cds 0 0 | [0..cds): calldata |\n * f4 | DELEGATECALL | success | [0..cds): calldata |\n * |\n * ::: copy return data to memory :::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success | [0..cds): calldata |\n * 5f | PUSH0 | 0 rds success | [0..cds): calldata |\n * 5f | PUSH0 | 0 0 rds success | [0..cds): calldata |\n * 3e | RETURNDATACOPY | success | [0..rds): returndata |\n * |\n * 60 0x29 | PUSH1 0x29 | 0x29 success | [0..rds): returndata |\n * 57 | JUMPI | | [0..rds): returndata |\n * |\n * ::: revert :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..rds): returndata |\n * 5f | PUSH0 | 0 rds | [0..rds): returndata |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..rds): returndata |\n * 3d | RETURNDATASIZE | rds | [0..rds): returndata |\n * 5f | PUSH0 | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * --------------------------------------------------------------------------+\n */\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n instance := create(value, 0x0e, 0x36)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n function cloneDeterministic_PUSH0(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic_PUSH0(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n /// Deposits `value` ETH during deployment.\n function cloneDeterministic_PUSH0(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n instance := create2(value, 0x0e, 0x36, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the initialization code of the PUSH0 clone of `implementation`.\n function initCode_PUSH0(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(add(result, 0x40), 0x5af43d5f5f3e6029573d5ffd5b3d5ff300000000000000000000) // 16\n mstore(add(result, 0x26), implementation) // 20\n mstore(add(result, 0x12), 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n mstore(result, 0x36) // Store the length.\n mstore(0x40, add(result, 0x60)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the PUSH0 clone of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash_PUSH0(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n hash := keccak256(0x0e, 0x36)\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the address of the deterministic PUSH0 clone of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress_PUSH0(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHash_PUSH0(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CLONES WITH IMMUTABLE ARGS OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This implementation of CWIA differs from the original implementation.\n // If the calldata is empty, it will emit a `ReceiveETH(uint256)` event and skip the `DELEGATECALL`.\n\n /// @dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n function clone(address implementation, bytes memory data) internal returns (address instance) {\n instance = clone(0, implementation, data);\n }\n\n /// @dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n /// Deposits `value` ETH during deployment.\n function clone(uint256 value, address implementation, bytes memory data)\n internal\n returns (address instance)\n {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n // The `creationSize` is `extraLength + 108`\n // The `runSize` is `creationSize - 10`.\n\n /**\n * ---------------------------------------------------------------------------------------------------+\n * CREATION (10 bytes) |\n * ---------------------------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------------------------|\n * 61 runSize | PUSH2 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------------------------|\n * RUNTIME (98 bytes + extraLength) |\n * ---------------------------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------------------------|\n * |\n * ::: if no calldata, emit event & return w/o `DELEGATECALL` ::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 60 0x2c | PUSH1 0x2c | 0x2c cds | |\n * 57 | JUMPI | | |\n * 34 | CALLVALUE | cv | |\n * 3d | RETURNDATASIZE | 0 cv | |\n * 52 | MSTORE | | [0..0x20): callvalue |\n * 7f sig | PUSH32 0x9e.. | sig | [0..0x20): callvalue |\n * 59 | MSIZE | 0x20 sig | [0..0x20): callvalue |\n * 3d | RETURNDATASIZE | 0 0x20 sig | [0..0x20): callvalue |\n * a1 | LOG1 | | [0..0x20): callvalue |\n * 00 | STOP | | [0..0x20): callvalue |\n * 5b | JUMPDEST | | |\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..cds): calldata |\n * |\n * ::: keep some values in stack :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 0 0 | [0..cds): calldata |\n * 61 extra | PUSH2 extra | e 0 0 0 0 | [0..cds): calldata |\n * |\n * ::: copy extra data to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 80 | DUP1 | e e 0 0 0 0 | [0..cds): calldata |\n * 60 0x62 | PUSH1 0x62 | 0x62 e e 0 0 0 0 | [0..cds): calldata |\n * 36 | CALLDATASIZE | cds 0x62 e e 0 0 0 0 | [0..cds): calldata |\n * 39 | CODECOPY | e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * |\n * ::: delegate call to the implementation contract ::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 01 | ADD | cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 3d | RETURNDATASIZE | 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 73 addr | PUSH20 addr | addr 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 5a | GAS | gas addr 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * f4 | DELEGATECALL | success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * |\n * ::: copy return data to memory ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 3d | RETURNDATASIZE | rds rds success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 93 | SWAP4 | 0 rds success 0 rds | [0..cds): calldata, [cds..cds+e): extraData |\n * 80 | DUP1 | 0 0 rds success 0 rds | [0..cds): calldata, [cds..cds+e): extraData |\n * 3e | RETURNDATACOPY | success 0 rds | [0..rds): returndata |\n * |\n * 60 0x60 | PUSH1 0x60 | 0x60 success 0 rds | [0..rds): returndata |\n * 57 | JUMPI | 0 rds | [0..rds): returndata |\n * |\n * ::: revert ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * ---------------------------------------------------------------------------------------------------+\n */\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n // Do a out-of-gas revert if `extraLength` is too big. 0xffff - 0x62 + 0x01 = 0xff9e.\n // The actual EVM limit may be smaller and may change over time.\n sub(data, add(0x59, lt(extraLength, 0xff9e))),\n or(shl(0x78, add(extraLength, 0x62)), 0xfd6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n instance := create(value, sub(data, 0x4c), add(extraLength, 0x6c))\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Deploys a deterministic clone of `implementation`\n /// with immutable arguments encoded in `data` and `salt`.\n function cloneDeterministic(address implementation, bytes memory data, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic(0, implementation, data, salt);\n }\n\n /// @dev Deploys a deterministic clone of `implementation`\n /// with immutable arguments encoded in `data` and `salt`.\n function cloneDeterministic(\n uint256 value,\n address implementation,\n bytes memory data,\n bytes32 salt\n ) internal returns (address instance) {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n // Do a out-of-gas revert if `extraLength` is too big. 0xffff - 0x62 + 0x01 = 0xff9e.\n // The actual EVM limit may be smaller and may change over time.\n sub(data, add(0x59, lt(extraLength, 0xff9e))),\n or(shl(0x78, add(extraLength, 0x62)), 0xfd6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n instance := create2(value, sub(data, 0x4c), add(extraLength, 0x6c), salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`\n /// using immutable arguments encoded in `data`.\n function initCode(address implementation, bytes memory data)\n internal\n pure\n returns (bytes memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let dataLength := mload(data)\n\n // Do a out-of-gas revert if `dataLength` is too big. 0xffff - 0x02 - 0x62 = 0xff9b.\n // The actual EVM limit may be smaller and may change over time.\n returndatacopy(returndatasize(), returndatasize(), gt(dataLength, 0xff9b))\n\n let o := add(result, 0x8c)\n let end := add(o, dataLength)\n\n // Copy the `data` into `result`.\n for { let d := sub(add(data, 0x20), o) } 1 {} {\n mstore(o, mload(add(o, d)))\n o := add(o, 0x20)\n if iszero(lt(o, end)) { break }\n }\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(add(result, 0x6c), 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(add(result, 0x5f), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n add(result, 0x4b),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n add(result, 0x32),\n 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n add(result, 0x12),\n or(shl(0x78, add(extraLength, 0x62)), 0x6100003d81600a3d39f336602c57343d527f)\n )\n mstore(end, shl(0xf0, extraLength))\n mstore(add(end, 0x02), 0) // Zeroize the slot after the result.\n mstore(result, add(extraLength, 0x6c)) // Store the length.\n mstore(0x40, add(0x22, end)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`\n /// using immutable arguments encoded in `data`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash(address implementation, bytes memory data)\n internal\n pure\n returns (bytes32 hash)\n {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // Do a out-of-gas revert if `dataLength` is too big. 0xffff - 0x02 - 0x62 = 0xff9b.\n // The actual EVM limit may be smaller and may change over time.\n returndatacopy(returndatasize(), returndatasize(), gt(dataLength, 0xff9b))\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n sub(data, 0x5a),\n or(shl(0x78, add(extraLength, 0x62)), 0x6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n hash := keccak256(sub(data, 0x4c), add(extraLength, 0x6c))\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Returns the address of the deterministic clone of\n /// `implementation` using immutable arguments encoded in `data`, with `salt`, by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(\n address implementation,\n bytes memory data,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHash(implementation, data);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL ERC1967 PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: The ERC1967 proxy here is intended to be upgraded with UUPS.\n // This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n\n /// @dev Deploys a minimal ERC1967 proxy with `implementation`.\n function deployERC1967(address implementation) internal returns (address instance) {\n instance = deployERC1967(0, implementation);\n }\n\n /// @dev Deploys a minimal ERC1967 proxy with `implementation`.\n /// Deposits `value` ETH during deployment.\n function deployERC1967(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 impl | PUSH20 impl | impl 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos impl 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot impl 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (61 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * 7f slot | PUSH32 slot | s 0 cds 0 0 | [0..calldatasize): calldata |\n * 54 | SLOAD | i 0 cds 0 0 | [0..calldatasize): calldata |\n * 5a | GAS | g i 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x38 | PUSH1 0x38 | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n instance := create(value, 0x21, 0x5f)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n function deployDeterministicERC1967(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n instance := create2(value, 0x21, 0x5f, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967(address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967(0, implementation, salt);\n }\n\n /// @dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967(uint256 value, address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x21, 0x5f))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x21, 0x5f, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`.\n function initCodeERC1967(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x60),\n 0x3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f300\n )\n mstore(\n add(result, 0x40),\n 0x55f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc\n )\n mstore(add(result, 0x20), or(shl(24, implementation), 0x600951))\n mstore(add(result, 0x09), 0x603d3d8160223d3973)\n mstore(result, 0x5f) // Store the length.\n mstore(0x40, add(result, 0x80)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n hash := keccak256(0x21, 0x5f)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967 proxy of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC1967I PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This proxy has a special code path that activates if `calldatasize() == 1`.\n // This code path skips the delegatecall and directly returns the `implementation` address.\n // The returned implementation is guaranteed to be valid if the keccak256 of the\n // proxy's code is equal to `ERC1967I_CODE_HASH`.\n\n /// @dev Deploys a minimal ERC1967I proxy with `implementation`.\n function deployERC1967I(address implementation) internal returns (address instance) {\n instance = deployERC1967I(0, implementation);\n }\n\n /// @dev Deploys a ERC1967I proxy with `implementation`.\n /// Deposits `value` ETH during deployment.\n function deployERC1967I(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 impl | PUSH20 impl | impl 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos impl 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot impl 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (82 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: check calldatasize ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 58 | PC | 1 cds | |\n * 14 | EQ | eqs | |\n * 60 0x43 | PUSH1 0x43 | dest eqs | |\n * 57 | JUMPI | | |\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * 7f slot | PUSH32 slot | s 0 cds 0 0 | [0..calldatasize): calldata |\n * 54 | SLOAD | i 0 cds 0 0 | [0..calldatasize): calldata |\n * 5a | GAS | g i 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x3E | PUSH1 0x3E | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * |\n * ::: implementation , return :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | |\n * 60 0x20 | PUSH1 0x20 | 32 | |\n * 60 0x0F | PUSH1 0x0F | o 32 | |\n * 3d | RETURNDATASIZE | 0 o 32 | |\n * 39 | CODECOPY | | [0..32): implementation slot |\n * 3d | RETURNDATASIZE | 0 | [0..32): implementation slot |\n * 51 | MLOAD | slot | [0..32): implementation slot |\n * 54 | SLOAD | impl | [0..32): implementation slot |\n * 3d | RETURNDATASIZE | 0 impl | [0..32): implementation slot |\n * 52 | MSTORE | | [0..32): implementation address |\n * 59 | MSIZE | 32 | [0..32): implementation address |\n * 3d | RETURNDATASIZE | 0 32 | [0..32): implementation address |\n * f3 | RETURN | | [0..32): implementation address |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n instance := create(value, 0x0c, 0x74)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n function deployDeterministicERC1967I(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967I(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967I(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967I(address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967I(0, implementation, salt);\n }\n\n /// @dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967I(uint256 value, address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x0c, 0x74))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`.\n function initCodeERC1967I(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x74),\n 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3\n )\n mstore(\n add(result, 0x54),\n 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4\n )\n mstore(add(result, 0x34), 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(add(result, 0x1d), implementation)\n mstore(add(result, 0x09), 0x60523d8160223d3973)\n mstore(add(result, 0x94), 0)\n mstore(result, 0x74) // Store the length.\n mstore(0x40, add(result, 0xa0)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967I(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n hash := keccak256(0x0c, 0x74)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967I proxy of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967I(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967I(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANT ERC1967 BOOTSTRAP OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This enables an ERC1967 proxy to be deployed at a deterministic address\n // independent of the implementation:\n // ```\n // address bootstrap = LibClone.constantERC1967Bootstrap();\n // address instance = LibClone.deployDeterministicERC1967(0, bootstrap, salt);\n // LibClone.bootstrapConstantERC1967(bootstrap, implementation);\n // ```\n\n /// @dev Deploys the constant ERC1967 bootstrap if it has not been deployed.\n function constantERC1967Bootstrap() internal returns (address bootstrap) {\n bootstrap = constantERC1967BootstrapAddress();\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(extcodesize(bootstrap)) {\n mstore(0x20, 0x0894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55)\n mstore(0x00, 0x60258060093d393df358357f36)\n if iszero(create2(0, 0x13, 0x2e, 0)) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Returns the implementation address of the ERC1967 bootstrap for this contract.\n function constantERC1967BootstrapAddress() internal view returns (address bootstrap) {\n bytes32 hash = 0xfe1a42b9c571a6a8c083c94ac67b9cfd74e2582923426aa3b762e3431d717cd1;\n bootstrap = predictDeterministicAddress(hash, bytes32(0), address(this));\n }\n\n /// @dev Replaces the implementation at `instance`.\n function bootstrapERC1967(address instance, address implementation) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, shr(96, shl(96, implementation)))\n if iszero(call(gas(), instance, 0, 0x00, 0x20, codesize(), 0x00)) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL ERC1967 BEACON PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: If you use this proxy, you MUST make sure that the beacon is a\n // valid ERC1967 beacon. This means that the beacon must always return a valid\n // address upon a staticcall to `implementation()`, given sufficient gas.\n // For performance, the deployment operations and the proxy assumes that the\n // beacon is always valid and will NOT validate it.\n\n /// @dev Deploys a minimal ERC1967 beacon proxy.\n function deployERC1967BeaconProxy(address beacon) internal returns (address instance) {\n instance = deployERC1967BeaconProxy(0, beacon);\n }\n\n /// @dev Deploys a minimal ERC1967 beacon proxy.\n /// Deposits `value` ETH during deployment.\n function deployERC1967BeaconProxy(uint256 value, address beacon)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 beac | PUSH20 beac | beac 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos beac 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot beac 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (82 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * |\n * ~~~~~~~ beacon staticcall sub procedure ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |\n * 60 0x20 | PUSH1 0x20 | 32 | |\n * 36 | CALLDATASIZE | cds 32 | |\n * 60 0x04 | PUSH1 0x04 | 4 cds 32 | |\n * 36 | CALLDATASIZE | cds 4 cds 32 | |\n * 63 0x5c60da1b | PUSH4 0x5c60da1b | 0x5c60da1b cds 4 cds 32 | |\n * 60 0xe0 | PUSH1 0xe0 | 224 0x5c60da1b cds 4 cds 32 | |\n * 1b | SHL | sel cds 4 cds 32 | |\n * 36 | CALLDATASIZE | cds sel cds 4 cds 32 | |\n * 52 | MSTORE | cds 4 cds 32 | sel |\n * 7f slot | PUSH32 slot | s cds 4 cds 32 | sel |\n * 54 | SLOAD | beac cds 4 cds 32 | sel |\n * 5a | GAS | g beac cds 4 cds 32 | sel |\n * fa | STATICCALL | succ | impl |\n * 50 | POP | | impl |\n * 36 | CALLDATASIZE | cds | impl |\n * 51 | MLOAD | impl | impl |\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |\n * 5a | GAS | g impl 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x4d | PUSH1 0x4d | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n instance := create(value, 0x0c, 0x74)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n function deployDeterministicERC1967BeaconProxy(address beacon, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967BeaconProxy(0, beacon, salt);\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967BeaconProxy(uint256 value, address beacon, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967BeaconProxy(address beacon, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967BeaconProxy(0, beacon, salt);\n }\n\n /// @dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967BeaconProxy(uint256 value, address beacon, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x0c, 0x74))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 beacon proxy.\n function initCodeERC1967BeaconProxy(address beacon)\n internal\n pure\n returns (bytes memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x74),\n 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3\n )\n mstore(\n add(result, 0x54),\n 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c\n )\n mstore(add(result, 0x34), 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(add(result, 0x1d), beacon)\n mstore(add(result, 0x09), 0x60523d8160223d3973)\n mstore(add(result, 0x94), 0)\n mstore(result, 0x74) // Store the length.\n mstore(0x40, add(result, 0xa0)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 beacon proxy.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967BeaconProxy(address beacon) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n hash := keccak256(0x0c, 0x74)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967 beacon proxy,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967BeaconProxy(\n address beacon,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967BeaconProxy(beacon);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OTHER OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the address when a contract with initialization code hash,\n /// `hash`, is deployed with `salt`, by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(bytes32 hash, bytes32 salt, address deployer)\n internal\n pure\n returns (address predicted)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and store the bytecode hash.\n mstore8(0x00, 0xff) // Write the prefix.\n mstore(0x35, hash)\n mstore(0x01, shl(96, deployer))\n mstore(0x15, salt)\n predicted := keccak256(0x00, 0x55)\n mstore(0x35, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Requires that `salt` starts with either the zero address or `by`.\n function checkStartsWith(bytes32 salt, address by) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n // If the salt does not start with the zero address or `by`.\n if iszero(or(iszero(shr(96, salt)), eq(shr(96, shl(96, by)), shr(96, salt)))) {\n mstore(0x00, 0x0c4549ef) // `SaltDoesNotStartWith()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/LibPRNG.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for generating pseudorandom numbers.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)\n/// @author LazyShuffler based on NextShuffler by aschlosberg (divergencearran)\n/// (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)\nlibrary LibPRNG {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The initial length must be greater than zero and less than `2**32 - 1`.\n error InvalidInitialLazyShufflerLength();\n\n /// @dev The new length must not be less than the current length.\n error InvalidNewLazyShufflerLength();\n\n /// @dev The lazy shuffler has not been initialized.\n error LazyShufflerNotInitialized();\n\n /// @dev Cannot double initialize the lazy shuffler.\n error LazyShufflerAlreadyInitialized();\n\n /// @dev The lazy shuffle has finished.\n error LazyShuffleFinished();\n\n /// @dev The queried index is out of bounds.\n error LazyShufflerGetOutOfBounds();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The scalar of ETH and most ERC20s.\n uint256 internal constant WAD = 1e18;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STRUCTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev A pseudorandom number state in memory.\n struct PRNG {\n uint256 state;\n }\n\n /// @dev A lazy Fisher-Yates shuffler for a range `[0..n)` in storage.\n struct LazyShuffler {\n // Bits Layout:\n // - [0..31] `numShuffled`\n // - [32..223] `permutationSlot`\n // - [224..255] `length`\n uint256 _state;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Seeds the `prng` with `state`.\n function seed(PRNG memory prng, uint256 state) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(prng, state)\n }\n }\n\n /// @dev Returns the next pseudorandom uint256.\n /// All bits of the returned uint256 pass the NIST Statistical Test Suite.\n function next(PRNG memory prng) internal pure returns (uint256 result) {\n // We simply use `keccak256` for a great balance between\n // runtime gas costs, bytecode size, and statistical properties.\n //\n // A high-quality LCG with a 32-byte state\n // is only about 30% more gas efficient during runtime,\n // but requires a 32-byte multiplier, which can cause bytecode bloat\n // when this function is inlined.\n //\n // Using this method is about 2x more efficient than\n // `nextRandomness = uint256(keccak256(abi.encode(randomness)))`.\n /// @solidity memory-safe-assembly\n assembly {\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n }\n }\n\n /// @dev Returns a pseudorandom uint256, uniformly distributed\n /// between 0 (inclusive) and `upper` (exclusive).\n /// If your modulus is big, this method is recommended\n /// for uniform sampling to avoid modulo bias.\n /// For uniform sampling across all uint256 values,\n /// or for small enough moduli such that the bias is neligible,\n /// use {next} instead.\n function uniform(PRNG memory prng, uint256 upper) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n for {} 1 {} {\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n if iszero(lt(result, mod(sub(0, upper), upper))) { break }\n }\n result := mod(result, upper)\n }\n }\n\n /// @dev Shuffles the array in-place with Fisher-Yates shuffle.\n function shuffle(PRNG memory prng, uint256[] memory a) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n let n := mload(a)\n let w := not(0)\n let mask := shr(128, w)\n if n {\n for { a := add(a, 0x20) } 1 {} {\n // We can just directly use `keccak256`, cuz\n // the other approaches don't save much.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n\n // Note that there will be a very tiny modulo bias\n // if the length of the array is not a power of 2.\n // For all practical purposes, it is negligible\n // and will not be a fairness or security concern.\n {\n let j := add(a, shl(5, mod(shr(128, r), n)))\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let i := add(a, shl(5, n))\n let t := mload(i)\n mstore(i, mload(j))\n mstore(j, t)\n }\n\n {\n let j := add(a, shl(5, mod(and(r, mask), n)))\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let i := add(a, shl(5, n))\n let t := mload(i)\n mstore(i, mload(j))\n mstore(j, t)\n }\n }\n }\n }\n }\n\n /// @dev Shuffles the bytes in-place with Fisher-Yates shuffle.\n function shuffle(PRNG memory prng, bytes memory a) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n let n := mload(a)\n let w := not(0)\n let mask := shr(128, w)\n if n {\n let b := add(a, 0x01)\n for { a := add(a, 0x20) } 1 {} {\n // We can just directly use `keccak256`, cuz\n // the other approaches don't save much.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n\n // Note that there will be a very tiny modulo bias\n // if the length of the array is not a power of 2.\n // For all practical purposes, it is negligible\n // and will not be a fairness or security concern.\n {\n let o := mod(shr(128, r), n)\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let t := mload(add(b, n))\n mstore8(add(a, n), mload(add(b, o)))\n mstore8(add(a, o), t)\n }\n\n {\n let o := mod(and(r, mask), n)\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let t := mload(add(b, n))\n mstore8(add(a, n), mload(add(b, o)))\n mstore8(add(a, o), t)\n }\n }\n }\n }\n }\n\n /// @dev Returns a sample from the standard normal distribution denominated in `WAD`.\n function standardNormalWad(PRNG memory prng) internal pure returns (int256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Technically, this is the Irwin-Hall distribution with 20 samples.\n // The chance of drawing a sample outside 10 σ from the standard normal distribution\n // is ≈ 0.000000000000000000000015, which is insignificant for most practical purposes.\n // Passes the Kolmogorov-Smirnov test for 200k samples. Uses about 322 gas.\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n let n := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43 // Prime.\n let a := 0x100000000000000000000000000000051 // Prime and a primitive root of `n`.\n let m := 0x1fffffffffffffff1fffffffffffffff1fffffffffffffff1fffffffffffffff\n let s := 0x1000000000000000100000000000000010000000000000001\n let r1 := mulmod(result, a, n)\n let r2 := mulmod(r1, a, n)\n let r3 := mulmod(r2, a, n)\n // forgefmt: disable-next-item\n result := sub(sar(96, mul(26614938895861601847173011183,\n add(add(shr(192, mul(s, add(and(m, result), and(m, r1)))),\n shr(192, mul(s, add(and(m, r2), and(m, r3))))),\n shr(192, mul(s, and(m, mulmod(r3, a, n))))))), 7745966692414833770)\n }\n }\n\n /// @dev Returns a sample from the unit exponential distribution denominated in `WAD`.\n function exponentialWad(PRNG memory prng) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Passes the Kolmogorov-Smirnov test for 200k samples.\n // Gas usage varies, starting from about 172+ gas.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n let p := shl(129, r)\n let w := shl(1, r)\n if iszero(gt(w, p)) {\n let n := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43 // Prime.\n let a := 0x100000000000000000000000000000051 // Prime and a primitive root of `n`.\n for {} 1 {} {\n r := mulmod(r, a, n)\n if iszero(lt(shl(129, r), w)) {\n r := mulmod(r, a, n)\n result := add(1000000000000000000, result)\n w := shl(1, r)\n p := shl(129, r)\n if iszero(lt(w, p)) { break }\n continue\n }\n w := shl(1, r)\n if iszero(lt(w, shl(129, r))) { break }\n }\n }\n result := add(div(p, shl(129, 170141183460469231732)), result)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE-BASED RANGE LAZY SHUFFLING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Initializes the state for lazy-shuffling the range `[0..n)`.\n /// Reverts if `n == 0 || n >= 2**32 - 1`.\n /// Reverts if `$` has already been initialized.\n /// If you need to reduce the length after initialization, just use a fresh new `$`.\n function initialize(LazyShuffler storage $, uint256 n) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(lt(sub(n, 1), 0xfffffffe)) {\n mstore(0x00, 0x83b53941) // `InvalidInitialLazyShufflerLength()`.\n revert(0x1c, 0x04)\n }\n if sload($.slot) {\n mstore(0x00, 0x0c9f11f2) // `LazyShufflerAlreadyInitialized()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, $.slot)\n sstore($.slot, or(shl(224, n), shl(32, shr(64, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Increases the length of `$`.\n /// Reverts if `$` has not been initialized.\n function grow(LazyShuffler storage $, uint256 n) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n // If the new length is smaller than the old length, revert.\n if lt(n, shr(224, state)) {\n mstore(0x00, 0xbed37c6e) // `InvalidNewLazyShufflerLength()`.\n revert(0x1c, 0x04)\n }\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n sstore($.slot, or(shl(224, n), shr(32, shl(32, state))))\n }\n }\n\n /// @dev Restarts the shuffler by setting `numShuffled` to zero,\n /// such that all elements can be drawn again.\n /// Restarting does NOT clear the internal permutation, nor changes the length.\n /// Even with the same sequence of randomness, reshuffling can yield different results.\n function restart(LazyShuffler storage $) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot)\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n sstore($.slot, shl(32, shr(32, state)))\n }\n }\n\n /// @dev Returns the number of elements that have been shuffled.\n function numShuffled(LazyShuffler storage $) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := and(0xffffffff, sload($.slot))\n }\n }\n\n /// @dev Returns the length of `$`.\n /// Returns zero if `$` is not initialized, else a non-zero value less than `2**32 - 1`.\n function length(LazyShuffler storage $) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := shr(224, sload($.slot))\n }\n }\n\n /// @dev Returns if `$` has been initialized.\n function initialized(LazyShuffler storage $) internal view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := iszero(iszero(sload($.slot)))\n }\n }\n\n /// @dev Returns if there are any more elements left to shuffle.\n /// Reverts if `$` is not initialized.\n function finished(LazyShuffler storage $) internal view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n result := eq(shr(224, state), and(0xffffffff, state))\n }\n }\n\n /// @dev Returns the current value stored at `index`, accounting for all historical shuffling.\n /// Reverts if `index` is greater than or equal to the `length` of `$`.\n function get(LazyShuffler storage $, uint256 index) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n let n := shr(224, state) // Length of `$`.\n if iszero(lt(index, n)) {\n mstore(0x00, 0x61367cc4) // `LazyShufflerGetOutOfBounds()`.\n revert(0x1c, 0x04)\n }\n let u32 := gt(n, 0xfffe)\n let s := add(shr(sub(4, u32), index), shr(64, shl(32, state))) // Bucket slot.\n let o := shl(add(4, u32), and(index, shr(u32, 15))) // Bucket slot offset (bits).\n let m := sub(shl(shl(u32, 16), 1), 1) // Value mask.\n result := and(m, shr(o, sload(s)))\n result := xor(index, mul(xor(index, sub(result, 1)), iszero(iszero(result))))\n }\n }\n\n /// @dev Does a single Fisher-Yates shuffle step, increments the `numShuffled` in `$`,\n /// and returns the next value in the shuffled range.\n /// `randomness` can be taken from a good-enough source, or a higher quality source like VRF.\n /// Reverts if there are no more values to shuffle, which includes the case if `$` is not initialized.\n function next(LazyShuffler storage $, uint256 randomness) internal returns (uint256 chosen) {\n /// @solidity memory-safe-assembly\n assembly {\n function _get(u32_, state_, i_) -> _value {\n let s_ := add(shr(sub(4, u32_), i_), shr(64, shl(32, state_))) // Bucket slot.\n let o_ := shl(add(4, u32_), and(i_, shr(u32_, 15))) // Bucket slot offset (bits).\n let m_ := sub(shl(shl(u32_, 16), 1), 1) // Value mask.\n _value := and(m_, shr(o_, sload(s_)))\n _value := xor(i_, mul(xor(i_, sub(_value, 1)), iszero(iszero(_value))))\n }\n function _set(u32_, state_, i_, value_) {\n let s_ := add(shr(sub(4, u32_), i_), shr(64, shl(32, state_))) // Bucket slot.\n let o_ := shl(add(4, u32_), and(i_, shr(u32_, 15))) // Bucket slot offset (bits).\n let m_ := sub(shl(shl(u32_, 16), 1), 1) // Value mask.\n let v_ := sload(s_) // Bucket slot value.\n value_ := mul(iszero(eq(i_, value_)), add(value_, 1))\n sstore(s_, xor(v_, shl(o_, and(m_, xor(shr(o_, v_), value_)))))\n }\n let state := sload($.slot) // The packed value at `$`.\n let shuffled := and(0xffffffff, state) // Number of elements shuffled.\n let n := shr(224, state) // Length of `$`.\n let remainder := sub(n, shuffled) // Number of elements left to shuffle.\n if iszero(remainder) {\n mstore(0x00, 0x51065f79) // `LazyShuffleFinished()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, randomness) // (Re)hash the randomness so that we don't\n mstore(0x20, shuffled) // need to expect guarantees on its distribution.\n let index := add(mod(keccak256(0x00, 0x40), remainder), shuffled)\n chosen := _get(gt(n, 0xfffe), state, index)\n _set(gt(n, 0xfffe), state, index, _get(gt(n, 0xfffe), state, shuffled))\n _set(gt(n, 0xfffe), state, shuffled, chosen)\n sstore($.slot, add(1, state)) // Increment the `numShuffled` by 1, and store it.\n }\n }\n}\n"},"@solady/utils/LibString.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for converting numbers into strings and other string operations.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\n///\n/// @dev Note:\n/// For performance and bytecode compactness, most of the string operations are restricted to\n/// byte strings (7-bit ASCII), except where otherwise specified.\n/// Usage of byte string operations on charsets with runes spanning two or more bytes\n/// can lead to undefined behavior.\nlibrary LibString {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The length of the output is too small to contain all the hex digits.\n error HexLengthInsufficient();\n\n /// @dev The length of the string is more than 32 bytes.\n error TooBigForSmallString();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The constant returned when the `search` is not found in the string.\n uint256 internal constant NOT_FOUND = type(uint256).max;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* DECIMAL OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the base 10 decimal representation of `value`.\n function toString(uint256 value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n // The maximum value of a uint256 contains 78 digits (1 byte per digit), but\n // we allocate 0xa0 bytes to keep the free memory pointer 32-byte word aligned.\n // We will need 1 word for the trailing zeros padding, 1 word for the length,\n // and 3 words for a maximum of 78 digits.\n str := add(mload(0x40), 0x80)\n // Update the free memory pointer to allocate.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end of the memory to calculate the length later.\n let end := str\n\n let w := not(0) // Tsk.\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let temp := value } 1 {} {\n str := add(str, w) // `sub(str, 1)`.\n // Write the character to the pointer.\n // The ASCII index of the '0' character is 48.\n mstore8(str, add(48, mod(temp, 10)))\n // Keep dividing `temp` until zero.\n temp := div(temp, 10)\n if iszero(temp) { break }\n }\n\n let length := sub(end, str)\n // Move the pointer 32 bytes leftwards to make room for the length.\n str := sub(str, 0x20)\n // Store the length.\n mstore(str, length)\n }\n }\n\n /// @dev Returns the base 10 decimal representation of `value`.\n function toString(int256 value) internal pure returns (string memory str) {\n if (value >= 0) {\n return toString(uint256(value));\n }\n unchecked {\n str = toString(~uint256(value) + 1);\n }\n /// @solidity memory-safe-assembly\n assembly {\n // We still have some spare memory space on the left,\n // as we have allocated 3 words (96 bytes) for up to 78 digits.\n let length := mload(str) // Load the string length.\n mstore(str, 0x2d) // Store the '-' character.\n str := sub(str, 1) // Move back the string pointer by a byte.\n mstore(str, add(length, 1)) // Update the string length.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HEXADECIMAL OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the hexadecimal representation of `value`,\n /// left-padded to an input length of `length` bytes.\n /// The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n /// giving a total length of `length * 2 + 2` bytes.\n /// Reverts if `length` is too small for the output to contain all the digits.\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value, length);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`,\n /// left-padded to an input length of `length` bytes.\n /// The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n /// giving a total length of `length * 2` bytes.\n /// Reverts if `length` is too small for the output to contain all the digits.\n function toHexStringNoPrefix(uint256 value, uint256 length)\n internal\n pure\n returns (string memory str)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // We need 0x20 bytes for the trailing zeros padding, `length * 2` bytes\n // for the digits, 0x02 bytes for the prefix, and 0x20 bytes for the length.\n // We add 0x20 to the total and round down to a multiple of 0x20.\n // (0x20 + 0x20 + 0x02 + 0x20) = 0x62.\n str := add(mload(0x40), and(add(shl(1, length), 0x42), not(0x1f)))\n // Allocate the memory.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end to calculate the length later.\n let end := str\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let start := sub(str, add(length, length))\n let w := not(1) // Tsk.\n let temp := value\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for {} 1 {} {\n str := add(str, w) // `sub(str, 2)`.\n mstore8(add(str, 1), mload(and(temp, 15)))\n mstore8(str, mload(and(shr(4, temp), 15)))\n temp := shr(8, temp)\n if iszero(xor(str, start)) { break }\n }\n\n if temp {\n mstore(0x00, 0x2194895a) // `HexLengthInsufficient()`.\n revert(0x1c, 0x04)\n }\n\n // Compute the string's length.\n let strLength := sub(end, str)\n // Move the pointer and write the length.\n str := sub(str, 0x20)\n mstore(str, strLength)\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n /// As address are 20 bytes long, the output will left-padded to have\n /// a length of `20 * 2 + 2` bytes.\n function toHexString(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\".\n /// The output excludes leading \"0\" from the `toHexString` output.\n /// `0x00: \"0x0\", 0x01: \"0x1\", 0x12: \"0x12\", 0x123: \"0x123\"`.\n function toMinimalHexString(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let o := eq(byte(0, mload(add(str, 0x20))), 0x30) // Whether leading zero is present.\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(add(str, o), 0x3078) // Write the \"0x\" prefix, accounting for leading zero.\n str := sub(add(str, o), 2) // Move the pointer, accounting for leading zero.\n mstore(str, sub(strLength, o)) // Write the length, accounting for leading zero.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output excludes leading \"0\" from the `toHexStringNoPrefix` output.\n /// `0x00: \"0\", 0x01: \"1\", 0x12: \"12\", 0x123: \"123\"`.\n function toMinimalHexStringNoPrefix(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let o := eq(byte(0, mload(add(str, 0x20))), 0x30) // Whether leading zero is present.\n let strLength := mload(str) // Get the length.\n str := add(str, o) // Move the pointer, accounting for leading zero.\n mstore(str, sub(strLength, o)) // Write the length, accounting for leading zero.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is encoded using 2 hexadecimal digits per byte.\n /// As address are 20 bytes long, the output will left-padded to have\n /// a length of `20 * 2` bytes.\n function toHexStringNoPrefix(uint256 value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n // We need 0x20 bytes for the trailing zeros padding, 0x20 bytes for the length,\n // 0x02 bytes for the prefix, and 0x40 bytes for the digits.\n // The next multiple of 0x20 above (0x20 + 0x20 + 0x02 + 0x40) is 0xa0.\n str := add(mload(0x40), 0x80)\n // Allocate the memory.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end to calculate the length later.\n let end := str\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let w := not(1) // Tsk.\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let temp := value } 1 {} {\n str := add(str, w) // `sub(str, 2)`.\n mstore8(add(str, 1), mload(and(temp, 15)))\n mstore8(str, mload(and(shr(4, temp), 15)))\n temp := shr(8, temp)\n if iszero(temp) { break }\n }\n\n // Compute the string's length.\n let strLength := sub(end, str)\n // Move the pointer and write the length.\n str := sub(str, 0x20)\n mstore(str, strLength)\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\", encoded using 2 hexadecimal digits per byte,\n /// and the alphabets are capitalized conditionally according to\n /// https://eips.ethereum.org/EIPS/eip-55\n function toHexStringChecksummed(address value) internal pure returns (string memory str) {\n str = toHexString(value);\n /// @solidity memory-safe-assembly\n assembly {\n let mask := shl(6, div(not(0), 255)) // `0b010000000100000000 ...`\n let o := add(str, 0x22)\n let hashed := and(keccak256(o, 40), mul(34, mask)) // `0b10001000 ... `\n let t := shl(240, 136) // `0b10001000 << 240`\n for { let i := 0 } 1 {} {\n mstore(add(i, i), mul(t, byte(i, hashed)))\n i := add(i, 1)\n if eq(i, 20) { break }\n }\n mstore(o, xor(mload(o), shr(1, and(mload(0x00), and(mload(o), mask)))))\n o := add(o, 0x20)\n mstore(o, xor(mload(o), shr(1, and(mload(0x20), and(mload(o), mask)))))\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n function toHexString(address value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexStringNoPrefix(address value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n str := mload(0x40)\n\n // Allocate the memory.\n // We need 0x20 bytes for the trailing zeros padding, 0x20 bytes for the length,\n // 0x02 bytes for the prefix, and 0x28 bytes for the digits.\n // The next multiple of 0x20 above (0x20 + 0x20 + 0x02 + 0x28) is 0x80.\n mstore(0x40, add(str, 0x80))\n\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n str := add(str, 2)\n mstore(str, 40)\n\n let o := add(str, 0x20)\n mstore(add(o, 40), 0)\n\n value := shl(96, value)\n\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let i := 0 } 1 {} {\n let p := add(o, add(i, i))\n let temp := byte(i, value)\n mstore8(add(p, 1), mload(and(temp, 15)))\n mstore8(p, mload(shr(4, temp)))\n i := add(i, 1)\n if eq(i, 20) { break }\n }\n }\n }\n\n /// @dev Returns the hex encoded string from the raw bytes.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexString(bytes memory raw) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(raw);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hex encoded string from the raw bytes.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexStringNoPrefix(bytes memory raw) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(raw)\n str := add(mload(0x40), 2) // Skip 2 bytes for the optional prefix.\n mstore(str, add(length, length)) // Store the length of the output.\n\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let o := add(str, 0x20)\n let end := add(raw, length)\n\n for {} iszero(eq(raw, end)) {} {\n raw := add(raw, 1)\n mstore8(add(o, 1), mload(and(mload(raw), 15)))\n mstore8(o, mload(and(shr(4, mload(raw)), 15)))\n o := add(o, 2)\n }\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* RUNE STRING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the number of UTF characters in the string.\n function runeCount(string memory s) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n if mload(s) {\n mstore(0x00, div(not(0), 255))\n mstore(0x20, 0x0202020202020202020202020202020202020202020202020303030304040506)\n let o := add(s, 0x20)\n let end := add(o, mload(s))\n for { result := 1 } 1 { result := add(result, 1) } {\n o := add(o, byte(0, mload(shr(250, mload(o)))))\n if iszero(lt(o, end)) { break }\n }\n }\n }\n }\n\n /// @dev Returns if this string is a 7-bit ASCII string.\n /// (i.e. all characters codes are in [0..127])\n function is7BitASCII(string memory s) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let mask := shl(7, div(not(0), 255))\n result := 1\n let n := mload(s)\n if n {\n let o := add(s, 0x20)\n let end := add(o, n)\n let last := mload(end)\n mstore(end, 0)\n for {} 1 {} {\n if and(mask, mload(o)) {\n result := 0\n break\n }\n o := add(o, 0x20)\n if iszero(lt(o, end)) { break }\n }\n mstore(end, last)\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* BYTE STRING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // For performance and bytecode compactness, byte string operations are restricted\n // to 7-bit ASCII strings. All offsets are byte offsets, not UTF character offsets.\n // Usage of byte string operations on charsets with runes spanning two or more bytes\n // can lead to undefined behavior.\n\n /// @dev Returns `subject` all occurrences of `search` replaced with `replacement`.\n function replace(string memory subject, string memory search, string memory replacement)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n let searchLength := mload(search)\n let replacementLength := mload(replacement)\n\n subject := add(subject, 0x20)\n search := add(search, 0x20)\n replacement := add(replacement, 0x20)\n result := add(mload(0x40), 0x20)\n\n let subjectEnd := add(subject, subjectLength)\n if iszero(gt(searchLength, subjectLength)) {\n let subjectSearchEnd := add(sub(subjectEnd, searchLength), 1)\n let h := 0\n if iszero(lt(searchLength, 0x20)) { h := keccak256(search, searchLength) }\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(search)\n for {} 1 {} {\n let t := mload(subject)\n // Whether the first `searchLength % 32` bytes of\n // `subject` and `search` matches.\n if iszero(shr(m, xor(t, s))) {\n if h {\n if iszero(eq(keccak256(subject, searchLength), h)) {\n mstore(result, t)\n result := add(result, 1)\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n // Copy the `replacement` one word at a time.\n for { let o := 0 } 1 {} {\n mstore(add(result, o), mload(add(replacement, o)))\n o := add(o, 0x20)\n if iszero(lt(o, replacementLength)) { break }\n }\n result := add(result, replacementLength)\n subject := add(subject, searchLength)\n if searchLength {\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n mstore(result, t)\n result := add(result, 1)\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n }\n }\n\n let resultRemainder := result\n result := add(mload(0x40), 0x20)\n let k := add(sub(resultRemainder, result), sub(subjectEnd, subject))\n // Copy the rest of the string one word at a time.\n for {} lt(subject, subjectEnd) {} {\n mstore(resultRemainder, mload(subject))\n resultRemainder := add(resultRemainder, 0x20)\n subject := add(subject, 0x20)\n }\n result := sub(result, 0x20)\n let last := add(add(result, 0x20), k) // Zeroize the slot after the string.\n mstore(last, 0)\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n mstore(result, k) // Store the length.\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from left to right, starting from `from`.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function indexOf(string memory subject, string memory search, uint256 from)\n internal\n pure\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n for { let subjectLength := mload(subject) } 1 {} {\n if iszero(mload(search)) {\n if iszero(gt(from, subjectLength)) {\n result := from\n break\n }\n result := subjectLength\n break\n }\n let searchLength := mload(search)\n let subjectStart := add(subject, 0x20)\n\n result := not(0) // Initialize to `NOT_FOUND`.\n\n subject := add(subjectStart, from)\n let end := add(sub(add(subjectStart, subjectLength), searchLength), 1)\n\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(add(search, 0x20))\n\n if iszero(and(lt(subject, end), lt(from, subjectLength))) { break }\n\n if iszero(lt(searchLength, 0x20)) {\n for { let h := keccak256(add(search, 0x20), searchLength) } 1 {} {\n if iszero(shr(m, xor(mload(subject), s))) {\n if eq(keccak256(subject, searchLength), h) {\n result := sub(subject, subjectStart)\n break\n }\n }\n subject := add(subject, 1)\n if iszero(lt(subject, end)) { break }\n }\n break\n }\n for {} 1 {} {\n if iszero(shr(m, xor(mload(subject), s))) {\n result := sub(subject, subjectStart)\n break\n }\n subject := add(subject, 1)\n if iszero(lt(subject, end)) { break }\n }\n break\n }\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from left to right.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function indexOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256 result)\n {\n result = indexOf(subject, search, 0);\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from right to left, starting from `from`.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function lastIndexOf(string memory subject, string memory search, uint256 from)\n internal\n pure\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n for {} 1 {} {\n result := not(0) // Initialize to `NOT_FOUND`.\n let searchLength := mload(search)\n if gt(searchLength, mload(subject)) { break }\n let w := result\n\n let fromMax := sub(mload(subject), searchLength)\n if iszero(gt(fromMax, from)) { from := fromMax }\n\n let end := add(add(subject, 0x20), w)\n subject := add(add(subject, 0x20), from)\n if iszero(gt(subject, end)) { break }\n // As this function is not too often used,\n // we shall simply use keccak256 for smaller bytecode size.\n for { let h := keccak256(add(search, 0x20), searchLength) } 1 {} {\n if eq(keccak256(subject, searchLength), h) {\n result := sub(subject, add(end, 1))\n break\n }\n subject := add(subject, w) // `sub(subject, 1)`.\n if iszero(gt(subject, end)) { break }\n }\n break\n }\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from right to left.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function lastIndexOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256 result)\n {\n result = lastIndexOf(subject, search, uint256(int256(-1)));\n }\n\n /// @dev Returns true if `search` is found in `subject`, false otherwise.\n function contains(string memory subject, string memory search) internal pure returns (bool) {\n return indexOf(subject, search) != NOT_FOUND;\n }\n\n /// @dev Returns whether `subject` starts with `search`.\n function startsWith(string memory subject, string memory search)\n internal\n pure\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let searchLength := mload(search)\n // Just using keccak256 directly is actually cheaper.\n // forgefmt: disable-next-item\n result := and(\n iszero(gt(searchLength, mload(subject))),\n eq(\n keccak256(add(subject, 0x20), searchLength),\n keccak256(add(search, 0x20), searchLength)\n )\n )\n }\n }\n\n /// @dev Returns whether `subject` ends with `search`.\n function endsWith(string memory subject, string memory search)\n internal\n pure\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let searchLength := mload(search)\n let subjectLength := mload(subject)\n // Whether `search` is not longer than `subject`.\n let withinRange := iszero(gt(searchLength, subjectLength))\n // Just using keccak256 directly is actually cheaper.\n // forgefmt: disable-next-item\n result := and(\n withinRange,\n eq(\n keccak256(\n // `subject + 0x20 + max(subjectLength - searchLength, 0)`.\n add(add(subject, 0x20), mul(withinRange, sub(subjectLength, searchLength))),\n searchLength\n ),\n keccak256(add(search, 0x20), searchLength)\n )\n )\n }\n }\n\n /// @dev Returns `subject` repeated `times`.\n function repeat(string memory subject, uint256 times)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n if iszero(or(iszero(times), iszero(subjectLength))) {\n subject := add(subject, 0x20)\n result := mload(0x40)\n let output := add(result, 0x20)\n for {} 1 {} {\n // Copy the `subject` one word at a time.\n for { let o := 0 } 1 {} {\n mstore(add(output, o), mload(add(subject, o)))\n o := add(o, 0x20)\n if iszero(lt(o, subjectLength)) { break }\n }\n output := add(output, subjectLength)\n times := sub(times, 1)\n if iszero(times) { break }\n }\n mstore(output, 0) // Zeroize the slot after the string.\n let resultLength := sub(output, add(result, 0x20))\n mstore(result, resultLength) // Store the length.\n // Allocate the memory.\n mstore(0x40, add(result, add(resultLength, 0x20)))\n }\n }\n }\n\n /// @dev Returns a copy of `subject` sliced from `start` to `end` (exclusive).\n /// `start` and `end` are byte offsets.\n function slice(string memory subject, uint256 start, uint256 end)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n if iszero(gt(subjectLength, end)) { end := subjectLength }\n if iszero(gt(subjectLength, start)) { start := subjectLength }\n if lt(start, end) {\n result := mload(0x40)\n let resultLength := sub(end, start)\n mstore(result, resultLength)\n subject := add(subject, start)\n let w := not(0x1f)\n // Copy the `subject` one word at a time, backwards.\n for { let o := and(add(resultLength, 0x1f), w) } 1 {} {\n mstore(add(result, o), mload(add(subject, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n // Zeroize the slot after the string.\n mstore(add(add(result, 0x20), resultLength), 0)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, add(result, and(add(resultLength, 0x3f), w)))\n }\n }\n }\n\n /// @dev Returns a copy of `subject` sliced from `start` to the end of the string.\n /// `start` is a byte offset.\n function slice(string memory subject, uint256 start)\n internal\n pure\n returns (string memory result)\n {\n result = slice(subject, start, uint256(int256(-1)));\n }\n\n /// @dev Returns all the indices of `search` in `subject`.\n /// The indices are byte offsets.\n function indicesOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256[] memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n let searchLength := mload(search)\n\n if iszero(gt(searchLength, subjectLength)) {\n subject := add(subject, 0x20)\n search := add(search, 0x20)\n result := add(mload(0x40), 0x20)\n\n let subjectStart := subject\n let subjectSearchEnd := add(sub(add(subject, subjectLength), searchLength), 1)\n let h := 0\n if iszero(lt(searchLength, 0x20)) { h := keccak256(search, searchLength) }\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(search)\n for {} 1 {} {\n let t := mload(subject)\n // Whether the first `searchLength % 32` bytes of\n // `subject` and `search` matches.\n if iszero(shr(m, xor(t, s))) {\n if h {\n if iszero(eq(keccak256(subject, searchLength), h)) {\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n // Append to `result`.\n mstore(result, sub(subject, subjectStart))\n result := add(result, 0x20)\n // Advance `subject` by `searchLength`.\n subject := add(subject, searchLength)\n if searchLength {\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n }\n let resultEnd := result\n // Assign `result` to the free memory pointer.\n result := mload(0x40)\n // Store the length of `result`.\n mstore(result, shr(5, sub(resultEnd, add(result, 0x20))))\n // Allocate memory for result.\n // We allocate one more word, so this array can be recycled for {split}.\n mstore(0x40, add(resultEnd, 0x20))\n }\n }\n }\n\n /// @dev Returns a arrays of strings based on the `delimiter` inside of the `subject` string.\n function split(string memory subject, string memory delimiter)\n internal\n pure\n returns (string[] memory result)\n {\n uint256[] memory indices = indicesOf(subject, delimiter);\n /// @solidity memory-safe-assembly\n assembly {\n let w := not(0x1f)\n let indexPtr := add(indices, 0x20)\n let indicesEnd := add(indexPtr, shl(5, add(mload(indices), 1)))\n mstore(add(indicesEnd, w), mload(subject))\n mstore(indices, add(mload(indices), 1))\n let prevIndex := 0\n for {} 1 {} {\n let index := mload(indexPtr)\n mstore(indexPtr, 0x60)\n if iszero(eq(index, prevIndex)) {\n let element := mload(0x40)\n let elementLength := sub(index, prevIndex)\n mstore(element, elementLength)\n // Copy the `subject` one word at a time, backwards.\n for { let o := and(add(elementLength, 0x1f), w) } 1 {} {\n mstore(add(element, o), mload(add(add(subject, prevIndex), o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n // Zeroize the slot after the string.\n mstore(add(add(element, 0x20), elementLength), 0)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, add(element, and(add(elementLength, 0x3f), w)))\n // Store the `element` into the array.\n mstore(indexPtr, element)\n }\n prevIndex := add(index, mload(delimiter))\n indexPtr := add(indexPtr, 0x20)\n if iszero(lt(indexPtr, indicesEnd)) { break }\n }\n result := indices\n if iszero(mload(delimiter)) {\n result := add(indices, 0x20)\n mstore(result, sub(mload(indices), 2))\n }\n }\n }\n\n /// @dev Returns a concatenated string of `a` and `b`.\n /// Cheaper than `string.concat()` and does not de-align the free memory pointer.\n function concat(string memory a, string memory b)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let w := not(0x1f)\n result := mload(0x40)\n let aLength := mload(a)\n // Copy `a` one word at a time, backwards.\n for { let o := and(add(aLength, 0x20), w) } 1 {} {\n mstore(add(result, o), mload(add(a, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n let bLength := mload(b)\n let output := add(result, aLength)\n // Copy `b` one word at a time, backwards.\n for { let o := and(add(bLength, 0x20), w) } 1 {} {\n mstore(add(output, o), mload(add(b, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n let totalLength := add(aLength, bLength)\n let last := add(add(result, 0x20), totalLength)\n // Zeroize the slot after the string.\n mstore(last, 0)\n // Stores the length.\n mstore(result, totalLength)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, and(add(last, 0x1f), w))\n }\n }\n\n /// @dev Returns a copy of the string in either lowercase or UPPERCASE.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function toCase(string memory subject, bool toUpper)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(subject)\n if length {\n result := add(mload(0x40), 0x20)\n subject := add(subject, 1)\n let flags := shl(add(70, shl(5, toUpper)), 0x3ffffff)\n let w := not(0)\n for { let o := length } 1 {} {\n o := add(o, w)\n let b := and(0xff, mload(add(subject, o)))\n mstore8(add(result, o), xor(b, and(shr(b, flags), 0x20)))\n if iszero(o) { break }\n }\n result := mload(0x40)\n mstore(result, length) // Store the length.\n let last := add(add(result, 0x20), length)\n mstore(last, 0) // Zeroize the slot after the string.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n }\n\n /// @dev Returns a string from a small bytes32 string.\n /// `s` must be null-terminated, or behavior will be undefined.\n function fromSmallString(bytes32 s) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let n := 0\n for {} byte(n, s) { n := add(n, 1) } {} // Scan for '\\0'.\n mstore(result, n)\n let o := add(result, 0x20)\n mstore(o, s)\n mstore(add(o, n), 0)\n mstore(0x40, add(result, 0x40))\n }\n }\n\n /// @dev Returns the small string, with all bytes after the first null byte zeroized.\n function normalizeSmallString(bytes32 s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n for {} byte(result, s) { result := add(result, 1) } {} // Scan for '\\0'.\n mstore(0x00, s)\n mstore(result, 0x00)\n result := mload(0x00)\n }\n }\n\n /// @dev Returns the string as a normalized null-terminated small string.\n function toSmallString(string memory s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(s)\n if iszero(lt(result, 33)) {\n mstore(0x00, 0xec92f9a3) // `TooBigForSmallString()`.\n revert(0x1c, 0x04)\n }\n result := shl(shl(3, sub(32, result)), mload(add(s, result)))\n }\n }\n\n /// @dev Returns a lowercased copy of the string.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function lower(string memory subject) internal pure returns (string memory result) {\n result = toCase(subject, false);\n }\n\n /// @dev Returns an UPPERCASED copy of the string.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function upper(string memory subject) internal pure returns (string memory result) {\n result = toCase(subject, true);\n }\n\n /// @dev Escapes the string to be used within HTML tags.\n function escapeHTML(string memory s) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n let end := add(s, mload(s))\n result := add(mload(0x40), 0x20)\n // Store the bytes of the packed offsets and strides into the scratch space.\n // `packed = (stride << 5) | offset`. Max offset is 20. Max stride is 6.\n mstore(0x1f, 0x900094)\n mstore(0x08, 0xc0000000a6ab)\n // Store \""&'<>\" into the scratch space.\n mstore(0x00, shl(64, 0x2671756f743b26616d703b262333393b266c743b2667743b))\n for {} iszero(eq(s, end)) {} {\n s := add(s, 1)\n let c := and(mload(s), 0xff)\n // Not in `[\"\\\"\",\"'\",\"&\",\"<\",\">\"]`.\n if iszero(and(shl(c, 1), 0x500000c400000000)) {\n mstore8(result, c)\n result := add(result, 1)\n continue\n }\n let t := shr(248, mload(c))\n mstore(result, mload(and(t, 0x1f)))\n result := add(result, shr(5, t))\n }\n let last := result\n mstore(last, 0) // Zeroize the slot after the string.\n result := mload(0x40)\n mstore(result, sub(last, add(result, 0x20))) // Store the length.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Escapes the string to be used within double-quotes in a JSON.\n /// If `addDoubleQuotes` is true, the result will be enclosed in double-quotes.\n function escapeJSON(string memory s, bool addDoubleQuotes)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let end := add(s, mload(s))\n result := add(mload(0x40), 0x20)\n if addDoubleQuotes {\n mstore8(result, 34)\n result := add(1, result)\n }\n // Store \"\\\\u0000\" in scratch space.\n // Store \"0123456789abcdef\" in scratch space.\n // Also, store `{0x08:\"b\", 0x09:\"t\", 0x0a:\"n\", 0x0c:\"f\", 0x0d:\"r\"}`.\n // into the scratch space.\n mstore(0x15, 0x5c75303030303031323334353637383961626364656662746e006672)\n // Bitmask for detecting `[\"\\\"\",\"\\\\\"]`.\n let e := or(shl(0x22, 1), shl(0x5c, 1))\n for {} iszero(eq(s, end)) {} {\n s := add(s, 1)\n let c := and(mload(s), 0xff)\n if iszero(lt(c, 0x20)) {\n if iszero(and(shl(c, 1), e)) {\n // Not in `[\"\\\"\",\"\\\\\"]`.\n mstore8(result, c)\n result := add(result, 1)\n continue\n }\n mstore8(result, 0x5c) // \"\\\\\".\n mstore8(add(result, 1), c)\n result := add(result, 2)\n continue\n }\n if iszero(and(shl(c, 1), 0x3700)) {\n // Not in `[\"\\b\",\"\\t\",\"\\n\",\"\\f\",\"\\d\"]`.\n mstore8(0x1d, mload(shr(4, c))) // Hex value.\n mstore8(0x1e, mload(and(c, 15))) // Hex value.\n mstore(result, mload(0x19)) // \"\\\\u00XX\".\n result := add(result, 6)\n continue\n }\n mstore8(result, 0x5c) // \"\\\\\".\n mstore8(add(result, 1), mload(add(c, 8)))\n result := add(result, 2)\n }\n if addDoubleQuotes {\n mstore8(result, 34)\n result := add(1, result)\n }\n let last := result\n mstore(last, 0) // Zeroize the slot after the string.\n result := mload(0x40)\n mstore(result, sub(last, add(result, 0x20))) // Store the length.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Escapes the string to be used within double-quotes in a JSON.\n function escapeJSON(string memory s) internal pure returns (string memory result) {\n result = escapeJSON(s, false);\n }\n\n /// @dev Returns whether `a` equals `b`.\n function eq(string memory a, string memory b) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := eq(keccak256(add(a, 0x20), mload(a)), keccak256(add(b, 0x20), mload(b)))\n }\n }\n\n /// @dev Returns whether `a` equals `b`, where `b` is a null-terminated small string.\n function eqs(string memory a, bytes32 b) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n // These should be evaluated on compile time, as far as possible.\n let m := not(shl(7, div(not(iszero(b)), 255))) // `0x7f7f ...`.\n let x := not(or(m, or(b, add(m, and(b, m)))))\n let r := shl(7, iszero(iszero(shr(128, x))))\n r := or(r, shl(6, iszero(iszero(shr(64, shr(r, x))))))\n r := or(r, shl(5, lt(0xffffffff, shr(r, x))))\n r := or(r, shl(4, lt(0xffff, shr(r, x))))\n r := or(r, shl(3, lt(0xff, shr(r, x))))\n // forgefmt: disable-next-item\n result := gt(eq(mload(a), add(iszero(x), xor(31, shr(3, r)))),\n xor(shr(add(8, r), b), shr(add(8, r), mload(add(a, 0x20)))))\n }\n }\n\n /// @dev Packs a single string with its length into a single word.\n /// Returns `bytes32(0)` if the length is zero or greater than 31.\n function packOne(string memory a) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // We don't need to zero right pad the string,\n // since this is our own custom non-standard packing scheme.\n result :=\n mul(\n // Load the length and the bytes.\n mload(add(a, 0x1f)),\n // `length != 0 && length < 32`. Abuses underflow.\n // Assumes that the length is valid and within the block gas limit.\n lt(sub(mload(a), 1), 0x1f)\n )\n }\n }\n\n /// @dev Unpacks a string packed using {packOne}.\n /// Returns the empty string if `packed` is `bytes32(0)`.\n /// If `packed` is not an output of {packOne}, the output behavior is undefined.\n function unpackOne(bytes32 packed) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the free memory pointer.\n result := mload(0x40)\n // Allocate 2 words (1 for the length, 1 for the bytes).\n mstore(0x40, add(result, 0x40))\n // Zeroize the length slot.\n mstore(result, 0)\n // Store the length and bytes.\n mstore(add(result, 0x1f), packed)\n // Right pad with zeroes.\n mstore(add(add(result, 0x20), mload(result)), 0)\n }\n }\n\n /// @dev Packs two strings with their lengths into a single word.\n /// Returns `bytes32(0)` if combined length is zero or greater than 30.\n function packTwo(string memory a, string memory b) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let aLength := mload(a)\n // We don't need to zero right pad the strings,\n // since this is our own custom non-standard packing scheme.\n result :=\n mul(\n // Load the length and the bytes of `a` and `b`.\n or(\n shl(shl(3, sub(0x1f, aLength)), mload(add(a, aLength))),\n mload(sub(add(b, 0x1e), aLength))\n ),\n // `totalLength != 0 && totalLength < 31`. Abuses underflow.\n // Assumes that the lengths are valid and within the block gas limit.\n lt(sub(add(aLength, mload(b)), 1), 0x1e)\n )\n }\n }\n\n /// @dev Unpacks strings packed using {packTwo}.\n /// Returns the empty strings if `packed` is `bytes32(0)`.\n /// If `packed` is not an output of {packTwo}, the output behavior is undefined.\n function unpackTwo(bytes32 packed)\n internal\n pure\n returns (string memory resultA, string memory resultB)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the free memory pointer.\n resultA := mload(0x40)\n resultB := add(resultA, 0x40)\n // Allocate 2 words for each string (1 for the length, 1 for the byte). Total 4 words.\n mstore(0x40, add(resultB, 0x40))\n // Zeroize the length slots.\n mstore(resultA, 0)\n mstore(resultB, 0)\n // Store the lengths and bytes.\n mstore(add(resultA, 0x1f), packed)\n mstore(add(resultB, 0x1f), mload(add(add(resultA, 0x20), mload(resultA))))\n // Right pad with zeroes.\n mstore(add(add(resultA, 0x20), mload(resultA)), 0)\n mstore(add(add(resultB, 0x20), mload(resultB)), 0)\n }\n }\n\n /// @dev Directly returns `a` without copying.\n function directReturn(string memory a) internal pure {\n assembly {\n // Assumes that the string does not start from the scratch space.\n let retStart := sub(a, 0x20)\n let retUnpaddedSize := add(mload(a), 0x40)\n // Right pad with zeroes. Just in case the string is produced\n // by a method that doesn't zero right pad.\n mstore(add(retStart, retUnpaddedSize), 0)\n // Store the return offset.\n mstore(retStart, 0x20)\n // End the transaction, returning the string.\n return(retStart, and(not(0x1f), add(0x1f, retUnpaddedSize)))\n }\n }\n}\n"},"@solady/utils/LibZip.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for compressing and decompressing bytes.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)\n/// @author Calldata compression by clabby (https://github.com/clabby/op-kompressor)\n/// @author FastLZ by ariya (https://github.com/ariya/FastLZ)\n///\n/// @dev Note:\n/// The accompanying solady.js library includes implementations of\n/// FastLZ and calldata operations for convenience.\nlibrary LibZip {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* FAST LZ OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // LZ77 implementation based on FastLZ.\n // Equivalent to level 1 compression and decompression at the following commit:\n // https://github.com/ariya/FastLZ/commit/344eb4025f9ae866ebf7a2ec48850f7113a97a42\n // Decompression is backwards compatible.\n\n /// @dev Returns the compressed `data`.\n function flzCompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n function ms8(d_, v_) -> _d {\n mstore8(d_, v_)\n _d := add(d_, 1)\n }\n function u24(p_) -> _u {\n _u := mload(p_)\n _u := or(shl(16, byte(2, _u)), or(shl(8, byte(1, _u)), byte(0, _u)))\n }\n function cmp(p_, q_, e_) -> _l {\n for { e_ := sub(e_, q_) } lt(_l, e_) { _l := add(_l, 1) } {\n e_ := mul(iszero(byte(0, xor(mload(add(p_, _l)), mload(add(q_, _l))))), e_)\n }\n }\n function literals(runs_, src_, dest_) -> _o {\n for { _o := dest_ } iszero(lt(runs_, 0x20)) { runs_ := sub(runs_, 0x20) } {\n mstore(ms8(_o, 31), mload(src_))\n _o := add(_o, 0x21)\n src_ := add(src_, 0x20)\n }\n if iszero(runs_) { leave }\n mstore(ms8(_o, sub(runs_, 1)), mload(src_))\n _o := add(1, add(_o, runs_))\n }\n function mt(l_, d_, o_) -> _o {\n for { d_ := sub(d_, 1) } iszero(lt(l_, 263)) { l_ := sub(l_, 262) } {\n o_ := ms8(ms8(ms8(o_, add(224, shr(8, d_))), 253), and(0xff, d_))\n }\n if iszero(lt(l_, 7)) {\n _o := ms8(ms8(ms8(o_, add(224, shr(8, d_))), sub(l_, 7)), and(0xff, d_))\n leave\n }\n _o := ms8(ms8(o_, add(shl(5, l_), shr(8, d_))), and(0xff, d_))\n }\n function setHash(i_, v_) {\n let p_ := add(mload(0x40), shl(2, i_))\n mstore(p_, xor(mload(p_), shl(224, xor(shr(224, mload(p_)), v_))))\n }\n function getHash(i_) -> _h {\n _h := shr(224, mload(add(mload(0x40), shl(2, i_))))\n }\n function hash(v_) -> _r {\n _r := and(shr(19, mul(2654435769, v_)), 0x1fff)\n }\n function setNextHash(ip_, ipStart_) -> _ip {\n setHash(hash(u24(ip_)), sub(ip_, ipStart_))\n _ip := add(ip_, 1)\n }\n result := mload(0x40)\n codecopy(result, codesize(), 0x8000) // Zeroize the hashmap.\n let op := add(result, 0x8000)\n let a := add(data, 0x20)\n let ipStart := a\n let ipLimit := sub(add(ipStart, mload(data)), 13)\n for { let ip := add(2, a) } lt(ip, ipLimit) {} {\n let r := 0\n let d := 0\n for {} 1 {} {\n let s := u24(ip)\n let h := hash(s)\n r := add(ipStart, getHash(h))\n setHash(h, sub(ip, ipStart))\n d := sub(ip, r)\n if iszero(lt(ip, ipLimit)) { break }\n ip := add(ip, 1)\n if iszero(gt(d, 0x1fff)) { if eq(s, u24(r)) { break } }\n }\n if iszero(lt(ip, ipLimit)) { break }\n ip := sub(ip, 1)\n if gt(ip, a) { op := literals(sub(ip, a), a, op) }\n let l := cmp(add(r, 3), add(ip, 3), add(ipLimit, 9))\n op := mt(l, d, op)\n ip := setNextHash(setNextHash(add(ip, l), ipStart), ipStart)\n a := ip\n }\n // Copy the result to compact the memory, overwriting the hashmap.\n let end := sub(literals(sub(add(ipStart, mload(data)), a), a, op), 0x7fe0)\n let o := add(result, 0x20)\n mstore(result, sub(end, o)) // Store the length.\n for {} iszero(gt(o, end)) { o := add(o, 0x20) } { mstore(o, mload(add(o, 0x7fe0))) }\n mstore(end, 0) // Zeroize the slot after the string.\n mstore(0x40, add(end, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Returns the decompressed `data`.\n function flzDecompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let op := add(result, 0x20)\n let end := add(add(data, 0x20), mload(data))\n for { data := add(data, 0x20) } lt(data, end) {} {\n let w := mload(data)\n let c := byte(0, w)\n let t := shr(5, c)\n if iszero(t) {\n mstore(op, mload(add(data, 1)))\n data := add(data, add(2, c))\n op := add(op, add(1, c))\n continue\n }\n for {\n let g := eq(t, 7)\n let l := add(2, xor(t, mul(g, xor(t, add(7, byte(1, w)))))) // M\n let s := add(add(shl(8, and(0x1f, c)), byte(add(1, g), w)), 1) // R\n let r := sub(op, s)\n let f := xor(s, mul(gt(s, 0x20), xor(s, 0x20)))\n let j := 0\n } 1 {} {\n mstore(add(op, j), mload(add(r, j)))\n j := add(j, f)\n if lt(j, l) { continue }\n data := add(data, add(2, g))\n op := add(op, l)\n break\n }\n }\n mstore(result, sub(op, add(result, 0x20))) // Store the length.\n mstore(op, 0) // Zeroize the slot after the string.\n mstore(0x40, add(op, 0x20)) // Allocate the memory.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CALLDATA OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Calldata compression and decompression using selective run length encoding:\n // - Sequences of 0x00 (up to 128 consecutive).\n // - Sequences of 0xff (up to 32 consecutive).\n //\n // A run length encoded block consists of two bytes:\n // (0) 0x00\n // (1) A control byte with the following bit layout:\n // - [7] `0: 0x00, 1: 0xff`.\n // - [0..6] `runLength - 1`.\n //\n // The first 4 bytes are bitwise negated so that the compressed calldata\n // can be dispatched into the `fallback` and `receive` functions.\n\n /// @dev Returns the compressed `data`.\n function cdCompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n function rle(v_, o_, d_) -> _o, _d {\n mstore(o_, shl(240, or(and(0xff, add(d_, 0xff)), and(0x80, v_))))\n _o := add(o_, 2)\n }\n result := mload(0x40)\n let o := add(result, 0x20)\n let z := 0 // Number of consecutive 0x00.\n let y := 0 // Number of consecutive 0xff.\n for { let end := add(data, mload(data)) } iszero(eq(data, end)) {} {\n data := add(data, 1)\n let c := byte(31, mload(data))\n if iszero(c) {\n if y { o, y := rle(0xff, o, y) }\n z := add(z, 1)\n if eq(z, 0x80) { o, z := rle(0x00, o, 0x80) }\n continue\n }\n if eq(c, 0xff) {\n if z { o, z := rle(0x00, o, z) }\n y := add(y, 1)\n if eq(y, 0x20) { o, y := rle(0xff, o, 0x20) }\n continue\n }\n if y { o, y := rle(0xff, o, y) }\n if z { o, z := rle(0x00, o, z) }\n mstore8(o, c)\n o := add(o, 1)\n }\n if y { o, y := rle(0xff, o, y) }\n if z { o, z := rle(0x00, o, z) }\n // Bitwise negate the first 4 bytes.\n mstore(add(result, 4), not(mload(add(result, 4))))\n mstore(result, sub(o, add(result, 0x20))) // Store the length.\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Returns the decompressed `data`.\n function cdDecompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n if mload(data) {\n result := mload(0x40)\n let o := add(result, 0x20)\n let s := add(data, 4)\n let v := mload(s)\n let end := add(data, mload(data))\n mstore(s, not(v)) // Bitwise negate the first 4 bytes.\n for {} lt(data, end) {} {\n data := add(data, 1)\n let c := byte(31, mload(data))\n if iszero(c) {\n data := add(data, 1)\n let d := byte(31, mload(data))\n // Fill with either 0xff or 0x00.\n mstore(o, not(0))\n if iszero(gt(d, 0x7f)) { codecopy(o, codesize(), add(d, 1)) }\n o := add(o, add(and(d, 0x7f), 1))\n continue\n }\n mstore8(o, c)\n o := add(o, 1)\n }\n mstore(s, v) // Restore the first 4 bytes.\n mstore(result, sub(o, add(result, 0x20))) // Store the length.\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n }\n\n /// @dev To be called in the `fallback` function.\n /// ```\n /// fallback() external payable { LibZip.cdFallback(); }\n /// receive() external payable {} // Silence compiler warning to add a `receive` function.\n /// ```\n /// For efficiency, this function will directly return the results, terminating the context.\n /// If called internally, it must be called at the end of the function.\n function cdFallback() internal {\n assembly {\n if iszero(calldatasize()) { return(calldatasize(), calldatasize()) }\n let o := 0\n let f := not(3) // For negating the first 4 bytes.\n for { let i := 0 } lt(i, calldatasize()) {} {\n let c := byte(0, xor(add(i, f), calldataload(i)))\n i := add(i, 1)\n if iszero(c) {\n let d := byte(0, xor(add(i, f), calldataload(i)))\n i := add(i, 1)\n // Fill with either 0xff or 0x00.\n mstore(o, not(0))\n if iszero(gt(d, 0x7f)) { codecopy(o, codesize(), add(d, 1)) }\n o := add(o, add(and(d, 0x7f), 1))\n continue\n }\n mstore8(o, c)\n o := add(o, 1)\n }\n let success := delegatecall(gas(), address(), 0x00, o, codesize(), 0x00)\n returndatacopy(0x00, 0x00, returndatasize())\n if iszero(success) { revert(0x00, returndatasize()) }\n return(0x00, returndatasize())\n }\n }\n}\n"},"@solady/utils/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Reentrancy guard mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)\nabstract contract ReentrancyGuard {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Unauthorized reentrant call.\n error Reentrancy();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to: `uint72(bytes9(keccak256(\"_REENTRANCY_GUARD_SLOT\")))`.\n /// 9 bytes is large enough to avoid collisions with lower slots,\n /// but not too large to result in excessive bytecode bloat.\n uint256 private constant _REENTRANCY_GUARD_SLOT = 0x929eee149b4bd21268;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* REENTRANCY GUARD */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Guards a function from reentrancy.\n modifier nonReentrant() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n if eq(sload(_REENTRANCY_GUARD_SLOT), address()) {\n mstore(0x00, 0xab143c06) // `Reentrancy()`.\n revert(0x1c, 0x04)\n }\n sstore(_REENTRANCY_GUARD_SLOT, address())\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n sstore(_REENTRANCY_GUARD_SLOT, codesize())\n }\n }\n\n /// @dev Guards a view function from read-only reentrancy.\n modifier nonReadReentrant() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n if eq(sload(_REENTRANCY_GUARD_SLOT), address()) {\n mstore(0x00, 0xab143c06) // `Reentrancy()`.\n revert(0x1c, 0x04)\n }\n }\n _;\n }\n}\n"},"@solady/utils/SafeTransferLib.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)\n/// @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\n///\n/// @dev Note:\n/// - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.\n/// - For ERC20s, this implementation won't check that a token has code,\n/// responsibility is delegated to the caller.\nlibrary SafeTransferLib {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ETH transfer has failed.\n error ETHTransferFailed();\n\n /// @dev The ERC20 `transferFrom` has failed.\n error TransferFromFailed();\n\n /// @dev The ERC20 `transfer` has failed.\n error TransferFailed();\n\n /// @dev The ERC20 `approve` has failed.\n error ApproveFailed();\n\n /// @dev The Permit2 operation has failed.\n error Permit2Failed();\n\n /// @dev The Permit2 amount must be less than `2**160 - 1`.\n error Permit2AmountOverflow();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Suggested gas stipend for contract receiving ETH that disallows any storage writes.\n uint256 internal constant GAS_STIPEND_NO_STORAGE_WRITES = 2300;\n\n /// @dev Suggested gas stipend for contract receiving ETH to perform a few\n /// storage reads and writes, but low enough to prevent griefing.\n uint256 internal constant GAS_STIPEND_NO_GRIEF = 100000;\n\n /// @dev The unique EIP-712 domain domain separator for the DAI token contract.\n bytes32 internal constant DAI_DOMAIN_SEPARATOR =\n 0xdbb8cf42e1ecb028be3f3dbc922e1d878b963f411dc388ced501601c60f7c6f7;\n\n /// @dev The address for the WETH9 contract on Ethereum mainnet.\n address internal constant WETH9 = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n /// @dev The canonical Permit2 address.\n /// [Github](https://github.com/Uniswap/permit2)\n /// [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n address internal constant PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ETH OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // If the ETH transfer MUST succeed with a reasonable gas budget, use the force variants.\n //\n // The regular variants:\n // - Forwards all remaining gas to the target.\n // - Reverts if the target reverts.\n // - Reverts if the current contract has insufficient balance.\n //\n // The force variants:\n // - Forwards with an optional gas stipend\n // (defaults to `GAS_STIPEND_NO_GRIEF`, which is sufficient for most cases).\n // - If the target reverts, or if the gas stipend is exhausted,\n // creates a temporary contract to force send the ETH via `SELFDESTRUCT`.\n // Future compatible with `SENDALL`: https://eips.ethereum.org/EIPS/eip-4758.\n // - Reverts if the current contract has insufficient balance.\n //\n // The try variants:\n // - Forwards with a mandatory gas stipend.\n // - Instead of reverting, returns whether the transfer succeeded.\n\n /// @dev Sends `amount` (in wei) ETH to `to`.\n function safeTransferETH(address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(call(gas(), to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Sends all the ETH in the current contract to `to`.\n function safeTransferAllETH(address to) internal {\n /// @solidity memory-safe-assembly\n assembly {\n // Transfer all the ETH and check if it succeeded or not.\n if iszero(call(gas(), to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Force sends `amount` (in wei) ETH to `to`, with a `gasStipend`.\n function forceSafeTransferETH(address to, uint256 amount, uint256 gasStipend) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if lt(selfbalance(), amount) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n if iszero(call(gasStipend, to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(amount, 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends all the ETH in the current contract to `to`, with a `gasStipend`.\n function forceSafeTransferAllETH(address to, uint256 gasStipend) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(call(gasStipend, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(selfbalance(), 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends `amount` (in wei) ETH to `to`, with `GAS_STIPEND_NO_GRIEF`.\n function forceSafeTransferETH(address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if lt(selfbalance(), amount) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n if iszero(call(GAS_STIPEND_NO_GRIEF, to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(amount, 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends all the ETH in the current contract to `to`, with `GAS_STIPEND_NO_GRIEF`.\n function forceSafeTransferAllETH(address to) internal {\n /// @solidity memory-safe-assembly\n assembly {\n // forgefmt: disable-next-item\n if iszero(call(GAS_STIPEND_NO_GRIEF, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(selfbalance(), 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Sends `amount` (in wei) ETH to `to`, with a `gasStipend`.\n function trySafeTransferETH(address to, uint256 amount, uint256 gasStipend)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n success := call(gasStipend, to, amount, codesize(), 0x00, codesize(), 0x00)\n }\n }\n\n /// @dev Sends all the ETH in the current contract to `to`, with a `gasStipend`.\n function trySafeTransferAllETH(address to, uint256 gasStipend)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n success := call(gasStipend, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n /// Reverts upon failure.\n ///\n /// The `from` account must have at least `amount` approved for\n /// the current contract to manage.\n function safeTransferFrom(address token, address from, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, amount) // Store the `amount` argument.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x23b872dd000000000000000000000000) // `transferFrom(address,address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n ///\n /// The `from` account must have at least `amount` approved for the current contract to manage.\n function trySafeTransferFrom(address token, address from, address to, uint256 amount)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, amount) // Store the `amount` argument.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x23b872dd000000000000000000000000) // `transferFrom(address,address,uint256)`.\n success :=\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends all of ERC20 `token` from `from` to `to`.\n /// Reverts upon failure.\n ///\n /// The `from` account must have their entire balance approved for the current contract to manage.\n function safeTransferAllFrom(address token, address from, address to)\n internal\n returns (uint256 amount)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x70a08231000000000000000000000000) // `balanceOf(address)`.\n // Read the balance, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x1c, 0x24, 0x60, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, 0x23b872dd) // `transferFrom(address,address,uint256)`.\n amount := mload(0x60) // The `amount` is already at 0x60. We'll need to return it.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from the current contract to `to`.\n /// Reverts upon failure.\n function safeTransfer(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0xa9059cbb000000000000000000000000) // `transfer(address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sends all of ERC20 `token` from the current contract to `to`.\n /// Reverts upon failure.\n function safeTransferAll(address token, address to) internal returns (uint256 amount) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, 0x70a08231) // Store the function selector of `balanceOf(address)`.\n mstore(0x20, address()) // Store the address of the current contract.\n // Read the balance, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x1c, 0x24, 0x34, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x14, to) // Store the `to` argument.\n amount := mload(0x34) // The `amount` is already at 0x34. We'll need to return it.\n mstore(0x00, 0xa9059cbb000000000000000000000000) // `transfer(address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n /// Reverts upon failure.\n function safeApprove(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n // Perform the approval, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x3e3f8f73) // `ApproveFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n /// If the initial attempt to approve fails, attempts to reset the approved amount to zero,\n /// then retries the approval again (some tokens, e.g. USDT, requires this).\n /// Reverts upon failure.\n function safeApproveWithRetry(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n // Perform the approval, retrying upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x34, 0) // Store 0 for the `amount`.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n pop(call(gas(), token, 0, 0x10, 0x44, codesize(), 0x00)) // Reset the approval.\n mstore(0x34, amount) // Store back the original `amount`.\n // Retry the approval, reverting upon failure.\n if iszero(\n and(\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x3e3f8f73) // `ApproveFailed()`.\n revert(0x1c, 0x04)\n }\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Returns the amount of ERC20 `token` owned by `account`.\n /// Returns zero if the `token` does not exist.\n function balanceOf(address token, address account) internal view returns (uint256 amount) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, account) // Store the `account` argument.\n mstore(0x00, 0x70a08231000000000000000000000000) // `balanceOf(address)`.\n amount :=\n mul( // The arguments of `mul` are evaluated from right to left.\n mload(0x20),\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x10, 0x24, 0x20, 0x20)\n )\n )\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n /// If the initial attempt fails, try to use Permit2 to transfer the token.\n /// Reverts upon failure.\n ///\n /// The `from` account must have at least `amount` approved for the current contract to manage.\n function safeTransferFrom2(address token, address from, address to, uint256 amount) internal {\n if (!trySafeTransferFrom(token, from, to, amount)) {\n permit2TransferFrom(token, from, to, amount);\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to` via Permit2.\n /// Reverts upon failure.\n function permit2TransferFrom(address token, address from, address to, uint256 amount)\n internal\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n mstore(add(m, 0x74), shr(96, shl(96, token)))\n mstore(add(m, 0x54), amount)\n mstore(add(m, 0x34), to)\n mstore(add(m, 0x20), shl(96, from))\n // `transferFrom(address,address,uint160,address)`.\n mstore(m, 0x36c78516000000000000000000000000)\n let p := PERMIT2\n let exists := eq(chainid(), 1)\n if iszero(exists) { exists := iszero(iszero(extcodesize(p))) }\n if iszero(and(call(gas(), p, 0, add(m, 0x10), 0x84, codesize(), 0x00), exists)) {\n mstore(0x00, 0x7939f4248757f0fd) // `TransferFromFailed()` or `Permit2AmountOverflow()`.\n revert(add(0x18, shl(2, iszero(iszero(shr(160, amount))))), 0x04)\n }\n }\n }\n\n /// @dev Permit a user to spend a given amount of\n /// another user's tokens via native EIP-2612 permit if possible, falling\n /// back to Permit2 if native permit fails or is not implemented on the token.\n function permit2(\n address token,\n address owner,\n address spender,\n uint256 amount,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n bool success;\n /// @solidity memory-safe-assembly\n assembly {\n for {} shl(96, xor(token, WETH9)) {} {\n mstore(0x00, 0x3644e515) // `DOMAIN_SEPARATOR()`.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n lt(iszero(mload(0x00)), eq(returndatasize(), 0x20)), // Returns 1 non-zero word.\n // Gas stipend to limit gas burn for tokens that don't refund gas when\n // an non-existing function is called. 5K should be enough for a SLOAD.\n staticcall(5000, token, 0x1c, 0x04, 0x00, 0x20)\n )\n ) { break }\n // After here, we can be sure that token is a contract.\n let m := mload(0x40)\n mstore(add(m, 0x34), spender)\n mstore(add(m, 0x20), shl(96, owner))\n mstore(add(m, 0x74), deadline)\n if eq(mload(0x00), DAI_DOMAIN_SEPARATOR) {\n mstore(0x14, owner)\n mstore(0x00, 0x7ecebe00000000000000000000000000) // `nonces(address)`.\n mstore(add(m, 0x94), staticcall(gas(), token, 0x10, 0x24, add(m, 0x54), 0x20))\n mstore(m, 0x8fcbaf0c000000000000000000000000) // `IDAIPermit.permit`.\n // `nonces` is already at `add(m, 0x54)`.\n // `1` is already stored at `add(m, 0x94)`.\n mstore(add(m, 0xb4), and(0xff, v))\n mstore(add(m, 0xd4), r)\n mstore(add(m, 0xf4), s)\n success := call(gas(), token, 0, add(m, 0x10), 0x104, codesize(), 0x00)\n break\n }\n mstore(m, 0xd505accf000000000000000000000000) // `IERC20Permit.permit`.\n mstore(add(m, 0x54), amount)\n mstore(add(m, 0x94), and(0xff, v))\n mstore(add(m, 0xb4), r)\n mstore(add(m, 0xd4), s)\n success := call(gas(), token, 0, add(m, 0x10), 0xe4, codesize(), 0x00)\n break\n }\n }\n if (!success) simplePermit2(token, owner, spender, amount, deadline, v, r, s);\n }\n\n /// @dev Simple permit on the Permit2 contract.\n function simplePermit2(\n address token,\n address owner,\n address spender,\n uint256 amount,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n mstore(m, 0x927da105) // `allowance(address,address,address)`.\n {\n let addressMask := shr(96, not(0))\n mstore(add(m, 0x20), and(addressMask, owner))\n mstore(add(m, 0x40), and(addressMask, token))\n mstore(add(m, 0x60), and(addressMask, spender))\n mstore(add(m, 0xc0), and(addressMask, spender))\n }\n let p := mul(PERMIT2, iszero(shr(160, amount)))\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x5f), // Returns 3 words: `amount`, `expiration`, `nonce`.\n staticcall(gas(), p, add(m, 0x1c), 0x64, add(m, 0x60), 0x60)\n )\n ) {\n mstore(0x00, 0x6b836e6b8757f0fd) // `Permit2Failed()` or `Permit2AmountOverflow()`.\n revert(add(0x18, shl(2, iszero(p))), 0x04)\n }\n mstore(m, 0x2b67b570) // `Permit2.permit` (PermitSingle variant).\n // `owner` is already `add(m, 0x20)`.\n // `token` is already at `add(m, 0x40)`.\n mstore(add(m, 0x60), amount)\n mstore(add(m, 0x80), 0xffffffffffff) // `expiration = type(uint48).max`.\n // `nonce` is already at `add(m, 0xa0)`.\n // `spender` is already at `add(m, 0xc0)`.\n mstore(add(m, 0xe0), deadline)\n mstore(add(m, 0x100), 0x100) // `signature` offset.\n mstore(add(m, 0x120), 0x41) // `signature` length.\n mstore(add(m, 0x140), r)\n mstore(add(m, 0x160), s)\n mstore(add(m, 0x180), shl(248, v))\n if iszero(call(gas(), p, 0, add(m, 0x1c), 0x184, codesize(), 0x00)) {\n mstore(0x00, 0x6b836e6b) // `Permit2Failed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/SignatureCheckerLib.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Signature verification helper that supports both ECDSA signatures from EOAs\n/// and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\n///\n/// @dev Note:\n/// - The signature checking functions use the ecrecover precompile (0x1).\n/// - The `bytes memory signature` variants use the identity precompile (0x4)\n/// to copy memory internally.\n/// - Unlike ECDSA signatures, contract signatures are revocable.\n/// - As of Solady version 0.0.134, all `bytes signature` variants accept both\n/// regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.\n/// See: https://eips.ethereum.org/EIPS/eip-2098\n/// This is for calldata efficiency on smart accounts prevalent on L2s.\n///\n/// WARNING! Do NOT use signatures as unique identifiers:\n/// - Use a nonce in the digest to prevent replay attacks on the same contract.\n/// - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.\n/// EIP-712 also enables readable signing of typed data for better user safety.\n/// This implementation does NOT check if a signature is non-malleable.\nlibrary SignatureCheckerLib {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* SIGNATURE CHECKING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `signature` is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x40, mload(add(signature, 0x20))) // `r`.\n if eq(mload(signature), 64) {\n let vs := mload(add(signature, 0x40))\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n if eq(mload(signature), 65) {\n mstore(0x20, byte(0, mload(add(signature, 0x60)))) // `v`.\n mstore(0x60, mload(add(signature, 0x40))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n // Copy the `signature` over.\n let n := add(0x20, mload(signature))\n pop(staticcall(gas(), 4, signature, n, add(m, 0x44), n))\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(returndatasize(), 0x44), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n break\n }\n }\n }\n\n /// @dev Returns whether `signature` is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNowCalldata(address signer, bytes32 hash, bytes calldata signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n if eq(signature.length, 64) {\n let vs := calldataload(add(signature.offset, 0x20))\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x40, calldataload(signature.offset)) // `r`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n if eq(signature.length, 65) {\n mstore(0x20, byte(0, calldataload(add(signature.offset, 0x40)))) // `v`.\n calldatacopy(0x40, signature.offset, 0x40) // `r`, `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), signature.length)\n // Copy the `signature` over.\n calldatacopy(add(m, 0x64), signature.offset, signature.length)\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(signature.length, 0x64), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n break\n }\n }\n }\n\n /// @dev Returns whether the signature (`r`, `vs`) is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, bytes32 r, bytes32 vs)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x40, r) // `r`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), mload(0x60)) // `s`.\n mstore8(add(m, 0xa4), mload(0x20)) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n }\n\n /// @dev Returns whether the signature (`v`, `r`, `s`) is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, uint8 v, bytes32 r, bytes32 s)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x20, and(v, 0xff)) // `v`.\n mstore(0x40, r) // `r`.\n mstore(0x60, s) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), s) // `s`.\n mstore8(add(m, 0xa4), v) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC1271 OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, bytes memory signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n // Copy the `signature` over.\n let n := add(0x20, mload(signature))\n pop(staticcall(gas(), 4, signature, n, add(m, 0x44), n))\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(returndatasize(), 0x44), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNowCalldata(\n address signer,\n bytes32 hash,\n bytes calldata signature\n ) internal view returns (bool isValid) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), signature.length)\n // Copy the `signature` over.\n calldatacopy(add(m, 0x64), signature.offset, signature.length)\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(signature.length, 0x64), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether the signature (`r`, `vs`) is valid for `hash`\n /// for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, bytes32 r, bytes32 vs)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), shr(1, shl(1, vs))) // `s`.\n mstore8(add(m, 0xa4), add(shr(255, vs), 27)) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether the signature (`v`, `r`, `s`) is valid for `hash`\n /// for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, uint8 v, bytes32 r, bytes32 s)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), s) // `s`.\n mstore8(add(m, 0xa4), v) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HASHING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns an Ethereum Signed Message, created from a `hash`.\n /// This produces a hash corresponding to the one signed with the\n /// [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n /// JSON-RPC method as part of EIP-191.\n function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x20, hash) // Store into scratch space for keccak256.\n mstore(0x00, \"\\x00\\x00\\x00\\x00\\x19Ethereum Signed Message:\\n32\") // 28 bytes.\n result := keccak256(0x04, 0x3c) // `32 * 2 - (32 - 28) = 60 = 0x3c`.\n }\n }\n\n /// @dev Returns an Ethereum Signed Message, created from `s`.\n /// This produces a hash corresponding to the one signed with the\n /// [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n /// JSON-RPC method as part of EIP-191.\n /// Note: Supports lengths of `s` up to 999999 bytes.\n function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let sLength := mload(s)\n let o := 0x20\n mstore(o, \"\\x19Ethereum Signed Message:\\n\") // 26 bytes, zero-right-padded.\n mstore(0x00, 0x00)\n // Convert the `s.length` to ASCII decimal representation: `base10(s.length)`.\n for { let temp := sLength } 1 {} {\n o := sub(o, 1)\n mstore8(o, add(48, mod(temp, 10)))\n temp := div(temp, 10)\n if iszero(temp) { break }\n }\n let n := sub(0x3a, o) // Header length: `26 + 32 - o`.\n // Throw an out-of-offset error (consumes all gas) if the header exceeds 32 bytes.\n returndatacopy(returndatasize(), returndatasize(), gt(n, 0x20))\n mstore(s, or(mload(0x00), mload(n))) // Temporarily store the header.\n result := keccak256(add(s, sub(0x20, n)), add(n, sLength))\n mstore(s, sLength) // Restore the length.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EMPTY CALLDATA HELPERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns an empty calldata bytes.\n function emptySignature() internal pure returns (bytes calldata signature) {\n /// @solidity memory-safe-assembly\n assembly {\n signature.length := 0\n }\n }\n}\n"},"contracts/actions/Action.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Boost Action\n/// @notice Abstract contract for a generic Action within the Boost protocol\n/// @dev Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Action is Cloneable {\n /// @notice Emitted when the action is executed by a proxy.\n /// @dev The `data` field should contain the return data from the action, if any.\n event ActionExecuted(address indexed executor, address caller, bool success, bytes data);\n\n /// @notice Thrown when the `execute` function is not implemented\n error ExecuteNotImplemented();\n\n /// @notice Emitted when the action is validated\n /// @dev The `data` field should contain implementation-specific context, if applicable.\n event ActionValidated(address indexed user, bool isValidated, bytes data);\n\n /// @notice The validator for the action (which may be the action itself where appropriate)\n Validator public immutable VALIDATOR;\n\n /// @notice Execute the action\n /// @param data_ The data payload for the action\n /// @return (success, data) A tuple of the success status and the returned data\n function execute(bytes calldata data_) external payable virtual returns (bool, bytes memory);\n\n /// @notice Prepare the action for execution and return the expected payload\n /// @param data_ The data payload for the action\n /// @return The prepared payload\n function prepare(bytes calldata data_) external virtual returns (bytes memory);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Action).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/actions/ContractAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Action} from \"contracts/actions/Action.sol\";\n\ncontract ContractAction is Action {\n /// @notice Thrown when execution on a given chain is not supported\n error TargetChainUnsupported(uint256 targetChainId);\n\n /// @notice The payload for initializing a ContractAction\n /// @param target The target contract address\n /// @param selector The selector for the function to be called\n /// @param value The native token value to send with the function call\n struct InitPayload {\n uint256 chainId;\n address target;\n bytes4 selector;\n uint256 value;\n }\n\n /// @notice The target chain ID\n uint256 public chainId;\n\n /// @notice The target contract\n address public target;\n\n /// @notice The selector for the function to be called\n bytes4 public selector;\n\n /// @notice The native token value to send with the function call\n uint256 public value;\n\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @notice Initialize the contract with the owner and the required data\n function initialize(bytes calldata data_) public virtual override initializer {\n _initialize(abi.decode(data_, (InitPayload)));\n }\n\n function execute(bytes calldata data_) external payable virtual override returns (bool, bytes memory) {\n if (chainId != block.chainid) revert TargetChainUnsupported(chainId);\n (bool success, bytes memory returnData) = target.call{value: value}(_buildPayload(selector, data_));\n return (success, returnData);\n }\n\n function prepare(bytes calldata data_) public view virtual override returns (bytes memory bytes_) {\n return _buildPayload(selector, data_);\n }\n\n function _initialize(InitPayload memory init_) internal virtual onlyInitializing {\n chainId = init_.chainId;\n target = init_.target;\n selector = init_.selector;\n value = init_.value;\n }\n\n function _buildPayload(bytes4 selector_, bytes calldata calldata_) internal pure returns (bytes memory payload) {\n assembly {\n // Allocate space for the payload\n let size := add(4, calldata_.length)\n payload := mload(0x40)\n mstore(payload, size)\n mstore(0x40, add(payload, add(size, 0x20)))\n\n // Place the selector and calldata in the payload buffer\n mstore(add(payload, 0x20), selector_)\n calldatacopy(add(payload, 0x24), calldata_.offset, calldata_.length)\n }\n }\n}\n"},"contracts/actions/ERC721MintAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {ContractAction} from \"contracts/actions/ContractAction.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title ERC721 Mint Action\n/// @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n/// @dev The action is expected to be prepared with the data payload for the minting of the token\n/// @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n/// @dev It is expected that the target contract has an externally accessible mint function whose selector\ncontract ERC721MintAction is ContractAction, Validator {\n /// @notice The set of validated tokens\n /// @dev This is intended to prevent multiple validations against the same token ID\n mapping(uint256 => bool) public validated;\n\n /// @notice Construct the ERC721 Mint Action\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @notice Initialize the contract with the owner and the required mint data\n /// @param data_ The data payload for the mint action `(address target, bytes4 selector, uint256 value)`\n function initialize(bytes calldata data_) public virtual override(Cloneable, ContractAction) initializer {\n _initialize(abi.decode(data_, (InitPayload)));\n }\n\n /// @notice Execute the action (not yet implemented)\n /// @param data_ The data payload for the call (not used in this implementation)\n /// @return success The success status of the call\n /// @return returnData The return data from the call\n function execute(bytes calldata data_) external payable override returns (bool success, bytes memory returnData) {\n (data_, success, returnData);\n revert ExecuteNotImplemented();\n }\n\n /// @notice Prepare the action for execution and return the expected payload\n /// @param data_ The ABI-encoded payload for the target contract call\n /// @return The encoded payload to be sent to the target contract\n /// @dev Note that the mint value is NOT included in the prepared payload but must be sent with the call\n function prepare(bytes calldata data_) public view override returns (bytes memory) {\n return super.prepare(data_);\n }\n\n /// @inheritdoc Validator\n /// @notice Validate that the action has been completed successfully\n /// @param data_ The data payload for the action `(address holder, (uint256 tokenId))`\n /// @return success True if the action has been validated for the user\n /// @dev The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)\n /// @dev Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`\n function validate(bytes calldata data_) external virtual override returns (bool success) {\n (address holder, bytes memory payload) = abi.decode(data_, (address, bytes));\n uint256 tokenId = uint256(bytes32(payload));\n\n if (ERC721(target).ownerOf(tokenId) == holder && !validated[tokenId]) {\n validated[tokenId] = true;\n return true;\n } else {\n return false;\n }\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Action, Validator) returns (bool) {\n return super.supportsInterface(interfaceId);\n }\n\n function _initialize(InitPayload memory init_) internal override onlyInitializing {\n super._initialize(init_);\n _initializeOwner(msg.sender);\n }\n}\n"},"contracts/allowlists/AllowList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost AllowList\n/// @notice Abstract contract for a generic Allow List within the Boost protocol\n/// @dev Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty.\nabstract contract AllowList is Ownable, Cloneable {\n /// @notice Constructor to initialize the owner\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Check if a user is authorized\n /// @param user_ The address of the user\n /// @param data_ The data payload for the authorization check, if applicable\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata data_) external view virtual returns (bool);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(AllowList).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/allowlists/SimpleAllowList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {OwnableRoles} from \"@solady/auth/OwnableRoles.sol\";\n\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\n/// @title Simple AllowList\n/// @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\ncontract SimpleAllowList is AllowList, OwnableRoles {\n /// @notice The role for managing the allow list\n uint256 public constant LIST_MANAGER_ROLE = 1 << 1;\n\n /// @dev An internal mapping of allowed statuses\n mapping(address => bool) private _allowed;\n\n /// @notice Construct a new SimpleAllowList\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the list of allowed addresses\n /// @param data_ The compressed initialization data `(address owner, address[] allowList)`\n function initialize(bytes calldata data_) public virtual override initializer {\n (address owner_, address[] memory allowList_) = abi.decode(data_, (address, address[]));\n _initializeOwner(owner_);\n _grantRoles(owner_, LIST_MANAGER_ROLE);\n for (uint256 i = 0; i < allowList_.length; i++) {\n _allowed[allowList_[i]] = true;\n }\n }\n\n /// @notice Check if a user is authorized\n /// @param user_ The address of the user\n /// @param - The data payload for the authorization check, not used in this implementation\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata /* data_ - unused */ ) external view override returns (bool) {\n return _allowed[user_];\n }\n\n /// @notice Set the allowed status of a user\n /// @param users_ The list of users to update\n /// @param allowed_ The allowed status of each user\n /// @dev The length of the `users_` and `allowed_` arrays must be the same\n /// @dev This function can only be called by the owner\n function setAllowed(address[] calldata users_, bool[] calldata allowed_) external onlyRoles(LIST_MANAGER_ROLE) {\n if (users_.length != allowed_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < users_.length; i++) {\n _allowed[users_[i]] = allowed_[i];\n }\n }\n}\n"},"contracts/allowlists/SimpleDenyList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\n/// @title SimpleDenyList\n/// @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\ncontract SimpleDenyList is AllowList {\n /// @dev An internal mapping of denied statuses\n mapping(address => bool) private _denied;\n\n /// @notice Construct a new SimpleDenyList\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the initial list of denied addresses\n /// @param data_ The compressed initialization data `(address owner, address[] denyList)`\n function initialize(bytes calldata data_) public virtual override initializer {\n (address owner_, address[] memory denyList_) = abi.decode(data_, (address, address[]));\n\n _initializeOwner(owner_);\n for (uint256 i = 0; i < denyList_.length; i++) {\n _denied[denyList_[i]] = true;\n }\n }\n\n /// @notice Check if a user is authorized (i.e. not denied)\n /// @param user_ The address of the user\n /// @param - The data payload for the authorization check, not used in this implementation\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata /* data_ - unused */ ) external view override returns (bool) {\n return !_denied[user_];\n }\n\n /// @notice Set the denied status of a user\n /// @param users_ The list of users to update\n /// @param denied_ The denied status of each user\n /// @dev The length of the `users_` and `denied_` arrays must be the same\n /// @dev This function can only be called by the owner\n function setDenied(address[] calldata users_, bool[] calldata denied_) external onlyOwner {\n if (users_.length != denied_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < users_.length; i++) {\n _denied[users_[i]] = denied_[i];\n }\n }\n}\n"},"contracts/BoostCore.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {LibZip} from \"@solady/utils/LibZip.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {BoostLib} from \"contracts/shared/BoostLib.sol\";\nimport {BoostRegistry} from \"contracts/BoostRegistry.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Boost Core\n/// @notice The core contract for the Boost protocol\n/// @dev This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA\ncontract BoostCore is Ownable, ReentrancyGuard {\n using LibClone for address;\n using LibZip for bytes;\n using SafeTransferLib for address;\n\n struct InitPayload {\n Budget budget;\n BoostLib.Target action;\n BoostLib.Target validator;\n BoostLib.Target allowList;\n BoostLib.Target[] incentives;\n uint64 protocolFee;\n uint64 referralFee;\n uint256 maxParticipants;\n address owner;\n }\n\n /// @notice The list of boosts\n BoostLib.Boost[] private _boosts;\n\n /// @notice The BoostRegistry contract\n BoostRegistry public registry;\n\n /// @notice The protocol fee receiver\n address public protocolFeeReceiver;\n\n /// @notice The claim fee (in wei)\n uint256 public claimFee = 0.000075 ether;\n\n /// @notice The base protocol fee (in bps)\n uint64 public protocolFee = 1_000; // 10%\n\n /// @notice The base referral fee (in bps)\n uint64 public referralFee = 1_000; // 10%\n\n /// @notice The fee denominator (basis points, i.e. 10000 == 100%)\n uint64 public constant FEE_DENOMINATOR = 10_000;\n\n /// @notice Constructor to initialize the owner\n constructor(BoostRegistry registry_, address protocolFeeReceiver_) {\n _initializeOwner(msg.sender);\n registry = registry_;\n protocolFeeReceiver = protocolFeeReceiver_;\n }\n\n /// @notice Create a new Boost\n /// @param data_ The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\n /// @dev The data is expected to:\n /// - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol)\n /// - properly decode to the following types (in order):\n /// - `Budget` to be used for the Boost\n /// - `Target` for the action\n /// - `Target` for the validator which is expected to be one of the following:\n /// - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\"SignerValidator\")`), along with the parameters for its initializer;\n /// - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size);\n /// - The zero address along with no parameter data if validation is implemented by the action;\n /// - `Target` for the allowList\n /// - `Target[]` for the incentives\n /// - `uint256` for the protocolFee (added to the base protocol fee)\n /// - `uint256` for the referralFee (added to the base referral fee)\n /// - `uint256` for the maxParticipants\n /// - `address` for the owner of the Boost\n function createBoost(bytes calldata data_) external onlyOwner nonReentrant returns (BoostLib.Boost memory) {\n InitPayload memory payload_ = abi.decode(data_.cdDecompress(), (InitPayload));\n\n // Validate the Budget\n _checkBudget(payload_.budget);\n\n // Initialize the Boost\n BoostLib.Boost storage boost = _boosts.push();\n boost.owner = payload_.owner;\n boost.budget = payload_.budget;\n boost.protocolFee = protocolFee + payload_.protocolFee;\n boost.referralFee = referralFee + payload_.referralFee;\n boost.maxParticipants = payload_.maxParticipants;\n\n // Setup the Boost components\n boost.action = Action(_makeTarget(type(Action).interfaceId, payload_.action, true));\n boost.allowList = AllowList(_makeTarget(type(AllowList).interfaceId, payload_.allowList, true));\n boost.incentives = _makeIncentives(payload_.incentives, payload_.budget);\n boost.validator = Validator(\n payload_.validator.instance == address(0)\n ? boost.action.supportsInterface(type(Validator).interfaceId) ? address(boost.action) : address(0)\n : _makeTarget(type(Validator).interfaceId, payload_.validator, true)\n );\n\n return boost;\n }\n\n /// @notice Claim an incentive for a Boost\n /// @param boostId_ The ID of the Boost\n /// @param incentiveId_ The ID of the Incentive\n /// @param referrer_ The address of the referrer (if any)\n /// @param data_ The data for the claim\n function claimIncentive(uint256 boostId_, uint256 incentiveId_, address referrer_, bytes calldata data_)\n external\n payable\n nonReentrant\n {\n BoostLib.Boost storage boost = _boosts[boostId_];\n if (msg.value < claimFee) revert BoostError.InsufficientFunds(address(0), msg.value, claimFee);\n _routeClaimFee(boost, referrer_);\n\n // wake-disable-next-line reentrancy (false positive, function is nonReentrant)\n if (!boost.validator.validate(data_)) revert BoostError.Unauthorized();\n if (\n !boost.incentives[incentiveId_].claim(abi.encode(Incentive.ClaimPayload({target: msg.sender, data: data_})))\n ) revert BoostError.ClaimFailed(msg.sender, data_);\n }\n\n /// @notice Get a Boost by index\n /// @param index The index of the Boost\n /// @return The Boost at the specified index\n function getBoost(uint256 index) external view returns (BoostLib.Boost memory) {\n return _boosts[index];\n }\n\n /// @notice Get the number of Boosts\n /// @return The number of Boosts\n function getBoostCount() external view returns (uint256) {\n return _boosts.length;\n }\n\n /// @notice Set the protocol fee receiver address\n /// @param protocolFeeReceiver_ The new protocol fee receiver address\n /// @dev This function is only callable by the owner\n function setProtocolFeeReceiver(address protocolFeeReceiver_) external onlyOwner {\n protocolFeeReceiver = protocolFeeReceiver_;\n }\n\n /// @notice Set the claim fee\n /// @param claimFee_ The new claim fee (in wei)\n /// @dev This function is only callable by the owner\n function setClaimFee(uint256 claimFee_) external onlyOwner {\n claimFee = claimFee_;\n }\n\n /// @notice Check that the provided Budget is valid and that the caller is authorized to use it\n /// @param budget_ The Budget to check\n /// @dev This function will revert if the Budget is invalid or the caller is unauthorized\n function _checkBudget(Budget budget_) internal view {\n _checkTarget(type(Budget).interfaceId, address(budget_));\n if (!budget_.isAuthorized(msg.sender)) revert BoostError.Unauthorized();\n }\n\n /// @notice Check that the provided Target is valid for the specified interface\n /// @param interfaceId The interface ID for the target\n /// @param instance The instance to check\n /// @dev This function will revert if the Target does not implement the expected interface\n /// @dev This check costs ~376 gas, which is worth it to validate the target\n function _checkTarget(bytes4 interfaceId, address instance) internal view {\n if (instance == address(0) || !Cloneable(instance).supportsInterface(interfaceId)) {\n revert BoostError.InvalidInstance(interfaceId, instance);\n }\n }\n\n /// @notice Create a target instance and optionally initialize it\n /// @param interfaceId The interface ID for the target\n /// @param target The target to create\n /// @param shouldInitialize Whether or not to initialize the target\n /// @return instance The target instance\n /// @dev This function will revert if the target does not implement the expected interface\n function _makeTarget(bytes4 interfaceId, BoostLib.Target memory target, bool shouldInitialize)\n internal\n returns (address instance)\n {\n _checkTarget(interfaceId, target.instance);\n instance = _maybeClone(target, shouldInitialize);\n }\n\n /// @notice Configure a set of incentives for a Boost using the given Budget\n /// @param targets_ The set of incentives {Target[]}\n /// @param budget_ The Budget from which to allocate the incentives\n /// @return incentives The set of initialized incentives {Incentive[]}\n function _makeIncentives(BoostLib.Target[] memory targets_, Budget budget_)\n internal\n returns (Incentive[] memory incentives)\n {\n incentives = new Incentive[](targets_.length);\n for (uint256 i = 0; i < targets_.length; i++) {\n // Deploy the clone, but don't initialize until it we've preflighted\n _checkTarget(type(Incentive).interfaceId, targets_[i].instance);\n\n // Ensure the target is a base implementation (incentive clones are not reusable)\n if (!targets_[i].isBase) {\n revert BoostError.InvalidInstance(type(Incentive).interfaceId, targets_[i].instance);\n }\n\n incentives[i] = Incentive(_makeTarget(type(Incentive).interfaceId, targets_[i], false));\n\n bytes memory preflight = incentives[i].preflight(targets_[i].parameters);\n if (preflight.length != 0) {\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n assert(budget_.disburse(preflight));\n }\n\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n incentives[i].initialize(targets_[i].parameters);\n }\n }\n\n /// @notice Get the target instance, optionally cloning and initializing from a base implementation\n function _maybeClone(BoostLib.Target memory target_, bool shouldInitialize_) internal returns (address instance) {\n instance = target_.isBase ? target_.instance.clone() : target_.instance;\n if (target_.isBase && shouldInitialize_) {\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n Cloneable(instance).initialize(target_.parameters);\n }\n }\n\n /// @notice Route the claim fee to the creator, referrer, and protocol fee receiver\n /// @param boost The Boost for which to route the claim fee\n /// @param referrer_ The address of the referrer (if any)\n function _routeClaimFee(BoostLib.Boost storage boost, address referrer_) internal {\n if (claimFee == 0) return;\n uint256 netFee = claimFee;\n\n // If a referrer is provided, transfer the revshare and reduce the net fee\n if (referrer_ != address(0)) {\n uint256 referralShare = claimFee * boost.referralFee / FEE_DENOMINATOR;\n netFee -= referralShare;\n referrer_.safeTransferETH(referralShare);\n }\n\n // The remaining fee is split between the owner and the protocol\n boost.owner.safeTransferETH(netFee / 2);\n protocolFeeReceiver.safeTransferETH(address(this).balance);\n }\n}\n"},"contracts/BoostRegistry.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {BoostLib} from \"contracts/shared/BoostLib.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\n\n/// @title Boost Registry\n/// @notice A registry for base implementations and cloned instances\n/// @dev This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol\ncontract BoostRegistry is ERC165, ReentrancyGuard {\n using BoostLib for address;\n\n /// @notice The types of bases that can be registered\n enum RegistryType {\n ACTION,\n ALLOW_LIST,\n BUDGET,\n INCENTIVE,\n VALIDATOR\n }\n\n /// @notice The data structure for a deployed clone\n /// @param baseType The type of base implementation\n /// @param name The display name for the clone\n /// @param instance The address of the clone\n /// @param deployer The address of the deployer\n struct Clone {\n RegistryType baseType;\n Cloneable instance;\n address deployer;\n string name;\n }\n\n /// @notice Emitted when a new base implementation is registered\n event Registered(RegistryType indexed registryType, bytes32 indexed identifier, address implementation);\n\n /// @notice Emitted when a new instance of a base implementation is deployed\n event Deployed(\n RegistryType indexed registryType,\n bytes32 indexed identifier,\n address baseImplementation,\n Cloneable deployedInstance\n );\n\n /// @notice Thrown when a base implementation is already registered\n error AlreadyRegistered(RegistryType registryType, bytes32 identifier);\n\n /// @notice Thrown when no match is found for the given identifier\n error NotRegistered(bytes32 identifier);\n\n /// @notice Thrown when the implementation is not a valid {Cloneable} base\n error NotCloneable(address implementation);\n\n /// @notice The registry of base implementations\n mapping(bytes32 => Cloneable) private _bases;\n\n /// @notice The registry of deployed clones\n mapping(bytes32 => Clone) private _clones;\n\n /// @notice The registry of clones created by a given deployer\n mapping(address => bytes32[]) private _deployedClones;\n\n /// @notice A modifier to ensure the given address holds a valid {Cloneable} base\n /// @param implementation_ The address of the implementation to check\n modifier onlyCloneables(address implementation_) {\n if (!Cloneable(implementation_).supportsInterface(type(Cloneable).interfaceId)) {\n revert NotCloneable(implementation_);\n }\n _;\n }\n\n /// @notice Register a new base implementation of a given type\n /// @param type_ The base type for the implementation\n /// @param name_ A name for the implementation (must be unique within the given type)\n /// @param implementation_ The address of the implementation contract\n /// @dev This function will either emit a `Registered` event or revert if the identifier has already been registered\n /// @dev The given address must implement the given type interface (See {ERC165-supportsInterface})\n function register(RegistryType type_, string calldata name_, address implementation_)\n external\n onlyCloneables(implementation_)\n {\n bytes32 identifier = getIdentifier(type_, name_);\n\n if (address(_bases[identifier]) != address(0)) revert AlreadyRegistered(type_, identifier);\n _bases[identifier] = Cloneable(implementation_);\n\n emit Registered(type_, identifier, implementation_);\n }\n\n /// @notice Deploy a new instance of a registered base implementation\n /// @param type_ The type of base implementation to be cloned\n /// @param base_ The address of the base implementation to clone\n /// @param name_ The display name for the clone\n /// @param data_ The data payload for the cloned instance's initializer\n /// @return instance The address of the deployed instance\n /// @dev This function will either emit a `Deployed` event and return the clone or revert\n function deployClone(RegistryType type_, address base_, string calldata name_, bytes calldata data_)\n external\n nonReentrant\n returns (Cloneable instance)\n {\n // Deploy and initialize the clone\n instance =\n Cloneable(base_.cloneAndInitialize(keccak256(abi.encodePacked(type_, base_, name_, msg.sender)), data_));\n\n // Ensure the clone's identifier is unique\n bytes32 identifier = getCloneIdentifier(type_, base_, msg.sender, name_);\n if (address(_clones[identifier].instance) != address(0)) revert AlreadyRegistered(type_, identifier);\n\n // Register and report the newly deployed clone\n _deployedClones[msg.sender].push(identifier);\n _clones[identifier] = Clone({baseType: type_, instance: instance, deployer: msg.sender, name: name_});\n\n emit Deployed(type_, identifier, base_, instance);\n }\n\n /// @notice Get the address of a registered base implementation\n /// @param identifier_ The unique identifier for the implementation (see {getIdentifier})\n /// @return implementation The address of the implementation\n /// @dev This function will revert if the implementation is not registered\n function getBaseImplementation(bytes32 identifier_) public view returns (Cloneable implementation) {\n implementation = _bases[identifier_];\n if (address(implementation) == address(0)) revert NotRegistered(identifier_);\n }\n\n /// @notice Get the address of a deployed clone by its identifier\n /// @param identifier_ The unique identifier for the deployed clone (see {getCloneIdentifier})\n /// @return clone The address of the deployed clone\n function getClone(bytes32 identifier_) external view returns (Clone memory clone) {\n clone = _clones[identifier_];\n if (address(clone.instance) == address(0)) revert NotRegistered(identifier_);\n }\n\n /// @notice Get the list of identifiers of deployed clones for a given deployer\n /// @param deployer_ The address of the deployer\n /// @return clones The list of deployed clones for the given deployer\n /// @dev WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic.\n function getClones(address deployer_) external view returns (bytes32[] memory) {\n return _deployedClones[deployer_];\n }\n\n /// @notice Build the identifier for a clone of a base implementation\n /// @param type_ The base type for the implementation\n /// @param base_ The address of the base implementation\n /// @param deployer_ The address of the deployer\n /// @param name_ The display name of the clone\n /// @return identifier The unique identifier for the clone\n function getCloneIdentifier(RegistryType type_, address base_, address deployer_, string calldata name_)\n public\n pure\n returns (bytes32 identifier)\n {\n return _getIdentifier(type_, keccak256(abi.encodePacked(base_, deployer_, name_)));\n }\n\n /// @notice Build the identifier for a base implementation\n /// @param type_ The base type for the implementation\n /// @param name_ The name of the implementation\n /// @return identifier The unique identifier for the implementation\n function getIdentifier(RegistryType type_, string calldata name_) public pure returns (bytes32 identifier) {\n return _getIdentifier(type_, keccak256(abi.encodePacked(name_)));\n }\n\n /// @notice Build a unique identifier for a given type and hash\n /// @param type_ The base type for the implementation\n /// @param hash_ The unique hash for the implementation\n /// @return identifier The unique identifier for the implementation\n function _getIdentifier(RegistryType type_, bytes32 hash_) internal pure returns (bytes32 identifier) {\n return keccak256(abi.encodePacked(type_, hash_));\n }\n}\n"},"contracts/budgets/Budget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {Receiver} from \"@solady/accounts/Receiver.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Budget\n/// @notice Abstract contract for a generic Budget within the Boost protocol\n/// @dev Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.\n/// @dev WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future.\nabstract contract Budget is Ownable, Cloneable, Receiver {\n using SafeTransferLib for address;\n\n enum AssetType {\n ETH,\n ERC20,\n ERC1155\n }\n\n /// @notice A struct representing the inputs for an allocation\n /// @param assetType The type of asset to allocate\n /// @param asset The address of the asset to allocate\n /// @param target The address of the payee or payer (from or to, depending on the operation)\n /// @param data The implementation-specific data for the allocation (amount, token ID, etc.)\n struct Transfer {\n AssetType assetType;\n address asset;\n address target;\n bytes data;\n }\n\n /// @notice The payload for an ETH or ERC20 transfer\n /// @param amount The amount of the asset to transfer\n struct FungiblePayload {\n uint256 amount;\n }\n\n /// @notice The payload for an ERC1155 transfer\n /// @param tokenId The ID of the token to transfer\n /// @param amount The amount of the token to transfer\n /// @param data Any additional data to forward to the ERC1155 contract\n struct ERC1155Payload {\n uint256 tokenId;\n uint256 amount;\n bytes data;\n }\n\n /// @notice Emitted when an address's authorization status changes\n event Authorized(address indexed account, bool isAuthorized);\n\n /// @notice Emitted when assets are distributed from the budget\n event Distributed(address indexed asset, address to, uint256 amount);\n\n /// @notice Thrown when the allocation is invalid\n error InvalidAllocation(address asset, uint256 amount);\n\n /// @notice Thrown when there are insufficient funds for an operation\n error InsufficientFunds(address asset, uint256 available, uint256 required);\n\n /// @notice Thrown when the length of two arrays are not equal\n error LengthMismatch();\n\n /// @notice Thrown when a transfer fails for an unknown reason\n error TransferFailed(address asset, address to, uint256 amount);\n\n /// @notice Initialize the budget and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Allocate assets to the budget\n /// @param data_ The compressed data for the allocation (amount, token address, token ID, etc.)\n /// @return True if the allocation was successful\n function allocate(bytes calldata data_) external payable virtual returns (bool);\n\n /// @notice Reclaim assets from the budget\n /// @param data_ The compressed data for the reclamation (amount, token address, token ID, etc.)\n /// @return True if the reclamation was successful\n function reclaim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Disburse assets from the budget to a single recipient\n /// @param data_ The compressed {Transfer} request\n /// @return True if the disbursement was successful\n function disburse(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Disburse assets from the budget to multiple recipients\n /// @param data_ The array of compressed {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual returns (bool);\n\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n function total(address asset_) external view virtual returns (uint256);\n\n /// @notice Get the amount of assets available for distribution from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets available\n function available(address asset_) external view virtual returns (uint256);\n\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual returns (uint256);\n\n /// @notice Reconcile the budget to ensure the known state matches the actual state\n /// @param data_ The compressed data for the reconciliation (amount, token address, token ID, etc.)\n /// @return The amount of assets reconciled\n function reconcile(bytes calldata data_) external virtual returns (uint256);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Budget).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @notice Set the authorized status of the given accounts\n /// @param accounts_ The accounts to authorize or deauthorize\n /// @param isAuthorized_ The authorization status for the given accounts\n /// @dev The mechanism for managing authorization is left to the implementing contract\n function setAuthorized(address[] calldata accounts_, bool[] calldata isAuthorized_) external virtual;\n\n /// @notice Check if the given account is authorized to use the budget\n /// @param account_ The account to check\n /// @return True if the account is authorized\n /// @dev The mechanism for checking authorization is left to the implementing contract\n function isAuthorized(address account_) external view virtual returns (bool);\n\n /// @inheritdoc Receiver\n receive() external payable virtual override {\n return;\n }\n\n /// @inheritdoc Receiver\n fallback() external payable virtual override {\n return;\n }\n}\n"},"contracts/budgets/SimpleBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Simple Budget\n/// @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n/// @dev This type of budget supports ETH, ERC20, and ERC1155 assets only\ncontract SimpleBudget is Budget, IERC1155Receiver, ReentrancyGuard {\n using SafeTransferLib for address;\n\n /// @notice The payload for initializing a SimpleBudget\n struct InitPayload {\n address owner;\n address[] authorized;\n }\n\n /// @dev The total amount of each fungible asset distributed from the budget\n mapping(address => uint256) private _distributedFungible;\n\n /// @dev The total amount of each ERC1155 asset and token ID distributed from the budget\n mapping(address => mapping(uint256 => uint256)) private _distributedERC1155;\n\n /// @dev The mapping of authorized addresses\n mapping(address => bool) private _isAuthorized;\n\n /// @notice A modifier that allows only authorized addresses to call the function\n modifier onlyAuthorized() {\n if (!isAuthorized(msg.sender)) revert Unauthorized();\n _;\n }\n\n /// @notice Construct a new SimpleBudget\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n _initializeOwner(init_.owner);\n for (uint256 i = 0; i < init_.authorized.length; i++) {\n _isAuthorized[init_.authorized[i]] = true;\n }\n }\n\n /// @inheritdoc Budget\n /// @notice Allocates assets to the budget\n /// @param data_ The packed data for the {Transfer} request\n /// @return True if the allocation was successful\n /// @dev The caller must have already approved the contract to transfer the asset\n /// @dev If the asset transfer fails, the allocation will revert\n function allocate(bytes calldata data_) external payable virtual override returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Ensure the value received is equal to the `payload.amount`\n if (msg.value != payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Transfer `payload.amount` of the token to this contract\n request.asset.safeTransferFrom(request.target, address(this), payload.amount);\n if (request.asset.balanceOf(address(this)) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n\n // Transfer `payload.amount` of `payload.tokenId` to this contract\n IERC1155(request.asset).safeTransferFrom(\n request.target, address(this), payload.tokenId, payload.amount, payload.data\n );\n if (IERC1155(request.asset).balanceOf(address(this), payload.tokenId) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else {\n // Unsupported asset type\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Reclaims assets from the budget\n /// @param data_ The packed {Transfer} request\n /// @return True if the request was successful\n /// @dev Only the owner can directly reclaim assets from the budget\n /// @dev If the amount is zero, the entire balance of the asset will be transferred to the receiver\n /// @dev If the asset transfer fails, the reclamation will revert\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH || request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(\n request.asset, request.target, payload.amount == 0 ? available(request.asset) : payload.amount\n );\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n _transferERC1155(\n request.asset,\n request.target,\n payload.tokenId,\n payload.amount == 0 ? IERC1155(request.asset).balanceOf(address(this), payload.tokenId) : payload.amount,\n payload.data\n );\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to a single recipient\n /// @param data_ The packed {Transfer} request\n /// @return True if the disbursement was successful\n /// @dev If the asset transfer fails, the disbursement will revert\n function disburse(bytes calldata data_) public virtual override onlyAuthorized returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ERC20 || request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n uint256 avail = available(request.asset);\n if (payload.amount > avail) {\n revert InsufficientFunds(request.asset, avail, payload.amount);\n }\n\n _transferFungible(request.asset, request.target, payload.amount);\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n\n uint256 avail = IERC1155(request.asset).balanceOf(address(this), payload.tokenId);\n if (payload.amount > avail) {\n revert InsufficientFunds(request.asset, avail, payload.amount);\n }\n\n _transferERC1155(request.asset, request.target, payload.tokenId, payload.amount, payload.data);\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to multiple recipients\n /// @param data_ The packed array of {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual override returns (bool) {\n for (uint256 i = 0; i < data_.length; i++) {\n if (!disburse(data_[i])) return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n function setAuthorized(address[] calldata account_, bool[] calldata authorized_)\n external\n virtual\n override\n onlyOwner\n {\n if (account_.length != authorized_.length) revert LengthMismatch();\n for (uint256 i = 0; i < account_.length; i++) {\n _isAuthorized[account_[i]] = authorized_[i];\n }\n }\n\n /// @inheritdoc Budget\n function isAuthorized(address account_) public view virtual override returns (bool) {\n return _isAuthorized[account_] || account_ == owner();\n }\n\n /// @inheritdoc Budget\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n /// @dev This is simply the sum of the current balance and the distributed amount\n function total(address asset_) external view virtual override returns (uint256) {\n return available(asset_) + _distributedFungible[asset_];\n }\n\n /// @notice Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The total amount of assets\n function total(address asset_, uint256 tokenId_) external view virtual returns (uint256) {\n return IERC1155(asset_).balanceOf(address(this), tokenId_) + _distributedERC1155[asset_][tokenId_];\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets available for distribution from the budget\n /// @param asset_ The address of the asset (or the zero address for native assets)\n /// @return The amount of assets available\n /// @dev This is simply the current balance held by the budget\n /// @dev If the zero address is passed, this function will return the native balance\n function available(address asset_) public view virtual override returns (uint256) {\n return asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n }\n\n /// @notice Get the amount of ERC1155 assets available for distribution from the budget\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The amount of assets available\n function available(address asset_, uint256 tokenId_) public view virtual returns (uint256) {\n return IERC1155(asset_).balanceOf(address(this), tokenId_);\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual override returns (uint256) {\n return _distributedFungible[asset_];\n }\n\n /// @notice Get the amount of ERC1155 assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The amount of assets distributed\n function distributed(address asset_, uint256 tokenId_) external view virtual returns (uint256) {\n return _distributedERC1155[asset_][tokenId_];\n }\n\n /// @inheritdoc Budget\n /// @dev This is a no-op as there is no local balance to reconcile\n function reconcile(bytes calldata) external virtual override returns (uint256) {\n return 0;\n }\n\n /// @notice Transfer assets to the recipient\n /// @param asset_ The address of the asset\n /// @param to_ The address of the recipient\n /// @param amount_ The amount of the asset to transfer\n /// @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n /// @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert\n function _transferFungible(address asset_, address to_, uint256 amount_) internal virtual nonReentrant {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_)) {\n revert InsufficientFunds(asset_, available(asset_), amount_);\n }\n\n _distributedFungible[asset_] += amount_;\n\n // Transfer the asset to the recipient\n if (asset_ == address(0)) {\n SafeTransferLib.safeTransferETH(to_, amount_);\n } else {\n asset_.safeTransfer(to_, amount_);\n }\n\n emit Distributed(asset_, to_, amount_);\n }\n\n function _transferERC1155(address asset_, address to_, uint256 tokenId_, uint256 amount_, bytes memory data_)\n internal\n virtual\n nonReentrant\n {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_, tokenId_)) {\n revert InsufficientFunds(asset_, available(asset_, tokenId_), amount_);\n }\n\n _distributedERC1155[asset_][tokenId_] += amount_;\n\n // Transfer the asset to the recipient\n // wake-disable-next-line reentrancy (`nonReentrant` modifier is applied to the function)\n IERC1155(asset_).safeTransferFrom(address(this), to_, tokenId_, amount_, data_);\n\n emit Distributed(asset_, to_, amount_);\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\n function onERC1155Received(address, address, uint256, uint256, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n // We don't need to do anything here\n return IERC1155Receiver.onERC1155Received.selector;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\n function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n // We don't need to do anything here\n return IERC1155Receiver.onERC1155BatchReceived.selector;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Budget, IERC165) returns (bool) {\n return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/budgets/VestingBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Vesting Budget\n/// @notice A vesting-based budget implementation that allows for the distribution of assets over time\n/// @dev Take note of the following when making use of this budget type:\n/// - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n/// - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n/// - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n/// - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\ncontract VestingBudget is Budget, ReentrancyGuard {\n using SafeTransferLib for address;\n\n /// @notice The payload for initializing a VestingBudget\n struct InitPayload {\n address owner;\n address[] authorized;\n uint64 start;\n uint64 duration;\n uint64 cliff;\n }\n\n /// @dev The total amount of each fungible asset distributed from the budget\n mapping(address => uint256) private _distributedFungible;\n\n /// @dev The mapping of authorized addresses\n mapping(address => bool) private _isAuthorized;\n\n /// @notice The timestamp at which the vesting schedule begins\n uint64 public start;\n\n /// @notice The duration of the vesting schedule (in seconds)\n uint64 public duration;\n\n /// @notice The duration of the cliff period (in seconds)\n uint64 public cliff;\n\n /// @notice A modifier that allows only authorized addresses to call the function\n modifier onlyAuthorized() {\n if (!isAuthorized(msg.sender)) revert Unauthorized();\n _;\n }\n\n /// @notice Construct a new VestingBudget\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget (see {InitPayload})\n function initialize(bytes calldata data_) public virtual override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n start = init_.start;\n duration = init_.duration;\n cliff = init_.cliff;\n\n _initializeOwner(init_.owner);\n for (uint256 i = 0; i < init_.authorized.length; i++) {\n _isAuthorized[init_.authorized[i]] = true;\n }\n }\n\n /// @inheritdoc Budget\n /// @notice Allocates assets to the budget\n /// @param data_ The packed data for the {Transfer} request\n /// @return True if the allocation was successful\n /// @dev The caller must have already approved the contract to transfer the asset\n /// @dev If the asset transfer fails, the allocation will revert\n function allocate(bytes calldata data_) external payable virtual override returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Ensure the value received is equal to the `payload.amount`\n if (msg.value != payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Transfer `payload.amount` of the token to this contract\n request.asset.safeTransferFrom(request.target, address(this), payload.amount);\n if (request.asset.balanceOf(address(this)) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else {\n // Unsupported asset type\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Reclaims assets from the budget\n /// @param data_ The packed {Transfer} request\n /// @return True if the request was successful\n /// @dev Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting schedule\n /// @dev If the amount is zero, the entire available balance of the asset will be transferred to the receiver\n /// @dev If the asset transfer fails for any reason, the function will revert\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH || request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(\n request.asset, request.target, payload.amount == 0 ? available(request.asset) : payload.amount\n );\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to a single recipient\n /// @param data_ The packed {Transfer} request\n /// @return True if the disbursement was successful\n /// @dev The maximum amount that can be disbursed is the {available} amount\n function disburse(bytes calldata data_) public virtual override onlyAuthorized returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ERC20 || request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(request.asset, request.target, payload.amount);\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to multiple recipients\n /// @param data_ The packed array of {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual override returns (bool) {\n for (uint256 i = 0; i < data_.length; i++) {\n if (!disburse(data_[i])) return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n function setAuthorized(address[] calldata account_, bool[] calldata authorized_)\n external\n virtual\n override\n onlyOwner\n {\n if (account_.length != authorized_.length) revert LengthMismatch();\n for (uint256 i = 0; i < account_.length; i++) {\n _isAuthorized[account_[i]] = authorized_[i];\n }\n }\n\n /// @inheritdoc Budget\n function isAuthorized(address account_) public view virtual override returns (bool) {\n return _isAuthorized[account_] || account_ == owner();\n }\n\n /// @notice Get the end time of the vesting schedule\n /// @return The end time of the vesting schedule\n function end() external view virtual returns (uint256) {\n return start + duration;\n }\n\n /// @inheritdoc Budget\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n /// @dev This is equal to the sum of the total current balance and the total distributed amount\n function total(address asset_) external view virtual override returns (uint256) {\n uint256 balance = asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n return _distributedFungible[asset_] + balance;\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets available for distribution from the budget as of the current block timestamp\n /// @param asset_ The address of the asset (or the zero address for native assets)\n /// @return The amount of assets currently available for distribution\n /// @dev This is equal to the total vested amount minus any already distributed\n function available(address asset_) public view virtual override returns (uint256) {\n return _vestedAllocation(asset_, uint64(block.timestamp)) - _distributedFungible[asset_];\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual override returns (uint256) {\n return _distributedFungible[asset_];\n }\n\n /// @inheritdoc Budget\n /// @dev This is a no-op as there is no local balance to reconcile\n function reconcile(bytes calldata) external virtual override returns (uint256) {\n return 0;\n }\n\n /// @notice Transfer assets to the recipient\n /// @param asset_ The address of the asset\n /// @param to_ The address of the recipient\n /// @param amount_ The amount of the asset to transfer\n /// @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n /// @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert\n function _transferFungible(address asset_, address to_, uint256 amount_) internal virtual nonReentrant {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_)) {\n revert InsufficientFunds(asset_, available(asset_), amount_);\n }\n\n _distributedFungible[asset_] += amount_;\n\n // Transfer the asset to the recipient\n if (asset_ == address(0)) {\n SafeTransferLib.safeTransferETH(to_, amount_);\n } else {\n asset_.safeTransfer(to_, amount_);\n }\n\n emit Distributed(asset_, to_, amount_);\n }\n\n /// @notice Calculate the portion of allocated assets vested at a given timestamp\n /// @param asset_ The address of the asset\n /// @param timestamp_ The timestamp used to calculate the vested amount\n /// @return The amount of assets vested at that point in time\n function _vestedAllocation(address asset_, uint64 timestamp_) internal view virtual returns (uint256) {\n uint256 balance = asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n return _linearVestedAmount(balance + _distributedFungible[asset_], timestamp_);\n }\n\n /// @notice Calculate the amount of assets vested at a given timestamp using a linear vesting schedule\n /// @param totalAllocation The total amount of the asset allocated to the budget (including prior distributions)\n /// @param timestamp The timestamp used to calculate the vested amount\n /// @return The amount of assets vested at that point in time\n function _linearVestedAmount(uint256 totalAllocation, uint64 timestamp) internal view virtual returns (uint256) {\n if (timestamp < start + cliff) {\n return 0;\n } else if (timestamp >= start + duration) {\n return totalAllocation;\n } else {\n return totalAllocation * (timestamp - start) / duration;\n }\n }\n}\n"},"contracts/incentives/AllowListIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {SimpleAllowList} from \"contracts/allowlists/SimpleAllowList.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title SimpleAllowList Incentive\n/// @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n/// @dev In order for any claim to be successful:\n/// - The claimer must not already be on the allow list; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to modify the allow list\ncontract AllowListIncentive is Incentive {\n /// @notice The payload for initializing an AllowListIncentive\n struct InitPayload {\n SimpleAllowList allowList;\n uint256 limit;\n }\n\n /// @notice The SimpleAllowList contract\n SimpleAllowList public allowList;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice Construct a new AllowListIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The packed initialization data `(SimpleAllowList allowList, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n _initializeOwner(msg.sender);\n allowList = init_.allowList;\n limit = init_.limit;\n }\n\n /// @inheritdoc Incentive\n /// @notice Claim a slot on the {SimpleAllowList}\n /// @param data_ The claim data\n function claim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (claims++ >= limit || claimed[claim_.target]) revert NotClaimable();\n claimed[claim_.target] = true;\n\n (address[] memory users, bool[] memory allowed) = _makeAllowListPayload(claim_.target);\n\n allowList.setAllowed(users, allowed);\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @dev Not a valid operation for this type of incentive\n function reclaim(bytes calldata) external pure override returns (bool) {\n revert BoostError.NotImplemented();\n }\n\n /// @inheritdoc Incentive\n function isClaimable(bytes calldata data_) external view virtual override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return claims < limit && !claimed[claim_.target] && !allowList.isAllowed(claim_.target, \"\");\n }\n\n /// @inheritdoc Incentive\n /// @dev No preflight approval is required for this incentive (no tokens are handled)\n function preflight(bytes calldata) external pure override returns (bytes memory) {\n return new bytes(0);\n }\n\n /// @notice Create the payload for the SimpleAllowList\n /// @param target_ The target address to add to the allow list\n /// @return A tuple of users and allowed statuses\n function _makeAllowListPayload(address target_) internal pure returns (address[] memory, bool[] memory) {\n address[] memory users = new address[](1);\n bool[] memory allowed = new bool[](1);\n users[0] = target_;\n allowed[0] = true;\n return (users, allowed);\n }\n}\n"},"contracts/incentives/CGDAIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\n\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title Continuous Gradual Dutch Auction Incentive\n/// @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\ncontract CGDAIncentive is Incentive {\n using SafeTransferLib for address;\n\n /// @notice The ERC20-like token used for the incentive\n address public asset;\n\n /// @notice The payload for initializing a CGDAIncentive\n /// @param asset The address of the ERC20-like token\n /// @param initialReward The initial reward amount\n /// @param rewardDecay The amount to subtract from the current reward after each claim\n /// @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n /// @param totalBudget The total budget for the incentive\n struct InitPayload {\n address asset;\n uint256 initialReward;\n uint256 rewardDecay;\n uint256 rewardBoost;\n uint256 totalBudget;\n }\n\n /// @notice The configuration parameters for the CGDAIncentive\n /// @param rewardDecay The amount to subtract from the current reward after each claim\n /// @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n /// @param lastClaimTime The timestamp of the last claim\n /// @param currentReward The current reward amount\n struct CGDAParameters {\n uint256 rewardDecay;\n uint256 rewardBoost;\n uint256 lastClaimTime;\n uint256 currentReward;\n }\n\n CGDAParameters public cgdaParams;\n uint256 public totalBudget;\n\n /// @notice Construct a new CGDAIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the CGDA Incentive\n /// @param data_ Initialization parameters.\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n uint256 available = init_.asset.balanceOf(address(this));\n if (available < init_.totalBudget) {\n revert BoostError.InsufficientFunds(init_.asset, available, init_.totalBudget);\n }\n\n if (\n init_.initialReward == 0 || init_.rewardDecay == 0 || init_.rewardBoost == 0\n || init_.totalBudget < init_.initialReward\n ) revert BoostError.InvalidInitialization();\n\n asset = init_.asset;\n cgdaParams = CGDAParameters({\n rewardDecay: init_.rewardDecay,\n rewardBoost: init_.rewardBoost,\n lastClaimTime: block.timestamp,\n currentReward: init_.initialReward\n });\n\n totalBudget = init_.totalBudget;\n _initializeOwner(msg.sender);\n }\n\n /// @inheritdoc Incentive\n /// @notice Claim the incentive\n function claim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n claims++;\n\n // Calculate the current reward and update the state\n uint256 reward = currentReward();\n cgdaParams.lastClaimTime = block.timestamp;\n cgdaParams.currentReward =\n reward > cgdaParams.rewardDecay ? reward - cgdaParams.rewardDecay : cgdaParams.rewardDecay;\n\n // Transfer the reward to the recipient\n asset.safeTransfer(claim_.target, reward);\n\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, reward));\n return true;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n // Transfer the tokens back to the intended recipient\n asset.safeTransfer(claim_.target, amount);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, amount));\n\n return true;\n }\n\n /// @inheritdoc Incentive\n function isClaimable(bytes calldata data_) external view virtual override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @inheritdoc Incentive\n /// @notice Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\n /// @param data_ The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\n /// @return The amount of tokens required\n function preflight(bytes calldata data_) external view virtual override returns (bytes memory) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC20,\n asset: init_.asset,\n target: address(this),\n data: abi.encode(Budget.FungiblePayload({amount: init_.totalBudget}))\n })\n );\n }\n\n /// @notice Calculates the current reward based on the time since the last claim.\n /// @return The current reward\n /// @dev The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.\n /// @dev For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\n function currentReward() public view returns (uint256) {\n uint256 timeSinceLastClaim = block.timestamp - cgdaParams.lastClaimTime;\n uint256 available = asset.balanceOf(address(this));\n\n // Calculate the current reward based on the time elapsed since the last claim\n // on a linear scale, with `1 * rewardBoost` added for each hour without a claim\n uint256 projectedReward = cgdaParams.currentReward + (timeSinceLastClaim * cgdaParams.rewardBoost) / 3600;\n return projectedReward > available ? available : projectedReward;\n }\n\n function _isClaimable(address recipient_) internal view returns (bool) {\n uint256 reward = currentReward();\n return reward > 0 && asset.balanceOf(address(this)) >= reward && !claimed[recipient_];\n }\n}\n"},"contracts/incentives/ERC1155Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title ERC1155Incentive\n/// @notice A simple ERC1155 incentive implementation that allows claiming of tokens\ncontract ERC1155Incentive is Incentive, IERC1155Receiver {\n /// @notice The strategy for the incentive\n /// @dev The strategy determines how the incentive is disbursed:\n /// - POOL: Transfer tokens from the pool to the recipient\n /// - MINT: Mint tokens to the recipient directly (not yet implemented)\n enum Strategy {\n POOL,\n MINT\n }\n\n /// @notice The payload for initializing an ERC1155Incentive\n struct InitPayload {\n IERC1155 asset;\n Strategy strategy;\n uint256 tokenId;\n uint256 limit;\n bytes extraData;\n }\n\n /// @notice The address of the ERC1155-compliant contract\n IERC1155 public asset;\n\n /// @notice The strategy for the incentive (MINT or POOL)\n Strategy public strategy;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice The ERC1155 token ID for the incentive\n uint256 public tokenId;\n\n /// @notice Extra data to be passed to the ERC1155 contract\n bytes public extraData;\n\n /// @notice Construct a new ERC1155Incentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed initialization payload\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n // Ensure the strategy is valid (MINT is not yet supported)\n if (init_.strategy == Strategy.MINT) revert BoostError.NotImplemented();\n if (init_.limit == 0) revert BoostError.InvalidInitialization();\n\n // Ensure the maximum reward amount has been allocated\n uint256 available = init_.asset.balanceOf(address(this), init_.tokenId);\n if (available < init_.limit) {\n revert BoostError.InsufficientFunds(address(init_.asset), available, init_.limit);\n }\n\n asset = init_.asset;\n strategy = init_.strategy;\n tokenId = init_.tokenId;\n limit = init_.limit;\n extraData = init_.extraData;\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n // Disburse the incentive based on the strategy (POOL only for now)\n if (strategy == Strategy.POOL) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n claims++;\n claimed[claim_.target] = true;\n\n // wake-disable-next-line reentrancy (not a risk here)\n asset.safeTransferFrom(address(this), claim_.target, tokenId, 1, claim_.data);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, tokenId, uint256(1), claim_.data));\n\n return true;\n }\n\n return false;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n // Ensure the amount is valid and reduce the max claims accordingly\n if (amount > limit) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit -= amount;\n\n // Reclaim the incentive to the intended recipient\n // wake-disable-next-line reentrancy (not a risk here)\n asset.safeTransferFrom(address(this), claim_.target, tokenId, amount, claim_.data);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, tokenId, amount, claim_.data));\n\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @notice Get the required allowance for the incentive\n /// @param data_ The initialization payload for the incentive\n /// @return budgetData The data payload to be passed to the Budget for interpretation\n function preflight(bytes calldata data_) external view override returns (bytes memory budgetData) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC1155,\n asset: address(init_.asset),\n target: address(this),\n data: abi.encode(\n Budget.ERC1155Payload({tokenId: init_.tokenId, amount: init_.limit, data: init_.extraData})\n )\n })\n );\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @inheritdoc Incentive\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Incentive) returns (bool) {\n return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not check the token ID and will accept all tokens\n function onERC1155Received(address, address, uint256, uint256, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n return this.onERC1155Received.selector;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not check the token ID and will accept all batches\n function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n return this.onERC1155BatchReceived.selector;\n }\n}\n"},"contracts/incentives/ERC20Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibPRNG} from \"@solady/utils/LibPRNG.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title ERC20 Incentive\n/// @notice A simple ERC20 incentive implementation that allows claiming of tokens\ncontract ERC20Incentive is Incentive {\n using LibPRNG for LibPRNG.PRNG;\n using SafeTransferLib for address;\n\n /// @notice Emitted when an entry is added to the raffle\n event Entry(address indexed entry);\n\n /// @notice The strategy for the incentive\n /// @dev The strategy determines how the incentive is disbursed:\n /// - POOL: Users claim from a pool of rewards until the limit is reached, with each claim receiving an equal share of the total;\n /// - MINT: New tokens are minted and distributed to the recipient, with each claim receiving an equal amount of newly issued tokens;\n /// - RAFFLE: Users claim a slot in a raffle, and a single winner is randomly drawn to receive the entire reward amount;\n enum Strategy {\n POOL,\n MINT,\n RAFFLE\n }\n\n /// @notice The payload for initializing the incentive\n struct InitPayload {\n address asset;\n Strategy strategy;\n uint256 reward;\n uint256 limit;\n }\n\n /// @notice The address of the ERC20-like token\n address public asset;\n\n /// @notice The strategy for the incentive (MINT or POOL)\n Strategy public strategy;\n\n /// @notice The reward amount issued for each claim\n uint256 public reward;\n\n /// @notice The limit (max claims, or max entries for raffles)\n uint256 public limit;\n\n /// @notice The set of addresses that have claimed a slot in the incentive raffle\n address[] public entries;\n\n /// @notice Construct a new ERC20Incentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n // Ensure the strategy is valid (MINT is not yet supported)\n if (init_.strategy == Strategy.MINT) revert BoostError.NotImplemented();\n if (init_.reward == 0 || init_.limit == 0) revert BoostError.InvalidInitialization();\n\n // Ensure the maximum reward amount has been allocated\n uint256 maxTotalReward = init_.strategy != Strategy.RAFFLE ? init_.reward * init_.limit : init_.reward;\n uint256 available = init_.asset.balanceOf(address(this));\n if (available < maxTotalReward) {\n revert BoostError.InsufficientFunds(init_.asset, available, maxTotalReward);\n }\n\n asset = init_.asset;\n strategy = init_.strategy;\n reward = init_.reward;\n limit = init_.limit;\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n if (strategy == Strategy.POOL) {\n claims++;\n claimed[claim_.target] = true;\n\n asset.safeTransfer(claim_.target, reward);\n\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, reward));\n return true;\n } else if (strategy == Strategy.RAFFLE) {\n claims++;\n claimed[claim_.target] = true;\n entries.push(claim_.target);\n\n emit Entry(claim_.target);\n return true;\n }\n\n return false;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n if (strategy == Strategy.RAFFLE) {\n // Ensure the amount is the full reward and there are no raffle entries, then reset the limit\n if (amount != reward || claims > 0) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit = 0;\n } else {\n // Ensure the amount is a multiple of the reward and reduce the max claims accordingly\n if (amount % reward != 0) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit -= amount / reward;\n }\n\n // Transfer the tokens back to the intended recipient\n asset.safeTransfer(claim_.target, amount);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, amount));\n\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @notice Preflight the incentive to determine the required budget action\n /// @param data_ The {InitPayload} for the incentive\n /// @return budgetData The {Transfer} payload to be passed to the {Budget} for interpretation\n function preflight(bytes calldata data_) external view override returns (bytes memory budgetData) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n uint256 amount = init_.strategy != Strategy.RAFFLE ? init_.reward * init_.limit : init_.reward;\n\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC20,\n asset: init_.asset,\n target: address(this),\n data: abi.encode(Budget.FungiblePayload({amount: amount}))\n })\n );\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n\n /// @notice Draw a winner from the raffle\n /// @dev Only valid when the strategy is set to `Strategy.RAFFLE`\n function drawRaffle() external onlyOwner {\n if (strategy != Strategy.RAFFLE) revert BoostError.Unauthorized();\n\n LibPRNG.PRNG memory _prng = LibPRNG.PRNG({state: block.prevrandao + block.timestamp});\n\n address winnerAddress = entries[_prng.next() % entries.length];\n\n asset.safeTransfer(winnerAddress, reward);\n emit Claimed(winnerAddress, abi.encodePacked(asset, winnerAddress, reward));\n }\n}\n"},"contracts/incentives/Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Incentive\n/// @notice Abstract contract for a generic Incentive within the Boost protocol\n/// @dev Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Incentive is Ownable, Cloneable, ReentrancyGuard {\n /// @notice Emitted when an incentive is claimed\n /// @dev The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\n event Claimed(address indexed recipient, bytes data);\n\n /// @notice Thrown when a claim fails\n error ClaimFailed();\n\n /// @notice Thrown when the incentive is not claimable\n error NotClaimable();\n\n /// @notice A struct representing the payload for an incentive claim\n /// @param target The address of the recipient\n /// @param data The implementation-specific data for the claim, if needed\n struct ClaimPayload {\n address target;\n bytes data;\n }\n\n /// @notice The number of claims that have been made\n uint256 public claims;\n\n /// @notice A mapping of address to claim status\n mapping(address => bool) public claimed;\n\n /// @notice Initialize the contract and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Reclaim assets from the incentive\n /// @param data_ The data payload for the reclaim\n /// @return True if the assets were successfully reclaimed\n function reclaim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check (data, signature, etc.)\n /// @return True if the incentive is claimable based on the data payload\n function isClaimable(bytes calldata data_) external view virtual returns (bool);\n\n /// @notice Get the required allowance for the incentive\n /// @param data_ The initialization payload for the incentive\n /// @return The data payload to be passed to the {Budget} for interpretation\n /// @dev This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\n function preflight(bytes calldata data_) external view virtual returns (bytes memory);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Incentive).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/incentives/PointsIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title Points Incentive\n/// @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n/// @dev In order for any claim to be successful:\n/// - The claimer must not have already claimed the incentive; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to operate the points contract's issuance function\ncontract PointsIncentive is Incentive {\n /// @notice The payload for initializing a PointsIncentive\n struct InitPayload {\n address venue;\n bytes4 selector;\n uint256 quantity;\n uint256 limit;\n }\n\n /// @notice The address of the points contract\n address public venue;\n\n /// @notice The quantity amount issued for each claim\n uint256 public quantity;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice The selector for the issuance function on the points contract\n bytes4 public selector;\n\n /// @notice Construct a new PointsIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed incentive parameters `(address points, uint256 quantity, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n if (init_.quantity == 0 || init_.limit == 0) revert BoostError.InvalidInitialization();\n\n venue = init_.venue;\n selector = init_.selector;\n quantity = init_.quantity;\n limit = init_.limit;\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n claims++;\n claimed[claim_.target] = true;\n\n (bool success,) = venue.call(abi.encodeWithSelector(selector, claim_.target, quantity));\n if (!success) revert ClaimFailed();\n\n emit Claimed(claim_.target, abi.encodePacked(venue, claim_.target, quantity));\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @dev Not a valid operation for this type of incentive\n function reclaim(bytes calldata) external pure override returns (bool) {\n revert BoostError.NotImplemented();\n }\n\n /// @inheritdoc Incentive\n /// @notice No token approvals are required for this incentive\n function preflight(bytes calldata) external pure override returns (bytes memory budgetData) {\n return new bytes(0);\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n}\n"},"contracts/shared/BoostError.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\n/// @title BoostError\n/// @notice Standardized errors for the Boost protocol\n/// @dev Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing.\nlibrary BoostError {\n /// @notice Thrown when a claim attempt fails\n error ClaimFailed(address caller, bytes data);\n\n /// @notice Thrown when there are insufficient funds for an operation\n error InsufficientFunds(address asset, uint256 available, uint256 required);\n\n /// @notice Thrown when a non-conforming instance for a given type is encountered\n error InvalidInstance(bytes4 expectedInterface, address instance);\n\n /// @notice Thrown when an invalid initialization is attempted\n error InvalidInitialization();\n\n /// @notice Thrown when the length of two arrays are not equal\n error LengthMismatch();\n\n /// @notice Thrown when a method is not implemented\n error NotImplemented();\n\n /// @notice Thrown when a previously used signature is replayed\n error Replayed(address signer, bytes32 hash, bytes signature);\n\n /// @notice Thrown when a transfer fails for an unknown reason\n error TransferFailed(address asset, address to, uint256 amount);\n\n /// @notice Thrown when the requested action is unauthorized\n error Unauthorized();\n}\n"},"contracts/shared/BoostLib.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {LibZip} from \"@solady/utils/LibZip.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\nlibrary BoostLib {\n using LibClone for address;\n using LibZip for bytes;\n\n /// @notice A struct representing a single Boost\n struct Boost {\n Action action;\n Validator validator;\n AllowList allowList;\n Budget budget;\n Incentive[] incentives;\n uint64 protocolFee;\n uint64 referralFee;\n uint256 maxParticipants;\n address owner;\n }\n\n /// @notice A base struct for a contract and its initialization parameters\n /// @dev This is used to pass the base contract and its initialization parameters in an efficient manner\n struct Target {\n bool isBase;\n address instance;\n bytes parameters;\n }\n\n /// @notice Clone and initialize a contract with a deterministic salt\n /// @param $ The contract to clone and initialize\n /// @param salt_ The salt for the deterministic clone\n /// @param initData_ The initialization data for the contract\n /// @return _clone The cloned and initialized contract\n function cloneAndInitialize(address $, bytes32 salt_, bytes memory initData_) internal returns (address _clone) {\n _clone = $.cloneDeterministic(salt_);\n // wake-disable-next-line reentrancy (false positive)\n Cloneable(_clone).initialize(initData_);\n }\n}\n"},"contracts/shared/Cloneable.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Initializable} from \"@solady/utils/Initializable.sol\";\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\n\n/// @title Cloneable\n/// @notice A contract that can be cloned and initialized only once\nabstract contract Cloneable is Initializable, ERC165 {\n /// @notice Thrown when an inheriting contract does not implement the initializer function\n error InitializerNotImplemented();\n\n /// @notice Thrown when the provided initialization data is invalid\n /// @dev This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\n error InvalidInitializationData();\n\n /// @notice Thrown when the contract has already been initialized\n error CloneAlreadyInitialized();\n\n /// @notice A modifier to restrict a function to only be called before initialization\n /// @dev This is intended to enforce that a function can only be called before the contract has been initialized\n modifier onlyBeforeInitialization() {\n if (_getInitializedVersion() != 0) revert CloneAlreadyInitialized();\n _;\n }\n\n /// @notice Initialize the clone with the given arbitrary data\n /// @param - The compressed initialization data (if required)\n /// @dev The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}\n /// @dev All implementations must override this function to initialize the contract\n function initialize(bytes calldata) public virtual initializer {\n revert InitializerNotImplemented();\n }\n\n /// @inheritdoc ERC165\n /// @notice Check if the contract supports the given interface\n /// @param interfaceId The interface identifier\n /// @return True if the contract supports the interface\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(Cloneable).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/shared/Mocks.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibString} from \"@solady/utils/LibString.sol\";\nimport {ERC20} from \"@solady/tokens/ERC20.sol\";\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\nimport {ERC1155} from \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\n\n/**\n * 🚨 WARNING: The mocks in this file are for testing purposes only. DO NOT use\n * ANY of this code in production, ever, or you will lose all of your money,\n * friends, and credibility. Also, your cat might run away for fear of being\n * associated with someone who makes such poor life choices.\n */\n\n/// @title MockERC721\n/// @notice A mock ERC721 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC721 is ERC721 {\n uint256 public totalSupply;\n uint256 public mintPrice = 0.1 ether;\n\n function name() public pure override returns (string memory) {\n return \"Mock ERC721\";\n }\n\n function symbol() public pure override returns (string memory) {\n return \"MOCK\";\n }\n\n function mint(address to) public payable {\n require(msg.value >= mintPrice, \"MockERC721: gimme more money!\");\n // pre-increment so IDs start at 1\n _mint(to, ++totalSupply);\n }\n\n function tokenURI(uint256 id) public view virtual override returns (string memory) {\n return string(abi.encodePacked(\"https://example.com/token/\", LibString.toString(id)));\n }\n}\n\n/// @title MockERC20\n/// @notice A mock ERC20 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC20 is ERC20 {\n function name() public pure override returns (string memory) {\n return \"Mock ERC20\";\n }\n\n function symbol() public pure override returns (string memory) {\n return \"MOCK\";\n }\n\n function mint(address to, uint256 amount) public {\n _mint(to, amount);\n }\n\n function mintPayable(address to, uint256 amount) public payable {\n require(msg.value >= amount / 100, \"MockERC20: gimme more money!\");\n _mint(to, amount);\n }\n}\n\n/// @title MockERC1155\n/// @notice A mock ERC1155 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC1155 is ERC1155 {\n constructor() ERC1155(\"https://example.com/token/{id}\") {}\n\n function mint(address to, uint256 id, uint256 amount) public {\n _mint(to, id, amount, \"\");\n }\n\n function burn(address from, uint256 id, uint256 amount) public {\n _burn(from, id, amount);\n }\n}\n"},"contracts/tokens/Points.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {ERC20} from \"@solady/tokens/ERC20.sol\";\nimport {Initializable} from \"@solady/utils/Initializable.sol\";\nimport {OwnableRoles} from \"@solady/auth/OwnableRoles.sol\";\n\n/// @title Points\n/// @notice A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred.\ncontract Points is ERC20, Initializable, OwnableRoles {\n string private _name;\n string private _symbol;\n\n /// @notice The role for issuing points\n uint256 public constant ISSUER_ROLE = 1 << 1;\n\n /// @notice Thrown when an attempt is made to transfer points\n error NonTransferable();\n\n /// @notice Initialize the Points contract\n /// @param name_ The name of the token\n /// @param symbol_ The symbol of the token\n /// @param minter_ The initial holder of the minter role\n function initialize(string memory name_, string memory symbol_, address minter_) external initializer {\n _initializeOwner(msg.sender);\n\n _name = name_;\n _symbol = symbol_;\n\n _grantRoles(minter_, ISSUER_ROLE);\n }\n\n /// @notice Issue `amount` points and assign them to `to`\n /// @param to The address to assign the points to\n /// @param amount The amount of points to issue\n function issue(address to, uint256 amount) external onlyOwnerOrRoles(ISSUER_ROLE) {\n _mint(to, amount);\n }\n\n /// @inheritdoc ERC20\n /// @return The name of the token\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /// @inheritdoc ERC20\n /// @return The symbol of the token\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /// @inheritdoc ERC20\n /// @notice A hook that is called before any transfer of points\n /// @dev Reverts if the transfer is not a mint or burn (i.e. if neither `from` nor `to` are the zero address)\n function _beforeTokenTransfer(address from, address to, uint256) internal virtual override {\n if (from != address(0) && to != address(0)) revert NonTransferable();\n }\n}\n"},"contracts/validators/SignerValidator.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SignatureCheckerLib} from \"@solady/utils/SignatureCheckerLib.sol\";\nimport {IERC1271} from \"@openzeppelin/contracts/interfaces/IERC1271.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Signer Validator\n/// @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\ncontract SignerValidator is Validator {\n using SignatureCheckerLib for address;\n\n /// @dev The set of authorized signers\n mapping(address => bool) public signers;\n\n /// @dev The set of used hashes (for replay protection)\n mapping(bytes32 => bool) private _used;\n\n /// @notice Construct a new SignerValidator\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the list of authorized signers\n /// @param data_ The compressed list of authorized signers\n /// @dev The first address in the list will be the initial owner of the contract\n function initialize(bytes calldata data_) public virtual override initializer {\n (address[] memory signers_) = abi.decode(data_, (address[]));\n _initializeOwner(signers_[0]);\n for (uint256 i = 0; i < signers_.length; i++) {\n signers[signers_[i]] = true;\n }\n }\n\n /// @notice Validate that the action has been completed successfully\n /// @param data_ The data payload for the validation check\n /// @return True if the action has been validated based on the data payload\n /// @dev The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)\n /// @dev The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer\n function validate(bytes calldata data_) external override returns (bool) {\n (address signer_, bytes32 hash_, bytes memory signature_) = abi.decode(data_, (address, bytes32, bytes));\n\n if (!signers[signer_]) revert BoostError.Unauthorized();\n if (_used[hash_]) revert BoostError.Replayed(signer_, hash_, signature_);\n\n // Mark the hash as used to prevent replays\n _used[hash_] = true;\n\n // Return the result of the signature check\n return signer_.isValidSignatureNow(SignatureCheckerLib.toEthSignedMessageHash(hash_), signature_);\n }\n\n /// @notice Set the authorized status of a signer\n /// @param signers_ The list of signers to update\n /// @param authorized_ The authorized status of each signer\n function setAuthorized(address[] calldata signers_, bool[] calldata authorized_) external onlyOwner {\n if (signers_.length != authorized_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < signers_.length; i++) {\n signers[signers_[i]] = authorized_[i];\n }\n }\n}\n"},"contracts/validators/Validator.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Validator\n/// @notice Abstract contract for a generic Validator within the Boost protocol\n/// @dev Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Validator is Ownable, Cloneable {\n struct ValidatePayload {\n address target;\n bytes data;\n }\n\n /// @notice Initialize the contract and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Validate that a given user has completed an acction successfully\n /// @param data_ The compressed {ValidatePayload} to be validated\n /// @return True if the action has been validated based on the data payload\n /// @dev The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specific\n /// @dev For example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}\n function validate(bytes calldata data_) external virtual returns (bool);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Validator).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"}},"settings":{"evmVersion":"cancun","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"2394","formattedMessage":"Warning: Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.\n --> @openzeppelin/contracts/utils/StorageSlot.sol:247:13:\n |\n247 | tstore(slot, value)\n | ^^^^^^\n\n","message":"Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.","severity":"warning","sourceLocation":{"end":7119,"file":"@openzeppelin/contracts/utils/StorageSlot.sol","start":7113},"type":"Warning"},{"component":"general","errorCode":"5740","formattedMessage":"Warning: Unreachable code.\n --> @solady/utils/Initializable.sol:81:13:\n |\n81 | if s {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Unreachable code.","severity":"warning","sourceLocation":{"end":4178,"file":"@solady/utils/Initializable.sol","start":3915},"type":"Warning"}],"sources":{"@openzeppelin/contracts/interfaces/IERC1271.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1271.sol","exportedSymbols":{"IERC1271":[13]},"id":14,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1271","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"133:160:0","text":" @dev Interface of the ERC-1271 standard signature validation method for\n contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]."},"fullyImplemented":false,"id":13,"linearizedBaseContracts":[13],"name":"IERC1271","nameLocation":"304:8:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"319:220:0","text":" @dev Should return whether the signature provided is valid for the provided data\n @param hash Hash of the data to be signed\n @param signature Signature byte array associated with _data"},"functionSelector":"1626ba7e","id":12,"implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"553:16:0","nodeType":"FunctionDefinition","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5,"mutability":"mutable","name":"hash","nameLocation":"578:4:0","nodeType":"VariableDeclaration","scope":12,"src":"570:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4,"name":"bytes32","nodeType":"ElementaryTypeName","src":"570:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"signature","nameLocation":"597:9:0","nodeType":"VariableDeclaration","scope":12,"src":"584:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6,"name":"bytes","nodeType":"ElementaryTypeName","src":"584:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"569:38:0"},"returnParameters":{"id":11,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"mutability":"mutable","name":"magicValue","nameLocation":"638:10:0","nodeType":"VariableDeclaration","scope":12,"src":"631:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9,"name":"bytes4","nodeType":"ElementaryTypeName","src":"631:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"630:19:0"},"scope":13,"src":"544:106:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":14,"src":"294:358:0","usedErrors":[],"usedEvents":[]}],"src":"107:546:0"},"id":0},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[150],"IERC20Errors":[55],"IERC721Errors":[103]},"id":151,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":16,"nodeType":"StructuredDocumentation","src":"138:141:1","text":" @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."},"fullyImplemented":true,"id":55,"linearizedBaseContracts":[55],"name":"IERC20Errors","nameLocation":"290:12:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17,"nodeType":"StructuredDocumentation","src":"309:309:1","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":25,"name":"ERC20InsufficientBalance","nameLocation":"629:24:1","nodeType":"ErrorDefinition","parameters":{"id":24,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"mutability":"mutable","name":"sender","nameLocation":"662:6:1","nodeType":"VariableDeclaration","scope":25,"src":"654:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"balance","nameLocation":"678:7:1","nodeType":"VariableDeclaration","scope":25,"src":"670:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"needed","nameLocation":"695:6:1","nodeType":"VariableDeclaration","scope":25,"src":"687:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"653:49:1"},"src":"623:80:1"},{"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"709:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":30,"name":"ERC20InvalidSender","nameLocation":"872:18:1","nodeType":"ErrorDefinition","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"sender","nameLocation":"899:6:1","nodeType":"VariableDeclaration","scope":30,"src":"891:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"891:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"890:16:1"},"src":"866:41:1"},{"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"913:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":35,"name":"ERC20InvalidReceiver","nameLocation":"1083:20:1","nodeType":"ErrorDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"receiver","nameLocation":"1112:8:1","nodeType":"VariableDeclaration","scope":35,"src":"1104:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1103:18:1"},"src":"1077:45:1"},{"documentation":{"id":36,"nodeType":"StructuredDocumentation","src":"1128:345:1","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":44,"name":"ERC20InsufficientAllowance","nameLocation":"1484:26:1","nodeType":"ErrorDefinition","parameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"spender","nameLocation":"1519:7:1","nodeType":"VariableDeclaration","scope":44,"src":"1511:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40,"mutability":"mutable","name":"allowance","nameLocation":"1536:9:1","nodeType":"VariableDeclaration","scope":44,"src":"1528:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42,"mutability":"mutable","name":"needed","nameLocation":"1555:6:1","nodeType":"VariableDeclaration","scope":44,"src":"1547:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1510:52:1"},"src":"1478:85:1"},{"documentation":{"id":45,"nodeType":"StructuredDocumentation","src":"1569:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":49,"name":"ERC20InvalidApprover","nameLocation":"1754:20:1","nodeType":"ErrorDefinition","parameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"mutability":"mutable","name":"approver","nameLocation":"1783:8:1","nodeType":"VariableDeclaration","scope":49,"src":"1775:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46,"name":"address","nodeType":"ElementaryTypeName","src":"1775:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1774:18:1"},"src":"1748:45:1"},{"documentation":{"id":50,"nodeType":"StructuredDocumentation","src":"1799:195:1","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":54,"name":"ERC20InvalidSpender","nameLocation":"2005:19:1","nodeType":"ErrorDefinition","parameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52,"mutability":"mutable","name":"spender","nameLocation":"2033:7:1","nodeType":"VariableDeclaration","scope":54,"src":"2025:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2024:17:1"},"src":"1999:43:1"}],"scope":151,"src":"280:1764:1","usedErrors":[25,30,35,44,49,54],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":56,"nodeType":"StructuredDocumentation","src":"2046:143:1","text":" @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."},"fullyImplemented":true,"id":103,"linearizedBaseContracts":[103],"name":"IERC721Errors","nameLocation":"2200:13:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":57,"nodeType":"StructuredDocumentation","src":"2220:219:1","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":61,"name":"ERC721InvalidOwner","nameLocation":"2450:18:1","nodeType":"ErrorDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59,"mutability":"mutable","name":"owner","nameLocation":"2477:5:1","nodeType":"VariableDeclaration","scope":61,"src":"2469:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58,"name":"address","nodeType":"ElementaryTypeName","src":"2469:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2468:15:1"},"src":"2444:40:1"},{"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"2490:132:1","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":66,"name":"ERC721NonexistentToken","nameLocation":"2633:22:1","nodeType":"ErrorDefinition","parameters":{"id":65,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64,"mutability":"mutable","name":"tokenId","nameLocation":"2664:7:1","nodeType":"VariableDeclaration","scope":66,"src":"2656:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63,"name":"uint256","nodeType":"ElementaryTypeName","src":"2656:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2655:17:1"},"src":"2627:46:1"},{"documentation":{"id":67,"nodeType":"StructuredDocumentation","src":"2679:289:1","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":75,"name":"ERC721IncorrectOwner","nameLocation":"2979:20:1","nodeType":"ErrorDefinition","parameters":{"id":74,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"sender","nameLocation":"3008:6:1","nodeType":"VariableDeclaration","scope":75,"src":"3000:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"3000:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":71,"mutability":"mutable","name":"tokenId","nameLocation":"3024:7:1","nodeType":"VariableDeclaration","scope":75,"src":"3016:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70,"name":"uint256","nodeType":"ElementaryTypeName","src":"3016:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73,"mutability":"mutable","name":"owner","nameLocation":"3041:5:1","nodeType":"VariableDeclaration","scope":75,"src":"3033:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72,"name":"address","nodeType":"ElementaryTypeName","src":"3033:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2999:48:1"},"src":"2973:75:1"},{"documentation":{"id":76,"nodeType":"StructuredDocumentation","src":"3054:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":80,"name":"ERC721InvalidSender","nameLocation":"3217:19:1","nodeType":"ErrorDefinition","parameters":{"id":79,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78,"mutability":"mutable","name":"sender","nameLocation":"3245:6:1","nodeType":"VariableDeclaration","scope":80,"src":"3237:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"3237:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3236:16:1"},"src":"3211:42:1"},{"documentation":{"id":81,"nodeType":"StructuredDocumentation","src":"3259:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":85,"name":"ERC721InvalidReceiver","nameLocation":"3429:21:1","nodeType":"ErrorDefinition","parameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83,"mutability":"mutable","name":"receiver","nameLocation":"3459:8:1","nodeType":"VariableDeclaration","scope":85,"src":"3451:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82,"name":"address","nodeType":"ElementaryTypeName","src":"3451:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3450:18:1"},"src":"3423:46:1"},{"documentation":{"id":86,"nodeType":"StructuredDocumentation","src":"3475:247:1","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":92,"name":"ERC721InsufficientApproval","nameLocation":"3733:26:1","nodeType":"ErrorDefinition","parameters":{"id":91,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88,"mutability":"mutable","name":"operator","nameLocation":"3768:8:1","nodeType":"VariableDeclaration","scope":92,"src":"3760:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87,"name":"address","nodeType":"ElementaryTypeName","src":"3760:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90,"mutability":"mutable","name":"tokenId","nameLocation":"3786:7:1","nodeType":"VariableDeclaration","scope":92,"src":"3778:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3759:35:1"},"src":"3727:68:1"},{"documentation":{"id":93,"nodeType":"StructuredDocumentation","src":"3801:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":97,"name":"ERC721InvalidApprover","nameLocation":"3986:21:1","nodeType":"ErrorDefinition","parameters":{"id":96,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"approver","nameLocation":"4016:8:1","nodeType":"VariableDeclaration","scope":97,"src":"4008:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4007:18:1"},"src":"3980:46:1"},{"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"4032:197:1","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":102,"name":"ERC721InvalidOperator","nameLocation":"4240:21:1","nodeType":"ErrorDefinition","parameters":{"id":101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100,"mutability":"mutable","name":"operator","nameLocation":"4270:8:1","nodeType":"VariableDeclaration","scope":102,"src":"4262:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99,"name":"address","nodeType":"ElementaryTypeName","src":"4262:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4261:18:1"},"src":"4234:46:1"}],"scope":151,"src":"2190:2092:1","usedErrors":[61,66,75,80,85,92,97,102],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":104,"nodeType":"StructuredDocumentation","src":"4284:145:1","text":" @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."},"fullyImplemented":true,"id":150,"linearizedBaseContracts":[150],"name":"IERC1155Errors","nameLocation":"4440:14:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":105,"nodeType":"StructuredDocumentation","src":"4461:361:1","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":115,"name":"ERC1155InsufficientBalance","nameLocation":"4833:26:1","nodeType":"ErrorDefinition","parameters":{"id":114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"sender","nameLocation":"4868:6:1","nodeType":"VariableDeclaration","scope":115,"src":"4860:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":106,"name":"address","nodeType":"ElementaryTypeName","src":"4860:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109,"mutability":"mutable","name":"balance","nameLocation":"4884:7:1","nodeType":"VariableDeclaration","scope":115,"src":"4876:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108,"name":"uint256","nodeType":"ElementaryTypeName","src":"4876:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":111,"mutability":"mutable","name":"needed","nameLocation":"4901:6:1","nodeType":"VariableDeclaration","scope":115,"src":"4893:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110,"name":"uint256","nodeType":"ElementaryTypeName","src":"4893:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":113,"mutability":"mutable","name":"tokenId","nameLocation":"4917:7:1","nodeType":"VariableDeclaration","scope":115,"src":"4909:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112,"name":"uint256","nodeType":"ElementaryTypeName","src":"4909:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4859:66:1"},"src":"4827:99:1"},{"documentation":{"id":116,"nodeType":"StructuredDocumentation","src":"4932:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":120,"name":"ERC1155InvalidSender","nameLocation":"5095:20:1","nodeType":"ErrorDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"sender","nameLocation":"5124:6:1","nodeType":"VariableDeclaration","scope":120,"src":"5116:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":117,"name":"address","nodeType":"ElementaryTypeName","src":"5116:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5115:16:1"},"src":"5089:43:1"},{"documentation":{"id":121,"nodeType":"StructuredDocumentation","src":"5138:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":125,"name":"ERC1155InvalidReceiver","nameLocation":"5308:22:1","nodeType":"ErrorDefinition","parameters":{"id":124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":123,"mutability":"mutable","name":"receiver","nameLocation":"5339:8:1","nodeType":"VariableDeclaration","scope":125,"src":"5331:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122,"name":"address","nodeType":"ElementaryTypeName","src":"5331:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5330:18:1"},"src":"5302:47:1"},{"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"5355:256:1","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":132,"name":"ERC1155MissingApprovalForAll","nameLocation":"5622:28:1","nodeType":"ErrorDefinition","parameters":{"id":131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"mutability":"mutable","name":"operator","nameLocation":"5659:8:1","nodeType":"VariableDeclaration","scope":132,"src":"5651:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"5651:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"owner","nameLocation":"5677:5:1","nodeType":"VariableDeclaration","scope":132,"src":"5669:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":129,"name":"address","nodeType":"ElementaryTypeName","src":"5669:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5650:33:1"},"src":"5616:68:1"},{"documentation":{"id":133,"nodeType":"StructuredDocumentation","src":"5690:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":137,"name":"ERC1155InvalidApprover","nameLocation":"5875:22:1","nodeType":"ErrorDefinition","parameters":{"id":136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":135,"mutability":"mutable","name":"approver","nameLocation":"5906:8:1","nodeType":"VariableDeclaration","scope":137,"src":"5898:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":134,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5897:18:1"},"src":"5869:47:1"},{"documentation":{"id":138,"nodeType":"StructuredDocumentation","src":"5922:197:1","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":142,"name":"ERC1155InvalidOperator","nameLocation":"6130:22:1","nodeType":"ErrorDefinition","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":140,"mutability":"mutable","name":"operator","nameLocation":"6161:8:1","nodeType":"VariableDeclaration","scope":142,"src":"6153:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":139,"name":"address","nodeType":"ElementaryTypeName","src":"6153:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6152:18:1"},"src":"6124:47:1"},{"documentation":{"id":143,"nodeType":"StructuredDocumentation","src":"6177:280:1","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":149,"name":"ERC1155InvalidArrayLength","nameLocation":"6468:25:1","nodeType":"ErrorDefinition","parameters":{"id":148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":145,"mutability":"mutable","name":"idsLength","nameLocation":"6502:9:1","nodeType":"VariableDeclaration","scope":149,"src":"6494:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":144,"name":"uint256","nodeType":"ElementaryTypeName","src":"6494:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":147,"mutability":"mutable","name":"valuesLength","nameLocation":"6521:12:1","nodeType":"VariableDeclaration","scope":149,"src":"6513:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":146,"name":"uint256","nodeType":"ElementaryTypeName","src":"6513:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6493:41:1"},"src":"6462:73:1"}],"scope":151,"src":"4430:2107:1","usedErrors":[115,120,125,132,137,142,149],"usedEvents":[]}],"src":"112:6426:1"},"id":1},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","exportedSymbols":{"Arrays":[2290],"Context":[2320],"ERC1155":[1067],"ERC1155Utils":[1402],"ERC165":[2845],"IERC1155":[1190],"IERC1155Errors":[150],"IERC1155MetadataURI":[1248],"IERC165":[2857]},"id":1068,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":152,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:2"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"./IERC1155.sol","id":154,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":1191,"src":"135:40:2","symbolAliases":[{"foreign":{"id":153,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"143:8:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol","file":"./extensions/IERC1155MetadataURI.sol","id":156,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":1249,"src":"176:73:2","symbolAliases":[{"foreign":{"id":155,"name":"IERC1155MetadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"184:19:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol","file":"./utils/ERC1155Utils.sol","id":158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":1403,"src":"250:54:2","symbolAliases":[{"foreign":{"id":157,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"258:12:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":2321,"src":"305:48:2","symbolAliases":[{"foreign":{"id":159,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2320,"src":"313:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":163,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":2846,"src":"354:69:2","symbolAliases":[{"foreign":{"id":161,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"362:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":162,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"371:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Arrays.sol","file":"../../utils/Arrays.sol","id":165,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":2291,"src":"424:46:2","symbolAliases":[{"foreign":{"id":164,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2290,"src":"432:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":167,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":151,"src":"471:67:2","symbolAliases":[{"foreign":{"id":166,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"479:14:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":169,"name":"Context","nameLocations":["754:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2320,"src":"754:7:2"},"id":170,"nodeType":"InheritanceSpecifier","src":"754:7:2"},{"baseName":{"id":171,"name":"ERC165","nameLocations":["763:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"763:6:2"},"id":172,"nodeType":"InheritanceSpecifier","src":"763:6:2"},{"baseName":{"id":173,"name":"IERC1155","nameLocations":["771:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"771:8:2"},"id":174,"nodeType":"InheritanceSpecifier","src":"771:8:2"},{"baseName":{"id":175,"name":"IERC1155MetadataURI","nameLocations":["781:19:2"],"nodeType":"IdentifierPath","referencedDeclaration":1248,"src":"781:19:2"},"id":176,"nodeType":"InheritanceSpecifier","src":"781:19:2"},{"baseName":{"id":177,"name":"IERC1155Errors","nameLocations":["802:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":150,"src":"802:14:2"},"id":178,"nodeType":"InheritanceSpecifier","src":"802:14:2"}],"canonicalName":"ERC1155","contractDependencies":[],"contractKind":"contract","documentation":{"id":168,"nodeType":"StructuredDocumentation","src":"540:184:2","text":" @dev Implementation of the basic standard multi-token.\n See https://eips.ethereum.org/EIPS/eip-1155\n Originally based on code by Enjin: https://github.com/enjin/erc-1155"},"fullyImplemented":true,"id":1067,"linearizedBaseContracts":[1067,150,1248,1190,2845,2857,2320],"name":"ERC1155","nameLocation":"743:7:2","nodeType":"ContractDefinition","nodes":[{"global":false,"id":182,"libraryName":{"id":179,"name":"Arrays","nameLocations":["829:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2290,"src":"829:6:2"},"nodeType":"UsingForDirective","src":"823:27:2","typeName":{"baseType":{"id":180,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":181,"nodeType":"ArrayTypeName","src":"840:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},{"global":false,"id":186,"libraryName":{"id":183,"name":"Arrays","nameLocations":["861:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2290,"src":"861:6:2"},"nodeType":"UsingForDirective","src":"855:27:2","typeName":{"baseType":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":185,"nodeType":"ArrayTypeName","src":"872:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},{"constant":false,"id":192,"mutability":"mutable","name":"_balances","nameLocation":"955:9:2","nodeType":"VariableDeclaration","scope":1067,"src":"888:76:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"},"typeName":{"id":191,"keyName":"id","keyNameLocation":"904:2:2","keyType":{"id":187,"name":"uint256","nodeType":"ElementaryTypeName","src":"896:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"888:58:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":190,"keyName":"account","keyNameLocation":"926:7:2","keyType":{"id":188,"name":"address","nodeType":"ElementaryTypeName","src":"918:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"910:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":189,"name":"uint256","nodeType":"ElementaryTypeName","src":"937:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":198,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1041:18:2","nodeType":"VariableDeclaration","scope":1067,"src":"971:88:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":197,"keyName":"account","keyNameLocation":"987:7:2","keyType":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"979:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"971:61:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":196,"keyName":"operator","keyNameLocation":"1014:8:2","keyType":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"998:33:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":195,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"constant":false,"id":200,"mutability":"mutable","name":"_uri","nameLocation":"1195:4:2","nodeType":"VariableDeclaration","scope":1067,"src":"1180:19:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":199,"name":"string","nodeType":"ElementaryTypeName","src":"1180:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":210,"nodeType":"Block","src":"1281:30:2","statements":[{"expression":{"arguments":[{"id":207,"name":"uri_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"1299:4:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":206,"name":"_setURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":828,"src":"1291:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1291:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":209,"nodeType":"ExpressionStatement","src":"1291:13:2"}]},"documentation":{"id":201,"nodeType":"StructuredDocumentation","src":"1206:38:2","text":" @dev See {_setURI}."},"id":211,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":203,"mutability":"mutable","name":"uri_","nameLocation":"1275:4:2","nodeType":"VariableDeclaration","scope":211,"src":"1261:18:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":202,"name":"string","nodeType":"ElementaryTypeName","src":"1261:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1260:20:2"},"returnParameters":{"id":205,"nodeType":"ParameterList","parameters":[],"src":"1281:0:2"},"scope":1067,"src":"1249:62:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2844,2856],"body":{"id":241,"nodeType":"Block","src":"1486:197:2","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"1515:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":224,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"1535:8:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}],"id":223,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1530:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155_$1190","typeString":"type(contract IERC1155)"}},"id":226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1545:11:2","memberName":"interfaceId","nodeType":"MemberAccess","src":"1530:26:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1515:41:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":228,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"1572:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":230,"name":"IERC1155MetadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1592:19:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155MetadataURI_$1248_$","typeString":"type(contract IERC1155MetadataURI)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155MetadataURI_$1248_$","typeString":"type(contract IERC1155MetadataURI)"}],"id":229,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1587:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1587:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155MetadataURI_$1248","typeString":"type(contract IERC1155MetadataURI)"}},"id":232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1613:11:2","memberName":"interfaceId","nodeType":"MemberAccess","src":"1587:37:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1572:52:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1515:109:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":237,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"1664:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":235,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1640:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC1155_$1067_$","typeString":"type(contract super ERC1155)"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1646:17:2","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2844,"src":"1640:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1640:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1515:161:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":221,"id":240,"nodeType":"Return","src":"1496:180:2"}]},"documentation":{"id":212,"nodeType":"StructuredDocumentation","src":"1317:56:2","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":242,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1387:17:2","nodeType":"FunctionDefinition","overrides":{"id":218,"nodeType":"OverrideSpecifier","overrides":[{"id":216,"name":"ERC165","nameLocations":["1454:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"1454:6:2"},{"id":217,"name":"IERC165","nameLocations":["1462:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"1462:7:2"}],"src":"1445:25:2"},"parameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":214,"mutability":"mutable","name":"interfaceId","nameLocation":"1412:11:2","nodeType":"VariableDeclaration","scope":242,"src":"1405:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":213,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1405:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1404:20:2"},"returnParameters":{"id":221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":242,"src":"1480:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":219,"name":"bool","nodeType":"ElementaryTypeName","src":"1480:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1479:6:2"},"scope":1067,"src":"1378:305:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1247],"body":{"id":252,"nodeType":"Block","src":"2157:28:2","statements":[{"expression":{"id":250,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"2174:4:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":249,"id":251,"nodeType":"Return","src":"2167:11:2"}]},"documentation":{"id":243,"nodeType":"StructuredDocumentation","src":"1689:388:2","text":" @dev See {IERC1155MetadataURI-uri}.\n This implementation returns the same URI for *all* token types. It relies\n on the token type ID substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n Clients calling this function must replace the `\\{id\\}` substring with the\n actual token type ID."},"functionSelector":"0e89341c","id":253,"implemented":true,"kind":"function","modifiers":[],"name":"uri","nameLocation":"2091:3:2","nodeType":"FunctionDefinition","parameters":{"id":246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":253,"src":"2095:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":244,"name":"uint256","nodeType":"ElementaryTypeName","src":"2095:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2094:18:2"},"returnParameters":{"id":249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":253,"src":"2142:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":247,"name":"string","nodeType":"ElementaryTypeName","src":"2142:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2141:15:2"},"scope":1067,"src":"2082:103:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1128],"body":{"id":269,"nodeType":"Block","src":"2331:46:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":263,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"2348:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":265,"indexExpression":{"id":264,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"2358:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":267,"indexExpression":{"id":266,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"2362:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:22:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":262,"id":268,"nodeType":"Return","src":"2341:29:2"}]},"documentation":{"id":254,"nodeType":"StructuredDocumentation","src":"2191:49:2","text":" @dev See {IERC1155-balanceOf}."},"functionSelector":"00fdd58e","id":270,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2254:9:2","nodeType":"FunctionDefinition","parameters":{"id":259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":256,"mutability":"mutable","name":"account","nameLocation":"2272:7:2","nodeType":"VariableDeclaration","scope":270,"src":"2264:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":255,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":258,"mutability":"mutable","name":"id","nameLocation":"2289:2:2","nodeType":"VariableDeclaration","scope":270,"src":"2281:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":257,"name":"uint256","nodeType":"ElementaryTypeName","src":"2281:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2263:29:2"},"returnParameters":{"id":262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":270,"src":"2322:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":260,"name":"uint256","nodeType":"ElementaryTypeName","src":"2322:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2321:9:2"},"scope":1067,"src":"2245:132:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1141],"body":{"id":339,"nodeType":"Block","src":"2676:410:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":283,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2690:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2699:6:2","memberName":"length","nodeType":"MemberAccess","src":"2690:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":285,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"2709:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2713:6:2","memberName":"length","nodeType":"MemberAccess","src":"2709:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2690:29:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":296,"nodeType":"IfStatement","src":"2686:121:2","trueBody":{"id":295,"nodeType":"Block","src":"2721:86:2","statements":[{"errorCall":{"arguments":[{"expression":{"id":289,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"2768:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2772:6:2","memberName":"length","nodeType":"MemberAccess","src":"2768:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":291,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2780:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2789:6:2","memberName":"length","nodeType":"MemberAccess","src":"2780:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":288,"name":"ERC1155InvalidArrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"2742:25:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2742:54:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":294,"nodeType":"RevertStatement","src":"2735:61:2"}]}},{"assignments":[301],"declarations":[{"constant":false,"id":301,"mutability":"mutable","name":"batchBalances","nameLocation":"2834:13:2","nodeType":"VariableDeclaration","scope":339,"src":"2817:30:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":299,"name":"uint256","nodeType":"ElementaryTypeName","src":"2817:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":300,"nodeType":"ArrayTypeName","src":"2817:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":308,"initialValue":{"arguments":[{"expression":{"id":305,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2864:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2873:6:2","memberName":"length","nodeType":"MemberAccess","src":"2864:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2850:13:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2854:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":303,"nodeType":"ArrayTypeName","src":"2854:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2817:63:2"},{"body":{"id":335,"nodeType":"Block","src":"2937:112:2","statements":[{"expression":{"id":333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":320,"name":"batchBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"2951:13:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":322,"indexExpression":{"id":321,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"2965:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2951:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":326,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"3008:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":324,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2980:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2989:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2230,"src":"2980:27:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address[] memory,uint256) pure returns (address)"}},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":330,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"3035:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":328,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"3012:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3016:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"3012:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3012:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":323,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"2970:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2970:68:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2951:87:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":334,"nodeType":"ExpressionStatement","src":"2951:87:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":313,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"2911:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":314,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2915:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2924:6:2","memberName":"length","nodeType":"MemberAccess","src":"2915:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":336,"initializationExpression":{"assignments":[310],"declarations":[{"constant":false,"id":310,"mutability":"mutable","name":"i","nameLocation":"2904:1:2","nodeType":"VariableDeclaration","scope":336,"src":"2896:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":312,"initialValue":{"hexValue":"30","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2908:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2896:13:2"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2932:3:2","subExpression":{"id":317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"2934:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":319,"nodeType":"ExpressionStatement","src":"2932:3:2"},"nodeType":"ForStatement","src":"2891:158:2"},{"expression":{"id":337,"name":"batchBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"3066:13:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":282,"id":338,"nodeType":"Return","src":"3059:20:2"}]},"documentation":{"id":271,"nodeType":"StructuredDocumentation","src":"2383:146:2","text":" @dev See {IERC1155-balanceOfBatch}.\n Requirements:\n - `accounts` and `ids` must have the same length."},"functionSelector":"4e1273f4","id":340,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfBatch","nameLocation":"2543:14:2","nodeType":"FunctionDefinition","parameters":{"id":278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":274,"mutability":"mutable","name":"accounts","nameLocation":"2584:8:2","nodeType":"VariableDeclaration","scope":340,"src":"2567:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":272,"name":"address","nodeType":"ElementaryTypeName","src":"2567:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":273,"nodeType":"ArrayTypeName","src":"2567:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":277,"mutability":"mutable","name":"ids","nameLocation":"2619:3:2","nodeType":"VariableDeclaration","scope":340,"src":"2602:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":275,"name":"uint256","nodeType":"ElementaryTypeName","src":"2602:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":276,"nodeType":"ArrayTypeName","src":"2602:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2557:71:2"},"returnParameters":{"id":282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":340,"src":"2658:16:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":279,"name":"uint256","nodeType":"ElementaryTypeName","src":"2658:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":280,"nodeType":"ArrayTypeName","src":"2658:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2657:18:2"},"scope":1067,"src":"2534:552:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1149],"body":{"id":355,"nodeType":"Block","src":"3229:69:2","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":349,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"3258:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3258:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":351,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"3272:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":352,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"3282:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":348,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1050,"src":"3239:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3239:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":354,"nodeType":"ExpressionStatement","src":"3239:52:2"}]},"documentation":{"id":341,"nodeType":"StructuredDocumentation","src":"3092:57:2","text":" @dev See {IERC1155-setApprovalForAll}."},"functionSelector":"a22cb465","id":356,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3163:17:2","nodeType":"FunctionDefinition","parameters":{"id":346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":343,"mutability":"mutable","name":"operator","nameLocation":"3189:8:2","nodeType":"VariableDeclaration","scope":356,"src":"3181:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":342,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":345,"mutability":"mutable","name":"approved","nameLocation":"3204:8:2","nodeType":"VariableDeclaration","scope":356,"src":"3199:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":344,"name":"bool","nodeType":"ElementaryTypeName","src":"3199:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3180:33:2"},"returnParameters":{"id":347,"nodeType":"ParameterList","parameters":[],"src":"3229:0:2"},"scope":1067,"src":"3154:144:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1159],"body":{"id":372,"nodeType":"Block","src":"3461:61:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":366,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"3478:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":368,"indexExpression":{"id":367,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":359,"src":"3497:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3478:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":370,"indexExpression":{"id":369,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"3506:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3478:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":365,"id":371,"nodeType":"Return","src":"3471:44:2"}]},"documentation":{"id":357,"nodeType":"StructuredDocumentation","src":"3304:56:2","text":" @dev See {IERC1155-isApprovedForAll}."},"functionSelector":"e985e9c5","id":373,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"3374:16:2","nodeType":"FunctionDefinition","parameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":359,"mutability":"mutable","name":"account","nameLocation":"3399:7:2","nodeType":"VariableDeclaration","scope":373,"src":"3391:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":358,"name":"address","nodeType":"ElementaryTypeName","src":"3391:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":361,"mutability":"mutable","name":"operator","nameLocation":"3416:8:2","nodeType":"VariableDeclaration","scope":373,"src":"3408:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":360,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3390:35:2"},"returnParameters":{"id":365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"3455:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":363,"name":"bool","nodeType":"ElementaryTypeName","src":"3455:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3454:6:2"},"scope":1067,"src":"3365:157:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1173],"body":{"id":416,"nodeType":"Block","src":"3702:238:2","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"sender","nameLocation":"3720:6:2","nodeType":"VariableDeclaration","scope":416,"src":"3712:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":387,"name":"address","nodeType":"ElementaryTypeName","src":"3712:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":391,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":389,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"3729:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3729:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3712:29:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":392,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3755:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":393,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3763:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3755:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3773:31:2","subExpression":{"arguments":[{"id":396,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3791:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3797:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":395,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"3774:16:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3755:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":407,"nodeType":"IfStatement","src":"3751:129:2","trueBody":{"id":406,"nodeType":"Block","src":"3806:74:2","statements":[{"errorCall":{"arguments":[{"id":402,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3856:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":403,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3864:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":401,"name":"ERC1155MissingApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"3827:28:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:42:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":405,"nodeType":"RevertStatement","src":"3820:49:2"}]}},{"expression":{"arguments":[{"id":409,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3907:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":410,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"3913:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":411,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":380,"src":"3917:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":412,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"3921:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":413,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":384,"src":"3928:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":408,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"3889:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":415,"nodeType":"ExpressionStatement","src":"3889:44:2"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"3528:56:2","text":" @dev See {IERC1155-safeTransferFrom}."},"functionSelector":"f242432a","id":417,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3598:16:2","nodeType":"FunctionDefinition","parameters":{"id":385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"from","nameLocation":"3623:4:2","nodeType":"VariableDeclaration","scope":417,"src":"3615:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":375,"name":"address","nodeType":"ElementaryTypeName","src":"3615:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"to","nameLocation":"3637:2:2","nodeType":"VariableDeclaration","scope":417,"src":"3629:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":377,"name":"address","nodeType":"ElementaryTypeName","src":"3629:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":380,"mutability":"mutable","name":"id","nameLocation":"3649:2:2","nodeType":"VariableDeclaration","scope":417,"src":"3641:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":379,"name":"uint256","nodeType":"ElementaryTypeName","src":"3641:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":382,"mutability":"mutable","name":"value","nameLocation":"3661:5:2","nodeType":"VariableDeclaration","scope":417,"src":"3653:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":381,"name":"uint256","nodeType":"ElementaryTypeName","src":"3653:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":384,"mutability":"mutable","name":"data","nameLocation":"3681:4:2","nodeType":"VariableDeclaration","scope":417,"src":"3668:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":383,"name":"bytes","nodeType":"ElementaryTypeName","src":"3668:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3614:72:2"},"returnParameters":{"id":386,"nodeType":"ParameterList","parameters":[],"src":"3702:0:2"},"scope":1067,"src":"3589:351:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1189],"body":{"id":462,"nodeType":"Block","src":"4196:245:2","statements":[{"assignments":[434],"declarations":[{"constant":false,"id":434,"mutability":"mutable","name":"sender","nameLocation":"4214:6:2","nodeType":"VariableDeclaration","scope":462,"src":"4206:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":433,"name":"address","nodeType":"ElementaryTypeName","src":"4206:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":437,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":435,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"4223:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4223:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4206:29:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":438,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4249:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":439,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":434,"src":"4257:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4249:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4267:31:2","subExpression":{"arguments":[{"id":442,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4285:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":443,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":434,"src":"4291:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":441,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"4268:16:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4268:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4249:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":453,"nodeType":"IfStatement","src":"4245:129:2","trueBody":{"id":452,"nodeType":"Block","src":"4300:74:2","statements":[{"errorCall":{"arguments":[{"id":448,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":434,"src":"4350:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":449,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4358:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":447,"name":"ERC1155MissingApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"4321:28:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:42:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":451,"nodeType":"RevertStatement","src":"4314:49:2"}]}},{"expression":{"arguments":[{"id":455,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4406:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":456,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"4412:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":457,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4416:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":458,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4421:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":459,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4429:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":454,"name":"_safeBatchTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"4383:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:51:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":461,"nodeType":"ExpressionStatement","src":"4383:51:2"}]},"documentation":{"id":418,"nodeType":"StructuredDocumentation","src":"3946:61:2","text":" @dev See {IERC1155-safeBatchTransferFrom}."},"functionSelector":"2eb2c2d6","id":463,"implemented":true,"kind":"function","modifiers":[],"name":"safeBatchTransferFrom","nameLocation":"4021:21:2","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":420,"mutability":"mutable","name":"from","nameLocation":"4060:4:2","nodeType":"VariableDeclaration","scope":463,"src":"4052:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"4052:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":422,"mutability":"mutable","name":"to","nameLocation":"4082:2:2","nodeType":"VariableDeclaration","scope":463,"src":"4074:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":421,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":425,"mutability":"mutable","name":"ids","nameLocation":"4111:3:2","nodeType":"VariableDeclaration","scope":463,"src":"4094:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":423,"name":"uint256","nodeType":"ElementaryTypeName","src":"4094:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":424,"nodeType":"ArrayTypeName","src":"4094:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"values","nameLocation":"4141:6:2","nodeType":"VariableDeclaration","scope":463,"src":"4124:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":426,"name":"uint256","nodeType":"ElementaryTypeName","src":"4124:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":427,"nodeType":"ArrayTypeName","src":"4124:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"data","nameLocation":"4170:4:2","nodeType":"VariableDeclaration","scope":463,"src":"4157:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":429,"name":"bytes","nodeType":"ElementaryTypeName","src":"4157:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4042:138:2"},"returnParameters":{"id":432,"nodeType":"ParameterList","parameters":[],"src":"4196:0:2"},"scope":1067,"src":"4012:429:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":615,"nodeType":"Block","src":"5249:1174:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":477,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5263:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5267:6:2","memberName":"length","nodeType":"MemberAccess","src":"5263:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":479,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"5277:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5284:6:2","memberName":"length","nodeType":"MemberAccess","src":"5277:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5263:27:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":490,"nodeType":"IfStatement","src":"5259:117:2","trueBody":{"id":489,"nodeType":"Block","src":"5292:84:2","statements":[{"errorCall":{"arguments":[{"expression":{"id":483,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5339:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5343:6:2","memberName":"length","nodeType":"MemberAccess","src":"5339:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":485,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"5351:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5358:6:2","memberName":"length","nodeType":"MemberAccess","src":"5351:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":482,"name":"ERC1155InvalidArrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"5313:25:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5313:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":488,"nodeType":"RevertStatement","src":"5306:59:2"}]}},{"assignments":[492],"declarations":[{"constant":false,"id":492,"mutability":"mutable","name":"operator","nameLocation":"5394:8:2","nodeType":"VariableDeclaration","scope":615,"src":"5386:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":491,"name":"address","nodeType":"ElementaryTypeName","src":"5386:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":495,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":493,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"5405:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5405:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5386:31:2"},{"body":{"id":576,"nodeType":"Block","src":"5469:650:2","statements":[{"assignments":[508],"declarations":[{"constant":false,"id":508,"mutability":"mutable","name":"id","nameLocation":"5491:2:2","nodeType":"VariableDeclaration","scope":576,"src":"5483:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":507,"name":"uint256","nodeType":"ElementaryTypeName","src":"5483:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":513,"initialValue":{"arguments":[{"id":511,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5519:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":509,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5496:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5500:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"5496:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5496:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5483:38:2"},{"assignments":[515],"declarations":[{"constant":false,"id":515,"mutability":"mutable","name":"value","nameLocation":"5543:5:2","nodeType":"VariableDeclaration","scope":576,"src":"5535:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":514,"name":"uint256","nodeType":"ElementaryTypeName","src":"5535:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":520,"initialValue":{"arguments":[{"id":518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5577:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":516,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"5551:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5558:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"5551:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5551:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5535:44:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":521,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5598:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5614:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5606:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":522,"name":"address","nodeType":"ElementaryTypeName","src":"5606:7:2","typeDescriptions":{}}},"id":525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5606:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5598:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":559,"nodeType":"IfStatement","src":"5594:420:2","trueBody":{"id":558,"nodeType":"Block","src":"5618:396:2","statements":[{"assignments":[528],"declarations":[{"constant":false,"id":528,"mutability":"mutable","name":"fromBalance","nameLocation":"5644:11:2","nodeType":"VariableDeclaration","scope":558,"src":"5636:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint256","nodeType":"ElementaryTypeName","src":"5636:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":534,"initialValue":{"baseExpression":{"baseExpression":{"id":529,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"5658:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":531,"indexExpression":{"id":530,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5668:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":533,"indexExpression":{"id":532,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5672:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5636:41:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":535,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5699:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"5713:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5699:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":546,"nodeType":"IfStatement","src":"5695:129:2","trueBody":{"id":545,"nodeType":"Block","src":"5720:104:2","statements":[{"errorCall":{"arguments":[{"id":539,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5776:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":540,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5782:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":541,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"5795:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":542,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5802:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":538,"name":"ERC1155InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"5749:26:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256) pure"}},"id":543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5749:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":544,"nodeType":"RevertStatement","src":"5742:63:2"}]}},{"id":557,"nodeType":"UncheckedBlock","src":"5841:159:2","statements":[{"expression":{"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":547,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"5940:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":550,"indexExpression":{"id":548,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5950:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5940:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":551,"indexExpression":{"id":549,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5954:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5940:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":552,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5962:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"5976:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5962:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5940:41:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":556,"nodeType":"ExpressionStatement","src":"5940:41:2"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":560,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6032:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6046:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6038:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":561,"name":"address","nodeType":"ElementaryTypeName","src":"6038:7:2","typeDescriptions":{}}},"id":564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6032:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":575,"nodeType":"IfStatement","src":"6028:81:2","trueBody":{"id":574,"nodeType":"Block","src":"6050:59:2","statements":[{"expression":{"id":572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":566,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"6068:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":569,"indexExpression":{"id":567,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"6078:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6068:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":570,"indexExpression":{"id":568,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6082:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6068:17:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"6089:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6068:26:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":573,"nodeType":"ExpressionStatement","src":"6068:26:2"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5448:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":501,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5452:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5456:6:2","memberName":"length","nodeType":"MemberAccess","src":"5452:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5448:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":577,"initializationExpression":{"assignments":[497],"declarations":[{"constant":false,"id":497,"mutability":"mutable","name":"i","nameLocation":"5441:1:2","nodeType":"VariableDeclaration","scope":577,"src":"5433:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":496,"name":"uint256","nodeType":"ElementaryTypeName","src":"5433:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":499,"initialValue":{"hexValue":"30","id":498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5445:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5433:13:2"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5464:3:2","subExpression":{"id":504,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5466:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":506,"nodeType":"ExpressionStatement","src":"5464:3:2"},"nodeType":"ForStatement","src":"5428:691:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":578,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"6133:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6137:6:2","memberName":"length","nodeType":"MemberAccess","src":"6133:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6147:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6133:15:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":613,"nodeType":"Block","src":"6341:76:2","statements":[{"eventCall":{"arguments":[{"id":606,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"6374:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":607,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"6384:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":608,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6390:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":609,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"6394:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":610,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"6399:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":605,"name":"TransferBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"6360:13:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256[] memory,uint256[] memory)"}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6360:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":612,"nodeType":"EmitStatement","src":"6355:51:2"}]},"id":614,"nodeType":"IfStatement","src":"6129:288:2","trueBody":{"id":604,"nodeType":"Block","src":"6150:185:2","statements":[{"assignments":[583],"declarations":[{"constant":false,"id":583,"mutability":"mutable","name":"id","nameLocation":"6172:2:2","nodeType":"VariableDeclaration","scope":604,"src":"6164:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":582,"name":"uint256","nodeType":"ElementaryTypeName","src":"6164:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":588,"initialValue":{"arguments":[{"hexValue":"30","id":586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6200:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":584,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"6177:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6181:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"6177:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6177:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6164:38:2"},{"assignments":[590],"declarations":[{"constant":false,"id":590,"mutability":"mutable","name":"value","nameLocation":"6224:5:2","nodeType":"VariableDeclaration","scope":604,"src":"6216:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":589,"name":"uint256","nodeType":"ElementaryTypeName","src":"6216:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":595,"initialValue":{"arguments":[{"hexValue":"30","id":593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6258:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":591,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"6232:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6239:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"6232:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6232:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6216:44:2"},{"eventCall":{"arguments":[{"id":597,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"6294:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":598,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"6304:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":599,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6310:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":600,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"6314:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":601,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":590,"src":"6318:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":596,"name":"TransferSingle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"6279:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6279:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":603,"nodeType":"EmitStatement","src":"6274:50:2"}]}}]},"documentation":{"id":464,"nodeType":"StructuredDocumentation","src":"4447:690:2","text":" @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n (or `to`) is the zero address.\n Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n Requirements:\n - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n - `ids` and `values` must have the same length.\n NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead."},"id":616,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"5151:7:2","nodeType":"FunctionDefinition","parameters":{"id":475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":466,"mutability":"mutable","name":"from","nameLocation":"5167:4:2","nodeType":"VariableDeclaration","scope":616,"src":"5159:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":465,"name":"address","nodeType":"ElementaryTypeName","src":"5159:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":468,"mutability":"mutable","name":"to","nameLocation":"5181:2:2","nodeType":"VariableDeclaration","scope":616,"src":"5173:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":467,"name":"address","nodeType":"ElementaryTypeName","src":"5173:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":471,"mutability":"mutable","name":"ids","nameLocation":"5202:3:2","nodeType":"VariableDeclaration","scope":616,"src":"5185:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":469,"name":"uint256","nodeType":"ElementaryTypeName","src":"5185:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":470,"nodeType":"ArrayTypeName","src":"5185:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":474,"mutability":"mutable","name":"values","nameLocation":"5224:6:2","nodeType":"VariableDeclaration","scope":616,"src":"5207:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5207:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":473,"nodeType":"ArrayTypeName","src":"5207:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5158:73:2"},"returnParameters":{"id":476,"nodeType":"ParameterList","parameters":[],"src":"5249:0:2"},"scope":1067,"src":"5142:1281:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":695,"nodeType":"Block","src":"7193:509:2","statements":[{"expression":{"arguments":[{"id":633,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7211:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":634,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7217:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":635,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7221:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":636,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"7226:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":632,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"7203:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory)"}},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":638,"nodeType":"ExpressionStatement","src":"7203:30:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":639,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7247:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7261:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7253:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":640,"name":"address","nodeType":"ElementaryTypeName","src":"7253:7:2","typeDescriptions":{}}},"id":643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7253:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7247:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":694,"nodeType":"IfStatement","src":"7243:453:2","trueBody":{"id":693,"nodeType":"Block","src":"7265:431:2","statements":[{"assignments":[646],"declarations":[{"constant":false,"id":646,"mutability":"mutable","name":"operator","nameLocation":"7287:8:2","nodeType":"VariableDeclaration","scope":693,"src":"7279:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"7279:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":649,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":647,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"7298:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7298:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7279:31:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":650,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7328:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7332:6:2","memberName":"length","nodeType":"MemberAccess","src":"7328:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7342:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7328:15:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":691,"nodeType":"Block","src":"7574:112:2","statements":[{"expression":{"arguments":[{"id":683,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"7633:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":684,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7643:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":685,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7649:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":686,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7653:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":687,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"7658:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":688,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":629,"src":"7666:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":680,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"7592:12:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1155Utils_$1402_$","typeString":"type(library ERC1155Utils)"}},"id":682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7605:27:2","memberName":"checkOnERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"7592:40:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7592:79:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":690,"nodeType":"ExpressionStatement","src":"7592:79:2"}]},"id":692,"nodeType":"IfStatement","src":"7324:362:2","trueBody":{"id":679,"nodeType":"Block","src":"7345:223:2","statements":[{"assignments":[655],"declarations":[{"constant":false,"id":655,"mutability":"mutable","name":"id","nameLocation":"7371:2:2","nodeType":"VariableDeclaration","scope":679,"src":"7363:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":654,"name":"uint256","nodeType":"ElementaryTypeName","src":"7363:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":660,"initialValue":{"arguments":[{"hexValue":"30","id":658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7399:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":656,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7376:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7380:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"7376:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7376:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7363:38:2"},{"assignments":[662],"declarations":[{"constant":false,"id":662,"mutability":"mutable","name":"value","nameLocation":"7427:5:2","nodeType":"VariableDeclaration","scope":679,"src":"7419:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":661,"name":"uint256","nodeType":"ElementaryTypeName","src":"7419:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":667,"initialValue":{"arguments":[{"hexValue":"30","id":665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7461:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":663,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"7435:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7442:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"7435:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7435:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7419:44:2"},{"expression":{"arguments":[{"id":671,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"7517:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":672,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7527:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":673,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7533:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":674,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":655,"src":"7537:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":662,"src":"7541:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":676,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":629,"src":"7548:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":668,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"7481:12:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1155Utils_$1402_$","typeString":"type(library ERC1155Utils)"}},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7494:22:2","memberName":"checkOnERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1327,"src":"7481:35:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,uint256,bytes memory)"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7481:72:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":678,"nodeType":"ExpressionStatement","src":"7481:72:2"}]}}]}}]},"documentation":{"id":617,"nodeType":"StructuredDocumentation","src":"6429:568:2","text":" @dev Version of {_update} that performs the token acceptance check by calling\n {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n contains code (eg. is a smart contract at the moment of execution).\n IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n update to the contract state after this function would break the check-effect-interaction pattern. Consider\n overriding {_update} instead."},"id":696,"implemented":true,"kind":"function","modifiers":[],"name":"_updateWithAcceptanceCheck","nameLocation":"7011:26:2","nodeType":"FunctionDefinition","parameters":{"id":630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":619,"mutability":"mutable","name":"from","nameLocation":"7055:4:2","nodeType":"VariableDeclaration","scope":696,"src":"7047:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":618,"name":"address","nodeType":"ElementaryTypeName","src":"7047:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":621,"mutability":"mutable","name":"to","nameLocation":"7077:2:2","nodeType":"VariableDeclaration","scope":696,"src":"7069:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":620,"name":"address","nodeType":"ElementaryTypeName","src":"7069:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":624,"mutability":"mutable","name":"ids","nameLocation":"7106:3:2","nodeType":"VariableDeclaration","scope":696,"src":"7089:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":622,"name":"uint256","nodeType":"ElementaryTypeName","src":"7089:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":623,"nodeType":"ArrayTypeName","src":"7089:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":627,"mutability":"mutable","name":"values","nameLocation":"7136:6:2","nodeType":"VariableDeclaration","scope":696,"src":"7119:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":625,"name":"uint256","nodeType":"ElementaryTypeName","src":"7119:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":626,"nodeType":"ArrayTypeName","src":"7119:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":629,"mutability":"mutable","name":"data","nameLocation":"7165:4:2","nodeType":"VariableDeclaration","scope":696,"src":"7152:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":628,"name":"bytes","nodeType":"ElementaryTypeName","src":"7152:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7037:138:2"},"returnParameters":{"id":631,"nodeType":"ParameterList","parameters":[],"src":"7193:0:2"},"scope":1067,"src":"7002:700:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":761,"nodeType":"Block","src":"8267:355:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"8281:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8295:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8287:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":711,"name":"address","nodeType":"ElementaryTypeName","src":"8287:7:2","typeDescriptions":{}}},"id":714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8287:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8281:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":724,"nodeType":"IfStatement","src":"8277:88:2","trueBody":{"id":723,"nodeType":"Block","src":"8299:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8351:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8343:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":717,"name":"address","nodeType":"ElementaryTypeName","src":"8343:7:2","typeDescriptions":{}}},"id":720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8343:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":716,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"8320:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8320:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":722,"nodeType":"RevertStatement","src":"8313:41:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":725,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"8378:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8394:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8386:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"8386:7:2","typeDescriptions":{}}},"id":729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8386:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8378:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":739,"nodeType":"IfStatement","src":"8374:88:2","trueBody":{"id":738,"nodeType":"Block","src":"8398:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8448:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8440:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":732,"name":"address","nodeType":"ElementaryTypeName","src":"8440:7:2","typeDescriptions":{}}},"id":735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8440:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":731,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"8419:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8419:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":737,"nodeType":"RevertStatement","src":"8412:39:2"}]}},{"assignments":[744,747],"declarations":[{"constant":false,"id":744,"mutability":"mutable","name":"ids","nameLocation":"8489:3:2","nodeType":"VariableDeclaration","scope":761,"src":"8472:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":742,"name":"uint256","nodeType":"ElementaryTypeName","src":"8472:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":743,"nodeType":"ArrayTypeName","src":"8472:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":747,"mutability":"mutable","name":"values","nameLocation":"8511:6:2","nodeType":"VariableDeclaration","scope":761,"src":"8494:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8494:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":746,"nodeType":"ArrayTypeName","src":"8494:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":752,"initialValue":{"arguments":[{"id":749,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":703,"src":"8540:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":705,"src":"8544:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":748,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1066,"src":"8521:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8521:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"8471:79:2"},{"expression":{"arguments":[{"id":754,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"8587:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":755,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"8593:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":756,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":744,"src":"8597:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":757,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"8602:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":758,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":707,"src":"8610:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":753,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"8560:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":760,"nodeType":"ExpressionStatement","src":"8560:55:2"}]},"documentation":{"id":697,"nodeType":"StructuredDocumentation","src":"7708:446:2","text":" @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"id":762,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"8168:17:2","nodeType":"FunctionDefinition","parameters":{"id":708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":699,"mutability":"mutable","name":"from","nameLocation":"8194:4:2","nodeType":"VariableDeclaration","scope":762,"src":"8186:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":698,"name":"address","nodeType":"ElementaryTypeName","src":"8186:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":701,"mutability":"mutable","name":"to","nameLocation":"8208:2:2","nodeType":"VariableDeclaration","scope":762,"src":"8200:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"8200:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":703,"mutability":"mutable","name":"id","nameLocation":"8220:2:2","nodeType":"VariableDeclaration","scope":762,"src":"8212:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":702,"name":"uint256","nodeType":"ElementaryTypeName","src":"8212:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":705,"mutability":"mutable","name":"value","nameLocation":"8232:5:2","nodeType":"VariableDeclaration","scope":762,"src":"8224:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":704,"name":"uint256","nodeType":"ElementaryTypeName","src":"8224:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":707,"mutability":"mutable","name":"data","nameLocation":"8252:4:2","nodeType":"VariableDeclaration","scope":762,"src":"8239:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":706,"name":"bytes","nodeType":"ElementaryTypeName","src":"8239:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:72:2"},"returnParameters":{"id":709,"nodeType":"ParameterList","parameters":[],"src":"8267:0:2"},"scope":1067,"src":"8159:463:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":816,"nodeType":"Block","src":"9202:266:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":778,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"9216:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9230:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9222:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":779,"name":"address","nodeType":"ElementaryTypeName","src":"9222:7:2","typeDescriptions":{}}},"id":782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9222:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9216:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":792,"nodeType":"IfStatement","src":"9212:88:2","trueBody":{"id":791,"nodeType":"Block","src":"9234:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9286:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9278:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":785,"name":"address","nodeType":"ElementaryTypeName","src":"9278:7:2","typeDescriptions":{}}},"id":788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9278:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":784,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"9255:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":790,"nodeType":"RevertStatement","src":"9248:41:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":793,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"9313:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9329:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9321:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":794,"name":"address","nodeType":"ElementaryTypeName","src":"9321:7:2","typeDescriptions":{}}},"id":797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9321:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9313:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":807,"nodeType":"IfStatement","src":"9309:88:2","trueBody":{"id":806,"nodeType":"Block","src":"9333:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9383:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9375:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":800,"name":"address","nodeType":"ElementaryTypeName","src":"9375:7:2","typeDescriptions":{}}},"id":803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9375:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":799,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"9354:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9354:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":805,"nodeType":"RevertStatement","src":"9347:39:2"}]}},{"expression":{"arguments":[{"id":809,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"9433:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":810,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"9439:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":811,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":770,"src":"9443:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":812,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"9448:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":813,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"9456:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":808,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"9406:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9406:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":815,"nodeType":"ExpressionStatement","src":"9406:55:2"}]},"documentation":{"id":763,"nodeType":"StructuredDocumentation","src":"8628:390:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n Emits a {TransferBatch} event.\n Requirements:\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value.\n - `ids` and `values` must have the same length."},"id":817,"implemented":true,"kind":"function","modifiers":[],"name":"_safeBatchTransferFrom","nameLocation":"9032:22:2","nodeType":"FunctionDefinition","parameters":{"id":776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"mutability":"mutable","name":"from","nameLocation":"9072:4:2","nodeType":"VariableDeclaration","scope":817,"src":"9064:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":764,"name":"address","nodeType":"ElementaryTypeName","src":"9064:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"to","nameLocation":"9094:2:2","nodeType":"VariableDeclaration","scope":817,"src":"9086:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":766,"name":"address","nodeType":"ElementaryTypeName","src":"9086:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":770,"mutability":"mutable","name":"ids","nameLocation":"9123:3:2","nodeType":"VariableDeclaration","scope":817,"src":"9106:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":768,"name":"uint256","nodeType":"ElementaryTypeName","src":"9106:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":769,"nodeType":"ArrayTypeName","src":"9106:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":773,"mutability":"mutable","name":"values","nameLocation":"9153:6:2","nodeType":"VariableDeclaration","scope":817,"src":"9136:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":771,"name":"uint256","nodeType":"ElementaryTypeName","src":"9136:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":772,"nodeType":"ArrayTypeName","src":"9136:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":775,"mutability":"mutable","name":"data","nameLocation":"9182:4:2","nodeType":"VariableDeclaration","scope":817,"src":"9169:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":774,"name":"bytes","nodeType":"ElementaryTypeName","src":"9169:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9054:138:2"},"returnParameters":{"id":777,"nodeType":"ParameterList","parameters":[],"src":"9202:0:2"},"scope":1067,"src":"9023:445:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":827,"nodeType":"Block","src":"10346:30:2","statements":[{"expression":{"id":825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":823,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"10356:4:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":824,"name":"newuri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"10363:6:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"10356:13:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":826,"nodeType":"ExpressionStatement","src":"10356:13:2"}]},"documentation":{"id":818,"nodeType":"StructuredDocumentation","src":"9474:811:2","text":" @dev Sets a new URI for all token types, by relying on the token type ID\n substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n URI or any of the values in the JSON file at said URI will be replaced by\n clients with the token type ID.\n For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n interpreted by clients as\n `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n for token type ID 0x4cce0.\n See {uri}.\n Because these URIs cannot be meaningfully represented by the {URI} event,\n this function emits no events."},"id":828,"implemented":true,"kind":"function","modifiers":[],"name":"_setURI","nameLocation":"10299:7:2","nodeType":"FunctionDefinition","parameters":{"id":821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":820,"mutability":"mutable","name":"newuri","nameLocation":"10321:6:2","nodeType":"VariableDeclaration","scope":828,"src":"10307:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":819,"name":"string","nodeType":"ElementaryTypeName","src":"10307:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10306:22:2"},"returnParameters":{"id":822,"nodeType":"ParameterList","parameters":[],"src":"10346:0:2"},"scope":1067,"src":"10290:86:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":879,"nodeType":"Block","src":"10836:264:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":840,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":831,"src":"10850:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10864:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10856:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":841,"name":"address","nodeType":"ElementaryTypeName","src":"10856:7:2","typeDescriptions":{}}},"id":844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10856:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10850:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":854,"nodeType":"IfStatement","src":"10846:88:2","trueBody":{"id":853,"nodeType":"Block","src":"10868:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10920:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10912:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":847,"name":"address","nodeType":"ElementaryTypeName","src":"10912:7:2","typeDescriptions":{}}},"id":850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10912:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":846,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"10889:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10889:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":852,"nodeType":"RevertStatement","src":"10882:41:2"}]}},{"assignments":[859,862],"declarations":[{"constant":false,"id":859,"mutability":"mutable","name":"ids","nameLocation":"10961:3:2","nodeType":"VariableDeclaration","scope":879,"src":"10944:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":857,"name":"uint256","nodeType":"ElementaryTypeName","src":"10944:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":858,"nodeType":"ArrayTypeName","src":"10944:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":862,"mutability":"mutable","name":"values","nameLocation":"10983:6:2","nodeType":"VariableDeclaration","scope":879,"src":"10966:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10966:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":861,"nodeType":"ArrayTypeName","src":"10966:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":867,"initialValue":{"arguments":[{"id":864,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":833,"src":"11012:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"11016:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":863,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1066,"src":"10993:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10993:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"10943:79:2"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11067:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11059:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":869,"name":"address","nodeType":"ElementaryTypeName","src":"11059:7:2","typeDescriptions":{}}},"id":872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11059:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":873,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":831,"src":"11071:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":874,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"11075:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":875,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":862,"src":"11080:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":876,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"11088:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":868,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"11032:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11032:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":878,"nodeType":"ExpressionStatement","src":"11032:61:2"}]},"documentation":{"id":829,"nodeType":"StructuredDocumentation","src":"10382:367:2","text":" @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"id":880,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"10763:5:2","nodeType":"FunctionDefinition","parameters":{"id":838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":831,"mutability":"mutable","name":"to","nameLocation":"10777:2:2","nodeType":"VariableDeclaration","scope":880,"src":"10769:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":830,"name":"address","nodeType":"ElementaryTypeName","src":"10769:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":833,"mutability":"mutable","name":"id","nameLocation":"10789:2:2","nodeType":"VariableDeclaration","scope":880,"src":"10781:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":832,"name":"uint256","nodeType":"ElementaryTypeName","src":"10781:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":835,"mutability":"mutable","name":"value","nameLocation":"10801:5:2","nodeType":"VariableDeclaration","scope":880,"src":"10793:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":834,"name":"uint256","nodeType":"ElementaryTypeName","src":"10793:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":837,"mutability":"mutable","name":"data","nameLocation":"10821:4:2","nodeType":"VariableDeclaration","scope":880,"src":"10808:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":836,"name":"bytes","nodeType":"ElementaryTypeName","src":"10808:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10768:58:2"},"returnParameters":{"id":839,"nodeType":"ParameterList","parameters":[],"src":"10836:0:2"},"scope":1067,"src":"10754:346:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":920,"nodeType":"Block","src":"11638:175:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":894,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"11652:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11666:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11658:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":895,"name":"address","nodeType":"ElementaryTypeName","src":"11658:7:2","typeDescriptions":{}}},"id":898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11658:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11652:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":908,"nodeType":"IfStatement","src":"11648:88:2","trueBody":{"id":907,"nodeType":"Block","src":"11670:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11722:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11714:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":901,"name":"address","nodeType":"ElementaryTypeName","src":"11714:7:2","typeDescriptions":{}}},"id":904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11714:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":900,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"11691:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11691:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":906,"nodeType":"RevertStatement","src":"11684:41:2"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11780:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11772:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":910,"name":"address","nodeType":"ElementaryTypeName","src":"11772:7:2","typeDescriptions":{}}},"id":913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11772:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":914,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"11784:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":915,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"11788:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":916,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"11793:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":917,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"11801:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":909,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"11745:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11745:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":919,"nodeType":"ExpressionStatement","src":"11745:61:2"}]},"documentation":{"id":881,"nodeType":"StructuredDocumentation","src":"11106:420:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n Emits a {TransferBatch} event.\n Requirements:\n - `ids` and `values` must have the same length.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value."},"id":921,"implemented":true,"kind":"function","modifiers":[],"name":"_mintBatch","nameLocation":"11540:10:2","nodeType":"FunctionDefinition","parameters":{"id":892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":883,"mutability":"mutable","name":"to","nameLocation":"11559:2:2","nodeType":"VariableDeclaration","scope":921,"src":"11551:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":882,"name":"address","nodeType":"ElementaryTypeName","src":"11551:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":886,"mutability":"mutable","name":"ids","nameLocation":"11580:3:2","nodeType":"VariableDeclaration","scope":921,"src":"11563:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":884,"name":"uint256","nodeType":"ElementaryTypeName","src":"11563:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":885,"nodeType":"ArrayTypeName","src":"11563:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":889,"mutability":"mutable","name":"values","nameLocation":"11602:6:2","nodeType":"VariableDeclaration","scope":921,"src":"11585:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":887,"name":"uint256","nodeType":"ElementaryTypeName","src":"11585:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":888,"nodeType":"ArrayTypeName","src":"11585:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":891,"mutability":"mutable","name":"data","nameLocation":"11623:4:2","nodeType":"VariableDeclaration","scope":921,"src":"11610:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":890,"name":"bytes","nodeType":"ElementaryTypeName","src":"11610:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11550:78:2"},"returnParameters":{"id":893,"nodeType":"ParameterList","parameters":[],"src":"11638:0:2"},"scope":1067,"src":"11531:282:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":970,"nodeType":"Block","src":"12172:264:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":931,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"12186:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12202:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12194:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":932,"name":"address","nodeType":"ElementaryTypeName","src":"12194:7:2","typeDescriptions":{}}},"id":935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12194:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12186:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":945,"nodeType":"IfStatement","src":"12182:88:2","trueBody":{"id":944,"nodeType":"Block","src":"12206:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12256:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12248:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":938,"name":"address","nodeType":"ElementaryTypeName","src":"12248:7:2","typeDescriptions":{}}},"id":941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12248:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":937,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"12227:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12227:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":943,"nodeType":"RevertStatement","src":"12220:39:2"}]}},{"assignments":[950,953],"declarations":[{"constant":false,"id":950,"mutability":"mutable","name":"ids","nameLocation":"12297:3:2","nodeType":"VariableDeclaration","scope":970,"src":"12280:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":948,"name":"uint256","nodeType":"ElementaryTypeName","src":"12280:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":949,"nodeType":"ArrayTypeName","src":"12280:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":953,"mutability":"mutable","name":"values","nameLocation":"12319:6:2","nodeType":"VariableDeclaration","scope":970,"src":"12302:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":951,"name":"uint256","nodeType":"ElementaryTypeName","src":"12302:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":952,"nodeType":"ArrayTypeName","src":"12302:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":958,"initialValue":{"arguments":[{"id":955,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"12348:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":956,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"12352:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":954,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1066,"src":"12329:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12329:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12279:79:2"},{"expression":{"arguments":[{"id":960,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"12395:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12409:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12401:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":961,"name":"address","nodeType":"ElementaryTypeName","src":"12401:7:2","typeDescriptions":{}}},"id":964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":965,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"12413:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":966,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":953,"src":"12418:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"hexValue":"","id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12426:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":959,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"12368:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12368:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":969,"nodeType":"ExpressionStatement","src":"12368:61:2"}]},"documentation":{"id":922,"nodeType":"StructuredDocumentation","src":"11819:283:2","text":" @dev Destroys a `value` amount of tokens of type `id` from `from`\n Emits a {TransferSingle} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`."},"id":971,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"12116:5:2","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":924,"mutability":"mutable","name":"from","nameLocation":"12130:4:2","nodeType":"VariableDeclaration","scope":971,"src":"12122:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":923,"name":"address","nodeType":"ElementaryTypeName","src":"12122:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"id","nameLocation":"12144:2:2","nodeType":"VariableDeclaration","scope":971,"src":"12136:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":925,"name":"uint256","nodeType":"ElementaryTypeName","src":"12136:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":928,"mutability":"mutable","name":"value","nameLocation":"12156:5:2","nodeType":"VariableDeclaration","scope":971,"src":"12148:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":927,"name":"uint256","nodeType":"ElementaryTypeName","src":"12148:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12121:41:2"},"returnParameters":{"id":930,"nodeType":"ParameterList","parameters":[],"src":"12172:0:2"},"scope":1067,"src":"12107:329:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1009,"nodeType":"Block","src":"12882:175:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":983,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"12896:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12912:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12904:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":984,"name":"address","nodeType":"ElementaryTypeName","src":"12904:7:2","typeDescriptions":{}}},"id":987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12904:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12896:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":997,"nodeType":"IfStatement","src":"12892:88:2","trueBody":{"id":996,"nodeType":"Block","src":"12916:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12966:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12958:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":990,"name":"address","nodeType":"ElementaryTypeName","src":"12958:7:2","typeDescriptions":{}}},"id":993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12958:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":989,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"12937:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12937:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":995,"nodeType":"RevertStatement","src":"12930:39:2"}]}},{"expression":{"arguments":[{"id":999,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"13016:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13030:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13022:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1000,"name":"address","nodeType":"ElementaryTypeName","src":"13022:7:2","typeDescriptions":{}}},"id":1003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13022:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1004,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":977,"src":"13034:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1005,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"13039:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"hexValue":"","id":1006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13047:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":998,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"12989:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1008,"nodeType":"ExpressionStatement","src":"12989:61:2"}]},"documentation":{"id":972,"nodeType":"StructuredDocumentation","src":"12442:345:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n Emits a {TransferBatch} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`.\n - `ids` and `values` must have the same length."},"id":1010,"implemented":true,"kind":"function","modifiers":[],"name":"_burnBatch","nameLocation":"12801:10:2","nodeType":"FunctionDefinition","parameters":{"id":981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":974,"mutability":"mutable","name":"from","nameLocation":"12820:4:2","nodeType":"VariableDeclaration","scope":1010,"src":"12812:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":973,"name":"address","nodeType":"ElementaryTypeName","src":"12812:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":977,"mutability":"mutable","name":"ids","nameLocation":"12843:3:2","nodeType":"VariableDeclaration","scope":1010,"src":"12826:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":975,"name":"uint256","nodeType":"ElementaryTypeName","src":"12826:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":976,"nodeType":"ArrayTypeName","src":"12826:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"values","nameLocation":"12865:6:2","nodeType":"VariableDeclaration","scope":1010,"src":"12848:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":978,"name":"uint256","nodeType":"ElementaryTypeName","src":"12848:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":979,"nodeType":"ArrayTypeName","src":"12848:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12811:61:2"},"returnParameters":{"id":982,"nodeType":"ParameterList","parameters":[],"src":"12882:0:2"},"scope":1067,"src":"12792:265:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1049,"nodeType":"Block","src":"13369:222:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1020,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"13383:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13403:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13395:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1021,"name":"address","nodeType":"ElementaryTypeName","src":"13395:7:2","typeDescriptions":{}}},"id":1024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13395:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13383:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1034,"nodeType":"IfStatement","src":"13379:94:2","trueBody":{"id":1033,"nodeType":"Block","src":"13407:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13459:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13451:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1027,"name":"address","nodeType":"ElementaryTypeName","src":"13451:7:2","typeDescriptions":{}}},"id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13451:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1026,"name":"ERC1155InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"13428:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13428:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"RevertStatement","src":"13421:41:2"}]}},{"expression":{"id":1041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1035,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"13482:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1038,"indexExpression":{"id":1036,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"13501:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13482:25:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1039,"indexExpression":{"id":1037,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"13508:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13482:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1040,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"13520:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13482:46:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1042,"nodeType":"ExpressionStatement","src":"13482:46:2"},{"eventCall":{"arguments":[{"id":1044,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"13558:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1045,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"13565:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1046,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"13575:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1043,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1111,"src":"13543:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1048,"nodeType":"EmitStatement","src":"13538:46:2"}]},"documentation":{"id":1011,"nodeType":"StructuredDocumentation","src":"13063:208:2","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address."},"id":1050,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"13285:18:2","nodeType":"FunctionDefinition","parameters":{"id":1018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"owner","nameLocation":"13312:5:2","nodeType":"VariableDeclaration","scope":1050,"src":"13304:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1012,"name":"address","nodeType":"ElementaryTypeName","src":"13304:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1015,"mutability":"mutable","name":"operator","nameLocation":"13327:8:2","nodeType":"VariableDeclaration","scope":1050,"src":"13319:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1014,"name":"address","nodeType":"ElementaryTypeName","src":"13319:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1017,"mutability":"mutable","name":"approved","nameLocation":"13342:8:2","nodeType":"VariableDeclaration","scope":1050,"src":"13337:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1016,"name":"bool","nodeType":"ElementaryTypeName","src":"13337:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13303:48:2"},"returnParameters":{"id":1019,"nodeType":"ParameterList","parameters":[],"src":"13369:0:2"},"scope":1067,"src":"13276:315:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1065,"nodeType":"Block","src":"13865:691:2","statements":[{"AST":{"nativeSrc":"13927:623:2","nodeType":"YulBlock","src":"13927:623:2","statements":[{"nativeSrc":"13985:21:2","nodeType":"YulAssignment","src":"13985:21:2","value":{"arguments":[{"kind":"number","nativeSrc":"14001:4:2","nodeType":"YulLiteral","src":"14001:4:2","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13995:5:2","nodeType":"YulIdentifier","src":"13995:5:2"},"nativeSrc":"13995:11:2","nodeType":"YulFunctionCall","src":"13995:11:2"},"variableNames":[{"name":"array1","nativeSrc":"13985:6:2","nodeType":"YulIdentifier","src":"13985:6:2"}]},{"expression":{"arguments":[{"name":"array1","nativeSrc":"14063:6:2","nodeType":"YulIdentifier","src":"14063:6:2"},{"kind":"number","nativeSrc":"14071:1:2","nodeType":"YulLiteral","src":"14071:1:2","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"14056:6:2","nodeType":"YulIdentifier","src":"14056:6:2"},"nativeSrc":"14056:17:2","nodeType":"YulFunctionCall","src":"14056:17:2"},"nativeSrc":"14056:17:2","nodeType":"YulExpressionStatement","src":"14056:17:2"},{"expression":{"arguments":[{"arguments":[{"name":"array1","nativeSrc":"14194:6:2","nodeType":"YulIdentifier","src":"14194:6:2"},{"kind":"number","nativeSrc":"14202:4:2","nodeType":"YulLiteral","src":"14202:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14190:3:2","nodeType":"YulIdentifier","src":"14190:3:2"},"nativeSrc":"14190:17:2","nodeType":"YulFunctionCall","src":"14190:17:2"},{"name":"element1","nativeSrc":"14209:8:2","nodeType":"YulIdentifier","src":"14209:8:2"}],"functionName":{"name":"mstore","nativeSrc":"14183:6:2","nodeType":"YulIdentifier","src":"14183:6:2"},"nativeSrc":"14183:35:2","nodeType":"YulFunctionCall","src":"14183:35:2"},"nativeSrc":"14183:35:2","nodeType":"YulExpressionStatement","src":"14183:35:2"},{"nativeSrc":"14309:27:2","nodeType":"YulAssignment","src":"14309:27:2","value":{"arguments":[{"name":"array1","nativeSrc":"14323:6:2","nodeType":"YulIdentifier","src":"14323:6:2"},{"kind":"number","nativeSrc":"14331:4:2","nodeType":"YulLiteral","src":"14331:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14319:3:2","nodeType":"YulIdentifier","src":"14319:3:2"},"nativeSrc":"14319:17:2","nodeType":"YulFunctionCall","src":"14319:17:2"},"variableNames":[{"name":"array2","nativeSrc":"14309:6:2","nodeType":"YulIdentifier","src":"14309:6:2"}]},{"expression":{"arguments":[{"name":"array2","nativeSrc":"14356:6:2","nodeType":"YulIdentifier","src":"14356:6:2"},{"kind":"number","nativeSrc":"14364:1:2","nodeType":"YulLiteral","src":"14364:1:2","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"14349:6:2","nodeType":"YulIdentifier","src":"14349:6:2"},"nativeSrc":"14349:17:2","nodeType":"YulFunctionCall","src":"14349:17:2"},"nativeSrc":"14349:17:2","nodeType":"YulExpressionStatement","src":"14349:17:2"},{"expression":{"arguments":[{"arguments":[{"name":"array2","nativeSrc":"14390:6:2","nodeType":"YulIdentifier","src":"14390:6:2"},{"kind":"number","nativeSrc":"14398:4:2","nodeType":"YulLiteral","src":"14398:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14386:3:2","nodeType":"YulIdentifier","src":"14386:3:2"},"nativeSrc":"14386:17:2","nodeType":"YulFunctionCall","src":"14386:17:2"},{"name":"element2","nativeSrc":"14405:8:2","nodeType":"YulIdentifier","src":"14405:8:2"}],"functionName":{"name":"mstore","nativeSrc":"14379:6:2","nodeType":"YulIdentifier","src":"14379:6:2"},"nativeSrc":"14379:35:2","nodeType":"YulFunctionCall","src":"14379:35:2"},"nativeSrc":"14379:35:2","nodeType":"YulExpressionStatement","src":"14379:35:2"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14516:4:2","nodeType":"YulLiteral","src":"14516:4:2","type":"","value":"0x40"},{"arguments":[{"name":"array2","nativeSrc":"14526:6:2","nodeType":"YulIdentifier","src":"14526:6:2"},{"kind":"number","nativeSrc":"14534:4:2","nodeType":"YulLiteral","src":"14534:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14522:3:2","nodeType":"YulIdentifier","src":"14522:3:2"},"nativeSrc":"14522:17:2","nodeType":"YulFunctionCall","src":"14522:17:2"}],"functionName":{"name":"mstore","nativeSrc":"14509:6:2","nodeType":"YulIdentifier","src":"14509:6:2"},"nativeSrc":"14509:31:2","nodeType":"YulFunctionCall","src":"14509:31:2"},"nativeSrc":"14509:31:2","nodeType":"YulExpressionStatement","src":"14509:31:2"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1059,"isOffset":false,"isSlot":false,"src":"13985:6:2","valueSize":1},{"declaration":1059,"isOffset":false,"isSlot":false,"src":"14063:6:2","valueSize":1},{"declaration":1059,"isOffset":false,"isSlot":false,"src":"14194:6:2","valueSize":1},{"declaration":1059,"isOffset":false,"isSlot":false,"src":"14323:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14309:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14356:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14390:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14526:6:2","valueSize":1},{"declaration":1053,"isOffset":false,"isSlot":false,"src":"14209:8:2","valueSize":1},{"declaration":1055,"isOffset":false,"isSlot":false,"src":"14405:8:2","valueSize":1}],"id":1064,"nodeType":"InlineAssembly","src":"13918:632:2"}]},"documentation":{"id":1051,"nodeType":"StructuredDocumentation","src":"13597:105:2","text":" @dev Creates an array in memory with only one value for each of the elements provided."},"id":1066,"implemented":true,"kind":"function","modifiers":[],"name":"_asSingletonArrays","nameLocation":"13716:18:2","nodeType":"FunctionDefinition","parameters":{"id":1056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1053,"mutability":"mutable","name":"element1","nameLocation":"13752:8:2","nodeType":"VariableDeclaration","scope":1066,"src":"13744:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1052,"name":"uint256","nodeType":"ElementaryTypeName","src":"13744:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1055,"mutability":"mutable","name":"element2","nameLocation":"13778:8:2","nodeType":"VariableDeclaration","scope":1066,"src":"13770:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1054,"name":"uint256","nodeType":"ElementaryTypeName","src":"13770:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13734:58:2"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1059,"mutability":"mutable","name":"array1","nameLocation":"13832:6:2","nodeType":"VariableDeclaration","scope":1066,"src":"13815:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1057,"name":"uint256","nodeType":"ElementaryTypeName","src":"13815:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1058,"nodeType":"ArrayTypeName","src":"13815:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1062,"mutability":"mutable","name":"array2","nameLocation":"13857:6:2","nodeType":"VariableDeclaration","scope":1066,"src":"13840:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1060,"name":"uint256","nodeType":"ElementaryTypeName","src":"13840:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1061,"nodeType":"ArrayTypeName","src":"13840:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"13814:50:2"},"scope":1067,"src":"13707:849:2","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1068,"src":"725:13833:2","usedErrors":[115,120,125,132,137,142,149],"usedEvents":[1087,1102,1111,1118]}],"src":"109:14450:2"},"id":2},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","exportedSymbols":{"IERC1155":[1190],"IERC165":[2857]},"id":1191,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1069,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"110:24:3"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1071,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1191,"sourceUnit":2858,"src":"136:62:3","symbolAliases":[{"foreign":{"id":1070,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"144:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1073,"name":"IERC165","nameLocations":["359:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"359:7:3"},"id":1074,"nodeType":"InheritanceSpecifier","src":"359:7:3"}],"canonicalName":"IERC1155","contractDependencies":[],"contractKind":"interface","documentation":{"id":1072,"nodeType":"StructuredDocumentation","src":"200:136:3","text":" @dev Required interface of an ERC-1155 compliant contract, as defined in the\n https://eips.ethereum.org/EIPS/eip-1155[ERC]."},"fullyImplemented":false,"id":1190,"linearizedBaseContracts":[1190,2857],"name":"IERC1155","nameLocation":"347:8:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1075,"nodeType":"StructuredDocumentation","src":"373:125:3","text":" @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`."},"eventSelector":"c3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62","id":1087,"name":"TransferSingle","nameLocation":"509:14:3","nodeType":"EventDefinition","parameters":{"id":1086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1077,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"540:8:3","nodeType":"VariableDeclaration","scope":1087,"src":"524:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1076,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1079,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"566:4:3","nodeType":"VariableDeclaration","scope":1087,"src":"550:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1078,"name":"address","nodeType":"ElementaryTypeName","src":"550:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1081,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"588:2:3","nodeType":"VariableDeclaration","scope":1087,"src":"572:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1080,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1083,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"600:2:3","nodeType":"VariableDeclaration","scope":1087,"src":"592:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1082,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1085,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"612:5:3","nodeType":"VariableDeclaration","scope":1087,"src":"604:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1084,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:95:3"},"src":"503:116:3"},{"anonymous":false,"documentation":{"id":1088,"nodeType":"StructuredDocumentation","src":"625:144:3","text":" @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n transfers."},"eventSelector":"4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb","id":1102,"name":"TransferBatch","nameLocation":"780:13:3","nodeType":"EventDefinition","parameters":{"id":1101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1090,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"819:8:3","nodeType":"VariableDeclaration","scope":1102,"src":"803:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1092,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"853:4:3","nodeType":"VariableDeclaration","scope":1102,"src":"837:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1091,"name":"address","nodeType":"ElementaryTypeName","src":"837:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1094,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"883:2:3","nodeType":"VariableDeclaration","scope":1102,"src":"867:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1093,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1097,"indexed":false,"mutability":"mutable","name":"ids","nameLocation":"905:3:3","nodeType":"VariableDeclaration","scope":1102,"src":"895:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1095,"name":"uint256","nodeType":"ElementaryTypeName","src":"895:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1096,"nodeType":"ArrayTypeName","src":"895:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1100,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"928:6:3","nodeType":"VariableDeclaration","scope":1102,"src":"918:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1098,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1099,"nodeType":"ArrayTypeName","src":"918:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"793:147:3"},"src":"774:167:3"},{"anonymous":false,"documentation":{"id":1103,"nodeType":"StructuredDocumentation","src":"947:147:3","text":" @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n `approved`."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":1111,"name":"ApprovalForAll","nameLocation":"1105:14:3","nodeType":"EventDefinition","parameters":{"id":1110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1105,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1136:7:3","nodeType":"VariableDeclaration","scope":1111,"src":"1120:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1104,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1107,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"1161:8:3","nodeType":"VariableDeclaration","scope":1111,"src":"1145:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1106,"name":"address","nodeType":"ElementaryTypeName","src":"1145:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1109,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"1176:8:3","nodeType":"VariableDeclaration","scope":1111,"src":"1171:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1108,"name":"bool","nodeType":"ElementaryTypeName","src":"1171:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1119:66:3"},"src":"1099:87:3"},{"anonymous":false,"documentation":{"id":1112,"nodeType":"StructuredDocumentation","src":"1192:343:3","text":" @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n If an {URI} event was emitted for `id`, the standard\n https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n returned by {IERC1155MetadataURI-uri}."},"eventSelector":"6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b","id":1118,"name":"URI","nameLocation":"1546:3:3","nodeType":"EventDefinition","parameters":{"id":1117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1114,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1557:5:3","nodeType":"VariableDeclaration","scope":1118,"src":"1550:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1113,"name":"string","nodeType":"ElementaryTypeName","src":"1550:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1116,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1580:2:3","nodeType":"VariableDeclaration","scope":1118,"src":"1564:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1115,"name":"uint256","nodeType":"ElementaryTypeName","src":"1564:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1549:34:3"},"src":"1540:44:3"},{"documentation":{"id":1119,"nodeType":"StructuredDocumentation","src":"1590:90:3","text":" @dev Returns the value of tokens of token type `id` owned by `account`."},"functionSelector":"00fdd58e","id":1128,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1694:9:3","nodeType":"FunctionDefinition","parameters":{"id":1124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1121,"mutability":"mutable","name":"account","nameLocation":"1712:7:3","nodeType":"VariableDeclaration","scope":1128,"src":"1704:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1120,"name":"address","nodeType":"ElementaryTypeName","src":"1704:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1123,"mutability":"mutable","name":"id","nameLocation":"1729:2:3","nodeType":"VariableDeclaration","scope":1128,"src":"1721:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1721:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1703:29:3"},"returnParameters":{"id":1127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1128,"src":"1756:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1756:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1755:9:3"},"scope":1190,"src":"1685:80:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1129,"nodeType":"StructuredDocumentation","src":"1771:188:3","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n Requirements:\n - `accounts` and `ids` must have the same length."},"functionSelector":"4e1273f4","id":1141,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfBatch","nameLocation":"1973:14:3","nodeType":"FunctionDefinition","parameters":{"id":1136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1132,"mutability":"mutable","name":"accounts","nameLocation":"2016:8:3","nodeType":"VariableDeclaration","scope":1141,"src":"1997:27:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1130,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1131,"nodeType":"ArrayTypeName","src":"1997:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1135,"mutability":"mutable","name":"ids","nameLocation":"2053:3:3","nodeType":"VariableDeclaration","scope":1141,"src":"2034:22:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1133,"name":"uint256","nodeType":"ElementaryTypeName","src":"2034:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1134,"nodeType":"ArrayTypeName","src":"2034:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1987:75:3"},"returnParameters":{"id":1140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1141,"src":"2086:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"2086:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1138,"nodeType":"ArrayTypeName","src":"2086:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2085:18:3"},"scope":1190,"src":"1964:140:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1142,"nodeType":"StructuredDocumentation","src":"2110:254:3","text":" @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address."},"functionSelector":"a22cb465","id":1149,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"2378:17:3","nodeType":"FunctionDefinition","parameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1144,"mutability":"mutable","name":"operator","nameLocation":"2404:8:3","nodeType":"VariableDeclaration","scope":1149,"src":"2396:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1143,"name":"address","nodeType":"ElementaryTypeName","src":"2396:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1146,"mutability":"mutable","name":"approved","nameLocation":"2419:8:3","nodeType":"VariableDeclaration","scope":1149,"src":"2414:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1145,"name":"bool","nodeType":"ElementaryTypeName","src":"2414:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2395:33:3"},"returnParameters":{"id":1148,"nodeType":"ParameterList","parameters":[],"src":"2437:0:3"},"scope":1190,"src":"2369:69:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1150,"nodeType":"StructuredDocumentation","src":"2444:135:3","text":" @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n See {setApprovalForAll}."},"functionSelector":"e985e9c5","id":1159,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2593:16:3","nodeType":"FunctionDefinition","parameters":{"id":1155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1152,"mutability":"mutable","name":"account","nameLocation":"2618:7:3","nodeType":"VariableDeclaration","scope":1159,"src":"2610:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1151,"name":"address","nodeType":"ElementaryTypeName","src":"2610:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1154,"mutability":"mutable","name":"operator","nameLocation":"2635:8:3","nodeType":"VariableDeclaration","scope":1159,"src":"2627:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1153,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2609:35:3"},"returnParameters":{"id":1158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1159,"src":"2668:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1156,"name":"bool","nodeType":"ElementaryTypeName","src":"2668:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2667:6:3"},"scope":1190,"src":"2584:90:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1160,"nodeType":"StructuredDocumentation","src":"2680:910:3","text":" @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"functionSelector":"f242432a","id":1173,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3604:16:3","nodeType":"FunctionDefinition","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1162,"mutability":"mutable","name":"from","nameLocation":"3629:4:3","nodeType":"VariableDeclaration","scope":1173,"src":"3621:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"3621:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1164,"mutability":"mutable","name":"to","nameLocation":"3643:2:3","nodeType":"VariableDeclaration","scope":1173,"src":"3635:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1163,"name":"address","nodeType":"ElementaryTypeName","src":"3635:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1166,"mutability":"mutable","name":"id","nameLocation":"3655:2:3","nodeType":"VariableDeclaration","scope":1173,"src":"3647:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1165,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1168,"mutability":"mutable","name":"value","nameLocation":"3667:5:3","nodeType":"VariableDeclaration","scope":1173,"src":"3659:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1167,"name":"uint256","nodeType":"ElementaryTypeName","src":"3659:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"data","nameLocation":"3689:4:3","nodeType":"VariableDeclaration","scope":1173,"src":"3674:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1169,"name":"bytes","nodeType":"ElementaryTypeName","src":"3674:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3620:74:3"},"returnParameters":{"id":1172,"nodeType":"ParameterList","parameters":[],"src":"3703:0:3"},"scope":1190,"src":"3595:109:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1174,"nodeType":"StructuredDocumentation","src":"3710:814:3","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n Requirements:\n - `ids` and `values` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value."},"functionSelector":"2eb2c2d6","id":1189,"implemented":false,"kind":"function","modifiers":[],"name":"safeBatchTransferFrom","nameLocation":"4538:21:3","nodeType":"FunctionDefinition","parameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1176,"mutability":"mutable","name":"from","nameLocation":"4577:4:3","nodeType":"VariableDeclaration","scope":1189,"src":"4569:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1175,"name":"address","nodeType":"ElementaryTypeName","src":"4569:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1178,"mutability":"mutable","name":"to","nameLocation":"4599:2:3","nodeType":"VariableDeclaration","scope":1189,"src":"4591:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"4591:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1181,"mutability":"mutable","name":"ids","nameLocation":"4630:3:3","nodeType":"VariableDeclaration","scope":1189,"src":"4611:22:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1179,"name":"uint256","nodeType":"ElementaryTypeName","src":"4611:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1180,"nodeType":"ArrayTypeName","src":"4611:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1184,"mutability":"mutable","name":"values","nameLocation":"4662:6:3","nodeType":"VariableDeclaration","scope":1189,"src":"4643:25:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1182,"name":"uint256","nodeType":"ElementaryTypeName","src":"4643:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1183,"nodeType":"ArrayTypeName","src":"4643:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1186,"mutability":"mutable","name":"data","nameLocation":"4693:4:3","nodeType":"VariableDeclaration","scope":1189,"src":"4678:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1185,"name":"bytes","nodeType":"ElementaryTypeName","src":"4678:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4559:144:3"},"returnParameters":{"id":1188,"nodeType":"ParameterList","parameters":[],"src":"4712:0:3"},"scope":1190,"src":"4529:184:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1191,"src":"337:4378:3","usedErrors":[],"usedEvents":[1087,1102,1111,1118]}],"src":"110:4606:3"},"id":3},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","exportedSymbols":{"IERC1155Receiver":[1232],"IERC165":[2857]},"id":1233,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1192,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"118:24:4"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1194,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1233,"sourceUnit":2858,"src":"144:62:4","symbolAliases":[{"foreign":{"id":1193,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"152:7:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1196,"name":"IERC165","nameLocations":["357:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"357:7:4"},"id":1197,"nodeType":"InheritanceSpecifier","src":"357:7:4"}],"canonicalName":"IERC1155Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":1195,"nodeType":"StructuredDocumentation","src":"208:118:4","text":" @dev Interface that must be implemented by smart contracts in order to receive\n ERC-1155 token transfers."},"fullyImplemented":false,"id":1232,"linearizedBaseContracts":[1232,2857],"name":"IERC1155Receiver","nameLocation":"337:16:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1198,"nodeType":"StructuredDocumentation","src":"371:827:4","text":" @dev Handles the receipt of a single ERC-1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n NOTE: To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed"},"functionSelector":"f23a6e61","id":1213,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"1212:17:4","nodeType":"FunctionDefinition","parameters":{"id":1209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1200,"mutability":"mutable","name":"operator","nameLocation":"1247:8:4","nodeType":"VariableDeclaration","scope":1213,"src":"1239:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"1239:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1202,"mutability":"mutable","name":"from","nameLocation":"1273:4:4","nodeType":"VariableDeclaration","scope":1213,"src":"1265:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1201,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1204,"mutability":"mutable","name":"id","nameLocation":"1295:2:4","nodeType":"VariableDeclaration","scope":1213,"src":"1287:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1287:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1206,"mutability":"mutable","name":"value","nameLocation":"1315:5:4","nodeType":"VariableDeclaration","scope":1213,"src":"1307:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1307:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1208,"mutability":"mutable","name":"data","nameLocation":"1345:4:4","nodeType":"VariableDeclaration","scope":1213,"src":"1330:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1207,"name":"bytes","nodeType":"ElementaryTypeName","src":"1330:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1229:126:4"},"returnParameters":{"id":1212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1213,"src":"1374:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1210,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1374:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1373:8:4"},"scope":1232,"src":"1203:179:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1214,"nodeType":"StructuredDocumentation","src":"1388:995:4","text":" @dev Handles the receipt of a multiple ERC-1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated.\n NOTE: To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed"},"functionSelector":"bc197c81","id":1231,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"2397:22:4","nodeType":"FunctionDefinition","parameters":{"id":1227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1216,"mutability":"mutable","name":"operator","nameLocation":"2437:8:4","nodeType":"VariableDeclaration","scope":1231,"src":"2429:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1215,"name":"address","nodeType":"ElementaryTypeName","src":"2429:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1218,"mutability":"mutable","name":"from","nameLocation":"2463:4:4","nodeType":"VariableDeclaration","scope":1231,"src":"2455:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1217,"name":"address","nodeType":"ElementaryTypeName","src":"2455:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1221,"mutability":"mutable","name":"ids","nameLocation":"2496:3:4","nodeType":"VariableDeclaration","scope":1231,"src":"2477:22:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1219,"name":"uint256","nodeType":"ElementaryTypeName","src":"2477:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1220,"nodeType":"ArrayTypeName","src":"2477:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1224,"mutability":"mutable","name":"values","nameLocation":"2528:6:4","nodeType":"VariableDeclaration","scope":1231,"src":"2509:25:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1222,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1223,"nodeType":"ArrayTypeName","src":"2509:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1226,"mutability":"mutable","name":"data","nameLocation":"2559:4:4","nodeType":"VariableDeclaration","scope":1231,"src":"2544:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1225,"name":"bytes","nodeType":"ElementaryTypeName","src":"2544:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2419:150:4"},"returnParameters":{"id":1230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1231,"src":"2588:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1228,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2588:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2587:8:4"},"scope":1232,"src":"2388:208:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1233,"src":"327:2271:4","usedErrors":[],"usedEvents":[]}],"src":"118:2481:4"},"id":4},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol","exportedSymbols":{"IERC1155":[1190],"IERC1155MetadataURI":[1248]},"id":1249,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1234,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"132:24:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"../IERC1155.sol","id":1236,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1249,"sourceUnit":1191,"src":"158:41:5","symbolAliases":[{"foreign":{"id":1235,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"166:8:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1238,"name":"IERC1155","nameLocations":["399:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"399:8:5"},"id":1239,"nodeType":"InheritanceSpecifier","src":"399:8:5"}],"canonicalName":"IERC1155MetadataURI","contractDependencies":[],"contractKind":"interface","documentation":{"id":1237,"nodeType":"StructuredDocumentation","src":"201:164:5","text":" @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[ERC]."},"fullyImplemented":false,"id":1248,"linearizedBaseContracts":[1248,1190,2857],"name":"IERC1155MetadataURI","nameLocation":"376:19:5","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1240,"nodeType":"StructuredDocumentation","src":"414:192:5","text":" @dev Returns the URI for token type `id`.\n If the `\\{id\\}` substring is present in the URI, it must be replaced by\n clients with the actual token type ID."},"functionSelector":"0e89341c","id":1247,"implemented":false,"kind":"function","modifiers":[],"name":"uri","nameLocation":"620:3:5","nodeType":"FunctionDefinition","parameters":{"id":1243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1242,"mutability":"mutable","name":"id","nameLocation":"632:2:5","nodeType":"VariableDeclaration","scope":1247,"src":"624:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1241,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:12:5"},"returnParameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1247,"src":"659:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1244,"name":"string","nodeType":"ElementaryTypeName","src":"659:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"658:15:5"},"scope":1248,"src":"611:63:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1249,"src":"366:310:5","usedErrors":[],"usedEvents":[1087,1102,1111,1118]}],"src":"132:545:5"},"id":5},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol","exportedSymbols":{"ERC1155Utils":[1402],"IERC1155Errors":[150],"IERC1155Receiver":[1232]},"id":1403,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1250,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:6"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"../IERC1155Receiver.sol","id":1252,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1403,"sourceUnit":1233,"src":"59:57:6","symbolAliases":[{"foreign":{"id":1251,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"67:16:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../../interfaces/draft-IERC6093.sol","id":1254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1403,"sourceUnit":151,"src":"117:70:6","symbolAliases":[{"foreign":{"id":1253,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"125:14:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ERC1155Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":1255,"nodeType":"StructuredDocumentation","src":"189:132:6","text":" @dev Library that provide common ERC-1155 utility functions.\n See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155]."},"fullyImplemented":true,"id":1402,"linearizedBaseContracts":[1402],"name":"ERC1155Utils","nameLocation":"330:12:6","nodeType":"ContractDefinition","nodes":[{"body":{"id":1326,"nodeType":"Block","src":"1069:813:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1271,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1083:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1086:4:6","memberName":"code","nodeType":"MemberAccess","src":"1083:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1091:6:6","memberName":"length","nodeType":"MemberAccess","src":"1083:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1100:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1083:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1325,"nodeType":"IfStatement","src":"1079:797:6","trueBody":{"id":1324,"nodeType":"Block","src":"1103:773:6","statements":[{"clauses":[{"block":{"id":1302,"nodeType":"Block","src":"1219:221:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1289,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1287,"src":"1241:8:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1290,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"1253:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1270:17:6","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"1253:34:6","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1288:8:6","memberName":"selector","nodeType":"MemberAccess","src":"1253:43:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1241:55:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1301,"nodeType":"IfStatement","src":"1237:189:6","trueBody":{"id":1300,"nodeType":"Block","src":"1298:128:6","statements":[{"errorCall":{"arguments":[{"id":1297,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1404:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1294,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"1366:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1381:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"1366:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1299,"nodeType":"RevertStatement","src":"1359:48:6"}]}}]},"errorName":"","id":1303,"nodeType":"TryCatchClause","parameters":{"id":1288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1287,"mutability":"mutable","name":"response","nameLocation":"1209:8:6","nodeType":"VariableDeclaration","scope":1303,"src":"1202:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1286,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1202:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1201:17:6"},"src":"1193:247:6"},{"block":{"id":1321,"nodeType":"Block","src":"1469:397:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1307,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"1491:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1498:6:6","memberName":"length","nodeType":"MemberAccess","src":"1491:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1508:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1491:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1319,"nodeType":"Block","src":"1662:190:6","statements":[{"AST":{"nativeSrc":"1748:86:6","nodeType":"YulBlock","src":"1748:86:6","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1785:2:6","nodeType":"YulLiteral","src":"1785:2:6","type":"","value":"32"},{"name":"reason","nativeSrc":"1789:6:6","nodeType":"YulIdentifier","src":"1789:6:6"}],"functionName":{"name":"add","nativeSrc":"1781:3:6","nodeType":"YulIdentifier","src":"1781:3:6"},"nativeSrc":"1781:15:6","nodeType":"YulFunctionCall","src":"1781:15:6"},{"arguments":[{"name":"reason","nativeSrc":"1804:6:6","nodeType":"YulIdentifier","src":"1804:6:6"}],"functionName":{"name":"mload","nativeSrc":"1798:5:6","nodeType":"YulIdentifier","src":"1798:5:6"},"nativeSrc":"1798:13:6","nodeType":"YulFunctionCall","src":"1798:13:6"}],"functionName":{"name":"revert","nativeSrc":"1774:6:6","nodeType":"YulIdentifier","src":"1774:6:6"},"nativeSrc":"1774:38:6","nodeType":"YulFunctionCall","src":"1774:38:6"},"nativeSrc":"1774:38:6","nodeType":"YulExpressionStatement","src":"1774:38:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1305,"isOffset":false,"isSlot":false,"src":"1789:6:6","valueSize":1},{"declaration":1305,"isOffset":false,"isSlot":false,"src":"1804:6:6","valueSize":1}],"id":1318,"nodeType":"InlineAssembly","src":"1739:95:6"}]},"id":1320,"nodeType":"IfStatement","src":"1487:365:6","trueBody":{"id":1317,"nodeType":"Block","src":"1511:145:6","statements":[{"errorCall":{"arguments":[{"id":1314,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1634:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1311,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"1596:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1611:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"1596:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1316,"nodeType":"RevertStatement","src":"1589:48:6"}]}}]},"errorName":"","id":1322,"nodeType":"TryCatchClause","parameters":{"id":1306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1305,"mutability":"mutable","name":"reason","nameLocation":"1461:6:6","nodeType":"VariableDeclaration","scope":1322,"src":"1448:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1304,"name":"bytes","nodeType":"ElementaryTypeName","src":"1448:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1447:21:6"},"src":"1441:425:6"}],"externalCall":{"arguments":[{"id":1280,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"1160:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1281,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1260,"src":"1170:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1282,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"1176:2:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1266,"src":"1180:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1284,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1268,"src":"1187:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1277,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1138:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1276,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"1121:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155Receiver_$1232","typeString":"contract IERC1155Receiver"}},"id":1279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1142:17:6","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"1121:38:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":1285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:71:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1323,"nodeType":"TryStatement","src":"1117:749:6"}]}}]},"documentation":{"id":1256,"nodeType":"StructuredDocumentation","src":"349:530:6","text":" @dev Performs an acceptance check for the provided `operator` by calling {IERC1155-onERC1155Received}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n the transfer."},"id":1327,"implemented":true,"kind":"function","modifiers":[],"name":"checkOnERC1155Received","nameLocation":"893:22:6","nodeType":"FunctionDefinition","parameters":{"id":1269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"mutability":"mutable","name":"operator","nameLocation":"933:8:6","nodeType":"VariableDeclaration","scope":1327,"src":"925:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1257,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1260,"mutability":"mutable","name":"from","nameLocation":"959:4:6","nodeType":"VariableDeclaration","scope":1327,"src":"951:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1259,"name":"address","nodeType":"ElementaryTypeName","src":"951:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1262,"mutability":"mutable","name":"to","nameLocation":"981:2:6","nodeType":"VariableDeclaration","scope":1327,"src":"973:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1261,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1264,"mutability":"mutable","name":"id","nameLocation":"1001:2:6","nodeType":"VariableDeclaration","scope":1327,"src":"993:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1263,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1266,"mutability":"mutable","name":"value","nameLocation":"1021:5:6","nodeType":"VariableDeclaration","scope":1327,"src":"1013:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1265,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1268,"mutability":"mutable","name":"data","nameLocation":"1049:4:6","nodeType":"VariableDeclaration","scope":1327,"src":"1036:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1267,"name":"bytes","nodeType":"ElementaryTypeName","src":"1036:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"915:144:6"},"returnParameters":{"id":1270,"nodeType":"ParameterList","parameters":[],"src":"1069:0:6"},"scope":1402,"src":"884:998:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1400,"nodeType":"Block","src":"2643:855:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1345,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2657:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2660:4:6","memberName":"code","nodeType":"MemberAccess","src":"2657:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2665:6:6","memberName":"length","nodeType":"MemberAccess","src":"2657:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2674:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1399,"nodeType":"IfStatement","src":"2653:839:6","trueBody":{"id":1398,"nodeType":"Block","src":"2677:815:6","statements":[{"clauses":[{"block":{"id":1376,"nodeType":"Block","src":"2830:226:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1363,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1361,"src":"2852:8:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1364,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"2864:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2881:22:6","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1231,"src":"2864:39:6","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)"}},"id":1366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2904:8:6","memberName":"selector","nodeType":"MemberAccess","src":"2864:48:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2852:60:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1375,"nodeType":"IfStatement","src":"2848:194:6","trueBody":{"id":1374,"nodeType":"Block","src":"2914:128:6","statements":[{"errorCall":{"arguments":[{"id":1371,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"3020:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1368,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"2982:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2997:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2982:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1373,"nodeType":"RevertStatement","src":"2975:48:6"}]}}]},"errorName":"","id":1377,"nodeType":"TryCatchClause","parameters":{"id":1362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1361,"mutability":"mutable","name":"response","nameLocation":"2807:8:6","nodeType":"VariableDeclaration","scope":1377,"src":"2800:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1360,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2800:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2782:47:6"},"src":"2774:282:6"},{"block":{"id":1395,"nodeType":"Block","src":"3085:397:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1381,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1379,"src":"3107:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3114:6:6","memberName":"length","nodeType":"MemberAccess","src":"3107:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3124:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3107:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1393,"nodeType":"Block","src":"3278:190:6","statements":[{"AST":{"nativeSrc":"3364:86:6","nodeType":"YulBlock","src":"3364:86:6","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3401:2:6","nodeType":"YulLiteral","src":"3401:2:6","type":"","value":"32"},{"name":"reason","nativeSrc":"3405:6:6","nodeType":"YulIdentifier","src":"3405:6:6"}],"functionName":{"name":"add","nativeSrc":"3397:3:6","nodeType":"YulIdentifier","src":"3397:3:6"},"nativeSrc":"3397:15:6","nodeType":"YulFunctionCall","src":"3397:15:6"},{"arguments":[{"name":"reason","nativeSrc":"3420:6:6","nodeType":"YulIdentifier","src":"3420:6:6"}],"functionName":{"name":"mload","nativeSrc":"3414:5:6","nodeType":"YulIdentifier","src":"3414:5:6"},"nativeSrc":"3414:13:6","nodeType":"YulFunctionCall","src":"3414:13:6"}],"functionName":{"name":"revert","nativeSrc":"3390:6:6","nodeType":"YulIdentifier","src":"3390:6:6"},"nativeSrc":"3390:38:6","nodeType":"YulFunctionCall","src":"3390:38:6"},"nativeSrc":"3390:38:6","nodeType":"YulExpressionStatement","src":"3390:38:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1379,"isOffset":false,"isSlot":false,"src":"3405:6:6","valueSize":1},{"declaration":1379,"isOffset":false,"isSlot":false,"src":"3420:6:6","valueSize":1}],"id":1392,"nodeType":"InlineAssembly","src":"3355:95:6"}]},"id":1394,"nodeType":"IfStatement","src":"3103:365:6","trueBody":{"id":1391,"nodeType":"Block","src":"3127:145:6","statements":[{"errorCall":{"arguments":[{"id":1388,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"3250:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1385,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"3212:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3227:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"3212:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1390,"nodeType":"RevertStatement","src":"3205:48:6"}]}}]},"errorName":"","id":1396,"nodeType":"TryCatchClause","parameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"reason","nameLocation":"3077:6:6","nodeType":"VariableDeclaration","scope":1396,"src":"3064:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1378,"name":"bytes","nodeType":"ElementaryTypeName","src":"3064:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3063:21:6"},"src":"3057:425:6"}],"externalCall":{"arguments":[{"id":1354,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"2739:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1355,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2749:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1356,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1337,"src":"2755:3:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1357,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1340,"src":"2760:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1358,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1342,"src":"2768:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1351,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2712:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1350,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"2695:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155Receiver_$1232","typeString":"contract IERC1155Receiver"}},"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2716:22:6","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1231,"src":"2695:43:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":1359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:78:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1397,"nodeType":"TryStatement","src":"2691:791:6"}]}}]},"documentation":{"id":1328,"nodeType":"StructuredDocumentation","src":"1888:540:6","text":" @dev Performs a batch acceptance check for the provided `operator` by calling {IERC1155-onERC1155BatchReceived}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n the transfer."},"id":1401,"implemented":true,"kind":"function","modifiers":[],"name":"checkOnERC1155BatchReceived","nameLocation":"2442:27:6","nodeType":"FunctionDefinition","parameters":{"id":1343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1330,"mutability":"mutable","name":"operator","nameLocation":"2487:8:6","nodeType":"VariableDeclaration","scope":1401,"src":"2479:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1329,"name":"address","nodeType":"ElementaryTypeName","src":"2479:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1332,"mutability":"mutable","name":"from","nameLocation":"2513:4:6","nodeType":"VariableDeclaration","scope":1401,"src":"2505:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1331,"name":"address","nodeType":"ElementaryTypeName","src":"2505:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1334,"mutability":"mutable","name":"to","nameLocation":"2535:2:6","nodeType":"VariableDeclaration","scope":1401,"src":"2527:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1333,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"ids","nameLocation":"2564:3:6","nodeType":"VariableDeclaration","scope":1401,"src":"2547:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1335,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1336,"nodeType":"ArrayTypeName","src":"2547:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1340,"mutability":"mutable","name":"values","nameLocation":"2594:6:6","nodeType":"VariableDeclaration","scope":1401,"src":"2577:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2577:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1339,"nodeType":"ArrayTypeName","src":"2577:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1342,"mutability":"mutable","name":"data","nameLocation":"2623:4:6","nodeType":"VariableDeclaration","scope":1401,"src":"2610:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1341,"name":"bytes","nodeType":"ElementaryTypeName","src":"2610:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2469:164:6"},"returnParameters":{"id":1344,"nodeType":"ParameterList","parameters":[],"src":"2643:0:6"},"scope":1402,"src":"2433:1065:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":1403,"src":"322:3178:6","usedErrors":[],"usedEvents":[]}],"src":"33:3468:6"},"id":6},"@openzeppelin/contracts/utils/Arrays.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Arrays.sol","exportedSymbols":{"Arrays":[2290],"Math":[4442],"SlotDerivation":[2502],"StorageSlot":[2821]},"id":2291,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1404,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"183:24:7"},{"absolutePath":"@openzeppelin/contracts/utils/SlotDerivation.sol","file":"./SlotDerivation.sol","id":1406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2291,"sourceUnit":2503,"src":"209:52:7","symbolAliases":[{"foreign":{"id":1405,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2502,"src":"217:14:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"./StorageSlot.sol","id":1408,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2291,"sourceUnit":2822,"src":"262:46:7","symbolAliases":[{"foreign":{"id":1407,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2821,"src":"270:11:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1410,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2291,"sourceUnit":4443,"src":"309:37:7","symbolAliases":[{"foreign":{"id":1409,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"317:4:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Arrays","contractDependencies":[],"contractKind":"library","documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"348:63:7","text":" @dev Collection of functions related to array types."},"fullyImplemented":true,"id":2290,"linearizedBaseContracts":[2290],"name":"Arrays","nameLocation":"420:6:7","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1414,"libraryName":{"id":1412,"name":"SlotDerivation","nameLocations":["439:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":2502,"src":"439:14:7"},"nodeType":"UsingForDirective","src":"433:33:7","typeName":{"id":1413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"458:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":1417,"libraryName":{"id":1415,"name":"StorageSlot","nameLocations":["477:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2821,"src":"477:11:7"},"nodeType":"UsingForDirective","src":"471:30:7","typeName":{"id":1416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":1449,"nodeType":"Block","src":"1451:83:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1439,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1421,"src":"1479:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1438,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"1472:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1472:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1442,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1421,"src":"1492:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1441,"name":"_end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"1487:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1487:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1444,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"1500:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1437,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"1461:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1446,"nodeType":"ExpressionStatement","src":"1461:44:7"},{"expression":{"id":1447,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1421,"src":"1522:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":1436,"id":1448,"nodeType":"Return","src":"1515:12:7"}]},"documentation":{"id":1418,"nodeType":"StructuredDocumentation","src":"507:785:7","text":" @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1450,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1306:4:7","nodeType":"FunctionDefinition","parameters":{"id":1432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1421,"mutability":"mutable","name":"array","nameLocation":"1337:5:7","nodeType":"VariableDeclaration","scope":1450,"src":"1320:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1320:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1420,"nodeType":"ArrayTypeName","src":"1320:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":1431,"mutability":"mutable","name":"comp","nameLocation":"1399:4:7","nodeType":"VariableDeclaration","scope":1450,"src":"1352:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1430,"nodeType":"FunctionTypeName","parameterTypes":{"id":1426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1430,"src":"1361:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1361:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1430,"src":"1370:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1370:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1360:18:7"},"returnParameterTypes":{"id":1429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1430,"src":"1393:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1427,"name":"bool","nodeType":"ElementaryTypeName","src":"1393:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1392:6:7"},"src":"1352:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"1310:99:7"},"returnParameters":{"id":1436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1450,"src":"1433:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1433:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1434,"nodeType":"ArrayTypeName","src":"1433:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1432:18:7"},"scope":2290,"src":"1297:237:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1467,"nodeType":"Block","src":"1717:64:7","statements":[{"expression":{"arguments":[{"id":1461,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"1732:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1462,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"1739:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1460,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"1727:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1727:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1464,"nodeType":"ExpressionStatement","src":"1727:25:7"},{"expression":{"id":1465,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"1769:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":1459,"id":1466,"nodeType":"Return","src":"1762:12:7"}]},"documentation":{"id":1451,"nodeType":"StructuredDocumentation","src":"1540:93:7","text":" @dev Variant of {sort} that sorts an array of bytes32 in increasing order."},"id":1468,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1647:4:7","nodeType":"FunctionDefinition","parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"array","nameLocation":"1669:5:7","nodeType":"VariableDeclaration","scope":1468,"src":"1652:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1652:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1453,"nodeType":"ArrayTypeName","src":"1652:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1651:24:7"},"returnParameters":{"id":1459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1468,"src":"1699:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1699:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1457,"nodeType":"ArrayTypeName","src":"1699:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1698:18:7"},"scope":2290,"src":"1638:143:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1499,"nodeType":"Block","src":"2731:97:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1490,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"2766:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":1489,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1738,"src":"2746:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (bytes32[] memory)"}},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"arguments":[{"id":1493,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"2793:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}],"id":1492,"name":"_castToBytes32Comp","nodeType":"Identifier","overloadedDeclarations":[1776,1802],"referencedDeclaration":1776,"src":"2774:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$","typeString":"function (function (address,address) pure returns (bool)) pure returns (function (bytes32,bytes32) pure returns (bool))"}},"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2774:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1488,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"2741:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1496,"nodeType":"ExpressionStatement","src":"2741:58:7"},{"expression":{"id":1497,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"2816:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":1487,"id":1498,"nodeType":"Return","src":"2809:12:7"}]},"documentation":{"id":1469,"nodeType":"StructuredDocumentation","src":"1787:785:7","text":" @dev Sort an array of address (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1500,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"2586:4:7","nodeType":"FunctionDefinition","parameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"array","nameLocation":"2617:5:7","nodeType":"VariableDeclaration","scope":1500,"src":"2600:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"2600:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1471,"nodeType":"ArrayTypeName","src":"2600:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1482,"mutability":"mutable","name":"comp","nameLocation":"2679:4:7","nodeType":"VariableDeclaration","scope":1500,"src":"2632:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":1481,"nodeType":"FunctionTypeName","parameterTypes":{"id":1477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1481,"src":"2641:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1473,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1481,"src":"2650:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1475,"name":"address","nodeType":"ElementaryTypeName","src":"2650:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2640:18:7"},"returnParameterTypes":{"id":1480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1481,"src":"2673:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1478,"name":"bool","nodeType":"ElementaryTypeName","src":"2673:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2672:6:7"},"src":"2632:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"2590:99:7"},"returnParameters":{"id":1487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1500,"src":"2713:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1484,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1485,"nodeType":"ArrayTypeName","src":"2713:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2712:18:7"},"scope":2290,"src":"2577:251:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1519,"nodeType":"Block","src":"3011:85:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1512,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3046:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":1511,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1738,"src":"3026:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (bytes32[] memory)"}},"id":1513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3026:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1514,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"3054:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1510,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"3021:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1516,"nodeType":"ExpressionStatement","src":"3021:46:7"},{"expression":{"id":1517,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3084:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":1509,"id":1518,"nodeType":"Return","src":"3077:12:7"}]},"documentation":{"id":1501,"nodeType":"StructuredDocumentation","src":"2834:93:7","text":" @dev Variant of {sort} that sorts an array of address in increasing order."},"id":1520,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"2941:4:7","nodeType":"FunctionDefinition","parameters":{"id":1505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"array","nameLocation":"2963:5:7","nodeType":"VariableDeclaration","scope":1520,"src":"2946:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1502,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1503,"nodeType":"ArrayTypeName","src":"2946:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2945:24:7"},"returnParameters":{"id":1509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1520,"src":"2993:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1506,"name":"address","nodeType":"ElementaryTypeName","src":"2993:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1507,"nodeType":"ArrayTypeName","src":"2993:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2992:18:7"},"scope":2290,"src":"2932:164:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1551,"nodeType":"Block","src":"4046:97:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1542,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"4081:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":1541,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1750,"src":"4061:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256[] memory) pure returns (bytes32[] memory)"}},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"arguments":[{"id":1545,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"4108:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":1544,"name":"_castToBytes32Comp","nodeType":"Identifier","overloadedDeclarations":[1776,1802],"referencedDeclaration":1802,"src":"4089:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$","typeString":"function (function (uint256,uint256) pure returns (bool)) pure returns (function (bytes32,bytes32) pure returns (bool))"}},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4089:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1540,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"4056:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1548,"nodeType":"ExpressionStatement","src":"4056:58:7"},{"expression":{"id":1549,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"4131:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1539,"id":1550,"nodeType":"Return","src":"4124:12:7"}]},"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"3102:785:7","text":" @dev Sort an array of uint256 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1552,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"3901:4:7","nodeType":"FunctionDefinition","parameters":{"id":1535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1524,"mutability":"mutable","name":"array","nameLocation":"3932:5:7","nodeType":"VariableDeclaration","scope":1552,"src":"3915:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3915:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1523,"nodeType":"ArrayTypeName","src":"3915:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"comp","nameLocation":"3994:4:7","nodeType":"VariableDeclaration","scope":1552,"src":"3947:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":1533,"nodeType":"FunctionTypeName","parameterTypes":{"id":1529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1533,"src":"3956:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1525,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1533,"src":"3965:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1527,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:18:7"},"returnParameterTypes":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1533,"src":"3988:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1530,"name":"bool","nodeType":"ElementaryTypeName","src":"3988:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3987:6:7"},"src":"3947:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"3905:99:7"},"returnParameters":{"id":1539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1552,"src":"4028:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1536,"name":"uint256","nodeType":"ElementaryTypeName","src":"4028:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1537,"nodeType":"ArrayTypeName","src":"4028:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4027:18:7"},"scope":2290,"src":"3892:251:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1571,"nodeType":"Block","src":"4326:85:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1564,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"4361:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":1563,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1750,"src":"4341:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256[] memory) pure returns (bytes32[] memory)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4341:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1566,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"4369:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1562,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"4336:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1568,"nodeType":"ExpressionStatement","src":"4336:46:7"},{"expression":{"id":1569,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"4399:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1561,"id":1570,"nodeType":"Return","src":"4392:12:7"}]},"documentation":{"id":1553,"nodeType":"StructuredDocumentation","src":"4149:93:7","text":" @dev Variant of {sort} that sorts an array of uint256 in increasing order."},"id":1572,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"4256:4:7","nodeType":"FunctionDefinition","parameters":{"id":1557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"array","nameLocation":"4278:5:7","nodeType":"VariableDeclaration","scope":1572,"src":"4261:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"4261:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1555,"nodeType":"ArrayTypeName","src":"4261:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4260:24:7"},"returnParameters":{"id":1561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1572,"src":"4308:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1558,"name":"uint256","nodeType":"ElementaryTypeName","src":"4308:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1559,"nodeType":"ArrayTypeName","src":"4308:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4307:18:7"},"scope":2290,"src":"4247:164:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1659,"nodeType":"Block","src":"5027:889:7","statements":[{"id":1658,"nodeType":"UncheckedBlock","src":"5037:873:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1590,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5065:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1591,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5071:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783430","id":1593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5079:4:7","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"0x40"},"src":"5065:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1596,"nodeType":"IfStatement","src":"5061:31:7","trueBody":{"functionReturnParameters":1589,"id":1595,"nodeType":"Return","src":"5085:7:7"}},{"assignments":[1598],"declarations":[{"constant":false,"id":1598,"mutability":"mutable","name":"pivot","nameLocation":"5156:5:7","nodeType":"VariableDeclaration","scope":1658,"src":"5148:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5148:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1602,"initialValue":{"arguments":[{"id":1600,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5171:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1599,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"5164:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5164:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5148:29:7"},{"assignments":[1604],"declarations":[{"constant":false,"id":1604,"mutability":"mutable","name":"pos","nameLocation":"5272:3:7","nodeType":"VariableDeclaration","scope":1658,"src":"5264:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1603,"name":"uint256","nodeType":"ElementaryTypeName","src":"5264:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1606,"initialValue":{"id":1605,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5278:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5264:19:7"},{"body":{"id":1637,"nodeType":"Block","src":"5352:331:7","statements":[{"condition":{"arguments":[{"arguments":[{"id":1622,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5386:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1621,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"5379:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":1623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5379:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1624,"name":"pivot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"5391:5:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1620,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"5374:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}},"id":1625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1636,"nodeType":"IfStatement","src":"5370:299:7","trueBody":{"id":1635,"nodeType":"Block","src":"5399:270:7","statements":[{"expression":{"id":1628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1626,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5603:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":1627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5610:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5603:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1629,"nodeType":"ExpressionStatement","src":"5603:11:7"},{"expression":{"arguments":[{"id":1631,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5642:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1632,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5647:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1630,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1711,"src":"5636:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5636:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1634,"nodeType":"ExpressionStatement","src":"5636:14:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1613,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5330:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1614,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5335:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5330:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1638,"initializationExpression":{"assignments":[1608],"declarations":[{"constant":false,"id":1608,"mutability":"mutable","name":"it","nameLocation":"5311:2:7","nodeType":"VariableDeclaration","scope":1638,"src":"5303:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1607,"name":"uint256","nodeType":"ElementaryTypeName","src":"5303:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1612,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1609,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5316:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":1610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5324:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5316:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5303:25:7"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":1618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1616,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5340:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":1617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5346:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5340:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1619,"nodeType":"ExpressionStatement","src":"5340:10:7"},"nodeType":"ForStatement","src":"5298:385:7"},{"expression":{"arguments":[{"id":1640,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5703:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1641,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5710:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1639,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1711,"src":"5697:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5697:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1643,"nodeType":"ExpressionStatement","src":"5697:17:7"},{"expression":{"arguments":[{"id":1645,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5764:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1646,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5771:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1647,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"5776:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1644,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"5753:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1649,"nodeType":"ExpressionStatement","src":"5753:28:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1651,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5841:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":1652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5847:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5841:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1654,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5853:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1655,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"5858:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1650,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"5830:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1657,"nodeType":"ExpressionStatement","src":"5830:33:7"}]}]},"documentation":{"id":1573,"nodeType":"StructuredDocumentation","src":"4417:491:7","text":" @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n at end (exclusive). Sorting follows the `comp` comparator.\n Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n be used only if the limits are within a memory array."},"id":1660,"implemented":true,"kind":"function","modifiers":[],"name":"_quickSort","nameLocation":"4922:10:7","nodeType":"FunctionDefinition","parameters":{"id":1588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1575,"mutability":"mutable","name":"begin","nameLocation":"4941:5:7","nodeType":"VariableDeclaration","scope":1660,"src":"4933:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1574,"name":"uint256","nodeType":"ElementaryTypeName","src":"4933:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1577,"mutability":"mutable","name":"end","nameLocation":"4956:3:7","nodeType":"VariableDeclaration","scope":1660,"src":"4948:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"4948:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1587,"mutability":"mutable","name":"comp","nameLocation":"5008:4:7","nodeType":"VariableDeclaration","scope":1660,"src":"4961:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1586,"nodeType":"FunctionTypeName","parameterTypes":{"id":1582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1586,"src":"4970:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4970:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1586,"src":"4979:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4979:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4969:18:7"},"returnParameterTypes":{"id":1585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1586,"src":"5002:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1583,"name":"bool","nodeType":"ElementaryTypeName","src":"5002:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5001:6:7"},"src":"4961:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"4932:81:7"},"returnParameters":{"id":1589,"nodeType":"ParameterList","parameters":[],"src":"5027:0:7"},"scope":2290,"src":"4913:1003:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1670,"nodeType":"Block","src":"6089:115:7","statements":[{"AST":{"nativeSrc":"6151:47:7","nodeType":"YulBlock","src":"6151:47:7","statements":[{"nativeSrc":"6165:23:7","nodeType":"YulAssignment","src":"6165:23:7","value":{"arguments":[{"name":"array","nativeSrc":"6176:5:7","nodeType":"YulIdentifier","src":"6176:5:7"},{"kind":"number","nativeSrc":"6183:4:7","nodeType":"YulLiteral","src":"6183:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6172:3:7","nodeType":"YulIdentifier","src":"6172:3:7"},"nativeSrc":"6172:16:7","nodeType":"YulFunctionCall","src":"6172:16:7"},"variableNames":[{"name":"ptr","nativeSrc":"6165:3:7","nodeType":"YulIdentifier","src":"6165:3:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1664,"isOffset":false,"isSlot":false,"src":"6176:5:7","valueSize":1},{"declaration":1667,"isOffset":false,"isSlot":false,"src":"6165:3:7","valueSize":1}],"id":1669,"nodeType":"InlineAssembly","src":"6142:56:7"}]},"documentation":{"id":1661,"nodeType":"StructuredDocumentation","src":"5922:87:7","text":" @dev Pointer to the memory location of the first element of `array`."},"id":1671,"implemented":true,"kind":"function","modifiers":[],"name":"_begin","nameLocation":"6023:6:7","nodeType":"FunctionDefinition","parameters":{"id":1665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1664,"mutability":"mutable","name":"array","nameLocation":"6047:5:7","nodeType":"VariableDeclaration","scope":1671,"src":"6030:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6030:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1663,"nodeType":"ArrayTypeName","src":"6030:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6029:24:7"},"returnParameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1667,"mutability":"mutable","name":"ptr","nameLocation":"6084:3:7","nodeType":"VariableDeclaration","scope":1671,"src":"6076:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1666,"name":"uint256","nodeType":"ElementaryTypeName","src":"6076:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6075:13:7"},"scope":2290,"src":"6014:190:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1690,"nodeType":"Block","src":"6476:93:7","statements":[{"id":1689,"nodeType":"UncheckedBlock","src":"6486:77:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1681,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1675,"src":"6524:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1680,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"6517:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6517:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1683,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1675,"src":"6533:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6539:6:7","memberName":"length","nodeType":"MemberAccess","src":"6533:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30783230","id":1685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6548:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"6533:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6517:35:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1679,"id":1688,"nodeType":"Return","src":"6510:42:7"}]}]},"documentation":{"id":1672,"nodeType":"StructuredDocumentation","src":"6210:188:7","text":" @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n that comes just after the last element of the array."},"id":1691,"implemented":true,"kind":"function","modifiers":[],"name":"_end","nameLocation":"6412:4:7","nodeType":"FunctionDefinition","parameters":{"id":1676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1675,"mutability":"mutable","name":"array","nameLocation":"6434:5:7","nodeType":"VariableDeclaration","scope":1691,"src":"6417:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6417:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1674,"nodeType":"ArrayTypeName","src":"6417:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6416:24:7"},"returnParameters":{"id":1679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1678,"mutability":"mutable","name":"ptr","nameLocation":"6471:3:7","nodeType":"VariableDeclaration","scope":1691,"src":"6463:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1677,"name":"uint256","nodeType":"ElementaryTypeName","src":"6463:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6462:13:7"},"scope":2290,"src":"6403:166:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1700,"nodeType":"Block","src":"6720:68:7","statements":[{"AST":{"nativeSrc":"6739:43:7","nodeType":"YulBlock","src":"6739:43:7","statements":[{"nativeSrc":"6753:19:7","nodeType":"YulAssignment","src":"6753:19:7","value":{"arguments":[{"name":"ptr","nativeSrc":"6768:3:7","nodeType":"YulIdentifier","src":"6768:3:7"}],"functionName":{"name":"mload","nativeSrc":"6762:5:7","nodeType":"YulIdentifier","src":"6762:5:7"},"nativeSrc":"6762:10:7","nodeType":"YulFunctionCall","src":"6762:10:7"},"variableNames":[{"name":"value","nativeSrc":"6753:5:7","nodeType":"YulIdentifier","src":"6753:5:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1694,"isOffset":false,"isSlot":false,"src":"6768:3:7","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"6753:5:7","valueSize":1}],"id":1699,"nodeType":"InlineAssembly","src":"6730:52:7"}]},"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"6575:74:7","text":" @dev Load memory word (as a bytes32) at location `ptr`."},"id":1701,"implemented":true,"kind":"function","modifiers":[],"name":"_mload","nameLocation":"6663:6:7","nodeType":"FunctionDefinition","parameters":{"id":1695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1694,"mutability":"mutable","name":"ptr","nameLocation":"6678:3:7","nodeType":"VariableDeclaration","scope":1701,"src":"6670:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1693,"name":"uint256","nodeType":"ElementaryTypeName","src":"6670:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6669:13:7"},"returnParameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1697,"mutability":"mutable","name":"value","nameLocation":"6713:5:7","nodeType":"VariableDeclaration","scope":1701,"src":"6705:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6705:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6704:15:7"},"scope":2290,"src":"6654:134:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1710,"nodeType":"Block","src":"6932:178:7","statements":[{"AST":{"nativeSrc":"6951:153:7","nodeType":"YulBlock","src":"6951:153:7","statements":[{"nativeSrc":"6965:25:7","nodeType":"YulVariableDeclaration","src":"6965:25:7","value":{"arguments":[{"name":"ptr1","nativeSrc":"6985:4:7","nodeType":"YulIdentifier","src":"6985:4:7"}],"functionName":{"name":"mload","nativeSrc":"6979:5:7","nodeType":"YulIdentifier","src":"6979:5:7"},"nativeSrc":"6979:11:7","nodeType":"YulFunctionCall","src":"6979:11:7"},"variables":[{"name":"value1","nativeSrc":"6969:6:7","nodeType":"YulTypedName","src":"6969:6:7","type":""}]},{"nativeSrc":"7003:25:7","nodeType":"YulVariableDeclaration","src":"7003:25:7","value":{"arguments":[{"name":"ptr2","nativeSrc":"7023:4:7","nodeType":"YulIdentifier","src":"7023:4:7"}],"functionName":{"name":"mload","nativeSrc":"7017:5:7","nodeType":"YulIdentifier","src":"7017:5:7"},"nativeSrc":"7017:11:7","nodeType":"YulFunctionCall","src":"7017:11:7"},"variables":[{"name":"value2","nativeSrc":"7007:6:7","nodeType":"YulTypedName","src":"7007:6:7","type":""}]},{"expression":{"arguments":[{"name":"ptr1","nativeSrc":"7048:4:7","nodeType":"YulIdentifier","src":"7048:4:7"},{"name":"value2","nativeSrc":"7054:6:7","nodeType":"YulIdentifier","src":"7054:6:7"}],"functionName":{"name":"mstore","nativeSrc":"7041:6:7","nodeType":"YulIdentifier","src":"7041:6:7"},"nativeSrc":"7041:20:7","nodeType":"YulFunctionCall","src":"7041:20:7"},"nativeSrc":"7041:20:7","nodeType":"YulExpressionStatement","src":"7041:20:7"},{"expression":{"arguments":[{"name":"ptr2","nativeSrc":"7081:4:7","nodeType":"YulIdentifier","src":"7081:4:7"},{"name":"value1","nativeSrc":"7087:6:7","nodeType":"YulIdentifier","src":"7087:6:7"}],"functionName":{"name":"mstore","nativeSrc":"7074:6:7","nodeType":"YulIdentifier","src":"7074:6:7"},"nativeSrc":"7074:20:7","nodeType":"YulFunctionCall","src":"7074:20:7"},"nativeSrc":"7074:20:7","nodeType":"YulExpressionStatement","src":"7074:20:7"}]},"evmVersion":"cancun","externalReferences":[{"declaration":1704,"isOffset":false,"isSlot":false,"src":"6985:4:7","valueSize":1},{"declaration":1704,"isOffset":false,"isSlot":false,"src":"7048:4:7","valueSize":1},{"declaration":1706,"isOffset":false,"isSlot":false,"src":"7023:4:7","valueSize":1},{"declaration":1706,"isOffset":false,"isSlot":false,"src":"7081:4:7","valueSize":1}],"id":1709,"nodeType":"InlineAssembly","src":"6942:162:7"}]},"documentation":{"id":1702,"nodeType":"StructuredDocumentation","src":"6794:77:7","text":" @dev Swaps the elements memory location `ptr1` and `ptr2`."},"id":1711,"implemented":true,"kind":"function","modifiers":[],"name":"_swap","nameLocation":"6885:5:7","nodeType":"FunctionDefinition","parameters":{"id":1707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1704,"mutability":"mutable","name":"ptr1","nameLocation":"6899:4:7","nodeType":"VariableDeclaration","scope":1711,"src":"6891:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1703,"name":"uint256","nodeType":"ElementaryTypeName","src":"6891:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1706,"mutability":"mutable","name":"ptr2","nameLocation":"6913:4:7","nodeType":"VariableDeclaration","scope":1711,"src":"6905:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1705,"name":"uint256","nodeType":"ElementaryTypeName","src":"6905:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6890:28:7"},"returnParameters":{"id":1708,"nodeType":"ParameterList","parameters":[],"src":"6932:0:7"},"scope":2290,"src":"6876:234:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1725,"nodeType":"Block","src":"7252:29:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1721,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"7269:1:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1722,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"7273:1:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7269:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1720,"id":1724,"nodeType":"Return","src":"7262:12:7"}]},"documentation":{"id":1712,"nodeType":"StructuredDocumentation","src":"7116:59:7","text":"@dev Comparator for sorting arrays in increasing order."},"id":1726,"implemented":true,"kind":"function","modifiers":[],"name":"_defaultComp","nameLocation":"7189:12:7","nodeType":"FunctionDefinition","parameters":{"id":1717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1714,"mutability":"mutable","name":"a","nameLocation":"7210:1:7","nodeType":"VariableDeclaration","scope":1726,"src":"7202:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7202:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1716,"mutability":"mutable","name":"b","nameLocation":"7221:1:7","nodeType":"VariableDeclaration","scope":1726,"src":"7213:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7213:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7201:22:7"},"returnParameters":{"id":1720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1726,"src":"7246:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1718,"name":"bool","nodeType":"ElementaryTypeName","src":"7246:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7245:6:7"},"scope":2290,"src":"7180:101:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1737,"nodeType":"Block","src":"7468:64:7","statements":[{"AST":{"nativeSrc":"7487:39:7","nodeType":"YulBlock","src":"7487:39:7","statements":[{"nativeSrc":"7501:15:7","nodeType":"YulAssignment","src":"7501:15:7","value":{"name":"input","nativeSrc":"7511:5:7","nodeType":"YulIdentifier","src":"7511:5:7"},"variableNames":[{"name":"output","nativeSrc":"7501:6:7","nodeType":"YulIdentifier","src":"7501:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1730,"isOffset":false,"isSlot":false,"src":"7511:5:7","valueSize":1},{"declaration":1734,"isOffset":false,"isSlot":false,"src":"7501:6:7","valueSize":1}],"id":1736,"nodeType":"InlineAssembly","src":"7478:48:7"}]},"documentation":{"id":1727,"nodeType":"StructuredDocumentation","src":"7287:76:7","text":"@dev Helper: low level cast address memory array to uint256 memory array"},"id":1738,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Array","nameLocation":"7377:19:7","nodeType":"FunctionDefinition","parameters":{"id":1731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1730,"mutability":"mutable","name":"input","nameLocation":"7414:5:7","nodeType":"VariableDeclaration","scope":1738,"src":"7397:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1728,"name":"address","nodeType":"ElementaryTypeName","src":"7397:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1729,"nodeType":"ArrayTypeName","src":"7397:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7396:24:7"},"returnParameters":{"id":1735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1734,"mutability":"mutable","name":"output","nameLocation":"7460:6:7","nodeType":"VariableDeclaration","scope":1738,"src":"7443:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7443:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1733,"nodeType":"ArrayTypeName","src":"7443:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7442:25:7"},"scope":2290,"src":"7368:164:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1749,"nodeType":"Block","src":"7719:64:7","statements":[{"AST":{"nativeSrc":"7738:39:7","nodeType":"YulBlock","src":"7738:39:7","statements":[{"nativeSrc":"7752:15:7","nodeType":"YulAssignment","src":"7752:15:7","value":{"name":"input","nativeSrc":"7762:5:7","nodeType":"YulIdentifier","src":"7762:5:7"},"variableNames":[{"name":"output","nativeSrc":"7752:6:7","nodeType":"YulIdentifier","src":"7752:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1742,"isOffset":false,"isSlot":false,"src":"7762:5:7","valueSize":1},{"declaration":1746,"isOffset":false,"isSlot":false,"src":"7752:6:7","valueSize":1}],"id":1748,"nodeType":"InlineAssembly","src":"7729:48:7"}]},"documentation":{"id":1739,"nodeType":"StructuredDocumentation","src":"7538:76:7","text":"@dev Helper: low level cast uint256 memory array to uint256 memory array"},"id":1750,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Array","nameLocation":"7628:19:7","nodeType":"FunctionDefinition","parameters":{"id":1743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1742,"mutability":"mutable","name":"input","nameLocation":"7665:5:7","nodeType":"VariableDeclaration","scope":1750,"src":"7648:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1740,"name":"uint256","nodeType":"ElementaryTypeName","src":"7648:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1741,"nodeType":"ArrayTypeName","src":"7648:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7647:24:7"},"returnParameters":{"id":1747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1746,"mutability":"mutable","name":"output","nameLocation":"7711:6:7","nodeType":"VariableDeclaration","scope":1750,"src":"7694:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7694:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1745,"nodeType":"ArrayTypeName","src":"7694:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7693:25:7"},"scope":2290,"src":"7619:164:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1775,"nodeType":"Block","src":"8045:64:7","statements":[{"AST":{"nativeSrc":"8064:39:7","nodeType":"YulBlock","src":"8064:39:7","statements":[{"nativeSrc":"8078:15:7","nodeType":"YulAssignment","src":"8078:15:7","value":{"name":"input","nativeSrc":"8088:5:7","nodeType":"YulIdentifier","src":"8088:5:7"},"variableNames":[{"name":"output","nativeSrc":"8078:6:7","nodeType":"YulIdentifier","src":"8078:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1761,"isOffset":false,"isSlot":false,"src":"8088:5:7","valueSize":1},{"declaration":1772,"isOffset":false,"isSlot":false,"src":"8078:6:7","valueSize":1}],"id":1774,"nodeType":"InlineAssembly","src":"8055:48:7"}]},"documentation":{"id":1751,"nodeType":"StructuredDocumentation","src":"7789:78:7","text":"@dev Helper: low level cast address comp function to bytes32 comp function"},"id":1776,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Comp","nameLocation":"7881:18:7","nodeType":"FunctionDefinition","parameters":{"id":1762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1761,"mutability":"mutable","name":"input","nameLocation":"7956:5:7","nodeType":"VariableDeclaration","scope":1776,"src":"7909:52:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":1760,"nodeType":"FunctionTypeName","parameterTypes":{"id":1756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"7918:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1752,"name":"address","nodeType":"ElementaryTypeName","src":"7918:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"7927:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1754,"name":"address","nodeType":"ElementaryTypeName","src":"7927:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7917:18:7"},"returnParameterTypes":{"id":1759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"7950:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1757,"name":"bool","nodeType":"ElementaryTypeName","src":"7950:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7949:6:7"},"src":"7909:52:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"7899:68:7"},"returnParameters":{"id":1773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1772,"mutability":"mutable","name":"output","nameLocation":"8037:6:7","nodeType":"VariableDeclaration","scope":1776,"src":"7990:53:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1771,"nodeType":"FunctionTypeName","parameterTypes":{"id":1767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1771,"src":"7999:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7999:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1771,"src":"8008:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8008:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7998:18:7"},"returnParameterTypes":{"id":1770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1771,"src":"8031:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1768,"name":"bool","nodeType":"ElementaryTypeName","src":"8031:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8030:6:7"},"src":"7990:53:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"7989:55:7"},"scope":2290,"src":"7872:237:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1801,"nodeType":"Block","src":"8371:64:7","statements":[{"AST":{"nativeSrc":"8390:39:7","nodeType":"YulBlock","src":"8390:39:7","statements":[{"nativeSrc":"8404:15:7","nodeType":"YulAssignment","src":"8404:15:7","value":{"name":"input","nativeSrc":"8414:5:7","nodeType":"YulIdentifier","src":"8414:5:7"},"variableNames":[{"name":"output","nativeSrc":"8404:6:7","nodeType":"YulIdentifier","src":"8404:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1787,"isOffset":false,"isSlot":false,"src":"8414:5:7","valueSize":1},{"declaration":1798,"isOffset":false,"isSlot":false,"src":"8404:6:7","valueSize":1}],"id":1800,"nodeType":"InlineAssembly","src":"8381:48:7"}]},"documentation":{"id":1777,"nodeType":"StructuredDocumentation","src":"8115:78:7","text":"@dev Helper: low level cast uint256 comp function to bytes32 comp function"},"id":1802,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Comp","nameLocation":"8207:18:7","nodeType":"FunctionDefinition","parameters":{"id":1788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1787,"mutability":"mutable","name":"input","nameLocation":"8282:5:7","nodeType":"VariableDeclaration","scope":1802,"src":"8235:52:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":1786,"nodeType":"FunctionTypeName","parameterTypes":{"id":1782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1786,"src":"8244:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1778,"name":"uint256","nodeType":"ElementaryTypeName","src":"8244:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1786,"src":"8253:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1780,"name":"uint256","nodeType":"ElementaryTypeName","src":"8253:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8243:18:7"},"returnParameterTypes":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1786,"src":"8276:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1783,"name":"bool","nodeType":"ElementaryTypeName","src":"8276:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8275:6:7"},"src":"8235:52:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8225:68:7"},"returnParameters":{"id":1799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1798,"mutability":"mutable","name":"output","nameLocation":"8363:6:7","nodeType":"VariableDeclaration","scope":1802,"src":"8316:53:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1797,"nodeType":"FunctionTypeName","parameterTypes":{"id":1793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"8325:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8325:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"8334:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8334:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8324:18:7"},"returnParameterTypes":{"id":1796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"8357:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1794,"name":"bool","nodeType":"ElementaryTypeName","src":"8357:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8356:6:7"},"src":"8316:53:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8315:55:7"},"scope":2290,"src":"8198:237:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1884,"nodeType":"Block","src":"9160:834:7","statements":[{"assignments":[1814],"declarations":[{"constant":false,"id":1814,"mutability":"mutable","name":"low","nameLocation":"9178:3:7","nodeType":"VariableDeclaration","scope":1884,"src":"9170:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1813,"name":"uint256","nodeType":"ElementaryTypeName","src":"9170:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1816,"initialValue":{"hexValue":"30","id":1815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9184:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9170:15:7"},{"assignments":[1818],"declarations":[{"constant":false,"id":1818,"mutability":"mutable","name":"high","nameLocation":"9203:4:7","nodeType":"VariableDeclaration","scope":1884,"src":"9195:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1817,"name":"uint256","nodeType":"ElementaryTypeName","src":"9195:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1821,"initialValue":{"expression":{"id":1819,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"9210:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9216:6:7","memberName":"length","nodeType":"MemberAccess","src":"9210:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9195:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1822,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9237:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9245:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9237:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1828,"nodeType":"IfStatement","src":"9233:48:7","trueBody":{"id":1827,"nodeType":"Block","src":"9248:33:7","statements":[{"expression":{"hexValue":"30","id":1825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9269:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1812,"id":1826,"nodeType":"Return","src":"9262:8:7"}]}},{"body":{"id":1860,"nodeType":"Block","src":"9310:423:7","statements":[{"assignments":[1833],"declarations":[{"constant":false,"id":1833,"mutability":"mutable","name":"mid","nameLocation":"9332:3:7","nodeType":"VariableDeclaration","scope":1860,"src":"9324:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1832,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1839,"initialValue":{"arguments":[{"id":1836,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9351:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1837,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9356:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1834,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"9338:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":1835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9343:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"9338:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9338:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1841,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"9599:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1842,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"9606:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1840,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"9586:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9586:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9611:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"9586:30:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1845,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1808,"src":"9619:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9586:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1858,"nodeType":"Block","src":"9677:46:7","statements":[{"expression":{"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1852,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9695:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1853,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"9701:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9707:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9701:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9695:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1857,"nodeType":"ExpressionStatement","src":"9695:13:7"}]},"id":1859,"nodeType":"IfStatement","src":"9582:141:7","trueBody":{"id":1851,"nodeType":"Block","src":"9628:43:7","statements":[{"expression":{"id":1849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1847,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9646:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1848,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"9653:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9646:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1850,"nodeType":"ExpressionStatement","src":"9646:10:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1829,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9298:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1830,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9304:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9298:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1861,"nodeType":"WhileStatement","src":"9291:442:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1862,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9850:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9856:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9850:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1866,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"9874:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1867,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9881:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9887:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9881:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1865,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"9861:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9890:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"9861:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1872,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1808,"src":"9899:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9861:45:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9850:56:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1882,"nodeType":"Block","src":"9953:35:7","statements":[{"expression":{"id":1880,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9974:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1812,"id":1881,"nodeType":"Return","src":"9967:10:7"}]},"id":1883,"nodeType":"IfStatement","src":"9846:142:7","trueBody":{"id":1879,"nodeType":"Block","src":"9908:39:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1875,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9929:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9935:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9929:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1812,"id":1878,"nodeType":"Return","src":"9922:14:7"}]}}]},"documentation":{"id":1803,"nodeType":"StructuredDocumentation","src":"8441:616:7","text":" @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n NOTE: The `array` is expected to be sorted in ascending order, and to\n contain no repeated elements.\n IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n support for repeated elements in the array. The {lowerBound} function should\n be used instead."},"id":1885,"implemented":true,"kind":"function","modifiers":[],"name":"findUpperBound","nameLocation":"9071:14:7","nodeType":"FunctionDefinition","parameters":{"id":1809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1806,"mutability":"mutable","name":"array","nameLocation":"9104:5:7","nodeType":"VariableDeclaration","scope":1885,"src":"9086:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1804,"name":"uint256","nodeType":"ElementaryTypeName","src":"9086:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1805,"nodeType":"ArrayTypeName","src":"9086:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1808,"mutability":"mutable","name":"element","nameLocation":"9119:7:7","nodeType":"VariableDeclaration","scope":1885,"src":"9111:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1807,"name":"uint256","nodeType":"ElementaryTypeName","src":"9111:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9085:42:7"},"returnParameters":{"id":1812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1885,"src":"9151:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1810,"name":"uint256","nodeType":"ElementaryTypeName","src":"9151:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9150:9:7"},"scope":2290,"src":"9062:932:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1948,"nodeType":"Block","src":"10511:709:7","statements":[{"assignments":[1897],"declarations":[{"constant":false,"id":1897,"mutability":"mutable","name":"low","nameLocation":"10529:3:7","nodeType":"VariableDeclaration","scope":1948,"src":"10521:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1896,"name":"uint256","nodeType":"ElementaryTypeName","src":"10521:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1899,"initialValue":{"hexValue":"30","id":1898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10535:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10521:15:7"},{"assignments":[1901],"declarations":[{"constant":false,"id":1901,"mutability":"mutable","name":"high","nameLocation":"10554:4:7","nodeType":"VariableDeclaration","scope":1948,"src":"10546:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1900,"name":"uint256","nodeType":"ElementaryTypeName","src":"10546:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1904,"initialValue":{"expression":{"id":1902,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"10561:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10567:6:7","memberName":"length","nodeType":"MemberAccess","src":"10561:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10546:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1905,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"10588:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10596:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10588:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1911,"nodeType":"IfStatement","src":"10584:48:7","trueBody":{"id":1910,"nodeType":"Block","src":"10599:33:7","statements":[{"expression":{"hexValue":"30","id":1908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10620:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1895,"id":1909,"nodeType":"Return","src":"10613:8:7"}]}},{"body":{"id":1944,"nodeType":"Block","src":"10661:532:7","statements":[{"assignments":[1916],"declarations":[{"constant":false,"id":1916,"mutability":"mutable","name":"mid","nameLocation":"10683:3:7","nodeType":"VariableDeclaration","scope":1944,"src":"10675:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1915,"name":"uint256","nodeType":"ElementaryTypeName","src":"10675:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1922,"initialValue":{"arguments":[{"id":1919,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10702:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1920,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"10707:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1917,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"10689:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"10689:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10689:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10675:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1924,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"10950:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1925,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"10957:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1923,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"10937:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10937:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10962:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"10937:30:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1928,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"10970:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10937:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1942,"nodeType":"Block","src":"11140:43:7","statements":[{"expression":{"id":1940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1938,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"11158:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1939,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"11165:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11158:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1941,"nodeType":"ExpressionStatement","src":"11158:10:7"}]},"id":1943,"nodeType":"IfStatement","src":"10933:250:7","trueBody":{"id":1937,"nodeType":"Block","src":"10979:155:7","statements":[{"id":1936,"nodeType":"UncheckedBlock","src":"11056:64:7","statements":[{"expression":{"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1930,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"11088:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1931,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"11094:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11100:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11094:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11088:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1935,"nodeType":"ExpressionStatement","src":"11088:13:7"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1912,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10649:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1913,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"10655:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10649:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1945,"nodeType":"WhileStatement","src":"10642:551:7"},{"expression":{"id":1946,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"11210:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1895,"id":1947,"nodeType":"Return","src":"11203:10:7"}]},"documentation":{"id":1886,"nodeType":"StructuredDocumentation","src":"10000:412:7","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value greater or equal than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound]."},"id":1949,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBound","nameLocation":"10426:10:7","nodeType":"FunctionDefinition","parameters":{"id":1892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1889,"mutability":"mutable","name":"array","nameLocation":"10455:5:7","nodeType":"VariableDeclaration","scope":1949,"src":"10437:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1887,"name":"uint256","nodeType":"ElementaryTypeName","src":"10437:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1888,"nodeType":"ArrayTypeName","src":"10437:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1891,"mutability":"mutable","name":"element","nameLocation":"10470:7:7","nodeType":"VariableDeclaration","scope":1949,"src":"10462:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1890,"name":"uint256","nodeType":"ElementaryTypeName","src":"10462:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10436:42:7"},"returnParameters":{"id":1895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1949,"src":"10502:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1893,"name":"uint256","nodeType":"ElementaryTypeName","src":"10502:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10501:9:7"},"scope":2290,"src":"10417:803:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2012,"nodeType":"Block","src":"11737:709:7","statements":[{"assignments":[1961],"declarations":[{"constant":false,"id":1961,"mutability":"mutable","name":"low","nameLocation":"11755:3:7","nodeType":"VariableDeclaration","scope":2012,"src":"11747:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1960,"name":"uint256","nodeType":"ElementaryTypeName","src":"11747:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1963,"initialValue":{"hexValue":"30","id":1962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11761:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11747:15:7"},{"assignments":[1965],"declarations":[{"constant":false,"id":1965,"mutability":"mutable","name":"high","nameLocation":"11780:4:7","nodeType":"VariableDeclaration","scope":2012,"src":"11772:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1964,"name":"uint256","nodeType":"ElementaryTypeName","src":"11772:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1968,"initialValue":{"expression":{"id":1966,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"11787:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11793:6:7","memberName":"length","nodeType":"MemberAccess","src":"11787:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11772:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1969,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"11814:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11822:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11814:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1975,"nodeType":"IfStatement","src":"11810:48:7","trueBody":{"id":1974,"nodeType":"Block","src":"11825:33:7","statements":[{"expression":{"hexValue":"30","id":1972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1959,"id":1973,"nodeType":"Return","src":"11839:8:7"}]}},{"body":{"id":2008,"nodeType":"Block","src":"11887:532:7","statements":[{"assignments":[1980],"declarations":[{"constant":false,"id":1980,"mutability":"mutable","name":"mid","nameLocation":"11909:3:7","nodeType":"VariableDeclaration","scope":2008,"src":"11901:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1979,"name":"uint256","nodeType":"ElementaryTypeName","src":"11901:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1986,"initialValue":{"arguments":[{"id":1983,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"11928:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1984,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"11933:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1981,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"11915:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":1982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11920:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"11915:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11915:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11901:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1988,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"12176:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1989,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"12183:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1987,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"12163:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12163:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12188:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"12163:30:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1992,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"12196:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12163:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2006,"nodeType":"Block","src":"12254:155:7","statements":[{"id":2005,"nodeType":"UncheckedBlock","src":"12331:64:7","statements":[{"expression":{"id":2003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1999,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"12363:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2000,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"12369:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12375:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12369:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12363:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2004,"nodeType":"ExpressionStatement","src":"12363:13:7"}]}]},"id":2007,"nodeType":"IfStatement","src":"12159:250:7","trueBody":{"id":1998,"nodeType":"Block","src":"12205:43:7","statements":[{"expression":{"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1994,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"12223:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1995,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"12230:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12223:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1997,"nodeType":"ExpressionStatement","src":"12223:10:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1976,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"11875:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1977,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"11881:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11875:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2009,"nodeType":"WhileStatement","src":"11868:551:7"},{"expression":{"id":2010,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"12436:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1959,"id":2011,"nodeType":"Return","src":"12429:10:7"}]},"documentation":{"id":1950,"nodeType":"StructuredDocumentation","src":"11226:412:7","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value strictly greater than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound]."},"id":2013,"implemented":true,"kind":"function","modifiers":[],"name":"upperBound","nameLocation":"11652:10:7","nodeType":"FunctionDefinition","parameters":{"id":1956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1953,"mutability":"mutable","name":"array","nameLocation":"11681:5:7","nodeType":"VariableDeclaration","scope":2013,"src":"11663:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1951,"name":"uint256","nodeType":"ElementaryTypeName","src":"11663:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1952,"nodeType":"ArrayTypeName","src":"11663:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1955,"mutability":"mutable","name":"element","nameLocation":"11696:7:7","nodeType":"VariableDeclaration","scope":2013,"src":"11688:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1954,"name":"uint256","nodeType":"ElementaryTypeName","src":"11688:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11662:42:7"},"returnParameters":{"id":1959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2013,"src":"11728:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1957,"name":"uint256","nodeType":"ElementaryTypeName","src":"11728:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11727:9:7"},"scope":2290,"src":"11643:803:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2075,"nodeType":"Block","src":"12630:709:7","statements":[{"assignments":[2025],"declarations":[{"constant":false,"id":2025,"mutability":"mutable","name":"low","nameLocation":"12648:3:7","nodeType":"VariableDeclaration","scope":2075,"src":"12640:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2024,"name":"uint256","nodeType":"ElementaryTypeName","src":"12640:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2027,"initialValue":{"hexValue":"30","id":2026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12654:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12640:15:7"},{"assignments":[2029],"declarations":[{"constant":false,"id":2029,"mutability":"mutable","name":"high","nameLocation":"12673:4:7","nodeType":"VariableDeclaration","scope":2075,"src":"12665:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2028,"name":"uint256","nodeType":"ElementaryTypeName","src":"12665:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2032,"initialValue":{"expression":{"id":2030,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"12680:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12686:6:7","memberName":"length","nodeType":"MemberAccess","src":"12680:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12665:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2033,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"12707:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12715:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12707:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2039,"nodeType":"IfStatement","src":"12703:48:7","trueBody":{"id":2038,"nodeType":"Block","src":"12718:33:7","statements":[{"expression":{"hexValue":"30","id":2036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12739:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2023,"id":2037,"nodeType":"Return","src":"12732:8:7"}]}},{"body":{"id":2071,"nodeType":"Block","src":"12780:532:7","statements":[{"assignments":[2044],"declarations":[{"constant":false,"id":2044,"mutability":"mutable","name":"mid","nameLocation":"12802:3:7","nodeType":"VariableDeclaration","scope":2071,"src":"12794:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2043,"name":"uint256","nodeType":"ElementaryTypeName","src":"12794:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2050,"initialValue":{"arguments":[{"id":2047,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"12821:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2048,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"12826:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2045,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"12808:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12813:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"12808:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12808:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12794:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2052,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"13075:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":2053,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2044,"src":"13082:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2051,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[2230,2243,2256],"referencedDeclaration":2256,"src":"13056:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2055,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2019,"src":"13089:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13056:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2069,"nodeType":"Block","src":"13259:43:7","statements":[{"expression":{"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2065,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"13277:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2066,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2044,"src":"13284:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13277:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2068,"nodeType":"ExpressionStatement","src":"13277:10:7"}]},"id":2070,"nodeType":"IfStatement","src":"13052:250:7","trueBody":{"id":2064,"nodeType":"Block","src":"13098:155:7","statements":[{"id":2063,"nodeType":"UncheckedBlock","src":"13175:64:7","statements":[{"expression":{"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2057,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"13207:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2058,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2044,"src":"13213:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13219:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13213:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13207:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2062,"nodeType":"ExpressionStatement","src":"13207:13:7"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2040,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"12768:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2041,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"12774:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12768:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2072,"nodeType":"WhileStatement","src":"12761:551:7"},{"expression":{"id":2073,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"13329:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2023,"id":2074,"nodeType":"Return","src":"13322:10:7"}]},"documentation":{"id":2014,"nodeType":"StructuredDocumentation","src":"12452:74:7","text":" @dev Same as {lowerBound}, but with an array in memory."},"id":2076,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBoundMemory","nameLocation":"12540:16:7","nodeType":"FunctionDefinition","parameters":{"id":2020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2017,"mutability":"mutable","name":"array","nameLocation":"12574:5:7","nodeType":"VariableDeclaration","scope":2076,"src":"12557:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2015,"name":"uint256","nodeType":"ElementaryTypeName","src":"12557:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2016,"nodeType":"ArrayTypeName","src":"12557:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2019,"mutability":"mutable","name":"element","nameLocation":"12589:7:7","nodeType":"VariableDeclaration","scope":2076,"src":"12581:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2018,"name":"uint256","nodeType":"ElementaryTypeName","src":"12581:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12556:41:7"},"returnParameters":{"id":2023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2022,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2076,"src":"12621:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2021,"name":"uint256","nodeType":"ElementaryTypeName","src":"12621:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12620:9:7"},"scope":2290,"src":"12531:808:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2138,"nodeType":"Block","src":"13523:709:7","statements":[{"assignments":[2088],"declarations":[{"constant":false,"id":2088,"mutability":"mutable","name":"low","nameLocation":"13541:3:7","nodeType":"VariableDeclaration","scope":2138,"src":"13533:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2087,"name":"uint256","nodeType":"ElementaryTypeName","src":"13533:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2090,"initialValue":{"hexValue":"30","id":2089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13547:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13533:15:7"},{"assignments":[2092],"declarations":[{"constant":false,"id":2092,"mutability":"mutable","name":"high","nameLocation":"13566:4:7","nodeType":"VariableDeclaration","scope":2138,"src":"13558:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2091,"name":"uint256","nodeType":"ElementaryTypeName","src":"13558:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2095,"initialValue":{"expression":{"id":2093,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"13573:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13579:6:7","memberName":"length","nodeType":"MemberAccess","src":"13573:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13558:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2096,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"13600:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13608:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13600:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2102,"nodeType":"IfStatement","src":"13596:48:7","trueBody":{"id":2101,"nodeType":"Block","src":"13611:33:7","statements":[{"expression":{"hexValue":"30","id":2099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13632:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2086,"id":2100,"nodeType":"Return","src":"13625:8:7"}]}},{"body":{"id":2134,"nodeType":"Block","src":"13673:532:7","statements":[{"assignments":[2107],"declarations":[{"constant":false,"id":2107,"mutability":"mutable","name":"mid","nameLocation":"13695:3:7","nodeType":"VariableDeclaration","scope":2134,"src":"13687:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2106,"name":"uint256","nodeType":"ElementaryTypeName","src":"13687:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2113,"initialValue":{"arguments":[{"id":2110,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"13714:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2111,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"13719:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2108,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"13701:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13706:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"13701:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13701:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13687:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2115,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"13968:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":2116,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"13975:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2114,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[2230,2243,2256],"referencedDeclaration":2256,"src":"13949:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13949:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2118,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"13982:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13949:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2132,"nodeType":"Block","src":"14040:155:7","statements":[{"id":2131,"nodeType":"UncheckedBlock","src":"14117:64:7","statements":[{"expression":{"id":2129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2125,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"14149:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2126,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"14155:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14161:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14155:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14149:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2130,"nodeType":"ExpressionStatement","src":"14149:13:7"}]}]},"id":2133,"nodeType":"IfStatement","src":"13945:250:7","trueBody":{"id":2124,"nodeType":"Block","src":"13991:43:7","statements":[{"expression":{"id":2122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2120,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"14009:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2121,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"14016:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14009:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2123,"nodeType":"ExpressionStatement","src":"14009:10:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2103,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"13661:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2104,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"13667:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13661:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2135,"nodeType":"WhileStatement","src":"13654:551:7"},{"expression":{"id":2136,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"14222:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2086,"id":2137,"nodeType":"Return","src":"14215:10:7"}]},"documentation":{"id":2077,"nodeType":"StructuredDocumentation","src":"13345:74:7","text":" @dev Same as {upperBound}, but with an array in memory."},"id":2139,"implemented":true,"kind":"function","modifiers":[],"name":"upperBoundMemory","nameLocation":"13433:16:7","nodeType":"FunctionDefinition","parameters":{"id":2083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2080,"mutability":"mutable","name":"array","nameLocation":"13467:5:7","nodeType":"VariableDeclaration","scope":2139,"src":"13450:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2078,"name":"uint256","nodeType":"ElementaryTypeName","src":"13450:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2079,"nodeType":"ArrayTypeName","src":"13450:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2082,"mutability":"mutable","name":"element","nameLocation":"13482:7:7","nodeType":"VariableDeclaration","scope":2139,"src":"13474:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2081,"name":"uint256","nodeType":"ElementaryTypeName","src":"13474:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13449:41:7"},"returnParameters":{"id":2086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2139,"src":"13514:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2084,"name":"uint256","nodeType":"ElementaryTypeName","src":"13514:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13513:9:7"},"scope":2290,"src":"13424:808:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2164,"nodeType":"Block","src":"14548:194:7","statements":[{"assignments":[2152],"declarations":[{"constant":false,"id":2152,"mutability":"mutable","name":"slot","nameLocation":"14566:4:7","nodeType":"VariableDeclaration","scope":2164,"src":"14558:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14558:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2153,"nodeType":"VariableDeclarationStatement","src":"14558:12:7"},{"AST":{"nativeSrc":"14632:40:7","nodeType":"YulBlock","src":"14632:40:7","statements":[{"nativeSrc":"14646:16:7","nodeType":"YulAssignment","src":"14646:16:7","value":{"name":"arr.slot","nativeSrc":"14654:8:7","nodeType":"YulIdentifier","src":"14654:8:7"},"variableNames":[{"name":"slot","nativeSrc":"14646:4:7","nodeType":"YulIdentifier","src":"14646:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2143,"isOffset":false,"isSlot":true,"src":"14654:8:7","suffix":"slot","valueSize":1},{"declaration":2152,"isOffset":false,"isSlot":false,"src":"14646:4:7","valueSize":1}],"id":2154,"nodeType":"InlineAssembly","src":"14623:49:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2159,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"14714:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2155,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"14688:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14693:11:7","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2417,"src":"14688:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14707:6:7","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2407,"src":"14688:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14719:14:7","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2537,"src":"14688:45:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2508_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"functionReturnParameters":2150,"id":2163,"nodeType":"Return","src":"14681:54:7"}]},"documentation":{"id":2140,"nodeType":"StructuredDocumentation","src":"14238:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2165,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"14443:12:7","nodeType":"FunctionDefinition","parameters":{"id":2146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2143,"mutability":"mutable","name":"arr","nameLocation":"14474:3:7","nodeType":"VariableDeclaration","scope":2165,"src":"14456:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2141,"name":"address","nodeType":"ElementaryTypeName","src":"14456:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2142,"nodeType":"ArrayTypeName","src":"14456:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2145,"mutability":"mutable","name":"pos","nameLocation":"14487:3:7","nodeType":"VariableDeclaration","scope":2165,"src":"14479:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2144,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14455:36:7"},"returnParameters":{"id":2150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2165,"src":"14515:31:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":2148,"nodeType":"UserDefinedTypeName","pathNode":{"id":2147,"name":"StorageSlot.AddressSlot","nameLocations":["14515:11:7","14527:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2508,"src":"14515:23:7"},"referencedDeclaration":2508,"src":"14515:23:7","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"14514:33:7"},"scope":2290,"src":"14434:308:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2190,"nodeType":"Block","src":"15058:194:7","statements":[{"assignments":[2178],"declarations":[{"constant":false,"id":2178,"mutability":"mutable","name":"slot","nameLocation":"15076:4:7","nodeType":"VariableDeclaration","scope":2190,"src":"15068:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15068:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2179,"nodeType":"VariableDeclarationStatement","src":"15068:12:7"},{"AST":{"nativeSrc":"15142:40:7","nodeType":"YulBlock","src":"15142:40:7","statements":[{"nativeSrc":"15156:16:7","nodeType":"YulAssignment","src":"15156:16:7","value":{"name":"arr.slot","nativeSrc":"15164:8:7","nodeType":"YulIdentifier","src":"15164:8:7"},"variableNames":[{"name":"slot","nativeSrc":"15156:4:7","nodeType":"YulIdentifier","src":"15156:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2169,"isOffset":false,"isSlot":true,"src":"15164:8:7","suffix":"slot","valueSize":1},{"declaration":2178,"isOffset":false,"isSlot":false,"src":"15156:4:7","valueSize":1}],"id":2180,"nodeType":"InlineAssembly","src":"15133:49:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2185,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2171,"src":"15224:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2181,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2178,"src":"15198:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15203:11:7","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2417,"src":"15198:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15217:6:7","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2407,"src":"15198:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15229:14:7","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":2559,"src":"15198:45:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$2514_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"functionReturnParameters":2176,"id":2189,"nodeType":"Return","src":"15191:54:7"}]},"documentation":{"id":2166,"nodeType":"StructuredDocumentation","src":"14748:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2191,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"14953:12:7","nodeType":"FunctionDefinition","parameters":{"id":2172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2169,"mutability":"mutable","name":"arr","nameLocation":"14984:3:7","nodeType":"VariableDeclaration","scope":2191,"src":"14966:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14966:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2168,"nodeType":"ArrayTypeName","src":"14966:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2171,"mutability":"mutable","name":"pos","nameLocation":"14997:3:7","nodeType":"VariableDeclaration","scope":2191,"src":"14989:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2170,"name":"uint256","nodeType":"ElementaryTypeName","src":"14989:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14965:36:7"},"returnParameters":{"id":2176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2191,"src":"15025:31:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":2174,"nodeType":"UserDefinedTypeName","pathNode":{"id":2173,"name":"StorageSlot.Bytes32Slot","nameLocations":["15025:11:7","15037:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2514,"src":"15025:23:7"},"referencedDeclaration":2514,"src":"15025:23:7","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"15024:33:7"},"scope":2290,"src":"14944:308:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2216,"nodeType":"Block","src":"15568:194:7","statements":[{"assignments":[2204],"declarations":[{"constant":false,"id":2204,"mutability":"mutable","name":"slot","nameLocation":"15586:4:7","nodeType":"VariableDeclaration","scope":2216,"src":"15578:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15578:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2205,"nodeType":"VariableDeclarationStatement","src":"15578:12:7"},{"AST":{"nativeSrc":"15652:40:7","nodeType":"YulBlock","src":"15652:40:7","statements":[{"nativeSrc":"15666:16:7","nodeType":"YulAssignment","src":"15666:16:7","value":{"name":"arr.slot","nativeSrc":"15674:8:7","nodeType":"YulIdentifier","src":"15674:8:7"},"variableNames":[{"name":"slot","nativeSrc":"15666:4:7","nodeType":"YulIdentifier","src":"15666:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2195,"isOffset":false,"isSlot":true,"src":"15674:8:7","suffix":"slot","valueSize":1},{"declaration":2204,"isOffset":false,"isSlot":false,"src":"15666:4:7","valueSize":1}],"id":2206,"nodeType":"InlineAssembly","src":"15643:49:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2211,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"15734:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2207,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2204,"src":"15708:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15713:11:7","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2417,"src":"15708:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15727:6:7","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2407,"src":"15708:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15739:14:7","memberName":"getUint256Slot","nodeType":"MemberAccess","referencedDeclaration":2570,"src":"15708:45:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"functionReturnParameters":2202,"id":2215,"nodeType":"Return","src":"15701:54:7"}]},"documentation":{"id":2192,"nodeType":"StructuredDocumentation","src":"15258:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2217,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"15463:12:7","nodeType":"FunctionDefinition","parameters":{"id":2198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2195,"mutability":"mutable","name":"arr","nameLocation":"15494:3:7","nodeType":"VariableDeclaration","scope":2217,"src":"15476:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2193,"name":"uint256","nodeType":"ElementaryTypeName","src":"15476:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2194,"nodeType":"ArrayTypeName","src":"15476:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"pos","nameLocation":"15507:3:7","nodeType":"VariableDeclaration","scope":2217,"src":"15499:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2196,"name":"uint256","nodeType":"ElementaryTypeName","src":"15499:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15475:36:7"},"returnParameters":{"id":2202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2201,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2217,"src":"15535:31:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":2200,"nodeType":"UserDefinedTypeName","pathNode":{"id":2199,"name":"StorageSlot.Uint256Slot","nameLocations":["15535:11:7","15547:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"15535:23:7"},"referencedDeclaration":2517,"src":"15535:23:7","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"15534:33:7"},"scope":2290,"src":"15454:308:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2229,"nodeType":"Block","src":"16063:98:7","statements":[{"AST":{"nativeSrc":"16082:73:7","nodeType":"YulBlock","src":"16082:73:7","statements":[{"nativeSrc":"16096:49:7","nodeType":"YulAssignment","src":"16096:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16117:3:7","nodeType":"YulIdentifier","src":"16117:3:7"},{"kind":"number","nativeSrc":"16122:4:7","nodeType":"YulLiteral","src":"16122:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16113:3:7","nodeType":"YulIdentifier","src":"16113:3:7"},"nativeSrc":"16113:14:7","nodeType":"YulFunctionCall","src":"16113:14:7"},{"arguments":[{"name":"pos","nativeSrc":"16133:3:7","nodeType":"YulIdentifier","src":"16133:3:7"},{"kind":"number","nativeSrc":"16138:4:7","nodeType":"YulLiteral","src":"16138:4:7","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16129:3:7","nodeType":"YulIdentifier","src":"16129:3:7"},"nativeSrc":"16129:14:7","nodeType":"YulFunctionCall","src":"16129:14:7"}],"functionName":{"name":"add","nativeSrc":"16109:3:7","nodeType":"YulIdentifier","src":"16109:3:7"},"nativeSrc":"16109:35:7","nodeType":"YulFunctionCall","src":"16109:35:7"}],"functionName":{"name":"mload","nativeSrc":"16103:5:7","nodeType":"YulIdentifier","src":"16103:5:7"},"nativeSrc":"16103:42:7","nodeType":"YulFunctionCall","src":"16103:42:7"},"variableNames":[{"name":"res","nativeSrc":"16096:3:7","nodeType":"YulIdentifier","src":"16096:3:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2221,"isOffset":false,"isSlot":false,"src":"16117:3:7","valueSize":1},{"declaration":2223,"isOffset":false,"isSlot":false,"src":"16133:3:7","valueSize":1},{"declaration":2226,"isOffset":false,"isSlot":false,"src":"16096:3:7","valueSize":1}],"id":2228,"nodeType":"InlineAssembly","src":"16073:82:7"}]},"documentation":{"id":2218,"nodeType":"StructuredDocumentation","src":"15768:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2230,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"15973:18:7","nodeType":"FunctionDefinition","parameters":{"id":2224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2221,"mutability":"mutable","name":"arr","nameLocation":"16009:3:7","nodeType":"VariableDeclaration","scope":2230,"src":"15992:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2219,"name":"address","nodeType":"ElementaryTypeName","src":"15992:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2220,"nodeType":"ArrayTypeName","src":"15992:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2223,"mutability":"mutable","name":"pos","nameLocation":"16022:3:7","nodeType":"VariableDeclaration","scope":2230,"src":"16014:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2222,"name":"uint256","nodeType":"ElementaryTypeName","src":"16014:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15991:35:7"},"returnParameters":{"id":2227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2226,"mutability":"mutable","name":"res","nameLocation":"16058:3:7","nodeType":"VariableDeclaration","scope":2230,"src":"16050:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2225,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16049:13:7"},"scope":2290,"src":"15964:197:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2242,"nodeType":"Block","src":"16462:98:7","statements":[{"AST":{"nativeSrc":"16481:73:7","nodeType":"YulBlock","src":"16481:73:7","statements":[{"nativeSrc":"16495:49:7","nodeType":"YulAssignment","src":"16495:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16516:3:7","nodeType":"YulIdentifier","src":"16516:3:7"},{"kind":"number","nativeSrc":"16521:4:7","nodeType":"YulLiteral","src":"16521:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16512:3:7","nodeType":"YulIdentifier","src":"16512:3:7"},"nativeSrc":"16512:14:7","nodeType":"YulFunctionCall","src":"16512:14:7"},{"arguments":[{"name":"pos","nativeSrc":"16532:3:7","nodeType":"YulIdentifier","src":"16532:3:7"},{"kind":"number","nativeSrc":"16537:4:7","nodeType":"YulLiteral","src":"16537:4:7","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16528:3:7","nodeType":"YulIdentifier","src":"16528:3:7"},"nativeSrc":"16528:14:7","nodeType":"YulFunctionCall","src":"16528:14:7"}],"functionName":{"name":"add","nativeSrc":"16508:3:7","nodeType":"YulIdentifier","src":"16508:3:7"},"nativeSrc":"16508:35:7","nodeType":"YulFunctionCall","src":"16508:35:7"}],"functionName":{"name":"mload","nativeSrc":"16502:5:7","nodeType":"YulIdentifier","src":"16502:5:7"},"nativeSrc":"16502:42:7","nodeType":"YulFunctionCall","src":"16502:42:7"},"variableNames":[{"name":"res","nativeSrc":"16495:3:7","nodeType":"YulIdentifier","src":"16495:3:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2234,"isOffset":false,"isSlot":false,"src":"16516:3:7","valueSize":1},{"declaration":2236,"isOffset":false,"isSlot":false,"src":"16532:3:7","valueSize":1},{"declaration":2239,"isOffset":false,"isSlot":false,"src":"16495:3:7","valueSize":1}],"id":2241,"nodeType":"InlineAssembly","src":"16472:82:7"}]},"documentation":{"id":2231,"nodeType":"StructuredDocumentation","src":"16167:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2243,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"16372:18:7","nodeType":"FunctionDefinition","parameters":{"id":2237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2234,"mutability":"mutable","name":"arr","nameLocation":"16408:3:7","nodeType":"VariableDeclaration","scope":2243,"src":"16391:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16391:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2233,"nodeType":"ArrayTypeName","src":"16391:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2236,"mutability":"mutable","name":"pos","nameLocation":"16421:3:7","nodeType":"VariableDeclaration","scope":2243,"src":"16413:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2235,"name":"uint256","nodeType":"ElementaryTypeName","src":"16413:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16390:35:7"},"returnParameters":{"id":2240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2239,"mutability":"mutable","name":"res","nameLocation":"16457:3:7","nodeType":"VariableDeclaration","scope":2243,"src":"16449:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16449:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16448:13:7"},"scope":2290,"src":"16363:197:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2255,"nodeType":"Block","src":"16861:98:7","statements":[{"AST":{"nativeSrc":"16880:73:7","nodeType":"YulBlock","src":"16880:73:7","statements":[{"nativeSrc":"16894:49:7","nodeType":"YulAssignment","src":"16894:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16915:3:7","nodeType":"YulIdentifier","src":"16915:3:7"},{"kind":"number","nativeSrc":"16920:4:7","nodeType":"YulLiteral","src":"16920:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16911:3:7","nodeType":"YulIdentifier","src":"16911:3:7"},"nativeSrc":"16911:14:7","nodeType":"YulFunctionCall","src":"16911:14:7"},{"arguments":[{"name":"pos","nativeSrc":"16931:3:7","nodeType":"YulIdentifier","src":"16931:3:7"},{"kind":"number","nativeSrc":"16936:4:7","nodeType":"YulLiteral","src":"16936:4:7","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16927:3:7","nodeType":"YulIdentifier","src":"16927:3:7"},"nativeSrc":"16927:14:7","nodeType":"YulFunctionCall","src":"16927:14:7"}],"functionName":{"name":"add","nativeSrc":"16907:3:7","nodeType":"YulIdentifier","src":"16907:3:7"},"nativeSrc":"16907:35:7","nodeType":"YulFunctionCall","src":"16907:35:7"}],"functionName":{"name":"mload","nativeSrc":"16901:5:7","nodeType":"YulIdentifier","src":"16901:5:7"},"nativeSrc":"16901:42:7","nodeType":"YulFunctionCall","src":"16901:42:7"},"variableNames":[{"name":"res","nativeSrc":"16894:3:7","nodeType":"YulIdentifier","src":"16894:3:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2247,"isOffset":false,"isSlot":false,"src":"16915:3:7","valueSize":1},{"declaration":2249,"isOffset":false,"isSlot":false,"src":"16931:3:7","valueSize":1},{"declaration":2252,"isOffset":false,"isSlot":false,"src":"16894:3:7","valueSize":1}],"id":2254,"nodeType":"InlineAssembly","src":"16871:82:7"}]},"documentation":{"id":2244,"nodeType":"StructuredDocumentation","src":"16566:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2256,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"16771:18:7","nodeType":"FunctionDefinition","parameters":{"id":2250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2247,"mutability":"mutable","name":"arr","nameLocation":"16807:3:7","nodeType":"VariableDeclaration","scope":2256,"src":"16790:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2245,"name":"uint256","nodeType":"ElementaryTypeName","src":"16790:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2246,"nodeType":"ArrayTypeName","src":"16790:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2249,"mutability":"mutable","name":"pos","nameLocation":"16820:3:7","nodeType":"VariableDeclaration","scope":2256,"src":"16812:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2248,"name":"uint256","nodeType":"ElementaryTypeName","src":"16812:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16789:35:7"},"returnParameters":{"id":2253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2252,"mutability":"mutable","name":"res","nameLocation":"16856:3:7","nodeType":"VariableDeclaration","scope":2256,"src":"16848:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2251,"name":"uint256","nodeType":"ElementaryTypeName","src":"16848:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16847:13:7"},"scope":2290,"src":"16762:197:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2266,"nodeType":"Block","src":"17276:115:7","statements":[{"AST":{"nativeSrc":"17338:47:7","nodeType":"YulBlock","src":"17338:47:7","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"17359:10:7","nodeType":"YulIdentifier","src":"17359:10:7"},{"name":"len","nativeSrc":"17371:3:7","nodeType":"YulIdentifier","src":"17371:3:7"}],"functionName":{"name":"sstore","nativeSrc":"17352:6:7","nodeType":"YulIdentifier","src":"17352:6:7"},"nativeSrc":"17352:23:7","nodeType":"YulFunctionCall","src":"17352:23:7"},"nativeSrc":"17352:23:7","nodeType":"YulExpressionStatement","src":"17352:23:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2260,"isOffset":false,"isSlot":true,"src":"17359:10:7","suffix":"slot","valueSize":1},{"declaration":2262,"isOffset":false,"isSlot":false,"src":"17371:3:7","valueSize":1}],"id":2265,"nodeType":"InlineAssembly","src":"17329:56:7"}]},"documentation":{"id":2257,"nodeType":"StructuredDocumentation","src":"16965:234:7","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2267,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"17213:15:7","nodeType":"FunctionDefinition","parameters":{"id":2263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2260,"mutability":"mutable","name":"array","nameLocation":"17247:5:7","nodeType":"VariableDeclaration","scope":2267,"src":"17229:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2258,"name":"address","nodeType":"ElementaryTypeName","src":"17229:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2259,"nodeType":"ArrayTypeName","src":"17229:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2262,"mutability":"mutable","name":"len","nameLocation":"17262:3:7","nodeType":"VariableDeclaration","scope":2267,"src":"17254:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2261,"name":"uint256","nodeType":"ElementaryTypeName","src":"17254:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17228:38:7"},"returnParameters":{"id":2264,"nodeType":"ParameterList","parameters":[],"src":"17276:0:7"},"scope":2290,"src":"17204:187:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2277,"nodeType":"Block","src":"17708:115:7","statements":[{"AST":{"nativeSrc":"17770:47:7","nodeType":"YulBlock","src":"17770:47:7","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"17791:10:7","nodeType":"YulIdentifier","src":"17791:10:7"},{"name":"len","nativeSrc":"17803:3:7","nodeType":"YulIdentifier","src":"17803:3:7"}],"functionName":{"name":"sstore","nativeSrc":"17784:6:7","nodeType":"YulIdentifier","src":"17784:6:7"},"nativeSrc":"17784:23:7","nodeType":"YulFunctionCall","src":"17784:23:7"},"nativeSrc":"17784:23:7","nodeType":"YulExpressionStatement","src":"17784:23:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2271,"isOffset":false,"isSlot":true,"src":"17791:10:7","suffix":"slot","valueSize":1},{"declaration":2273,"isOffset":false,"isSlot":false,"src":"17803:3:7","valueSize":1}],"id":2276,"nodeType":"InlineAssembly","src":"17761:56:7"}]},"documentation":{"id":2268,"nodeType":"StructuredDocumentation","src":"17397:234:7","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2278,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"17645:15:7","nodeType":"FunctionDefinition","parameters":{"id":2274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2271,"mutability":"mutable","name":"array","nameLocation":"17679:5:7","nodeType":"VariableDeclaration","scope":2278,"src":"17661:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17661:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2270,"nodeType":"ArrayTypeName","src":"17661:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2273,"mutability":"mutable","name":"len","nameLocation":"17694:3:7","nodeType":"VariableDeclaration","scope":2278,"src":"17686:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2272,"name":"uint256","nodeType":"ElementaryTypeName","src":"17686:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17660:38:7"},"returnParameters":{"id":2275,"nodeType":"ParameterList","parameters":[],"src":"17708:0:7"},"scope":2290,"src":"17636:187:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2288,"nodeType":"Block","src":"18140:115:7","statements":[{"AST":{"nativeSrc":"18202:47:7","nodeType":"YulBlock","src":"18202:47:7","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"18223:10:7","nodeType":"YulIdentifier","src":"18223:10:7"},{"name":"len","nativeSrc":"18235:3:7","nodeType":"YulIdentifier","src":"18235:3:7"}],"functionName":{"name":"sstore","nativeSrc":"18216:6:7","nodeType":"YulIdentifier","src":"18216:6:7"},"nativeSrc":"18216:23:7","nodeType":"YulFunctionCall","src":"18216:23:7"},"nativeSrc":"18216:23:7","nodeType":"YulExpressionStatement","src":"18216:23:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2282,"isOffset":false,"isSlot":true,"src":"18223:10:7","suffix":"slot","valueSize":1},{"declaration":2284,"isOffset":false,"isSlot":false,"src":"18235:3:7","valueSize":1}],"id":2287,"nodeType":"InlineAssembly","src":"18193:56:7"}]},"documentation":{"id":2279,"nodeType":"StructuredDocumentation","src":"17829:234:7","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2289,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"18077:15:7","nodeType":"FunctionDefinition","parameters":{"id":2285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2282,"mutability":"mutable","name":"array","nameLocation":"18111:5:7","nodeType":"VariableDeclaration","scope":2289,"src":"18093:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2280,"name":"uint256","nodeType":"ElementaryTypeName","src":"18093:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2281,"nodeType":"ArrayTypeName","src":"18093:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2284,"mutability":"mutable","name":"len","nameLocation":"18126:3:7","nodeType":"VariableDeclaration","scope":2289,"src":"18118:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2283,"name":"uint256","nodeType":"ElementaryTypeName","src":"18118:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18092:38:7"},"returnParameters":{"id":2286,"nodeType":"ParameterList","parameters":[],"src":"18140:0:7"},"scope":2290,"src":"18068:187:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2291,"src":"412:17845:7","usedErrors":[],"usedEvents":[]}],"src":"183:18075:7"},"id":7},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[2320]},"id":2321,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2292,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:8"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":2293,"nodeType":"StructuredDocumentation","src":"127:496:8","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":2320,"linearizedBaseContracts":[2320],"name":"Context","nameLocation":"642:7:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":2301,"nodeType":"Block","src":"718:34:8","statements":[{"expression":{"expression":{"id":2298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:8","memberName":"sender","nodeType":"MemberAccess","src":"735:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2297,"id":2300,"nodeType":"Return","src":"728:17:8"}]},"id":2302,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:8","nodeType":"FunctionDefinition","parameters":{"id":2294,"nodeType":"ParameterList","parameters":[],"src":"675:2:8"},"returnParameters":{"id":2297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2302,"src":"709:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2295,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:8"},"scope":2320,"src":"656:96:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2310,"nodeType":"Block","src":"825:32:8","statements":[{"expression":{"expression":{"id":2307,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:8","memberName":"data","nodeType":"MemberAccess","src":"842:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2306,"id":2309,"nodeType":"Return","src":"835:15:8"}]},"id":2311,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:8","nodeType":"FunctionDefinition","parameters":{"id":2303,"nodeType":"ParameterList","parameters":[],"src":"775:2:8"},"returnParameters":{"id":2306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2311,"src":"809:14:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2304,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:8"},"scope":2320,"src":"758:99:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2318,"nodeType":"Block","src":"935:25:8","statements":[{"expression":{"hexValue":"30","id":2316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2315,"id":2317,"nodeType":"Return","src":"945:8:8"}]},"id":2319,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:8","nodeType":"FunctionDefinition","parameters":{"id":2312,"nodeType":"ParameterList","parameters":[],"src":"892:2:8"},"returnParameters":{"id":2315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2319,"src":"926:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2313,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:8"},"scope":2320,"src":"863:97:8","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2321,"src":"624:338:8","usedErrors":[],"usedEvents":[]}],"src":"101:862:8"},"id":8},"@openzeppelin/contracts/utils/Panic.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","exportedSymbols":{"Panic":[2372]},"id":2373,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2322,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:9"},{"abstract":false,"baseContracts":[],"canonicalName":"Panic","contractDependencies":[],"contractKind":"library","documentation":{"id":2323,"nodeType":"StructuredDocumentation","src":"59:459:9","text":" @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]."},"fullyImplemented":true,"id":2372,"linearizedBaseContracts":[2372],"name":"Panic","nameLocation":"569:5:9","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":2324,"nodeType":"StructuredDocumentation","src":"581:36:9","text":"@dev generic / unspecified error"},"id":2327,"mutability":"constant","name":"GENERIC","nameLocation":"648:7:9","nodeType":"VariableDeclaration","scope":2372,"src":"622:40:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2325,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783030","id":2326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"658:4:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"constant":true,"documentation":{"id":2328,"nodeType":"StructuredDocumentation","src":"668:37:9","text":"@dev used by the assert() builtin"},"id":2331,"mutability":"constant","name":"ASSERT","nameLocation":"736:6:9","nodeType":"VariableDeclaration","scope":2372,"src":"710:39:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint256","nodeType":"ElementaryTypeName","src":"710:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":2330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"745:4:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"documentation":{"id":2332,"nodeType":"StructuredDocumentation","src":"755:41:9","text":"@dev arithmetic underflow or overflow"},"id":2335,"mutability":"constant","name":"UNDER_OVERFLOW","nameLocation":"827:14:9","nodeType":"VariableDeclaration","scope":2372,"src":"801:47:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2333,"name":"uint256","nodeType":"ElementaryTypeName","src":"801:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783131","id":2334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"844:4:9","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"},"visibility":"internal"},{"constant":true,"documentation":{"id":2336,"nodeType":"StructuredDocumentation","src":"854:35:9","text":"@dev division or modulo by zero"},"id":2339,"mutability":"constant","name":"DIVISION_BY_ZERO","nameLocation":"920:16:9","nodeType":"VariableDeclaration","scope":2372,"src":"894:49:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2337,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783132","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"939:4:9","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"},"visibility":"internal"},{"constant":true,"documentation":{"id":2340,"nodeType":"StructuredDocumentation","src":"949:30:9","text":"@dev enum conversion error"},"id":2343,"mutability":"constant","name":"ENUM_CONVERSION_ERROR","nameLocation":"1010:21:9","nodeType":"VariableDeclaration","scope":2372,"src":"984:54:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2341,"name":"uint256","nodeType":"ElementaryTypeName","src":"984:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783231","id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1034:4:9","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"},"visibility":"internal"},{"constant":true,"documentation":{"id":2344,"nodeType":"StructuredDocumentation","src":"1044:36:9","text":"@dev invalid encoding in storage"},"id":2347,"mutability":"constant","name":"STORAGE_ENCODING_ERROR","nameLocation":"1111:22:9","nodeType":"VariableDeclaration","scope":2372,"src":"1085:55:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2345,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783232","id":2346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1136:4:9","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"},"visibility":"internal"},{"constant":true,"documentation":{"id":2348,"nodeType":"StructuredDocumentation","src":"1146:24:9","text":"@dev empty array pop"},"id":2351,"mutability":"constant","name":"EMPTY_ARRAY_POP","nameLocation":"1201:15:9","nodeType":"VariableDeclaration","scope":2372,"src":"1175:48:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2349,"name":"uint256","nodeType":"ElementaryTypeName","src":"1175:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783331","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1219:4:9","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"},"visibility":"internal"},{"constant":true,"documentation":{"id":2352,"nodeType":"StructuredDocumentation","src":"1229:35:9","text":"@dev array out of bounds access"},"id":2355,"mutability":"constant","name":"ARRAY_OUT_OF_BOUNDS","nameLocation":"1295:19:9","nodeType":"VariableDeclaration","scope":2372,"src":"1269:52:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2353,"name":"uint256","nodeType":"ElementaryTypeName","src":"1269:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783332","id":2354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1317:4:9","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"},"visibility":"internal"},{"constant":true,"documentation":{"id":2356,"nodeType":"StructuredDocumentation","src":"1327:65:9","text":"@dev resource error (too large allocation or too large array)"},"id":2359,"mutability":"constant","name":"RESOURCE_ERROR","nameLocation":"1423:14:9","nodeType":"VariableDeclaration","scope":2372,"src":"1397:47:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1397:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783431","id":2358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1440:4:9","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"},"visibility":"internal"},{"constant":true,"documentation":{"id":2360,"nodeType":"StructuredDocumentation","src":"1450:42:9","text":"@dev calling invalid internal function"},"id":2363,"mutability":"constant","name":"INVALID_INTERNAL_FUNCTION","nameLocation":"1523:25:9","nodeType":"VariableDeclaration","scope":2372,"src":"1497:58:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2361,"name":"uint256","nodeType":"ElementaryTypeName","src":"1497:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783531","id":2362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1551:4:9","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"},"visibility":"internal"},{"body":{"id":2370,"nodeType":"Block","src":"1723:178:9","statements":[{"AST":{"nativeSrc":"1785:110:9","nodeType":"YulBlock","src":"1785:110:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1806:4:9","nodeType":"YulLiteral","src":"1806:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1812:10:9","nodeType":"YulLiteral","src":"1812:10:9","type":"","value":"0x4e487b71"}],"functionName":{"name":"mstore","nativeSrc":"1799:6:9","nodeType":"YulIdentifier","src":"1799:6:9"},"nativeSrc":"1799:24:9","nodeType":"YulFunctionCall","src":"1799:24:9"},"nativeSrc":"1799:24:9","nodeType":"YulExpressionStatement","src":"1799:24:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1843:4:9","nodeType":"YulLiteral","src":"1843:4:9","type":"","value":"0x20"},{"name":"code","nativeSrc":"1849:4:9","nodeType":"YulIdentifier","src":"1849:4:9"}],"functionName":{"name":"mstore","nativeSrc":"1836:6:9","nodeType":"YulIdentifier","src":"1836:6:9"},"nativeSrc":"1836:18:9","nodeType":"YulFunctionCall","src":"1836:18:9"},"nativeSrc":"1836:18:9","nodeType":"YulExpressionStatement","src":"1836:18:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1874:4:9","nodeType":"YulLiteral","src":"1874:4:9","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1880:4:9","nodeType":"YulLiteral","src":"1880:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1867:6:9","nodeType":"YulIdentifier","src":"1867:6:9"},"nativeSrc":"1867:18:9","nodeType":"YulFunctionCall","src":"1867:18:9"},"nativeSrc":"1867:18:9","nodeType":"YulExpressionStatement","src":"1867:18:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2366,"isOffset":false,"isSlot":false,"src":"1849:4:9","valueSize":1}],"id":2369,"nodeType":"InlineAssembly","src":"1776:119:9"}]},"documentation":{"id":2364,"nodeType":"StructuredDocumentation","src":"1562:113:9","text":"@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."},"id":2371,"implemented":true,"kind":"function","modifiers":[],"name":"panic","nameLocation":"1689:5:9","nodeType":"FunctionDefinition","parameters":{"id":2367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2366,"mutability":"mutable","name":"code","nameLocation":"1703:4:9","nodeType":"VariableDeclaration","scope":2371,"src":"1695:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2365,"name":"uint256","nodeType":"ElementaryTypeName","src":"1695:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1694:14:9"},"returnParameters":{"id":2368,"nodeType":"ParameterList","parameters":[],"src":"1723:0:9"},"scope":2372,"src":"1680:221:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2373,"src":"561:1342:9","usedErrors":[],"usedEvents":[]}],"src":"33:1871:9"},"id":9},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/SlotDerivation.sol","exportedSymbols":{"SlotDerivation":[2502]},"id":2503,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2374,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"124:24:10"},{"abstract":false,"baseContracts":[],"canonicalName":"SlotDerivation","contractDependencies":[],"contractKind":"library","documentation":{"id":2375,"nodeType":"StructuredDocumentation","src":"150:1342:10","text":" @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n the solidity language / compiler.\n See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n Example usage:\n ```solidity\n contract Example {\n // Add the library methods\n using StorageSlot for bytes32;\n using SlotDerivation for bytes32;\n // Declare a namespace\n string private constant _NAMESPACE = \"\" // eg. OpenZeppelin.Slot\n function setValueInNamespace(uint256 key, address newValue) internal {\n _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n }\n function getValueInNamespace(uint256 key) internal view returns (address) {\n return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n }\n }\n ```\n TIP: Consider using this library along with {StorageSlot}.\n NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n upgrade safety will ignore the slots accessed through this library."},"fullyImplemented":true,"id":2502,"linearizedBaseContracts":[2502],"name":"SlotDerivation","nameLocation":"1501:14:10","nodeType":"ContractDefinition","nodes":[{"body":{"id":2384,"nodeType":"Block","src":"1684:221:10","statements":[{"AST":{"nativeSrc":"1746:153:10","nodeType":"YulBlock","src":"1746:153:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1767:4:10","nodeType":"YulLiteral","src":"1767:4:10","type":"","value":"0x00"},{"arguments":[{"arguments":[{"arguments":[{"name":"namespace","nativeSrc":"1791:9:10","nodeType":"YulIdentifier","src":"1791:9:10"},{"kind":"number","nativeSrc":"1802:4:10","nodeType":"YulLiteral","src":"1802:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1787:3:10","nodeType":"YulIdentifier","src":"1787:3:10"},"nativeSrc":"1787:20:10","nodeType":"YulFunctionCall","src":"1787:20:10"},{"arguments":[{"name":"namespace","nativeSrc":"1815:9:10","nodeType":"YulIdentifier","src":"1815:9:10"}],"functionName":{"name":"mload","nativeSrc":"1809:5:10","nodeType":"YulIdentifier","src":"1809:5:10"},"nativeSrc":"1809:16:10","nodeType":"YulFunctionCall","src":"1809:16:10"}],"functionName":{"name":"keccak256","nativeSrc":"1777:9:10","nodeType":"YulIdentifier","src":"1777:9:10"},"nativeSrc":"1777:49:10","nodeType":"YulFunctionCall","src":"1777:49:10"},{"kind":"number","nativeSrc":"1828:1:10","nodeType":"YulLiteral","src":"1828:1:10","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1773:3:10","nodeType":"YulIdentifier","src":"1773:3:10"},"nativeSrc":"1773:57:10","nodeType":"YulFunctionCall","src":"1773:57:10"}],"functionName":{"name":"mstore","nativeSrc":"1760:6:10","nodeType":"YulIdentifier","src":"1760:6:10"},"nativeSrc":"1760:71:10","nodeType":"YulFunctionCall","src":"1760:71:10"},"nativeSrc":"1760:71:10","nodeType":"YulExpressionStatement","src":"1760:71:10"},{"nativeSrc":"1844:45:10","nodeType":"YulAssignment","src":"1844:45:10","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1866:4:10","nodeType":"YulLiteral","src":"1866:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1872:4:10","nodeType":"YulLiteral","src":"1872:4:10","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1856:9:10","nodeType":"YulIdentifier","src":"1856:9:10"},"nativeSrc":"1856:21:10","nodeType":"YulFunctionCall","src":"1856:21:10"},{"arguments":[{"kind":"number","nativeSrc":"1883:4:10","nodeType":"YulLiteral","src":"1883:4:10","type":"","value":"0xff"}],"functionName":{"name":"not","nativeSrc":"1879:3:10","nodeType":"YulIdentifier","src":"1879:3:10"},"nativeSrc":"1879:9:10","nodeType":"YulFunctionCall","src":"1879:9:10"}],"functionName":{"name":"and","nativeSrc":"1852:3:10","nodeType":"YulIdentifier","src":"1852:3:10"},"nativeSrc":"1852:37:10","nodeType":"YulFunctionCall","src":"1852:37:10"},"variableNames":[{"name":"slot","nativeSrc":"1844:4:10","nodeType":"YulIdentifier","src":"1844:4:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2378,"isOffset":false,"isSlot":false,"src":"1791:9:10","valueSize":1},{"declaration":2378,"isOffset":false,"isSlot":false,"src":"1815:9:10","valueSize":1},{"declaration":2381,"isOffset":false,"isSlot":false,"src":"1844:4:10","valueSize":1}],"id":2383,"nodeType":"InlineAssembly","src":"1737:162:10"}]},"documentation":{"id":2376,"nodeType":"StructuredDocumentation","src":"1522:74:10","text":" @dev Derive an ERC-7201 slot from a string (namespace)."},"id":2385,"implemented":true,"kind":"function","modifiers":[],"name":"erc7201Slot","nameLocation":"1610:11:10","nodeType":"FunctionDefinition","parameters":{"id":2379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2378,"mutability":"mutable","name":"namespace","nameLocation":"1636:9:10","nodeType":"VariableDeclaration","scope":2385,"src":"1622:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2377,"name":"string","nodeType":"ElementaryTypeName","src":"1622:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1621:25:10"},"returnParameters":{"id":2382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2381,"mutability":"mutable","name":"slot","nameLocation":"1678:4:10","nodeType":"VariableDeclaration","scope":2385,"src":"1670:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1670:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1669:14:10"},"scope":2502,"src":"1601:304:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2406,"nodeType":"Block","src":"2097:86:10","statements":[{"id":2405,"nodeType":"UncheckedBlock","src":"2107:70:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2399,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2388,"src":"2154:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2397,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:10","typeDescriptions":{}}},"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2401,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"2162:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2146:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:10","typeDescriptions":{}}},"id":2403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2394,"id":2404,"nodeType":"Return","src":"2131:35:10"}]}]},"documentation":{"id":2386,"nodeType":"StructuredDocumentation","src":"1911:99:10","text":" @dev Add an offset to a slot to get the n-th element of a structure or an array."},"id":2407,"implemented":true,"kind":"function","modifiers":[],"name":"offset","nameLocation":"2024:6:10","nodeType":"FunctionDefinition","parameters":{"id":2391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2388,"mutability":"mutable","name":"slot","nameLocation":"2039:4:10","nodeType":"VariableDeclaration","scope":2407,"src":"2031:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2031:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2390,"mutability":"mutable","name":"pos","nameLocation":"2053:3:10","nodeType":"VariableDeclaration","scope":2407,"src":"2045:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2389,"name":"uint256","nodeType":"ElementaryTypeName","src":"2045:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2030:27:10"},"returnParameters":{"id":2394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2393,"mutability":"mutable","name":"result","nameLocation":"2089:6:10","nodeType":"VariableDeclaration","scope":2407,"src":"2081:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2081:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2080:16:10"},"scope":2502,"src":"2015:168:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2416,"nodeType":"Block","src":"2386:154:10","statements":[{"AST":{"nativeSrc":"2448:86:10","nodeType":"YulBlock","src":"2448:86:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2469:4:10","nodeType":"YulLiteral","src":"2469:4:10","type":"","value":"0x00"},{"name":"slot","nativeSrc":"2475:4:10","nodeType":"YulIdentifier","src":"2475:4:10"}],"functionName":{"name":"mstore","nativeSrc":"2462:6:10","nodeType":"YulIdentifier","src":"2462:6:10"},"nativeSrc":"2462:18:10","nodeType":"YulFunctionCall","src":"2462:18:10"},"nativeSrc":"2462:18:10","nodeType":"YulExpressionStatement","src":"2462:18:10"},{"nativeSrc":"2493:31:10","nodeType":"YulAssignment","src":"2493:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"2513:4:10","nodeType":"YulLiteral","src":"2513:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2519:4:10","nodeType":"YulLiteral","src":"2519:4:10","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2503:9:10","nodeType":"YulIdentifier","src":"2503:9:10"},"nativeSrc":"2503:21:10","nodeType":"YulFunctionCall","src":"2503:21:10"},"variableNames":[{"name":"result","nativeSrc":"2493:6:10","nodeType":"YulIdentifier","src":"2493:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2413,"isOffset":false,"isSlot":false,"src":"2493:6:10","valueSize":1},{"declaration":2410,"isOffset":false,"isSlot":false,"src":"2475:4:10","valueSize":1}],"id":2415,"nodeType":"InlineAssembly","src":"2439:95:10"}]},"documentation":{"id":2408,"nodeType":"StructuredDocumentation","src":"2189:118:10","text":" @dev Derive the location of the first element in an array from the slot where the length is stored."},"id":2417,"implemented":true,"kind":"function","modifiers":[],"name":"deriveArray","nameLocation":"2321:11:10","nodeType":"FunctionDefinition","parameters":{"id":2411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2410,"mutability":"mutable","name":"slot","nameLocation":"2341:4:10","nodeType":"VariableDeclaration","scope":2417,"src":"2333:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2333:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2332:14:10"},"returnParameters":{"id":2414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2413,"mutability":"mutable","name":"result","nameLocation":"2378:6:10","nodeType":"VariableDeclaration","scope":2417,"src":"2370:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2370:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2369:16:10"},"scope":2502,"src":"2312:228:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2428,"nodeType":"Block","src":"2718:184:10","statements":[{"AST":{"nativeSrc":"2780:116:10","nodeType":"YulBlock","src":"2780:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2801:4:10","nodeType":"YulLiteral","src":"2801:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"2807:3:10","nodeType":"YulIdentifier","src":"2807:3:10"}],"functionName":{"name":"mstore","nativeSrc":"2794:6:10","nodeType":"YulIdentifier","src":"2794:6:10"},"nativeSrc":"2794:17:10","nodeType":"YulFunctionCall","src":"2794:17:10"},"nativeSrc":"2794:17:10","nodeType":"YulExpressionStatement","src":"2794:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2831:4:10","nodeType":"YulLiteral","src":"2831:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"2837:4:10","nodeType":"YulIdentifier","src":"2837:4:10"}],"functionName":{"name":"mstore","nativeSrc":"2824:6:10","nodeType":"YulIdentifier","src":"2824:6:10"},"nativeSrc":"2824:18:10","nodeType":"YulFunctionCall","src":"2824:18:10"},"nativeSrc":"2824:18:10","nodeType":"YulExpressionStatement","src":"2824:18:10"},{"nativeSrc":"2855:31:10","nodeType":"YulAssignment","src":"2855:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"2875:4:10","nodeType":"YulLiteral","src":"2875:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2881:4:10","nodeType":"YulLiteral","src":"2881:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"2865:9:10","nodeType":"YulIdentifier","src":"2865:9:10"},"nativeSrc":"2865:21:10","nodeType":"YulFunctionCall","src":"2865:21:10"},"variableNames":[{"name":"result","nativeSrc":"2855:6:10","nodeType":"YulIdentifier","src":"2855:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2422,"isOffset":false,"isSlot":false,"src":"2807:3:10","valueSize":1},{"declaration":2425,"isOffset":false,"isSlot":false,"src":"2855:6:10","valueSize":1},{"declaration":2420,"isOffset":false,"isSlot":false,"src":"2837:4:10","valueSize":1}],"id":2427,"nodeType":"InlineAssembly","src":"2771:125:10"}]},"documentation":{"id":2418,"nodeType":"StructuredDocumentation","src":"2546:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2429,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"2638:13:10","nodeType":"FunctionDefinition","parameters":{"id":2423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2420,"mutability":"mutable","name":"slot","nameLocation":"2660:4:10","nodeType":"VariableDeclaration","scope":2429,"src":"2652:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2652:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2422,"mutability":"mutable","name":"key","nameLocation":"2674:3:10","nodeType":"VariableDeclaration","scope":2429,"src":"2666:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2421,"name":"address","nodeType":"ElementaryTypeName","src":"2666:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2651:27:10"},"returnParameters":{"id":2426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2425,"mutability":"mutable","name":"result","nameLocation":"2710:6:10","nodeType":"VariableDeclaration","scope":2429,"src":"2702:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2702:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2701:16:10"},"scope":2502,"src":"2629:273:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2440,"nodeType":"Block","src":"3077:184:10","statements":[{"AST":{"nativeSrc":"3139:116:10","nodeType":"YulBlock","src":"3139:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3160:4:10","nodeType":"YulLiteral","src":"3160:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"3166:3:10","nodeType":"YulIdentifier","src":"3166:3:10"}],"functionName":{"name":"mstore","nativeSrc":"3153:6:10","nodeType":"YulIdentifier","src":"3153:6:10"},"nativeSrc":"3153:17:10","nodeType":"YulFunctionCall","src":"3153:17:10"},"nativeSrc":"3153:17:10","nodeType":"YulExpressionStatement","src":"3153:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3190:4:10","nodeType":"YulLiteral","src":"3190:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3196:4:10","nodeType":"YulIdentifier","src":"3196:4:10"}],"functionName":{"name":"mstore","nativeSrc":"3183:6:10","nodeType":"YulIdentifier","src":"3183:6:10"},"nativeSrc":"3183:18:10","nodeType":"YulFunctionCall","src":"3183:18:10"},"nativeSrc":"3183:18:10","nodeType":"YulExpressionStatement","src":"3183:18:10"},{"nativeSrc":"3214:31:10","nodeType":"YulAssignment","src":"3214:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"3234:4:10","nodeType":"YulLiteral","src":"3234:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3240:4:10","nodeType":"YulLiteral","src":"3240:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3224:9:10","nodeType":"YulIdentifier","src":"3224:9:10"},"nativeSrc":"3224:21:10","nodeType":"YulFunctionCall","src":"3224:21:10"},"variableNames":[{"name":"result","nativeSrc":"3214:6:10","nodeType":"YulIdentifier","src":"3214:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2434,"isOffset":false,"isSlot":false,"src":"3166:3:10","valueSize":1},{"declaration":2437,"isOffset":false,"isSlot":false,"src":"3214:6:10","valueSize":1},{"declaration":2432,"isOffset":false,"isSlot":false,"src":"3196:4:10","valueSize":1}],"id":2439,"nodeType":"InlineAssembly","src":"3130:125:10"}]},"documentation":{"id":2430,"nodeType":"StructuredDocumentation","src":"2908:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2441,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3000:13:10","nodeType":"FunctionDefinition","parameters":{"id":2435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2432,"mutability":"mutable","name":"slot","nameLocation":"3022:4:10","nodeType":"VariableDeclaration","scope":2441,"src":"3014:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3014:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2434,"mutability":"mutable","name":"key","nameLocation":"3033:3:10","nodeType":"VariableDeclaration","scope":2441,"src":"3028:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2433,"name":"bool","nodeType":"ElementaryTypeName","src":"3028:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3013:24:10"},"returnParameters":{"id":2438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2437,"mutability":"mutable","name":"result","nameLocation":"3069:6:10","nodeType":"VariableDeclaration","scope":2441,"src":"3061:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3061:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3060:16:10"},"scope":2502,"src":"2991:270:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2452,"nodeType":"Block","src":"3439:184:10","statements":[{"AST":{"nativeSrc":"3501:116:10","nodeType":"YulBlock","src":"3501:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3522:4:10","nodeType":"YulLiteral","src":"3522:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"3528:3:10","nodeType":"YulIdentifier","src":"3528:3:10"}],"functionName":{"name":"mstore","nativeSrc":"3515:6:10","nodeType":"YulIdentifier","src":"3515:6:10"},"nativeSrc":"3515:17:10","nodeType":"YulFunctionCall","src":"3515:17:10"},"nativeSrc":"3515:17:10","nodeType":"YulExpressionStatement","src":"3515:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3552:4:10","nodeType":"YulLiteral","src":"3552:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3558:4:10","nodeType":"YulIdentifier","src":"3558:4:10"}],"functionName":{"name":"mstore","nativeSrc":"3545:6:10","nodeType":"YulIdentifier","src":"3545:6:10"},"nativeSrc":"3545:18:10","nodeType":"YulFunctionCall","src":"3545:18:10"},"nativeSrc":"3545:18:10","nodeType":"YulExpressionStatement","src":"3545:18:10"},{"nativeSrc":"3576:31:10","nodeType":"YulAssignment","src":"3576:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"3596:4:10","nodeType":"YulLiteral","src":"3596:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3602:4:10","nodeType":"YulLiteral","src":"3602:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3586:9:10","nodeType":"YulIdentifier","src":"3586:9:10"},"nativeSrc":"3586:21:10","nodeType":"YulFunctionCall","src":"3586:21:10"},"variableNames":[{"name":"result","nativeSrc":"3576:6:10","nodeType":"YulIdentifier","src":"3576:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2446,"isOffset":false,"isSlot":false,"src":"3528:3:10","valueSize":1},{"declaration":2449,"isOffset":false,"isSlot":false,"src":"3576:6:10","valueSize":1},{"declaration":2444,"isOffset":false,"isSlot":false,"src":"3558:4:10","valueSize":1}],"id":2451,"nodeType":"InlineAssembly","src":"3492:125:10"}]},"documentation":{"id":2442,"nodeType":"StructuredDocumentation","src":"3267:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2453,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3359:13:10","nodeType":"FunctionDefinition","parameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2444,"mutability":"mutable","name":"slot","nameLocation":"3381:4:10","nodeType":"VariableDeclaration","scope":2453,"src":"3373:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3373:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2446,"mutability":"mutable","name":"key","nameLocation":"3395:3:10","nodeType":"VariableDeclaration","scope":2453,"src":"3387:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3387:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3372:27:10"},"returnParameters":{"id":2450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2449,"mutability":"mutable","name":"result","nameLocation":"3431:6:10","nodeType":"VariableDeclaration","scope":2453,"src":"3423:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3423:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3422:16:10"},"scope":2502,"src":"3350:273:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2464,"nodeType":"Block","src":"3801:184:10","statements":[{"AST":{"nativeSrc":"3863:116:10","nodeType":"YulBlock","src":"3863:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3884:4:10","nodeType":"YulLiteral","src":"3884:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"3890:3:10","nodeType":"YulIdentifier","src":"3890:3:10"}],"functionName":{"name":"mstore","nativeSrc":"3877:6:10","nodeType":"YulIdentifier","src":"3877:6:10"},"nativeSrc":"3877:17:10","nodeType":"YulFunctionCall","src":"3877:17:10"},"nativeSrc":"3877:17:10","nodeType":"YulExpressionStatement","src":"3877:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3914:4:10","nodeType":"YulLiteral","src":"3914:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3920:4:10","nodeType":"YulIdentifier","src":"3920:4:10"}],"functionName":{"name":"mstore","nativeSrc":"3907:6:10","nodeType":"YulIdentifier","src":"3907:6:10"},"nativeSrc":"3907:18:10","nodeType":"YulFunctionCall","src":"3907:18:10"},"nativeSrc":"3907:18:10","nodeType":"YulExpressionStatement","src":"3907:18:10"},{"nativeSrc":"3938:31:10","nodeType":"YulAssignment","src":"3938:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"3958:4:10","nodeType":"YulLiteral","src":"3958:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3964:4:10","nodeType":"YulLiteral","src":"3964:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3948:9:10","nodeType":"YulIdentifier","src":"3948:9:10"},"nativeSrc":"3948:21:10","nodeType":"YulFunctionCall","src":"3948:21:10"},"variableNames":[{"name":"result","nativeSrc":"3938:6:10","nodeType":"YulIdentifier","src":"3938:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2458,"isOffset":false,"isSlot":false,"src":"3890:3:10","valueSize":1},{"declaration":2461,"isOffset":false,"isSlot":false,"src":"3938:6:10","valueSize":1},{"declaration":2456,"isOffset":false,"isSlot":false,"src":"3920:4:10","valueSize":1}],"id":2463,"nodeType":"InlineAssembly","src":"3854:125:10"}]},"documentation":{"id":2454,"nodeType":"StructuredDocumentation","src":"3629:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2465,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3721:13:10","nodeType":"FunctionDefinition","parameters":{"id":2459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2456,"mutability":"mutable","name":"slot","nameLocation":"3743:4:10","nodeType":"VariableDeclaration","scope":2465,"src":"3735:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3735:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2458,"mutability":"mutable","name":"key","nameLocation":"3757:3:10","nodeType":"VariableDeclaration","scope":2465,"src":"3749:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2457,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3734:27:10"},"returnParameters":{"id":2462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2461,"mutability":"mutable","name":"result","nameLocation":"3793:6:10","nodeType":"VariableDeclaration","scope":2465,"src":"3785:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3785:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3784:16:10"},"scope":2502,"src":"3712:273:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2476,"nodeType":"Block","src":"4162:184:10","statements":[{"AST":{"nativeSrc":"4224:116:10","nodeType":"YulBlock","src":"4224:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4245:4:10","nodeType":"YulLiteral","src":"4245:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"4251:3:10","nodeType":"YulIdentifier","src":"4251:3:10"}],"functionName":{"name":"mstore","nativeSrc":"4238:6:10","nodeType":"YulIdentifier","src":"4238:6:10"},"nativeSrc":"4238:17:10","nodeType":"YulFunctionCall","src":"4238:17:10"},"nativeSrc":"4238:17:10","nodeType":"YulExpressionStatement","src":"4238:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4275:4:10","nodeType":"YulLiteral","src":"4275:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"4281:4:10","nodeType":"YulIdentifier","src":"4281:4:10"}],"functionName":{"name":"mstore","nativeSrc":"4268:6:10","nodeType":"YulIdentifier","src":"4268:6:10"},"nativeSrc":"4268:18:10","nodeType":"YulFunctionCall","src":"4268:18:10"},"nativeSrc":"4268:18:10","nodeType":"YulExpressionStatement","src":"4268:18:10"},{"nativeSrc":"4299:31:10","nodeType":"YulAssignment","src":"4299:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"4319:4:10","nodeType":"YulLiteral","src":"4319:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4325:4:10","nodeType":"YulLiteral","src":"4325:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"4309:9:10","nodeType":"YulIdentifier","src":"4309:9:10"},"nativeSrc":"4309:21:10","nodeType":"YulFunctionCall","src":"4309:21:10"},"variableNames":[{"name":"result","nativeSrc":"4299:6:10","nodeType":"YulIdentifier","src":"4299:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2470,"isOffset":false,"isSlot":false,"src":"4251:3:10","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":false,"src":"4299:6:10","valueSize":1},{"declaration":2468,"isOffset":false,"isSlot":false,"src":"4281:4:10","valueSize":1}],"id":2475,"nodeType":"InlineAssembly","src":"4215:125:10"}]},"documentation":{"id":2466,"nodeType":"StructuredDocumentation","src":"3991:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2477,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4083:13:10","nodeType":"FunctionDefinition","parameters":{"id":2471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2468,"mutability":"mutable","name":"slot","nameLocation":"4105:4:10","nodeType":"VariableDeclaration","scope":2477,"src":"4097:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4097:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2470,"mutability":"mutable","name":"key","nameLocation":"4118:3:10","nodeType":"VariableDeclaration","scope":2477,"src":"4111:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2469,"name":"int256","nodeType":"ElementaryTypeName","src":"4111:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4096:26:10"},"returnParameters":{"id":2474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"result","nameLocation":"4154:6:10","nodeType":"VariableDeclaration","scope":2477,"src":"4146:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4146:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4145:16:10"},"scope":2502,"src":"4074:272:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2488,"nodeType":"Block","src":"4530:353:10","statements":[{"AST":{"nativeSrc":"4592:285:10","nodeType":"YulBlock","src":"4592:285:10","statements":[{"nativeSrc":"4606:24:10","nodeType":"YulVariableDeclaration","src":"4606:24:10","value":{"arguments":[{"name":"key","nativeSrc":"4626:3:10","nodeType":"YulIdentifier","src":"4626:3:10"}],"functionName":{"name":"mload","nativeSrc":"4620:5:10","nodeType":"YulIdentifier","src":"4620:5:10"},"nativeSrc":"4620:10:10","nodeType":"YulFunctionCall","src":"4620:10:10"},"variables":[{"name":"length","nativeSrc":"4610:6:10","nodeType":"YulTypedName","src":"4610:6:10","type":""}]},{"nativeSrc":"4643:27:10","nodeType":"YulVariableDeclaration","src":"4643:27:10","value":{"arguments":[{"name":"key","nativeSrc":"4660:3:10","nodeType":"YulIdentifier","src":"4660:3:10"},{"kind":"number","nativeSrc":"4665:4:10","nodeType":"YulLiteral","src":"4665:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4656:3:10","nodeType":"YulIdentifier","src":"4656:3:10"},"nativeSrc":"4656:14:10","nodeType":"YulFunctionCall","src":"4656:14:10"},"variables":[{"name":"begin","nativeSrc":"4647:5:10","nodeType":"YulTypedName","src":"4647:5:10","type":""}]},{"nativeSrc":"4683:29:10","nodeType":"YulVariableDeclaration","src":"4683:29:10","value":{"arguments":[{"name":"begin","nativeSrc":"4698:5:10","nodeType":"YulIdentifier","src":"4698:5:10"},{"name":"length","nativeSrc":"4705:6:10","nodeType":"YulIdentifier","src":"4705:6:10"}],"functionName":{"name":"add","nativeSrc":"4694:3:10","nodeType":"YulIdentifier","src":"4694:3:10"},"nativeSrc":"4694:18:10","nodeType":"YulFunctionCall","src":"4694:18:10"},"variables":[{"name":"end","nativeSrc":"4687:3:10","nodeType":"YulTypedName","src":"4687:3:10","type":""}]},{"nativeSrc":"4725:23:10","nodeType":"YulVariableDeclaration","src":"4725:23:10","value":{"arguments":[{"name":"end","nativeSrc":"4744:3:10","nodeType":"YulIdentifier","src":"4744:3:10"}],"functionName":{"name":"mload","nativeSrc":"4738:5:10","nodeType":"YulIdentifier","src":"4738:5:10"},"nativeSrc":"4738:10:10","nodeType":"YulFunctionCall","src":"4738:10:10"},"variables":[{"name":"cache","nativeSrc":"4729:5:10","nodeType":"YulTypedName","src":"4729:5:10","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4768:3:10","nodeType":"YulIdentifier","src":"4768:3:10"},{"name":"slot","nativeSrc":"4773:4:10","nodeType":"YulIdentifier","src":"4773:4:10"}],"functionName":{"name":"mstore","nativeSrc":"4761:6:10","nodeType":"YulIdentifier","src":"4761:6:10"},"nativeSrc":"4761:17:10","nodeType":"YulFunctionCall","src":"4761:17:10"},"nativeSrc":"4761:17:10","nodeType":"YulExpressionStatement","src":"4761:17:10"},{"nativeSrc":"4791:45:10","nodeType":"YulAssignment","src":"4791:45:10","value":{"arguments":[{"name":"begin","nativeSrc":"4811:5:10","nodeType":"YulIdentifier","src":"4811:5:10"},{"arguments":[{"name":"length","nativeSrc":"4822:6:10","nodeType":"YulIdentifier","src":"4822:6:10"},{"kind":"number","nativeSrc":"4830:4:10","nodeType":"YulLiteral","src":"4830:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4818:3:10","nodeType":"YulIdentifier","src":"4818:3:10"},"nativeSrc":"4818:17:10","nodeType":"YulFunctionCall","src":"4818:17:10"}],"functionName":{"name":"keccak256","nativeSrc":"4801:9:10","nodeType":"YulIdentifier","src":"4801:9:10"},"nativeSrc":"4801:35:10","nodeType":"YulFunctionCall","src":"4801:35:10"},"variableNames":[{"name":"result","nativeSrc":"4791:6:10","nodeType":"YulIdentifier","src":"4791:6:10"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4856:3:10","nodeType":"YulIdentifier","src":"4856:3:10"},{"name":"cache","nativeSrc":"4861:5:10","nodeType":"YulIdentifier","src":"4861:5:10"}],"functionName":{"name":"mstore","nativeSrc":"4849:6:10","nodeType":"YulIdentifier","src":"4849:6:10"},"nativeSrc":"4849:18:10","nodeType":"YulFunctionCall","src":"4849:18:10"},"nativeSrc":"4849:18:10","nodeType":"YulExpressionStatement","src":"4849:18:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2482,"isOffset":false,"isSlot":false,"src":"4626:3:10","valueSize":1},{"declaration":2482,"isOffset":false,"isSlot":false,"src":"4660:3:10","valueSize":1},{"declaration":2485,"isOffset":false,"isSlot":false,"src":"4791:6:10","valueSize":1},{"declaration":2480,"isOffset":false,"isSlot":false,"src":"4773:4:10","valueSize":1}],"id":2487,"nodeType":"InlineAssembly","src":"4583:294:10"}]},"documentation":{"id":2478,"nodeType":"StructuredDocumentation","src":"4352:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2489,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4444:13:10","nodeType":"FunctionDefinition","parameters":{"id":2483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2480,"mutability":"mutable","name":"slot","nameLocation":"4466:4:10","nodeType":"VariableDeclaration","scope":2489,"src":"4458:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4458:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2482,"mutability":"mutable","name":"key","nameLocation":"4486:3:10","nodeType":"VariableDeclaration","scope":2489,"src":"4472:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2481,"name":"string","nodeType":"ElementaryTypeName","src":"4472:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4457:33:10"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"mutability":"mutable","name":"result","nameLocation":"4522:6:10","nodeType":"VariableDeclaration","scope":2489,"src":"4514:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4514:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4513:16:10"},"scope":2502,"src":"4435:448:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2500,"nodeType":"Block","src":"5066:353:10","statements":[{"AST":{"nativeSrc":"5128:285:10","nodeType":"YulBlock","src":"5128:285:10","statements":[{"nativeSrc":"5142:24:10","nodeType":"YulVariableDeclaration","src":"5142:24:10","value":{"arguments":[{"name":"key","nativeSrc":"5162:3:10","nodeType":"YulIdentifier","src":"5162:3:10"}],"functionName":{"name":"mload","nativeSrc":"5156:5:10","nodeType":"YulIdentifier","src":"5156:5:10"},"nativeSrc":"5156:10:10","nodeType":"YulFunctionCall","src":"5156:10:10"},"variables":[{"name":"length","nativeSrc":"5146:6:10","nodeType":"YulTypedName","src":"5146:6:10","type":""}]},{"nativeSrc":"5179:27:10","nodeType":"YulVariableDeclaration","src":"5179:27:10","value":{"arguments":[{"name":"key","nativeSrc":"5196:3:10","nodeType":"YulIdentifier","src":"5196:3:10"},{"kind":"number","nativeSrc":"5201:4:10","nodeType":"YulLiteral","src":"5201:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5192:3:10","nodeType":"YulIdentifier","src":"5192:3:10"},"nativeSrc":"5192:14:10","nodeType":"YulFunctionCall","src":"5192:14:10"},"variables":[{"name":"begin","nativeSrc":"5183:5:10","nodeType":"YulTypedName","src":"5183:5:10","type":""}]},{"nativeSrc":"5219:29:10","nodeType":"YulVariableDeclaration","src":"5219:29:10","value":{"arguments":[{"name":"begin","nativeSrc":"5234:5:10","nodeType":"YulIdentifier","src":"5234:5:10"},{"name":"length","nativeSrc":"5241:6:10","nodeType":"YulIdentifier","src":"5241:6:10"}],"functionName":{"name":"add","nativeSrc":"5230:3:10","nodeType":"YulIdentifier","src":"5230:3:10"},"nativeSrc":"5230:18:10","nodeType":"YulFunctionCall","src":"5230:18:10"},"variables":[{"name":"end","nativeSrc":"5223:3:10","nodeType":"YulTypedName","src":"5223:3:10","type":""}]},{"nativeSrc":"5261:23:10","nodeType":"YulVariableDeclaration","src":"5261:23:10","value":{"arguments":[{"name":"end","nativeSrc":"5280:3:10","nodeType":"YulIdentifier","src":"5280:3:10"}],"functionName":{"name":"mload","nativeSrc":"5274:5:10","nodeType":"YulIdentifier","src":"5274:5:10"},"nativeSrc":"5274:10:10","nodeType":"YulFunctionCall","src":"5274:10:10"},"variables":[{"name":"cache","nativeSrc":"5265:5:10","nodeType":"YulTypedName","src":"5265:5:10","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5304:3:10","nodeType":"YulIdentifier","src":"5304:3:10"},{"name":"slot","nativeSrc":"5309:4:10","nodeType":"YulIdentifier","src":"5309:4:10"}],"functionName":{"name":"mstore","nativeSrc":"5297:6:10","nodeType":"YulIdentifier","src":"5297:6:10"},"nativeSrc":"5297:17:10","nodeType":"YulFunctionCall","src":"5297:17:10"},"nativeSrc":"5297:17:10","nodeType":"YulExpressionStatement","src":"5297:17:10"},{"nativeSrc":"5327:45:10","nodeType":"YulAssignment","src":"5327:45:10","value":{"arguments":[{"name":"begin","nativeSrc":"5347:5:10","nodeType":"YulIdentifier","src":"5347:5:10"},{"arguments":[{"name":"length","nativeSrc":"5358:6:10","nodeType":"YulIdentifier","src":"5358:6:10"},{"kind":"number","nativeSrc":"5366:4:10","nodeType":"YulLiteral","src":"5366:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5354:3:10","nodeType":"YulIdentifier","src":"5354:3:10"},"nativeSrc":"5354:17:10","nodeType":"YulFunctionCall","src":"5354:17:10"}],"functionName":{"name":"keccak256","nativeSrc":"5337:9:10","nodeType":"YulIdentifier","src":"5337:9:10"},"nativeSrc":"5337:35:10","nodeType":"YulFunctionCall","src":"5337:35:10"},"variableNames":[{"name":"result","nativeSrc":"5327:6:10","nodeType":"YulIdentifier","src":"5327:6:10"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5392:3:10","nodeType":"YulIdentifier","src":"5392:3:10"},{"name":"cache","nativeSrc":"5397:5:10","nodeType":"YulIdentifier","src":"5397:5:10"}],"functionName":{"name":"mstore","nativeSrc":"5385:6:10","nodeType":"YulIdentifier","src":"5385:6:10"},"nativeSrc":"5385:18:10","nodeType":"YulFunctionCall","src":"5385:18:10"},"nativeSrc":"5385:18:10","nodeType":"YulExpressionStatement","src":"5385:18:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2494,"isOffset":false,"isSlot":false,"src":"5162:3:10","valueSize":1},{"declaration":2494,"isOffset":false,"isSlot":false,"src":"5196:3:10","valueSize":1},{"declaration":2497,"isOffset":false,"isSlot":false,"src":"5327:6:10","valueSize":1},{"declaration":2492,"isOffset":false,"isSlot":false,"src":"5309:4:10","valueSize":1}],"id":2499,"nodeType":"InlineAssembly","src":"5119:294:10"}]},"documentation":{"id":2490,"nodeType":"StructuredDocumentation","src":"4889:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2501,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4981:13:10","nodeType":"FunctionDefinition","parameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2492,"mutability":"mutable","name":"slot","nameLocation":"5003:4:10","nodeType":"VariableDeclaration","scope":2501,"src":"4995:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4995:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2494,"mutability":"mutable","name":"key","nameLocation":"5022:3:10","nodeType":"VariableDeclaration","scope":2501,"src":"5009:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2493,"name":"bytes","nodeType":"ElementaryTypeName","src":"5009:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4994:32:10"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"result","nameLocation":"5058:6:10","nodeType":"VariableDeclaration","scope":2501,"src":"5050:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5050:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5049:16:10"},"scope":2502,"src":"4972:447:10","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2503,"src":"1493:3928:10","usedErrors":[],"usedEvents":[]}],"src":"124:5298:10"},"id":10},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[2821]},"id":2822,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2504,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"193:24:11"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":2505,"nodeType":"StructuredDocumentation","src":"219:1802:11","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n Since version 5.1, this library also support writing and reading value types to and from transient storage.\n * Example using transient storage:\n ```solidity\n contract Lock {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;\n modifier locked() {\n require(!_LOCK_SLOT.asBoolean().tload());\n _LOCK_SLOT.asBoolean().tstore(true);\n _;\n _LOCK_SLOT.asBoolean().tstore(false);\n }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."},"fullyImplemented":true,"id":2821,"linearizedBaseContracts":[2821],"name":"StorageSlot","nameLocation":"2030:11:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":2508,"members":[{"constant":false,"id":2507,"mutability":"mutable","name":"value","nameLocation":"2085:5:11","nodeType":"VariableDeclaration","scope":2508,"src":"2077:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2506,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"2055:11:11","nodeType":"StructDefinition","scope":2821,"src":"2048:49:11","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":2511,"members":[{"constant":false,"id":2510,"mutability":"mutable","name":"value","nameLocation":"2137:5:11","nodeType":"VariableDeclaration","scope":2511,"src":"2132:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2509,"name":"bool","nodeType":"ElementaryTypeName","src":"2132:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"2110:11:11","nodeType":"StructDefinition","scope":2821,"src":"2103:46:11","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":2514,"members":[{"constant":false,"id":2513,"mutability":"mutable","name":"value","nameLocation":"2192:5:11","nodeType":"VariableDeclaration","scope":2514,"src":"2184:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2184:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"2162:11:11","nodeType":"StructDefinition","scope":2821,"src":"2155:49:11","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":2517,"members":[{"constant":false,"id":2516,"mutability":"mutable","name":"value","nameLocation":"2247:5:11","nodeType":"VariableDeclaration","scope":2517,"src":"2239:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2515,"name":"uint256","nodeType":"ElementaryTypeName","src":"2239:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"2217:11:11","nodeType":"StructDefinition","scope":2821,"src":"2210:49:11","visibility":"public"},{"canonicalName":"StorageSlot.Int256Slot","id":2520,"members":[{"constant":false,"id":2519,"mutability":"mutable","name":"value","nameLocation":"2300:5:11","nodeType":"VariableDeclaration","scope":2520,"src":"2293:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2518,"name":"int256","nodeType":"ElementaryTypeName","src":"2293:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"Int256Slot","nameLocation":"2272:10:11","nodeType":"StructDefinition","scope":2821,"src":"2265:47:11","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":2523,"members":[{"constant":false,"id":2522,"mutability":"mutable","name":"value","nameLocation":"2353:5:11","nodeType":"VariableDeclaration","scope":2523,"src":"2346:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2521,"name":"string","nodeType":"ElementaryTypeName","src":"2346:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"2325:10:11","nodeType":"StructDefinition","scope":2821,"src":"2318:47:11","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":2526,"members":[{"constant":false,"id":2525,"mutability":"mutable","name":"value","nameLocation":"2404:5:11","nodeType":"VariableDeclaration","scope":2526,"src":"2398:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2524,"name":"bytes","nodeType":"ElementaryTypeName","src":"2398:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"2378:9:11","nodeType":"StructDefinition","scope":2821,"src":"2371:45:11","visibility":"public"},{"body":{"id":2536,"nodeType":"Block","src":"2598:106:11","statements":[{"AST":{"nativeSrc":"2660:38:11","nodeType":"YulBlock","src":"2660:38:11","statements":[{"nativeSrc":"2674:14:11","nodeType":"YulAssignment","src":"2674:14:11","value":{"name":"slot","nativeSrc":"2684:4:11","nodeType":"YulIdentifier","src":"2684:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"2674:6:11","nodeType":"YulIdentifier","src":"2674:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2533,"isOffset":false,"isSlot":true,"src":"2674:6:11","suffix":"slot","valueSize":1},{"declaration":2529,"isOffset":false,"isSlot":false,"src":"2684:4:11","valueSize":1}],"id":2535,"nodeType":"InlineAssembly","src":"2651:47:11"}]},"documentation":{"id":2527,"nodeType":"StructuredDocumentation","src":"2422:87:11","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":2537,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"2523:14:11","nodeType":"FunctionDefinition","parameters":{"id":2530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2529,"mutability":"mutable","name":"slot","nameLocation":"2546:4:11","nodeType":"VariableDeclaration","scope":2537,"src":"2538:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2538:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2537:14:11"},"returnParameters":{"id":2534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2533,"mutability":"mutable","name":"r","nameLocation":"2595:1:11","nodeType":"VariableDeclaration","scope":2537,"src":"2575:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":2532,"nodeType":"UserDefinedTypeName","pathNode":{"id":2531,"name":"AddressSlot","nameLocations":["2575:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2508,"src":"2575:11:11"},"referencedDeclaration":2508,"src":"2575:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"2574:23:11"},"scope":2821,"src":"2514:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2547,"nodeType":"Block","src":"2886:106:11","statements":[{"AST":{"nativeSrc":"2948:38:11","nodeType":"YulBlock","src":"2948:38:11","statements":[{"nativeSrc":"2962:14:11","nodeType":"YulAssignment","src":"2962:14:11","value":{"name":"slot","nativeSrc":"2972:4:11","nodeType":"YulIdentifier","src":"2972:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"2962:6:11","nodeType":"YulIdentifier","src":"2962:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2544,"isOffset":false,"isSlot":true,"src":"2962:6:11","suffix":"slot","valueSize":1},{"declaration":2540,"isOffset":false,"isSlot":false,"src":"2972:4:11","valueSize":1}],"id":2546,"nodeType":"InlineAssembly","src":"2939:47:11"}]},"documentation":{"id":2538,"nodeType":"StructuredDocumentation","src":"2710:87:11","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":2548,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2811:14:11","nodeType":"FunctionDefinition","parameters":{"id":2541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2540,"mutability":"mutable","name":"slot","nameLocation":"2834:4:11","nodeType":"VariableDeclaration","scope":2548,"src":"2826:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2826:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2825:14:11"},"returnParameters":{"id":2545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2544,"mutability":"mutable","name":"r","nameLocation":"2883:1:11","nodeType":"VariableDeclaration","scope":2548,"src":"2863:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2511_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":2543,"nodeType":"UserDefinedTypeName","pathNode":{"id":2542,"name":"BooleanSlot","nameLocations":["2863:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2511,"src":"2863:11:11"},"referencedDeclaration":2511,"src":"2863:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2511_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2862:23:11"},"scope":2821,"src":"2802:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2558,"nodeType":"Block","src":"3174:106:11","statements":[{"AST":{"nativeSrc":"3236:38:11","nodeType":"YulBlock","src":"3236:38:11","statements":[{"nativeSrc":"3250:14:11","nodeType":"YulAssignment","src":"3250:14:11","value":{"name":"slot","nativeSrc":"3260:4:11","nodeType":"YulIdentifier","src":"3260:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"3250:6:11","nodeType":"YulIdentifier","src":"3250:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2555,"isOffset":false,"isSlot":true,"src":"3250:6:11","suffix":"slot","valueSize":1},{"declaration":2551,"isOffset":false,"isSlot":false,"src":"3260:4:11","valueSize":1}],"id":2557,"nodeType":"InlineAssembly","src":"3227:47:11"}]},"documentation":{"id":2549,"nodeType":"StructuredDocumentation","src":"2998:87:11","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":2559,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"3099:14:11","nodeType":"FunctionDefinition","parameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2551,"mutability":"mutable","name":"slot","nameLocation":"3122:4:11","nodeType":"VariableDeclaration","scope":2559,"src":"3114:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3114:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3113:14:11"},"returnParameters":{"id":2556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2555,"mutability":"mutable","name":"r","nameLocation":"3171:1:11","nodeType":"VariableDeclaration","scope":2559,"src":"3151:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":2554,"nodeType":"UserDefinedTypeName","pathNode":{"id":2553,"name":"Bytes32Slot","nameLocations":["3151:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2514,"src":"3151:11:11"},"referencedDeclaration":2514,"src":"3151:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"3150:23:11"},"scope":2821,"src":"3090:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2569,"nodeType":"Block","src":"3462:106:11","statements":[{"AST":{"nativeSrc":"3524:38:11","nodeType":"YulBlock","src":"3524:38:11","statements":[{"nativeSrc":"3538:14:11","nodeType":"YulAssignment","src":"3538:14:11","value":{"name":"slot","nativeSrc":"3548:4:11","nodeType":"YulIdentifier","src":"3548:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"3538:6:11","nodeType":"YulIdentifier","src":"3538:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2566,"isOffset":false,"isSlot":true,"src":"3538:6:11","suffix":"slot","valueSize":1},{"declaration":2562,"isOffset":false,"isSlot":false,"src":"3548:4:11","valueSize":1}],"id":2568,"nodeType":"InlineAssembly","src":"3515:47:11"}]},"documentation":{"id":2560,"nodeType":"StructuredDocumentation","src":"3286:87:11","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":2570,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"3387:14:11","nodeType":"FunctionDefinition","parameters":{"id":2563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2562,"mutability":"mutable","name":"slot","nameLocation":"3410:4:11","nodeType":"VariableDeclaration","scope":2570,"src":"3402:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3402:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3401:14:11"},"returnParameters":{"id":2567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2566,"mutability":"mutable","name":"r","nameLocation":"3459:1:11","nodeType":"VariableDeclaration","scope":2570,"src":"3439:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":2565,"nodeType":"UserDefinedTypeName","pathNode":{"id":2564,"name":"Uint256Slot","nameLocations":["3439:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"3439:11:11"},"referencedDeclaration":2517,"src":"3439:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"3438:23:11"},"scope":2821,"src":"3378:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2580,"nodeType":"Block","src":"3747:106:11","statements":[{"AST":{"nativeSrc":"3809:38:11","nodeType":"YulBlock","src":"3809:38:11","statements":[{"nativeSrc":"3823:14:11","nodeType":"YulAssignment","src":"3823:14:11","value":{"name":"slot","nativeSrc":"3833:4:11","nodeType":"YulIdentifier","src":"3833:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"3823:6:11","nodeType":"YulIdentifier","src":"3823:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2577,"isOffset":false,"isSlot":true,"src":"3823:6:11","suffix":"slot","valueSize":1},{"declaration":2573,"isOffset":false,"isSlot":false,"src":"3833:4:11","valueSize":1}],"id":2579,"nodeType":"InlineAssembly","src":"3800:47:11"}]},"documentation":{"id":2571,"nodeType":"StructuredDocumentation","src":"3574:86:11","text":" @dev Returns an `Int256Slot` with member `value` located at `slot`."},"id":2581,"implemented":true,"kind":"function","modifiers":[],"name":"getInt256Slot","nameLocation":"3674:13:11","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2573,"mutability":"mutable","name":"slot","nameLocation":"3696:4:11","nodeType":"VariableDeclaration","scope":2581,"src":"3688:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3688:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3687:14:11"},"returnParameters":{"id":2578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2577,"mutability":"mutable","name":"r","nameLocation":"3744:1:11","nodeType":"VariableDeclaration","scope":2581,"src":"3725:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$2520_storage_ptr","typeString":"struct StorageSlot.Int256Slot"},"typeName":{"id":2576,"nodeType":"UserDefinedTypeName","pathNode":{"id":2575,"name":"Int256Slot","nameLocations":["3725:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":2520,"src":"3725:10:11"},"referencedDeclaration":2520,"src":"3725:10:11","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$2520_storage_ptr","typeString":"struct StorageSlot.Int256Slot"}},"visibility":"internal"}],"src":"3724:22:11"},"scope":2821,"src":"3665:188:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2591,"nodeType":"Block","src":"4032:106:11","statements":[{"AST":{"nativeSrc":"4094:38:11","nodeType":"YulBlock","src":"4094:38:11","statements":[{"nativeSrc":"4108:14:11","nodeType":"YulAssignment","src":"4108:14:11","value":{"name":"slot","nativeSrc":"4118:4:11","nodeType":"YulIdentifier","src":"4118:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"4108:6:11","nodeType":"YulIdentifier","src":"4108:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2588,"isOffset":false,"isSlot":true,"src":"4108:6:11","suffix":"slot","valueSize":1},{"declaration":2584,"isOffset":false,"isSlot":false,"src":"4118:4:11","valueSize":1}],"id":2590,"nodeType":"InlineAssembly","src":"4085:47:11"}]},"documentation":{"id":2582,"nodeType":"StructuredDocumentation","src":"3859:86:11","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":2592,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3959:13:11","nodeType":"FunctionDefinition","parameters":{"id":2585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2584,"mutability":"mutable","name":"slot","nameLocation":"3981:4:11","nodeType":"VariableDeclaration","scope":2592,"src":"3973:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3973:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3972:14:11"},"returnParameters":{"id":2589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2588,"mutability":"mutable","name":"r","nameLocation":"4029:1:11","nodeType":"VariableDeclaration","scope":2592,"src":"4010:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2587,"nodeType":"UserDefinedTypeName","pathNode":{"id":2586,"name":"StringSlot","nameLocations":["4010:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":2523,"src":"4010:10:11"},"referencedDeclaration":2523,"src":"4010:10:11","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"4009:22:11"},"scope":2821,"src":"3950:188:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2602,"nodeType":"Block","src":"4340:112:11","statements":[{"AST":{"nativeSrc":"4402:44:11","nodeType":"YulBlock","src":"4402:44:11","statements":[{"nativeSrc":"4416:20:11","nodeType":"YulAssignment","src":"4416:20:11","value":{"name":"store.slot","nativeSrc":"4426:10:11","nodeType":"YulIdentifier","src":"4426:10:11"},"variableNames":[{"name":"r.slot","nativeSrc":"4416:6:11","nodeType":"YulIdentifier","src":"4416:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2599,"isOffset":false,"isSlot":true,"src":"4416:6:11","suffix":"slot","valueSize":1},{"declaration":2595,"isOffset":false,"isSlot":true,"src":"4426:10:11","suffix":"slot","valueSize":1}],"id":2601,"nodeType":"InlineAssembly","src":"4393:53:11"}]},"documentation":{"id":2593,"nodeType":"StructuredDocumentation","src":"4144:101:11","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":2603,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"4259:13:11","nodeType":"FunctionDefinition","parameters":{"id":2596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2595,"mutability":"mutable","name":"store","nameLocation":"4288:5:11","nodeType":"VariableDeclaration","scope":2603,"src":"4273:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2594,"name":"string","nodeType":"ElementaryTypeName","src":"4273:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4272:22:11"},"returnParameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2599,"mutability":"mutable","name":"r","nameLocation":"4337:1:11","nodeType":"VariableDeclaration","scope":2603,"src":"4318:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2598,"nodeType":"UserDefinedTypeName","pathNode":{"id":2597,"name":"StringSlot","nameLocations":["4318:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":2523,"src":"4318:10:11"},"referencedDeclaration":2523,"src":"4318:10:11","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"4317:22:11"},"scope":2821,"src":"4250:202:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2613,"nodeType":"Block","src":"4628:106:11","statements":[{"AST":{"nativeSrc":"4690:38:11","nodeType":"YulBlock","src":"4690:38:11","statements":[{"nativeSrc":"4704:14:11","nodeType":"YulAssignment","src":"4704:14:11","value":{"name":"slot","nativeSrc":"4714:4:11","nodeType":"YulIdentifier","src":"4714:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"4704:6:11","nodeType":"YulIdentifier","src":"4704:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2610,"isOffset":false,"isSlot":true,"src":"4704:6:11","suffix":"slot","valueSize":1},{"declaration":2606,"isOffset":false,"isSlot":false,"src":"4714:4:11","valueSize":1}],"id":2612,"nodeType":"InlineAssembly","src":"4681:47:11"}]},"documentation":{"id":2604,"nodeType":"StructuredDocumentation","src":"4458:85:11","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":2614,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4557:12:11","nodeType":"FunctionDefinition","parameters":{"id":2607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2606,"mutability":"mutable","name":"slot","nameLocation":"4578:4:11","nodeType":"VariableDeclaration","scope":2614,"src":"4570:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2605,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4570:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4569:14:11"},"returnParameters":{"id":2611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2610,"mutability":"mutable","name":"r","nameLocation":"4625:1:11","nodeType":"VariableDeclaration","scope":2614,"src":"4607:19:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2609,"nodeType":"UserDefinedTypeName","pathNode":{"id":2608,"name":"BytesSlot","nameLocations":["4607:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"4607:9:11"},"referencedDeclaration":2526,"src":"4607:9:11","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4606:21:11"},"scope":2821,"src":"4548:186:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2624,"nodeType":"Block","src":"4931:112:11","statements":[{"AST":{"nativeSrc":"4993:44:11","nodeType":"YulBlock","src":"4993:44:11","statements":[{"nativeSrc":"5007:20:11","nodeType":"YulAssignment","src":"5007:20:11","value":{"name":"store.slot","nativeSrc":"5017:10:11","nodeType":"YulIdentifier","src":"5017:10:11"},"variableNames":[{"name":"r.slot","nativeSrc":"5007:6:11","nodeType":"YulIdentifier","src":"5007:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2621,"isOffset":false,"isSlot":true,"src":"5007:6:11","suffix":"slot","valueSize":1},{"declaration":2617,"isOffset":false,"isSlot":true,"src":"5017:10:11","suffix":"slot","valueSize":1}],"id":2623,"nodeType":"InlineAssembly","src":"4984:53:11"}]},"documentation":{"id":2615,"nodeType":"StructuredDocumentation","src":"4740:99:11","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":2625,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4853:12:11","nodeType":"FunctionDefinition","parameters":{"id":2618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2617,"mutability":"mutable","name":"store","nameLocation":"4880:5:11","nodeType":"VariableDeclaration","scope":2625,"src":"4866:19:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2616,"name":"bytes","nodeType":"ElementaryTypeName","src":"4866:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4865:21:11"},"returnParameters":{"id":2622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2621,"mutability":"mutable","name":"r","nameLocation":"4928:1:11","nodeType":"VariableDeclaration","scope":2625,"src":"4910:19:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2620,"nodeType":"UserDefinedTypeName","pathNode":{"id":2619,"name":"BytesSlot","nameLocations":["4910:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"4910:9:11"},"referencedDeclaration":2526,"src":"4910:9:11","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4909:21:11"},"scope":2821,"src":"4844:199:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.AddressSlotType","id":2627,"name":"AddressSlotType","nameLocation":"5128:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"5123:32:11","underlyingType":{"id":2626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5147:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2641,"nodeType":"Block","src":"5307:50:11","statements":[{"expression":{"arguments":[{"id":2638,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"5345:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2636,"name":"AddressSlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2627,"src":"5324:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_AddressSlotType_$2627_$","typeString":"type(StorageSlot.AddressSlotType)"}},"id":2637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5340:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"5324:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_AddressSlotType_$2627_$","typeString":"function (bytes32) pure returns (StorageSlot.AddressSlotType)"}},"id":2639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5324:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"functionReturnParameters":2635,"id":2640,"nodeType":"Return","src":"5317:33:11"}]},"documentation":{"id":2628,"nodeType":"StructuredDocumentation","src":"5161:68:11","text":" @dev Cast an arbitrary slot to a AddressSlotType."},"id":2642,"implemented":true,"kind":"function","modifiers":[],"name":"asAddress","nameLocation":"5243:9:11","nodeType":"FunctionDefinition","parameters":{"id":2631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2630,"mutability":"mutable","name":"slot","nameLocation":"5261:4:11","nodeType":"VariableDeclaration","scope":2642,"src":"5253:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5253:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5252:14:11"},"returnParameters":{"id":2635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2642,"src":"5290:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2633,"nodeType":"UserDefinedTypeName","pathNode":{"id":2632,"name":"AddressSlotType","nameLocations":["5290:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2627,"src":"5290:15:11"},"referencedDeclaration":2627,"src":"5290:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"}],"src":"5289:17:11"},"scope":2821,"src":"5234:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.BooleanSlotType","id":2644,"name":"BooleanSlotType","nameLocation":"5439:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"5434:32:11","underlyingType":{"id":2643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5458:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2658,"nodeType":"Block","src":"5618:50:11","statements":[{"expression":{"arguments":[{"id":2655,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2647,"src":"5656:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2653,"name":"BooleanSlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2644,"src":"5635:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BooleanSlotType_$2644_$","typeString":"type(StorageSlot.BooleanSlotType)"}},"id":2654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5651:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"5635:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlotType_$2644_$","typeString":"function (bytes32) pure returns (StorageSlot.BooleanSlotType)"}},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5635:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"functionReturnParameters":2652,"id":2657,"nodeType":"Return","src":"5628:33:11"}]},"documentation":{"id":2645,"nodeType":"StructuredDocumentation","src":"5472:68:11","text":" @dev Cast an arbitrary slot to a BooleanSlotType."},"id":2659,"implemented":true,"kind":"function","modifiers":[],"name":"asBoolean","nameLocation":"5554:9:11","nodeType":"FunctionDefinition","parameters":{"id":2648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2647,"mutability":"mutable","name":"slot","nameLocation":"5572:4:11","nodeType":"VariableDeclaration","scope":2659,"src":"5564:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5564:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5563:14:11"},"returnParameters":{"id":2652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2659,"src":"5601:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2650,"nodeType":"UserDefinedTypeName","pathNode":{"id":2649,"name":"BooleanSlotType","nameLocations":["5601:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2644,"src":"5601:15:11"},"referencedDeclaration":2644,"src":"5601:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"}],"src":"5600:17:11"},"scope":2821,"src":"5545:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Bytes32SlotType","id":2661,"name":"Bytes32SlotType","nameLocation":"5753:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"5748:32:11","underlyingType":{"id":2660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5772:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2675,"nodeType":"Block","src":"5932:50:11","statements":[{"expression":{"arguments":[{"id":2672,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"5970:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2670,"name":"Bytes32SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"5949:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Bytes32SlotType_$2661_$","typeString":"type(StorageSlot.Bytes32SlotType)"}},"id":2671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5965:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"5949:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Bytes32SlotType_$2661_$","typeString":"function (bytes32) pure returns (StorageSlot.Bytes32SlotType)"}},"id":2673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5949:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"functionReturnParameters":2669,"id":2674,"nodeType":"Return","src":"5942:33:11"}]},"documentation":{"id":2662,"nodeType":"StructuredDocumentation","src":"5786:68:11","text":" @dev Cast an arbitrary slot to a Bytes32SlotType."},"id":2676,"implemented":true,"kind":"function","modifiers":[],"name":"asBytes32","nameLocation":"5868:9:11","nodeType":"FunctionDefinition","parameters":{"id":2665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2664,"mutability":"mutable","name":"slot","nameLocation":"5886:4:11","nodeType":"VariableDeclaration","scope":2676,"src":"5878:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5878:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5877:14:11"},"returnParameters":{"id":2669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2676,"src":"5915:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2667,"nodeType":"UserDefinedTypeName","pathNode":{"id":2666,"name":"Bytes32SlotType","nameLocations":["5915:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2661,"src":"5915:15:11"},"referencedDeclaration":2661,"src":"5915:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"}],"src":"5914:17:11"},"scope":2821,"src":"5859:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Uint256SlotType","id":2678,"name":"Uint256SlotType","nameLocation":"6067:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"6062:32:11","underlyingType":{"id":2677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6086:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2692,"nodeType":"Block","src":"6246:50:11","statements":[{"expression":{"arguments":[{"id":2689,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6284:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2687,"name":"Uint256SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"6263:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Uint256SlotType_$2678_$","typeString":"type(StorageSlot.Uint256SlotType)"}},"id":2688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6279:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"6263:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Uint256SlotType_$2678_$","typeString":"function (bytes32) pure returns (StorageSlot.Uint256SlotType)"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6263:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"functionReturnParameters":2686,"id":2691,"nodeType":"Return","src":"6256:33:11"}]},"documentation":{"id":2679,"nodeType":"StructuredDocumentation","src":"6100:68:11","text":" @dev Cast an arbitrary slot to a Uint256SlotType."},"id":2693,"implemented":true,"kind":"function","modifiers":[],"name":"asUint256","nameLocation":"6182:9:11","nodeType":"FunctionDefinition","parameters":{"id":2682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2681,"mutability":"mutable","name":"slot","nameLocation":"6200:4:11","nodeType":"VariableDeclaration","scope":2693,"src":"6192:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6192:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6191:14:11"},"returnParameters":{"id":2686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2693,"src":"6229:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2684,"nodeType":"UserDefinedTypeName","pathNode":{"id":2683,"name":"Uint256SlotType","nameLocations":["6229:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2678,"src":"6229:15:11"},"referencedDeclaration":2678,"src":"6229:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"}],"src":"6228:17:11"},"scope":2821,"src":"6173:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Int256SlotType","id":2695,"name":"Int256SlotType","nameLocation":"6380:14:11","nodeType":"UserDefinedValueTypeDefinition","src":"6375:31:11","underlyingType":{"id":2694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6398:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2709,"nodeType":"Block","src":"6555:49:11","statements":[{"expression":{"arguments":[{"id":2706,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"6592:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2704,"name":"Int256SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"6572:14:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Int256SlotType_$2695_$","typeString":"type(StorageSlot.Int256SlotType)"}},"id":2705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6587:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"6572:19:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Int256SlotType_$2695_$","typeString":"function (bytes32) pure returns (StorageSlot.Int256SlotType)"}},"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6572:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"functionReturnParameters":2703,"id":2708,"nodeType":"Return","src":"6565:32:11"}]},"documentation":{"id":2696,"nodeType":"StructuredDocumentation","src":"6412:67:11","text":" @dev Cast an arbitrary slot to a Int256SlotType."},"id":2710,"implemented":true,"kind":"function","modifiers":[],"name":"asInt256","nameLocation":"6493:8:11","nodeType":"FunctionDefinition","parameters":{"id":2699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2698,"mutability":"mutable","name":"slot","nameLocation":"6510:4:11","nodeType":"VariableDeclaration","scope":2710,"src":"6502:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6502:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6501:14:11"},"returnParameters":{"id":2703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2710,"src":"6539:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2701,"nodeType":"UserDefinedTypeName","pathNode":{"id":2700,"name":"Int256SlotType","nameLocations":["6539:14:11"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"6539:14:11"},"referencedDeclaration":2695,"src":"6539:14:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"}],"src":"6538:16:11"},"scope":2821,"src":"6484:120:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2720,"nodeType":"Block","src":"6774:112:11","statements":[{"AST":{"nativeSrc":"6836:44:11","nodeType":"YulBlock","src":"6836:44:11","statements":[{"nativeSrc":"6850:20:11","nodeType":"YulAssignment","src":"6850:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"6865:4:11","nodeType":"YulIdentifier","src":"6865:4:11"}],"functionName":{"name":"tload","nativeSrc":"6859:5:11","nodeType":"YulIdentifier","src":"6859:5:11"},"nativeSrc":"6859:11:11","nodeType":"YulFunctionCall","src":"6859:11:11"},"variableNames":[{"name":"value","nativeSrc":"6850:5:11","nodeType":"YulIdentifier","src":"6850:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2714,"isOffset":false,"isSlot":false,"src":"6865:4:11","valueSize":1},{"declaration":2717,"isOffset":false,"isSlot":false,"src":"6850:5:11","valueSize":1}],"id":2719,"nodeType":"InlineAssembly","src":"6827:53:11"}]},"documentation":{"id":2711,"nodeType":"StructuredDocumentation","src":"6610:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2721,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"6708:5:11","nodeType":"FunctionDefinition","parameters":{"id":2715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2714,"mutability":"mutable","name":"slot","nameLocation":"6730:4:11","nodeType":"VariableDeclaration","scope":2721,"src":"6714:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2713,"nodeType":"UserDefinedTypeName","pathNode":{"id":2712,"name":"AddressSlotType","nameLocations":["6714:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2627,"src":"6714:15:11"},"referencedDeclaration":2627,"src":"6714:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"}],"src":"6713:22:11"},"returnParameters":{"id":2718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2717,"mutability":"mutable","name":"value","nameLocation":"6767:5:11","nodeType":"VariableDeclaration","scope":2721,"src":"6759:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2716,"name":"address","nodeType":"ElementaryTypeName","src":"6759:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6758:15:11"},"scope":2821,"src":"6699:187:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2731,"nodeType":"Block","src":"7037:111:11","statements":[{"AST":{"nativeSrc":"7099:43:11","nodeType":"YulBlock","src":"7099:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"7120:4:11","nodeType":"YulIdentifier","src":"7120:4:11"},{"name":"value","nativeSrc":"7126:5:11","nodeType":"YulIdentifier","src":"7126:5:11"}],"functionName":{"name":"tstore","nativeSrc":"7113:6:11","nodeType":"YulIdentifier","src":"7113:6:11"},"nativeSrc":"7113:19:11","nodeType":"YulFunctionCall","src":"7113:19:11"},"nativeSrc":"7113:19:11","nodeType":"YulExpressionStatement","src":"7113:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2725,"isOffset":false,"isSlot":false,"src":"7120:4:11","valueSize":1},{"declaration":2727,"isOffset":false,"isSlot":false,"src":"7126:5:11","valueSize":1}],"id":2730,"nodeType":"InlineAssembly","src":"7090:52:11"}]},"documentation":{"id":2722,"nodeType":"StructuredDocumentation","src":"6892:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2732,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"6984:6:11","nodeType":"FunctionDefinition","parameters":{"id":2728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2725,"mutability":"mutable","name":"slot","nameLocation":"7007:4:11","nodeType":"VariableDeclaration","scope":2732,"src":"6991:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2724,"nodeType":"UserDefinedTypeName","pathNode":{"id":2723,"name":"AddressSlotType","nameLocations":["6991:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2627,"src":"6991:15:11"},"referencedDeclaration":2627,"src":"6991:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"},{"constant":false,"id":2727,"mutability":"mutable","name":"value","nameLocation":"7021:5:11","nodeType":"VariableDeclaration","scope":2732,"src":"7013:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2726,"name":"address","nodeType":"ElementaryTypeName","src":"7013:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6990:37:11"},"returnParameters":{"id":2729,"nodeType":"ParameterList","parameters":[],"src":"7037:0:11"},"scope":2821,"src":"6975:173:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2742,"nodeType":"Block","src":"7315:112:11","statements":[{"AST":{"nativeSrc":"7377:44:11","nodeType":"YulBlock","src":"7377:44:11","statements":[{"nativeSrc":"7391:20:11","nodeType":"YulAssignment","src":"7391:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"7406:4:11","nodeType":"YulIdentifier","src":"7406:4:11"}],"functionName":{"name":"tload","nativeSrc":"7400:5:11","nodeType":"YulIdentifier","src":"7400:5:11"},"nativeSrc":"7400:11:11","nodeType":"YulFunctionCall","src":"7400:11:11"},"variableNames":[{"name":"value","nativeSrc":"7391:5:11","nodeType":"YulIdentifier","src":"7391:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2736,"isOffset":false,"isSlot":false,"src":"7406:4:11","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"7391:5:11","valueSize":1}],"id":2741,"nodeType":"InlineAssembly","src":"7368:53:11"}]},"documentation":{"id":2733,"nodeType":"StructuredDocumentation","src":"7154:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2743,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"7252:5:11","nodeType":"FunctionDefinition","parameters":{"id":2737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2736,"mutability":"mutable","name":"slot","nameLocation":"7274:4:11","nodeType":"VariableDeclaration","scope":2743,"src":"7258:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2735,"nodeType":"UserDefinedTypeName","pathNode":{"id":2734,"name":"BooleanSlotType","nameLocations":["7258:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2644,"src":"7258:15:11"},"referencedDeclaration":2644,"src":"7258:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"}],"src":"7257:22:11"},"returnParameters":{"id":2740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2739,"mutability":"mutable","name":"value","nameLocation":"7308:5:11","nodeType":"VariableDeclaration","scope":2743,"src":"7303:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2738,"name":"bool","nodeType":"ElementaryTypeName","src":"7303:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7302:12:11"},"scope":2821,"src":"7243:184:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2753,"nodeType":"Block","src":"7575:111:11","statements":[{"AST":{"nativeSrc":"7637:43:11","nodeType":"YulBlock","src":"7637:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"7658:4:11","nodeType":"YulIdentifier","src":"7658:4:11"},{"name":"value","nativeSrc":"7664:5:11","nodeType":"YulIdentifier","src":"7664:5:11"}],"functionName":{"name":"tstore","nativeSrc":"7651:6:11","nodeType":"YulIdentifier","src":"7651:6:11"},"nativeSrc":"7651:19:11","nodeType":"YulFunctionCall","src":"7651:19:11"},"nativeSrc":"7651:19:11","nodeType":"YulExpressionStatement","src":"7651:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2747,"isOffset":false,"isSlot":false,"src":"7658:4:11","valueSize":1},{"declaration":2749,"isOffset":false,"isSlot":false,"src":"7664:5:11","valueSize":1}],"id":2752,"nodeType":"InlineAssembly","src":"7628:52:11"}]},"documentation":{"id":2744,"nodeType":"StructuredDocumentation","src":"7433:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2754,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"7525:6:11","nodeType":"FunctionDefinition","parameters":{"id":2750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2747,"mutability":"mutable","name":"slot","nameLocation":"7548:4:11","nodeType":"VariableDeclaration","scope":2754,"src":"7532:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2746,"nodeType":"UserDefinedTypeName","pathNode":{"id":2745,"name":"BooleanSlotType","nameLocations":["7532:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2644,"src":"7532:15:11"},"referencedDeclaration":2644,"src":"7532:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"},{"constant":false,"id":2749,"mutability":"mutable","name":"value","nameLocation":"7559:5:11","nodeType":"VariableDeclaration","scope":2754,"src":"7554:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2748,"name":"bool","nodeType":"ElementaryTypeName","src":"7554:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7531:34:11"},"returnParameters":{"id":2751,"nodeType":"ParameterList","parameters":[],"src":"7575:0:11"},"scope":2821,"src":"7516:170:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2764,"nodeType":"Block","src":"7856:112:11","statements":[{"AST":{"nativeSrc":"7918:44:11","nodeType":"YulBlock","src":"7918:44:11","statements":[{"nativeSrc":"7932:20:11","nodeType":"YulAssignment","src":"7932:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"7947:4:11","nodeType":"YulIdentifier","src":"7947:4:11"}],"functionName":{"name":"tload","nativeSrc":"7941:5:11","nodeType":"YulIdentifier","src":"7941:5:11"},"nativeSrc":"7941:11:11","nodeType":"YulFunctionCall","src":"7941:11:11"},"variableNames":[{"name":"value","nativeSrc":"7932:5:11","nodeType":"YulIdentifier","src":"7932:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2758,"isOffset":false,"isSlot":false,"src":"7947:4:11","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"7932:5:11","valueSize":1}],"id":2763,"nodeType":"InlineAssembly","src":"7909:53:11"}]},"documentation":{"id":2755,"nodeType":"StructuredDocumentation","src":"7692:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2765,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"7790:5:11","nodeType":"FunctionDefinition","parameters":{"id":2759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2758,"mutability":"mutable","name":"slot","nameLocation":"7812:4:11","nodeType":"VariableDeclaration","scope":2765,"src":"7796:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2757,"nodeType":"UserDefinedTypeName","pathNode":{"id":2756,"name":"Bytes32SlotType","nameLocations":["7796:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2661,"src":"7796:15:11"},"referencedDeclaration":2661,"src":"7796:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"}],"src":"7795:22:11"},"returnParameters":{"id":2762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2761,"mutability":"mutable","name":"value","nameLocation":"7849:5:11","nodeType":"VariableDeclaration","scope":2765,"src":"7841:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7841:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7840:15:11"},"scope":2821,"src":"7781:187:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2775,"nodeType":"Block","src":"8119:111:11","statements":[{"AST":{"nativeSrc":"8181:43:11","nodeType":"YulBlock","src":"8181:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"8202:4:11","nodeType":"YulIdentifier","src":"8202:4:11"},{"name":"value","nativeSrc":"8208:5:11","nodeType":"YulIdentifier","src":"8208:5:11"}],"functionName":{"name":"tstore","nativeSrc":"8195:6:11","nodeType":"YulIdentifier","src":"8195:6:11"},"nativeSrc":"8195:19:11","nodeType":"YulFunctionCall","src":"8195:19:11"},"nativeSrc":"8195:19:11","nodeType":"YulExpressionStatement","src":"8195:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2769,"isOffset":false,"isSlot":false,"src":"8202:4:11","valueSize":1},{"declaration":2771,"isOffset":false,"isSlot":false,"src":"8208:5:11","valueSize":1}],"id":2774,"nodeType":"InlineAssembly","src":"8172:52:11"}]},"documentation":{"id":2766,"nodeType":"StructuredDocumentation","src":"7974:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2776,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"8066:6:11","nodeType":"FunctionDefinition","parameters":{"id":2772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2769,"mutability":"mutable","name":"slot","nameLocation":"8089:4:11","nodeType":"VariableDeclaration","scope":2776,"src":"8073:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2768,"nodeType":"UserDefinedTypeName","pathNode":{"id":2767,"name":"Bytes32SlotType","nameLocations":["8073:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2661,"src":"8073:15:11"},"referencedDeclaration":2661,"src":"8073:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"},{"constant":false,"id":2771,"mutability":"mutable","name":"value","nameLocation":"8103:5:11","nodeType":"VariableDeclaration","scope":2776,"src":"8095:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8095:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8072:37:11"},"returnParameters":{"id":2773,"nodeType":"ParameterList","parameters":[],"src":"8119:0:11"},"scope":2821,"src":"8057:173:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2786,"nodeType":"Block","src":"8400:112:11","statements":[{"AST":{"nativeSrc":"8462:44:11","nodeType":"YulBlock","src":"8462:44:11","statements":[{"nativeSrc":"8476:20:11","nodeType":"YulAssignment","src":"8476:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"8491:4:11","nodeType":"YulIdentifier","src":"8491:4:11"}],"functionName":{"name":"tload","nativeSrc":"8485:5:11","nodeType":"YulIdentifier","src":"8485:5:11"},"nativeSrc":"8485:11:11","nodeType":"YulFunctionCall","src":"8485:11:11"},"variableNames":[{"name":"value","nativeSrc":"8476:5:11","nodeType":"YulIdentifier","src":"8476:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2780,"isOffset":false,"isSlot":false,"src":"8491:4:11","valueSize":1},{"declaration":2783,"isOffset":false,"isSlot":false,"src":"8476:5:11","valueSize":1}],"id":2785,"nodeType":"InlineAssembly","src":"8453:53:11"}]},"documentation":{"id":2777,"nodeType":"StructuredDocumentation","src":"8236:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2787,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"8334:5:11","nodeType":"FunctionDefinition","parameters":{"id":2781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2780,"mutability":"mutable","name":"slot","nameLocation":"8356:4:11","nodeType":"VariableDeclaration","scope":2787,"src":"8340:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2779,"nodeType":"UserDefinedTypeName","pathNode":{"id":2778,"name":"Uint256SlotType","nameLocations":["8340:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2678,"src":"8340:15:11"},"referencedDeclaration":2678,"src":"8340:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"}],"src":"8339:22:11"},"returnParameters":{"id":2784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2783,"mutability":"mutable","name":"value","nameLocation":"8393:5:11","nodeType":"VariableDeclaration","scope":2787,"src":"8385:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2782,"name":"uint256","nodeType":"ElementaryTypeName","src":"8385:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8384:15:11"},"scope":2821,"src":"8325:187:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2797,"nodeType":"Block","src":"8663:111:11","statements":[{"AST":{"nativeSrc":"8725:43:11","nodeType":"YulBlock","src":"8725:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"8746:4:11","nodeType":"YulIdentifier","src":"8746:4:11"},{"name":"value","nativeSrc":"8752:5:11","nodeType":"YulIdentifier","src":"8752:5:11"}],"functionName":{"name":"tstore","nativeSrc":"8739:6:11","nodeType":"YulIdentifier","src":"8739:6:11"},"nativeSrc":"8739:19:11","nodeType":"YulFunctionCall","src":"8739:19:11"},"nativeSrc":"8739:19:11","nodeType":"YulExpressionStatement","src":"8739:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2791,"isOffset":false,"isSlot":false,"src":"8746:4:11","valueSize":1},{"declaration":2793,"isOffset":false,"isSlot":false,"src":"8752:5:11","valueSize":1}],"id":2796,"nodeType":"InlineAssembly","src":"8716:52:11"}]},"documentation":{"id":2788,"nodeType":"StructuredDocumentation","src":"8518:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2798,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"8610:6:11","nodeType":"FunctionDefinition","parameters":{"id":2794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2791,"mutability":"mutable","name":"slot","nameLocation":"8633:4:11","nodeType":"VariableDeclaration","scope":2798,"src":"8617:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2790,"nodeType":"UserDefinedTypeName","pathNode":{"id":2789,"name":"Uint256SlotType","nameLocations":["8617:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2678,"src":"8617:15:11"},"referencedDeclaration":2678,"src":"8617:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"},{"constant":false,"id":2793,"mutability":"mutable","name":"value","nameLocation":"8647:5:11","nodeType":"VariableDeclaration","scope":2798,"src":"8639:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2792,"name":"uint256","nodeType":"ElementaryTypeName","src":"8639:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8616:37:11"},"returnParameters":{"id":2795,"nodeType":"ParameterList","parameters":[],"src":"8663:0:11"},"scope":2821,"src":"8601:173:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2808,"nodeType":"Block","src":"8942:112:11","statements":[{"AST":{"nativeSrc":"9004:44:11","nodeType":"YulBlock","src":"9004:44:11","statements":[{"nativeSrc":"9018:20:11","nodeType":"YulAssignment","src":"9018:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"9033:4:11","nodeType":"YulIdentifier","src":"9033:4:11"}],"functionName":{"name":"tload","nativeSrc":"9027:5:11","nodeType":"YulIdentifier","src":"9027:5:11"},"nativeSrc":"9027:11:11","nodeType":"YulFunctionCall","src":"9027:11:11"},"variableNames":[{"name":"value","nativeSrc":"9018:5:11","nodeType":"YulIdentifier","src":"9018:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2802,"isOffset":false,"isSlot":false,"src":"9033:4:11","valueSize":1},{"declaration":2805,"isOffset":false,"isSlot":false,"src":"9018:5:11","valueSize":1}],"id":2807,"nodeType":"InlineAssembly","src":"8995:53:11"}]},"documentation":{"id":2799,"nodeType":"StructuredDocumentation","src":"8780:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2809,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"8878:5:11","nodeType":"FunctionDefinition","parameters":{"id":2803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"slot","nameLocation":"8899:4:11","nodeType":"VariableDeclaration","scope":2809,"src":"8884:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2801,"nodeType":"UserDefinedTypeName","pathNode":{"id":2800,"name":"Int256SlotType","nameLocations":["8884:14:11"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"8884:14:11"},"referencedDeclaration":2695,"src":"8884:14:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"}],"src":"8883:21:11"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2805,"mutability":"mutable","name":"value","nameLocation":"8935:5:11","nodeType":"VariableDeclaration","scope":2809,"src":"8928:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2804,"name":"int256","nodeType":"ElementaryTypeName","src":"8928:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8927:14:11"},"scope":2821,"src":"8869:185:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2819,"nodeType":"Block","src":"9203:111:11","statements":[{"AST":{"nativeSrc":"9265:43:11","nodeType":"YulBlock","src":"9265:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"9286:4:11","nodeType":"YulIdentifier","src":"9286:4:11"},{"name":"value","nativeSrc":"9292:5:11","nodeType":"YulIdentifier","src":"9292:5:11"}],"functionName":{"name":"tstore","nativeSrc":"9279:6:11","nodeType":"YulIdentifier","src":"9279:6:11"},"nativeSrc":"9279:19:11","nodeType":"YulFunctionCall","src":"9279:19:11"},"nativeSrc":"9279:19:11","nodeType":"YulExpressionStatement","src":"9279:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2813,"isOffset":false,"isSlot":false,"src":"9286:4:11","valueSize":1},{"declaration":2815,"isOffset":false,"isSlot":false,"src":"9292:5:11","valueSize":1}],"id":2818,"nodeType":"InlineAssembly","src":"9256:52:11"}]},"documentation":{"id":2810,"nodeType":"StructuredDocumentation","src":"9060:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2820,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"9152:6:11","nodeType":"FunctionDefinition","parameters":{"id":2816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2813,"mutability":"mutable","name":"slot","nameLocation":"9174:4:11","nodeType":"VariableDeclaration","scope":2820,"src":"9159:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2812,"nodeType":"UserDefinedTypeName","pathNode":{"id":2811,"name":"Int256SlotType","nameLocations":["9159:14:11"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"9159:14:11"},"referencedDeclaration":2695,"src":"9159:14:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"},{"constant":false,"id":2815,"mutability":"mutable","name":"value","nameLocation":"9187:5:11","nodeType":"VariableDeclaration","scope":2820,"src":"9180:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2814,"name":"int256","nodeType":"ElementaryTypeName","src":"9180:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9158:35:11"},"returnParameters":{"id":2817,"nodeType":"ParameterList","parameters":[],"src":"9203:0:11"},"scope":2821,"src":"9143:171:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2822,"src":"2022:7294:11","usedErrors":[],"usedEvents":[]}],"src":"193:9124:11"},"id":11},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[2845],"IERC165":[2857]},"id":2846,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2823,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:12"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":2825,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2846,"sourceUnit":2858,"src":"140:38:12","symbolAliases":[{"foreign":{"id":2824,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"148:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2827,"name":"IERC165","nameLocations":["688:7:12"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"688:7:12"},"id":2828,"nodeType":"InheritanceSpecifier","src":"688:7:12"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":2826,"nodeType":"StructuredDocumentation","src":"180:479:12","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":2845,"linearizedBaseContracts":[2845,2857],"name":"ERC165","nameLocation":"678:6:12","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[2856],"body":{"id":2843,"nodeType":"Block","src":"845:64:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2836,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"862:11:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2838,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"882:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$2857_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$2857_$","typeString":"type(contract IERC165)"}],"id":2837,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"877:4:12","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"877:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$2857","typeString":"type(contract IERC165)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"891:11:12","memberName":"interfaceId","nodeType":"MemberAccess","src":"877:25:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"862:40:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2835,"id":2842,"nodeType":"Return","src":"855:47:12"}]},"documentation":{"id":2829,"nodeType":"StructuredDocumentation","src":"702:56:12","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2844,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"772:17:12","nodeType":"FunctionDefinition","parameters":{"id":2832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2831,"mutability":"mutable","name":"interfaceId","nameLocation":"797:11:12","nodeType":"VariableDeclaration","scope":2844,"src":"790:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2830,"name":"bytes4","nodeType":"ElementaryTypeName","src":"790:6:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"789:20:12"},"returnParameters":{"id":2835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2844,"src":"839:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2833,"name":"bool","nodeType":"ElementaryTypeName","src":"839:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"838:6:12"},"scope":2845,"src":"763:146:12","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2846,"src":"660:251:12","usedErrors":[],"usedEvents":[]}],"src":"114:798:12"},"id":12},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[2857]},"id":2858,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2847,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:13"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":2848,"nodeType":"StructuredDocumentation","src":"141:280:13","text":" @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":2857,"linearizedBaseContracts":[2857],"name":"IERC165","nameLocation":"432:7:13","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2849,"nodeType":"StructuredDocumentation","src":"446: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[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":2856,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"800:17:13","nodeType":"FunctionDefinition","parameters":{"id":2852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2851,"mutability":"mutable","name":"interfaceId","nameLocation":"825:11:13","nodeType":"VariableDeclaration","scope":2856,"src":"818:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2850,"name":"bytes4","nodeType":"ElementaryTypeName","src":"818:6:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"817:20:13"},"returnParameters":{"id":2855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2856,"src":"861:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2853,"name":"bool","nodeType":"ElementaryTypeName","src":"861:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"860:6:13"},"scope":2857,"src":"791:76:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2858,"src":"422:447:13","usedErrors":[],"usedEvents":[]}],"src":"115:755:13"},"id":13},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[4442],"Panic":[2372],"SafeCast":[6207]},"id":4443,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2859,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:14"},{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","file":"../Panic.sol","id":2861,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4443,"sourceUnit":2373,"src":"129:35:14","symbolAliases":[{"foreign":{"id":2860,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"137:5:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./SafeCast.sol","id":2863,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4443,"sourceUnit":6208,"src":"165:40:14","symbolAliases":[{"foreign":{"id":2862,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"173:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2864,"nodeType":"StructuredDocumentation","src":"207:73:14","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4442,"linearizedBaseContracts":[4442],"name":"Math","nameLocation":"289:4:14","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":2869,"members":[{"id":2865,"name":"Floor","nameLocation":"324:5:14","nodeType":"EnumValue","src":"324:5:14"},{"id":2866,"name":"Ceil","nameLocation":"367:4:14","nodeType":"EnumValue","src":"367:4:14"},{"id":2867,"name":"Trunc","nameLocation":"409:5:14","nodeType":"EnumValue","src":"409:5:14"},{"id":2868,"name":"Expand","nameLocation":"439:6:14","nodeType":"EnumValue","src":"439:6:14"}],"name":"Rounding","nameLocation":"305:8:14","nodeType":"EnumDefinition","src":"300:169:14"},{"body":{"id":2900,"nodeType":"Block","src":"677:140:14","statements":[{"id":2899,"nodeType":"UncheckedBlock","src":"687:124:14","statements":[{"assignments":[2882],"declarations":[{"constant":false,"id":2882,"mutability":"mutable","name":"c","nameLocation":"719:1:14","nodeType":"VariableDeclaration","scope":2899,"src":"711:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2881,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2886,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2883,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"723:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2884,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"727:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"723:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:17:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2887,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"746:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2888,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"750:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"746:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2894,"nodeType":"IfStatement","src":"742:28:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"761:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"768:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2892,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"760:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2880,"id":2893,"nodeType":"Return","src":"753:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"792:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2896,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"798:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2897,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"791:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2880,"id":2898,"nodeType":"Return","src":"784:16:14"}]}]},"documentation":{"id":2870,"nodeType":"StructuredDocumentation","src":"475:106:14","text":" @dev Returns the addition of two unsigned integers, with an success flag (no overflow)."},"id":2901,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"595:6:14","nodeType":"FunctionDefinition","parameters":{"id":2875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2872,"mutability":"mutable","name":"a","nameLocation":"610:1:14","nodeType":"VariableDeclaration","scope":2901,"src":"602:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2871,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2874,"mutability":"mutable","name":"b","nameLocation":"621:1:14","nodeType":"VariableDeclaration","scope":2901,"src":"613:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2873,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:22:14"},"returnParameters":{"id":2880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2877,"mutability":"mutable","name":"success","nameLocation":"652:7:14","nodeType":"VariableDeclaration","scope":2901,"src":"647:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2876,"name":"bool","nodeType":"ElementaryTypeName","src":"647:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2879,"mutability":"mutable","name":"result","nameLocation":"669:6:14","nodeType":"VariableDeclaration","scope":2901,"src":"661:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2878,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:30:14"},"scope":4442,"src":"586:231:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2928,"nodeType":"Block","src":"1028:113:14","statements":[{"id":2927,"nodeType":"UncheckedBlock","src":"1038:97:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2913,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2906,"src":"1066:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2914,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"1070:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1066:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2920,"nodeType":"IfStatement","src":"1062:28:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1081:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2918,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1080:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2912,"id":2919,"nodeType":"Return","src":"1073:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1112:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2922,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"1118:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2923,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2906,"src":"1122:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1118:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2925,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1111:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2912,"id":2926,"nodeType":"Return","src":"1104:20:14"}]}]},"documentation":{"id":2902,"nodeType":"StructuredDocumentation","src":"823:109:14","text":" @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow)."},"id":2929,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:14","nodeType":"FunctionDefinition","parameters":{"id":2907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2904,"mutability":"mutable","name":"a","nameLocation":"961:1:14","nodeType":"VariableDeclaration","scope":2929,"src":"953:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2903,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2906,"mutability":"mutable","name":"b","nameLocation":"972:1:14","nodeType":"VariableDeclaration","scope":2929,"src":"964:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2905,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:14"},"returnParameters":{"id":2912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2909,"mutability":"mutable","name":"success","nameLocation":"1003:7:14","nodeType":"VariableDeclaration","scope":2929,"src":"998:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2908,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2911,"mutability":"mutable","name":"result","nameLocation":"1020:6:14","nodeType":"VariableDeclaration","scope":2929,"src":"1012:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2910,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:30:14"},"scope":4442,"src":"937:204:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2970,"nodeType":"Block","src":"1355:417:14","statements":[{"id":2969,"nodeType":"UncheckedBlock","src":"1365:401:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2941,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"1623:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1623:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2948,"nodeType":"IfStatement","src":"1619:28:14","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":2944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1639:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":2945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2946,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1638:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2940,"id":2947,"nodeType":"Return","src":"1631:16:14"}},{"assignments":[2950],"declarations":[{"constant":false,"id":2950,"mutability":"mutable","name":"c","nameLocation":"1669:1:14","nodeType":"VariableDeclaration","scope":2969,"src":"1661:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2949,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2954,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2951,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"1673:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2952,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2934,"src":"1677:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1673:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1661:17:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2955,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2950,"src":"1696:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2956,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"1700:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2958,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2934,"src":"1705:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2964,"nodeType":"IfStatement","src":"1692:33:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1716:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1723:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1715:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2940,"id":2963,"nodeType":"Return","src":"1708:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1747:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2966,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2950,"src":"1753:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2967,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1746:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2940,"id":2968,"nodeType":"Return","src":"1739:16:14"}]}]},"documentation":{"id":2930,"nodeType":"StructuredDocumentation","src":"1147:112:14","text":" @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow)."},"id":2971,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1273:6:14","nodeType":"FunctionDefinition","parameters":{"id":2935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2932,"mutability":"mutable","name":"a","nameLocation":"1288:1:14","nodeType":"VariableDeclaration","scope":2971,"src":"1280:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2931,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2934,"mutability":"mutable","name":"b","nameLocation":"1299:1:14","nodeType":"VariableDeclaration","scope":2971,"src":"1291:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1279:22:14"},"returnParameters":{"id":2940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2937,"mutability":"mutable","name":"success","nameLocation":"1330:7:14","nodeType":"VariableDeclaration","scope":2971,"src":"1325:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2936,"name":"bool","nodeType":"ElementaryTypeName","src":"1325:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2939,"mutability":"mutable","name":"result","nameLocation":"1347:6:14","nodeType":"VariableDeclaration","scope":2971,"src":"1339:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2938,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1324:30:14"},"scope":4442,"src":"1264:508:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2998,"nodeType":"Block","src":"1987:114:14","statements":[{"id":2997,"nodeType":"UncheckedBlock","src":"1997:98:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2983,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"2025:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2030:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2025:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2990,"nodeType":"IfStatement","src":"2021:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2041:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2048:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2988,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2040:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2982,"id":2989,"nodeType":"Return","src":"2033:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2072:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2992,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2974,"src":"2078:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2993,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"2082:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2078:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2995,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2071:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2982,"id":2996,"nodeType":"Return","src":"2064:20:14"}]}]},"documentation":{"id":2972,"nodeType":"StructuredDocumentation","src":"1778:113:14","text":" @dev Returns the division of two unsigned integers, with a success flag (no division by zero)."},"id":2999,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1905:6:14","nodeType":"FunctionDefinition","parameters":{"id":2977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2974,"mutability":"mutable","name":"a","nameLocation":"1920:1:14","nodeType":"VariableDeclaration","scope":2999,"src":"1912:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2976,"mutability":"mutable","name":"b","nameLocation":"1931:1:14","nodeType":"VariableDeclaration","scope":2999,"src":"1923:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2975,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1911:22:14"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2979,"mutability":"mutable","name":"success","nameLocation":"1962:7:14","nodeType":"VariableDeclaration","scope":2999,"src":"1957:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2978,"name":"bool","nodeType":"ElementaryTypeName","src":"1957:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2981,"mutability":"mutable","name":"result","nameLocation":"1979:6:14","nodeType":"VariableDeclaration","scope":2999,"src":"1971:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2980,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1956:30:14"},"scope":4442,"src":"1896:205:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3026,"nodeType":"Block","src":"2326:114:14","statements":[{"id":3025,"nodeType":"UncheckedBlock","src":"2336:98:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3011,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3004,"src":"2364:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2369:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3018,"nodeType":"IfStatement","src":"2360:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2380:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2387:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3016,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2379:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3010,"id":3017,"nodeType":"Return","src":"2372:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":3019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2411:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3020,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"2417:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3021,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3004,"src":"2421:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2417:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2410:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3010,"id":3024,"nodeType":"Return","src":"2403:20:14"}]}]},"documentation":{"id":3000,"nodeType":"StructuredDocumentation","src":"2107:123:14","text":" @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)."},"id":3027,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2244:6:14","nodeType":"FunctionDefinition","parameters":{"id":3005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3002,"mutability":"mutable","name":"a","nameLocation":"2259:1:14","nodeType":"VariableDeclaration","scope":3027,"src":"2251:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3001,"name":"uint256","nodeType":"ElementaryTypeName","src":"2251:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3004,"mutability":"mutable","name":"b","nameLocation":"2270:1:14","nodeType":"VariableDeclaration","scope":3027,"src":"2262:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3003,"name":"uint256","nodeType":"ElementaryTypeName","src":"2262:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2250:22:14"},"returnParameters":{"id":3010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3007,"mutability":"mutable","name":"success","nameLocation":"2301:7:14","nodeType":"VariableDeclaration","scope":3027,"src":"2296:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3006,"name":"bool","nodeType":"ElementaryTypeName","src":"2296:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3009,"mutability":"mutable","name":"result","nameLocation":"2318:6:14","nodeType":"VariableDeclaration","scope":3027,"src":"2310:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3008,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2295:30:14"},"scope":4442,"src":"2235:205:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3053,"nodeType":"Block","src":"2912:207:14","statements":[{"id":3052,"nodeType":"UncheckedBlock","src":"2922:191:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3039,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3034,"src":"3060:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3040,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"3066:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3041,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3034,"src":"3070:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3066:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3065:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":3046,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"3091:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3044,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"3075:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3084:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"3075:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3075:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3065:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3064:38:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:42:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3038,"id":3051,"nodeType":"Return","src":"3053:49:14"}]}]},"documentation":{"id":3028,"nodeType":"StructuredDocumentation","src":"2446:374:14","text":" @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."},"id":3054,"implemented":true,"kind":"function","modifiers":[],"name":"ternary","nameLocation":"2834:7:14","nodeType":"FunctionDefinition","parameters":{"id":3035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3030,"mutability":"mutable","name":"condition","nameLocation":"2847:9:14","nodeType":"VariableDeclaration","scope":3054,"src":"2842:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3029,"name":"bool","nodeType":"ElementaryTypeName","src":"2842:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3032,"mutability":"mutable","name":"a","nameLocation":"2866:1:14","nodeType":"VariableDeclaration","scope":3054,"src":"2858:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3031,"name":"uint256","nodeType":"ElementaryTypeName","src":"2858:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3034,"mutability":"mutable","name":"b","nameLocation":"2877:1:14","nodeType":"VariableDeclaration","scope":3054,"src":"2869:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3033,"name":"uint256","nodeType":"ElementaryTypeName","src":"2869:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:38:14"},"returnParameters":{"id":3038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3054,"src":"2903:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3036,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2902:9:14"},"scope":4442,"src":"2825:294:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3072,"nodeType":"Block","src":"3256:44:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3065,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3057,"src":"3281:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3066,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3059,"src":"3285:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3281:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3068,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3057,"src":"3288:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3069,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3059,"src":"3291:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3064,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"3273:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3273:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3063,"id":3071,"nodeType":"Return","src":"3266:27:14"}]},"documentation":{"id":3055,"nodeType":"StructuredDocumentation","src":"3125:59:14","text":" @dev Returns the largest of two numbers."},"id":3073,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3198:3:14","nodeType":"FunctionDefinition","parameters":{"id":3060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3057,"mutability":"mutable","name":"a","nameLocation":"3210:1:14","nodeType":"VariableDeclaration","scope":3073,"src":"3202:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3056,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3059,"mutability":"mutable","name":"b","nameLocation":"3221:1:14","nodeType":"VariableDeclaration","scope":3073,"src":"3213:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3058,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3201:22:14"},"returnParameters":{"id":3063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3073,"src":"3247:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3061,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3246:9:14"},"scope":4442,"src":"3189:111:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3091,"nodeType":"Block","src":"3438:44:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3084,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3076,"src":"3463:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3085,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3078,"src":"3467:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3463:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3076,"src":"3470:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3088,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3078,"src":"3473:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3083,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"3455:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3082,"id":3090,"nodeType":"Return","src":"3448:27:14"}]},"documentation":{"id":3074,"nodeType":"StructuredDocumentation","src":"3306:60:14","text":" @dev Returns the smallest of two numbers."},"id":3092,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3380:3:14","nodeType":"FunctionDefinition","parameters":{"id":3079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3076,"mutability":"mutable","name":"a","nameLocation":"3392:1:14","nodeType":"VariableDeclaration","scope":3092,"src":"3384:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3078,"mutability":"mutable","name":"b","nameLocation":"3403:1:14","nodeType":"VariableDeclaration","scope":3092,"src":"3395:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3077,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3383:22:14"},"returnParameters":{"id":3082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3092,"src":"3429:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3080,"name":"uint256","nodeType":"ElementaryTypeName","src":"3429:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3428:9:14"},"scope":4442,"src":"3371:111:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3114,"nodeType":"Block","src":"3666:82:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3102,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"3721:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3103,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3725:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3721:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3105,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3720:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3106,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"3731:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3107,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3735:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3731:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3730:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":3110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3740:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3730:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3720:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3101,"id":3113,"nodeType":"Return","src":"3713:28:14"}]},"documentation":{"id":3093,"nodeType":"StructuredDocumentation","src":"3488:102:14","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":3115,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"3604:7:14","nodeType":"FunctionDefinition","parameters":{"id":3098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3095,"mutability":"mutable","name":"a","nameLocation":"3620:1:14","nodeType":"VariableDeclaration","scope":3115,"src":"3612:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3094,"name":"uint256","nodeType":"ElementaryTypeName","src":"3612:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3097,"mutability":"mutable","name":"b","nameLocation":"3631:1:14","nodeType":"VariableDeclaration","scope":3115,"src":"3623:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3623:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3611:22:14"},"returnParameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3115,"src":"3657:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3656:9:14"},"scope":4442,"src":"3595:153:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3155,"nodeType":"Block","src":"4040:633:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3125,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"4054:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4059:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4054:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3136,"nodeType":"IfStatement","src":"4050:150:14","trueBody":{"id":3135,"nodeType":"Block","src":"4062:138:14","statements":[{"expression":{"arguments":[{"expression":{"id":3131,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4166:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4172:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"4166:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3128,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4154:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4160:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"4154:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3134,"nodeType":"ExpressionStatement","src":"4154:35:14"}]}},{"id":3154,"nodeType":"UncheckedBlock","src":"4583:84:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3139,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"4630:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4634:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4630:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3137,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"4614:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"4614:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4614:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3143,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"4641:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4645:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4641:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3146,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4640:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3147,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"4650:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4640:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4654:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4640:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4639:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4614:42:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3124,"id":3153,"nodeType":"Return","src":"4607:49:14"}]}]},"documentation":{"id":3116,"nodeType":"StructuredDocumentation","src":"3754: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":3156,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3978:7:14","nodeType":"FunctionDefinition","parameters":{"id":3121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3118,"mutability":"mutable","name":"a","nameLocation":"3994:1:14","nodeType":"VariableDeclaration","scope":3156,"src":"3986:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3120,"mutability":"mutable","name":"b","nameLocation":"4005:1:14","nodeType":"VariableDeclaration","scope":3156,"src":"3997:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3119,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3985:22:14"},"returnParameters":{"id":3124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3156,"src":"4031:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3122,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4030:9:14"},"scope":4442,"src":"3969:704:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3292,"nodeType":"Block","src":"5094:4132:14","statements":[{"id":3291,"nodeType":"UncheckedBlock","src":"5104:4116:14","statements":[{"assignments":[3169],"declarations":[{"constant":false,"id":3169,"mutability":"mutable","name":"prod0","nameLocation":"5445:5:14","nodeType":"VariableDeclaration","scope":3291,"src":"5437:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3168,"name":"uint256","nodeType":"ElementaryTypeName","src":"5437:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3173,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3170,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3159,"src":"5453:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3171,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"5457:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5453:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5437:21:14"},{"assignments":[3175],"declarations":[{"constant":false,"id":3175,"mutability":"mutable","name":"prod1","nameLocation":"5525:5:14","nodeType":"VariableDeclaration","scope":3291,"src":"5517:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3174,"name":"uint256","nodeType":"ElementaryTypeName","src":"5517:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3176,"nodeType":"VariableDeclarationStatement","src":"5517:13:14"},{"AST":{"nativeSrc":"5597:122:14","nodeType":"YulBlock","src":"5597:122:14","statements":[{"nativeSrc":"5615:30:14","nodeType":"YulVariableDeclaration","src":"5615:30:14","value":{"arguments":[{"name":"x","nativeSrc":"5632:1:14","nodeType":"YulIdentifier","src":"5632:1:14"},{"name":"y","nativeSrc":"5635:1:14","nodeType":"YulIdentifier","src":"5635:1:14"},{"arguments":[{"kind":"number","nativeSrc":"5642:1:14","nodeType":"YulLiteral","src":"5642:1:14","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"5638:3:14","nodeType":"YulIdentifier","src":"5638:3:14"},"nativeSrc":"5638:6:14","nodeType":"YulFunctionCall","src":"5638:6:14"}],"functionName":{"name":"mulmod","nativeSrc":"5625:6:14","nodeType":"YulIdentifier","src":"5625:6:14"},"nativeSrc":"5625:20:14","nodeType":"YulFunctionCall","src":"5625:20:14"},"variables":[{"name":"mm","nativeSrc":"5619:2:14","nodeType":"YulTypedName","src":"5619:2:14","type":""}]},{"nativeSrc":"5662:43:14","nodeType":"YulAssignment","src":"5662:43:14","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"5679:2:14","nodeType":"YulIdentifier","src":"5679:2:14"},{"name":"prod0","nativeSrc":"5683:5:14","nodeType":"YulIdentifier","src":"5683:5:14"}],"functionName":{"name":"sub","nativeSrc":"5675:3:14","nodeType":"YulIdentifier","src":"5675:3:14"},"nativeSrc":"5675:14:14","nodeType":"YulFunctionCall","src":"5675:14:14"},{"arguments":[{"name":"mm","nativeSrc":"5694:2:14","nodeType":"YulIdentifier","src":"5694:2:14"},{"name":"prod0","nativeSrc":"5698:5:14","nodeType":"YulIdentifier","src":"5698:5:14"}],"functionName":{"name":"lt","nativeSrc":"5691:2:14","nodeType":"YulIdentifier","src":"5691:2:14"},"nativeSrc":"5691:13:14","nodeType":"YulFunctionCall","src":"5691:13:14"}],"functionName":{"name":"sub","nativeSrc":"5671:3:14","nodeType":"YulIdentifier","src":"5671:3:14"},"nativeSrc":"5671:34:14","nodeType":"YulFunctionCall","src":"5671:34:14"},"variableNames":[{"name":"prod1","nativeSrc":"5662:5:14","nodeType":"YulIdentifier","src":"5662:5:14"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3169,"isOffset":false,"isSlot":false,"src":"5683:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"5698:5:14","valueSize":1},{"declaration":3175,"isOffset":false,"isSlot":false,"src":"5662:5:14","valueSize":1},{"declaration":3159,"isOffset":false,"isSlot":false,"src":"5632:1:14","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"5635:1:14","valueSize":1}],"id":3177,"nodeType":"InlineAssembly","src":"5588:131:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3178,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3175,"src":"5800:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5809:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5800:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3186,"nodeType":"IfStatement","src":"5796:368:14","trueBody":{"id":3185,"nodeType":"Block","src":"5812:352:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3181,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"6130:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3182,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"6138:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6130:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3167,"id":3184,"nodeType":"Return","src":"6123:26:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3187,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"6274:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3188,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3175,"src":"6289:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6274:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3205,"nodeType":"IfStatement","src":"6270:143:14","trueBody":{"id":3204,"nodeType":"Block","src":"6296:117:14","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3194,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"6334:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6349:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6334:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":3197,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"6352:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6358:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"6352:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3199,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"6376:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6382:14:14","memberName":"UNDER_OVERFLOW","nodeType":"MemberAccess","referencedDeclaration":2335,"src":"6376:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3193,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"6326:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6326:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3190,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"6314:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6320:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"6314:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6314:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3203,"nodeType":"ExpressionStatement","src":"6314:84:14"}]}},{"assignments":[3207],"declarations":[{"constant":false,"id":3207,"mutability":"mutable","name":"remainder","nameLocation":"6676:9:14","nodeType":"VariableDeclaration","scope":3291,"src":"6668:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3206,"name":"uint256","nodeType":"ElementaryTypeName","src":"6668:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3208,"nodeType":"VariableDeclarationStatement","src":"6668:17:14"},{"AST":{"nativeSrc":"6708:291:14","nodeType":"YulBlock","src":"6708:291:14","statements":[{"nativeSrc":"6777:38:14","nodeType":"YulAssignment","src":"6777:38:14","value":{"arguments":[{"name":"x","nativeSrc":"6797:1:14","nodeType":"YulIdentifier","src":"6797:1:14"},{"name":"y","nativeSrc":"6800:1:14","nodeType":"YulIdentifier","src":"6800:1:14"},{"name":"denominator","nativeSrc":"6803:11:14","nodeType":"YulIdentifier","src":"6803:11:14"}],"functionName":{"name":"mulmod","nativeSrc":"6790:6:14","nodeType":"YulIdentifier","src":"6790:6:14"},"nativeSrc":"6790:25:14","nodeType":"YulFunctionCall","src":"6790:25:14"},"variableNames":[{"name":"remainder","nativeSrc":"6777:9:14","nodeType":"YulIdentifier","src":"6777:9:14"}]},{"nativeSrc":"6897:41:14","nodeType":"YulAssignment","src":"6897:41:14","value":{"arguments":[{"name":"prod1","nativeSrc":"6910:5:14","nodeType":"YulIdentifier","src":"6910:5:14"},{"arguments":[{"name":"remainder","nativeSrc":"6920:9:14","nodeType":"YulIdentifier","src":"6920:9:14"},{"name":"prod0","nativeSrc":"6931:5:14","nodeType":"YulIdentifier","src":"6931:5:14"}],"functionName":{"name":"gt","nativeSrc":"6917:2:14","nodeType":"YulIdentifier","src":"6917:2:14"},"nativeSrc":"6917:20:14","nodeType":"YulFunctionCall","src":"6917:20:14"}],"functionName":{"name":"sub","nativeSrc":"6906:3:14","nodeType":"YulIdentifier","src":"6906:3:14"},"nativeSrc":"6906:32:14","nodeType":"YulFunctionCall","src":"6906:32:14"},"variableNames":[{"name":"prod1","nativeSrc":"6897:5:14","nodeType":"YulIdentifier","src":"6897:5:14"}]},{"nativeSrc":"6955:30:14","nodeType":"YulAssignment","src":"6955:30:14","value":{"arguments":[{"name":"prod0","nativeSrc":"6968:5:14","nodeType":"YulIdentifier","src":"6968:5:14"},{"name":"remainder","nativeSrc":"6975:9:14","nodeType":"YulIdentifier","src":"6975:9:14"}],"functionName":{"name":"sub","nativeSrc":"6964:3:14","nodeType":"YulIdentifier","src":"6964:3:14"},"nativeSrc":"6964:21:14","nodeType":"YulFunctionCall","src":"6964:21:14"},"variableNames":[{"name":"prod0","nativeSrc":"6955:5:14","nodeType":"YulIdentifier","src":"6955:5:14"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3163,"isOffset":false,"isSlot":false,"src":"6803:11:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"6931:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"6955:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"6968:5:14","valueSize":1},{"declaration":3175,"isOffset":false,"isSlot":false,"src":"6897:5:14","valueSize":1},{"declaration":3175,"isOffset":false,"isSlot":false,"src":"6910:5:14","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"6777:9:14","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"6920:9:14","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"6975:9:14","valueSize":1},{"declaration":3159,"isOffset":false,"isSlot":false,"src":"6797:1:14","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"6800:1:14","valueSize":1}],"id":3209,"nodeType":"InlineAssembly","src":"6699:300:14"},{"assignments":[3211],"declarations":[{"constant":false,"id":3211,"mutability":"mutable","name":"twos","nameLocation":"7211:4:14","nodeType":"VariableDeclaration","scope":3291,"src":"7203:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3210,"name":"uint256","nodeType":"ElementaryTypeName","src":"7203:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3218,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3212,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"7218:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":3213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7233:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3214,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"7237:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7233:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7232:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7218:31:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7203:46:14"},{"AST":{"nativeSrc":"7272:366:14","nodeType":"YulBlock","src":"7272:366:14","statements":[{"nativeSrc":"7337:37:14","nodeType":"YulAssignment","src":"7337:37:14","value":{"arguments":[{"name":"denominator","nativeSrc":"7356:11:14","nodeType":"YulIdentifier","src":"7356:11:14"},{"name":"twos","nativeSrc":"7369:4:14","nodeType":"YulIdentifier","src":"7369:4:14"}],"functionName":{"name":"div","nativeSrc":"7352:3:14","nodeType":"YulIdentifier","src":"7352:3:14"},"nativeSrc":"7352:22:14","nodeType":"YulFunctionCall","src":"7352:22:14"},"variableNames":[{"name":"denominator","nativeSrc":"7337:11:14","nodeType":"YulIdentifier","src":"7337:11:14"}]},{"nativeSrc":"7441:25:14","nodeType":"YulAssignment","src":"7441:25:14","value":{"arguments":[{"name":"prod0","nativeSrc":"7454:5:14","nodeType":"YulIdentifier","src":"7454:5:14"},{"name":"twos","nativeSrc":"7461:4:14","nodeType":"YulIdentifier","src":"7461:4:14"}],"functionName":{"name":"div","nativeSrc":"7450:3:14","nodeType":"YulIdentifier","src":"7450:3:14"},"nativeSrc":"7450:16:14","nodeType":"YulFunctionCall","src":"7450:16:14"},"variableNames":[{"name":"prod0","nativeSrc":"7441:5:14","nodeType":"YulIdentifier","src":"7441:5:14"}]},{"nativeSrc":"7585:39:14","nodeType":"YulAssignment","src":"7585:39:14","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7605:1:14","nodeType":"YulLiteral","src":"7605:1:14","type":"","value":"0"},{"name":"twos","nativeSrc":"7608:4:14","nodeType":"YulIdentifier","src":"7608:4:14"}],"functionName":{"name":"sub","nativeSrc":"7601:3:14","nodeType":"YulIdentifier","src":"7601:3:14"},"nativeSrc":"7601:12:14","nodeType":"YulFunctionCall","src":"7601:12:14"},{"name":"twos","nativeSrc":"7615:4:14","nodeType":"YulIdentifier","src":"7615:4:14"}],"functionName":{"name":"div","nativeSrc":"7597:3:14","nodeType":"YulIdentifier","src":"7597:3:14"},"nativeSrc":"7597:23:14","nodeType":"YulFunctionCall","src":"7597:23:14"},{"kind":"number","nativeSrc":"7622:1:14","nodeType":"YulLiteral","src":"7622:1:14","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7593:3:14","nodeType":"YulIdentifier","src":"7593:3:14"},"nativeSrc":"7593:31:14","nodeType":"YulFunctionCall","src":"7593:31:14"},"variableNames":[{"name":"twos","nativeSrc":"7585:4:14","nodeType":"YulIdentifier","src":"7585:4:14"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3163,"isOffset":false,"isSlot":false,"src":"7337:11:14","valueSize":1},{"declaration":3163,"isOffset":false,"isSlot":false,"src":"7356:11:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"7441:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"7454:5:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7369:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7461:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7585:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7608:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7615:4:14","valueSize":1}],"id":3219,"nodeType":"InlineAssembly","src":"7263:375:14"},{"expression":{"id":3224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3220,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"7704:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3221,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3175,"src":"7713:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3222,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"7721:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7713:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7704:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3225,"nodeType":"ExpressionStatement","src":"7704:21:14"},{"assignments":[3227],"declarations":[{"constant":false,"id":3227,"mutability":"mutable","name":"inverse","nameLocation":"8068:7:14","nodeType":"VariableDeclaration","scope":3291,"src":"8060:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3226,"name":"uint256","nodeType":"ElementaryTypeName","src":"8060:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3234,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8079:1:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3229,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8083:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8079:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8078:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8098:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"8078:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8060:39:14"},{"expression":{"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3235,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8316:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8327: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":3239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3237,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8331:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3238,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8345:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8331:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8327:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8316:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3242,"nodeType":"ExpressionStatement","src":"8316:36:14"},{"expression":{"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3243,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8386:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8397: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":3247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3245,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8401:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3246,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8415:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8401:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8397:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8386:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3250,"nodeType":"ExpressionStatement","src":"8386:36:14"},{"expression":{"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3251,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8458:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8469: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":3255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3253,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8473:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3254,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8487:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8473:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8469:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8458:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3258,"nodeType":"ExpressionStatement","src":"8458:36:14"},{"expression":{"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3259,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8529:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8540: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":3263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3261,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8544:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3262,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8558:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8544:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8540:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8529:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3266,"nodeType":"ExpressionStatement","src":"8529:36:14"},{"expression":{"id":3273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3267,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8613: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":3271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3269,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8617:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3270,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8631:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8617:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8602:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3274,"nodeType":"ExpressionStatement","src":"8602:36:14"},{"expression":{"id":3281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3275,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8676:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687: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":3279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3277,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8691:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3278,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8705:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8691:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8687:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8676:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3282,"nodeType":"ExpressionStatement","src":"8676:36:14"},{"expression":{"id":3287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3283,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"9158:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3284,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"9167:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3285,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"9175:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9167:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9158:24:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3288,"nodeType":"ExpressionStatement","src":"9158:24:14"},{"expression":{"id":3289,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"9203:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3167,"id":3290,"nodeType":"Return","src":"9196:13:14"}]}]},"documentation":{"id":3157,"nodeType":"StructuredDocumentation","src":"4679:312:14","text":" @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":3293,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5005:6:14","nodeType":"FunctionDefinition","parameters":{"id":3164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3159,"mutability":"mutable","name":"x","nameLocation":"5020:1:14","nodeType":"VariableDeclaration","scope":3293,"src":"5012:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3158,"name":"uint256","nodeType":"ElementaryTypeName","src":"5012:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3161,"mutability":"mutable","name":"y","nameLocation":"5031:1:14","nodeType":"VariableDeclaration","scope":3293,"src":"5023:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3160,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3163,"mutability":"mutable","name":"denominator","nameLocation":"5042:11:14","nodeType":"VariableDeclaration","scope":3293,"src":"5034:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3162,"name":"uint256","nodeType":"ElementaryTypeName","src":"5034:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:43:14"},"returnParameters":{"id":3167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3166,"mutability":"mutable","name":"result","nameLocation":"5086:6:14","nodeType":"VariableDeclaration","scope":3293,"src":"5078:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3165,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5077:16:14"},"scope":4442,"src":"4996:4230:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3329,"nodeType":"Block","src":"9465:128:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3309,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"9489:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3310,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"9492:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3311,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3300,"src":"9495:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3308,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[3293,3330],"referencedDeclaration":3293,"src":"9482: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":3312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9482:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3316,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"9543:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":3315,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"9526:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9526:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3319,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"9563:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3320,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"9566:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3321,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3300,"src":"9569:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3318,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"9556: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":3322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9556:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9584:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9556:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9526:59:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3313,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"9510:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9519:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"9510:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9510:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9482:104:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3307,"id":3328,"nodeType":"Return","src":"9475:111:14"}]},"documentation":{"id":3294,"nodeType":"StructuredDocumentation","src":"9232:118:14","text":" @dev Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":3330,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"9364:6:14","nodeType":"FunctionDefinition","parameters":{"id":3304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3296,"mutability":"mutable","name":"x","nameLocation":"9379:1:14","nodeType":"VariableDeclaration","scope":3330,"src":"9371:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3295,"name":"uint256","nodeType":"ElementaryTypeName","src":"9371:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3298,"mutability":"mutable","name":"y","nameLocation":"9390:1:14","nodeType":"VariableDeclaration","scope":3330,"src":"9382:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3297,"name":"uint256","nodeType":"ElementaryTypeName","src":"9382:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3300,"mutability":"mutable","name":"denominator","nameLocation":"9401:11:14","nodeType":"VariableDeclaration","scope":3330,"src":"9393:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3299,"name":"uint256","nodeType":"ElementaryTypeName","src":"9393:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3303,"mutability":"mutable","name":"rounding","nameLocation":"9423:8:14","nodeType":"VariableDeclaration","scope":3330,"src":"9414:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":3302,"nodeType":"UserDefinedTypeName","pathNode":{"id":3301,"name":"Rounding","nameLocations":["9414:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"9414:8:14"},"referencedDeclaration":2869,"src":"9414:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9370:62:14"},"returnParameters":{"id":3307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3330,"src":"9456:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3305,"name":"uint256","nodeType":"ElementaryTypeName","src":"9456:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9455:9:14"},"scope":4442,"src":"9355:238:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3426,"nodeType":"Block","src":"10207:1849:14","statements":[{"id":3425,"nodeType":"UncheckedBlock","src":"10217:1833:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3340,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"10245:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10250:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10245:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3345,"nodeType":"IfStatement","src":"10241:20:14","trueBody":{"expression":{"hexValue":"30","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10260:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3339,"id":3344,"nodeType":"Return","src":"10253:8:14"}},{"assignments":[3347],"declarations":[{"constant":false,"id":3347,"mutability":"mutable","name":"remainder","nameLocation":"10740:9:14","nodeType":"VariableDeclaration","scope":3425,"src":"10732:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"10732:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3351,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"10752:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3349,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"10756:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10752:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10732:25:14"},{"assignments":[3353],"declarations":[{"constant":false,"id":3353,"mutability":"mutable","name":"gcd","nameLocation":"10779:3:14","nodeType":"VariableDeclaration","scope":3425,"src":"10771:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3352,"name":"uint256","nodeType":"ElementaryTypeName","src":"10771:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3355,"initialValue":{"id":3354,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"10785:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10771:15:14"},{"assignments":[3357],"declarations":[{"constant":false,"id":3357,"mutability":"mutable","name":"x","nameLocation":"10929:1:14","nodeType":"VariableDeclaration","scope":3425,"src":"10922:8:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3356,"name":"int256","nodeType":"ElementaryTypeName","src":"10922:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3359,"initialValue":{"hexValue":"30","id":3358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10933:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10922:12:14"},{"assignments":[3361],"declarations":[{"constant":false,"id":3361,"mutability":"mutable","name":"y","nameLocation":"10955:1:14","nodeType":"VariableDeclaration","scope":3425,"src":"10948:8:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3360,"name":"int256","nodeType":"ElementaryTypeName","src":"10948:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3363,"initialValue":{"hexValue":"31","id":3362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10959:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"10948:12:14"},{"body":{"id":3400,"nodeType":"Block","src":"10998:882:14","statements":[{"assignments":[3368],"declarations":[{"constant":false,"id":3368,"mutability":"mutable","name":"quotient","nameLocation":"11024:8:14","nodeType":"VariableDeclaration","scope":3400,"src":"11016:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3367,"name":"uint256","nodeType":"ElementaryTypeName","src":"11016:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3372,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3369,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11035:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3370,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11041:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11035:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11016:34:14"},{"expression":{"id":3383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3373,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11070:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3374,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11075:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3375,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11069:16:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":3376,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11175:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3377,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11420:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3378,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11426:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3379,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"11438:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11426:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11420:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11088:376:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11069:395:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3384,"nodeType":"ExpressionStatement","src":"11069:395:14"},{"expression":{"id":3398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3385,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11484:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":3386,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"11487:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3387,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11483:6:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":3388,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"11569:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3389,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11823:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3390,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"11827:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":3393,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"11838:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11831:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3391,"name":"int256","nodeType":"ElementaryTypeName","src":"11831:6:14","typeDescriptions":{}}},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11831:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11827:20:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11823:24:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3397,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11492:373:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"src":"11483:382:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3399,"nodeType":"ExpressionStatement","src":"11483:382:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3364,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"10982:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10995:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10982:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3401,"nodeType":"WhileStatement","src":"10975:905:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3402,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11898:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":3403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11905:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11898:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3407,"nodeType":"IfStatement","src":"11894:22:14","trueBody":{"expression":{"hexValue":"30","id":3405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11915:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3339,"id":3406,"nodeType":"Return","src":"11908:8:14"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3409,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11967:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":3410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11967:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3412,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"11974:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"11986:2:14","subExpression":{"id":3415,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11987:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11978:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3413,"name":"uint256","nodeType":"ElementaryTypeName","src":"11978:7:14","typeDescriptions":{}}},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11978:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11974:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3421,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11999:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11991:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3419,"name":"uint256","nodeType":"ElementaryTypeName","src":"11991:7:14","typeDescriptions":{}}},"id":3422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3408,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"11959:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11959:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3339,"id":3424,"nodeType":"Return","src":"11952:50:14"}]}]},"documentation":{"id":3331,"nodeType":"StructuredDocumentation","src":"9599:533:14","text":" @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, expect 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Ferma's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`."},"id":3427,"implemented":true,"kind":"function","modifiers":[],"name":"invMod","nameLocation":"10146:6:14","nodeType":"FunctionDefinition","parameters":{"id":3336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3333,"mutability":"mutable","name":"a","nameLocation":"10161:1:14","nodeType":"VariableDeclaration","scope":3427,"src":"10153:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3332,"name":"uint256","nodeType":"ElementaryTypeName","src":"10153:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3335,"mutability":"mutable","name":"n","nameLocation":"10172:1:14","nodeType":"VariableDeclaration","scope":3427,"src":"10164:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3334,"name":"uint256","nodeType":"ElementaryTypeName","src":"10164:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10152:22:14"},"returnParameters":{"id":3339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3427,"src":"10198:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3337,"name":"uint256","nodeType":"ElementaryTypeName","src":"10198:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10197:9:14"},"scope":4442,"src":"10137:1919:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3462,"nodeType":"Block","src":"12826:174:14","statements":[{"assignments":[3440,3442],"declarations":[{"constant":false,"id":3440,"mutability":"mutable","name":"success","nameLocation":"12842:7:14","nodeType":"VariableDeclaration","scope":3462,"src":"12837:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3439,"name":"bool","nodeType":"ElementaryTypeName","src":"12837:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3442,"mutability":"mutable","name":"result","nameLocation":"12859:6:14","nodeType":"VariableDeclaration","scope":3462,"src":"12851:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3441,"name":"uint256","nodeType":"ElementaryTypeName","src":"12851:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3448,"initialValue":{"arguments":[{"id":3444,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"12879:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3445,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3432,"src":"12882:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3446,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"12885:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3443,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[3487,3569],"referencedDeclaration":3487,"src":"12869:9:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (bool,uint256)"}},"id":3447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12869:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12836:51:14"},{"condition":{"id":3450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12901:8:14","subExpression":{"id":3449,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3440,"src":"12902:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3459,"nodeType":"IfStatement","src":"12897:74:14","trueBody":{"id":3458,"nodeType":"Block","src":"12911:60:14","statements":[{"expression":{"arguments":[{"expression":{"id":3454,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"12937:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12943:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"12937:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3451,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"12925:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12931:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"12925:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12925:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3457,"nodeType":"ExpressionStatement","src":"12925:35:14"}]}},{"expression":{"id":3460,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"12987:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3438,"id":3461,"nodeType":"Return","src":"12980:13:14"}]},"documentation":{"id":3428,"nodeType":"StructuredDocumentation","src":"12062:678:14","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0."},"id":3463,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"12754:6:14","nodeType":"FunctionDefinition","parameters":{"id":3435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3430,"mutability":"mutable","name":"b","nameLocation":"12769:1:14","nodeType":"VariableDeclaration","scope":3463,"src":"12761:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3429,"name":"uint256","nodeType":"ElementaryTypeName","src":"12761:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3432,"mutability":"mutable","name":"e","nameLocation":"12780:1:14","nodeType":"VariableDeclaration","scope":3463,"src":"12772:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3431,"name":"uint256","nodeType":"ElementaryTypeName","src":"12772:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3434,"mutability":"mutable","name":"m","nameLocation":"12791:1:14","nodeType":"VariableDeclaration","scope":3463,"src":"12783:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3433,"name":"uint256","nodeType":"ElementaryTypeName","src":"12783:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12760:33:14"},"returnParameters":{"id":3438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3463,"src":"12817:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3436,"name":"uint256","nodeType":"ElementaryTypeName","src":"12817:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12816:9:14"},"scope":4442,"src":"12745:255:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3486,"nodeType":"Block","src":"13855:1520:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3477,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3470,"src":"13869:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13874:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13869:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3484,"nodeType":"IfStatement","src":"13865:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13885:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13892:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3482,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13884:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3476,"id":3483,"nodeType":"Return","src":"13877:17:14"}},{"AST":{"nativeSrc":"13956:1413:14","nodeType":"YulBlock","src":"13956:1413:14","statements":[{"nativeSrc":"13970:22:14","nodeType":"YulVariableDeclaration","src":"13970:22:14","value":{"arguments":[{"kind":"number","nativeSrc":"13987:4:14","nodeType":"YulLiteral","src":"13987:4:14","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13981:5:14","nodeType":"YulIdentifier","src":"13981:5:14"},"nativeSrc":"13981:11:14","nodeType":"YulFunctionCall","src":"13981:11:14"},"variables":[{"name":"ptr","nativeSrc":"13974:3:14","nodeType":"YulTypedName","src":"13974:3:14","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"14900:3:14","nodeType":"YulIdentifier","src":"14900:3:14"},{"kind":"number","nativeSrc":"14905:4:14","nodeType":"YulLiteral","src":"14905:4:14","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14893:6:14","nodeType":"YulIdentifier","src":"14893:6:14"},"nativeSrc":"14893:17:14","nodeType":"YulFunctionCall","src":"14893:17:14"},"nativeSrc":"14893:17:14","nodeType":"YulExpressionStatement","src":"14893:17:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"14934:3:14","nodeType":"YulIdentifier","src":"14934:3:14"},{"kind":"number","nativeSrc":"14939:4:14","nodeType":"YulLiteral","src":"14939:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14930:3:14","nodeType":"YulIdentifier","src":"14930:3:14"},"nativeSrc":"14930:14:14","nodeType":"YulFunctionCall","src":"14930:14:14"},{"kind":"number","nativeSrc":"14946:4:14","nodeType":"YulLiteral","src":"14946:4:14","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14923:6:14","nodeType":"YulIdentifier","src":"14923:6:14"},"nativeSrc":"14923:28:14","nodeType":"YulFunctionCall","src":"14923:28:14"},"nativeSrc":"14923:28:14","nodeType":"YulExpressionStatement","src":"14923:28:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"14975:3:14","nodeType":"YulIdentifier","src":"14975:3:14"},{"kind":"number","nativeSrc":"14980:4:14","nodeType":"YulLiteral","src":"14980:4:14","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14971:3:14","nodeType":"YulIdentifier","src":"14971:3:14"},"nativeSrc":"14971:14:14","nodeType":"YulFunctionCall","src":"14971:14:14"},{"kind":"number","nativeSrc":"14987:4:14","nodeType":"YulLiteral","src":"14987:4:14","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14964:6:14","nodeType":"YulIdentifier","src":"14964:6:14"},"nativeSrc":"14964:28:14","nodeType":"YulFunctionCall","src":"14964:28:14"},"nativeSrc":"14964:28:14","nodeType":"YulExpressionStatement","src":"14964:28:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15016:3:14","nodeType":"YulIdentifier","src":"15016:3:14"},{"kind":"number","nativeSrc":"15021:4:14","nodeType":"YulLiteral","src":"15021:4:14","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15012:3:14","nodeType":"YulIdentifier","src":"15012:3:14"},"nativeSrc":"15012:14:14","nodeType":"YulFunctionCall","src":"15012:14:14"},{"name":"b","nativeSrc":"15028:1:14","nodeType":"YulIdentifier","src":"15028:1:14"}],"functionName":{"name":"mstore","nativeSrc":"15005:6:14","nodeType":"YulIdentifier","src":"15005:6:14"},"nativeSrc":"15005:25:14","nodeType":"YulFunctionCall","src":"15005:25:14"},"nativeSrc":"15005:25:14","nodeType":"YulExpressionStatement","src":"15005:25:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15054:3:14","nodeType":"YulIdentifier","src":"15054:3:14"},{"kind":"number","nativeSrc":"15059:4:14","nodeType":"YulLiteral","src":"15059:4:14","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15050:3:14","nodeType":"YulIdentifier","src":"15050:3:14"},"nativeSrc":"15050:14:14","nodeType":"YulFunctionCall","src":"15050:14:14"},{"name":"e","nativeSrc":"15066:1:14","nodeType":"YulIdentifier","src":"15066:1:14"}],"functionName":{"name":"mstore","nativeSrc":"15043:6:14","nodeType":"YulIdentifier","src":"15043:6:14"},"nativeSrc":"15043:25:14","nodeType":"YulFunctionCall","src":"15043:25:14"},"nativeSrc":"15043:25:14","nodeType":"YulExpressionStatement","src":"15043:25:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15092:3:14","nodeType":"YulIdentifier","src":"15092:3:14"},{"kind":"number","nativeSrc":"15097:4:14","nodeType":"YulLiteral","src":"15097:4:14","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15088:3:14","nodeType":"YulIdentifier","src":"15088:3:14"},"nativeSrc":"15088:14:14","nodeType":"YulFunctionCall","src":"15088:14:14"},{"name":"m","nativeSrc":"15104:1:14","nodeType":"YulIdentifier","src":"15104:1:14"}],"functionName":{"name":"mstore","nativeSrc":"15081:6:14","nodeType":"YulIdentifier","src":"15081:6:14"},"nativeSrc":"15081:25:14","nodeType":"YulFunctionCall","src":"15081:25:14"},"nativeSrc":"15081:25:14","nodeType":"YulExpressionStatement","src":"15081:25:14"},{"nativeSrc":"15268:57:14","nodeType":"YulAssignment","src":"15268:57:14","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15290:3:14","nodeType":"YulIdentifier","src":"15290:3:14"},"nativeSrc":"15290:5:14","nodeType":"YulFunctionCall","src":"15290:5:14"},{"kind":"number","nativeSrc":"15297:4:14","nodeType":"YulLiteral","src":"15297:4:14","type":"","value":"0x05"},{"name":"ptr","nativeSrc":"15303:3:14","nodeType":"YulIdentifier","src":"15303:3:14"},{"kind":"number","nativeSrc":"15308:4:14","nodeType":"YulLiteral","src":"15308:4:14","type":"","value":"0xc0"},{"kind":"number","nativeSrc":"15314:4:14","nodeType":"YulLiteral","src":"15314:4:14","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15320:4:14","nodeType":"YulLiteral","src":"15320:4:14","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15279:10:14","nodeType":"YulIdentifier","src":"15279:10:14"},"nativeSrc":"15279:46:14","nodeType":"YulFunctionCall","src":"15279:46:14"},"variableNames":[{"name":"success","nativeSrc":"15268:7:14","nodeType":"YulIdentifier","src":"15268:7:14"}]},{"nativeSrc":"15338:21:14","nodeType":"YulAssignment","src":"15338:21:14","value":{"arguments":[{"kind":"number","nativeSrc":"15354:4:14","nodeType":"YulLiteral","src":"15354:4:14","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"15348:5:14","nodeType":"YulIdentifier","src":"15348:5:14"},"nativeSrc":"15348:11:14","nodeType":"YulFunctionCall","src":"15348:11:14"},"variableNames":[{"name":"result","nativeSrc":"15338:6:14","nodeType":"YulIdentifier","src":"15338:6:14"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":3466,"isOffset":false,"isSlot":false,"src":"15028:1:14","valueSize":1},{"declaration":3468,"isOffset":false,"isSlot":false,"src":"15066:1:14","valueSize":1},{"declaration":3470,"isOffset":false,"isSlot":false,"src":"15104:1:14","valueSize":1},{"declaration":3475,"isOffset":false,"isSlot":false,"src":"15338:6:14","valueSize":1},{"declaration":3473,"isOffset":false,"isSlot":false,"src":"15268:7:14","valueSize":1}],"id":3485,"nodeType":"InlineAssembly","src":"13947:1422:14"}]},"documentation":{"id":3464,"nodeType":"StructuredDocumentation","src":"13006:739:14","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked has failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0."},"id":3487,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"13759:9:14","nodeType":"FunctionDefinition","parameters":{"id":3471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3466,"mutability":"mutable","name":"b","nameLocation":"13777:1:14","nodeType":"VariableDeclaration","scope":3487,"src":"13769:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3465,"name":"uint256","nodeType":"ElementaryTypeName","src":"13769:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3468,"mutability":"mutable","name":"e","nameLocation":"13788:1:14","nodeType":"VariableDeclaration","scope":3487,"src":"13780:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3467,"name":"uint256","nodeType":"ElementaryTypeName","src":"13780:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3470,"mutability":"mutable","name":"m","nameLocation":"13799:1:14","nodeType":"VariableDeclaration","scope":3487,"src":"13791:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3469,"name":"uint256","nodeType":"ElementaryTypeName","src":"13791:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13768:33:14"},"returnParameters":{"id":3476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3473,"mutability":"mutable","name":"success","nameLocation":"13830:7:14","nodeType":"VariableDeclaration","scope":3487,"src":"13825:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3472,"name":"bool","nodeType":"ElementaryTypeName","src":"13825:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3475,"mutability":"mutable","name":"result","nameLocation":"13847:6:14","nodeType":"VariableDeclaration","scope":3487,"src":"13839:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3474,"name":"uint256","nodeType":"ElementaryTypeName","src":"13839:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13824:30:14"},"scope":4442,"src":"13750:1625:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3522,"nodeType":"Block","src":"15572:179:14","statements":[{"assignments":[3500,3502],"declarations":[{"constant":false,"id":3500,"mutability":"mutable","name":"success","nameLocation":"15588:7:14","nodeType":"VariableDeclaration","scope":3522,"src":"15583:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3499,"name":"bool","nodeType":"ElementaryTypeName","src":"15583:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3502,"mutability":"mutable","name":"result","nameLocation":"15610:6:14","nodeType":"VariableDeclaration","scope":3522,"src":"15597:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3501,"name":"bytes","nodeType":"ElementaryTypeName","src":"15597:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3508,"initialValue":{"arguments":[{"id":3504,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3490,"src":"15630:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3505,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3492,"src":"15633:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3506,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"15636:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3503,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[3487,3569],"referencedDeclaration":3569,"src":"15620:9:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)"}},"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15620:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"15582:56:14"},{"condition":{"id":3510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15652:8:14","subExpression":{"id":3509,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3500,"src":"15653:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3519,"nodeType":"IfStatement","src":"15648:74:14","trueBody":{"id":3518,"nodeType":"Block","src":"15662:60:14","statements":[{"expression":{"arguments":[{"expression":{"id":3514,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"15688:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15694:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"15688:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3511,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"15676:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15682:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"15676:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15676:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3517,"nodeType":"ExpressionStatement","src":"15676:35:14"}]}},{"expression":{"id":3520,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3502,"src":"15738:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3498,"id":3521,"nodeType":"Return","src":"15731:13:14"}]},"documentation":{"id":3488,"nodeType":"StructuredDocumentation","src":"15381:85:14","text":" @dev Variant of {modExp} that supports inputs of arbitrary length."},"id":3523,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"15480:6:14","nodeType":"FunctionDefinition","parameters":{"id":3495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3490,"mutability":"mutable","name":"b","nameLocation":"15500:1:14","nodeType":"VariableDeclaration","scope":3523,"src":"15487:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3489,"name":"bytes","nodeType":"ElementaryTypeName","src":"15487:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3492,"mutability":"mutable","name":"e","nameLocation":"15516:1:14","nodeType":"VariableDeclaration","scope":3523,"src":"15503:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3491,"name":"bytes","nodeType":"ElementaryTypeName","src":"15503:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3494,"mutability":"mutable","name":"m","nameLocation":"15532:1:14","nodeType":"VariableDeclaration","scope":3523,"src":"15519:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3493,"name":"bytes","nodeType":"ElementaryTypeName","src":"15519:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15486:48:14"},"returnParameters":{"id":3498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3523,"src":"15558:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3496,"name":"bytes","nodeType":"ElementaryTypeName","src":"15558:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15557:14:14"},"scope":4442,"src":"15471:280:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3568,"nodeType":"Block","src":"16005:798:14","statements":[{"condition":{"arguments":[{"id":3538,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"16030:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3537,"name":"_zeroBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3602,"src":"16019:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) pure returns (bool)"}},"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16019:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3547,"nodeType":"IfStatement","src":"16015:47:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16042:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"30","id":3543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16059:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16049:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3541,"name":"bytes","nodeType":"ElementaryTypeName","src":"16053:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16049:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16041:21:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":3536,"id":3546,"nodeType":"Return","src":"16034:28:14"}},{"assignments":[3549],"declarations":[{"constant":false,"id":3549,"mutability":"mutable","name":"mLen","nameLocation":"16081:4:14","nodeType":"VariableDeclaration","scope":3568,"src":"16073:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3548,"name":"uint256","nodeType":"ElementaryTypeName","src":"16073:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3552,"initialValue":{"expression":{"id":3550,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"16088:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16090:6:14","memberName":"length","nodeType":"MemberAccess","src":"16088:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16073:23:14"},{"expression":{"id":3565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3553,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3535,"src":"16178:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3556,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"16204:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16206:6:14","memberName":"length","nodeType":"MemberAccess","src":"16204:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3558,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"16214:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16216:6:14","memberName":"length","nodeType":"MemberAccess","src":"16214:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3560,"name":"mLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3549,"src":"16224:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3561,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"16230:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3562,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"16233:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3563,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"16236:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16187:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16191:12:14","memberName":"encodePacked","nodeType":"MemberAccess","src":"16187:16:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16187:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"16178:60:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3566,"nodeType":"ExpressionStatement","src":"16178:60:14"},{"AST":{"nativeSrc":"16301:496:14","nodeType":"YulBlock","src":"16301:496:14","statements":[{"nativeSrc":"16315:32:14","nodeType":"YulVariableDeclaration","src":"16315:32:14","value":{"arguments":[{"name":"result","nativeSrc":"16334:6:14","nodeType":"YulIdentifier","src":"16334:6:14"},{"kind":"number","nativeSrc":"16342:4:14","nodeType":"YulLiteral","src":"16342:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16330:3:14","nodeType":"YulIdentifier","src":"16330:3:14"},"nativeSrc":"16330:17:14","nodeType":"YulFunctionCall","src":"16330:17:14"},"variables":[{"name":"dataPtr","nativeSrc":"16319:7:14","nodeType":"YulTypedName","src":"16319:7:14","type":""}]},{"nativeSrc":"16437:73:14","nodeType":"YulAssignment","src":"16437:73:14","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16459:3:14","nodeType":"YulIdentifier","src":"16459:3:14"},"nativeSrc":"16459:5:14","nodeType":"YulFunctionCall","src":"16459:5:14"},{"kind":"number","nativeSrc":"16466:4:14","nodeType":"YulLiteral","src":"16466:4:14","type":"","value":"0x05"},{"name":"dataPtr","nativeSrc":"16472:7:14","nodeType":"YulIdentifier","src":"16472:7:14"},{"arguments":[{"name":"result","nativeSrc":"16487:6:14","nodeType":"YulIdentifier","src":"16487:6:14"}],"functionName":{"name":"mload","nativeSrc":"16481:5:14","nodeType":"YulIdentifier","src":"16481:5:14"},"nativeSrc":"16481:13:14","nodeType":"YulFunctionCall","src":"16481:13:14"},{"name":"dataPtr","nativeSrc":"16496:7:14","nodeType":"YulIdentifier","src":"16496:7:14"},{"name":"mLen","nativeSrc":"16505:4:14","nodeType":"YulIdentifier","src":"16505:4:14"}],"functionName":{"name":"staticcall","nativeSrc":"16448:10:14","nodeType":"YulIdentifier","src":"16448:10:14"},"nativeSrc":"16448:62:14","nodeType":"YulFunctionCall","src":"16448:62:14"},"variableNames":[{"name":"success","nativeSrc":"16437:7:14","nodeType":"YulIdentifier","src":"16437:7:14"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"16666:6:14","nodeType":"YulIdentifier","src":"16666:6:14"},{"name":"mLen","nativeSrc":"16674:4:14","nodeType":"YulIdentifier","src":"16674:4:14"}],"functionName":{"name":"mstore","nativeSrc":"16659:6:14","nodeType":"YulIdentifier","src":"16659:6:14"},"nativeSrc":"16659:20:14","nodeType":"YulFunctionCall","src":"16659:20:14"},"nativeSrc":"16659:20:14","nodeType":"YulExpressionStatement","src":"16659:20:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16762:4:14","nodeType":"YulLiteral","src":"16762:4:14","type":"","value":"0x40"},{"arguments":[{"name":"dataPtr","nativeSrc":"16772:7:14","nodeType":"YulIdentifier","src":"16772:7:14"},{"name":"mLen","nativeSrc":"16781:4:14","nodeType":"YulIdentifier","src":"16781:4:14"}],"functionName":{"name":"add","nativeSrc":"16768:3:14","nodeType":"YulIdentifier","src":"16768:3:14"},"nativeSrc":"16768:18:14","nodeType":"YulFunctionCall","src":"16768:18:14"}],"functionName":{"name":"mstore","nativeSrc":"16755:6:14","nodeType":"YulIdentifier","src":"16755:6:14"},"nativeSrc":"16755:32:14","nodeType":"YulFunctionCall","src":"16755:32:14"},"nativeSrc":"16755:32:14","nodeType":"YulExpressionStatement","src":"16755:32:14"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":3549,"isOffset":false,"isSlot":false,"src":"16505:4:14","valueSize":1},{"declaration":3549,"isOffset":false,"isSlot":false,"src":"16674:4:14","valueSize":1},{"declaration":3549,"isOffset":false,"isSlot":false,"src":"16781:4:14","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16334:6:14","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16487:6:14","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16666:6:14","valueSize":1},{"declaration":3533,"isOffset":false,"isSlot":false,"src":"16437:7:14","valueSize":1}],"id":3567,"nodeType":"InlineAssembly","src":"16292:505:14"}]},"documentation":{"id":3524,"nodeType":"StructuredDocumentation","src":"15757:88:14","text":" @dev Variant of {tryModExp} that supports inputs of arbitrary length."},"id":3569,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"15859:9:14","nodeType":"FunctionDefinition","parameters":{"id":3531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3526,"mutability":"mutable","name":"b","nameLocation":"15891:1:14","nodeType":"VariableDeclaration","scope":3569,"src":"15878:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3525,"name":"bytes","nodeType":"ElementaryTypeName","src":"15878:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3528,"mutability":"mutable","name":"e","nameLocation":"15915:1:14","nodeType":"VariableDeclaration","scope":3569,"src":"15902:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3527,"name":"bytes","nodeType":"ElementaryTypeName","src":"15902:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3530,"mutability":"mutable","name":"m","nameLocation":"15939:1:14","nodeType":"VariableDeclaration","scope":3569,"src":"15926:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3529,"name":"bytes","nodeType":"ElementaryTypeName","src":"15926:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15868:78:14"},"returnParameters":{"id":3536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3533,"mutability":"mutable","name":"success","nameLocation":"15975:7:14","nodeType":"VariableDeclaration","scope":3569,"src":"15970:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3532,"name":"bool","nodeType":"ElementaryTypeName","src":"15970:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3535,"mutability":"mutable","name":"result","nameLocation":"15997:6:14","nodeType":"VariableDeclaration","scope":3569,"src":"15984:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3534,"name":"bytes","nodeType":"ElementaryTypeName","src":"15984:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15969:35:14"},"scope":4442,"src":"15850:953:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3601,"nodeType":"Block","src":"16958:176:14","statements":[{"body":{"id":3597,"nodeType":"Block","src":"17015:92:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3588,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"17033:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3590,"indexExpression":{"id":3589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"17043:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17033:12:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17049:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17033:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3596,"nodeType":"IfStatement","src":"17029:68:14","trueBody":{"id":3595,"nodeType":"Block","src":"17052:45:14","statements":[{"expression":{"hexValue":"66616c7365","id":3593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17077:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":3576,"id":3594,"nodeType":"Return","src":"17070:12:14"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3581,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"16988:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3582,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"16992:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17002:6:14","memberName":"length","nodeType":"MemberAccess","src":"16992:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16988:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3598,"initializationExpression":{"assignments":[3578],"declarations":[{"constant":false,"id":3578,"mutability":"mutable","name":"i","nameLocation":"16981:1:14","nodeType":"VariableDeclaration","scope":3598,"src":"16973:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"16973:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3580,"initialValue":{"hexValue":"30","id":3579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16985:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16973:13:14"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17010:3:14","subExpression":{"id":3585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"17012:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3587,"nodeType":"ExpressionStatement","src":"17010:3:14"},"nodeType":"ForStatement","src":"16968:139:14"},{"expression":{"hexValue":"74727565","id":3599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17123:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3576,"id":3600,"nodeType":"Return","src":"17116:11:14"}]},"documentation":{"id":3570,"nodeType":"StructuredDocumentation","src":"16809:72:14","text":" @dev Returns whether the provided byte array is zero."},"id":3602,"implemented":true,"kind":"function","modifiers":[],"name":"_zeroBytes","nameLocation":"16895:10:14","nodeType":"FunctionDefinition","parameters":{"id":3573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3572,"mutability":"mutable","name":"byteArray","nameLocation":"16919:9:14","nodeType":"VariableDeclaration","scope":3602,"src":"16906:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3571,"name":"bytes","nodeType":"ElementaryTypeName","src":"16906:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16905:24:14"},"returnParameters":{"id":3576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3602,"src":"16952:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3574,"name":"bool","nodeType":"ElementaryTypeName","src":"16952:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16951:6:14"},"scope":4442,"src":"16886:248:14","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3820,"nodeType":"Block","src":"17494:5124:14","statements":[{"id":3819,"nodeType":"UncheckedBlock","src":"17504:5108:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3610,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"17598:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":3611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17603:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17598:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3616,"nodeType":"IfStatement","src":"17594:53:14","trueBody":{"id":3615,"nodeType":"Block","src":"17606:41:14","statements":[{"expression":{"id":3613,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"17631:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3609,"id":3614,"nodeType":"Return","src":"17624:8:14"}]}},{"assignments":[3618],"declarations":[{"constant":false,"id":3618,"mutability":"mutable","name":"aa","nameLocation":"18582:2:14","nodeType":"VariableDeclaration","scope":3819,"src":"18574:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3617,"name":"uint256","nodeType":"ElementaryTypeName","src":"18574:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3620,"initialValue":{"id":3619,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"18587:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18574:14:14"},{"assignments":[3622],"declarations":[{"constant":false,"id":3622,"mutability":"mutable","name":"xn","nameLocation":"18610:2:14","nodeType":"VariableDeclaration","scope":3819,"src":"18602:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3621,"name":"uint256","nodeType":"ElementaryTypeName","src":"18602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3624,"initialValue":{"hexValue":"31","id":3623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18615:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"18602:14:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3625,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18635:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18642:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18647:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18642:8:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":3629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18641:10:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"src":"18635:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3640,"nodeType":"IfStatement","src":"18631:92:14","trueBody":{"id":3639,"nodeType":"Block","src":"18653:70:14","statements":[{"expression":{"id":3633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3631,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18671:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18678:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18671:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3634,"nodeType":"ExpressionStatement","src":"18671:10:14"},{"expression":{"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3635,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"18699:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":3636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18706:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18699:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3638,"nodeType":"ExpressionStatement","src":"18699:9:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3641,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18740:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":3644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18747:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18752:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18747:7:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":3645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18746:9:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"18740:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3656,"nodeType":"IfStatement","src":"18736:90:14","trueBody":{"id":3655,"nodeType":"Block","src":"18757:69:14","statements":[{"expression":{"id":3649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3647,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18775:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18782:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18775:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3650,"nodeType":"ExpressionStatement","src":"18775:9:14"},{"expression":{"id":3653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3651,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"18802:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":3652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18809:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18802:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3654,"nodeType":"ExpressionStatement","src":"18802:9:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3657,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18843:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":3660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18850:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18855:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18850:7:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":3661,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18849:9:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"18843:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3672,"nodeType":"IfStatement","src":"18839:90:14","trueBody":{"id":3671,"nodeType":"Block","src":"18860:69:14","statements":[{"expression":{"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3663,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18878:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18885:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18878:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3666,"nodeType":"ExpressionStatement","src":"18878:9:14"},{"expression":{"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3667,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"18905:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":3668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18912:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18905:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3670,"nodeType":"ExpressionStatement","src":"18905:9:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3673,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18946:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18953:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18958:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18953:7:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18952:9:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"18946:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3688,"nodeType":"IfStatement","src":"18942:89:14","trueBody":{"id":3687,"nodeType":"Block","src":"18963:68:14","statements":[{"expression":{"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3679,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18981:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18988:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18981:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3682,"nodeType":"ExpressionStatement","src":"18981:9:14"},{"expression":{"id":3685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3683,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19008:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":3684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19015:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19008:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3686,"nodeType":"ExpressionStatement","src":"19008:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3689,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19048:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":3692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19055:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":3691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19060:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19055:6:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":3693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19054:8:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"src":"19048:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3704,"nodeType":"IfStatement","src":"19044:87:14","trueBody":{"id":3703,"nodeType":"Block","src":"19064:67:14","statements":[{"expression":{"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3695,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19082:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19089:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19082:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3698,"nodeType":"ExpressionStatement","src":"19082:8:14"},{"expression":{"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3699,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19108:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":3700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19115:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19108:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3702,"nodeType":"ExpressionStatement","src":"19108:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3705,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19148:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":3708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19155:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":3707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19160:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19155:6:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":3709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19154:8:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"src":"19148:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3720,"nodeType":"IfStatement","src":"19144:87:14","trueBody":{"id":3719,"nodeType":"Block","src":"19164:67:14","statements":[{"expression":{"id":3713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3711,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19182:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19189:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19182:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3714,"nodeType":"ExpressionStatement","src":"19182:8:14"},{"expression":{"id":3717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3715,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19208:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":3716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19215:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19208:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3718,"nodeType":"ExpressionStatement","src":"19208:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3721,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19248:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":3724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19255:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":3723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19260:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19255:6:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":3725,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19254:8:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"src":"19248:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3732,"nodeType":"IfStatement","src":"19244:61:14","trueBody":{"id":3731,"nodeType":"Block","src":"19264:41:14","statements":[{"expression":{"id":3729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3727,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19282:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":3728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19289:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19282:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3730,"nodeType":"ExpressionStatement","src":"19282:8:14"}]}},{"expression":{"id":3740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3733,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19725:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19731:1:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3735,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19735:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19731:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19730:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19742:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19730:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3741,"nodeType":"ExpressionStatement","src":"19725:18:14"},{"expression":{"id":3751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3742,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21630:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3743,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21636:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3744,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21641:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3745,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21645:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21641:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21636:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21635:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21652:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21635:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21630:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3752,"nodeType":"ExpressionStatement","src":"21630:23:14"},{"expression":{"id":3762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3753,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21739:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3754,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21745:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3755,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21750:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3756,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21754:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21750:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21745:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3759,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21744:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21761:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21744:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21739:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3763,"nodeType":"ExpressionStatement","src":"21739:23:14"},{"expression":{"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3764,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21850:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3765,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21856:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3766,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21861:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3767,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21865:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21861:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21856:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3770,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21855:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21872:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21855:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21850:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3774,"nodeType":"ExpressionStatement","src":"21850:23:14"},{"expression":{"id":3784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3775,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21959:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3776,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21965:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3777,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21970:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3778,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21974:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21970:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21965:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3781,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21964:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21981:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21964:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21959:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3785,"nodeType":"ExpressionStatement","src":"21959:23:14"},{"expression":{"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3786,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22069:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3787,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22075:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3788,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"22080:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3789,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22084:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22080:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22075:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22074:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22091:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22074:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22069:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3796,"nodeType":"ExpressionStatement","src":"22069:23:14"},{"expression":{"id":3806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3797,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22179:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3798,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22185:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3799,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"22190:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3800,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22194:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22190:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22185:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3803,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22184:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22201:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22184:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22179:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3807,"nodeType":"ExpressionStatement","src":"22179:23:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3808,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22568:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3811,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22589:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3812,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"22594:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3813,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22598:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22594:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22589:11:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3809,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"22573:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22582:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"22573:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22568:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3609,"id":3818,"nodeType":"Return","src":"22561:40:14"}]}]},"documentation":{"id":3603,"nodeType":"StructuredDocumentation","src":"17140:292: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 This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations."},"id":3821,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"17446:4:14","nodeType":"FunctionDefinition","parameters":{"id":3606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3605,"mutability":"mutable","name":"a","nameLocation":"17459:1:14","nodeType":"VariableDeclaration","scope":3821,"src":"17451:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"17451:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17450:11:14"},"returnParameters":{"id":3609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3821,"src":"17485:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3607,"name":"uint256","nodeType":"ElementaryTypeName","src":"17485:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17484:9:14"},"scope":4442,"src":"17437:5181:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3854,"nodeType":"Block","src":"22791:171:14","statements":[{"id":3853,"nodeType":"UncheckedBlock","src":"22801:155:14","statements":[{"assignments":[3833],"declarations":[{"constant":false,"id":3833,"mutability":"mutable","name":"result","nameLocation":"22833:6:14","nodeType":"VariableDeclaration","scope":3853,"src":"22825:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3832,"name":"uint256","nodeType":"ElementaryTypeName","src":"22825:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3837,"initialValue":{"arguments":[{"id":3835,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"22847:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3834,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[3821,3855],"referencedDeclaration":3821,"src":"22842:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:7:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22825:24:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3838,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"22870:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3842,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3827,"src":"22912:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":3841,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"22895:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22895:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3844,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"22925:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3845,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"22934:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22925:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3847,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"22943:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22925:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22895:49:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3839,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"22879:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22888:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"22879:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22879:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22870:75:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3831,"id":3852,"nodeType":"Return","src":"22863:82:14"}]}]},"documentation":{"id":3822,"nodeType":"StructuredDocumentation","src":"22624:86:14","text":" @dev Calculates sqrt(a), following the selected rounding direction."},"id":3855,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"22724:4:14","nodeType":"FunctionDefinition","parameters":{"id":3828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3824,"mutability":"mutable","name":"a","nameLocation":"22737:1:14","nodeType":"VariableDeclaration","scope":3855,"src":"22729:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3823,"name":"uint256","nodeType":"ElementaryTypeName","src":"22729:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3827,"mutability":"mutable","name":"rounding","nameLocation":"22749:8:14","nodeType":"VariableDeclaration","scope":3855,"src":"22740:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":3826,"nodeType":"UserDefinedTypeName","pathNode":{"id":3825,"name":"Rounding","nameLocations":["22740:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"22740:8:14"},"referencedDeclaration":2869,"src":"22740:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"22728:30:14"},"returnParameters":{"id":3831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3855,"src":"22782:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22782:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22781:9:14"},"scope":4442,"src":"22715:247:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4050,"nodeType":"Block","src":"23153:981:14","statements":[{"assignments":[3864],"declarations":[{"constant":false,"id":3864,"mutability":"mutable","name":"result","nameLocation":"23171:6:14","nodeType":"VariableDeclaration","scope":4050,"src":"23163:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3863,"name":"uint256","nodeType":"ElementaryTypeName","src":"23163:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3866,"initialValue":{"hexValue":"30","id":3865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23180:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23163:18:14"},{"assignments":[3868],"declarations":[{"constant":false,"id":3868,"mutability":"mutable","name":"exp","nameLocation":"23199:3:14","nodeType":"VariableDeclaration","scope":4050,"src":"23191:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3867,"name":"uint256","nodeType":"ElementaryTypeName","src":"23191:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3869,"nodeType":"VariableDeclarationStatement","src":"23191:11:14"},{"id":4047,"nodeType":"UncheckedBlock","src":"23212:893:14","statements":[{"expression":{"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3870,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23236:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313238","id":3871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23242:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3874,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23264:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":3880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23273:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23278:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"23273:8:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":3878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23272:10:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23285:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23272:14:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"23264:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3872,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23248:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23257:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23248:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23248:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23242:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23236:51:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3885,"nodeType":"ExpressionStatement","src":"23236:51:14"},{"expression":{"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23301:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3887,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23311:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23301:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3889,"nodeType":"ExpressionStatement","src":"23301:13:14"},{"expression":{"id":3892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3890,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23328:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3891,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23338:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23328:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3893,"nodeType":"ExpressionStatement","src":"23328:13:14"},{"expression":{"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3894,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23356:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3634","id":3895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23362:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23383:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":3904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":3901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23392:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23397:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"23392:7:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":3902,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23391:9:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23403:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23391:13:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"23383:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3896,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23367:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23376:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23367:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23367:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23362:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23356:49:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3909,"nodeType":"ExpressionStatement","src":"23356:49:14"},{"expression":{"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3910,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23419:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3911,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23429:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23419:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3913,"nodeType":"ExpressionStatement","src":"23419:13:14"},{"expression":{"id":3916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3914,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23446:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3915,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23456:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23446:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3917,"nodeType":"ExpressionStatement","src":"23446:13:14"},{"expression":{"id":3932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3918,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23474:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":3919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23480:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23501:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":3928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":3925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23510:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"23510:7:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":3926,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23509:9:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23521:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23509:13:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"23501:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3920,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23485:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23485:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23485:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23480:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23474:49:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3933,"nodeType":"ExpressionStatement","src":"23474:49:14"},{"expression":{"id":3936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23537:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3935,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23547:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23537:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3937,"nodeType":"ExpressionStatement","src":"23537:13:14"},{"expression":{"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3938,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23564:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3939,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23574:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23564:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3941,"nodeType":"ExpressionStatement","src":"23564:13:14"},{"expression":{"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3942,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23592:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3136","id":3943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23598:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23619:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":3952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23628:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23633:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"23628:7:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23627:9:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23639:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23627:13:14","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"23619:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3944,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23603:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23612:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23603:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23598:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23592:49:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3957,"nodeType":"ExpressionStatement","src":"23592:49:14"},{"expression":{"id":3960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3958,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23655:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3959,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23665:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23655:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3961,"nodeType":"ExpressionStatement","src":"23655:13:14"},{"expression":{"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3962,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23682:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3963,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23692:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23682:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3965,"nodeType":"ExpressionStatement","src":"23682:13:14"},{"expression":{"id":3980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3966,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23710:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":3967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23716:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3970,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23736:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":3976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":3973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23745:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":3972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23750:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"23745:6:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":3974,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23744:8:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23755:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23744:12:14","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"23736:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3968,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23720:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23729:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23720:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23720:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23716:41:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23710:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3981,"nodeType":"ExpressionStatement","src":"23710:47:14"},{"expression":{"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23771:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3983,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23781:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23771:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3985,"nodeType":"ExpressionStatement","src":"23771:13:14"},{"expression":{"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3986,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23798:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3987,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23808:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23798:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3989,"nodeType":"ExpressionStatement","src":"23798:13:14"},{"expression":{"id":4004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3990,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23826:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":3991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23832:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3994,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23852:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"id":4000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":3997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23861:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":3996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23866:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"23861:6:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":3998,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23860:8:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23871:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23860:12:14","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"}},"src":"23852:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3992,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23836:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23845:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23836:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23836:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23832:41:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23826:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4005,"nodeType":"ExpressionStatement","src":"23826:47:14"},{"expression":{"id":4008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4006,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23887:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4007,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23897:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23887:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4009,"nodeType":"ExpressionStatement","src":"23887:13:14"},{"expression":{"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4010,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23914:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4011,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23924:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23914:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4013,"nodeType":"ExpressionStatement","src":"23914:13:14"},{"expression":{"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4014,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23942:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23948:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4018,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23968:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"id":4024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":4021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23977:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":4020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23982:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"23977:6:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":4022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23976:8:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23987:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23976:12:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}},"src":"23968:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4016,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23952:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23961:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23952:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23952:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23948:41:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23942:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4029,"nodeType":"ExpressionStatement","src":"23942:47:14"},{"expression":{"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4030,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"24003:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4031,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"24013:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24003:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4033,"nodeType":"ExpressionStatement","src":"24003:13:14"},{"expression":{"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4034,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"24030:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4035,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"24040:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24030:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4037,"nodeType":"ExpressionStatement","src":"24030:13:14"},{"expression":{"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4038,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"24058:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4041,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"24084:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":4042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24092:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24084:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4039,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"24068:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24077:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"24068:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24068:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24058:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4046,"nodeType":"ExpressionStatement","src":"24058:36:14"}]},{"expression":{"id":4048,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"24121:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3862,"id":4049,"nodeType":"Return","src":"24114:13:14"}]},"documentation":{"id":3856,"nodeType":"StructuredDocumentation","src":"22968:119:14","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":4051,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"23101:4:14","nodeType":"FunctionDefinition","parameters":{"id":3859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3858,"mutability":"mutable","name":"value","nameLocation":"23114:5:14","nodeType":"VariableDeclaration","scope":4051,"src":"23106:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3857,"name":"uint256","nodeType":"ElementaryTypeName","src":"23106:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23105:15:14"},"returnParameters":{"id":3862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4051,"src":"23144:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3860,"name":"uint256","nodeType":"ElementaryTypeName","src":"23144:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23143:9:14"},"scope":4442,"src":"23092:1042:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4084,"nodeType":"Block","src":"24367:175:14","statements":[{"id":4083,"nodeType":"UncheckedBlock","src":"24377:159:14","statements":[{"assignments":[4063],"declarations":[{"constant":false,"id":4063,"mutability":"mutable","name":"result","nameLocation":"24409:6:14","nodeType":"VariableDeclaration","scope":4083,"src":"24401:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4062,"name":"uint256","nodeType":"ElementaryTypeName","src":"24401:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4067,"initialValue":{"arguments":[{"id":4065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4054,"src":"24423:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4064,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4051,4085],"referencedDeclaration":4051,"src":"24418:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24418:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24401:28:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4068,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"24450:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4072,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4057,"src":"24492:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4071,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"24475:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24475:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24505:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":4075,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"24510:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24505:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4054,"src":"24519:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24505:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24475:49:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4069,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"24459:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24468:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"24459:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24459:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24450:75:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4061,"id":4082,"nodeType":"Return","src":"24443:82:14"}]}]},"documentation":{"id":4052,"nodeType":"StructuredDocumentation","src":"24140: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":4085,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"24296:4:14","nodeType":"FunctionDefinition","parameters":{"id":4058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4054,"mutability":"mutable","name":"value","nameLocation":"24309:5:14","nodeType":"VariableDeclaration","scope":4085,"src":"24301:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4053,"name":"uint256","nodeType":"ElementaryTypeName","src":"24301:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4057,"mutability":"mutable","name":"rounding","nameLocation":"24325:8:14","nodeType":"VariableDeclaration","scope":4085,"src":"24316:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4056,"nodeType":"UserDefinedTypeName","pathNode":{"id":4055,"name":"Rounding","nameLocations":["24316:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"24316:8:14"},"referencedDeclaration":2869,"src":"24316:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"24300:34:14"},"returnParameters":{"id":4061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4060,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4085,"src":"24358:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4059,"name":"uint256","nodeType":"ElementaryTypeName","src":"24358:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24357:9:14"},"scope":4442,"src":"24287:255:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4213,"nodeType":"Block","src":"24735:854:14","statements":[{"assignments":[4094],"declarations":[{"constant":false,"id":4094,"mutability":"mutable","name":"result","nameLocation":"24753:6:14","nodeType":"VariableDeclaration","scope":4213,"src":"24745:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4093,"name":"uint256","nodeType":"ElementaryTypeName","src":"24745:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4096,"initialValue":{"hexValue":"30","id":4095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24762:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24745:18:14"},{"id":4210,"nodeType":"UncheckedBlock","src":"24773:787:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4097,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24801:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":4100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24810:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24816:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24810:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"24801:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4113,"nodeType":"IfStatement","src":"24797:103:14","trueBody":{"id":4112,"nodeType":"Block","src":"24820:80:14","statements":[{"expression":{"id":4106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4102,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24838:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":4105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24847:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24853:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24847:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"24838:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4107,"nodeType":"ExpressionStatement","src":"24838:17:14"},{"expression":{"id":4110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4108,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"24873:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":4109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24883:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24873:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4111,"nodeType":"ExpressionStatement","src":"24873:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4114,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24917:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":4117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24926:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24932:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24926:8:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"24917:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4130,"nodeType":"IfStatement","src":"24913:103:14","trueBody":{"id":4129,"nodeType":"Block","src":"24936:80:14","statements":[{"expression":{"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24954:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":4122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24963:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24969:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24963:8:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"24954:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4124,"nodeType":"ExpressionStatement","src":"24954:17:14"},{"expression":{"id":4127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4125,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"24989:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24999:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24989:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4128,"nodeType":"ExpressionStatement","src":"24989:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25033:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25042:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25048:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25042:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25033:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4147,"nodeType":"IfStatement","src":"25029:103:14","trueBody":{"id":4146,"nodeType":"Block","src":"25052:80:14","statements":[{"expression":{"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4136,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25070:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25079:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25085:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25079:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25070:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4141,"nodeType":"ExpressionStatement","src":"25070:17:14"},{"expression":{"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4142,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25105:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25115:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25105:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4145,"nodeType":"ExpressionStatement","src":"25105:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4148,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25149:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25158:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25164:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25158:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25149:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4164,"nodeType":"IfStatement","src":"25145:100:14","trueBody":{"id":4163,"nodeType":"Block","src":"25167:78:14","statements":[{"expression":{"id":4157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4153,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25185:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25194:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25200:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25194:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25185:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4158,"nodeType":"ExpressionStatement","src":"25185:16:14"},{"expression":{"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4159,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25219:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25229:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25219:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4162,"nodeType":"ExpressionStatement","src":"25219:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25262:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25271:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25277:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25271:7:14","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25262:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4181,"nodeType":"IfStatement","src":"25258:100:14","trueBody":{"id":4180,"nodeType":"Block","src":"25280:78:14","statements":[{"expression":{"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4170,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25298:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25307:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25313:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25307:7:14","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25298:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4175,"nodeType":"ExpressionStatement","src":"25298:16:14"},{"expression":{"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4176,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25332:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25342:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25332:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4179,"nodeType":"ExpressionStatement","src":"25332:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4182,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25375:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25384:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25390:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25384:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"25375:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4198,"nodeType":"IfStatement","src":"25371:100:14","trueBody":{"id":4197,"nodeType":"Block","src":"25393:78:14","statements":[{"expression":{"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4187,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25411:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25420:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25426:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25420:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"25411:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4192,"nodeType":"ExpressionStatement","src":"25411:16:14"},{"expression":{"id":4195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4193,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25445:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25455:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25445:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4196,"nodeType":"ExpressionStatement","src":"25445:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4199,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25488:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":4202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25497:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":4201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25503:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25497:7:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"25488:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4209,"nodeType":"IfStatement","src":"25484:66:14","trueBody":{"id":4208,"nodeType":"Block","src":"25506:44:14","statements":[{"expression":{"id":4206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4204,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25524:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25534:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25524:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4207,"nodeType":"ExpressionStatement","src":"25524:11:14"}]}}]},{"expression":{"id":4211,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25576:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4092,"id":4212,"nodeType":"Return","src":"25569:13:14"}]},"documentation":{"id":4086,"nodeType":"StructuredDocumentation","src":"24548:120:14","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":4214,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"24682:5:14","nodeType":"FunctionDefinition","parameters":{"id":4089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4088,"mutability":"mutable","name":"value","nameLocation":"24696:5:14","nodeType":"VariableDeclaration","scope":4214,"src":"24688:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4087,"name":"uint256","nodeType":"ElementaryTypeName","src":"24688:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24687:15:14"},"returnParameters":{"id":4092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4214,"src":"24726:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4090,"name":"uint256","nodeType":"ElementaryTypeName","src":"24726:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24725:9:14"},"scope":4442,"src":"24673:916:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4247,"nodeType":"Block","src":"25824:177:14","statements":[{"id":4246,"nodeType":"UncheckedBlock","src":"25834:161:14","statements":[{"assignments":[4226],"declarations":[{"constant":false,"id":4226,"mutability":"mutable","name":"result","nameLocation":"25866:6:14","nodeType":"VariableDeclaration","scope":4246,"src":"25858:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4225,"name":"uint256","nodeType":"ElementaryTypeName","src":"25858:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4230,"initialValue":{"arguments":[{"id":4228,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"25881:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4227,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[4214,4248],"referencedDeclaration":4214,"src":"25875:5:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25875:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25858:29:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4231,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4226,"src":"25908:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4235,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4220,"src":"25950:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4234,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"25933:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25933:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25963:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":4238,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4226,"src":"25969:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25963:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"25978:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25963:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25933:50:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4232,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"25917:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25926:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"25917:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25917:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25908:76:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4224,"id":4245,"nodeType":"Return","src":"25901:83:14"}]}]},"documentation":{"id":4215,"nodeType":"StructuredDocumentation","src":"25595: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":4248,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"25752:5:14","nodeType":"FunctionDefinition","parameters":{"id":4221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4217,"mutability":"mutable","name":"value","nameLocation":"25766:5:14","nodeType":"VariableDeclaration","scope":4248,"src":"25758:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4216,"name":"uint256","nodeType":"ElementaryTypeName","src":"25758:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4220,"mutability":"mutable","name":"rounding","nameLocation":"25782:8:14","nodeType":"VariableDeclaration","scope":4248,"src":"25773:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4219,"nodeType":"UserDefinedTypeName","pathNode":{"id":4218,"name":"Rounding","nameLocations":["25773:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"25773:8:14"},"referencedDeclaration":2869,"src":"25773:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"25757:34:14"},"returnParameters":{"id":4224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4248,"src":"25815:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4222,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25814:9:14"},"scope":4442,"src":"25743:258:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4384,"nodeType":"Block","src":"26321:674:14","statements":[{"assignments":[4257],"declarations":[{"constant":false,"id":4257,"mutability":"mutable","name":"result","nameLocation":"26339:6:14","nodeType":"VariableDeclaration","scope":4384,"src":"26331:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4256,"name":"uint256","nodeType":"ElementaryTypeName","src":"26331:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4259,"initialValue":{"hexValue":"30","id":4258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26348:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26331:18:14"},{"assignments":[4261],"declarations":[{"constant":false,"id":4261,"mutability":"mutable","name":"isGt","nameLocation":"26367:4:14","nodeType":"VariableDeclaration","scope":4384,"src":"26359:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4260,"name":"uint256","nodeType":"ElementaryTypeName","src":"26359:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4262,"nodeType":"VariableDeclarationStatement","src":"26359:12:14"},{"id":4381,"nodeType":"UncheckedBlock","src":"26381:585:14","statements":[{"expression":{"id":4275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4263,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26405:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4266,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26428:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":4272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26437:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26442:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26437:8:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":4270,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26436:10:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26449:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26436:14:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"26428:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4264,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26412:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26421:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26412:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26412:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26405:46:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4276,"nodeType":"ExpressionStatement","src":"26405:46:14"},{"expression":{"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26465:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4278,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26475:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"313238","id":4279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26482:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26475:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26465:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4282,"nodeType":"ExpressionStatement","src":"26465:20:14"},{"expression":{"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4283,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26499:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4284,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26509:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":4285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26516:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26509:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26499:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4288,"nodeType":"ExpressionStatement","src":"26499:19:14"},{"expression":{"id":4301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4289,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26533:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4292,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26556:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":4298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":4295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":4294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26570:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"26565:7:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":4296,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26564:9:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26576:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26564:13:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"26556:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4290,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26540:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26549:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26540:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26540:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26533:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4302,"nodeType":"ExpressionStatement","src":"26533:45:14"},{"expression":{"id":4307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4303,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26592:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4304,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26602:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":4305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26609:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"26602:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26592:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4308,"nodeType":"ExpressionStatement","src":"26592:19:14"},{"expression":{"id":4313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4309,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26625:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4310,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26635:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":4311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26642:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"26635:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26625:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4314,"nodeType":"ExpressionStatement","src":"26625:18:14"},{"expression":{"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4315,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26658:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26681:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":4324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":4321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26690:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":4320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26695:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"26690:7:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":4322,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26689:9:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26701:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26689:13:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"26681:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4316,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26665:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26674:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26665:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26665:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26658:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4328,"nodeType":"ExpressionStatement","src":"26658:45:14"},{"expression":{"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26717:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4330,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26727:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":4331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26734:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"26727:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26717:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4334,"nodeType":"ExpressionStatement","src":"26717:19:14"},{"expression":{"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26750:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4336,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26760:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"34","id":4337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26767:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"26760:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26750:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4340,"nodeType":"ExpressionStatement","src":"26750:18:14"},{"expression":{"id":4353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4341,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26783:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4344,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26806:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":4350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":4347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26815:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":4346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26820:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26815:7:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":4348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26814:9:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26826:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26814:13:14","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"26806:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4342,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26790:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26799:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26790:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26790:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26783:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4354,"nodeType":"ExpressionStatement","src":"26783:45:14"},{"expression":{"id":4359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4355,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26842:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4356,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26852:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":4357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26859:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26852:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26842:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4360,"nodeType":"ExpressionStatement","src":"26842:19:14"},{"expression":{"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4361,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26875:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4362,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26885:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":4363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26892:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26885:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26875:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4366,"nodeType":"ExpressionStatement","src":"26875:18:14"},{"expression":{"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4367,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26908:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4370,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26934:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":4376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":4373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26943:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":4372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26948:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"26943:6:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":4374,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26942:8:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26953:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26942:12:14","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"26934:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4368,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26918:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26927:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26918:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26918:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26908:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4380,"nodeType":"ExpressionStatement","src":"26908:47:14"}]},{"expression":{"id":4382,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26982:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4255,"id":4383,"nodeType":"Return","src":"26975:13:14"}]},"documentation":{"id":4249,"nodeType":"StructuredDocumentation","src":"26007: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":4385,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"26267:6:14","nodeType":"FunctionDefinition","parameters":{"id":4252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4251,"mutability":"mutable","name":"value","nameLocation":"26282:5:14","nodeType":"VariableDeclaration","scope":4385,"src":"26274:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4250,"name":"uint256","nodeType":"ElementaryTypeName","src":"26274:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26273:15:14"},"returnParameters":{"id":4255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4385,"src":"26312:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4253,"name":"uint256","nodeType":"ElementaryTypeName","src":"26312:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26311:9:14"},"scope":4442,"src":"26258:737:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4421,"nodeType":"Block","src":"27232:184:14","statements":[{"id":4420,"nodeType":"UncheckedBlock","src":"27242:168:14","statements":[{"assignments":[4397],"declarations":[{"constant":false,"id":4397,"mutability":"mutable","name":"result","nameLocation":"27274:6:14","nodeType":"VariableDeclaration","scope":4420,"src":"27266:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4396,"name":"uint256","nodeType":"ElementaryTypeName","src":"27266:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4401,"initialValue":{"arguments":[{"id":4399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4388,"src":"27290:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4398,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[4385,4422],"referencedDeclaration":4385,"src":"27283:6:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27283:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27266:30:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4402,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"27317:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4406,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4391,"src":"27359:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4405,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"27342:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27342:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27372:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4409,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"27378:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":4410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27388:1:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"27378:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4412,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27377:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27372:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4414,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4388,"src":"27393:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27372:26:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27342:56:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4403,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"27326:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27335:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"27326:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27326:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27317:82:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4395,"id":4419,"nodeType":"Return","src":"27310:89:14"}]}]},"documentation":{"id":4386,"nodeType":"StructuredDocumentation","src":"27001: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":4422,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"27159:6:14","nodeType":"FunctionDefinition","parameters":{"id":4392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4388,"mutability":"mutable","name":"value","nameLocation":"27174:5:14","nodeType":"VariableDeclaration","scope":4422,"src":"27166:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4387,"name":"uint256","nodeType":"ElementaryTypeName","src":"27166:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4391,"mutability":"mutable","name":"rounding","nameLocation":"27190:8:14","nodeType":"VariableDeclaration","scope":4422,"src":"27181:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4390,"nodeType":"UserDefinedTypeName","pathNode":{"id":4389,"name":"Rounding","nameLocations":["27181:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"27181:8:14"},"referencedDeclaration":2869,"src":"27181:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27165:34:14"},"returnParameters":{"id":4395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4422,"src":"27223:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4393,"name":"uint256","nodeType":"ElementaryTypeName","src":"27223:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27222:9:14"},"scope":4442,"src":"27150:266:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4440,"nodeType":"Block","src":"27614:48:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4433,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"27637:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27631:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4431,"name":"uint8","nodeType":"ElementaryTypeName","src":"27631:5:14","typeDescriptions":{}}},"id":4434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27631:15:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":4435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27649:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"27631:19:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27654:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27631:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4430,"id":4439,"nodeType":"Return","src":"27624:31:14"}]},"documentation":{"id":4423,"nodeType":"StructuredDocumentation","src":"27422:113:14","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":4441,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"27549:16:14","nodeType":"FunctionDefinition","parameters":{"id":4427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4426,"mutability":"mutable","name":"rounding","nameLocation":"27575:8:14","nodeType":"VariableDeclaration","scope":4441,"src":"27566:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4425,"nodeType":"UserDefinedTypeName","pathNode":{"id":4424,"name":"Rounding","nameLocations":["27566:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"27566:8:14"},"referencedDeclaration":2869,"src":"27566:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27565:19:14"},"returnParameters":{"id":4430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4441,"src":"27608:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4428,"name":"bool","nodeType":"ElementaryTypeName","src":"27608:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27607:6:14"},"scope":4442,"src":"27540:122:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4443,"src":"281:27383:14","usedErrors":[],"usedEvents":[]}],"src":"103:27562:14"},"id":14},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[6207]},"id":6208,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4444,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"192:24:15"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":4445,"nodeType":"StructuredDocumentation","src":"218:550:15","text":" @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"id":6207,"linearizedBaseContracts":[6207],"name":"SafeCast","nameLocation":"777:8:15","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4446,"nodeType":"StructuredDocumentation","src":"792:68:15","text":" @dev Value doesn't fit in an uint of `bits` size."},"errorSelector":"6dfcc650","id":4452,"name":"SafeCastOverflowedUintDowncast","nameLocation":"871:30:15","nodeType":"ErrorDefinition","parameters":{"id":4451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4448,"mutability":"mutable","name":"bits","nameLocation":"908:4:15","nodeType":"VariableDeclaration","scope":4452,"src":"902:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4447,"name":"uint8","nodeType":"ElementaryTypeName","src":"902:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4450,"mutability":"mutable","name":"value","nameLocation":"922:5:15","nodeType":"VariableDeclaration","scope":4452,"src":"914:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4449,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"901:27:15"},"src":"865:64:15"},{"documentation":{"id":4453,"nodeType":"StructuredDocumentation","src":"935:75:15","text":" @dev An int value doesn't fit in an uint of `bits` size."},"errorSelector":"a8ce4432","id":4457,"name":"SafeCastOverflowedIntToUint","nameLocation":"1021:27:15","nodeType":"ErrorDefinition","parameters":{"id":4456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"value","nameLocation":"1056:5:15","nodeType":"VariableDeclaration","scope":4457,"src":"1049:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4454,"name":"int256","nodeType":"ElementaryTypeName","src":"1049:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1048:14:15"},"src":"1015:48:15"},{"documentation":{"id":4458,"nodeType":"StructuredDocumentation","src":"1069:67:15","text":" @dev Value doesn't fit in an int of `bits` size."},"errorSelector":"327269a7","id":4464,"name":"SafeCastOverflowedIntDowncast","nameLocation":"1147:29:15","nodeType":"ErrorDefinition","parameters":{"id":4463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4460,"mutability":"mutable","name":"bits","nameLocation":"1183:4:15","nodeType":"VariableDeclaration","scope":4464,"src":"1177:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4459,"name":"uint8","nodeType":"ElementaryTypeName","src":"1177:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4462,"mutability":"mutable","name":"value","nameLocation":"1196:5:15","nodeType":"VariableDeclaration","scope":4464,"src":"1189:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4461,"name":"int256","nodeType":"ElementaryTypeName","src":"1189:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1176:26:15"},"src":"1141:62:15"},{"documentation":{"id":4465,"nodeType":"StructuredDocumentation","src":"1209:75:15","text":" @dev An uint value doesn't fit in an int of `bits` size."},"errorSelector":"24775e06","id":4469,"name":"SafeCastOverflowedUintToInt","nameLocation":"1295:27:15","nodeType":"ErrorDefinition","parameters":{"id":4468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4467,"mutability":"mutable","name":"value","nameLocation":"1331:5:15","nodeType":"VariableDeclaration","scope":4469,"src":"1323:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4466,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1322:15:15"},"src":"1289:49:15"},{"body":{"id":4496,"nodeType":"Block","src":"1695:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4472,"src":"1709:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1722:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":4479,"name":"uint248","nodeType":"ElementaryTypeName","src":"1722:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":4478,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1717:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1717:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":4482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1731:3:15","memberName":"max","nodeType":"MemberAccess","src":"1717:17:15","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1709:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4490,"nodeType":"IfStatement","src":"1705:105:15","trueBody":{"id":4489,"nodeType":"Block","src":"1736:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":4485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1788:3:15","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":4486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4472,"src":"1793:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4484,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"1757:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4488,"nodeType":"RevertStatement","src":"1750:49:15"}]}},{"expression":{"arguments":[{"id":4493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4472,"src":"1834:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1826:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":4491,"name":"uint248","nodeType":"ElementaryTypeName","src":"1826:7:15","typeDescriptions":{}}},"id":4494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":4476,"id":4495,"nodeType":"Return","src":"1819:21:15"}]},"documentation":{"id":4470,"nodeType":"StructuredDocumentation","src":"1344:280:15","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":4497,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1638:9:15","nodeType":"FunctionDefinition","parameters":{"id":4473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4472,"mutability":"mutable","name":"value","nameLocation":"1656:5:15","nodeType":"VariableDeclaration","scope":4497,"src":"1648:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4471,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1647:15:15"},"returnParameters":{"id":4476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4497,"src":"1686:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":4474,"name":"uint248","nodeType":"ElementaryTypeName","src":"1686:7:15","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1685:9:15"},"scope":6207,"src":"1629:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4524,"nodeType":"Block","src":"2204:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4505,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"2218:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2231:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":4507,"name":"uint240","nodeType":"ElementaryTypeName","src":"2231:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":4506,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2226:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2240:3:15","memberName":"max","nodeType":"MemberAccess","src":"2226:17:15","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"2218:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4518,"nodeType":"IfStatement","src":"2214:105:15","trueBody":{"id":4517,"nodeType":"Block","src":"2245:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":4513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:3:15","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":4514,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"2302:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4512,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"2266:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4516,"nodeType":"RevertStatement","src":"2259:49:15"}]}},{"expression":{"arguments":[{"id":4521,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"2343:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2335:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":4519,"name":"uint240","nodeType":"ElementaryTypeName","src":"2335:7:15","typeDescriptions":{}}},"id":4522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":4504,"id":4523,"nodeType":"Return","src":"2328:21:15"}]},"documentation":{"id":4498,"nodeType":"StructuredDocumentation","src":"1853:280:15","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":4525,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"2147:9:15","nodeType":"FunctionDefinition","parameters":{"id":4501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4500,"mutability":"mutable","name":"value","nameLocation":"2165:5:15","nodeType":"VariableDeclaration","scope":4525,"src":"2157:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2156:15:15"},"returnParameters":{"id":4504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4525,"src":"2195:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":4502,"name":"uint240","nodeType":"ElementaryTypeName","src":"2195:7:15","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"2194:9:15"},"scope":6207,"src":"2138:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4552,"nodeType":"Block","src":"2713:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"2727:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":4535,"name":"uint232","nodeType":"ElementaryTypeName","src":"2740:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":4534,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2735:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":4538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2749:3:15","memberName":"max","nodeType":"MemberAccess","src":"2735:17:15","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2727:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4546,"nodeType":"IfStatement","src":"2723:105:15","trueBody":{"id":4545,"nodeType":"Block","src":"2754:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":4541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:3:15","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":4542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"2811:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4540,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"2775:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4544,"nodeType":"RevertStatement","src":"2768:49:15"}]}},{"expression":{"arguments":[{"id":4549,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"2852:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":4547,"name":"uint232","nodeType":"ElementaryTypeName","src":"2844:7:15","typeDescriptions":{}}},"id":4550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":4532,"id":4551,"nodeType":"Return","src":"2837:21:15"}]},"documentation":{"id":4526,"nodeType":"StructuredDocumentation","src":"2362:280:15","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":4553,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2656:9:15","nodeType":"FunctionDefinition","parameters":{"id":4529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4528,"mutability":"mutable","name":"value","nameLocation":"2674:5:15","nodeType":"VariableDeclaration","scope":4553,"src":"2666:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4527,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:15:15"},"returnParameters":{"id":4532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4553,"src":"2704:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":4530,"name":"uint232","nodeType":"ElementaryTypeName","src":"2704:7:15","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2703:9:15"},"scope":6207,"src":"2647:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4580,"nodeType":"Block","src":"3222:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4561,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"3236:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3249:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":4563,"name":"uint224","nodeType":"ElementaryTypeName","src":"3249:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":4562,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3244:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":4566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:3:15","memberName":"max","nodeType":"MemberAccess","src":"3244:17:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3236:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4574,"nodeType":"IfStatement","src":"3232:105:15","trueBody":{"id":4573,"nodeType":"Block","src":"3263:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":4569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3315:3:15","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":4570,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"3320:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4568,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"3284:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3284:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4572,"nodeType":"RevertStatement","src":"3277:49:15"}]}},{"expression":{"arguments":[{"id":4577,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"3361:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3353:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":4575,"name":"uint224","nodeType":"ElementaryTypeName","src":"3353:7:15","typeDescriptions":{}}},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":4560,"id":4579,"nodeType":"Return","src":"3346:21:15"}]},"documentation":{"id":4554,"nodeType":"StructuredDocumentation","src":"2871:280:15","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":4581,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"3165:9:15","nodeType":"FunctionDefinition","parameters":{"id":4557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4556,"mutability":"mutable","name":"value","nameLocation":"3183:5:15","nodeType":"VariableDeclaration","scope":4581,"src":"3175:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4555,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:15:15"},"returnParameters":{"id":4560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4581,"src":"3213:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":4558,"name":"uint224","nodeType":"ElementaryTypeName","src":"3213:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3212:9:15"},"scope":6207,"src":"3156:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4608,"nodeType":"Block","src":"3731:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4589,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"3745:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3758:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":4591,"name":"uint216","nodeType":"ElementaryTypeName","src":"3758:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":4590,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3753:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":4594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3767:3:15","memberName":"max","nodeType":"MemberAccess","src":"3753:17:15","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3745:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4602,"nodeType":"IfStatement","src":"3741:105:15","trueBody":{"id":4601,"nodeType":"Block","src":"3772:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3824:3:15","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":4598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"3829:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4596,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"3793:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4600,"nodeType":"RevertStatement","src":"3786:49:15"}]}},{"expression":{"arguments":[{"id":4605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"3870:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3862:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":4603,"name":"uint216","nodeType":"ElementaryTypeName","src":"3862:7:15","typeDescriptions":{}}},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":4588,"id":4607,"nodeType":"Return","src":"3855:21:15"}]},"documentation":{"id":4582,"nodeType":"StructuredDocumentation","src":"3380:280:15","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":4609,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3674:9:15","nodeType":"FunctionDefinition","parameters":{"id":4585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4584,"mutability":"mutable","name":"value","nameLocation":"3692:5:15","nodeType":"VariableDeclaration","scope":4609,"src":"3684:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4583,"name":"uint256","nodeType":"ElementaryTypeName","src":"3684:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3683:15:15"},"returnParameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4609,"src":"3722:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":4586,"name":"uint216","nodeType":"ElementaryTypeName","src":"3722:7:15","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3721:9:15"},"scope":6207,"src":"3665:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4636,"nodeType":"Block","src":"4240:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4617,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"4254:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4267:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":4619,"name":"uint208","nodeType":"ElementaryTypeName","src":"4267:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":4618,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4262:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":4622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4276:3:15","memberName":"max","nodeType":"MemberAccess","src":"4262:17:15","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"4254:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4630,"nodeType":"IfStatement","src":"4250:105:15","trueBody":{"id":4629,"nodeType":"Block","src":"4281:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":4625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:3:15","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":4626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"4338:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4624,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4302:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4628,"nodeType":"RevertStatement","src":"4295:49:15"}]}},{"expression":{"arguments":[{"id":4633,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"4379:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4371:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":4631,"name":"uint208","nodeType":"ElementaryTypeName","src":"4371:7:15","typeDescriptions":{}}},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4371:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":4616,"id":4635,"nodeType":"Return","src":"4364:21:15"}]},"documentation":{"id":4610,"nodeType":"StructuredDocumentation","src":"3889:280:15","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":4637,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"4183:9:15","nodeType":"FunctionDefinition","parameters":{"id":4613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4612,"mutability":"mutable","name":"value","nameLocation":"4201:5:15","nodeType":"VariableDeclaration","scope":4637,"src":"4193:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4611,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4192:15:15"},"returnParameters":{"id":4616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4637,"src":"4231:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":4614,"name":"uint208","nodeType":"ElementaryTypeName","src":"4231:7:15","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"4230:9:15"},"scope":6207,"src":"4174:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4664,"nodeType":"Block","src":"4749:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4645,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4640,"src":"4763:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4776:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":4647,"name":"uint200","nodeType":"ElementaryTypeName","src":"4776:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":4646,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4771:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":4650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4785:3:15","memberName":"max","nodeType":"MemberAccess","src":"4771:17:15","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4763:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4658,"nodeType":"IfStatement","src":"4759:105:15","trueBody":{"id":4657,"nodeType":"Block","src":"4790:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":4653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:3:15","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":4654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4640,"src":"4847:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4652,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4811:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4656,"nodeType":"RevertStatement","src":"4804:49:15"}]}},{"expression":{"arguments":[{"id":4661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4640,"src":"4888:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4880:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":4659,"name":"uint200","nodeType":"ElementaryTypeName","src":"4880:7:15","typeDescriptions":{}}},"id":4662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":4644,"id":4663,"nodeType":"Return","src":"4873:21:15"}]},"documentation":{"id":4638,"nodeType":"StructuredDocumentation","src":"4398:280:15","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":4665,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4692:9:15","nodeType":"FunctionDefinition","parameters":{"id":4641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4640,"mutability":"mutable","name":"value","nameLocation":"4710:5:15","nodeType":"VariableDeclaration","scope":4665,"src":"4702:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4639,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4701:15:15"},"returnParameters":{"id":4644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4665,"src":"4740:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":4642,"name":"uint200","nodeType":"ElementaryTypeName","src":"4740:7:15","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4739:9:15"},"scope":6207,"src":"4683:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4692,"nodeType":"Block","src":"5258:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4673,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4668,"src":"5272:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5285:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":4675,"name":"uint192","nodeType":"ElementaryTypeName","src":"5285:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":4674,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5280:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":4678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5294:3:15","memberName":"max","nodeType":"MemberAccess","src":"5280:17:15","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5272:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4686,"nodeType":"IfStatement","src":"5268:105:15","trueBody":{"id":4685,"nodeType":"Block","src":"5299:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":4681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5351:3:15","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":4682,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4668,"src":"5356:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4680,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"5320:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4684,"nodeType":"RevertStatement","src":"5313:49:15"}]}},{"expression":{"arguments":[{"id":4689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4668,"src":"5397:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":4687,"name":"uint192","nodeType":"ElementaryTypeName","src":"5389:7:15","typeDescriptions":{}}},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":4672,"id":4691,"nodeType":"Return","src":"5382:21:15"}]},"documentation":{"id":4666,"nodeType":"StructuredDocumentation","src":"4907:280:15","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":4693,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"5201:9:15","nodeType":"FunctionDefinition","parameters":{"id":4669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4668,"mutability":"mutable","name":"value","nameLocation":"5219:5:15","nodeType":"VariableDeclaration","scope":4693,"src":"5211:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4667,"name":"uint256","nodeType":"ElementaryTypeName","src":"5211:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5210:15:15"},"returnParameters":{"id":4672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4693,"src":"5249:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":4670,"name":"uint192","nodeType":"ElementaryTypeName","src":"5249:7:15","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"5248:9:15"},"scope":6207,"src":"5192:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4720,"nodeType":"Block","src":"5767:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4701,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4696,"src":"5781:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":4703,"name":"uint184","nodeType":"ElementaryTypeName","src":"5794:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":4702,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5789:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5803:3:15","memberName":"max","nodeType":"MemberAccess","src":"5789:17:15","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5781:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4714,"nodeType":"IfStatement","src":"5777:105:15","trueBody":{"id":4713,"nodeType":"Block","src":"5808:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":4709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5860:3:15","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":4710,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4696,"src":"5865:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4708,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"5829:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4712,"nodeType":"RevertStatement","src":"5822:49:15"}]}},{"expression":{"arguments":[{"id":4717,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4696,"src":"5906:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5898:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":4715,"name":"uint184","nodeType":"ElementaryTypeName","src":"5898:7:15","typeDescriptions":{}}},"id":4718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5898:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":4700,"id":4719,"nodeType":"Return","src":"5891:21:15"}]},"documentation":{"id":4694,"nodeType":"StructuredDocumentation","src":"5416:280:15","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":4721,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5710:9:15","nodeType":"FunctionDefinition","parameters":{"id":4697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4696,"mutability":"mutable","name":"value","nameLocation":"5728:5:15","nodeType":"VariableDeclaration","scope":4721,"src":"5720:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4695,"name":"uint256","nodeType":"ElementaryTypeName","src":"5720:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5719:15:15"},"returnParameters":{"id":4700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4721,"src":"5758:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":4698,"name":"uint184","nodeType":"ElementaryTypeName","src":"5758:7:15","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5757:9:15"},"scope":6207,"src":"5701:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4748,"nodeType":"Block","src":"6276:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4729,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"6290:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6303:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":4731,"name":"uint176","nodeType":"ElementaryTypeName","src":"6303:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":4730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6298:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":4734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6312:3:15","memberName":"max","nodeType":"MemberAccess","src":"6298:17:15","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6290:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4742,"nodeType":"IfStatement","src":"6286:105:15","trueBody":{"id":4741,"nodeType":"Block","src":"6317:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":4737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:3:15","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":4738,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"6374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4736,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"6338:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4740,"nodeType":"RevertStatement","src":"6331:49:15"}]}},{"expression":{"arguments":[{"id":4745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"6415:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6407:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":4743,"name":"uint176","nodeType":"ElementaryTypeName","src":"6407:7:15","typeDescriptions":{}}},"id":4746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":4728,"id":4747,"nodeType":"Return","src":"6400:21:15"}]},"documentation":{"id":4722,"nodeType":"StructuredDocumentation","src":"5925:280:15","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":4749,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"6219:9:15","nodeType":"FunctionDefinition","parameters":{"id":4725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4724,"mutability":"mutable","name":"value","nameLocation":"6237:5:15","nodeType":"VariableDeclaration","scope":4749,"src":"6229:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4723,"name":"uint256","nodeType":"ElementaryTypeName","src":"6229:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6228:15:15"},"returnParameters":{"id":4728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4749,"src":"6267:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":4726,"name":"uint176","nodeType":"ElementaryTypeName","src":"6267:7:15","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6266:9:15"},"scope":6207,"src":"6210:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4776,"nodeType":"Block","src":"6785:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4757,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"6799:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6812:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":4759,"name":"uint168","nodeType":"ElementaryTypeName","src":"6812:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":4758,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6807:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":4762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6821:3:15","memberName":"max","nodeType":"MemberAccess","src":"6807:17:15","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6799:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4770,"nodeType":"IfStatement","src":"6795:105:15","trueBody":{"id":4769,"nodeType":"Block","src":"6826:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":4765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6878:3:15","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":4766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"6883:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4764,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"6847:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6847:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4768,"nodeType":"RevertStatement","src":"6840:49:15"}]}},{"expression":{"arguments":[{"id":4773,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"6924:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":4771,"name":"uint168","nodeType":"ElementaryTypeName","src":"6916:7:15","typeDescriptions":{}}},"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":4756,"id":4775,"nodeType":"Return","src":"6909:21:15"}]},"documentation":{"id":4750,"nodeType":"StructuredDocumentation","src":"6434:280:15","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":4777,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6728:9:15","nodeType":"FunctionDefinition","parameters":{"id":4753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"value","nameLocation":"6746:5:15","nodeType":"VariableDeclaration","scope":4777,"src":"6738:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4751,"name":"uint256","nodeType":"ElementaryTypeName","src":"6738:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6737:15:15"},"returnParameters":{"id":4756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4777,"src":"6776:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":4754,"name":"uint168","nodeType":"ElementaryTypeName","src":"6776:7:15","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6775:9:15"},"scope":6207,"src":"6719:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4804,"nodeType":"Block","src":"7294:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4785,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"7308:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7321:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4787,"name":"uint160","nodeType":"ElementaryTypeName","src":"7321:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":4786,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7316:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7316:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":4790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7330:3:15","memberName":"max","nodeType":"MemberAccess","src":"7316:17:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7308:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4798,"nodeType":"IfStatement","src":"7304:105:15","trueBody":{"id":4797,"nodeType":"Block","src":"7335:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":4793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7387:3:15","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":4794,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"7392:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4792,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"7356:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4796,"nodeType":"RevertStatement","src":"7349:49:15"}]}},{"expression":{"arguments":[{"id":4801,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"7433:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7425:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4799,"name":"uint160","nodeType":"ElementaryTypeName","src":"7425:7:15","typeDescriptions":{}}},"id":4802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7425:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":4784,"id":4803,"nodeType":"Return","src":"7418:21:15"}]},"documentation":{"id":4778,"nodeType":"StructuredDocumentation","src":"6943:280:15","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":4805,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7237:9:15","nodeType":"FunctionDefinition","parameters":{"id":4781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4780,"mutability":"mutable","name":"value","nameLocation":"7255:5:15","nodeType":"VariableDeclaration","scope":4805,"src":"7247:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4779,"name":"uint256","nodeType":"ElementaryTypeName","src":"7247:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7246:15:15"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4805,"src":"7285:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":4782,"name":"uint160","nodeType":"ElementaryTypeName","src":"7285:7:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7284:9:15"},"scope":6207,"src":"7228:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4832,"nodeType":"Block","src":"7803:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"7817:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7830:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":4815,"name":"uint152","nodeType":"ElementaryTypeName","src":"7830:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":4814,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7825:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":4818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7839:3:15","memberName":"max","nodeType":"MemberAccess","src":"7825:17:15","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7817:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4826,"nodeType":"IfStatement","src":"7813:105:15","trueBody":{"id":4825,"nodeType":"Block","src":"7844:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":4821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:3:15","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":4822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"7901:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4820,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"7865:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7865:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4824,"nodeType":"RevertStatement","src":"7858:49:15"}]}},{"expression":{"arguments":[{"id":4829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"7942:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7934:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":4827,"name":"uint152","nodeType":"ElementaryTypeName","src":"7934:7:15","typeDescriptions":{}}},"id":4830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7934:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":4812,"id":4831,"nodeType":"Return","src":"7927:21:15"}]},"documentation":{"id":4806,"nodeType":"StructuredDocumentation","src":"7452:280:15","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":4833,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7746:9:15","nodeType":"FunctionDefinition","parameters":{"id":4809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4808,"mutability":"mutable","name":"value","nameLocation":"7764:5:15","nodeType":"VariableDeclaration","scope":4833,"src":"7756:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4807,"name":"uint256","nodeType":"ElementaryTypeName","src":"7756:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7755:15:15"},"returnParameters":{"id":4812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4833,"src":"7794:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":4810,"name":"uint152","nodeType":"ElementaryTypeName","src":"7794:7:15","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7793:9:15"},"scope":6207,"src":"7737:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4860,"nodeType":"Block","src":"8312:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4841,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"8326:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8339:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":4843,"name":"uint144","nodeType":"ElementaryTypeName","src":"8339:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":4842,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8334:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8334:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":4846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8348:3:15","memberName":"max","nodeType":"MemberAccess","src":"8334:17:15","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8326:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4854,"nodeType":"IfStatement","src":"8322:105:15","trueBody":{"id":4853,"nodeType":"Block","src":"8353:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":4849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8405:3:15","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":4850,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"8410:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4848,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"8374:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8374:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4852,"nodeType":"RevertStatement","src":"8367:49:15"}]}},{"expression":{"arguments":[{"id":4857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"8451:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8443:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":4855,"name":"uint144","nodeType":"ElementaryTypeName","src":"8443:7:15","typeDescriptions":{}}},"id":4858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8443:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":4840,"id":4859,"nodeType":"Return","src":"8436:21:15"}]},"documentation":{"id":4834,"nodeType":"StructuredDocumentation","src":"7961:280:15","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":4861,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8255:9:15","nodeType":"FunctionDefinition","parameters":{"id":4837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4836,"mutability":"mutable","name":"value","nameLocation":"8273:5:15","nodeType":"VariableDeclaration","scope":4861,"src":"8265:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4835,"name":"uint256","nodeType":"ElementaryTypeName","src":"8265:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8264:15:15"},"returnParameters":{"id":4840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4861,"src":"8303:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":4838,"name":"uint144","nodeType":"ElementaryTypeName","src":"8303:7:15","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8302:9:15"},"scope":6207,"src":"8246:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4888,"nodeType":"Block","src":"8821:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4869,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4864,"src":"8835:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":4871,"name":"uint136","nodeType":"ElementaryTypeName","src":"8848:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":4870,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8843:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8843:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":4874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8857:3:15","memberName":"max","nodeType":"MemberAccess","src":"8843:17:15","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8835:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4882,"nodeType":"IfStatement","src":"8831:105:15","trueBody":{"id":4881,"nodeType":"Block","src":"8862:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":4877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8914:3:15","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":4878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4864,"src":"8919:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4876,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"8883:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4880,"nodeType":"RevertStatement","src":"8876:49:15"}]}},{"expression":{"arguments":[{"id":4885,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4864,"src":"8960:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8952:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":4883,"name":"uint136","nodeType":"ElementaryTypeName","src":"8952:7:15","typeDescriptions":{}}},"id":4886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":4868,"id":4887,"nodeType":"Return","src":"8945:21:15"}]},"documentation":{"id":4862,"nodeType":"StructuredDocumentation","src":"8470:280:15","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":4889,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8764:9:15","nodeType":"FunctionDefinition","parameters":{"id":4865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4864,"mutability":"mutable","name":"value","nameLocation":"8782:5:15","nodeType":"VariableDeclaration","scope":4889,"src":"8774:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4863,"name":"uint256","nodeType":"ElementaryTypeName","src":"8774:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8773:15:15"},"returnParameters":{"id":4868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4889,"src":"8812:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":4866,"name":"uint136","nodeType":"ElementaryTypeName","src":"8812:7:15","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8811:9:15"},"scope":6207,"src":"8755:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4916,"nodeType":"Block","src":"9330:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4897,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"9344:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9357:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4899,"name":"uint128","nodeType":"ElementaryTypeName","src":"9357:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":4898,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9352:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9352:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":4902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9366:3:15","memberName":"max","nodeType":"MemberAccess","src":"9352:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9344:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4910,"nodeType":"IfStatement","src":"9340:105:15","trueBody":{"id":4909,"nodeType":"Block","src":"9371:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":4905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9423:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":4906,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"9428:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4904,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"9392:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4908,"nodeType":"RevertStatement","src":"9385:49:15"}]}},{"expression":{"arguments":[{"id":4913,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"9469:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9461:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4911,"name":"uint128","nodeType":"ElementaryTypeName","src":"9461:7:15","typeDescriptions":{}}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9461:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":4896,"id":4915,"nodeType":"Return","src":"9454:21:15"}]},"documentation":{"id":4890,"nodeType":"StructuredDocumentation","src":"8979:280:15","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":4917,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9273:9:15","nodeType":"FunctionDefinition","parameters":{"id":4893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4892,"mutability":"mutable","name":"value","nameLocation":"9291:5:15","nodeType":"VariableDeclaration","scope":4917,"src":"9283:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4891,"name":"uint256","nodeType":"ElementaryTypeName","src":"9283:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:15:15"},"returnParameters":{"id":4896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4917,"src":"9321:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4894,"name":"uint128","nodeType":"ElementaryTypeName","src":"9321:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9320:9:15"},"scope":6207,"src":"9264:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4944,"nodeType":"Block","src":"9839:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4925,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"9853:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9866:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":4927,"name":"uint120","nodeType":"ElementaryTypeName","src":"9866:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":4926,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9861:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":4930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9875:3:15","memberName":"max","nodeType":"MemberAccess","src":"9861:17:15","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9853:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4938,"nodeType":"IfStatement","src":"9849:105:15","trueBody":{"id":4937,"nodeType":"Block","src":"9880:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":4933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9932:3:15","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":4934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"9937:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4932,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"9901:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9901:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4936,"nodeType":"RevertStatement","src":"9894:49:15"}]}},{"expression":{"arguments":[{"id":4941,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"9978:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9970:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":4939,"name":"uint120","nodeType":"ElementaryTypeName","src":"9970:7:15","typeDescriptions":{}}},"id":4942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9970:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":4924,"id":4943,"nodeType":"Return","src":"9963:21:15"}]},"documentation":{"id":4918,"nodeType":"StructuredDocumentation","src":"9488:280:15","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":4945,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9782:9:15","nodeType":"FunctionDefinition","parameters":{"id":4921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4920,"mutability":"mutable","name":"value","nameLocation":"9800:5:15","nodeType":"VariableDeclaration","scope":4945,"src":"9792:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4919,"name":"uint256","nodeType":"ElementaryTypeName","src":"9792:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9791:15:15"},"returnParameters":{"id":4924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4945,"src":"9830:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":4922,"name":"uint120","nodeType":"ElementaryTypeName","src":"9830:7:15","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9829:9:15"},"scope":6207,"src":"9773:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4972,"nodeType":"Block","src":"10348:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4953,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"10362:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10375:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":4955,"name":"uint112","nodeType":"ElementaryTypeName","src":"10375:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":4954,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10370:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":4958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10384:3:15","memberName":"max","nodeType":"MemberAccess","src":"10370:17:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10362:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4966,"nodeType":"IfStatement","src":"10358:105:15","trueBody":{"id":4965,"nodeType":"Block","src":"10389:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":4961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10441:3:15","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":4962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"10446:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4960,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"10410:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4964,"nodeType":"RevertStatement","src":"10403:49:15"}]}},{"expression":{"arguments":[{"id":4969,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"10487:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10479:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":4967,"name":"uint112","nodeType":"ElementaryTypeName","src":"10479:7:15","typeDescriptions":{}}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10479:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":4952,"id":4971,"nodeType":"Return","src":"10472:21:15"}]},"documentation":{"id":4946,"nodeType":"StructuredDocumentation","src":"9997:280:15","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":4973,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10291:9:15","nodeType":"FunctionDefinition","parameters":{"id":4949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4948,"mutability":"mutable","name":"value","nameLocation":"10309:5:15","nodeType":"VariableDeclaration","scope":4973,"src":"10301:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4947,"name":"uint256","nodeType":"ElementaryTypeName","src":"10301:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10300:15:15"},"returnParameters":{"id":4952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4973,"src":"10339:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":4950,"name":"uint112","nodeType":"ElementaryTypeName","src":"10339:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10338:9:15"},"scope":6207,"src":"10282:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5000,"nodeType":"Block","src":"10857:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4981,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"10871:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10884:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":4983,"name":"uint104","nodeType":"ElementaryTypeName","src":"10884:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":4982,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10879:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10879:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":4986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10893:3:15","memberName":"max","nodeType":"MemberAccess","src":"10879:17:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10871:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4994,"nodeType":"IfStatement","src":"10867:105:15","trueBody":{"id":4993,"nodeType":"Block","src":"10898:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":4989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10950:3:15","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":4990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"10955:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4988,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"10919:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10919:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4992,"nodeType":"RevertStatement","src":"10912:49:15"}]}},{"expression":{"arguments":[{"id":4997,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"10996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10988:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":4995,"name":"uint104","nodeType":"ElementaryTypeName","src":"10988:7:15","typeDescriptions":{}}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10988:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":4980,"id":4999,"nodeType":"Return","src":"10981:21:15"}]},"documentation":{"id":4974,"nodeType":"StructuredDocumentation","src":"10506:280:15","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":5001,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10800:9:15","nodeType":"FunctionDefinition","parameters":{"id":4977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4976,"mutability":"mutable","name":"value","nameLocation":"10818:5:15","nodeType":"VariableDeclaration","scope":5001,"src":"10810:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4975,"name":"uint256","nodeType":"ElementaryTypeName","src":"10810:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10809:15:15"},"returnParameters":{"id":4980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5001,"src":"10848:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":4978,"name":"uint104","nodeType":"ElementaryTypeName","src":"10848:7:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10847:9:15"},"scope":6207,"src":"10791:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5028,"nodeType":"Block","src":"11360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5009,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5004,"src":"11374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":5011,"name":"uint96","nodeType":"ElementaryTypeName","src":"11387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":5010,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":5014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11395:3:15","memberName":"max","nodeType":"MemberAccess","src":"11382:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5022,"nodeType":"IfStatement","src":"11370:103:15","trueBody":{"id":5021,"nodeType":"Block","src":"11400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":5017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":5018,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5004,"src":"11456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5016,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"11421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5020,"nodeType":"RevertStatement","src":"11414:48:15"}]}},{"expression":{"arguments":[{"id":5025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5004,"src":"11496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":5023,"name":"uint96","nodeType":"ElementaryTypeName","src":"11489:6:15","typeDescriptions":{}}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":5008,"id":5027,"nodeType":"Return","src":"11482:20:15"}]},"documentation":{"id":5002,"nodeType":"StructuredDocumentation","src":"11015:276:15","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":5029,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5004,"mutability":"mutable","name":"value","nameLocation":"11322:5:15","nodeType":"VariableDeclaration","scope":5029,"src":"11314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5003,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:15:15"},"returnParameters":{"id":5008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5029,"src":"11352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":5006,"name":"uint96","nodeType":"ElementaryTypeName","src":"11352:6:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11351:8:15"},"scope":6207,"src":"11296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5056,"nodeType":"Block","src":"11860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5037,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"11874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5039,"name":"uint88","nodeType":"ElementaryTypeName","src":"11887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":5038,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":5042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11895:3:15","memberName":"max","nodeType":"MemberAccess","src":"11882:16:15","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5050,"nodeType":"IfStatement","src":"11870:103:15","trueBody":{"id":5049,"nodeType":"Block","src":"11900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":5045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":5046,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"11956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5044,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"11921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5048,"nodeType":"RevertStatement","src":"11914:48:15"}]}},{"expression":{"arguments":[{"id":5053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"11996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5051,"name":"uint88","nodeType":"ElementaryTypeName","src":"11989:6:15","typeDescriptions":{}}},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":5036,"id":5055,"nodeType":"Return","src":"11982:20:15"}]},"documentation":{"id":5030,"nodeType":"StructuredDocumentation","src":"11515:276:15","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":5057,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5032,"mutability":"mutable","name":"value","nameLocation":"11822:5:15","nodeType":"VariableDeclaration","scope":5057,"src":"11814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5031,"name":"uint256","nodeType":"ElementaryTypeName","src":"11814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11813:15:15"},"returnParameters":{"id":5036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5057,"src":"11852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":5034,"name":"uint88","nodeType":"ElementaryTypeName","src":"11852:6:15","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11851:8:15"},"scope":6207,"src":"11796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5084,"nodeType":"Block","src":"12360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"12374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":5067,"name":"uint80","nodeType":"ElementaryTypeName","src":"12387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":5066,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":5070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12395:3:15","memberName":"max","nodeType":"MemberAccess","src":"12382:16:15","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5078,"nodeType":"IfStatement","src":"12370:103:15","trueBody":{"id":5077,"nodeType":"Block","src":"12400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":5073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":5074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"12456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5072,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"12421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5076,"nodeType":"RevertStatement","src":"12414:48:15"}]}},{"expression":{"arguments":[{"id":5081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"12496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":5079,"name":"uint80","nodeType":"ElementaryTypeName","src":"12489:6:15","typeDescriptions":{}}},"id":5082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":5064,"id":5083,"nodeType":"Return","src":"12482:20:15"}]},"documentation":{"id":5058,"nodeType":"StructuredDocumentation","src":"12015:276:15","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":5085,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5060,"mutability":"mutable","name":"value","nameLocation":"12322:5:15","nodeType":"VariableDeclaration","scope":5085,"src":"12314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5059,"name":"uint256","nodeType":"ElementaryTypeName","src":"12314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12313:15:15"},"returnParameters":{"id":5064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5085,"src":"12352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":5062,"name":"uint80","nodeType":"ElementaryTypeName","src":"12352:6:15","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12351:8:15"},"scope":6207,"src":"12296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5112,"nodeType":"Block","src":"12860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5093,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":5095,"name":"uint72","nodeType":"ElementaryTypeName","src":"12887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":5094,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":5098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12895:3:15","memberName":"max","nodeType":"MemberAccess","src":"12882:16:15","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5106,"nodeType":"IfStatement","src":"12870:103:15","trueBody":{"id":5105,"nodeType":"Block","src":"12900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":5101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":5102,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5100,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"12921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5104,"nodeType":"RevertStatement","src":"12914:48:15"}]}},{"expression":{"arguments":[{"id":5109,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":5107,"name":"uint72","nodeType":"ElementaryTypeName","src":"12989:6:15","typeDescriptions":{}}},"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":5092,"id":5111,"nodeType":"Return","src":"12982:20:15"}]},"documentation":{"id":5086,"nodeType":"StructuredDocumentation","src":"12515:276:15","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":5113,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5088,"mutability":"mutable","name":"value","nameLocation":"12822:5:15","nodeType":"VariableDeclaration","scope":5113,"src":"12814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5087,"name":"uint256","nodeType":"ElementaryTypeName","src":"12814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12813:15:15"},"returnParameters":{"id":5092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5113,"src":"12852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":5090,"name":"uint72","nodeType":"ElementaryTypeName","src":"12852:6:15","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12851:8:15"},"scope":6207,"src":"12796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5140,"nodeType":"Block","src":"13360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"13374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5123,"name":"uint64","nodeType":"ElementaryTypeName","src":"13387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":5122,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13395:3:15","memberName":"max","nodeType":"MemberAccess","src":"13382:16:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5134,"nodeType":"IfStatement","src":"13370:103:15","trueBody":{"id":5133,"nodeType":"Block","src":"13400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":5129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":5130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"13456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5128,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5132,"nodeType":"RevertStatement","src":"13414:48:15"}]}},{"expression":{"arguments":[{"id":5137,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"13496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5135,"name":"uint64","nodeType":"ElementaryTypeName","src":"13489:6:15","typeDescriptions":{}}},"id":5138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5120,"id":5139,"nodeType":"Return","src":"13482:20:15"}]},"documentation":{"id":5114,"nodeType":"StructuredDocumentation","src":"13015:276:15","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":5141,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5116,"mutability":"mutable","name":"value","nameLocation":"13322:5:15","nodeType":"VariableDeclaration","scope":5141,"src":"13314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5115,"name":"uint256","nodeType":"ElementaryTypeName","src":"13314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13313:15:15"},"returnParameters":{"id":5120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5141,"src":"13352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5118,"name":"uint64","nodeType":"ElementaryTypeName","src":"13352:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13351:8:15"},"scope":6207,"src":"13296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5168,"nodeType":"Block","src":"13860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5144,"src":"13874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":5151,"name":"uint56","nodeType":"ElementaryTypeName","src":"13887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":5150,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":5154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13895:3:15","memberName":"max","nodeType":"MemberAccess","src":"13882:16:15","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5162,"nodeType":"IfStatement","src":"13870:103:15","trueBody":{"id":5161,"nodeType":"Block","src":"13900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":5157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":5158,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5144,"src":"13956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5156,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5160,"nodeType":"RevertStatement","src":"13914:48:15"}]}},{"expression":{"arguments":[{"id":5165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5144,"src":"13996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":5163,"name":"uint56","nodeType":"ElementaryTypeName","src":"13989:6:15","typeDescriptions":{}}},"id":5166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":5148,"id":5167,"nodeType":"Return","src":"13982:20:15"}]},"documentation":{"id":5142,"nodeType":"StructuredDocumentation","src":"13515:276:15","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":5169,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5144,"mutability":"mutable","name":"value","nameLocation":"13822:5:15","nodeType":"VariableDeclaration","scope":5169,"src":"13814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5143,"name":"uint256","nodeType":"ElementaryTypeName","src":"13814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13813:15:15"},"returnParameters":{"id":5148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5169,"src":"13852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":5146,"name":"uint56","nodeType":"ElementaryTypeName","src":"13852:6:15","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13851:8:15"},"scope":6207,"src":"13796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5196,"nodeType":"Block","src":"14360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"14374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":5179,"name":"uint48","nodeType":"ElementaryTypeName","src":"14387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":5178,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":5182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14395:3:15","memberName":"max","nodeType":"MemberAccess","src":"14382:16:15","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5190,"nodeType":"IfStatement","src":"14370:103:15","trueBody":{"id":5189,"nodeType":"Block","src":"14400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":5185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":5186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"14456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5184,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"14421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5188,"nodeType":"RevertStatement","src":"14414:48:15"}]}},{"expression":{"arguments":[{"id":5193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"14496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":5191,"name":"uint48","nodeType":"ElementaryTypeName","src":"14489:6:15","typeDescriptions":{}}},"id":5194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":5176,"id":5195,"nodeType":"Return","src":"14482:20:15"}]},"documentation":{"id":5170,"nodeType":"StructuredDocumentation","src":"14015:276:15","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":5197,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5172,"mutability":"mutable","name":"value","nameLocation":"14322:5:15","nodeType":"VariableDeclaration","scope":5197,"src":"14314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5171,"name":"uint256","nodeType":"ElementaryTypeName","src":"14314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14313:15:15"},"returnParameters":{"id":5176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5197,"src":"14352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":5174,"name":"uint48","nodeType":"ElementaryTypeName","src":"14352:6:15","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14351:8:15"},"scope":6207,"src":"14296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5224,"nodeType":"Block","src":"14860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"14874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":5207,"name":"uint40","nodeType":"ElementaryTypeName","src":"14887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":5206,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":5210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14895:3:15","memberName":"max","nodeType":"MemberAccess","src":"14882:16:15","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5218,"nodeType":"IfStatement","src":"14870:103:15","trueBody":{"id":5217,"nodeType":"Block","src":"14900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":5213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":5214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"14956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5212,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"14921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5216,"nodeType":"RevertStatement","src":"14914:48:15"}]}},{"expression":{"arguments":[{"id":5221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"14996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":5219,"name":"uint40","nodeType":"ElementaryTypeName","src":"14989:6:15","typeDescriptions":{}}},"id":5222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":5204,"id":5223,"nodeType":"Return","src":"14982:20:15"}]},"documentation":{"id":5198,"nodeType":"StructuredDocumentation","src":"14515:276:15","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":5225,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5200,"mutability":"mutable","name":"value","nameLocation":"14822:5:15","nodeType":"VariableDeclaration","scope":5225,"src":"14814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5199,"name":"uint256","nodeType":"ElementaryTypeName","src":"14814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14813:15:15"},"returnParameters":{"id":5204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5225,"src":"14852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":5202,"name":"uint40","nodeType":"ElementaryTypeName","src":"14852:6:15","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14851:8:15"},"scope":6207,"src":"14796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5252,"nodeType":"Block","src":"15360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5233,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"15374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":5235,"name":"uint32","nodeType":"ElementaryTypeName","src":"15387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":5234,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":5238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15395:3:15","memberName":"max","nodeType":"MemberAccess","src":"15382:16:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5246,"nodeType":"IfStatement","src":"15370:103:15","trueBody":{"id":5245,"nodeType":"Block","src":"15400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":5241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":5242,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"15456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5240,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"15421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5244,"nodeType":"RevertStatement","src":"15414:48:15"}]}},{"expression":{"arguments":[{"id":5249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"15496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":5247,"name":"uint32","nodeType":"ElementaryTypeName","src":"15489:6:15","typeDescriptions":{}}},"id":5250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":5232,"id":5251,"nodeType":"Return","src":"15482:20:15"}]},"documentation":{"id":5226,"nodeType":"StructuredDocumentation","src":"15015:276:15","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":5253,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5228,"mutability":"mutable","name":"value","nameLocation":"15322:5:15","nodeType":"VariableDeclaration","scope":5253,"src":"15314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5227,"name":"uint256","nodeType":"ElementaryTypeName","src":"15314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15313:15:15"},"returnParameters":{"id":5232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5253,"src":"15352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5230,"name":"uint32","nodeType":"ElementaryTypeName","src":"15352:6:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15351:8:15"},"scope":6207,"src":"15296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5280,"nodeType":"Block","src":"15860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"15874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":5263,"name":"uint24","nodeType":"ElementaryTypeName","src":"15887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":5262,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":5266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15895:3:15","memberName":"max","nodeType":"MemberAccess","src":"15882:16:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5274,"nodeType":"IfStatement","src":"15870:103:15","trueBody":{"id":5273,"nodeType":"Block","src":"15900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":5269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":5270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"15956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5268,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"15921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5272,"nodeType":"RevertStatement","src":"15914:48:15"}]}},{"expression":{"arguments":[{"id":5277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"15996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":5275,"name":"uint24","nodeType":"ElementaryTypeName","src":"15989:6:15","typeDescriptions":{}}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":5260,"id":5279,"nodeType":"Return","src":"15982:20:15"}]},"documentation":{"id":5254,"nodeType":"StructuredDocumentation","src":"15515:276:15","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":5281,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5256,"mutability":"mutable","name":"value","nameLocation":"15822:5:15","nodeType":"VariableDeclaration","scope":5281,"src":"15814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5255,"name":"uint256","nodeType":"ElementaryTypeName","src":"15814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15813:15:15"},"returnParameters":{"id":5260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5281,"src":"15852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5258,"name":"uint24","nodeType":"ElementaryTypeName","src":"15852:6:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15851:8:15"},"scope":6207,"src":"15796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5308,"nodeType":"Block","src":"16360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"16374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":5291,"name":"uint16","nodeType":"ElementaryTypeName","src":"16387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":5290,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":5294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16395:3:15","memberName":"max","nodeType":"MemberAccess","src":"16382:16:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5302,"nodeType":"IfStatement","src":"16370:103:15","trueBody":{"id":5301,"nodeType":"Block","src":"16400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":5297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":5298,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"16456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5296,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"16421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5300,"nodeType":"RevertStatement","src":"16414:48:15"}]}},{"expression":{"arguments":[{"id":5305,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"16496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":5303,"name":"uint16","nodeType":"ElementaryTypeName","src":"16489:6:15","typeDescriptions":{}}},"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":5288,"id":5307,"nodeType":"Return","src":"16482:20:15"}]},"documentation":{"id":5282,"nodeType":"StructuredDocumentation","src":"16015:276:15","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":5309,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5284,"mutability":"mutable","name":"value","nameLocation":"16322:5:15","nodeType":"VariableDeclaration","scope":5309,"src":"16314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5283,"name":"uint256","nodeType":"ElementaryTypeName","src":"16314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16313:15:15"},"returnParameters":{"id":5288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5309,"src":"16352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5286,"name":"uint16","nodeType":"ElementaryTypeName","src":"16352:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16351:8:15"},"scope":6207,"src":"16296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5336,"nodeType":"Block","src":"16854:146:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"16868:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16881:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5319,"name":"uint8","nodeType":"ElementaryTypeName","src":"16881:5:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":5318,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16876:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16876:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":5322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16888:3:15","memberName":"max","nodeType":"MemberAccess","src":"16876:15:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16868:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5330,"nodeType":"IfStatement","src":"16864:101:15","trueBody":{"id":5329,"nodeType":"Block","src":"16893:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":5325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16945:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":5326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"16948:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5324,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"16914:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5328,"nodeType":"RevertStatement","src":"16907:47:15"}]}},{"expression":{"arguments":[{"id":5333,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"16987:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5331,"name":"uint8","nodeType":"ElementaryTypeName","src":"16981:5:15","typeDescriptions":{}}},"id":5334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16981:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":5316,"id":5335,"nodeType":"Return","src":"16974:19:15"}]},"documentation":{"id":5310,"nodeType":"StructuredDocumentation","src":"16515:272:15","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":5337,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16801:7:15","nodeType":"FunctionDefinition","parameters":{"id":5313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5312,"mutability":"mutable","name":"value","nameLocation":"16817:5:15","nodeType":"VariableDeclaration","scope":5337,"src":"16809:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5311,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16808:15:15"},"returnParameters":{"id":5316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5337,"src":"16847:5:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5314,"name":"uint8","nodeType":"ElementaryTypeName","src":"16847:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16846:7:15"},"scope":6207,"src":"16792:208:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5359,"nodeType":"Block","src":"17236:128:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5345,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5340,"src":"17250:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":5346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17258:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17250:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5353,"nodeType":"IfStatement","src":"17246:81:15","trueBody":{"id":5352,"nodeType":"Block","src":"17261:66:15","statements":[{"errorCall":{"arguments":[{"id":5349,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5340,"src":"17310:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5348,"name":"SafeCastOverflowedIntToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4457,"src":"17282:27:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$returns$__$","typeString":"function (int256) pure"}},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17282:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5351,"nodeType":"RevertStatement","src":"17275:41:15"}]}},{"expression":{"arguments":[{"id":5356,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5340,"src":"17351:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17343:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5354,"name":"uint256","nodeType":"ElementaryTypeName","src":"17343:7:15","typeDescriptions":{}}},"id":5357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17343:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5344,"id":5358,"nodeType":"Return","src":"17336:21:15"}]},"documentation":{"id":5338,"nodeType":"StructuredDocumentation","src":"17006:160:15","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."},"id":5360,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17180:9:15","nodeType":"FunctionDefinition","parameters":{"id":5341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5340,"mutability":"mutable","name":"value","nameLocation":"17197:5:15","nodeType":"VariableDeclaration","scope":5360,"src":"17190:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5339,"name":"int256","nodeType":"ElementaryTypeName","src":"17190:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17189:14:15"},"returnParameters":{"id":5344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5360,"src":"17227:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5342,"name":"uint256","nodeType":"ElementaryTypeName","src":"17227:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17226:9:15"},"scope":6207,"src":"17171:193:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5385,"nodeType":"Block","src":"17761:150:15","statements":[{"expression":{"id":5373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5368,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5366,"src":"17771:10:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5371,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5363,"src":"17791:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17784:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":5369,"name":"int248","nodeType":"ElementaryTypeName","src":"17784:6:15","typeDescriptions":{}}},"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17771:26:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":5374,"nodeType":"ExpressionStatement","src":"17771:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5375,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5366,"src":"17811:10:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5376,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5363,"src":"17825:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17811:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5384,"nodeType":"IfStatement","src":"17807:98:15","trueBody":{"id":5383,"nodeType":"Block","src":"17832:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":5379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17883:3:15","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":5380,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5363,"src":"17888:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5378,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"17853:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17853:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5382,"nodeType":"RevertStatement","src":"17846:48:15"}]}}]},"documentation":{"id":5361,"nodeType":"StructuredDocumentation","src":"17370:312:15","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":5386,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17696:8:15","nodeType":"FunctionDefinition","parameters":{"id":5364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5363,"mutability":"mutable","name":"value","nameLocation":"17712:5:15","nodeType":"VariableDeclaration","scope":5386,"src":"17705:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5362,"name":"int256","nodeType":"ElementaryTypeName","src":"17705:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17704:14:15"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5366,"mutability":"mutable","name":"downcasted","nameLocation":"17749:10:15","nodeType":"VariableDeclaration","scope":5386,"src":"17742:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":5365,"name":"int248","nodeType":"ElementaryTypeName","src":"17742:6:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17741:19:15"},"scope":6207,"src":"17687:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5411,"nodeType":"Block","src":"18308:150:15","statements":[{"expression":{"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5394,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"18318:10:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5397,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"18338:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18331:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":5395,"name":"int240","nodeType":"ElementaryTypeName","src":"18331:6:15","typeDescriptions":{}}},"id":5398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18318:26:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":5400,"nodeType":"ExpressionStatement","src":"18318:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5401,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"18358:10:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"18372:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18358:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5410,"nodeType":"IfStatement","src":"18354:98:15","trueBody":{"id":5409,"nodeType":"Block","src":"18379:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":5405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:3:15","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":5406,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"18435:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5404,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"18400:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18400:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5408,"nodeType":"RevertStatement","src":"18393:48:15"}]}}]},"documentation":{"id":5387,"nodeType":"StructuredDocumentation","src":"17917:312:15","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":5412,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18243:8:15","nodeType":"FunctionDefinition","parameters":{"id":5390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5389,"mutability":"mutable","name":"value","nameLocation":"18259:5:15","nodeType":"VariableDeclaration","scope":5412,"src":"18252:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5388,"name":"int256","nodeType":"ElementaryTypeName","src":"18252:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18251:14:15"},"returnParameters":{"id":5393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5392,"mutability":"mutable","name":"downcasted","nameLocation":"18296:10:15","nodeType":"VariableDeclaration","scope":5412,"src":"18289:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":5391,"name":"int240","nodeType":"ElementaryTypeName","src":"18289:6:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18288:19:15"},"scope":6207,"src":"18234:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5437,"nodeType":"Block","src":"18855:150:15","statements":[{"expression":{"id":5425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5420,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5418,"src":"18865:10:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5423,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5415,"src":"18885:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":5421,"name":"int232","nodeType":"ElementaryTypeName","src":"18878:6:15","typeDescriptions":{}}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18865:26:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":5426,"nodeType":"ExpressionStatement","src":"18865:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5427,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5418,"src":"18905:10:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5428,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5415,"src":"18919:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18905:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5436,"nodeType":"IfStatement","src":"18901:98:15","trueBody":{"id":5435,"nodeType":"Block","src":"18926:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":5431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18977:3:15","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":5432,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5415,"src":"18982:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5430,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"18947:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18947:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5434,"nodeType":"RevertStatement","src":"18940:48:15"}]}}]},"documentation":{"id":5413,"nodeType":"StructuredDocumentation","src":"18464:312:15","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":5438,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18790:8:15","nodeType":"FunctionDefinition","parameters":{"id":5416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5415,"mutability":"mutable","name":"value","nameLocation":"18806:5:15","nodeType":"VariableDeclaration","scope":5438,"src":"18799:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5414,"name":"int256","nodeType":"ElementaryTypeName","src":"18799:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18798:14:15"},"returnParameters":{"id":5419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5418,"mutability":"mutable","name":"downcasted","nameLocation":"18843:10:15","nodeType":"VariableDeclaration","scope":5438,"src":"18836:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":5417,"name":"int232","nodeType":"ElementaryTypeName","src":"18836:6:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18835:19:15"},"scope":6207,"src":"18781:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5463,"nodeType":"Block","src":"19402:150:15","statements":[{"expression":{"id":5451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5446,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5444,"src":"19412:10:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5449,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"19432:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19425:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":5447,"name":"int224","nodeType":"ElementaryTypeName","src":"19425:6:15","typeDescriptions":{}}},"id":5450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19425:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19412:26:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":5452,"nodeType":"ExpressionStatement","src":"19412:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5453,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5444,"src":"19452:10:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5454,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"19466:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19452:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5462,"nodeType":"IfStatement","src":"19448:98:15","trueBody":{"id":5461,"nodeType":"Block","src":"19473:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":5457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19524:3:15","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":5458,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"19529:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5456,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"19494:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19494:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5460,"nodeType":"RevertStatement","src":"19487:48:15"}]}}]},"documentation":{"id":5439,"nodeType":"StructuredDocumentation","src":"19011:312:15","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":5464,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19337:8:15","nodeType":"FunctionDefinition","parameters":{"id":5442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5441,"mutability":"mutable","name":"value","nameLocation":"19353:5:15","nodeType":"VariableDeclaration","scope":5464,"src":"19346:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5440,"name":"int256","nodeType":"ElementaryTypeName","src":"19346:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19345:14:15"},"returnParameters":{"id":5445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5444,"mutability":"mutable","name":"downcasted","nameLocation":"19390:10:15","nodeType":"VariableDeclaration","scope":5464,"src":"19383:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":5443,"name":"int224","nodeType":"ElementaryTypeName","src":"19383:6:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19382:19:15"},"scope":6207,"src":"19328:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5489,"nodeType":"Block","src":"19949:150:15","statements":[{"expression":{"id":5477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5472,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"19959:10:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5475,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"19979:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19972:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":5473,"name":"int216","nodeType":"ElementaryTypeName","src":"19972:6:15","typeDescriptions":{}}},"id":5476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19972:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"19959:26:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":5478,"nodeType":"ExpressionStatement","src":"19959:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5479,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"19999:10:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5480,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"20013:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19999:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5488,"nodeType":"IfStatement","src":"19995:98:15","trueBody":{"id":5487,"nodeType":"Block","src":"20020:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":5483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20071:3:15","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":5484,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"20076:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5482,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"20041:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5486,"nodeType":"RevertStatement","src":"20034:48:15"}]}}]},"documentation":{"id":5465,"nodeType":"StructuredDocumentation","src":"19558:312:15","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":5490,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19884:8:15","nodeType":"FunctionDefinition","parameters":{"id":5468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5467,"mutability":"mutable","name":"value","nameLocation":"19900:5:15","nodeType":"VariableDeclaration","scope":5490,"src":"19893:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5466,"name":"int256","nodeType":"ElementaryTypeName","src":"19893:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19892:14:15"},"returnParameters":{"id":5471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5470,"mutability":"mutable","name":"downcasted","nameLocation":"19937:10:15","nodeType":"VariableDeclaration","scope":5490,"src":"19930:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":5469,"name":"int216","nodeType":"ElementaryTypeName","src":"19930:6:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19929:19:15"},"scope":6207,"src":"19875:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5515,"nodeType":"Block","src":"20496:150:15","statements":[{"expression":{"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5498,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5496,"src":"20506:10:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5501,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"20526:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20519:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":5499,"name":"int208","nodeType":"ElementaryTypeName","src":"20519:6:15","typeDescriptions":{}}},"id":5502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20519:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20506:26:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":5504,"nodeType":"ExpressionStatement","src":"20506:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5505,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5496,"src":"20546:10:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5506,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"20560:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20546:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5514,"nodeType":"IfStatement","src":"20542:98:15","trueBody":{"id":5513,"nodeType":"Block","src":"20567:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":5509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20618:3:15","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":5510,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"20623:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5508,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"20588:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20588:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5512,"nodeType":"RevertStatement","src":"20581:48:15"}]}}]},"documentation":{"id":5491,"nodeType":"StructuredDocumentation","src":"20105:312:15","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":5516,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20431:8:15","nodeType":"FunctionDefinition","parameters":{"id":5494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5493,"mutability":"mutable","name":"value","nameLocation":"20447:5:15","nodeType":"VariableDeclaration","scope":5516,"src":"20440:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5492,"name":"int256","nodeType":"ElementaryTypeName","src":"20440:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20439:14:15"},"returnParameters":{"id":5497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5496,"mutability":"mutable","name":"downcasted","nameLocation":"20484:10:15","nodeType":"VariableDeclaration","scope":5516,"src":"20477:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":5495,"name":"int208","nodeType":"ElementaryTypeName","src":"20477:6:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20476:19:15"},"scope":6207,"src":"20422:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5541,"nodeType":"Block","src":"21043:150:15","statements":[{"expression":{"id":5529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5524,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5522,"src":"21053:10:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"21073:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21066:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":5525,"name":"int200","nodeType":"ElementaryTypeName","src":"21066:6:15","typeDescriptions":{}}},"id":5528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21066:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21053:26:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":5530,"nodeType":"ExpressionStatement","src":"21053:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5531,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5522,"src":"21093:10:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5532,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"21107:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21093:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5540,"nodeType":"IfStatement","src":"21089:98:15","trueBody":{"id":5539,"nodeType":"Block","src":"21114:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":5535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21165:3:15","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":5536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"21170:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5534,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"21135:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21135:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5538,"nodeType":"RevertStatement","src":"21128:48:15"}]}}]},"documentation":{"id":5517,"nodeType":"StructuredDocumentation","src":"20652:312:15","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":5542,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"20978:8:15","nodeType":"FunctionDefinition","parameters":{"id":5520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5519,"mutability":"mutable","name":"value","nameLocation":"20994:5:15","nodeType":"VariableDeclaration","scope":5542,"src":"20987:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5518,"name":"int256","nodeType":"ElementaryTypeName","src":"20987:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20986:14:15"},"returnParameters":{"id":5523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5522,"mutability":"mutable","name":"downcasted","nameLocation":"21031:10:15","nodeType":"VariableDeclaration","scope":5542,"src":"21024:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":5521,"name":"int200","nodeType":"ElementaryTypeName","src":"21024:6:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21023:19:15"},"scope":6207,"src":"20969:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5567,"nodeType":"Block","src":"21590:150:15","statements":[{"expression":{"id":5555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5550,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5548,"src":"21600:10:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"21620:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21613:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":5551,"name":"int192","nodeType":"ElementaryTypeName","src":"21613:6:15","typeDescriptions":{}}},"id":5554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21613:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21600:26:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":5556,"nodeType":"ExpressionStatement","src":"21600:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5557,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5548,"src":"21640:10:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5558,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"21654:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21640:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5566,"nodeType":"IfStatement","src":"21636:98:15","trueBody":{"id":5565,"nodeType":"Block","src":"21661:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":5561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21712:3:15","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":5562,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"21717:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5560,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"21682:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21682:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5564,"nodeType":"RevertStatement","src":"21675:48:15"}]}}]},"documentation":{"id":5543,"nodeType":"StructuredDocumentation","src":"21199:312:15","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":5568,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21525:8:15","nodeType":"FunctionDefinition","parameters":{"id":5546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5545,"mutability":"mutable","name":"value","nameLocation":"21541:5:15","nodeType":"VariableDeclaration","scope":5568,"src":"21534:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5544,"name":"int256","nodeType":"ElementaryTypeName","src":"21534:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21533:14:15"},"returnParameters":{"id":5549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5548,"mutability":"mutable","name":"downcasted","nameLocation":"21578:10:15","nodeType":"VariableDeclaration","scope":5568,"src":"21571:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":5547,"name":"int192","nodeType":"ElementaryTypeName","src":"21571:6:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21570:19:15"},"scope":6207,"src":"21516:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5593,"nodeType":"Block","src":"22137:150:15","statements":[{"expression":{"id":5581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5576,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"22147:10:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5579,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"22167:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22160:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":5577,"name":"int184","nodeType":"ElementaryTypeName","src":"22160:6:15","typeDescriptions":{}}},"id":5580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22160:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22147:26:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":5582,"nodeType":"ExpressionStatement","src":"22147:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5583,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"22187:10:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5584,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"22201:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22187:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5592,"nodeType":"IfStatement","src":"22183:98:15","trueBody":{"id":5591,"nodeType":"Block","src":"22208:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":5587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22259:3:15","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":5588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"22264:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5586,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"22229:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5590,"nodeType":"RevertStatement","src":"22222:48:15"}]}}]},"documentation":{"id":5569,"nodeType":"StructuredDocumentation","src":"21746:312:15","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":5594,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22072:8:15","nodeType":"FunctionDefinition","parameters":{"id":5572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5571,"mutability":"mutable","name":"value","nameLocation":"22088:5:15","nodeType":"VariableDeclaration","scope":5594,"src":"22081:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5570,"name":"int256","nodeType":"ElementaryTypeName","src":"22081:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22080:14:15"},"returnParameters":{"id":5575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5574,"mutability":"mutable","name":"downcasted","nameLocation":"22125:10:15","nodeType":"VariableDeclaration","scope":5594,"src":"22118:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":5573,"name":"int184","nodeType":"ElementaryTypeName","src":"22118:6:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22117:19:15"},"scope":6207,"src":"22063:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5619,"nodeType":"Block","src":"22684:150:15","statements":[{"expression":{"id":5607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5602,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"22694:10:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"22714:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22707:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":5603,"name":"int176","nodeType":"ElementaryTypeName","src":"22707:6:15","typeDescriptions":{}}},"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22707:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22694:26:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":5608,"nodeType":"ExpressionStatement","src":"22694:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5609,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"22734:10:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5610,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"22748:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22734:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5618,"nodeType":"IfStatement","src":"22730:98:15","trueBody":{"id":5617,"nodeType":"Block","src":"22755:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":5613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22806:3:15","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":5614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"22811:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5612,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"22776:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22776:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5616,"nodeType":"RevertStatement","src":"22769:48:15"}]}}]},"documentation":{"id":5595,"nodeType":"StructuredDocumentation","src":"22293:312:15","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":5620,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22619:8:15","nodeType":"FunctionDefinition","parameters":{"id":5598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5597,"mutability":"mutable","name":"value","nameLocation":"22635:5:15","nodeType":"VariableDeclaration","scope":5620,"src":"22628:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5596,"name":"int256","nodeType":"ElementaryTypeName","src":"22628:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22627:14:15"},"returnParameters":{"id":5601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5600,"mutability":"mutable","name":"downcasted","nameLocation":"22672:10:15","nodeType":"VariableDeclaration","scope":5620,"src":"22665:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":5599,"name":"int176","nodeType":"ElementaryTypeName","src":"22665:6:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22664:19:15"},"scope":6207,"src":"22610:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5645,"nodeType":"Block","src":"23231:150:15","statements":[{"expression":{"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5628,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"23241:10:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"23261:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23254:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":5629,"name":"int168","nodeType":"ElementaryTypeName","src":"23254:6:15","typeDescriptions":{}}},"id":5632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23254:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23241:26:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":5634,"nodeType":"ExpressionStatement","src":"23241:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5635,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"23281:10:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5636,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"23295:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23281:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5644,"nodeType":"IfStatement","src":"23277:98:15","trueBody":{"id":5643,"nodeType":"Block","src":"23302:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":5639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23353:3:15","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":5640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"23358:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5638,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"23323:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23323:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5642,"nodeType":"RevertStatement","src":"23316:48:15"}]}}]},"documentation":{"id":5621,"nodeType":"StructuredDocumentation","src":"22840:312:15","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":5646,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23166:8:15","nodeType":"FunctionDefinition","parameters":{"id":5624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5623,"mutability":"mutable","name":"value","nameLocation":"23182:5:15","nodeType":"VariableDeclaration","scope":5646,"src":"23175:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5622,"name":"int256","nodeType":"ElementaryTypeName","src":"23175:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23174:14:15"},"returnParameters":{"id":5627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5626,"mutability":"mutable","name":"downcasted","nameLocation":"23219:10:15","nodeType":"VariableDeclaration","scope":5646,"src":"23212:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":5625,"name":"int168","nodeType":"ElementaryTypeName","src":"23212:6:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23211:19:15"},"scope":6207,"src":"23157:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5671,"nodeType":"Block","src":"23778:150:15","statements":[{"expression":{"id":5659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5654,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"23788:10:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5657,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"23808:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23801:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":5655,"name":"int160","nodeType":"ElementaryTypeName","src":"23801:6:15","typeDescriptions":{}}},"id":5658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23801:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23788:26:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":5660,"nodeType":"ExpressionStatement","src":"23788:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5661,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"23828:10:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5662,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"23842:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23828:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5670,"nodeType":"IfStatement","src":"23824:98:15","trueBody":{"id":5669,"nodeType":"Block","src":"23849:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":5665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23900:3:15","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":5666,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"23905:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5664,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"23870:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23870:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5668,"nodeType":"RevertStatement","src":"23863:48:15"}]}}]},"documentation":{"id":5647,"nodeType":"StructuredDocumentation","src":"23387:312:15","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":5672,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23713:8:15","nodeType":"FunctionDefinition","parameters":{"id":5650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5649,"mutability":"mutable","name":"value","nameLocation":"23729:5:15","nodeType":"VariableDeclaration","scope":5672,"src":"23722:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5648,"name":"int256","nodeType":"ElementaryTypeName","src":"23722:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23721:14:15"},"returnParameters":{"id":5653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5652,"mutability":"mutable","name":"downcasted","nameLocation":"23766:10:15","nodeType":"VariableDeclaration","scope":5672,"src":"23759:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":5651,"name":"int160","nodeType":"ElementaryTypeName","src":"23759:6:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23758:19:15"},"scope":6207,"src":"23704:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5697,"nodeType":"Block","src":"24325:150:15","statements":[{"expression":{"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5680,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"24335:10:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5683,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5675,"src":"24355:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24348:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":5681,"name":"int152","nodeType":"ElementaryTypeName","src":"24348:6:15","typeDescriptions":{}}},"id":5684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24335:26:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":5686,"nodeType":"ExpressionStatement","src":"24335:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5687,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"24375:10:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5688,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5675,"src":"24389:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24375:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5696,"nodeType":"IfStatement","src":"24371:98:15","trueBody":{"id":5695,"nodeType":"Block","src":"24396:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":5691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24447:3:15","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":5692,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5675,"src":"24452:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5690,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"24417:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24417:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5694,"nodeType":"RevertStatement","src":"24410:48:15"}]}}]},"documentation":{"id":5673,"nodeType":"StructuredDocumentation","src":"23934:312:15","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":5698,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24260:8:15","nodeType":"FunctionDefinition","parameters":{"id":5676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5675,"mutability":"mutable","name":"value","nameLocation":"24276:5:15","nodeType":"VariableDeclaration","scope":5698,"src":"24269:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5674,"name":"int256","nodeType":"ElementaryTypeName","src":"24269:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24268:14:15"},"returnParameters":{"id":5679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5678,"mutability":"mutable","name":"downcasted","nameLocation":"24313:10:15","nodeType":"VariableDeclaration","scope":5698,"src":"24306:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":5677,"name":"int152","nodeType":"ElementaryTypeName","src":"24306:6:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24305:19:15"},"scope":6207,"src":"24251:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5723,"nodeType":"Block","src":"24872:150:15","statements":[{"expression":{"id":5711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5706,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5704,"src":"24882:10:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"24902:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24895:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":5707,"name":"int144","nodeType":"ElementaryTypeName","src":"24895:6:15","typeDescriptions":{}}},"id":5710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24895:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"24882:26:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":5712,"nodeType":"ExpressionStatement","src":"24882:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5713,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5704,"src":"24922:10:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5714,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"24936:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24922:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5722,"nodeType":"IfStatement","src":"24918:98:15","trueBody":{"id":5721,"nodeType":"Block","src":"24943:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":5717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24994:3:15","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":5718,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"24999:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5716,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"24964:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24964:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5720,"nodeType":"RevertStatement","src":"24957:48:15"}]}}]},"documentation":{"id":5699,"nodeType":"StructuredDocumentation","src":"24481:312:15","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":5724,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24807:8:15","nodeType":"FunctionDefinition","parameters":{"id":5702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5701,"mutability":"mutable","name":"value","nameLocation":"24823:5:15","nodeType":"VariableDeclaration","scope":5724,"src":"24816:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5700,"name":"int256","nodeType":"ElementaryTypeName","src":"24816:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24815:14:15"},"returnParameters":{"id":5705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5704,"mutability":"mutable","name":"downcasted","nameLocation":"24860:10:15","nodeType":"VariableDeclaration","scope":5724,"src":"24853:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":5703,"name":"int144","nodeType":"ElementaryTypeName","src":"24853:6:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"24852:19:15"},"scope":6207,"src":"24798:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5749,"nodeType":"Block","src":"25419:150:15","statements":[{"expression":{"id":5737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5732,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"25429:10:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5735,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"25449:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25442:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":5733,"name":"int136","nodeType":"ElementaryTypeName","src":"25442:6:15","typeDescriptions":{}}},"id":5736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25442:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25429:26:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":5738,"nodeType":"ExpressionStatement","src":"25429:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5739,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"25469:10:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5740,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"25483:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25469:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5748,"nodeType":"IfStatement","src":"25465:98:15","trueBody":{"id":5747,"nodeType":"Block","src":"25490:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":5743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25541:3:15","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":5744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"25546:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5742,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"25511:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25511:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5746,"nodeType":"RevertStatement","src":"25504:48:15"}]}}]},"documentation":{"id":5725,"nodeType":"StructuredDocumentation","src":"25028:312:15","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":5750,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25354:8:15","nodeType":"FunctionDefinition","parameters":{"id":5728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5727,"mutability":"mutable","name":"value","nameLocation":"25370:5:15","nodeType":"VariableDeclaration","scope":5750,"src":"25363:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5726,"name":"int256","nodeType":"ElementaryTypeName","src":"25363:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25362:14:15"},"returnParameters":{"id":5731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5730,"mutability":"mutable","name":"downcasted","nameLocation":"25407:10:15","nodeType":"VariableDeclaration","scope":5750,"src":"25400:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":5729,"name":"int136","nodeType":"ElementaryTypeName","src":"25400:6:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25399:19:15"},"scope":6207,"src":"25345:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5775,"nodeType":"Block","src":"25966:150:15","statements":[{"expression":{"id":5763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5758,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5756,"src":"25976:10:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"25996:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":5759,"name":"int128","nodeType":"ElementaryTypeName","src":"25989:6:15","typeDescriptions":{}}},"id":5762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"25976:26:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":5764,"nodeType":"ExpressionStatement","src":"25976:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5765,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5756,"src":"26016:10:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"26030:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26016:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5774,"nodeType":"IfStatement","src":"26012:98:15","trueBody":{"id":5773,"nodeType":"Block","src":"26037:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":5769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26088:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":5770,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"26093:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5768,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"26058:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26058:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5772,"nodeType":"RevertStatement","src":"26051:48:15"}]}}]},"documentation":{"id":5751,"nodeType":"StructuredDocumentation","src":"25575:312:15","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":5776,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"25901:8:15","nodeType":"FunctionDefinition","parameters":{"id":5754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5753,"mutability":"mutable","name":"value","nameLocation":"25917:5:15","nodeType":"VariableDeclaration","scope":5776,"src":"25910:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5752,"name":"int256","nodeType":"ElementaryTypeName","src":"25910:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25909:14:15"},"returnParameters":{"id":5757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5756,"mutability":"mutable","name":"downcasted","nameLocation":"25954:10:15","nodeType":"VariableDeclaration","scope":5776,"src":"25947:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":5755,"name":"int128","nodeType":"ElementaryTypeName","src":"25947:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"25946:19:15"},"scope":6207,"src":"25892:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5801,"nodeType":"Block","src":"26513:150:15","statements":[{"expression":{"id":5789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5784,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"26523:10:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5787,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"26543:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26536:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":5785,"name":"int120","nodeType":"ElementaryTypeName","src":"26536:6:15","typeDescriptions":{}}},"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26536:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26523:26:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":5790,"nodeType":"ExpressionStatement","src":"26523:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5791,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"26563:10:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5792,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"26577:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26563:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5800,"nodeType":"IfStatement","src":"26559:98:15","trueBody":{"id":5799,"nodeType":"Block","src":"26584:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":5795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26635:3:15","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":5796,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"26640:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5794,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"26605:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5798,"nodeType":"RevertStatement","src":"26598:48:15"}]}}]},"documentation":{"id":5777,"nodeType":"StructuredDocumentation","src":"26122:312:15","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":5802,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26448:8:15","nodeType":"FunctionDefinition","parameters":{"id":5780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5779,"mutability":"mutable","name":"value","nameLocation":"26464:5:15","nodeType":"VariableDeclaration","scope":5802,"src":"26457:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5778,"name":"int256","nodeType":"ElementaryTypeName","src":"26457:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26456:14:15"},"returnParameters":{"id":5783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5782,"mutability":"mutable","name":"downcasted","nameLocation":"26501:10:15","nodeType":"VariableDeclaration","scope":5802,"src":"26494:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":5781,"name":"int120","nodeType":"ElementaryTypeName","src":"26494:6:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26493:19:15"},"scope":6207,"src":"26439:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5827,"nodeType":"Block","src":"27060:150:15","statements":[{"expression":{"id":5815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5810,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5808,"src":"27070:10:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5805,"src":"27090:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27083:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":5811,"name":"int112","nodeType":"ElementaryTypeName","src":"27083:6:15","typeDescriptions":{}}},"id":5814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27083:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27070:26:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":5816,"nodeType":"ExpressionStatement","src":"27070:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5817,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5808,"src":"27110:10:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5818,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5805,"src":"27124:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27110:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5826,"nodeType":"IfStatement","src":"27106:98:15","trueBody":{"id":5825,"nodeType":"Block","src":"27131:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":5821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27182:3:15","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":5822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5805,"src":"27187:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5820,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"27152:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27152:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5824,"nodeType":"RevertStatement","src":"27145:48:15"}]}}]},"documentation":{"id":5803,"nodeType":"StructuredDocumentation","src":"26669:312:15","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":5828,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"26995:8:15","nodeType":"FunctionDefinition","parameters":{"id":5806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5805,"mutability":"mutable","name":"value","nameLocation":"27011:5:15","nodeType":"VariableDeclaration","scope":5828,"src":"27004:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5804,"name":"int256","nodeType":"ElementaryTypeName","src":"27004:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27003:14:15"},"returnParameters":{"id":5809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5808,"mutability":"mutable","name":"downcasted","nameLocation":"27048:10:15","nodeType":"VariableDeclaration","scope":5828,"src":"27041:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":5807,"name":"int112","nodeType":"ElementaryTypeName","src":"27041:6:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27040:19:15"},"scope":6207,"src":"26986:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5853,"nodeType":"Block","src":"27607:150:15","statements":[{"expression":{"id":5841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5836,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5834,"src":"27617:10:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5831,"src":"27637:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27630:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":5837,"name":"int104","nodeType":"ElementaryTypeName","src":"27630:6:15","typeDescriptions":{}}},"id":5840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27630:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27617:26:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":5842,"nodeType":"ExpressionStatement","src":"27617:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5843,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5834,"src":"27657:10:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5844,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5831,"src":"27671:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27657:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5852,"nodeType":"IfStatement","src":"27653:98:15","trueBody":{"id":5851,"nodeType":"Block","src":"27678:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":5847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27729:3:15","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":5848,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5831,"src":"27734:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5846,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"27699:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27699:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5850,"nodeType":"RevertStatement","src":"27692:48:15"}]}}]},"documentation":{"id":5829,"nodeType":"StructuredDocumentation","src":"27216:312:15","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":5854,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27542:8:15","nodeType":"FunctionDefinition","parameters":{"id":5832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5831,"mutability":"mutable","name":"value","nameLocation":"27558:5:15","nodeType":"VariableDeclaration","scope":5854,"src":"27551:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5830,"name":"int256","nodeType":"ElementaryTypeName","src":"27551:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27550:14:15"},"returnParameters":{"id":5835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5834,"mutability":"mutable","name":"downcasted","nameLocation":"27595:10:15","nodeType":"VariableDeclaration","scope":5854,"src":"27588:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5833,"name":"int104","nodeType":"ElementaryTypeName","src":"27588:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27587:19:15"},"scope":6207,"src":"27533:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5879,"nodeType":"Block","src":"28147:148:15","statements":[{"expression":{"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5862,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5860,"src":"28157:10:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"28176:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28170:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":5863,"name":"int96","nodeType":"ElementaryTypeName","src":"28170:5:15","typeDescriptions":{}}},"id":5866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28170:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28157:25:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":5868,"nodeType":"ExpressionStatement","src":"28157:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5869,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5860,"src":"28196:10:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5870,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"28210:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28196:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5878,"nodeType":"IfStatement","src":"28192:97:15","trueBody":{"id":5877,"nodeType":"Block","src":"28217:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":5873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28268:2:15","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":5874,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"28272:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5872,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"28238:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28238:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5876,"nodeType":"RevertStatement","src":"28231:47:15"}]}}]},"documentation":{"id":5855,"nodeType":"StructuredDocumentation","src":"27763:307:15","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":5880,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28084:7:15","nodeType":"FunctionDefinition","parameters":{"id":5858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5857,"mutability":"mutable","name":"value","nameLocation":"28099:5:15","nodeType":"VariableDeclaration","scope":5880,"src":"28092:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5856,"name":"int256","nodeType":"ElementaryTypeName","src":"28092:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28091:14:15"},"returnParameters":{"id":5861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5860,"mutability":"mutable","name":"downcasted","nameLocation":"28135:10:15","nodeType":"VariableDeclaration","scope":5880,"src":"28129:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":5859,"name":"int96","nodeType":"ElementaryTypeName","src":"28129:5:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28128:18:15"},"scope":6207,"src":"28075:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5905,"nodeType":"Block","src":"28685:148:15","statements":[{"expression":{"id":5893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5888,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"28695:10:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5891,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5883,"src":"28714:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28708:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":5889,"name":"int88","nodeType":"ElementaryTypeName","src":"28708:5:15","typeDescriptions":{}}},"id":5892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28708:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28695:25:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":5894,"nodeType":"ExpressionStatement","src":"28695:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5895,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"28734:10:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5896,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5883,"src":"28748:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28734:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5904,"nodeType":"IfStatement","src":"28730:97:15","trueBody":{"id":5903,"nodeType":"Block","src":"28755:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":5899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28806:2:15","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":5900,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5883,"src":"28810:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5898,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"28776:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28776:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5902,"nodeType":"RevertStatement","src":"28769:47:15"}]}}]},"documentation":{"id":5881,"nodeType":"StructuredDocumentation","src":"28301:307:15","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":5906,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28622:7:15","nodeType":"FunctionDefinition","parameters":{"id":5884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5883,"mutability":"mutable","name":"value","nameLocation":"28637:5:15","nodeType":"VariableDeclaration","scope":5906,"src":"28630:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5882,"name":"int256","nodeType":"ElementaryTypeName","src":"28630:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28629:14:15"},"returnParameters":{"id":5887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5886,"mutability":"mutable","name":"downcasted","nameLocation":"28673:10:15","nodeType":"VariableDeclaration","scope":5906,"src":"28667:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":5885,"name":"int88","nodeType":"ElementaryTypeName","src":"28667:5:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28666:18:15"},"scope":6207,"src":"28613:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5931,"nodeType":"Block","src":"29223:148:15","statements":[{"expression":{"id":5919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5914,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5912,"src":"29233:10:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5917,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"29252:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29246:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":5915,"name":"int80","nodeType":"ElementaryTypeName","src":"29246:5:15","typeDescriptions":{}}},"id":5918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29246:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29233:25:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":5920,"nodeType":"ExpressionStatement","src":"29233:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5921,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5912,"src":"29272:10:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"29286:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29272:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5930,"nodeType":"IfStatement","src":"29268:97:15","trueBody":{"id":5929,"nodeType":"Block","src":"29293:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":5925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29344:2:15","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":5926,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"29348:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5924,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"29314:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29314:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5928,"nodeType":"RevertStatement","src":"29307:47:15"}]}}]},"documentation":{"id":5907,"nodeType":"StructuredDocumentation","src":"28839:307:15","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":5932,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29160:7:15","nodeType":"FunctionDefinition","parameters":{"id":5910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5909,"mutability":"mutable","name":"value","nameLocation":"29175:5:15","nodeType":"VariableDeclaration","scope":5932,"src":"29168:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5908,"name":"int256","nodeType":"ElementaryTypeName","src":"29168:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29167:14:15"},"returnParameters":{"id":5913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5912,"mutability":"mutable","name":"downcasted","nameLocation":"29211:10:15","nodeType":"VariableDeclaration","scope":5932,"src":"29205:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":5911,"name":"int80","nodeType":"ElementaryTypeName","src":"29205:5:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29204:18:15"},"scope":6207,"src":"29151:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5957,"nodeType":"Block","src":"29761:148:15","statements":[{"expression":{"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5940,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5938,"src":"29771:10:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5943,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"29790:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29784:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":5941,"name":"int72","nodeType":"ElementaryTypeName","src":"29784:5:15","typeDescriptions":{}}},"id":5944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29784:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"29771:25:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":5946,"nodeType":"ExpressionStatement","src":"29771:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5947,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5938,"src":"29810:10:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5948,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"29824:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29810:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5956,"nodeType":"IfStatement","src":"29806:97:15","trueBody":{"id":5955,"nodeType":"Block","src":"29831:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":5951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29882:2:15","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":5952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"29886:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5950,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"29852:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29852:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5954,"nodeType":"RevertStatement","src":"29845:47:15"}]}}]},"documentation":{"id":5933,"nodeType":"StructuredDocumentation","src":"29377:307:15","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":5958,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29698:7:15","nodeType":"FunctionDefinition","parameters":{"id":5936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5935,"mutability":"mutable","name":"value","nameLocation":"29713:5:15","nodeType":"VariableDeclaration","scope":5958,"src":"29706:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5934,"name":"int256","nodeType":"ElementaryTypeName","src":"29706:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29705:14:15"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5938,"mutability":"mutable","name":"downcasted","nameLocation":"29749:10:15","nodeType":"VariableDeclaration","scope":5958,"src":"29743:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":5937,"name":"int72","nodeType":"ElementaryTypeName","src":"29743:5:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"29742:18:15"},"scope":6207,"src":"29689:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5983,"nodeType":"Block","src":"30299:148:15","statements":[{"expression":{"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5966,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"30309:10:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5969,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"30328:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30322:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":5967,"name":"int64","nodeType":"ElementaryTypeName","src":"30322:5:15","typeDescriptions":{}}},"id":5970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30322:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30309:25:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":5972,"nodeType":"ExpressionStatement","src":"30309:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5973,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"30348:10:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5974,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"30362:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30348:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5982,"nodeType":"IfStatement","src":"30344:97:15","trueBody":{"id":5981,"nodeType":"Block","src":"30369:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":5977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30420:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":5978,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"30424:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5976,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"30390:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30390:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5980,"nodeType":"RevertStatement","src":"30383:47:15"}]}}]},"documentation":{"id":5959,"nodeType":"StructuredDocumentation","src":"29915:307:15","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":5984,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30236:7:15","nodeType":"FunctionDefinition","parameters":{"id":5962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5961,"mutability":"mutable","name":"value","nameLocation":"30251:5:15","nodeType":"VariableDeclaration","scope":5984,"src":"30244:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5960,"name":"int256","nodeType":"ElementaryTypeName","src":"30244:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30243:14:15"},"returnParameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"downcasted","nameLocation":"30287:10:15","nodeType":"VariableDeclaration","scope":5984,"src":"30281:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":5963,"name":"int64","nodeType":"ElementaryTypeName","src":"30281:5:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30280:18:15"},"scope":6207,"src":"30227:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6009,"nodeType":"Block","src":"30837:148:15","statements":[{"expression":{"id":5997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5992,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"30847:10:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5995,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5987,"src":"30866:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30860:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":5993,"name":"int56","nodeType":"ElementaryTypeName","src":"30860:5:15","typeDescriptions":{}}},"id":5996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30860:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"30847:25:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":5998,"nodeType":"ExpressionStatement","src":"30847:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5999,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"30886:10:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6000,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5987,"src":"30900:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30886:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6008,"nodeType":"IfStatement","src":"30882:97:15","trueBody":{"id":6007,"nodeType":"Block","src":"30907:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":6003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30958:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":6004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5987,"src":"30962:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6002,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"30928:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6006,"nodeType":"RevertStatement","src":"30921:47:15"}]}}]},"documentation":{"id":5985,"nodeType":"StructuredDocumentation","src":"30453:307:15","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":6010,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"30774:7:15","nodeType":"FunctionDefinition","parameters":{"id":5988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5987,"mutability":"mutable","name":"value","nameLocation":"30789:5:15","nodeType":"VariableDeclaration","scope":6010,"src":"30782:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5986,"name":"int256","nodeType":"ElementaryTypeName","src":"30782:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30781:14:15"},"returnParameters":{"id":5991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5990,"mutability":"mutable","name":"downcasted","nameLocation":"30825:10:15","nodeType":"VariableDeclaration","scope":6010,"src":"30819:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":5989,"name":"int56","nodeType":"ElementaryTypeName","src":"30819:5:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"30818:18:15"},"scope":6207,"src":"30765:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6035,"nodeType":"Block","src":"31375:148:15","statements":[{"expression":{"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6018,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"31385:10:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6021,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"31404:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":6019,"name":"int48","nodeType":"ElementaryTypeName","src":"31398:5:15","typeDescriptions":{}}},"id":6022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31385:25:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":6024,"nodeType":"ExpressionStatement","src":"31385:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6025,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"31424:10:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6026,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"31438:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31424:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6034,"nodeType":"IfStatement","src":"31420:97:15","trueBody":{"id":6033,"nodeType":"Block","src":"31445:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":6029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31496:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":6030,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"31500:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6028,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"31466:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31466:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6032,"nodeType":"RevertStatement","src":"31459:47:15"}]}}]},"documentation":{"id":6011,"nodeType":"StructuredDocumentation","src":"30991:307:15","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":6036,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31312:7:15","nodeType":"FunctionDefinition","parameters":{"id":6014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6013,"mutability":"mutable","name":"value","nameLocation":"31327:5:15","nodeType":"VariableDeclaration","scope":6036,"src":"31320:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6012,"name":"int256","nodeType":"ElementaryTypeName","src":"31320:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31319:14:15"},"returnParameters":{"id":6017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6016,"mutability":"mutable","name":"downcasted","nameLocation":"31363:10:15","nodeType":"VariableDeclaration","scope":6036,"src":"31357:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":6015,"name":"int48","nodeType":"ElementaryTypeName","src":"31357:5:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31356:18:15"},"scope":6207,"src":"31303:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6061,"nodeType":"Block","src":"31913:148:15","statements":[{"expression":{"id":6049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6044,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6042,"src":"31923:10:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6047,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6039,"src":"31942:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31936:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":6045,"name":"int40","nodeType":"ElementaryTypeName","src":"31936:5:15","typeDescriptions":{}}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31936:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"31923:25:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":6050,"nodeType":"ExpressionStatement","src":"31923:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6051,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6042,"src":"31962:10:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6039,"src":"31976:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31962:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6060,"nodeType":"IfStatement","src":"31958:97:15","trueBody":{"id":6059,"nodeType":"Block","src":"31983:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":6055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32034:2:15","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":6056,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6039,"src":"32038:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6054,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"32004:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32004:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6058,"nodeType":"RevertStatement","src":"31997:47:15"}]}}]},"documentation":{"id":6037,"nodeType":"StructuredDocumentation","src":"31529:307:15","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":6062,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"31850:7:15","nodeType":"FunctionDefinition","parameters":{"id":6040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6039,"mutability":"mutable","name":"value","nameLocation":"31865:5:15","nodeType":"VariableDeclaration","scope":6062,"src":"31858:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6038,"name":"int256","nodeType":"ElementaryTypeName","src":"31858:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31857:14:15"},"returnParameters":{"id":6043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6042,"mutability":"mutable","name":"downcasted","nameLocation":"31901:10:15","nodeType":"VariableDeclaration","scope":6062,"src":"31895:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":6041,"name":"int40","nodeType":"ElementaryTypeName","src":"31895:5:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"31894:18:15"},"scope":6207,"src":"31841:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6087,"nodeType":"Block","src":"32451:148:15","statements":[{"expression":{"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6070,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6068,"src":"32461:10:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6073,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"32480:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32474:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":6071,"name":"int32","nodeType":"ElementaryTypeName","src":"32474:5:15","typeDescriptions":{}}},"id":6074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32474:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32461:25:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":6076,"nodeType":"ExpressionStatement","src":"32461:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6077,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6068,"src":"32500:10:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6078,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"32514:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32500:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6086,"nodeType":"IfStatement","src":"32496:97:15","trueBody":{"id":6085,"nodeType":"Block","src":"32521:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":6081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32572:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":6082,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"32576:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6080,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"32542:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32542:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6084,"nodeType":"RevertStatement","src":"32535:47:15"}]}}]},"documentation":{"id":6063,"nodeType":"StructuredDocumentation","src":"32067:307:15","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":6088,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32388:7:15","nodeType":"FunctionDefinition","parameters":{"id":6066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6065,"mutability":"mutable","name":"value","nameLocation":"32403:5:15","nodeType":"VariableDeclaration","scope":6088,"src":"32396:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6064,"name":"int256","nodeType":"ElementaryTypeName","src":"32396:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32395:14:15"},"returnParameters":{"id":6069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6068,"mutability":"mutable","name":"downcasted","nameLocation":"32439:10:15","nodeType":"VariableDeclaration","scope":6088,"src":"32433:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":6067,"name":"int32","nodeType":"ElementaryTypeName","src":"32433:5:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32432:18:15"},"scope":6207,"src":"32379:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6113,"nodeType":"Block","src":"32989:148:15","statements":[{"expression":{"id":6101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6096,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"32999:10:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6099,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"33018:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33012:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":6097,"name":"int24","nodeType":"ElementaryTypeName","src":"33012:5:15","typeDescriptions":{}}},"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33012:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"32999:25:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":6102,"nodeType":"ExpressionStatement","src":"32999:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6103,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"33038:10:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6104,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"33052:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33038:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6112,"nodeType":"IfStatement","src":"33034:97:15","trueBody":{"id":6111,"nodeType":"Block","src":"33059:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":6107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33110:2:15","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":6108,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"33114:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6106,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"33080:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33080:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6110,"nodeType":"RevertStatement","src":"33073:47:15"}]}}]},"documentation":{"id":6089,"nodeType":"StructuredDocumentation","src":"32605:307:15","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":6114,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"32926:7:15","nodeType":"FunctionDefinition","parameters":{"id":6092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6091,"mutability":"mutable","name":"value","nameLocation":"32941:5:15","nodeType":"VariableDeclaration","scope":6114,"src":"32934:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6090,"name":"int256","nodeType":"ElementaryTypeName","src":"32934:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32933:14:15"},"returnParameters":{"id":6095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6094,"mutability":"mutable","name":"downcasted","nameLocation":"32977:10:15","nodeType":"VariableDeclaration","scope":6114,"src":"32971:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":6093,"name":"int24","nodeType":"ElementaryTypeName","src":"32971:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"32970:18:15"},"scope":6207,"src":"32917:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6139,"nodeType":"Block","src":"33527:148:15","statements":[{"expression":{"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6122,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"33537:10:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"33556:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33550:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":6123,"name":"int16","nodeType":"ElementaryTypeName","src":"33550:5:15","typeDescriptions":{}}},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33550:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33537:25:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":6128,"nodeType":"ExpressionStatement","src":"33537:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6129,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"33576:10:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"33590:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33576:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6138,"nodeType":"IfStatement","src":"33572:97:15","trueBody":{"id":6137,"nodeType":"Block","src":"33597:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":6133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33648:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":6134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"33652:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6132,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"33618:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33618:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6136,"nodeType":"RevertStatement","src":"33611:47:15"}]}}]},"documentation":{"id":6115,"nodeType":"StructuredDocumentation","src":"33143:307:15","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":6140,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33464:7:15","nodeType":"FunctionDefinition","parameters":{"id":6118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6117,"mutability":"mutable","name":"value","nameLocation":"33479:5:15","nodeType":"VariableDeclaration","scope":6140,"src":"33472:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6116,"name":"int256","nodeType":"ElementaryTypeName","src":"33472:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33471:14:15"},"returnParameters":{"id":6121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6120,"mutability":"mutable","name":"downcasted","nameLocation":"33515:10:15","nodeType":"VariableDeclaration","scope":6140,"src":"33509:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":6119,"name":"int16","nodeType":"ElementaryTypeName","src":"33509:5:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33508:18:15"},"scope":6207,"src":"33455:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6165,"nodeType":"Block","src":"34058:146:15","statements":[{"expression":{"id":6153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6148,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6146,"src":"34068:10:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"34086:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34081:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":6149,"name":"int8","nodeType":"ElementaryTypeName","src":"34081:4:15","typeDescriptions":{}}},"id":6152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34068:24:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":6154,"nodeType":"ExpressionStatement","src":"34068:24:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6155,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6146,"src":"34106:10:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6156,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"34120:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34106:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6164,"nodeType":"IfStatement","src":"34102:96:15","trueBody":{"id":6163,"nodeType":"Block","src":"34127:71:15","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":6159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34178:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":6160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"34181:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6158,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"34148:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34148:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6162,"nodeType":"RevertStatement","src":"34141:46:15"}]}}]},"documentation":{"id":6141,"nodeType":"StructuredDocumentation","src":"33681:302:15","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":6166,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"33997:6:15","nodeType":"FunctionDefinition","parameters":{"id":6144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6143,"mutability":"mutable","name":"value","nameLocation":"34011:5:15","nodeType":"VariableDeclaration","scope":6166,"src":"34004:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6142,"name":"int256","nodeType":"ElementaryTypeName","src":"34004:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34003:14:15"},"returnParameters":{"id":6147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6146,"mutability":"mutable","name":"downcasted","nameLocation":"34046:10:15","nodeType":"VariableDeclaration","scope":6166,"src":"34041:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":6145,"name":"int8","nodeType":"ElementaryTypeName","src":"34041:4:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34040:17:15"},"scope":6207,"src":"33988:216:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6195,"nodeType":"Block","src":"34444:250:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"34557:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":6179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34578:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6178,"name":"int256","nodeType":"ElementaryTypeName","src":"34578:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":6177,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34573:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34573:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":6181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34586:3:15","memberName":"max","nodeType":"MemberAccess","src":"34573:16:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34565:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6175,"name":"uint256","nodeType":"ElementaryTypeName","src":"34565:7:15","typeDescriptions":{}}},"id":6182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34565:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34557:33:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6189,"nodeType":"IfStatement","src":"34553:105:15","trueBody":{"id":6188,"nodeType":"Block","src":"34592:66:15","statements":[{"errorCall":{"arguments":[{"id":6185,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"34641:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6184,"name":"SafeCastOverflowedUintToInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4469,"src":"34613:27:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":6186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34613:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6187,"nodeType":"RevertStatement","src":"34606:41:15"}]}},{"expression":{"arguments":[{"id":6192,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"34681:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34674:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6190,"name":"int256","nodeType":"ElementaryTypeName","src":"34674:6:15","typeDescriptions":{}}},"id":6193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34674:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6173,"id":6194,"nodeType":"Return","src":"34667:20:15"}]},"documentation":{"id":6167,"nodeType":"StructuredDocumentation","src":"34210:165:15","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."},"id":6196,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34389:8:15","nodeType":"FunctionDefinition","parameters":{"id":6170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6169,"mutability":"mutable","name":"value","nameLocation":"34406:5:15","nodeType":"VariableDeclaration","scope":6196,"src":"34398:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6168,"name":"uint256","nodeType":"ElementaryTypeName","src":"34398:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34397:15:15"},"returnParameters":{"id":6173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6196,"src":"34436:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6171,"name":"int256","nodeType":"ElementaryTypeName","src":"34436:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34435:8:15"},"scope":6207,"src":"34380:314:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6205,"nodeType":"Block","src":"34853:114:15","statements":[{"AST":{"nativeSrc":"34915:46:15","nodeType":"YulBlock","src":"34915:46:15","statements":[{"nativeSrc":"34929:22:15","nodeType":"YulAssignment","src":"34929:22:15","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"34948:1:15","nodeType":"YulIdentifier","src":"34948:1:15"}],"functionName":{"name":"iszero","nativeSrc":"34941:6:15","nodeType":"YulIdentifier","src":"34941:6:15"},"nativeSrc":"34941:9:15","nodeType":"YulFunctionCall","src":"34941:9:15"}],"functionName":{"name":"iszero","nativeSrc":"34934:6:15","nodeType":"YulIdentifier","src":"34934:6:15"},"nativeSrc":"34934:17:15","nodeType":"YulFunctionCall","src":"34934:17:15"},"variableNames":[{"name":"u","nativeSrc":"34929:1:15","nodeType":"YulIdentifier","src":"34929:1:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6199,"isOffset":false,"isSlot":false,"src":"34948:1:15","valueSize":1},{"declaration":6202,"isOffset":false,"isSlot":false,"src":"34929:1:15","valueSize":1}],"id":6204,"nodeType":"InlineAssembly","src":"34906:55:15"}]},"documentation":{"id":6197,"nodeType":"StructuredDocumentation","src":"34700:90:15","text":" @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump."},"id":6206,"implemented":true,"kind":"function","modifiers":[],"name":"toUint","nameLocation":"34804:6:15","nodeType":"FunctionDefinition","parameters":{"id":6200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6199,"mutability":"mutable","name":"b","nameLocation":"34816:1:15","nodeType":"VariableDeclaration","scope":6206,"src":"34811:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6198,"name":"bool","nodeType":"ElementaryTypeName","src":"34811:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34810:8:15"},"returnParameters":{"id":6203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6202,"mutability":"mutable","name":"u","nameLocation":"34850:1:15","nodeType":"VariableDeclaration","scope":6206,"src":"34842:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6201,"name":"uint256","nodeType":"ElementaryTypeName","src":"34842:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34841:11:15"},"scope":6207,"src":"34795:172:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":6208,"src":"769:34200:15","usedErrors":[4452,4457,4464,4469],"usedEvents":[]}],"src":"192:34778:15"},"id":15},"@solady/accounts/Receiver.sol":{"ast":{"absolutePath":"@solady/accounts/Receiver.sol","exportedSymbols":{"Receiver":[6229]},"id":6230,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6209,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:16"},{"abstract":true,"baseContracts":[],"canonicalName":"Receiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":6210,"nodeType":"StructuredDocumentation","src":"57:374:16","text":"@notice Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\n @author Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\n @dev Note:\n - Handles all ERC721 and ERC1155 token safety callbacks.\n - Collapses function table gas overhead and code size.\n - Utilizes fallback so unknown calldata will pass on."},"fullyImplemented":true,"id":6229,"linearizedBaseContracts":[6229],"name":"Receiver","nameLocation":"449:8:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":6214,"nodeType":"Block","src":"531:2:16","statements":[]},"documentation":{"id":6211,"nodeType":"StructuredDocumentation","src":"464:27:16","text":"@dev For receiving ETH."},"id":6215,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6212,"nodeType":"ParameterList","parameters":[],"src":"503:2:16"},"returnParameters":{"id":6213,"nodeType":"ParameterList","parameters":[],"src":"531:0:16"},"scope":6229,"src":"496:37:16","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":6221,"nodeType":"Block","src":"661:2:16","statements":[]},"documentation":{"id":6216,"nodeType":"StructuredDocumentation","src":"539:64:16","text":"@dev Fallback function with the `receiverFallback` modifier."},"id":6222,"implemented":true,"kind":"fallback","modifiers":[{"id":6219,"kind":"modifierInvocation","modifierName":{"id":6218,"name":"receiverFallback","nameLocations":["644:16:16"],"nodeType":"IdentifierPath","referencedDeclaration":6228,"src":"644:16:16"},"nodeType":"ModifierInvocation","src":"644:16:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6217,"nodeType":"ParameterList","parameters":[],"src":"616:2:16"},"returnParameters":{"id":6220,"nodeType":"ParameterList","parameters":[],"src":"661:0:16"},"scope":6229,"src":"608:55:16","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":6227,"nodeType":"Block","src":"780:601:16","statements":[{"AST":{"nativeSrc":"842:522:16","nodeType":"YulBlock","src":"842:522:16","statements":[{"nativeSrc":"856:34:16","nodeType":"YulVariableDeclaration","src":"856:34:16","value":{"arguments":[{"kind":"number","nativeSrc":"869:3:16","nodeType":"YulLiteral","src":"869:3:16","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"887:1:16","nodeType":"YulLiteral","src":"887:1:16","type":"","value":"0"}],"functionName":{"name":"calldataload","nativeSrc":"874:12:16","nodeType":"YulIdentifier","src":"874:12:16"},"nativeSrc":"874:15:16","nodeType":"YulFunctionCall","src":"874:15:16"}],"functionName":{"name":"shr","nativeSrc":"865:3:16","nodeType":"YulIdentifier","src":"865:3:16"},"nativeSrc":"865:25:16","nodeType":"YulFunctionCall","src":"865:25:16"},"variables":[{"name":"s","nativeSrc":"860:1:16","nodeType":"YulTypedName","src":"860:1:16","type":""}]},{"body":{"nativeSrc":"1231:123:16","nodeType":"YulBlock","src":"1231:123:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1256:4:16","nodeType":"YulLiteral","src":"1256:4:16","type":"","value":"0x20"},{"name":"s","nativeSrc":"1262:1:16","nodeType":"YulIdentifier","src":"1262:1:16"}],"functionName":{"name":"mstore","nativeSrc":"1249:6:16","nodeType":"YulIdentifier","src":"1249:6:16"},"nativeSrc":"1249:15:16","nodeType":"YulFunctionCall","src":"1249:15:16"},"nativeSrc":"1249:15:16","nodeType":"YulExpressionStatement","src":"1249:15:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1308:4:16","nodeType":"YulLiteral","src":"1308:4:16","type":"","value":"0x3c"},{"kind":"number","nativeSrc":"1314:4:16","nodeType":"YulLiteral","src":"1314:4:16","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"1301:6:16","nodeType":"YulIdentifier","src":"1301:6:16"},"nativeSrc":"1301:18:16","nodeType":"YulFunctionCall","src":"1301:18:16"},"nativeSrc":"1301:18:16","nodeType":"YulExpressionStatement","src":"1301:18:16"}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"1173:1:16","nodeType":"YulIdentifier","src":"1173:1:16"},{"kind":"number","nativeSrc":"1176:10:16","nodeType":"YulLiteral","src":"1176:10:16","type":"","value":"0x150b7a02"}],"functionName":{"name":"eq","nativeSrc":"1170:2:16","nodeType":"YulIdentifier","src":"1170:2:16"},"nativeSrc":"1170:17:16","nodeType":"YulFunctionCall","src":"1170:17:16"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"1195:1:16","nodeType":"YulIdentifier","src":"1195:1:16"},{"kind":"number","nativeSrc":"1198:10:16","nodeType":"YulLiteral","src":"1198:10:16","type":"","value":"0xf23a6e61"}],"functionName":{"name":"eq","nativeSrc":"1192:2:16","nodeType":"YulIdentifier","src":"1192:2:16"},"nativeSrc":"1192:17:16","nodeType":"YulFunctionCall","src":"1192:17:16"},{"arguments":[{"name":"s","nativeSrc":"1214:1:16","nodeType":"YulIdentifier","src":"1214:1:16"},{"kind":"number","nativeSrc":"1217:10:16","nodeType":"YulLiteral","src":"1217:10:16","type":"","value":"0xbc197c81"}],"functionName":{"name":"eq","nativeSrc":"1211:2:16","nodeType":"YulIdentifier","src":"1211:2:16"},"nativeSrc":"1211:17:16","nodeType":"YulFunctionCall","src":"1211:17:16"}],"functionName":{"name":"or","nativeSrc":"1189:2:16","nodeType":"YulIdentifier","src":"1189:2:16"},"nativeSrc":"1189:40:16","nodeType":"YulFunctionCall","src":"1189:40:16"}],"functionName":{"name":"or","nativeSrc":"1167:2:16","nodeType":"YulIdentifier","src":"1167:2:16"},"nativeSrc":"1167:63:16","nodeType":"YulFunctionCall","src":"1167:63:16"},"nativeSrc":"1164:190:16","nodeType":"YulIf","src":"1164:190:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[],"id":6225,"nodeType":"InlineAssembly","src":"833:531:16"},{"id":6226,"nodeType":"PlaceholderStatement","src":"1373:1:16"}]},"documentation":{"id":6223,"nodeType":"StructuredDocumentation","src":"669:70:16","text":"@dev Modifier for the fallback function to handle token callbacks."},"id":6228,"name":"receiverFallback","nameLocation":"753:16:16","nodeType":"ModifierDefinition","parameters":{"id":6224,"nodeType":"ParameterList","parameters":[],"src":"769:2:16"},"src":"744:637:16","virtual":true,"visibility":"internal"}],"scope":6230,"src":"431:952:16","usedErrors":[],"usedEvents":[]}],"src":"32:1352:16"},"id":16},"@solady/auth/Ownable.sol":{"ast":{"absolutePath":"@solady/auth/Ownable.sol","exportedSymbols":{"Ownable":[6423]},"id":6424,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6231,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:17"},{"abstract":true,"baseContracts":[],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":6232,"nodeType":"StructuredDocumentation","src":"57:514:17","text":"@notice Simple single owner authorization mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n @dev Note:\n This implementation does NOT auto-initialize the owner to `msg.sender`.\n You MUST call the `_initializeOwner` in the constructor / initializer.\n While the ownable portion follows\n [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,\n the nomenclature for the 2-step ownership handover may be unique to this codebase."},"fullyImplemented":true,"id":6423,"linearizedBaseContracts":[6423],"name":"Ownable","nameLocation":"589:7:17","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6233,"nodeType":"StructuredDocumentation","src":"886:59:17","text":"@dev The caller is not authorized to call the function."},"errorSelector":"82b42900","id":6235,"name":"Unauthorized","nameLocation":"956:12:17","nodeType":"ErrorDefinition","parameters":{"id":6234,"nodeType":"ParameterList","parameters":[],"src":"968:2:17"},"src":"950:21:17"},{"documentation":{"id":6236,"nodeType":"StructuredDocumentation","src":"977:51:17","text":"@dev The `newOwner` cannot be the zero address."},"errorSelector":"7448fbae","id":6238,"name":"NewOwnerIsZeroAddress","nameLocation":"1039:21:17","nodeType":"ErrorDefinition","parameters":{"id":6237,"nodeType":"ParameterList","parameters":[],"src":"1060:2:17"},"src":"1033:30:17"},{"documentation":{"id":6239,"nodeType":"StructuredDocumentation","src":"1069:67:17","text":"@dev The `pendingOwner` does not have a valid handover request."},"errorSelector":"6f5e8818","id":6241,"name":"NoHandoverRequest","nameLocation":"1147:17:17","nodeType":"ErrorDefinition","parameters":{"id":6240,"nodeType":"ParameterList","parameters":[],"src":"1164:2:17"},"src":"1141:26:17"},{"documentation":{"id":6242,"nodeType":"StructuredDocumentation","src":"1173:34:17","text":"@dev Cannot double-initialize."},"errorSelector":"0dc149f0","id":6244,"name":"AlreadyInitialized","nameLocation":"1218:18:17","nodeType":"ErrorDefinition","parameters":{"id":6243,"nodeType":"ParameterList","parameters":[],"src":"1236:2:17"},"src":"1212:27:17"},{"anonymous":false,"documentation":{"id":6245,"nodeType":"StructuredDocumentation","src":"1528:310:17","text":"@dev The ownership is transferred from `oldOwner` to `newOwner`.\n This event is intentionally kept the same as OpenZeppelin's Ownable to be\n compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173),\n despite it not being as lightweight as a single argument event."},"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":6251,"name":"OwnershipTransferred","nameLocation":"1849:20:17","nodeType":"EventDefinition","parameters":{"id":6250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6247,"indexed":true,"mutability":"mutable","name":"oldOwner","nameLocation":"1886:8:17","nodeType":"VariableDeclaration","scope":6251,"src":"1870:24:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6246,"name":"address","nodeType":"ElementaryTypeName","src":"1870:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6249,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1912:8:17","nodeType":"VariableDeclaration","scope":6251,"src":"1896:24:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6248,"name":"address","nodeType":"ElementaryTypeName","src":"1896:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1869:52:17"},"src":"1843:79:17"},{"anonymous":false,"documentation":{"id":6252,"nodeType":"StructuredDocumentation","src":"1928:68:17","text":"@dev An ownership handover to `pendingOwner` has been requested."},"eventSelector":"dbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d","id":6256,"name":"OwnershipHandoverRequested","nameLocation":"2007:26:17","nodeType":"EventDefinition","parameters":{"id":6255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6254,"indexed":true,"mutability":"mutable","name":"pendingOwner","nameLocation":"2050:12:17","nodeType":"VariableDeclaration","scope":6256,"src":"2034:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6253,"name":"address","nodeType":"ElementaryTypeName","src":"2034:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2033:30:17"},"src":"2001:63:17"},{"anonymous":false,"documentation":{"id":6257,"nodeType":"StructuredDocumentation","src":"2070:68:17","text":"@dev The ownership handover to `pendingOwner` has been canceled."},"eventSelector":"fa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92","id":6261,"name":"OwnershipHandoverCanceled","nameLocation":"2149:25:17","nodeType":"EventDefinition","parameters":{"id":6260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6259,"indexed":true,"mutability":"mutable","name":"pendingOwner","nameLocation":"2191:12:17","nodeType":"VariableDeclaration","scope":6261,"src":"2175:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6258,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2174:30:17"},"src":"2143:62:17"},{"constant":true,"documentation":{"id":6262,"nodeType":"StructuredDocumentation","src":"2211:69:17","text":"@dev `keccak256(bytes(\"OwnershipTransferred(address,address)\"))`."},"id":6265,"mutability":"constant","name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nameLocation":"2310:38:17","nodeType":"VariableDeclaration","scope":6423,"src":"2285:140:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6263,"name":"uint256","nodeType":"ElementaryTypeName","src":"2285:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838626530303739633533313635393134313334346364316664306134663238343139343937663937323261336461616665336234313836663662363435376530","id":6264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2359:66:17","typeDescriptions":{"typeIdentifier":"t_rational_63267312222310607310220992301550539520881909915348243260808268974908359596000_by_1","typeString":"int_const 6326...(69 digits omitted)...6000"},"value":"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"},"visibility":"private"},{"constant":true,"documentation":{"id":6266,"nodeType":"StructuredDocumentation","src":"2432:67:17","text":"@dev `keccak256(bytes(\"OwnershipHandoverRequested(address)\"))`."},"id":6269,"mutability":"constant","name":"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE","nameLocation":"2529:45:17","nodeType":"VariableDeclaration","scope":6423,"src":"2504:147:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6267,"name":"uint256","nodeType":"ElementaryTypeName","src":"2504:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864626633366131303764613139653439353237613731373661316261626639363362346230666638636465333565653335643663643866316639616337653164","id":6268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2585:66:17","typeDescriptions":{"typeIdentifier":"t_rational_99486589706178915293482045537067896628184784474209892898124391061398315892253_by_1","typeString":"int_const 9948...(69 digits omitted)...2253"},"value":"0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d"},"visibility":"private"},{"constant":true,"documentation":{"id":6270,"nodeType":"StructuredDocumentation","src":"2658:66:17","text":"@dev `keccak256(bytes(\"OwnershipHandoverCanceled(address)\"))`."},"id":6273,"mutability":"constant","name":"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE","nameLocation":"2754:44:17","nodeType":"VariableDeclaration","scope":6423,"src":"2729:146:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6271,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307866613762386561623764613637663431326363393537356564343334363434363866396266626165383964313637353931373334366361366438666533633932","id":6272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2809:66:17","typeDescriptions":{"typeIdentifier":"t_rational_113296519006148992096626879868577423813870114622160551413976512868841544367250_by_1","typeString":"int_const 1132...(70 digits omitted)...7250"},"value":"0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92"},"visibility":"private"},{"constant":true,"documentation":{"id":6274,"nodeType":"StructuredDocumentation","src":"3165:334:17","text":"@dev The owner slot is given by:\n `bytes32(~uint256(uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))))`.\n It is intentionally chosen to be a high value\n to avoid collision with lower slots.\n The choice of manual storage layout is to enable compatibility\n with both regular and upgradeable contracts."},"id":6277,"mutability":"constant","name":"_OWNER_SLOT","nameLocation":"3530:11:17","nodeType":"VariableDeclaration","scope":6423,"src":"3504:114:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3504:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666663734383733393237","id":6276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3552:66:17","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007910789691687_by_1","typeString":"int_const 1157...(70 digits omitted)...1687"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927"},"visibility":"internal"},{"constant":true,"documentation":{"id":6278,"nodeType":"StructuredDocumentation","src":"3625:276:17","text":"The ownership handover slot of `newOwner` is given by:\n ```\n mstore(0x00, or(shl(96, user), _HANDOVER_SLOT_SEED))\n let handoverSlot := keccak256(0x00, 0x20)\n ```\n It stores the expiry timestamp of the two-step ownership handover."},"id":6281,"mutability":"constant","name":"_HANDOVER_SLOT_SEED","nameLocation":"3931:19:17","nodeType":"VariableDeclaration","scope":6423,"src":"3906:57:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6279,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783338396137356531","id":6280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3953:10:17","typeDescriptions":{"typeIdentifier":"t_rational_949646817_by_1","typeString":"int_const 949646817"},"value":"0x389a75e1"},"visibility":"private"},{"body":{"id":6287,"nodeType":"Block","src":"4424:2:17","statements":[]},"documentation":{"id":6282,"nodeType":"StructuredDocumentation","src":"4253:90:17","text":"@dev Override to return true to make `_initializeOwner` prevent double-initialization."},"id":6288,"implemented":true,"kind":"function","modifiers":[],"name":"_guardInitializeOwner","nameLocation":"4357:21:17","nodeType":"FunctionDefinition","parameters":{"id":6283,"nodeType":"ParameterList","parameters":[],"src":"4378:2:17"},"returnParameters":{"id":6286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6285,"mutability":"mutable","name":"guard","nameLocation":"4417:5:17","nodeType":"VariableDeclaration","scope":6288,"src":"4412:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6284,"name":"bool","nodeType":"ElementaryTypeName","src":"4412:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4411:12:17"},"scope":6423,"src":"4348:78:17","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":6301,"nodeType":"Block","src":"4944:1129:17","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":6294,"name":"_guardInitializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"4958:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bool_$","typeString":"function () pure returns (bool)"}},"id":6295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4958:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6299,"nodeType":"Block","src":"5649:418:17","statements":[{"AST":{"nativeSrc":"5719:338:17","nodeType":"YulBlock","src":"5719:338:17","statements":[{"nativeSrc":"5781:38:17","nodeType":"YulAssignment","src":"5781:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"5797:2:17","nodeType":"YulLiteral","src":"5797:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"5805:2:17","nodeType":"YulLiteral","src":"5805:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"5809:8:17","nodeType":"YulIdentifier","src":"5809:8:17"}],"functionName":{"name":"shl","nativeSrc":"5801:3:17","nodeType":"YulIdentifier","src":"5801:3:17"},"nativeSrc":"5801:17:17","nodeType":"YulFunctionCall","src":"5801:17:17"}],"functionName":{"name":"shr","nativeSrc":"5793:3:17","nodeType":"YulIdentifier","src":"5793:3:17"},"nativeSrc":"5793:26:17","nodeType":"YulFunctionCall","src":"5793:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"5781:8:17","nodeType":"YulIdentifier","src":"5781:8:17"}]},{"expression":{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"5883:11:17","nodeType":"YulIdentifier","src":"5883:11:17"},{"name":"newOwner","nativeSrc":"5896:8:17","nodeType":"YulIdentifier","src":"5896:8:17"}],"functionName":{"name":"sstore","nativeSrc":"5876:6:17","nodeType":"YulIdentifier","src":"5876:6:17"},"nativeSrc":"5876:29:17","nodeType":"YulFunctionCall","src":"5876:29:17"},"nativeSrc":"5876:29:17","nodeType":"YulExpressionStatement","src":"5876:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5985:1:17","nodeType":"YulLiteral","src":"5985:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"5988:1:17","nodeType":"YulLiteral","src":"5988:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"5991:38:17","nodeType":"YulIdentifier","src":"5991:38:17"},{"kind":"number","nativeSrc":"6031:1:17","nodeType":"YulLiteral","src":"6031:1:17","type":"","value":"0"},{"name":"newOwner","nativeSrc":"6034:8:17","nodeType":"YulIdentifier","src":"6034:8:17"}],"functionName":{"name":"log3","nativeSrc":"5980:4:17","nodeType":"YulIdentifier","src":"5980:4:17"},"nativeSrc":"5980:63:17","nodeType":"YulFunctionCall","src":"5980:63:17"},"nativeSrc":"5980:63:17","nodeType":"YulExpressionStatement","src":"5980:63:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"5991:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5883:11:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5781:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5809:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5896:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6034:8:17","valueSize":1}],"id":6298,"nodeType":"InlineAssembly","src":"5710:347:17"}]},"id":6300,"nodeType":"IfStatement","src":"4954:1113:17","trueBody":{"id":6297,"nodeType":"Block","src":"4983:660:17","statements":[{"AST":{"nativeSrc":"5053:580:17","nodeType":"YulBlock","src":"5053:580:17","statements":[{"nativeSrc":"5071:28:17","nodeType":"YulVariableDeclaration","src":"5071:28:17","value":{"name":"_OWNER_SLOT","nativeSrc":"5088:11:17","nodeType":"YulIdentifier","src":"5088:11:17"},"variables":[{"name":"ownerSlot","nativeSrc":"5075:9:17","nodeType":"YulTypedName","src":"5075:9:17","type":""}]},{"body":{"nativeSrc":"5136:130:17","nodeType":"YulBlock","src":"5136:130:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5165:4:17","nodeType":"YulLiteral","src":"5165:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5171:10:17","nodeType":"YulLiteral","src":"5171:10:17","type":"","value":"0x0dc149f0"}],"functionName":{"name":"mstore","nativeSrc":"5158:6:17","nodeType":"YulIdentifier","src":"5158:6:17"},"nativeSrc":"5158:24:17","nodeType":"YulFunctionCall","src":"5158:24:17"},"nativeSrc":"5158:24:17","nodeType":"YulExpressionStatement","src":"5158:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5237:4:17","nodeType":"YulLiteral","src":"5237:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5243:4:17","nodeType":"YulLiteral","src":"5243:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5230:6:17","nodeType":"YulIdentifier","src":"5230:6:17"},"nativeSrc":"5230:18:17","nodeType":"YulFunctionCall","src":"5230:18:17"},"nativeSrc":"5230:18:17","nodeType":"YulExpressionStatement","src":"5230:18:17"}]},"condition":{"arguments":[{"name":"ownerSlot","nativeSrc":"5125:9:17","nodeType":"YulIdentifier","src":"5125:9:17"}],"functionName":{"name":"sload","nativeSrc":"5119:5:17","nodeType":"YulIdentifier","src":"5119:5:17"},"nativeSrc":"5119:16:17","nodeType":"YulFunctionCall","src":"5119:16:17"},"nativeSrc":"5116:150:17","nodeType":"YulIf","src":"5116:150:17"},{"nativeSrc":"5327:38:17","nodeType":"YulAssignment","src":"5327:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"5343:2:17","nodeType":"YulLiteral","src":"5343:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"5351:2:17","nodeType":"YulLiteral","src":"5351:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"5355:8:17","nodeType":"YulIdentifier","src":"5355:8:17"}],"functionName":{"name":"shl","nativeSrc":"5347:3:17","nodeType":"YulIdentifier","src":"5347:3:17"},"nativeSrc":"5347:17:17","nodeType":"YulFunctionCall","src":"5347:17:17"}],"functionName":{"name":"shr","nativeSrc":"5339:3:17","nodeType":"YulIdentifier","src":"5339:3:17"},"nativeSrc":"5339:26:17","nodeType":"YulFunctionCall","src":"5339:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"5327:8:17","nodeType":"YulIdentifier","src":"5327:8:17"}]},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"5429:9:17","nodeType":"YulIdentifier","src":"5429:9:17"},{"arguments":[{"name":"newOwner","nativeSrc":"5443:8:17","nodeType":"YulIdentifier","src":"5443:8:17"},{"arguments":[{"kind":"number","nativeSrc":"5457:3:17","nodeType":"YulLiteral","src":"5457:3:17","type":"","value":"255"},{"arguments":[{"name":"newOwner","nativeSrc":"5469:8:17","nodeType":"YulIdentifier","src":"5469:8:17"}],"functionName":{"name":"iszero","nativeSrc":"5462:6:17","nodeType":"YulIdentifier","src":"5462:6:17"},"nativeSrc":"5462:16:17","nodeType":"YulFunctionCall","src":"5462:16:17"}],"functionName":{"name":"shl","nativeSrc":"5453:3:17","nodeType":"YulIdentifier","src":"5453:3:17"},"nativeSrc":"5453:26:17","nodeType":"YulFunctionCall","src":"5453:26:17"}],"functionName":{"name":"or","nativeSrc":"5440:2:17","nodeType":"YulIdentifier","src":"5440:2:17"},"nativeSrc":"5440:40:17","nodeType":"YulFunctionCall","src":"5440:40:17"}],"functionName":{"name":"sstore","nativeSrc":"5422:6:17","nodeType":"YulIdentifier","src":"5422:6:17"},"nativeSrc":"5422:59:17","nodeType":"YulFunctionCall","src":"5422:59:17"},"nativeSrc":"5422:59:17","nodeType":"YulExpressionStatement","src":"5422:59:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5561:1:17","nodeType":"YulLiteral","src":"5561:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"5564:1:17","nodeType":"YulLiteral","src":"5564:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"5567:38:17","nodeType":"YulIdentifier","src":"5567:38:17"},{"kind":"number","nativeSrc":"5607:1:17","nodeType":"YulLiteral","src":"5607:1:17","type":"","value":"0"},{"name":"newOwner","nativeSrc":"5610:8:17","nodeType":"YulIdentifier","src":"5610:8:17"}],"functionName":{"name":"log3","nativeSrc":"5556:4:17","nodeType":"YulIdentifier","src":"5556:4:17"},"nativeSrc":"5556:63:17","nodeType":"YulFunctionCall","src":"5556:63:17"},"nativeSrc":"5556:63:17","nodeType":"YulExpressionStatement","src":"5556:63:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"5567:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5088:11:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5327:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5355:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5443:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5469:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5610:8:17","valueSize":1}],"id":6296,"nodeType":"InlineAssembly","src":"5044:589:17"}]}}]},"documentation":{"id":6289,"nodeType":"StructuredDocumentation","src":"4432:446:17","text":"@dev Initializes the owner directly without authorization guard.\n This function must be called upon initialization,\n regardless of whether the contract is upgradeable or not.\n This is to enable generalization to both regular and upgradeable contracts,\n and to save gas in case the initial owner is not the caller.\n For performance reasons, this function will not check if there\n is an existing owner."},"id":6302,"implemented":true,"kind":"function","modifiers":[],"name":"_initializeOwner","nameLocation":"4892:16:17","nodeType":"FunctionDefinition","parameters":{"id":6292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6291,"mutability":"mutable","name":"newOwner","nameLocation":"4917:8:17","nodeType":"VariableDeclaration","scope":6302,"src":"4909:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6290,"name":"address","nodeType":"ElementaryTypeName","src":"4909:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4908:18:17"},"returnParameters":{"id":6293,"nodeType":"ParameterList","parameters":[],"src":"4944:0:17"},"scope":6423,"src":"4883:1190:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6315,"nodeType":"Block","src":"6199:1035:17","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":6308,"name":"_guardInitializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"6213:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bool_$","typeString":"function () pure returns (bool)"}},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6213:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6313,"nodeType":"Block","src":"6752:476:17","statements":[{"AST":{"nativeSrc":"6822:396:17","nodeType":"YulBlock","src":"6822:396:17","statements":[{"nativeSrc":"6840:28:17","nodeType":"YulVariableDeclaration","src":"6840:28:17","value":{"name":"_OWNER_SLOT","nativeSrc":"6857:11:17","nodeType":"YulIdentifier","src":"6857:11:17"},"variables":[{"name":"ownerSlot","nativeSrc":"6844:9:17","nodeType":"YulTypedName","src":"6844:9:17","type":""}]},{"nativeSrc":"6929:38:17","nodeType":"YulAssignment","src":"6929:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"6945:2:17","nodeType":"YulLiteral","src":"6945:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6953:2:17","nodeType":"YulLiteral","src":"6953:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"6957:8:17","nodeType":"YulIdentifier","src":"6957:8:17"}],"functionName":{"name":"shl","nativeSrc":"6949:3:17","nodeType":"YulIdentifier","src":"6949:3:17"},"nativeSrc":"6949:17:17","nodeType":"YulFunctionCall","src":"6949:17:17"}],"functionName":{"name":"shr","nativeSrc":"6941:3:17","nodeType":"YulIdentifier","src":"6941:3:17"},"nativeSrc":"6941:26:17","nodeType":"YulFunctionCall","src":"6941:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"6929:8:17","nodeType":"YulIdentifier","src":"6929:8:17"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7047:1:17","nodeType":"YulLiteral","src":"7047:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"7050:1:17","nodeType":"YulLiteral","src":"7050:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"7053:38:17","nodeType":"YulIdentifier","src":"7053:38:17"},{"arguments":[{"name":"ownerSlot","nativeSrc":"7099:9:17","nodeType":"YulIdentifier","src":"7099:9:17"}],"functionName":{"name":"sload","nativeSrc":"7093:5:17","nodeType":"YulIdentifier","src":"7093:5:17"},"nativeSrc":"7093:16:17","nodeType":"YulFunctionCall","src":"7093:16:17"},{"name":"newOwner","nativeSrc":"7111:8:17","nodeType":"YulIdentifier","src":"7111:8:17"}],"functionName":{"name":"log3","nativeSrc":"7042:4:17","nodeType":"YulIdentifier","src":"7042:4:17"},"nativeSrc":"7042:78:17","nodeType":"YulFunctionCall","src":"7042:78:17"},"nativeSrc":"7042:78:17","nodeType":"YulExpressionStatement","src":"7042:78:17"},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"7184:9:17","nodeType":"YulIdentifier","src":"7184:9:17"},{"name":"newOwner","nativeSrc":"7195:8:17","nodeType":"YulIdentifier","src":"7195:8:17"}],"functionName":{"name":"sstore","nativeSrc":"7177:6:17","nodeType":"YulIdentifier","src":"7177:6:17"},"nativeSrc":"7177:27:17","nodeType":"YulFunctionCall","src":"7177:27:17"},"nativeSrc":"7177:27:17","nodeType":"YulExpressionStatement","src":"7177:27:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"7053:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"6857:11:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6929:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6957:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"7111:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"7195:8:17","valueSize":1}],"id":6312,"nodeType":"InlineAssembly","src":"6813:405:17"}]},"id":6314,"nodeType":"IfStatement","src":"6209:1019:17","trueBody":{"id":6311,"nodeType":"Block","src":"6238:508:17","statements":[{"AST":{"nativeSrc":"6308:428:17","nodeType":"YulBlock","src":"6308:428:17","statements":[{"nativeSrc":"6326:28:17","nodeType":"YulVariableDeclaration","src":"6326:28:17","value":{"name":"_OWNER_SLOT","nativeSrc":"6343:11:17","nodeType":"YulIdentifier","src":"6343:11:17"},"variables":[{"name":"ownerSlot","nativeSrc":"6330:9:17","nodeType":"YulTypedName","src":"6330:9:17","type":""}]},{"nativeSrc":"6415:38:17","nodeType":"YulAssignment","src":"6415:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"6431:2:17","nodeType":"YulLiteral","src":"6431:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6439:2:17","nodeType":"YulLiteral","src":"6439:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"6443:8:17","nodeType":"YulIdentifier","src":"6443:8:17"}],"functionName":{"name":"shl","nativeSrc":"6435:3:17","nodeType":"YulIdentifier","src":"6435:3:17"},"nativeSrc":"6435:17:17","nodeType":"YulFunctionCall","src":"6435:17:17"}],"functionName":{"name":"shr","nativeSrc":"6427:3:17","nodeType":"YulIdentifier","src":"6427:3:17"},"nativeSrc":"6427:26:17","nodeType":"YulFunctionCall","src":"6427:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"6415:8:17","nodeType":"YulIdentifier","src":"6415:8:17"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6533:1:17","nodeType":"YulLiteral","src":"6533:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"6536:1:17","nodeType":"YulLiteral","src":"6536:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"6539:38:17","nodeType":"YulIdentifier","src":"6539:38:17"},{"arguments":[{"name":"ownerSlot","nativeSrc":"6585:9:17","nodeType":"YulIdentifier","src":"6585:9:17"}],"functionName":{"name":"sload","nativeSrc":"6579:5:17","nodeType":"YulIdentifier","src":"6579:5:17"},"nativeSrc":"6579:16:17","nodeType":"YulFunctionCall","src":"6579:16:17"},{"name":"newOwner","nativeSrc":"6597:8:17","nodeType":"YulIdentifier","src":"6597:8:17"}],"functionName":{"name":"log3","nativeSrc":"6528:4:17","nodeType":"YulIdentifier","src":"6528:4:17"},"nativeSrc":"6528:78:17","nodeType":"YulFunctionCall","src":"6528:78:17"},"nativeSrc":"6528:78:17","nodeType":"YulExpressionStatement","src":"6528:78:17"},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"6670:9:17","nodeType":"YulIdentifier","src":"6670:9:17"},{"arguments":[{"name":"newOwner","nativeSrc":"6684:8:17","nodeType":"YulIdentifier","src":"6684:8:17"},{"arguments":[{"kind":"number","nativeSrc":"6698:3:17","nodeType":"YulLiteral","src":"6698:3:17","type":"","value":"255"},{"arguments":[{"name":"newOwner","nativeSrc":"6710:8:17","nodeType":"YulIdentifier","src":"6710:8:17"}],"functionName":{"name":"iszero","nativeSrc":"6703:6:17","nodeType":"YulIdentifier","src":"6703:6:17"},"nativeSrc":"6703:16:17","nodeType":"YulFunctionCall","src":"6703:16:17"}],"functionName":{"name":"shl","nativeSrc":"6694:3:17","nodeType":"YulIdentifier","src":"6694:3:17"},"nativeSrc":"6694:26:17","nodeType":"YulFunctionCall","src":"6694:26:17"}],"functionName":{"name":"or","nativeSrc":"6681:2:17","nodeType":"YulIdentifier","src":"6681:2:17"},"nativeSrc":"6681:40:17","nodeType":"YulFunctionCall","src":"6681:40:17"}],"functionName":{"name":"sstore","nativeSrc":"6663:6:17","nodeType":"YulIdentifier","src":"6663:6:17"},"nativeSrc":"6663:59:17","nodeType":"YulFunctionCall","src":"6663:59:17"},"nativeSrc":"6663:59:17","nodeType":"YulExpressionStatement","src":"6663:59:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"6539:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"6343:11:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6415:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6443:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6597:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6684:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6710:8:17","valueSize":1}],"id":6310,"nodeType":"InlineAssembly","src":"6299:437:17"}]}}]},"documentation":{"id":6303,"nodeType":"StructuredDocumentation","src":"6079:61:17","text":"@dev Sets the owner directly without authorization guard."},"id":6316,"implemented":true,"kind":"function","modifiers":[],"name":"_setOwner","nameLocation":"6154:9:17","nodeType":"FunctionDefinition","parameters":{"id":6306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6305,"mutability":"mutable","name":"newOwner","nameLocation":"6172:8:17","nodeType":"VariableDeclaration","scope":6316,"src":"6164:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6304,"name":"address","nodeType":"ElementaryTypeName","src":"6164:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6163:18:17"},"returnParameters":{"id":6307,"nodeType":"ParameterList","parameters":[],"src":"6199:0:17"},"scope":6423,"src":"6145:1089:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6321,"nodeType":"Block","src":"7337:310:17","statements":[{"AST":{"nativeSrc":"7399:242:17","nodeType":"YulBlock","src":"7399:242:17","statements":[{"body":{"nativeSrc":"7519:112:17","nodeType":"YulBlock","src":"7519:112:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7544:4:17","nodeType":"YulLiteral","src":"7544:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7550:10:17","nodeType":"YulLiteral","src":"7550:10:17","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"7537:6:17","nodeType":"YulIdentifier","src":"7537:6:17"},"nativeSrc":"7537:24:17","nodeType":"YulFunctionCall","src":"7537:24:17"},"nativeSrc":"7537:24:17","nodeType":"YulExpressionStatement","src":"7537:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7606:4:17","nodeType":"YulLiteral","src":"7606:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7612:4:17","nodeType":"YulLiteral","src":"7612:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7599:6:17","nodeType":"YulIdentifier","src":"7599:6:17"},"nativeSrc":"7599:18:17","nodeType":"YulFunctionCall","src":"7599:18:17"},"nativeSrc":"7599:18:17","nodeType":"YulExpressionStatement","src":"7599:18:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7488:6:17","nodeType":"YulIdentifier","src":"7488:6:17"},"nativeSrc":"7488:8:17","nodeType":"YulFunctionCall","src":"7488:8:17"},{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"7504:11:17","nodeType":"YulIdentifier","src":"7504:11:17"}],"functionName":{"name":"sload","nativeSrc":"7498:5:17","nodeType":"YulIdentifier","src":"7498:5:17"},"nativeSrc":"7498:18:17","nodeType":"YulFunctionCall","src":"7498:18:17"}],"functionName":{"name":"eq","nativeSrc":"7485:2:17","nodeType":"YulIdentifier","src":"7485:2:17"},"nativeSrc":"7485:32:17","nodeType":"YulFunctionCall","src":"7485:32:17"}],"functionName":{"name":"iszero","nativeSrc":"7478:6:17","nodeType":"YulIdentifier","src":"7478:6:17"},"nativeSrc":"7478:40:17","nodeType":"YulFunctionCall","src":"7478:40:17"},"nativeSrc":"7475:156:17","nodeType":"YulIf","src":"7475:156:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6277,"isOffset":false,"isSlot":false,"src":"7504:11:17","valueSize":1}],"id":6320,"nodeType":"InlineAssembly","src":"7390:251:17"}]},"documentation":{"id":6317,"nodeType":"StructuredDocumentation","src":"7240:47:17","text":"@dev Throws if the sender is not the owner."},"id":6322,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"7301:11:17","nodeType":"FunctionDefinition","parameters":{"id":6318,"nodeType":"ParameterList","parameters":[],"src":"7312:2:17"},"returnParameters":{"id":6319,"nodeType":"ParameterList","parameters":[],"src":"7337:0:17"},"scope":6423,"src":"7292:355:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6332,"nodeType":"Block","src":"7955:33:17","statements":[{"expression":{"commonType":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"},"id":6330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":6328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7972:2:17","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"33363030","id":6329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7977:4:17","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"7972:9:17","typeDescriptions":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"}},"functionReturnParameters":6327,"id":6331,"nodeType":"Return","src":"7965:16:17"}]},"documentation":{"id":6323,"nodeType":"StructuredDocumentation","src":"7653:220:17","text":"@dev Returns how long a two-step ownership handover is valid for in seconds.\n Override to return a different value if needed.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6333,"implemented":true,"kind":"function","modifiers":[],"name":"_ownershipHandoverValidFor","nameLocation":"7887:26:17","nodeType":"FunctionDefinition","parameters":{"id":6324,"nodeType":"ParameterList","parameters":[],"src":"7913:2:17"},"returnParameters":{"id":6327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6333,"src":"7947:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6325,"name":"uint64","nodeType":"ElementaryTypeName","src":"7947:6:17","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7946:8:17"},"scope":6423,"src":"7878:110:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6346,"nodeType":"Block","src":"8426:271:17","statements":[{"AST":{"nativeSrc":"8488:174:17","nodeType":"YulBlock","src":"8488:174:17","statements":[{"body":{"nativeSrc":"8531:121:17","nodeType":"YulBlock","src":"8531:121:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8556:4:17","nodeType":"YulLiteral","src":"8556:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8562:10:17","nodeType":"YulLiteral","src":"8562:10:17","type":"","value":"0x7448fbae"}],"functionName":{"name":"mstore","nativeSrc":"8549:6:17","nodeType":"YulIdentifier","src":"8549:6:17"},"nativeSrc":"8549:24:17","nodeType":"YulFunctionCall","src":"8549:24:17"},"nativeSrc":"8549:24:17","nodeType":"YulExpressionStatement","src":"8549:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8627:4:17","nodeType":"YulLiteral","src":"8627:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8633:4:17","nodeType":"YulLiteral","src":"8633:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8620:6:17","nodeType":"YulIdentifier","src":"8620:6:17"},"nativeSrc":"8620:18:17","nodeType":"YulFunctionCall","src":"8620:18:17"},"nativeSrc":"8620:18:17","nodeType":"YulExpressionStatement","src":"8620:18:17"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8516:2:17","nodeType":"YulLiteral","src":"8516:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"8520:8:17","nodeType":"YulIdentifier","src":"8520:8:17"}],"functionName":{"name":"shl","nativeSrc":"8512:3:17","nodeType":"YulIdentifier","src":"8512:3:17"},"nativeSrc":"8512:17:17","nodeType":"YulFunctionCall","src":"8512:17:17"}],"functionName":{"name":"iszero","nativeSrc":"8505:6:17","nodeType":"YulIdentifier","src":"8505:6:17"},"nativeSrc":"8505:25:17","nodeType":"YulFunctionCall","src":"8505:25:17"},"nativeSrc":"8502:150:17","nodeType":"YulIf","src":"8502:150:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6336,"isOffset":false,"isSlot":false,"src":"8520:8:17","valueSize":1}],"id":6341,"nodeType":"InlineAssembly","src":"8479:183:17"},{"expression":{"arguments":[{"id":6343,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"8681:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6342,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"8671:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6345,"nodeType":"ExpressionStatement","src":"8671:19:17"}]},"documentation":{"id":6334,"nodeType":"StructuredDocumentation","src":"8277:66:17","text":"@dev Allows the owner to transfer the ownership to `newOwner`."},"functionSelector":"f2fde38b","id":6347,"implemented":true,"kind":"function","modifiers":[{"id":6339,"kind":"modifierInvocation","modifierName":{"id":6338,"name":"onlyOwner","nameLocations":["8416:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"8416:9:17"},"nodeType":"ModifierInvocation","src":"8416:9:17"}],"name":"transferOwnership","nameLocation":"8357:17:17","nodeType":"FunctionDefinition","parameters":{"id":6337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6336,"mutability":"mutable","name":"newOwner","nameLocation":"8383:8:17","nodeType":"VariableDeclaration","scope":6347,"src":"8375:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6335,"name":"address","nodeType":"ElementaryTypeName","src":"8375:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8374:18:17"},"returnParameters":{"id":6340,"nodeType":"ParameterList","parameters":[],"src":"8426:0:17"},"scope":6423,"src":"8348:349:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6360,"nodeType":"Block","src":"8824:38:17","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8852:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8844:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6354,"name":"address","nodeType":"ElementaryTypeName","src":"8844:7:17","typeDescriptions":{}}},"id":6357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8844:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6353,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"8834:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8834:21:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6359,"nodeType":"ExpressionStatement","src":"8834:21:17"}]},"documentation":{"id":6348,"nodeType":"StructuredDocumentation","src":"8703:54:17","text":"@dev Allows the owner to renounce their ownership."},"functionSelector":"715018a6","id":6361,"implemented":true,"kind":"function","modifiers":[{"id":6351,"kind":"modifierInvocation","modifierName":{"id":6350,"name":"onlyOwner","nameLocations":["8814:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"8814:9:17"},"nodeType":"ModifierInvocation","src":"8814:9:17"}],"name":"renounceOwnership","nameLocation":"8771:17:17","nodeType":"FunctionDefinition","parameters":{"id":6349,"nodeType":"ParameterList","parameters":[],"src":"8788:2:17"},"returnParameters":{"id":6352,"nodeType":"ParameterList","parameters":[],"src":"8824:0:17"},"scope":6423,"src":"8762:100:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6375,"nodeType":"Block","src":"9080:558:17","statements":[{"id":6374,"nodeType":"UncheckedBlock","src":"9090:542:17","statements":[{"assignments":[6366],"declarations":[{"constant":false,"id":6366,"mutability":"mutable","name":"expires","nameLocation":"9122:7:17","nodeType":"VariableDeclaration","scope":6374,"src":"9114:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6365,"name":"uint256","nodeType":"ElementaryTypeName","src":"9114:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6372,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6367,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9132:5:17","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9138:9:17","memberName":"timestamp","nodeType":"MemberAccess","src":"9132:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6369,"name":"_ownershipHandoverValidFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"9150:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":6370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9132:46:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9114:64:17"},{"AST":{"nativeSrc":"9248:374:17","nodeType":"YulBlock","src":"9248:374:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9340:4:17","nodeType":"YulLiteral","src":"9340:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"9346:19:17","nodeType":"YulIdentifier","src":"9346:19:17"}],"functionName":{"name":"mstore","nativeSrc":"9333:6:17","nodeType":"YulIdentifier","src":"9333:6:17"},"nativeSrc":"9333:33:17","nodeType":"YulFunctionCall","src":"9333:33:17"},"nativeSrc":"9333:33:17","nodeType":"YulExpressionStatement","src":"9333:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9390:4:17","nodeType":"YulLiteral","src":"9390:4:17","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9396:6:17","nodeType":"YulIdentifier","src":"9396:6:17"},"nativeSrc":"9396:8:17","nodeType":"YulFunctionCall","src":"9396:8:17"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:17","nodeType":"YulIdentifier","src":"9383:6:17"},"nativeSrc":"9383:22:17","nodeType":"YulFunctionCall","src":"9383:22:17"},"nativeSrc":"9383:22:17","nodeType":"YulExpressionStatement","src":"9383:22:17"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9439:4:17","nodeType":"YulLiteral","src":"9439:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9445:4:17","nodeType":"YulLiteral","src":"9445:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9429:9:17","nodeType":"YulIdentifier","src":"9429:9:17"},"nativeSrc":"9429:21:17","nodeType":"YulFunctionCall","src":"9429:21:17"},{"name":"expires","nativeSrc":"9452:7:17","nodeType":"YulIdentifier","src":"9452:7:17"}],"functionName":{"name":"sstore","nativeSrc":"9422:6:17","nodeType":"YulIdentifier","src":"9422:6:17"},"nativeSrc":"9422:38:17","nodeType":"YulFunctionCall","src":"9422:38:17"},"nativeSrc":"9422:38:17","nodeType":"YulExpressionStatement","src":"9422:38:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9546:1:17","nodeType":"YulLiteral","src":"9546:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"9549:1:17","nodeType":"YulLiteral","src":"9549:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE","nativeSrc":"9552:45:17","nodeType":"YulIdentifier","src":"9552:45:17"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9599:6:17","nodeType":"YulIdentifier","src":"9599:6:17"},"nativeSrc":"9599:8:17","nodeType":"YulFunctionCall","src":"9599:8:17"}],"functionName":{"name":"log2","nativeSrc":"9541:4:17","nodeType":"YulIdentifier","src":"9541:4:17"},"nativeSrc":"9541:67:17","nodeType":"YulFunctionCall","src":"9541:67:17"},"nativeSrc":"9541:67:17","nodeType":"YulExpressionStatement","src":"9541:67:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"9346:19:17","valueSize":1},{"declaration":6269,"isOffset":false,"isSlot":false,"src":"9552:45:17","valueSize":1},{"declaration":6366,"isOffset":false,"isSlot":false,"src":"9452:7:17","valueSize":1}],"id":6373,"nodeType":"InlineAssembly","src":"9239:383:17"}]}]},"documentation":{"id":6362,"nodeType":"StructuredDocumentation","src":"8868:148:17","text":"@dev Request a two-step ownership handover to the caller.\n The request will automatically expire in 48 hours (172800 seconds) by default."},"functionSelector":"25692962","id":6376,"implemented":true,"kind":"function","modifiers":[],"name":"requestOwnershipHandover","nameLocation":"9030:24:17","nodeType":"FunctionDefinition","parameters":{"id":6363,"nodeType":"ParameterList","parameters":[],"src":"9054:2:17"},"returnParameters":{"id":6364,"nodeType":"ParameterList","parameters":[],"src":"9080:0:17"},"scope":6423,"src":"9021:617:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6381,"nodeType":"Block","src":"9778:398:17","statements":[{"AST":{"nativeSrc":"9840:330:17","nodeType":"YulBlock","src":"9840:330:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9916:4:17","nodeType":"YulLiteral","src":"9916:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"9922:19:17","nodeType":"YulIdentifier","src":"9922:19:17"}],"functionName":{"name":"mstore","nativeSrc":"9909:6:17","nodeType":"YulIdentifier","src":"9909:6:17"},"nativeSrc":"9909:33:17","nodeType":"YulFunctionCall","src":"9909:33:17"},"nativeSrc":"9909:33:17","nodeType":"YulExpressionStatement","src":"9909:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9962:4:17","nodeType":"YulLiteral","src":"9962:4:17","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9968:6:17","nodeType":"YulIdentifier","src":"9968:6:17"},"nativeSrc":"9968:8:17","nodeType":"YulFunctionCall","src":"9968:8:17"}],"functionName":{"name":"mstore","nativeSrc":"9955:6:17","nodeType":"YulIdentifier","src":"9955:6:17"},"nativeSrc":"9955:22:17","nodeType":"YulFunctionCall","src":"9955:22:17"},"nativeSrc":"9955:22:17","nodeType":"YulExpressionStatement","src":"9955:22:17"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10007:4:17","nodeType":"YulLiteral","src":"10007:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10013:4:17","nodeType":"YulLiteral","src":"10013:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9997:9:17","nodeType":"YulIdentifier","src":"9997:9:17"},"nativeSrc":"9997:21:17","nodeType":"YulFunctionCall","src":"9997:21:17"},{"kind":"number","nativeSrc":"10020:1:17","nodeType":"YulLiteral","src":"10020:1:17","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"9990:6:17","nodeType":"YulIdentifier","src":"9990:6:17"},"nativeSrc":"9990:32:17","nodeType":"YulFunctionCall","src":"9990:32:17"},"nativeSrc":"9990:32:17","nodeType":"YulExpressionStatement","src":"9990:32:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10099:1:17","nodeType":"YulLiteral","src":"10099:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"10102:1:17","nodeType":"YulLiteral","src":"10102:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE","nativeSrc":"10105:44:17","nodeType":"YulIdentifier","src":"10105:44:17"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10151:6:17","nodeType":"YulIdentifier","src":"10151:6:17"},"nativeSrc":"10151:8:17","nodeType":"YulFunctionCall","src":"10151:8:17"}],"functionName":{"name":"log2","nativeSrc":"10094:4:17","nodeType":"YulIdentifier","src":"10094:4:17"},"nativeSrc":"10094:66:17","nodeType":"YulFunctionCall","src":"10094:66:17"},"nativeSrc":"10094:66:17","nodeType":"YulExpressionStatement","src":"10094:66:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"9922:19:17","valueSize":1},{"declaration":6273,"isOffset":false,"isSlot":false,"src":"10105:44:17","valueSize":1}],"id":6380,"nodeType":"InlineAssembly","src":"9831:339:17"}]},"documentation":{"id":6377,"nodeType":"StructuredDocumentation","src":"9644:71:17","text":"@dev Cancels the two-step ownership handover to the caller, if any."},"functionSelector":"54d1f13d","id":6382,"implemented":true,"kind":"function","modifiers":[],"name":"cancelOwnershipHandover","nameLocation":"9729:23:17","nodeType":"FunctionDefinition","parameters":{"id":6378,"nodeType":"ParameterList","parameters":[],"src":"9752:2:17"},"returnParameters":{"id":6379,"nodeType":"ParameterList","parameters":[],"src":"9778:0:17"},"scope":6423,"src":"9720:456:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6395,"nodeType":"Block","src":"10453:618:17","statements":[{"AST":{"nativeSrc":"10515:517:17","nodeType":"YulBlock","src":"10515:517:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10591:4:17","nodeType":"YulLiteral","src":"10591:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"10597:19:17","nodeType":"YulIdentifier","src":"10597:19:17"}],"functionName":{"name":"mstore","nativeSrc":"10584:6:17","nodeType":"YulIdentifier","src":"10584:6:17"},"nativeSrc":"10584:33:17","nodeType":"YulFunctionCall","src":"10584:33:17"},"nativeSrc":"10584:33:17","nodeType":"YulExpressionStatement","src":"10584:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10637:4:17","nodeType":"YulLiteral","src":"10637:4:17","type":"","value":"0x00"},{"name":"pendingOwner","nativeSrc":"10643:12:17","nodeType":"YulIdentifier","src":"10643:12:17"}],"functionName":{"name":"mstore","nativeSrc":"10630:6:17","nodeType":"YulIdentifier","src":"10630:6:17"},"nativeSrc":"10630:26:17","nodeType":"YulFunctionCall","src":"10630:26:17"},"nativeSrc":"10630:26:17","nodeType":"YulExpressionStatement","src":"10630:26:17"},{"nativeSrc":"10669:41:17","nodeType":"YulVariableDeclaration","src":"10669:41:17","value":{"arguments":[{"kind":"number","nativeSrc":"10699:4:17","nodeType":"YulLiteral","src":"10699:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10705:4:17","nodeType":"YulLiteral","src":"10705:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10689:9:17","nodeType":"YulIdentifier","src":"10689:9:17"},"nativeSrc":"10689:21:17","nodeType":"YulFunctionCall","src":"10689:21:17"},"variables":[{"name":"handoverSlot","nativeSrc":"10673:12:17","nodeType":"YulTypedName","src":"10673:12:17","type":""}]},{"body":{"nativeSrc":"10826:117:17","nodeType":"YulBlock","src":"10826:117:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10851:4:17","nodeType":"YulLiteral","src":"10851:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10857:10:17","nodeType":"YulLiteral","src":"10857:10:17","type":"","value":"0x6f5e8818"}],"functionName":{"name":"mstore","nativeSrc":"10844:6:17","nodeType":"YulIdentifier","src":"10844:6:17"},"nativeSrc":"10844:24:17","nodeType":"YulFunctionCall","src":"10844:24:17"},"nativeSrc":"10844:24:17","nodeType":"YulExpressionStatement","src":"10844:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10918:4:17","nodeType":"YulLiteral","src":"10918:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10924:4:17","nodeType":"YulLiteral","src":"10924:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10911:6:17","nodeType":"YulIdentifier","src":"10911:6:17"},"nativeSrc":"10911:18:17","nodeType":"YulFunctionCall","src":"10911:18:17"},"nativeSrc":"10911:18:17","nodeType":"YulExpressionStatement","src":"10911:18:17"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"timestamp","nativeSrc":"10792:9:17","nodeType":"YulIdentifier","src":"10792:9:17"},"nativeSrc":"10792:11:17","nodeType":"YulFunctionCall","src":"10792:11:17"},{"arguments":[{"name":"handoverSlot","nativeSrc":"10811:12:17","nodeType":"YulIdentifier","src":"10811:12:17"}],"functionName":{"name":"sload","nativeSrc":"10805:5:17","nodeType":"YulIdentifier","src":"10805:5:17"},"nativeSrc":"10805:19:17","nodeType":"YulFunctionCall","src":"10805:19:17"}],"functionName":{"name":"gt","nativeSrc":"10789:2:17","nodeType":"YulIdentifier","src":"10789:2:17"},"nativeSrc":"10789:36:17","nodeType":"YulFunctionCall","src":"10789:36:17"},"nativeSrc":"10786:157:17","nodeType":"YulIf","src":"10786:157:17"},{"expression":{"arguments":[{"name":"handoverSlot","nativeSrc":"11006:12:17","nodeType":"YulIdentifier","src":"11006:12:17"},{"kind":"number","nativeSrc":"11020:1:17","nodeType":"YulLiteral","src":"11020:1:17","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"10999:6:17","nodeType":"YulIdentifier","src":"10999:6:17"},"nativeSrc":"10999:23:17","nodeType":"YulFunctionCall","src":"10999:23:17"},"nativeSrc":"10999:23:17","nodeType":"YulExpressionStatement","src":"10999:23:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"10597:19:17","valueSize":1},{"declaration":6385,"isOffset":false,"isSlot":false,"src":"10643:12:17","valueSize":1}],"id":6390,"nodeType":"InlineAssembly","src":"10506:526:17"},{"expression":{"arguments":[{"id":6392,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6385,"src":"11051:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6391,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"11041:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11041:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6394,"nodeType":"ExpressionStatement","src":"11041:23:17"}]},"documentation":{"id":6383,"nodeType":"StructuredDocumentation","src":"10182:176:17","text":"@dev Allows the owner to complete the two-step ownership handover to `pendingOwner`.\n Reverts if there is no existing ownership handover requested by `pendingOwner`."},"functionSelector":"f04e283e","id":6396,"implemented":true,"kind":"function","modifiers":[{"id":6388,"kind":"modifierInvocation","modifierName":{"id":6387,"name":"onlyOwner","nameLocations":["10443:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"10443:9:17"},"nodeType":"ModifierInvocation","src":"10443:9:17"}],"name":"completeOwnershipHandover","nameLocation":"10372:25:17","nodeType":"FunctionDefinition","parameters":{"id":6386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6385,"mutability":"mutable","name":"pendingOwner","nameLocation":"10406:12:17","nodeType":"VariableDeclaration","scope":6396,"src":"10398:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6384,"name":"address","nodeType":"ElementaryTypeName","src":"10398:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10397:22:17"},"returnParameters":{"id":6389,"nodeType":"ParameterList","parameters":[],"src":"10453:0:17"},"scope":6423,"src":"10363:708:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6403,"nodeType":"Block","src":"11470:120:17","statements":[{"AST":{"nativeSrc":"11532:52:17","nodeType":"YulBlock","src":"11532:52:17","statements":[{"nativeSrc":"11546:28:17","nodeType":"YulAssignment","src":"11546:28:17","value":{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"11562:11:17","nodeType":"YulIdentifier","src":"11562:11:17"}],"functionName":{"name":"sload","nativeSrc":"11556:5:17","nodeType":"YulIdentifier","src":"11556:5:17"},"nativeSrc":"11556:18:17","nodeType":"YulFunctionCall","src":"11556:18:17"},"variableNames":[{"name":"result","nativeSrc":"11546:6:17","nodeType":"YulIdentifier","src":"11546:6:17"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6277,"isOffset":false,"isSlot":false,"src":"11562:11:17","valueSize":1},{"declaration":6400,"isOffset":false,"isSlot":false,"src":"11546:6:17","valueSize":1}],"id":6402,"nodeType":"InlineAssembly","src":"11523:61:17"}]},"documentation":{"id":6397,"nodeType":"StructuredDocumentation","src":"11360:43:17","text":"@dev Returns the owner of the contract."},"functionSelector":"8da5cb5b","id":6404,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"11417:5:17","nodeType":"FunctionDefinition","parameters":{"id":6398,"nodeType":"ParameterList","parameters":[],"src":"11422:2:17"},"returnParameters":{"id":6401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6400,"mutability":"mutable","name":"result","nameLocation":"11462:6:17","nodeType":"VariableDeclaration","scope":6404,"src":"11454:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6399,"name":"address","nodeType":"ElementaryTypeName","src":"11454:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11453:16:17"},"scope":6423,"src":"11408:182:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6413,"nodeType":"Block","src":"11832:296:17","statements":[{"AST":{"nativeSrc":"11894:228:17","nodeType":"YulBlock","src":"11894:228:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11957:4:17","nodeType":"YulLiteral","src":"11957:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"11963:19:17","nodeType":"YulIdentifier","src":"11963:19:17"}],"functionName":{"name":"mstore","nativeSrc":"11950:6:17","nodeType":"YulIdentifier","src":"11950:6:17"},"nativeSrc":"11950:33:17","nodeType":"YulFunctionCall","src":"11950:33:17"},"nativeSrc":"11950:33:17","nodeType":"YulExpressionStatement","src":"11950:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12003:4:17","nodeType":"YulLiteral","src":"12003:4:17","type":"","value":"0x00"},{"name":"pendingOwner","nativeSrc":"12009:12:17","nodeType":"YulIdentifier","src":"12009:12:17"}],"functionName":{"name":"mstore","nativeSrc":"11996:6:17","nodeType":"YulIdentifier","src":"11996:6:17"},"nativeSrc":"11996:26:17","nodeType":"YulFunctionCall","src":"11996:26:17"},"nativeSrc":"11996:26:17","nodeType":"YulExpressionStatement","src":"11996:26:17"},{"nativeSrc":"12074:38:17","nodeType":"YulAssignment","src":"12074:38:17","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12100:4:17","nodeType":"YulLiteral","src":"12100:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12106:4:17","nodeType":"YulLiteral","src":"12106:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"12090:9:17","nodeType":"YulIdentifier","src":"12090:9:17"},"nativeSrc":"12090:21:17","nodeType":"YulFunctionCall","src":"12090:21:17"}],"functionName":{"name":"sload","nativeSrc":"12084:5:17","nodeType":"YulIdentifier","src":"12084:5:17"},"nativeSrc":"12084:28:17","nodeType":"YulFunctionCall","src":"12084:28:17"},"variableNames":[{"name":"result","nativeSrc":"12074:6:17","nodeType":"YulIdentifier","src":"12074:6:17"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"11963:19:17","valueSize":1},{"declaration":6407,"isOffset":false,"isSlot":false,"src":"12009:12:17","valueSize":1},{"declaration":6410,"isOffset":false,"isSlot":false,"src":"12074:6:17","valueSize":1}],"id":6412,"nodeType":"InlineAssembly","src":"11885:237:17"}]},"documentation":{"id":6405,"nodeType":"StructuredDocumentation","src":"11596:92:17","text":"@dev Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"functionSelector":"fee81cf4","id":6414,"implemented":true,"kind":"function","modifiers":[],"name":"ownershipHandoverExpiresAt","nameLocation":"11702:26:17","nodeType":"FunctionDefinition","parameters":{"id":6408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6407,"mutability":"mutable","name":"pendingOwner","nameLocation":"11737:12:17","nodeType":"VariableDeclaration","scope":6414,"src":"11729:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6406,"name":"address","nodeType":"ElementaryTypeName","src":"11729:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11728:22:17"},"returnParameters":{"id":6411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6410,"mutability":"mutable","name":"result","nameLocation":"11820:6:17","nodeType":"VariableDeclaration","scope":6414,"src":"11812:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6409,"name":"uint256","nodeType":"ElementaryTypeName","src":"11812:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11811:16:17"},"scope":6423,"src":"11693:435:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6421,"nodeType":"Block","src":"12507:41:17","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6417,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6322,"src":"12517:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":6418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6419,"nodeType":"ExpressionStatement","src":"12517:13:17"},{"id":6420,"nodeType":"PlaceholderStatement","src":"12540:1:17"}]},"documentation":{"id":6415,"nodeType":"StructuredDocumentation","src":"12417:56:17","text":"@dev Marks a function as only callable by the owner."},"id":6422,"name":"onlyOwner","nameLocation":"12487:9:17","nodeType":"ModifierDefinition","parameters":{"id":6416,"nodeType":"ParameterList","parameters":[],"src":"12496:2:17"},"src":"12478:70:17","virtual":true,"visibility":"internal"}],"scope":6424,"src":"571:11979:17","usedErrors":[6235,6238,6241,6244],"usedEvents":[6251,6256,6261]}],"src":"32:12519:17"},"id":17},"@solady/auth/OwnableRoles.sol":{"ast":{"absolutePath":"@solady/auth/OwnableRoles.sol","exportedSymbols":{"Ownable":[6423],"OwnableRoles":[7950]},"id":7951,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6425,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:18"},{"absolutePath":"@solady/auth/Ownable.sol","file":"./Ownable.sol","id":6427,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7951,"sourceUnit":6424,"src":"57:38:18","symbolAliases":[{"foreign":{"id":6426,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"65:7:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6429,"name":"Ownable","nameLocations":["501:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"501:7:18"},"id":6430,"nodeType":"InheritanceSpecifier","src":"501:7:18"}],"canonicalName":"OwnableRoles","contractDependencies":[],"contractKind":"contract","documentation":{"id":6428,"nodeType":"StructuredDocumentation","src":"97:370:18","text":"@notice Simple single owner and multiroles authorization mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n @dev While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173)\n for compatibility, the nomenclature for the 2-step ownership handover and roles\n may be unique to this codebase."},"fullyImplemented":true,"id":7950,"linearizedBaseContracts":[7950,6423],"name":"OwnableRoles","nameLocation":"485:12:18","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6431,"nodeType":"StructuredDocumentation","src":"798:114:18","text":"@dev The `user`'s roles is updated to `roles`.\n Each bit of `roles` represents whether the role is set."},"eventSelector":"715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26","id":6437,"name":"RolesUpdated","nameLocation":"923:12:18","nodeType":"EventDefinition","parameters":{"id":6436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6433,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"952:4:18","nodeType":"VariableDeclaration","scope":6437,"src":"936:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6432,"name":"address","nodeType":"ElementaryTypeName","src":"936:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6435,"indexed":true,"mutability":"mutable","name":"roles","nameLocation":"974:5:18","nodeType":"VariableDeclaration","scope":6437,"src":"958:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6434,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"935:45:18"},"src":"917:64:18"},{"constant":true,"documentation":{"id":6438,"nodeType":"StructuredDocumentation","src":"987:61:18","text":"@dev `keccak256(bytes(\"RolesUpdated(address,uint256)\"))`."},"id":6441,"mutability":"constant","name":"_ROLES_UPDATED_EVENT_SIGNATURE","nameLocation":"1078:30:18","nodeType":"VariableDeclaration","scope":7950,"src":"1053:132:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6439,"name":"uint256","nodeType":"ElementaryTypeName","src":"1053:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837313561643563653631666339353935633762343135323839643539636632303366323361393466613036663034616637653438396130613736653166653236","id":6440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:66:18","typeDescriptions":{"typeIdentifier":"t_rational_51271843761779235751881398726824997251846621987341107132597768407806770282022_by_1","typeString":"int_const 5127...(69 digits omitted)...2022"},"value":"0x715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26"},"visibility":"private"},{"constant":true,"documentation":{"id":6442,"nodeType":"StructuredDocumentation","src":"1475:420:18","text":"@dev The role slot of `user` is given by:\n ```\n mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED))\n let roleSlot := keccak256(0x00, 0x20)\n ```\n This automatically ignores the upper bits of the `user` in case\n they are not clean, as well as keep the `keccak256` under 32-bytes.\n Note: This is equivalent to `uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))`."},"id":6445,"mutability":"constant","name":"_ROLE_SLOT_SEED","nameLocation":"1925:15:18","nodeType":"VariableDeclaration","scope":7950,"src":"1900:53:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1900:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783862373863366438","id":6444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1943:10:18","typeDescriptions":{"typeIdentifier":"t_rational_2339948248_by_1","typeString":"int_const 2339948248"},"value":"0x8b78c6d8"},"visibility":"private"},{"body":{"id":6454,"nodeType":"Block","src":"2379:367:18","statements":[{"AST":{"nativeSrc":"2441:299:18","nodeType":"YulBlock","src":"2441:299:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2462:4:18","nodeType":"YulLiteral","src":"2462:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"2468:15:18","nodeType":"YulIdentifier","src":"2468:15:18"}],"functionName":{"name":"mstore","nativeSrc":"2455:6:18","nodeType":"YulIdentifier","src":"2455:6:18"},"nativeSrc":"2455:29:18","nodeType":"YulFunctionCall","src":"2455:29:18"},"nativeSrc":"2455:29:18","nodeType":"YulExpressionStatement","src":"2455:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2504:4:18","nodeType":"YulLiteral","src":"2504:4:18","type":"","value":"0x00"},{"name":"user","nativeSrc":"2510:4:18","nodeType":"YulIdentifier","src":"2510:4:18"}],"functionName":{"name":"mstore","nativeSrc":"2497:6:18","nodeType":"YulIdentifier","src":"2497:6:18"},"nativeSrc":"2497:18:18","nodeType":"YulFunctionCall","src":"2497:18:18"},"nativeSrc":"2497:18:18","nodeType":"YulExpressionStatement","src":"2497:18:18"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2581:4:18","nodeType":"YulLiteral","src":"2581:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"2587:4:18","nodeType":"YulLiteral","src":"2587:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2571:9:18","nodeType":"YulIdentifier","src":"2571:9:18"},"nativeSrc":"2571:21:18","nodeType":"YulFunctionCall","src":"2571:21:18"},{"name":"roles","nativeSrc":"2594:5:18","nodeType":"YulIdentifier","src":"2594:5:18"}],"functionName":{"name":"sstore","nativeSrc":"2564:6:18","nodeType":"YulIdentifier","src":"2564:6:18"},"nativeSrc":"2564:36:18","nodeType":"YulFunctionCall","src":"2564:36:18"},"nativeSrc":"2564:36:18","nodeType":"YulExpressionStatement","src":"2564:36:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2664:1:18","nodeType":"YulLiteral","src":"2664:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"2667:1:18","nodeType":"YulLiteral","src":"2667:1:18","type":"","value":"0"},{"name":"_ROLES_UPDATED_EVENT_SIGNATURE","nativeSrc":"2670:30:18","nodeType":"YulIdentifier","src":"2670:30:18"},{"arguments":[{"kind":"number","nativeSrc":"2706:2:18","nodeType":"YulLiteral","src":"2706:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"2716:4:18","nodeType":"YulLiteral","src":"2716:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"2710:5:18","nodeType":"YulIdentifier","src":"2710:5:18"},"nativeSrc":"2710:11:18","nodeType":"YulFunctionCall","src":"2710:11:18"}],"functionName":{"name":"shr","nativeSrc":"2702:3:18","nodeType":"YulIdentifier","src":"2702:3:18"},"nativeSrc":"2702:20:18","nodeType":"YulFunctionCall","src":"2702:20:18"},{"name":"roles","nativeSrc":"2724:5:18","nodeType":"YulIdentifier","src":"2724:5:18"}],"functionName":{"name":"log3","nativeSrc":"2659:4:18","nodeType":"YulIdentifier","src":"2659:4:18"},"nativeSrc":"2659:71:18","nodeType":"YulFunctionCall","src":"2659:71:18"},"nativeSrc":"2659:71:18","nodeType":"YulExpressionStatement","src":"2659:71:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6441,"isOffset":false,"isSlot":false,"src":"2670:30:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"2468:15:18","valueSize":1},{"declaration":6450,"isOffset":false,"isSlot":false,"src":"2594:5:18","valueSize":1},{"declaration":6450,"isOffset":false,"isSlot":false,"src":"2724:5:18","valueSize":1},{"declaration":6448,"isOffset":false,"isSlot":false,"src":"2510:4:18","valueSize":1}],"id":6453,"nodeType":"InlineAssembly","src":"2432:308:18"}]},"documentation":{"id":6446,"nodeType":"StructuredDocumentation","src":"2243:66:18","text":"@dev Overwrite the roles directly without authorization guard."},"id":6455,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoles","nameLocation":"2323:9:18","nodeType":"FunctionDefinition","parameters":{"id":6451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6448,"mutability":"mutable","name":"user","nameLocation":"2341:4:18","nodeType":"VariableDeclaration","scope":6455,"src":"2333:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6447,"name":"address","nodeType":"ElementaryTypeName","src":"2333:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6450,"mutability":"mutable","name":"roles","nameLocation":"2355:5:18","nodeType":"VariableDeclaration","scope":6455,"src":"2347:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6449,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2332:29:18"},"returnParameters":{"id":6452,"nodeType":"ParameterList","parameters":[],"src":"2379:0:18"},"scope":7950,"src":"2314:432:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6466,"nodeType":"Block","src":"3029:890:18","statements":[{"AST":{"nativeSrc":"3091:822:18","nodeType":"YulBlock","src":"3091:822:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3112:4:18","nodeType":"YulLiteral","src":"3112:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"3118:15:18","nodeType":"YulIdentifier","src":"3118:15:18"}],"functionName":{"name":"mstore","nativeSrc":"3105:6:18","nodeType":"YulIdentifier","src":"3105:6:18"},"nativeSrc":"3105:29:18","nodeType":"YulFunctionCall","src":"3105:29:18"},"nativeSrc":"3105:29:18","nodeType":"YulExpressionStatement","src":"3105:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3154:4:18","nodeType":"YulLiteral","src":"3154:4:18","type":"","value":"0x00"},{"name":"user","nativeSrc":"3160:4:18","nodeType":"YulIdentifier","src":"3160:4:18"}],"functionName":{"name":"mstore","nativeSrc":"3147:6:18","nodeType":"YulIdentifier","src":"3147:6:18"},"nativeSrc":"3147:18:18","nodeType":"YulFunctionCall","src":"3147:18:18"},"nativeSrc":"3147:18:18","nodeType":"YulExpressionStatement","src":"3147:18:18"},{"nativeSrc":"3178:37:18","nodeType":"YulVariableDeclaration","src":"3178:37:18","value":{"arguments":[{"kind":"number","nativeSrc":"3204:4:18","nodeType":"YulLiteral","src":"3204:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"3210:4:18","nodeType":"YulLiteral","src":"3210:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"3194:9:18","nodeType":"YulIdentifier","src":"3194:9:18"},"nativeSrc":"3194:21:18","nodeType":"YulFunctionCall","src":"3194:21:18"},"variables":[{"name":"roleSlot","nativeSrc":"3182:8:18","nodeType":"YulTypedName","src":"3182:8:18","type":""}]},{"nativeSrc":"3267:30:18","nodeType":"YulVariableDeclaration","src":"3267:30:18","value":{"arguments":[{"name":"roleSlot","nativeSrc":"3288:8:18","nodeType":"YulIdentifier","src":"3288:8:18"}],"functionName":{"name":"sload","nativeSrc":"3282:5:18","nodeType":"YulIdentifier","src":"3282:5:18"},"nativeSrc":"3282:15:18","nodeType":"YulFunctionCall","src":"3282:15:18"},"variables":[{"name":"current","nativeSrc":"3271:7:18","nodeType":"YulTypedName","src":"3271:7:18","type":""}]},{"nativeSrc":"3368:33:18","nodeType":"YulVariableDeclaration","src":"3368:33:18","value":{"arguments":[{"name":"current","nativeSrc":"3386:7:18","nodeType":"YulIdentifier","src":"3386:7:18"},{"name":"roles","nativeSrc":"3395:5:18","nodeType":"YulIdentifier","src":"3395:5:18"}],"functionName":{"name":"or","nativeSrc":"3383:2:18","nodeType":"YulIdentifier","src":"3383:2:18"},"nativeSrc":"3383:18:18","nodeType":"YulFunctionCall","src":"3383:18:18"},"variables":[{"name":"updated","nativeSrc":"3372:7:18","nodeType":"YulTypedName","src":"3372:7:18","type":""}]},{"body":{"nativeSrc":"3643:48:18","nodeType":"YulBlock","src":"3643:48:18","statements":[{"nativeSrc":"3645:44:18","nodeType":"YulAssignment","src":"3645:44:18","value":{"arguments":[{"name":"current","nativeSrc":"3660:7:18","nodeType":"YulIdentifier","src":"3660:7:18"},{"arguments":[{"name":"current","nativeSrc":"3673:7:18","nodeType":"YulIdentifier","src":"3673:7:18"},{"name":"roles","nativeSrc":"3682:5:18","nodeType":"YulIdentifier","src":"3682:5:18"}],"functionName":{"name":"and","nativeSrc":"3669:3:18","nodeType":"YulIdentifier","src":"3669:3:18"},"nativeSrc":"3669:19:18","nodeType":"YulFunctionCall","src":"3669:19:18"}],"functionName":{"name":"xor","nativeSrc":"3656:3:18","nodeType":"YulIdentifier","src":"3656:3:18"},"nativeSrc":"3656:33:18","nodeType":"YulFunctionCall","src":"3656:33:18"},"variableNames":[{"name":"updated","nativeSrc":"3645:7:18","nodeType":"YulIdentifier","src":"3645:7:18"}]}]},"condition":{"arguments":[{"name":"on","nativeSrc":"3639:2:18","nodeType":"YulIdentifier","src":"3639:2:18"}],"functionName":{"name":"iszero","nativeSrc":"3632:6:18","nodeType":"YulIdentifier","src":"3632:6:18"},"nativeSrc":"3632:10:18","nodeType":"YulFunctionCall","src":"3632:10:18"},"nativeSrc":"3629:62:18","nodeType":"YulIf","src":"3629:62:18"},{"expression":{"arguments":[{"name":"roleSlot","nativeSrc":"3753:8:18","nodeType":"YulIdentifier","src":"3753:8:18"},{"name":"updated","nativeSrc":"3763:7:18","nodeType":"YulIdentifier","src":"3763:7:18"}],"functionName":{"name":"sstore","nativeSrc":"3746:6:18","nodeType":"YulIdentifier","src":"3746:6:18"},"nativeSrc":"3746:25:18","nodeType":"YulFunctionCall","src":"3746:25:18"},"nativeSrc":"3746:25:18","nodeType":"YulExpressionStatement","src":"3746:25:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3835:1:18","nodeType":"YulLiteral","src":"3835:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"3838:1:18","nodeType":"YulLiteral","src":"3838:1:18","type":"","value":"0"},{"name":"_ROLES_UPDATED_EVENT_SIGNATURE","nativeSrc":"3841:30:18","nodeType":"YulIdentifier","src":"3841:30:18"},{"arguments":[{"kind":"number","nativeSrc":"3877:2:18","nodeType":"YulLiteral","src":"3877:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"3887:4:18","nodeType":"YulLiteral","src":"3887:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"3881:5:18","nodeType":"YulIdentifier","src":"3881:5:18"},"nativeSrc":"3881:11:18","nodeType":"YulFunctionCall","src":"3881:11:18"}],"functionName":{"name":"shr","nativeSrc":"3873:3:18","nodeType":"YulIdentifier","src":"3873:3:18"},"nativeSrc":"3873:20:18","nodeType":"YulFunctionCall","src":"3873:20:18"},{"name":"updated","nativeSrc":"3895:7:18","nodeType":"YulIdentifier","src":"3895:7:18"}],"functionName":{"name":"log3","nativeSrc":"3830:4:18","nodeType":"YulIdentifier","src":"3830:4:18"},"nativeSrc":"3830:73:18","nodeType":"YulFunctionCall","src":"3830:73:18"},"nativeSrc":"3830:73:18","nodeType":"YulExpressionStatement","src":"3830:73:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6441,"isOffset":false,"isSlot":false,"src":"3841:30:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"3118:15:18","valueSize":1},{"declaration":6462,"isOffset":false,"isSlot":false,"src":"3639:2:18","valueSize":1},{"declaration":6460,"isOffset":false,"isSlot":false,"src":"3395:5:18","valueSize":1},{"declaration":6460,"isOffset":false,"isSlot":false,"src":"3682:5:18","valueSize":1},{"declaration":6458,"isOffset":false,"isSlot":false,"src":"3160:4:18","valueSize":1}],"id":6465,"nodeType":"InlineAssembly","src":"3082:831:18"}]},"documentation":{"id":6456,"nodeType":"StructuredDocumentation","src":"2752:195:18","text":"@dev Updates the roles directly without authorization guard.\n If `on` is true, each set bit of `roles` will be turned on,\n otherwise, each set bit of `roles` will be turned off."},"id":6467,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRoles","nameLocation":"2961:12:18","nodeType":"FunctionDefinition","parameters":{"id":6463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6458,"mutability":"mutable","name":"user","nameLocation":"2982:4:18","nodeType":"VariableDeclaration","scope":6467,"src":"2974:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6457,"name":"address","nodeType":"ElementaryTypeName","src":"2974:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6460,"mutability":"mutable","name":"roles","nameLocation":"2996:5:18","nodeType":"VariableDeclaration","scope":6467,"src":"2988:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6459,"name":"uint256","nodeType":"ElementaryTypeName","src":"2988:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6462,"mutability":"mutable","name":"on","nameLocation":"3008:2:18","nodeType":"VariableDeclaration","scope":6467,"src":"3003:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6461,"name":"bool","nodeType":"ElementaryTypeName","src":"3003:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2973:38:18"},"returnParameters":{"id":6464,"nodeType":"ParameterList","parameters":[],"src":"3029:0:18"},"scope":7950,"src":"2952:967:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6481,"nodeType":"Block","src":"4120:48:18","statements":[{"expression":{"arguments":[{"id":6476,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6470,"src":"4143:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6477,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6472,"src":"4149:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":6478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4156:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6475,"name":"_updateRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"4130:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":6479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4130:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6480,"nodeType":"ExpressionStatement","src":"4130:31:18"}]},"documentation":{"id":6468,"nodeType":"StructuredDocumentation","src":"3925:123:18","text":"@dev Grants the roles directly without authorization guard.\n Each bit of `roles` represents the role to turn on."},"id":6482,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRoles","nameLocation":"4062:11:18","nodeType":"FunctionDefinition","parameters":{"id":6473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6470,"mutability":"mutable","name":"user","nameLocation":"4082:4:18","nodeType":"VariableDeclaration","scope":6482,"src":"4074:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6469,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6472,"mutability":"mutable","name":"roles","nameLocation":"4096:5:18","nodeType":"VariableDeclaration","scope":6482,"src":"4088:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6471,"name":"uint256","nodeType":"ElementaryTypeName","src":"4088:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4073:29:18"},"returnParameters":{"id":6474,"nodeType":"ParameterList","parameters":[],"src":"4120:0:18"},"scope":7950,"src":"4053:115:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6496,"nodeType":"Block","src":"4372:49:18","statements":[{"expression":{"arguments":[{"id":6491,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6485,"src":"4395:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6492,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6487,"src":"4401:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":6493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4408:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6490,"name":"_updateRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"4382:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":6494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6495,"nodeType":"ExpressionStatement","src":"4382:32:18"}]},"documentation":{"id":6483,"nodeType":"StructuredDocumentation","src":"4174:125:18","text":"@dev Removes the roles directly without authorization guard.\n Each bit of `roles` represents the role to turn off."},"id":6497,"implemented":true,"kind":"function","modifiers":[],"name":"_removeRoles","nameLocation":"4313:12:18","nodeType":"FunctionDefinition","parameters":{"id":6488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6485,"mutability":"mutable","name":"user","nameLocation":"4334:4:18","nodeType":"VariableDeclaration","scope":6497,"src":"4326:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6484,"name":"address","nodeType":"ElementaryTypeName","src":"4326:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6487,"mutability":"mutable","name":"roles","nameLocation":"4348:5:18","nodeType":"VariableDeclaration","scope":6497,"src":"4340:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6486,"name":"uint256","nodeType":"ElementaryTypeName","src":"4340:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4325:29:18"},"returnParameters":{"id":6489,"nodeType":"ParameterList","parameters":[],"src":"4372:0:18"},"scope":7950,"src":"4304:117:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6504,"nodeType":"Block","src":"4553:496:18","statements":[{"AST":{"nativeSrc":"4615:428:18","nodeType":"YulBlock","src":"4615:428:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4674:4:18","nodeType":"YulLiteral","src":"4674:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"4680:15:18","nodeType":"YulIdentifier","src":"4680:15:18"}],"functionName":{"name":"mstore","nativeSrc":"4667:6:18","nodeType":"YulIdentifier","src":"4667:6:18"},"nativeSrc":"4667:29:18","nodeType":"YulFunctionCall","src":"4667:29:18"},"nativeSrc":"4667:29:18","nodeType":"YulExpressionStatement","src":"4667:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4716:4:18","nodeType":"YulLiteral","src":"4716:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"4722:6:18","nodeType":"YulIdentifier","src":"4722:6:18"},"nativeSrc":"4722:8:18","nodeType":"YulFunctionCall","src":"4722:8:18"}],"functionName":{"name":"mstore","nativeSrc":"4709:6:18","nodeType":"YulIdentifier","src":"4709:6:18"},"nativeSrc":"4709:22:18","nodeType":"YulFunctionCall","src":"4709:22:18"},"nativeSrc":"4709:22:18","nodeType":"YulExpressionStatement","src":"4709:22:18"},{"body":{"nativeSrc":"4921:112:18","nodeType":"YulBlock","src":"4921:112:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4946:4:18","nodeType":"YulLiteral","src":"4946:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4952:10:18","nodeType":"YulLiteral","src":"4952:10:18","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"4939:6:18","nodeType":"YulIdentifier","src":"4939:6:18"},"nativeSrc":"4939:24:18","nodeType":"YulFunctionCall","src":"4939:24:18"},"nativeSrc":"4939:24:18","nodeType":"YulExpressionStatement","src":"4939:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5008:4:18","nodeType":"YulLiteral","src":"5008:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5014:4:18","nodeType":"YulLiteral","src":"5014:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5001:6:18","nodeType":"YulIdentifier","src":"5001:6:18"},"nativeSrc":"5001:18:18","nodeType":"YulFunctionCall","src":"5001:18:18"},"nativeSrc":"5001:18:18","nodeType":"YulExpressionStatement","src":"5001:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4899:4:18","nodeType":"YulLiteral","src":"4899:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"4905:4:18","nodeType":"YulLiteral","src":"4905:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4889:9:18","nodeType":"YulIdentifier","src":"4889:9:18"},"nativeSrc":"4889:21:18","nodeType":"YulFunctionCall","src":"4889:21:18"}],"functionName":{"name":"sload","nativeSrc":"4883:5:18","nodeType":"YulIdentifier","src":"4883:5:18"},"nativeSrc":"4883:28:18","nodeType":"YulFunctionCall","src":"4883:28:18"},{"name":"roles","nativeSrc":"4913:5:18","nodeType":"YulIdentifier","src":"4913:5:18"}],"functionName":{"name":"and","nativeSrc":"4879:3:18","nodeType":"YulIdentifier","src":"4879:3:18"},"nativeSrc":"4879:40:18","nodeType":"YulFunctionCall","src":"4879:40:18"}],"functionName":{"name":"iszero","nativeSrc":"4872:6:18","nodeType":"YulIdentifier","src":"4872:6:18"},"nativeSrc":"4872:48:18","nodeType":"YulFunctionCall","src":"4872:48:18"},"nativeSrc":"4869:164:18","nodeType":"YulIf","src":"4869:164:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"4680:15:18","valueSize":1},{"declaration":6500,"isOffset":false,"isSlot":false,"src":"4913:5:18","valueSize":1}],"id":6503,"nodeType":"InlineAssembly","src":"4606:437:18"}]},"documentation":{"id":6498,"nodeType":"StructuredDocumentation","src":"4427:63:18","text":"@dev Throws if the sender does not have any of the `roles`."},"id":6505,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRoles","nameLocation":"4504:11:18","nodeType":"FunctionDefinition","parameters":{"id":6501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6500,"mutability":"mutable","name":"roles","nameLocation":"4524:5:18","nodeType":"VariableDeclaration","scope":6505,"src":"4516:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6499,"name":"uint256","nodeType":"ElementaryTypeName","src":"4516:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4515:15:18"},"returnParameters":{"id":6502,"nodeType":"ParameterList","parameters":[],"src":"4553:0:18"},"scope":7950,"src":"4495:554:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6512,"nodeType":"Block","src":"5284:737:18","statements":[{"AST":{"nativeSrc":"5346:669:18","nodeType":"YulBlock","src":"5346:669:18","statements":[{"body":{"nativeSrc":"5537:468:18","nodeType":"YulBlock","src":"5537:468:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5604:4:18","nodeType":"YulLiteral","src":"5604:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"5610:15:18","nodeType":"YulIdentifier","src":"5610:15:18"}],"functionName":{"name":"mstore","nativeSrc":"5597:6:18","nodeType":"YulIdentifier","src":"5597:6:18"},"nativeSrc":"5597:29:18","nodeType":"YulFunctionCall","src":"5597:29:18"},"nativeSrc":"5597:29:18","nodeType":"YulExpressionStatement","src":"5597:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5650:4:18","nodeType":"YulLiteral","src":"5650:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"5656:6:18","nodeType":"YulIdentifier","src":"5656:6:18"},"nativeSrc":"5656:8:18","nodeType":"YulFunctionCall","src":"5656:8:18"}],"functionName":{"name":"mstore","nativeSrc":"5643:6:18","nodeType":"YulIdentifier","src":"5643:6:18"},"nativeSrc":"5643:22:18","nodeType":"YulFunctionCall","src":"5643:22:18"},"nativeSrc":"5643:22:18","nodeType":"YulExpressionStatement","src":"5643:22:18"},{"body":{"nativeSrc":"5867:124:18","nodeType":"YulBlock","src":"5867:124:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5896:4:18","nodeType":"YulLiteral","src":"5896:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5902:10:18","nodeType":"YulLiteral","src":"5902:10:18","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"5889:6:18","nodeType":"YulIdentifier","src":"5889:6:18"},"nativeSrc":"5889:24:18","nodeType":"YulFunctionCall","src":"5889:24:18"},"nativeSrc":"5889:24:18","nodeType":"YulExpressionStatement","src":"5889:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5962:4:18","nodeType":"YulLiteral","src":"5962:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5968:4:18","nodeType":"YulLiteral","src":"5968:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5955:6:18","nodeType":"YulIdentifier","src":"5955:6:18"},"nativeSrc":"5955:18:18","nodeType":"YulFunctionCall","src":"5955:18:18"},"nativeSrc":"5955:18:18","nodeType":"YulExpressionStatement","src":"5955:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5845:4:18","nodeType":"YulLiteral","src":"5845:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"5851:4:18","nodeType":"YulLiteral","src":"5851:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5835:9:18","nodeType":"YulIdentifier","src":"5835:9:18"},"nativeSrc":"5835:21:18","nodeType":"YulFunctionCall","src":"5835:21:18"}],"functionName":{"name":"sload","nativeSrc":"5829:5:18","nodeType":"YulIdentifier","src":"5829:5:18"},"nativeSrc":"5829:28:18","nodeType":"YulFunctionCall","src":"5829:28:18"},{"name":"roles","nativeSrc":"5859:5:18","nodeType":"YulIdentifier","src":"5859:5:18"}],"functionName":{"name":"and","nativeSrc":"5825:3:18","nodeType":"YulIdentifier","src":"5825:3:18"},"nativeSrc":"5825:40:18","nodeType":"YulFunctionCall","src":"5825:40:18"}],"functionName":{"name":"iszero","nativeSrc":"5818:6:18","nodeType":"YulIdentifier","src":"5818:6:18"},"nativeSrc":"5818:48:18","nodeType":"YulFunctionCall","src":"5818:48:18"},"nativeSrc":"5815:176:18","nodeType":"YulIf","src":"5815:176:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"5497:6:18","nodeType":"YulIdentifier","src":"5497:6:18"},"nativeSrc":"5497:8:18","nodeType":"YulFunctionCall","src":"5497:8:18"},{"arguments":[{"arguments":[{"name":"_ROLE_SLOT_SEED","nativeSrc":"5517:15:18","nodeType":"YulIdentifier","src":"5517:15:18"}],"functionName":{"name":"not","nativeSrc":"5513:3:18","nodeType":"YulIdentifier","src":"5513:3:18"},"nativeSrc":"5513:20:18","nodeType":"YulFunctionCall","src":"5513:20:18"}],"functionName":{"name":"sload","nativeSrc":"5507:5:18","nodeType":"YulIdentifier","src":"5507:5:18"},"nativeSrc":"5507:27:18","nodeType":"YulFunctionCall","src":"5507:27:18"}],"functionName":{"name":"eq","nativeSrc":"5494:2:18","nodeType":"YulIdentifier","src":"5494:2:18"},"nativeSrc":"5494:41:18","nodeType":"YulFunctionCall","src":"5494:41:18"}],"functionName":{"name":"iszero","nativeSrc":"5487:6:18","nodeType":"YulIdentifier","src":"5487:6:18"},"nativeSrc":"5487:49:18","nodeType":"YulFunctionCall","src":"5487:49:18"},"nativeSrc":"5484:521:18","nodeType":"YulIf","src":"5484:521:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"5517:15:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"5610:15:18","valueSize":1},{"declaration":6508,"isOffset":false,"isSlot":false,"src":"5859:5:18","valueSize":1}],"id":6511,"nodeType":"InlineAssembly","src":"5337:678:18"}]},"documentation":{"id":6506,"nodeType":"StructuredDocumentation","src":"5055:159:18","text":"@dev Throws if the sender is not the owner,\n and does not have any of the `roles`.\n Checks for ownership first, then lazily checks for roles."},"id":6513,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwnerOrRoles","nameLocation":"5228:18:18","nodeType":"FunctionDefinition","parameters":{"id":6509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6508,"mutability":"mutable","name":"roles","nameLocation":"5255:5:18","nodeType":"VariableDeclaration","scope":6513,"src":"5247:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6507,"name":"uint256","nodeType":"ElementaryTypeName","src":"5247:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5246:15:18"},"returnParameters":{"id":6510,"nodeType":"ParameterList","parameters":[],"src":"5284:0:18"},"scope":7950,"src":"5219:802:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6520,"nodeType":"Block","src":"6256:725:18","statements":[{"AST":{"nativeSrc":"6318:657:18","nodeType":"YulBlock","src":"6318:657:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6377:4:18","nodeType":"YulLiteral","src":"6377:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"6383:15:18","nodeType":"YulIdentifier","src":"6383:15:18"}],"functionName":{"name":"mstore","nativeSrc":"6370:6:18","nodeType":"YulIdentifier","src":"6370:6:18"},"nativeSrc":"6370:29:18","nodeType":"YulFunctionCall","src":"6370:29:18"},"nativeSrc":"6370:29:18","nodeType":"YulExpressionStatement","src":"6370:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6419:4:18","nodeType":"YulLiteral","src":"6419:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"6425:6:18","nodeType":"YulIdentifier","src":"6425:6:18"},"nativeSrc":"6425:8:18","nodeType":"YulFunctionCall","src":"6425:8:18"}],"functionName":{"name":"mstore","nativeSrc":"6412:6:18","nodeType":"YulIdentifier","src":"6412:6:18"},"nativeSrc":"6412:22:18","nodeType":"YulFunctionCall","src":"6412:22:18"},"nativeSrc":"6412:22:18","nodeType":"YulExpressionStatement","src":"6412:22:18"},{"body":{"nativeSrc":"6624:341:18","nodeType":"YulBlock","src":"6624:341:18","statements":[{"body":{"nativeSrc":"6827:124:18","nodeType":"YulBlock","src":"6827:124:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6856:4:18","nodeType":"YulLiteral","src":"6856:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6862:10:18","nodeType":"YulLiteral","src":"6862:10:18","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"6849:6:18","nodeType":"YulIdentifier","src":"6849:6:18"},"nativeSrc":"6849:24:18","nodeType":"YulFunctionCall","src":"6849:24:18"},"nativeSrc":"6849:24:18","nodeType":"YulExpressionStatement","src":"6849:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6922:4:18","nodeType":"YulLiteral","src":"6922:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6928:4:18","nodeType":"YulLiteral","src":"6928:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6915:6:18","nodeType":"YulIdentifier","src":"6915:6:18"},"nativeSrc":"6915:18:18","nodeType":"YulFunctionCall","src":"6915:18:18"},"nativeSrc":"6915:18:18","nodeType":"YulExpressionStatement","src":"6915:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"6787:6:18","nodeType":"YulIdentifier","src":"6787:6:18"},"nativeSrc":"6787:8:18","nodeType":"YulFunctionCall","src":"6787:8:18"},{"arguments":[{"arguments":[{"name":"_ROLE_SLOT_SEED","nativeSrc":"6807:15:18","nodeType":"YulIdentifier","src":"6807:15:18"}],"functionName":{"name":"not","nativeSrc":"6803:3:18","nodeType":"YulIdentifier","src":"6803:3:18"},"nativeSrc":"6803:20:18","nodeType":"YulFunctionCall","src":"6803:20:18"}],"functionName":{"name":"sload","nativeSrc":"6797:5:18","nodeType":"YulIdentifier","src":"6797:5:18"},"nativeSrc":"6797:27:18","nodeType":"YulFunctionCall","src":"6797:27:18"}],"functionName":{"name":"eq","nativeSrc":"6784:2:18","nodeType":"YulIdentifier","src":"6784:2:18"},"nativeSrc":"6784:41:18","nodeType":"YulFunctionCall","src":"6784:41:18"}],"functionName":{"name":"iszero","nativeSrc":"6777:6:18","nodeType":"YulIdentifier","src":"6777:6:18"},"nativeSrc":"6777:49:18","nodeType":"YulFunctionCall","src":"6777:49:18"},"nativeSrc":"6774:177:18","nodeType":"YulIf","src":"6774:177:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6602:4:18","nodeType":"YulLiteral","src":"6602:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"6608:4:18","nodeType":"YulLiteral","src":"6608:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6592:9:18","nodeType":"YulIdentifier","src":"6592:9:18"},"nativeSrc":"6592:21:18","nodeType":"YulFunctionCall","src":"6592:21:18"}],"functionName":{"name":"sload","nativeSrc":"6586:5:18","nodeType":"YulIdentifier","src":"6586:5:18"},"nativeSrc":"6586:28:18","nodeType":"YulFunctionCall","src":"6586:28:18"},{"name":"roles","nativeSrc":"6616:5:18","nodeType":"YulIdentifier","src":"6616:5:18"}],"functionName":{"name":"and","nativeSrc":"6582:3:18","nodeType":"YulIdentifier","src":"6582:3:18"},"nativeSrc":"6582:40:18","nodeType":"YulFunctionCall","src":"6582:40:18"}],"functionName":{"name":"iszero","nativeSrc":"6575:6:18","nodeType":"YulIdentifier","src":"6575:6:18"},"nativeSrc":"6575:48:18","nodeType":"YulFunctionCall","src":"6575:48:18"},"nativeSrc":"6572:393:18","nodeType":"YulIf","src":"6572:393:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"6383:15:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"6807:15:18","valueSize":1},{"declaration":6516,"isOffset":false,"isSlot":false,"src":"6616:5:18","valueSize":1}],"id":6519,"nodeType":"InlineAssembly","src":"6309:666:18"}]},"documentation":{"id":6514,"nodeType":"StructuredDocumentation","src":"6027:159:18","text":"@dev Throws if the sender does not have any of the `roles`,\n and is not the owner.\n Checks for roles first, then lazily checks for ownership."},"id":6521,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRolesOrOwner","nameLocation":"6200:18:18","nodeType":"FunctionDefinition","parameters":{"id":6517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6516,"mutability":"mutable","name":"roles","nameLocation":"6227:5:18","nodeType":"VariableDeclaration","scope":6521,"src":"6219:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6515,"name":"uint256","nodeType":"ElementaryTypeName","src":"6219:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6218:15:18"},"returnParameters":{"id":6518,"nodeType":"ParameterList","parameters":[],"src":"6256:0:18"},"scope":7950,"src":"6191:790:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6531,"nodeType":"Block","src":"7389:398:18","statements":[{"AST":{"nativeSrc":"7451:330:18","nodeType":"YulBlock","src":"7451:330:18","statements":[{"body":{"nativeSrc":"7530:241:18","nodeType":"YulBlock","src":"7530:241:18","statements":[{"nativeSrc":"7706:51:18","nodeType":"YulAssignment","src":"7706:51:18","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"ordinals","nativeSrc":"7732:8:18","nodeType":"YulIdentifier","src":"7732:8:18"},{"name":"i","nativeSrc":"7742:1:18","nodeType":"YulIdentifier","src":"7742:1:18"}],"functionName":{"name":"add","nativeSrc":"7728:3:18","nodeType":"YulIdentifier","src":"7728:3:18"},"nativeSrc":"7728:16:18","nodeType":"YulFunctionCall","src":"7728:16:18"}],"functionName":{"name":"mload","nativeSrc":"7722:5:18","nodeType":"YulIdentifier","src":"7722:5:18"},"nativeSrc":"7722:23:18","nodeType":"YulFunctionCall","src":"7722:23:18"},{"kind":"number","nativeSrc":"7747:1:18","nodeType":"YulLiteral","src":"7747:1:18","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7718:3:18","nodeType":"YulIdentifier","src":"7718:3:18"},"nativeSrc":"7718:31:18","nodeType":"YulFunctionCall","src":"7718:31:18"},{"name":"roles","nativeSrc":"7751:5:18","nodeType":"YulIdentifier","src":"7751:5:18"}],"functionName":{"name":"or","nativeSrc":"7715:2:18","nodeType":"YulIdentifier","src":"7715:2:18"},"nativeSrc":"7715:42:18","nodeType":"YulFunctionCall","src":"7715:42:18"},"variableNames":[{"name":"roles","nativeSrc":"7706:5:18","nodeType":"YulIdentifier","src":"7706:5:18"}]}]},"condition":{"name":"i","nativeSrc":"7506:1:18","nodeType":"YulIdentifier","src":"7506:1:18"},"nativeSrc":"7465:306:18","nodeType":"YulForLoop","post":{"nativeSrc":"7508:21:18","nodeType":"YulBlock","src":"7508:21:18","statements":[{"nativeSrc":"7510:17:18","nodeType":"YulAssignment","src":"7510:17:18","value":{"arguments":[{"name":"i","nativeSrc":"7519:1:18","nodeType":"YulIdentifier","src":"7519:1:18"},{"kind":"number","nativeSrc":"7522:4:18","nodeType":"YulLiteral","src":"7522:4:18","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"7515:3:18","nodeType":"YulIdentifier","src":"7515:3:18"},"nativeSrc":"7515:12:18","nodeType":"YulFunctionCall","src":"7515:12:18"},"variableNames":[{"name":"i","nativeSrc":"7510:1:18","nodeType":"YulIdentifier","src":"7510:1:18"}]}]},"pre":{"nativeSrc":"7469:36:18","nodeType":"YulBlock","src":"7469:36:18","statements":[{"nativeSrc":"7471:32:18","nodeType":"YulVariableDeclaration","src":"7471:32:18","value":{"arguments":[{"kind":"number","nativeSrc":"7484:1:18","nodeType":"YulLiteral","src":"7484:1:18","type":"","value":"5"},{"arguments":[{"name":"ordinals","nativeSrc":"7493:8:18","nodeType":"YulIdentifier","src":"7493:8:18"}],"functionName":{"name":"mload","nativeSrc":"7487:5:18","nodeType":"YulIdentifier","src":"7487:5:18"},"nativeSrc":"7487:15:18","nodeType":"YulFunctionCall","src":"7487:15:18"}],"functionName":{"name":"shl","nativeSrc":"7480:3:18","nodeType":"YulIdentifier","src":"7480:3:18"},"nativeSrc":"7480:23:18","nodeType":"YulFunctionCall","src":"7480:23:18"},"variables":[{"name":"i","nativeSrc":"7475:1:18","nodeType":"YulTypedName","src":"7475:1:18","type":""}]}]},"src":"7465:306:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6525,"isOffset":false,"isSlot":false,"src":"7493:8:18","valueSize":1},{"declaration":6525,"isOffset":false,"isSlot":false,"src":"7732:8:18","valueSize":1},{"declaration":6528,"isOffset":false,"isSlot":false,"src":"7706:5:18","valueSize":1},{"declaration":6528,"isOffset":false,"isSlot":false,"src":"7751:5:18","valueSize":1}],"id":6530,"nodeType":"InlineAssembly","src":"7442:339:18"}]},"documentation":{"id":6522,"nodeType":"StructuredDocumentation","src":"6987:306:18","text":"@dev Convenience function to return a `roles` bitmap from an array of `ordinals`.\n This is meant for frontends like Etherscan, and is therefore not fully optimized.\n Not recommended to be called on-chain.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6532,"implemented":true,"kind":"function","modifiers":[],"name":"_rolesFromOrdinals","nameLocation":"7307:18:18","nodeType":"FunctionDefinition","parameters":{"id":6526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6525,"mutability":"mutable","name":"ordinals","nameLocation":"7341:8:18","nodeType":"VariableDeclaration","scope":6532,"src":"7326:23:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6523,"name":"uint8","nodeType":"ElementaryTypeName","src":"7326:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6524,"nodeType":"ArrayTypeName","src":"7326:7:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"7325:25:18"},"returnParameters":{"id":6529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6528,"mutability":"mutable","name":"roles","nameLocation":"7382:5:18","nodeType":"VariableDeclaration","scope":6532,"src":"7374:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6527,"name":"uint256","nodeType":"ElementaryTypeName","src":"7374:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7373:15:18"},"scope":7950,"src":"7298:489:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6542,"nodeType":"Block","src":"8197:966:18","statements":[{"AST":{"nativeSrc":"8259:898:18","nodeType":"YulBlock","src":"8259:898:18","statements":[{"nativeSrc":"8325:23:18","nodeType":"YulAssignment","src":"8325:23:18","value":{"arguments":[{"kind":"number","nativeSrc":"8343:4:18","nodeType":"YulLiteral","src":"8343:4:18","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8337:5:18","nodeType":"YulIdentifier","src":"8337:5:18"},"nativeSrc":"8337:11:18","nodeType":"YulFunctionCall","src":"8337:11:18"},"variableNames":[{"name":"ordinals","nativeSrc":"8325:8:18","nodeType":"YulIdentifier","src":"8325:8:18"}]},{"nativeSrc":"8361:30:18","nodeType":"YulVariableDeclaration","src":"8361:30:18","value":{"arguments":[{"name":"ordinals","nativeSrc":"8376:8:18","nodeType":"YulIdentifier","src":"8376:8:18"},{"kind":"number","nativeSrc":"8386:4:18","nodeType":"YulLiteral","src":"8386:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8372:3:18","nodeType":"YulIdentifier","src":"8372:3:18"},"nativeSrc":"8372:19:18","nodeType":"YulFunctionCall","src":"8372:19:18"},"variables":[{"name":"ptr","nativeSrc":"8365:3:18","nodeType":"YulTypedName","src":"8365:3:18","type":""}]},{"nativeSrc":"8404:10:18","nodeType":"YulVariableDeclaration","src":"8404:10:18","value":{"kind":"number","nativeSrc":"8413:1:18","nodeType":"YulLiteral","src":"8413:1:18","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"8408:1:18","nodeType":"YulTypedName","src":"8408:1:18","type":""}]},{"body":{"nativeSrc":"8627:339:18","nodeType":"YulBlock","src":"8627:339:18","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"8652:3:18","nodeType":"YulIdentifier","src":"8652:3:18"},{"name":"o","nativeSrc":"8657:1:18","nodeType":"YulIdentifier","src":"8657:1:18"}],"functionName":{"name":"mstore","nativeSrc":"8645:6:18","nodeType":"YulIdentifier","src":"8645:6:18"},"nativeSrc":"8645:14:18","nodeType":"YulFunctionCall","src":"8645:14:18"},"nativeSrc":"8645:14:18","nodeType":"YulExpressionStatement","src":"8645:14:18"},{"nativeSrc":"8813:34:18","nodeType":"YulAssignment","src":"8813:34:18","value":{"arguments":[{"name":"ptr","nativeSrc":"8824:3:18","nodeType":"YulIdentifier","src":"8824:3:18"},{"arguments":[{"kind":"number","nativeSrc":"8833:1:18","nodeType":"YulLiteral","src":"8833:1:18","type":"","value":"5"},{"arguments":[{"name":"t","nativeSrc":"8840:1:18","nodeType":"YulIdentifier","src":"8840:1:18"},{"kind":"number","nativeSrc":"8843:1:18","nodeType":"YulLiteral","src":"8843:1:18","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8836:3:18","nodeType":"YulIdentifier","src":"8836:3:18"},"nativeSrc":"8836:9:18","nodeType":"YulFunctionCall","src":"8836:9:18"}],"functionName":{"name":"shl","nativeSrc":"8829:3:18","nodeType":"YulIdentifier","src":"8829:3:18"},"nativeSrc":"8829:17:18","nodeType":"YulFunctionCall","src":"8829:17:18"}],"functionName":{"name":"add","nativeSrc":"8820:3:18","nodeType":"YulIdentifier","src":"8820:3:18"},"nativeSrc":"8820:27:18","nodeType":"YulFunctionCall","src":"8820:27:18"},"variableNames":[{"name":"ptr","nativeSrc":"8813:3:18","nodeType":"YulIdentifier","src":"8813:3:18"}]},{"nativeSrc":"8864:14:18","nodeType":"YulAssignment","src":"8864:14:18","value":{"arguments":[{"name":"o","nativeSrc":"8873:1:18","nodeType":"YulIdentifier","src":"8873:1:18"},{"kind":"number","nativeSrc":"8876:1:18","nodeType":"YulLiteral","src":"8876:1:18","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8869:3:18","nodeType":"YulIdentifier","src":"8869:3:18"},"nativeSrc":"8869:9:18","nodeType":"YulFunctionCall","src":"8869:9:18"},"variableNames":[{"name":"o","nativeSrc":"8864:1:18","nodeType":"YulIdentifier","src":"8864:1:18"}]},{"nativeSrc":"8895:18:18","nodeType":"YulAssignment","src":"8895:18:18","value":{"arguments":[{"name":"o","nativeSrc":"8904:1:18","nodeType":"YulIdentifier","src":"8904:1:18"},{"name":"roles","nativeSrc":"8907:5:18","nodeType":"YulIdentifier","src":"8907:5:18"}],"functionName":{"name":"shr","nativeSrc":"8900:3:18","nodeType":"YulIdentifier","src":"8900:3:18"},"nativeSrc":"8900:13:18","nodeType":"YulFunctionCall","src":"8900:13:18"},"variableNames":[{"name":"t","nativeSrc":"8895:1:18","nodeType":"YulIdentifier","src":"8895:1:18"}]},{"body":{"nativeSrc":"8943:9:18","nodeType":"YulBlock","src":"8943:9:18","statements":[{"nativeSrc":"8945:5:18","nodeType":"YulBreak","src":"8945:5:18"}]},"condition":{"arguments":[{"name":"t","nativeSrc":"8940:1:18","nodeType":"YulIdentifier","src":"8940:1:18"}],"functionName":{"name":"iszero","nativeSrc":"8933:6:18","nodeType":"YulIdentifier","src":"8933:6:18"},"nativeSrc":"8933:9:18","nodeType":"YulFunctionCall","src":"8933:9:18"},"nativeSrc":"8930:22:18","nodeType":"YulIf","src":"8930:22:18"}]},"condition":{"kind":"number","nativeSrc":"8622:1:18","nodeType":"YulLiteral","src":"8622:1:18","type":"","value":"1"},"nativeSrc":"8599:367:18","nodeType":"YulForLoop","post":{"nativeSrc":"8624:2:18","nodeType":"YulBlock","src":"8624:2:18","statements":[]},"pre":{"nativeSrc":"8603:18:18","nodeType":"YulBlock","src":"8603:18:18","statements":[{"nativeSrc":"8605:14:18","nodeType":"YulVariableDeclaration","src":"8605:14:18","value":{"name":"roles","nativeSrc":"8614:5:18","nodeType":"YulIdentifier","src":"8614:5:18"},"variables":[{"name":"t","nativeSrc":"8609:1:18","nodeType":"YulTypedName","src":"8609:1:18","type":""}]}]},"src":"8599:367:18"},{"expression":{"arguments":[{"name":"ordinals","nativeSrc":"9033:8:18","nodeType":"YulIdentifier","src":"9033:8:18"},{"arguments":[{"kind":"number","nativeSrc":"9047:1:18","nodeType":"YulLiteral","src":"9047:1:18","type":"","value":"5"},{"arguments":[{"name":"ptr","nativeSrc":"9054:3:18","nodeType":"YulIdentifier","src":"9054:3:18"},{"arguments":[{"name":"ordinals","nativeSrc":"9063:8:18","nodeType":"YulIdentifier","src":"9063:8:18"},{"kind":"number","nativeSrc":"9073:4:18","nodeType":"YulLiteral","src":"9073:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9059:3:18","nodeType":"YulIdentifier","src":"9059:3:18"},"nativeSrc":"9059:19:18","nodeType":"YulFunctionCall","src":"9059:19:18"}],"functionName":{"name":"sub","nativeSrc":"9050:3:18","nodeType":"YulIdentifier","src":"9050:3:18"},"nativeSrc":"9050:29:18","nodeType":"YulFunctionCall","src":"9050:29:18"}],"functionName":{"name":"shr","nativeSrc":"9043:3:18","nodeType":"YulIdentifier","src":"9043:3:18"},"nativeSrc":"9043:37:18","nodeType":"YulFunctionCall","src":"9043:37:18"}],"functionName":{"name":"mstore","nativeSrc":"9026:6:18","nodeType":"YulIdentifier","src":"9026:6:18"},"nativeSrc":"9026:55:18","nodeType":"YulFunctionCall","src":"9026:55:18"},"nativeSrc":"9026:55:18","nodeType":"YulExpressionStatement","src":"9026:55:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9137:4:18","nodeType":"YulLiteral","src":"9137:4:18","type":"","value":"0x40"},{"name":"ptr","nativeSrc":"9143:3:18","nodeType":"YulIdentifier","src":"9143:3:18"}],"functionName":{"name":"mstore","nativeSrc":"9130:6:18","nodeType":"YulIdentifier","src":"9130:6:18"},"nativeSrc":"9130:17:18","nodeType":"YulFunctionCall","src":"9130:17:18"},"nativeSrc":"9130:17:18","nodeType":"YulExpressionStatement","src":"9130:17:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6539,"isOffset":false,"isSlot":false,"src":"8325:8:18","valueSize":1},{"declaration":6539,"isOffset":false,"isSlot":false,"src":"8376:8:18","valueSize":1},{"declaration":6539,"isOffset":false,"isSlot":false,"src":"9033:8:18","valueSize":1},{"declaration":6539,"isOffset":false,"isSlot":false,"src":"9063:8:18","valueSize":1},{"declaration":6535,"isOffset":false,"isSlot":false,"src":"8614:5:18","valueSize":1},{"declaration":6535,"isOffset":false,"isSlot":false,"src":"8907:5:18","valueSize":1}],"id":6541,"nodeType":"InlineAssembly","src":"8250:907:18"}]},"documentation":{"id":6533,"nodeType":"StructuredDocumentation","src":"7793:308:18","text":"@dev Convenience function to return an array of `ordinals` from the `roles` bitmap.\n This is meant for frontends like Etherscan, and is therefore not fully optimized.\n Not recommended to be called on-chain.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6543,"implemented":true,"kind":"function","modifiers":[],"name":"_ordinalsFromRoles","nameLocation":"8115:18:18","nodeType":"FunctionDefinition","parameters":{"id":6536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6535,"mutability":"mutable","name":"roles","nameLocation":"8142:5:18","nodeType":"VariableDeclaration","scope":6543,"src":"8134:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6534,"name":"uint256","nodeType":"ElementaryTypeName","src":"8134:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8133:15:18"},"returnParameters":{"id":6540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6539,"mutability":"mutable","name":"ordinals","nameLocation":"8187:8:18","nodeType":"VariableDeclaration","scope":6543,"src":"8172:23:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6537,"name":"uint8","nodeType":"ElementaryTypeName","src":"8172:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6538,"nodeType":"ArrayTypeName","src":"8172:7:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"8171:25:18"},"scope":7950,"src":"8106:1057:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6558,"nodeType":"Block","src":"9670:41:18","statements":[{"expression":{"arguments":[{"id":6554,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6546,"src":"9692:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6555,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6548,"src":"9698:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6553,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6482,"src":"9680:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9680:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6557,"nodeType":"ExpressionStatement","src":"9680:24:18"}]},"documentation":{"id":6544,"nodeType":"StructuredDocumentation","src":"9452:131:18","text":"@dev Allows the owner to grant `user` `roles`.\n If the `user` already has a role, then it will be an no-op for the role."},"functionSelector":"1c10893f","id":6559,"implemented":true,"kind":"function","modifiers":[{"id":6551,"kind":"modifierInvocation","modifierName":{"id":6550,"name":"onlyOwner","nameLocations":["9660:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"9660:9:18"},"nodeType":"ModifierInvocation","src":"9660:9:18"}],"name":"grantRoles","nameLocation":"9597:10:18","nodeType":"FunctionDefinition","parameters":{"id":6549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6546,"mutability":"mutable","name":"user","nameLocation":"9616:4:18","nodeType":"VariableDeclaration","scope":6559,"src":"9608:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6545,"name":"address","nodeType":"ElementaryTypeName","src":"9608:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6548,"mutability":"mutable","name":"roles","nameLocation":"9630:5:18","nodeType":"VariableDeclaration","scope":6559,"src":"9622:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6547,"name":"uint256","nodeType":"ElementaryTypeName","src":"9622:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9607:29:18"},"returnParameters":{"id":6552,"nodeType":"ParameterList","parameters":[],"src":"9670:0:18"},"scope":7950,"src":"9588:123:18","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6574,"nodeType":"Block","src":"9939:42:18","statements":[{"expression":{"arguments":[{"id":6570,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6562,"src":"9962:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6571,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"9968:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6569,"name":"_removeRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6497,"src":"9949:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6573,"nodeType":"ExpressionStatement","src":"9949:25:18"}]},"documentation":{"id":6560,"nodeType":"StructuredDocumentation","src":"9717:134:18","text":"@dev Allows the owner to remove `user` `roles`.\n If the `user` does not have a role, then it will be an no-op for the role."},"functionSelector":"4a4ee7b1","id":6575,"implemented":true,"kind":"function","modifiers":[{"id":6567,"kind":"modifierInvocation","modifierName":{"id":6566,"name":"onlyOwner","nameLocations":["9929:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"9929:9:18"},"nodeType":"ModifierInvocation","src":"9929:9:18"}],"name":"revokeRoles","nameLocation":"9865:11:18","nodeType":"FunctionDefinition","parameters":{"id":6565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6562,"mutability":"mutable","name":"user","nameLocation":"9885:4:18","nodeType":"VariableDeclaration","scope":6575,"src":"9877:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6561,"name":"address","nodeType":"ElementaryTypeName","src":"9877:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6564,"mutability":"mutable","name":"roles","nameLocation":"9899:5:18","nodeType":"VariableDeclaration","scope":6575,"src":"9891:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6563,"name":"uint256","nodeType":"ElementaryTypeName","src":"9891:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9876:29:18"},"returnParameters":{"id":6568,"nodeType":"ParameterList","parameters":[],"src":"9939:0:18"},"scope":7950,"src":"9856:125:18","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6587,"nodeType":"Block","src":"10188:48:18","statements":[{"expression":{"arguments":[{"expression":{"id":6582,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10211:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10215:6:18","memberName":"sender","nodeType":"MemberAccess","src":"10211:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6584,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6578,"src":"10223:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6581,"name":"_removeRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6497,"src":"10198:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10198:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6586,"nodeType":"ExpressionStatement","src":"10198:31:18"}]},"documentation":{"id":6576,"nodeType":"StructuredDocumentation","src":"9987:135:18","text":"@dev Allow the caller to remove their own roles.\n If the caller does not have a role, then it will be an no-op for the role."},"functionSelector":"183a4f6e","id":6588,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRoles","nameLocation":"10136:13:18","nodeType":"FunctionDefinition","parameters":{"id":6579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6578,"mutability":"mutable","name":"roles","nameLocation":"10158:5:18","nodeType":"VariableDeclaration","scope":6588,"src":"10150:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6577,"name":"uint256","nodeType":"ElementaryTypeName","src":"10150:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10149:15:18"},"returnParameters":{"id":6580,"nodeType":"ParameterList","parameters":[],"src":"10188:0:18"},"scope":7950,"src":"10127:109:18","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6597,"nodeType":"Block","src":"10642:278:18","statements":[{"AST":{"nativeSrc":"10704:210:18","nodeType":"YulBlock","src":"10704:210:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10763:4:18","nodeType":"YulLiteral","src":"10763:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"10769:15:18","nodeType":"YulIdentifier","src":"10769:15:18"}],"functionName":{"name":"mstore","nativeSrc":"10756:6:18","nodeType":"YulIdentifier","src":"10756:6:18"},"nativeSrc":"10756:29:18","nodeType":"YulFunctionCall","src":"10756:29:18"},"nativeSrc":"10756:29:18","nodeType":"YulExpressionStatement","src":"10756:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10805:4:18","nodeType":"YulLiteral","src":"10805:4:18","type":"","value":"0x00"},{"name":"user","nativeSrc":"10811:4:18","nodeType":"YulIdentifier","src":"10811:4:18"}],"functionName":{"name":"mstore","nativeSrc":"10798:6:18","nodeType":"YulIdentifier","src":"10798:6:18"},"nativeSrc":"10798:18:18","nodeType":"YulFunctionCall","src":"10798:18:18"},"nativeSrc":"10798:18:18","nodeType":"YulExpressionStatement","src":"10798:18:18"},{"nativeSrc":"10867:37:18","nodeType":"YulAssignment","src":"10867:37:18","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10892:4:18","nodeType":"YulLiteral","src":"10892:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10898:4:18","nodeType":"YulLiteral","src":"10898:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10882:9:18","nodeType":"YulIdentifier","src":"10882:9:18"},"nativeSrc":"10882:21:18","nodeType":"YulFunctionCall","src":"10882:21:18"}],"functionName":{"name":"sload","nativeSrc":"10876:5:18","nodeType":"YulIdentifier","src":"10876:5:18"},"nativeSrc":"10876:28:18","nodeType":"YulFunctionCall","src":"10876:28:18"},"variableNames":[{"name":"roles","nativeSrc":"10867:5:18","nodeType":"YulIdentifier","src":"10867:5:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"10769:15:18","valueSize":1},{"declaration":6594,"isOffset":false,"isSlot":false,"src":"10867:5:18","valueSize":1},{"declaration":6591,"isOffset":false,"isSlot":false,"src":"10811:4:18","valueSize":1}],"id":6596,"nodeType":"InlineAssembly","src":"10695:219:18"}]},"documentation":{"id":6589,"nodeType":"StructuredDocumentation","src":"10525:37:18","text":"@dev Returns the roles of `user`."},"functionSelector":"2de94807","id":6598,"implemented":true,"kind":"function","modifiers":[],"name":"rolesOf","nameLocation":"10576:7:18","nodeType":"FunctionDefinition","parameters":{"id":6592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6591,"mutability":"mutable","name":"user","nameLocation":"10592:4:18","nodeType":"VariableDeclaration","scope":6598,"src":"10584:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6590,"name":"address","nodeType":"ElementaryTypeName","src":"10584:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10583:14:18"},"returnParameters":{"id":6595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6594,"mutability":"mutable","name":"roles","nameLocation":"10635:5:18","nodeType":"VariableDeclaration","scope":6598,"src":"10627:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6593,"name":"uint256","nodeType":"ElementaryTypeName","src":"10627:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10626:15:18"},"scope":7950,"src":"10567:353:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6616,"nodeType":"Block","src":"11066:50:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6609,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6601,"src":"11091:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6608,"name":"rolesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6598,"src":"11083:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":6610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11083:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":6611,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6603,"src":"11099:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11083:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11108:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11083:26:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6607,"id":6615,"nodeType":"Return","src":"11076:33:18"}]},"documentation":{"id":6599,"nodeType":"StructuredDocumentation","src":"10926:51:18","text":"@dev Returns whether `user` has any of `roles`."},"functionSelector":"514e62fc","id":6617,"implemented":true,"kind":"function","modifiers":[],"name":"hasAnyRole","nameLocation":"10991:10:18","nodeType":"FunctionDefinition","parameters":{"id":6604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6601,"mutability":"mutable","name":"user","nameLocation":"11010:4:18","nodeType":"VariableDeclaration","scope":6617,"src":"11002:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6600,"name":"address","nodeType":"ElementaryTypeName","src":"11002:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6603,"mutability":"mutable","name":"roles","nameLocation":"11024:5:18","nodeType":"VariableDeclaration","scope":6617,"src":"11016:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6602,"name":"uint256","nodeType":"ElementaryTypeName","src":"11016:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11001:29:18"},"returnParameters":{"id":6607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6617,"src":"11060:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6605,"name":"bool","nodeType":"ElementaryTypeName","src":"11060:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11059:6:18"},"scope":7950,"src":"10982:134:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6635,"nodeType":"Block","src":"11263:54:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6628,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6620,"src":"11288:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6627,"name":"rolesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6598,"src":"11280:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":6629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11280:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":6630,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"11296:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11280:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6632,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"11305:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11280:30:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6626,"id":6634,"nodeType":"Return","src":"11273:37:18"}]},"documentation":{"id":6618,"nodeType":"StructuredDocumentation","src":"11122:51:18","text":"@dev Returns whether `user` has all of `roles`."},"functionSelector":"1cd64df4","id":6636,"implemented":true,"kind":"function","modifiers":[],"name":"hasAllRoles","nameLocation":"11187:11:18","nodeType":"FunctionDefinition","parameters":{"id":6623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6620,"mutability":"mutable","name":"user","nameLocation":"11207:4:18","nodeType":"VariableDeclaration","scope":6636,"src":"11199:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6619,"name":"address","nodeType":"ElementaryTypeName","src":"11199:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6622,"mutability":"mutable","name":"roles","nameLocation":"11221:5:18","nodeType":"VariableDeclaration","scope":6636,"src":"11213:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6621,"name":"uint256","nodeType":"ElementaryTypeName","src":"11213:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11198:29:18"},"returnParameters":{"id":6626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6636,"src":"11257:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6624,"name":"bool","nodeType":"ElementaryTypeName","src":"11257:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11256:6:18"},"scope":7950,"src":"11178:139:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6646,"nodeType":"Block","src":"11723:46:18","statements":[{"expression":{"arguments":[{"id":6642,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6639,"src":"11745:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6641,"name":"_checkRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"11733:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11733:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6644,"nodeType":"ExpressionStatement","src":"11733:18:18"},{"id":6645,"nodeType":"PlaceholderStatement","src":"11761:1:18"}]},"documentation":{"id":6637,"nodeType":"StructuredDocumentation","src":"11606:70:18","text":"@dev Marks a function as only callable by an account with `roles`."},"id":6647,"name":"onlyRoles","nameLocation":"11690:9:18","nodeType":"ModifierDefinition","parameters":{"id":6640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6639,"mutability":"mutable","name":"roles","nameLocation":"11708:5:18","nodeType":"VariableDeclaration","scope":6647,"src":"11700:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6638,"name":"uint256","nodeType":"ElementaryTypeName","src":"11700:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11699:15:18"},"src":"11681:88:18","virtual":true,"visibility":"internal"},{"body":{"id":6657,"nodeType":"Block","src":"11981:53:18","statements":[{"expression":{"arguments":[{"id":6653,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6650,"src":"12010:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6652,"name":"_checkOwnerOrRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"11991:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6655,"nodeType":"ExpressionStatement","src":"11991:25:18"},{"id":6656,"nodeType":"PlaceholderStatement","src":"12026:1:18"}]},"documentation":{"id":6648,"nodeType":"StructuredDocumentation","src":"11775:152:18","text":"@dev Marks a function as only callable by the owner or by an account\n with `roles`. Checks for ownership first, then lazily checks for roles."},"id":6658,"name":"onlyOwnerOrRoles","nameLocation":"11941:16:18","nodeType":"ModifierDefinition","parameters":{"id":6651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6650,"mutability":"mutable","name":"roles","nameLocation":"11966:5:18","nodeType":"VariableDeclaration","scope":6658,"src":"11958:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6649,"name":"uint256","nodeType":"ElementaryTypeName","src":"11958:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11957:15:18"},"src":"11932:102:18","virtual":true,"visibility":"internal"},{"body":{"id":6668,"nodeType":"Block","src":"12243:53:18","statements":[{"expression":{"arguments":[{"id":6664,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"12272:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6663,"name":"_checkRolesOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6521,"src":"12253:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12253:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6666,"nodeType":"ExpressionStatement","src":"12253:25:18"},{"id":6667,"nodeType":"PlaceholderStatement","src":"12288:1:18"}]},"documentation":{"id":6659,"nodeType":"StructuredDocumentation","src":"12040:149:18","text":"@dev Marks a function as only callable by an account with `roles`\n or the owner. Checks for roles first, then lazily checks for ownership."},"id":6669,"name":"onlyRolesOrOwner","nameLocation":"12203:16:18","nodeType":"ModifierDefinition","parameters":{"id":6662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6661,"mutability":"mutable","name":"roles","nameLocation":"12228:5:18","nodeType":"VariableDeclaration","scope":6669,"src":"12220:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6660,"name":"uint256","nodeType":"ElementaryTypeName","src":"12220:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12219:15:18"},"src":"12194:102:18","virtual":true,"visibility":"internal"},{"constant":true,"id":6674,"mutability":"constant","name":"_ROLE_0","nameLocation":"12625:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12599:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6670,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"id":6673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12635:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"30","id":6672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12640:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12635:6:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}},"visibility":"internal"},{"constant":true,"id":6679,"mutability":"constant","name":"_ROLE_1","nameLocation":"12673:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12647:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6675,"name":"uint256","nodeType":"ElementaryTypeName","src":"12647:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":6678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12683:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":6677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12688:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12683:6:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"internal"},{"constant":true,"id":6684,"mutability":"constant","name":"_ROLE_2","nameLocation":"12721:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12695:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6680,"name":"uint256","nodeType":"ElementaryTypeName","src":"12695:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":6683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12731:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":6682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12736:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12731:6:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"visibility":"internal"},{"constant":true,"id":6689,"mutability":"constant","name":"_ROLE_3","nameLocation":"12769:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12743:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6685,"name":"uint256","nodeType":"ElementaryTypeName","src":"12743:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"id":6688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12779:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":6687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12784:1:18","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12779:6:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}},"visibility":"internal"},{"constant":true,"id":6694,"mutability":"constant","name":"_ROLE_4","nameLocation":"12817:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12791:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6690,"name":"uint256","nodeType":"ElementaryTypeName","src":"12791:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":6693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12827:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":6692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12832:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12827:6:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"visibility":"internal"},{"constant":true,"id":6699,"mutability":"constant","name":"_ROLE_5","nameLocation":"12865:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12839:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6695,"name":"uint256","nodeType":"ElementaryTypeName","src":"12839:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"id":6698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12875:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":6697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12880:1:18","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"12875:6:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}},"visibility":"internal"},{"constant":true,"id":6704,"mutability":"constant","name":"_ROLE_6","nameLocation":"12913:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12887:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6700,"name":"uint256","nodeType":"ElementaryTypeName","src":"12887:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"id":6703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12923:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"36","id":6702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12928:1:18","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"12923:6:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}},"visibility":"internal"},{"constant":true,"id":6709,"mutability":"constant","name":"_ROLE_7","nameLocation":"12961:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12935:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6705,"name":"uint256","nodeType":"ElementaryTypeName","src":"12935:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"id":6708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12971:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"37","id":6707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12976:1:18","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"12971:6:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}},"visibility":"internal"},{"constant":true,"id":6714,"mutability":"constant","name":"_ROLE_8","nameLocation":"13009:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12983:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6710,"name":"uint256","nodeType":"ElementaryTypeName","src":"12983:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":6713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13019:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13024:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13019:6:18","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"visibility":"internal"},{"constant":true,"id":6719,"mutability":"constant","name":"_ROLE_9","nameLocation":"13057:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"13031:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6715,"name":"uint256","nodeType":"ElementaryTypeName","src":"13031:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_512_by_1","typeString":"int_const 512"},"id":6718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13067:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"39","id":6717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13072:1:18","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"13067:6:18","typeDescriptions":{"typeIdentifier":"t_rational_512_by_1","typeString":"int_const 512"}},"visibility":"internal"},{"constant":true,"id":6724,"mutability":"constant","name":"_ROLE_10","nameLocation":"13105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6720,"name":"uint256","nodeType":"ElementaryTypeName","src":"13079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"id":6723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3130","id":6722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"13116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}},"visibility":"internal"},{"constant":true,"id":6729,"mutability":"constant","name":"_ROLE_11","nameLocation":"13155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6725,"name":"uint256","nodeType":"ElementaryTypeName","src":"13129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2048_by_1","typeString":"int_const 2048"},"id":6728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3131","id":6727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"13166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2048_by_1","typeString":"int_const 2048"}},"visibility":"internal"},{"constant":true,"id":6734,"mutability":"constant","name":"_ROLE_12","nameLocation":"13205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6730,"name":"uint256","nodeType":"ElementaryTypeName","src":"13179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"},"id":6733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3132","id":6732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"}},"visibility":"internal"},{"constant":true,"id":6739,"mutability":"constant","name":"_ROLE_13","nameLocation":"13255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6735,"name":"uint256","nodeType":"ElementaryTypeName","src":"13229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8192_by_1","typeString":"int_const 8192"},"id":6738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3133","id":6737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"src":"13266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8192_by_1","typeString":"int_const 8192"}},"visibility":"internal"},{"constant":true,"id":6744,"mutability":"constant","name":"_ROLE_14","nameLocation":"13305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6740,"name":"uint256","nodeType":"ElementaryTypeName","src":"13279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16384_by_1","typeString":"int_const 16384"},"id":6743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3134","id":6742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"13316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_16384_by_1","typeString":"int_const 16384"}},"visibility":"internal"},{"constant":true,"id":6749,"mutability":"constant","name":"_ROLE_15","nameLocation":"13355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6745,"name":"uint256","nodeType":"ElementaryTypeName","src":"13329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"id":6748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3135","id":6747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"13366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"}},"visibility":"internal"},{"constant":true,"id":6754,"mutability":"constant","name":"_ROLE_16","nameLocation":"13405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6750,"name":"uint256","nodeType":"ElementaryTypeName","src":"13379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":6753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":6752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"visibility":"internal"},{"constant":true,"id":6759,"mutability":"constant","name":"_ROLE_17","nameLocation":"13455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6755,"name":"uint256","nodeType":"ElementaryTypeName","src":"13429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_131072_by_1","typeString":"int_const 131072"},"id":6758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3137","id":6757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"17"},"src":"13466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_131072_by_1","typeString":"int_const 131072"}},"visibility":"internal"},{"constant":true,"id":6764,"mutability":"constant","name":"_ROLE_18","nameLocation":"13505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6760,"name":"uint256","nodeType":"ElementaryTypeName","src":"13479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_262144_by_1","typeString":"int_const 262144"},"id":6763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3138","id":6762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"13516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_262144_by_1","typeString":"int_const 262144"}},"visibility":"internal"},{"constant":true,"id":6769,"mutability":"constant","name":"_ROLE_19","nameLocation":"13555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6765,"name":"uint256","nodeType":"ElementaryTypeName","src":"13529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_524288_by_1","typeString":"int_const 524288"},"id":6768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3139","id":6767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"src":"13566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_524288_by_1","typeString":"int_const 524288"}},"visibility":"internal"},{"constant":true,"id":6774,"mutability":"constant","name":"_ROLE_20","nameLocation":"13605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6770,"name":"uint256","nodeType":"ElementaryTypeName","src":"13579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1048576_by_1","typeString":"int_const 1048576"},"id":6773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3230","id":6772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"13616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1048576_by_1","typeString":"int_const 1048576"}},"visibility":"internal"},{"constant":true,"id":6779,"mutability":"constant","name":"_ROLE_21","nameLocation":"13655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6775,"name":"uint256","nodeType":"ElementaryTypeName","src":"13629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2097152_by_1","typeString":"int_const 2097152"},"id":6778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3231","id":6777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"21"},"src":"13666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2097152_by_1","typeString":"int_const 2097152"}},"visibility":"internal"},{"constant":true,"id":6784,"mutability":"constant","name":"_ROLE_22","nameLocation":"13705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6780,"name":"uint256","nodeType":"ElementaryTypeName","src":"13679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4194304_by_1","typeString":"int_const 4194304"},"id":6783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3232","id":6782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_22_by_1","typeString":"int_const 22"},"value":"22"},"src":"13716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4194304_by_1","typeString":"int_const 4194304"}},"visibility":"internal"},{"constant":true,"id":6789,"mutability":"constant","name":"_ROLE_23","nameLocation":"13755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6785,"name":"uint256","nodeType":"ElementaryTypeName","src":"13729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8388608_by_1","typeString":"int_const 8388608"},"id":6788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3233","id":6787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"13766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8388608_by_1","typeString":"int_const 8388608"}},"visibility":"internal"},{"constant":true,"id":6794,"mutability":"constant","name":"_ROLE_24","nameLocation":"13805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6790,"name":"uint256","nodeType":"ElementaryTypeName","src":"13779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"},"id":6793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3234","id":6792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"13816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"}},"visibility":"internal"},{"constant":true,"id":6799,"mutability":"constant","name":"_ROLE_25","nameLocation":"13855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6795,"name":"uint256","nodeType":"ElementaryTypeName","src":"13829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_33554432_by_1","typeString":"int_const 33554432"},"id":6798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3235","id":6797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"13866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_33554432_by_1","typeString":"int_const 33554432"}},"visibility":"internal"},{"constant":true,"id":6804,"mutability":"constant","name":"_ROLE_26","nameLocation":"13905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6800,"name":"uint256","nodeType":"ElementaryTypeName","src":"13879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_67108864_by_1","typeString":"int_const 67108864"},"id":6803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3236","id":6802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"13916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_67108864_by_1","typeString":"int_const 67108864"}},"visibility":"internal"},{"constant":true,"id":6809,"mutability":"constant","name":"_ROLE_27","nameLocation":"13955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6805,"name":"uint256","nodeType":"ElementaryTypeName","src":"13929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_134217728_by_1","typeString":"int_const 134217728"},"id":6808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3237","id":6807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"13966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_134217728_by_1","typeString":"int_const 134217728"}},"visibility":"internal"},{"constant":true,"id":6814,"mutability":"constant","name":"_ROLE_28","nameLocation":"14005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6810,"name":"uint256","nodeType":"ElementaryTypeName","src":"13979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_268435456_by_1","typeString":"int_const 268435456"},"id":6813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3238","id":6812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"14016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_268435456_by_1","typeString":"int_const 268435456"}},"visibility":"internal"},{"constant":true,"id":6819,"mutability":"constant","name":"_ROLE_29","nameLocation":"14055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6815,"name":"uint256","nodeType":"ElementaryTypeName","src":"14029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_536870912_by_1","typeString":"int_const 536870912"},"id":6818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3239","id":6817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_29_by_1","typeString":"int_const 29"},"value":"29"},"src":"14066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_536870912_by_1","typeString":"int_const 536870912"}},"visibility":"internal"},{"constant":true,"id":6824,"mutability":"constant","name":"_ROLE_30","nameLocation":"14105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6820,"name":"uint256","nodeType":"ElementaryTypeName","src":"14079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1073741824_by_1","typeString":"int_const 1073741824"},"id":6823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3330","id":6822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"14116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1073741824_by_1","typeString":"int_const 1073741824"}},"visibility":"internal"},{"constant":true,"id":6829,"mutability":"constant","name":"_ROLE_31","nameLocation":"14155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6825,"name":"uint256","nodeType":"ElementaryTypeName","src":"14129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2147483648_by_1","typeString":"int_const 2147483648"},"id":6828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3331","id":6827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"14166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2147483648_by_1","typeString":"int_const 2147483648"}},"visibility":"internal"},{"constant":true,"id":6834,"mutability":"constant","name":"_ROLE_32","nameLocation":"14205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6830,"name":"uint256","nodeType":"ElementaryTypeName","src":"14179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":6833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":6832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"visibility":"internal"},{"constant":true,"id":6839,"mutability":"constant","name":"_ROLE_33","nameLocation":"14255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6835,"name":"uint256","nodeType":"ElementaryTypeName","src":"14229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8589934592_by_1","typeString":"int_const 8589934592"},"id":6838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3333","id":6837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"33"},"src":"14266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8589934592_by_1","typeString":"int_const 8589934592"}},"visibility":"internal"},{"constant":true,"id":6844,"mutability":"constant","name":"_ROLE_34","nameLocation":"14305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6840,"name":"uint256","nodeType":"ElementaryTypeName","src":"14279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_17179869184_by_1","typeString":"int_const 17179869184"},"id":6843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3334","id":6842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"14316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_17179869184_by_1","typeString":"int_const 17179869184"}},"visibility":"internal"},{"constant":true,"id":6849,"mutability":"constant","name":"_ROLE_35","nameLocation":"14355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6845,"name":"uint256","nodeType":"ElementaryTypeName","src":"14329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_34359738368_by_1","typeString":"int_const 34359738368"},"id":6848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3335","id":6847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_35_by_1","typeString":"int_const 35"},"value":"35"},"src":"14366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_34359738368_by_1","typeString":"int_const 34359738368"}},"visibility":"internal"},{"constant":true,"id":6854,"mutability":"constant","name":"_ROLE_36","nameLocation":"14405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6850,"name":"uint256","nodeType":"ElementaryTypeName","src":"14379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_68719476736_by_1","typeString":"int_const 68719476736"},"id":6853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3336","id":6852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"src":"14416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_68719476736_by_1","typeString":"int_const 68719476736"}},"visibility":"internal"},{"constant":true,"id":6859,"mutability":"constant","name":"_ROLE_37","nameLocation":"14455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6855,"name":"uint256","nodeType":"ElementaryTypeName","src":"14429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_137438953472_by_1","typeString":"int_const 137438953472"},"id":6858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3337","id":6857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_37_by_1","typeString":"int_const 37"},"value":"37"},"src":"14466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_137438953472_by_1","typeString":"int_const 137438953472"}},"visibility":"internal"},{"constant":true,"id":6864,"mutability":"constant","name":"_ROLE_38","nameLocation":"14505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6860,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_274877906944_by_1","typeString":"int_const 274877906944"},"id":6863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3338","id":6862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_38_by_1","typeString":"int_const 38"},"value":"38"},"src":"14516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_274877906944_by_1","typeString":"int_const 274877906944"}},"visibility":"internal"},{"constant":true,"id":6869,"mutability":"constant","name":"_ROLE_39","nameLocation":"14555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6865,"name":"uint256","nodeType":"ElementaryTypeName","src":"14529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_549755813888_by_1","typeString":"int_const 549755813888"},"id":6868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3339","id":6867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_39_by_1","typeString":"int_const 39"},"value":"39"},"src":"14566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_549755813888_by_1","typeString":"int_const 549755813888"}},"visibility":"internal"},{"constant":true,"id":6874,"mutability":"constant","name":"_ROLE_40","nameLocation":"14605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6870,"name":"uint256","nodeType":"ElementaryTypeName","src":"14579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1099511627776_by_1","typeString":"int_const 1099511627776"},"id":6873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3430","id":6872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"14616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1099511627776_by_1","typeString":"int_const 1099511627776"}},"visibility":"internal"},{"constant":true,"id":6879,"mutability":"constant","name":"_ROLE_41","nameLocation":"14655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6875,"name":"uint256","nodeType":"ElementaryTypeName","src":"14629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2199023255552_by_1","typeString":"int_const 2199023255552"},"id":6878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3431","id":6877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"},"src":"14666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2199023255552_by_1","typeString":"int_const 2199023255552"}},"visibility":"internal"},{"constant":true,"id":6884,"mutability":"constant","name":"_ROLE_42","nameLocation":"14705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6880,"name":"uint256","nodeType":"ElementaryTypeName","src":"14679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4398046511104_by_1","typeString":"int_const 4398046511104"},"id":6883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3432","id":6882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"value":"42"},"src":"14716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4398046511104_by_1","typeString":"int_const 4398046511104"}},"visibility":"internal"},{"constant":true,"id":6889,"mutability":"constant","name":"_ROLE_43","nameLocation":"14755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6885,"name":"uint256","nodeType":"ElementaryTypeName","src":"14729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8796093022208_by_1","typeString":"int_const 8796093022208"},"id":6888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3433","id":6887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"},"value":"43"},"src":"14766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8796093022208_by_1","typeString":"int_const 8796093022208"}},"visibility":"internal"},{"constant":true,"id":6894,"mutability":"constant","name":"_ROLE_44","nameLocation":"14805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6890,"name":"uint256","nodeType":"ElementaryTypeName","src":"14779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_17592186044416_by_1","typeString":"int_const 17592186044416"},"id":6893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3434","id":6892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"src":"14816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_17592186044416_by_1","typeString":"int_const 17592186044416"}},"visibility":"internal"},{"constant":true,"id":6899,"mutability":"constant","name":"_ROLE_45","nameLocation":"14855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6895,"name":"uint256","nodeType":"ElementaryTypeName","src":"14829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_35184372088832_by_1","typeString":"int_const 35184372088832"},"id":6898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3435","id":6897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"},"value":"45"},"src":"14866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_35184372088832_by_1","typeString":"int_const 35184372088832"}},"visibility":"internal"},{"constant":true,"id":6904,"mutability":"constant","name":"_ROLE_46","nameLocation":"14905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6900,"name":"uint256","nodeType":"ElementaryTypeName","src":"14879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_70368744177664_by_1","typeString":"int_const 70368744177664"},"id":6903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3436","id":6902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"},"value":"46"},"src":"14916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_70368744177664_by_1","typeString":"int_const 70368744177664"}},"visibility":"internal"},{"constant":true,"id":6909,"mutability":"constant","name":"_ROLE_47","nameLocation":"14955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6905,"name":"uint256","nodeType":"ElementaryTypeName","src":"14929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_140737488355328_by_1","typeString":"int_const 140737488355328"},"id":6908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3437","id":6907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_47_by_1","typeString":"int_const 47"},"value":"47"},"src":"14966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_140737488355328_by_1","typeString":"int_const 140737488355328"}},"visibility":"internal"},{"constant":true,"id":6914,"mutability":"constant","name":"_ROLE_48","nameLocation":"15005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6910,"name":"uint256","nodeType":"ElementaryTypeName","src":"14979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_281474976710656_by_1","typeString":"int_const 281474976710656"},"id":6913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3438","id":6912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"src":"15016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_281474976710656_by_1","typeString":"int_const 281474976710656"}},"visibility":"internal"},{"constant":true,"id":6919,"mutability":"constant","name":"_ROLE_49","nameLocation":"15055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6915,"name":"uint256","nodeType":"ElementaryTypeName","src":"15029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_562949953421312_by_1","typeString":"int_const 562949953421312"},"id":6918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3439","id":6917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"src":"15066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_562949953421312_by_1","typeString":"int_const 562949953421312"}},"visibility":"internal"},{"constant":true,"id":6924,"mutability":"constant","name":"_ROLE_50","nameLocation":"15105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6920,"name":"uint256","nodeType":"ElementaryTypeName","src":"15079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1125899906842624_by_1","typeString":"int_const 1125899906842624"},"id":6923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3530","id":6922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"15116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1125899906842624_by_1","typeString":"int_const 1125899906842624"}},"visibility":"internal"},{"constant":true,"id":6929,"mutability":"constant","name":"_ROLE_51","nameLocation":"15155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6925,"name":"uint256","nodeType":"ElementaryTypeName","src":"15129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2251799813685248_by_1","typeString":"int_const 2251799813685248"},"id":6928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3531","id":6927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"15166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2251799813685248_by_1","typeString":"int_const 2251799813685248"}},"visibility":"internal"},{"constant":true,"id":6934,"mutability":"constant","name":"_ROLE_52","nameLocation":"15205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6930,"name":"uint256","nodeType":"ElementaryTypeName","src":"15179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4503599627370496_by_1","typeString":"int_const 4503599627370496"},"id":6933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3532","id":6932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_52_by_1","typeString":"int_const 52"},"value":"52"},"src":"15216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4503599627370496_by_1","typeString":"int_const 4503599627370496"}},"visibility":"internal"},{"constant":true,"id":6939,"mutability":"constant","name":"_ROLE_53","nameLocation":"15255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6935,"name":"uint256","nodeType":"ElementaryTypeName","src":"15229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9007199254740992_by_1","typeString":"int_const 9007199254740992"},"id":6938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3533","id":6937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_53_by_1","typeString":"int_const 53"},"value":"53"},"src":"15266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9007199254740992_by_1","typeString":"int_const 9007199254740992"}},"visibility":"internal"},{"constant":true,"id":6944,"mutability":"constant","name":"_ROLE_54","nameLocation":"15305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6940,"name":"uint256","nodeType":"ElementaryTypeName","src":"15279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18014398509481984_by_1","typeString":"int_const 18014398509481984"},"id":6943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3534","id":6942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_54_by_1","typeString":"int_const 54"},"value":"54"},"src":"15316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_18014398509481984_by_1","typeString":"int_const 18014398509481984"}},"visibility":"internal"},{"constant":true,"id":6949,"mutability":"constant","name":"_ROLE_55","nameLocation":"15355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6945,"name":"uint256","nodeType":"ElementaryTypeName","src":"15329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_36028797018963968_by_1","typeString":"int_const 36028797018963968"},"id":6948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3535","id":6947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_55_by_1","typeString":"int_const 55"},"value":"55"},"src":"15366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_36028797018963968_by_1","typeString":"int_const 36028797018963968"}},"visibility":"internal"},{"constant":true,"id":6954,"mutability":"constant","name":"_ROLE_56","nameLocation":"15405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6950,"name":"uint256","nodeType":"ElementaryTypeName","src":"15379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_72057594037927936_by_1","typeString":"int_const 72057594037927936"},"id":6953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3536","id":6952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"15416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_72057594037927936_by_1","typeString":"int_const 72057594037927936"}},"visibility":"internal"},{"constant":true,"id":6959,"mutability":"constant","name":"_ROLE_57","nameLocation":"15455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6955,"name":"uint256","nodeType":"ElementaryTypeName","src":"15429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_144115188075855872_by_1","typeString":"int_const 144115188075855872"},"id":6958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3537","id":6957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"},"value":"57"},"src":"15466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_144115188075855872_by_1","typeString":"int_const 144115188075855872"}},"visibility":"internal"},{"constant":true,"id":6964,"mutability":"constant","name":"_ROLE_58","nameLocation":"15505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6960,"name":"uint256","nodeType":"ElementaryTypeName","src":"15479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_288230376151711744_by_1","typeString":"int_const 288230376151711744"},"id":6963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3538","id":6962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_58_by_1","typeString":"int_const 58"},"value":"58"},"src":"15516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_288230376151711744_by_1","typeString":"int_const 288230376151711744"}},"visibility":"internal"},{"constant":true,"id":6969,"mutability":"constant","name":"_ROLE_59","nameLocation":"15555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6965,"name":"uint256","nodeType":"ElementaryTypeName","src":"15529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_576460752303423488_by_1","typeString":"int_const 576460752303423488"},"id":6968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3539","id":6967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_59_by_1","typeString":"int_const 59"},"value":"59"},"src":"15566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_576460752303423488_by_1","typeString":"int_const 576460752303423488"}},"visibility":"internal"},{"constant":true,"id":6974,"mutability":"constant","name":"_ROLE_60","nameLocation":"15605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6970,"name":"uint256","nodeType":"ElementaryTypeName","src":"15579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1152921504606846976_by_1","typeString":"int_const 1152921504606846976"},"id":6973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3630","id":6972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"15616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1152921504606846976_by_1","typeString":"int_const 1152921504606846976"}},"visibility":"internal"},{"constant":true,"id":6979,"mutability":"constant","name":"_ROLE_61","nameLocation":"15655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6975,"name":"uint256","nodeType":"ElementaryTypeName","src":"15629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2305843009213693952_by_1","typeString":"int_const 2305843009213693952"},"id":6978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3631","id":6977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_61_by_1","typeString":"int_const 61"},"value":"61"},"src":"15666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2305843009213693952_by_1","typeString":"int_const 2305843009213693952"}},"visibility":"internal"},{"constant":true,"id":6984,"mutability":"constant","name":"_ROLE_62","nameLocation":"15705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6980,"name":"uint256","nodeType":"ElementaryTypeName","src":"15679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4611686018427387904_by_1","typeString":"int_const 4611686018427387904"},"id":6983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3632","id":6982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_62_by_1","typeString":"int_const 62"},"value":"62"},"src":"15716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4611686018427387904_by_1","typeString":"int_const 4611686018427387904"}},"visibility":"internal"},{"constant":true,"id":6989,"mutability":"constant","name":"_ROLE_63","nameLocation":"15755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6985,"name":"uint256","nodeType":"ElementaryTypeName","src":"15729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9223372036854775808_by_1","typeString":"int_const 9223372036854775808"},"id":6988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3633","id":6987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"63"},"src":"15766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9223372036854775808_by_1","typeString":"int_const 9223372036854775808"}},"visibility":"internal"},{"constant":true,"id":6994,"mutability":"constant","name":"_ROLE_64","nameLocation":"15805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6990,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":6993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":6992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"15816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"visibility":"internal"},{"constant":true,"id":6999,"mutability":"constant","name":"_ROLE_65","nameLocation":"15855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6995,"name":"uint256","nodeType":"ElementaryTypeName","src":"15829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_36893488147419103232_by_1","typeString":"int_const 36893488147419103232"},"id":6998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3635","id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"15866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_36893488147419103232_by_1","typeString":"int_const 36893488147419103232"}},"visibility":"internal"},{"constant":true,"id":7004,"mutability":"constant","name":"_ROLE_66","nameLocation":"15905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7000,"name":"uint256","nodeType":"ElementaryTypeName","src":"15879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_73786976294838206464_by_1","typeString":"int_const 73786976294838206464"},"id":7003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3636","id":7002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"15916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_73786976294838206464_by_1","typeString":"int_const 73786976294838206464"}},"visibility":"internal"},{"constant":true,"id":7009,"mutability":"constant","name":"_ROLE_67","nameLocation":"15955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7005,"name":"uint256","nodeType":"ElementaryTypeName","src":"15929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_147573952589676412928_by_1","typeString":"int_const 147573952589676412928"},"id":7008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3637","id":7007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_67_by_1","typeString":"int_const 67"},"value":"67"},"src":"15966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_147573952589676412928_by_1","typeString":"int_const 147573952589676412928"}},"visibility":"internal"},{"constant":true,"id":7014,"mutability":"constant","name":"_ROLE_68","nameLocation":"16005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7010,"name":"uint256","nodeType":"ElementaryTypeName","src":"15979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_295147905179352825856_by_1","typeString":"int_const 295147905179352825856"},"id":7013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3638","id":7012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"16016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_295147905179352825856_by_1","typeString":"int_const 295147905179352825856"}},"visibility":"internal"},{"constant":true,"id":7019,"mutability":"constant","name":"_ROLE_69","nameLocation":"16055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7015,"name":"uint256","nodeType":"ElementaryTypeName","src":"16029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_590295810358705651712_by_1","typeString":"int_const 590295810358705651712"},"id":7018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3639","id":7017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"value":"69"},"src":"16066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_590295810358705651712_by_1","typeString":"int_const 590295810358705651712"}},"visibility":"internal"},{"constant":true,"id":7024,"mutability":"constant","name":"_ROLE_70","nameLocation":"16105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7020,"name":"uint256","nodeType":"ElementaryTypeName","src":"16079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1180591620717411303424_by_1","typeString":"int_const 1180591620717411303424"},"id":7023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3730","id":7022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"src":"16116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1180591620717411303424_by_1","typeString":"int_const 1180591620717411303424"}},"visibility":"internal"},{"constant":true,"id":7029,"mutability":"constant","name":"_ROLE_71","nameLocation":"16155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7025,"name":"uint256","nodeType":"ElementaryTypeName","src":"16129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2361183241434822606848_by_1","typeString":"int_const 2361183241434822606848"},"id":7028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3731","id":7027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_71_by_1","typeString":"int_const 71"},"value":"71"},"src":"16166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2361183241434822606848_by_1","typeString":"int_const 2361183241434822606848"}},"visibility":"internal"},{"constant":true,"id":7034,"mutability":"constant","name":"_ROLE_72","nameLocation":"16205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7030,"name":"uint256","nodeType":"ElementaryTypeName","src":"16179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4722366482869645213696_by_1","typeString":"int_const 4722366482869645213696"},"id":7033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3732","id":7032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},"src":"16216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4722366482869645213696_by_1","typeString":"int_const 4722366482869645213696"}},"visibility":"internal"},{"constant":true,"id":7039,"mutability":"constant","name":"_ROLE_73","nameLocation":"16255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7035,"name":"uint256","nodeType":"ElementaryTypeName","src":"16229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9444732965739290427392_by_1","typeString":"int_const 9444732965739290427392"},"id":7038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3733","id":7037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"value":"73"},"src":"16266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9444732965739290427392_by_1","typeString":"int_const 9444732965739290427392"}},"visibility":"internal"},{"constant":true,"id":7044,"mutability":"constant","name":"_ROLE_74","nameLocation":"16305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7040,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18889465931478580854784_by_1","typeString":"int_const 18889465931478580854784"},"id":7043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3734","id":7042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_74_by_1","typeString":"int_const 74"},"value":"74"},"src":"16316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_18889465931478580854784_by_1","typeString":"int_const 18889465931478580854784"}},"visibility":"internal"},{"constant":true,"id":7049,"mutability":"constant","name":"_ROLE_75","nameLocation":"16355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7045,"name":"uint256","nodeType":"ElementaryTypeName","src":"16329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_37778931862957161709568_by_1","typeString":"int_const 37778931862957161709568"},"id":7048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3735","id":7047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_75_by_1","typeString":"int_const 75"},"value":"75"},"src":"16366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_37778931862957161709568_by_1","typeString":"int_const 37778931862957161709568"}},"visibility":"internal"},{"constant":true,"id":7054,"mutability":"constant","name":"_ROLE_76","nameLocation":"16405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7050,"name":"uint256","nodeType":"ElementaryTypeName","src":"16379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_75557863725914323419136_by_1","typeString":"int_const 75557863725914323419136"},"id":7053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3736","id":7052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_76_by_1","typeString":"int_const 76"},"value":"76"},"src":"16416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_75557863725914323419136_by_1","typeString":"int_const 75557863725914323419136"}},"visibility":"internal"},{"constant":true,"id":7059,"mutability":"constant","name":"_ROLE_77","nameLocation":"16455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7055,"name":"uint256","nodeType":"ElementaryTypeName","src":"16429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_151115727451828646838272_by_1","typeString":"int_const 151115727451828646838272"},"id":7058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3737","id":7057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_77_by_1","typeString":"int_const 77"},"value":"77"},"src":"16466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_151115727451828646838272_by_1","typeString":"int_const 151115727451828646838272"}},"visibility":"internal"},{"constant":true,"id":7064,"mutability":"constant","name":"_ROLE_78","nameLocation":"16505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7060,"name":"uint256","nodeType":"ElementaryTypeName","src":"16479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_302231454903657293676544_by_1","typeString":"int_const 302231454903657293676544"},"id":7063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3738","id":7062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_78_by_1","typeString":"int_const 78"},"value":"78"},"src":"16516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_302231454903657293676544_by_1","typeString":"int_const 302231454903657293676544"}},"visibility":"internal"},{"constant":true,"id":7069,"mutability":"constant","name":"_ROLE_79","nameLocation":"16555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7065,"name":"uint256","nodeType":"ElementaryTypeName","src":"16529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_604462909807314587353088_by_1","typeString":"int_const 604462909807314587353088"},"id":7068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3739","id":7067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_79_by_1","typeString":"int_const 79"},"value":"79"},"src":"16566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_604462909807314587353088_by_1","typeString":"int_const 604462909807314587353088"}},"visibility":"internal"},{"constant":true,"id":7074,"mutability":"constant","name":"_ROLE_80","nameLocation":"16605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7070,"name":"uint256","nodeType":"ElementaryTypeName","src":"16579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1208925819614629174706176_by_1","typeString":"int_const 1208925819614629174706176"},"id":7073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3830","id":7072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},"src":"16616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1208925819614629174706176_by_1","typeString":"int_const 1208925819614629174706176"}},"visibility":"internal"},{"constant":true,"id":7079,"mutability":"constant","name":"_ROLE_81","nameLocation":"16655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7075,"name":"uint256","nodeType":"ElementaryTypeName","src":"16629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2417851639229258349412352_by_1","typeString":"int_const 2417851639229258349412352"},"id":7078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3831","id":7077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"81"},"src":"16666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2417851639229258349412352_by_1","typeString":"int_const 2417851639229258349412352"}},"visibility":"internal"},{"constant":true,"id":7084,"mutability":"constant","name":"_ROLE_82","nameLocation":"16705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7080,"name":"uint256","nodeType":"ElementaryTypeName","src":"16679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4835703278458516698824704_by_1","typeString":"int_const 4835703278458516698824704"},"id":7083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3832","id":7082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_82_by_1","typeString":"int_const 82"},"value":"82"},"src":"16716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4835703278458516698824704_by_1","typeString":"int_const 4835703278458516698824704"}},"visibility":"internal"},{"constant":true,"id":7089,"mutability":"constant","name":"_ROLE_83","nameLocation":"16755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7085,"name":"uint256","nodeType":"ElementaryTypeName","src":"16729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9671406556917033397649408_by_1","typeString":"int_const 9671406556917033397649408"},"id":7088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3833","id":7087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_83_by_1","typeString":"int_const 83"},"value":"83"},"src":"16766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9671406556917033397649408_by_1","typeString":"int_const 9671406556917033397649408"}},"visibility":"internal"},{"constant":true,"id":7094,"mutability":"constant","name":"_ROLE_84","nameLocation":"16805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7090,"name":"uint256","nodeType":"ElementaryTypeName","src":"16779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_19342813113834066795298816_by_1","typeString":"int_const 19342813113834066795298816"},"id":7093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3834","id":7092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_84_by_1","typeString":"int_const 84"},"value":"84"},"src":"16816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_19342813113834066795298816_by_1","typeString":"int_const 19342813113834066795298816"}},"visibility":"internal"},{"constant":true,"id":7099,"mutability":"constant","name":"_ROLE_85","nameLocation":"16855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7095,"name":"uint256","nodeType":"ElementaryTypeName","src":"16829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_38685626227668133590597632_by_1","typeString":"int_const 38685626227668133590597632"},"id":7098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3835","id":7097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_85_by_1","typeString":"int_const 85"},"value":"85"},"src":"16866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_38685626227668133590597632_by_1","typeString":"int_const 38685626227668133590597632"}},"visibility":"internal"},{"constant":true,"id":7104,"mutability":"constant","name":"_ROLE_86","nameLocation":"16905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7100,"name":"uint256","nodeType":"ElementaryTypeName","src":"16879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_77371252455336267181195264_by_1","typeString":"int_const 77371252455336267181195264"},"id":7103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3836","id":7102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_86_by_1","typeString":"int_const 86"},"value":"86"},"src":"16916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_77371252455336267181195264_by_1","typeString":"int_const 77371252455336267181195264"}},"visibility":"internal"},{"constant":true,"id":7109,"mutability":"constant","name":"_ROLE_87","nameLocation":"16955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7105,"name":"uint256","nodeType":"ElementaryTypeName","src":"16929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_154742504910672534362390528_by_1","typeString":"int_const 154742504910672534362390528"},"id":7108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3837","id":7107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_87_by_1","typeString":"int_const 87"},"value":"87"},"src":"16966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_154742504910672534362390528_by_1","typeString":"int_const 154742504910672534362390528"}},"visibility":"internal"},{"constant":true,"id":7114,"mutability":"constant","name":"_ROLE_88","nameLocation":"17005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"16979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_309485009821345068724781056_by_1","typeString":"int_const 309485009821345068724781056"},"id":7113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3838","id":7112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},"src":"17016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_309485009821345068724781056_by_1","typeString":"int_const 309485009821345068724781056"}},"visibility":"internal"},{"constant":true,"id":7119,"mutability":"constant","name":"_ROLE_89","nameLocation":"17055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7115,"name":"uint256","nodeType":"ElementaryTypeName","src":"17029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_618970019642690137449562112_by_1","typeString":"int_const 618970019642690137449562112"},"id":7118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3839","id":7117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_89_by_1","typeString":"int_const 89"},"value":"89"},"src":"17066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_618970019642690137449562112_by_1","typeString":"int_const 618970019642690137449562112"}},"visibility":"internal"},{"constant":true,"id":7124,"mutability":"constant","name":"_ROLE_90","nameLocation":"17105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7120,"name":"uint256","nodeType":"ElementaryTypeName","src":"17079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1237940039285380274899124224_by_1","typeString":"int_const 1237940039285380274899124224"},"id":7123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3930","id":7122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_90_by_1","typeString":"int_const 90"},"value":"90"},"src":"17116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1237940039285380274899124224_by_1","typeString":"int_const 1237940039285380274899124224"}},"visibility":"internal"},{"constant":true,"id":7129,"mutability":"constant","name":"_ROLE_91","nameLocation":"17155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7125,"name":"uint256","nodeType":"ElementaryTypeName","src":"17129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2475880078570760549798248448_by_1","typeString":"int_const 2475880078570760549798248448"},"id":7128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3931","id":7127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_91_by_1","typeString":"int_const 91"},"value":"91"},"src":"17166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2475880078570760549798248448_by_1","typeString":"int_const 2475880078570760549798248448"}},"visibility":"internal"},{"constant":true,"id":7134,"mutability":"constant","name":"_ROLE_92","nameLocation":"17205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7130,"name":"uint256","nodeType":"ElementaryTypeName","src":"17179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4951760157141521099596496896_by_1","typeString":"int_const 4951760157141521099596496896"},"id":7133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3932","id":7132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_92_by_1","typeString":"int_const 92"},"value":"92"},"src":"17216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4951760157141521099596496896_by_1","typeString":"int_const 4951760157141521099596496896"}},"visibility":"internal"},{"constant":true,"id":7139,"mutability":"constant","name":"_ROLE_93","nameLocation":"17255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7135,"name":"uint256","nodeType":"ElementaryTypeName","src":"17229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9903520314283042199192993792_by_1","typeString":"int_const 9903520314283042199192993792"},"id":7138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3933","id":7137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_93_by_1","typeString":"int_const 93"},"value":"93"},"src":"17266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9903520314283042199192993792_by_1","typeString":"int_const 9903520314283042199192993792"}},"visibility":"internal"},{"constant":true,"id":7144,"mutability":"constant","name":"_ROLE_94","nameLocation":"17305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7140,"name":"uint256","nodeType":"ElementaryTypeName","src":"17279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_19807040628566084398385987584_by_1","typeString":"int_const 19807040628566084398385987584"},"id":7143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3934","id":7142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_94_by_1","typeString":"int_const 94"},"value":"94"},"src":"17316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_19807040628566084398385987584_by_1","typeString":"int_const 19807040628566084398385987584"}},"visibility":"internal"},{"constant":true,"id":7149,"mutability":"constant","name":"_ROLE_95","nameLocation":"17355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7145,"name":"uint256","nodeType":"ElementaryTypeName","src":"17329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"},"id":7148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3935","id":7147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_95_by_1","typeString":"int_const 95"},"value":"95"},"src":"17366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"}},"visibility":"internal"},{"constant":true,"id":7154,"mutability":"constant","name":"_ROLE_96","nameLocation":"17405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7150,"name":"uint256","nodeType":"ElementaryTypeName","src":"17379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"},"id":7153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":7152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"17416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"}},"visibility":"internal"},{"constant":true,"id":7159,"mutability":"constant","name":"_ROLE_97","nameLocation":"17455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7155,"name":"uint256","nodeType":"ElementaryTypeName","src":"17429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_158456325028528675187087900672_by_1","typeString":"int_const 158456325028528675187087900672"},"id":7158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3937","id":7157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},"value":"97"},"src":"17466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_158456325028528675187087900672_by_1","typeString":"int_const 158456325028528675187087900672"}},"visibility":"internal"},{"constant":true,"id":7164,"mutability":"constant","name":"_ROLE_98","nameLocation":"17505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7160,"name":"uint256","nodeType":"ElementaryTypeName","src":"17479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_316912650057057350374175801344_by_1","typeString":"int_const 316912650057057350374175801344"},"id":7163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3938","id":7162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_98_by_1","typeString":"int_const 98"},"value":"98"},"src":"17516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_316912650057057350374175801344_by_1","typeString":"int_const 316912650057057350374175801344"}},"visibility":"internal"},{"constant":true,"id":7169,"mutability":"constant","name":"_ROLE_99","nameLocation":"17555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7165,"name":"uint256","nodeType":"ElementaryTypeName","src":"17529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_633825300114114700748351602688_by_1","typeString":"int_const 633825300114114700748351602688"},"id":7168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3939","id":7167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"},"value":"99"},"src":"17566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_633825300114114700748351602688_by_1","typeString":"int_const 633825300114114700748351602688"}},"visibility":"internal"},{"constant":true,"id":7174,"mutability":"constant","name":"_ROLE_100","nameLocation":"17605:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17579:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7170,"name":"uint256","nodeType":"ElementaryTypeName","src":"17579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1267650600228229401496703205376_by_1","typeString":"int_const 1267650600228229401496703205376"},"id":7173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17617:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313030","id":7172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17622:3:18","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"17617:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1267650600228229401496703205376_by_1","typeString":"int_const 1267650600228229401496703205376"}},"visibility":"internal"},{"constant":true,"id":7179,"mutability":"constant","name":"_ROLE_101","nameLocation":"17657:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17631:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7175,"name":"uint256","nodeType":"ElementaryTypeName","src":"17631:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2535301200456458802993406410752_by_1","typeString":"int_const 2535301200456458802993406410752"},"id":7178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17669:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313031","id":7177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17674:3:18","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"17669:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2535301200456458802993406410752_by_1","typeString":"int_const 2535301200456458802993406410752"}},"visibility":"internal"},{"constant":true,"id":7184,"mutability":"constant","name":"_ROLE_102","nameLocation":"17709:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17683:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7180,"name":"uint256","nodeType":"ElementaryTypeName","src":"17683:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5070602400912917605986812821504_by_1","typeString":"int_const 5070602400912917605986812821504"},"id":7183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17721:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313032","id":7182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17726:3:18","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"17721:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5070602400912917605986812821504_by_1","typeString":"int_const 5070602400912917605986812821504"}},"visibility":"internal"},{"constant":true,"id":7189,"mutability":"constant","name":"_ROLE_103","nameLocation":"17761:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17735:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7185,"name":"uint256","nodeType":"ElementaryTypeName","src":"17735:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10141204801825835211973625643008_by_1","typeString":"int_const 10141204801825835211973625643008"},"id":7188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17773:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313033","id":7187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17778:3:18","typeDescriptions":{"typeIdentifier":"t_rational_103_by_1","typeString":"int_const 103"},"value":"103"},"src":"17773:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10141204801825835211973625643008_by_1","typeString":"int_const 10141204801825835211973625643008"}},"visibility":"internal"},{"constant":true,"id":7194,"mutability":"constant","name":"_ROLE_104","nameLocation":"17813:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17787:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7190,"name":"uint256","nodeType":"ElementaryTypeName","src":"17787:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_20282409603651670423947251286016_by_1","typeString":"int_const 20282409603651670423947251286016"},"id":7193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17825:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313034","id":7192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17830:3:18","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},"src":"17825:8:18","typeDescriptions":{"typeIdentifier":"t_rational_20282409603651670423947251286016_by_1","typeString":"int_const 20282409603651670423947251286016"}},"visibility":"internal"},{"constant":true,"id":7199,"mutability":"constant","name":"_ROLE_105","nameLocation":"17865:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17839:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7195,"name":"uint256","nodeType":"ElementaryTypeName","src":"17839:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_40564819207303340847894502572032_by_1","typeString":"int_const 40564819207303340847894502572032"},"id":7198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17877:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313035","id":7197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17882:3:18","typeDescriptions":{"typeIdentifier":"t_rational_105_by_1","typeString":"int_const 105"},"value":"105"},"src":"17877:8:18","typeDescriptions":{"typeIdentifier":"t_rational_40564819207303340847894502572032_by_1","typeString":"int_const 40564819207303340847894502572032"}},"visibility":"internal"},{"constant":true,"id":7204,"mutability":"constant","name":"_ROLE_106","nameLocation":"17917:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17891:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7200,"name":"uint256","nodeType":"ElementaryTypeName","src":"17891:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_81129638414606681695789005144064_by_1","typeString":"int_const 81129638414606681695789005144064"},"id":7203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17929:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313036","id":7202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17934:3:18","typeDescriptions":{"typeIdentifier":"t_rational_106_by_1","typeString":"int_const 106"},"value":"106"},"src":"17929:8:18","typeDescriptions":{"typeIdentifier":"t_rational_81129638414606681695789005144064_by_1","typeString":"int_const 81129638414606681695789005144064"}},"visibility":"internal"},{"constant":true,"id":7209,"mutability":"constant","name":"_ROLE_107","nameLocation":"17969:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17943:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7205,"name":"uint256","nodeType":"ElementaryTypeName","src":"17943:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_162259276829213363391578010288128_by_1","typeString":"int_const 1622...(25 digits omitted)...8128"},"id":7208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17981:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313037","id":7207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17986:3:18","typeDescriptions":{"typeIdentifier":"t_rational_107_by_1","typeString":"int_const 107"},"value":"107"},"src":"17981:8:18","typeDescriptions":{"typeIdentifier":"t_rational_162259276829213363391578010288128_by_1","typeString":"int_const 1622...(25 digits omitted)...8128"}},"visibility":"internal"},{"constant":true,"id":7214,"mutability":"constant","name":"_ROLE_108","nameLocation":"18021:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17995:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7210,"name":"uint256","nodeType":"ElementaryTypeName","src":"17995:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_324518553658426726783156020576256_by_1","typeString":"int_const 3245...(25 digits omitted)...6256"},"id":7213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18033:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313038","id":7212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18038:3:18","typeDescriptions":{"typeIdentifier":"t_rational_108_by_1","typeString":"int_const 108"},"value":"108"},"src":"18033:8:18","typeDescriptions":{"typeIdentifier":"t_rational_324518553658426726783156020576256_by_1","typeString":"int_const 3245...(25 digits omitted)...6256"}},"visibility":"internal"},{"constant":true,"id":7219,"mutability":"constant","name":"_ROLE_109","nameLocation":"18073:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18047:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7215,"name":"uint256","nodeType":"ElementaryTypeName","src":"18047:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_649037107316853453566312041152512_by_1","typeString":"int_const 6490...(25 digits omitted)...2512"},"id":7218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18085:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313039","id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18090:3:18","typeDescriptions":{"typeIdentifier":"t_rational_109_by_1","typeString":"int_const 109"},"value":"109"},"src":"18085:8:18","typeDescriptions":{"typeIdentifier":"t_rational_649037107316853453566312041152512_by_1","typeString":"int_const 6490...(25 digits omitted)...2512"}},"visibility":"internal"},{"constant":true,"id":7224,"mutability":"constant","name":"_ROLE_110","nameLocation":"18125:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18099:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7220,"name":"uint256","nodeType":"ElementaryTypeName","src":"18099:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1298074214633706907132624082305024_by_1","typeString":"int_const 1298...(26 digits omitted)...5024"},"id":7223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18137:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313130","id":7222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18142:3:18","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"},"src":"18137:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1298074214633706907132624082305024_by_1","typeString":"int_const 1298...(26 digits omitted)...5024"}},"visibility":"internal"},{"constant":true,"id":7229,"mutability":"constant","name":"_ROLE_111","nameLocation":"18177:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18151:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7225,"name":"uint256","nodeType":"ElementaryTypeName","src":"18151:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2596148429267413814265248164610048_by_1","typeString":"int_const 2596...(26 digits omitted)...0048"},"id":7228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18189:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313131","id":7227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18194:3:18","typeDescriptions":{"typeIdentifier":"t_rational_111_by_1","typeString":"int_const 111"},"value":"111"},"src":"18189:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2596148429267413814265248164610048_by_1","typeString":"int_const 2596...(26 digits omitted)...0048"}},"visibility":"internal"},{"constant":true,"id":7234,"mutability":"constant","name":"_ROLE_112","nameLocation":"18229:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18203:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7230,"name":"uint256","nodeType":"ElementaryTypeName","src":"18203:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"},"id":7233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18241:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313132","id":7232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18246:3:18","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},"src":"18241:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"}},"visibility":"internal"},{"constant":true,"id":7239,"mutability":"constant","name":"_ROLE_113","nameLocation":"18281:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18255:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7235,"name":"uint256","nodeType":"ElementaryTypeName","src":"18255:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10384593717069655257060992658440192_by_1","typeString":"int_const 1038...(27 digits omitted)...0192"},"id":7238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18293:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313133","id":7237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18298:3:18","typeDescriptions":{"typeIdentifier":"t_rational_113_by_1","typeString":"int_const 113"},"value":"113"},"src":"18293:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10384593717069655257060992658440192_by_1","typeString":"int_const 1038...(27 digits omitted)...0192"}},"visibility":"internal"},{"constant":true,"id":7244,"mutability":"constant","name":"_ROLE_114","nameLocation":"18333:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18307:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7240,"name":"uint256","nodeType":"ElementaryTypeName","src":"18307:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_20769187434139310514121985316880384_by_1","typeString":"int_const 2076...(27 digits omitted)...0384"},"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18345:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313134","id":7242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18350:3:18","typeDescriptions":{"typeIdentifier":"t_rational_114_by_1","typeString":"int_const 114"},"value":"114"},"src":"18345:8:18","typeDescriptions":{"typeIdentifier":"t_rational_20769187434139310514121985316880384_by_1","typeString":"int_const 2076...(27 digits omitted)...0384"}},"visibility":"internal"},{"constant":true,"id":7249,"mutability":"constant","name":"_ROLE_115","nameLocation":"18385:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18359:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7245,"name":"uint256","nodeType":"ElementaryTypeName","src":"18359:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_41538374868278621028243970633760768_by_1","typeString":"int_const 4153...(27 digits omitted)...0768"},"id":7248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18397:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313135","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18402:3:18","typeDescriptions":{"typeIdentifier":"t_rational_115_by_1","typeString":"int_const 115"},"value":"115"},"src":"18397:8:18","typeDescriptions":{"typeIdentifier":"t_rational_41538374868278621028243970633760768_by_1","typeString":"int_const 4153...(27 digits omitted)...0768"}},"visibility":"internal"},{"constant":true,"id":7254,"mutability":"constant","name":"_ROLE_116","nameLocation":"18437:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18411:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7250,"name":"uint256","nodeType":"ElementaryTypeName","src":"18411:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_83076749736557242056487941267521536_by_1","typeString":"int_const 8307...(27 digits omitted)...1536"},"id":7253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18449:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313136","id":7252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18454:3:18","typeDescriptions":{"typeIdentifier":"t_rational_116_by_1","typeString":"int_const 116"},"value":"116"},"src":"18449:8:18","typeDescriptions":{"typeIdentifier":"t_rational_83076749736557242056487941267521536_by_1","typeString":"int_const 8307...(27 digits omitted)...1536"}},"visibility":"internal"},{"constant":true,"id":7259,"mutability":"constant","name":"_ROLE_117","nameLocation":"18489:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18463:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7255,"name":"uint256","nodeType":"ElementaryTypeName","src":"18463:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_166153499473114484112975882535043072_by_1","typeString":"int_const 1661...(28 digits omitted)...3072"},"id":7258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18501:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313137","id":7257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18506:3:18","typeDescriptions":{"typeIdentifier":"t_rational_117_by_1","typeString":"int_const 117"},"value":"117"},"src":"18501:8:18","typeDescriptions":{"typeIdentifier":"t_rational_166153499473114484112975882535043072_by_1","typeString":"int_const 1661...(28 digits omitted)...3072"}},"visibility":"internal"},{"constant":true,"id":7264,"mutability":"constant","name":"_ROLE_118","nameLocation":"18541:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18515:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7260,"name":"uint256","nodeType":"ElementaryTypeName","src":"18515:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_332306998946228968225951765070086144_by_1","typeString":"int_const 3323...(28 digits omitted)...6144"},"id":7263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18553:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313138","id":7262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18558:3:18","typeDescriptions":{"typeIdentifier":"t_rational_118_by_1","typeString":"int_const 118"},"value":"118"},"src":"18553:8:18","typeDescriptions":{"typeIdentifier":"t_rational_332306998946228968225951765070086144_by_1","typeString":"int_const 3323...(28 digits omitted)...6144"}},"visibility":"internal"},{"constant":true,"id":7269,"mutability":"constant","name":"_ROLE_119","nameLocation":"18593:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18567:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7265,"name":"uint256","nodeType":"ElementaryTypeName","src":"18567:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_664613997892457936451903530140172288_by_1","typeString":"int_const 6646...(28 digits omitted)...2288"},"id":7268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18605:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313139","id":7267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18610:3:18","typeDescriptions":{"typeIdentifier":"t_rational_119_by_1","typeString":"int_const 119"},"value":"119"},"src":"18605:8:18","typeDescriptions":{"typeIdentifier":"t_rational_664613997892457936451903530140172288_by_1","typeString":"int_const 6646...(28 digits omitted)...2288"}},"visibility":"internal"},{"constant":true,"id":7274,"mutability":"constant","name":"_ROLE_120","nameLocation":"18645:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18619:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7270,"name":"uint256","nodeType":"ElementaryTypeName","src":"18619:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1329227995784915872903807060280344576_by_1","typeString":"int_const 1329...(29 digits omitted)...4576"},"id":7273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18657:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313230","id":7272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18662:3:18","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"18657:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1329227995784915872903807060280344576_by_1","typeString":"int_const 1329...(29 digits omitted)...4576"}},"visibility":"internal"},{"constant":true,"id":7279,"mutability":"constant","name":"_ROLE_121","nameLocation":"18697:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18671:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7275,"name":"uint256","nodeType":"ElementaryTypeName","src":"18671:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2658455991569831745807614120560689152_by_1","typeString":"int_const 2658...(29 digits omitted)...9152"},"id":7278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18709:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313231","id":7277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18714:3:18","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"src":"18709:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2658455991569831745807614120560689152_by_1","typeString":"int_const 2658...(29 digits omitted)...9152"}},"visibility":"internal"},{"constant":true,"id":7284,"mutability":"constant","name":"_ROLE_122","nameLocation":"18749:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18723:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7280,"name":"uint256","nodeType":"ElementaryTypeName","src":"18723:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5316911983139663491615228241121378304_by_1","typeString":"int_const 5316...(29 digits omitted)...8304"},"id":7283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18761:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313232","id":7282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18766:3:18","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"},"src":"18761:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5316911983139663491615228241121378304_by_1","typeString":"int_const 5316...(29 digits omitted)...8304"}},"visibility":"internal"},{"constant":true,"id":7289,"mutability":"constant","name":"_ROLE_123","nameLocation":"18801:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18775:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7285,"name":"uint256","nodeType":"ElementaryTypeName","src":"18775:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10633823966279326983230456482242756608_by_1","typeString":"int_const 1063...(30 digits omitted)...6608"},"id":7288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18813:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313233","id":7287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18818:3:18","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"src":"18813:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10633823966279326983230456482242756608_by_1","typeString":"int_const 1063...(30 digits omitted)...6608"}},"visibility":"internal"},{"constant":true,"id":7294,"mutability":"constant","name":"_ROLE_124","nameLocation":"18853:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18827:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7290,"name":"uint256","nodeType":"ElementaryTypeName","src":"18827:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_21267647932558653966460912964485513216_by_1","typeString":"int_const 2126...(30 digits omitted)...3216"},"id":7293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18865:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313234","id":7292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18870:3:18","typeDescriptions":{"typeIdentifier":"t_rational_124_by_1","typeString":"int_const 124"},"value":"124"},"src":"18865:8:18","typeDescriptions":{"typeIdentifier":"t_rational_21267647932558653966460912964485513216_by_1","typeString":"int_const 2126...(30 digits omitted)...3216"}},"visibility":"internal"},{"constant":true,"id":7299,"mutability":"constant","name":"_ROLE_125","nameLocation":"18905:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18879:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7295,"name":"uint256","nodeType":"ElementaryTypeName","src":"18879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_42535295865117307932921825928971026432_by_1","typeString":"int_const 4253...(30 digits omitted)...6432"},"id":7298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18917:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313235","id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18922:3:18","typeDescriptions":{"typeIdentifier":"t_rational_125_by_1","typeString":"int_const 125"},"value":"125"},"src":"18917:8:18","typeDescriptions":{"typeIdentifier":"t_rational_42535295865117307932921825928971026432_by_1","typeString":"int_const 4253...(30 digits omitted)...6432"}},"visibility":"internal"},{"constant":true,"id":7304,"mutability":"constant","name":"_ROLE_126","nameLocation":"18957:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18931:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7300,"name":"uint256","nodeType":"ElementaryTypeName","src":"18931:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_85070591730234615865843651857942052864_by_1","typeString":"int_const 8507...(30 digits omitted)...2864"},"id":7303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18969:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313236","id":7302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18974:3:18","typeDescriptions":{"typeIdentifier":"t_rational_126_by_1","typeString":"int_const 126"},"value":"126"},"src":"18969:8:18","typeDescriptions":{"typeIdentifier":"t_rational_85070591730234615865843651857942052864_by_1","typeString":"int_const 8507...(30 digits omitted)...2864"}},"visibility":"internal"},{"constant":true,"id":7309,"mutability":"constant","name":"_ROLE_127","nameLocation":"19009:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18983:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7305,"name":"uint256","nodeType":"ElementaryTypeName","src":"18983:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"id":7308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19021:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313237","id":7307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19026:3:18","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"src":"19021:8:18","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"}},"visibility":"internal"},{"constant":true,"id":7314,"mutability":"constant","name":"_ROLE_128","nameLocation":"19061:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19035:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7310,"name":"uint256","nodeType":"ElementaryTypeName","src":"19035:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":7313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19073:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":7312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19078:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"19073:8:18","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"internal"},{"constant":true,"id":7319,"mutability":"constant","name":"_ROLE_129","nameLocation":"19113:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19087:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7315,"name":"uint256","nodeType":"ElementaryTypeName","src":"19087:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_680564733841876926926749214863536422912_by_1","typeString":"int_const 6805...(31 digits omitted)...2912"},"id":7318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19125:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313239","id":7317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19130:3:18","typeDescriptions":{"typeIdentifier":"t_rational_129_by_1","typeString":"int_const 129"},"value":"129"},"src":"19125:8:18","typeDescriptions":{"typeIdentifier":"t_rational_680564733841876926926749214863536422912_by_1","typeString":"int_const 6805...(31 digits omitted)...2912"}},"visibility":"internal"},{"constant":true,"id":7324,"mutability":"constant","name":"_ROLE_130","nameLocation":"19165:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19139:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7320,"name":"uint256","nodeType":"ElementaryTypeName","src":"19139:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1361129467683753853853498429727072845824_by_1","typeString":"int_const 1361...(32 digits omitted)...5824"},"id":7323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19177:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313330","id":7322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19182:3:18","typeDescriptions":{"typeIdentifier":"t_rational_130_by_1","typeString":"int_const 130"},"value":"130"},"src":"19177:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1361129467683753853853498429727072845824_by_1","typeString":"int_const 1361...(32 digits omitted)...5824"}},"visibility":"internal"},{"constant":true,"id":7329,"mutability":"constant","name":"_ROLE_131","nameLocation":"19217:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19191:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7325,"name":"uint256","nodeType":"ElementaryTypeName","src":"19191:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2722258935367507707706996859454145691648_by_1","typeString":"int_const 2722...(32 digits omitted)...1648"},"id":7328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19229:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313331","id":7327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19234:3:18","typeDescriptions":{"typeIdentifier":"t_rational_131_by_1","typeString":"int_const 131"},"value":"131"},"src":"19229:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2722258935367507707706996859454145691648_by_1","typeString":"int_const 2722...(32 digits omitted)...1648"}},"visibility":"internal"},{"constant":true,"id":7334,"mutability":"constant","name":"_ROLE_132","nameLocation":"19269:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19243:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7330,"name":"uint256","nodeType":"ElementaryTypeName","src":"19243:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5444517870735015415413993718908291383296_by_1","typeString":"int_const 5444...(32 digits omitted)...3296"},"id":7333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19281:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313332","id":7332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19286:3:18","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"132"},"src":"19281:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5444517870735015415413993718908291383296_by_1","typeString":"int_const 5444...(32 digits omitted)...3296"}},"visibility":"internal"},{"constant":true,"id":7339,"mutability":"constant","name":"_ROLE_133","nameLocation":"19321:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19295:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7335,"name":"uint256","nodeType":"ElementaryTypeName","src":"19295:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10889035741470030830827987437816582766592_by_1","typeString":"int_const 1088...(33 digits omitted)...6592"},"id":7338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19333:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313333","id":7337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19338:3:18","typeDescriptions":{"typeIdentifier":"t_rational_133_by_1","typeString":"int_const 133"},"value":"133"},"src":"19333:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10889035741470030830827987437816582766592_by_1","typeString":"int_const 1088...(33 digits omitted)...6592"}},"visibility":"internal"},{"constant":true,"id":7344,"mutability":"constant","name":"_ROLE_134","nameLocation":"19373:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19347:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7340,"name":"uint256","nodeType":"ElementaryTypeName","src":"19347:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_21778071482940061661655974875633165533184_by_1","typeString":"int_const 2177...(33 digits omitted)...3184"},"id":7343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19385:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313334","id":7342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19390:3:18","typeDescriptions":{"typeIdentifier":"t_rational_134_by_1","typeString":"int_const 134"},"value":"134"},"src":"19385:8:18","typeDescriptions":{"typeIdentifier":"t_rational_21778071482940061661655974875633165533184_by_1","typeString":"int_const 2177...(33 digits omitted)...3184"}},"visibility":"internal"},{"constant":true,"id":7349,"mutability":"constant","name":"_ROLE_135","nameLocation":"19425:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19399:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7345,"name":"uint256","nodeType":"ElementaryTypeName","src":"19399:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_43556142965880123323311949751266331066368_by_1","typeString":"int_const 4355...(33 digits omitted)...6368"},"id":7348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19437:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313335","id":7347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19442:3:18","typeDescriptions":{"typeIdentifier":"t_rational_135_by_1","typeString":"int_const 135"},"value":"135"},"src":"19437:8:18","typeDescriptions":{"typeIdentifier":"t_rational_43556142965880123323311949751266331066368_by_1","typeString":"int_const 4355...(33 digits omitted)...6368"}},"visibility":"internal"},{"constant":true,"id":7354,"mutability":"constant","name":"_ROLE_136","nameLocation":"19477:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19451:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7350,"name":"uint256","nodeType":"ElementaryTypeName","src":"19451:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_87112285931760246646623899502532662132736_by_1","typeString":"int_const 8711...(33 digits omitted)...2736"},"id":7353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19489:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313336","id":7352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19494:3:18","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},"src":"19489:8:18","typeDescriptions":{"typeIdentifier":"t_rational_87112285931760246646623899502532662132736_by_1","typeString":"int_const 8711...(33 digits omitted)...2736"}},"visibility":"internal"},{"constant":true,"id":7359,"mutability":"constant","name":"_ROLE_137","nameLocation":"19529:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19503:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7355,"name":"uint256","nodeType":"ElementaryTypeName","src":"19503:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_174224571863520493293247799005065324265472_by_1","typeString":"int_const 1742...(34 digits omitted)...5472"},"id":7358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19541:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313337","id":7357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19546:3:18","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},"src":"19541:8:18","typeDescriptions":{"typeIdentifier":"t_rational_174224571863520493293247799005065324265472_by_1","typeString":"int_const 1742...(34 digits omitted)...5472"}},"visibility":"internal"},{"constant":true,"id":7364,"mutability":"constant","name":"_ROLE_138","nameLocation":"19581:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19555:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7360,"name":"uint256","nodeType":"ElementaryTypeName","src":"19555:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_348449143727040986586495598010130648530944_by_1","typeString":"int_const 3484...(34 digits omitted)...0944"},"id":7363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19593:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313338","id":7362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19598:3:18","typeDescriptions":{"typeIdentifier":"t_rational_138_by_1","typeString":"int_const 138"},"value":"138"},"src":"19593:8:18","typeDescriptions":{"typeIdentifier":"t_rational_348449143727040986586495598010130648530944_by_1","typeString":"int_const 3484...(34 digits omitted)...0944"}},"visibility":"internal"},{"constant":true,"id":7369,"mutability":"constant","name":"_ROLE_139","nameLocation":"19633:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19607:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7365,"name":"uint256","nodeType":"ElementaryTypeName","src":"19607:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_696898287454081973172991196020261297061888_by_1","typeString":"int_const 6968...(34 digits omitted)...1888"},"id":7368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19645:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313339","id":7367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19650:3:18","typeDescriptions":{"typeIdentifier":"t_rational_139_by_1","typeString":"int_const 139"},"value":"139"},"src":"19645:8:18","typeDescriptions":{"typeIdentifier":"t_rational_696898287454081973172991196020261297061888_by_1","typeString":"int_const 6968...(34 digits omitted)...1888"}},"visibility":"internal"},{"constant":true,"id":7374,"mutability":"constant","name":"_ROLE_140","nameLocation":"19685:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19659:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7370,"name":"uint256","nodeType":"ElementaryTypeName","src":"19659:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1393796574908163946345982392040522594123776_by_1","typeString":"int_const 1393...(35 digits omitted)...3776"},"id":7373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313430","id":7372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19702:3:18","typeDescriptions":{"typeIdentifier":"t_rational_140_by_1","typeString":"int_const 140"},"value":"140"},"src":"19697:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1393796574908163946345982392040522594123776_by_1","typeString":"int_const 1393...(35 digits omitted)...3776"}},"visibility":"internal"},{"constant":true,"id":7379,"mutability":"constant","name":"_ROLE_141","nameLocation":"19737:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19711:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7375,"name":"uint256","nodeType":"ElementaryTypeName","src":"19711:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2787593149816327892691964784081045188247552_by_1","typeString":"int_const 2787...(35 digits omitted)...7552"},"id":7378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19749:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313431","id":7377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19754:3:18","typeDescriptions":{"typeIdentifier":"t_rational_141_by_1","typeString":"int_const 141"},"value":"141"},"src":"19749:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2787593149816327892691964784081045188247552_by_1","typeString":"int_const 2787...(35 digits omitted)...7552"}},"visibility":"internal"},{"constant":true,"id":7384,"mutability":"constant","name":"_ROLE_142","nameLocation":"19789:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19763:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7380,"name":"uint256","nodeType":"ElementaryTypeName","src":"19763:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5575186299632655785383929568162090376495104_by_1","typeString":"int_const 5575...(35 digits omitted)...5104"},"id":7383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19801:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313432","id":7382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19806:3:18","typeDescriptions":{"typeIdentifier":"t_rational_142_by_1","typeString":"int_const 142"},"value":"142"},"src":"19801:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5575186299632655785383929568162090376495104_by_1","typeString":"int_const 5575...(35 digits omitted)...5104"}},"visibility":"internal"},{"constant":true,"id":7389,"mutability":"constant","name":"_ROLE_143","nameLocation":"19841:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19815:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7385,"name":"uint256","nodeType":"ElementaryTypeName","src":"19815:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11150372599265311570767859136324180752990208_by_1","typeString":"int_const 1115...(36 digits omitted)...0208"},"id":7388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19853:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313433","id":7387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19858:3:18","typeDescriptions":{"typeIdentifier":"t_rational_143_by_1","typeString":"int_const 143"},"value":"143"},"src":"19853:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11150372599265311570767859136324180752990208_by_1","typeString":"int_const 1115...(36 digits omitted)...0208"}},"visibility":"internal"},{"constant":true,"id":7394,"mutability":"constant","name":"_ROLE_144","nameLocation":"19893:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19867:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7390,"name":"uint256","nodeType":"ElementaryTypeName","src":"19867:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_22300745198530623141535718272648361505980416_by_1","typeString":"int_const 2230...(36 digits omitted)...0416"},"id":7393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19905:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313434","id":7392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19910:3:18","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},"src":"19905:8:18","typeDescriptions":{"typeIdentifier":"t_rational_22300745198530623141535718272648361505980416_by_1","typeString":"int_const 2230...(36 digits omitted)...0416"}},"visibility":"internal"},{"constant":true,"id":7399,"mutability":"constant","name":"_ROLE_145","nameLocation":"19945:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19919:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7395,"name":"uint256","nodeType":"ElementaryTypeName","src":"19919:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_44601490397061246283071436545296723011960832_by_1","typeString":"int_const 4460...(36 digits omitted)...0832"},"id":7398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19957:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313435","id":7397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19962:3:18","typeDescriptions":{"typeIdentifier":"t_rational_145_by_1","typeString":"int_const 145"},"value":"145"},"src":"19957:8:18","typeDescriptions":{"typeIdentifier":"t_rational_44601490397061246283071436545296723011960832_by_1","typeString":"int_const 4460...(36 digits omitted)...0832"}},"visibility":"internal"},{"constant":true,"id":7404,"mutability":"constant","name":"_ROLE_146","nameLocation":"19997:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19971:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7400,"name":"uint256","nodeType":"ElementaryTypeName","src":"19971:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_89202980794122492566142873090593446023921664_by_1","typeString":"int_const 8920...(36 digits omitted)...1664"},"id":7403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20009:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313436","id":7402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20014:3:18","typeDescriptions":{"typeIdentifier":"t_rational_146_by_1","typeString":"int_const 146"},"value":"146"},"src":"20009:8:18","typeDescriptions":{"typeIdentifier":"t_rational_89202980794122492566142873090593446023921664_by_1","typeString":"int_const 8920...(36 digits omitted)...1664"}},"visibility":"internal"},{"constant":true,"id":7409,"mutability":"constant","name":"_ROLE_147","nameLocation":"20049:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20023:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7405,"name":"uint256","nodeType":"ElementaryTypeName","src":"20023:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_178405961588244985132285746181186892047843328_by_1","typeString":"int_const 1784...(37 digits omitted)...3328"},"id":7408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20061:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313437","id":7407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20066:3:18","typeDescriptions":{"typeIdentifier":"t_rational_147_by_1","typeString":"int_const 147"},"value":"147"},"src":"20061:8:18","typeDescriptions":{"typeIdentifier":"t_rational_178405961588244985132285746181186892047843328_by_1","typeString":"int_const 1784...(37 digits omitted)...3328"}},"visibility":"internal"},{"constant":true,"id":7414,"mutability":"constant","name":"_ROLE_148","nameLocation":"20101:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20075:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7410,"name":"uint256","nodeType":"ElementaryTypeName","src":"20075:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_356811923176489970264571492362373784095686656_by_1","typeString":"int_const 3568...(37 digits omitted)...6656"},"id":7413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20113:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313438","id":7412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20118:3:18","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"148"},"src":"20113:8:18","typeDescriptions":{"typeIdentifier":"t_rational_356811923176489970264571492362373784095686656_by_1","typeString":"int_const 3568...(37 digits omitted)...6656"}},"visibility":"internal"},{"constant":true,"id":7419,"mutability":"constant","name":"_ROLE_149","nameLocation":"20153:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20127:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7415,"name":"uint256","nodeType":"ElementaryTypeName","src":"20127:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_713623846352979940529142984724747568191373312_by_1","typeString":"int_const 7136...(37 digits omitted)...3312"},"id":7418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20165:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313439","id":7417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20170:3:18","typeDescriptions":{"typeIdentifier":"t_rational_149_by_1","typeString":"int_const 149"},"value":"149"},"src":"20165:8:18","typeDescriptions":{"typeIdentifier":"t_rational_713623846352979940529142984724747568191373312_by_1","typeString":"int_const 7136...(37 digits omitted)...3312"}},"visibility":"internal"},{"constant":true,"id":7424,"mutability":"constant","name":"_ROLE_150","nameLocation":"20205:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20179:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7420,"name":"uint256","nodeType":"ElementaryTypeName","src":"20179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1427247692705959881058285969449495136382746624_by_1","typeString":"int_const 1427...(38 digits omitted)...6624"},"id":7423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20217:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313530","id":7422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20222:3:18","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},"src":"20217:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1427247692705959881058285969449495136382746624_by_1","typeString":"int_const 1427...(38 digits omitted)...6624"}},"visibility":"internal"},{"constant":true,"id":7429,"mutability":"constant","name":"_ROLE_151","nameLocation":"20257:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20231:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7425,"name":"uint256","nodeType":"ElementaryTypeName","src":"20231:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2854495385411919762116571938898990272765493248_by_1","typeString":"int_const 2854...(38 digits omitted)...3248"},"id":7428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20269:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313531","id":7427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20274:3:18","typeDescriptions":{"typeIdentifier":"t_rational_151_by_1","typeString":"int_const 151"},"value":"151"},"src":"20269:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2854495385411919762116571938898990272765493248_by_1","typeString":"int_const 2854...(38 digits omitted)...3248"}},"visibility":"internal"},{"constant":true,"id":7434,"mutability":"constant","name":"_ROLE_152","nameLocation":"20309:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20283:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7430,"name":"uint256","nodeType":"ElementaryTypeName","src":"20283:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5708990770823839524233143877797980545530986496_by_1","typeString":"int_const 5708...(38 digits omitted)...6496"},"id":7433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20321:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313532","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20326:3:18","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},"src":"20321:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5708990770823839524233143877797980545530986496_by_1","typeString":"int_const 5708...(38 digits omitted)...6496"}},"visibility":"internal"},{"constant":true,"id":7439,"mutability":"constant","name":"_ROLE_153","nameLocation":"20361:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20335:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7435,"name":"uint256","nodeType":"ElementaryTypeName","src":"20335:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11417981541647679048466287755595961091061972992_by_1","typeString":"int_const 1141...(39 digits omitted)...2992"},"id":7438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20373:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313533","id":7437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20378:3:18","typeDescriptions":{"typeIdentifier":"t_rational_153_by_1","typeString":"int_const 153"},"value":"153"},"src":"20373:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11417981541647679048466287755595961091061972992_by_1","typeString":"int_const 1141...(39 digits omitted)...2992"}},"visibility":"internal"},{"constant":true,"id":7444,"mutability":"constant","name":"_ROLE_154","nameLocation":"20413:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20387:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7440,"name":"uint256","nodeType":"ElementaryTypeName","src":"20387:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_22835963083295358096932575511191922182123945984_by_1","typeString":"int_const 2283...(39 digits omitted)...5984"},"id":7443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20425:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313534","id":7442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20430:3:18","typeDescriptions":{"typeIdentifier":"t_rational_154_by_1","typeString":"int_const 154"},"value":"154"},"src":"20425:8:18","typeDescriptions":{"typeIdentifier":"t_rational_22835963083295358096932575511191922182123945984_by_1","typeString":"int_const 2283...(39 digits omitted)...5984"}},"visibility":"internal"},{"constant":true,"id":7449,"mutability":"constant","name":"_ROLE_155","nameLocation":"20465:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20439:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7445,"name":"uint256","nodeType":"ElementaryTypeName","src":"20439:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_45671926166590716193865151022383844364247891968_by_1","typeString":"int_const 4567...(39 digits omitted)...1968"},"id":7448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20477:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313535","id":7447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20482:3:18","typeDescriptions":{"typeIdentifier":"t_rational_155_by_1","typeString":"int_const 155"},"value":"155"},"src":"20477:8:18","typeDescriptions":{"typeIdentifier":"t_rational_45671926166590716193865151022383844364247891968_by_1","typeString":"int_const 4567...(39 digits omitted)...1968"}},"visibility":"internal"},{"constant":true,"id":7454,"mutability":"constant","name":"_ROLE_156","nameLocation":"20517:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20491:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7450,"name":"uint256","nodeType":"ElementaryTypeName","src":"20491:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_91343852333181432387730302044767688728495783936_by_1","typeString":"int_const 9134...(39 digits omitted)...3936"},"id":7453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20529:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313536","id":7452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20534:3:18","typeDescriptions":{"typeIdentifier":"t_rational_156_by_1","typeString":"int_const 156"},"value":"156"},"src":"20529:8:18","typeDescriptions":{"typeIdentifier":"t_rational_91343852333181432387730302044767688728495783936_by_1","typeString":"int_const 9134...(39 digits omitted)...3936"}},"visibility":"internal"},{"constant":true,"id":7459,"mutability":"constant","name":"_ROLE_157","nameLocation":"20569:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20543:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7455,"name":"uint256","nodeType":"ElementaryTypeName","src":"20543:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_182687704666362864775460604089535377456991567872_by_1","typeString":"int_const 1826...(40 digits omitted)...7872"},"id":7458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20581:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313537","id":7457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20586:3:18","typeDescriptions":{"typeIdentifier":"t_rational_157_by_1","typeString":"int_const 157"},"value":"157"},"src":"20581:8:18","typeDescriptions":{"typeIdentifier":"t_rational_182687704666362864775460604089535377456991567872_by_1","typeString":"int_const 1826...(40 digits omitted)...7872"}},"visibility":"internal"},{"constant":true,"id":7464,"mutability":"constant","name":"_ROLE_158","nameLocation":"20621:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20595:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7460,"name":"uint256","nodeType":"ElementaryTypeName","src":"20595:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_365375409332725729550921208179070754913983135744_by_1","typeString":"int_const 3653...(40 digits omitted)...5744"},"id":7463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20633:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313538","id":7462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20638:3:18","typeDescriptions":{"typeIdentifier":"t_rational_158_by_1","typeString":"int_const 158"},"value":"158"},"src":"20633:8:18","typeDescriptions":{"typeIdentifier":"t_rational_365375409332725729550921208179070754913983135744_by_1","typeString":"int_const 3653...(40 digits omitted)...5744"}},"visibility":"internal"},{"constant":true,"id":7469,"mutability":"constant","name":"_ROLE_159","nameLocation":"20673:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20647:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7465,"name":"uint256","nodeType":"ElementaryTypeName","src":"20647:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_730750818665451459101842416358141509827966271488_by_1","typeString":"int_const 7307...(40 digits omitted)...1488"},"id":7468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20685:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313539","id":7467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20690:3:18","typeDescriptions":{"typeIdentifier":"t_rational_159_by_1","typeString":"int_const 159"},"value":"159"},"src":"20685:8:18","typeDescriptions":{"typeIdentifier":"t_rational_730750818665451459101842416358141509827966271488_by_1","typeString":"int_const 7307...(40 digits omitted)...1488"}},"visibility":"internal"},{"constant":true,"id":7474,"mutability":"constant","name":"_ROLE_160","nameLocation":"20725:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20699:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7470,"name":"uint256","nodeType":"ElementaryTypeName","src":"20699:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542976_by_1","typeString":"int_const 1461...(41 digits omitted)...2976"},"id":7473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20737:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313630","id":7472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20742:3:18","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"src":"20737:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542976_by_1","typeString":"int_const 1461...(41 digits omitted)...2976"}},"visibility":"internal"},{"constant":true,"id":7479,"mutability":"constant","name":"_ROLE_161","nameLocation":"20777:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20751:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7475,"name":"uint256","nodeType":"ElementaryTypeName","src":"20751:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2923003274661805836407369665432566039311865085952_by_1","typeString":"int_const 2923...(41 digits omitted)...5952"},"id":7478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20789:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313631","id":7477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20794:3:18","typeDescriptions":{"typeIdentifier":"t_rational_161_by_1","typeString":"int_const 161"},"value":"161"},"src":"20789:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2923003274661805836407369665432566039311865085952_by_1","typeString":"int_const 2923...(41 digits omitted)...5952"}},"visibility":"internal"},{"constant":true,"id":7484,"mutability":"constant","name":"_ROLE_162","nameLocation":"20829:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20803:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7480,"name":"uint256","nodeType":"ElementaryTypeName","src":"20803:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5846006549323611672814739330865132078623730171904_by_1","typeString":"int_const 5846...(41 digits omitted)...1904"},"id":7483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20841:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313632","id":7482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20846:3:18","typeDescriptions":{"typeIdentifier":"t_rational_162_by_1","typeString":"int_const 162"},"value":"162"},"src":"20841:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5846006549323611672814739330865132078623730171904_by_1","typeString":"int_const 5846...(41 digits omitted)...1904"}},"visibility":"internal"},{"constant":true,"id":7489,"mutability":"constant","name":"_ROLE_163","nameLocation":"20881:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20855:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7485,"name":"uint256","nodeType":"ElementaryTypeName","src":"20855:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11692013098647223345629478661730264157247460343808_by_1","typeString":"int_const 1169...(42 digits omitted)...3808"},"id":7488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20893:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313633","id":7487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20898:3:18","typeDescriptions":{"typeIdentifier":"t_rational_163_by_1","typeString":"int_const 163"},"value":"163"},"src":"20893:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11692013098647223345629478661730264157247460343808_by_1","typeString":"int_const 1169...(42 digits omitted)...3808"}},"visibility":"internal"},{"constant":true,"id":7494,"mutability":"constant","name":"_ROLE_164","nameLocation":"20933:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20907:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7490,"name":"uint256","nodeType":"ElementaryTypeName","src":"20907:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_23384026197294446691258957323460528314494920687616_by_1","typeString":"int_const 2338...(42 digits omitted)...7616"},"id":7493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20945:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313634","id":7492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20950:3:18","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"164"},"src":"20945:8:18","typeDescriptions":{"typeIdentifier":"t_rational_23384026197294446691258957323460528314494920687616_by_1","typeString":"int_const 2338...(42 digits omitted)...7616"}},"visibility":"internal"},{"constant":true,"id":7499,"mutability":"constant","name":"_ROLE_165","nameLocation":"20985:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20959:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7495,"name":"uint256","nodeType":"ElementaryTypeName","src":"20959:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_46768052394588893382517914646921056628989841375232_by_1","typeString":"int_const 4676...(42 digits omitted)...5232"},"id":7498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20997:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313635","id":7497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21002:3:18","typeDescriptions":{"typeIdentifier":"t_rational_165_by_1","typeString":"int_const 165"},"value":"165"},"src":"20997:8:18","typeDescriptions":{"typeIdentifier":"t_rational_46768052394588893382517914646921056628989841375232_by_1","typeString":"int_const 4676...(42 digits omitted)...5232"}},"visibility":"internal"},{"constant":true,"id":7504,"mutability":"constant","name":"_ROLE_166","nameLocation":"21037:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21011:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7500,"name":"uint256","nodeType":"ElementaryTypeName","src":"21011:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_93536104789177786765035829293842113257979682750464_by_1","typeString":"int_const 9353...(42 digits omitted)...0464"},"id":7503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21049:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313636","id":7502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21054:3:18","typeDescriptions":{"typeIdentifier":"t_rational_166_by_1","typeString":"int_const 166"},"value":"166"},"src":"21049:8:18","typeDescriptions":{"typeIdentifier":"t_rational_93536104789177786765035829293842113257979682750464_by_1","typeString":"int_const 9353...(42 digits omitted)...0464"}},"visibility":"internal"},{"constant":true,"id":7509,"mutability":"constant","name":"_ROLE_167","nameLocation":"21089:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21063:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7505,"name":"uint256","nodeType":"ElementaryTypeName","src":"21063:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_187072209578355573530071658587684226515959365500928_by_1","typeString":"int_const 1870...(43 digits omitted)...0928"},"id":7508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21101:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313637","id":7507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21106:3:18","typeDescriptions":{"typeIdentifier":"t_rational_167_by_1","typeString":"int_const 167"},"value":"167"},"src":"21101:8:18","typeDescriptions":{"typeIdentifier":"t_rational_187072209578355573530071658587684226515959365500928_by_1","typeString":"int_const 1870...(43 digits omitted)...0928"}},"visibility":"internal"},{"constant":true,"id":7514,"mutability":"constant","name":"_ROLE_168","nameLocation":"21141:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21115:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7510,"name":"uint256","nodeType":"ElementaryTypeName","src":"21115:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_374144419156711147060143317175368453031918731001856_by_1","typeString":"int_const 3741...(43 digits omitted)...1856"},"id":7513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21153:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313638","id":7512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21158:3:18","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},"src":"21153:8:18","typeDescriptions":{"typeIdentifier":"t_rational_374144419156711147060143317175368453031918731001856_by_1","typeString":"int_const 3741...(43 digits omitted)...1856"}},"visibility":"internal"},{"constant":true,"id":7519,"mutability":"constant","name":"_ROLE_169","nameLocation":"21193:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21167:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7515,"name":"uint256","nodeType":"ElementaryTypeName","src":"21167:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_748288838313422294120286634350736906063837462003712_by_1","typeString":"int_const 7482...(43 digits omitted)...3712"},"id":7518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21205:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313639","id":7517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21210:3:18","typeDescriptions":{"typeIdentifier":"t_rational_169_by_1","typeString":"int_const 169"},"value":"169"},"src":"21205:8:18","typeDescriptions":{"typeIdentifier":"t_rational_748288838313422294120286634350736906063837462003712_by_1","typeString":"int_const 7482...(43 digits omitted)...3712"}},"visibility":"internal"},{"constant":true,"id":7524,"mutability":"constant","name":"_ROLE_170","nameLocation":"21245:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21219:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7520,"name":"uint256","nodeType":"ElementaryTypeName","src":"21219:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1496577676626844588240573268701473812127674924007424_by_1","typeString":"int_const 1496...(44 digits omitted)...7424"},"id":7523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21257:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313730","id":7522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21262:3:18","typeDescriptions":{"typeIdentifier":"t_rational_170_by_1","typeString":"int_const 170"},"value":"170"},"src":"21257:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1496577676626844588240573268701473812127674924007424_by_1","typeString":"int_const 1496...(44 digits omitted)...7424"}},"visibility":"internal"},{"constant":true,"id":7529,"mutability":"constant","name":"_ROLE_171","nameLocation":"21297:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21271:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7525,"name":"uint256","nodeType":"ElementaryTypeName","src":"21271:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2993155353253689176481146537402947624255349848014848_by_1","typeString":"int_const 2993...(44 digits omitted)...4848"},"id":7528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21309:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313731","id":7527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21314:3:18","typeDescriptions":{"typeIdentifier":"t_rational_171_by_1","typeString":"int_const 171"},"value":"171"},"src":"21309:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2993155353253689176481146537402947624255349848014848_by_1","typeString":"int_const 2993...(44 digits omitted)...4848"}},"visibility":"internal"},{"constant":true,"id":7534,"mutability":"constant","name":"_ROLE_172","nameLocation":"21349:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21323:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7530,"name":"uint256","nodeType":"ElementaryTypeName","src":"21323:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5986310706507378352962293074805895248510699696029696_by_1","typeString":"int_const 5986...(44 digits omitted)...9696"},"id":7533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21361:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313732","id":7532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21366:3:18","typeDescriptions":{"typeIdentifier":"t_rational_172_by_1","typeString":"int_const 172"},"value":"172"},"src":"21361:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5986310706507378352962293074805895248510699696029696_by_1","typeString":"int_const 5986...(44 digits omitted)...9696"}},"visibility":"internal"},{"constant":true,"id":7539,"mutability":"constant","name":"_ROLE_173","nameLocation":"21401:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21375:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7535,"name":"uint256","nodeType":"ElementaryTypeName","src":"21375:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11972621413014756705924586149611790497021399392059392_by_1","typeString":"int_const 1197...(45 digits omitted)...9392"},"id":7538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21413:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313733","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21418:3:18","typeDescriptions":{"typeIdentifier":"t_rational_173_by_1","typeString":"int_const 173"},"value":"173"},"src":"21413:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11972621413014756705924586149611790497021399392059392_by_1","typeString":"int_const 1197...(45 digits omitted)...9392"}},"visibility":"internal"},{"constant":true,"id":7544,"mutability":"constant","name":"_ROLE_174","nameLocation":"21453:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21427:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7540,"name":"uint256","nodeType":"ElementaryTypeName","src":"21427:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_23945242826029513411849172299223580994042798784118784_by_1","typeString":"int_const 2394...(45 digits omitted)...8784"},"id":7543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21465:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313734","id":7542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21470:3:18","typeDescriptions":{"typeIdentifier":"t_rational_174_by_1","typeString":"int_const 174"},"value":"174"},"src":"21465:8:18","typeDescriptions":{"typeIdentifier":"t_rational_23945242826029513411849172299223580994042798784118784_by_1","typeString":"int_const 2394...(45 digits omitted)...8784"}},"visibility":"internal"},{"constant":true,"id":7549,"mutability":"constant","name":"_ROLE_175","nameLocation":"21505:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21479:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7545,"name":"uint256","nodeType":"ElementaryTypeName","src":"21479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_47890485652059026823698344598447161988085597568237568_by_1","typeString":"int_const 4789...(45 digits omitted)...7568"},"id":7548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21517:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313735","id":7547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21522:3:18","typeDescriptions":{"typeIdentifier":"t_rational_175_by_1","typeString":"int_const 175"},"value":"175"},"src":"21517:8:18","typeDescriptions":{"typeIdentifier":"t_rational_47890485652059026823698344598447161988085597568237568_by_1","typeString":"int_const 4789...(45 digits omitted)...7568"}},"visibility":"internal"},{"constant":true,"id":7554,"mutability":"constant","name":"_ROLE_176","nameLocation":"21557:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21531:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7550,"name":"uint256","nodeType":"ElementaryTypeName","src":"21531:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_95780971304118053647396689196894323976171195136475136_by_1","typeString":"int_const 9578...(45 digits omitted)...5136"},"id":7553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21569:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313736","id":7552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21574:3:18","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},"src":"21569:8:18","typeDescriptions":{"typeIdentifier":"t_rational_95780971304118053647396689196894323976171195136475136_by_1","typeString":"int_const 9578...(45 digits omitted)...5136"}},"visibility":"internal"},{"constant":true,"id":7559,"mutability":"constant","name":"_ROLE_177","nameLocation":"21609:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21583:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7555,"name":"uint256","nodeType":"ElementaryTypeName","src":"21583:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_191561942608236107294793378393788647952342390272950272_by_1","typeString":"int_const 1915...(46 digits omitted)...0272"},"id":7558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21621:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313737","id":7557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21626:3:18","typeDescriptions":{"typeIdentifier":"t_rational_177_by_1","typeString":"int_const 177"},"value":"177"},"src":"21621:8:18","typeDescriptions":{"typeIdentifier":"t_rational_191561942608236107294793378393788647952342390272950272_by_1","typeString":"int_const 1915...(46 digits omitted)...0272"}},"visibility":"internal"},{"constant":true,"id":7564,"mutability":"constant","name":"_ROLE_178","nameLocation":"21661:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21635:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7560,"name":"uint256","nodeType":"ElementaryTypeName","src":"21635:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_383123885216472214589586756787577295904684780545900544_by_1","typeString":"int_const 3831...(46 digits omitted)...0544"},"id":7563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21673:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313738","id":7562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21678:3:18","typeDescriptions":{"typeIdentifier":"t_rational_178_by_1","typeString":"int_const 178"},"value":"178"},"src":"21673:8:18","typeDescriptions":{"typeIdentifier":"t_rational_383123885216472214589586756787577295904684780545900544_by_1","typeString":"int_const 3831...(46 digits omitted)...0544"}},"visibility":"internal"},{"constant":true,"id":7569,"mutability":"constant","name":"_ROLE_179","nameLocation":"21713:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21687:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7565,"name":"uint256","nodeType":"ElementaryTypeName","src":"21687:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_766247770432944429179173513575154591809369561091801088_by_1","typeString":"int_const 7662...(46 digits omitted)...1088"},"id":7568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21725:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313739","id":7567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21730:3:18","typeDescriptions":{"typeIdentifier":"t_rational_179_by_1","typeString":"int_const 179"},"value":"179"},"src":"21725:8:18","typeDescriptions":{"typeIdentifier":"t_rational_766247770432944429179173513575154591809369561091801088_by_1","typeString":"int_const 7662...(46 digits omitted)...1088"}},"visibility":"internal"},{"constant":true,"id":7574,"mutability":"constant","name":"_ROLE_180","nameLocation":"21765:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21739:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7570,"name":"uint256","nodeType":"ElementaryTypeName","src":"21739:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1532495540865888858358347027150309183618739122183602176_by_1","typeString":"int_const 1532...(47 digits omitted)...2176"},"id":7573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21777:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313830","id":7572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21782:3:18","typeDescriptions":{"typeIdentifier":"t_rational_180_by_1","typeString":"int_const 180"},"value":"180"},"src":"21777:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1532495540865888858358347027150309183618739122183602176_by_1","typeString":"int_const 1532...(47 digits omitted)...2176"}},"visibility":"internal"},{"constant":true,"id":7579,"mutability":"constant","name":"_ROLE_181","nameLocation":"21817:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21791:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7575,"name":"uint256","nodeType":"ElementaryTypeName","src":"21791:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3064991081731777716716694054300618367237478244367204352_by_1","typeString":"int_const 3064...(47 digits omitted)...4352"},"id":7578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21829:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313831","id":7577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21834:3:18","typeDescriptions":{"typeIdentifier":"t_rational_181_by_1","typeString":"int_const 181"},"value":"181"},"src":"21829:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3064991081731777716716694054300618367237478244367204352_by_1","typeString":"int_const 3064...(47 digits omitted)...4352"}},"visibility":"internal"},{"constant":true,"id":7584,"mutability":"constant","name":"_ROLE_182","nameLocation":"21869:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21843:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7580,"name":"uint256","nodeType":"ElementaryTypeName","src":"21843:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6129982163463555433433388108601236734474956488734408704_by_1","typeString":"int_const 6129...(47 digits omitted)...8704"},"id":7583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21881:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313832","id":7582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21886:3:18","typeDescriptions":{"typeIdentifier":"t_rational_182_by_1","typeString":"int_const 182"},"value":"182"},"src":"21881:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6129982163463555433433388108601236734474956488734408704_by_1","typeString":"int_const 6129...(47 digits omitted)...8704"}},"visibility":"internal"},{"constant":true,"id":7589,"mutability":"constant","name":"_ROLE_183","nameLocation":"21921:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21895:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7585,"name":"uint256","nodeType":"ElementaryTypeName","src":"21895:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12259964326927110866866776217202473468949912977468817408_by_1","typeString":"int_const 1225...(48 digits omitted)...7408"},"id":7588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21933:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313833","id":7587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21938:3:18","typeDescriptions":{"typeIdentifier":"t_rational_183_by_1","typeString":"int_const 183"},"value":"183"},"src":"21933:8:18","typeDescriptions":{"typeIdentifier":"t_rational_12259964326927110866866776217202473468949912977468817408_by_1","typeString":"int_const 1225...(48 digits omitted)...7408"}},"visibility":"internal"},{"constant":true,"id":7594,"mutability":"constant","name":"_ROLE_184","nameLocation":"21973:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21947:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7590,"name":"uint256","nodeType":"ElementaryTypeName","src":"21947:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_24519928653854221733733552434404946937899825954937634816_by_1","typeString":"int_const 2451...(48 digits omitted)...4816"},"id":7593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21985:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313834","id":7592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21990:3:18","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},"src":"21985:8:18","typeDescriptions":{"typeIdentifier":"t_rational_24519928653854221733733552434404946937899825954937634816_by_1","typeString":"int_const 2451...(48 digits omitted)...4816"}},"visibility":"internal"},{"constant":true,"id":7599,"mutability":"constant","name":"_ROLE_185","nameLocation":"22025:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21999:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7595,"name":"uint256","nodeType":"ElementaryTypeName","src":"21999:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_49039857307708443467467104868809893875799651909875269632_by_1","typeString":"int_const 4903...(48 digits omitted)...9632"},"id":7598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22037:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313835","id":7597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22042:3:18","typeDescriptions":{"typeIdentifier":"t_rational_185_by_1","typeString":"int_const 185"},"value":"185"},"src":"22037:8:18","typeDescriptions":{"typeIdentifier":"t_rational_49039857307708443467467104868809893875799651909875269632_by_1","typeString":"int_const 4903...(48 digits omitted)...9632"}},"visibility":"internal"},{"constant":true,"id":7604,"mutability":"constant","name":"_ROLE_186","nameLocation":"22077:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22051:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7600,"name":"uint256","nodeType":"ElementaryTypeName","src":"22051:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_98079714615416886934934209737619787751599303819750539264_by_1","typeString":"int_const 9807...(48 digits omitted)...9264"},"id":7603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22089:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313836","id":7602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22094:3:18","typeDescriptions":{"typeIdentifier":"t_rational_186_by_1","typeString":"int_const 186"},"value":"186"},"src":"22089:8:18","typeDescriptions":{"typeIdentifier":"t_rational_98079714615416886934934209737619787751599303819750539264_by_1","typeString":"int_const 9807...(48 digits omitted)...9264"}},"visibility":"internal"},{"constant":true,"id":7609,"mutability":"constant","name":"_ROLE_187","nameLocation":"22129:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22103:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7605,"name":"uint256","nodeType":"ElementaryTypeName","src":"22103:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_196159429230833773869868419475239575503198607639501078528_by_1","typeString":"int_const 1961...(49 digits omitted)...8528"},"id":7608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22141:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313837","id":7607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22146:3:18","typeDescriptions":{"typeIdentifier":"t_rational_187_by_1","typeString":"int_const 187"},"value":"187"},"src":"22141:8:18","typeDescriptions":{"typeIdentifier":"t_rational_196159429230833773869868419475239575503198607639501078528_by_1","typeString":"int_const 1961...(49 digits omitted)...8528"}},"visibility":"internal"},{"constant":true,"id":7614,"mutability":"constant","name":"_ROLE_188","nameLocation":"22181:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22155:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7610,"name":"uint256","nodeType":"ElementaryTypeName","src":"22155:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_392318858461667547739736838950479151006397215279002157056_by_1","typeString":"int_const 3923...(49 digits omitted)...7056"},"id":7613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22193:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313838","id":7612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:3:18","typeDescriptions":{"typeIdentifier":"t_rational_188_by_1","typeString":"int_const 188"},"value":"188"},"src":"22193:8:18","typeDescriptions":{"typeIdentifier":"t_rational_392318858461667547739736838950479151006397215279002157056_by_1","typeString":"int_const 3923...(49 digits omitted)...7056"}},"visibility":"internal"},{"constant":true,"id":7619,"mutability":"constant","name":"_ROLE_189","nameLocation":"22233:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22207:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7615,"name":"uint256","nodeType":"ElementaryTypeName","src":"22207:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_784637716923335095479473677900958302012794430558004314112_by_1","typeString":"int_const 7846...(49 digits omitted)...4112"},"id":7618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313839","id":7617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22250:3:18","typeDescriptions":{"typeIdentifier":"t_rational_189_by_1","typeString":"int_const 189"},"value":"189"},"src":"22245:8:18","typeDescriptions":{"typeIdentifier":"t_rational_784637716923335095479473677900958302012794430558004314112_by_1","typeString":"int_const 7846...(49 digits omitted)...4112"}},"visibility":"internal"},{"constant":true,"id":7624,"mutability":"constant","name":"_ROLE_190","nameLocation":"22285:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22259:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7620,"name":"uint256","nodeType":"ElementaryTypeName","src":"22259:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1569275433846670190958947355801916604025588861116008628224_by_1","typeString":"int_const 1569...(50 digits omitted)...8224"},"id":7623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22297:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313930","id":7622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22302:3:18","typeDescriptions":{"typeIdentifier":"t_rational_190_by_1","typeString":"int_const 190"},"value":"190"},"src":"22297:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1569275433846670190958947355801916604025588861116008628224_by_1","typeString":"int_const 1569...(50 digits omitted)...8224"}},"visibility":"internal"},{"constant":true,"id":7629,"mutability":"constant","name":"_ROLE_191","nameLocation":"22337:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22311:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7625,"name":"uint256","nodeType":"ElementaryTypeName","src":"22311:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3138550867693340381917894711603833208051177722232017256448_by_1","typeString":"int_const 3138...(50 digits omitted)...6448"},"id":7628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22349:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313931","id":7627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22354:3:18","typeDescriptions":{"typeIdentifier":"t_rational_191_by_1","typeString":"int_const 191"},"value":"191"},"src":"22349:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3138550867693340381917894711603833208051177722232017256448_by_1","typeString":"int_const 3138...(50 digits omitted)...6448"}},"visibility":"internal"},{"constant":true,"id":7634,"mutability":"constant","name":"_ROLE_192","nameLocation":"22389:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22363:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7630,"name":"uint256","nodeType":"ElementaryTypeName","src":"22363:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"},"id":7633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22401:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":7632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22406:3:18","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"22401:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"}},"visibility":"internal"},{"constant":true,"id":7639,"mutability":"constant","name":"_ROLE_193","nameLocation":"22441:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22415:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7635,"name":"uint256","nodeType":"ElementaryTypeName","src":"22415:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12554203470773361527671578846415332832204710888928069025792_by_1","typeString":"int_const 1255...(51 digits omitted)...5792"},"id":7638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22453:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313933","id":7637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:3:18","typeDescriptions":{"typeIdentifier":"t_rational_193_by_1","typeString":"int_const 193"},"value":"193"},"src":"22453:8:18","typeDescriptions":{"typeIdentifier":"t_rational_12554203470773361527671578846415332832204710888928069025792_by_1","typeString":"int_const 1255...(51 digits omitted)...5792"}},"visibility":"internal"},{"constant":true,"id":7644,"mutability":"constant","name":"_ROLE_194","nameLocation":"22493:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22467:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7640,"name":"uint256","nodeType":"ElementaryTypeName","src":"22467:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_25108406941546723055343157692830665664409421777856138051584_by_1","typeString":"int_const 2510...(51 digits omitted)...1584"},"id":7643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22505:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313934","id":7642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22510:3:18","typeDescriptions":{"typeIdentifier":"t_rational_194_by_1","typeString":"int_const 194"},"value":"194"},"src":"22505:8:18","typeDescriptions":{"typeIdentifier":"t_rational_25108406941546723055343157692830665664409421777856138051584_by_1","typeString":"int_const 2510...(51 digits omitted)...1584"}},"visibility":"internal"},{"constant":true,"id":7649,"mutability":"constant","name":"_ROLE_195","nameLocation":"22545:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22519:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7645,"name":"uint256","nodeType":"ElementaryTypeName","src":"22519:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_50216813883093446110686315385661331328818843555712276103168_by_1","typeString":"int_const 5021...(51 digits omitted)...3168"},"id":7648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22557:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313935","id":7647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22562:3:18","typeDescriptions":{"typeIdentifier":"t_rational_195_by_1","typeString":"int_const 195"},"value":"195"},"src":"22557:8:18","typeDescriptions":{"typeIdentifier":"t_rational_50216813883093446110686315385661331328818843555712276103168_by_1","typeString":"int_const 5021...(51 digits omitted)...3168"}},"visibility":"internal"},{"constant":true,"id":7654,"mutability":"constant","name":"_ROLE_196","nameLocation":"22597:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22571:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7650,"name":"uint256","nodeType":"ElementaryTypeName","src":"22571:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_100433627766186892221372630771322662657637687111424552206336_by_1","typeString":"int_const 1004...(52 digits omitted)...6336"},"id":7653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22609:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313936","id":7652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22614:3:18","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"196"},"src":"22609:8:18","typeDescriptions":{"typeIdentifier":"t_rational_100433627766186892221372630771322662657637687111424552206336_by_1","typeString":"int_const 1004...(52 digits omitted)...6336"}},"visibility":"internal"},{"constant":true,"id":7659,"mutability":"constant","name":"_ROLE_197","nameLocation":"22649:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22623:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7655,"name":"uint256","nodeType":"ElementaryTypeName","src":"22623:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_200867255532373784442745261542645325315275374222849104412672_by_1","typeString":"int_const 2008...(52 digits omitted)...2672"},"id":7658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22661:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313937","id":7657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22666:3:18","typeDescriptions":{"typeIdentifier":"t_rational_197_by_1","typeString":"int_const 197"},"value":"197"},"src":"22661:8:18","typeDescriptions":{"typeIdentifier":"t_rational_200867255532373784442745261542645325315275374222849104412672_by_1","typeString":"int_const 2008...(52 digits omitted)...2672"}},"visibility":"internal"},{"constant":true,"id":7664,"mutability":"constant","name":"_ROLE_198","nameLocation":"22701:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22675:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7660,"name":"uint256","nodeType":"ElementaryTypeName","src":"22675:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_401734511064747568885490523085290650630550748445698208825344_by_1","typeString":"int_const 4017...(52 digits omitted)...5344"},"id":7663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22713:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313938","id":7662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22718:3:18","typeDescriptions":{"typeIdentifier":"t_rational_198_by_1","typeString":"int_const 198"},"value":"198"},"src":"22713:8:18","typeDescriptions":{"typeIdentifier":"t_rational_401734511064747568885490523085290650630550748445698208825344_by_1","typeString":"int_const 4017...(52 digits omitted)...5344"}},"visibility":"internal"},{"constant":true,"id":7669,"mutability":"constant","name":"_ROLE_199","nameLocation":"22753:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22727:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7665,"name":"uint256","nodeType":"ElementaryTypeName","src":"22727:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_803469022129495137770981046170581301261101496891396417650688_by_1","typeString":"int_const 8034...(52 digits omitted)...0688"},"id":7668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22765:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313939","id":7667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22770:3:18","typeDescriptions":{"typeIdentifier":"t_rational_199_by_1","typeString":"int_const 199"},"value":"199"},"src":"22765:8:18","typeDescriptions":{"typeIdentifier":"t_rational_803469022129495137770981046170581301261101496891396417650688_by_1","typeString":"int_const 8034...(52 digits omitted)...0688"}},"visibility":"internal"},{"constant":true,"id":7674,"mutability":"constant","name":"_ROLE_200","nameLocation":"22805:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22779:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7670,"name":"uint256","nodeType":"ElementaryTypeName","src":"22779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1606938044258990275541962092341162602522202993782792835301376_by_1","typeString":"int_const 1606...(53 digits omitted)...1376"},"id":7673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22817:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323030","id":7672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22822:3:18","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"22817:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1606938044258990275541962092341162602522202993782792835301376_by_1","typeString":"int_const 1606...(53 digits omitted)...1376"}},"visibility":"internal"},{"constant":true,"id":7679,"mutability":"constant","name":"_ROLE_201","nameLocation":"22857:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22831:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7675,"name":"uint256","nodeType":"ElementaryTypeName","src":"22831:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3213876088517980551083924184682325205044405987565585670602752_by_1","typeString":"int_const 3213...(53 digits omitted)...2752"},"id":7678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22869:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323031","id":7677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22874:3:18","typeDescriptions":{"typeIdentifier":"t_rational_201_by_1","typeString":"int_const 201"},"value":"201"},"src":"22869:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3213876088517980551083924184682325205044405987565585670602752_by_1","typeString":"int_const 3213...(53 digits omitted)...2752"}},"visibility":"internal"},{"constant":true,"id":7684,"mutability":"constant","name":"_ROLE_202","nameLocation":"22909:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22883:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7680,"name":"uint256","nodeType":"ElementaryTypeName","src":"22883:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6427752177035961102167848369364650410088811975131171341205504_by_1","typeString":"int_const 6427...(53 digits omitted)...5504"},"id":7683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22921:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323032","id":7682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:3:18","typeDescriptions":{"typeIdentifier":"t_rational_202_by_1","typeString":"int_const 202"},"value":"202"},"src":"22921:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6427752177035961102167848369364650410088811975131171341205504_by_1","typeString":"int_const 6427...(53 digits omitted)...5504"}},"visibility":"internal"},{"constant":true,"id":7689,"mutability":"constant","name":"_ROLE_203","nameLocation":"22961:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22935:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7685,"name":"uint256","nodeType":"ElementaryTypeName","src":"22935:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12855504354071922204335696738729300820177623950262342682411008_by_1","typeString":"int_const 1285...(54 digits omitted)...1008"},"id":7688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22973:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323033","id":7687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22978:3:18","typeDescriptions":{"typeIdentifier":"t_rational_203_by_1","typeString":"int_const 203"},"value":"203"},"src":"22973:8:18","typeDescriptions":{"typeIdentifier":"t_rational_12855504354071922204335696738729300820177623950262342682411008_by_1","typeString":"int_const 1285...(54 digits omitted)...1008"}},"visibility":"internal"},{"constant":true,"id":7694,"mutability":"constant","name":"_ROLE_204","nameLocation":"23013:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22987:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7690,"name":"uint256","nodeType":"ElementaryTypeName","src":"22987:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_25711008708143844408671393477458601640355247900524685364822016_by_1","typeString":"int_const 2571...(54 digits omitted)...2016"},"id":7693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23025:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323034","id":7692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23030:3:18","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},"src":"23025:8:18","typeDescriptions":{"typeIdentifier":"t_rational_25711008708143844408671393477458601640355247900524685364822016_by_1","typeString":"int_const 2571...(54 digits omitted)...2016"}},"visibility":"internal"},{"constant":true,"id":7699,"mutability":"constant","name":"_ROLE_205","nameLocation":"23065:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23039:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7695,"name":"uint256","nodeType":"ElementaryTypeName","src":"23039:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_51422017416287688817342786954917203280710495801049370729644032_by_1","typeString":"int_const 5142...(54 digits omitted)...4032"},"id":7698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23077:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323035","id":7697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23082:3:18","typeDescriptions":{"typeIdentifier":"t_rational_205_by_1","typeString":"int_const 205"},"value":"205"},"src":"23077:8:18","typeDescriptions":{"typeIdentifier":"t_rational_51422017416287688817342786954917203280710495801049370729644032_by_1","typeString":"int_const 5142...(54 digits omitted)...4032"}},"visibility":"internal"},{"constant":true,"id":7704,"mutability":"constant","name":"_ROLE_206","nameLocation":"23117:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23091:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7700,"name":"uint256","nodeType":"ElementaryTypeName","src":"23091:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_102844034832575377634685573909834406561420991602098741459288064_by_1","typeString":"int_const 1028...(55 digits omitted)...8064"},"id":7703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23129:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323036","id":7702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23134:3:18","typeDescriptions":{"typeIdentifier":"t_rational_206_by_1","typeString":"int_const 206"},"value":"206"},"src":"23129:8:18","typeDescriptions":{"typeIdentifier":"t_rational_102844034832575377634685573909834406561420991602098741459288064_by_1","typeString":"int_const 1028...(55 digits omitted)...8064"}},"visibility":"internal"},{"constant":true,"id":7709,"mutability":"constant","name":"_ROLE_207","nameLocation":"23169:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23143:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7705,"name":"uint256","nodeType":"ElementaryTypeName","src":"23143:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_205688069665150755269371147819668813122841983204197482918576128_by_1","typeString":"int_const 2056...(55 digits omitted)...6128"},"id":7708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23181:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323037","id":7707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23186:3:18","typeDescriptions":{"typeIdentifier":"t_rational_207_by_1","typeString":"int_const 207"},"value":"207"},"src":"23181:8:18","typeDescriptions":{"typeIdentifier":"t_rational_205688069665150755269371147819668813122841983204197482918576128_by_1","typeString":"int_const 2056...(55 digits omitted)...6128"}},"visibility":"internal"},{"constant":true,"id":7714,"mutability":"constant","name":"_ROLE_208","nameLocation":"23221:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23195:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7710,"name":"uint256","nodeType":"ElementaryTypeName","src":"23195:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_411376139330301510538742295639337626245683966408394965837152256_by_1","typeString":"int_const 4113...(55 digits omitted)...2256"},"id":7713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323038","id":7712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23238:3:18","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},"src":"23233:8:18","typeDescriptions":{"typeIdentifier":"t_rational_411376139330301510538742295639337626245683966408394965837152256_by_1","typeString":"int_const 4113...(55 digits omitted)...2256"}},"visibility":"internal"},{"constant":true,"id":7719,"mutability":"constant","name":"_ROLE_209","nameLocation":"23273:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23247:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7715,"name":"uint256","nodeType":"ElementaryTypeName","src":"23247:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_822752278660603021077484591278675252491367932816789931674304512_by_1","typeString":"int_const 8227...(55 digits omitted)...4512"},"id":7718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23285:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323039","id":7717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23290:3:18","typeDescriptions":{"typeIdentifier":"t_rational_209_by_1","typeString":"int_const 209"},"value":"209"},"src":"23285:8:18","typeDescriptions":{"typeIdentifier":"t_rational_822752278660603021077484591278675252491367932816789931674304512_by_1","typeString":"int_const 8227...(55 digits omitted)...4512"}},"visibility":"internal"},{"constant":true,"id":7724,"mutability":"constant","name":"_ROLE_210","nameLocation":"23325:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23299:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7720,"name":"uint256","nodeType":"ElementaryTypeName","src":"23299:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1645504557321206042154969182557350504982735865633579863348609024_by_1","typeString":"int_const 1645...(56 digits omitted)...9024"},"id":7723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23337:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323130","id":7722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23342:3:18","typeDescriptions":{"typeIdentifier":"t_rational_210_by_1","typeString":"int_const 210"},"value":"210"},"src":"23337:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1645504557321206042154969182557350504982735865633579863348609024_by_1","typeString":"int_const 1645...(56 digits omitted)...9024"}},"visibility":"internal"},{"constant":true,"id":7729,"mutability":"constant","name":"_ROLE_211","nameLocation":"23377:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23351:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7725,"name":"uint256","nodeType":"ElementaryTypeName","src":"23351:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3291009114642412084309938365114701009965471731267159726697218048_by_1","typeString":"int_const 3291...(56 digits omitted)...8048"},"id":7728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23389:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323131","id":7727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23394:3:18","typeDescriptions":{"typeIdentifier":"t_rational_211_by_1","typeString":"int_const 211"},"value":"211"},"src":"23389:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3291009114642412084309938365114701009965471731267159726697218048_by_1","typeString":"int_const 3291...(56 digits omitted)...8048"}},"visibility":"internal"},{"constant":true,"id":7734,"mutability":"constant","name":"_ROLE_212","nameLocation":"23429:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23403:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7730,"name":"uint256","nodeType":"ElementaryTypeName","src":"23403:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6582018229284824168619876730229402019930943462534319453394436096_by_1","typeString":"int_const 6582...(56 digits omitted)...6096"},"id":7733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23441:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323132","id":7732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23446:3:18","typeDescriptions":{"typeIdentifier":"t_rational_212_by_1","typeString":"int_const 212"},"value":"212"},"src":"23441:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6582018229284824168619876730229402019930943462534319453394436096_by_1","typeString":"int_const 6582...(56 digits omitted)...6096"}},"visibility":"internal"},{"constant":true,"id":7739,"mutability":"constant","name":"_ROLE_213","nameLocation":"23481:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23455:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7735,"name":"uint256","nodeType":"ElementaryTypeName","src":"23455:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13164036458569648337239753460458804039861886925068638906788872192_by_1","typeString":"int_const 1316...(57 digits omitted)...2192"},"id":7738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23493:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323133","id":7737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23498:3:18","typeDescriptions":{"typeIdentifier":"t_rational_213_by_1","typeString":"int_const 213"},"value":"213"},"src":"23493:8:18","typeDescriptions":{"typeIdentifier":"t_rational_13164036458569648337239753460458804039861886925068638906788872192_by_1","typeString":"int_const 1316...(57 digits omitted)...2192"}},"visibility":"internal"},{"constant":true,"id":7744,"mutability":"constant","name":"_ROLE_214","nameLocation":"23533:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23507:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7740,"name":"uint256","nodeType":"ElementaryTypeName","src":"23507:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_26328072917139296674479506920917608079723773850137277813577744384_by_1","typeString":"int_const 2632...(57 digits omitted)...4384"},"id":7743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23545:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323134","id":7742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23550:3:18","typeDescriptions":{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"},"value":"214"},"src":"23545:8:18","typeDescriptions":{"typeIdentifier":"t_rational_26328072917139296674479506920917608079723773850137277813577744384_by_1","typeString":"int_const 2632...(57 digits omitted)...4384"}},"visibility":"internal"},{"constant":true,"id":7749,"mutability":"constant","name":"_ROLE_215","nameLocation":"23585:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23559:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7745,"name":"uint256","nodeType":"ElementaryTypeName","src":"23559:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_52656145834278593348959013841835216159447547700274555627155488768_by_1","typeString":"int_const 5265...(57 digits omitted)...8768"},"id":7748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23597:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323135","id":7747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23602:3:18","typeDescriptions":{"typeIdentifier":"t_rational_215_by_1","typeString":"int_const 215"},"value":"215"},"src":"23597:8:18","typeDescriptions":{"typeIdentifier":"t_rational_52656145834278593348959013841835216159447547700274555627155488768_by_1","typeString":"int_const 5265...(57 digits omitted)...8768"}},"visibility":"internal"},{"constant":true,"id":7754,"mutability":"constant","name":"_ROLE_216","nameLocation":"23637:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23611:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7750,"name":"uint256","nodeType":"ElementaryTypeName","src":"23611:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_105312291668557186697918027683670432318895095400549111254310977536_by_1","typeString":"int_const 1053...(58 digits omitted)...7536"},"id":7753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23649:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323136","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23654:3:18","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},"src":"23649:8:18","typeDescriptions":{"typeIdentifier":"t_rational_105312291668557186697918027683670432318895095400549111254310977536_by_1","typeString":"int_const 1053...(58 digits omitted)...7536"}},"visibility":"internal"},{"constant":true,"id":7759,"mutability":"constant","name":"_ROLE_217","nameLocation":"23689:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23663:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7755,"name":"uint256","nodeType":"ElementaryTypeName","src":"23663:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_210624583337114373395836055367340864637790190801098222508621955072_by_1","typeString":"int_const 2106...(58 digits omitted)...5072"},"id":7758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23701:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323137","id":7757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23706:3:18","typeDescriptions":{"typeIdentifier":"t_rational_217_by_1","typeString":"int_const 217"},"value":"217"},"src":"23701:8:18","typeDescriptions":{"typeIdentifier":"t_rational_210624583337114373395836055367340864637790190801098222508621955072_by_1","typeString":"int_const 2106...(58 digits omitted)...5072"}},"visibility":"internal"},{"constant":true,"id":7764,"mutability":"constant","name":"_ROLE_218","nameLocation":"23741:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23715:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7760,"name":"uint256","nodeType":"ElementaryTypeName","src":"23715:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_421249166674228746791672110734681729275580381602196445017243910144_by_1","typeString":"int_const 4212...(58 digits omitted)...0144"},"id":7763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23753:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323138","id":7762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23758:3:18","typeDescriptions":{"typeIdentifier":"t_rational_218_by_1","typeString":"int_const 218"},"value":"218"},"src":"23753:8:18","typeDescriptions":{"typeIdentifier":"t_rational_421249166674228746791672110734681729275580381602196445017243910144_by_1","typeString":"int_const 4212...(58 digits omitted)...0144"}},"visibility":"internal"},{"constant":true,"id":7769,"mutability":"constant","name":"_ROLE_219","nameLocation":"23793:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23767:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7765,"name":"uint256","nodeType":"ElementaryTypeName","src":"23767:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_842498333348457493583344221469363458551160763204392890034487820288_by_1","typeString":"int_const 8424...(58 digits omitted)...0288"},"id":7768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23805:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323139","id":7767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23810:3:18","typeDescriptions":{"typeIdentifier":"t_rational_219_by_1","typeString":"int_const 219"},"value":"219"},"src":"23805:8:18","typeDescriptions":{"typeIdentifier":"t_rational_842498333348457493583344221469363458551160763204392890034487820288_by_1","typeString":"int_const 8424...(58 digits omitted)...0288"}},"visibility":"internal"},{"constant":true,"id":7774,"mutability":"constant","name":"_ROLE_220","nameLocation":"23845:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23819:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7770,"name":"uint256","nodeType":"ElementaryTypeName","src":"23819:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1684996666696914987166688442938726917102321526408785780068975640576_by_1","typeString":"int_const 1684...(59 digits omitted)...0576"},"id":7773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23857:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323230","id":7772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23862:3:18","typeDescriptions":{"typeIdentifier":"t_rational_220_by_1","typeString":"int_const 220"},"value":"220"},"src":"23857:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1684996666696914987166688442938726917102321526408785780068975640576_by_1","typeString":"int_const 1684...(59 digits omitted)...0576"}},"visibility":"internal"},{"constant":true,"id":7779,"mutability":"constant","name":"_ROLE_221","nameLocation":"23897:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23871:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7775,"name":"uint256","nodeType":"ElementaryTypeName","src":"23871:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3369993333393829974333376885877453834204643052817571560137951281152_by_1","typeString":"int_const 3369...(59 digits omitted)...1152"},"id":7778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23909:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323231","id":7777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23914:3:18","typeDescriptions":{"typeIdentifier":"t_rational_221_by_1","typeString":"int_const 221"},"value":"221"},"src":"23909:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3369993333393829974333376885877453834204643052817571560137951281152_by_1","typeString":"int_const 3369...(59 digits omitted)...1152"}},"visibility":"internal"},{"constant":true,"id":7784,"mutability":"constant","name":"_ROLE_222","nameLocation":"23949:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23923:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7780,"name":"uint256","nodeType":"ElementaryTypeName","src":"23923:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6739986666787659948666753771754907668409286105635143120275902562304_by_1","typeString":"int_const 6739...(59 digits omitted)...2304"},"id":7783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23961:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323232","id":7782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23966:3:18","typeDescriptions":{"typeIdentifier":"t_rational_222_by_1","typeString":"int_const 222"},"value":"222"},"src":"23961:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6739986666787659948666753771754907668409286105635143120275902562304_by_1","typeString":"int_const 6739...(59 digits omitted)...2304"}},"visibility":"internal"},{"constant":true,"id":7789,"mutability":"constant","name":"_ROLE_223","nameLocation":"24001:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23975:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7785,"name":"uint256","nodeType":"ElementaryTypeName","src":"23975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13479973333575319897333507543509815336818572211270286240551805124608_by_1","typeString":"int_const 1347...(60 digits omitted)...4608"},"id":7788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24013:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323233","id":7787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24018:3:18","typeDescriptions":{"typeIdentifier":"t_rational_223_by_1","typeString":"int_const 223"},"value":"223"},"src":"24013:8:18","typeDescriptions":{"typeIdentifier":"t_rational_13479973333575319897333507543509815336818572211270286240551805124608_by_1","typeString":"int_const 1347...(60 digits omitted)...4608"}},"visibility":"internal"},{"constant":true,"id":7794,"mutability":"constant","name":"_ROLE_224","nameLocation":"24053:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24027:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7790,"name":"uint256","nodeType":"ElementaryTypeName","src":"24027:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1","typeString":"int_const 2695...(60 digits omitted)...9216"},"id":7793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24065:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":7792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24070:3:18","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"24065:8:18","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1","typeString":"int_const 2695...(60 digits omitted)...9216"}},"visibility":"internal"},{"constant":true,"id":7799,"mutability":"constant","name":"_ROLE_225","nameLocation":"24105:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24079:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7795,"name":"uint256","nodeType":"ElementaryTypeName","src":"24079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_53919893334301279589334030174039261347274288845081144962207220498432_by_1","typeString":"int_const 5391...(60 digits omitted)...8432"},"id":7798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24117:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323235","id":7797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24122:3:18","typeDescriptions":{"typeIdentifier":"t_rational_225_by_1","typeString":"int_const 225"},"value":"225"},"src":"24117:8:18","typeDescriptions":{"typeIdentifier":"t_rational_53919893334301279589334030174039261347274288845081144962207220498432_by_1","typeString":"int_const 5391...(60 digits omitted)...8432"}},"visibility":"internal"},{"constant":true,"id":7804,"mutability":"constant","name":"_ROLE_226","nameLocation":"24157:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24131:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7800,"name":"uint256","nodeType":"ElementaryTypeName","src":"24131:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_107839786668602559178668060348078522694548577690162289924414440996864_by_1","typeString":"int_const 1078...(61 digits omitted)...6864"},"id":7803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24169:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323236","id":7802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24174:3:18","typeDescriptions":{"typeIdentifier":"t_rational_226_by_1","typeString":"int_const 226"},"value":"226"},"src":"24169:8:18","typeDescriptions":{"typeIdentifier":"t_rational_107839786668602559178668060348078522694548577690162289924414440996864_by_1","typeString":"int_const 1078...(61 digits omitted)...6864"}},"visibility":"internal"},{"constant":true,"id":7809,"mutability":"constant","name":"_ROLE_227","nameLocation":"24209:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24183:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7805,"name":"uint256","nodeType":"ElementaryTypeName","src":"24183:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_215679573337205118357336120696157045389097155380324579848828881993728_by_1","typeString":"int_const 2156...(61 digits omitted)...3728"},"id":7808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24221:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323237","id":7807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24226:3:18","typeDescriptions":{"typeIdentifier":"t_rational_227_by_1","typeString":"int_const 227"},"value":"227"},"src":"24221:8:18","typeDescriptions":{"typeIdentifier":"t_rational_215679573337205118357336120696157045389097155380324579848828881993728_by_1","typeString":"int_const 2156...(61 digits omitted)...3728"}},"visibility":"internal"},{"constant":true,"id":7814,"mutability":"constant","name":"_ROLE_228","nameLocation":"24261:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24235:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7810,"name":"uint256","nodeType":"ElementaryTypeName","src":"24235:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_431359146674410236714672241392314090778194310760649159697657763987456_by_1","typeString":"int_const 4313...(61 digits omitted)...7456"},"id":7813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24273:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323238","id":7812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24278:3:18","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"228"},"src":"24273:8:18","typeDescriptions":{"typeIdentifier":"t_rational_431359146674410236714672241392314090778194310760649159697657763987456_by_1","typeString":"int_const 4313...(61 digits omitted)...7456"}},"visibility":"internal"},{"constant":true,"id":7819,"mutability":"constant","name":"_ROLE_229","nameLocation":"24313:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24287:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7815,"name":"uint256","nodeType":"ElementaryTypeName","src":"24287:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_862718293348820473429344482784628181556388621521298319395315527974912_by_1","typeString":"int_const 8627...(61 digits omitted)...4912"},"id":7818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24325:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323239","id":7817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24330:3:18","typeDescriptions":{"typeIdentifier":"t_rational_229_by_1","typeString":"int_const 229"},"value":"229"},"src":"24325:8:18","typeDescriptions":{"typeIdentifier":"t_rational_862718293348820473429344482784628181556388621521298319395315527974912_by_1","typeString":"int_const 8627...(61 digits omitted)...4912"}},"visibility":"internal"},{"constant":true,"id":7824,"mutability":"constant","name":"_ROLE_230","nameLocation":"24365:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24339:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7820,"name":"uint256","nodeType":"ElementaryTypeName","src":"24339:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1725436586697640946858688965569256363112777243042596638790631055949824_by_1","typeString":"int_const 1725...(62 digits omitted)...9824"},"id":7823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24377:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323330","id":7822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24382:3:18","typeDescriptions":{"typeIdentifier":"t_rational_230_by_1","typeString":"int_const 230"},"value":"230"},"src":"24377:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1725436586697640946858688965569256363112777243042596638790631055949824_by_1","typeString":"int_const 1725...(62 digits omitted)...9824"}},"visibility":"internal"},{"constant":true,"id":7829,"mutability":"constant","name":"_ROLE_231","nameLocation":"24417:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24391:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7825,"name":"uint256","nodeType":"ElementaryTypeName","src":"24391:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3450873173395281893717377931138512726225554486085193277581262111899648_by_1","typeString":"int_const 3450...(62 digits omitted)...9648"},"id":7828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24429:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323331","id":7827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24434:3:18","typeDescriptions":{"typeIdentifier":"t_rational_231_by_1","typeString":"int_const 231"},"value":"231"},"src":"24429:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3450873173395281893717377931138512726225554486085193277581262111899648_by_1","typeString":"int_const 3450...(62 digits omitted)...9648"}},"visibility":"internal"},{"constant":true,"id":7834,"mutability":"constant","name":"_ROLE_232","nameLocation":"24469:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24443:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7830,"name":"uint256","nodeType":"ElementaryTypeName","src":"24443:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6901746346790563787434755862277025452451108972170386555162524223799296_by_1","typeString":"int_const 6901...(62 digits omitted)...9296"},"id":7833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24481:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323332","id":7832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24486:3:18","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},"src":"24481:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6901746346790563787434755862277025452451108972170386555162524223799296_by_1","typeString":"int_const 6901...(62 digits omitted)...9296"}},"visibility":"internal"},{"constant":true,"id":7839,"mutability":"constant","name":"_ROLE_233","nameLocation":"24521:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24495:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7835,"name":"uint256","nodeType":"ElementaryTypeName","src":"24495:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13803492693581127574869511724554050904902217944340773110325048447598592_by_1","typeString":"int_const 1380...(63 digits omitted)...8592"},"id":7838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24533:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323333","id":7837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24538:3:18","typeDescriptions":{"typeIdentifier":"t_rational_233_by_1","typeString":"int_const 233"},"value":"233"},"src":"24533:8:18","typeDescriptions":{"typeIdentifier":"t_rational_13803492693581127574869511724554050904902217944340773110325048447598592_by_1","typeString":"int_const 1380...(63 digits omitted)...8592"}},"visibility":"internal"},{"constant":true,"id":7844,"mutability":"constant","name":"_ROLE_234","nameLocation":"24573:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24547:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7840,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_27606985387162255149739023449108101809804435888681546220650096895197184_by_1","typeString":"int_const 2760...(63 digits omitted)...7184"},"id":7843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24585:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323334","id":7842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24590:3:18","typeDescriptions":{"typeIdentifier":"t_rational_234_by_1","typeString":"int_const 234"},"value":"234"},"src":"24585:8:18","typeDescriptions":{"typeIdentifier":"t_rational_27606985387162255149739023449108101809804435888681546220650096895197184_by_1","typeString":"int_const 2760...(63 digits omitted)...7184"}},"visibility":"internal"},{"constant":true,"id":7849,"mutability":"constant","name":"_ROLE_235","nameLocation":"24625:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24599:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7845,"name":"uint256","nodeType":"ElementaryTypeName","src":"24599:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_55213970774324510299478046898216203619608871777363092441300193790394368_by_1","typeString":"int_const 5521...(63 digits omitted)...4368"},"id":7848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24637:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323335","id":7847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24642:3:18","typeDescriptions":{"typeIdentifier":"t_rational_235_by_1","typeString":"int_const 235"},"value":"235"},"src":"24637:8:18","typeDescriptions":{"typeIdentifier":"t_rational_55213970774324510299478046898216203619608871777363092441300193790394368_by_1","typeString":"int_const 5521...(63 digits omitted)...4368"}},"visibility":"internal"},{"constant":true,"id":7854,"mutability":"constant","name":"_ROLE_236","nameLocation":"24677:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24651:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7850,"name":"uint256","nodeType":"ElementaryTypeName","src":"24651:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_110427941548649020598956093796432407239217743554726184882600387580788736_by_1","typeString":"int_const 1104...(64 digits omitted)...8736"},"id":7853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24689:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323336","id":7852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24694:3:18","typeDescriptions":{"typeIdentifier":"t_rational_236_by_1","typeString":"int_const 236"},"value":"236"},"src":"24689:8:18","typeDescriptions":{"typeIdentifier":"t_rational_110427941548649020598956093796432407239217743554726184882600387580788736_by_1","typeString":"int_const 1104...(64 digits omitted)...8736"}},"visibility":"internal"},{"constant":true,"id":7859,"mutability":"constant","name":"_ROLE_237","nameLocation":"24729:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24703:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7855,"name":"uint256","nodeType":"ElementaryTypeName","src":"24703:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_220855883097298041197912187592864814478435487109452369765200775161577472_by_1","typeString":"int_const 2208...(64 digits omitted)...7472"},"id":7858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24741:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323337","id":7857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24746:3:18","typeDescriptions":{"typeIdentifier":"t_rational_237_by_1","typeString":"int_const 237"},"value":"237"},"src":"24741:8:18","typeDescriptions":{"typeIdentifier":"t_rational_220855883097298041197912187592864814478435487109452369765200775161577472_by_1","typeString":"int_const 2208...(64 digits omitted)...7472"}},"visibility":"internal"},{"constant":true,"id":7864,"mutability":"constant","name":"_ROLE_238","nameLocation":"24781:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24755:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7860,"name":"uint256","nodeType":"ElementaryTypeName","src":"24755:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_441711766194596082395824375185729628956870974218904739530401550323154944_by_1","typeString":"int_const 4417...(64 digits omitted)...4944"},"id":7863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24793:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323338","id":7862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24798:3:18","typeDescriptions":{"typeIdentifier":"t_rational_238_by_1","typeString":"int_const 238"},"value":"238"},"src":"24793:8:18","typeDescriptions":{"typeIdentifier":"t_rational_441711766194596082395824375185729628956870974218904739530401550323154944_by_1","typeString":"int_const 4417...(64 digits omitted)...4944"}},"visibility":"internal"},{"constant":true,"id":7869,"mutability":"constant","name":"_ROLE_239","nameLocation":"24833:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24807:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7865,"name":"uint256","nodeType":"ElementaryTypeName","src":"24807:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_883423532389192164791648750371459257913741948437809479060803100646309888_by_1","typeString":"int_const 8834...(64 digits omitted)...9888"},"id":7868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24845:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323339","id":7867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24850:3:18","typeDescriptions":{"typeIdentifier":"t_rational_239_by_1","typeString":"int_const 239"},"value":"239"},"src":"24845:8:18","typeDescriptions":{"typeIdentifier":"t_rational_883423532389192164791648750371459257913741948437809479060803100646309888_by_1","typeString":"int_const 8834...(64 digits omitted)...9888"}},"visibility":"internal"},{"constant":true,"id":7874,"mutability":"constant","name":"_ROLE_240","nameLocation":"24885:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24859:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7870,"name":"uint256","nodeType":"ElementaryTypeName","src":"24859:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"},"id":7873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24897:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323430","id":7872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24902:3:18","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},"src":"24897:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"}},"visibility":"internal"},{"constant":true,"id":7879,"mutability":"constant","name":"_ROLE_241","nameLocation":"24937:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24911:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7875,"name":"uint256","nodeType":"ElementaryTypeName","src":"24911:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3533694129556768659166595001485837031654967793751237916243212402585239552_by_1","typeString":"int_const 3533...(65 digits omitted)...9552"},"id":7878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24949:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323431","id":7877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24954:3:18","typeDescriptions":{"typeIdentifier":"t_rational_241_by_1","typeString":"int_const 241"},"value":"241"},"src":"24949:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3533694129556768659166595001485837031654967793751237916243212402585239552_by_1","typeString":"int_const 3533...(65 digits omitted)...9552"}},"visibility":"internal"},{"constant":true,"id":7884,"mutability":"constant","name":"_ROLE_242","nameLocation":"24989:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24963:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7880,"name":"uint256","nodeType":"ElementaryTypeName","src":"24963:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_7067388259113537318333190002971674063309935587502475832486424805170479104_by_1","typeString":"int_const 7067...(65 digits omitted)...9104"},"id":7883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25001:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323432","id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25006:3:18","typeDescriptions":{"typeIdentifier":"t_rational_242_by_1","typeString":"int_const 242"},"value":"242"},"src":"25001:8:18","typeDescriptions":{"typeIdentifier":"t_rational_7067388259113537318333190002971674063309935587502475832486424805170479104_by_1","typeString":"int_const 7067...(65 digits omitted)...9104"}},"visibility":"internal"},{"constant":true,"id":7889,"mutability":"constant","name":"_ROLE_243","nameLocation":"25041:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25015:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7885,"name":"uint256","nodeType":"ElementaryTypeName","src":"25015:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_14134776518227074636666380005943348126619871175004951664972849610340958208_by_1","typeString":"int_const 1413...(66 digits omitted)...8208"},"id":7888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25053:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323433","id":7887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25058:3:18","typeDescriptions":{"typeIdentifier":"t_rational_243_by_1","typeString":"int_const 243"},"value":"243"},"src":"25053:8:18","typeDescriptions":{"typeIdentifier":"t_rational_14134776518227074636666380005943348126619871175004951664972849610340958208_by_1","typeString":"int_const 1413...(66 digits omitted)...8208"}},"visibility":"internal"},{"constant":true,"id":7894,"mutability":"constant","name":"_ROLE_244","nameLocation":"25093:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25067:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7890,"name":"uint256","nodeType":"ElementaryTypeName","src":"25067:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_28269553036454149273332760011886696253239742350009903329945699220681916416_by_1","typeString":"int_const 2826...(66 digits omitted)...6416"},"id":7893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25105:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323434","id":7892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25110:3:18","typeDescriptions":{"typeIdentifier":"t_rational_244_by_1","typeString":"int_const 244"},"value":"244"},"src":"25105:8:18","typeDescriptions":{"typeIdentifier":"t_rational_28269553036454149273332760011886696253239742350009903329945699220681916416_by_1","typeString":"int_const 2826...(66 digits omitted)...6416"}},"visibility":"internal"},{"constant":true,"id":7899,"mutability":"constant","name":"_ROLE_245","nameLocation":"25145:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25119:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7895,"name":"uint256","nodeType":"ElementaryTypeName","src":"25119:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_56539106072908298546665520023773392506479484700019806659891398441363832832_by_1","typeString":"int_const 5653...(66 digits omitted)...2832"},"id":7898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25157:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323435","id":7897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25162:3:18","typeDescriptions":{"typeIdentifier":"t_rational_245_by_1","typeString":"int_const 245"},"value":"245"},"src":"25157:8:18","typeDescriptions":{"typeIdentifier":"t_rational_56539106072908298546665520023773392506479484700019806659891398441363832832_by_1","typeString":"int_const 5653...(66 digits omitted)...2832"}},"visibility":"internal"},{"constant":true,"id":7904,"mutability":"constant","name":"_ROLE_246","nameLocation":"25197:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25171:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7900,"name":"uint256","nodeType":"ElementaryTypeName","src":"25171:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_113078212145816597093331040047546785012958969400039613319782796882727665664_by_1","typeString":"int_const 1130...(67 digits omitted)...5664"},"id":7903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25209:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323436","id":7902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25214:3:18","typeDescriptions":{"typeIdentifier":"t_rational_246_by_1","typeString":"int_const 246"},"value":"246"},"src":"25209:8:18","typeDescriptions":{"typeIdentifier":"t_rational_113078212145816597093331040047546785012958969400039613319782796882727665664_by_1","typeString":"int_const 1130...(67 digits omitted)...5664"}},"visibility":"internal"},{"constant":true,"id":7909,"mutability":"constant","name":"_ROLE_247","nameLocation":"25249:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25223:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7905,"name":"uint256","nodeType":"ElementaryTypeName","src":"25223:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_226156424291633194186662080095093570025917938800079226639565593765455331328_by_1","typeString":"int_const 2261...(67 digits omitted)...1328"},"id":7908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25261:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323437","id":7907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25266:3:18","typeDescriptions":{"typeIdentifier":"t_rational_247_by_1","typeString":"int_const 247"},"value":"247"},"src":"25261:8:18","typeDescriptions":{"typeIdentifier":"t_rational_226156424291633194186662080095093570025917938800079226639565593765455331328_by_1","typeString":"int_const 2261...(67 digits omitted)...1328"}},"visibility":"internal"},{"constant":true,"id":7914,"mutability":"constant","name":"_ROLE_248","nameLocation":"25301:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25275:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7910,"name":"uint256","nodeType":"ElementaryTypeName","src":"25275:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":7913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25313:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323438","id":7912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25318:3:18","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"25313:8:18","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}},"visibility":"internal"},{"constant":true,"id":7919,"mutability":"constant","name":"_ROLE_249","nameLocation":"25353:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25327:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7915,"name":"uint256","nodeType":"ElementaryTypeName","src":"25327:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_904625697166532776746648320380374280103671755200316906558262375061821325312_by_1","typeString":"int_const 9046...(67 digits omitted)...5312"},"id":7918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25365:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323439","id":7917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25370:3:18","typeDescriptions":{"typeIdentifier":"t_rational_249_by_1","typeString":"int_const 249"},"value":"249"},"src":"25365:8:18","typeDescriptions":{"typeIdentifier":"t_rational_904625697166532776746648320380374280103671755200316906558262375061821325312_by_1","typeString":"int_const 9046...(67 digits omitted)...5312"}},"visibility":"internal"},{"constant":true,"id":7924,"mutability":"constant","name":"_ROLE_250","nameLocation":"25405:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25379:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7920,"name":"uint256","nodeType":"ElementaryTypeName","src":"25379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1809251394333065553493296640760748560207343510400633813116524750123642650624_by_1","typeString":"int_const 1809...(68 digits omitted)...0624"},"id":7923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25417:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323530","id":7922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25422:3:18","typeDescriptions":{"typeIdentifier":"t_rational_250_by_1","typeString":"int_const 250"},"value":"250"},"src":"25417:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1809251394333065553493296640760748560207343510400633813116524750123642650624_by_1","typeString":"int_const 1809...(68 digits omitted)...0624"}},"visibility":"internal"},{"constant":true,"id":7929,"mutability":"constant","name":"_ROLE_251","nameLocation":"25457:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25431:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7925,"name":"uint256","nodeType":"ElementaryTypeName","src":"25431:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3618502788666131106986593281521497120414687020801267626233049500247285301248_by_1","typeString":"int_const 3618...(68 digits omitted)...1248"},"id":7928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25469:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323531","id":7927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25474:3:18","typeDescriptions":{"typeIdentifier":"t_rational_251_by_1","typeString":"int_const 251"},"value":"251"},"src":"25469:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3618502788666131106986593281521497120414687020801267626233049500247285301248_by_1","typeString":"int_const 3618...(68 digits omitted)...1248"}},"visibility":"internal"},{"constant":true,"id":7934,"mutability":"constant","name":"_ROLE_252","nameLocation":"25509:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25483:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7930,"name":"uint256","nodeType":"ElementaryTypeName","src":"25483:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_7237005577332262213973186563042994240829374041602535252466099000494570602496_by_1","typeString":"int_const 7237...(68 digits omitted)...2496"},"id":7933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25521:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323532","id":7932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25526:3:18","typeDescriptions":{"typeIdentifier":"t_rational_252_by_1","typeString":"int_const 252"},"value":"252"},"src":"25521:8:18","typeDescriptions":{"typeIdentifier":"t_rational_7237005577332262213973186563042994240829374041602535252466099000494570602496_by_1","typeString":"int_const 7237...(68 digits omitted)...2496"}},"visibility":"internal"},{"constant":true,"id":7939,"mutability":"constant","name":"_ROLE_253","nameLocation":"25561:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25535:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7935,"name":"uint256","nodeType":"ElementaryTypeName","src":"25535:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_14474011154664524427946373126085988481658748083205070504932198000989141204992_by_1","typeString":"int_const 1447...(69 digits omitted)...4992"},"id":7938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25573:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323533","id":7937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25578:3:18","typeDescriptions":{"typeIdentifier":"t_rational_253_by_1","typeString":"int_const 253"},"value":"253"},"src":"25573:8:18","typeDescriptions":{"typeIdentifier":"t_rational_14474011154664524427946373126085988481658748083205070504932198000989141204992_by_1","typeString":"int_const 1447...(69 digits omitted)...4992"}},"visibility":"internal"},{"constant":true,"id":7944,"mutability":"constant","name":"_ROLE_254","nameLocation":"25613:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25587:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7940,"name":"uint256","nodeType":"ElementaryTypeName","src":"25587:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1","typeString":"int_const 2894...(69 digits omitted)...9984"},"id":7943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25625:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323534","id":7942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25630:3:18","typeDescriptions":{"typeIdentifier":"t_rational_254_by_1","typeString":"int_const 254"},"value":"254"},"src":"25625:8:18","typeDescriptions":{"typeIdentifier":"t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1","typeString":"int_const 2894...(69 digits omitted)...9984"}},"visibility":"internal"},{"constant":true,"id":7949,"mutability":"constant","name":"_ROLE_255","nameLocation":"25665:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25639:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7945,"name":"uint256","nodeType":"ElementaryTypeName","src":"25639:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"id":7948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25677:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323535","id":7947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25682:3:18","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"25677:8:18","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}},"visibility":"internal"}],"scope":7951,"src":"467:25221:18","usedErrors":[6235,6238,6241,6244],"usedEvents":[6251,6256,6261,6437]}],"src":"32:25657:18"},"id":18},"@solady/tokens/ERC20.sol":{"ast":{"absolutePath":"@solady/tokens/ERC20.sol","exportedSymbols":{"ERC20":[8369]},"id":8370,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7952,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:19"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":7953,"nodeType":"StructuredDocumentation","src":"57:1083:19","text":"@notice Simple ERC20 + EIP-2612 implementation.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\n @dev Note:\n - The ERC20 standard allows minting and transferring to and from the zero address,\n minting and transferring zero tokens, as well as self-approvals.\n For performance, this implementation WILL NOT revert for such actions.\n Please add any checks with overrides if desired.\n - The `permit` function uses the ecrecover precompile (0x1).\n If you are overriding:\n - NEVER violate the ERC20 invariant:\n the total sum of all balances must be equal to `totalSupply()`.\n - Check that the overridden function is actually used in the function you want to\n change the behavior of. Much of the code has been manually inlined for performance."},"fullyImplemented":false,"id":8369,"linearizedBaseContracts":[8369],"name":"ERC20","nameLocation":"1158:5:19","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7954,"nodeType":"StructuredDocumentation","src":"1453:41:19","text":"@dev The total supply has overflowed."},"errorSelector":"e5cfe957","id":7956,"name":"TotalSupplyOverflow","nameLocation":"1505:19:19","nodeType":"ErrorDefinition","parameters":{"id":7955,"nodeType":"ParameterList","parameters":[],"src":"1524:2:19"},"src":"1499:28:19"},{"documentation":{"id":7957,"nodeType":"StructuredDocumentation","src":"1533:38:19","text":"@dev The allowance has overflowed."},"errorSelector":"f9067066","id":7959,"name":"AllowanceOverflow","nameLocation":"1582:17:19","nodeType":"ErrorDefinition","parameters":{"id":7958,"nodeType":"ParameterList","parameters":[],"src":"1599:2:19"},"src":"1576:26:19"},{"documentation":{"id":7960,"nodeType":"StructuredDocumentation","src":"1608:39:19","text":"@dev The allowance has underflowed."},"errorSelector":"8301ab38","id":7962,"name":"AllowanceUnderflow","nameLocation":"1658:18:19","nodeType":"ErrorDefinition","parameters":{"id":7961,"nodeType":"ParameterList","parameters":[],"src":"1676:2:19"},"src":"1652:27:19"},{"documentation":{"id":7963,"nodeType":"StructuredDocumentation","src":"1685:30:19","text":"@dev Insufficient balance."},"errorSelector":"f4d678b8","id":7965,"name":"InsufficientBalance","nameLocation":"1726:19:19","nodeType":"ErrorDefinition","parameters":{"id":7964,"nodeType":"ParameterList","parameters":[],"src":"1745:2:19"},"src":"1720:28:19"},{"documentation":{"id":7966,"nodeType":"StructuredDocumentation","src":"1754:32:19","text":"@dev Insufficient allowance."},"errorSelector":"13be252b","id":7968,"name":"InsufficientAllowance","nameLocation":"1797:21:19","nodeType":"ErrorDefinition","parameters":{"id":7967,"nodeType":"ParameterList","parameters":[],"src":"1818:2:19"},"src":"1791:30:19"},{"documentation":{"id":7969,"nodeType":"StructuredDocumentation","src":"1827:31:19","text":"@dev The permit is invalid."},"errorSelector":"ddafbaef","id":7971,"name":"InvalidPermit","nameLocation":"1869:13:19","nodeType":"ErrorDefinition","parameters":{"id":7970,"nodeType":"ParameterList","parameters":[],"src":"1882:2:19"},"src":"1863:22:19"},{"documentation":{"id":7972,"nodeType":"StructuredDocumentation","src":"1891:32:19","text":"@dev The permit has expired."},"errorSelector":"1a15a3cc","id":7974,"name":"PermitExpired","nameLocation":"1934:13:19","nodeType":"ErrorDefinition","parameters":{"id":7973,"nodeType":"ParameterList","parameters":[],"src":"1947:2:19"},"src":"1928:22:19"},{"anonymous":false,"documentation":{"id":7975,"nodeType":"StructuredDocumentation","src":"2239:73:19","text":"@dev Emitted when `amount` tokens is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":7983,"name":"Transfer","nameLocation":"2323:8:19","nodeType":"EventDefinition","parameters":{"id":7982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7977,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2348:4:19","nodeType":"VariableDeclaration","scope":7983,"src":"2332:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7976,"name":"address","nodeType":"ElementaryTypeName","src":"2332:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7979,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"2370:2:19","nodeType":"VariableDeclaration","scope":7983,"src":"2354:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7978,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7981,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2382:6:19","nodeType":"VariableDeclaration","scope":7983,"src":"2374:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7980,"name":"uint256","nodeType":"ElementaryTypeName","src":"2374:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2331:58:19"},"src":"2317:73:19"},{"anonymous":false,"documentation":{"id":7984,"nodeType":"StructuredDocumentation","src":"2396:85:19","text":"@dev Emitted when `amount` tokens is approved by `owner` to be used by `spender`."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":7992,"name":"Approval","nameLocation":"2492:8:19","nodeType":"EventDefinition","parameters":{"id":7991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7986,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"2517:5:19","nodeType":"VariableDeclaration","scope":7992,"src":"2501:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7985,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7988,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"2540:7:19","nodeType":"VariableDeclaration","scope":7992,"src":"2524:23:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7987,"name":"address","nodeType":"ElementaryTypeName","src":"2524:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7990,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2557:6:19","nodeType":"VariableDeclaration","scope":7992,"src":"2549:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2500:64:19"},"src":"2486:79:19"},{"constant":true,"documentation":{"id":7993,"nodeType":"StructuredDocumentation","src":"2571:65:19","text":"@dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`."},"id":7996,"mutability":"constant","name":"_TRANSFER_EVENT_SIGNATURE","nameLocation":"2666:25:19","nodeType":"VariableDeclaration","scope":8369,"src":"2641:127:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2641:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864646632353261643162653263383962363963326230363866633337386461613935326261376631363363346131313632386635356134646635323362336566","id":7995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2702:66:19","typeDescriptions":{"typeIdentifier":"t_rational_100389287136786176327247604509743168900146139575972864366142685224231313322991_by_1","typeString":"int_const 1003...(70 digits omitted)...2991"},"value":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},"visibility":"private"},{"constant":true,"documentation":{"id":7997,"nodeType":"StructuredDocumentation","src":"2775:65:19","text":"@dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`."},"id":8000,"mutability":"constant","name":"_APPROVAL_EVENT_SIGNATURE","nameLocation":"2870:25:19","nodeType":"VariableDeclaration","scope":8369,"src":"2845:127:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7998,"name":"uint256","nodeType":"ElementaryTypeName","src":"2845:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838633562653165356562656337643562643134663731343237643165383466336464303331346330663762323239316535623230306163386337633362393235","id":7999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2906:66:19","typeDescriptions":{"typeIdentifier":"t_rational_63486140976153616755203102783360879283472101686154884697241723088393386309925_by_1","typeString":"int_const 6348...(69 digits omitted)...9925"},"value":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},"visibility":"private"},{"constant":true,"documentation":{"id":8001,"nodeType":"StructuredDocumentation","src":"3262:47:19","text":"@dev The storage slot for the total supply."},"id":8004,"mutability":"constant","name":"_TOTAL_SUPPLY_SLOT","nameLocation":"3339:18:19","nodeType":"VariableDeclaration","scope":8369,"src":"3314:66:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8002,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078303533343563646637376562363866343463","id":8003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3360:20:19","typeDescriptions":{"typeIdentifier":"t_rational_96006856662521017420_by_1","typeString":"int_const 96006856662521017420"},"value":"0x05345cdf77eb68f44c"},"visibility":"private"},{"constant":true,"documentation":{"id":8005,"nodeType":"StructuredDocumentation","src":"3387:203:19","text":"@dev The balance slot of `owner` is given by:\n ```\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x20)\n ```"},"id":8008,"mutability":"constant","name":"_BALANCE_SLOT_SEED","nameLocation":"3620:18:19","nodeType":"VariableDeclaration","scope":8369,"src":"3595:56:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8006,"name":"uint256","nodeType":"ElementaryTypeName","src":"3595:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783837613231316132","id":8007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3641:10:19","typeDescriptions":{"typeIdentifier":"t_rational_2275545506_by_1","typeString":"int_const 2275545506"},"value":"0x87a211a2"},"visibility":"private"},{"constant":true,"documentation":{"id":8009,"nodeType":"StructuredDocumentation","src":"3658:256:19","text":"@dev The allowance slot of (`owner`, `spender`) is given by:\n ```\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n let allowanceSlot := keccak256(0x0c, 0x34)\n ```"},"id":8012,"mutability":"constant","name":"_ALLOWANCE_SLOT_SEED","nameLocation":"3944:20:19","nodeType":"VariableDeclaration","scope":8369,"src":"3919:58:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8010,"name":"uint256","nodeType":"ElementaryTypeName","src":"3919:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783766356539663230","id":8011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3967:10:19","typeDescriptions":{"typeIdentifier":"t_rational_2136907552_by_1","typeString":"int_const 2136907552"},"value":"0x7f5e9f20"},"visibility":"private"},{"constant":true,"documentation":{"id":8013,"nodeType":"StructuredDocumentation","src":"3984:198:19","text":"@dev The nonce slot of `owner` is given by:\n ```\n mstore(0x0c, _NONCES_SLOT_SEED)\n mstore(0x00, owner)\n let nonceSlot := keccak256(0x0c, 0x20)\n ```"},"id":8016,"mutability":"constant","name":"_NONCES_SLOT_SEED","nameLocation":"4212:17:19","nodeType":"VariableDeclaration","scope":8369,"src":"4187:55:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8014,"name":"uint256","nodeType":"ElementaryTypeName","src":"4187:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783338333737353038","id":8015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4232:10:19","typeDescriptions":{"typeIdentifier":"t_rational_943158536_by_1","typeString":"int_const 943158536"},"value":"0x38377508"},"visibility":"private"},{"constant":true,"documentation":{"id":8017,"nodeType":"StructuredDocumentation","src":"4532:46:19","text":"@dev `(_NONCES_SLOT_SEED << 16) | 0x1901`."},"id":8020,"mutability":"constant","name":"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX","nameLocation":"4608:39:19","nodeType":"VariableDeclaration","scope":8369,"src":"4583:81:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8018,"name":"uint256","nodeType":"ElementaryTypeName","src":"4583:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078333833373735303831393031","id":8019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4650:14:19","typeDescriptions":{"typeIdentifier":"t_rational_61810837821697_by_1","typeString":"int_const 61810837821697"},"value":"0x383775081901"},"visibility":"private"},{"constant":true,"documentation":{"id":8021,"nodeType":"StructuredDocumentation","src":"4671:107:19","text":"@dev `keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")`."},"id":8024,"mutability":"constant","name":"_DOMAIN_TYPEHASH","nameLocation":"4808:16:19","nodeType":"VariableDeclaration","scope":8369,"src":"4783:118:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4783:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838623733633363363962623866653364353132656363346366373539636337393233396637623137396230666661636161396137356435323262333934303066","id":8023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:66:19","typeDescriptions":{"typeIdentifier":"t_rational_63076024560530113402979550242307453568063438748328787417531900361828837441551_by_1","typeString":"int_const 6307...(69 digits omitted)...1551"},"value":"0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f"},"visibility":"private"},{"constant":true,"documentation":{"id":8025,"nodeType":"StructuredDocumentation","src":"4908:26:19","text":"@dev `keccak256(\"1\")`."},"id":8028,"mutability":"constant","name":"_VERSION_HASH","nameLocation":"4964:13:19","nodeType":"VariableDeclaration","scope":8369,"src":"4939:115:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4939:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863383965666461613534633066323063376164663631323838326466303935306635613935313633376530333037636463623463363732663239386238626336","id":8027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4988:66:19","typeDescriptions":{"typeIdentifier":"t_rational_90743482286830539503240959006302832933333810038750515972785732718729991261126_by_1","typeString":"int_const 9074...(69 digits omitted)...1126"},"value":"0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6"},"visibility":"private"},{"constant":true,"documentation":{"id":8029,"nodeType":"StructuredDocumentation","src":"5061:107:19","text":"@dev `keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\")`."},"id":8032,"mutability":"constant","name":"_PERMIT_TYPEHASH","nameLocation":"5198:16:19","nodeType":"VariableDeclaration","scope":8369,"src":"5173:118:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5173:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339","id":8031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5225:66:19","typeDescriptions":{"typeIdentifier":"t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1","typeString":"int_const 4995...(69 digits omitted)...3241"},"value":"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"},"visibility":"private"},{"documentation":{"id":8033,"nodeType":"StructuredDocumentation","src":"5581:39:19","text":"@dev Returns the name of the token."},"functionSelector":"06fdde03","id":8038,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"5634:4:19","nodeType":"FunctionDefinition","parameters":{"id":8034,"nodeType":"ParameterList","parameters":[],"src":"5638:2:19"},"returnParameters":{"id":8037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8038,"src":"5670:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8035,"name":"string","nodeType":"ElementaryTypeName","src":"5670:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5669:15:19"},"scope":8369,"src":"5625:60:19","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8039,"nodeType":"StructuredDocumentation","src":"5691:41:19","text":"@dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":8044,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"5746:6:19","nodeType":"FunctionDefinition","parameters":{"id":8040,"nodeType":"ParameterList","parameters":[],"src":"5752:2:19"},"returnParameters":{"id":8043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8044,"src":"5784:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8041,"name":"string","nodeType":"ElementaryTypeName","src":"5784:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5783:15:19"},"scope":8369,"src":"5737:62:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8052,"nodeType":"Block","src":"5916:26:19","statements":[{"expression":{"hexValue":"3138","id":8050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5933:2:19","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":8049,"id":8051,"nodeType":"Return","src":"5926:9:19"}]},"documentation":{"id":8045,"nodeType":"StructuredDocumentation","src":"5805:50:19","text":"@dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":8053,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"5869:8:19","nodeType":"FunctionDefinition","parameters":{"id":8046,"nodeType":"ParameterList","parameters":[],"src":"5877:2:19"},"returnParameters":{"id":8049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8053,"src":"5909:5:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8047,"name":"uint8","nodeType":"ElementaryTypeName","src":"5909:5:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5908:7:19"},"scope":8369,"src":"5860:82:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8060,"nodeType":"Block","src":"6355:127:19","statements":[{"AST":{"nativeSrc":"6417:59:19","nodeType":"YulBlock","src":"6417:59:19","statements":[{"nativeSrc":"6431:35:19","nodeType":"YulAssignment","src":"6431:35:19","value":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"6447:18:19","nodeType":"YulIdentifier","src":"6447:18:19"}],"functionName":{"name":"sload","nativeSrc":"6441:5:19","nodeType":"YulIdentifier","src":"6441:5:19"},"nativeSrc":"6441:25:19","nodeType":"YulFunctionCall","src":"6441:25:19"},"variableNames":[{"name":"result","nativeSrc":"6431:6:19","nodeType":"YulIdentifier","src":"6431:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8004,"isOffset":false,"isSlot":false,"src":"6447:18:19","valueSize":1},{"declaration":8057,"isOffset":false,"isSlot":false,"src":"6431:6:19","valueSize":1}],"id":8059,"nodeType":"InlineAssembly","src":"6408:68:19"}]},"documentation":{"id":8054,"nodeType":"StructuredDocumentation","src":"6231:51:19","text":"@dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":8061,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"6296:11:19","nodeType":"FunctionDefinition","parameters":{"id":8055,"nodeType":"ParameterList","parameters":[],"src":"6307:2:19"},"returnParameters":{"id":8058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8057,"mutability":"mutable","name":"result","nameLocation":"6347:6:19","nodeType":"VariableDeclaration","scope":8061,"src":"6339:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8056,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6338:16:19"},"scope":8369,"src":"6287:195:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8070,"nodeType":"Block","src":"6627:207:19","statements":[{"AST":{"nativeSrc":"6689:139:19","nodeType":"YulBlock","src":"6689:139:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6710:4:19","nodeType":"YulLiteral","src":"6710:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"6716:18:19","nodeType":"YulIdentifier","src":"6716:18:19"}],"functionName":{"name":"mstore","nativeSrc":"6703:6:19","nodeType":"YulIdentifier","src":"6703:6:19"},"nativeSrc":"6703:32:19","nodeType":"YulFunctionCall","src":"6703:32:19"},"nativeSrc":"6703:32:19","nodeType":"YulExpressionStatement","src":"6703:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6755:4:19","nodeType":"YulLiteral","src":"6755:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"6761:5:19","nodeType":"YulIdentifier","src":"6761:5:19"}],"functionName":{"name":"mstore","nativeSrc":"6748:6:19","nodeType":"YulIdentifier","src":"6748:6:19"},"nativeSrc":"6748:19:19","nodeType":"YulFunctionCall","src":"6748:19:19"},"nativeSrc":"6748:19:19","nodeType":"YulExpressionStatement","src":"6748:19:19"},{"nativeSrc":"6780:38:19","nodeType":"YulAssignment","src":"6780:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6806:4:19","nodeType":"YulLiteral","src":"6806:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"6812:4:19","nodeType":"YulLiteral","src":"6812:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6796:9:19","nodeType":"YulIdentifier","src":"6796:9:19"},"nativeSrc":"6796:21:19","nodeType":"YulFunctionCall","src":"6796:21:19"}],"functionName":{"name":"sload","nativeSrc":"6790:5:19","nodeType":"YulIdentifier","src":"6790:5:19"},"nativeSrc":"6790:28:19","nodeType":"YulFunctionCall","src":"6790:28:19"},"variableNames":[{"name":"result","nativeSrc":"6780:6:19","nodeType":"YulIdentifier","src":"6780:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"6716:18:19","valueSize":1},{"declaration":8064,"isOffset":false,"isSlot":false,"src":"6761:5:19","valueSize":1},{"declaration":8067,"isOffset":false,"isSlot":false,"src":"6780:6:19","valueSize":1}],"id":8069,"nodeType":"InlineAssembly","src":"6680:148:19"}]},"documentation":{"id":8062,"nodeType":"StructuredDocumentation","src":"6488:55:19","text":"@dev Returns the amount of tokens owned by `owner`."},"functionSelector":"70a08231","id":8071,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"6557:9:19","nodeType":"FunctionDefinition","parameters":{"id":8065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8064,"mutability":"mutable","name":"owner","nameLocation":"6575:5:19","nodeType":"VariableDeclaration","scope":8071,"src":"6567:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8063,"name":"address","nodeType":"ElementaryTypeName","src":"6567:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6566:15:19"},"returnParameters":{"id":8068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8067,"mutability":"mutable","name":"result","nameLocation":"6619:6:19","nodeType":"VariableDeclaration","scope":8071,"src":"6611:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8066,"name":"uint256","nodeType":"ElementaryTypeName","src":"6611:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6610:16:19"},"scope":8369,"src":"6548:286:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8082,"nodeType":"Block","src":"7061:243:19","statements":[{"AST":{"nativeSrc":"7123:175:19","nodeType":"YulBlock","src":"7123:175:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7144:4:19","nodeType":"YulLiteral","src":"7144:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"7150:7:19","nodeType":"YulIdentifier","src":"7150:7:19"}],"functionName":{"name":"mstore","nativeSrc":"7137:6:19","nodeType":"YulIdentifier","src":"7137:6:19"},"nativeSrc":"7137:21:19","nodeType":"YulFunctionCall","src":"7137:21:19"},"nativeSrc":"7137:21:19","nodeType":"YulExpressionStatement","src":"7137:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7178:4:19","nodeType":"YulLiteral","src":"7178:4:19","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"7184:20:19","nodeType":"YulIdentifier","src":"7184:20:19"}],"functionName":{"name":"mstore","nativeSrc":"7171:6:19","nodeType":"YulIdentifier","src":"7171:6:19"},"nativeSrc":"7171:34:19","nodeType":"YulFunctionCall","src":"7171:34:19"},"nativeSrc":"7171:34:19","nodeType":"YulExpressionStatement","src":"7171:34:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7225:4:19","nodeType":"YulLiteral","src":"7225:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"7231:5:19","nodeType":"YulIdentifier","src":"7231:5:19"}],"functionName":{"name":"mstore","nativeSrc":"7218:6:19","nodeType":"YulIdentifier","src":"7218:6:19"},"nativeSrc":"7218:19:19","nodeType":"YulFunctionCall","src":"7218:19:19"},"nativeSrc":"7218:19:19","nodeType":"YulExpressionStatement","src":"7218:19:19"},{"nativeSrc":"7250:38:19","nodeType":"YulAssignment","src":"7250:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7276:4:19","nodeType":"YulLiteral","src":"7276:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7282:4:19","nodeType":"YulLiteral","src":"7282:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"7266:9:19","nodeType":"YulIdentifier","src":"7266:9:19"},"nativeSrc":"7266:21:19","nodeType":"YulFunctionCall","src":"7266:21:19"}],"functionName":{"name":"sload","nativeSrc":"7260:5:19","nodeType":"YulIdentifier","src":"7260:5:19"},"nativeSrc":"7260:28:19","nodeType":"YulFunctionCall","src":"7260:28:19"},"variableNames":[{"name":"result","nativeSrc":"7250:6:19","nodeType":"YulIdentifier","src":"7250:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"7184:20:19","valueSize":1},{"declaration":8074,"isOffset":false,"isSlot":false,"src":"7231:5:19","valueSize":1},{"declaration":8079,"isOffset":false,"isSlot":false,"src":"7250:6:19","valueSize":1},{"declaration":8076,"isOffset":false,"isSlot":false,"src":"7150:7:19","valueSize":1}],"id":8081,"nodeType":"InlineAssembly","src":"7114:184:19"}]},"documentation":{"id":8072,"nodeType":"StructuredDocumentation","src":"6840:84:19","text":"@dev Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"functionSelector":"dd62ed3e","id":8083,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"6938:9:19","nodeType":"FunctionDefinition","parameters":{"id":8077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8074,"mutability":"mutable","name":"owner","nameLocation":"6956:5:19","nodeType":"VariableDeclaration","scope":8083,"src":"6948:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8073,"name":"address","nodeType":"ElementaryTypeName","src":"6948:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8076,"mutability":"mutable","name":"spender","nameLocation":"6971:7:19","nodeType":"VariableDeclaration","scope":8083,"src":"6963:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8075,"name":"address","nodeType":"ElementaryTypeName","src":"6963:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6947:32:19"},"returnParameters":{"id":8080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8079,"mutability":"mutable","name":"result","nameLocation":"7049:6:19","nodeType":"VariableDeclaration","scope":8083,"src":"7041:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8078,"name":"uint256","nodeType":"ElementaryTypeName","src":"7041:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7040:16:19"},"scope":8369,"src":"6929:375:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8096,"nodeType":"Block","src":"7515:493:19","statements":[{"AST":{"nativeSrc":"7577:404:19","nodeType":"YulBlock","src":"7577:404:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7662:4:19","nodeType":"YulLiteral","src":"7662:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"7668:7:19","nodeType":"YulIdentifier","src":"7668:7:19"}],"functionName":{"name":"mstore","nativeSrc":"7655:6:19","nodeType":"YulIdentifier","src":"7655:6:19"},"nativeSrc":"7655:21:19","nodeType":"YulFunctionCall","src":"7655:21:19"},"nativeSrc":"7655:21:19","nodeType":"YulExpressionStatement","src":"7655:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7696:4:19","nodeType":"YulLiteral","src":"7696:4:19","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"7702:20:19","nodeType":"YulIdentifier","src":"7702:20:19"}],"functionName":{"name":"mstore","nativeSrc":"7689:6:19","nodeType":"YulIdentifier","src":"7689:6:19"},"nativeSrc":"7689:34:19","nodeType":"YulFunctionCall","src":"7689:34:19"},"nativeSrc":"7689:34:19","nodeType":"YulExpressionStatement","src":"7689:34:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7743:4:19","nodeType":"YulLiteral","src":"7743:4:19","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7749:6:19","nodeType":"YulIdentifier","src":"7749:6:19"},"nativeSrc":"7749:8:19","nodeType":"YulFunctionCall","src":"7749:8:19"}],"functionName":{"name":"mstore","nativeSrc":"7736:6:19","nodeType":"YulIdentifier","src":"7736:6:19"},"nativeSrc":"7736:22:19","nodeType":"YulFunctionCall","src":"7736:22:19"},"nativeSrc":"7736:22:19","nodeType":"YulExpressionStatement","src":"7736:22:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7788:4:19","nodeType":"YulLiteral","src":"7788:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7794:4:19","nodeType":"YulLiteral","src":"7794:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"7778:9:19","nodeType":"YulIdentifier","src":"7778:9:19"},"nativeSrc":"7778:21:19","nodeType":"YulFunctionCall","src":"7778:21:19"},{"name":"amount","nativeSrc":"7801:6:19","nodeType":"YulIdentifier","src":"7801:6:19"}],"functionName":{"name":"sstore","nativeSrc":"7771:6:19","nodeType":"YulIdentifier","src":"7771:6:19"},"nativeSrc":"7771:37:19","nodeType":"YulFunctionCall","src":"7771:37:19"},"nativeSrc":"7771:37:19","nodeType":"YulExpressionStatement","src":"7771:37:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7870:4:19","nodeType":"YulLiteral","src":"7870:4:19","type":"","value":"0x00"},{"name":"amount","nativeSrc":"7876:6:19","nodeType":"YulIdentifier","src":"7876:6:19"}],"functionName":{"name":"mstore","nativeSrc":"7863:6:19","nodeType":"YulIdentifier","src":"7863:6:19"},"nativeSrc":"7863:20:19","nodeType":"YulFunctionCall","src":"7863:20:19"},"nativeSrc":"7863:20:19","nodeType":"YulExpressionStatement","src":"7863:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7901:4:19","nodeType":"YulLiteral","src":"7901:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7907:4:19","nodeType":"YulLiteral","src":"7907:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"7913:25:19","nodeType":"YulIdentifier","src":"7913:25:19"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7940:6:19","nodeType":"YulIdentifier","src":"7940:6:19"},"nativeSrc":"7940:8:19","nodeType":"YulFunctionCall","src":"7940:8:19"},{"arguments":[{"kind":"number","nativeSrc":"7954:2:19","nodeType":"YulLiteral","src":"7954:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"7964:4:19","nodeType":"YulLiteral","src":"7964:4:19","type":"","value":"0x2c"}],"functionName":{"name":"mload","nativeSrc":"7958:5:19","nodeType":"YulIdentifier","src":"7958:5:19"},"nativeSrc":"7958:11:19","nodeType":"YulFunctionCall","src":"7958:11:19"}],"functionName":{"name":"shr","nativeSrc":"7950:3:19","nodeType":"YulIdentifier","src":"7950:3:19"},"nativeSrc":"7950:20:19","nodeType":"YulFunctionCall","src":"7950:20:19"}],"functionName":{"name":"log3","nativeSrc":"7896:4:19","nodeType":"YulIdentifier","src":"7896:4:19"},"nativeSrc":"7896:75:19","nodeType":"YulFunctionCall","src":"7896:75:19"},"nativeSrc":"7896:75:19","nodeType":"YulExpressionStatement","src":"7896:75:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"7702:20:19","valueSize":1},{"declaration":8000,"isOffset":false,"isSlot":false,"src":"7913:25:19","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"7801:6:19","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"7876:6:19","valueSize":1},{"declaration":8086,"isOffset":false,"isSlot":false,"src":"7668:7:19","valueSize":1}],"id":8093,"nodeType":"InlineAssembly","src":"7568:413:19"},{"expression":{"hexValue":"74727565","id":8094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7997:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8092,"id":8095,"nodeType":"Return","src":"7990:11:19"}]},"documentation":{"id":8084,"nodeType":"StructuredDocumentation","src":"7310:120:19","text":"@dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Emits a {Approval} event."},"functionSelector":"095ea7b3","id":8097,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"7444:7:19","nodeType":"FunctionDefinition","parameters":{"id":8089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8086,"mutability":"mutable","name":"spender","nameLocation":"7460:7:19","nodeType":"VariableDeclaration","scope":8097,"src":"7452:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8085,"name":"address","nodeType":"ElementaryTypeName","src":"7452:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8088,"mutability":"mutable","name":"amount","nameLocation":"7477:6:19","nodeType":"VariableDeclaration","scope":8097,"src":"7469:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8087,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7451:33:19"},"returnParameters":{"id":8092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8097,"src":"7509:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8090,"name":"bool","nodeType":"ElementaryTypeName","src":"7509:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7508:6:19"},"scope":8369,"src":"7435:573:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8124,"nodeType":"Block","src":"8271:1330:19","statements":[{"expression":{"arguments":[{"expression":{"id":8108,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8302:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8306:6:19","memberName":"sender","nodeType":"MemberAccess","src":"8302:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8110,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"8314:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8111,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"8318:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8107,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"8281:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8281:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8113,"nodeType":"ExpressionStatement","src":"8281:44:19"},{"AST":{"nativeSrc":"8387:1134:19","nodeType":"YulBlock","src":"8387:1134:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8468:4:19","nodeType":"YulLiteral","src":"8468:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"8474:18:19","nodeType":"YulIdentifier","src":"8474:18:19"}],"functionName":{"name":"mstore","nativeSrc":"8461:6:19","nodeType":"YulIdentifier","src":"8461:6:19"},"nativeSrc":"8461:32:19","nodeType":"YulFunctionCall","src":"8461:32:19"},"nativeSrc":"8461:32:19","nodeType":"YulExpressionStatement","src":"8461:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8513:4:19","nodeType":"YulLiteral","src":"8513:4:19","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"8519:6:19","nodeType":"YulIdentifier","src":"8519:6:19"},"nativeSrc":"8519:8:19","nodeType":"YulFunctionCall","src":"8519:8:19"}],"functionName":{"name":"mstore","nativeSrc":"8506:6:19","nodeType":"YulIdentifier","src":"8506:6:19"},"nativeSrc":"8506:22:19","nodeType":"YulFunctionCall","src":"8506:22:19"},"nativeSrc":"8506:22:19","nodeType":"YulExpressionStatement","src":"8506:22:19"},{"nativeSrc":"8541:44:19","nodeType":"YulVariableDeclaration","src":"8541:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"8574:4:19","nodeType":"YulLiteral","src":"8574:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"8580:4:19","nodeType":"YulLiteral","src":"8580:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8564:9:19","nodeType":"YulIdentifier","src":"8564:9:19"},"nativeSrc":"8564:21:19","nodeType":"YulFunctionCall","src":"8564:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"8545:15:19","nodeType":"YulTypedName","src":"8545:15:19","type":""}]},{"nativeSrc":"8598:41:19","nodeType":"YulVariableDeclaration","src":"8598:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"8623:15:19","nodeType":"YulIdentifier","src":"8623:15:19"}],"functionName":{"name":"sload","nativeSrc":"8617:5:19","nodeType":"YulIdentifier","src":"8617:5:19"},"nativeSrc":"8617:22:19","nodeType":"YulFunctionCall","src":"8617:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"8602:11:19","nodeType":"YulTypedName","src":"8602:11:19","type":""}]},{"body":{"nativeSrc":"8726:119:19","nodeType":"YulBlock","src":"8726:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8751:4:19","nodeType":"YulLiteral","src":"8751:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8757:10:19","nodeType":"YulLiteral","src":"8757:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"8744:6:19","nodeType":"YulIdentifier","src":"8744:6:19"},"nativeSrc":"8744:24:19","nodeType":"YulFunctionCall","src":"8744:24:19"},"nativeSrc":"8744:24:19","nodeType":"YulExpressionStatement","src":"8744:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8820:4:19","nodeType":"YulLiteral","src":"8820:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8826:4:19","nodeType":"YulLiteral","src":"8826:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8813:6:19","nodeType":"YulIdentifier","src":"8813:6:19"},"nativeSrc":"8813:18:19","nodeType":"YulFunctionCall","src":"8813:18:19"},"nativeSrc":"8813:18:19","nodeType":"YulExpressionStatement","src":"8813:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"8705:6:19","nodeType":"YulIdentifier","src":"8705:6:19"},{"name":"fromBalance","nativeSrc":"8713:11:19","nodeType":"YulIdentifier","src":"8713:11:19"}],"functionName":{"name":"gt","nativeSrc":"8702:2:19","nodeType":"YulIdentifier","src":"8702:2:19"},"nativeSrc":"8702:23:19","nodeType":"YulFunctionCall","src":"8702:23:19"},"nativeSrc":"8699:146:19","nodeType":"YulIf","src":"8699:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"8920:15:19","nodeType":"YulIdentifier","src":"8920:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"8941:11:19","nodeType":"YulIdentifier","src":"8941:11:19"},{"name":"amount","nativeSrc":"8954:6:19","nodeType":"YulIdentifier","src":"8954:6:19"}],"functionName":{"name":"sub","nativeSrc":"8937:3:19","nodeType":"YulIdentifier","src":"8937:3:19"},"nativeSrc":"8937:24:19","nodeType":"YulFunctionCall","src":"8937:24:19"}],"functionName":{"name":"sstore","nativeSrc":"8913:6:19","nodeType":"YulIdentifier","src":"8913:6:19"},"nativeSrc":"8913:49:19","nodeType":"YulFunctionCall","src":"8913:49:19"},"nativeSrc":"8913:49:19","nodeType":"YulExpressionStatement","src":"8913:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9031:4:19","nodeType":"YulLiteral","src":"9031:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"9037:2:19","nodeType":"YulIdentifier","src":"9037:2:19"}],"functionName":{"name":"mstore","nativeSrc":"9024:6:19","nodeType":"YulIdentifier","src":"9024:6:19"},"nativeSrc":"9024:16:19","nodeType":"YulFunctionCall","src":"9024:16:19"},"nativeSrc":"9024:16:19","nodeType":"YulExpressionStatement","src":"9024:16:19"},{"nativeSrc":"9053:42:19","nodeType":"YulVariableDeclaration","src":"9053:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"9084:4:19","nodeType":"YulLiteral","src":"9084:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9090:4:19","nodeType":"YulLiteral","src":"9090:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9074:9:19","nodeType":"YulIdentifier","src":"9074:9:19"},"nativeSrc":"9074:21:19","nodeType":"YulFunctionCall","src":"9074:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"9057:13:19","nodeType":"YulTypedName","src":"9057:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"9299:13:19","nodeType":"YulIdentifier","src":"9299:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"9324:13:19","nodeType":"YulIdentifier","src":"9324:13:19"}],"functionName":{"name":"sload","nativeSrc":"9318:5:19","nodeType":"YulIdentifier","src":"9318:5:19"},"nativeSrc":"9318:20:19","nodeType":"YulFunctionCall","src":"9318:20:19"},{"name":"amount","nativeSrc":"9340:6:19","nodeType":"YulIdentifier","src":"9340:6:19"}],"functionName":{"name":"add","nativeSrc":"9314:3:19","nodeType":"YulIdentifier","src":"9314:3:19"},"nativeSrc":"9314:33:19","nodeType":"YulFunctionCall","src":"9314:33:19"}],"functionName":{"name":"sstore","nativeSrc":"9292:6:19","nodeType":"YulIdentifier","src":"9292:6:19"},"nativeSrc":"9292:56:19","nodeType":"YulFunctionCall","src":"9292:56:19"},"nativeSrc":"9292:56:19","nodeType":"YulExpressionStatement","src":"9292:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9410:4:19","nodeType":"YulLiteral","src":"9410:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"9416:6:19","nodeType":"YulIdentifier","src":"9416:6:19"}],"functionName":{"name":"mstore","nativeSrc":"9403:6:19","nodeType":"YulIdentifier","src":"9403:6:19"},"nativeSrc":"9403:20:19","nodeType":"YulFunctionCall","src":"9403:20:19"},"nativeSrc":"9403:20:19","nodeType":"YulExpressionStatement","src":"9403:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9441:4:19","nodeType":"YulLiteral","src":"9441:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"9447:4:19","nodeType":"YulLiteral","src":"9447:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"9453:25:19","nodeType":"YulIdentifier","src":"9453:25:19"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9480:6:19","nodeType":"YulIdentifier","src":"9480:6:19"},"nativeSrc":"9480:8:19","nodeType":"YulFunctionCall","src":"9480:8:19"},{"arguments":[{"kind":"number","nativeSrc":"9494:2:19","nodeType":"YulLiteral","src":"9494:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"9504:4:19","nodeType":"YulLiteral","src":"9504:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"9498:5:19","nodeType":"YulIdentifier","src":"9498:5:19"},"nativeSrc":"9498:11:19","nodeType":"YulFunctionCall","src":"9498:11:19"}],"functionName":{"name":"shr","nativeSrc":"9490:3:19","nodeType":"YulIdentifier","src":"9490:3:19"},"nativeSrc":"9490:20:19","nodeType":"YulFunctionCall","src":"9490:20:19"}],"functionName":{"name":"log3","nativeSrc":"9436:4:19","nodeType":"YulIdentifier","src":"9436:4:19"},"nativeSrc":"9436:75:19","nodeType":"YulFunctionCall","src":"9436:75:19"},"nativeSrc":"9436:75:19","nodeType":"YulExpressionStatement","src":"9436:75:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"8474:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"9453:25:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"8705:6:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"8954:6:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"9340:6:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"9416:6:19","valueSize":1},{"declaration":8100,"isOffset":false,"isSlot":false,"src":"9037:2:19","valueSize":1}],"id":8114,"nodeType":"InlineAssembly","src":"8378:1143:19"},{"expression":{"arguments":[{"expression":{"id":8116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9550:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9554:6:19","memberName":"sender","nodeType":"MemberAccess","src":"9550:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8118,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"9562:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8119,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"9566:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8115,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"9530:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9530:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8121,"nodeType":"ExpressionStatement","src":"9530:43:19"},{"expression":{"hexValue":"74727565","id":8122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9590:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8106,"id":8123,"nodeType":"Return","src":"9583:11:19"}]},"documentation":{"id":8098,"nodeType":"StructuredDocumentation","src":"8014:176:19","text":"@dev Transfer `amount` tokens from the caller to `to`.\n Requirements:\n - `from` must at least have `amount`.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":8125,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"8204:8:19","nodeType":"FunctionDefinition","parameters":{"id":8103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"to","nameLocation":"8221:2:19","nodeType":"VariableDeclaration","scope":8125,"src":"8213:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8099,"name":"address","nodeType":"ElementaryTypeName","src":"8213:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8102,"mutability":"mutable","name":"amount","nameLocation":"8233:6:19","nodeType":"VariableDeclaration","scope":8125,"src":"8225:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8101,"name":"uint256","nodeType":"ElementaryTypeName","src":"8225:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8212:28:19"},"returnParameters":{"id":8106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8125,"src":"8265:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8104,"name":"bool","nodeType":"ElementaryTypeName","src":"8265:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8264:6:19"},"scope":8369,"src":"8195:1406:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8152,"nodeType":"Block","src":"10063:2097:19","statements":[{"expression":{"arguments":[{"id":8138,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8128,"src":"10094:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8139,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8130,"src":"10100:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8140,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8132,"src":"10104:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8137,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"10073:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10073:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8142,"nodeType":"ExpressionStatement","src":"10073:38:19"},{"AST":{"nativeSrc":"10173:1913:19","nodeType":"YulBlock","src":"10173:1913:19","statements":[{"nativeSrc":"10187:26:19","nodeType":"YulVariableDeclaration","src":"10187:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"10204:2:19","nodeType":"YulLiteral","src":"10204:2:19","type":"","value":"96"},{"name":"from","nativeSrc":"10208:4:19","nodeType":"YulIdentifier","src":"10208:4:19"}],"functionName":{"name":"shl","nativeSrc":"10200:3:19","nodeType":"YulIdentifier","src":"10200:3:19"},"nativeSrc":"10200:13:19","nodeType":"YulFunctionCall","src":"10200:13:19"},"variables":[{"name":"from_","nativeSrc":"10191:5:19","nodeType":"YulTypedName","src":"10191:5:19","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10295:4:19","nodeType":"YulLiteral","src":"10295:4:19","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10301:6:19","nodeType":"YulIdentifier","src":"10301:6:19"},"nativeSrc":"10301:8:19","nodeType":"YulFunctionCall","src":"10301:8:19"}],"functionName":{"name":"mstore","nativeSrc":"10288:6:19","nodeType":"YulIdentifier","src":"10288:6:19"},"nativeSrc":"10288:22:19","nodeType":"YulFunctionCall","src":"10288:22:19"},"nativeSrc":"10288:22:19","nodeType":"YulExpressionStatement","src":"10288:22:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10330:4:19","nodeType":"YulLiteral","src":"10330:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"10339:5:19","nodeType":"YulIdentifier","src":"10339:5:19"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"10346:20:19","nodeType":"YulIdentifier","src":"10346:20:19"}],"functionName":{"name":"or","nativeSrc":"10336:2:19","nodeType":"YulIdentifier","src":"10336:2:19"},"nativeSrc":"10336:31:19","nodeType":"YulFunctionCall","src":"10336:31:19"}],"functionName":{"name":"mstore","nativeSrc":"10323:6:19","nodeType":"YulIdentifier","src":"10323:6:19"},"nativeSrc":"10323:45:19","nodeType":"YulFunctionCall","src":"10323:45:19"},"nativeSrc":"10323:45:19","nodeType":"YulExpressionStatement","src":"10323:45:19"},{"nativeSrc":"10381:42:19","nodeType":"YulVariableDeclaration","src":"10381:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"10412:4:19","nodeType":"YulLiteral","src":"10412:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10418:4:19","nodeType":"YulLiteral","src":"10418:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"10402:9:19","nodeType":"YulIdentifier","src":"10402:9:19"},"nativeSrc":"10402:21:19","nodeType":"YulFunctionCall","src":"10402:21:19"},"variables":[{"name":"allowanceSlot","nativeSrc":"10385:13:19","nodeType":"YulTypedName","src":"10385:13:19","type":""}]},{"nativeSrc":"10436:38:19","nodeType":"YulVariableDeclaration","src":"10436:38:19","value":{"arguments":[{"name":"allowanceSlot","nativeSrc":"10460:13:19","nodeType":"YulIdentifier","src":"10460:13:19"}],"functionName":{"name":"sload","nativeSrc":"10454:5:19","nodeType":"YulIdentifier","src":"10454:5:19"},"nativeSrc":"10454:20:19","nodeType":"YulFunctionCall","src":"10454:20:19"},"variables":[{"name":"allowance_","nativeSrc":"10440:10:19","nodeType":"YulTypedName","src":"10440:10:19","type":""}]},{"body":{"nativeSrc":"10575:396:19","nodeType":"YulBlock","src":"10575:396:19","statements":[{"body":{"nativeSrc":"10700:133:19","nodeType":"YulBlock","src":"10700:133:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10729:4:19","nodeType":"YulLiteral","src":"10729:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10735:10:19","nodeType":"YulLiteral","src":"10735:10:19","type":"","value":"0x13be252b"}],"functionName":{"name":"mstore","nativeSrc":"10722:6:19","nodeType":"YulIdentifier","src":"10722:6:19"},"nativeSrc":"10722:24:19","nodeType":"YulFunctionCall","src":"10722:24:19"},"nativeSrc":"10722:24:19","nodeType":"YulExpressionStatement","src":"10722:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10804:4:19","nodeType":"YulLiteral","src":"10804:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10810:4:19","nodeType":"YulLiteral","src":"10810:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10797:6:19","nodeType":"YulIdentifier","src":"10797:6:19"},"nativeSrc":"10797:18:19","nodeType":"YulFunctionCall","src":"10797:18:19"},"nativeSrc":"10797:18:19","nodeType":"YulExpressionStatement","src":"10797:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"10680:6:19","nodeType":"YulIdentifier","src":"10680:6:19"},{"name":"allowance_","nativeSrc":"10688:10:19","nodeType":"YulIdentifier","src":"10688:10:19"}],"functionName":{"name":"gt","nativeSrc":"10677:2:19","nodeType":"YulIdentifier","src":"10677:2:19"},"nativeSrc":"10677:22:19","nodeType":"YulFunctionCall","src":"10677:22:19"},"nativeSrc":"10674:159:19","nodeType":"YulIf","src":"10674:159:19"},{"expression":{"arguments":[{"name":"allowanceSlot","nativeSrc":"10918:13:19","nodeType":"YulIdentifier","src":"10918:13:19"},{"arguments":[{"name":"allowance_","nativeSrc":"10937:10:19","nodeType":"YulIdentifier","src":"10937:10:19"},{"name":"amount","nativeSrc":"10949:6:19","nodeType":"YulIdentifier","src":"10949:6:19"}],"functionName":{"name":"sub","nativeSrc":"10933:3:19","nodeType":"YulIdentifier","src":"10933:3:19"},"nativeSrc":"10933:23:19","nodeType":"YulFunctionCall","src":"10933:23:19"}],"functionName":{"name":"sstore","nativeSrc":"10911:6:19","nodeType":"YulIdentifier","src":"10911:6:19"},"nativeSrc":"10911:46:19","nodeType":"YulFunctionCall","src":"10911:46:19"},"nativeSrc":"10911:46:19","nodeType":"YulExpressionStatement","src":"10911:46:19"}]},"condition":{"arguments":[{"name":"allowance_","nativeSrc":"10560:10:19","nodeType":"YulIdentifier","src":"10560:10:19"},{"kind":"number","nativeSrc":"10572:1:19","nodeType":"YulLiteral","src":"10572:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10556:3:19","nodeType":"YulIdentifier","src":"10556:3:19"},"nativeSrc":"10556:18:19","nodeType":"YulFunctionCall","src":"10556:18:19"},"nativeSrc":"10553:418:19","nodeType":"YulIf","src":"10553:418:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11051:4:19","nodeType":"YulLiteral","src":"11051:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"11060:5:19","nodeType":"YulIdentifier","src":"11060:5:19"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"11067:18:19","nodeType":"YulIdentifier","src":"11067:18:19"}],"functionName":{"name":"or","nativeSrc":"11057:2:19","nodeType":"YulIdentifier","src":"11057:2:19"},"nativeSrc":"11057:29:19","nodeType":"YulFunctionCall","src":"11057:29:19"}],"functionName":{"name":"mstore","nativeSrc":"11044:6:19","nodeType":"YulIdentifier","src":"11044:6:19"},"nativeSrc":"11044:43:19","nodeType":"YulFunctionCall","src":"11044:43:19"},"nativeSrc":"11044:43:19","nodeType":"YulExpressionStatement","src":"11044:43:19"},{"nativeSrc":"11100:44:19","nodeType":"YulVariableDeclaration","src":"11100:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"11133:4:19","nodeType":"YulLiteral","src":"11133:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"11139:4:19","nodeType":"YulLiteral","src":"11139:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11123:9:19","nodeType":"YulIdentifier","src":"11123:9:19"},"nativeSrc":"11123:21:19","nodeType":"YulFunctionCall","src":"11123:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"11104:15:19","nodeType":"YulTypedName","src":"11104:15:19","type":""}]},{"nativeSrc":"11157:41:19","nodeType":"YulVariableDeclaration","src":"11157:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"11182:15:19","nodeType":"YulIdentifier","src":"11182:15:19"}],"functionName":{"name":"sload","nativeSrc":"11176:5:19","nodeType":"YulIdentifier","src":"11176:5:19"},"nativeSrc":"11176:22:19","nodeType":"YulFunctionCall","src":"11176:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"11161:11:19","nodeType":"YulTypedName","src":"11161:11:19","type":""}]},{"body":{"nativeSrc":"11285:119:19","nodeType":"YulBlock","src":"11285:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11310:4:19","nodeType":"YulLiteral","src":"11310:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11316:10:19","nodeType":"YulLiteral","src":"11316:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"11303:6:19","nodeType":"YulIdentifier","src":"11303:6:19"},"nativeSrc":"11303:24:19","nodeType":"YulFunctionCall","src":"11303:24:19"},"nativeSrc":"11303:24:19","nodeType":"YulExpressionStatement","src":"11303:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11379:4:19","nodeType":"YulLiteral","src":"11379:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11385:4:19","nodeType":"YulLiteral","src":"11385:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11372:6:19","nodeType":"YulIdentifier","src":"11372:6:19"},"nativeSrc":"11372:18:19","nodeType":"YulFunctionCall","src":"11372:18:19"},"nativeSrc":"11372:18:19","nodeType":"YulExpressionStatement","src":"11372:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"11264:6:19","nodeType":"YulIdentifier","src":"11264:6:19"},{"name":"fromBalance","nativeSrc":"11272:11:19","nodeType":"YulIdentifier","src":"11272:11:19"}],"functionName":{"name":"gt","nativeSrc":"11261:2:19","nodeType":"YulIdentifier","src":"11261:2:19"},"nativeSrc":"11261:23:19","nodeType":"YulFunctionCall","src":"11261:23:19"},"nativeSrc":"11258:146:19","nodeType":"YulIf","src":"11258:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"11479:15:19","nodeType":"YulIdentifier","src":"11479:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"11500:11:19","nodeType":"YulIdentifier","src":"11500:11:19"},{"name":"amount","nativeSrc":"11513:6:19","nodeType":"YulIdentifier","src":"11513:6:19"}],"functionName":{"name":"sub","nativeSrc":"11496:3:19","nodeType":"YulIdentifier","src":"11496:3:19"},"nativeSrc":"11496:24:19","nodeType":"YulFunctionCall","src":"11496:24:19"}],"functionName":{"name":"sstore","nativeSrc":"11472:6:19","nodeType":"YulIdentifier","src":"11472:6:19"},"nativeSrc":"11472:49:19","nodeType":"YulFunctionCall","src":"11472:49:19"},"nativeSrc":"11472:49:19","nodeType":"YulExpressionStatement","src":"11472:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11590:4:19","nodeType":"YulLiteral","src":"11590:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"11596:2:19","nodeType":"YulIdentifier","src":"11596:2:19"}],"functionName":{"name":"mstore","nativeSrc":"11583:6:19","nodeType":"YulIdentifier","src":"11583:6:19"},"nativeSrc":"11583:16:19","nodeType":"YulFunctionCall","src":"11583:16:19"},"nativeSrc":"11583:16:19","nodeType":"YulExpressionStatement","src":"11583:16:19"},{"nativeSrc":"11612:42:19","nodeType":"YulVariableDeclaration","src":"11612:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"11643:4:19","nodeType":"YulLiteral","src":"11643:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"11649:4:19","nodeType":"YulLiteral","src":"11649:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11633:9:19","nodeType":"YulIdentifier","src":"11633:9:19"},"nativeSrc":"11633:21:19","nodeType":"YulFunctionCall","src":"11633:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"11616:13:19","nodeType":"YulTypedName","src":"11616:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"11858:13:19","nodeType":"YulIdentifier","src":"11858:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"11883:13:19","nodeType":"YulIdentifier","src":"11883:13:19"}],"functionName":{"name":"sload","nativeSrc":"11877:5:19","nodeType":"YulIdentifier","src":"11877:5:19"},"nativeSrc":"11877:20:19","nodeType":"YulFunctionCall","src":"11877:20:19"},{"name":"amount","nativeSrc":"11899:6:19","nodeType":"YulIdentifier","src":"11899:6:19"}],"functionName":{"name":"add","nativeSrc":"11873:3:19","nodeType":"YulIdentifier","src":"11873:3:19"},"nativeSrc":"11873:33:19","nodeType":"YulFunctionCall","src":"11873:33:19"}],"functionName":{"name":"sstore","nativeSrc":"11851:6:19","nodeType":"YulIdentifier","src":"11851:6:19"},"nativeSrc":"11851:56:19","nodeType":"YulFunctionCall","src":"11851:56:19"},"nativeSrc":"11851:56:19","nodeType":"YulExpressionStatement","src":"11851:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11969:4:19","nodeType":"YulLiteral","src":"11969:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"11975:6:19","nodeType":"YulIdentifier","src":"11975:6:19"}],"functionName":{"name":"mstore","nativeSrc":"11962:6:19","nodeType":"YulIdentifier","src":"11962:6:19"},"nativeSrc":"11962:20:19","nodeType":"YulFunctionCall","src":"11962:20:19"},"nativeSrc":"11962:20:19","nodeType":"YulExpressionStatement","src":"11962:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12000:4:19","nodeType":"YulLiteral","src":"12000:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"12006:4:19","nodeType":"YulLiteral","src":"12006:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"12012:25:19","nodeType":"YulIdentifier","src":"12012:25:19"},{"arguments":[{"kind":"number","nativeSrc":"12043:2:19","nodeType":"YulLiteral","src":"12043:2:19","type":"","value":"96"},{"name":"from_","nativeSrc":"12047:5:19","nodeType":"YulIdentifier","src":"12047:5:19"}],"functionName":{"name":"shr","nativeSrc":"12039:3:19","nodeType":"YulIdentifier","src":"12039:3:19"},"nativeSrc":"12039:14:19","nodeType":"YulFunctionCall","src":"12039:14:19"},{"arguments":[{"kind":"number","nativeSrc":"12059:2:19","nodeType":"YulLiteral","src":"12059:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"12069:4:19","nodeType":"YulLiteral","src":"12069:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"12063:5:19","nodeType":"YulIdentifier","src":"12063:5:19"},"nativeSrc":"12063:11:19","nodeType":"YulFunctionCall","src":"12063:11:19"}],"functionName":{"name":"shr","nativeSrc":"12055:3:19","nodeType":"YulIdentifier","src":"12055:3:19"},"nativeSrc":"12055:20:19","nodeType":"YulFunctionCall","src":"12055:20:19"}],"functionName":{"name":"log3","nativeSrc":"11995:4:19","nodeType":"YulIdentifier","src":"11995:4:19"},"nativeSrc":"11995:81:19","nodeType":"YulFunctionCall","src":"11995:81:19"},"nativeSrc":"11995:81:19","nodeType":"YulExpressionStatement","src":"11995:81:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"10346:20:19","valueSize":1},{"declaration":8008,"isOffset":false,"isSlot":false,"src":"11067:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"12012:25:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"10680:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"10949:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11264:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11513:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11899:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11975:6:19","valueSize":1},{"declaration":8128,"isOffset":false,"isSlot":false,"src":"10208:4:19","valueSize":1},{"declaration":8130,"isOffset":false,"isSlot":false,"src":"11596:2:19","valueSize":1}],"id":8143,"nodeType":"InlineAssembly","src":"10164:1922:19"},{"expression":{"arguments":[{"id":8145,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8128,"src":"12115:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8146,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8130,"src":"12121:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8147,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8132,"src":"12125:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8144,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"12095:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12095:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8149,"nodeType":"ExpressionStatement","src":"12095:37:19"},{"expression":{"hexValue":"74727565","id":8150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12149:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8136,"id":8151,"nodeType":"Return","src":"12142:11:19"}]},"documentation":{"id":8126,"nodeType":"StructuredDocumentation","src":"9607:357:19","text":"@dev Transfers `amount` tokens from `from` to `to`.\n Note: Does not update the allowance if it is the maximum uint256 value.\n Requirements:\n - `from` must at least have `amount`.\n - The caller must have at least `amount` of allowance to transfer the tokens of `from`.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8153,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"9978:12:19","nodeType":"FunctionDefinition","parameters":{"id":8133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8128,"mutability":"mutable","name":"from","nameLocation":"9999:4:19","nodeType":"VariableDeclaration","scope":8153,"src":"9991:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8127,"name":"address","nodeType":"ElementaryTypeName","src":"9991:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8130,"mutability":"mutable","name":"to","nameLocation":"10013:2:19","nodeType":"VariableDeclaration","scope":8153,"src":"10005:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8129,"name":"address","nodeType":"ElementaryTypeName","src":"10005:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8132,"mutability":"mutable","name":"amount","nameLocation":"10025:6:19","nodeType":"VariableDeclaration","scope":8153,"src":"10017:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8131,"name":"uint256","nodeType":"ElementaryTypeName","src":"10017:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9990:42:19"},"returnParameters":{"id":8136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8153,"src":"10057:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8134,"name":"bool","nodeType":"ElementaryTypeName","src":"10057:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10056:6:19"},"scope":8369,"src":"9969:2191:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8159,"nodeType":"Block","src":"12667:2:19","statements":[]},"documentation":{"id":8154,"nodeType":"StructuredDocumentation","src":"12449:137:19","text":"@dev For more performance, override to return the constant value\n of `keccak256(bytes(name()))` if `name()` will never change."},"id":8160,"implemented":true,"kind":"function","modifiers":[],"name":"_constantNameHash","nameLocation":"12600:17:19","nodeType":"FunctionDefinition","parameters":{"id":8155,"nodeType":"ParameterList","parameters":[],"src":"12617:2:19"},"returnParameters":{"id":8158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8157,"mutability":"mutable","name":"result","nameLocation":"12659:6:19","nodeType":"VariableDeclaration","scope":8160,"src":"12651:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12651:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12650:16:19"},"scope":8369,"src":"12591:78:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8169,"nodeType":"Block","src":"12876:264:19","statements":[{"AST":{"nativeSrc":"12938:196:19","nodeType":"YulBlock","src":"12938:196:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13017:4:19","nodeType":"YulLiteral","src":"13017:4:19","type":"","value":"0x0c"},{"name":"_NONCES_SLOT_SEED","nativeSrc":"13023:17:19","nodeType":"YulIdentifier","src":"13023:17:19"}],"functionName":{"name":"mstore","nativeSrc":"13010:6:19","nodeType":"YulIdentifier","src":"13010:6:19"},"nativeSrc":"13010:31:19","nodeType":"YulFunctionCall","src":"13010:31:19"},"nativeSrc":"13010:31:19","nodeType":"YulExpressionStatement","src":"13010:31:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13061:4:19","nodeType":"YulLiteral","src":"13061:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"13067:5:19","nodeType":"YulIdentifier","src":"13067:5:19"}],"functionName":{"name":"mstore","nativeSrc":"13054:6:19","nodeType":"YulIdentifier","src":"13054:6:19"},"nativeSrc":"13054:19:19","nodeType":"YulFunctionCall","src":"13054:19:19"},"nativeSrc":"13054:19:19","nodeType":"YulExpressionStatement","src":"13054:19:19"},{"nativeSrc":"13086:38:19","nodeType":"YulAssignment","src":"13086:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13112:4:19","nodeType":"YulLiteral","src":"13112:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"13118:4:19","nodeType":"YulLiteral","src":"13118:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"13102:9:19","nodeType":"YulIdentifier","src":"13102:9:19"},"nativeSrc":"13102:21:19","nodeType":"YulFunctionCall","src":"13102:21:19"}],"functionName":{"name":"sload","nativeSrc":"13096:5:19","nodeType":"YulIdentifier","src":"13096:5:19"},"nativeSrc":"13096:28:19","nodeType":"YulFunctionCall","src":"13096:28:19"},"variableNames":[{"name":"result","nativeSrc":"13086:6:19","nodeType":"YulIdentifier","src":"13086:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8016,"isOffset":false,"isSlot":false,"src":"13023:17:19","valueSize":1},{"declaration":8163,"isOffset":false,"isSlot":false,"src":"13067:5:19","valueSize":1},{"declaration":8166,"isOffset":false,"isSlot":false,"src":"13086:6:19","valueSize":1}],"id":8168,"nodeType":"InlineAssembly","src":"12929:205:19"}]},"documentation":{"id":8161,"nodeType":"StructuredDocumentation","src":"12675:120:19","text":"@dev Returns the current nonce for `owner`.\n This value is used to compute the signature for EIP-2612 permit."},"functionSelector":"7ecebe00","id":8170,"implemented":true,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"12809:6:19","nodeType":"FunctionDefinition","parameters":{"id":8164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8163,"mutability":"mutable","name":"owner","nameLocation":"12824:5:19","nodeType":"VariableDeclaration","scope":8170,"src":"12816:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8162,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12815:15:19"},"returnParameters":{"id":8167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8166,"mutability":"mutable","name":"result","nameLocation":"12868:6:19","nodeType":"VariableDeclaration","scope":8170,"src":"12860:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8165,"name":"uint256","nodeType":"ElementaryTypeName","src":"12860:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12859:16:19"},"scope":8369,"src":"12800:340:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8211,"nodeType":"Block","src":"13513:3026:19","statements":[{"assignments":[8189],"declarations":[{"constant":false,"id":8189,"mutability":"mutable","name":"nameHash","nameLocation":"13531:8:19","nodeType":"VariableDeclaration","scope":8211,"src":"13523:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13523:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8192,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8190,"name":"_constantNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"13542:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":8191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13542:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13523:38:19"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8193,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"13669:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13689:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13681:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13681:7:19","typeDescriptions":{}}},"id":8197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13681:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13669:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8209,"nodeType":"IfStatement","src":"13665:63:19","trueBody":{"expression":{"id":8207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8199,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"13693:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8203,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8038,"src":"13720:4:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":8204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13720:6:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13714:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8201,"name":"bytes","nodeType":"ElementaryTypeName","src":"13714:5:19","typeDescriptions":{}}},"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13714:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8200,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13704:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13693:35:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8208,"nodeType":"ExpressionStatement","src":"13693:35:19"}},{"AST":{"nativeSrc":"13790:2743:19","nodeType":"YulBlock","src":"13790:2743:19","statements":[{"body":{"nativeSrc":"13906:113:19","nodeType":"YulBlock","src":"13906:113:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13931:4:19","nodeType":"YulLiteral","src":"13931:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13937:10:19","nodeType":"YulLiteral","src":"13937:10:19","type":"","value":"0x1a15a3cc"}],"functionName":{"name":"mstore","nativeSrc":"13924:6:19","nodeType":"YulIdentifier","src":"13924:6:19"},"nativeSrc":"13924:24:19","nodeType":"YulFunctionCall","src":"13924:24:19"},"nativeSrc":"13924:24:19","nodeType":"YulExpressionStatement","src":"13924:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13994:4:19","nodeType":"YulLiteral","src":"13994:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14000:4:19","nodeType":"YulLiteral","src":"14000:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13987:6:19","nodeType":"YulIdentifier","src":"13987:6:19"},"nativeSrc":"13987:18:19","nodeType":"YulFunctionCall","src":"13987:18:19"},"nativeSrc":"13987:18:19","nodeType":"YulExpressionStatement","src":"13987:18:19"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"timestamp","nativeSrc":"13883:9:19","nodeType":"YulIdentifier","src":"13883:9:19"},"nativeSrc":"13883:11:19","nodeType":"YulFunctionCall","src":"13883:11:19"},{"name":"deadline","nativeSrc":"13896:8:19","nodeType":"YulIdentifier","src":"13896:8:19"}],"functionName":{"name":"gt","nativeSrc":"13880:2:19","nodeType":"YulIdentifier","src":"13880:2:19"},"nativeSrc":"13880:25:19","nodeType":"YulFunctionCall","src":"13880:25:19"},"nativeSrc":"13877:142:19","nodeType":"YulIf","src":"13877:142:19"},{"nativeSrc":"14032:20:19","nodeType":"YulVariableDeclaration","src":"14032:20:19","value":{"arguments":[{"kind":"number","nativeSrc":"14047:4:19","nodeType":"YulLiteral","src":"14047:4:19","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14041:5:19","nodeType":"YulIdentifier","src":"14041:5:19"},"nativeSrc":"14041:11:19","nodeType":"YulFunctionCall","src":"14041:11:19"},"variables":[{"name":"m","nativeSrc":"14036:1:19","nodeType":"YulTypedName","src":"14036:1:19","type":""}]},{"nativeSrc":"14138:32:19","nodeType":"YulAssignment","src":"14138:32:19","value":{"arguments":[{"kind":"number","nativeSrc":"14151:2:19","nodeType":"YulLiteral","src":"14151:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14159:2:19","nodeType":"YulLiteral","src":"14159:2:19","type":"","value":"96"},{"name":"owner","nativeSrc":"14163:5:19","nodeType":"YulIdentifier","src":"14163:5:19"}],"functionName":{"name":"shl","nativeSrc":"14155:3:19","nodeType":"YulIdentifier","src":"14155:3:19"},"nativeSrc":"14155:14:19","nodeType":"YulFunctionCall","src":"14155:14:19"}],"functionName":{"name":"shr","nativeSrc":"14147:3:19","nodeType":"YulIdentifier","src":"14147:3:19"},"nativeSrc":"14147:23:19","nodeType":"YulFunctionCall","src":"14147:23:19"},"variableNames":[{"name":"owner","nativeSrc":"14138:5:19","nodeType":"YulIdentifier","src":"14138:5:19"}]},{"nativeSrc":"14183:36:19","nodeType":"YulAssignment","src":"14183:36:19","value":{"arguments":[{"kind":"number","nativeSrc":"14198:2:19","nodeType":"YulLiteral","src":"14198:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14206:2:19","nodeType":"YulLiteral","src":"14206:2:19","type":"","value":"96"},{"name":"spender","nativeSrc":"14210:7:19","nodeType":"YulIdentifier","src":"14210:7:19"}],"functionName":{"name":"shl","nativeSrc":"14202:3:19","nodeType":"YulIdentifier","src":"14202:3:19"},"nativeSrc":"14202:16:19","nodeType":"YulFunctionCall","src":"14202:16:19"}],"functionName":{"name":"shr","nativeSrc":"14194:3:19","nodeType":"YulIdentifier","src":"14194:3:19"},"nativeSrc":"14194:25:19","nodeType":"YulFunctionCall","src":"14194:25:19"},"variableNames":[{"name":"spender","nativeSrc":"14183:7:19","nodeType":"YulIdentifier","src":"14183:7:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14297:4:19","nodeType":"YulLiteral","src":"14297:4:19","type":"","value":"0x0e"},{"name":"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX","nativeSrc":"14303:39:19","nodeType":"YulIdentifier","src":"14303:39:19"}],"functionName":{"name":"mstore","nativeSrc":"14290:6:19","nodeType":"YulIdentifier","src":"14290:6:19"},"nativeSrc":"14290:53:19","nodeType":"YulFunctionCall","src":"14290:53:19"},"nativeSrc":"14290:53:19","nodeType":"YulExpressionStatement","src":"14290:53:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14363:4:19","nodeType":"YulLiteral","src":"14363:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"14369:5:19","nodeType":"YulIdentifier","src":"14369:5:19"}],"functionName":{"name":"mstore","nativeSrc":"14356:6:19","nodeType":"YulIdentifier","src":"14356:6:19"},"nativeSrc":"14356:19:19","nodeType":"YulFunctionCall","src":"14356:19:19"},"nativeSrc":"14356:19:19","nodeType":"YulExpressionStatement","src":"14356:19:19"},{"nativeSrc":"14388:38:19","nodeType":"YulVariableDeclaration","src":"14388:38:19","value":{"arguments":[{"kind":"number","nativeSrc":"14415:4:19","nodeType":"YulLiteral","src":"14415:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"14421:4:19","nodeType":"YulLiteral","src":"14421:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"14405:9:19","nodeType":"YulIdentifier","src":"14405:9:19"},"nativeSrc":"14405:21:19","nodeType":"YulFunctionCall","src":"14405:21:19"},"variables":[{"name":"nonceSlot","nativeSrc":"14392:9:19","nodeType":"YulTypedName","src":"14392:9:19","type":""}]},{"nativeSrc":"14439:34:19","nodeType":"YulVariableDeclaration","src":"14439:34:19","value":{"arguments":[{"name":"nonceSlot","nativeSrc":"14463:9:19","nodeType":"YulIdentifier","src":"14463:9:19"}],"functionName":{"name":"sload","nativeSrc":"14457:5:19","nodeType":"YulIdentifier","src":"14457:5:19"},"nativeSrc":"14457:16:19","nodeType":"YulFunctionCall","src":"14457:16:19"},"variables":[{"name":"nonceValue","nativeSrc":"14443:10:19","nodeType":"YulTypedName","src":"14443:10:19","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"14538:1:19","nodeType":"YulIdentifier","src":"14538:1:19"},{"name":"_DOMAIN_TYPEHASH","nativeSrc":"14541:16:19","nodeType":"YulIdentifier","src":"14541:16:19"}],"functionName":{"name":"mstore","nativeSrc":"14531:6:19","nodeType":"YulIdentifier","src":"14531:6:19"},"nativeSrc":"14531:27:19","nodeType":"YulFunctionCall","src":"14531:27:19"},"nativeSrc":"14531:27:19","nodeType":"YulExpressionStatement","src":"14531:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14582:1:19","nodeType":"YulIdentifier","src":"14582:1:19"},{"kind":"number","nativeSrc":"14585:4:19","nodeType":"YulLiteral","src":"14585:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14578:3:19","nodeType":"YulIdentifier","src":"14578:3:19"},"nativeSrc":"14578:12:19","nodeType":"YulFunctionCall","src":"14578:12:19"},{"name":"nameHash","nativeSrc":"14592:8:19","nodeType":"YulIdentifier","src":"14592:8:19"}],"functionName":{"name":"mstore","nativeSrc":"14571:6:19","nodeType":"YulIdentifier","src":"14571:6:19"},"nativeSrc":"14571:30:19","nodeType":"YulFunctionCall","src":"14571:30:19"},"nativeSrc":"14571:30:19","nodeType":"YulExpressionStatement","src":"14571:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14625:1:19","nodeType":"YulIdentifier","src":"14625:1:19"},{"kind":"number","nativeSrc":"14628:4:19","nodeType":"YulLiteral","src":"14628:4:19","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14621:3:19","nodeType":"YulIdentifier","src":"14621:3:19"},"nativeSrc":"14621:12:19","nodeType":"YulFunctionCall","src":"14621:12:19"},{"name":"_VERSION_HASH","nativeSrc":"14635:13:19","nodeType":"YulIdentifier","src":"14635:13:19"}],"functionName":{"name":"mstore","nativeSrc":"14614:6:19","nodeType":"YulIdentifier","src":"14614:6:19"},"nativeSrc":"14614:35:19","nodeType":"YulFunctionCall","src":"14614:35:19"},"nativeSrc":"14614:35:19","nodeType":"YulExpressionStatement","src":"14614:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14673:1:19","nodeType":"YulIdentifier","src":"14673:1:19"},{"kind":"number","nativeSrc":"14676:4:19","nodeType":"YulLiteral","src":"14676:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14669:3:19","nodeType":"YulIdentifier","src":"14669:3:19"},"nativeSrc":"14669:12:19","nodeType":"YulFunctionCall","src":"14669:12:19"},{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"14683:7:19","nodeType":"YulIdentifier","src":"14683:7:19"},"nativeSrc":"14683:9:19","nodeType":"YulFunctionCall","src":"14683:9:19"}],"functionName":{"name":"mstore","nativeSrc":"14662:6:19","nodeType":"YulIdentifier","src":"14662:6:19"},"nativeSrc":"14662:31:19","nodeType":"YulFunctionCall","src":"14662:31:19"},"nativeSrc":"14662:31:19","nodeType":"YulExpressionStatement","src":"14662:31:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14717:1:19","nodeType":"YulIdentifier","src":"14717:1:19"},{"kind":"number","nativeSrc":"14720:4:19","nodeType":"YulLiteral","src":"14720:4:19","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14713:3:19","nodeType":"YulIdentifier","src":"14713:3:19"},"nativeSrc":"14713:12:19","nodeType":"YulFunctionCall","src":"14713:12:19"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"14727:7:19","nodeType":"YulIdentifier","src":"14727:7:19"},"nativeSrc":"14727:9:19","nodeType":"YulFunctionCall","src":"14727:9:19"}],"functionName":{"name":"mstore","nativeSrc":"14706:6:19","nodeType":"YulIdentifier","src":"14706:6:19"},"nativeSrc":"14706:31:19","nodeType":"YulFunctionCall","src":"14706:31:19"},"nativeSrc":"14706:31:19","nodeType":"YulExpressionStatement","src":"14706:31:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14757:4:19","nodeType":"YulLiteral","src":"14757:4:19","type":"","value":"0x2e"},{"arguments":[{"name":"m","nativeSrc":"14773:1:19","nodeType":"YulIdentifier","src":"14773:1:19"},{"kind":"number","nativeSrc":"14776:4:19","nodeType":"YulLiteral","src":"14776:4:19","type":"","value":"0xa0"}],"functionName":{"name":"keccak256","nativeSrc":"14763:9:19","nodeType":"YulIdentifier","src":"14763:9:19"},"nativeSrc":"14763:18:19","nodeType":"YulFunctionCall","src":"14763:18:19"}],"functionName":{"name":"mstore","nativeSrc":"14750:6:19","nodeType":"YulIdentifier","src":"14750:6:19"},"nativeSrc":"14750:32:19","nodeType":"YulFunctionCall","src":"14750:32:19"},"nativeSrc":"14750:32:19","nodeType":"YulExpressionStatement","src":"14750:32:19"},{"expression":{"arguments":[{"name":"m","nativeSrc":"14842:1:19","nodeType":"YulIdentifier","src":"14842:1:19"},{"name":"_PERMIT_TYPEHASH","nativeSrc":"14845:16:19","nodeType":"YulIdentifier","src":"14845:16:19"}],"functionName":{"name":"mstore","nativeSrc":"14835:6:19","nodeType":"YulIdentifier","src":"14835:6:19"},"nativeSrc":"14835:27:19","nodeType":"YulFunctionCall","src":"14835:27:19"},"nativeSrc":"14835:27:19","nodeType":"YulExpressionStatement","src":"14835:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14886:1:19","nodeType":"YulIdentifier","src":"14886:1:19"},{"kind":"number","nativeSrc":"14889:4:19","nodeType":"YulLiteral","src":"14889:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14882:3:19","nodeType":"YulIdentifier","src":"14882:3:19"},"nativeSrc":"14882:12:19","nodeType":"YulFunctionCall","src":"14882:12:19"},{"name":"owner","nativeSrc":"14896:5:19","nodeType":"YulIdentifier","src":"14896:5:19"}],"functionName":{"name":"mstore","nativeSrc":"14875:6:19","nodeType":"YulIdentifier","src":"14875:6:19"},"nativeSrc":"14875:27:19","nodeType":"YulFunctionCall","src":"14875:27:19"},"nativeSrc":"14875:27:19","nodeType":"YulExpressionStatement","src":"14875:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14926:1:19","nodeType":"YulIdentifier","src":"14926:1:19"},{"kind":"number","nativeSrc":"14929:4:19","nodeType":"YulLiteral","src":"14929:4:19","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14922:3:19","nodeType":"YulIdentifier","src":"14922:3:19"},"nativeSrc":"14922:12:19","nodeType":"YulFunctionCall","src":"14922:12:19"},{"name":"spender","nativeSrc":"14936:7:19","nodeType":"YulIdentifier","src":"14936:7:19"}],"functionName":{"name":"mstore","nativeSrc":"14915:6:19","nodeType":"YulIdentifier","src":"14915:6:19"},"nativeSrc":"14915:29:19","nodeType":"YulFunctionCall","src":"14915:29:19"},"nativeSrc":"14915:29:19","nodeType":"YulExpressionStatement","src":"14915:29:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14968:1:19","nodeType":"YulIdentifier","src":"14968:1:19"},{"kind":"number","nativeSrc":"14971:4:19","nodeType":"YulLiteral","src":"14971:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14964:3:19","nodeType":"YulIdentifier","src":"14964:3:19"},"nativeSrc":"14964:12:19","nodeType":"YulFunctionCall","src":"14964:12:19"},{"name":"value","nativeSrc":"14978:5:19","nodeType":"YulIdentifier","src":"14978:5:19"}],"functionName":{"name":"mstore","nativeSrc":"14957:6:19","nodeType":"YulIdentifier","src":"14957:6:19"},"nativeSrc":"14957:27:19","nodeType":"YulFunctionCall","src":"14957:27:19"},"nativeSrc":"14957:27:19","nodeType":"YulExpressionStatement","src":"14957:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15008:1:19","nodeType":"YulIdentifier","src":"15008:1:19"},{"kind":"number","nativeSrc":"15011:4:19","nodeType":"YulLiteral","src":"15011:4:19","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15004:3:19","nodeType":"YulIdentifier","src":"15004:3:19"},"nativeSrc":"15004:12:19","nodeType":"YulFunctionCall","src":"15004:12:19"},{"name":"nonceValue","nativeSrc":"15018:10:19","nodeType":"YulIdentifier","src":"15018:10:19"}],"functionName":{"name":"mstore","nativeSrc":"14997:6:19","nodeType":"YulIdentifier","src":"14997:6:19"},"nativeSrc":"14997:32:19","nodeType":"YulFunctionCall","src":"14997:32:19"},"nativeSrc":"14997:32:19","nodeType":"YulExpressionStatement","src":"14997:32:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15053:1:19","nodeType":"YulIdentifier","src":"15053:1:19"},{"kind":"number","nativeSrc":"15056:4:19","nodeType":"YulLiteral","src":"15056:4:19","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15049:3:19","nodeType":"YulIdentifier","src":"15049:3:19"},"nativeSrc":"15049:12:19","nodeType":"YulFunctionCall","src":"15049:12:19"},{"name":"deadline","nativeSrc":"15063:8:19","nodeType":"YulIdentifier","src":"15063:8:19"}],"functionName":{"name":"mstore","nativeSrc":"15042:6:19","nodeType":"YulIdentifier","src":"15042:6:19"},"nativeSrc":"15042:30:19","nodeType":"YulFunctionCall","src":"15042:30:19"},"nativeSrc":"15042:30:19","nodeType":"YulExpressionStatement","src":"15042:30:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15092:4:19","nodeType":"YulLiteral","src":"15092:4:19","type":"","value":"0x4e"},{"arguments":[{"name":"m","nativeSrc":"15108:1:19","nodeType":"YulIdentifier","src":"15108:1:19"},{"kind":"number","nativeSrc":"15111:4:19","nodeType":"YulLiteral","src":"15111:4:19","type":"","value":"0xc0"}],"functionName":{"name":"keccak256","nativeSrc":"15098:9:19","nodeType":"YulIdentifier","src":"15098:9:19"},"nativeSrc":"15098:18:19","nodeType":"YulFunctionCall","src":"15098:18:19"}],"functionName":{"name":"mstore","nativeSrc":"15085:6:19","nodeType":"YulIdentifier","src":"15085:6:19"},"nativeSrc":"15085:32:19","nodeType":"YulFunctionCall","src":"15085:32:19"},"nativeSrc":"15085:32:19","nodeType":"YulExpressionStatement","src":"15085:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15184:4:19","nodeType":"YulLiteral","src":"15184:4:19","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"15200:4:19","nodeType":"YulLiteral","src":"15200:4:19","type":"","value":"0x2c"},{"kind":"number","nativeSrc":"15206:4:19","nodeType":"YulLiteral","src":"15206:4:19","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nativeSrc":"15190:9:19","nodeType":"YulIdentifier","src":"15190:9:19"},"nativeSrc":"15190:21:19","nodeType":"YulFunctionCall","src":"15190:21:19"}],"functionName":{"name":"mstore","nativeSrc":"15177:6:19","nodeType":"YulIdentifier","src":"15177:6:19"},"nativeSrc":"15177:35:19","nodeType":"YulFunctionCall","src":"15177:35:19"},"nativeSrc":"15177:35:19","nodeType":"YulExpressionStatement","src":"15177:35:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15232:4:19","nodeType":"YulLiteral","src":"15232:4:19","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"15242:4:19","nodeType":"YulLiteral","src":"15242:4:19","type":"","value":"0xff"},{"name":"v","nativeSrc":"15248:1:19","nodeType":"YulIdentifier","src":"15248:1:19"}],"functionName":{"name":"and","nativeSrc":"15238:3:19","nodeType":"YulIdentifier","src":"15238:3:19"},"nativeSrc":"15238:12:19","nodeType":"YulFunctionCall","src":"15238:12:19"}],"functionName":{"name":"mstore","nativeSrc":"15225:6:19","nodeType":"YulIdentifier","src":"15225:6:19"},"nativeSrc":"15225:26:19","nodeType":"YulFunctionCall","src":"15225:26:19"},"nativeSrc":"15225:26:19","nodeType":"YulExpressionStatement","src":"15225:26:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15271:4:19","nodeType":"YulLiteral","src":"15271:4:19","type":"","value":"0x40"},{"name":"r","nativeSrc":"15277:1:19","nodeType":"YulIdentifier","src":"15277:1:19"}],"functionName":{"name":"mstore","nativeSrc":"15264:6:19","nodeType":"YulIdentifier","src":"15264:6:19"},"nativeSrc":"15264:15:19","nodeType":"YulFunctionCall","src":"15264:15:19"},"nativeSrc":"15264:15:19","nodeType":"YulExpressionStatement","src":"15264:15:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15299:4:19","nodeType":"YulLiteral","src":"15299:4:19","type":"","value":"0x60"},{"name":"s","nativeSrc":"15305:1:19","nodeType":"YulIdentifier","src":"15305:1:19"}],"functionName":{"name":"mstore","nativeSrc":"15292:6:19","nodeType":"YulIdentifier","src":"15292:6:19"},"nativeSrc":"15292:15:19","nodeType":"YulFunctionCall","src":"15292:15:19"},"nativeSrc":"15292:15:19","nodeType":"YulExpressionStatement","src":"15292:15:19"},{"nativeSrc":"15320:50:19","nodeType":"YulVariableDeclaration","src":"15320:50:19","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15340:3:19","nodeType":"YulIdentifier","src":"15340:3:19"},"nativeSrc":"15340:5:19","nodeType":"YulFunctionCall","src":"15340:5:19"},{"kind":"number","nativeSrc":"15347:1:19","nodeType":"YulLiteral","src":"15347:1:19","type":"","value":"1"},{"kind":"number","nativeSrc":"15350:1:19","nodeType":"YulLiteral","src":"15350:1:19","type":"","value":"0"},{"kind":"number","nativeSrc":"15353:4:19","nodeType":"YulLiteral","src":"15353:4:19","type":"","value":"0x80"},{"kind":"number","nativeSrc":"15359:4:19","nodeType":"YulLiteral","src":"15359:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"15365:4:19","nodeType":"YulLiteral","src":"15365:4:19","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15329:10:19","nodeType":"YulIdentifier","src":"15329:10:19"},"nativeSrc":"15329:41:19","nodeType":"YulFunctionCall","src":"15329:41:19"},"variables":[{"name":"t","nativeSrc":"15324:1:19","nodeType":"YulTypedName","src":"15324:1:19","type":""}]},{"body":{"nativeSrc":"15794:113:19","nodeType":"YulBlock","src":"15794:113:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15819:4:19","nodeType":"YulLiteral","src":"15819:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15825:10:19","nodeType":"YulLiteral","src":"15825:10:19","type":"","value":"0xddafbaef"}],"functionName":{"name":"mstore","nativeSrc":"15812:6:19","nodeType":"YulIdentifier","src":"15812:6:19"},"nativeSrc":"15812:24:19","nodeType":"YulFunctionCall","src":"15812:24:19"},"nativeSrc":"15812:24:19","nodeType":"YulExpressionStatement","src":"15812:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15882:4:19","nodeType":"YulLiteral","src":"15882:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15888:4:19","nodeType":"YulLiteral","src":"15888:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15875:6:19","nodeType":"YulIdentifier","src":"15875:6:19"},"nativeSrc":"15875:18:19","nodeType":"YulFunctionCall","src":"15875:18:19"},"nativeSrc":"15875:18:19","nodeType":"YulExpressionStatement","src":"15875:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15767:14:19","nodeType":"YulIdentifier","src":"15767:14:19"},"nativeSrc":"15767:16:19","nodeType":"YulFunctionCall","src":"15767:16:19"}],"functionName":{"name":"mload","nativeSrc":"15761:5:19","nodeType":"YulIdentifier","src":"15761:5:19"},"nativeSrc":"15761:23:19","nodeType":"YulFunctionCall","src":"15761:23:19"},{"name":"owner","nativeSrc":"15786:5:19","nodeType":"YulIdentifier","src":"15786:5:19"}],"functionName":{"name":"eq","nativeSrc":"15758:2:19","nodeType":"YulIdentifier","src":"15758:2:19"},"nativeSrc":"15758:34:19","nodeType":"YulFunctionCall","src":"15758:34:19"}],"functionName":{"name":"iszero","nativeSrc":"15751:6:19","nodeType":"YulIdentifier","src":"15751:6:19"},"nativeSrc":"15751:42:19","nodeType":"YulFunctionCall","src":"15751:42:19"},"nativeSrc":"15748:159:19","nodeType":"YulIf","src":"15748:159:19"},{"expression":{"arguments":[{"name":"nonceSlot","nativeSrc":"15981:9:19","nodeType":"YulIdentifier","src":"15981:9:19"},{"arguments":[{"name":"nonceValue","nativeSrc":"15996:10:19","nodeType":"YulIdentifier","src":"15996:10:19"},{"name":"t","nativeSrc":"16008:1:19","nodeType":"YulIdentifier","src":"16008:1:19"}],"functionName":{"name":"add","nativeSrc":"15992:3:19","nodeType":"YulIdentifier","src":"15992:3:19"},"nativeSrc":"15992:18:19","nodeType":"YulFunctionCall","src":"15992:18:19"}],"functionName":{"name":"sstore","nativeSrc":"15974:6:19","nodeType":"YulIdentifier","src":"15974:6:19"},"nativeSrc":"15974:37:19","nodeType":"YulFunctionCall","src":"15974:37:19"},"nativeSrc":"15974:37:19","nodeType":"YulExpressionStatement","src":"15974:37:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16181:4:19","nodeType":"YulLiteral","src":"16181:4:19","type":"","value":"0x40"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16194:3:19","nodeType":"YulLiteral","src":"16194:3:19","type":"","value":"160"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"16199:20:19","nodeType":"YulIdentifier","src":"16199:20:19"}],"functionName":{"name":"shl","nativeSrc":"16190:3:19","nodeType":"YulIdentifier","src":"16190:3:19"},"nativeSrc":"16190:30:19","nodeType":"YulFunctionCall","src":"16190:30:19"},{"name":"spender","nativeSrc":"16222:7:19","nodeType":"YulIdentifier","src":"16222:7:19"}],"functionName":{"name":"or","nativeSrc":"16187:2:19","nodeType":"YulIdentifier","src":"16187:2:19"},"nativeSrc":"16187:43:19","nodeType":"YulFunctionCall","src":"16187:43:19"}],"functionName":{"name":"mstore","nativeSrc":"16174:6:19","nodeType":"YulIdentifier","src":"16174:6:19"},"nativeSrc":"16174:57:19","nodeType":"YulFunctionCall","src":"16174:57:19"},"nativeSrc":"16174:57:19","nodeType":"YulExpressionStatement","src":"16174:57:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16261:4:19","nodeType":"YulLiteral","src":"16261:4:19","type":"","value":"0x2c"},{"kind":"number","nativeSrc":"16267:4:19","nodeType":"YulLiteral","src":"16267:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"16251:9:19","nodeType":"YulIdentifier","src":"16251:9:19"},"nativeSrc":"16251:21:19","nodeType":"YulFunctionCall","src":"16251:21:19"},{"name":"value","nativeSrc":"16274:5:19","nodeType":"YulIdentifier","src":"16274:5:19"}],"functionName":{"name":"sstore","nativeSrc":"16244:6:19","nodeType":"YulIdentifier","src":"16244:6:19"},"nativeSrc":"16244:36:19","nodeType":"YulFunctionCall","src":"16244:36:19"},"nativeSrc":"16244:36:19","nodeType":"YulExpressionStatement","src":"16244:36:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"16344:1:19","nodeType":"YulIdentifier","src":"16344:1:19"},{"kind":"number","nativeSrc":"16347:4:19","nodeType":"YulLiteral","src":"16347:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16340:3:19","nodeType":"YulIdentifier","src":"16340:3:19"},"nativeSrc":"16340:12:19","nodeType":"YulFunctionCall","src":"16340:12:19"},{"kind":"number","nativeSrc":"16354:4:19","nodeType":"YulLiteral","src":"16354:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"16360:25:19","nodeType":"YulIdentifier","src":"16360:25:19"},{"name":"owner","nativeSrc":"16387:5:19","nodeType":"YulIdentifier","src":"16387:5:19"},{"name":"spender","nativeSrc":"16394:7:19","nodeType":"YulIdentifier","src":"16394:7:19"}],"functionName":{"name":"log3","nativeSrc":"16335:4:19","nodeType":"YulIdentifier","src":"16335:4:19"},"nativeSrc":"16335:67:19","nodeType":"YulFunctionCall","src":"16335:67:19"},"nativeSrc":"16335:67:19","nodeType":"YulExpressionStatement","src":"16335:67:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16422:4:19","nodeType":"YulLiteral","src":"16422:4:19","type":"","value":"0x40"},{"name":"m","nativeSrc":"16428:1:19","nodeType":"YulIdentifier","src":"16428:1:19"}],"functionName":{"name":"mstore","nativeSrc":"16415:6:19","nodeType":"YulIdentifier","src":"16415:6:19"},"nativeSrc":"16415:15:19","nodeType":"YulFunctionCall","src":"16415:15:19"},"nativeSrc":"16415:15:19","nodeType":"YulExpressionStatement","src":"16415:15:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16486:4:19","nodeType":"YulLiteral","src":"16486:4:19","type":"","value":"0x60"},{"kind":"number","nativeSrc":"16492:1:19","nodeType":"YulLiteral","src":"16492:1:19","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16479:6:19","nodeType":"YulIdentifier","src":"16479:6:19"},"nativeSrc":"16479:15:19","nodeType":"YulFunctionCall","src":"16479:15:19"},"nativeSrc":"16479:15:19","nodeType":"YulExpressionStatement","src":"16479:15:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"16199:20:19","valueSize":1},{"declaration":8000,"isOffset":false,"isSlot":false,"src":"16360:25:19","valueSize":1},{"declaration":8024,"isOffset":false,"isSlot":false,"src":"14541:16:19","valueSize":1},{"declaration":8020,"isOffset":false,"isSlot":false,"src":"14303:39:19","valueSize":1},{"declaration":8032,"isOffset":false,"isSlot":false,"src":"14845:16:19","valueSize":1},{"declaration":8028,"isOffset":false,"isSlot":false,"src":"14635:13:19","valueSize":1},{"declaration":8179,"isOffset":false,"isSlot":false,"src":"13896:8:19","valueSize":1},{"declaration":8179,"isOffset":false,"isSlot":false,"src":"15063:8:19","valueSize":1},{"declaration":8189,"isOffset":false,"isSlot":false,"src":"14592:8:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14138:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14163:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14369:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14896:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"15786:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"16387:5:19","valueSize":1},{"declaration":8183,"isOffset":false,"isSlot":false,"src":"15277:1:19","valueSize":1},{"declaration":8185,"isOffset":false,"isSlot":false,"src":"15305:1:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"14183:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"14210:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"14936:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"16222:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"16394:7:19","valueSize":1},{"declaration":8181,"isOffset":false,"isSlot":false,"src":"15248:1:19","valueSize":1},{"declaration":8177,"isOffset":false,"isSlot":false,"src":"14978:5:19","valueSize":1},{"declaration":8177,"isOffset":false,"isSlot":false,"src":"16274:5:19","valueSize":1}],"id":8210,"nodeType":"InlineAssembly","src":"13781:2752:19"}]},"documentation":{"id":8171,"nodeType":"StructuredDocumentation","src":"13146:173:19","text":"@dev Sets `value` as the allowance of `spender` over the tokens of `owner`,\n authorized by a signed approval by `owner`.\n Emits a {Approval} event."},"functionSelector":"d505accf","id":8212,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"13333:6:19","nodeType":"FunctionDefinition","parameters":{"id":8186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8173,"mutability":"mutable","name":"owner","nameLocation":"13357:5:19","nodeType":"VariableDeclaration","scope":8212,"src":"13349:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8172,"name":"address","nodeType":"ElementaryTypeName","src":"13349:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8175,"mutability":"mutable","name":"spender","nameLocation":"13380:7:19","nodeType":"VariableDeclaration","scope":8212,"src":"13372:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8174,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8177,"mutability":"mutable","name":"value","nameLocation":"13405:5:19","nodeType":"VariableDeclaration","scope":8212,"src":"13397:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8176,"name":"uint256","nodeType":"ElementaryTypeName","src":"13397:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8179,"mutability":"mutable","name":"deadline","nameLocation":"13428:8:19","nodeType":"VariableDeclaration","scope":8212,"src":"13420:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8178,"name":"uint256","nodeType":"ElementaryTypeName","src":"13420:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8181,"mutability":"mutable","name":"v","nameLocation":"13452:1:19","nodeType":"VariableDeclaration","scope":8212,"src":"13446:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8180,"name":"uint8","nodeType":"ElementaryTypeName","src":"13446:5:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8183,"mutability":"mutable","name":"r","nameLocation":"13471:1:19","nodeType":"VariableDeclaration","scope":8212,"src":"13463:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13463:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8185,"mutability":"mutable","name":"s","nameLocation":"13490:1:19","nodeType":"VariableDeclaration","scope":8212,"src":"13482:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13482:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13339:158:19"},"returnParameters":{"id":8187,"nodeType":"ParameterList","parameters":[],"src":"13513:0:19"},"scope":8369,"src":"13324:3215:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8241,"nodeType":"Block","src":"16693:620:19","statements":[{"assignments":[8219],"declarations":[{"constant":false,"id":8219,"mutability":"mutable","name":"nameHash","nameLocation":"16711:8:19","nodeType":"VariableDeclaration","scope":8241,"src":"16703:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16703:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8222,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8220,"name":"_constantNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"16722:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16722:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16703:38:19"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8223,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"16849:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16869:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16861:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16861:7:19","typeDescriptions":{}}},"id":8227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16861:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16849:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8239,"nodeType":"IfStatement","src":"16845:63:19","trueBody":{"expression":{"id":8237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8229,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"16873:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8233,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8038,"src":"16900:4:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":8234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16900:6:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16894:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8231,"name":"bytes","nodeType":"ElementaryTypeName","src":"16894:5:19","typeDescriptions":{}}},"id":8235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8230,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16884:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16884:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16873:35:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8238,"nodeType":"ExpressionStatement","src":"16873:35:19"}},{"AST":{"nativeSrc":"16970:337:19","nodeType":"YulBlock","src":"16970:337:19","statements":[{"nativeSrc":"16984:20:19","nodeType":"YulVariableDeclaration","src":"16984:20:19","value":{"arguments":[{"kind":"number","nativeSrc":"16999:4:19","nodeType":"YulLiteral","src":"16999:4:19","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"16993:5:19","nodeType":"YulIdentifier","src":"16993:5:19"},"nativeSrc":"16993:11:19","nodeType":"YulFunctionCall","src":"16993:11:19"},"variables":[{"name":"m","nativeSrc":"16988:1:19","nodeType":"YulTypedName","src":"16988:1:19","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"17057:1:19","nodeType":"YulIdentifier","src":"17057:1:19"},{"name":"_DOMAIN_TYPEHASH","nativeSrc":"17060:16:19","nodeType":"YulIdentifier","src":"17060:16:19"}],"functionName":{"name":"mstore","nativeSrc":"17050:6:19","nodeType":"YulIdentifier","src":"17050:6:19"},"nativeSrc":"17050:27:19","nodeType":"YulFunctionCall","src":"17050:27:19"},"nativeSrc":"17050:27:19","nodeType":"YulExpressionStatement","src":"17050:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17101:1:19","nodeType":"YulIdentifier","src":"17101:1:19"},{"kind":"number","nativeSrc":"17104:4:19","nodeType":"YulLiteral","src":"17104:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17097:3:19","nodeType":"YulIdentifier","src":"17097:3:19"},"nativeSrc":"17097:12:19","nodeType":"YulFunctionCall","src":"17097:12:19"},{"name":"nameHash","nativeSrc":"17111:8:19","nodeType":"YulIdentifier","src":"17111:8:19"}],"functionName":{"name":"mstore","nativeSrc":"17090:6:19","nodeType":"YulIdentifier","src":"17090:6:19"},"nativeSrc":"17090:30:19","nodeType":"YulFunctionCall","src":"17090:30:19"},"nativeSrc":"17090:30:19","nodeType":"YulExpressionStatement","src":"17090:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17144:1:19","nodeType":"YulIdentifier","src":"17144:1:19"},{"kind":"number","nativeSrc":"17147:4:19","nodeType":"YulLiteral","src":"17147:4:19","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17140:3:19","nodeType":"YulIdentifier","src":"17140:3:19"},"nativeSrc":"17140:12:19","nodeType":"YulFunctionCall","src":"17140:12:19"},{"name":"_VERSION_HASH","nativeSrc":"17154:13:19","nodeType":"YulIdentifier","src":"17154:13:19"}],"functionName":{"name":"mstore","nativeSrc":"17133:6:19","nodeType":"YulIdentifier","src":"17133:6:19"},"nativeSrc":"17133:35:19","nodeType":"YulFunctionCall","src":"17133:35:19"},"nativeSrc":"17133:35:19","nodeType":"YulExpressionStatement","src":"17133:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17192:1:19","nodeType":"YulIdentifier","src":"17192:1:19"},{"kind":"number","nativeSrc":"17195:4:19","nodeType":"YulLiteral","src":"17195:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17188:3:19","nodeType":"YulIdentifier","src":"17188:3:19"},"nativeSrc":"17188:12:19","nodeType":"YulFunctionCall","src":"17188:12:19"},{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"17202:7:19","nodeType":"YulIdentifier","src":"17202:7:19"},"nativeSrc":"17202:9:19","nodeType":"YulFunctionCall","src":"17202:9:19"}],"functionName":{"name":"mstore","nativeSrc":"17181:6:19","nodeType":"YulIdentifier","src":"17181:6:19"},"nativeSrc":"17181:31:19","nodeType":"YulFunctionCall","src":"17181:31:19"},"nativeSrc":"17181:31:19","nodeType":"YulExpressionStatement","src":"17181:31:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17236:1:19","nodeType":"YulIdentifier","src":"17236:1:19"},{"kind":"number","nativeSrc":"17239:4:19","nodeType":"YulLiteral","src":"17239:4:19","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"17232:3:19","nodeType":"YulIdentifier","src":"17232:3:19"},"nativeSrc":"17232:12:19","nodeType":"YulFunctionCall","src":"17232:12:19"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"17246:7:19","nodeType":"YulIdentifier","src":"17246:7:19"},"nativeSrc":"17246:9:19","nodeType":"YulFunctionCall","src":"17246:9:19"}],"functionName":{"name":"mstore","nativeSrc":"17225:6:19","nodeType":"YulIdentifier","src":"17225:6:19"},"nativeSrc":"17225:31:19","nodeType":"YulFunctionCall","src":"17225:31:19"},"nativeSrc":"17225:31:19","nodeType":"YulExpressionStatement","src":"17225:31:19"},{"nativeSrc":"17269:28:19","nodeType":"YulAssignment","src":"17269:28:19","value":{"arguments":[{"name":"m","nativeSrc":"17289:1:19","nodeType":"YulIdentifier","src":"17289:1:19"},{"kind":"number","nativeSrc":"17292:4:19","nodeType":"YulLiteral","src":"17292:4:19","type":"","value":"0xa0"}],"functionName":{"name":"keccak256","nativeSrc":"17279:9:19","nodeType":"YulIdentifier","src":"17279:9:19"},"nativeSrc":"17279:18:19","nodeType":"YulFunctionCall","src":"17279:18:19"},"variableNames":[{"name":"result","nativeSrc":"17269:6:19","nodeType":"YulIdentifier","src":"17269:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8024,"isOffset":false,"isSlot":false,"src":"17060:16:19","valueSize":1},{"declaration":8028,"isOffset":false,"isSlot":false,"src":"17154:13:19","valueSize":1},{"declaration":8219,"isOffset":false,"isSlot":false,"src":"17111:8:19","valueSize":1},{"declaration":8216,"isOffset":false,"isSlot":false,"src":"17269:6:19","valueSize":1}],"id":8240,"nodeType":"InlineAssembly","src":"16961:346:19"}]},"documentation":{"id":8213,"nodeType":"StructuredDocumentation","src":"16545:70:19","text":"@dev Returns the EIP-712 domain separator for the EIP-2612 permit."},"functionSelector":"3644e515","id":8242,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"16629:16:19","nodeType":"FunctionDefinition","parameters":{"id":8214,"nodeType":"ParameterList","parameters":[],"src":"16645:2:19"},"returnParameters":{"id":8217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8216,"mutability":"mutable","name":"result","nameLocation":"16685:6:19","nodeType":"VariableDeclaration","scope":8242,"src":"16677:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8215,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16677:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16676:16:19"},"scope":8369,"src":"16620:693:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8269,"nodeType":"Block","src":"17777:1112:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17816:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17808:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8251,"name":"address","nodeType":"ElementaryTypeName","src":"17808:7:19","typeDescriptions":{}}},"id":8254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17808:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8255,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"17820:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8256,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"17824:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8250,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"17787:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17787:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8258,"nodeType":"ExpressionStatement","src":"17787:44:19"},{"AST":{"nativeSrc":"17893:937:19","nodeType":"YulBlock","src":"17893:937:19","statements":[{"nativeSrc":"17907:50:19","nodeType":"YulVariableDeclaration","src":"17907:50:19","value":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"17938:18:19","nodeType":"YulIdentifier","src":"17938:18:19"}],"functionName":{"name":"sload","nativeSrc":"17932:5:19","nodeType":"YulIdentifier","src":"17932:5:19"},"nativeSrc":"17932:25:19","nodeType":"YulFunctionCall","src":"17932:25:19"},"variables":[{"name":"totalSupplyBefore","nativeSrc":"17911:17:19","nodeType":"YulTypedName","src":"17911:17:19","type":""}]},{"nativeSrc":"17970:54:19","nodeType":"YulVariableDeclaration","src":"17970:54:19","value":{"arguments":[{"name":"totalSupplyBefore","nativeSrc":"17998:17:19","nodeType":"YulIdentifier","src":"17998:17:19"},{"name":"amount","nativeSrc":"18017:6:19","nodeType":"YulIdentifier","src":"18017:6:19"}],"functionName":{"name":"add","nativeSrc":"17994:3:19","nodeType":"YulIdentifier","src":"17994:3:19"},"nativeSrc":"17994:30:19","nodeType":"YulFunctionCall","src":"17994:30:19"},"variables":[{"name":"totalSupplyAfter","nativeSrc":"17974:16:19","nodeType":"YulTypedName","src":"17974:16:19","type":""}]},{"body":{"nativeSrc":"18133:119:19","nodeType":"YulBlock","src":"18133:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18158:4:19","nodeType":"YulLiteral","src":"18158:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18164:10:19","nodeType":"YulLiteral","src":"18164:10:19","type":"","value":"0xe5cfe957"}],"functionName":{"name":"mstore","nativeSrc":"18151:6:19","nodeType":"YulIdentifier","src":"18151:6:19"},"nativeSrc":"18151:24:19","nodeType":"YulFunctionCall","src":"18151:24:19"},"nativeSrc":"18151:24:19","nodeType":"YulExpressionStatement","src":"18151:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18227:4:19","nodeType":"YulLiteral","src":"18227:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18233:4:19","nodeType":"YulLiteral","src":"18233:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18220:6:19","nodeType":"YulIdentifier","src":"18220:6:19"},"nativeSrc":"18220:18:19","nodeType":"YulFunctionCall","src":"18220:18:19"},"nativeSrc":"18220:18:19","nodeType":"YulExpressionStatement","src":"18220:18:19"}]},"condition":{"arguments":[{"name":"totalSupplyAfter","nativeSrc":"18096:16:19","nodeType":"YulIdentifier","src":"18096:16:19"},{"name":"totalSupplyBefore","nativeSrc":"18114:17:19","nodeType":"YulIdentifier","src":"18114:17:19"}],"functionName":{"name":"lt","nativeSrc":"18093:2:19","nodeType":"YulIdentifier","src":"18093:2:19"},"nativeSrc":"18093:39:19","nodeType":"YulFunctionCall","src":"18093:39:19"},"nativeSrc":"18090:162:19","nodeType":"YulIf","src":"18090:162:19"},{"expression":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"18319:18:19","nodeType":"YulIdentifier","src":"18319:18:19"},{"name":"totalSupplyAfter","nativeSrc":"18339:16:19","nodeType":"YulIdentifier","src":"18339:16:19"}],"functionName":{"name":"sstore","nativeSrc":"18312:6:19","nodeType":"YulIdentifier","src":"18312:6:19"},"nativeSrc":"18312:44:19","nodeType":"YulFunctionCall","src":"18312:44:19"},"nativeSrc":"18312:44:19","nodeType":"YulExpressionStatement","src":"18312:44:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18436:4:19","nodeType":"YulLiteral","src":"18436:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"18442:18:19","nodeType":"YulIdentifier","src":"18442:18:19"}],"functionName":{"name":"mstore","nativeSrc":"18429:6:19","nodeType":"YulIdentifier","src":"18429:6:19"},"nativeSrc":"18429:32:19","nodeType":"YulFunctionCall","src":"18429:32:19"},"nativeSrc":"18429:32:19","nodeType":"YulExpressionStatement","src":"18429:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18481:4:19","nodeType":"YulLiteral","src":"18481:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"18487:2:19","nodeType":"YulIdentifier","src":"18487:2:19"}],"functionName":{"name":"mstore","nativeSrc":"18474:6:19","nodeType":"YulIdentifier","src":"18474:6:19"},"nativeSrc":"18474:16:19","nodeType":"YulFunctionCall","src":"18474:16:19"},"nativeSrc":"18474:16:19","nodeType":"YulExpressionStatement","src":"18474:16:19"},{"nativeSrc":"18503:42:19","nodeType":"YulVariableDeclaration","src":"18503:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"18534:4:19","nodeType":"YulLiteral","src":"18534:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"18540:4:19","nodeType":"YulLiteral","src":"18540:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18524:9:19","nodeType":"YulIdentifier","src":"18524:9:19"},"nativeSrc":"18524:21:19","nodeType":"YulFunctionCall","src":"18524:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"18507:13:19","nodeType":"YulTypedName","src":"18507:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"18615:13:19","nodeType":"YulIdentifier","src":"18615:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"18640:13:19","nodeType":"YulIdentifier","src":"18640:13:19"}],"functionName":{"name":"sload","nativeSrc":"18634:5:19","nodeType":"YulIdentifier","src":"18634:5:19"},"nativeSrc":"18634:20:19","nodeType":"YulFunctionCall","src":"18634:20:19"},{"name":"amount","nativeSrc":"18656:6:19","nodeType":"YulIdentifier","src":"18656:6:19"}],"functionName":{"name":"add","nativeSrc":"18630:3:19","nodeType":"YulIdentifier","src":"18630:3:19"},"nativeSrc":"18630:33:19","nodeType":"YulFunctionCall","src":"18630:33:19"}],"functionName":{"name":"sstore","nativeSrc":"18608:6:19","nodeType":"YulIdentifier","src":"18608:6:19"},"nativeSrc":"18608:56:19","nodeType":"YulFunctionCall","src":"18608:56:19"},"nativeSrc":"18608:56:19","nodeType":"YulExpressionStatement","src":"18608:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18726:4:19","nodeType":"YulLiteral","src":"18726:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"18732:6:19","nodeType":"YulIdentifier","src":"18732:6:19"}],"functionName":{"name":"mstore","nativeSrc":"18719:6:19","nodeType":"YulIdentifier","src":"18719:6:19"},"nativeSrc":"18719:20:19","nodeType":"YulFunctionCall","src":"18719:20:19"},"nativeSrc":"18719:20:19","nodeType":"YulExpressionStatement","src":"18719:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18757:4:19","nodeType":"YulLiteral","src":"18757:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"18763:4:19","nodeType":"YulLiteral","src":"18763:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"18769:25:19","nodeType":"YulIdentifier","src":"18769:25:19"},{"kind":"number","nativeSrc":"18796:1:19","nodeType":"YulLiteral","src":"18796:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"18803:2:19","nodeType":"YulLiteral","src":"18803:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"18813:4:19","nodeType":"YulLiteral","src":"18813:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"18807:5:19","nodeType":"YulIdentifier","src":"18807:5:19"},"nativeSrc":"18807:11:19","nodeType":"YulFunctionCall","src":"18807:11:19"}],"functionName":{"name":"shr","nativeSrc":"18799:3:19","nodeType":"YulIdentifier","src":"18799:3:19"},"nativeSrc":"18799:20:19","nodeType":"YulFunctionCall","src":"18799:20:19"}],"functionName":{"name":"log3","nativeSrc":"18752:4:19","nodeType":"YulIdentifier","src":"18752:4:19"},"nativeSrc":"18752:68:19","nodeType":"YulFunctionCall","src":"18752:68:19"},"nativeSrc":"18752:68:19","nodeType":"YulExpressionStatement","src":"18752:68:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"18442:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"17938:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"18319:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"18769:25:19","valueSize":1},{"declaration":8247,"isOffset":false,"isSlot":false,"src":"18017:6:19","valueSize":1},{"declaration":8247,"isOffset":false,"isSlot":false,"src":"18656:6:19","valueSize":1},{"declaration":8247,"isOffset":false,"isSlot":false,"src":"18732:6:19","valueSize":1},{"declaration":8245,"isOffset":false,"isSlot":false,"src":"18487:2:19","valueSize":1}],"id":8259,"nodeType":"InlineAssembly","src":"17884:946:19"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18867:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18859:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8261,"name":"address","nodeType":"ElementaryTypeName","src":"18859:7:19","typeDescriptions":{}}},"id":8264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18859:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8265,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"18871:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8266,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"18875:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8260,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"18839:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18839:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8268,"nodeType":"ExpressionStatement","src":"18839:43:19"}]},"documentation":{"id":8243,"nodeType":"StructuredDocumentation","src":"17602:110:19","text":"@dev Mints `amount` tokens to `to`, increasing the total supply.\n Emits a {Transfer} event."},"id":8270,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"17726:5:19","nodeType":"FunctionDefinition","parameters":{"id":8248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8245,"mutability":"mutable","name":"to","nameLocation":"17740:2:19","nodeType":"VariableDeclaration","scope":8270,"src":"17732:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8244,"name":"address","nodeType":"ElementaryTypeName","src":"17732:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8247,"mutability":"mutable","name":"amount","nameLocation":"17752:6:19","nodeType":"VariableDeclaration","scope":8270,"src":"17744:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8246,"name":"uint256","nodeType":"ElementaryTypeName","src":"17744:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17731:28:19"},"returnParameters":{"id":8249,"nodeType":"ParameterList","parameters":[],"src":"17777:0:19"},"scope":8369,"src":"17717:1172:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8297,"nodeType":"Block","src":"19357:1057:19","statements":[{"expression":{"arguments":[{"id":8279,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"19388:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19402:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19394:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8280,"name":"address","nodeType":"ElementaryTypeName","src":"19394:7:19","typeDescriptions":{}}},"id":8283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19394:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8284,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8275,"src":"19406:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8278,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"19367:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19367:46:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8286,"nodeType":"ExpressionStatement","src":"19367:46:19"},{"AST":{"nativeSrc":"19475:878:19","nodeType":"YulBlock","src":"19475:878:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19556:4:19","nodeType":"YulLiteral","src":"19556:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"19562:18:19","nodeType":"YulIdentifier","src":"19562:18:19"}],"functionName":{"name":"mstore","nativeSrc":"19549:6:19","nodeType":"YulIdentifier","src":"19549:6:19"},"nativeSrc":"19549:32:19","nodeType":"YulFunctionCall","src":"19549:32:19"},"nativeSrc":"19549:32:19","nodeType":"YulExpressionStatement","src":"19549:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19601:4:19","nodeType":"YulLiteral","src":"19601:4:19","type":"","value":"0x00"},{"name":"from","nativeSrc":"19607:4:19","nodeType":"YulIdentifier","src":"19607:4:19"}],"functionName":{"name":"mstore","nativeSrc":"19594:6:19","nodeType":"YulIdentifier","src":"19594:6:19"},"nativeSrc":"19594:18:19","nodeType":"YulFunctionCall","src":"19594:18:19"},"nativeSrc":"19594:18:19","nodeType":"YulExpressionStatement","src":"19594:18:19"},{"nativeSrc":"19625:44:19","nodeType":"YulVariableDeclaration","src":"19625:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"19658:4:19","nodeType":"YulLiteral","src":"19658:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"19664:4:19","nodeType":"YulLiteral","src":"19664:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"19648:9:19","nodeType":"YulIdentifier","src":"19648:9:19"},"nativeSrc":"19648:21:19","nodeType":"YulFunctionCall","src":"19648:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"19629:15:19","nodeType":"YulTypedName","src":"19629:15:19","type":""}]},{"nativeSrc":"19682:41:19","nodeType":"YulVariableDeclaration","src":"19682:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"19707:15:19","nodeType":"YulIdentifier","src":"19707:15:19"}],"functionName":{"name":"sload","nativeSrc":"19701:5:19","nodeType":"YulIdentifier","src":"19701:5:19"},"nativeSrc":"19701:22:19","nodeType":"YulFunctionCall","src":"19701:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"19686:11:19","nodeType":"YulTypedName","src":"19686:11:19","type":""}]},{"body":{"nativeSrc":"19810:119:19","nodeType":"YulBlock","src":"19810:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19835:4:19","nodeType":"YulLiteral","src":"19835:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19841:10:19","nodeType":"YulLiteral","src":"19841:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"19828:6:19","nodeType":"YulIdentifier","src":"19828:6:19"},"nativeSrc":"19828:24:19","nodeType":"YulFunctionCall","src":"19828:24:19"},"nativeSrc":"19828:24:19","nodeType":"YulExpressionStatement","src":"19828:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19904:4:19","nodeType":"YulLiteral","src":"19904:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"19910:4:19","nodeType":"YulLiteral","src":"19910:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"19897:6:19","nodeType":"YulIdentifier","src":"19897:6:19"},"nativeSrc":"19897:18:19","nodeType":"YulFunctionCall","src":"19897:18:19"},"nativeSrc":"19897:18:19","nodeType":"YulExpressionStatement","src":"19897:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"19789:6:19","nodeType":"YulIdentifier","src":"19789:6:19"},{"name":"fromBalance","nativeSrc":"19797:11:19","nodeType":"YulIdentifier","src":"19797:11:19"}],"functionName":{"name":"gt","nativeSrc":"19786:2:19","nodeType":"YulIdentifier","src":"19786:2:19"},"nativeSrc":"19786:23:19","nodeType":"YulFunctionCall","src":"19786:23:19"},"nativeSrc":"19783:146:19","nodeType":"YulIf","src":"19783:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"20004:15:19","nodeType":"YulIdentifier","src":"20004:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"20025:11:19","nodeType":"YulIdentifier","src":"20025:11:19"},{"name":"amount","nativeSrc":"20038:6:19","nodeType":"YulIdentifier","src":"20038:6:19"}],"functionName":{"name":"sub","nativeSrc":"20021:3:19","nodeType":"YulIdentifier","src":"20021:3:19"},"nativeSrc":"20021:24:19","nodeType":"YulFunctionCall","src":"20021:24:19"}],"functionName":{"name":"sstore","nativeSrc":"19997:6:19","nodeType":"YulIdentifier","src":"19997:6:19"},"nativeSrc":"19997:49:19","nodeType":"YulFunctionCall","src":"19997:49:19"},"nativeSrc":"19997:49:19","nodeType":"YulExpressionStatement","src":"19997:49:19"},{"expression":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"20126:18:19","nodeType":"YulIdentifier","src":"20126:18:19"},{"arguments":[{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"20156:18:19","nodeType":"YulIdentifier","src":"20156:18:19"}],"functionName":{"name":"sload","nativeSrc":"20150:5:19","nodeType":"YulIdentifier","src":"20150:5:19"},"nativeSrc":"20150:25:19","nodeType":"YulFunctionCall","src":"20150:25:19"},{"name":"amount","nativeSrc":"20177:6:19","nodeType":"YulIdentifier","src":"20177:6:19"}],"functionName":{"name":"sub","nativeSrc":"20146:3:19","nodeType":"YulIdentifier","src":"20146:3:19"},"nativeSrc":"20146:38:19","nodeType":"YulFunctionCall","src":"20146:38:19"}],"functionName":{"name":"sstore","nativeSrc":"20119:6:19","nodeType":"YulIdentifier","src":"20119:6:19"},"nativeSrc":"20119:66:19","nodeType":"YulFunctionCall","src":"20119:66:19"},"nativeSrc":"20119:66:19","nodeType":"YulExpressionStatement","src":"20119:66:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20247:4:19","nodeType":"YulLiteral","src":"20247:4:19","type":"","value":"0x00"},{"name":"amount","nativeSrc":"20253:6:19","nodeType":"YulIdentifier","src":"20253:6:19"}],"functionName":{"name":"mstore","nativeSrc":"20240:6:19","nodeType":"YulIdentifier","src":"20240:6:19"},"nativeSrc":"20240:20:19","nodeType":"YulFunctionCall","src":"20240:20:19"},"nativeSrc":"20240:20:19","nodeType":"YulExpressionStatement","src":"20240:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20278:4:19","nodeType":"YulLiteral","src":"20278:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20284:4:19","nodeType":"YulLiteral","src":"20284:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"20290:25:19","nodeType":"YulIdentifier","src":"20290:25:19"},{"arguments":[{"kind":"number","nativeSrc":"20321:2:19","nodeType":"YulLiteral","src":"20321:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"20329:2:19","nodeType":"YulLiteral","src":"20329:2:19","type":"","value":"96"},{"name":"from","nativeSrc":"20333:4:19","nodeType":"YulIdentifier","src":"20333:4:19"}],"functionName":{"name":"shl","nativeSrc":"20325:3:19","nodeType":"YulIdentifier","src":"20325:3:19"},"nativeSrc":"20325:13:19","nodeType":"YulFunctionCall","src":"20325:13:19"}],"functionName":{"name":"shr","nativeSrc":"20317:3:19","nodeType":"YulIdentifier","src":"20317:3:19"},"nativeSrc":"20317:22:19","nodeType":"YulFunctionCall","src":"20317:22:19"},{"kind":"number","nativeSrc":"20341:1:19","nodeType":"YulLiteral","src":"20341:1:19","type":"","value":"0"}],"functionName":{"name":"log3","nativeSrc":"20273:4:19","nodeType":"YulIdentifier","src":"20273:4:19"},"nativeSrc":"20273:70:19","nodeType":"YulFunctionCall","src":"20273:70:19"},"nativeSrc":"20273:70:19","nodeType":"YulExpressionStatement","src":"20273:70:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"19562:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"20126:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"20156:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"20290:25:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"19789:6:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"20038:6:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"20177:6:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"20253:6:19","valueSize":1},{"declaration":8273,"isOffset":false,"isSlot":false,"src":"19607:4:19","valueSize":1},{"declaration":8273,"isOffset":false,"isSlot":false,"src":"20333:4:19","valueSize":1}],"id":8287,"nodeType":"InlineAssembly","src":"19466:887:19"},{"expression":{"arguments":[{"id":8289,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"20382:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20396:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20388:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8290,"name":"address","nodeType":"ElementaryTypeName","src":"20388:7:19","typeDescriptions":{}}},"id":8293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20388:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8294,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8275,"src":"20400:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8288,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"20362:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20362:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8296,"nodeType":"ExpressionStatement","src":"20362:45:19"}]},"documentation":{"id":8271,"nodeType":"StructuredDocumentation","src":"19178:112:19","text":"@dev Burns `amount` tokens from `from`, reducing the total supply.\n Emits a {Transfer} event."},"id":8298,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"19304:5:19","nodeType":"FunctionDefinition","parameters":{"id":8276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8273,"mutability":"mutable","name":"from","nameLocation":"19318:4:19","nodeType":"VariableDeclaration","scope":8298,"src":"19310:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8272,"name":"address","nodeType":"ElementaryTypeName","src":"19310:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8275,"mutability":"mutable","name":"amount","nameLocation":"19332:6:19","nodeType":"VariableDeclaration","scope":8298,"src":"19324:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8274,"name":"uint256","nodeType":"ElementaryTypeName","src":"19324:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19309:30:19"},"returnParameters":{"id":8277,"nodeType":"ParameterList","parameters":[],"src":"19357:0:19"},"scope":8369,"src":"19295:1119:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8321,"nodeType":"Block","src":"20840:1318:19","statements":[{"expression":{"arguments":[{"id":8309,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"20871:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8310,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"20877:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8311,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8305,"src":"20881:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8308,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"20850:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20850:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8313,"nodeType":"ExpressionStatement","src":"20850:38:19"},{"AST":{"nativeSrc":"20950:1155:19","nodeType":"YulBlock","src":"20950:1155:19","statements":[{"nativeSrc":"20964:26:19","nodeType":"YulVariableDeclaration","src":"20964:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"20981:2:19","nodeType":"YulLiteral","src":"20981:2:19","type":"","value":"96"},{"name":"from","nativeSrc":"20985:4:19","nodeType":"YulIdentifier","src":"20985:4:19"}],"functionName":{"name":"shl","nativeSrc":"20977:3:19","nodeType":"YulIdentifier","src":"20977:3:19"},"nativeSrc":"20977:13:19","nodeType":"YulFunctionCall","src":"20977:13:19"},"variables":[{"name":"from_","nativeSrc":"20968:5:19","nodeType":"YulTypedName","src":"20968:5:19","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21070:4:19","nodeType":"YulLiteral","src":"21070:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"21079:5:19","nodeType":"YulIdentifier","src":"21079:5:19"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"21086:18:19","nodeType":"YulIdentifier","src":"21086:18:19"}],"functionName":{"name":"or","nativeSrc":"21076:2:19","nodeType":"YulIdentifier","src":"21076:2:19"},"nativeSrc":"21076:29:19","nodeType":"YulFunctionCall","src":"21076:29:19"}],"functionName":{"name":"mstore","nativeSrc":"21063:6:19","nodeType":"YulIdentifier","src":"21063:6:19"},"nativeSrc":"21063:43:19","nodeType":"YulFunctionCall","src":"21063:43:19"},"nativeSrc":"21063:43:19","nodeType":"YulExpressionStatement","src":"21063:43:19"},{"nativeSrc":"21119:44:19","nodeType":"YulVariableDeclaration","src":"21119:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"21152:4:19","nodeType":"YulLiteral","src":"21152:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"21158:4:19","nodeType":"YulLiteral","src":"21158:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21142:9:19","nodeType":"YulIdentifier","src":"21142:9:19"},"nativeSrc":"21142:21:19","nodeType":"YulFunctionCall","src":"21142:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"21123:15:19","nodeType":"YulTypedName","src":"21123:15:19","type":""}]},{"nativeSrc":"21176:41:19","nodeType":"YulVariableDeclaration","src":"21176:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"21201:15:19","nodeType":"YulIdentifier","src":"21201:15:19"}],"functionName":{"name":"sload","nativeSrc":"21195:5:19","nodeType":"YulIdentifier","src":"21195:5:19"},"nativeSrc":"21195:22:19","nodeType":"YulFunctionCall","src":"21195:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"21180:11:19","nodeType":"YulTypedName","src":"21180:11:19","type":""}]},{"body":{"nativeSrc":"21304:119:19","nodeType":"YulBlock","src":"21304:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21329:4:19","nodeType":"YulLiteral","src":"21329:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21335:10:19","nodeType":"YulLiteral","src":"21335:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"21322:6:19","nodeType":"YulIdentifier","src":"21322:6:19"},"nativeSrc":"21322:24:19","nodeType":"YulFunctionCall","src":"21322:24:19"},"nativeSrc":"21322:24:19","nodeType":"YulExpressionStatement","src":"21322:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21398:4:19","nodeType":"YulLiteral","src":"21398:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"21404:4:19","nodeType":"YulLiteral","src":"21404:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"21391:6:19","nodeType":"YulIdentifier","src":"21391:6:19"},"nativeSrc":"21391:18:19","nodeType":"YulFunctionCall","src":"21391:18:19"},"nativeSrc":"21391:18:19","nodeType":"YulExpressionStatement","src":"21391:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"21283:6:19","nodeType":"YulIdentifier","src":"21283:6:19"},{"name":"fromBalance","nativeSrc":"21291:11:19","nodeType":"YulIdentifier","src":"21291:11:19"}],"functionName":{"name":"gt","nativeSrc":"21280:2:19","nodeType":"YulIdentifier","src":"21280:2:19"},"nativeSrc":"21280:23:19","nodeType":"YulFunctionCall","src":"21280:23:19"},"nativeSrc":"21277:146:19","nodeType":"YulIf","src":"21277:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"21498:15:19","nodeType":"YulIdentifier","src":"21498:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"21519:11:19","nodeType":"YulIdentifier","src":"21519:11:19"},{"name":"amount","nativeSrc":"21532:6:19","nodeType":"YulIdentifier","src":"21532:6:19"}],"functionName":{"name":"sub","nativeSrc":"21515:3:19","nodeType":"YulIdentifier","src":"21515:3:19"},"nativeSrc":"21515:24:19","nodeType":"YulFunctionCall","src":"21515:24:19"}],"functionName":{"name":"sstore","nativeSrc":"21491:6:19","nodeType":"YulIdentifier","src":"21491:6:19"},"nativeSrc":"21491:49:19","nodeType":"YulFunctionCall","src":"21491:49:19"},"nativeSrc":"21491:49:19","nodeType":"YulExpressionStatement","src":"21491:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21609:4:19","nodeType":"YulLiteral","src":"21609:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"21615:2:19","nodeType":"YulIdentifier","src":"21615:2:19"}],"functionName":{"name":"mstore","nativeSrc":"21602:6:19","nodeType":"YulIdentifier","src":"21602:6:19"},"nativeSrc":"21602:16:19","nodeType":"YulFunctionCall","src":"21602:16:19"},"nativeSrc":"21602:16:19","nodeType":"YulExpressionStatement","src":"21602:16:19"},{"nativeSrc":"21631:42:19","nodeType":"YulVariableDeclaration","src":"21631:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"21662:4:19","nodeType":"YulLiteral","src":"21662:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"21668:4:19","nodeType":"YulLiteral","src":"21668:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21652:9:19","nodeType":"YulIdentifier","src":"21652:9:19"},"nativeSrc":"21652:21:19","nodeType":"YulFunctionCall","src":"21652:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"21635:13:19","nodeType":"YulTypedName","src":"21635:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"21877:13:19","nodeType":"YulIdentifier","src":"21877:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"21902:13:19","nodeType":"YulIdentifier","src":"21902:13:19"}],"functionName":{"name":"sload","nativeSrc":"21896:5:19","nodeType":"YulIdentifier","src":"21896:5:19"},"nativeSrc":"21896:20:19","nodeType":"YulFunctionCall","src":"21896:20:19"},{"name":"amount","nativeSrc":"21918:6:19","nodeType":"YulIdentifier","src":"21918:6:19"}],"functionName":{"name":"add","nativeSrc":"21892:3:19","nodeType":"YulIdentifier","src":"21892:3:19"},"nativeSrc":"21892:33:19","nodeType":"YulFunctionCall","src":"21892:33:19"}],"functionName":{"name":"sstore","nativeSrc":"21870:6:19","nodeType":"YulIdentifier","src":"21870:6:19"},"nativeSrc":"21870:56:19","nodeType":"YulFunctionCall","src":"21870:56:19"},"nativeSrc":"21870:56:19","nodeType":"YulExpressionStatement","src":"21870:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21988:4:19","nodeType":"YulLiteral","src":"21988:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"21994:6:19","nodeType":"YulIdentifier","src":"21994:6:19"}],"functionName":{"name":"mstore","nativeSrc":"21981:6:19","nodeType":"YulIdentifier","src":"21981:6:19"},"nativeSrc":"21981:20:19","nodeType":"YulFunctionCall","src":"21981:20:19"},"nativeSrc":"21981:20:19","nodeType":"YulExpressionStatement","src":"21981:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22019:4:19","nodeType":"YulLiteral","src":"22019:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"22025:4:19","nodeType":"YulLiteral","src":"22025:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"22031:25:19","nodeType":"YulIdentifier","src":"22031:25:19"},{"arguments":[{"kind":"number","nativeSrc":"22062:2:19","nodeType":"YulLiteral","src":"22062:2:19","type":"","value":"96"},{"name":"from_","nativeSrc":"22066:5:19","nodeType":"YulIdentifier","src":"22066:5:19"}],"functionName":{"name":"shr","nativeSrc":"22058:3:19","nodeType":"YulIdentifier","src":"22058:3:19"},"nativeSrc":"22058:14:19","nodeType":"YulFunctionCall","src":"22058:14:19"},{"arguments":[{"kind":"number","nativeSrc":"22078:2:19","nodeType":"YulLiteral","src":"22078:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"22088:4:19","nodeType":"YulLiteral","src":"22088:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"22082:5:19","nodeType":"YulIdentifier","src":"22082:5:19"},"nativeSrc":"22082:11:19","nodeType":"YulFunctionCall","src":"22082:11:19"}],"functionName":{"name":"shr","nativeSrc":"22074:3:19","nodeType":"YulIdentifier","src":"22074:3:19"},"nativeSrc":"22074:20:19","nodeType":"YulFunctionCall","src":"22074:20:19"}],"functionName":{"name":"log3","nativeSrc":"22014:4:19","nodeType":"YulIdentifier","src":"22014:4:19"},"nativeSrc":"22014:81:19","nodeType":"YulFunctionCall","src":"22014:81:19"},"nativeSrc":"22014:81:19","nodeType":"YulExpressionStatement","src":"22014:81:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"21086:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"22031:25:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21283:6:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21532:6:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21918:6:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21994:6:19","valueSize":1},{"declaration":8301,"isOffset":false,"isSlot":false,"src":"20985:4:19","valueSize":1},{"declaration":8303,"isOffset":false,"isSlot":false,"src":"21615:2:19","valueSize":1}],"id":8314,"nodeType":"InlineAssembly","src":"20941:1164:19"},{"expression":{"arguments":[{"id":8316,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"22134:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8317,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"22140:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8318,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8305,"src":"22144:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8315,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"22114:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22114:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8320,"nodeType":"ExpressionStatement","src":"22114:37:19"}]},"documentation":{"id":8299,"nodeType":"StructuredDocumentation","src":"20703:54:19","text":"@dev Moves `amount` of tokens from `from` to `to`."},"id":8322,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"20771:9:19","nodeType":"FunctionDefinition","parameters":{"id":8306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8301,"mutability":"mutable","name":"from","nameLocation":"20789:4:19","nodeType":"VariableDeclaration","scope":8322,"src":"20781:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8300,"name":"address","nodeType":"ElementaryTypeName","src":"20781:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8303,"mutability":"mutable","name":"to","nameLocation":"20803:2:19","nodeType":"VariableDeclaration","scope":8322,"src":"20795:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8302,"name":"address","nodeType":"ElementaryTypeName","src":"20795:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8305,"mutability":"mutable","name":"amount","nameLocation":"20815:6:19","nodeType":"VariableDeclaration","scope":8322,"src":"20807:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8304,"name":"uint256","nodeType":"ElementaryTypeName","src":"20807:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20780:42:19"},"returnParameters":{"id":8307,"nodeType":"ParameterList","parameters":[],"src":"20840:0:19"},"scope":8369,"src":"20762:1396:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8333,"nodeType":"Block","src":"22622:857:19","statements":[{"AST":{"nativeSrc":"22684:789:19","nodeType":"YulBlock","src":"22684:789:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22767:4:19","nodeType":"YulLiteral","src":"22767:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"22773:7:19","nodeType":"YulIdentifier","src":"22773:7:19"}],"functionName":{"name":"mstore","nativeSrc":"22760:6:19","nodeType":"YulIdentifier","src":"22760:6:19"},"nativeSrc":"22760:21:19","nodeType":"YulFunctionCall","src":"22760:21:19"},"nativeSrc":"22760:21:19","nodeType":"YulExpressionStatement","src":"22760:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22801:4:19","nodeType":"YulLiteral","src":"22801:4:19","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"22807:20:19","nodeType":"YulIdentifier","src":"22807:20:19"}],"functionName":{"name":"mstore","nativeSrc":"22794:6:19","nodeType":"YulIdentifier","src":"22794:6:19"},"nativeSrc":"22794:34:19","nodeType":"YulFunctionCall","src":"22794:34:19"},"nativeSrc":"22794:34:19","nodeType":"YulExpressionStatement","src":"22794:34:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22848:4:19","nodeType":"YulLiteral","src":"22848:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"22854:5:19","nodeType":"YulIdentifier","src":"22854:5:19"}],"functionName":{"name":"mstore","nativeSrc":"22841:6:19","nodeType":"YulIdentifier","src":"22841:6:19"},"nativeSrc":"22841:19:19","nodeType":"YulFunctionCall","src":"22841:19:19"},"nativeSrc":"22841:19:19","nodeType":"YulExpressionStatement","src":"22841:19:19"},{"nativeSrc":"22873:42:19","nodeType":"YulVariableDeclaration","src":"22873:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"22904:4:19","nodeType":"YulLiteral","src":"22904:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"22910:4:19","nodeType":"YulLiteral","src":"22910:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"22894:9:19","nodeType":"YulIdentifier","src":"22894:9:19"},"nativeSrc":"22894:21:19","nodeType":"YulFunctionCall","src":"22894:21:19"},"variables":[{"name":"allowanceSlot","nativeSrc":"22877:13:19","nodeType":"YulTypedName","src":"22877:13:19","type":""}]},{"nativeSrc":"22928:38:19","nodeType":"YulVariableDeclaration","src":"22928:38:19","value":{"arguments":[{"name":"allowanceSlot","nativeSrc":"22952:13:19","nodeType":"YulIdentifier","src":"22952:13:19"}],"functionName":{"name":"sload","nativeSrc":"22946:5:19","nodeType":"YulIdentifier","src":"22946:5:19"},"nativeSrc":"22946:20:19","nodeType":"YulFunctionCall","src":"22946:20:19"},"variables":[{"name":"allowance_","nativeSrc":"22932:10:19","nodeType":"YulTypedName","src":"22932:10:19","type":""}]},{"body":{"nativeSrc":"23067:396:19","nodeType":"YulBlock","src":"23067:396:19","statements":[{"body":{"nativeSrc":"23192:133:19","nodeType":"YulBlock","src":"23192:133:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23221:4:19","nodeType":"YulLiteral","src":"23221:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"23227:10:19","nodeType":"YulLiteral","src":"23227:10:19","type":"","value":"0x13be252b"}],"functionName":{"name":"mstore","nativeSrc":"23214:6:19","nodeType":"YulIdentifier","src":"23214:6:19"},"nativeSrc":"23214:24:19","nodeType":"YulFunctionCall","src":"23214:24:19"},"nativeSrc":"23214:24:19","nodeType":"YulExpressionStatement","src":"23214:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23296:4:19","nodeType":"YulLiteral","src":"23296:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"23302:4:19","nodeType":"YulLiteral","src":"23302:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"23289:6:19","nodeType":"YulIdentifier","src":"23289:6:19"},"nativeSrc":"23289:18:19","nodeType":"YulFunctionCall","src":"23289:18:19"},"nativeSrc":"23289:18:19","nodeType":"YulExpressionStatement","src":"23289:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"23172:6:19","nodeType":"YulIdentifier","src":"23172:6:19"},{"name":"allowance_","nativeSrc":"23180:10:19","nodeType":"YulIdentifier","src":"23180:10:19"}],"functionName":{"name":"gt","nativeSrc":"23169:2:19","nodeType":"YulIdentifier","src":"23169:2:19"},"nativeSrc":"23169:22:19","nodeType":"YulFunctionCall","src":"23169:22:19"},"nativeSrc":"23166:159:19","nodeType":"YulIf","src":"23166:159:19"},{"expression":{"arguments":[{"name":"allowanceSlot","nativeSrc":"23410:13:19","nodeType":"YulIdentifier","src":"23410:13:19"},{"arguments":[{"name":"allowance_","nativeSrc":"23429:10:19","nodeType":"YulIdentifier","src":"23429:10:19"},{"name":"amount","nativeSrc":"23441:6:19","nodeType":"YulIdentifier","src":"23441:6:19"}],"functionName":{"name":"sub","nativeSrc":"23425:3:19","nodeType":"YulIdentifier","src":"23425:3:19"},"nativeSrc":"23425:23:19","nodeType":"YulFunctionCall","src":"23425:23:19"}],"functionName":{"name":"sstore","nativeSrc":"23403:6:19","nodeType":"YulIdentifier","src":"23403:6:19"},"nativeSrc":"23403:46:19","nodeType":"YulFunctionCall","src":"23403:46:19"},"nativeSrc":"23403:46:19","nodeType":"YulExpressionStatement","src":"23403:46:19"}]},"condition":{"arguments":[{"name":"allowance_","nativeSrc":"23052:10:19","nodeType":"YulIdentifier","src":"23052:10:19"},{"kind":"number","nativeSrc":"23064:1:19","nodeType":"YulLiteral","src":"23064:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23048:3:19","nodeType":"YulIdentifier","src":"23048:3:19"},"nativeSrc":"23048:18:19","nodeType":"YulFunctionCall","src":"23048:18:19"},"nativeSrc":"23045:418:19","nodeType":"YulIf","src":"23045:418:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"22807:20:19","valueSize":1},{"declaration":8329,"isOffset":false,"isSlot":false,"src":"23172:6:19","valueSize":1},{"declaration":8329,"isOffset":false,"isSlot":false,"src":"23441:6:19","valueSize":1},{"declaration":8325,"isOffset":false,"isSlot":false,"src":"22854:5:19","valueSize":1},{"declaration":8327,"isOffset":false,"isSlot":false,"src":"22773:7:19","valueSize":1}],"id":8332,"nodeType":"InlineAssembly","src":"22675:798:19"}]},"documentation":{"id":8323,"nodeType":"StructuredDocumentation","src":"22447:80:19","text":"@dev Updates the allowance of `owner` for `spender` based on spent `amount`."},"id":8334,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"22541:15:19","nodeType":"FunctionDefinition","parameters":{"id":8330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8325,"mutability":"mutable","name":"owner","nameLocation":"22565:5:19","nodeType":"VariableDeclaration","scope":8334,"src":"22557:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8324,"name":"address","nodeType":"ElementaryTypeName","src":"22557:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8327,"mutability":"mutable","name":"spender","nameLocation":"22580:7:19","nodeType":"VariableDeclaration","scope":8334,"src":"22572:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8326,"name":"address","nodeType":"ElementaryTypeName","src":"22572:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8329,"mutability":"mutable","name":"amount","nameLocation":"22597:6:19","nodeType":"VariableDeclaration","scope":8334,"src":"22589:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8328,"name":"uint256","nodeType":"ElementaryTypeName","src":"22589:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22556:48:19"},"returnParameters":{"id":8331,"nodeType":"ParameterList","parameters":[],"src":"22622:0:19"},"scope":8369,"src":"22532:947:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8345,"nodeType":"Block","src":"23695:497:19","statements":[{"AST":{"nativeSrc":"23757:429:19","nodeType":"YulBlock","src":"23757:429:19","statements":[{"nativeSrc":"23771:28:19","nodeType":"YulVariableDeclaration","src":"23771:28:19","value":{"arguments":[{"kind":"number","nativeSrc":"23789:2:19","nodeType":"YulLiteral","src":"23789:2:19","type":"","value":"96"},{"name":"owner","nativeSrc":"23793:5:19","nodeType":"YulIdentifier","src":"23793:5:19"}],"functionName":{"name":"shl","nativeSrc":"23785:3:19","nodeType":"YulIdentifier","src":"23785:3:19"},"nativeSrc":"23785:14:19","nodeType":"YulFunctionCall","src":"23785:14:19"},"variables":[{"name":"owner_","nativeSrc":"23775:6:19","nodeType":"YulTypedName","src":"23775:6:19","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23883:4:19","nodeType":"YulLiteral","src":"23883:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"23889:7:19","nodeType":"YulIdentifier","src":"23889:7:19"}],"functionName":{"name":"mstore","nativeSrc":"23876:6:19","nodeType":"YulIdentifier","src":"23876:6:19"},"nativeSrc":"23876:21:19","nodeType":"YulFunctionCall","src":"23876:21:19"},"nativeSrc":"23876:21:19","nodeType":"YulExpressionStatement","src":"23876:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23917:4:19","nodeType":"YulLiteral","src":"23917:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"owner_","nativeSrc":"23926:6:19","nodeType":"YulIdentifier","src":"23926:6:19"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"23934:20:19","nodeType":"YulIdentifier","src":"23934:20:19"}],"functionName":{"name":"or","nativeSrc":"23923:2:19","nodeType":"YulIdentifier","src":"23923:2:19"},"nativeSrc":"23923:32:19","nodeType":"YulFunctionCall","src":"23923:32:19"}],"functionName":{"name":"mstore","nativeSrc":"23910:6:19","nodeType":"YulIdentifier","src":"23910:6:19"},"nativeSrc":"23910:46:19","nodeType":"YulFunctionCall","src":"23910:46:19"},"nativeSrc":"23910:46:19","nodeType":"YulExpressionStatement","src":"23910:46:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23986:4:19","nodeType":"YulLiteral","src":"23986:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"23992:4:19","nodeType":"YulLiteral","src":"23992:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"23976:9:19","nodeType":"YulIdentifier","src":"23976:9:19"},"nativeSrc":"23976:21:19","nodeType":"YulFunctionCall","src":"23976:21:19"},{"name":"amount","nativeSrc":"23999:6:19","nodeType":"YulIdentifier","src":"23999:6:19"}],"functionName":{"name":"sstore","nativeSrc":"23969:6:19","nodeType":"YulIdentifier","src":"23969:6:19"},"nativeSrc":"23969:37:19","nodeType":"YulFunctionCall","src":"23969:37:19"},"nativeSrc":"23969:37:19","nodeType":"YulExpressionStatement","src":"23969:37:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24068:4:19","nodeType":"YulLiteral","src":"24068:4:19","type":"","value":"0x00"},{"name":"amount","nativeSrc":"24074:6:19","nodeType":"YulIdentifier","src":"24074:6:19"}],"functionName":{"name":"mstore","nativeSrc":"24061:6:19","nodeType":"YulIdentifier","src":"24061:6:19"},"nativeSrc":"24061:20:19","nodeType":"YulFunctionCall","src":"24061:20:19"},"nativeSrc":"24061:20:19","nodeType":"YulExpressionStatement","src":"24061:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24099:4:19","nodeType":"YulLiteral","src":"24099:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"24105:4:19","nodeType":"YulLiteral","src":"24105:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"24111:25:19","nodeType":"YulIdentifier","src":"24111:25:19"},{"arguments":[{"kind":"number","nativeSrc":"24142:2:19","nodeType":"YulLiteral","src":"24142:2:19","type":"","value":"96"},{"name":"owner_","nativeSrc":"24146:6:19","nodeType":"YulIdentifier","src":"24146:6:19"}],"functionName":{"name":"shr","nativeSrc":"24138:3:19","nodeType":"YulIdentifier","src":"24138:3:19"},"nativeSrc":"24138:15:19","nodeType":"YulFunctionCall","src":"24138:15:19"},{"arguments":[{"kind":"number","nativeSrc":"24159:2:19","nodeType":"YulLiteral","src":"24159:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24169:4:19","nodeType":"YulLiteral","src":"24169:4:19","type":"","value":"0x2c"}],"functionName":{"name":"mload","nativeSrc":"24163:5:19","nodeType":"YulIdentifier","src":"24163:5:19"},"nativeSrc":"24163:11:19","nodeType":"YulFunctionCall","src":"24163:11:19"}],"functionName":{"name":"shr","nativeSrc":"24155:3:19","nodeType":"YulIdentifier","src":"24155:3:19"},"nativeSrc":"24155:20:19","nodeType":"YulFunctionCall","src":"24155:20:19"}],"functionName":{"name":"log3","nativeSrc":"24094:4:19","nodeType":"YulIdentifier","src":"24094:4:19"},"nativeSrc":"24094:82:19","nodeType":"YulFunctionCall","src":"24094:82:19"},"nativeSrc":"24094:82:19","nodeType":"YulExpressionStatement","src":"24094:82:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"23934:20:19","valueSize":1},{"declaration":8000,"isOffset":false,"isSlot":false,"src":"24111:25:19","valueSize":1},{"declaration":8341,"isOffset":false,"isSlot":false,"src":"23999:6:19","valueSize":1},{"declaration":8341,"isOffset":false,"isSlot":false,"src":"24074:6:19","valueSize":1},{"declaration":8337,"isOffset":false,"isSlot":false,"src":"23793:5:19","valueSize":1},{"declaration":8339,"isOffset":false,"isSlot":false,"src":"23889:7:19","valueSize":1}],"id":8344,"nodeType":"InlineAssembly","src":"23748:438:19"}]},"documentation":{"id":8335,"nodeType":"StructuredDocumentation","src":"23485:122:19","text":"@dev Sets `amount` as the allowance of `spender` over the tokens of `owner`.\n Emits a {Approval} event."},"id":8346,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"23621:8:19","nodeType":"FunctionDefinition","parameters":{"id":8342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8337,"mutability":"mutable","name":"owner","nameLocation":"23638:5:19","nodeType":"VariableDeclaration","scope":8346,"src":"23630:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8336,"name":"address","nodeType":"ElementaryTypeName","src":"23630:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8339,"mutability":"mutable","name":"spender","nameLocation":"23653:7:19","nodeType":"VariableDeclaration","scope":8346,"src":"23645:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8338,"name":"address","nodeType":"ElementaryTypeName","src":"23645:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8341,"mutability":"mutable","name":"amount","nameLocation":"23670:6:19","nodeType":"VariableDeclaration","scope":8346,"src":"23662:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8340,"name":"uint256","nodeType":"ElementaryTypeName","src":"23662:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23629:48:19"},"returnParameters":{"id":8343,"nodeType":"ParameterList","parameters":[],"src":"23695:0:19"},"scope":8369,"src":"23612:580:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8356,"nodeType":"Block","src":"24677:2:19","statements":[]},"documentation":{"id":8347,"nodeType":"StructuredDocumentation","src":"24481:102:19","text":"@dev Hook that is called before any transfer of tokens.\n This includes minting and burning."},"id":8357,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"24597:20:19","nodeType":"FunctionDefinition","parameters":{"id":8354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8349,"mutability":"mutable","name":"from","nameLocation":"24626:4:19","nodeType":"VariableDeclaration","scope":8357,"src":"24618:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8348,"name":"address","nodeType":"ElementaryTypeName","src":"24618:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8351,"mutability":"mutable","name":"to","nameLocation":"24640:2:19","nodeType":"VariableDeclaration","scope":8357,"src":"24632:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8350,"name":"address","nodeType":"ElementaryTypeName","src":"24632:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8353,"mutability":"mutable","name":"amount","nameLocation":"24652:6:19","nodeType":"VariableDeclaration","scope":8357,"src":"24644:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8352,"name":"uint256","nodeType":"ElementaryTypeName","src":"24644:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24617:42:19"},"returnParameters":{"id":8355,"nodeType":"ParameterList","parameters":[],"src":"24677:0:19"},"scope":8369,"src":"24588:91:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8367,"nodeType":"Block","src":"24879:2:19","statements":[]},"documentation":{"id":8358,"nodeType":"StructuredDocumentation","src":"24685:101:19","text":"@dev Hook that is called after any transfer of tokens.\n This includes minting and burning."},"id":8368,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"24800:19:19","nodeType":"FunctionDefinition","parameters":{"id":8365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8360,"mutability":"mutable","name":"from","nameLocation":"24828:4:19","nodeType":"VariableDeclaration","scope":8368,"src":"24820:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8359,"name":"address","nodeType":"ElementaryTypeName","src":"24820:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8362,"mutability":"mutable","name":"to","nameLocation":"24842:2:19","nodeType":"VariableDeclaration","scope":8368,"src":"24834:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8361,"name":"address","nodeType":"ElementaryTypeName","src":"24834:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8364,"mutability":"mutable","name":"amount","nameLocation":"24854:6:19","nodeType":"VariableDeclaration","scope":8368,"src":"24846:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8363,"name":"uint256","nodeType":"ElementaryTypeName","src":"24846:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24819:42:19"},"returnParameters":{"id":8366,"nodeType":"ParameterList","parameters":[],"src":"24879:0:19"},"scope":8369,"src":"24791:90:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8370,"src":"1140:23743:19","usedErrors":[7956,7959,7962,7965,7968,7971,7974],"usedEvents":[7983,7992]}],"src":"32:24852:19"},"id":19},"@solady/tokens/ERC721.sol":{"ast":{"absolutePath":"@solady/tokens/ERC721.sol","exportedSymbols":{"ERC721":[9111]},"id":9112,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8371,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:20"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":8372,"nodeType":"StructuredDocumentation","src":"1265:176:20","text":"- Check that the overridden function is actually used in the function you want to\n change the behavior of. Much of the code has been manually inlined for performance."},"fullyImplemented":false,"id":9111,"linearizedBaseContracts":[9111],"name":"ERC721","nameLocation":"1459:6:20","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":8373,"nodeType":"StructuredDocumentation","src":"1755:53:20","text":"@dev An account can hold up to 4294967295 tokens."},"id":8376,"mutability":"constant","name":"_MAX_ACCOUNT_BALANCE","nameLocation":"1839:20:20","nodeType":"VariableDeclaration","scope":9111,"src":"1813:59:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8374,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30786666666666666666","id":8375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:10:20","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"internal"},{"documentation":{"id":8377,"nodeType":"StructuredDocumentation","src":"2162:74:20","text":"@dev Only the token owner or an approved account can manage the token."},"errorSelector":"4b6e7f18","id":8379,"name":"NotOwnerNorApproved","nameLocation":"2247:19:20","nodeType":"ErrorDefinition","parameters":{"id":8378,"nodeType":"ParameterList","parameters":[],"src":"2266:2:20"},"src":"2241:28:20"},{"documentation":{"id":8380,"nodeType":"StructuredDocumentation","src":"2275:34:20","text":"@dev The token does not exist."},"errorSelector":"ceea21b6","id":8382,"name":"TokenDoesNotExist","nameLocation":"2320:17:20","nodeType":"ErrorDefinition","parameters":{"id":8381,"nodeType":"ParameterList","parameters":[],"src":"2337:2:20"},"src":"2314:26:20"},{"documentation":{"id":8383,"nodeType":"StructuredDocumentation","src":"2346:34:20","text":"@dev The token already exists."},"errorSelector":"c991cbb1","id":8385,"name":"TokenAlreadyExists","nameLocation":"2391:18:20","nodeType":"ErrorDefinition","parameters":{"id":8384,"nodeType":"ParameterList","parameters":[],"src":"2409:2:20"},"src":"2385:27:20"},{"documentation":{"id":8386,"nodeType":"StructuredDocumentation","src":"2418:55:20","text":"@dev Cannot query the balance for the zero address."},"errorSelector":"8f4eb604","id":8388,"name":"BalanceQueryForZeroAddress","nameLocation":"2484:26:20","nodeType":"ErrorDefinition","parameters":{"id":8387,"nodeType":"ParameterList","parameters":[],"src":"2510:2:20"},"src":"2478:35:20"},{"documentation":{"id":8389,"nodeType":"StructuredDocumentation","src":"2519:53:20","text":"@dev Cannot mint or transfer to the zero address."},"errorSelector":"ea553b34","id":8391,"name":"TransferToZeroAddress","nameLocation":"2583:21:20","nodeType":"ErrorDefinition","parameters":{"id":8390,"nodeType":"ParameterList","parameters":[],"src":"2604:2:20"},"src":"2577:30:20"},{"documentation":{"id":8392,"nodeType":"StructuredDocumentation","src":"2613:43:20","text":"@dev The token must be owned by `from`."},"errorSelector":"a1148100","id":8394,"name":"TransferFromIncorrectOwner","nameLocation":"2667:26:20","nodeType":"ErrorDefinition","parameters":{"id":8393,"nodeType":"ParameterList","parameters":[],"src":"2693:2:20"},"src":"2661:35:20"},{"documentation":{"id":8395,"nodeType":"StructuredDocumentation","src":"2702:48:20","text":"@dev The recipient's balance has overflowed."},"errorSelector":"01336cea","id":8397,"name":"AccountBalanceOverflow","nameLocation":"2761:22:20","nodeType":"ErrorDefinition","parameters":{"id":8396,"nodeType":"ParameterList","parameters":[],"src":"2783:2:20"},"src":"2755:31:20"},{"documentation":{"id":8398,"nodeType":"StructuredDocumentation","src":"2792:107:20","text":"@dev Cannot safely transfer to a contract that does not implement\n the ERC721Receiver interface."},"errorSelector":"d1a57ed6","id":8400,"name":"TransferToNonERC721ReceiverImplementer","nameLocation":"2910:38:20","nodeType":"ErrorDefinition","parameters":{"id":8399,"nodeType":"ParameterList","parameters":[],"src":"2948:2:20"},"src":"2904:47:20"},{"anonymous":false,"documentation":{"id":8401,"nodeType":"StructuredDocumentation","src":"3240:68:20","text":"@dev Emitted when token `id` is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":8409,"name":"Transfer","nameLocation":"3319:8:20","nodeType":"EventDefinition","parameters":{"id":8408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8403,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3344:4:20","nodeType":"VariableDeclaration","scope":8409,"src":"3328:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8402,"name":"address","nodeType":"ElementaryTypeName","src":"3328:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8405,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3366:2:20","nodeType":"VariableDeclaration","scope":8409,"src":"3350:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8404,"name":"address","nodeType":"ElementaryTypeName","src":"3350:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8407,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3386:2:20","nodeType":"VariableDeclaration","scope":8409,"src":"3370:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3370:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3327:62:20"},"src":"3313:77:20"},{"anonymous":false,"documentation":{"id":8410,"nodeType":"StructuredDocumentation","src":"3396:73:20","text":"@dev Emitted when `owner` enables `account` to manage the `id` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":8418,"name":"Approval","nameLocation":"3480:8:20","nodeType":"EventDefinition","parameters":{"id":8417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8412,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3505:5:20","nodeType":"VariableDeclaration","scope":8418,"src":"3489:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8411,"name":"address","nodeType":"ElementaryTypeName","src":"3489:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8414,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"3528:7:20","nodeType":"VariableDeclaration","scope":8418,"src":"3512:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8413,"name":"address","nodeType":"ElementaryTypeName","src":"3512:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8416,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3553:2:20","nodeType":"VariableDeclaration","scope":8418,"src":"3537:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3488:68:20"},"src":"3474:83:20"},{"anonymous":false,"documentation":{"id":8419,"nodeType":"StructuredDocumentation","src":"3563:91:20","text":"@dev Emitted when `owner` enables or disables `operator` to manage all of their tokens."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":8427,"name":"ApprovalForAll","nameLocation":"3665:14:20","nodeType":"EventDefinition","parameters":{"id":8426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8421,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3696:5:20","nodeType":"VariableDeclaration","scope":8427,"src":"3680:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8420,"name":"address","nodeType":"ElementaryTypeName","src":"3680:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8423,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"3719:8:20","nodeType":"VariableDeclaration","scope":8427,"src":"3703:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8422,"name":"address","nodeType":"ElementaryTypeName","src":"3703:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8425,"indexed":false,"mutability":"mutable","name":"isApproved","nameLocation":"3734:10:20","nodeType":"VariableDeclaration","scope":8427,"src":"3729:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8424,"name":"bool","nodeType":"ElementaryTypeName","src":"3729:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3679:66:20"},"src":"3659:87:20"},{"constant":true,"documentation":{"id":8428,"nodeType":"StructuredDocumentation","src":"3752:65:20","text":"@dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`."},"id":8431,"mutability":"constant","name":"_TRANSFER_EVENT_SIGNATURE","nameLocation":"3847:25:20","nodeType":"VariableDeclaration","scope":9111,"src":"3822:127:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3822:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864646632353261643162653263383962363963326230363866633337386461613935326261376631363363346131313632386635356134646635323362336566","id":8430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3883:66:20","typeDescriptions":{"typeIdentifier":"t_rational_100389287136786176327247604509743168900146139575972864366142685224231313322991_by_1","typeString":"int_const 1003...(70 digits omitted)...2991"},"value":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},"visibility":"private"},{"constant":true,"documentation":{"id":8432,"nodeType":"StructuredDocumentation","src":"3956:65:20","text":"@dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`."},"id":8435,"mutability":"constant","name":"_APPROVAL_EVENT_SIGNATURE","nameLocation":"4051:25:20","nodeType":"VariableDeclaration","scope":9111,"src":"4026:127:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8433,"name":"uint256","nodeType":"ElementaryTypeName","src":"4026:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838633562653165356562656337643562643134663731343237643165383466336464303331346330663762323239316535623230306163386337633362393235","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4087:66:20","typeDescriptions":{"typeIdentifier":"t_rational_63486140976153616755203102783360879283472101686154884697241723088393386309925_by_1","typeString":"int_const 6348...(69 digits omitted)...9925"},"value":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},"visibility":"private"},{"constant":true,"documentation":{"id":8436,"nodeType":"StructuredDocumentation","src":"4160:68:20","text":"@dev `keccak256(bytes(\"ApprovalForAll(address,address,bool)\"))`."},"id":8439,"mutability":"constant","name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nameLocation":"4258:33:20","nodeType":"VariableDeclaration","scope":9111,"src":"4233:135:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8437,"name":"uint256","nodeType":"ElementaryTypeName","src":"4233:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307831373330376561623339616236313037653838393938343561643364353962643936353366323030663232303932303438396361326235393337363936633331","id":8438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4302:66:20","typeDescriptions":{"typeIdentifier":"t_rational_10488878412788366941768124514102328501031624832915735463117339209566108871729_by_1","typeString":"int_const 1048...(69 digits omitted)...1729"},"value":"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31"},"visibility":"private"},{"constant":true,"documentation":{"id":8440,"nodeType":"StructuredDocumentation","src":"4658:1014:20","text":"@dev The ownership data slot of `id` is given by:\n ```\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n ```\n Bits Layout:\n - [0..159] `addr`\n - [160..255] `extraData`\n The approved address slot is given by: `add(1, ownershipSlot)`.\n See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip\n The balance slot of `owner` is given by:\n ```\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x1c)\n ```\n Bits Layout:\n - [0..31] `balance`\n - [32..255] `aux`\n The `operator` approval slot of `owner` is given by:\n ```\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n mstore(0x00, owner)\n let operatorApprovalSlot := keccak256(0x0c, 0x30)\n ```"},"id":8445,"mutability":"constant","name":"_ERC721_MASTER_SLOT_SEED","nameLocation":"5702:24:20","nodeType":"VariableDeclaration","scope":9111,"src":"5677:77:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8441,"name":"uint256","nodeType":"ElementaryTypeName","src":"5677:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_56779654877098784894033833160858981098869911147275929510173318722286648295424_by_1","typeString":"int_const 5677...(69 digits omitted)...5424"},"id":8444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"307837643838323535333061356132653761","id":8442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5729:18:20","typeDescriptions":{"typeIdentifier":"t_rational_9045520890159836794_by_1","typeString":"int_const 9045520890159836794"},"value":"0x7d8825530a5a2e7a"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":8443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5751:3:20","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"5729:25:20","typeDescriptions":{"typeIdentifier":"t_rational_56779654877098784894033833160858981098869911147275929510173318722286648295424_by_1","typeString":"int_const 5677...(69 digits omitted)...5424"}},"visibility":"private"},{"constant":true,"documentation":{"id":8446,"nodeType":"StructuredDocumentation","src":"5761:45:20","text":"@dev Pre-shifted and pre-masked constant."},"id":8449,"mutability":"constant","name":"_ERC721_MASTER_SLOT_SEED_MASKED","nameLocation":"5836:31:20","nodeType":"VariableDeclaration","scope":9111,"src":"5811:77:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8447,"name":"uint256","nodeType":"ElementaryTypeName","src":"5811:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830613561326537613030303030303030","id":8448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5870:18:20","typeDescriptions":{"typeIdentifier":"t_rational_745959789804126208_by_1","typeString":"int_const 745959789804126208"},"value":"0x0a5a2e7a00000000"},"visibility":"private"},{"documentation":{"id":8450,"nodeType":"StructuredDocumentation","src":"6178:43:20","text":"@dev Returns the token collection name."},"functionSelector":"06fdde03","id":8455,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"6235:4:20","nodeType":"FunctionDefinition","parameters":{"id":8451,"nodeType":"ParameterList","parameters":[],"src":"6239:2:20"},"returnParameters":{"id":8454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8455,"src":"6271:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8452,"name":"string","nodeType":"ElementaryTypeName","src":"6271:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6270:15:20"},"scope":9111,"src":"6226:60:20","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8456,"nodeType":"StructuredDocumentation","src":"6292:45:20","text":"@dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":8461,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"6351:6:20","nodeType":"FunctionDefinition","parameters":{"id":8457,"nodeType":"ParameterList","parameters":[],"src":"6357:2:20"},"returnParameters":{"id":8460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8459,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8461,"src":"6389:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8458,"name":"string","nodeType":"ElementaryTypeName","src":"6389:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6388:15:20"},"scope":9111,"src":"6342:62:20","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8462,"nodeType":"StructuredDocumentation","src":"6410:70:20","text":"@dev Returns the Uniform Resource Identifier (URI) for token `id`."},"functionSelector":"c87b56dd","id":8469,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"6494:8:20","nodeType":"FunctionDefinition","parameters":{"id":8465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8464,"mutability":"mutable","name":"id","nameLocation":"6511:2:20","nodeType":"VariableDeclaration","scope":8469,"src":"6503:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8463,"name":"uint256","nodeType":"ElementaryTypeName","src":"6503:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6502:12:20"},"returnParameters":{"id":8468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8469,"src":"6544:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8466,"name":"string","nodeType":"ElementaryTypeName","src":"6544:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6543:15:20"},"scope":9111,"src":"6485:74:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8484,"nodeType":"Block","src":"7031:258:20","statements":[{"expression":{"id":8481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8477,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8475,"src":"7041:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8479,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"7059:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8478,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8655,"src":"7050:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":8480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7050:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7041:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8482,"nodeType":"ExpressionStatement","src":"7041:21:20"},{"AST":{"nativeSrc":"7124:159:20","nodeType":"YulBlock","src":"7124:159:20","statements":[{"body":{"nativeSrc":"7156:117:20","nodeType":"YulBlock","src":"7156:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7181:4:20","nodeType":"YulLiteral","src":"7181:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7187:10:20","nodeType":"YulLiteral","src":"7187:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"7174:6:20","nodeType":"YulIdentifier","src":"7174:6:20"},"nativeSrc":"7174:24:20","nodeType":"YulFunctionCall","src":"7174:24:20"},"nativeSrc":"7174:24:20","nodeType":"YulExpressionStatement","src":"7174:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7248:4:20","nodeType":"YulLiteral","src":"7248:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7254:4:20","nodeType":"YulLiteral","src":"7254:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7241:6:20","nodeType":"YulIdentifier","src":"7241:6:20"},"nativeSrc":"7241:18:20","nodeType":"YulFunctionCall","src":"7241:18:20"},"nativeSrc":"7241:18:20","nodeType":"YulExpressionStatement","src":"7241:18:20"}]},"condition":{"arguments":[{"name":"result","nativeSrc":"7148:6:20","nodeType":"YulIdentifier","src":"7148:6:20"}],"functionName":{"name":"iszero","nativeSrc":"7141:6:20","nodeType":"YulIdentifier","src":"7141:6:20"},"nativeSrc":"7141:14:20","nodeType":"YulFunctionCall","src":"7141:14:20"},"nativeSrc":"7138:135:20","nodeType":"YulIf","src":"7138:135:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8475,"isOffset":false,"isSlot":false,"src":"7148:6:20","valueSize":1}],"id":8483,"nodeType":"InlineAssembly","src":"7115:168:20"}]},"documentation":{"id":8470,"nodeType":"StructuredDocumentation","src":"6848:104:20","text":"@dev Returns the owner of token `id`.\n Requirements:\n - Token `id` must exist."},"functionSelector":"6352211e","id":8485,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"6966:7:20","nodeType":"FunctionDefinition","parameters":{"id":8473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8472,"mutability":"mutable","name":"id","nameLocation":"6982:2:20","nodeType":"VariableDeclaration","scope":8485,"src":"6974:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8471,"name":"uint256","nodeType":"ElementaryTypeName","src":"6974:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6973:12:20"},"returnParameters":{"id":8476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8475,"mutability":"mutable","name":"result","nameLocation":"7023:6:20","nodeType":"VariableDeclaration","scope":8485,"src":"7015:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8474,"name":"address","nodeType":"ElementaryTypeName","src":"7015:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7014:16:20"},"scope":9111,"src":"6957:332:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8494,"nodeType":"Block","src":"7512:454:20","statements":[{"AST":{"nativeSrc":"7574:386:20","nodeType":"YulBlock","src":"7574:386:20","statements":[{"body":{"nativeSrc":"7663:126:20","nodeType":"YulBlock","src":"7663:126:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7688:4:20","nodeType":"YulLiteral","src":"7688:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7694:10:20","nodeType":"YulLiteral","src":"7694:10:20","type":"","value":"0x8f4eb604"}],"functionName":{"name":"mstore","nativeSrc":"7681:6:20","nodeType":"YulIdentifier","src":"7681:6:20"},"nativeSrc":"7681:24:20","nodeType":"YulFunctionCall","src":"7681:24:20"},"nativeSrc":"7681:24:20","nodeType":"YulExpressionStatement","src":"7681:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7764:4:20","nodeType":"YulLiteral","src":"7764:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7770:4:20","nodeType":"YulLiteral","src":"7770:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7757:6:20","nodeType":"YulIdentifier","src":"7757:6:20"},"nativeSrc":"7757:18:20","nodeType":"YulFunctionCall","src":"7757:18:20"},"nativeSrc":"7757:18:20","nodeType":"YulExpressionStatement","src":"7757:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"7656:5:20","nodeType":"YulIdentifier","src":"7656:5:20"}],"functionName":{"name":"iszero","nativeSrc":"7649:6:20","nodeType":"YulIdentifier","src":"7649:6:20"},"nativeSrc":"7649:13:20","nodeType":"YulFunctionCall","src":"7649:13:20"},"nativeSrc":"7646:143:20","nodeType":"YulIf","src":"7646:143:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7809:4:20","nodeType":"YulLiteral","src":"7809:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"7815:24:20","nodeType":"YulIdentifier","src":"7815:24:20"}],"functionName":{"name":"mstore","nativeSrc":"7802:6:20","nodeType":"YulIdentifier","src":"7802:6:20"},"nativeSrc":"7802:38:20","nodeType":"YulFunctionCall","src":"7802:38:20"},"nativeSrc":"7802:38:20","nodeType":"YulExpressionStatement","src":"7802:38:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7860:4:20","nodeType":"YulLiteral","src":"7860:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"7866:5:20","nodeType":"YulIdentifier","src":"7866:5:20"}],"functionName":{"name":"mstore","nativeSrc":"7853:6:20","nodeType":"YulIdentifier","src":"7853:6:20"},"nativeSrc":"7853:19:20","nodeType":"YulFunctionCall","src":"7853:19:20"},"nativeSrc":"7853:19:20","nodeType":"YulExpressionStatement","src":"7853:19:20"},{"nativeSrc":"7885:65:20","nodeType":"YulAssignment","src":"7885:65:20","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7915:4:20","nodeType":"YulLiteral","src":"7915:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7921:4:20","nodeType":"YulLiteral","src":"7921:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"7905:9:20","nodeType":"YulIdentifier","src":"7905:9:20"},"nativeSrc":"7905:21:20","nodeType":"YulFunctionCall","src":"7905:21:20"}],"functionName":{"name":"sload","nativeSrc":"7899:5:20","nodeType":"YulIdentifier","src":"7899:5:20"},"nativeSrc":"7899:28:20","nodeType":"YulFunctionCall","src":"7899:28:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"7929:20:20","nodeType":"YulIdentifier","src":"7929:20:20"}],"functionName":{"name":"and","nativeSrc":"7895:3:20","nodeType":"YulIdentifier","src":"7895:3:20"},"nativeSrc":"7895:55:20","nodeType":"YulFunctionCall","src":"7895:55:20"},"variableNames":[{"name":"result","nativeSrc":"7885:6:20","nodeType":"YulIdentifier","src":"7885:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"7815:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"7929:20:20","valueSize":1},{"declaration":8488,"isOffset":false,"isSlot":false,"src":"7656:5:20","valueSize":1},{"declaration":8488,"isOffset":false,"isSlot":false,"src":"7866:5:20","valueSize":1},{"declaration":8491,"isOffset":false,"isSlot":false,"src":"7885:6:20","valueSize":1}],"id":8493,"nodeType":"InlineAssembly","src":"7565:395:20"}]},"documentation":{"id":8486,"nodeType":"StructuredDocumentation","src":"7295:133:20","text":"@dev Returns the number of tokens owned by `owner`.\n Requirements:\n - `owner` must not be the zero address."},"functionSelector":"70a08231","id":8495,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"7442:9:20","nodeType":"FunctionDefinition","parameters":{"id":8489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8488,"mutability":"mutable","name":"owner","nameLocation":"7460:5:20","nodeType":"VariableDeclaration","scope":8495,"src":"7452:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8487,"name":"address","nodeType":"ElementaryTypeName","src":"7452:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7451:15:20"},"returnParameters":{"id":8492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8491,"mutability":"mutable","name":"result","nameLocation":"7504:6:20","nodeType":"VariableDeclaration","scope":8495,"src":"7496:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8490,"name":"uint256","nodeType":"ElementaryTypeName","src":"7496:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7495:16:20"},"scope":9111,"src":"7433:533:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8504,"nodeType":"Block","src":"8177:454:20","statements":[{"AST":{"nativeSrc":"8239:386:20","nodeType":"YulBlock","src":"8239:386:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8260:4:20","nodeType":"YulLiteral","src":"8260:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"8266:2:20","nodeType":"YulIdentifier","src":"8266:2:20"}],"functionName":{"name":"mstore","nativeSrc":"8253:6:20","nodeType":"YulIdentifier","src":"8253:6:20"},"nativeSrc":"8253:16:20","nodeType":"YulFunctionCall","src":"8253:16:20"},"nativeSrc":"8253:16:20","nodeType":"YulExpressionStatement","src":"8253:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8289:4:20","nodeType":"YulLiteral","src":"8289:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"8295:24:20","nodeType":"YulIdentifier","src":"8295:24:20"}],"functionName":{"name":"mstore","nativeSrc":"8282:6:20","nodeType":"YulIdentifier","src":"8282:6:20"},"nativeSrc":"8282:38:20","nodeType":"YulFunctionCall","src":"8282:38:20"},"nativeSrc":"8282:38:20","nodeType":"YulExpressionStatement","src":"8282:38:20"},{"nativeSrc":"8333:60:20","nodeType":"YulVariableDeclaration","src":"8333:60:20","value":{"arguments":[{"name":"id","nativeSrc":"8358:2:20","nodeType":"YulIdentifier","src":"8358:2:20"},{"arguments":[{"name":"id","nativeSrc":"8366:2:20","nodeType":"YulIdentifier","src":"8366:2:20"},{"arguments":[{"kind":"number","nativeSrc":"8380:4:20","nodeType":"YulLiteral","src":"8380:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8386:4:20","nodeType":"YulLiteral","src":"8386:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8370:9:20","nodeType":"YulIdentifier","src":"8370:9:20"},"nativeSrc":"8370:21:20","nodeType":"YulFunctionCall","src":"8370:21:20"}],"functionName":{"name":"add","nativeSrc":"8362:3:20","nodeType":"YulIdentifier","src":"8362:3:20"},"nativeSrc":"8362:30:20","nodeType":"YulFunctionCall","src":"8362:30:20"}],"functionName":{"name":"add","nativeSrc":"8354:3:20","nodeType":"YulIdentifier","src":"8354:3:20"},"nativeSrc":"8354:39:20","nodeType":"YulFunctionCall","src":"8354:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"8337:13:20","nodeType":"YulTypedName","src":"8337:13:20","type":""}]},{"body":{"nativeSrc":"8447:117:20","nodeType":"YulBlock","src":"8447:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8472:4:20","nodeType":"YulLiteral","src":"8472:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8478:10:20","nodeType":"YulLiteral","src":"8478:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"8465:6:20","nodeType":"YulIdentifier","src":"8465:6:20"},"nativeSrc":"8465:24:20","nodeType":"YulFunctionCall","src":"8465:24:20"},"nativeSrc":"8465:24:20","nodeType":"YulExpressionStatement","src":"8465:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8539:4:20","nodeType":"YulLiteral","src":"8539:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8545:4:20","nodeType":"YulLiteral","src":"8545:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8532:6:20","nodeType":"YulIdentifier","src":"8532:6:20"},"nativeSrc":"8532:18:20","nodeType":"YulFunctionCall","src":"8532:18:20"},"nativeSrc":"8532:18:20","nodeType":"YulExpressionStatement","src":"8532:18:20"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8420:2:20","nodeType":"YulLiteral","src":"8420:2:20","type":"","value":"96"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"8430:13:20","nodeType":"YulIdentifier","src":"8430:13:20"}],"functionName":{"name":"sload","nativeSrc":"8424:5:20","nodeType":"YulIdentifier","src":"8424:5:20"},"nativeSrc":"8424:20:20","nodeType":"YulFunctionCall","src":"8424:20:20"}],"functionName":{"name":"shl","nativeSrc":"8416:3:20","nodeType":"YulIdentifier","src":"8416:3:20"},"nativeSrc":"8416:29:20","nodeType":"YulFunctionCall","src":"8416:29:20"}],"functionName":{"name":"iszero","nativeSrc":"8409:6:20","nodeType":"YulIdentifier","src":"8409:6:20"},"nativeSrc":"8409:37:20","nodeType":"YulFunctionCall","src":"8409:37:20"},"nativeSrc":"8406:158:20","nodeType":"YulIf","src":"8406:158:20"},{"nativeSrc":"8577:38:20","nodeType":"YulAssignment","src":"8577:38:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8597:1:20","nodeType":"YulLiteral","src":"8597:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"8600:13:20","nodeType":"YulIdentifier","src":"8600:13:20"}],"functionName":{"name":"add","nativeSrc":"8593:3:20","nodeType":"YulIdentifier","src":"8593:3:20"},"nativeSrc":"8593:21:20","nodeType":"YulFunctionCall","src":"8593:21:20"}],"functionName":{"name":"sload","nativeSrc":"8587:5:20","nodeType":"YulIdentifier","src":"8587:5:20"},"nativeSrc":"8587:28:20","nodeType":"YulFunctionCall","src":"8587:28:20"},"variableNames":[{"name":"result","nativeSrc":"8577:6:20","nodeType":"YulIdentifier","src":"8577:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"8295:24:20","valueSize":1},{"declaration":8498,"isOffset":false,"isSlot":false,"src":"8266:2:20","valueSize":1},{"declaration":8498,"isOffset":false,"isSlot":false,"src":"8358:2:20","valueSize":1},{"declaration":8498,"isOffset":false,"isSlot":false,"src":"8366:2:20","valueSize":1},{"declaration":8501,"isOffset":false,"isSlot":false,"src":"8577:6:20","valueSize":1}],"id":8503,"nodeType":"InlineAssembly","src":"8230:395:20"}]},"documentation":{"id":8496,"nodeType":"StructuredDocumentation","src":"7972:122:20","text":"@dev Returns the account approved to manage token `id`.\n Requirements:\n - Token `id` must exist."},"functionSelector":"081812fc","id":8505,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"8108:11:20","nodeType":"FunctionDefinition","parameters":{"id":8499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8498,"mutability":"mutable","name":"id","nameLocation":"8128:2:20","nodeType":"VariableDeclaration","scope":8505,"src":"8120:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8497,"name":"uint256","nodeType":"ElementaryTypeName","src":"8120:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8119:12:20"},"returnParameters":{"id":8502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8501,"mutability":"mutable","name":"result","nameLocation":"8169:6:20","nodeType":"VariableDeclaration","scope":8505,"src":"8161:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8500,"name":"address","nodeType":"ElementaryTypeName","src":"8161:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8160:16:20"},"scope":9111,"src":"8099:532:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8520,"nodeType":"Block","src":"8994:50:20","statements":[{"expression":{"arguments":[{"expression":{"id":8514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9013:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9017:6:20","memberName":"sender","nodeType":"MemberAccess","src":"9013:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8516,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8508,"src":"9025:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8517,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8510,"src":"9034:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8513,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[8887,8899],"referencedDeclaration":8899,"src":"9004:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9004:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8519,"nodeType":"ExpressionStatement","src":"9004:33:20"}]},"documentation":{"id":8506,"nodeType":"StructuredDocumentation","src":"8637:283:20","text":"@dev Sets `account` as the approved account to manage token `id`.\n Requirements:\n - Token `id` must exist.\n - The caller must be the owner of the token,\n or an approved operator for the token owner.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":8521,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"8934:7:20","nodeType":"FunctionDefinition","parameters":{"id":8511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8508,"mutability":"mutable","name":"account","nameLocation":"8950:7:20","nodeType":"VariableDeclaration","scope":8521,"src":"8942:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8507,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8510,"mutability":"mutable","name":"id","nameLocation":"8967:2:20","nodeType":"VariableDeclaration","scope":8521,"src":"8959:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8509,"name":"uint256","nodeType":"ElementaryTypeName","src":"8959:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8941:29:20"},"returnParameters":{"id":8512,"nodeType":"ParameterList","parameters":[],"src":"8994:0:20"},"scope":9111,"src":"8925:119:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8532,"nodeType":"Block","src":"9272:255:20","statements":[{"AST":{"nativeSrc":"9334:187:20","nodeType":"YulBlock","src":"9334:187:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9355:4:20","nodeType":"YulLiteral","src":"9355:4:20","type":"","value":"0x1c"},{"name":"operator","nativeSrc":"9361:8:20","nodeType":"YulIdentifier","src":"9361:8:20"}],"functionName":{"name":"mstore","nativeSrc":"9348:6:20","nodeType":"YulIdentifier","src":"9348:6:20"},"nativeSrc":"9348:22:20","nodeType":"YulFunctionCall","src":"9348:22:20"},"nativeSrc":"9348:22:20","nodeType":"YulExpressionStatement","src":"9348:22:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9390:4:20","nodeType":"YulLiteral","src":"9390:4:20","type":"","value":"0x08"},{"name":"_ERC721_MASTER_SLOT_SEED_MASKED","nativeSrc":"9396:31:20","nodeType":"YulIdentifier","src":"9396:31:20"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:20","nodeType":"YulIdentifier","src":"9383:6:20"},"nativeSrc":"9383:45:20","nodeType":"YulFunctionCall","src":"9383:45:20"},"nativeSrc":"9383:45:20","nodeType":"YulExpressionStatement","src":"9383:45:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9448:4:20","nodeType":"YulLiteral","src":"9448:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"9454:5:20","nodeType":"YulIdentifier","src":"9454:5:20"}],"functionName":{"name":"mstore","nativeSrc":"9441:6:20","nodeType":"YulIdentifier","src":"9441:6:20"},"nativeSrc":"9441:19:20","nodeType":"YulFunctionCall","src":"9441:19:20"},"nativeSrc":"9441:19:20","nodeType":"YulExpressionStatement","src":"9441:19:20"},{"nativeSrc":"9473:38:20","nodeType":"YulAssignment","src":"9473:38:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9499:4:20","nodeType":"YulLiteral","src":"9499:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9505:4:20","nodeType":"YulLiteral","src":"9505:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"9489:9:20","nodeType":"YulIdentifier","src":"9489:9:20"},"nativeSrc":"9489:21:20","nodeType":"YulFunctionCall","src":"9489:21:20"}],"functionName":{"name":"sload","nativeSrc":"9483:5:20","nodeType":"YulIdentifier","src":"9483:5:20"},"nativeSrc":"9483:28:20","nodeType":"YulFunctionCall","src":"9483:28:20"},"variableNames":[{"name":"result","nativeSrc":"9473:6:20","nodeType":"YulIdentifier","src":"9473:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8449,"isOffset":false,"isSlot":false,"src":"9396:31:20","valueSize":1},{"declaration":8526,"isOffset":false,"isSlot":false,"src":"9361:8:20","valueSize":1},{"declaration":8524,"isOffset":false,"isSlot":false,"src":"9454:5:20","valueSize":1},{"declaration":8529,"isOffset":false,"isSlot":false,"src":"9473:6:20","valueSize":1}],"id":8531,"nodeType":"InlineAssembly","src":"9325:196:20"}]},"documentation":{"id":8522,"nodeType":"StructuredDocumentation","src":"9050:80:20","text":"@dev Returns whether `operator` is approved to manage the tokens of `owner`."},"functionSelector":"e985e9c5","id":8533,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"9144:16:20","nodeType":"FunctionDefinition","parameters":{"id":8527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8524,"mutability":"mutable","name":"owner","nameLocation":"9169:5:20","nodeType":"VariableDeclaration","scope":8533,"src":"9161:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8523,"name":"address","nodeType":"ElementaryTypeName","src":"9161:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8526,"mutability":"mutable","name":"operator","nameLocation":"9184:8:20","nodeType":"VariableDeclaration","scope":8533,"src":"9176:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8525,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9160:33:20"},"returnParameters":{"id":8530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8529,"mutability":"mutable","name":"result","nameLocation":"9260:6:20","nodeType":"VariableDeclaration","scope":8533,"src":"9255:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8528,"name":"bool","nodeType":"ElementaryTypeName","src":"9255:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9254:13:20"},"scope":9111,"src":"9135:392:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8542,"nodeType":"Block","src":"9744:649:20","statements":[{"AST":{"nativeSrc":"9806:581:20","nodeType":"YulBlock","src":"9806:581:20","statements":[{"nativeSrc":"9854:40:20","nodeType":"YulAssignment","src":"9854:40:20","value":{"arguments":[{"arguments":[{"name":"isApproved","nativeSrc":"9882:10:20","nodeType":"YulIdentifier","src":"9882:10:20"}],"functionName":{"name":"iszero","nativeSrc":"9875:6:20","nodeType":"YulIdentifier","src":"9875:6:20"},"nativeSrc":"9875:18:20","nodeType":"YulFunctionCall","src":"9875:18:20"}],"functionName":{"name":"iszero","nativeSrc":"9868:6:20","nodeType":"YulIdentifier","src":"9868:6:20"},"nativeSrc":"9868:26:20","nodeType":"YulFunctionCall","src":"9868:26:20"},"variableNames":[{"name":"isApproved","nativeSrc":"9854:10:20","nodeType":"YulIdentifier","src":"9854:10:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9985:4:20","nodeType":"YulLiteral","src":"9985:4:20","type":"","value":"0x1c"},{"name":"operator","nativeSrc":"9991:8:20","nodeType":"YulIdentifier","src":"9991:8:20"}],"functionName":{"name":"mstore","nativeSrc":"9978:6:20","nodeType":"YulIdentifier","src":"9978:6:20"},"nativeSrc":"9978:22:20","nodeType":"YulFunctionCall","src":"9978:22:20"},"nativeSrc":"9978:22:20","nodeType":"YulExpressionStatement","src":"9978:22:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10020:4:20","nodeType":"YulLiteral","src":"10020:4:20","type":"","value":"0x08"},{"name":"_ERC721_MASTER_SLOT_SEED_MASKED","nativeSrc":"10026:31:20","nodeType":"YulIdentifier","src":"10026:31:20"}],"functionName":{"name":"mstore","nativeSrc":"10013:6:20","nodeType":"YulIdentifier","src":"10013:6:20"},"nativeSrc":"10013:45:20","nodeType":"YulFunctionCall","src":"10013:45:20"},"nativeSrc":"10013:45:20","nodeType":"YulExpressionStatement","src":"10013:45:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10078:4:20","nodeType":"YulLiteral","src":"10078:4:20","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10084:6:20","nodeType":"YulIdentifier","src":"10084:6:20"},"nativeSrc":"10084:8:20","nodeType":"YulFunctionCall","src":"10084:8:20"}],"functionName":{"name":"mstore","nativeSrc":"10071:6:20","nodeType":"YulIdentifier","src":"10071:6:20"},"nativeSrc":"10071:22:20","nodeType":"YulFunctionCall","src":"10071:22:20"},"nativeSrc":"10071:22:20","nodeType":"YulExpressionStatement","src":"10071:22:20"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10123:4:20","nodeType":"YulLiteral","src":"10123:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10129:4:20","nodeType":"YulLiteral","src":"10129:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"10113:9:20","nodeType":"YulIdentifier","src":"10113:9:20"},"nativeSrc":"10113:21:20","nodeType":"YulFunctionCall","src":"10113:21:20"},{"name":"isApproved","nativeSrc":"10136:10:20","nodeType":"YulIdentifier","src":"10136:10:20"}],"functionName":{"name":"sstore","nativeSrc":"10106:6:20","nodeType":"YulIdentifier","src":"10106:6:20"},"nativeSrc":"10106:41:20","nodeType":"YulFunctionCall","src":"10106:41:20"},"nativeSrc":"10106:41:20","nodeType":"YulExpressionStatement","src":"10106:41:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10215:4:20","nodeType":"YulLiteral","src":"10215:4:20","type":"","value":"0x00"},{"name":"isApproved","nativeSrc":"10221:10:20","nodeType":"YulIdentifier","src":"10221:10:20"}],"functionName":{"name":"mstore","nativeSrc":"10208:6:20","nodeType":"YulIdentifier","src":"10208:6:20"},"nativeSrc":"10208:24:20","nodeType":"YulFunctionCall","src":"10208:24:20"},"nativeSrc":"10208:24:20","nodeType":"YulExpressionStatement","src":"10208:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10293:4:20","nodeType":"YulLiteral","src":"10293:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10299:4:20","nodeType":"YulLiteral","src":"10299:4:20","type":"","value":"0x20"},{"name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nativeSrc":"10305:33:20","nodeType":"YulIdentifier","src":"10305:33:20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10340:6:20","nodeType":"YulIdentifier","src":"10340:6:20"},"nativeSrc":"10340:8:20","nodeType":"YulFunctionCall","src":"10340:8:20"},{"arguments":[{"kind":"number","nativeSrc":"10354:2:20","nodeType":"YulLiteral","src":"10354:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"10362:2:20","nodeType":"YulLiteral","src":"10362:2:20","type":"","value":"96"},{"name":"operator","nativeSrc":"10366:8:20","nodeType":"YulIdentifier","src":"10366:8:20"}],"functionName":{"name":"shl","nativeSrc":"10358:3:20","nodeType":"YulIdentifier","src":"10358:3:20"},"nativeSrc":"10358:17:20","nodeType":"YulFunctionCall","src":"10358:17:20"}],"functionName":{"name":"shr","nativeSrc":"10350:3:20","nodeType":"YulIdentifier","src":"10350:3:20"},"nativeSrc":"10350:26:20","nodeType":"YulFunctionCall","src":"10350:26:20"}],"functionName":{"name":"log3","nativeSrc":"10288:4:20","nodeType":"YulIdentifier","src":"10288:4:20"},"nativeSrc":"10288:89:20","nodeType":"YulFunctionCall","src":"10288:89:20"},"nativeSrc":"10288:89:20","nodeType":"YulExpressionStatement","src":"10288:89:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8439,"isOffset":false,"isSlot":false,"src":"10305:33:20","valueSize":1},{"declaration":8449,"isOffset":false,"isSlot":false,"src":"10026:31:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"10136:10:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"10221:10:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"9854:10:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"9882:10:20","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"10366:8:20","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"9991:8:20","valueSize":1}],"id":8541,"nodeType":"InlineAssembly","src":"9797:590:20"}]},"documentation":{"id":8534,"nodeType":"StructuredDocumentation","src":"9533:129:20","text":"@dev Sets whether `operator` is approved to manage the tokens of the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":8543,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"9676:17:20","nodeType":"FunctionDefinition","parameters":{"id":8539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8536,"mutability":"mutable","name":"operator","nameLocation":"9702:8:20","nodeType":"VariableDeclaration","scope":8543,"src":"9694:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8535,"name":"address","nodeType":"ElementaryTypeName","src":"9694:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8538,"mutability":"mutable","name":"isApproved","nameLocation":"9717:10:20","nodeType":"VariableDeclaration","scope":8543,"src":"9712:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8537,"name":"bool","nodeType":"ElementaryTypeName","src":"9712:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9693:35:20"},"returnParameters":{"id":8540,"nodeType":"ParameterList","parameters":[],"src":"9744:0:20"},"scope":9111,"src":"9667:726:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8566,"nodeType":"Block","src":"10831:2803:20","statements":[{"expression":{"arguments":[{"id":8554,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"10862:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8555,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"10868:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8556,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"10872:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8553,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"10841:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10841:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8558,"nodeType":"ExpressionStatement","src":"10841:34:20"},{"AST":{"nativeSrc":"10937:2648:20","nodeType":"YulBlock","src":"10937:2648:20","statements":[{"nativeSrc":"10991:37:20","nodeType":"YulVariableDeclaration","src":"10991:37:20","value":{"arguments":[{"kind":"number","nativeSrc":"11017:2:20","nodeType":"YulLiteral","src":"11017:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"11025:1:20","nodeType":"YulLiteral","src":"11025:1:20","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11021:3:20","nodeType":"YulIdentifier","src":"11021:3:20"},"nativeSrc":"11021:6:20","nodeType":"YulFunctionCall","src":"11021:6:20"}],"functionName":{"name":"shr","nativeSrc":"11013:3:20","nodeType":"YulIdentifier","src":"11013:3:20"},"nativeSrc":"11013:15:20","nodeType":"YulFunctionCall","src":"11013:15:20"},"variables":[{"name":"bitmaskAddress","nativeSrc":"10995:14:20","nodeType":"YulTypedName","src":"10995:14:20","type":""}]},{"nativeSrc":"11041:33:20","nodeType":"YulAssignment","src":"11041:33:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11053:14:20","nodeType":"YulIdentifier","src":"11053:14:20"},{"name":"from","nativeSrc":"11069:4:20","nodeType":"YulIdentifier","src":"11069:4:20"}],"functionName":{"name":"and","nativeSrc":"11049:3:20","nodeType":"YulIdentifier","src":"11049:3:20"},"nativeSrc":"11049:25:20","nodeType":"YulFunctionCall","src":"11049:25:20"},"variableNames":[{"name":"from","nativeSrc":"11041:4:20","nodeType":"YulIdentifier","src":"11041:4:20"}]},{"nativeSrc":"11087:29:20","nodeType":"YulAssignment","src":"11087:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11097:14:20","nodeType":"YulIdentifier","src":"11097:14:20"},{"name":"to","nativeSrc":"11113:2:20","nodeType":"YulIdentifier","src":"11113:2:20"}],"functionName":{"name":"and","nativeSrc":"11093:3:20","nodeType":"YulIdentifier","src":"11093:3:20"},"nativeSrc":"11093:23:20","nodeType":"YulFunctionCall","src":"11093:23:20"},"variableNames":[{"name":"to","nativeSrc":"11087:2:20","nodeType":"YulIdentifier","src":"11087:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11176:4:20","nodeType":"YulLiteral","src":"11176:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"11182:2:20","nodeType":"YulIdentifier","src":"11182:2:20"}],"functionName":{"name":"mstore","nativeSrc":"11169:6:20","nodeType":"YulIdentifier","src":"11169:6:20"},"nativeSrc":"11169:16:20","nodeType":"YulFunctionCall","src":"11169:16:20"},"nativeSrc":"11169:16:20","nodeType":"YulExpressionStatement","src":"11169:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11205:4:20","nodeType":"YulLiteral","src":"11205:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"11214:24:20","nodeType":"YulIdentifier","src":"11214:24:20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"11240:6:20","nodeType":"YulIdentifier","src":"11240:6:20"},"nativeSrc":"11240:8:20","nodeType":"YulFunctionCall","src":"11240:8:20"}],"functionName":{"name":"or","nativeSrc":"11211:2:20","nodeType":"YulIdentifier","src":"11211:2:20"},"nativeSrc":"11211:38:20","nodeType":"YulFunctionCall","src":"11211:38:20"}],"functionName":{"name":"mstore","nativeSrc":"11198:6:20","nodeType":"YulIdentifier","src":"11198:6:20"},"nativeSrc":"11198:52:20","nodeType":"YulFunctionCall","src":"11198:52:20"},"nativeSrc":"11198:52:20","nodeType":"YulExpressionStatement","src":"11198:52:20"},{"nativeSrc":"11263:60:20","nodeType":"YulVariableDeclaration","src":"11263:60:20","value":{"arguments":[{"name":"id","nativeSrc":"11288:2:20","nodeType":"YulIdentifier","src":"11288:2:20"},{"arguments":[{"name":"id","nativeSrc":"11296:2:20","nodeType":"YulIdentifier","src":"11296:2:20"},{"arguments":[{"kind":"number","nativeSrc":"11310:4:20","nodeType":"YulLiteral","src":"11310:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11316:4:20","nodeType":"YulLiteral","src":"11316:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11300:9:20","nodeType":"YulIdentifier","src":"11300:9:20"},"nativeSrc":"11300:21:20","nodeType":"YulFunctionCall","src":"11300:21:20"}],"functionName":{"name":"add","nativeSrc":"11292:3:20","nodeType":"YulIdentifier","src":"11292:3:20"},"nativeSrc":"11292:30:20","nodeType":"YulFunctionCall","src":"11292:30:20"}],"functionName":{"name":"add","nativeSrc":"11284:3:20","nodeType":"YulIdentifier","src":"11284:3:20"},"nativeSrc":"11284:39:20","nodeType":"YulFunctionCall","src":"11284:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"11267:13:20","nodeType":"YulTypedName","src":"11267:13:20","type":""}]},{"nativeSrc":"11336:43:20","nodeType":"YulVariableDeclaration","src":"11336:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"11365:13:20","nodeType":"YulIdentifier","src":"11365:13:20"}],"functionName":{"name":"sload","nativeSrc":"11359:5:20","nodeType":"YulIdentifier","src":"11359:5:20"},"nativeSrc":"11359:20:20","nodeType":"YulFunctionCall","src":"11359:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"11340:15:20","nodeType":"YulTypedName","src":"11340:15:20","type":""}]},{"nativeSrc":"11392:49:20","nodeType":"YulVariableDeclaration","src":"11392:49:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11409:14:20","nodeType":"YulIdentifier","src":"11409:14:20"},{"name":"ownershipPacked","nativeSrc":"11425:15:20","nodeType":"YulIdentifier","src":"11425:15:20"}],"functionName":{"name":"and","nativeSrc":"11405:3:20","nodeType":"YulIdentifier","src":"11405:3:20"},"nativeSrc":"11405:36:20","nodeType":"YulFunctionCall","src":"11405:36:20"},"variables":[{"name":"owner","nativeSrc":"11396:5:20","nodeType":"YulTypedName","src":"11396:5:20","type":""}]},{"body":{"nativeSrc":"11575:190:20","nodeType":"YulBlock","src":"11575:190:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11678:1:20","nodeType":"YulLiteral","src":"11678:1:20","type":"","value":"2"},{"arguments":[{"name":"owner","nativeSrc":"11688:5:20","nodeType":"YulIdentifier","src":"11688:5:20"}],"functionName":{"name":"iszero","nativeSrc":"11681:6:20","nodeType":"YulIdentifier","src":"11681:6:20"},"nativeSrc":"11681:13:20","nodeType":"YulFunctionCall","src":"11681:13:20"}],"functionName":{"name":"shl","nativeSrc":"11674:3:20","nodeType":"YulIdentifier","src":"11674:3:20"},"nativeSrc":"11674:21:20","nodeType":"YulFunctionCall","src":"11674:21:20"},{"kind":"number","nativeSrc":"11697:18:20","nodeType":"YulLiteral","src":"11697:18:20","type":"","value":"0xceea21b6a1148100"}],"functionName":{"name":"mstore","nativeSrc":"11667:6:20","nodeType":"YulIdentifier","src":"11667:6:20"},"nativeSrc":"11667:49:20","nodeType":"YulFunctionCall","src":"11667:49:20"},"nativeSrc":"11667:49:20","nodeType":"YulExpressionStatement","src":"11667:49:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11740:4:20","nodeType":"YulLiteral","src":"11740:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11746:4:20","nodeType":"YulLiteral","src":"11746:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11733:6:20","nodeType":"YulIdentifier","src":"11733:6:20"},"nativeSrc":"11733:18:20","nodeType":"YulFunctionCall","src":"11733:18:20"},"nativeSrc":"11733:18:20","nodeType":"YulExpressionStatement","src":"11733:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"owner","nativeSrc":"11550:5:20","nodeType":"YulIdentifier","src":"11550:5:20"},{"arguments":[{"name":"owner","nativeSrc":"11560:5:20","nodeType":"YulIdentifier","src":"11560:5:20"},{"name":"from","nativeSrc":"11567:4:20","nodeType":"YulIdentifier","src":"11567:4:20"}],"functionName":{"name":"eq","nativeSrc":"11557:2:20","nodeType":"YulIdentifier","src":"11557:2:20"},"nativeSrc":"11557:15:20","nodeType":"YulFunctionCall","src":"11557:15:20"}],"functionName":{"name":"mul","nativeSrc":"11546:3:20","nodeType":"YulIdentifier","src":"11546:3:20"},"nativeSrc":"11546:27:20","nodeType":"YulFunctionCall","src":"11546:27:20"}],"functionName":{"name":"iszero","nativeSrc":"11539:6:20","nodeType":"YulIdentifier","src":"11539:6:20"},"nativeSrc":"11539:35:20","nodeType":"YulFunctionCall","src":"11539:35:20"},"nativeSrc":"11536:229:20","nodeType":"YulIf","src":"11536:229:20"},{"nativeSrc":"11837:622:20","nodeType":"YulBlock","src":"11837:622:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11862:4:20","nodeType":"YulLiteral","src":"11862:4:20","type":"","value":"0x00"},{"name":"from","nativeSrc":"11868:4:20","nodeType":"YulIdentifier","src":"11868:4:20"}],"functionName":{"name":"mstore","nativeSrc":"11855:6:20","nodeType":"YulIdentifier","src":"11855:6:20"},"nativeSrc":"11855:18:20","nodeType":"YulFunctionCall","src":"11855:18:20"},"nativeSrc":"11855:18:20","nodeType":"YulExpressionStatement","src":"11855:18:20"},{"nativeSrc":"11890:51:20","nodeType":"YulVariableDeclaration","src":"11890:51:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11923:1:20","nodeType":"YulLiteral","src":"11923:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"11926:13:20","nodeType":"YulIdentifier","src":"11926:13:20"}],"functionName":{"name":"add","nativeSrc":"11919:3:20","nodeType":"YulIdentifier","src":"11919:3:20"},"nativeSrc":"11919:21:20","nodeType":"YulFunctionCall","src":"11919:21:20"}],"functionName":{"name":"sload","nativeSrc":"11913:5:20","nodeType":"YulIdentifier","src":"11913:5:20"},"nativeSrc":"11913:28:20","nodeType":"YulFunctionCall","src":"11913:28:20"},"variables":[{"name":"approvedAddress","nativeSrc":"11894:15:20","nodeType":"YulTypedName","src":"11894:15:20","type":""}]},{"body":{"nativeSrc":"12095:223:20","nodeType":"YulBlock","src":"12095:223:20","statements":[{"body":{"nativeSrc":"12157:143:20","nodeType":"YulBlock","src":"12157:143:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12190:4:20","nodeType":"YulLiteral","src":"12190:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12196:10:20","nodeType":"YulLiteral","src":"12196:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"12183:6:20","nodeType":"YulIdentifier","src":"12183:6:20"},"nativeSrc":"12183:24:20","nodeType":"YulFunctionCall","src":"12183:24:20"},"nativeSrc":"12183:24:20","nodeType":"YulExpressionStatement","src":"12183:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12267:4:20","nodeType":"YulLiteral","src":"12267:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12273:4:20","nodeType":"YulLiteral","src":"12273:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12260:6:20","nodeType":"YulIdentifier","src":"12260:6:20"},"nativeSrc":"12260:18:20","nodeType":"YulFunctionCall","src":"12260:18:20"},"nativeSrc":"12260:18:20","nodeType":"YulExpressionStatement","src":"12260:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12143:4:20","nodeType":"YulLiteral","src":"12143:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12149:4:20","nodeType":"YulLiteral","src":"12149:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"12133:9:20","nodeType":"YulIdentifier","src":"12133:9:20"},"nativeSrc":"12133:21:20","nodeType":"YulFunctionCall","src":"12133:21:20"}],"functionName":{"name":"sload","nativeSrc":"12127:5:20","nodeType":"YulIdentifier","src":"12127:5:20"},"nativeSrc":"12127:28:20","nodeType":"YulFunctionCall","src":"12127:28:20"}],"functionName":{"name":"iszero","nativeSrc":"12120:6:20","nodeType":"YulIdentifier","src":"12120:6:20"},"nativeSrc":"12120:36:20","nodeType":"YulFunctionCall","src":"12120:36:20"},"nativeSrc":"12117:183:20","nodeType":"YulIf","src":"12117:183:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"12046:6:20","nodeType":"YulIdentifier","src":"12046:6:20"},"nativeSrc":"12046:8:20","nodeType":"YulFunctionCall","src":"12046:8:20"},{"name":"from","nativeSrc":"12056:4:20","nodeType":"YulIdentifier","src":"12056:4:20"}],"functionName":{"name":"eq","nativeSrc":"12043:2:20","nodeType":"YulIdentifier","src":"12043:2:20"},"nativeSrc":"12043:18:20","nodeType":"YulFunctionCall","src":"12043:18:20"},{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"12066:6:20","nodeType":"YulIdentifier","src":"12066:6:20"},"nativeSrc":"12066:8:20","nodeType":"YulFunctionCall","src":"12066:8:20"},{"name":"approvedAddress","nativeSrc":"12076:15:20","nodeType":"YulIdentifier","src":"12076:15:20"}],"functionName":{"name":"eq","nativeSrc":"12063:2:20","nodeType":"YulIdentifier","src":"12063:2:20"},"nativeSrc":"12063:29:20","nodeType":"YulFunctionCall","src":"12063:29:20"}],"functionName":{"name":"or","nativeSrc":"12040:2:20","nodeType":"YulIdentifier","src":"12040:2:20"},"nativeSrc":"12040:53:20","nodeType":"YulFunctionCall","src":"12040:53:20"}],"functionName":{"name":"iszero","nativeSrc":"12033:6:20","nodeType":"YulIdentifier","src":"12033:6:20"},"nativeSrc":"12033:61:20","nodeType":"YulFunctionCall","src":"12033:61:20"},"nativeSrc":"12030:288:20","nodeType":"YulIf","src":"12030:288:20"},{"body":{"nativeSrc":"12409:36:20","nodeType":"YulBlock","src":"12409:36:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12422:1:20","nodeType":"YulLiteral","src":"12422:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"12425:13:20","nodeType":"YulIdentifier","src":"12425:13:20"}],"functionName":{"name":"add","nativeSrc":"12418:3:20","nodeType":"YulIdentifier","src":"12418:3:20"},"nativeSrc":"12418:21:20","nodeType":"YulFunctionCall","src":"12418:21:20"},{"kind":"number","nativeSrc":"12441:1:20","nodeType":"YulLiteral","src":"12441:1:20","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"12411:6:20","nodeType":"YulIdentifier","src":"12411:6:20"},"nativeSrc":"12411:32:20","nodeType":"YulFunctionCall","src":"12411:32:20"},"nativeSrc":"12411:32:20","nodeType":"YulExpressionStatement","src":"12411:32:20"}]},"condition":{"name":"approvedAddress","nativeSrc":"12393:15:20","nodeType":"YulIdentifier","src":"12393:15:20"},"nativeSrc":"12390:55:20","nodeType":"YulIf","src":"12390:55:20"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"12521:13:20","nodeType":"YulIdentifier","src":"12521:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"12540:15:20","nodeType":"YulIdentifier","src":"12540:15:20"},{"arguments":[{"name":"from","nativeSrc":"12561:4:20","nodeType":"YulIdentifier","src":"12561:4:20"},{"name":"to","nativeSrc":"12567:2:20","nodeType":"YulIdentifier","src":"12567:2:20"}],"functionName":{"name":"xor","nativeSrc":"12557:3:20","nodeType":"YulIdentifier","src":"12557:3:20"},"nativeSrc":"12557:13:20","nodeType":"YulFunctionCall","src":"12557:13:20"}],"functionName":{"name":"xor","nativeSrc":"12536:3:20","nodeType":"YulIdentifier","src":"12536:3:20"},"nativeSrc":"12536:35:20","nodeType":"YulFunctionCall","src":"12536:35:20"}],"functionName":{"name":"sstore","nativeSrc":"12514:6:20","nodeType":"YulIdentifier","src":"12514:6:20"},"nativeSrc":"12514:58:20","nodeType":"YulFunctionCall","src":"12514:58:20"},"nativeSrc":"12514:58:20","nodeType":"YulExpressionStatement","src":"12514:58:20"},{"nativeSrc":"12633:148:20","nodeType":"YulBlock","src":"12633:148:20","statements":[{"nativeSrc":"12651:44:20","nodeType":"YulVariableDeclaration","src":"12651:44:20","value":{"arguments":[{"kind":"number","nativeSrc":"12684:4:20","nodeType":"YulLiteral","src":"12684:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12690:4:20","nodeType":"YulLiteral","src":"12690:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"12674:9:20","nodeType":"YulIdentifier","src":"12674:9:20"},"nativeSrc":"12674:21:20","nodeType":"YulFunctionCall","src":"12674:21:20"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"12655:15:20","nodeType":"YulTypedName","src":"12655:15:20","type":""}]},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"12719:15:20","nodeType":"YulIdentifier","src":"12719:15:20"},{"arguments":[{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"12746:15:20","nodeType":"YulIdentifier","src":"12746:15:20"}],"functionName":{"name":"sload","nativeSrc":"12740:5:20","nodeType":"YulIdentifier","src":"12740:5:20"},"nativeSrc":"12740:22:20","nodeType":"YulFunctionCall","src":"12740:22:20"},{"kind":"number","nativeSrc":"12764:1:20","nodeType":"YulLiteral","src":"12764:1:20","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12736:3:20","nodeType":"YulIdentifier","src":"12736:3:20"},"nativeSrc":"12736:30:20","nodeType":"YulFunctionCall","src":"12736:30:20"}],"functionName":{"name":"sstore","nativeSrc":"12712:6:20","nodeType":"YulIdentifier","src":"12712:6:20"},"nativeSrc":"12712:55:20","nodeType":"YulFunctionCall","src":"12712:55:20"},"nativeSrc":"12712:55:20","nodeType":"YulExpressionStatement","src":"12712:55:20"}]},{"nativeSrc":"12840:617:20","nodeType":"YulBlock","src":"12840:617:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12865:4:20","nodeType":"YulLiteral","src":"12865:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"12871:2:20","nodeType":"YulIdentifier","src":"12871:2:20"}],"functionName":{"name":"mstore","nativeSrc":"12858:6:20","nodeType":"YulIdentifier","src":"12858:6:20"},"nativeSrc":"12858:16:20","nodeType":"YulFunctionCall","src":"12858:16:20"},"nativeSrc":"12858:16:20","nodeType":"YulExpressionStatement","src":"12858:16:20"},{"nativeSrc":"12891:42:20","nodeType":"YulVariableDeclaration","src":"12891:42:20","value":{"arguments":[{"kind":"number","nativeSrc":"12922:4:20","nodeType":"YulLiteral","src":"12922:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12928:4:20","nodeType":"YulLiteral","src":"12928:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"12912:9:20","nodeType":"YulIdentifier","src":"12912:9:20"},"nativeSrc":"12912:21:20","nodeType":"YulFunctionCall","src":"12912:21:20"},"variables":[{"name":"toBalanceSlot","nativeSrc":"12895:13:20","nodeType":"YulTypedName","src":"12895:13:20","type":""}]},{"nativeSrc":"12950:55:20","nodeType":"YulVariableDeclaration","src":"12950:55:20","value":{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"12987:13:20","nodeType":"YulIdentifier","src":"12987:13:20"}],"functionName":{"name":"sload","nativeSrc":"12981:5:20","nodeType":"YulIdentifier","src":"12981:5:20"},"nativeSrc":"12981:20:20","nodeType":"YulFunctionCall","src":"12981:20:20"},{"kind":"number","nativeSrc":"13003:1:20","nodeType":"YulLiteral","src":"13003:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12977:3:20","nodeType":"YulIdentifier","src":"12977:3:20"},"nativeSrc":"12977:28:20","nodeType":"YulFunctionCall","src":"12977:28:20"},"variables":[{"name":"toBalanceSlotPacked","nativeSrc":"12954:19:20","nodeType":"YulTypedName","src":"12954:19:20","type":""}]},{"body":{"nativeSrc":"13181:203:20","nodeType":"YulBlock","src":"13181:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13292:1:20","nodeType":"YulLiteral","src":"13292:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"13302:2:20","nodeType":"YulIdentifier","src":"13302:2:20"}],"functionName":{"name":"iszero","nativeSrc":"13295:6:20","nodeType":"YulIdentifier","src":"13295:6:20"},"nativeSrc":"13295:10:20","nodeType":"YulFunctionCall","src":"13295:10:20"}],"functionName":{"name":"shl","nativeSrc":"13288:3:20","nodeType":"YulIdentifier","src":"13288:3:20"},"nativeSrc":"13288:18:20","nodeType":"YulFunctionCall","src":"13288:18:20"},{"kind":"number","nativeSrc":"13308:18:20","nodeType":"YulLiteral","src":"13308:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"13281:6:20","nodeType":"YulIdentifier","src":"13281:6:20"},"nativeSrc":"13281:46:20","nodeType":"YulFunctionCall","src":"13281:46:20"},"nativeSrc":"13281:46:20","nodeType":"YulExpressionStatement","src":"13281:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13355:4:20","nodeType":"YulLiteral","src":"13355:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13361:4:20","nodeType":"YulLiteral","src":"13361:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13348:6:20","nodeType":"YulIdentifier","src":"13348:6:20"},"nativeSrc":"13348:18:20","nodeType":"YulFunctionCall","src":"13348:18:20"},"nativeSrc":"13348:18:20","nodeType":"YulExpressionStatement","src":"13348:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"13128:2:20","nodeType":"YulIdentifier","src":"13128:2:20"},{"arguments":[{"name":"toBalanceSlotPacked","nativeSrc":"13136:19:20","nodeType":"YulIdentifier","src":"13136:19:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"13157:20:20","nodeType":"YulIdentifier","src":"13157:20:20"}],"functionName":{"name":"and","nativeSrc":"13132:3:20","nodeType":"YulIdentifier","src":"13132:3:20"},"nativeSrc":"13132:46:20","nodeType":"YulFunctionCall","src":"13132:46:20"}],"functionName":{"name":"mul","nativeSrc":"13124:3:20","nodeType":"YulIdentifier","src":"13124:3:20"},"nativeSrc":"13124:55:20","nodeType":"YulFunctionCall","src":"13124:55:20"}],"functionName":{"name":"iszero","nativeSrc":"13117:6:20","nodeType":"YulIdentifier","src":"13117:6:20"},"nativeSrc":"13117:63:20","nodeType":"YulFunctionCall","src":"13117:63:20"},"nativeSrc":"13114:270:20","nodeType":"YulIf","src":"13114:270:20"},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"13408:13:20","nodeType":"YulIdentifier","src":"13408:13:20"},{"name":"toBalanceSlotPacked","nativeSrc":"13423:19:20","nodeType":"YulIdentifier","src":"13423:19:20"}],"functionName":{"name":"sstore","nativeSrc":"13401:6:20","nodeType":"YulIdentifier","src":"13401:6:20"},"nativeSrc":"13401:42:20","nodeType":"YulFunctionCall","src":"13401:42:20"},"nativeSrc":"13401:42:20","nodeType":"YulExpressionStatement","src":"13401:42:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"13517:8:20","nodeType":"YulIdentifier","src":"13517:8:20"},"nativeSrc":"13517:10:20","nodeType":"YulFunctionCall","src":"13517:10:20"},{"kind":"number","nativeSrc":"13529:4:20","nodeType":"YulLiteral","src":"13529:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"13535:25:20","nodeType":"YulIdentifier","src":"13535:25:20"},{"name":"from","nativeSrc":"13562:4:20","nodeType":"YulIdentifier","src":"13562:4:20"},{"name":"to","nativeSrc":"13568:2:20","nodeType":"YulIdentifier","src":"13568:2:20"},{"name":"id","nativeSrc":"13572:2:20","nodeType":"YulIdentifier","src":"13572:2:20"}],"functionName":{"name":"log4","nativeSrc":"13512:4:20","nodeType":"YulIdentifier","src":"13512:4:20"},"nativeSrc":"13512:63:20","nodeType":"YulFunctionCall","src":"13512:63:20"},"nativeSrc":"13512:63:20","nodeType":"YulExpressionStatement","src":"13512:63:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"11214:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"13157:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"13535:25:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11041:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11069:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11567:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11868:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"12056:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"12561:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"13562:4:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"11182:2:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"11288:2:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"11296:2:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"13572:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"11087:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"11113:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"12567:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"12871:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"13128:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"13302:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"13568:2:20","valueSize":1}],"id":8559,"nodeType":"InlineAssembly","src":"10928:2657:20"},{"expression":{"arguments":[{"id":8561,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"13614:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8562,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"13620:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8563,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"13624:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8560,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"13594:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13594:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8565,"nodeType":"ExpressionStatement","src":"13594:33:20"}]},"documentation":{"id":8544,"nodeType":"StructuredDocumentation","src":"10399:344:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8567,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"10757:12:20","nodeType":"FunctionDefinition","parameters":{"id":8551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8546,"mutability":"mutable","name":"from","nameLocation":"10778:4:20","nodeType":"VariableDeclaration","scope":8567,"src":"10770:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8545,"name":"address","nodeType":"ElementaryTypeName","src":"10770:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8548,"mutability":"mutable","name":"to","nameLocation":"10792:2:20","nodeType":"VariableDeclaration","scope":8567,"src":"10784:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8547,"name":"address","nodeType":"ElementaryTypeName","src":"10784:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8550,"mutability":"mutable","name":"id","nameLocation":"10804:2:20","nodeType":"VariableDeclaration","scope":8567,"src":"10796:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8549,"name":"uint256","nodeType":"ElementaryTypeName","src":"10796:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10769:38:20"},"returnParameters":{"id":8552,"nodeType":"ParameterList","parameters":[],"src":"10831:0:20"},"scope":9111,"src":"10748:2886:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8594,"nodeType":"Block","src":"13792:111:20","statements":[{"expression":{"arguments":[{"id":8578,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"13815:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8579,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8572,"src":"13821:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8580,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8574,"src":"13825:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8577,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8567,"src":"13802:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13802:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8582,"nodeType":"ExpressionStatement","src":"13802:26:20"},{"condition":{"arguments":[{"id":8584,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8572,"src":"13851:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8583,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"13842:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13842:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8593,"nodeType":"IfStatement","src":"13838:58:20","trueBody":{"expression":{"arguments":[{"id":8587,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"13879:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8588,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8572,"src":"13885:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8589,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8574,"src":"13889:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13893:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":8586,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"13856:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13856:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8592,"nodeType":"ExpressionStatement","src":"13856:40:20"}}]},"documentation":{"id":8568,"nodeType":"StructuredDocumentation","src":"13640:60:20","text":"@dev Equivalent to `safeTransferFrom(from, to, id, \"\")`."},"functionSelector":"42842e0e","id":8595,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"13714:16:20","nodeType":"FunctionDefinition","parameters":{"id":8575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8570,"mutability":"mutable","name":"from","nameLocation":"13739:4:20","nodeType":"VariableDeclaration","scope":8595,"src":"13731:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8569,"name":"address","nodeType":"ElementaryTypeName","src":"13731:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8572,"mutability":"mutable","name":"to","nameLocation":"13753:2:20","nodeType":"VariableDeclaration","scope":8595,"src":"13745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8571,"name":"address","nodeType":"ElementaryTypeName","src":"13745:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8574,"mutability":"mutable","name":"id","nameLocation":"13765:2:20","nodeType":"VariableDeclaration","scope":8595,"src":"13757:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8573,"name":"uint256","nodeType":"ElementaryTypeName","src":"13757:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13730:38:20"},"returnParameters":{"id":8576,"nodeType":"ParameterList","parameters":[],"src":"13792:0:20"},"scope":9111,"src":"13705:198:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8624,"nodeType":"Block","src":"14542:113:20","statements":[{"expression":{"arguments":[{"id":8608,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"14565:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8609,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"14571:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8610,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"14575:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8607,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8567,"src":"14552:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14552:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8612,"nodeType":"ExpressionStatement","src":"14552:26:20"},{"condition":{"arguments":[{"id":8614,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"14601:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8613,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"14592:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14592:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8623,"nodeType":"IfStatement","src":"14588:60:20","trueBody":{"expression":{"arguments":[{"id":8617,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"14629:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8618,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"14635:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8619,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"14639:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8620,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"14643:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":8616,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"14606:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14606:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8622,"nodeType":"ExpressionStatement","src":"14606:42:20"}}]},"documentation":{"id":8596,"nodeType":"StructuredDocumentation","src":"13909:492:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":8625,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"14415:16:20","nodeType":"FunctionDefinition","parameters":{"id":8605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8598,"mutability":"mutable","name":"from","nameLocation":"14440:4:20","nodeType":"VariableDeclaration","scope":8625,"src":"14432:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8597,"name":"address","nodeType":"ElementaryTypeName","src":"14432:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8600,"mutability":"mutable","name":"to","nameLocation":"14454:2:20","nodeType":"VariableDeclaration","scope":8625,"src":"14446:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8599,"name":"address","nodeType":"ElementaryTypeName","src":"14446:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8602,"mutability":"mutable","name":"id","nameLocation":"14466:2:20","nodeType":"VariableDeclaration","scope":8625,"src":"14458:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8601,"name":"uint256","nodeType":"ElementaryTypeName","src":"14458:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8604,"mutability":"mutable","name":"data","nameLocation":"14485:4:20","nodeType":"VariableDeclaration","scope":8625,"src":"14470:19:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8603,"name":"bytes","nodeType":"ElementaryTypeName","src":"14470:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14431:59:20"},"returnParameters":{"id":8606,"nodeType":"ParameterList","parameters":[],"src":"14542:0:20"},"scope":9111,"src":"14406:249:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8634,"nodeType":"Block","src":"14953:291:20","statements":[{"AST":{"nativeSrc":"15015:223:20","nodeType":"YulBlock","src":"15015:223:20","statements":[{"nativeSrc":"15029:30:20","nodeType":"YulVariableDeclaration","src":"15029:30:20","value":{"arguments":[{"kind":"number","nativeSrc":"15042:3:20","nodeType":"YulLiteral","src":"15042:3:20","type":"","value":"224"},{"name":"interfaceId","nativeSrc":"15047:11:20","nodeType":"YulIdentifier","src":"15047:11:20"}],"functionName":{"name":"shr","nativeSrc":"15038:3:20","nodeType":"YulIdentifier","src":"15038:3:20"},"nativeSrc":"15038:21:20","nodeType":"YulFunctionCall","src":"15038:21:20"},"variables":[{"name":"s","nativeSrc":"15033:1:20","nodeType":"YulTypedName","src":"15033:1:20","type":""}]},{"nativeSrc":"15155:73:20","nodeType":"YulAssignment","src":"15155:73:20","value":{"arguments":[{"arguments":[{"arguments":[{"name":"s","nativeSrc":"15174:1:20","nodeType":"YulIdentifier","src":"15174:1:20"},{"kind":"number","nativeSrc":"15177:10:20","nodeType":"YulLiteral","src":"15177:10:20","type":"","value":"0x01ffc9a7"}],"functionName":{"name":"eq","nativeSrc":"15171:2:20","nodeType":"YulIdentifier","src":"15171:2:20"},"nativeSrc":"15171:17:20","nodeType":"YulFunctionCall","src":"15171:17:20"},{"arguments":[{"name":"s","nativeSrc":"15193:1:20","nodeType":"YulIdentifier","src":"15193:1:20"},{"kind":"number","nativeSrc":"15196:10:20","nodeType":"YulLiteral","src":"15196:10:20","type":"","value":"0x80ac58cd"}],"functionName":{"name":"eq","nativeSrc":"15190:2:20","nodeType":"YulIdentifier","src":"15190:2:20"},"nativeSrc":"15190:17:20","nodeType":"YulFunctionCall","src":"15190:17:20"}],"functionName":{"name":"or","nativeSrc":"15168:2:20","nodeType":"YulIdentifier","src":"15168:2:20"},"nativeSrc":"15168:40:20","nodeType":"YulFunctionCall","src":"15168:40:20"},{"arguments":[{"name":"s","nativeSrc":"15213:1:20","nodeType":"YulIdentifier","src":"15213:1:20"},{"kind":"number","nativeSrc":"15216:10:20","nodeType":"YulLiteral","src":"15216:10:20","type":"","value":"0x5b5e139f"}],"functionName":{"name":"eq","nativeSrc":"15210:2:20","nodeType":"YulIdentifier","src":"15210:2:20"},"nativeSrc":"15210:17:20","nodeType":"YulFunctionCall","src":"15210:17:20"}],"functionName":{"name":"or","nativeSrc":"15165:2:20","nodeType":"YulIdentifier","src":"15165:2:20"},"nativeSrc":"15165:63:20","nodeType":"YulFunctionCall","src":"15165:63:20"},"variableNames":[{"name":"result","nativeSrc":"15155:6:20","nodeType":"YulIdentifier","src":"15155:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8628,"isOffset":false,"isSlot":false,"src":"15047:11:20","valueSize":1},{"declaration":8631,"isOffset":false,"isSlot":false,"src":"15155:6:20","valueSize":1}],"id":8633,"nodeType":"InlineAssembly","src":"15006:232:20"}]},"documentation":{"id":8626,"nodeType":"StructuredDocumentation","src":"14661:198:20","text":"@dev Returns true if this contract implements the interface defined by `interfaceId`.\n See: https://eips.ethereum.org/EIPS/eip-165\n This function call must use less than 30000 gas."},"functionSelector":"01ffc9a7","id":8635,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"14873:17:20","nodeType":"FunctionDefinition","parameters":{"id":8629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8628,"mutability":"mutable","name":"interfaceId","nameLocation":"14898:11:20","nodeType":"VariableDeclaration","scope":8635,"src":"14891:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8627,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14891:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14890:20:20"},"returnParameters":{"id":8632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8631,"mutability":"mutable","name":"result","nameLocation":"14945:6:20","nodeType":"VariableDeclaration","scope":8635,"src":"14940:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8630,"name":"bool","nodeType":"ElementaryTypeName","src":"14940:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14939:13:20"},"scope":9111,"src":"14864:380:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8644,"nodeType":"Block","src":"15649:253:20","statements":[{"AST":{"nativeSrc":"15711:185:20","nodeType":"YulBlock","src":"15711:185:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15732:4:20","nodeType":"YulLiteral","src":"15732:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"15738:2:20","nodeType":"YulIdentifier","src":"15738:2:20"}],"functionName":{"name":"mstore","nativeSrc":"15725:6:20","nodeType":"YulIdentifier","src":"15725:6:20"},"nativeSrc":"15725:16:20","nodeType":"YulFunctionCall","src":"15725:16:20"},"nativeSrc":"15725:16:20","nodeType":"YulExpressionStatement","src":"15725:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15761:4:20","nodeType":"YulLiteral","src":"15761:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"15767:24:20","nodeType":"YulIdentifier","src":"15767:24:20"}],"functionName":{"name":"mstore","nativeSrc":"15754:6:20","nodeType":"YulIdentifier","src":"15754:6:20"},"nativeSrc":"15754:38:20","nodeType":"YulFunctionCall","src":"15754:38:20"},"nativeSrc":"15754:38:20","nodeType":"YulExpressionStatement","src":"15754:38:20"},{"nativeSrc":"15805:81:20","nodeType":"YulAssignment","src":"15805:81:20","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15833:2:20","nodeType":"YulLiteral","src":"15833:2:20","type":"","value":"96"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"15847:2:20","nodeType":"YulIdentifier","src":"15847:2:20"},{"arguments":[{"name":"id","nativeSrc":"15855:2:20","nodeType":"YulIdentifier","src":"15855:2:20"},{"arguments":[{"kind":"number","nativeSrc":"15869:4:20","nodeType":"YulLiteral","src":"15869:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15875:4:20","nodeType":"YulLiteral","src":"15875:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"15859:9:20","nodeType":"YulIdentifier","src":"15859:9:20"},"nativeSrc":"15859:21:20","nodeType":"YulFunctionCall","src":"15859:21:20"}],"functionName":{"name":"add","nativeSrc":"15851:3:20","nodeType":"YulIdentifier","src":"15851:3:20"},"nativeSrc":"15851:30:20","nodeType":"YulFunctionCall","src":"15851:30:20"}],"functionName":{"name":"add","nativeSrc":"15843:3:20","nodeType":"YulIdentifier","src":"15843:3:20"},"nativeSrc":"15843:39:20","nodeType":"YulFunctionCall","src":"15843:39:20"}],"functionName":{"name":"sload","nativeSrc":"15837:5:20","nodeType":"YulIdentifier","src":"15837:5:20"},"nativeSrc":"15837:46:20","nodeType":"YulFunctionCall","src":"15837:46:20"}],"functionName":{"name":"shl","nativeSrc":"15829:3:20","nodeType":"YulIdentifier","src":"15829:3:20"},"nativeSrc":"15829:55:20","nodeType":"YulFunctionCall","src":"15829:55:20"}],"functionName":{"name":"iszero","nativeSrc":"15822:6:20","nodeType":"YulIdentifier","src":"15822:6:20"},"nativeSrc":"15822:63:20","nodeType":"YulFunctionCall","src":"15822:63:20"}],"functionName":{"name":"iszero","nativeSrc":"15815:6:20","nodeType":"YulIdentifier","src":"15815:6:20"},"nativeSrc":"15815:71:20","nodeType":"YulFunctionCall","src":"15815:71:20"},"variableNames":[{"name":"result","nativeSrc":"15805:6:20","nodeType":"YulIdentifier","src":"15805:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"15767:24:20","valueSize":1},{"declaration":8638,"isOffset":false,"isSlot":false,"src":"15738:2:20","valueSize":1},{"declaration":8638,"isOffset":false,"isSlot":false,"src":"15847:2:20","valueSize":1},{"declaration":8638,"isOffset":false,"isSlot":false,"src":"15855:2:20","valueSize":1},{"declaration":8641,"isOffset":false,"isSlot":false,"src":"15805:6:20","valueSize":1}],"id":8643,"nodeType":"InlineAssembly","src":"15702:194:20"}]},"documentation":{"id":8636,"nodeType":"StructuredDocumentation","src":"15533:38:20","text":"@dev Returns if token `id` exists."},"id":8645,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"15585:7:20","nodeType":"FunctionDefinition","parameters":{"id":8639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8638,"mutability":"mutable","name":"id","nameLocation":"15601:2:20","nodeType":"VariableDeclaration","scope":8645,"src":"15593:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8637,"name":"uint256","nodeType":"ElementaryTypeName","src":"15593:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15592:12:20"},"returnParameters":{"id":8642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8641,"mutability":"mutable","name":"result","nameLocation":"15641:6:20","nodeType":"VariableDeclaration","scope":8645,"src":"15636:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8640,"name":"bool","nodeType":"ElementaryTypeName","src":"15636:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15635:13:20"},"scope":9111,"src":"15576:326:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8654,"nodeType":"Block","src":"16114:246:20","statements":[{"AST":{"nativeSrc":"16176:178:20","nodeType":"YulBlock","src":"16176:178:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16197:4:20","nodeType":"YulLiteral","src":"16197:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"16203:2:20","nodeType":"YulIdentifier","src":"16203:2:20"}],"functionName":{"name":"mstore","nativeSrc":"16190:6:20","nodeType":"YulIdentifier","src":"16190:6:20"},"nativeSrc":"16190:16:20","nodeType":"YulFunctionCall","src":"16190:16:20"},"nativeSrc":"16190:16:20","nodeType":"YulExpressionStatement","src":"16190:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16226:4:20","nodeType":"YulLiteral","src":"16226:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"16232:24:20","nodeType":"YulIdentifier","src":"16232:24:20"}],"functionName":{"name":"mstore","nativeSrc":"16219:6:20","nodeType":"YulIdentifier","src":"16219:6:20"},"nativeSrc":"16219:38:20","nodeType":"YulFunctionCall","src":"16219:38:20"},"nativeSrc":"16219:38:20","nodeType":"YulExpressionStatement","src":"16219:38:20"},{"nativeSrc":"16270:74:20","nodeType":"YulAssignment","src":"16270:74:20","value":{"arguments":[{"kind":"number","nativeSrc":"16284:2:20","nodeType":"YulLiteral","src":"16284:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"16292:2:20","nodeType":"YulLiteral","src":"16292:2:20","type":"","value":"96"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"16306:2:20","nodeType":"YulIdentifier","src":"16306:2:20"},{"arguments":[{"name":"id","nativeSrc":"16314:2:20","nodeType":"YulIdentifier","src":"16314:2:20"},{"arguments":[{"kind":"number","nativeSrc":"16328:4:20","nodeType":"YulLiteral","src":"16328:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16334:4:20","nodeType":"YulLiteral","src":"16334:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"16318:9:20","nodeType":"YulIdentifier","src":"16318:9:20"},"nativeSrc":"16318:21:20","nodeType":"YulFunctionCall","src":"16318:21:20"}],"functionName":{"name":"add","nativeSrc":"16310:3:20","nodeType":"YulIdentifier","src":"16310:3:20"},"nativeSrc":"16310:30:20","nodeType":"YulFunctionCall","src":"16310:30:20"}],"functionName":{"name":"add","nativeSrc":"16302:3:20","nodeType":"YulIdentifier","src":"16302:3:20"},"nativeSrc":"16302:39:20","nodeType":"YulFunctionCall","src":"16302:39:20"}],"functionName":{"name":"sload","nativeSrc":"16296:5:20","nodeType":"YulIdentifier","src":"16296:5:20"},"nativeSrc":"16296:46:20","nodeType":"YulFunctionCall","src":"16296:46:20"}],"functionName":{"name":"shl","nativeSrc":"16288:3:20","nodeType":"YulIdentifier","src":"16288:3:20"},"nativeSrc":"16288:55:20","nodeType":"YulFunctionCall","src":"16288:55:20"}],"functionName":{"name":"shr","nativeSrc":"16280:3:20","nodeType":"YulIdentifier","src":"16280:3:20"},"nativeSrc":"16280:64:20","nodeType":"YulFunctionCall","src":"16280:64:20"},"variableNames":[{"name":"result","nativeSrc":"16270:6:20","nodeType":"YulIdentifier","src":"16270:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"16232:24:20","valueSize":1},{"declaration":8648,"isOffset":false,"isSlot":false,"src":"16203:2:20","valueSize":1},{"declaration":8648,"isOffset":false,"isSlot":false,"src":"16306:2:20","valueSize":1},{"declaration":8648,"isOffset":false,"isSlot":false,"src":"16314:2:20","valueSize":1},{"declaration":8651,"isOffset":false,"isSlot":false,"src":"16270:6:20","valueSize":1}],"id":8653,"nodeType":"InlineAssembly","src":"16167:187:20"}]},"documentation":{"id":8646,"nodeType":"StructuredDocumentation","src":"15908:124:20","text":"@dev Returns the owner of token `id`.\n Returns the zero address instead of reverting if the token does not exist."},"id":8655,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"16046:8:20","nodeType":"FunctionDefinition","parameters":{"id":8649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8648,"mutability":"mutable","name":"id","nameLocation":"16063:2:20","nodeType":"VariableDeclaration","scope":8655,"src":"16055:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8647,"name":"uint256","nodeType":"ElementaryTypeName","src":"16055:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16054:12:20"},"returnParameters":{"id":8652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8651,"mutability":"mutable","name":"result","nameLocation":"16106:6:20","nodeType":"VariableDeclaration","scope":8655,"src":"16098:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8650,"name":"address","nodeType":"ElementaryTypeName","src":"16098:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16097:16:20"},"scope":9111,"src":"16037:323:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8664,"nodeType":"Block","src":"17090:222:20","statements":[{"AST":{"nativeSrc":"17152:154:20","nodeType":"YulBlock","src":"17152:154:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17173:4:20","nodeType":"YulLiteral","src":"17173:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"17179:24:20","nodeType":"YulIdentifier","src":"17179:24:20"}],"functionName":{"name":"mstore","nativeSrc":"17166:6:20","nodeType":"YulIdentifier","src":"17166:6:20"},"nativeSrc":"17166:38:20","nodeType":"YulFunctionCall","src":"17166:38:20"},"nativeSrc":"17166:38:20","nodeType":"YulExpressionStatement","src":"17166:38:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17224:4:20","nodeType":"YulLiteral","src":"17224:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"17230:5:20","nodeType":"YulIdentifier","src":"17230:5:20"}],"functionName":{"name":"mstore","nativeSrc":"17217:6:20","nodeType":"YulIdentifier","src":"17217:6:20"},"nativeSrc":"17217:19:20","nodeType":"YulFunctionCall","src":"17217:19:20"},"nativeSrc":"17217:19:20","nodeType":"YulExpressionStatement","src":"17217:19:20"},{"nativeSrc":"17249:47:20","nodeType":"YulAssignment","src":"17249:47:20","value":{"arguments":[{"kind":"number","nativeSrc":"17263:2:20","nodeType":"YulLiteral","src":"17263:2:20","type":"","value":"32"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17283:4:20","nodeType":"YulLiteral","src":"17283:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"17289:4:20","nodeType":"YulLiteral","src":"17289:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"17273:9:20","nodeType":"YulIdentifier","src":"17273:9:20"},"nativeSrc":"17273:21:20","nodeType":"YulFunctionCall","src":"17273:21:20"}],"functionName":{"name":"sload","nativeSrc":"17267:5:20","nodeType":"YulIdentifier","src":"17267:5:20"},"nativeSrc":"17267:28:20","nodeType":"YulFunctionCall","src":"17267:28:20"}],"functionName":{"name":"shr","nativeSrc":"17259:3:20","nodeType":"YulIdentifier","src":"17259:3:20"},"nativeSrc":"17259:37:20","nodeType":"YulFunctionCall","src":"17259:37:20"},"variableNames":[{"name":"result","nativeSrc":"17249:6:20","nodeType":"YulIdentifier","src":"17249:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"17179:24:20","valueSize":1},{"declaration":8658,"isOffset":false,"isSlot":false,"src":"17230:5:20","valueSize":1},{"declaration":8661,"isOffset":false,"isSlot":false,"src":"17249:6:20","valueSize":1}],"id":8663,"nodeType":"InlineAssembly","src":"17143:163:20"}]},"documentation":{"id":8656,"nodeType":"StructuredDocumentation","src":"16773:233:20","text":"@dev Returns the auxiliary data for `owner`.\n Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n Auxiliary data can be set for any address, even if it does not have any tokens."},"id":8665,"implemented":true,"kind":"function","modifiers":[],"name":"_getAux","nameLocation":"17020:7:20","nodeType":"FunctionDefinition","parameters":{"id":8659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8658,"mutability":"mutable","name":"owner","nameLocation":"17036:5:20","nodeType":"VariableDeclaration","scope":8665,"src":"17028:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8657,"name":"address","nodeType":"ElementaryTypeName","src":"17028:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17027:15:20"},"returnParameters":{"id":8662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8661,"mutability":"mutable","name":"result","nameLocation":"17082:6:20","nodeType":"VariableDeclaration","scope":8665,"src":"17074:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8660,"name":"uint224","nodeType":"ElementaryTypeName","src":"17074:7:20","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"17073:16:20"},"scope":9111,"src":"17011:301:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8674,"nodeType":"Block","src":"17627:343:20","statements":[{"AST":{"nativeSrc":"17689:275:20","nodeType":"YulBlock","src":"17689:275:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17710:4:20","nodeType":"YulLiteral","src":"17710:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"17716:24:20","nodeType":"YulIdentifier","src":"17716:24:20"}],"functionName":{"name":"mstore","nativeSrc":"17703:6:20","nodeType":"YulIdentifier","src":"17703:6:20"},"nativeSrc":"17703:38:20","nodeType":"YulFunctionCall","src":"17703:38:20"},"nativeSrc":"17703:38:20","nodeType":"YulExpressionStatement","src":"17703:38:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17761:4:20","nodeType":"YulLiteral","src":"17761:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"17767:5:20","nodeType":"YulIdentifier","src":"17767:5:20"}],"functionName":{"name":"mstore","nativeSrc":"17754:6:20","nodeType":"YulIdentifier","src":"17754:6:20"},"nativeSrc":"17754:19:20","nodeType":"YulFunctionCall","src":"17754:19:20"},"nativeSrc":"17754:19:20","nodeType":"YulExpressionStatement","src":"17754:19:20"},{"nativeSrc":"17786:40:20","nodeType":"YulVariableDeclaration","src":"17786:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"17815:4:20","nodeType":"YulLiteral","src":"17815:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"17821:4:20","nodeType":"YulLiteral","src":"17821:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"17805:9:20","nodeType":"YulIdentifier","src":"17805:9:20"},"nativeSrc":"17805:21:20","nodeType":"YulFunctionCall","src":"17805:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"17790:11:20","nodeType":"YulTypedName","src":"17790:11:20","type":""}]},{"nativeSrc":"17839:32:20","nodeType":"YulVariableDeclaration","src":"17839:32:20","value":{"arguments":[{"name":"balanceSlot","nativeSrc":"17859:11:20","nodeType":"YulIdentifier","src":"17859:11:20"}],"functionName":{"name":"sload","nativeSrc":"17853:5:20","nodeType":"YulIdentifier","src":"17853:5:20"},"nativeSrc":"17853:18:20","nodeType":"YulFunctionCall","src":"17853:18:20"},"variables":[{"name":"packed","nativeSrc":"17843:6:20","nodeType":"YulTypedName","src":"17843:6:20","type":""}]},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"17891:11:20","nodeType":"YulIdentifier","src":"17891:11:20"},{"arguments":[{"name":"packed","nativeSrc":"17908:6:20","nodeType":"YulIdentifier","src":"17908:6:20"},{"arguments":[{"kind":"number","nativeSrc":"17920:2:20","nodeType":"YulLiteral","src":"17920:2:20","type":"","value":"32"},{"arguments":[{"name":"value","nativeSrc":"17928:5:20","nodeType":"YulIdentifier","src":"17928:5:20"},{"arguments":[{"kind":"number","nativeSrc":"17939:2:20","nodeType":"YulLiteral","src":"17939:2:20","type":"","value":"32"},{"name":"packed","nativeSrc":"17943:6:20","nodeType":"YulIdentifier","src":"17943:6:20"}],"functionName":{"name":"shr","nativeSrc":"17935:3:20","nodeType":"YulIdentifier","src":"17935:3:20"},"nativeSrc":"17935:15:20","nodeType":"YulFunctionCall","src":"17935:15:20"}],"functionName":{"name":"xor","nativeSrc":"17924:3:20","nodeType":"YulIdentifier","src":"17924:3:20"},"nativeSrc":"17924:27:20","nodeType":"YulFunctionCall","src":"17924:27:20"}],"functionName":{"name":"shl","nativeSrc":"17916:3:20","nodeType":"YulIdentifier","src":"17916:3:20"},"nativeSrc":"17916:36:20","nodeType":"YulFunctionCall","src":"17916:36:20"}],"functionName":{"name":"xor","nativeSrc":"17904:3:20","nodeType":"YulIdentifier","src":"17904:3:20"},"nativeSrc":"17904:49:20","nodeType":"YulFunctionCall","src":"17904:49:20"}],"functionName":{"name":"sstore","nativeSrc":"17884:6:20","nodeType":"YulIdentifier","src":"17884:6:20"},"nativeSrc":"17884:70:20","nodeType":"YulFunctionCall","src":"17884:70:20"},"nativeSrc":"17884:70:20","nodeType":"YulExpressionStatement","src":"17884:70:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"17716:24:20","valueSize":1},{"declaration":8668,"isOffset":false,"isSlot":false,"src":"17767:5:20","valueSize":1},{"declaration":8670,"isOffset":false,"isSlot":false,"src":"17928:5:20","valueSize":1}],"id":8673,"nodeType":"InlineAssembly","src":"17680:284:20"}]},"documentation":{"id":8666,"nodeType":"StructuredDocumentation","src":"17318:240:20","text":"@dev Set the auxiliary data for `owner` to `value`.\n Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n Auxiliary data can be set for any address, even if it does not have any tokens."},"id":8675,"implemented":true,"kind":"function","modifiers":[],"name":"_setAux","nameLocation":"17572:7:20","nodeType":"FunctionDefinition","parameters":{"id":8671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"mutability":"mutable","name":"owner","nameLocation":"17588:5:20","nodeType":"VariableDeclaration","scope":8675,"src":"17580:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8667,"name":"address","nodeType":"ElementaryTypeName","src":"17580:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8670,"mutability":"mutable","name":"value","nameLocation":"17603:5:20","nodeType":"VariableDeclaration","scope":8675,"src":"17595:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8669,"name":"uint224","nodeType":"ElementaryTypeName","src":"17595:7:20","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"17579:30:20"},"returnParameters":{"id":8672,"nodeType":"ParameterList","parameters":[],"src":"17627:0:20"},"scope":9111,"src":"17563:407:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8684,"nodeType":"Block","src":"18247:238:20","statements":[{"AST":{"nativeSrc":"18309:170:20","nodeType":"YulBlock","src":"18309:170:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18330:4:20","nodeType":"YulLiteral","src":"18330:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"18336:2:20","nodeType":"YulIdentifier","src":"18336:2:20"}],"functionName":{"name":"mstore","nativeSrc":"18323:6:20","nodeType":"YulIdentifier","src":"18323:6:20"},"nativeSrc":"18323:16:20","nodeType":"YulFunctionCall","src":"18323:16:20"},"nativeSrc":"18323:16:20","nodeType":"YulExpressionStatement","src":"18323:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18359:4:20","nodeType":"YulLiteral","src":"18359:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"18365:24:20","nodeType":"YulIdentifier","src":"18365:24:20"}],"functionName":{"name":"mstore","nativeSrc":"18352:6:20","nodeType":"YulIdentifier","src":"18352:6:20"},"nativeSrc":"18352:38:20","nodeType":"YulFunctionCall","src":"18352:38:20"},"nativeSrc":"18352:38:20","nodeType":"YulExpressionStatement","src":"18352:38:20"},{"nativeSrc":"18403:66:20","nodeType":"YulAssignment","src":"18403:66:20","value":{"arguments":[{"kind":"number","nativeSrc":"18417:3:20","nodeType":"YulLiteral","src":"18417:3:20","type":"","value":"160"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"18432:2:20","nodeType":"YulIdentifier","src":"18432:2:20"},{"arguments":[{"name":"id","nativeSrc":"18440:2:20","nodeType":"YulIdentifier","src":"18440:2:20"},{"arguments":[{"kind":"number","nativeSrc":"18454:4:20","nodeType":"YulLiteral","src":"18454:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18460:4:20","nodeType":"YulLiteral","src":"18460:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18444:9:20","nodeType":"YulIdentifier","src":"18444:9:20"},"nativeSrc":"18444:21:20","nodeType":"YulFunctionCall","src":"18444:21:20"}],"functionName":{"name":"add","nativeSrc":"18436:3:20","nodeType":"YulIdentifier","src":"18436:3:20"},"nativeSrc":"18436:30:20","nodeType":"YulFunctionCall","src":"18436:30:20"}],"functionName":{"name":"add","nativeSrc":"18428:3:20","nodeType":"YulIdentifier","src":"18428:3:20"},"nativeSrc":"18428:39:20","nodeType":"YulFunctionCall","src":"18428:39:20"}],"functionName":{"name":"sload","nativeSrc":"18422:5:20","nodeType":"YulIdentifier","src":"18422:5:20"},"nativeSrc":"18422:46:20","nodeType":"YulFunctionCall","src":"18422:46:20"}],"functionName":{"name":"shr","nativeSrc":"18413:3:20","nodeType":"YulIdentifier","src":"18413:3:20"},"nativeSrc":"18413:56:20","nodeType":"YulFunctionCall","src":"18413:56:20"},"variableNames":[{"name":"result","nativeSrc":"18403:6:20","nodeType":"YulIdentifier","src":"18403:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"18365:24:20","valueSize":1},{"declaration":8678,"isOffset":false,"isSlot":false,"src":"18336:2:20","valueSize":1},{"declaration":8678,"isOffset":false,"isSlot":false,"src":"18432:2:20","valueSize":1},{"declaration":8678,"isOffset":false,"isSlot":false,"src":"18440:2:20","valueSize":1},{"declaration":8681,"isOffset":false,"isSlot":false,"src":"18403:6:20","valueSize":1}],"id":8683,"nodeType":"InlineAssembly","src":"18300:179:20"}]},"documentation":{"id":8676,"nodeType":"StructuredDocumentation","src":"17976:185:20","text":"@dev Returns the extra data for token `id`.\n Minting, transferring, burning a token will not change the extra data.\n The extra data can be set on a non-existent token."},"id":8685,"implemented":true,"kind":"function","modifiers":[],"name":"_getExtraData","nameLocation":"18175:13:20","nodeType":"FunctionDefinition","parameters":{"id":8679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8678,"mutability":"mutable","name":"id","nameLocation":"18197:2:20","nodeType":"VariableDeclaration","scope":8685,"src":"18189:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8677,"name":"uint256","nodeType":"ElementaryTypeName","src":"18189:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18188:12:20"},"returnParameters":{"id":8682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8681,"mutability":"mutable","name":"result","nameLocation":"18239:6:20","nodeType":"VariableDeclaration","scope":8685,"src":"18232:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8680,"name":"uint96","nodeType":"ElementaryTypeName","src":"18232:6:20","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"18231:15:20"},"scope":9111,"src":"18166:319:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8694,"nodeType":"Block","src":"18755:366:20","statements":[{"AST":{"nativeSrc":"18817:298:20","nodeType":"YulBlock","src":"18817:298:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18838:4:20","nodeType":"YulLiteral","src":"18838:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"18844:2:20","nodeType":"YulIdentifier","src":"18844:2:20"}],"functionName":{"name":"mstore","nativeSrc":"18831:6:20","nodeType":"YulIdentifier","src":"18831:6:20"},"nativeSrc":"18831:16:20","nodeType":"YulFunctionCall","src":"18831:16:20"},"nativeSrc":"18831:16:20","nodeType":"YulExpressionStatement","src":"18831:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18867:4:20","nodeType":"YulLiteral","src":"18867:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"18873:24:20","nodeType":"YulIdentifier","src":"18873:24:20"}],"functionName":{"name":"mstore","nativeSrc":"18860:6:20","nodeType":"YulIdentifier","src":"18860:6:20"},"nativeSrc":"18860:38:20","nodeType":"YulFunctionCall","src":"18860:38:20"},"nativeSrc":"18860:38:20","nodeType":"YulExpressionStatement","src":"18860:38:20"},{"nativeSrc":"18911:60:20","nodeType":"YulVariableDeclaration","src":"18911:60:20","value":{"arguments":[{"name":"id","nativeSrc":"18936:2:20","nodeType":"YulIdentifier","src":"18936:2:20"},{"arguments":[{"name":"id","nativeSrc":"18944:2:20","nodeType":"YulIdentifier","src":"18944:2:20"},{"arguments":[{"kind":"number","nativeSrc":"18958:4:20","nodeType":"YulLiteral","src":"18958:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18964:4:20","nodeType":"YulLiteral","src":"18964:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18948:9:20","nodeType":"YulIdentifier","src":"18948:9:20"},"nativeSrc":"18948:21:20","nodeType":"YulFunctionCall","src":"18948:21:20"}],"functionName":{"name":"add","nativeSrc":"18940:3:20","nodeType":"YulIdentifier","src":"18940:3:20"},"nativeSrc":"18940:30:20","nodeType":"YulFunctionCall","src":"18940:30:20"}],"functionName":{"name":"add","nativeSrc":"18932:3:20","nodeType":"YulIdentifier","src":"18932:3:20"},"nativeSrc":"18932:39:20","nodeType":"YulFunctionCall","src":"18932:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"18915:13:20","nodeType":"YulTypedName","src":"18915:13:20","type":""}]},{"nativeSrc":"18984:34:20","nodeType":"YulVariableDeclaration","src":"18984:34:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"19004:13:20","nodeType":"YulIdentifier","src":"19004:13:20"}],"functionName":{"name":"sload","nativeSrc":"18998:5:20","nodeType":"YulIdentifier","src":"18998:5:20"},"nativeSrc":"18998:20:20","nodeType":"YulFunctionCall","src":"18998:20:20"},"variables":[{"name":"packed","nativeSrc":"18988:6:20","nodeType":"YulTypedName","src":"18988:6:20","type":""}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"19038:13:20","nodeType":"YulIdentifier","src":"19038:13:20"},{"arguments":[{"name":"packed","nativeSrc":"19057:6:20","nodeType":"YulIdentifier","src":"19057:6:20"},{"arguments":[{"kind":"number","nativeSrc":"19069:3:20","nodeType":"YulLiteral","src":"19069:3:20","type":"","value":"160"},{"arguments":[{"name":"value","nativeSrc":"19078:5:20","nodeType":"YulIdentifier","src":"19078:5:20"},{"arguments":[{"kind":"number","nativeSrc":"19089:3:20","nodeType":"YulLiteral","src":"19089:3:20","type":"","value":"160"},{"name":"packed","nativeSrc":"19094:6:20","nodeType":"YulIdentifier","src":"19094:6:20"}],"functionName":{"name":"shr","nativeSrc":"19085:3:20","nodeType":"YulIdentifier","src":"19085:3:20"},"nativeSrc":"19085:16:20","nodeType":"YulFunctionCall","src":"19085:16:20"}],"functionName":{"name":"xor","nativeSrc":"19074:3:20","nodeType":"YulIdentifier","src":"19074:3:20"},"nativeSrc":"19074:28:20","nodeType":"YulFunctionCall","src":"19074:28:20"}],"functionName":{"name":"shl","nativeSrc":"19065:3:20","nodeType":"YulIdentifier","src":"19065:3:20"},"nativeSrc":"19065:38:20","nodeType":"YulFunctionCall","src":"19065:38:20"}],"functionName":{"name":"xor","nativeSrc":"19053:3:20","nodeType":"YulIdentifier","src":"19053:3:20"},"nativeSrc":"19053:51:20","nodeType":"YulFunctionCall","src":"19053:51:20"}],"functionName":{"name":"sstore","nativeSrc":"19031:6:20","nodeType":"YulIdentifier","src":"19031:6:20"},"nativeSrc":"19031:74:20","nodeType":"YulFunctionCall","src":"19031:74:20"},"nativeSrc":"19031:74:20","nodeType":"YulExpressionStatement","src":"19031:74:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"18873:24:20","valueSize":1},{"declaration":8688,"isOffset":false,"isSlot":false,"src":"18844:2:20","valueSize":1},{"declaration":8688,"isOffset":false,"isSlot":false,"src":"18936:2:20","valueSize":1},{"declaration":8688,"isOffset":false,"isSlot":false,"src":"18944:2:20","valueSize":1},{"declaration":8690,"isOffset":false,"isSlot":false,"src":"19078:5:20","valueSize":1}],"id":8693,"nodeType":"InlineAssembly","src":"18808:307:20"}]},"documentation":{"id":8686,"nodeType":"StructuredDocumentation","src":"18491:193:20","text":"@dev Sets the extra data for token `id` to `value`.\n Minting, transferring, burning a token will not change the extra data.\n The extra data can be set on a non-existent token."},"id":8695,"implemented":true,"kind":"function","modifiers":[],"name":"_setExtraData","nameLocation":"18698:13:20","nodeType":"FunctionDefinition","parameters":{"id":8691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8688,"mutability":"mutable","name":"id","nameLocation":"18720:2:20","nodeType":"VariableDeclaration","scope":8695,"src":"18712:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8687,"name":"uint256","nodeType":"ElementaryTypeName","src":"18712:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8690,"mutability":"mutable","name":"value","nameLocation":"18731:5:20","nodeType":"VariableDeclaration","scope":8695,"src":"18724:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8689,"name":"uint96","nodeType":"ElementaryTypeName","src":"18724:6:20","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"18711:26:20"},"returnParameters":{"id":8692,"nodeType":"ParameterList","parameters":[],"src":"18755:0:20"},"scope":9111,"src":"18689:432:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8722,"nodeType":"Block","src":"19665:1597:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19704:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19696:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8704,"name":"address","nodeType":"ElementaryTypeName","src":"19696:7:20","typeDescriptions":{}}},"id":8707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19696:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8708,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"19708:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8709,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"19712:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8703,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"19675:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19675:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8711,"nodeType":"ExpressionStatement","src":"19675:40:20"},{"AST":{"nativeSrc":"19777:1430:20","nodeType":"YulBlock","src":"19777:1430:20","statements":[{"nativeSrc":"19831:26:20","nodeType":"YulAssignment","src":"19831:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"19841:2:20","nodeType":"YulLiteral","src":"19841:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"19849:2:20","nodeType":"YulLiteral","src":"19849:2:20","type":"","value":"96"},{"name":"to","nativeSrc":"19853:2:20","nodeType":"YulIdentifier","src":"19853:2:20"}],"functionName":{"name":"shl","nativeSrc":"19845:3:20","nodeType":"YulIdentifier","src":"19845:3:20"},"nativeSrc":"19845:11:20","nodeType":"YulFunctionCall","src":"19845:11:20"}],"functionName":{"name":"shr","nativeSrc":"19837:3:20","nodeType":"YulIdentifier","src":"19837:3:20"},"nativeSrc":"19837:20:20","nodeType":"YulFunctionCall","src":"19837:20:20"},"variableNames":[{"name":"to","nativeSrc":"19831:2:20","nodeType":"YulIdentifier","src":"19831:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19917:4:20","nodeType":"YulLiteral","src":"19917:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"19923:2:20","nodeType":"YulIdentifier","src":"19923:2:20"}],"functionName":{"name":"mstore","nativeSrc":"19910:6:20","nodeType":"YulIdentifier","src":"19910:6:20"},"nativeSrc":"19910:16:20","nodeType":"YulFunctionCall","src":"19910:16:20"},"nativeSrc":"19910:16:20","nodeType":"YulExpressionStatement","src":"19910:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19946:4:20","nodeType":"YulLiteral","src":"19946:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"19952:24:20","nodeType":"YulIdentifier","src":"19952:24:20"}],"functionName":{"name":"mstore","nativeSrc":"19939:6:20","nodeType":"YulIdentifier","src":"19939:6:20"},"nativeSrc":"19939:38:20","nodeType":"YulFunctionCall","src":"19939:38:20"},"nativeSrc":"19939:38:20","nodeType":"YulExpressionStatement","src":"19939:38:20"},{"nativeSrc":"19990:60:20","nodeType":"YulVariableDeclaration","src":"19990:60:20","value":{"arguments":[{"name":"id","nativeSrc":"20015:2:20","nodeType":"YulIdentifier","src":"20015:2:20"},{"arguments":[{"name":"id","nativeSrc":"20023:2:20","nodeType":"YulIdentifier","src":"20023:2:20"},{"arguments":[{"kind":"number","nativeSrc":"20037:4:20","nodeType":"YulLiteral","src":"20037:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20043:4:20","nodeType":"YulLiteral","src":"20043:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"20027:9:20","nodeType":"YulIdentifier","src":"20027:9:20"},"nativeSrc":"20027:21:20","nodeType":"YulFunctionCall","src":"20027:21:20"}],"functionName":{"name":"add","nativeSrc":"20019:3:20","nodeType":"YulIdentifier","src":"20019:3:20"},"nativeSrc":"20019:30:20","nodeType":"YulFunctionCall","src":"20019:30:20"}],"functionName":{"name":"add","nativeSrc":"20011:3:20","nodeType":"YulIdentifier","src":"20011:3:20"},"nativeSrc":"20011:39:20","nodeType":"YulFunctionCall","src":"20011:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"19994:13:20","nodeType":"YulTypedName","src":"19994:13:20","type":""}]},{"nativeSrc":"20063:43:20","nodeType":"YulVariableDeclaration","src":"20063:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"20092:13:20","nodeType":"YulIdentifier","src":"20092:13:20"}],"functionName":{"name":"sload","nativeSrc":"20086:5:20","nodeType":"YulIdentifier","src":"20086:5:20"},"nativeSrc":"20086:20:20","nodeType":"YulFunctionCall","src":"20086:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"20067:15:20","nodeType":"YulTypedName","src":"20067:15:20","type":""}]},{"body":{"nativeSrc":"20198:118:20","nodeType":"YulBlock","src":"20198:118:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20223:4:20","nodeType":"YulLiteral","src":"20223:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20229:10:20","nodeType":"YulLiteral","src":"20229:10:20","type":"","value":"0xc991cbb1"}],"functionName":{"name":"mstore","nativeSrc":"20216:6:20","nodeType":"YulIdentifier","src":"20216:6:20"},"nativeSrc":"20216:24:20","nodeType":"YulFunctionCall","src":"20216:24:20"},"nativeSrc":"20216:24:20","nodeType":"YulExpressionStatement","src":"20216:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20291:4:20","nodeType":"YulLiteral","src":"20291:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"20297:4:20","nodeType":"YulLiteral","src":"20297:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"20284:6:20","nodeType":"YulIdentifier","src":"20284:6:20"},"nativeSrc":"20284:18:20","nodeType":"YulFunctionCall","src":"20284:18:20"},"nativeSrc":"20284:18:20","nodeType":"YulExpressionStatement","src":"20284:18:20"}]},"condition":{"arguments":[{"kind":"number","nativeSrc":"20177:2:20","nodeType":"YulLiteral","src":"20177:2:20","type":"","value":"96"},{"name":"ownershipPacked","nativeSrc":"20181:15:20","nodeType":"YulIdentifier","src":"20181:15:20"}],"functionName":{"name":"shl","nativeSrc":"20173:3:20","nodeType":"YulIdentifier","src":"20173:3:20"},"nativeSrc":"20173:24:20","nodeType":"YulFunctionCall","src":"20173:24:20"},"nativeSrc":"20170:146:20","nodeType":"YulIf","src":"20170:146:20"},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"20374:13:20","nodeType":"YulIdentifier","src":"20374:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"20392:15:20","nodeType":"YulIdentifier","src":"20392:15:20"},{"name":"to","nativeSrc":"20409:2:20","nodeType":"YulIdentifier","src":"20409:2:20"}],"functionName":{"name":"or","nativeSrc":"20389:2:20","nodeType":"YulIdentifier","src":"20389:2:20"},"nativeSrc":"20389:23:20","nodeType":"YulFunctionCall","src":"20389:23:20"}],"functionName":{"name":"sstore","nativeSrc":"20367:6:20","nodeType":"YulIdentifier","src":"20367:6:20"},"nativeSrc":"20367:46:20","nodeType":"YulFunctionCall","src":"20367:46:20"},"nativeSrc":"20367:46:20","nodeType":"YulExpressionStatement","src":"20367:46:20"},{"nativeSrc":"20477:605:20","nodeType":"YulBlock","src":"20477:605:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20502:4:20","nodeType":"YulLiteral","src":"20502:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"20508:2:20","nodeType":"YulIdentifier","src":"20508:2:20"}],"functionName":{"name":"mstore","nativeSrc":"20495:6:20","nodeType":"YulIdentifier","src":"20495:6:20"},"nativeSrc":"20495:16:20","nodeType":"YulFunctionCall","src":"20495:16:20"},"nativeSrc":"20495:16:20","nodeType":"YulExpressionStatement","src":"20495:16:20"},{"nativeSrc":"20528:40:20","nodeType":"YulVariableDeclaration","src":"20528:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"20557:4:20","nodeType":"YulLiteral","src":"20557:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"20563:4:20","nodeType":"YulLiteral","src":"20563:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"20547:9:20","nodeType":"YulIdentifier","src":"20547:9:20"},"nativeSrc":"20547:21:20","nodeType":"YulFunctionCall","src":"20547:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"20532:11:20","nodeType":"YulTypedName","src":"20532:11:20","type":""}]},{"nativeSrc":"20585:51:20","nodeType":"YulVariableDeclaration","src":"20585:51:20","value":{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"20620:11:20","nodeType":"YulIdentifier","src":"20620:11:20"}],"functionName":{"name":"sload","nativeSrc":"20614:5:20","nodeType":"YulIdentifier","src":"20614:5:20"},"nativeSrc":"20614:18:20","nodeType":"YulFunctionCall","src":"20614:18:20"},{"kind":"number","nativeSrc":"20634:1:20","nodeType":"YulLiteral","src":"20634:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20610:3:20","nodeType":"YulIdentifier","src":"20610:3:20"},"nativeSrc":"20610:26:20","nodeType":"YulFunctionCall","src":"20610:26:20"},"variables":[{"name":"balanceSlotPacked","nativeSrc":"20589:17:20","nodeType":"YulTypedName","src":"20589:17:20","type":""}]},{"body":{"nativeSrc":"20810:203:20","nodeType":"YulBlock","src":"20810:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20921:1:20","nodeType":"YulLiteral","src":"20921:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"20931:2:20","nodeType":"YulIdentifier","src":"20931:2:20"}],"functionName":{"name":"iszero","nativeSrc":"20924:6:20","nodeType":"YulIdentifier","src":"20924:6:20"},"nativeSrc":"20924:10:20","nodeType":"YulFunctionCall","src":"20924:10:20"}],"functionName":{"name":"shl","nativeSrc":"20917:3:20","nodeType":"YulIdentifier","src":"20917:3:20"},"nativeSrc":"20917:18:20","nodeType":"YulFunctionCall","src":"20917:18:20"},{"kind":"number","nativeSrc":"20937:18:20","nodeType":"YulLiteral","src":"20937:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"20910:6:20","nodeType":"YulIdentifier","src":"20910:6:20"},"nativeSrc":"20910:46:20","nodeType":"YulFunctionCall","src":"20910:46:20"},"nativeSrc":"20910:46:20","nodeType":"YulExpressionStatement","src":"20910:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20984:4:20","nodeType":"YulLiteral","src":"20984:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"20990:4:20","nodeType":"YulLiteral","src":"20990:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"20977:6:20","nodeType":"YulIdentifier","src":"20977:6:20"},"nativeSrc":"20977:18:20","nodeType":"YulFunctionCall","src":"20977:18:20"},"nativeSrc":"20977:18:20","nodeType":"YulExpressionStatement","src":"20977:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"20759:2:20","nodeType":"YulIdentifier","src":"20759:2:20"},{"arguments":[{"name":"balanceSlotPacked","nativeSrc":"20767:17:20","nodeType":"YulIdentifier","src":"20767:17:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"20786:20:20","nodeType":"YulIdentifier","src":"20786:20:20"}],"functionName":{"name":"and","nativeSrc":"20763:3:20","nodeType":"YulIdentifier","src":"20763:3:20"},"nativeSrc":"20763:44:20","nodeType":"YulFunctionCall","src":"20763:44:20"}],"functionName":{"name":"mul","nativeSrc":"20755:3:20","nodeType":"YulIdentifier","src":"20755:3:20"},"nativeSrc":"20755:53:20","nodeType":"YulFunctionCall","src":"20755:53:20"}],"functionName":{"name":"iszero","nativeSrc":"20748:6:20","nodeType":"YulIdentifier","src":"20748:6:20"},"nativeSrc":"20748:61:20","nodeType":"YulFunctionCall","src":"20748:61:20"},"nativeSrc":"20745:268:20","nodeType":"YulIf","src":"20745:268:20"},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"21037:11:20","nodeType":"YulIdentifier","src":"21037:11:20"},{"name":"balanceSlotPacked","nativeSrc":"21050:17:20","nodeType":"YulIdentifier","src":"21050:17:20"}],"functionName":{"name":"sstore","nativeSrc":"21030:6:20","nodeType":"YulIdentifier","src":"21030:6:20"},"nativeSrc":"21030:38:20","nodeType":"YulFunctionCall","src":"21030:38:20"},"nativeSrc":"21030:38:20","nodeType":"YulExpressionStatement","src":"21030:38:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"21142:8:20","nodeType":"YulIdentifier","src":"21142:8:20"},"nativeSrc":"21142:10:20","nodeType":"YulFunctionCall","src":"21142:10:20"},{"kind":"number","nativeSrc":"21154:4:20","nodeType":"YulLiteral","src":"21154:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"21160:25:20","nodeType":"YulIdentifier","src":"21160:25:20"},{"kind":"number","nativeSrc":"21187:1:20","nodeType":"YulLiteral","src":"21187:1:20","type":"","value":"0"},{"name":"to","nativeSrc":"21190:2:20","nodeType":"YulIdentifier","src":"21190:2:20"},{"name":"id","nativeSrc":"21194:2:20","nodeType":"YulIdentifier","src":"21194:2:20"}],"functionName":{"name":"log4","nativeSrc":"21137:4:20","nodeType":"YulIdentifier","src":"21137:4:20"},"nativeSrc":"21137:60:20","nodeType":"YulFunctionCall","src":"21137:60:20"},"nativeSrc":"21137:60:20","nodeType":"YulExpressionStatement","src":"21137:60:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"19952:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"20786:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"21160:25:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"19923:2:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"20015:2:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"20023:2:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"21194:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"19831:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"19853:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20409:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20508:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20759:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20931:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"21190:2:20","valueSize":1}],"id":8712,"nodeType":"InlineAssembly","src":"19768:1439:20"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21244:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21236:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8714,"name":"address","nodeType":"ElementaryTypeName","src":"21236:7:20","typeDescriptions":{}}},"id":8717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21236:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8718,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"21248:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8719,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"21252:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8713,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"21216:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21216:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8721,"nodeType":"ExpressionStatement","src":"21216:39:20"}]},"documentation":{"id":8696,"nodeType":"StructuredDocumentation","src":"19410:194:20","text":"@dev Mints token `id` to `to`.\n Requirements:\n - Token `id` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":8723,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"19618:5:20","nodeType":"FunctionDefinition","parameters":{"id":8701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8698,"mutability":"mutable","name":"to","nameLocation":"19632:2:20","nodeType":"VariableDeclaration","scope":8723,"src":"19624:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8697,"name":"address","nodeType":"ElementaryTypeName","src":"19624:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8700,"mutability":"mutable","name":"id","nameLocation":"19644:2:20","nodeType":"VariableDeclaration","scope":8723,"src":"19636:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8699,"name":"uint256","nodeType":"ElementaryTypeName","src":"19636:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19623:24:20"},"returnParameters":{"id":8702,"nodeType":"ParameterList","parameters":[],"src":"19665:0:20"},"scope":9111,"src":"19609:1653:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8752,"nodeType":"Block","src":"21667:1259:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21706:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21698:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8734,"name":"address","nodeType":"ElementaryTypeName","src":"21698:7:20","typeDescriptions":{}}},"id":8737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21698:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8738,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8726,"src":"21710:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8739,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8728,"src":"21714:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8733,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"21677:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21677:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8741,"nodeType":"ExpressionStatement","src":"21677:40:20"},{"AST":{"nativeSrc":"21779:1092:20","nodeType":"YulBlock","src":"21779:1092:20","statements":[{"nativeSrc":"21833:26:20","nodeType":"YulAssignment","src":"21833:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"21843:2:20","nodeType":"YulLiteral","src":"21843:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"21851:2:20","nodeType":"YulLiteral","src":"21851:2:20","type":"","value":"96"},{"name":"to","nativeSrc":"21855:2:20","nodeType":"YulIdentifier","src":"21855:2:20"}],"functionName":{"name":"shl","nativeSrc":"21847:3:20","nodeType":"YulIdentifier","src":"21847:3:20"},"nativeSrc":"21847:11:20","nodeType":"YulFunctionCall","src":"21847:11:20"}],"functionName":{"name":"shr","nativeSrc":"21839:3:20","nodeType":"YulIdentifier","src":"21839:3:20"},"nativeSrc":"21839:20:20","nodeType":"YulFunctionCall","src":"21839:20:20"},"variableNames":[{"name":"to","nativeSrc":"21833:2:20","nodeType":"YulIdentifier","src":"21833:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21932:4:20","nodeType":"YulLiteral","src":"21932:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"21938:2:20","nodeType":"YulIdentifier","src":"21938:2:20"}],"functionName":{"name":"mstore","nativeSrc":"21925:6:20","nodeType":"YulIdentifier","src":"21925:6:20"},"nativeSrc":"21925:16:20","nodeType":"YulFunctionCall","src":"21925:16:20"},"nativeSrc":"21925:16:20","nodeType":"YulExpressionStatement","src":"21925:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21961:4:20","nodeType":"YulLiteral","src":"21961:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"21967:24:20","nodeType":"YulIdentifier","src":"21967:24:20"}],"functionName":{"name":"mstore","nativeSrc":"21954:6:20","nodeType":"YulIdentifier","src":"21954:6:20"},"nativeSrc":"21954:38:20","nodeType":"YulFunctionCall","src":"21954:38:20"},"nativeSrc":"21954:38:20","nodeType":"YulExpressionStatement","src":"21954:38:20"},{"expression":{"arguments":[{"arguments":[{"name":"id","nativeSrc":"22016:2:20","nodeType":"YulIdentifier","src":"22016:2:20"},{"arguments":[{"name":"id","nativeSrc":"22024:2:20","nodeType":"YulIdentifier","src":"22024:2:20"},{"arguments":[{"kind":"number","nativeSrc":"22038:4:20","nodeType":"YulLiteral","src":"22038:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22044:4:20","nodeType":"YulLiteral","src":"22044:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22028:9:20","nodeType":"YulIdentifier","src":"22028:9:20"},"nativeSrc":"22028:21:20","nodeType":"YulFunctionCall","src":"22028:21:20"}],"functionName":{"name":"add","nativeSrc":"22020:3:20","nodeType":"YulIdentifier","src":"22020:3:20"},"nativeSrc":"22020:30:20","nodeType":"YulFunctionCall","src":"22020:30:20"}],"functionName":{"name":"add","nativeSrc":"22012:3:20","nodeType":"YulIdentifier","src":"22012:3:20"},"nativeSrc":"22012:39:20","nodeType":"YulFunctionCall","src":"22012:39:20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22060:3:20","nodeType":"YulLiteral","src":"22060:3:20","type":"","value":"160"},{"name":"value","nativeSrc":"22065:5:20","nodeType":"YulIdentifier","src":"22065:5:20"}],"functionName":{"name":"shl","nativeSrc":"22056:3:20","nodeType":"YulIdentifier","src":"22056:3:20"},"nativeSrc":"22056:15:20","nodeType":"YulFunctionCall","src":"22056:15:20"},{"name":"to","nativeSrc":"22073:2:20","nodeType":"YulIdentifier","src":"22073:2:20"}],"functionName":{"name":"or","nativeSrc":"22053:2:20","nodeType":"YulIdentifier","src":"22053:2:20"},"nativeSrc":"22053:23:20","nodeType":"YulFunctionCall","src":"22053:23:20"}],"functionName":{"name":"sstore","nativeSrc":"22005:6:20","nodeType":"YulIdentifier","src":"22005:6:20"},"nativeSrc":"22005:72:20","nodeType":"YulFunctionCall","src":"22005:72:20"},"nativeSrc":"22005:72:20","nodeType":"YulExpressionStatement","src":"22005:72:20"},{"nativeSrc":"22141:605:20","nodeType":"YulBlock","src":"22141:605:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22166:4:20","nodeType":"YulLiteral","src":"22166:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"22172:2:20","nodeType":"YulIdentifier","src":"22172:2:20"}],"functionName":{"name":"mstore","nativeSrc":"22159:6:20","nodeType":"YulIdentifier","src":"22159:6:20"},"nativeSrc":"22159:16:20","nodeType":"YulFunctionCall","src":"22159:16:20"},"nativeSrc":"22159:16:20","nodeType":"YulExpressionStatement","src":"22159:16:20"},{"nativeSrc":"22192:40:20","nodeType":"YulVariableDeclaration","src":"22192:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"22221:4:20","nodeType":"YulLiteral","src":"22221:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"22227:4:20","nodeType":"YulLiteral","src":"22227:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"22211:9:20","nodeType":"YulIdentifier","src":"22211:9:20"},"nativeSrc":"22211:21:20","nodeType":"YulFunctionCall","src":"22211:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"22196:11:20","nodeType":"YulTypedName","src":"22196:11:20","type":""}]},{"nativeSrc":"22249:51:20","nodeType":"YulVariableDeclaration","src":"22249:51:20","value":{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"22284:11:20","nodeType":"YulIdentifier","src":"22284:11:20"}],"functionName":{"name":"sload","nativeSrc":"22278:5:20","nodeType":"YulIdentifier","src":"22278:5:20"},"nativeSrc":"22278:18:20","nodeType":"YulFunctionCall","src":"22278:18:20"},{"kind":"number","nativeSrc":"22298:1:20","nodeType":"YulLiteral","src":"22298:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22274:3:20","nodeType":"YulIdentifier","src":"22274:3:20"},"nativeSrc":"22274:26:20","nodeType":"YulFunctionCall","src":"22274:26:20"},"variables":[{"name":"balanceSlotPacked","nativeSrc":"22253:17:20","nodeType":"YulTypedName","src":"22253:17:20","type":""}]},{"body":{"nativeSrc":"22474:203:20","nodeType":"YulBlock","src":"22474:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22585:1:20","nodeType":"YulLiteral","src":"22585:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"22595:2:20","nodeType":"YulIdentifier","src":"22595:2:20"}],"functionName":{"name":"iszero","nativeSrc":"22588:6:20","nodeType":"YulIdentifier","src":"22588:6:20"},"nativeSrc":"22588:10:20","nodeType":"YulFunctionCall","src":"22588:10:20"}],"functionName":{"name":"shl","nativeSrc":"22581:3:20","nodeType":"YulIdentifier","src":"22581:3:20"},"nativeSrc":"22581:18:20","nodeType":"YulFunctionCall","src":"22581:18:20"},{"kind":"number","nativeSrc":"22601:18:20","nodeType":"YulLiteral","src":"22601:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"22574:6:20","nodeType":"YulIdentifier","src":"22574:6:20"},"nativeSrc":"22574:46:20","nodeType":"YulFunctionCall","src":"22574:46:20"},"nativeSrc":"22574:46:20","nodeType":"YulExpressionStatement","src":"22574:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22648:4:20","nodeType":"YulLiteral","src":"22648:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"22654:4:20","nodeType":"YulLiteral","src":"22654:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"22641:6:20","nodeType":"YulIdentifier","src":"22641:6:20"},"nativeSrc":"22641:18:20","nodeType":"YulFunctionCall","src":"22641:18:20"},"nativeSrc":"22641:18:20","nodeType":"YulExpressionStatement","src":"22641:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"22423:2:20","nodeType":"YulIdentifier","src":"22423:2:20"},{"arguments":[{"name":"balanceSlotPacked","nativeSrc":"22431:17:20","nodeType":"YulIdentifier","src":"22431:17:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"22450:20:20","nodeType":"YulIdentifier","src":"22450:20:20"}],"functionName":{"name":"and","nativeSrc":"22427:3:20","nodeType":"YulIdentifier","src":"22427:3:20"},"nativeSrc":"22427:44:20","nodeType":"YulFunctionCall","src":"22427:44:20"}],"functionName":{"name":"mul","nativeSrc":"22419:3:20","nodeType":"YulIdentifier","src":"22419:3:20"},"nativeSrc":"22419:53:20","nodeType":"YulFunctionCall","src":"22419:53:20"}],"functionName":{"name":"iszero","nativeSrc":"22412:6:20","nodeType":"YulIdentifier","src":"22412:6:20"},"nativeSrc":"22412:61:20","nodeType":"YulFunctionCall","src":"22412:61:20"},"nativeSrc":"22409:268:20","nodeType":"YulIf","src":"22409:268:20"},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"22701:11:20","nodeType":"YulIdentifier","src":"22701:11:20"},{"name":"balanceSlotPacked","nativeSrc":"22714:17:20","nodeType":"YulIdentifier","src":"22714:17:20"}],"functionName":{"name":"sstore","nativeSrc":"22694:6:20","nodeType":"YulIdentifier","src":"22694:6:20"},"nativeSrc":"22694:38:20","nodeType":"YulFunctionCall","src":"22694:38:20"},"nativeSrc":"22694:38:20","nodeType":"YulExpressionStatement","src":"22694:38:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"22806:8:20","nodeType":"YulIdentifier","src":"22806:8:20"},"nativeSrc":"22806:10:20","nodeType":"YulFunctionCall","src":"22806:10:20"},{"kind":"number","nativeSrc":"22818:4:20","nodeType":"YulLiteral","src":"22818:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"22824:25:20","nodeType":"YulIdentifier","src":"22824:25:20"},{"kind":"number","nativeSrc":"22851:1:20","nodeType":"YulLiteral","src":"22851:1:20","type":"","value":"0"},{"name":"to","nativeSrc":"22854:2:20","nodeType":"YulIdentifier","src":"22854:2:20"},{"name":"id","nativeSrc":"22858:2:20","nodeType":"YulIdentifier","src":"22858:2:20"}],"functionName":{"name":"log4","nativeSrc":"22801:4:20","nodeType":"YulIdentifier","src":"22801:4:20"},"nativeSrc":"22801:60:20","nodeType":"YulFunctionCall","src":"22801:60:20"},"nativeSrc":"22801:60:20","nodeType":"YulExpressionStatement","src":"22801:60:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"21967:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"22450:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"22824:25:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"21938:2:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"22016:2:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"22024:2:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"22858:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"21833:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"21855:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22073:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22172:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22423:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22595:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22854:2:20","valueSize":1},{"declaration":8730,"isOffset":false,"isSlot":false,"src":"22065:5:20","valueSize":1}],"id":8742,"nodeType":"InlineAssembly","src":"21770:1101:20"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22908:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22900:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8744,"name":"address","nodeType":"ElementaryTypeName","src":"22900:7:20","typeDescriptions":{}}},"id":8747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22900:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8748,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8726,"src":"22912:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8749,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8728,"src":"22916:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8743,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"22880:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22880:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8751,"nodeType":"ExpressionStatement","src":"22880:39:20"}]},"documentation":{"id":8724,"nodeType":"StructuredDocumentation","src":"21268:300:20","text":"@dev Mints token `id` to `to`, and updates the extra data for token `id` to `value`.\n Does NOT check if token `id` already exists (assumes `id` is auto-incrementing).\n Requirements:\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":8753,"implemented":true,"kind":"function","modifiers":[],"name":"_mintAndSetExtraDataUnchecked","nameLocation":"21582:29:20","nodeType":"FunctionDefinition","parameters":{"id":8731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8726,"mutability":"mutable","name":"to","nameLocation":"21620:2:20","nodeType":"VariableDeclaration","scope":8753,"src":"21612:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8725,"name":"address","nodeType":"ElementaryTypeName","src":"21612:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8728,"mutability":"mutable","name":"id","nameLocation":"21632:2:20","nodeType":"VariableDeclaration","scope":8753,"src":"21624:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8727,"name":"uint256","nodeType":"ElementaryTypeName","src":"21624:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8730,"mutability":"mutable","name":"value","nameLocation":"21643:5:20","nodeType":"VariableDeclaration","scope":8753,"src":"21636:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8729,"name":"uint96","nodeType":"ElementaryTypeName","src":"21636:6:20","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"21611:38:20"},"returnParameters":{"id":8732,"nodeType":"ParameterList","parameters":[],"src":"21667:0:20"},"scope":9111,"src":"21573:1353:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8767,"nodeType":"Block","src":"23044:38:20","statements":[{"expression":{"arguments":[{"id":8762,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"23064:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8763,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8758,"src":"23068:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23072:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":8761,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[8768,8798],"referencedDeclaration":8798,"src":"23054:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":8765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23054:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8766,"nodeType":"ExpressionStatement","src":"23054:21:20"}]},"documentation":{"id":8754,"nodeType":"StructuredDocumentation","src":"22932:47:20","text":"@dev Equivalent to `_safeMint(to, id, \"\")`."},"id":8768,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"22993:9:20","nodeType":"FunctionDefinition","parameters":{"id":8759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"to","nameLocation":"23011:2:20","nodeType":"VariableDeclaration","scope":8768,"src":"23003:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8755,"name":"address","nodeType":"ElementaryTypeName","src":"23003:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8758,"mutability":"mutable","name":"id","nameLocation":"23023:2:20","nodeType":"VariableDeclaration","scope":8768,"src":"23015:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8757,"name":"uint256","nodeType":"ElementaryTypeName","src":"23015:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23002:24:20"},"returnParameters":{"id":8760,"nodeType":"ParameterList","parameters":[],"src":"23044:0:20"},"scope":9111,"src":"22984:98:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8797,"nodeType":"Block","src":"23514:106:20","statements":[{"expression":{"arguments":[{"id":8779,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"23530:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8780,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"23534:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8778,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"23524:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23524:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8782,"nodeType":"ExpressionStatement","src":"23524:13:20"},{"condition":{"arguments":[{"id":8784,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"23560:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8783,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"23551:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23551:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8796,"nodeType":"IfStatement","src":"23547:66:20","trueBody":{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23596:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23588:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8787,"name":"address","nodeType":"ElementaryTypeName","src":"23588:7:20","typeDescriptions":{}}},"id":8790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23588:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8791,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"23600:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8792,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"23604:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8793,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8775,"src":"23608:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8786,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"23565:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23565:48:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8795,"nodeType":"ExpressionStatement","src":"23565:48:20"}}]},"documentation":{"id":8769,"nodeType":"StructuredDocumentation","src":"23088:342:20","text":"@dev Mints token `id` to `to`.\n Requirements:\n - Token `id` must not exist.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":8798,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"23444:9:20","nodeType":"FunctionDefinition","parameters":{"id":8776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8771,"mutability":"mutable","name":"to","nameLocation":"23462:2:20","nodeType":"VariableDeclaration","scope":8798,"src":"23454:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8770,"name":"address","nodeType":"ElementaryTypeName","src":"23454:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8773,"mutability":"mutable","name":"id","nameLocation":"23474:2:20","nodeType":"VariableDeclaration","scope":8798,"src":"23466:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8772,"name":"uint256","nodeType":"ElementaryTypeName","src":"23466:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8775,"mutability":"mutable","name":"data","nameLocation":"23491:4:20","nodeType":"VariableDeclaration","scope":8798,"src":"23478:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8774,"name":"bytes","nodeType":"ElementaryTypeName","src":"23478:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23453:43:20"},"returnParameters":{"id":8777,"nodeType":"ParameterList","parameters":[],"src":"23514:0:20"},"scope":9111,"src":"23435:185:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8812,"nodeType":"Block","src":"24005:38:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24029:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24021:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8805,"name":"address","nodeType":"ElementaryTypeName","src":"24021:7:20","typeDescriptions":{}}},"id":8808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24021:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8809,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8801,"src":"24033:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8804,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[8813,8847],"referencedDeclaration":8847,"src":"24015:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24015:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8811,"nodeType":"ExpressionStatement","src":"24015:21:20"}]},"documentation":{"id":8799,"nodeType":"StructuredDocumentation","src":"23909:47:20","text":"@dev Equivalent to `_burn(address(0), id)`."},"id":8813,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"23970:5:20","nodeType":"FunctionDefinition","parameters":{"id":8802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8801,"mutability":"mutable","name":"id","nameLocation":"23984:2:20","nodeType":"VariableDeclaration","scope":8813,"src":"23976:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8800,"name":"uint256","nodeType":"ElementaryTypeName","src":"23976:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23975:12:20"},"returnParameters":{"id":8803,"nodeType":"ParameterList","parameters":[],"src":"24005:0:20"},"scope":9111,"src":"23961:82:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8846,"nodeType":"Block","src":"24388:2071:20","statements":[{"assignments":[8822],"declarations":[{"constant":false,"id":8822,"mutability":"mutable","name":"owner","nameLocation":"24406:5:20","nodeType":"VariableDeclaration","scope":8846,"src":"24398:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8821,"name":"address","nodeType":"ElementaryTypeName","src":"24398:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8826,"initialValue":{"arguments":[{"id":8824,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8818,"src":"24422:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8823,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"24414:7:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":8825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24414:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24398:27:20"},{"expression":{"arguments":[{"id":8828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8822,"src":"24456:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24471:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24463:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8829,"name":"address","nodeType":"ElementaryTypeName","src":"24463:7:20","typeDescriptions":{}}},"id":8832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24463:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8833,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8818,"src":"24475:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8827,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"24435:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24435:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8835,"nodeType":"ExpressionStatement","src":"24435:43:20"},{"AST":{"nativeSrc":"24540:1861:20","nodeType":"YulBlock","src":"24540:1861:20","statements":[{"nativeSrc":"24594:26:20","nodeType":"YulAssignment","src":"24594:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"24604:2:20","nodeType":"YulLiteral","src":"24604:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24612:2:20","nodeType":"YulLiteral","src":"24612:2:20","type":"","value":"96"},{"name":"by","nativeSrc":"24616:2:20","nodeType":"YulIdentifier","src":"24616:2:20"}],"functionName":{"name":"shl","nativeSrc":"24608:3:20","nodeType":"YulIdentifier","src":"24608:3:20"},"nativeSrc":"24608:11:20","nodeType":"YulFunctionCall","src":"24608:11:20"}],"functionName":{"name":"shr","nativeSrc":"24600:3:20","nodeType":"YulIdentifier","src":"24600:3:20"},"nativeSrc":"24600:20:20","nodeType":"YulFunctionCall","src":"24600:20:20"},"variableNames":[{"name":"by","nativeSrc":"24594:2:20","nodeType":"YulIdentifier","src":"24594:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24680:4:20","nodeType":"YulLiteral","src":"24680:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"24686:2:20","nodeType":"YulIdentifier","src":"24686:2:20"}],"functionName":{"name":"mstore","nativeSrc":"24673:6:20","nodeType":"YulIdentifier","src":"24673:6:20"},"nativeSrc":"24673:16:20","nodeType":"YulFunctionCall","src":"24673:16:20"},"nativeSrc":"24673:16:20","nodeType":"YulExpressionStatement","src":"24673:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24709:4:20","nodeType":"YulLiteral","src":"24709:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"24718:24:20","nodeType":"YulIdentifier","src":"24718:24:20"},{"name":"by","nativeSrc":"24744:2:20","nodeType":"YulIdentifier","src":"24744:2:20"}],"functionName":{"name":"or","nativeSrc":"24715:2:20","nodeType":"YulIdentifier","src":"24715:2:20"},"nativeSrc":"24715:32:20","nodeType":"YulFunctionCall","src":"24715:32:20"}],"functionName":{"name":"mstore","nativeSrc":"24702:6:20","nodeType":"YulIdentifier","src":"24702:6:20"},"nativeSrc":"24702:46:20","nodeType":"YulFunctionCall","src":"24702:46:20"},"nativeSrc":"24702:46:20","nodeType":"YulExpressionStatement","src":"24702:46:20"},{"nativeSrc":"24761:60:20","nodeType":"YulVariableDeclaration","src":"24761:60:20","value":{"arguments":[{"name":"id","nativeSrc":"24786:2:20","nodeType":"YulIdentifier","src":"24786:2:20"},{"arguments":[{"name":"id","nativeSrc":"24794:2:20","nodeType":"YulIdentifier","src":"24794:2:20"},{"arguments":[{"kind":"number","nativeSrc":"24808:4:20","nodeType":"YulLiteral","src":"24808:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"24814:4:20","nodeType":"YulLiteral","src":"24814:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"24798:9:20","nodeType":"YulIdentifier","src":"24798:9:20"},"nativeSrc":"24798:21:20","nodeType":"YulFunctionCall","src":"24798:21:20"}],"functionName":{"name":"add","nativeSrc":"24790:3:20","nodeType":"YulIdentifier","src":"24790:3:20"},"nativeSrc":"24790:30:20","nodeType":"YulFunctionCall","src":"24790:30:20"}],"functionName":{"name":"add","nativeSrc":"24782:3:20","nodeType":"YulIdentifier","src":"24782:3:20"},"nativeSrc":"24782:39:20","nodeType":"YulFunctionCall","src":"24782:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"24765:13:20","nodeType":"YulTypedName","src":"24765:13:20","type":""}]},{"nativeSrc":"24834:43:20","nodeType":"YulVariableDeclaration","src":"24834:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"24863:13:20","nodeType":"YulIdentifier","src":"24863:13:20"}],"functionName":{"name":"sload","nativeSrc":"24857:5:20","nodeType":"YulIdentifier","src":"24857:5:20"},"nativeSrc":"24857:20:20","nodeType":"YulFunctionCall","src":"24857:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"24838:15:20","nodeType":"YulTypedName","src":"24838:15:20","type":""}]},{"nativeSrc":"24971:42:20","nodeType":"YulAssignment","src":"24971:42:20","value":{"arguments":[{"kind":"number","nativeSrc":"24984:2:20","nodeType":"YulLiteral","src":"24984:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24992:2:20","nodeType":"YulLiteral","src":"24992:2:20","type":"","value":"96"},{"name":"ownershipPacked","nativeSrc":"24996:15:20","nodeType":"YulIdentifier","src":"24996:15:20"}],"functionName":{"name":"shl","nativeSrc":"24988:3:20","nodeType":"YulIdentifier","src":"24988:3:20"},"nativeSrc":"24988:24:20","nodeType":"YulFunctionCall","src":"24988:24:20"}],"functionName":{"name":"shr","nativeSrc":"24980:3:20","nodeType":"YulIdentifier","src":"24980:3:20"},"nativeSrc":"24980:33:20","nodeType":"YulFunctionCall","src":"24980:33:20"},"variableNames":[{"name":"owner","nativeSrc":"24971:5:20","nodeType":"YulIdentifier","src":"24971:5:20"}]},{"body":{"nativeSrc":"25094:117:20","nodeType":"YulBlock","src":"25094:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25119:4:20","nodeType":"YulLiteral","src":"25119:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25125:10:20","nodeType":"YulLiteral","src":"25125:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"25112:6:20","nodeType":"YulIdentifier","src":"25112:6:20"},"nativeSrc":"25112:24:20","nodeType":"YulFunctionCall","src":"25112:24:20"},"nativeSrc":"25112:24:20","nodeType":"YulExpressionStatement","src":"25112:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25186:4:20","nodeType":"YulLiteral","src":"25186:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"25192:4:20","nodeType":"YulLiteral","src":"25192:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25179:6:20","nodeType":"YulIdentifier","src":"25179:6:20"},"nativeSrc":"25179:18:20","nodeType":"YulFunctionCall","src":"25179:18:20"},"nativeSrc":"25179:18:20","nodeType":"YulExpressionStatement","src":"25179:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"25087:5:20","nodeType":"YulIdentifier","src":"25087:5:20"}],"functionName":{"name":"iszero","nativeSrc":"25080:6:20","nodeType":"YulIdentifier","src":"25080:6:20"},"nativeSrc":"25080:13:20","nodeType":"YulFunctionCall","src":"25080:13:20"},"nativeSrc":"25077:134:20","nodeType":"YulIf","src":"25077:134:20"},{"nativeSrc":"25274:706:20","nodeType":"YulBlock","src":"25274:706:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25299:4:20","nodeType":"YulLiteral","src":"25299:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"25305:5:20","nodeType":"YulIdentifier","src":"25305:5:20"}],"functionName":{"name":"mstore","nativeSrc":"25292:6:20","nodeType":"YulIdentifier","src":"25292:6:20"},"nativeSrc":"25292:19:20","nodeType":"YulFunctionCall","src":"25292:19:20"},"nativeSrc":"25292:19:20","nodeType":"YulExpressionStatement","src":"25292:19:20"},{"nativeSrc":"25328:51:20","nodeType":"YulVariableDeclaration","src":"25328:51:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25361:1:20","nodeType":"YulLiteral","src":"25361:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"25364:13:20","nodeType":"YulIdentifier","src":"25364:13:20"}],"functionName":{"name":"add","nativeSrc":"25357:3:20","nodeType":"YulIdentifier","src":"25357:3:20"},"nativeSrc":"25357:21:20","nodeType":"YulFunctionCall","src":"25357:21:20"}],"functionName":{"name":"sload","nativeSrc":"25351:5:20","nodeType":"YulIdentifier","src":"25351:5:20"},"nativeSrc":"25351:28:20","nodeType":"YulFunctionCall","src":"25351:28:20"},"variables":[{"name":"approvedAddress","nativeSrc":"25332:15:20","nodeType":"YulTypedName","src":"25332:15:20","type":""}]},{"body":{"nativeSrc":"25616:223:20","nodeType":"YulBlock","src":"25616:223:20","statements":[{"body":{"nativeSrc":"25678:143:20","nodeType":"YulBlock","src":"25678:143:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25711:4:20","nodeType":"YulLiteral","src":"25711:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25717:10:20","nodeType":"YulLiteral","src":"25717:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"25704:6:20","nodeType":"YulIdentifier","src":"25704:6:20"},"nativeSrc":"25704:24:20","nodeType":"YulFunctionCall","src":"25704:24:20"},"nativeSrc":"25704:24:20","nodeType":"YulExpressionStatement","src":"25704:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25788:4:20","nodeType":"YulLiteral","src":"25788:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"25794:4:20","nodeType":"YulLiteral","src":"25794:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25781:6:20","nodeType":"YulIdentifier","src":"25781:6:20"},"nativeSrc":"25781:18:20","nodeType":"YulFunctionCall","src":"25781:18:20"},"nativeSrc":"25781:18:20","nodeType":"YulExpressionStatement","src":"25781:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25664:4:20","nodeType":"YulLiteral","src":"25664:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"25670:4:20","nodeType":"YulLiteral","src":"25670:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"25654:9:20","nodeType":"YulIdentifier","src":"25654:9:20"},"nativeSrc":"25654:21:20","nodeType":"YulFunctionCall","src":"25654:21:20"}],"functionName":{"name":"sload","nativeSrc":"25648:5:20","nodeType":"YulIdentifier","src":"25648:5:20"},"nativeSrc":"25648:28:20","nodeType":"YulFunctionCall","src":"25648:28:20"}],"functionName":{"name":"iszero","nativeSrc":"25641:6:20","nodeType":"YulIdentifier","src":"25641:6:20"},"nativeSrc":"25641:36:20","nodeType":"YulFunctionCall","src":"25641:36:20"},"nativeSrc":"25638:183:20","nodeType":"YulIf","src":"25638:183:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"25566:2:20","nodeType":"YulIdentifier","src":"25566:2:20"}],"functionName":{"name":"iszero","nativeSrc":"25559:6:20","nodeType":"YulIdentifier","src":"25559:6:20"},"nativeSrc":"25559:10:20","nodeType":"YulFunctionCall","src":"25559:10:20"},{"arguments":[{"arguments":[{"name":"by","nativeSrc":"25577:2:20","nodeType":"YulIdentifier","src":"25577:2:20"},{"name":"owner","nativeSrc":"25581:5:20","nodeType":"YulIdentifier","src":"25581:5:20"}],"functionName":{"name":"eq","nativeSrc":"25574:2:20","nodeType":"YulIdentifier","src":"25574:2:20"},"nativeSrc":"25574:13:20","nodeType":"YulFunctionCall","src":"25574:13:20"},{"arguments":[{"name":"by","nativeSrc":"25592:2:20","nodeType":"YulIdentifier","src":"25592:2:20"},{"name":"approvedAddress","nativeSrc":"25596:15:20","nodeType":"YulIdentifier","src":"25596:15:20"}],"functionName":{"name":"eq","nativeSrc":"25589:2:20","nodeType":"YulIdentifier","src":"25589:2:20"},"nativeSrc":"25589:23:20","nodeType":"YulFunctionCall","src":"25589:23:20"}],"functionName":{"name":"or","nativeSrc":"25571:2:20","nodeType":"YulIdentifier","src":"25571:2:20"},"nativeSrc":"25571:42:20","nodeType":"YulFunctionCall","src":"25571:42:20"}],"functionName":{"name":"or","nativeSrc":"25556:2:20","nodeType":"YulIdentifier","src":"25556:2:20"},"nativeSrc":"25556:58:20","nodeType":"YulFunctionCall","src":"25556:58:20"}],"functionName":{"name":"iszero","nativeSrc":"25549:6:20","nodeType":"YulIdentifier","src":"25549:6:20"},"nativeSrc":"25549:66:20","nodeType":"YulFunctionCall","src":"25549:66:20"},"nativeSrc":"25546:293:20","nodeType":"YulIf","src":"25546:293:20"},{"body":{"nativeSrc":"25930:36:20","nodeType":"YulBlock","src":"25930:36:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25943:1:20","nodeType":"YulLiteral","src":"25943:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"25946:13:20","nodeType":"YulIdentifier","src":"25946:13:20"}],"functionName":{"name":"add","nativeSrc":"25939:3:20","nodeType":"YulIdentifier","src":"25939:3:20"},"nativeSrc":"25939:21:20","nodeType":"YulFunctionCall","src":"25939:21:20"},{"kind":"number","nativeSrc":"25962:1:20","nodeType":"YulLiteral","src":"25962:1:20","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"25932:6:20","nodeType":"YulIdentifier","src":"25932:6:20"},"nativeSrc":"25932:32:20","nodeType":"YulFunctionCall","src":"25932:32:20"},"nativeSrc":"25932:32:20","nodeType":"YulExpressionStatement","src":"25932:32:20"}]},"condition":{"name":"approvedAddress","nativeSrc":"25914:15:20","nodeType":"YulIdentifier","src":"25914:15:20"},"nativeSrc":"25911:55:20","nodeType":"YulIf","src":"25911:55:20"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"26032:13:20","nodeType":"YulIdentifier","src":"26032:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"26051:15:20","nodeType":"YulIdentifier","src":"26051:15:20"},{"name":"owner","nativeSrc":"26068:5:20","nodeType":"YulIdentifier","src":"26068:5:20"}],"functionName":{"name":"xor","nativeSrc":"26047:3:20","nodeType":"YulIdentifier","src":"26047:3:20"},"nativeSrc":"26047:27:20","nodeType":"YulFunctionCall","src":"26047:27:20"}],"functionName":{"name":"sstore","nativeSrc":"26025:6:20","nodeType":"YulIdentifier","src":"26025:6:20"},"nativeSrc":"26025:50:20","nodeType":"YulFunctionCall","src":"26025:50:20"},"nativeSrc":"26025:50:20","nodeType":"YulExpressionStatement","src":"26025:50:20"},{"nativeSrc":"26137:136:20","nodeType":"YulBlock","src":"26137:136:20","statements":[{"nativeSrc":"26155:40:20","nodeType":"YulVariableDeclaration","src":"26155:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"26184:4:20","nodeType":"YulLiteral","src":"26184:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"26190:4:20","nodeType":"YulLiteral","src":"26190:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"26174:9:20","nodeType":"YulIdentifier","src":"26174:9:20"},"nativeSrc":"26174:21:20","nodeType":"YulFunctionCall","src":"26174:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"26159:11:20","nodeType":"YulTypedName","src":"26159:11:20","type":""}]},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"26219:11:20","nodeType":"YulIdentifier","src":"26219:11:20"},{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"26242:11:20","nodeType":"YulIdentifier","src":"26242:11:20"}],"functionName":{"name":"sload","nativeSrc":"26236:5:20","nodeType":"YulIdentifier","src":"26236:5:20"},"nativeSrc":"26236:18:20","nodeType":"YulFunctionCall","src":"26236:18:20"},{"kind":"number","nativeSrc":"26256:1:20","nodeType":"YulLiteral","src":"26256:1:20","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26232:3:20","nodeType":"YulIdentifier","src":"26232:3:20"},"nativeSrc":"26232:26:20","nodeType":"YulFunctionCall","src":"26232:26:20"}],"functionName":{"name":"sstore","nativeSrc":"26212:6:20","nodeType":"YulIdentifier","src":"26212:6:20"},"nativeSrc":"26212:47:20","nodeType":"YulFunctionCall","src":"26212:47:20"},"nativeSrc":"26212:47:20","nodeType":"YulExpressionStatement","src":"26212:47:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"26333:8:20","nodeType":"YulIdentifier","src":"26333:8:20"},"nativeSrc":"26333:10:20","nodeType":"YulFunctionCall","src":"26333:10:20"},{"kind":"number","nativeSrc":"26345:4:20","nodeType":"YulLiteral","src":"26345:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"26351:25:20","nodeType":"YulIdentifier","src":"26351:25:20"},{"name":"owner","nativeSrc":"26378:5:20","nodeType":"YulIdentifier","src":"26378:5:20"},{"kind":"number","nativeSrc":"26385:1:20","nodeType":"YulLiteral","src":"26385:1:20","type":"","value":"0"},{"name":"id","nativeSrc":"26388:2:20","nodeType":"YulIdentifier","src":"26388:2:20"}],"functionName":{"name":"log4","nativeSrc":"26328:4:20","nodeType":"YulIdentifier","src":"26328:4:20"},"nativeSrc":"26328:63:20","nodeType":"YulFunctionCall","src":"26328:63:20"},"nativeSrc":"26328:63:20","nodeType":"YulExpressionStatement","src":"26328:63:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"24718:24:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"26351:25:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"24594:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"24616:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"24744:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"25566:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"25577:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"25592:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"24686:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"24786:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"24794:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"26388:2:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"24971:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"25087:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"25305:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"25581:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"26068:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"26378:5:20","valueSize":1}],"id":8836,"nodeType":"InlineAssembly","src":"24531:1870:20"},{"expression":{"arguments":[{"id":8838,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8822,"src":"26430:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26445:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26437:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8839,"name":"address","nodeType":"ElementaryTypeName","src":"26437:7:20","typeDescriptions":{}}},"id":8842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26437:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8843,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8818,"src":"26449:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8837,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"26410:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26410:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8845,"nodeType":"ExpressionStatement","src":"26410:42:20"}]},"documentation":{"id":8814,"nodeType":"StructuredDocumentation","src":"24049:278:20","text":"@dev Destroys token `id`, using `by`.\n Requirements:\n - Token `id` must exist.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"id":8847,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"24341:5:20","nodeType":"FunctionDefinition","parameters":{"id":8819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8816,"mutability":"mutable","name":"by","nameLocation":"24355:2:20","nodeType":"VariableDeclaration","scope":8847,"src":"24347:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8815,"name":"address","nodeType":"ElementaryTypeName","src":"24347:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8818,"mutability":"mutable","name":"id","nameLocation":"24367:2:20","nodeType":"VariableDeclaration","scope":8847,"src":"24359:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8817,"name":"uint256","nodeType":"ElementaryTypeName","src":"24359:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24346:24:20"},"returnParameters":{"id":8820,"nodeType":"ParameterList","parameters":[],"src":"24388:0:20"},"scope":9111,"src":"24332:2127:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8858,"nodeType":"Block","src":"27044:1023:20","statements":[{"AST":{"nativeSrc":"27106:955:20","nodeType":"YulBlock","src":"27106:955:20","statements":[{"nativeSrc":"27120:11:20","nodeType":"YulAssignment","src":"27120:11:20","value":{"kind":"number","nativeSrc":"27130:1:20","nodeType":"YulLiteral","src":"27130:1:20","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"27120:6:20","nodeType":"YulIdentifier","src":"27120:6:20"}]},{"nativeSrc":"27184:36:20","nodeType":"YulAssignment","src":"27184:36:20","value":{"arguments":[{"kind":"number","nativeSrc":"27199:2:20","nodeType":"YulLiteral","src":"27199:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"27207:2:20","nodeType":"YulLiteral","src":"27207:2:20","type":"","value":"96"},{"name":"account","nativeSrc":"27211:7:20","nodeType":"YulIdentifier","src":"27211:7:20"}],"functionName":{"name":"shl","nativeSrc":"27203:3:20","nodeType":"YulIdentifier","src":"27203:3:20"},"nativeSrc":"27203:16:20","nodeType":"YulFunctionCall","src":"27203:16:20"}],"functionName":{"name":"shr","nativeSrc":"27195:3:20","nodeType":"YulIdentifier","src":"27195:3:20"},"nativeSrc":"27195:25:20","nodeType":"YulFunctionCall","src":"27195:25:20"},"variableNames":[{"name":"account","nativeSrc":"27184:7:20","nodeType":"YulIdentifier","src":"27184:7:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27280:4:20","nodeType":"YulLiteral","src":"27280:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"27286:2:20","nodeType":"YulIdentifier","src":"27286:2:20"}],"functionName":{"name":"mstore","nativeSrc":"27273:6:20","nodeType":"YulIdentifier","src":"27273:6:20"},"nativeSrc":"27273:16:20","nodeType":"YulFunctionCall","src":"27273:16:20"},"nativeSrc":"27273:16:20","nodeType":"YulExpressionStatement","src":"27273:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27309:4:20","nodeType":"YulLiteral","src":"27309:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"27318:24:20","nodeType":"YulIdentifier","src":"27318:24:20"},{"name":"account","nativeSrc":"27344:7:20","nodeType":"YulIdentifier","src":"27344:7:20"}],"functionName":{"name":"or","nativeSrc":"27315:2:20","nodeType":"YulIdentifier","src":"27315:2:20"},"nativeSrc":"27315:37:20","nodeType":"YulFunctionCall","src":"27315:37:20"}],"functionName":{"name":"mstore","nativeSrc":"27302:6:20","nodeType":"YulIdentifier","src":"27302:6:20"},"nativeSrc":"27302:51:20","nodeType":"YulFunctionCall","src":"27302:51:20"},"nativeSrc":"27302:51:20","nodeType":"YulExpressionStatement","src":"27302:51:20"},{"nativeSrc":"27366:60:20","nodeType":"YulVariableDeclaration","src":"27366:60:20","value":{"arguments":[{"name":"id","nativeSrc":"27391:2:20","nodeType":"YulIdentifier","src":"27391:2:20"},{"arguments":[{"name":"id","nativeSrc":"27399:2:20","nodeType":"YulIdentifier","src":"27399:2:20"},{"arguments":[{"kind":"number","nativeSrc":"27413:4:20","nodeType":"YulLiteral","src":"27413:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"27419:4:20","nodeType":"YulLiteral","src":"27419:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"27403:9:20","nodeType":"YulIdentifier","src":"27403:9:20"},"nativeSrc":"27403:21:20","nodeType":"YulFunctionCall","src":"27403:21:20"}],"functionName":{"name":"add","nativeSrc":"27395:3:20","nodeType":"YulIdentifier","src":"27395:3:20"},"nativeSrc":"27395:30:20","nodeType":"YulFunctionCall","src":"27395:30:20"}],"functionName":{"name":"add","nativeSrc":"27387:3:20","nodeType":"YulIdentifier","src":"27387:3:20"},"nativeSrc":"27387:39:20","nodeType":"YulFunctionCall","src":"27387:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"27370:13:20","nodeType":"YulTypedName","src":"27370:13:20","type":""}]},{"nativeSrc":"27439:51:20","nodeType":"YulVariableDeclaration","src":"27439:51:20","value":{"arguments":[{"kind":"number","nativeSrc":"27456:2:20","nodeType":"YulLiteral","src":"27456:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"27464:2:20","nodeType":"YulLiteral","src":"27464:2:20","type":"","value":"96"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"27474:13:20","nodeType":"YulIdentifier","src":"27474:13:20"}],"functionName":{"name":"sload","nativeSrc":"27468:5:20","nodeType":"YulIdentifier","src":"27468:5:20"},"nativeSrc":"27468:20:20","nodeType":"YulFunctionCall","src":"27468:20:20"}],"functionName":{"name":"shl","nativeSrc":"27460:3:20","nodeType":"YulIdentifier","src":"27460:3:20"},"nativeSrc":"27460:29:20","nodeType":"YulFunctionCall","src":"27460:29:20"}],"functionName":{"name":"shr","nativeSrc":"27452:3:20","nodeType":"YulIdentifier","src":"27452:3:20"},"nativeSrc":"27452:38:20","nodeType":"YulFunctionCall","src":"27452:38:20"},"variables":[{"name":"owner","nativeSrc":"27443:5:20","nodeType":"YulTypedName","src":"27443:5:20","type":""}]},{"body":{"nativeSrc":"27571:117:20","nodeType":"YulBlock","src":"27571:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27596:4:20","nodeType":"YulLiteral","src":"27596:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"27602:10:20","nodeType":"YulLiteral","src":"27602:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"27589:6:20","nodeType":"YulIdentifier","src":"27589:6:20"},"nativeSrc":"27589:24:20","nodeType":"YulFunctionCall","src":"27589:24:20"},"nativeSrc":"27589:24:20","nodeType":"YulExpressionStatement","src":"27589:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27663:4:20","nodeType":"YulLiteral","src":"27663:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"27669:4:20","nodeType":"YulLiteral","src":"27669:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"27656:6:20","nodeType":"YulIdentifier","src":"27656:6:20"},"nativeSrc":"27656:18:20","nodeType":"YulFunctionCall","src":"27656:18:20"},"nativeSrc":"27656:18:20","nodeType":"YulExpressionStatement","src":"27656:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"27564:5:20","nodeType":"YulIdentifier","src":"27564:5:20"}],"functionName":{"name":"iszero","nativeSrc":"27557:6:20","nodeType":"YulIdentifier","src":"27557:6:20"},"nativeSrc":"27557:13:20","nodeType":"YulFunctionCall","src":"27557:13:20"},"nativeSrc":"27554:134:20","nodeType":"YulIf","src":"27554:134:20"},{"body":{"nativeSrc":"27781:270:20","nodeType":"YulBlock","src":"27781:270:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27806:4:20","nodeType":"YulLiteral","src":"27806:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"27812:5:20","nodeType":"YulIdentifier","src":"27812:5:20"}],"functionName":{"name":"mstore","nativeSrc":"27799:6:20","nodeType":"YulIdentifier","src":"27799:6:20"},"nativeSrc":"27799:19:20","nodeType":"YulFunctionCall","src":"27799:19:20"},"nativeSrc":"27799:19:20","nodeType":"YulExpressionStatement","src":"27799:19:20"},{"body":{"nativeSrc":"27946:91:20","nodeType":"YulBlock","src":"27946:91:20","statements":[{"nativeSrc":"27968:51:20","nodeType":"YulAssignment","src":"27968:51:20","value":{"arguments":[{"name":"account","nativeSrc":"27981:7:20","nodeType":"YulIdentifier","src":"27981:7:20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28000:1:20","nodeType":"YulLiteral","src":"28000:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"28003:13:20","nodeType":"YulIdentifier","src":"28003:13:20"}],"functionName":{"name":"add","nativeSrc":"27996:3:20","nodeType":"YulIdentifier","src":"27996:3:20"},"nativeSrc":"27996:21:20","nodeType":"YulFunctionCall","src":"27996:21:20"}],"functionName":{"name":"sload","nativeSrc":"27990:5:20","nodeType":"YulIdentifier","src":"27990:5:20"},"nativeSrc":"27990:28:20","nodeType":"YulFunctionCall","src":"27990:28:20"}],"functionName":{"name":"eq","nativeSrc":"27978:2:20","nodeType":"YulIdentifier","src":"27978:2:20"},"nativeSrc":"27978:41:20","nodeType":"YulFunctionCall","src":"27978:41:20"},"variableNames":[{"name":"result","nativeSrc":"27968:6:20","nodeType":"YulIdentifier","src":"27968:6:20"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27932:4:20","nodeType":"YulLiteral","src":"27932:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"27938:4:20","nodeType":"YulLiteral","src":"27938:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"27922:9:20","nodeType":"YulIdentifier","src":"27922:9:20"},"nativeSrc":"27922:21:20","nodeType":"YulFunctionCall","src":"27922:21:20"}],"functionName":{"name":"sload","nativeSrc":"27916:5:20","nodeType":"YulIdentifier","src":"27916:5:20"},"nativeSrc":"27916:28:20","nodeType":"YulFunctionCall","src":"27916:28:20"}],"functionName":{"name":"iszero","nativeSrc":"27909:6:20","nodeType":"YulIdentifier","src":"27909:6:20"},"nativeSrc":"27909:36:20","nodeType":"YulFunctionCall","src":"27909:36:20"},"nativeSrc":"27906:131:20","nodeType":"YulIf","src":"27906:131:20"}]},"condition":{"arguments":[{"arguments":[{"name":"account","nativeSrc":"27764:7:20","nodeType":"YulIdentifier","src":"27764:7:20"},{"name":"owner","nativeSrc":"27773:5:20","nodeType":"YulIdentifier","src":"27773:5:20"}],"functionName":{"name":"eq","nativeSrc":"27761:2:20","nodeType":"YulIdentifier","src":"27761:2:20"},"nativeSrc":"27761:18:20","nodeType":"YulFunctionCall","src":"27761:18:20"}],"functionName":{"name":"iszero","nativeSrc":"27754:6:20","nodeType":"YulIdentifier","src":"27754:6:20"},"nativeSrc":"27754:26:20","nodeType":"YulFunctionCall","src":"27754:26:20"},"nativeSrc":"27751:300:20","nodeType":"YulIf","src":"27751:300:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"27318:24:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27184:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27211:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27344:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27764:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27981:7:20","valueSize":1},{"declaration":8852,"isOffset":false,"isSlot":false,"src":"27286:2:20","valueSize":1},{"declaration":8852,"isOffset":false,"isSlot":false,"src":"27391:2:20","valueSize":1},{"declaration":8852,"isOffset":false,"isSlot":false,"src":"27399:2:20","valueSize":1},{"declaration":8855,"isOffset":false,"isSlot":false,"src":"27120:6:20","valueSize":1},{"declaration":8855,"isOffset":false,"isSlot":false,"src":"27968:6:20","valueSize":1}],"id":8857,"nodeType":"InlineAssembly","src":"27097:964:20"}]},"documentation":{"id":8848,"nodeType":"StructuredDocumentation","src":"26748:154:20","text":"@dev Returns whether `account` is the owner of token `id`, or is approved to manage it.\n Requirements:\n - Token `id` must exist."},"id":8859,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"26916:18:20","nodeType":"FunctionDefinition","parameters":{"id":8853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8850,"mutability":"mutable","name":"account","nameLocation":"26943:7:20","nodeType":"VariableDeclaration","scope":8859,"src":"26935:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8849,"name":"address","nodeType":"ElementaryTypeName","src":"26935:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8852,"mutability":"mutable","name":"id","nameLocation":"26960:2:20","nodeType":"VariableDeclaration","scope":8859,"src":"26952:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8851,"name":"uint256","nodeType":"ElementaryTypeName","src":"26952:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26934:29:20"},"returnParameters":{"id":8856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8855,"mutability":"mutable","name":"result","nameLocation":"27032:6:20","nodeType":"VariableDeclaration","scope":8859,"src":"27027:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8854,"name":"bool","nodeType":"ElementaryTypeName","src":"27027:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27026:13:20"},"scope":9111,"src":"26907:1160:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8868,"nodeType":"Block","src":"28301:236:20","statements":[{"AST":{"nativeSrc":"28363:168:20","nodeType":"YulBlock","src":"28363:168:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28384:4:20","nodeType":"YulLiteral","src":"28384:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"28390:2:20","nodeType":"YulIdentifier","src":"28390:2:20"}],"functionName":{"name":"mstore","nativeSrc":"28377:6:20","nodeType":"YulIdentifier","src":"28377:6:20"},"nativeSrc":"28377:16:20","nodeType":"YulFunctionCall","src":"28377:16:20"},"nativeSrc":"28377:16:20","nodeType":"YulExpressionStatement","src":"28377:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28413:4:20","nodeType":"YulLiteral","src":"28413:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"28419:24:20","nodeType":"YulIdentifier","src":"28419:24:20"}],"functionName":{"name":"mstore","nativeSrc":"28406:6:20","nodeType":"YulIdentifier","src":"28406:6:20"},"nativeSrc":"28406:38:20","nodeType":"YulFunctionCall","src":"28406:38:20"},"nativeSrc":"28406:38:20","nodeType":"YulExpressionStatement","src":"28406:38:20"},{"nativeSrc":"28457:64:20","nodeType":"YulAssignment","src":"28457:64:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28477:1:20","nodeType":"YulLiteral","src":"28477:1:20","type":"","value":"1"},{"arguments":[{"name":"id","nativeSrc":"28484:2:20","nodeType":"YulIdentifier","src":"28484:2:20"},{"arguments":[{"name":"id","nativeSrc":"28492:2:20","nodeType":"YulIdentifier","src":"28492:2:20"},{"arguments":[{"kind":"number","nativeSrc":"28506:4:20","nodeType":"YulLiteral","src":"28506:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"28512:4:20","nodeType":"YulLiteral","src":"28512:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"28496:9:20","nodeType":"YulIdentifier","src":"28496:9:20"},"nativeSrc":"28496:21:20","nodeType":"YulFunctionCall","src":"28496:21:20"}],"functionName":{"name":"add","nativeSrc":"28488:3:20","nodeType":"YulIdentifier","src":"28488:3:20"},"nativeSrc":"28488:30:20","nodeType":"YulFunctionCall","src":"28488:30:20"}],"functionName":{"name":"add","nativeSrc":"28480:3:20","nodeType":"YulIdentifier","src":"28480:3:20"},"nativeSrc":"28480:39:20","nodeType":"YulFunctionCall","src":"28480:39:20"}],"functionName":{"name":"add","nativeSrc":"28473:3:20","nodeType":"YulIdentifier","src":"28473:3:20"},"nativeSrc":"28473:47:20","nodeType":"YulFunctionCall","src":"28473:47:20"}],"functionName":{"name":"sload","nativeSrc":"28467:5:20","nodeType":"YulIdentifier","src":"28467:5:20"},"nativeSrc":"28467:54:20","nodeType":"YulFunctionCall","src":"28467:54:20"},"variableNames":[{"name":"result","nativeSrc":"28457:6:20","nodeType":"YulIdentifier","src":"28457:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"28419:24:20","valueSize":1},{"declaration":8862,"isOffset":false,"isSlot":false,"src":"28390:2:20","valueSize":1},{"declaration":8862,"isOffset":false,"isSlot":false,"src":"28484:2:20","valueSize":1},{"declaration":8862,"isOffset":false,"isSlot":false,"src":"28492:2:20","valueSize":1},{"declaration":8865,"isOffset":false,"isSlot":false,"src":"28457:6:20","valueSize":1}],"id":8867,"nodeType":"InlineAssembly","src":"28354:177:20"}]},"documentation":{"id":8860,"nodeType":"StructuredDocumentation","src":"28073:142:20","text":"@dev Returns the account approved to manage token `id`.\n Returns the zero address instead of reverting if the token does not exist."},"id":8869,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"28229:12:20","nodeType":"FunctionDefinition","parameters":{"id":8863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8862,"mutability":"mutable","name":"id","nameLocation":"28250:2:20","nodeType":"VariableDeclaration","scope":8869,"src":"28242:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8861,"name":"uint256","nodeType":"ElementaryTypeName","src":"28242:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28241:12:20"},"returnParameters":{"id":8866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8865,"mutability":"mutable","name":"result","nameLocation":"28293:6:20","nodeType":"VariableDeclaration","scope":8869,"src":"28285:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8864,"name":"address","nodeType":"ElementaryTypeName","src":"28285:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28284:16:20"},"scope":9111,"src":"28220:317:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8886,"nodeType":"Block","src":"28671:50:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28698:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28690:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8878,"name":"address","nodeType":"ElementaryTypeName","src":"28690:7:20","typeDescriptions":{}}},"id":8881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28690:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8882,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8872,"src":"28702:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8883,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8874,"src":"28711:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8877,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[8887,8899],"referencedDeclaration":8899,"src":"28681:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28681:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8885,"nodeType":"ExpressionStatement","src":"28681:33:20"}]},"documentation":{"id":8870,"nodeType":"StructuredDocumentation","src":"28543:59:20","text":"@dev Equivalent to `_approve(address(0), account, id)`."},"id":8887,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"28616:8:20","nodeType":"FunctionDefinition","parameters":{"id":8875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8872,"mutability":"mutable","name":"account","nameLocation":"28633:7:20","nodeType":"VariableDeclaration","scope":8887,"src":"28625:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8871,"name":"address","nodeType":"ElementaryTypeName","src":"28625:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8874,"mutability":"mutable","name":"id","nameLocation":"28650:2:20","nodeType":"VariableDeclaration","scope":8887,"src":"28642:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8873,"name":"uint256","nodeType":"ElementaryTypeName","src":"28642:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28624:29:20"},"returnParameters":{"id":8876,"nodeType":"ParameterList","parameters":[],"src":"28671:0:20"},"scope":9111,"src":"28607:114:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8898,"nodeType":"Block","src":"29115:1366:20","statements":[{"AST":{"nativeSrc":"29134:1341:20","nodeType":"YulBlock","src":"29134:1341:20","statements":[{"nativeSrc":"29188:37:20","nodeType":"YulVariableDeclaration","src":"29188:37:20","value":{"arguments":[{"kind":"number","nativeSrc":"29214:2:20","nodeType":"YulLiteral","src":"29214:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"29222:1:20","nodeType":"YulLiteral","src":"29222:1:20","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"29218:3:20","nodeType":"YulIdentifier","src":"29218:3:20"},"nativeSrc":"29218:6:20","nodeType":"YulFunctionCall","src":"29218:6:20"}],"functionName":{"name":"shr","nativeSrc":"29210:3:20","nodeType":"YulIdentifier","src":"29210:3:20"},"nativeSrc":"29210:15:20","nodeType":"YulFunctionCall","src":"29210:15:20"},"variables":[{"name":"bitmaskAddress","nativeSrc":"29192:14:20","nodeType":"YulTypedName","src":"29192:14:20","type":""}]},{"nativeSrc":"29238:39:20","nodeType":"YulAssignment","src":"29238:39:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29253:14:20","nodeType":"YulIdentifier","src":"29253:14:20"},{"name":"account","nativeSrc":"29269:7:20","nodeType":"YulIdentifier","src":"29269:7:20"}],"functionName":{"name":"and","nativeSrc":"29249:3:20","nodeType":"YulIdentifier","src":"29249:3:20"},"nativeSrc":"29249:28:20","nodeType":"YulFunctionCall","src":"29249:28:20"},"variableNames":[{"name":"account","nativeSrc":"29238:7:20","nodeType":"YulIdentifier","src":"29238:7:20"}]},{"nativeSrc":"29290:29:20","nodeType":"YulAssignment","src":"29290:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29300:14:20","nodeType":"YulIdentifier","src":"29300:14:20"},{"name":"by","nativeSrc":"29316:2:20","nodeType":"YulIdentifier","src":"29316:2:20"}],"functionName":{"name":"and","nativeSrc":"29296:3:20","nodeType":"YulIdentifier","src":"29296:3:20"},"nativeSrc":"29296:23:20","nodeType":"YulFunctionCall","src":"29296:23:20"},"variableNames":[{"name":"by","nativeSrc":"29290:2:20","nodeType":"YulIdentifier","src":"29290:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29383:4:20","nodeType":"YulLiteral","src":"29383:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"29389:2:20","nodeType":"YulIdentifier","src":"29389:2:20"}],"functionName":{"name":"mstore","nativeSrc":"29376:6:20","nodeType":"YulIdentifier","src":"29376:6:20"},"nativeSrc":"29376:16:20","nodeType":"YulFunctionCall","src":"29376:16:20"},"nativeSrc":"29376:16:20","nodeType":"YulExpressionStatement","src":"29376:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29412:4:20","nodeType":"YulLiteral","src":"29412:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"29421:24:20","nodeType":"YulIdentifier","src":"29421:24:20"},{"name":"by","nativeSrc":"29447:2:20","nodeType":"YulIdentifier","src":"29447:2:20"}],"functionName":{"name":"or","nativeSrc":"29418:2:20","nodeType":"YulIdentifier","src":"29418:2:20"},"nativeSrc":"29418:32:20","nodeType":"YulFunctionCall","src":"29418:32:20"}],"functionName":{"name":"mstore","nativeSrc":"29405:6:20","nodeType":"YulIdentifier","src":"29405:6:20"},"nativeSrc":"29405:46:20","nodeType":"YulFunctionCall","src":"29405:46:20"},"nativeSrc":"29405:46:20","nodeType":"YulExpressionStatement","src":"29405:46:20"},{"nativeSrc":"29464:60:20","nodeType":"YulVariableDeclaration","src":"29464:60:20","value":{"arguments":[{"name":"id","nativeSrc":"29489:2:20","nodeType":"YulIdentifier","src":"29489:2:20"},{"arguments":[{"name":"id","nativeSrc":"29497:2:20","nodeType":"YulIdentifier","src":"29497:2:20"},{"arguments":[{"kind":"number","nativeSrc":"29511:4:20","nodeType":"YulLiteral","src":"29511:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29517:4:20","nodeType":"YulLiteral","src":"29517:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"29501:9:20","nodeType":"YulIdentifier","src":"29501:9:20"},"nativeSrc":"29501:21:20","nodeType":"YulFunctionCall","src":"29501:21:20"}],"functionName":{"name":"add","nativeSrc":"29493:3:20","nodeType":"YulIdentifier","src":"29493:3:20"},"nativeSrc":"29493:30:20","nodeType":"YulFunctionCall","src":"29493:30:20"}],"functionName":{"name":"add","nativeSrc":"29485:3:20","nodeType":"YulIdentifier","src":"29485:3:20"},"nativeSrc":"29485:39:20","nodeType":"YulFunctionCall","src":"29485:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"29468:13:20","nodeType":"YulTypedName","src":"29468:13:20","type":""}]},{"nativeSrc":"29537:54:20","nodeType":"YulVariableDeclaration","src":"29537:54:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29554:14:20","nodeType":"YulIdentifier","src":"29554:14:20"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"29576:13:20","nodeType":"YulIdentifier","src":"29576:13:20"}],"functionName":{"name":"sload","nativeSrc":"29570:5:20","nodeType":"YulIdentifier","src":"29570:5:20"},"nativeSrc":"29570:20:20","nodeType":"YulFunctionCall","src":"29570:20:20"}],"functionName":{"name":"and","nativeSrc":"29550:3:20","nodeType":"YulIdentifier","src":"29550:3:20"},"nativeSrc":"29550:41:20","nodeType":"YulFunctionCall","src":"29550:41:20"},"variables":[{"name":"owner","nativeSrc":"29541:5:20","nodeType":"YulTypedName","src":"29541:5:20","type":""}]},{"body":{"nativeSrc":"29672:117:20","nodeType":"YulBlock","src":"29672:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29697:4:20","nodeType":"YulLiteral","src":"29697:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29703:10:20","nodeType":"YulLiteral","src":"29703:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"29690:6:20","nodeType":"YulIdentifier","src":"29690:6:20"},"nativeSrc":"29690:24:20","nodeType":"YulFunctionCall","src":"29690:24:20"},"nativeSrc":"29690:24:20","nodeType":"YulExpressionStatement","src":"29690:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29764:4:20","nodeType":"YulLiteral","src":"29764:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"29770:4:20","nodeType":"YulLiteral","src":"29770:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"29757:6:20","nodeType":"YulIdentifier","src":"29757:6:20"},"nativeSrc":"29757:18:20","nodeType":"YulFunctionCall","src":"29757:18:20"},"nativeSrc":"29757:18:20","nodeType":"YulExpressionStatement","src":"29757:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"29665:5:20","nodeType":"YulIdentifier","src":"29665:5:20"}],"functionName":{"name":"iszero","nativeSrc":"29658:6:20","nodeType":"YulIdentifier","src":"29658:6:20"},"nativeSrc":"29658:13:20","nodeType":"YulFunctionCall","src":"29658:13:20"},"nativeSrc":"29655:134:20","nodeType":"YulIf","src":"29655:134:20"},{"body":{"nativeSrc":"29981:239:20","nodeType":"YulBlock","src":"29981:239:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30006:4:20","nodeType":"YulLiteral","src":"30006:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"30012:5:20","nodeType":"YulIdentifier","src":"30012:5:20"}],"functionName":{"name":"mstore","nativeSrc":"29999:6:20","nodeType":"YulIdentifier","src":"29999:6:20"},"nativeSrc":"29999:19:20","nodeType":"YulFunctionCall","src":"29999:19:20"},"nativeSrc":"29999:19:20","nodeType":"YulExpressionStatement","src":"29999:19:20"},{"body":{"nativeSrc":"30075:131:20","nodeType":"YulBlock","src":"30075:131:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30104:4:20","nodeType":"YulLiteral","src":"30104:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"30110:10:20","nodeType":"YulLiteral","src":"30110:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"30097:6:20","nodeType":"YulIdentifier","src":"30097:6:20"},"nativeSrc":"30097:24:20","nodeType":"YulFunctionCall","src":"30097:24:20"},"nativeSrc":"30097:24:20","nodeType":"YulExpressionStatement","src":"30097:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30177:4:20","nodeType":"YulLiteral","src":"30177:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"30183:4:20","nodeType":"YulLiteral","src":"30183:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"30170:6:20","nodeType":"YulIdentifier","src":"30170:6:20"},"nativeSrc":"30170:18:20","nodeType":"YulFunctionCall","src":"30170:18:20"},"nativeSrc":"30170:18:20","nodeType":"YulExpressionStatement","src":"30170:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30061:4:20","nodeType":"YulLiteral","src":"30061:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"30067:4:20","nodeType":"YulLiteral","src":"30067:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"30051:9:20","nodeType":"YulIdentifier","src":"30051:9:20"},"nativeSrc":"30051:21:20","nodeType":"YulFunctionCall","src":"30051:21:20"}],"functionName":{"name":"sload","nativeSrc":"30045:5:20","nodeType":"YulIdentifier","src":"30045:5:20"},"nativeSrc":"30045:28:20","nodeType":"YulFunctionCall","src":"30045:28:20"}],"functionName":{"name":"iszero","nativeSrc":"30038:6:20","nodeType":"YulIdentifier","src":"30038:6:20"},"nativeSrc":"30038:36:20","nodeType":"YulFunctionCall","src":"30038:36:20"},"nativeSrc":"30035:171:20","nodeType":"YulIf","src":"30035:171:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"29960:2:20","nodeType":"YulIdentifier","src":"29960:2:20"}],"functionName":{"name":"iszero","nativeSrc":"29953:6:20","nodeType":"YulIdentifier","src":"29953:6:20"},"nativeSrc":"29953:10:20","nodeType":"YulFunctionCall","src":"29953:10:20"},{"arguments":[{"name":"by","nativeSrc":"29968:2:20","nodeType":"YulIdentifier","src":"29968:2:20"},{"name":"owner","nativeSrc":"29972:5:20","nodeType":"YulIdentifier","src":"29972:5:20"}],"functionName":{"name":"eq","nativeSrc":"29965:2:20","nodeType":"YulIdentifier","src":"29965:2:20"},"nativeSrc":"29965:13:20","nodeType":"YulFunctionCall","src":"29965:13:20"}],"functionName":{"name":"or","nativeSrc":"29950:2:20","nodeType":"YulIdentifier","src":"29950:2:20"},"nativeSrc":"29950:29:20","nodeType":"YulFunctionCall","src":"29950:29:20"}],"functionName":{"name":"iszero","nativeSrc":"29943:6:20","nodeType":"YulIdentifier","src":"29943:6:20"},"nativeSrc":"29943:37:20","nodeType":"YulFunctionCall","src":"29943:37:20"},"nativeSrc":"29940:280:20","nodeType":"YulIf","src":"29940:280:20"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30314:1:20","nodeType":"YulLiteral","src":"30314:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"30317:13:20","nodeType":"YulIdentifier","src":"30317:13:20"}],"functionName":{"name":"add","nativeSrc":"30310:3:20","nodeType":"YulIdentifier","src":"30310:3:20"},"nativeSrc":"30310:21:20","nodeType":"YulFunctionCall","src":"30310:21:20"},{"name":"account","nativeSrc":"30333:7:20","nodeType":"YulIdentifier","src":"30333:7:20"}],"functionName":{"name":"sstore","nativeSrc":"30303:6:20","nodeType":"YulIdentifier","src":"30303:6:20"},"nativeSrc":"30303:38:20","nodeType":"YulFunctionCall","src":"30303:38:20"},"nativeSrc":"30303:38:20","nodeType":"YulExpressionStatement","src":"30303:38:20"},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"30401:8:20","nodeType":"YulIdentifier","src":"30401:8:20"},"nativeSrc":"30401:10:20","nodeType":"YulFunctionCall","src":"30401:10:20"},{"kind":"number","nativeSrc":"30413:4:20","nodeType":"YulLiteral","src":"30413:4:20","type":"","value":"0x00"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"30419:25:20","nodeType":"YulIdentifier","src":"30419:25:20"},{"name":"owner","nativeSrc":"30446:5:20","nodeType":"YulIdentifier","src":"30446:5:20"},{"name":"account","nativeSrc":"30453:7:20","nodeType":"YulIdentifier","src":"30453:7:20"},{"name":"id","nativeSrc":"30462:2:20","nodeType":"YulIdentifier","src":"30462:2:20"}],"functionName":{"name":"log4","nativeSrc":"30396:4:20","nodeType":"YulIdentifier","src":"30396:4:20"},"nativeSrc":"30396:69:20","nodeType":"YulFunctionCall","src":"30396:69:20"},"nativeSrc":"30396:69:20","nodeType":"YulExpressionStatement","src":"30396:69:20"}]},"evmVersion":"cancun","externalReferences":[{"declaration":8435,"isOffset":false,"isSlot":false,"src":"30419:25:20","valueSize":1},{"declaration":8445,"isOffset":false,"isSlot":false,"src":"29421:24:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"29238:7:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"29269:7:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"30333:7:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"30453:7:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29290:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29316:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29447:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29960:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29968:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"29389:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"29489:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"29497:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"30462:2:20","valueSize":1}],"id":8897,"nodeType":"InlineAssembly","src":"29125:1350:20"}]},"documentation":{"id":8888,"nodeType":"StructuredDocumentation","src":"28727:307:20","text":"@dev Sets `account` as the approved account to manage token `id`, using `by`.\n Requirements:\n - Token `id` must exist.\n - If `by` is not the zero address, `by` must be the owner\n or an approved operator for the token owner.\n Emits a {Approval} event."},"id":8899,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"29048:8:20","nodeType":"FunctionDefinition","parameters":{"id":8895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8890,"mutability":"mutable","name":"by","nameLocation":"29065:2:20","nodeType":"VariableDeclaration","scope":8899,"src":"29057:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8889,"name":"address","nodeType":"ElementaryTypeName","src":"29057:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8892,"mutability":"mutable","name":"account","nameLocation":"29077:7:20","nodeType":"VariableDeclaration","scope":8899,"src":"29069:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8891,"name":"address","nodeType":"ElementaryTypeName","src":"29069:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8894,"mutability":"mutable","name":"id","nameLocation":"29094:2:20","nodeType":"VariableDeclaration","scope":8899,"src":"29086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8893,"name":"uint256","nodeType":"ElementaryTypeName","src":"29086:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29056:41:20"},"returnParameters":{"id":8896,"nodeType":"ParameterList","parameters":[],"src":"29115:0:20"},"scope":9111,"src":"29039:1442:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8910,"nodeType":"Block","src":"30737:670:20","statements":[{"AST":{"nativeSrc":"30799:602:20","nodeType":"YulBlock","src":"30799:602:20","statements":[{"nativeSrc":"30853:26:20","nodeType":"YulAssignment","src":"30853:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"30863:2:20","nodeType":"YulLiteral","src":"30863:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"30871:2:20","nodeType":"YulLiteral","src":"30871:2:20","type":"","value":"96"},{"name":"by","nativeSrc":"30875:2:20","nodeType":"YulIdentifier","src":"30875:2:20"}],"functionName":{"name":"shl","nativeSrc":"30867:3:20","nodeType":"YulIdentifier","src":"30867:3:20"},"nativeSrc":"30867:11:20","nodeType":"YulFunctionCall","src":"30867:11:20"}],"functionName":{"name":"shr","nativeSrc":"30859:3:20","nodeType":"YulIdentifier","src":"30859:3:20"},"nativeSrc":"30859:20:20","nodeType":"YulFunctionCall","src":"30859:20:20"},"variableNames":[{"name":"by","nativeSrc":"30853:2:20","nodeType":"YulIdentifier","src":"30853:2:20"}]},{"nativeSrc":"30892:38:20","nodeType":"YulAssignment","src":"30892:38:20","value":{"arguments":[{"kind":"number","nativeSrc":"30908:2:20","nodeType":"YulLiteral","src":"30908:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"30916:2:20","nodeType":"YulLiteral","src":"30916:2:20","type":"","value":"96"},{"name":"operator","nativeSrc":"30920:8:20","nodeType":"YulIdentifier","src":"30920:8:20"}],"functionName":{"name":"shl","nativeSrc":"30912:3:20","nodeType":"YulIdentifier","src":"30912:3:20"},"nativeSrc":"30912:17:20","nodeType":"YulFunctionCall","src":"30912:17:20"}],"functionName":{"name":"shr","nativeSrc":"30904:3:20","nodeType":"YulIdentifier","src":"30904:3:20"},"nativeSrc":"30904:26:20","nodeType":"YulFunctionCall","src":"30904:26:20"},"variableNames":[{"name":"operator","nativeSrc":"30892:8:20","nodeType":"YulIdentifier","src":"30892:8:20"}]},{"nativeSrc":"30977:40:20","nodeType":"YulAssignment","src":"30977:40:20","value":{"arguments":[{"arguments":[{"name":"isApproved","nativeSrc":"31005:10:20","nodeType":"YulIdentifier","src":"31005:10:20"}],"functionName":{"name":"iszero","nativeSrc":"30998:6:20","nodeType":"YulIdentifier","src":"30998:6:20"},"nativeSrc":"30998:18:20","nodeType":"YulFunctionCall","src":"30998:18:20"}],"functionName":{"name":"iszero","nativeSrc":"30991:6:20","nodeType":"YulIdentifier","src":"30991:6:20"},"nativeSrc":"30991:26:20","nodeType":"YulFunctionCall","src":"30991:26:20"},"variableNames":[{"name":"isApproved","nativeSrc":"30977:10:20","nodeType":"YulIdentifier","src":"30977:10:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31100:4:20","nodeType":"YulLiteral","src":"31100:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"31109:24:20","nodeType":"YulIdentifier","src":"31109:24:20"},{"name":"operator","nativeSrc":"31135:8:20","nodeType":"YulIdentifier","src":"31135:8:20"}],"functionName":{"name":"or","nativeSrc":"31106:2:20","nodeType":"YulIdentifier","src":"31106:2:20"},"nativeSrc":"31106:38:20","nodeType":"YulFunctionCall","src":"31106:38:20"}],"functionName":{"name":"mstore","nativeSrc":"31093:6:20","nodeType":"YulIdentifier","src":"31093:6:20"},"nativeSrc":"31093:52:20","nodeType":"YulFunctionCall","src":"31093:52:20"},"nativeSrc":"31093:52:20","nodeType":"YulExpressionStatement","src":"31093:52:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31165:4:20","nodeType":"YulLiteral","src":"31165:4:20","type":"","value":"0x00"},{"name":"by","nativeSrc":"31171:2:20","nodeType":"YulIdentifier","src":"31171:2:20"}],"functionName":{"name":"mstore","nativeSrc":"31158:6:20","nodeType":"YulIdentifier","src":"31158:6:20"},"nativeSrc":"31158:16:20","nodeType":"YulFunctionCall","src":"31158:16:20"},"nativeSrc":"31158:16:20","nodeType":"YulExpressionStatement","src":"31158:16:20"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31204:4:20","nodeType":"YulLiteral","src":"31204:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"31210:4:20","nodeType":"YulLiteral","src":"31210:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"31194:9:20","nodeType":"YulIdentifier","src":"31194:9:20"},"nativeSrc":"31194:21:20","nodeType":"YulFunctionCall","src":"31194:21:20"},{"name":"isApproved","nativeSrc":"31217:10:20","nodeType":"YulIdentifier","src":"31217:10:20"}],"functionName":{"name":"sstore","nativeSrc":"31187:6:20","nodeType":"YulIdentifier","src":"31187:6:20"},"nativeSrc":"31187:41:20","nodeType":"YulFunctionCall","src":"31187:41:20"},"nativeSrc":"31187:41:20","nodeType":"YulExpressionStatement","src":"31187:41:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31296:4:20","nodeType":"YulLiteral","src":"31296:4:20","type":"","value":"0x00"},{"name":"isApproved","nativeSrc":"31302:10:20","nodeType":"YulIdentifier","src":"31302:10:20"}],"functionName":{"name":"mstore","nativeSrc":"31289:6:20","nodeType":"YulIdentifier","src":"31289:6:20"},"nativeSrc":"31289:24:20","nodeType":"YulFunctionCall","src":"31289:24:20"},"nativeSrc":"31289:24:20","nodeType":"YulExpressionStatement","src":"31289:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31331:4:20","nodeType":"YulLiteral","src":"31331:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"31337:4:20","nodeType":"YulLiteral","src":"31337:4:20","type":"","value":"0x20"},{"name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nativeSrc":"31343:33:20","nodeType":"YulIdentifier","src":"31343:33:20"},{"name":"by","nativeSrc":"31378:2:20","nodeType":"YulIdentifier","src":"31378:2:20"},{"name":"operator","nativeSrc":"31382:8:20","nodeType":"YulIdentifier","src":"31382:8:20"}],"functionName":{"name":"log3","nativeSrc":"31326:4:20","nodeType":"YulIdentifier","src":"31326:4:20"},"nativeSrc":"31326:65:20","nodeType":"YulFunctionCall","src":"31326:65:20"},"nativeSrc":"31326:65:20","nodeType":"YulExpressionStatement","src":"31326:65:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8439,"isOffset":false,"isSlot":false,"src":"31343:33:20","valueSize":1},{"declaration":8445,"isOffset":false,"isSlot":false,"src":"31109:24:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"30853:2:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"30875:2:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"31171:2:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"31378:2:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"30977:10:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"31005:10:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"31217:10:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"31302:10:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"30892:8:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"30920:8:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"31135:8:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"31382:8:20","valueSize":1}],"id":8909,"nodeType":"InlineAssembly","src":"30790:611:20"}]},"documentation":{"id":8900,"nodeType":"StructuredDocumentation","src":"30487:153:20","text":"@dev Approve or remove the `operator` as an operator for `by`,\n without authorization checks.\n Emits an {ApprovalForAll} event."},"id":8911,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"30654:18:20","nodeType":"FunctionDefinition","parameters":{"id":8907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8902,"mutability":"mutable","name":"by","nameLocation":"30681:2:20","nodeType":"VariableDeclaration","scope":8911,"src":"30673:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8901,"name":"address","nodeType":"ElementaryTypeName","src":"30673:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8904,"mutability":"mutable","name":"operator","nameLocation":"30693:8:20","nodeType":"VariableDeclaration","scope":8911,"src":"30685:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8903,"name":"address","nodeType":"ElementaryTypeName","src":"30685:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8906,"mutability":"mutable","name":"isApproved","nameLocation":"30708:10:20","nodeType":"VariableDeclaration","scope":8911,"src":"30703:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8905,"name":"bool","nodeType":"ElementaryTypeName","src":"30703:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30672:47:20"},"returnParameters":{"id":8908,"nodeType":"ParameterList","parameters":[],"src":"30737:0:20"},"scope":9111,"src":"30645:762:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8931,"nodeType":"Block","src":"31836:52:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31864:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31856:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8922,"name":"address","nodeType":"ElementaryTypeName","src":"31856:7:20","typeDescriptions":{}}},"id":8925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31856:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8926,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8914,"src":"31868:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8927,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8916,"src":"31874:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8928,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8918,"src":"31878:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8921,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8932,8958],"referencedDeclaration":8958,"src":"31846:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":8929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31846:35:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8930,"nodeType":"ExpressionStatement","src":"31846:35:20"}]},"documentation":{"id":8912,"nodeType":"StructuredDocumentation","src":"31696:61:20","text":"@dev Equivalent to `_transfer(address(0), from, to, id)`."},"id":8932,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"31771:9:20","nodeType":"FunctionDefinition","parameters":{"id":8919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8914,"mutability":"mutable","name":"from","nameLocation":"31789:4:20","nodeType":"VariableDeclaration","scope":8932,"src":"31781:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8913,"name":"address","nodeType":"ElementaryTypeName","src":"31781:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8916,"mutability":"mutable","name":"to","nameLocation":"31803:2:20","nodeType":"VariableDeclaration","scope":8932,"src":"31795:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8915,"name":"address","nodeType":"ElementaryTypeName","src":"31795:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8918,"mutability":"mutable","name":"id","nameLocation":"31815:2:20","nodeType":"VariableDeclaration","scope":8932,"src":"31807:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8917,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31780:38:20"},"returnParameters":{"id":8920,"nodeType":"ParameterList","parameters":[],"src":"31836:0:20"},"scope":9111,"src":"31762:126:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8957,"nodeType":"Block","src":"32364:2921:20","statements":[{"expression":{"arguments":[{"id":8945,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8937,"src":"32395:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8946,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8939,"src":"32401:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8947,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"32405:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8944,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"32374:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32374:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8949,"nodeType":"ExpressionStatement","src":"32374:34:20"},{"AST":{"nativeSrc":"32470:2766:20","nodeType":"YulBlock","src":"32470:2766:20","statements":[{"nativeSrc":"32524:37:20","nodeType":"YulVariableDeclaration","src":"32524:37:20","value":{"arguments":[{"kind":"number","nativeSrc":"32550:2:20","nodeType":"YulLiteral","src":"32550:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"32558:1:20","nodeType":"YulLiteral","src":"32558:1:20","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"32554:3:20","nodeType":"YulIdentifier","src":"32554:3:20"},"nativeSrc":"32554:6:20","nodeType":"YulFunctionCall","src":"32554:6:20"}],"functionName":{"name":"shr","nativeSrc":"32546:3:20","nodeType":"YulIdentifier","src":"32546:3:20"},"nativeSrc":"32546:15:20","nodeType":"YulFunctionCall","src":"32546:15:20"},"variables":[{"name":"bitmaskAddress","nativeSrc":"32528:14:20","nodeType":"YulTypedName","src":"32528:14:20","type":""}]},{"nativeSrc":"32574:33:20","nodeType":"YulAssignment","src":"32574:33:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32586:14:20","nodeType":"YulIdentifier","src":"32586:14:20"},{"name":"from","nativeSrc":"32602:4:20","nodeType":"YulIdentifier","src":"32602:4:20"}],"functionName":{"name":"and","nativeSrc":"32582:3:20","nodeType":"YulIdentifier","src":"32582:3:20"},"nativeSrc":"32582:25:20","nodeType":"YulFunctionCall","src":"32582:25:20"},"variableNames":[{"name":"from","nativeSrc":"32574:4:20","nodeType":"YulIdentifier","src":"32574:4:20"}]},{"nativeSrc":"32620:29:20","nodeType":"YulAssignment","src":"32620:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32630:14:20","nodeType":"YulIdentifier","src":"32630:14:20"},{"name":"to","nativeSrc":"32646:2:20","nodeType":"YulIdentifier","src":"32646:2:20"}],"functionName":{"name":"and","nativeSrc":"32626:3:20","nodeType":"YulIdentifier","src":"32626:3:20"},"nativeSrc":"32626:23:20","nodeType":"YulFunctionCall","src":"32626:23:20"},"variableNames":[{"name":"to","nativeSrc":"32620:2:20","nodeType":"YulIdentifier","src":"32620:2:20"}]},{"nativeSrc":"32662:29:20","nodeType":"YulAssignment","src":"32662:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32672:14:20","nodeType":"YulIdentifier","src":"32672:14:20"},{"name":"by","nativeSrc":"32688:2:20","nodeType":"YulIdentifier","src":"32688:2:20"}],"functionName":{"name":"and","nativeSrc":"32668:3:20","nodeType":"YulIdentifier","src":"32668:3:20"},"nativeSrc":"32668:23:20","nodeType":"YulFunctionCall","src":"32668:23:20"},"variableNames":[{"name":"by","nativeSrc":"32662:2:20","nodeType":"YulIdentifier","src":"32662:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32751:4:20","nodeType":"YulLiteral","src":"32751:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"32757:2:20","nodeType":"YulIdentifier","src":"32757:2:20"}],"functionName":{"name":"mstore","nativeSrc":"32744:6:20","nodeType":"YulIdentifier","src":"32744:6:20"},"nativeSrc":"32744:16:20","nodeType":"YulFunctionCall","src":"32744:16:20"},"nativeSrc":"32744:16:20","nodeType":"YulExpressionStatement","src":"32744:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32780:4:20","nodeType":"YulLiteral","src":"32780:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"32789:24:20","nodeType":"YulIdentifier","src":"32789:24:20"},{"name":"by","nativeSrc":"32815:2:20","nodeType":"YulIdentifier","src":"32815:2:20"}],"functionName":{"name":"or","nativeSrc":"32786:2:20","nodeType":"YulIdentifier","src":"32786:2:20"},"nativeSrc":"32786:32:20","nodeType":"YulFunctionCall","src":"32786:32:20"}],"functionName":{"name":"mstore","nativeSrc":"32773:6:20","nodeType":"YulIdentifier","src":"32773:6:20"},"nativeSrc":"32773:46:20","nodeType":"YulFunctionCall","src":"32773:46:20"},"nativeSrc":"32773:46:20","nodeType":"YulExpressionStatement","src":"32773:46:20"},{"nativeSrc":"32832:60:20","nodeType":"YulVariableDeclaration","src":"32832:60:20","value":{"arguments":[{"name":"id","nativeSrc":"32857:2:20","nodeType":"YulIdentifier","src":"32857:2:20"},{"arguments":[{"name":"id","nativeSrc":"32865:2:20","nodeType":"YulIdentifier","src":"32865:2:20"},{"arguments":[{"kind":"number","nativeSrc":"32879:4:20","nodeType":"YulLiteral","src":"32879:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"32885:4:20","nodeType":"YulLiteral","src":"32885:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"32869:9:20","nodeType":"YulIdentifier","src":"32869:9:20"},"nativeSrc":"32869:21:20","nodeType":"YulFunctionCall","src":"32869:21:20"}],"functionName":{"name":"add","nativeSrc":"32861:3:20","nodeType":"YulIdentifier","src":"32861:3:20"},"nativeSrc":"32861:30:20","nodeType":"YulFunctionCall","src":"32861:30:20"}],"functionName":{"name":"add","nativeSrc":"32853:3:20","nodeType":"YulIdentifier","src":"32853:3:20"},"nativeSrc":"32853:39:20","nodeType":"YulFunctionCall","src":"32853:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"32836:13:20","nodeType":"YulTypedName","src":"32836:13:20","type":""}]},{"nativeSrc":"32905:43:20","nodeType":"YulVariableDeclaration","src":"32905:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"32934:13:20","nodeType":"YulIdentifier","src":"32934:13:20"}],"functionName":{"name":"sload","nativeSrc":"32928:5:20","nodeType":"YulIdentifier","src":"32928:5:20"},"nativeSrc":"32928:20:20","nodeType":"YulFunctionCall","src":"32928:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"32909:15:20","nodeType":"YulTypedName","src":"32909:15:20","type":""}]},{"nativeSrc":"32961:49:20","nodeType":"YulVariableDeclaration","src":"32961:49:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32978:14:20","nodeType":"YulIdentifier","src":"32978:14:20"},{"name":"ownershipPacked","nativeSrc":"32994:15:20","nodeType":"YulIdentifier","src":"32994:15:20"}],"functionName":{"name":"and","nativeSrc":"32974:3:20","nodeType":"YulIdentifier","src":"32974:3:20"},"nativeSrc":"32974:36:20","nodeType":"YulFunctionCall","src":"32974:36:20"},"variables":[{"name":"owner","nativeSrc":"32965:5:20","nodeType":"YulTypedName","src":"32965:5:20","type":""}]},{"body":{"nativeSrc":"33144:190:20","nodeType":"YulBlock","src":"33144:190:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33247:1:20","nodeType":"YulLiteral","src":"33247:1:20","type":"","value":"2"},{"arguments":[{"name":"owner","nativeSrc":"33257:5:20","nodeType":"YulIdentifier","src":"33257:5:20"}],"functionName":{"name":"iszero","nativeSrc":"33250:6:20","nodeType":"YulIdentifier","src":"33250:6:20"},"nativeSrc":"33250:13:20","nodeType":"YulFunctionCall","src":"33250:13:20"}],"functionName":{"name":"shl","nativeSrc":"33243:3:20","nodeType":"YulIdentifier","src":"33243:3:20"},"nativeSrc":"33243:21:20","nodeType":"YulFunctionCall","src":"33243:21:20"},{"kind":"number","nativeSrc":"33266:18:20","nodeType":"YulLiteral","src":"33266:18:20","type":"","value":"0xceea21b6a1148100"}],"functionName":{"name":"mstore","nativeSrc":"33236:6:20","nodeType":"YulIdentifier","src":"33236:6:20"},"nativeSrc":"33236:49:20","nodeType":"YulFunctionCall","src":"33236:49:20"},"nativeSrc":"33236:49:20","nodeType":"YulExpressionStatement","src":"33236:49:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33309:4:20","nodeType":"YulLiteral","src":"33309:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33315:4:20","nodeType":"YulLiteral","src":"33315:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33302:6:20","nodeType":"YulIdentifier","src":"33302:6:20"},"nativeSrc":"33302:18:20","nodeType":"YulFunctionCall","src":"33302:18:20"},"nativeSrc":"33302:18:20","nodeType":"YulExpressionStatement","src":"33302:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"owner","nativeSrc":"33119:5:20","nodeType":"YulIdentifier","src":"33119:5:20"},{"arguments":[{"name":"owner","nativeSrc":"33129:5:20","nodeType":"YulIdentifier","src":"33129:5:20"},{"name":"from","nativeSrc":"33136:4:20","nodeType":"YulIdentifier","src":"33136:4:20"}],"functionName":{"name":"eq","nativeSrc":"33126:2:20","nodeType":"YulIdentifier","src":"33126:2:20"},"nativeSrc":"33126:15:20","nodeType":"YulFunctionCall","src":"33126:15:20"}],"functionName":{"name":"mul","nativeSrc":"33115:3:20","nodeType":"YulIdentifier","src":"33115:3:20"},"nativeSrc":"33115:27:20","nodeType":"YulFunctionCall","src":"33115:27:20"}],"functionName":{"name":"iszero","nativeSrc":"33108:6:20","nodeType":"YulIdentifier","src":"33108:6:20"},"nativeSrc":"33108:35:20","nodeType":"YulFunctionCall","src":"33108:35:20"},"nativeSrc":"33105:229:20","nodeType":"YulIf","src":"33105:229:20"},{"nativeSrc":"33406:704:20","nodeType":"YulBlock","src":"33406:704:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33431:4:20","nodeType":"YulLiteral","src":"33431:4:20","type":"","value":"0x00"},{"name":"from","nativeSrc":"33437:4:20","nodeType":"YulIdentifier","src":"33437:4:20"}],"functionName":{"name":"mstore","nativeSrc":"33424:6:20","nodeType":"YulIdentifier","src":"33424:6:20"},"nativeSrc":"33424:18:20","nodeType":"YulFunctionCall","src":"33424:18:20"},"nativeSrc":"33424:18:20","nodeType":"YulExpressionStatement","src":"33424:18:20"},{"nativeSrc":"33459:51:20","nodeType":"YulVariableDeclaration","src":"33459:51:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33492:1:20","nodeType":"YulLiteral","src":"33492:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"33495:13:20","nodeType":"YulIdentifier","src":"33495:13:20"}],"functionName":{"name":"add","nativeSrc":"33488:3:20","nodeType":"YulIdentifier","src":"33488:3:20"},"nativeSrc":"33488:21:20","nodeType":"YulFunctionCall","src":"33488:21:20"}],"functionName":{"name":"sload","nativeSrc":"33482:5:20","nodeType":"YulIdentifier","src":"33482:5:20"},"nativeSrc":"33482:28:20","nodeType":"YulFunctionCall","src":"33482:28:20"},"variables":[{"name":"approvedAddress","nativeSrc":"33463:15:20","nodeType":"YulTypedName","src":"33463:15:20","type":""}]},{"body":{"nativeSrc":"33746:223:20","nodeType":"YulBlock","src":"33746:223:20","statements":[{"body":{"nativeSrc":"33808:143:20","nodeType":"YulBlock","src":"33808:143:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33841:4:20","nodeType":"YulLiteral","src":"33841:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"33847:10:20","nodeType":"YulLiteral","src":"33847:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"33834:6:20","nodeType":"YulIdentifier","src":"33834:6:20"},"nativeSrc":"33834:24:20","nodeType":"YulFunctionCall","src":"33834:24:20"},"nativeSrc":"33834:24:20","nodeType":"YulExpressionStatement","src":"33834:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33918:4:20","nodeType":"YulLiteral","src":"33918:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33924:4:20","nodeType":"YulLiteral","src":"33924:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33911:6:20","nodeType":"YulIdentifier","src":"33911:6:20"},"nativeSrc":"33911:18:20","nodeType":"YulFunctionCall","src":"33911:18:20"},"nativeSrc":"33911:18:20","nodeType":"YulExpressionStatement","src":"33911:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33794:4:20","nodeType":"YulLiteral","src":"33794:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"33800:4:20","nodeType":"YulLiteral","src":"33800:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"33784:9:20","nodeType":"YulIdentifier","src":"33784:9:20"},"nativeSrc":"33784:21:20","nodeType":"YulFunctionCall","src":"33784:21:20"}],"functionName":{"name":"sload","nativeSrc":"33778:5:20","nodeType":"YulIdentifier","src":"33778:5:20"},"nativeSrc":"33778:28:20","nodeType":"YulFunctionCall","src":"33778:28:20"}],"functionName":{"name":"iszero","nativeSrc":"33771:6:20","nodeType":"YulIdentifier","src":"33771:6:20"},"nativeSrc":"33771:36:20","nodeType":"YulFunctionCall","src":"33771:36:20"},"nativeSrc":"33768:183:20","nodeType":"YulIf","src":"33768:183:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"33697:2:20","nodeType":"YulIdentifier","src":"33697:2:20"}],"functionName":{"name":"iszero","nativeSrc":"33690:6:20","nodeType":"YulIdentifier","src":"33690:6:20"},"nativeSrc":"33690:10:20","nodeType":"YulFunctionCall","src":"33690:10:20"},{"arguments":[{"arguments":[{"name":"by","nativeSrc":"33708:2:20","nodeType":"YulIdentifier","src":"33708:2:20"},{"name":"from","nativeSrc":"33712:4:20","nodeType":"YulIdentifier","src":"33712:4:20"}],"functionName":{"name":"eq","nativeSrc":"33705:2:20","nodeType":"YulIdentifier","src":"33705:2:20"},"nativeSrc":"33705:12:20","nodeType":"YulFunctionCall","src":"33705:12:20"},{"arguments":[{"name":"by","nativeSrc":"33722:2:20","nodeType":"YulIdentifier","src":"33722:2:20"},{"name":"approvedAddress","nativeSrc":"33726:15:20","nodeType":"YulIdentifier","src":"33726:15:20"}],"functionName":{"name":"eq","nativeSrc":"33719:2:20","nodeType":"YulIdentifier","src":"33719:2:20"},"nativeSrc":"33719:23:20","nodeType":"YulFunctionCall","src":"33719:23:20"}],"functionName":{"name":"or","nativeSrc":"33702:2:20","nodeType":"YulIdentifier","src":"33702:2:20"},"nativeSrc":"33702:41:20","nodeType":"YulFunctionCall","src":"33702:41:20"}],"functionName":{"name":"or","nativeSrc":"33687:2:20","nodeType":"YulIdentifier","src":"33687:2:20"},"nativeSrc":"33687:57:20","nodeType":"YulFunctionCall","src":"33687:57:20"}],"functionName":{"name":"iszero","nativeSrc":"33680:6:20","nodeType":"YulIdentifier","src":"33680:6:20"},"nativeSrc":"33680:65:20","nodeType":"YulFunctionCall","src":"33680:65:20"},"nativeSrc":"33677:292:20","nodeType":"YulIf","src":"33677:292:20"},{"body":{"nativeSrc":"34060:36:20","nodeType":"YulBlock","src":"34060:36:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34073:1:20","nodeType":"YulLiteral","src":"34073:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"34076:13:20","nodeType":"YulIdentifier","src":"34076:13:20"}],"functionName":{"name":"add","nativeSrc":"34069:3:20","nodeType":"YulIdentifier","src":"34069:3:20"},"nativeSrc":"34069:21:20","nodeType":"YulFunctionCall","src":"34069:21:20"},{"kind":"number","nativeSrc":"34092:1:20","nodeType":"YulLiteral","src":"34092:1:20","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"34062:6:20","nodeType":"YulIdentifier","src":"34062:6:20"},"nativeSrc":"34062:32:20","nodeType":"YulFunctionCall","src":"34062:32:20"},"nativeSrc":"34062:32:20","nodeType":"YulExpressionStatement","src":"34062:32:20"}]},"condition":{"name":"approvedAddress","nativeSrc":"34044:15:20","nodeType":"YulIdentifier","src":"34044:15:20"},"nativeSrc":"34041:55:20","nodeType":"YulIf","src":"34041:55:20"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"34172:13:20","nodeType":"YulIdentifier","src":"34172:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"34191:15:20","nodeType":"YulIdentifier","src":"34191:15:20"},{"arguments":[{"name":"from","nativeSrc":"34212:4:20","nodeType":"YulIdentifier","src":"34212:4:20"},{"name":"to","nativeSrc":"34218:2:20","nodeType":"YulIdentifier","src":"34218:2:20"}],"functionName":{"name":"xor","nativeSrc":"34208:3:20","nodeType":"YulIdentifier","src":"34208:3:20"},"nativeSrc":"34208:13:20","nodeType":"YulFunctionCall","src":"34208:13:20"}],"functionName":{"name":"xor","nativeSrc":"34187:3:20","nodeType":"YulIdentifier","src":"34187:3:20"},"nativeSrc":"34187:35:20","nodeType":"YulFunctionCall","src":"34187:35:20"}],"functionName":{"name":"sstore","nativeSrc":"34165:6:20","nodeType":"YulIdentifier","src":"34165:6:20"},"nativeSrc":"34165:58:20","nodeType":"YulFunctionCall","src":"34165:58:20"},"nativeSrc":"34165:58:20","nodeType":"YulExpressionStatement","src":"34165:58:20"},{"nativeSrc":"34284:148:20","nodeType":"YulBlock","src":"34284:148:20","statements":[{"nativeSrc":"34302:44:20","nodeType":"YulVariableDeclaration","src":"34302:44:20","value":{"arguments":[{"kind":"number","nativeSrc":"34335:4:20","nodeType":"YulLiteral","src":"34335:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"34341:4:20","nodeType":"YulLiteral","src":"34341:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"34325:9:20","nodeType":"YulIdentifier","src":"34325:9:20"},"nativeSrc":"34325:21:20","nodeType":"YulFunctionCall","src":"34325:21:20"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"34306:15:20","nodeType":"YulTypedName","src":"34306:15:20","type":""}]},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"34370:15:20","nodeType":"YulIdentifier","src":"34370:15:20"},{"arguments":[{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"34397:15:20","nodeType":"YulIdentifier","src":"34397:15:20"}],"functionName":{"name":"sload","nativeSrc":"34391:5:20","nodeType":"YulIdentifier","src":"34391:5:20"},"nativeSrc":"34391:22:20","nodeType":"YulFunctionCall","src":"34391:22:20"},{"kind":"number","nativeSrc":"34415:1:20","nodeType":"YulLiteral","src":"34415:1:20","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"34387:3:20","nodeType":"YulIdentifier","src":"34387:3:20"},"nativeSrc":"34387:30:20","nodeType":"YulFunctionCall","src":"34387:30:20"}],"functionName":{"name":"sstore","nativeSrc":"34363:6:20","nodeType":"YulIdentifier","src":"34363:6:20"},"nativeSrc":"34363:55:20","nodeType":"YulFunctionCall","src":"34363:55:20"},"nativeSrc":"34363:55:20","nodeType":"YulExpressionStatement","src":"34363:55:20"}]},{"nativeSrc":"34491:617:20","nodeType":"YulBlock","src":"34491:617:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34516:4:20","nodeType":"YulLiteral","src":"34516:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"34522:2:20","nodeType":"YulIdentifier","src":"34522:2:20"}],"functionName":{"name":"mstore","nativeSrc":"34509:6:20","nodeType":"YulIdentifier","src":"34509:6:20"},"nativeSrc":"34509:16:20","nodeType":"YulFunctionCall","src":"34509:16:20"},"nativeSrc":"34509:16:20","nodeType":"YulExpressionStatement","src":"34509:16:20"},{"nativeSrc":"34542:42:20","nodeType":"YulVariableDeclaration","src":"34542:42:20","value":{"arguments":[{"kind":"number","nativeSrc":"34573:4:20","nodeType":"YulLiteral","src":"34573:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"34579:4:20","nodeType":"YulLiteral","src":"34579:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"34563:9:20","nodeType":"YulIdentifier","src":"34563:9:20"},"nativeSrc":"34563:21:20","nodeType":"YulFunctionCall","src":"34563:21:20"},"variables":[{"name":"toBalanceSlot","nativeSrc":"34546:13:20","nodeType":"YulTypedName","src":"34546:13:20","type":""}]},{"nativeSrc":"34601:55:20","nodeType":"YulVariableDeclaration","src":"34601:55:20","value":{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"34638:13:20","nodeType":"YulIdentifier","src":"34638:13:20"}],"functionName":{"name":"sload","nativeSrc":"34632:5:20","nodeType":"YulIdentifier","src":"34632:5:20"},"nativeSrc":"34632:20:20","nodeType":"YulFunctionCall","src":"34632:20:20"},{"kind":"number","nativeSrc":"34654:1:20","nodeType":"YulLiteral","src":"34654:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"34628:3:20","nodeType":"YulIdentifier","src":"34628:3:20"},"nativeSrc":"34628:28:20","nodeType":"YulFunctionCall","src":"34628:28:20"},"variables":[{"name":"toBalanceSlotPacked","nativeSrc":"34605:19:20","nodeType":"YulTypedName","src":"34605:19:20","type":""}]},{"body":{"nativeSrc":"34832:203:20","nodeType":"YulBlock","src":"34832:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34943:1:20","nodeType":"YulLiteral","src":"34943:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"34953:2:20","nodeType":"YulIdentifier","src":"34953:2:20"}],"functionName":{"name":"iszero","nativeSrc":"34946:6:20","nodeType":"YulIdentifier","src":"34946:6:20"},"nativeSrc":"34946:10:20","nodeType":"YulFunctionCall","src":"34946:10:20"}],"functionName":{"name":"shl","nativeSrc":"34939:3:20","nodeType":"YulIdentifier","src":"34939:3:20"},"nativeSrc":"34939:18:20","nodeType":"YulFunctionCall","src":"34939:18:20"},{"kind":"number","nativeSrc":"34959:18:20","nodeType":"YulLiteral","src":"34959:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"34932:6:20","nodeType":"YulIdentifier","src":"34932:6:20"},"nativeSrc":"34932:46:20","nodeType":"YulFunctionCall","src":"34932:46:20"},"nativeSrc":"34932:46:20","nodeType":"YulExpressionStatement","src":"34932:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35006:4:20","nodeType":"YulLiteral","src":"35006:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"35012:4:20","nodeType":"YulLiteral","src":"35012:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"34999:6:20","nodeType":"YulIdentifier","src":"34999:6:20"},"nativeSrc":"34999:18:20","nodeType":"YulFunctionCall","src":"34999:18:20"},"nativeSrc":"34999:18:20","nodeType":"YulExpressionStatement","src":"34999:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"34779:2:20","nodeType":"YulIdentifier","src":"34779:2:20"},{"arguments":[{"name":"toBalanceSlotPacked","nativeSrc":"34787:19:20","nodeType":"YulIdentifier","src":"34787:19:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"34808:20:20","nodeType":"YulIdentifier","src":"34808:20:20"}],"functionName":{"name":"and","nativeSrc":"34783:3:20","nodeType":"YulIdentifier","src":"34783:3:20"},"nativeSrc":"34783:46:20","nodeType":"YulFunctionCall","src":"34783:46:20"}],"functionName":{"name":"mul","nativeSrc":"34775:3:20","nodeType":"YulIdentifier","src":"34775:3:20"},"nativeSrc":"34775:55:20","nodeType":"YulFunctionCall","src":"34775:55:20"}],"functionName":{"name":"iszero","nativeSrc":"34768:6:20","nodeType":"YulIdentifier","src":"34768:6:20"},"nativeSrc":"34768:63:20","nodeType":"YulFunctionCall","src":"34768:63:20"},"nativeSrc":"34765:270:20","nodeType":"YulIf","src":"34765:270:20"},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"35059:13:20","nodeType":"YulIdentifier","src":"35059:13:20"},{"name":"toBalanceSlotPacked","nativeSrc":"35074:19:20","nodeType":"YulIdentifier","src":"35074:19:20"}],"functionName":{"name":"sstore","nativeSrc":"35052:6:20","nodeType":"YulIdentifier","src":"35052:6:20"},"nativeSrc":"35052:42:20","nodeType":"YulFunctionCall","src":"35052:42:20"},"nativeSrc":"35052:42:20","nodeType":"YulExpressionStatement","src":"35052:42:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"35168:8:20","nodeType":"YulIdentifier","src":"35168:8:20"},"nativeSrc":"35168:10:20","nodeType":"YulFunctionCall","src":"35168:10:20"},{"kind":"number","nativeSrc":"35180:4:20","nodeType":"YulLiteral","src":"35180:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"35186:25:20","nodeType":"YulIdentifier","src":"35186:25:20"},{"name":"from","nativeSrc":"35213:4:20","nodeType":"YulIdentifier","src":"35213:4:20"},{"name":"to","nativeSrc":"35219:2:20","nodeType":"YulIdentifier","src":"35219:2:20"},{"name":"id","nativeSrc":"35223:2:20","nodeType":"YulIdentifier","src":"35223:2:20"}],"functionName":{"name":"log4","nativeSrc":"35163:4:20","nodeType":"YulIdentifier","src":"35163:4:20"},"nativeSrc":"35163:63:20","nodeType":"YulFunctionCall","src":"35163:63:20"},"nativeSrc":"35163:63:20","nodeType":"YulExpressionStatement","src":"35163:63:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"32789:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"34808:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"35186:25:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"32662:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"32688:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"32815:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"33697:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"33708:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"33722:2:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"32574:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"32602:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"33136:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"33437:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"33712:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"34212:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"35213:4:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"32757:2:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"32857:2:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"32865:2:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"35223:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"32620:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"32646:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34218:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34522:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34779:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34953:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"35219:2:20","valueSize":1}],"id":8950,"nodeType":"InlineAssembly","src":"32461:2775:20"},{"expression":{"arguments":[{"id":8952,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8937,"src":"35265:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8953,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8939,"src":"35271:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8954,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"35275:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8951,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"35245:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35245:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8956,"nodeType":"ExpressionStatement","src":"35245:33:20"}]},"documentation":{"id":8933,"nodeType":"StructuredDocumentation","src":"31894:379:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"id":8958,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"32287:9:20","nodeType":"FunctionDefinition","parameters":{"id":8942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8935,"mutability":"mutable","name":"by","nameLocation":"32305:2:20","nodeType":"VariableDeclaration","scope":8958,"src":"32297:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8934,"name":"address","nodeType":"ElementaryTypeName","src":"32297:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8937,"mutability":"mutable","name":"from","nameLocation":"32317:4:20","nodeType":"VariableDeclaration","scope":8958,"src":"32309:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8936,"name":"address","nodeType":"ElementaryTypeName","src":"32309:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8939,"mutability":"mutable","name":"to","nameLocation":"32331:2:20","nodeType":"VariableDeclaration","scope":8958,"src":"32323:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8938,"name":"address","nodeType":"ElementaryTypeName","src":"32323:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8941,"mutability":"mutable","name":"id","nameLocation":"32343:2:20","nodeType":"VariableDeclaration","scope":8958,"src":"32335:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8940,"name":"uint256","nodeType":"ElementaryTypeName","src":"32335:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32296:50:20"},"returnParameters":{"id":8943,"nodeType":"ParameterList","parameters":[],"src":"32364:0:20"},"scope":9111,"src":"32278:3007:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8975,"nodeType":"Block","src":"35431:48:20","statements":[{"expression":{"arguments":[{"id":8969,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8961,"src":"35455:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8970,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8963,"src":"35461:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8971,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8965,"src":"35465:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35469:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":8968,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[8976,9010,9031,9064],"referencedDeclaration":9010,"src":"35441:13:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35441:31:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8974,"nodeType":"ExpressionStatement","src":"35441:31:20"}]},"documentation":{"id":8959,"nodeType":"StructuredDocumentation","src":"35291:57:20","text":"@dev Equivalent to `_safeTransfer(from, to, id, \"\")`."},"id":8976,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"35362:13:20","nodeType":"FunctionDefinition","parameters":{"id":8966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8961,"mutability":"mutable","name":"from","nameLocation":"35384:4:20","nodeType":"VariableDeclaration","scope":8976,"src":"35376:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8960,"name":"address","nodeType":"ElementaryTypeName","src":"35376:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8963,"mutability":"mutable","name":"to","nameLocation":"35398:2:20","nodeType":"VariableDeclaration","scope":8976,"src":"35390:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8962,"name":"address","nodeType":"ElementaryTypeName","src":"35390:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8965,"mutability":"mutable","name":"id","nameLocation":"35410:2:20","nodeType":"VariableDeclaration","scope":8976,"src":"35402:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8964,"name":"uint256","nodeType":"ElementaryTypeName","src":"35402:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35375:38:20"},"returnParameters":{"id":8967,"nodeType":"ParameterList","parameters":[],"src":"35431:0:20"},"scope":9111,"src":"35353:126:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9009,"nodeType":"Block","src":"36099:122:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36127:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36119:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8989,"name":"address","nodeType":"ElementaryTypeName","src":"36119:7:20","typeDescriptions":{}}},"id":8992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36119:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8993,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"36131:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8994,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"36137:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8995,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"36141:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8988,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8932,8958],"referencedDeclaration":8958,"src":"36109:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":8996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36109:35:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8997,"nodeType":"ExpressionStatement","src":"36109:35:20"},{"condition":{"arguments":[{"id":8999,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"36167:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8998,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"36158:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36158:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9008,"nodeType":"IfStatement","src":"36154:60:20","trueBody":{"expression":{"arguments":[{"id":9002,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"36195:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9003,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"36201:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9004,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"36205:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9005,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"36209:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9001,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"36172:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36172:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9007,"nodeType":"ExpressionStatement","src":"36172:42:20"}}]},"documentation":{"id":8977,"nodeType":"StructuredDocumentation","src":"35485:492:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9010,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"35991:13:20","nodeType":"FunctionDefinition","parameters":{"id":8986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8979,"mutability":"mutable","name":"from","nameLocation":"36013:4:20","nodeType":"VariableDeclaration","scope":9010,"src":"36005:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8978,"name":"address","nodeType":"ElementaryTypeName","src":"36005:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8981,"mutability":"mutable","name":"to","nameLocation":"36027:2:20","nodeType":"VariableDeclaration","scope":9010,"src":"36019:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8980,"name":"address","nodeType":"ElementaryTypeName","src":"36019:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8983,"mutability":"mutable","name":"id","nameLocation":"36039:2:20","nodeType":"VariableDeclaration","scope":9010,"src":"36031:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8982,"name":"uint256","nodeType":"ElementaryTypeName","src":"36031:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8985,"mutability":"mutable","name":"data","nameLocation":"36056:4:20","nodeType":"VariableDeclaration","scope":9010,"src":"36043:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8984,"name":"bytes","nodeType":"ElementaryTypeName","src":"36043:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36004:57:20"},"returnParameters":{"id":8987,"nodeType":"ParameterList","parameters":[],"src":"36099:0:20"},"scope":9111,"src":"35982:239:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9030,"nodeType":"Block","src":"36383:52:20","statements":[{"expression":{"arguments":[{"id":9023,"name":"by","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9013,"src":"36407:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9024,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9015,"src":"36411:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9025,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9017,"src":"36417:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9026,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9019,"src":"36421:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":9027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36425:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9022,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[8976,9010,9031,9064],"referencedDeclaration":9064,"src":"36393:13:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":9028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36393:35:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9029,"nodeType":"ExpressionStatement","src":"36393:35:20"}]},"documentation":{"id":9011,"nodeType":"StructuredDocumentation","src":"36227:61:20","text":"@dev Equivalent to `_safeTransfer(by, from, to, id, \"\")`."},"id":9031,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"36302:13:20","nodeType":"FunctionDefinition","parameters":{"id":9020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9013,"mutability":"mutable","name":"by","nameLocation":"36324:2:20","nodeType":"VariableDeclaration","scope":9031,"src":"36316:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9012,"name":"address","nodeType":"ElementaryTypeName","src":"36316:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9015,"mutability":"mutable","name":"from","nameLocation":"36336:4:20","nodeType":"VariableDeclaration","scope":9031,"src":"36328:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9014,"name":"address","nodeType":"ElementaryTypeName","src":"36328:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9017,"mutability":"mutable","name":"to","nameLocation":"36350:2:20","nodeType":"VariableDeclaration","scope":9031,"src":"36342:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9016,"name":"address","nodeType":"ElementaryTypeName","src":"36342:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9019,"mutability":"mutable","name":"id","nameLocation":"36362:2:20","nodeType":"VariableDeclaration","scope":9031,"src":"36354:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9018,"name":"uint256","nodeType":"ElementaryTypeName","src":"36354:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36315:50:20"},"returnParameters":{"id":9021,"nodeType":"ParameterList","parameters":[],"src":"36383:0:20"},"scope":9111,"src":"36293:142:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9063,"nodeType":"Block","src":"37102:114:20","statements":[{"expression":{"arguments":[{"id":9046,"name":"by","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9034,"src":"37122:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9047,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"37126:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9048,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"37132:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9049,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9040,"src":"37136:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9045,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8932,8958],"referencedDeclaration":8958,"src":"37112:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":9050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37112:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9051,"nodeType":"ExpressionStatement","src":"37112:27:20"},{"condition":{"arguments":[{"id":9053,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"37162:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9052,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"37153:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37153:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9062,"nodeType":"IfStatement","src":"37149:60:20","trueBody":{"expression":{"arguments":[{"id":9056,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"37190:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9057,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"37196:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9058,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9040,"src":"37200:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9059,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9042,"src":"37204:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9055,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"37167:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37167:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9061,"nodeType":"ExpressionStatement","src":"37167:42:20"}}]},"documentation":{"id":9032,"nodeType":"StructuredDocumentation","src":"36441:527:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9064,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"36982:13:20","nodeType":"FunctionDefinition","parameters":{"id":9043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9034,"mutability":"mutable","name":"by","nameLocation":"37004:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"36996:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9033,"name":"address","nodeType":"ElementaryTypeName","src":"36996:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9036,"mutability":"mutable","name":"from","nameLocation":"37016:4:20","nodeType":"VariableDeclaration","scope":9064,"src":"37008:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9035,"name":"address","nodeType":"ElementaryTypeName","src":"37008:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9038,"mutability":"mutable","name":"to","nameLocation":"37030:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37022:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9037,"name":"address","nodeType":"ElementaryTypeName","src":"37022:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9040,"mutability":"mutable","name":"id","nameLocation":"37042:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37034:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9039,"name":"uint256","nodeType":"ElementaryTypeName","src":"37034:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9042,"mutability":"mutable","name":"data","nameLocation":"37059:4:20","nodeType":"VariableDeclaration","scope":9064,"src":"37046:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9041,"name":"bytes","nodeType":"ElementaryTypeName","src":"37046:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36995:69:20"},"returnParameters":{"id":9044,"nodeType":"ParameterList","parameters":[],"src":"37102:0:20"},"scope":9111,"src":"36973:243:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9074,"nodeType":"Block","src":"37682:2:20","statements":[]},"documentation":{"id":9065,"nodeType":"StructuredDocumentation","src":"37505:87:20","text":"@dev Hook that is called before any token transfers, including minting and burning."},"id":9075,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"37606:20:20","nodeType":"FunctionDefinition","parameters":{"id":9072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9067,"mutability":"mutable","name":"from","nameLocation":"37635:4:20","nodeType":"VariableDeclaration","scope":9075,"src":"37627:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9066,"name":"address","nodeType":"ElementaryTypeName","src":"37627:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9069,"mutability":"mutable","name":"to","nameLocation":"37649:2:20","nodeType":"VariableDeclaration","scope":9075,"src":"37641:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9068,"name":"address","nodeType":"ElementaryTypeName","src":"37641:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9071,"mutability":"mutable","name":"id","nameLocation":"37661:2:20","nodeType":"VariableDeclaration","scope":9075,"src":"37653:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9070,"name":"uint256","nodeType":"ElementaryTypeName","src":"37653:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37626:38:20"},"returnParameters":{"id":9073,"nodeType":"ParameterList","parameters":[],"src":"37682:0:20"},"scope":9111,"src":"37597:87:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9085,"nodeType":"Block","src":"37865:2:20","statements":[]},"documentation":{"id":9076,"nodeType":"StructuredDocumentation","src":"37690:86:20","text":"@dev Hook that is called after any token transfers, including minting and burning."},"id":9086,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"37790:19:20","nodeType":"FunctionDefinition","parameters":{"id":9083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"from","nameLocation":"37818:4:20","nodeType":"VariableDeclaration","scope":9086,"src":"37810:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9077,"name":"address","nodeType":"ElementaryTypeName","src":"37810:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9080,"mutability":"mutable","name":"to","nameLocation":"37832:2:20","nodeType":"VariableDeclaration","scope":9086,"src":"37824:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9079,"name":"address","nodeType":"ElementaryTypeName","src":"37824:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9082,"mutability":"mutable","name":"id","nameLocation":"37844:2:20","nodeType":"VariableDeclaration","scope":9086,"src":"37836:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9081,"name":"uint256","nodeType":"ElementaryTypeName","src":"37836:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37809:38:20"},"returnParameters":{"id":9084,"nodeType":"ParameterList","parameters":[],"src":"37865:0:20"},"scope":9111,"src":"37781:86:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9095,"nodeType":"Block","src":"38281:148:20","statements":[{"AST":{"nativeSrc":"38343:80:20","nodeType":"YulBlock","src":"38343:80:20","statements":[{"nativeSrc":"38357:24:20","nodeType":"YulAssignment","src":"38357:24:20","value":{"arguments":[{"name":"a","nativeSrc":"38379:1:20","nodeType":"YulIdentifier","src":"38379:1:20"}],"functionName":{"name":"extcodesize","nativeSrc":"38367:11:20","nodeType":"YulIdentifier","src":"38367:11:20"},"nativeSrc":"38367:14:20","nodeType":"YulFunctionCall","src":"38367:14:20"},"variableNames":[{"name":"result","nativeSrc":"38357:6:20","nodeType":"YulIdentifier","src":"38357:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9089,"isOffset":false,"isSlot":false,"src":"38379:1:20","valueSize":1},{"declaration":9092,"isOffset":false,"isSlot":false,"src":"38357:6:20","valueSize":1}],"id":9094,"nodeType":"InlineAssembly","src":"38334:89:20"}]},"documentation":{"id":9087,"nodeType":"StructuredDocumentation","src":"38156:56:20","text":"@dev Returns if `a` has bytecode of non-zero length."},"id":9096,"implemented":true,"kind":"function","modifiers":[],"name":"_hasCode","nameLocation":"38226:8:20","nodeType":"FunctionDefinition","parameters":{"id":9090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9089,"mutability":"mutable","name":"a","nameLocation":"38243:1:20","nodeType":"VariableDeclaration","scope":9096,"src":"38235:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9088,"name":"address","nodeType":"ElementaryTypeName","src":"38235:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38234:11:20"},"returnParameters":{"id":9093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9092,"mutability":"mutable","name":"result","nameLocation":"38273:6:20","nodeType":"VariableDeclaration","scope":9096,"src":"38268:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9091,"name":"bool","nodeType":"ElementaryTypeName","src":"38268:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38267:13:20"},"scope":9111,"src":"38217:212:20","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":9109,"nodeType":"Block","src":"38697:1261:20","statements":[{"AST":{"nativeSrc":"38759:1193:20","nodeType":"YulBlock","src":"38759:1193:20","statements":[{"nativeSrc":"38810:20:20","nodeType":"YulVariableDeclaration","src":"38810:20:20","value":{"arguments":[{"kind":"number","nativeSrc":"38825:4:20","nodeType":"YulLiteral","src":"38825:4:20","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"38819:5:20","nodeType":"YulIdentifier","src":"38819:5:20"},"nativeSrc":"38819:11:20","nodeType":"YulFunctionCall","src":"38819:11:20"},"variables":[{"name":"m","nativeSrc":"38814:1:20","nodeType":"YulTypedName","src":"38814:1:20","type":""}]},{"nativeSrc":"38843:42:20","nodeType":"YulVariableDeclaration","src":"38843:42:20","value":{"kind":"number","nativeSrc":"38875:10:20","nodeType":"YulLiteral","src":"38875:10:20","type":"","value":"0x150b7a02"},"variables":[{"name":"onERC721ReceivedSelector","nativeSrc":"38847:24:20","nodeType":"YulTypedName","src":"38847:24:20","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"38905:1:20","nodeType":"YulIdentifier","src":"38905:1:20"},{"name":"onERC721ReceivedSelector","nativeSrc":"38908:24:20","nodeType":"YulIdentifier","src":"38908:24:20"}],"functionName":{"name":"mstore","nativeSrc":"38898:6:20","nodeType":"YulIdentifier","src":"38898:6:20"},"nativeSrc":"38898:35:20","nodeType":"YulFunctionCall","src":"38898:35:20"},"nativeSrc":"38898:35:20","nodeType":"YulExpressionStatement","src":"38898:35:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"38957:1:20","nodeType":"YulIdentifier","src":"38957:1:20"},{"kind":"number","nativeSrc":"38960:4:20","nodeType":"YulLiteral","src":"38960:4:20","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38953:3:20","nodeType":"YulIdentifier","src":"38953:3:20"},"nativeSrc":"38953:12:20","nodeType":"YulFunctionCall","src":"38953:12:20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"38967:6:20","nodeType":"YulIdentifier","src":"38967:6:20"},"nativeSrc":"38967:8:20","nodeType":"YulFunctionCall","src":"38967:8:20"}],"functionName":{"name":"mstore","nativeSrc":"38946:6:20","nodeType":"YulIdentifier","src":"38946:6:20"},"nativeSrc":"38946:30:20","nodeType":"YulFunctionCall","src":"38946:30:20"},"nativeSrc":"38946:30:20","nodeType":"YulExpressionStatement","src":"38946:30:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39049:1:20","nodeType":"YulIdentifier","src":"39049:1:20"},{"kind":"number","nativeSrc":"39052:4:20","nodeType":"YulLiteral","src":"39052:4:20","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"39045:3:20","nodeType":"YulIdentifier","src":"39045:3:20"},"nativeSrc":"39045:12:20","nodeType":"YulFunctionCall","src":"39045:12:20"},{"arguments":[{"kind":"number","nativeSrc":"39063:2:20","nodeType":"YulLiteral","src":"39063:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"39071:2:20","nodeType":"YulLiteral","src":"39071:2:20","type":"","value":"96"},{"name":"from","nativeSrc":"39075:4:20","nodeType":"YulIdentifier","src":"39075:4:20"}],"functionName":{"name":"shl","nativeSrc":"39067:3:20","nodeType":"YulIdentifier","src":"39067:3:20"},"nativeSrc":"39067:13:20","nodeType":"YulFunctionCall","src":"39067:13:20"}],"functionName":{"name":"shr","nativeSrc":"39059:3:20","nodeType":"YulIdentifier","src":"39059:3:20"},"nativeSrc":"39059:22:20","nodeType":"YulFunctionCall","src":"39059:22:20"}],"functionName":{"name":"mstore","nativeSrc":"39038:6:20","nodeType":"YulIdentifier","src":"39038:6:20"},"nativeSrc":"39038:44:20","nodeType":"YulFunctionCall","src":"39038:44:20"},"nativeSrc":"39038:44:20","nodeType":"YulExpressionStatement","src":"39038:44:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39106:1:20","nodeType":"YulIdentifier","src":"39106:1:20"},{"kind":"number","nativeSrc":"39109:4:20","nodeType":"YulLiteral","src":"39109:4:20","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"39102:3:20","nodeType":"YulIdentifier","src":"39102:3:20"},"nativeSrc":"39102:12:20","nodeType":"YulFunctionCall","src":"39102:12:20"},{"name":"id","nativeSrc":"39116:2:20","nodeType":"YulIdentifier","src":"39116:2:20"}],"functionName":{"name":"mstore","nativeSrc":"39095:6:20","nodeType":"YulIdentifier","src":"39095:6:20"},"nativeSrc":"39095:24:20","nodeType":"YulFunctionCall","src":"39095:24:20"},"nativeSrc":"39095:24:20","nodeType":"YulExpressionStatement","src":"39095:24:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39143:1:20","nodeType":"YulIdentifier","src":"39143:1:20"},{"kind":"number","nativeSrc":"39146:4:20","nodeType":"YulLiteral","src":"39146:4:20","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"39139:3:20","nodeType":"YulIdentifier","src":"39139:3:20"},"nativeSrc":"39139:12:20","nodeType":"YulFunctionCall","src":"39139:12:20"},{"kind":"number","nativeSrc":"39153:4:20","nodeType":"YulLiteral","src":"39153:4:20","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"39132:6:20","nodeType":"YulIdentifier","src":"39132:6:20"},"nativeSrc":"39132:26:20","nodeType":"YulFunctionCall","src":"39132:26:20"},"nativeSrc":"39132:26:20","nodeType":"YulExpressionStatement","src":"39132:26:20"},{"nativeSrc":"39171:20:20","nodeType":"YulVariableDeclaration","src":"39171:20:20","value":{"arguments":[{"name":"data","nativeSrc":"39186:4:20","nodeType":"YulIdentifier","src":"39186:4:20"}],"functionName":{"name":"mload","nativeSrc":"39180:5:20","nodeType":"YulIdentifier","src":"39180:5:20"},"nativeSrc":"39180:11:20","nodeType":"YulFunctionCall","src":"39180:11:20"},"variables":[{"name":"n","nativeSrc":"39175:1:20","nodeType":"YulTypedName","src":"39175:1:20","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39215:1:20","nodeType":"YulIdentifier","src":"39215:1:20"},{"kind":"number","nativeSrc":"39218:4:20","nodeType":"YulLiteral","src":"39218:4:20","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"39211:3:20","nodeType":"YulIdentifier","src":"39211:3:20"},"nativeSrc":"39211:12:20","nodeType":"YulFunctionCall","src":"39211:12:20"},{"name":"n","nativeSrc":"39225:1:20","nodeType":"YulIdentifier","src":"39225:1:20"}],"functionName":{"name":"mstore","nativeSrc":"39204:6:20","nodeType":"YulIdentifier","src":"39204:6:20"},"nativeSrc":"39204:23:20","nodeType":"YulFunctionCall","src":"39204:23:20"},"nativeSrc":"39204:23:20","nodeType":"YulExpressionStatement","src":"39204:23:20"},{"body":{"nativeSrc":"39245:66:20","nodeType":"YulBlock","src":"39245:66:20","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"39262:3:20","nodeType":"YulIdentifier","src":"39262:3:20"},"nativeSrc":"39262:5:20","nodeType":"YulFunctionCall","src":"39262:5:20"},{"kind":"number","nativeSrc":"39269:1:20","nodeType":"YulLiteral","src":"39269:1:20","type":"","value":"4"},{"arguments":[{"name":"data","nativeSrc":"39276:4:20","nodeType":"YulIdentifier","src":"39276:4:20"},{"kind":"number","nativeSrc":"39282:4:20","nodeType":"YulLiteral","src":"39282:4:20","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39272:3:20","nodeType":"YulIdentifier","src":"39272:3:20"},"nativeSrc":"39272:15:20","nodeType":"YulFunctionCall","src":"39272:15:20"},{"name":"n","nativeSrc":"39289:1:20","nodeType":"YulIdentifier","src":"39289:1:20"},{"arguments":[{"name":"m","nativeSrc":"39296:1:20","nodeType":"YulIdentifier","src":"39296:1:20"},{"kind":"number","nativeSrc":"39299:4:20","nodeType":"YulLiteral","src":"39299:4:20","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"39292:3:20","nodeType":"YulIdentifier","src":"39292:3:20"},"nativeSrc":"39292:12:20","nodeType":"YulFunctionCall","src":"39292:12:20"},{"name":"n","nativeSrc":"39306:1:20","nodeType":"YulIdentifier","src":"39306:1:20"}],"functionName":{"name":"staticcall","nativeSrc":"39251:10:20","nodeType":"YulIdentifier","src":"39251:10:20"},"nativeSrc":"39251:57:20","nodeType":"YulFunctionCall","src":"39251:57:20"}],"functionName":{"name":"pop","nativeSrc":"39247:3:20","nodeType":"YulIdentifier","src":"39247:3:20"},"nativeSrc":"39247:62:20","nodeType":"YulFunctionCall","src":"39247:62:20"},"nativeSrc":"39247:62:20","nodeType":"YulExpressionStatement","src":"39247:62:20"}]},"condition":{"name":"n","nativeSrc":"39243:1:20","nodeType":"YulIdentifier","src":"39243:1:20"},"nativeSrc":"39240:71:20","nodeType":"YulIf","src":"39240:71:20"},{"body":{"nativeSrc":"39434:246:20","nodeType":"YulBlock","src":"39434:246:20","statements":[{"body":{"nativeSrc":"39472:194:20","nodeType":"YulBlock","src":"39472:194:20","statements":[{"expression":{"arguments":[{"name":"m","nativeSrc":"39574:1:20","nodeType":"YulIdentifier","src":"39574:1:20"},{"kind":"number","nativeSrc":"39577:4:20","nodeType":"YulLiteral","src":"39577:4:20","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39583:14:20","nodeType":"YulIdentifier","src":"39583:14:20"},"nativeSrc":"39583:16:20","nodeType":"YulFunctionCall","src":"39583:16:20"}],"functionName":{"name":"returndatacopy","nativeSrc":"39559:14:20","nodeType":"YulIdentifier","src":"39559:14:20"},"nativeSrc":"39559:41:20","nodeType":"YulFunctionCall","src":"39559:41:20"},"nativeSrc":"39559:41:20","nodeType":"YulExpressionStatement","src":"39559:41:20"},{"expression":{"arguments":[{"name":"m","nativeSrc":"39628:1:20","nodeType":"YulIdentifier","src":"39628:1:20"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39631:14:20","nodeType":"YulIdentifier","src":"39631:14:20"},"nativeSrc":"39631:16:20","nodeType":"YulFunctionCall","src":"39631:16:20"}],"functionName":{"name":"revert","nativeSrc":"39621:6:20","nodeType":"YulIdentifier","src":"39621:6:20"},"nativeSrc":"39621:27:20","nodeType":"YulFunctionCall","src":"39621:27:20"},"nativeSrc":"39621:27:20","nodeType":"YulExpressionStatement","src":"39621:27:20"}]},"condition":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39455:14:20","nodeType":"YulIdentifier","src":"39455:14:20"},"nativeSrc":"39455:16:20","nodeType":"YulFunctionCall","src":"39455:16:20"},"nativeSrc":"39452:214:20","nodeType":"YulIf","src":"39452:214:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"39382:3:20","nodeType":"YulIdentifier","src":"39382:3:20"},"nativeSrc":"39382:5:20","nodeType":"YulFunctionCall","src":"39382:5:20"},{"name":"to","nativeSrc":"39389:2:20","nodeType":"YulIdentifier","src":"39389:2:20"},{"kind":"number","nativeSrc":"39393:1:20","nodeType":"YulLiteral","src":"39393:1:20","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"39400:1:20","nodeType":"YulIdentifier","src":"39400:1:20"},{"kind":"number","nativeSrc":"39403:4:20","nodeType":"YulLiteral","src":"39403:4:20","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"39396:3:20","nodeType":"YulIdentifier","src":"39396:3:20"},"nativeSrc":"39396:12:20","nodeType":"YulFunctionCall","src":"39396:12:20"},{"arguments":[{"name":"n","nativeSrc":"39414:1:20","nodeType":"YulIdentifier","src":"39414:1:20"},{"kind":"number","nativeSrc":"39417:4:20","nodeType":"YulLiteral","src":"39417:4:20","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"39410:3:20","nodeType":"YulIdentifier","src":"39410:3:20"},"nativeSrc":"39410:12:20","nodeType":"YulFunctionCall","src":"39410:12:20"},{"name":"m","nativeSrc":"39424:1:20","nodeType":"YulIdentifier","src":"39424:1:20"},{"kind":"number","nativeSrc":"39427:4:20","nodeType":"YulLiteral","src":"39427:4:20","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"39377:4:20","nodeType":"YulIdentifier","src":"39377:4:20"},"nativeSrc":"39377:55:20","nodeType":"YulFunctionCall","src":"39377:55:20"}],"functionName":{"name":"iszero","nativeSrc":"39370:6:20","nodeType":"YulIdentifier","src":"39370:6:20"},"nativeSrc":"39370:63:20","nodeType":"YulFunctionCall","src":"39370:63:20"},"nativeSrc":"39367:313:20","nodeType":"YulIf","src":"39367:313:20"},{"body":{"nativeSrc":"39804:138:20","nodeType":"YulBlock","src":"39804:138:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39829:4:20","nodeType":"YulLiteral","src":"39829:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"39835:10:20","nodeType":"YulLiteral","src":"39835:10:20","type":"","value":"0xd1a57ed6"}],"functionName":{"name":"mstore","nativeSrc":"39822:6:20","nodeType":"YulIdentifier","src":"39822:6:20"},"nativeSrc":"39822:24:20","nodeType":"YulFunctionCall","src":"39822:24:20"},"nativeSrc":"39822:24:20","nodeType":"YulExpressionStatement","src":"39822:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39917:4:20","nodeType":"YulLiteral","src":"39917:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"39923:4:20","nodeType":"YulLiteral","src":"39923:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"39910:6:20","nodeType":"YulIdentifier","src":"39910:6:20"},"nativeSrc":"39910:18:20","nodeType":"YulFunctionCall","src":"39910:18:20"},"nativeSrc":"39910:18:20","nodeType":"YulExpressionStatement","src":"39910:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39763:1:20","nodeType":"YulIdentifier","src":"39763:1:20"}],"functionName":{"name":"mload","nativeSrc":"39757:5:20","nodeType":"YulIdentifier","src":"39757:5:20"},"nativeSrc":"39757:8:20","nodeType":"YulFunctionCall","src":"39757:8:20"},{"arguments":[{"kind":"number","nativeSrc":"39771:3:20","nodeType":"YulLiteral","src":"39771:3:20","type":"","value":"224"},{"name":"onERC721ReceivedSelector","nativeSrc":"39776:24:20","nodeType":"YulIdentifier","src":"39776:24:20"}],"functionName":{"name":"shl","nativeSrc":"39767:3:20","nodeType":"YulIdentifier","src":"39767:3:20"},"nativeSrc":"39767:34:20","nodeType":"YulFunctionCall","src":"39767:34:20"}],"functionName":{"name":"eq","nativeSrc":"39754:2:20","nodeType":"YulIdentifier","src":"39754:2:20"},"nativeSrc":"39754:48:20","nodeType":"YulFunctionCall","src":"39754:48:20"}],"functionName":{"name":"iszero","nativeSrc":"39747:6:20","nodeType":"YulIdentifier","src":"39747:6:20"},"nativeSrc":"39747:56:20","nodeType":"YulFunctionCall","src":"39747:56:20"},"nativeSrc":"39744:198:20","nodeType":"YulIf","src":"39744:198:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9105,"isOffset":false,"isSlot":false,"src":"39186:4:20","valueSize":1},{"declaration":9105,"isOffset":false,"isSlot":false,"src":"39276:4:20","valueSize":1},{"declaration":9099,"isOffset":false,"isSlot":false,"src":"39075:4:20","valueSize":1},{"declaration":9103,"isOffset":false,"isSlot":false,"src":"39116:2:20","valueSize":1},{"declaration":9101,"isOffset":false,"isSlot":false,"src":"39389:2:20","valueSize":1}],"id":9108,"nodeType":"InlineAssembly","src":"38750:1202:20"}]},"documentation":{"id":9097,"nodeType":"StructuredDocumentation","src":"38435:148:20","text":"@dev Perform a call to invoke {IERC721Receiver-onERC721Received} on `to`.\n Reverts if the target does not support the function correctly."},"id":9110,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"38597:22:20","nodeType":"FunctionDefinition","parameters":{"id":9106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9099,"mutability":"mutable","name":"from","nameLocation":"38628:4:20","nodeType":"VariableDeclaration","scope":9110,"src":"38620:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9098,"name":"address","nodeType":"ElementaryTypeName","src":"38620:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9101,"mutability":"mutable","name":"to","nameLocation":"38642:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"38634:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9100,"name":"address","nodeType":"ElementaryTypeName","src":"38634:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9103,"mutability":"mutable","name":"id","nameLocation":"38654:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"38646:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9102,"name":"uint256","nodeType":"ElementaryTypeName","src":"38646:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9105,"mutability":"mutable","name":"data","nameLocation":"38671:4:20","nodeType":"VariableDeclaration","scope":9110,"src":"38658:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9104,"name":"bytes","nodeType":"ElementaryTypeName","src":"38658:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38619:57:20"},"returnParameters":{"id":9107,"nodeType":"ParameterList","parameters":[],"src":"38697:0:20"},"scope":9111,"src":"38588:1370:20","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":9112,"src":"1441:38519:20","usedErrors":[8379,8382,8385,8388,8391,8394,8397,8400],"usedEvents":[8409,8418,8427]}],"src":"32:39929:20"},"id":20},"@solady/utils/Initializable.sol":{"ast":{"absolutePath":"@solady/utils/Initializable.sol","exportedSymbols":{"Initializable":[9225]},"id":9226,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9113,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:21"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":9114,"nodeType":"StructuredDocumentation","src":"57:307:21","text":"@notice Initializable mixin for the upgradeable contracts.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)"},"fullyImplemented":true,"id":9225,"linearizedBaseContracts":[9225],"name":"Initializable","nameLocation":"382:13:21","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9115,"nodeType":"StructuredDocumentation","src":"685:45:21","text":"@dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":9117,"name":"InvalidInitialization","nameLocation":"741:21:21","nodeType":"ErrorDefinition","parameters":{"id":9116,"nodeType":"ParameterList","parameters":[],"src":"762:2:21"},"src":"735:30:21"},{"documentation":{"id":9118,"nodeType":"StructuredDocumentation","src":"771:42:21","text":"@dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":9120,"name":"NotInitializing","nameLocation":"824:15:21","nodeType":"ErrorDefinition","parameters":{"id":9119,"nodeType":"ParameterList","parameters":[],"src":"839:2:21"},"src":"818:24:21"},{"anonymous":false,"documentation":{"id":9121,"nodeType":"StructuredDocumentation","src":"1131:58:21","text":"@dev Triggered when the contract has been initialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":9125,"name":"Initialized","nameLocation":"1200:11:21","nodeType":"EventDefinition","parameters":{"id":9124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"1219:7:21","nodeType":"VariableDeclaration","scope":9125,"src":"1212:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9122,"name":"uint64","nodeType":"ElementaryTypeName","src":"1212:6:21","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1211:16:21"},"src":"1194:34:21"},{"constant":true,"documentation":{"id":9126,"nodeType":"StructuredDocumentation","src":"1234:51:21","text":"@dev `keccak256(bytes(\"Initialized(uint64)\"))`."},"id":9129,"mutability":"constant","name":"_INTIALIZED_EVENT_SIGNATURE","nameLocation":"1315:27:21","nodeType":"VariableDeclaration","scope":9225,"src":"1290:129:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1290:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863376635303562326633373161653231373565653439313366343439396531663236333361376235393336333231656564316364616562363131353138316432","id":9128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1353:66:21","typeDescriptions":{"typeIdentifier":"t_rational_90443173732180608349131670025767709961475889821310342433215831881459516408274_by_1","typeString":"int_const 9044...(69 digits omitted)...8274"},"value":"0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"},"visibility":"private"},{"constant":true,"documentation":{"id":9130,"nodeType":"StructuredDocumentation","src":"1709:232:21","text":"@dev The default initializable slot is given by:\n `bytes32(~uint256(uint32(bytes4(keccak256(\"_INITIALIZABLE_SLOT\")))))`.\n Bits Layout:\n - [0] `initializing`\n - [1..64] `initializedVersion`"},"id":9133,"mutability":"constant","name":"_INITIALIZABLE_SLOT","nameLocation":"1971:19:21","nodeType":"VariableDeclaration","scope":9225,"src":"1946:121:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1946:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666266363031313332","id":9132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2001:66:21","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007912045416754_by_1","typeString":"int_const 1157...(70 digits omitted)...6754"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132"},"visibility":"private"},{"body":{"id":9141,"nodeType":"Block","src":"2494:43:21","statements":[{"expression":{"id":9139,"name":"_INITIALIZABLE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9133,"src":"2511:19:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9138,"id":9140,"nodeType":"Return","src":"2504:26:21"}]},"documentation":{"id":9134,"nodeType":"StructuredDocumentation","src":"2357:62:21","text":"@dev Override to return a custom storage slot if required."},"id":9142,"implemented":true,"kind":"function","modifiers":[],"name":"_initializableSlot","nameLocation":"2433:18:21","nodeType":"FunctionDefinition","parameters":{"id":9135,"nodeType":"ParameterList","parameters":[],"src":"2451:2:21"},"returnParameters":{"id":9138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9142,"src":"2485:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2485:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2484:9:21"},"scope":9225,"src":"2424:113:21","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":9153,"nodeType":"Block","src":"3112:1082:21","statements":[{"assignments":[9146],"declarations":[{"constant":false,"id":9146,"mutability":"mutable","name":"s","nameLocation":"3130:1:21","nodeType":"VariableDeclaration","scope":9153,"src":"3122:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3122:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9149,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9147,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"3134:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3134:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3122:32:21"},{"AST":{"nativeSrc":"3216:613:21","nodeType":"YulBlock","src":"3216:613:21","statements":[{"nativeSrc":"3230:17:21","nodeType":"YulVariableDeclaration","src":"3230:17:21","value":{"arguments":[{"name":"s","nativeSrc":"3245:1:21","nodeType":"YulIdentifier","src":"3245:1:21"}],"functionName":{"name":"sload","nativeSrc":"3239:5:21","nodeType":"YulIdentifier","src":"3239:5:21"},"nativeSrc":"3239:8:21","nodeType":"YulFunctionCall","src":"3239:8:21"},"variables":[{"name":"i","nativeSrc":"3234:1:21","nodeType":"YulTypedName","src":"3234:1:21","type":""}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"3334:1:21","nodeType":"YulIdentifier","src":"3334:1:21"},{"kind":"number","nativeSrc":"3337:1:21","nodeType":"YulLiteral","src":"3337:1:21","type":"","value":"3"}],"functionName":{"name":"sstore","nativeSrc":"3327:6:21","nodeType":"YulIdentifier","src":"3327:6:21"},"nativeSrc":"3327:12:21","nodeType":"YulFunctionCall","src":"3327:12:21"},"nativeSrc":"3327:12:21","nodeType":"YulExpressionStatement","src":"3327:12:21"},{"body":{"nativeSrc":"3426:393:21","nodeType":"YulBlock","src":"3426:393:21","statements":[{"body":{"nativeSrc":"3586:133:21","nodeType":"YulBlock","src":"3586:133:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3615:4:21","nodeType":"YulLiteral","src":"3615:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3621:10:21","nodeType":"YulLiteral","src":"3621:10:21","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"3608:6:21","nodeType":"YulIdentifier","src":"3608:6:21"},"nativeSrc":"3608:24:21","nodeType":"YulFunctionCall","src":"3608:24:21"},"nativeSrc":"3608:24:21","nodeType":"YulExpressionStatement","src":"3608:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3690:4:21","nodeType":"YulLiteral","src":"3690:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"3696:4:21","nodeType":"YulLiteral","src":"3696:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"3683:6:21","nodeType":"YulIdentifier","src":"3683:6:21"},"nativeSrc":"3683:18:21","nodeType":"YulFunctionCall","src":"3683:18:21"},"nativeSrc":"3683:18:21","nodeType":"YulExpressionStatement","src":"3683:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"address","nativeSrc":"3555:7:21","nodeType":"YulIdentifier","src":"3555:7:21"},"nativeSrc":"3555:9:21","nodeType":"YulFunctionCall","src":"3555:9:21"}],"functionName":{"name":"extcodesize","nativeSrc":"3543:11:21","nodeType":"YulIdentifier","src":"3543:11:21"},"nativeSrc":"3543:22:21","nodeType":"YulFunctionCall","src":"3543:22:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3574:1:21","nodeType":"YulLiteral","src":"3574:1:21","type":"","value":"1"},{"name":"i","nativeSrc":"3577:1:21","nodeType":"YulIdentifier","src":"3577:1:21"}],"functionName":{"name":"shr","nativeSrc":"3570:3:21","nodeType":"YulIdentifier","src":"3570:3:21"},"nativeSrc":"3570:9:21","nodeType":"YulFunctionCall","src":"3570:9:21"},{"kind":"number","nativeSrc":"3581:1:21","nodeType":"YulLiteral","src":"3581:1:21","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"3567:2:21","nodeType":"YulIdentifier","src":"3567:2:21"},"nativeSrc":"3567:16:21","nodeType":"YulFunctionCall","src":"3567:16:21"}],"functionName":{"name":"lt","nativeSrc":"3540:2:21","nodeType":"YulIdentifier","src":"3540:2:21"},"nativeSrc":"3540:44:21","nodeType":"YulFunctionCall","src":"3540:44:21"}],"functionName":{"name":"iszero","nativeSrc":"3533:6:21","nodeType":"YulIdentifier","src":"3533:6:21"},"nativeSrc":"3533:52:21","nodeType":"YulFunctionCall","src":"3533:52:21"},"nativeSrc":"3530:189:21","nodeType":"YulIf","src":"3530:189:21"},{"nativeSrc":"3736:24:21","nodeType":"YulAssignment","src":"3736:24:21","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3749:3:21","nodeType":"YulLiteral","src":"3749:3:21","type":"","value":"255"},{"name":"i","nativeSrc":"3754:1:21","nodeType":"YulIdentifier","src":"3754:1:21"}],"functionName":{"name":"shl","nativeSrc":"3745:3:21","nodeType":"YulIdentifier","src":"3745:3:21"},"nativeSrc":"3745:11:21","nodeType":"YulFunctionCall","src":"3745:11:21"},{"name":"s","nativeSrc":"3758:1:21","nodeType":"YulIdentifier","src":"3758:1:21"}],"functionName":{"name":"shl","nativeSrc":"3741:3:21","nodeType":"YulIdentifier","src":"3741:3:21"},"nativeSrc":"3741:19:21","nodeType":"YulFunctionCall","src":"3741:19:21"},"variableNames":[{"name":"s","nativeSrc":"3736:1:21","nodeType":"YulIdentifier","src":"3736:1:21"}]}]},"condition":{"name":"i","nativeSrc":"3424:1:21","nodeType":"YulIdentifier","src":"3424:1:21"},"nativeSrc":"3421:398:21","nodeType":"YulIf","src":"3421:398:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3245:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3334:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3736:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3758:1:21","valueSize":1}],"id":9150,"nodeType":"InlineAssembly","src":"3207:622:21"},{"id":9151,"nodeType":"PlaceholderStatement","src":"3838:1:21"},{"AST":{"nativeSrc":"3901:287:21","nodeType":"YulBlock","src":"3901:287:21","statements":[{"body":{"nativeSrc":"3920:258:21","nodeType":"YulBlock","src":"3920:258:21","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"4016:1:21","nodeType":"YulIdentifier","src":"4016:1:21"},{"kind":"number","nativeSrc":"4019:1:21","nodeType":"YulLiteral","src":"4019:1:21","type":"","value":"2"}],"functionName":{"name":"sstore","nativeSrc":"4009:6:21","nodeType":"YulIdentifier","src":"4009:6:21"},"nativeSrc":"4009:12:21","nodeType":"YulFunctionCall","src":"4009:12:21"},"nativeSrc":"4009:12:21","nodeType":"YulExpressionStatement","src":"4009:12:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4094:4:21","nodeType":"YulLiteral","src":"4094:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"4100:1:21","nodeType":"YulLiteral","src":"4100:1:21","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"4087:6:21","nodeType":"YulIdentifier","src":"4087:6:21"},"nativeSrc":"4087:15:21","nodeType":"YulFunctionCall","src":"4087:15:21"},"nativeSrc":"4087:15:21","nodeType":"YulExpressionStatement","src":"4087:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4124:4:21","nodeType":"YulLiteral","src":"4124:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"4130:4:21","nodeType":"YulLiteral","src":"4130:4:21","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"4136:27:21","nodeType":"YulIdentifier","src":"4136:27:21"}],"functionName":{"name":"log1","nativeSrc":"4119:4:21","nodeType":"YulIdentifier","src":"4119:4:21"},"nativeSrc":"4119:45:21","nodeType":"YulFunctionCall","src":"4119:45:21"},"nativeSrc":"4119:45:21","nodeType":"YulExpressionStatement","src":"4119:45:21"}]},"condition":{"name":"s","nativeSrc":"3918:1:21","nodeType":"YulIdentifier","src":"3918:1:21"},"nativeSrc":"3915:263:21","nodeType":"YulIf","src":"3915:263:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9129,"isOffset":false,"isSlot":false,"src":"4136:27:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3918:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"4016:1:21","valueSize":1}],"id":9152,"nodeType":"InlineAssembly","src":"3892:296:21"}]},"documentation":{"id":9143,"nodeType":"StructuredDocumentation","src":"2543:533:21","text":"@dev Guards an initializer function so that it can be invoked at most once.\n You can guard a function with `onlyInitializing` such that it can be called\n through a function guarded with `initializer`.\n This is similar to `reinitializer(1)`, except that in the context of a constructor,\n an `initializer` guarded function can be invoked multiple times.\n This can be useful during testing and is not expected to be used in production.\n Emits an {Initialized} event."},"id":9154,"name":"initializer","nameLocation":"3090:11:21","nodeType":"ModifierDefinition","parameters":{"id":9144,"nodeType":"ParameterList","parameters":[],"src":"3101:2:21"},"src":"3081:1113:21","virtual":true,"visibility":"internal"},{"body":{"id":9167,"nodeType":"Block","src":"4527:938:21","statements":[{"assignments":[9160],"declarations":[{"constant":false,"id":9160,"mutability":"mutable","name":"s","nameLocation":"4545:1:21","nodeType":"VariableDeclaration","scope":9167,"src":"4537:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4537:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9163,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9161,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4549:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4549:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4537:32:21"},{"AST":{"nativeSrc":"4631:494:21","nodeType":"YulBlock","src":"4631:494:21","statements":[{"nativeSrc":"4645:43:21","nodeType":"YulAssignment","src":"4645:43:21","value":{"arguments":[{"name":"version","nativeSrc":"4660:7:21","nodeType":"YulIdentifier","src":"4660:7:21"},{"kind":"number","nativeSrc":"4669:18:21","nodeType":"YulLiteral","src":"4669:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4656:3:21","nodeType":"YulIdentifier","src":"4656:3:21"},"nativeSrc":"4656:32:21","nodeType":"YulFunctionCall","src":"4656:32:21"},"variableNames":[{"name":"version","nativeSrc":"4645:7:21","nodeType":"YulIdentifier","src":"4645:7:21"}]},{"nativeSrc":"4722:17:21","nodeType":"YulVariableDeclaration","src":"4722:17:21","value":{"arguments":[{"name":"s","nativeSrc":"4737:1:21","nodeType":"YulIdentifier","src":"4737:1:21"}],"functionName":{"name":"sload","nativeSrc":"4731:5:21","nodeType":"YulIdentifier","src":"4731:5:21"},"nativeSrc":"4731:8:21","nodeType":"YulFunctionCall","src":"4731:8:21"},"variables":[{"name":"i","nativeSrc":"4726:1:21","nodeType":"YulTypedName","src":"4726:1:21","type":""}]},{"body":{"nativeSrc":"4873:121:21","nodeType":"YulBlock","src":"4873:121:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4898:4:21","nodeType":"YulLiteral","src":"4898:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4904:10:21","nodeType":"YulLiteral","src":"4904:10:21","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"4891:6:21","nodeType":"YulIdentifier","src":"4891:6:21"},"nativeSrc":"4891:24:21","nodeType":"YulFunctionCall","src":"4891:24:21"},"nativeSrc":"4891:24:21","nodeType":"YulExpressionStatement","src":"4891:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4969:4:21","nodeType":"YulLiteral","src":"4969:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4975:4:21","nodeType":"YulLiteral","src":"4975:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4962:6:21","nodeType":"YulIdentifier","src":"4962:6:21"},"nativeSrc":"4962:18:21","nodeType":"YulFunctionCall","src":"4962:18:21"},"nativeSrc":"4962:18:21","nodeType":"YulExpressionStatement","src":"4962:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"i","nativeSrc":"4841:1:21","nodeType":"YulIdentifier","src":"4841:1:21"},{"kind":"number","nativeSrc":"4844:1:21","nodeType":"YulLiteral","src":"4844:1:21","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4837:3:21","nodeType":"YulIdentifier","src":"4837:3:21"},"nativeSrc":"4837:9:21","nodeType":"YulFunctionCall","src":"4837:9:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4855:1:21","nodeType":"YulLiteral","src":"4855:1:21","type":"","value":"1"},{"name":"i","nativeSrc":"4858:1:21","nodeType":"YulIdentifier","src":"4858:1:21"}],"functionName":{"name":"shr","nativeSrc":"4851:3:21","nodeType":"YulIdentifier","src":"4851:3:21"},"nativeSrc":"4851:9:21","nodeType":"YulFunctionCall","src":"4851:9:21"},{"name":"version","nativeSrc":"4862:7:21","nodeType":"YulIdentifier","src":"4862:7:21"}],"functionName":{"name":"lt","nativeSrc":"4848:2:21","nodeType":"YulIdentifier","src":"4848:2:21"},"nativeSrc":"4848:22:21","nodeType":"YulFunctionCall","src":"4848:22:21"}],"functionName":{"name":"lt","nativeSrc":"4834:2:21","nodeType":"YulIdentifier","src":"4834:2:21"},"nativeSrc":"4834:37:21","nodeType":"YulFunctionCall","src":"4834:37:21"}],"functionName":{"name":"iszero","nativeSrc":"4827:6:21","nodeType":"YulIdentifier","src":"4827:6:21"},"nativeSrc":"4827:45:21","nodeType":"YulFunctionCall","src":"4827:45:21"},"nativeSrc":"4824:170:21","nodeType":"YulIf","src":"4824:170:21"},{"expression":{"arguments":[{"name":"s","nativeSrc":"5089:1:21","nodeType":"YulIdentifier","src":"5089:1:21"},{"arguments":[{"kind":"number","nativeSrc":"5095:1:21","nodeType":"YulLiteral","src":"5095:1:21","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"5102:1:21","nodeType":"YulLiteral","src":"5102:1:21","type":"","value":"1"},{"name":"version","nativeSrc":"5105:7:21","nodeType":"YulIdentifier","src":"5105:7:21"}],"functionName":{"name":"shl","nativeSrc":"5098:3:21","nodeType":"YulIdentifier","src":"5098:3:21"},"nativeSrc":"5098:15:21","nodeType":"YulFunctionCall","src":"5098:15:21"}],"functionName":{"name":"or","nativeSrc":"5092:2:21","nodeType":"YulIdentifier","src":"5092:2:21"},"nativeSrc":"5092:22:21","nodeType":"YulFunctionCall","src":"5092:22:21"}],"functionName":{"name":"sstore","nativeSrc":"5082:6:21","nodeType":"YulIdentifier","src":"5082:6:21"},"nativeSrc":"5082:33:21","nodeType":"YulFunctionCall","src":"5082:33:21"},"nativeSrc":"5082:33:21","nodeType":"YulExpressionStatement","src":"5082:33:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9160,"isOffset":false,"isSlot":false,"src":"4737:1:21","valueSize":1},{"declaration":9160,"isOffset":false,"isSlot":false,"src":"5089:1:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"4645:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"4660:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"4862:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"5105:7:21","valueSize":1}],"id":9164,"nodeType":"InlineAssembly","src":"4622:503:21"},{"id":9165,"nodeType":"PlaceholderStatement","src":"5134:1:21"},{"AST":{"nativeSrc":"5197:262:21","nodeType":"YulBlock","src":"5197:262:21","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"5293:1:21","nodeType":"YulIdentifier","src":"5293:1:21"},{"arguments":[{"kind":"number","nativeSrc":"5300:1:21","nodeType":"YulLiteral","src":"5300:1:21","type":"","value":"1"},{"name":"version","nativeSrc":"5303:7:21","nodeType":"YulIdentifier","src":"5303:7:21"}],"functionName":{"name":"shl","nativeSrc":"5296:3:21","nodeType":"YulIdentifier","src":"5296:3:21"},"nativeSrc":"5296:15:21","nodeType":"YulFunctionCall","src":"5296:15:21"}],"functionName":{"name":"sstore","nativeSrc":"5286:6:21","nodeType":"YulIdentifier","src":"5286:6:21"},"nativeSrc":"5286:26:21","nodeType":"YulFunctionCall","src":"5286:26:21"},"nativeSrc":"5286:26:21","nodeType":"YulExpressionStatement","src":"5286:26:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5377:4:21","nodeType":"YulLiteral","src":"5377:4:21","type":"","value":"0x20"},{"name":"version","nativeSrc":"5383:7:21","nodeType":"YulIdentifier","src":"5383:7:21"}],"functionName":{"name":"mstore","nativeSrc":"5370:6:21","nodeType":"YulIdentifier","src":"5370:6:21"},"nativeSrc":"5370:21:21","nodeType":"YulFunctionCall","src":"5370:21:21"},"nativeSrc":"5370:21:21","nodeType":"YulExpressionStatement","src":"5370:21:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5409:4:21","nodeType":"YulLiteral","src":"5409:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"5415:4:21","nodeType":"YulLiteral","src":"5415:4:21","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"5421:27:21","nodeType":"YulIdentifier","src":"5421:27:21"}],"functionName":{"name":"log1","nativeSrc":"5404:4:21","nodeType":"YulIdentifier","src":"5404:4:21"},"nativeSrc":"5404:45:21","nodeType":"YulFunctionCall","src":"5404:45:21"},"nativeSrc":"5404:45:21","nodeType":"YulExpressionStatement","src":"5404:45:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9129,"isOffset":false,"isSlot":false,"src":"5421:27:21","valueSize":1},{"declaration":9160,"isOffset":false,"isSlot":false,"src":"5293:1:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"5303:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"5383:7:21","valueSize":1}],"id":9166,"nodeType":"InlineAssembly","src":"5188:271:21"}]},"documentation":{"id":9155,"nodeType":"StructuredDocumentation","src":"4200:275:21","text":"@dev Guards an reinitialzer function so that it can be invoked at most once.\n You can guard a function with `onlyInitializing` such that it can be called\n through a function guarded with `reinitializer`.\n Emits an {Initialized} event."},"id":9168,"name":"reinitializer","nameLocation":"4489:13:21","nodeType":"ModifierDefinition","parameters":{"id":9158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9157,"mutability":"mutable","name":"version","nameLocation":"4510:7:21","nodeType":"VariableDeclaration","scope":9168,"src":"4503:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9156,"name":"uint64","nodeType":"ElementaryTypeName","src":"4503:6:21","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4502:16:21"},"src":"4480:985:21","virtual":true,"visibility":"internal"},{"body":{"id":9175,"nodeType":"Block","src":"5652:48:21","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9171,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"5662:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":9172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5662:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9173,"nodeType":"ExpressionStatement","src":"5662:20:21"},{"id":9174,"nodeType":"PlaceholderStatement","src":"5692:1:21"}]},"documentation":{"id":9169,"nodeType":"StructuredDocumentation","src":"5471:140:21","text":"@dev Guards a function such that it can only be called in the scope\n of a function guarded with `initializer` or `reinitializer`."},"id":9176,"name":"onlyInitializing","nameLocation":"5625:16:21","nodeType":"ModifierDefinition","parameters":{"id":9170,"nodeType":"ParameterList","parameters":[],"src":"5641:2:21"},"src":"5616:84:21","virtual":true,"visibility":"internal"},{"body":{"id":9186,"nodeType":"Block","src":"5816:277:21","statements":[{"assignments":[9181],"declarations":[{"constant":false,"id":9181,"mutability":"mutable","name":"s","nameLocation":"5834:1:21","nodeType":"VariableDeclaration","scope":9186,"src":"5826:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5826:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9184,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9182,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"5838:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5838:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5826:32:21"},{"AST":{"nativeSrc":"5920:167:21","nodeType":"YulBlock","src":"5920:167:21","statements":[{"body":{"nativeSrc":"5962:115:21","nodeType":"YulBlock","src":"5962:115:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5987:4:21","nodeType":"YulLiteral","src":"5987:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5993:10:21","nodeType":"YulLiteral","src":"5993:10:21","type":"","value":"0xd7e6bcf8"}],"functionName":{"name":"mstore","nativeSrc":"5980:6:21","nodeType":"YulIdentifier","src":"5980:6:21"},"nativeSrc":"5980:24:21","nodeType":"YulFunctionCall","src":"5980:24:21"},"nativeSrc":"5980:24:21","nodeType":"YulExpressionStatement","src":"5980:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6052:4:21","nodeType":"YulLiteral","src":"6052:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6058:4:21","nodeType":"YulLiteral","src":"6058:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6045:6:21","nodeType":"YulIdentifier","src":"6045:6:21"},"nativeSrc":"6045:18:21","nodeType":"YulFunctionCall","src":"6045:18:21"},"nativeSrc":"6045:18:21","nodeType":"YulExpressionStatement","src":"6045:18:21"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5948:1:21","nodeType":"YulLiteral","src":"5948:1:21","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"5957:1:21","nodeType":"YulIdentifier","src":"5957:1:21"}],"functionName":{"name":"sload","nativeSrc":"5951:5:21","nodeType":"YulIdentifier","src":"5951:5:21"},"nativeSrc":"5951:8:21","nodeType":"YulFunctionCall","src":"5951:8:21"}],"functionName":{"name":"and","nativeSrc":"5944:3:21","nodeType":"YulIdentifier","src":"5944:3:21"},"nativeSrc":"5944:16:21","nodeType":"YulFunctionCall","src":"5944:16:21"}],"functionName":{"name":"iszero","nativeSrc":"5937:6:21","nodeType":"YulIdentifier","src":"5937:6:21"},"nativeSrc":"5937:24:21","nodeType":"YulFunctionCall","src":"5937:24:21"},"nativeSrc":"5934:143:21","nodeType":"YulIf","src":"5934:143:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9181,"isOffset":false,"isSlot":false,"src":"5957:1:21","valueSize":1}],"id":9185,"nodeType":"InlineAssembly","src":"5911:176:21"}]},"documentation":{"id":9177,"nodeType":"StructuredDocumentation","src":"5706:53:21","text":"@dev Reverts if the contract is not initializing."},"id":9187,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"5773:18:21","nodeType":"FunctionDefinition","parameters":{"id":9178,"nodeType":"ParameterList","parameters":[],"src":"5791:2:21"},"returnParameters":{"id":9179,"nodeType":"ParameterList","parameters":[],"src":"5816:0:21"},"scope":9225,"src":"5764:329:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9197,"nodeType":"Block","src":"6574:710:21","statements":[{"assignments":[9192],"declarations":[{"constant":false,"id":9192,"mutability":"mutable","name":"s","nameLocation":"6592:1:21","nodeType":"VariableDeclaration","scope":9197,"src":"6584:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6584:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9195,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9193,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"6596:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6596:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6584:32:21"},{"AST":{"nativeSrc":"6678:600:21","nodeType":"YulBlock","src":"6678:600:21","statements":[{"nativeSrc":"6692:17:21","nodeType":"YulVariableDeclaration","src":"6692:17:21","value":{"arguments":[{"name":"s","nativeSrc":"6707:1:21","nodeType":"YulIdentifier","src":"6707:1:21"}],"functionName":{"name":"sload","nativeSrc":"6701:5:21","nodeType":"YulIdentifier","src":"6701:5:21"},"nativeSrc":"6701:8:21","nodeType":"YulFunctionCall","src":"6701:8:21"},"variables":[{"name":"i","nativeSrc":"6696:1:21","nodeType":"YulTypedName","src":"6696:1:21","type":""}]},{"body":{"nativeSrc":"6735:121:21","nodeType":"YulBlock","src":"6735:121:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6760:4:21","nodeType":"YulLiteral","src":"6760:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6766:10:21","nodeType":"YulLiteral","src":"6766:10:21","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"6753:6:21","nodeType":"YulIdentifier","src":"6753:6:21"},"nativeSrc":"6753:24:21","nodeType":"YulFunctionCall","src":"6753:24:21"},"nativeSrc":"6753:24:21","nodeType":"YulExpressionStatement","src":"6753:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6831:4:21","nodeType":"YulLiteral","src":"6831:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6837:4:21","nodeType":"YulLiteral","src":"6837:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6824:6:21","nodeType":"YulIdentifier","src":"6824:6:21"},"nativeSrc":"6824:18:21","nodeType":"YulFunctionCall","src":"6824:18:21"},"nativeSrc":"6824:18:21","nodeType":"YulExpressionStatement","src":"6824:18:21"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6729:1:21","nodeType":"YulIdentifier","src":"6729:1:21"},{"kind":"number","nativeSrc":"6732:1:21","nodeType":"YulLiteral","src":"6732:1:21","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6725:3:21","nodeType":"YulIdentifier","src":"6725:3:21"},"nativeSrc":"6725:9:21","nodeType":"YulFunctionCall","src":"6725:9:21"},"nativeSrc":"6722:134:21","nodeType":"YulIf","src":"6722:134:21"},{"nativeSrc":"6869:28:21","nodeType":"YulVariableDeclaration","src":"6869:28:21","value":{"arguments":[{"kind":"number","nativeSrc":"6890:3:21","nodeType":"YulLiteral","src":"6890:3:21","type":"","value":"192"},{"name":"s","nativeSrc":"6895:1:21","nodeType":"YulIdentifier","src":"6895:1:21"}],"functionName":{"name":"shr","nativeSrc":"6886:3:21","nodeType":"YulIdentifier","src":"6886:3:21"},"nativeSrc":"6886:11:21","nodeType":"YulFunctionCall","src":"6886:11:21"},"variables":[{"name":"uint64max","nativeSrc":"6873:9:21","nodeType":"YulTypedName","src":"6873:9:21","type":""}]},{"body":{"nativeSrc":"6976:292:21","nodeType":"YulBlock","src":"6976:292:21","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"7082:1:21","nodeType":"YulIdentifier","src":"7082:1:21"},{"arguments":[{"kind":"number","nativeSrc":"7089:1:21","nodeType":"YulLiteral","src":"7089:1:21","type":"","value":"1"},{"name":"uint64max","nativeSrc":"7092:9:21","nodeType":"YulIdentifier","src":"7092:9:21"}],"functionName":{"name":"shl","nativeSrc":"7085:3:21","nodeType":"YulIdentifier","src":"7085:3:21"},"nativeSrc":"7085:17:21","nodeType":"YulFunctionCall","src":"7085:17:21"}],"functionName":{"name":"sstore","nativeSrc":"7075:6:21","nodeType":"YulIdentifier","src":"7075:6:21"},"nativeSrc":"7075:28:21","nodeType":"YulFunctionCall","src":"7075:28:21"},"nativeSrc":"7075:28:21","nodeType":"YulExpressionStatement","src":"7075:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7176:4:21","nodeType":"YulLiteral","src":"7176:4:21","type":"","value":"0x20"},{"name":"uint64max","nativeSrc":"7182:9:21","nodeType":"YulIdentifier","src":"7182:9:21"}],"functionName":{"name":"mstore","nativeSrc":"7169:6:21","nodeType":"YulIdentifier","src":"7169:6:21"},"nativeSrc":"7169:23:21","nodeType":"YulFunctionCall","src":"7169:23:21"},"nativeSrc":"7169:23:21","nodeType":"YulExpressionStatement","src":"7169:23:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7214:4:21","nodeType":"YulLiteral","src":"7214:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"7220:4:21","nodeType":"YulLiteral","src":"7220:4:21","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"7226:27:21","nodeType":"YulIdentifier","src":"7226:27:21"}],"functionName":{"name":"log1","nativeSrc":"7209:4:21","nodeType":"YulIdentifier","src":"7209:4:21"},"nativeSrc":"7209:45:21","nodeType":"YulFunctionCall","src":"7209:45:21"},"nativeSrc":"7209:45:21","nodeType":"YulExpressionStatement","src":"7209:45:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6957:1:21","nodeType":"YulLiteral","src":"6957:1:21","type":"","value":"1"},{"name":"i","nativeSrc":"6960:1:21","nodeType":"YulIdentifier","src":"6960:1:21"}],"functionName":{"name":"shr","nativeSrc":"6953:3:21","nodeType":"YulIdentifier","src":"6953:3:21"},"nativeSrc":"6953:9:21","nodeType":"YulFunctionCall","src":"6953:9:21"},{"name":"uint64max","nativeSrc":"6964:9:21","nodeType":"YulIdentifier","src":"6964:9:21"}],"functionName":{"name":"eq","nativeSrc":"6950:2:21","nodeType":"YulIdentifier","src":"6950:2:21"},"nativeSrc":"6950:24:21","nodeType":"YulFunctionCall","src":"6950:24:21"}],"functionName":{"name":"iszero","nativeSrc":"6943:6:21","nodeType":"YulIdentifier","src":"6943:6:21"},"nativeSrc":"6943:32:21","nodeType":"YulFunctionCall","src":"6943:32:21"},"nativeSrc":"6940:328:21","nodeType":"YulIf","src":"6940:328:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9129,"isOffset":false,"isSlot":false,"src":"7226:27:21","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"6707:1:21","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"6895:1:21","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"7082:1:21","valueSize":1}],"id":9196,"nodeType":"InlineAssembly","src":"6669:609:21"}]},"documentation":{"id":9188,"nodeType":"StructuredDocumentation","src":"6099:421:21","text":"@dev Locks any future initializations by setting the initialized version to `2**64 - 1`.\n Calling this in the constructor will prevent the contract from being initialized\n or reinitialized. It is recommended to use this to lock implementation contracts\n that are designed to be called through proxies.\n Emits an {Initialized} event the first time it is successfully called."},"id":9198,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"6534:20:21","nodeType":"FunctionDefinition","parameters":{"id":9189,"nodeType":"ParameterList","parameters":[],"src":"6554:2:21"},"returnParameters":{"id":9190,"nodeType":"ParameterList","parameters":[],"src":"6574:0:21"},"scope":9225,"src":"6525:759:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9210,"nodeType":"Block","src":"7439:161:21","statements":[{"assignments":[9205],"declarations":[{"constant":false,"id":9205,"mutability":"mutable","name":"s","nameLocation":"7457:1:21","nodeType":"VariableDeclaration","scope":9210,"src":"7449:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7449:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9206,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"7461:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7461:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7449:32:21"},{"AST":{"nativeSrc":"7543:51:21","nodeType":"YulBlock","src":"7543:51:21","statements":[{"nativeSrc":"7557:27:21","nodeType":"YulAssignment","src":"7557:27:21","value":{"arguments":[{"kind":"number","nativeSrc":"7572:1:21","nodeType":"YulLiteral","src":"7572:1:21","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"7581:1:21","nodeType":"YulIdentifier","src":"7581:1:21"}],"functionName":{"name":"sload","nativeSrc":"7575:5:21","nodeType":"YulIdentifier","src":"7575:5:21"},"nativeSrc":"7575:8:21","nodeType":"YulFunctionCall","src":"7575:8:21"}],"functionName":{"name":"shr","nativeSrc":"7568:3:21","nodeType":"YulIdentifier","src":"7568:3:21"},"nativeSrc":"7568:16:21","nodeType":"YulFunctionCall","src":"7568:16:21"},"variableNames":[{"name":"version","nativeSrc":"7557:7:21","nodeType":"YulIdentifier","src":"7557:7:21"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9205,"isOffset":false,"isSlot":false,"src":"7581:1:21","valueSize":1},{"declaration":9202,"isOffset":false,"isSlot":false,"src":"7557:7:21","valueSize":1}],"id":9209,"nodeType":"InlineAssembly","src":"7534:60:21"}]},"documentation":{"id":9199,"nodeType":"StructuredDocumentation","src":"7290:63:21","text":"@dev Returns the highest version that has been initialized."},"id":9211,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"7367:22:21","nodeType":"FunctionDefinition","parameters":{"id":9200,"nodeType":"ParameterList","parameters":[],"src":"7389:2:21"},"returnParameters":{"id":9203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9202,"mutability":"mutable","name":"version","nameLocation":"7430:7:21","nodeType":"VariableDeclaration","scope":9211,"src":"7423:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9201,"name":"uint64","nodeType":"ElementaryTypeName","src":"7423:6:21","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7422:16:21"},"scope":9225,"src":"7358:242:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9223,"nodeType":"Block","src":"7746:160:21","statements":[{"assignments":[9218],"declarations":[{"constant":false,"id":9218,"mutability":"mutable","name":"s","nameLocation":"7764:1:21","nodeType":"VariableDeclaration","scope":9223,"src":"7756:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7756:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9221,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9219,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"7768:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7768:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7756:32:21"},{"AST":{"nativeSrc":"7850:50:21","nodeType":"YulBlock","src":"7850:50:21","statements":[{"nativeSrc":"7864:26:21","nodeType":"YulAssignment","src":"7864:26:21","value":{"arguments":[{"kind":"number","nativeSrc":"7878:1:21","nodeType":"YulLiteral","src":"7878:1:21","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"7887:1:21","nodeType":"YulIdentifier","src":"7887:1:21"}],"functionName":{"name":"sload","nativeSrc":"7881:5:21","nodeType":"YulIdentifier","src":"7881:5:21"},"nativeSrc":"7881:8:21","nodeType":"YulFunctionCall","src":"7881:8:21"}],"functionName":{"name":"and","nativeSrc":"7874:3:21","nodeType":"YulIdentifier","src":"7874:3:21"},"nativeSrc":"7874:16:21","nodeType":"YulFunctionCall","src":"7874:16:21"},"variableNames":[{"name":"result","nativeSrc":"7864:6:21","nodeType":"YulIdentifier","src":"7864:6:21"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9215,"isOffset":false,"isSlot":false,"src":"7864:6:21","valueSize":1},{"declaration":9218,"isOffset":false,"isSlot":false,"src":"7887:1:21","valueSize":1}],"id":9222,"nodeType":"InlineAssembly","src":"7841:59:21"}]},"documentation":{"id":9212,"nodeType":"StructuredDocumentation","src":"7606:64:21","text":"@dev Returns whether the contract is currently initializing."},"id":9224,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"7684:15:21","nodeType":"FunctionDefinition","parameters":{"id":9213,"nodeType":"ParameterList","parameters":[],"src":"7699:2:21"},"returnParameters":{"id":9216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9215,"mutability":"mutable","name":"result","nameLocation":"7738:6:21","nodeType":"VariableDeclaration","scope":9224,"src":"7733:11:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9214,"name":"bool","nodeType":"ElementaryTypeName","src":"7733:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7732:13:21"},"scope":9225,"src":"7675:231:21","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":9226,"src":"364:7544:21","usedErrors":[9117,9120],"usedEvents":[9125]}],"src":"32:7877:21"},"id":21},"@solady/utils/LibClone.sol":{"ast":{"absolutePath":"@solady/utils/LibClone.sol","exportedSymbols":{"LibClone":[10092]},"id":10093,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9227,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:22"},{"abstract":false,"baseContracts":[],"canonicalName":"LibClone","contractDependencies":[],"contractKind":"library","documentation":{"id":9228,"nodeType":"StructuredDocumentation","src":"57:2160:22","text":"@notice Minimal proxy library.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)\n @author Minimal proxy by 0age (https://github.com/0age)\n @author Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie\n (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)\n @author Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\n @dev Minimal proxy:\n Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime,\n it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern,\n which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.\n @dev Minimal proxy (PUSH0 variant):\n This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai.\n It is optimized first for minimal runtime gas, then for minimal bytecode.\n The PUSH0 clone functions are intentionally postfixed with a jarring \"_PUSH0\" as\n many EVM chains may not support the PUSH0 opcode in the early months after Shanghai.\n Please use with caution.\n @dev Clones with immutable args (CWIA):\n The implementation of CWIA here implements a `receive()` method that emits the\n `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata,\n enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards\n composability. The minimal proxy implementation does not offer this feature.\n @dev Minimal ERC1967 proxy:\n An minimal ERC1967 proxy, intended to be upgraded with UUPS.\n This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n This proxy is automatically verified on Etherscan.\n @dev ERC1967I proxy:\n An variant of the minimal ERC1967 proxy, with a special code path that activates\n if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the\n `implementation` address. The returned implementation is guaranteed to be valid if the\n keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`."},"fullyImplemented":true,"id":10092,"linearizedBaseContracts":[10092],"name":"LibClone","nameLocation":"2225:8:22","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":9229,"nodeType":"StructuredDocumentation","src":"2523:66:22","text":"@dev The keccak256 of the deployed code for the ERC1967 proxy."},"id":9232,"mutability":"constant","name":"ERC1967_CODE_HASH","nameLocation":"2620:17:22","nodeType":"VariableDeclaration","scope":10092,"src":"2594:120:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2594:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861616135326338636338613065336664323763653735366363366234653730633531343233653962353937623131663332643365343966386231666338393064","id":9231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:66:22","typeDescriptions":{"typeIdentifier":"t_rational_77185021497204156503765693158949628883174901464818108677459927010977630685453_by_1","typeString":"int_const 7718...(69 digits omitted)...5453"},"value":"0xaaa52c8cc8a0e3fd27ce756cc6b4e70c51423e9b597b11f32d3e49f8b1fc890d"},"visibility":"internal"},{"constant":true,"documentation":{"id":9233,"nodeType":"StructuredDocumentation","src":"2721:67:22","text":"@dev The keccak256 of the deployed code for the ERC1967I proxy."},"id":9236,"mutability":"constant","name":"ERC1967I_CODE_HASH","nameLocation":"2819:18:22","nodeType":"VariableDeclaration","scope":10092,"src":"2793:121:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2793:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863653730303232336330643463656134353833343039616363666334356164616334613039336233353139393938613963626265313530346461646261366637","id":9235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:66:22","typeDescriptions":{"typeIdentifier":"t_rational_93374348446806385783963617675677071552231539524766885499178152025851048994551_by_1","typeString":"int_const 9337...(69 digits omitted)...4551"},"value":"0xce700223c0d4cea4583409accfc45adac4a093b3519998a9cbbe1504dadba6f7"},"visibility":"internal"},{"constant":true,"documentation":{"id":9237,"nodeType":"StructuredDocumentation","src":"2921:73:22","text":"@dev The keccak256 of the deployed code for the ERC1967 beacon proxy."},"id":9240,"mutability":"constant","name":"ERC1967_BEACON_PROXY_CODE_HASH","nameLocation":"3025:30:22","nodeType":"VariableDeclaration","scope":10092,"src":"2999:133:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2999:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307831343034343435396166313762633466306635616132663635386362363932616464373764313330326332396665326165626162303035656561396431313632","id":9239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3066:66:22","typeDescriptions":{"typeIdentifier":"t_rational_9053796096550691733351246263824737728846953073129913053479247112142852002146_by_1","typeString":"int_const 9053...(68 digits omitted)...2146"},"value":"0x14044459af17bc4f0f5aa2f658cb692add77d1302c29fe2aebab005eea9d1162"},"visibility":"internal"},{"documentation":{"id":9241,"nodeType":"StructuredDocumentation","src":"3422:36:22","text":"@dev Unable to deploy the clone."},"errorSelector":"30116425","id":9243,"name":"DeploymentFailed","nameLocation":"3469:16:22","nodeType":"ErrorDefinition","parameters":{"id":9242,"nodeType":"ParameterList","parameters":[],"src":"3485:2:22"},"src":"3463:25:22"},{"documentation":{"id":9244,"nodeType":"StructuredDocumentation","src":"3494:66:22","text":"@dev The salt must start with either the zero address or `by`."},"errorSelector":"0c4549ef","id":9246,"name":"SaltDoesNotStartWith","nameLocation":"3571:20:22","nodeType":"ErrorDefinition","parameters":{"id":9245,"nodeType":"ParameterList","parameters":[],"src":"3591:2:22"},"src":"3565:29:22"},{"documentation":{"id":9247,"nodeType":"StructuredDocumentation","src":"3600:37:22","text":"@dev The ETH transfer has failed."},"errorSelector":"b12d13eb","id":9249,"name":"ETHTransferFailed","nameLocation":"3648:17:22","nodeType":"ErrorDefinition","parameters":{"id":9248,"nodeType":"ParameterList","parameters":[],"src":"3665:2:22"},"src":"3642:26:22"},{"body":{"id":9264,"nodeType":"Block","src":"4082:52:22","statements":[{"expression":{"id":9262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9257,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9255,"src":"4092:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4109:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9260,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9252,"src":"4112:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9258,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[9265,9277,9484,9498],"referencedDeclaration":9277,"src":"4103:5:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:24:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4092:35:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9263,"nodeType":"ExpressionStatement","src":"4092:35:22"}]},"documentation":{"id":9250,"nodeType":"StructuredDocumentation","src":"3957:45:22","text":"@dev Deploys a clone of `implementation`."},"id":9265,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"4016:5:22","nodeType":"FunctionDefinition","parameters":{"id":9253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9252,"mutability":"mutable","name":"implementation","nameLocation":"4030:14:22","nodeType":"VariableDeclaration","scope":9265,"src":"4022:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9251,"name":"address","nodeType":"ElementaryTypeName","src":"4022:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4021:24:22"},"returnParameters":{"id":9256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9255,"mutability":"mutable","name":"instance","nameLocation":"4072:8:22","nodeType":"VariableDeclaration","scope":9265,"src":"4064:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9254,"name":"address","nodeType":"ElementaryTypeName","src":"4064:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4063:18:22"},"scope":10092,"src":"4007:127:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9276,"nodeType":"Block","src":"4328:5477:22","statements":[{"AST":{"nativeSrc":"4390:5409:22","nodeType":"YulBlock","src":"4390:5409:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9357:4:22","nodeType":"YulLiteral","src":"9357:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"9363:28:22","nodeType":"YulLiteral","src":"9363:28:22","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"9350:6:22","nodeType":"YulIdentifier","src":"9350:6:22"},"nativeSrc":"9350:42:22","nodeType":"YulFunctionCall","src":"9350:42:22"},"nativeSrc":"9350:42:22","nodeType":"YulExpressionStatement","src":"9350:42:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9412:4:22","nodeType":"YulLiteral","src":"9412:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"9418:14:22","nodeType":"YulIdentifier","src":"9418:14:22"}],"functionName":{"name":"mstore","nativeSrc":"9405:6:22","nodeType":"YulIdentifier","src":"9405:6:22"},"nativeSrc":"9405:28:22","nodeType":"YulFunctionCall","src":"9405:28:22"},"nativeSrc":"9405:28:22","nodeType":"YulExpressionStatement","src":"9405:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9453:4:22","nodeType":"YulLiteral","src":"9453:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9459:42:22","nodeType":"YulLiteral","src":"9459:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"9446:6:22","nodeType":"YulIdentifier","src":"9446:6:22"},"nativeSrc":"9446:56:22","nodeType":"YulFunctionCall","src":"9446:56:22"},"nativeSrc":"9446:56:22","nodeType":"YulExpressionStatement","src":"9446:56:22"},{"nativeSrc":"9515:37:22","nodeType":"YulAssignment","src":"9515:37:22","value":{"arguments":[{"name":"value","nativeSrc":"9534:5:22","nodeType":"YulIdentifier","src":"9534:5:22"},{"kind":"number","nativeSrc":"9541:4:22","nodeType":"YulLiteral","src":"9541:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9547:4:22","nodeType":"YulLiteral","src":"9547:4:22","type":"","value":"0x35"}],"functionName":{"name":"create","nativeSrc":"9527:6:22","nodeType":"YulIdentifier","src":"9527:6:22"},"nativeSrc":"9527:25:22","nodeType":"YulFunctionCall","src":"9527:25:22"},"variableNames":[{"name":"instance","nativeSrc":"9515:8:22","nodeType":"YulIdentifier","src":"9515:8:22"}]},{"body":{"nativeSrc":"9585:116:22","nodeType":"YulBlock","src":"9585:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9610:4:22","nodeType":"YulLiteral","src":"9610:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9616:10:22","nodeType":"YulLiteral","src":"9616:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"9603:6:22","nodeType":"YulIdentifier","src":"9603:6:22"},"nativeSrc":"9603:24:22","nodeType":"YulFunctionCall","src":"9603:24:22"},"nativeSrc":"9603:24:22","nodeType":"YulExpressionStatement","src":"9603:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9676:4:22","nodeType":"YulLiteral","src":"9676:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"9682:4:22","nodeType":"YulLiteral","src":"9682:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"9669:6:22","nodeType":"YulIdentifier","src":"9669:6:22"},"nativeSrc":"9669:18:22","nodeType":"YulFunctionCall","src":"9669:18:22"},"nativeSrc":"9669:18:22","nodeType":"YulExpressionStatement","src":"9669:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"9575:8:22","nodeType":"YulIdentifier","src":"9575:8:22"}],"functionName":{"name":"iszero","nativeSrc":"9568:6:22","nodeType":"YulIdentifier","src":"9568:6:22"},"nativeSrc":"9568:16:22","nodeType":"YulFunctionCall","src":"9568:16:22"},"nativeSrc":"9565:136:22","nodeType":"YulIf","src":"9565:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9721:4:22","nodeType":"YulLiteral","src":"9721:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"9727:1:22","nodeType":"YulLiteral","src":"9727:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9714:6:22","nodeType":"YulIdentifier","src":"9714:6:22"},"nativeSrc":"9714:15:22","nodeType":"YulFunctionCall","src":"9714:15:22"},"nativeSrc":"9714:15:22","nodeType":"YulExpressionStatement","src":"9714:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9270,"isOffset":false,"isSlot":false,"src":"9418:14:22","valueSize":1},{"declaration":9273,"isOffset":false,"isSlot":false,"src":"9515:8:22","valueSize":1},{"declaration":9273,"isOffset":false,"isSlot":false,"src":"9575:8:22","valueSize":1},{"declaration":9268,"isOffset":false,"isSlot":false,"src":"9534:5:22","valueSize":1}],"id":9275,"nodeType":"InlineAssembly","src":"4381:5418:22"}]},"documentation":{"id":9266,"nodeType":"StructuredDocumentation","src":"4140:93:22","text":"@dev Deploys a clone of `implementation`.\n Deposits `value` ETH during deployment."},"id":9277,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"4247:5:22","nodeType":"FunctionDefinition","parameters":{"id":9271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9268,"mutability":"mutable","name":"value","nameLocation":"4261:5:22","nodeType":"VariableDeclaration","scope":9277,"src":"4253:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4253:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9270,"mutability":"mutable","name":"implementation","nameLocation":"4276:14:22","nodeType":"VariableDeclaration","scope":9277,"src":"4268:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9269,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4252:39:22"},"returnParameters":{"id":9274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9273,"mutability":"mutable","name":"instance","nameLocation":"4318:8:22","nodeType":"VariableDeclaration","scope":9277,"src":"4310:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9272,"name":"address","nodeType":"ElementaryTypeName","src":"4310:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4309:18:22"},"scope":10092,"src":"4238:5567:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9295,"nodeType":"Block","src":"10009:71:22","statements":[{"expression":{"id":9293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9287,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9285,"src":"10019:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10049:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9290,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9280,"src":"10052:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9291,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9282,"src":"10068:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9288,"name":"cloneDeterministic","nodeType":"Identifier","overloadedDeclarations":[9296,9310,9520,9536],"referencedDeclaration":9310,"src":"10030:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10030:43:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10019:54:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9294,"nodeType":"ExpressionStatement","src":"10019:54:22"}]},"documentation":{"id":9278,"nodeType":"StructuredDocumentation","src":"9811:71:22","text":"@dev Deploys a deterministic clone of `implementation` with `salt`."},"id":9296,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"9896:18:22","nodeType":"FunctionDefinition","parameters":{"id":9283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9280,"mutability":"mutable","name":"implementation","nameLocation":"9923:14:22","nodeType":"VariableDeclaration","scope":9296,"src":"9915:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9279,"name":"address","nodeType":"ElementaryTypeName","src":"9915:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9282,"mutability":"mutable","name":"salt","nameLocation":"9947:4:22","nodeType":"VariableDeclaration","scope":9296,"src":"9939:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9939:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9914:38:22"},"returnParameters":{"id":9286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9285,"mutability":"mutable","name":"instance","nameLocation":"9995:8:22","nodeType":"VariableDeclaration","scope":9296,"src":"9987:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9284,"name":"address","nodeType":"ElementaryTypeName","src":"9987:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9986:18:22"},"scope":10092,"src":"9887:193:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9309,"nodeType":"Block","src":"10347:538:22","statements":[{"AST":{"nativeSrc":"10409:470:22","nodeType":"YulBlock","src":"10409:470:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10430:4:22","nodeType":"YulLiteral","src":"10430:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"10436:28:22","nodeType":"YulLiteral","src":"10436:28:22","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"10423:6:22","nodeType":"YulIdentifier","src":"10423:6:22"},"nativeSrc":"10423:42:22","nodeType":"YulFunctionCall","src":"10423:42:22"},"nativeSrc":"10423:42:22","nodeType":"YulExpressionStatement","src":"10423:42:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10485:4:22","nodeType":"YulLiteral","src":"10485:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"10491:14:22","nodeType":"YulIdentifier","src":"10491:14:22"}],"functionName":{"name":"mstore","nativeSrc":"10478:6:22","nodeType":"YulIdentifier","src":"10478:6:22"},"nativeSrc":"10478:28:22","nodeType":"YulFunctionCall","src":"10478:28:22"},"nativeSrc":"10478:28:22","nodeType":"YulExpressionStatement","src":"10478:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10526:4:22","nodeType":"YulLiteral","src":"10526:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10532:42:22","nodeType":"YulLiteral","src":"10532:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"10519:6:22","nodeType":"YulIdentifier","src":"10519:6:22"},"nativeSrc":"10519:56:22","nodeType":"YulFunctionCall","src":"10519:56:22"},"nativeSrc":"10519:56:22","nodeType":"YulExpressionStatement","src":"10519:56:22"},{"nativeSrc":"10588:44:22","nodeType":"YulAssignment","src":"10588:44:22","value":{"arguments":[{"name":"value","nativeSrc":"10608:5:22","nodeType":"YulIdentifier","src":"10608:5:22"},{"kind":"number","nativeSrc":"10615:4:22","nodeType":"YulLiteral","src":"10615:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10621:4:22","nodeType":"YulLiteral","src":"10621:4:22","type":"","value":"0x35"},{"name":"salt","nativeSrc":"10627:4:22","nodeType":"YulIdentifier","src":"10627:4:22"}],"functionName":{"name":"create2","nativeSrc":"10600:7:22","nodeType":"YulIdentifier","src":"10600:7:22"},"nativeSrc":"10600:32:22","nodeType":"YulFunctionCall","src":"10600:32:22"},"variableNames":[{"name":"instance","nativeSrc":"10588:8:22","nodeType":"YulIdentifier","src":"10588:8:22"}]},{"body":{"nativeSrc":"10665:116:22","nodeType":"YulBlock","src":"10665:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10690:4:22","nodeType":"YulLiteral","src":"10690:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10696:10:22","nodeType":"YulLiteral","src":"10696:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"10683:6:22","nodeType":"YulIdentifier","src":"10683:6:22"},"nativeSrc":"10683:24:22","nodeType":"YulFunctionCall","src":"10683:24:22"},"nativeSrc":"10683:24:22","nodeType":"YulExpressionStatement","src":"10683:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10756:4:22","nodeType":"YulLiteral","src":"10756:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10762:4:22","nodeType":"YulLiteral","src":"10762:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10749:6:22","nodeType":"YulIdentifier","src":"10749:6:22"},"nativeSrc":"10749:18:22","nodeType":"YulFunctionCall","src":"10749:18:22"},"nativeSrc":"10749:18:22","nodeType":"YulExpressionStatement","src":"10749:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"10655:8:22","nodeType":"YulIdentifier","src":"10655:8:22"}],"functionName":{"name":"iszero","nativeSrc":"10648:6:22","nodeType":"YulIdentifier","src":"10648:6:22"},"nativeSrc":"10648:16:22","nodeType":"YulFunctionCall","src":"10648:16:22"},"nativeSrc":"10645:136:22","nodeType":"YulIf","src":"10645:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10801:4:22","nodeType":"YulLiteral","src":"10801:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"10807:1:22","nodeType":"YulLiteral","src":"10807:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10794:6:22","nodeType":"YulIdentifier","src":"10794:6:22"},"nativeSrc":"10794:15:22","nodeType":"YulFunctionCall","src":"10794:15:22"},"nativeSrc":"10794:15:22","nodeType":"YulExpressionStatement","src":"10794:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9301,"isOffset":false,"isSlot":false,"src":"10491:14:22","valueSize":1},{"declaration":9306,"isOffset":false,"isSlot":false,"src":"10588:8:22","valueSize":1},{"declaration":9306,"isOffset":false,"isSlot":false,"src":"10655:8:22","valueSize":1},{"declaration":9303,"isOffset":false,"isSlot":false,"src":"10627:4:22","valueSize":1},{"declaration":9299,"isOffset":false,"isSlot":false,"src":"10608:5:22","valueSize":1}],"id":9308,"nodeType":"InlineAssembly","src":"10400:479:22"}]},"documentation":{"id":9297,"nodeType":"StructuredDocumentation","src":"10086:119:22","text":"@dev Deploys a deterministic clone of `implementation` with `salt`.\n Deposits `value` ETH during deployment."},"id":9310,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"10219:18:22","nodeType":"FunctionDefinition","parameters":{"id":9304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9299,"mutability":"mutable","name":"value","nameLocation":"10246:5:22","nodeType":"VariableDeclaration","scope":9310,"src":"10238:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9298,"name":"uint256","nodeType":"ElementaryTypeName","src":"10238:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9301,"mutability":"mutable","name":"implementation","nameLocation":"10261:14:22","nodeType":"VariableDeclaration","scope":9310,"src":"10253:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9300,"name":"address","nodeType":"ElementaryTypeName","src":"10253:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9303,"mutability":"mutable","name":"salt","nameLocation":"10285:4:22","nodeType":"VariableDeclaration","scope":9310,"src":"10277:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10277:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10237:53:22"},"returnParameters":{"id":9307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9306,"mutability":"mutable","name":"instance","nameLocation":"10333:8:22","nodeType":"VariableDeclaration","scope":9310,"src":"10325:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9305,"name":"address","nodeType":"ElementaryTypeName","src":"10325:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10324:18:22"},"scope":10092,"src":"10210:675:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9319,"nodeType":"Block","src":"11056:457:22","statements":[{"AST":{"nativeSrc":"11118:389:22","nodeType":"YulBlock","src":"11118:389:22","statements":[{"nativeSrc":"11132:21:22","nodeType":"YulAssignment","src":"11132:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"11148:4:22","nodeType":"YulLiteral","src":"11148:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11142:5:22","nodeType":"YulIdentifier","src":"11142:5:22"},"nativeSrc":"11142:11:22","nodeType":"YulFunctionCall","src":"11142:11:22"},"variableNames":[{"name":"result","nativeSrc":"11132:6:22","nodeType":"YulIdentifier","src":"11132:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11177:6:22","nodeType":"YulIdentifier","src":"11177:6:22"},{"kind":"number","nativeSrc":"11185:4:22","nodeType":"YulLiteral","src":"11185:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11173:3:22","nodeType":"YulIdentifier","src":"11173:3:22"},"nativeSrc":"11173:17:22","nodeType":"YulFunctionCall","src":"11173:17:22"},{"kind":"number","nativeSrc":"11192:50:22","nodeType":"YulLiteral","src":"11192:50:22","type":"","value":"0x5af43d3d93803e602a57fd5bf30000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"11166:6:22","nodeType":"YulIdentifier","src":"11166:6:22"},"nativeSrc":"11166:77:22","nodeType":"YulFunctionCall","src":"11166:77:22"},"nativeSrc":"11166:77:22","nodeType":"YulExpressionStatement","src":"11166:77:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11267:6:22","nodeType":"YulIdentifier","src":"11267:6:22"},{"kind":"number","nativeSrc":"11275:4:22","nodeType":"YulLiteral","src":"11275:4:22","type":"","value":"0x28"}],"functionName":{"name":"add","nativeSrc":"11263:3:22","nodeType":"YulIdentifier","src":"11263:3:22"},"nativeSrc":"11263:17:22","nodeType":"YulFunctionCall","src":"11263:17:22"},{"name":"implementation","nativeSrc":"11282:14:22","nodeType":"YulIdentifier","src":"11282:14:22"}],"functionName":{"name":"mstore","nativeSrc":"11256:6:22","nodeType":"YulIdentifier","src":"11256:6:22"},"nativeSrc":"11256:41:22","nodeType":"YulFunctionCall","src":"11256:41:22"},"nativeSrc":"11256:41:22","nodeType":"YulExpressionStatement","src":"11256:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11321:6:22","nodeType":"YulIdentifier","src":"11321:6:22"},{"kind":"number","nativeSrc":"11329:4:22","nodeType":"YulLiteral","src":"11329:4:22","type":"","value":"0x14"}],"functionName":{"name":"add","nativeSrc":"11317:3:22","nodeType":"YulIdentifier","src":"11317:3:22"},"nativeSrc":"11317:17:22","nodeType":"YulFunctionCall","src":"11317:17:22"},{"kind":"number","nativeSrc":"11336:42:22","nodeType":"YulLiteral","src":"11336:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"11310:6:22","nodeType":"YulIdentifier","src":"11310:6:22"},"nativeSrc":"11310:69:22","nodeType":"YulFunctionCall","src":"11310:69:22"},"nativeSrc":"11310:69:22","nodeType":"YulExpressionStatement","src":"11310:69:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"11399:6:22","nodeType":"YulIdentifier","src":"11399:6:22"},{"kind":"number","nativeSrc":"11407:4:22","nodeType":"YulLiteral","src":"11407:4:22","type":"","value":"0x35"}],"functionName":{"name":"mstore","nativeSrc":"11392:6:22","nodeType":"YulIdentifier","src":"11392:6:22"},"nativeSrc":"11392:20:22","nodeType":"YulFunctionCall","src":"11392:20:22"},"nativeSrc":"11392:20:22","nodeType":"YulExpressionStatement","src":"11392:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11453:4:22","nodeType":"YulLiteral","src":"11453:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"11463:6:22","nodeType":"YulIdentifier","src":"11463:6:22"},{"kind":"number","nativeSrc":"11471:4:22","nodeType":"YulLiteral","src":"11471:4:22","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11459:3:22","nodeType":"YulIdentifier","src":"11459:3:22"},"nativeSrc":"11459:17:22","nodeType":"YulFunctionCall","src":"11459:17:22"}],"functionName":{"name":"mstore","nativeSrc":"11446:6:22","nodeType":"YulIdentifier","src":"11446:6:22"},"nativeSrc":"11446:31:22","nodeType":"YulFunctionCall","src":"11446:31:22"},"nativeSrc":"11446:31:22","nodeType":"YulExpressionStatement","src":"11446:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9313,"isOffset":false,"isSlot":false,"src":"11282:14:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11132:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11177:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11267:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11321:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11399:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11463:6:22","valueSize":1}],"id":9318,"nodeType":"InlineAssembly","src":"11109:398:22"}]},"documentation":{"id":9311,"nodeType":"StructuredDocumentation","src":"10891:74:22","text":"@dev Returns the initialization code of the clone of `implementation`."},"id":9320,"implemented":true,"kind":"function","modifiers":[],"name":"initCode","nameLocation":"10979:8:22","nodeType":"FunctionDefinition","parameters":{"id":9314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9313,"mutability":"mutable","name":"implementation","nameLocation":"10996:14:22","nodeType":"VariableDeclaration","scope":9320,"src":"10988:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9312,"name":"address","nodeType":"ElementaryTypeName","src":"10988:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10987:24:22"},"returnParameters":{"id":9317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9316,"mutability":"mutable","name":"result","nameLocation":"11048:6:22","nodeType":"VariableDeclaration","scope":9320,"src":"11035:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9315,"name":"bytes","nodeType":"ElementaryTypeName","src":"11035:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11034:21:22"},"scope":10092,"src":"10970:543:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9329,"nodeType":"Block","src":"11747:374:22","statements":[{"AST":{"nativeSrc":"11809:306:22","nodeType":"YulBlock","src":"11809:306:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11830:4:22","nodeType":"YulLiteral","src":"11830:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"11836:28:22","nodeType":"YulLiteral","src":"11836:28:22","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"11823:6:22","nodeType":"YulIdentifier","src":"11823:6:22"},"nativeSrc":"11823:42:22","nodeType":"YulFunctionCall","src":"11823:42:22"},"nativeSrc":"11823:42:22","nodeType":"YulExpressionStatement","src":"11823:42:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11885:4:22","nodeType":"YulLiteral","src":"11885:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"11891:14:22","nodeType":"YulIdentifier","src":"11891:14:22"}],"functionName":{"name":"mstore","nativeSrc":"11878:6:22","nodeType":"YulIdentifier","src":"11878:6:22"},"nativeSrc":"11878:28:22","nodeType":"YulFunctionCall","src":"11878:28:22"},"nativeSrc":"11878:28:22","nodeType":"YulExpressionStatement","src":"11878:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11926:4:22","nodeType":"YulLiteral","src":"11926:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11932:42:22","nodeType":"YulLiteral","src":"11932:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"11919:6:22","nodeType":"YulIdentifier","src":"11919:6:22"},"nativeSrc":"11919:56:22","nodeType":"YulFunctionCall","src":"11919:56:22"},"nativeSrc":"11919:56:22","nodeType":"YulExpressionStatement","src":"11919:56:22"},{"nativeSrc":"11988:29:22","nodeType":"YulAssignment","src":"11988:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"12006:4:22","nodeType":"YulLiteral","src":"12006:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12012:4:22","nodeType":"YulLiteral","src":"12012:4:22","type":"","value":"0x35"}],"functionName":{"name":"keccak256","nativeSrc":"11996:9:22","nodeType":"YulIdentifier","src":"11996:9:22"},"nativeSrc":"11996:21:22","nodeType":"YulFunctionCall","src":"11996:21:22"},"variableNames":[{"name":"hash","nativeSrc":"11988:4:22","nodeType":"YulIdentifier","src":"11988:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12037:4:22","nodeType":"YulLiteral","src":"12037:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"12043:1:22","nodeType":"YulLiteral","src":"12043:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12030:6:22","nodeType":"YulIdentifier","src":"12030:6:22"},"nativeSrc":"12030:15:22","nodeType":"YulFunctionCall","src":"12030:15:22"},"nativeSrc":"12030:15:22","nodeType":"YulExpressionStatement","src":"12030:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9326,"isOffset":false,"isSlot":false,"src":"11988:4:22","valueSize":1},{"declaration":9323,"isOffset":false,"isSlot":false,"src":"11891:14:22","valueSize":1}],"id":9328,"nodeType":"InlineAssembly","src":"11800:315:22"}]},"documentation":{"id":9321,"nodeType":"StructuredDocumentation","src":"11519:140:22","text":"@dev Returns the initialization code hash of the clone of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9330,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash","nameLocation":"11673:12:22","nodeType":"FunctionDefinition","parameters":{"id":9324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9323,"mutability":"mutable","name":"implementation","nameLocation":"11694:14:22","nodeType":"VariableDeclaration","scope":9330,"src":"11686:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"11686:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11685:24:22"},"returnParameters":{"id":9327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9326,"mutability":"mutable","name":"hash","nameLocation":"11741:4:22","nodeType":"VariableDeclaration","scope":9330,"src":"11733:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11733:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11732:14:22"},"scope":10092,"src":"11664:457:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9356,"nodeType":"Block","src":"12499:131:22","statements":[{"assignments":[9343],"declarations":[{"constant":false,"id":9343,"mutability":"mutable","name":"hash","nameLocation":"12517:4:22","nodeType":"VariableDeclaration","scope":9356,"src":"12509:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12509:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9347,"initialValue":{"arguments":[{"id":9345,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"12537:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9344,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[9330,9560],"referencedDeclaration":9330,"src":"12524:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12524:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12509:43:22"},{"expression":{"id":9354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9348,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9340,"src":"12562:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9350,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9343,"src":"12602:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9351,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9335,"src":"12608:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9352,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"12614:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9349,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"12574:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12562:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9355,"nodeType":"ExpressionStatement","src":"12562:61:22"}]},"documentation":{"id":9331,"nodeType":"StructuredDocumentation","src":"12127:204:22","text":"@dev Returns the address of the deterministic clone of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9357,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"12345:27:22","nodeType":"FunctionDefinition","parameters":{"id":9338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9333,"mutability":"mutable","name":"implementation","nameLocation":"12381:14:22","nodeType":"VariableDeclaration","scope":9357,"src":"12373:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9332,"name":"address","nodeType":"ElementaryTypeName","src":"12373:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9335,"mutability":"mutable","name":"salt","nameLocation":"12405:4:22","nodeType":"VariableDeclaration","scope":9357,"src":"12397:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12397:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9337,"mutability":"mutable","name":"deployer","nameLocation":"12419:8:22","nodeType":"VariableDeclaration","scope":9357,"src":"12411:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9336,"name":"address","nodeType":"ElementaryTypeName","src":"12411:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12372:56:22"},"returnParameters":{"id":9341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9340,"mutability":"mutable","name":"predicted","nameLocation":"12484:9:22","nodeType":"VariableDeclaration","scope":9357,"src":"12476:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9339,"name":"address","nodeType":"ElementaryTypeName","src":"12476:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12475:19:22"},"scope":10092,"src":"12336:294:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9372,"nodeType":"Block","src":"13056:58:22","statements":[{"expression":{"id":9370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9365,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9363,"src":"13066:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13089:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9368,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9360,"src":"13092:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9366,"name":"clone_PUSH0","nodeType":"Identifier","overloadedDeclarations":[9373,9385],"referencedDeclaration":9385,"src":"13077:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13077:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13066:41:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9371,"nodeType":"ExpressionStatement","src":"13066:41:22"}]},"documentation":{"id":9358,"nodeType":"StructuredDocumentation","src":"12919:51:22","text":"@dev Deploys a PUSH0 clone of `implementation`."},"id":9373,"implemented":true,"kind":"function","modifiers":[],"name":"clone_PUSH0","nameLocation":"12984:11:22","nodeType":"FunctionDefinition","parameters":{"id":9361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9360,"mutability":"mutable","name":"implementation","nameLocation":"13004:14:22","nodeType":"VariableDeclaration","scope":9373,"src":"12996:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9359,"name":"address","nodeType":"ElementaryTypeName","src":"12996:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12995:24:22"},"returnParameters":{"id":9364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9363,"mutability":"mutable","name":"instance","nameLocation":"13046:8:22","nodeType":"VariableDeclaration","scope":9373,"src":"13038:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9362,"name":"address","nodeType":"ElementaryTypeName","src":"13038:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13037:18:22"},"scope":10092,"src":"12975:139:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9384,"nodeType":"Block","src":"13340:5591:22","statements":[{"AST":{"nativeSrc":"13402:5523:22","nodeType":"YulBlock","src":"13402:5523:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18460:4:22","nodeType":"YulLiteral","src":"18460:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"18466:34:22","nodeType":"YulLiteral","src":"18466:34:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"18453:6:22","nodeType":"YulIdentifier","src":"18453:6:22"},"nativeSrc":"18453:48:22","nodeType":"YulFunctionCall","src":"18453:48:22"},"nativeSrc":"18453:48:22","nodeType":"YulExpressionStatement","src":"18453:48:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18527:4:22","nodeType":"YulLiteral","src":"18527:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"18533:14:22","nodeType":"YulIdentifier","src":"18533:14:22"}],"functionName":{"name":"mstore","nativeSrc":"18520:6:22","nodeType":"YulIdentifier","src":"18520:6:22"},"nativeSrc":"18520:28:22","nodeType":"YulFunctionCall","src":"18520:28:22"},"nativeSrc":"18520:28:22","nodeType":"YulExpressionStatement","src":"18520:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18574:4:22","nodeType":"YulLiteral","src":"18574:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18580:38:22","nodeType":"YulLiteral","src":"18580:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"18567:6:22","nodeType":"YulIdentifier","src":"18567:6:22"},"nativeSrc":"18567:52:22","nodeType":"YulFunctionCall","src":"18567:52:22"},"nativeSrc":"18567:52:22","nodeType":"YulExpressionStatement","src":"18567:52:22"},{"nativeSrc":"18641:37:22","nodeType":"YulAssignment","src":"18641:37:22","value":{"arguments":[{"name":"value","nativeSrc":"18660:5:22","nodeType":"YulIdentifier","src":"18660:5:22"},{"kind":"number","nativeSrc":"18667:4:22","nodeType":"YulLiteral","src":"18667:4:22","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"18673:4:22","nodeType":"YulLiteral","src":"18673:4:22","type":"","value":"0x36"}],"functionName":{"name":"create","nativeSrc":"18653:6:22","nodeType":"YulIdentifier","src":"18653:6:22"},"nativeSrc":"18653:25:22","nodeType":"YulFunctionCall","src":"18653:25:22"},"variableNames":[{"name":"instance","nativeSrc":"18641:8:22","nodeType":"YulIdentifier","src":"18641:8:22"}]},{"body":{"nativeSrc":"18711:116:22","nodeType":"YulBlock","src":"18711:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18736:4:22","nodeType":"YulLiteral","src":"18736:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18742:10:22","nodeType":"YulLiteral","src":"18742:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"18729:6:22","nodeType":"YulIdentifier","src":"18729:6:22"},"nativeSrc":"18729:24:22","nodeType":"YulFunctionCall","src":"18729:24:22"},"nativeSrc":"18729:24:22","nodeType":"YulExpressionStatement","src":"18729:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18802:4:22","nodeType":"YulLiteral","src":"18802:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18808:4:22","nodeType":"YulLiteral","src":"18808:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18795:6:22","nodeType":"YulIdentifier","src":"18795:6:22"},"nativeSrc":"18795:18:22","nodeType":"YulFunctionCall","src":"18795:18:22"},"nativeSrc":"18795:18:22","nodeType":"YulExpressionStatement","src":"18795:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"18701:8:22","nodeType":"YulIdentifier","src":"18701:8:22"}],"functionName":{"name":"iszero","nativeSrc":"18694:6:22","nodeType":"YulIdentifier","src":"18694:6:22"},"nativeSrc":"18694:16:22","nodeType":"YulFunctionCall","src":"18694:16:22"},"nativeSrc":"18691:136:22","nodeType":"YulIf","src":"18691:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18847:4:22","nodeType":"YulLiteral","src":"18847:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"18853:1:22","nodeType":"YulLiteral","src":"18853:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18840:6:22","nodeType":"YulIdentifier","src":"18840:6:22"},"nativeSrc":"18840:15:22","nodeType":"YulFunctionCall","src":"18840:15:22"},"nativeSrc":"18840:15:22","nodeType":"YulExpressionStatement","src":"18840:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9378,"isOffset":false,"isSlot":false,"src":"18533:14:22","valueSize":1},{"declaration":9381,"isOffset":false,"isSlot":false,"src":"18641:8:22","valueSize":1},{"declaration":9381,"isOffset":false,"isSlot":false,"src":"18701:8:22","valueSize":1},{"declaration":9376,"isOffset":false,"isSlot":false,"src":"18660:5:22","valueSize":1}],"id":9383,"nodeType":"InlineAssembly","src":"13393:5532:22"}]},"documentation":{"id":9374,"nodeType":"StructuredDocumentation","src":"13120:99:22","text":"@dev Deploys a PUSH0 clone of `implementation`.\n Deposits `value` ETH during deployment."},"id":9385,"implemented":true,"kind":"function","modifiers":[],"name":"clone_PUSH0","nameLocation":"13233:11:22","nodeType":"FunctionDefinition","parameters":{"id":9379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9376,"mutability":"mutable","name":"value","nameLocation":"13253:5:22","nodeType":"VariableDeclaration","scope":9385,"src":"13245:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9375,"name":"uint256","nodeType":"ElementaryTypeName","src":"13245:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9378,"mutability":"mutable","name":"implementation","nameLocation":"13268:14:22","nodeType":"VariableDeclaration","scope":9385,"src":"13260:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9377,"name":"address","nodeType":"ElementaryTypeName","src":"13260:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13244:39:22"},"returnParameters":{"id":9382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9381,"mutability":"mutable","name":"instance","nameLocation":"13326:8:22","nodeType":"VariableDeclaration","scope":9385,"src":"13318:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9380,"name":"address","nodeType":"ElementaryTypeName","src":"13318:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13317:18:22"},"scope":10092,"src":"13224:5707:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9403,"nodeType":"Block","src":"19147:77:22","statements":[{"expression":{"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9395,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9393,"src":"19157:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19193:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9398,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9388,"src":"19196:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9399,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"19212:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9396,"name":"cloneDeterministic_PUSH0","nodeType":"Identifier","overloadedDeclarations":[9404,9418],"referencedDeclaration":9418,"src":"19168:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19168:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19157:60:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9402,"nodeType":"ExpressionStatement","src":"19157:60:22"}]},"documentation":{"id":9386,"nodeType":"StructuredDocumentation","src":"18937:77:22","text":"@dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`."},"id":9404,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic_PUSH0","nameLocation":"19028:24:22","nodeType":"FunctionDefinition","parameters":{"id":9391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9388,"mutability":"mutable","name":"implementation","nameLocation":"19061:14:22","nodeType":"VariableDeclaration","scope":9404,"src":"19053:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9387,"name":"address","nodeType":"ElementaryTypeName","src":"19053:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9390,"mutability":"mutable","name":"salt","nameLocation":"19085:4:22","nodeType":"VariableDeclaration","scope":9404,"src":"19077:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19077:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19052:38:22"},"returnParameters":{"id":9394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9393,"mutability":"mutable","name":"instance","nameLocation":"19133:8:22","nodeType":"VariableDeclaration","scope":9404,"src":"19125:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9392,"name":"address","nodeType":"ElementaryTypeName","src":"19125:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19124:18:22"},"scope":10092,"src":"19019:205:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9417,"nodeType":"Block","src":"19503:561:22","statements":[{"AST":{"nativeSrc":"19565:493:22","nodeType":"YulBlock","src":"19565:493:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19586:4:22","nodeType":"YulLiteral","src":"19586:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19592:34:22","nodeType":"YulLiteral","src":"19592:34:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"19579:6:22","nodeType":"YulIdentifier","src":"19579:6:22"},"nativeSrc":"19579:48:22","nodeType":"YulFunctionCall","src":"19579:48:22"},"nativeSrc":"19579:48:22","nodeType":"YulExpressionStatement","src":"19579:48:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19653:4:22","nodeType":"YulLiteral","src":"19653:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"19659:14:22","nodeType":"YulIdentifier","src":"19659:14:22"}],"functionName":{"name":"mstore","nativeSrc":"19646:6:22","nodeType":"YulIdentifier","src":"19646:6:22"},"nativeSrc":"19646:28:22","nodeType":"YulFunctionCall","src":"19646:28:22"},"nativeSrc":"19646:28:22","nodeType":"YulExpressionStatement","src":"19646:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19700:4:22","nodeType":"YulLiteral","src":"19700:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19706:38:22","nodeType":"YulLiteral","src":"19706:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"19693:6:22","nodeType":"YulIdentifier","src":"19693:6:22"},"nativeSrc":"19693:52:22","nodeType":"YulFunctionCall","src":"19693:52:22"},"nativeSrc":"19693:52:22","nodeType":"YulExpressionStatement","src":"19693:52:22"},{"nativeSrc":"19767:44:22","nodeType":"YulAssignment","src":"19767:44:22","value":{"arguments":[{"name":"value","nativeSrc":"19787:5:22","nodeType":"YulIdentifier","src":"19787:5:22"},{"kind":"number","nativeSrc":"19794:4:22","nodeType":"YulLiteral","src":"19794:4:22","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"19800:4:22","nodeType":"YulLiteral","src":"19800:4:22","type":"","value":"0x36"},{"name":"salt","nativeSrc":"19806:4:22","nodeType":"YulIdentifier","src":"19806:4:22"}],"functionName":{"name":"create2","nativeSrc":"19779:7:22","nodeType":"YulIdentifier","src":"19779:7:22"},"nativeSrc":"19779:32:22","nodeType":"YulFunctionCall","src":"19779:32:22"},"variableNames":[{"name":"instance","nativeSrc":"19767:8:22","nodeType":"YulIdentifier","src":"19767:8:22"}]},{"body":{"nativeSrc":"19844:116:22","nodeType":"YulBlock","src":"19844:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19869:4:22","nodeType":"YulLiteral","src":"19869:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19875:10:22","nodeType":"YulLiteral","src":"19875:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"19862:6:22","nodeType":"YulIdentifier","src":"19862:6:22"},"nativeSrc":"19862:24:22","nodeType":"YulFunctionCall","src":"19862:24:22"},"nativeSrc":"19862:24:22","nodeType":"YulExpressionStatement","src":"19862:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19935:4:22","nodeType":"YulLiteral","src":"19935:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"19941:4:22","nodeType":"YulLiteral","src":"19941:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"19928:6:22","nodeType":"YulIdentifier","src":"19928:6:22"},"nativeSrc":"19928:18:22","nodeType":"YulFunctionCall","src":"19928:18:22"},"nativeSrc":"19928:18:22","nodeType":"YulExpressionStatement","src":"19928:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"19834:8:22","nodeType":"YulIdentifier","src":"19834:8:22"}],"functionName":{"name":"iszero","nativeSrc":"19827:6:22","nodeType":"YulIdentifier","src":"19827:6:22"},"nativeSrc":"19827:16:22","nodeType":"YulFunctionCall","src":"19827:16:22"},"nativeSrc":"19824:136:22","nodeType":"YulIf","src":"19824:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19980:4:22","nodeType":"YulLiteral","src":"19980:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19986:1:22","nodeType":"YulLiteral","src":"19986:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19973:6:22","nodeType":"YulIdentifier","src":"19973:6:22"},"nativeSrc":"19973:15:22","nodeType":"YulFunctionCall","src":"19973:15:22"},"nativeSrc":"19973:15:22","nodeType":"YulExpressionStatement","src":"19973:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9409,"isOffset":false,"isSlot":false,"src":"19659:14:22","valueSize":1},{"declaration":9414,"isOffset":false,"isSlot":false,"src":"19767:8:22","valueSize":1},{"declaration":9414,"isOffset":false,"isSlot":false,"src":"19834:8:22","valueSize":1},{"declaration":9411,"isOffset":false,"isSlot":false,"src":"19806:4:22","valueSize":1},{"declaration":9407,"isOffset":false,"isSlot":false,"src":"19787:5:22","valueSize":1}],"id":9416,"nodeType":"InlineAssembly","src":"19556:502:22"}]},"documentation":{"id":9405,"nodeType":"StructuredDocumentation","src":"19230:125:22","text":"@dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n Deposits `value` ETH during deployment."},"id":9418,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic_PUSH0","nameLocation":"19369:24:22","nodeType":"FunctionDefinition","parameters":{"id":9412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9407,"mutability":"mutable","name":"value","nameLocation":"19402:5:22","nodeType":"VariableDeclaration","scope":9418,"src":"19394:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9406,"name":"uint256","nodeType":"ElementaryTypeName","src":"19394:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9409,"mutability":"mutable","name":"implementation","nameLocation":"19417:14:22","nodeType":"VariableDeclaration","scope":9418,"src":"19409:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9408,"name":"address","nodeType":"ElementaryTypeName","src":"19409:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9411,"mutability":"mutable","name":"salt","nameLocation":"19441:4:22","nodeType":"VariableDeclaration","scope":9418,"src":"19433:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19433:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19393:53:22"},"returnParameters":{"id":9415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9414,"mutability":"mutable","name":"instance","nameLocation":"19489:8:22","nodeType":"VariableDeclaration","scope":9418,"src":"19481:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9413,"name":"address","nodeType":"ElementaryTypeName","src":"19481:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19480:18:22"},"scope":10092,"src":"19360:704:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9427,"nodeType":"Block","src":"20247:478:22","statements":[{"AST":{"nativeSrc":"20309:410:22","nodeType":"YulBlock","src":"20309:410:22","statements":[{"nativeSrc":"20323:21:22","nodeType":"YulAssignment","src":"20323:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"20339:4:22","nodeType":"YulLiteral","src":"20339:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20333:5:22","nodeType":"YulIdentifier","src":"20333:5:22"},"nativeSrc":"20333:11:22","nodeType":"YulFunctionCall","src":"20333:11:22"},"variableNames":[{"name":"result","nativeSrc":"20323:6:22","nodeType":"YulIdentifier","src":"20323:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20368:6:22","nodeType":"YulIdentifier","src":"20368:6:22"},{"kind":"number","nativeSrc":"20376:4:22","nodeType":"YulLiteral","src":"20376:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20364:3:22","nodeType":"YulIdentifier","src":"20364:3:22"},"nativeSrc":"20364:17:22","nodeType":"YulFunctionCall","src":"20364:17:22"},{"kind":"number","nativeSrc":"20383:54:22","nodeType":"YulLiteral","src":"20383:54:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff300000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"20357:6:22","nodeType":"YulIdentifier","src":"20357:6:22"},"nativeSrc":"20357:81:22","nodeType":"YulFunctionCall","src":"20357:81:22"},"nativeSrc":"20357:81:22","nodeType":"YulExpressionStatement","src":"20357:81:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20468:6:22","nodeType":"YulIdentifier","src":"20468:6:22"},{"kind":"number","nativeSrc":"20476:4:22","nodeType":"YulLiteral","src":"20476:4:22","type":"","value":"0x26"}],"functionName":{"name":"add","nativeSrc":"20464:3:22","nodeType":"YulIdentifier","src":"20464:3:22"},"nativeSrc":"20464:17:22","nodeType":"YulFunctionCall","src":"20464:17:22"},{"name":"implementation","nativeSrc":"20483:14:22","nodeType":"YulIdentifier","src":"20483:14:22"}],"functionName":{"name":"mstore","nativeSrc":"20457:6:22","nodeType":"YulIdentifier","src":"20457:6:22"},"nativeSrc":"20457:41:22","nodeType":"YulFunctionCall","src":"20457:41:22"},"nativeSrc":"20457:41:22","nodeType":"YulExpressionStatement","src":"20457:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20528:6:22","nodeType":"YulIdentifier","src":"20528:6:22"},{"kind":"number","nativeSrc":"20536:4:22","nodeType":"YulLiteral","src":"20536:4:22","type":"","value":"0x12"}],"functionName":{"name":"add","nativeSrc":"20524:3:22","nodeType":"YulIdentifier","src":"20524:3:22"},"nativeSrc":"20524:17:22","nodeType":"YulFunctionCall","src":"20524:17:22"},{"kind":"number","nativeSrc":"20543:38:22","nodeType":"YulLiteral","src":"20543:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"20517:6:22","nodeType":"YulIdentifier","src":"20517:6:22"},"nativeSrc":"20517:65:22","nodeType":"YulFunctionCall","src":"20517:65:22"},"nativeSrc":"20517:65:22","nodeType":"YulExpressionStatement","src":"20517:65:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"20611:6:22","nodeType":"YulIdentifier","src":"20611:6:22"},{"kind":"number","nativeSrc":"20619:4:22","nodeType":"YulLiteral","src":"20619:4:22","type":"","value":"0x36"}],"functionName":{"name":"mstore","nativeSrc":"20604:6:22","nodeType":"YulIdentifier","src":"20604:6:22"},"nativeSrc":"20604:20:22","nodeType":"YulFunctionCall","src":"20604:20:22"},"nativeSrc":"20604:20:22","nodeType":"YulExpressionStatement","src":"20604:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20665:4:22","nodeType":"YulLiteral","src":"20665:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"20675:6:22","nodeType":"YulIdentifier","src":"20675:6:22"},{"kind":"number","nativeSrc":"20683:4:22","nodeType":"YulLiteral","src":"20683:4:22","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"20671:3:22","nodeType":"YulIdentifier","src":"20671:3:22"},"nativeSrc":"20671:17:22","nodeType":"YulFunctionCall","src":"20671:17:22"}],"functionName":{"name":"mstore","nativeSrc":"20658:6:22","nodeType":"YulIdentifier","src":"20658:6:22"},"nativeSrc":"20658:31:22","nodeType":"YulFunctionCall","src":"20658:31:22"},"nativeSrc":"20658:31:22","nodeType":"YulExpressionStatement","src":"20658:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9421,"isOffset":false,"isSlot":false,"src":"20483:14:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20323:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20368:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20468:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20528:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20611:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20675:6:22","valueSize":1}],"id":9426,"nodeType":"InlineAssembly","src":"20300:419:22"}]},"documentation":{"id":9419,"nodeType":"StructuredDocumentation","src":"20070:80:22","text":"@dev Returns the initialization code of the PUSH0 clone of `implementation`."},"id":9428,"implemented":true,"kind":"function","modifiers":[],"name":"initCode_PUSH0","nameLocation":"20164:14:22","nodeType":"FunctionDefinition","parameters":{"id":9422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9421,"mutability":"mutable","name":"implementation","nameLocation":"20187:14:22","nodeType":"VariableDeclaration","scope":9428,"src":"20179:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9420,"name":"address","nodeType":"ElementaryTypeName","src":"20179:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20178:24:22"},"returnParameters":{"id":9425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9424,"mutability":"mutable","name":"result","nameLocation":"20239:6:22","nodeType":"VariableDeclaration","scope":9428,"src":"20226:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9423,"name":"bytes","nodeType":"ElementaryTypeName","src":"20226:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20225:21:22"},"scope":10092,"src":"20155:570:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9437,"nodeType":"Block","src":"20971:397:22","statements":[{"AST":{"nativeSrc":"21033:329:22","nodeType":"YulBlock","src":"21033:329:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21054:4:22","nodeType":"YulLiteral","src":"21054:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"21060:34:22","nodeType":"YulLiteral","src":"21060:34:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"21047:6:22","nodeType":"YulIdentifier","src":"21047:6:22"},"nativeSrc":"21047:48:22","nodeType":"YulFunctionCall","src":"21047:48:22"},"nativeSrc":"21047:48:22","nodeType":"YulExpressionStatement","src":"21047:48:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21121:4:22","nodeType":"YulLiteral","src":"21121:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"21127:14:22","nodeType":"YulIdentifier","src":"21127:14:22"}],"functionName":{"name":"mstore","nativeSrc":"21114:6:22","nodeType":"YulIdentifier","src":"21114:6:22"},"nativeSrc":"21114:28:22","nodeType":"YulFunctionCall","src":"21114:28:22"},"nativeSrc":"21114:28:22","nodeType":"YulExpressionStatement","src":"21114:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21168:4:22","nodeType":"YulLiteral","src":"21168:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21174:38:22","nodeType":"YulLiteral","src":"21174:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"21161:6:22","nodeType":"YulIdentifier","src":"21161:6:22"},"nativeSrc":"21161:52:22","nodeType":"YulFunctionCall","src":"21161:52:22"},"nativeSrc":"21161:52:22","nodeType":"YulExpressionStatement","src":"21161:52:22"},{"nativeSrc":"21235:29:22","nodeType":"YulAssignment","src":"21235:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"21253:4:22","nodeType":"YulLiteral","src":"21253:4:22","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"21259:4:22","nodeType":"YulLiteral","src":"21259:4:22","type":"","value":"0x36"}],"functionName":{"name":"keccak256","nativeSrc":"21243:9:22","nodeType":"YulIdentifier","src":"21243:9:22"},"nativeSrc":"21243:21:22","nodeType":"YulFunctionCall","src":"21243:21:22"},"variableNames":[{"name":"hash","nativeSrc":"21235:4:22","nodeType":"YulIdentifier","src":"21235:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21284:4:22","nodeType":"YulLiteral","src":"21284:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"21290:1:22","nodeType":"YulLiteral","src":"21290:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"21277:6:22","nodeType":"YulIdentifier","src":"21277:6:22"},"nativeSrc":"21277:15:22","nodeType":"YulFunctionCall","src":"21277:15:22"},"nativeSrc":"21277:15:22","nodeType":"YulExpressionStatement","src":"21277:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9434,"isOffset":false,"isSlot":false,"src":"21235:4:22","valueSize":1},{"declaration":9431,"isOffset":false,"isSlot":false,"src":"21127:14:22","valueSize":1}],"id":9436,"nodeType":"InlineAssembly","src":"21024:338:22"}]},"documentation":{"id":9429,"nodeType":"StructuredDocumentation","src":"20731:146:22","text":"@dev Returns the initialization code hash of the PUSH0 clone of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9438,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash_PUSH0","nameLocation":"20891:18:22","nodeType":"FunctionDefinition","parameters":{"id":9432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9431,"mutability":"mutable","name":"implementation","nameLocation":"20918:14:22","nodeType":"VariableDeclaration","scope":9438,"src":"20910:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9430,"name":"address","nodeType":"ElementaryTypeName","src":"20910:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20909:24:22"},"returnParameters":{"id":9435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9434,"mutability":"mutable","name":"hash","nameLocation":"20965:4:22","nodeType":"VariableDeclaration","scope":9438,"src":"20957:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20957:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20956:14:22"},"scope":10092,"src":"20882:486:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9464,"nodeType":"Block","src":"21760:137:22","statements":[{"assignments":[9451],"declarations":[{"constant":false,"id":9451,"mutability":"mutable","name":"hash","nameLocation":"21778:4:22","nodeType":"VariableDeclaration","scope":9464,"src":"21770:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21770:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9455,"initialValue":{"arguments":[{"id":9453,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9441,"src":"21804:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9452,"name":"initCodeHash_PUSH0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"21785:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21785:34:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21770:49:22"},{"expression":{"id":9462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9456,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9448,"src":"21829:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9458,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9451,"src":"21869:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9459,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9443,"src":"21875:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9460,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9445,"src":"21881:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9457,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"21841:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21841:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21829:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9463,"nodeType":"ExpressionStatement","src":"21829:61:22"}]},"documentation":{"id":9439,"nodeType":"StructuredDocumentation","src":"21374:210:22","text":"@dev Returns the address of the deterministic PUSH0 clone of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9465,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress_PUSH0","nameLocation":"21598:33:22","nodeType":"FunctionDefinition","parameters":{"id":9446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9441,"mutability":"mutable","name":"implementation","nameLocation":"21649:14:22","nodeType":"VariableDeclaration","scope":9465,"src":"21641:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9440,"name":"address","nodeType":"ElementaryTypeName","src":"21641:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9443,"mutability":"mutable","name":"salt","nameLocation":"21681:4:22","nodeType":"VariableDeclaration","scope":9465,"src":"21673:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21673:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9445,"mutability":"mutable","name":"deployer","nameLocation":"21703:8:22","nodeType":"VariableDeclaration","scope":9465,"src":"21695:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9444,"name":"address","nodeType":"ElementaryTypeName","src":"21695:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21631:86:22"},"returnParameters":{"id":9449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9448,"mutability":"mutable","name":"predicted","nameLocation":"21749:9:22","nodeType":"VariableDeclaration","scope":9465,"src":"21741:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9447,"name":"address","nodeType":"ElementaryTypeName","src":"21741:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21740:19:22"},"scope":10092,"src":"21589:308:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9483,"nodeType":"Block","src":"22562:58:22","statements":[{"expression":{"id":9481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9475,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9473,"src":"22572:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9478,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"22592:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9479,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9470,"src":"22608:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9476,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[9265,9277,9484,9498],"referencedDeclaration":9498,"src":"22583:5:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (uint256,address,bytes memory) returns (address)"}},"id":9480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22583:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22572:41:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9482,"nodeType":"ExpressionStatement","src":"22572:41:22"}]},"documentation":{"id":9466,"nodeType":"StructuredDocumentation","src":"22375:88:22","text":"@dev Deploys a clone of `implementation` with immutable arguments encoded in `data`."},"id":9484,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"22477:5:22","nodeType":"FunctionDefinition","parameters":{"id":9471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9468,"mutability":"mutable","name":"implementation","nameLocation":"22491:14:22","nodeType":"VariableDeclaration","scope":9484,"src":"22483:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9467,"name":"address","nodeType":"ElementaryTypeName","src":"22483:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9470,"mutability":"mutable","name":"data","nameLocation":"22520:4:22","nodeType":"VariableDeclaration","scope":9484,"src":"22507:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9469,"name":"bytes","nodeType":"ElementaryTypeName","src":"22507:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22482:43:22"},"returnParameters":{"id":9474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9473,"mutability":"mutable","name":"instance","nameLocation":"22552:8:22","nodeType":"VariableDeclaration","scope":9484,"src":"22544:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9472,"name":"address","nodeType":"ElementaryTypeName","src":"22544:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22543:18:22"},"scope":10092,"src":"22468:152:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9497,"nodeType":"Block","src":"22896:11033:22","statements":[{"AST":{"nativeSrc":"22915:11008:22","nodeType":"YulBlock","src":"22915:11008:22","statements":[{"nativeSrc":"23017:38:22","nodeType":"YulVariableDeclaration","src":"23017:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23043:4:22","nodeType":"YulIdentifier","src":"23043:4:22"},{"kind":"number","nativeSrc":"23049:4:22","nodeType":"YulLiteral","src":"23049:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"23039:3:22","nodeType":"YulIdentifier","src":"23039:3:22"},"nativeSrc":"23039:15:22","nodeType":"YulFunctionCall","src":"23039:15:22"}],"functionName":{"name":"mload","nativeSrc":"23033:5:22","nodeType":"YulIdentifier","src":"23033:5:22"},"nativeSrc":"23033:22:22","nodeType":"YulFunctionCall","src":"23033:22:22"},"variables":[{"name":"mBefore3","nativeSrc":"23021:8:22","nodeType":"YulTypedName","src":"23021:8:22","type":""}]},{"nativeSrc":"23068:38:22","nodeType":"YulVariableDeclaration","src":"23068:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23094:4:22","nodeType":"YulIdentifier","src":"23094:4:22"},{"kind":"number","nativeSrc":"23100:4:22","nodeType":"YulLiteral","src":"23100:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"23090:3:22","nodeType":"YulIdentifier","src":"23090:3:22"},"nativeSrc":"23090:15:22","nodeType":"YulFunctionCall","src":"23090:15:22"}],"functionName":{"name":"mload","nativeSrc":"23084:5:22","nodeType":"YulIdentifier","src":"23084:5:22"},"nativeSrc":"23084:22:22","nodeType":"YulFunctionCall","src":"23084:22:22"},"variables":[{"name":"mBefore2","nativeSrc":"23072:8:22","nodeType":"YulTypedName","src":"23072:8:22","type":""}]},{"nativeSrc":"23119:38:22","nodeType":"YulVariableDeclaration","src":"23119:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23145:4:22","nodeType":"YulIdentifier","src":"23145:4:22"},{"kind":"number","nativeSrc":"23151:4:22","nodeType":"YulLiteral","src":"23151:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"23141:3:22","nodeType":"YulIdentifier","src":"23141:3:22"},"nativeSrc":"23141:15:22","nodeType":"YulFunctionCall","src":"23141:15:22"}],"functionName":{"name":"mload","nativeSrc":"23135:5:22","nodeType":"YulIdentifier","src":"23135:5:22"},"nativeSrc":"23135:22:22","nodeType":"YulFunctionCall","src":"23135:22:22"},"variables":[{"name":"mBefore1","nativeSrc":"23123:8:22","nodeType":"YulTypedName","src":"23123:8:22","type":""}]},{"nativeSrc":"23170:29:22","nodeType":"YulVariableDeclaration","src":"23170:29:22","value":{"arguments":[{"name":"data","nativeSrc":"23194:4:22","nodeType":"YulIdentifier","src":"23194:4:22"}],"functionName":{"name":"mload","nativeSrc":"23188:5:22","nodeType":"YulIdentifier","src":"23188:5:22"},"nativeSrc":"23188:11:22","nodeType":"YulFunctionCall","src":"23188:11:22"},"variables":[{"name":"dataLength","nativeSrc":"23174:10:22","nodeType":"YulTypedName","src":"23174:10:22","type":""}]},{"nativeSrc":"23212:47:22","nodeType":"YulVariableDeclaration","src":"23212:47:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23235:4:22","nodeType":"YulIdentifier","src":"23235:4:22"},{"kind":"number","nativeSrc":"23241:4:22","nodeType":"YulLiteral","src":"23241:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23231:3:22","nodeType":"YulIdentifier","src":"23231:3:22"},"nativeSrc":"23231:15:22","nodeType":"YulFunctionCall","src":"23231:15:22"},{"name":"dataLength","nativeSrc":"23248:10:22","nodeType":"YulIdentifier","src":"23248:10:22"}],"functionName":{"name":"add","nativeSrc":"23227:3:22","nodeType":"YulIdentifier","src":"23227:3:22"},"nativeSrc":"23227:32:22","nodeType":"YulFunctionCall","src":"23227:32:22"},"variables":[{"name":"dataEnd","nativeSrc":"23216:7:22","nodeType":"YulTypedName","src":"23216:7:22","type":""}]},{"nativeSrc":"23272:29:22","nodeType":"YulVariableDeclaration","src":"23272:29:22","value":{"arguments":[{"name":"dataEnd","nativeSrc":"23293:7:22","nodeType":"YulIdentifier","src":"23293:7:22"}],"functionName":{"name":"mload","nativeSrc":"23287:5:22","nodeType":"YulIdentifier","src":"23287:5:22"},"nativeSrc":"23287:14:22","nodeType":"YulFunctionCall","src":"23287:14:22"},"variables":[{"name":"mAfter1","nativeSrc":"23276:7:22","nodeType":"YulTypedName","src":"23276:7:22","type":""}]},{"nativeSrc":"23396:37:22","nodeType":"YulVariableDeclaration","src":"23396:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"23419:10:22","nodeType":"YulIdentifier","src":"23419:10:22"},{"kind":"number","nativeSrc":"23431:1:22","nodeType":"YulLiteral","src":"23431:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"23415:3:22","nodeType":"YulIdentifier","src":"23415:3:22"},"nativeSrc":"23415:18:22","nodeType":"YulFunctionCall","src":"23415:18:22"},"variables":[{"name":"extraLength","nativeSrc":"23400:11:22","nodeType":"YulTypedName","src":"23400:11:22","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"32412:4:22","nodeType":"YulIdentifier","src":"32412:4:22"},{"kind":"number","nativeSrc":"32418:28:22","nodeType":"YulLiteral","src":"32418:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"32405:6:22","nodeType":"YulIdentifier","src":"32405:6:22"},"nativeSrc":"32405:42:22","nodeType":"YulFunctionCall","src":"32405:42:22"},"nativeSrc":"32405:42:22","nodeType":"YulExpressionStatement","src":"32405:42:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32510:4:22","nodeType":"YulIdentifier","src":"32510:4:22"},{"kind":"number","nativeSrc":"32516:4:22","nodeType":"YulLiteral","src":"32516:4:22","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"32506:3:22","nodeType":"YulIdentifier","src":"32506:3:22"},"nativeSrc":"32506:15:22","nodeType":"YulFunctionCall","src":"32506:15:22"},{"name":"implementation","nativeSrc":"32523:14:22","nodeType":"YulIdentifier","src":"32523:14:22"}],"functionName":{"name":"mstore","nativeSrc":"32499:6:22","nodeType":"YulIdentifier","src":"32499:6:22"},"nativeSrc":"32499:39:22","nodeType":"YulFunctionCall","src":"32499:39:22"},"nativeSrc":"32499:39:22","nodeType":"YulExpressionStatement","src":"32499:39:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32670:4:22","nodeType":"YulIdentifier","src":"32670:4:22"},{"kind":"number","nativeSrc":"32676:4:22","nodeType":"YulLiteral","src":"32676:4:22","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"32666:3:22","nodeType":"YulIdentifier","src":"32666:3:22"},"nativeSrc":"32666:15:22","nodeType":"YulFunctionCall","src":"32666:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32706:4:22","nodeType":"YulLiteral","src":"32706:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"32712:11:22","nodeType":"YulIdentifier","src":"32712:11:22"}],"functionName":{"name":"shl","nativeSrc":"32702:3:22","nodeType":"YulIdentifier","src":"32702:3:22"},"nativeSrc":"32702:22:22","nodeType":"YulFunctionCall","src":"32702:22:22"},{"kind":"number","nativeSrc":"32726:52:22","nodeType":"YulLiteral","src":"32726:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"32699:2:22","nodeType":"YulIdentifier","src":"32699:2:22"},"nativeSrc":"32699:80:22","nodeType":"YulFunctionCall","src":"32699:80:22"}],"functionName":{"name":"mstore","nativeSrc":"32642:6:22","nodeType":"YulIdentifier","src":"32642:6:22"},"nativeSrc":"32642:151:22","nodeType":"YulFunctionCall","src":"32642:151:22"},"nativeSrc":"32642:151:22","nodeType":"YulExpressionStatement","src":"32642:151:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32884:4:22","nodeType":"YulIdentifier","src":"32884:4:22"},{"kind":"number","nativeSrc":"32890:4:22","nodeType":"YulLiteral","src":"32890:4:22","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"32880:3:22","nodeType":"YulIdentifier","src":"32880:3:22"},"nativeSrc":"32880:15:22","nodeType":"YulFunctionCall","src":"32880:15:22"},{"kind":"number","nativeSrc":"32897:66:22","nodeType":"YulLiteral","src":"32897:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"32856:6:22","nodeType":"YulIdentifier","src":"32856:6:22"},"nativeSrc":"32856:121:22","nodeType":"YulFunctionCall","src":"32856:121:22"},"nativeSrc":"32856:121:22","nodeType":"YulExpressionStatement","src":"32856:121:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33201:4:22","nodeType":"YulIdentifier","src":"33201:4:22"},{"arguments":[{"kind":"number","nativeSrc":"33211:4:22","nodeType":"YulLiteral","src":"33211:4:22","type":"","value":"0x59"},{"arguments":[{"name":"extraLength","nativeSrc":"33220:11:22","nodeType":"YulIdentifier","src":"33220:11:22"},{"kind":"number","nativeSrc":"33233:6:22","nodeType":"YulLiteral","src":"33233:6:22","type":"","value":"0xff9e"}],"functionName":{"name":"lt","nativeSrc":"33217:2:22","nodeType":"YulIdentifier","src":"33217:2:22"},"nativeSrc":"33217:23:22","nodeType":"YulFunctionCall","src":"33217:23:22"}],"functionName":{"name":"add","nativeSrc":"33207:3:22","nodeType":"YulIdentifier","src":"33207:3:22"},"nativeSrc":"33207:34:22","nodeType":"YulFunctionCall","src":"33207:34:22"}],"functionName":{"name":"sub","nativeSrc":"33197:3:22","nodeType":"YulIdentifier","src":"33197:3:22"},"nativeSrc":"33197:45:22","nodeType":"YulFunctionCall","src":"33197:45:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33267:4:22","nodeType":"YulLiteral","src":"33267:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"33277:11:22","nodeType":"YulIdentifier","src":"33277:11:22"},{"kind":"number","nativeSrc":"33290:4:22","nodeType":"YulLiteral","src":"33290:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"33273:3:22","nodeType":"YulIdentifier","src":"33273:3:22"},"nativeSrc":"33273:22:22","nodeType":"YulFunctionCall","src":"33273:22:22"}],"functionName":{"name":"shl","nativeSrc":"33263:3:22","nodeType":"YulIdentifier","src":"33263:3:22"},"nativeSrc":"33263:33:22","nodeType":"YulFunctionCall","src":"33263:33:22"},{"kind":"number","nativeSrc":"33298:40:22","nodeType":"YulLiteral","src":"33298:40:22","type":"","value":"0xfd6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"33260:2:22","nodeType":"YulIdentifier","src":"33260:2:22"},"nativeSrc":"33260:79:22","nodeType":"YulFunctionCall","src":"33260:79:22"}],"functionName":{"name":"mstore","nativeSrc":"32990:6:22","nodeType":"YulIdentifier","src":"32990:6:22"},"nativeSrc":"32990:363:22","nodeType":"YulFunctionCall","src":"32990:363:22"},"nativeSrc":"32990:363:22","nodeType":"YulExpressionStatement","src":"32990:363:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"33373:7:22","nodeType":"YulIdentifier","src":"33373:7:22"},{"arguments":[{"kind":"number","nativeSrc":"33386:4:22","nodeType":"YulLiteral","src":"33386:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"33392:11:22","nodeType":"YulIdentifier","src":"33392:11:22"}],"functionName":{"name":"shl","nativeSrc":"33382:3:22","nodeType":"YulIdentifier","src":"33382:3:22"},"nativeSrc":"33382:22:22","nodeType":"YulFunctionCall","src":"33382:22:22"}],"functionName":{"name":"mstore","nativeSrc":"33366:6:22","nodeType":"YulIdentifier","src":"33366:6:22"},"nativeSrc":"33366:39:22","nodeType":"YulFunctionCall","src":"33366:39:22"},"nativeSrc":"33366:39:22","nodeType":"YulExpressionStatement","src":"33366:39:22"},{"nativeSrc":"33419:66:22","nodeType":"YulAssignment","src":"33419:66:22","value":{"arguments":[{"name":"value","nativeSrc":"33438:5:22","nodeType":"YulIdentifier","src":"33438:5:22"},{"arguments":[{"name":"data","nativeSrc":"33449:4:22","nodeType":"YulIdentifier","src":"33449:4:22"},{"kind":"number","nativeSrc":"33455:4:22","nodeType":"YulLiteral","src":"33455:4:22","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"33445:3:22","nodeType":"YulIdentifier","src":"33445:3:22"},"nativeSrc":"33445:15:22","nodeType":"YulFunctionCall","src":"33445:15:22"},{"arguments":[{"name":"extraLength","nativeSrc":"33466:11:22","nodeType":"YulIdentifier","src":"33466:11:22"},{"kind":"number","nativeSrc":"33479:4:22","nodeType":"YulLiteral","src":"33479:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"33462:3:22","nodeType":"YulIdentifier","src":"33462:3:22"},"nativeSrc":"33462:22:22","nodeType":"YulFunctionCall","src":"33462:22:22"}],"functionName":{"name":"create","nativeSrc":"33431:6:22","nodeType":"YulIdentifier","src":"33431:6:22"},"nativeSrc":"33431:54:22","nodeType":"YulFunctionCall","src":"33431:54:22"},"variableNames":[{"name":"instance","nativeSrc":"33419:8:22","nodeType":"YulIdentifier","src":"33419:8:22"}]},{"body":{"nativeSrc":"33518:116:22","nodeType":"YulBlock","src":"33518:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33543:4:22","nodeType":"YulLiteral","src":"33543:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"33549:10:22","nodeType":"YulLiteral","src":"33549:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"33536:6:22","nodeType":"YulIdentifier","src":"33536:6:22"},"nativeSrc":"33536:24:22","nodeType":"YulFunctionCall","src":"33536:24:22"},"nativeSrc":"33536:24:22","nodeType":"YulExpressionStatement","src":"33536:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33609:4:22","nodeType":"YulLiteral","src":"33609:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33615:4:22","nodeType":"YulLiteral","src":"33615:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33602:6:22","nodeType":"YulIdentifier","src":"33602:6:22"},"nativeSrc":"33602:18:22","nodeType":"YulFunctionCall","src":"33602:18:22"},"nativeSrc":"33602:18:22","nodeType":"YulExpressionStatement","src":"33602:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"33508:8:22","nodeType":"YulIdentifier","src":"33508:8:22"}],"functionName":{"name":"iszero","nativeSrc":"33501:6:22","nodeType":"YulIdentifier","src":"33501:6:22"},"nativeSrc":"33501:16:22","nodeType":"YulFunctionCall","src":"33501:16:22"},"nativeSrc":"33498:136:22","nodeType":"YulIf","src":"33498:136:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"33721:7:22","nodeType":"YulIdentifier","src":"33721:7:22"},{"name":"mAfter1","nativeSrc":"33730:7:22","nodeType":"YulIdentifier","src":"33730:7:22"}],"functionName":{"name":"mstore","nativeSrc":"33714:6:22","nodeType":"YulIdentifier","src":"33714:6:22"},"nativeSrc":"33714:24:22","nodeType":"YulFunctionCall","src":"33714:24:22"},"nativeSrc":"33714:24:22","nodeType":"YulExpressionStatement","src":"33714:24:22"},{"expression":{"arguments":[{"name":"data","nativeSrc":"33758:4:22","nodeType":"YulIdentifier","src":"33758:4:22"},{"name":"dataLength","nativeSrc":"33764:10:22","nodeType":"YulIdentifier","src":"33764:10:22"}],"functionName":{"name":"mstore","nativeSrc":"33751:6:22","nodeType":"YulIdentifier","src":"33751:6:22"},"nativeSrc":"33751:24:22","nodeType":"YulFunctionCall","src":"33751:24:22"},"nativeSrc":"33751:24:22","nodeType":"YulExpressionStatement","src":"33751:24:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33799:4:22","nodeType":"YulIdentifier","src":"33799:4:22"},{"kind":"number","nativeSrc":"33805:4:22","nodeType":"YulLiteral","src":"33805:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"33795:3:22","nodeType":"YulIdentifier","src":"33795:3:22"},"nativeSrc":"33795:15:22","nodeType":"YulFunctionCall","src":"33795:15:22"},{"name":"mBefore1","nativeSrc":"33812:8:22","nodeType":"YulIdentifier","src":"33812:8:22"}],"functionName":{"name":"mstore","nativeSrc":"33788:6:22","nodeType":"YulIdentifier","src":"33788:6:22"},"nativeSrc":"33788:33:22","nodeType":"YulFunctionCall","src":"33788:33:22"},"nativeSrc":"33788:33:22","nodeType":"YulExpressionStatement","src":"33788:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33845:4:22","nodeType":"YulIdentifier","src":"33845:4:22"},{"kind":"number","nativeSrc":"33851:4:22","nodeType":"YulLiteral","src":"33851:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"33841:3:22","nodeType":"YulIdentifier","src":"33841:3:22"},"nativeSrc":"33841:15:22","nodeType":"YulFunctionCall","src":"33841:15:22"},{"name":"mBefore2","nativeSrc":"33858:8:22","nodeType":"YulIdentifier","src":"33858:8:22"}],"functionName":{"name":"mstore","nativeSrc":"33834:6:22","nodeType":"YulIdentifier","src":"33834:6:22"},"nativeSrc":"33834:33:22","nodeType":"YulFunctionCall","src":"33834:33:22"},"nativeSrc":"33834:33:22","nodeType":"YulExpressionStatement","src":"33834:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33891:4:22","nodeType":"YulIdentifier","src":"33891:4:22"},{"kind":"number","nativeSrc":"33897:4:22","nodeType":"YulLiteral","src":"33897:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"33887:3:22","nodeType":"YulIdentifier","src":"33887:3:22"},"nativeSrc":"33887:15:22","nodeType":"YulFunctionCall","src":"33887:15:22"},{"name":"mBefore3","nativeSrc":"33904:8:22","nodeType":"YulIdentifier","src":"33904:8:22"}],"functionName":{"name":"mstore","nativeSrc":"33880:6:22","nodeType":"YulIdentifier","src":"33880:6:22"},"nativeSrc":"33880:33:22","nodeType":"YulFunctionCall","src":"33880:33:22"},"nativeSrc":"33880:33:22","nodeType":"YulExpressionStatement","src":"33880:33:22"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23043:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23094:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23145:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23194:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23235:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32412:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32510:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32670:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32884:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33201:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33449:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33758:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33799:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33845:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33891:4:22","valueSize":1},{"declaration":9489,"isOffset":false,"isSlot":false,"src":"32523:14:22","valueSize":1},{"declaration":9494,"isOffset":false,"isSlot":false,"src":"33419:8:22","valueSize":1},{"declaration":9494,"isOffset":false,"isSlot":false,"src":"33508:8:22","valueSize":1},{"declaration":9487,"isOffset":false,"isSlot":false,"src":"33438:5:22","valueSize":1}],"id":9496,"nodeType":"InlineAssembly","src":"22906:11017:22"}]},"documentation":{"id":9485,"nodeType":"StructuredDocumentation","src":"22626:136:22","text":"@dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n Deposits `value` ETH during deployment."},"id":9498,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"22776:5:22","nodeType":"FunctionDefinition","parameters":{"id":9492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9487,"mutability":"mutable","name":"value","nameLocation":"22790:5:22","nodeType":"VariableDeclaration","scope":9498,"src":"22782:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9486,"name":"uint256","nodeType":"ElementaryTypeName","src":"22782:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9489,"mutability":"mutable","name":"implementation","nameLocation":"22805:14:22","nodeType":"VariableDeclaration","scope":9498,"src":"22797:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9488,"name":"address","nodeType":"ElementaryTypeName","src":"22797:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9491,"mutability":"mutable","name":"data","nameLocation":"22834:4:22","nodeType":"VariableDeclaration","scope":9498,"src":"22821:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9490,"name":"bytes","nodeType":"ElementaryTypeName","src":"22821:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22781:58:22"},"returnParameters":{"id":9495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9494,"mutability":"mutable","name":"instance","nameLocation":"22882:8:22","nodeType":"VariableDeclaration","scope":9498,"src":"22874:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9493,"name":"address","nodeType":"ElementaryTypeName","src":"22874:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22873:18:22"},"scope":10092,"src":"22767:11162:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9519,"nodeType":"Block","src":"34202:77:22","statements":[{"expression":{"id":9517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9510,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9508,"src":"34212:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34242:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9513,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9501,"src":"34245:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9514,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"34261:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9515,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9505,"src":"34267:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9511,"name":"cloneDeterministic","nodeType":"Identifier","overloadedDeclarations":[9296,9310,9520,9536],"referencedDeclaration":9536,"src":"34223:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes memory,bytes32) returns (address)"}},"id":9516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34223:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34212:60:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9518,"nodeType":"ExpressionStatement","src":"34212:60:22"}]},"documentation":{"id":9499,"nodeType":"StructuredDocumentation","src":"33935:121:22","text":"@dev Deploys a deterministic clone of `implementation`\n with immutable arguments encoded in `data` and `salt`."},"id":9520,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"34070:18:22","nodeType":"FunctionDefinition","parameters":{"id":9506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9501,"mutability":"mutable","name":"implementation","nameLocation":"34097:14:22","nodeType":"VariableDeclaration","scope":9520,"src":"34089:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9500,"name":"address","nodeType":"ElementaryTypeName","src":"34089:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9503,"mutability":"mutable","name":"data","nameLocation":"34126:4:22","nodeType":"VariableDeclaration","scope":9520,"src":"34113:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9502,"name":"bytes","nodeType":"ElementaryTypeName","src":"34113:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9505,"mutability":"mutable","name":"salt","nameLocation":"34140:4:22","nodeType":"VariableDeclaration","scope":9520,"src":"34132:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34132:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34088:57:22"},"returnParameters":{"id":9509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9508,"mutability":"mutable","name":"instance","nameLocation":"34188:8:22","nodeType":"VariableDeclaration","scope":9520,"src":"34180:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9507,"name":"address","nodeType":"ElementaryTypeName","src":"34180:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34179:18:22"},"scope":10092,"src":"34061:218:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9535,"nodeType":"Block","src":"34585:2082:22","statements":[{"AST":{"nativeSrc":"34604:2057:22","nodeType":"YulBlock","src":"34604:2057:22","statements":[{"nativeSrc":"34706:38:22","nodeType":"YulVariableDeclaration","src":"34706:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34732:4:22","nodeType":"YulIdentifier","src":"34732:4:22"},{"kind":"number","nativeSrc":"34738:4:22","nodeType":"YulLiteral","src":"34738:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"34728:3:22","nodeType":"YulIdentifier","src":"34728:3:22"},"nativeSrc":"34728:15:22","nodeType":"YulFunctionCall","src":"34728:15:22"}],"functionName":{"name":"mload","nativeSrc":"34722:5:22","nodeType":"YulIdentifier","src":"34722:5:22"},"nativeSrc":"34722:22:22","nodeType":"YulFunctionCall","src":"34722:22:22"},"variables":[{"name":"mBefore3","nativeSrc":"34710:8:22","nodeType":"YulTypedName","src":"34710:8:22","type":""}]},{"nativeSrc":"34757:38:22","nodeType":"YulVariableDeclaration","src":"34757:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34783:4:22","nodeType":"YulIdentifier","src":"34783:4:22"},{"kind":"number","nativeSrc":"34789:4:22","nodeType":"YulLiteral","src":"34789:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"34779:3:22","nodeType":"YulIdentifier","src":"34779:3:22"},"nativeSrc":"34779:15:22","nodeType":"YulFunctionCall","src":"34779:15:22"}],"functionName":{"name":"mload","nativeSrc":"34773:5:22","nodeType":"YulIdentifier","src":"34773:5:22"},"nativeSrc":"34773:22:22","nodeType":"YulFunctionCall","src":"34773:22:22"},"variables":[{"name":"mBefore2","nativeSrc":"34761:8:22","nodeType":"YulTypedName","src":"34761:8:22","type":""}]},{"nativeSrc":"34808:38:22","nodeType":"YulVariableDeclaration","src":"34808:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34834:4:22","nodeType":"YulIdentifier","src":"34834:4:22"},{"kind":"number","nativeSrc":"34840:4:22","nodeType":"YulLiteral","src":"34840:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"34830:3:22","nodeType":"YulIdentifier","src":"34830:3:22"},"nativeSrc":"34830:15:22","nodeType":"YulFunctionCall","src":"34830:15:22"}],"functionName":{"name":"mload","nativeSrc":"34824:5:22","nodeType":"YulIdentifier","src":"34824:5:22"},"nativeSrc":"34824:22:22","nodeType":"YulFunctionCall","src":"34824:22:22"},"variables":[{"name":"mBefore1","nativeSrc":"34812:8:22","nodeType":"YulTypedName","src":"34812:8:22","type":""}]},{"nativeSrc":"34859:29:22","nodeType":"YulVariableDeclaration","src":"34859:29:22","value":{"arguments":[{"name":"data","nativeSrc":"34883:4:22","nodeType":"YulIdentifier","src":"34883:4:22"}],"functionName":{"name":"mload","nativeSrc":"34877:5:22","nodeType":"YulIdentifier","src":"34877:5:22"},"nativeSrc":"34877:11:22","nodeType":"YulFunctionCall","src":"34877:11:22"},"variables":[{"name":"dataLength","nativeSrc":"34863:10:22","nodeType":"YulTypedName","src":"34863:10:22","type":""}]},{"nativeSrc":"34901:47:22","nodeType":"YulVariableDeclaration","src":"34901:47:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34924:4:22","nodeType":"YulIdentifier","src":"34924:4:22"},{"kind":"number","nativeSrc":"34930:4:22","nodeType":"YulLiteral","src":"34930:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34920:3:22","nodeType":"YulIdentifier","src":"34920:3:22"},"nativeSrc":"34920:15:22","nodeType":"YulFunctionCall","src":"34920:15:22"},{"name":"dataLength","nativeSrc":"34937:10:22","nodeType":"YulIdentifier","src":"34937:10:22"}],"functionName":{"name":"add","nativeSrc":"34916:3:22","nodeType":"YulIdentifier","src":"34916:3:22"},"nativeSrc":"34916:32:22","nodeType":"YulFunctionCall","src":"34916:32:22"},"variables":[{"name":"dataEnd","nativeSrc":"34905:7:22","nodeType":"YulTypedName","src":"34905:7:22","type":""}]},{"nativeSrc":"34961:29:22","nodeType":"YulVariableDeclaration","src":"34961:29:22","value":{"arguments":[{"name":"dataEnd","nativeSrc":"34982:7:22","nodeType":"YulIdentifier","src":"34982:7:22"}],"functionName":{"name":"mload","nativeSrc":"34976:5:22","nodeType":"YulIdentifier","src":"34976:5:22"},"nativeSrc":"34976:14:22","nodeType":"YulFunctionCall","src":"34976:14:22"},"variables":[{"name":"mAfter1","nativeSrc":"34965:7:22","nodeType":"YulTypedName","src":"34965:7:22","type":""}]},{"nativeSrc":"35085:37:22","nodeType":"YulVariableDeclaration","src":"35085:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"35108:10:22","nodeType":"YulIdentifier","src":"35108:10:22"},{"kind":"number","nativeSrc":"35120:1:22","nodeType":"YulLiteral","src":"35120:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"35104:3:22","nodeType":"YulIdentifier","src":"35104:3:22"},"nativeSrc":"35104:18:22","nodeType":"YulFunctionCall","src":"35104:18:22"},"variables":[{"name":"extraLength","nativeSrc":"35089:11:22","nodeType":"YulTypedName","src":"35089:11:22","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"35143:4:22","nodeType":"YulIdentifier","src":"35143:4:22"},{"kind":"number","nativeSrc":"35149:28:22","nodeType":"YulLiteral","src":"35149:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"35136:6:22","nodeType":"YulIdentifier","src":"35136:6:22"},"nativeSrc":"35136:42:22","nodeType":"YulFunctionCall","src":"35136:42:22"},"nativeSrc":"35136:42:22","nodeType":"YulExpressionStatement","src":"35136:42:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35241:4:22","nodeType":"YulIdentifier","src":"35241:4:22"},{"kind":"number","nativeSrc":"35247:4:22","nodeType":"YulLiteral","src":"35247:4:22","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"35237:3:22","nodeType":"YulIdentifier","src":"35237:3:22"},"nativeSrc":"35237:15:22","nodeType":"YulFunctionCall","src":"35237:15:22"},{"name":"implementation","nativeSrc":"35254:14:22","nodeType":"YulIdentifier","src":"35254:14:22"}],"functionName":{"name":"mstore","nativeSrc":"35230:6:22","nodeType":"YulIdentifier","src":"35230:6:22"},"nativeSrc":"35230:39:22","nodeType":"YulFunctionCall","src":"35230:39:22"},"nativeSrc":"35230:39:22","nodeType":"YulExpressionStatement","src":"35230:39:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35401:4:22","nodeType":"YulIdentifier","src":"35401:4:22"},{"kind":"number","nativeSrc":"35407:4:22","nodeType":"YulLiteral","src":"35407:4:22","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"35397:3:22","nodeType":"YulIdentifier","src":"35397:3:22"},"nativeSrc":"35397:15:22","nodeType":"YulFunctionCall","src":"35397:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35437:4:22","nodeType":"YulLiteral","src":"35437:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"35443:11:22","nodeType":"YulIdentifier","src":"35443:11:22"}],"functionName":{"name":"shl","nativeSrc":"35433:3:22","nodeType":"YulIdentifier","src":"35433:3:22"},"nativeSrc":"35433:22:22","nodeType":"YulFunctionCall","src":"35433:22:22"},{"kind":"number","nativeSrc":"35457:52:22","nodeType":"YulLiteral","src":"35457:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"35430:2:22","nodeType":"YulIdentifier","src":"35430:2:22"},"nativeSrc":"35430:80:22","nodeType":"YulFunctionCall","src":"35430:80:22"}],"functionName":{"name":"mstore","nativeSrc":"35373:6:22","nodeType":"YulIdentifier","src":"35373:6:22"},"nativeSrc":"35373:151:22","nodeType":"YulFunctionCall","src":"35373:151:22"},"nativeSrc":"35373:151:22","nodeType":"YulExpressionStatement","src":"35373:151:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35615:4:22","nodeType":"YulIdentifier","src":"35615:4:22"},{"kind":"number","nativeSrc":"35621:4:22","nodeType":"YulLiteral","src":"35621:4:22","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"35611:3:22","nodeType":"YulIdentifier","src":"35611:3:22"},"nativeSrc":"35611:15:22","nodeType":"YulFunctionCall","src":"35611:15:22"},{"kind":"number","nativeSrc":"35628:66:22","nodeType":"YulLiteral","src":"35628:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"35587:6:22","nodeType":"YulIdentifier","src":"35587:6:22"},"nativeSrc":"35587:121:22","nodeType":"YulFunctionCall","src":"35587:121:22"},"nativeSrc":"35587:121:22","nodeType":"YulExpressionStatement","src":"35587:121:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35932:4:22","nodeType":"YulIdentifier","src":"35932:4:22"},{"arguments":[{"kind":"number","nativeSrc":"35942:4:22","nodeType":"YulLiteral","src":"35942:4:22","type":"","value":"0x59"},{"arguments":[{"name":"extraLength","nativeSrc":"35951:11:22","nodeType":"YulIdentifier","src":"35951:11:22"},{"kind":"number","nativeSrc":"35964:6:22","nodeType":"YulLiteral","src":"35964:6:22","type":"","value":"0xff9e"}],"functionName":{"name":"lt","nativeSrc":"35948:2:22","nodeType":"YulIdentifier","src":"35948:2:22"},"nativeSrc":"35948:23:22","nodeType":"YulFunctionCall","src":"35948:23:22"}],"functionName":{"name":"add","nativeSrc":"35938:3:22","nodeType":"YulIdentifier","src":"35938:3:22"},"nativeSrc":"35938:34:22","nodeType":"YulFunctionCall","src":"35938:34:22"}],"functionName":{"name":"sub","nativeSrc":"35928:3:22","nodeType":"YulIdentifier","src":"35928:3:22"},"nativeSrc":"35928:45:22","nodeType":"YulFunctionCall","src":"35928:45:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35998:4:22","nodeType":"YulLiteral","src":"35998:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"36008:11:22","nodeType":"YulIdentifier","src":"36008:11:22"},{"kind":"number","nativeSrc":"36021:4:22","nodeType":"YulLiteral","src":"36021:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"36004:3:22","nodeType":"YulIdentifier","src":"36004:3:22"},"nativeSrc":"36004:22:22","nodeType":"YulFunctionCall","src":"36004:22:22"}],"functionName":{"name":"shl","nativeSrc":"35994:3:22","nodeType":"YulIdentifier","src":"35994:3:22"},"nativeSrc":"35994:33:22","nodeType":"YulFunctionCall","src":"35994:33:22"},{"kind":"number","nativeSrc":"36029:40:22","nodeType":"YulLiteral","src":"36029:40:22","type":"","value":"0xfd6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"35991:2:22","nodeType":"YulIdentifier","src":"35991:2:22"},"nativeSrc":"35991:79:22","nodeType":"YulFunctionCall","src":"35991:79:22"}],"functionName":{"name":"mstore","nativeSrc":"35721:6:22","nodeType":"YulIdentifier","src":"35721:6:22"},"nativeSrc":"35721:363:22","nodeType":"YulFunctionCall","src":"35721:363:22"},"nativeSrc":"35721:363:22","nodeType":"YulExpressionStatement","src":"35721:363:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"36104:7:22","nodeType":"YulIdentifier","src":"36104:7:22"},{"arguments":[{"kind":"number","nativeSrc":"36117:4:22","nodeType":"YulLiteral","src":"36117:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"36123:11:22","nodeType":"YulIdentifier","src":"36123:11:22"}],"functionName":{"name":"shl","nativeSrc":"36113:3:22","nodeType":"YulIdentifier","src":"36113:3:22"},"nativeSrc":"36113:22:22","nodeType":"YulFunctionCall","src":"36113:22:22"}],"functionName":{"name":"mstore","nativeSrc":"36097:6:22","nodeType":"YulIdentifier","src":"36097:6:22"},"nativeSrc":"36097:39:22","nodeType":"YulFunctionCall","src":"36097:39:22"},"nativeSrc":"36097:39:22","nodeType":"YulExpressionStatement","src":"36097:39:22"},{"nativeSrc":"36150:73:22","nodeType":"YulAssignment","src":"36150:73:22","value":{"arguments":[{"name":"value","nativeSrc":"36170:5:22","nodeType":"YulIdentifier","src":"36170:5:22"},{"arguments":[{"name":"data","nativeSrc":"36181:4:22","nodeType":"YulIdentifier","src":"36181:4:22"},{"kind":"number","nativeSrc":"36187:4:22","nodeType":"YulLiteral","src":"36187:4:22","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"36177:3:22","nodeType":"YulIdentifier","src":"36177:3:22"},"nativeSrc":"36177:15:22","nodeType":"YulFunctionCall","src":"36177:15:22"},{"arguments":[{"name":"extraLength","nativeSrc":"36198:11:22","nodeType":"YulIdentifier","src":"36198:11:22"},{"kind":"number","nativeSrc":"36211:4:22","nodeType":"YulLiteral","src":"36211:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"36194:3:22","nodeType":"YulIdentifier","src":"36194:3:22"},"nativeSrc":"36194:22:22","nodeType":"YulFunctionCall","src":"36194:22:22"},{"name":"salt","nativeSrc":"36218:4:22","nodeType":"YulIdentifier","src":"36218:4:22"}],"functionName":{"name":"create2","nativeSrc":"36162:7:22","nodeType":"YulIdentifier","src":"36162:7:22"},"nativeSrc":"36162:61:22","nodeType":"YulFunctionCall","src":"36162:61:22"},"variableNames":[{"name":"instance","nativeSrc":"36150:8:22","nodeType":"YulIdentifier","src":"36150:8:22"}]},{"body":{"nativeSrc":"36256:116:22","nodeType":"YulBlock","src":"36256:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36281:4:22","nodeType":"YulLiteral","src":"36281:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"36287:10:22","nodeType":"YulLiteral","src":"36287:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"36274:6:22","nodeType":"YulIdentifier","src":"36274:6:22"},"nativeSrc":"36274:24:22","nodeType":"YulFunctionCall","src":"36274:24:22"},"nativeSrc":"36274:24:22","nodeType":"YulExpressionStatement","src":"36274:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36347:4:22","nodeType":"YulLiteral","src":"36347:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"36353:4:22","nodeType":"YulLiteral","src":"36353:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"36340:6:22","nodeType":"YulIdentifier","src":"36340:6:22"},"nativeSrc":"36340:18:22","nodeType":"YulFunctionCall","src":"36340:18:22"},"nativeSrc":"36340:18:22","nodeType":"YulExpressionStatement","src":"36340:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"36246:8:22","nodeType":"YulIdentifier","src":"36246:8:22"}],"functionName":{"name":"iszero","nativeSrc":"36239:6:22","nodeType":"YulIdentifier","src":"36239:6:22"},"nativeSrc":"36239:16:22","nodeType":"YulFunctionCall","src":"36239:16:22"},"nativeSrc":"36236:136:22","nodeType":"YulIf","src":"36236:136:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"36459:7:22","nodeType":"YulIdentifier","src":"36459:7:22"},{"name":"mAfter1","nativeSrc":"36468:7:22","nodeType":"YulIdentifier","src":"36468:7:22"}],"functionName":{"name":"mstore","nativeSrc":"36452:6:22","nodeType":"YulIdentifier","src":"36452:6:22"},"nativeSrc":"36452:24:22","nodeType":"YulFunctionCall","src":"36452:24:22"},"nativeSrc":"36452:24:22","nodeType":"YulExpressionStatement","src":"36452:24:22"},{"expression":{"arguments":[{"name":"data","nativeSrc":"36496:4:22","nodeType":"YulIdentifier","src":"36496:4:22"},{"name":"dataLength","nativeSrc":"36502:10:22","nodeType":"YulIdentifier","src":"36502:10:22"}],"functionName":{"name":"mstore","nativeSrc":"36489:6:22","nodeType":"YulIdentifier","src":"36489:6:22"},"nativeSrc":"36489:24:22","nodeType":"YulFunctionCall","src":"36489:24:22"},"nativeSrc":"36489:24:22","nodeType":"YulExpressionStatement","src":"36489:24:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36537:4:22","nodeType":"YulIdentifier","src":"36537:4:22"},{"kind":"number","nativeSrc":"36543:4:22","nodeType":"YulLiteral","src":"36543:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"36533:3:22","nodeType":"YulIdentifier","src":"36533:3:22"},"nativeSrc":"36533:15:22","nodeType":"YulFunctionCall","src":"36533:15:22"},{"name":"mBefore1","nativeSrc":"36550:8:22","nodeType":"YulIdentifier","src":"36550:8:22"}],"functionName":{"name":"mstore","nativeSrc":"36526:6:22","nodeType":"YulIdentifier","src":"36526:6:22"},"nativeSrc":"36526:33:22","nodeType":"YulFunctionCall","src":"36526:33:22"},"nativeSrc":"36526:33:22","nodeType":"YulExpressionStatement","src":"36526:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36583:4:22","nodeType":"YulIdentifier","src":"36583:4:22"},{"kind":"number","nativeSrc":"36589:4:22","nodeType":"YulLiteral","src":"36589:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"36579:3:22","nodeType":"YulIdentifier","src":"36579:3:22"},"nativeSrc":"36579:15:22","nodeType":"YulFunctionCall","src":"36579:15:22"},{"name":"mBefore2","nativeSrc":"36596:8:22","nodeType":"YulIdentifier","src":"36596:8:22"}],"functionName":{"name":"mstore","nativeSrc":"36572:6:22","nodeType":"YulIdentifier","src":"36572:6:22"},"nativeSrc":"36572:33:22","nodeType":"YulFunctionCall","src":"36572:33:22"},"nativeSrc":"36572:33:22","nodeType":"YulExpressionStatement","src":"36572:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36629:4:22","nodeType":"YulIdentifier","src":"36629:4:22"},{"kind":"number","nativeSrc":"36635:4:22","nodeType":"YulLiteral","src":"36635:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"36625:3:22","nodeType":"YulIdentifier","src":"36625:3:22"},"nativeSrc":"36625:15:22","nodeType":"YulFunctionCall","src":"36625:15:22"},{"name":"mBefore3","nativeSrc":"36642:8:22","nodeType":"YulIdentifier","src":"36642:8:22"}],"functionName":{"name":"mstore","nativeSrc":"36618:6:22","nodeType":"YulIdentifier","src":"36618:6:22"},"nativeSrc":"36618:33:22","nodeType":"YulFunctionCall","src":"36618:33:22"},"nativeSrc":"36618:33:22","nodeType":"YulExpressionStatement","src":"36618:33:22"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34732:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34783:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34834:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34883:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34924:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35143:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35241:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35401:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35615:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35932:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36181:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36496:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36537:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36583:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36629:4:22","valueSize":1},{"declaration":9525,"isOffset":false,"isSlot":false,"src":"35254:14:22","valueSize":1},{"declaration":9532,"isOffset":false,"isSlot":false,"src":"36150:8:22","valueSize":1},{"declaration":9532,"isOffset":false,"isSlot":false,"src":"36246:8:22","valueSize":1},{"declaration":9529,"isOffset":false,"isSlot":false,"src":"36218:4:22","valueSize":1},{"declaration":9523,"isOffset":false,"isSlot":false,"src":"36170:5:22","valueSize":1}],"id":9534,"nodeType":"InlineAssembly","src":"34595:2066:22"}]},"documentation":{"id":9521,"nodeType":"StructuredDocumentation","src":"34285:121:22","text":"@dev Deploys a deterministic clone of `implementation`\n with immutable arguments encoded in `data` and `salt`."},"id":9536,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"34420:18:22","nodeType":"FunctionDefinition","parameters":{"id":9530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9523,"mutability":"mutable","name":"value","nameLocation":"34456:5:22","nodeType":"VariableDeclaration","scope":9536,"src":"34448:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9522,"name":"uint256","nodeType":"ElementaryTypeName","src":"34448:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9525,"mutability":"mutable","name":"implementation","nameLocation":"34479:14:22","nodeType":"VariableDeclaration","scope":9536,"src":"34471:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9524,"name":"address","nodeType":"ElementaryTypeName","src":"34471:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9527,"mutability":"mutable","name":"data","nameLocation":"34516:4:22","nodeType":"VariableDeclaration","scope":9536,"src":"34503:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9526,"name":"bytes","nodeType":"ElementaryTypeName","src":"34503:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9529,"mutability":"mutable","name":"salt","nameLocation":"34538:4:22","nodeType":"VariableDeclaration","scope":9536,"src":"34530:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34530:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34438:110:22"},"returnParameters":{"id":9533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9532,"mutability":"mutable","name":"instance","nameLocation":"34575:8:22","nodeType":"VariableDeclaration","scope":9536,"src":"34567:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9531,"name":"address","nodeType":"ElementaryTypeName","src":"34567:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34566:18:22"},"scope":10092,"src":"34411:2256:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9547,"nodeType":"Block","src":"36942:1919:22","statements":[{"AST":{"nativeSrc":"37004:1851:22","nodeType":"YulBlock","src":"37004:1851:22","statements":[{"nativeSrc":"37018:21:22","nodeType":"YulAssignment","src":"37018:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"37034:4:22","nodeType":"YulLiteral","src":"37034:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37028:5:22","nodeType":"YulIdentifier","src":"37028:5:22"},"nativeSrc":"37028:11:22","nodeType":"YulFunctionCall","src":"37028:11:22"},"variableNames":[{"name":"result","nativeSrc":"37018:6:22","nodeType":"YulIdentifier","src":"37018:6:22"}]},{"nativeSrc":"37052:29:22","nodeType":"YulVariableDeclaration","src":"37052:29:22","value":{"arguments":[{"name":"data","nativeSrc":"37076:4:22","nodeType":"YulIdentifier","src":"37076:4:22"}],"functionName":{"name":"mload","nativeSrc":"37070:5:22","nodeType":"YulIdentifier","src":"37070:5:22"},"nativeSrc":"37070:11:22","nodeType":"YulFunctionCall","src":"37070:11:22"},"variables":[{"name":"dataLength","nativeSrc":"37056:10:22","nodeType":"YulTypedName","src":"37056:10:22","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"37284:14:22","nodeType":"YulIdentifier","src":"37284:14:22"},"nativeSrc":"37284:16:22","nodeType":"YulFunctionCall","src":"37284:16:22"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"37302:14:22","nodeType":"YulIdentifier","src":"37302:14:22"},"nativeSrc":"37302:16:22","nodeType":"YulFunctionCall","src":"37302:16:22"},{"arguments":[{"name":"dataLength","nativeSrc":"37323:10:22","nodeType":"YulIdentifier","src":"37323:10:22"},{"kind":"number","nativeSrc":"37335:6:22","nodeType":"YulLiteral","src":"37335:6:22","type":"","value":"0xff9b"}],"functionName":{"name":"gt","nativeSrc":"37320:2:22","nodeType":"YulIdentifier","src":"37320:2:22"},"nativeSrc":"37320:22:22","nodeType":"YulFunctionCall","src":"37320:22:22"}],"functionName":{"name":"returndatacopy","nativeSrc":"37269:14:22","nodeType":"YulIdentifier","src":"37269:14:22"},"nativeSrc":"37269:74:22","nodeType":"YulFunctionCall","src":"37269:74:22"},"nativeSrc":"37269:74:22","nodeType":"YulExpressionStatement","src":"37269:74:22"},{"nativeSrc":"37357:26:22","nodeType":"YulVariableDeclaration","src":"37357:26:22","value":{"arguments":[{"name":"result","nativeSrc":"37370:6:22","nodeType":"YulIdentifier","src":"37370:6:22"},{"kind":"number","nativeSrc":"37378:4:22","nodeType":"YulLiteral","src":"37378:4:22","type":"","value":"0x8c"}],"functionName":{"name":"add","nativeSrc":"37366:3:22","nodeType":"YulIdentifier","src":"37366:3:22"},"nativeSrc":"37366:17:22","nodeType":"YulFunctionCall","src":"37366:17:22"},"variables":[{"name":"o","nativeSrc":"37361:1:22","nodeType":"YulTypedName","src":"37361:1:22","type":""}]},{"nativeSrc":"37396:29:22","nodeType":"YulVariableDeclaration","src":"37396:29:22","value":{"arguments":[{"name":"o","nativeSrc":"37411:1:22","nodeType":"YulIdentifier","src":"37411:1:22"},{"name":"dataLength","nativeSrc":"37414:10:22","nodeType":"YulIdentifier","src":"37414:10:22"}],"functionName":{"name":"add","nativeSrc":"37407:3:22","nodeType":"YulIdentifier","src":"37407:3:22"},"nativeSrc":"37407:18:22","nodeType":"YulFunctionCall","src":"37407:18:22"},"variables":[{"name":"end","nativeSrc":"37400:3:22","nodeType":"YulTypedName","src":"37400:3:22","type":""}]},{"body":{"nativeSrc":"37531:141:22","nodeType":"YulBlock","src":"37531:141:22","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"37556:1:22","nodeType":"YulIdentifier","src":"37556:1:22"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"37569:1:22","nodeType":"YulIdentifier","src":"37569:1:22"},{"name":"d","nativeSrc":"37572:1:22","nodeType":"YulIdentifier","src":"37572:1:22"}],"functionName":{"name":"add","nativeSrc":"37565:3:22","nodeType":"YulIdentifier","src":"37565:3:22"},"nativeSrc":"37565:9:22","nodeType":"YulFunctionCall","src":"37565:9:22"}],"functionName":{"name":"mload","nativeSrc":"37559:5:22","nodeType":"YulIdentifier","src":"37559:5:22"},"nativeSrc":"37559:16:22","nodeType":"YulFunctionCall","src":"37559:16:22"}],"functionName":{"name":"mstore","nativeSrc":"37549:6:22","nodeType":"YulIdentifier","src":"37549:6:22"},"nativeSrc":"37549:27:22","nodeType":"YulFunctionCall","src":"37549:27:22"},"nativeSrc":"37549:27:22","nodeType":"YulExpressionStatement","src":"37549:27:22"},{"nativeSrc":"37593:17:22","nodeType":"YulAssignment","src":"37593:17:22","value":{"arguments":[{"name":"o","nativeSrc":"37602:1:22","nodeType":"YulIdentifier","src":"37602:1:22"},{"kind":"number","nativeSrc":"37605:4:22","nodeType":"YulLiteral","src":"37605:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37598:3:22","nodeType":"YulIdentifier","src":"37598:3:22"},"nativeSrc":"37598:12:22","nodeType":"YulFunctionCall","src":"37598:12:22"},"variableNames":[{"name":"o","nativeSrc":"37593:1:22","nodeType":"YulIdentifier","src":"37593:1:22"}]},{"body":{"nativeSrc":"37649:9:22","nodeType":"YulBlock","src":"37649:9:22","statements":[{"nativeSrc":"37651:5:22","nodeType":"YulBreak","src":"37651:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"37640:1:22","nodeType":"YulIdentifier","src":"37640:1:22"},{"name":"end","nativeSrc":"37643:3:22","nodeType":"YulIdentifier","src":"37643:3:22"}],"functionName":{"name":"lt","nativeSrc":"37637:2:22","nodeType":"YulIdentifier","src":"37637:2:22"},"nativeSrc":"37637:10:22","nodeType":"YulFunctionCall","src":"37637:10:22"}],"functionName":{"name":"iszero","nativeSrc":"37630:6:22","nodeType":"YulIdentifier","src":"37630:6:22"},"nativeSrc":"37630:18:22","nodeType":"YulFunctionCall","src":"37630:18:22"},"nativeSrc":"37627:31:22","nodeType":"YulIf","src":"37627:31:22"}]},"condition":{"kind":"number","nativeSrc":"37526:1:22","nodeType":"YulLiteral","src":"37526:1:22","type":"","value":"1"},"nativeSrc":"37485:187:22","nodeType":"YulForLoop","post":{"nativeSrc":"37528:2:22","nodeType":"YulBlock","src":"37528:2:22","statements":[]},"pre":{"nativeSrc":"37489:36:22","nodeType":"YulBlock","src":"37489:36:22","statements":[{"nativeSrc":"37491:32:22","nodeType":"YulVariableDeclaration","src":"37491:32:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"37508:4:22","nodeType":"YulIdentifier","src":"37508:4:22"},{"kind":"number","nativeSrc":"37514:4:22","nodeType":"YulLiteral","src":"37514:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37504:3:22","nodeType":"YulIdentifier","src":"37504:3:22"},"nativeSrc":"37504:15:22","nodeType":"YulFunctionCall","src":"37504:15:22"},{"name":"o","nativeSrc":"37521:1:22","nodeType":"YulIdentifier","src":"37521:1:22"}],"functionName":{"name":"sub","nativeSrc":"37500:3:22","nodeType":"YulIdentifier","src":"37500:3:22"},"nativeSrc":"37500:23:22","nodeType":"YulFunctionCall","src":"37500:23:22"},"variables":[{"name":"d","nativeSrc":"37495:1:22","nodeType":"YulTypedName","src":"37495:1:22","type":""}]}]},"src":"37485:187:22"},{"nativeSrc":"37767:37:22","nodeType":"YulVariableDeclaration","src":"37767:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"37790:10:22","nodeType":"YulIdentifier","src":"37790:10:22"},{"kind":"number","nativeSrc":"37802:1:22","nodeType":"YulLiteral","src":"37802:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"37786:3:22","nodeType":"YulIdentifier","src":"37786:3:22"},"nativeSrc":"37786:18:22","nodeType":"YulFunctionCall","src":"37786:18:22"},"variables":[{"name":"extraLength","nativeSrc":"37771:11:22","nodeType":"YulTypedName","src":"37771:11:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37829:6:22","nodeType":"YulIdentifier","src":"37829:6:22"},{"kind":"number","nativeSrc":"37837:4:22","nodeType":"YulLiteral","src":"37837:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"37825:3:22","nodeType":"YulIdentifier","src":"37825:3:22"},"nativeSrc":"37825:17:22","nodeType":"YulFunctionCall","src":"37825:17:22"},{"kind":"number","nativeSrc":"37844:28:22","nodeType":"YulLiteral","src":"37844:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"37818:6:22","nodeType":"YulIdentifier","src":"37818:6:22"},"nativeSrc":"37818:55:22","nodeType":"YulFunctionCall","src":"37818:55:22"},"nativeSrc":"37818:55:22","nodeType":"YulExpressionStatement","src":"37818:55:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37936:6:22","nodeType":"YulIdentifier","src":"37936:6:22"},{"kind":"number","nativeSrc":"37944:4:22","nodeType":"YulLiteral","src":"37944:4:22","type":"","value":"0x5f"}],"functionName":{"name":"add","nativeSrc":"37932:3:22","nodeType":"YulIdentifier","src":"37932:3:22"},"nativeSrc":"37932:17:22","nodeType":"YulFunctionCall","src":"37932:17:22"},{"name":"implementation","nativeSrc":"37951:14:22","nodeType":"YulIdentifier","src":"37951:14:22"}],"functionName":{"name":"mstore","nativeSrc":"37925:6:22","nodeType":"YulIdentifier","src":"37925:6:22"},"nativeSrc":"37925:41:22","nodeType":"YulFunctionCall","src":"37925:41:22"},"nativeSrc":"37925:41:22","nodeType":"YulExpressionStatement","src":"37925:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38098:6:22","nodeType":"YulIdentifier","src":"38098:6:22"},{"kind":"number","nativeSrc":"38106:4:22","nodeType":"YulLiteral","src":"38106:4:22","type":"","value":"0x4b"}],"functionName":{"name":"add","nativeSrc":"38094:3:22","nodeType":"YulIdentifier","src":"38094:3:22"},"nativeSrc":"38094:17:22","nodeType":"YulFunctionCall","src":"38094:17:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38136:4:22","nodeType":"YulLiteral","src":"38136:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"38142:11:22","nodeType":"YulIdentifier","src":"38142:11:22"}],"functionName":{"name":"shl","nativeSrc":"38132:3:22","nodeType":"YulIdentifier","src":"38132:3:22"},"nativeSrc":"38132:22:22","nodeType":"YulFunctionCall","src":"38132:22:22"},{"kind":"number","nativeSrc":"38156:52:22","nodeType":"YulLiteral","src":"38156:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"38129:2:22","nodeType":"YulIdentifier","src":"38129:2:22"},"nativeSrc":"38129:80:22","nodeType":"YulFunctionCall","src":"38129:80:22"}],"functionName":{"name":"mstore","nativeSrc":"38070:6:22","nodeType":"YulIdentifier","src":"38070:6:22"},"nativeSrc":"38070:153:22","nodeType":"YulFunctionCall","src":"38070:153:22"},"nativeSrc":"38070:153:22","nodeType":"YulExpressionStatement","src":"38070:153:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38314:6:22","nodeType":"YulIdentifier","src":"38314:6:22"},{"kind":"number","nativeSrc":"38322:4:22","nodeType":"YulLiteral","src":"38322:4:22","type":"","value":"0x32"}],"functionName":{"name":"add","nativeSrc":"38310:3:22","nodeType":"YulIdentifier","src":"38310:3:22"},"nativeSrc":"38310:17:22","nodeType":"YulFunctionCall","src":"38310:17:22"},{"kind":"number","nativeSrc":"38345:66:22","nodeType":"YulLiteral","src":"38345:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"38286:6:22","nodeType":"YulIdentifier","src":"38286:6:22"},"nativeSrc":"38286:139:22","nodeType":"YulFunctionCall","src":"38286:139:22"},"nativeSrc":"38286:139:22","nodeType":"YulExpressionStatement","src":"38286:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38466:6:22","nodeType":"YulIdentifier","src":"38466:6:22"},{"kind":"number","nativeSrc":"38474:4:22","nodeType":"YulLiteral","src":"38474:4:22","type":"","value":"0x12"}],"functionName":{"name":"add","nativeSrc":"38462:3:22","nodeType":"YulIdentifier","src":"38462:3:22"},"nativeSrc":"38462:17:22","nodeType":"YulFunctionCall","src":"38462:17:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38504:4:22","nodeType":"YulLiteral","src":"38504:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"38514:11:22","nodeType":"YulIdentifier","src":"38514:11:22"},{"kind":"number","nativeSrc":"38527:4:22","nodeType":"YulLiteral","src":"38527:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"38510:3:22","nodeType":"YulIdentifier","src":"38510:3:22"},"nativeSrc":"38510:22:22","nodeType":"YulFunctionCall","src":"38510:22:22"}],"functionName":{"name":"shl","nativeSrc":"38500:3:22","nodeType":"YulIdentifier","src":"38500:3:22"},"nativeSrc":"38500:33:22","nodeType":"YulFunctionCall","src":"38500:33:22"},{"kind":"number","nativeSrc":"38535:38:22","nodeType":"YulLiteral","src":"38535:38:22","type":"","value":"0x6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"38497:2:22","nodeType":"YulIdentifier","src":"38497:2:22"},"nativeSrc":"38497:77:22","nodeType":"YulFunctionCall","src":"38497:77:22"}],"functionName":{"name":"mstore","nativeSrc":"38438:6:22","nodeType":"YulIdentifier","src":"38438:6:22"},"nativeSrc":"38438:150:22","nodeType":"YulFunctionCall","src":"38438:150:22"},"nativeSrc":"38438:150:22","nodeType":"YulExpressionStatement","src":"38438:150:22"},{"expression":{"arguments":[{"name":"end","nativeSrc":"38608:3:22","nodeType":"YulIdentifier","src":"38608:3:22"},{"arguments":[{"kind":"number","nativeSrc":"38617:4:22","nodeType":"YulLiteral","src":"38617:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"38623:11:22","nodeType":"YulIdentifier","src":"38623:11:22"}],"functionName":{"name":"shl","nativeSrc":"38613:3:22","nodeType":"YulIdentifier","src":"38613:3:22"},"nativeSrc":"38613:22:22","nodeType":"YulFunctionCall","src":"38613:22:22"}],"functionName":{"name":"mstore","nativeSrc":"38601:6:22","nodeType":"YulIdentifier","src":"38601:6:22"},"nativeSrc":"38601:35:22","nodeType":"YulFunctionCall","src":"38601:35:22"},"nativeSrc":"38601:35:22","nodeType":"YulExpressionStatement","src":"38601:35:22"},{"expression":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"38660:3:22","nodeType":"YulIdentifier","src":"38660:3:22"},{"kind":"number","nativeSrc":"38665:4:22","nodeType":"YulLiteral","src":"38665:4:22","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"38656:3:22","nodeType":"YulIdentifier","src":"38656:3:22"},"nativeSrc":"38656:14:22","nodeType":"YulFunctionCall","src":"38656:14:22"},{"kind":"number","nativeSrc":"38672:1:22","nodeType":"YulLiteral","src":"38672:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38649:6:22","nodeType":"YulIdentifier","src":"38649:6:22"},"nativeSrc":"38649:25:22","nodeType":"YulFunctionCall","src":"38649:25:22"},"nativeSrc":"38649:25:22","nodeType":"YulExpressionStatement","src":"38649:25:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"38732:6:22","nodeType":"YulIdentifier","src":"38732:6:22"},{"arguments":[{"name":"extraLength","nativeSrc":"38744:11:22","nodeType":"YulIdentifier","src":"38744:11:22"},{"kind":"number","nativeSrc":"38757:4:22","nodeType":"YulLiteral","src":"38757:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"38740:3:22","nodeType":"YulIdentifier","src":"38740:3:22"},"nativeSrc":"38740:22:22","nodeType":"YulFunctionCall","src":"38740:22:22"}],"functionName":{"name":"mstore","nativeSrc":"38725:6:22","nodeType":"YulIdentifier","src":"38725:6:22"},"nativeSrc":"38725:38:22","nodeType":"YulFunctionCall","src":"38725:38:22"},"nativeSrc":"38725:38:22","nodeType":"YulExpressionStatement","src":"38725:38:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38804:4:22","nodeType":"YulLiteral","src":"38804:4:22","type":"","value":"0x40"},{"arguments":[{"kind":"number","nativeSrc":"38814:4:22","nodeType":"YulLiteral","src":"38814:4:22","type":"","value":"0x22"},{"name":"end","nativeSrc":"38820:3:22","nodeType":"YulIdentifier","src":"38820:3:22"}],"functionName":{"name":"add","nativeSrc":"38810:3:22","nodeType":"YulIdentifier","src":"38810:3:22"},"nativeSrc":"38810:14:22","nodeType":"YulFunctionCall","src":"38810:14:22"}],"functionName":{"name":"mstore","nativeSrc":"38797:6:22","nodeType":"YulIdentifier","src":"38797:6:22"},"nativeSrc":"38797:28:22","nodeType":"YulFunctionCall","src":"38797:28:22"},"nativeSrc":"38797:28:22","nodeType":"YulExpressionStatement","src":"38797:28:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9541,"isOffset":false,"isSlot":false,"src":"37076:4:22","valueSize":1},{"declaration":9541,"isOffset":false,"isSlot":false,"src":"37508:4:22","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"37951:14:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37018:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37370:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37829:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37936:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38098:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38314:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38466:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38732:6:22","valueSize":1}],"id":9546,"nodeType":"InlineAssembly","src":"36995:1860:22"}]},"documentation":{"id":9537,"nodeType":"StructuredDocumentation","src":"36673:131:22","text":"@dev Returns the initialization code hash of the clone of `implementation`\n using immutable arguments encoded in `data`."},"id":9548,"implemented":true,"kind":"function","modifiers":[],"name":"initCode","nameLocation":"36818:8:22","nodeType":"FunctionDefinition","parameters":{"id":9542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9539,"mutability":"mutable","name":"implementation","nameLocation":"36835:14:22","nodeType":"VariableDeclaration","scope":9548,"src":"36827:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9538,"name":"address","nodeType":"ElementaryTypeName","src":"36827:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9541,"mutability":"mutable","name":"data","nameLocation":"36864:4:22","nodeType":"VariableDeclaration","scope":9548,"src":"36851:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9540,"name":"bytes","nodeType":"ElementaryTypeName","src":"36851:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36826:43:22"},"returnParameters":{"id":9545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9544,"mutability":"mutable","name":"result","nameLocation":"36930:6:22","nodeType":"VariableDeclaration","scope":9548,"src":"36917:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9543,"name":"bytes","nodeType":"ElementaryTypeName","src":"36917:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36916:21:22"},"scope":10092,"src":"36809:2052:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9559,"nodeType":"Block","src":"39194:1965:22","statements":[{"AST":{"nativeSrc":"39213:1940:22","nodeType":"YulBlock","src":"39213:1940:22","statements":[{"nativeSrc":"39315:38:22","nodeType":"YulVariableDeclaration","src":"39315:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39341:4:22","nodeType":"YulIdentifier","src":"39341:4:22"},{"kind":"number","nativeSrc":"39347:4:22","nodeType":"YulLiteral","src":"39347:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"39337:3:22","nodeType":"YulIdentifier","src":"39337:3:22"},"nativeSrc":"39337:15:22","nodeType":"YulFunctionCall","src":"39337:15:22"}],"functionName":{"name":"mload","nativeSrc":"39331:5:22","nodeType":"YulIdentifier","src":"39331:5:22"},"nativeSrc":"39331:22:22","nodeType":"YulFunctionCall","src":"39331:22:22"},"variables":[{"name":"mBefore3","nativeSrc":"39319:8:22","nodeType":"YulTypedName","src":"39319:8:22","type":""}]},{"nativeSrc":"39366:38:22","nodeType":"YulVariableDeclaration","src":"39366:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39392:4:22","nodeType":"YulIdentifier","src":"39392:4:22"},{"kind":"number","nativeSrc":"39398:4:22","nodeType":"YulLiteral","src":"39398:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"39388:3:22","nodeType":"YulIdentifier","src":"39388:3:22"},"nativeSrc":"39388:15:22","nodeType":"YulFunctionCall","src":"39388:15:22"}],"functionName":{"name":"mload","nativeSrc":"39382:5:22","nodeType":"YulIdentifier","src":"39382:5:22"},"nativeSrc":"39382:22:22","nodeType":"YulFunctionCall","src":"39382:22:22"},"variables":[{"name":"mBefore2","nativeSrc":"39370:8:22","nodeType":"YulTypedName","src":"39370:8:22","type":""}]},{"nativeSrc":"39417:38:22","nodeType":"YulVariableDeclaration","src":"39417:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39443:4:22","nodeType":"YulIdentifier","src":"39443:4:22"},{"kind":"number","nativeSrc":"39449:4:22","nodeType":"YulLiteral","src":"39449:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"39439:3:22","nodeType":"YulIdentifier","src":"39439:3:22"},"nativeSrc":"39439:15:22","nodeType":"YulFunctionCall","src":"39439:15:22"}],"functionName":{"name":"mload","nativeSrc":"39433:5:22","nodeType":"YulIdentifier","src":"39433:5:22"},"nativeSrc":"39433:22:22","nodeType":"YulFunctionCall","src":"39433:22:22"},"variables":[{"name":"mBefore1","nativeSrc":"39421:8:22","nodeType":"YulTypedName","src":"39421:8:22","type":""}]},{"nativeSrc":"39468:29:22","nodeType":"YulVariableDeclaration","src":"39468:29:22","value":{"arguments":[{"name":"data","nativeSrc":"39492:4:22","nodeType":"YulIdentifier","src":"39492:4:22"}],"functionName":{"name":"mload","nativeSrc":"39486:5:22","nodeType":"YulIdentifier","src":"39486:5:22"},"nativeSrc":"39486:11:22","nodeType":"YulFunctionCall","src":"39486:11:22"},"variables":[{"name":"dataLength","nativeSrc":"39472:10:22","nodeType":"YulTypedName","src":"39472:10:22","type":""}]},{"nativeSrc":"39510:47:22","nodeType":"YulVariableDeclaration","src":"39510:47:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39533:4:22","nodeType":"YulIdentifier","src":"39533:4:22"},{"kind":"number","nativeSrc":"39539:4:22","nodeType":"YulLiteral","src":"39539:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39529:3:22","nodeType":"YulIdentifier","src":"39529:3:22"},"nativeSrc":"39529:15:22","nodeType":"YulFunctionCall","src":"39529:15:22"},{"name":"dataLength","nativeSrc":"39546:10:22","nodeType":"YulIdentifier","src":"39546:10:22"}],"functionName":{"name":"add","nativeSrc":"39525:3:22","nodeType":"YulIdentifier","src":"39525:3:22"},"nativeSrc":"39525:32:22","nodeType":"YulFunctionCall","src":"39525:32:22"},"variables":[{"name":"dataEnd","nativeSrc":"39514:7:22","nodeType":"YulTypedName","src":"39514:7:22","type":""}]},{"nativeSrc":"39570:29:22","nodeType":"YulVariableDeclaration","src":"39570:29:22","value":{"arguments":[{"name":"dataEnd","nativeSrc":"39591:7:22","nodeType":"YulIdentifier","src":"39591:7:22"}],"functionName":{"name":"mload","nativeSrc":"39585:5:22","nodeType":"YulIdentifier","src":"39585:5:22"},"nativeSrc":"39585:14:22","nodeType":"YulFunctionCall","src":"39585:14:22"},"variables":[{"name":"mAfter1","nativeSrc":"39574:7:22","nodeType":"YulTypedName","src":"39574:7:22","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39802:14:22","nodeType":"YulIdentifier","src":"39802:14:22"},"nativeSrc":"39802:16:22","nodeType":"YulFunctionCall","src":"39802:16:22"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39820:14:22","nodeType":"YulIdentifier","src":"39820:14:22"},"nativeSrc":"39820:16:22","nodeType":"YulFunctionCall","src":"39820:16:22"},{"arguments":[{"name":"dataLength","nativeSrc":"39841:10:22","nodeType":"YulIdentifier","src":"39841:10:22"},{"kind":"number","nativeSrc":"39853:6:22","nodeType":"YulLiteral","src":"39853:6:22","type":"","value":"0xff9b"}],"functionName":{"name":"gt","nativeSrc":"39838:2:22","nodeType":"YulIdentifier","src":"39838:2:22"},"nativeSrc":"39838:22:22","nodeType":"YulFunctionCall","src":"39838:22:22"}],"functionName":{"name":"returndatacopy","nativeSrc":"39787:14:22","nodeType":"YulIdentifier","src":"39787:14:22"},"nativeSrc":"39787:74:22","nodeType":"YulFunctionCall","src":"39787:74:22"},"nativeSrc":"39787:74:22","nodeType":"YulExpressionStatement","src":"39787:74:22"},{"nativeSrc":"39956:37:22","nodeType":"YulVariableDeclaration","src":"39956:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"39979:10:22","nodeType":"YulIdentifier","src":"39979:10:22"},{"kind":"number","nativeSrc":"39991:1:22","nodeType":"YulLiteral","src":"39991:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"39975:3:22","nodeType":"YulIdentifier","src":"39975:3:22"},"nativeSrc":"39975:18:22","nodeType":"YulFunctionCall","src":"39975:18:22"},"variables":[{"name":"extraLength","nativeSrc":"39960:11:22","nodeType":"YulTypedName","src":"39960:11:22","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"40014:4:22","nodeType":"YulIdentifier","src":"40014:4:22"},{"kind":"number","nativeSrc":"40020:28:22","nodeType":"YulLiteral","src":"40020:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"40007:6:22","nodeType":"YulIdentifier","src":"40007:6:22"},"nativeSrc":"40007:42:22","nodeType":"YulFunctionCall","src":"40007:42:22"},"nativeSrc":"40007:42:22","nodeType":"YulExpressionStatement","src":"40007:42:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40112:4:22","nodeType":"YulIdentifier","src":"40112:4:22"},{"kind":"number","nativeSrc":"40118:4:22","nodeType":"YulLiteral","src":"40118:4:22","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"40108:3:22","nodeType":"YulIdentifier","src":"40108:3:22"},"nativeSrc":"40108:15:22","nodeType":"YulFunctionCall","src":"40108:15:22"},{"name":"implementation","nativeSrc":"40125:14:22","nodeType":"YulIdentifier","src":"40125:14:22"}],"functionName":{"name":"mstore","nativeSrc":"40101:6:22","nodeType":"YulIdentifier","src":"40101:6:22"},"nativeSrc":"40101:39:22","nodeType":"YulFunctionCall","src":"40101:39:22"},"nativeSrc":"40101:39:22","nodeType":"YulExpressionStatement","src":"40101:39:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40272:4:22","nodeType":"YulIdentifier","src":"40272:4:22"},{"kind":"number","nativeSrc":"40278:4:22","nodeType":"YulLiteral","src":"40278:4:22","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"40268:3:22","nodeType":"YulIdentifier","src":"40268:3:22"},"nativeSrc":"40268:15:22","nodeType":"YulFunctionCall","src":"40268:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"40308:4:22","nodeType":"YulLiteral","src":"40308:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"40314:11:22","nodeType":"YulIdentifier","src":"40314:11:22"}],"functionName":{"name":"shl","nativeSrc":"40304:3:22","nodeType":"YulIdentifier","src":"40304:3:22"},"nativeSrc":"40304:22:22","nodeType":"YulFunctionCall","src":"40304:22:22"},{"kind":"number","nativeSrc":"40328:52:22","nodeType":"YulLiteral","src":"40328:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"40301:2:22","nodeType":"YulIdentifier","src":"40301:2:22"},"nativeSrc":"40301:80:22","nodeType":"YulFunctionCall","src":"40301:80:22"}],"functionName":{"name":"mstore","nativeSrc":"40244:6:22","nodeType":"YulIdentifier","src":"40244:6:22"},"nativeSrc":"40244:151:22","nodeType":"YulFunctionCall","src":"40244:151:22"},"nativeSrc":"40244:151:22","nodeType":"YulExpressionStatement","src":"40244:151:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40486:4:22","nodeType":"YulIdentifier","src":"40486:4:22"},{"kind":"number","nativeSrc":"40492:4:22","nodeType":"YulLiteral","src":"40492:4:22","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"40482:3:22","nodeType":"YulIdentifier","src":"40482:3:22"},"nativeSrc":"40482:15:22","nodeType":"YulFunctionCall","src":"40482:15:22"},{"kind":"number","nativeSrc":"40499:66:22","nodeType":"YulLiteral","src":"40499:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"40458:6:22","nodeType":"YulIdentifier","src":"40458:6:22"},"nativeSrc":"40458:121:22","nodeType":"YulFunctionCall","src":"40458:121:22"},"nativeSrc":"40458:121:22","nodeType":"YulExpressionStatement","src":"40458:121:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40620:4:22","nodeType":"YulIdentifier","src":"40620:4:22"},{"kind":"number","nativeSrc":"40626:4:22","nodeType":"YulLiteral","src":"40626:4:22","type":"","value":"0x5a"}],"functionName":{"name":"sub","nativeSrc":"40616:3:22","nodeType":"YulIdentifier","src":"40616:3:22"},"nativeSrc":"40616:15:22","nodeType":"YulFunctionCall","src":"40616:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"40656:4:22","nodeType":"YulLiteral","src":"40656:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"40666:11:22","nodeType":"YulIdentifier","src":"40666:11:22"},{"kind":"number","nativeSrc":"40679:4:22","nodeType":"YulLiteral","src":"40679:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"40662:3:22","nodeType":"YulIdentifier","src":"40662:3:22"},"nativeSrc":"40662:22:22","nodeType":"YulFunctionCall","src":"40662:22:22"}],"functionName":{"name":"shl","nativeSrc":"40652:3:22","nodeType":"YulIdentifier","src":"40652:3:22"},"nativeSrc":"40652:33:22","nodeType":"YulFunctionCall","src":"40652:33:22"},{"kind":"number","nativeSrc":"40687:38:22","nodeType":"YulLiteral","src":"40687:38:22","type":"","value":"0x6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"40649:2:22","nodeType":"YulIdentifier","src":"40649:2:22"},"nativeSrc":"40649:77:22","nodeType":"YulFunctionCall","src":"40649:77:22"}],"functionName":{"name":"mstore","nativeSrc":"40592:6:22","nodeType":"YulIdentifier","src":"40592:6:22"},"nativeSrc":"40592:148:22","nodeType":"YulFunctionCall","src":"40592:148:22"},"nativeSrc":"40592:148:22","nodeType":"YulExpressionStatement","src":"40592:148:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"40760:7:22","nodeType":"YulIdentifier","src":"40760:7:22"},{"arguments":[{"kind":"number","nativeSrc":"40773:4:22","nodeType":"YulLiteral","src":"40773:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"40779:11:22","nodeType":"YulIdentifier","src":"40779:11:22"}],"functionName":{"name":"shl","nativeSrc":"40769:3:22","nodeType":"YulIdentifier","src":"40769:3:22"},"nativeSrc":"40769:22:22","nodeType":"YulFunctionCall","src":"40769:22:22"}],"functionName":{"name":"mstore","nativeSrc":"40753:6:22","nodeType":"YulIdentifier","src":"40753:6:22"},"nativeSrc":"40753:39:22","nodeType":"YulFunctionCall","src":"40753:39:22"},"nativeSrc":"40753:39:22","nodeType":"YulExpressionStatement","src":"40753:39:22"},{"nativeSrc":"40806:58:22","nodeType":"YulAssignment","src":"40806:58:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40828:4:22","nodeType":"YulIdentifier","src":"40828:4:22"},{"kind":"number","nativeSrc":"40834:4:22","nodeType":"YulLiteral","src":"40834:4:22","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"40824:3:22","nodeType":"YulIdentifier","src":"40824:3:22"},"nativeSrc":"40824:15:22","nodeType":"YulFunctionCall","src":"40824:15:22"},{"arguments":[{"name":"extraLength","nativeSrc":"40845:11:22","nodeType":"YulIdentifier","src":"40845:11:22"},{"kind":"number","nativeSrc":"40858:4:22","nodeType":"YulLiteral","src":"40858:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"40841:3:22","nodeType":"YulIdentifier","src":"40841:3:22"},"nativeSrc":"40841:22:22","nodeType":"YulFunctionCall","src":"40841:22:22"}],"functionName":{"name":"keccak256","nativeSrc":"40814:9:22","nodeType":"YulIdentifier","src":"40814:9:22"},"nativeSrc":"40814:50:22","nodeType":"YulFunctionCall","src":"40814:50:22"},"variableNames":[{"name":"hash","nativeSrc":"40806:4:22","nodeType":"YulIdentifier","src":"40806:4:22"}]},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"40951:7:22","nodeType":"YulIdentifier","src":"40951:7:22"},{"name":"mAfter1","nativeSrc":"40960:7:22","nodeType":"YulIdentifier","src":"40960:7:22"}],"functionName":{"name":"mstore","nativeSrc":"40944:6:22","nodeType":"YulIdentifier","src":"40944:6:22"},"nativeSrc":"40944:24:22","nodeType":"YulFunctionCall","src":"40944:24:22"},"nativeSrc":"40944:24:22","nodeType":"YulExpressionStatement","src":"40944:24:22"},{"expression":{"arguments":[{"name":"data","nativeSrc":"40988:4:22","nodeType":"YulIdentifier","src":"40988:4:22"},{"name":"dataLength","nativeSrc":"40994:10:22","nodeType":"YulIdentifier","src":"40994:10:22"}],"functionName":{"name":"mstore","nativeSrc":"40981:6:22","nodeType":"YulIdentifier","src":"40981:6:22"},"nativeSrc":"40981:24:22","nodeType":"YulFunctionCall","src":"40981:24:22"},"nativeSrc":"40981:24:22","nodeType":"YulExpressionStatement","src":"40981:24:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41029:4:22","nodeType":"YulIdentifier","src":"41029:4:22"},{"kind":"number","nativeSrc":"41035:4:22","nodeType":"YulLiteral","src":"41035:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"41025:3:22","nodeType":"YulIdentifier","src":"41025:3:22"},"nativeSrc":"41025:15:22","nodeType":"YulFunctionCall","src":"41025:15:22"},{"name":"mBefore1","nativeSrc":"41042:8:22","nodeType":"YulIdentifier","src":"41042:8:22"}],"functionName":{"name":"mstore","nativeSrc":"41018:6:22","nodeType":"YulIdentifier","src":"41018:6:22"},"nativeSrc":"41018:33:22","nodeType":"YulFunctionCall","src":"41018:33:22"},"nativeSrc":"41018:33:22","nodeType":"YulExpressionStatement","src":"41018:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41075:4:22","nodeType":"YulIdentifier","src":"41075:4:22"},{"kind":"number","nativeSrc":"41081:4:22","nodeType":"YulLiteral","src":"41081:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"41071:3:22","nodeType":"YulIdentifier","src":"41071:3:22"},"nativeSrc":"41071:15:22","nodeType":"YulFunctionCall","src":"41071:15:22"},{"name":"mBefore2","nativeSrc":"41088:8:22","nodeType":"YulIdentifier","src":"41088:8:22"}],"functionName":{"name":"mstore","nativeSrc":"41064:6:22","nodeType":"YulIdentifier","src":"41064:6:22"},"nativeSrc":"41064:33:22","nodeType":"YulFunctionCall","src":"41064:33:22"},"nativeSrc":"41064:33:22","nodeType":"YulExpressionStatement","src":"41064:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41121:4:22","nodeType":"YulIdentifier","src":"41121:4:22"},{"kind":"number","nativeSrc":"41127:4:22","nodeType":"YulLiteral","src":"41127:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"41117:3:22","nodeType":"YulIdentifier","src":"41117:3:22"},"nativeSrc":"41117:15:22","nodeType":"YulFunctionCall","src":"41117:15:22"},{"name":"mBefore3","nativeSrc":"41134:8:22","nodeType":"YulIdentifier","src":"41134:8:22"}],"functionName":{"name":"mstore","nativeSrc":"41110:6:22","nodeType":"YulIdentifier","src":"41110:6:22"},"nativeSrc":"41110:33:22","nodeType":"YulFunctionCall","src":"41110:33:22"},"nativeSrc":"41110:33:22","nodeType":"YulExpressionStatement","src":"41110:33:22"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39341:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39392:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39443:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39492:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39533:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40014:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40112:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40272:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40486:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40620:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40828:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40988:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"41029:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"41075:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"41121:4:22","valueSize":1},{"declaration":9556,"isOffset":false,"isSlot":false,"src":"40806:4:22","valueSize":1},{"declaration":9551,"isOffset":false,"isSlot":false,"src":"40125:14:22","valueSize":1}],"id":9558,"nodeType":"InlineAssembly","src":"39204:1949:22"}]},"documentation":{"id":9549,"nodeType":"StructuredDocumentation","src":"38867:192:22","text":"@dev Returns the initialization code hash of the clone of `implementation`\n using immutable arguments encoded in `data`.\n Used for mining vanity addresses with create2crunch."},"id":9560,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash","nameLocation":"39073:12:22","nodeType":"FunctionDefinition","parameters":{"id":9554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9551,"mutability":"mutable","name":"implementation","nameLocation":"39094:14:22","nodeType":"VariableDeclaration","scope":9560,"src":"39086:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9550,"name":"address","nodeType":"ElementaryTypeName","src":"39086:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9553,"mutability":"mutable","name":"data","nameLocation":"39123:4:22","nodeType":"VariableDeclaration","scope":9560,"src":"39110:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9552,"name":"bytes","nodeType":"ElementaryTypeName","src":"39110:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"39085:43:22"},"returnParameters":{"id":9557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9556,"mutability":"mutable","name":"hash","nameLocation":"39184:4:22","nodeType":"VariableDeclaration","scope":9560,"src":"39176:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39176:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39175:14:22"},"scope":10092,"src":"39064:2095:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9589,"nodeType":"Block","src":"41611:137:22","statements":[{"assignments":[9575],"declarations":[{"constant":false,"id":9575,"mutability":"mutable","name":"hash","nameLocation":"41629:4:22","nodeType":"VariableDeclaration","scope":9589,"src":"41621:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41621:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9580,"initialValue":{"arguments":[{"id":9577,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9563,"src":"41649:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9578,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9565,"src":"41665:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9576,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[9330,9560],"referencedDeclaration":9560,"src":"41636:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":9579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41636:34:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41621:49:22"},{"expression":{"id":9587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9581,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9572,"src":"41680:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9583,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"41720:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9584,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9567,"src":"41726:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9585,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9569,"src":"41732:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9582,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"41692:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41692:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"41680:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9588,"nodeType":"ExpressionStatement","src":"41680:61:22"}]},"documentation":{"id":9561,"nodeType":"StructuredDocumentation","src":"41165:249:22","text":"@dev Returns the address of the deterministic clone of\n `implementation` using immutable arguments encoded in `data`, with `salt`, by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9590,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"41428:27:22","nodeType":"FunctionDefinition","parameters":{"id":9570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9563,"mutability":"mutable","name":"implementation","nameLocation":"41473:14:22","nodeType":"VariableDeclaration","scope":9590,"src":"41465:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9562,"name":"address","nodeType":"ElementaryTypeName","src":"41465:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9565,"mutability":"mutable","name":"data","nameLocation":"41510:4:22","nodeType":"VariableDeclaration","scope":9590,"src":"41497:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9564,"name":"bytes","nodeType":"ElementaryTypeName","src":"41497:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9567,"mutability":"mutable","name":"salt","nameLocation":"41532:4:22","nodeType":"VariableDeclaration","scope":9590,"src":"41524:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41524:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9569,"mutability":"mutable","name":"deployer","nameLocation":"41554:8:22","nodeType":"VariableDeclaration","scope":9590,"src":"41546:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9568,"name":"address","nodeType":"ElementaryTypeName","src":"41546:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41455:113:22"},"returnParameters":{"id":9573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9572,"mutability":"mutable","name":"predicted","nameLocation":"41600:9:22","nodeType":"VariableDeclaration","scope":9590,"src":"41592:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9571,"name":"address","nodeType":"ElementaryTypeName","src":"41592:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41591:19:22"},"scope":10092,"src":"41419:329:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9605,"nodeType":"Block","src":"42358:60:22","statements":[{"expression":{"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9598,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9596,"src":"42368:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42393:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9601,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9593,"src":"42396:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9599,"name":"deployERC1967","nodeType":"Identifier","overloadedDeclarations":[9606,9618],"referencedDeclaration":9618,"src":"42379:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42379:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"42368:43:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9604,"nodeType":"ExpressionStatement","src":"42368:43:22"}]},"documentation":{"id":9591,"nodeType":"StructuredDocumentation","src":"42207:63:22","text":"@dev Deploys a minimal ERC1967 proxy with `implementation`."},"id":9606,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967","nameLocation":"42284:13:22","nodeType":"FunctionDefinition","parameters":{"id":9594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9593,"mutability":"mutable","name":"implementation","nameLocation":"42306:14:22","nodeType":"VariableDeclaration","scope":9606,"src":"42298:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9592,"name":"address","nodeType":"ElementaryTypeName","src":"42298:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42297:24:22"},"returnParameters":{"id":9597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9596,"mutability":"mutable","name":"instance","nameLocation":"42348:8:22","nodeType":"VariableDeclaration","scope":9606,"src":"42340:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9595,"name":"address","nodeType":"ElementaryTypeName","src":"42340:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42339:18:22"},"scope":10092,"src":"42275:143:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9617,"nodeType":"Block","src":"42658:6584:22","statements":[{"AST":{"nativeSrc":"42720:6516:22","nodeType":"YulBlock","src":"42720:6516:22","statements":[{"nativeSrc":"48548:20:22","nodeType":"YulVariableDeclaration","src":"48548:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"48563:4:22","nodeType":"YulLiteral","src":"48563:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"48557:5:22","nodeType":"YulIdentifier","src":"48557:5:22"},"nativeSrc":"48557:11:22","nodeType":"YulFunctionCall","src":"48557:11:22"},"variables":[{"name":"m","nativeSrc":"48552:1:22","nodeType":"YulTypedName","src":"48552:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48622:4:22","nodeType":"YulLiteral","src":"48622:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"48628:66:22","nodeType":"YulLiteral","src":"48628:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"48615:6:22","nodeType":"YulIdentifier","src":"48615:6:22"},"nativeSrc":"48615:80:22","nodeType":"YulFunctionCall","src":"48615:80:22"},"nativeSrc":"48615:80:22","nodeType":"YulExpressionStatement","src":"48615:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48715:4:22","nodeType":"YulLiteral","src":"48715:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"48721:66:22","nodeType":"YulLiteral","src":"48721:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"48708:6:22","nodeType":"YulIdentifier","src":"48708:6:22"},"nativeSrc":"48708:80:22","nodeType":"YulFunctionCall","src":"48708:80:22"},"nativeSrc":"48708:80:22","nodeType":"YulExpressionStatement","src":"48708:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48808:4:22","nodeType":"YulLiteral","src":"48808:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"48814:6:22","nodeType":"YulLiteral","src":"48814:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"48801:6:22","nodeType":"YulIdentifier","src":"48801:6:22"},"nativeSrc":"48801:20:22","nodeType":"YulFunctionCall","src":"48801:20:22"},"nativeSrc":"48801:20:22","nodeType":"YulExpressionStatement","src":"48801:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48841:4:22","nodeType":"YulLiteral","src":"48841:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"48847:14:22","nodeType":"YulIdentifier","src":"48847:14:22"}],"functionName":{"name":"mstore","nativeSrc":"48834:6:22","nodeType":"YulIdentifier","src":"48834:6:22"},"nativeSrc":"48834:28:22","nodeType":"YulFunctionCall","src":"48834:28:22"},"nativeSrc":"48834:28:22","nodeType":"YulExpressionStatement","src":"48834:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48882:4:22","nodeType":"YulLiteral","src":"48882:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"48888:20:22","nodeType":"YulLiteral","src":"48888:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"48875:6:22","nodeType":"YulIdentifier","src":"48875:6:22"},"nativeSrc":"48875:34:22","nodeType":"YulFunctionCall","src":"48875:34:22"},"nativeSrc":"48875:34:22","nodeType":"YulExpressionStatement","src":"48875:34:22"},{"nativeSrc":"48922:37:22","nodeType":"YulAssignment","src":"48922:37:22","value":{"arguments":[{"name":"value","nativeSrc":"48941:5:22","nodeType":"YulIdentifier","src":"48941:5:22"},{"kind":"number","nativeSrc":"48948:4:22","nodeType":"YulLiteral","src":"48948:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"48954:4:22","nodeType":"YulLiteral","src":"48954:4:22","type":"","value":"0x5f"}],"functionName":{"name":"create","nativeSrc":"48934:6:22","nodeType":"YulIdentifier","src":"48934:6:22"},"nativeSrc":"48934:25:22","nodeType":"YulFunctionCall","src":"48934:25:22"},"variableNames":[{"name":"instance","nativeSrc":"48922:8:22","nodeType":"YulIdentifier","src":"48922:8:22"}]},{"body":{"nativeSrc":"48992:116:22","nodeType":"YulBlock","src":"48992:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"49017:4:22","nodeType":"YulLiteral","src":"49017:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"49023:10:22","nodeType":"YulLiteral","src":"49023:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"49010:6:22","nodeType":"YulIdentifier","src":"49010:6:22"},"nativeSrc":"49010:24:22","nodeType":"YulFunctionCall","src":"49010:24:22"},"nativeSrc":"49010:24:22","nodeType":"YulExpressionStatement","src":"49010:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49083:4:22","nodeType":"YulLiteral","src":"49083:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"49089:4:22","nodeType":"YulLiteral","src":"49089:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"49076:6:22","nodeType":"YulIdentifier","src":"49076:6:22"},"nativeSrc":"49076:18:22","nodeType":"YulFunctionCall","src":"49076:18:22"},"nativeSrc":"49076:18:22","nodeType":"YulExpressionStatement","src":"49076:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"48982:8:22","nodeType":"YulIdentifier","src":"48982:8:22"}],"functionName":{"name":"iszero","nativeSrc":"48975:6:22","nodeType":"YulIdentifier","src":"48975:6:22"},"nativeSrc":"48975:16:22","nodeType":"YulFunctionCall","src":"48975:16:22"},"nativeSrc":"48972:136:22","nodeType":"YulIf","src":"48972:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49128:4:22","nodeType":"YulLiteral","src":"49128:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"49134:1:22","nodeType":"YulIdentifier","src":"49134:1:22"}],"functionName":{"name":"mstore","nativeSrc":"49121:6:22","nodeType":"YulIdentifier","src":"49121:6:22"},"nativeSrc":"49121:15:22","nodeType":"YulFunctionCall","src":"49121:15:22"},"nativeSrc":"49121:15:22","nodeType":"YulExpressionStatement","src":"49121:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49192:4:22","nodeType":"YulLiteral","src":"49192:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"49198:1:22","nodeType":"YulLiteral","src":"49198:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"49185:6:22","nodeType":"YulIdentifier","src":"49185:6:22"},"nativeSrc":"49185:15:22","nodeType":"YulFunctionCall","src":"49185:15:22"},"nativeSrc":"49185:15:22","nodeType":"YulExpressionStatement","src":"49185:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9611,"isOffset":false,"isSlot":false,"src":"48847:14:22","valueSize":1},{"declaration":9614,"isOffset":false,"isSlot":false,"src":"48922:8:22","valueSize":1},{"declaration":9614,"isOffset":false,"isSlot":false,"src":"48982:8:22","valueSize":1},{"declaration":9609,"isOffset":false,"isSlot":false,"src":"48941:5:22","valueSize":1}],"id":9616,"nodeType":"InlineAssembly","src":"42711:6525:22"}]},"documentation":{"id":9607,"nodeType":"StructuredDocumentation","src":"42424:111:22","text":"@dev Deploys a minimal ERC1967 proxy with `implementation`.\n Deposits `value` ETH during deployment."},"id":9618,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967","nameLocation":"42549:13:22","nodeType":"FunctionDefinition","parameters":{"id":9612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9609,"mutability":"mutable","name":"value","nameLocation":"42571:5:22","nodeType":"VariableDeclaration","scope":9618,"src":"42563:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9608,"name":"uint256","nodeType":"ElementaryTypeName","src":"42563:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9611,"mutability":"mutable","name":"implementation","nameLocation":"42586:14:22","nodeType":"VariableDeclaration","scope":9618,"src":"42578:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9610,"name":"address","nodeType":"ElementaryTypeName","src":"42578:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42562:39:22"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9614,"mutability":"mutable","name":"instance","nameLocation":"42644:8:22","nodeType":"VariableDeclaration","scope":9618,"src":"42636:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9613,"name":"address","nodeType":"ElementaryTypeName","src":"42636:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42635:18:22"},"scope":10092,"src":"42540:6702:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9636,"nodeType":"Block","src":"49471:79:22","statements":[{"expression":{"id":9634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9628,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9626,"src":"49481:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49519:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9631,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9621,"src":"49522:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9632,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9623,"src":"49538:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9629,"name":"deployDeterministicERC1967","nodeType":"Identifier","overloadedDeclarations":[9637,9651],"referencedDeclaration":9651,"src":"49492:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49492:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49481:62:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9635,"nodeType":"ExpressionStatement","src":"49481:62:22"}]},"documentation":{"id":9619,"nodeType":"StructuredDocumentation","src":"49248:88:22","text":"@dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`."},"id":9637,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967","nameLocation":"49350:26:22","nodeType":"FunctionDefinition","parameters":{"id":9624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9621,"mutability":"mutable","name":"implementation","nameLocation":"49385:14:22","nodeType":"VariableDeclaration","scope":9637,"src":"49377:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9620,"name":"address","nodeType":"ElementaryTypeName","src":"49377:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9623,"mutability":"mutable","name":"salt","nameLocation":"49409:4:22","nodeType":"VariableDeclaration","scope":9637,"src":"49401:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49401:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49376:38:22"},"returnParameters":{"id":9627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9626,"mutability":"mutable","name":"instance","nameLocation":"49457:8:22","nodeType":"VariableDeclaration","scope":9637,"src":"49449:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9625,"name":"address","nodeType":"ElementaryTypeName","src":"49449:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49448:18:22"},"scope":10092,"src":"49341:209:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9650,"nodeType":"Block","src":"49842:777:22","statements":[{"AST":{"nativeSrc":"49904:709:22","nodeType":"YulBlock","src":"49904:709:22","statements":[{"nativeSrc":"49918:20:22","nodeType":"YulVariableDeclaration","src":"49918:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"49933:4:22","nodeType":"YulLiteral","src":"49933:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"49927:5:22","nodeType":"YulIdentifier","src":"49927:5:22"},"nativeSrc":"49927:11:22","nodeType":"YulFunctionCall","src":"49927:11:22"},"variables":[{"name":"m","nativeSrc":"49922:1:22","nodeType":"YulTypedName","src":"49922:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49992:4:22","nodeType":"YulLiteral","src":"49992:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"49998:66:22","nodeType":"YulLiteral","src":"49998:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"49985:6:22","nodeType":"YulIdentifier","src":"49985:6:22"},"nativeSrc":"49985:80:22","nodeType":"YulFunctionCall","src":"49985:80:22"},"nativeSrc":"49985:80:22","nodeType":"YulExpressionStatement","src":"49985:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50085:4:22","nodeType":"YulLiteral","src":"50085:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"50091:66:22","nodeType":"YulLiteral","src":"50091:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"50078:6:22","nodeType":"YulIdentifier","src":"50078:6:22"},"nativeSrc":"50078:80:22","nodeType":"YulFunctionCall","src":"50078:80:22"},"nativeSrc":"50078:80:22","nodeType":"YulExpressionStatement","src":"50078:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50178:4:22","nodeType":"YulLiteral","src":"50178:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"50184:6:22","nodeType":"YulLiteral","src":"50184:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"50171:6:22","nodeType":"YulIdentifier","src":"50171:6:22"},"nativeSrc":"50171:20:22","nodeType":"YulFunctionCall","src":"50171:20:22"},"nativeSrc":"50171:20:22","nodeType":"YulExpressionStatement","src":"50171:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50211:4:22","nodeType":"YulLiteral","src":"50211:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"50217:14:22","nodeType":"YulIdentifier","src":"50217:14:22"}],"functionName":{"name":"mstore","nativeSrc":"50204:6:22","nodeType":"YulIdentifier","src":"50204:6:22"},"nativeSrc":"50204:28:22","nodeType":"YulFunctionCall","src":"50204:28:22"},"nativeSrc":"50204:28:22","nodeType":"YulExpressionStatement","src":"50204:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50252:4:22","nodeType":"YulLiteral","src":"50252:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"50258:20:22","nodeType":"YulLiteral","src":"50258:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"50245:6:22","nodeType":"YulIdentifier","src":"50245:6:22"},"nativeSrc":"50245:34:22","nodeType":"YulFunctionCall","src":"50245:34:22"},"nativeSrc":"50245:34:22","nodeType":"YulExpressionStatement","src":"50245:34:22"},{"nativeSrc":"50292:44:22","nodeType":"YulAssignment","src":"50292:44:22","value":{"arguments":[{"name":"value","nativeSrc":"50312:5:22","nodeType":"YulIdentifier","src":"50312:5:22"},{"kind":"number","nativeSrc":"50319:4:22","nodeType":"YulLiteral","src":"50319:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"50325:4:22","nodeType":"YulLiteral","src":"50325:4:22","type":"","value":"0x5f"},{"name":"salt","nativeSrc":"50331:4:22","nodeType":"YulIdentifier","src":"50331:4:22"}],"functionName":{"name":"create2","nativeSrc":"50304:7:22","nodeType":"YulIdentifier","src":"50304:7:22"},"nativeSrc":"50304:32:22","nodeType":"YulFunctionCall","src":"50304:32:22"},"variableNames":[{"name":"instance","nativeSrc":"50292:8:22","nodeType":"YulIdentifier","src":"50292:8:22"}]},{"body":{"nativeSrc":"50369:116:22","nodeType":"YulBlock","src":"50369:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"50394:4:22","nodeType":"YulLiteral","src":"50394:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"50400:10:22","nodeType":"YulLiteral","src":"50400:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"50387:6:22","nodeType":"YulIdentifier","src":"50387:6:22"},"nativeSrc":"50387:24:22","nodeType":"YulFunctionCall","src":"50387:24:22"},"nativeSrc":"50387:24:22","nodeType":"YulExpressionStatement","src":"50387:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50460:4:22","nodeType":"YulLiteral","src":"50460:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"50466:4:22","nodeType":"YulLiteral","src":"50466:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"50453:6:22","nodeType":"YulIdentifier","src":"50453:6:22"},"nativeSrc":"50453:18:22","nodeType":"YulFunctionCall","src":"50453:18:22"},"nativeSrc":"50453:18:22","nodeType":"YulExpressionStatement","src":"50453:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"50359:8:22","nodeType":"YulIdentifier","src":"50359:8:22"}],"functionName":{"name":"iszero","nativeSrc":"50352:6:22","nodeType":"YulIdentifier","src":"50352:6:22"},"nativeSrc":"50352:16:22","nodeType":"YulFunctionCall","src":"50352:16:22"},"nativeSrc":"50349:136:22","nodeType":"YulIf","src":"50349:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50505:4:22","nodeType":"YulLiteral","src":"50505:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"50511:1:22","nodeType":"YulIdentifier","src":"50511:1:22"}],"functionName":{"name":"mstore","nativeSrc":"50498:6:22","nodeType":"YulIdentifier","src":"50498:6:22"},"nativeSrc":"50498:15:22","nodeType":"YulFunctionCall","src":"50498:15:22"},"nativeSrc":"50498:15:22","nodeType":"YulExpressionStatement","src":"50498:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50569:4:22","nodeType":"YulLiteral","src":"50569:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"50575:1:22","nodeType":"YulLiteral","src":"50575:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50562:6:22","nodeType":"YulIdentifier","src":"50562:6:22"},"nativeSrc":"50562:15:22","nodeType":"YulFunctionCall","src":"50562:15:22"},"nativeSrc":"50562:15:22","nodeType":"YulExpressionStatement","src":"50562:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9642,"isOffset":false,"isSlot":false,"src":"50217:14:22","valueSize":1},{"declaration":9647,"isOffset":false,"isSlot":false,"src":"50292:8:22","valueSize":1},{"declaration":9647,"isOffset":false,"isSlot":false,"src":"50359:8:22","valueSize":1},{"declaration":9644,"isOffset":false,"isSlot":false,"src":"50331:4:22","valueSize":1},{"declaration":9640,"isOffset":false,"isSlot":false,"src":"50312:5:22","valueSize":1}],"id":9649,"nodeType":"InlineAssembly","src":"49895:718:22"}]},"documentation":{"id":9638,"nodeType":"StructuredDocumentation","src":"49556:136:22","text":"@dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment."},"id":9651,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967","nameLocation":"49706:26:22","nodeType":"FunctionDefinition","parameters":{"id":9645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9640,"mutability":"mutable","name":"value","nameLocation":"49741:5:22","nodeType":"VariableDeclaration","scope":9651,"src":"49733:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9639,"name":"uint256","nodeType":"ElementaryTypeName","src":"49733:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9642,"mutability":"mutable","name":"implementation","nameLocation":"49756:14:22","nodeType":"VariableDeclaration","scope":9651,"src":"49748:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9641,"name":"address","nodeType":"ElementaryTypeName","src":"49748:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9644,"mutability":"mutable","name":"salt","nameLocation":"49780:4:22","nodeType":"VariableDeclaration","scope":9651,"src":"49772:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49772:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49732:53:22"},"returnParameters":{"id":9648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9647,"mutability":"mutable","name":"instance","nameLocation":"49828:8:22","nodeType":"VariableDeclaration","scope":9651,"src":"49820:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9646,"name":"address","nodeType":"ElementaryTypeName","src":"49820:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49819:18:22"},"scope":10092,"src":"49697:922:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9669,"nodeType":"Block","src":"51013:75:22","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51057:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9665,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"51060:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9666,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"51076:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9663,"name":"createDeterministicERC1967","nodeType":"Identifier","overloadedDeclarations":[9670,9686],"referencedDeclaration":9686,"src":"51030:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":9667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51030:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9662,"id":9668,"nodeType":"Return","src":"51023:58:22"}]},"documentation":{"id":9652,"nodeType":"StructuredDocumentation","src":"50625:231:22","text":"@dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9670,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967","nameLocation":"50870:26:22","nodeType":"FunctionDefinition","parameters":{"id":9657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9654,"mutability":"mutable","name":"implementation","nameLocation":"50905:14:22","nodeType":"VariableDeclaration","scope":9670,"src":"50897:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9653,"name":"address","nodeType":"ElementaryTypeName","src":"50897:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9656,"mutability":"mutable","name":"salt","nameLocation":"50929:4:22","nodeType":"VariableDeclaration","scope":9670,"src":"50921:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50921:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50896:38:22"},"returnParameters":{"id":9662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9659,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"50974:15:22","nodeType":"VariableDeclaration","scope":9670,"src":"50969:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9658,"name":"bool","nodeType":"ElementaryTypeName","src":"50969:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9661,"mutability":"mutable","name":"instance","nameLocation":"50999:8:22","nodeType":"VariableDeclaration","scope":9670,"src":"50991:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9660,"name":"address","nodeType":"ElementaryTypeName","src":"50991:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50968:40:22"},"scope":10092,"src":"50861:227:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9685,"nodeType":"Block","src":"51545:1558:22","statements":[{"AST":{"nativeSrc":"51607:1490:22","nodeType":"YulBlock","src":"51607:1490:22","statements":[{"nativeSrc":"51621:20:22","nodeType":"YulVariableDeclaration","src":"51621:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"51636:4:22","nodeType":"YulLiteral","src":"51636:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"51630:5:22","nodeType":"YulIdentifier","src":"51630:5:22"},"nativeSrc":"51630:11:22","nodeType":"YulFunctionCall","src":"51630:11:22"},"variables":[{"name":"m","nativeSrc":"51625:1:22","nodeType":"YulTypedName","src":"51625:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51695:4:22","nodeType":"YulLiteral","src":"51695:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"51701:66:22","nodeType":"YulLiteral","src":"51701:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"51688:6:22","nodeType":"YulIdentifier","src":"51688:6:22"},"nativeSrc":"51688:80:22","nodeType":"YulFunctionCall","src":"51688:80:22"},"nativeSrc":"51688:80:22","nodeType":"YulExpressionStatement","src":"51688:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51788:4:22","nodeType":"YulLiteral","src":"51788:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"51794:66:22","nodeType":"YulLiteral","src":"51794:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"51781:6:22","nodeType":"YulIdentifier","src":"51781:6:22"},"nativeSrc":"51781:80:22","nodeType":"YulFunctionCall","src":"51781:80:22"},"nativeSrc":"51781:80:22","nodeType":"YulExpressionStatement","src":"51781:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51881:4:22","nodeType":"YulLiteral","src":"51881:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"51887:6:22","nodeType":"YulLiteral","src":"51887:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"51874:6:22","nodeType":"YulIdentifier","src":"51874:6:22"},"nativeSrc":"51874:20:22","nodeType":"YulFunctionCall","src":"51874:20:22"},"nativeSrc":"51874:20:22","nodeType":"YulExpressionStatement","src":"51874:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51914:4:22","nodeType":"YulLiteral","src":"51914:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"51920:14:22","nodeType":"YulIdentifier","src":"51920:14:22"}],"functionName":{"name":"mstore","nativeSrc":"51907:6:22","nodeType":"YulIdentifier","src":"51907:6:22"},"nativeSrc":"51907:28:22","nodeType":"YulFunctionCall","src":"51907:28:22"},"nativeSrc":"51907:28:22","nodeType":"YulExpressionStatement","src":"51907:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51955:4:22","nodeType":"YulLiteral","src":"51955:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"51961:20:22","nodeType":"YulLiteral","src":"51961:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"51948:6:22","nodeType":"YulIdentifier","src":"51948:6:22"},"nativeSrc":"51948:34:22","nodeType":"YulFunctionCall","src":"51948:34:22"},"nativeSrc":"51948:34:22","nodeType":"YulExpressionStatement","src":"51948:34:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"52058:1:22","nodeType":"YulIdentifier","src":"52058:1:22"},{"kind":"number","nativeSrc":"52061:4:22","nodeType":"YulLiteral","src":"52061:4:22","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"52054:3:22","nodeType":"YulIdentifier","src":"52054:3:22"},"nativeSrc":"52054:12:22","nodeType":"YulFunctionCall","src":"52054:12:22"},{"arguments":[{"kind":"number","nativeSrc":"52078:4:22","nodeType":"YulLiteral","src":"52078:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"52084:4:22","nodeType":"YulLiteral","src":"52084:4:22","type":"","value":"0x5f"}],"functionName":{"name":"keccak256","nativeSrc":"52068:9:22","nodeType":"YulIdentifier","src":"52068:9:22"},"nativeSrc":"52068:21:22","nodeType":"YulFunctionCall","src":"52068:21:22"}],"functionName":{"name":"mstore","nativeSrc":"52047:6:22","nodeType":"YulIdentifier","src":"52047:6:22"},"nativeSrc":"52047:43:22","nodeType":"YulFunctionCall","src":"52047:43:22"},"nativeSrc":"52047:43:22","nodeType":"YulExpressionStatement","src":"52047:43:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"52110:1:22","nodeType":"YulIdentifier","src":"52110:1:22"},{"arguments":[{"kind":"number","nativeSrc":"52117:2:22","nodeType":"YulLiteral","src":"52117:2:22","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"52121:7:22","nodeType":"YulIdentifier","src":"52121:7:22"},"nativeSrc":"52121:9:22","nodeType":"YulFunctionCall","src":"52121:9:22"}],"functionName":{"name":"shl","nativeSrc":"52113:3:22","nodeType":"YulIdentifier","src":"52113:3:22"},"nativeSrc":"52113:18:22","nodeType":"YulFunctionCall","src":"52113:18:22"}],"functionName":{"name":"mstore","nativeSrc":"52103:6:22","nodeType":"YulIdentifier","src":"52103:6:22"},"nativeSrc":"52103:29:22","nodeType":"YulFunctionCall","src":"52103:29:22"},"nativeSrc":"52103:29:22","nodeType":"YulExpressionStatement","src":"52103:29:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"52153:1:22","nodeType":"YulIdentifier","src":"52153:1:22"},{"kind":"number","nativeSrc":"52156:4:22","nodeType":"YulLiteral","src":"52156:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"52145:7:22","nodeType":"YulIdentifier","src":"52145:7:22"},"nativeSrc":"52145:16:22","nodeType":"YulFunctionCall","src":"52145:16:22"},"nativeSrc":"52145:16:22","nodeType":"YulExpressionStatement","src":"52145:16:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"52206:1:22","nodeType":"YulIdentifier","src":"52206:1:22"},{"kind":"number","nativeSrc":"52209:4:22","nodeType":"YulLiteral","src":"52209:4:22","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"52202:3:22","nodeType":"YulIdentifier","src":"52202:3:22"},"nativeSrc":"52202:12:22","nodeType":"YulFunctionCall","src":"52202:12:22"},{"name":"salt","nativeSrc":"52216:4:22","nodeType":"YulIdentifier","src":"52216:4:22"}],"functionName":{"name":"mstore","nativeSrc":"52195:6:22","nodeType":"YulIdentifier","src":"52195:6:22"},"nativeSrc":"52195:26:22","nodeType":"YulFunctionCall","src":"52195:26:22"},"nativeSrc":"52195:26:22","nodeType":"YulExpressionStatement","src":"52195:26:22"},{"nativeSrc":"52234:30:22","nodeType":"YulAssignment","src":"52234:30:22","value":{"arguments":[{"name":"m","nativeSrc":"52256:1:22","nodeType":"YulIdentifier","src":"52256:1:22"},{"kind":"number","nativeSrc":"52259:4:22","nodeType":"YulLiteral","src":"52259:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"52246:9:22","nodeType":"YulIdentifier","src":"52246:9:22"},"nativeSrc":"52246:18:22","nodeType":"YulFunctionCall","src":"52246:18:22"},"variableNames":[{"name":"instance","nativeSrc":"52234:8:22","nodeType":"YulIdentifier","src":"52234:8:22"}]},{"body":{"nativeSrc":"52289:680:22","nodeType":"YulBlock","src":"52289:680:22","statements":[{"body":{"nativeSrc":"52340:291:22","nodeType":"YulBlock","src":"52340:291:22","statements":[{"nativeSrc":"52362:44:22","nodeType":"YulAssignment","src":"52362:44:22","value":{"arguments":[{"name":"value","nativeSrc":"52382:5:22","nodeType":"YulIdentifier","src":"52382:5:22"},{"kind":"number","nativeSrc":"52389:4:22","nodeType":"YulLiteral","src":"52389:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"52395:4:22","nodeType":"YulLiteral","src":"52395:4:22","type":"","value":"0x5f"},{"name":"salt","nativeSrc":"52401:4:22","nodeType":"YulIdentifier","src":"52401:4:22"}],"functionName":{"name":"create2","nativeSrc":"52374:7:22","nodeType":"YulIdentifier","src":"52374:7:22"},"nativeSrc":"52374:32:22","nodeType":"YulFunctionCall","src":"52374:32:22"},"variableNames":[{"name":"instance","nativeSrc":"52362:8:22","nodeType":"YulIdentifier","src":"52362:8:22"}]},{"body":{"nativeSrc":"52447:140:22","nodeType":"YulBlock","src":"52447:140:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52480:4:22","nodeType":"YulLiteral","src":"52480:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52486:10:22","nodeType":"YulLiteral","src":"52486:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"52473:6:22","nodeType":"YulIdentifier","src":"52473:6:22"},"nativeSrc":"52473:24:22","nodeType":"YulFunctionCall","src":"52473:24:22"},"nativeSrc":"52473:24:22","nodeType":"YulExpressionStatement","src":"52473:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52554:4:22","nodeType":"YulLiteral","src":"52554:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"52560:4:22","nodeType":"YulLiteral","src":"52560:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"52547:6:22","nodeType":"YulIdentifier","src":"52547:6:22"},"nativeSrc":"52547:18:22","nodeType":"YulFunctionCall","src":"52547:18:22"},"nativeSrc":"52547:18:22","nodeType":"YulExpressionStatement","src":"52547:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"52437:8:22","nodeType":"YulIdentifier","src":"52437:8:22"}],"functionName":{"name":"iszero","nativeSrc":"52430:6:22","nodeType":"YulIdentifier","src":"52430:6:22"},"nativeSrc":"52430:16:22","nodeType":"YulFunctionCall","src":"52430:16:22"},"nativeSrc":"52427:160:22","nodeType":"YulIf","src":"52427:160:22"},{"nativeSrc":"52608:5:22","nodeType":"YulBreak","src":"52608:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"52329:8:22","nodeType":"YulIdentifier","src":"52329:8:22"}],"functionName":{"name":"extcodesize","nativeSrc":"52317:11:22","nodeType":"YulIdentifier","src":"52317:11:22"},"nativeSrc":"52317:21:22","nodeType":"YulFunctionCall","src":"52317:21:22"}],"functionName":{"name":"iszero","nativeSrc":"52310:6:22","nodeType":"YulIdentifier","src":"52310:6:22"},"nativeSrc":"52310:29:22","nodeType":"YulFunctionCall","src":"52310:29:22"},"nativeSrc":"52307:324:22","nodeType":"YulIf","src":"52307:324:22"},{"nativeSrc":"52648:20:22","nodeType":"YulAssignment","src":"52648:20:22","value":{"kind":"number","nativeSrc":"52667:1:22","nodeType":"YulLiteral","src":"52667:1:22","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"52648:15:22","nodeType":"YulIdentifier","src":"52648:15:22"}]},{"body":{"nativeSrc":"52702:9:22","nodeType":"YulBlock","src":"52702:9:22","statements":[{"nativeSrc":"52704:5:22","nodeType":"YulBreak","src":"52704:5:22"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"52695:5:22","nodeType":"YulIdentifier","src":"52695:5:22"}],"functionName":{"name":"iszero","nativeSrc":"52688:6:22","nodeType":"YulIdentifier","src":"52688:6:22"},"nativeSrc":"52688:13:22","nodeType":"YulFunctionCall","src":"52688:13:22"},"nativeSrc":"52685:26:22","nodeType":"YulIf","src":"52685:26:22"},{"body":{"nativeSrc":"52804:129:22","nodeType":"YulBlock","src":"52804:129:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52833:4:22","nodeType":"YulLiteral","src":"52833:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52839:10:22","nodeType":"YulLiteral","src":"52839:10:22","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"52826:6:22","nodeType":"YulIdentifier","src":"52826:6:22"},"nativeSrc":"52826:24:22","nodeType":"YulFunctionCall","src":"52826:24:22"},"nativeSrc":"52826:24:22","nodeType":"YulExpressionStatement","src":"52826:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52904:4:22","nodeType":"YulLiteral","src":"52904:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"52910:4:22","nodeType":"YulLiteral","src":"52910:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"52897:6:22","nodeType":"YulIdentifier","src":"52897:6:22"},"nativeSrc":"52897:18:22","nodeType":"YulFunctionCall","src":"52897:18:22"},"nativeSrc":"52897:18:22","nodeType":"YulExpressionStatement","src":"52897:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"52743:3:22","nodeType":"YulIdentifier","src":"52743:3:22"},"nativeSrc":"52743:5:22","nodeType":"YulFunctionCall","src":"52743:5:22"},{"name":"instance","nativeSrc":"52750:8:22","nodeType":"YulIdentifier","src":"52750:8:22"},{"name":"value","nativeSrc":"52760:5:22","nodeType":"YulIdentifier","src":"52760:5:22"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"52767:8:22","nodeType":"YulIdentifier","src":"52767:8:22"},"nativeSrc":"52767:10:22","nodeType":"YulFunctionCall","src":"52767:10:22"},{"kind":"number","nativeSrc":"52779:4:22","nodeType":"YulLiteral","src":"52779:4:22","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"52785:8:22","nodeType":"YulIdentifier","src":"52785:8:22"},"nativeSrc":"52785:10:22","nodeType":"YulFunctionCall","src":"52785:10:22"},{"kind":"number","nativeSrc":"52797:4:22","nodeType":"YulLiteral","src":"52797:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"52738:4:22","nodeType":"YulIdentifier","src":"52738:4:22"},"nativeSrc":"52738:64:22","nodeType":"YulFunctionCall","src":"52738:64:22"}],"functionName":{"name":"iszero","nativeSrc":"52731:6:22","nodeType":"YulIdentifier","src":"52731:6:22"},"nativeSrc":"52731:72:22","nodeType":"YulFunctionCall","src":"52731:72:22"},"nativeSrc":"52728:205:22","nodeType":"YulIf","src":"52728:205:22"},{"nativeSrc":"52950:5:22","nodeType":"YulBreak","src":"52950:5:22"}]},"condition":{"kind":"number","nativeSrc":"52284:1:22","nodeType":"YulLiteral","src":"52284:1:22","type":"","value":"1"},"nativeSrc":"52277:692:22","nodeType":"YulForLoop","post":{"nativeSrc":"52286:2:22","nodeType":"YulBlock","src":"52286:2:22","statements":[]},"pre":{"nativeSrc":"52281:2:22","nodeType":"YulBlock","src":"52281:2:22","statements":[]},"src":"52277:692:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52989:4:22","nodeType":"YulLiteral","src":"52989:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"52995:1:22","nodeType":"YulIdentifier","src":"52995:1:22"}],"functionName":{"name":"mstore","nativeSrc":"52982:6:22","nodeType":"YulIdentifier","src":"52982:6:22"},"nativeSrc":"52982:15:22","nodeType":"YulFunctionCall","src":"52982:15:22"},"nativeSrc":"52982:15:22","nodeType":"YulExpressionStatement","src":"52982:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53053:4:22","nodeType":"YulLiteral","src":"53053:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"53059:1:22","nodeType":"YulLiteral","src":"53059:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"53046:6:22","nodeType":"YulIdentifier","src":"53046:6:22"},"nativeSrc":"53046:15:22","nodeType":"YulFunctionCall","src":"53046:15:22"},"nativeSrc":"53046:15:22","nodeType":"YulExpressionStatement","src":"53046:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9680,"isOffset":false,"isSlot":false,"src":"52648:15:22","valueSize":1},{"declaration":9675,"isOffset":false,"isSlot":false,"src":"51920:14:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52234:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52329:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52362:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52437:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52750:8:22","valueSize":1},{"declaration":9677,"isOffset":false,"isSlot":false,"src":"52216:4:22","valueSize":1},{"declaration":9677,"isOffset":false,"isSlot":false,"src":"52401:4:22","valueSize":1},{"declaration":9673,"isOffset":false,"isSlot":false,"src":"52382:5:22","valueSize":1},{"declaration":9673,"isOffset":false,"isSlot":false,"src":"52695:5:22","valueSize":1},{"declaration":9673,"isOffset":false,"isSlot":false,"src":"52760:5:22","valueSize":1}],"id":9684,"nodeType":"InlineAssembly","src":"51598:1499:22"}]},"documentation":{"id":9671,"nodeType":"StructuredDocumentation","src":"51094:279:22","text":"@dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9686,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967","nameLocation":"51387:26:22","nodeType":"FunctionDefinition","parameters":{"id":9678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9673,"mutability":"mutable","name":"value","nameLocation":"51422:5:22","nodeType":"VariableDeclaration","scope":9686,"src":"51414:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9672,"name":"uint256","nodeType":"ElementaryTypeName","src":"51414:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9675,"mutability":"mutable","name":"implementation","nameLocation":"51437:14:22","nodeType":"VariableDeclaration","scope":9686,"src":"51429:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9674,"name":"address","nodeType":"ElementaryTypeName","src":"51429:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9677,"mutability":"mutable","name":"salt","nameLocation":"51461:4:22","nodeType":"VariableDeclaration","scope":9686,"src":"51453:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51453:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"51413:53:22"},"returnParameters":{"id":9683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9680,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"51506:15:22","nodeType":"VariableDeclaration","scope":9686,"src":"51501:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9679,"name":"bool","nodeType":"ElementaryTypeName","src":"51501:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9682,"mutability":"mutable","name":"instance","nameLocation":"51531:8:22","nodeType":"VariableDeclaration","scope":9686,"src":"51523:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9681,"name":"address","nodeType":"ElementaryTypeName","src":"51523:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51500:40:22"},"scope":10092,"src":"51378:1725:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9695,"nodeType":"Block","src":"53297:672:22","statements":[{"AST":{"nativeSrc":"53359:604:22","nodeType":"YulBlock","src":"53359:604:22","statements":[{"nativeSrc":"53373:21:22","nodeType":"YulAssignment","src":"53373:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"53389:4:22","nodeType":"YulLiteral","src":"53389:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"53383:5:22","nodeType":"YulIdentifier","src":"53383:5:22"},"nativeSrc":"53383:11:22","nodeType":"YulFunctionCall","src":"53383:11:22"},"variableNames":[{"name":"result","nativeSrc":"53373:6:22","nodeType":"YulIdentifier","src":"53373:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53435:6:22","nodeType":"YulIdentifier","src":"53435:6:22"},{"kind":"number","nativeSrc":"53443:4:22","nodeType":"YulLiteral","src":"53443:4:22","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"53431:3:22","nodeType":"YulIdentifier","src":"53431:3:22"},"nativeSrc":"53431:17:22","nodeType":"YulFunctionCall","src":"53431:17:22"},{"kind":"number","nativeSrc":"53466:66:22","nodeType":"YulLiteral","src":"53466:66:22","type":"","value":"0x3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f300"}],"functionName":{"name":"mstore","nativeSrc":"53407:6:22","nodeType":"YulIdentifier","src":"53407:6:22"},"nativeSrc":"53407:139:22","nodeType":"YulFunctionCall","src":"53407:139:22"},"nativeSrc":"53407:139:22","nodeType":"YulExpressionStatement","src":"53407:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53587:6:22","nodeType":"YulIdentifier","src":"53587:6:22"},{"kind":"number","nativeSrc":"53595:4:22","nodeType":"YulLiteral","src":"53595:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"53583:3:22","nodeType":"YulIdentifier","src":"53583:3:22"},"nativeSrc":"53583:17:22","nodeType":"YulFunctionCall","src":"53583:17:22"},{"kind":"number","nativeSrc":"53618:66:22","nodeType":"YulLiteral","src":"53618:66:22","type":"","value":"0x55f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc"}],"functionName":{"name":"mstore","nativeSrc":"53559:6:22","nodeType":"YulIdentifier","src":"53559:6:22"},"nativeSrc":"53559:139:22","nodeType":"YulFunctionCall","src":"53559:139:22"},"nativeSrc":"53559:139:22","nodeType":"YulExpressionStatement","src":"53559:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53722:6:22","nodeType":"YulIdentifier","src":"53722:6:22"},{"kind":"number","nativeSrc":"53730:4:22","nodeType":"YulLiteral","src":"53730:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"53718:3:22","nodeType":"YulIdentifier","src":"53718:3:22"},"nativeSrc":"53718:17:22","nodeType":"YulFunctionCall","src":"53718:17:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"53744:2:22","nodeType":"YulLiteral","src":"53744:2:22","type":"","value":"24"},{"name":"implementation","nativeSrc":"53748:14:22","nodeType":"YulIdentifier","src":"53748:14:22"}],"functionName":{"name":"shl","nativeSrc":"53740:3:22","nodeType":"YulIdentifier","src":"53740:3:22"},"nativeSrc":"53740:23:22","nodeType":"YulFunctionCall","src":"53740:23:22"},{"kind":"number","nativeSrc":"53765:8:22","nodeType":"YulLiteral","src":"53765:8:22","type":"","value":"0x600951"}],"functionName":{"name":"or","nativeSrc":"53737:2:22","nodeType":"YulIdentifier","src":"53737:2:22"},"nativeSrc":"53737:37:22","nodeType":"YulFunctionCall","src":"53737:37:22"}],"functionName":{"name":"mstore","nativeSrc":"53711:6:22","nodeType":"YulIdentifier","src":"53711:6:22"},"nativeSrc":"53711:64:22","nodeType":"YulFunctionCall","src":"53711:64:22"},"nativeSrc":"53711:64:22","nodeType":"YulExpressionStatement","src":"53711:64:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53799:6:22","nodeType":"YulIdentifier","src":"53799:6:22"},{"kind":"number","nativeSrc":"53807:4:22","nodeType":"YulLiteral","src":"53807:4:22","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"53795:3:22","nodeType":"YulIdentifier","src":"53795:3:22"},"nativeSrc":"53795:17:22","nodeType":"YulFunctionCall","src":"53795:17:22"},{"kind":"number","nativeSrc":"53814:20:22","nodeType":"YulLiteral","src":"53814:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"53788:6:22","nodeType":"YulIdentifier","src":"53788:6:22"},"nativeSrc":"53788:47:22","nodeType":"YulFunctionCall","src":"53788:47:22"},"nativeSrc":"53788:47:22","nodeType":"YulExpressionStatement","src":"53788:47:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"53855:6:22","nodeType":"YulIdentifier","src":"53855:6:22"},{"kind":"number","nativeSrc":"53863:4:22","nodeType":"YulLiteral","src":"53863:4:22","type":"","value":"0x5f"}],"functionName":{"name":"mstore","nativeSrc":"53848:6:22","nodeType":"YulIdentifier","src":"53848:6:22"},"nativeSrc":"53848:20:22","nodeType":"YulFunctionCall","src":"53848:20:22"},"nativeSrc":"53848:20:22","nodeType":"YulExpressionStatement","src":"53848:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53909:4:22","nodeType":"YulLiteral","src":"53909:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"53919:6:22","nodeType":"YulIdentifier","src":"53919:6:22"},{"kind":"number","nativeSrc":"53927:4:22","nodeType":"YulLiteral","src":"53927:4:22","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"53915:3:22","nodeType":"YulIdentifier","src":"53915:3:22"},"nativeSrc":"53915:17:22","nodeType":"YulFunctionCall","src":"53915:17:22"}],"functionName":{"name":"mstore","nativeSrc":"53902:6:22","nodeType":"YulIdentifier","src":"53902:6:22"},"nativeSrc":"53902:31:22","nodeType":"YulFunctionCall","src":"53902:31:22"},"nativeSrc":"53902:31:22","nodeType":"YulExpressionStatement","src":"53902:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9689,"isOffset":false,"isSlot":false,"src":"53748:14:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53373:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53435:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53587:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53722:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53799:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53855:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53919:6:22","valueSize":1}],"id":9694,"nodeType":"InlineAssembly","src":"53350:613:22"}]},"documentation":{"id":9687,"nodeType":"StructuredDocumentation","src":"53109:90:22","text":"@dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`."},"id":9696,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967","nameLocation":"53213:15:22","nodeType":"FunctionDefinition","parameters":{"id":9690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9689,"mutability":"mutable","name":"implementation","nameLocation":"53237:14:22","nodeType":"VariableDeclaration","scope":9696,"src":"53229:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9688,"name":"address","nodeType":"ElementaryTypeName","src":"53229:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53228:24:22"},"returnParameters":{"id":9693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9692,"mutability":"mutable","name":"result","nameLocation":"53289:6:22","nodeType":"VariableDeclaration","scope":9696,"src":"53276:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9691,"name":"bytes","nodeType":"ElementaryTypeName","src":"53276:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"53275:21:22"},"scope":10092,"src":"53204:765:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9705,"nodeType":"Block","src":"54226:613:22","statements":[{"AST":{"nativeSrc":"54288:545:22","nodeType":"YulBlock","src":"54288:545:22","statements":[{"nativeSrc":"54302:20:22","nodeType":"YulVariableDeclaration","src":"54302:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"54317:4:22","nodeType":"YulLiteral","src":"54317:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"54311:5:22","nodeType":"YulIdentifier","src":"54311:5:22"},"nativeSrc":"54311:11:22","nodeType":"YulFunctionCall","src":"54311:11:22"},"variables":[{"name":"m","nativeSrc":"54306:1:22","nodeType":"YulTypedName","src":"54306:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54376:4:22","nodeType":"YulLiteral","src":"54376:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"54382:66:22","nodeType":"YulLiteral","src":"54382:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"54369:6:22","nodeType":"YulIdentifier","src":"54369:6:22"},"nativeSrc":"54369:80:22","nodeType":"YulFunctionCall","src":"54369:80:22"},"nativeSrc":"54369:80:22","nodeType":"YulExpressionStatement","src":"54369:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54469:4:22","nodeType":"YulLiteral","src":"54469:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"54475:66:22","nodeType":"YulLiteral","src":"54475:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"54462:6:22","nodeType":"YulIdentifier","src":"54462:6:22"},"nativeSrc":"54462:80:22","nodeType":"YulFunctionCall","src":"54462:80:22"},"nativeSrc":"54462:80:22","nodeType":"YulExpressionStatement","src":"54462:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54562:4:22","nodeType":"YulLiteral","src":"54562:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"54568:6:22","nodeType":"YulLiteral","src":"54568:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"54555:6:22","nodeType":"YulIdentifier","src":"54555:6:22"},"nativeSrc":"54555:20:22","nodeType":"YulFunctionCall","src":"54555:20:22"},"nativeSrc":"54555:20:22","nodeType":"YulExpressionStatement","src":"54555:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54595:4:22","nodeType":"YulLiteral","src":"54595:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"54601:14:22","nodeType":"YulIdentifier","src":"54601:14:22"}],"functionName":{"name":"mstore","nativeSrc":"54588:6:22","nodeType":"YulIdentifier","src":"54588:6:22"},"nativeSrc":"54588:28:22","nodeType":"YulFunctionCall","src":"54588:28:22"},"nativeSrc":"54588:28:22","nodeType":"YulExpressionStatement","src":"54588:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54636:4:22","nodeType":"YulLiteral","src":"54636:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"54642:20:22","nodeType":"YulLiteral","src":"54642:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"54629:6:22","nodeType":"YulIdentifier","src":"54629:6:22"},"nativeSrc":"54629:34:22","nodeType":"YulFunctionCall","src":"54629:34:22"},"nativeSrc":"54629:34:22","nodeType":"YulExpressionStatement","src":"54629:34:22"},{"nativeSrc":"54676:29:22","nodeType":"YulAssignment","src":"54676:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"54694:4:22","nodeType":"YulLiteral","src":"54694:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"54700:4:22","nodeType":"YulLiteral","src":"54700:4:22","type":"","value":"0x5f"}],"functionName":{"name":"keccak256","nativeSrc":"54684:9:22","nodeType":"YulIdentifier","src":"54684:9:22"},"nativeSrc":"54684:21:22","nodeType":"YulFunctionCall","src":"54684:21:22"},"variableNames":[{"name":"hash","nativeSrc":"54676:4:22","nodeType":"YulIdentifier","src":"54676:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54725:4:22","nodeType":"YulLiteral","src":"54725:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"54731:1:22","nodeType":"YulIdentifier","src":"54731:1:22"}],"functionName":{"name":"mstore","nativeSrc":"54718:6:22","nodeType":"YulIdentifier","src":"54718:6:22"},"nativeSrc":"54718:15:22","nodeType":"YulFunctionCall","src":"54718:15:22"},"nativeSrc":"54718:15:22","nodeType":"YulExpressionStatement","src":"54718:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54789:4:22","nodeType":"YulLiteral","src":"54789:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"54795:1:22","nodeType":"YulLiteral","src":"54795:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"54782:6:22","nodeType":"YulIdentifier","src":"54782:6:22"},"nativeSrc":"54782:15:22","nodeType":"YulFunctionCall","src":"54782:15:22"},"nativeSrc":"54782:15:22","nodeType":"YulExpressionStatement","src":"54782:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9702,"isOffset":false,"isSlot":false,"src":"54676:4:22","valueSize":1},{"declaration":9699,"isOffset":false,"isSlot":false,"src":"54601:14:22","valueSize":1}],"id":9704,"nodeType":"InlineAssembly","src":"54279:554:22"}]},"documentation":{"id":9697,"nodeType":"StructuredDocumentation","src":"53975:156:22","text":"@dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9706,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967","nameLocation":"54145:19:22","nodeType":"FunctionDefinition","parameters":{"id":9700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9699,"mutability":"mutable","name":"implementation","nameLocation":"54173:14:22","nodeType":"VariableDeclaration","scope":9706,"src":"54165:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9698,"name":"address","nodeType":"ElementaryTypeName","src":"54165:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54164:24:22"},"returnParameters":{"id":9703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9702,"mutability":"mutable","name":"hash","nameLocation":"54220:4:22","nodeType":"VariableDeclaration","scope":9706,"src":"54212:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54212:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"54211:14:22"},"scope":10092,"src":"54136:703:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9732,"nodeType":"Block","src":"55234:138:22","statements":[{"assignments":[9719],"declarations":[{"constant":false,"id":9719,"mutability":"mutable","name":"hash","nameLocation":"55252:4:22","nodeType":"VariableDeclaration","scope":9732,"src":"55244:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55244:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9723,"initialValue":{"arguments":[{"id":9721,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9709,"src":"55279:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9720,"name":"initCodeHashERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9706,"src":"55259:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55259:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"55244:50:22"},{"expression":{"id":9730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9724,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9716,"src":"55304:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9726,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9719,"src":"55344:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9727,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"55350:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9728,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9713,"src":"55356:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9725,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"55316:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55316:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"55304:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9731,"nodeType":"ExpressionStatement","src":"55304:61:22"}]},"documentation":{"id":9707,"nodeType":"StructuredDocumentation","src":"54845:212:22","text":"@dev Returns the address of the deterministic ERC1967 proxy of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9733,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967","nameLocation":"55071:34:22","nodeType":"FunctionDefinition","parameters":{"id":9714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9709,"mutability":"mutable","name":"implementation","nameLocation":"55123:14:22","nodeType":"VariableDeclaration","scope":9733,"src":"55115:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9708,"name":"address","nodeType":"ElementaryTypeName","src":"55115:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9711,"mutability":"mutable","name":"salt","nameLocation":"55155:4:22","nodeType":"VariableDeclaration","scope":9733,"src":"55147:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55147:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9713,"mutability":"mutable","name":"deployer","nameLocation":"55177:8:22","nodeType":"VariableDeclaration","scope":9733,"src":"55169:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9712,"name":"address","nodeType":"ElementaryTypeName","src":"55169:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55105:86:22"},"returnParameters":{"id":9717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9716,"mutability":"mutable","name":"predicted","nameLocation":"55223:9:22","nodeType":"VariableDeclaration","scope":9733,"src":"55215:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9715,"name":"address","nodeType":"ElementaryTypeName","src":"55215:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55214:19:22"},"scope":10092,"src":"55062:310:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9748,"nodeType":"Block","src":"56139:61:22","statements":[{"expression":{"id":9746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9741,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"56149:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"56175:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9744,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9736,"src":"56178:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9742,"name":"deployERC1967I","nodeType":"Identifier","overloadedDeclarations":[9749,9761],"referencedDeclaration":9761,"src":"56160:14:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56160:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"56149:44:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9747,"nodeType":"ExpressionStatement","src":"56149:44:22"}]},"documentation":{"id":9734,"nodeType":"StructuredDocumentation","src":"55986:64:22","text":"@dev Deploys a minimal ERC1967I proxy with `implementation`."},"id":9749,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967I","nameLocation":"56064:14:22","nodeType":"FunctionDefinition","parameters":{"id":9737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9736,"mutability":"mutable","name":"implementation","nameLocation":"56087:14:22","nodeType":"VariableDeclaration","scope":9749,"src":"56079:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9735,"name":"address","nodeType":"ElementaryTypeName","src":"56079:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56078:24:22"},"returnParameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9739,"mutability":"mutable","name":"instance","nameLocation":"56129:8:22","nodeType":"VariableDeclaration","scope":9749,"src":"56121:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9738,"name":"address","nodeType":"ElementaryTypeName","src":"56121:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56120:18:22"},"scope":10092,"src":"56055:145:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9760,"nodeType":"Block","src":"56434:8789:22","statements":[{"AST":{"nativeSrc":"56496:8721:22","nodeType":"YulBlock","src":"56496:8721:22","statements":[{"nativeSrc":"64480:20:22","nodeType":"YulVariableDeclaration","src":"64480:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"64495:4:22","nodeType":"YulLiteral","src":"64495:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"64489:5:22","nodeType":"YulIdentifier","src":"64489:5:22"},"nativeSrc":"64489:11:22","nodeType":"YulFunctionCall","src":"64489:11:22"},"variables":[{"name":"m","nativeSrc":"64484:1:22","nodeType":"YulTypedName","src":"64484:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64554:4:22","nodeType":"YulLiteral","src":"64554:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"64560:66:22","nodeType":"YulLiteral","src":"64560:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"64547:6:22","nodeType":"YulIdentifier","src":"64547:6:22"},"nativeSrc":"64547:80:22","nodeType":"YulFunctionCall","src":"64547:80:22"},"nativeSrc":"64547:80:22","nodeType":"YulExpressionStatement","src":"64547:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64647:4:22","nodeType":"YulLiteral","src":"64647:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"64653:66:22","nodeType":"YulLiteral","src":"64653:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"64640:6:22","nodeType":"YulIdentifier","src":"64640:6:22"},"nativeSrc":"64640:80:22","nodeType":"YulFunctionCall","src":"64640:80:22"},"nativeSrc":"64640:80:22","nodeType":"YulExpressionStatement","src":"64640:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64740:4:22","nodeType":"YulLiteral","src":"64740:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"64746:48:22","nodeType":"YulLiteral","src":"64746:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"64733:6:22","nodeType":"YulIdentifier","src":"64733:6:22"},"nativeSrc":"64733:62:22","nodeType":"YulFunctionCall","src":"64733:62:22"},"nativeSrc":"64733:62:22","nodeType":"YulExpressionStatement","src":"64733:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64815:4:22","nodeType":"YulLiteral","src":"64815:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"64828:3:22","nodeType":"YulLiteral","src":"64828:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"64833:20:22","nodeType":"YulLiteral","src":"64833:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"64824:3:22","nodeType":"YulIdentifier","src":"64824:3:22"},"nativeSrc":"64824:30:22","nodeType":"YulFunctionCall","src":"64824:30:22"},{"arguments":[{"kind":"number","nativeSrc":"64860:2:22","nodeType":"YulLiteral","src":"64860:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"64868:2:22","nodeType":"YulLiteral","src":"64868:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"64872:14:22","nodeType":"YulIdentifier","src":"64872:14:22"}],"functionName":{"name":"shl","nativeSrc":"64864:3:22","nodeType":"YulIdentifier","src":"64864:3:22"},"nativeSrc":"64864:23:22","nodeType":"YulFunctionCall","src":"64864:23:22"}],"functionName":{"name":"shr","nativeSrc":"64856:3:22","nodeType":"YulIdentifier","src":"64856:3:22"},"nativeSrc":"64856:32:22","nodeType":"YulFunctionCall","src":"64856:32:22"}],"functionName":{"name":"or","nativeSrc":"64821:2:22","nodeType":"YulIdentifier","src":"64821:2:22"},"nativeSrc":"64821:68:22","nodeType":"YulFunctionCall","src":"64821:68:22"}],"functionName":{"name":"mstore","nativeSrc":"64808:6:22","nodeType":"YulIdentifier","src":"64808:6:22"},"nativeSrc":"64808:82:22","nodeType":"YulFunctionCall","src":"64808:82:22"},"nativeSrc":"64808:82:22","nodeType":"YulExpressionStatement","src":"64808:82:22"},{"nativeSrc":"64903:37:22","nodeType":"YulAssignment","src":"64903:37:22","value":{"arguments":[{"name":"value","nativeSrc":"64922:5:22","nodeType":"YulIdentifier","src":"64922:5:22"},{"kind":"number","nativeSrc":"64929:4:22","nodeType":"YulLiteral","src":"64929:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"64935:4:22","nodeType":"YulLiteral","src":"64935:4:22","type":"","value":"0x74"}],"functionName":{"name":"create","nativeSrc":"64915:6:22","nodeType":"YulIdentifier","src":"64915:6:22"},"nativeSrc":"64915:25:22","nodeType":"YulFunctionCall","src":"64915:25:22"},"variableNames":[{"name":"instance","nativeSrc":"64903:8:22","nodeType":"YulIdentifier","src":"64903:8:22"}]},{"body":{"nativeSrc":"64973:116:22","nodeType":"YulBlock","src":"64973:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"64998:4:22","nodeType":"YulLiteral","src":"64998:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"65004:10:22","nodeType":"YulLiteral","src":"65004:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"64991:6:22","nodeType":"YulIdentifier","src":"64991:6:22"},"nativeSrc":"64991:24:22","nodeType":"YulFunctionCall","src":"64991:24:22"},"nativeSrc":"64991:24:22","nodeType":"YulExpressionStatement","src":"64991:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65064:4:22","nodeType":"YulLiteral","src":"65064:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"65070:4:22","nodeType":"YulLiteral","src":"65070:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"65057:6:22","nodeType":"YulIdentifier","src":"65057:6:22"},"nativeSrc":"65057:18:22","nodeType":"YulFunctionCall","src":"65057:18:22"},"nativeSrc":"65057:18:22","nodeType":"YulExpressionStatement","src":"65057:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"64963:8:22","nodeType":"YulIdentifier","src":"64963:8:22"}],"functionName":{"name":"iszero","nativeSrc":"64956:6:22","nodeType":"YulIdentifier","src":"64956:6:22"},"nativeSrc":"64956:16:22","nodeType":"YulFunctionCall","src":"64956:16:22"},"nativeSrc":"64953:136:22","nodeType":"YulIf","src":"64953:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65109:4:22","nodeType":"YulLiteral","src":"65109:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"65115:1:22","nodeType":"YulIdentifier","src":"65115:1:22"}],"functionName":{"name":"mstore","nativeSrc":"65102:6:22","nodeType":"YulIdentifier","src":"65102:6:22"},"nativeSrc":"65102:15:22","nodeType":"YulFunctionCall","src":"65102:15:22"},"nativeSrc":"65102:15:22","nodeType":"YulExpressionStatement","src":"65102:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65173:4:22","nodeType":"YulLiteral","src":"65173:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"65179:1:22","nodeType":"YulLiteral","src":"65179:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"65166:6:22","nodeType":"YulIdentifier","src":"65166:6:22"},"nativeSrc":"65166:15:22","nodeType":"YulFunctionCall","src":"65166:15:22"},"nativeSrc":"65166:15:22","nodeType":"YulExpressionStatement","src":"65166:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9754,"isOffset":false,"isSlot":false,"src":"64872:14:22","valueSize":1},{"declaration":9757,"isOffset":false,"isSlot":false,"src":"64903:8:22","valueSize":1},{"declaration":9757,"isOffset":false,"isSlot":false,"src":"64963:8:22","valueSize":1},{"declaration":9752,"isOffset":false,"isSlot":false,"src":"64922:5:22","valueSize":1}],"id":9759,"nodeType":"InlineAssembly","src":"56487:8730:22"}]},"documentation":{"id":9750,"nodeType":"StructuredDocumentation","src":"56206:104:22","text":"@dev Deploys a ERC1967I proxy with `implementation`.\n Deposits `value` ETH during deployment."},"id":9761,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967I","nameLocation":"56324:14:22","nodeType":"FunctionDefinition","parameters":{"id":9755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9752,"mutability":"mutable","name":"value","nameLocation":"56347:5:22","nodeType":"VariableDeclaration","scope":9761,"src":"56339:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9751,"name":"uint256","nodeType":"ElementaryTypeName","src":"56339:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9754,"mutability":"mutable","name":"implementation","nameLocation":"56362:14:22","nodeType":"VariableDeclaration","scope":9761,"src":"56354:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9753,"name":"address","nodeType":"ElementaryTypeName","src":"56354:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56338:39:22"},"returnParameters":{"id":9758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9757,"mutability":"mutable","name":"instance","nameLocation":"56420:8:22","nodeType":"VariableDeclaration","scope":9761,"src":"56412:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9756,"name":"address","nodeType":"ElementaryTypeName","src":"56412:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56411:18:22"},"scope":10092,"src":"56315:8908:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9779,"nodeType":"Block","src":"65446:80:22","statements":[{"expression":{"id":9777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9771,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9769,"src":"65456:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"65495:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9774,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9764,"src":"65498:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9775,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9766,"src":"65514:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9772,"name":"deployDeterministicERC1967I","nodeType":"Identifier","overloadedDeclarations":[9780,9794],"referencedDeclaration":9794,"src":"65467:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65467:52:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"65456:63:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9778,"nodeType":"ExpressionStatement","src":"65456:63:22"}]},"documentation":{"id":9762,"nodeType":"StructuredDocumentation","src":"65229:81:22","text":"@dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`."},"id":9780,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967I","nameLocation":"65324:27:22","nodeType":"FunctionDefinition","parameters":{"id":9767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9764,"mutability":"mutable","name":"implementation","nameLocation":"65360:14:22","nodeType":"VariableDeclaration","scope":9780,"src":"65352:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9763,"name":"address","nodeType":"ElementaryTypeName","src":"65352:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9766,"mutability":"mutable","name":"salt","nameLocation":"65384:4:22","nodeType":"VariableDeclaration","scope":9780,"src":"65376:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65376:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65351:38:22"},"returnParameters":{"id":9770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9769,"mutability":"mutable","name":"instance","nameLocation":"65432:8:22","nodeType":"VariableDeclaration","scope":9780,"src":"65424:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9768,"name":"address","nodeType":"ElementaryTypeName","src":"65424:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65423:18:22"},"scope":10092,"src":"65315:211:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9793,"nodeType":"Block","src":"65812:826:22","statements":[{"AST":{"nativeSrc":"65874:758:22","nodeType":"YulBlock","src":"65874:758:22","statements":[{"nativeSrc":"65888:20:22","nodeType":"YulVariableDeclaration","src":"65888:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"65903:4:22","nodeType":"YulLiteral","src":"65903:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"65897:5:22","nodeType":"YulIdentifier","src":"65897:5:22"},"nativeSrc":"65897:11:22","nodeType":"YulFunctionCall","src":"65897:11:22"},"variables":[{"name":"m","nativeSrc":"65892:1:22","nodeType":"YulTypedName","src":"65892:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65962:4:22","nodeType":"YulLiteral","src":"65962:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"65968:66:22","nodeType":"YulLiteral","src":"65968:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"65955:6:22","nodeType":"YulIdentifier","src":"65955:6:22"},"nativeSrc":"65955:80:22","nodeType":"YulFunctionCall","src":"65955:80:22"},"nativeSrc":"65955:80:22","nodeType":"YulExpressionStatement","src":"65955:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66055:4:22","nodeType":"YulLiteral","src":"66055:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"66061:66:22","nodeType":"YulLiteral","src":"66061:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"66048:6:22","nodeType":"YulIdentifier","src":"66048:6:22"},"nativeSrc":"66048:80:22","nodeType":"YulFunctionCall","src":"66048:80:22"},"nativeSrc":"66048:80:22","nodeType":"YulExpressionStatement","src":"66048:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66148:4:22","nodeType":"YulLiteral","src":"66148:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"66154:48:22","nodeType":"YulLiteral","src":"66154:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"66141:6:22","nodeType":"YulIdentifier","src":"66141:6:22"},"nativeSrc":"66141:62:22","nodeType":"YulFunctionCall","src":"66141:62:22"},"nativeSrc":"66141:62:22","nodeType":"YulExpressionStatement","src":"66141:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66223:4:22","nodeType":"YulLiteral","src":"66223:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"66236:3:22","nodeType":"YulLiteral","src":"66236:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"66241:20:22","nodeType":"YulLiteral","src":"66241:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"66232:3:22","nodeType":"YulIdentifier","src":"66232:3:22"},"nativeSrc":"66232:30:22","nodeType":"YulFunctionCall","src":"66232:30:22"},{"arguments":[{"kind":"number","nativeSrc":"66268:2:22","nodeType":"YulLiteral","src":"66268:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"66276:2:22","nodeType":"YulLiteral","src":"66276:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"66280:14:22","nodeType":"YulIdentifier","src":"66280:14:22"}],"functionName":{"name":"shl","nativeSrc":"66272:3:22","nodeType":"YulIdentifier","src":"66272:3:22"},"nativeSrc":"66272:23:22","nodeType":"YulFunctionCall","src":"66272:23:22"}],"functionName":{"name":"shr","nativeSrc":"66264:3:22","nodeType":"YulIdentifier","src":"66264:3:22"},"nativeSrc":"66264:32:22","nodeType":"YulFunctionCall","src":"66264:32:22"}],"functionName":{"name":"or","nativeSrc":"66229:2:22","nodeType":"YulIdentifier","src":"66229:2:22"},"nativeSrc":"66229:68:22","nodeType":"YulFunctionCall","src":"66229:68:22"}],"functionName":{"name":"mstore","nativeSrc":"66216:6:22","nodeType":"YulIdentifier","src":"66216:6:22"},"nativeSrc":"66216:82:22","nodeType":"YulFunctionCall","src":"66216:82:22"},"nativeSrc":"66216:82:22","nodeType":"YulExpressionStatement","src":"66216:82:22"},{"nativeSrc":"66311:44:22","nodeType":"YulAssignment","src":"66311:44:22","value":{"arguments":[{"name":"value","nativeSrc":"66331:5:22","nodeType":"YulIdentifier","src":"66331:5:22"},{"kind":"number","nativeSrc":"66338:4:22","nodeType":"YulLiteral","src":"66338:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"66344:4:22","nodeType":"YulLiteral","src":"66344:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"66350:4:22","nodeType":"YulIdentifier","src":"66350:4:22"}],"functionName":{"name":"create2","nativeSrc":"66323:7:22","nodeType":"YulIdentifier","src":"66323:7:22"},"nativeSrc":"66323:32:22","nodeType":"YulFunctionCall","src":"66323:32:22"},"variableNames":[{"name":"instance","nativeSrc":"66311:8:22","nodeType":"YulIdentifier","src":"66311:8:22"}]},{"body":{"nativeSrc":"66388:116:22","nodeType":"YulBlock","src":"66388:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"66413:4:22","nodeType":"YulLiteral","src":"66413:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"66419:10:22","nodeType":"YulLiteral","src":"66419:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"66406:6:22","nodeType":"YulIdentifier","src":"66406:6:22"},"nativeSrc":"66406:24:22","nodeType":"YulFunctionCall","src":"66406:24:22"},"nativeSrc":"66406:24:22","nodeType":"YulExpressionStatement","src":"66406:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66479:4:22","nodeType":"YulLiteral","src":"66479:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"66485:4:22","nodeType":"YulLiteral","src":"66485:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"66472:6:22","nodeType":"YulIdentifier","src":"66472:6:22"},"nativeSrc":"66472:18:22","nodeType":"YulFunctionCall","src":"66472:18:22"},"nativeSrc":"66472:18:22","nodeType":"YulExpressionStatement","src":"66472:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"66378:8:22","nodeType":"YulIdentifier","src":"66378:8:22"}],"functionName":{"name":"iszero","nativeSrc":"66371:6:22","nodeType":"YulIdentifier","src":"66371:6:22"},"nativeSrc":"66371:16:22","nodeType":"YulFunctionCall","src":"66371:16:22"},"nativeSrc":"66368:136:22","nodeType":"YulIf","src":"66368:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66524:4:22","nodeType":"YulLiteral","src":"66524:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"66530:1:22","nodeType":"YulIdentifier","src":"66530:1:22"}],"functionName":{"name":"mstore","nativeSrc":"66517:6:22","nodeType":"YulIdentifier","src":"66517:6:22"},"nativeSrc":"66517:15:22","nodeType":"YulFunctionCall","src":"66517:15:22"},"nativeSrc":"66517:15:22","nodeType":"YulExpressionStatement","src":"66517:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66588:4:22","nodeType":"YulLiteral","src":"66588:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"66594:1:22","nodeType":"YulLiteral","src":"66594:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"66581:6:22","nodeType":"YulIdentifier","src":"66581:6:22"},"nativeSrc":"66581:15:22","nodeType":"YulFunctionCall","src":"66581:15:22"},"nativeSrc":"66581:15:22","nodeType":"YulExpressionStatement","src":"66581:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9785,"isOffset":false,"isSlot":false,"src":"66280:14:22","valueSize":1},{"declaration":9790,"isOffset":false,"isSlot":false,"src":"66311:8:22","valueSize":1},{"declaration":9790,"isOffset":false,"isSlot":false,"src":"66378:8:22","valueSize":1},{"declaration":9787,"isOffset":false,"isSlot":false,"src":"66350:4:22","valueSize":1},{"declaration":9783,"isOffset":false,"isSlot":false,"src":"66331:5:22","valueSize":1}],"id":9792,"nodeType":"InlineAssembly","src":"65865:767:22"}]},"documentation":{"id":9781,"nodeType":"StructuredDocumentation","src":"65532:129:22","text":"@dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment."},"id":9794,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967I","nameLocation":"65675:27:22","nodeType":"FunctionDefinition","parameters":{"id":9788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9783,"mutability":"mutable","name":"value","nameLocation":"65711:5:22","nodeType":"VariableDeclaration","scope":9794,"src":"65703:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9782,"name":"uint256","nodeType":"ElementaryTypeName","src":"65703:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9785,"mutability":"mutable","name":"implementation","nameLocation":"65726:14:22","nodeType":"VariableDeclaration","scope":9794,"src":"65718:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9784,"name":"address","nodeType":"ElementaryTypeName","src":"65718:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9787,"mutability":"mutable","name":"salt","nameLocation":"65750:4:22","nodeType":"VariableDeclaration","scope":9794,"src":"65742:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65742:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65702:53:22"},"returnParameters":{"id":9791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9790,"mutability":"mutable","name":"instance","nameLocation":"65798:8:22","nodeType":"VariableDeclaration","scope":9794,"src":"65790:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9789,"name":"address","nodeType":"ElementaryTypeName","src":"65790:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65789:18:22"},"scope":10092,"src":"65666:972:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9812,"nodeType":"Block","src":"67026:76:22","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"67071:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9808,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9797,"src":"67074:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9809,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9799,"src":"67090:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9806,"name":"createDeterministicERC1967I","nodeType":"Identifier","overloadedDeclarations":[9813,9829],"referencedDeclaration":9829,"src":"67043:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":9810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67043:52:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9805,"id":9811,"nodeType":"Return","src":"67036:59:22"}]},"documentation":{"id":9795,"nodeType":"StructuredDocumentation","src":"66644:224:22","text":"@dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9813,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967I","nameLocation":"66882:27:22","nodeType":"FunctionDefinition","parameters":{"id":9800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9797,"mutability":"mutable","name":"implementation","nameLocation":"66918:14:22","nodeType":"VariableDeclaration","scope":9813,"src":"66910:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9796,"name":"address","nodeType":"ElementaryTypeName","src":"66910:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9799,"mutability":"mutable","name":"salt","nameLocation":"66942:4:22","nodeType":"VariableDeclaration","scope":9813,"src":"66934:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66934:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"66909:38:22"},"returnParameters":{"id":9805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"66987:15:22","nodeType":"VariableDeclaration","scope":9813,"src":"66982:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9801,"name":"bool","nodeType":"ElementaryTypeName","src":"66982:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9804,"mutability":"mutable","name":"instance","nameLocation":"67012:8:22","nodeType":"VariableDeclaration","scope":9813,"src":"67004:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9803,"name":"address","nodeType":"ElementaryTypeName","src":"67004:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66981:40:22"},"scope":10092,"src":"66873:229:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9828,"nodeType":"Block","src":"67553:1607:22","statements":[{"AST":{"nativeSrc":"67615:1539:22","nodeType":"YulBlock","src":"67615:1539:22","statements":[{"nativeSrc":"67629:20:22","nodeType":"YulVariableDeclaration","src":"67629:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"67644:4:22","nodeType":"YulLiteral","src":"67644:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"67638:5:22","nodeType":"YulIdentifier","src":"67638:5:22"},"nativeSrc":"67638:11:22","nodeType":"YulFunctionCall","src":"67638:11:22"},"variables":[{"name":"m","nativeSrc":"67633:1:22","nodeType":"YulTypedName","src":"67633:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67703:4:22","nodeType":"YulLiteral","src":"67703:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"67709:66:22","nodeType":"YulLiteral","src":"67709:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"67696:6:22","nodeType":"YulIdentifier","src":"67696:6:22"},"nativeSrc":"67696:80:22","nodeType":"YulFunctionCall","src":"67696:80:22"},"nativeSrc":"67696:80:22","nodeType":"YulExpressionStatement","src":"67696:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67796:4:22","nodeType":"YulLiteral","src":"67796:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"67802:66:22","nodeType":"YulLiteral","src":"67802:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"67789:6:22","nodeType":"YulIdentifier","src":"67789:6:22"},"nativeSrc":"67789:80:22","nodeType":"YulFunctionCall","src":"67789:80:22"},"nativeSrc":"67789:80:22","nodeType":"YulExpressionStatement","src":"67789:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67889:4:22","nodeType":"YulLiteral","src":"67889:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"67895:48:22","nodeType":"YulLiteral","src":"67895:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"67882:6:22","nodeType":"YulIdentifier","src":"67882:6:22"},"nativeSrc":"67882:62:22","nodeType":"YulFunctionCall","src":"67882:62:22"},"nativeSrc":"67882:62:22","nodeType":"YulExpressionStatement","src":"67882:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67964:4:22","nodeType":"YulLiteral","src":"67964:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"67977:3:22","nodeType":"YulLiteral","src":"67977:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"67982:20:22","nodeType":"YulLiteral","src":"67982:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"67973:3:22","nodeType":"YulIdentifier","src":"67973:3:22"},"nativeSrc":"67973:30:22","nodeType":"YulFunctionCall","src":"67973:30:22"},{"arguments":[{"kind":"number","nativeSrc":"68009:2:22","nodeType":"YulLiteral","src":"68009:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"68017:2:22","nodeType":"YulLiteral","src":"68017:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"68021:14:22","nodeType":"YulIdentifier","src":"68021:14:22"}],"functionName":{"name":"shl","nativeSrc":"68013:3:22","nodeType":"YulIdentifier","src":"68013:3:22"},"nativeSrc":"68013:23:22","nodeType":"YulFunctionCall","src":"68013:23:22"}],"functionName":{"name":"shr","nativeSrc":"68005:3:22","nodeType":"YulIdentifier","src":"68005:3:22"},"nativeSrc":"68005:32:22","nodeType":"YulFunctionCall","src":"68005:32:22"}],"functionName":{"name":"or","nativeSrc":"67970:2:22","nodeType":"YulIdentifier","src":"67970:2:22"},"nativeSrc":"67970:68:22","nodeType":"YulFunctionCall","src":"67970:68:22"}],"functionName":{"name":"mstore","nativeSrc":"67957:6:22","nodeType":"YulIdentifier","src":"67957:6:22"},"nativeSrc":"67957:82:22","nodeType":"YulFunctionCall","src":"67957:82:22"},"nativeSrc":"67957:82:22","nodeType":"YulExpressionStatement","src":"67957:82:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"68115:1:22","nodeType":"YulIdentifier","src":"68115:1:22"},{"kind":"number","nativeSrc":"68118:4:22","nodeType":"YulLiteral","src":"68118:4:22","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"68111:3:22","nodeType":"YulIdentifier","src":"68111:3:22"},"nativeSrc":"68111:12:22","nodeType":"YulFunctionCall","src":"68111:12:22"},{"arguments":[{"kind":"number","nativeSrc":"68135:4:22","nodeType":"YulLiteral","src":"68135:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"68141:4:22","nodeType":"YulLiteral","src":"68141:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"68125:9:22","nodeType":"YulIdentifier","src":"68125:9:22"},"nativeSrc":"68125:21:22","nodeType":"YulFunctionCall","src":"68125:21:22"}],"functionName":{"name":"mstore","nativeSrc":"68104:6:22","nodeType":"YulIdentifier","src":"68104:6:22"},"nativeSrc":"68104:43:22","nodeType":"YulFunctionCall","src":"68104:43:22"},"nativeSrc":"68104:43:22","nodeType":"YulExpressionStatement","src":"68104:43:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"68167:1:22","nodeType":"YulIdentifier","src":"68167:1:22"},{"arguments":[{"kind":"number","nativeSrc":"68174:2:22","nodeType":"YulLiteral","src":"68174:2:22","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"68178:7:22","nodeType":"YulIdentifier","src":"68178:7:22"},"nativeSrc":"68178:9:22","nodeType":"YulFunctionCall","src":"68178:9:22"}],"functionName":{"name":"shl","nativeSrc":"68170:3:22","nodeType":"YulIdentifier","src":"68170:3:22"},"nativeSrc":"68170:18:22","nodeType":"YulFunctionCall","src":"68170:18:22"}],"functionName":{"name":"mstore","nativeSrc":"68160:6:22","nodeType":"YulIdentifier","src":"68160:6:22"},"nativeSrc":"68160:29:22","nodeType":"YulFunctionCall","src":"68160:29:22"},"nativeSrc":"68160:29:22","nodeType":"YulExpressionStatement","src":"68160:29:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"68210:1:22","nodeType":"YulIdentifier","src":"68210:1:22"},{"kind":"number","nativeSrc":"68213:4:22","nodeType":"YulLiteral","src":"68213:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"68202:7:22","nodeType":"YulIdentifier","src":"68202:7:22"},"nativeSrc":"68202:16:22","nodeType":"YulFunctionCall","src":"68202:16:22"},"nativeSrc":"68202:16:22","nodeType":"YulExpressionStatement","src":"68202:16:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"68263:1:22","nodeType":"YulIdentifier","src":"68263:1:22"},{"kind":"number","nativeSrc":"68266:4:22","nodeType":"YulLiteral","src":"68266:4:22","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"68259:3:22","nodeType":"YulIdentifier","src":"68259:3:22"},"nativeSrc":"68259:12:22","nodeType":"YulFunctionCall","src":"68259:12:22"},{"name":"salt","nativeSrc":"68273:4:22","nodeType":"YulIdentifier","src":"68273:4:22"}],"functionName":{"name":"mstore","nativeSrc":"68252:6:22","nodeType":"YulIdentifier","src":"68252:6:22"},"nativeSrc":"68252:26:22","nodeType":"YulFunctionCall","src":"68252:26:22"},"nativeSrc":"68252:26:22","nodeType":"YulExpressionStatement","src":"68252:26:22"},{"nativeSrc":"68291:30:22","nodeType":"YulAssignment","src":"68291:30:22","value":{"arguments":[{"name":"m","nativeSrc":"68313:1:22","nodeType":"YulIdentifier","src":"68313:1:22"},{"kind":"number","nativeSrc":"68316:4:22","nodeType":"YulLiteral","src":"68316:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"68303:9:22","nodeType":"YulIdentifier","src":"68303:9:22"},"nativeSrc":"68303:18:22","nodeType":"YulFunctionCall","src":"68303:18:22"},"variableNames":[{"name":"instance","nativeSrc":"68291:8:22","nodeType":"YulIdentifier","src":"68291:8:22"}]},{"body":{"nativeSrc":"68346:680:22","nodeType":"YulBlock","src":"68346:680:22","statements":[{"body":{"nativeSrc":"68397:291:22","nodeType":"YulBlock","src":"68397:291:22","statements":[{"nativeSrc":"68419:44:22","nodeType":"YulAssignment","src":"68419:44:22","value":{"arguments":[{"name":"value","nativeSrc":"68439:5:22","nodeType":"YulIdentifier","src":"68439:5:22"},{"kind":"number","nativeSrc":"68446:4:22","nodeType":"YulLiteral","src":"68446:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"68452:4:22","nodeType":"YulLiteral","src":"68452:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"68458:4:22","nodeType":"YulIdentifier","src":"68458:4:22"}],"functionName":{"name":"create2","nativeSrc":"68431:7:22","nodeType":"YulIdentifier","src":"68431:7:22"},"nativeSrc":"68431:32:22","nodeType":"YulFunctionCall","src":"68431:32:22"},"variableNames":[{"name":"instance","nativeSrc":"68419:8:22","nodeType":"YulIdentifier","src":"68419:8:22"}]},{"body":{"nativeSrc":"68504:140:22","nodeType":"YulBlock","src":"68504:140:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68537:4:22","nodeType":"YulLiteral","src":"68537:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"68543:10:22","nodeType":"YulLiteral","src":"68543:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"68530:6:22","nodeType":"YulIdentifier","src":"68530:6:22"},"nativeSrc":"68530:24:22","nodeType":"YulFunctionCall","src":"68530:24:22"},"nativeSrc":"68530:24:22","nodeType":"YulExpressionStatement","src":"68530:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68611:4:22","nodeType":"YulLiteral","src":"68611:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"68617:4:22","nodeType":"YulLiteral","src":"68617:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"68604:6:22","nodeType":"YulIdentifier","src":"68604:6:22"},"nativeSrc":"68604:18:22","nodeType":"YulFunctionCall","src":"68604:18:22"},"nativeSrc":"68604:18:22","nodeType":"YulExpressionStatement","src":"68604:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"68494:8:22","nodeType":"YulIdentifier","src":"68494:8:22"}],"functionName":{"name":"iszero","nativeSrc":"68487:6:22","nodeType":"YulIdentifier","src":"68487:6:22"},"nativeSrc":"68487:16:22","nodeType":"YulFunctionCall","src":"68487:16:22"},"nativeSrc":"68484:160:22","nodeType":"YulIf","src":"68484:160:22"},{"nativeSrc":"68665:5:22","nodeType":"YulBreak","src":"68665:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"68386:8:22","nodeType":"YulIdentifier","src":"68386:8:22"}],"functionName":{"name":"extcodesize","nativeSrc":"68374:11:22","nodeType":"YulIdentifier","src":"68374:11:22"},"nativeSrc":"68374:21:22","nodeType":"YulFunctionCall","src":"68374:21:22"}],"functionName":{"name":"iszero","nativeSrc":"68367:6:22","nodeType":"YulIdentifier","src":"68367:6:22"},"nativeSrc":"68367:29:22","nodeType":"YulFunctionCall","src":"68367:29:22"},"nativeSrc":"68364:324:22","nodeType":"YulIf","src":"68364:324:22"},{"nativeSrc":"68705:20:22","nodeType":"YulAssignment","src":"68705:20:22","value":{"kind":"number","nativeSrc":"68724:1:22","nodeType":"YulLiteral","src":"68724:1:22","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"68705:15:22","nodeType":"YulIdentifier","src":"68705:15:22"}]},{"body":{"nativeSrc":"68759:9:22","nodeType":"YulBlock","src":"68759:9:22","statements":[{"nativeSrc":"68761:5:22","nodeType":"YulBreak","src":"68761:5:22"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"68752:5:22","nodeType":"YulIdentifier","src":"68752:5:22"}],"functionName":{"name":"iszero","nativeSrc":"68745:6:22","nodeType":"YulIdentifier","src":"68745:6:22"},"nativeSrc":"68745:13:22","nodeType":"YulFunctionCall","src":"68745:13:22"},"nativeSrc":"68742:26:22","nodeType":"YulIf","src":"68742:26:22"},{"body":{"nativeSrc":"68861:129:22","nodeType":"YulBlock","src":"68861:129:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68890:4:22","nodeType":"YulLiteral","src":"68890:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"68896:10:22","nodeType":"YulLiteral","src":"68896:10:22","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"68883:6:22","nodeType":"YulIdentifier","src":"68883:6:22"},"nativeSrc":"68883:24:22","nodeType":"YulFunctionCall","src":"68883:24:22"},"nativeSrc":"68883:24:22","nodeType":"YulExpressionStatement","src":"68883:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68961:4:22","nodeType":"YulLiteral","src":"68961:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"68967:4:22","nodeType":"YulLiteral","src":"68967:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"68954:6:22","nodeType":"YulIdentifier","src":"68954:6:22"},"nativeSrc":"68954:18:22","nodeType":"YulFunctionCall","src":"68954:18:22"},"nativeSrc":"68954:18:22","nodeType":"YulExpressionStatement","src":"68954:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"68800:3:22","nodeType":"YulIdentifier","src":"68800:3:22"},"nativeSrc":"68800:5:22","nodeType":"YulFunctionCall","src":"68800:5:22"},{"name":"instance","nativeSrc":"68807:8:22","nodeType":"YulIdentifier","src":"68807:8:22"},{"name":"value","nativeSrc":"68817:5:22","nodeType":"YulIdentifier","src":"68817:5:22"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"68824:8:22","nodeType":"YulIdentifier","src":"68824:8:22"},"nativeSrc":"68824:10:22","nodeType":"YulFunctionCall","src":"68824:10:22"},{"kind":"number","nativeSrc":"68836:4:22","nodeType":"YulLiteral","src":"68836:4:22","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"68842:8:22","nodeType":"YulIdentifier","src":"68842:8:22"},"nativeSrc":"68842:10:22","nodeType":"YulFunctionCall","src":"68842:10:22"},{"kind":"number","nativeSrc":"68854:4:22","nodeType":"YulLiteral","src":"68854:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"68795:4:22","nodeType":"YulIdentifier","src":"68795:4:22"},"nativeSrc":"68795:64:22","nodeType":"YulFunctionCall","src":"68795:64:22"}],"functionName":{"name":"iszero","nativeSrc":"68788:6:22","nodeType":"YulIdentifier","src":"68788:6:22"},"nativeSrc":"68788:72:22","nodeType":"YulFunctionCall","src":"68788:72:22"},"nativeSrc":"68785:205:22","nodeType":"YulIf","src":"68785:205:22"},{"nativeSrc":"69007:5:22","nodeType":"YulBreak","src":"69007:5:22"}]},"condition":{"kind":"number","nativeSrc":"68341:1:22","nodeType":"YulLiteral","src":"68341:1:22","type":"","value":"1"},"nativeSrc":"68334:692:22","nodeType":"YulForLoop","post":{"nativeSrc":"68343:2:22","nodeType":"YulBlock","src":"68343:2:22","statements":[]},"pre":{"nativeSrc":"68338:2:22","nodeType":"YulBlock","src":"68338:2:22","statements":[]},"src":"68334:692:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69046:4:22","nodeType":"YulLiteral","src":"69046:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"69052:1:22","nodeType":"YulIdentifier","src":"69052:1:22"}],"functionName":{"name":"mstore","nativeSrc":"69039:6:22","nodeType":"YulIdentifier","src":"69039:6:22"},"nativeSrc":"69039:15:22","nodeType":"YulFunctionCall","src":"69039:15:22"},"nativeSrc":"69039:15:22","nodeType":"YulExpressionStatement","src":"69039:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69110:4:22","nodeType":"YulLiteral","src":"69110:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"69116:1:22","nodeType":"YulLiteral","src":"69116:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"69103:6:22","nodeType":"YulIdentifier","src":"69103:6:22"},"nativeSrc":"69103:15:22","nodeType":"YulFunctionCall","src":"69103:15:22"},"nativeSrc":"69103:15:22","nodeType":"YulExpressionStatement","src":"69103:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9823,"isOffset":false,"isSlot":false,"src":"68705:15:22","valueSize":1},{"declaration":9818,"isOffset":false,"isSlot":false,"src":"68021:14:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68291:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68386:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68419:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68494:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68807:8:22","valueSize":1},{"declaration":9820,"isOffset":false,"isSlot":false,"src":"68273:4:22","valueSize":1},{"declaration":9820,"isOffset":false,"isSlot":false,"src":"68458:4:22","valueSize":1},{"declaration":9816,"isOffset":false,"isSlot":false,"src":"68439:5:22","valueSize":1},{"declaration":9816,"isOffset":false,"isSlot":false,"src":"68752:5:22","valueSize":1},{"declaration":9816,"isOffset":false,"isSlot":false,"src":"68817:5:22","valueSize":1}],"id":9827,"nodeType":"InlineAssembly","src":"67606:1548:22"}]},"documentation":{"id":9814,"nodeType":"StructuredDocumentation","src":"67108:272:22","text":"@dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9829,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967I","nameLocation":"67394:27:22","nodeType":"FunctionDefinition","parameters":{"id":9821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9816,"mutability":"mutable","name":"value","nameLocation":"67430:5:22","nodeType":"VariableDeclaration","scope":9829,"src":"67422:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9815,"name":"uint256","nodeType":"ElementaryTypeName","src":"67422:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9818,"mutability":"mutable","name":"implementation","nameLocation":"67445:14:22","nodeType":"VariableDeclaration","scope":9829,"src":"67437:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9817,"name":"address","nodeType":"ElementaryTypeName","src":"67437:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9820,"mutability":"mutable","name":"salt","nameLocation":"67469:4:22","nodeType":"VariableDeclaration","scope":9829,"src":"67461:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67461:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"67421:53:22"},"returnParameters":{"id":9826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9823,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"67514:15:22","nodeType":"VariableDeclaration","scope":9829,"src":"67509:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9822,"name":"bool","nodeType":"ElementaryTypeName","src":"67509:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9825,"mutability":"mutable","name":"instance","nameLocation":"67539:8:22","nodeType":"VariableDeclaration","scope":9829,"src":"67531:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9824,"name":"address","nodeType":"ElementaryTypeName","src":"67531:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67508:40:22"},"scope":10092,"src":"67385:1775:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9838,"nodeType":"Block","src":"69355:778:22","statements":[{"AST":{"nativeSrc":"69417:710:22","nodeType":"YulBlock","src":"69417:710:22","statements":[{"nativeSrc":"69431:21:22","nodeType":"YulAssignment","src":"69431:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"69447:4:22","nodeType":"YulLiteral","src":"69447:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"69441:5:22","nodeType":"YulIdentifier","src":"69441:5:22"},"nativeSrc":"69441:11:22","nodeType":"YulFunctionCall","src":"69441:11:22"},"variableNames":[{"name":"result","nativeSrc":"69431:6:22","nodeType":"YulIdentifier","src":"69431:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69493:6:22","nodeType":"YulIdentifier","src":"69493:6:22"},{"kind":"number","nativeSrc":"69501:4:22","nodeType":"YulLiteral","src":"69501:4:22","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"69489:3:22","nodeType":"YulIdentifier","src":"69489:3:22"},"nativeSrc":"69489:17:22","nodeType":"YulFunctionCall","src":"69489:17:22"},{"kind":"number","nativeSrc":"69524:66:22","nodeType":"YulLiteral","src":"69524:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"69465:6:22","nodeType":"YulIdentifier","src":"69465:6:22"},"nativeSrc":"69465:139:22","nodeType":"YulFunctionCall","src":"69465:139:22"},"nativeSrc":"69465:139:22","nodeType":"YulExpressionStatement","src":"69465:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69645:6:22","nodeType":"YulIdentifier","src":"69645:6:22"},{"kind":"number","nativeSrc":"69653:4:22","nodeType":"YulLiteral","src":"69653:4:22","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"69641:3:22","nodeType":"YulIdentifier","src":"69641:3:22"},"nativeSrc":"69641:17:22","nodeType":"YulFunctionCall","src":"69641:17:22"},{"kind":"number","nativeSrc":"69676:66:22","nodeType":"YulLiteral","src":"69676:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"69617:6:22","nodeType":"YulIdentifier","src":"69617:6:22"},"nativeSrc":"69617:139:22","nodeType":"YulFunctionCall","src":"69617:139:22"},"nativeSrc":"69617:139:22","nodeType":"YulExpressionStatement","src":"69617:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69780:6:22","nodeType":"YulIdentifier","src":"69780:6:22"},{"kind":"number","nativeSrc":"69788:4:22","nodeType":"YulLiteral","src":"69788:4:22","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"69776:3:22","nodeType":"YulIdentifier","src":"69776:3:22"},"nativeSrc":"69776:17:22","nodeType":"YulFunctionCall","src":"69776:17:22"},{"kind":"number","nativeSrc":"69795:48:22","nodeType":"YulLiteral","src":"69795:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"69769:6:22","nodeType":"YulIdentifier","src":"69769:6:22"},"nativeSrc":"69769:75:22","nodeType":"YulFunctionCall","src":"69769:75:22"},"nativeSrc":"69769:75:22","nodeType":"YulExpressionStatement","src":"69769:75:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69868:6:22","nodeType":"YulIdentifier","src":"69868:6:22"},{"kind":"number","nativeSrc":"69876:4:22","nodeType":"YulLiteral","src":"69876:4:22","type":"","value":"0x1d"}],"functionName":{"name":"add","nativeSrc":"69864:3:22","nodeType":"YulIdentifier","src":"69864:3:22"},"nativeSrc":"69864:17:22","nodeType":"YulFunctionCall","src":"69864:17:22"},{"name":"implementation","nativeSrc":"69883:14:22","nodeType":"YulIdentifier","src":"69883:14:22"}],"functionName":{"name":"mstore","nativeSrc":"69857:6:22","nodeType":"YulIdentifier","src":"69857:6:22"},"nativeSrc":"69857:41:22","nodeType":"YulFunctionCall","src":"69857:41:22"},"nativeSrc":"69857:41:22","nodeType":"YulExpressionStatement","src":"69857:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69922:6:22","nodeType":"YulIdentifier","src":"69922:6:22"},{"kind":"number","nativeSrc":"69930:4:22","nodeType":"YulLiteral","src":"69930:4:22","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"69918:3:22","nodeType":"YulIdentifier","src":"69918:3:22"},"nativeSrc":"69918:17:22","nodeType":"YulFunctionCall","src":"69918:17:22"},{"kind":"number","nativeSrc":"69937:20:22","nodeType":"YulLiteral","src":"69937:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"69911:6:22","nodeType":"YulIdentifier","src":"69911:6:22"},"nativeSrc":"69911:47:22","nodeType":"YulFunctionCall","src":"69911:47:22"},"nativeSrc":"69911:47:22","nodeType":"YulExpressionStatement","src":"69911:47:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69982:6:22","nodeType":"YulIdentifier","src":"69982:6:22"},{"kind":"number","nativeSrc":"69990:4:22","nodeType":"YulLiteral","src":"69990:4:22","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"69978:3:22","nodeType":"YulIdentifier","src":"69978:3:22"},"nativeSrc":"69978:17:22","nodeType":"YulFunctionCall","src":"69978:17:22"},{"kind":"number","nativeSrc":"69997:1:22","nodeType":"YulLiteral","src":"69997:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"69971:6:22","nodeType":"YulIdentifier","src":"69971:6:22"},"nativeSrc":"69971:28:22","nodeType":"YulFunctionCall","src":"69971:28:22"},"nativeSrc":"69971:28:22","nodeType":"YulExpressionStatement","src":"69971:28:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"70019:6:22","nodeType":"YulIdentifier","src":"70019:6:22"},{"kind":"number","nativeSrc":"70027:4:22","nodeType":"YulLiteral","src":"70027:4:22","type":"","value":"0x74"}],"functionName":{"name":"mstore","nativeSrc":"70012:6:22","nodeType":"YulIdentifier","src":"70012:6:22"},"nativeSrc":"70012:20:22","nodeType":"YulFunctionCall","src":"70012:20:22"},"nativeSrc":"70012:20:22","nodeType":"YulExpressionStatement","src":"70012:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70073:4:22","nodeType":"YulLiteral","src":"70073:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"70083:6:22","nodeType":"YulIdentifier","src":"70083:6:22"},{"kind":"number","nativeSrc":"70091:4:22","nodeType":"YulLiteral","src":"70091:4:22","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"70079:3:22","nodeType":"YulIdentifier","src":"70079:3:22"},"nativeSrc":"70079:17:22","nodeType":"YulFunctionCall","src":"70079:17:22"}],"functionName":{"name":"mstore","nativeSrc":"70066:6:22","nodeType":"YulIdentifier","src":"70066:6:22"},"nativeSrc":"70066:31:22","nodeType":"YulFunctionCall","src":"70066:31:22"},"nativeSrc":"70066:31:22","nodeType":"YulExpressionStatement","src":"70066:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9832,"isOffset":false,"isSlot":false,"src":"69883:14:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69431:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69493:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69645:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69780:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69868:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69922:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69982:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"70019:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"70083:6:22","valueSize":1}],"id":9837,"nodeType":"InlineAssembly","src":"69408:719:22"}]},"documentation":{"id":9830,"nodeType":"StructuredDocumentation","src":"69166:90:22","text":"@dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`."},"id":9839,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967I","nameLocation":"69270:16:22","nodeType":"FunctionDefinition","parameters":{"id":9833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9832,"mutability":"mutable","name":"implementation","nameLocation":"69295:14:22","nodeType":"VariableDeclaration","scope":9839,"src":"69287:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9831,"name":"address","nodeType":"ElementaryTypeName","src":"69287:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"69286:24:22"},"returnParameters":{"id":9836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9835,"mutability":"mutable","name":"result","nameLocation":"69347:6:22","nodeType":"VariableDeclaration","scope":9839,"src":"69334:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9834,"name":"bytes","nodeType":"ElementaryTypeName","src":"69334:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"69333:21:22"},"scope":10092,"src":"69261:872:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9848,"nodeType":"Block","src":"70391:662:22","statements":[{"AST":{"nativeSrc":"70453:594:22","nodeType":"YulBlock","src":"70453:594:22","statements":[{"nativeSrc":"70467:20:22","nodeType":"YulVariableDeclaration","src":"70467:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"70482:4:22","nodeType":"YulLiteral","src":"70482:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"70476:5:22","nodeType":"YulIdentifier","src":"70476:5:22"},"nativeSrc":"70476:11:22","nodeType":"YulFunctionCall","src":"70476:11:22"},"variables":[{"name":"m","nativeSrc":"70471:1:22","nodeType":"YulTypedName","src":"70471:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70541:4:22","nodeType":"YulLiteral","src":"70541:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"70547:66:22","nodeType":"YulLiteral","src":"70547:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"70534:6:22","nodeType":"YulIdentifier","src":"70534:6:22"},"nativeSrc":"70534:80:22","nodeType":"YulFunctionCall","src":"70534:80:22"},"nativeSrc":"70534:80:22","nodeType":"YulExpressionStatement","src":"70534:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70634:4:22","nodeType":"YulLiteral","src":"70634:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"70640:66:22","nodeType":"YulLiteral","src":"70640:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"70627:6:22","nodeType":"YulIdentifier","src":"70627:6:22"},"nativeSrc":"70627:80:22","nodeType":"YulFunctionCall","src":"70627:80:22"},"nativeSrc":"70627:80:22","nodeType":"YulExpressionStatement","src":"70627:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70727:4:22","nodeType":"YulLiteral","src":"70727:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"70733:48:22","nodeType":"YulLiteral","src":"70733:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"70720:6:22","nodeType":"YulIdentifier","src":"70720:6:22"},"nativeSrc":"70720:62:22","nodeType":"YulFunctionCall","src":"70720:62:22"},"nativeSrc":"70720:62:22","nodeType":"YulExpressionStatement","src":"70720:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70802:4:22","nodeType":"YulLiteral","src":"70802:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"70815:3:22","nodeType":"YulLiteral","src":"70815:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"70820:20:22","nodeType":"YulLiteral","src":"70820:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"70811:3:22","nodeType":"YulIdentifier","src":"70811:3:22"},"nativeSrc":"70811:30:22","nodeType":"YulFunctionCall","src":"70811:30:22"},{"arguments":[{"kind":"number","nativeSrc":"70847:2:22","nodeType":"YulLiteral","src":"70847:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"70855:2:22","nodeType":"YulLiteral","src":"70855:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"70859:14:22","nodeType":"YulIdentifier","src":"70859:14:22"}],"functionName":{"name":"shl","nativeSrc":"70851:3:22","nodeType":"YulIdentifier","src":"70851:3:22"},"nativeSrc":"70851:23:22","nodeType":"YulFunctionCall","src":"70851:23:22"}],"functionName":{"name":"shr","nativeSrc":"70843:3:22","nodeType":"YulIdentifier","src":"70843:3:22"},"nativeSrc":"70843:32:22","nodeType":"YulFunctionCall","src":"70843:32:22"}],"functionName":{"name":"or","nativeSrc":"70808:2:22","nodeType":"YulIdentifier","src":"70808:2:22"},"nativeSrc":"70808:68:22","nodeType":"YulFunctionCall","src":"70808:68:22"}],"functionName":{"name":"mstore","nativeSrc":"70795:6:22","nodeType":"YulIdentifier","src":"70795:6:22"},"nativeSrc":"70795:82:22","nodeType":"YulFunctionCall","src":"70795:82:22"},"nativeSrc":"70795:82:22","nodeType":"YulExpressionStatement","src":"70795:82:22"},{"nativeSrc":"70890:29:22","nodeType":"YulAssignment","src":"70890:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"70908:4:22","nodeType":"YulLiteral","src":"70908:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"70914:4:22","nodeType":"YulLiteral","src":"70914:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"70898:9:22","nodeType":"YulIdentifier","src":"70898:9:22"},"nativeSrc":"70898:21:22","nodeType":"YulFunctionCall","src":"70898:21:22"},"variableNames":[{"name":"hash","nativeSrc":"70890:4:22","nodeType":"YulIdentifier","src":"70890:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70939:4:22","nodeType":"YulLiteral","src":"70939:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"70945:1:22","nodeType":"YulIdentifier","src":"70945:1:22"}],"functionName":{"name":"mstore","nativeSrc":"70932:6:22","nodeType":"YulIdentifier","src":"70932:6:22"},"nativeSrc":"70932:15:22","nodeType":"YulFunctionCall","src":"70932:15:22"},"nativeSrc":"70932:15:22","nodeType":"YulExpressionStatement","src":"70932:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"71003:4:22","nodeType":"YulLiteral","src":"71003:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"71009:1:22","nodeType":"YulLiteral","src":"71009:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"70996:6:22","nodeType":"YulIdentifier","src":"70996:6:22"},"nativeSrc":"70996:15:22","nodeType":"YulFunctionCall","src":"70996:15:22"},"nativeSrc":"70996:15:22","nodeType":"YulExpressionStatement","src":"70996:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9845,"isOffset":false,"isSlot":false,"src":"70890:4:22","valueSize":1},{"declaration":9842,"isOffset":false,"isSlot":false,"src":"70859:14:22","valueSize":1}],"id":9847,"nodeType":"InlineAssembly","src":"70444:603:22"}]},"documentation":{"id":9840,"nodeType":"StructuredDocumentation","src":"70139:156:22","text":"@dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9849,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967I","nameLocation":"70309:20:22","nodeType":"FunctionDefinition","parameters":{"id":9843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9842,"mutability":"mutable","name":"implementation","nameLocation":"70338:14:22","nodeType":"VariableDeclaration","scope":9849,"src":"70330:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9841,"name":"address","nodeType":"ElementaryTypeName","src":"70330:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"70329:24:22"},"returnParameters":{"id":9846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9845,"mutability":"mutable","name":"hash","nameLocation":"70385:4:22","nodeType":"VariableDeclaration","scope":9849,"src":"70377:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70377:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70376:14:22"},"scope":10092,"src":"70300:753:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9875,"nodeType":"Block","src":"71450:139:22","statements":[{"assignments":[9862],"declarations":[{"constant":false,"id":9862,"mutability":"mutable","name":"hash","nameLocation":"71468:4:22","nodeType":"VariableDeclaration","scope":9875,"src":"71460:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71460:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9866,"initialValue":{"arguments":[{"id":9864,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"71496:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9863,"name":"initCodeHashERC1967I","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9849,"src":"71475:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"71475:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"71460:51:22"},{"expression":{"id":9873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9867,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9859,"src":"71521:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9869,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9862,"src":"71561:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9870,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"71567:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9871,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9856,"src":"71573:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9868,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"71533:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"71533:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"71521:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9874,"nodeType":"ExpressionStatement","src":"71521:61:22"}]},"documentation":{"id":9850,"nodeType":"StructuredDocumentation","src":"71059:213:22","text":"@dev Returns the address of the deterministic ERC1967I proxy of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9876,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967I","nameLocation":"71286:35:22","nodeType":"FunctionDefinition","parameters":{"id":9857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9852,"mutability":"mutable","name":"implementation","nameLocation":"71339:14:22","nodeType":"VariableDeclaration","scope":9876,"src":"71331:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9851,"name":"address","nodeType":"ElementaryTypeName","src":"71331:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9854,"mutability":"mutable","name":"salt","nameLocation":"71371:4:22","nodeType":"VariableDeclaration","scope":9876,"src":"71363:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71363:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9856,"mutability":"mutable","name":"deployer","nameLocation":"71393:8:22","nodeType":"VariableDeclaration","scope":9876,"src":"71385:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9855,"name":"address","nodeType":"ElementaryTypeName","src":"71385:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71321:86:22"},"returnParameters":{"id":9860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9859,"mutability":"mutable","name":"predicted","nameLocation":"71439:9:22","nodeType":"VariableDeclaration","scope":9876,"src":"71431:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9858,"name":"address","nodeType":"ElementaryTypeName","src":"71431:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71430:19:22"},"scope":10092,"src":"71277:312:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9888,"nodeType":"Block","src":"72410:534:22","statements":[{"expression":{"id":9885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9882,"name":"bootstrap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"72420:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":9883,"name":"constantERC1967BootstrapAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"72432:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"72432:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"72420:45:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9886,"nodeType":"ExpressionStatement","src":"72420:45:22"},{"AST":{"nativeSrc":"72527:411:22","nodeType":"YulBlock","src":"72527:411:22","statements":[{"body":{"nativeSrc":"72575:353:22","nodeType":"YulBlock","src":"72575:353:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72600:4:22","nodeType":"YulLiteral","src":"72600:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"72606:66:22","nodeType":"YulLiteral","src":"72606:66:22","type":"","value":"0x0894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55"}],"functionName":{"name":"mstore","nativeSrc":"72593:6:22","nodeType":"YulIdentifier","src":"72593:6:22"},"nativeSrc":"72593:80:22","nodeType":"YulFunctionCall","src":"72593:80:22"},"nativeSrc":"72593:80:22","nodeType":"YulExpressionStatement","src":"72593:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72697:4:22","nodeType":"YulLiteral","src":"72697:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"72703:28:22","nodeType":"YulLiteral","src":"72703:28:22","type":"","value":"0x60258060093d393df358357f36"}],"functionName":{"name":"mstore","nativeSrc":"72690:6:22","nodeType":"YulIdentifier","src":"72690:6:22"},"nativeSrc":"72690:42:22","nodeType":"YulFunctionCall","src":"72690:42:22"},"nativeSrc":"72690:42:22","nodeType":"YulExpressionStatement","src":"72690:42:22"},{"body":{"nativeSrc":"72786:128:22","nodeType":"YulBlock","src":"72786:128:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72815:4:22","nodeType":"YulLiteral","src":"72815:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"72821:10:22","nodeType":"YulLiteral","src":"72821:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"72808:6:22","nodeType":"YulIdentifier","src":"72808:6:22"},"nativeSrc":"72808:24:22","nodeType":"YulFunctionCall","src":"72808:24:22"},"nativeSrc":"72808:24:22","nodeType":"YulExpressionStatement","src":"72808:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72885:4:22","nodeType":"YulLiteral","src":"72885:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"72891:4:22","nodeType":"YulLiteral","src":"72891:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"72878:6:22","nodeType":"YulIdentifier","src":"72878:6:22"},"nativeSrc":"72878:18:22","nodeType":"YulFunctionCall","src":"72878:18:22"},"nativeSrc":"72878:18:22","nodeType":"YulExpressionStatement","src":"72878:18:22"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"72767:1:22","nodeType":"YulLiteral","src":"72767:1:22","type":"","value":"0"},{"kind":"number","nativeSrc":"72770:4:22","nodeType":"YulLiteral","src":"72770:4:22","type":"","value":"0x13"},{"kind":"number","nativeSrc":"72776:4:22","nodeType":"YulLiteral","src":"72776:4:22","type":"","value":"0x2e"},{"kind":"number","nativeSrc":"72782:1:22","nodeType":"YulLiteral","src":"72782:1:22","type":"","value":"0"}],"functionName":{"name":"create2","nativeSrc":"72759:7:22","nodeType":"YulIdentifier","src":"72759:7:22"},"nativeSrc":"72759:25:22","nodeType":"YulFunctionCall","src":"72759:25:22"}],"functionName":{"name":"iszero","nativeSrc":"72752:6:22","nodeType":"YulIdentifier","src":"72752:6:22"},"nativeSrc":"72752:33:22","nodeType":"YulFunctionCall","src":"72752:33:22"},"nativeSrc":"72749:165:22","nodeType":"YulIf","src":"72749:165:22"}]},"condition":{"arguments":[{"arguments":[{"name":"bootstrap","nativeSrc":"72563:9:22","nodeType":"YulIdentifier","src":"72563:9:22"}],"functionName":{"name":"extcodesize","nativeSrc":"72551:11:22","nodeType":"YulIdentifier","src":"72551:11:22"},"nativeSrc":"72551:22:22","nodeType":"YulFunctionCall","src":"72551:22:22"}],"functionName":{"name":"iszero","nativeSrc":"72544:6:22","nodeType":"YulIdentifier","src":"72544:6:22"},"nativeSrc":"72544:30:22","nodeType":"YulFunctionCall","src":"72544:30:22"},"nativeSrc":"72541:387:22","nodeType":"YulIf","src":"72541:387:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9880,"isOffset":false,"isSlot":false,"src":"72563:9:22","valueSize":1}],"id":9887,"nodeType":"InlineAssembly","src":"72518:420:22"}]},"documentation":{"id":9877,"nodeType":"StructuredDocumentation","src":"72256:76:22","text":"@dev Deploys the constant ERC1967 bootstrap if it has not been deployed."},"id":9889,"implemented":true,"kind":"function","modifiers":[],"name":"constantERC1967Bootstrap","nameLocation":"72346:24:22","nodeType":"FunctionDefinition","parameters":{"id":9878,"nodeType":"ParameterList","parameters":[],"src":"72370:2:22"},"returnParameters":{"id":9881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9880,"mutability":"mutable","name":"bootstrap","nameLocation":"72399:9:22","nodeType":"VariableDeclaration","scope":9889,"src":"72391:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9879,"name":"address","nodeType":"ElementaryTypeName","src":"72391:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"72390:19:22"},"scope":10092,"src":"72337:607:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9913,"nodeType":"Block","src":"73127:180:22","statements":[{"assignments":[9896],"declarations":[{"constant":false,"id":9896,"mutability":"mutable","name":"hash","nameLocation":"73145:4:22","nodeType":"VariableDeclaration","scope":9913,"src":"73137:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73137:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9898,"initialValue":{"hexValue":"307866653161343262396335373161366138633038336339346163363762396366643734653235383239323334323661613362373632653334333164373137636431","id":9897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73152:66:22","typeDescriptions":{"typeIdentifier":"t_rational_114933862087476197012910812439233746999477611380613810828400768283705108167889_by_1","typeString":"int_const 1149...(70 digits omitted)...7889"},"value":"0xfe1a42b9c571a6a8c083c94ac67b9cfd74e2582923426aa3b762e3431d717cd1"},"nodeType":"VariableDeclarationStatement","src":"73137:81:22"},{"expression":{"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9899,"name":"bootstrap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9893,"src":"73228:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9901,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"73268:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":9904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73282:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"73274:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73274:7:22","typeDescriptions":{}}},"id":9905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73274:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":9908,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"73294:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_LibClone_$10092","typeString":"library LibClone"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibClone_$10092","typeString":"library LibClone"}],"id":9907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"73286:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9906,"name":"address","nodeType":"ElementaryTypeName","src":"73286:7:22","typeDescriptions":{}}},"id":9909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73286:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9900,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"73240:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73240:60:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"73228:72:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9912,"nodeType":"ExpressionStatement","src":"73228:72:22"}]},"documentation":{"id":9890,"nodeType":"StructuredDocumentation","src":"72950:87:22","text":"@dev Returns the implementation address of the ERC1967 bootstrap for this contract."},"id":9914,"implemented":true,"kind":"function","modifiers":[],"name":"constantERC1967BootstrapAddress","nameLocation":"73051:31:22","nodeType":"FunctionDefinition","parameters":{"id":9891,"nodeType":"ParameterList","parameters":[],"src":"73082:2:22"},"returnParameters":{"id":9894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9893,"mutability":"mutable","name":"bootstrap","nameLocation":"73116:9:22","nodeType":"VariableDeclaration","scope":9914,"src":"73108:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9892,"name":"address","nodeType":"ElementaryTypeName","src":"73108:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"73107:19:22"},"scope":10092,"src":"73042:265:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9923,"nodeType":"Block","src":"73446:333:22","statements":[{"AST":{"nativeSrc":"73508:265:22","nodeType":"YulBlock","src":"73508:265:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73529:4:22","nodeType":"YulLiteral","src":"73529:4:22","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"73539:2:22","nodeType":"YulLiteral","src":"73539:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"73547:2:22","nodeType":"YulLiteral","src":"73547:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"73551:14:22","nodeType":"YulIdentifier","src":"73551:14:22"}],"functionName":{"name":"shl","nativeSrc":"73543:3:22","nodeType":"YulIdentifier","src":"73543:3:22"},"nativeSrc":"73543:23:22","nodeType":"YulFunctionCall","src":"73543:23:22"}],"functionName":{"name":"shr","nativeSrc":"73535:3:22","nodeType":"YulIdentifier","src":"73535:3:22"},"nativeSrc":"73535:32:22","nodeType":"YulFunctionCall","src":"73535:32:22"}],"functionName":{"name":"mstore","nativeSrc":"73522:6:22","nodeType":"YulIdentifier","src":"73522:6:22"},"nativeSrc":"73522:46:22","nodeType":"YulFunctionCall","src":"73522:46:22"},"nativeSrc":"73522:46:22","nodeType":"YulExpressionStatement","src":"73522:46:22"},{"body":{"nativeSrc":"73647:116:22","nodeType":"YulBlock","src":"73647:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73672:4:22","nodeType":"YulLiteral","src":"73672:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"73678:10:22","nodeType":"YulLiteral","src":"73678:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"73665:6:22","nodeType":"YulIdentifier","src":"73665:6:22"},"nativeSrc":"73665:24:22","nodeType":"YulFunctionCall","src":"73665:24:22"},"nativeSrc":"73665:24:22","nodeType":"YulExpressionStatement","src":"73665:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73738:4:22","nodeType":"YulLiteral","src":"73738:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"73744:4:22","nodeType":"YulLiteral","src":"73744:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"73731:6:22","nodeType":"YulIdentifier","src":"73731:6:22"},"nativeSrc":"73731:18:22","nodeType":"YulFunctionCall","src":"73731:18:22"},"nativeSrc":"73731:18:22","nodeType":"YulExpressionStatement","src":"73731:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"73596:3:22","nodeType":"YulIdentifier","src":"73596:3:22"},"nativeSrc":"73596:5:22","nodeType":"YulFunctionCall","src":"73596:5:22"},{"name":"instance","nativeSrc":"73603:8:22","nodeType":"YulIdentifier","src":"73603:8:22"},{"kind":"number","nativeSrc":"73613:1:22","nodeType":"YulLiteral","src":"73613:1:22","type":"","value":"0"},{"kind":"number","nativeSrc":"73616:4:22","nodeType":"YulLiteral","src":"73616:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"73622:4:22","nodeType":"YulLiteral","src":"73622:4:22","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"73628:8:22","nodeType":"YulIdentifier","src":"73628:8:22"},"nativeSrc":"73628:10:22","nodeType":"YulFunctionCall","src":"73628:10:22"},{"kind":"number","nativeSrc":"73640:4:22","nodeType":"YulLiteral","src":"73640:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"73591:4:22","nodeType":"YulIdentifier","src":"73591:4:22"},"nativeSrc":"73591:54:22","nodeType":"YulFunctionCall","src":"73591:54:22"}],"functionName":{"name":"iszero","nativeSrc":"73584:6:22","nodeType":"YulIdentifier","src":"73584:6:22"},"nativeSrc":"73584:62:22","nodeType":"YulFunctionCall","src":"73584:62:22"},"nativeSrc":"73581:182:22","nodeType":"YulIf","src":"73581:182:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9919,"isOffset":false,"isSlot":false,"src":"73551:14:22","valueSize":1},{"declaration":9917,"isOffset":false,"isSlot":false,"src":"73603:8:22","valueSize":1}],"id":9922,"nodeType":"InlineAssembly","src":"73499:274:22"}]},"documentation":{"id":9915,"nodeType":"StructuredDocumentation","src":"73313:51:22","text":"@dev Replaces the implementation at `instance`."},"id":9924,"implemented":true,"kind":"function","modifiers":[],"name":"bootstrapERC1967","nameLocation":"73378:16:22","nodeType":"FunctionDefinition","parameters":{"id":9920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9917,"mutability":"mutable","name":"instance","nameLocation":"73403:8:22","nodeType":"VariableDeclaration","scope":9924,"src":"73395:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9916,"name":"address","nodeType":"ElementaryTypeName","src":"73395:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9919,"mutability":"mutable","name":"implementation","nameLocation":"73421:14:22","nodeType":"VariableDeclaration","scope":9924,"src":"73413:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9918,"name":"address","nodeType":"ElementaryTypeName","src":"73413:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"73394:42:22"},"returnParameters":{"id":9921,"nodeType":"ParameterList","parameters":[],"src":"73446:0:22"},"scope":10092,"src":"73369:410:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9939,"nodeType":"Block","src":"74582:63:22","statements":[{"expression":{"id":9937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9932,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9930,"src":"74592:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"74628:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9935,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9927,"src":"74631:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9933,"name":"deployERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[9940,9952],"referencedDeclaration":9952,"src":"74603:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"74603:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"74592:46:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9938,"nodeType":"ExpressionStatement","src":"74592:46:22"}]},"documentation":{"id":9925,"nodeType":"StructuredDocumentation","src":"74443:48:22","text":"@dev Deploys a minimal ERC1967 beacon proxy."},"id":9940,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967BeaconProxy","nameLocation":"74505:24:22","nodeType":"FunctionDefinition","parameters":{"id":9928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9927,"mutability":"mutable","name":"beacon","nameLocation":"74538:6:22","nodeType":"VariableDeclaration","scope":9940,"src":"74530:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9926,"name":"address","nodeType":"ElementaryTypeName","src":"74530:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74529:16:22"},"returnParameters":{"id":9931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9930,"mutability":"mutable","name":"instance","nameLocation":"74572:8:22","nodeType":"VariableDeclaration","scope":9940,"src":"74564:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9929,"name":"address","nodeType":"ElementaryTypeName","src":"74564:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74563:18:22"},"scope":10092,"src":"74496:149:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9951,"nodeType":"Block","src":"74873:8291:22","statements":[{"AST":{"nativeSrc":"74935:8223:22","nodeType":"YulBlock","src":"74935:8223:22","statements":[{"nativeSrc":"82429:20:22","nodeType":"YulVariableDeclaration","src":"82429:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"82444:4:22","nodeType":"YulLiteral","src":"82444:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"82438:5:22","nodeType":"YulIdentifier","src":"82438:5:22"},"nativeSrc":"82438:11:22","nodeType":"YulFunctionCall","src":"82438:11:22"},"variables":[{"name":"m","nativeSrc":"82433:1:22","nodeType":"YulTypedName","src":"82433:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82503:4:22","nodeType":"YulLiteral","src":"82503:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"82509:66:22","nodeType":"YulLiteral","src":"82509:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"82496:6:22","nodeType":"YulIdentifier","src":"82496:6:22"},"nativeSrc":"82496:80:22","nodeType":"YulFunctionCall","src":"82496:80:22"},"nativeSrc":"82496:80:22","nodeType":"YulExpressionStatement","src":"82496:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82596:4:22","nodeType":"YulLiteral","src":"82596:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"82602:66:22","nodeType":"YulLiteral","src":"82602:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"82589:6:22","nodeType":"YulIdentifier","src":"82589:6:22"},"nativeSrc":"82589:80:22","nodeType":"YulFunctionCall","src":"82589:80:22"},"nativeSrc":"82589:80:22","nodeType":"YulExpressionStatement","src":"82589:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82689:4:22","nodeType":"YulLiteral","src":"82689:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"82695:48:22","nodeType":"YulLiteral","src":"82695:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"82682:6:22","nodeType":"YulIdentifier","src":"82682:6:22"},"nativeSrc":"82682:62:22","nodeType":"YulFunctionCall","src":"82682:62:22"},"nativeSrc":"82682:62:22","nodeType":"YulExpressionStatement","src":"82682:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82764:4:22","nodeType":"YulLiteral","src":"82764:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"82777:3:22","nodeType":"YulLiteral","src":"82777:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"82782:20:22","nodeType":"YulLiteral","src":"82782:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"82773:3:22","nodeType":"YulIdentifier","src":"82773:3:22"},"nativeSrc":"82773:30:22","nodeType":"YulFunctionCall","src":"82773:30:22"},{"arguments":[{"kind":"number","nativeSrc":"82809:2:22","nodeType":"YulLiteral","src":"82809:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"82817:2:22","nodeType":"YulLiteral","src":"82817:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"82821:6:22","nodeType":"YulIdentifier","src":"82821:6:22"}],"functionName":{"name":"shl","nativeSrc":"82813:3:22","nodeType":"YulIdentifier","src":"82813:3:22"},"nativeSrc":"82813:15:22","nodeType":"YulFunctionCall","src":"82813:15:22"}],"functionName":{"name":"shr","nativeSrc":"82805:3:22","nodeType":"YulIdentifier","src":"82805:3:22"},"nativeSrc":"82805:24:22","nodeType":"YulFunctionCall","src":"82805:24:22"}],"functionName":{"name":"or","nativeSrc":"82770:2:22","nodeType":"YulIdentifier","src":"82770:2:22"},"nativeSrc":"82770:60:22","nodeType":"YulFunctionCall","src":"82770:60:22"}],"functionName":{"name":"mstore","nativeSrc":"82757:6:22","nodeType":"YulIdentifier","src":"82757:6:22"},"nativeSrc":"82757:74:22","nodeType":"YulFunctionCall","src":"82757:74:22"},"nativeSrc":"82757:74:22","nodeType":"YulExpressionStatement","src":"82757:74:22"},{"nativeSrc":"82844:37:22","nodeType":"YulAssignment","src":"82844:37:22","value":{"arguments":[{"name":"value","nativeSrc":"82863:5:22","nodeType":"YulIdentifier","src":"82863:5:22"},{"kind":"number","nativeSrc":"82870:4:22","nodeType":"YulLiteral","src":"82870:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"82876:4:22","nodeType":"YulLiteral","src":"82876:4:22","type":"","value":"0x74"}],"functionName":{"name":"create","nativeSrc":"82856:6:22","nodeType":"YulIdentifier","src":"82856:6:22"},"nativeSrc":"82856:25:22","nodeType":"YulFunctionCall","src":"82856:25:22"},"variableNames":[{"name":"instance","nativeSrc":"82844:8:22","nodeType":"YulIdentifier","src":"82844:8:22"}]},{"body":{"nativeSrc":"82914:116:22","nodeType":"YulBlock","src":"82914:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"82939:4:22","nodeType":"YulLiteral","src":"82939:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"82945:10:22","nodeType":"YulLiteral","src":"82945:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"82932:6:22","nodeType":"YulIdentifier","src":"82932:6:22"},"nativeSrc":"82932:24:22","nodeType":"YulFunctionCall","src":"82932:24:22"},"nativeSrc":"82932:24:22","nodeType":"YulExpressionStatement","src":"82932:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83005:4:22","nodeType":"YulLiteral","src":"83005:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"83011:4:22","nodeType":"YulLiteral","src":"83011:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"82998:6:22","nodeType":"YulIdentifier","src":"82998:6:22"},"nativeSrc":"82998:18:22","nodeType":"YulFunctionCall","src":"82998:18:22"},"nativeSrc":"82998:18:22","nodeType":"YulExpressionStatement","src":"82998:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"82904:8:22","nodeType":"YulIdentifier","src":"82904:8:22"}],"functionName":{"name":"iszero","nativeSrc":"82897:6:22","nodeType":"YulIdentifier","src":"82897:6:22"},"nativeSrc":"82897:16:22","nodeType":"YulFunctionCall","src":"82897:16:22"},"nativeSrc":"82894:136:22","nodeType":"YulIf","src":"82894:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83050:4:22","nodeType":"YulLiteral","src":"83050:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"83056:1:22","nodeType":"YulIdentifier","src":"83056:1:22"}],"functionName":{"name":"mstore","nativeSrc":"83043:6:22","nodeType":"YulIdentifier","src":"83043:6:22"},"nativeSrc":"83043:15:22","nodeType":"YulFunctionCall","src":"83043:15:22"},"nativeSrc":"83043:15:22","nodeType":"YulExpressionStatement","src":"83043:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83114:4:22","nodeType":"YulLiteral","src":"83114:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"83120:1:22","nodeType":"YulLiteral","src":"83120:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"83107:6:22","nodeType":"YulIdentifier","src":"83107:6:22"},"nativeSrc":"83107:15:22","nodeType":"YulFunctionCall","src":"83107:15:22"},"nativeSrc":"83107:15:22","nodeType":"YulExpressionStatement","src":"83107:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9945,"isOffset":false,"isSlot":false,"src":"82821:6:22","valueSize":1},{"declaration":9948,"isOffset":false,"isSlot":false,"src":"82844:8:22","valueSize":1},{"declaration":9948,"isOffset":false,"isSlot":false,"src":"82904:8:22","valueSize":1},{"declaration":9943,"isOffset":false,"isSlot":false,"src":"82863:5:22","valueSize":1}],"id":9950,"nodeType":"InlineAssembly","src":"74926:8232:22"}]},"documentation":{"id":9941,"nodeType":"StructuredDocumentation","src":"74651:96:22","text":"@dev Deploys a minimal ERC1967 beacon proxy.\n Deposits `value` ETH during deployment."},"id":9952,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967BeaconProxy","nameLocation":"74761:24:22","nodeType":"FunctionDefinition","parameters":{"id":9946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9943,"mutability":"mutable","name":"value","nameLocation":"74794:5:22","nodeType":"VariableDeclaration","scope":9952,"src":"74786:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9942,"name":"uint256","nodeType":"ElementaryTypeName","src":"74786:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9945,"mutability":"mutable","name":"beacon","nameLocation":"74809:6:22","nodeType":"VariableDeclaration","scope":9952,"src":"74801:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9944,"name":"address","nodeType":"ElementaryTypeName","src":"74801:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74785:31:22"},"returnParameters":{"id":9949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9948,"mutability":"mutable","name":"instance","nameLocation":"74859:8:22","nodeType":"VariableDeclaration","scope":9952,"src":"74851:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9947,"name":"address","nodeType":"ElementaryTypeName","src":"74851:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74850:18:22"},"scope":10092,"src":"74752:8412:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9970,"nodeType":"Block","src":"83382:82:22","statements":[{"expression":{"id":9968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9962,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9960,"src":"83392:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"83441:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9965,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9955,"src":"83444:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9966,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9957,"src":"83452:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9963,"name":"deployDeterministicERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[9971,9985],"referencedDeclaration":9985,"src":"83403:37:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"83403:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"83392:65:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9969,"nodeType":"ExpressionStatement","src":"83392:65:22"}]},"documentation":{"id":9953,"nodeType":"StructuredDocumentation","src":"83170:74:22","text":"@dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`."},"id":9971,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967BeaconProxy","nameLocation":"83258:37:22","nodeType":"FunctionDefinition","parameters":{"id":9958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9955,"mutability":"mutable","name":"beacon","nameLocation":"83304:6:22","nodeType":"VariableDeclaration","scope":9971,"src":"83296:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9954,"name":"address","nodeType":"ElementaryTypeName","src":"83296:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9957,"mutability":"mutable","name":"salt","nameLocation":"83320:4:22","nodeType":"VariableDeclaration","scope":9971,"src":"83312:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9956,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83312:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"83295:30:22"},"returnParameters":{"id":9961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9960,"mutability":"mutable","name":"instance","nameLocation":"83368:8:22","nodeType":"VariableDeclaration","scope":9971,"src":"83360:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9959,"name":"address","nodeType":"ElementaryTypeName","src":"83360:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83359:18:22"},"scope":10092,"src":"83249:215:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9984,"nodeType":"Block","src":"83745:818:22","statements":[{"AST":{"nativeSrc":"83807:750:22","nodeType":"YulBlock","src":"83807:750:22","statements":[{"nativeSrc":"83821:20:22","nodeType":"YulVariableDeclaration","src":"83821:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"83836:4:22","nodeType":"YulLiteral","src":"83836:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"83830:5:22","nodeType":"YulIdentifier","src":"83830:5:22"},"nativeSrc":"83830:11:22","nodeType":"YulFunctionCall","src":"83830:11:22"},"variables":[{"name":"m","nativeSrc":"83825:1:22","nodeType":"YulTypedName","src":"83825:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83895:4:22","nodeType":"YulLiteral","src":"83895:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"83901:66:22","nodeType":"YulLiteral","src":"83901:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"83888:6:22","nodeType":"YulIdentifier","src":"83888:6:22"},"nativeSrc":"83888:80:22","nodeType":"YulFunctionCall","src":"83888:80:22"},"nativeSrc":"83888:80:22","nodeType":"YulExpressionStatement","src":"83888:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83988:4:22","nodeType":"YulLiteral","src":"83988:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"83994:66:22","nodeType":"YulLiteral","src":"83994:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"83981:6:22","nodeType":"YulIdentifier","src":"83981:6:22"},"nativeSrc":"83981:80:22","nodeType":"YulFunctionCall","src":"83981:80:22"},"nativeSrc":"83981:80:22","nodeType":"YulExpressionStatement","src":"83981:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84081:4:22","nodeType":"YulLiteral","src":"84081:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"84087:48:22","nodeType":"YulLiteral","src":"84087:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"84074:6:22","nodeType":"YulIdentifier","src":"84074:6:22"},"nativeSrc":"84074:62:22","nodeType":"YulFunctionCall","src":"84074:62:22"},"nativeSrc":"84074:62:22","nodeType":"YulExpressionStatement","src":"84074:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84156:4:22","nodeType":"YulLiteral","src":"84156:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"84169:3:22","nodeType":"YulLiteral","src":"84169:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"84174:20:22","nodeType":"YulLiteral","src":"84174:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"84165:3:22","nodeType":"YulIdentifier","src":"84165:3:22"},"nativeSrc":"84165:30:22","nodeType":"YulFunctionCall","src":"84165:30:22"},{"arguments":[{"kind":"number","nativeSrc":"84201:2:22","nodeType":"YulLiteral","src":"84201:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"84209:2:22","nodeType":"YulLiteral","src":"84209:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"84213:6:22","nodeType":"YulIdentifier","src":"84213:6:22"}],"functionName":{"name":"shl","nativeSrc":"84205:3:22","nodeType":"YulIdentifier","src":"84205:3:22"},"nativeSrc":"84205:15:22","nodeType":"YulFunctionCall","src":"84205:15:22"}],"functionName":{"name":"shr","nativeSrc":"84197:3:22","nodeType":"YulIdentifier","src":"84197:3:22"},"nativeSrc":"84197:24:22","nodeType":"YulFunctionCall","src":"84197:24:22"}],"functionName":{"name":"or","nativeSrc":"84162:2:22","nodeType":"YulIdentifier","src":"84162:2:22"},"nativeSrc":"84162:60:22","nodeType":"YulFunctionCall","src":"84162:60:22"}],"functionName":{"name":"mstore","nativeSrc":"84149:6:22","nodeType":"YulIdentifier","src":"84149:6:22"},"nativeSrc":"84149:74:22","nodeType":"YulFunctionCall","src":"84149:74:22"},"nativeSrc":"84149:74:22","nodeType":"YulExpressionStatement","src":"84149:74:22"},{"nativeSrc":"84236:44:22","nodeType":"YulAssignment","src":"84236:44:22","value":{"arguments":[{"name":"value","nativeSrc":"84256:5:22","nodeType":"YulIdentifier","src":"84256:5:22"},{"kind":"number","nativeSrc":"84263:4:22","nodeType":"YulLiteral","src":"84263:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"84269:4:22","nodeType":"YulLiteral","src":"84269:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"84275:4:22","nodeType":"YulIdentifier","src":"84275:4:22"}],"functionName":{"name":"create2","nativeSrc":"84248:7:22","nodeType":"YulIdentifier","src":"84248:7:22"},"nativeSrc":"84248:32:22","nodeType":"YulFunctionCall","src":"84248:32:22"},"variableNames":[{"name":"instance","nativeSrc":"84236:8:22","nodeType":"YulIdentifier","src":"84236:8:22"}]},{"body":{"nativeSrc":"84313:116:22","nodeType":"YulBlock","src":"84313:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"84338:4:22","nodeType":"YulLiteral","src":"84338:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"84344:10:22","nodeType":"YulLiteral","src":"84344:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"84331:6:22","nodeType":"YulIdentifier","src":"84331:6:22"},"nativeSrc":"84331:24:22","nodeType":"YulFunctionCall","src":"84331:24:22"},"nativeSrc":"84331:24:22","nodeType":"YulExpressionStatement","src":"84331:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84404:4:22","nodeType":"YulLiteral","src":"84404:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"84410:4:22","nodeType":"YulLiteral","src":"84410:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"84397:6:22","nodeType":"YulIdentifier","src":"84397:6:22"},"nativeSrc":"84397:18:22","nodeType":"YulFunctionCall","src":"84397:18:22"},"nativeSrc":"84397:18:22","nodeType":"YulExpressionStatement","src":"84397:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"84303:8:22","nodeType":"YulIdentifier","src":"84303:8:22"}],"functionName":{"name":"iszero","nativeSrc":"84296:6:22","nodeType":"YulIdentifier","src":"84296:6:22"},"nativeSrc":"84296:16:22","nodeType":"YulFunctionCall","src":"84296:16:22"},"nativeSrc":"84293:136:22","nodeType":"YulIf","src":"84293:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84449:4:22","nodeType":"YulLiteral","src":"84449:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"84455:1:22","nodeType":"YulIdentifier","src":"84455:1:22"}],"functionName":{"name":"mstore","nativeSrc":"84442:6:22","nodeType":"YulIdentifier","src":"84442:6:22"},"nativeSrc":"84442:15:22","nodeType":"YulFunctionCall","src":"84442:15:22"},"nativeSrc":"84442:15:22","nodeType":"YulExpressionStatement","src":"84442:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84513:4:22","nodeType":"YulLiteral","src":"84513:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"84519:1:22","nodeType":"YulLiteral","src":"84519:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"84506:6:22","nodeType":"YulIdentifier","src":"84506:6:22"},"nativeSrc":"84506:15:22","nodeType":"YulFunctionCall","src":"84506:15:22"},"nativeSrc":"84506:15:22","nodeType":"YulExpressionStatement","src":"84506:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9976,"isOffset":false,"isSlot":false,"src":"84213:6:22","valueSize":1},{"declaration":9981,"isOffset":false,"isSlot":false,"src":"84236:8:22","valueSize":1},{"declaration":9981,"isOffset":false,"isSlot":false,"src":"84303:8:22","valueSize":1},{"declaration":9978,"isOffset":false,"isSlot":false,"src":"84275:4:22","valueSize":1},{"declaration":9974,"isOffset":false,"isSlot":false,"src":"84256:5:22","valueSize":1}],"id":9983,"nodeType":"InlineAssembly","src":"83798:759:22"}]},"documentation":{"id":9972,"nodeType":"StructuredDocumentation","src":"83470:122:22","text":"@dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n Deposits `value` ETH during deployment."},"id":9985,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967BeaconProxy","nameLocation":"83606:37:22","nodeType":"FunctionDefinition","parameters":{"id":9979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9974,"mutability":"mutable","name":"value","nameLocation":"83652:5:22","nodeType":"VariableDeclaration","scope":9985,"src":"83644:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9973,"name":"uint256","nodeType":"ElementaryTypeName","src":"83644:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9976,"mutability":"mutable","name":"beacon","nameLocation":"83667:6:22","nodeType":"VariableDeclaration","scope":9985,"src":"83659:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9975,"name":"address","nodeType":"ElementaryTypeName","src":"83659:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9978,"mutability":"mutable","name":"salt","nameLocation":"83683:4:22","nodeType":"VariableDeclaration","scope":9985,"src":"83675:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83675:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"83643:45:22"},"returnParameters":{"id":9982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9981,"mutability":"mutable","name":"instance","nameLocation":"83731:8:22","nodeType":"VariableDeclaration","scope":9985,"src":"83723:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9980,"name":"address","nodeType":"ElementaryTypeName","src":"83723:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83722:18:22"},"scope":10092,"src":"83597:966:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10003,"nodeType":"Block","src":"84946:78:22","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"85001:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9999,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"85004:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10000,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9990,"src":"85012:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9997,"name":"createDeterministicERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[10004,10020],"referencedDeclaration":10020,"src":"84963:37:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":10001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"84963:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9996,"id":10002,"nodeType":"Return","src":"84956:61:22"}]},"documentation":{"id":9986,"nodeType":"StructuredDocumentation","src":"84569:217:22","text":"@dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":10004,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967BeaconProxy","nameLocation":"84800:37:22","nodeType":"FunctionDefinition","parameters":{"id":9991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9988,"mutability":"mutable","name":"beacon","nameLocation":"84846:6:22","nodeType":"VariableDeclaration","scope":10004,"src":"84838:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9987,"name":"address","nodeType":"ElementaryTypeName","src":"84838:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9990,"mutability":"mutable","name":"salt","nameLocation":"84862:4:22","nodeType":"VariableDeclaration","scope":10004,"src":"84854:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84854:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"84837:30:22"},"returnParameters":{"id":9996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9993,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"84907:15:22","nodeType":"VariableDeclaration","scope":10004,"src":"84902:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9992,"name":"bool","nodeType":"ElementaryTypeName","src":"84902:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9995,"mutability":"mutable","name":"instance","nameLocation":"84932:8:22","nodeType":"VariableDeclaration","scope":10004,"src":"84924:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9994,"name":"address","nodeType":"ElementaryTypeName","src":"84924:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"84901:40:22"},"scope":10092,"src":"84791:233:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10019,"nodeType":"Block","src":"85470:1599:22","statements":[{"AST":{"nativeSrc":"85532:1531:22","nodeType":"YulBlock","src":"85532:1531:22","statements":[{"nativeSrc":"85546:20:22","nodeType":"YulVariableDeclaration","src":"85546:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"85561:4:22","nodeType":"YulLiteral","src":"85561:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"85555:5:22","nodeType":"YulIdentifier","src":"85555:5:22"},"nativeSrc":"85555:11:22","nodeType":"YulFunctionCall","src":"85555:11:22"},"variables":[{"name":"m","nativeSrc":"85550:1:22","nodeType":"YulTypedName","src":"85550:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85620:4:22","nodeType":"YulLiteral","src":"85620:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"85626:66:22","nodeType":"YulLiteral","src":"85626:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"85613:6:22","nodeType":"YulIdentifier","src":"85613:6:22"},"nativeSrc":"85613:80:22","nodeType":"YulFunctionCall","src":"85613:80:22"},"nativeSrc":"85613:80:22","nodeType":"YulExpressionStatement","src":"85613:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85713:4:22","nodeType":"YulLiteral","src":"85713:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"85719:66:22","nodeType":"YulLiteral","src":"85719:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"85706:6:22","nodeType":"YulIdentifier","src":"85706:6:22"},"nativeSrc":"85706:80:22","nodeType":"YulFunctionCall","src":"85706:80:22"},"nativeSrc":"85706:80:22","nodeType":"YulExpressionStatement","src":"85706:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85806:4:22","nodeType":"YulLiteral","src":"85806:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"85812:48:22","nodeType":"YulLiteral","src":"85812:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"85799:6:22","nodeType":"YulIdentifier","src":"85799:6:22"},"nativeSrc":"85799:62:22","nodeType":"YulFunctionCall","src":"85799:62:22"},"nativeSrc":"85799:62:22","nodeType":"YulExpressionStatement","src":"85799:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85881:4:22","nodeType":"YulLiteral","src":"85881:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"85894:3:22","nodeType":"YulLiteral","src":"85894:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"85899:20:22","nodeType":"YulLiteral","src":"85899:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"85890:3:22","nodeType":"YulIdentifier","src":"85890:3:22"},"nativeSrc":"85890:30:22","nodeType":"YulFunctionCall","src":"85890:30:22"},{"arguments":[{"kind":"number","nativeSrc":"85926:2:22","nodeType":"YulLiteral","src":"85926:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"85934:2:22","nodeType":"YulLiteral","src":"85934:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"85938:6:22","nodeType":"YulIdentifier","src":"85938:6:22"}],"functionName":{"name":"shl","nativeSrc":"85930:3:22","nodeType":"YulIdentifier","src":"85930:3:22"},"nativeSrc":"85930:15:22","nodeType":"YulFunctionCall","src":"85930:15:22"}],"functionName":{"name":"shr","nativeSrc":"85922:3:22","nodeType":"YulIdentifier","src":"85922:3:22"},"nativeSrc":"85922:24:22","nodeType":"YulFunctionCall","src":"85922:24:22"}],"functionName":{"name":"or","nativeSrc":"85887:2:22","nodeType":"YulIdentifier","src":"85887:2:22"},"nativeSrc":"85887:60:22","nodeType":"YulFunctionCall","src":"85887:60:22"}],"functionName":{"name":"mstore","nativeSrc":"85874:6:22","nodeType":"YulIdentifier","src":"85874:6:22"},"nativeSrc":"85874:74:22","nodeType":"YulFunctionCall","src":"85874:74:22"},"nativeSrc":"85874:74:22","nodeType":"YulExpressionStatement","src":"85874:74:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"86024:1:22","nodeType":"YulIdentifier","src":"86024:1:22"},{"kind":"number","nativeSrc":"86027:4:22","nodeType":"YulLiteral","src":"86027:4:22","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"86020:3:22","nodeType":"YulIdentifier","src":"86020:3:22"},"nativeSrc":"86020:12:22","nodeType":"YulFunctionCall","src":"86020:12:22"},{"arguments":[{"kind":"number","nativeSrc":"86044:4:22","nodeType":"YulLiteral","src":"86044:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"86050:4:22","nodeType":"YulLiteral","src":"86050:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"86034:9:22","nodeType":"YulIdentifier","src":"86034:9:22"},"nativeSrc":"86034:21:22","nodeType":"YulFunctionCall","src":"86034:21:22"}],"functionName":{"name":"mstore","nativeSrc":"86013:6:22","nodeType":"YulIdentifier","src":"86013:6:22"},"nativeSrc":"86013:43:22","nodeType":"YulFunctionCall","src":"86013:43:22"},"nativeSrc":"86013:43:22","nodeType":"YulExpressionStatement","src":"86013:43:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"86076:1:22","nodeType":"YulIdentifier","src":"86076:1:22"},{"arguments":[{"kind":"number","nativeSrc":"86083:2:22","nodeType":"YulLiteral","src":"86083:2:22","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"86087:7:22","nodeType":"YulIdentifier","src":"86087:7:22"},"nativeSrc":"86087:9:22","nodeType":"YulFunctionCall","src":"86087:9:22"}],"functionName":{"name":"shl","nativeSrc":"86079:3:22","nodeType":"YulIdentifier","src":"86079:3:22"},"nativeSrc":"86079:18:22","nodeType":"YulFunctionCall","src":"86079:18:22"}],"functionName":{"name":"mstore","nativeSrc":"86069:6:22","nodeType":"YulIdentifier","src":"86069:6:22"},"nativeSrc":"86069:29:22","nodeType":"YulFunctionCall","src":"86069:29:22"},"nativeSrc":"86069:29:22","nodeType":"YulExpressionStatement","src":"86069:29:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"86119:1:22","nodeType":"YulIdentifier","src":"86119:1:22"},{"kind":"number","nativeSrc":"86122:4:22","nodeType":"YulLiteral","src":"86122:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"86111:7:22","nodeType":"YulIdentifier","src":"86111:7:22"},"nativeSrc":"86111:16:22","nodeType":"YulFunctionCall","src":"86111:16:22"},"nativeSrc":"86111:16:22","nodeType":"YulExpressionStatement","src":"86111:16:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"86172:1:22","nodeType":"YulIdentifier","src":"86172:1:22"},{"kind":"number","nativeSrc":"86175:4:22","nodeType":"YulLiteral","src":"86175:4:22","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"86168:3:22","nodeType":"YulIdentifier","src":"86168:3:22"},"nativeSrc":"86168:12:22","nodeType":"YulFunctionCall","src":"86168:12:22"},{"name":"salt","nativeSrc":"86182:4:22","nodeType":"YulIdentifier","src":"86182:4:22"}],"functionName":{"name":"mstore","nativeSrc":"86161:6:22","nodeType":"YulIdentifier","src":"86161:6:22"},"nativeSrc":"86161:26:22","nodeType":"YulFunctionCall","src":"86161:26:22"},"nativeSrc":"86161:26:22","nodeType":"YulExpressionStatement","src":"86161:26:22"},{"nativeSrc":"86200:30:22","nodeType":"YulAssignment","src":"86200:30:22","value":{"arguments":[{"name":"m","nativeSrc":"86222:1:22","nodeType":"YulIdentifier","src":"86222:1:22"},{"kind":"number","nativeSrc":"86225:4:22","nodeType":"YulLiteral","src":"86225:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"86212:9:22","nodeType":"YulIdentifier","src":"86212:9:22"},"nativeSrc":"86212:18:22","nodeType":"YulFunctionCall","src":"86212:18:22"},"variableNames":[{"name":"instance","nativeSrc":"86200:8:22","nodeType":"YulIdentifier","src":"86200:8:22"}]},{"body":{"nativeSrc":"86255:680:22","nodeType":"YulBlock","src":"86255:680:22","statements":[{"body":{"nativeSrc":"86306:291:22","nodeType":"YulBlock","src":"86306:291:22","statements":[{"nativeSrc":"86328:44:22","nodeType":"YulAssignment","src":"86328:44:22","value":{"arguments":[{"name":"value","nativeSrc":"86348:5:22","nodeType":"YulIdentifier","src":"86348:5:22"},{"kind":"number","nativeSrc":"86355:4:22","nodeType":"YulLiteral","src":"86355:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"86361:4:22","nodeType":"YulLiteral","src":"86361:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"86367:4:22","nodeType":"YulIdentifier","src":"86367:4:22"}],"functionName":{"name":"create2","nativeSrc":"86340:7:22","nodeType":"YulIdentifier","src":"86340:7:22"},"nativeSrc":"86340:32:22","nodeType":"YulFunctionCall","src":"86340:32:22"},"variableNames":[{"name":"instance","nativeSrc":"86328:8:22","nodeType":"YulIdentifier","src":"86328:8:22"}]},{"body":{"nativeSrc":"86413:140:22","nodeType":"YulBlock","src":"86413:140:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"86446:4:22","nodeType":"YulLiteral","src":"86446:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"86452:10:22","nodeType":"YulLiteral","src":"86452:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"86439:6:22","nodeType":"YulIdentifier","src":"86439:6:22"},"nativeSrc":"86439:24:22","nodeType":"YulFunctionCall","src":"86439:24:22"},"nativeSrc":"86439:24:22","nodeType":"YulExpressionStatement","src":"86439:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86520:4:22","nodeType":"YulLiteral","src":"86520:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"86526:4:22","nodeType":"YulLiteral","src":"86526:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"86513:6:22","nodeType":"YulIdentifier","src":"86513:6:22"},"nativeSrc":"86513:18:22","nodeType":"YulFunctionCall","src":"86513:18:22"},"nativeSrc":"86513:18:22","nodeType":"YulExpressionStatement","src":"86513:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"86403:8:22","nodeType":"YulIdentifier","src":"86403:8:22"}],"functionName":{"name":"iszero","nativeSrc":"86396:6:22","nodeType":"YulIdentifier","src":"86396:6:22"},"nativeSrc":"86396:16:22","nodeType":"YulFunctionCall","src":"86396:16:22"},"nativeSrc":"86393:160:22","nodeType":"YulIf","src":"86393:160:22"},{"nativeSrc":"86574:5:22","nodeType":"YulBreak","src":"86574:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"86295:8:22","nodeType":"YulIdentifier","src":"86295:8:22"}],"functionName":{"name":"extcodesize","nativeSrc":"86283:11:22","nodeType":"YulIdentifier","src":"86283:11:22"},"nativeSrc":"86283:21:22","nodeType":"YulFunctionCall","src":"86283:21:22"}],"functionName":{"name":"iszero","nativeSrc":"86276:6:22","nodeType":"YulIdentifier","src":"86276:6:22"},"nativeSrc":"86276:29:22","nodeType":"YulFunctionCall","src":"86276:29:22"},"nativeSrc":"86273:324:22","nodeType":"YulIf","src":"86273:324:22"},{"nativeSrc":"86614:20:22","nodeType":"YulAssignment","src":"86614:20:22","value":{"kind":"number","nativeSrc":"86633:1:22","nodeType":"YulLiteral","src":"86633:1:22","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"86614:15:22","nodeType":"YulIdentifier","src":"86614:15:22"}]},{"body":{"nativeSrc":"86668:9:22","nodeType":"YulBlock","src":"86668:9:22","statements":[{"nativeSrc":"86670:5:22","nodeType":"YulBreak","src":"86670:5:22"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"86661:5:22","nodeType":"YulIdentifier","src":"86661:5:22"}],"functionName":{"name":"iszero","nativeSrc":"86654:6:22","nodeType":"YulIdentifier","src":"86654:6:22"},"nativeSrc":"86654:13:22","nodeType":"YulFunctionCall","src":"86654:13:22"},"nativeSrc":"86651:26:22","nodeType":"YulIf","src":"86651:26:22"},{"body":{"nativeSrc":"86770:129:22","nodeType":"YulBlock","src":"86770:129:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"86799:4:22","nodeType":"YulLiteral","src":"86799:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"86805:10:22","nodeType":"YulLiteral","src":"86805:10:22","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"86792:6:22","nodeType":"YulIdentifier","src":"86792:6:22"},"nativeSrc":"86792:24:22","nodeType":"YulFunctionCall","src":"86792:24:22"},"nativeSrc":"86792:24:22","nodeType":"YulExpressionStatement","src":"86792:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86870:4:22","nodeType":"YulLiteral","src":"86870:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"86876:4:22","nodeType":"YulLiteral","src":"86876:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"86863:6:22","nodeType":"YulIdentifier","src":"86863:6:22"},"nativeSrc":"86863:18:22","nodeType":"YulFunctionCall","src":"86863:18:22"},"nativeSrc":"86863:18:22","nodeType":"YulExpressionStatement","src":"86863:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"86709:3:22","nodeType":"YulIdentifier","src":"86709:3:22"},"nativeSrc":"86709:5:22","nodeType":"YulFunctionCall","src":"86709:5:22"},{"name":"instance","nativeSrc":"86716:8:22","nodeType":"YulIdentifier","src":"86716:8:22"},{"name":"value","nativeSrc":"86726:5:22","nodeType":"YulIdentifier","src":"86726:5:22"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"86733:8:22","nodeType":"YulIdentifier","src":"86733:8:22"},"nativeSrc":"86733:10:22","nodeType":"YulFunctionCall","src":"86733:10:22"},{"kind":"number","nativeSrc":"86745:4:22","nodeType":"YulLiteral","src":"86745:4:22","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"86751:8:22","nodeType":"YulIdentifier","src":"86751:8:22"},"nativeSrc":"86751:10:22","nodeType":"YulFunctionCall","src":"86751:10:22"},{"kind":"number","nativeSrc":"86763:4:22","nodeType":"YulLiteral","src":"86763:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"86704:4:22","nodeType":"YulIdentifier","src":"86704:4:22"},"nativeSrc":"86704:64:22","nodeType":"YulFunctionCall","src":"86704:64:22"}],"functionName":{"name":"iszero","nativeSrc":"86697:6:22","nodeType":"YulIdentifier","src":"86697:6:22"},"nativeSrc":"86697:72:22","nodeType":"YulFunctionCall","src":"86697:72:22"},"nativeSrc":"86694:205:22","nodeType":"YulIf","src":"86694:205:22"},{"nativeSrc":"86916:5:22","nodeType":"YulBreak","src":"86916:5:22"}]},"condition":{"kind":"number","nativeSrc":"86250:1:22","nodeType":"YulLiteral","src":"86250:1:22","type":"","value":"1"},"nativeSrc":"86243:692:22","nodeType":"YulForLoop","post":{"nativeSrc":"86252:2:22","nodeType":"YulBlock","src":"86252:2:22","statements":[]},"pre":{"nativeSrc":"86247:2:22","nodeType":"YulBlock","src":"86247:2:22","statements":[]},"src":"86243:692:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86955:4:22","nodeType":"YulLiteral","src":"86955:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"86961:1:22","nodeType":"YulIdentifier","src":"86961:1:22"}],"functionName":{"name":"mstore","nativeSrc":"86948:6:22","nodeType":"YulIdentifier","src":"86948:6:22"},"nativeSrc":"86948:15:22","nodeType":"YulFunctionCall","src":"86948:15:22"},"nativeSrc":"86948:15:22","nodeType":"YulExpressionStatement","src":"86948:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87019:4:22","nodeType":"YulLiteral","src":"87019:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"87025:1:22","nodeType":"YulLiteral","src":"87025:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"87012:6:22","nodeType":"YulIdentifier","src":"87012:6:22"},"nativeSrc":"87012:15:22","nodeType":"YulFunctionCall","src":"87012:15:22"},"nativeSrc":"87012:15:22","nodeType":"YulExpressionStatement","src":"87012:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10014,"isOffset":false,"isSlot":false,"src":"86614:15:22","valueSize":1},{"declaration":10009,"isOffset":false,"isSlot":false,"src":"85938:6:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86200:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86295:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86328:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86403:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86716:8:22","valueSize":1},{"declaration":10011,"isOffset":false,"isSlot":false,"src":"86182:4:22","valueSize":1},{"declaration":10011,"isOffset":false,"isSlot":false,"src":"86367:4:22","valueSize":1},{"declaration":10007,"isOffset":false,"isSlot":false,"src":"86348:5:22","valueSize":1},{"declaration":10007,"isOffset":false,"isSlot":false,"src":"86661:5:22","valueSize":1},{"declaration":10007,"isOffset":false,"isSlot":false,"src":"86726:5:22","valueSize":1}],"id":10018,"nodeType":"InlineAssembly","src":"85523:1540:22"}]},"documentation":{"id":10005,"nodeType":"StructuredDocumentation","src":"85030:265:22","text":"@dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":10020,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967BeaconProxy","nameLocation":"85309:37:22","nodeType":"FunctionDefinition","parameters":{"id":10012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10007,"mutability":"mutable","name":"value","nameLocation":"85355:5:22","nodeType":"VariableDeclaration","scope":10020,"src":"85347:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10006,"name":"uint256","nodeType":"ElementaryTypeName","src":"85347:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10009,"mutability":"mutable","name":"beacon","nameLocation":"85370:6:22","nodeType":"VariableDeclaration","scope":10020,"src":"85362:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10008,"name":"address","nodeType":"ElementaryTypeName","src":"85362:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10011,"mutability":"mutable","name":"salt","nameLocation":"85386:4:22","nodeType":"VariableDeclaration","scope":10020,"src":"85378:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85378:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"85346:45:22"},"returnParameters":{"id":10017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10014,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"85431:15:22","nodeType":"VariableDeclaration","scope":10020,"src":"85426:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10013,"name":"bool","nodeType":"ElementaryTypeName","src":"85426:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10016,"mutability":"mutable","name":"instance","nameLocation":"85456:8:22","nodeType":"VariableDeclaration","scope":10020,"src":"85448:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10015,"name":"address","nodeType":"ElementaryTypeName","src":"85448:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"85425:40:22"},"scope":10092,"src":"85300:1769:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10029,"nodeType":"Block","src":"87281:770:22","statements":[{"AST":{"nativeSrc":"87343:702:22","nodeType":"YulBlock","src":"87343:702:22","statements":[{"nativeSrc":"87357:21:22","nodeType":"YulAssignment","src":"87357:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"87373:4:22","nodeType":"YulLiteral","src":"87373:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"87367:5:22","nodeType":"YulIdentifier","src":"87367:5:22"},"nativeSrc":"87367:11:22","nodeType":"YulFunctionCall","src":"87367:11:22"},"variableNames":[{"name":"result","nativeSrc":"87357:6:22","nodeType":"YulIdentifier","src":"87357:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87419:6:22","nodeType":"YulIdentifier","src":"87419:6:22"},{"kind":"number","nativeSrc":"87427:4:22","nodeType":"YulLiteral","src":"87427:4:22","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"87415:3:22","nodeType":"YulIdentifier","src":"87415:3:22"},"nativeSrc":"87415:17:22","nodeType":"YulFunctionCall","src":"87415:17:22"},{"kind":"number","nativeSrc":"87450:66:22","nodeType":"YulLiteral","src":"87450:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"87391:6:22","nodeType":"YulIdentifier","src":"87391:6:22"},"nativeSrc":"87391:139:22","nodeType":"YulFunctionCall","src":"87391:139:22"},"nativeSrc":"87391:139:22","nodeType":"YulExpressionStatement","src":"87391:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87571:6:22","nodeType":"YulIdentifier","src":"87571:6:22"},{"kind":"number","nativeSrc":"87579:4:22","nodeType":"YulLiteral","src":"87579:4:22","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"87567:3:22","nodeType":"YulIdentifier","src":"87567:3:22"},"nativeSrc":"87567:17:22","nodeType":"YulFunctionCall","src":"87567:17:22"},{"kind":"number","nativeSrc":"87602:66:22","nodeType":"YulLiteral","src":"87602:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"87543:6:22","nodeType":"YulIdentifier","src":"87543:6:22"},"nativeSrc":"87543:139:22","nodeType":"YulFunctionCall","src":"87543:139:22"},"nativeSrc":"87543:139:22","nodeType":"YulExpressionStatement","src":"87543:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87706:6:22","nodeType":"YulIdentifier","src":"87706:6:22"},{"kind":"number","nativeSrc":"87714:4:22","nodeType":"YulLiteral","src":"87714:4:22","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"87702:3:22","nodeType":"YulIdentifier","src":"87702:3:22"},"nativeSrc":"87702:17:22","nodeType":"YulFunctionCall","src":"87702:17:22"},{"kind":"number","nativeSrc":"87721:48:22","nodeType":"YulLiteral","src":"87721:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"87695:6:22","nodeType":"YulIdentifier","src":"87695:6:22"},"nativeSrc":"87695:75:22","nodeType":"YulFunctionCall","src":"87695:75:22"},"nativeSrc":"87695:75:22","nodeType":"YulExpressionStatement","src":"87695:75:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87794:6:22","nodeType":"YulIdentifier","src":"87794:6:22"},{"kind":"number","nativeSrc":"87802:4:22","nodeType":"YulLiteral","src":"87802:4:22","type":"","value":"0x1d"}],"functionName":{"name":"add","nativeSrc":"87790:3:22","nodeType":"YulIdentifier","src":"87790:3:22"},"nativeSrc":"87790:17:22","nodeType":"YulFunctionCall","src":"87790:17:22"},{"name":"beacon","nativeSrc":"87809:6:22","nodeType":"YulIdentifier","src":"87809:6:22"}],"functionName":{"name":"mstore","nativeSrc":"87783:6:22","nodeType":"YulIdentifier","src":"87783:6:22"},"nativeSrc":"87783:33:22","nodeType":"YulFunctionCall","src":"87783:33:22"},"nativeSrc":"87783:33:22","nodeType":"YulExpressionStatement","src":"87783:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87840:6:22","nodeType":"YulIdentifier","src":"87840:6:22"},{"kind":"number","nativeSrc":"87848:4:22","nodeType":"YulLiteral","src":"87848:4:22","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"87836:3:22","nodeType":"YulIdentifier","src":"87836:3:22"},"nativeSrc":"87836:17:22","nodeType":"YulFunctionCall","src":"87836:17:22"},{"kind":"number","nativeSrc":"87855:20:22","nodeType":"YulLiteral","src":"87855:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"87829:6:22","nodeType":"YulIdentifier","src":"87829:6:22"},"nativeSrc":"87829:47:22","nodeType":"YulFunctionCall","src":"87829:47:22"},"nativeSrc":"87829:47:22","nodeType":"YulExpressionStatement","src":"87829:47:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87900:6:22","nodeType":"YulIdentifier","src":"87900:6:22"},{"kind":"number","nativeSrc":"87908:4:22","nodeType":"YulLiteral","src":"87908:4:22","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"87896:3:22","nodeType":"YulIdentifier","src":"87896:3:22"},"nativeSrc":"87896:17:22","nodeType":"YulFunctionCall","src":"87896:17:22"},{"kind":"number","nativeSrc":"87915:1:22","nodeType":"YulLiteral","src":"87915:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"87889:6:22","nodeType":"YulIdentifier","src":"87889:6:22"},"nativeSrc":"87889:28:22","nodeType":"YulFunctionCall","src":"87889:28:22"},"nativeSrc":"87889:28:22","nodeType":"YulExpressionStatement","src":"87889:28:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"87937:6:22","nodeType":"YulIdentifier","src":"87937:6:22"},{"kind":"number","nativeSrc":"87945:4:22","nodeType":"YulLiteral","src":"87945:4:22","type":"","value":"0x74"}],"functionName":{"name":"mstore","nativeSrc":"87930:6:22","nodeType":"YulIdentifier","src":"87930:6:22"},"nativeSrc":"87930:20:22","nodeType":"YulFunctionCall","src":"87930:20:22"},"nativeSrc":"87930:20:22","nodeType":"YulExpressionStatement","src":"87930:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87991:4:22","nodeType":"YulLiteral","src":"87991:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"88001:6:22","nodeType":"YulIdentifier","src":"88001:6:22"},{"kind":"number","nativeSrc":"88009:4:22","nodeType":"YulLiteral","src":"88009:4:22","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"87997:3:22","nodeType":"YulIdentifier","src":"87997:3:22"},"nativeSrc":"87997:17:22","nodeType":"YulFunctionCall","src":"87997:17:22"}],"functionName":{"name":"mstore","nativeSrc":"87984:6:22","nodeType":"YulIdentifier","src":"87984:6:22"},"nativeSrc":"87984:31:22","nodeType":"YulFunctionCall","src":"87984:31:22"},"nativeSrc":"87984:31:22","nodeType":"YulExpressionStatement","src":"87984:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10023,"isOffset":false,"isSlot":false,"src":"87809:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87357:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87419:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87571:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87706:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87794:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87840:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87900:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87937:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"88001:6:22","valueSize":1}],"id":10028,"nodeType":"InlineAssembly","src":"87334:711:22"}]},"documentation":{"id":10021,"nodeType":"StructuredDocumentation","src":"87075:77:22","text":"@dev Returns the initialization code of the minimal ERC1967 beacon proxy."},"id":10030,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967BeaconProxy","nameLocation":"87166:26:22","nodeType":"FunctionDefinition","parameters":{"id":10024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10023,"mutability":"mutable","name":"beacon","nameLocation":"87201:6:22","nodeType":"VariableDeclaration","scope":10030,"src":"87193:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10022,"name":"address","nodeType":"ElementaryTypeName","src":"87193:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"87192:16:22"},"returnParameters":{"id":10027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10026,"mutability":"mutable","name":"result","nameLocation":"87269:6:22","nodeType":"VariableDeclaration","scope":10030,"src":"87256:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10025,"name":"bytes","nodeType":"ElementaryTypeName","src":"87256:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"87255:21:22"},"scope":10092,"src":"87157:894:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10039,"nodeType":"Block","src":"88298:654:22","statements":[{"AST":{"nativeSrc":"88360:586:22","nodeType":"YulBlock","src":"88360:586:22","statements":[{"nativeSrc":"88374:20:22","nodeType":"YulVariableDeclaration","src":"88374:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"88389:4:22","nodeType":"YulLiteral","src":"88389:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"88383:5:22","nodeType":"YulIdentifier","src":"88383:5:22"},"nativeSrc":"88383:11:22","nodeType":"YulFunctionCall","src":"88383:11:22"},"variables":[{"name":"m","nativeSrc":"88378:1:22","nodeType":"YulTypedName","src":"88378:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88448:4:22","nodeType":"YulLiteral","src":"88448:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"88454:66:22","nodeType":"YulLiteral","src":"88454:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"88441:6:22","nodeType":"YulIdentifier","src":"88441:6:22"},"nativeSrc":"88441:80:22","nodeType":"YulFunctionCall","src":"88441:80:22"},"nativeSrc":"88441:80:22","nodeType":"YulExpressionStatement","src":"88441:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88541:4:22","nodeType":"YulLiteral","src":"88541:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"88547:66:22","nodeType":"YulLiteral","src":"88547:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"88534:6:22","nodeType":"YulIdentifier","src":"88534:6:22"},"nativeSrc":"88534:80:22","nodeType":"YulFunctionCall","src":"88534:80:22"},"nativeSrc":"88534:80:22","nodeType":"YulExpressionStatement","src":"88534:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88634:4:22","nodeType":"YulLiteral","src":"88634:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"88640:48:22","nodeType":"YulLiteral","src":"88640:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"88627:6:22","nodeType":"YulIdentifier","src":"88627:6:22"},"nativeSrc":"88627:62:22","nodeType":"YulFunctionCall","src":"88627:62:22"},"nativeSrc":"88627:62:22","nodeType":"YulExpressionStatement","src":"88627:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88709:4:22","nodeType":"YulLiteral","src":"88709:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"88722:3:22","nodeType":"YulLiteral","src":"88722:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"88727:20:22","nodeType":"YulLiteral","src":"88727:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"88718:3:22","nodeType":"YulIdentifier","src":"88718:3:22"},"nativeSrc":"88718:30:22","nodeType":"YulFunctionCall","src":"88718:30:22"},{"arguments":[{"kind":"number","nativeSrc":"88754:2:22","nodeType":"YulLiteral","src":"88754:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"88762:2:22","nodeType":"YulLiteral","src":"88762:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"88766:6:22","nodeType":"YulIdentifier","src":"88766:6:22"}],"functionName":{"name":"shl","nativeSrc":"88758:3:22","nodeType":"YulIdentifier","src":"88758:3:22"},"nativeSrc":"88758:15:22","nodeType":"YulFunctionCall","src":"88758:15:22"}],"functionName":{"name":"shr","nativeSrc":"88750:3:22","nodeType":"YulIdentifier","src":"88750:3:22"},"nativeSrc":"88750:24:22","nodeType":"YulFunctionCall","src":"88750:24:22"}],"functionName":{"name":"or","nativeSrc":"88715:2:22","nodeType":"YulIdentifier","src":"88715:2:22"},"nativeSrc":"88715:60:22","nodeType":"YulFunctionCall","src":"88715:60:22"}],"functionName":{"name":"mstore","nativeSrc":"88702:6:22","nodeType":"YulIdentifier","src":"88702:6:22"},"nativeSrc":"88702:74:22","nodeType":"YulFunctionCall","src":"88702:74:22"},"nativeSrc":"88702:74:22","nodeType":"YulExpressionStatement","src":"88702:74:22"},{"nativeSrc":"88789:29:22","nodeType":"YulAssignment","src":"88789:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"88807:4:22","nodeType":"YulLiteral","src":"88807:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"88813:4:22","nodeType":"YulLiteral","src":"88813:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"88797:9:22","nodeType":"YulIdentifier","src":"88797:9:22"},"nativeSrc":"88797:21:22","nodeType":"YulFunctionCall","src":"88797:21:22"},"variableNames":[{"name":"hash","nativeSrc":"88789:4:22","nodeType":"YulIdentifier","src":"88789:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88838:4:22","nodeType":"YulLiteral","src":"88838:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"88844:1:22","nodeType":"YulIdentifier","src":"88844:1:22"}],"functionName":{"name":"mstore","nativeSrc":"88831:6:22","nodeType":"YulIdentifier","src":"88831:6:22"},"nativeSrc":"88831:15:22","nodeType":"YulFunctionCall","src":"88831:15:22"},"nativeSrc":"88831:15:22","nodeType":"YulExpressionStatement","src":"88831:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88902:4:22","nodeType":"YulLiteral","src":"88902:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"88908:1:22","nodeType":"YulLiteral","src":"88908:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"88895:6:22","nodeType":"YulIdentifier","src":"88895:6:22"},"nativeSrc":"88895:15:22","nodeType":"YulFunctionCall","src":"88895:15:22"},"nativeSrc":"88895:15:22","nodeType":"YulExpressionStatement","src":"88895:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10033,"isOffset":false,"isSlot":false,"src":"88766:6:22","valueSize":1},{"declaration":10036,"isOffset":false,"isSlot":false,"src":"88789:4:22","valueSize":1}],"id":10038,"nodeType":"InlineAssembly","src":"88351:595:22"}]},"documentation":{"id":10031,"nodeType":"StructuredDocumentation","src":"88057:143:22","text":"@dev Returns the initialization code hash of the minimal ERC1967 beacon proxy.\n Used for mining vanity addresses with create2crunch."},"id":10040,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967BeaconProxy","nameLocation":"88214:30:22","nodeType":"FunctionDefinition","parameters":{"id":10034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10033,"mutability":"mutable","name":"beacon","nameLocation":"88253:6:22","nodeType":"VariableDeclaration","scope":10040,"src":"88245:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10032,"name":"address","nodeType":"ElementaryTypeName","src":"88245:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"88244:16:22"},"returnParameters":{"id":10037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10036,"mutability":"mutable","name":"hash","nameLocation":"88292:4:22","nodeType":"VariableDeclaration","scope":10040,"src":"88284:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88284:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"88283:14:22"},"scope":10092,"src":"88205:747:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10066,"nodeType":"Block","src":"89337:141:22","statements":[{"assignments":[10053],"declarations":[{"constant":false,"id":10053,"mutability":"mutable","name":"hash","nameLocation":"89355:4:22","nodeType":"VariableDeclaration","scope":10066,"src":"89347:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89347:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10057,"initialValue":{"arguments":[{"id":10055,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10043,"src":"89393:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10054,"name":"initCodeHashERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"89362:30:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":10056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"89362:38:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"89347:53:22"},{"expression":{"id":10064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10058,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10050,"src":"89410:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10060,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10053,"src":"89450:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10061,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10045,"src":"89456:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10062,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10047,"src":"89462:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10059,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"89422:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":10063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"89422:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"89410:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10065,"nodeType":"ExpressionStatement","src":"89410:61:22"}]},"documentation":{"id":10041,"nodeType":"StructuredDocumentation","src":"88958:199:22","text":"@dev Returns the address of the deterministic ERC1967 beacon proxy,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":10067,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967BeaconProxy","nameLocation":"89171:45:22","nodeType":"FunctionDefinition","parameters":{"id":10048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10043,"mutability":"mutable","name":"beacon","nameLocation":"89234:6:22","nodeType":"VariableDeclaration","scope":10067,"src":"89226:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10042,"name":"address","nodeType":"ElementaryTypeName","src":"89226:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10045,"mutability":"mutable","name":"salt","nameLocation":"89258:4:22","nodeType":"VariableDeclaration","scope":10067,"src":"89250:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89250:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10047,"mutability":"mutable","name":"deployer","nameLocation":"89280:8:22","nodeType":"VariableDeclaration","scope":10067,"src":"89272:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10046,"name":"address","nodeType":"ElementaryTypeName","src":"89272:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"89216:78:22"},"returnParameters":{"id":10051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10050,"mutability":"mutable","name":"predicted","nameLocation":"89326:9:22","nodeType":"VariableDeclaration","scope":10067,"src":"89318:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10049,"name":"address","nodeType":"ElementaryTypeName","src":"89318:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"89317:19:22"},"scope":10092,"src":"89162:316:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10080,"nodeType":"Block","src":"90149:425:22","statements":[{"AST":{"nativeSrc":"90211:357:22","nodeType":"YulBlock","src":"90211:357:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"90285:4:22","nodeType":"YulLiteral","src":"90285:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90291:4:22","nodeType":"YulLiteral","src":"90291:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"90277:7:22","nodeType":"YulIdentifier","src":"90277:7:22"},"nativeSrc":"90277:19:22","nodeType":"YulFunctionCall","src":"90277:19:22"},"nativeSrc":"90277:19:22","nodeType":"YulExpressionStatement","src":"90277:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90337:4:22","nodeType":"YulLiteral","src":"90337:4:22","type":"","value":"0x35"},{"name":"hash","nativeSrc":"90343:4:22","nodeType":"YulIdentifier","src":"90343:4:22"}],"functionName":{"name":"mstore","nativeSrc":"90330:6:22","nodeType":"YulIdentifier","src":"90330:6:22"},"nativeSrc":"90330:18:22","nodeType":"YulFunctionCall","src":"90330:18:22"},"nativeSrc":"90330:18:22","nodeType":"YulExpressionStatement","src":"90330:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90368:4:22","nodeType":"YulLiteral","src":"90368:4:22","type":"","value":"0x01"},{"arguments":[{"kind":"number","nativeSrc":"90378:2:22","nodeType":"YulLiteral","src":"90378:2:22","type":"","value":"96"},{"name":"deployer","nativeSrc":"90382:8:22","nodeType":"YulIdentifier","src":"90382:8:22"}],"functionName":{"name":"shl","nativeSrc":"90374:3:22","nodeType":"YulIdentifier","src":"90374:3:22"},"nativeSrc":"90374:17:22","nodeType":"YulFunctionCall","src":"90374:17:22"}],"functionName":{"name":"mstore","nativeSrc":"90361:6:22","nodeType":"YulIdentifier","src":"90361:6:22"},"nativeSrc":"90361:31:22","nodeType":"YulFunctionCall","src":"90361:31:22"},"nativeSrc":"90361:31:22","nodeType":"YulExpressionStatement","src":"90361:31:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90412:4:22","nodeType":"YulLiteral","src":"90412:4:22","type":"","value":"0x15"},{"name":"salt","nativeSrc":"90418:4:22","nodeType":"YulIdentifier","src":"90418:4:22"}],"functionName":{"name":"mstore","nativeSrc":"90405:6:22","nodeType":"YulIdentifier","src":"90405:6:22"},"nativeSrc":"90405:18:22","nodeType":"YulFunctionCall","src":"90405:18:22"},"nativeSrc":"90405:18:22","nodeType":"YulExpressionStatement","src":"90405:18:22"},{"nativeSrc":"90436:34:22","nodeType":"YulAssignment","src":"90436:34:22","value":{"arguments":[{"kind":"number","nativeSrc":"90459:4:22","nodeType":"YulLiteral","src":"90459:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90465:4:22","nodeType":"YulLiteral","src":"90465:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"90449:9:22","nodeType":"YulIdentifier","src":"90449:9:22"},"nativeSrc":"90449:21:22","nodeType":"YulFunctionCall","src":"90449:21:22"},"variableNames":[{"name":"predicted","nativeSrc":"90436:9:22","nodeType":"YulIdentifier","src":"90436:9:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90490:4:22","nodeType":"YulLiteral","src":"90490:4:22","type":"","value":"0x35"},{"kind":"number","nativeSrc":"90496:1:22","nodeType":"YulLiteral","src":"90496:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"90483:6:22","nodeType":"YulIdentifier","src":"90483:6:22"},"nativeSrc":"90483:15:22","nodeType":"YulFunctionCall","src":"90483:15:22"},"nativeSrc":"90483:15:22","nodeType":"YulExpressionStatement","src":"90483:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10074,"isOffset":false,"isSlot":false,"src":"90382:8:22","valueSize":1},{"declaration":10070,"isOffset":false,"isSlot":false,"src":"90343:4:22","valueSize":1},{"declaration":10077,"isOffset":false,"isSlot":false,"src":"90436:9:22","valueSize":1},{"declaration":10072,"isOffset":false,"isSlot":false,"src":"90418:4:22","valueSize":1}],"id":10079,"nodeType":"InlineAssembly","src":"90202:366:22"}]},"documentation":{"id":10068,"nodeType":"StructuredDocumentation","src":"89767:224:22","text":"@dev Returns the address when a contract with initialization code hash,\n `hash`, is deployed with `salt`, by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":10081,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"90005:27:22","nodeType":"FunctionDefinition","parameters":{"id":10075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10070,"mutability":"mutable","name":"hash","nameLocation":"90041:4:22","nodeType":"VariableDeclaration","scope":10081,"src":"90033:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90033:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10072,"mutability":"mutable","name":"salt","nameLocation":"90055:4:22","nodeType":"VariableDeclaration","scope":10081,"src":"90047:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90047:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10074,"mutability":"mutable","name":"deployer","nameLocation":"90069:8:22","nodeType":"VariableDeclaration","scope":10081,"src":"90061:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10073,"name":"address","nodeType":"ElementaryTypeName","src":"90061:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90032:46:22"},"returnParameters":{"id":10078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10077,"mutability":"mutable","name":"predicted","nameLocation":"90134:9:22","nodeType":"VariableDeclaration","scope":10081,"src":"90126:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10076,"name":"address","nodeType":"ElementaryTypeName","src":"90126:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90125:19:22"},"scope":10092,"src":"89996:578:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10090,"nodeType":"Block","src":"90724:363:22","statements":[{"AST":{"nativeSrc":"90786:295:22","nodeType":"YulBlock","src":"90786:295:22","statements":[{"body":{"nativeSrc":"90951:120:22","nodeType":"YulBlock","src":"90951:120:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"90976:4:22","nodeType":"YulLiteral","src":"90976:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90982:10:22","nodeType":"YulLiteral","src":"90982:10:22","type":"","value":"0x0c4549ef"}],"functionName":{"name":"mstore","nativeSrc":"90969:6:22","nodeType":"YulIdentifier","src":"90969:6:22"},"nativeSrc":"90969:24:22","nodeType":"YulFunctionCall","src":"90969:24:22"},"nativeSrc":"90969:24:22","nodeType":"YulExpressionStatement","src":"90969:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91046:4:22","nodeType":"YulLiteral","src":"91046:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"91052:4:22","nodeType":"YulLiteral","src":"91052:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"91039:6:22","nodeType":"YulIdentifier","src":"91039:6:22"},"nativeSrc":"91039:18:22","nodeType":"YulFunctionCall","src":"91039:18:22"},"nativeSrc":"91039:18:22","nodeType":"YulExpressionStatement","src":"91039:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"90897:2:22","nodeType":"YulLiteral","src":"90897:2:22","type":"","value":"96"},{"name":"salt","nativeSrc":"90901:4:22","nodeType":"YulIdentifier","src":"90901:4:22"}],"functionName":{"name":"shr","nativeSrc":"90893:3:22","nodeType":"YulIdentifier","src":"90893:3:22"},"nativeSrc":"90893:13:22","nodeType":"YulFunctionCall","src":"90893:13:22"}],"functionName":{"name":"iszero","nativeSrc":"90886:6:22","nodeType":"YulIdentifier","src":"90886:6:22"},"nativeSrc":"90886:21:22","nodeType":"YulFunctionCall","src":"90886:21:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"90916:2:22","nodeType":"YulLiteral","src":"90916:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"90924:2:22","nodeType":"YulLiteral","src":"90924:2:22","type":"","value":"96"},{"name":"by","nativeSrc":"90928:2:22","nodeType":"YulIdentifier","src":"90928:2:22"}],"functionName":{"name":"shl","nativeSrc":"90920:3:22","nodeType":"YulIdentifier","src":"90920:3:22"},"nativeSrc":"90920:11:22","nodeType":"YulFunctionCall","src":"90920:11:22"}],"functionName":{"name":"shr","nativeSrc":"90912:3:22","nodeType":"YulIdentifier","src":"90912:3:22"},"nativeSrc":"90912:20:22","nodeType":"YulFunctionCall","src":"90912:20:22"},{"arguments":[{"kind":"number","nativeSrc":"90938:2:22","nodeType":"YulLiteral","src":"90938:2:22","type":"","value":"96"},{"name":"salt","nativeSrc":"90942:4:22","nodeType":"YulIdentifier","src":"90942:4:22"}],"functionName":{"name":"shr","nativeSrc":"90934:3:22","nodeType":"YulIdentifier","src":"90934:3:22"},"nativeSrc":"90934:13:22","nodeType":"YulFunctionCall","src":"90934:13:22"}],"functionName":{"name":"eq","nativeSrc":"90909:2:22","nodeType":"YulIdentifier","src":"90909:2:22"},"nativeSrc":"90909:39:22","nodeType":"YulFunctionCall","src":"90909:39:22"}],"functionName":{"name":"or","nativeSrc":"90883:2:22","nodeType":"YulIdentifier","src":"90883:2:22"},"nativeSrc":"90883:66:22","nodeType":"YulFunctionCall","src":"90883:66:22"}],"functionName":{"name":"iszero","nativeSrc":"90876:6:22","nodeType":"YulIdentifier","src":"90876:6:22"},"nativeSrc":"90876:74:22","nodeType":"YulFunctionCall","src":"90876:74:22"},"nativeSrc":"90873:198:22","nodeType":"YulIf","src":"90873:198:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10086,"isOffset":false,"isSlot":false,"src":"90928:2:22","valueSize":1},{"declaration":10084,"isOffset":false,"isSlot":false,"src":"90901:4:22","valueSize":1},{"declaration":10084,"isOffset":false,"isSlot":false,"src":"90942:4:22","valueSize":1}],"id":10089,"nodeType":"InlineAssembly","src":"90777:304:22"}]},"documentation":{"id":10082,"nodeType":"StructuredDocumentation","src":"90580:74:22","text":"@dev Requires that `salt` starts with either the zero address or `by`."},"id":10091,"implemented":true,"kind":"function","modifiers":[],"name":"checkStartsWith","nameLocation":"90668:15:22","nodeType":"FunctionDefinition","parameters":{"id":10087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10084,"mutability":"mutable","name":"salt","nameLocation":"90692:4:22","nodeType":"VariableDeclaration","scope":10091,"src":"90684:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90684:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10086,"mutability":"mutable","name":"by","nameLocation":"90706:2:22","nodeType":"VariableDeclaration","scope":10091,"src":"90698:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10085,"name":"address","nodeType":"ElementaryTypeName","src":"90698:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90683:26:22"},"returnParameters":{"id":10088,"nodeType":"ParameterList","parameters":[],"src":"90724:0:22"},"scope":10092,"src":"90659:428:22","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10093,"src":"2217:88872:22","usedErrors":[9243,9246,9249],"usedEvents":[]}],"src":"32:91058:22"},"id":22},"@solady/utils/LibPRNG.sol":{"ast":{"absolutePath":"@solady/utils/LibPRNG.sol","exportedSymbols":{"LibPRNG":[10307]},"id":10308,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10094,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:23"},{"abstract":false,"baseContracts":[],"canonicalName":"LibPRNG","contractDependencies":[],"contractKind":"library","documentation":{"id":10095,"nodeType":"StructuredDocumentation","src":"57:318:23","text":"@notice Library for generating pseudorandom numbers.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)\n @author LazyShuffler based on NextShuffler by aschlosberg (divergencearran)\n (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)"},"fullyImplemented":true,"id":10307,"linearizedBaseContracts":[10307],"name":"LibPRNG","nameLocation":"383:7:23","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10096,"nodeType":"StructuredDocumentation","src":"680:80:23","text":"@dev The initial length must be greater than zero and less than `2**32 - 1`."},"errorSelector":"83b53941","id":10098,"name":"InvalidInitialLazyShufflerLength","nameLocation":"771:32:23","nodeType":"ErrorDefinition","parameters":{"id":10097,"nodeType":"ParameterList","parameters":[],"src":"803:2:23"},"src":"765:41:23"},{"documentation":{"id":10099,"nodeType":"StructuredDocumentation","src":"812:65:23","text":"@dev The new length must not be less than the current length."},"errorSelector":"bed37c6e","id":10101,"name":"InvalidNewLazyShufflerLength","nameLocation":"888:28:23","nodeType":"ErrorDefinition","parameters":{"id":10100,"nodeType":"ParameterList","parameters":[],"src":"916:2:23"},"src":"882:37:23"},{"documentation":{"id":10102,"nodeType":"StructuredDocumentation","src":"925:52:23","text":"@dev The lazy shuffler has not been initialized."},"errorSelector":"1ead2566","id":10104,"name":"LazyShufflerNotInitialized","nameLocation":"988:26:23","nodeType":"ErrorDefinition","parameters":{"id":10103,"nodeType":"ParameterList","parameters":[],"src":"1014:2:23"},"src":"982:35:23"},{"documentation":{"id":10105,"nodeType":"StructuredDocumentation","src":"1023:52:23","text":"@dev Cannot double initialize the lazy shuffler."},"errorSelector":"0c9f11f2","id":10107,"name":"LazyShufflerAlreadyInitialized","nameLocation":"1086:30:23","nodeType":"ErrorDefinition","parameters":{"id":10106,"nodeType":"ParameterList","parameters":[],"src":"1116:2:23"},"src":"1080:39:23"},{"documentation":{"id":10108,"nodeType":"StructuredDocumentation","src":"1125:39:23","text":"@dev The lazy shuffle has finished."},"errorSelector":"51065f79","id":10110,"name":"LazyShuffleFinished","nameLocation":"1175:19:23","nodeType":"ErrorDefinition","parameters":{"id":10109,"nodeType":"ParameterList","parameters":[],"src":"1194:2:23"},"src":"1169:28:23"},{"documentation":{"id":10111,"nodeType":"StructuredDocumentation","src":"1203:44:23","text":"@dev The queried index is out of bounds."},"errorSelector":"61367cc4","id":10113,"name":"LazyShufflerGetOutOfBounds","nameLocation":"1258:26:23","nodeType":"ErrorDefinition","parameters":{"id":10112,"nodeType":"ParameterList","parameters":[],"src":"1284:2:23"},"src":"1252:35:23"},{"constant":true,"documentation":{"id":10114,"nodeType":"StructuredDocumentation","src":"1576:43:23","text":"@dev The scalar of ETH and most ERC20s."},"id":10117,"mutability":"constant","name":"WAD","nameLocation":"1650:3:23","nodeType":"VariableDeclaration","scope":10307,"src":"1624:36:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10115,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":10116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1656:4:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"canonicalName":"LibPRNG.PRNG","documentation":{"id":10118,"nodeType":"StructuredDocumentation","src":"1950:47:23","text":"@dev A pseudorandom number state in memory."},"id":10121,"members":[{"constant":false,"id":10120,"mutability":"mutable","name":"state","nameLocation":"2032:5:23","nodeType":"VariableDeclaration","scope":10121,"src":"2024:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10119,"name":"uint256","nodeType":"ElementaryTypeName","src":"2024:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PRNG","nameLocation":"2009:4:23","nodeType":"StructDefinition","scope":10307,"src":"2002:42:23","visibility":"public"},{"canonicalName":"LibPRNG.LazyShuffler","documentation":{"id":10122,"nodeType":"StructuredDocumentation","src":"2050:70:23","text":"@dev A lazy Fisher-Yates shuffler for a range `[0..n)` in storage."},"id":10125,"members":[{"constant":false,"id":10124,"mutability":"mutable","name":"_state","nameLocation":"2300:6:23","nodeType":"VariableDeclaration","scope":10125,"src":"2292:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10123,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"LazyShuffler","nameLocation":"2132:12:23","nodeType":"StructDefinition","scope":10307,"src":"2125:188:23","visibility":"public"},{"body":{"id":10135,"nodeType":"Block","src":"2707:111:23","statements":[{"AST":{"nativeSrc":"2769:43:23","nodeType":"YulBlock","src":"2769:43:23","statements":[{"expression":{"arguments":[{"name":"prng","nativeSrc":"2790:4:23","nodeType":"YulIdentifier","src":"2790:4:23"},{"name":"state","nativeSrc":"2796:5:23","nodeType":"YulIdentifier","src":"2796:5:23"}],"functionName":{"name":"mstore","nativeSrc":"2783:6:23","nodeType":"YulIdentifier","src":"2783:6:23"},"nativeSrc":"2783:19:23","nodeType":"YulFunctionCall","src":"2783:19:23"},"nativeSrc":"2783:19:23","nodeType":"YulExpressionStatement","src":"2783:19:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10129,"isOffset":false,"isSlot":false,"src":"2790:4:23","valueSize":1},{"declaration":10131,"isOffset":false,"isSlot":false,"src":"2796:5:23","valueSize":1}],"id":10134,"nodeType":"InlineAssembly","src":"2760:52:23"}]},"documentation":{"id":10126,"nodeType":"StructuredDocumentation","src":"2602:39:23","text":"@dev Seeds the `prng` with `state`."},"id":10136,"implemented":true,"kind":"function","modifiers":[],"name":"seed","nameLocation":"2655:4:23","nodeType":"FunctionDefinition","parameters":{"id":10132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10129,"mutability":"mutable","name":"prng","nameLocation":"2672:4:23","nodeType":"VariableDeclaration","scope":10136,"src":"2660:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10128,"nodeType":"UserDefinedTypeName","pathNode":{"id":10127,"name":"PRNG","nameLocations":["2660:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"2660:4:23"},"referencedDeclaration":10121,"src":"2660:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10131,"mutability":"mutable","name":"state","nameLocation":"2686:5:23","nodeType":"VariableDeclaration","scope":10136,"src":"2678:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10130,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2659:33:23"},"returnParameters":{"id":10133,"nodeType":"ParameterList","parameters":[],"src":"2707:0:23"},"scope":10307,"src":"2646:172:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10146,"nodeType":"Block","src":"3026:685:23","statements":[{"AST":{"nativeSrc":"3617:88:23","nodeType":"YulBlock","src":"3617:88:23","statements":[{"nativeSrc":"3631:31:23","nodeType":"YulAssignment","src":"3631:31:23","value":{"arguments":[{"name":"prng","nativeSrc":"3651:4:23","nodeType":"YulIdentifier","src":"3651:4:23"},{"kind":"number","nativeSrc":"3657:4:23","nodeType":"YulLiteral","src":"3657:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"3641:9:23","nodeType":"YulIdentifier","src":"3641:9:23"},"nativeSrc":"3641:21:23","nodeType":"YulFunctionCall","src":"3641:21:23"},"variableNames":[{"name":"result","nativeSrc":"3631:6:23","nodeType":"YulIdentifier","src":"3631:6:23"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"3682:4:23","nodeType":"YulIdentifier","src":"3682:4:23"},{"name":"result","nativeSrc":"3688:6:23","nodeType":"YulIdentifier","src":"3688:6:23"}],"functionName":{"name":"mstore","nativeSrc":"3675:6:23","nodeType":"YulIdentifier","src":"3675:6:23"},"nativeSrc":"3675:20:23","nodeType":"YulFunctionCall","src":"3675:20:23"},"nativeSrc":"3675:20:23","nodeType":"YulExpressionStatement","src":"3675:20:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10140,"isOffset":false,"isSlot":false,"src":"3651:4:23","valueSize":1},{"declaration":10140,"isOffset":false,"isSlot":false,"src":"3682:4:23","valueSize":1},{"declaration":10143,"isOffset":false,"isSlot":false,"src":"3631:6:23","valueSize":1},{"declaration":10143,"isOffset":false,"isSlot":false,"src":"3688:6:23","valueSize":1}],"id":10145,"nodeType":"InlineAssembly","src":"3608:97:23"}]},"documentation":{"id":10137,"nodeType":"StructuredDocumentation","src":"2824:126:23","text":"@dev Returns the next pseudorandom uint256.\n All bits of the returned uint256 pass the NIST Statistical Test Suite."},"id":10147,"implemented":true,"kind":"function","modifiers":[],"name":"next","nameLocation":"2964:4:23","nodeType":"FunctionDefinition","parameters":{"id":10141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10140,"mutability":"mutable","name":"prng","nameLocation":"2981:4:23","nodeType":"VariableDeclaration","scope":10147,"src":"2969:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10139,"nodeType":"UserDefinedTypeName","pathNode":{"id":10138,"name":"PRNG","nameLocations":["2969:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"2969:4:23"},"referencedDeclaration":10121,"src":"2969:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"2968:18:23"},"returnParameters":{"id":10144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10143,"mutability":"mutable","name":"result","nameLocation":"3018:6:23","nodeType":"VariableDeclaration","scope":10147,"src":"3010:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10142,"name":"uint256","nodeType":"ElementaryTypeName","src":"3010:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3009:16:23"},"scope":10307,"src":"2955:756:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10159,"nodeType":"Block","src":"4190:320:23","statements":[{"AST":{"nativeSrc":"4252:252:23","nodeType":"YulBlock","src":"4252:252:23","statements":[{"body":{"nativeSrc":"4278:175:23","nodeType":"YulBlock","src":"4278:175:23","statements":[{"nativeSrc":"4296:31:23","nodeType":"YulAssignment","src":"4296:31:23","value":{"arguments":[{"name":"prng","nativeSrc":"4316:4:23","nodeType":"YulIdentifier","src":"4316:4:23"},{"kind":"number","nativeSrc":"4322:4:23","nodeType":"YulLiteral","src":"4322:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4306:9:23","nodeType":"YulIdentifier","src":"4306:9:23"},"nativeSrc":"4306:21:23","nodeType":"YulFunctionCall","src":"4306:21:23"},"variableNames":[{"name":"result","nativeSrc":"4296:6:23","nodeType":"YulIdentifier","src":"4296:6:23"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"4351:4:23","nodeType":"YulIdentifier","src":"4351:4:23"},{"name":"result","nativeSrc":"4357:6:23","nodeType":"YulIdentifier","src":"4357:6:23"}],"functionName":{"name":"mstore","nativeSrc":"4344:6:23","nodeType":"YulIdentifier","src":"4344:6:23"},"nativeSrc":"4344:20:23","nodeType":"YulFunctionCall","src":"4344:20:23"},"nativeSrc":"4344:20:23","nodeType":"YulExpressionStatement","src":"4344:20:23"},{"body":{"nativeSrc":"4430:9:23","nodeType":"YulBlock","src":"4430:9:23","statements":[{"nativeSrc":"4432:5:23","nodeType":"YulBreak","src":"4432:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"4394:6:23","nodeType":"YulIdentifier","src":"4394:6:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4410:1:23","nodeType":"YulLiteral","src":"4410:1:23","type":"","value":"0"},{"name":"upper","nativeSrc":"4413:5:23","nodeType":"YulIdentifier","src":"4413:5:23"}],"functionName":{"name":"sub","nativeSrc":"4406:3:23","nodeType":"YulIdentifier","src":"4406:3:23"},"nativeSrc":"4406:13:23","nodeType":"YulFunctionCall","src":"4406:13:23"},{"name":"upper","nativeSrc":"4421:5:23","nodeType":"YulIdentifier","src":"4421:5:23"}],"functionName":{"name":"mod","nativeSrc":"4402:3:23","nodeType":"YulIdentifier","src":"4402:3:23"},"nativeSrc":"4402:25:23","nodeType":"YulFunctionCall","src":"4402:25:23"}],"functionName":{"name":"lt","nativeSrc":"4391:2:23","nodeType":"YulIdentifier","src":"4391:2:23"},"nativeSrc":"4391:37:23","nodeType":"YulFunctionCall","src":"4391:37:23"}],"functionName":{"name":"iszero","nativeSrc":"4384:6:23","nodeType":"YulIdentifier","src":"4384:6:23"},"nativeSrc":"4384:45:23","nodeType":"YulFunctionCall","src":"4384:45:23"},"nativeSrc":"4381:58:23","nodeType":"YulIf","src":"4381:58:23"}]},"condition":{"kind":"number","nativeSrc":"4273:1:23","nodeType":"YulLiteral","src":"4273:1:23","type":"","value":"1"},"nativeSrc":"4266:187:23","nodeType":"YulForLoop","post":{"nativeSrc":"4275:2:23","nodeType":"YulBlock","src":"4275:2:23","statements":[]},"pre":{"nativeSrc":"4270:2:23","nodeType":"YulBlock","src":"4270:2:23","statements":[]},"src":"4266:187:23"},{"nativeSrc":"4466:28:23","nodeType":"YulAssignment","src":"4466:28:23","value":{"arguments":[{"name":"result","nativeSrc":"4480:6:23","nodeType":"YulIdentifier","src":"4480:6:23"},{"name":"upper","nativeSrc":"4488:5:23","nodeType":"YulIdentifier","src":"4488:5:23"}],"functionName":{"name":"mod","nativeSrc":"4476:3:23","nodeType":"YulIdentifier","src":"4476:3:23"},"nativeSrc":"4476:18:23","nodeType":"YulFunctionCall","src":"4476:18:23"},"variableNames":[{"name":"result","nativeSrc":"4466:6:23","nodeType":"YulIdentifier","src":"4466:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10151,"isOffset":false,"isSlot":false,"src":"4316:4:23","valueSize":1},{"declaration":10151,"isOffset":false,"isSlot":false,"src":"4351:4:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4296:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4357:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4394:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4466:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4480:6:23","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4413:5:23","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4421:5:23","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4488:5:23","valueSize":1}],"id":10158,"nodeType":"InlineAssembly","src":"4243:261:23"}]},"documentation":{"id":10148,"nodeType":"StructuredDocumentation","src":"3717:379:23","text":"@dev Returns a pseudorandom uint256, uniformly distributed\n between 0 (inclusive) and `upper` (exclusive).\n If your modulus is big, this method is recommended\n for uniform sampling to avoid modulo bias.\n For uniform sampling across all uint256 values,\n or for small enough moduli such that the bias is neligible,\n use {next} instead."},"id":10160,"implemented":true,"kind":"function","modifiers":[],"name":"uniform","nameLocation":"4110:7:23","nodeType":"FunctionDefinition","parameters":{"id":10154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10151,"mutability":"mutable","name":"prng","nameLocation":"4130:4:23","nodeType":"VariableDeclaration","scope":10160,"src":"4118:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10150,"nodeType":"UserDefinedTypeName","pathNode":{"id":10149,"name":"PRNG","nameLocations":["4118:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"4118:4:23"},"referencedDeclaration":10121,"src":"4118:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10153,"mutability":"mutable","name":"upper","nameLocation":"4144:5:23","nodeType":"VariableDeclaration","scope":10160,"src":"4136:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10152,"name":"uint256","nodeType":"ElementaryTypeName","src":"4136:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4117:33:23"},"returnParameters":{"id":10157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10156,"mutability":"mutable","name":"result","nameLocation":"4182:6:23","nodeType":"VariableDeclaration","scope":10160,"src":"4174:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10155,"name":"uint256","nodeType":"ElementaryTypeName","src":"4174:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4173:16:23"},"scope":10307,"src":"4101:409:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10171,"nodeType":"Block","src":"4653:1550:23","statements":[{"AST":{"nativeSrc":"4715:1482:23","nodeType":"YulBlock","src":"4715:1482:23","statements":[{"nativeSrc":"4729:17:23","nodeType":"YulVariableDeclaration","src":"4729:17:23","value":{"arguments":[{"name":"a","nativeSrc":"4744:1:23","nodeType":"YulIdentifier","src":"4744:1:23"}],"functionName":{"name":"mload","nativeSrc":"4738:5:23","nodeType":"YulIdentifier","src":"4738:5:23"},"nativeSrc":"4738:8:23","nodeType":"YulFunctionCall","src":"4738:8:23"},"variables":[{"name":"n","nativeSrc":"4733:1:23","nodeType":"YulTypedName","src":"4733:1:23","type":""}]},{"nativeSrc":"4759:15:23","nodeType":"YulVariableDeclaration","src":"4759:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"4772:1:23","nodeType":"YulLiteral","src":"4772:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4768:3:23","nodeType":"YulIdentifier","src":"4768:3:23"},"nativeSrc":"4768:6:23","nodeType":"YulFunctionCall","src":"4768:6:23"},"variables":[{"name":"w","nativeSrc":"4763:1:23","nodeType":"YulTypedName","src":"4763:1:23","type":""}]},{"nativeSrc":"4787:23:23","nodeType":"YulVariableDeclaration","src":"4787:23:23","value":{"arguments":[{"kind":"number","nativeSrc":"4803:3:23","nodeType":"YulLiteral","src":"4803:3:23","type":"","value":"128"},{"name":"w","nativeSrc":"4808:1:23","nodeType":"YulIdentifier","src":"4808:1:23"}],"functionName":{"name":"shr","nativeSrc":"4799:3:23","nodeType":"YulIdentifier","src":"4799:3:23"},"nativeSrc":"4799:11:23","nodeType":"YulFunctionCall","src":"4799:11:23"},"variables":[{"name":"mask","nativeSrc":"4791:4:23","nodeType":"YulTypedName","src":"4791:4:23","type":""}]},{"body":{"nativeSrc":"4828:1359:23","nodeType":"YulBlock","src":"4828:1359:23","statements":[{"body":{"nativeSrc":"4877:1296:23","nodeType":"YulBlock","src":"4877:1296:23","statements":[{"nativeSrc":"5025:30:23","nodeType":"YulVariableDeclaration","src":"5025:30:23","value":{"arguments":[{"name":"prng","nativeSrc":"5044:4:23","nodeType":"YulIdentifier","src":"5044:4:23"},{"kind":"number","nativeSrc":"5050:4:23","nodeType":"YulLiteral","src":"5050:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5034:9:23","nodeType":"YulIdentifier","src":"5034:9:23"},"nativeSrc":"5034:21:23","nodeType":"YulFunctionCall","src":"5034:21:23"},"variables":[{"name":"r","nativeSrc":"5029:1:23","nodeType":"YulTypedName","src":"5029:1:23","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"5083:4:23","nodeType":"YulIdentifier","src":"5083:4:23"},{"name":"r","nativeSrc":"5089:1:23","nodeType":"YulIdentifier","src":"5089:1:23"}],"functionName":{"name":"mstore","nativeSrc":"5076:6:23","nodeType":"YulIdentifier","src":"5076:6:23"},"nativeSrc":"5076:15:23","nodeType":"YulFunctionCall","src":"5076:15:23"},"nativeSrc":"5076:15:23","nodeType":"YulExpressionStatement","src":"5076:15:23"},{"nativeSrc":"5394:369:23","nodeType":"YulBlock","src":"5394:369:23","statements":[{"nativeSrc":"5420:44:23","nodeType":"YulVariableDeclaration","src":"5420:44:23","value":{"arguments":[{"name":"a","nativeSrc":"5433:1:23","nodeType":"YulIdentifier","src":"5433:1:23"},{"arguments":[{"kind":"number","nativeSrc":"5440:1:23","nodeType":"YulLiteral","src":"5440:1:23","type":"","value":"5"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5451:3:23","nodeType":"YulLiteral","src":"5451:3:23","type":"","value":"128"},{"name":"r","nativeSrc":"5456:1:23","nodeType":"YulIdentifier","src":"5456:1:23"}],"functionName":{"name":"shr","nativeSrc":"5447:3:23","nodeType":"YulIdentifier","src":"5447:3:23"},"nativeSrc":"5447:11:23","nodeType":"YulFunctionCall","src":"5447:11:23"},{"name":"n","nativeSrc":"5460:1:23","nodeType":"YulIdentifier","src":"5460:1:23"}],"functionName":{"name":"mod","nativeSrc":"5443:3:23","nodeType":"YulIdentifier","src":"5443:3:23"},"nativeSrc":"5443:19:23","nodeType":"YulFunctionCall","src":"5443:19:23"}],"functionName":{"name":"shl","nativeSrc":"5436:3:23","nodeType":"YulIdentifier","src":"5436:3:23"},"nativeSrc":"5436:27:23","nodeType":"YulFunctionCall","src":"5436:27:23"}],"functionName":{"name":"add","nativeSrc":"5429:3:23","nodeType":"YulIdentifier","src":"5429:3:23"},"nativeSrc":"5429:35:23","nodeType":"YulFunctionCall","src":"5429:35:23"},"variables":[{"name":"j","nativeSrc":"5424:1:23","nodeType":"YulTypedName","src":"5424:1:23","type":""}]},{"nativeSrc":"5489:14:23","nodeType":"YulAssignment","src":"5489:14:23","value":{"arguments":[{"name":"n","nativeSrc":"5498:1:23","nodeType":"YulIdentifier","src":"5498:1:23"},{"name":"w","nativeSrc":"5501:1:23","nodeType":"YulIdentifier","src":"5501:1:23"}],"functionName":{"name":"add","nativeSrc":"5494:3:23","nodeType":"YulIdentifier","src":"5494:3:23"},"nativeSrc":"5494:9:23","nodeType":"YulFunctionCall","src":"5494:9:23"},"variableNames":[{"name":"n","nativeSrc":"5489:1:23","nodeType":"YulIdentifier","src":"5489:1:23"}]},{"body":{"nativeSrc":"5557:9:23","nodeType":"YulBlock","src":"5557:9:23","statements":[{"nativeSrc":"5559:5:23","nodeType":"YulBreak","src":"5559:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"5554:1:23","nodeType":"YulIdentifier","src":"5554:1:23"}],"functionName":{"name":"iszero","nativeSrc":"5547:6:23","nodeType":"YulIdentifier","src":"5547:6:23"},"nativeSrc":"5547:9:23","nodeType":"YulFunctionCall","src":"5547:9:23"},"nativeSrc":"5544:22:23","nodeType":"YulIf","src":"5544:22:23"},{"nativeSrc":"5592:26:23","nodeType":"YulVariableDeclaration","src":"5592:26:23","value":{"arguments":[{"name":"a","nativeSrc":"5605:1:23","nodeType":"YulIdentifier","src":"5605:1:23"},{"arguments":[{"kind":"number","nativeSrc":"5612:1:23","nodeType":"YulLiteral","src":"5612:1:23","type":"","value":"5"},{"name":"n","nativeSrc":"5615:1:23","nodeType":"YulIdentifier","src":"5615:1:23"}],"functionName":{"name":"shl","nativeSrc":"5608:3:23","nodeType":"YulIdentifier","src":"5608:3:23"},"nativeSrc":"5608:9:23","nodeType":"YulFunctionCall","src":"5608:9:23"}],"functionName":{"name":"add","nativeSrc":"5601:3:23","nodeType":"YulIdentifier","src":"5601:3:23"},"nativeSrc":"5601:17:23","nodeType":"YulFunctionCall","src":"5601:17:23"},"variables":[{"name":"i","nativeSrc":"5596:1:23","nodeType":"YulTypedName","src":"5596:1:23","type":""}]},{"nativeSrc":"5643:17:23","nodeType":"YulVariableDeclaration","src":"5643:17:23","value":{"arguments":[{"name":"i","nativeSrc":"5658:1:23","nodeType":"YulIdentifier","src":"5658:1:23"}],"functionName":{"name":"mload","nativeSrc":"5652:5:23","nodeType":"YulIdentifier","src":"5652:5:23"},"nativeSrc":"5652:8:23","nodeType":"YulFunctionCall","src":"5652:8:23"},"variables":[{"name":"t","nativeSrc":"5647:1:23","nodeType":"YulTypedName","src":"5647:1:23","type":""}]},{"expression":{"arguments":[{"name":"i","nativeSrc":"5692:1:23","nodeType":"YulIdentifier","src":"5692:1:23"},{"arguments":[{"name":"j","nativeSrc":"5701:1:23","nodeType":"YulIdentifier","src":"5701:1:23"}],"functionName":{"name":"mload","nativeSrc":"5695:5:23","nodeType":"YulIdentifier","src":"5695:5:23"},"nativeSrc":"5695:8:23","nodeType":"YulFunctionCall","src":"5695:8:23"}],"functionName":{"name":"mstore","nativeSrc":"5685:6:23","nodeType":"YulIdentifier","src":"5685:6:23"},"nativeSrc":"5685:19:23","nodeType":"YulFunctionCall","src":"5685:19:23"},"nativeSrc":"5685:19:23","nodeType":"YulExpressionStatement","src":"5685:19:23"},{"expression":{"arguments":[{"name":"j","nativeSrc":"5736:1:23","nodeType":"YulIdentifier","src":"5736:1:23"},{"name":"t","nativeSrc":"5739:1:23","nodeType":"YulIdentifier","src":"5739:1:23"}],"functionName":{"name":"mstore","nativeSrc":"5729:6:23","nodeType":"YulIdentifier","src":"5729:6:23"},"nativeSrc":"5729:12:23","nodeType":"YulFunctionCall","src":"5729:12:23"},"nativeSrc":"5729:12:23","nodeType":"YulExpressionStatement","src":"5729:12:23"}]},{"nativeSrc":"5785:370:23","nodeType":"YulBlock","src":"5785:370:23","statements":[{"nativeSrc":"5811:45:23","nodeType":"YulVariableDeclaration","src":"5811:45:23","value":{"arguments":[{"name":"a","nativeSrc":"5824:1:23","nodeType":"YulIdentifier","src":"5824:1:23"},{"arguments":[{"kind":"number","nativeSrc":"5831:1:23","nodeType":"YulLiteral","src":"5831:1:23","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"5842:1:23","nodeType":"YulIdentifier","src":"5842:1:23"},{"name":"mask","nativeSrc":"5845:4:23","nodeType":"YulIdentifier","src":"5845:4:23"}],"functionName":{"name":"and","nativeSrc":"5838:3:23","nodeType":"YulIdentifier","src":"5838:3:23"},"nativeSrc":"5838:12:23","nodeType":"YulFunctionCall","src":"5838:12:23"},{"name":"n","nativeSrc":"5852:1:23","nodeType":"YulIdentifier","src":"5852:1:23"}],"functionName":{"name":"mod","nativeSrc":"5834:3:23","nodeType":"YulIdentifier","src":"5834:3:23"},"nativeSrc":"5834:20:23","nodeType":"YulFunctionCall","src":"5834:20:23"}],"functionName":{"name":"shl","nativeSrc":"5827:3:23","nodeType":"YulIdentifier","src":"5827:3:23"},"nativeSrc":"5827:28:23","nodeType":"YulFunctionCall","src":"5827:28:23"}],"functionName":{"name":"add","nativeSrc":"5820:3:23","nodeType":"YulIdentifier","src":"5820:3:23"},"nativeSrc":"5820:36:23","nodeType":"YulFunctionCall","src":"5820:36:23"},"variables":[{"name":"j","nativeSrc":"5815:1:23","nodeType":"YulTypedName","src":"5815:1:23","type":""}]},{"nativeSrc":"5881:14:23","nodeType":"YulAssignment","src":"5881:14:23","value":{"arguments":[{"name":"n","nativeSrc":"5890:1:23","nodeType":"YulIdentifier","src":"5890:1:23"},{"name":"w","nativeSrc":"5893:1:23","nodeType":"YulIdentifier","src":"5893:1:23"}],"functionName":{"name":"add","nativeSrc":"5886:3:23","nodeType":"YulIdentifier","src":"5886:3:23"},"nativeSrc":"5886:9:23","nodeType":"YulFunctionCall","src":"5886:9:23"},"variableNames":[{"name":"n","nativeSrc":"5881:1:23","nodeType":"YulIdentifier","src":"5881:1:23"}]},{"body":{"nativeSrc":"5949:9:23","nodeType":"YulBlock","src":"5949:9:23","statements":[{"nativeSrc":"5951:5:23","nodeType":"YulBreak","src":"5951:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"5946:1:23","nodeType":"YulIdentifier","src":"5946:1:23"}],"functionName":{"name":"iszero","nativeSrc":"5939:6:23","nodeType":"YulIdentifier","src":"5939:6:23"},"nativeSrc":"5939:9:23","nodeType":"YulFunctionCall","src":"5939:9:23"},"nativeSrc":"5936:22:23","nodeType":"YulIf","src":"5936:22:23"},{"nativeSrc":"5984:26:23","nodeType":"YulVariableDeclaration","src":"5984:26:23","value":{"arguments":[{"name":"a","nativeSrc":"5997:1:23","nodeType":"YulIdentifier","src":"5997:1:23"},{"arguments":[{"kind":"number","nativeSrc":"6004:1:23","nodeType":"YulLiteral","src":"6004:1:23","type":"","value":"5"},{"name":"n","nativeSrc":"6007:1:23","nodeType":"YulIdentifier","src":"6007:1:23"}],"functionName":{"name":"shl","nativeSrc":"6000:3:23","nodeType":"YulIdentifier","src":"6000:3:23"},"nativeSrc":"6000:9:23","nodeType":"YulFunctionCall","src":"6000:9:23"}],"functionName":{"name":"add","nativeSrc":"5993:3:23","nodeType":"YulIdentifier","src":"5993:3:23"},"nativeSrc":"5993:17:23","nodeType":"YulFunctionCall","src":"5993:17:23"},"variables":[{"name":"i","nativeSrc":"5988:1:23","nodeType":"YulTypedName","src":"5988:1:23","type":""}]},{"nativeSrc":"6035:17:23","nodeType":"YulVariableDeclaration","src":"6035:17:23","value":{"arguments":[{"name":"i","nativeSrc":"6050:1:23","nodeType":"YulIdentifier","src":"6050:1:23"}],"functionName":{"name":"mload","nativeSrc":"6044:5:23","nodeType":"YulIdentifier","src":"6044:5:23"},"nativeSrc":"6044:8:23","nodeType":"YulFunctionCall","src":"6044:8:23"},"variables":[{"name":"t","nativeSrc":"6039:1:23","nodeType":"YulTypedName","src":"6039:1:23","type":""}]},{"expression":{"arguments":[{"name":"i","nativeSrc":"6084:1:23","nodeType":"YulIdentifier","src":"6084:1:23"},{"arguments":[{"name":"j","nativeSrc":"6093:1:23","nodeType":"YulIdentifier","src":"6093:1:23"}],"functionName":{"name":"mload","nativeSrc":"6087:5:23","nodeType":"YulIdentifier","src":"6087:5:23"},"nativeSrc":"6087:8:23","nodeType":"YulFunctionCall","src":"6087:8:23"}],"functionName":{"name":"mstore","nativeSrc":"6077:6:23","nodeType":"YulIdentifier","src":"6077:6:23"},"nativeSrc":"6077:19:23","nodeType":"YulFunctionCall","src":"6077:19:23"},"nativeSrc":"6077:19:23","nodeType":"YulExpressionStatement","src":"6077:19:23"},{"expression":{"arguments":[{"name":"j","nativeSrc":"6128:1:23","nodeType":"YulIdentifier","src":"6128:1:23"},{"name":"t","nativeSrc":"6131:1:23","nodeType":"YulIdentifier","src":"6131:1:23"}],"functionName":{"name":"mstore","nativeSrc":"6121:6:23","nodeType":"YulIdentifier","src":"6121:6:23"},"nativeSrc":"6121:12:23","nodeType":"YulFunctionCall","src":"6121:12:23"},"nativeSrc":"6121:12:23","nodeType":"YulExpressionStatement","src":"6121:12:23"}]}]},"condition":{"kind":"number","nativeSrc":"4872:1:23","nodeType":"YulLiteral","src":"4872:1:23","type":"","value":"1"},"nativeSrc":"4846:1327:23","nodeType":"YulForLoop","post":{"nativeSrc":"4874:2:23","nodeType":"YulBlock","src":"4874:2:23","statements":[]},"pre":{"nativeSrc":"4850:21:23","nodeType":"YulBlock","src":"4850:21:23","statements":[{"nativeSrc":"4852:17:23","nodeType":"YulAssignment","src":"4852:17:23","value":{"arguments":[{"name":"a","nativeSrc":"4861:1:23","nodeType":"YulIdentifier","src":"4861:1:23"},{"kind":"number","nativeSrc":"4864:4:23","nodeType":"YulLiteral","src":"4864:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4857:3:23","nodeType":"YulIdentifier","src":"4857:3:23"},"nativeSrc":"4857:12:23","nodeType":"YulFunctionCall","src":"4857:12:23"},"variableNames":[{"name":"a","nativeSrc":"4852:1:23","nodeType":"YulIdentifier","src":"4852:1:23"}]}]},"src":"4846:1327:23"}]},"condition":{"name":"n","nativeSrc":"4826:1:23","nodeType":"YulIdentifier","src":"4826:1:23"},"nativeSrc":"4823:1364:23","nodeType":"YulIf","src":"4823:1364:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10167,"isOffset":false,"isSlot":false,"src":"4744:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"4852:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"4861:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5433:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5605:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5824:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5997:1:23","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"5044:4:23","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"5083:4:23","valueSize":1}],"id":10170,"nodeType":"InlineAssembly","src":"4706:1491:23"}]},"documentation":{"id":10161,"nodeType":"StructuredDocumentation","src":"4516:63:23","text":"@dev Shuffles the array in-place with Fisher-Yates shuffle."},"id":10172,"implemented":true,"kind":"function","modifiers":[],"name":"shuffle","nameLocation":"4593:7:23","nodeType":"FunctionDefinition","parameters":{"id":10168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10164,"mutability":"mutable","name":"prng","nameLocation":"4613:4:23","nodeType":"VariableDeclaration","scope":10172,"src":"4601:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10163,"nodeType":"UserDefinedTypeName","pathNode":{"id":10162,"name":"PRNG","nameLocations":["4601:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"4601:4:23"},"referencedDeclaration":10121,"src":"4601:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10167,"mutability":"mutable","name":"a","nameLocation":"4636:1:23","nodeType":"VariableDeclaration","scope":10172,"src":"4619:18:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10165,"name":"uint256","nodeType":"ElementaryTypeName","src":"4619:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10166,"nodeType":"ArrayTypeName","src":"4619:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4600:38:23"},"returnParameters":{"id":10169,"nodeType":"ParameterList","parameters":[],"src":"4653:0:23"},"scope":10307,"src":"4584:1619:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10182,"nodeType":"Block","src":"6342:1522:23","statements":[{"AST":{"nativeSrc":"6404:1454:23","nodeType":"YulBlock","src":"6404:1454:23","statements":[{"nativeSrc":"6418:17:23","nodeType":"YulVariableDeclaration","src":"6418:17:23","value":{"arguments":[{"name":"a","nativeSrc":"6433:1:23","nodeType":"YulIdentifier","src":"6433:1:23"}],"functionName":{"name":"mload","nativeSrc":"6427:5:23","nodeType":"YulIdentifier","src":"6427:5:23"},"nativeSrc":"6427:8:23","nodeType":"YulFunctionCall","src":"6427:8:23"},"variables":[{"name":"n","nativeSrc":"6422:1:23","nodeType":"YulTypedName","src":"6422:1:23","type":""}]},{"nativeSrc":"6448:15:23","nodeType":"YulVariableDeclaration","src":"6448:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"6461:1:23","nodeType":"YulLiteral","src":"6461:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"6457:3:23","nodeType":"YulIdentifier","src":"6457:3:23"},"nativeSrc":"6457:6:23","nodeType":"YulFunctionCall","src":"6457:6:23"},"variables":[{"name":"w","nativeSrc":"6452:1:23","nodeType":"YulTypedName","src":"6452:1:23","type":""}]},{"nativeSrc":"6476:23:23","nodeType":"YulVariableDeclaration","src":"6476:23:23","value":{"arguments":[{"kind":"number","nativeSrc":"6492:3:23","nodeType":"YulLiteral","src":"6492:3:23","type":"","value":"128"},{"name":"w","nativeSrc":"6497:1:23","nodeType":"YulIdentifier","src":"6497:1:23"}],"functionName":{"name":"shr","nativeSrc":"6488:3:23","nodeType":"YulIdentifier","src":"6488:3:23"},"nativeSrc":"6488:11:23","nodeType":"YulFunctionCall","src":"6488:11:23"},"variables":[{"name":"mask","nativeSrc":"6480:4:23","nodeType":"YulTypedName","src":"6480:4:23","type":""}]},{"body":{"nativeSrc":"6517:1331:23","nodeType":"YulBlock","src":"6517:1331:23","statements":[{"nativeSrc":"6535:21:23","nodeType":"YulVariableDeclaration","src":"6535:21:23","value":{"arguments":[{"name":"a","nativeSrc":"6548:1:23","nodeType":"YulIdentifier","src":"6548:1:23"},{"kind":"number","nativeSrc":"6551:4:23","nodeType":"YulLiteral","src":"6551:4:23","type":"","value":"0x01"}],"functionName":{"name":"add","nativeSrc":"6544:3:23","nodeType":"YulIdentifier","src":"6544:3:23"},"nativeSrc":"6544:12:23","nodeType":"YulFunctionCall","src":"6544:12:23"},"variables":[{"name":"b","nativeSrc":"6539:1:23","nodeType":"YulTypedName","src":"6539:1:23","type":""}]},{"body":{"nativeSrc":"6604:1230:23","nodeType":"YulBlock","src":"6604:1230:23","statements":[{"nativeSrc":"6752:30:23","nodeType":"YulVariableDeclaration","src":"6752:30:23","value":{"arguments":[{"name":"prng","nativeSrc":"6771:4:23","nodeType":"YulIdentifier","src":"6771:4:23"},{"kind":"number","nativeSrc":"6777:4:23","nodeType":"YulLiteral","src":"6777:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6761:9:23","nodeType":"YulIdentifier","src":"6761:9:23"},"nativeSrc":"6761:21:23","nodeType":"YulFunctionCall","src":"6761:21:23"},"variables":[{"name":"r","nativeSrc":"6756:1:23","nodeType":"YulTypedName","src":"6756:1:23","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"6810:4:23","nodeType":"YulIdentifier","src":"6810:4:23"},{"name":"r","nativeSrc":"6816:1:23","nodeType":"YulIdentifier","src":"6816:1:23"}],"functionName":{"name":"mstore","nativeSrc":"6803:6:23","nodeType":"YulIdentifier","src":"6803:6:23"},"nativeSrc":"6803:15:23","nodeType":"YulFunctionCall","src":"6803:15:23"},"nativeSrc":"6803:15:23","nodeType":"YulExpressionStatement","src":"6803:15:23"},{"nativeSrc":"7121:336:23","nodeType":"YulBlock","src":"7121:336:23","statements":[{"nativeSrc":"7147:28:23","nodeType":"YulVariableDeclaration","src":"7147:28:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7164:3:23","nodeType":"YulLiteral","src":"7164:3:23","type":"","value":"128"},{"name":"r","nativeSrc":"7169:1:23","nodeType":"YulIdentifier","src":"7169:1:23"}],"functionName":{"name":"shr","nativeSrc":"7160:3:23","nodeType":"YulIdentifier","src":"7160:3:23"},"nativeSrc":"7160:11:23","nodeType":"YulFunctionCall","src":"7160:11:23"},{"name":"n","nativeSrc":"7173:1:23","nodeType":"YulIdentifier","src":"7173:1:23"}],"functionName":{"name":"mod","nativeSrc":"7156:3:23","nodeType":"YulIdentifier","src":"7156:3:23"},"nativeSrc":"7156:19:23","nodeType":"YulFunctionCall","src":"7156:19:23"},"variables":[{"name":"o","nativeSrc":"7151:1:23","nodeType":"YulTypedName","src":"7151:1:23","type":""}]},{"nativeSrc":"7200:14:23","nodeType":"YulAssignment","src":"7200:14:23","value":{"arguments":[{"name":"n","nativeSrc":"7209:1:23","nodeType":"YulIdentifier","src":"7209:1:23"},{"name":"w","nativeSrc":"7212:1:23","nodeType":"YulIdentifier","src":"7212:1:23"}],"functionName":{"name":"add","nativeSrc":"7205:3:23","nodeType":"YulIdentifier","src":"7205:3:23"},"nativeSrc":"7205:9:23","nodeType":"YulFunctionCall","src":"7205:9:23"},"variableNames":[{"name":"n","nativeSrc":"7200:1:23","nodeType":"YulIdentifier","src":"7200:1:23"}]},{"body":{"nativeSrc":"7268:9:23","nodeType":"YulBlock","src":"7268:9:23","statements":[{"nativeSrc":"7270:5:23","nodeType":"YulBreak","src":"7270:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"7265:1:23","nodeType":"YulIdentifier","src":"7265:1:23"}],"functionName":{"name":"iszero","nativeSrc":"7258:6:23","nodeType":"YulIdentifier","src":"7258:6:23"},"nativeSrc":"7258:9:23","nodeType":"YulFunctionCall","src":"7258:9:23"},"nativeSrc":"7255:22:23","nodeType":"YulIf","src":"7255:22:23"},{"nativeSrc":"7303:25:23","nodeType":"YulVariableDeclaration","src":"7303:25:23","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7322:1:23","nodeType":"YulIdentifier","src":"7322:1:23"},{"name":"n","nativeSrc":"7325:1:23","nodeType":"YulIdentifier","src":"7325:1:23"}],"functionName":{"name":"add","nativeSrc":"7318:3:23","nodeType":"YulIdentifier","src":"7318:3:23"},"nativeSrc":"7318:9:23","nodeType":"YulFunctionCall","src":"7318:9:23"}],"functionName":{"name":"mload","nativeSrc":"7312:5:23","nodeType":"YulIdentifier","src":"7312:5:23"},"nativeSrc":"7312:16:23","nodeType":"YulFunctionCall","src":"7312:16:23"},"variables":[{"name":"t","nativeSrc":"7307:1:23","nodeType":"YulTypedName","src":"7307:1:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7365:1:23","nodeType":"YulIdentifier","src":"7365:1:23"},{"name":"n","nativeSrc":"7368:1:23","nodeType":"YulIdentifier","src":"7368:1:23"}],"functionName":{"name":"add","nativeSrc":"7361:3:23","nodeType":"YulIdentifier","src":"7361:3:23"},"nativeSrc":"7361:9:23","nodeType":"YulFunctionCall","src":"7361:9:23"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7382:1:23","nodeType":"YulIdentifier","src":"7382:1:23"},{"name":"o","nativeSrc":"7385:1:23","nodeType":"YulIdentifier","src":"7385:1:23"}],"functionName":{"name":"add","nativeSrc":"7378:3:23","nodeType":"YulIdentifier","src":"7378:3:23"},"nativeSrc":"7378:9:23","nodeType":"YulFunctionCall","src":"7378:9:23"}],"functionName":{"name":"mload","nativeSrc":"7372:5:23","nodeType":"YulIdentifier","src":"7372:5:23"},"nativeSrc":"7372:16:23","nodeType":"YulFunctionCall","src":"7372:16:23"}],"functionName":{"name":"mstore8","nativeSrc":"7353:7:23","nodeType":"YulIdentifier","src":"7353:7:23"},"nativeSrc":"7353:36:23","nodeType":"YulFunctionCall","src":"7353:36:23"},"nativeSrc":"7353:36:23","nodeType":"YulExpressionStatement","src":"7353:36:23"},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7426:1:23","nodeType":"YulIdentifier","src":"7426:1:23"},{"name":"o","nativeSrc":"7429:1:23","nodeType":"YulIdentifier","src":"7429:1:23"}],"functionName":{"name":"add","nativeSrc":"7422:3:23","nodeType":"YulIdentifier","src":"7422:3:23"},"nativeSrc":"7422:9:23","nodeType":"YulFunctionCall","src":"7422:9:23"},{"name":"t","nativeSrc":"7433:1:23","nodeType":"YulIdentifier","src":"7433:1:23"}],"functionName":{"name":"mstore8","nativeSrc":"7414:7:23","nodeType":"YulIdentifier","src":"7414:7:23"},"nativeSrc":"7414:21:23","nodeType":"YulFunctionCall","src":"7414:21:23"},"nativeSrc":"7414:21:23","nodeType":"YulExpressionStatement","src":"7414:21:23"}]},{"nativeSrc":"7479:337:23","nodeType":"YulBlock","src":"7479:337:23","statements":[{"nativeSrc":"7505:29:23","nodeType":"YulVariableDeclaration","src":"7505:29:23","value":{"arguments":[{"arguments":[{"name":"r","nativeSrc":"7522:1:23","nodeType":"YulIdentifier","src":"7522:1:23"},{"name":"mask","nativeSrc":"7525:4:23","nodeType":"YulIdentifier","src":"7525:4:23"}],"functionName":{"name":"and","nativeSrc":"7518:3:23","nodeType":"YulIdentifier","src":"7518:3:23"},"nativeSrc":"7518:12:23","nodeType":"YulFunctionCall","src":"7518:12:23"},{"name":"n","nativeSrc":"7532:1:23","nodeType":"YulIdentifier","src":"7532:1:23"}],"functionName":{"name":"mod","nativeSrc":"7514:3:23","nodeType":"YulIdentifier","src":"7514:3:23"},"nativeSrc":"7514:20:23","nodeType":"YulFunctionCall","src":"7514:20:23"},"variables":[{"name":"o","nativeSrc":"7509:1:23","nodeType":"YulTypedName","src":"7509:1:23","type":""}]},{"nativeSrc":"7559:14:23","nodeType":"YulAssignment","src":"7559:14:23","value":{"arguments":[{"name":"n","nativeSrc":"7568:1:23","nodeType":"YulIdentifier","src":"7568:1:23"},{"name":"w","nativeSrc":"7571:1:23","nodeType":"YulIdentifier","src":"7571:1:23"}],"functionName":{"name":"add","nativeSrc":"7564:3:23","nodeType":"YulIdentifier","src":"7564:3:23"},"nativeSrc":"7564:9:23","nodeType":"YulFunctionCall","src":"7564:9:23"},"variableNames":[{"name":"n","nativeSrc":"7559:1:23","nodeType":"YulIdentifier","src":"7559:1:23"}]},{"body":{"nativeSrc":"7627:9:23","nodeType":"YulBlock","src":"7627:9:23","statements":[{"nativeSrc":"7629:5:23","nodeType":"YulBreak","src":"7629:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"7624:1:23","nodeType":"YulIdentifier","src":"7624:1:23"}],"functionName":{"name":"iszero","nativeSrc":"7617:6:23","nodeType":"YulIdentifier","src":"7617:6:23"},"nativeSrc":"7617:9:23","nodeType":"YulFunctionCall","src":"7617:9:23"},"nativeSrc":"7614:22:23","nodeType":"YulIf","src":"7614:22:23"},{"nativeSrc":"7662:25:23","nodeType":"YulVariableDeclaration","src":"7662:25:23","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7681:1:23","nodeType":"YulIdentifier","src":"7681:1:23"},{"name":"n","nativeSrc":"7684:1:23","nodeType":"YulIdentifier","src":"7684:1:23"}],"functionName":{"name":"add","nativeSrc":"7677:3:23","nodeType":"YulIdentifier","src":"7677:3:23"},"nativeSrc":"7677:9:23","nodeType":"YulFunctionCall","src":"7677:9:23"}],"functionName":{"name":"mload","nativeSrc":"7671:5:23","nodeType":"YulIdentifier","src":"7671:5:23"},"nativeSrc":"7671:16:23","nodeType":"YulFunctionCall","src":"7671:16:23"},"variables":[{"name":"t","nativeSrc":"7666:1:23","nodeType":"YulTypedName","src":"7666:1:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7724:1:23","nodeType":"YulIdentifier","src":"7724:1:23"},{"name":"n","nativeSrc":"7727:1:23","nodeType":"YulIdentifier","src":"7727:1:23"}],"functionName":{"name":"add","nativeSrc":"7720:3:23","nodeType":"YulIdentifier","src":"7720:3:23"},"nativeSrc":"7720:9:23","nodeType":"YulFunctionCall","src":"7720:9:23"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7741:1:23","nodeType":"YulIdentifier","src":"7741:1:23"},{"name":"o","nativeSrc":"7744:1:23","nodeType":"YulIdentifier","src":"7744:1:23"}],"functionName":{"name":"add","nativeSrc":"7737:3:23","nodeType":"YulIdentifier","src":"7737:3:23"},"nativeSrc":"7737:9:23","nodeType":"YulFunctionCall","src":"7737:9:23"}],"functionName":{"name":"mload","nativeSrc":"7731:5:23","nodeType":"YulIdentifier","src":"7731:5:23"},"nativeSrc":"7731:16:23","nodeType":"YulFunctionCall","src":"7731:16:23"}],"functionName":{"name":"mstore8","nativeSrc":"7712:7:23","nodeType":"YulIdentifier","src":"7712:7:23"},"nativeSrc":"7712:36:23","nodeType":"YulFunctionCall","src":"7712:36:23"},"nativeSrc":"7712:36:23","nodeType":"YulExpressionStatement","src":"7712:36:23"},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7785:1:23","nodeType":"YulIdentifier","src":"7785:1:23"},{"name":"o","nativeSrc":"7788:1:23","nodeType":"YulIdentifier","src":"7788:1:23"}],"functionName":{"name":"add","nativeSrc":"7781:3:23","nodeType":"YulIdentifier","src":"7781:3:23"},"nativeSrc":"7781:9:23","nodeType":"YulFunctionCall","src":"7781:9:23"},{"name":"t","nativeSrc":"7792:1:23","nodeType":"YulIdentifier","src":"7792:1:23"}],"functionName":{"name":"mstore8","nativeSrc":"7773:7:23","nodeType":"YulIdentifier","src":"7773:7:23"},"nativeSrc":"7773:21:23","nodeType":"YulFunctionCall","src":"7773:21:23"},"nativeSrc":"7773:21:23","nodeType":"YulExpressionStatement","src":"7773:21:23"}]}]},"condition":{"kind":"number","nativeSrc":"6599:1:23","nodeType":"YulLiteral","src":"6599:1:23","type":"","value":"1"},"nativeSrc":"6573:1261:23","nodeType":"YulForLoop","post":{"nativeSrc":"6601:2:23","nodeType":"YulBlock","src":"6601:2:23","statements":[]},"pre":{"nativeSrc":"6577:21:23","nodeType":"YulBlock","src":"6577:21:23","statements":[{"nativeSrc":"6579:17:23","nodeType":"YulAssignment","src":"6579:17:23","value":{"arguments":[{"name":"a","nativeSrc":"6588:1:23","nodeType":"YulIdentifier","src":"6588:1:23"},{"kind":"number","nativeSrc":"6591:4:23","nodeType":"YulLiteral","src":"6591:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6584:3:23","nodeType":"YulIdentifier","src":"6584:3:23"},"nativeSrc":"6584:12:23","nodeType":"YulFunctionCall","src":"6584:12:23"},"variableNames":[{"name":"a","nativeSrc":"6579:1:23","nodeType":"YulIdentifier","src":"6579:1:23"}]}]},"src":"6573:1261:23"}]},"condition":{"name":"n","nativeSrc":"6515:1:23","nodeType":"YulIdentifier","src":"6515:1:23"},"nativeSrc":"6512:1336:23","nodeType":"YulIf","src":"6512:1336:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6433:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6548:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6579:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6588:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7365:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7426:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7724:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7785:1:23","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"6771:4:23","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"6810:4:23","valueSize":1}],"id":10181,"nodeType":"InlineAssembly","src":"6395:1463:23"}]},"documentation":{"id":10173,"nodeType":"StructuredDocumentation","src":"6209:63:23","text":"@dev Shuffles the bytes in-place with Fisher-Yates shuffle."},"id":10183,"implemented":true,"kind":"function","modifiers":[],"name":"shuffle","nameLocation":"6286:7:23","nodeType":"FunctionDefinition","parameters":{"id":10179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10176,"mutability":"mutable","name":"prng","nameLocation":"6306:4:23","nodeType":"VariableDeclaration","scope":10183,"src":"6294:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10175,"nodeType":"UserDefinedTypeName","pathNode":{"id":10174,"name":"PRNG","nameLocations":["6294:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"6294:4:23"},"referencedDeclaration":10121,"src":"6294:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10178,"mutability":"mutable","name":"a","nameLocation":"6325:1:23","nodeType":"VariableDeclaration","scope":10183,"src":"6312:14:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10177,"name":"bytes","nodeType":"ElementaryTypeName","src":"6312:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6293:34:23"},"returnParameters":{"id":10180,"nodeType":"ParameterList","parameters":[],"src":"6342:0:23"},"scope":10307,"src":"6277:1587:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10193,"nodeType":"Block","src":"8043:1335:23","statements":[{"AST":{"nativeSrc":"8105:1267:23","nodeType":"YulBlock","src":"8105:1267:23","statements":[{"nativeSrc":"8488:31:23","nodeType":"YulAssignment","src":"8488:31:23","value":{"arguments":[{"name":"prng","nativeSrc":"8508:4:23","nodeType":"YulIdentifier","src":"8508:4:23"},{"kind":"number","nativeSrc":"8514:4:23","nodeType":"YulLiteral","src":"8514:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8498:9:23","nodeType":"YulIdentifier","src":"8498:9:23"},"nativeSrc":"8498:21:23","nodeType":"YulFunctionCall","src":"8498:21:23"},"variableNames":[{"name":"result","nativeSrc":"8488:6:23","nodeType":"YulIdentifier","src":"8488:6:23"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"8539:4:23","nodeType":"YulIdentifier","src":"8539:4:23"},{"name":"result","nativeSrc":"8545:6:23","nodeType":"YulIdentifier","src":"8545:6:23"}],"functionName":{"name":"mstore","nativeSrc":"8532:6:23","nodeType":"YulIdentifier","src":"8532:6:23"},"nativeSrc":"8532:20:23","nodeType":"YulFunctionCall","src":"8532:20:23"},"nativeSrc":"8532:20:23","nodeType":"YulExpressionStatement","src":"8532:20:23"},{"nativeSrc":"8565:75:23","nodeType":"YulVariableDeclaration","src":"8565:75:23","value":{"kind":"number","nativeSrc":"8574:66:23","nodeType":"YulLiteral","src":"8574:66:23","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43"},"variables":[{"name":"n","nativeSrc":"8569:1:23","nodeType":"YulTypedName","src":"8569:1:23","type":""}]},{"nativeSrc":"8663:44:23","nodeType":"YulVariableDeclaration","src":"8663:44:23","value":{"kind":"number","nativeSrc":"8672:35:23","nodeType":"YulLiteral","src":"8672:35:23","type":"","value":"0x100000000000000000000000000000051"},"variables":[{"name":"a","nativeSrc":"8667:1:23","nodeType":"YulTypedName","src":"8667:1:23","type":""}]},{"nativeSrc":"8758:75:23","nodeType":"YulVariableDeclaration","src":"8758:75:23","value":{"kind":"number","nativeSrc":"8767:66:23","nodeType":"YulLiteral","src":"8767:66:23","type":"","value":"0x1fffffffffffffff1fffffffffffffff1fffffffffffffff1fffffffffffffff"},"variables":[{"name":"m","nativeSrc":"8762:1:23","nodeType":"YulTypedName","src":"8762:1:23","type":""}]},{"nativeSrc":"8846:60:23","nodeType":"YulVariableDeclaration","src":"8846:60:23","value":{"kind":"number","nativeSrc":"8855:51:23","nodeType":"YulLiteral","src":"8855:51:23","type":"","value":"0x1000000000000000100000000000000010000000000000001"},"variables":[{"name":"s","nativeSrc":"8850:1:23","nodeType":"YulTypedName","src":"8850:1:23","type":""}]},{"nativeSrc":"8919:30:23","nodeType":"YulVariableDeclaration","src":"8919:30:23","value":{"arguments":[{"name":"result","nativeSrc":"8936:6:23","nodeType":"YulIdentifier","src":"8936:6:23"},{"name":"a","nativeSrc":"8944:1:23","nodeType":"YulIdentifier","src":"8944:1:23"},{"name":"n","nativeSrc":"8947:1:23","nodeType":"YulIdentifier","src":"8947:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"8929:6:23","nodeType":"YulIdentifier","src":"8929:6:23"},"nativeSrc":"8929:20:23","nodeType":"YulFunctionCall","src":"8929:20:23"},"variables":[{"name":"r1","nativeSrc":"8923:2:23","nodeType":"YulTypedName","src":"8923:2:23","type":""}]},{"nativeSrc":"8962:26:23","nodeType":"YulVariableDeclaration","src":"8962:26:23","value":{"arguments":[{"name":"r1","nativeSrc":"8979:2:23","nodeType":"YulIdentifier","src":"8979:2:23"},{"name":"a","nativeSrc":"8983:1:23","nodeType":"YulIdentifier","src":"8983:1:23"},{"name":"n","nativeSrc":"8986:1:23","nodeType":"YulIdentifier","src":"8986:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"8972:6:23","nodeType":"YulIdentifier","src":"8972:6:23"},"nativeSrc":"8972:16:23","nodeType":"YulFunctionCall","src":"8972:16:23"},"variables":[{"name":"r2","nativeSrc":"8966:2:23","nodeType":"YulTypedName","src":"8966:2:23","type":""}]},{"nativeSrc":"9001:26:23","nodeType":"YulVariableDeclaration","src":"9001:26:23","value":{"arguments":[{"name":"r2","nativeSrc":"9018:2:23","nodeType":"YulIdentifier","src":"9018:2:23"},{"name":"a","nativeSrc":"9022:1:23","nodeType":"YulIdentifier","src":"9022:1:23"},{"name":"n","nativeSrc":"9025:1:23","nodeType":"YulIdentifier","src":"9025:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"9011:6:23","nodeType":"YulIdentifier","src":"9011:6:23"},"nativeSrc":"9011:16:23","nodeType":"YulFunctionCall","src":"9011:16:23"},"variables":[{"name":"r3","nativeSrc":"9005:2:23","nodeType":"YulTypedName","src":"9005:2:23","type":""}]},{"nativeSrc":"9083:279:23","nodeType":"YulAssignment","src":"9083:279:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9101:2:23","nodeType":"YulLiteral","src":"9101:2:23","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"9109:29:23","nodeType":"YulLiteral","src":"9109:29:23","type":"","value":"26614938895861601847173011183"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9168:3:23","nodeType":"YulLiteral","src":"9168:3:23","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9177:1:23","nodeType":"YulIdentifier","src":"9177:1:23"},{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9188:1:23","nodeType":"YulIdentifier","src":"9188:1:23"},{"name":"result","nativeSrc":"9191:6:23","nodeType":"YulIdentifier","src":"9191:6:23"}],"functionName":{"name":"and","nativeSrc":"9184:3:23","nodeType":"YulIdentifier","src":"9184:3:23"},"nativeSrc":"9184:14:23","nodeType":"YulFunctionCall","src":"9184:14:23"},{"arguments":[{"name":"m","nativeSrc":"9204:1:23","nodeType":"YulIdentifier","src":"9204:1:23"},{"name":"r1","nativeSrc":"9207:2:23","nodeType":"YulIdentifier","src":"9207:2:23"}],"functionName":{"name":"and","nativeSrc":"9200:3:23","nodeType":"YulIdentifier","src":"9200:3:23"},"nativeSrc":"9200:10:23","nodeType":"YulFunctionCall","src":"9200:10:23"}],"functionName":{"name":"add","nativeSrc":"9180:3:23","nodeType":"YulIdentifier","src":"9180:3:23"},"nativeSrc":"9180:31:23","nodeType":"YulFunctionCall","src":"9180:31:23"}],"functionName":{"name":"mul","nativeSrc":"9173:3:23","nodeType":"YulIdentifier","src":"9173:3:23"},"nativeSrc":"9173:39:23","nodeType":"YulFunctionCall","src":"9173:39:23"}],"functionName":{"name":"shr","nativeSrc":"9164:3:23","nodeType":"YulIdentifier","src":"9164:3:23"},"nativeSrc":"9164:49:23","nodeType":"YulFunctionCall","src":"9164:49:23"},{"arguments":[{"kind":"number","nativeSrc":"9235:3:23","nodeType":"YulLiteral","src":"9235:3:23","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9244:1:23","nodeType":"YulIdentifier","src":"9244:1:23"},{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9255:1:23","nodeType":"YulIdentifier","src":"9255:1:23"},{"name":"r2","nativeSrc":"9258:2:23","nodeType":"YulIdentifier","src":"9258:2:23"}],"functionName":{"name":"and","nativeSrc":"9251:3:23","nodeType":"YulIdentifier","src":"9251:3:23"},"nativeSrc":"9251:10:23","nodeType":"YulFunctionCall","src":"9251:10:23"},{"arguments":[{"name":"m","nativeSrc":"9267:1:23","nodeType":"YulIdentifier","src":"9267:1:23"},{"name":"r3","nativeSrc":"9270:2:23","nodeType":"YulIdentifier","src":"9270:2:23"}],"functionName":{"name":"and","nativeSrc":"9263:3:23","nodeType":"YulIdentifier","src":"9263:3:23"},"nativeSrc":"9263:10:23","nodeType":"YulFunctionCall","src":"9263:10:23"}],"functionName":{"name":"add","nativeSrc":"9247:3:23","nodeType":"YulIdentifier","src":"9247:3:23"},"nativeSrc":"9247:27:23","nodeType":"YulFunctionCall","src":"9247:27:23"}],"functionName":{"name":"mul","nativeSrc":"9240:3:23","nodeType":"YulIdentifier","src":"9240:3:23"},"nativeSrc":"9240:35:23","nodeType":"YulFunctionCall","src":"9240:35:23"}],"functionName":{"name":"shr","nativeSrc":"9231:3:23","nodeType":"YulIdentifier","src":"9231:3:23"},"nativeSrc":"9231:45:23","nodeType":"YulFunctionCall","src":"9231:45:23"}],"functionName":{"name":"add","nativeSrc":"9160:3:23","nodeType":"YulIdentifier","src":"9160:3:23"},"nativeSrc":"9160:117:23","nodeType":"YulFunctionCall","src":"9160:117:23"},{"arguments":[{"kind":"number","nativeSrc":"9299:3:23","nodeType":"YulLiteral","src":"9299:3:23","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9308:1:23","nodeType":"YulIdentifier","src":"9308:1:23"},{"arguments":[{"name":"m","nativeSrc":"9315:1:23","nodeType":"YulIdentifier","src":"9315:1:23"},{"arguments":[{"name":"r3","nativeSrc":"9325:2:23","nodeType":"YulIdentifier","src":"9325:2:23"},{"name":"a","nativeSrc":"9329:1:23","nodeType":"YulIdentifier","src":"9329:1:23"},{"name":"n","nativeSrc":"9332:1:23","nodeType":"YulIdentifier","src":"9332:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"9318:6:23","nodeType":"YulIdentifier","src":"9318:6:23"},"nativeSrc":"9318:16:23","nodeType":"YulFunctionCall","src":"9318:16:23"}],"functionName":{"name":"and","nativeSrc":"9311:3:23","nodeType":"YulIdentifier","src":"9311:3:23"},"nativeSrc":"9311:24:23","nodeType":"YulFunctionCall","src":"9311:24:23"}],"functionName":{"name":"mul","nativeSrc":"9304:3:23","nodeType":"YulIdentifier","src":"9304:3:23"},"nativeSrc":"9304:32:23","nodeType":"YulFunctionCall","src":"9304:32:23"}],"functionName":{"name":"shr","nativeSrc":"9295:3:23","nodeType":"YulIdentifier","src":"9295:3:23"},"nativeSrc":"9295:42:23","nodeType":"YulFunctionCall","src":"9295:42:23"}],"functionName":{"name":"add","nativeSrc":"9156:3:23","nodeType":"YulIdentifier","src":"9156:3:23"},"nativeSrc":"9156:182:23","nodeType":"YulFunctionCall","src":"9156:182:23"}],"functionName":{"name":"mul","nativeSrc":"9105:3:23","nodeType":"YulIdentifier","src":"9105:3:23"},"nativeSrc":"9105:234:23","nodeType":"YulFunctionCall","src":"9105:234:23"}],"functionName":{"name":"sar","nativeSrc":"9097:3:23","nodeType":"YulIdentifier","src":"9097:3:23"},"nativeSrc":"9097:243:23","nodeType":"YulFunctionCall","src":"9097:243:23"},{"kind":"number","nativeSrc":"9342:19:23","nodeType":"YulLiteral","src":"9342:19:23","type":"","value":"7745966692414833770"}],"functionName":{"name":"sub","nativeSrc":"9093:3:23","nodeType":"YulIdentifier","src":"9093:3:23"},"nativeSrc":"9093:269:23","nodeType":"YulFunctionCall","src":"9093:269:23"},"variableNames":[{"name":"result","nativeSrc":"9083:6:23","nodeType":"YulIdentifier","src":"9083:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10187,"isOffset":false,"isSlot":false,"src":"8508:4:23","valueSize":1},{"declaration":10187,"isOffset":false,"isSlot":false,"src":"8539:4:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"8488:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"8545:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"8936:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"9083:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"9191:6:23","valueSize":1}],"id":10192,"nodeType":"InlineAssembly","src":"8096:1276:23"}]},"documentation":{"id":10184,"nodeType":"StructuredDocumentation","src":"7870:85:23","text":"@dev Returns a sample from the standard normal distribution denominated in `WAD`."},"id":10194,"implemented":true,"kind":"function","modifiers":[],"name":"standardNormalWad","nameLocation":"7969:17:23","nodeType":"FunctionDefinition","parameters":{"id":10188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10187,"mutability":"mutable","name":"prng","nameLocation":"7999:4:23","nodeType":"VariableDeclaration","scope":10194,"src":"7987:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10186,"nodeType":"UserDefinedTypeName","pathNode":{"id":10185,"name":"PRNG","nameLocations":["7987:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"7987:4:23"},"referencedDeclaration":10121,"src":"7987:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"7986:18:23"},"returnParameters":{"id":10191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10190,"mutability":"mutable","name":"result","nameLocation":"8035:6:23","nodeType":"VariableDeclaration","scope":10194,"src":"8028:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10189,"name":"int256","nodeType":"ElementaryTypeName","src":"8028:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8027:15:23"},"scope":10307,"src":"7960:1418:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10204,"nodeType":"Block","src":"9556:1206:23","statements":[{"AST":{"nativeSrc":"9618:1138:23","nodeType":"YulBlock","src":"9618:1138:23","statements":[{"nativeSrc":"9763:30:23","nodeType":"YulVariableDeclaration","src":"9763:30:23","value":{"arguments":[{"name":"prng","nativeSrc":"9782:4:23","nodeType":"YulIdentifier","src":"9782:4:23"},{"kind":"number","nativeSrc":"9788:4:23","nodeType":"YulLiteral","src":"9788:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9772:9:23","nodeType":"YulIdentifier","src":"9772:9:23"},"nativeSrc":"9772:21:23","nodeType":"YulFunctionCall","src":"9772:21:23"},"variables":[{"name":"r","nativeSrc":"9767:1:23","nodeType":"YulTypedName","src":"9767:1:23","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"9813:4:23","nodeType":"YulIdentifier","src":"9813:4:23"},{"name":"r","nativeSrc":"9819:1:23","nodeType":"YulIdentifier","src":"9819:1:23"}],"functionName":{"name":"mstore","nativeSrc":"9806:6:23","nodeType":"YulIdentifier","src":"9806:6:23"},"nativeSrc":"9806:15:23","nodeType":"YulFunctionCall","src":"9806:15:23"},"nativeSrc":"9806:15:23","nodeType":"YulExpressionStatement","src":"9806:15:23"},{"nativeSrc":"9834:20:23","nodeType":"YulVariableDeclaration","src":"9834:20:23","value":{"arguments":[{"kind":"number","nativeSrc":"9847:3:23","nodeType":"YulLiteral","src":"9847:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"9852:1:23","nodeType":"YulIdentifier","src":"9852:1:23"}],"functionName":{"name":"shl","nativeSrc":"9843:3:23","nodeType":"YulIdentifier","src":"9843:3:23"},"nativeSrc":"9843:11:23","nodeType":"YulFunctionCall","src":"9843:11:23"},"variables":[{"name":"p","nativeSrc":"9838:1:23","nodeType":"YulTypedName","src":"9838:1:23","type":""}]},{"nativeSrc":"9867:18:23","nodeType":"YulVariableDeclaration","src":"9867:18:23","value":{"arguments":[{"kind":"number","nativeSrc":"9880:1:23","nodeType":"YulLiteral","src":"9880:1:23","type":"","value":"1"},{"name":"r","nativeSrc":"9883:1:23","nodeType":"YulIdentifier","src":"9883:1:23"}],"functionName":{"name":"shl","nativeSrc":"9876:3:23","nodeType":"YulIdentifier","src":"9876:3:23"},"nativeSrc":"9876:9:23","nodeType":"YulFunctionCall","src":"9876:9:23"},"variables":[{"name":"w","nativeSrc":"9871:1:23","nodeType":"YulTypedName","src":"9871:1:23","type":""}]},{"body":{"nativeSrc":"9918:753:23","nodeType":"YulBlock","src":"9918:753:23","statements":[{"nativeSrc":"9936:75:23","nodeType":"YulVariableDeclaration","src":"9936:75:23","value":{"kind":"number","nativeSrc":"9945:66:23","nodeType":"YulLiteral","src":"9945:66:23","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43"},"variables":[{"name":"n","nativeSrc":"9940:1:23","nodeType":"YulTypedName","src":"9940:1:23","type":""}]},{"nativeSrc":"10038:44:23","nodeType":"YulVariableDeclaration","src":"10038:44:23","value":{"kind":"number","nativeSrc":"10047:35:23","nodeType":"YulLiteral","src":"10047:35:23","type":"","value":"0x100000000000000000000000000000051"},"variables":[{"name":"a","nativeSrc":"10042:1:23","nodeType":"YulTypedName","src":"10042:1:23","type":""}]},{"body":{"nativeSrc":"10149:508:23","nodeType":"YulBlock","src":"10149:508:23","statements":[{"nativeSrc":"10171:20:23","nodeType":"YulAssignment","src":"10171:20:23","value":{"arguments":[{"name":"r","nativeSrc":"10183:1:23","nodeType":"YulIdentifier","src":"10183:1:23"},{"name":"a","nativeSrc":"10186:1:23","nodeType":"YulIdentifier","src":"10186:1:23"},{"name":"n","nativeSrc":"10189:1:23","nodeType":"YulIdentifier","src":"10189:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"10176:6:23","nodeType":"YulIdentifier","src":"10176:6:23"},"nativeSrc":"10176:15:23","nodeType":"YulFunctionCall","src":"10176:15:23"},"variableNames":[{"name":"r","nativeSrc":"10171:1:23","nodeType":"YulIdentifier","src":"10171:1:23"}]},{"body":{"nativeSrc":"10242:302:23","nodeType":"YulBlock","src":"10242:302:23","statements":[{"nativeSrc":"10268:20:23","nodeType":"YulAssignment","src":"10268:20:23","value":{"arguments":[{"name":"r","nativeSrc":"10280:1:23","nodeType":"YulIdentifier","src":"10280:1:23"},{"name":"a","nativeSrc":"10283:1:23","nodeType":"YulIdentifier","src":"10283:1:23"},{"name":"n","nativeSrc":"10286:1:23","nodeType":"YulIdentifier","src":"10286:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"10273:6:23","nodeType":"YulIdentifier","src":"10273:6:23"},"nativeSrc":"10273:15:23","nodeType":"YulFunctionCall","src":"10273:15:23"},"variableNames":[{"name":"r","nativeSrc":"10268:1:23","nodeType":"YulIdentifier","src":"10268:1:23"}]},{"nativeSrc":"10313:42:23","nodeType":"YulAssignment","src":"10313:42:23","value":{"arguments":[{"kind":"number","nativeSrc":"10327:19:23","nodeType":"YulLiteral","src":"10327:19:23","type":"","value":"1000000000000000000"},{"name":"result","nativeSrc":"10348:6:23","nodeType":"YulIdentifier","src":"10348:6:23"}],"functionName":{"name":"add","nativeSrc":"10323:3:23","nodeType":"YulIdentifier","src":"10323:3:23"},"nativeSrc":"10323:32:23","nodeType":"YulFunctionCall","src":"10323:32:23"},"variableNames":[{"name":"result","nativeSrc":"10313:6:23","nodeType":"YulIdentifier","src":"10313:6:23"}]},{"nativeSrc":"10380:14:23","nodeType":"YulAssignment","src":"10380:14:23","value":{"arguments":[{"kind":"number","nativeSrc":"10389:1:23","nodeType":"YulLiteral","src":"10389:1:23","type":"","value":"1"},{"name":"r","nativeSrc":"10392:1:23","nodeType":"YulIdentifier","src":"10392:1:23"}],"functionName":{"name":"shl","nativeSrc":"10385:3:23","nodeType":"YulIdentifier","src":"10385:3:23"},"nativeSrc":"10385:9:23","nodeType":"YulFunctionCall","src":"10385:9:23"},"variableNames":[{"name":"w","nativeSrc":"10380:1:23","nodeType":"YulIdentifier","src":"10380:1:23"}]},{"nativeSrc":"10419:16:23","nodeType":"YulAssignment","src":"10419:16:23","value":{"arguments":[{"kind":"number","nativeSrc":"10428:3:23","nodeType":"YulLiteral","src":"10428:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"10433:1:23","nodeType":"YulIdentifier","src":"10433:1:23"}],"functionName":{"name":"shl","nativeSrc":"10424:3:23","nodeType":"YulIdentifier","src":"10424:3:23"},"nativeSrc":"10424:11:23","nodeType":"YulFunctionCall","src":"10424:11:23"},"variableNames":[{"name":"p","nativeSrc":"10419:1:23","nodeType":"YulIdentifier","src":"10419:1:23"}]},{"body":{"nativeSrc":"10480:9:23","nodeType":"YulBlock","src":"10480:9:23","statements":[{"nativeSrc":"10482:5:23","nodeType":"YulBreak","src":"10482:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"10473:1:23","nodeType":"YulIdentifier","src":"10473:1:23"},{"name":"p","nativeSrc":"10476:1:23","nodeType":"YulIdentifier","src":"10476:1:23"}],"functionName":{"name":"lt","nativeSrc":"10470:2:23","nodeType":"YulIdentifier","src":"10470:2:23"},"nativeSrc":"10470:8:23","nodeType":"YulFunctionCall","src":"10470:8:23"}],"functionName":{"name":"iszero","nativeSrc":"10463:6:23","nodeType":"YulIdentifier","src":"10463:6:23"},"nativeSrc":"10463:16:23","nodeType":"YulFunctionCall","src":"10463:16:23"},"nativeSrc":"10460:29:23","nodeType":"YulIf","src":"10460:29:23"},{"nativeSrc":"10514:8:23","nodeType":"YulContinue","src":"10514:8:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10229:3:23","nodeType":"YulLiteral","src":"10229:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"10234:1:23","nodeType":"YulIdentifier","src":"10234:1:23"}],"functionName":{"name":"shl","nativeSrc":"10225:3:23","nodeType":"YulIdentifier","src":"10225:3:23"},"nativeSrc":"10225:11:23","nodeType":"YulFunctionCall","src":"10225:11:23"},{"name":"w","nativeSrc":"10238:1:23","nodeType":"YulIdentifier","src":"10238:1:23"}],"functionName":{"name":"lt","nativeSrc":"10222:2:23","nodeType":"YulIdentifier","src":"10222:2:23"},"nativeSrc":"10222:18:23","nodeType":"YulFunctionCall","src":"10222:18:23"}],"functionName":{"name":"iszero","nativeSrc":"10215:6:23","nodeType":"YulIdentifier","src":"10215:6:23"},"nativeSrc":"10215:26:23","nodeType":"YulFunctionCall","src":"10215:26:23"},"nativeSrc":"10212:332:23","nodeType":"YulIf","src":"10212:332:23"},{"nativeSrc":"10565:14:23","nodeType":"YulAssignment","src":"10565:14:23","value":{"arguments":[{"kind":"number","nativeSrc":"10574:1:23","nodeType":"YulLiteral","src":"10574:1:23","type":"","value":"1"},{"name":"r","nativeSrc":"10577:1:23","nodeType":"YulIdentifier","src":"10577:1:23"}],"functionName":{"name":"shl","nativeSrc":"10570:3:23","nodeType":"YulIdentifier","src":"10570:3:23"},"nativeSrc":"10570:9:23","nodeType":"YulFunctionCall","src":"10570:9:23"},"variableNames":[{"name":"w","nativeSrc":"10565:1:23","nodeType":"YulIdentifier","src":"10565:1:23"}]},{"body":{"nativeSrc":"10630:9:23","nodeType":"YulBlock","src":"10630:9:23","statements":[{"nativeSrc":"10632:5:23","nodeType":"YulBreak","src":"10632:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"10613:1:23","nodeType":"YulIdentifier","src":"10613:1:23"},{"arguments":[{"kind":"number","nativeSrc":"10620:3:23","nodeType":"YulLiteral","src":"10620:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"10625:1:23","nodeType":"YulIdentifier","src":"10625:1:23"}],"functionName":{"name":"shl","nativeSrc":"10616:3:23","nodeType":"YulIdentifier","src":"10616:3:23"},"nativeSrc":"10616:11:23","nodeType":"YulFunctionCall","src":"10616:11:23"}],"functionName":{"name":"lt","nativeSrc":"10610:2:23","nodeType":"YulIdentifier","src":"10610:2:23"},"nativeSrc":"10610:18:23","nodeType":"YulFunctionCall","src":"10610:18:23"}],"functionName":{"name":"iszero","nativeSrc":"10603:6:23","nodeType":"YulIdentifier","src":"10603:6:23"},"nativeSrc":"10603:26:23","nodeType":"YulFunctionCall","src":"10603:26:23"},"nativeSrc":"10600:39:23","nodeType":"YulIf","src":"10600:39:23"}]},"condition":{"kind":"number","nativeSrc":"10144:1:23","nodeType":"YulLiteral","src":"10144:1:23","type":"","value":"1"},"nativeSrc":"10137:520:23","nodeType":"YulForLoop","post":{"nativeSrc":"10146:2:23","nodeType":"YulBlock","src":"10146:2:23","statements":[]},"pre":{"nativeSrc":"10141:2:23","nodeType":"YulBlock","src":"10141:2:23","statements":[]},"src":"10137:520:23"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"9911:1:23","nodeType":"YulIdentifier","src":"9911:1:23"},{"name":"p","nativeSrc":"9914:1:23","nodeType":"YulIdentifier","src":"9914:1:23"}],"functionName":{"name":"gt","nativeSrc":"9908:2:23","nodeType":"YulIdentifier","src":"9908:2:23"},"nativeSrc":"9908:8:23","nodeType":"YulFunctionCall","src":"9908:8:23"}],"functionName":{"name":"iszero","nativeSrc":"9901:6:23","nodeType":"YulIdentifier","src":"9901:6:23"},"nativeSrc":"9901:16:23","nodeType":"YulFunctionCall","src":"9901:16:23"},"nativeSrc":"9898:773:23","nodeType":"YulIf","src":"9898:773:23"},{"nativeSrc":"10684:62:23","nodeType":"YulAssignment","src":"10684:62:23","value":{"arguments":[{"arguments":[{"name":"p","nativeSrc":"10702:1:23","nodeType":"YulIdentifier","src":"10702:1:23"},{"arguments":[{"kind":"number","nativeSrc":"10709:3:23","nodeType":"YulLiteral","src":"10709:3:23","type":"","value":"129"},{"kind":"number","nativeSrc":"10714:21:23","nodeType":"YulLiteral","src":"10714:21:23","type":"","value":"170141183460469231732"}],"functionName":{"name":"shl","nativeSrc":"10705:3:23","nodeType":"YulIdentifier","src":"10705:3:23"},"nativeSrc":"10705:31:23","nodeType":"YulFunctionCall","src":"10705:31:23"}],"functionName":{"name":"div","nativeSrc":"10698:3:23","nodeType":"YulIdentifier","src":"10698:3:23"},"nativeSrc":"10698:39:23","nodeType":"YulFunctionCall","src":"10698:39:23"},{"name":"result","nativeSrc":"10739:6:23","nodeType":"YulIdentifier","src":"10739:6:23"}],"functionName":{"name":"add","nativeSrc":"10694:3:23","nodeType":"YulIdentifier","src":"10694:3:23"},"nativeSrc":"10694:52:23","nodeType":"YulFunctionCall","src":"10694:52:23"},"variableNames":[{"name":"result","nativeSrc":"10684:6:23","nodeType":"YulIdentifier","src":"10684:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10198,"isOffset":false,"isSlot":false,"src":"9782:4:23","valueSize":1},{"declaration":10198,"isOffset":false,"isSlot":false,"src":"9813:4:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10313:6:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10348:6:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10684:6:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10739:6:23","valueSize":1}],"id":10203,"nodeType":"InlineAssembly","src":"9609:1147:23"}]},"documentation":{"id":10195,"nodeType":"StructuredDocumentation","src":"9384:86:23","text":"@dev Returns a sample from the unit exponential distribution denominated in `WAD`."},"id":10205,"implemented":true,"kind":"function","modifiers":[],"name":"exponentialWad","nameLocation":"9484:14:23","nodeType":"FunctionDefinition","parameters":{"id":10199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"prng","nameLocation":"9511:4:23","nodeType":"VariableDeclaration","scope":10205,"src":"9499:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10197,"nodeType":"UserDefinedTypeName","pathNode":{"id":10196,"name":"PRNG","nameLocations":["9499:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"9499:4:23"},"referencedDeclaration":10121,"src":"9499:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"9498:18:23"},"returnParameters":{"id":10202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10201,"mutability":"mutable","name":"result","nameLocation":"9548:6:23","nodeType":"VariableDeclaration","scope":10205,"src":"9540:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10200,"name":"uint256","nodeType":"ElementaryTypeName","src":"9540:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:16:23"},"scope":10307,"src":"9475:1287:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10215,"nodeType":"Block","src":"11378:539:23","statements":[{"AST":{"nativeSrc":"11440:471:23","nodeType":"YulBlock","src":"11440:471:23","statements":[{"body":{"nativeSrc":"11491:132:23","nodeType":"YulBlock","src":"11491:132:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11516:4:23","nodeType":"YulLiteral","src":"11516:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11522:10:23","nodeType":"YulLiteral","src":"11522:10:23","type":"","value":"0x83b53941"}],"functionName":{"name":"mstore","nativeSrc":"11509:6:23","nodeType":"YulIdentifier","src":"11509:6:23"},"nativeSrc":"11509:24:23","nodeType":"YulFunctionCall","src":"11509:24:23"},"nativeSrc":"11509:24:23","nodeType":"YulExpressionStatement","src":"11509:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11598:4:23","nodeType":"YulLiteral","src":"11598:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11604:4:23","nodeType":"YulLiteral","src":"11604:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11591:6:23","nodeType":"YulIdentifier","src":"11591:6:23"},"nativeSrc":"11591:18:23","nodeType":"YulFunctionCall","src":"11591:18:23"},"nativeSrc":"11591:18:23","nodeType":"YulExpressionStatement","src":"11591:18:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"n","nativeSrc":"11471:1:23","nodeType":"YulIdentifier","src":"11471:1:23"},{"kind":"number","nativeSrc":"11474:1:23","nodeType":"YulLiteral","src":"11474:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"11467:3:23","nodeType":"YulIdentifier","src":"11467:3:23"},"nativeSrc":"11467:9:23","nodeType":"YulFunctionCall","src":"11467:9:23"},{"kind":"number","nativeSrc":"11478:10:23","nodeType":"YulLiteral","src":"11478:10:23","type":"","value":"0xfffffffe"}],"functionName":{"name":"lt","nativeSrc":"11464:2:23","nodeType":"YulIdentifier","src":"11464:2:23"},"nativeSrc":"11464:25:23","nodeType":"YulFunctionCall","src":"11464:25:23"}],"functionName":{"name":"iszero","nativeSrc":"11457:6:23","nodeType":"YulIdentifier","src":"11457:6:23"},"nativeSrc":"11457:33:23","nodeType":"YulFunctionCall","src":"11457:33:23"},"nativeSrc":"11454:169:23","nodeType":"YulIf","src":"11454:169:23"},{"body":{"nativeSrc":"11653:130:23","nodeType":"YulBlock","src":"11653:130:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11678:4:23","nodeType":"YulLiteral","src":"11678:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11684:10:23","nodeType":"YulLiteral","src":"11684:10:23","type":"","value":"0x0c9f11f2"}],"functionName":{"name":"mstore","nativeSrc":"11671:6:23","nodeType":"YulIdentifier","src":"11671:6:23"},"nativeSrc":"11671:24:23","nodeType":"YulFunctionCall","src":"11671:24:23"},"nativeSrc":"11671:24:23","nodeType":"YulExpressionStatement","src":"11671:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11758:4:23","nodeType":"YulLiteral","src":"11758:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11764:4:23","nodeType":"YulLiteral","src":"11764:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11751:6:23","nodeType":"YulIdentifier","src":"11751:6:23"},"nativeSrc":"11751:18:23","nodeType":"YulFunctionCall","src":"11751:18:23"},"nativeSrc":"11751:18:23","nodeType":"YulExpressionStatement","src":"11751:18:23"}]},"condition":{"arguments":[{"name":"$.slot","nativeSrc":"11645:6:23","nodeType":"YulIdentifier","src":"11645:6:23"}],"functionName":{"name":"sload","nativeSrc":"11639:5:23","nodeType":"YulIdentifier","src":"11639:5:23"},"nativeSrc":"11639:13:23","nodeType":"YulFunctionCall","src":"11639:13:23"},"nativeSrc":"11636:147:23","nodeType":"YulIf","src":"11636:147:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11803:4:23","nodeType":"YulLiteral","src":"11803:4:23","type":"","value":"0x00"},{"name":"$.slot","nativeSrc":"11809:6:23","nodeType":"YulIdentifier","src":"11809:6:23"}],"functionName":{"name":"mstore","nativeSrc":"11796:6:23","nodeType":"YulIdentifier","src":"11796:6:23"},"nativeSrc":"11796:20:23","nodeType":"YulFunctionCall","src":"11796:20:23"},"nativeSrc":"11796:20:23","nodeType":"YulExpressionStatement","src":"11796:20:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"11836:6:23","nodeType":"YulIdentifier","src":"11836:6:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11851:3:23","nodeType":"YulLiteral","src":"11851:3:23","type":"","value":"224"},{"name":"n","nativeSrc":"11856:1:23","nodeType":"YulIdentifier","src":"11856:1:23"}],"functionName":{"name":"shl","nativeSrc":"11847:3:23","nodeType":"YulIdentifier","src":"11847:3:23"},"nativeSrc":"11847:11:23","nodeType":"YulFunctionCall","src":"11847:11:23"},{"arguments":[{"kind":"number","nativeSrc":"11864:2:23","nodeType":"YulLiteral","src":"11864:2:23","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"11872:2:23","nodeType":"YulLiteral","src":"11872:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"11886:4:23","nodeType":"YulLiteral","src":"11886:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11892:4:23","nodeType":"YulLiteral","src":"11892:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11876:9:23","nodeType":"YulIdentifier","src":"11876:9:23"},"nativeSrc":"11876:21:23","nodeType":"YulFunctionCall","src":"11876:21:23"}],"functionName":{"name":"shr","nativeSrc":"11868:3:23","nodeType":"YulIdentifier","src":"11868:3:23"},"nativeSrc":"11868:30:23","nodeType":"YulFunctionCall","src":"11868:30:23"}],"functionName":{"name":"shl","nativeSrc":"11860:3:23","nodeType":"YulIdentifier","src":"11860:3:23"},"nativeSrc":"11860:39:23","nodeType":"YulFunctionCall","src":"11860:39:23"}],"functionName":{"name":"or","nativeSrc":"11844:2:23","nodeType":"YulIdentifier","src":"11844:2:23"},"nativeSrc":"11844:56:23","nodeType":"YulFunctionCall","src":"11844:56:23"}],"functionName":{"name":"sstore","nativeSrc":"11829:6:23","nodeType":"YulIdentifier","src":"11829:6:23"},"nativeSrc":"11829:72:23","nodeType":"YulFunctionCall","src":"11829:72:23"},"nativeSrc":"11829:72:23","nodeType":"YulExpressionStatement","src":"11829:72:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10209,"isOffset":false,"isSlot":true,"src":"11645:6:23","suffix":"slot","valueSize":1},{"declaration":10209,"isOffset":false,"isSlot":true,"src":"11809:6:23","suffix":"slot","valueSize":1},{"declaration":10209,"isOffset":false,"isSlot":true,"src":"11836:6:23","suffix":"slot","valueSize":1},{"declaration":10211,"isOffset":false,"isSlot":false,"src":"11471:1:23","valueSize":1},{"declaration":10211,"isOffset":false,"isSlot":false,"src":"11856:1:23","valueSize":1}],"id":10214,"nodeType":"InlineAssembly","src":"11431:480:23"}]},"documentation":{"id":10206,"nodeType":"StructuredDocumentation","src":"11051:258:23","text":"@dev Initializes the state for lazy-shuffling the range `[0..n)`.\n Reverts if `n == 0 || n >= 2**32 - 1`.\n Reverts if `$` has already been initialized.\n If you need to reduce the length after initialization, just use a fresh new `$`."},"id":10216,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"11323:10:23","nodeType":"FunctionDefinition","parameters":{"id":10212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10209,"mutability":"mutable","name":"$","nameLocation":"11355:1:23","nodeType":"VariableDeclaration","scope":10216,"src":"11334:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10208,"nodeType":"UserDefinedTypeName","pathNode":{"id":10207,"name":"LazyShuffler","nameLocations":["11334:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"11334:12:23"},"referencedDeclaration":10125,"src":"11334:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10211,"mutability":"mutable","name":"n","nameLocation":"11366:1:23","nodeType":"VariableDeclaration","scope":10216,"src":"11358:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10210,"name":"uint256","nodeType":"ElementaryTypeName","src":"11358:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11333:35:23"},"returnParameters":{"id":10213,"nodeType":"ParameterList","parameters":[],"src":"11378:0:23"},"scope":10307,"src":"11314:603:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10226,"nodeType":"Block","src":"12072:611:23","statements":[{"AST":{"nativeSrc":"12134:543:23","nodeType":"YulBlock","src":"12134:543:23","statements":[{"nativeSrc":"12148:26:23","nodeType":"YulVariableDeclaration","src":"12148:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"12167:6:23","nodeType":"YulIdentifier","src":"12167:6:23"}],"functionName":{"name":"sload","nativeSrc":"12161:5:23","nodeType":"YulIdentifier","src":"12161:5:23"},"nativeSrc":"12161:13:23","nodeType":"YulFunctionCall","src":"12161:13:23"},"variables":[{"name":"state","nativeSrc":"12152:5:23","nodeType":"YulTypedName","src":"12152:5:23","type":""}]},{"body":{"nativeSrc":"12314:128:23","nodeType":"YulBlock","src":"12314:128:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12339:4:23","nodeType":"YulLiteral","src":"12339:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12345:10:23","nodeType":"YulLiteral","src":"12345:10:23","type":"","value":"0xbed37c6e"}],"functionName":{"name":"mstore","nativeSrc":"12332:6:23","nodeType":"YulIdentifier","src":"12332:6:23"},"nativeSrc":"12332:24:23","nodeType":"YulFunctionCall","src":"12332:24:23"},"nativeSrc":"12332:24:23","nodeType":"YulExpressionStatement","src":"12332:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12417:4:23","nodeType":"YulLiteral","src":"12417:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12423:4:23","nodeType":"YulLiteral","src":"12423:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12410:6:23","nodeType":"YulIdentifier","src":"12410:6:23"},"nativeSrc":"12410:18:23","nodeType":"YulFunctionCall","src":"12410:18:23"},"nativeSrc":"12410:18:23","nodeType":"YulExpressionStatement","src":"12410:18:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"12294:1:23","nodeType":"YulIdentifier","src":"12294:1:23"},{"arguments":[{"kind":"number","nativeSrc":"12301:3:23","nodeType":"YulLiteral","src":"12301:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"12306:5:23","nodeType":"YulIdentifier","src":"12306:5:23"}],"functionName":{"name":"shr","nativeSrc":"12297:3:23","nodeType":"YulIdentifier","src":"12297:3:23"},"nativeSrc":"12297:15:23","nodeType":"YulFunctionCall","src":"12297:15:23"}],"functionName":{"name":"lt","nativeSrc":"12291:2:23","nodeType":"YulIdentifier","src":"12291:2:23"},"nativeSrc":"12291:22:23","nodeType":"YulFunctionCall","src":"12291:22:23"},"nativeSrc":"12288:154:23","nodeType":"YulIf","src":"12288:154:23"},{"body":{"nativeSrc":"12472:126:23","nodeType":"YulBlock","src":"12472:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12497:4:23","nodeType":"YulLiteral","src":"12497:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12503:10:23","nodeType":"YulLiteral","src":"12503:10:23","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"12490:6:23","nodeType":"YulIdentifier","src":"12490:6:23"},"nativeSrc":"12490:24:23","nodeType":"YulFunctionCall","src":"12490:24:23"},"nativeSrc":"12490:24:23","nodeType":"YulExpressionStatement","src":"12490:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12573:4:23","nodeType":"YulLiteral","src":"12573:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12579:4:23","nodeType":"YulLiteral","src":"12579:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12566:6:23","nodeType":"YulIdentifier","src":"12566:6:23"},"nativeSrc":"12566:18:23","nodeType":"YulFunctionCall","src":"12566:18:23"},"nativeSrc":"12566:18:23","nodeType":"YulExpressionStatement","src":"12566:18:23"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"12465:5:23","nodeType":"YulIdentifier","src":"12465:5:23"}],"functionName":{"name":"iszero","nativeSrc":"12458:6:23","nodeType":"YulIdentifier","src":"12458:6:23"},"nativeSrc":"12458:13:23","nodeType":"YulFunctionCall","src":"12458:13:23"},"nativeSrc":"12455:143:23","nodeType":"YulIf","src":"12455:143:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"12618:6:23","nodeType":"YulIdentifier","src":"12618:6:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12633:3:23","nodeType":"YulLiteral","src":"12633:3:23","type":"","value":"224"},{"name":"n","nativeSrc":"12638:1:23","nodeType":"YulIdentifier","src":"12638:1:23"}],"functionName":{"name":"shl","nativeSrc":"12629:3:23","nodeType":"YulIdentifier","src":"12629:3:23"},"nativeSrc":"12629:11:23","nodeType":"YulFunctionCall","src":"12629:11:23"},{"arguments":[{"kind":"number","nativeSrc":"12646:2:23","nodeType":"YulLiteral","src":"12646:2:23","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"12654:2:23","nodeType":"YulLiteral","src":"12654:2:23","type":"","value":"32"},{"name":"state","nativeSrc":"12658:5:23","nodeType":"YulIdentifier","src":"12658:5:23"}],"functionName":{"name":"shl","nativeSrc":"12650:3:23","nodeType":"YulIdentifier","src":"12650:3:23"},"nativeSrc":"12650:14:23","nodeType":"YulFunctionCall","src":"12650:14:23"}],"functionName":{"name":"shr","nativeSrc":"12642:3:23","nodeType":"YulIdentifier","src":"12642:3:23"},"nativeSrc":"12642:23:23","nodeType":"YulFunctionCall","src":"12642:23:23"}],"functionName":{"name":"or","nativeSrc":"12626:2:23","nodeType":"YulIdentifier","src":"12626:2:23"},"nativeSrc":"12626:40:23","nodeType":"YulFunctionCall","src":"12626:40:23"}],"functionName":{"name":"sstore","nativeSrc":"12611:6:23","nodeType":"YulIdentifier","src":"12611:6:23"},"nativeSrc":"12611:56:23","nodeType":"YulFunctionCall","src":"12611:56:23"},"nativeSrc":"12611:56:23","nodeType":"YulExpressionStatement","src":"12611:56:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10220,"isOffset":false,"isSlot":true,"src":"12167:6:23","suffix":"slot","valueSize":1},{"declaration":10220,"isOffset":false,"isSlot":true,"src":"12618:6:23","suffix":"slot","valueSize":1},{"declaration":10222,"isOffset":false,"isSlot":false,"src":"12294:1:23","valueSize":1},{"declaration":10222,"isOffset":false,"isSlot":false,"src":"12638:1:23","valueSize":1}],"id":10225,"nodeType":"InlineAssembly","src":"12125:552:23"}]},"documentation":{"id":10217,"nodeType":"StructuredDocumentation","src":"11923:86:23","text":"@dev Increases the length of `$`.\n Reverts if `$` has not been initialized."},"id":10227,"implemented":true,"kind":"function","modifiers":[],"name":"grow","nameLocation":"12023:4:23","nodeType":"FunctionDefinition","parameters":{"id":10223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10220,"mutability":"mutable","name":"$","nameLocation":"12049:1:23","nodeType":"VariableDeclaration","scope":10227,"src":"12028:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10219,"nodeType":"UserDefinedTypeName","pathNode":{"id":10218,"name":"LazyShuffler","nameLocations":["12028:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"12028:12:23"},"referencedDeclaration":10125,"src":"12028:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10222,"mutability":"mutable","name":"n","nameLocation":"12060:1:23","nodeType":"VariableDeclaration","scope":10227,"src":"12052:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10221,"name":"uint256","nodeType":"ElementaryTypeName","src":"12052:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12027:35:23"},"returnParameters":{"id":10224,"nodeType":"ParameterList","parameters":[],"src":"12072:0:23"},"scope":10307,"src":"12014:669:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10235,"nodeType":"Block","src":"13035:326:23","statements":[{"AST":{"nativeSrc":"13097:258:23","nodeType":"YulBlock","src":"13097:258:23","statements":[{"nativeSrc":"13111:26:23","nodeType":"YulVariableDeclaration","src":"13111:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"13130:6:23","nodeType":"YulIdentifier","src":"13130:6:23"}],"functionName":{"name":"sload","nativeSrc":"13124:5:23","nodeType":"YulIdentifier","src":"13124:5:23"},"nativeSrc":"13124:13:23","nodeType":"YulFunctionCall","src":"13124:13:23"},"variables":[{"name":"state","nativeSrc":"13115:5:23","nodeType":"YulTypedName","src":"13115:5:23","type":""}]},{"body":{"nativeSrc":"13167:126:23","nodeType":"YulBlock","src":"13167:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13192:4:23","nodeType":"YulLiteral","src":"13192:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13198:10:23","nodeType":"YulLiteral","src":"13198:10:23","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"13185:6:23","nodeType":"YulIdentifier","src":"13185:6:23"},"nativeSrc":"13185:24:23","nodeType":"YulFunctionCall","src":"13185:24:23"},"nativeSrc":"13185:24:23","nodeType":"YulExpressionStatement","src":"13185:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13268:4:23","nodeType":"YulLiteral","src":"13268:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13274:4:23","nodeType":"YulLiteral","src":"13274:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13261:6:23","nodeType":"YulIdentifier","src":"13261:6:23"},"nativeSrc":"13261:18:23","nodeType":"YulFunctionCall","src":"13261:18:23"},"nativeSrc":"13261:18:23","nodeType":"YulExpressionStatement","src":"13261:18:23"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"13160:5:23","nodeType":"YulIdentifier","src":"13160:5:23"}],"functionName":{"name":"iszero","nativeSrc":"13153:6:23","nodeType":"YulIdentifier","src":"13153:6:23"},"nativeSrc":"13153:13:23","nodeType":"YulFunctionCall","src":"13153:13:23"},"nativeSrc":"13150:143:23","nodeType":"YulIf","src":"13150:143:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"13313:6:23","nodeType":"YulIdentifier","src":"13313:6:23"},{"arguments":[{"kind":"number","nativeSrc":"13325:2:23","nodeType":"YulLiteral","src":"13325:2:23","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"13333:2:23","nodeType":"YulLiteral","src":"13333:2:23","type":"","value":"32"},{"name":"state","nativeSrc":"13337:5:23","nodeType":"YulIdentifier","src":"13337:5:23"}],"functionName":{"name":"shr","nativeSrc":"13329:3:23","nodeType":"YulIdentifier","src":"13329:3:23"},"nativeSrc":"13329:14:23","nodeType":"YulFunctionCall","src":"13329:14:23"}],"functionName":{"name":"shl","nativeSrc":"13321:3:23","nodeType":"YulIdentifier","src":"13321:3:23"},"nativeSrc":"13321:23:23","nodeType":"YulFunctionCall","src":"13321:23:23"}],"functionName":{"name":"sstore","nativeSrc":"13306:6:23","nodeType":"YulIdentifier","src":"13306:6:23"},"nativeSrc":"13306:39:23","nodeType":"YulFunctionCall","src":"13306:39:23"},"nativeSrc":"13306:39:23","nodeType":"YulExpressionStatement","src":"13306:39:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10231,"isOffset":false,"isSlot":true,"src":"13130:6:23","suffix":"slot","valueSize":1},{"declaration":10231,"isOffset":false,"isSlot":true,"src":"13313:6:23","suffix":"slot","valueSize":1}],"id":10234,"nodeType":"InlineAssembly","src":"13088:267:23"}]},"documentation":{"id":10228,"nodeType":"StructuredDocumentation","src":"12689:291:23","text":"@dev Restarts the shuffler by setting `numShuffled` to zero,\n such that all elements can be drawn again.\n Restarting does NOT clear the internal permutation, nor changes the length.\n Even with the same sequence of randomness, reshuffling can yield different results."},"id":10236,"implemented":true,"kind":"function","modifiers":[],"name":"restart","nameLocation":"12994:7:23","nodeType":"FunctionDefinition","parameters":{"id":10232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10231,"mutability":"mutable","name":"$","nameLocation":"13023:1:23","nodeType":"VariableDeclaration","scope":10236,"src":"13002:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10230,"nodeType":"UserDefinedTypeName","pathNode":{"id":10229,"name":"LazyShuffler","nameLocations":["13002:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"13002:12:23"},"referencedDeclaration":10125,"src":"13002:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13001:24:23"},"returnParameters":{"id":10233,"nodeType":"ParameterList","parameters":[],"src":"13035:0:23"},"scope":10307,"src":"12985:376:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10246,"nodeType":"Block","src":"13520:132:23","statements":[{"AST":{"nativeSrc":"13582:64:23","nodeType":"YulBlock","src":"13582:64:23","statements":[{"nativeSrc":"13596:40:23","nodeType":"YulAssignment","src":"13596:40:23","value":{"arguments":[{"kind":"number","nativeSrc":"13610:10:23","nodeType":"YulLiteral","src":"13610:10:23","type":"","value":"0xffffffff"},{"arguments":[{"name":"$.slot","nativeSrc":"13628:6:23","nodeType":"YulIdentifier","src":"13628:6:23"}],"functionName":{"name":"sload","nativeSrc":"13622:5:23","nodeType":"YulIdentifier","src":"13622:5:23"},"nativeSrc":"13622:13:23","nodeType":"YulFunctionCall","src":"13622:13:23"}],"functionName":{"name":"and","nativeSrc":"13606:3:23","nodeType":"YulIdentifier","src":"13606:3:23"},"nativeSrc":"13606:30:23","nodeType":"YulFunctionCall","src":"13606:30:23"},"variableNames":[{"name":"result","nativeSrc":"13596:6:23","nodeType":"YulIdentifier","src":"13596:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10240,"isOffset":false,"isSlot":true,"src":"13628:6:23","suffix":"slot","valueSize":1},{"declaration":10243,"isOffset":false,"isSlot":false,"src":"13596:6:23","valueSize":1}],"id":10245,"nodeType":"InlineAssembly","src":"13573:73:23"}]},"documentation":{"id":10237,"nodeType":"StructuredDocumentation","src":"13367:64:23","text":"@dev Returns the number of elements that have been shuffled."},"id":10247,"implemented":true,"kind":"function","modifiers":[],"name":"numShuffled","nameLocation":"13445:11:23","nodeType":"FunctionDefinition","parameters":{"id":10241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10240,"mutability":"mutable","name":"$","nameLocation":"13478:1:23","nodeType":"VariableDeclaration","scope":10247,"src":"13457:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10239,"nodeType":"UserDefinedTypeName","pathNode":{"id":10238,"name":"LazyShuffler","nameLocations":["13457:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"13457:12:23"},"referencedDeclaration":10125,"src":"13457:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13456:24:23"},"returnParameters":{"id":10244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10243,"mutability":"mutable","name":"result","nameLocation":"13512:6:23","nodeType":"VariableDeclaration","scope":10247,"src":"13504:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10242,"name":"uint256","nodeType":"ElementaryTypeName","src":"13504:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13503:16:23"},"scope":10307,"src":"13436:216:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10257,"nodeType":"Block","src":"13870:125:23","statements":[{"AST":{"nativeSrc":"13932:57:23","nodeType":"YulBlock","src":"13932:57:23","statements":[{"nativeSrc":"13946:33:23","nodeType":"YulAssignment","src":"13946:33:23","value":{"arguments":[{"kind":"number","nativeSrc":"13960:3:23","nodeType":"YulLiteral","src":"13960:3:23","type":"","value":"224"},{"arguments":[{"name":"$.slot","nativeSrc":"13971:6:23","nodeType":"YulIdentifier","src":"13971:6:23"}],"functionName":{"name":"sload","nativeSrc":"13965:5:23","nodeType":"YulIdentifier","src":"13965:5:23"},"nativeSrc":"13965:13:23","nodeType":"YulFunctionCall","src":"13965:13:23"}],"functionName":{"name":"shr","nativeSrc":"13956:3:23","nodeType":"YulIdentifier","src":"13956:3:23"},"nativeSrc":"13956:23:23","nodeType":"YulFunctionCall","src":"13956:23:23"},"variableNames":[{"name":"result","nativeSrc":"13946:6:23","nodeType":"YulIdentifier","src":"13946:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10251,"isOffset":false,"isSlot":true,"src":"13971:6:23","suffix":"slot","valueSize":1},{"declaration":10254,"isOffset":false,"isSlot":false,"src":"13946:6:23","valueSize":1}],"id":10256,"nodeType":"InlineAssembly","src":"13923:66:23"}]},"documentation":{"id":10248,"nodeType":"StructuredDocumentation","src":"13658:128:23","text":"@dev Returns the length of `$`.\n Returns zero if `$` is not initialized, else a non-zero value less than `2**32 - 1`."},"id":10258,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"13800:6:23","nodeType":"FunctionDefinition","parameters":{"id":10252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10251,"mutability":"mutable","name":"$","nameLocation":"13828:1:23","nodeType":"VariableDeclaration","scope":10258,"src":"13807:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10250,"nodeType":"UserDefinedTypeName","pathNode":{"id":10249,"name":"LazyShuffler","nameLocations":["13807:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"13807:12:23"},"referencedDeclaration":10125,"src":"13807:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13806:24:23"},"returnParameters":{"id":10255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10254,"mutability":"mutable","name":"result","nameLocation":"13862:6:23","nodeType":"VariableDeclaration","scope":10258,"src":"13854:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10253,"name":"uint256","nodeType":"ElementaryTypeName","src":"13854:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13853:16:23"},"scope":10307,"src":"13791:204:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10268,"nodeType":"Block","src":"14132:131:23","statements":[{"AST":{"nativeSrc":"14194:63:23","nodeType":"YulBlock","src":"14194:63:23","statements":[{"nativeSrc":"14208:39:23","nodeType":"YulAssignment","src":"14208:39:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"$.slot","nativeSrc":"14238:6:23","nodeType":"YulIdentifier","src":"14238:6:23"}],"functionName":{"name":"sload","nativeSrc":"14232:5:23","nodeType":"YulIdentifier","src":"14232:5:23"},"nativeSrc":"14232:13:23","nodeType":"YulFunctionCall","src":"14232:13:23"}],"functionName":{"name":"iszero","nativeSrc":"14225:6:23","nodeType":"YulIdentifier","src":"14225:6:23"},"nativeSrc":"14225:21:23","nodeType":"YulFunctionCall","src":"14225:21:23"}],"functionName":{"name":"iszero","nativeSrc":"14218:6:23","nodeType":"YulIdentifier","src":"14218:6:23"},"nativeSrc":"14218:29:23","nodeType":"YulFunctionCall","src":"14218:29:23"},"variableNames":[{"name":"result","nativeSrc":"14208:6:23","nodeType":"YulIdentifier","src":"14208:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10262,"isOffset":false,"isSlot":true,"src":"14238:6:23","suffix":"slot","valueSize":1},{"declaration":10265,"isOffset":false,"isSlot":false,"src":"14208:6:23","valueSize":1}],"id":10267,"nodeType":"InlineAssembly","src":"14185:72:23"}]},"documentation":{"id":10259,"nodeType":"StructuredDocumentation","src":"14001:45:23","text":"@dev Returns if `$` has been initialized."},"id":10269,"implemented":true,"kind":"function","modifiers":[],"name":"initialized","nameLocation":"14060:11:23","nodeType":"FunctionDefinition","parameters":{"id":10263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"mutability":"mutable","name":"$","nameLocation":"14093:1:23","nodeType":"VariableDeclaration","scope":10269,"src":"14072:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10261,"nodeType":"UserDefinedTypeName","pathNode":{"id":10260,"name":"LazyShuffler","nameLocations":["14072:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"14072:12:23"},"referencedDeclaration":10125,"src":"14072:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"14071:24:23"},"returnParameters":{"id":10266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10265,"mutability":"mutable","name":"result","nameLocation":"14124:6:23","nodeType":"VariableDeclaration","scope":10269,"src":"14119:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10264,"name":"bool","nodeType":"ElementaryTypeName","src":"14119:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14118:13:23"},"scope":10307,"src":"14051:212:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10279,"nodeType":"Block","src":"14459:368:23","statements":[{"AST":{"nativeSrc":"14521:300:23","nodeType":"YulBlock","src":"14521:300:23","statements":[{"nativeSrc":"14535:26:23","nodeType":"YulVariableDeclaration","src":"14535:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"14554:6:23","nodeType":"YulIdentifier","src":"14554:6:23"}],"functionName":{"name":"sload","nativeSrc":"14548:5:23","nodeType":"YulIdentifier","src":"14548:5:23"},"nativeSrc":"14548:13:23","nodeType":"YulFunctionCall","src":"14548:13:23"},"variables":[{"name":"state","nativeSrc":"14539:5:23","nodeType":"YulTypedName","src":"14539:5:23","type":""}]},{"body":{"nativeSrc":"14619:126:23","nodeType":"YulBlock","src":"14619:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14644:4:23","nodeType":"YulLiteral","src":"14644:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14650:10:23","nodeType":"YulLiteral","src":"14650:10:23","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"14637:6:23","nodeType":"YulIdentifier","src":"14637:6:23"},"nativeSrc":"14637:24:23","nodeType":"YulFunctionCall","src":"14637:24:23"},"nativeSrc":"14637:24:23","nodeType":"YulExpressionStatement","src":"14637:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14720:4:23","nodeType":"YulLiteral","src":"14720:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14726:4:23","nodeType":"YulLiteral","src":"14726:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"14713:6:23","nodeType":"YulIdentifier","src":"14713:6:23"},"nativeSrc":"14713:18:23","nodeType":"YulFunctionCall","src":"14713:18:23"},"nativeSrc":"14713:18:23","nodeType":"YulExpressionStatement","src":"14713:18:23"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"14612:5:23","nodeType":"YulIdentifier","src":"14612:5:23"}],"functionName":{"name":"iszero","nativeSrc":"14605:6:23","nodeType":"YulIdentifier","src":"14605:6:23"},"nativeSrc":"14605:13:23","nodeType":"YulFunctionCall","src":"14605:13:23"},"nativeSrc":"14602:143:23","nodeType":"YulIf","src":"14602:143:23"},{"nativeSrc":"14758:53:23","nodeType":"YulAssignment","src":"14758:53:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14775:3:23","nodeType":"YulLiteral","src":"14775:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"14780:5:23","nodeType":"YulIdentifier","src":"14780:5:23"}],"functionName":{"name":"shr","nativeSrc":"14771:3:23","nodeType":"YulIdentifier","src":"14771:3:23"},"nativeSrc":"14771:15:23","nodeType":"YulFunctionCall","src":"14771:15:23"},{"arguments":[{"kind":"number","nativeSrc":"14792:10:23","nodeType":"YulLiteral","src":"14792:10:23","type":"","value":"0xffffffff"},{"name":"state","nativeSrc":"14804:5:23","nodeType":"YulIdentifier","src":"14804:5:23"}],"functionName":{"name":"and","nativeSrc":"14788:3:23","nodeType":"YulIdentifier","src":"14788:3:23"},"nativeSrc":"14788:22:23","nodeType":"YulFunctionCall","src":"14788:22:23"}],"functionName":{"name":"eq","nativeSrc":"14768:2:23","nodeType":"YulIdentifier","src":"14768:2:23"},"nativeSrc":"14768:43:23","nodeType":"YulFunctionCall","src":"14768:43:23"},"variableNames":[{"name":"result","nativeSrc":"14758:6:23","nodeType":"YulIdentifier","src":"14758:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10273,"isOffset":false,"isSlot":true,"src":"14554:6:23","suffix":"slot","valueSize":1},{"declaration":10276,"isOffset":false,"isSlot":false,"src":"14758:6:23","valueSize":1}],"id":10278,"nodeType":"InlineAssembly","src":"14512:309:23"}]},"documentation":{"id":10270,"nodeType":"StructuredDocumentation","src":"14269:107:23","text":"@dev Returns if there are any more elements left to shuffle.\n Reverts if `$` is not initialized."},"id":10280,"implemented":true,"kind":"function","modifiers":[],"name":"finished","nameLocation":"14390:8:23","nodeType":"FunctionDefinition","parameters":{"id":10274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10273,"mutability":"mutable","name":"$","nameLocation":"14420:1:23","nodeType":"VariableDeclaration","scope":10280,"src":"14399:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10272,"nodeType":"UserDefinedTypeName","pathNode":{"id":10271,"name":"LazyShuffler","nameLocations":["14399:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"14399:12:23"},"referencedDeclaration":10125,"src":"14399:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"14398:24:23"},"returnParameters":{"id":10277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10276,"mutability":"mutable","name":"result","nameLocation":"14451:6:23","nodeType":"VariableDeclaration","scope":10280,"src":"14446:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10275,"name":"bool","nodeType":"ElementaryTypeName","src":"14446:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14445:13:23"},"scope":10307,"src":"14381:446:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10292,"nodeType":"Block","src":"15099:788:23","statements":[{"AST":{"nativeSrc":"15161:720:23","nodeType":"YulBlock","src":"15161:720:23","statements":[{"nativeSrc":"15175:26:23","nodeType":"YulVariableDeclaration","src":"15175:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"15194:6:23","nodeType":"YulIdentifier","src":"15194:6:23"}],"functionName":{"name":"sload","nativeSrc":"15188:5:23","nodeType":"YulIdentifier","src":"15188:5:23"},"nativeSrc":"15188:13:23","nodeType":"YulFunctionCall","src":"15188:13:23"},"variables":[{"name":"state","nativeSrc":"15179:5:23","nodeType":"YulTypedName","src":"15179:5:23","type":""}]},{"nativeSrc":"15242:24:23","nodeType":"YulVariableDeclaration","src":"15242:24:23","value":{"arguments":[{"kind":"number","nativeSrc":"15255:3:23","nodeType":"YulLiteral","src":"15255:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"15260:5:23","nodeType":"YulIdentifier","src":"15260:5:23"}],"functionName":{"name":"shr","nativeSrc":"15251:3:23","nodeType":"YulIdentifier","src":"15251:3:23"},"nativeSrc":"15251:15:23","nodeType":"YulFunctionCall","src":"15251:15:23"},"variables":[{"name":"n","nativeSrc":"15246:1:23","nodeType":"YulTypedName","src":"15246:1:23","type":""}]},{"body":{"nativeSrc":"15321:126:23","nodeType":"YulBlock","src":"15321:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15346:4:23","nodeType":"YulLiteral","src":"15346:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15352:10:23","nodeType":"YulLiteral","src":"15352:10:23","type":"","value":"0x61367cc4"}],"functionName":{"name":"mstore","nativeSrc":"15339:6:23","nodeType":"YulIdentifier","src":"15339:6:23"},"nativeSrc":"15339:24:23","nodeType":"YulFunctionCall","src":"15339:24:23"},"nativeSrc":"15339:24:23","nodeType":"YulExpressionStatement","src":"15339:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15422:4:23","nodeType":"YulLiteral","src":"15422:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15428:4:23","nodeType":"YulLiteral","src":"15428:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15415:6:23","nodeType":"YulIdentifier","src":"15415:6:23"},"nativeSrc":"15415:18:23","nodeType":"YulFunctionCall","src":"15415:18:23"},"nativeSrc":"15415:18:23","nodeType":"YulExpressionStatement","src":"15415:18:23"}]},"condition":{"arguments":[{"arguments":[{"name":"index","nativeSrc":"15310:5:23","nodeType":"YulIdentifier","src":"15310:5:23"},{"name":"n","nativeSrc":"15317:1:23","nodeType":"YulIdentifier","src":"15317:1:23"}],"functionName":{"name":"lt","nativeSrc":"15307:2:23","nodeType":"YulIdentifier","src":"15307:2:23"},"nativeSrc":"15307:12:23","nodeType":"YulFunctionCall","src":"15307:12:23"}],"functionName":{"name":"iszero","nativeSrc":"15300:6:23","nodeType":"YulIdentifier","src":"15300:6:23"},"nativeSrc":"15300:20:23","nodeType":"YulFunctionCall","src":"15300:20:23"},"nativeSrc":"15297:150:23","nodeType":"YulIf","src":"15297:150:23"},{"nativeSrc":"15460:24:23","nodeType":"YulVariableDeclaration","src":"15460:24:23","value":{"arguments":[{"name":"n","nativeSrc":"15474:1:23","nodeType":"YulIdentifier","src":"15474:1:23"},{"kind":"number","nativeSrc":"15477:6:23","nodeType":"YulLiteral","src":"15477:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"15471:2:23","nodeType":"YulIdentifier","src":"15471:2:23"},"nativeSrc":"15471:13:23","nodeType":"YulFunctionCall","src":"15471:13:23"},"variables":[{"name":"u32","nativeSrc":"15464:3:23","nodeType":"YulTypedName","src":"15464:3:23","type":""}]},{"nativeSrc":"15497:62:23","nodeType":"YulVariableDeclaration","src":"15497:62:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15518:1:23","nodeType":"YulLiteral","src":"15518:1:23","type":"","value":"4"},{"name":"u32","nativeSrc":"15521:3:23","nodeType":"YulIdentifier","src":"15521:3:23"}],"functionName":{"name":"sub","nativeSrc":"15514:3:23","nodeType":"YulIdentifier","src":"15514:3:23"},"nativeSrc":"15514:11:23","nodeType":"YulFunctionCall","src":"15514:11:23"},{"name":"index","nativeSrc":"15527:5:23","nodeType":"YulIdentifier","src":"15527:5:23"}],"functionName":{"name":"shr","nativeSrc":"15510:3:23","nodeType":"YulIdentifier","src":"15510:3:23"},"nativeSrc":"15510:23:23","nodeType":"YulFunctionCall","src":"15510:23:23"},{"arguments":[{"kind":"number","nativeSrc":"15539:2:23","nodeType":"YulLiteral","src":"15539:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"15547:2:23","nodeType":"YulLiteral","src":"15547:2:23","type":"","value":"32"},{"name":"state","nativeSrc":"15551:5:23","nodeType":"YulIdentifier","src":"15551:5:23"}],"functionName":{"name":"shl","nativeSrc":"15543:3:23","nodeType":"YulIdentifier","src":"15543:3:23"},"nativeSrc":"15543:14:23","nodeType":"YulFunctionCall","src":"15543:14:23"}],"functionName":{"name":"shr","nativeSrc":"15535:3:23","nodeType":"YulIdentifier","src":"15535:3:23"},"nativeSrc":"15535:23:23","nodeType":"YulFunctionCall","src":"15535:23:23"}],"functionName":{"name":"add","nativeSrc":"15506:3:23","nodeType":"YulIdentifier","src":"15506:3:23"},"nativeSrc":"15506:53:23","nodeType":"YulFunctionCall","src":"15506:53:23"},"variables":[{"name":"s","nativeSrc":"15501:1:23","nodeType":"YulTypedName","src":"15501:1:23","type":""}]},{"nativeSrc":"15588:51:23","nodeType":"YulVariableDeclaration","src":"15588:51:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15605:1:23","nodeType":"YulLiteral","src":"15605:1:23","type":"","value":"4"},{"name":"u32","nativeSrc":"15608:3:23","nodeType":"YulIdentifier","src":"15608:3:23"}],"functionName":{"name":"add","nativeSrc":"15601:3:23","nodeType":"YulIdentifier","src":"15601:3:23"},"nativeSrc":"15601:11:23","nodeType":"YulFunctionCall","src":"15601:11:23"},{"arguments":[{"name":"index","nativeSrc":"15618:5:23","nodeType":"YulIdentifier","src":"15618:5:23"},{"arguments":[{"name":"u32","nativeSrc":"15629:3:23","nodeType":"YulIdentifier","src":"15629:3:23"},{"kind":"number","nativeSrc":"15634:2:23","nodeType":"YulLiteral","src":"15634:2:23","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"15625:3:23","nodeType":"YulIdentifier","src":"15625:3:23"},"nativeSrc":"15625:12:23","nodeType":"YulFunctionCall","src":"15625:12:23"}],"functionName":{"name":"and","nativeSrc":"15614:3:23","nodeType":"YulIdentifier","src":"15614:3:23"},"nativeSrc":"15614:24:23","nodeType":"YulFunctionCall","src":"15614:24:23"}],"functionName":{"name":"shl","nativeSrc":"15597:3:23","nodeType":"YulIdentifier","src":"15597:3:23"},"nativeSrc":"15597:42:23","nodeType":"YulFunctionCall","src":"15597:42:23"},"variables":[{"name":"o","nativeSrc":"15592:1:23","nodeType":"YulTypedName","src":"15592:1:23","type":""}]},{"nativeSrc":"15682:37:23","nodeType":"YulVariableDeclaration","src":"15682:37:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32","nativeSrc":"15703:3:23","nodeType":"YulIdentifier","src":"15703:3:23"},{"kind":"number","nativeSrc":"15708:2:23","nodeType":"YulLiteral","src":"15708:2:23","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"15699:3:23","nodeType":"YulIdentifier","src":"15699:3:23"},"nativeSrc":"15699:12:23","nodeType":"YulFunctionCall","src":"15699:12:23"},{"kind":"number","nativeSrc":"15713:1:23","nodeType":"YulLiteral","src":"15713:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15695:3:23","nodeType":"YulIdentifier","src":"15695:3:23"},"nativeSrc":"15695:20:23","nodeType":"YulFunctionCall","src":"15695:20:23"},{"kind":"number","nativeSrc":"15717:1:23","nodeType":"YulLiteral","src":"15717:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15691:3:23","nodeType":"YulIdentifier","src":"15691:3:23"},"nativeSrc":"15691:28:23","nodeType":"YulFunctionCall","src":"15691:28:23"},"variables":[{"name":"m","nativeSrc":"15686:1:23","nodeType":"YulTypedName","src":"15686:1:23","type":""}]},{"nativeSrc":"15747:34:23","nodeType":"YulAssignment","src":"15747:34:23","value":{"arguments":[{"name":"m","nativeSrc":"15761:1:23","nodeType":"YulIdentifier","src":"15761:1:23"},{"arguments":[{"name":"o","nativeSrc":"15768:1:23","nodeType":"YulIdentifier","src":"15768:1:23"},{"arguments":[{"name":"s","nativeSrc":"15777:1:23","nodeType":"YulIdentifier","src":"15777:1:23"}],"functionName":{"name":"sload","nativeSrc":"15771:5:23","nodeType":"YulIdentifier","src":"15771:5:23"},"nativeSrc":"15771:8:23","nodeType":"YulFunctionCall","src":"15771:8:23"}],"functionName":{"name":"shr","nativeSrc":"15764:3:23","nodeType":"YulIdentifier","src":"15764:3:23"},"nativeSrc":"15764:16:23","nodeType":"YulFunctionCall","src":"15764:16:23"}],"functionName":{"name":"and","nativeSrc":"15757:3:23","nodeType":"YulIdentifier","src":"15757:3:23"},"nativeSrc":"15757:24:23","nodeType":"YulFunctionCall","src":"15757:24:23"},"variableNames":[{"name":"result","nativeSrc":"15747:6:23","nodeType":"YulIdentifier","src":"15747:6:23"}]},{"nativeSrc":"15794:77:23","nodeType":"YulAssignment","src":"15794:77:23","value":{"arguments":[{"name":"index","nativeSrc":"15808:5:23","nodeType":"YulIdentifier","src":"15808:5:23"},{"arguments":[{"arguments":[{"name":"index","nativeSrc":"15823:5:23","nodeType":"YulIdentifier","src":"15823:5:23"},{"arguments":[{"name":"result","nativeSrc":"15834:6:23","nodeType":"YulIdentifier","src":"15834:6:23"},{"kind":"number","nativeSrc":"15842:1:23","nodeType":"YulLiteral","src":"15842:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15830:3:23","nodeType":"YulIdentifier","src":"15830:3:23"},"nativeSrc":"15830:14:23","nodeType":"YulFunctionCall","src":"15830:14:23"}],"functionName":{"name":"xor","nativeSrc":"15819:3:23","nodeType":"YulIdentifier","src":"15819:3:23"},"nativeSrc":"15819:26:23","nodeType":"YulFunctionCall","src":"15819:26:23"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"15861:6:23","nodeType":"YulIdentifier","src":"15861:6:23"}],"functionName":{"name":"iszero","nativeSrc":"15854:6:23","nodeType":"YulIdentifier","src":"15854:6:23"},"nativeSrc":"15854:14:23","nodeType":"YulFunctionCall","src":"15854:14:23"}],"functionName":{"name":"iszero","nativeSrc":"15847:6:23","nodeType":"YulIdentifier","src":"15847:6:23"},"nativeSrc":"15847:22:23","nodeType":"YulFunctionCall","src":"15847:22:23"}],"functionName":{"name":"mul","nativeSrc":"15815:3:23","nodeType":"YulIdentifier","src":"15815:3:23"},"nativeSrc":"15815:55:23","nodeType":"YulFunctionCall","src":"15815:55:23"}],"functionName":{"name":"xor","nativeSrc":"15804:3:23","nodeType":"YulIdentifier","src":"15804:3:23"},"nativeSrc":"15804:67:23","nodeType":"YulFunctionCall","src":"15804:67:23"},"variableNames":[{"name":"result","nativeSrc":"15794:6:23","nodeType":"YulIdentifier","src":"15794:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10284,"isOffset":false,"isSlot":true,"src":"15194:6:23","suffix":"slot","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15310:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15527:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15618:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15808:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15823:5:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15747:6:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15794:6:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15834:6:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15861:6:23","valueSize":1}],"id":10291,"nodeType":"InlineAssembly","src":"15152:729:23"}]},"documentation":{"id":10281,"nodeType":"StructuredDocumentation","src":"14833:170:23","text":"@dev Returns the current value stored at `index`, accounting for all historical shuffling.\n Reverts if `index` is greater than or equal to the `length` of `$`."},"id":10293,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"15017:3:23","nodeType":"FunctionDefinition","parameters":{"id":10287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10284,"mutability":"mutable","name":"$","nameLocation":"15042:1:23","nodeType":"VariableDeclaration","scope":10293,"src":"15021:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10283,"nodeType":"UserDefinedTypeName","pathNode":{"id":10282,"name":"LazyShuffler","nameLocations":["15021:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"15021:12:23"},"referencedDeclaration":10125,"src":"15021:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10286,"mutability":"mutable","name":"index","nameLocation":"15053:5:23","nodeType":"VariableDeclaration","scope":10293,"src":"15045:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10285,"name":"uint256","nodeType":"ElementaryTypeName","src":"15045:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15020:39:23"},"returnParameters":{"id":10290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10289,"mutability":"mutable","name":"result","nameLocation":"15091:6:23","nodeType":"VariableDeclaration","scope":10293,"src":"15083:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10288,"name":"uint256","nodeType":"ElementaryTypeName","src":"15083:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15082:16:23"},"scope":10307,"src":"15008:879:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10305,"nodeType":"Block","src":"16339:2072:23","statements":[{"AST":{"nativeSrc":"16401:2004:23","nodeType":"YulBlock","src":"16401:2004:23","statements":[{"body":{"nativeSrc":"16457:421:23","nodeType":"YulBlock","src":"16457:421:23","statements":[{"nativeSrc":"16475:62:23","nodeType":"YulVariableDeclaration","src":"16475:62:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16497:1:23","nodeType":"YulLiteral","src":"16497:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"16500:4:23","nodeType":"YulIdentifier","src":"16500:4:23"}],"functionName":{"name":"sub","nativeSrc":"16493:3:23","nodeType":"YulIdentifier","src":"16493:3:23"},"nativeSrc":"16493:12:23","nodeType":"YulFunctionCall","src":"16493:12:23"},{"name":"i_","nativeSrc":"16507:2:23","nodeType":"YulIdentifier","src":"16507:2:23"}],"functionName":{"name":"shr","nativeSrc":"16489:3:23","nodeType":"YulIdentifier","src":"16489:3:23"},"nativeSrc":"16489:21:23","nodeType":"YulFunctionCall","src":"16489:21:23"},{"arguments":[{"kind":"number","nativeSrc":"16516:2:23","nodeType":"YulLiteral","src":"16516:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"16524:2:23","nodeType":"YulLiteral","src":"16524:2:23","type":"","value":"32"},{"name":"state_","nativeSrc":"16528:6:23","nodeType":"YulIdentifier","src":"16528:6:23"}],"functionName":{"name":"shl","nativeSrc":"16520:3:23","nodeType":"YulIdentifier","src":"16520:3:23"},"nativeSrc":"16520:15:23","nodeType":"YulFunctionCall","src":"16520:15:23"}],"functionName":{"name":"shr","nativeSrc":"16512:3:23","nodeType":"YulIdentifier","src":"16512:3:23"},"nativeSrc":"16512:24:23","nodeType":"YulFunctionCall","src":"16512:24:23"}],"functionName":{"name":"add","nativeSrc":"16485:3:23","nodeType":"YulIdentifier","src":"16485:3:23"},"nativeSrc":"16485:52:23","nodeType":"YulFunctionCall","src":"16485:52:23"},"variables":[{"name":"s_","nativeSrc":"16479:2:23","nodeType":"YulTypedName","src":"16479:2:23","type":""}]},{"nativeSrc":"16570:51:23","nodeType":"YulVariableDeclaration","src":"16570:51:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16588:1:23","nodeType":"YulLiteral","src":"16588:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"16591:4:23","nodeType":"YulIdentifier","src":"16591:4:23"}],"functionName":{"name":"add","nativeSrc":"16584:3:23","nodeType":"YulIdentifier","src":"16584:3:23"},"nativeSrc":"16584:12:23","nodeType":"YulFunctionCall","src":"16584:12:23"},{"arguments":[{"name":"i_","nativeSrc":"16602:2:23","nodeType":"YulIdentifier","src":"16602:2:23"},{"arguments":[{"name":"u32_","nativeSrc":"16610:4:23","nodeType":"YulIdentifier","src":"16610:4:23"},{"kind":"number","nativeSrc":"16616:2:23","nodeType":"YulLiteral","src":"16616:2:23","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"16606:3:23","nodeType":"YulIdentifier","src":"16606:3:23"},"nativeSrc":"16606:13:23","nodeType":"YulFunctionCall","src":"16606:13:23"}],"functionName":{"name":"and","nativeSrc":"16598:3:23","nodeType":"YulIdentifier","src":"16598:3:23"},"nativeSrc":"16598:22:23","nodeType":"YulFunctionCall","src":"16598:22:23"}],"functionName":{"name":"shl","nativeSrc":"16580:3:23","nodeType":"YulIdentifier","src":"16580:3:23"},"nativeSrc":"16580:41:23","nodeType":"YulFunctionCall","src":"16580:41:23"},"variables":[{"name":"o_","nativeSrc":"16574:2:23","nodeType":"YulTypedName","src":"16574:2:23","type":""}]},{"nativeSrc":"16668:39:23","nodeType":"YulVariableDeclaration","src":"16668:39:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32_","nativeSrc":"16690:4:23","nodeType":"YulIdentifier","src":"16690:4:23"},{"kind":"number","nativeSrc":"16696:2:23","nodeType":"YulLiteral","src":"16696:2:23","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"16686:3:23","nodeType":"YulIdentifier","src":"16686:3:23"},"nativeSrc":"16686:13:23","nodeType":"YulFunctionCall","src":"16686:13:23"},{"kind":"number","nativeSrc":"16701:1:23","nodeType":"YulLiteral","src":"16701:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"16682:3:23","nodeType":"YulIdentifier","src":"16682:3:23"},"nativeSrc":"16682:21:23","nodeType":"YulFunctionCall","src":"16682:21:23"},{"kind":"number","nativeSrc":"16705:1:23","nodeType":"YulLiteral","src":"16705:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16678:3:23","nodeType":"YulIdentifier","src":"16678:3:23"},"nativeSrc":"16678:29:23","nodeType":"YulFunctionCall","src":"16678:29:23"},"variables":[{"name":"m_","nativeSrc":"16672:2:23","nodeType":"YulTypedName","src":"16672:2:23","type":""}]},{"nativeSrc":"16739:37:23","nodeType":"YulAssignment","src":"16739:37:23","value":{"arguments":[{"name":"m_","nativeSrc":"16753:2:23","nodeType":"YulIdentifier","src":"16753:2:23"},{"arguments":[{"name":"o_","nativeSrc":"16761:2:23","nodeType":"YulIdentifier","src":"16761:2:23"},{"arguments":[{"name":"s_","nativeSrc":"16771:2:23","nodeType":"YulIdentifier","src":"16771:2:23"}],"functionName":{"name":"sload","nativeSrc":"16765:5:23","nodeType":"YulIdentifier","src":"16765:5:23"},"nativeSrc":"16765:9:23","nodeType":"YulFunctionCall","src":"16765:9:23"}],"functionName":{"name":"shr","nativeSrc":"16757:3:23","nodeType":"YulIdentifier","src":"16757:3:23"},"nativeSrc":"16757:18:23","nodeType":"YulFunctionCall","src":"16757:18:23"}],"functionName":{"name":"and","nativeSrc":"16749:3:23","nodeType":"YulIdentifier","src":"16749:3:23"},"nativeSrc":"16749:27:23","nodeType":"YulFunctionCall","src":"16749:27:23"},"variableNames":[{"name":"_value","nativeSrc":"16739:6:23","nodeType":"YulIdentifier","src":"16739:6:23"}]},{"nativeSrc":"16793:71:23","nodeType":"YulAssignment","src":"16793:71:23","value":{"arguments":[{"name":"i_","nativeSrc":"16807:2:23","nodeType":"YulIdentifier","src":"16807:2:23"},{"arguments":[{"arguments":[{"name":"i_","nativeSrc":"16819:2:23","nodeType":"YulIdentifier","src":"16819:2:23"},{"arguments":[{"name":"_value","nativeSrc":"16827:6:23","nodeType":"YulIdentifier","src":"16827:6:23"},{"kind":"number","nativeSrc":"16835:1:23","nodeType":"YulLiteral","src":"16835:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16823:3:23","nodeType":"YulIdentifier","src":"16823:3:23"},"nativeSrc":"16823:14:23","nodeType":"YulFunctionCall","src":"16823:14:23"}],"functionName":{"name":"xor","nativeSrc":"16815:3:23","nodeType":"YulIdentifier","src":"16815:3:23"},"nativeSrc":"16815:23:23","nodeType":"YulFunctionCall","src":"16815:23:23"},{"arguments":[{"arguments":[{"name":"_value","nativeSrc":"16854:6:23","nodeType":"YulIdentifier","src":"16854:6:23"}],"functionName":{"name":"iszero","nativeSrc":"16847:6:23","nodeType":"YulIdentifier","src":"16847:6:23"},"nativeSrc":"16847:14:23","nodeType":"YulFunctionCall","src":"16847:14:23"}],"functionName":{"name":"iszero","nativeSrc":"16840:6:23","nodeType":"YulIdentifier","src":"16840:6:23"},"nativeSrc":"16840:22:23","nodeType":"YulFunctionCall","src":"16840:22:23"}],"functionName":{"name":"mul","nativeSrc":"16811:3:23","nodeType":"YulIdentifier","src":"16811:3:23"},"nativeSrc":"16811:52:23","nodeType":"YulFunctionCall","src":"16811:52:23"}],"functionName":{"name":"xor","nativeSrc":"16803:3:23","nodeType":"YulIdentifier","src":"16803:3:23"},"nativeSrc":"16803:61:23","nodeType":"YulFunctionCall","src":"16803:61:23"},"variableNames":[{"name":"_value","nativeSrc":"16793:6:23","nodeType":"YulIdentifier","src":"16793:6:23"}]}]},"name":"_get","nativeSrc":"16415:463:23","nodeType":"YulFunctionDefinition","parameters":[{"name":"u32_","nativeSrc":"16429:4:23","nodeType":"YulTypedName","src":"16429:4:23","type":""},{"name":"state_","nativeSrc":"16435:6:23","nodeType":"YulTypedName","src":"16435:6:23","type":""},{"name":"i_","nativeSrc":"16443:2:23","nodeType":"YulTypedName","src":"16443:2:23","type":""}],"returnVariables":[{"name":"_value","nativeSrc":"16450:6:23","nodeType":"YulTypedName","src":"16450:6:23","type":""}],"src":"16415:463:23"},{"body":{"nativeSrc":"16931:487:23","nodeType":"YulBlock","src":"16931:487:23","statements":[{"nativeSrc":"16949:62:23","nodeType":"YulVariableDeclaration","src":"16949:62:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16971:1:23","nodeType":"YulLiteral","src":"16971:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"16974:4:23","nodeType":"YulIdentifier","src":"16974:4:23"}],"functionName":{"name":"sub","nativeSrc":"16967:3:23","nodeType":"YulIdentifier","src":"16967:3:23"},"nativeSrc":"16967:12:23","nodeType":"YulFunctionCall","src":"16967:12:23"},{"name":"i_","nativeSrc":"16981:2:23","nodeType":"YulIdentifier","src":"16981:2:23"}],"functionName":{"name":"shr","nativeSrc":"16963:3:23","nodeType":"YulIdentifier","src":"16963:3:23"},"nativeSrc":"16963:21:23","nodeType":"YulFunctionCall","src":"16963:21:23"},{"arguments":[{"kind":"number","nativeSrc":"16990:2:23","nodeType":"YulLiteral","src":"16990:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"16998:2:23","nodeType":"YulLiteral","src":"16998:2:23","type":"","value":"32"},{"name":"state_","nativeSrc":"17002:6:23","nodeType":"YulIdentifier","src":"17002:6:23"}],"functionName":{"name":"shl","nativeSrc":"16994:3:23","nodeType":"YulIdentifier","src":"16994:3:23"},"nativeSrc":"16994:15:23","nodeType":"YulFunctionCall","src":"16994:15:23"}],"functionName":{"name":"shr","nativeSrc":"16986:3:23","nodeType":"YulIdentifier","src":"16986:3:23"},"nativeSrc":"16986:24:23","nodeType":"YulFunctionCall","src":"16986:24:23"}],"functionName":{"name":"add","nativeSrc":"16959:3:23","nodeType":"YulIdentifier","src":"16959:3:23"},"nativeSrc":"16959:52:23","nodeType":"YulFunctionCall","src":"16959:52:23"},"variables":[{"name":"s_","nativeSrc":"16953:2:23","nodeType":"YulTypedName","src":"16953:2:23","type":""}]},{"nativeSrc":"17044:51:23","nodeType":"YulVariableDeclaration","src":"17044:51:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17062:1:23","nodeType":"YulLiteral","src":"17062:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"17065:4:23","nodeType":"YulIdentifier","src":"17065:4:23"}],"functionName":{"name":"add","nativeSrc":"17058:3:23","nodeType":"YulIdentifier","src":"17058:3:23"},"nativeSrc":"17058:12:23","nodeType":"YulFunctionCall","src":"17058:12:23"},{"arguments":[{"name":"i_","nativeSrc":"17076:2:23","nodeType":"YulIdentifier","src":"17076:2:23"},{"arguments":[{"name":"u32_","nativeSrc":"17084:4:23","nodeType":"YulIdentifier","src":"17084:4:23"},{"kind":"number","nativeSrc":"17090:2:23","nodeType":"YulLiteral","src":"17090:2:23","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"17080:3:23","nodeType":"YulIdentifier","src":"17080:3:23"},"nativeSrc":"17080:13:23","nodeType":"YulFunctionCall","src":"17080:13:23"}],"functionName":{"name":"and","nativeSrc":"17072:3:23","nodeType":"YulIdentifier","src":"17072:3:23"},"nativeSrc":"17072:22:23","nodeType":"YulFunctionCall","src":"17072:22:23"}],"functionName":{"name":"shl","nativeSrc":"17054:3:23","nodeType":"YulIdentifier","src":"17054:3:23"},"nativeSrc":"17054:41:23","nodeType":"YulFunctionCall","src":"17054:41:23"},"variables":[{"name":"o_","nativeSrc":"17048:2:23","nodeType":"YulTypedName","src":"17048:2:23","type":""}]},{"nativeSrc":"17142:39:23","nodeType":"YulVariableDeclaration","src":"17142:39:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32_","nativeSrc":"17164:4:23","nodeType":"YulIdentifier","src":"17164:4:23"},{"kind":"number","nativeSrc":"17170:2:23","nodeType":"YulLiteral","src":"17170:2:23","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"17160:3:23","nodeType":"YulIdentifier","src":"17160:3:23"},"nativeSrc":"17160:13:23","nodeType":"YulFunctionCall","src":"17160:13:23"},{"kind":"number","nativeSrc":"17175:1:23","nodeType":"YulLiteral","src":"17175:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17156:3:23","nodeType":"YulIdentifier","src":"17156:3:23"},"nativeSrc":"17156:21:23","nodeType":"YulFunctionCall","src":"17156:21:23"},{"kind":"number","nativeSrc":"17179:1:23","nodeType":"YulLiteral","src":"17179:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17152:3:23","nodeType":"YulIdentifier","src":"17152:3:23"},"nativeSrc":"17152:29:23","nodeType":"YulFunctionCall","src":"17152:29:23"},"variables":[{"name":"m_","nativeSrc":"17146:2:23","nodeType":"YulTypedName","src":"17146:2:23","type":""}]},{"nativeSrc":"17213:19:23","nodeType":"YulVariableDeclaration","src":"17213:19:23","value":{"arguments":[{"name":"s_","nativeSrc":"17229:2:23","nodeType":"YulIdentifier","src":"17229:2:23"}],"functionName":{"name":"sload","nativeSrc":"17223:5:23","nodeType":"YulIdentifier","src":"17223:5:23"},"nativeSrc":"17223:9:23","nodeType":"YulFunctionCall","src":"17223:9:23"},"variables":[{"name":"v_","nativeSrc":"17217:2:23","nodeType":"YulTypedName","src":"17217:2:23","type":""}]},{"nativeSrc":"17271:53:23","nodeType":"YulAssignment","src":"17271:53:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"i_","nativeSrc":"17295:2:23","nodeType":"YulIdentifier","src":"17295:2:23"},{"name":"value_","nativeSrc":"17299:6:23","nodeType":"YulIdentifier","src":"17299:6:23"}],"functionName":{"name":"eq","nativeSrc":"17292:2:23","nodeType":"YulIdentifier","src":"17292:2:23"},"nativeSrc":"17292:14:23","nodeType":"YulFunctionCall","src":"17292:14:23"}],"functionName":{"name":"iszero","nativeSrc":"17285:6:23","nodeType":"YulIdentifier","src":"17285:6:23"},"nativeSrc":"17285:22:23","nodeType":"YulFunctionCall","src":"17285:22:23"},{"arguments":[{"name":"value_","nativeSrc":"17313:6:23","nodeType":"YulIdentifier","src":"17313:6:23"},{"kind":"number","nativeSrc":"17321:1:23","nodeType":"YulLiteral","src":"17321:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17309:3:23","nodeType":"YulIdentifier","src":"17309:3:23"},"nativeSrc":"17309:14:23","nodeType":"YulFunctionCall","src":"17309:14:23"}],"functionName":{"name":"mul","nativeSrc":"17281:3:23","nodeType":"YulIdentifier","src":"17281:3:23"},"nativeSrc":"17281:43:23","nodeType":"YulFunctionCall","src":"17281:43:23"},"variableNames":[{"name":"value_","nativeSrc":"17271:6:23","nodeType":"YulIdentifier","src":"17271:6:23"}]},{"expression":{"arguments":[{"name":"s_","nativeSrc":"17348:2:23","nodeType":"YulIdentifier","src":"17348:2:23"},{"arguments":[{"name":"v_","nativeSrc":"17356:2:23","nodeType":"YulIdentifier","src":"17356:2:23"},{"arguments":[{"name":"o_","nativeSrc":"17364:2:23","nodeType":"YulIdentifier","src":"17364:2:23"},{"arguments":[{"name":"m_","nativeSrc":"17372:2:23","nodeType":"YulIdentifier","src":"17372:2:23"},{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"17384:2:23","nodeType":"YulIdentifier","src":"17384:2:23"},{"name":"v_","nativeSrc":"17388:2:23","nodeType":"YulIdentifier","src":"17388:2:23"}],"functionName":{"name":"shr","nativeSrc":"17380:3:23","nodeType":"YulIdentifier","src":"17380:3:23"},"nativeSrc":"17380:11:23","nodeType":"YulFunctionCall","src":"17380:11:23"},{"name":"value_","nativeSrc":"17393:6:23","nodeType":"YulIdentifier","src":"17393:6:23"}],"functionName":{"name":"xor","nativeSrc":"17376:3:23","nodeType":"YulIdentifier","src":"17376:3:23"},"nativeSrc":"17376:24:23","nodeType":"YulFunctionCall","src":"17376:24:23"}],"functionName":{"name":"and","nativeSrc":"17368:3:23","nodeType":"YulIdentifier","src":"17368:3:23"},"nativeSrc":"17368:33:23","nodeType":"YulFunctionCall","src":"17368:33:23"}],"functionName":{"name":"shl","nativeSrc":"17360:3:23","nodeType":"YulIdentifier","src":"17360:3:23"},"nativeSrc":"17360:42:23","nodeType":"YulFunctionCall","src":"17360:42:23"}],"functionName":{"name":"xor","nativeSrc":"17352:3:23","nodeType":"YulIdentifier","src":"17352:3:23"},"nativeSrc":"17352:51:23","nodeType":"YulFunctionCall","src":"17352:51:23"}],"functionName":{"name":"sstore","nativeSrc":"17341:6:23","nodeType":"YulIdentifier","src":"17341:6:23"},"nativeSrc":"17341:63:23","nodeType":"YulFunctionCall","src":"17341:63:23"},"nativeSrc":"17341:63:23","nodeType":"YulExpressionStatement","src":"17341:63:23"}]},"name":"_set","nativeSrc":"16891:527:23","nodeType":"YulFunctionDefinition","parameters":[{"name":"u32_","nativeSrc":"16905:4:23","nodeType":"YulTypedName","src":"16905:4:23","type":""},{"name":"state_","nativeSrc":"16911:6:23","nodeType":"YulTypedName","src":"16911:6:23","type":""},{"name":"i_","nativeSrc":"16919:2:23","nodeType":"YulTypedName","src":"16919:2:23","type":""},{"name":"value_","nativeSrc":"16923:6:23","nodeType":"YulTypedName","src":"16923:6:23","type":""}],"src":"16891:527:23"},{"nativeSrc":"17431:26:23","nodeType":"YulVariableDeclaration","src":"17431:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"17450:6:23","nodeType":"YulIdentifier","src":"17450:6:23"}],"functionName":{"name":"sload","nativeSrc":"17444:5:23","nodeType":"YulIdentifier","src":"17444:5:23"},"nativeSrc":"17444:13:23","nodeType":"YulFunctionCall","src":"17444:13:23"},"variables":[{"name":"state","nativeSrc":"17435:5:23","nodeType":"YulTypedName","src":"17435:5:23","type":""}]},{"nativeSrc":"17498:38:23","nodeType":"YulVariableDeclaration","src":"17498:38:23","value":{"arguments":[{"kind":"number","nativeSrc":"17518:10:23","nodeType":"YulLiteral","src":"17518:10:23","type":"","value":"0xffffffff"},{"name":"state","nativeSrc":"17530:5:23","nodeType":"YulIdentifier","src":"17530:5:23"}],"functionName":{"name":"and","nativeSrc":"17514:3:23","nodeType":"YulIdentifier","src":"17514:3:23"},"nativeSrc":"17514:22:23","nodeType":"YulFunctionCall","src":"17514:22:23"},"variables":[{"name":"shuffled","nativeSrc":"17502:8:23","nodeType":"YulTypedName","src":"17502:8:23","type":""}]},{"nativeSrc":"17581:24:23","nodeType":"YulVariableDeclaration","src":"17581:24:23","value":{"arguments":[{"kind":"number","nativeSrc":"17594:3:23","nodeType":"YulLiteral","src":"17594:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"17599:5:23","nodeType":"YulIdentifier","src":"17599:5:23"}],"functionName":{"name":"shr","nativeSrc":"17590:3:23","nodeType":"YulIdentifier","src":"17590:3:23"},"nativeSrc":"17590:15:23","nodeType":"YulFunctionCall","src":"17590:15:23"},"variables":[{"name":"n","nativeSrc":"17585:1:23","nodeType":"YulTypedName","src":"17585:1:23","type":""}]},{"nativeSrc":"17636:33:23","nodeType":"YulVariableDeclaration","src":"17636:33:23","value":{"arguments":[{"name":"n","nativeSrc":"17657:1:23","nodeType":"YulIdentifier","src":"17657:1:23"},{"name":"shuffled","nativeSrc":"17660:8:23","nodeType":"YulIdentifier","src":"17660:8:23"}],"functionName":{"name":"sub","nativeSrc":"17653:3:23","nodeType":"YulIdentifier","src":"17653:3:23"},"nativeSrc":"17653:16:23","nodeType":"YulFunctionCall","src":"17653:16:23"},"variables":[{"name":"remainder","nativeSrc":"17640:9:23","nodeType":"YulTypedName","src":"17640:9:23","type":""}]},{"body":{"nativeSrc":"17742:119:23","nodeType":"YulBlock","src":"17742:119:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17767:4:23","nodeType":"YulLiteral","src":"17767:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17773:10:23","nodeType":"YulLiteral","src":"17773:10:23","type":"","value":"0x51065f79"}],"functionName":{"name":"mstore","nativeSrc":"17760:6:23","nodeType":"YulIdentifier","src":"17760:6:23"},"nativeSrc":"17760:24:23","nodeType":"YulFunctionCall","src":"17760:24:23"},"nativeSrc":"17760:24:23","nodeType":"YulExpressionStatement","src":"17760:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17836:4:23","nodeType":"YulLiteral","src":"17836:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"17842:4:23","nodeType":"YulLiteral","src":"17842:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"17829:6:23","nodeType":"YulIdentifier","src":"17829:6:23"},"nativeSrc":"17829:18:23","nodeType":"YulFunctionCall","src":"17829:18:23"},"nativeSrc":"17829:18:23","nodeType":"YulExpressionStatement","src":"17829:18:23"}]},"condition":{"arguments":[{"name":"remainder","nativeSrc":"17731:9:23","nodeType":"YulIdentifier","src":"17731:9:23"}],"functionName":{"name":"iszero","nativeSrc":"17724:6:23","nodeType":"YulIdentifier","src":"17724:6:23"},"nativeSrc":"17724:17:23","nodeType":"YulFunctionCall","src":"17724:17:23"},"nativeSrc":"17721:140:23","nodeType":"YulIf","src":"17721:140:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17881:4:23","nodeType":"YulLiteral","src":"17881:4:23","type":"","value":"0x00"},{"name":"randomness","nativeSrc":"17887:10:23","nodeType":"YulIdentifier","src":"17887:10:23"}],"functionName":{"name":"mstore","nativeSrc":"17874:6:23","nodeType":"YulIdentifier","src":"17874:6:23"},"nativeSrc":"17874:24:23","nodeType":"YulFunctionCall","src":"17874:24:23"},"nativeSrc":"17874:24:23","nodeType":"YulExpressionStatement","src":"17874:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17962:4:23","nodeType":"YulLiteral","src":"17962:4:23","type":"","value":"0x20"},{"name":"shuffled","nativeSrc":"17968:8:23","nodeType":"YulIdentifier","src":"17968:8:23"}],"functionName":{"name":"mstore","nativeSrc":"17955:6:23","nodeType":"YulIdentifier","src":"17955:6:23"},"nativeSrc":"17955:22:23","nodeType":"YulFunctionCall","src":"17955:22:23"},"nativeSrc":"17955:22:23","nodeType":"YulExpressionStatement","src":"17955:22:23"},{"nativeSrc":"18040:65:23","nodeType":"YulVariableDeclaration","src":"18040:65:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18071:4:23","nodeType":"YulLiteral","src":"18071:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18077:4:23","nodeType":"YulLiteral","src":"18077:4:23","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"18061:9:23","nodeType":"YulIdentifier","src":"18061:9:23"},"nativeSrc":"18061:21:23","nodeType":"YulFunctionCall","src":"18061:21:23"},{"name":"remainder","nativeSrc":"18084:9:23","nodeType":"YulIdentifier","src":"18084:9:23"}],"functionName":{"name":"mod","nativeSrc":"18057:3:23","nodeType":"YulIdentifier","src":"18057:3:23"},"nativeSrc":"18057:37:23","nodeType":"YulFunctionCall","src":"18057:37:23"},{"name":"shuffled","nativeSrc":"18096:8:23","nodeType":"YulIdentifier","src":"18096:8:23"}],"functionName":{"name":"add","nativeSrc":"18053:3:23","nodeType":"YulIdentifier","src":"18053:3:23"},"nativeSrc":"18053:52:23","nodeType":"YulFunctionCall","src":"18053:52:23"},"variables":[{"name":"index","nativeSrc":"18044:5:23","nodeType":"YulTypedName","src":"18044:5:23","type":""}]},{"nativeSrc":"18118:43:23","nodeType":"YulAssignment","src":"18118:43:23","value":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18136:1:23","nodeType":"YulIdentifier","src":"18136:1:23"},{"kind":"number","nativeSrc":"18139:6:23","nodeType":"YulLiteral","src":"18139:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18133:2:23","nodeType":"YulIdentifier","src":"18133:2:23"},"nativeSrc":"18133:13:23","nodeType":"YulFunctionCall","src":"18133:13:23"},{"name":"state","nativeSrc":"18148:5:23","nodeType":"YulIdentifier","src":"18148:5:23"},{"name":"index","nativeSrc":"18155:5:23","nodeType":"YulIdentifier","src":"18155:5:23"}],"functionName":{"name":"_get","nativeSrc":"18128:4:23","nodeType":"YulIdentifier","src":"18128:4:23"},"nativeSrc":"18128:33:23","nodeType":"YulFunctionCall","src":"18128:33:23"},"variableNames":[{"name":"chosen","nativeSrc":"18118:6:23","nodeType":"YulIdentifier","src":"18118:6:23"}]},{"expression":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18182:1:23","nodeType":"YulIdentifier","src":"18182:1:23"},{"kind":"number","nativeSrc":"18185:6:23","nodeType":"YulLiteral","src":"18185:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18179:2:23","nodeType":"YulIdentifier","src":"18179:2:23"},"nativeSrc":"18179:13:23","nodeType":"YulFunctionCall","src":"18179:13:23"},{"name":"state","nativeSrc":"18194:5:23","nodeType":"YulIdentifier","src":"18194:5:23"},{"name":"index","nativeSrc":"18201:5:23","nodeType":"YulIdentifier","src":"18201:5:23"},{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18216:1:23","nodeType":"YulIdentifier","src":"18216:1:23"},{"kind":"number","nativeSrc":"18219:6:23","nodeType":"YulLiteral","src":"18219:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18213:2:23","nodeType":"YulIdentifier","src":"18213:2:23"},"nativeSrc":"18213:13:23","nodeType":"YulFunctionCall","src":"18213:13:23"},{"name":"state","nativeSrc":"18228:5:23","nodeType":"YulIdentifier","src":"18228:5:23"},{"name":"shuffled","nativeSrc":"18235:8:23","nodeType":"YulIdentifier","src":"18235:8:23"}],"functionName":{"name":"_get","nativeSrc":"18208:4:23","nodeType":"YulIdentifier","src":"18208:4:23"},"nativeSrc":"18208:36:23","nodeType":"YulFunctionCall","src":"18208:36:23"}],"functionName":{"name":"_set","nativeSrc":"18174:4:23","nodeType":"YulIdentifier","src":"18174:4:23"},"nativeSrc":"18174:71:23","nodeType":"YulFunctionCall","src":"18174:71:23"},"nativeSrc":"18174:71:23","nodeType":"YulExpressionStatement","src":"18174:71:23"},{"expression":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18266:1:23","nodeType":"YulIdentifier","src":"18266:1:23"},{"kind":"number","nativeSrc":"18269:6:23","nodeType":"YulLiteral","src":"18269:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18263:2:23","nodeType":"YulIdentifier","src":"18263:2:23"},"nativeSrc":"18263:13:23","nodeType":"YulFunctionCall","src":"18263:13:23"},{"name":"state","nativeSrc":"18278:5:23","nodeType":"YulIdentifier","src":"18278:5:23"},{"name":"shuffled","nativeSrc":"18285:8:23","nodeType":"YulIdentifier","src":"18285:8:23"},{"name":"chosen","nativeSrc":"18295:6:23","nodeType":"YulIdentifier","src":"18295:6:23"}],"functionName":{"name":"_set","nativeSrc":"18258:4:23","nodeType":"YulIdentifier","src":"18258:4:23"},"nativeSrc":"18258:44:23","nodeType":"YulFunctionCall","src":"18258:44:23"},"nativeSrc":"18258:44:23","nodeType":"YulExpressionStatement","src":"18258:44:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"18322:6:23","nodeType":"YulIdentifier","src":"18322:6:23"},{"arguments":[{"kind":"number","nativeSrc":"18334:1:23","nodeType":"YulLiteral","src":"18334:1:23","type":"","value":"1"},{"name":"state","nativeSrc":"18337:5:23","nodeType":"YulIdentifier","src":"18337:5:23"}],"functionName":{"name":"add","nativeSrc":"18330:3:23","nodeType":"YulIdentifier","src":"18330:3:23"},"nativeSrc":"18330:13:23","nodeType":"YulFunctionCall","src":"18330:13:23"}],"functionName":{"name":"sstore","nativeSrc":"18315:6:23","nodeType":"YulIdentifier","src":"18315:6:23"},"nativeSrc":"18315:29:23","nodeType":"YulFunctionCall","src":"18315:29:23"},"nativeSrc":"18315:29:23","nodeType":"YulExpressionStatement","src":"18315:29:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10297,"isOffset":false,"isSlot":true,"src":"17450:6:23","suffix":"slot","valueSize":1},{"declaration":10297,"isOffset":false,"isSlot":true,"src":"18322:6:23","suffix":"slot","valueSize":1},{"declaration":10302,"isOffset":false,"isSlot":false,"src":"18118:6:23","valueSize":1},{"declaration":10302,"isOffset":false,"isSlot":false,"src":"18295:6:23","valueSize":1},{"declaration":10299,"isOffset":false,"isSlot":false,"src":"17887:10:23","valueSize":1}],"id":10304,"nodeType":"InlineAssembly","src":"16392:2013:23"}]},"documentation":{"id":10294,"nodeType":"StructuredDocumentation","src":"15893:349:23","text":"@dev Does a single Fisher-Yates shuffle step, increments the `numShuffled` in `$`,\n and returns the next value in the shuffled range.\n `randomness` can be taken from a good-enough source, or a higher quality source like VRF.\n Reverts if there are no more values to shuffle, which includes the case if `$` is not initialized."},"id":10306,"implemented":true,"kind":"function","modifiers":[],"name":"next","nameLocation":"16256:4:23","nodeType":"FunctionDefinition","parameters":{"id":10300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10297,"mutability":"mutable","name":"$","nameLocation":"16282:1:23","nodeType":"VariableDeclaration","scope":10306,"src":"16261:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10296,"nodeType":"UserDefinedTypeName","pathNode":{"id":10295,"name":"LazyShuffler","nameLocations":["16261:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"16261:12:23"},"referencedDeclaration":10125,"src":"16261:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10299,"mutability":"mutable","name":"randomness","nameLocation":"16293:10:23","nodeType":"VariableDeclaration","scope":10306,"src":"16285:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10298,"name":"uint256","nodeType":"ElementaryTypeName","src":"16285:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16260:44:23"},"returnParameters":{"id":10303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10302,"mutability":"mutable","name":"chosen","nameLocation":"16331:6:23","nodeType":"VariableDeclaration","scope":10306,"src":"16323:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10301,"name":"uint256","nodeType":"ElementaryTypeName","src":"16323:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16322:16:23"},"scope":10307,"src":"16247:2164:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":10308,"src":"375:18038:23","usedErrors":[10098,10101,10104,10107,10110,10113],"usedEvents":[]}],"src":"32:18382:23"},"id":23},"@solady/utils/LibString.sol":{"ast":{"absolutePath":"@solady/utils/LibString.sol","exportedSymbols":{"LibString":[10964]},"id":10965,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10309,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:24"},{"abstract":false,"baseContracts":[],"canonicalName":"LibString","contractDependencies":[],"contractKind":"library","documentation":{"id":10310,"nodeType":"StructuredDocumentation","src":"57:591:24","text":"@notice Library for converting numbers into strings and other string operations.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\n @dev Note:\n For performance and bytecode compactness, most of the string operations are restricted to\n byte strings (7-bit ASCII), except where otherwise specified.\n Usage of byte string operations on charsets with runes spanning two or more bytes\n can lead to undefined behavior."},"fullyImplemented":true,"id":10964,"linearizedBaseContracts":[10964],"name":"LibString","nameLocation":"656:9:24","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10311,"nodeType":"StructuredDocumentation","src":"955:77:24","text":"@dev The length of the output is too small to contain all the hex digits."},"errorSelector":"2194895a","id":10313,"name":"HexLengthInsufficient","nameLocation":"1043:21:24","nodeType":"ErrorDefinition","parameters":{"id":10312,"nodeType":"ParameterList","parameters":[],"src":"1064:2:24"},"src":"1037:30:24"},{"documentation":{"id":10314,"nodeType":"StructuredDocumentation","src":"1073:56:24","text":"@dev The length of the string is more than 32 bytes."},"errorSelector":"ec92f9a3","id":10316,"name":"TooBigForSmallString","nameLocation":"1140:20:24","nodeType":"ErrorDefinition","parameters":{"id":10315,"nodeType":"ParameterList","parameters":[],"src":"1160:2:24"},"src":"1134:29:24"},{"constant":true,"documentation":{"id":10317,"nodeType":"StructuredDocumentation","src":"1452:76:24","text":"@dev The constant returned when the `search` is not found in the string."},"id":10324,"mutability":"constant","name":"NOT_FOUND","nameLocation":"1559:9:24","nodeType":"VariableDeclaration","scope":10964,"src":"1533:55:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1533:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":10321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1576:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10320,"name":"uint256","nodeType":"ElementaryTypeName","src":"1576:7:24","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":10319,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1571:4:24","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1571:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":10323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1585:3:24","memberName":"max","nodeType":"MemberAccess","src":"1571:17:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"body":{"id":10333,"nodeType":"Block","src":"2021:1566:24","statements":[{"AST":{"nativeSrc":"2083:1498:24","nodeType":"YulBlock","src":"2083:1498:24","statements":[{"nativeSrc":"2423:29:24","nodeType":"YulAssignment","src":"2423:29:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2440:4:24","nodeType":"YulLiteral","src":"2440:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2434:5:24","nodeType":"YulIdentifier","src":"2434:5:24"},"nativeSrc":"2434:11:24","nodeType":"YulFunctionCall","src":"2434:11:24"},{"kind":"number","nativeSrc":"2447:4:24","nodeType":"YulLiteral","src":"2447:4:24","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"2430:3:24","nodeType":"YulIdentifier","src":"2430:3:24"},"nativeSrc":"2430:22:24","nodeType":"YulFunctionCall","src":"2430:22:24"},"variableNames":[{"name":"str","nativeSrc":"2423:3:24","nodeType":"YulIdentifier","src":"2423:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2531:4:24","nodeType":"YulLiteral","src":"2531:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"2541:3:24","nodeType":"YulIdentifier","src":"2541:3:24"},{"kind":"number","nativeSrc":"2546:4:24","nodeType":"YulLiteral","src":"2546:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2537:3:24","nodeType":"YulIdentifier","src":"2537:3:24"},"nativeSrc":"2537:14:24","nodeType":"YulFunctionCall","src":"2537:14:24"}],"functionName":{"name":"mstore","nativeSrc":"2524:6:24","nodeType":"YulIdentifier","src":"2524:6:24"},"nativeSrc":"2524:28:24","nodeType":"YulFunctionCall","src":"2524:28:24"},"nativeSrc":"2524:28:24","nodeType":"YulExpressionStatement","src":"2524:28:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"2622:3:24","nodeType":"YulIdentifier","src":"2622:3:24"},{"kind":"number","nativeSrc":"2627:1:24","nodeType":"YulLiteral","src":"2627:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2615:6:24","nodeType":"YulIdentifier","src":"2615:6:24"},"nativeSrc":"2615:14:24","nodeType":"YulFunctionCall","src":"2615:14:24"},"nativeSrc":"2615:14:24","nodeType":"YulExpressionStatement","src":"2615:14:24"},{"nativeSrc":"2717:14:24","nodeType":"YulVariableDeclaration","src":"2717:14:24","value":{"name":"str","nativeSrc":"2728:3:24","nodeType":"YulIdentifier","src":"2728:3:24"},"variables":[{"name":"end","nativeSrc":"2721:3:24","nodeType":"YulTypedName","src":"2721:3:24","type":""}]},{"nativeSrc":"2745:15:24","nodeType":"YulVariableDeclaration","src":"2745:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"2758:1:24","nodeType":"YulLiteral","src":"2758:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2754:3:24","nodeType":"YulIdentifier","src":"2754:3:24"},"nativeSrc":"2754:6:24","nodeType":"YulFunctionCall","src":"2754:6:24"},"variables":[{"name":"w","nativeSrc":"2749:1:24","nodeType":"YulTypedName","src":"2749:1:24","type":""}]},{"body":{"nativeSrc":"2980:371:24","nodeType":"YulBlock","src":"2980:371:24","statements":[{"nativeSrc":"2998:18:24","nodeType":"YulAssignment","src":"2998:18:24","value":{"arguments":[{"name":"str","nativeSrc":"3009:3:24","nodeType":"YulIdentifier","src":"3009:3:24"},{"name":"w","nativeSrc":"3014:1:24","nodeType":"YulIdentifier","src":"3014:1:24"}],"functionName":{"name":"add","nativeSrc":"3005:3:24","nodeType":"YulIdentifier","src":"3005:3:24"},"nativeSrc":"3005:11:24","nodeType":"YulFunctionCall","src":"3005:11:24"},"variableNames":[{"name":"str","nativeSrc":"2998:3:24","nodeType":"YulIdentifier","src":"2998:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"3177:3:24","nodeType":"YulIdentifier","src":"3177:3:24"},{"arguments":[{"kind":"number","nativeSrc":"3186:2:24","nodeType":"YulLiteral","src":"3186:2:24","type":"","value":"48"},{"arguments":[{"name":"temp","nativeSrc":"3194:4:24","nodeType":"YulIdentifier","src":"3194:4:24"},{"kind":"number","nativeSrc":"3200:2:24","nodeType":"YulLiteral","src":"3200:2:24","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"3190:3:24","nodeType":"YulIdentifier","src":"3190:3:24"},"nativeSrc":"3190:13:24","nodeType":"YulFunctionCall","src":"3190:13:24"}],"functionName":{"name":"add","nativeSrc":"3182:3:24","nodeType":"YulIdentifier","src":"3182:3:24"},"nativeSrc":"3182:22:24","nodeType":"YulFunctionCall","src":"3182:22:24"}],"functionName":{"name":"mstore8","nativeSrc":"3169:7:24","nodeType":"YulIdentifier","src":"3169:7:24"},"nativeSrc":"3169:36:24","nodeType":"YulFunctionCall","src":"3169:36:24"},"nativeSrc":"3169:36:24","nodeType":"YulExpressionStatement","src":"3169:36:24"},{"nativeSrc":"3274:21:24","nodeType":"YulAssignment","src":"3274:21:24","value":{"arguments":[{"name":"temp","nativeSrc":"3286:4:24","nodeType":"YulIdentifier","src":"3286:4:24"},{"kind":"number","nativeSrc":"3292:2:24","nodeType":"YulLiteral","src":"3292:2:24","type":"","value":"10"}],"functionName":{"name":"div","nativeSrc":"3282:3:24","nodeType":"YulIdentifier","src":"3282:3:24"},"nativeSrc":"3282:13:24","nodeType":"YulFunctionCall","src":"3282:13:24"},"variableNames":[{"name":"temp","nativeSrc":"3274:4:24","nodeType":"YulIdentifier","src":"3274:4:24"}]},{"body":{"nativeSrc":"3328:9:24","nodeType":"YulBlock","src":"3328:9:24","statements":[{"nativeSrc":"3330:5:24","nodeType":"YulBreak","src":"3330:5:24"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"3322:4:24","nodeType":"YulIdentifier","src":"3322:4:24"}],"functionName":{"name":"iszero","nativeSrc":"3315:6:24","nodeType":"YulIdentifier","src":"3315:6:24"},"nativeSrc":"3315:12:24","nodeType":"YulFunctionCall","src":"3315:12:24"},"nativeSrc":"3312:25:24","nodeType":"YulIf","src":"3312:25:24"}]},"condition":{"kind":"number","nativeSrc":"2975:1:24","nodeType":"YulLiteral","src":"2975:1:24","type":"","value":"1"},"nativeSrc":"2949:402:24","nodeType":"YulForLoop","post":{"nativeSrc":"2977:2:24","nodeType":"YulBlock","src":"2977:2:24","statements":[]},"pre":{"nativeSrc":"2953:21:24","nodeType":"YulBlock","src":"2953:21:24","statements":[{"nativeSrc":"2955:17:24","nodeType":"YulVariableDeclaration","src":"2955:17:24","value":{"name":"value","nativeSrc":"2967:5:24","nodeType":"YulIdentifier","src":"2967:5:24"},"variables":[{"name":"temp","nativeSrc":"2959:4:24","nodeType":"YulTypedName","src":"2959:4:24","type":""}]}]},"src":"2949:402:24"},{"nativeSrc":"3365:27:24","nodeType":"YulVariableDeclaration","src":"3365:27:24","value":{"arguments":[{"name":"end","nativeSrc":"3383:3:24","nodeType":"YulIdentifier","src":"3383:3:24"},{"name":"str","nativeSrc":"3388:3:24","nodeType":"YulIdentifier","src":"3388:3:24"}],"functionName":{"name":"sub","nativeSrc":"3379:3:24","nodeType":"YulIdentifier","src":"3379:3:24"},"nativeSrc":"3379:13:24","nodeType":"YulFunctionCall","src":"3379:13:24"},"variables":[{"name":"length","nativeSrc":"3369:6:24","nodeType":"YulTypedName","src":"3369:6:24","type":""}]},{"nativeSrc":"3485:21:24","nodeType":"YulAssignment","src":"3485:21:24","value":{"arguments":[{"name":"str","nativeSrc":"3496:3:24","nodeType":"YulIdentifier","src":"3496:3:24"},{"kind":"number","nativeSrc":"3501:4:24","nodeType":"YulLiteral","src":"3501:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"3492:3:24","nodeType":"YulIdentifier","src":"3492:3:24"},"nativeSrc":"3492:14:24","nodeType":"YulFunctionCall","src":"3492:14:24"},"variableNames":[{"name":"str","nativeSrc":"3485:3:24","nodeType":"YulIdentifier","src":"3485:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"3559:3:24","nodeType":"YulIdentifier","src":"3559:3:24"},{"name":"length","nativeSrc":"3564:6:24","nodeType":"YulIdentifier","src":"3564:6:24"}],"functionName":{"name":"mstore","nativeSrc":"3552:6:24","nodeType":"YulIdentifier","src":"3552:6:24"},"nativeSrc":"3552:19:24","nodeType":"YulFunctionCall","src":"3552:19:24"},"nativeSrc":"3552:19:24","nodeType":"YulExpressionStatement","src":"3552:19:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2423:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2541:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2622:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2728:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2998:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3009:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3177:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3388:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3485:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3496:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3559:3:24","valueSize":1},{"declaration":10327,"isOffset":false,"isSlot":false,"src":"2967:5:24","valueSize":1}],"id":10332,"nodeType":"InlineAssembly","src":"2074:1507:24"}]},"documentation":{"id":10325,"nodeType":"StructuredDocumentation","src":"1878:63:24","text":"@dev Returns the base 10 decimal representation of `value`."},"id":10334,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1955:8:24","nodeType":"FunctionDefinition","parameters":{"id":10328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10327,"mutability":"mutable","name":"value","nameLocation":"1972:5:24","nodeType":"VariableDeclaration","scope":10334,"src":"1964:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10326,"name":"uint256","nodeType":"ElementaryTypeName","src":"1964:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1963:15:24"},"returnParameters":{"id":10331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10330,"mutability":"mutable","name":"str","nameLocation":"2016:3:24","nodeType":"VariableDeclaration","scope":10334,"src":"2002:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10329,"name":"string","nodeType":"ElementaryTypeName","src":"2002:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2001:19:24"},"scope":10964,"src":"1946:1641:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10368,"nodeType":"Block","src":"3735:646:24","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3749:5:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":10343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3758:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3749:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10353,"nodeType":"IfStatement","src":"3745:72:24","trueBody":{"id":10352,"nodeType":"Block","src":"3761:56:24","statements":[{"expression":{"arguments":[{"arguments":[{"id":10348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3799:5:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3791:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10346,"name":"uint256","nodeType":"ElementaryTypeName","src":"3791:7:24","typeDescriptions":{}}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3791:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10345,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[10334,10369],"referencedDeclaration":10334,"src":"3782:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3782:24:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10341,"id":10351,"nodeType":"Return","src":"3775:31:24"}]}},{"id":10366,"nodeType":"UncheckedBlock","src":"3826:70:24","statements":[{"expression":{"id":10364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10354,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10340,"src":"3850:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3865:15:24","subExpression":{"arguments":[{"id":10358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3874:5:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3866:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10356,"name":"uint256","nodeType":"ElementaryTypeName","src":"3866:7:24","typeDescriptions":{}}},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3883:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3865:19:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10355,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[10334,10369],"referencedDeclaration":10334,"src":"3856:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3856:29:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3850:35:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10365,"nodeType":"ExpressionStatement","src":"3850:35:24"}]},{"AST":{"nativeSrc":"3957:418:24","nodeType":"YulBlock","src":"3957:418:24","statements":[{"nativeSrc":"4113:24:24","nodeType":"YulVariableDeclaration","src":"4113:24:24","value":{"arguments":[{"name":"str","nativeSrc":"4133:3:24","nodeType":"YulIdentifier","src":"4133:3:24"}],"functionName":{"name":"mload","nativeSrc":"4127:5:24","nodeType":"YulIdentifier","src":"4127:5:24"},"nativeSrc":"4127:10:24","nodeType":"YulFunctionCall","src":"4127:10:24"},"variables":[{"name":"length","nativeSrc":"4117:6:24","nodeType":"YulTypedName","src":"4117:6:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"4184:3:24","nodeType":"YulIdentifier","src":"4184:3:24"},{"kind":"number","nativeSrc":"4189:4:24","nodeType":"YulLiteral","src":"4189:4:24","type":"","value":"0x2d"}],"functionName":{"name":"mstore","nativeSrc":"4177:6:24","nodeType":"YulIdentifier","src":"4177:6:24"},"nativeSrc":"4177:17:24","nodeType":"YulFunctionCall","src":"4177:17:24"},"nativeSrc":"4177:17:24","nodeType":"YulExpressionStatement","src":"4177:17:24"},{"nativeSrc":"4235:18:24","nodeType":"YulAssignment","src":"4235:18:24","value":{"arguments":[{"name":"str","nativeSrc":"4246:3:24","nodeType":"YulIdentifier","src":"4246:3:24"},{"kind":"number","nativeSrc":"4251:1:24","nodeType":"YulLiteral","src":"4251:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4242:3:24","nodeType":"YulIdentifier","src":"4242:3:24"},"nativeSrc":"4242:11:24","nodeType":"YulFunctionCall","src":"4242:11:24"},"variableNames":[{"name":"str","nativeSrc":"4235:3:24","nodeType":"YulIdentifier","src":"4235:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"4316:3:24","nodeType":"YulIdentifier","src":"4316:3:24"},{"arguments":[{"name":"length","nativeSrc":"4325:6:24","nodeType":"YulIdentifier","src":"4325:6:24"},{"kind":"number","nativeSrc":"4333:1:24","nodeType":"YulLiteral","src":"4333:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4321:3:24","nodeType":"YulIdentifier","src":"4321:3:24"},"nativeSrc":"4321:14:24","nodeType":"YulFunctionCall","src":"4321:14:24"}],"functionName":{"name":"mstore","nativeSrc":"4309:6:24","nodeType":"YulIdentifier","src":"4309:6:24"},"nativeSrc":"4309:27:24","nodeType":"YulFunctionCall","src":"4309:27:24"},"nativeSrc":"4309:27:24","nodeType":"YulExpressionStatement","src":"4309:27:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4133:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4184:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4235:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4246:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4316:3:24","valueSize":1}],"id":10367,"nodeType":"InlineAssembly","src":"3948:427:24"}]},"documentation":{"id":10335,"nodeType":"StructuredDocumentation","src":"3593:63:24","text":"@dev Returns the base 10 decimal representation of `value`."},"id":10369,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"3670:8:24","nodeType":"FunctionDefinition","parameters":{"id":10338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10337,"mutability":"mutable","name":"value","nameLocation":"3686:5:24","nodeType":"VariableDeclaration","scope":10369,"src":"3679:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10336,"name":"int256","nodeType":"ElementaryTypeName","src":"3679:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3678:14:24"},"returnParameters":{"id":10341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10340,"mutability":"mutable","name":"str","nameLocation":"3730:3:24","nodeType":"VariableDeclaration","scope":10369,"src":"3716:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10339,"name":"string","nodeType":"ElementaryTypeName","src":"3716:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3715:19:24"},"scope":10964,"src":"3661:720:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10387,"nodeType":"Block","src":"5112:366:24","statements":[{"expression":{"id":10384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10379,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10377,"src":"5122:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10381,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10372,"src":"5148:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10382,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10374,"src":"5155:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10380,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10400,"src":"5128:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":10383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5128:34:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5122:40:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10385,"nodeType":"ExpressionStatement","src":"5122:40:24"},{"AST":{"nativeSrc":"5224:248:24","nodeType":"YulBlock","src":"5224:248:24","statements":[{"nativeSrc":"5238:35:24","nodeType":"YulVariableDeclaration","src":"5238:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"5265:3:24","nodeType":"YulIdentifier","src":"5265:3:24"}],"functionName":{"name":"mload","nativeSrc":"5259:5:24","nodeType":"YulIdentifier","src":"5259:5:24"},"nativeSrc":"5259:10:24","nodeType":"YulFunctionCall","src":"5259:10:24"},{"kind":"number","nativeSrc":"5271:1:24","nodeType":"YulLiteral","src":"5271:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"5255:3:24","nodeType":"YulIdentifier","src":"5255:3:24"},"nativeSrc":"5255:18:24","nodeType":"YulFunctionCall","src":"5255:18:24"},"variables":[{"name":"strLength","nativeSrc":"5242:9:24","nodeType":"YulTypedName","src":"5242:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"5316:3:24","nodeType":"YulIdentifier","src":"5316:3:24"},{"kind":"number","nativeSrc":"5321:6:24","nodeType":"YulLiteral","src":"5321:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"5309:6:24","nodeType":"YulIdentifier","src":"5309:6:24"},"nativeSrc":"5309:19:24","nodeType":"YulFunctionCall","src":"5309:19:24"},"nativeSrc":"5309:19:24","nodeType":"YulExpressionStatement","src":"5309:19:24"},{"nativeSrc":"5367:18:24","nodeType":"YulAssignment","src":"5367:18:24","value":{"arguments":[{"name":"str","nativeSrc":"5378:3:24","nodeType":"YulIdentifier","src":"5378:3:24"},{"kind":"number","nativeSrc":"5383:1:24","nodeType":"YulLiteral","src":"5383:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"5374:3:24","nodeType":"YulIdentifier","src":"5374:3:24"},"nativeSrc":"5374:11:24","nodeType":"YulFunctionCall","src":"5374:11:24"},"variableNames":[{"name":"str","nativeSrc":"5367:3:24","nodeType":"YulIdentifier","src":"5367:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"5426:3:24","nodeType":"YulIdentifier","src":"5426:3:24"},{"name":"strLength","nativeSrc":"5431:9:24","nodeType":"YulIdentifier","src":"5431:9:24"}],"functionName":{"name":"mstore","nativeSrc":"5419:6:24","nodeType":"YulIdentifier","src":"5419:6:24"},"nativeSrc":"5419:22:24","nodeType":"YulFunctionCall","src":"5419:22:24"},"nativeSrc":"5419:22:24","nodeType":"YulExpressionStatement","src":"5419:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5265:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5316:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5367:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5378:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5426:3:24","valueSize":1}],"id":10386,"nodeType":"InlineAssembly","src":"5215:257:24"}]},"documentation":{"id":10370,"nodeType":"StructuredDocumentation","src":"4670:343:24","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2 + 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"id":10388,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"5027:11:24","nodeType":"FunctionDefinition","parameters":{"id":10375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10372,"mutability":"mutable","name":"value","nameLocation":"5047:5:24","nodeType":"VariableDeclaration","scope":10388,"src":"5039:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10371,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10374,"mutability":"mutable","name":"length","nameLocation":"5062:6:24","nodeType":"VariableDeclaration","scope":10388,"src":"5054:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10373,"name":"uint256","nodeType":"ElementaryTypeName","src":"5054:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5038:31:24"},"returnParameters":{"id":10378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"str","nameLocation":"5107:3:24","nodeType":"VariableDeclaration","scope":10388,"src":"5093:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10376,"name":"string","nodeType":"ElementaryTypeName","src":"5093:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5092:19:24"},"scope":10964,"src":"5018:460:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10399,"nodeType":"Block","src":"5958:1767:24","statements":[{"AST":{"nativeSrc":"6020:1699:24","nodeType":"YulBlock","src":"6020:1699:24","statements":[{"nativeSrc":"6337:66:24","nodeType":"YulAssignment","src":"6337:66:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6354:4:24","nodeType":"YulLiteral","src":"6354:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6348:5:24","nodeType":"YulIdentifier","src":"6348:5:24"},"nativeSrc":"6348:11:24","nodeType":"YulFunctionCall","src":"6348:11:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6373:1:24","nodeType":"YulLiteral","src":"6373:1:24","type":"","value":"1"},{"name":"length","nativeSrc":"6376:6:24","nodeType":"YulIdentifier","src":"6376:6:24"}],"functionName":{"name":"shl","nativeSrc":"6369:3:24","nodeType":"YulIdentifier","src":"6369:3:24"},"nativeSrc":"6369:14:24","nodeType":"YulFunctionCall","src":"6369:14:24"},{"kind":"number","nativeSrc":"6385:4:24","nodeType":"YulLiteral","src":"6385:4:24","type":"","value":"0x42"}],"functionName":{"name":"add","nativeSrc":"6365:3:24","nodeType":"YulIdentifier","src":"6365:3:24"},"nativeSrc":"6365:25:24","nodeType":"YulFunctionCall","src":"6365:25:24"},{"arguments":[{"kind":"number","nativeSrc":"6396:4:24","nodeType":"YulLiteral","src":"6396:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"6392:3:24","nodeType":"YulIdentifier","src":"6392:3:24"},"nativeSrc":"6392:9:24","nodeType":"YulFunctionCall","src":"6392:9:24"}],"functionName":{"name":"and","nativeSrc":"6361:3:24","nodeType":"YulIdentifier","src":"6361:3:24"},"nativeSrc":"6361:41:24","nodeType":"YulFunctionCall","src":"6361:41:24"}],"functionName":{"name":"add","nativeSrc":"6344:3:24","nodeType":"YulIdentifier","src":"6344:3:24"},"nativeSrc":"6344:59:24","nodeType":"YulFunctionCall","src":"6344:59:24"},"variableNames":[{"name":"str","nativeSrc":"6337:3:24","nodeType":"YulIdentifier","src":"6337:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6459:4:24","nodeType":"YulLiteral","src":"6459:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"6469:3:24","nodeType":"YulIdentifier","src":"6469:3:24"},{"kind":"number","nativeSrc":"6474:4:24","nodeType":"YulLiteral","src":"6474:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6465:3:24","nodeType":"YulIdentifier","src":"6465:3:24"},"nativeSrc":"6465:14:24","nodeType":"YulFunctionCall","src":"6465:14:24"}],"functionName":{"name":"mstore","nativeSrc":"6452:6:24","nodeType":"YulIdentifier","src":"6452:6:24"},"nativeSrc":"6452:28:24","nodeType":"YulFunctionCall","src":"6452:28:24"},"nativeSrc":"6452:28:24","nodeType":"YulExpressionStatement","src":"6452:28:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"6550:3:24","nodeType":"YulIdentifier","src":"6550:3:24"},{"kind":"number","nativeSrc":"6555:1:24","nodeType":"YulLiteral","src":"6555:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6543:6:24","nodeType":"YulIdentifier","src":"6543:6:24"},"nativeSrc":"6543:14:24","nodeType":"YulFunctionCall","src":"6543:14:24"},"nativeSrc":"6543:14:24","nodeType":"YulExpressionStatement","src":"6543:14:24"},{"nativeSrc":"6631:14:24","nodeType":"YulVariableDeclaration","src":"6631:14:24","value":{"name":"str","nativeSrc":"6642:3:24","nodeType":"YulIdentifier","src":"6642:3:24"},"variables":[{"name":"end","nativeSrc":"6635:3:24","nodeType":"YulTypedName","src":"6635:3:24","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6723:4:24","nodeType":"YulLiteral","src":"6723:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"6729:34:24","nodeType":"YulLiteral","src":"6729:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"6716:6:24","nodeType":"YulIdentifier","src":"6716:6:24"},"nativeSrc":"6716:48:24","nodeType":"YulFunctionCall","src":"6716:48:24"},"nativeSrc":"6716:48:24","nodeType":"YulExpressionStatement","src":"6716:48:24"},{"nativeSrc":"6778:42:24","nodeType":"YulVariableDeclaration","src":"6778:42:24","value":{"arguments":[{"name":"str","nativeSrc":"6795:3:24","nodeType":"YulIdentifier","src":"6795:3:24"},{"arguments":[{"name":"length","nativeSrc":"6804:6:24","nodeType":"YulIdentifier","src":"6804:6:24"},{"name":"length","nativeSrc":"6812:6:24","nodeType":"YulIdentifier","src":"6812:6:24"}],"functionName":{"name":"add","nativeSrc":"6800:3:24","nodeType":"YulIdentifier","src":"6800:3:24"},"nativeSrc":"6800:19:24","nodeType":"YulFunctionCall","src":"6800:19:24"}],"functionName":{"name":"sub","nativeSrc":"6791:3:24","nodeType":"YulIdentifier","src":"6791:3:24"},"nativeSrc":"6791:29:24","nodeType":"YulFunctionCall","src":"6791:29:24"},"variables":[{"name":"start","nativeSrc":"6782:5:24","nodeType":"YulTypedName","src":"6782:5:24","type":""}]},{"nativeSrc":"6833:15:24","nodeType":"YulVariableDeclaration","src":"6833:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"6846:1:24","nodeType":"YulLiteral","src":"6846:1:24","type":"","value":"1"}],"functionName":{"name":"not","nativeSrc":"6842:3:24","nodeType":"YulIdentifier","src":"6842:3:24"},"nativeSrc":"6842:6:24","nodeType":"YulFunctionCall","src":"6842:6:24"},"variables":[{"name":"w","nativeSrc":"6837:1:24","nodeType":"YulTypedName","src":"6837:1:24","type":""}]},{"nativeSrc":"6869:17:24","nodeType":"YulVariableDeclaration","src":"6869:17:24","value":{"name":"value","nativeSrc":"6881:5:24","nodeType":"YulIdentifier","src":"6881:5:24"},"variables":[{"name":"temp","nativeSrc":"6873:4:24","nodeType":"YulTypedName","src":"6873:4:24","type":""}]},{"body":{"nativeSrc":"7079:276:24","nodeType":"YulBlock","src":"7079:276:24","statements":[{"nativeSrc":"7097:18:24","nodeType":"YulAssignment","src":"7097:18:24","value":{"arguments":[{"name":"str","nativeSrc":"7108:3:24","nodeType":"YulIdentifier","src":"7108:3:24"},{"name":"w","nativeSrc":"7113:1:24","nodeType":"YulIdentifier","src":"7113:1:24"}],"functionName":{"name":"add","nativeSrc":"7104:3:24","nodeType":"YulIdentifier","src":"7104:3:24"},"nativeSrc":"7104:11:24","nodeType":"YulFunctionCall","src":"7104:11:24"},"variableNames":[{"name":"str","nativeSrc":"7097:3:24","nodeType":"YulIdentifier","src":"7097:3:24"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"7162:3:24","nodeType":"YulIdentifier","src":"7162:3:24"},{"kind":"number","nativeSrc":"7167:1:24","nodeType":"YulLiteral","src":"7167:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7158:3:24","nodeType":"YulIdentifier","src":"7158:3:24"},"nativeSrc":"7158:11:24","nodeType":"YulFunctionCall","src":"7158:11:24"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"7181:4:24","nodeType":"YulIdentifier","src":"7181:4:24"},{"kind":"number","nativeSrc":"7187:2:24","nodeType":"YulLiteral","src":"7187:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"7177:3:24","nodeType":"YulIdentifier","src":"7177:3:24"},"nativeSrc":"7177:13:24","nodeType":"YulFunctionCall","src":"7177:13:24"}],"functionName":{"name":"mload","nativeSrc":"7171:5:24","nodeType":"YulIdentifier","src":"7171:5:24"},"nativeSrc":"7171:20:24","nodeType":"YulFunctionCall","src":"7171:20:24"}],"functionName":{"name":"mstore8","nativeSrc":"7150:7:24","nodeType":"YulIdentifier","src":"7150:7:24"},"nativeSrc":"7150:42:24","nodeType":"YulFunctionCall","src":"7150:42:24"},"nativeSrc":"7150:42:24","nodeType":"YulExpressionStatement","src":"7150:42:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"7217:3:24","nodeType":"YulIdentifier","src":"7217:3:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7236:1:24","nodeType":"YulLiteral","src":"7236:1:24","type":"","value":"4"},{"name":"temp","nativeSrc":"7239:4:24","nodeType":"YulIdentifier","src":"7239:4:24"}],"functionName":{"name":"shr","nativeSrc":"7232:3:24","nodeType":"YulIdentifier","src":"7232:3:24"},"nativeSrc":"7232:12:24","nodeType":"YulFunctionCall","src":"7232:12:24"},{"kind":"number","nativeSrc":"7246:2:24","nodeType":"YulLiteral","src":"7246:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"7228:3:24","nodeType":"YulIdentifier","src":"7228:3:24"},"nativeSrc":"7228:21:24","nodeType":"YulFunctionCall","src":"7228:21:24"}],"functionName":{"name":"mload","nativeSrc":"7222:5:24","nodeType":"YulIdentifier","src":"7222:5:24"},"nativeSrc":"7222:28:24","nodeType":"YulFunctionCall","src":"7222:28:24"}],"functionName":{"name":"mstore8","nativeSrc":"7209:7:24","nodeType":"YulIdentifier","src":"7209:7:24"},"nativeSrc":"7209:42:24","nodeType":"YulFunctionCall","src":"7209:42:24"},"nativeSrc":"7209:42:24","nodeType":"YulExpressionStatement","src":"7209:42:24"},{"nativeSrc":"7268:20:24","nodeType":"YulAssignment","src":"7268:20:24","value":{"arguments":[{"kind":"number","nativeSrc":"7280:1:24","nodeType":"YulLiteral","src":"7280:1:24","type":"","value":"8"},{"name":"temp","nativeSrc":"7283:4:24","nodeType":"YulIdentifier","src":"7283:4:24"}],"functionName":{"name":"shr","nativeSrc":"7276:3:24","nodeType":"YulIdentifier","src":"7276:3:24"},"nativeSrc":"7276:12:24","nodeType":"YulFunctionCall","src":"7276:12:24"},"variableNames":[{"name":"temp","nativeSrc":"7268:4:24","nodeType":"YulIdentifier","src":"7268:4:24"}]},{"body":{"nativeSrc":"7332:9:24","nodeType":"YulBlock","src":"7332:9:24","statements":[{"nativeSrc":"7334:5:24","nodeType":"YulBreak","src":"7334:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"7319:3:24","nodeType":"YulIdentifier","src":"7319:3:24"},{"name":"start","nativeSrc":"7324:5:24","nodeType":"YulIdentifier","src":"7324:5:24"}],"functionName":{"name":"xor","nativeSrc":"7315:3:24","nodeType":"YulIdentifier","src":"7315:3:24"},"nativeSrc":"7315:15:24","nodeType":"YulFunctionCall","src":"7315:15:24"}],"functionName":{"name":"iszero","nativeSrc":"7308:6:24","nodeType":"YulIdentifier","src":"7308:6:24"},"nativeSrc":"7308:23:24","nodeType":"YulFunctionCall","src":"7308:23:24"},"nativeSrc":"7305:36:24","nodeType":"YulIf","src":"7305:36:24"}]},"condition":{"kind":"number","nativeSrc":"7074:1:24","nodeType":"YulLiteral","src":"7074:1:24","type":"","value":"1"},"nativeSrc":"7067:288:24","nodeType":"YulForLoop","post":{"nativeSrc":"7076:2:24","nodeType":"YulBlock","src":"7076:2:24","statements":[]},"pre":{"nativeSrc":"7071:2:24","nodeType":"YulBlock","src":"7071:2:24","statements":[]},"src":"7067:288:24"},{"body":{"nativeSrc":"7377:121:24","nodeType":"YulBlock","src":"7377:121:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7402:4:24","nodeType":"YulLiteral","src":"7402:4:24","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7408:10:24","nodeType":"YulLiteral","src":"7408:10:24","type":"","value":"0x2194895a"}],"functionName":{"name":"mstore","nativeSrc":"7395:6:24","nodeType":"YulIdentifier","src":"7395:6:24"},"nativeSrc":"7395:24:24","nodeType":"YulFunctionCall","src":"7395:24:24"},"nativeSrc":"7395:24:24","nodeType":"YulExpressionStatement","src":"7395:24:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7473:4:24","nodeType":"YulLiteral","src":"7473:4:24","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7479:4:24","nodeType":"YulLiteral","src":"7479:4:24","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7466:6:24","nodeType":"YulIdentifier","src":"7466:6:24"},"nativeSrc":"7466:18:24","nodeType":"YulFunctionCall","src":"7466:18:24"},"nativeSrc":"7466:18:24","nodeType":"YulExpressionStatement","src":"7466:18:24"}]},"condition":{"name":"temp","nativeSrc":"7372:4:24","nodeType":"YulIdentifier","src":"7372:4:24"},"nativeSrc":"7369:129:24","nodeType":"YulIf","src":"7369:129:24"},{"nativeSrc":"7556:30:24","nodeType":"YulVariableDeclaration","src":"7556:30:24","value":{"arguments":[{"name":"end","nativeSrc":"7577:3:24","nodeType":"YulIdentifier","src":"7577:3:24"},{"name":"str","nativeSrc":"7582:3:24","nodeType":"YulIdentifier","src":"7582:3:24"}],"functionName":{"name":"sub","nativeSrc":"7573:3:24","nodeType":"YulIdentifier","src":"7573:3:24"},"nativeSrc":"7573:13:24","nodeType":"YulFunctionCall","src":"7573:13:24"},"variables":[{"name":"strLength","nativeSrc":"7560:9:24","nodeType":"YulTypedName","src":"7560:9:24","type":""}]},{"nativeSrc":"7653:21:24","nodeType":"YulAssignment","src":"7653:21:24","value":{"arguments":[{"name":"str","nativeSrc":"7664:3:24","nodeType":"YulIdentifier","src":"7664:3:24"},{"kind":"number","nativeSrc":"7669:4:24","nodeType":"YulLiteral","src":"7669:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"7660:3:24","nodeType":"YulIdentifier","src":"7660:3:24"},"nativeSrc":"7660:14:24","nodeType":"YulFunctionCall","src":"7660:14:24"},"variableNames":[{"name":"str","nativeSrc":"7653:3:24","nodeType":"YulIdentifier","src":"7653:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"7694:3:24","nodeType":"YulIdentifier","src":"7694:3:24"},{"name":"strLength","nativeSrc":"7699:9:24","nodeType":"YulIdentifier","src":"7699:9:24"}],"functionName":{"name":"mstore","nativeSrc":"7687:6:24","nodeType":"YulIdentifier","src":"7687:6:24"},"nativeSrc":"7687:22:24","nodeType":"YulFunctionCall","src":"7687:22:24"},"nativeSrc":"7687:22:24","nodeType":"YulExpressionStatement","src":"7687:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10393,"isOffset":false,"isSlot":false,"src":"6376:6:24","valueSize":1},{"declaration":10393,"isOffset":false,"isSlot":false,"src":"6804:6:24","valueSize":1},{"declaration":10393,"isOffset":false,"isSlot":false,"src":"6812:6:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6337:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6469:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6550:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6642:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6795:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7097:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7108:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7162:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7217:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7319:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7582:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7653:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7664:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7694:3:24","valueSize":1},{"declaration":10391,"isOffset":false,"isSlot":false,"src":"6881:5:24","valueSize":1}],"id":10398,"nodeType":"InlineAssembly","src":"6011:1708:24"}]},"documentation":{"id":10389,"nodeType":"StructuredDocumentation","src":"5484:339:24","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"id":10400,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"5837:19:24","nodeType":"FunctionDefinition","parameters":{"id":10394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10391,"mutability":"mutable","name":"value","nameLocation":"5865:5:24","nodeType":"VariableDeclaration","scope":10400,"src":"5857:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10390,"name":"uint256","nodeType":"ElementaryTypeName","src":"5857:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10393,"mutability":"mutable","name":"length","nameLocation":"5880:6:24","nodeType":"VariableDeclaration","scope":10400,"src":"5872:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10392,"name":"uint256","nodeType":"ElementaryTypeName","src":"5872:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5856:31:24"},"returnParameters":{"id":10397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10396,"mutability":"mutable","name":"str","nameLocation":"5949:3:24","nodeType":"VariableDeclaration","scope":10400,"src":"5935:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10395,"name":"string","nodeType":"ElementaryTypeName","src":"5935:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5934:19:24"},"scope":10964,"src":"5828:1897:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10415,"nodeType":"Block","src":"8077:358:24","statements":[{"expression":{"id":10412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10408,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10406,"src":"8087:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10403,"src":"8113:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10409,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10458,"src":"8093:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8093:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8087:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10413,"nodeType":"ExpressionStatement","src":"8087:32:24"},{"AST":{"nativeSrc":"8181:248:24","nodeType":"YulBlock","src":"8181:248:24","statements":[{"nativeSrc":"8195:35:24","nodeType":"YulVariableDeclaration","src":"8195:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"8222:3:24","nodeType":"YulIdentifier","src":"8222:3:24"}],"functionName":{"name":"mload","nativeSrc":"8216:5:24","nodeType":"YulIdentifier","src":"8216:5:24"},"nativeSrc":"8216:10:24","nodeType":"YulFunctionCall","src":"8216:10:24"},{"kind":"number","nativeSrc":"8228:1:24","nodeType":"YulLiteral","src":"8228:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"8212:3:24","nodeType":"YulIdentifier","src":"8212:3:24"},"nativeSrc":"8212:18:24","nodeType":"YulFunctionCall","src":"8212:18:24"},"variables":[{"name":"strLength","nativeSrc":"8199:9:24","nodeType":"YulTypedName","src":"8199:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"8273:3:24","nodeType":"YulIdentifier","src":"8273:3:24"},{"kind":"number","nativeSrc":"8278:6:24","nodeType":"YulLiteral","src":"8278:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"8266:6:24","nodeType":"YulIdentifier","src":"8266:6:24"},"nativeSrc":"8266:19:24","nodeType":"YulFunctionCall","src":"8266:19:24"},"nativeSrc":"8266:19:24","nodeType":"YulExpressionStatement","src":"8266:19:24"},{"nativeSrc":"8324:18:24","nodeType":"YulAssignment","src":"8324:18:24","value":{"arguments":[{"name":"str","nativeSrc":"8335:3:24","nodeType":"YulIdentifier","src":"8335:3:24"},{"kind":"number","nativeSrc":"8340:1:24","nodeType":"YulLiteral","src":"8340:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"8331:3:24","nodeType":"YulIdentifier","src":"8331:3:24"},"nativeSrc":"8331:11:24","nodeType":"YulFunctionCall","src":"8331:11:24"},"variableNames":[{"name":"str","nativeSrc":"8324:3:24","nodeType":"YulIdentifier","src":"8324:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"8383:3:24","nodeType":"YulIdentifier","src":"8383:3:24"},{"name":"strLength","nativeSrc":"8388:9:24","nodeType":"YulIdentifier","src":"8388:9:24"}],"functionName":{"name":"mstore","nativeSrc":"8376:6:24","nodeType":"YulIdentifier","src":"8376:6:24"},"nativeSrc":"8376:22:24","nodeType":"YulFunctionCall","src":"8376:22:24"},"nativeSrc":"8376:22:24","nodeType":"YulExpressionStatement","src":"8376:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8222:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8273:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8324:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8335:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8383:3:24","valueSize":1}],"id":10414,"nodeType":"InlineAssembly","src":"8172:257:24"}]},"documentation":{"id":10401,"nodeType":"StructuredDocumentation","src":"7731:263:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2 + 2` bytes."},"id":10416,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"8008:11:24","nodeType":"FunctionDefinition","parameters":{"id":10404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10403,"mutability":"mutable","name":"value","nameLocation":"8028:5:24","nodeType":"VariableDeclaration","scope":10416,"src":"8020:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10402,"name":"uint256","nodeType":"ElementaryTypeName","src":"8020:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8019:15:24"},"returnParameters":{"id":10407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10406,"mutability":"mutable","name":"str","nameLocation":"8072:3:24","nodeType":"VariableDeclaration","scope":10416,"src":"8058:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10405,"name":"string","nodeType":"ElementaryTypeName","src":"8058:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8057:19:24"},"scope":10964,"src":"7999:436:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10431,"nodeType":"Block","src":"8769:567:24","statements":[{"expression":{"id":10428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10424,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10422,"src":"8779:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10426,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10419,"src":"8805:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10425,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10458,"src":"8785:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8785:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8779:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10429,"nodeType":"ExpressionStatement","src":"8779:32:24"},{"AST":{"nativeSrc":"8873:457:24","nodeType":"YulBlock","src":"8873:457:24","statements":[{"nativeSrc":"8887:49:24","nodeType":"YulVariableDeclaration","src":"8887:49:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8904:1:24","nodeType":"YulLiteral","src":"8904:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nativeSrc":"8917:3:24","nodeType":"YulIdentifier","src":"8917:3:24"},{"kind":"number","nativeSrc":"8922:4:24","nodeType":"YulLiteral","src":"8922:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8913:3:24","nodeType":"YulIdentifier","src":"8913:3:24"},"nativeSrc":"8913:14:24","nodeType":"YulFunctionCall","src":"8913:14:24"}],"functionName":{"name":"mload","nativeSrc":"8907:5:24","nodeType":"YulIdentifier","src":"8907:5:24"},"nativeSrc":"8907:21:24","nodeType":"YulFunctionCall","src":"8907:21:24"}],"functionName":{"name":"byte","nativeSrc":"8899:4:24","nodeType":"YulIdentifier","src":"8899:4:24"},"nativeSrc":"8899:30:24","nodeType":"YulFunctionCall","src":"8899:30:24"},{"kind":"number","nativeSrc":"8931:4:24","nodeType":"YulLiteral","src":"8931:4:24","type":"","value":"0x30"}],"functionName":{"name":"eq","nativeSrc":"8896:2:24","nodeType":"YulIdentifier","src":"8896:2:24"},"nativeSrc":"8896:40:24","nodeType":"YulFunctionCall","src":"8896:40:24"},"variables":[{"name":"o","nativeSrc":"8891:1:24","nodeType":"YulTypedName","src":"8891:1:24","type":""}]},{"nativeSrc":"8985:35:24","nodeType":"YulVariableDeclaration","src":"8985:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9012:3:24","nodeType":"YulIdentifier","src":"9012:3:24"}],"functionName":{"name":"mload","nativeSrc":"9006:5:24","nodeType":"YulIdentifier","src":"9006:5:24"},"nativeSrc":"9006:10:24","nodeType":"YulFunctionCall","src":"9006:10:24"},{"kind":"number","nativeSrc":"9018:1:24","nodeType":"YulLiteral","src":"9018:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"9002:3:24","nodeType":"YulIdentifier","src":"9002:3:24"},"nativeSrc":"9002:18:24","nodeType":"YulFunctionCall","src":"9002:18:24"},"variables":[{"name":"strLength","nativeSrc":"8989:9:24","nodeType":"YulTypedName","src":"8989:9:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9067:3:24","nodeType":"YulIdentifier","src":"9067:3:24"},{"name":"o","nativeSrc":"9072:1:24","nodeType":"YulIdentifier","src":"9072:1:24"}],"functionName":{"name":"add","nativeSrc":"9063:3:24","nodeType":"YulIdentifier","src":"9063:3:24"},"nativeSrc":"9063:11:24","nodeType":"YulFunctionCall","src":"9063:11:24"},{"kind":"number","nativeSrc":"9076:6:24","nodeType":"YulLiteral","src":"9076:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"9056:6:24","nodeType":"YulIdentifier","src":"9056:6:24"},"nativeSrc":"9056:27:24","nodeType":"YulFunctionCall","src":"9056:27:24"},"nativeSrc":"9056:27:24","nodeType":"YulExpressionStatement","src":"9056:27:24"},{"nativeSrc":"9151:26:24","nodeType":"YulAssignment","src":"9151:26:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9166:3:24","nodeType":"YulIdentifier","src":"9166:3:24"},{"name":"o","nativeSrc":"9171:1:24","nodeType":"YulIdentifier","src":"9171:1:24"}],"functionName":{"name":"add","nativeSrc":"9162:3:24","nodeType":"YulIdentifier","src":"9162:3:24"},"nativeSrc":"9162:11:24","nodeType":"YulFunctionCall","src":"9162:11:24"},{"kind":"number","nativeSrc":"9175:1:24","nodeType":"YulLiteral","src":"9175:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"9158:3:24","nodeType":"YulIdentifier","src":"9158:3:24"},"nativeSrc":"9158:19:24","nodeType":"YulFunctionCall","src":"9158:19:24"},"variableNames":[{"name":"str","nativeSrc":"9151:3:24","nodeType":"YulIdentifier","src":"9151:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"9247:3:24","nodeType":"YulIdentifier","src":"9247:3:24"},{"arguments":[{"name":"strLength","nativeSrc":"9256:9:24","nodeType":"YulIdentifier","src":"9256:9:24"},{"name":"o","nativeSrc":"9267:1:24","nodeType":"YulIdentifier","src":"9267:1:24"}],"functionName":{"name":"sub","nativeSrc":"9252:3:24","nodeType":"YulIdentifier","src":"9252:3:24"},"nativeSrc":"9252:17:24","nodeType":"YulFunctionCall","src":"9252:17:24"}],"functionName":{"name":"mstore","nativeSrc":"9240:6:24","nodeType":"YulIdentifier","src":"9240:6:24"},"nativeSrc":"9240:30:24","nodeType":"YulFunctionCall","src":"9240:30:24"},"nativeSrc":"9240:30:24","nodeType":"YulExpressionStatement","src":"9240:30:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10422,"isOffset":false,"isSlot":false,"src":"8917:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9012:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9067:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9151:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9166:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9247:3:24","valueSize":1}],"id":10430,"nodeType":"InlineAssembly","src":"8864:466:24"}]},"documentation":{"id":10417,"nodeType":"StructuredDocumentation","src":"8441:238:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\".\n The output excludes leading \"0\" from the `toHexString` output.\n `0x00: \"0x0\", 0x01: \"0x1\", 0x12: \"0x12\", 0x123: \"0x123\"`."},"id":10432,"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexString","nameLocation":"8693:18:24","nodeType":"FunctionDefinition","parameters":{"id":10420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10419,"mutability":"mutable","name":"value","nameLocation":"8720:5:24","nodeType":"VariableDeclaration","scope":10432,"src":"8712:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10418,"name":"uint256","nodeType":"ElementaryTypeName","src":"8712:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8711:15:24"},"returnParameters":{"id":10423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10422,"mutability":"mutable","name":"str","nameLocation":"8764:3:24","nodeType":"VariableDeclaration","scope":10432,"src":"8750:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10421,"name":"string","nodeType":"ElementaryTypeName","src":"8750:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8749:19:24"},"scope":10964,"src":"8684:652:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10447,"nodeType":"Block","src":"9636:452:24","statements":[{"expression":{"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10440,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10438,"src":"9646:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10435,"src":"9672:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10441,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10458,"src":"9652:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9652:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"9646:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10445,"nodeType":"ExpressionStatement","src":"9646:32:24"},{"AST":{"nativeSrc":"9740:342:24","nodeType":"YulBlock","src":"9740:342:24","statements":[{"nativeSrc":"9754:49:24","nodeType":"YulVariableDeclaration","src":"9754:49:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9771:1:24","nodeType":"YulLiteral","src":"9771:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9784:3:24","nodeType":"YulIdentifier","src":"9784:3:24"},{"kind":"number","nativeSrc":"9789:4:24","nodeType":"YulLiteral","src":"9789:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9780:3:24","nodeType":"YulIdentifier","src":"9780:3:24"},"nativeSrc":"9780:14:24","nodeType":"YulFunctionCall","src":"9780:14:24"}],"functionName":{"name":"mload","nativeSrc":"9774:5:24","nodeType":"YulIdentifier","src":"9774:5:24"},"nativeSrc":"9774:21:24","nodeType":"YulFunctionCall","src":"9774:21:24"}],"functionName":{"name":"byte","nativeSrc":"9766:4:24","nodeType":"YulIdentifier","src":"9766:4:24"},"nativeSrc":"9766:30:24","nodeType":"YulFunctionCall","src":"9766:30:24"},{"kind":"number","nativeSrc":"9798:4:24","nodeType":"YulLiteral","src":"9798:4:24","type":"","value":"0x30"}],"functionName":{"name":"eq","nativeSrc":"9763:2:24","nodeType":"YulIdentifier","src":"9763:2:24"},"nativeSrc":"9763:40:24","nodeType":"YulFunctionCall","src":"9763:40:24"},"variables":[{"name":"o","nativeSrc":"9758:1:24","nodeType":"YulTypedName","src":"9758:1:24","type":""}]},{"nativeSrc":"9852:27:24","nodeType":"YulVariableDeclaration","src":"9852:27:24","value":{"arguments":[{"name":"str","nativeSrc":"9875:3:24","nodeType":"YulIdentifier","src":"9875:3:24"}],"functionName":{"name":"mload","nativeSrc":"9869:5:24","nodeType":"YulIdentifier","src":"9869:5:24"},"nativeSrc":"9869:10:24","nodeType":"YulFunctionCall","src":"9869:10:24"},"variables":[{"name":"strLength","nativeSrc":"9856:9:24","nodeType":"YulTypedName","src":"9856:9:24","type":""}]},{"nativeSrc":"9911:18:24","nodeType":"YulAssignment","src":"9911:18:24","value":{"arguments":[{"name":"str","nativeSrc":"9922:3:24","nodeType":"YulIdentifier","src":"9922:3:24"},{"name":"o","nativeSrc":"9927:1:24","nodeType":"YulIdentifier","src":"9927:1:24"}],"functionName":{"name":"add","nativeSrc":"9918:3:24","nodeType":"YulIdentifier","src":"9918:3:24"},"nativeSrc":"9918:11:24","nodeType":"YulFunctionCall","src":"9918:11:24"},"variableNames":[{"name":"str","nativeSrc":"9911:3:24","nodeType":"YulIdentifier","src":"9911:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"9999:3:24","nodeType":"YulIdentifier","src":"9999:3:24"},{"arguments":[{"name":"strLength","nativeSrc":"10008:9:24","nodeType":"YulIdentifier","src":"10008:9:24"},{"name":"o","nativeSrc":"10019:1:24","nodeType":"YulIdentifier","src":"10019:1:24"}],"functionName":{"name":"sub","nativeSrc":"10004:3:24","nodeType":"YulIdentifier","src":"10004:3:24"},"nativeSrc":"10004:17:24","nodeType":"YulFunctionCall","src":"10004:17:24"}],"functionName":{"name":"mstore","nativeSrc":"9992:6:24","nodeType":"YulIdentifier","src":"9992:6:24"},"nativeSrc":"9992:30:24","nodeType":"YulFunctionCall","src":"9992:30:24"},"nativeSrc":"9992:30:24","nodeType":"YulExpressionStatement","src":"9992:30:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9784:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9875:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9911:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9922:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9999:3:24","valueSize":1}],"id":10446,"nodeType":"InlineAssembly","src":"9731:351:24"}]},"documentation":{"id":10433,"nodeType":"StructuredDocumentation","src":"9342:196:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output excludes leading \"0\" from the `toHexStringNoPrefix` output.\n `0x00: \"0\", 0x01: \"1\", 0x12: \"12\", 0x123: \"123\"`."},"id":10448,"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexStringNoPrefix","nameLocation":"9552:26:24","nodeType":"FunctionDefinition","parameters":{"id":10436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10435,"mutability":"mutable","name":"value","nameLocation":"9587:5:24","nodeType":"VariableDeclaration","scope":10448,"src":"9579:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10434,"name":"uint256","nodeType":"ElementaryTypeName","src":"9579:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9578:15:24"},"returnParameters":{"id":10439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10438,"mutability":"mutable","name":"str","nameLocation":"9631:3:24","nodeType":"VariableDeclaration","scope":10448,"src":"9617:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10437,"name":"string","nodeType":"ElementaryTypeName","src":"9617:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9616:19:24"},"scope":10964,"src":"9543:545:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10457,"nodeType":"Block","src":"10421:1457:24","statements":[{"AST":{"nativeSrc":"10483:1389:24","nodeType":"YulBlock","src":"10483:1389:24","statements":[{"nativeSrc":"10747:29:24","nodeType":"YulAssignment","src":"10747:29:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10764:4:24","nodeType":"YulLiteral","src":"10764:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10758:5:24","nodeType":"YulIdentifier","src":"10758:5:24"},"nativeSrc":"10758:11:24","nodeType":"YulFunctionCall","src":"10758:11:24"},{"kind":"number","nativeSrc":"10771:4:24","nodeType":"YulLiteral","src":"10771:4:24","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10754:3:24","nodeType":"YulIdentifier","src":"10754:3:24"},"nativeSrc":"10754:22:24","nodeType":"YulFunctionCall","src":"10754:22:24"},"variableNames":[{"name":"str","nativeSrc":"10747:3:24","nodeType":"YulIdentifier","src":"10747:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10832:4:24","nodeType":"YulLiteral","src":"10832:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"10842:3:24","nodeType":"YulIdentifier","src":"10842:3:24"},{"kind":"number","nativeSrc":"10847:4:24","nodeType":"YulLiteral","src":"10847:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10838:3:24","nodeType":"YulIdentifier","src":"10838:3:24"},"nativeSrc":"10838:14:24","nodeType":"YulFunctionCall","src":"10838:14:24"}],"functionName":{"name":"mstore","nativeSrc":"10825:6:24","nodeType":"YulIdentifier","src":"10825:6:24"},"nativeSrc":"10825:28:24","nodeType":"YulFunctionCall","src":"10825:28:24"},"nativeSrc":"10825:28:24","nodeType":"YulExpressionStatement","src":"10825:28:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"10923:3:24","nodeType":"YulIdentifier","src":"10923:3:24"},{"kind":"number","nativeSrc":"10928:1:24","nodeType":"YulLiteral","src":"10928:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10916:6:24","nodeType":"YulIdentifier","src":"10916:6:24"},"nativeSrc":"10916:14:24","nodeType":"YulFunctionCall","src":"10916:14:24"},"nativeSrc":"10916:14:24","nodeType":"YulExpressionStatement","src":"10916:14:24"},{"nativeSrc":"11004:14:24","nodeType":"YulVariableDeclaration","src":"11004:14:24","value":{"name":"str","nativeSrc":"11015:3:24","nodeType":"YulIdentifier","src":"11015:3:24"},"variables":[{"name":"end","nativeSrc":"11008:3:24","nodeType":"YulTypedName","src":"11008:3:24","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11096:4:24","nodeType":"YulLiteral","src":"11096:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"11102:34:24","nodeType":"YulLiteral","src":"11102:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"11089:6:24","nodeType":"YulIdentifier","src":"11089:6:24"},"nativeSrc":"11089:48:24","nodeType":"YulFunctionCall","src":"11089:48:24"},"nativeSrc":"11089:48:24","nodeType":"YulExpressionStatement","src":"11089:48:24"},{"nativeSrc":"11151:15:24","nodeType":"YulVariableDeclaration","src":"11151:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"11164:1:24","nodeType":"YulLiteral","src":"11164:1:24","type":"","value":"1"}],"functionName":{"name":"not","nativeSrc":"11160:3:24","nodeType":"YulIdentifier","src":"11160:3:24"},"nativeSrc":"11160:6:24","nodeType":"YulFunctionCall","src":"11160:6:24"},"variables":[{"name":"w","nativeSrc":"11155:1:24","nodeType":"YulTypedName","src":"11155:1:24","type":""}]},{"body":{"nativeSrc":"11386:265:24","nodeType":"YulBlock","src":"11386:265:24","statements":[{"nativeSrc":"11404:18:24","nodeType":"YulAssignment","src":"11404:18:24","value":{"arguments":[{"name":"str","nativeSrc":"11415:3:24","nodeType":"YulIdentifier","src":"11415:3:24"},{"name":"w","nativeSrc":"11420:1:24","nodeType":"YulIdentifier","src":"11420:1:24"}],"functionName":{"name":"add","nativeSrc":"11411:3:24","nodeType":"YulIdentifier","src":"11411:3:24"},"nativeSrc":"11411:11:24","nodeType":"YulFunctionCall","src":"11411:11:24"},"variableNames":[{"name":"str","nativeSrc":"11404:3:24","nodeType":"YulIdentifier","src":"11404:3:24"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"11469:3:24","nodeType":"YulIdentifier","src":"11469:3:24"},{"kind":"number","nativeSrc":"11474:1:24","nodeType":"YulLiteral","src":"11474:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11465:3:24","nodeType":"YulIdentifier","src":"11465:3:24"},"nativeSrc":"11465:11:24","nodeType":"YulFunctionCall","src":"11465:11:24"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"11488:4:24","nodeType":"YulIdentifier","src":"11488:4:24"},{"kind":"number","nativeSrc":"11494:2:24","nodeType":"YulLiteral","src":"11494:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"11484:3:24","nodeType":"YulIdentifier","src":"11484:3:24"},"nativeSrc":"11484:13:24","nodeType":"YulFunctionCall","src":"11484:13:24"}],"functionName":{"name":"mload","nativeSrc":"11478:5:24","nodeType":"YulIdentifier","src":"11478:5:24"},"nativeSrc":"11478:20:24","nodeType":"YulFunctionCall","src":"11478:20:24"}],"functionName":{"name":"mstore8","nativeSrc":"11457:7:24","nodeType":"YulIdentifier","src":"11457:7:24"},"nativeSrc":"11457:42:24","nodeType":"YulFunctionCall","src":"11457:42:24"},"nativeSrc":"11457:42:24","nodeType":"YulExpressionStatement","src":"11457:42:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"11524:3:24","nodeType":"YulIdentifier","src":"11524:3:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11543:1:24","nodeType":"YulLiteral","src":"11543:1:24","type":"","value":"4"},{"name":"temp","nativeSrc":"11546:4:24","nodeType":"YulIdentifier","src":"11546:4:24"}],"functionName":{"name":"shr","nativeSrc":"11539:3:24","nodeType":"YulIdentifier","src":"11539:3:24"},"nativeSrc":"11539:12:24","nodeType":"YulFunctionCall","src":"11539:12:24"},{"kind":"number","nativeSrc":"11553:2:24","nodeType":"YulLiteral","src":"11553:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"11535:3:24","nodeType":"YulIdentifier","src":"11535:3:24"},"nativeSrc":"11535:21:24","nodeType":"YulFunctionCall","src":"11535:21:24"}],"functionName":{"name":"mload","nativeSrc":"11529:5:24","nodeType":"YulIdentifier","src":"11529:5:24"},"nativeSrc":"11529:28:24","nodeType":"YulFunctionCall","src":"11529:28:24"}],"functionName":{"name":"mstore8","nativeSrc":"11516:7:24","nodeType":"YulIdentifier","src":"11516:7:24"},"nativeSrc":"11516:42:24","nodeType":"YulFunctionCall","src":"11516:42:24"},"nativeSrc":"11516:42:24","nodeType":"YulExpressionStatement","src":"11516:42:24"},{"nativeSrc":"11575:20:24","nodeType":"YulAssignment","src":"11575:20:24","value":{"arguments":[{"kind":"number","nativeSrc":"11587:1:24","nodeType":"YulLiteral","src":"11587:1:24","type":"","value":"8"},{"name":"temp","nativeSrc":"11590:4:24","nodeType":"YulIdentifier","src":"11590:4:24"}],"functionName":{"name":"shr","nativeSrc":"11583:3:24","nodeType":"YulIdentifier","src":"11583:3:24"},"nativeSrc":"11583:12:24","nodeType":"YulFunctionCall","src":"11583:12:24"},"variableNames":[{"name":"temp","nativeSrc":"11575:4:24","nodeType":"YulIdentifier","src":"11575:4:24"}]},{"body":{"nativeSrc":"11628:9:24","nodeType":"YulBlock","src":"11628:9:24","statements":[{"nativeSrc":"11630:5:24","nodeType":"YulBreak","src":"11630:5:24"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"11622:4:24","nodeType":"YulIdentifier","src":"11622:4:24"}],"functionName":{"name":"iszero","nativeSrc":"11615:6:24","nodeType":"YulIdentifier","src":"11615:6:24"},"nativeSrc":"11615:12:24","nodeType":"YulFunctionCall","src":"11615:12:24"},"nativeSrc":"11612:25:24","nodeType":"YulIf","src":"11612:25:24"}]},"condition":{"kind":"number","nativeSrc":"11381:1:24","nodeType":"YulLiteral","src":"11381:1:24","type":"","value":"1"},"nativeSrc":"11355:296:24","nodeType":"YulForLoop","post":{"nativeSrc":"11383:2:24","nodeType":"YulBlock","src":"11383:2:24","statements":[]},"pre":{"nativeSrc":"11359:21:24","nodeType":"YulBlock","src":"11359:21:24","statements":[{"nativeSrc":"11361:17:24","nodeType":"YulVariableDeclaration","src":"11361:17:24","value":{"name":"value","nativeSrc":"11373:5:24","nodeType":"YulIdentifier","src":"11373:5:24"},"variables":[{"name":"temp","nativeSrc":"11365:4:24","nodeType":"YulTypedName","src":"11365:4:24","type":""}]}]},"src":"11355:296:24"},{"nativeSrc":"11709:30:24","nodeType":"YulVariableDeclaration","src":"11709:30:24","value":{"arguments":[{"name":"end","nativeSrc":"11730:3:24","nodeType":"YulIdentifier","src":"11730:3:24"},{"name":"str","nativeSrc":"11735:3:24","nodeType":"YulIdentifier","src":"11735:3:24"}],"functionName":{"name":"sub","nativeSrc":"11726:3:24","nodeType":"YulIdentifier","src":"11726:3:24"},"nativeSrc":"11726:13:24","nodeType":"YulFunctionCall","src":"11726:13:24"},"variables":[{"name":"strLength","nativeSrc":"11713:9:24","nodeType":"YulTypedName","src":"11713:9:24","type":""}]},{"nativeSrc":"11806:21:24","nodeType":"YulAssignment","src":"11806:21:24","value":{"arguments":[{"name":"str","nativeSrc":"11817:3:24","nodeType":"YulIdentifier","src":"11817:3:24"},{"kind":"number","nativeSrc":"11822:4:24","nodeType":"YulLiteral","src":"11822:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"11813:3:24","nodeType":"YulIdentifier","src":"11813:3:24"},"nativeSrc":"11813:14:24","nodeType":"YulFunctionCall","src":"11813:14:24"},"variableNames":[{"name":"str","nativeSrc":"11806:3:24","nodeType":"YulIdentifier","src":"11806:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"11847:3:24","nodeType":"YulIdentifier","src":"11847:3:24"},{"name":"strLength","nativeSrc":"11852:9:24","nodeType":"YulIdentifier","src":"11852:9:24"}],"functionName":{"name":"mstore","nativeSrc":"11840:6:24","nodeType":"YulIdentifier","src":"11840:6:24"},"nativeSrc":"11840:22:24","nodeType":"YulFunctionCall","src":"11840:22:24"},"nativeSrc":"11840:22:24","nodeType":"YulExpressionStatement","src":"11840:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10454,"isOffset":false,"isSlot":false,"src":"10747:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"10842:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"10923:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11015:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11404:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11415:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11469:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11524:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11735:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11806:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11817:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11847:3:24","valueSize":1},{"declaration":10451,"isOffset":false,"isSlot":false,"src":"11373:5:24","valueSize":1}],"id":10456,"nodeType":"InlineAssembly","src":"10474:1398:24"}]},"documentation":{"id":10449,"nodeType":"StructuredDocumentation","src":"10094:236:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2` bytes."},"id":10458,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"10344:19:24","nodeType":"FunctionDefinition","parameters":{"id":10452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10451,"mutability":"mutable","name":"value","nameLocation":"10372:5:24","nodeType":"VariableDeclaration","scope":10458,"src":"10364:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10450,"name":"uint256","nodeType":"ElementaryTypeName","src":"10364:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10363:15:24"},"returnParameters":{"id":10455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10454,"mutability":"mutable","name":"str","nameLocation":"10416:3:24","nodeType":"VariableDeclaration","scope":10458,"src":"10402:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10453,"name":"string","nodeType":"ElementaryTypeName","src":"10402:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10401:19:24"},"scope":10964,"src":"10335:1543:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10473,"nodeType":"Block","src":"12239:749:24","statements":[{"expression":{"id":10470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10466,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10464,"src":"12249:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10468,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10461,"src":"12267:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10467,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[10388,10416,10490,10516],"referencedDeclaration":10490,"src":"12255:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":10469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12255:18:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12249:24:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10471,"nodeType":"ExpressionStatement","src":"12249:24:24"},{"AST":{"nativeSrc":"12335:647:24","nodeType":"YulBlock","src":"12335:647:24","statements":[{"nativeSrc":"12349:36:24","nodeType":"YulVariableDeclaration","src":"12349:36:24","value":{"arguments":[{"kind":"number","nativeSrc":"12365:1:24","nodeType":"YulLiteral","src":"12365:1:24","type":"","value":"6"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12376:1:24","nodeType":"YulLiteral","src":"12376:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"12372:3:24","nodeType":"YulIdentifier","src":"12372:3:24"},"nativeSrc":"12372:6:24","nodeType":"YulFunctionCall","src":"12372:6:24"},{"kind":"number","nativeSrc":"12380:3:24","nodeType":"YulLiteral","src":"12380:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"12368:3:24","nodeType":"YulIdentifier","src":"12368:3:24"},"nativeSrc":"12368:16:24","nodeType":"YulFunctionCall","src":"12368:16:24"}],"functionName":{"name":"shl","nativeSrc":"12361:3:24","nodeType":"YulIdentifier","src":"12361:3:24"},"nativeSrc":"12361:24:24","nodeType":"YulFunctionCall","src":"12361:24:24"},"variables":[{"name":"mask","nativeSrc":"12353:4:24","nodeType":"YulTypedName","src":"12353:4:24","type":""}]},{"nativeSrc":"12428:23:24","nodeType":"YulVariableDeclaration","src":"12428:23:24","value":{"arguments":[{"name":"str","nativeSrc":"12441:3:24","nodeType":"YulIdentifier","src":"12441:3:24"},{"kind":"number","nativeSrc":"12446:4:24","nodeType":"YulLiteral","src":"12446:4:24","type":"","value":"0x22"}],"functionName":{"name":"add","nativeSrc":"12437:3:24","nodeType":"YulIdentifier","src":"12437:3:24"},"nativeSrc":"12437:14:24","nodeType":"YulFunctionCall","src":"12437:14:24"},"variables":[{"name":"o","nativeSrc":"12432:1:24","nodeType":"YulTypedName","src":"12432:1:24","type":""}]},{"nativeSrc":"12464:50:24","nodeType":"YulVariableDeclaration","src":"12464:50:24","value":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12492:1:24","nodeType":"YulIdentifier","src":"12492:1:24"},{"kind":"number","nativeSrc":"12495:2:24","nodeType":"YulLiteral","src":"12495:2:24","type":"","value":"40"}],"functionName":{"name":"keccak256","nativeSrc":"12482:9:24","nodeType":"YulIdentifier","src":"12482:9:24"},"nativeSrc":"12482:16:24","nodeType":"YulFunctionCall","src":"12482:16:24"},{"arguments":[{"kind":"number","nativeSrc":"12504:2:24","nodeType":"YulLiteral","src":"12504:2:24","type":"","value":"34"},{"name":"mask","nativeSrc":"12508:4:24","nodeType":"YulIdentifier","src":"12508:4:24"}],"functionName":{"name":"mul","nativeSrc":"12500:3:24","nodeType":"YulIdentifier","src":"12500:3:24"},"nativeSrc":"12500:13:24","nodeType":"YulFunctionCall","src":"12500:13:24"}],"functionName":{"name":"and","nativeSrc":"12478:3:24","nodeType":"YulIdentifier","src":"12478:3:24"},"nativeSrc":"12478:36:24","nodeType":"YulFunctionCall","src":"12478:36:24"},"variables":[{"name":"hashed","nativeSrc":"12468:6:24","nodeType":"YulTypedName","src":"12468:6:24","type":""}]},{"nativeSrc":"12548:22:24","nodeType":"YulVariableDeclaration","src":"12548:22:24","value":{"arguments":[{"kind":"number","nativeSrc":"12561:3:24","nodeType":"YulLiteral","src":"12561:3:24","type":"","value":"240"},{"kind":"number","nativeSrc":"12566:3:24","nodeType":"YulLiteral","src":"12566:3:24","type":"","value":"136"}],"functionName":{"name":"shl","nativeSrc":"12557:3:24","nodeType":"YulIdentifier","src":"12557:3:24"},"nativeSrc":"12557:13:24","nodeType":"YulFunctionCall","src":"12557:13:24"},"variables":[{"name":"t","nativeSrc":"12552:1:24","nodeType":"YulTypedName","src":"12552:1:24","type":""}]},{"body":{"nativeSrc":"12630:144:24","nodeType":"YulBlock","src":"12630:144:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"i","nativeSrc":"12659:1:24","nodeType":"YulIdentifier","src":"12659:1:24"},{"name":"i","nativeSrc":"12662:1:24","nodeType":"YulIdentifier","src":"12662:1:24"}],"functionName":{"name":"add","nativeSrc":"12655:3:24","nodeType":"YulIdentifier","src":"12655:3:24"},"nativeSrc":"12655:9:24","nodeType":"YulFunctionCall","src":"12655:9:24"},{"arguments":[{"name":"t","nativeSrc":"12670:1:24","nodeType":"YulIdentifier","src":"12670:1:24"},{"arguments":[{"name":"i","nativeSrc":"12678:1:24","nodeType":"YulIdentifier","src":"12678:1:24"},{"name":"hashed","nativeSrc":"12681:6:24","nodeType":"YulIdentifier","src":"12681:6:24"}],"functionName":{"name":"byte","nativeSrc":"12673:4:24","nodeType":"YulIdentifier","src":"12673:4:24"},"nativeSrc":"12673:15:24","nodeType":"YulFunctionCall","src":"12673:15:24"}],"functionName":{"name":"mul","nativeSrc":"12666:3:24","nodeType":"YulIdentifier","src":"12666:3:24"},"nativeSrc":"12666:23:24","nodeType":"YulFunctionCall","src":"12666:23:24"}],"functionName":{"name":"mstore","nativeSrc":"12648:6:24","nodeType":"YulIdentifier","src":"12648:6:24"},"nativeSrc":"12648:42:24","nodeType":"YulFunctionCall","src":"12648:42:24"},"nativeSrc":"12648:42:24","nodeType":"YulExpressionStatement","src":"12648:42:24"},{"nativeSrc":"12707:14:24","nodeType":"YulAssignment","src":"12707:14:24","value":{"arguments":[{"name":"i","nativeSrc":"12716:1:24","nodeType":"YulIdentifier","src":"12716:1:24"},{"kind":"number","nativeSrc":"12719:1:24","nodeType":"YulLiteral","src":"12719:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12712:3:24","nodeType":"YulIdentifier","src":"12712:3:24"},"nativeSrc":"12712:9:24","nodeType":"YulFunctionCall","src":"12712:9:24"},"variableNames":[{"name":"i","nativeSrc":"12707:1:24","nodeType":"YulIdentifier","src":"12707:1:24"}]},{"body":{"nativeSrc":"12751:9:24","nodeType":"YulBlock","src":"12751:9:24","statements":[{"nativeSrc":"12753:5:24","nodeType":"YulBreak","src":"12753:5:24"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"12744:1:24","nodeType":"YulIdentifier","src":"12744:1:24"},{"kind":"number","nativeSrc":"12747:2:24","nodeType":"YulLiteral","src":"12747:2:24","type":"","value":"20"}],"functionName":{"name":"eq","nativeSrc":"12741:2:24","nodeType":"YulIdentifier","src":"12741:2:24"},"nativeSrc":"12741:9:24","nodeType":"YulFunctionCall","src":"12741:9:24"},"nativeSrc":"12738:22:24","nodeType":"YulIf","src":"12738:22:24"}]},"condition":{"kind":"number","nativeSrc":"12625:1:24","nodeType":"YulLiteral","src":"12625:1:24","type":"","value":"1"},"nativeSrc":"12606:168:24","nodeType":"YulForLoop","post":{"nativeSrc":"12627:2:24","nodeType":"YulBlock","src":"12627:2:24","statements":[]},"pre":{"nativeSrc":"12610:14:24","nodeType":"YulBlock","src":"12610:14:24","statements":[{"nativeSrc":"12612:10:24","nodeType":"YulVariableDeclaration","src":"12612:10:24","value":{"kind":"number","nativeSrc":"12621:1:24","nodeType":"YulLiteral","src":"12621:1:24","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"12616:1:24","nodeType":"YulTypedName","src":"12616:1:24","type":""}]}]},"src":"12606:168:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"12794:1:24","nodeType":"YulIdentifier","src":"12794:1:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12807:1:24","nodeType":"YulIdentifier","src":"12807:1:24"}],"functionName":{"name":"mload","nativeSrc":"12801:5:24","nodeType":"YulIdentifier","src":"12801:5:24"},"nativeSrc":"12801:8:24","nodeType":"YulFunctionCall","src":"12801:8:24"},{"arguments":[{"kind":"number","nativeSrc":"12815:1:24","nodeType":"YulLiteral","src":"12815:1:24","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12828:4:24","nodeType":"YulLiteral","src":"12828:4:24","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"12822:5:24","nodeType":"YulIdentifier","src":"12822:5:24"},"nativeSrc":"12822:11:24","nodeType":"YulFunctionCall","src":"12822:11:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12845:1:24","nodeType":"YulIdentifier","src":"12845:1:24"}],"functionName":{"name":"mload","nativeSrc":"12839:5:24","nodeType":"YulIdentifier","src":"12839:5:24"},"nativeSrc":"12839:8:24","nodeType":"YulFunctionCall","src":"12839:8:24"},{"name":"mask","nativeSrc":"12849:4:24","nodeType":"YulIdentifier","src":"12849:4:24"}],"functionName":{"name":"and","nativeSrc":"12835:3:24","nodeType":"YulIdentifier","src":"12835:3:24"},"nativeSrc":"12835:19:24","nodeType":"YulFunctionCall","src":"12835:19:24"}],"functionName":{"name":"and","nativeSrc":"12818:3:24","nodeType":"YulIdentifier","src":"12818:3:24"},"nativeSrc":"12818:37:24","nodeType":"YulFunctionCall","src":"12818:37:24"}],"functionName":{"name":"shr","nativeSrc":"12811:3:24","nodeType":"YulIdentifier","src":"12811:3:24"},"nativeSrc":"12811:45:24","nodeType":"YulFunctionCall","src":"12811:45:24"}],"functionName":{"name":"xor","nativeSrc":"12797:3:24","nodeType":"YulIdentifier","src":"12797:3:24"},"nativeSrc":"12797:60:24","nodeType":"YulFunctionCall","src":"12797:60:24"}],"functionName":{"name":"mstore","nativeSrc":"12787:6:24","nodeType":"YulIdentifier","src":"12787:6:24"},"nativeSrc":"12787:71:24","nodeType":"YulFunctionCall","src":"12787:71:24"},"nativeSrc":"12787:71:24","nodeType":"YulExpressionStatement","src":"12787:71:24"},{"nativeSrc":"12871:17:24","nodeType":"YulAssignment","src":"12871:17:24","value":{"arguments":[{"name":"o","nativeSrc":"12880:1:24","nodeType":"YulIdentifier","src":"12880:1:24"},{"kind":"number","nativeSrc":"12883:4:24","nodeType":"YulLiteral","src":"12883:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12876:3:24","nodeType":"YulIdentifier","src":"12876:3:24"},"nativeSrc":"12876:12:24","nodeType":"YulFunctionCall","src":"12876:12:24"},"variableNames":[{"name":"o","nativeSrc":"12871:1:24","nodeType":"YulIdentifier","src":"12871:1:24"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"12908:1:24","nodeType":"YulIdentifier","src":"12908:1:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12921:1:24","nodeType":"YulIdentifier","src":"12921:1:24"}],"functionName":{"name":"mload","nativeSrc":"12915:5:24","nodeType":"YulIdentifier","src":"12915:5:24"},"nativeSrc":"12915:8:24","nodeType":"YulFunctionCall","src":"12915:8:24"},{"arguments":[{"kind":"number","nativeSrc":"12929:1:24","nodeType":"YulLiteral","src":"12929:1:24","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12942:4:24","nodeType":"YulLiteral","src":"12942:4:24","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"12936:5:24","nodeType":"YulIdentifier","src":"12936:5:24"},"nativeSrc":"12936:11:24","nodeType":"YulFunctionCall","src":"12936:11:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12959:1:24","nodeType":"YulIdentifier","src":"12959:1:24"}],"functionName":{"name":"mload","nativeSrc":"12953:5:24","nodeType":"YulIdentifier","src":"12953:5:24"},"nativeSrc":"12953:8:24","nodeType":"YulFunctionCall","src":"12953:8:24"},{"name":"mask","nativeSrc":"12963:4:24","nodeType":"YulIdentifier","src":"12963:4:24"}],"functionName":{"name":"and","nativeSrc":"12949:3:24","nodeType":"YulIdentifier","src":"12949:3:24"},"nativeSrc":"12949:19:24","nodeType":"YulFunctionCall","src":"12949:19:24"}],"functionName":{"name":"and","nativeSrc":"12932:3:24","nodeType":"YulIdentifier","src":"12932:3:24"},"nativeSrc":"12932:37:24","nodeType":"YulFunctionCall","src":"12932:37:24"}],"functionName":{"name":"shr","nativeSrc":"12925:3:24","nodeType":"YulIdentifier","src":"12925:3:24"},"nativeSrc":"12925:45:24","nodeType":"YulFunctionCall","src":"12925:45:24"}],"functionName":{"name":"xor","nativeSrc":"12911:3:24","nodeType":"YulIdentifier","src":"12911:3:24"},"nativeSrc":"12911:60:24","nodeType":"YulFunctionCall","src":"12911:60:24"}],"functionName":{"name":"mstore","nativeSrc":"12901:6:24","nodeType":"YulIdentifier","src":"12901:6:24"},"nativeSrc":"12901:71:24","nodeType":"YulFunctionCall","src":"12901:71:24"},"nativeSrc":"12901:71:24","nodeType":"YulExpressionStatement","src":"12901:71:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10464,"isOffset":false,"isSlot":false,"src":"12441:3:24","valueSize":1}],"id":10472,"nodeType":"InlineAssembly","src":"12326:656:24"}]},"documentation":{"id":10459,"nodeType":"StructuredDocumentation","src":"11884:261:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\", encoded using 2 hexadecimal digits per byte,\n and the alphabets are capitalized conditionally according to\n https://eips.ethereum.org/EIPS/eip-55"},"id":10474,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringChecksummed","nameLocation":"12159:22:24","nodeType":"FunctionDefinition","parameters":{"id":10462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10461,"mutability":"mutable","name":"value","nameLocation":"12190:5:24","nodeType":"VariableDeclaration","scope":10474,"src":"12182:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10460,"name":"address","nodeType":"ElementaryTypeName","src":"12182:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12181:15:24"},"returnParameters":{"id":10465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10464,"mutability":"mutable","name":"str","nameLocation":"12234:3:24","nodeType":"VariableDeclaration","scope":10474,"src":"12220:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10463,"name":"string","nodeType":"ElementaryTypeName","src":"12220:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12219:19:24"},"scope":10964,"src":"12150:838:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10489,"nodeType":"Block","src":"13226:358:24","statements":[{"expression":{"id":10486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10482,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10480,"src":"13236:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10484,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10477,"src":"13262:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10483,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10500,"src":"13242:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":10485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13242:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13236:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10487,"nodeType":"ExpressionStatement","src":"13236:32:24"},{"AST":{"nativeSrc":"13330:248:24","nodeType":"YulBlock","src":"13330:248:24","statements":[{"nativeSrc":"13344:35:24","nodeType":"YulVariableDeclaration","src":"13344:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"13371:3:24","nodeType":"YulIdentifier","src":"13371:3:24"}],"functionName":{"name":"mload","nativeSrc":"13365:5:24","nodeType":"YulIdentifier","src":"13365:5:24"},"nativeSrc":"13365:10:24","nodeType":"YulFunctionCall","src":"13365:10:24"},{"kind":"number","nativeSrc":"13377:1:24","nodeType":"YulLiteral","src":"13377:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"13361:3:24","nodeType":"YulIdentifier","src":"13361:3:24"},"nativeSrc":"13361:18:24","nodeType":"YulFunctionCall","src":"13361:18:24"},"variables":[{"name":"strLength","nativeSrc":"13348:9:24","nodeType":"YulTypedName","src":"13348:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"13422:3:24","nodeType":"YulIdentifier","src":"13422:3:24"},{"kind":"number","nativeSrc":"13427:6:24","nodeType":"YulLiteral","src":"13427:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"13415:6:24","nodeType":"YulIdentifier","src":"13415:6:24"},"nativeSrc":"13415:19:24","nodeType":"YulFunctionCall","src":"13415:19:24"},"nativeSrc":"13415:19:24","nodeType":"YulExpressionStatement","src":"13415:19:24"},{"nativeSrc":"13473:18:24","nodeType":"YulAssignment","src":"13473:18:24","value":{"arguments":[{"name":"str","nativeSrc":"13484:3:24","nodeType":"YulIdentifier","src":"13484:3:24"},{"kind":"number","nativeSrc":"13489:1:24","nodeType":"YulLiteral","src":"13489:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"13480:3:24","nodeType":"YulIdentifier","src":"13480:3:24"},"nativeSrc":"13480:11:24","nodeType":"YulFunctionCall","src":"13480:11:24"},"variableNames":[{"name":"str","nativeSrc":"13473:3:24","nodeType":"YulIdentifier","src":"13473:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"13532:3:24","nodeType":"YulIdentifier","src":"13532:3:24"},{"name":"strLength","nativeSrc":"13537:9:24","nodeType":"YulIdentifier","src":"13537:9:24"}],"functionName":{"name":"mstore","nativeSrc":"13525:6:24","nodeType":"YulIdentifier","src":"13525:6:24"},"nativeSrc":"13525:22:24","nodeType":"YulFunctionCall","src":"13525:22:24"},"nativeSrc":"13525:22:24","nodeType":"YulExpressionStatement","src":"13525:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13371:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13422:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13473:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13484:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13532:3:24","valueSize":1}],"id":10488,"nodeType":"InlineAssembly","src":"13321:257:24"}]},"documentation":{"id":10475,"nodeType":"StructuredDocumentation","src":"12994:149:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte."},"id":10490,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"13157:11:24","nodeType":"FunctionDefinition","parameters":{"id":10478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10477,"mutability":"mutable","name":"value","nameLocation":"13177:5:24","nodeType":"VariableDeclaration","scope":10490,"src":"13169:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10476,"name":"address","nodeType":"ElementaryTypeName","src":"13169:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13168:15:24"},"returnParameters":{"id":10481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10480,"mutability":"mutable","name":"str","nameLocation":"13221:3:24","nodeType":"VariableDeclaration","scope":10490,"src":"13207:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10479,"name":"string","nodeType":"ElementaryTypeName","src":"13207:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13206:19:24"},"scope":10964,"src":"13148:436:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10499,"nodeType":"Block","src":"13807:1208:24","statements":[{"AST":{"nativeSrc":"13869:1140:24","nodeType":"YulBlock","src":"13869:1140:24","statements":[{"nativeSrc":"13883:18:24","nodeType":"YulAssignment","src":"13883:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"13896:4:24","nodeType":"YulLiteral","src":"13896:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13890:5:24","nodeType":"YulIdentifier","src":"13890:5:24"},"nativeSrc":"13890:11:24","nodeType":"YulFunctionCall","src":"13890:11:24"},"variableNames":[{"name":"str","nativeSrc":"13883:3:24","nodeType":"YulIdentifier","src":"13883:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14208:4:24","nodeType":"YulLiteral","src":"14208:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"14218:3:24","nodeType":"YulIdentifier","src":"14218:3:24"},{"kind":"number","nativeSrc":"14223:4:24","nodeType":"YulLiteral","src":"14223:4:24","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14214:3:24","nodeType":"YulIdentifier","src":"14214:3:24"},"nativeSrc":"14214:14:24","nodeType":"YulFunctionCall","src":"14214:14:24"}],"functionName":{"name":"mstore","nativeSrc":"14201:6:24","nodeType":"YulIdentifier","src":"14201:6:24"},"nativeSrc":"14201:28:24","nodeType":"YulFunctionCall","src":"14201:28:24"},"nativeSrc":"14201:28:24","nodeType":"YulExpressionStatement","src":"14201:28:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14308:4:24","nodeType":"YulLiteral","src":"14308:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"14314:34:24","nodeType":"YulLiteral","src":"14314:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"14301:6:24","nodeType":"YulIdentifier","src":"14301:6:24"},"nativeSrc":"14301:48:24","nodeType":"YulFunctionCall","src":"14301:48:24"},"nativeSrc":"14301:48:24","nodeType":"YulExpressionStatement","src":"14301:48:24"},{"nativeSrc":"14363:18:24","nodeType":"YulAssignment","src":"14363:18:24","value":{"arguments":[{"name":"str","nativeSrc":"14374:3:24","nodeType":"YulIdentifier","src":"14374:3:24"},{"kind":"number","nativeSrc":"14379:1:24","nodeType":"YulLiteral","src":"14379:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"14370:3:24","nodeType":"YulIdentifier","src":"14370:3:24"},"nativeSrc":"14370:11:24","nodeType":"YulFunctionCall","src":"14370:11:24"},"variableNames":[{"name":"str","nativeSrc":"14363:3:24","nodeType":"YulIdentifier","src":"14363:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"14401:3:24","nodeType":"YulIdentifier","src":"14401:3:24"},{"kind":"number","nativeSrc":"14406:2:24","nodeType":"YulLiteral","src":"14406:2:24","type":"","value":"40"}],"functionName":{"name":"mstore","nativeSrc":"14394:6:24","nodeType":"YulIdentifier","src":"14394:6:24"},"nativeSrc":"14394:15:24","nodeType":"YulFunctionCall","src":"14394:15:24"},"nativeSrc":"14394:15:24","nodeType":"YulExpressionStatement","src":"14394:15:24"},{"nativeSrc":"14423:23:24","nodeType":"YulVariableDeclaration","src":"14423:23:24","value":{"arguments":[{"name":"str","nativeSrc":"14436:3:24","nodeType":"YulIdentifier","src":"14436:3:24"},{"kind":"number","nativeSrc":"14441:4:24","nodeType":"YulLiteral","src":"14441:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14432:3:24","nodeType":"YulIdentifier","src":"14432:3:24"},"nativeSrc":"14432:14:24","nodeType":"YulFunctionCall","src":"14432:14:24"},"variables":[{"name":"o","nativeSrc":"14427:1:24","nodeType":"YulTypedName","src":"14427:1:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"14470:1:24","nodeType":"YulIdentifier","src":"14470:1:24"},{"kind":"number","nativeSrc":"14473:2:24","nodeType":"YulLiteral","src":"14473:2:24","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"14466:3:24","nodeType":"YulIdentifier","src":"14466:3:24"},"nativeSrc":"14466:10:24","nodeType":"YulFunctionCall","src":"14466:10:24"},{"kind":"number","nativeSrc":"14478:1:24","nodeType":"YulLiteral","src":"14478:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14459:6:24","nodeType":"YulIdentifier","src":"14459:6:24"},"nativeSrc":"14459:21:24","nodeType":"YulFunctionCall","src":"14459:21:24"},"nativeSrc":"14459:21:24","nodeType":"YulExpressionStatement","src":"14459:21:24"},{"nativeSrc":"14494:23:24","nodeType":"YulAssignment","src":"14494:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"14507:2:24","nodeType":"YulLiteral","src":"14507:2:24","type":"","value":"96"},{"name":"value","nativeSrc":"14511:5:24","nodeType":"YulIdentifier","src":"14511:5:24"}],"functionName":{"name":"shl","nativeSrc":"14503:3:24","nodeType":"YulIdentifier","src":"14503:3:24"},"nativeSrc":"14503:14:24","nodeType":"YulFunctionCall","src":"14503:14:24"},"variableNames":[{"name":"value","nativeSrc":"14494:5:24","nodeType":"YulIdentifier","src":"14494:5:24"}]},{"body":{"nativeSrc":"14723:276:24","nodeType":"YulBlock","src":"14723:276:24","statements":[{"nativeSrc":"14741:26:24","nodeType":"YulVariableDeclaration","src":"14741:26:24","value":{"arguments":[{"name":"o","nativeSrc":"14754:1:24","nodeType":"YulIdentifier","src":"14754:1:24"},{"arguments":[{"name":"i","nativeSrc":"14761:1:24","nodeType":"YulIdentifier","src":"14761:1:24"},{"name":"i","nativeSrc":"14764:1:24","nodeType":"YulIdentifier","src":"14764:1:24"}],"functionName":{"name":"add","nativeSrc":"14757:3:24","nodeType":"YulIdentifier","src":"14757:3:24"},"nativeSrc":"14757:9:24","nodeType":"YulFunctionCall","src":"14757:9:24"}],"functionName":{"name":"add","nativeSrc":"14750:3:24","nodeType":"YulIdentifier","src":"14750:3:24"},"nativeSrc":"14750:17:24","nodeType":"YulFunctionCall","src":"14750:17:24"},"variables":[{"name":"p","nativeSrc":"14745:1:24","nodeType":"YulTypedName","src":"14745:1:24","type":""}]},{"nativeSrc":"14784:26:24","nodeType":"YulVariableDeclaration","src":"14784:26:24","value":{"arguments":[{"name":"i","nativeSrc":"14801:1:24","nodeType":"YulIdentifier","src":"14801:1:24"},{"name":"value","nativeSrc":"14804:5:24","nodeType":"YulIdentifier","src":"14804:5:24"}],"functionName":{"name":"byte","nativeSrc":"14796:4:24","nodeType":"YulIdentifier","src":"14796:4:24"},"nativeSrc":"14796:14:24","nodeType":"YulFunctionCall","src":"14796:14:24"},"variables":[{"name":"temp","nativeSrc":"14788:4:24","nodeType":"YulTypedName","src":"14788:4:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"p","nativeSrc":"14839:1:24","nodeType":"YulIdentifier","src":"14839:1:24"},{"kind":"number","nativeSrc":"14842:1:24","nodeType":"YulLiteral","src":"14842:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14835:3:24","nodeType":"YulIdentifier","src":"14835:3:24"},"nativeSrc":"14835:9:24","nodeType":"YulFunctionCall","src":"14835:9:24"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"14856:4:24","nodeType":"YulIdentifier","src":"14856:4:24"},{"kind":"number","nativeSrc":"14862:2:24","nodeType":"YulLiteral","src":"14862:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"14852:3:24","nodeType":"YulIdentifier","src":"14852:3:24"},"nativeSrc":"14852:13:24","nodeType":"YulFunctionCall","src":"14852:13:24"}],"functionName":{"name":"mload","nativeSrc":"14846:5:24","nodeType":"YulIdentifier","src":"14846:5:24"},"nativeSrc":"14846:20:24","nodeType":"YulFunctionCall","src":"14846:20:24"}],"functionName":{"name":"mstore8","nativeSrc":"14827:7:24","nodeType":"YulIdentifier","src":"14827:7:24"},"nativeSrc":"14827:40:24","nodeType":"YulFunctionCall","src":"14827:40:24"},"nativeSrc":"14827:40:24","nodeType":"YulExpressionStatement","src":"14827:40:24"},{"expression":{"arguments":[{"name":"p","nativeSrc":"14892:1:24","nodeType":"YulIdentifier","src":"14892:1:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14905:1:24","nodeType":"YulLiteral","src":"14905:1:24","type":"","value":"4"},{"name":"temp","nativeSrc":"14908:4:24","nodeType":"YulIdentifier","src":"14908:4:24"}],"functionName":{"name":"shr","nativeSrc":"14901:3:24","nodeType":"YulIdentifier","src":"14901:3:24"},"nativeSrc":"14901:12:24","nodeType":"YulFunctionCall","src":"14901:12:24"}],"functionName":{"name":"mload","nativeSrc":"14895:5:24","nodeType":"YulIdentifier","src":"14895:5:24"},"nativeSrc":"14895:19:24","nodeType":"YulFunctionCall","src":"14895:19:24"}],"functionName":{"name":"mstore8","nativeSrc":"14884:7:24","nodeType":"YulIdentifier","src":"14884:7:24"},"nativeSrc":"14884:31:24","nodeType":"YulFunctionCall","src":"14884:31:24"},"nativeSrc":"14884:31:24","nodeType":"YulExpressionStatement","src":"14884:31:24"},{"nativeSrc":"14932:14:24","nodeType":"YulAssignment","src":"14932:14:24","value":{"arguments":[{"name":"i","nativeSrc":"14941:1:24","nodeType":"YulIdentifier","src":"14941:1:24"},{"kind":"number","nativeSrc":"14944:1:24","nodeType":"YulLiteral","src":"14944:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14937:3:24","nodeType":"YulIdentifier","src":"14937:3:24"},"nativeSrc":"14937:9:24","nodeType":"YulFunctionCall","src":"14937:9:24"},"variableNames":[{"name":"i","nativeSrc":"14932:1:24","nodeType":"YulIdentifier","src":"14932:1:24"}]},{"body":{"nativeSrc":"14976:9:24","nodeType":"YulBlock","src":"14976:9:24","statements":[{"nativeSrc":"14978:5:24","nodeType":"YulBreak","src":"14978:5:24"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14969:1:24","nodeType":"YulIdentifier","src":"14969:1:24"},{"kind":"number","nativeSrc":"14972:2:24","nodeType":"YulLiteral","src":"14972:2:24","type":"","value":"20"}],"functionName":{"name":"eq","nativeSrc":"14966:2:24","nodeType":"YulIdentifier","src":"14966:2:24"},"nativeSrc":"14966:9:24","nodeType":"YulFunctionCall","src":"14966:9:24"},"nativeSrc":"14963:22:24","nodeType":"YulIf","src":"14963:22:24"}]},"condition":{"kind":"number","nativeSrc":"14718:1:24","nodeType":"YulLiteral","src":"14718:1:24","type":"","value":"1"},"nativeSrc":"14699:300:24","nodeType":"YulForLoop","post":{"nativeSrc":"14720:2:24","nodeType":"YulBlock","src":"14720:2:24","statements":[]},"pre":{"nativeSrc":"14703:14:24","nodeType":"YulBlock","src":"14703:14:24","statements":[{"nativeSrc":"14705:10:24","nodeType":"YulVariableDeclaration","src":"14705:10:24","value":{"kind":"number","nativeSrc":"14714:1:24","nodeType":"YulLiteral","src":"14714:1:24","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14709:1:24","nodeType":"YulTypedName","src":"14709:1:24","type":""}]}]},"src":"14699:300:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10496,"isOffset":false,"isSlot":false,"src":"13883:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14218:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14363:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14374:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14401:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14436:3:24","valueSize":1},{"declaration":10493,"isOffset":false,"isSlot":false,"src":"14494:5:24","valueSize":1},{"declaration":10493,"isOffset":false,"isSlot":false,"src":"14511:5:24","valueSize":1},{"declaration":10493,"isOffset":false,"isSlot":false,"src":"14804:5:24","valueSize":1}],"id":10498,"nodeType":"InlineAssembly","src":"13860:1149:24"}]},"documentation":{"id":10491,"nodeType":"StructuredDocumentation","src":"13590:126:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10500,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"13730:19:24","nodeType":"FunctionDefinition","parameters":{"id":10494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10493,"mutability":"mutable","name":"value","nameLocation":"13758:5:24","nodeType":"VariableDeclaration","scope":10500,"src":"13750:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10492,"name":"address","nodeType":"ElementaryTypeName","src":"13750:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13749:15:24"},"returnParameters":{"id":10497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10496,"mutability":"mutable","name":"str","nameLocation":"13802:3:24","nodeType":"VariableDeclaration","scope":10500,"src":"13788:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10495,"name":"string","nodeType":"ElementaryTypeName","src":"13788:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13787:19:24"},"scope":10964,"src":"13721:1294:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10515,"nodeType":"Block","src":"15233:356:24","statements":[{"expression":{"id":10512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10508,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10506,"src":"15243:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10510,"name":"raw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"15269:3:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10509,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10526,"src":"15249:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":10511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15249:24:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"15243:30:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10513,"nodeType":"ExpressionStatement","src":"15243:30:24"},{"AST":{"nativeSrc":"15335:248:24","nodeType":"YulBlock","src":"15335:248:24","statements":[{"nativeSrc":"15349:35:24","nodeType":"YulVariableDeclaration","src":"15349:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"15376:3:24","nodeType":"YulIdentifier","src":"15376:3:24"}],"functionName":{"name":"mload","nativeSrc":"15370:5:24","nodeType":"YulIdentifier","src":"15370:5:24"},"nativeSrc":"15370:10:24","nodeType":"YulFunctionCall","src":"15370:10:24"},{"kind":"number","nativeSrc":"15382:1:24","nodeType":"YulLiteral","src":"15382:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"15366:3:24","nodeType":"YulIdentifier","src":"15366:3:24"},"nativeSrc":"15366:18:24","nodeType":"YulFunctionCall","src":"15366:18:24"},"variables":[{"name":"strLength","nativeSrc":"15353:9:24","nodeType":"YulTypedName","src":"15353:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"15427:3:24","nodeType":"YulIdentifier","src":"15427:3:24"},{"kind":"number","nativeSrc":"15432:6:24","nodeType":"YulLiteral","src":"15432:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"15420:6:24","nodeType":"YulIdentifier","src":"15420:6:24"},"nativeSrc":"15420:19:24","nodeType":"YulFunctionCall","src":"15420:19:24"},"nativeSrc":"15420:19:24","nodeType":"YulExpressionStatement","src":"15420:19:24"},{"nativeSrc":"15478:18:24","nodeType":"YulAssignment","src":"15478:18:24","value":{"arguments":[{"name":"str","nativeSrc":"15489:3:24","nodeType":"YulIdentifier","src":"15489:3:24"},{"kind":"number","nativeSrc":"15494:1:24","nodeType":"YulLiteral","src":"15494:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"15485:3:24","nodeType":"YulIdentifier","src":"15485:3:24"},"nativeSrc":"15485:11:24","nodeType":"YulFunctionCall","src":"15485:11:24"},"variableNames":[{"name":"str","nativeSrc":"15478:3:24","nodeType":"YulIdentifier","src":"15478:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"15537:3:24","nodeType":"YulIdentifier","src":"15537:3:24"},{"name":"strLength","nativeSrc":"15542:9:24","nodeType":"YulIdentifier","src":"15542:9:24"}],"functionName":{"name":"mstore","nativeSrc":"15530:6:24","nodeType":"YulIdentifier","src":"15530:6:24"},"nativeSrc":"15530:22:24","nodeType":"YulFunctionCall","src":"15530:22:24"},"nativeSrc":"15530:22:24","nodeType":"YulExpressionStatement","src":"15530:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15376:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15427:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15478:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15489:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15537:3:24","valueSize":1}],"id":10514,"nodeType":"InlineAssembly","src":"15326:257:24"}]},"documentation":{"id":10501,"nodeType":"StructuredDocumentation","src":"15021:126:24","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10516,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"15161:11:24","nodeType":"FunctionDefinition","parameters":{"id":10504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10503,"mutability":"mutable","name":"raw","nameLocation":"15186:3:24","nodeType":"VariableDeclaration","scope":10516,"src":"15173:16:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10502,"name":"bytes","nodeType":"ElementaryTypeName","src":"15173:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15172:18:24"},"returnParameters":{"id":10507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10506,"mutability":"mutable","name":"str","nameLocation":"15228:3:24","nodeType":"VariableDeclaration","scope":10516,"src":"15214:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10505,"name":"string","nodeType":"ElementaryTypeName","src":"15214:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15213:19:24"},"scope":10964,"src":"15152:437:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10525,"nodeType":"Block","src":"15815:851:24","statements":[{"AST":{"nativeSrc":"15877:783:24","nodeType":"YulBlock","src":"15877:783:24","statements":[{"nativeSrc":"15891:24:24","nodeType":"YulVariableDeclaration","src":"15891:24:24","value":{"arguments":[{"name":"raw","nativeSrc":"15911:3:24","nodeType":"YulIdentifier","src":"15911:3:24"}],"functionName":{"name":"mload","nativeSrc":"15905:5:24","nodeType":"YulIdentifier","src":"15905:5:24"},"nativeSrc":"15905:10:24","nodeType":"YulFunctionCall","src":"15905:10:24"},"variables":[{"name":"length","nativeSrc":"15895:6:24","nodeType":"YulTypedName","src":"15895:6:24","type":""}]},{"nativeSrc":"15928:26:24","nodeType":"YulAssignment","src":"15928:26:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15945:4:24","nodeType":"YulLiteral","src":"15945:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"15939:5:24","nodeType":"YulIdentifier","src":"15939:5:24"},"nativeSrc":"15939:11:24","nodeType":"YulFunctionCall","src":"15939:11:24"},{"kind":"number","nativeSrc":"15952:1:24","nodeType":"YulLiteral","src":"15952:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"15935:3:24","nodeType":"YulIdentifier","src":"15935:3:24"},"nativeSrc":"15935:19:24","nodeType":"YulFunctionCall","src":"15935:19:24"},"variableNames":[{"name":"str","nativeSrc":"15928:3:24","nodeType":"YulIdentifier","src":"15928:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"16015:3:24","nodeType":"YulIdentifier","src":"16015:3:24"},{"arguments":[{"name":"length","nativeSrc":"16024:6:24","nodeType":"YulIdentifier","src":"16024:6:24"},{"name":"length","nativeSrc":"16032:6:24","nodeType":"YulIdentifier","src":"16032:6:24"}],"functionName":{"name":"add","nativeSrc":"16020:3:24","nodeType":"YulIdentifier","src":"16020:3:24"},"nativeSrc":"16020:19:24","nodeType":"YulFunctionCall","src":"16020:19:24"}],"functionName":{"name":"mstore","nativeSrc":"16008:6:24","nodeType":"YulIdentifier","src":"16008:6:24"},"nativeSrc":"16008:32:24","nodeType":"YulFunctionCall","src":"16008:32:24"},"nativeSrc":"16008:32:24","nodeType":"YulExpressionStatement","src":"16008:32:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16154:4:24","nodeType":"YulLiteral","src":"16154:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"16160:34:24","nodeType":"YulLiteral","src":"16160:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"16147:6:24","nodeType":"YulIdentifier","src":"16147:6:24"},"nativeSrc":"16147:48:24","nodeType":"YulFunctionCall","src":"16147:48:24"},"nativeSrc":"16147:48:24","nodeType":"YulExpressionStatement","src":"16147:48:24"},{"nativeSrc":"16209:23:24","nodeType":"YulVariableDeclaration","src":"16209:23:24","value":{"arguments":[{"name":"str","nativeSrc":"16222:3:24","nodeType":"YulIdentifier","src":"16222:3:24"},{"kind":"number","nativeSrc":"16227:4:24","nodeType":"YulLiteral","src":"16227:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16218:3:24","nodeType":"YulIdentifier","src":"16218:3:24"},"nativeSrc":"16218:14:24","nodeType":"YulFunctionCall","src":"16218:14:24"},"variables":[{"name":"o","nativeSrc":"16213:1:24","nodeType":"YulTypedName","src":"16213:1:24","type":""}]},{"nativeSrc":"16245:27:24","nodeType":"YulVariableDeclaration","src":"16245:27:24","value":{"arguments":[{"name":"raw","nativeSrc":"16260:3:24","nodeType":"YulIdentifier","src":"16260:3:24"},{"name":"length","nativeSrc":"16265:6:24","nodeType":"YulIdentifier","src":"16265:6:24"}],"functionName":{"name":"add","nativeSrc":"16256:3:24","nodeType":"YulIdentifier","src":"16256:3:24"},"nativeSrc":"16256:16:24","nodeType":"YulFunctionCall","src":"16256:16:24"},"variables":[{"name":"end","nativeSrc":"16249:3:24","nodeType":"YulTypedName","src":"16249:3:24","type":""}]},{"body":{"nativeSrc":"16317:207:24","nodeType":"YulBlock","src":"16317:207:24","statements":[{"nativeSrc":"16335:18:24","nodeType":"YulAssignment","src":"16335:18:24","value":{"arguments":[{"name":"raw","nativeSrc":"16346:3:24","nodeType":"YulIdentifier","src":"16346:3:24"},{"kind":"number","nativeSrc":"16351:1:24","nodeType":"YulLiteral","src":"16351:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16342:3:24","nodeType":"YulIdentifier","src":"16342:3:24"},"nativeSrc":"16342:11:24","nodeType":"YulFunctionCall","src":"16342:11:24"},"variableNames":[{"name":"raw","nativeSrc":"16335:3:24","nodeType":"YulIdentifier","src":"16335:3:24"}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"16382:1:24","nodeType":"YulIdentifier","src":"16382:1:24"},{"kind":"number","nativeSrc":"16385:1:24","nodeType":"YulLiteral","src":"16385:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16378:3:24","nodeType":"YulIdentifier","src":"16378:3:24"},"nativeSrc":"16378:9:24","nodeType":"YulFunctionCall","src":"16378:9:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"raw","nativeSrc":"16405:3:24","nodeType":"YulIdentifier","src":"16405:3:24"}],"functionName":{"name":"mload","nativeSrc":"16399:5:24","nodeType":"YulIdentifier","src":"16399:5:24"},"nativeSrc":"16399:10:24","nodeType":"YulFunctionCall","src":"16399:10:24"},{"kind":"number","nativeSrc":"16411:2:24","nodeType":"YulLiteral","src":"16411:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"16395:3:24","nodeType":"YulIdentifier","src":"16395:3:24"},"nativeSrc":"16395:19:24","nodeType":"YulFunctionCall","src":"16395:19:24"}],"functionName":{"name":"mload","nativeSrc":"16389:5:24","nodeType":"YulIdentifier","src":"16389:5:24"},"nativeSrc":"16389:26:24","nodeType":"YulFunctionCall","src":"16389:26:24"}],"functionName":{"name":"mstore8","nativeSrc":"16370:7:24","nodeType":"YulIdentifier","src":"16370:7:24"},"nativeSrc":"16370:46:24","nodeType":"YulFunctionCall","src":"16370:46:24"},"nativeSrc":"16370:46:24","nodeType":"YulExpressionStatement","src":"16370:46:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"16441:1:24","nodeType":"YulIdentifier","src":"16441:1:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16458:1:24","nodeType":"YulLiteral","src":"16458:1:24","type":"","value":"4"},{"arguments":[{"name":"raw","nativeSrc":"16467:3:24","nodeType":"YulIdentifier","src":"16467:3:24"}],"functionName":{"name":"mload","nativeSrc":"16461:5:24","nodeType":"YulIdentifier","src":"16461:5:24"},"nativeSrc":"16461:10:24","nodeType":"YulFunctionCall","src":"16461:10:24"}],"functionName":{"name":"shr","nativeSrc":"16454:3:24","nodeType":"YulIdentifier","src":"16454:3:24"},"nativeSrc":"16454:18:24","nodeType":"YulFunctionCall","src":"16454:18:24"},{"kind":"number","nativeSrc":"16474:2:24","nodeType":"YulLiteral","src":"16474:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"16450:3:24","nodeType":"YulIdentifier","src":"16450:3:24"},"nativeSrc":"16450:27:24","nodeType":"YulFunctionCall","src":"16450:27:24"}],"functionName":{"name":"mload","nativeSrc":"16444:5:24","nodeType":"YulIdentifier","src":"16444:5:24"},"nativeSrc":"16444:34:24","nodeType":"YulFunctionCall","src":"16444:34:24"}],"functionName":{"name":"mstore8","nativeSrc":"16433:7:24","nodeType":"YulIdentifier","src":"16433:7:24"},"nativeSrc":"16433:46:24","nodeType":"YulFunctionCall","src":"16433:46:24"},"nativeSrc":"16433:46:24","nodeType":"YulExpressionStatement","src":"16433:46:24"},{"nativeSrc":"16496:14:24","nodeType":"YulAssignment","src":"16496:14:24","value":{"arguments":[{"name":"o","nativeSrc":"16505:1:24","nodeType":"YulIdentifier","src":"16505:1:24"},{"kind":"number","nativeSrc":"16508:1:24","nodeType":"YulLiteral","src":"16508:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"16501:3:24","nodeType":"YulIdentifier","src":"16501:3:24"},"nativeSrc":"16501:9:24","nodeType":"YulFunctionCall","src":"16501:9:24"},"variableNames":[{"name":"o","nativeSrc":"16496:1:24","nodeType":"YulIdentifier","src":"16496:1:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"raw","nativeSrc":"16303:3:24","nodeType":"YulIdentifier","src":"16303:3:24"},{"name":"end","nativeSrc":"16308:3:24","nodeType":"YulIdentifier","src":"16308:3:24"}],"functionName":{"name":"eq","nativeSrc":"16300:2:24","nodeType":"YulIdentifier","src":"16300:2:24"},"nativeSrc":"16300:12:24","nodeType":"YulFunctionCall","src":"16300:12:24"}],"functionName":{"name":"iszero","nativeSrc":"16293:6:24","nodeType":"YulIdentifier","src":"16293:6:24"},"nativeSrc":"16293:20:24","nodeType":"YulFunctionCall","src":"16293:20:24"},"nativeSrc":"16286:238:24","nodeType":"YulForLoop","post":{"nativeSrc":"16314:2:24","nodeType":"YulBlock","src":"16314:2:24","statements":[]},"pre":{"nativeSrc":"16290:2:24","nodeType":"YulBlock","src":"16290:2:24","statements":[]},"src":"16286:238:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"16544:1:24","nodeType":"YulIdentifier","src":"16544:1:24"},{"kind":"number","nativeSrc":"16547:1:24","nodeType":"YulLiteral","src":"16547:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16537:6:24","nodeType":"YulIdentifier","src":"16537:6:24"},"nativeSrc":"16537:12:24","nodeType":"YulFunctionCall","src":"16537:12:24"},"nativeSrc":"16537:12:24","nodeType":"YulExpressionStatement","src":"16537:12:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16607:4:24","nodeType":"YulLiteral","src":"16607:4:24","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"16617:1:24","nodeType":"YulIdentifier","src":"16617:1:24"},{"kind":"number","nativeSrc":"16620:4:24","nodeType":"YulLiteral","src":"16620:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16613:3:24","nodeType":"YulIdentifier","src":"16613:3:24"},"nativeSrc":"16613:12:24","nodeType":"YulFunctionCall","src":"16613:12:24"}],"functionName":{"name":"mstore","nativeSrc":"16600:6:24","nodeType":"YulIdentifier","src":"16600:6:24"},"nativeSrc":"16600:26:24","nodeType":"YulFunctionCall","src":"16600:26:24"},"nativeSrc":"16600:26:24","nodeType":"YulExpressionStatement","src":"16600:26:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10519,"isOffset":false,"isSlot":false,"src":"15911:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16260:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16303:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16335:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16346:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16405:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16467:3:24","valueSize":1},{"declaration":10522,"isOffset":false,"isSlot":false,"src":"15928:3:24","valueSize":1},{"declaration":10522,"isOffset":false,"isSlot":false,"src":"16015:3:24","valueSize":1},{"declaration":10522,"isOffset":false,"isSlot":false,"src":"16222:3:24","valueSize":1}],"id":10524,"nodeType":"InlineAssembly","src":"15868:792:24"}]},"documentation":{"id":10517,"nodeType":"StructuredDocumentation","src":"15595:126:24","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10526,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"15735:19:24","nodeType":"FunctionDefinition","parameters":{"id":10520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10519,"mutability":"mutable","name":"raw","nameLocation":"15768:3:24","nodeType":"VariableDeclaration","scope":10526,"src":"15755:16:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10518,"name":"bytes","nodeType":"ElementaryTypeName","src":"15755:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15754:18:24"},"returnParameters":{"id":10523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10522,"mutability":"mutable","name":"str","nameLocation":"15810:3:24","nodeType":"VariableDeclaration","scope":10526,"src":"15796:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10521,"name":"string","nodeType":"ElementaryTypeName","src":"15796:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15795:19:24"},"scope":10964,"src":"15726:940:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10535,"nodeType":"Block","src":"17095:552:24","statements":[{"AST":{"nativeSrc":"17157:484:24","nodeType":"YulBlock","src":"17157:484:24","statements":[{"body":{"nativeSrc":"17183:448:24","nodeType":"YulBlock","src":"17183:448:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17208:4:24","nodeType":"YulLiteral","src":"17208:4:24","type":"","value":"0x00"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17222:1:24","nodeType":"YulLiteral","src":"17222:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"17218:3:24","nodeType":"YulIdentifier","src":"17218:3:24"},"nativeSrc":"17218:6:24","nodeType":"YulFunctionCall","src":"17218:6:24"},{"kind":"number","nativeSrc":"17226:3:24","nodeType":"YulLiteral","src":"17226:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"17214:3:24","nodeType":"YulIdentifier","src":"17214:3:24"},"nativeSrc":"17214:16:24","nodeType":"YulFunctionCall","src":"17214:16:24"}],"functionName":{"name":"mstore","nativeSrc":"17201:6:24","nodeType":"YulIdentifier","src":"17201:6:24"},"nativeSrc":"17201:30:24","nodeType":"YulFunctionCall","src":"17201:30:24"},"nativeSrc":"17201:30:24","nodeType":"YulExpressionStatement","src":"17201:30:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17255:4:24","nodeType":"YulLiteral","src":"17255:4:24","type":"","value":"0x20"},{"kind":"number","nativeSrc":"17261:66:24","nodeType":"YulLiteral","src":"17261:66:24","type":"","value":"0x0202020202020202020202020202020202020202020202020303030304040506"}],"functionName":{"name":"mstore","nativeSrc":"17248:6:24","nodeType":"YulIdentifier","src":"17248:6:24"},"nativeSrc":"17248:80:24","nodeType":"YulFunctionCall","src":"17248:80:24"},"nativeSrc":"17248:80:24","nodeType":"YulExpressionStatement","src":"17248:80:24"},{"nativeSrc":"17345:21:24","nodeType":"YulVariableDeclaration","src":"17345:21:24","value":{"arguments":[{"name":"s","nativeSrc":"17358:1:24","nodeType":"YulIdentifier","src":"17358:1:24"},{"kind":"number","nativeSrc":"17361:4:24","nodeType":"YulLiteral","src":"17361:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17354:3:24","nodeType":"YulIdentifier","src":"17354:3:24"},"nativeSrc":"17354:12:24","nodeType":"YulFunctionCall","src":"17354:12:24"},"variables":[{"name":"o","nativeSrc":"17349:1:24","nodeType":"YulTypedName","src":"17349:1:24","type":""}]},{"nativeSrc":"17383:27:24","nodeType":"YulVariableDeclaration","src":"17383:27:24","value":{"arguments":[{"name":"o","nativeSrc":"17398:1:24","nodeType":"YulIdentifier","src":"17398:1:24"},{"arguments":[{"name":"s","nativeSrc":"17407:1:24","nodeType":"YulIdentifier","src":"17407:1:24"}],"functionName":{"name":"mload","nativeSrc":"17401:5:24","nodeType":"YulIdentifier","src":"17401:5:24"},"nativeSrc":"17401:8:24","nodeType":"YulFunctionCall","src":"17401:8:24"}],"functionName":{"name":"add","nativeSrc":"17394:3:24","nodeType":"YulIdentifier","src":"17394:3:24"},"nativeSrc":"17394:16:24","nodeType":"YulFunctionCall","src":"17394:16:24"},"variables":[{"name":"end","nativeSrc":"17387:3:24","nodeType":"YulTypedName","src":"17387:3:24","type":""}]},{"body":{"nativeSrc":"17478:139:24","nodeType":"YulBlock","src":"17478:139:24","statements":[{"nativeSrc":"17500:47:24","nodeType":"YulAssignment","src":"17500:47:24","value":{"arguments":[{"name":"o","nativeSrc":"17509:1:24","nodeType":"YulIdentifier","src":"17509:1:24"},{"arguments":[{"kind":"number","nativeSrc":"17517:1:24","nodeType":"YulLiteral","src":"17517:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17530:3:24","nodeType":"YulLiteral","src":"17530:3:24","type":"","value":"250"},{"arguments":[{"name":"o","nativeSrc":"17541:1:24","nodeType":"YulIdentifier","src":"17541:1:24"}],"functionName":{"name":"mload","nativeSrc":"17535:5:24","nodeType":"YulIdentifier","src":"17535:5:24"},"nativeSrc":"17535:8:24","nodeType":"YulFunctionCall","src":"17535:8:24"}],"functionName":{"name":"shr","nativeSrc":"17526:3:24","nodeType":"YulIdentifier","src":"17526:3:24"},"nativeSrc":"17526:18:24","nodeType":"YulFunctionCall","src":"17526:18:24"}],"functionName":{"name":"mload","nativeSrc":"17520:5:24","nodeType":"YulIdentifier","src":"17520:5:24"},"nativeSrc":"17520:25:24","nodeType":"YulFunctionCall","src":"17520:25:24"}],"functionName":{"name":"byte","nativeSrc":"17512:4:24","nodeType":"YulIdentifier","src":"17512:4:24"},"nativeSrc":"17512:34:24","nodeType":"YulFunctionCall","src":"17512:34:24"}],"functionName":{"name":"add","nativeSrc":"17505:3:24","nodeType":"YulIdentifier","src":"17505:3:24"},"nativeSrc":"17505:42:24","nodeType":"YulFunctionCall","src":"17505:42:24"},"variableNames":[{"name":"o","nativeSrc":"17500:1:24","nodeType":"YulIdentifier","src":"17500:1:24"}]},{"body":{"nativeSrc":"17590:9:24","nodeType":"YulBlock","src":"17590:9:24","statements":[{"nativeSrc":"17592:5:24","nodeType":"YulBreak","src":"17592:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"17581:1:24","nodeType":"YulIdentifier","src":"17581:1:24"},{"name":"end","nativeSrc":"17584:3:24","nodeType":"YulIdentifier","src":"17584:3:24"}],"functionName":{"name":"lt","nativeSrc":"17578:2:24","nodeType":"YulIdentifier","src":"17578:2:24"},"nativeSrc":"17578:10:24","nodeType":"YulFunctionCall","src":"17578:10:24"}],"functionName":{"name":"iszero","nativeSrc":"17571:6:24","nodeType":"YulIdentifier","src":"17571:6:24"},"nativeSrc":"17571:18:24","nodeType":"YulFunctionCall","src":"17571:18:24"},"nativeSrc":"17568:31:24","nodeType":"YulIf","src":"17568:31:24"}]},"condition":{"kind":"number","nativeSrc":"17447:1:24","nodeType":"YulLiteral","src":"17447:1:24","type":"","value":"1"},"nativeSrc":"17427:190:24","nodeType":"YulForLoop","post":{"nativeSrc":"17449:28:24","nodeType":"YulBlock","src":"17449:28:24","statements":[{"nativeSrc":"17451:24:24","nodeType":"YulAssignment","src":"17451:24:24","value":{"arguments":[{"name":"result","nativeSrc":"17465:6:24","nodeType":"YulIdentifier","src":"17465:6:24"},{"kind":"number","nativeSrc":"17473:1:24","nodeType":"YulLiteral","src":"17473:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17461:3:24","nodeType":"YulIdentifier","src":"17461:3:24"},"nativeSrc":"17461:14:24","nodeType":"YulFunctionCall","src":"17461:14:24"},"variableNames":[{"name":"result","nativeSrc":"17451:6:24","nodeType":"YulIdentifier","src":"17451:6:24"}]}]},"pre":{"nativeSrc":"17431:15:24","nodeType":"YulBlock","src":"17431:15:24","statements":[{"nativeSrc":"17433:11:24","nodeType":"YulAssignment","src":"17433:11:24","value":{"kind":"number","nativeSrc":"17443:1:24","nodeType":"YulLiteral","src":"17443:1:24","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"17433:6:24","nodeType":"YulIdentifier","src":"17433:6:24"}]}]},"src":"17427:190:24"}]},"condition":{"arguments":[{"name":"s","nativeSrc":"17180:1:24","nodeType":"YulIdentifier","src":"17180:1:24"}],"functionName":{"name":"mload","nativeSrc":"17174:5:24","nodeType":"YulIdentifier","src":"17174:5:24"},"nativeSrc":"17174:8:24","nodeType":"YulFunctionCall","src":"17174:8:24"},"nativeSrc":"17171:460:24","nodeType":"YulIf","src":"17171:460:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10532,"isOffset":false,"isSlot":false,"src":"17433:6:24","valueSize":1},{"declaration":10532,"isOffset":false,"isSlot":false,"src":"17451:6:24","valueSize":1},{"declaration":10532,"isOffset":false,"isSlot":false,"src":"17465:6:24","valueSize":1},{"declaration":10529,"isOffset":false,"isSlot":false,"src":"17180:1:24","valueSize":1},{"declaration":10529,"isOffset":false,"isSlot":false,"src":"17358:1:24","valueSize":1},{"declaration":10529,"isOffset":false,"isSlot":false,"src":"17407:1:24","valueSize":1}],"id":10534,"nodeType":"InlineAssembly","src":"17148:493:24"}]},"documentation":{"id":10527,"nodeType":"StructuredDocumentation","src":"16955:60:24","text":"@dev Returns the number of UTF characters in the string."},"id":10536,"implemented":true,"kind":"function","modifiers":[],"name":"runeCount","nameLocation":"17029:9:24","nodeType":"FunctionDefinition","parameters":{"id":10530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10529,"mutability":"mutable","name":"s","nameLocation":"17053:1:24","nodeType":"VariableDeclaration","scope":10536,"src":"17039:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10528,"name":"string","nodeType":"ElementaryTypeName","src":"17039:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17038:17:24"},"returnParameters":{"id":10533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10532,"mutability":"mutable","name":"result","nameLocation":"17087:6:24","nodeType":"VariableDeclaration","scope":10536,"src":"17079:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10531,"name":"uint256","nodeType":"ElementaryTypeName","src":"17079:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17078:16:24"},"scope":10964,"src":"17020:627:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10545,"nodeType":"Block","src":"17840:665:24","statements":[{"AST":{"nativeSrc":"17902:597:24","nodeType":"YulBlock","src":"17902:597:24","statements":[{"nativeSrc":"17916:36:24","nodeType":"YulVariableDeclaration","src":"17916:36:24","value":{"arguments":[{"kind":"number","nativeSrc":"17932:1:24","nodeType":"YulLiteral","src":"17932:1:24","type":"","value":"7"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17943:1:24","nodeType":"YulLiteral","src":"17943:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"17939:3:24","nodeType":"YulIdentifier","src":"17939:3:24"},"nativeSrc":"17939:6:24","nodeType":"YulFunctionCall","src":"17939:6:24"},{"kind":"number","nativeSrc":"17947:3:24","nodeType":"YulLiteral","src":"17947:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"17935:3:24","nodeType":"YulIdentifier","src":"17935:3:24"},"nativeSrc":"17935:16:24","nodeType":"YulFunctionCall","src":"17935:16:24"}],"functionName":{"name":"shl","nativeSrc":"17928:3:24","nodeType":"YulIdentifier","src":"17928:3:24"},"nativeSrc":"17928:24:24","nodeType":"YulFunctionCall","src":"17928:24:24"},"variables":[{"name":"mask","nativeSrc":"17920:4:24","nodeType":"YulTypedName","src":"17920:4:24","type":""}]},{"nativeSrc":"17965:11:24","nodeType":"YulAssignment","src":"17965:11:24","value":{"kind":"number","nativeSrc":"17975:1:24","nodeType":"YulLiteral","src":"17975:1:24","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"17965:6:24","nodeType":"YulIdentifier","src":"17965:6:24"}]},{"nativeSrc":"17989:17:24","nodeType":"YulVariableDeclaration","src":"17989:17:24","value":{"arguments":[{"name":"s","nativeSrc":"18004:1:24","nodeType":"YulIdentifier","src":"18004:1:24"}],"functionName":{"name":"mload","nativeSrc":"17998:5:24","nodeType":"YulIdentifier","src":"17998:5:24"},"nativeSrc":"17998:8:24","nodeType":"YulFunctionCall","src":"17998:8:24"},"variables":[{"name":"n","nativeSrc":"17993:1:24","nodeType":"YulTypedName","src":"17993:1:24","type":""}]},{"body":{"nativeSrc":"18024:465:24","nodeType":"YulBlock","src":"18024:465:24","statements":[{"nativeSrc":"18042:21:24","nodeType":"YulVariableDeclaration","src":"18042:21:24","value":{"arguments":[{"name":"s","nativeSrc":"18055:1:24","nodeType":"YulIdentifier","src":"18055:1:24"},{"kind":"number","nativeSrc":"18058:4:24","nodeType":"YulLiteral","src":"18058:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18051:3:24","nodeType":"YulIdentifier","src":"18051:3:24"},"nativeSrc":"18051:12:24","nodeType":"YulFunctionCall","src":"18051:12:24"},"variables":[{"name":"o","nativeSrc":"18046:1:24","nodeType":"YulTypedName","src":"18046:1:24","type":""}]},{"nativeSrc":"18080:20:24","nodeType":"YulVariableDeclaration","src":"18080:20:24","value":{"arguments":[{"name":"o","nativeSrc":"18095:1:24","nodeType":"YulIdentifier","src":"18095:1:24"},{"name":"n","nativeSrc":"18098:1:24","nodeType":"YulIdentifier","src":"18098:1:24"}],"functionName":{"name":"add","nativeSrc":"18091:3:24","nodeType":"YulIdentifier","src":"18091:3:24"},"nativeSrc":"18091:9:24","nodeType":"YulFunctionCall","src":"18091:9:24"},"variables":[{"name":"end","nativeSrc":"18084:3:24","nodeType":"YulTypedName","src":"18084:3:24","type":""}]},{"nativeSrc":"18117:22:24","nodeType":"YulVariableDeclaration","src":"18117:22:24","value":{"arguments":[{"name":"end","nativeSrc":"18135:3:24","nodeType":"YulIdentifier","src":"18135:3:24"}],"functionName":{"name":"mload","nativeSrc":"18129:5:24","nodeType":"YulIdentifier","src":"18129:5:24"},"nativeSrc":"18129:10:24","nodeType":"YulFunctionCall","src":"18129:10:24"},"variables":[{"name":"last","nativeSrc":"18121:4:24","nodeType":"YulTypedName","src":"18121:4:24","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"18163:3:24","nodeType":"YulIdentifier","src":"18163:3:24"},{"kind":"number","nativeSrc":"18168:1:24","nodeType":"YulLiteral","src":"18168:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18156:6:24","nodeType":"YulIdentifier","src":"18156:6:24"},"nativeSrc":"18156:14:24","nodeType":"YulFunctionCall","src":"18156:14:24"},"nativeSrc":"18156:14:24","nodeType":"YulExpressionStatement","src":"18156:14:24"},{"body":{"nativeSrc":"18199:242:24","nodeType":"YulBlock","src":"18199:242:24","statements":[{"body":{"nativeSrc":"18244:89:24","nodeType":"YulBlock","src":"18244:89:24","statements":[{"nativeSrc":"18270:11:24","nodeType":"YulAssignment","src":"18270:11:24","value":{"kind":"number","nativeSrc":"18280:1:24","nodeType":"YulLiteral","src":"18280:1:24","type":"","value":"0"},"variableNames":[{"name":"result","nativeSrc":"18270:6:24","nodeType":"YulIdentifier","src":"18270:6:24"}]},{"nativeSrc":"18306:5:24","nodeType":"YulBreak","src":"18306:5:24"}]},"condition":{"arguments":[{"name":"mask","nativeSrc":"18228:4:24","nodeType":"YulIdentifier","src":"18228:4:24"},{"arguments":[{"name":"o","nativeSrc":"18240:1:24","nodeType":"YulIdentifier","src":"18240:1:24"}],"functionName":{"name":"mload","nativeSrc":"18234:5:24","nodeType":"YulIdentifier","src":"18234:5:24"},"nativeSrc":"18234:8:24","nodeType":"YulFunctionCall","src":"18234:8:24"}],"functionName":{"name":"and","nativeSrc":"18224:3:24","nodeType":"YulIdentifier","src":"18224:3:24"},"nativeSrc":"18224:19:24","nodeType":"YulFunctionCall","src":"18224:19:24"},"nativeSrc":"18221:112:24","nodeType":"YulIf","src":"18221:112:24"},{"nativeSrc":"18354:17:24","nodeType":"YulAssignment","src":"18354:17:24","value":{"arguments":[{"name":"o","nativeSrc":"18363:1:24","nodeType":"YulIdentifier","src":"18363:1:24"},{"kind":"number","nativeSrc":"18366:4:24","nodeType":"YulLiteral","src":"18366:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18359:3:24","nodeType":"YulIdentifier","src":"18359:3:24"},"nativeSrc":"18359:12:24","nodeType":"YulFunctionCall","src":"18359:12:24"},"variableNames":[{"name":"o","nativeSrc":"18354:1:24","nodeType":"YulIdentifier","src":"18354:1:24"}]},{"body":{"nativeSrc":"18414:9:24","nodeType":"YulBlock","src":"18414:9:24","statements":[{"nativeSrc":"18416:5:24","nodeType":"YulBreak","src":"18416:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"18405:1:24","nodeType":"YulIdentifier","src":"18405:1:24"},{"name":"end","nativeSrc":"18408:3:24","nodeType":"YulIdentifier","src":"18408:3:24"}],"functionName":{"name":"lt","nativeSrc":"18402:2:24","nodeType":"YulIdentifier","src":"18402:2:24"},"nativeSrc":"18402:10:24","nodeType":"YulFunctionCall","src":"18402:10:24"}],"functionName":{"name":"iszero","nativeSrc":"18395:6:24","nodeType":"YulIdentifier","src":"18395:6:24"},"nativeSrc":"18395:18:24","nodeType":"YulFunctionCall","src":"18395:18:24"},"nativeSrc":"18392:31:24","nodeType":"YulIf","src":"18392:31:24"}]},"condition":{"kind":"number","nativeSrc":"18194:1:24","nodeType":"YulLiteral","src":"18194:1:24","type":"","value":"1"},"nativeSrc":"18187:254:24","nodeType":"YulForLoop","post":{"nativeSrc":"18196:2:24","nodeType":"YulBlock","src":"18196:2:24","statements":[]},"pre":{"nativeSrc":"18191:2:24","nodeType":"YulBlock","src":"18191:2:24","statements":[]},"src":"18187:254:24"},{"expression":{"arguments":[{"name":"end","nativeSrc":"18465:3:24","nodeType":"YulIdentifier","src":"18465:3:24"},{"name":"last","nativeSrc":"18470:4:24","nodeType":"YulIdentifier","src":"18470:4:24"}],"functionName":{"name":"mstore","nativeSrc":"18458:6:24","nodeType":"YulIdentifier","src":"18458:6:24"},"nativeSrc":"18458:17:24","nodeType":"YulFunctionCall","src":"18458:17:24"},"nativeSrc":"18458:17:24","nodeType":"YulExpressionStatement","src":"18458:17:24"}]},"condition":{"name":"n","nativeSrc":"18022:1:24","nodeType":"YulIdentifier","src":"18022:1:24"},"nativeSrc":"18019:470:24","nodeType":"YulIf","src":"18019:470:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10542,"isOffset":false,"isSlot":false,"src":"17965:6:24","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"18270:6:24","valueSize":1},{"declaration":10539,"isOffset":false,"isSlot":false,"src":"18004:1:24","valueSize":1},{"declaration":10539,"isOffset":false,"isSlot":false,"src":"18055:1:24","valueSize":1}],"id":10544,"nodeType":"InlineAssembly","src":"17893:606:24"}]},"documentation":{"id":10537,"nodeType":"StructuredDocumentation","src":"17653:108:24","text":"@dev Returns if this string is a 7-bit ASCII string.\n (i.e. all characters codes are in [0..127])"},"id":10546,"implemented":true,"kind":"function","modifiers":[],"name":"is7BitASCII","nameLocation":"17775:11:24","nodeType":"FunctionDefinition","parameters":{"id":10540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10539,"mutability":"mutable","name":"s","nameLocation":"17801:1:24","nodeType":"VariableDeclaration","scope":10546,"src":"17787:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10538,"name":"string","nodeType":"ElementaryTypeName","src":"17787:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17786:17:24"},"returnParameters":{"id":10543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10542,"mutability":"mutable","name":"result","nameLocation":"17832:6:24","nodeType":"VariableDeclaration","scope":10546,"src":"17827:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10541,"name":"bool","nodeType":"ElementaryTypeName","src":"17827:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17826:13:24"},"scope":10964,"src":"17766:739:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10559,"nodeType":"Block","src":"19348:3176:24","statements":[{"AST":{"nativeSrc":"19410:3108:24","nodeType":"YulBlock","src":"19410:3108:24","statements":[{"nativeSrc":"19424:35:24","nodeType":"YulVariableDeclaration","src":"19424:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"19451:7:24","nodeType":"YulIdentifier","src":"19451:7:24"}],"functionName":{"name":"mload","nativeSrc":"19445:5:24","nodeType":"YulIdentifier","src":"19445:5:24"},"nativeSrc":"19445:14:24","nodeType":"YulFunctionCall","src":"19445:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"19428:13:24","nodeType":"YulTypedName","src":"19428:13:24","type":""}]},{"nativeSrc":"19472:33:24","nodeType":"YulVariableDeclaration","src":"19472:33:24","value":{"arguments":[{"name":"search","nativeSrc":"19498:6:24","nodeType":"YulIdentifier","src":"19498:6:24"}],"functionName":{"name":"mload","nativeSrc":"19492:5:24","nodeType":"YulIdentifier","src":"19492:5:24"},"nativeSrc":"19492:13:24","nodeType":"YulFunctionCall","src":"19492:13:24"},"variables":[{"name":"searchLength","nativeSrc":"19476:12:24","nodeType":"YulTypedName","src":"19476:12:24","type":""}]},{"nativeSrc":"19518:43:24","nodeType":"YulVariableDeclaration","src":"19518:43:24","value":{"arguments":[{"name":"replacement","nativeSrc":"19549:11:24","nodeType":"YulIdentifier","src":"19549:11:24"}],"functionName":{"name":"mload","nativeSrc":"19543:5:24","nodeType":"YulIdentifier","src":"19543:5:24"},"nativeSrc":"19543:18:24","nodeType":"YulFunctionCall","src":"19543:18:24"},"variables":[{"name":"replacementLength","nativeSrc":"19522:17:24","nodeType":"YulTypedName","src":"19522:17:24","type":""}]},{"nativeSrc":"19575:29:24","nodeType":"YulAssignment","src":"19575:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"19590:7:24","nodeType":"YulIdentifier","src":"19590:7:24"},{"kind":"number","nativeSrc":"19599:4:24","nodeType":"YulLiteral","src":"19599:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19586:3:24","nodeType":"YulIdentifier","src":"19586:3:24"},"nativeSrc":"19586:18:24","nodeType":"YulFunctionCall","src":"19586:18:24"},"variableNames":[{"name":"subject","nativeSrc":"19575:7:24","nodeType":"YulIdentifier","src":"19575:7:24"}]},{"nativeSrc":"19617:27:24","nodeType":"YulAssignment","src":"19617:27:24","value":{"arguments":[{"name":"search","nativeSrc":"19631:6:24","nodeType":"YulIdentifier","src":"19631:6:24"},{"kind":"number","nativeSrc":"19639:4:24","nodeType":"YulLiteral","src":"19639:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19627:3:24","nodeType":"YulIdentifier","src":"19627:3:24"},"nativeSrc":"19627:17:24","nodeType":"YulFunctionCall","src":"19627:17:24"},"variableNames":[{"name":"search","nativeSrc":"19617:6:24","nodeType":"YulIdentifier","src":"19617:6:24"}]},{"nativeSrc":"19657:37:24","nodeType":"YulAssignment","src":"19657:37:24","value":{"arguments":[{"name":"replacement","nativeSrc":"19676:11:24","nodeType":"YulIdentifier","src":"19676:11:24"},{"kind":"number","nativeSrc":"19689:4:24","nodeType":"YulLiteral","src":"19689:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19672:3:24","nodeType":"YulIdentifier","src":"19672:3:24"},"nativeSrc":"19672:22:24","nodeType":"YulFunctionCall","src":"19672:22:24"},"variableNames":[{"name":"replacement","nativeSrc":"19657:11:24","nodeType":"YulIdentifier","src":"19657:11:24"}]},{"nativeSrc":"19707:32:24","nodeType":"YulAssignment","src":"19707:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19727:4:24","nodeType":"YulLiteral","src":"19727:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19721:5:24","nodeType":"YulIdentifier","src":"19721:5:24"},"nativeSrc":"19721:11:24","nodeType":"YulFunctionCall","src":"19721:11:24"},{"kind":"number","nativeSrc":"19734:4:24","nodeType":"YulLiteral","src":"19734:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19717:3:24","nodeType":"YulIdentifier","src":"19717:3:24"},"nativeSrc":"19717:22:24","nodeType":"YulFunctionCall","src":"19717:22:24"},"variableNames":[{"name":"result","nativeSrc":"19707:6:24","nodeType":"YulIdentifier","src":"19707:6:24"}]},{"nativeSrc":"19753:45:24","nodeType":"YulVariableDeclaration","src":"19753:45:24","value":{"arguments":[{"name":"subject","nativeSrc":"19775:7:24","nodeType":"YulIdentifier","src":"19775:7:24"},{"name":"subjectLength","nativeSrc":"19784:13:24","nodeType":"YulIdentifier","src":"19784:13:24"}],"functionName":{"name":"add","nativeSrc":"19771:3:24","nodeType":"YulIdentifier","src":"19771:3:24"},"nativeSrc":"19771:27:24","nodeType":"YulFunctionCall","src":"19771:27:24"},"variables":[{"name":"subjectEnd","nativeSrc":"19757:10:24","nodeType":"YulTypedName","src":"19757:10:24","type":""}]},{"body":{"nativeSrc":"19854:1923:24","nodeType":"YulBlock","src":"19854:1923:24","statements":[{"nativeSrc":"19872:61:24","nodeType":"YulVariableDeclaration","src":"19872:61:24","value":{"arguments":[{"arguments":[{"name":"subjectEnd","nativeSrc":"19904:10:24","nodeType":"YulIdentifier","src":"19904:10:24"},{"name":"searchLength","nativeSrc":"19916:12:24","nodeType":"YulIdentifier","src":"19916:12:24"}],"functionName":{"name":"sub","nativeSrc":"19900:3:24","nodeType":"YulIdentifier","src":"19900:3:24"},"nativeSrc":"19900:29:24","nodeType":"YulFunctionCall","src":"19900:29:24"},{"kind":"number","nativeSrc":"19931:1:24","nodeType":"YulLiteral","src":"19931:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19896:3:24","nodeType":"YulIdentifier","src":"19896:3:24"},"nativeSrc":"19896:37:24","nodeType":"YulFunctionCall","src":"19896:37:24"},"variables":[{"name":"subjectSearchEnd","nativeSrc":"19876:16:24","nodeType":"YulTypedName","src":"19876:16:24","type":""}]},{"nativeSrc":"19950:10:24","nodeType":"YulVariableDeclaration","src":"19950:10:24","value":{"kind":"number","nativeSrc":"19959:1:24","nodeType":"YulLiteral","src":"19959:1:24","type":"","value":"0"},"variables":[{"name":"h","nativeSrc":"19954:1:24","nodeType":"YulTypedName","src":"19954:1:24","type":""}]},{"body":{"nativeSrc":"20011:40:24","nodeType":"YulBlock","src":"20011:40:24","statements":[{"nativeSrc":"20013:36:24","nodeType":"YulAssignment","src":"20013:36:24","value":{"arguments":[{"name":"search","nativeSrc":"20028:6:24","nodeType":"YulIdentifier","src":"20028:6:24"},{"name":"searchLength","nativeSrc":"20036:12:24","nodeType":"YulIdentifier","src":"20036:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"20018:9:24","nodeType":"YulIdentifier","src":"20018:9:24"},"nativeSrc":"20018:31:24","nodeType":"YulFunctionCall","src":"20018:31:24"},"variableNames":[{"name":"h","nativeSrc":"20013:1:24","nodeType":"YulIdentifier","src":"20013:1:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"19990:12:24","nodeType":"YulIdentifier","src":"19990:12:24"},{"kind":"number","nativeSrc":"20004:4:24","nodeType":"YulLiteral","src":"20004:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"19987:2:24","nodeType":"YulIdentifier","src":"19987:2:24"},"nativeSrc":"19987:22:24","nodeType":"YulFunctionCall","src":"19987:22:24"}],"functionName":{"name":"iszero","nativeSrc":"19980:6:24","nodeType":"YulIdentifier","src":"19980:6:24"},"nativeSrc":"19980:30:24","nodeType":"YulFunctionCall","src":"19980:30:24"},"nativeSrc":"19977:74:24","nodeType":"YulIf","src":"19977:74:24"},{"nativeSrc":"20068:51:24","nodeType":"YulVariableDeclaration","src":"20068:51:24","value":{"arguments":[{"kind":"number","nativeSrc":"20081:1:24","nodeType":"YulLiteral","src":"20081:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"20088:4:24","nodeType":"YulLiteral","src":"20088:4:24","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"20098:12:24","nodeType":"YulIdentifier","src":"20098:12:24"},{"kind":"number","nativeSrc":"20112:4:24","nodeType":"YulLiteral","src":"20112:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"20094:3:24","nodeType":"YulIdentifier","src":"20094:3:24"},"nativeSrc":"20094:23:24","nodeType":"YulFunctionCall","src":"20094:23:24"}],"functionName":{"name":"sub","nativeSrc":"20084:3:24","nodeType":"YulIdentifier","src":"20084:3:24"},"nativeSrc":"20084:34:24","nodeType":"YulFunctionCall","src":"20084:34:24"}],"functionName":{"name":"shl","nativeSrc":"20077:3:24","nodeType":"YulIdentifier","src":"20077:3:24"},"nativeSrc":"20077:42:24","nodeType":"YulFunctionCall","src":"20077:42:24"},"variables":[{"name":"m","nativeSrc":"20072:1:24","nodeType":"YulTypedName","src":"20072:1:24","type":""}]},{"nativeSrc":"20136:22:24","nodeType":"YulVariableDeclaration","src":"20136:22:24","value":{"arguments":[{"name":"search","nativeSrc":"20151:6:24","nodeType":"YulIdentifier","src":"20151:6:24"}],"functionName":{"name":"mload","nativeSrc":"20145:5:24","nodeType":"YulIdentifier","src":"20145:5:24"},"nativeSrc":"20145:13:24","nodeType":"YulFunctionCall","src":"20145:13:24"},"variables":[{"name":"s","nativeSrc":"20140:1:24","nodeType":"YulTypedName","src":"20140:1:24","type":""}]},{"body":{"nativeSrc":"20187:1576:24","nodeType":"YulBlock","src":"20187:1576:24","statements":[{"nativeSrc":"20209:23:24","nodeType":"YulVariableDeclaration","src":"20209:23:24","value":{"arguments":[{"name":"subject","nativeSrc":"20224:7:24","nodeType":"YulIdentifier","src":"20224:7:24"}],"functionName":{"name":"mload","nativeSrc":"20218:5:24","nodeType":"YulIdentifier","src":"20218:5:24"},"nativeSrc":"20218:14:24","nodeType":"YulFunctionCall","src":"20218:14:24"},"variables":[{"name":"t","nativeSrc":"20213:1:24","nodeType":"YulTypedName","src":"20213:1:24","type":""}]},{"body":{"nativeSrc":"20407:1137:24","nodeType":"YulBlock","src":"20407:1137:24","statements":[{"body":{"nativeSrc":"20438:428:24","nodeType":"YulBlock","src":"20438:428:24","statements":[{"body":{"nativeSrc":"20519:321:24","nodeType":"YulBlock","src":"20519:321:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"20560:6:24","nodeType":"YulIdentifier","src":"20560:6:24"},{"name":"t","nativeSrc":"20568:1:24","nodeType":"YulIdentifier","src":"20568:1:24"}],"functionName":{"name":"mstore","nativeSrc":"20553:6:24","nodeType":"YulIdentifier","src":"20553:6:24"},"nativeSrc":"20553:17:24","nodeType":"YulFunctionCall","src":"20553:17:24"},"nativeSrc":"20553:17:24","nodeType":"YulExpressionStatement","src":"20553:17:24"},{"nativeSrc":"20603:24:24","nodeType":"YulAssignment","src":"20603:24:24","value":{"arguments":[{"name":"result","nativeSrc":"20617:6:24","nodeType":"YulIdentifier","src":"20617:6:24"},{"kind":"number","nativeSrc":"20625:1:24","nodeType":"YulLiteral","src":"20625:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20613:3:24","nodeType":"YulIdentifier","src":"20613:3:24"},"nativeSrc":"20613:14:24","nodeType":"YulFunctionCall","src":"20613:14:24"},"variableNames":[{"name":"result","nativeSrc":"20603:6:24","nodeType":"YulIdentifier","src":"20603:6:24"}]},{"nativeSrc":"20660:26:24","nodeType":"YulAssignment","src":"20660:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"20675:7:24","nodeType":"YulIdentifier","src":"20675:7:24"},{"kind":"number","nativeSrc":"20684:1:24","nodeType":"YulLiteral","src":"20684:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20671:3:24","nodeType":"YulIdentifier","src":"20671:3:24"},"nativeSrc":"20671:15:24","nodeType":"YulFunctionCall","src":"20671:15:24"},"variableNames":[{"name":"subject","nativeSrc":"20660:7:24","nodeType":"YulIdentifier","src":"20660:7:24"}]},{"body":{"nativeSrc":"20760:9:24","nodeType":"YulBlock","src":"20760:9:24","statements":[{"nativeSrc":"20762:5:24","nodeType":"YulBreak","src":"20762:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"20732:7:24","nodeType":"YulIdentifier","src":"20732:7:24"},{"name":"subjectSearchEnd","nativeSrc":"20741:16:24","nodeType":"YulIdentifier","src":"20741:16:24"}],"functionName":{"name":"lt","nativeSrc":"20729:2:24","nodeType":"YulIdentifier","src":"20729:2:24"},"nativeSrc":"20729:29:24","nodeType":"YulFunctionCall","src":"20729:29:24"}],"functionName":{"name":"iszero","nativeSrc":"20722:6:24","nodeType":"YulIdentifier","src":"20722:6:24"},"nativeSrc":"20722:37:24","nodeType":"YulFunctionCall","src":"20722:37:24"},"nativeSrc":"20719:50:24","nodeType":"YulIf","src":"20719:50:24"},{"nativeSrc":"20802:8:24","nodeType":"YulContinue","src":"20802:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"20491:7:24","nodeType":"YulIdentifier","src":"20491:7:24"},{"name":"searchLength","nativeSrc":"20500:12:24","nodeType":"YulIdentifier","src":"20500:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"20481:9:24","nodeType":"YulIdentifier","src":"20481:9:24"},"nativeSrc":"20481:32:24","nodeType":"YulFunctionCall","src":"20481:32:24"},{"name":"h","nativeSrc":"20515:1:24","nodeType":"YulIdentifier","src":"20515:1:24"}],"functionName":{"name":"eq","nativeSrc":"20478:2:24","nodeType":"YulIdentifier","src":"20478:2:24"},"nativeSrc":"20478:39:24","nodeType":"YulFunctionCall","src":"20478:39:24"}],"functionName":{"name":"iszero","nativeSrc":"20471:6:24","nodeType":"YulIdentifier","src":"20471:6:24"},"nativeSrc":"20471:47:24","nodeType":"YulFunctionCall","src":"20471:47:24"},"nativeSrc":"20468:372:24","nodeType":"YulIf","src":"20468:372:24"}]},"condition":{"name":"h","nativeSrc":"20436:1:24","nodeType":"YulIdentifier","src":"20436:1:24"},"nativeSrc":"20433:433:24","nodeType":"YulIf","src":"20433:433:24"},{"body":{"nativeSrc":"20985:226:24","nodeType":"YulBlock","src":"20985:226:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"21026:6:24","nodeType":"YulIdentifier","src":"21026:6:24"},{"name":"o","nativeSrc":"21034:1:24","nodeType":"YulIdentifier","src":"21034:1:24"}],"functionName":{"name":"add","nativeSrc":"21022:3:24","nodeType":"YulIdentifier","src":"21022:3:24"},"nativeSrc":"21022:14:24","nodeType":"YulFunctionCall","src":"21022:14:24"},{"arguments":[{"arguments":[{"name":"replacement","nativeSrc":"21048:11:24","nodeType":"YulIdentifier","src":"21048:11:24"},{"name":"o","nativeSrc":"21061:1:24","nodeType":"YulIdentifier","src":"21061:1:24"}],"functionName":{"name":"add","nativeSrc":"21044:3:24","nodeType":"YulIdentifier","src":"21044:3:24"},"nativeSrc":"21044:19:24","nodeType":"YulFunctionCall","src":"21044:19:24"}],"functionName":{"name":"mload","nativeSrc":"21038:5:24","nodeType":"YulIdentifier","src":"21038:5:24"},"nativeSrc":"21038:26:24","nodeType":"YulFunctionCall","src":"21038:26:24"}],"functionName":{"name":"mstore","nativeSrc":"21015:6:24","nodeType":"YulIdentifier","src":"21015:6:24"},"nativeSrc":"21015:50:24","nodeType":"YulFunctionCall","src":"21015:50:24"},"nativeSrc":"21015:50:24","nodeType":"YulExpressionStatement","src":"21015:50:24"},{"nativeSrc":"21094:17:24","nodeType":"YulAssignment","src":"21094:17:24","value":{"arguments":[{"name":"o","nativeSrc":"21103:1:24","nodeType":"YulIdentifier","src":"21103:1:24"},{"kind":"number","nativeSrc":"21106:4:24","nodeType":"YulLiteral","src":"21106:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21099:3:24","nodeType":"YulIdentifier","src":"21099:3:24"},"nativeSrc":"21099:12:24","nodeType":"YulFunctionCall","src":"21099:12:24"},"variableNames":[{"name":"o","nativeSrc":"21094:1:24","nodeType":"YulIdentifier","src":"21094:1:24"}]},{"body":{"nativeSrc":"21176:9:24","nodeType":"YulBlock","src":"21176:9:24","statements":[{"nativeSrc":"21178:5:24","nodeType":"YulBreak","src":"21178:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"21153:1:24","nodeType":"YulIdentifier","src":"21153:1:24"},{"name":"replacementLength","nativeSrc":"21156:17:24","nodeType":"YulIdentifier","src":"21156:17:24"}],"functionName":{"name":"lt","nativeSrc":"21150:2:24","nodeType":"YulIdentifier","src":"21150:2:24"},"nativeSrc":"21150:24:24","nodeType":"YulFunctionCall","src":"21150:24:24"}],"functionName":{"name":"iszero","nativeSrc":"21143:6:24","nodeType":"YulIdentifier","src":"21143:6:24"},"nativeSrc":"21143:32:24","nodeType":"YulFunctionCall","src":"21143:32:24"},"nativeSrc":"21140:45:24","nodeType":"YulIf","src":"21140:45:24"}]},"condition":{"kind":"number","nativeSrc":"20980:1:24","nodeType":"YulLiteral","src":"20980:1:24","type":"","value":"1"},"nativeSrc":"20961:250:24","nodeType":"YulForLoop","post":{"nativeSrc":"20982:2:24","nodeType":"YulBlock","src":"20982:2:24","statements":[]},"pre":{"nativeSrc":"20965:14:24","nodeType":"YulBlock","src":"20965:14:24","statements":[{"nativeSrc":"20967:10:24","nodeType":"YulVariableDeclaration","src":"20967:10:24","value":{"kind":"number","nativeSrc":"20976:1:24","nodeType":"YulLiteral","src":"20976:1:24","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"20971:1:24","nodeType":"YulTypedName","src":"20971:1:24","type":""}]}]},"src":"20961:250:24"},{"nativeSrc":"21236:40:24","nodeType":"YulAssignment","src":"21236:40:24","value":{"arguments":[{"name":"result","nativeSrc":"21250:6:24","nodeType":"YulIdentifier","src":"21250:6:24"},{"name":"replacementLength","nativeSrc":"21258:17:24","nodeType":"YulIdentifier","src":"21258:17:24"}],"functionName":{"name":"add","nativeSrc":"21246:3:24","nodeType":"YulIdentifier","src":"21246:3:24"},"nativeSrc":"21246:30:24","nodeType":"YulFunctionCall","src":"21246:30:24"},"variableNames":[{"name":"result","nativeSrc":"21236:6:24","nodeType":"YulIdentifier","src":"21236:6:24"}]},{"nativeSrc":"21301:37:24","nodeType":"YulAssignment","src":"21301:37:24","value":{"arguments":[{"name":"subject","nativeSrc":"21316:7:24","nodeType":"YulIdentifier","src":"21316:7:24"},{"name":"searchLength","nativeSrc":"21325:12:24","nodeType":"YulIdentifier","src":"21325:12:24"}],"functionName":{"name":"add","nativeSrc":"21312:3:24","nodeType":"YulIdentifier","src":"21312:3:24"},"nativeSrc":"21312:26:24","nodeType":"YulFunctionCall","src":"21312:26:24"},"variableNames":[{"name":"subject","nativeSrc":"21301:7:24","nodeType":"YulIdentifier","src":"21301:7:24"}]},{"body":{"nativeSrc":"21379:143:24","nodeType":"YulBlock","src":"21379:143:24","statements":[{"body":{"nativeSrc":"21450:9:24","nodeType":"YulBlock","src":"21450:9:24","statements":[{"nativeSrc":"21452:5:24","nodeType":"YulBreak","src":"21452:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"21422:7:24","nodeType":"YulIdentifier","src":"21422:7:24"},{"name":"subjectSearchEnd","nativeSrc":"21431:16:24","nodeType":"YulIdentifier","src":"21431:16:24"}],"functionName":{"name":"lt","nativeSrc":"21419:2:24","nodeType":"YulIdentifier","src":"21419:2:24"},"nativeSrc":"21419:29:24","nodeType":"YulFunctionCall","src":"21419:29:24"}],"functionName":{"name":"iszero","nativeSrc":"21412:6:24","nodeType":"YulIdentifier","src":"21412:6:24"},"nativeSrc":"21412:37:24","nodeType":"YulFunctionCall","src":"21412:37:24"},"nativeSrc":"21409:50:24","nodeType":"YulIf","src":"21409:50:24"},{"nativeSrc":"21488:8:24","nodeType":"YulContinue","src":"21488:8:24"}]},"condition":{"name":"searchLength","nativeSrc":"21366:12:24","nodeType":"YulIdentifier","src":"21366:12:24"},"nativeSrc":"21363:159:24","nodeType":"YulIf","src":"21363:159:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20392:1:24","nodeType":"YulIdentifier","src":"20392:1:24"},{"arguments":[{"name":"t","nativeSrc":"20399:1:24","nodeType":"YulIdentifier","src":"20399:1:24"},{"name":"s","nativeSrc":"20402:1:24","nodeType":"YulIdentifier","src":"20402:1:24"}],"functionName":{"name":"xor","nativeSrc":"20395:3:24","nodeType":"YulIdentifier","src":"20395:3:24"},"nativeSrc":"20395:9:24","nodeType":"YulFunctionCall","src":"20395:9:24"}],"functionName":{"name":"shr","nativeSrc":"20388:3:24","nodeType":"YulIdentifier","src":"20388:3:24"},"nativeSrc":"20388:17:24","nodeType":"YulFunctionCall","src":"20388:17:24"}],"functionName":{"name":"iszero","nativeSrc":"20381:6:24","nodeType":"YulIdentifier","src":"20381:6:24"},"nativeSrc":"20381:25:24","nodeType":"YulFunctionCall","src":"20381:25:24"},"nativeSrc":"20378:1166:24","nodeType":"YulIf","src":"20378:1166:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"21572:6:24","nodeType":"YulIdentifier","src":"21572:6:24"},{"name":"t","nativeSrc":"21580:1:24","nodeType":"YulIdentifier","src":"21580:1:24"}],"functionName":{"name":"mstore","nativeSrc":"21565:6:24","nodeType":"YulIdentifier","src":"21565:6:24"},"nativeSrc":"21565:17:24","nodeType":"YulFunctionCall","src":"21565:17:24"},"nativeSrc":"21565:17:24","nodeType":"YulExpressionStatement","src":"21565:17:24"},{"nativeSrc":"21603:24:24","nodeType":"YulAssignment","src":"21603:24:24","value":{"arguments":[{"name":"result","nativeSrc":"21617:6:24","nodeType":"YulIdentifier","src":"21617:6:24"},{"kind":"number","nativeSrc":"21625:1:24","nodeType":"YulLiteral","src":"21625:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21613:3:24","nodeType":"YulIdentifier","src":"21613:3:24"},"nativeSrc":"21613:14:24","nodeType":"YulFunctionCall","src":"21613:14:24"},"variableNames":[{"name":"result","nativeSrc":"21603:6:24","nodeType":"YulIdentifier","src":"21603:6:24"}]},{"nativeSrc":"21648:26:24","nodeType":"YulAssignment","src":"21648:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"21663:7:24","nodeType":"YulIdentifier","src":"21663:7:24"},{"kind":"number","nativeSrc":"21672:1:24","nodeType":"YulLiteral","src":"21672:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21659:3:24","nodeType":"YulIdentifier","src":"21659:3:24"},"nativeSrc":"21659:15:24","nodeType":"YulFunctionCall","src":"21659:15:24"},"variableNames":[{"name":"subject","nativeSrc":"21648:7:24","nodeType":"YulIdentifier","src":"21648:7:24"}]},{"body":{"nativeSrc":"21736:9:24","nodeType":"YulBlock","src":"21736:9:24","statements":[{"nativeSrc":"21738:5:24","nodeType":"YulBreak","src":"21738:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"21708:7:24","nodeType":"YulIdentifier","src":"21708:7:24"},{"name":"subjectSearchEnd","nativeSrc":"21717:16:24","nodeType":"YulIdentifier","src":"21717:16:24"}],"functionName":{"name":"lt","nativeSrc":"21705:2:24","nodeType":"YulIdentifier","src":"21705:2:24"},"nativeSrc":"21705:29:24","nodeType":"YulFunctionCall","src":"21705:29:24"}],"functionName":{"name":"iszero","nativeSrc":"21698:6:24","nodeType":"YulIdentifier","src":"21698:6:24"},"nativeSrc":"21698:37:24","nodeType":"YulFunctionCall","src":"21698:37:24"},"nativeSrc":"21695:50:24","nodeType":"YulIf","src":"21695:50:24"}]},"condition":{"kind":"number","nativeSrc":"20182:1:24","nodeType":"YulLiteral","src":"20182:1:24","type":"","value":"1"},"nativeSrc":"20175:1588:24","nodeType":"YulForLoop","post":{"nativeSrc":"20184:2:24","nodeType":"YulBlock","src":"20184:2:24","statements":[]},"pre":{"nativeSrc":"20179:2:24","nodeType":"YulBlock","src":"20179:2:24","statements":[]},"src":"20175:1588:24"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"19824:12:24","nodeType":"YulIdentifier","src":"19824:12:24"},{"name":"subjectLength","nativeSrc":"19838:13:24","nodeType":"YulIdentifier","src":"19838:13:24"}],"functionName":{"name":"gt","nativeSrc":"19821:2:24","nodeType":"YulIdentifier","src":"19821:2:24"},"nativeSrc":"19821:31:24","nodeType":"YulFunctionCall","src":"19821:31:24"}],"functionName":{"name":"iszero","nativeSrc":"19814:6:24","nodeType":"YulIdentifier","src":"19814:6:24"},"nativeSrc":"19814:39:24","nodeType":"YulFunctionCall","src":"19814:39:24"},"nativeSrc":"19811:1966:24","nodeType":"YulIf","src":"19811:1966:24"},{"nativeSrc":"21791:29:24","nodeType":"YulVariableDeclaration","src":"21791:29:24","value":{"name":"result","nativeSrc":"21814:6:24","nodeType":"YulIdentifier","src":"21814:6:24"},"variables":[{"name":"resultRemainder","nativeSrc":"21795:15:24","nodeType":"YulTypedName","src":"21795:15:24","type":""}]},{"nativeSrc":"21833:32:24","nodeType":"YulAssignment","src":"21833:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21853:4:24","nodeType":"YulLiteral","src":"21853:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"21847:5:24","nodeType":"YulIdentifier","src":"21847:5:24"},"nativeSrc":"21847:11:24","nodeType":"YulFunctionCall","src":"21847:11:24"},{"kind":"number","nativeSrc":"21860:4:24","nodeType":"YulLiteral","src":"21860:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21843:3:24","nodeType":"YulIdentifier","src":"21843:3:24"},"nativeSrc":"21843:22:24","nodeType":"YulFunctionCall","src":"21843:22:24"},"variableNames":[{"name":"result","nativeSrc":"21833:6:24","nodeType":"YulIdentifier","src":"21833:6:24"}]},{"nativeSrc":"21878:68:24","nodeType":"YulVariableDeclaration","src":"21878:68:24","value":{"arguments":[{"arguments":[{"name":"resultRemainder","nativeSrc":"21895:15:24","nodeType":"YulIdentifier","src":"21895:15:24"},{"name":"result","nativeSrc":"21912:6:24","nodeType":"YulIdentifier","src":"21912:6:24"}],"functionName":{"name":"sub","nativeSrc":"21891:3:24","nodeType":"YulIdentifier","src":"21891:3:24"},"nativeSrc":"21891:28:24","nodeType":"YulFunctionCall","src":"21891:28:24"},{"arguments":[{"name":"subjectEnd","nativeSrc":"21925:10:24","nodeType":"YulIdentifier","src":"21925:10:24"},{"name":"subject","nativeSrc":"21937:7:24","nodeType":"YulIdentifier","src":"21937:7:24"}],"functionName":{"name":"sub","nativeSrc":"21921:3:24","nodeType":"YulIdentifier","src":"21921:3:24"},"nativeSrc":"21921:24:24","nodeType":"YulFunctionCall","src":"21921:24:24"}],"functionName":{"name":"add","nativeSrc":"21887:3:24","nodeType":"YulIdentifier","src":"21887:3:24"},"nativeSrc":"21887:59:24","nodeType":"YulFunctionCall","src":"21887:59:24"},"variables":[{"name":"k","nativeSrc":"21882:1:24","nodeType":"YulTypedName","src":"21882:1:24","type":""}]},{"body":{"nativeSrc":"22056:179:24","nodeType":"YulBlock","src":"22056:179:24","statements":[{"expression":{"arguments":[{"name":"resultRemainder","nativeSrc":"22081:15:24","nodeType":"YulIdentifier","src":"22081:15:24"},{"arguments":[{"name":"subject","nativeSrc":"22104:7:24","nodeType":"YulIdentifier","src":"22104:7:24"}],"functionName":{"name":"mload","nativeSrc":"22098:5:24","nodeType":"YulIdentifier","src":"22098:5:24"},"nativeSrc":"22098:14:24","nodeType":"YulFunctionCall","src":"22098:14:24"}],"functionName":{"name":"mstore","nativeSrc":"22074:6:24","nodeType":"YulIdentifier","src":"22074:6:24"},"nativeSrc":"22074:39:24","nodeType":"YulFunctionCall","src":"22074:39:24"},"nativeSrc":"22074:39:24","nodeType":"YulExpressionStatement","src":"22074:39:24"},{"nativeSrc":"22130:45:24","nodeType":"YulAssignment","src":"22130:45:24","value":{"arguments":[{"name":"resultRemainder","nativeSrc":"22153:15:24","nodeType":"YulIdentifier","src":"22153:15:24"},{"kind":"number","nativeSrc":"22170:4:24","nodeType":"YulLiteral","src":"22170:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22149:3:24","nodeType":"YulIdentifier","src":"22149:3:24"},"nativeSrc":"22149:26:24","nodeType":"YulFunctionCall","src":"22149:26:24"},"variableNames":[{"name":"resultRemainder","nativeSrc":"22130:15:24","nodeType":"YulIdentifier","src":"22130:15:24"}]},{"nativeSrc":"22192:29:24","nodeType":"YulAssignment","src":"22192:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"22207:7:24","nodeType":"YulIdentifier","src":"22207:7:24"},{"kind":"number","nativeSrc":"22216:4:24","nodeType":"YulLiteral","src":"22216:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22203:3:24","nodeType":"YulIdentifier","src":"22203:3:24"},"nativeSrc":"22203:18:24","nodeType":"YulFunctionCall","src":"22203:18:24"},"variableNames":[{"name":"subject","nativeSrc":"22192:7:24","nodeType":"YulIdentifier","src":"22192:7:24"}]}]},"condition":{"arguments":[{"name":"subject","nativeSrc":"22032:7:24","nodeType":"YulIdentifier","src":"22032:7:24"},{"name":"subjectEnd","nativeSrc":"22041:10:24","nodeType":"YulIdentifier","src":"22041:10:24"}],"functionName":{"name":"lt","nativeSrc":"22029:2:24","nodeType":"YulIdentifier","src":"22029:2:24"},"nativeSrc":"22029:23:24","nodeType":"YulFunctionCall","src":"22029:23:24"},"nativeSrc":"22022:213:24","nodeType":"YulForLoop","post":{"nativeSrc":"22053:2:24","nodeType":"YulBlock","src":"22053:2:24","statements":[]},"pre":{"nativeSrc":"22026:2:24","nodeType":"YulBlock","src":"22026:2:24","statements":[]},"src":"22022:213:24"},{"nativeSrc":"22248:27:24","nodeType":"YulAssignment","src":"22248:27:24","value":{"arguments":[{"name":"result","nativeSrc":"22262:6:24","nodeType":"YulIdentifier","src":"22262:6:24"},{"kind":"number","nativeSrc":"22270:4:24","nodeType":"YulLiteral","src":"22270:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"22258:3:24","nodeType":"YulIdentifier","src":"22258:3:24"},"nativeSrc":"22258:17:24","nodeType":"YulFunctionCall","src":"22258:17:24"},"variableNames":[{"name":"result","nativeSrc":"22248:6:24","nodeType":"YulIdentifier","src":"22248:6:24"}]},{"nativeSrc":"22288:37:24","nodeType":"YulVariableDeclaration","src":"22288:37:24","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"22308:6:24","nodeType":"YulIdentifier","src":"22308:6:24"},{"kind":"number","nativeSrc":"22316:4:24","nodeType":"YulLiteral","src":"22316:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22304:3:24","nodeType":"YulIdentifier","src":"22304:3:24"},"nativeSrc":"22304:17:24","nodeType":"YulFunctionCall","src":"22304:17:24"},{"name":"k","nativeSrc":"22323:1:24","nodeType":"YulIdentifier","src":"22323:1:24"}],"functionName":{"name":"add","nativeSrc":"22300:3:24","nodeType":"YulIdentifier","src":"22300:3:24"},"nativeSrc":"22300:25:24","nodeType":"YulFunctionCall","src":"22300:25:24"},"variables":[{"name":"last","nativeSrc":"22292:4:24","nodeType":"YulTypedName","src":"22292:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"22383:4:24","nodeType":"YulIdentifier","src":"22383:4:24"},{"kind":"number","nativeSrc":"22389:1:24","nodeType":"YulLiteral","src":"22389:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"22376:6:24","nodeType":"YulIdentifier","src":"22376:6:24"},"nativeSrc":"22376:15:24","nodeType":"YulFunctionCall","src":"22376:15:24"},"nativeSrc":"22376:15:24","nodeType":"YulExpressionStatement","src":"22376:15:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22411:4:24","nodeType":"YulLiteral","src":"22411:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"22421:4:24","nodeType":"YulIdentifier","src":"22421:4:24"},{"kind":"number","nativeSrc":"22427:4:24","nodeType":"YulLiteral","src":"22427:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22417:3:24","nodeType":"YulIdentifier","src":"22417:3:24"},"nativeSrc":"22417:15:24","nodeType":"YulFunctionCall","src":"22417:15:24"}],"functionName":{"name":"mstore","nativeSrc":"22404:6:24","nodeType":"YulIdentifier","src":"22404:6:24"},"nativeSrc":"22404:29:24","nodeType":"YulFunctionCall","src":"22404:29:24"},"nativeSrc":"22404:29:24","nodeType":"YulExpressionStatement","src":"22404:29:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"22477:6:24","nodeType":"YulIdentifier","src":"22477:6:24"},{"name":"k","nativeSrc":"22485:1:24","nodeType":"YulIdentifier","src":"22485:1:24"}],"functionName":{"name":"mstore","nativeSrc":"22470:6:24","nodeType":"YulIdentifier","src":"22470:6:24"},"nativeSrc":"22470:17:24","nodeType":"YulFunctionCall","src":"22470:17:24"},"nativeSrc":"22470:17:24","nodeType":"YulExpressionStatement","src":"22470:17:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10553,"isOffset":false,"isSlot":false,"src":"19549:11:24","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"19657:11:24","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"19676:11:24","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"21048:11:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"19707:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"20560:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"20603:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"20617:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21026:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21236:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21250:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21572:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21603:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21617:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21814:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21833:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21912:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22248:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22262:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22308:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22477:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"19498:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"19617:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"19631:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"20028:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"20151:6:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19451:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19575:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19590:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19775:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20224:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20491:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20660:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20675:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20732:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21301:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21316:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21422:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21648:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21663:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21708:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21937:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22032:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22104:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22192:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22207:7:24","valueSize":1}],"id":10558,"nodeType":"InlineAssembly","src":"19401:3117:24"}]},"documentation":{"id":10547,"nodeType":"StructuredDocumentation","src":"19098:83:24","text":"@dev Returns `subject` all occurrences of `search` replaced with `replacement`."},"id":10560,"implemented":true,"kind":"function","modifiers":[],"name":"replace","nameLocation":"19195:7:24","nodeType":"FunctionDefinition","parameters":{"id":10554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10549,"mutability":"mutable","name":"subject","nameLocation":"19217:7:24","nodeType":"VariableDeclaration","scope":10560,"src":"19203:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10548,"name":"string","nodeType":"ElementaryTypeName","src":"19203:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10551,"mutability":"mutable","name":"search","nameLocation":"19240:6:24","nodeType":"VariableDeclaration","scope":10560,"src":"19226:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10550,"name":"string","nodeType":"ElementaryTypeName","src":"19226:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10553,"mutability":"mutable","name":"replacement","nameLocation":"19262:11:24","nodeType":"VariableDeclaration","scope":10560,"src":"19248:25:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10552,"name":"string","nodeType":"ElementaryTypeName","src":"19248:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19202:72:24"},"returnParameters":{"id":10557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10556,"mutability":"mutable","name":"result","nameLocation":"19336:6:24","nodeType":"VariableDeclaration","scope":10560,"src":"19322:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10555,"name":"string","nodeType":"ElementaryTypeName","src":"19322:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19321:22:24"},"scope":10964,"src":"19186:3338:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10573,"nodeType":"Block","src":"22902:1922:24","statements":[{"AST":{"nativeSrc":"22964:1854:24","nodeType":"YulBlock","src":"22964:1854:24","statements":[{"body":{"nativeSrc":"23027:1781:24","nodeType":"YulBlock","src":"23027:1781:24","statements":[{"body":{"nativeSrc":"23070:237:24","nodeType":"YulBlock","src":"23070:237:24","statements":[{"body":{"nativeSrc":"23127:92:24","nodeType":"YulBlock","src":"23127:92:24","statements":[{"nativeSrc":"23153:14:24","nodeType":"YulAssignment","src":"23153:14:24","value":{"name":"from","nativeSrc":"23163:4:24","nodeType":"YulIdentifier","src":"23163:4:24"},"variableNames":[{"name":"result","nativeSrc":"23153:6:24","nodeType":"YulIdentifier","src":"23153:6:24"}]},{"nativeSrc":"23192:5:24","nodeType":"YulBreak","src":"23192:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"from","nativeSrc":"23105:4:24","nodeType":"YulIdentifier","src":"23105:4:24"},{"name":"subjectLength","nativeSrc":"23111:13:24","nodeType":"YulIdentifier","src":"23111:13:24"}],"functionName":{"name":"gt","nativeSrc":"23102:2:24","nodeType":"YulIdentifier","src":"23102:2:24"},"nativeSrc":"23102:23:24","nodeType":"YulFunctionCall","src":"23102:23:24"}],"functionName":{"name":"iszero","nativeSrc":"23095:6:24","nodeType":"YulIdentifier","src":"23095:6:24"},"nativeSrc":"23095:31:24","nodeType":"YulFunctionCall","src":"23095:31:24"},"nativeSrc":"23092:127:24","nodeType":"YulIf","src":"23092:127:24"},{"nativeSrc":"23240:23:24","nodeType":"YulAssignment","src":"23240:23:24","value":{"name":"subjectLength","nativeSrc":"23250:13:24","nodeType":"YulIdentifier","src":"23250:13:24"},"variableNames":[{"name":"result","nativeSrc":"23240:6:24","nodeType":"YulIdentifier","src":"23240:6:24"}]},{"nativeSrc":"23284:5:24","nodeType":"YulBreak","src":"23284:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23061:6:24","nodeType":"YulIdentifier","src":"23061:6:24"}],"functionName":{"name":"mload","nativeSrc":"23055:5:24","nodeType":"YulIdentifier","src":"23055:5:24"},"nativeSrc":"23055:13:24","nodeType":"YulFunctionCall","src":"23055:13:24"}],"functionName":{"name":"iszero","nativeSrc":"23048:6:24","nodeType":"YulIdentifier","src":"23048:6:24"},"nativeSrc":"23048:21:24","nodeType":"YulFunctionCall","src":"23048:21:24"},"nativeSrc":"23045:262:24","nodeType":"YulIf","src":"23045:262:24"},{"nativeSrc":"23324:33:24","nodeType":"YulVariableDeclaration","src":"23324:33:24","value":{"arguments":[{"name":"search","nativeSrc":"23350:6:24","nodeType":"YulIdentifier","src":"23350:6:24"}],"functionName":{"name":"mload","nativeSrc":"23344:5:24","nodeType":"YulIdentifier","src":"23344:5:24"},"nativeSrc":"23344:13:24","nodeType":"YulFunctionCall","src":"23344:13:24"},"variables":[{"name":"searchLength","nativeSrc":"23328:12:24","nodeType":"YulTypedName","src":"23328:12:24","type":""}]},{"nativeSrc":"23374:38:24","nodeType":"YulVariableDeclaration","src":"23374:38:24","value":{"arguments":[{"name":"subject","nativeSrc":"23398:7:24","nodeType":"YulIdentifier","src":"23398:7:24"},{"kind":"number","nativeSrc":"23407:4:24","nodeType":"YulLiteral","src":"23407:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23394:3:24","nodeType":"YulIdentifier","src":"23394:3:24"},"nativeSrc":"23394:18:24","nodeType":"YulFunctionCall","src":"23394:18:24"},"variables":[{"name":"subjectStart","nativeSrc":"23378:12:24","nodeType":"YulTypedName","src":"23378:12:24","type":""}]},{"nativeSrc":"23430:16:24","nodeType":"YulAssignment","src":"23430:16:24","value":{"arguments":[{"kind":"number","nativeSrc":"23444:1:24","nodeType":"YulLiteral","src":"23444:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23440:3:24","nodeType":"YulIdentifier","src":"23440:3:24"},"nativeSrc":"23440:6:24","nodeType":"YulFunctionCall","src":"23440:6:24"},"variableNames":[{"name":"result","nativeSrc":"23430:6:24","nodeType":"YulIdentifier","src":"23430:6:24"}]},{"nativeSrc":"23494:34:24","nodeType":"YulAssignment","src":"23494:34:24","value":{"arguments":[{"name":"subjectStart","nativeSrc":"23509:12:24","nodeType":"YulIdentifier","src":"23509:12:24"},{"name":"from","nativeSrc":"23523:4:24","nodeType":"YulIdentifier","src":"23523:4:24"}],"functionName":{"name":"add","nativeSrc":"23505:3:24","nodeType":"YulIdentifier","src":"23505:3:24"},"nativeSrc":"23505:23:24","nodeType":"YulFunctionCall","src":"23505:23:24"},"variableNames":[{"name":"subject","nativeSrc":"23494:7:24","nodeType":"YulIdentifier","src":"23494:7:24"}]},{"nativeSrc":"23545:70:24","nodeType":"YulVariableDeclaration","src":"23545:70:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subjectStart","nativeSrc":"23568:12:24","nodeType":"YulIdentifier","src":"23568:12:24"},{"name":"subjectLength","nativeSrc":"23582:13:24","nodeType":"YulIdentifier","src":"23582:13:24"}],"functionName":{"name":"add","nativeSrc":"23564:3:24","nodeType":"YulIdentifier","src":"23564:3:24"},"nativeSrc":"23564:32:24","nodeType":"YulFunctionCall","src":"23564:32:24"},{"name":"searchLength","nativeSrc":"23598:12:24","nodeType":"YulIdentifier","src":"23598:12:24"}],"functionName":{"name":"sub","nativeSrc":"23560:3:24","nodeType":"YulIdentifier","src":"23560:3:24"},"nativeSrc":"23560:51:24","nodeType":"YulFunctionCall","src":"23560:51:24"},{"kind":"number","nativeSrc":"23613:1:24","nodeType":"YulLiteral","src":"23613:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23556:3:24","nodeType":"YulIdentifier","src":"23556:3:24"},"nativeSrc":"23556:59:24","nodeType":"YulFunctionCall","src":"23556:59:24"},"variables":[{"name":"end","nativeSrc":"23549:3:24","nodeType":"YulTypedName","src":"23549:3:24","type":""}]},{"nativeSrc":"23633:51:24","nodeType":"YulVariableDeclaration","src":"23633:51:24","value":{"arguments":[{"kind":"number","nativeSrc":"23646:1:24","nodeType":"YulLiteral","src":"23646:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"23653:4:24","nodeType":"YulLiteral","src":"23653:4:24","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"23663:12:24","nodeType":"YulIdentifier","src":"23663:12:24"},{"kind":"number","nativeSrc":"23677:4:24","nodeType":"YulLiteral","src":"23677:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"23659:3:24","nodeType":"YulIdentifier","src":"23659:3:24"},"nativeSrc":"23659:23:24","nodeType":"YulFunctionCall","src":"23659:23:24"}],"functionName":{"name":"sub","nativeSrc":"23649:3:24","nodeType":"YulIdentifier","src":"23649:3:24"},"nativeSrc":"23649:34:24","nodeType":"YulFunctionCall","src":"23649:34:24"}],"functionName":{"name":"shl","nativeSrc":"23642:3:24","nodeType":"YulIdentifier","src":"23642:3:24"},"nativeSrc":"23642:42:24","nodeType":"YulFunctionCall","src":"23642:42:24"},"variables":[{"name":"m","nativeSrc":"23637:1:24","nodeType":"YulTypedName","src":"23637:1:24","type":""}]},{"nativeSrc":"23701:33:24","nodeType":"YulVariableDeclaration","src":"23701:33:24","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23720:6:24","nodeType":"YulIdentifier","src":"23720:6:24"},{"kind":"number","nativeSrc":"23728:4:24","nodeType":"YulLiteral","src":"23728:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23716:3:24","nodeType":"YulIdentifier","src":"23716:3:24"},"nativeSrc":"23716:17:24","nodeType":"YulFunctionCall","src":"23716:17:24"}],"functionName":{"name":"mload","nativeSrc":"23710:5:24","nodeType":"YulIdentifier","src":"23710:5:24"},"nativeSrc":"23710:24:24","nodeType":"YulFunctionCall","src":"23710:24:24"},"variables":[{"name":"s","nativeSrc":"23705:1:24","nodeType":"YulTypedName","src":"23705:1:24","type":""}]},{"body":{"nativeSrc":"23810:9:24","nodeType":"YulBlock","src":"23810:9:24","statements":[{"nativeSrc":"23812:5:24","nodeType":"YulBreak","src":"23812:5:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"23769:7:24","nodeType":"YulIdentifier","src":"23769:7:24"},{"name":"end","nativeSrc":"23778:3:24","nodeType":"YulIdentifier","src":"23778:3:24"}],"functionName":{"name":"lt","nativeSrc":"23766:2:24","nodeType":"YulIdentifier","src":"23766:2:24"},"nativeSrc":"23766:16:24","nodeType":"YulFunctionCall","src":"23766:16:24"},{"arguments":[{"name":"from","nativeSrc":"23787:4:24","nodeType":"YulIdentifier","src":"23787:4:24"},{"name":"subjectLength","nativeSrc":"23793:13:24","nodeType":"YulIdentifier","src":"23793:13:24"}],"functionName":{"name":"lt","nativeSrc":"23784:2:24","nodeType":"YulIdentifier","src":"23784:2:24"},"nativeSrc":"23784:23:24","nodeType":"YulFunctionCall","src":"23784:23:24"}],"functionName":{"name":"and","nativeSrc":"23762:3:24","nodeType":"YulIdentifier","src":"23762:3:24"},"nativeSrc":"23762:46:24","nodeType":"YulFunctionCall","src":"23762:46:24"}],"functionName":{"name":"iszero","nativeSrc":"23755:6:24","nodeType":"YulIdentifier","src":"23755:6:24"},"nativeSrc":"23755:54:24","nodeType":"YulFunctionCall","src":"23755:54:24"},"nativeSrc":"23752:67:24","nodeType":"YulIf","src":"23752:67:24"},{"body":{"nativeSrc":"23871:571:24","nodeType":"YulBlock","src":"23871:571:24","statements":[{"body":{"nativeSrc":"23958:440:24","nodeType":"YulBlock","src":"23958:440:24","statements":[{"body":{"nativeSrc":"24026:237:24","nodeType":"YulBlock","src":"24026:237:24","statements":[{"body":{"nativeSrc":"24099:138:24","nodeType":"YulBlock","src":"24099:138:24","statements":[{"nativeSrc":"24133:36:24","nodeType":"YulAssignment","src":"24133:36:24","value":{"arguments":[{"name":"subject","nativeSrc":"24147:7:24","nodeType":"YulIdentifier","src":"24147:7:24"},{"name":"subjectStart","nativeSrc":"24156:12:24","nodeType":"YulIdentifier","src":"24156:12:24"}],"functionName":{"name":"sub","nativeSrc":"24143:3:24","nodeType":"YulIdentifier","src":"24143:3:24"},"nativeSrc":"24143:26:24","nodeType":"YulFunctionCall","src":"24143:26:24"},"variableNames":[{"name":"result","nativeSrc":"24133:6:24","nodeType":"YulIdentifier","src":"24133:6:24"}]},{"nativeSrc":"24202:5:24","nodeType":"YulBreak","src":"24202:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24072:7:24","nodeType":"YulIdentifier","src":"24072:7:24"},{"name":"searchLength","nativeSrc":"24081:12:24","nodeType":"YulIdentifier","src":"24081:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"24062:9:24","nodeType":"YulIdentifier","src":"24062:9:24"},"nativeSrc":"24062:32:24","nodeType":"YulFunctionCall","src":"24062:32:24"},{"name":"h","nativeSrc":"24096:1:24","nodeType":"YulIdentifier","src":"24096:1:24"}],"functionName":{"name":"eq","nativeSrc":"24059:2:24","nodeType":"YulIdentifier","src":"24059:2:24"},"nativeSrc":"24059:39:24","nodeType":"YulFunctionCall","src":"24059:39:24"},"nativeSrc":"24056:181:24","nodeType":"YulIf","src":"24056:181:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23998:1:24","nodeType":"YulIdentifier","src":"23998:1:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24011:7:24","nodeType":"YulIdentifier","src":"24011:7:24"}],"functionName":{"name":"mload","nativeSrc":"24005:5:24","nodeType":"YulIdentifier","src":"24005:5:24"},"nativeSrc":"24005:14:24","nodeType":"YulFunctionCall","src":"24005:14:24"},{"name":"s","nativeSrc":"24021:1:24","nodeType":"YulIdentifier","src":"24021:1:24"}],"functionName":{"name":"xor","nativeSrc":"24001:3:24","nodeType":"YulIdentifier","src":"24001:3:24"},"nativeSrc":"24001:22:24","nodeType":"YulFunctionCall","src":"24001:22:24"}],"functionName":{"name":"shr","nativeSrc":"23994:3:24","nodeType":"YulIdentifier","src":"23994:3:24"},"nativeSrc":"23994:30:24","nodeType":"YulFunctionCall","src":"23994:30:24"}],"functionName":{"name":"iszero","nativeSrc":"23987:6:24","nodeType":"YulIdentifier","src":"23987:6:24"},"nativeSrc":"23987:38:24","nodeType":"YulFunctionCall","src":"23987:38:24"},"nativeSrc":"23984:279:24","nodeType":"YulIf","src":"23984:279:24"},{"nativeSrc":"24288:26:24","nodeType":"YulAssignment","src":"24288:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"24303:7:24","nodeType":"YulIdentifier","src":"24303:7:24"},{"kind":"number","nativeSrc":"24312:1:24","nodeType":"YulLiteral","src":"24312:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24299:3:24","nodeType":"YulIdentifier","src":"24299:3:24"},"nativeSrc":"24299:15:24","nodeType":"YulFunctionCall","src":"24299:15:24"},"variableNames":[{"name":"subject","nativeSrc":"24288:7:24","nodeType":"YulIdentifier","src":"24288:7:24"}]},{"body":{"nativeSrc":"24367:9:24","nodeType":"YulBlock","src":"24367:9:24","statements":[{"nativeSrc":"24369:5:24","nodeType":"YulBreak","src":"24369:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24352:7:24","nodeType":"YulIdentifier","src":"24352:7:24"},{"name":"end","nativeSrc":"24361:3:24","nodeType":"YulIdentifier","src":"24361:3:24"}],"functionName":{"name":"lt","nativeSrc":"24349:2:24","nodeType":"YulIdentifier","src":"24349:2:24"},"nativeSrc":"24349:16:24","nodeType":"YulFunctionCall","src":"24349:16:24"}],"functionName":{"name":"iszero","nativeSrc":"24342:6:24","nodeType":"YulIdentifier","src":"24342:6:24"},"nativeSrc":"24342:24:24","nodeType":"YulFunctionCall","src":"24342:24:24"},"nativeSrc":"24339:37:24","nodeType":"YulIf","src":"24339:37:24"}]},"condition":{"kind":"number","nativeSrc":"23953:1:24","nodeType":"YulLiteral","src":"23953:1:24","type":"","value":"1"},"nativeSrc":"23893:505:24","nodeType":"YulForLoop","post":{"nativeSrc":"23955:2:24","nodeType":"YulBlock","src":"23955:2:24","statements":[]},"pre":{"nativeSrc":"23897:55:24","nodeType":"YulBlock","src":"23897:55:24","statements":[{"nativeSrc":"23899:51:24","nodeType":"YulVariableDeclaration","src":"23899:51:24","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23922:6:24","nodeType":"YulIdentifier","src":"23922:6:24"},{"kind":"number","nativeSrc":"23930:4:24","nodeType":"YulLiteral","src":"23930:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23918:3:24","nodeType":"YulIdentifier","src":"23918:3:24"},"nativeSrc":"23918:17:24","nodeType":"YulFunctionCall","src":"23918:17:24"},{"name":"searchLength","nativeSrc":"23937:12:24","nodeType":"YulIdentifier","src":"23937:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"23908:9:24","nodeType":"YulIdentifier","src":"23908:9:24"},"nativeSrc":"23908:42:24","nodeType":"YulFunctionCall","src":"23908:42:24"},"variables":[{"name":"h","nativeSrc":"23903:1:24","nodeType":"YulTypedName","src":"23903:1:24","type":""}]}]},"src":"23893:505:24"},{"nativeSrc":"24419:5:24","nodeType":"YulBreak","src":"24419:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"23850:12:24","nodeType":"YulIdentifier","src":"23850:12:24"},{"kind":"number","nativeSrc":"23864:4:24","nodeType":"YulLiteral","src":"23864:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"23847:2:24","nodeType":"YulIdentifier","src":"23847:2:24"},"nativeSrc":"23847:22:24","nodeType":"YulFunctionCall","src":"23847:22:24"}],"functionName":{"name":"iszero","nativeSrc":"23840:6:24","nodeType":"YulIdentifier","src":"23840:6:24"},"nativeSrc":"23840:30:24","nodeType":"YulFunctionCall","src":"23840:30:24"},"nativeSrc":"23837:605:24","nodeType":"YulIf","src":"23837:605:24"},{"body":{"nativeSrc":"24471:301:24","nodeType":"YulBlock","src":"24471:301:24","statements":[{"body":{"nativeSrc":"24535:114:24","nodeType":"YulBlock","src":"24535:114:24","statements":[{"nativeSrc":"24561:36:24","nodeType":"YulAssignment","src":"24561:36:24","value":{"arguments":[{"name":"subject","nativeSrc":"24575:7:24","nodeType":"YulIdentifier","src":"24575:7:24"},{"name":"subjectStart","nativeSrc":"24584:12:24","nodeType":"YulIdentifier","src":"24584:12:24"}],"functionName":{"name":"sub","nativeSrc":"24571:3:24","nodeType":"YulIdentifier","src":"24571:3:24"},"nativeSrc":"24571:26:24","nodeType":"YulFunctionCall","src":"24571:26:24"},"variableNames":[{"name":"result","nativeSrc":"24561:6:24","nodeType":"YulIdentifier","src":"24561:6:24"}]},{"nativeSrc":"24622:5:24","nodeType":"YulBreak","src":"24622:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24507:1:24","nodeType":"YulIdentifier","src":"24507:1:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24520:7:24","nodeType":"YulIdentifier","src":"24520:7:24"}],"functionName":{"name":"mload","nativeSrc":"24514:5:24","nodeType":"YulIdentifier","src":"24514:5:24"},"nativeSrc":"24514:14:24","nodeType":"YulFunctionCall","src":"24514:14:24"},{"name":"s","nativeSrc":"24530:1:24","nodeType":"YulIdentifier","src":"24530:1:24"}],"functionName":{"name":"xor","nativeSrc":"24510:3:24","nodeType":"YulIdentifier","src":"24510:3:24"},"nativeSrc":"24510:22:24","nodeType":"YulFunctionCall","src":"24510:22:24"}],"functionName":{"name":"shr","nativeSrc":"24503:3:24","nodeType":"YulIdentifier","src":"24503:3:24"},"nativeSrc":"24503:30:24","nodeType":"YulFunctionCall","src":"24503:30:24"}],"functionName":{"name":"iszero","nativeSrc":"24496:6:24","nodeType":"YulIdentifier","src":"24496:6:24"},"nativeSrc":"24496:38:24","nodeType":"YulFunctionCall","src":"24496:38:24"},"nativeSrc":"24493:156:24","nodeType":"YulIf","src":"24493:156:24"},{"nativeSrc":"24670:26:24","nodeType":"YulAssignment","src":"24670:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"24685:7:24","nodeType":"YulIdentifier","src":"24685:7:24"},{"kind":"number","nativeSrc":"24694:1:24","nodeType":"YulLiteral","src":"24694:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24681:3:24","nodeType":"YulIdentifier","src":"24681:3:24"},"nativeSrc":"24681:15:24","nodeType":"YulFunctionCall","src":"24681:15:24"},"variableNames":[{"name":"subject","nativeSrc":"24670:7:24","nodeType":"YulIdentifier","src":"24670:7:24"}]},{"body":{"nativeSrc":"24745:9:24","nodeType":"YulBlock","src":"24745:9:24","statements":[{"nativeSrc":"24747:5:24","nodeType":"YulBreak","src":"24747:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24730:7:24","nodeType":"YulIdentifier","src":"24730:7:24"},{"name":"end","nativeSrc":"24739:3:24","nodeType":"YulIdentifier","src":"24739:3:24"}],"functionName":{"name":"lt","nativeSrc":"24727:2:24","nodeType":"YulIdentifier","src":"24727:2:24"},"nativeSrc":"24727:16:24","nodeType":"YulFunctionCall","src":"24727:16:24"}],"functionName":{"name":"iszero","nativeSrc":"24720:6:24","nodeType":"YulIdentifier","src":"24720:6:24"},"nativeSrc":"24720:24:24","nodeType":"YulFunctionCall","src":"24720:24:24"},"nativeSrc":"24717:37:24","nodeType":"YulIf","src":"24717:37:24"}]},"condition":{"kind":"number","nativeSrc":"24466:1:24","nodeType":"YulLiteral","src":"24466:1:24","type":"","value":"1"},"nativeSrc":"24459:313:24","nodeType":"YulForLoop","post":{"nativeSrc":"24468:2:24","nodeType":"YulBlock","src":"24468:2:24","statements":[]},"pre":{"nativeSrc":"24463:2:24","nodeType":"YulBlock","src":"24463:2:24","statements":[]},"src":"24459:313:24"},{"nativeSrc":"24789:5:24","nodeType":"YulBreak","src":"24789:5:24"}]},"condition":{"kind":"number","nativeSrc":"23022:1:24","nodeType":"YulLiteral","src":"23022:1:24","type":"","value":"1"},"nativeSrc":"22978:1830:24","nodeType":"YulForLoop","post":{"nativeSrc":"23024:2:24","nodeType":"YulBlock","src":"23024:2:24","statements":[]},"pre":{"nativeSrc":"22982:39:24","nodeType":"YulBlock","src":"22982:39:24","statements":[{"nativeSrc":"22984:35:24","nodeType":"YulVariableDeclaration","src":"22984:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"23011:7:24","nodeType":"YulIdentifier","src":"23011:7:24"}],"functionName":{"name":"mload","nativeSrc":"23005:5:24","nodeType":"YulIdentifier","src":"23005:5:24"},"nativeSrc":"23005:14:24","nodeType":"YulFunctionCall","src":"23005:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"22988:13:24","nodeType":"YulTypedName","src":"22988:13:24","type":""}]}]},"src":"22978:1830:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23105:4:24","valueSize":1},{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23163:4:24","valueSize":1},{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23523:4:24","valueSize":1},{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23787:4:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"23153:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"23240:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"23430:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"24133:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"24561:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23061:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23350:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23720:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23922:6:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23011:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23398:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23494:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23769:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24011:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24072:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24147:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24288:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24303:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24352:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24520:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24575:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24670:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24685:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24730:7:24","valueSize":1}],"id":10572,"nodeType":"InlineAssembly","src":"22955:1863:24"}]},"documentation":{"id":10561,"nodeType":"StructuredDocumentation","src":"22530:224:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10574,"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"22768:7:24","nodeType":"FunctionDefinition","parameters":{"id":10568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10563,"mutability":"mutable","name":"subject","nameLocation":"22790:7:24","nodeType":"VariableDeclaration","scope":10574,"src":"22776:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10562,"name":"string","nodeType":"ElementaryTypeName","src":"22776:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10565,"mutability":"mutable","name":"search","nameLocation":"22813:6:24","nodeType":"VariableDeclaration","scope":10574,"src":"22799:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10564,"name":"string","nodeType":"ElementaryTypeName","src":"22799:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10567,"mutability":"mutable","name":"from","nameLocation":"22829:4:24","nodeType":"VariableDeclaration","scope":10574,"src":"22821:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10566,"name":"uint256","nodeType":"ElementaryTypeName","src":"22821:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22775:59:24"},"returnParameters":{"id":10571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10570,"mutability":"mutable","name":"result","nameLocation":"22890:6:24","nodeType":"VariableDeclaration","scope":10574,"src":"22882:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10569,"name":"uint256","nodeType":"ElementaryTypeName","src":"22882:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22881:16:24"},"scope":10964,"src":"22759:2065:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10592,"nodeType":"Block","src":"25166:53:24","statements":[{"expression":{"id":10590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10584,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10582,"src":"25176:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10586,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"25193:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10587,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10579,"src":"25202:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"30","id":10588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25210:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10585,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[10574,10593],"referencedDeclaration":10574,"src":"25185:7:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":10589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25185:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25176:36:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10591,"nodeType":"ExpressionStatement","src":"25176:36:24"}]},"documentation":{"id":10575,"nodeType":"StructuredDocumentation","src":"24830:202:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10593,"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"25046:7:24","nodeType":"FunctionDefinition","parameters":{"id":10580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10577,"mutability":"mutable","name":"subject","nameLocation":"25068:7:24","nodeType":"VariableDeclaration","scope":10593,"src":"25054:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10576,"name":"string","nodeType":"ElementaryTypeName","src":"25054:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10579,"mutability":"mutable","name":"search","nameLocation":"25091:6:24","nodeType":"VariableDeclaration","scope":10593,"src":"25077:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10578,"name":"string","nodeType":"ElementaryTypeName","src":"25077:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25053:45:24"},"returnParameters":{"id":10583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10582,"mutability":"mutable","name":"result","nameLocation":"25154:6:24","nodeType":"VariableDeclaration","scope":10593,"src":"25146:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10581,"name":"uint256","nodeType":"ElementaryTypeName","src":"25146:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25145:16:24"},"scope":10964,"src":"25037:182:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10606,"nodeType":"Block","src":"25601:1185:24","statements":[{"AST":{"nativeSrc":"25663:1117:24","nodeType":"YulBlock","src":"25663:1117:24","statements":[{"body":{"nativeSrc":"25689:1081:24","nodeType":"YulBlock","src":"25689:1081:24","statements":[{"nativeSrc":"25707:16:24","nodeType":"YulAssignment","src":"25707:16:24","value":{"arguments":[{"kind":"number","nativeSrc":"25721:1:24","nodeType":"YulLiteral","src":"25721:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"25717:3:24","nodeType":"YulIdentifier","src":"25717:3:24"},"nativeSrc":"25717:6:24","nodeType":"YulFunctionCall","src":"25717:6:24"},"variableNames":[{"name":"result","nativeSrc":"25707:6:24","nodeType":"YulIdentifier","src":"25707:6:24"}]},{"nativeSrc":"25770:33:24","nodeType":"YulVariableDeclaration","src":"25770:33:24","value":{"arguments":[{"name":"search","nativeSrc":"25796:6:24","nodeType":"YulIdentifier","src":"25796:6:24"}],"functionName":{"name":"mload","nativeSrc":"25790:5:24","nodeType":"YulIdentifier","src":"25790:5:24"},"nativeSrc":"25790:13:24","nodeType":"YulFunctionCall","src":"25790:13:24"},"variables":[{"name":"searchLength","nativeSrc":"25774:12:24","nodeType":"YulTypedName","src":"25774:12:24","type":""}]},{"body":{"nativeSrc":"25856:9:24","nodeType":"YulBlock","src":"25856:9:24","statements":[{"nativeSrc":"25858:5:24","nodeType":"YulBreak","src":"25858:5:24"}]},"condition":{"arguments":[{"name":"searchLength","nativeSrc":"25826:12:24","nodeType":"YulIdentifier","src":"25826:12:24"},{"arguments":[{"name":"subject","nativeSrc":"25846:7:24","nodeType":"YulIdentifier","src":"25846:7:24"}],"functionName":{"name":"mload","nativeSrc":"25840:5:24","nodeType":"YulIdentifier","src":"25840:5:24"},"nativeSrc":"25840:14:24","nodeType":"YulFunctionCall","src":"25840:14:24"}],"functionName":{"name":"gt","nativeSrc":"25823:2:24","nodeType":"YulIdentifier","src":"25823:2:24"},"nativeSrc":"25823:32:24","nodeType":"YulFunctionCall","src":"25823:32:24"},"nativeSrc":"25820:45:24","nodeType":"YulIf","src":"25820:45:24"},{"nativeSrc":"25882:15:24","nodeType":"YulVariableDeclaration","src":"25882:15:24","value":{"name":"result","nativeSrc":"25891:6:24","nodeType":"YulIdentifier","src":"25891:6:24"},"variables":[{"name":"w","nativeSrc":"25886:1:24","nodeType":"YulTypedName","src":"25886:1:24","type":""}]},{"nativeSrc":"25915:48:24","nodeType":"YulVariableDeclaration","src":"25915:48:24","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"25940:7:24","nodeType":"YulIdentifier","src":"25940:7:24"}],"functionName":{"name":"mload","nativeSrc":"25934:5:24","nodeType":"YulIdentifier","src":"25934:5:24"},"nativeSrc":"25934:14:24","nodeType":"YulFunctionCall","src":"25934:14:24"},{"name":"searchLength","nativeSrc":"25950:12:24","nodeType":"YulIdentifier","src":"25950:12:24"}],"functionName":{"name":"sub","nativeSrc":"25930:3:24","nodeType":"YulIdentifier","src":"25930:3:24"},"nativeSrc":"25930:33:24","nodeType":"YulFunctionCall","src":"25930:33:24"},"variables":[{"name":"fromMax","nativeSrc":"25919:7:24","nodeType":"YulTypedName","src":"25919:7:24","type":""}]},{"body":{"nativeSrc":"26009:19:24","nodeType":"YulBlock","src":"26009:19:24","statements":[{"nativeSrc":"26011:15:24","nodeType":"YulAssignment","src":"26011:15:24","value":{"name":"fromMax","nativeSrc":"26019:7:24","nodeType":"YulIdentifier","src":"26019:7:24"},"variableNames":[{"name":"from","nativeSrc":"26011:4:24","nodeType":"YulIdentifier","src":"26011:4:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fromMax","nativeSrc":"25993:7:24","nodeType":"YulIdentifier","src":"25993:7:24"},{"name":"from","nativeSrc":"26002:4:24","nodeType":"YulIdentifier","src":"26002:4:24"}],"functionName":{"name":"gt","nativeSrc":"25990:2:24","nodeType":"YulIdentifier","src":"25990:2:24"},"nativeSrc":"25990:17:24","nodeType":"YulFunctionCall","src":"25990:17:24"}],"functionName":{"name":"iszero","nativeSrc":"25983:6:24","nodeType":"YulIdentifier","src":"25983:6:24"},"nativeSrc":"25983:25:24","nodeType":"YulFunctionCall","src":"25983:25:24"},"nativeSrc":"25980:48:24","nodeType":"YulIf","src":"25980:48:24"},{"nativeSrc":"26046:37:24","nodeType":"YulVariableDeclaration","src":"26046:37:24","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26065:7:24","nodeType":"YulIdentifier","src":"26065:7:24"},{"kind":"number","nativeSrc":"26074:4:24","nodeType":"YulLiteral","src":"26074:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26061:3:24","nodeType":"YulIdentifier","src":"26061:3:24"},"nativeSrc":"26061:18:24","nodeType":"YulFunctionCall","src":"26061:18:24"},{"name":"w","nativeSrc":"26081:1:24","nodeType":"YulIdentifier","src":"26081:1:24"}],"functionName":{"name":"add","nativeSrc":"26057:3:24","nodeType":"YulIdentifier","src":"26057:3:24"},"nativeSrc":"26057:26:24","nodeType":"YulFunctionCall","src":"26057:26:24"},"variables":[{"name":"end","nativeSrc":"26050:3:24","nodeType":"YulTypedName","src":"26050:3:24","type":""}]},{"nativeSrc":"26100:40:24","nodeType":"YulAssignment","src":"26100:40:24","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26119:7:24","nodeType":"YulIdentifier","src":"26119:7:24"},{"kind":"number","nativeSrc":"26128:4:24","nodeType":"YulLiteral","src":"26128:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26115:3:24","nodeType":"YulIdentifier","src":"26115:3:24"},"nativeSrc":"26115:18:24","nodeType":"YulFunctionCall","src":"26115:18:24"},{"name":"from","nativeSrc":"26135:4:24","nodeType":"YulIdentifier","src":"26135:4:24"}],"functionName":{"name":"add","nativeSrc":"26111:3:24","nodeType":"YulIdentifier","src":"26111:3:24"},"nativeSrc":"26111:29:24","nodeType":"YulFunctionCall","src":"26111:29:24"},"variableNames":[{"name":"subject","nativeSrc":"26100:7:24","nodeType":"YulIdentifier","src":"26100:7:24"}]},{"body":{"nativeSrc":"26185:9:24","nodeType":"YulBlock","src":"26185:9:24","statements":[{"nativeSrc":"26187:5:24","nodeType":"YulBreak","src":"26187:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26170:7:24","nodeType":"YulIdentifier","src":"26170:7:24"},{"name":"end","nativeSrc":"26179:3:24","nodeType":"YulIdentifier","src":"26179:3:24"}],"functionName":{"name":"gt","nativeSrc":"26167:2:24","nodeType":"YulIdentifier","src":"26167:2:24"},"nativeSrc":"26167:16:24","nodeType":"YulFunctionCall","src":"26167:16:24"}],"functionName":{"name":"iszero","nativeSrc":"26160:6:24","nodeType":"YulIdentifier","src":"26160:6:24"},"nativeSrc":"26160:24:24","nodeType":"YulFunctionCall","src":"26160:24:24"},"nativeSrc":"26157:37:24","nodeType":"YulIf","src":"26157:37:24"},{"body":{"nativeSrc":"26411:323:24","nodeType":"YulBlock","src":"26411:323:24","statements":[{"body":{"nativeSrc":"26476:113:24","nodeType":"YulBlock","src":"26476:113:24","statements":[{"nativeSrc":"26502:35:24","nodeType":"YulAssignment","src":"26502:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"26516:7:24","nodeType":"YulIdentifier","src":"26516:7:24"},{"arguments":[{"name":"end","nativeSrc":"26529:3:24","nodeType":"YulIdentifier","src":"26529:3:24"},{"kind":"number","nativeSrc":"26534:1:24","nodeType":"YulLiteral","src":"26534:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26525:3:24","nodeType":"YulIdentifier","src":"26525:3:24"},"nativeSrc":"26525:11:24","nodeType":"YulFunctionCall","src":"26525:11:24"}],"functionName":{"name":"sub","nativeSrc":"26512:3:24","nodeType":"YulIdentifier","src":"26512:3:24"},"nativeSrc":"26512:25:24","nodeType":"YulFunctionCall","src":"26512:25:24"},"variableNames":[{"name":"result","nativeSrc":"26502:6:24","nodeType":"YulIdentifier","src":"26502:6:24"}]},{"nativeSrc":"26562:5:24","nodeType":"YulBreak","src":"26562:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26449:7:24","nodeType":"YulIdentifier","src":"26449:7:24"},{"name":"searchLength","nativeSrc":"26458:12:24","nodeType":"YulIdentifier","src":"26458:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"26439:9:24","nodeType":"YulIdentifier","src":"26439:9:24"},"nativeSrc":"26439:32:24","nodeType":"YulFunctionCall","src":"26439:32:24"},{"name":"h","nativeSrc":"26473:1:24","nodeType":"YulIdentifier","src":"26473:1:24"}],"functionName":{"name":"eq","nativeSrc":"26436:2:24","nodeType":"YulIdentifier","src":"26436:2:24"},"nativeSrc":"26436:39:24","nodeType":"YulFunctionCall","src":"26436:39:24"},"nativeSrc":"26433:156:24","nodeType":"YulIf","src":"26433:156:24"},{"nativeSrc":"26610:26:24","nodeType":"YulAssignment","src":"26610:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"26625:7:24","nodeType":"YulIdentifier","src":"26625:7:24"},{"name":"w","nativeSrc":"26634:1:24","nodeType":"YulIdentifier","src":"26634:1:24"}],"functionName":{"name":"add","nativeSrc":"26621:3:24","nodeType":"YulIdentifier","src":"26621:3:24"},"nativeSrc":"26621:15:24","nodeType":"YulFunctionCall","src":"26621:15:24"},"variableNames":[{"name":"subject","nativeSrc":"26610:7:24","nodeType":"YulIdentifier","src":"26610:7:24"}]},{"body":{"nativeSrc":"26707:9:24","nodeType":"YulBlock","src":"26707:9:24","statements":[{"nativeSrc":"26709:5:24","nodeType":"YulBreak","src":"26709:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26692:7:24","nodeType":"YulIdentifier","src":"26692:7:24"},{"name":"end","nativeSrc":"26701:3:24","nodeType":"YulIdentifier","src":"26701:3:24"}],"functionName":{"name":"gt","nativeSrc":"26689:2:24","nodeType":"YulIdentifier","src":"26689:2:24"},"nativeSrc":"26689:16:24","nodeType":"YulFunctionCall","src":"26689:16:24"}],"functionName":{"name":"iszero","nativeSrc":"26682:6:24","nodeType":"YulIdentifier","src":"26682:6:24"},"nativeSrc":"26682:24:24","nodeType":"YulFunctionCall","src":"26682:24:24"},"nativeSrc":"26679:37:24","nodeType":"YulIf","src":"26679:37:24"}]},"condition":{"kind":"number","nativeSrc":"26406:1:24","nodeType":"YulLiteral","src":"26406:1:24","type":"","value":"1"},"nativeSrc":"26346:388:24","nodeType":"YulForLoop","post":{"nativeSrc":"26408:2:24","nodeType":"YulBlock","src":"26408:2:24","statements":[]},"pre":{"nativeSrc":"26350:55:24","nodeType":"YulBlock","src":"26350:55:24","statements":[{"nativeSrc":"26352:51:24","nodeType":"YulVariableDeclaration","src":"26352:51:24","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"26375:6:24","nodeType":"YulIdentifier","src":"26375:6:24"},{"kind":"number","nativeSrc":"26383:4:24","nodeType":"YulLiteral","src":"26383:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26371:3:24","nodeType":"YulIdentifier","src":"26371:3:24"},"nativeSrc":"26371:17:24","nodeType":"YulFunctionCall","src":"26371:17:24"},{"name":"searchLength","nativeSrc":"26390:12:24","nodeType":"YulIdentifier","src":"26390:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"26361:9:24","nodeType":"YulIdentifier","src":"26361:9:24"},"nativeSrc":"26361:42:24","nodeType":"YulFunctionCall","src":"26361:42:24"},"variables":[{"name":"h","nativeSrc":"26356:1:24","nodeType":"YulTypedName","src":"26356:1:24","type":""}]}]},"src":"26346:388:24"},{"nativeSrc":"26751:5:24","nodeType":"YulBreak","src":"26751:5:24"}]},"condition":{"kind":"number","nativeSrc":"25684:1:24","nodeType":"YulLiteral","src":"25684:1:24","type":"","value":"1"},"nativeSrc":"25677:1093:24","nodeType":"YulForLoop","post":{"nativeSrc":"25686:2:24","nodeType":"YulBlock","src":"25686:2:24","statements":[]},"pre":{"nativeSrc":"25681:2:24","nodeType":"YulBlock","src":"25681:2:24","statements":[]},"src":"25677:1093:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10600,"isOffset":false,"isSlot":false,"src":"26002:4:24","valueSize":1},{"declaration":10600,"isOffset":false,"isSlot":false,"src":"26011:4:24","valueSize":1},{"declaration":10600,"isOffset":false,"isSlot":false,"src":"26135:4:24","valueSize":1},{"declaration":10603,"isOffset":false,"isSlot":false,"src":"25707:6:24","valueSize":1},{"declaration":10603,"isOffset":false,"isSlot":false,"src":"25891:6:24","valueSize":1},{"declaration":10603,"isOffset":false,"isSlot":false,"src":"26502:6:24","valueSize":1},{"declaration":10598,"isOffset":false,"isSlot":false,"src":"25796:6:24","valueSize":1},{"declaration":10598,"isOffset":false,"isSlot":false,"src":"26375:6:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"25846:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"25940:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26065:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26100:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26119:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26170:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26449:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26516:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26610:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26625:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26692:7:24","valueSize":1}],"id":10605,"nodeType":"InlineAssembly","src":"25654:1126:24"}]},"documentation":{"id":10594,"nodeType":"StructuredDocumentation","src":"25225:224:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10607,"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"25463:11:24","nodeType":"FunctionDefinition","parameters":{"id":10601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10596,"mutability":"mutable","name":"subject","nameLocation":"25489:7:24","nodeType":"VariableDeclaration","scope":10607,"src":"25475:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10595,"name":"string","nodeType":"ElementaryTypeName","src":"25475:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10598,"mutability":"mutable","name":"search","nameLocation":"25512:6:24","nodeType":"VariableDeclaration","scope":10607,"src":"25498:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10597,"name":"string","nodeType":"ElementaryTypeName","src":"25498:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10600,"mutability":"mutable","name":"from","nameLocation":"25528:4:24","nodeType":"VariableDeclaration","scope":10607,"src":"25520:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10599,"name":"uint256","nodeType":"ElementaryTypeName","src":"25520:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25474:59:24"},"returnParameters":{"id":10604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10603,"mutability":"mutable","name":"result","nameLocation":"25589:6:24","nodeType":"VariableDeclaration","scope":10607,"src":"25581:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10602,"name":"uint256","nodeType":"ElementaryTypeName","src":"25581:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25580:16:24"},"scope":10964,"src":"25454:1332:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10632,"nodeType":"Block","src":"27132:75:24","statements":[{"expression":{"id":10630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10617,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10615,"src":"27142:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10619,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10610,"src":"27163:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10620,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10612,"src":"27172:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":10626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"27195:2:24","subExpression":{"hexValue":"31","id":10625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27196:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":10624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27188:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10623,"name":"int256","nodeType":"ElementaryTypeName","src":"27188:6:24","typeDescriptions":{}}},"id":10627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27188:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27180:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10621,"name":"uint256","nodeType":"ElementaryTypeName","src":"27180:7:24","typeDescriptions":{}}},"id":10628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27180:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10618,"name":"lastIndexOf","nodeType":"Identifier","overloadedDeclarations":[10607,10633],"referencedDeclaration":10607,"src":"27151:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":10629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27151:49:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27142:58:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10631,"nodeType":"ExpressionStatement","src":"27142:58:24"}]},"documentation":{"id":10608,"nodeType":"StructuredDocumentation","src":"26792:202:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10633,"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"27008:11:24","nodeType":"FunctionDefinition","parameters":{"id":10613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10610,"mutability":"mutable","name":"subject","nameLocation":"27034:7:24","nodeType":"VariableDeclaration","scope":10633,"src":"27020:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10609,"name":"string","nodeType":"ElementaryTypeName","src":"27020:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10612,"mutability":"mutable","name":"search","nameLocation":"27057:6:24","nodeType":"VariableDeclaration","scope":10633,"src":"27043:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10611,"name":"string","nodeType":"ElementaryTypeName","src":"27043:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27019:45:24"},"returnParameters":{"id":10616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10615,"mutability":"mutable","name":"result","nameLocation":"27120:6:24","nodeType":"VariableDeclaration","scope":10633,"src":"27112:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10614,"name":"uint256","nodeType":"ElementaryTypeName","src":"27112:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27111:16:24"},"scope":10964,"src":"26999:208:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10650,"nodeType":"Block","src":"27383:61:24","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10644,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"27408:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10645,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10638,"src":"27417:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10643,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[10574,10593],"referencedDeclaration":10593,"src":"27400:7:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory,string memory) pure returns (uint256)"}},"id":10646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27400:24:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10647,"name":"NOT_FOUND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10324,"src":"27428:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27400:37:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10642,"id":10649,"nodeType":"Return","src":"27393:44:24"}]},"documentation":{"id":10634,"nodeType":"StructuredDocumentation","src":"27213:73:24","text":"@dev Returns true if `search` is found in `subject`, false otherwise."},"id":10651,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"27300:8:24","nodeType":"FunctionDefinition","parameters":{"id":10639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10636,"mutability":"mutable","name":"subject","nameLocation":"27323:7:24","nodeType":"VariableDeclaration","scope":10651,"src":"27309:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10635,"name":"string","nodeType":"ElementaryTypeName","src":"27309:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10638,"mutability":"mutable","name":"search","nameLocation":"27346:6:24","nodeType":"VariableDeclaration","scope":10651,"src":"27332:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10637,"name":"string","nodeType":"ElementaryTypeName","src":"27332:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27308:45:24"},"returnParameters":{"id":10642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10651,"src":"27377:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10640,"name":"bool","nodeType":"ElementaryTypeName","src":"27377:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27376:6:24"},"scope":10964,"src":"27291:153:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10662,"nodeType":"Block","src":"27640:499:24","statements":[{"AST":{"nativeSrc":"27702:431:24","nodeType":"YulBlock","src":"27702:431:24","statements":[{"nativeSrc":"27716:33:24","nodeType":"YulVariableDeclaration","src":"27716:33:24","value":{"arguments":[{"name":"search","nativeSrc":"27742:6:24","nodeType":"YulIdentifier","src":"27742:6:24"}],"functionName":{"name":"mload","nativeSrc":"27736:5:24","nodeType":"YulIdentifier","src":"27736:5:24"},"nativeSrc":"27736:13:24","nodeType":"YulFunctionCall","src":"27736:13:24"},"variables":[{"name":"searchLength","nativeSrc":"27720:12:24","nodeType":"YulTypedName","src":"27720:12:24","type":""}]},{"nativeSrc":"27871:252:24","nodeType":"YulAssignment","src":"27871:252:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"27912:12:24","nodeType":"YulIdentifier","src":"27912:12:24"},{"arguments":[{"name":"subject","nativeSrc":"27932:7:24","nodeType":"YulIdentifier","src":"27932:7:24"}],"functionName":{"name":"mload","nativeSrc":"27926:5:24","nodeType":"YulIdentifier","src":"27926:5:24"},"nativeSrc":"27926:14:24","nodeType":"YulFunctionCall","src":"27926:14:24"}],"functionName":{"name":"gt","nativeSrc":"27909:2:24","nodeType":"YulIdentifier","src":"27909:2:24"},"nativeSrc":"27909:32:24","nodeType":"YulFunctionCall","src":"27909:32:24"}],"functionName":{"name":"iszero","nativeSrc":"27902:6:24","nodeType":"YulIdentifier","src":"27902:6:24"},"nativeSrc":"27902:40:24","nodeType":"YulFunctionCall","src":"27902:40:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"27998:7:24","nodeType":"YulIdentifier","src":"27998:7:24"},{"kind":"number","nativeSrc":"28007:4:24","nodeType":"YulLiteral","src":"28007:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27994:3:24","nodeType":"YulIdentifier","src":"27994:3:24"},"nativeSrc":"27994:18:24","nodeType":"YulFunctionCall","src":"27994:18:24"},{"name":"searchLength","nativeSrc":"28014:12:24","nodeType":"YulIdentifier","src":"28014:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"27984:9:24","nodeType":"YulIdentifier","src":"27984:9:24"},"nativeSrc":"27984:43:24","nodeType":"YulFunctionCall","src":"27984:43:24"},{"arguments":[{"arguments":[{"name":"search","nativeSrc":"28063:6:24","nodeType":"YulIdentifier","src":"28063:6:24"},{"kind":"number","nativeSrc":"28071:4:24","nodeType":"YulLiteral","src":"28071:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28059:3:24","nodeType":"YulIdentifier","src":"28059:3:24"},"nativeSrc":"28059:17:24","nodeType":"YulFunctionCall","src":"28059:17:24"},{"name":"searchLength","nativeSrc":"28078:12:24","nodeType":"YulIdentifier","src":"28078:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"28049:9:24","nodeType":"YulIdentifier","src":"28049:9:24"},"nativeSrc":"28049:42:24","nodeType":"YulFunctionCall","src":"28049:42:24"}],"functionName":{"name":"eq","nativeSrc":"27960:2:24","nodeType":"YulIdentifier","src":"27960:2:24"},"nativeSrc":"27960:149:24","nodeType":"YulFunctionCall","src":"27960:149:24"}],"functionName":{"name":"and","nativeSrc":"27881:3:24","nodeType":"YulIdentifier","src":"27881:3:24"},"nativeSrc":"27881:242:24","nodeType":"YulFunctionCall","src":"27881:242:24"},"variableNames":[{"name":"result","nativeSrc":"27871:6:24","nodeType":"YulIdentifier","src":"27871:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10659,"isOffset":false,"isSlot":false,"src":"27871:6:24","valueSize":1},{"declaration":10656,"isOffset":false,"isSlot":false,"src":"27742:6:24","valueSize":1},{"declaration":10656,"isOffset":false,"isSlot":false,"src":"28063:6:24","valueSize":1},{"declaration":10654,"isOffset":false,"isSlot":false,"src":"27932:7:24","valueSize":1},{"declaration":10654,"isOffset":false,"isSlot":false,"src":"27998:7:24","valueSize":1}],"id":10661,"nodeType":"InlineAssembly","src":"27693:440:24"}]},"documentation":{"id":10652,"nodeType":"StructuredDocumentation","src":"27450:56:24","text":"@dev Returns whether `subject` starts with `search`."},"id":10663,"implemented":true,"kind":"function","modifiers":[],"name":"startsWith","nameLocation":"27520:10:24","nodeType":"FunctionDefinition","parameters":{"id":10657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10654,"mutability":"mutable","name":"subject","nameLocation":"27545:7:24","nodeType":"VariableDeclaration","scope":10663,"src":"27531:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10653,"name":"string","nodeType":"ElementaryTypeName","src":"27531:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10656,"mutability":"mutable","name":"search","nameLocation":"27568:6:24","nodeType":"VariableDeclaration","scope":10663,"src":"27554:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10655,"name":"string","nodeType":"ElementaryTypeName","src":"27554:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27530:45:24"},"returnParameters":{"id":10660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10659,"mutability":"mutable","name":"result","nameLocation":"27628:6:24","nodeType":"VariableDeclaration","scope":10663,"src":"27623:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10658,"name":"bool","nodeType":"ElementaryTypeName","src":"27623:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27622:13:24"},"scope":10964,"src":"27511:628:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10674,"nodeType":"Block","src":"28331:862:24","statements":[{"AST":{"nativeSrc":"28393:794:24","nodeType":"YulBlock","src":"28393:794:24","statements":[{"nativeSrc":"28407:33:24","nodeType":"YulVariableDeclaration","src":"28407:33:24","value":{"arguments":[{"name":"search","nativeSrc":"28433:6:24","nodeType":"YulIdentifier","src":"28433:6:24"}],"functionName":{"name":"mload","nativeSrc":"28427:5:24","nodeType":"YulIdentifier","src":"28427:5:24"},"nativeSrc":"28427:13:24","nodeType":"YulFunctionCall","src":"28427:13:24"},"variables":[{"name":"searchLength","nativeSrc":"28411:12:24","nodeType":"YulTypedName","src":"28411:12:24","type":""}]},{"nativeSrc":"28453:35:24","nodeType":"YulVariableDeclaration","src":"28453:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"28480:7:24","nodeType":"YulIdentifier","src":"28480:7:24"}],"functionName":{"name":"mload","nativeSrc":"28474:5:24","nodeType":"YulIdentifier","src":"28474:5:24"},"nativeSrc":"28474:14:24","nodeType":"YulFunctionCall","src":"28474:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"28457:13:24","nodeType":"YulTypedName","src":"28457:13:24","type":""}]},{"nativeSrc":"28563:58:24","nodeType":"YulVariableDeclaration","src":"28563:58:24","value":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"28592:12:24","nodeType":"YulIdentifier","src":"28592:12:24"},{"name":"subjectLength","nativeSrc":"28606:13:24","nodeType":"YulIdentifier","src":"28606:13:24"}],"functionName":{"name":"gt","nativeSrc":"28589:2:24","nodeType":"YulIdentifier","src":"28589:2:24"},"nativeSrc":"28589:31:24","nodeType":"YulFunctionCall","src":"28589:31:24"}],"functionName":{"name":"iszero","nativeSrc":"28582:6:24","nodeType":"YulIdentifier","src":"28582:6:24"},"nativeSrc":"28582:39:24","nodeType":"YulFunctionCall","src":"28582:39:24"},"variables":[{"name":"withinRange","nativeSrc":"28567:11:24","nodeType":"YulTypedName","src":"28567:11:24","type":""}]},{"nativeSrc":"28743:434:24","nodeType":"YulAssignment","src":"28743:434:24","value":{"arguments":[{"name":"withinRange","nativeSrc":"28774:11:24","nodeType":"YulIdentifier","src":"28774:11:24"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"28954:7:24","nodeType":"YulIdentifier","src":"28954:7:24"},{"kind":"number","nativeSrc":"28963:4:24","nodeType":"YulLiteral","src":"28963:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28950:3:24","nodeType":"YulIdentifier","src":"28950:3:24"},"nativeSrc":"28950:18:24","nodeType":"YulFunctionCall","src":"28950:18:24"},{"arguments":[{"name":"withinRange","nativeSrc":"28974:11:24","nodeType":"YulIdentifier","src":"28974:11:24"},{"arguments":[{"name":"subjectLength","nativeSrc":"28991:13:24","nodeType":"YulIdentifier","src":"28991:13:24"},{"name":"searchLength","nativeSrc":"29006:12:24","nodeType":"YulIdentifier","src":"29006:12:24"}],"functionName":{"name":"sub","nativeSrc":"28987:3:24","nodeType":"YulIdentifier","src":"28987:3:24"},"nativeSrc":"28987:32:24","nodeType":"YulFunctionCall","src":"28987:32:24"}],"functionName":{"name":"mul","nativeSrc":"28970:3:24","nodeType":"YulIdentifier","src":"28970:3:24"},"nativeSrc":"28970:50:24","nodeType":"YulFunctionCall","src":"28970:50:24"}],"functionName":{"name":"add","nativeSrc":"28946:3:24","nodeType":"YulIdentifier","src":"28946:3:24"},"nativeSrc":"28946:75:24","nodeType":"YulFunctionCall","src":"28946:75:24"},{"name":"searchLength","nativeSrc":"29047:12:24","nodeType":"YulIdentifier","src":"29047:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"28827:9:24","nodeType":"YulIdentifier","src":"28827:9:24"},"nativeSrc":"28827:254:24","nodeType":"YulFunctionCall","src":"28827:254:24"},{"arguments":[{"arguments":[{"name":"search","nativeSrc":"29117:6:24","nodeType":"YulIdentifier","src":"29117:6:24"},{"kind":"number","nativeSrc":"29125:4:24","nodeType":"YulLiteral","src":"29125:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29113:3:24","nodeType":"YulIdentifier","src":"29113:3:24"},"nativeSrc":"29113:17:24","nodeType":"YulFunctionCall","src":"29113:17:24"},{"name":"searchLength","nativeSrc":"29132:12:24","nodeType":"YulIdentifier","src":"29132:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"29103:9:24","nodeType":"YulIdentifier","src":"29103:9:24"},"nativeSrc":"29103:42:24","nodeType":"YulFunctionCall","src":"29103:42:24"}],"functionName":{"name":"eq","nativeSrc":"28803:2:24","nodeType":"YulIdentifier","src":"28803:2:24"},"nativeSrc":"28803:360:24","nodeType":"YulFunctionCall","src":"28803:360:24"}],"functionName":{"name":"and","nativeSrc":"28753:3:24","nodeType":"YulIdentifier","src":"28753:3:24"},"nativeSrc":"28753:424:24","nodeType":"YulFunctionCall","src":"28753:424:24"},"variableNames":[{"name":"result","nativeSrc":"28743:6:24","nodeType":"YulIdentifier","src":"28743:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10671,"isOffset":false,"isSlot":false,"src":"28743:6:24","valueSize":1},{"declaration":10668,"isOffset":false,"isSlot":false,"src":"28433:6:24","valueSize":1},{"declaration":10668,"isOffset":false,"isSlot":false,"src":"29117:6:24","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"28480:7:24","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"28954:7:24","valueSize":1}],"id":10673,"nodeType":"InlineAssembly","src":"28384:803:24"}]},"documentation":{"id":10664,"nodeType":"StructuredDocumentation","src":"28145:54:24","text":"@dev Returns whether `subject` ends with `search`."},"id":10675,"implemented":true,"kind":"function","modifiers":[],"name":"endsWith","nameLocation":"28213:8:24","nodeType":"FunctionDefinition","parameters":{"id":10669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10666,"mutability":"mutable","name":"subject","nameLocation":"28236:7:24","nodeType":"VariableDeclaration","scope":10675,"src":"28222:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10665,"name":"string","nodeType":"ElementaryTypeName","src":"28222:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10668,"mutability":"mutable","name":"search","nameLocation":"28259:6:24","nodeType":"VariableDeclaration","scope":10675,"src":"28245:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10667,"name":"string","nodeType":"ElementaryTypeName","src":"28245:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28221:45:24"},"returnParameters":{"id":10672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10671,"mutability":"mutable","name":"result","nameLocation":"28319:6:24","nodeType":"VariableDeclaration","scope":10675,"src":"28314:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10670,"name":"bool","nodeType":"ElementaryTypeName","src":"28314:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28313:13:24"},"scope":10964,"src":"28204:989:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10686,"nodeType":"Block","src":"29375:1155:24","statements":[{"AST":{"nativeSrc":"29437:1087:24","nodeType":"YulBlock","src":"29437:1087:24","statements":[{"nativeSrc":"29451:35:24","nodeType":"YulVariableDeclaration","src":"29451:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"29478:7:24","nodeType":"YulIdentifier","src":"29478:7:24"}],"functionName":{"name":"mload","nativeSrc":"29472:5:24","nodeType":"YulIdentifier","src":"29472:5:24"},"nativeSrc":"29472:14:24","nodeType":"YulFunctionCall","src":"29472:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"29455:13:24","nodeType":"YulTypedName","src":"29455:13:24","type":""}]},{"body":{"nativeSrc":"29551:963:24","nodeType":"YulBlock","src":"29551:963:24","statements":[{"nativeSrc":"29569:29:24","nodeType":"YulAssignment","src":"29569:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"29584:7:24","nodeType":"YulIdentifier","src":"29584:7:24"},{"kind":"number","nativeSrc":"29593:4:24","nodeType":"YulLiteral","src":"29593:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29580:3:24","nodeType":"YulIdentifier","src":"29580:3:24"},"nativeSrc":"29580:18:24","nodeType":"YulFunctionCall","src":"29580:18:24"},"variableNames":[{"name":"subject","nativeSrc":"29569:7:24","nodeType":"YulIdentifier","src":"29569:7:24"}]},{"nativeSrc":"29615:21:24","nodeType":"YulAssignment","src":"29615:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"29631:4:24","nodeType":"YulLiteral","src":"29631:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"29625:5:24","nodeType":"YulIdentifier","src":"29625:5:24"},"nativeSrc":"29625:11:24","nodeType":"YulFunctionCall","src":"29625:11:24"},"variableNames":[{"name":"result","nativeSrc":"29615:6:24","nodeType":"YulIdentifier","src":"29615:6:24"}]},{"nativeSrc":"29653:31:24","nodeType":"YulVariableDeclaration","src":"29653:31:24","value":{"arguments":[{"name":"result","nativeSrc":"29671:6:24","nodeType":"YulIdentifier","src":"29671:6:24"},{"kind":"number","nativeSrc":"29679:4:24","nodeType":"YulLiteral","src":"29679:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29667:3:24","nodeType":"YulIdentifier","src":"29667:3:24"},"nativeSrc":"29667:17:24","nodeType":"YulFunctionCall","src":"29667:17:24"},"variables":[{"name":"output","nativeSrc":"29657:6:24","nodeType":"YulTypedName","src":"29657:6:24","type":""}]},{"body":{"nativeSrc":"29713:475:24","nodeType":"YulBlock","src":"29713:475:24","statements":[{"body":{"nativeSrc":"29821:202:24","nodeType":"YulBlock","src":"29821:202:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nativeSrc":"29858:6:24","nodeType":"YulIdentifier","src":"29858:6:24"},{"name":"o","nativeSrc":"29866:1:24","nodeType":"YulIdentifier","src":"29866:1:24"}],"functionName":{"name":"add","nativeSrc":"29854:3:24","nodeType":"YulIdentifier","src":"29854:3:24"},"nativeSrc":"29854:14:24","nodeType":"YulFunctionCall","src":"29854:14:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"29880:7:24","nodeType":"YulIdentifier","src":"29880:7:24"},{"name":"o","nativeSrc":"29889:1:24","nodeType":"YulIdentifier","src":"29889:1:24"}],"functionName":{"name":"add","nativeSrc":"29876:3:24","nodeType":"YulIdentifier","src":"29876:3:24"},"nativeSrc":"29876:15:24","nodeType":"YulFunctionCall","src":"29876:15:24"}],"functionName":{"name":"mload","nativeSrc":"29870:5:24","nodeType":"YulIdentifier","src":"29870:5:24"},"nativeSrc":"29870:22:24","nodeType":"YulFunctionCall","src":"29870:22:24"}],"functionName":{"name":"mstore","nativeSrc":"29847:6:24","nodeType":"YulIdentifier","src":"29847:6:24"},"nativeSrc":"29847:46:24","nodeType":"YulFunctionCall","src":"29847:46:24"},"nativeSrc":"29847:46:24","nodeType":"YulExpressionStatement","src":"29847:46:24"},{"nativeSrc":"29918:17:24","nodeType":"YulAssignment","src":"29918:17:24","value":{"arguments":[{"name":"o","nativeSrc":"29927:1:24","nodeType":"YulIdentifier","src":"29927:1:24"},{"kind":"number","nativeSrc":"29930:4:24","nodeType":"YulLiteral","src":"29930:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29923:3:24","nodeType":"YulIdentifier","src":"29923:3:24"},"nativeSrc":"29923:12:24","nodeType":"YulFunctionCall","src":"29923:12:24"},"variableNames":[{"name":"o","nativeSrc":"29918:1:24","nodeType":"YulIdentifier","src":"29918:1:24"}]},{"body":{"nativeSrc":"29992:9:24","nodeType":"YulBlock","src":"29992:9:24","statements":[{"nativeSrc":"29994:5:24","nodeType":"YulBreak","src":"29994:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"29973:1:24","nodeType":"YulIdentifier","src":"29973:1:24"},{"name":"subjectLength","nativeSrc":"29976:13:24","nodeType":"YulIdentifier","src":"29976:13:24"}],"functionName":{"name":"lt","nativeSrc":"29970:2:24","nodeType":"YulIdentifier","src":"29970:2:24"},"nativeSrc":"29970:20:24","nodeType":"YulFunctionCall","src":"29970:20:24"}],"functionName":{"name":"iszero","nativeSrc":"29963:6:24","nodeType":"YulIdentifier","src":"29963:6:24"},"nativeSrc":"29963:28:24","nodeType":"YulFunctionCall","src":"29963:28:24"},"nativeSrc":"29960:41:24","nodeType":"YulIf","src":"29960:41:24"}]},"condition":{"kind":"number","nativeSrc":"29816:1:24","nodeType":"YulLiteral","src":"29816:1:24","type":"","value":"1"},"nativeSrc":"29797:226:24","nodeType":"YulForLoop","post":{"nativeSrc":"29818:2:24","nodeType":"YulBlock","src":"29818:2:24","statements":[]},"pre":{"nativeSrc":"29801:14:24","nodeType":"YulBlock","src":"29801:14:24","statements":[{"nativeSrc":"29803:10:24","nodeType":"YulVariableDeclaration","src":"29803:10:24","value":{"kind":"number","nativeSrc":"29812:1:24","nodeType":"YulLiteral","src":"29812:1:24","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"29807:1:24","nodeType":"YulTypedName","src":"29807:1:24","type":""}]}]},"src":"29797:226:24"},{"nativeSrc":"30044:36:24","nodeType":"YulAssignment","src":"30044:36:24","value":{"arguments":[{"name":"output","nativeSrc":"30058:6:24","nodeType":"YulIdentifier","src":"30058:6:24"},{"name":"subjectLength","nativeSrc":"30066:13:24","nodeType":"YulIdentifier","src":"30066:13:24"}],"functionName":{"name":"add","nativeSrc":"30054:3:24","nodeType":"YulIdentifier","src":"30054:3:24"},"nativeSrc":"30054:26:24","nodeType":"YulFunctionCall","src":"30054:26:24"},"variableNames":[{"name":"output","nativeSrc":"30044:6:24","nodeType":"YulIdentifier","src":"30044:6:24"}]},{"nativeSrc":"30101:22:24","nodeType":"YulAssignment","src":"30101:22:24","value":{"arguments":[{"name":"times","nativeSrc":"30114:5:24","nodeType":"YulIdentifier","src":"30114:5:24"},{"kind":"number","nativeSrc":"30121:1:24","nodeType":"YulLiteral","src":"30121:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30110:3:24","nodeType":"YulIdentifier","src":"30110:3:24"},"nativeSrc":"30110:13:24","nodeType":"YulFunctionCall","src":"30110:13:24"},"variableNames":[{"name":"times","nativeSrc":"30101:5:24","nodeType":"YulIdentifier","src":"30101:5:24"}]},{"body":{"nativeSrc":"30161:9:24","nodeType":"YulBlock","src":"30161:9:24","statements":[{"nativeSrc":"30163:5:24","nodeType":"YulBreak","src":"30163:5:24"}]},"condition":{"arguments":[{"name":"times","nativeSrc":"30154:5:24","nodeType":"YulIdentifier","src":"30154:5:24"}],"functionName":{"name":"iszero","nativeSrc":"30147:6:24","nodeType":"YulIdentifier","src":"30147:6:24"},"nativeSrc":"30147:13:24","nodeType":"YulFunctionCall","src":"30147:13:24"},"nativeSrc":"30144:26:24","nodeType":"YulIf","src":"30144:26:24"}]},"condition":{"kind":"number","nativeSrc":"29708:1:24","nodeType":"YulLiteral","src":"29708:1:24","type":"","value":"1"},"nativeSrc":"29701:487:24","nodeType":"YulForLoop","post":{"nativeSrc":"29710:2:24","nodeType":"YulBlock","src":"29710:2:24","statements":[]},"pre":{"nativeSrc":"29705:2:24","nodeType":"YulBlock","src":"29705:2:24","statements":[]},"src":"29701:487:24"},{"expression":{"arguments":[{"name":"output","nativeSrc":"30212:6:24","nodeType":"YulIdentifier","src":"30212:6:24"},{"kind":"number","nativeSrc":"30220:1:24","nodeType":"YulLiteral","src":"30220:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"30205:6:24","nodeType":"YulIdentifier","src":"30205:6:24"},"nativeSrc":"30205:17:24","nodeType":"YulFunctionCall","src":"30205:17:24"},"nativeSrc":"30205:17:24","nodeType":"YulExpressionStatement","src":"30205:17:24"},{"nativeSrc":"30277:50:24","nodeType":"YulVariableDeclaration","src":"30277:50:24","value":{"arguments":[{"name":"output","nativeSrc":"30301:6:24","nodeType":"YulIdentifier","src":"30301:6:24"},{"arguments":[{"name":"result","nativeSrc":"30313:6:24","nodeType":"YulIdentifier","src":"30313:6:24"},{"kind":"number","nativeSrc":"30321:4:24","nodeType":"YulLiteral","src":"30321:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30309:3:24","nodeType":"YulIdentifier","src":"30309:3:24"},"nativeSrc":"30309:17:24","nodeType":"YulFunctionCall","src":"30309:17:24"}],"functionName":{"name":"sub","nativeSrc":"30297:3:24","nodeType":"YulIdentifier","src":"30297:3:24"},"nativeSrc":"30297:30:24","nodeType":"YulFunctionCall","src":"30297:30:24"},"variables":[{"name":"resultLength","nativeSrc":"30281:12:24","nodeType":"YulTypedName","src":"30281:12:24","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"30351:6:24","nodeType":"YulIdentifier","src":"30351:6:24"},{"name":"resultLength","nativeSrc":"30359:12:24","nodeType":"YulIdentifier","src":"30359:12:24"}],"functionName":{"name":"mstore","nativeSrc":"30344:6:24","nodeType":"YulIdentifier","src":"30344:6:24"},"nativeSrc":"30344:28:24","nodeType":"YulFunctionCall","src":"30344:28:24"},"nativeSrc":"30344:28:24","nodeType":"YulExpressionStatement","src":"30344:28:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30457:4:24","nodeType":"YulLiteral","src":"30457:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"30467:6:24","nodeType":"YulIdentifier","src":"30467:6:24"},{"arguments":[{"name":"resultLength","nativeSrc":"30479:12:24","nodeType":"YulIdentifier","src":"30479:12:24"},{"kind":"number","nativeSrc":"30493:4:24","nodeType":"YulLiteral","src":"30493:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30475:3:24","nodeType":"YulIdentifier","src":"30475:3:24"},"nativeSrc":"30475:23:24","nodeType":"YulFunctionCall","src":"30475:23:24"}],"functionName":{"name":"add","nativeSrc":"30463:3:24","nodeType":"YulIdentifier","src":"30463:3:24"},"nativeSrc":"30463:36:24","nodeType":"YulFunctionCall","src":"30463:36:24"}],"functionName":{"name":"mstore","nativeSrc":"30450:6:24","nodeType":"YulIdentifier","src":"30450:6:24"},"nativeSrc":"30450:50:24","nodeType":"YulFunctionCall","src":"30450:50:24"},"nativeSrc":"30450:50:24","nodeType":"YulExpressionStatement","src":"30450:50:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"times","nativeSrc":"29519:5:24","nodeType":"YulIdentifier","src":"29519:5:24"}],"functionName":{"name":"iszero","nativeSrc":"29512:6:24","nodeType":"YulIdentifier","src":"29512:6:24"},"nativeSrc":"29512:13:24","nodeType":"YulFunctionCall","src":"29512:13:24"},{"arguments":[{"name":"subjectLength","nativeSrc":"29534:13:24","nodeType":"YulIdentifier","src":"29534:13:24"}],"functionName":{"name":"iszero","nativeSrc":"29527:6:24","nodeType":"YulIdentifier","src":"29527:6:24"},"nativeSrc":"29527:21:24","nodeType":"YulFunctionCall","src":"29527:21:24"}],"functionName":{"name":"or","nativeSrc":"29509:2:24","nodeType":"YulIdentifier","src":"29509:2:24"},"nativeSrc":"29509:40:24","nodeType":"YulFunctionCall","src":"29509:40:24"}],"functionName":{"name":"iszero","nativeSrc":"29502:6:24","nodeType":"YulIdentifier","src":"29502:6:24"},"nativeSrc":"29502:48:24","nodeType":"YulFunctionCall","src":"29502:48:24"},"nativeSrc":"29499:1015:24","nodeType":"YulIf","src":"29499:1015:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10683,"isOffset":false,"isSlot":false,"src":"29615:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"29671:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"30313:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"30351:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"30467:6:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29478:7:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29569:7:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29584:7:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29880:7:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"29519:5:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30101:5:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30114:5:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30154:5:24","valueSize":1}],"id":10685,"nodeType":"InlineAssembly","src":"29428:1096:24"}]},"documentation":{"id":10676,"nodeType":"StructuredDocumentation","src":"29199:44:24","text":"@dev Returns `subject` repeated `times`."},"id":10687,"implemented":true,"kind":"function","modifiers":[],"name":"repeat","nameLocation":"29257:6:24","nodeType":"FunctionDefinition","parameters":{"id":10681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10678,"mutability":"mutable","name":"subject","nameLocation":"29278:7:24","nodeType":"VariableDeclaration","scope":10687,"src":"29264:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10677,"name":"string","nodeType":"ElementaryTypeName","src":"29264:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10680,"mutability":"mutable","name":"times","nameLocation":"29295:5:24","nodeType":"VariableDeclaration","scope":10687,"src":"29287:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10679,"name":"uint256","nodeType":"ElementaryTypeName","src":"29287:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29263:38:24"},"returnParameters":{"id":10684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10683,"mutability":"mutable","name":"result","nameLocation":"29363:6:24","nodeType":"VariableDeclaration","scope":10687,"src":"29349:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10682,"name":"string","nodeType":"ElementaryTypeName","src":"29349:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29348:22:24"},"scope":10964,"src":"29248:1282:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10700,"nodeType":"Block","src":"30802:1168:24","statements":[{"AST":{"nativeSrc":"30864:1100:24","nodeType":"YulBlock","src":"30864:1100:24","statements":[{"nativeSrc":"30878:35:24","nodeType":"YulVariableDeclaration","src":"30878:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"30905:7:24","nodeType":"YulIdentifier","src":"30905:7:24"}],"functionName":{"name":"mload","nativeSrc":"30899:5:24","nodeType":"YulIdentifier","src":"30899:5:24"},"nativeSrc":"30899:14:24","nodeType":"YulFunctionCall","src":"30899:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"30882:13:24","nodeType":"YulTypedName","src":"30882:13:24","type":""}]},{"body":{"nativeSrc":"30960:24:24","nodeType":"YulBlock","src":"30960:24:24","statements":[{"nativeSrc":"30962:20:24","nodeType":"YulAssignment","src":"30962:20:24","value":{"name":"subjectLength","nativeSrc":"30969:13:24","nodeType":"YulIdentifier","src":"30969:13:24"},"variableNames":[{"name":"end","nativeSrc":"30962:3:24","nodeType":"YulIdentifier","src":"30962:3:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nativeSrc":"30939:13:24","nodeType":"YulIdentifier","src":"30939:13:24"},{"name":"end","nativeSrc":"30954:3:24","nodeType":"YulIdentifier","src":"30954:3:24"}],"functionName":{"name":"gt","nativeSrc":"30936:2:24","nodeType":"YulIdentifier","src":"30936:2:24"},"nativeSrc":"30936:22:24","nodeType":"YulFunctionCall","src":"30936:22:24"}],"functionName":{"name":"iszero","nativeSrc":"30929:6:24","nodeType":"YulIdentifier","src":"30929:6:24"},"nativeSrc":"30929:30:24","nodeType":"YulFunctionCall","src":"30929:30:24"},"nativeSrc":"30926:58:24","nodeType":"YulIf","src":"30926:58:24"},{"body":{"nativeSrc":"31033:26:24","nodeType":"YulBlock","src":"31033:26:24","statements":[{"nativeSrc":"31035:22:24","nodeType":"YulAssignment","src":"31035:22:24","value":{"name":"subjectLength","nativeSrc":"31044:13:24","nodeType":"YulIdentifier","src":"31044:13:24"},"variableNames":[{"name":"start","nativeSrc":"31035:5:24","nodeType":"YulIdentifier","src":"31035:5:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nativeSrc":"31010:13:24","nodeType":"YulIdentifier","src":"31010:13:24"},{"name":"start","nativeSrc":"31025:5:24","nodeType":"YulIdentifier","src":"31025:5:24"}],"functionName":{"name":"gt","nativeSrc":"31007:2:24","nodeType":"YulIdentifier","src":"31007:2:24"},"nativeSrc":"31007:24:24","nodeType":"YulFunctionCall","src":"31007:24:24"}],"functionName":{"name":"iszero","nativeSrc":"31000:6:24","nodeType":"YulIdentifier","src":"31000:6:24"},"nativeSrc":"31000:32:24","nodeType":"YulFunctionCall","src":"31000:32:24"},"nativeSrc":"30997:62:24","nodeType":"YulIf","src":"30997:62:24"},{"body":{"nativeSrc":"31090:864:24","nodeType":"YulBlock","src":"31090:864:24","statements":[{"nativeSrc":"31108:21:24","nodeType":"YulAssignment","src":"31108:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"31124:4:24","nodeType":"YulLiteral","src":"31124:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"31118:5:24","nodeType":"YulIdentifier","src":"31118:5:24"},"nativeSrc":"31118:11:24","nodeType":"YulFunctionCall","src":"31118:11:24"},"variableNames":[{"name":"result","nativeSrc":"31108:6:24","nodeType":"YulIdentifier","src":"31108:6:24"}]},{"nativeSrc":"31146:35:24","nodeType":"YulVariableDeclaration","src":"31146:35:24","value":{"arguments":[{"name":"end","nativeSrc":"31170:3:24","nodeType":"YulIdentifier","src":"31170:3:24"},{"name":"start","nativeSrc":"31175:5:24","nodeType":"YulIdentifier","src":"31175:5:24"}],"functionName":{"name":"sub","nativeSrc":"31166:3:24","nodeType":"YulIdentifier","src":"31166:3:24"},"nativeSrc":"31166:15:24","nodeType":"YulFunctionCall","src":"31166:15:24"},"variables":[{"name":"resultLength","nativeSrc":"31150:12:24","nodeType":"YulTypedName","src":"31150:12:24","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"31205:6:24","nodeType":"YulIdentifier","src":"31205:6:24"},{"name":"resultLength","nativeSrc":"31213:12:24","nodeType":"YulIdentifier","src":"31213:12:24"}],"functionName":{"name":"mstore","nativeSrc":"31198:6:24","nodeType":"YulIdentifier","src":"31198:6:24"},"nativeSrc":"31198:28:24","nodeType":"YulFunctionCall","src":"31198:28:24"},"nativeSrc":"31198:28:24","nodeType":"YulExpressionStatement","src":"31198:28:24"},{"nativeSrc":"31243:30:24","nodeType":"YulAssignment","src":"31243:30:24","value":{"arguments":[{"name":"subject","nativeSrc":"31258:7:24","nodeType":"YulIdentifier","src":"31258:7:24"},{"name":"start","nativeSrc":"31267:5:24","nodeType":"YulIdentifier","src":"31267:5:24"}],"functionName":{"name":"add","nativeSrc":"31254:3:24","nodeType":"YulIdentifier","src":"31254:3:24"},"nativeSrc":"31254:19:24","nodeType":"YulFunctionCall","src":"31254:19:24"},"variableNames":[{"name":"subject","nativeSrc":"31243:7:24","nodeType":"YulIdentifier","src":"31243:7:24"}]},{"nativeSrc":"31290:18:24","nodeType":"YulVariableDeclaration","src":"31290:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"31303:4:24","nodeType":"YulLiteral","src":"31303:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"31299:3:24","nodeType":"YulIdentifier","src":"31299:3:24"},"nativeSrc":"31299:9:24","nodeType":"YulFunctionCall","src":"31299:9:24"},"variables":[{"name":"w","nativeSrc":"31294:1:24","nodeType":"YulTypedName","src":"31294:1:24","type":""}]},{"body":{"nativeSrc":"31448:183:24","nodeType":"YulBlock","src":"31448:183:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"31481:6:24","nodeType":"YulIdentifier","src":"31481:6:24"},{"name":"o","nativeSrc":"31489:1:24","nodeType":"YulIdentifier","src":"31489:1:24"}],"functionName":{"name":"add","nativeSrc":"31477:3:24","nodeType":"YulIdentifier","src":"31477:3:24"},"nativeSrc":"31477:14:24","nodeType":"YulFunctionCall","src":"31477:14:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"31503:7:24","nodeType":"YulIdentifier","src":"31503:7:24"},{"name":"o","nativeSrc":"31512:1:24","nodeType":"YulIdentifier","src":"31512:1:24"}],"functionName":{"name":"add","nativeSrc":"31499:3:24","nodeType":"YulIdentifier","src":"31499:3:24"},"nativeSrc":"31499:15:24","nodeType":"YulFunctionCall","src":"31499:15:24"}],"functionName":{"name":"mload","nativeSrc":"31493:5:24","nodeType":"YulIdentifier","src":"31493:5:24"},"nativeSrc":"31493:22:24","nodeType":"YulFunctionCall","src":"31493:22:24"}],"functionName":{"name":"mstore","nativeSrc":"31470:6:24","nodeType":"YulIdentifier","src":"31470:6:24"},"nativeSrc":"31470:46:24","nodeType":"YulFunctionCall","src":"31470:46:24"},"nativeSrc":"31470:46:24","nodeType":"YulExpressionStatement","src":"31470:46:24"},{"nativeSrc":"31537:14:24","nodeType":"YulAssignment","src":"31537:14:24","value":{"arguments":[{"name":"o","nativeSrc":"31546:1:24","nodeType":"YulIdentifier","src":"31546:1:24"},{"name":"w","nativeSrc":"31549:1:24","nodeType":"YulIdentifier","src":"31549:1:24"}],"functionName":{"name":"add","nativeSrc":"31542:3:24","nodeType":"YulIdentifier","src":"31542:3:24"},"nativeSrc":"31542:9:24","nodeType":"YulFunctionCall","src":"31542:9:24"},"variableNames":[{"name":"o","nativeSrc":"31537:1:24","nodeType":"YulIdentifier","src":"31537:1:24"}]},{"body":{"nativeSrc":"31604:9:24","nodeType":"YulBlock","src":"31604:9:24","statements":[{"nativeSrc":"31606:5:24","nodeType":"YulBreak","src":"31606:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"31601:1:24","nodeType":"YulIdentifier","src":"31601:1:24"}],"functionName":{"name":"iszero","nativeSrc":"31594:6:24","nodeType":"YulIdentifier","src":"31594:6:24"},"nativeSrc":"31594:9:24","nodeType":"YulFunctionCall","src":"31594:9:24"},"nativeSrc":"31591:22:24","nodeType":"YulIf","src":"31591:22:24"}]},"condition":{"kind":"number","nativeSrc":"31443:1:24","nodeType":"YulLiteral","src":"31443:1:24","type":"","value":"1"},"nativeSrc":"31394:237:24","nodeType":"YulForLoop","post":{"nativeSrc":"31445:2:24","nodeType":"YulBlock","src":"31445:2:24","statements":[]},"pre":{"nativeSrc":"31398:44:24","nodeType":"YulBlock","src":"31398:44:24","statements":[{"nativeSrc":"31400:40:24","nodeType":"YulVariableDeclaration","src":"31400:40:24","value":{"arguments":[{"arguments":[{"name":"resultLength","nativeSrc":"31417:12:24","nodeType":"YulIdentifier","src":"31417:12:24"},{"kind":"number","nativeSrc":"31431:4:24","nodeType":"YulLiteral","src":"31431:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"31413:3:24","nodeType":"YulIdentifier","src":"31413:3:24"},"nativeSrc":"31413:23:24","nodeType":"YulFunctionCall","src":"31413:23:24"},{"name":"w","nativeSrc":"31438:1:24","nodeType":"YulIdentifier","src":"31438:1:24"}],"functionName":{"name":"and","nativeSrc":"31409:3:24","nodeType":"YulIdentifier","src":"31409:3:24"},"nativeSrc":"31409:31:24","nodeType":"YulFunctionCall","src":"31409:31:24"},"variables":[{"name":"o","nativeSrc":"31404:1:24","nodeType":"YulTypedName","src":"31404:1:24","type":""}]}]},"src":"31394:237:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"31717:6:24","nodeType":"YulIdentifier","src":"31717:6:24"},{"kind":"number","nativeSrc":"31725:4:24","nodeType":"YulLiteral","src":"31725:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31713:3:24","nodeType":"YulIdentifier","src":"31713:3:24"},"nativeSrc":"31713:17:24","nodeType":"YulFunctionCall","src":"31713:17:24"},{"name":"resultLength","nativeSrc":"31732:12:24","nodeType":"YulIdentifier","src":"31732:12:24"}],"functionName":{"name":"add","nativeSrc":"31709:3:24","nodeType":"YulIdentifier","src":"31709:3:24"},"nativeSrc":"31709:36:24","nodeType":"YulFunctionCall","src":"31709:36:24"},{"kind":"number","nativeSrc":"31747:1:24","nodeType":"YulLiteral","src":"31747:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"31702:6:24","nodeType":"YulIdentifier","src":"31702:6:24"},"nativeSrc":"31702:47:24","nodeType":"YulFunctionCall","src":"31702:47:24"},"nativeSrc":"31702:47:24","nodeType":"YulExpressionStatement","src":"31702:47:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31889:4:24","nodeType":"YulLiteral","src":"31889:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"31899:6:24","nodeType":"YulIdentifier","src":"31899:6:24"},{"arguments":[{"arguments":[{"name":"resultLength","nativeSrc":"31915:12:24","nodeType":"YulIdentifier","src":"31915:12:24"},{"kind":"number","nativeSrc":"31929:4:24","nodeType":"YulLiteral","src":"31929:4:24","type":"","value":"0x3f"}],"functionName":{"name":"add","nativeSrc":"31911:3:24","nodeType":"YulIdentifier","src":"31911:3:24"},"nativeSrc":"31911:23:24","nodeType":"YulFunctionCall","src":"31911:23:24"},{"name":"w","nativeSrc":"31936:1:24","nodeType":"YulIdentifier","src":"31936:1:24"}],"functionName":{"name":"and","nativeSrc":"31907:3:24","nodeType":"YulIdentifier","src":"31907:3:24"},"nativeSrc":"31907:31:24","nodeType":"YulFunctionCall","src":"31907:31:24"}],"functionName":{"name":"add","nativeSrc":"31895:3:24","nodeType":"YulIdentifier","src":"31895:3:24"},"nativeSrc":"31895:44:24","nodeType":"YulFunctionCall","src":"31895:44:24"}],"functionName":{"name":"mstore","nativeSrc":"31882:6:24","nodeType":"YulIdentifier","src":"31882:6:24"},"nativeSrc":"31882:58:24","nodeType":"YulFunctionCall","src":"31882:58:24"},"nativeSrc":"31882:58:24","nodeType":"YulExpressionStatement","src":"31882:58:24"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"31078:5:24","nodeType":"YulIdentifier","src":"31078:5:24"},{"name":"end","nativeSrc":"31085:3:24","nodeType":"YulIdentifier","src":"31085:3:24"}],"functionName":{"name":"lt","nativeSrc":"31075:2:24","nodeType":"YulIdentifier","src":"31075:2:24"},"nativeSrc":"31075:14:24","nodeType":"YulFunctionCall","src":"31075:14:24"},"nativeSrc":"31072:882:24","nodeType":"YulIf","src":"31072:882:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10694,"isOffset":false,"isSlot":false,"src":"30954:3:24","valueSize":1},{"declaration":10694,"isOffset":false,"isSlot":false,"src":"30962:3:24","valueSize":1},{"declaration":10694,"isOffset":false,"isSlot":false,"src":"31085:3:24","valueSize":1},{"declaration":10694,"isOffset":false,"isSlot":false,"src":"31170:3:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31108:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31205:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31481:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31717:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31899:6:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31025:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31035:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31078:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31175:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31267:5:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"30905:7:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"31243:7:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"31258:7:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"31503:7:24","valueSize":1}],"id":10699,"nodeType":"InlineAssembly","src":"30855:1109:24"}]},"documentation":{"id":10688,"nodeType":"StructuredDocumentation","src":"30536:122:24","text":"@dev Returns a copy of `subject` sliced from `start` to `end` (exclusive).\n `start` and `end` are byte offsets."},"id":10701,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"30672:5:24","nodeType":"FunctionDefinition","parameters":{"id":10695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10690,"mutability":"mutable","name":"subject","nameLocation":"30692:7:24","nodeType":"VariableDeclaration","scope":10701,"src":"30678:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10689,"name":"string","nodeType":"ElementaryTypeName","src":"30678:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10692,"mutability":"mutable","name":"start","nameLocation":"30709:5:24","nodeType":"VariableDeclaration","scope":10701,"src":"30701:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10691,"name":"uint256","nodeType":"ElementaryTypeName","src":"30701:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10694,"mutability":"mutable","name":"end","nameLocation":"30724:3:24","nodeType":"VariableDeclaration","scope":10701,"src":"30716:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10693,"name":"uint256","nodeType":"ElementaryTypeName","src":"30716:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30677:51:24"},"returnParameters":{"id":10698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10697,"mutability":"mutable","name":"result","nameLocation":"30790:6:24","nodeType":"VariableDeclaration","scope":10701,"src":"30776:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10696,"name":"string","nodeType":"ElementaryTypeName","src":"30776:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30775:22:24"},"scope":10964,"src":"30663:1307:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10726,"nodeType":"Block","src":"32223:68:24","statements":[{"expression":{"id":10724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10711,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"32233:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10713,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10704,"src":"32248:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10714,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10706,"src":"32257:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":10720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"32279:2:24","subExpression":{"hexValue":"31","id":10719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32280:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":10718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32272:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10717,"name":"int256","nodeType":"ElementaryTypeName","src":"32272:6:24","typeDescriptions":{}}},"id":10721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32272:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32264:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10715,"name":"uint256","nodeType":"ElementaryTypeName","src":"32264:7:24","typeDescriptions":{}}},"id":10722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32264:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10712,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[10701,10727],"referencedDeclaration":10701,"src":"32242:5:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,uint256,uint256) pure returns (string memory)"}},"id":10723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32242:42:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"32233:51:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10725,"nodeType":"ExpressionStatement","src":"32233:51:24"}]},"documentation":{"id":10702,"nodeType":"StructuredDocumentation","src":"31976:116:24","text":"@dev Returns a copy of `subject` sliced from `start` to the end of the string.\n `start` is a byte offset."},"id":10727,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"32106:5:24","nodeType":"FunctionDefinition","parameters":{"id":10707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10704,"mutability":"mutable","name":"subject","nameLocation":"32126:7:24","nodeType":"VariableDeclaration","scope":10727,"src":"32112:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10703,"name":"string","nodeType":"ElementaryTypeName","src":"32112:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10706,"mutability":"mutable","name":"start","nameLocation":"32143:5:24","nodeType":"VariableDeclaration","scope":10727,"src":"32135:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10705,"name":"uint256","nodeType":"ElementaryTypeName","src":"32135:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32111:38:24"},"returnParameters":{"id":10710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10709,"mutability":"mutable","name":"result","nameLocation":"32211:6:24","nodeType":"VariableDeclaration","scope":10727,"src":"32197:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10708,"name":"string","nodeType":"ElementaryTypeName","src":"32197:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32196:22:24"},"scope":10964,"src":"32097:194:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10739,"nodeType":"Block","src":"32538:2435:24","statements":[{"AST":{"nativeSrc":"32600:2367:24","nodeType":"YulBlock","src":"32600:2367:24","statements":[{"nativeSrc":"32614:35:24","nodeType":"YulVariableDeclaration","src":"32614:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"32641:7:24","nodeType":"YulIdentifier","src":"32641:7:24"}],"functionName":{"name":"mload","nativeSrc":"32635:5:24","nodeType":"YulIdentifier","src":"32635:5:24"},"nativeSrc":"32635:14:24","nodeType":"YulFunctionCall","src":"32635:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"32618:13:24","nodeType":"YulTypedName","src":"32618:13:24","type":""}]},{"nativeSrc":"32662:33:24","nodeType":"YulVariableDeclaration","src":"32662:33:24","value":{"arguments":[{"name":"search","nativeSrc":"32688:6:24","nodeType":"YulIdentifier","src":"32688:6:24"}],"functionName":{"name":"mload","nativeSrc":"32682:5:24","nodeType":"YulIdentifier","src":"32682:5:24"},"nativeSrc":"32682:13:24","nodeType":"YulFunctionCall","src":"32682:13:24"},"variables":[{"name":"searchLength","nativeSrc":"32666:12:24","nodeType":"YulTypedName","src":"32666:12:24","type":""}]},{"body":{"nativeSrc":"32752:2205:24","nodeType":"YulBlock","src":"32752:2205:24","statements":[{"nativeSrc":"32770:29:24","nodeType":"YulAssignment","src":"32770:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"32785:7:24","nodeType":"YulIdentifier","src":"32785:7:24"},{"kind":"number","nativeSrc":"32794:4:24","nodeType":"YulLiteral","src":"32794:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32781:3:24","nodeType":"YulIdentifier","src":"32781:3:24"},"nativeSrc":"32781:18:24","nodeType":"YulFunctionCall","src":"32781:18:24"},"variableNames":[{"name":"subject","nativeSrc":"32770:7:24","nodeType":"YulIdentifier","src":"32770:7:24"}]},{"nativeSrc":"32816:27:24","nodeType":"YulAssignment","src":"32816:27:24","value":{"arguments":[{"name":"search","nativeSrc":"32830:6:24","nodeType":"YulIdentifier","src":"32830:6:24"},{"kind":"number","nativeSrc":"32838:4:24","nodeType":"YulLiteral","src":"32838:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32826:3:24","nodeType":"YulIdentifier","src":"32826:3:24"},"nativeSrc":"32826:17:24","nodeType":"YulFunctionCall","src":"32826:17:24"},"variableNames":[{"name":"search","nativeSrc":"32816:6:24","nodeType":"YulIdentifier","src":"32816:6:24"}]},{"nativeSrc":"32860:32:24","nodeType":"YulAssignment","src":"32860:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32880:4:24","nodeType":"YulLiteral","src":"32880:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"32874:5:24","nodeType":"YulIdentifier","src":"32874:5:24"},"nativeSrc":"32874:11:24","nodeType":"YulFunctionCall","src":"32874:11:24"},{"kind":"number","nativeSrc":"32887:4:24","nodeType":"YulLiteral","src":"32887:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32870:3:24","nodeType":"YulIdentifier","src":"32870:3:24"},"nativeSrc":"32870:22:24","nodeType":"YulFunctionCall","src":"32870:22:24"},"variableNames":[{"name":"result","nativeSrc":"32860:6:24","nodeType":"YulIdentifier","src":"32860:6:24"}]},{"nativeSrc":"32910:27:24","nodeType":"YulVariableDeclaration","src":"32910:27:24","value":{"name":"subject","nativeSrc":"32930:7:24","nodeType":"YulIdentifier","src":"32930:7:24"},"variables":[{"name":"subjectStart","nativeSrc":"32914:12:24","nodeType":"YulTypedName","src":"32914:12:24","type":""}]},{"nativeSrc":"32954:78:24","nodeType":"YulVariableDeclaration","src":"32954:78:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"32990:7:24","nodeType":"YulIdentifier","src":"32990:7:24"},{"name":"subjectLength","nativeSrc":"32999:13:24","nodeType":"YulIdentifier","src":"32999:13:24"}],"functionName":{"name":"add","nativeSrc":"32986:3:24","nodeType":"YulIdentifier","src":"32986:3:24"},"nativeSrc":"32986:27:24","nodeType":"YulFunctionCall","src":"32986:27:24"},{"name":"searchLength","nativeSrc":"33015:12:24","nodeType":"YulIdentifier","src":"33015:12:24"}],"functionName":{"name":"sub","nativeSrc":"32982:3:24","nodeType":"YulIdentifier","src":"32982:3:24"},"nativeSrc":"32982:46:24","nodeType":"YulFunctionCall","src":"32982:46:24"},{"kind":"number","nativeSrc":"33030:1:24","nodeType":"YulLiteral","src":"33030:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"32978:3:24","nodeType":"YulIdentifier","src":"32978:3:24"},"nativeSrc":"32978:54:24","nodeType":"YulFunctionCall","src":"32978:54:24"},"variables":[{"name":"subjectSearchEnd","nativeSrc":"32958:16:24","nodeType":"YulTypedName","src":"32958:16:24","type":""}]},{"nativeSrc":"33049:10:24","nodeType":"YulVariableDeclaration","src":"33049:10:24","value":{"kind":"number","nativeSrc":"33058:1:24","nodeType":"YulLiteral","src":"33058:1:24","type":"","value":"0"},"variables":[{"name":"h","nativeSrc":"33053:1:24","nodeType":"YulTypedName","src":"33053:1:24","type":""}]},{"body":{"nativeSrc":"33110:40:24","nodeType":"YulBlock","src":"33110:40:24","statements":[{"nativeSrc":"33112:36:24","nodeType":"YulAssignment","src":"33112:36:24","value":{"arguments":[{"name":"search","nativeSrc":"33127:6:24","nodeType":"YulIdentifier","src":"33127:6:24"},{"name":"searchLength","nativeSrc":"33135:12:24","nodeType":"YulIdentifier","src":"33135:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"33117:9:24","nodeType":"YulIdentifier","src":"33117:9:24"},"nativeSrc":"33117:31:24","nodeType":"YulFunctionCall","src":"33117:31:24"},"variableNames":[{"name":"h","nativeSrc":"33112:1:24","nodeType":"YulIdentifier","src":"33112:1:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"33089:12:24","nodeType":"YulIdentifier","src":"33089:12:24"},{"kind":"number","nativeSrc":"33103:4:24","nodeType":"YulLiteral","src":"33103:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"33086:2:24","nodeType":"YulIdentifier","src":"33086:2:24"},"nativeSrc":"33086:22:24","nodeType":"YulFunctionCall","src":"33086:22:24"}],"functionName":{"name":"iszero","nativeSrc":"33079:6:24","nodeType":"YulIdentifier","src":"33079:6:24"},"nativeSrc":"33079:30:24","nodeType":"YulFunctionCall","src":"33079:30:24"},"nativeSrc":"33076:74:24","nodeType":"YulIf","src":"33076:74:24"},{"nativeSrc":"33167:51:24","nodeType":"YulVariableDeclaration","src":"33167:51:24","value":{"arguments":[{"kind":"number","nativeSrc":"33180:1:24","nodeType":"YulLiteral","src":"33180:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"33187:4:24","nodeType":"YulLiteral","src":"33187:4:24","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"33197:12:24","nodeType":"YulIdentifier","src":"33197:12:24"},{"kind":"number","nativeSrc":"33211:4:24","nodeType":"YulLiteral","src":"33211:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"33193:3:24","nodeType":"YulIdentifier","src":"33193:3:24"},"nativeSrc":"33193:23:24","nodeType":"YulFunctionCall","src":"33193:23:24"}],"functionName":{"name":"sub","nativeSrc":"33183:3:24","nodeType":"YulIdentifier","src":"33183:3:24"},"nativeSrc":"33183:34:24","nodeType":"YulFunctionCall","src":"33183:34:24"}],"functionName":{"name":"shl","nativeSrc":"33176:3:24","nodeType":"YulIdentifier","src":"33176:3:24"},"nativeSrc":"33176:42:24","nodeType":"YulFunctionCall","src":"33176:42:24"},"variables":[{"name":"m","nativeSrc":"33171:1:24","nodeType":"YulTypedName","src":"33171:1:24","type":""}]},{"nativeSrc":"33235:22:24","nodeType":"YulVariableDeclaration","src":"33235:22:24","value":{"arguments":[{"name":"search","nativeSrc":"33250:6:24","nodeType":"YulIdentifier","src":"33250:6:24"}],"functionName":{"name":"mload","nativeSrc":"33244:5:24","nodeType":"YulIdentifier","src":"33244:5:24"},"nativeSrc":"33244:13:24","nodeType":"YulFunctionCall","src":"33244:13:24"},"variables":[{"name":"s","nativeSrc":"33239:1:24","nodeType":"YulTypedName","src":"33239:1:24","type":""}]},{"body":{"nativeSrc":"33286:1206:24","nodeType":"YulBlock","src":"33286:1206:24","statements":[{"nativeSrc":"33308:23:24","nodeType":"YulVariableDeclaration","src":"33308:23:24","value":{"arguments":[{"name":"subject","nativeSrc":"33323:7:24","nodeType":"YulIdentifier","src":"33323:7:24"}],"functionName":{"name":"mload","nativeSrc":"33317:5:24","nodeType":"YulIdentifier","src":"33317:5:24"},"nativeSrc":"33317:14:24","nodeType":"YulFunctionCall","src":"33317:14:24"},"variables":[{"name":"t","nativeSrc":"33312:1:24","nodeType":"YulTypedName","src":"33312:1:24","type":""}]},{"body":{"nativeSrc":"33506:850:24","nodeType":"YulBlock","src":"33506:850:24","statements":[{"body":{"nativeSrc":"33537:321:24","nodeType":"YulBlock","src":"33537:321:24","statements":[{"body":{"nativeSrc":"33618:214:24","nodeType":"YulBlock","src":"33618:214:24","statements":[{"nativeSrc":"33652:26:24","nodeType":"YulAssignment","src":"33652:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"33667:7:24","nodeType":"YulIdentifier","src":"33667:7:24"},{"kind":"number","nativeSrc":"33676:1:24","nodeType":"YulLiteral","src":"33676:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"33663:3:24","nodeType":"YulIdentifier","src":"33663:3:24"},"nativeSrc":"33663:15:24","nodeType":"YulFunctionCall","src":"33663:15:24"},"variableNames":[{"name":"subject","nativeSrc":"33652:7:24","nodeType":"YulIdentifier","src":"33652:7:24"}]},{"body":{"nativeSrc":"33752:9:24","nodeType":"YulBlock","src":"33752:9:24","statements":[{"nativeSrc":"33754:5:24","nodeType":"YulBreak","src":"33754:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"33724:7:24","nodeType":"YulIdentifier","src":"33724:7:24"},{"name":"subjectSearchEnd","nativeSrc":"33733:16:24","nodeType":"YulIdentifier","src":"33733:16:24"}],"functionName":{"name":"lt","nativeSrc":"33721:2:24","nodeType":"YulIdentifier","src":"33721:2:24"},"nativeSrc":"33721:29:24","nodeType":"YulFunctionCall","src":"33721:29:24"}],"functionName":{"name":"iszero","nativeSrc":"33714:6:24","nodeType":"YulIdentifier","src":"33714:6:24"},"nativeSrc":"33714:37:24","nodeType":"YulFunctionCall","src":"33714:37:24"},"nativeSrc":"33711:50:24","nodeType":"YulIf","src":"33711:50:24"},{"nativeSrc":"33794:8:24","nodeType":"YulContinue","src":"33794:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"33590:7:24","nodeType":"YulIdentifier","src":"33590:7:24"},{"name":"searchLength","nativeSrc":"33599:12:24","nodeType":"YulIdentifier","src":"33599:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"33580:9:24","nodeType":"YulIdentifier","src":"33580:9:24"},"nativeSrc":"33580:32:24","nodeType":"YulFunctionCall","src":"33580:32:24"},{"name":"h","nativeSrc":"33614:1:24","nodeType":"YulIdentifier","src":"33614:1:24"}],"functionName":{"name":"eq","nativeSrc":"33577:2:24","nodeType":"YulIdentifier","src":"33577:2:24"},"nativeSrc":"33577:39:24","nodeType":"YulFunctionCall","src":"33577:39:24"}],"functionName":{"name":"iszero","nativeSrc":"33570:6:24","nodeType":"YulIdentifier","src":"33570:6:24"},"nativeSrc":"33570:47:24","nodeType":"YulFunctionCall","src":"33570:47:24"},"nativeSrc":"33567:265:24","nodeType":"YulIf","src":"33567:265:24"}]},"condition":{"name":"h","nativeSrc":"33535:1:24","nodeType":"YulIdentifier","src":"33535:1:24"},"nativeSrc":"33532:326:24","nodeType":"YulIf","src":"33532:326:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"33937:6:24","nodeType":"YulIdentifier","src":"33937:6:24"},{"arguments":[{"name":"subject","nativeSrc":"33949:7:24","nodeType":"YulIdentifier","src":"33949:7:24"},{"name":"subjectStart","nativeSrc":"33958:12:24","nodeType":"YulIdentifier","src":"33958:12:24"}],"functionName":{"name":"sub","nativeSrc":"33945:3:24","nodeType":"YulIdentifier","src":"33945:3:24"},"nativeSrc":"33945:26:24","nodeType":"YulFunctionCall","src":"33945:26:24"}],"functionName":{"name":"mstore","nativeSrc":"33930:6:24","nodeType":"YulIdentifier","src":"33930:6:24"},"nativeSrc":"33930:42:24","nodeType":"YulFunctionCall","src":"33930:42:24"},"nativeSrc":"33930:42:24","nodeType":"YulExpressionStatement","src":"33930:42:24"},{"nativeSrc":"33997:27:24","nodeType":"YulAssignment","src":"33997:27:24","value":{"arguments":[{"name":"result","nativeSrc":"34011:6:24","nodeType":"YulIdentifier","src":"34011:6:24"},{"kind":"number","nativeSrc":"34019:4:24","nodeType":"YulLiteral","src":"34019:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34007:3:24","nodeType":"YulIdentifier","src":"34007:3:24"},"nativeSrc":"34007:17:24","nodeType":"YulFunctionCall","src":"34007:17:24"},"variableNames":[{"name":"result","nativeSrc":"33997:6:24","nodeType":"YulIdentifier","src":"33997:6:24"}]},{"nativeSrc":"34113:37:24","nodeType":"YulAssignment","src":"34113:37:24","value":{"arguments":[{"name":"subject","nativeSrc":"34128:7:24","nodeType":"YulIdentifier","src":"34128:7:24"},{"name":"searchLength","nativeSrc":"34137:12:24","nodeType":"YulIdentifier","src":"34137:12:24"}],"functionName":{"name":"add","nativeSrc":"34124:3:24","nodeType":"YulIdentifier","src":"34124:3:24"},"nativeSrc":"34124:26:24","nodeType":"YulFunctionCall","src":"34124:26:24"},"variableNames":[{"name":"subject","nativeSrc":"34113:7:24","nodeType":"YulIdentifier","src":"34113:7:24"}]},{"body":{"nativeSrc":"34191:143:24","nodeType":"YulBlock","src":"34191:143:24","statements":[{"body":{"nativeSrc":"34262:9:24","nodeType":"YulBlock","src":"34262:9:24","statements":[{"nativeSrc":"34264:5:24","nodeType":"YulBreak","src":"34264:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"34234:7:24","nodeType":"YulIdentifier","src":"34234:7:24"},{"name":"subjectSearchEnd","nativeSrc":"34243:16:24","nodeType":"YulIdentifier","src":"34243:16:24"}],"functionName":{"name":"lt","nativeSrc":"34231:2:24","nodeType":"YulIdentifier","src":"34231:2:24"},"nativeSrc":"34231:29:24","nodeType":"YulFunctionCall","src":"34231:29:24"}],"functionName":{"name":"iszero","nativeSrc":"34224:6:24","nodeType":"YulIdentifier","src":"34224:6:24"},"nativeSrc":"34224:37:24","nodeType":"YulFunctionCall","src":"34224:37:24"},"nativeSrc":"34221:50:24","nodeType":"YulIf","src":"34221:50:24"},{"nativeSrc":"34300:8:24","nodeType":"YulContinue","src":"34300:8:24"}]},"condition":{"name":"searchLength","nativeSrc":"34178:12:24","nodeType":"YulIdentifier","src":"34178:12:24"},"nativeSrc":"34175:159:24","nodeType":"YulIf","src":"34175:159:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"33491:1:24","nodeType":"YulIdentifier","src":"33491:1:24"},{"arguments":[{"name":"t","nativeSrc":"33498:1:24","nodeType":"YulIdentifier","src":"33498:1:24"},{"name":"s","nativeSrc":"33501:1:24","nodeType":"YulIdentifier","src":"33501:1:24"}],"functionName":{"name":"xor","nativeSrc":"33494:3:24","nodeType":"YulIdentifier","src":"33494:3:24"},"nativeSrc":"33494:9:24","nodeType":"YulFunctionCall","src":"33494:9:24"}],"functionName":{"name":"shr","nativeSrc":"33487:3:24","nodeType":"YulIdentifier","src":"33487:3:24"},"nativeSrc":"33487:17:24","nodeType":"YulFunctionCall","src":"33487:17:24"}],"functionName":{"name":"iszero","nativeSrc":"33480:6:24","nodeType":"YulIdentifier","src":"33480:6:24"},"nativeSrc":"33480:25:24","nodeType":"YulFunctionCall","src":"33480:25:24"},"nativeSrc":"33477:879:24","nodeType":"YulIf","src":"33477:879:24"},{"nativeSrc":"34377:26:24","nodeType":"YulAssignment","src":"34377:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"34392:7:24","nodeType":"YulIdentifier","src":"34392:7:24"},{"kind":"number","nativeSrc":"34401:1:24","nodeType":"YulLiteral","src":"34401:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"34388:3:24","nodeType":"YulIdentifier","src":"34388:3:24"},"nativeSrc":"34388:15:24","nodeType":"YulFunctionCall","src":"34388:15:24"},"variableNames":[{"name":"subject","nativeSrc":"34377:7:24","nodeType":"YulIdentifier","src":"34377:7:24"}]},{"body":{"nativeSrc":"34465:9:24","nodeType":"YulBlock","src":"34465:9:24","statements":[{"nativeSrc":"34467:5:24","nodeType":"YulBreak","src":"34467:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"34437:7:24","nodeType":"YulIdentifier","src":"34437:7:24"},{"name":"subjectSearchEnd","nativeSrc":"34446:16:24","nodeType":"YulIdentifier","src":"34446:16:24"}],"functionName":{"name":"lt","nativeSrc":"34434:2:24","nodeType":"YulIdentifier","src":"34434:2:24"},"nativeSrc":"34434:29:24","nodeType":"YulFunctionCall","src":"34434:29:24"}],"functionName":{"name":"iszero","nativeSrc":"34427:6:24","nodeType":"YulIdentifier","src":"34427:6:24"},"nativeSrc":"34427:37:24","nodeType":"YulFunctionCall","src":"34427:37:24"},"nativeSrc":"34424:50:24","nodeType":"YulIf","src":"34424:50:24"}]},"condition":{"kind":"number","nativeSrc":"33281:1:24","nodeType":"YulLiteral","src":"33281:1:24","type":"","value":"1"},"nativeSrc":"33274:1218:24","nodeType":"YulForLoop","post":{"nativeSrc":"33283:2:24","nodeType":"YulBlock","src":"33283:2:24","statements":[]},"pre":{"nativeSrc":"33278:2:24","nodeType":"YulBlock","src":"33278:2:24","statements":[]},"src":"33274:1218:24"},{"nativeSrc":"34509:23:24","nodeType":"YulVariableDeclaration","src":"34509:23:24","value":{"name":"result","nativeSrc":"34526:6:24","nodeType":"YulIdentifier","src":"34526:6:24"},"variables":[{"name":"resultEnd","nativeSrc":"34513:9:24","nodeType":"YulTypedName","src":"34513:9:24","type":""}]},{"nativeSrc":"34612:21:24","nodeType":"YulAssignment","src":"34612:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"34628:4:24","nodeType":"YulLiteral","src":"34628:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"34622:5:24","nodeType":"YulIdentifier","src":"34622:5:24"},"nativeSrc":"34622:11:24","nodeType":"YulFunctionCall","src":"34622:11:24"},"variableNames":[{"name":"result","nativeSrc":"34612:6:24","nodeType":"YulIdentifier","src":"34612:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"34706:6:24","nodeType":"YulIdentifier","src":"34706:6:24"},{"arguments":[{"kind":"number","nativeSrc":"34718:1:24","nodeType":"YulLiteral","src":"34718:1:24","type":"","value":"5"},{"arguments":[{"name":"resultEnd","nativeSrc":"34725:9:24","nodeType":"YulIdentifier","src":"34725:9:24"},{"arguments":[{"name":"result","nativeSrc":"34740:6:24","nodeType":"YulIdentifier","src":"34740:6:24"},{"kind":"number","nativeSrc":"34748:4:24","nodeType":"YulLiteral","src":"34748:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34736:3:24","nodeType":"YulIdentifier","src":"34736:3:24"},"nativeSrc":"34736:17:24","nodeType":"YulFunctionCall","src":"34736:17:24"}],"functionName":{"name":"sub","nativeSrc":"34721:3:24","nodeType":"YulIdentifier","src":"34721:3:24"},"nativeSrc":"34721:33:24","nodeType":"YulFunctionCall","src":"34721:33:24"}],"functionName":{"name":"shr","nativeSrc":"34714:3:24","nodeType":"YulIdentifier","src":"34714:3:24"},"nativeSrc":"34714:41:24","nodeType":"YulFunctionCall","src":"34714:41:24"}],"functionName":{"name":"mstore","nativeSrc":"34699:6:24","nodeType":"YulIdentifier","src":"34699:6:24"},"nativeSrc":"34699:57:24","nodeType":"YulFunctionCall","src":"34699:57:24"},"nativeSrc":"34699:57:24","nodeType":"YulExpressionStatement","src":"34699:57:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34916:4:24","nodeType":"YulLiteral","src":"34916:4:24","type":"","value":"0x40"},{"arguments":[{"name":"resultEnd","nativeSrc":"34926:9:24","nodeType":"YulIdentifier","src":"34926:9:24"},{"kind":"number","nativeSrc":"34937:4:24","nodeType":"YulLiteral","src":"34937:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34922:3:24","nodeType":"YulIdentifier","src":"34922:3:24"},"nativeSrc":"34922:20:24","nodeType":"YulFunctionCall","src":"34922:20:24"}],"functionName":{"name":"mstore","nativeSrc":"34909:6:24","nodeType":"YulIdentifier","src":"34909:6:24"},"nativeSrc":"34909:34:24","nodeType":"YulFunctionCall","src":"34909:34:24"},"nativeSrc":"34909:34:24","nodeType":"YulExpressionStatement","src":"34909:34:24"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"32722:12:24","nodeType":"YulIdentifier","src":"32722:12:24"},{"name":"subjectLength","nativeSrc":"32736:13:24","nodeType":"YulIdentifier","src":"32736:13:24"}],"functionName":{"name":"gt","nativeSrc":"32719:2:24","nodeType":"YulIdentifier","src":"32719:2:24"},"nativeSrc":"32719:31:24","nodeType":"YulFunctionCall","src":"32719:31:24"}],"functionName":{"name":"iszero","nativeSrc":"32712:6:24","nodeType":"YulIdentifier","src":"32712:6:24"},"nativeSrc":"32712:39:24","nodeType":"YulFunctionCall","src":"32712:39:24"},"nativeSrc":"32709:2248:24","nodeType":"YulIf","src":"32709:2248:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10736,"isOffset":false,"isSlot":false,"src":"32860:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"33937:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"33997:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34011:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34526:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34612:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34706:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34740:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"32688:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"32816:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"32830:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"33127:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"33250:6:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32641:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32770:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32785:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32930:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32990:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33323:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33590:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33652:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33667:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33724:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33949:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34113:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34128:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34234:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34377:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34392:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34437:7:24","valueSize":1}],"id":10738,"nodeType":"InlineAssembly","src":"32591:2376:24"}]},"documentation":{"id":10728,"nodeType":"StructuredDocumentation","src":"32297:96:24","text":"@dev Returns all the indices of `search` in `subject`.\n The indices are byte offsets."},"id":10740,"implemented":true,"kind":"function","modifiers":[],"name":"indicesOf","nameLocation":"32407:9:24","nodeType":"FunctionDefinition","parameters":{"id":10733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10730,"mutability":"mutable","name":"subject","nameLocation":"32431:7:24","nodeType":"VariableDeclaration","scope":10740,"src":"32417:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10729,"name":"string","nodeType":"ElementaryTypeName","src":"32417:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10732,"mutability":"mutable","name":"search","nameLocation":"32454:6:24","nodeType":"VariableDeclaration","scope":10740,"src":"32440:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10731,"name":"string","nodeType":"ElementaryTypeName","src":"32440:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32416:45:24"},"returnParameters":{"id":10737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10736,"mutability":"mutable","name":"result","nameLocation":"32526:6:24","nodeType":"VariableDeclaration","scope":10740,"src":"32509:23:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10734,"name":"uint256","nodeType":"ElementaryTypeName","src":"32509:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10735,"nodeType":"ArrayTypeName","src":"32509:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"32508:25:24"},"scope":10964,"src":"32398:2575:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10762,"nodeType":"Block","src":"35215:1947:24","statements":[{"assignments":[10755],"declarations":[{"constant":false,"id":10755,"mutability":"mutable","name":"indices","nameLocation":"35242:7:24","nodeType":"VariableDeclaration","scope":10762,"src":"35225:24:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10753,"name":"uint256","nodeType":"ElementaryTypeName","src":"35225:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10754,"nodeType":"ArrayTypeName","src":"35225:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":10760,"initialValue":{"arguments":[{"id":10757,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"35262:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10758,"name":"delimiter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"35271:9:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10756,"name":"indicesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10740,"src":"35252:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (uint256[] memory)"}},"id":10759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:29:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"35225:56:24"},{"AST":{"nativeSrc":"35343:1813:24","nodeType":"YulBlock","src":"35343:1813:24","statements":[{"nativeSrc":"35357:18:24","nodeType":"YulVariableDeclaration","src":"35357:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"35370:4:24","nodeType":"YulLiteral","src":"35370:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"35366:3:24","nodeType":"YulIdentifier","src":"35366:3:24"},"nativeSrc":"35366:9:24","nodeType":"YulFunctionCall","src":"35366:9:24"},"variables":[{"name":"w","nativeSrc":"35361:1:24","nodeType":"YulTypedName","src":"35361:1:24","type":""}]},{"nativeSrc":"35388:34:24","nodeType":"YulVariableDeclaration","src":"35388:34:24","value":{"arguments":[{"name":"indices","nativeSrc":"35408:7:24","nodeType":"YulIdentifier","src":"35408:7:24"},{"kind":"number","nativeSrc":"35417:4:24","nodeType":"YulLiteral","src":"35417:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35404:3:24","nodeType":"YulIdentifier","src":"35404:3:24"},"nativeSrc":"35404:18:24","nodeType":"YulFunctionCall","src":"35404:18:24"},"variables":[{"name":"indexPtr","nativeSrc":"35392:8:24","nodeType":"YulTypedName","src":"35392:8:24","type":""}]},{"nativeSrc":"35435:63:24","nodeType":"YulVariableDeclaration","src":"35435:63:24","value":{"arguments":[{"name":"indexPtr","nativeSrc":"35457:8:24","nodeType":"YulIdentifier","src":"35457:8:24"},{"arguments":[{"kind":"number","nativeSrc":"35471:1:24","nodeType":"YulLiteral","src":"35471:1:24","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"35484:7:24","nodeType":"YulIdentifier","src":"35484:7:24"}],"functionName":{"name":"mload","nativeSrc":"35478:5:24","nodeType":"YulIdentifier","src":"35478:5:24"},"nativeSrc":"35478:14:24","nodeType":"YulFunctionCall","src":"35478:14:24"},{"kind":"number","nativeSrc":"35494:1:24","nodeType":"YulLiteral","src":"35494:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35474:3:24","nodeType":"YulIdentifier","src":"35474:3:24"},"nativeSrc":"35474:22:24","nodeType":"YulFunctionCall","src":"35474:22:24"}],"functionName":{"name":"shl","nativeSrc":"35467:3:24","nodeType":"YulIdentifier","src":"35467:3:24"},"nativeSrc":"35467:30:24","nodeType":"YulFunctionCall","src":"35467:30:24"}],"functionName":{"name":"add","nativeSrc":"35453:3:24","nodeType":"YulIdentifier","src":"35453:3:24"},"nativeSrc":"35453:45:24","nodeType":"YulFunctionCall","src":"35453:45:24"},"variables":[{"name":"indicesEnd","nativeSrc":"35439:10:24","nodeType":"YulTypedName","src":"35439:10:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"indicesEnd","nativeSrc":"35522:10:24","nodeType":"YulIdentifier","src":"35522:10:24"},{"name":"w","nativeSrc":"35534:1:24","nodeType":"YulIdentifier","src":"35534:1:24"}],"functionName":{"name":"add","nativeSrc":"35518:3:24","nodeType":"YulIdentifier","src":"35518:3:24"},"nativeSrc":"35518:18:24","nodeType":"YulFunctionCall","src":"35518:18:24"},{"arguments":[{"name":"subject","nativeSrc":"35544:7:24","nodeType":"YulIdentifier","src":"35544:7:24"}],"functionName":{"name":"mload","nativeSrc":"35538:5:24","nodeType":"YulIdentifier","src":"35538:5:24"},"nativeSrc":"35538:14:24","nodeType":"YulFunctionCall","src":"35538:14:24"}],"functionName":{"name":"mstore","nativeSrc":"35511:6:24","nodeType":"YulIdentifier","src":"35511:6:24"},"nativeSrc":"35511:42:24","nodeType":"YulFunctionCall","src":"35511:42:24"},"nativeSrc":"35511:42:24","nodeType":"YulExpressionStatement","src":"35511:42:24"},{"expression":{"arguments":[{"name":"indices","nativeSrc":"35573:7:24","nodeType":"YulIdentifier","src":"35573:7:24"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"35592:7:24","nodeType":"YulIdentifier","src":"35592:7:24"}],"functionName":{"name":"mload","nativeSrc":"35586:5:24","nodeType":"YulIdentifier","src":"35586:5:24"},"nativeSrc":"35586:14:24","nodeType":"YulFunctionCall","src":"35586:14:24"},{"kind":"number","nativeSrc":"35602:1:24","nodeType":"YulLiteral","src":"35602:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35582:3:24","nodeType":"YulIdentifier","src":"35582:3:24"},"nativeSrc":"35582:22:24","nodeType":"YulFunctionCall","src":"35582:22:24"}],"functionName":{"name":"mstore","nativeSrc":"35566:6:24","nodeType":"YulIdentifier","src":"35566:6:24"},"nativeSrc":"35566:39:24","nodeType":"YulFunctionCall","src":"35566:39:24"},"nativeSrc":"35566:39:24","nodeType":"YulExpressionStatement","src":"35566:39:24"},{"nativeSrc":"35618:18:24","nodeType":"YulVariableDeclaration","src":"35618:18:24","value":{"kind":"number","nativeSrc":"35635:1:24","nodeType":"YulLiteral","src":"35635:1:24","type":"","value":"0"},"variables":[{"name":"prevIndex","nativeSrc":"35622:9:24","nodeType":"YulTypedName","src":"35622:9:24","type":""}]},{"body":{"nativeSrc":"35661:1299:24","nodeType":"YulBlock","src":"35661:1299:24","statements":[{"nativeSrc":"35679:28:24","nodeType":"YulVariableDeclaration","src":"35679:28:24","value":{"arguments":[{"name":"indexPtr","nativeSrc":"35698:8:24","nodeType":"YulIdentifier","src":"35698:8:24"}],"functionName":{"name":"mload","nativeSrc":"35692:5:24","nodeType":"YulIdentifier","src":"35692:5:24"},"nativeSrc":"35692:15:24","nodeType":"YulFunctionCall","src":"35692:15:24"},"variables":[{"name":"index","nativeSrc":"35683:5:24","nodeType":"YulTypedName","src":"35683:5:24","type":""}]},{"expression":{"arguments":[{"name":"indexPtr","nativeSrc":"35731:8:24","nodeType":"YulIdentifier","src":"35731:8:24"},{"kind":"number","nativeSrc":"35741:4:24","nodeType":"YulLiteral","src":"35741:4:24","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"35724:6:24","nodeType":"YulIdentifier","src":"35724:6:24"},"nativeSrc":"35724:22:24","nodeType":"YulFunctionCall","src":"35724:22:24"},"nativeSrc":"35724:22:24","nodeType":"YulExpressionStatement","src":"35724:22:24"},{"body":{"nativeSrc":"35795:983:24","nodeType":"YulBlock","src":"35795:983:24","statements":[{"nativeSrc":"35817:26:24","nodeType":"YulVariableDeclaration","src":"35817:26:24","value":{"arguments":[{"kind":"number","nativeSrc":"35838:4:24","nodeType":"YulLiteral","src":"35838:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"35832:5:24","nodeType":"YulIdentifier","src":"35832:5:24"},"nativeSrc":"35832:11:24","nodeType":"YulFunctionCall","src":"35832:11:24"},"variables":[{"name":"element","nativeSrc":"35821:7:24","nodeType":"YulTypedName","src":"35821:7:24","type":""}]},{"nativeSrc":"35864:42:24","nodeType":"YulVariableDeclaration","src":"35864:42:24","value":{"arguments":[{"name":"index","nativeSrc":"35889:5:24","nodeType":"YulIdentifier","src":"35889:5:24"},{"name":"prevIndex","nativeSrc":"35896:9:24","nodeType":"YulIdentifier","src":"35896:9:24"}],"functionName":{"name":"sub","nativeSrc":"35885:3:24","nodeType":"YulIdentifier","src":"35885:3:24"},"nativeSrc":"35885:21:24","nodeType":"YulFunctionCall","src":"35885:21:24"},"variables":[{"name":"elementLength","nativeSrc":"35868:13:24","nodeType":"YulTypedName","src":"35868:13:24","type":""}]},{"expression":{"arguments":[{"name":"element","nativeSrc":"35934:7:24","nodeType":"YulIdentifier","src":"35934:7:24"},{"name":"elementLength","nativeSrc":"35943:13:24","nodeType":"YulIdentifier","src":"35943:13:24"}],"functionName":{"name":"mstore","nativeSrc":"35927:6:24","nodeType":"YulIdentifier","src":"35927:6:24"},"nativeSrc":"35927:30:24","nodeType":"YulFunctionCall","src":"35927:30:24"},"nativeSrc":"35927:30:24","nodeType":"YulExpressionStatement","src":"35927:30:24"},{"body":{"nativeSrc":"36106:216:24","nodeType":"YulBlock","src":"36106:216:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"element","nativeSrc":"36143:7:24","nodeType":"YulIdentifier","src":"36143:7:24"},{"name":"o","nativeSrc":"36152:1:24","nodeType":"YulIdentifier","src":"36152:1:24"}],"functionName":{"name":"add","nativeSrc":"36139:3:24","nodeType":"YulIdentifier","src":"36139:3:24"},"nativeSrc":"36139:15:24","nodeType":"YulFunctionCall","src":"36139:15:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"36170:7:24","nodeType":"YulIdentifier","src":"36170:7:24"},{"name":"prevIndex","nativeSrc":"36179:9:24","nodeType":"YulIdentifier","src":"36179:9:24"}],"functionName":{"name":"add","nativeSrc":"36166:3:24","nodeType":"YulIdentifier","src":"36166:3:24"},"nativeSrc":"36166:23:24","nodeType":"YulFunctionCall","src":"36166:23:24"},{"name":"o","nativeSrc":"36191:1:24","nodeType":"YulIdentifier","src":"36191:1:24"}],"functionName":{"name":"add","nativeSrc":"36162:3:24","nodeType":"YulIdentifier","src":"36162:3:24"},"nativeSrc":"36162:31:24","nodeType":"YulFunctionCall","src":"36162:31:24"}],"functionName":{"name":"mload","nativeSrc":"36156:5:24","nodeType":"YulIdentifier","src":"36156:5:24"},"nativeSrc":"36156:38:24","nodeType":"YulFunctionCall","src":"36156:38:24"}],"functionName":{"name":"mstore","nativeSrc":"36132:6:24","nodeType":"YulIdentifier","src":"36132:6:24"},"nativeSrc":"36132:63:24","nodeType":"YulFunctionCall","src":"36132:63:24"},"nativeSrc":"36132:63:24","nodeType":"YulExpressionStatement","src":"36132:63:24"},{"nativeSrc":"36220:14:24","nodeType":"YulAssignment","src":"36220:14:24","value":{"arguments":[{"name":"o","nativeSrc":"36229:1:24","nodeType":"YulIdentifier","src":"36229:1:24"},{"name":"w","nativeSrc":"36232:1:24","nodeType":"YulIdentifier","src":"36232:1:24"}],"functionName":{"name":"add","nativeSrc":"36225:3:24","nodeType":"YulIdentifier","src":"36225:3:24"},"nativeSrc":"36225:9:24","nodeType":"YulFunctionCall","src":"36225:9:24"},"variableNames":[{"name":"o","nativeSrc":"36220:1:24","nodeType":"YulIdentifier","src":"36220:1:24"}]},{"body":{"nativeSrc":"36291:9:24","nodeType":"YulBlock","src":"36291:9:24","statements":[{"nativeSrc":"36293:5:24","nodeType":"YulBreak","src":"36293:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"36288:1:24","nodeType":"YulIdentifier","src":"36288:1:24"}],"functionName":{"name":"iszero","nativeSrc":"36281:6:24","nodeType":"YulIdentifier","src":"36281:6:24"},"nativeSrc":"36281:9:24","nodeType":"YulFunctionCall","src":"36281:9:24"},"nativeSrc":"36278:22:24","nodeType":"YulIf","src":"36278:22:24"}]},"condition":{"kind":"number","nativeSrc":"36101:1:24","nodeType":"YulLiteral","src":"36101:1:24","type":"","value":"1"},"nativeSrc":"36051:271:24","nodeType":"YulForLoop","post":{"nativeSrc":"36103:2:24","nodeType":"YulBlock","src":"36103:2:24","statements":[]},"pre":{"nativeSrc":"36055:45:24","nodeType":"YulBlock","src":"36055:45:24","statements":[{"nativeSrc":"36057:41:24","nodeType":"YulVariableDeclaration","src":"36057:41:24","value":{"arguments":[{"arguments":[{"name":"elementLength","nativeSrc":"36074:13:24","nodeType":"YulIdentifier","src":"36074:13:24"},{"kind":"number","nativeSrc":"36089:4:24","nodeType":"YulLiteral","src":"36089:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"36070:3:24","nodeType":"YulIdentifier","src":"36070:3:24"},"nativeSrc":"36070:24:24","nodeType":"YulFunctionCall","src":"36070:24:24"},{"name":"w","nativeSrc":"36096:1:24","nodeType":"YulIdentifier","src":"36096:1:24"}],"functionName":{"name":"and","nativeSrc":"36066:3:24","nodeType":"YulIdentifier","src":"36066:3:24"},"nativeSrc":"36066:32:24","nodeType":"YulFunctionCall","src":"36066:32:24"},"variables":[{"name":"o","nativeSrc":"36061:1:24","nodeType":"YulTypedName","src":"36061:1:24","type":""}]}]},"src":"36051:271:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"element","nativeSrc":"36416:7:24","nodeType":"YulIdentifier","src":"36416:7:24"},{"kind":"number","nativeSrc":"36425:4:24","nodeType":"YulLiteral","src":"36425:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36412:3:24","nodeType":"YulIdentifier","src":"36412:3:24"},"nativeSrc":"36412:18:24","nodeType":"YulFunctionCall","src":"36412:18:24"},{"name":"elementLength","nativeSrc":"36432:13:24","nodeType":"YulIdentifier","src":"36432:13:24"}],"functionName":{"name":"add","nativeSrc":"36408:3:24","nodeType":"YulIdentifier","src":"36408:3:24"},"nativeSrc":"36408:38:24","nodeType":"YulFunctionCall","src":"36408:38:24"},{"kind":"number","nativeSrc":"36448:1:24","nodeType":"YulLiteral","src":"36448:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"36401:6:24","nodeType":"YulIdentifier","src":"36401:6:24"},"nativeSrc":"36401:49:24","nodeType":"YulFunctionCall","src":"36401:49:24"},"nativeSrc":"36401:49:24","nodeType":"YulExpressionStatement","src":"36401:49:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36602:4:24","nodeType":"YulLiteral","src":"36602:4:24","type":"","value":"0x40"},{"arguments":[{"name":"element","nativeSrc":"36612:7:24","nodeType":"YulIdentifier","src":"36612:7:24"},{"arguments":[{"arguments":[{"name":"elementLength","nativeSrc":"36629:13:24","nodeType":"YulIdentifier","src":"36629:13:24"},{"kind":"number","nativeSrc":"36644:4:24","nodeType":"YulLiteral","src":"36644:4:24","type":"","value":"0x3f"}],"functionName":{"name":"add","nativeSrc":"36625:3:24","nodeType":"YulIdentifier","src":"36625:3:24"},"nativeSrc":"36625:24:24","nodeType":"YulFunctionCall","src":"36625:24:24"},{"name":"w","nativeSrc":"36651:1:24","nodeType":"YulIdentifier","src":"36651:1:24"}],"functionName":{"name":"and","nativeSrc":"36621:3:24","nodeType":"YulIdentifier","src":"36621:3:24"},"nativeSrc":"36621:32:24","nodeType":"YulFunctionCall","src":"36621:32:24"}],"functionName":{"name":"add","nativeSrc":"36608:3:24","nodeType":"YulIdentifier","src":"36608:3:24"},"nativeSrc":"36608:46:24","nodeType":"YulFunctionCall","src":"36608:46:24"}],"functionName":{"name":"mstore","nativeSrc":"36595:6:24","nodeType":"YulIdentifier","src":"36595:6:24"},"nativeSrc":"36595:60:24","nodeType":"YulFunctionCall","src":"36595:60:24"},"nativeSrc":"36595:60:24","nodeType":"YulExpressionStatement","src":"36595:60:24"},{"expression":{"arguments":[{"name":"indexPtr","nativeSrc":"36742:8:24","nodeType":"YulIdentifier","src":"36742:8:24"},{"name":"element","nativeSrc":"36752:7:24","nodeType":"YulIdentifier","src":"36752:7:24"}],"functionName":{"name":"mstore","nativeSrc":"36735:6:24","nodeType":"YulIdentifier","src":"36735:6:24"},"nativeSrc":"36735:25:24","nodeType":"YulFunctionCall","src":"36735:25:24"},"nativeSrc":"36735:25:24","nodeType":"YulExpressionStatement","src":"36735:25:24"}]},"condition":{"arguments":[{"arguments":[{"name":"index","nativeSrc":"35776:5:24","nodeType":"YulIdentifier","src":"35776:5:24"},{"name":"prevIndex","nativeSrc":"35783:9:24","nodeType":"YulIdentifier","src":"35783:9:24"}],"functionName":{"name":"eq","nativeSrc":"35773:2:24","nodeType":"YulIdentifier","src":"35773:2:24"},"nativeSrc":"35773:20:24","nodeType":"YulFunctionCall","src":"35773:20:24"}],"functionName":{"name":"iszero","nativeSrc":"35766:6:24","nodeType":"YulIdentifier","src":"35766:6:24"},"nativeSrc":"35766:28:24","nodeType":"YulFunctionCall","src":"35766:28:24"},"nativeSrc":"35763:1015:24","nodeType":"YulIf","src":"35763:1015:24"},{"nativeSrc":"36795:41:24","nodeType":"YulAssignment","src":"36795:41:24","value":{"arguments":[{"name":"index","nativeSrc":"36812:5:24","nodeType":"YulIdentifier","src":"36812:5:24"},{"arguments":[{"name":"delimiter","nativeSrc":"36825:9:24","nodeType":"YulIdentifier","src":"36825:9:24"}],"functionName":{"name":"mload","nativeSrc":"36819:5:24","nodeType":"YulIdentifier","src":"36819:5:24"},"nativeSrc":"36819:16:24","nodeType":"YulFunctionCall","src":"36819:16:24"}],"functionName":{"name":"add","nativeSrc":"36808:3:24","nodeType":"YulIdentifier","src":"36808:3:24"},"nativeSrc":"36808:28:24","nodeType":"YulFunctionCall","src":"36808:28:24"},"variableNames":[{"name":"prevIndex","nativeSrc":"36795:9:24","nodeType":"YulIdentifier","src":"36795:9:24"}]},{"nativeSrc":"36853:31:24","nodeType":"YulAssignment","src":"36853:31:24","value":{"arguments":[{"name":"indexPtr","nativeSrc":"36869:8:24","nodeType":"YulIdentifier","src":"36869:8:24"},{"kind":"number","nativeSrc":"36879:4:24","nodeType":"YulLiteral","src":"36879:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36865:3:24","nodeType":"YulIdentifier","src":"36865:3:24"},"nativeSrc":"36865:19:24","nodeType":"YulFunctionCall","src":"36865:19:24"},"variableNames":[{"name":"indexPtr","nativeSrc":"36853:8:24","nodeType":"YulIdentifier","src":"36853:8:24"}]},{"body":{"nativeSrc":"36937:9:24","nodeType":"YulBlock","src":"36937:9:24","statements":[{"nativeSrc":"36939:5:24","nodeType":"YulBreak","src":"36939:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"indexPtr","nativeSrc":"36914:8:24","nodeType":"YulIdentifier","src":"36914:8:24"},{"name":"indicesEnd","nativeSrc":"36924:10:24","nodeType":"YulIdentifier","src":"36924:10:24"}],"functionName":{"name":"lt","nativeSrc":"36911:2:24","nodeType":"YulIdentifier","src":"36911:2:24"},"nativeSrc":"36911:24:24","nodeType":"YulFunctionCall","src":"36911:24:24"}],"functionName":{"name":"iszero","nativeSrc":"36904:6:24","nodeType":"YulIdentifier","src":"36904:6:24"},"nativeSrc":"36904:32:24","nodeType":"YulFunctionCall","src":"36904:32:24"},"nativeSrc":"36901:45:24","nodeType":"YulIf","src":"36901:45:24"}]},"condition":{"kind":"number","nativeSrc":"35656:1:24","nodeType":"YulLiteral","src":"35656:1:24","type":"","value":"1"},"nativeSrc":"35649:1311:24","nodeType":"YulForLoop","post":{"nativeSrc":"35658:2:24","nodeType":"YulBlock","src":"35658:2:24","statements":[]},"pre":{"nativeSrc":"35653:2:24","nodeType":"YulBlock","src":"35653:2:24","statements":[]},"src":"35649:1311:24"},{"nativeSrc":"36973:17:24","nodeType":"YulAssignment","src":"36973:17:24","value":{"name":"indices","nativeSrc":"36983:7:24","nodeType":"YulIdentifier","src":"36983:7:24"},"variableNames":[{"name":"result","nativeSrc":"36973:6:24","nodeType":"YulIdentifier","src":"36973:6:24"}]},{"body":{"nativeSrc":"37031:115:24","nodeType":"YulBlock","src":"37031:115:24","statements":[{"nativeSrc":"37049:28:24","nodeType":"YulAssignment","src":"37049:28:24","value":{"arguments":[{"name":"indices","nativeSrc":"37063:7:24","nodeType":"YulIdentifier","src":"37063:7:24"},{"kind":"number","nativeSrc":"37072:4:24","nodeType":"YulLiteral","src":"37072:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37059:3:24","nodeType":"YulIdentifier","src":"37059:3:24"},"nativeSrc":"37059:18:24","nodeType":"YulFunctionCall","src":"37059:18:24"},"variableNames":[{"name":"result","nativeSrc":"37049:6:24","nodeType":"YulIdentifier","src":"37049:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"37101:6:24","nodeType":"YulIdentifier","src":"37101:6:24"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"37119:7:24","nodeType":"YulIdentifier","src":"37119:7:24"}],"functionName":{"name":"mload","nativeSrc":"37113:5:24","nodeType":"YulIdentifier","src":"37113:5:24"},"nativeSrc":"37113:14:24","nodeType":"YulFunctionCall","src":"37113:14:24"},{"kind":"number","nativeSrc":"37129:1:24","nodeType":"YulLiteral","src":"37129:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"37109:3:24","nodeType":"YulIdentifier","src":"37109:3:24"},"nativeSrc":"37109:22:24","nodeType":"YulFunctionCall","src":"37109:22:24"}],"functionName":{"name":"mstore","nativeSrc":"37094:6:24","nodeType":"YulIdentifier","src":"37094:6:24"},"nativeSrc":"37094:38:24","nodeType":"YulFunctionCall","src":"37094:38:24"},"nativeSrc":"37094:38:24","nodeType":"YulExpressionStatement","src":"37094:38:24"}]},"condition":{"arguments":[{"arguments":[{"name":"delimiter","nativeSrc":"37019:9:24","nodeType":"YulIdentifier","src":"37019:9:24"}],"functionName":{"name":"mload","nativeSrc":"37013:5:24","nodeType":"YulIdentifier","src":"37013:5:24"},"nativeSrc":"37013:16:24","nodeType":"YulFunctionCall","src":"37013:16:24"}],"functionName":{"name":"iszero","nativeSrc":"37006:6:24","nodeType":"YulIdentifier","src":"37006:6:24"},"nativeSrc":"37006:24:24","nodeType":"YulFunctionCall","src":"37006:24:24"},"nativeSrc":"37003:143:24","nodeType":"YulIf","src":"37003:143:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10745,"isOffset":false,"isSlot":false,"src":"36825:9:24","valueSize":1},{"declaration":10745,"isOffset":false,"isSlot":false,"src":"37019:9:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35408:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35484:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35573:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35592:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"36983:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"37063:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"37119:7:24","valueSize":1},{"declaration":10749,"isOffset":false,"isSlot":false,"src":"36973:6:24","valueSize":1},{"declaration":10749,"isOffset":false,"isSlot":false,"src":"37049:6:24","valueSize":1},{"declaration":10749,"isOffset":false,"isSlot":false,"src":"37101:6:24","valueSize":1},{"declaration":10743,"isOffset":false,"isSlot":false,"src":"35544:7:24","valueSize":1},{"declaration":10743,"isOffset":false,"isSlot":false,"src":"36170:7:24","valueSize":1}],"id":10761,"nodeType":"InlineAssembly","src":"35334:1822:24"}]},"documentation":{"id":10741,"nodeType":"StructuredDocumentation","src":"34979:93:24","text":"@dev Returns a arrays of strings based on the `delimiter` inside of the `subject` string."},"id":10763,"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"35086:5:24","nodeType":"FunctionDefinition","parameters":{"id":10746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10743,"mutability":"mutable","name":"subject","nameLocation":"35106:7:24","nodeType":"VariableDeclaration","scope":10763,"src":"35092:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10742,"name":"string","nodeType":"ElementaryTypeName","src":"35092:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10745,"mutability":"mutable","name":"delimiter","nameLocation":"35129:9:24","nodeType":"VariableDeclaration","scope":10763,"src":"35115:23:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10744,"name":"string","nodeType":"ElementaryTypeName","src":"35115:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35091:48:24"},"returnParameters":{"id":10750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10749,"mutability":"mutable","name":"result","nameLocation":"35203:6:24","nodeType":"VariableDeclaration","scope":10763,"src":"35187:22:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":10747,"name":"string","nodeType":"ElementaryTypeName","src":"35187:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":10748,"nodeType":"ArrayTypeName","src":"35187:8:24","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"35186:24:24"},"scope":10964,"src":"35077:2085:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10774,"nodeType":"Block","src":"37436:1242:24","statements":[{"AST":{"nativeSrc":"37498:1174:24","nodeType":"YulBlock","src":"37498:1174:24","statements":[{"nativeSrc":"37512:18:24","nodeType":"YulVariableDeclaration","src":"37512:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"37525:4:24","nodeType":"YulLiteral","src":"37525:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"37521:3:24","nodeType":"YulIdentifier","src":"37521:3:24"},"nativeSrc":"37521:9:24","nodeType":"YulFunctionCall","src":"37521:9:24"},"variables":[{"name":"w","nativeSrc":"37516:1:24","nodeType":"YulTypedName","src":"37516:1:24","type":""}]},{"nativeSrc":"37543:21:24","nodeType":"YulAssignment","src":"37543:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"37559:4:24","nodeType":"YulLiteral","src":"37559:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37553:5:24","nodeType":"YulIdentifier","src":"37553:5:24"},"nativeSrc":"37553:11:24","nodeType":"YulFunctionCall","src":"37553:11:24"},"variableNames":[{"name":"result","nativeSrc":"37543:6:24","nodeType":"YulIdentifier","src":"37543:6:24"}]},{"nativeSrc":"37577:23:24","nodeType":"YulVariableDeclaration","src":"37577:23:24","value":{"arguments":[{"name":"a","nativeSrc":"37598:1:24","nodeType":"YulIdentifier","src":"37598:1:24"}],"functionName":{"name":"mload","nativeSrc":"37592:5:24","nodeType":"YulIdentifier","src":"37592:5:24"},"nativeSrc":"37592:8:24","nodeType":"YulFunctionCall","src":"37592:8:24"},"variables":[{"name":"aLength","nativeSrc":"37581:7:24","nodeType":"YulTypedName","src":"37581:7:24","type":""}]},{"body":{"nativeSrc":"37717:161:24","nodeType":"YulBlock","src":"37717:161:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37746:6:24","nodeType":"YulIdentifier","src":"37746:6:24"},{"name":"o","nativeSrc":"37754:1:24","nodeType":"YulIdentifier","src":"37754:1:24"}],"functionName":{"name":"add","nativeSrc":"37742:3:24","nodeType":"YulIdentifier","src":"37742:3:24"},"nativeSrc":"37742:14:24","nodeType":"YulFunctionCall","src":"37742:14:24"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"37768:1:24","nodeType":"YulIdentifier","src":"37768:1:24"},{"name":"o","nativeSrc":"37771:1:24","nodeType":"YulIdentifier","src":"37771:1:24"}],"functionName":{"name":"add","nativeSrc":"37764:3:24","nodeType":"YulIdentifier","src":"37764:3:24"},"nativeSrc":"37764:9:24","nodeType":"YulFunctionCall","src":"37764:9:24"}],"functionName":{"name":"mload","nativeSrc":"37758:5:24","nodeType":"YulIdentifier","src":"37758:5:24"},"nativeSrc":"37758:16:24","nodeType":"YulFunctionCall","src":"37758:16:24"}],"functionName":{"name":"mstore","nativeSrc":"37735:6:24","nodeType":"YulIdentifier","src":"37735:6:24"},"nativeSrc":"37735:40:24","nodeType":"YulFunctionCall","src":"37735:40:24"},"nativeSrc":"37735:40:24","nodeType":"YulExpressionStatement","src":"37735:40:24"},{"nativeSrc":"37792:14:24","nodeType":"YulAssignment","src":"37792:14:24","value":{"arguments":[{"name":"o","nativeSrc":"37801:1:24","nodeType":"YulIdentifier","src":"37801:1:24"},{"name":"w","nativeSrc":"37804:1:24","nodeType":"YulIdentifier","src":"37804:1:24"}],"functionName":{"name":"add","nativeSrc":"37797:3:24","nodeType":"YulIdentifier","src":"37797:3:24"},"nativeSrc":"37797:9:24","nodeType":"YulFunctionCall","src":"37797:9:24"},"variableNames":[{"name":"o","nativeSrc":"37792:1:24","nodeType":"YulIdentifier","src":"37792:1:24"}]},{"body":{"nativeSrc":"37855:9:24","nodeType":"YulBlock","src":"37855:9:24","statements":[{"nativeSrc":"37857:5:24","nodeType":"YulBreak","src":"37857:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"37852:1:24","nodeType":"YulIdentifier","src":"37852:1:24"}],"functionName":{"name":"iszero","nativeSrc":"37845:6:24","nodeType":"YulIdentifier","src":"37845:6:24"},"nativeSrc":"37845:9:24","nodeType":"YulFunctionCall","src":"37845:9:24"},"nativeSrc":"37842:22:24","nodeType":"YulIf","src":"37842:22:24"}]},"condition":{"kind":"number","nativeSrc":"37712:1:24","nodeType":"YulLiteral","src":"37712:1:24","type":"","value":"1"},"nativeSrc":"37668:210:24","nodeType":"YulForLoop","post":{"nativeSrc":"37714:2:24","nodeType":"YulBlock","src":"37714:2:24","statements":[]},"pre":{"nativeSrc":"37672:39:24","nodeType":"YulBlock","src":"37672:39:24","statements":[{"nativeSrc":"37674:35:24","nodeType":"YulVariableDeclaration","src":"37674:35:24","value":{"arguments":[{"arguments":[{"name":"aLength","nativeSrc":"37691:7:24","nodeType":"YulIdentifier","src":"37691:7:24"},{"kind":"number","nativeSrc":"37700:4:24","nodeType":"YulLiteral","src":"37700:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37687:3:24","nodeType":"YulIdentifier","src":"37687:3:24"},"nativeSrc":"37687:18:24","nodeType":"YulFunctionCall","src":"37687:18:24"},{"name":"w","nativeSrc":"37707:1:24","nodeType":"YulIdentifier","src":"37707:1:24"}],"functionName":{"name":"and","nativeSrc":"37683:3:24","nodeType":"YulIdentifier","src":"37683:3:24"},"nativeSrc":"37683:26:24","nodeType":"YulFunctionCall","src":"37683:26:24"},"variables":[{"name":"o","nativeSrc":"37678:1:24","nodeType":"YulTypedName","src":"37678:1:24","type":""}]}]},"src":"37668:210:24"},{"nativeSrc":"37891:23:24","nodeType":"YulVariableDeclaration","src":"37891:23:24","value":{"arguments":[{"name":"b","nativeSrc":"37912:1:24","nodeType":"YulIdentifier","src":"37912:1:24"}],"functionName":{"name":"mload","nativeSrc":"37906:5:24","nodeType":"YulIdentifier","src":"37906:5:24"},"nativeSrc":"37906:8:24","nodeType":"YulFunctionCall","src":"37906:8:24"},"variables":[{"name":"bLength","nativeSrc":"37895:7:24","nodeType":"YulTypedName","src":"37895:7:24","type":""}]},{"nativeSrc":"37927:34:24","nodeType":"YulVariableDeclaration","src":"37927:34:24","value":{"arguments":[{"name":"result","nativeSrc":"37945:6:24","nodeType":"YulIdentifier","src":"37945:6:24"},{"name":"aLength","nativeSrc":"37953:7:24","nodeType":"YulIdentifier","src":"37953:7:24"}],"functionName":{"name":"add","nativeSrc":"37941:3:24","nodeType":"YulIdentifier","src":"37941:3:24"},"nativeSrc":"37941:20:24","nodeType":"YulFunctionCall","src":"37941:20:24"},"variables":[{"name":"output","nativeSrc":"37931:6:24","nodeType":"YulTypedName","src":"37931:6:24","type":""}]},{"body":{"nativeSrc":"38078:161:24","nodeType":"YulBlock","src":"38078:161:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nativeSrc":"38107:6:24","nodeType":"YulIdentifier","src":"38107:6:24"},{"name":"o","nativeSrc":"38115:1:24","nodeType":"YulIdentifier","src":"38115:1:24"}],"functionName":{"name":"add","nativeSrc":"38103:3:24","nodeType":"YulIdentifier","src":"38103:3:24"},"nativeSrc":"38103:14:24","nodeType":"YulFunctionCall","src":"38103:14:24"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"38129:1:24","nodeType":"YulIdentifier","src":"38129:1:24"},{"name":"o","nativeSrc":"38132:1:24","nodeType":"YulIdentifier","src":"38132:1:24"}],"functionName":{"name":"add","nativeSrc":"38125:3:24","nodeType":"YulIdentifier","src":"38125:3:24"},"nativeSrc":"38125:9:24","nodeType":"YulFunctionCall","src":"38125:9:24"}],"functionName":{"name":"mload","nativeSrc":"38119:5:24","nodeType":"YulIdentifier","src":"38119:5:24"},"nativeSrc":"38119:16:24","nodeType":"YulFunctionCall","src":"38119:16:24"}],"functionName":{"name":"mstore","nativeSrc":"38096:6:24","nodeType":"YulIdentifier","src":"38096:6:24"},"nativeSrc":"38096:40:24","nodeType":"YulFunctionCall","src":"38096:40:24"},"nativeSrc":"38096:40:24","nodeType":"YulExpressionStatement","src":"38096:40:24"},{"nativeSrc":"38153:14:24","nodeType":"YulAssignment","src":"38153:14:24","value":{"arguments":[{"name":"o","nativeSrc":"38162:1:24","nodeType":"YulIdentifier","src":"38162:1:24"},{"name":"w","nativeSrc":"38165:1:24","nodeType":"YulIdentifier","src":"38165:1:24"}],"functionName":{"name":"add","nativeSrc":"38158:3:24","nodeType":"YulIdentifier","src":"38158:3:24"},"nativeSrc":"38158:9:24","nodeType":"YulFunctionCall","src":"38158:9:24"},"variableNames":[{"name":"o","nativeSrc":"38153:1:24","nodeType":"YulIdentifier","src":"38153:1:24"}]},{"body":{"nativeSrc":"38216:9:24","nodeType":"YulBlock","src":"38216:9:24","statements":[{"nativeSrc":"38218:5:24","nodeType":"YulBreak","src":"38218:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"38213:1:24","nodeType":"YulIdentifier","src":"38213:1:24"}],"functionName":{"name":"iszero","nativeSrc":"38206:6:24","nodeType":"YulIdentifier","src":"38206:6:24"},"nativeSrc":"38206:9:24","nodeType":"YulFunctionCall","src":"38206:9:24"},"nativeSrc":"38203:22:24","nodeType":"YulIf","src":"38203:22:24"}]},"condition":{"kind":"number","nativeSrc":"38073:1:24","nodeType":"YulLiteral","src":"38073:1:24","type":"","value":"1"},"nativeSrc":"38029:210:24","nodeType":"YulForLoop","post":{"nativeSrc":"38075:2:24","nodeType":"YulBlock","src":"38075:2:24","statements":[]},"pre":{"nativeSrc":"38033:39:24","nodeType":"YulBlock","src":"38033:39:24","statements":[{"nativeSrc":"38035:35:24","nodeType":"YulVariableDeclaration","src":"38035:35:24","value":{"arguments":[{"arguments":[{"name":"bLength","nativeSrc":"38052:7:24","nodeType":"YulIdentifier","src":"38052:7:24"},{"kind":"number","nativeSrc":"38061:4:24","nodeType":"YulLiteral","src":"38061:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38048:3:24","nodeType":"YulIdentifier","src":"38048:3:24"},"nativeSrc":"38048:18:24","nodeType":"YulFunctionCall","src":"38048:18:24"},{"name":"w","nativeSrc":"38068:1:24","nodeType":"YulIdentifier","src":"38068:1:24"}],"functionName":{"name":"and","nativeSrc":"38044:3:24","nodeType":"YulIdentifier","src":"38044:3:24"},"nativeSrc":"38044:26:24","nodeType":"YulFunctionCall","src":"38044:26:24"},"variables":[{"name":"o","nativeSrc":"38039:1:24","nodeType":"YulTypedName","src":"38039:1:24","type":""}]}]},"src":"38029:210:24"},{"nativeSrc":"38252:40:24","nodeType":"YulVariableDeclaration","src":"38252:40:24","value":{"arguments":[{"name":"aLength","nativeSrc":"38275:7:24","nodeType":"YulIdentifier","src":"38275:7:24"},{"name":"bLength","nativeSrc":"38284:7:24","nodeType":"YulIdentifier","src":"38284:7:24"}],"functionName":{"name":"add","nativeSrc":"38271:3:24","nodeType":"YulIdentifier","src":"38271:3:24"},"nativeSrc":"38271:21:24","nodeType":"YulFunctionCall","src":"38271:21:24"},"variables":[{"name":"totalLength","nativeSrc":"38256:11:24","nodeType":"YulTypedName","src":"38256:11:24","type":""}]},{"nativeSrc":"38305:47:24","nodeType":"YulVariableDeclaration","src":"38305:47:24","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38325:6:24","nodeType":"YulIdentifier","src":"38325:6:24"},{"kind":"number","nativeSrc":"38333:4:24","nodeType":"YulLiteral","src":"38333:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38321:3:24","nodeType":"YulIdentifier","src":"38321:3:24"},"nativeSrc":"38321:17:24","nodeType":"YulFunctionCall","src":"38321:17:24"},{"name":"totalLength","nativeSrc":"38340:11:24","nodeType":"YulIdentifier","src":"38340:11:24"}],"functionName":{"name":"add","nativeSrc":"38317:3:24","nodeType":"YulIdentifier","src":"38317:3:24"},"nativeSrc":"38317:35:24","nodeType":"YulFunctionCall","src":"38317:35:24"},"variables":[{"name":"last","nativeSrc":"38309:4:24","nodeType":"YulTypedName","src":"38309:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"38422:4:24","nodeType":"YulIdentifier","src":"38422:4:24"},{"kind":"number","nativeSrc":"38428:1:24","nodeType":"YulLiteral","src":"38428:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38415:6:24","nodeType":"YulIdentifier","src":"38415:6:24"},"nativeSrc":"38415:15:24","nodeType":"YulFunctionCall","src":"38415:15:24"},"nativeSrc":"38415:15:24","nodeType":"YulExpressionStatement","src":"38415:15:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"38484:6:24","nodeType":"YulIdentifier","src":"38484:6:24"},{"name":"totalLength","nativeSrc":"38492:11:24","nodeType":"YulIdentifier","src":"38492:11:24"}],"functionName":{"name":"mstore","nativeSrc":"38477:6:24","nodeType":"YulIdentifier","src":"38477:6:24"},"nativeSrc":"38477:27:24","nodeType":"YulFunctionCall","src":"38477:27:24"},"nativeSrc":"38477:27:24","nodeType":"YulExpressionStatement","src":"38477:27:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38632:4:24","nodeType":"YulLiteral","src":"38632:4:24","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"last","nativeSrc":"38646:4:24","nodeType":"YulIdentifier","src":"38646:4:24"},{"kind":"number","nativeSrc":"38652:4:24","nodeType":"YulLiteral","src":"38652:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"38642:3:24","nodeType":"YulIdentifier","src":"38642:3:24"},"nativeSrc":"38642:15:24","nodeType":"YulFunctionCall","src":"38642:15:24"},{"name":"w","nativeSrc":"38659:1:24","nodeType":"YulIdentifier","src":"38659:1:24"}],"functionName":{"name":"and","nativeSrc":"38638:3:24","nodeType":"YulIdentifier","src":"38638:3:24"},"nativeSrc":"38638:23:24","nodeType":"YulFunctionCall","src":"38638:23:24"}],"functionName":{"name":"mstore","nativeSrc":"38625:6:24","nodeType":"YulIdentifier","src":"38625:6:24"},"nativeSrc":"38625:37:24","nodeType":"YulFunctionCall","src":"38625:37:24"},"nativeSrc":"38625:37:24","nodeType":"YulExpressionStatement","src":"38625:37:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10766,"isOffset":false,"isSlot":false,"src":"37598:1:24","valueSize":1},{"declaration":10766,"isOffset":false,"isSlot":false,"src":"37768:1:24","valueSize":1},{"declaration":10768,"isOffset":false,"isSlot":false,"src":"37912:1:24","valueSize":1},{"declaration":10768,"isOffset":false,"isSlot":false,"src":"38129:1:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"37543:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"37746:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"37945:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"38325:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"38484:6:24","valueSize":1}],"id":10773,"nodeType":"InlineAssembly","src":"37489:1183:24"}]},"documentation":{"id":10764,"nodeType":"StructuredDocumentation","src":"37168:140:24","text":"@dev Returns a concatenated string of `a` and `b`.\n Cheaper than `string.concat()` and does not de-align the free memory pointer."},"id":10775,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"37322:6:24","nodeType":"FunctionDefinition","parameters":{"id":10769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10766,"mutability":"mutable","name":"a","nameLocation":"37343:1:24","nodeType":"VariableDeclaration","scope":10775,"src":"37329:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10765,"name":"string","nodeType":"ElementaryTypeName","src":"37329:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10768,"mutability":"mutable","name":"b","nameLocation":"37360:1:24","nodeType":"VariableDeclaration","scope":10775,"src":"37346:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10767,"name":"string","nodeType":"ElementaryTypeName","src":"37346:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37328:34:24"},"returnParameters":{"id":10772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10771,"mutability":"mutable","name":"result","nameLocation":"37424:6:24","nodeType":"VariableDeclaration","scope":10775,"src":"37410:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10770,"name":"string","nodeType":"ElementaryTypeName","src":"37410:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37409:22:24"},"scope":10964,"src":"37313:1365:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10786,"nodeType":"Block","src":"38962:933:24","statements":[{"AST":{"nativeSrc":"39024:865:24","nodeType":"YulBlock","src":"39024:865:24","statements":[{"nativeSrc":"39038:28:24","nodeType":"YulVariableDeclaration","src":"39038:28:24","value":{"arguments":[{"name":"subject","nativeSrc":"39058:7:24","nodeType":"YulIdentifier","src":"39058:7:24"}],"functionName":{"name":"mload","nativeSrc":"39052:5:24","nodeType":"YulIdentifier","src":"39052:5:24"},"nativeSrc":"39052:14:24","nodeType":"YulFunctionCall","src":"39052:14:24"},"variables":[{"name":"length","nativeSrc":"39042:6:24","nodeType":"YulTypedName","src":"39042:6:24","type":""}]},{"body":{"nativeSrc":"39089:790:24","nodeType":"YulBlock","src":"39089:790:24","statements":[{"nativeSrc":"39107:32:24","nodeType":"YulAssignment","src":"39107:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39127:4:24","nodeType":"YulLiteral","src":"39127:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"39121:5:24","nodeType":"YulIdentifier","src":"39121:5:24"},"nativeSrc":"39121:11:24","nodeType":"YulFunctionCall","src":"39121:11:24"},{"kind":"number","nativeSrc":"39134:4:24","nodeType":"YulLiteral","src":"39134:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39117:3:24","nodeType":"YulIdentifier","src":"39117:3:24"},"nativeSrc":"39117:22:24","nodeType":"YulFunctionCall","src":"39117:22:24"},"variableNames":[{"name":"result","nativeSrc":"39107:6:24","nodeType":"YulIdentifier","src":"39107:6:24"}]},{"nativeSrc":"39156:26:24","nodeType":"YulAssignment","src":"39156:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"39171:7:24","nodeType":"YulIdentifier","src":"39171:7:24"},{"kind":"number","nativeSrc":"39180:1:24","nodeType":"YulLiteral","src":"39180:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39167:3:24","nodeType":"YulIdentifier","src":"39167:3:24"},"nativeSrc":"39167:15:24","nodeType":"YulFunctionCall","src":"39167:15:24"},"variableNames":[{"name":"subject","nativeSrc":"39156:7:24","nodeType":"YulIdentifier","src":"39156:7:24"}]},{"nativeSrc":"39199:53:24","nodeType":"YulVariableDeclaration","src":"39199:53:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39220:2:24","nodeType":"YulLiteral","src":"39220:2:24","type":"","value":"70"},{"arguments":[{"kind":"number","nativeSrc":"39228:1:24","nodeType":"YulLiteral","src":"39228:1:24","type":"","value":"5"},{"name":"toUpper","nativeSrc":"39231:7:24","nodeType":"YulIdentifier","src":"39231:7:24"}],"functionName":{"name":"shl","nativeSrc":"39224:3:24","nodeType":"YulIdentifier","src":"39224:3:24"},"nativeSrc":"39224:15:24","nodeType":"YulFunctionCall","src":"39224:15:24"}],"functionName":{"name":"add","nativeSrc":"39216:3:24","nodeType":"YulIdentifier","src":"39216:3:24"},"nativeSrc":"39216:24:24","nodeType":"YulFunctionCall","src":"39216:24:24"},{"kind":"number","nativeSrc":"39242:9:24","nodeType":"YulLiteral","src":"39242:9:24","type":"","value":"0x3ffffff"}],"functionName":{"name":"shl","nativeSrc":"39212:3:24","nodeType":"YulIdentifier","src":"39212:3:24"},"nativeSrc":"39212:40:24","nodeType":"YulFunctionCall","src":"39212:40:24"},"variables":[{"name":"flags","nativeSrc":"39203:5:24","nodeType":"YulTypedName","src":"39203:5:24","type":""}]},{"nativeSrc":"39269:15:24","nodeType":"YulVariableDeclaration","src":"39269:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"39282:1:24","nodeType":"YulLiteral","src":"39282:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"39278:3:24","nodeType":"YulIdentifier","src":"39278:3:24"},"nativeSrc":"39278:6:24","nodeType":"YulFunctionCall","src":"39278:6:24"},"variables":[{"name":"w","nativeSrc":"39273:1:24","nodeType":"YulTypedName","src":"39273:1:24","type":""}]},{"body":{"nativeSrc":"39330:238:24","nodeType":"YulBlock","src":"39330:238:24","statements":[{"nativeSrc":"39352:14:24","nodeType":"YulAssignment","src":"39352:14:24","value":{"arguments":[{"name":"o","nativeSrc":"39361:1:24","nodeType":"YulIdentifier","src":"39361:1:24"},{"name":"w","nativeSrc":"39364:1:24","nodeType":"YulIdentifier","src":"39364:1:24"}],"functionName":{"name":"add","nativeSrc":"39357:3:24","nodeType":"YulIdentifier","src":"39357:3:24"},"nativeSrc":"39357:9:24","nodeType":"YulFunctionCall","src":"39357:9:24"},"variableNames":[{"name":"o","nativeSrc":"39352:1:24","nodeType":"YulIdentifier","src":"39352:1:24"}]},{"nativeSrc":"39387:42:24","nodeType":"YulVariableDeclaration","src":"39387:42:24","value":{"arguments":[{"kind":"number","nativeSrc":"39400:4:24","nodeType":"YulLiteral","src":"39400:4:24","type":"","value":"0xff"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"39416:7:24","nodeType":"YulIdentifier","src":"39416:7:24"},{"name":"o","nativeSrc":"39425:1:24","nodeType":"YulIdentifier","src":"39425:1:24"}],"functionName":{"name":"add","nativeSrc":"39412:3:24","nodeType":"YulIdentifier","src":"39412:3:24"},"nativeSrc":"39412:15:24","nodeType":"YulFunctionCall","src":"39412:15:24"}],"functionName":{"name":"mload","nativeSrc":"39406:5:24","nodeType":"YulIdentifier","src":"39406:5:24"},"nativeSrc":"39406:22:24","nodeType":"YulFunctionCall","src":"39406:22:24"}],"functionName":{"name":"and","nativeSrc":"39396:3:24","nodeType":"YulIdentifier","src":"39396:3:24"},"nativeSrc":"39396:33:24","nodeType":"YulFunctionCall","src":"39396:33:24"},"variables":[{"name":"b","nativeSrc":"39391:1:24","nodeType":"YulTypedName","src":"39391:1:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"39462:6:24","nodeType":"YulIdentifier","src":"39462:6:24"},{"name":"o","nativeSrc":"39470:1:24","nodeType":"YulIdentifier","src":"39470:1:24"}],"functionName":{"name":"add","nativeSrc":"39458:3:24","nodeType":"YulIdentifier","src":"39458:3:24"},"nativeSrc":"39458:14:24","nodeType":"YulFunctionCall","src":"39458:14:24"},{"arguments":[{"name":"b","nativeSrc":"39478:1:24","nodeType":"YulIdentifier","src":"39478:1:24"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"39489:1:24","nodeType":"YulIdentifier","src":"39489:1:24"},{"name":"flags","nativeSrc":"39492:5:24","nodeType":"YulIdentifier","src":"39492:5:24"}],"functionName":{"name":"shr","nativeSrc":"39485:3:24","nodeType":"YulIdentifier","src":"39485:3:24"},"nativeSrc":"39485:13:24","nodeType":"YulFunctionCall","src":"39485:13:24"},{"kind":"number","nativeSrc":"39500:4:24","nodeType":"YulLiteral","src":"39500:4:24","type":"","value":"0x20"}],"functionName":{"name":"and","nativeSrc":"39481:3:24","nodeType":"YulIdentifier","src":"39481:3:24"},"nativeSrc":"39481:24:24","nodeType":"YulFunctionCall","src":"39481:24:24"}],"functionName":{"name":"xor","nativeSrc":"39474:3:24","nodeType":"YulIdentifier","src":"39474:3:24"},"nativeSrc":"39474:32:24","nodeType":"YulFunctionCall","src":"39474:32:24"}],"functionName":{"name":"mstore8","nativeSrc":"39450:7:24","nodeType":"YulIdentifier","src":"39450:7:24"},"nativeSrc":"39450:57:24","nodeType":"YulFunctionCall","src":"39450:57:24"},"nativeSrc":"39450:57:24","nodeType":"YulExpressionStatement","src":"39450:57:24"},{"body":{"nativeSrc":"39541:9:24","nodeType":"YulBlock","src":"39541:9:24","statements":[{"nativeSrc":"39543:5:24","nodeType":"YulBreak","src":"39543:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"39538:1:24","nodeType":"YulIdentifier","src":"39538:1:24"}],"functionName":{"name":"iszero","nativeSrc":"39531:6:24","nodeType":"YulIdentifier","src":"39531:6:24"},"nativeSrc":"39531:9:24","nodeType":"YulFunctionCall","src":"39531:9:24"},"nativeSrc":"39528:22:24","nodeType":"YulIf","src":"39528:22:24"}]},"condition":{"kind":"number","nativeSrc":"39325:1:24","nodeType":"YulLiteral","src":"39325:1:24","type":"","value":"1"},"nativeSrc":"39301:267:24","nodeType":"YulForLoop","post":{"nativeSrc":"39327:2:24","nodeType":"YulBlock","src":"39327:2:24","statements":[]},"pre":{"nativeSrc":"39305:19:24","nodeType":"YulBlock","src":"39305:19:24","statements":[{"nativeSrc":"39307:15:24","nodeType":"YulVariableDeclaration","src":"39307:15:24","value":{"name":"length","nativeSrc":"39316:6:24","nodeType":"YulIdentifier","src":"39316:6:24"},"variables":[{"name":"o","nativeSrc":"39311:1:24","nodeType":"YulTypedName","src":"39311:1:24","type":""}]}]},"src":"39301:267:24"},{"nativeSrc":"39585:21:24","nodeType":"YulAssignment","src":"39585:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"39601:4:24","nodeType":"YulLiteral","src":"39601:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"39595:5:24","nodeType":"YulIdentifier","src":"39595:5:24"},"nativeSrc":"39595:11:24","nodeType":"YulFunctionCall","src":"39595:11:24"},"variableNames":[{"name":"result","nativeSrc":"39585:6:24","nodeType":"YulIdentifier","src":"39585:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"39630:6:24","nodeType":"YulIdentifier","src":"39630:6:24"},{"name":"length","nativeSrc":"39638:6:24","nodeType":"YulIdentifier","src":"39638:6:24"}],"functionName":{"name":"mstore","nativeSrc":"39623:6:24","nodeType":"YulIdentifier","src":"39623:6:24"},"nativeSrc":"39623:22:24","nodeType":"YulFunctionCall","src":"39623:22:24"},"nativeSrc":"39623:22:24","nodeType":"YulExpressionStatement","src":"39623:22:24"},{"nativeSrc":"39683:42:24","nodeType":"YulVariableDeclaration","src":"39683:42:24","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"39703:6:24","nodeType":"YulIdentifier","src":"39703:6:24"},{"kind":"number","nativeSrc":"39711:4:24","nodeType":"YulLiteral","src":"39711:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39699:3:24","nodeType":"YulIdentifier","src":"39699:3:24"},"nativeSrc":"39699:17:24","nodeType":"YulFunctionCall","src":"39699:17:24"},{"name":"length","nativeSrc":"39718:6:24","nodeType":"YulIdentifier","src":"39718:6:24"}],"functionName":{"name":"add","nativeSrc":"39695:3:24","nodeType":"YulIdentifier","src":"39695:3:24"},"nativeSrc":"39695:30:24","nodeType":"YulFunctionCall","src":"39695:30:24"},"variables":[{"name":"last","nativeSrc":"39687:4:24","nodeType":"YulTypedName","src":"39687:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"39749:4:24","nodeType":"YulIdentifier","src":"39749:4:24"},{"kind":"number","nativeSrc":"39755:1:24","nodeType":"YulLiteral","src":"39755:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"39742:6:24","nodeType":"YulIdentifier","src":"39742:6:24"},"nativeSrc":"39742:15:24","nodeType":"YulFunctionCall","src":"39742:15:24"},"nativeSrc":"39742:15:24","nodeType":"YulExpressionStatement","src":"39742:15:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39819:4:24","nodeType":"YulLiteral","src":"39819:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"39829:4:24","nodeType":"YulIdentifier","src":"39829:4:24"},{"kind":"number","nativeSrc":"39835:4:24","nodeType":"YulLiteral","src":"39835:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39825:3:24","nodeType":"YulIdentifier","src":"39825:3:24"},"nativeSrc":"39825:15:24","nodeType":"YulFunctionCall","src":"39825:15:24"}],"functionName":{"name":"mstore","nativeSrc":"39812:6:24","nodeType":"YulIdentifier","src":"39812:6:24"},"nativeSrc":"39812:29:24","nodeType":"YulFunctionCall","src":"39812:29:24"},"nativeSrc":"39812:29:24","nodeType":"YulExpressionStatement","src":"39812:29:24"}]},"condition":{"name":"length","nativeSrc":"39082:6:24","nodeType":"YulIdentifier","src":"39082:6:24"},"nativeSrc":"39079:800:24","nodeType":"YulIf","src":"39079:800:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39107:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39462:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39585:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39630:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39703:6:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39058:7:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39156:7:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39171:7:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39416:7:24","valueSize":1},{"declaration":10780,"isOffset":false,"isSlot":false,"src":"39231:7:24","valueSize":1}],"id":10785,"nodeType":"InlineAssembly","src":"39015:874:24"}]},"documentation":{"id":10776,"nodeType":"StructuredDocumentation","src":"38684:147:24","text":"@dev Returns a copy of the string in either lowercase or UPPERCASE.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10787,"implemented":true,"kind":"function","modifiers":[],"name":"toCase","nameLocation":"38845:6:24","nodeType":"FunctionDefinition","parameters":{"id":10781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10778,"mutability":"mutable","name":"subject","nameLocation":"38866:7:24","nodeType":"VariableDeclaration","scope":10787,"src":"38852:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10777,"name":"string","nodeType":"ElementaryTypeName","src":"38852:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10780,"mutability":"mutable","name":"toUpper","nameLocation":"38880:7:24","nodeType":"VariableDeclaration","scope":10787,"src":"38875:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10779,"name":"bool","nodeType":"ElementaryTypeName","src":"38875:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38851:37:24"},"returnParameters":{"id":10784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10783,"mutability":"mutable","name":"result","nameLocation":"38950:6:24","nodeType":"VariableDeclaration","scope":10787,"src":"38936:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10782,"name":"string","nodeType":"ElementaryTypeName","src":"38936:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38935:22:24"},"scope":10964,"src":"38836:1059:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10796,"nodeType":"Block","src":"40109:377:24","statements":[{"AST":{"nativeSrc":"40171:309:24","nodeType":"YulBlock","src":"40171:309:24","statements":[{"nativeSrc":"40185:21:24","nodeType":"YulAssignment","src":"40185:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"40201:4:24","nodeType":"YulLiteral","src":"40201:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"40195:5:24","nodeType":"YulIdentifier","src":"40195:5:24"},"nativeSrc":"40195:11:24","nodeType":"YulFunctionCall","src":"40195:11:24"},"variableNames":[{"name":"result","nativeSrc":"40185:6:24","nodeType":"YulIdentifier","src":"40185:6:24"}]},{"nativeSrc":"40219:10:24","nodeType":"YulVariableDeclaration","src":"40219:10:24","value":{"kind":"number","nativeSrc":"40228:1:24","nodeType":"YulLiteral","src":"40228:1:24","type":"","value":"0"},"variables":[{"name":"n","nativeSrc":"40223:1:24","nodeType":"YulTypedName","src":"40223:1:24","type":""}]},{"body":{"nativeSrc":"40279:2:24","nodeType":"YulBlock","src":"40279:2:24","statements":[]},"condition":{"arguments":[{"name":"n","nativeSrc":"40254:1:24","nodeType":"YulIdentifier","src":"40254:1:24"},{"name":"s","nativeSrc":"40257:1:24","nodeType":"YulIdentifier","src":"40257:1:24"}],"functionName":{"name":"byte","nativeSrc":"40249:4:24","nodeType":"YulIdentifier","src":"40249:4:24"},"nativeSrc":"40249:10:24","nodeType":"YulFunctionCall","src":"40249:10:24"},"nativeSrc":"40242:39:24","nodeType":"YulForLoop","post":{"nativeSrc":"40260:18:24","nodeType":"YulBlock","src":"40260:18:24","statements":[{"nativeSrc":"40262:14:24","nodeType":"YulAssignment","src":"40262:14:24","value":{"arguments":[{"name":"n","nativeSrc":"40271:1:24","nodeType":"YulIdentifier","src":"40271:1:24"},{"kind":"number","nativeSrc":"40274:1:24","nodeType":"YulLiteral","src":"40274:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"40267:3:24","nodeType":"YulIdentifier","src":"40267:3:24"},"nativeSrc":"40267:9:24","nodeType":"YulFunctionCall","src":"40267:9:24"},"variableNames":[{"name":"n","nativeSrc":"40262:1:24","nodeType":"YulIdentifier","src":"40262:1:24"}]}]},"pre":{"nativeSrc":"40246:2:24","nodeType":"YulBlock","src":"40246:2:24","statements":[]},"src":"40242:39:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"40319:6:24","nodeType":"YulIdentifier","src":"40319:6:24"},{"name":"n","nativeSrc":"40327:1:24","nodeType":"YulIdentifier","src":"40327:1:24"}],"functionName":{"name":"mstore","nativeSrc":"40312:6:24","nodeType":"YulIdentifier","src":"40312:6:24"},"nativeSrc":"40312:17:24","nodeType":"YulFunctionCall","src":"40312:17:24"},"nativeSrc":"40312:17:24","nodeType":"YulExpressionStatement","src":"40312:17:24"},{"nativeSrc":"40342:26:24","nodeType":"YulVariableDeclaration","src":"40342:26:24","value":{"arguments":[{"name":"result","nativeSrc":"40355:6:24","nodeType":"YulIdentifier","src":"40355:6:24"},{"kind":"number","nativeSrc":"40363:4:24","nodeType":"YulLiteral","src":"40363:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"40351:3:24","nodeType":"YulIdentifier","src":"40351:3:24"},"nativeSrc":"40351:17:24","nodeType":"YulFunctionCall","src":"40351:17:24"},"variables":[{"name":"o","nativeSrc":"40346:1:24","nodeType":"YulTypedName","src":"40346:1:24","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"40388:1:24","nodeType":"YulIdentifier","src":"40388:1:24"},{"name":"s","nativeSrc":"40391:1:24","nodeType":"YulIdentifier","src":"40391:1:24"}],"functionName":{"name":"mstore","nativeSrc":"40381:6:24","nodeType":"YulIdentifier","src":"40381:6:24"},"nativeSrc":"40381:12:24","nodeType":"YulFunctionCall","src":"40381:12:24"},"nativeSrc":"40381:12:24","nodeType":"YulExpressionStatement","src":"40381:12:24"},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"40417:1:24","nodeType":"YulIdentifier","src":"40417:1:24"},{"name":"n","nativeSrc":"40420:1:24","nodeType":"YulIdentifier","src":"40420:1:24"}],"functionName":{"name":"add","nativeSrc":"40413:3:24","nodeType":"YulIdentifier","src":"40413:3:24"},"nativeSrc":"40413:9:24","nodeType":"YulFunctionCall","src":"40413:9:24"},{"kind":"number","nativeSrc":"40424:1:24","nodeType":"YulLiteral","src":"40424:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"40406:6:24","nodeType":"YulIdentifier","src":"40406:6:24"},"nativeSrc":"40406:20:24","nodeType":"YulFunctionCall","src":"40406:20:24"},"nativeSrc":"40406:20:24","nodeType":"YulExpressionStatement","src":"40406:20:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40446:4:24","nodeType":"YulLiteral","src":"40446:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"40456:6:24","nodeType":"YulIdentifier","src":"40456:6:24"},{"kind":"number","nativeSrc":"40464:4:24","nodeType":"YulLiteral","src":"40464:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"40452:3:24","nodeType":"YulIdentifier","src":"40452:3:24"},"nativeSrc":"40452:17:24","nodeType":"YulFunctionCall","src":"40452:17:24"}],"functionName":{"name":"mstore","nativeSrc":"40439:6:24","nodeType":"YulIdentifier","src":"40439:6:24"},"nativeSrc":"40439:31:24","nodeType":"YulFunctionCall","src":"40439:31:24"},"nativeSrc":"40439:31:24","nodeType":"YulExpressionStatement","src":"40439:31:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40185:6:24","valueSize":1},{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40319:6:24","valueSize":1},{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40355:6:24","valueSize":1},{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40456:6:24","valueSize":1},{"declaration":10790,"isOffset":false,"isSlot":false,"src":"40257:1:24","valueSize":1},{"declaration":10790,"isOffset":false,"isSlot":false,"src":"40391:1:24","valueSize":1}],"id":10795,"nodeType":"InlineAssembly","src":"40162:318:24"}]},"documentation":{"id":10788,"nodeType":"StructuredDocumentation","src":"39901:122:24","text":"@dev Returns a string from a small bytes32 string.\n `s` must be null-terminated, or behavior will be undefined."},"id":10797,"implemented":true,"kind":"function","modifiers":[],"name":"fromSmallString","nameLocation":"40037:15:24","nodeType":"FunctionDefinition","parameters":{"id":10791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10790,"mutability":"mutable","name":"s","nameLocation":"40061:1:24","nodeType":"VariableDeclaration","scope":10797,"src":"40053:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40053:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40052:11:24"},"returnParameters":{"id":10794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10793,"mutability":"mutable","name":"result","nameLocation":"40101:6:24","nodeType":"VariableDeclaration","scope":10797,"src":"40087:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10792,"name":"string","nodeType":"ElementaryTypeName","src":"40087:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40086:22:24"},"scope":10964,"src":"40028:458:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10806,"nodeType":"Block","src":"40662:259:24","statements":[{"AST":{"nativeSrc":"40724:191:24","nodeType":"YulBlock","src":"40724:191:24","statements":[{"body":{"nativeSrc":"40790:2:24","nodeType":"YulBlock","src":"40790:2:24","statements":[]},"condition":{"arguments":[{"name":"result","nativeSrc":"40750:6:24","nodeType":"YulIdentifier","src":"40750:6:24"},{"name":"s","nativeSrc":"40758:1:24","nodeType":"YulIdentifier","src":"40758:1:24"}],"functionName":{"name":"byte","nativeSrc":"40745:4:24","nodeType":"YulIdentifier","src":"40745:4:24"},"nativeSrc":"40745:15:24","nodeType":"YulFunctionCall","src":"40745:15:24"},"nativeSrc":"40738:54:24","nodeType":"YulForLoop","post":{"nativeSrc":"40761:28:24","nodeType":"YulBlock","src":"40761:28:24","statements":[{"nativeSrc":"40763:24:24","nodeType":"YulAssignment","src":"40763:24:24","value":{"arguments":[{"name":"result","nativeSrc":"40777:6:24","nodeType":"YulIdentifier","src":"40777:6:24"},{"kind":"number","nativeSrc":"40785:1:24","nodeType":"YulLiteral","src":"40785:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"40773:3:24","nodeType":"YulIdentifier","src":"40773:3:24"},"nativeSrc":"40773:14:24","nodeType":"YulFunctionCall","src":"40773:14:24"},"variableNames":[{"name":"result","nativeSrc":"40763:6:24","nodeType":"YulIdentifier","src":"40763:6:24"}]}]},"pre":{"nativeSrc":"40742:2:24","nodeType":"YulBlock","src":"40742:2:24","statements":[]},"src":"40738:54:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40830:4:24","nodeType":"YulLiteral","src":"40830:4:24","type":"","value":"0x00"},{"name":"s","nativeSrc":"40836:1:24","nodeType":"YulIdentifier","src":"40836:1:24"}],"functionName":{"name":"mstore","nativeSrc":"40823:6:24","nodeType":"YulIdentifier","src":"40823:6:24"},"nativeSrc":"40823:15:24","nodeType":"YulFunctionCall","src":"40823:15:24"},"nativeSrc":"40823:15:24","nodeType":"YulExpressionStatement","src":"40823:15:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"40858:6:24","nodeType":"YulIdentifier","src":"40858:6:24"},{"kind":"number","nativeSrc":"40866:4:24","nodeType":"YulLiteral","src":"40866:4:24","type":"","value":"0x00"}],"functionName":{"name":"mstore","nativeSrc":"40851:6:24","nodeType":"YulIdentifier","src":"40851:6:24"},"nativeSrc":"40851:20:24","nodeType":"YulFunctionCall","src":"40851:20:24"},"nativeSrc":"40851:20:24","nodeType":"YulExpressionStatement","src":"40851:20:24"},{"nativeSrc":"40884:21:24","nodeType":"YulAssignment","src":"40884:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"40900:4:24","nodeType":"YulLiteral","src":"40900:4:24","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"40894:5:24","nodeType":"YulIdentifier","src":"40894:5:24"},"nativeSrc":"40894:11:24","nodeType":"YulFunctionCall","src":"40894:11:24"},"variableNames":[{"name":"result","nativeSrc":"40884:6:24","nodeType":"YulIdentifier","src":"40884:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40750:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40763:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40777:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40858:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40884:6:24","valueSize":1},{"declaration":10800,"isOffset":false,"isSlot":false,"src":"40758:1:24","valueSize":1},{"declaration":10800,"isOffset":false,"isSlot":false,"src":"40836:1:24","valueSize":1}],"id":10805,"nodeType":"InlineAssembly","src":"40715:200:24"}]},"documentation":{"id":10798,"nodeType":"StructuredDocumentation","src":"40492:85:24","text":"@dev Returns the small string, with all bytes after the first null byte zeroized."},"id":10807,"implemented":true,"kind":"function","modifiers":[],"name":"normalizeSmallString","nameLocation":"40591:20:24","nodeType":"FunctionDefinition","parameters":{"id":10801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10800,"mutability":"mutable","name":"s","nameLocation":"40620:1:24","nodeType":"VariableDeclaration","scope":10807,"src":"40612:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40612:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40611:11:24"},"returnParameters":{"id":10804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10803,"mutability":"mutable","name":"result","nameLocation":"40654:6:24","nodeType":"VariableDeclaration","scope":10807,"src":"40646:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10802,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40646:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40645:16:24"},"scope":10964,"src":"40582:339:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10816,"nodeType":"Block","src":"41084:343:24","statements":[{"AST":{"nativeSrc":"41146:275:24","nodeType":"YulBlock","src":"41146:275:24","statements":[{"nativeSrc":"41160:18:24","nodeType":"YulAssignment","src":"41160:18:24","value":{"arguments":[{"name":"s","nativeSrc":"41176:1:24","nodeType":"YulIdentifier","src":"41176:1:24"}],"functionName":{"name":"mload","nativeSrc":"41170:5:24","nodeType":"YulIdentifier","src":"41170:5:24"},"nativeSrc":"41170:8:24","nodeType":"YulFunctionCall","src":"41170:8:24"},"variableNames":[{"name":"result","nativeSrc":"41160:6:24","nodeType":"YulIdentifier","src":"41160:6:24"}]},{"body":{"nativeSrc":"41217:120:24","nodeType":"YulBlock","src":"41217:120:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41242:4:24","nodeType":"YulLiteral","src":"41242:4:24","type":"","value":"0x00"},{"kind":"number","nativeSrc":"41248:10:24","nodeType":"YulLiteral","src":"41248:10:24","type":"","value":"0xec92f9a3"}],"functionName":{"name":"mstore","nativeSrc":"41235:6:24","nodeType":"YulIdentifier","src":"41235:6:24"},"nativeSrc":"41235:24:24","nodeType":"YulFunctionCall","src":"41235:24:24"},"nativeSrc":"41235:24:24","nodeType":"YulExpressionStatement","src":"41235:24:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41312:4:24","nodeType":"YulLiteral","src":"41312:4:24","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"41318:4:24","nodeType":"YulLiteral","src":"41318:4:24","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"41305:6:24","nodeType":"YulIdentifier","src":"41305:6:24"},"nativeSrc":"41305:18:24","nodeType":"YulFunctionCall","src":"41305:18:24"},"nativeSrc":"41305:18:24","nodeType":"YulExpressionStatement","src":"41305:18:24"}]},"condition":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"41204:6:24","nodeType":"YulIdentifier","src":"41204:6:24"},{"kind":"number","nativeSrc":"41212:2:24","nodeType":"YulLiteral","src":"41212:2:24","type":"","value":"33"}],"functionName":{"name":"lt","nativeSrc":"41201:2:24","nodeType":"YulIdentifier","src":"41201:2:24"},"nativeSrc":"41201:14:24","nodeType":"YulFunctionCall","src":"41201:14:24"}],"functionName":{"name":"iszero","nativeSrc":"41194:6:24","nodeType":"YulIdentifier","src":"41194:6:24"},"nativeSrc":"41194:22:24","nodeType":"YulFunctionCall","src":"41194:22:24"},"nativeSrc":"41191:146:24","nodeType":"YulIf","src":"41191:146:24"},{"nativeSrc":"41350:61:24","nodeType":"YulAssignment","src":"41350:61:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"41368:1:24","nodeType":"YulLiteral","src":"41368:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"41375:2:24","nodeType":"YulLiteral","src":"41375:2:24","type":"","value":"32"},{"name":"result","nativeSrc":"41379:6:24","nodeType":"YulIdentifier","src":"41379:6:24"}],"functionName":{"name":"sub","nativeSrc":"41371:3:24","nodeType":"YulIdentifier","src":"41371:3:24"},"nativeSrc":"41371:15:24","nodeType":"YulFunctionCall","src":"41371:15:24"}],"functionName":{"name":"shl","nativeSrc":"41364:3:24","nodeType":"YulIdentifier","src":"41364:3:24"},"nativeSrc":"41364:23:24","nodeType":"YulFunctionCall","src":"41364:23:24"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"41399:1:24","nodeType":"YulIdentifier","src":"41399:1:24"},{"name":"result","nativeSrc":"41402:6:24","nodeType":"YulIdentifier","src":"41402:6:24"}],"functionName":{"name":"add","nativeSrc":"41395:3:24","nodeType":"YulIdentifier","src":"41395:3:24"},"nativeSrc":"41395:14:24","nodeType":"YulFunctionCall","src":"41395:14:24"}],"functionName":{"name":"mload","nativeSrc":"41389:5:24","nodeType":"YulIdentifier","src":"41389:5:24"},"nativeSrc":"41389:21:24","nodeType":"YulFunctionCall","src":"41389:21:24"}],"functionName":{"name":"shl","nativeSrc":"41360:3:24","nodeType":"YulIdentifier","src":"41360:3:24"},"nativeSrc":"41360:51:24","nodeType":"YulFunctionCall","src":"41360:51:24"},"variableNames":[{"name":"result","nativeSrc":"41350:6:24","nodeType":"YulIdentifier","src":"41350:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41160:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41204:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41350:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41379:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41402:6:24","valueSize":1},{"declaration":10810,"isOffset":false,"isSlot":false,"src":"41176:1:24","valueSize":1},{"declaration":10810,"isOffset":false,"isSlot":false,"src":"41399:1:24","valueSize":1}],"id":10815,"nodeType":"InlineAssembly","src":"41137:284:24"}]},"documentation":{"id":10808,"nodeType":"StructuredDocumentation","src":"40927:73:24","text":"@dev Returns the string as a normalized null-terminated small string."},"id":10817,"implemented":true,"kind":"function","modifiers":[],"name":"toSmallString","nameLocation":"41014:13:24","nodeType":"FunctionDefinition","parameters":{"id":10811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10810,"mutability":"mutable","name":"s","nameLocation":"41042:1:24","nodeType":"VariableDeclaration","scope":10817,"src":"41028:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10809,"name":"string","nodeType":"ElementaryTypeName","src":"41028:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41027:17:24"},"returnParameters":{"id":10814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10813,"mutability":"mutable","name":"result","nameLocation":"41076:6:24","nodeType":"VariableDeclaration","scope":10817,"src":"41068:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41068:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41067:16:24"},"scope":10964,"src":"41005:422:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10832,"nodeType":"Block","src":"41646:48:24","statements":[{"expression":{"id":10830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10825,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10823,"src":"41656:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10827,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10820,"src":"41672:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":10828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41681:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10826,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10787,"src":"41665:6:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41665:22:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41656:31:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10831,"nodeType":"ExpressionStatement","src":"41656:31:24"}]},"documentation":{"id":10818,"nodeType":"StructuredDocumentation","src":"41433:125:24","text":"@dev Returns a lowercased copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10833,"implemented":true,"kind":"function","modifiers":[],"name":"lower","nameLocation":"41572:5:24","nodeType":"FunctionDefinition","parameters":{"id":10821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10820,"mutability":"mutable","name":"subject","nameLocation":"41592:7:24","nodeType":"VariableDeclaration","scope":10833,"src":"41578:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10819,"name":"string","nodeType":"ElementaryTypeName","src":"41578:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41577:23:24"},"returnParameters":{"id":10824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10823,"mutability":"mutable","name":"result","nameLocation":"41638:6:24","nodeType":"VariableDeclaration","scope":10833,"src":"41624:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10822,"name":"string","nodeType":"ElementaryTypeName","src":"41624:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41623:22:24"},"scope":10964,"src":"41563:131:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10848,"nodeType":"Block","src":"41914:47:24","statements":[{"expression":{"id":10846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10841,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10839,"src":"41924:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10843,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10836,"src":"41940:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":10844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41949:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10842,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10787,"src":"41933:6:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41933:21:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41924:30:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10847,"nodeType":"ExpressionStatement","src":"41924:30:24"}]},"documentation":{"id":10834,"nodeType":"StructuredDocumentation","src":"41700:126:24","text":"@dev Returns an UPPERCASED copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10849,"implemented":true,"kind":"function","modifiers":[],"name":"upper","nameLocation":"41840:5:24","nodeType":"FunctionDefinition","parameters":{"id":10837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10836,"mutability":"mutable","name":"subject","nameLocation":"41860:7:24","nodeType":"VariableDeclaration","scope":10849,"src":"41846:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10835,"name":"string","nodeType":"ElementaryTypeName","src":"41846:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41845:23:24"},"returnParameters":{"id":10840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10839,"mutability":"mutable","name":"result","nameLocation":"41906:6:24","nodeType":"VariableDeclaration","scope":10849,"src":"41892:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10838,"name":"string","nodeType":"ElementaryTypeName","src":"41892:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41891:22:24"},"scope":10964,"src":"41831:130:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10858,"nodeType":"Block","src":"42110:1372:24","statements":[{"AST":{"nativeSrc":"42172:1304:24","nodeType":"YulBlock","src":"42172:1304:24","statements":[{"nativeSrc":"42186:27:24","nodeType":"YulVariableDeclaration","src":"42186:27:24","value":{"arguments":[{"name":"s","nativeSrc":"42201:1:24","nodeType":"YulIdentifier","src":"42201:1:24"},{"arguments":[{"name":"s","nativeSrc":"42210:1:24","nodeType":"YulIdentifier","src":"42210:1:24"}],"functionName":{"name":"mload","nativeSrc":"42204:5:24","nodeType":"YulIdentifier","src":"42204:5:24"},"nativeSrc":"42204:8:24","nodeType":"YulFunctionCall","src":"42204:8:24"}],"functionName":{"name":"add","nativeSrc":"42197:3:24","nodeType":"YulIdentifier","src":"42197:3:24"},"nativeSrc":"42197:16:24","nodeType":"YulFunctionCall","src":"42197:16:24"},"variables":[{"name":"end","nativeSrc":"42190:3:24","nodeType":"YulTypedName","src":"42190:3:24","type":""}]},{"nativeSrc":"42226:32:24","nodeType":"YulAssignment","src":"42226:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"42246:4:24","nodeType":"YulLiteral","src":"42246:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"42240:5:24","nodeType":"YulIdentifier","src":"42240:5:24"},"nativeSrc":"42240:11:24","nodeType":"YulFunctionCall","src":"42240:11:24"},{"kind":"number","nativeSrc":"42253:4:24","nodeType":"YulLiteral","src":"42253:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"42236:3:24","nodeType":"YulIdentifier","src":"42236:3:24"},"nativeSrc":"42236:22:24","nodeType":"YulFunctionCall","src":"42236:22:24"},"variableNames":[{"name":"result","nativeSrc":"42226:6:24","nodeType":"YulIdentifier","src":"42226:6:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42452:4:24","nodeType":"YulLiteral","src":"42452:4:24","type":"","value":"0x1f"},{"kind":"number","nativeSrc":"42458:8:24","nodeType":"YulLiteral","src":"42458:8:24","type":"","value":"0x900094"}],"functionName":{"name":"mstore","nativeSrc":"42445:6:24","nodeType":"YulIdentifier","src":"42445:6:24"},"nativeSrc":"42445:22:24","nodeType":"YulFunctionCall","src":"42445:22:24"},"nativeSrc":"42445:22:24","nodeType":"YulExpressionStatement","src":"42445:22:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42487:4:24","nodeType":"YulLiteral","src":"42487:4:24","type":"","value":"0x08"},{"kind":"number","nativeSrc":"42493:14:24","nodeType":"YulLiteral","src":"42493:14:24","type":"","value":"0xc0000000a6ab"}],"functionName":{"name":"mstore","nativeSrc":"42480:6:24","nodeType":"YulIdentifier","src":"42480:6:24"},"nativeSrc":"42480:28:24","nodeType":"YulFunctionCall","src":"42480:28:24"},"nativeSrc":"42480:28:24","nodeType":"YulExpressionStatement","src":"42480:28:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42600:4:24","nodeType":"YulLiteral","src":"42600:4:24","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"42610:2:24","nodeType":"YulLiteral","src":"42610:2:24","type":"","value":"64"},{"kind":"number","nativeSrc":"42614:50:24","nodeType":"YulLiteral","src":"42614:50:24","type":"","value":"0x2671756f743b26616d703b262333393b266c743b2667743b"}],"functionName":{"name":"shl","nativeSrc":"42606:3:24","nodeType":"YulIdentifier","src":"42606:3:24"},"nativeSrc":"42606:59:24","nodeType":"YulFunctionCall","src":"42606:59:24"}],"functionName":{"name":"mstore","nativeSrc":"42593:6:24","nodeType":"YulIdentifier","src":"42593:6:24"},"nativeSrc":"42593:73:24","nodeType":"YulFunctionCall","src":"42593:73:24"},"nativeSrc":"42593:73:24","nodeType":"YulExpressionStatement","src":"42593:73:24"},{"body":{"nativeSrc":"42708:483:24","nodeType":"YulBlock","src":"42708:483:24","statements":[{"nativeSrc":"42726:14:24","nodeType":"YulAssignment","src":"42726:14:24","value":{"arguments":[{"name":"s","nativeSrc":"42735:1:24","nodeType":"YulIdentifier","src":"42735:1:24"},{"kind":"number","nativeSrc":"42738:1:24","nodeType":"YulLiteral","src":"42738:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"42731:3:24","nodeType":"YulIdentifier","src":"42731:3:24"},"nativeSrc":"42731:9:24","nodeType":"YulFunctionCall","src":"42731:9:24"},"variableNames":[{"name":"s","nativeSrc":"42726:1:24","nodeType":"YulIdentifier","src":"42726:1:24"}]},{"nativeSrc":"42757:28:24","nodeType":"YulVariableDeclaration","src":"42757:28:24","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"42776:1:24","nodeType":"YulIdentifier","src":"42776:1:24"}],"functionName":{"name":"mload","nativeSrc":"42770:5:24","nodeType":"YulIdentifier","src":"42770:5:24"},"nativeSrc":"42770:8:24","nodeType":"YulFunctionCall","src":"42770:8:24"},{"kind":"number","nativeSrc":"42780:4:24","nodeType":"YulLiteral","src":"42780:4:24","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"42766:3:24","nodeType":"YulIdentifier","src":"42766:3:24"},"nativeSrc":"42766:19:24","nodeType":"YulFunctionCall","src":"42766:19:24"},"variables":[{"name":"c","nativeSrc":"42761:1:24","nodeType":"YulTypedName","src":"42761:1:24","type":""}]},{"body":{"nativeSrc":"42900:132:24","nodeType":"YulBlock","src":"42900:132:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"42930:6:24","nodeType":"YulIdentifier","src":"42930:6:24"},{"name":"c","nativeSrc":"42938:1:24","nodeType":"YulIdentifier","src":"42938:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"42922:7:24","nodeType":"YulIdentifier","src":"42922:7:24"},"nativeSrc":"42922:18:24","nodeType":"YulFunctionCall","src":"42922:18:24"},"nativeSrc":"42922:18:24","nodeType":"YulExpressionStatement","src":"42922:18:24"},{"nativeSrc":"42961:24:24","nodeType":"YulAssignment","src":"42961:24:24","value":{"arguments":[{"name":"result","nativeSrc":"42975:6:24","nodeType":"YulIdentifier","src":"42975:6:24"},{"kind":"number","nativeSrc":"42983:1:24","nodeType":"YulLiteral","src":"42983:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"42971:3:24","nodeType":"YulIdentifier","src":"42971:3:24"},"nativeSrc":"42971:14:24","nodeType":"YulFunctionCall","src":"42971:14:24"},"variableNames":[{"name":"result","nativeSrc":"42961:6:24","nodeType":"YulIdentifier","src":"42961:6:24"}]},{"nativeSrc":"43006:8:24","nodeType":"YulContinue","src":"43006:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"42872:1:24","nodeType":"YulIdentifier","src":"42872:1:24"},{"kind":"number","nativeSrc":"42875:1:24","nodeType":"YulLiteral","src":"42875:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"42868:3:24","nodeType":"YulIdentifier","src":"42868:3:24"},"nativeSrc":"42868:9:24","nodeType":"YulFunctionCall","src":"42868:9:24"},{"kind":"number","nativeSrc":"42879:18:24","nodeType":"YulLiteral","src":"42879:18:24","type":"","value":"0x500000c400000000"}],"functionName":{"name":"and","nativeSrc":"42864:3:24","nodeType":"YulIdentifier","src":"42864:3:24"},"nativeSrc":"42864:34:24","nodeType":"YulFunctionCall","src":"42864:34:24"}],"functionName":{"name":"iszero","nativeSrc":"42857:6:24","nodeType":"YulIdentifier","src":"42857:6:24"},"nativeSrc":"42857:42:24","nodeType":"YulFunctionCall","src":"42857:42:24"},"nativeSrc":"42854:178:24","nodeType":"YulIf","src":"42854:178:24"},{"nativeSrc":"43049:27:24","nodeType":"YulVariableDeclaration","src":"43049:27:24","value":{"arguments":[{"kind":"number","nativeSrc":"43062:3:24","nodeType":"YulLiteral","src":"43062:3:24","type":"","value":"248"},{"arguments":[{"name":"c","nativeSrc":"43073:1:24","nodeType":"YulIdentifier","src":"43073:1:24"}],"functionName":{"name":"mload","nativeSrc":"43067:5:24","nodeType":"YulIdentifier","src":"43067:5:24"},"nativeSrc":"43067:8:24","nodeType":"YulFunctionCall","src":"43067:8:24"}],"functionName":{"name":"shr","nativeSrc":"43058:3:24","nodeType":"YulIdentifier","src":"43058:3:24"},"nativeSrc":"43058:18:24","nodeType":"YulFunctionCall","src":"43058:18:24"},"variables":[{"name":"t","nativeSrc":"43053:1:24","nodeType":"YulTypedName","src":"43053:1:24","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"43100:6:24","nodeType":"YulIdentifier","src":"43100:6:24"},{"arguments":[{"arguments":[{"name":"t","nativeSrc":"43118:1:24","nodeType":"YulIdentifier","src":"43118:1:24"},{"kind":"number","nativeSrc":"43121:4:24","nodeType":"YulLiteral","src":"43121:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"43114:3:24","nodeType":"YulIdentifier","src":"43114:3:24"},"nativeSrc":"43114:12:24","nodeType":"YulFunctionCall","src":"43114:12:24"}],"functionName":{"name":"mload","nativeSrc":"43108:5:24","nodeType":"YulIdentifier","src":"43108:5:24"},"nativeSrc":"43108:19:24","nodeType":"YulFunctionCall","src":"43108:19:24"}],"functionName":{"name":"mstore","nativeSrc":"43093:6:24","nodeType":"YulIdentifier","src":"43093:6:24"},"nativeSrc":"43093:35:24","nodeType":"YulFunctionCall","src":"43093:35:24"},"nativeSrc":"43093:35:24","nodeType":"YulExpressionStatement","src":"43093:35:24"},{"nativeSrc":"43145:32:24","nodeType":"YulAssignment","src":"43145:32:24","value":{"arguments":[{"name":"result","nativeSrc":"43159:6:24","nodeType":"YulIdentifier","src":"43159:6:24"},{"arguments":[{"kind":"number","nativeSrc":"43171:1:24","nodeType":"YulLiteral","src":"43171:1:24","type":"","value":"5"},{"name":"t","nativeSrc":"43174:1:24","nodeType":"YulIdentifier","src":"43174:1:24"}],"functionName":{"name":"shr","nativeSrc":"43167:3:24","nodeType":"YulIdentifier","src":"43167:3:24"},"nativeSrc":"43167:9:24","nodeType":"YulFunctionCall","src":"43167:9:24"}],"functionName":{"name":"add","nativeSrc":"43155:3:24","nodeType":"YulIdentifier","src":"43155:3:24"},"nativeSrc":"43155:22:24","nodeType":"YulFunctionCall","src":"43155:22:24"},"variableNames":[{"name":"result","nativeSrc":"43145:6:24","nodeType":"YulIdentifier","src":"43145:6:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"42696:1:24","nodeType":"YulIdentifier","src":"42696:1:24"},{"name":"end","nativeSrc":"42699:3:24","nodeType":"YulIdentifier","src":"42699:3:24"}],"functionName":{"name":"eq","nativeSrc":"42693:2:24","nodeType":"YulIdentifier","src":"42693:2:24"},"nativeSrc":"42693:10:24","nodeType":"YulFunctionCall","src":"42693:10:24"}],"functionName":{"name":"iszero","nativeSrc":"42686:6:24","nodeType":"YulIdentifier","src":"42686:6:24"},"nativeSrc":"42686:18:24","nodeType":"YulFunctionCall","src":"42686:18:24"},"nativeSrc":"42679:512:24","nodeType":"YulForLoop","post":{"nativeSrc":"42705:2:24","nodeType":"YulBlock","src":"42705:2:24","statements":[]},"pre":{"nativeSrc":"42683:2:24","nodeType":"YulBlock","src":"42683:2:24","statements":[]},"src":"42679:512:24"},{"nativeSrc":"43204:18:24","nodeType":"YulVariableDeclaration","src":"43204:18:24","value":{"name":"result","nativeSrc":"43216:6:24","nodeType":"YulIdentifier","src":"43216:6:24"},"variables":[{"name":"last","nativeSrc":"43208:4:24","nodeType":"YulTypedName","src":"43208:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"43242:4:24","nodeType":"YulIdentifier","src":"43242:4:24"},{"kind":"number","nativeSrc":"43248:1:24","nodeType":"YulLiteral","src":"43248:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"43235:6:24","nodeType":"YulIdentifier","src":"43235:6:24"},"nativeSrc":"43235:15:24","nodeType":"YulFunctionCall","src":"43235:15:24"},"nativeSrc":"43235:15:24","nodeType":"YulExpressionStatement","src":"43235:15:24"},{"nativeSrc":"43301:21:24","nodeType":"YulAssignment","src":"43301:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"43317:4:24","nodeType":"YulLiteral","src":"43317:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"43311:5:24","nodeType":"YulIdentifier","src":"43311:5:24"},"nativeSrc":"43311:11:24","nodeType":"YulFunctionCall","src":"43311:11:24"},"variableNames":[{"name":"result","nativeSrc":"43301:6:24","nodeType":"YulIdentifier","src":"43301:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"43342:6:24","nodeType":"YulIdentifier","src":"43342:6:24"},{"arguments":[{"name":"last","nativeSrc":"43354:4:24","nodeType":"YulIdentifier","src":"43354:4:24"},{"arguments":[{"name":"result","nativeSrc":"43364:6:24","nodeType":"YulIdentifier","src":"43364:6:24"},{"kind":"number","nativeSrc":"43372:4:24","nodeType":"YulLiteral","src":"43372:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43360:3:24","nodeType":"YulIdentifier","src":"43360:3:24"},"nativeSrc":"43360:17:24","nodeType":"YulFunctionCall","src":"43360:17:24"}],"functionName":{"name":"sub","nativeSrc":"43350:3:24","nodeType":"YulIdentifier","src":"43350:3:24"},"nativeSrc":"43350:28:24","nodeType":"YulFunctionCall","src":"43350:28:24"}],"functionName":{"name":"mstore","nativeSrc":"43335:6:24","nodeType":"YulIdentifier","src":"43335:6:24"},"nativeSrc":"43335:44:24","nodeType":"YulFunctionCall","src":"43335:44:24"},"nativeSrc":"43335:44:24","nodeType":"YulExpressionStatement","src":"43335:44:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43420:4:24","nodeType":"YulLiteral","src":"43420:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"43430:4:24","nodeType":"YulIdentifier","src":"43430:4:24"},{"kind":"number","nativeSrc":"43436:4:24","nodeType":"YulLiteral","src":"43436:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43426:3:24","nodeType":"YulIdentifier","src":"43426:3:24"},"nativeSrc":"43426:15:24","nodeType":"YulFunctionCall","src":"43426:15:24"}],"functionName":{"name":"mstore","nativeSrc":"43413:6:24","nodeType":"YulIdentifier","src":"43413:6:24"},"nativeSrc":"43413:29:24","nodeType":"YulFunctionCall","src":"43413:29:24"},"nativeSrc":"43413:29:24","nodeType":"YulExpressionStatement","src":"43413:29:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42226:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42930:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42961:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42975:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43100:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43145:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43159:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43216:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43301:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43342:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43364:6:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42201:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42210:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42696:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42726:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42735:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42776:1:24","valueSize":1}],"id":10857,"nodeType":"InlineAssembly","src":"42163:1313:24"}]},"documentation":{"id":10850,"nodeType":"StructuredDocumentation","src":"41967:56:24","text":"@dev Escapes the string to be used within HTML tags."},"id":10859,"implemented":true,"kind":"function","modifiers":[],"name":"escapeHTML","nameLocation":"42037:10:24","nodeType":"FunctionDefinition","parameters":{"id":10853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10852,"mutability":"mutable","name":"s","nameLocation":"42062:1:24","nodeType":"VariableDeclaration","scope":10859,"src":"42048:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10851,"name":"string","nodeType":"ElementaryTypeName","src":"42048:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42047:17:24"},"returnParameters":{"id":10856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10855,"mutability":"mutable","name":"result","nameLocation":"42102:6:24","nodeType":"VariableDeclaration","scope":10859,"src":"42088:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10854,"name":"string","nodeType":"ElementaryTypeName","src":"42088:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42087:22:24"},"scope":10964,"src":"42028:1454:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10870,"nodeType":"Block","src":"43779:2259:24","statements":[{"AST":{"nativeSrc":"43841:2191:24","nodeType":"YulBlock","src":"43841:2191:24","statements":[{"nativeSrc":"43855:27:24","nodeType":"YulVariableDeclaration","src":"43855:27:24","value":{"arguments":[{"name":"s","nativeSrc":"43870:1:24","nodeType":"YulIdentifier","src":"43870:1:24"},{"arguments":[{"name":"s","nativeSrc":"43879:1:24","nodeType":"YulIdentifier","src":"43879:1:24"}],"functionName":{"name":"mload","nativeSrc":"43873:5:24","nodeType":"YulIdentifier","src":"43873:5:24"},"nativeSrc":"43873:8:24","nodeType":"YulFunctionCall","src":"43873:8:24"}],"functionName":{"name":"add","nativeSrc":"43866:3:24","nodeType":"YulIdentifier","src":"43866:3:24"},"nativeSrc":"43866:16:24","nodeType":"YulFunctionCall","src":"43866:16:24"},"variables":[{"name":"end","nativeSrc":"43859:3:24","nodeType":"YulTypedName","src":"43859:3:24","type":""}]},{"nativeSrc":"43895:32:24","nodeType":"YulAssignment","src":"43895:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"43915:4:24","nodeType":"YulLiteral","src":"43915:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"43909:5:24","nodeType":"YulIdentifier","src":"43909:5:24"},"nativeSrc":"43909:11:24","nodeType":"YulFunctionCall","src":"43909:11:24"},{"kind":"number","nativeSrc":"43922:4:24","nodeType":"YulLiteral","src":"43922:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43905:3:24","nodeType":"YulIdentifier","src":"43905:3:24"},"nativeSrc":"43905:22:24","nodeType":"YulFunctionCall","src":"43905:22:24"},"variableNames":[{"name":"result","nativeSrc":"43895:6:24","nodeType":"YulIdentifier","src":"43895:6:24"}]},{"body":{"nativeSrc":"43959:92:24","nodeType":"YulBlock","src":"43959:92:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"43985:6:24","nodeType":"YulIdentifier","src":"43985:6:24"},{"kind":"number","nativeSrc":"43993:2:24","nodeType":"YulLiteral","src":"43993:2:24","type":"","value":"34"}],"functionName":{"name":"mstore8","nativeSrc":"43977:7:24","nodeType":"YulIdentifier","src":"43977:7:24"},"nativeSrc":"43977:19:24","nodeType":"YulFunctionCall","src":"43977:19:24"},"nativeSrc":"43977:19:24","nodeType":"YulExpressionStatement","src":"43977:19:24"},{"nativeSrc":"44013:24:24","nodeType":"YulAssignment","src":"44013:24:24","value":{"arguments":[{"kind":"number","nativeSrc":"44027:1:24","nodeType":"YulLiteral","src":"44027:1:24","type":"","value":"1"},{"name":"result","nativeSrc":"44030:6:24","nodeType":"YulIdentifier","src":"44030:6:24"}],"functionName":{"name":"add","nativeSrc":"44023:3:24","nodeType":"YulIdentifier","src":"44023:3:24"},"nativeSrc":"44023:14:24","nodeType":"YulFunctionCall","src":"44023:14:24"},"variableNames":[{"name":"result","nativeSrc":"44013:6:24","nodeType":"YulIdentifier","src":"44013:6:24"}]}]},"condition":{"name":"addDoubleQuotes","nativeSrc":"43943:15:24","nodeType":"YulIdentifier","src":"43943:15:24"},"nativeSrc":"43940:111:24","nodeType":"YulIf","src":"43940:111:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44298:4:24","nodeType":"YulLiteral","src":"44298:4:24","type":"","value":"0x15"},{"kind":"number","nativeSrc":"44304:58:24","nodeType":"YulLiteral","src":"44304:58:24","type":"","value":"0x5c75303030303031323334353637383961626364656662746e006672"}],"functionName":{"name":"mstore","nativeSrc":"44291:6:24","nodeType":"YulIdentifier","src":"44291:6:24"},"nativeSrc":"44291:72:24","nodeType":"YulFunctionCall","src":"44291:72:24"},"nativeSrc":"44291:72:24","nodeType":"YulExpressionStatement","src":"44291:72:24"},{"nativeSrc":"44428:39:24","nodeType":"YulVariableDeclaration","src":"44428:39:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"44444:4:24","nodeType":"YulLiteral","src":"44444:4:24","type":"","value":"0x22"},{"kind":"number","nativeSrc":"44450:1:24","nodeType":"YulLiteral","src":"44450:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44440:3:24","nodeType":"YulIdentifier","src":"44440:3:24"},"nativeSrc":"44440:12:24","nodeType":"YulFunctionCall","src":"44440:12:24"},{"arguments":[{"kind":"number","nativeSrc":"44458:4:24","nodeType":"YulLiteral","src":"44458:4:24","type":"","value":"0x5c"},{"kind":"number","nativeSrc":"44464:1:24","nodeType":"YulLiteral","src":"44464:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44454:3:24","nodeType":"YulIdentifier","src":"44454:3:24"},"nativeSrc":"44454:12:24","nodeType":"YulFunctionCall","src":"44454:12:24"}],"functionName":{"name":"or","nativeSrc":"44437:2:24","nodeType":"YulIdentifier","src":"44437:2:24"},"nativeSrc":"44437:30:24","nodeType":"YulFunctionCall","src":"44437:30:24"},"variables":[{"name":"e","nativeSrc":"44432:1:24","nodeType":"YulTypedName","src":"44432:1:24","type":""}]},{"body":{"nativeSrc":"44509:1114:24","nodeType":"YulBlock","src":"44509:1114:24","statements":[{"nativeSrc":"44527:14:24","nodeType":"YulAssignment","src":"44527:14:24","value":{"arguments":[{"name":"s","nativeSrc":"44536:1:24","nodeType":"YulIdentifier","src":"44536:1:24"},{"kind":"number","nativeSrc":"44539:1:24","nodeType":"YulLiteral","src":"44539:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44532:3:24","nodeType":"YulIdentifier","src":"44532:3:24"},"nativeSrc":"44532:9:24","nodeType":"YulFunctionCall","src":"44532:9:24"},"variableNames":[{"name":"s","nativeSrc":"44527:1:24","nodeType":"YulIdentifier","src":"44527:1:24"}]},{"nativeSrc":"44558:28:24","nodeType":"YulVariableDeclaration","src":"44558:28:24","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"44577:1:24","nodeType":"YulIdentifier","src":"44577:1:24"}],"functionName":{"name":"mload","nativeSrc":"44571:5:24","nodeType":"YulIdentifier","src":"44571:5:24"},"nativeSrc":"44571:8:24","nodeType":"YulFunctionCall","src":"44571:8:24"},{"kind":"number","nativeSrc":"44581:4:24","nodeType":"YulLiteral","src":"44581:4:24","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"44567:3:24","nodeType":"YulIdentifier","src":"44567:3:24"},"nativeSrc":"44567:19:24","nodeType":"YulFunctionCall","src":"44567:19:24"},"variables":[{"name":"c","nativeSrc":"44562:1:24","nodeType":"YulTypedName","src":"44562:1:24","type":""}]},{"body":{"nativeSrc":"44626:438:24","nodeType":"YulBlock","src":"44626:438:24","statements":[{"body":{"nativeSrc":"44677:197:24","nodeType":"YulBlock","src":"44677:197:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"44760:6:24","nodeType":"YulIdentifier","src":"44760:6:24"},{"name":"c","nativeSrc":"44768:1:24","nodeType":"YulIdentifier","src":"44768:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"44752:7:24","nodeType":"YulIdentifier","src":"44752:7:24"},"nativeSrc":"44752:18:24","nodeType":"YulFunctionCall","src":"44752:18:24"},"nativeSrc":"44752:18:24","nodeType":"YulExpressionStatement","src":"44752:18:24"},{"nativeSrc":"44795:24:24","nodeType":"YulAssignment","src":"44795:24:24","value":{"arguments":[{"name":"result","nativeSrc":"44809:6:24","nodeType":"YulIdentifier","src":"44809:6:24"},{"kind":"number","nativeSrc":"44817:1:24","nodeType":"YulLiteral","src":"44817:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44805:3:24","nodeType":"YulIdentifier","src":"44805:3:24"},"nativeSrc":"44805:14:24","nodeType":"YulFunctionCall","src":"44805:14:24"},"variableNames":[{"name":"result","nativeSrc":"44795:6:24","nodeType":"YulIdentifier","src":"44795:6:24"}]},{"nativeSrc":"44844:8:24","nodeType":"YulContinue","src":"44844:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"44666:1:24","nodeType":"YulIdentifier","src":"44666:1:24"},{"kind":"number","nativeSrc":"44669:1:24","nodeType":"YulLiteral","src":"44669:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44662:3:24","nodeType":"YulIdentifier","src":"44662:3:24"},"nativeSrc":"44662:9:24","nodeType":"YulFunctionCall","src":"44662:9:24"},{"name":"e","nativeSrc":"44673:1:24","nodeType":"YulIdentifier","src":"44673:1:24"}],"functionName":{"name":"and","nativeSrc":"44658:3:24","nodeType":"YulIdentifier","src":"44658:3:24"},"nativeSrc":"44658:17:24","nodeType":"YulFunctionCall","src":"44658:17:24"}],"functionName":{"name":"iszero","nativeSrc":"44651:6:24","nodeType":"YulIdentifier","src":"44651:6:24"},"nativeSrc":"44651:25:24","nodeType":"YulFunctionCall","src":"44651:25:24"},"nativeSrc":"44648:226:24","nodeType":"YulIf","src":"44648:226:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"44903:6:24","nodeType":"YulIdentifier","src":"44903:6:24"},{"kind":"number","nativeSrc":"44911:4:24","nodeType":"YulLiteral","src":"44911:4:24","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nativeSrc":"44895:7:24","nodeType":"YulIdentifier","src":"44895:7:24"},"nativeSrc":"44895:21:24","nodeType":"YulFunctionCall","src":"44895:21:24"},"nativeSrc":"44895:21:24","nodeType":"YulExpressionStatement","src":"44895:21:24"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"44958:6:24","nodeType":"YulIdentifier","src":"44958:6:24"},{"kind":"number","nativeSrc":"44966:1:24","nodeType":"YulLiteral","src":"44966:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44954:3:24","nodeType":"YulIdentifier","src":"44954:3:24"},"nativeSrc":"44954:14:24","nodeType":"YulFunctionCall","src":"44954:14:24"},{"name":"c","nativeSrc":"44970:1:24","nodeType":"YulIdentifier","src":"44970:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"44946:7:24","nodeType":"YulIdentifier","src":"44946:7:24"},"nativeSrc":"44946:26:24","nodeType":"YulFunctionCall","src":"44946:26:24"},"nativeSrc":"44946:26:24","nodeType":"YulExpressionStatement","src":"44946:26:24"},{"nativeSrc":"44993:24:24","nodeType":"YulAssignment","src":"44993:24:24","value":{"arguments":[{"name":"result","nativeSrc":"45007:6:24","nodeType":"YulIdentifier","src":"45007:6:24"},{"kind":"number","nativeSrc":"45015:1:24","nodeType":"YulLiteral","src":"45015:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"45003:3:24","nodeType":"YulIdentifier","src":"45003:3:24"},"nativeSrc":"45003:14:24","nodeType":"YulFunctionCall","src":"45003:14:24"},"variableNames":[{"name":"result","nativeSrc":"44993:6:24","nodeType":"YulIdentifier","src":"44993:6:24"}]},{"nativeSrc":"45038:8:24","nodeType":"YulContinue","src":"45038:8:24"}]},"condition":{"arguments":[{"arguments":[{"name":"c","nativeSrc":"44616:1:24","nodeType":"YulIdentifier","src":"44616:1:24"},{"kind":"number","nativeSrc":"44619:4:24","nodeType":"YulLiteral","src":"44619:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"44613:2:24","nodeType":"YulIdentifier","src":"44613:2:24"},"nativeSrc":"44613:11:24","nodeType":"YulFunctionCall","src":"44613:11:24"}],"functionName":{"name":"iszero","nativeSrc":"44606:6:24","nodeType":"YulIdentifier","src":"44606:6:24"},"nativeSrc":"44606:19:24","nodeType":"YulFunctionCall","src":"44606:19:24"},"nativeSrc":"44603:461:24","nodeType":"YulIf","src":"44603:461:24"},{"body":{"nativeSrc":"45115:348:24","nodeType":"YulBlock","src":"45115:348:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45205:4:24","nodeType":"YulLiteral","src":"45205:4:24","type":"","value":"0x1d"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45221:1:24","nodeType":"YulLiteral","src":"45221:1:24","type":"","value":"4"},{"name":"c","nativeSrc":"45224:1:24","nodeType":"YulIdentifier","src":"45224:1:24"}],"functionName":{"name":"shr","nativeSrc":"45217:3:24","nodeType":"YulIdentifier","src":"45217:3:24"},"nativeSrc":"45217:9:24","nodeType":"YulFunctionCall","src":"45217:9:24"}],"functionName":{"name":"mload","nativeSrc":"45211:5:24","nodeType":"YulIdentifier","src":"45211:5:24"},"nativeSrc":"45211:16:24","nodeType":"YulFunctionCall","src":"45211:16:24"}],"functionName":{"name":"mstore8","nativeSrc":"45197:7:24","nodeType":"YulIdentifier","src":"45197:7:24"},"nativeSrc":"45197:31:24","nodeType":"YulFunctionCall","src":"45197:31:24"},"nativeSrc":"45197:31:24","nodeType":"YulExpressionStatement","src":"45197:31:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45271:4:24","nodeType":"YulLiteral","src":"45271:4:24","type":"","value":"0x1e"},{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45287:1:24","nodeType":"YulIdentifier","src":"45287:1:24"},{"kind":"number","nativeSrc":"45290:2:24","nodeType":"YulLiteral","src":"45290:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"45283:3:24","nodeType":"YulIdentifier","src":"45283:3:24"},"nativeSrc":"45283:10:24","nodeType":"YulFunctionCall","src":"45283:10:24"}],"functionName":{"name":"mload","nativeSrc":"45277:5:24","nodeType":"YulIdentifier","src":"45277:5:24"},"nativeSrc":"45277:17:24","nodeType":"YulFunctionCall","src":"45277:17:24"}],"functionName":{"name":"mstore8","nativeSrc":"45263:7:24","nodeType":"YulIdentifier","src":"45263:7:24"},"nativeSrc":"45263:32:24","nodeType":"YulFunctionCall","src":"45263:32:24"},"nativeSrc":"45263:32:24","nodeType":"YulExpressionStatement","src":"45263:32:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"45337:6:24","nodeType":"YulIdentifier","src":"45337:6:24"},{"arguments":[{"kind":"number","nativeSrc":"45351:4:24","nodeType":"YulLiteral","src":"45351:4:24","type":"","value":"0x19"}],"functionName":{"name":"mload","nativeSrc":"45345:5:24","nodeType":"YulIdentifier","src":"45345:5:24"},"nativeSrc":"45345:11:24","nodeType":"YulFunctionCall","src":"45345:11:24"}],"functionName":{"name":"mstore","nativeSrc":"45330:6:24","nodeType":"YulIdentifier","src":"45330:6:24"},"nativeSrc":"45330:27:24","nodeType":"YulFunctionCall","src":"45330:27:24"},"nativeSrc":"45330:27:24","nodeType":"YulExpressionStatement","src":"45330:27:24"},{"nativeSrc":"45392:24:24","nodeType":"YulAssignment","src":"45392:24:24","value":{"arguments":[{"name":"result","nativeSrc":"45406:6:24","nodeType":"YulIdentifier","src":"45406:6:24"},{"kind":"number","nativeSrc":"45414:1:24","nodeType":"YulLiteral","src":"45414:1:24","type":"","value":"6"}],"functionName":{"name":"add","nativeSrc":"45402:3:24","nodeType":"YulIdentifier","src":"45402:3:24"},"nativeSrc":"45402:14:24","nodeType":"YulFunctionCall","src":"45402:14:24"},"variableNames":[{"name":"result","nativeSrc":"45392:6:24","nodeType":"YulIdentifier","src":"45392:6:24"}]},{"nativeSrc":"45437:8:24","nodeType":"YulContinue","src":"45437:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45099:1:24","nodeType":"YulIdentifier","src":"45099:1:24"},{"kind":"number","nativeSrc":"45102:1:24","nodeType":"YulLiteral","src":"45102:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"45095:3:24","nodeType":"YulIdentifier","src":"45095:3:24"},"nativeSrc":"45095:9:24","nodeType":"YulFunctionCall","src":"45095:9:24"},{"kind":"number","nativeSrc":"45106:6:24","nodeType":"YulLiteral","src":"45106:6:24","type":"","value":"0x3700"}],"functionName":{"name":"and","nativeSrc":"45091:3:24","nodeType":"YulIdentifier","src":"45091:3:24"},"nativeSrc":"45091:22:24","nodeType":"YulFunctionCall","src":"45091:22:24"}],"functionName":{"name":"iszero","nativeSrc":"45084:6:24","nodeType":"YulIdentifier","src":"45084:6:24"},"nativeSrc":"45084:30:24","nodeType":"YulFunctionCall","src":"45084:30:24"},"nativeSrc":"45081:382:24","nodeType":"YulIf","src":"45081:382:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"45488:6:24","nodeType":"YulIdentifier","src":"45488:6:24"},{"kind":"number","nativeSrc":"45496:4:24","nodeType":"YulLiteral","src":"45496:4:24","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nativeSrc":"45480:7:24","nodeType":"YulIdentifier","src":"45480:7:24"},"nativeSrc":"45480:21:24","nodeType":"YulFunctionCall","src":"45480:21:24"},"nativeSrc":"45480:21:24","nodeType":"YulExpressionStatement","src":"45480:21:24"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"45539:6:24","nodeType":"YulIdentifier","src":"45539:6:24"},{"kind":"number","nativeSrc":"45547:1:24","nodeType":"YulLiteral","src":"45547:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45535:3:24","nodeType":"YulIdentifier","src":"45535:3:24"},"nativeSrc":"45535:14:24","nodeType":"YulFunctionCall","src":"45535:14:24"},{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45561:1:24","nodeType":"YulIdentifier","src":"45561:1:24"},{"kind":"number","nativeSrc":"45564:1:24","nodeType":"YulLiteral","src":"45564:1:24","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"45557:3:24","nodeType":"YulIdentifier","src":"45557:3:24"},"nativeSrc":"45557:9:24","nodeType":"YulFunctionCall","src":"45557:9:24"}],"functionName":{"name":"mload","nativeSrc":"45551:5:24","nodeType":"YulIdentifier","src":"45551:5:24"},"nativeSrc":"45551:16:24","nodeType":"YulFunctionCall","src":"45551:16:24"}],"functionName":{"name":"mstore8","nativeSrc":"45527:7:24","nodeType":"YulIdentifier","src":"45527:7:24"},"nativeSrc":"45527:41:24","nodeType":"YulFunctionCall","src":"45527:41:24"},"nativeSrc":"45527:41:24","nodeType":"YulExpressionStatement","src":"45527:41:24"},{"nativeSrc":"45585:24:24","nodeType":"YulAssignment","src":"45585:24:24","value":{"arguments":[{"name":"result","nativeSrc":"45599:6:24","nodeType":"YulIdentifier","src":"45599:6:24"},{"kind":"number","nativeSrc":"45607:1:24","nodeType":"YulLiteral","src":"45607:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"45595:3:24","nodeType":"YulIdentifier","src":"45595:3:24"},"nativeSrc":"45595:14:24","nodeType":"YulFunctionCall","src":"45595:14:24"},"variableNames":[{"name":"result","nativeSrc":"45585:6:24","nodeType":"YulIdentifier","src":"45585:6:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"44497:1:24","nodeType":"YulIdentifier","src":"44497:1:24"},{"name":"end","nativeSrc":"44500:3:24","nodeType":"YulIdentifier","src":"44500:3:24"}],"functionName":{"name":"eq","nativeSrc":"44494:2:24","nodeType":"YulIdentifier","src":"44494:2:24"},"nativeSrc":"44494:10:24","nodeType":"YulFunctionCall","src":"44494:10:24"}],"functionName":{"name":"iszero","nativeSrc":"44487:6:24","nodeType":"YulIdentifier","src":"44487:6:24"},"nativeSrc":"44487:18:24","nodeType":"YulFunctionCall","src":"44487:18:24"},"nativeSrc":"44480:1143:24","nodeType":"YulForLoop","post":{"nativeSrc":"44506:2:24","nodeType":"YulBlock","src":"44506:2:24","statements":[]},"pre":{"nativeSrc":"44484:2:24","nodeType":"YulBlock","src":"44484:2:24","statements":[]},"src":"44480:1143:24"},{"body":{"nativeSrc":"45655:92:24","nodeType":"YulBlock","src":"45655:92:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"45681:6:24","nodeType":"YulIdentifier","src":"45681:6:24"},{"kind":"number","nativeSrc":"45689:2:24","nodeType":"YulLiteral","src":"45689:2:24","type":"","value":"34"}],"functionName":{"name":"mstore8","nativeSrc":"45673:7:24","nodeType":"YulIdentifier","src":"45673:7:24"},"nativeSrc":"45673:19:24","nodeType":"YulFunctionCall","src":"45673:19:24"},"nativeSrc":"45673:19:24","nodeType":"YulExpressionStatement","src":"45673:19:24"},{"nativeSrc":"45709:24:24","nodeType":"YulAssignment","src":"45709:24:24","value":{"arguments":[{"kind":"number","nativeSrc":"45723:1:24","nodeType":"YulLiteral","src":"45723:1:24","type":"","value":"1"},{"name":"result","nativeSrc":"45726:6:24","nodeType":"YulIdentifier","src":"45726:6:24"}],"functionName":{"name":"add","nativeSrc":"45719:3:24","nodeType":"YulIdentifier","src":"45719:3:24"},"nativeSrc":"45719:14:24","nodeType":"YulFunctionCall","src":"45719:14:24"},"variableNames":[{"name":"result","nativeSrc":"45709:6:24","nodeType":"YulIdentifier","src":"45709:6:24"}]}]},"condition":{"name":"addDoubleQuotes","nativeSrc":"45639:15:24","nodeType":"YulIdentifier","src":"45639:15:24"},"nativeSrc":"45636:111:24","nodeType":"YulIf","src":"45636:111:24"},{"nativeSrc":"45760:18:24","nodeType":"YulVariableDeclaration","src":"45760:18:24","value":{"name":"result","nativeSrc":"45772:6:24","nodeType":"YulIdentifier","src":"45772:6:24"},"variables":[{"name":"last","nativeSrc":"45764:4:24","nodeType":"YulTypedName","src":"45764:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"45798:4:24","nodeType":"YulIdentifier","src":"45798:4:24"},{"kind":"number","nativeSrc":"45804:1:24","nodeType":"YulLiteral","src":"45804:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"45791:6:24","nodeType":"YulIdentifier","src":"45791:6:24"},"nativeSrc":"45791:15:24","nodeType":"YulFunctionCall","src":"45791:15:24"},"nativeSrc":"45791:15:24","nodeType":"YulExpressionStatement","src":"45791:15:24"},{"nativeSrc":"45857:21:24","nodeType":"YulAssignment","src":"45857:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"45873:4:24","nodeType":"YulLiteral","src":"45873:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"45867:5:24","nodeType":"YulIdentifier","src":"45867:5:24"},"nativeSrc":"45867:11:24","nodeType":"YulFunctionCall","src":"45867:11:24"},"variableNames":[{"name":"result","nativeSrc":"45857:6:24","nodeType":"YulIdentifier","src":"45857:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"45898:6:24","nodeType":"YulIdentifier","src":"45898:6:24"},{"arguments":[{"name":"last","nativeSrc":"45910:4:24","nodeType":"YulIdentifier","src":"45910:4:24"},{"arguments":[{"name":"result","nativeSrc":"45920:6:24","nodeType":"YulIdentifier","src":"45920:6:24"},{"kind":"number","nativeSrc":"45928:4:24","nodeType":"YulLiteral","src":"45928:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45916:3:24","nodeType":"YulIdentifier","src":"45916:3:24"},"nativeSrc":"45916:17:24","nodeType":"YulFunctionCall","src":"45916:17:24"}],"functionName":{"name":"sub","nativeSrc":"45906:3:24","nodeType":"YulIdentifier","src":"45906:3:24"},"nativeSrc":"45906:28:24","nodeType":"YulFunctionCall","src":"45906:28:24"}],"functionName":{"name":"mstore","nativeSrc":"45891:6:24","nodeType":"YulIdentifier","src":"45891:6:24"},"nativeSrc":"45891:44:24","nodeType":"YulFunctionCall","src":"45891:44:24"},"nativeSrc":"45891:44:24","nodeType":"YulExpressionStatement","src":"45891:44:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45976:4:24","nodeType":"YulLiteral","src":"45976:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"45986:4:24","nodeType":"YulIdentifier","src":"45986:4:24"},{"kind":"number","nativeSrc":"45992:4:24","nodeType":"YulLiteral","src":"45992:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45982:3:24","nodeType":"YulIdentifier","src":"45982:3:24"},"nativeSrc":"45982:15:24","nodeType":"YulFunctionCall","src":"45982:15:24"}],"functionName":{"name":"mstore","nativeSrc":"45969:6:24","nodeType":"YulIdentifier","src":"45969:6:24"},"nativeSrc":"45969:29:24","nodeType":"YulFunctionCall","src":"45969:29:24"},"nativeSrc":"45969:29:24","nodeType":"YulExpressionStatement","src":"45969:29:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10864,"isOffset":false,"isSlot":false,"src":"43943:15:24","valueSize":1},{"declaration":10864,"isOffset":false,"isSlot":false,"src":"45639:15:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"43895:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"43985:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44013:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44030:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44760:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44795:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44809:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44903:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44958:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44993:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45007:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45337:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45392:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45406:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45488:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45539:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45585:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45599:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45681:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45709:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45726:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45772:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45857:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45898:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45920:6:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"43870:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"43879:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44497:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44527:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44536:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44577:1:24","valueSize":1}],"id":10869,"nodeType":"InlineAssembly","src":"43832:2200:24"}]},"documentation":{"id":10860,"nodeType":"StructuredDocumentation","src":"43488:154:24","text":"@dev Escapes the string to be used within double-quotes in a JSON.\n If `addDoubleQuotes` is true, the result will be enclosed in double-quotes."},"id":10871,"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"43656:10:24","nodeType":"FunctionDefinition","parameters":{"id":10865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10862,"mutability":"mutable","name":"s","nameLocation":"43681:1:24","nodeType":"VariableDeclaration","scope":10871,"src":"43667:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10861,"name":"string","nodeType":"ElementaryTypeName","src":"43667:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10864,"mutability":"mutable","name":"addDoubleQuotes","nameLocation":"43689:15:24","nodeType":"VariableDeclaration","scope":10871,"src":"43684:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10863,"name":"bool","nodeType":"ElementaryTypeName","src":"43684:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43666:39:24"},"returnParameters":{"id":10868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10867,"mutability":"mutable","name":"result","nameLocation":"43767:6:24","nodeType":"VariableDeclaration","scope":10871,"src":"43753:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10866,"name":"string","nodeType":"ElementaryTypeName","src":"43753:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43752:22:24"},"scope":10964,"src":"43647:2391:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10886,"nodeType":"Block","src":"46201:46:24","statements":[{"expression":{"id":10884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10879,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10877,"src":"46211:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10881,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10874,"src":"46231:1:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":10882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"46234:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10880,"name":"escapeJSON","nodeType":"Identifier","overloadedDeclarations":[10871,10887],"referencedDeclaration":10871,"src":"46220:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46220:20:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"46211:29:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10885,"nodeType":"ExpressionStatement","src":"46211:29:24"}]},"documentation":{"id":10872,"nodeType":"StructuredDocumentation","src":"46044:70:24","text":"@dev Escapes the string to be used within double-quotes in a JSON."},"id":10887,"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"46128:10:24","nodeType":"FunctionDefinition","parameters":{"id":10875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10874,"mutability":"mutable","name":"s","nameLocation":"46153:1:24","nodeType":"VariableDeclaration","scope":10887,"src":"46139:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10873,"name":"string","nodeType":"ElementaryTypeName","src":"46139:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46138:17:24"},"returnParameters":{"id":10878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10877,"mutability":"mutable","name":"result","nameLocation":"46193:6:24","nodeType":"VariableDeclaration","scope":10887,"src":"46179:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10876,"name":"string","nodeType":"ElementaryTypeName","src":"46179:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46178:22:24"},"scope":10964,"src":"46119:128:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10898,"nodeType":"Block","src":"46380:174:24","statements":[{"AST":{"nativeSrc":"46442:106:24","nodeType":"YulBlock","src":"46442:106:24","statements":[{"nativeSrc":"46456:82:24","nodeType":"YulAssignment","src":"46456:82:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"46483:1:24","nodeType":"YulIdentifier","src":"46483:1:24"},{"kind":"number","nativeSrc":"46486:4:24","nodeType":"YulLiteral","src":"46486:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46479:3:24","nodeType":"YulIdentifier","src":"46479:3:24"},"nativeSrc":"46479:12:24","nodeType":"YulFunctionCall","src":"46479:12:24"},{"arguments":[{"name":"a","nativeSrc":"46499:1:24","nodeType":"YulIdentifier","src":"46499:1:24"}],"functionName":{"name":"mload","nativeSrc":"46493:5:24","nodeType":"YulIdentifier","src":"46493:5:24"},"nativeSrc":"46493:8:24","nodeType":"YulFunctionCall","src":"46493:8:24"}],"functionName":{"name":"keccak256","nativeSrc":"46469:9:24","nodeType":"YulIdentifier","src":"46469:9:24"},"nativeSrc":"46469:33:24","nodeType":"YulFunctionCall","src":"46469:33:24"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"46518:1:24","nodeType":"YulIdentifier","src":"46518:1:24"},{"kind":"number","nativeSrc":"46521:4:24","nodeType":"YulLiteral","src":"46521:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46514:3:24","nodeType":"YulIdentifier","src":"46514:3:24"},"nativeSrc":"46514:12:24","nodeType":"YulFunctionCall","src":"46514:12:24"},{"arguments":[{"name":"b","nativeSrc":"46534:1:24","nodeType":"YulIdentifier","src":"46534:1:24"}],"functionName":{"name":"mload","nativeSrc":"46528:5:24","nodeType":"YulIdentifier","src":"46528:5:24"},"nativeSrc":"46528:8:24","nodeType":"YulFunctionCall","src":"46528:8:24"}],"functionName":{"name":"keccak256","nativeSrc":"46504:9:24","nodeType":"YulIdentifier","src":"46504:9:24"},"nativeSrc":"46504:33:24","nodeType":"YulFunctionCall","src":"46504:33:24"}],"functionName":{"name":"eq","nativeSrc":"46466:2:24","nodeType":"YulIdentifier","src":"46466:2:24"},"nativeSrc":"46466:72:24","nodeType":"YulFunctionCall","src":"46466:72:24"},"variableNames":[{"name":"result","nativeSrc":"46456:6:24","nodeType":"YulIdentifier","src":"46456:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10890,"isOffset":false,"isSlot":false,"src":"46483:1:24","valueSize":1},{"declaration":10890,"isOffset":false,"isSlot":false,"src":"46499:1:24","valueSize":1},{"declaration":10892,"isOffset":false,"isSlot":false,"src":"46518:1:24","valueSize":1},{"declaration":10892,"isOffset":false,"isSlot":false,"src":"46534:1:24","valueSize":1},{"declaration":10895,"isOffset":false,"isSlot":false,"src":"46456:6:24","valueSize":1}],"id":10897,"nodeType":"InlineAssembly","src":"46433:115:24"}]},"documentation":{"id":10888,"nodeType":"StructuredDocumentation","src":"46253:40:24","text":"@dev Returns whether `a` equals `b`."},"id":10899,"implemented":true,"kind":"function","modifiers":[],"name":"eq","nameLocation":"46307:2:24","nodeType":"FunctionDefinition","parameters":{"id":10893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10890,"mutability":"mutable","name":"a","nameLocation":"46324:1:24","nodeType":"VariableDeclaration","scope":10899,"src":"46310:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10889,"name":"string","nodeType":"ElementaryTypeName","src":"46310:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10892,"mutability":"mutable","name":"b","nameLocation":"46341:1:24","nodeType":"VariableDeclaration","scope":10899,"src":"46327:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10891,"name":"string","nodeType":"ElementaryTypeName","src":"46327:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46309:34:24"},"returnParameters":{"id":10896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10895,"mutability":"mutable","name":"result","nameLocation":"46372:6:24","nodeType":"VariableDeclaration","scope":10899,"src":"46367:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10894,"name":"bool","nodeType":"ElementaryTypeName","src":"46367:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46366:13:24"},"scope":10964,"src":"46298:256:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10910,"nodeType":"Block","src":"46727:774:24","statements":[{"AST":{"nativeSrc":"46789:706:24","nodeType":"YulBlock","src":"46789:706:24","statements":[{"nativeSrc":"46881:46:24","nodeType":"YulVariableDeclaration","src":"46881:46:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"46898:1:24","nodeType":"YulLiteral","src":"46898:1:24","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"46916:1:24","nodeType":"YulIdentifier","src":"46916:1:24"}],"functionName":{"name":"iszero","nativeSrc":"46909:6:24","nodeType":"YulIdentifier","src":"46909:6:24"},"nativeSrc":"46909:9:24","nodeType":"YulFunctionCall","src":"46909:9:24"}],"functionName":{"name":"not","nativeSrc":"46905:3:24","nodeType":"YulIdentifier","src":"46905:3:24"},"nativeSrc":"46905:14:24","nodeType":"YulFunctionCall","src":"46905:14:24"},{"kind":"number","nativeSrc":"46921:3:24","nodeType":"YulLiteral","src":"46921:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"46901:3:24","nodeType":"YulIdentifier","src":"46901:3:24"},"nativeSrc":"46901:24:24","nodeType":"YulFunctionCall","src":"46901:24:24"}],"functionName":{"name":"shl","nativeSrc":"46894:3:24","nodeType":"YulIdentifier","src":"46894:3:24"},"nativeSrc":"46894:32:24","nodeType":"YulFunctionCall","src":"46894:32:24"}],"functionName":{"name":"not","nativeSrc":"46890:3:24","nodeType":"YulIdentifier","src":"46890:3:24"},"nativeSrc":"46890:37:24","nodeType":"YulFunctionCall","src":"46890:37:24"},"variables":[{"name":"m","nativeSrc":"46885:1:24","nodeType":"YulTypedName","src":"46885:1:24","type":""}]},{"nativeSrc":"46957:45:24","nodeType":"YulVariableDeclaration","src":"46957:45:24","value":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"46973:1:24","nodeType":"YulIdentifier","src":"46973:1:24"},{"arguments":[{"name":"b","nativeSrc":"46979:1:24","nodeType":"YulIdentifier","src":"46979:1:24"},{"arguments":[{"name":"m","nativeSrc":"46986:1:24","nodeType":"YulIdentifier","src":"46986:1:24"},{"arguments":[{"name":"b","nativeSrc":"46993:1:24","nodeType":"YulIdentifier","src":"46993:1:24"},{"name":"m","nativeSrc":"46996:1:24","nodeType":"YulIdentifier","src":"46996:1:24"}],"functionName":{"name":"and","nativeSrc":"46989:3:24","nodeType":"YulIdentifier","src":"46989:3:24"},"nativeSrc":"46989:9:24","nodeType":"YulFunctionCall","src":"46989:9:24"}],"functionName":{"name":"add","nativeSrc":"46982:3:24","nodeType":"YulIdentifier","src":"46982:3:24"},"nativeSrc":"46982:17:24","nodeType":"YulFunctionCall","src":"46982:17:24"}],"functionName":{"name":"or","nativeSrc":"46976:2:24","nodeType":"YulIdentifier","src":"46976:2:24"},"nativeSrc":"46976:24:24","nodeType":"YulFunctionCall","src":"46976:24:24"}],"functionName":{"name":"or","nativeSrc":"46970:2:24","nodeType":"YulIdentifier","src":"46970:2:24"},"nativeSrc":"46970:31:24","nodeType":"YulFunctionCall","src":"46970:31:24"}],"functionName":{"name":"not","nativeSrc":"46966:3:24","nodeType":"YulIdentifier","src":"46966:3:24"},"nativeSrc":"46966:36:24","nodeType":"YulFunctionCall","src":"46966:36:24"},"variables":[{"name":"x","nativeSrc":"46961:1:24","nodeType":"YulTypedName","src":"46961:1:24","type":""}]},{"nativeSrc":"47015:44:24","nodeType":"YulVariableDeclaration","src":"47015:44:24","value":{"arguments":[{"kind":"number","nativeSrc":"47028:1:24","nodeType":"YulLiteral","src":"47028:1:24","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47049:3:24","nodeType":"YulLiteral","src":"47049:3:24","type":"","value":"128"},{"name":"x","nativeSrc":"47054:1:24","nodeType":"YulIdentifier","src":"47054:1:24"}],"functionName":{"name":"shr","nativeSrc":"47045:3:24","nodeType":"YulIdentifier","src":"47045:3:24"},"nativeSrc":"47045:11:24","nodeType":"YulFunctionCall","src":"47045:11:24"}],"functionName":{"name":"iszero","nativeSrc":"47038:6:24","nodeType":"YulIdentifier","src":"47038:6:24"},"nativeSrc":"47038:19:24","nodeType":"YulFunctionCall","src":"47038:19:24"}],"functionName":{"name":"iszero","nativeSrc":"47031:6:24","nodeType":"YulIdentifier","src":"47031:6:24"},"nativeSrc":"47031:27:24","nodeType":"YulFunctionCall","src":"47031:27:24"}],"functionName":{"name":"shl","nativeSrc":"47024:3:24","nodeType":"YulIdentifier","src":"47024:3:24"},"nativeSrc":"47024:35:24","nodeType":"YulFunctionCall","src":"47024:35:24"},"variables":[{"name":"r","nativeSrc":"47019:1:24","nodeType":"YulTypedName","src":"47019:1:24","type":""}]},{"nativeSrc":"47072:54:24","nodeType":"YulAssignment","src":"47072:54:24","value":{"arguments":[{"name":"r","nativeSrc":"47080:1:24","nodeType":"YulIdentifier","src":"47080:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47087:1:24","nodeType":"YulLiteral","src":"47087:1:24","type":"","value":"6"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47108:2:24","nodeType":"YulLiteral","src":"47108:2:24","type":"","value":"64"},{"arguments":[{"name":"r","nativeSrc":"47116:1:24","nodeType":"YulIdentifier","src":"47116:1:24"},{"name":"x","nativeSrc":"47119:1:24","nodeType":"YulIdentifier","src":"47119:1:24"}],"functionName":{"name":"shr","nativeSrc":"47112:3:24","nodeType":"YulIdentifier","src":"47112:3:24"},"nativeSrc":"47112:9:24","nodeType":"YulFunctionCall","src":"47112:9:24"}],"functionName":{"name":"shr","nativeSrc":"47104:3:24","nodeType":"YulIdentifier","src":"47104:3:24"},"nativeSrc":"47104:18:24","nodeType":"YulFunctionCall","src":"47104:18:24"}],"functionName":{"name":"iszero","nativeSrc":"47097:6:24","nodeType":"YulIdentifier","src":"47097:6:24"},"nativeSrc":"47097:26:24","nodeType":"YulFunctionCall","src":"47097:26:24"}],"functionName":{"name":"iszero","nativeSrc":"47090:6:24","nodeType":"YulIdentifier","src":"47090:6:24"},"nativeSrc":"47090:34:24","nodeType":"YulFunctionCall","src":"47090:34:24"}],"functionName":{"name":"shl","nativeSrc":"47083:3:24","nodeType":"YulIdentifier","src":"47083:3:24"},"nativeSrc":"47083:42:24","nodeType":"YulFunctionCall","src":"47083:42:24"}],"functionName":{"name":"or","nativeSrc":"47077:2:24","nodeType":"YulIdentifier","src":"47077:2:24"},"nativeSrc":"47077:49:24","nodeType":"YulFunctionCall","src":"47077:49:24"},"variableNames":[{"name":"r","nativeSrc":"47072:1:24","nodeType":"YulIdentifier","src":"47072:1:24"}]},{"nativeSrc":"47139:45:24","nodeType":"YulAssignment","src":"47139:45:24","value":{"arguments":[{"name":"r","nativeSrc":"47147:1:24","nodeType":"YulIdentifier","src":"47147:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47154:1:24","nodeType":"YulLiteral","src":"47154:1:24","type":"","value":"5"},{"arguments":[{"kind":"number","nativeSrc":"47160:10:24","nodeType":"YulLiteral","src":"47160:10:24","type":"","value":"0xffffffff"},{"arguments":[{"name":"r","nativeSrc":"47176:1:24","nodeType":"YulIdentifier","src":"47176:1:24"},{"name":"x","nativeSrc":"47179:1:24","nodeType":"YulIdentifier","src":"47179:1:24"}],"functionName":{"name":"shr","nativeSrc":"47172:3:24","nodeType":"YulIdentifier","src":"47172:3:24"},"nativeSrc":"47172:9:24","nodeType":"YulFunctionCall","src":"47172:9:24"}],"functionName":{"name":"lt","nativeSrc":"47157:2:24","nodeType":"YulIdentifier","src":"47157:2:24"},"nativeSrc":"47157:25:24","nodeType":"YulFunctionCall","src":"47157:25:24"}],"functionName":{"name":"shl","nativeSrc":"47150:3:24","nodeType":"YulIdentifier","src":"47150:3:24"},"nativeSrc":"47150:33:24","nodeType":"YulFunctionCall","src":"47150:33:24"}],"functionName":{"name":"or","nativeSrc":"47144:2:24","nodeType":"YulIdentifier","src":"47144:2:24"},"nativeSrc":"47144:40:24","nodeType":"YulFunctionCall","src":"47144:40:24"},"variableNames":[{"name":"r","nativeSrc":"47139:1:24","nodeType":"YulIdentifier","src":"47139:1:24"}]},{"nativeSrc":"47197:41:24","nodeType":"YulAssignment","src":"47197:41:24","value":{"arguments":[{"name":"r","nativeSrc":"47205:1:24","nodeType":"YulIdentifier","src":"47205:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47212:1:24","nodeType":"YulLiteral","src":"47212:1:24","type":"","value":"4"},{"arguments":[{"kind":"number","nativeSrc":"47218:6:24","nodeType":"YulLiteral","src":"47218:6:24","type":"","value":"0xffff"},{"arguments":[{"name":"r","nativeSrc":"47230:1:24","nodeType":"YulIdentifier","src":"47230:1:24"},{"name":"x","nativeSrc":"47233:1:24","nodeType":"YulIdentifier","src":"47233:1:24"}],"functionName":{"name":"shr","nativeSrc":"47226:3:24","nodeType":"YulIdentifier","src":"47226:3:24"},"nativeSrc":"47226:9:24","nodeType":"YulFunctionCall","src":"47226:9:24"}],"functionName":{"name":"lt","nativeSrc":"47215:2:24","nodeType":"YulIdentifier","src":"47215:2:24"},"nativeSrc":"47215:21:24","nodeType":"YulFunctionCall","src":"47215:21:24"}],"functionName":{"name":"shl","nativeSrc":"47208:3:24","nodeType":"YulIdentifier","src":"47208:3:24"},"nativeSrc":"47208:29:24","nodeType":"YulFunctionCall","src":"47208:29:24"}],"functionName":{"name":"or","nativeSrc":"47202:2:24","nodeType":"YulIdentifier","src":"47202:2:24"},"nativeSrc":"47202:36:24","nodeType":"YulFunctionCall","src":"47202:36:24"},"variableNames":[{"name":"r","nativeSrc":"47197:1:24","nodeType":"YulIdentifier","src":"47197:1:24"}]},{"nativeSrc":"47251:39:24","nodeType":"YulAssignment","src":"47251:39:24","value":{"arguments":[{"name":"r","nativeSrc":"47259:1:24","nodeType":"YulIdentifier","src":"47259:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47266:1:24","nodeType":"YulLiteral","src":"47266:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"47272:4:24","nodeType":"YulLiteral","src":"47272:4:24","type":"","value":"0xff"},{"arguments":[{"name":"r","nativeSrc":"47282:1:24","nodeType":"YulIdentifier","src":"47282:1:24"},{"name":"x","nativeSrc":"47285:1:24","nodeType":"YulIdentifier","src":"47285:1:24"}],"functionName":{"name":"shr","nativeSrc":"47278:3:24","nodeType":"YulIdentifier","src":"47278:3:24"},"nativeSrc":"47278:9:24","nodeType":"YulFunctionCall","src":"47278:9:24"}],"functionName":{"name":"lt","nativeSrc":"47269:2:24","nodeType":"YulIdentifier","src":"47269:2:24"},"nativeSrc":"47269:19:24","nodeType":"YulFunctionCall","src":"47269:19:24"}],"functionName":{"name":"shl","nativeSrc":"47262:3:24","nodeType":"YulIdentifier","src":"47262:3:24"},"nativeSrc":"47262:27:24","nodeType":"YulFunctionCall","src":"47262:27:24"}],"functionName":{"name":"or","nativeSrc":"47256:2:24","nodeType":"YulIdentifier","src":"47256:2:24"},"nativeSrc":"47256:34:24","nodeType":"YulFunctionCall","src":"47256:34:24"},"variableNames":[{"name":"r","nativeSrc":"47251:1:24","nodeType":"YulIdentifier","src":"47251:1:24"}]},{"nativeSrc":"47346:139:24","nodeType":"YulAssignment","src":"47346:139:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"47368:1:24","nodeType":"YulIdentifier","src":"47368:1:24"}],"functionName":{"name":"mload","nativeSrc":"47362:5:24","nodeType":"YulIdentifier","src":"47362:5:24"},"nativeSrc":"47362:8:24","nodeType":"YulFunctionCall","src":"47362:8:24"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"47383:1:24","nodeType":"YulIdentifier","src":"47383:1:24"}],"functionName":{"name":"iszero","nativeSrc":"47376:6:24","nodeType":"YulIdentifier","src":"47376:6:24"},"nativeSrc":"47376:9:24","nodeType":"YulFunctionCall","src":"47376:9:24"},{"arguments":[{"kind":"number","nativeSrc":"47391:2:24","nodeType":"YulLiteral","src":"47391:2:24","type":"","value":"31"},{"arguments":[{"kind":"number","nativeSrc":"47399:1:24","nodeType":"YulLiteral","src":"47399:1:24","type":"","value":"3"},{"name":"r","nativeSrc":"47402:1:24","nodeType":"YulIdentifier","src":"47402:1:24"}],"functionName":{"name":"shr","nativeSrc":"47395:3:24","nodeType":"YulIdentifier","src":"47395:3:24"},"nativeSrc":"47395:9:24","nodeType":"YulFunctionCall","src":"47395:9:24"}],"functionName":{"name":"xor","nativeSrc":"47387:3:24","nodeType":"YulIdentifier","src":"47387:3:24"},"nativeSrc":"47387:18:24","nodeType":"YulFunctionCall","src":"47387:18:24"}],"functionName":{"name":"add","nativeSrc":"47372:3:24","nodeType":"YulIdentifier","src":"47372:3:24"},"nativeSrc":"47372:34:24","nodeType":"YulFunctionCall","src":"47372:34:24"}],"functionName":{"name":"eq","nativeSrc":"47359:2:24","nodeType":"YulIdentifier","src":"47359:2:24"},"nativeSrc":"47359:48:24","nodeType":"YulFunctionCall","src":"47359:48:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47437:1:24","nodeType":"YulLiteral","src":"47437:1:24","type":"","value":"8"},{"name":"r","nativeSrc":"47440:1:24","nodeType":"YulIdentifier","src":"47440:1:24"}],"functionName":{"name":"add","nativeSrc":"47433:3:24","nodeType":"YulIdentifier","src":"47433:3:24"},"nativeSrc":"47433:9:24","nodeType":"YulFunctionCall","src":"47433:9:24"},{"name":"b","nativeSrc":"47444:1:24","nodeType":"YulIdentifier","src":"47444:1:24"}],"functionName":{"name":"shr","nativeSrc":"47429:3:24","nodeType":"YulIdentifier","src":"47429:3:24"},"nativeSrc":"47429:17:24","nodeType":"YulFunctionCall","src":"47429:17:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47456:1:24","nodeType":"YulLiteral","src":"47456:1:24","type":"","value":"8"},{"name":"r","nativeSrc":"47459:1:24","nodeType":"YulIdentifier","src":"47459:1:24"}],"functionName":{"name":"add","nativeSrc":"47452:3:24","nodeType":"YulIdentifier","src":"47452:3:24"},"nativeSrc":"47452:9:24","nodeType":"YulFunctionCall","src":"47452:9:24"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"47473:1:24","nodeType":"YulIdentifier","src":"47473:1:24"},{"kind":"number","nativeSrc":"47476:4:24","nodeType":"YulLiteral","src":"47476:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"47469:3:24","nodeType":"YulIdentifier","src":"47469:3:24"},"nativeSrc":"47469:12:24","nodeType":"YulFunctionCall","src":"47469:12:24"}],"functionName":{"name":"mload","nativeSrc":"47463:5:24","nodeType":"YulIdentifier","src":"47463:5:24"},"nativeSrc":"47463:19:24","nodeType":"YulFunctionCall","src":"47463:19:24"}],"functionName":{"name":"shr","nativeSrc":"47448:3:24","nodeType":"YulIdentifier","src":"47448:3:24"},"nativeSrc":"47448:35:24","nodeType":"YulFunctionCall","src":"47448:35:24"}],"functionName":{"name":"xor","nativeSrc":"47425:3:24","nodeType":"YulIdentifier","src":"47425:3:24"},"nativeSrc":"47425:59:24","nodeType":"YulFunctionCall","src":"47425:59:24"}],"functionName":{"name":"gt","nativeSrc":"47356:2:24","nodeType":"YulIdentifier","src":"47356:2:24"},"nativeSrc":"47356:129:24","nodeType":"YulFunctionCall","src":"47356:129:24"},"variableNames":[{"name":"result","nativeSrc":"47346:6:24","nodeType":"YulIdentifier","src":"47346:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10902,"isOffset":false,"isSlot":false,"src":"47368:1:24","valueSize":1},{"declaration":10902,"isOffset":false,"isSlot":false,"src":"47473:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"46916:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"46979:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"46993:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"47444:1:24","valueSize":1},{"declaration":10907,"isOffset":false,"isSlot":false,"src":"47346:6:24","valueSize":1}],"id":10909,"nodeType":"InlineAssembly","src":"46780:715:24"}]},"documentation":{"id":10900,"nodeType":"StructuredDocumentation","src":"46560:85:24","text":"@dev Returns whether `a` equals `b`, where `b` is a null-terminated small string."},"id":10911,"implemented":true,"kind":"function","modifiers":[],"name":"eqs","nameLocation":"46659:3:24","nodeType":"FunctionDefinition","parameters":{"id":10905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10902,"mutability":"mutable","name":"a","nameLocation":"46677:1:24","nodeType":"VariableDeclaration","scope":10911,"src":"46663:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10901,"name":"string","nodeType":"ElementaryTypeName","src":"46663:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10904,"mutability":"mutable","name":"b","nameLocation":"46688:1:24","nodeType":"VariableDeclaration","scope":10911,"src":"46680:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46680:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46662:28:24"},"returnParameters":{"id":10908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10907,"mutability":"mutable","name":"result","nameLocation":"46719:6:24","nodeType":"VariableDeclaration","scope":10911,"src":"46714:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10906,"name":"bool","nodeType":"ElementaryTypeName","src":"46714:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46713:13:24"},"scope":10964,"src":"46650:851:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10920,"nodeType":"Block","src":"47722:573:24","statements":[{"AST":{"nativeSrc":"47784:505:24","nodeType":"YulBlock","src":"47784:505:24","statements":[{"nativeSrc":"47930:349:24","nodeType":"YulAssignment","src":"47930:349:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"48045:1:24","nodeType":"YulIdentifier","src":"48045:1:24"},{"kind":"number","nativeSrc":"48048:4:24","nodeType":"YulLiteral","src":"48048:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"48041:3:24","nodeType":"YulIdentifier","src":"48041:3:24"},"nativeSrc":"48041:12:24","nodeType":"YulFunctionCall","src":"48041:12:24"}],"functionName":{"name":"mload","nativeSrc":"48035:5:24","nodeType":"YulIdentifier","src":"48035:5:24"},"nativeSrc":"48035:19:24","nodeType":"YulFunctionCall","src":"48035:19:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"48248:1:24","nodeType":"YulIdentifier","src":"48248:1:24"}],"functionName":{"name":"mload","nativeSrc":"48242:5:24","nodeType":"YulIdentifier","src":"48242:5:24"},"nativeSrc":"48242:8:24","nodeType":"YulFunctionCall","src":"48242:8:24"},{"kind":"number","nativeSrc":"48252:1:24","nodeType":"YulLiteral","src":"48252:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"48238:3:24","nodeType":"YulIdentifier","src":"48238:3:24"},"nativeSrc":"48238:16:24","nodeType":"YulFunctionCall","src":"48238:16:24"},{"kind":"number","nativeSrc":"48256:4:24","nodeType":"YulLiteral","src":"48256:4:24","type":"","value":"0x1f"}],"functionName":{"name":"lt","nativeSrc":"48235:2:24","nodeType":"YulIdentifier","src":"48235:2:24"},"nativeSrc":"48235:26:24","nodeType":"YulFunctionCall","src":"48235:26:24"}],"functionName":{"name":"mul","nativeSrc":"47956:3:24","nodeType":"YulIdentifier","src":"47956:3:24"},"nativeSrc":"47956:323:24","nodeType":"YulFunctionCall","src":"47956:323:24"},"variableNames":[{"name":"result","nativeSrc":"47930:6:24","nodeType":"YulIdentifier","src":"47930:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10914,"isOffset":false,"isSlot":false,"src":"48045:1:24","valueSize":1},{"declaration":10914,"isOffset":false,"isSlot":false,"src":"48248:1:24","valueSize":1},{"declaration":10917,"isOffset":false,"isSlot":false,"src":"47930:6:24","valueSize":1}],"id":10919,"nodeType":"InlineAssembly","src":"47775:514:24"}]},"documentation":{"id":10912,"nodeType":"StructuredDocumentation","src":"47507:137:24","text":"@dev Packs a single string with its length into a single word.\n Returns `bytes32(0)` if the length is zero or greater than 31."},"id":10921,"implemented":true,"kind":"function","modifiers":[],"name":"packOne","nameLocation":"47658:7:24","nodeType":"FunctionDefinition","parameters":{"id":10915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10914,"mutability":"mutable","name":"a","nameLocation":"47680:1:24","nodeType":"VariableDeclaration","scope":10921,"src":"47666:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10913,"name":"string","nodeType":"ElementaryTypeName","src":"47666:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47665:17:24"},"returnParameters":{"id":10918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10917,"mutability":"mutable","name":"result","nameLocation":"47714:6:24","nodeType":"VariableDeclaration","scope":10921,"src":"47706:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47706:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"47705:16:24"},"scope":10964,"src":"47649:646:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10930,"nodeType":"Block","src":"48582:529:24","statements":[{"AST":{"nativeSrc":"48644:461:24","nodeType":"YulBlock","src":"48644:461:24","statements":[{"nativeSrc":"48703:21:24","nodeType":"YulAssignment","src":"48703:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"48719:4:24","nodeType":"YulLiteral","src":"48719:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"48713:5:24","nodeType":"YulIdentifier","src":"48713:5:24"},"nativeSrc":"48713:11:24","nodeType":"YulFunctionCall","src":"48713:11:24"},"variableNames":[{"name":"result","nativeSrc":"48703:6:24","nodeType":"YulIdentifier","src":"48703:6:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48813:4:24","nodeType":"YulLiteral","src":"48813:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"48823:6:24","nodeType":"YulIdentifier","src":"48823:6:24"},{"kind":"number","nativeSrc":"48831:4:24","nodeType":"YulLiteral","src":"48831:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"48819:3:24","nodeType":"YulIdentifier","src":"48819:3:24"},"nativeSrc":"48819:17:24","nodeType":"YulFunctionCall","src":"48819:17:24"}],"functionName":{"name":"mstore","nativeSrc":"48806:6:24","nodeType":"YulIdentifier","src":"48806:6:24"},"nativeSrc":"48806:31:24","nodeType":"YulFunctionCall","src":"48806:31:24"},"nativeSrc":"48806:31:24","nodeType":"YulExpressionStatement","src":"48806:31:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"48897:6:24","nodeType":"YulIdentifier","src":"48897:6:24"},{"kind":"number","nativeSrc":"48905:1:24","nodeType":"YulLiteral","src":"48905:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"48890:6:24","nodeType":"YulIdentifier","src":"48890:6:24"},"nativeSrc":"48890:17:24","nodeType":"YulFunctionCall","src":"48890:17:24"},"nativeSrc":"48890:17:24","nodeType":"YulExpressionStatement","src":"48890:17:24"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"48974:6:24","nodeType":"YulIdentifier","src":"48974:6:24"},{"kind":"number","nativeSrc":"48982:4:24","nodeType":"YulLiteral","src":"48982:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"48970:3:24","nodeType":"YulIdentifier","src":"48970:3:24"},"nativeSrc":"48970:17:24","nodeType":"YulFunctionCall","src":"48970:17:24"},{"name":"packed","nativeSrc":"48989:6:24","nodeType":"YulIdentifier","src":"48989:6:24"}],"functionName":{"name":"mstore","nativeSrc":"48963:6:24","nodeType":"YulIdentifier","src":"48963:6:24"},"nativeSrc":"48963:33:24","nodeType":"YulFunctionCall","src":"48963:33:24"},"nativeSrc":"48963:33:24","nodeType":"YulExpressionStatement","src":"48963:33:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"49062:6:24","nodeType":"YulIdentifier","src":"49062:6:24"},{"kind":"number","nativeSrc":"49070:4:24","nodeType":"YulLiteral","src":"49070:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"49058:3:24","nodeType":"YulIdentifier","src":"49058:3:24"},"nativeSrc":"49058:17:24","nodeType":"YulFunctionCall","src":"49058:17:24"},{"arguments":[{"name":"result","nativeSrc":"49083:6:24","nodeType":"YulIdentifier","src":"49083:6:24"}],"functionName":{"name":"mload","nativeSrc":"49077:5:24","nodeType":"YulIdentifier","src":"49077:5:24"},"nativeSrc":"49077:13:24","nodeType":"YulFunctionCall","src":"49077:13:24"}],"functionName":{"name":"add","nativeSrc":"49054:3:24","nodeType":"YulIdentifier","src":"49054:3:24"},"nativeSrc":"49054:37:24","nodeType":"YulFunctionCall","src":"49054:37:24"},{"kind":"number","nativeSrc":"49093:1:24","nodeType":"YulLiteral","src":"49093:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"49047:6:24","nodeType":"YulIdentifier","src":"49047:6:24"},"nativeSrc":"49047:48:24","nodeType":"YulFunctionCall","src":"49047:48:24"},"nativeSrc":"49047:48:24","nodeType":"YulExpressionStatement","src":"49047:48:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10924,"isOffset":false,"isSlot":false,"src":"48989:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48703:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48823:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48897:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48974:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"49062:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"49083:6:24","valueSize":1}],"id":10929,"nodeType":"InlineAssembly","src":"48635:470:24"}]},"documentation":{"id":10922,"nodeType":"StructuredDocumentation","src":"48301:196:24","text":"@dev Unpacks a string packed using {packOne}.\n Returns the empty string if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packOne}, the output behavior is undefined."},"id":10931,"implemented":true,"kind":"function","modifiers":[],"name":"unpackOne","nameLocation":"48511:9:24","nodeType":"FunctionDefinition","parameters":{"id":10925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10924,"mutability":"mutable","name":"packed","nameLocation":"48529:6:24","nodeType":"VariableDeclaration","scope":10931,"src":"48521:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48521:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48520:16:24"},"returnParameters":{"id":10928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10927,"mutability":"mutable","name":"result","nameLocation":"48574:6:24","nodeType":"VariableDeclaration","scope":10931,"src":"48560:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10926,"name":"string","nodeType":"ElementaryTypeName","src":"48560:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48559:22:24"},"scope":10964,"src":"48502:609:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10942,"nodeType":"Block","src":"49353:796:24","statements":[{"AST":{"nativeSrc":"49415:728:24","nodeType":"YulBlock","src":"49415:728:24","statements":[{"nativeSrc":"49429:23:24","nodeType":"YulVariableDeclaration","src":"49429:23:24","value":{"arguments":[{"name":"a","nativeSrc":"49450:1:24","nodeType":"YulIdentifier","src":"49450:1:24"}],"functionName":{"name":"mload","nativeSrc":"49444:5:24","nodeType":"YulIdentifier","src":"49444:5:24"},"nativeSrc":"49444:8:24","nodeType":"YulFunctionCall","src":"49444:8:24"},"variables":[{"name":"aLength","nativeSrc":"49433:7:24","nodeType":"YulTypedName","src":"49433:7:24","type":""}]},{"nativeSrc":"49598:535:24","nodeType":"YulAssignment","src":"49598:535:24","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"49754:1:24","nodeType":"YulLiteral","src":"49754:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"49761:4:24","nodeType":"YulLiteral","src":"49761:4:24","type":"","value":"0x1f"},{"name":"aLength","nativeSrc":"49767:7:24","nodeType":"YulIdentifier","src":"49767:7:24"}],"functionName":{"name":"sub","nativeSrc":"49757:3:24","nodeType":"YulIdentifier","src":"49757:3:24"},"nativeSrc":"49757:18:24","nodeType":"YulFunctionCall","src":"49757:18:24"}],"functionName":{"name":"shl","nativeSrc":"49750:3:24","nodeType":"YulIdentifier","src":"49750:3:24"},"nativeSrc":"49750:26:24","nodeType":"YulFunctionCall","src":"49750:26:24"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"49788:1:24","nodeType":"YulIdentifier","src":"49788:1:24"},{"name":"aLength","nativeSrc":"49791:7:24","nodeType":"YulIdentifier","src":"49791:7:24"}],"functionName":{"name":"add","nativeSrc":"49784:3:24","nodeType":"YulIdentifier","src":"49784:3:24"},"nativeSrc":"49784:15:24","nodeType":"YulFunctionCall","src":"49784:15:24"}],"functionName":{"name":"mload","nativeSrc":"49778:5:24","nodeType":"YulIdentifier","src":"49778:5:24"},"nativeSrc":"49778:22:24","nodeType":"YulFunctionCall","src":"49778:22:24"}],"functionName":{"name":"shl","nativeSrc":"49746:3:24","nodeType":"YulIdentifier","src":"49746:3:24"},"nativeSrc":"49746:55:24","nodeType":"YulFunctionCall","src":"49746:55:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"49841:1:24","nodeType":"YulIdentifier","src":"49841:1:24"},{"kind":"number","nativeSrc":"49844:4:24","nodeType":"YulLiteral","src":"49844:4:24","type":"","value":"0x1e"}],"functionName":{"name":"add","nativeSrc":"49837:3:24","nodeType":"YulIdentifier","src":"49837:3:24"},"nativeSrc":"49837:12:24","nodeType":"YulFunctionCall","src":"49837:12:24"},{"name":"aLength","nativeSrc":"49851:7:24","nodeType":"YulIdentifier","src":"49851:7:24"}],"functionName":{"name":"sub","nativeSrc":"49833:3:24","nodeType":"YulIdentifier","src":"49833:3:24"},"nativeSrc":"49833:26:24","nodeType":"YulFunctionCall","src":"49833:26:24"}],"functionName":{"name":"mload","nativeSrc":"49827:5:24","nodeType":"YulIdentifier","src":"49827:5:24"},"nativeSrc":"49827:33:24","nodeType":"YulFunctionCall","src":"49827:33:24"}],"functionName":{"name":"or","nativeSrc":"49718:2:24","nodeType":"YulIdentifier","src":"49718:2:24"},"nativeSrc":"49718:164:24","nodeType":"YulFunctionCall","src":"49718:164:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"aLength","nativeSrc":"50086:7:24","nodeType":"YulIdentifier","src":"50086:7:24"},{"arguments":[{"name":"b","nativeSrc":"50101:1:24","nodeType":"YulIdentifier","src":"50101:1:24"}],"functionName":{"name":"mload","nativeSrc":"50095:5:24","nodeType":"YulIdentifier","src":"50095:5:24"},"nativeSrc":"50095:8:24","nodeType":"YulFunctionCall","src":"50095:8:24"}],"functionName":{"name":"add","nativeSrc":"50082:3:24","nodeType":"YulIdentifier","src":"50082:3:24"},"nativeSrc":"50082:22:24","nodeType":"YulFunctionCall","src":"50082:22:24"},{"kind":"number","nativeSrc":"50106:1:24","nodeType":"YulLiteral","src":"50106:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"50078:3:24","nodeType":"YulIdentifier","src":"50078:3:24"},"nativeSrc":"50078:30:24","nodeType":"YulFunctionCall","src":"50078:30:24"},{"kind":"number","nativeSrc":"50110:4:24","nodeType":"YulLiteral","src":"50110:4:24","type":"","value":"0x1e"}],"functionName":{"name":"lt","nativeSrc":"50075:2:24","nodeType":"YulIdentifier","src":"50075:2:24"},"nativeSrc":"50075:40:24","nodeType":"YulFunctionCall","src":"50075:40:24"}],"functionName":{"name":"mul","nativeSrc":"49624:3:24","nodeType":"YulIdentifier","src":"49624:3:24"},"nativeSrc":"49624:509:24","nodeType":"YulFunctionCall","src":"49624:509:24"},"variableNames":[{"name":"result","nativeSrc":"49598:6:24","nodeType":"YulIdentifier","src":"49598:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10934,"isOffset":false,"isSlot":false,"src":"49450:1:24","valueSize":1},{"declaration":10934,"isOffset":false,"isSlot":false,"src":"49788:1:24","valueSize":1},{"declaration":10936,"isOffset":false,"isSlot":false,"src":"49841:1:24","valueSize":1},{"declaration":10936,"isOffset":false,"isSlot":false,"src":"50101:1:24","valueSize":1},{"declaration":10939,"isOffset":false,"isSlot":false,"src":"49598:6:24","valueSize":1}],"id":10941,"nodeType":"InlineAssembly","src":"49406:737:24"}]},"documentation":{"id":10932,"nodeType":"StructuredDocumentation","src":"49117:141:24","text":"@dev Packs two strings with their lengths into a single word.\n Returns `bytes32(0)` if combined length is zero or greater than 30."},"id":10943,"implemented":true,"kind":"function","modifiers":[],"name":"packTwo","nameLocation":"49272:7:24","nodeType":"FunctionDefinition","parameters":{"id":10937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10934,"mutability":"mutable","name":"a","nameLocation":"49294:1:24","nodeType":"VariableDeclaration","scope":10943,"src":"49280:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10933,"name":"string","nodeType":"ElementaryTypeName","src":"49280:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10936,"mutability":"mutable","name":"b","nameLocation":"49311:1:24","nodeType":"VariableDeclaration","scope":10943,"src":"49297:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10935,"name":"string","nodeType":"ElementaryTypeName","src":"49297:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49279:34:24"},"returnParameters":{"id":10940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10939,"mutability":"mutable","name":"result","nameLocation":"49345:6:24","nodeType":"VariableDeclaration","scope":10943,"src":"49337:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49337:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49336:16:24"},"scope":10964,"src":"49263:886:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10954,"nodeType":"Block","src":"50488:790:24","statements":[{"AST":{"nativeSrc":"50550:722:24","nodeType":"YulBlock","src":"50550:722:24","statements":[{"nativeSrc":"50609:22:24","nodeType":"YulAssignment","src":"50609:22:24","value":{"arguments":[{"kind":"number","nativeSrc":"50626:4:24","nodeType":"YulLiteral","src":"50626:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"50620:5:24","nodeType":"YulIdentifier","src":"50620:5:24"},"nativeSrc":"50620:11:24","nodeType":"YulFunctionCall","src":"50620:11:24"},"variableNames":[{"name":"resultA","nativeSrc":"50609:7:24","nodeType":"YulIdentifier","src":"50609:7:24"}]},{"nativeSrc":"50644:29:24","nodeType":"YulAssignment","src":"50644:29:24","value":{"arguments":[{"name":"resultA","nativeSrc":"50659:7:24","nodeType":"YulIdentifier","src":"50659:7:24"},{"kind":"number","nativeSrc":"50668:4:24","nodeType":"YulLiteral","src":"50668:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"50655:3:24","nodeType":"YulIdentifier","src":"50655:3:24"},"nativeSrc":"50655:18:24","nodeType":"YulFunctionCall","src":"50655:18:24"},"variableNames":[{"name":"resultB","nativeSrc":"50644:7:24","nodeType":"YulIdentifier","src":"50644:7:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50792:4:24","nodeType":"YulLiteral","src":"50792:4:24","type":"","value":"0x40"},{"arguments":[{"name":"resultB","nativeSrc":"50802:7:24","nodeType":"YulIdentifier","src":"50802:7:24"},{"kind":"number","nativeSrc":"50811:4:24","nodeType":"YulLiteral","src":"50811:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"50798:3:24","nodeType":"YulIdentifier","src":"50798:3:24"},"nativeSrc":"50798:18:24","nodeType":"YulFunctionCall","src":"50798:18:24"}],"functionName":{"name":"mstore","nativeSrc":"50785:6:24","nodeType":"YulIdentifier","src":"50785:6:24"},"nativeSrc":"50785:32:24","nodeType":"YulFunctionCall","src":"50785:32:24"},"nativeSrc":"50785:32:24","nodeType":"YulExpressionStatement","src":"50785:32:24"},{"expression":{"arguments":[{"name":"resultA","nativeSrc":"50878:7:24","nodeType":"YulIdentifier","src":"50878:7:24"},{"kind":"number","nativeSrc":"50887:1:24","nodeType":"YulLiteral","src":"50887:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50871:6:24","nodeType":"YulIdentifier","src":"50871:6:24"},"nativeSrc":"50871:18:24","nodeType":"YulFunctionCall","src":"50871:18:24"},"nativeSrc":"50871:18:24","nodeType":"YulExpressionStatement","src":"50871:18:24"},{"expression":{"arguments":[{"name":"resultB","nativeSrc":"50909:7:24","nodeType":"YulIdentifier","src":"50909:7:24"},{"kind":"number","nativeSrc":"50918:1:24","nodeType":"YulLiteral","src":"50918:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50902:6:24","nodeType":"YulIdentifier","src":"50902:6:24"},"nativeSrc":"50902:18:24","nodeType":"YulFunctionCall","src":"50902:18:24"},"nativeSrc":"50902:18:24","nodeType":"YulExpressionStatement","src":"50902:18:24"},{"expression":{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"50988:7:24","nodeType":"YulIdentifier","src":"50988:7:24"},{"kind":"number","nativeSrc":"50997:4:24","nodeType":"YulLiteral","src":"50997:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"50984:3:24","nodeType":"YulIdentifier","src":"50984:3:24"},"nativeSrc":"50984:18:24","nodeType":"YulFunctionCall","src":"50984:18:24"},{"name":"packed","nativeSrc":"51004:6:24","nodeType":"YulIdentifier","src":"51004:6:24"}],"functionName":{"name":"mstore","nativeSrc":"50977:6:24","nodeType":"YulIdentifier","src":"50977:6:24"},"nativeSrc":"50977:34:24","nodeType":"YulFunctionCall","src":"50977:34:24"},"nativeSrc":"50977:34:24","nodeType":"YulExpressionStatement","src":"50977:34:24"},{"expression":{"arguments":[{"arguments":[{"name":"resultB","nativeSrc":"51035:7:24","nodeType":"YulIdentifier","src":"51035:7:24"},{"kind":"number","nativeSrc":"51044:4:24","nodeType":"YulLiteral","src":"51044:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"51031:3:24","nodeType":"YulIdentifier","src":"51031:3:24"},"nativeSrc":"51031:18:24","nodeType":"YulFunctionCall","src":"51031:18:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"51065:7:24","nodeType":"YulIdentifier","src":"51065:7:24"},{"kind":"number","nativeSrc":"51074:4:24","nodeType":"YulLiteral","src":"51074:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51061:3:24","nodeType":"YulIdentifier","src":"51061:3:24"},"nativeSrc":"51061:18:24","nodeType":"YulFunctionCall","src":"51061:18:24"},{"arguments":[{"name":"resultA","nativeSrc":"51087:7:24","nodeType":"YulIdentifier","src":"51087:7:24"}],"functionName":{"name":"mload","nativeSrc":"51081:5:24","nodeType":"YulIdentifier","src":"51081:5:24"},"nativeSrc":"51081:14:24","nodeType":"YulFunctionCall","src":"51081:14:24"}],"functionName":{"name":"add","nativeSrc":"51057:3:24","nodeType":"YulIdentifier","src":"51057:3:24"},"nativeSrc":"51057:39:24","nodeType":"YulFunctionCall","src":"51057:39:24"}],"functionName":{"name":"mload","nativeSrc":"51051:5:24","nodeType":"YulIdentifier","src":"51051:5:24"},"nativeSrc":"51051:46:24","nodeType":"YulFunctionCall","src":"51051:46:24"}],"functionName":{"name":"mstore","nativeSrc":"51024:6:24","nodeType":"YulIdentifier","src":"51024:6:24"},"nativeSrc":"51024:74:24","nodeType":"YulFunctionCall","src":"51024:74:24"},"nativeSrc":"51024:74:24","nodeType":"YulExpressionStatement","src":"51024:74:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"51164:7:24","nodeType":"YulIdentifier","src":"51164:7:24"},{"kind":"number","nativeSrc":"51173:4:24","nodeType":"YulLiteral","src":"51173:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51160:3:24","nodeType":"YulIdentifier","src":"51160:3:24"},"nativeSrc":"51160:18:24","nodeType":"YulFunctionCall","src":"51160:18:24"},{"arguments":[{"name":"resultA","nativeSrc":"51186:7:24","nodeType":"YulIdentifier","src":"51186:7:24"}],"functionName":{"name":"mload","nativeSrc":"51180:5:24","nodeType":"YulIdentifier","src":"51180:5:24"},"nativeSrc":"51180:14:24","nodeType":"YulFunctionCall","src":"51180:14:24"}],"functionName":{"name":"add","nativeSrc":"51156:3:24","nodeType":"YulIdentifier","src":"51156:3:24"},"nativeSrc":"51156:39:24","nodeType":"YulFunctionCall","src":"51156:39:24"},{"kind":"number","nativeSrc":"51197:1:24","nodeType":"YulLiteral","src":"51197:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51149:6:24","nodeType":"YulIdentifier","src":"51149:6:24"},"nativeSrc":"51149:50:24","nodeType":"YulFunctionCall","src":"51149:50:24"},"nativeSrc":"51149:50:24","nodeType":"YulExpressionStatement","src":"51149:50:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultB","nativeSrc":"51227:7:24","nodeType":"YulIdentifier","src":"51227:7:24"},{"kind":"number","nativeSrc":"51236:4:24","nodeType":"YulLiteral","src":"51236:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51223:3:24","nodeType":"YulIdentifier","src":"51223:3:24"},"nativeSrc":"51223:18:24","nodeType":"YulFunctionCall","src":"51223:18:24"},{"arguments":[{"name":"resultB","nativeSrc":"51249:7:24","nodeType":"YulIdentifier","src":"51249:7:24"}],"functionName":{"name":"mload","nativeSrc":"51243:5:24","nodeType":"YulIdentifier","src":"51243:5:24"},"nativeSrc":"51243:14:24","nodeType":"YulFunctionCall","src":"51243:14:24"}],"functionName":{"name":"add","nativeSrc":"51219:3:24","nodeType":"YulIdentifier","src":"51219:3:24"},"nativeSrc":"51219:39:24","nodeType":"YulFunctionCall","src":"51219:39:24"},{"kind":"number","nativeSrc":"51260:1:24","nodeType":"YulLiteral","src":"51260:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51212:6:24","nodeType":"YulIdentifier","src":"51212:6:24"},"nativeSrc":"51212:50:24","nodeType":"YulFunctionCall","src":"51212:50:24"},"nativeSrc":"51212:50:24","nodeType":"YulExpressionStatement","src":"51212:50:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10946,"isOffset":false,"isSlot":false,"src":"51004:6:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50609:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50659:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50878:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50988:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51065:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51087:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51164:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51186:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"50644:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"50802:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"50909:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"51035:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"51227:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"51249:7:24","valueSize":1}],"id":10953,"nodeType":"InlineAssembly","src":"50541:731:24"}]},"documentation":{"id":10944,"nodeType":"StructuredDocumentation","src":"50155:196:24","text":"@dev Unpacks strings packed using {packTwo}.\n Returns the empty strings if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packTwo}, the output behavior is undefined."},"id":10955,"implemented":true,"kind":"function","modifiers":[],"name":"unpackTwo","nameLocation":"50365:9:24","nodeType":"FunctionDefinition","parameters":{"id":10947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10946,"mutability":"mutable","name":"packed","nameLocation":"50383:6:24","nodeType":"VariableDeclaration","scope":10955,"src":"50375:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50375:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50374:16:24"},"returnParameters":{"id":10952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10949,"mutability":"mutable","name":"resultA","nameLocation":"50452:7:24","nodeType":"VariableDeclaration","scope":10955,"src":"50438:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10948,"name":"string","nodeType":"ElementaryTypeName","src":"50438:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10951,"mutability":"mutable","name":"resultB","nameLocation":"50475:7:24","nodeType":"VariableDeclaration","scope":10955,"src":"50461:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10950,"name":"string","nodeType":"ElementaryTypeName","src":"50461:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50437:46:24"},"scope":10964,"src":"50356:922:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10962,"nodeType":"Block","src":"51388:600:24","statements":[{"AST":{"nativeSrc":"51407:575:24","nodeType":"YulBlock","src":"51407:575:24","statements":[{"nativeSrc":"51499:28:24","nodeType":"YulVariableDeclaration","src":"51499:28:24","value":{"arguments":[{"name":"a","nativeSrc":"51519:1:24","nodeType":"YulIdentifier","src":"51519:1:24"},{"kind":"number","nativeSrc":"51522:4:24","nodeType":"YulLiteral","src":"51522:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"51515:3:24","nodeType":"YulIdentifier","src":"51515:3:24"},"nativeSrc":"51515:12:24","nodeType":"YulFunctionCall","src":"51515:12:24"},"variables":[{"name":"retStart","nativeSrc":"51503:8:24","nodeType":"YulTypedName","src":"51503:8:24","type":""}]},{"nativeSrc":"51540:42:24","nodeType":"YulVariableDeclaration","src":"51540:42:24","value":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"51573:1:24","nodeType":"YulIdentifier","src":"51573:1:24"}],"functionName":{"name":"mload","nativeSrc":"51567:5:24","nodeType":"YulIdentifier","src":"51567:5:24"},"nativeSrc":"51567:8:24","nodeType":"YulFunctionCall","src":"51567:8:24"},{"kind":"number","nativeSrc":"51577:4:24","nodeType":"YulLiteral","src":"51577:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"51563:3:24","nodeType":"YulIdentifier","src":"51563:3:24"},"nativeSrc":"51563:19:24","nodeType":"YulFunctionCall","src":"51563:19:24"},"variables":[{"name":"retUnpaddedSize","nativeSrc":"51544:15:24","nodeType":"YulTypedName","src":"51544:15:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"retStart","nativeSrc":"51736:8:24","nodeType":"YulIdentifier","src":"51736:8:24"},{"name":"retUnpaddedSize","nativeSrc":"51746:15:24","nodeType":"YulIdentifier","src":"51746:15:24"}],"functionName":{"name":"add","nativeSrc":"51732:3:24","nodeType":"YulIdentifier","src":"51732:3:24"},"nativeSrc":"51732:30:24","nodeType":"YulFunctionCall","src":"51732:30:24"},{"kind":"number","nativeSrc":"51764:1:24","nodeType":"YulLiteral","src":"51764:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51725:6:24","nodeType":"YulIdentifier","src":"51725:6:24"},"nativeSrc":"51725:41:24","nodeType":"YulFunctionCall","src":"51725:41:24"},"nativeSrc":"51725:41:24","nodeType":"YulExpressionStatement","src":"51725:41:24"},{"expression":{"arguments":[{"name":"retStart","nativeSrc":"51826:8:24","nodeType":"YulIdentifier","src":"51826:8:24"},{"kind":"number","nativeSrc":"51836:4:24","nodeType":"YulLiteral","src":"51836:4:24","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"51819:6:24","nodeType":"YulIdentifier","src":"51819:6:24"},"nativeSrc":"51819:22:24","nodeType":"YulFunctionCall","src":"51819:22:24"},"nativeSrc":"51819:22:24","nodeType":"YulExpressionStatement","src":"51819:22:24"},{"expression":{"arguments":[{"name":"retStart","nativeSrc":"51919:8:24","nodeType":"YulIdentifier","src":"51919:8:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"51937:4:24","nodeType":"YulLiteral","src":"51937:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"51933:3:24","nodeType":"YulIdentifier","src":"51933:3:24"},"nativeSrc":"51933:9:24","nodeType":"YulFunctionCall","src":"51933:9:24"},{"arguments":[{"kind":"number","nativeSrc":"51948:4:24","nodeType":"YulLiteral","src":"51948:4:24","type":"","value":"0x1f"},{"name":"retUnpaddedSize","nativeSrc":"51954:15:24","nodeType":"YulIdentifier","src":"51954:15:24"}],"functionName":{"name":"add","nativeSrc":"51944:3:24","nodeType":"YulIdentifier","src":"51944:3:24"},"nativeSrc":"51944:26:24","nodeType":"YulFunctionCall","src":"51944:26:24"}],"functionName":{"name":"and","nativeSrc":"51929:3:24","nodeType":"YulIdentifier","src":"51929:3:24"},"nativeSrc":"51929:42:24","nodeType":"YulFunctionCall","src":"51929:42:24"}],"functionName":{"name":"return","nativeSrc":"51912:6:24","nodeType":"YulIdentifier","src":"51912:6:24"},"nativeSrc":"51912:60:24","nodeType":"YulFunctionCall","src":"51912:60:24"},"nativeSrc":"51912:60:24","nodeType":"YulExpressionStatement","src":"51912:60:24"}]},"evmVersion":"cancun","externalReferences":[{"declaration":10958,"isOffset":false,"isSlot":false,"src":"51519:1:24","valueSize":1},{"declaration":10958,"isOffset":false,"isSlot":false,"src":"51573:1:24","valueSize":1}],"id":10961,"nodeType":"InlineAssembly","src":"51398:584:24"}]},"documentation":{"id":10956,"nodeType":"StructuredDocumentation","src":"51284:46:24","text":"@dev Directly returns `a` without copying."},"id":10963,"implemented":true,"kind":"function","modifiers":[],"name":"directReturn","nameLocation":"51344:12:24","nodeType":"FunctionDefinition","parameters":{"id":10959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10958,"mutability":"mutable","name":"a","nameLocation":"51371:1:24","nodeType":"VariableDeclaration","scope":10963,"src":"51357:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10957,"name":"string","nodeType":"ElementaryTypeName","src":"51357:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51356:17:24"},"returnParameters":{"id":10960,"nodeType":"ParameterList","parameters":[],"src":"51388:0:24"},"scope":10964,"src":"51335:653:24","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10965,"src":"648:51342:24","usedErrors":[10313,10316],"usedEvents":[]}],"src":"32:51959:24"},"id":24},"@solady/utils/LibZip.sol":{"ast":{"absolutePath":"@solady/utils/LibZip.sol","exportedSymbols":{"LibZip":[11014]},"id":11015,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10966,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:25"},{"abstract":false,"baseContracts":[],"canonicalName":"LibZip","contractDependencies":[],"contractKind":"library","documentation":{"id":10967,"nodeType":"StructuredDocumentation","src":"57:435:25","text":"@notice Library for compressing and decompressing bytes.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)\n @author Calldata compression by clabby (https://github.com/clabby/op-kompressor)\n @author FastLZ by ariya (https://github.com/ariya/FastLZ)\n @dev Note:\n The accompanying solady.js library includes implementations of\n FastLZ and calldata operations for convenience."},"fullyImplemented":true,"id":11014,"linearizedBaseContracts":[11014],"name":"LibZip","nameLocation":"500:6:25","nodeType":"ContractDefinition","nodes":[{"body":{"id":10976,"nodeType":"Block","src":"1186:3866:25","statements":[{"AST":{"nativeSrc":"1248:3798:25","nodeType":"YulBlock","src":"1248:3798:25","statements":[{"body":{"nativeSrc":"1289:80:25","nodeType":"YulBlock","src":"1289:80:25","statements":[{"expression":{"arguments":[{"name":"d_","nativeSrc":"1315:2:25","nodeType":"YulIdentifier","src":"1315:2:25"},{"name":"v_","nativeSrc":"1319:2:25","nodeType":"YulIdentifier","src":"1319:2:25"}],"functionName":{"name":"mstore8","nativeSrc":"1307:7:25","nodeType":"YulIdentifier","src":"1307:7:25"},"nativeSrc":"1307:15:25","nodeType":"YulFunctionCall","src":"1307:15:25"},"nativeSrc":"1307:15:25","nodeType":"YulExpressionStatement","src":"1307:15:25"},{"nativeSrc":"1339:16:25","nodeType":"YulAssignment","src":"1339:16:25","value":{"arguments":[{"name":"d_","nativeSrc":"1349:2:25","nodeType":"YulIdentifier","src":"1349:2:25"},{"kind":"number","nativeSrc":"1353:1:25","nodeType":"YulLiteral","src":"1353:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1345:3:25","nodeType":"YulIdentifier","src":"1345:3:25"},"nativeSrc":"1345:10:25","nodeType":"YulFunctionCall","src":"1345:10:25"},"variableNames":[{"name":"_d","nativeSrc":"1339:2:25","nodeType":"YulIdentifier","src":"1339:2:25"}]}]},"name":"ms8","nativeSrc":"1262:107:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"d_","nativeSrc":"1275:2:25","nodeType":"YulTypedName","src":"1275:2:25","type":""},{"name":"v_","nativeSrc":"1279:2:25","nodeType":"YulTypedName","src":"1279:2:25","type":""}],"returnVariables":[{"name":"_d","nativeSrc":"1286:2:25","nodeType":"YulTypedName","src":"1286:2:25","type":""}],"src":"1262:107:25"},{"body":{"nativeSrc":"1405:132:25","nodeType":"YulBlock","src":"1405:132:25","statements":[{"nativeSrc":"1423:15:25","nodeType":"YulAssignment","src":"1423:15:25","value":{"arguments":[{"name":"p_","nativeSrc":"1435:2:25","nodeType":"YulIdentifier","src":"1435:2:25"}],"functionName":{"name":"mload","nativeSrc":"1429:5:25","nodeType":"YulIdentifier","src":"1429:5:25"},"nativeSrc":"1429:9:25","nodeType":"YulFunctionCall","src":"1429:9:25"},"variableNames":[{"name":"_u","nativeSrc":"1423:2:25","nodeType":"YulIdentifier","src":"1423:2:25"}]},{"nativeSrc":"1455:68:25","nodeType":"YulAssignment","src":"1455:68:25","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1468:2:25","nodeType":"YulLiteral","src":"1468:2:25","type":"","value":"16"},{"arguments":[{"kind":"number","nativeSrc":"1477:1:25","nodeType":"YulLiteral","src":"1477:1:25","type":"","value":"2"},{"name":"_u","nativeSrc":"1480:2:25","nodeType":"YulIdentifier","src":"1480:2:25"}],"functionName":{"name":"byte","nativeSrc":"1472:4:25","nodeType":"YulIdentifier","src":"1472:4:25"},"nativeSrc":"1472:11:25","nodeType":"YulFunctionCall","src":"1472:11:25"}],"functionName":{"name":"shl","nativeSrc":"1464:3:25","nodeType":"YulIdentifier","src":"1464:3:25"},"nativeSrc":"1464:20:25","nodeType":"YulFunctionCall","src":"1464:20:25"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1493:1:25","nodeType":"YulLiteral","src":"1493:1:25","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"1501:1:25","nodeType":"YulLiteral","src":"1501:1:25","type":"","value":"1"},{"name":"_u","nativeSrc":"1504:2:25","nodeType":"YulIdentifier","src":"1504:2:25"}],"functionName":{"name":"byte","nativeSrc":"1496:4:25","nodeType":"YulIdentifier","src":"1496:4:25"},"nativeSrc":"1496:11:25","nodeType":"YulFunctionCall","src":"1496:11:25"}],"functionName":{"name":"shl","nativeSrc":"1489:3:25","nodeType":"YulIdentifier","src":"1489:3:25"},"nativeSrc":"1489:19:25","nodeType":"YulFunctionCall","src":"1489:19:25"},{"arguments":[{"kind":"number","nativeSrc":"1515:1:25","nodeType":"YulLiteral","src":"1515:1:25","type":"","value":"0"},{"name":"_u","nativeSrc":"1518:2:25","nodeType":"YulIdentifier","src":"1518:2:25"}],"functionName":{"name":"byte","nativeSrc":"1510:4:25","nodeType":"YulIdentifier","src":"1510:4:25"},"nativeSrc":"1510:11:25","nodeType":"YulFunctionCall","src":"1510:11:25"}],"functionName":{"name":"or","nativeSrc":"1486:2:25","nodeType":"YulIdentifier","src":"1486:2:25"},"nativeSrc":"1486:36:25","nodeType":"YulFunctionCall","src":"1486:36:25"}],"functionName":{"name":"or","nativeSrc":"1461:2:25","nodeType":"YulIdentifier","src":"1461:2:25"},"nativeSrc":"1461:62:25","nodeType":"YulFunctionCall","src":"1461:62:25"},"variableNames":[{"name":"_u","nativeSrc":"1455:2:25","nodeType":"YulIdentifier","src":"1455:2:25"}]}]},"name":"u24","nativeSrc":"1382:155:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"p_","nativeSrc":"1395:2:25","nodeType":"YulTypedName","src":"1395:2:25","type":""}],"returnVariables":[{"name":"_u","nativeSrc":"1402:2:25","nodeType":"YulTypedName","src":"1402:2:25","type":""}],"src":"1382:155:25"},{"body":{"nativeSrc":"1581:205:25","nodeType":"YulBlock","src":"1581:205:25","statements":[{"body":{"nativeSrc":"1657:115:25","nodeType":"YulBlock","src":"1657:115:25","statements":[{"nativeSrc":"1679:75:25","nodeType":"YulAssignment","src":"1679:75:25","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1701:1:25","nodeType":"YulLiteral","src":"1701:1:25","type":"","value":"0"},{"arguments":[{"arguments":[{"arguments":[{"name":"p_","nativeSrc":"1718:2:25","nodeType":"YulIdentifier","src":"1718:2:25"},{"name":"_l","nativeSrc":"1722:2:25","nodeType":"YulIdentifier","src":"1722:2:25"}],"functionName":{"name":"add","nativeSrc":"1714:3:25","nodeType":"YulIdentifier","src":"1714:3:25"},"nativeSrc":"1714:11:25","nodeType":"YulFunctionCall","src":"1714:11:25"}],"functionName":{"name":"mload","nativeSrc":"1708:5:25","nodeType":"YulIdentifier","src":"1708:5:25"},"nativeSrc":"1708:18:25","nodeType":"YulFunctionCall","src":"1708:18:25"},{"arguments":[{"arguments":[{"name":"q_","nativeSrc":"1738:2:25","nodeType":"YulIdentifier","src":"1738:2:25"},{"name":"_l","nativeSrc":"1742:2:25","nodeType":"YulIdentifier","src":"1742:2:25"}],"functionName":{"name":"add","nativeSrc":"1734:3:25","nodeType":"YulIdentifier","src":"1734:3:25"},"nativeSrc":"1734:11:25","nodeType":"YulFunctionCall","src":"1734:11:25"}],"functionName":{"name":"mload","nativeSrc":"1728:5:25","nodeType":"YulIdentifier","src":"1728:5:25"},"nativeSrc":"1728:18:25","nodeType":"YulFunctionCall","src":"1728:18:25"}],"functionName":{"name":"xor","nativeSrc":"1704:3:25","nodeType":"YulIdentifier","src":"1704:3:25"},"nativeSrc":"1704:43:25","nodeType":"YulFunctionCall","src":"1704:43:25"}],"functionName":{"name":"byte","nativeSrc":"1696:4:25","nodeType":"YulIdentifier","src":"1696:4:25"},"nativeSrc":"1696:52:25","nodeType":"YulFunctionCall","src":"1696:52:25"}],"functionName":{"name":"iszero","nativeSrc":"1689:6:25","nodeType":"YulIdentifier","src":"1689:6:25"},"nativeSrc":"1689:60:25","nodeType":"YulFunctionCall","src":"1689:60:25"},{"name":"e_","nativeSrc":"1751:2:25","nodeType":"YulIdentifier","src":"1751:2:25"}],"functionName":{"name":"mul","nativeSrc":"1685:3:25","nodeType":"YulIdentifier","src":"1685:3:25"},"nativeSrc":"1685:69:25","nodeType":"YulFunctionCall","src":"1685:69:25"},"variableNames":[{"name":"e_","nativeSrc":"1679:2:25","nodeType":"YulIdentifier","src":"1679:2:25"}]}]},"condition":{"arguments":[{"name":"_l","nativeSrc":"1628:2:25","nodeType":"YulIdentifier","src":"1628:2:25"},{"name":"e_","nativeSrc":"1632:2:25","nodeType":"YulIdentifier","src":"1632:2:25"}],"functionName":{"name":"lt","nativeSrc":"1625:2:25","nodeType":"YulIdentifier","src":"1625:2:25"},"nativeSrc":"1625:10:25","nodeType":"YulFunctionCall","src":"1625:10:25"},"nativeSrc":"1599:173:25","nodeType":"YulForLoop","post":{"nativeSrc":"1636:20:25","nodeType":"YulBlock","src":"1636:20:25","statements":[{"nativeSrc":"1638:16:25","nodeType":"YulAssignment","src":"1638:16:25","value":{"arguments":[{"name":"_l","nativeSrc":"1648:2:25","nodeType":"YulIdentifier","src":"1648:2:25"},{"kind":"number","nativeSrc":"1652:1:25","nodeType":"YulLiteral","src":"1652:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1644:3:25","nodeType":"YulIdentifier","src":"1644:3:25"},"nativeSrc":"1644:10:25","nodeType":"YulFunctionCall","src":"1644:10:25"},"variableNames":[{"name":"_l","nativeSrc":"1638:2:25","nodeType":"YulIdentifier","src":"1638:2:25"}]}]},"pre":{"nativeSrc":"1603:21:25","nodeType":"YulBlock","src":"1603:21:25","statements":[{"nativeSrc":"1605:17:25","nodeType":"YulAssignment","src":"1605:17:25","value":{"arguments":[{"name":"e_","nativeSrc":"1615:2:25","nodeType":"YulIdentifier","src":"1615:2:25"},{"name":"q_","nativeSrc":"1619:2:25","nodeType":"YulIdentifier","src":"1619:2:25"}],"functionName":{"name":"sub","nativeSrc":"1611:3:25","nodeType":"YulIdentifier","src":"1611:3:25"},"nativeSrc":"1611:11:25","nodeType":"YulFunctionCall","src":"1611:11:25"},"variableNames":[{"name":"e_","nativeSrc":"1605:2:25","nodeType":"YulIdentifier","src":"1605:2:25"}]}]},"src":"1599:173:25"}]},"name":"cmp","nativeSrc":"1550:236:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"p_","nativeSrc":"1563:2:25","nodeType":"YulTypedName","src":"1563:2:25","type":""},{"name":"q_","nativeSrc":"1567:2:25","nodeType":"YulTypedName","src":"1567:2:25","type":""},{"name":"e_","nativeSrc":"1571:2:25","nodeType":"YulTypedName","src":"1571:2:25","type":""}],"returnVariables":[{"name":"_l","nativeSrc":"1578:2:25","nodeType":"YulTypedName","src":"1578:2:25","type":""}],"src":"1550:236:25"},{"body":{"nativeSrc":"1843:410:25","nodeType":"YulBlock","src":"1843:410:25","statements":[{"body":{"nativeSrc":"1935:156:25","nodeType":"YulBlock","src":"1935:156:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"_o","nativeSrc":"1968:2:25","nodeType":"YulIdentifier","src":"1968:2:25"},{"kind":"number","nativeSrc":"1972:2:25","nodeType":"YulLiteral","src":"1972:2:25","type":"","value":"31"}],"functionName":{"name":"ms8","nativeSrc":"1964:3:25","nodeType":"YulIdentifier","src":"1964:3:25"},"nativeSrc":"1964:11:25","nodeType":"YulFunctionCall","src":"1964:11:25"},{"arguments":[{"name":"src_","nativeSrc":"1983:4:25","nodeType":"YulIdentifier","src":"1983:4:25"}],"functionName":{"name":"mload","nativeSrc":"1977:5:25","nodeType":"YulIdentifier","src":"1977:5:25"},"nativeSrc":"1977:11:25","nodeType":"YulFunctionCall","src":"1977:11:25"}],"functionName":{"name":"mstore","nativeSrc":"1957:6:25","nodeType":"YulIdentifier","src":"1957:6:25"},"nativeSrc":"1957:32:25","nodeType":"YulFunctionCall","src":"1957:32:25"},"nativeSrc":"1957:32:25","nodeType":"YulExpressionStatement","src":"1957:32:25"},{"nativeSrc":"2010:19:25","nodeType":"YulAssignment","src":"2010:19:25","value":{"arguments":[{"name":"_o","nativeSrc":"2020:2:25","nodeType":"YulIdentifier","src":"2020:2:25"},{"kind":"number","nativeSrc":"2024:4:25","nodeType":"YulLiteral","src":"2024:4:25","type":"","value":"0x21"}],"functionName":{"name":"add","nativeSrc":"2016:3:25","nodeType":"YulIdentifier","src":"2016:3:25"},"nativeSrc":"2016:13:25","nodeType":"YulFunctionCall","src":"2016:13:25"},"variableNames":[{"name":"_o","nativeSrc":"2010:2:25","nodeType":"YulIdentifier","src":"2010:2:25"}]},{"nativeSrc":"2050:23:25","nodeType":"YulAssignment","src":"2050:23:25","value":{"arguments":[{"name":"src_","nativeSrc":"2062:4:25","nodeType":"YulIdentifier","src":"2062:4:25"},{"kind":"number","nativeSrc":"2068:4:25","nodeType":"YulLiteral","src":"2068:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2058:3:25","nodeType":"YulIdentifier","src":"2058:3:25"},"nativeSrc":"2058:15:25","nodeType":"YulFunctionCall","src":"2058:15:25"},"variableNames":[{"name":"src_","nativeSrc":"2050:4:25","nodeType":"YulIdentifier","src":"2050:4:25"}]}]},"condition":{"arguments":[{"arguments":[{"name":"runs_","nativeSrc":"1891:5:25","nodeType":"YulIdentifier","src":"1891:5:25"},{"kind":"number","nativeSrc":"1898:4:25","nodeType":"YulLiteral","src":"1898:4:25","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"1888:2:25","nodeType":"YulIdentifier","src":"1888:2:25"},"nativeSrc":"1888:15:25","nodeType":"YulFunctionCall","src":"1888:15:25"}],"functionName":{"name":"iszero","nativeSrc":"1881:6:25","nodeType":"YulIdentifier","src":"1881:6:25"},"nativeSrc":"1881:23:25","nodeType":"YulFunctionCall","src":"1881:23:25"},"nativeSrc":"1861:230:25","nodeType":"YulForLoop","post":{"nativeSrc":"1905:29:25","nodeType":"YulBlock","src":"1905:29:25","statements":[{"nativeSrc":"1907:25:25","nodeType":"YulAssignment","src":"1907:25:25","value":{"arguments":[{"name":"runs_","nativeSrc":"1920:5:25","nodeType":"YulIdentifier","src":"1920:5:25"},{"kind":"number","nativeSrc":"1927:4:25","nodeType":"YulLiteral","src":"1927:4:25","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"1916:3:25","nodeType":"YulIdentifier","src":"1916:3:25"},"nativeSrc":"1916:16:25","nodeType":"YulFunctionCall","src":"1916:16:25"},"variableNames":[{"name":"runs_","nativeSrc":"1907:5:25","nodeType":"YulIdentifier","src":"1907:5:25"}]}]},"pre":{"nativeSrc":"1865:15:25","nodeType":"YulBlock","src":"1865:15:25","statements":[{"nativeSrc":"1867:11:25","nodeType":"YulAssignment","src":"1867:11:25","value":{"name":"dest_","nativeSrc":"1873:5:25","nodeType":"YulIdentifier","src":"1873:5:25"},"variableNames":[{"name":"_o","nativeSrc":"1867:2:25","nodeType":"YulIdentifier","src":"1867:2:25"}]}]},"src":"1861:230:25"},{"body":{"nativeSrc":"2125:9:25","nodeType":"YulBlock","src":"2125:9:25","statements":[{"nativeSrc":"2127:5:25","nodeType":"YulLeave","src":"2127:5:25"}]},"condition":{"arguments":[{"name":"runs_","nativeSrc":"2118:5:25","nodeType":"YulIdentifier","src":"2118:5:25"}],"functionName":{"name":"iszero","nativeSrc":"2111:6:25","nodeType":"YulIdentifier","src":"2111:6:25"},"nativeSrc":"2111:13:25","nodeType":"YulFunctionCall","src":"2111:13:25"},"nativeSrc":"2108:26:25","nodeType":"YulIf","src":"2108:26:25"},{"expression":{"arguments":[{"arguments":[{"name":"_o","nativeSrc":"2162:2:25","nodeType":"YulIdentifier","src":"2162:2:25"},{"arguments":[{"name":"runs_","nativeSrc":"2170:5:25","nodeType":"YulIdentifier","src":"2170:5:25"},{"kind":"number","nativeSrc":"2177:1:25","nodeType":"YulLiteral","src":"2177:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2166:3:25","nodeType":"YulIdentifier","src":"2166:3:25"},"nativeSrc":"2166:13:25","nodeType":"YulFunctionCall","src":"2166:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2158:3:25","nodeType":"YulIdentifier","src":"2158:3:25"},"nativeSrc":"2158:22:25","nodeType":"YulFunctionCall","src":"2158:22:25"},{"arguments":[{"name":"src_","nativeSrc":"2188:4:25","nodeType":"YulIdentifier","src":"2188:4:25"}],"functionName":{"name":"mload","nativeSrc":"2182:5:25","nodeType":"YulIdentifier","src":"2182:5:25"},"nativeSrc":"2182:11:25","nodeType":"YulFunctionCall","src":"2182:11:25"}],"functionName":{"name":"mstore","nativeSrc":"2151:6:25","nodeType":"YulIdentifier","src":"2151:6:25"},"nativeSrc":"2151:43:25","nodeType":"YulFunctionCall","src":"2151:43:25"},"nativeSrc":"2151:43:25","nodeType":"YulExpressionStatement","src":"2151:43:25"},{"nativeSrc":"2211:28:25","nodeType":"YulAssignment","src":"2211:28:25","value":{"arguments":[{"kind":"number","nativeSrc":"2221:1:25","nodeType":"YulLiteral","src":"2221:1:25","type":"","value":"1"},{"arguments":[{"name":"_o","nativeSrc":"2228:2:25","nodeType":"YulIdentifier","src":"2228:2:25"},{"name":"runs_","nativeSrc":"2232:5:25","nodeType":"YulIdentifier","src":"2232:5:25"}],"functionName":{"name":"add","nativeSrc":"2224:3:25","nodeType":"YulIdentifier","src":"2224:3:25"},"nativeSrc":"2224:14:25","nodeType":"YulFunctionCall","src":"2224:14:25"}],"functionName":{"name":"add","nativeSrc":"2217:3:25","nodeType":"YulIdentifier","src":"2217:3:25"},"nativeSrc":"2217:22:25","nodeType":"YulFunctionCall","src":"2217:22:25"},"variableNames":[{"name":"_o","nativeSrc":"2211:2:25","nodeType":"YulIdentifier","src":"2211:2:25"}]}]},"name":"literals","nativeSrc":"1799:454:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"runs_","nativeSrc":"1817:5:25","nodeType":"YulTypedName","src":"1817:5:25","type":""},{"name":"src_","nativeSrc":"1824:4:25","nodeType":"YulTypedName","src":"1824:4:25","type":""},{"name":"dest_","nativeSrc":"1830:5:25","nodeType":"YulTypedName","src":"1830:5:25","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"1840:2:25","nodeType":"YulTypedName","src":"1840:2:25","type":""}],"src":"1799:454:25"},{"body":{"nativeSrc":"2296:460:25","nodeType":"YulBlock","src":"2296:460:25","statements":[{"body":{"nativeSrc":"2382:105:25","nodeType":"YulBlock","src":"2382:105:25","statements":[{"nativeSrc":"2404:65:25","nodeType":"YulAssignment","src":"2404:65:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2422:2:25","nodeType":"YulIdentifier","src":"2422:2:25"},{"arguments":[{"kind":"number","nativeSrc":"2430:3:25","nodeType":"YulLiteral","src":"2430:3:25","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"2439:1:25","nodeType":"YulLiteral","src":"2439:1:25","type":"","value":"8"},{"name":"d_","nativeSrc":"2442:2:25","nodeType":"YulIdentifier","src":"2442:2:25"}],"functionName":{"name":"shr","nativeSrc":"2435:3:25","nodeType":"YulIdentifier","src":"2435:3:25"},"nativeSrc":"2435:10:25","nodeType":"YulFunctionCall","src":"2435:10:25"}],"functionName":{"name":"add","nativeSrc":"2426:3:25","nodeType":"YulIdentifier","src":"2426:3:25"},"nativeSrc":"2426:20:25","nodeType":"YulFunctionCall","src":"2426:20:25"}],"functionName":{"name":"ms8","nativeSrc":"2418:3:25","nodeType":"YulIdentifier","src":"2418:3:25"},"nativeSrc":"2418:29:25","nodeType":"YulFunctionCall","src":"2418:29:25"},{"kind":"number","nativeSrc":"2449:3:25","nodeType":"YulLiteral","src":"2449:3:25","type":"","value":"253"}],"functionName":{"name":"ms8","nativeSrc":"2414:3:25","nodeType":"YulIdentifier","src":"2414:3:25"},"nativeSrc":"2414:39:25","nodeType":"YulFunctionCall","src":"2414:39:25"},{"arguments":[{"kind":"number","nativeSrc":"2459:4:25","nodeType":"YulLiteral","src":"2459:4:25","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2465:2:25","nodeType":"YulIdentifier","src":"2465:2:25"}],"functionName":{"name":"and","nativeSrc":"2455:3:25","nodeType":"YulIdentifier","src":"2455:3:25"},"nativeSrc":"2455:13:25","nodeType":"YulFunctionCall","src":"2455:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2410:3:25","nodeType":"YulIdentifier","src":"2410:3:25"},"nativeSrc":"2410:59:25","nodeType":"YulFunctionCall","src":"2410:59:25"},"variableNames":[{"name":"o_","nativeSrc":"2404:2:25","nodeType":"YulIdentifier","src":"2404:2:25"}]}]},"condition":{"arguments":[{"arguments":[{"name":"l_","nativeSrc":"2349:2:25","nodeType":"YulIdentifier","src":"2349:2:25"},{"kind":"number","nativeSrc":"2353:3:25","nodeType":"YulLiteral","src":"2353:3:25","type":"","value":"263"}],"functionName":{"name":"lt","nativeSrc":"2346:2:25","nodeType":"YulIdentifier","src":"2346:2:25"},"nativeSrc":"2346:11:25","nodeType":"YulFunctionCall","src":"2346:11:25"}],"functionName":{"name":"iszero","nativeSrc":"2339:6:25","nodeType":"YulIdentifier","src":"2339:6:25"},"nativeSrc":"2339:19:25","nodeType":"YulFunctionCall","src":"2339:19:25"},"nativeSrc":"2314:173:25","nodeType":"YulForLoop","post":{"nativeSrc":"2359:22:25","nodeType":"YulBlock","src":"2359:22:25","statements":[{"nativeSrc":"2361:18:25","nodeType":"YulAssignment","src":"2361:18:25","value":{"arguments":[{"name":"l_","nativeSrc":"2371:2:25","nodeType":"YulIdentifier","src":"2371:2:25"},{"kind":"number","nativeSrc":"2375:3:25","nodeType":"YulLiteral","src":"2375:3:25","type":"","value":"262"}],"functionName":{"name":"sub","nativeSrc":"2367:3:25","nodeType":"YulIdentifier","src":"2367:3:25"},"nativeSrc":"2367:12:25","nodeType":"YulFunctionCall","src":"2367:12:25"},"variableNames":[{"name":"l_","nativeSrc":"2361:2:25","nodeType":"YulIdentifier","src":"2361:2:25"}]}]},"pre":{"nativeSrc":"2318:20:25","nodeType":"YulBlock","src":"2318:20:25","statements":[{"nativeSrc":"2320:16:25","nodeType":"YulAssignment","src":"2320:16:25","value":{"arguments":[{"name":"d_","nativeSrc":"2330:2:25","nodeType":"YulIdentifier","src":"2330:2:25"},{"kind":"number","nativeSrc":"2334:1:25","nodeType":"YulLiteral","src":"2334:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2326:3:25","nodeType":"YulIdentifier","src":"2326:3:25"},"nativeSrc":"2326:10:25","nodeType":"YulFunctionCall","src":"2326:10:25"},"variableNames":[{"name":"d_","nativeSrc":"2320:2:25","nodeType":"YulIdentifier","src":"2320:2:25"}]}]},"src":"2314:173:25"},{"body":{"nativeSrc":"2525:138:25","nodeType":"YulBlock","src":"2525:138:25","statements":[{"nativeSrc":"2547:72:25","nodeType":"YulAssignment","src":"2547:72:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2565:2:25","nodeType":"YulIdentifier","src":"2565:2:25"},{"arguments":[{"kind":"number","nativeSrc":"2573:3:25","nodeType":"YulLiteral","src":"2573:3:25","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"2582:1:25","nodeType":"YulLiteral","src":"2582:1:25","type":"","value":"8"},{"name":"d_","nativeSrc":"2585:2:25","nodeType":"YulIdentifier","src":"2585:2:25"}],"functionName":{"name":"shr","nativeSrc":"2578:3:25","nodeType":"YulIdentifier","src":"2578:3:25"},"nativeSrc":"2578:10:25","nodeType":"YulFunctionCall","src":"2578:10:25"}],"functionName":{"name":"add","nativeSrc":"2569:3:25","nodeType":"YulIdentifier","src":"2569:3:25"},"nativeSrc":"2569:20:25","nodeType":"YulFunctionCall","src":"2569:20:25"}],"functionName":{"name":"ms8","nativeSrc":"2561:3:25","nodeType":"YulIdentifier","src":"2561:3:25"},"nativeSrc":"2561:29:25","nodeType":"YulFunctionCall","src":"2561:29:25"},{"arguments":[{"name":"l_","nativeSrc":"2596:2:25","nodeType":"YulIdentifier","src":"2596:2:25"},{"kind":"number","nativeSrc":"2600:1:25","nodeType":"YulLiteral","src":"2600:1:25","type":"","value":"7"}],"functionName":{"name":"sub","nativeSrc":"2592:3:25","nodeType":"YulIdentifier","src":"2592:3:25"},"nativeSrc":"2592:10:25","nodeType":"YulFunctionCall","src":"2592:10:25"}],"functionName":{"name":"ms8","nativeSrc":"2557:3:25","nodeType":"YulIdentifier","src":"2557:3:25"},"nativeSrc":"2557:46:25","nodeType":"YulFunctionCall","src":"2557:46:25"},{"arguments":[{"kind":"number","nativeSrc":"2609:4:25","nodeType":"YulLiteral","src":"2609:4:25","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2615:2:25","nodeType":"YulIdentifier","src":"2615:2:25"}],"functionName":{"name":"and","nativeSrc":"2605:3:25","nodeType":"YulIdentifier","src":"2605:3:25"},"nativeSrc":"2605:13:25","nodeType":"YulFunctionCall","src":"2605:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2553:3:25","nodeType":"YulIdentifier","src":"2553:3:25"},"nativeSrc":"2553:66:25","nodeType":"YulFunctionCall","src":"2553:66:25"},"variableNames":[{"name":"_o","nativeSrc":"2547:2:25","nodeType":"YulIdentifier","src":"2547:2:25"}]},{"nativeSrc":"2640:5:25","nodeType":"YulLeave","src":"2640:5:25"}]},"condition":{"arguments":[{"arguments":[{"name":"l_","nativeSrc":"2517:2:25","nodeType":"YulIdentifier","src":"2517:2:25"},{"kind":"number","nativeSrc":"2521:1:25","nodeType":"YulLiteral","src":"2521:1:25","type":"","value":"7"}],"functionName":{"name":"lt","nativeSrc":"2514:2:25","nodeType":"YulIdentifier","src":"2514:2:25"},"nativeSrc":"2514:9:25","nodeType":"YulFunctionCall","src":"2514:9:25"}],"functionName":{"name":"iszero","nativeSrc":"2507:6:25","nodeType":"YulIdentifier","src":"2507:6:25"},"nativeSrc":"2507:17:25","nodeType":"YulFunctionCall","src":"2507:17:25"},"nativeSrc":"2504:159:25","nodeType":"YulIf","src":"2504:159:25"},{"nativeSrc":"2680:62:25","nodeType":"YulAssignment","src":"2680:62:25","value":{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2694:2:25","nodeType":"YulIdentifier","src":"2694:2:25"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2706:1:25","nodeType":"YulLiteral","src":"2706:1:25","type":"","value":"5"},{"name":"l_","nativeSrc":"2709:2:25","nodeType":"YulIdentifier","src":"2709:2:25"}],"functionName":{"name":"shl","nativeSrc":"2702:3:25","nodeType":"YulIdentifier","src":"2702:3:25"},"nativeSrc":"2702:10:25","nodeType":"YulFunctionCall","src":"2702:10:25"},{"arguments":[{"kind":"number","nativeSrc":"2718:1:25","nodeType":"YulLiteral","src":"2718:1:25","type":"","value":"8"},{"name":"d_","nativeSrc":"2721:2:25","nodeType":"YulIdentifier","src":"2721:2:25"}],"functionName":{"name":"shr","nativeSrc":"2714:3:25","nodeType":"YulIdentifier","src":"2714:3:25"},"nativeSrc":"2714:10:25","nodeType":"YulFunctionCall","src":"2714:10:25"}],"functionName":{"name":"add","nativeSrc":"2698:3:25","nodeType":"YulIdentifier","src":"2698:3:25"},"nativeSrc":"2698:27:25","nodeType":"YulFunctionCall","src":"2698:27:25"}],"functionName":{"name":"ms8","nativeSrc":"2690:3:25","nodeType":"YulIdentifier","src":"2690:3:25"},"nativeSrc":"2690:36:25","nodeType":"YulFunctionCall","src":"2690:36:25"},{"arguments":[{"kind":"number","nativeSrc":"2732:4:25","nodeType":"YulLiteral","src":"2732:4:25","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2738:2:25","nodeType":"YulIdentifier","src":"2738:2:25"}],"functionName":{"name":"and","nativeSrc":"2728:3:25","nodeType":"YulIdentifier","src":"2728:3:25"},"nativeSrc":"2728:13:25","nodeType":"YulFunctionCall","src":"2728:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2686:3:25","nodeType":"YulIdentifier","src":"2686:3:25"},"nativeSrc":"2686:56:25","nodeType":"YulFunctionCall","src":"2686:56:25"},"variableNames":[{"name":"_o","nativeSrc":"2680:2:25","nodeType":"YulIdentifier","src":"2680:2:25"}]}]},"name":"mt","nativeSrc":"2266:490:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"l_","nativeSrc":"2278:2:25","nodeType":"YulTypedName","src":"2278:2:25","type":""},{"name":"d_","nativeSrc":"2282:2:25","nodeType":"YulTypedName","src":"2282:2:25","type":""},{"name":"o_","nativeSrc":"2286:2:25","nodeType":"YulTypedName","src":"2286:2:25","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"2293:2:25","nodeType":"YulTypedName","src":"2293:2:25","type":""}],"src":"2266:490:25"},{"body":{"nativeSrc":"2794:153:25","nodeType":"YulBlock","src":"2794:153:25","statements":[{"nativeSrc":"2812:38:25","nodeType":"YulVariableDeclaration","src":"2812:38:25","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2832:4:25","nodeType":"YulLiteral","src":"2832:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2826:5:25","nodeType":"YulIdentifier","src":"2826:5:25"},"nativeSrc":"2826:11:25","nodeType":"YulFunctionCall","src":"2826:11:25"},{"arguments":[{"kind":"number","nativeSrc":"2843:1:25","nodeType":"YulLiteral","src":"2843:1:25","type":"","value":"2"},{"name":"i_","nativeSrc":"2846:2:25","nodeType":"YulIdentifier","src":"2846:2:25"}],"functionName":{"name":"shl","nativeSrc":"2839:3:25","nodeType":"YulIdentifier","src":"2839:3:25"},"nativeSrc":"2839:10:25","nodeType":"YulFunctionCall","src":"2839:10:25"}],"functionName":{"name":"add","nativeSrc":"2822:3:25","nodeType":"YulIdentifier","src":"2822:3:25"},"nativeSrc":"2822:28:25","nodeType":"YulFunctionCall","src":"2822:28:25"},"variables":[{"name":"p_","nativeSrc":"2816:2:25","nodeType":"YulTypedName","src":"2816:2:25","type":""}]},{"expression":{"arguments":[{"name":"p_","nativeSrc":"2874:2:25","nodeType":"YulIdentifier","src":"2874:2:25"},{"arguments":[{"arguments":[{"name":"p_","nativeSrc":"2888:2:25","nodeType":"YulIdentifier","src":"2888:2:25"}],"functionName":{"name":"mload","nativeSrc":"2882:5:25","nodeType":"YulIdentifier","src":"2882:5:25"},"nativeSrc":"2882:9:25","nodeType":"YulFunctionCall","src":"2882:9:25"},{"arguments":[{"kind":"number","nativeSrc":"2897:3:25","nodeType":"YulLiteral","src":"2897:3:25","type":"","value":"224"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2910:3:25","nodeType":"YulLiteral","src":"2910:3:25","type":"","value":"224"},{"arguments":[{"name":"p_","nativeSrc":"2921:2:25","nodeType":"YulIdentifier","src":"2921:2:25"}],"functionName":{"name":"mload","nativeSrc":"2915:5:25","nodeType":"YulIdentifier","src":"2915:5:25"},"nativeSrc":"2915:9:25","nodeType":"YulFunctionCall","src":"2915:9:25"}],"functionName":{"name":"shr","nativeSrc":"2906:3:25","nodeType":"YulIdentifier","src":"2906:3:25"},"nativeSrc":"2906:19:25","nodeType":"YulFunctionCall","src":"2906:19:25"},{"name":"v_","nativeSrc":"2927:2:25","nodeType":"YulIdentifier","src":"2927:2:25"}],"functionName":{"name":"xor","nativeSrc":"2902:3:25","nodeType":"YulIdentifier","src":"2902:3:25"},"nativeSrc":"2902:28:25","nodeType":"YulFunctionCall","src":"2902:28:25"}],"functionName":{"name":"shl","nativeSrc":"2893:3:25","nodeType":"YulIdentifier","src":"2893:3:25"},"nativeSrc":"2893:38:25","nodeType":"YulFunctionCall","src":"2893:38:25"}],"functionName":{"name":"xor","nativeSrc":"2878:3:25","nodeType":"YulIdentifier","src":"2878:3:25"},"nativeSrc":"2878:54:25","nodeType":"YulFunctionCall","src":"2878:54:25"}],"functionName":{"name":"mstore","nativeSrc":"2867:6:25","nodeType":"YulIdentifier","src":"2867:6:25"},"nativeSrc":"2867:66:25","nodeType":"YulFunctionCall","src":"2867:66:25"},"nativeSrc":"2867:66:25","nodeType":"YulExpressionStatement","src":"2867:66:25"}]},"name":"setHash","nativeSrc":"2769:178:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"i_","nativeSrc":"2786:2:25","nodeType":"YulTypedName","src":"2786:2:25","type":""},{"name":"v_","nativeSrc":"2790:2:25","nodeType":"YulTypedName","src":"2790:2:25","type":""}],"src":"2769:178:25"},{"body":{"nativeSrc":"2987:83:25","nodeType":"YulBlock","src":"2987:83:25","statements":[{"nativeSrc":"3005:51:25","nodeType":"YulAssignment","src":"3005:51:25","value":{"arguments":[{"kind":"number","nativeSrc":"3015:3:25","nodeType":"YulLiteral","src":"3015:3:25","type":"","value":"224"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3036:4:25","nodeType":"YulLiteral","src":"3036:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"3030:5:25","nodeType":"YulIdentifier","src":"3030:5:25"},"nativeSrc":"3030:11:25","nodeType":"YulFunctionCall","src":"3030:11:25"},{"arguments":[{"kind":"number","nativeSrc":"3047:1:25","nodeType":"YulLiteral","src":"3047:1:25","type":"","value":"2"},{"name":"i_","nativeSrc":"3050:2:25","nodeType":"YulIdentifier","src":"3050:2:25"}],"functionName":{"name":"shl","nativeSrc":"3043:3:25","nodeType":"YulIdentifier","src":"3043:3:25"},"nativeSrc":"3043:10:25","nodeType":"YulFunctionCall","src":"3043:10:25"}],"functionName":{"name":"add","nativeSrc":"3026:3:25","nodeType":"YulIdentifier","src":"3026:3:25"},"nativeSrc":"3026:28:25","nodeType":"YulFunctionCall","src":"3026:28:25"}],"functionName":{"name":"mload","nativeSrc":"3020:5:25","nodeType":"YulIdentifier","src":"3020:5:25"},"nativeSrc":"3020:35:25","nodeType":"YulFunctionCall","src":"3020:35:25"}],"functionName":{"name":"shr","nativeSrc":"3011:3:25","nodeType":"YulIdentifier","src":"3011:3:25"},"nativeSrc":"3011:45:25","nodeType":"YulFunctionCall","src":"3011:45:25"},"variableNames":[{"name":"_h","nativeSrc":"3005:2:25","nodeType":"YulIdentifier","src":"3005:2:25"}]}]},"name":"getHash","nativeSrc":"2960:110:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"i_","nativeSrc":"2977:2:25","nodeType":"YulTypedName","src":"2977:2:25","type":""}],"returnVariables":[{"name":"_h","nativeSrc":"2984:2:25","nodeType":"YulTypedName","src":"2984:2:25","type":""}],"src":"2960:110:25"},{"body":{"nativeSrc":"3107:79:25","nodeType":"YulBlock","src":"3107:79:25","statements":[{"nativeSrc":"3125:47:25","nodeType":"YulAssignment","src":"3125:47:25","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3139:2:25","nodeType":"YulLiteral","src":"3139:2:25","type":"","value":"19"},{"arguments":[{"kind":"number","nativeSrc":"3147:10:25","nodeType":"YulLiteral","src":"3147:10:25","type":"","value":"2654435769"},{"name":"v_","nativeSrc":"3159:2:25","nodeType":"YulIdentifier","src":"3159:2:25"}],"functionName":{"name":"mul","nativeSrc":"3143:3:25","nodeType":"YulIdentifier","src":"3143:3:25"},"nativeSrc":"3143:19:25","nodeType":"YulFunctionCall","src":"3143:19:25"}],"functionName":{"name":"shr","nativeSrc":"3135:3:25","nodeType":"YulIdentifier","src":"3135:3:25"},"nativeSrc":"3135:28:25","nodeType":"YulFunctionCall","src":"3135:28:25"},{"kind":"number","nativeSrc":"3165:6:25","nodeType":"YulLiteral","src":"3165:6:25","type":"","value":"0x1fff"}],"functionName":{"name":"and","nativeSrc":"3131:3:25","nodeType":"YulIdentifier","src":"3131:3:25"},"nativeSrc":"3131:41:25","nodeType":"YulFunctionCall","src":"3131:41:25"},"variableNames":[{"name":"_r","nativeSrc":"3125:2:25","nodeType":"YulIdentifier","src":"3125:2:25"}]}]},"name":"hash","nativeSrc":"3083:103:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"v_","nativeSrc":"3097:2:25","nodeType":"YulTypedName","src":"3097:2:25","type":""}],"returnVariables":[{"name":"_r","nativeSrc":"3104:2:25","nodeType":"YulTypedName","src":"3104:2:25","type":""}],"src":"3083:103:25"},{"body":{"nativeSrc":"3242:110:25","nodeType":"YulBlock","src":"3242:110:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"ip_","nativeSrc":"3277:3:25","nodeType":"YulIdentifier","src":"3277:3:25"}],"functionName":{"name":"u24","nativeSrc":"3273:3:25","nodeType":"YulIdentifier","src":"3273:3:25"},"nativeSrc":"3273:8:25","nodeType":"YulFunctionCall","src":"3273:8:25"}],"functionName":{"name":"hash","nativeSrc":"3268:4:25","nodeType":"YulIdentifier","src":"3268:4:25"},"nativeSrc":"3268:14:25","nodeType":"YulFunctionCall","src":"3268:14:25"},{"arguments":[{"name":"ip_","nativeSrc":"3288:3:25","nodeType":"YulIdentifier","src":"3288:3:25"},{"name":"ipStart_","nativeSrc":"3293:8:25","nodeType":"YulIdentifier","src":"3293:8:25"}],"functionName":{"name":"sub","nativeSrc":"3284:3:25","nodeType":"YulIdentifier","src":"3284:3:25"},"nativeSrc":"3284:18:25","nodeType":"YulFunctionCall","src":"3284:18:25"}],"functionName":{"name":"setHash","nativeSrc":"3260:7:25","nodeType":"YulIdentifier","src":"3260:7:25"},"nativeSrc":"3260:43:25","nodeType":"YulFunctionCall","src":"3260:43:25"},"nativeSrc":"3260:43:25","nodeType":"YulExpressionStatement","src":"3260:43:25"},{"nativeSrc":"3320:18:25","nodeType":"YulAssignment","src":"3320:18:25","value":{"arguments":[{"name":"ip_","nativeSrc":"3331:3:25","nodeType":"YulIdentifier","src":"3331:3:25"},{"kind":"number","nativeSrc":"3336:1:25","nodeType":"YulLiteral","src":"3336:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3327:3:25","nodeType":"YulIdentifier","src":"3327:3:25"},"nativeSrc":"3327:11:25","nodeType":"YulFunctionCall","src":"3327:11:25"},"variableNames":[{"name":"_ip","nativeSrc":"3320:3:25","nodeType":"YulIdentifier","src":"3320:3:25"}]}]},"name":"setNextHash","nativeSrc":"3199:153:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"ip_","nativeSrc":"3220:3:25","nodeType":"YulTypedName","src":"3220:3:25","type":""},{"name":"ipStart_","nativeSrc":"3225:8:25","nodeType":"YulTypedName","src":"3225:8:25","type":""}],"returnVariables":[{"name":"_ip","nativeSrc":"3238:3:25","nodeType":"YulTypedName","src":"3238:3:25","type":""}],"src":"3199:153:25"},{"nativeSrc":"3365:21:25","nodeType":"YulAssignment","src":"3365:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"3381:4:25","nodeType":"YulLiteral","src":"3381:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"3375:5:25","nodeType":"YulIdentifier","src":"3375:5:25"},"nativeSrc":"3375:11:25","nodeType":"YulFunctionCall","src":"3375:11:25"},"variableNames":[{"name":"result","nativeSrc":"3365:6:25","nodeType":"YulIdentifier","src":"3365:6:25"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"3408:6:25","nodeType":"YulIdentifier","src":"3408:6:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"3416:8:25","nodeType":"YulIdentifier","src":"3416:8:25"},"nativeSrc":"3416:10:25","nodeType":"YulFunctionCall","src":"3416:10:25"},{"kind":"number","nativeSrc":"3428:6:25","nodeType":"YulLiteral","src":"3428:6:25","type":"","value":"0x8000"}],"functionName":{"name":"codecopy","nativeSrc":"3399:8:25","nodeType":"YulIdentifier","src":"3399:8:25"},"nativeSrc":"3399:36:25","nodeType":"YulFunctionCall","src":"3399:36:25"},"nativeSrc":"3399:36:25","nodeType":"YulExpressionStatement","src":"3399:36:25"},{"nativeSrc":"3472:29:25","nodeType":"YulVariableDeclaration","src":"3472:29:25","value":{"arguments":[{"name":"result","nativeSrc":"3486:6:25","nodeType":"YulIdentifier","src":"3486:6:25"},{"kind":"number","nativeSrc":"3494:6:25","nodeType":"YulLiteral","src":"3494:6:25","type":"","value":"0x8000"}],"functionName":{"name":"add","nativeSrc":"3482:3:25","nodeType":"YulIdentifier","src":"3482:3:25"},"nativeSrc":"3482:19:25","nodeType":"YulFunctionCall","src":"3482:19:25"},"variables":[{"name":"op","nativeSrc":"3476:2:25","nodeType":"YulTypedName","src":"3476:2:25","type":""}]},{"nativeSrc":"3514:24:25","nodeType":"YulVariableDeclaration","src":"3514:24:25","value":{"arguments":[{"name":"data","nativeSrc":"3527:4:25","nodeType":"YulIdentifier","src":"3527:4:25"},{"kind":"number","nativeSrc":"3533:4:25","nodeType":"YulLiteral","src":"3533:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3523:3:25","nodeType":"YulIdentifier","src":"3523:3:25"},"nativeSrc":"3523:15:25","nodeType":"YulFunctionCall","src":"3523:15:25"},"variables":[{"name":"a","nativeSrc":"3518:1:25","nodeType":"YulTypedName","src":"3518:1:25","type":""}]},{"nativeSrc":"3551:16:25","nodeType":"YulVariableDeclaration","src":"3551:16:25","value":{"name":"a","nativeSrc":"3566:1:25","nodeType":"YulIdentifier","src":"3566:1:25"},"variables":[{"name":"ipStart","nativeSrc":"3555:7:25","nodeType":"YulTypedName","src":"3555:7:25","type":""}]},{"nativeSrc":"3580:49:25","nodeType":"YulVariableDeclaration","src":"3580:49:25","value":{"arguments":[{"arguments":[{"name":"ipStart","nativeSrc":"3603:7:25","nodeType":"YulIdentifier","src":"3603:7:25"},{"arguments":[{"name":"data","nativeSrc":"3618:4:25","nodeType":"YulIdentifier","src":"3618:4:25"}],"functionName":{"name":"mload","nativeSrc":"3612:5:25","nodeType":"YulIdentifier","src":"3612:5:25"},"nativeSrc":"3612:11:25","nodeType":"YulFunctionCall","src":"3612:11:25"}],"functionName":{"name":"add","nativeSrc":"3599:3:25","nodeType":"YulIdentifier","src":"3599:3:25"},"nativeSrc":"3599:25:25","nodeType":"YulFunctionCall","src":"3599:25:25"},{"kind":"number","nativeSrc":"3626:2:25","nodeType":"YulLiteral","src":"3626:2:25","type":"","value":"13"}],"functionName":{"name":"sub","nativeSrc":"3595:3:25","nodeType":"YulIdentifier","src":"3595:3:25"},"nativeSrc":"3595:34:25","nodeType":"YulFunctionCall","src":"3595:34:25"},"variables":[{"name":"ipLimit","nativeSrc":"3584:7:25","nodeType":"YulTypedName","src":"3584:7:25","type":""}]},{"body":{"nativeSrc":"3689:854:25","nodeType":"YulBlock","src":"3689:854:25","statements":[{"nativeSrc":"3707:10:25","nodeType":"YulVariableDeclaration","src":"3707:10:25","value":{"kind":"number","nativeSrc":"3716:1:25","nodeType":"YulLiteral","src":"3716:1:25","type":"","value":"0"},"variables":[{"name":"r","nativeSrc":"3711:1:25","nodeType":"YulTypedName","src":"3711:1:25","type":""}]},{"nativeSrc":"3734:10:25","nodeType":"YulVariableDeclaration","src":"3734:10:25","value":{"kind":"number","nativeSrc":"3743:1:25","nodeType":"YulLiteral","src":"3743:1:25","type":"","value":"0"},"variables":[{"name":"d","nativeSrc":"3738:1:25","nodeType":"YulTypedName","src":"3738:1:25","type":""}]},{"body":{"nativeSrc":"3773:398:25","nodeType":"YulBlock","src":"3773:398:25","statements":[{"nativeSrc":"3795:16:25","nodeType":"YulVariableDeclaration","src":"3795:16:25","value":{"arguments":[{"name":"ip","nativeSrc":"3808:2:25","nodeType":"YulIdentifier","src":"3808:2:25"}],"functionName":{"name":"u24","nativeSrc":"3804:3:25","nodeType":"YulIdentifier","src":"3804:3:25"},"nativeSrc":"3804:7:25","nodeType":"YulFunctionCall","src":"3804:7:25"},"variables":[{"name":"s","nativeSrc":"3799:1:25","nodeType":"YulTypedName","src":"3799:1:25","type":""}]},{"nativeSrc":"3832:16:25","nodeType":"YulVariableDeclaration","src":"3832:16:25","value":{"arguments":[{"name":"s","nativeSrc":"3846:1:25","nodeType":"YulIdentifier","src":"3846:1:25"}],"functionName":{"name":"hash","nativeSrc":"3841:4:25","nodeType":"YulIdentifier","src":"3841:4:25"},"nativeSrc":"3841:7:25","nodeType":"YulFunctionCall","src":"3841:7:25"},"variables":[{"name":"h","nativeSrc":"3836:1:25","nodeType":"YulTypedName","src":"3836:1:25","type":""}]},{"nativeSrc":"3869:29:25","nodeType":"YulAssignment","src":"3869:29:25","value":{"arguments":[{"name":"ipStart","nativeSrc":"3878:7:25","nodeType":"YulIdentifier","src":"3878:7:25"},{"arguments":[{"name":"h","nativeSrc":"3895:1:25","nodeType":"YulIdentifier","src":"3895:1:25"}],"functionName":{"name":"getHash","nativeSrc":"3887:7:25","nodeType":"YulIdentifier","src":"3887:7:25"},"nativeSrc":"3887:10:25","nodeType":"YulFunctionCall","src":"3887:10:25"}],"functionName":{"name":"add","nativeSrc":"3874:3:25","nodeType":"YulIdentifier","src":"3874:3:25"},"nativeSrc":"3874:24:25","nodeType":"YulFunctionCall","src":"3874:24:25"},"variableNames":[{"name":"r","nativeSrc":"3869:1:25","nodeType":"YulIdentifier","src":"3869:1:25"}]},{"expression":{"arguments":[{"name":"h","nativeSrc":"3927:1:25","nodeType":"YulIdentifier","src":"3927:1:25"},{"arguments":[{"name":"ip","nativeSrc":"3934:2:25","nodeType":"YulIdentifier","src":"3934:2:25"},{"name":"ipStart","nativeSrc":"3938:7:25","nodeType":"YulIdentifier","src":"3938:7:25"}],"functionName":{"name":"sub","nativeSrc":"3930:3:25","nodeType":"YulIdentifier","src":"3930:3:25"},"nativeSrc":"3930:16:25","nodeType":"YulFunctionCall","src":"3930:16:25"}],"functionName":{"name":"setHash","nativeSrc":"3919:7:25","nodeType":"YulIdentifier","src":"3919:7:25"},"nativeSrc":"3919:28:25","nodeType":"YulFunctionCall","src":"3919:28:25"},"nativeSrc":"3919:28:25","nodeType":"YulExpressionStatement","src":"3919:28:25"},{"nativeSrc":"3968:15:25","nodeType":"YulAssignment","src":"3968:15:25","value":{"arguments":[{"name":"ip","nativeSrc":"3977:2:25","nodeType":"YulIdentifier","src":"3977:2:25"},{"name":"r","nativeSrc":"3981:1:25","nodeType":"YulIdentifier","src":"3981:1:25"}],"functionName":{"name":"sub","nativeSrc":"3973:3:25","nodeType":"YulIdentifier","src":"3973:3:25"},"nativeSrc":"3973:10:25","nodeType":"YulFunctionCall","src":"3973:10:25"},"variableNames":[{"name":"d","nativeSrc":"3968:1:25","nodeType":"YulIdentifier","src":"3968:1:25"}]},{"body":{"nativeSrc":"4031:9:25","nodeType":"YulBlock","src":"4031:9:25","statements":[{"nativeSrc":"4033:5:25","nodeType":"YulBreak","src":"4033:5:25"}]},"condition":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4017:2:25","nodeType":"YulIdentifier","src":"4017:2:25"},{"name":"ipLimit","nativeSrc":"4021:7:25","nodeType":"YulIdentifier","src":"4021:7:25"}],"functionName":{"name":"lt","nativeSrc":"4014:2:25","nodeType":"YulIdentifier","src":"4014:2:25"},"nativeSrc":"4014:15:25","nodeType":"YulFunctionCall","src":"4014:15:25"}],"functionName":{"name":"iszero","nativeSrc":"4007:6:25","nodeType":"YulIdentifier","src":"4007:6:25"},"nativeSrc":"4007:23:25","nodeType":"YulFunctionCall","src":"4007:23:25"},"nativeSrc":"4004:36:25","nodeType":"YulIf","src":"4004:36:25"},{"nativeSrc":"4061:16:25","nodeType":"YulAssignment","src":"4061:16:25","value":{"arguments":[{"name":"ip","nativeSrc":"4071:2:25","nodeType":"YulIdentifier","src":"4071:2:25"},{"kind":"number","nativeSrc":"4075:1:25","nodeType":"YulLiteral","src":"4075:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4067:3:25","nodeType":"YulIdentifier","src":"4067:3:25"},"nativeSrc":"4067:10:25","nodeType":"YulFunctionCall","src":"4067:10:25"},"variableNames":[{"name":"ip","nativeSrc":"4061:2:25","nodeType":"YulIdentifier","src":"4061:2:25"}]},{"body":{"nativeSrc":"4123:30:25","nodeType":"YulBlock","src":"4123:30:25","statements":[{"body":{"nativeSrc":"4142:9:25","nodeType":"YulBlock","src":"4142:9:25","statements":[{"nativeSrc":"4144:5:25","nodeType":"YulBreak","src":"4144:5:25"}]},"condition":{"arguments":[{"name":"s","nativeSrc":"4131:1:25","nodeType":"YulIdentifier","src":"4131:1:25"},{"arguments":[{"name":"r","nativeSrc":"4138:1:25","nodeType":"YulIdentifier","src":"4138:1:25"}],"functionName":{"name":"u24","nativeSrc":"4134:3:25","nodeType":"YulIdentifier","src":"4134:3:25"},"nativeSrc":"4134:6:25","nodeType":"YulFunctionCall","src":"4134:6:25"}],"functionName":{"name":"eq","nativeSrc":"4128:2:25","nodeType":"YulIdentifier","src":"4128:2:25"},"nativeSrc":"4128:13:25","nodeType":"YulFunctionCall","src":"4128:13:25"},"nativeSrc":"4125:26:25","nodeType":"YulIf","src":"4125:26:25"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"4111:1:25","nodeType":"YulIdentifier","src":"4111:1:25"},{"kind":"number","nativeSrc":"4114:6:25","nodeType":"YulLiteral","src":"4114:6:25","type":"","value":"0x1fff"}],"functionName":{"name":"gt","nativeSrc":"4108:2:25","nodeType":"YulIdentifier","src":"4108:2:25"},"nativeSrc":"4108:13:25","nodeType":"YulFunctionCall","src":"4108:13:25"}],"functionName":{"name":"iszero","nativeSrc":"4101:6:25","nodeType":"YulIdentifier","src":"4101:6:25"},"nativeSrc":"4101:21:25","nodeType":"YulFunctionCall","src":"4101:21:25"},"nativeSrc":"4098:55:25","nodeType":"YulIf","src":"4098:55:25"}]},"condition":{"kind":"number","nativeSrc":"3768:1:25","nodeType":"YulLiteral","src":"3768:1:25","type":"","value":"1"},"nativeSrc":"3761:410:25","nodeType":"YulForLoop","post":{"nativeSrc":"3770:2:25","nodeType":"YulBlock","src":"3770:2:25","statements":[]},"pre":{"nativeSrc":"3765:2:25","nodeType":"YulBlock","src":"3765:2:25","statements":[]},"src":"3761:410:25"},{"body":{"nativeSrc":"4215:9:25","nodeType":"YulBlock","src":"4215:9:25","statements":[{"nativeSrc":"4217:5:25","nodeType":"YulBreak","src":"4217:5:25"}]},"condition":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4201:2:25","nodeType":"YulIdentifier","src":"4201:2:25"},{"name":"ipLimit","nativeSrc":"4205:7:25","nodeType":"YulIdentifier","src":"4205:7:25"}],"functionName":{"name":"lt","nativeSrc":"4198:2:25","nodeType":"YulIdentifier","src":"4198:2:25"},"nativeSrc":"4198:15:25","nodeType":"YulFunctionCall","src":"4198:15:25"}],"functionName":{"name":"iszero","nativeSrc":"4191:6:25","nodeType":"YulIdentifier","src":"4191:6:25"},"nativeSrc":"4191:23:25","nodeType":"YulFunctionCall","src":"4191:23:25"},"nativeSrc":"4188:36:25","nodeType":"YulIf","src":"4188:36:25"},{"nativeSrc":"4241:16:25","nodeType":"YulAssignment","src":"4241:16:25","value":{"arguments":[{"name":"ip","nativeSrc":"4251:2:25","nodeType":"YulIdentifier","src":"4251:2:25"},{"kind":"number","nativeSrc":"4255:1:25","nodeType":"YulLiteral","src":"4255:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4247:3:25","nodeType":"YulIdentifier","src":"4247:3:25"},"nativeSrc":"4247:10:25","nodeType":"YulFunctionCall","src":"4247:10:25"},"variableNames":[{"name":"ip","nativeSrc":"4241:2:25","nodeType":"YulIdentifier","src":"4241:2:25"}]},{"body":{"nativeSrc":"4287:37:25","nodeType":"YulBlock","src":"4287:37:25","statements":[{"nativeSrc":"4289:33:25","nodeType":"YulAssignment","src":"4289:33:25","value":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4308:2:25","nodeType":"YulIdentifier","src":"4308:2:25"},{"name":"a","nativeSrc":"4312:1:25","nodeType":"YulIdentifier","src":"4312:1:25"}],"functionName":{"name":"sub","nativeSrc":"4304:3:25","nodeType":"YulIdentifier","src":"4304:3:25"},"nativeSrc":"4304:10:25","nodeType":"YulFunctionCall","src":"4304:10:25"},{"name":"a","nativeSrc":"4316:1:25","nodeType":"YulIdentifier","src":"4316:1:25"},{"name":"op","nativeSrc":"4319:2:25","nodeType":"YulIdentifier","src":"4319:2:25"}],"functionName":{"name":"literals","nativeSrc":"4295:8:25","nodeType":"YulIdentifier","src":"4295:8:25"},"nativeSrc":"4295:27:25","nodeType":"YulFunctionCall","src":"4295:27:25"},"variableNames":[{"name":"op","nativeSrc":"4289:2:25","nodeType":"YulIdentifier","src":"4289:2:25"}]}]},"condition":{"arguments":[{"name":"ip","nativeSrc":"4280:2:25","nodeType":"YulIdentifier","src":"4280:2:25"},{"name":"a","nativeSrc":"4284:1:25","nodeType":"YulIdentifier","src":"4284:1:25"}],"functionName":{"name":"gt","nativeSrc":"4277:2:25","nodeType":"YulIdentifier","src":"4277:2:25"},"nativeSrc":"4277:9:25","nodeType":"YulFunctionCall","src":"4277:9:25"},"nativeSrc":"4274:50:25","nodeType":"YulIf","src":"4274:50:25"},{"nativeSrc":"4341:52:25","nodeType":"YulVariableDeclaration","src":"4341:52:25","value":{"arguments":[{"arguments":[{"name":"r","nativeSrc":"4358:1:25","nodeType":"YulIdentifier","src":"4358:1:25"},{"kind":"number","nativeSrc":"4361:1:25","nodeType":"YulLiteral","src":"4361:1:25","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"4354:3:25","nodeType":"YulIdentifier","src":"4354:3:25"},"nativeSrc":"4354:9:25","nodeType":"YulFunctionCall","src":"4354:9:25"},{"arguments":[{"name":"ip","nativeSrc":"4369:2:25","nodeType":"YulIdentifier","src":"4369:2:25"},{"kind":"number","nativeSrc":"4373:1:25","nodeType":"YulLiteral","src":"4373:1:25","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"4365:3:25","nodeType":"YulIdentifier","src":"4365:3:25"},"nativeSrc":"4365:10:25","nodeType":"YulFunctionCall","src":"4365:10:25"},{"arguments":[{"name":"ipLimit","nativeSrc":"4381:7:25","nodeType":"YulIdentifier","src":"4381:7:25"},{"kind":"number","nativeSrc":"4390:1:25","nodeType":"YulLiteral","src":"4390:1:25","type":"","value":"9"}],"functionName":{"name":"add","nativeSrc":"4377:3:25","nodeType":"YulIdentifier","src":"4377:3:25"},"nativeSrc":"4377:15:25","nodeType":"YulFunctionCall","src":"4377:15:25"}],"functionName":{"name":"cmp","nativeSrc":"4350:3:25","nodeType":"YulIdentifier","src":"4350:3:25"},"nativeSrc":"4350:43:25","nodeType":"YulFunctionCall","src":"4350:43:25"},"variables":[{"name":"l","nativeSrc":"4345:1:25","nodeType":"YulTypedName","src":"4345:1:25","type":""}]},{"nativeSrc":"4410:18:25","nodeType":"YulAssignment","src":"4410:18:25","value":{"arguments":[{"name":"l","nativeSrc":"4419:1:25","nodeType":"YulIdentifier","src":"4419:1:25"},{"name":"d","nativeSrc":"4422:1:25","nodeType":"YulIdentifier","src":"4422:1:25"},{"name":"op","nativeSrc":"4425:2:25","nodeType":"YulIdentifier","src":"4425:2:25"}],"functionName":{"name":"mt","nativeSrc":"4416:2:25","nodeType":"YulIdentifier","src":"4416:2:25"},"nativeSrc":"4416:12:25","nodeType":"YulFunctionCall","src":"4416:12:25"},"variableNames":[{"name":"op","nativeSrc":"4410:2:25","nodeType":"YulIdentifier","src":"4410:2:25"}]},{"nativeSrc":"4445:60:25","nodeType":"YulAssignment","src":"4445:60:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4479:2:25","nodeType":"YulIdentifier","src":"4479:2:25"},{"name":"l","nativeSrc":"4483:1:25","nodeType":"YulIdentifier","src":"4483:1:25"}],"functionName":{"name":"add","nativeSrc":"4475:3:25","nodeType":"YulIdentifier","src":"4475:3:25"},"nativeSrc":"4475:10:25","nodeType":"YulFunctionCall","src":"4475:10:25"},{"name":"ipStart","nativeSrc":"4487:7:25","nodeType":"YulIdentifier","src":"4487:7:25"}],"functionName":{"name":"setNextHash","nativeSrc":"4463:11:25","nodeType":"YulIdentifier","src":"4463:11:25"},"nativeSrc":"4463:32:25","nodeType":"YulFunctionCall","src":"4463:32:25"},{"name":"ipStart","nativeSrc":"4497:7:25","nodeType":"YulIdentifier","src":"4497:7:25"}],"functionName":{"name":"setNextHash","nativeSrc":"4451:11:25","nodeType":"YulIdentifier","src":"4451:11:25"},"nativeSrc":"4451:54:25","nodeType":"YulFunctionCall","src":"4451:54:25"},"variableNames":[{"name":"ip","nativeSrc":"4445:2:25","nodeType":"YulIdentifier","src":"4445:2:25"}]},{"nativeSrc":"4522:7:25","nodeType":"YulAssignment","src":"4522:7:25","value":{"name":"ip","nativeSrc":"4527:2:25","nodeType":"YulIdentifier","src":"4527:2:25"},"variableNames":[{"name":"a","nativeSrc":"4522:1:25","nodeType":"YulIdentifier","src":"4522:1:25"}]}]},"condition":{"arguments":[{"name":"ip","nativeSrc":"3673:2:25","nodeType":"YulIdentifier","src":"3673:2:25"},{"name":"ipLimit","nativeSrc":"3677:7:25","nodeType":"YulIdentifier","src":"3677:7:25"}],"functionName":{"name":"lt","nativeSrc":"3670:2:25","nodeType":"YulIdentifier","src":"3670:2:25"},"nativeSrc":"3670:15:25","nodeType":"YulFunctionCall","src":"3670:15:25"},"nativeSrc":"3642:901:25","nodeType":"YulForLoop","post":{"nativeSrc":"3686:2:25","nodeType":"YulBlock","src":"3686:2:25","statements":[]},"pre":{"nativeSrc":"3646:23:25","nodeType":"YulBlock","src":"3646:23:25","statements":[{"nativeSrc":"3648:19:25","nodeType":"YulVariableDeclaration","src":"3648:19:25","value":{"arguments":[{"kind":"number","nativeSrc":"3662:1:25","nodeType":"YulLiteral","src":"3662:1:25","type":"","value":"2"},{"name":"a","nativeSrc":"3665:1:25","nodeType":"YulIdentifier","src":"3665:1:25"}],"functionName":{"name":"add","nativeSrc":"3658:3:25","nodeType":"YulIdentifier","src":"3658:3:25"},"nativeSrc":"3658:9:25","nodeType":"YulFunctionCall","src":"3658:9:25"},"variables":[{"name":"ip","nativeSrc":"3652:2:25","nodeType":"YulTypedName","src":"3652:2:25","type":""}]}]},"src":"3642:901:25"},{"nativeSrc":"4635:74:25","nodeType":"YulVariableDeclaration","src":"4635:74:25","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"ipStart","nativeSrc":"4667:7:25","nodeType":"YulIdentifier","src":"4667:7:25"},{"arguments":[{"name":"data","nativeSrc":"4682:4:25","nodeType":"YulIdentifier","src":"4682:4:25"}],"functionName":{"name":"mload","nativeSrc":"4676:5:25","nodeType":"YulIdentifier","src":"4676:5:25"},"nativeSrc":"4676:11:25","nodeType":"YulFunctionCall","src":"4676:11:25"}],"functionName":{"name":"add","nativeSrc":"4663:3:25","nodeType":"YulIdentifier","src":"4663:3:25"},"nativeSrc":"4663:25:25","nodeType":"YulFunctionCall","src":"4663:25:25"},{"name":"a","nativeSrc":"4690:1:25","nodeType":"YulIdentifier","src":"4690:1:25"}],"functionName":{"name":"sub","nativeSrc":"4659:3:25","nodeType":"YulIdentifier","src":"4659:3:25"},"nativeSrc":"4659:33:25","nodeType":"YulFunctionCall","src":"4659:33:25"},{"name":"a","nativeSrc":"4694:1:25","nodeType":"YulIdentifier","src":"4694:1:25"},{"name":"op","nativeSrc":"4697:2:25","nodeType":"YulIdentifier","src":"4697:2:25"}],"functionName":{"name":"literals","nativeSrc":"4650:8:25","nodeType":"YulIdentifier","src":"4650:8:25"},"nativeSrc":"4650:50:25","nodeType":"YulFunctionCall","src":"4650:50:25"},{"kind":"number","nativeSrc":"4702:6:25","nodeType":"YulLiteral","src":"4702:6:25","type":"","value":"0x7fe0"}],"functionName":{"name":"sub","nativeSrc":"4646:3:25","nodeType":"YulIdentifier","src":"4646:3:25"},"nativeSrc":"4646:63:25","nodeType":"YulFunctionCall","src":"4646:63:25"},"variables":[{"name":"end","nativeSrc":"4639:3:25","nodeType":"YulTypedName","src":"4639:3:25","type":""}]},{"nativeSrc":"4722:26:25","nodeType":"YulVariableDeclaration","src":"4722:26:25","value":{"arguments":[{"name":"result","nativeSrc":"4735:6:25","nodeType":"YulIdentifier","src":"4735:6:25"},{"kind":"number","nativeSrc":"4743:4:25","nodeType":"YulLiteral","src":"4743:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4731:3:25","nodeType":"YulIdentifier","src":"4731:3:25"},"nativeSrc":"4731:17:25","nodeType":"YulFunctionCall","src":"4731:17:25"},"variables":[{"name":"o","nativeSrc":"4726:1:25","nodeType":"YulTypedName","src":"4726:1:25","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"4768:6:25","nodeType":"YulIdentifier","src":"4768:6:25"},{"arguments":[{"name":"end","nativeSrc":"4780:3:25","nodeType":"YulIdentifier","src":"4780:3:25"},{"name":"o","nativeSrc":"4785:1:25","nodeType":"YulIdentifier","src":"4785:1:25"}],"functionName":{"name":"sub","nativeSrc":"4776:3:25","nodeType":"YulIdentifier","src":"4776:3:25"},"nativeSrc":"4776:11:25","nodeType":"YulFunctionCall","src":"4776:11:25"}],"functionName":{"name":"mstore","nativeSrc":"4761:6:25","nodeType":"YulIdentifier","src":"4761:6:25"},"nativeSrc":"4761:27:25","nodeType":"YulFunctionCall","src":"4761:27:25"},"nativeSrc":"4761:27:25","nodeType":"YulExpressionStatement","src":"4761:27:25"},{"body":{"nativeSrc":"4870:36:25","nodeType":"YulBlock","src":"4870:36:25","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"4879:1:25","nodeType":"YulIdentifier","src":"4879:1:25"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"4892:1:25","nodeType":"YulIdentifier","src":"4892:1:25"},{"kind":"number","nativeSrc":"4895:6:25","nodeType":"YulLiteral","src":"4895:6:25","type":"","value":"0x7fe0"}],"functionName":{"name":"add","nativeSrc":"4888:3:25","nodeType":"YulIdentifier","src":"4888:3:25"},"nativeSrc":"4888:14:25","nodeType":"YulFunctionCall","src":"4888:14:25"}],"functionName":{"name":"mload","nativeSrc":"4882:5:25","nodeType":"YulIdentifier","src":"4882:5:25"},"nativeSrc":"4882:21:25","nodeType":"YulFunctionCall","src":"4882:21:25"}],"functionName":{"name":"mstore","nativeSrc":"4872:6:25","nodeType":"YulIdentifier","src":"4872:6:25"},"nativeSrc":"4872:32:25","nodeType":"YulFunctionCall","src":"4872:32:25"},"nativeSrc":"4872:32:25","nodeType":"YulExpressionStatement","src":"4872:32:25"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"4839:1:25","nodeType":"YulIdentifier","src":"4839:1:25"},{"name":"end","nativeSrc":"4842:3:25","nodeType":"YulIdentifier","src":"4842:3:25"}],"functionName":{"name":"gt","nativeSrc":"4836:2:25","nodeType":"YulIdentifier","src":"4836:2:25"},"nativeSrc":"4836:10:25","nodeType":"YulFunctionCall","src":"4836:10:25"}],"functionName":{"name":"iszero","nativeSrc":"4829:6:25","nodeType":"YulIdentifier","src":"4829:6:25"},"nativeSrc":"4829:18:25","nodeType":"YulFunctionCall","src":"4829:18:25"},"nativeSrc":"4822:84:25","nodeType":"YulForLoop","post":{"nativeSrc":"4848:21:25","nodeType":"YulBlock","src":"4848:21:25","statements":[{"nativeSrc":"4850:17:25","nodeType":"YulAssignment","src":"4850:17:25","value":{"arguments":[{"name":"o","nativeSrc":"4859:1:25","nodeType":"YulIdentifier","src":"4859:1:25"},{"kind":"number","nativeSrc":"4862:4:25","nodeType":"YulLiteral","src":"4862:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4855:3:25","nodeType":"YulIdentifier","src":"4855:3:25"},"nativeSrc":"4855:12:25","nodeType":"YulFunctionCall","src":"4855:12:25"},"variableNames":[{"name":"o","nativeSrc":"4850:1:25","nodeType":"YulIdentifier","src":"4850:1:25"}]}]},"pre":{"nativeSrc":"4826:2:25","nodeType":"YulBlock","src":"4826:2:25","statements":[]},"src":"4822:84:25"},{"expression":{"arguments":[{"name":"end","nativeSrc":"4926:3:25","nodeType":"YulIdentifier","src":"4926:3:25"},{"kind":"number","nativeSrc":"4931:1:25","nodeType":"YulLiteral","src":"4931:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4919:6:25","nodeType":"YulIdentifier","src":"4919:6:25"},"nativeSrc":"4919:14:25","nodeType":"YulFunctionCall","src":"4919:14:25"},"nativeSrc":"4919:14:25","nodeType":"YulExpressionStatement","src":"4919:14:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4991:4:25","nodeType":"YulLiteral","src":"4991:4:25","type":"","value":"0x40"},{"arguments":[{"name":"end","nativeSrc":"5001:3:25","nodeType":"YulIdentifier","src":"5001:3:25"},{"kind":"number","nativeSrc":"5006:4:25","nodeType":"YulLiteral","src":"5006:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4997:3:25","nodeType":"YulIdentifier","src":"4997:3:25"},"nativeSrc":"4997:14:25","nodeType":"YulFunctionCall","src":"4997:14:25"}],"functionName":{"name":"mstore","nativeSrc":"4984:6:25","nodeType":"YulIdentifier","src":"4984:6:25"},"nativeSrc":"4984:28:25","nodeType":"YulFunctionCall","src":"4984:28:25"},"nativeSrc":"4984:28:25","nodeType":"YulExpressionStatement","src":"4984:28:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10970,"isOffset":false,"isSlot":false,"src":"3527:4:25","valueSize":1},{"declaration":10970,"isOffset":false,"isSlot":false,"src":"3618:4:25","valueSize":1},{"declaration":10970,"isOffset":false,"isSlot":false,"src":"4682:4:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"3365:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"3408:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"3486:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"4735:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"4768:6:25","valueSize":1}],"id":10975,"nodeType":"InlineAssembly","src":"1239:3807:25"}]},"documentation":{"id":10968,"nodeType":"StructuredDocumentation","src":"1058:39:25","text":"@dev Returns the compressed `data`."},"id":10977,"implemented":true,"kind":"function","modifiers":[],"name":"flzCompress","nameLocation":"1111:11:25","nodeType":"FunctionDefinition","parameters":{"id":10971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10970,"mutability":"mutable","name":"data","nameLocation":"1136:4:25","nodeType":"VariableDeclaration","scope":10977,"src":"1123:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10969,"name":"bytes","nodeType":"ElementaryTypeName","src":"1123:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1122:19:25"},"returnParameters":{"id":10974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10973,"mutability":"mutable","name":"result","nameLocation":"1178:6:25","nodeType":"VariableDeclaration","scope":10977,"src":"1165:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10972,"name":"bytes","nodeType":"ElementaryTypeName","src":"1165:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1164:21:25"},"scope":11014,"src":"1102:3950:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10986,"nodeType":"Block","src":"5190:1487:25","statements":[{"AST":{"nativeSrc":"5252:1419:25","nodeType":"YulBlock","src":"5252:1419:25","statements":[{"nativeSrc":"5266:21:25","nodeType":"YulAssignment","src":"5266:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"5282:4:25","nodeType":"YulLiteral","src":"5282:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"5276:5:25","nodeType":"YulIdentifier","src":"5276:5:25"},"nativeSrc":"5276:11:25","nodeType":"YulFunctionCall","src":"5276:11:25"},"variableNames":[{"name":"result","nativeSrc":"5266:6:25","nodeType":"YulIdentifier","src":"5266:6:25"}]},{"nativeSrc":"5300:27:25","nodeType":"YulVariableDeclaration","src":"5300:27:25","value":{"arguments":[{"name":"result","nativeSrc":"5314:6:25","nodeType":"YulIdentifier","src":"5314:6:25"},{"kind":"number","nativeSrc":"5322:4:25","nodeType":"YulLiteral","src":"5322:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5310:3:25","nodeType":"YulIdentifier","src":"5310:3:25"},"nativeSrc":"5310:17:25","nodeType":"YulFunctionCall","src":"5310:17:25"},"variables":[{"name":"op","nativeSrc":"5304:2:25","nodeType":"YulTypedName","src":"5304:2:25","type":""}]},{"nativeSrc":"5340:44:25","nodeType":"YulVariableDeclaration","src":"5340:44:25","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"5359:4:25","nodeType":"YulIdentifier","src":"5359:4:25"},{"kind":"number","nativeSrc":"5365:4:25","nodeType":"YulLiteral","src":"5365:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5355:3:25","nodeType":"YulIdentifier","src":"5355:3:25"},"nativeSrc":"5355:15:25","nodeType":"YulFunctionCall","src":"5355:15:25"},{"arguments":[{"name":"data","nativeSrc":"5378:4:25","nodeType":"YulIdentifier","src":"5378:4:25"}],"functionName":{"name":"mload","nativeSrc":"5372:5:25","nodeType":"YulIdentifier","src":"5372:5:25"},"nativeSrc":"5372:11:25","nodeType":"YulFunctionCall","src":"5372:11:25"}],"functionName":{"name":"add","nativeSrc":"5351:3:25","nodeType":"YulIdentifier","src":"5351:3:25"},"nativeSrc":"5351:33:25","nodeType":"YulFunctionCall","src":"5351:33:25"},"variables":[{"name":"end","nativeSrc":"5344:3:25","nodeType":"YulTypedName","src":"5344:3:25","type":""}]},{"body":{"nativeSrc":"5446:1011:25","nodeType":"YulBlock","src":"5446:1011:25","statements":[{"nativeSrc":"5464:20:25","nodeType":"YulVariableDeclaration","src":"5464:20:25","value":{"arguments":[{"name":"data","nativeSrc":"5479:4:25","nodeType":"YulIdentifier","src":"5479:4:25"}],"functionName":{"name":"mload","nativeSrc":"5473:5:25","nodeType":"YulIdentifier","src":"5473:5:25"},"nativeSrc":"5473:11:25","nodeType":"YulFunctionCall","src":"5473:11:25"},"variables":[{"name":"w","nativeSrc":"5468:1:25","nodeType":"YulTypedName","src":"5468:1:25","type":""}]},{"nativeSrc":"5501:19:25","nodeType":"YulVariableDeclaration","src":"5501:19:25","value":{"arguments":[{"kind":"number","nativeSrc":"5515:1:25","nodeType":"YulLiteral","src":"5515:1:25","type":"","value":"0"},{"name":"w","nativeSrc":"5518:1:25","nodeType":"YulIdentifier","src":"5518:1:25"}],"functionName":{"name":"byte","nativeSrc":"5510:4:25","nodeType":"YulIdentifier","src":"5510:4:25"},"nativeSrc":"5510:10:25","nodeType":"YulFunctionCall","src":"5510:10:25"},"variables":[{"name":"c","nativeSrc":"5505:1:25","nodeType":"YulTypedName","src":"5505:1:25","type":""}]},{"nativeSrc":"5537:18:25","nodeType":"YulVariableDeclaration","src":"5537:18:25","value":{"arguments":[{"kind":"number","nativeSrc":"5550:1:25","nodeType":"YulLiteral","src":"5550:1:25","type":"","value":"5"},{"name":"c","nativeSrc":"5553:1:25","nodeType":"YulIdentifier","src":"5553:1:25"}],"functionName":{"name":"shr","nativeSrc":"5546:3:25","nodeType":"YulIdentifier","src":"5546:3:25"},"nativeSrc":"5546:9:25","nodeType":"YulFunctionCall","src":"5546:9:25"},"variables":[{"name":"t","nativeSrc":"5541:1:25","nodeType":"YulTypedName","src":"5541:1:25","type":""}]},{"body":{"nativeSrc":"5585:194:25","nodeType":"YulBlock","src":"5585:194:25","statements":[{"expression":{"arguments":[{"name":"op","nativeSrc":"5614:2:25","nodeType":"YulIdentifier","src":"5614:2:25"},{"arguments":[{"arguments":[{"name":"data","nativeSrc":"5628:4:25","nodeType":"YulIdentifier","src":"5628:4:25"},{"kind":"number","nativeSrc":"5634:1:25","nodeType":"YulLiteral","src":"5634:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5624:3:25","nodeType":"YulIdentifier","src":"5624:3:25"},"nativeSrc":"5624:12:25","nodeType":"YulFunctionCall","src":"5624:12:25"}],"functionName":{"name":"mload","nativeSrc":"5618:5:25","nodeType":"YulIdentifier","src":"5618:5:25"},"nativeSrc":"5618:19:25","nodeType":"YulFunctionCall","src":"5618:19:25"}],"functionName":{"name":"mstore","nativeSrc":"5607:6:25","nodeType":"YulIdentifier","src":"5607:6:25"},"nativeSrc":"5607:31:25","nodeType":"YulFunctionCall","src":"5607:31:25"},"nativeSrc":"5607:31:25","nodeType":"YulExpressionStatement","src":"5607:31:25"},{"nativeSrc":"5659:28:25","nodeType":"YulAssignment","src":"5659:28:25","value":{"arguments":[{"name":"data","nativeSrc":"5671:4:25","nodeType":"YulIdentifier","src":"5671:4:25"},{"arguments":[{"kind":"number","nativeSrc":"5681:1:25","nodeType":"YulLiteral","src":"5681:1:25","type":"","value":"2"},{"name":"c","nativeSrc":"5684:1:25","nodeType":"YulIdentifier","src":"5684:1:25"}],"functionName":{"name":"add","nativeSrc":"5677:3:25","nodeType":"YulIdentifier","src":"5677:3:25"},"nativeSrc":"5677:9:25","nodeType":"YulFunctionCall","src":"5677:9:25"}],"functionName":{"name":"add","nativeSrc":"5667:3:25","nodeType":"YulIdentifier","src":"5667:3:25"},"nativeSrc":"5667:20:25","nodeType":"YulFunctionCall","src":"5667:20:25"},"variableNames":[{"name":"data","nativeSrc":"5659:4:25","nodeType":"YulIdentifier","src":"5659:4:25"}]},{"nativeSrc":"5708:24:25","nodeType":"YulAssignment","src":"5708:24:25","value":{"arguments":[{"name":"op","nativeSrc":"5718:2:25","nodeType":"YulIdentifier","src":"5718:2:25"},{"arguments":[{"kind":"number","nativeSrc":"5726:1:25","nodeType":"YulLiteral","src":"5726:1:25","type":"","value":"1"},{"name":"c","nativeSrc":"5729:1:25","nodeType":"YulIdentifier","src":"5729:1:25"}],"functionName":{"name":"add","nativeSrc":"5722:3:25","nodeType":"YulIdentifier","src":"5722:3:25"},"nativeSrc":"5722:9:25","nodeType":"YulFunctionCall","src":"5722:9:25"}],"functionName":{"name":"add","nativeSrc":"5714:3:25","nodeType":"YulIdentifier","src":"5714:3:25"},"nativeSrc":"5714:18:25","nodeType":"YulFunctionCall","src":"5714:18:25"},"variableNames":[{"name":"op","nativeSrc":"5708:2:25","nodeType":"YulIdentifier","src":"5708:2:25"}]},{"nativeSrc":"5753:8:25","nodeType":"YulContinue","src":"5753:8:25"}]},"condition":{"arguments":[{"name":"t","nativeSrc":"5582:1:25","nodeType":"YulIdentifier","src":"5582:1:25"}],"functionName":{"name":"iszero","nativeSrc":"5575:6:25","nodeType":"YulIdentifier","src":"5575:6:25"},"nativeSrc":"5575:9:25","nodeType":"YulFunctionCall","src":"5575:9:25"},"nativeSrc":"5572:207:25","nodeType":"YulIf","src":"5572:207:25"},{"body":{"nativeSrc":"6175:268:25","nodeType":"YulBlock","src":"6175:268:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"op","nativeSrc":"6208:2:25","nodeType":"YulIdentifier","src":"6208:2:25"},{"name":"j","nativeSrc":"6212:1:25","nodeType":"YulIdentifier","src":"6212:1:25"}],"functionName":{"name":"add","nativeSrc":"6204:3:25","nodeType":"YulIdentifier","src":"6204:3:25"},"nativeSrc":"6204:10:25","nodeType":"YulFunctionCall","src":"6204:10:25"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"6226:1:25","nodeType":"YulIdentifier","src":"6226:1:25"},{"name":"j","nativeSrc":"6229:1:25","nodeType":"YulIdentifier","src":"6229:1:25"}],"functionName":{"name":"add","nativeSrc":"6222:3:25","nodeType":"YulIdentifier","src":"6222:3:25"},"nativeSrc":"6222:9:25","nodeType":"YulFunctionCall","src":"6222:9:25"}],"functionName":{"name":"mload","nativeSrc":"6216:5:25","nodeType":"YulIdentifier","src":"6216:5:25"},"nativeSrc":"6216:16:25","nodeType":"YulFunctionCall","src":"6216:16:25"}],"functionName":{"name":"mstore","nativeSrc":"6197:6:25","nodeType":"YulIdentifier","src":"6197:6:25"},"nativeSrc":"6197:36:25","nodeType":"YulFunctionCall","src":"6197:36:25"},"nativeSrc":"6197:36:25","nodeType":"YulExpressionStatement","src":"6197:36:25"},{"nativeSrc":"6254:14:25","nodeType":"YulAssignment","src":"6254:14:25","value":{"arguments":[{"name":"j","nativeSrc":"6263:1:25","nodeType":"YulIdentifier","src":"6263:1:25"},{"name":"f","nativeSrc":"6266:1:25","nodeType":"YulIdentifier","src":"6266:1:25"}],"functionName":{"name":"add","nativeSrc":"6259:3:25","nodeType":"YulIdentifier","src":"6259:3:25"},"nativeSrc":"6259:9:25","nodeType":"YulFunctionCall","src":"6259:9:25"},"variableNames":[{"name":"j","nativeSrc":"6254:1:25","nodeType":"YulIdentifier","src":"6254:1:25"}]},{"body":{"nativeSrc":"6301:12:25","nodeType":"YulBlock","src":"6301:12:25","statements":[{"nativeSrc":"6303:8:25","nodeType":"YulContinue","src":"6303:8:25"}]},"condition":{"arguments":[{"name":"j","nativeSrc":"6295:1:25","nodeType":"YulIdentifier","src":"6295:1:25"},{"name":"l","nativeSrc":"6298:1:25","nodeType":"YulIdentifier","src":"6298:1:25"}],"functionName":{"name":"lt","nativeSrc":"6292:2:25","nodeType":"YulIdentifier","src":"6292:2:25"},"nativeSrc":"6292:8:25","nodeType":"YulFunctionCall","src":"6292:8:25"},"nativeSrc":"6289:24:25","nodeType":"YulIf","src":"6289:24:25"},{"nativeSrc":"6334:28:25","nodeType":"YulAssignment","src":"6334:28:25","value":{"arguments":[{"name":"data","nativeSrc":"6346:4:25","nodeType":"YulIdentifier","src":"6346:4:25"},{"arguments":[{"kind":"number","nativeSrc":"6356:1:25","nodeType":"YulLiteral","src":"6356:1:25","type":"","value":"2"},{"name":"g","nativeSrc":"6359:1:25","nodeType":"YulIdentifier","src":"6359:1:25"}],"functionName":{"name":"add","nativeSrc":"6352:3:25","nodeType":"YulIdentifier","src":"6352:3:25"},"nativeSrc":"6352:9:25","nodeType":"YulFunctionCall","src":"6352:9:25"}],"functionName":{"name":"add","nativeSrc":"6342:3:25","nodeType":"YulIdentifier","src":"6342:3:25"},"nativeSrc":"6342:20:25","nodeType":"YulFunctionCall","src":"6342:20:25"},"variableNames":[{"name":"data","nativeSrc":"6334:4:25","nodeType":"YulIdentifier","src":"6334:4:25"}]},{"nativeSrc":"6383:16:25","nodeType":"YulAssignment","src":"6383:16:25","value":{"arguments":[{"name":"op","nativeSrc":"6393:2:25","nodeType":"YulIdentifier","src":"6393:2:25"},{"name":"l","nativeSrc":"6397:1:25","nodeType":"YulIdentifier","src":"6397:1:25"}],"functionName":{"name":"add","nativeSrc":"6389:3:25","nodeType":"YulIdentifier","src":"6389:3:25"},"nativeSrc":"6389:10:25","nodeType":"YulFunctionCall","src":"6389:10:25"},"variableNames":[{"name":"op","nativeSrc":"6383:2:25","nodeType":"YulIdentifier","src":"6383:2:25"}]},{"nativeSrc":"6420:5:25","nodeType":"YulBreak","src":"6420:5:25"}]},"condition":{"kind":"number","nativeSrc":"6170:1:25","nodeType":"YulLiteral","src":"6170:1:25","type":"","value":"1"},"nativeSrc":"5796:647:25","nodeType":"YulForLoop","post":{"nativeSrc":"6172:2:25","nodeType":"YulBlock","src":"6172:2:25","statements":[]},"pre":{"nativeSrc":"5800:369:25","nodeType":"YulBlock","src":"5800:369:25","statements":[{"nativeSrc":"5822:17:25","nodeType":"YulVariableDeclaration","src":"5822:17:25","value":{"arguments":[{"name":"t","nativeSrc":"5834:1:25","nodeType":"YulIdentifier","src":"5834:1:25"},{"kind":"number","nativeSrc":"5837:1:25","nodeType":"YulLiteral","src":"5837:1:25","type":"","value":"7"}],"functionName":{"name":"eq","nativeSrc":"5831:2:25","nodeType":"YulIdentifier","src":"5831:2:25"},"nativeSrc":"5831:8:25","nodeType":"YulFunctionCall","src":"5831:8:25"},"variables":[{"name":"g","nativeSrc":"5826:1:25","nodeType":"YulTypedName","src":"5826:1:25","type":""}]},{"nativeSrc":"5860:59:25","nodeType":"YulVariableDeclaration","src":"5860:59:25","value":{"arguments":[{"kind":"number","nativeSrc":"5873:1:25","nodeType":"YulLiteral","src":"5873:1:25","type":"","value":"2"},{"arguments":[{"name":"t","nativeSrc":"5880:1:25","nodeType":"YulIdentifier","src":"5880:1:25"},{"arguments":[{"name":"g","nativeSrc":"5887:1:25","nodeType":"YulIdentifier","src":"5887:1:25"},{"arguments":[{"name":"t","nativeSrc":"5894:1:25","nodeType":"YulIdentifier","src":"5894:1:25"},{"arguments":[{"kind":"number","nativeSrc":"5901:1:25","nodeType":"YulLiteral","src":"5901:1:25","type":"","value":"7"},{"arguments":[{"kind":"number","nativeSrc":"5909:1:25","nodeType":"YulLiteral","src":"5909:1:25","type":"","value":"1"},{"name":"w","nativeSrc":"5912:1:25","nodeType":"YulIdentifier","src":"5912:1:25"}],"functionName":{"name":"byte","nativeSrc":"5904:4:25","nodeType":"YulIdentifier","src":"5904:4:25"},"nativeSrc":"5904:10:25","nodeType":"YulFunctionCall","src":"5904:10:25"}],"functionName":{"name":"add","nativeSrc":"5897:3:25","nodeType":"YulIdentifier","src":"5897:3:25"},"nativeSrc":"5897:18:25","nodeType":"YulFunctionCall","src":"5897:18:25"}],"functionName":{"name":"xor","nativeSrc":"5890:3:25","nodeType":"YulIdentifier","src":"5890:3:25"},"nativeSrc":"5890:26:25","nodeType":"YulFunctionCall","src":"5890:26:25"}],"functionName":{"name":"mul","nativeSrc":"5883:3:25","nodeType":"YulIdentifier","src":"5883:3:25"},"nativeSrc":"5883:34:25","nodeType":"YulFunctionCall","src":"5883:34:25"}],"functionName":{"name":"xor","nativeSrc":"5876:3:25","nodeType":"YulIdentifier","src":"5876:3:25"},"nativeSrc":"5876:42:25","nodeType":"YulFunctionCall","src":"5876:42:25"}],"functionName":{"name":"add","nativeSrc":"5869:3:25","nodeType":"YulIdentifier","src":"5869:3:25"},"nativeSrc":"5869:50:25","nodeType":"YulFunctionCall","src":"5869:50:25"},"variables":[{"name":"l","nativeSrc":"5864:1:25","nodeType":"YulTypedName","src":"5864:1:25","type":""}]},{"nativeSrc":"5945:62:25","nodeType":"YulVariableDeclaration","src":"5945:62:25","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5966:1:25","nodeType":"YulLiteral","src":"5966:1:25","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"5973:4:25","nodeType":"YulLiteral","src":"5973:4:25","type":"","value":"0x1f"},{"name":"c","nativeSrc":"5979:1:25","nodeType":"YulIdentifier","src":"5979:1:25"}],"functionName":{"name":"and","nativeSrc":"5969:3:25","nodeType":"YulIdentifier","src":"5969:3:25"},"nativeSrc":"5969:12:25","nodeType":"YulFunctionCall","src":"5969:12:25"}],"functionName":{"name":"shl","nativeSrc":"5962:3:25","nodeType":"YulIdentifier","src":"5962:3:25"},"nativeSrc":"5962:20:25","nodeType":"YulFunctionCall","src":"5962:20:25"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5993:1:25","nodeType":"YulLiteral","src":"5993:1:25","type":"","value":"1"},{"name":"g","nativeSrc":"5996:1:25","nodeType":"YulIdentifier","src":"5996:1:25"}],"functionName":{"name":"add","nativeSrc":"5989:3:25","nodeType":"YulIdentifier","src":"5989:3:25"},"nativeSrc":"5989:9:25","nodeType":"YulFunctionCall","src":"5989:9:25"},{"name":"w","nativeSrc":"6000:1:25","nodeType":"YulIdentifier","src":"6000:1:25"}],"functionName":{"name":"byte","nativeSrc":"5984:4:25","nodeType":"YulIdentifier","src":"5984:4:25"},"nativeSrc":"5984:18:25","nodeType":"YulFunctionCall","src":"5984:18:25"}],"functionName":{"name":"add","nativeSrc":"5958:3:25","nodeType":"YulIdentifier","src":"5958:3:25"},"nativeSrc":"5958:45:25","nodeType":"YulFunctionCall","src":"5958:45:25"},{"kind":"number","nativeSrc":"6005:1:25","nodeType":"YulLiteral","src":"6005:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5954:3:25","nodeType":"YulIdentifier","src":"5954:3:25"},"nativeSrc":"5954:53:25","nodeType":"YulFunctionCall","src":"5954:53:25"},"variables":[{"name":"s","nativeSrc":"5949:1:25","nodeType":"YulTypedName","src":"5949:1:25","type":""}]},{"nativeSrc":"6033:19:25","nodeType":"YulVariableDeclaration","src":"6033:19:25","value":{"arguments":[{"name":"op","nativeSrc":"6046:2:25","nodeType":"YulIdentifier","src":"6046:2:25"},{"name":"s","nativeSrc":"6050:1:25","nodeType":"YulIdentifier","src":"6050:1:25"}],"functionName":{"name":"sub","nativeSrc":"6042:3:25","nodeType":"YulIdentifier","src":"6042:3:25"},"nativeSrc":"6042:10:25","nodeType":"YulFunctionCall","src":"6042:10:25"},"variables":[{"name":"r","nativeSrc":"6037:1:25","nodeType":"YulTypedName","src":"6037:1:25","type":""}]},{"nativeSrc":"6073:47:25","nodeType":"YulVariableDeclaration","src":"6073:47:25","value":{"arguments":[{"name":"s","nativeSrc":"6086:1:25","nodeType":"YulIdentifier","src":"6086:1:25"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"6096:1:25","nodeType":"YulIdentifier","src":"6096:1:25"},{"kind":"number","nativeSrc":"6099:4:25","nodeType":"YulLiteral","src":"6099:4:25","type":"","value":"0x20"}],"functionName":{"name":"gt","nativeSrc":"6093:2:25","nodeType":"YulIdentifier","src":"6093:2:25"},"nativeSrc":"6093:11:25","nodeType":"YulFunctionCall","src":"6093:11:25"},{"arguments":[{"name":"s","nativeSrc":"6110:1:25","nodeType":"YulIdentifier","src":"6110:1:25"},{"kind":"number","nativeSrc":"6113:4:25","nodeType":"YulLiteral","src":"6113:4:25","type":"","value":"0x20"}],"functionName":{"name":"xor","nativeSrc":"6106:3:25","nodeType":"YulIdentifier","src":"6106:3:25"},"nativeSrc":"6106:12:25","nodeType":"YulFunctionCall","src":"6106:12:25"}],"functionName":{"name":"mul","nativeSrc":"6089:3:25","nodeType":"YulIdentifier","src":"6089:3:25"},"nativeSrc":"6089:30:25","nodeType":"YulFunctionCall","src":"6089:30:25"}],"functionName":{"name":"xor","nativeSrc":"6082:3:25","nodeType":"YulIdentifier","src":"6082:3:25"},"nativeSrc":"6082:38:25","nodeType":"YulFunctionCall","src":"6082:38:25"},"variables":[{"name":"f","nativeSrc":"6077:1:25","nodeType":"YulTypedName","src":"6077:1:25","type":""}]},{"nativeSrc":"6141:10:25","nodeType":"YulVariableDeclaration","src":"6141:10:25","value":{"kind":"number","nativeSrc":"6150:1:25","nodeType":"YulLiteral","src":"6150:1:25","type":"","value":"0"},"variables":[{"name":"j","nativeSrc":"6145:1:25","nodeType":"YulTypedName","src":"6145:1:25","type":""}]}]},"src":"5796:647:25"}]},"condition":{"arguments":[{"name":"data","nativeSrc":"5432:4:25","nodeType":"YulIdentifier","src":"5432:4:25"},{"name":"end","nativeSrc":"5438:3:25","nodeType":"YulIdentifier","src":"5438:3:25"}],"functionName":{"name":"lt","nativeSrc":"5429:2:25","nodeType":"YulIdentifier","src":"5429:2:25"},"nativeSrc":"5429:13:25","nodeType":"YulFunctionCall","src":"5429:13:25"},"nativeSrc":"5397:1060:25","nodeType":"YulForLoop","post":{"nativeSrc":"5443:2:25","nodeType":"YulBlock","src":"5443:2:25","statements":[]},"pre":{"nativeSrc":"5401:27:25","nodeType":"YulBlock","src":"5401:27:25","statements":[{"nativeSrc":"5403:23:25","nodeType":"YulAssignment","src":"5403:23:25","value":{"arguments":[{"name":"data","nativeSrc":"5415:4:25","nodeType":"YulIdentifier","src":"5415:4:25"},{"kind":"number","nativeSrc":"5421:4:25","nodeType":"YulLiteral","src":"5421:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5411:3:25","nodeType":"YulIdentifier","src":"5411:3:25"},"nativeSrc":"5411:15:25","nodeType":"YulFunctionCall","src":"5411:15:25"},"variableNames":[{"name":"data","nativeSrc":"5403:4:25","nodeType":"YulIdentifier","src":"5403:4:25"}]}]},"src":"5397:1060:25"},{"expression":{"arguments":[{"name":"result","nativeSrc":"6477:6:25","nodeType":"YulIdentifier","src":"6477:6:25"},{"arguments":[{"name":"op","nativeSrc":"6489:2:25","nodeType":"YulIdentifier","src":"6489:2:25"},{"arguments":[{"name":"result","nativeSrc":"6497:6:25","nodeType":"YulIdentifier","src":"6497:6:25"},{"kind":"number","nativeSrc":"6505:4:25","nodeType":"YulLiteral","src":"6505:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6493:3:25","nodeType":"YulIdentifier","src":"6493:3:25"},"nativeSrc":"6493:17:25","nodeType":"YulFunctionCall","src":"6493:17:25"}],"functionName":{"name":"sub","nativeSrc":"6485:3:25","nodeType":"YulIdentifier","src":"6485:3:25"},"nativeSrc":"6485:26:25","nodeType":"YulFunctionCall","src":"6485:26:25"}],"functionName":{"name":"mstore","nativeSrc":"6470:6:25","nodeType":"YulIdentifier","src":"6470:6:25"},"nativeSrc":"6470:42:25","nodeType":"YulFunctionCall","src":"6470:42:25"},"nativeSrc":"6470:42:25","nodeType":"YulExpressionStatement","src":"6470:42:25"},{"expression":{"arguments":[{"name":"op","nativeSrc":"6553:2:25","nodeType":"YulIdentifier","src":"6553:2:25"},{"kind":"number","nativeSrc":"6557:1:25","nodeType":"YulLiteral","src":"6557:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6546:6:25","nodeType":"YulIdentifier","src":"6546:6:25"},"nativeSrc":"6546:13:25","nodeType":"YulFunctionCall","src":"6546:13:25"},"nativeSrc":"6546:13:25","nodeType":"YulExpressionStatement","src":"6546:13:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6617:4:25","nodeType":"YulLiteral","src":"6617:4:25","type":"","value":"0x40"},{"arguments":[{"name":"op","nativeSrc":"6627:2:25","nodeType":"YulIdentifier","src":"6627:2:25"},{"kind":"number","nativeSrc":"6631:4:25","nodeType":"YulLiteral","src":"6631:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6623:3:25","nodeType":"YulIdentifier","src":"6623:3:25"},"nativeSrc":"6623:13:25","nodeType":"YulFunctionCall","src":"6623:13:25"}],"functionName":{"name":"mstore","nativeSrc":"6610:6:25","nodeType":"YulIdentifier","src":"6610:6:25"},"nativeSrc":"6610:27:25","nodeType":"YulFunctionCall","src":"6610:27:25"},"nativeSrc":"6610:27:25","nodeType":"YulExpressionStatement","src":"6610:27:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5359:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5378:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5403:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5415:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5432:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5479:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5628:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5659:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5671:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"6334:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"6346:4:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"5266:6:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"5314:6:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"6477:6:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"6497:6:25","valueSize":1}],"id":10985,"nodeType":"InlineAssembly","src":"5243:1428:25"}]},"documentation":{"id":10978,"nodeType":"StructuredDocumentation","src":"5058:41:25","text":"@dev Returns the decompressed `data`."},"id":10987,"implemented":true,"kind":"function","modifiers":[],"name":"flzDecompress","nameLocation":"5113:13:25","nodeType":"FunctionDefinition","parameters":{"id":10981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10980,"mutability":"mutable","name":"data","nameLocation":"5140:4:25","nodeType":"VariableDeclaration","scope":10987,"src":"5127:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10979,"name":"bytes","nodeType":"ElementaryTypeName","src":"5127:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5126:19:25"},"returnParameters":{"id":10984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10983,"mutability":"mutable","name":"result","nameLocation":"5182:6:25","nodeType":"VariableDeclaration","scope":10987,"src":"5169:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10982,"name":"bytes","nodeType":"ElementaryTypeName","src":"5169:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5168:21:25"},"scope":11014,"src":"5104:1573:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10996,"nodeType":"Block","src":"7650:1645:25","statements":[{"AST":{"nativeSrc":"7712:1577:25","nodeType":"YulBlock","src":"7712:1577:25","statements":[{"body":{"nativeSrc":"7761:130:25","nodeType":"YulBlock","src":"7761:130:25","statements":[{"expression":{"arguments":[{"name":"o_","nativeSrc":"7786:2:25","nodeType":"YulIdentifier","src":"7786:2:25"},{"arguments":[{"kind":"number","nativeSrc":"7794:3:25","nodeType":"YulLiteral","src":"7794:3:25","type":"","value":"240"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7806:4:25","nodeType":"YulLiteral","src":"7806:4:25","type":"","value":"0xff"},{"arguments":[{"name":"d_","nativeSrc":"7816:2:25","nodeType":"YulIdentifier","src":"7816:2:25"},{"kind":"number","nativeSrc":"7820:4:25","nodeType":"YulLiteral","src":"7820:4:25","type":"","value":"0xff"}],"functionName":{"name":"add","nativeSrc":"7812:3:25","nodeType":"YulIdentifier","src":"7812:3:25"},"nativeSrc":"7812:13:25","nodeType":"YulFunctionCall","src":"7812:13:25"}],"functionName":{"name":"and","nativeSrc":"7802:3:25","nodeType":"YulIdentifier","src":"7802:3:25"},"nativeSrc":"7802:24:25","nodeType":"YulFunctionCall","src":"7802:24:25"},{"arguments":[{"kind":"number","nativeSrc":"7832:4:25","nodeType":"YulLiteral","src":"7832:4:25","type":"","value":"0x80"},{"name":"v_","nativeSrc":"7838:2:25","nodeType":"YulIdentifier","src":"7838:2:25"}],"functionName":{"name":"and","nativeSrc":"7828:3:25","nodeType":"YulIdentifier","src":"7828:3:25"},"nativeSrc":"7828:13:25","nodeType":"YulFunctionCall","src":"7828:13:25"}],"functionName":{"name":"or","nativeSrc":"7799:2:25","nodeType":"YulIdentifier","src":"7799:2:25"},"nativeSrc":"7799:43:25","nodeType":"YulFunctionCall","src":"7799:43:25"}],"functionName":{"name":"shl","nativeSrc":"7790:3:25","nodeType":"YulIdentifier","src":"7790:3:25"},"nativeSrc":"7790:53:25","nodeType":"YulFunctionCall","src":"7790:53:25"}],"functionName":{"name":"mstore","nativeSrc":"7779:6:25","nodeType":"YulIdentifier","src":"7779:6:25"},"nativeSrc":"7779:65:25","nodeType":"YulFunctionCall","src":"7779:65:25"},"nativeSrc":"7779:65:25","nodeType":"YulExpressionStatement","src":"7779:65:25"},{"nativeSrc":"7861:16:25","nodeType":"YulAssignment","src":"7861:16:25","value":{"arguments":[{"name":"o_","nativeSrc":"7871:2:25","nodeType":"YulIdentifier","src":"7871:2:25"},{"kind":"number","nativeSrc":"7875:1:25","nodeType":"YulLiteral","src":"7875:1:25","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"7867:3:25","nodeType":"YulIdentifier","src":"7867:3:25"},"nativeSrc":"7867:10:25","nodeType":"YulFunctionCall","src":"7867:10:25"},"variableNames":[{"name":"_o","nativeSrc":"7861:2:25","nodeType":"YulIdentifier","src":"7861:2:25"}]}]},"name":"rle","nativeSrc":"7726:165:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"v_","nativeSrc":"7739:2:25","nodeType":"YulTypedName","src":"7739:2:25","type":""},{"name":"o_","nativeSrc":"7743:2:25","nodeType":"YulTypedName","src":"7743:2:25","type":""},{"name":"d_","nativeSrc":"7747:2:25","nodeType":"YulTypedName","src":"7747:2:25","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"7754:2:25","nodeType":"YulTypedName","src":"7754:2:25","type":""},{"name":"_d","nativeSrc":"7758:2:25","nodeType":"YulTypedName","src":"7758:2:25","type":""}],"src":"7726:165:25"},{"nativeSrc":"7904:21:25","nodeType":"YulAssignment","src":"7904:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"7920:4:25","nodeType":"YulLiteral","src":"7920:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"7914:5:25","nodeType":"YulIdentifier","src":"7914:5:25"},"nativeSrc":"7914:11:25","nodeType":"YulFunctionCall","src":"7914:11:25"},"variableNames":[{"name":"result","nativeSrc":"7904:6:25","nodeType":"YulIdentifier","src":"7904:6:25"}]},{"nativeSrc":"7938:26:25","nodeType":"YulVariableDeclaration","src":"7938:26:25","value":{"arguments":[{"name":"result","nativeSrc":"7951:6:25","nodeType":"YulIdentifier","src":"7951:6:25"},{"kind":"number","nativeSrc":"7959:4:25","nodeType":"YulLiteral","src":"7959:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7947:3:25","nodeType":"YulIdentifier","src":"7947:3:25"},"nativeSrc":"7947:17:25","nodeType":"YulFunctionCall","src":"7947:17:25"},"variables":[{"name":"o","nativeSrc":"7942:1:25","nodeType":"YulTypedName","src":"7942:1:25","type":""}]},{"nativeSrc":"7977:10:25","nodeType":"YulVariableDeclaration","src":"7977:10:25","value":{"kind":"number","nativeSrc":"7986:1:25","nodeType":"YulLiteral","src":"7986:1:25","type":"","value":"0"},"variables":[{"name":"z","nativeSrc":"7981:1:25","nodeType":"YulTypedName","src":"7981:1:25","type":""}]},{"nativeSrc":"8031:10:25","nodeType":"YulVariableDeclaration","src":"8031:10:25","value":{"kind":"number","nativeSrc":"8040:1:25","nodeType":"YulLiteral","src":"8040:1:25","type":"","value":"0"},"variables":[{"name":"y","nativeSrc":"8035:1:25","nodeType":"YulTypedName","src":"8035:1:25","type":""}]},{"body":{"nativeSrc":"8152:724:25","nodeType":"YulBlock","src":"8152:724:25","statements":[{"nativeSrc":"8170:20:25","nodeType":"YulAssignment","src":"8170:20:25","value":{"arguments":[{"name":"data","nativeSrc":"8182:4:25","nodeType":"YulIdentifier","src":"8182:4:25"},{"kind":"number","nativeSrc":"8188:1:25","nodeType":"YulLiteral","src":"8188:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8178:3:25","nodeType":"YulIdentifier","src":"8178:3:25"},"nativeSrc":"8178:12:25","nodeType":"YulFunctionCall","src":"8178:12:25"},"variableNames":[{"name":"data","nativeSrc":"8170:4:25","nodeType":"YulIdentifier","src":"8170:4:25"}]},{"nativeSrc":"8207:30:25","nodeType":"YulVariableDeclaration","src":"8207:30:25","value":{"arguments":[{"kind":"number","nativeSrc":"8221:2:25","nodeType":"YulLiteral","src":"8221:2:25","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"8231:4:25","nodeType":"YulIdentifier","src":"8231:4:25"}],"functionName":{"name":"mload","nativeSrc":"8225:5:25","nodeType":"YulIdentifier","src":"8225:5:25"},"nativeSrc":"8225:11:25","nodeType":"YulFunctionCall","src":"8225:11:25"}],"functionName":{"name":"byte","nativeSrc":"8216:4:25","nodeType":"YulIdentifier","src":"8216:4:25"},"nativeSrc":"8216:21:25","nodeType":"YulFunctionCall","src":"8216:21:25"},"variables":[{"name":"c","nativeSrc":"8211:1:25","nodeType":"YulTypedName","src":"8211:1:25","type":""}]},{"body":{"nativeSrc":"8267:202:25","nodeType":"YulBlock","src":"8267:202:25","statements":[{"body":{"nativeSrc":"8294:27:25","nodeType":"YulBlock","src":"8294:27:25","statements":[{"nativeSrc":"8296:23:25","nodeType":"YulAssignment","src":"8296:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8308:4:25","nodeType":"YulLiteral","src":"8308:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8314:1:25","nodeType":"YulIdentifier","src":"8314:1:25"},{"name":"y","nativeSrc":"8317:1:25","nodeType":"YulIdentifier","src":"8317:1:25"}],"functionName":{"name":"rle","nativeSrc":"8304:3:25","nodeType":"YulIdentifier","src":"8304:3:25"},"nativeSrc":"8304:15:25","nodeType":"YulFunctionCall","src":"8304:15:25"},"variableNames":[{"name":"o","nativeSrc":"8296:1:25","nodeType":"YulIdentifier","src":"8296:1:25"},{"name":"y","nativeSrc":"8299:1:25","nodeType":"YulIdentifier","src":"8299:1:25"}]}]},"condition":{"name":"y","nativeSrc":"8292:1:25","nodeType":"YulIdentifier","src":"8292:1:25"},"nativeSrc":"8289:32:25","nodeType":"YulIf","src":"8289:32:25"},{"nativeSrc":"8342:14:25","nodeType":"YulAssignment","src":"8342:14:25","value":{"arguments":[{"name":"z","nativeSrc":"8351:1:25","nodeType":"YulIdentifier","src":"8351:1:25"},{"kind":"number","nativeSrc":"8354:1:25","nodeType":"YulLiteral","src":"8354:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8347:3:25","nodeType":"YulIdentifier","src":"8347:3:25"},"nativeSrc":"8347:9:25","nodeType":"YulFunctionCall","src":"8347:9:25"},"variableNames":[{"name":"z","nativeSrc":"8342:1:25","nodeType":"YulIdentifier","src":"8342:1:25"}]},{"body":{"nativeSrc":"8392:30:25","nodeType":"YulBlock","src":"8392:30:25","statements":[{"nativeSrc":"8394:26:25","nodeType":"YulAssignment","src":"8394:26:25","value":{"arguments":[{"kind":"number","nativeSrc":"8406:4:25","nodeType":"YulLiteral","src":"8406:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8412:1:25","nodeType":"YulIdentifier","src":"8412:1:25"},{"kind":"number","nativeSrc":"8415:4:25","nodeType":"YulLiteral","src":"8415:4:25","type":"","value":"0x80"}],"functionName":{"name":"rle","nativeSrc":"8402:3:25","nodeType":"YulIdentifier","src":"8402:3:25"},"nativeSrc":"8402:18:25","nodeType":"YulFunctionCall","src":"8402:18:25"},"variableNames":[{"name":"o","nativeSrc":"8394:1:25","nodeType":"YulIdentifier","src":"8394:1:25"},{"name":"z","nativeSrc":"8397:1:25","nodeType":"YulIdentifier","src":"8397:1:25"}]}]},"condition":{"arguments":[{"name":"z","nativeSrc":"8383:1:25","nodeType":"YulIdentifier","src":"8383:1:25"},{"kind":"number","nativeSrc":"8386:4:25","nodeType":"YulLiteral","src":"8386:4:25","type":"","value":"0x80"}],"functionName":{"name":"eq","nativeSrc":"8380:2:25","nodeType":"YulIdentifier","src":"8380:2:25"},"nativeSrc":"8380:11:25","nodeType":"YulFunctionCall","src":"8380:11:25"},"nativeSrc":"8377:45:25","nodeType":"YulIf","src":"8377:45:25"},{"nativeSrc":"8443:8:25","nodeType":"YulContinue","src":"8443:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"8264:1:25","nodeType":"YulIdentifier","src":"8264:1:25"}],"functionName":{"name":"iszero","nativeSrc":"8257:6:25","nodeType":"YulIdentifier","src":"8257:6:25"},"nativeSrc":"8257:9:25","nodeType":"YulFunctionCall","src":"8257:9:25"},"nativeSrc":"8254:215:25","nodeType":"YulIf","src":"8254:215:25"},{"body":{"nativeSrc":"8501:202:25","nodeType":"YulBlock","src":"8501:202:25","statements":[{"body":{"nativeSrc":"8528:27:25","nodeType":"YulBlock","src":"8528:27:25","statements":[{"nativeSrc":"8530:23:25","nodeType":"YulAssignment","src":"8530:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8542:4:25","nodeType":"YulLiteral","src":"8542:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8548:1:25","nodeType":"YulIdentifier","src":"8548:1:25"},{"name":"z","nativeSrc":"8551:1:25","nodeType":"YulIdentifier","src":"8551:1:25"}],"functionName":{"name":"rle","nativeSrc":"8538:3:25","nodeType":"YulIdentifier","src":"8538:3:25"},"nativeSrc":"8538:15:25","nodeType":"YulFunctionCall","src":"8538:15:25"},"variableNames":[{"name":"o","nativeSrc":"8530:1:25","nodeType":"YulIdentifier","src":"8530:1:25"},{"name":"z","nativeSrc":"8533:1:25","nodeType":"YulIdentifier","src":"8533:1:25"}]}]},"condition":{"name":"z","nativeSrc":"8526:1:25","nodeType":"YulIdentifier","src":"8526:1:25"},"nativeSrc":"8523:32:25","nodeType":"YulIf","src":"8523:32:25"},{"nativeSrc":"8576:14:25","nodeType":"YulAssignment","src":"8576:14:25","value":{"arguments":[{"name":"y","nativeSrc":"8585:1:25","nodeType":"YulIdentifier","src":"8585:1:25"},{"kind":"number","nativeSrc":"8588:1:25","nodeType":"YulLiteral","src":"8588:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8581:3:25","nodeType":"YulIdentifier","src":"8581:3:25"},"nativeSrc":"8581:9:25","nodeType":"YulFunctionCall","src":"8581:9:25"},"variableNames":[{"name":"y","nativeSrc":"8576:1:25","nodeType":"YulIdentifier","src":"8576:1:25"}]},{"body":{"nativeSrc":"8626:30:25","nodeType":"YulBlock","src":"8626:30:25","statements":[{"nativeSrc":"8628:26:25","nodeType":"YulAssignment","src":"8628:26:25","value":{"arguments":[{"kind":"number","nativeSrc":"8640:4:25","nodeType":"YulLiteral","src":"8640:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8646:1:25","nodeType":"YulIdentifier","src":"8646:1:25"},{"kind":"number","nativeSrc":"8649:4:25","nodeType":"YulLiteral","src":"8649:4:25","type":"","value":"0x20"}],"functionName":{"name":"rle","nativeSrc":"8636:3:25","nodeType":"YulIdentifier","src":"8636:3:25"},"nativeSrc":"8636:18:25","nodeType":"YulFunctionCall","src":"8636:18:25"},"variableNames":[{"name":"o","nativeSrc":"8628:1:25","nodeType":"YulIdentifier","src":"8628:1:25"},{"name":"y","nativeSrc":"8631:1:25","nodeType":"YulIdentifier","src":"8631:1:25"}]}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8617:1:25","nodeType":"YulIdentifier","src":"8617:1:25"},{"kind":"number","nativeSrc":"8620:4:25","nodeType":"YulLiteral","src":"8620:4:25","type":"","value":"0x20"}],"functionName":{"name":"eq","nativeSrc":"8614:2:25","nodeType":"YulIdentifier","src":"8614:2:25"},"nativeSrc":"8614:11:25","nodeType":"YulFunctionCall","src":"8614:11:25"},"nativeSrc":"8611:45:25","nodeType":"YulIf","src":"8611:45:25"},{"nativeSrc":"8677:8:25","nodeType":"YulContinue","src":"8677:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"8492:1:25","nodeType":"YulIdentifier","src":"8492:1:25"},{"kind":"number","nativeSrc":"8495:4:25","nodeType":"YulLiteral","src":"8495:4:25","type":"","value":"0xff"}],"functionName":{"name":"eq","nativeSrc":"8489:2:25","nodeType":"YulIdentifier","src":"8489:2:25"},"nativeSrc":"8489:11:25","nodeType":"YulFunctionCall","src":"8489:11:25"},"nativeSrc":"8486:217:25","nodeType":"YulIf","src":"8486:217:25"},{"body":{"nativeSrc":"8725:27:25","nodeType":"YulBlock","src":"8725:27:25","statements":[{"nativeSrc":"8727:23:25","nodeType":"YulAssignment","src":"8727:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8739:4:25","nodeType":"YulLiteral","src":"8739:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8745:1:25","nodeType":"YulIdentifier","src":"8745:1:25"},{"name":"y","nativeSrc":"8748:1:25","nodeType":"YulIdentifier","src":"8748:1:25"}],"functionName":{"name":"rle","nativeSrc":"8735:3:25","nodeType":"YulIdentifier","src":"8735:3:25"},"nativeSrc":"8735:15:25","nodeType":"YulFunctionCall","src":"8735:15:25"},"variableNames":[{"name":"o","nativeSrc":"8727:1:25","nodeType":"YulIdentifier","src":"8727:1:25"},{"name":"y","nativeSrc":"8730:1:25","nodeType":"YulIdentifier","src":"8730:1:25"}]}]},"condition":{"name":"y","nativeSrc":"8723:1:25","nodeType":"YulIdentifier","src":"8723:1:25"},"nativeSrc":"8720:32:25","nodeType":"YulIf","src":"8720:32:25"},{"body":{"nativeSrc":"8774:27:25","nodeType":"YulBlock","src":"8774:27:25","statements":[{"nativeSrc":"8776:23:25","nodeType":"YulAssignment","src":"8776:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8788:4:25","nodeType":"YulLiteral","src":"8788:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8794:1:25","nodeType":"YulIdentifier","src":"8794:1:25"},{"name":"z","nativeSrc":"8797:1:25","nodeType":"YulIdentifier","src":"8797:1:25"}],"functionName":{"name":"rle","nativeSrc":"8784:3:25","nodeType":"YulIdentifier","src":"8784:3:25"},"nativeSrc":"8784:15:25","nodeType":"YulFunctionCall","src":"8784:15:25"},"variableNames":[{"name":"o","nativeSrc":"8776:1:25","nodeType":"YulIdentifier","src":"8776:1:25"},{"name":"z","nativeSrc":"8779:1:25","nodeType":"YulIdentifier","src":"8779:1:25"}]}]},"condition":{"name":"z","nativeSrc":"8772:1:25","nodeType":"YulIdentifier","src":"8772:1:25"},"nativeSrc":"8769:32:25","nodeType":"YulIf","src":"8769:32:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"8826:1:25","nodeType":"YulIdentifier","src":"8826:1:25"},{"name":"c","nativeSrc":"8829:1:25","nodeType":"YulIdentifier","src":"8829:1:25"}],"functionName":{"name":"mstore8","nativeSrc":"8818:7:25","nodeType":"YulIdentifier","src":"8818:7:25"},"nativeSrc":"8818:13:25","nodeType":"YulFunctionCall","src":"8818:13:25"},"nativeSrc":"8818:13:25","nodeType":"YulExpressionStatement","src":"8818:13:25"},{"nativeSrc":"8848:14:25","nodeType":"YulAssignment","src":"8848:14:25","value":{"arguments":[{"name":"o","nativeSrc":"8857:1:25","nodeType":"YulIdentifier","src":"8857:1:25"},{"kind":"number","nativeSrc":"8860:1:25","nodeType":"YulLiteral","src":"8860:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8853:3:25","nodeType":"YulIdentifier","src":"8853:3:25"},"nativeSrc":"8853:9:25","nodeType":"YulFunctionCall","src":"8853:9:25"},"variableNames":[{"name":"o","nativeSrc":"8848:1:25","nodeType":"YulIdentifier","src":"8848:1:25"}]}]},"condition":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"8137:4:25","nodeType":"YulIdentifier","src":"8137:4:25"},{"name":"end","nativeSrc":"8143:3:25","nodeType":"YulIdentifier","src":"8143:3:25"}],"functionName":{"name":"eq","nativeSrc":"8134:2:25","nodeType":"YulIdentifier","src":"8134:2:25"},"nativeSrc":"8134:13:25","nodeType":"YulFunctionCall","src":"8134:13:25"}],"functionName":{"name":"iszero","nativeSrc":"8127:6:25","nodeType":"YulIdentifier","src":"8127:6:25"},"nativeSrc":"8127:21:25","nodeType":"YulFunctionCall","src":"8127:21:25"},"nativeSrc":"8085:791:25","nodeType":"YulForLoop","post":{"nativeSrc":"8149:2:25","nodeType":"YulBlock","src":"8149:2:25","statements":[]},"pre":{"nativeSrc":"8089:37:25","nodeType":"YulBlock","src":"8089:37:25","statements":[{"nativeSrc":"8091:33:25","nodeType":"YulVariableDeclaration","src":"8091:33:25","value":{"arguments":[{"name":"data","nativeSrc":"8106:4:25","nodeType":"YulIdentifier","src":"8106:4:25"},{"arguments":[{"name":"data","nativeSrc":"8118:4:25","nodeType":"YulIdentifier","src":"8118:4:25"}],"functionName":{"name":"mload","nativeSrc":"8112:5:25","nodeType":"YulIdentifier","src":"8112:5:25"},"nativeSrc":"8112:11:25","nodeType":"YulFunctionCall","src":"8112:11:25"}],"functionName":{"name":"add","nativeSrc":"8102:3:25","nodeType":"YulIdentifier","src":"8102:3:25"},"nativeSrc":"8102:22:25","nodeType":"YulFunctionCall","src":"8102:22:25"},"variables":[{"name":"end","nativeSrc":"8095:3:25","nodeType":"YulTypedName","src":"8095:3:25","type":""}]}]},"src":"8085:791:25"},{"body":{"nativeSrc":"8894:27:25","nodeType":"YulBlock","src":"8894:27:25","statements":[{"nativeSrc":"8896:23:25","nodeType":"YulAssignment","src":"8896:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8908:4:25","nodeType":"YulLiteral","src":"8908:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8914:1:25","nodeType":"YulIdentifier","src":"8914:1:25"},{"name":"y","nativeSrc":"8917:1:25","nodeType":"YulIdentifier","src":"8917:1:25"}],"functionName":{"name":"rle","nativeSrc":"8904:3:25","nodeType":"YulIdentifier","src":"8904:3:25"},"nativeSrc":"8904:15:25","nodeType":"YulFunctionCall","src":"8904:15:25"},"variableNames":[{"name":"o","nativeSrc":"8896:1:25","nodeType":"YulIdentifier","src":"8896:1:25"},{"name":"y","nativeSrc":"8899:1:25","nodeType":"YulIdentifier","src":"8899:1:25"}]}]},"condition":{"name":"y","nativeSrc":"8892:1:25","nodeType":"YulIdentifier","src":"8892:1:25"},"nativeSrc":"8889:32:25","nodeType":"YulIf","src":"8889:32:25"},{"body":{"nativeSrc":"8939:27:25","nodeType":"YulBlock","src":"8939:27:25","statements":[{"nativeSrc":"8941:23:25","nodeType":"YulAssignment","src":"8941:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8953:4:25","nodeType":"YulLiteral","src":"8953:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8959:1:25","nodeType":"YulIdentifier","src":"8959:1:25"},{"name":"z","nativeSrc":"8962:1:25","nodeType":"YulIdentifier","src":"8962:1:25"}],"functionName":{"name":"rle","nativeSrc":"8949:3:25","nodeType":"YulIdentifier","src":"8949:3:25"},"nativeSrc":"8949:15:25","nodeType":"YulFunctionCall","src":"8949:15:25"},"variableNames":[{"name":"o","nativeSrc":"8941:1:25","nodeType":"YulIdentifier","src":"8941:1:25"},{"name":"z","nativeSrc":"8944:1:25","nodeType":"YulIdentifier","src":"8944:1:25"}]}]},"condition":{"name":"z","nativeSrc":"8937:1:25","nodeType":"YulIdentifier","src":"8937:1:25"},"nativeSrc":"8934:32:25","nodeType":"YulIf","src":"8934:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"9039:6:25","nodeType":"YulIdentifier","src":"9039:6:25"},{"kind":"number","nativeSrc":"9047:1:25","nodeType":"YulLiteral","src":"9047:1:25","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9035:3:25","nodeType":"YulIdentifier","src":"9035:3:25"},"nativeSrc":"9035:14:25","nodeType":"YulFunctionCall","src":"9035:14:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"9065:6:25","nodeType":"YulIdentifier","src":"9065:6:25"},{"kind":"number","nativeSrc":"9073:1:25","nodeType":"YulLiteral","src":"9073:1:25","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9061:3:25","nodeType":"YulIdentifier","src":"9061:3:25"},"nativeSrc":"9061:14:25","nodeType":"YulFunctionCall","src":"9061:14:25"}],"functionName":{"name":"mload","nativeSrc":"9055:5:25","nodeType":"YulIdentifier","src":"9055:5:25"},"nativeSrc":"9055:21:25","nodeType":"YulFunctionCall","src":"9055:21:25"}],"functionName":{"name":"not","nativeSrc":"9051:3:25","nodeType":"YulIdentifier","src":"9051:3:25"},"nativeSrc":"9051:26:25","nodeType":"YulFunctionCall","src":"9051:26:25"}],"functionName":{"name":"mstore","nativeSrc":"9028:6:25","nodeType":"YulIdentifier","src":"9028:6:25"},"nativeSrc":"9028:50:25","nodeType":"YulFunctionCall","src":"9028:50:25"},"nativeSrc":"9028:50:25","nodeType":"YulExpressionStatement","src":"9028:50:25"},{"expression":{"arguments":[{"name":"result","nativeSrc":"9098:6:25","nodeType":"YulIdentifier","src":"9098:6:25"},{"arguments":[{"name":"o","nativeSrc":"9110:1:25","nodeType":"YulIdentifier","src":"9110:1:25"},{"arguments":[{"name":"result","nativeSrc":"9117:6:25","nodeType":"YulIdentifier","src":"9117:6:25"},{"kind":"number","nativeSrc":"9125:4:25","nodeType":"YulLiteral","src":"9125:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9113:3:25","nodeType":"YulIdentifier","src":"9113:3:25"},"nativeSrc":"9113:17:25","nodeType":"YulFunctionCall","src":"9113:17:25"}],"functionName":{"name":"sub","nativeSrc":"9106:3:25","nodeType":"YulIdentifier","src":"9106:3:25"},"nativeSrc":"9106:25:25","nodeType":"YulFunctionCall","src":"9106:25:25"}],"functionName":{"name":"mstore","nativeSrc":"9091:6:25","nodeType":"YulIdentifier","src":"9091:6:25"},"nativeSrc":"9091:41:25","nodeType":"YulFunctionCall","src":"9091:41:25"},"nativeSrc":"9091:41:25","nodeType":"YulExpressionStatement","src":"9091:41:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"9173:1:25","nodeType":"YulIdentifier","src":"9173:1:25"},{"kind":"number","nativeSrc":"9176:1:25","nodeType":"YulLiteral","src":"9176:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9166:6:25","nodeType":"YulIdentifier","src":"9166:6:25"},"nativeSrc":"9166:12:25","nodeType":"YulFunctionCall","src":"9166:12:25"},"nativeSrc":"9166:12:25","nodeType":"YulExpressionStatement","src":"9166:12:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9236:4:25","nodeType":"YulLiteral","src":"9236:4:25","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"9246:1:25","nodeType":"YulIdentifier","src":"9246:1:25"},{"kind":"number","nativeSrc":"9249:4:25","nodeType":"YulLiteral","src":"9249:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9242:3:25","nodeType":"YulIdentifier","src":"9242:3:25"},"nativeSrc":"9242:12:25","nodeType":"YulFunctionCall","src":"9242:12:25"}],"functionName":{"name":"mstore","nativeSrc":"9229:6:25","nodeType":"YulIdentifier","src":"9229:6:25"},"nativeSrc":"9229:26:25","nodeType":"YulFunctionCall","src":"9229:26:25"},"nativeSrc":"9229:26:25","nodeType":"YulExpressionStatement","src":"9229:26:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8106:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8118:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8137:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8170:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8182:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8231:4:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"7904:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"7951:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9039:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9065:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9098:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9117:6:25","valueSize":1}],"id":10995,"nodeType":"InlineAssembly","src":"7703:1586:25"}]},"documentation":{"id":10988,"nodeType":"StructuredDocumentation","src":"7523:39:25","text":"@dev Returns the compressed `data`."},"id":10997,"implemented":true,"kind":"function","modifiers":[],"name":"cdCompress","nameLocation":"7576:10:25","nodeType":"FunctionDefinition","parameters":{"id":10991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10990,"mutability":"mutable","name":"data","nameLocation":"7600:4:25","nodeType":"VariableDeclaration","scope":10997,"src":"7587:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10989,"name":"bytes","nodeType":"ElementaryTypeName","src":"7587:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7586:19:25"},"returnParameters":{"id":10994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10993,"mutability":"mutable","name":"result","nameLocation":"7642:6:25","nodeType":"VariableDeclaration","scope":10997,"src":"7629:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10992,"name":"bytes","nodeType":"ElementaryTypeName","src":"7629:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7628:21:25"},"scope":11014,"src":"7567:1728:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11006,"nodeType":"Block","src":"9432:1323:25","statements":[{"AST":{"nativeSrc":"9494:1255:25","nodeType":"YulBlock","src":"9494:1255:25","statements":[{"body":{"nativeSrc":"9523:1216:25","nodeType":"YulBlock","src":"9523:1216:25","statements":[{"nativeSrc":"9541:21:25","nodeType":"YulAssignment","src":"9541:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"9557:4:25","nodeType":"YulLiteral","src":"9557:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9551:5:25","nodeType":"YulIdentifier","src":"9551:5:25"},"nativeSrc":"9551:11:25","nodeType":"YulFunctionCall","src":"9551:11:25"},"variableNames":[{"name":"result","nativeSrc":"9541:6:25","nodeType":"YulIdentifier","src":"9541:6:25"}]},{"nativeSrc":"9579:26:25","nodeType":"YulVariableDeclaration","src":"9579:26:25","value":{"arguments":[{"name":"result","nativeSrc":"9592:6:25","nodeType":"YulIdentifier","src":"9592:6:25"},{"kind":"number","nativeSrc":"9600:4:25","nodeType":"YulLiteral","src":"9600:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9588:3:25","nodeType":"YulIdentifier","src":"9588:3:25"},"nativeSrc":"9588:17:25","nodeType":"YulFunctionCall","src":"9588:17:25"},"variables":[{"name":"o","nativeSrc":"9583:1:25","nodeType":"YulTypedName","src":"9583:1:25","type":""}]},{"nativeSrc":"9622:21:25","nodeType":"YulVariableDeclaration","src":"9622:21:25","value":{"arguments":[{"name":"data","nativeSrc":"9635:4:25","nodeType":"YulIdentifier","src":"9635:4:25"},{"kind":"number","nativeSrc":"9641:1:25","nodeType":"YulLiteral","src":"9641:1:25","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9631:3:25","nodeType":"YulIdentifier","src":"9631:3:25"},"nativeSrc":"9631:12:25","nodeType":"YulFunctionCall","src":"9631:12:25"},"variables":[{"name":"s","nativeSrc":"9626:1:25","nodeType":"YulTypedName","src":"9626:1:25","type":""}]},{"nativeSrc":"9660:17:25","nodeType":"YulVariableDeclaration","src":"9660:17:25","value":{"arguments":[{"name":"s","nativeSrc":"9675:1:25","nodeType":"YulIdentifier","src":"9675:1:25"}],"functionName":{"name":"mload","nativeSrc":"9669:5:25","nodeType":"YulIdentifier","src":"9669:5:25"},"nativeSrc":"9669:8:25","nodeType":"YulFunctionCall","src":"9669:8:25"},"variables":[{"name":"v","nativeSrc":"9664:1:25","nodeType":"YulTypedName","src":"9664:1:25","type":""}]},{"nativeSrc":"9694:33:25","nodeType":"YulVariableDeclaration","src":"9694:33:25","value":{"arguments":[{"name":"data","nativeSrc":"9709:4:25","nodeType":"YulIdentifier","src":"9709:4:25"},{"arguments":[{"name":"data","nativeSrc":"9721:4:25","nodeType":"YulIdentifier","src":"9721:4:25"}],"functionName":{"name":"mload","nativeSrc":"9715:5:25","nodeType":"YulIdentifier","src":"9715:5:25"},"nativeSrc":"9715:11:25","nodeType":"YulFunctionCall","src":"9715:11:25"}],"functionName":{"name":"add","nativeSrc":"9705:3:25","nodeType":"YulIdentifier","src":"9705:3:25"},"nativeSrc":"9705:22:25","nodeType":"YulFunctionCall","src":"9705:22:25"},"variables":[{"name":"end","nativeSrc":"9698:3:25","nodeType":"YulTypedName","src":"9698:3:25","type":""}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"9751:1:25","nodeType":"YulIdentifier","src":"9751:1:25"},{"arguments":[{"name":"v","nativeSrc":"9758:1:25","nodeType":"YulIdentifier","src":"9758:1:25"}],"functionName":{"name":"not","nativeSrc":"9754:3:25","nodeType":"YulIdentifier","src":"9754:3:25"},"nativeSrc":"9754:6:25","nodeType":"YulFunctionCall","src":"9754:6:25"}],"functionName":{"name":"mstore","nativeSrc":"9744:6:25","nodeType":"YulIdentifier","src":"9744:6:25"},"nativeSrc":"9744:17:25","nodeType":"YulFunctionCall","src":"9744:17:25"},"nativeSrc":"9744:17:25","nodeType":"YulExpressionStatement","src":"9744:17:25"},{"body":{"nativeSrc":"9839:614:25","nodeType":"YulBlock","src":"9839:614:25","statements":[{"nativeSrc":"9861:20:25","nodeType":"YulAssignment","src":"9861:20:25","value":{"arguments":[{"name":"data","nativeSrc":"9873:4:25","nodeType":"YulIdentifier","src":"9873:4:25"},{"kind":"number","nativeSrc":"9879:1:25","nodeType":"YulLiteral","src":"9879:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9869:3:25","nodeType":"YulIdentifier","src":"9869:3:25"},"nativeSrc":"9869:12:25","nodeType":"YulFunctionCall","src":"9869:12:25"},"variableNames":[{"name":"data","nativeSrc":"9861:4:25","nodeType":"YulIdentifier","src":"9861:4:25"}]},{"nativeSrc":"9902:30:25","nodeType":"YulVariableDeclaration","src":"9902:30:25","value":{"arguments":[{"kind":"number","nativeSrc":"9916:2:25","nodeType":"YulLiteral","src":"9916:2:25","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"9926:4:25","nodeType":"YulIdentifier","src":"9926:4:25"}],"functionName":{"name":"mload","nativeSrc":"9920:5:25","nodeType":"YulIdentifier","src":"9920:5:25"},"nativeSrc":"9920:11:25","nodeType":"YulFunctionCall","src":"9920:11:25"}],"functionName":{"name":"byte","nativeSrc":"9911:4:25","nodeType":"YulIdentifier","src":"9911:4:25"},"nativeSrc":"9911:21:25","nodeType":"YulFunctionCall","src":"9911:21:25"},"variables":[{"name":"c","nativeSrc":"9906:1:25","nodeType":"YulTypedName","src":"9906:1:25","type":""}]},{"body":{"nativeSrc":"9966:400:25","nodeType":"YulBlock","src":"9966:400:25","statements":[{"nativeSrc":"9992:20:25","nodeType":"YulAssignment","src":"9992:20:25","value":{"arguments":[{"name":"data","nativeSrc":"10004:4:25","nodeType":"YulIdentifier","src":"10004:4:25"},{"kind":"number","nativeSrc":"10010:1:25","nodeType":"YulLiteral","src":"10010:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10000:3:25","nodeType":"YulIdentifier","src":"10000:3:25"},"nativeSrc":"10000:12:25","nodeType":"YulFunctionCall","src":"10000:12:25"},"variableNames":[{"name":"data","nativeSrc":"9992:4:25","nodeType":"YulIdentifier","src":"9992:4:25"}]},{"nativeSrc":"10037:30:25","nodeType":"YulVariableDeclaration","src":"10037:30:25","value":{"arguments":[{"kind":"number","nativeSrc":"10051:2:25","nodeType":"YulLiteral","src":"10051:2:25","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"10061:4:25","nodeType":"YulIdentifier","src":"10061:4:25"}],"functionName":{"name":"mload","nativeSrc":"10055:5:25","nodeType":"YulIdentifier","src":"10055:5:25"},"nativeSrc":"10055:11:25","nodeType":"YulFunctionCall","src":"10055:11:25"}],"functionName":{"name":"byte","nativeSrc":"10046:4:25","nodeType":"YulIdentifier","src":"10046:4:25"},"nativeSrc":"10046:21:25","nodeType":"YulFunctionCall","src":"10046:21:25"},"variables":[{"name":"d","nativeSrc":"10041:1:25","nodeType":"YulTypedName","src":"10041:1:25","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"10157:1:25","nodeType":"YulIdentifier","src":"10157:1:25"},{"arguments":[{"kind":"number","nativeSrc":"10164:1:25","nodeType":"YulLiteral","src":"10164:1:25","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"10160:3:25","nodeType":"YulIdentifier","src":"10160:3:25"},"nativeSrc":"10160:6:25","nodeType":"YulFunctionCall","src":"10160:6:25"}],"functionName":{"name":"mstore","nativeSrc":"10150:6:25","nodeType":"YulIdentifier","src":"10150:6:25"},"nativeSrc":"10150:17:25","nodeType":"YulFunctionCall","src":"10150:17:25"},"nativeSrc":"10150:17:25","nodeType":"YulExpressionStatement","src":"10150:17:25"},{"body":{"nativeSrc":"10215:38:25","nodeType":"YulBlock","src":"10215:38:25","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"10226:1:25","nodeType":"YulIdentifier","src":"10226:1:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"10229:8:25","nodeType":"YulIdentifier","src":"10229:8:25"},"nativeSrc":"10229:10:25","nodeType":"YulFunctionCall","src":"10229:10:25"},{"arguments":[{"name":"d","nativeSrc":"10245:1:25","nodeType":"YulIdentifier","src":"10245:1:25"},{"kind":"number","nativeSrc":"10248:1:25","nodeType":"YulLiteral","src":"10248:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10241:3:25","nodeType":"YulIdentifier","src":"10241:3:25"},"nativeSrc":"10241:9:25","nodeType":"YulFunctionCall","src":"10241:9:25"}],"functionName":{"name":"codecopy","nativeSrc":"10217:8:25","nodeType":"YulIdentifier","src":"10217:8:25"},"nativeSrc":"10217:34:25","nodeType":"YulFunctionCall","src":"10217:34:25"},"nativeSrc":"10217:34:25","nodeType":"YulExpressionStatement","src":"10217:34:25"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"10205:1:25","nodeType":"YulIdentifier","src":"10205:1:25"},{"kind":"number","nativeSrc":"10208:4:25","nodeType":"YulLiteral","src":"10208:4:25","type":"","value":"0x7f"}],"functionName":{"name":"gt","nativeSrc":"10202:2:25","nodeType":"YulIdentifier","src":"10202:2:25"},"nativeSrc":"10202:11:25","nodeType":"YulFunctionCall","src":"10202:11:25"}],"functionName":{"name":"iszero","nativeSrc":"10195:6:25","nodeType":"YulIdentifier","src":"10195:6:25"},"nativeSrc":"10195:19:25","nodeType":"YulFunctionCall","src":"10195:19:25"},"nativeSrc":"10192:61:25","nodeType":"YulIf","src":"10192:61:25"},{"nativeSrc":"10278:33:25","nodeType":"YulAssignment","src":"10278:33:25","value":{"arguments":[{"name":"o","nativeSrc":"10287:1:25","nodeType":"YulIdentifier","src":"10287:1:25"},{"arguments":[{"arguments":[{"name":"d","nativeSrc":"10298:1:25","nodeType":"YulIdentifier","src":"10298:1:25"},{"kind":"number","nativeSrc":"10301:4:25","nodeType":"YulLiteral","src":"10301:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10294:3:25","nodeType":"YulIdentifier","src":"10294:3:25"},"nativeSrc":"10294:12:25","nodeType":"YulFunctionCall","src":"10294:12:25"},{"kind":"number","nativeSrc":"10308:1:25","nodeType":"YulLiteral","src":"10308:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10290:3:25","nodeType":"YulIdentifier","src":"10290:3:25"},"nativeSrc":"10290:20:25","nodeType":"YulFunctionCall","src":"10290:20:25"}],"functionName":{"name":"add","nativeSrc":"10283:3:25","nodeType":"YulIdentifier","src":"10283:3:25"},"nativeSrc":"10283:28:25","nodeType":"YulFunctionCall","src":"10283:28:25"},"variableNames":[{"name":"o","nativeSrc":"10278:1:25","nodeType":"YulIdentifier","src":"10278:1:25"}]},{"nativeSrc":"10336:8:25","nodeType":"YulContinue","src":"10336:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"9963:1:25","nodeType":"YulIdentifier","src":"9963:1:25"}],"functionName":{"name":"iszero","nativeSrc":"9956:6:25","nodeType":"YulIdentifier","src":"9956:6:25"},"nativeSrc":"9956:9:25","nodeType":"YulFunctionCall","src":"9956:9:25"},"nativeSrc":"9953:413:25","nodeType":"YulIf","src":"9953:413:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"10395:1:25","nodeType":"YulIdentifier","src":"10395:1:25"},{"name":"c","nativeSrc":"10398:1:25","nodeType":"YulIdentifier","src":"10398:1:25"}],"functionName":{"name":"mstore8","nativeSrc":"10387:7:25","nodeType":"YulIdentifier","src":"10387:7:25"},"nativeSrc":"10387:13:25","nodeType":"YulFunctionCall","src":"10387:13:25"},"nativeSrc":"10387:13:25","nodeType":"YulExpressionStatement","src":"10387:13:25"},{"nativeSrc":"10421:14:25","nodeType":"YulAssignment","src":"10421:14:25","value":{"arguments":[{"name":"o","nativeSrc":"10430:1:25","nodeType":"YulIdentifier","src":"10430:1:25"},{"kind":"number","nativeSrc":"10433:1:25","nodeType":"YulLiteral","src":"10433:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10426:3:25","nodeType":"YulIdentifier","src":"10426:3:25"},"nativeSrc":"10426:9:25","nodeType":"YulFunctionCall","src":"10426:9:25"},"variableNames":[{"name":"o","nativeSrc":"10421:1:25","nodeType":"YulIdentifier","src":"10421:1:25"}]}]},"condition":{"arguments":[{"name":"data","nativeSrc":"9825:4:25","nodeType":"YulIdentifier","src":"9825:4:25"},{"name":"end","nativeSrc":"9831:3:25","nodeType":"YulIdentifier","src":"9831:3:25"}],"functionName":{"name":"lt","nativeSrc":"9822:2:25","nodeType":"YulIdentifier","src":"9822:2:25"},"nativeSrc":"9822:13:25","nodeType":"YulFunctionCall","src":"9822:13:25"},"nativeSrc":"9815:638:25","nodeType":"YulForLoop","post":{"nativeSrc":"9836:2:25","nodeType":"YulBlock","src":"9836:2:25","statements":[]},"pre":{"nativeSrc":"9819:2:25","nodeType":"YulBlock","src":"9819:2:25","statements":[]},"src":"9815:638:25"},{"expression":{"arguments":[{"name":"s","nativeSrc":"10477:1:25","nodeType":"YulIdentifier","src":"10477:1:25"},{"name":"v","nativeSrc":"10480:1:25","nodeType":"YulIdentifier","src":"10480:1:25"}],"functionName":{"name":"mstore","nativeSrc":"10470:6:25","nodeType":"YulIdentifier","src":"10470:6:25"},"nativeSrc":"10470:12:25","nodeType":"YulFunctionCall","src":"10470:12:25"},"nativeSrc":"10470:12:25","nodeType":"YulExpressionStatement","src":"10470:12:25"},{"expression":{"arguments":[{"name":"result","nativeSrc":"10536:6:25","nodeType":"YulIdentifier","src":"10536:6:25"},{"arguments":[{"name":"o","nativeSrc":"10548:1:25","nodeType":"YulIdentifier","src":"10548:1:25"},{"arguments":[{"name":"result","nativeSrc":"10555:6:25","nodeType":"YulIdentifier","src":"10555:6:25"},{"kind":"number","nativeSrc":"10563:4:25","nodeType":"YulLiteral","src":"10563:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10551:3:25","nodeType":"YulIdentifier","src":"10551:3:25"},"nativeSrc":"10551:17:25","nodeType":"YulFunctionCall","src":"10551:17:25"}],"functionName":{"name":"sub","nativeSrc":"10544:3:25","nodeType":"YulIdentifier","src":"10544:3:25"},"nativeSrc":"10544:25:25","nodeType":"YulFunctionCall","src":"10544:25:25"}],"functionName":{"name":"mstore","nativeSrc":"10529:6:25","nodeType":"YulIdentifier","src":"10529:6:25"},"nativeSrc":"10529:41:25","nodeType":"YulFunctionCall","src":"10529:41:25"},"nativeSrc":"10529:41:25","nodeType":"YulExpressionStatement","src":"10529:41:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"10615:1:25","nodeType":"YulIdentifier","src":"10615:1:25"},{"kind":"number","nativeSrc":"10618:1:25","nodeType":"YulLiteral","src":"10618:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10608:6:25","nodeType":"YulIdentifier","src":"10608:6:25"},"nativeSrc":"10608:12:25","nodeType":"YulFunctionCall","src":"10608:12:25"},"nativeSrc":"10608:12:25","nodeType":"YulExpressionStatement","src":"10608:12:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10682:4:25","nodeType":"YulLiteral","src":"10682:4:25","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"10692:1:25","nodeType":"YulIdentifier","src":"10692:1:25"},{"kind":"number","nativeSrc":"10695:4:25","nodeType":"YulLiteral","src":"10695:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10688:3:25","nodeType":"YulIdentifier","src":"10688:3:25"},"nativeSrc":"10688:12:25","nodeType":"YulFunctionCall","src":"10688:12:25"}],"functionName":{"name":"mstore","nativeSrc":"10675:6:25","nodeType":"YulIdentifier","src":"10675:6:25"},"nativeSrc":"10675:26:25","nodeType":"YulFunctionCall","src":"10675:26:25"},"nativeSrc":"10675:26:25","nodeType":"YulExpressionStatement","src":"10675:26:25"}]},"condition":{"arguments":[{"name":"data","nativeSrc":"9517:4:25","nodeType":"YulIdentifier","src":"9517:4:25"}],"functionName":{"name":"mload","nativeSrc":"9511:5:25","nodeType":"YulIdentifier","src":"9511:5:25"},"nativeSrc":"9511:11:25","nodeType":"YulFunctionCall","src":"9511:11:25"},"nativeSrc":"9508:1231:25","nodeType":"YulIf","src":"9508:1231:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11000,"isOffset":false,"isSlot":false,"src":"10004:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"10061:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9517:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9635:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9709:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9721:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9825:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9861:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9873:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9926:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9992:4:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"10536:6:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"10555:6:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"9541:6:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"9592:6:25","valueSize":1}],"id":11005,"nodeType":"InlineAssembly","src":"9485:1264:25"}]},"documentation":{"id":10998,"nodeType":"StructuredDocumentation","src":"9301:41:25","text":"@dev Returns the decompressed `data`."},"id":11007,"implemented":true,"kind":"function","modifiers":[],"name":"cdDecompress","nameLocation":"9356:12:25","nodeType":"FunctionDefinition","parameters":{"id":11001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11000,"mutability":"mutable","name":"data","nameLocation":"9382:4:25","nodeType":"VariableDeclaration","scope":11007,"src":"9369:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10999,"name":"bytes","nodeType":"ElementaryTypeName","src":"9369:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9368:19:25"},"returnParameters":{"id":11004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11003,"mutability":"mutable","name":"result","nameLocation":"9424:6:25","nodeType":"VariableDeclaration","scope":11007,"src":"9411:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11002,"name":"bytes","nodeType":"ElementaryTypeName","src":"9411:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9410:21:25"},"scope":11014,"src":"9347:1408:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11012,"nodeType":"Block","src":"11207:1095:25","statements":[{"AST":{"nativeSrc":"11226:1070:25","nodeType":"YulBlock","src":"11226:1070:25","statements":[{"body":{"nativeSrc":"11266:42:25","nodeType":"YulBlock","src":"11266:42:25","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11275:12:25","nodeType":"YulIdentifier","src":"11275:12:25"},"nativeSrc":"11275:14:25","nodeType":"YulFunctionCall","src":"11275:14:25"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11291:12:25","nodeType":"YulIdentifier","src":"11291:12:25"},"nativeSrc":"11291:14:25","nodeType":"YulFunctionCall","src":"11291:14:25"}],"functionName":{"name":"return","nativeSrc":"11268:6:25","nodeType":"YulIdentifier","src":"11268:6:25"},"nativeSrc":"11268:38:25","nodeType":"YulFunctionCall","src":"11268:38:25"},"nativeSrc":"11268:38:25","nodeType":"YulExpressionStatement","src":"11268:38:25"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11250:12:25","nodeType":"YulIdentifier","src":"11250:12:25"},"nativeSrc":"11250:14:25","nodeType":"YulFunctionCall","src":"11250:14:25"}],"functionName":{"name":"iszero","nativeSrc":"11243:6:25","nodeType":"YulIdentifier","src":"11243:6:25"},"nativeSrc":"11243:22:25","nodeType":"YulFunctionCall","src":"11243:22:25"},"nativeSrc":"11240:68:25","nodeType":"YulIf","src":"11240:68:25"},{"nativeSrc":"11321:10:25","nodeType":"YulVariableDeclaration","src":"11321:10:25","value":{"kind":"number","nativeSrc":"11330:1:25","nodeType":"YulLiteral","src":"11330:1:25","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"11325:1:25","nodeType":"YulTypedName","src":"11325:1:25","type":""}]},{"nativeSrc":"11344:15:25","nodeType":"YulVariableDeclaration","src":"11344:15:25","value":{"arguments":[{"kind":"number","nativeSrc":"11357:1:25","nodeType":"YulLiteral","src":"11357:1:25","type":"","value":"3"}],"functionName":{"name":"not","nativeSrc":"11353:3:25","nodeType":"YulIdentifier","src":"11353:3:25"},"nativeSrc":"11353:6:25","nodeType":"YulFunctionCall","src":"11353:6:25"},"variables":[{"name":"f","nativeSrc":"11348:1:25","nodeType":"YulTypedName","src":"11348:1:25","type":""}]},{"body":{"nativeSrc":"11451:584:25","nodeType":"YulBlock","src":"11451:584:25","statements":[{"nativeSrc":"11469:49:25","nodeType":"YulVariableDeclaration","src":"11469:49:25","value":{"arguments":[{"kind":"number","nativeSrc":"11483:1:25","nodeType":"YulLiteral","src":"11483:1:25","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"i","nativeSrc":"11494:1:25","nodeType":"YulIdentifier","src":"11494:1:25"},{"name":"f","nativeSrc":"11497:1:25","nodeType":"YulIdentifier","src":"11497:1:25"}],"functionName":{"name":"add","nativeSrc":"11490:3:25","nodeType":"YulIdentifier","src":"11490:3:25"},"nativeSrc":"11490:9:25","nodeType":"YulFunctionCall","src":"11490:9:25"},{"arguments":[{"name":"i","nativeSrc":"11514:1:25","nodeType":"YulIdentifier","src":"11514:1:25"}],"functionName":{"name":"calldataload","nativeSrc":"11501:12:25","nodeType":"YulIdentifier","src":"11501:12:25"},"nativeSrc":"11501:15:25","nodeType":"YulFunctionCall","src":"11501:15:25"}],"functionName":{"name":"xor","nativeSrc":"11486:3:25","nodeType":"YulIdentifier","src":"11486:3:25"},"nativeSrc":"11486:31:25","nodeType":"YulFunctionCall","src":"11486:31:25"}],"functionName":{"name":"byte","nativeSrc":"11478:4:25","nodeType":"YulIdentifier","src":"11478:4:25"},"nativeSrc":"11478:40:25","nodeType":"YulFunctionCall","src":"11478:40:25"},"variables":[{"name":"c","nativeSrc":"11473:1:25","nodeType":"YulTypedName","src":"11473:1:25","type":""}]},{"nativeSrc":"11535:14:25","nodeType":"YulAssignment","src":"11535:14:25","value":{"arguments":[{"name":"i","nativeSrc":"11544:1:25","nodeType":"YulIdentifier","src":"11544:1:25"},{"kind":"number","nativeSrc":"11547:1:25","nodeType":"YulLiteral","src":"11547:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11540:3:25","nodeType":"YulIdentifier","src":"11540:3:25"},"nativeSrc":"11540:9:25","nodeType":"YulFunctionCall","src":"11540:9:25"},"variableNames":[{"name":"i","nativeSrc":"11535:1:25","nodeType":"YulIdentifier","src":"11535:1:25"}]},{"body":{"nativeSrc":"11579:381:25","nodeType":"YulBlock","src":"11579:381:25","statements":[{"nativeSrc":"11601:49:25","nodeType":"YulVariableDeclaration","src":"11601:49:25","value":{"arguments":[{"kind":"number","nativeSrc":"11615:1:25","nodeType":"YulLiteral","src":"11615:1:25","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"i","nativeSrc":"11626:1:25","nodeType":"YulIdentifier","src":"11626:1:25"},{"name":"f","nativeSrc":"11629:1:25","nodeType":"YulIdentifier","src":"11629:1:25"}],"functionName":{"name":"add","nativeSrc":"11622:3:25","nodeType":"YulIdentifier","src":"11622:3:25"},"nativeSrc":"11622:9:25","nodeType":"YulFunctionCall","src":"11622:9:25"},{"arguments":[{"name":"i","nativeSrc":"11646:1:25","nodeType":"YulIdentifier","src":"11646:1:25"}],"functionName":{"name":"calldataload","nativeSrc":"11633:12:25","nodeType":"YulIdentifier","src":"11633:12:25"},"nativeSrc":"11633:15:25","nodeType":"YulFunctionCall","src":"11633:15:25"}],"functionName":{"name":"xor","nativeSrc":"11618:3:25","nodeType":"YulIdentifier","src":"11618:3:25"},"nativeSrc":"11618:31:25","nodeType":"YulFunctionCall","src":"11618:31:25"}],"functionName":{"name":"byte","nativeSrc":"11610:4:25","nodeType":"YulIdentifier","src":"11610:4:25"},"nativeSrc":"11610:40:25","nodeType":"YulFunctionCall","src":"11610:40:25"},"variables":[{"name":"d","nativeSrc":"11605:1:25","nodeType":"YulTypedName","src":"11605:1:25","type":""}]},{"nativeSrc":"11671:14:25","nodeType":"YulAssignment","src":"11671:14:25","value":{"arguments":[{"name":"i","nativeSrc":"11680:1:25","nodeType":"YulIdentifier","src":"11680:1:25"},{"kind":"number","nativeSrc":"11683:1:25","nodeType":"YulLiteral","src":"11683:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11676:3:25","nodeType":"YulIdentifier","src":"11676:3:25"},"nativeSrc":"11676:9:25","nodeType":"YulFunctionCall","src":"11676:9:25"},"variableNames":[{"name":"i","nativeSrc":"11671:1:25","nodeType":"YulIdentifier","src":"11671:1:25"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"11767:1:25","nodeType":"YulIdentifier","src":"11767:1:25"},{"arguments":[{"kind":"number","nativeSrc":"11774:1:25","nodeType":"YulLiteral","src":"11774:1:25","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11770:3:25","nodeType":"YulIdentifier","src":"11770:3:25"},"nativeSrc":"11770:6:25","nodeType":"YulFunctionCall","src":"11770:6:25"}],"functionName":{"name":"mstore","nativeSrc":"11760:6:25","nodeType":"YulIdentifier","src":"11760:6:25"},"nativeSrc":"11760:17:25","nodeType":"YulFunctionCall","src":"11760:17:25"},"nativeSrc":"11760:17:25","nodeType":"YulExpressionStatement","src":"11760:17:25"},{"body":{"nativeSrc":"11821:38:25","nodeType":"YulBlock","src":"11821:38:25","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"11832:1:25","nodeType":"YulIdentifier","src":"11832:1:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"11835:8:25","nodeType":"YulIdentifier","src":"11835:8:25"},"nativeSrc":"11835:10:25","nodeType":"YulFunctionCall","src":"11835:10:25"},{"arguments":[{"name":"d","nativeSrc":"11851:1:25","nodeType":"YulIdentifier","src":"11851:1:25"},{"kind":"number","nativeSrc":"11854:1:25","nodeType":"YulLiteral","src":"11854:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11847:3:25","nodeType":"YulIdentifier","src":"11847:3:25"},"nativeSrc":"11847:9:25","nodeType":"YulFunctionCall","src":"11847:9:25"}],"functionName":{"name":"codecopy","nativeSrc":"11823:8:25","nodeType":"YulIdentifier","src":"11823:8:25"},"nativeSrc":"11823:34:25","nodeType":"YulFunctionCall","src":"11823:34:25"},"nativeSrc":"11823:34:25","nodeType":"YulExpressionStatement","src":"11823:34:25"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"11811:1:25","nodeType":"YulIdentifier","src":"11811:1:25"},{"kind":"number","nativeSrc":"11814:4:25","nodeType":"YulLiteral","src":"11814:4:25","type":"","value":"0x7f"}],"functionName":{"name":"gt","nativeSrc":"11808:2:25","nodeType":"YulIdentifier","src":"11808:2:25"},"nativeSrc":"11808:11:25","nodeType":"YulFunctionCall","src":"11808:11:25"}],"functionName":{"name":"iszero","nativeSrc":"11801:6:25","nodeType":"YulIdentifier","src":"11801:6:25"},"nativeSrc":"11801:19:25","nodeType":"YulFunctionCall","src":"11801:19:25"},"nativeSrc":"11798:61:25","nodeType":"YulIf","src":"11798:61:25"},{"nativeSrc":"11880:33:25","nodeType":"YulAssignment","src":"11880:33:25","value":{"arguments":[{"name":"o","nativeSrc":"11889:1:25","nodeType":"YulIdentifier","src":"11889:1:25"},{"arguments":[{"arguments":[{"name":"d","nativeSrc":"11900:1:25","nodeType":"YulIdentifier","src":"11900:1:25"},{"kind":"number","nativeSrc":"11903:4:25","nodeType":"YulLiteral","src":"11903:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11896:3:25","nodeType":"YulIdentifier","src":"11896:3:25"},"nativeSrc":"11896:12:25","nodeType":"YulFunctionCall","src":"11896:12:25"},{"kind":"number","nativeSrc":"11910:1:25","nodeType":"YulLiteral","src":"11910:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11892:3:25","nodeType":"YulIdentifier","src":"11892:3:25"},"nativeSrc":"11892:20:25","nodeType":"YulFunctionCall","src":"11892:20:25"}],"functionName":{"name":"add","nativeSrc":"11885:3:25","nodeType":"YulIdentifier","src":"11885:3:25"},"nativeSrc":"11885:28:25","nodeType":"YulFunctionCall","src":"11885:28:25"},"variableNames":[{"name":"o","nativeSrc":"11880:1:25","nodeType":"YulIdentifier","src":"11880:1:25"}]},{"nativeSrc":"11934:8:25","nodeType":"YulContinue","src":"11934:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"11576:1:25","nodeType":"YulIdentifier","src":"11576:1:25"}],"functionName":{"name":"iszero","nativeSrc":"11569:6:25","nodeType":"YulIdentifier","src":"11569:6:25"},"nativeSrc":"11569:9:25","nodeType":"YulFunctionCall","src":"11569:9:25"},"nativeSrc":"11566:394:25","nodeType":"YulIf","src":"11566:394:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"11985:1:25","nodeType":"YulIdentifier","src":"11985:1:25"},{"name":"c","nativeSrc":"11988:1:25","nodeType":"YulIdentifier","src":"11988:1:25"}],"functionName":{"name":"mstore8","nativeSrc":"11977:7:25","nodeType":"YulIdentifier","src":"11977:7:25"},"nativeSrc":"11977:13:25","nodeType":"YulFunctionCall","src":"11977:13:25"},"nativeSrc":"11977:13:25","nodeType":"YulExpressionStatement","src":"11977:13:25"},{"nativeSrc":"12007:14:25","nodeType":"YulAssignment","src":"12007:14:25","value":{"arguments":[{"name":"o","nativeSrc":"12016:1:25","nodeType":"YulIdentifier","src":"12016:1:25"},{"kind":"number","nativeSrc":"12019:1:25","nodeType":"YulLiteral","src":"12019:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12012:3:25","nodeType":"YulIdentifier","src":"12012:3:25"},"nativeSrc":"12012:9:25","nodeType":"YulFunctionCall","src":"12012:9:25"},"variableNames":[{"name":"o","nativeSrc":"12007:1:25","nodeType":"YulIdentifier","src":"12007:1:25"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"11429:1:25","nodeType":"YulIdentifier","src":"11429:1:25"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11432:12:25","nodeType":"YulIdentifier","src":"11432:12:25"},"nativeSrc":"11432:14:25","nodeType":"YulFunctionCall","src":"11432:14:25"}],"functionName":{"name":"lt","nativeSrc":"11426:2:25","nodeType":"YulIdentifier","src":"11426:2:25"},"nativeSrc":"11426:21:25","nodeType":"YulFunctionCall","src":"11426:21:25"},"nativeSrc":"11407:628:25","nodeType":"YulForLoop","post":{"nativeSrc":"11448:2:25","nodeType":"YulBlock","src":"11448:2:25","statements":[]},"pre":{"nativeSrc":"11411:14:25","nodeType":"YulBlock","src":"11411:14:25","statements":[{"nativeSrc":"11413:10:25","nodeType":"YulVariableDeclaration","src":"11413:10:25","value":{"kind":"number","nativeSrc":"11422:1:25","nodeType":"YulLiteral","src":"11422:1:25","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"11417:1:25","nodeType":"YulTypedName","src":"11417:1:25","type":""}]}]},"src":"11407:628:25"},{"nativeSrc":"12048:72:25","nodeType":"YulVariableDeclaration","src":"12048:72:25","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"12076:3:25","nodeType":"YulIdentifier","src":"12076:3:25"},"nativeSrc":"12076:5:25","nodeType":"YulFunctionCall","src":"12076:5:25"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"12083:7:25","nodeType":"YulIdentifier","src":"12083:7:25"},"nativeSrc":"12083:9:25","nodeType":"YulFunctionCall","src":"12083:9:25"},{"kind":"number","nativeSrc":"12094:4:25","nodeType":"YulLiteral","src":"12094:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"12100:1:25","nodeType":"YulIdentifier","src":"12100:1:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"12103:8:25","nodeType":"YulIdentifier","src":"12103:8:25"},"nativeSrc":"12103:10:25","nodeType":"YulFunctionCall","src":"12103:10:25"},{"kind":"number","nativeSrc":"12115:4:25","nodeType":"YulLiteral","src":"12115:4:25","type":"","value":"0x00"}],"functionName":{"name":"delegatecall","nativeSrc":"12063:12:25","nodeType":"YulIdentifier","src":"12063:12:25"},"nativeSrc":"12063:57:25","nodeType":"YulFunctionCall","src":"12063:57:25"},"variables":[{"name":"success","nativeSrc":"12052:7:25","nodeType":"YulTypedName","src":"12052:7:25","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12148:4:25","nodeType":"YulLiteral","src":"12148:4:25","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12154:4:25","nodeType":"YulLiteral","src":"12154:4:25","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12160:14:25","nodeType":"YulIdentifier","src":"12160:14:25"},"nativeSrc":"12160:16:25","nodeType":"YulFunctionCall","src":"12160:16:25"}],"functionName":{"name":"returndatacopy","nativeSrc":"12133:14:25","nodeType":"YulIdentifier","src":"12133:14:25"},"nativeSrc":"12133:44:25","nodeType":"YulFunctionCall","src":"12133:44:25"},"nativeSrc":"12133:44:25","nodeType":"YulExpressionStatement","src":"12133:44:25"},{"body":{"nativeSrc":"12209:34:25","nodeType":"YulBlock","src":"12209:34:25","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12218:4:25","nodeType":"YulLiteral","src":"12218:4:25","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12224:14:25","nodeType":"YulIdentifier","src":"12224:14:25"},"nativeSrc":"12224:16:25","nodeType":"YulFunctionCall","src":"12224:16:25"}],"functionName":{"name":"revert","nativeSrc":"12211:6:25","nodeType":"YulIdentifier","src":"12211:6:25"},"nativeSrc":"12211:30:25","nodeType":"YulFunctionCall","src":"12211:30:25"},"nativeSrc":"12211:30:25","nodeType":"YulExpressionStatement","src":"12211:30:25"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"12200:7:25","nodeType":"YulIdentifier","src":"12200:7:25"}],"functionName":{"name":"iszero","nativeSrc":"12193:6:25","nodeType":"YulIdentifier","src":"12193:6:25"},"nativeSrc":"12193:15:25","nodeType":"YulFunctionCall","src":"12193:15:25"},"nativeSrc":"12190:53:25","nodeType":"YulIf","src":"12190:53:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12263:4:25","nodeType":"YulLiteral","src":"12263:4:25","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12269:14:25","nodeType":"YulIdentifier","src":"12269:14:25"},"nativeSrc":"12269:16:25","nodeType":"YulFunctionCall","src":"12269:16:25"}],"functionName":{"name":"return","nativeSrc":"12256:6:25","nodeType":"YulIdentifier","src":"12256:6:25"},"nativeSrc":"12256:30:25","nodeType":"YulFunctionCall","src":"12256:30:25"},"nativeSrc":"12256:30:25","nodeType":"YulExpressionStatement","src":"12256:30:25"}]},"evmVersion":"cancun","externalReferences":[],"id":11011,"nodeType":"InlineAssembly","src":"11217:1079:25"}]},"documentation":{"id":11008,"nodeType":"StructuredDocumentation","src":"10761:410:25","text":"@dev To be called in the `fallback` function.\n ```\n fallback() external payable { LibZip.cdFallback(); }\n receive() external payable {} // Silence compiler warning to add a `receive` function.\n ```\n For efficiency, this function will directly return the results, terminating the context.\n If called internally, it must be called at the end of the function."},"id":11013,"implemented":true,"kind":"function","modifiers":[],"name":"cdFallback","nameLocation":"11185:10:25","nodeType":"FunctionDefinition","parameters":{"id":11009,"nodeType":"ParameterList","parameters":[],"src":"11195:2:25"},"returnParameters":{"id":11010,"nodeType":"ParameterList","parameters":[],"src":"11207:0:25"},"scope":11014,"src":"11176:1126:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11015,"src":"492:11812:25","usedErrors":[],"usedEvents":[]}],"src":"32:12273:25"},"id":25},"@solady/utils/ReentrancyGuard.sol":{"ast":{"absolutePath":"@solady/utils/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[11038]},"id":11039,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11016,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:26"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":11017,"nodeType":"StructuredDocumentation","src":"57:134:26","text":"@notice Reentrancy guard mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)"},"fullyImplemented":true,"id":11038,"linearizedBaseContracts":[11038],"name":"ReentrancyGuard","nameLocation":"209:15:26","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":11018,"nodeType":"StructuredDocumentation","src":"514:37:26","text":"@dev Unauthorized reentrant call."},"errorSelector":"ab143c06","id":11020,"name":"Reentrancy","nameLocation":"562:10:26","nodeType":"ErrorDefinition","parameters":{"id":11019,"nodeType":"ParameterList","parameters":[],"src":"572:2:26"},"src":"556:19:26"},{"constant":true,"documentation":{"id":11021,"nodeType":"StructuredDocumentation","src":"864:213:26","text":"@dev Equivalent to: `uint72(bytes9(keccak256(\"_REENTRANCY_GUARD_SLOT\")))`.\n 9 bytes is large enough to avoid collisions with lower slots,\n but not too large to result in excessive bytecode bloat."},"id":11024,"mutability":"constant","name":"_REENTRANCY_GUARD_SLOT","nameLocation":"1107:22:26","nodeType":"VariableDeclaration","scope":11038,"src":"1082:70:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078393239656565313439623462643231323638","id":11023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1132:20:26","typeDescriptions":{"typeIdentifier":"t_rational_2704676748321268830824_by_1","typeString":"int_const 2704676748321268830824"},"value":"0x929eee149b4bd21268"},"visibility":"private"},{"body":{"id":11030,"nodeType":"Block","src":"1522:442:26","statements":[{"AST":{"nativeSrc":"1584:236:26","nodeType":"YulBlock","src":"1584:236:26","statements":[{"body":{"nativeSrc":"1646:110:26","nodeType":"YulBlock","src":"1646:110:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1671:4:26","nodeType":"YulLiteral","src":"1671:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1677:10:26","nodeType":"YulLiteral","src":"1677:10:26","type":"","value":"0xab143c06"}],"functionName":{"name":"mstore","nativeSrc":"1664:6:26","nodeType":"YulIdentifier","src":"1664:6:26"},"nativeSrc":"1664:24:26","nodeType":"YulFunctionCall","src":"1664:24:26"},"nativeSrc":"1664:24:26","nodeType":"YulExpressionStatement","src":"1664:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1731:4:26","nodeType":"YulLiteral","src":"1731:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1737:4:26","nodeType":"YulLiteral","src":"1737:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"1724:6:26","nodeType":"YulIdentifier","src":"1724:6:26"},"nativeSrc":"1724:18:26","nodeType":"YulFunctionCall","src":"1724:18:26"},"nativeSrc":"1724:18:26","nodeType":"YulExpressionStatement","src":"1724:18:26"}]},"condition":{"arguments":[{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1610:22:26","nodeType":"YulIdentifier","src":"1610:22:26"}],"functionName":{"name":"sload","nativeSrc":"1604:5:26","nodeType":"YulIdentifier","src":"1604:5:26"},"nativeSrc":"1604:29:26","nodeType":"YulFunctionCall","src":"1604:29:26"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"1635:7:26","nodeType":"YulIdentifier","src":"1635:7:26"},"nativeSrc":"1635:9:26","nodeType":"YulFunctionCall","src":"1635:9:26"}],"functionName":{"name":"eq","nativeSrc":"1601:2:26","nodeType":"YulIdentifier","src":"1601:2:26"},"nativeSrc":"1601:44:26","nodeType":"YulFunctionCall","src":"1601:44:26"},"nativeSrc":"1598:158:26","nodeType":"YulIf","src":"1598:158:26"},{"expression":{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1776:22:26","nodeType":"YulIdentifier","src":"1776:22:26"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"1800:7:26","nodeType":"YulIdentifier","src":"1800:7:26"},"nativeSrc":"1800:9:26","nodeType":"YulFunctionCall","src":"1800:9:26"}],"functionName":{"name":"sstore","nativeSrc":"1769:6:26","nodeType":"YulIdentifier","src":"1769:6:26"},"nativeSrc":"1769:41:26","nodeType":"YulFunctionCall","src":"1769:41:26"},"nativeSrc":"1769:41:26","nodeType":"YulExpressionStatement","src":"1769:41:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11024,"isOffset":false,"isSlot":false,"src":"1610:22:26","valueSize":1},{"declaration":11024,"isOffset":false,"isSlot":false,"src":"1776:22:26","valueSize":1}],"id":11027,"nodeType":"InlineAssembly","src":"1575:245:26"},{"id":11028,"nodeType":"PlaceholderStatement","src":"1829:1:26"},{"AST":{"nativeSrc":"1892:66:26","nodeType":"YulBlock","src":"1892:66:26","statements":[{"expression":{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1913:22:26","nodeType":"YulIdentifier","src":"1913:22:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"1937:8:26","nodeType":"YulIdentifier","src":"1937:8:26"},"nativeSrc":"1937:10:26","nodeType":"YulFunctionCall","src":"1937:10:26"}],"functionName":{"name":"sstore","nativeSrc":"1906:6:26","nodeType":"YulIdentifier","src":"1906:6:26"},"nativeSrc":"1906:42:26","nodeType":"YulFunctionCall","src":"1906:42:26"},"nativeSrc":"1906:42:26","nodeType":"YulExpressionStatement","src":"1906:42:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11024,"isOffset":false,"isSlot":false,"src":"1913:22:26","valueSize":1}],"id":11029,"nodeType":"InlineAssembly","src":"1883:75:26"}]},"documentation":{"id":11025,"nodeType":"StructuredDocumentation","src":"1442:43:26","text":"@dev Guards a function from reentrancy."},"id":11031,"name":"nonReentrant","nameLocation":"1499:12:26","nodeType":"ModifierDefinition","parameters":{"id":11026,"nodeType":"ParameterList","parameters":[],"src":"1511:2:26"},"src":"1490:474:26","virtual":true,"visibility":"internal"},{"body":{"id":11036,"nodeType":"Block","src":"2069:261:26","statements":[{"AST":{"nativeSrc":"2131:182:26","nodeType":"YulBlock","src":"2131:182:26","statements":[{"body":{"nativeSrc":"2193:110:26","nodeType":"YulBlock","src":"2193:110:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2218:4:26","nodeType":"YulLiteral","src":"2218:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2224:10:26","nodeType":"YulLiteral","src":"2224:10:26","type":"","value":"0xab143c06"}],"functionName":{"name":"mstore","nativeSrc":"2211:6:26","nodeType":"YulIdentifier","src":"2211:6:26"},"nativeSrc":"2211:24:26","nodeType":"YulFunctionCall","src":"2211:24:26"},"nativeSrc":"2211:24:26","nodeType":"YulExpressionStatement","src":"2211:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2278:4:26","nodeType":"YulLiteral","src":"2278:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"2284:4:26","nodeType":"YulLiteral","src":"2284:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"2271:6:26","nodeType":"YulIdentifier","src":"2271:6:26"},"nativeSrc":"2271:18:26","nodeType":"YulFunctionCall","src":"2271:18:26"},"nativeSrc":"2271:18:26","nodeType":"YulExpressionStatement","src":"2271:18:26"}]},"condition":{"arguments":[{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"2157:22:26","nodeType":"YulIdentifier","src":"2157:22:26"}],"functionName":{"name":"sload","nativeSrc":"2151:5:26","nodeType":"YulIdentifier","src":"2151:5:26"},"nativeSrc":"2151:29:26","nodeType":"YulFunctionCall","src":"2151:29:26"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"2182:7:26","nodeType":"YulIdentifier","src":"2182:7:26"},"nativeSrc":"2182:9:26","nodeType":"YulFunctionCall","src":"2182:9:26"}],"functionName":{"name":"eq","nativeSrc":"2148:2:26","nodeType":"YulIdentifier","src":"2148:2:26"},"nativeSrc":"2148:44:26","nodeType":"YulFunctionCall","src":"2148:44:26"},"nativeSrc":"2145:158:26","nodeType":"YulIf","src":"2145:158:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11024,"isOffset":false,"isSlot":false,"src":"2157:22:26","valueSize":1}],"id":11034,"nodeType":"InlineAssembly","src":"2122:191:26"},{"id":11035,"nodeType":"PlaceholderStatement","src":"2322:1:26"}]},"documentation":{"id":11032,"nodeType":"StructuredDocumentation","src":"1970:58:26","text":"@dev Guards a view function from read-only reentrancy."},"id":11037,"name":"nonReadReentrant","nameLocation":"2042:16:26","nodeType":"ModifierDefinition","parameters":{"id":11033,"nodeType":"ParameterList","parameters":[],"src":"2058:2:26"},"src":"2033:297:26","virtual":true,"visibility":"internal"}],"scope":11039,"src":"191:2141:26","usedErrors":[11020],"usedEvents":[]}],"src":"32:2301:26"},"id":26},"@solady/utils/SafeTransferLib.sol":{"ast":{"absolutePath":"@solady/utils/SafeTransferLib.sol","exportedSymbols":{"SafeTransferLib":[11372]},"id":11373,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11040,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:27"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeTransferLib","contractDependencies":[],"contractKind":"library","documentation":{"id":11041,"nodeType":"StructuredDocumentation","src":"57:644:27","text":"@notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)\n @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\n @dev Note:\n - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.\n - For ERC20s, this implementation won't check that a token has code,\n responsibility is delegated to the caller."},"fullyImplemented":true,"id":11372,"linearizedBaseContracts":[11372],"name":"SafeTransferLib","nameLocation":"709:15:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":11042,"nodeType":"StructuredDocumentation","src":"1014:37:27","text":"@dev The ETH transfer has failed."},"errorSelector":"b12d13eb","id":11044,"name":"ETHTransferFailed","nameLocation":"1062:17:27","nodeType":"ErrorDefinition","parameters":{"id":11043,"nodeType":"ParameterList","parameters":[],"src":"1079:2:27"},"src":"1056:26:27"},{"documentation":{"id":11045,"nodeType":"StructuredDocumentation","src":"1088:45:27","text":"@dev The ERC20 `transferFrom` has failed."},"errorSelector":"7939f424","id":11047,"name":"TransferFromFailed","nameLocation":"1144:18:27","nodeType":"ErrorDefinition","parameters":{"id":11046,"nodeType":"ParameterList","parameters":[],"src":"1162:2:27"},"src":"1138:27:27"},{"documentation":{"id":11048,"nodeType":"StructuredDocumentation","src":"1171:41:27","text":"@dev The ERC20 `transfer` has failed."},"errorSelector":"90b8ec18","id":11050,"name":"TransferFailed","nameLocation":"1223:14:27","nodeType":"ErrorDefinition","parameters":{"id":11049,"nodeType":"ParameterList","parameters":[],"src":"1237:2:27"},"src":"1217:23:27"},{"documentation":{"id":11051,"nodeType":"StructuredDocumentation","src":"1246:40:27","text":"@dev The ERC20 `approve` has failed."},"errorSelector":"3e3f8f73","id":11053,"name":"ApproveFailed","nameLocation":"1297:13:27","nodeType":"ErrorDefinition","parameters":{"id":11052,"nodeType":"ParameterList","parameters":[],"src":"1310:2:27"},"src":"1291:22:27"},{"documentation":{"id":11054,"nodeType":"StructuredDocumentation","src":"1319:42:27","text":"@dev The Permit2 operation has failed."},"errorSelector":"6b836e6b","id":11056,"name":"Permit2Failed","nameLocation":"1372:13:27","nodeType":"ErrorDefinition","parameters":{"id":11055,"nodeType":"ParameterList","parameters":[],"src":"1385:2:27"},"src":"1366:22:27"},{"documentation":{"id":11057,"nodeType":"StructuredDocumentation","src":"1394:59:27","text":"@dev The Permit2 amount must be less than `2**160 - 1`."},"errorSelector":"8757f0fd","id":11059,"name":"Permit2AmountOverflow","nameLocation":"1464:21:27","nodeType":"ErrorDefinition","parameters":{"id":11058,"nodeType":"ParameterList","parameters":[],"src":"1485:2:27"},"src":"1458:30:27"},{"constant":true,"documentation":{"id":11060,"nodeType":"StructuredDocumentation","src":"1777:92:27","text":"@dev Suggested gas stipend for contract receiving ETH that disallows any storage writes."},"id":11063,"mutability":"constant","name":"GAS_STIPEND_NO_STORAGE_WRITES","nameLocation":"1900:29:27","nodeType":"VariableDeclaration","scope":11372,"src":"1874:62:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11061,"name":"uint256","nodeType":"ElementaryTypeName","src":"1874:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32333030","id":11062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1932:4:27","typeDescriptions":{"typeIdentifier":"t_rational_2300_by_1","typeString":"int_const 2300"},"value":"2300"},"visibility":"internal"},{"constant":true,"documentation":{"id":11064,"nodeType":"StructuredDocumentation","src":"1943:144:27","text":"@dev Suggested gas stipend for contract receiving ETH to perform a few\n storage reads and writes, but low enough to prevent griefing."},"id":11067,"mutability":"constant","name":"GAS_STIPEND_NO_GRIEF","nameLocation":"2118:20:27","nodeType":"VariableDeclaration","scope":11372,"src":"2092:55:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11065,"name":"uint256","nodeType":"ElementaryTypeName","src":"2092:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030303030","id":11066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:6:27","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"},"visibility":"internal"},{"constant":true,"documentation":{"id":11068,"nodeType":"StructuredDocumentation","src":"2154:79:27","text":"@dev The unique EIP-712 domain domain separator for the DAI token contract."},"id":11071,"mutability":"constant","name":"DAI_DOMAIN_SEPARATOR","nameLocation":"2264:20:27","nodeType":"VariableDeclaration","scope":11372,"src":"2238:123:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2238:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307864626238636634326531656362303238626533663364626339323265316438373862393633663431316463333838636564353031363031633630663763366637","id":11070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2295:66:27","typeDescriptions":{"typeIdentifier":"t_rational_99383044164297460920199564169379472118763403594000230800569066591923778078455_by_1","typeString":"int_const 9938...(69 digits omitted)...8455"},"value":"0xdbb8cf42e1ecb028be3f3dbc922e1d878b963f411dc388ced501601c60f7c6f7"},"visibility":"internal"},{"constant":true,"documentation":{"id":11072,"nodeType":"StructuredDocumentation","src":"2368:64:27","text":"@dev The address for the WETH9 contract on Ethereum mainnet."},"id":11075,"mutability":"constant","name":"WETH9","nameLocation":"2463:5:27","nodeType":"VariableDeclaration","scope":11372,"src":"2437:76:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11073,"name":"address","nodeType":"ElementaryTypeName","src":"2437:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843303261614133396232323346453844304130653543344632376541443930383343373536436332","id":11074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2471:42:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},"visibility":"internal"},{"constant":true,"documentation":{"id":11076,"nodeType":"StructuredDocumentation","src":"2520:185:27","text":"@dev The canonical Permit2 address.\n [Github](https://github.com/Uniswap/permit2)\n [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)"},"id":11079,"mutability":"constant","name":"PERMIT2","nameLocation":"2736:7:27","nodeType":"VariableDeclaration","scope":11372,"src":"2710:78:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11077,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030323244343733303330463131366444454539463642343361433738424133","id":11078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2746:42:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"visibility":"internal"},{"body":{"id":11088,"nodeType":"Block","src":"4093:280:27","statements":[{"AST":{"nativeSrc":"4155:212:27","nodeType":"YulBlock","src":"4155:212:27","statements":[{"body":{"nativeSrc":"4240:117:27","nodeType":"YulBlock","src":"4240:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4265:4:27","nodeType":"YulLiteral","src":"4265:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4271:10:27","nodeType":"YulLiteral","src":"4271:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"4258:6:27","nodeType":"YulIdentifier","src":"4258:6:27"},"nativeSrc":"4258:24:27","nodeType":"YulFunctionCall","src":"4258:24:27"},"nativeSrc":"4258:24:27","nodeType":"YulExpressionStatement","src":"4258:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4332:4:27","nodeType":"YulLiteral","src":"4332:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4338:4:27","nodeType":"YulLiteral","src":"4338:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4325:6:27","nodeType":"YulIdentifier","src":"4325:6:27"},"nativeSrc":"4325:18:27","nodeType":"YulFunctionCall","src":"4325:18:27"},"nativeSrc":"4325:18:27","nodeType":"YulExpressionStatement","src":"4325:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"4184:3:27","nodeType":"YulIdentifier","src":"4184:3:27"},"nativeSrc":"4184:5:27","nodeType":"YulFunctionCall","src":"4184:5:27"},{"name":"to","nativeSrc":"4191:2:27","nodeType":"YulIdentifier","src":"4191:2:27"},{"name":"amount","nativeSrc":"4195:6:27","nodeType":"YulIdentifier","src":"4195:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4203:8:27","nodeType":"YulIdentifier","src":"4203:8:27"},"nativeSrc":"4203:10:27","nodeType":"YulFunctionCall","src":"4203:10:27"},{"kind":"number","nativeSrc":"4215:4:27","nodeType":"YulLiteral","src":"4215:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4221:8:27","nodeType":"YulIdentifier","src":"4221:8:27"},"nativeSrc":"4221:10:27","nodeType":"YulFunctionCall","src":"4221:10:27"},{"kind":"number","nativeSrc":"4233:4:27","nodeType":"YulLiteral","src":"4233:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"4179:4:27","nodeType":"YulIdentifier","src":"4179:4:27"},"nativeSrc":"4179:59:27","nodeType":"YulFunctionCall","src":"4179:59:27"}],"functionName":{"name":"iszero","nativeSrc":"4172:6:27","nodeType":"YulIdentifier","src":"4172:6:27"},"nativeSrc":"4172:67:27","nodeType":"YulFunctionCall","src":"4172:67:27"},"nativeSrc":"4169:188:27","nodeType":"YulIf","src":"4169:188:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11084,"isOffset":false,"isSlot":false,"src":"4195:6:27","valueSize":1},{"declaration":11082,"isOffset":false,"isSlot":false,"src":"4191:2:27","valueSize":1}],"id":11087,"nodeType":"InlineAssembly","src":"4146:221:27"}]},"documentation":{"id":11080,"nodeType":"StructuredDocumentation","src":"3981:45:27","text":"@dev Sends `amount` (in wei) ETH to `to`."},"id":11089,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferETH","nameLocation":"4040:15:27","nodeType":"FunctionDefinition","parameters":{"id":11085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11082,"mutability":"mutable","name":"to","nameLocation":"4064:2:27","nodeType":"VariableDeclaration","scope":11089,"src":"4056:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11081,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11084,"mutability":"mutable","name":"amount","nameLocation":"4076:6:27","nodeType":"VariableDeclaration","scope":11089,"src":"4068:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11083,"name":"uint256","nodeType":"ElementaryTypeName","src":"4068:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4055:28:27"},"returnParameters":{"id":11086,"nodeType":"ParameterList","parameters":[],"src":"4093:0:27"},"scope":11372,"src":"4031:342:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11096,"nodeType":"Block","src":"4492:357:27","statements":[{"AST":{"nativeSrc":"4554:289:27","nodeType":"YulBlock","src":"4554:289:27","statements":[{"body":{"nativeSrc":"4716:117:27","nodeType":"YulBlock","src":"4716:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4741:4:27","nodeType":"YulLiteral","src":"4741:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4747:10:27","nodeType":"YulLiteral","src":"4747:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"4734:6:27","nodeType":"YulIdentifier","src":"4734:6:27"},"nativeSrc":"4734:24:27","nodeType":"YulFunctionCall","src":"4734:24:27"},"nativeSrc":"4734:24:27","nodeType":"YulExpressionStatement","src":"4734:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4808:4:27","nodeType":"YulLiteral","src":"4808:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4814:4:27","nodeType":"YulLiteral","src":"4814:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4801:6:27","nodeType":"YulIdentifier","src":"4801:6:27"},"nativeSrc":"4801:18:27","nodeType":"YulFunctionCall","src":"4801:18:27"},"nativeSrc":"4801:18:27","nodeType":"YulExpressionStatement","src":"4801:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"4653:3:27","nodeType":"YulIdentifier","src":"4653:3:27"},"nativeSrc":"4653:5:27","nodeType":"YulFunctionCall","src":"4653:5:27"},{"name":"to","nativeSrc":"4660:2:27","nodeType":"YulIdentifier","src":"4660:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"4664:11:27","nodeType":"YulIdentifier","src":"4664:11:27"},"nativeSrc":"4664:13:27","nodeType":"YulFunctionCall","src":"4664:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4679:8:27","nodeType":"YulIdentifier","src":"4679:8:27"},"nativeSrc":"4679:10:27","nodeType":"YulFunctionCall","src":"4679:10:27"},{"kind":"number","nativeSrc":"4691:4:27","nodeType":"YulLiteral","src":"4691:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4697:8:27","nodeType":"YulIdentifier","src":"4697:8:27"},"nativeSrc":"4697:10:27","nodeType":"YulFunctionCall","src":"4697:10:27"},{"kind":"number","nativeSrc":"4709:4:27","nodeType":"YulLiteral","src":"4709:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"4648:4:27","nodeType":"YulIdentifier","src":"4648:4:27"},"nativeSrc":"4648:66:27","nodeType":"YulFunctionCall","src":"4648:66:27"}],"functionName":{"name":"iszero","nativeSrc":"4641:6:27","nodeType":"YulIdentifier","src":"4641:6:27"},"nativeSrc":"4641:74:27","nodeType":"YulFunctionCall","src":"4641:74:27"},"nativeSrc":"4638:195:27","nodeType":"YulIf","src":"4638:195:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11092,"isOffset":false,"isSlot":false,"src":"4660:2:27","valueSize":1}],"id":11095,"nodeType":"InlineAssembly","src":"4545:298:27"}]},"documentation":{"id":11090,"nodeType":"StructuredDocumentation","src":"4379:59:27","text":"@dev Sends all the ETH in the current contract to `to`."},"id":11097,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAllETH","nameLocation":"4452:18:27","nodeType":"FunctionDefinition","parameters":{"id":11093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11092,"mutability":"mutable","name":"to","nameLocation":"4479:2:27","nodeType":"VariableDeclaration","scope":11097,"src":"4471:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11091,"name":"address","nodeType":"ElementaryTypeName","src":"4471:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4470:12:27"},"returnParameters":{"id":11094,"nodeType":"ParameterList","parameters":[],"src":"4492:0:27"},"scope":11372,"src":"4443:406:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11108,"nodeType":"Block","src":"5019:644:27","statements":[{"AST":{"nativeSrc":"5081:576:27","nodeType":"YulBlock","src":"5081:576:27","statements":[{"body":{"nativeSrc":"5124:117:27","nodeType":"YulBlock","src":"5124:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5149:4:27","nodeType":"YulLiteral","src":"5149:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5155:10:27","nodeType":"YulLiteral","src":"5155:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"5142:6:27","nodeType":"YulIdentifier","src":"5142:6:27"},"nativeSrc":"5142:24:27","nodeType":"YulFunctionCall","src":"5142:24:27"},"nativeSrc":"5142:24:27","nodeType":"YulExpressionStatement","src":"5142:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5216:4:27","nodeType":"YulLiteral","src":"5216:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5222:4:27","nodeType":"YulLiteral","src":"5222:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5209:6:27","nodeType":"YulIdentifier","src":"5209:6:27"},"nativeSrc":"5209:18:27","nodeType":"YulFunctionCall","src":"5209:18:27"},"nativeSrc":"5209:18:27","nodeType":"YulExpressionStatement","src":"5209:18:27"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"5101:11:27","nodeType":"YulIdentifier","src":"5101:11:27"},"nativeSrc":"5101:13:27","nodeType":"YulFunctionCall","src":"5101:13:27"},{"name":"amount","nativeSrc":"5116:6:27","nodeType":"YulIdentifier","src":"5116:6:27"}],"functionName":{"name":"lt","nativeSrc":"5098:2:27","nodeType":"YulIdentifier","src":"5098:2:27"},"nativeSrc":"5098:25:27","nodeType":"YulFunctionCall","src":"5098:25:27"},"nativeSrc":"5095:146:27","nodeType":"YulIf","src":"5095:146:27"},{"body":{"nativeSrc":"5330:317:27","nodeType":"YulBlock","src":"5330:317:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5355:4:27","nodeType":"YulLiteral","src":"5355:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"5361:2:27","nodeType":"YulIdentifier","src":"5361:2:27"}],"functionName":{"name":"mstore","nativeSrc":"5348:6:27","nodeType":"YulIdentifier","src":"5348:6:27"},"nativeSrc":"5348:16:27","nodeType":"YulFunctionCall","src":"5348:16:27"},"nativeSrc":"5348:16:27","nodeType":"YulExpressionStatement","src":"5348:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5428:4:27","nodeType":"YulLiteral","src":"5428:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"5434:4:27","nodeType":"YulLiteral","src":"5434:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"5420:7:27","nodeType":"YulIdentifier","src":"5420:7:27"},"nativeSrc":"5420:19:27","nodeType":"YulFunctionCall","src":"5420:19:27"},"nativeSrc":"5420:19:27","nodeType":"YulExpressionStatement","src":"5420:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5484:4:27","nodeType":"YulLiteral","src":"5484:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"5490:4:27","nodeType":"YulLiteral","src":"5490:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"5476:7:27","nodeType":"YulIdentifier","src":"5476:7:27"},"nativeSrc":"5476:19:27","nodeType":"YulFunctionCall","src":"5476:19:27"},"nativeSrc":"5476:19:27","nodeType":"YulExpressionStatement","src":"5476:19:27"},{"body":{"nativeSrc":"5576:34:27","nodeType":"YulBlock","src":"5576:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5585:8:27","nodeType":"YulIdentifier","src":"5585:8:27"},"nativeSrc":"5585:10:27","nodeType":"YulFunctionCall","src":"5585:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5597:8:27","nodeType":"YulIdentifier","src":"5597:8:27"},"nativeSrc":"5597:10:27","nodeType":"YulFunctionCall","src":"5597:10:27"}],"functionName":{"name":"revert","nativeSrc":"5578:6:27","nodeType":"YulIdentifier","src":"5578:6:27"},"nativeSrc":"5578:30:27","nodeType":"YulFunctionCall","src":"5578:30:27"},"nativeSrc":"5578:30:27","nodeType":"YulExpressionStatement","src":"5578:30:27"}]},"condition":{"arguments":[{"arguments":[{"name":"amount","nativeSrc":"5555:6:27","nodeType":"YulIdentifier","src":"5555:6:27"},{"kind":"number","nativeSrc":"5563:4:27","nodeType":"YulLiteral","src":"5563:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"5569:4:27","nodeType":"YulLiteral","src":"5569:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"5548:6:27","nodeType":"YulIdentifier","src":"5548:6:27"},"nativeSrc":"5548:26:27","nodeType":"YulFunctionCall","src":"5548:26:27"}],"functionName":{"name":"iszero","nativeSrc":"5541:6:27","nodeType":"YulIdentifier","src":"5541:6:27"},"nativeSrc":"5541:34:27","nodeType":"YulFunctionCall","src":"5541:34:27"},"nativeSrc":"5538:72:27","nodeType":"YulIf","src":"5538:72:27"}]},"condition":{"arguments":[{"arguments":[{"name":"gasStipend","nativeSrc":"5269:10:27","nodeType":"YulIdentifier","src":"5269:10:27"},{"name":"to","nativeSrc":"5281:2:27","nodeType":"YulIdentifier","src":"5281:2:27"},{"name":"amount","nativeSrc":"5285:6:27","nodeType":"YulIdentifier","src":"5285:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5293:8:27","nodeType":"YulIdentifier","src":"5293:8:27"},"nativeSrc":"5293:10:27","nodeType":"YulFunctionCall","src":"5293:10:27"},{"kind":"number","nativeSrc":"5305:4:27","nodeType":"YulLiteral","src":"5305:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5311:8:27","nodeType":"YulIdentifier","src":"5311:8:27"},"nativeSrc":"5311:10:27","nodeType":"YulFunctionCall","src":"5311:10:27"},{"kind":"number","nativeSrc":"5323:4:27","nodeType":"YulLiteral","src":"5323:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"5264:4:27","nodeType":"YulIdentifier","src":"5264:4:27"},"nativeSrc":"5264:64:27","nodeType":"YulFunctionCall","src":"5264:64:27"}],"functionName":{"name":"iszero","nativeSrc":"5257:6:27","nodeType":"YulIdentifier","src":"5257:6:27"},"nativeSrc":"5257:72:27","nodeType":"YulFunctionCall","src":"5257:72:27"},"nativeSrc":"5254:393:27","nodeType":"YulIf","src":"5254:393:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11102,"isOffset":false,"isSlot":false,"src":"5116:6:27","valueSize":1},{"declaration":11102,"isOffset":false,"isSlot":false,"src":"5285:6:27","valueSize":1},{"declaration":11102,"isOffset":false,"isSlot":false,"src":"5555:6:27","valueSize":1},{"declaration":11104,"isOffset":false,"isSlot":false,"src":"5269:10:27","valueSize":1},{"declaration":11100,"isOffset":false,"isSlot":false,"src":"5281:2:27","valueSize":1},{"declaration":11100,"isOffset":false,"isSlot":false,"src":"5361:2:27","valueSize":1}],"id":11107,"nodeType":"InlineAssembly","src":"5072:585:27"}]},"documentation":{"id":11098,"nodeType":"StructuredDocumentation","src":"4855:72:27","text":"@dev Force sends `amount` (in wei) ETH to `to`, with a `gasStipend`."},"id":11109,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferETH","nameLocation":"4941:20:27","nodeType":"FunctionDefinition","parameters":{"id":11105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11100,"mutability":"mutable","name":"to","nameLocation":"4970:2:27","nodeType":"VariableDeclaration","scope":11109,"src":"4962:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11099,"name":"address","nodeType":"ElementaryTypeName","src":"4962:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11102,"mutability":"mutable","name":"amount","nameLocation":"4982:6:27","nodeType":"VariableDeclaration","scope":11109,"src":"4974:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11101,"name":"uint256","nodeType":"ElementaryTypeName","src":"4974:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11104,"mutability":"mutable","name":"gasStipend","nameLocation":"4998:10:27","nodeType":"VariableDeclaration","scope":11109,"src":"4990:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11103,"name":"uint256","nodeType":"ElementaryTypeName","src":"4990:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4961:48:27"},"returnParameters":{"id":11106,"nodeType":"ParameterList","parameters":[],"src":"5019:0:27"},"scope":11372,"src":"4932:731:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11118,"nodeType":"Block","src":"5834:499:27","statements":[{"AST":{"nativeSrc":"5896:431:27","nodeType":"YulBlock","src":"5896:431:27","statements":[{"body":{"nativeSrc":"5993:324:27","nodeType":"YulBlock","src":"5993:324:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6018:4:27","nodeType":"YulLiteral","src":"6018:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"6024:2:27","nodeType":"YulIdentifier","src":"6024:2:27"}],"functionName":{"name":"mstore","nativeSrc":"6011:6:27","nodeType":"YulIdentifier","src":"6011:6:27"},"nativeSrc":"6011:16:27","nodeType":"YulFunctionCall","src":"6011:16:27"},"nativeSrc":"6011:16:27","nodeType":"YulExpressionStatement","src":"6011:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6091:4:27","nodeType":"YulLiteral","src":"6091:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6097:4:27","nodeType":"YulLiteral","src":"6097:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"6083:7:27","nodeType":"YulIdentifier","src":"6083:7:27"},"nativeSrc":"6083:19:27","nodeType":"YulFunctionCall","src":"6083:19:27"},"nativeSrc":"6083:19:27","nodeType":"YulExpressionStatement","src":"6083:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6147:4:27","nodeType":"YulLiteral","src":"6147:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"6153:4:27","nodeType":"YulLiteral","src":"6153:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"6139:7:27","nodeType":"YulIdentifier","src":"6139:7:27"},"nativeSrc":"6139:19:27","nodeType":"YulFunctionCall","src":"6139:19:27"},"nativeSrc":"6139:19:27","nodeType":"YulExpressionStatement","src":"6139:19:27"},{"body":{"nativeSrc":"6246:34:27","nodeType":"YulBlock","src":"6246:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6255:8:27","nodeType":"YulIdentifier","src":"6255:8:27"},"nativeSrc":"6255:10:27","nodeType":"YulFunctionCall","src":"6255:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6267:8:27","nodeType":"YulIdentifier","src":"6267:8:27"},"nativeSrc":"6267:10:27","nodeType":"YulFunctionCall","src":"6267:10:27"}],"functionName":{"name":"revert","nativeSrc":"6248:6:27","nodeType":"YulIdentifier","src":"6248:6:27"},"nativeSrc":"6248:30:27","nodeType":"YulFunctionCall","src":"6248:30:27"},"nativeSrc":"6248:30:27","nodeType":"YulExpressionStatement","src":"6248:30:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"6218:11:27","nodeType":"YulIdentifier","src":"6218:11:27"},"nativeSrc":"6218:13:27","nodeType":"YulFunctionCall","src":"6218:13:27"},{"kind":"number","nativeSrc":"6233:4:27","nodeType":"YulLiteral","src":"6233:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6239:4:27","nodeType":"YulLiteral","src":"6239:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"6211:6:27","nodeType":"YulIdentifier","src":"6211:6:27"},"nativeSrc":"6211:33:27","nodeType":"YulFunctionCall","src":"6211:33:27"}],"functionName":{"name":"iszero","nativeSrc":"6204:6:27","nodeType":"YulIdentifier","src":"6204:6:27"},"nativeSrc":"6204:41:27","nodeType":"YulFunctionCall","src":"6204:41:27"},"nativeSrc":"6201:79:27","nodeType":"YulIf","src":"6201:79:27"}]},"condition":{"arguments":[{"arguments":[{"name":"gasStipend","nativeSrc":"5925:10:27","nodeType":"YulIdentifier","src":"5925:10:27"},{"name":"to","nativeSrc":"5937:2:27","nodeType":"YulIdentifier","src":"5937:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"5941:11:27","nodeType":"YulIdentifier","src":"5941:11:27"},"nativeSrc":"5941:13:27","nodeType":"YulFunctionCall","src":"5941:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5956:8:27","nodeType":"YulIdentifier","src":"5956:8:27"},"nativeSrc":"5956:10:27","nodeType":"YulFunctionCall","src":"5956:10:27"},{"kind":"number","nativeSrc":"5968:4:27","nodeType":"YulLiteral","src":"5968:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5974:8:27","nodeType":"YulIdentifier","src":"5974:8:27"},"nativeSrc":"5974:10:27","nodeType":"YulFunctionCall","src":"5974:10:27"},{"kind":"number","nativeSrc":"5986:4:27","nodeType":"YulLiteral","src":"5986:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"5920:4:27","nodeType":"YulIdentifier","src":"5920:4:27"},"nativeSrc":"5920:71:27","nodeType":"YulFunctionCall","src":"5920:71:27"}],"functionName":{"name":"iszero","nativeSrc":"5913:6:27","nodeType":"YulIdentifier","src":"5913:6:27"},"nativeSrc":"5913:79:27","nodeType":"YulFunctionCall","src":"5913:79:27"},"nativeSrc":"5910:407:27","nodeType":"YulIf","src":"5910:407:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11114,"isOffset":false,"isSlot":false,"src":"5925:10:27","valueSize":1},{"declaration":11112,"isOffset":false,"isSlot":false,"src":"5937:2:27","valueSize":1},{"declaration":11112,"isOffset":false,"isSlot":false,"src":"6024:2:27","valueSize":1}],"id":11117,"nodeType":"InlineAssembly","src":"5887:440:27"}]},"documentation":{"id":11110,"nodeType":"StructuredDocumentation","src":"5669:86:27","text":"@dev Force sends all the ETH in the current contract to `to`, with a `gasStipend`."},"id":11119,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferAllETH","nameLocation":"5769:23:27","nodeType":"FunctionDefinition","parameters":{"id":11115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11112,"mutability":"mutable","name":"to","nameLocation":"5801:2:27","nodeType":"VariableDeclaration","scope":11119,"src":"5793:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11111,"name":"address","nodeType":"ElementaryTypeName","src":"5793:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11114,"mutability":"mutable","name":"gasStipend","nameLocation":"5813:10:27","nodeType":"VariableDeclaration","scope":11119,"src":"5805:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11113,"name":"uint256","nodeType":"ElementaryTypeName","src":"5805:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5792:32:27"},"returnParameters":{"id":11116,"nodeType":"ParameterList","parameters":[],"src":"5834:0:27"},"scope":11372,"src":"5760:573:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11128,"nodeType":"Block","src":"6491:654:27","statements":[{"AST":{"nativeSrc":"6553:586:27","nodeType":"YulBlock","src":"6553:586:27","statements":[{"body":{"nativeSrc":"6596:117:27","nodeType":"YulBlock","src":"6596:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6621:4:27","nodeType":"YulLiteral","src":"6621:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6627:10:27","nodeType":"YulLiteral","src":"6627:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"6614:6:27","nodeType":"YulIdentifier","src":"6614:6:27"},"nativeSrc":"6614:24:27","nodeType":"YulFunctionCall","src":"6614:24:27"},"nativeSrc":"6614:24:27","nodeType":"YulExpressionStatement","src":"6614:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6688:4:27","nodeType":"YulLiteral","src":"6688:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6694:4:27","nodeType":"YulLiteral","src":"6694:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6681:6:27","nodeType":"YulIdentifier","src":"6681:6:27"},"nativeSrc":"6681:18:27","nodeType":"YulFunctionCall","src":"6681:18:27"},"nativeSrc":"6681:18:27","nodeType":"YulExpressionStatement","src":"6681:18:27"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"6573:11:27","nodeType":"YulIdentifier","src":"6573:11:27"},"nativeSrc":"6573:13:27","nodeType":"YulFunctionCall","src":"6573:13:27"},{"name":"amount","nativeSrc":"6588:6:27","nodeType":"YulIdentifier","src":"6588:6:27"}],"functionName":{"name":"lt","nativeSrc":"6570:2:27","nodeType":"YulIdentifier","src":"6570:2:27"},"nativeSrc":"6570:25:27","nodeType":"YulFunctionCall","src":"6570:25:27"},"nativeSrc":"6567:146:27","nodeType":"YulIf","src":"6567:146:27"},{"body":{"nativeSrc":"6812:317:27","nodeType":"YulBlock","src":"6812:317:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6837:4:27","nodeType":"YulLiteral","src":"6837:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"6843:2:27","nodeType":"YulIdentifier","src":"6843:2:27"}],"functionName":{"name":"mstore","nativeSrc":"6830:6:27","nodeType":"YulIdentifier","src":"6830:6:27"},"nativeSrc":"6830:16:27","nodeType":"YulFunctionCall","src":"6830:16:27"},"nativeSrc":"6830:16:27","nodeType":"YulExpressionStatement","src":"6830:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6910:4:27","nodeType":"YulLiteral","src":"6910:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6916:4:27","nodeType":"YulLiteral","src":"6916:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"6902:7:27","nodeType":"YulIdentifier","src":"6902:7:27"},"nativeSrc":"6902:19:27","nodeType":"YulFunctionCall","src":"6902:19:27"},"nativeSrc":"6902:19:27","nodeType":"YulExpressionStatement","src":"6902:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6966:4:27","nodeType":"YulLiteral","src":"6966:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"6972:4:27","nodeType":"YulLiteral","src":"6972:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"6958:7:27","nodeType":"YulIdentifier","src":"6958:7:27"},"nativeSrc":"6958:19:27","nodeType":"YulFunctionCall","src":"6958:19:27"},"nativeSrc":"6958:19:27","nodeType":"YulExpressionStatement","src":"6958:19:27"},{"body":{"nativeSrc":"7058:34:27","nodeType":"YulBlock","src":"7058:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7067:8:27","nodeType":"YulIdentifier","src":"7067:8:27"},"nativeSrc":"7067:10:27","nodeType":"YulFunctionCall","src":"7067:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7079:8:27","nodeType":"YulIdentifier","src":"7079:8:27"},"nativeSrc":"7079:10:27","nodeType":"YulFunctionCall","src":"7079:10:27"}],"functionName":{"name":"revert","nativeSrc":"7060:6:27","nodeType":"YulIdentifier","src":"7060:6:27"},"nativeSrc":"7060:30:27","nodeType":"YulFunctionCall","src":"7060:30:27"},"nativeSrc":"7060:30:27","nodeType":"YulExpressionStatement","src":"7060:30:27"}]},"condition":{"arguments":[{"arguments":[{"name":"amount","nativeSrc":"7037:6:27","nodeType":"YulIdentifier","src":"7037:6:27"},{"kind":"number","nativeSrc":"7045:4:27","nodeType":"YulLiteral","src":"7045:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7051:4:27","nodeType":"YulLiteral","src":"7051:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"7030:6:27","nodeType":"YulIdentifier","src":"7030:6:27"},"nativeSrc":"7030:26:27","nodeType":"YulFunctionCall","src":"7030:26:27"}],"functionName":{"name":"iszero","nativeSrc":"7023:6:27","nodeType":"YulIdentifier","src":"7023:6:27"},"nativeSrc":"7023:34:27","nodeType":"YulFunctionCall","src":"7023:34:27"},"nativeSrc":"7020:72:27","nodeType":"YulIf","src":"7020:72:27"}]},"condition":{"arguments":[{"arguments":[{"name":"GAS_STIPEND_NO_GRIEF","nativeSrc":"6741:20:27","nodeType":"YulIdentifier","src":"6741:20:27"},{"name":"to","nativeSrc":"6763:2:27","nodeType":"YulIdentifier","src":"6763:2:27"},{"name":"amount","nativeSrc":"6767:6:27","nodeType":"YulIdentifier","src":"6767:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6775:8:27","nodeType":"YulIdentifier","src":"6775:8:27"},"nativeSrc":"6775:10:27","nodeType":"YulFunctionCall","src":"6775:10:27"},{"kind":"number","nativeSrc":"6787:4:27","nodeType":"YulLiteral","src":"6787:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6793:8:27","nodeType":"YulIdentifier","src":"6793:8:27"},"nativeSrc":"6793:10:27","nodeType":"YulFunctionCall","src":"6793:10:27"},{"kind":"number","nativeSrc":"6805:4:27","nodeType":"YulLiteral","src":"6805:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"6736:4:27","nodeType":"YulIdentifier","src":"6736:4:27"},"nativeSrc":"6736:74:27","nodeType":"YulFunctionCall","src":"6736:74:27"}],"functionName":{"name":"iszero","nativeSrc":"6729:6:27","nodeType":"YulIdentifier","src":"6729:6:27"},"nativeSrc":"6729:82:27","nodeType":"YulFunctionCall","src":"6729:82:27"},"nativeSrc":"6726:403:27","nodeType":"YulIf","src":"6726:403:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11067,"isOffset":false,"isSlot":false,"src":"6741:20:27","valueSize":1},{"declaration":11124,"isOffset":false,"isSlot":false,"src":"6588:6:27","valueSize":1},{"declaration":11124,"isOffset":false,"isSlot":false,"src":"6767:6:27","valueSize":1},{"declaration":11124,"isOffset":false,"isSlot":false,"src":"7037:6:27","valueSize":1},{"declaration":11122,"isOffset":false,"isSlot":false,"src":"6763:2:27","valueSize":1},{"declaration":11122,"isOffset":false,"isSlot":false,"src":"6843:2:27","valueSize":1}],"id":11127,"nodeType":"InlineAssembly","src":"6544:595:27"}]},"documentation":{"id":11120,"nodeType":"StructuredDocumentation","src":"6339:80:27","text":"@dev Force sends `amount` (in wei) ETH to `to`, with `GAS_STIPEND_NO_GRIEF`."},"id":11129,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferETH","nameLocation":"6433:20:27","nodeType":"FunctionDefinition","parameters":{"id":11125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11122,"mutability":"mutable","name":"to","nameLocation":"6462:2:27","nodeType":"VariableDeclaration","scope":11129,"src":"6454:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11121,"name":"address","nodeType":"ElementaryTypeName","src":"6454:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11124,"mutability":"mutable","name":"amount","nameLocation":"6474:6:27","nodeType":"VariableDeclaration","scope":11129,"src":"6466:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11123,"name":"uint256","nodeType":"ElementaryTypeName","src":"6466:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6453:28:27"},"returnParameters":{"id":11126,"nodeType":"ParameterList","parameters":[],"src":"6491:0:27"},"scope":11372,"src":"6424:721:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11136,"nodeType":"Block","src":"7304:552:27","statements":[{"AST":{"nativeSrc":"7366:484:27","nodeType":"YulBlock","src":"7366:484:27","statements":[{"body":{"nativeSrc":"7516:324:27","nodeType":"YulBlock","src":"7516:324:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7541:4:27","nodeType":"YulLiteral","src":"7541:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"7547:2:27","nodeType":"YulIdentifier","src":"7547:2:27"}],"functionName":{"name":"mstore","nativeSrc":"7534:6:27","nodeType":"YulIdentifier","src":"7534:6:27"},"nativeSrc":"7534:16:27","nodeType":"YulFunctionCall","src":"7534:16:27"},"nativeSrc":"7534:16:27","nodeType":"YulExpressionStatement","src":"7534:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7614:4:27","nodeType":"YulLiteral","src":"7614:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7620:4:27","nodeType":"YulLiteral","src":"7620:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"7606:7:27","nodeType":"YulIdentifier","src":"7606:7:27"},"nativeSrc":"7606:19:27","nodeType":"YulFunctionCall","src":"7606:19:27"},"nativeSrc":"7606:19:27","nodeType":"YulExpressionStatement","src":"7606:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7670:4:27","nodeType":"YulLiteral","src":"7670:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"7676:4:27","nodeType":"YulLiteral","src":"7676:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"7662:7:27","nodeType":"YulIdentifier","src":"7662:7:27"},"nativeSrc":"7662:19:27","nodeType":"YulFunctionCall","src":"7662:19:27"},"nativeSrc":"7662:19:27","nodeType":"YulExpressionStatement","src":"7662:19:27"},{"body":{"nativeSrc":"7769:34:27","nodeType":"YulBlock","src":"7769:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7778:8:27","nodeType":"YulIdentifier","src":"7778:8:27"},"nativeSrc":"7778:10:27","nodeType":"YulFunctionCall","src":"7778:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7790:8:27","nodeType":"YulIdentifier","src":"7790:8:27"},"nativeSrc":"7790:10:27","nodeType":"YulFunctionCall","src":"7790:10:27"}],"functionName":{"name":"revert","nativeSrc":"7771:6:27","nodeType":"YulIdentifier","src":"7771:6:27"},"nativeSrc":"7771:30:27","nodeType":"YulFunctionCall","src":"7771:30:27"},"nativeSrc":"7771:30:27","nodeType":"YulExpressionStatement","src":"7771:30:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"7741:11:27","nodeType":"YulIdentifier","src":"7741:11:27"},"nativeSrc":"7741:13:27","nodeType":"YulFunctionCall","src":"7741:13:27"},{"kind":"number","nativeSrc":"7756:4:27","nodeType":"YulLiteral","src":"7756:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7762:4:27","nodeType":"YulLiteral","src":"7762:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"7734:6:27","nodeType":"YulIdentifier","src":"7734:6:27"},"nativeSrc":"7734:33:27","nodeType":"YulFunctionCall","src":"7734:33:27"}],"functionName":{"name":"iszero","nativeSrc":"7727:6:27","nodeType":"YulIdentifier","src":"7727:6:27"},"nativeSrc":"7727:41:27","nodeType":"YulFunctionCall","src":"7727:41:27"},"nativeSrc":"7724:79:27","nodeType":"YulIf","src":"7724:79:27"}]},"condition":{"arguments":[{"arguments":[{"name":"GAS_STIPEND_NO_GRIEF","nativeSrc":"7438:20:27","nodeType":"YulIdentifier","src":"7438:20:27"},{"name":"to","nativeSrc":"7460:2:27","nodeType":"YulIdentifier","src":"7460:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"7464:11:27","nodeType":"YulIdentifier","src":"7464:11:27"},"nativeSrc":"7464:13:27","nodeType":"YulFunctionCall","src":"7464:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7479:8:27","nodeType":"YulIdentifier","src":"7479:8:27"},"nativeSrc":"7479:10:27","nodeType":"YulFunctionCall","src":"7479:10:27"},{"kind":"number","nativeSrc":"7491:4:27","nodeType":"YulLiteral","src":"7491:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7497:8:27","nodeType":"YulIdentifier","src":"7497:8:27"},"nativeSrc":"7497:10:27","nodeType":"YulFunctionCall","src":"7497:10:27"},{"kind":"number","nativeSrc":"7509:4:27","nodeType":"YulLiteral","src":"7509:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"7433:4:27","nodeType":"YulIdentifier","src":"7433:4:27"},"nativeSrc":"7433:81:27","nodeType":"YulFunctionCall","src":"7433:81:27"}],"functionName":{"name":"iszero","nativeSrc":"7426:6:27","nodeType":"YulIdentifier","src":"7426:6:27"},"nativeSrc":"7426:89:27","nodeType":"YulFunctionCall","src":"7426:89:27"},"nativeSrc":"7423:417:27","nodeType":"YulIf","src":"7423:417:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11067,"isOffset":false,"isSlot":false,"src":"7438:20:27","valueSize":1},{"declaration":11132,"isOffset":false,"isSlot":false,"src":"7460:2:27","valueSize":1},{"declaration":11132,"isOffset":false,"isSlot":false,"src":"7547:2:27","valueSize":1}],"id":11135,"nodeType":"InlineAssembly","src":"7357:493:27"}]},"documentation":{"id":11130,"nodeType":"StructuredDocumentation","src":"7151:94:27","text":"@dev Force sends all the ETH in the current contract to `to`, with `GAS_STIPEND_NO_GRIEF`."},"id":11137,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferAllETH","nameLocation":"7259:23:27","nodeType":"FunctionDefinition","parameters":{"id":11133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11132,"mutability":"mutable","name":"to","nameLocation":"7291:2:27","nodeType":"VariableDeclaration","scope":11137,"src":"7283:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11131,"name":"address","nodeType":"ElementaryTypeName","src":"7283:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7282:12:27"},"returnParameters":{"id":11134,"nodeType":"ParameterList","parameters":[],"src":"7304:0:27"},"scope":11372,"src":"7250:606:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11150,"nodeType":"Block","src":"8061:167:27","statements":[{"AST":{"nativeSrc":"8123:99:27","nodeType":"YulBlock","src":"8123:99:27","statements":[{"nativeSrc":"8137:75:27","nodeType":"YulAssignment","src":"8137:75:27","value":{"arguments":[{"name":"gasStipend","nativeSrc":"8153:10:27","nodeType":"YulIdentifier","src":"8153:10:27"},{"name":"to","nativeSrc":"8165:2:27","nodeType":"YulIdentifier","src":"8165:2:27"},{"name":"amount","nativeSrc":"8169:6:27","nodeType":"YulIdentifier","src":"8169:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8177:8:27","nodeType":"YulIdentifier","src":"8177:8:27"},"nativeSrc":"8177:10:27","nodeType":"YulFunctionCall","src":"8177:10:27"},{"kind":"number","nativeSrc":"8189:4:27","nodeType":"YulLiteral","src":"8189:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8195:8:27","nodeType":"YulIdentifier","src":"8195:8:27"},"nativeSrc":"8195:10:27","nodeType":"YulFunctionCall","src":"8195:10:27"},{"kind":"number","nativeSrc":"8207:4:27","nodeType":"YulLiteral","src":"8207:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"8148:4:27","nodeType":"YulIdentifier","src":"8148:4:27"},"nativeSrc":"8148:64:27","nodeType":"YulFunctionCall","src":"8148:64:27"},"variableNames":[{"name":"success","nativeSrc":"8137:7:27","nodeType":"YulIdentifier","src":"8137:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11142,"isOffset":false,"isSlot":false,"src":"8169:6:27","valueSize":1},{"declaration":11144,"isOffset":false,"isSlot":false,"src":"8153:10:27","valueSize":1},{"declaration":11147,"isOffset":false,"isSlot":false,"src":"8137:7:27","valueSize":1},{"declaration":11140,"isOffset":false,"isSlot":false,"src":"8165:2:27","valueSize":1}],"id":11149,"nodeType":"InlineAssembly","src":"8114:108:27"}]},"documentation":{"id":11138,"nodeType":"StructuredDocumentation","src":"7862:66:27","text":"@dev Sends `amount` (in wei) ETH to `to`, with a `gasStipend`."},"id":11151,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferETH","nameLocation":"7942:18:27","nodeType":"FunctionDefinition","parameters":{"id":11145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11140,"mutability":"mutable","name":"to","nameLocation":"7969:2:27","nodeType":"VariableDeclaration","scope":11151,"src":"7961:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11139,"name":"address","nodeType":"ElementaryTypeName","src":"7961:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"amount","nameLocation":"7981:6:27","nodeType":"VariableDeclaration","scope":11151,"src":"7973:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11141,"name":"uint256","nodeType":"ElementaryTypeName","src":"7973:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11144,"mutability":"mutable","name":"gasStipend","nameLocation":"7997:10:27","nodeType":"VariableDeclaration","scope":11151,"src":"7989:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11143,"name":"uint256","nodeType":"ElementaryTypeName","src":"7989:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7960:48:27"},"returnParameters":{"id":11148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11147,"mutability":"mutable","name":"success","nameLocation":"8048:7:27","nodeType":"VariableDeclaration","scope":11151,"src":"8043:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11146,"name":"bool","nodeType":"ElementaryTypeName","src":"8043:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8042:14:27"},"scope":11372,"src":"7933:295:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11162,"nodeType":"Block","src":"8434:174:27","statements":[{"AST":{"nativeSrc":"8496:106:27","nodeType":"YulBlock","src":"8496:106:27","statements":[{"nativeSrc":"8510:82:27","nodeType":"YulAssignment","src":"8510:82:27","value":{"arguments":[{"name":"gasStipend","nativeSrc":"8526:10:27","nodeType":"YulIdentifier","src":"8526:10:27"},{"name":"to","nativeSrc":"8538:2:27","nodeType":"YulIdentifier","src":"8538:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"8542:11:27","nodeType":"YulIdentifier","src":"8542:11:27"},"nativeSrc":"8542:13:27","nodeType":"YulFunctionCall","src":"8542:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8557:8:27","nodeType":"YulIdentifier","src":"8557:8:27"},"nativeSrc":"8557:10:27","nodeType":"YulFunctionCall","src":"8557:10:27"},{"kind":"number","nativeSrc":"8569:4:27","nodeType":"YulLiteral","src":"8569:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8575:8:27","nodeType":"YulIdentifier","src":"8575:8:27"},"nativeSrc":"8575:10:27","nodeType":"YulFunctionCall","src":"8575:10:27"},{"kind":"number","nativeSrc":"8587:4:27","nodeType":"YulLiteral","src":"8587:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"8521:4:27","nodeType":"YulIdentifier","src":"8521:4:27"},"nativeSrc":"8521:71:27","nodeType":"YulFunctionCall","src":"8521:71:27"},"variableNames":[{"name":"success","nativeSrc":"8510:7:27","nodeType":"YulIdentifier","src":"8510:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11156,"isOffset":false,"isSlot":false,"src":"8526:10:27","valueSize":1},{"declaration":11159,"isOffset":false,"isSlot":false,"src":"8510:7:27","valueSize":1},{"declaration":11154,"isOffset":false,"isSlot":false,"src":"8538:2:27","valueSize":1}],"id":11161,"nodeType":"InlineAssembly","src":"8487:115:27"}]},"documentation":{"id":11152,"nodeType":"StructuredDocumentation","src":"8234:80:27","text":"@dev Sends all the ETH in the current contract to `to`, with a `gasStipend`."},"id":11163,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferAllETH","nameLocation":"8328:21:27","nodeType":"FunctionDefinition","parameters":{"id":11157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11154,"mutability":"mutable","name":"to","nameLocation":"8358:2:27","nodeType":"VariableDeclaration","scope":11163,"src":"8350:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11153,"name":"address","nodeType":"ElementaryTypeName","src":"8350:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11156,"mutability":"mutable","name":"gasStipend","nameLocation":"8370:10:27","nodeType":"VariableDeclaration","scope":11163,"src":"8362:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11155,"name":"uint256","nodeType":"ElementaryTypeName","src":"8362:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8349:32:27"},"returnParameters":{"id":11160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11159,"mutability":"mutable","name":"success","nameLocation":"8421:7:27","nodeType":"VariableDeclaration","scope":11163,"src":"8416:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11158,"name":"bool","nodeType":"ElementaryTypeName","src":"8416:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8415:14:27"},"scope":11372,"src":"8319:289:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11176,"nodeType":"Block","src":"9201:1047:27","statements":[{"AST":{"nativeSrc":"9263:979:27","nodeType":"YulBlock","src":"9263:979:27","statements":[{"nativeSrc":"9277:20:27","nodeType":"YulVariableDeclaration","src":"9277:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"9292:4:27","nodeType":"YulLiteral","src":"9292:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9286:5:27","nodeType":"YulIdentifier","src":"9286:5:27"},"nativeSrc":"9286:11:27","nodeType":"YulFunctionCall","src":"9286:11:27"},"variables":[{"name":"m","nativeSrc":"9281:1:27","nodeType":"YulTypedName","src":"9281:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9351:4:27","nodeType":"YulLiteral","src":"9351:4:27","type":"","value":"0x60"},{"name":"amount","nativeSrc":"9357:6:27","nodeType":"YulIdentifier","src":"9357:6:27"}],"functionName":{"name":"mstore","nativeSrc":"9344:6:27","nodeType":"YulIdentifier","src":"9344:6:27"},"nativeSrc":"9344:20:27","nodeType":"YulFunctionCall","src":"9344:20:27"},"nativeSrc":"9344:20:27","nodeType":"YulExpressionStatement","src":"9344:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9416:4:27","nodeType":"YulLiteral","src":"9416:4:27","type":"","value":"0x40"},{"name":"to","nativeSrc":"9422:2:27","nodeType":"YulIdentifier","src":"9422:2:27"}],"functionName":{"name":"mstore","nativeSrc":"9409:6:27","nodeType":"YulIdentifier","src":"9409:6:27"},"nativeSrc":"9409:16:27","nodeType":"YulFunctionCall","src":"9409:16:27"},"nativeSrc":"9409:16:27","nodeType":"YulExpressionStatement","src":"9409:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9473:4:27","nodeType":"YulLiteral","src":"9473:4:27","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"9483:2:27","nodeType":"YulLiteral","src":"9483:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"9487:4:27","nodeType":"YulIdentifier","src":"9487:4:27"}],"functionName":{"name":"shl","nativeSrc":"9479:3:27","nodeType":"YulIdentifier","src":"9479:3:27"},"nativeSrc":"9479:13:27","nodeType":"YulFunctionCall","src":"9479:13:27"}],"functionName":{"name":"mstore","nativeSrc":"9466:6:27","nodeType":"YulIdentifier","src":"9466:6:27"},"nativeSrc":"9466:27:27","nodeType":"YulFunctionCall","src":"9466:27:27"},"nativeSrc":"9466:27:27","nodeType":"YulExpressionStatement","src":"9466:27:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9543:4:27","nodeType":"YulLiteral","src":"9543:4:27","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9549:34:27","nodeType":"YulLiteral","src":"9549:34:27","type":"","value":"0x23b872dd000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"9536:6:27","nodeType":"YulIdentifier","src":"9536:6:27"},"nativeSrc":"9536:48:27","nodeType":"YulFunctionCall","src":"9536:48:27"},"nativeSrc":"9536:48:27","nodeType":"YulExpressionStatement","src":"9536:48:27"},{"body":{"nativeSrc":"9988:118:27","nodeType":"YulBlock","src":"9988:118:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10013:4:27","nodeType":"YulLiteral","src":"10013:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10019:10:27","nodeType":"YulLiteral","src":"10019:10:27","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"10006:6:27","nodeType":"YulIdentifier","src":"10006:6:27"},"nativeSrc":"10006:24:27","nodeType":"YulFunctionCall","src":"10006:24:27"},"nativeSrc":"10006:24:27","nodeType":"YulExpressionStatement","src":"10006:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10081:4:27","nodeType":"YulLiteral","src":"10081:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10087:4:27","nodeType":"YulLiteral","src":"10087:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10074:6:27","nodeType":"YulIdentifier","src":"10074:6:27"},"nativeSrc":"10074:18:27","nodeType":"YulFunctionCall","src":"10074:18:27"},"nativeSrc":"10074:18:27","nodeType":"YulExpressionStatement","src":"10074:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9826:4:27","nodeType":"YulLiteral","src":"9826:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"9820:5:27","nodeType":"YulIdentifier","src":"9820:5:27"},"nativeSrc":"9820:11:27","nodeType":"YulFunctionCall","src":"9820:11:27"},{"kind":"number","nativeSrc":"9833:1:27","nodeType":"YulLiteral","src":"9833:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"9817:2:27","nodeType":"YulIdentifier","src":"9817:2:27"},"nativeSrc":"9817:18:27","nodeType":"YulFunctionCall","src":"9817:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"9844:14:27","nodeType":"YulIdentifier","src":"9844:14:27"},"nativeSrc":"9844:16:27","nodeType":"YulFunctionCall","src":"9844:16:27"}],"functionName":{"name":"iszero","nativeSrc":"9837:6:27","nodeType":"YulIdentifier","src":"9837:6:27"},"nativeSrc":"9837:24:27","nodeType":"YulFunctionCall","src":"9837:24:27"}],"functionName":{"name":"or","nativeSrc":"9814:2:27","nodeType":"YulIdentifier","src":"9814:2:27"},"nativeSrc":"9814:48:27","nodeType":"YulFunctionCall","src":"9814:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"9915:3:27","nodeType":"YulIdentifier","src":"9915:3:27"},"nativeSrc":"9915:5:27","nodeType":"YulFunctionCall","src":"9915:5:27"},{"name":"token","nativeSrc":"9922:5:27","nodeType":"YulIdentifier","src":"9922:5:27"},{"kind":"number","nativeSrc":"9929:1:27","nodeType":"YulLiteral","src":"9929:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"9932:4:27","nodeType":"YulLiteral","src":"9932:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"9938:4:27","nodeType":"YulLiteral","src":"9938:4:27","type":"","value":"0x64"},{"kind":"number","nativeSrc":"9944:4:27","nodeType":"YulLiteral","src":"9944:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9950:4:27","nodeType":"YulLiteral","src":"9950:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"9910:4:27","nodeType":"YulIdentifier","src":"9910:4:27"},"nativeSrc":"9910:45:27","nodeType":"YulFunctionCall","src":"9910:45:27"}],"functionName":{"name":"and","nativeSrc":"9729:3:27","nodeType":"YulIdentifier","src":"9729:3:27"},"nativeSrc":"9729:244:27","nodeType":"YulFunctionCall","src":"9729:244:27"}],"functionName":{"name":"iszero","nativeSrc":"9705:6:27","nodeType":"YulIdentifier","src":"9705:6:27"},"nativeSrc":"9705:282:27","nodeType":"YulFunctionCall","src":"9705:282:27"},"nativeSrc":"9702:404:27","nodeType":"YulIf","src":"9702:404:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10126:4:27","nodeType":"YulLiteral","src":"10126:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"10132:1:27","nodeType":"YulLiteral","src":"10132:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10119:6:27","nodeType":"YulIdentifier","src":"10119:6:27"},"nativeSrc":"10119:15:27","nodeType":"YulFunctionCall","src":"10119:15:27"},"nativeSrc":"10119:15:27","nodeType":"YulExpressionStatement","src":"10119:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10188:4:27","nodeType":"YulLiteral","src":"10188:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"10194:1:27","nodeType":"YulIdentifier","src":"10194:1:27"}],"functionName":{"name":"mstore","nativeSrc":"10181:6:27","nodeType":"YulIdentifier","src":"10181:6:27"},"nativeSrc":"10181:15:27","nodeType":"YulFunctionCall","src":"10181:15:27"},"nativeSrc":"10181:15:27","nodeType":"YulExpressionStatement","src":"10181:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11172,"isOffset":false,"isSlot":false,"src":"9357:6:27","valueSize":1},{"declaration":11168,"isOffset":false,"isSlot":false,"src":"9487:4:27","valueSize":1},{"declaration":11170,"isOffset":false,"isSlot":false,"src":"9422:2:27","valueSize":1},{"declaration":11166,"isOffset":false,"isSlot":false,"src":"9922:5:27","valueSize":1}],"id":11175,"nodeType":"InlineAssembly","src":"9254:988:27"}]},"documentation":{"id":11164,"nodeType":"StructuredDocumentation","src":"8897:207:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n Reverts upon failure.\n The `from` account must have at least `amount` approved for\n the current contract to manage."},"id":11177,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"9118:16:27","nodeType":"FunctionDefinition","parameters":{"id":11173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11166,"mutability":"mutable","name":"token","nameLocation":"9143:5:27","nodeType":"VariableDeclaration","scope":11177,"src":"9135:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11165,"name":"address","nodeType":"ElementaryTypeName","src":"9135:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11168,"mutability":"mutable","name":"from","nameLocation":"9158:4:27","nodeType":"VariableDeclaration","scope":11177,"src":"9150:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11167,"name":"address","nodeType":"ElementaryTypeName","src":"9150:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11170,"mutability":"mutable","name":"to","nameLocation":"9172:2:27","nodeType":"VariableDeclaration","scope":11177,"src":"9164:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"9164:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11172,"mutability":"mutable","name":"amount","nameLocation":"9184:6:27","nodeType":"VariableDeclaration","scope":11177,"src":"9176:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11171,"name":"uint256","nodeType":"ElementaryTypeName","src":"9176:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9134:57:27"},"returnParameters":{"id":11174,"nodeType":"ParameterList","parameters":[],"src":"9201:0:27"},"scope":11372,"src":"9109:1139:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11192,"nodeType":"Block","src":"10566:853:27","statements":[{"AST":{"nativeSrc":"10628:785:27","nodeType":"YulBlock","src":"10628:785:27","statements":[{"nativeSrc":"10642:20:27","nodeType":"YulVariableDeclaration","src":"10642:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"10657:4:27","nodeType":"YulLiteral","src":"10657:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10651:5:27","nodeType":"YulIdentifier","src":"10651:5:27"},"nativeSrc":"10651:11:27","nodeType":"YulFunctionCall","src":"10651:11:27"},"variables":[{"name":"m","nativeSrc":"10646:1:27","nodeType":"YulTypedName","src":"10646:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10716:4:27","nodeType":"YulLiteral","src":"10716:4:27","type":"","value":"0x60"},{"name":"amount","nativeSrc":"10722:6:27","nodeType":"YulIdentifier","src":"10722:6:27"}],"functionName":{"name":"mstore","nativeSrc":"10709:6:27","nodeType":"YulIdentifier","src":"10709:6:27"},"nativeSrc":"10709:20:27","nodeType":"YulFunctionCall","src":"10709:20:27"},"nativeSrc":"10709:20:27","nodeType":"YulExpressionStatement","src":"10709:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10781:4:27","nodeType":"YulLiteral","src":"10781:4:27","type":"","value":"0x40"},{"name":"to","nativeSrc":"10787:2:27","nodeType":"YulIdentifier","src":"10787:2:27"}],"functionName":{"name":"mstore","nativeSrc":"10774:6:27","nodeType":"YulIdentifier","src":"10774:6:27"},"nativeSrc":"10774:16:27","nodeType":"YulFunctionCall","src":"10774:16:27"},"nativeSrc":"10774:16:27","nodeType":"YulExpressionStatement","src":"10774:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10838:4:27","nodeType":"YulLiteral","src":"10838:4:27","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"10848:2:27","nodeType":"YulLiteral","src":"10848:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"10852:4:27","nodeType":"YulIdentifier","src":"10852:4:27"}],"functionName":{"name":"shl","nativeSrc":"10844:3:27","nodeType":"YulIdentifier","src":"10844:3:27"},"nativeSrc":"10844:13:27","nodeType":"YulFunctionCall","src":"10844:13:27"}],"functionName":{"name":"mstore","nativeSrc":"10831:6:27","nodeType":"YulIdentifier","src":"10831:6:27"},"nativeSrc":"10831:27:27","nodeType":"YulFunctionCall","src":"10831:27:27"},"nativeSrc":"10831:27:27","nodeType":"YulExpressionStatement","src":"10831:27:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10908:4:27","nodeType":"YulLiteral","src":"10908:4:27","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10914:34:27","nodeType":"YulLiteral","src":"10914:34:27","type":"","value":"0x23b872dd000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"10901:6:27","nodeType":"YulIdentifier","src":"10901:6:27"},"nativeSrc":"10901:48:27","nodeType":"YulFunctionCall","src":"10901:48:27"},"nativeSrc":"10901:48:27","nodeType":"YulExpressionStatement","src":"10901:48:27"},{"nativeSrc":"11006:271:27","nodeType":"YulAssignment","src":"11006:271:27","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11130:4:27","nodeType":"YulLiteral","src":"11130:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"11124:5:27","nodeType":"YulIdentifier","src":"11124:5:27"},"nativeSrc":"11124:11:27","nodeType":"YulFunctionCall","src":"11124:11:27"},{"kind":"number","nativeSrc":"11137:1:27","nodeType":"YulLiteral","src":"11137:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"11121:2:27","nodeType":"YulIdentifier","src":"11121:2:27"},"nativeSrc":"11121:18:27","nodeType":"YulFunctionCall","src":"11121:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"11148:14:27","nodeType":"YulIdentifier","src":"11148:14:27"},"nativeSrc":"11148:16:27","nodeType":"YulFunctionCall","src":"11148:16:27"}],"functionName":{"name":"iszero","nativeSrc":"11141:6:27","nodeType":"YulIdentifier","src":"11141:6:27"},"nativeSrc":"11141:24:27","nodeType":"YulFunctionCall","src":"11141:24:27"}],"functionName":{"name":"or","nativeSrc":"11118:2:27","nodeType":"YulIdentifier","src":"11118:2:27"},"nativeSrc":"11118:48:27","nodeType":"YulFunctionCall","src":"11118:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"11219:3:27","nodeType":"YulIdentifier","src":"11219:3:27"},"nativeSrc":"11219:5:27","nodeType":"YulFunctionCall","src":"11219:5:27"},{"name":"token","nativeSrc":"11226:5:27","nodeType":"YulIdentifier","src":"11226:5:27"},{"kind":"number","nativeSrc":"11233:1:27","nodeType":"YulLiteral","src":"11233:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"11236:4:27","nodeType":"YulLiteral","src":"11236:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11242:4:27","nodeType":"YulLiteral","src":"11242:4:27","type":"","value":"0x64"},{"kind":"number","nativeSrc":"11248:4:27","nodeType":"YulLiteral","src":"11248:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11254:4:27","nodeType":"YulLiteral","src":"11254:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"11214:4:27","nodeType":"YulIdentifier","src":"11214:4:27"},"nativeSrc":"11214:45:27","nodeType":"YulFunctionCall","src":"11214:45:27"}],"functionName":{"name":"and","nativeSrc":"11033:3:27","nodeType":"YulIdentifier","src":"11033:3:27"},"nativeSrc":"11033:244:27","nodeType":"YulFunctionCall","src":"11033:244:27"},"variableNames":[{"name":"success","nativeSrc":"11006:7:27","nodeType":"YulIdentifier","src":"11006:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11297:4:27","nodeType":"YulLiteral","src":"11297:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"11303:1:27","nodeType":"YulLiteral","src":"11303:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11290:6:27","nodeType":"YulIdentifier","src":"11290:6:27"},"nativeSrc":"11290:15:27","nodeType":"YulFunctionCall","src":"11290:15:27"},"nativeSrc":"11290:15:27","nodeType":"YulExpressionStatement","src":"11290:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11359:4:27","nodeType":"YulLiteral","src":"11359:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"11365:1:27","nodeType":"YulIdentifier","src":"11365:1:27"}],"functionName":{"name":"mstore","nativeSrc":"11352:6:27","nodeType":"YulIdentifier","src":"11352:6:27"},"nativeSrc":"11352:15:27","nodeType":"YulFunctionCall","src":"11352:15:27"},"nativeSrc":"11352:15:27","nodeType":"YulExpressionStatement","src":"11352:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11186,"isOffset":false,"isSlot":false,"src":"10722:6:27","valueSize":1},{"declaration":11182,"isOffset":false,"isSlot":false,"src":"10852:4:27","valueSize":1},{"declaration":11189,"isOffset":false,"isSlot":false,"src":"11006:7:27","valueSize":1},{"declaration":11184,"isOffset":false,"isSlot":false,"src":"10787:2:27","valueSize":1},{"declaration":11180,"isOffset":false,"isSlot":false,"src":"11226:5:27","valueSize":1}],"id":11191,"nodeType":"InlineAssembly","src":"10619:794:27"}]},"documentation":{"id":11178,"nodeType":"StructuredDocumentation","src":"10254:169:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n The `from` account must have at least `amount` approved for the current contract to manage."},"id":11193,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferFrom","nameLocation":"10437:19:27","nodeType":"FunctionDefinition","parameters":{"id":11187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11180,"mutability":"mutable","name":"token","nameLocation":"10465:5:27","nodeType":"VariableDeclaration","scope":11193,"src":"10457:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11179,"name":"address","nodeType":"ElementaryTypeName","src":"10457:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11182,"mutability":"mutable","name":"from","nameLocation":"10480:4:27","nodeType":"VariableDeclaration","scope":11193,"src":"10472:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11181,"name":"address","nodeType":"ElementaryTypeName","src":"10472:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11184,"mutability":"mutable","name":"to","nameLocation":"10494:2:27","nodeType":"VariableDeclaration","scope":11193,"src":"10486:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11183,"name":"address","nodeType":"ElementaryTypeName","src":"10486:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11186,"mutability":"mutable","name":"amount","nameLocation":"10506:6:27","nodeType":"VariableDeclaration","scope":11193,"src":"10498:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11185,"name":"uint256","nodeType":"ElementaryTypeName","src":"10498:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10456:57:27"},"returnParameters":{"id":11190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11189,"mutability":"mutable","name":"success","nameLocation":"10553:7:27","nodeType":"VariableDeclaration","scope":11193,"src":"10548:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11188,"name":"bool","nodeType":"ElementaryTypeName","src":"10548:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10547:14:27"},"scope":11372,"src":"10428:991:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11206,"nodeType":"Block","src":"11751:1599:27","statements":[{"AST":{"nativeSrc":"11813:1531:27","nodeType":"YulBlock","src":"11813:1531:27","statements":[{"nativeSrc":"11827:20:27","nodeType":"YulVariableDeclaration","src":"11827:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"11842:4:27","nodeType":"YulLiteral","src":"11842:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11836:5:27","nodeType":"YulIdentifier","src":"11836:5:27"},"nativeSrc":"11836:11:27","nodeType":"YulFunctionCall","src":"11836:11:27"},"variables":[{"name":"m","nativeSrc":"11831:1:27","nodeType":"YulTypedName","src":"11831:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11901:4:27","nodeType":"YulLiteral","src":"11901:4:27","type":"","value":"0x40"},{"name":"to","nativeSrc":"11907:2:27","nodeType":"YulIdentifier","src":"11907:2:27"}],"functionName":{"name":"mstore","nativeSrc":"11894:6:27","nodeType":"YulIdentifier","src":"11894:6:27"},"nativeSrc":"11894:16:27","nodeType":"YulFunctionCall","src":"11894:16:27"},"nativeSrc":"11894:16:27","nodeType":"YulExpressionStatement","src":"11894:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11958:4:27","nodeType":"YulLiteral","src":"11958:4:27","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"11968:2:27","nodeType":"YulLiteral","src":"11968:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"11972:4:27","nodeType":"YulIdentifier","src":"11972:4:27"}],"functionName":{"name":"shl","nativeSrc":"11964:3:27","nodeType":"YulIdentifier","src":"11964:3:27"},"nativeSrc":"11964:13:27","nodeType":"YulFunctionCall","src":"11964:13:27"}],"functionName":{"name":"mstore","nativeSrc":"11951:6:27","nodeType":"YulIdentifier","src":"11951:6:27"},"nativeSrc":"11951:27:27","nodeType":"YulFunctionCall","src":"11951:27:27"},"nativeSrc":"11951:27:27","nodeType":"YulExpressionStatement","src":"11951:27:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12028:4:27","nodeType":"YulLiteral","src":"12028:4:27","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12034:34:27","nodeType":"YulLiteral","src":"12034:34:27","type":"","value":"0x70a08231000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"12021:6:27","nodeType":"YulIdentifier","src":"12021:6:27"},"nativeSrc":"12021:48:27","nodeType":"YulFunctionCall","src":"12021:48:27"},"nativeSrc":"12021:48:27","nodeType":"YulExpressionStatement","src":"12021:48:27"},{"body":{"nativeSrc":"12436:118:27","nodeType":"YulBlock","src":"12436:118:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12461:4:27","nodeType":"YulLiteral","src":"12461:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12467:10:27","nodeType":"YulLiteral","src":"12467:10:27","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"12454:6:27","nodeType":"YulIdentifier","src":"12454:6:27"},"nativeSrc":"12454:24:27","nodeType":"YulFunctionCall","src":"12454:24:27"},"nativeSrc":"12454:24:27","nodeType":"YulExpressionStatement","src":"12454:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12529:4:27","nodeType":"YulLiteral","src":"12529:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12535:4:27","nodeType":"YulLiteral","src":"12535:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12522:6:27","nodeType":"YulIdentifier","src":"12522:6:27"},"nativeSrc":"12522:18:27","nodeType":"YulFunctionCall","src":"12522:18:27"},"nativeSrc":"12522:18:27","nodeType":"YulExpressionStatement","src":"12522:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12279:14:27","nodeType":"YulIdentifier","src":"12279:14:27"},"nativeSrc":"12279:16:27","nodeType":"YulFunctionCall","src":"12279:16:27"},{"kind":"number","nativeSrc":"12297:4:27","nodeType":"YulLiteral","src":"12297:4:27","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"12276:2:27","nodeType":"YulIdentifier","src":"12276:2:27"},"nativeSrc":"12276:26:27","nodeType":"YulFunctionCall","src":"12276:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"12366:3:27","nodeType":"YulIdentifier","src":"12366:3:27"},"nativeSrc":"12366:5:27","nodeType":"YulFunctionCall","src":"12366:5:27"},{"name":"token","nativeSrc":"12373:5:27","nodeType":"YulIdentifier","src":"12373:5:27"},{"kind":"number","nativeSrc":"12380:4:27","nodeType":"YulLiteral","src":"12380:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12386:4:27","nodeType":"YulLiteral","src":"12386:4:27","type":"","value":"0x24"},{"kind":"number","nativeSrc":"12392:4:27","nodeType":"YulLiteral","src":"12392:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"12398:4:27","nodeType":"YulLiteral","src":"12398:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"12355:10:27","nodeType":"YulIdentifier","src":"12355:10:27"},"nativeSrc":"12355:48:27","nodeType":"YulFunctionCall","src":"12355:48:27"}],"functionName":{"name":"and","nativeSrc":"12191:3:27","nodeType":"YulIdentifier","src":"12191:3:27"},"nativeSrc":"12191:230:27","nodeType":"YulFunctionCall","src":"12191:230:27"}],"functionName":{"name":"iszero","nativeSrc":"12167:6:27","nodeType":"YulIdentifier","src":"12167:6:27"},"nativeSrc":"12167:268:27","nodeType":"YulFunctionCall","src":"12167:268:27"},"nativeSrc":"12164:390:27","nodeType":"YulIf","src":"12164:390:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12574:4:27","nodeType":"YulLiteral","src":"12574:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12580:10:27","nodeType":"YulLiteral","src":"12580:10:27","type":"","value":"0x23b872dd"}],"functionName":{"name":"mstore","nativeSrc":"12567:6:27","nodeType":"YulIdentifier","src":"12567:6:27"},"nativeSrc":"12567:24:27","nodeType":"YulFunctionCall","src":"12567:24:27"},"nativeSrc":"12567:24:27","nodeType":"YulExpressionStatement","src":"12567:24:27"},{"nativeSrc":"12648:21:27","nodeType":"YulAssignment","src":"12648:21:27","value":{"arguments":[{"kind":"number","nativeSrc":"12664:4:27","nodeType":"YulLiteral","src":"12664:4:27","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"12658:5:27","nodeType":"YulIdentifier","src":"12658:5:27"},"nativeSrc":"12658:11:27","nodeType":"YulFunctionCall","src":"12658:11:27"},"variableNames":[{"name":"amount","nativeSrc":"12648:6:27","nodeType":"YulIdentifier","src":"12648:6:27"}]},{"body":{"nativeSrc":"13090:118:27","nodeType":"YulBlock","src":"13090:118:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13115:4:27","nodeType":"YulLiteral","src":"13115:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13121:10:27","nodeType":"YulLiteral","src":"13121:10:27","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"13108:6:27","nodeType":"YulIdentifier","src":"13108:6:27"},"nativeSrc":"13108:24:27","nodeType":"YulFunctionCall","src":"13108:24:27"},"nativeSrc":"13108:24:27","nodeType":"YulExpressionStatement","src":"13108:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13183:4:27","nodeType":"YulLiteral","src":"13183:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13189:4:27","nodeType":"YulLiteral","src":"13189:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13176:6:27","nodeType":"YulIdentifier","src":"13176:6:27"},"nativeSrc":"13176:18:27","nodeType":"YulFunctionCall","src":"13176:18:27"},"nativeSrc":"13176:18:27","nodeType":"YulExpressionStatement","src":"13176:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12928:4:27","nodeType":"YulLiteral","src":"12928:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"12922:5:27","nodeType":"YulIdentifier","src":"12922:5:27"},"nativeSrc":"12922:11:27","nodeType":"YulFunctionCall","src":"12922:11:27"},{"kind":"number","nativeSrc":"12935:1:27","nodeType":"YulLiteral","src":"12935:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"12919:2:27","nodeType":"YulIdentifier","src":"12919:2:27"},"nativeSrc":"12919:18:27","nodeType":"YulFunctionCall","src":"12919:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12946:14:27","nodeType":"YulIdentifier","src":"12946:14:27"},"nativeSrc":"12946:16:27","nodeType":"YulFunctionCall","src":"12946:16:27"}],"functionName":{"name":"iszero","nativeSrc":"12939:6:27","nodeType":"YulIdentifier","src":"12939:6:27"},"nativeSrc":"12939:24:27","nodeType":"YulFunctionCall","src":"12939:24:27"}],"functionName":{"name":"or","nativeSrc":"12916:2:27","nodeType":"YulIdentifier","src":"12916:2:27"},"nativeSrc":"12916:48:27","nodeType":"YulFunctionCall","src":"12916:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"13017:3:27","nodeType":"YulIdentifier","src":"13017:3:27"},"nativeSrc":"13017:5:27","nodeType":"YulFunctionCall","src":"13017:5:27"},{"name":"token","nativeSrc":"13024:5:27","nodeType":"YulIdentifier","src":"13024:5:27"},{"kind":"number","nativeSrc":"13031:1:27","nodeType":"YulLiteral","src":"13031:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"13034:4:27","nodeType":"YulLiteral","src":"13034:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13040:4:27","nodeType":"YulLiteral","src":"13040:4:27","type":"","value":"0x64"},{"kind":"number","nativeSrc":"13046:4:27","nodeType":"YulLiteral","src":"13046:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13052:4:27","nodeType":"YulLiteral","src":"13052:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"13012:4:27","nodeType":"YulIdentifier","src":"13012:4:27"},"nativeSrc":"13012:45:27","nodeType":"YulFunctionCall","src":"13012:45:27"}],"functionName":{"name":"and","nativeSrc":"12831:3:27","nodeType":"YulIdentifier","src":"12831:3:27"},"nativeSrc":"12831:244:27","nodeType":"YulFunctionCall","src":"12831:244:27"}],"functionName":{"name":"iszero","nativeSrc":"12807:6:27","nodeType":"YulIdentifier","src":"12807:6:27"},"nativeSrc":"12807:282:27","nodeType":"YulFunctionCall","src":"12807:282:27"},"nativeSrc":"12804:404:27","nodeType":"YulIf","src":"12804:404:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13228:4:27","nodeType":"YulLiteral","src":"13228:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"13234:1:27","nodeType":"YulLiteral","src":"13234:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13221:6:27","nodeType":"YulIdentifier","src":"13221:6:27"},"nativeSrc":"13221:15:27","nodeType":"YulFunctionCall","src":"13221:15:27"},"nativeSrc":"13221:15:27","nodeType":"YulExpressionStatement","src":"13221:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13290:4:27","nodeType":"YulLiteral","src":"13290:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"13296:1:27","nodeType":"YulIdentifier","src":"13296:1:27"}],"functionName":{"name":"mstore","nativeSrc":"13283:6:27","nodeType":"YulIdentifier","src":"13283:6:27"},"nativeSrc":"13283:15:27","nodeType":"YulFunctionCall","src":"13283:15:27"},"nativeSrc":"13283:15:27","nodeType":"YulExpressionStatement","src":"13283:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11203,"isOffset":false,"isSlot":false,"src":"12648:6:27","valueSize":1},{"declaration":11198,"isOffset":false,"isSlot":false,"src":"11972:4:27","valueSize":1},{"declaration":11200,"isOffset":false,"isSlot":false,"src":"11907:2:27","valueSize":1},{"declaration":11196,"isOffset":false,"isSlot":false,"src":"12373:5:27","valueSize":1},{"declaration":11196,"isOffset":false,"isSlot":false,"src":"13024:5:27","valueSize":1}],"id":11205,"nodeType":"InlineAssembly","src":"11804:1540:27"}]},"documentation":{"id":11194,"nodeType":"StructuredDocumentation","src":"11425:197:27","text":"@dev Sends all of ERC20 `token` from `from` to `to`.\n Reverts upon failure.\n The `from` account must have their entire balance approved for the current contract to manage."},"id":11207,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAllFrom","nameLocation":"11636:19:27","nodeType":"FunctionDefinition","parameters":{"id":11201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11196,"mutability":"mutable","name":"token","nameLocation":"11664:5:27","nodeType":"VariableDeclaration","scope":11207,"src":"11656:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11195,"name":"address","nodeType":"ElementaryTypeName","src":"11656:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11198,"mutability":"mutable","name":"from","nameLocation":"11679:4:27","nodeType":"VariableDeclaration","scope":11207,"src":"11671:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11197,"name":"address","nodeType":"ElementaryTypeName","src":"11671:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11200,"mutability":"mutable","name":"to","nameLocation":"11693:2:27","nodeType":"VariableDeclaration","scope":11207,"src":"11685:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11199,"name":"address","nodeType":"ElementaryTypeName","src":"11685:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11655:41:27"},"returnParameters":{"id":11204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11203,"mutability":"mutable","name":"amount","nameLocation":"11739:6:27","nodeType":"VariableDeclaration","scope":11207,"src":"11731:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11202,"name":"uint256","nodeType":"ElementaryTypeName","src":"11731:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11730:16:27"},"scope":11372,"src":"11627:1723:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11218,"nodeType":"Block","src":"13540:865:27","statements":[{"AST":{"nativeSrc":"13602:797:27","nodeType":"YulBlock","src":"13602:797:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13623:4:27","nodeType":"YulLiteral","src":"13623:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"13629:2:27","nodeType":"YulIdentifier","src":"13629:2:27"}],"functionName":{"name":"mstore","nativeSrc":"13616:6:27","nodeType":"YulIdentifier","src":"13616:6:27"},"nativeSrc":"13616:16:27","nodeType":"YulFunctionCall","src":"13616:16:27"},"nativeSrc":"13616:16:27","nodeType":"YulExpressionStatement","src":"13616:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13680:4:27","nodeType":"YulLiteral","src":"13680:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"13686:6:27","nodeType":"YulIdentifier","src":"13686:6:27"}],"functionName":{"name":"mstore","nativeSrc":"13673:6:27","nodeType":"YulIdentifier","src":"13673:6:27"},"nativeSrc":"13673:20:27","nodeType":"YulFunctionCall","src":"13673:20:27"},"nativeSrc":"13673:20:27","nodeType":"YulExpressionStatement","src":"13673:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13745:4:27","nodeType":"YulLiteral","src":"13745:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13751:34:27","nodeType":"YulLiteral","src":"13751:34:27","type":"","value":"0xa9059cbb000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"13738:6:27","nodeType":"YulIdentifier","src":"13738:6:27"},"nativeSrc":"13738:48:27","nodeType":"YulFunctionCall","src":"13738:48:27"},"nativeSrc":"13738:48:27","nodeType":"YulExpressionStatement","src":"13738:48:27"},{"body":{"nativeSrc":"14178:114:27","nodeType":"YulBlock","src":"14178:114:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14203:4:27","nodeType":"YulLiteral","src":"14203:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14209:10:27","nodeType":"YulLiteral","src":"14209:10:27","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"14196:6:27","nodeType":"YulIdentifier","src":"14196:6:27"},"nativeSrc":"14196:24:27","nodeType":"YulFunctionCall","src":"14196:24:27"},"nativeSrc":"14196:24:27","nodeType":"YulExpressionStatement","src":"14196:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14267:4:27","nodeType":"YulLiteral","src":"14267:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14273:4:27","nodeType":"YulLiteral","src":"14273:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"14260:6:27","nodeType":"YulIdentifier","src":"14260:6:27"},"nativeSrc":"14260:18:27","nodeType":"YulFunctionCall","src":"14260:18:27"},"nativeSrc":"14260:18:27","nodeType":"YulExpressionStatement","src":"14260:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14016:4:27","nodeType":"YulLiteral","src":"14016:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"14010:5:27","nodeType":"YulIdentifier","src":"14010:5:27"},"nativeSrc":"14010:11:27","nodeType":"YulFunctionCall","src":"14010:11:27"},{"kind":"number","nativeSrc":"14023:1:27","nodeType":"YulLiteral","src":"14023:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"14007:2:27","nodeType":"YulIdentifier","src":"14007:2:27"},"nativeSrc":"14007:18:27","nodeType":"YulFunctionCall","src":"14007:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"14034:14:27","nodeType":"YulIdentifier","src":"14034:14:27"},"nativeSrc":"14034:16:27","nodeType":"YulFunctionCall","src":"14034:16:27"}],"functionName":{"name":"iszero","nativeSrc":"14027:6:27","nodeType":"YulIdentifier","src":"14027:6:27"},"nativeSrc":"14027:24:27","nodeType":"YulFunctionCall","src":"14027:24:27"}],"functionName":{"name":"or","nativeSrc":"14004:2:27","nodeType":"YulIdentifier","src":"14004:2:27"},"nativeSrc":"14004:48:27","nodeType":"YulFunctionCall","src":"14004:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"14105:3:27","nodeType":"YulIdentifier","src":"14105:3:27"},"nativeSrc":"14105:5:27","nodeType":"YulFunctionCall","src":"14105:5:27"},{"name":"token","nativeSrc":"14112:5:27","nodeType":"YulIdentifier","src":"14112:5:27"},{"kind":"number","nativeSrc":"14119:1:27","nodeType":"YulLiteral","src":"14119:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"14122:4:27","nodeType":"YulLiteral","src":"14122:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"14128:4:27","nodeType":"YulLiteral","src":"14128:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"14134:4:27","nodeType":"YulLiteral","src":"14134:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14140:4:27","nodeType":"YulLiteral","src":"14140:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"14100:4:27","nodeType":"YulIdentifier","src":"14100:4:27"},"nativeSrc":"14100:45:27","nodeType":"YulFunctionCall","src":"14100:45:27"}],"functionName":{"name":"and","nativeSrc":"13919:3:27","nodeType":"YulIdentifier","src":"13919:3:27"},"nativeSrc":"13919:244:27","nodeType":"YulFunctionCall","src":"13919:244:27"}],"functionName":{"name":"iszero","nativeSrc":"13895:6:27","nodeType":"YulIdentifier","src":"13895:6:27"},"nativeSrc":"13895:282:27","nodeType":"YulFunctionCall","src":"13895:282:27"},"nativeSrc":"13892:400:27","nodeType":"YulIf","src":"13892:400:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14312:4:27","nodeType":"YulLiteral","src":"14312:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"14318:1:27","nodeType":"YulLiteral","src":"14318:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14305:6:27","nodeType":"YulIdentifier","src":"14305:6:27"},"nativeSrc":"14305:15:27","nodeType":"YulFunctionCall","src":"14305:15:27"},"nativeSrc":"14305:15:27","nodeType":"YulExpressionStatement","src":"14305:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11214,"isOffset":false,"isSlot":false,"src":"13686:6:27","valueSize":1},{"declaration":11212,"isOffset":false,"isSlot":false,"src":"13629:2:27","valueSize":1},{"declaration":11210,"isOffset":false,"isSlot":false,"src":"14112:5:27","valueSize":1}],"id":11217,"nodeType":"InlineAssembly","src":"13593:806:27"}]},"documentation":{"id":11208,"nodeType":"StructuredDocumentation","src":"13356:105:27","text":"@dev Sends `amount` of ERC20 `token` from the current contract to `to`.\n Reverts upon failure."},"id":11219,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"13475:12:27","nodeType":"FunctionDefinition","parameters":{"id":11215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11210,"mutability":"mutable","name":"token","nameLocation":"13496:5:27","nodeType":"VariableDeclaration","scope":11219,"src":"13488:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11209,"name":"address","nodeType":"ElementaryTypeName","src":"13488:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11212,"mutability":"mutable","name":"to","nameLocation":"13511:2:27","nodeType":"VariableDeclaration","scope":11219,"src":"13503:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11211,"name":"address","nodeType":"ElementaryTypeName","src":"13503:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11214,"mutability":"mutable","name":"amount","nameLocation":"13523:6:27","nodeType":"VariableDeclaration","scope":11219,"src":"13515:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11213,"name":"uint256","nodeType":"ElementaryTypeName","src":"13515:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13487:43:27"},"returnParameters":{"id":11216,"nodeType":"ParameterList","parameters":[],"src":"13540:0:27"},"scope":11372,"src":"13466:939:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11230,"nodeType":"Block","src":"14602:1526:27","statements":[{"AST":{"nativeSrc":"14664:1458:27","nodeType":"YulBlock","src":"14664:1458:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14685:4:27","nodeType":"YulLiteral","src":"14685:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14691:10:27","nodeType":"YulLiteral","src":"14691:10:27","type":"","value":"0x70a08231"}],"functionName":{"name":"mstore","nativeSrc":"14678:6:27","nodeType":"YulIdentifier","src":"14678:6:27"},"nativeSrc":"14678:24:27","nodeType":"YulFunctionCall","src":"14678:24:27"},"nativeSrc":"14678:24:27","nodeType":"YulExpressionStatement","src":"14678:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14778:4:27","nodeType":"YulLiteral","src":"14778:4:27","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"14784:7:27","nodeType":"YulIdentifier","src":"14784:7:27"},"nativeSrc":"14784:9:27","nodeType":"YulFunctionCall","src":"14784:9:27"}],"functionName":{"name":"mstore","nativeSrc":"14771:6:27","nodeType":"YulIdentifier","src":"14771:6:27"},"nativeSrc":"14771:23:27","nodeType":"YulFunctionCall","src":"14771:23:27"},"nativeSrc":"14771:23:27","nodeType":"YulExpressionStatement","src":"14771:23:27"},{"body":{"nativeSrc":"15182:114:27","nodeType":"YulBlock","src":"15182:114:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15207:4:27","nodeType":"YulLiteral","src":"15207:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15213:10:27","nodeType":"YulLiteral","src":"15213:10:27","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"15200:6:27","nodeType":"YulIdentifier","src":"15200:6:27"},"nativeSrc":"15200:24:27","nodeType":"YulFunctionCall","src":"15200:24:27"},"nativeSrc":"15200:24:27","nodeType":"YulExpressionStatement","src":"15200:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15271:4:27","nodeType":"YulLiteral","src":"15271:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15277:4:27","nodeType":"YulLiteral","src":"15277:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15264:6:27","nodeType":"YulIdentifier","src":"15264:6:27"},"nativeSrc":"15264:18:27","nodeType":"YulFunctionCall","src":"15264:18:27"},"nativeSrc":"15264:18:27","nodeType":"YulExpressionStatement","src":"15264:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15025:14:27","nodeType":"YulIdentifier","src":"15025:14:27"},"nativeSrc":"15025:16:27","nodeType":"YulFunctionCall","src":"15025:16:27"},{"kind":"number","nativeSrc":"15043:4:27","nodeType":"YulLiteral","src":"15043:4:27","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"15022:2:27","nodeType":"YulIdentifier","src":"15022:2:27"},"nativeSrc":"15022:26:27","nodeType":"YulFunctionCall","src":"15022:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15112:3:27","nodeType":"YulIdentifier","src":"15112:3:27"},"nativeSrc":"15112:5:27","nodeType":"YulFunctionCall","src":"15112:5:27"},{"name":"token","nativeSrc":"15119:5:27","nodeType":"YulIdentifier","src":"15119:5:27"},{"kind":"number","nativeSrc":"15126:4:27","nodeType":"YulLiteral","src":"15126:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15132:4:27","nodeType":"YulLiteral","src":"15132:4:27","type":"","value":"0x24"},{"kind":"number","nativeSrc":"15138:4:27","nodeType":"YulLiteral","src":"15138:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"15144:4:27","nodeType":"YulLiteral","src":"15144:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15101:10:27","nodeType":"YulIdentifier","src":"15101:10:27"},"nativeSrc":"15101:48:27","nodeType":"YulFunctionCall","src":"15101:48:27"}],"functionName":{"name":"and","nativeSrc":"14937:3:27","nodeType":"YulIdentifier","src":"14937:3:27"},"nativeSrc":"14937:230:27","nodeType":"YulFunctionCall","src":"14937:230:27"}],"functionName":{"name":"iszero","nativeSrc":"14913:6:27","nodeType":"YulIdentifier","src":"14913:6:27"},"nativeSrc":"14913:268:27","nodeType":"YulFunctionCall","src":"14913:268:27"},"nativeSrc":"14910:386:27","nodeType":"YulIf","src":"14910:386:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15316:4:27","nodeType":"YulLiteral","src":"15316:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"15322:2:27","nodeType":"YulIdentifier","src":"15322:2:27"}],"functionName":{"name":"mstore","nativeSrc":"15309:6:27","nodeType":"YulIdentifier","src":"15309:6:27"},"nativeSrc":"15309:16:27","nodeType":"YulFunctionCall","src":"15309:16:27"},"nativeSrc":"15309:16:27","nodeType":"YulExpressionStatement","src":"15309:16:27"},{"nativeSrc":"15366:21:27","nodeType":"YulAssignment","src":"15366:21:27","value":{"arguments":[{"kind":"number","nativeSrc":"15382:4:27","nodeType":"YulLiteral","src":"15382:4:27","type":"","value":"0x34"}],"functionName":{"name":"mload","nativeSrc":"15376:5:27","nodeType":"YulIdentifier","src":"15376:5:27"},"nativeSrc":"15376:11:27","nodeType":"YulFunctionCall","src":"15376:11:27"},"variableNames":[{"name":"amount","nativeSrc":"15366:6:27","nodeType":"YulIdentifier","src":"15366:6:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15468:4:27","nodeType":"YulLiteral","src":"15468:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15474:34:27","nodeType":"YulLiteral","src":"15474:34:27","type":"","value":"0xa9059cbb000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"15461:6:27","nodeType":"YulIdentifier","src":"15461:6:27"},"nativeSrc":"15461:48:27","nodeType":"YulFunctionCall","src":"15461:48:27"},"nativeSrc":"15461:48:27","nodeType":"YulExpressionStatement","src":"15461:48:27"},{"body":{"nativeSrc":"15901:114:27","nodeType":"YulBlock","src":"15901:114:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15926:4:27","nodeType":"YulLiteral","src":"15926:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15932:10:27","nodeType":"YulLiteral","src":"15932:10:27","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"15919:6:27","nodeType":"YulIdentifier","src":"15919:6:27"},"nativeSrc":"15919:24:27","nodeType":"YulFunctionCall","src":"15919:24:27"},"nativeSrc":"15919:24:27","nodeType":"YulExpressionStatement","src":"15919:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15990:4:27","nodeType":"YulLiteral","src":"15990:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15996:4:27","nodeType":"YulLiteral","src":"15996:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15983:6:27","nodeType":"YulIdentifier","src":"15983:6:27"},"nativeSrc":"15983:18:27","nodeType":"YulFunctionCall","src":"15983:18:27"},"nativeSrc":"15983:18:27","nodeType":"YulExpressionStatement","src":"15983:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15739:4:27","nodeType":"YulLiteral","src":"15739:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"15733:5:27","nodeType":"YulIdentifier","src":"15733:5:27"},"nativeSrc":"15733:11:27","nodeType":"YulFunctionCall","src":"15733:11:27"},{"kind":"number","nativeSrc":"15746:1:27","nodeType":"YulLiteral","src":"15746:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"15730:2:27","nodeType":"YulIdentifier","src":"15730:2:27"},"nativeSrc":"15730:18:27","nodeType":"YulFunctionCall","src":"15730:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15757:14:27","nodeType":"YulIdentifier","src":"15757:14:27"},"nativeSrc":"15757:16:27","nodeType":"YulFunctionCall","src":"15757:16:27"}],"functionName":{"name":"iszero","nativeSrc":"15750:6:27","nodeType":"YulIdentifier","src":"15750:6:27"},"nativeSrc":"15750:24:27","nodeType":"YulFunctionCall","src":"15750:24:27"}],"functionName":{"name":"or","nativeSrc":"15727:2:27","nodeType":"YulIdentifier","src":"15727:2:27"},"nativeSrc":"15727:48:27","nodeType":"YulFunctionCall","src":"15727:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15828:3:27","nodeType":"YulIdentifier","src":"15828:3:27"},"nativeSrc":"15828:5:27","nodeType":"YulFunctionCall","src":"15828:5:27"},{"name":"token","nativeSrc":"15835:5:27","nodeType":"YulIdentifier","src":"15835:5:27"},{"kind":"number","nativeSrc":"15842:1:27","nodeType":"YulLiteral","src":"15842:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"15845:4:27","nodeType":"YulLiteral","src":"15845:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"15851:4:27","nodeType":"YulLiteral","src":"15851:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"15857:4:27","nodeType":"YulLiteral","src":"15857:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15863:4:27","nodeType":"YulLiteral","src":"15863:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"15823:4:27","nodeType":"YulIdentifier","src":"15823:4:27"},"nativeSrc":"15823:45:27","nodeType":"YulFunctionCall","src":"15823:45:27"}],"functionName":{"name":"and","nativeSrc":"15642:3:27","nodeType":"YulIdentifier","src":"15642:3:27"},"nativeSrc":"15642:244:27","nodeType":"YulFunctionCall","src":"15642:244:27"}],"functionName":{"name":"iszero","nativeSrc":"15618:6:27","nodeType":"YulIdentifier","src":"15618:6:27"},"nativeSrc":"15618:282:27","nodeType":"YulFunctionCall","src":"15618:282:27"},"nativeSrc":"15615:400:27","nodeType":"YulIf","src":"15615:400:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16035:4:27","nodeType":"YulLiteral","src":"16035:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"16041:1:27","nodeType":"YulLiteral","src":"16041:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16028:6:27","nodeType":"YulIdentifier","src":"16028:6:27"},"nativeSrc":"16028:15:27","nodeType":"YulFunctionCall","src":"16028:15:27"},"nativeSrc":"16028:15:27","nodeType":"YulExpressionStatement","src":"16028:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11227,"isOffset":false,"isSlot":false,"src":"15366:6:27","valueSize":1},{"declaration":11224,"isOffset":false,"isSlot":false,"src":"15322:2:27","valueSize":1},{"declaration":11222,"isOffset":false,"isSlot":false,"src":"15119:5:27","valueSize":1},{"declaration":11222,"isOffset":false,"isSlot":false,"src":"15835:5:27","valueSize":1}],"id":11229,"nodeType":"InlineAssembly","src":"14655:1467:27"}]},"documentation":{"id":11220,"nodeType":"StructuredDocumentation","src":"14411:100:27","text":"@dev Sends all of ERC20 `token` from the current contract to `to`.\n Reverts upon failure."},"id":11231,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAll","nameLocation":"14525:15:27","nodeType":"FunctionDefinition","parameters":{"id":11225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11222,"mutability":"mutable","name":"token","nameLocation":"14549:5:27","nodeType":"VariableDeclaration","scope":11231,"src":"14541:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11221,"name":"address","nodeType":"ElementaryTypeName","src":"14541:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11224,"mutability":"mutable","name":"to","nameLocation":"14564:2:27","nodeType":"VariableDeclaration","scope":11231,"src":"14556:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11223,"name":"address","nodeType":"ElementaryTypeName","src":"14556:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14540:27:27"},"returnParameters":{"id":11228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11227,"mutability":"mutable","name":"amount","nameLocation":"14594:6:27","nodeType":"VariableDeclaration","scope":11231,"src":"14586:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11226,"name":"uint256","nodeType":"ElementaryTypeName","src":"14586:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14585:16:27"},"scope":11372,"src":"14516:1612:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11242,"nodeType":"Block","src":"16335:863:27","statements":[{"AST":{"nativeSrc":"16397:795:27","nodeType":"YulBlock","src":"16397:795:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16418:4:27","nodeType":"YulLiteral","src":"16418:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"16424:2:27","nodeType":"YulIdentifier","src":"16424:2:27"}],"functionName":{"name":"mstore","nativeSrc":"16411:6:27","nodeType":"YulIdentifier","src":"16411:6:27"},"nativeSrc":"16411:16:27","nodeType":"YulFunctionCall","src":"16411:16:27"},"nativeSrc":"16411:16:27","nodeType":"YulExpressionStatement","src":"16411:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16475:4:27","nodeType":"YulLiteral","src":"16475:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"16481:6:27","nodeType":"YulIdentifier","src":"16481:6:27"}],"functionName":{"name":"mstore","nativeSrc":"16468:6:27","nodeType":"YulIdentifier","src":"16468:6:27"},"nativeSrc":"16468:20:27","nodeType":"YulFunctionCall","src":"16468:20:27"},"nativeSrc":"16468:20:27","nodeType":"YulExpressionStatement","src":"16468:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16540:4:27","nodeType":"YulLiteral","src":"16540:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16546:34:27","nodeType":"YulLiteral","src":"16546:34:27","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"16533:6:27","nodeType":"YulIdentifier","src":"16533:6:27"},"nativeSrc":"16533:48:27","nodeType":"YulFunctionCall","src":"16533:48:27"},"nativeSrc":"16533:48:27","nodeType":"YulExpressionStatement","src":"16533:48:27"},{"body":{"nativeSrc":"16972:113:27","nodeType":"YulBlock","src":"16972:113:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16997:4:27","nodeType":"YulLiteral","src":"16997:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17003:10:27","nodeType":"YulLiteral","src":"17003:10:27","type":"","value":"0x3e3f8f73"}],"functionName":{"name":"mstore","nativeSrc":"16990:6:27","nodeType":"YulIdentifier","src":"16990:6:27"},"nativeSrc":"16990:24:27","nodeType":"YulFunctionCall","src":"16990:24:27"},"nativeSrc":"16990:24:27","nodeType":"YulExpressionStatement","src":"16990:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17060:4:27","nodeType":"YulLiteral","src":"17060:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"17066:4:27","nodeType":"YulLiteral","src":"17066:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"17053:6:27","nodeType":"YulIdentifier","src":"17053:6:27"},"nativeSrc":"17053:18:27","nodeType":"YulFunctionCall","src":"17053:18:27"},"nativeSrc":"17053:18:27","nodeType":"YulExpressionStatement","src":"17053:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16810:4:27","nodeType":"YulLiteral","src":"16810:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"16804:5:27","nodeType":"YulIdentifier","src":"16804:5:27"},"nativeSrc":"16804:11:27","nodeType":"YulFunctionCall","src":"16804:11:27"},{"kind":"number","nativeSrc":"16817:1:27","nodeType":"YulLiteral","src":"16817:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"16801:2:27","nodeType":"YulIdentifier","src":"16801:2:27"},"nativeSrc":"16801:18:27","nodeType":"YulFunctionCall","src":"16801:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"16828:14:27","nodeType":"YulIdentifier","src":"16828:14:27"},"nativeSrc":"16828:16:27","nodeType":"YulFunctionCall","src":"16828:16:27"}],"functionName":{"name":"iszero","nativeSrc":"16821:6:27","nodeType":"YulIdentifier","src":"16821:6:27"},"nativeSrc":"16821:24:27","nodeType":"YulFunctionCall","src":"16821:24:27"}],"functionName":{"name":"or","nativeSrc":"16798:2:27","nodeType":"YulIdentifier","src":"16798:2:27"},"nativeSrc":"16798:48:27","nodeType":"YulFunctionCall","src":"16798:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16899:3:27","nodeType":"YulIdentifier","src":"16899:3:27"},"nativeSrc":"16899:5:27","nodeType":"YulFunctionCall","src":"16899:5:27"},{"name":"token","nativeSrc":"16906:5:27","nodeType":"YulIdentifier","src":"16906:5:27"},{"kind":"number","nativeSrc":"16913:1:27","nodeType":"YulLiteral","src":"16913:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"16916:4:27","nodeType":"YulLiteral","src":"16916:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"16922:4:27","nodeType":"YulLiteral","src":"16922:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"16928:4:27","nodeType":"YulLiteral","src":"16928:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16934:4:27","nodeType":"YulLiteral","src":"16934:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"16894:4:27","nodeType":"YulIdentifier","src":"16894:4:27"},"nativeSrc":"16894:45:27","nodeType":"YulFunctionCall","src":"16894:45:27"}],"functionName":{"name":"and","nativeSrc":"16713:3:27","nodeType":"YulIdentifier","src":"16713:3:27"},"nativeSrc":"16713:244:27","nodeType":"YulFunctionCall","src":"16713:244:27"}],"functionName":{"name":"iszero","nativeSrc":"16689:6:27","nodeType":"YulIdentifier","src":"16689:6:27"},"nativeSrc":"16689:282:27","nodeType":"YulFunctionCall","src":"16689:282:27"},"nativeSrc":"16686:399:27","nodeType":"YulIf","src":"16686:399:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17105:4:27","nodeType":"YulLiteral","src":"17105:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"17111:1:27","nodeType":"YulLiteral","src":"17111:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17098:6:27","nodeType":"YulIdentifier","src":"17098:6:27"},"nativeSrc":"17098:15:27","nodeType":"YulFunctionCall","src":"17098:15:27"},"nativeSrc":"17098:15:27","nodeType":"YulExpressionStatement","src":"17098:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11238,"isOffset":false,"isSlot":false,"src":"16481:6:27","valueSize":1},{"declaration":11236,"isOffset":false,"isSlot":false,"src":"16424:2:27","valueSize":1},{"declaration":11234,"isOffset":false,"isSlot":false,"src":"16906:5:27","valueSize":1}],"id":11241,"nodeType":"InlineAssembly","src":"16388:804:27"}]},"documentation":{"id":11232,"nodeType":"StructuredDocumentation","src":"16134:123:27","text":"@dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n Reverts upon failure."},"id":11243,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"16271:11:27","nodeType":"FunctionDefinition","parameters":{"id":11239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11234,"mutability":"mutable","name":"token","nameLocation":"16291:5:27","nodeType":"VariableDeclaration","scope":11243,"src":"16283:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11233,"name":"address","nodeType":"ElementaryTypeName","src":"16283:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11236,"mutability":"mutable","name":"to","nameLocation":"16306:2:27","nodeType":"VariableDeclaration","scope":11243,"src":"16298:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11235,"name":"address","nodeType":"ElementaryTypeName","src":"16298:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11238,"mutability":"mutable","name":"amount","nameLocation":"16318:6:27","nodeType":"VariableDeclaration","scope":11243,"src":"16310:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11237,"name":"uint256","nodeType":"ElementaryTypeName","src":"16310:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16282:43:27"},"returnParameters":{"id":11240,"nodeType":"ParameterList","parameters":[],"src":"16335:0:27"},"scope":11372,"src":"16262:936:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11254,"nodeType":"Block","src":"17591:1542:27","statements":[{"AST":{"nativeSrc":"17653:1474:27","nodeType":"YulBlock","src":"17653:1474:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17674:4:27","nodeType":"YulLiteral","src":"17674:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"17680:2:27","nodeType":"YulIdentifier","src":"17680:2:27"}],"functionName":{"name":"mstore","nativeSrc":"17667:6:27","nodeType":"YulIdentifier","src":"17667:6:27"},"nativeSrc":"17667:16:27","nodeType":"YulFunctionCall","src":"17667:16:27"},"nativeSrc":"17667:16:27","nodeType":"YulExpressionStatement","src":"17667:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17731:4:27","nodeType":"YulLiteral","src":"17731:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"17737:6:27","nodeType":"YulIdentifier","src":"17737:6:27"}],"functionName":{"name":"mstore","nativeSrc":"17724:6:27","nodeType":"YulIdentifier","src":"17724:6:27"},"nativeSrc":"17724:20:27","nodeType":"YulFunctionCall","src":"17724:20:27"},"nativeSrc":"17724:20:27","nodeType":"YulExpressionStatement","src":"17724:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17796:4:27","nodeType":"YulLiteral","src":"17796:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17802:34:27","nodeType":"YulLiteral","src":"17802:34:27","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"17789:6:27","nodeType":"YulIdentifier","src":"17789:6:27"},"nativeSrc":"17789:48:27","nodeType":"YulFunctionCall","src":"17789:48:27"},"nativeSrc":"17789:48:27","nodeType":"YulExpressionStatement","src":"17789:48:27"},{"body":{"nativeSrc":"18227:793:27","nodeType":"YulBlock","src":"18227:793:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18252:4:27","nodeType":"YulLiteral","src":"18252:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"18258:1:27","nodeType":"YulLiteral","src":"18258:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18245:6:27","nodeType":"YulIdentifier","src":"18245:6:27"},"nativeSrc":"18245:15:27","nodeType":"YulFunctionCall","src":"18245:15:27"},"nativeSrc":"18245:15:27","nodeType":"YulExpressionStatement","src":"18245:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18313:4:27","nodeType":"YulLiteral","src":"18313:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18319:34:27","nodeType":"YulLiteral","src":"18319:34:27","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"18306:6:27","nodeType":"YulIdentifier","src":"18306:6:27"},"nativeSrc":"18306:48:27","nodeType":"YulFunctionCall","src":"18306:48:27"},"nativeSrc":"18306:48:27","nodeType":"YulExpressionStatement","src":"18306:48:27"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18411:3:27","nodeType":"YulIdentifier","src":"18411:3:27"},"nativeSrc":"18411:5:27","nodeType":"YulFunctionCall","src":"18411:5:27"},{"name":"token","nativeSrc":"18418:5:27","nodeType":"YulIdentifier","src":"18418:5:27"},{"kind":"number","nativeSrc":"18425:1:27","nodeType":"YulLiteral","src":"18425:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"18428:4:27","nodeType":"YulLiteral","src":"18428:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18434:4:27","nodeType":"YulLiteral","src":"18434:4:27","type":"","value":"0x44"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"18440:8:27","nodeType":"YulIdentifier","src":"18440:8:27"},"nativeSrc":"18440:10:27","nodeType":"YulFunctionCall","src":"18440:10:27"},{"kind":"number","nativeSrc":"18452:4:27","nodeType":"YulLiteral","src":"18452:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"18406:4:27","nodeType":"YulIdentifier","src":"18406:4:27"},"nativeSrc":"18406:51:27","nodeType":"YulFunctionCall","src":"18406:51:27"}],"functionName":{"name":"pop","nativeSrc":"18402:3:27","nodeType":"YulIdentifier","src":"18402:3:27"},"nativeSrc":"18402:56:27","nodeType":"YulFunctionCall","src":"18402:56:27"},"nativeSrc":"18402:56:27","nodeType":"YulExpressionStatement","src":"18402:56:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18505:4:27","nodeType":"YulLiteral","src":"18505:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"18511:6:27","nodeType":"YulIdentifier","src":"18511:6:27"}],"functionName":{"name":"mstore","nativeSrc":"18498:6:27","nodeType":"YulIdentifier","src":"18498:6:27"},"nativeSrc":"18498:20:27","nodeType":"YulFunctionCall","src":"18498:20:27"},"nativeSrc":"18498:20:27","nodeType":"YulExpressionStatement","src":"18498:20:27"},{"body":{"nativeSrc":"18881:125:27","nodeType":"YulBlock","src":"18881:125:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18910:4:27","nodeType":"YulLiteral","src":"18910:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18916:10:27","nodeType":"YulLiteral","src":"18916:10:27","type":"","value":"0x3e3f8f73"}],"functionName":{"name":"mstore","nativeSrc":"18903:6:27","nodeType":"YulIdentifier","src":"18903:6:27"},"nativeSrc":"18903:24:27","nodeType":"YulFunctionCall","src":"18903:24:27"},"nativeSrc":"18903:24:27","nodeType":"YulExpressionStatement","src":"18903:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18977:4:27","nodeType":"YulLiteral","src":"18977:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18983:4:27","nodeType":"YulLiteral","src":"18983:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18970:6:27","nodeType":"YulIdentifier","src":"18970:6:27"},"nativeSrc":"18970:18:27","nodeType":"YulFunctionCall","src":"18970:18:27"},"nativeSrc":"18970:18:27","nodeType":"YulExpressionStatement","src":"18970:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18707:4:27","nodeType":"YulLiteral","src":"18707:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18701:5:27","nodeType":"YulIdentifier","src":"18701:5:27"},"nativeSrc":"18701:11:27","nodeType":"YulFunctionCall","src":"18701:11:27"},{"kind":"number","nativeSrc":"18714:1:27","nodeType":"YulLiteral","src":"18714:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"18698:2:27","nodeType":"YulIdentifier","src":"18698:2:27"},"nativeSrc":"18698:18:27","nodeType":"YulFunctionCall","src":"18698:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18725:14:27","nodeType":"YulIdentifier","src":"18725:14:27"},"nativeSrc":"18725:16:27","nodeType":"YulFunctionCall","src":"18725:16:27"}],"functionName":{"name":"iszero","nativeSrc":"18718:6:27","nodeType":"YulIdentifier","src":"18718:6:27"},"nativeSrc":"18718:24:27","nodeType":"YulFunctionCall","src":"18718:24:27"}],"functionName":{"name":"or","nativeSrc":"18695:2:27","nodeType":"YulIdentifier","src":"18695:2:27"},"nativeSrc":"18695:48:27","nodeType":"YulFunctionCall","src":"18695:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18800:3:27","nodeType":"YulIdentifier","src":"18800:3:27"},"nativeSrc":"18800:5:27","nodeType":"YulFunctionCall","src":"18800:5:27"},{"name":"token","nativeSrc":"18807:5:27","nodeType":"YulIdentifier","src":"18807:5:27"},{"kind":"number","nativeSrc":"18814:1:27","nodeType":"YulLiteral","src":"18814:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"18817:4:27","nodeType":"YulLiteral","src":"18817:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18823:4:27","nodeType":"YulLiteral","src":"18823:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"18829:4:27","nodeType":"YulLiteral","src":"18829:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18835:4:27","nodeType":"YulLiteral","src":"18835:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"18795:4:27","nodeType":"YulIdentifier","src":"18795:4:27"},"nativeSrc":"18795:45:27","nodeType":"YulFunctionCall","src":"18795:45:27"}],"functionName":{"name":"and","nativeSrc":"18666:3:27","nodeType":"YulIdentifier","src":"18666:3:27"},"nativeSrc":"18666:196:27","nodeType":"YulFunctionCall","src":"18666:196:27"}],"functionName":{"name":"iszero","nativeSrc":"18638:6:27","nodeType":"YulIdentifier","src":"18638:6:27"},"nativeSrc":"18638:242:27","nodeType":"YulFunctionCall","src":"18638:242:27"},"nativeSrc":"18635:371:27","nodeType":"YulIf","src":"18635:371:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18065:4:27","nodeType":"YulLiteral","src":"18065:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18059:5:27","nodeType":"YulIdentifier","src":"18059:5:27"},"nativeSrc":"18059:11:27","nodeType":"YulFunctionCall","src":"18059:11:27"},{"kind":"number","nativeSrc":"18072:1:27","nodeType":"YulLiteral","src":"18072:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"18056:2:27","nodeType":"YulIdentifier","src":"18056:2:27"},"nativeSrc":"18056:18:27","nodeType":"YulFunctionCall","src":"18056:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18083:14:27","nodeType":"YulIdentifier","src":"18083:14:27"},"nativeSrc":"18083:16:27","nodeType":"YulFunctionCall","src":"18083:16:27"}],"functionName":{"name":"iszero","nativeSrc":"18076:6:27","nodeType":"YulIdentifier","src":"18076:6:27"},"nativeSrc":"18076:24:27","nodeType":"YulFunctionCall","src":"18076:24:27"}],"functionName":{"name":"or","nativeSrc":"18053:2:27","nodeType":"YulIdentifier","src":"18053:2:27"},"nativeSrc":"18053:48:27","nodeType":"YulFunctionCall","src":"18053:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18154:3:27","nodeType":"YulIdentifier","src":"18154:3:27"},"nativeSrc":"18154:5:27","nodeType":"YulFunctionCall","src":"18154:5:27"},{"name":"token","nativeSrc":"18161:5:27","nodeType":"YulIdentifier","src":"18161:5:27"},{"kind":"number","nativeSrc":"18168:1:27","nodeType":"YulLiteral","src":"18168:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"18171:4:27","nodeType":"YulLiteral","src":"18171:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18177:4:27","nodeType":"YulLiteral","src":"18177:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"18183:4:27","nodeType":"YulLiteral","src":"18183:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18189:4:27","nodeType":"YulLiteral","src":"18189:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"18149:4:27","nodeType":"YulIdentifier","src":"18149:4:27"},"nativeSrc":"18149:45:27","nodeType":"YulFunctionCall","src":"18149:45:27"}],"functionName":{"name":"and","nativeSrc":"17968:3:27","nodeType":"YulIdentifier","src":"17968:3:27"},"nativeSrc":"17968:244:27","nodeType":"YulFunctionCall","src":"17968:244:27"}],"functionName":{"name":"iszero","nativeSrc":"17944:6:27","nodeType":"YulIdentifier","src":"17944:6:27"},"nativeSrc":"17944:282:27","nodeType":"YulFunctionCall","src":"17944:282:27"},"nativeSrc":"17941:1079:27","nodeType":"YulIf","src":"17941:1079:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19040:4:27","nodeType":"YulLiteral","src":"19040:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"19046:1:27","nodeType":"YulLiteral","src":"19046:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19033:6:27","nodeType":"YulIdentifier","src":"19033:6:27"},"nativeSrc":"19033:15:27","nodeType":"YulFunctionCall","src":"19033:15:27"},"nativeSrc":"19033:15:27","nodeType":"YulExpressionStatement","src":"19033:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11250,"isOffset":false,"isSlot":false,"src":"17737:6:27","valueSize":1},{"declaration":11250,"isOffset":false,"isSlot":false,"src":"18511:6:27","valueSize":1},{"declaration":11248,"isOffset":false,"isSlot":false,"src":"17680:2:27","valueSize":1},{"declaration":11246,"isOffset":false,"isSlot":false,"src":"18161:5:27","valueSize":1},{"declaration":11246,"isOffset":false,"isSlot":false,"src":"18418:5:27","valueSize":1},{"declaration":11246,"isOffset":false,"isSlot":false,"src":"18807:5:27","valueSize":1}],"id":11253,"nodeType":"InlineAssembly","src":"17644:1483:27"}]},"documentation":{"id":11244,"nodeType":"StructuredDocumentation","src":"17204:300:27","text":"@dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n If the initial attempt to approve fails, attempts to reset the approved amount to zero,\n then retries the approval again (some tokens, e.g. USDT, requires this).\n Reverts upon failure."},"id":11255,"implemented":true,"kind":"function","modifiers":[],"name":"safeApproveWithRetry","nameLocation":"17518:20:27","nodeType":"FunctionDefinition","parameters":{"id":11251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11246,"mutability":"mutable","name":"token","nameLocation":"17547:5:27","nodeType":"VariableDeclaration","scope":11255,"src":"17539:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11245,"name":"address","nodeType":"ElementaryTypeName","src":"17539:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11248,"mutability":"mutable","name":"to","nameLocation":"17562:2:27","nodeType":"VariableDeclaration","scope":11255,"src":"17554:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11247,"name":"address","nodeType":"ElementaryTypeName","src":"17554:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11250,"mutability":"mutable","name":"amount","nameLocation":"17574:6:27","nodeType":"VariableDeclaration","scope":11255,"src":"17566:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11249,"name":"uint256","nodeType":"ElementaryTypeName","src":"17566:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17538:43:27"},"returnParameters":{"id":11252,"nodeType":"ParameterList","parameters":[],"src":"17591:0:27"},"scope":11372,"src":"17509:1624:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11266,"nodeType":"Block","src":"19350:649:27","statements":[{"AST":{"nativeSrc":"19412:581:27","nodeType":"YulBlock","src":"19412:581:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19433:4:27","nodeType":"YulLiteral","src":"19433:4:27","type":"","value":"0x14"},{"name":"account","nativeSrc":"19439:7:27","nodeType":"YulIdentifier","src":"19439:7:27"}],"functionName":{"name":"mstore","nativeSrc":"19426:6:27","nodeType":"YulIdentifier","src":"19426:6:27"},"nativeSrc":"19426:21:27","nodeType":"YulFunctionCall","src":"19426:21:27"},"nativeSrc":"19426:21:27","nodeType":"YulExpressionStatement","src":"19426:21:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19500:4:27","nodeType":"YulLiteral","src":"19500:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19506:34:27","nodeType":"YulLiteral","src":"19506:34:27","type":"","value":"0x70a08231000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"19493:6:27","nodeType":"YulIdentifier","src":"19493:6:27"},"nativeSrc":"19493:48:27","nodeType":"YulFunctionCall","src":"19493:48:27"},"nativeSrc":"19493:48:27","nodeType":"YulExpressionStatement","src":"19493:48:27"},{"nativeSrc":"19579:404:27","nodeType":"YulAssignment","src":"19579:404:27","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19696:4:27","nodeType":"YulLiteral","src":"19696:4:27","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"19690:5:27","nodeType":"YulIdentifier","src":"19690:5:27"},"nativeSrc":"19690:11:27","nodeType":"YulFunctionCall","src":"19690:11:27"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"19815:14:27","nodeType":"YulIdentifier","src":"19815:14:27"},"nativeSrc":"19815:16:27","nodeType":"YulFunctionCall","src":"19815:16:27"},{"kind":"number","nativeSrc":"19833:4:27","nodeType":"YulLiteral","src":"19833:4:27","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"19812:2:27","nodeType":"YulIdentifier","src":"19812:2:27"},"nativeSrc":"19812:26:27","nodeType":"YulFunctionCall","src":"19812:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"19906:3:27","nodeType":"YulIdentifier","src":"19906:3:27"},"nativeSrc":"19906:5:27","nodeType":"YulFunctionCall","src":"19906:5:27"},{"name":"token","nativeSrc":"19913:5:27","nodeType":"YulIdentifier","src":"19913:5:27"},{"kind":"number","nativeSrc":"19920:4:27","nodeType":"YulLiteral","src":"19920:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"19926:4:27","nodeType":"YulLiteral","src":"19926:4:27","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19932:4:27","nodeType":"YulLiteral","src":"19932:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"19938:4:27","nodeType":"YulLiteral","src":"19938:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"19895:10:27","nodeType":"YulIdentifier","src":"19895:10:27"},"nativeSrc":"19895:48:27","nodeType":"YulFunctionCall","src":"19895:48:27"}],"functionName":{"name":"and","nativeSrc":"19723:3:27","nodeType":"YulIdentifier","src":"19723:3:27"},"nativeSrc":"19723:242:27","nodeType":"YulFunctionCall","src":"19723:242:27"}],"functionName":{"name":"mul","nativeSrc":"19605:3:27","nodeType":"YulIdentifier","src":"19605:3:27"},"nativeSrc":"19605:378:27","nodeType":"YulFunctionCall","src":"19605:378:27"},"variableNames":[{"name":"amount","nativeSrc":"19579:6:27","nodeType":"YulIdentifier","src":"19579:6:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11260,"isOffset":false,"isSlot":false,"src":"19439:7:27","valueSize":1},{"declaration":11263,"isOffset":false,"isSlot":false,"src":"19579:6:27","valueSize":1},{"declaration":11258,"isOffset":false,"isSlot":false,"src":"19913:5:27","valueSize":1}],"id":11265,"nodeType":"InlineAssembly","src":"19403:590:27"}]},"documentation":{"id":11256,"nodeType":"StructuredDocumentation","src":"19139:116:27","text":"@dev Returns the amount of ERC20 `token` owned by `account`.\n Returns zero if the `token` does not exist."},"id":11267,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"19269:9:27","nodeType":"FunctionDefinition","parameters":{"id":11261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11258,"mutability":"mutable","name":"token","nameLocation":"19287:5:27","nodeType":"VariableDeclaration","scope":11267,"src":"19279:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11257,"name":"address","nodeType":"ElementaryTypeName","src":"19279:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11260,"mutability":"mutable","name":"account","nameLocation":"19302:7:27","nodeType":"VariableDeclaration","scope":11267,"src":"19294:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11259,"name":"address","nodeType":"ElementaryTypeName","src":"19294:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19278:32:27"},"returnParameters":{"id":11264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11263,"mutability":"mutable","name":"amount","nameLocation":"19342:6:27","nodeType":"VariableDeclaration","scope":11267,"src":"19334:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11262,"name":"uint256","nodeType":"ElementaryTypeName","src":"19334:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19333:16:27"},"scope":11372,"src":"19260:739:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11295,"nodeType":"Block","src":"20382:136:27","statements":[{"condition":{"id":11285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20396:45:27","subExpression":{"arguments":[{"id":11280,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11270,"src":"20417:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11281,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"20424:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11282,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"20430:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11283,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11276,"src":"20434:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11279,"name":"trySafeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11193,"src":"20397:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,address,uint256) returns (bool)"}},"id":11284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20397:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11294,"nodeType":"IfStatement","src":"20392:120:27","trueBody":{"id":11293,"nodeType":"Block","src":"20443:69:27","statements":[{"expression":{"arguments":[{"id":11287,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11270,"src":"20477:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11288,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"20484:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11289,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"20490:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11290,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11276,"src":"20494:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11286,"name":"permit2TransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11310,"src":"20457:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20457:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11292,"nodeType":"ExpressionStatement","src":"20457:44:27"}]}}]},"documentation":{"id":11268,"nodeType":"StructuredDocumentation","src":"20005:279:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n If the initial attempt fails, try to use Permit2 to transfer the token.\n Reverts upon failure.\n The `from` account must have at least `amount` approved for the current contract to manage."},"id":11296,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom2","nameLocation":"20298:17:27","nodeType":"FunctionDefinition","parameters":{"id":11277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11270,"mutability":"mutable","name":"token","nameLocation":"20324:5:27","nodeType":"VariableDeclaration","scope":11296,"src":"20316:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11269,"name":"address","nodeType":"ElementaryTypeName","src":"20316:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11272,"mutability":"mutable","name":"from","nameLocation":"20339:4:27","nodeType":"VariableDeclaration","scope":11296,"src":"20331:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11271,"name":"address","nodeType":"ElementaryTypeName","src":"20331:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11274,"mutability":"mutable","name":"to","nameLocation":"20353:2:27","nodeType":"VariableDeclaration","scope":11296,"src":"20345:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11273,"name":"address","nodeType":"ElementaryTypeName","src":"20345:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11276,"mutability":"mutable","name":"amount","nameLocation":"20365:6:27","nodeType":"VariableDeclaration","scope":11296,"src":"20357:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11275,"name":"uint256","nodeType":"ElementaryTypeName","src":"20357:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20315:57:27"},"returnParameters":{"id":11278,"nodeType":"ParameterList","parameters":[],"src":"20382:0:27"},"scope":11372,"src":"20289:229:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11309,"nodeType":"Block","src":"20739:860:27","statements":[{"AST":{"nativeSrc":"20801:792:27","nodeType":"YulBlock","src":"20801:792:27","statements":[{"nativeSrc":"20815:20:27","nodeType":"YulVariableDeclaration","src":"20815:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"20830:4:27","nodeType":"YulLiteral","src":"20830:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20824:5:27","nodeType":"YulIdentifier","src":"20824:5:27"},"nativeSrc":"20824:11:27","nodeType":"YulFunctionCall","src":"20824:11:27"},"variables":[{"name":"m","nativeSrc":"20819:1:27","nodeType":"YulTypedName","src":"20819:1:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20859:1:27","nodeType":"YulIdentifier","src":"20859:1:27"},{"kind":"number","nativeSrc":"20862:4:27","nodeType":"YulLiteral","src":"20862:4:27","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"20855:3:27","nodeType":"YulIdentifier","src":"20855:3:27"},"nativeSrc":"20855:12:27","nodeType":"YulFunctionCall","src":"20855:12:27"},{"arguments":[{"kind":"number","nativeSrc":"20873:2:27","nodeType":"YulLiteral","src":"20873:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"20881:2:27","nodeType":"YulLiteral","src":"20881:2:27","type":"","value":"96"},{"name":"token","nativeSrc":"20885:5:27","nodeType":"YulIdentifier","src":"20885:5:27"}],"functionName":{"name":"shl","nativeSrc":"20877:3:27","nodeType":"YulIdentifier","src":"20877:3:27"},"nativeSrc":"20877:14:27","nodeType":"YulFunctionCall","src":"20877:14:27"}],"functionName":{"name":"shr","nativeSrc":"20869:3:27","nodeType":"YulIdentifier","src":"20869:3:27"},"nativeSrc":"20869:23:27","nodeType":"YulFunctionCall","src":"20869:23:27"}],"functionName":{"name":"mstore","nativeSrc":"20848:6:27","nodeType":"YulIdentifier","src":"20848:6:27"},"nativeSrc":"20848:45:27","nodeType":"YulFunctionCall","src":"20848:45:27"},"nativeSrc":"20848:45:27","nodeType":"YulExpressionStatement","src":"20848:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20917:1:27","nodeType":"YulIdentifier","src":"20917:1:27"},{"kind":"number","nativeSrc":"20920:4:27","nodeType":"YulLiteral","src":"20920:4:27","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"20913:3:27","nodeType":"YulIdentifier","src":"20913:3:27"},"nativeSrc":"20913:12:27","nodeType":"YulFunctionCall","src":"20913:12:27"},{"name":"amount","nativeSrc":"20927:6:27","nodeType":"YulIdentifier","src":"20927:6:27"}],"functionName":{"name":"mstore","nativeSrc":"20906:6:27","nodeType":"YulIdentifier","src":"20906:6:27"},"nativeSrc":"20906:28:27","nodeType":"YulFunctionCall","src":"20906:28:27"},"nativeSrc":"20906:28:27","nodeType":"YulExpressionStatement","src":"20906:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20958:1:27","nodeType":"YulIdentifier","src":"20958:1:27"},{"kind":"number","nativeSrc":"20961:4:27","nodeType":"YulLiteral","src":"20961:4:27","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"20954:3:27","nodeType":"YulIdentifier","src":"20954:3:27"},"nativeSrc":"20954:12:27","nodeType":"YulFunctionCall","src":"20954:12:27"},{"name":"to","nativeSrc":"20968:2:27","nodeType":"YulIdentifier","src":"20968:2:27"}],"functionName":{"name":"mstore","nativeSrc":"20947:6:27","nodeType":"YulIdentifier","src":"20947:6:27"},"nativeSrc":"20947:24:27","nodeType":"YulFunctionCall","src":"20947:24:27"},"nativeSrc":"20947:24:27","nodeType":"YulExpressionStatement","src":"20947:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20995:1:27","nodeType":"YulIdentifier","src":"20995:1:27"},{"kind":"number","nativeSrc":"20998:4:27","nodeType":"YulLiteral","src":"20998:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20991:3:27","nodeType":"YulIdentifier","src":"20991:3:27"},"nativeSrc":"20991:12:27","nodeType":"YulFunctionCall","src":"20991:12:27"},{"arguments":[{"kind":"number","nativeSrc":"21009:2:27","nodeType":"YulLiteral","src":"21009:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"21013:4:27","nodeType":"YulIdentifier","src":"21013:4:27"}],"functionName":{"name":"shl","nativeSrc":"21005:3:27","nodeType":"YulIdentifier","src":"21005:3:27"},"nativeSrc":"21005:13:27","nodeType":"YulFunctionCall","src":"21005:13:27"}],"functionName":{"name":"mstore","nativeSrc":"20984:6:27","nodeType":"YulIdentifier","src":"20984:6:27"},"nativeSrc":"20984:35:27","nodeType":"YulFunctionCall","src":"20984:35:27"},"nativeSrc":"20984:35:27","nodeType":"YulExpressionStatement","src":"20984:35:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"21103:1:27","nodeType":"YulIdentifier","src":"21103:1:27"},{"kind":"number","nativeSrc":"21106:34:27","nodeType":"YulLiteral","src":"21106:34:27","type":"","value":"0x36c78516000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"21096:6:27","nodeType":"YulIdentifier","src":"21096:6:27"},"nativeSrc":"21096:45:27","nodeType":"YulFunctionCall","src":"21096:45:27"},"nativeSrc":"21096:45:27","nodeType":"YulExpressionStatement","src":"21096:45:27"},{"nativeSrc":"21154:16:27","nodeType":"YulVariableDeclaration","src":"21154:16:27","value":{"name":"PERMIT2","nativeSrc":"21163:7:27","nodeType":"YulIdentifier","src":"21163:7:27"},"variables":[{"name":"p","nativeSrc":"21158:1:27","nodeType":"YulTypedName","src":"21158:1:27","type":""}]},{"nativeSrc":"21183:30:27","nodeType":"YulVariableDeclaration","src":"21183:30:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"21200:7:27","nodeType":"YulIdentifier","src":"21200:7:27"},"nativeSrc":"21200:9:27","nodeType":"YulFunctionCall","src":"21200:9:27"},{"kind":"number","nativeSrc":"21211:1:27","nodeType":"YulLiteral","src":"21211:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"21197:2:27","nodeType":"YulIdentifier","src":"21197:2:27"},"nativeSrc":"21197:16:27","nodeType":"YulFunctionCall","src":"21197:16:27"},"variables":[{"name":"exists","nativeSrc":"21187:6:27","nodeType":"YulTypedName","src":"21187:6:27","type":""}]},{"body":{"nativeSrc":"21244:44:27","nodeType":"YulBlock","src":"21244:44:27","statements":[{"nativeSrc":"21246:40:27","nodeType":"YulAssignment","src":"21246:40:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"p","nativeSrc":"21282:1:27","nodeType":"YulIdentifier","src":"21282:1:27"}],"functionName":{"name":"extcodesize","nativeSrc":"21270:11:27","nodeType":"YulIdentifier","src":"21270:11:27"},"nativeSrc":"21270:14:27","nodeType":"YulFunctionCall","src":"21270:14:27"}],"functionName":{"name":"iszero","nativeSrc":"21263:6:27","nodeType":"YulIdentifier","src":"21263:6:27"},"nativeSrc":"21263:22:27","nodeType":"YulFunctionCall","src":"21263:22:27"}],"functionName":{"name":"iszero","nativeSrc":"21256:6:27","nodeType":"YulIdentifier","src":"21256:6:27"},"nativeSrc":"21256:30:27","nodeType":"YulFunctionCall","src":"21256:30:27"},"variableNames":[{"name":"exists","nativeSrc":"21246:6:27","nodeType":"YulIdentifier","src":"21246:6:27"}]}]},"condition":{"arguments":[{"name":"exists","nativeSrc":"21236:6:27","nodeType":"YulIdentifier","src":"21236:6:27"}],"functionName":{"name":"iszero","nativeSrc":"21229:6:27","nodeType":"YulIdentifier","src":"21229:6:27"},"nativeSrc":"21229:14:27","nodeType":"YulFunctionCall","src":"21229:14:27"},"nativeSrc":"21226:62:27","nodeType":"YulIf","src":"21226:62:27"},{"body":{"nativeSrc":"21381:202:27","nodeType":"YulBlock","src":"21381:202:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21406:4:27","nodeType":"YulLiteral","src":"21406:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21412:18:27","nodeType":"YulLiteral","src":"21412:18:27","type":"","value":"0x7939f4248757f0fd"}],"functionName":{"name":"mstore","nativeSrc":"21399:6:27","nodeType":"YulIdentifier","src":"21399:6:27"},"nativeSrc":"21399:32:27","nodeType":"YulFunctionCall","src":"21399:32:27"},"nativeSrc":"21399:32:27","nodeType":"YulExpressionStatement","src":"21399:32:27"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21515:4:27","nodeType":"YulLiteral","src":"21515:4:27","type":"","value":"0x18"},{"arguments":[{"kind":"number","nativeSrc":"21525:1:27","nodeType":"YulLiteral","src":"21525:1:27","type":"","value":"2"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21546:3:27","nodeType":"YulLiteral","src":"21546:3:27","type":"","value":"160"},{"name":"amount","nativeSrc":"21551:6:27","nodeType":"YulIdentifier","src":"21551:6:27"}],"functionName":{"name":"shr","nativeSrc":"21542:3:27","nodeType":"YulIdentifier","src":"21542:3:27"},"nativeSrc":"21542:16:27","nodeType":"YulFunctionCall","src":"21542:16:27"}],"functionName":{"name":"iszero","nativeSrc":"21535:6:27","nodeType":"YulIdentifier","src":"21535:6:27"},"nativeSrc":"21535:24:27","nodeType":"YulFunctionCall","src":"21535:24:27"}],"functionName":{"name":"iszero","nativeSrc":"21528:6:27","nodeType":"YulIdentifier","src":"21528:6:27"},"nativeSrc":"21528:32:27","nodeType":"YulFunctionCall","src":"21528:32:27"}],"functionName":{"name":"shl","nativeSrc":"21521:3:27","nodeType":"YulIdentifier","src":"21521:3:27"},"nativeSrc":"21521:40:27","nodeType":"YulFunctionCall","src":"21521:40:27"}],"functionName":{"name":"add","nativeSrc":"21511:3:27","nodeType":"YulIdentifier","src":"21511:3:27"},"nativeSrc":"21511:51:27","nodeType":"YulFunctionCall","src":"21511:51:27"},{"kind":"number","nativeSrc":"21564:4:27","nodeType":"YulLiteral","src":"21564:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"21504:6:27","nodeType":"YulIdentifier","src":"21504:6:27"},"nativeSrc":"21504:65:27","nodeType":"YulFunctionCall","src":"21504:65:27"},"nativeSrc":"21504:65:27","nodeType":"YulExpressionStatement","src":"21504:65:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"21320:3:27","nodeType":"YulIdentifier","src":"21320:3:27"},"nativeSrc":"21320:5:27","nodeType":"YulFunctionCall","src":"21320:5:27"},{"name":"p","nativeSrc":"21327:1:27","nodeType":"YulIdentifier","src":"21327:1:27"},{"kind":"number","nativeSrc":"21330:1:27","nodeType":"YulLiteral","src":"21330:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"21337:1:27","nodeType":"YulIdentifier","src":"21337:1:27"},{"kind":"number","nativeSrc":"21340:4:27","nodeType":"YulLiteral","src":"21340:4:27","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"21333:3:27","nodeType":"YulIdentifier","src":"21333:3:27"},"nativeSrc":"21333:12:27","nodeType":"YulFunctionCall","src":"21333:12:27"},{"kind":"number","nativeSrc":"21347:4:27","nodeType":"YulLiteral","src":"21347:4:27","type":"","value":"0x84"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"21353:8:27","nodeType":"YulIdentifier","src":"21353:8:27"},"nativeSrc":"21353:10:27","nodeType":"YulFunctionCall","src":"21353:10:27"},{"kind":"number","nativeSrc":"21365:4:27","nodeType":"YulLiteral","src":"21365:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"21315:4:27","nodeType":"YulIdentifier","src":"21315:4:27"},"nativeSrc":"21315:55:27","nodeType":"YulFunctionCall","src":"21315:55:27"},{"name":"exists","nativeSrc":"21372:6:27","nodeType":"YulIdentifier","src":"21372:6:27"}],"functionName":{"name":"and","nativeSrc":"21311:3:27","nodeType":"YulIdentifier","src":"21311:3:27"},"nativeSrc":"21311:68:27","nodeType":"YulFunctionCall","src":"21311:68:27"}],"functionName":{"name":"iszero","nativeSrc":"21304:6:27","nodeType":"YulIdentifier","src":"21304:6:27"},"nativeSrc":"21304:76:27","nodeType":"YulFunctionCall","src":"21304:76:27"},"nativeSrc":"21301:282:27","nodeType":"YulIf","src":"21301:282:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11079,"isOffset":false,"isSlot":false,"src":"21163:7:27","valueSize":1},{"declaration":11305,"isOffset":false,"isSlot":false,"src":"20927:6:27","valueSize":1},{"declaration":11305,"isOffset":false,"isSlot":false,"src":"21551:6:27","valueSize":1},{"declaration":11301,"isOffset":false,"isSlot":false,"src":"21013:4:27","valueSize":1},{"declaration":11303,"isOffset":false,"isSlot":false,"src":"20968:2:27","valueSize":1},{"declaration":11299,"isOffset":false,"isSlot":false,"src":"20885:5:27","valueSize":1}],"id":11308,"nodeType":"InlineAssembly","src":"20792:801:27"}]},"documentation":{"id":11297,"nodeType":"StructuredDocumentation","src":"20524:103:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to` via Permit2.\n Reverts upon failure."},"id":11310,"implemented":true,"kind":"function","modifiers":[],"name":"permit2TransferFrom","nameLocation":"20641:19:27","nodeType":"FunctionDefinition","parameters":{"id":11306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11299,"mutability":"mutable","name":"token","nameLocation":"20669:5:27","nodeType":"VariableDeclaration","scope":11310,"src":"20661:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11298,"name":"address","nodeType":"ElementaryTypeName","src":"20661:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11301,"mutability":"mutable","name":"from","nameLocation":"20684:4:27","nodeType":"VariableDeclaration","scope":11310,"src":"20676:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11300,"name":"address","nodeType":"ElementaryTypeName","src":"20676:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11303,"mutability":"mutable","name":"to","nameLocation":"20698:2:27","nodeType":"VariableDeclaration","scope":11310,"src":"20690:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11302,"name":"address","nodeType":"ElementaryTypeName","src":"20690:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11305,"mutability":"mutable","name":"amount","nameLocation":"20710:6:27","nodeType":"VariableDeclaration","scope":11310,"src":"20702:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11304,"name":"uint256","nodeType":"ElementaryTypeName","src":"20702:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20660:57:27"},"returnParameters":{"id":11307,"nodeType":"ParameterList","parameters":[],"src":"20739:0:27"},"scope":11372,"src":"20632:967:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11348,"nodeType":"Block","src":"22028:2261:27","statements":[{"assignments":[11331],"declarations":[{"constant":false,"id":11331,"mutability":"mutable","name":"success","nameLocation":"22043:7:27","nodeType":"VariableDeclaration","scope":11348,"src":"22038:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11330,"name":"bool","nodeType":"ElementaryTypeName","src":"22038:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":11332,"nodeType":"VariableDeclarationStatement","src":"22038:12:27"},{"AST":{"nativeSrc":"22112:2084:27","nodeType":"YulBlock","src":"22112:2084:27","statements":[{"body":{"nativeSrc":"22163:2023:27","nodeType":"YulBlock","src":"22163:2023:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22188:4:27","nodeType":"YulLiteral","src":"22188:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22194:10:27","nodeType":"YulLiteral","src":"22194:10:27","type":"","value":"0x3644e515"}],"functionName":{"name":"mstore","nativeSrc":"22181:6:27","nodeType":"YulIdentifier","src":"22181:6:27"},"nativeSrc":"22181:24:27","nodeType":"YulFunctionCall","src":"22181:24:27"},"nativeSrc":"22181:24:27","nodeType":"YulExpressionStatement","src":"22181:24:27"},{"body":{"nativeSrc":"22751:9:27","nodeType":"YulBlock","src":"22751:9:27","statements":[{"nativeSrc":"22753:5:27","nodeType":"YulBreak","src":"22753:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22383:4:27","nodeType":"YulLiteral","src":"22383:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"22377:5:27","nodeType":"YulIdentifier","src":"22377:5:27"},"nativeSrc":"22377:11:27","nodeType":"YulFunctionCall","src":"22377:11:27"}],"functionName":{"name":"iszero","nativeSrc":"22370:6:27","nodeType":"YulIdentifier","src":"22370:6:27"},"nativeSrc":"22370:19:27","nodeType":"YulFunctionCall","src":"22370:19:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"22394:14:27","nodeType":"YulIdentifier","src":"22394:14:27"},"nativeSrc":"22394:16:27","nodeType":"YulFunctionCall","src":"22394:16:27"},{"kind":"number","nativeSrc":"22412:4:27","nodeType":"YulLiteral","src":"22412:4:27","type":"","value":"0x20"}],"functionName":{"name":"eq","nativeSrc":"22391:2:27","nodeType":"YulIdentifier","src":"22391:2:27"},"nativeSrc":"22391:26:27","nodeType":"YulFunctionCall","src":"22391:26:27"}],"functionName":{"name":"lt","nativeSrc":"22367:2:27","nodeType":"YulIdentifier","src":"22367:2:27"},"nativeSrc":"22367:51:27","nodeType":"YulFunctionCall","src":"22367:51:27"},{"arguments":[{"kind":"number","nativeSrc":"22674:4:27","nodeType":"YulLiteral","src":"22674:4:27","type":"","value":"5000"},{"name":"token","nativeSrc":"22680:5:27","nodeType":"YulIdentifier","src":"22680:5:27"},{"kind":"number","nativeSrc":"22687:4:27","nodeType":"YulLiteral","src":"22687:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"22693:4:27","nodeType":"YulLiteral","src":"22693:4:27","type":"","value":"0x04"},{"kind":"number","nativeSrc":"22699:4:27","nodeType":"YulLiteral","src":"22699:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22705:4:27","nodeType":"YulLiteral","src":"22705:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"22663:10:27","nodeType":"YulIdentifier","src":"22663:10:27"},"nativeSrc":"22663:47:27","nodeType":"YulFunctionCall","src":"22663:47:27"}],"functionName":{"name":"and","nativeSrc":"22278:3:27","nodeType":"YulIdentifier","src":"22278:3:27"},"nativeSrc":"22278:454:27","nodeType":"YulFunctionCall","src":"22278:454:27"}],"functionName":{"name":"iszero","nativeSrc":"22250:6:27","nodeType":"YulIdentifier","src":"22250:6:27"},"nativeSrc":"22250:500:27","nodeType":"YulFunctionCall","src":"22250:500:27"},"nativeSrc":"22247:513:27","nodeType":"YulIf","src":"22247:513:27"},{"nativeSrc":"22849:20:27","nodeType":"YulVariableDeclaration","src":"22849:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"22864:4:27","nodeType":"YulLiteral","src":"22864:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"22858:5:27","nodeType":"YulIdentifier","src":"22858:5:27"},"nativeSrc":"22858:11:27","nodeType":"YulFunctionCall","src":"22858:11:27"},"variables":[{"name":"m","nativeSrc":"22853:1:27","nodeType":"YulTypedName","src":"22853:1:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22897:1:27","nodeType":"YulIdentifier","src":"22897:1:27"},{"kind":"number","nativeSrc":"22900:4:27","nodeType":"YulLiteral","src":"22900:4:27","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"22893:3:27","nodeType":"YulIdentifier","src":"22893:3:27"},"nativeSrc":"22893:12:27","nodeType":"YulFunctionCall","src":"22893:12:27"},{"name":"spender","nativeSrc":"22907:7:27","nodeType":"YulIdentifier","src":"22907:7:27"}],"functionName":{"name":"mstore","nativeSrc":"22886:6:27","nodeType":"YulIdentifier","src":"22886:6:27"},"nativeSrc":"22886:29:27","nodeType":"YulFunctionCall","src":"22886:29:27"},"nativeSrc":"22886:29:27","nodeType":"YulExpressionStatement","src":"22886:29:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22943:1:27","nodeType":"YulIdentifier","src":"22943:1:27"},{"kind":"number","nativeSrc":"22946:4:27","nodeType":"YulLiteral","src":"22946:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22939:3:27","nodeType":"YulIdentifier","src":"22939:3:27"},"nativeSrc":"22939:12:27","nodeType":"YulFunctionCall","src":"22939:12:27"},{"arguments":[{"kind":"number","nativeSrc":"22957:2:27","nodeType":"YulLiteral","src":"22957:2:27","type":"","value":"96"},{"name":"owner","nativeSrc":"22961:5:27","nodeType":"YulIdentifier","src":"22961:5:27"}],"functionName":{"name":"shl","nativeSrc":"22953:3:27","nodeType":"YulIdentifier","src":"22953:3:27"},"nativeSrc":"22953:14:27","nodeType":"YulFunctionCall","src":"22953:14:27"}],"functionName":{"name":"mstore","nativeSrc":"22932:6:27","nodeType":"YulIdentifier","src":"22932:6:27"},"nativeSrc":"22932:36:27","nodeType":"YulFunctionCall","src":"22932:36:27"},"nativeSrc":"22932:36:27","nodeType":"YulExpressionStatement","src":"22932:36:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22996:1:27","nodeType":"YulIdentifier","src":"22996:1:27"},{"kind":"number","nativeSrc":"22999:4:27","nodeType":"YulLiteral","src":"22999:4:27","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"22992:3:27","nodeType":"YulIdentifier","src":"22992:3:27"},"nativeSrc":"22992:12:27","nodeType":"YulFunctionCall","src":"22992:12:27"},{"name":"deadline","nativeSrc":"23006:8:27","nodeType":"YulIdentifier","src":"23006:8:27"}],"functionName":{"name":"mstore","nativeSrc":"22985:6:27","nodeType":"YulIdentifier","src":"22985:6:27"},"nativeSrc":"22985:30:27","nodeType":"YulFunctionCall","src":"22985:30:27"},"nativeSrc":"22985:30:27","nodeType":"YulExpressionStatement","src":"22985:30:27"},{"body":{"nativeSrc":"23073:726:27","nodeType":"YulBlock","src":"23073:726:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23102:4:27","nodeType":"YulLiteral","src":"23102:4:27","type":"","value":"0x14"},{"name":"owner","nativeSrc":"23108:5:27","nodeType":"YulIdentifier","src":"23108:5:27"}],"functionName":{"name":"mstore","nativeSrc":"23095:6:27","nodeType":"YulIdentifier","src":"23095:6:27"},"nativeSrc":"23095:19:27","nodeType":"YulFunctionCall","src":"23095:19:27"},"nativeSrc":"23095:19:27","nodeType":"YulExpressionStatement","src":"23095:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23142:4:27","nodeType":"YulLiteral","src":"23142:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"23148:34:27","nodeType":"YulLiteral","src":"23148:34:27","type":"","value":"0x7ecebe00000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23135:6:27","nodeType":"YulIdentifier","src":"23135:6:27"},"nativeSrc":"23135:48:27","nodeType":"YulFunctionCall","src":"23135:48:27"},"nativeSrc":"23135:48:27","nodeType":"YulExpressionStatement","src":"23135:48:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23237:1:27","nodeType":"YulIdentifier","src":"23237:1:27"},{"kind":"number","nativeSrc":"23240:4:27","nodeType":"YulLiteral","src":"23240:4:27","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"23233:3:27","nodeType":"YulIdentifier","src":"23233:3:27"},"nativeSrc":"23233:12:27","nodeType":"YulFunctionCall","src":"23233:12:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23258:3:27","nodeType":"YulIdentifier","src":"23258:3:27"},"nativeSrc":"23258:5:27","nodeType":"YulFunctionCall","src":"23258:5:27"},{"name":"token","nativeSrc":"23265:5:27","nodeType":"YulIdentifier","src":"23265:5:27"},{"kind":"number","nativeSrc":"23272:4:27","nodeType":"YulLiteral","src":"23272:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"23278:4:27","nodeType":"YulLiteral","src":"23278:4:27","type":"","value":"0x24"},{"arguments":[{"name":"m","nativeSrc":"23288:1:27","nodeType":"YulIdentifier","src":"23288:1:27"},{"kind":"number","nativeSrc":"23291:4:27","nodeType":"YulLiteral","src":"23291:4:27","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"23284:3:27","nodeType":"YulIdentifier","src":"23284:3:27"},"nativeSrc":"23284:12:27","nodeType":"YulFunctionCall","src":"23284:12:27"},{"kind":"number","nativeSrc":"23298:4:27","nodeType":"YulLiteral","src":"23298:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"23247:10:27","nodeType":"YulIdentifier","src":"23247:10:27"},"nativeSrc":"23247:56:27","nodeType":"YulFunctionCall","src":"23247:56:27"}],"functionName":{"name":"mstore","nativeSrc":"23226:6:27","nodeType":"YulIdentifier","src":"23226:6:27"},"nativeSrc":"23226:78:27","nodeType":"YulFunctionCall","src":"23226:78:27"},"nativeSrc":"23226:78:27","nodeType":"YulExpressionStatement","src":"23226:78:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"23332:1:27","nodeType":"YulIdentifier","src":"23332:1:27"},{"kind":"number","nativeSrc":"23335:34:27","nodeType":"YulLiteral","src":"23335:34:27","type":"","value":"0x8fcbaf0c000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23325:6:27","nodeType":"YulIdentifier","src":"23325:6:27"},"nativeSrc":"23325:45:27","nodeType":"YulFunctionCall","src":"23325:45:27"},"nativeSrc":"23325:45:27","nodeType":"YulExpressionStatement","src":"23325:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23552:1:27","nodeType":"YulIdentifier","src":"23552:1:27"},{"kind":"number","nativeSrc":"23555:4:27","nodeType":"YulLiteral","src":"23555:4:27","type":"","value":"0xb4"}],"functionName":{"name":"add","nativeSrc":"23548:3:27","nodeType":"YulIdentifier","src":"23548:3:27"},"nativeSrc":"23548:12:27","nodeType":"YulFunctionCall","src":"23548:12:27"},{"arguments":[{"kind":"number","nativeSrc":"23566:4:27","nodeType":"YulLiteral","src":"23566:4:27","type":"","value":"0xff"},{"name":"v","nativeSrc":"23572:1:27","nodeType":"YulIdentifier","src":"23572:1:27"}],"functionName":{"name":"and","nativeSrc":"23562:3:27","nodeType":"YulIdentifier","src":"23562:3:27"},"nativeSrc":"23562:12:27","nodeType":"YulFunctionCall","src":"23562:12:27"}],"functionName":{"name":"mstore","nativeSrc":"23541:6:27","nodeType":"YulIdentifier","src":"23541:6:27"},"nativeSrc":"23541:34:27","nodeType":"YulFunctionCall","src":"23541:34:27"},"nativeSrc":"23541:34:27","nodeType":"YulExpressionStatement","src":"23541:34:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23607:1:27","nodeType":"YulIdentifier","src":"23607:1:27"},{"kind":"number","nativeSrc":"23610:4:27","nodeType":"YulLiteral","src":"23610:4:27","type":"","value":"0xd4"}],"functionName":{"name":"add","nativeSrc":"23603:3:27","nodeType":"YulIdentifier","src":"23603:3:27"},"nativeSrc":"23603:12:27","nodeType":"YulFunctionCall","src":"23603:12:27"},{"name":"r","nativeSrc":"23617:1:27","nodeType":"YulIdentifier","src":"23617:1:27"}],"functionName":{"name":"mstore","nativeSrc":"23596:6:27","nodeType":"YulIdentifier","src":"23596:6:27"},"nativeSrc":"23596:23:27","nodeType":"YulFunctionCall","src":"23596:23:27"},"nativeSrc":"23596:23:27","nodeType":"YulExpressionStatement","src":"23596:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23651:1:27","nodeType":"YulIdentifier","src":"23651:1:27"},{"kind":"number","nativeSrc":"23654:4:27","nodeType":"YulLiteral","src":"23654:4:27","type":"","value":"0xf4"}],"functionName":{"name":"add","nativeSrc":"23647:3:27","nodeType":"YulIdentifier","src":"23647:3:27"},"nativeSrc":"23647:12:27","nodeType":"YulFunctionCall","src":"23647:12:27"},{"name":"s","nativeSrc":"23661:1:27","nodeType":"YulIdentifier","src":"23661:1:27"}],"functionName":{"name":"mstore","nativeSrc":"23640:6:27","nodeType":"YulIdentifier","src":"23640:6:27"},"nativeSrc":"23640:23:27","nodeType":"YulFunctionCall","src":"23640:23:27"},"nativeSrc":"23640:23:27","nodeType":"YulExpressionStatement","src":"23640:23:27"},{"nativeSrc":"23684:71:27","nodeType":"YulAssignment","src":"23684:71:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23700:3:27","nodeType":"YulIdentifier","src":"23700:3:27"},"nativeSrc":"23700:5:27","nodeType":"YulFunctionCall","src":"23700:5:27"},{"name":"token","nativeSrc":"23707:5:27","nodeType":"YulIdentifier","src":"23707:5:27"},{"kind":"number","nativeSrc":"23714:1:27","nodeType":"YulLiteral","src":"23714:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"23721:1:27","nodeType":"YulIdentifier","src":"23721:1:27"},{"kind":"number","nativeSrc":"23724:4:27","nodeType":"YulLiteral","src":"23724:4:27","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"23717:3:27","nodeType":"YulIdentifier","src":"23717:3:27"},"nativeSrc":"23717:12:27","nodeType":"YulFunctionCall","src":"23717:12:27"},{"kind":"number","nativeSrc":"23731:5:27","nodeType":"YulLiteral","src":"23731:5:27","type":"","value":"0x104"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"23738:8:27","nodeType":"YulIdentifier","src":"23738:8:27"},"nativeSrc":"23738:10:27","nodeType":"YulFunctionCall","src":"23738:10:27"},{"kind":"number","nativeSrc":"23750:4:27","nodeType":"YulLiteral","src":"23750:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"23695:4:27","nodeType":"YulIdentifier","src":"23695:4:27"},"nativeSrc":"23695:60:27","nodeType":"YulFunctionCall","src":"23695:60:27"},"variableNames":[{"name":"success","nativeSrc":"23684:7:27","nodeType":"YulIdentifier","src":"23684:7:27"}]},{"nativeSrc":"23776:5:27","nodeType":"YulBreak","src":"23776:5:27"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23044:4:27","nodeType":"YulLiteral","src":"23044:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"23038:5:27","nodeType":"YulIdentifier","src":"23038:5:27"},"nativeSrc":"23038:11:27","nodeType":"YulFunctionCall","src":"23038:11:27"},{"name":"DAI_DOMAIN_SEPARATOR","nativeSrc":"23051:20:27","nodeType":"YulIdentifier","src":"23051:20:27"}],"functionName":{"name":"eq","nativeSrc":"23035:2:27","nodeType":"YulIdentifier","src":"23035:2:27"},"nativeSrc":"23035:37:27","nodeType":"YulFunctionCall","src":"23035:37:27"},"nativeSrc":"23032:767:27","nodeType":"YulIf","src":"23032:767:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"23823:1:27","nodeType":"YulIdentifier","src":"23823:1:27"},{"kind":"number","nativeSrc":"23826:34:27","nodeType":"YulLiteral","src":"23826:34:27","type":"","value":"0xd505accf000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23816:6:27","nodeType":"YulIdentifier","src":"23816:6:27"},"nativeSrc":"23816:45:27","nodeType":"YulFunctionCall","src":"23816:45:27"},"nativeSrc":"23816:45:27","nodeType":"YulExpressionStatement","src":"23816:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23915:1:27","nodeType":"YulIdentifier","src":"23915:1:27"},{"kind":"number","nativeSrc":"23918:4:27","nodeType":"YulLiteral","src":"23918:4:27","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"23911:3:27","nodeType":"YulIdentifier","src":"23911:3:27"},"nativeSrc":"23911:12:27","nodeType":"YulFunctionCall","src":"23911:12:27"},{"name":"amount","nativeSrc":"23925:6:27","nodeType":"YulIdentifier","src":"23925:6:27"}],"functionName":{"name":"mstore","nativeSrc":"23904:6:27","nodeType":"YulIdentifier","src":"23904:6:27"},"nativeSrc":"23904:28:27","nodeType":"YulFunctionCall","src":"23904:28:27"},"nativeSrc":"23904:28:27","nodeType":"YulExpressionStatement","src":"23904:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23960:1:27","nodeType":"YulIdentifier","src":"23960:1:27"},{"kind":"number","nativeSrc":"23963:4:27","nodeType":"YulLiteral","src":"23963:4:27","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"23956:3:27","nodeType":"YulIdentifier","src":"23956:3:27"},"nativeSrc":"23956:12:27","nodeType":"YulFunctionCall","src":"23956:12:27"},{"arguments":[{"kind":"number","nativeSrc":"23974:4:27","nodeType":"YulLiteral","src":"23974:4:27","type":"","value":"0xff"},{"name":"v","nativeSrc":"23980:1:27","nodeType":"YulIdentifier","src":"23980:1:27"}],"functionName":{"name":"and","nativeSrc":"23970:3:27","nodeType":"YulIdentifier","src":"23970:3:27"},"nativeSrc":"23970:12:27","nodeType":"YulFunctionCall","src":"23970:12:27"}],"functionName":{"name":"mstore","nativeSrc":"23949:6:27","nodeType":"YulIdentifier","src":"23949:6:27"},"nativeSrc":"23949:34:27","nodeType":"YulFunctionCall","src":"23949:34:27"},"nativeSrc":"23949:34:27","nodeType":"YulExpressionStatement","src":"23949:34:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24011:1:27","nodeType":"YulIdentifier","src":"24011:1:27"},{"kind":"number","nativeSrc":"24014:4:27","nodeType":"YulLiteral","src":"24014:4:27","type":"","value":"0xb4"}],"functionName":{"name":"add","nativeSrc":"24007:3:27","nodeType":"YulIdentifier","src":"24007:3:27"},"nativeSrc":"24007:12:27","nodeType":"YulFunctionCall","src":"24007:12:27"},{"name":"r","nativeSrc":"24021:1:27","nodeType":"YulIdentifier","src":"24021:1:27"}],"functionName":{"name":"mstore","nativeSrc":"24000:6:27","nodeType":"YulIdentifier","src":"24000:6:27"},"nativeSrc":"24000:23:27","nodeType":"YulFunctionCall","src":"24000:23:27"},"nativeSrc":"24000:23:27","nodeType":"YulExpressionStatement","src":"24000:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24051:1:27","nodeType":"YulIdentifier","src":"24051:1:27"},{"kind":"number","nativeSrc":"24054:4:27","nodeType":"YulLiteral","src":"24054:4:27","type":"","value":"0xd4"}],"functionName":{"name":"add","nativeSrc":"24047:3:27","nodeType":"YulIdentifier","src":"24047:3:27"},"nativeSrc":"24047:12:27","nodeType":"YulFunctionCall","src":"24047:12:27"},{"name":"s","nativeSrc":"24061:1:27","nodeType":"YulIdentifier","src":"24061:1:27"}],"functionName":{"name":"mstore","nativeSrc":"24040:6:27","nodeType":"YulIdentifier","src":"24040:6:27"},"nativeSrc":"24040:23:27","nodeType":"YulFunctionCall","src":"24040:23:27"},"nativeSrc":"24040:23:27","nodeType":"YulExpressionStatement","src":"24040:23:27"},{"nativeSrc":"24080:70:27","nodeType":"YulAssignment","src":"24080:70:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"24096:3:27","nodeType":"YulIdentifier","src":"24096:3:27"},"nativeSrc":"24096:5:27","nodeType":"YulFunctionCall","src":"24096:5:27"},{"name":"token","nativeSrc":"24103:5:27","nodeType":"YulIdentifier","src":"24103:5:27"},{"kind":"number","nativeSrc":"24110:1:27","nodeType":"YulLiteral","src":"24110:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"24117:1:27","nodeType":"YulIdentifier","src":"24117:1:27"},{"kind":"number","nativeSrc":"24120:4:27","nodeType":"YulLiteral","src":"24120:4:27","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"24113:3:27","nodeType":"YulIdentifier","src":"24113:3:27"},"nativeSrc":"24113:12:27","nodeType":"YulFunctionCall","src":"24113:12:27"},{"kind":"number","nativeSrc":"24127:4:27","nodeType":"YulLiteral","src":"24127:4:27","type":"","value":"0xe4"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"24133:8:27","nodeType":"YulIdentifier","src":"24133:8:27"},"nativeSrc":"24133:10:27","nodeType":"YulFunctionCall","src":"24133:10:27"},{"kind":"number","nativeSrc":"24145:4:27","nodeType":"YulLiteral","src":"24145:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"24091:4:27","nodeType":"YulIdentifier","src":"24091:4:27"},"nativeSrc":"24091:59:27","nodeType":"YulFunctionCall","src":"24091:59:27"},"variableNames":[{"name":"success","nativeSrc":"24080:7:27","nodeType":"YulIdentifier","src":"24080:7:27"}]},{"nativeSrc":"24167:5:27","nodeType":"YulBreak","src":"24167:5:27"}]},"condition":{"arguments":[{"kind":"number","nativeSrc":"22137:2:27","nodeType":"YulLiteral","src":"22137:2:27","type":"","value":"96"},{"arguments":[{"name":"token","nativeSrc":"22145:5:27","nodeType":"YulIdentifier","src":"22145:5:27"},{"name":"WETH9","nativeSrc":"22152:5:27","nodeType":"YulIdentifier","src":"22152:5:27"}],"functionName":{"name":"xor","nativeSrc":"22141:3:27","nodeType":"YulIdentifier","src":"22141:3:27"},"nativeSrc":"22141:17:27","nodeType":"YulFunctionCall","src":"22141:17:27"}],"functionName":{"name":"shl","nativeSrc":"22133:3:27","nodeType":"YulIdentifier","src":"22133:3:27"},"nativeSrc":"22133:26:27","nodeType":"YulFunctionCall","src":"22133:26:27"},"nativeSrc":"22126:2060:27","nodeType":"YulForLoop","post":{"nativeSrc":"22160:2:27","nodeType":"YulBlock","src":"22160:2:27","statements":[]},"pre":{"nativeSrc":"22130:2:27","nodeType":"YulBlock","src":"22130:2:27","statements":[]},"src":"22126:2060:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11071,"isOffset":false,"isSlot":false,"src":"23051:20:27","valueSize":1},{"declaration":11075,"isOffset":false,"isSlot":false,"src":"22152:5:27","valueSize":1},{"declaration":11319,"isOffset":false,"isSlot":false,"src":"23925:6:27","valueSize":1},{"declaration":11321,"isOffset":false,"isSlot":false,"src":"23006:8:27","valueSize":1},{"declaration":11315,"isOffset":false,"isSlot":false,"src":"22961:5:27","valueSize":1},{"declaration":11315,"isOffset":false,"isSlot":false,"src":"23108:5:27","valueSize":1},{"declaration":11325,"isOffset":false,"isSlot":false,"src":"23617:1:27","valueSize":1},{"declaration":11325,"isOffset":false,"isSlot":false,"src":"24021:1:27","valueSize":1},{"declaration":11327,"isOffset":false,"isSlot":false,"src":"23661:1:27","valueSize":1},{"declaration":11327,"isOffset":false,"isSlot":false,"src":"24061:1:27","valueSize":1},{"declaration":11317,"isOffset":false,"isSlot":false,"src":"22907:7:27","valueSize":1},{"declaration":11331,"isOffset":false,"isSlot":false,"src":"23684:7:27","valueSize":1},{"declaration":11331,"isOffset":false,"isSlot":false,"src":"24080:7:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"22145:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"22680:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"23265:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"23707:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"24103:5:27","valueSize":1},{"declaration":11323,"isOffset":false,"isSlot":false,"src":"23572:1:27","valueSize":1},{"declaration":11323,"isOffset":false,"isSlot":false,"src":"23980:1:27","valueSize":1}],"id":11333,"nodeType":"InlineAssembly","src":"22103:2093:27"},{"condition":{"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24209:8:27","subExpression":{"id":11334,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11331,"src":"24210:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11347,"nodeType":"IfStatement","src":"24205:77:27","trueBody":{"expression":{"arguments":[{"id":11337,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11313,"src":"24233:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11338,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"24240:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11339,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11317,"src":"24247:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11340,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11319,"src":"24256:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11341,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11321,"src":"24264:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11342,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11323,"src":"24274:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":11343,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11325,"src":"24277:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11344,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11327,"src":"24280:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11336,"name":"simplePermit2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11371,"src":"24219:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,address,uint256,uint256,uint8,bytes32,bytes32)"}},"id":11345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:63:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11346,"nodeType":"ExpressionStatement","src":"24219:63:27"}}]},"documentation":{"id":11311,"nodeType":"StructuredDocumentation","src":"21605:210:27","text":"@dev Permit a user to spend a given amount of\n another user's tokens via native EIP-2612 permit if possible, falling\n back to Permit2 if native permit fails or is not implemented on the token."},"id":11349,"implemented":true,"kind":"function","modifiers":[],"name":"permit2","nameLocation":"21829:7:27","nodeType":"FunctionDefinition","parameters":{"id":11328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11313,"mutability":"mutable","name":"token","nameLocation":"21854:5:27","nodeType":"VariableDeclaration","scope":11349,"src":"21846:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11312,"name":"address","nodeType":"ElementaryTypeName","src":"21846:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11315,"mutability":"mutable","name":"owner","nameLocation":"21877:5:27","nodeType":"VariableDeclaration","scope":11349,"src":"21869:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11314,"name":"address","nodeType":"ElementaryTypeName","src":"21869:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11317,"mutability":"mutable","name":"spender","nameLocation":"21900:7:27","nodeType":"VariableDeclaration","scope":11349,"src":"21892:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11316,"name":"address","nodeType":"ElementaryTypeName","src":"21892:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11319,"mutability":"mutable","name":"amount","nameLocation":"21925:6:27","nodeType":"VariableDeclaration","scope":11349,"src":"21917:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11318,"name":"uint256","nodeType":"ElementaryTypeName","src":"21917:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11321,"mutability":"mutable","name":"deadline","nameLocation":"21949:8:27","nodeType":"VariableDeclaration","scope":11349,"src":"21941:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11320,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11323,"mutability":"mutable","name":"v","nameLocation":"21973:1:27","nodeType":"VariableDeclaration","scope":11349,"src":"21967:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11322,"name":"uint8","nodeType":"ElementaryTypeName","src":"21967:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11325,"mutability":"mutable","name":"r","nameLocation":"21992:1:27","nodeType":"VariableDeclaration","scope":11349,"src":"21984:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21984:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11327,"mutability":"mutable","name":"s","nameLocation":"22011:1:27","nodeType":"VariableDeclaration","scope":11349,"src":"22003:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22003:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21836:182:27"},"returnParameters":{"id":11329,"nodeType":"ParameterList","parameters":[],"src":"22028:0:27"},"scope":11372,"src":"21820:2469:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11370,"nodeType":"Block","src":"24561:1971:27","statements":[{"AST":{"nativeSrc":"24623:1903:27","nodeType":"YulBlock","src":"24623:1903:27","statements":[{"nativeSrc":"24637:20:27","nodeType":"YulVariableDeclaration","src":"24637:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"24652:4:27","nodeType":"YulLiteral","src":"24652:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24646:5:27","nodeType":"YulIdentifier","src":"24646:5:27"},"nativeSrc":"24646:11:27","nodeType":"YulFunctionCall","src":"24646:11:27"},"variables":[{"name":"m","nativeSrc":"24641:1:27","nodeType":"YulTypedName","src":"24641:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"24677:1:27","nodeType":"YulIdentifier","src":"24677:1:27"},{"kind":"number","nativeSrc":"24680:10:27","nodeType":"YulLiteral","src":"24680:10:27","type":"","value":"0x927da105"}],"functionName":{"name":"mstore","nativeSrc":"24670:6:27","nodeType":"YulIdentifier","src":"24670:6:27"},"nativeSrc":"24670:21:27","nodeType":"YulFunctionCall","src":"24670:21:27"},"nativeSrc":"24670:21:27","nodeType":"YulExpressionStatement","src":"24670:21:27"},{"nativeSrc":"24745:318:27","nodeType":"YulBlock","src":"24745:318:27","statements":[{"nativeSrc":"24763:34:27","nodeType":"YulVariableDeclaration","src":"24763:34:27","value":{"arguments":[{"kind":"number","nativeSrc":"24786:2:27","nodeType":"YulLiteral","src":"24786:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24794:1:27","nodeType":"YulLiteral","src":"24794:1:27","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"24790:3:27","nodeType":"YulIdentifier","src":"24790:3:27"},"nativeSrc":"24790:6:27","nodeType":"YulFunctionCall","src":"24790:6:27"}],"functionName":{"name":"shr","nativeSrc":"24782:3:27","nodeType":"YulIdentifier","src":"24782:3:27"},"nativeSrc":"24782:15:27","nodeType":"YulFunctionCall","src":"24782:15:27"},"variables":[{"name":"addressMask","nativeSrc":"24767:11:27","nodeType":"YulTypedName","src":"24767:11:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24825:1:27","nodeType":"YulIdentifier","src":"24825:1:27"},{"kind":"number","nativeSrc":"24828:4:27","nodeType":"YulLiteral","src":"24828:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24821:3:27","nodeType":"YulIdentifier","src":"24821:3:27"},"nativeSrc":"24821:12:27","nodeType":"YulFunctionCall","src":"24821:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"24839:11:27","nodeType":"YulIdentifier","src":"24839:11:27"},{"name":"owner","nativeSrc":"24852:5:27","nodeType":"YulIdentifier","src":"24852:5:27"}],"functionName":{"name":"and","nativeSrc":"24835:3:27","nodeType":"YulIdentifier","src":"24835:3:27"},"nativeSrc":"24835:23:27","nodeType":"YulFunctionCall","src":"24835:23:27"}],"functionName":{"name":"mstore","nativeSrc":"24814:6:27","nodeType":"YulIdentifier","src":"24814:6:27"},"nativeSrc":"24814:45:27","nodeType":"YulFunctionCall","src":"24814:45:27"},"nativeSrc":"24814:45:27","nodeType":"YulExpressionStatement","src":"24814:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24887:1:27","nodeType":"YulIdentifier","src":"24887:1:27"},{"kind":"number","nativeSrc":"24890:4:27","nodeType":"YulLiteral","src":"24890:4:27","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"24883:3:27","nodeType":"YulIdentifier","src":"24883:3:27"},"nativeSrc":"24883:12:27","nodeType":"YulFunctionCall","src":"24883:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"24901:11:27","nodeType":"YulIdentifier","src":"24901:11:27"},{"name":"token","nativeSrc":"24914:5:27","nodeType":"YulIdentifier","src":"24914:5:27"}],"functionName":{"name":"and","nativeSrc":"24897:3:27","nodeType":"YulIdentifier","src":"24897:3:27"},"nativeSrc":"24897:23:27","nodeType":"YulFunctionCall","src":"24897:23:27"}],"functionName":{"name":"mstore","nativeSrc":"24876:6:27","nodeType":"YulIdentifier","src":"24876:6:27"},"nativeSrc":"24876:45:27","nodeType":"YulFunctionCall","src":"24876:45:27"},"nativeSrc":"24876:45:27","nodeType":"YulExpressionStatement","src":"24876:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24949:1:27","nodeType":"YulIdentifier","src":"24949:1:27"},{"kind":"number","nativeSrc":"24952:4:27","nodeType":"YulLiteral","src":"24952:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"24945:3:27","nodeType":"YulIdentifier","src":"24945:3:27"},"nativeSrc":"24945:12:27","nodeType":"YulFunctionCall","src":"24945:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"24963:11:27","nodeType":"YulIdentifier","src":"24963:11:27"},{"name":"spender","nativeSrc":"24976:7:27","nodeType":"YulIdentifier","src":"24976:7:27"}],"functionName":{"name":"and","nativeSrc":"24959:3:27","nodeType":"YulIdentifier","src":"24959:3:27"},"nativeSrc":"24959:25:27","nodeType":"YulFunctionCall","src":"24959:25:27"}],"functionName":{"name":"mstore","nativeSrc":"24938:6:27","nodeType":"YulIdentifier","src":"24938:6:27"},"nativeSrc":"24938:47:27","nodeType":"YulFunctionCall","src":"24938:47:27"},"nativeSrc":"24938:47:27","nodeType":"YulExpressionStatement","src":"24938:47:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25013:1:27","nodeType":"YulIdentifier","src":"25013:1:27"},{"kind":"number","nativeSrc":"25016:4:27","nodeType":"YulLiteral","src":"25016:4:27","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"25009:3:27","nodeType":"YulIdentifier","src":"25009:3:27"},"nativeSrc":"25009:12:27","nodeType":"YulFunctionCall","src":"25009:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"25027:11:27","nodeType":"YulIdentifier","src":"25027:11:27"},{"name":"spender","nativeSrc":"25040:7:27","nodeType":"YulIdentifier","src":"25040:7:27"}],"functionName":{"name":"and","nativeSrc":"25023:3:27","nodeType":"YulIdentifier","src":"25023:3:27"},"nativeSrc":"25023:25:27","nodeType":"YulFunctionCall","src":"25023:25:27"}],"functionName":{"name":"mstore","nativeSrc":"25002:6:27","nodeType":"YulIdentifier","src":"25002:6:27"},"nativeSrc":"25002:47:27","nodeType":"YulFunctionCall","src":"25002:47:27"},"nativeSrc":"25002:47:27","nodeType":"YulExpressionStatement","src":"25002:47:27"}]},{"nativeSrc":"25076:47:27","nodeType":"YulVariableDeclaration","src":"25076:47:27","value":{"arguments":[{"name":"PERMIT2","nativeSrc":"25089:7:27","nodeType":"YulIdentifier","src":"25089:7:27"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25109:3:27","nodeType":"YulLiteral","src":"25109:3:27","type":"","value":"160"},{"name":"amount","nativeSrc":"25114:6:27","nodeType":"YulIdentifier","src":"25114:6:27"}],"functionName":{"name":"shr","nativeSrc":"25105:3:27","nodeType":"YulIdentifier","src":"25105:3:27"},"nativeSrc":"25105:16:27","nodeType":"YulFunctionCall","src":"25105:16:27"}],"functionName":{"name":"iszero","nativeSrc":"25098:6:27","nodeType":"YulIdentifier","src":"25098:6:27"},"nativeSrc":"25098:24:27","nodeType":"YulFunctionCall","src":"25098:24:27"}],"functionName":{"name":"mul","nativeSrc":"25085:3:27","nodeType":"YulIdentifier","src":"25085:3:27"},"nativeSrc":"25085:38:27","nodeType":"YulFunctionCall","src":"25085:38:27"},"variables":[{"name":"p","nativeSrc":"25080:1:27","nodeType":"YulTypedName","src":"25080:1:27","type":""}]},{"body":{"nativeSrc":"25442:174:27","nodeType":"YulBlock","src":"25442:174:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25467:4:27","nodeType":"YulLiteral","src":"25467:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25473:18:27","nodeType":"YulLiteral","src":"25473:18:27","type":"","value":"0x6b836e6b8757f0fd"}],"functionName":{"name":"mstore","nativeSrc":"25460:6:27","nodeType":"YulIdentifier","src":"25460:6:27"},"nativeSrc":"25460:32:27","nodeType":"YulFunctionCall","src":"25460:32:27"},"nativeSrc":"25460:32:27","nodeType":"YulExpressionStatement","src":"25460:32:27"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25571:4:27","nodeType":"YulLiteral","src":"25571:4:27","type":"","value":"0x18"},{"arguments":[{"kind":"number","nativeSrc":"25581:1:27","nodeType":"YulLiteral","src":"25581:1:27","type":"","value":"2"},{"arguments":[{"name":"p","nativeSrc":"25591:1:27","nodeType":"YulIdentifier","src":"25591:1:27"}],"functionName":{"name":"iszero","nativeSrc":"25584:6:27","nodeType":"YulIdentifier","src":"25584:6:27"},"nativeSrc":"25584:9:27","nodeType":"YulFunctionCall","src":"25584:9:27"}],"functionName":{"name":"shl","nativeSrc":"25577:3:27","nodeType":"YulIdentifier","src":"25577:3:27"},"nativeSrc":"25577:17:27","nodeType":"YulFunctionCall","src":"25577:17:27"}],"functionName":{"name":"add","nativeSrc":"25567:3:27","nodeType":"YulIdentifier","src":"25567:3:27"},"nativeSrc":"25567:28:27","nodeType":"YulFunctionCall","src":"25567:28:27"},{"kind":"number","nativeSrc":"25597:4:27","nodeType":"YulLiteral","src":"25597:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25560:6:27","nodeType":"YulIdentifier","src":"25560:6:27"},"nativeSrc":"25560:42:27","nodeType":"YulFunctionCall","src":"25560:42:27"},"nativeSrc":"25560:42:27","nodeType":"YulExpressionStatement","src":"25560:42:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25251:14:27","nodeType":"YulIdentifier","src":"25251:14:27"},"nativeSrc":"25251:16:27","nodeType":"YulFunctionCall","src":"25251:16:27"},{"kind":"number","nativeSrc":"25269:4:27","nodeType":"YulLiteral","src":"25269:4:27","type":"","value":"0x5f"}],"functionName":{"name":"gt","nativeSrc":"25248:2:27","nodeType":"YulIdentifier","src":"25248:2:27"},"nativeSrc":"25248:26:27","nodeType":"YulFunctionCall","src":"25248:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"25360:3:27","nodeType":"YulIdentifier","src":"25360:3:27"},"nativeSrc":"25360:5:27","nodeType":"YulFunctionCall","src":"25360:5:27"},{"name":"p","nativeSrc":"25367:1:27","nodeType":"YulIdentifier","src":"25367:1:27"},{"arguments":[{"name":"m","nativeSrc":"25374:1:27","nodeType":"YulIdentifier","src":"25374:1:27"},{"kind":"number","nativeSrc":"25377:4:27","nodeType":"YulLiteral","src":"25377:4:27","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"25370:3:27","nodeType":"YulIdentifier","src":"25370:3:27"},"nativeSrc":"25370:12:27","nodeType":"YulFunctionCall","src":"25370:12:27"},{"kind":"number","nativeSrc":"25384:4:27","nodeType":"YulLiteral","src":"25384:4:27","type":"","value":"0x64"},{"arguments":[{"name":"m","nativeSrc":"25394:1:27","nodeType":"YulIdentifier","src":"25394:1:27"},{"kind":"number","nativeSrc":"25397:4:27","nodeType":"YulLiteral","src":"25397:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25390:3:27","nodeType":"YulIdentifier","src":"25390:3:27"},"nativeSrc":"25390:12:27","nodeType":"YulFunctionCall","src":"25390:12:27"},{"kind":"number","nativeSrc":"25404:4:27","nodeType":"YulLiteral","src":"25404:4:27","type":"","value":"0x60"}],"functionName":{"name":"staticcall","nativeSrc":"25349:10:27","nodeType":"YulIdentifier","src":"25349:10:27"},"nativeSrc":"25349:60:27","nodeType":"YulFunctionCall","src":"25349:60:27"}],"functionName":{"name":"and","nativeSrc":"25163:3:27","nodeType":"YulIdentifier","src":"25163:3:27"},"nativeSrc":"25163:264:27","nodeType":"YulFunctionCall","src":"25163:264:27"}],"functionName":{"name":"iszero","nativeSrc":"25139:6:27","nodeType":"YulIdentifier","src":"25139:6:27"},"nativeSrc":"25139:302:27","nodeType":"YulFunctionCall","src":"25139:302:27"},"nativeSrc":"25136:480:27","nodeType":"YulIf","src":"25136:480:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"25636:1:27","nodeType":"YulIdentifier","src":"25636:1:27"},{"kind":"number","nativeSrc":"25639:10:27","nodeType":"YulLiteral","src":"25639:10:27","type":"","value":"0x2b67b570"}],"functionName":{"name":"mstore","nativeSrc":"25629:6:27","nodeType":"YulIdentifier","src":"25629:6:27"},"nativeSrc":"25629:21:27","nodeType":"YulFunctionCall","src":"25629:21:27"},"nativeSrc":"25629:21:27","nodeType":"YulExpressionStatement","src":"25629:21:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25821:1:27","nodeType":"YulIdentifier","src":"25821:1:27"},{"kind":"number","nativeSrc":"25824:4:27","nodeType":"YulLiteral","src":"25824:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25817:3:27","nodeType":"YulIdentifier","src":"25817:3:27"},"nativeSrc":"25817:12:27","nodeType":"YulFunctionCall","src":"25817:12:27"},{"name":"amount","nativeSrc":"25831:6:27","nodeType":"YulIdentifier","src":"25831:6:27"}],"functionName":{"name":"mstore","nativeSrc":"25810:6:27","nodeType":"YulIdentifier","src":"25810:6:27"},"nativeSrc":"25810:28:27","nodeType":"YulFunctionCall","src":"25810:28:27"},"nativeSrc":"25810:28:27","nodeType":"YulExpressionStatement","src":"25810:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25862:1:27","nodeType":"YulIdentifier","src":"25862:1:27"},{"kind":"number","nativeSrc":"25865:4:27","nodeType":"YulLiteral","src":"25865:4:27","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25858:3:27","nodeType":"YulIdentifier","src":"25858:3:27"},"nativeSrc":"25858:12:27","nodeType":"YulFunctionCall","src":"25858:12:27"},{"kind":"number","nativeSrc":"25872:14:27","nodeType":"YulLiteral","src":"25872:14:27","type":"","value":"0xffffffffffff"}],"functionName":{"name":"mstore","nativeSrc":"25851:6:27","nodeType":"YulIdentifier","src":"25851:6:27"},"nativeSrc":"25851:36:27","nodeType":"YulFunctionCall","src":"25851:36:27"},"nativeSrc":"25851:36:27","nodeType":"YulExpressionStatement","src":"25851:36:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26055:1:27","nodeType":"YulIdentifier","src":"26055:1:27"},{"kind":"number","nativeSrc":"26058:4:27","nodeType":"YulLiteral","src":"26058:4:27","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"26051:3:27","nodeType":"YulIdentifier","src":"26051:3:27"},"nativeSrc":"26051:12:27","nodeType":"YulFunctionCall","src":"26051:12:27"},{"name":"deadline","nativeSrc":"26065:8:27","nodeType":"YulIdentifier","src":"26065:8:27"}],"functionName":{"name":"mstore","nativeSrc":"26044:6:27","nodeType":"YulIdentifier","src":"26044:6:27"},"nativeSrc":"26044:30:27","nodeType":"YulFunctionCall","src":"26044:30:27"},"nativeSrc":"26044:30:27","nodeType":"YulExpressionStatement","src":"26044:30:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26098:1:27","nodeType":"YulIdentifier","src":"26098:1:27"},{"kind":"number","nativeSrc":"26101:5:27","nodeType":"YulLiteral","src":"26101:5:27","type":"","value":"0x100"}],"functionName":{"name":"add","nativeSrc":"26094:3:27","nodeType":"YulIdentifier","src":"26094:3:27"},"nativeSrc":"26094:13:27","nodeType":"YulFunctionCall","src":"26094:13:27"},{"kind":"number","nativeSrc":"26109:5:27","nodeType":"YulLiteral","src":"26109:5:27","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"26087:6:27","nodeType":"YulIdentifier","src":"26087:6:27"},"nativeSrc":"26087:28:27","nodeType":"YulFunctionCall","src":"26087:28:27"},"nativeSrc":"26087:28:27","nodeType":"YulExpressionStatement","src":"26087:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26162:1:27","nodeType":"YulIdentifier","src":"26162:1:27"},{"kind":"number","nativeSrc":"26165:5:27","nodeType":"YulLiteral","src":"26165:5:27","type":"","value":"0x120"}],"functionName":{"name":"add","nativeSrc":"26158:3:27","nodeType":"YulIdentifier","src":"26158:3:27"},"nativeSrc":"26158:13:27","nodeType":"YulFunctionCall","src":"26158:13:27"},{"kind":"number","nativeSrc":"26173:4:27","nodeType":"YulLiteral","src":"26173:4:27","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"26151:6:27","nodeType":"YulIdentifier","src":"26151:6:27"},"nativeSrc":"26151:27:27","nodeType":"YulFunctionCall","src":"26151:27:27"},"nativeSrc":"26151:27:27","nodeType":"YulExpressionStatement","src":"26151:27:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26225:1:27","nodeType":"YulIdentifier","src":"26225:1:27"},{"kind":"number","nativeSrc":"26228:5:27","nodeType":"YulLiteral","src":"26228:5:27","type":"","value":"0x140"}],"functionName":{"name":"add","nativeSrc":"26221:3:27","nodeType":"YulIdentifier","src":"26221:3:27"},"nativeSrc":"26221:13:27","nodeType":"YulFunctionCall","src":"26221:13:27"},{"name":"r","nativeSrc":"26236:1:27","nodeType":"YulIdentifier","src":"26236:1:27"}],"functionName":{"name":"mstore","nativeSrc":"26214:6:27","nodeType":"YulIdentifier","src":"26214:6:27"},"nativeSrc":"26214:24:27","nodeType":"YulFunctionCall","src":"26214:24:27"},"nativeSrc":"26214:24:27","nodeType":"YulExpressionStatement","src":"26214:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26262:1:27","nodeType":"YulIdentifier","src":"26262:1:27"},{"kind":"number","nativeSrc":"26265:5:27","nodeType":"YulLiteral","src":"26265:5:27","type":"","value":"0x160"}],"functionName":{"name":"add","nativeSrc":"26258:3:27","nodeType":"YulIdentifier","src":"26258:3:27"},"nativeSrc":"26258:13:27","nodeType":"YulFunctionCall","src":"26258:13:27"},{"name":"s","nativeSrc":"26273:1:27","nodeType":"YulIdentifier","src":"26273:1:27"}],"functionName":{"name":"mstore","nativeSrc":"26251:6:27","nodeType":"YulIdentifier","src":"26251:6:27"},"nativeSrc":"26251:24:27","nodeType":"YulFunctionCall","src":"26251:24:27"},"nativeSrc":"26251:24:27","nodeType":"YulExpressionStatement","src":"26251:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26299:1:27","nodeType":"YulIdentifier","src":"26299:1:27"},{"kind":"number","nativeSrc":"26302:5:27","nodeType":"YulLiteral","src":"26302:5:27","type":"","value":"0x180"}],"functionName":{"name":"add","nativeSrc":"26295:3:27","nodeType":"YulIdentifier","src":"26295:3:27"},"nativeSrc":"26295:13:27","nodeType":"YulFunctionCall","src":"26295:13:27"},{"arguments":[{"kind":"number","nativeSrc":"26314:3:27","nodeType":"YulLiteral","src":"26314:3:27","type":"","value":"248"},{"name":"v","nativeSrc":"26319:1:27","nodeType":"YulIdentifier","src":"26319:1:27"}],"functionName":{"name":"shl","nativeSrc":"26310:3:27","nodeType":"YulIdentifier","src":"26310:3:27"},"nativeSrc":"26310:11:27","nodeType":"YulFunctionCall","src":"26310:11:27"}],"functionName":{"name":"mstore","nativeSrc":"26288:6:27","nodeType":"YulIdentifier","src":"26288:6:27"},"nativeSrc":"26288:34:27","nodeType":"YulFunctionCall","src":"26288:34:27"},"nativeSrc":"26288:34:27","nodeType":"YulExpressionStatement","src":"26288:34:27"},{"body":{"nativeSrc":"26403:113:27","nodeType":"YulBlock","src":"26403:113:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26428:4:27","nodeType":"YulLiteral","src":"26428:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"26434:10:27","nodeType":"YulLiteral","src":"26434:10:27","type":"","value":"0x6b836e6b"}],"functionName":{"name":"mstore","nativeSrc":"26421:6:27","nodeType":"YulIdentifier","src":"26421:6:27"},"nativeSrc":"26421:24:27","nodeType":"YulFunctionCall","src":"26421:24:27"},"nativeSrc":"26421:24:27","nodeType":"YulExpressionStatement","src":"26421:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26491:4:27","nodeType":"YulLiteral","src":"26491:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"26497:4:27","nodeType":"YulLiteral","src":"26497:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"26484:6:27","nodeType":"YulIdentifier","src":"26484:6:27"},"nativeSrc":"26484:18:27","nodeType":"YulFunctionCall","src":"26484:18:27"},"nativeSrc":"26484:18:27","nodeType":"YulExpressionStatement","src":"26484:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"26350:3:27","nodeType":"YulIdentifier","src":"26350:3:27"},"nativeSrc":"26350:5:27","nodeType":"YulFunctionCall","src":"26350:5:27"},{"name":"p","nativeSrc":"26357:1:27","nodeType":"YulIdentifier","src":"26357:1:27"},{"kind":"number","nativeSrc":"26360:1:27","nodeType":"YulLiteral","src":"26360:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"26367:1:27","nodeType":"YulIdentifier","src":"26367:1:27"},{"kind":"number","nativeSrc":"26370:4:27","nodeType":"YulLiteral","src":"26370:4:27","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"26363:3:27","nodeType":"YulIdentifier","src":"26363:3:27"},"nativeSrc":"26363:12:27","nodeType":"YulFunctionCall","src":"26363:12:27"},{"kind":"number","nativeSrc":"26377:5:27","nodeType":"YulLiteral","src":"26377:5:27","type":"","value":"0x184"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"26384:8:27","nodeType":"YulIdentifier","src":"26384:8:27"},"nativeSrc":"26384:10:27","nodeType":"YulFunctionCall","src":"26384:10:27"},{"kind":"number","nativeSrc":"26396:4:27","nodeType":"YulLiteral","src":"26396:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"26345:4:27","nodeType":"YulIdentifier","src":"26345:4:27"},"nativeSrc":"26345:56:27","nodeType":"YulFunctionCall","src":"26345:56:27"}],"functionName":{"name":"iszero","nativeSrc":"26338:6:27","nodeType":"YulIdentifier","src":"26338:6:27"},"nativeSrc":"26338:64:27","nodeType":"YulFunctionCall","src":"26338:64:27"},"nativeSrc":"26335:181:27","nodeType":"YulIf","src":"26335:181:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11079,"isOffset":false,"isSlot":false,"src":"25089:7:27","valueSize":1},{"declaration":11358,"isOffset":false,"isSlot":false,"src":"25114:6:27","valueSize":1},{"declaration":11358,"isOffset":false,"isSlot":false,"src":"25831:6:27","valueSize":1},{"declaration":11360,"isOffset":false,"isSlot":false,"src":"26065:8:27","valueSize":1},{"declaration":11354,"isOffset":false,"isSlot":false,"src":"24852:5:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"26236:1:27","valueSize":1},{"declaration":11366,"isOffset":false,"isSlot":false,"src":"26273:1:27","valueSize":1},{"declaration":11356,"isOffset":false,"isSlot":false,"src":"24976:7:27","valueSize":1},{"declaration":11356,"isOffset":false,"isSlot":false,"src":"25040:7:27","valueSize":1},{"declaration":11352,"isOffset":false,"isSlot":false,"src":"24914:5:27","valueSize":1},{"declaration":11362,"isOffset":false,"isSlot":false,"src":"26319:1:27","valueSize":1}],"id":11369,"nodeType":"InlineAssembly","src":"24614:1912:27"}]},"documentation":{"id":11350,"nodeType":"StructuredDocumentation","src":"24295:47:27","text":"@dev Simple permit on the Permit2 contract."},"id":11371,"implemented":true,"kind":"function","modifiers":[],"name":"simplePermit2","nameLocation":"24356:13:27","nodeType":"FunctionDefinition","parameters":{"id":11367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11352,"mutability":"mutable","name":"token","nameLocation":"24387:5:27","nodeType":"VariableDeclaration","scope":11371,"src":"24379:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11351,"name":"address","nodeType":"ElementaryTypeName","src":"24379:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11354,"mutability":"mutable","name":"owner","nameLocation":"24410:5:27","nodeType":"VariableDeclaration","scope":11371,"src":"24402:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11353,"name":"address","nodeType":"ElementaryTypeName","src":"24402:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11356,"mutability":"mutable","name":"spender","nameLocation":"24433:7:27","nodeType":"VariableDeclaration","scope":11371,"src":"24425:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11355,"name":"address","nodeType":"ElementaryTypeName","src":"24425:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11358,"mutability":"mutable","name":"amount","nameLocation":"24458:6:27","nodeType":"VariableDeclaration","scope":11371,"src":"24450:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11357,"name":"uint256","nodeType":"ElementaryTypeName","src":"24450:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11360,"mutability":"mutable","name":"deadline","nameLocation":"24482:8:27","nodeType":"VariableDeclaration","scope":11371,"src":"24474:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11359,"name":"uint256","nodeType":"ElementaryTypeName","src":"24474:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11362,"mutability":"mutable","name":"v","nameLocation":"24506:1:27","nodeType":"VariableDeclaration","scope":11371,"src":"24500:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11361,"name":"uint8","nodeType":"ElementaryTypeName","src":"24500:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11364,"mutability":"mutable","name":"r","nameLocation":"24525:1:27","nodeType":"VariableDeclaration","scope":11371,"src":"24517:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24517:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11366,"mutability":"mutable","name":"s","nameLocation":"24544:1:27","nodeType":"VariableDeclaration","scope":11371,"src":"24536:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24536:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24369:182:27"},"returnParameters":{"id":11368,"nodeType":"ParameterList","parameters":[],"src":"24561:0:27"},"scope":11372,"src":"24347:2185:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11373,"src":"701:25833:27","usedErrors":[11044,11047,11050,11053,11056,11059],"usedEvents":[]}],"src":"32:26503:27"},"id":27},"@solady/utils/SignatureCheckerLib.sol":{"ast":{"absolutePath":"@solady/utils/SignatureCheckerLib.sol","exportedSymbols":{"SignatureCheckerLib":[11528]},"id":11529,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11374,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:28"},{"abstract":false,"baseContracts":[],"canonicalName":"SignatureCheckerLib","contractDependencies":[],"contractKind":"library","documentation":{"id":11375,"nodeType":"StructuredDocumentation","src":"57:1381:28","text":"@notice Signature verification helper that supports both ECDSA signatures from EOAs\n and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\n @dev Note:\n - The signature checking functions use the ecrecover precompile (0x1).\n - The `bytes memory signature` variants use the identity precompile (0x4)\n to copy memory internally.\n - Unlike ECDSA signatures, contract signatures are revocable.\n - As of Solady version 0.0.134, all `bytes signature` variants accept both\n regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.\n See: https://eips.ethereum.org/EIPS/eip-2098\n This is for calldata efficiency on smart accounts prevalent on L2s.\n WARNING! Do NOT use signatures as unique identifiers:\n - Use a nonce in the digest to prevent replay attacks on the same contract.\n - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.\n EIP-712 also enables readable signing of typed data for better user safety.\n This implementation does NOT check if a signature is non-malleable."},"fullyImplemented":true,"id":11528,"linearizedBaseContracts":[11528],"name":"SignatureCheckerLib","nameLocation":"1446:19:28","nodeType":"ContractDefinition","nodes":[{"body":{"id":11388,"nodeType":"Block","src":"2128:4006:28","statements":[{"AST":{"nativeSrc":"2190:3938:28","nodeType":"YulBlock","src":"2190:3938:28","statements":[{"body":{"nativeSrc":"2332:3786:28","nodeType":"YulBlock","src":"2332:3786:28","statements":[{"nativeSrc":"2350:20:28","nodeType":"YulVariableDeclaration","src":"2350:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"2365:4:28","nodeType":"YulLiteral","src":"2365:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2359:5:28","nodeType":"YulIdentifier","src":"2359:5:28"},"nativeSrc":"2359:11:28","nodeType":"YulFunctionCall","src":"2359:11:28"},"variables":[{"name":"m","nativeSrc":"2354:1:28","nodeType":"YulTypedName","src":"2354:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2394:4:28","nodeType":"YulLiteral","src":"2394:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"2400:4:28","nodeType":"YulIdentifier","src":"2400:4:28"}],"functionName":{"name":"mstore","nativeSrc":"2387:6:28","nodeType":"YulIdentifier","src":"2387:6:28"},"nativeSrc":"2387:18:28","nodeType":"YulFunctionCall","src":"2387:18:28"},"nativeSrc":"2387:18:28","nodeType":"YulExpressionStatement","src":"2387:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2429:4:28","nodeType":"YulLiteral","src":"2429:4:28","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2445:9:28","nodeType":"YulIdentifier","src":"2445:9:28"},{"kind":"number","nativeSrc":"2456:4:28","nodeType":"YulLiteral","src":"2456:4:28","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2441:3:28","nodeType":"YulIdentifier","src":"2441:3:28"},"nativeSrc":"2441:20:28","nodeType":"YulFunctionCall","src":"2441:20:28"}],"functionName":{"name":"mload","nativeSrc":"2435:5:28","nodeType":"YulIdentifier","src":"2435:5:28"},"nativeSrc":"2435:27:28","nodeType":"YulFunctionCall","src":"2435:27:28"}],"functionName":{"name":"mstore","nativeSrc":"2422:6:28","nodeType":"YulIdentifier","src":"2422:6:28"},"nativeSrc":"2422:41:28","nodeType":"YulFunctionCall","src":"2422:41:28"},"nativeSrc":"2422:41:28","nodeType":"YulExpressionStatement","src":"2422:41:28"},{"body":{"nativeSrc":"2516:1049:28","nodeType":"YulBlock","src":"2516:1049:28","statements":[{"nativeSrc":"2538:37:28","nodeType":"YulVariableDeclaration","src":"2538:37:28","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2558:9:28","nodeType":"YulIdentifier","src":"2558:9:28"},{"kind":"number","nativeSrc":"2569:4:28","nodeType":"YulLiteral","src":"2569:4:28","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"2554:3:28","nodeType":"YulIdentifier","src":"2554:3:28"},"nativeSrc":"2554:20:28","nodeType":"YulFunctionCall","src":"2554:20:28"}],"functionName":{"name":"mload","nativeSrc":"2548:5:28","nodeType":"YulIdentifier","src":"2548:5:28"},"nativeSrc":"2548:27:28","nodeType":"YulFunctionCall","src":"2548:27:28"},"variables":[{"name":"vs","nativeSrc":"2542:2:28","nodeType":"YulTypedName","src":"2542:2:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2603:4:28","nodeType":"YulLiteral","src":"2603:4:28","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2617:3:28","nodeType":"YulLiteral","src":"2617:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"2622:2:28","nodeType":"YulIdentifier","src":"2622:2:28"}],"functionName":{"name":"shr","nativeSrc":"2613:3:28","nodeType":"YulIdentifier","src":"2613:3:28"},"nativeSrc":"2613:12:28","nodeType":"YulFunctionCall","src":"2613:12:28"},{"kind":"number","nativeSrc":"2627:2:28","nodeType":"YulLiteral","src":"2627:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"2609:3:28","nodeType":"YulIdentifier","src":"2609:3:28"},"nativeSrc":"2609:21:28","nodeType":"YulFunctionCall","src":"2609:21:28"}],"functionName":{"name":"mstore","nativeSrc":"2596:6:28","nodeType":"YulIdentifier","src":"2596:6:28"},"nativeSrc":"2596:35:28","nodeType":"YulFunctionCall","src":"2596:35:28"},"nativeSrc":"2596:35:28","nodeType":"YulExpressionStatement","src":"2596:35:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2667:4:28","nodeType":"YulLiteral","src":"2667:4:28","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"2677:1:28","nodeType":"YulLiteral","src":"2677:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"2684:1:28","nodeType":"YulLiteral","src":"2684:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"2687:2:28","nodeType":"YulIdentifier","src":"2687:2:28"}],"functionName":{"name":"shl","nativeSrc":"2680:3:28","nodeType":"YulIdentifier","src":"2680:3:28"},"nativeSrc":"2680:10:28","nodeType":"YulFunctionCall","src":"2680:10:28"}],"functionName":{"name":"shr","nativeSrc":"2673:3:28","nodeType":"YulIdentifier","src":"2673:3:28"},"nativeSrc":"2673:18:28","nodeType":"YulFunctionCall","src":"2673:18:28"}],"functionName":{"name":"mstore","nativeSrc":"2660:6:28","nodeType":"YulIdentifier","src":"2660:6:28"},"nativeSrc":"2660:32:28","nodeType":"YulFunctionCall","src":"2660:32:28"},"nativeSrc":"2660:32:28","nodeType":"YulExpressionStatement","src":"2660:32:28"},{"nativeSrc":"2721:417:28","nodeType":"YulVariableDeclaration","src":"2721:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"2794:3:28","nodeType":"YulIdentifier","src":"2794:3:28"},"nativeSrc":"2794:5:28","nodeType":"YulFunctionCall","src":"2794:5:28"},{"kind":"number","nativeSrc":"2872:1:28","nodeType":"YulLiteral","src":"2872:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"2930:4:28","nodeType":"YulLiteral","src":"2930:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2983:4:28","nodeType":"YulLiteral","src":"2983:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"3035:4:28","nodeType":"YulLiteral","src":"3035:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"3089:4:28","nodeType":"YulLiteral","src":"3089:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"2754:10:28","nodeType":"YulIdentifier","src":"2754:10:28"},"nativeSrc":"2754:384:28","nodeType":"YulFunctionCall","src":"2754:384:28"},"variables":[{"name":"t","nativeSrc":"2725:1:28","nodeType":"YulTypedName","src":"2725:1:28","type":""}]},{"body":{"nativeSrc":"3315:232:28","nodeType":"YulBlock","src":"3315:232:28","statements":[{"nativeSrc":"3341:12:28","nodeType":"YulAssignment","src":"3341:12:28","value":{"kind":"number","nativeSrc":"3352:1:28","nodeType":"YulLiteral","src":"3352:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"3341:7:28","nodeType":"YulIdentifier","src":"3341:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3385:4:28","nodeType":"YulLiteral","src":"3385:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"3391:1:28","nodeType":"YulLiteral","src":"3391:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3378:6:28","nodeType":"YulIdentifier","src":"3378:6:28"},"nativeSrc":"3378:15:28","nodeType":"YulFunctionCall","src":"3378:15:28"},"nativeSrc":"3378:15:28","nodeType":"YulExpressionStatement","src":"3378:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3451:4:28","nodeType":"YulLiteral","src":"3451:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"3457:1:28","nodeType":"YulIdentifier","src":"3457:1:28"}],"functionName":{"name":"mstore","nativeSrc":"3444:6:28","nodeType":"YulIdentifier","src":"3444:6:28"},"nativeSrc":"3444:15:28","nodeType":"YulFunctionCall","src":"3444:15:28"},"nativeSrc":"3444:15:28","nodeType":"YulExpressionStatement","src":"3444:15:28"},{"nativeSrc":"3520:5:28","nodeType":"YulBreak","src":"3520:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"3272:14:28","nodeType":"YulIdentifier","src":"3272:14:28"},"nativeSrc":"3272:16:28","nodeType":"YulFunctionCall","src":"3272:16:28"}],"functionName":{"name":"iszero","nativeSrc":"3265:6:28","nodeType":"YulIdentifier","src":"3265:6:28"},"nativeSrc":"3265:24:28","nodeType":"YulFunctionCall","src":"3265:24:28"},{"arguments":[{"name":"signer","nativeSrc":"3295:6:28","nodeType":"YulIdentifier","src":"3295:6:28"},{"arguments":[{"name":"t","nativeSrc":"3309:1:28","nodeType":"YulIdentifier","src":"3309:1:28"}],"functionName":{"name":"mload","nativeSrc":"3303:5:28","nodeType":"YulIdentifier","src":"3303:5:28"},"nativeSrc":"3303:8:28","nodeType":"YulFunctionCall","src":"3303:8:28"}],"functionName":{"name":"xor","nativeSrc":"3291:3:28","nodeType":"YulIdentifier","src":"3291:3:28"},"nativeSrc":"3291:21:28","nodeType":"YulFunctionCall","src":"3291:21:28"}],"functionName":{"name":"or","nativeSrc":"3262:2:28","nodeType":"YulIdentifier","src":"3262:2:28"},"nativeSrc":"3262:51:28","nodeType":"YulFunctionCall","src":"3262:51:28"}],"functionName":{"name":"iszero","nativeSrc":"3255:6:28","nodeType":"YulIdentifier","src":"3255:6:28"},"nativeSrc":"3255:59:28","nodeType":"YulFunctionCall","src":"3255:59:28"},"nativeSrc":"3252:295:28","nodeType":"YulIf","src":"3252:295:28"}]},"condition":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2500:9:28","nodeType":"YulIdentifier","src":"2500:9:28"}],"functionName":{"name":"mload","nativeSrc":"2494:5:28","nodeType":"YulIdentifier","src":"2494:5:28"},"nativeSrc":"2494:16:28","nodeType":"YulFunctionCall","src":"2494:16:28"},{"kind":"number","nativeSrc":"2512:2:28","nodeType":"YulLiteral","src":"2512:2:28","type":"","value":"64"}],"functionName":{"name":"eq","nativeSrc":"2491:2:28","nodeType":"YulIdentifier","src":"2491:2:28"},"nativeSrc":"2491:24:28","nodeType":"YulFunctionCall","src":"2491:24:28"},"nativeSrc":"2488:1077:28","nodeType":"YulIf","src":"2488:1077:28"},{"body":{"nativeSrc":"3610:1015:28","nodeType":"YulBlock","src":"3610:1015:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3639:4:28","nodeType":"YulLiteral","src":"3639:4:28","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"3650:1:28","nodeType":"YulLiteral","src":"3650:1:28","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3663:9:28","nodeType":"YulIdentifier","src":"3663:9:28"},{"kind":"number","nativeSrc":"3674:4:28","nodeType":"YulLiteral","src":"3674:4:28","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3659:3:28","nodeType":"YulIdentifier","src":"3659:3:28"},"nativeSrc":"3659:20:28","nodeType":"YulFunctionCall","src":"3659:20:28"}],"functionName":{"name":"mload","nativeSrc":"3653:5:28","nodeType":"YulIdentifier","src":"3653:5:28"},"nativeSrc":"3653:27:28","nodeType":"YulFunctionCall","src":"3653:27:28"}],"functionName":{"name":"byte","nativeSrc":"3645:4:28","nodeType":"YulIdentifier","src":"3645:4:28"},"nativeSrc":"3645:36:28","nodeType":"YulFunctionCall","src":"3645:36:28"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:28","nodeType":"YulIdentifier","src":"3632:6:28"},"nativeSrc":"3632:50:28","nodeType":"YulFunctionCall","src":"3632:50:28"},"nativeSrc":"3632:50:28","nodeType":"YulExpressionStatement","src":"3632:50:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3718:4:28","nodeType":"YulLiteral","src":"3718:4:28","type":"","value":"0x60"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3734:9:28","nodeType":"YulIdentifier","src":"3734:9:28"},{"kind":"number","nativeSrc":"3745:4:28","nodeType":"YulLiteral","src":"3745:4:28","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3730:3:28","nodeType":"YulIdentifier","src":"3730:3:28"},"nativeSrc":"3730:20:28","nodeType":"YulFunctionCall","src":"3730:20:28"}],"functionName":{"name":"mload","nativeSrc":"3724:5:28","nodeType":"YulIdentifier","src":"3724:5:28"},"nativeSrc":"3724:27:28","nodeType":"YulFunctionCall","src":"3724:27:28"}],"functionName":{"name":"mstore","nativeSrc":"3711:6:28","nodeType":"YulIdentifier","src":"3711:6:28"},"nativeSrc":"3711:41:28","nodeType":"YulFunctionCall","src":"3711:41:28"},"nativeSrc":"3711:41:28","nodeType":"YulExpressionStatement","src":"3711:41:28"},{"nativeSrc":"3781:417:28","nodeType":"YulVariableDeclaration","src":"3781:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"3854:3:28","nodeType":"YulIdentifier","src":"3854:3:28"},"nativeSrc":"3854:5:28","nodeType":"YulFunctionCall","src":"3854:5:28"},{"kind":"number","nativeSrc":"3932:1:28","nodeType":"YulLiteral","src":"3932:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"3990:4:28","nodeType":"YulLiteral","src":"3990:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4043:4:28","nodeType":"YulLiteral","src":"4043:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"4095:4:28","nodeType":"YulLiteral","src":"4095:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"4149:4:28","nodeType":"YulLiteral","src":"4149:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"3814:10:28","nodeType":"YulIdentifier","src":"3814:10:28"},"nativeSrc":"3814:384:28","nodeType":"YulFunctionCall","src":"3814:384:28"},"variables":[{"name":"t","nativeSrc":"3785:1:28","nodeType":"YulTypedName","src":"3785:1:28","type":""}]},{"body":{"nativeSrc":"4375:232:28","nodeType":"YulBlock","src":"4375:232:28","statements":[{"nativeSrc":"4401:12:28","nodeType":"YulAssignment","src":"4401:12:28","value":{"kind":"number","nativeSrc":"4412:1:28","nodeType":"YulLiteral","src":"4412:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"4401:7:28","nodeType":"YulIdentifier","src":"4401:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4445:4:28","nodeType":"YulLiteral","src":"4445:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"4451:1:28","nodeType":"YulLiteral","src":"4451:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4438:6:28","nodeType":"YulIdentifier","src":"4438:6:28"},"nativeSrc":"4438:15:28","nodeType":"YulFunctionCall","src":"4438:15:28"},"nativeSrc":"4438:15:28","nodeType":"YulExpressionStatement","src":"4438:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4511:4:28","nodeType":"YulLiteral","src":"4511:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"4517:1:28","nodeType":"YulIdentifier","src":"4517:1:28"}],"functionName":{"name":"mstore","nativeSrc":"4504:6:28","nodeType":"YulIdentifier","src":"4504:6:28"},"nativeSrc":"4504:15:28","nodeType":"YulFunctionCall","src":"4504:15:28"},"nativeSrc":"4504:15:28","nodeType":"YulExpressionStatement","src":"4504:15:28"},{"nativeSrc":"4580:5:28","nodeType":"YulBreak","src":"4580:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4332:14:28","nodeType":"YulIdentifier","src":"4332:14:28"},"nativeSrc":"4332:16:28","nodeType":"YulFunctionCall","src":"4332:16:28"}],"functionName":{"name":"iszero","nativeSrc":"4325:6:28","nodeType":"YulIdentifier","src":"4325:6:28"},"nativeSrc":"4325:24:28","nodeType":"YulFunctionCall","src":"4325:24:28"},{"arguments":[{"name":"signer","nativeSrc":"4355:6:28","nodeType":"YulIdentifier","src":"4355:6:28"},{"arguments":[{"name":"t","nativeSrc":"4369:1:28","nodeType":"YulIdentifier","src":"4369:1:28"}],"functionName":{"name":"mload","nativeSrc":"4363:5:28","nodeType":"YulIdentifier","src":"4363:5:28"},"nativeSrc":"4363:8:28","nodeType":"YulFunctionCall","src":"4363:8:28"}],"functionName":{"name":"xor","nativeSrc":"4351:3:28","nodeType":"YulIdentifier","src":"4351:3:28"},"nativeSrc":"4351:21:28","nodeType":"YulFunctionCall","src":"4351:21:28"}],"functionName":{"name":"or","nativeSrc":"4322:2:28","nodeType":"YulIdentifier","src":"4322:2:28"},"nativeSrc":"4322:51:28","nodeType":"YulFunctionCall","src":"4322:51:28"}],"functionName":{"name":"iszero","nativeSrc":"4315:6:28","nodeType":"YulIdentifier","src":"4315:6:28"},"nativeSrc":"4315:59:28","nodeType":"YulFunctionCall","src":"4315:59:28"},"nativeSrc":"4312:295:28","nodeType":"YulIf","src":"4312:295:28"}]},"condition":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3594:9:28","nodeType":"YulIdentifier","src":"3594:9:28"}],"functionName":{"name":"mload","nativeSrc":"3588:5:28","nodeType":"YulIdentifier","src":"3588:5:28"},"nativeSrc":"3588:16:28","nodeType":"YulFunctionCall","src":"3588:16:28"},{"kind":"number","nativeSrc":"3606:2:28","nodeType":"YulLiteral","src":"3606:2:28","type":"","value":"65"}],"functionName":{"name":"eq","nativeSrc":"3585:2:28","nodeType":"YulIdentifier","src":"3585:2:28"},"nativeSrc":"3585:24:28","nodeType":"YulFunctionCall","src":"3585:24:28"},"nativeSrc":"3582:1043:28","nodeType":"YulIf","src":"3582:1043:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4649:4:28","nodeType":"YulLiteral","src":"4649:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"4655:1:28","nodeType":"YulLiteral","src":"4655:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4642:6:28","nodeType":"YulIdentifier","src":"4642:6:28"},"nativeSrc":"4642:15:28","nodeType":"YulFunctionCall","src":"4642:15:28"},"nativeSrc":"4642:15:28","nodeType":"YulExpressionStatement","src":"4642:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4707:4:28","nodeType":"YulLiteral","src":"4707:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"4713:1:28","nodeType":"YulIdentifier","src":"4713:1:28"}],"functionName":{"name":"mstore","nativeSrc":"4700:6:28","nodeType":"YulIdentifier","src":"4700:6:28"},"nativeSrc":"4700:15:28","nodeType":"YulFunctionCall","src":"4700:15:28"},"nativeSrc":"4700:15:28","nodeType":"YulExpressionStatement","src":"4700:15:28"},{"nativeSrc":"4769:29:28","nodeType":"YulVariableDeclaration","src":"4769:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"4782:3:28","nodeType":"YulLiteral","src":"4782:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"4787:10:28","nodeType":"YulLiteral","src":"4787:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"4778:3:28","nodeType":"YulIdentifier","src":"4778:3:28"},"nativeSrc":"4778:20:28","nodeType":"YulFunctionCall","src":"4778:20:28"},"variables":[{"name":"f","nativeSrc":"4773:1:28","nodeType":"YulTypedName","src":"4773:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"4822:1:28","nodeType":"YulIdentifier","src":"4822:1:28"},{"name":"f","nativeSrc":"4825:1:28","nodeType":"YulIdentifier","src":"4825:1:28"}],"functionName":{"name":"mstore","nativeSrc":"4815:6:28","nodeType":"YulIdentifier","src":"4815:6:28"},"nativeSrc":"4815:12:28","nodeType":"YulFunctionCall","src":"4815:12:28"},"nativeSrc":"4815:12:28","nodeType":"YulExpressionStatement","src":"4815:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"4914:1:28","nodeType":"YulIdentifier","src":"4914:1:28"},{"kind":"number","nativeSrc":"4917:4:28","nodeType":"YulLiteral","src":"4917:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"4910:3:28","nodeType":"YulIdentifier","src":"4910:3:28"},"nativeSrc":"4910:12:28","nodeType":"YulFunctionCall","src":"4910:12:28"},{"name":"hash","nativeSrc":"4924:4:28","nodeType":"YulIdentifier","src":"4924:4:28"}],"functionName":{"name":"mstore","nativeSrc":"4903:6:28","nodeType":"YulIdentifier","src":"4903:6:28"},"nativeSrc":"4903:26:28","nodeType":"YulFunctionCall","src":"4903:26:28"},"nativeSrc":"4903:26:28","nodeType":"YulExpressionStatement","src":"4903:26:28"},{"nativeSrc":"4946:21:28","nodeType":"YulVariableDeclaration","src":"4946:21:28","value":{"arguments":[{"name":"m","nativeSrc":"4959:1:28","nodeType":"YulIdentifier","src":"4959:1:28"},{"kind":"number","nativeSrc":"4962:4:28","nodeType":"YulLiteral","src":"4962:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"4955:3:28","nodeType":"YulIdentifier","src":"4955:3:28"},"nativeSrc":"4955:12:28","nodeType":"YulFunctionCall","src":"4955:12:28"},"variables":[{"name":"d","nativeSrc":"4950:1:28","nodeType":"YulTypedName","src":"4950:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"4991:1:28","nodeType":"YulIdentifier","src":"4991:1:28"},{"kind":"number","nativeSrc":"4994:4:28","nodeType":"YulLiteral","src":"4994:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"4984:6:28","nodeType":"YulIdentifier","src":"4984:6:28"},"nativeSrc":"4984:15:28","nodeType":"YulFunctionCall","src":"4984:15:28"},"nativeSrc":"4984:15:28","nodeType":"YulExpressionStatement","src":"4984:15:28"},{"nativeSrc":"5112:36:28","nodeType":"YulVariableDeclaration","src":"5112:36:28","value":{"arguments":[{"kind":"number","nativeSrc":"5125:4:28","nodeType":"YulLiteral","src":"5125:4:28","type":"","value":"0x20"},{"arguments":[{"name":"signature","nativeSrc":"5137:9:28","nodeType":"YulIdentifier","src":"5137:9:28"}],"functionName":{"name":"mload","nativeSrc":"5131:5:28","nodeType":"YulIdentifier","src":"5131:5:28"},"nativeSrc":"5131:16:28","nodeType":"YulFunctionCall","src":"5131:16:28"}],"functionName":{"name":"add","nativeSrc":"5121:3:28","nodeType":"YulIdentifier","src":"5121:3:28"},"nativeSrc":"5121:27:28","nodeType":"YulFunctionCall","src":"5121:27:28"},"variables":[{"name":"n","nativeSrc":"5116:1:28","nodeType":"YulTypedName","src":"5116:1:28","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"5180:3:28","nodeType":"YulIdentifier","src":"5180:3:28"},"nativeSrc":"5180:5:28","nodeType":"YulFunctionCall","src":"5180:5:28"},{"kind":"number","nativeSrc":"5187:1:28","nodeType":"YulLiteral","src":"5187:1:28","type":"","value":"4"},{"name":"signature","nativeSrc":"5190:9:28","nodeType":"YulIdentifier","src":"5190:9:28"},{"name":"n","nativeSrc":"5201:1:28","nodeType":"YulIdentifier","src":"5201:1:28"},{"arguments":[{"name":"m","nativeSrc":"5208:1:28","nodeType":"YulIdentifier","src":"5208:1:28"},{"kind":"number","nativeSrc":"5211:4:28","nodeType":"YulLiteral","src":"5211:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"5204:3:28","nodeType":"YulIdentifier","src":"5204:3:28"},"nativeSrc":"5204:12:28","nodeType":"YulFunctionCall","src":"5204:12:28"},{"name":"n","nativeSrc":"5218:1:28","nodeType":"YulIdentifier","src":"5218:1:28"}],"functionName":{"name":"staticcall","nativeSrc":"5169:10:28","nodeType":"YulIdentifier","src":"5169:10:28"},"nativeSrc":"5169:51:28","nodeType":"YulFunctionCall","src":"5169:51:28"}],"functionName":{"name":"pop","nativeSrc":"5165:3:28","nodeType":"YulIdentifier","src":"5165:3:28"},"nativeSrc":"5165:56:28","nodeType":"YulFunctionCall","src":"5165:56:28"},"nativeSrc":"5165:56:28","nodeType":"YulExpressionStatement","src":"5165:56:28"},{"nativeSrc":"5285:797:28","nodeType":"YulAssignment","src":"5285:797:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"5424:1:28","nodeType":"YulIdentifier","src":"5424:1:28"}],"functionName":{"name":"mload","nativeSrc":"5418:5:28","nodeType":"YulIdentifier","src":"5418:5:28"},"nativeSrc":"5418:8:28","nodeType":"YulFunctionCall","src":"5418:8:28"},{"name":"f","nativeSrc":"5428:1:28","nodeType":"YulIdentifier","src":"5428:1:28"}],"functionName":{"name":"eq","nativeSrc":"5415:2:28","nodeType":"YulIdentifier","src":"5415:2:28"},"nativeSrc":"5415:15:28","nodeType":"YulFunctionCall","src":"5415:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"5700:3:28","nodeType":"YulIdentifier","src":"5700:3:28"},"nativeSrc":"5700:5:28","nodeType":"YulFunctionCall","src":"5700:5:28"},{"name":"signer","nativeSrc":"5749:6:28","nodeType":"YulIdentifier","src":"5749:6:28"},{"name":"m","nativeSrc":"5806:1:28","nodeType":"YulIdentifier","src":"5806:1:28"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"5870:14:28","nodeType":"YulIdentifier","src":"5870:14:28"},"nativeSrc":"5870:16:28","nodeType":"YulFunctionCall","src":"5870:16:28"},{"kind":"number","nativeSrc":"5888:4:28","nodeType":"YulLiteral","src":"5888:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"5866:3:28","nodeType":"YulIdentifier","src":"5866:3:28"},"nativeSrc":"5866:27:28","nodeType":"YulFunctionCall","src":"5866:27:28"},{"name":"d","nativeSrc":"5952:1:28","nodeType":"YulIdentifier","src":"5952:1:28"},{"kind":"number","nativeSrc":"6004:4:28","nodeType":"YulLiteral","src":"6004:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"5664:10:28","nodeType":"YulIdentifier","src":"5664:10:28"},"nativeSrc":"5664:400:28","nodeType":"YulFunctionCall","src":"5664:400:28"}],"functionName":{"name":"and","nativeSrc":"5296:3:28","nodeType":"YulIdentifier","src":"5296:3:28"},"nativeSrc":"5296:786:28","nodeType":"YulFunctionCall","src":"5296:786:28"},"variableNames":[{"name":"isValid","nativeSrc":"5285:7:28","nodeType":"YulIdentifier","src":"5285:7:28"}]},{"nativeSrc":"6099:5:28","nodeType":"YulBreak","src":"6099:5:28"}]},"condition":{"name":"signer","nativeSrc":"2322:6:28","nodeType":"YulIdentifier","src":"2322:6:28"},"nativeSrc":"2279:3839:28","nodeType":"YulForLoop","post":{"nativeSrc":"2329:2:28","nodeType":"YulBlock","src":"2329:2:28","statements":[]},"pre":{"nativeSrc":"2283:38:28","nodeType":"YulBlock","src":"2283:38:28","statements":[{"nativeSrc":"2285:34:28","nodeType":"YulAssignment","src":"2285:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"2299:2:28","nodeType":"YulLiteral","src":"2299:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"2307:2:28","nodeType":"YulLiteral","src":"2307:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"2311:6:28","nodeType":"YulIdentifier","src":"2311:6:28"}],"functionName":{"name":"shl","nativeSrc":"2303:3:28","nodeType":"YulIdentifier","src":"2303:3:28"},"nativeSrc":"2303:15:28","nodeType":"YulFunctionCall","src":"2303:15:28"}],"functionName":{"name":"shr","nativeSrc":"2295:3:28","nodeType":"YulIdentifier","src":"2295:3:28"},"nativeSrc":"2295:24:28","nodeType":"YulFunctionCall","src":"2295:24:28"},"variableNames":[{"name":"signer","nativeSrc":"2285:6:28","nodeType":"YulIdentifier","src":"2285:6:28"}]}]},"src":"2279:3839:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11380,"isOffset":false,"isSlot":false,"src":"2400:4:28","valueSize":1},{"declaration":11380,"isOffset":false,"isSlot":false,"src":"4924:4:28","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"3341:7:28","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"4401:7:28","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"5285:7:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"2445:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"2500:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"2558:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"3594:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"3663:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"3734:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"5137:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"5190:9:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"2285:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"2311:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"2322:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"3295:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"4355:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"5749:6:28","valueSize":1}],"id":11387,"nodeType":"InlineAssembly","src":"2181:3947:28"}]},"documentation":{"id":11376,"nodeType":"StructuredDocumentation","src":"1755:220:28","text":"@dev Returns whether `signature` is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11389,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1989:19:28","nodeType":"FunctionDefinition","parameters":{"id":11383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11378,"mutability":"mutable","name":"signer","nameLocation":"2017:6:28","nodeType":"VariableDeclaration","scope":11389,"src":"2009:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11377,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11380,"mutability":"mutable","name":"hash","nameLocation":"2033:4:28","nodeType":"VariableDeclaration","scope":11389,"src":"2025:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2025:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11382,"mutability":"mutable","name":"signature","nameLocation":"2052:9:28","nodeType":"VariableDeclaration","scope":11389,"src":"2039:22:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11381,"name":"bytes","nodeType":"ElementaryTypeName","src":"2039:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2008:54:28"},"returnParameters":{"id":11386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11385,"mutability":"mutable","name":"isValid","nameLocation":"2115:7:28","nodeType":"VariableDeclaration","scope":11389,"src":"2110:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11384,"name":"bool","nodeType":"ElementaryTypeName","src":"2110:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2109:14:28"},"scope":11528,"src":"1980:4154:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11402,"nodeType":"Block","src":"6523:4055:28","statements":[{"AST":{"nativeSrc":"6585:3987:28","nodeType":"YulBlock","src":"6585:3987:28","statements":[{"body":{"nativeSrc":"6727:3835:28","nodeType":"YulBlock","src":"6727:3835:28","statements":[{"nativeSrc":"6745:20:28","nodeType":"YulVariableDeclaration","src":"6745:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"6760:4:28","nodeType":"YulLiteral","src":"6760:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6754:5:28","nodeType":"YulIdentifier","src":"6754:5:28"},"nativeSrc":"6754:11:28","nodeType":"YulFunctionCall","src":"6754:11:28"},"variables":[{"name":"m","nativeSrc":"6749:1:28","nodeType":"YulTypedName","src":"6749:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6789:4:28","nodeType":"YulLiteral","src":"6789:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"6795:4:28","nodeType":"YulIdentifier","src":"6795:4:28"}],"functionName":{"name":"mstore","nativeSrc":"6782:6:28","nodeType":"YulIdentifier","src":"6782:6:28"},"nativeSrc":"6782:18:28","nodeType":"YulFunctionCall","src":"6782:18:28"},"nativeSrc":"6782:18:28","nodeType":"YulExpressionStatement","src":"6782:18:28"},{"body":{"nativeSrc":"6845:1136:28","nodeType":"YulBlock","src":"6845:1136:28","statements":[{"nativeSrc":"6867:51:28","nodeType":"YulVariableDeclaration","src":"6867:51:28","value":{"arguments":[{"arguments":[{"name":"signature.offset","nativeSrc":"6894:16:28","nodeType":"YulIdentifier","src":"6894:16:28"},{"kind":"number","nativeSrc":"6912:4:28","nodeType":"YulLiteral","src":"6912:4:28","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6890:3:28","nodeType":"YulIdentifier","src":"6890:3:28"},"nativeSrc":"6890:27:28","nodeType":"YulFunctionCall","src":"6890:27:28"}],"functionName":{"name":"calldataload","nativeSrc":"6877:12:28","nodeType":"YulIdentifier","src":"6877:12:28"},"nativeSrc":"6877:41:28","nodeType":"YulFunctionCall","src":"6877:41:28"},"variables":[{"name":"vs","nativeSrc":"6871:2:28","nodeType":"YulTypedName","src":"6871:2:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6946:4:28","nodeType":"YulLiteral","src":"6946:4:28","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6960:3:28","nodeType":"YulLiteral","src":"6960:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"6965:2:28","nodeType":"YulIdentifier","src":"6965:2:28"}],"functionName":{"name":"shr","nativeSrc":"6956:3:28","nodeType":"YulIdentifier","src":"6956:3:28"},"nativeSrc":"6956:12:28","nodeType":"YulFunctionCall","src":"6956:12:28"},{"kind":"number","nativeSrc":"6970:2:28","nodeType":"YulLiteral","src":"6970:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"6952:3:28","nodeType":"YulIdentifier","src":"6952:3:28"},"nativeSrc":"6952:21:28","nodeType":"YulFunctionCall","src":"6952:21:28"}],"functionName":{"name":"mstore","nativeSrc":"6939:6:28","nodeType":"YulIdentifier","src":"6939:6:28"},"nativeSrc":"6939:35:28","nodeType":"YulFunctionCall","src":"6939:35:28"},"nativeSrc":"6939:35:28","nodeType":"YulExpressionStatement","src":"6939:35:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7010:4:28","nodeType":"YulLiteral","src":"7010:4:28","type":"","value":"0x40"},{"arguments":[{"name":"signature.offset","nativeSrc":"7029:16:28","nodeType":"YulIdentifier","src":"7029:16:28"}],"functionName":{"name":"calldataload","nativeSrc":"7016:12:28","nodeType":"YulIdentifier","src":"7016:12:28"},"nativeSrc":"7016:30:28","nodeType":"YulFunctionCall","src":"7016:30:28"}],"functionName":{"name":"mstore","nativeSrc":"7003:6:28","nodeType":"YulIdentifier","src":"7003:6:28"},"nativeSrc":"7003:44:28","nodeType":"YulFunctionCall","src":"7003:44:28"},"nativeSrc":"7003:44:28","nodeType":"YulExpressionStatement","src":"7003:44:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7083:4:28","nodeType":"YulLiteral","src":"7083:4:28","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"7093:1:28","nodeType":"YulLiteral","src":"7093:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"7100:1:28","nodeType":"YulLiteral","src":"7100:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"7103:2:28","nodeType":"YulIdentifier","src":"7103:2:28"}],"functionName":{"name":"shl","nativeSrc":"7096:3:28","nodeType":"YulIdentifier","src":"7096:3:28"},"nativeSrc":"7096:10:28","nodeType":"YulFunctionCall","src":"7096:10:28"}],"functionName":{"name":"shr","nativeSrc":"7089:3:28","nodeType":"YulIdentifier","src":"7089:3:28"},"nativeSrc":"7089:18:28","nodeType":"YulFunctionCall","src":"7089:18:28"}],"functionName":{"name":"mstore","nativeSrc":"7076:6:28","nodeType":"YulIdentifier","src":"7076:6:28"},"nativeSrc":"7076:32:28","nodeType":"YulFunctionCall","src":"7076:32:28"},"nativeSrc":"7076:32:28","nodeType":"YulExpressionStatement","src":"7076:32:28"},{"nativeSrc":"7137:417:28","nodeType":"YulVariableDeclaration","src":"7137:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"7210:3:28","nodeType":"YulIdentifier","src":"7210:3:28"},"nativeSrc":"7210:5:28","nodeType":"YulFunctionCall","src":"7210:5:28"},{"kind":"number","nativeSrc":"7288:1:28","nodeType":"YulLiteral","src":"7288:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"7346:4:28","nodeType":"YulLiteral","src":"7346:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7399:4:28","nodeType":"YulLiteral","src":"7399:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"7451:4:28","nodeType":"YulLiteral","src":"7451:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"7505:4:28","nodeType":"YulLiteral","src":"7505:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"7170:10:28","nodeType":"YulIdentifier","src":"7170:10:28"},"nativeSrc":"7170:384:28","nodeType":"YulFunctionCall","src":"7170:384:28"},"variables":[{"name":"t","nativeSrc":"7141:1:28","nodeType":"YulTypedName","src":"7141:1:28","type":""}]},{"body":{"nativeSrc":"7731:232:28","nodeType":"YulBlock","src":"7731:232:28","statements":[{"nativeSrc":"7757:12:28","nodeType":"YulAssignment","src":"7757:12:28","value":{"kind":"number","nativeSrc":"7768:1:28","nodeType":"YulLiteral","src":"7768:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"7757:7:28","nodeType":"YulIdentifier","src":"7757:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7801:4:28","nodeType":"YulLiteral","src":"7801:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"7807:1:28","nodeType":"YulLiteral","src":"7807:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7794:6:28","nodeType":"YulIdentifier","src":"7794:6:28"},"nativeSrc":"7794:15:28","nodeType":"YulFunctionCall","src":"7794:15:28"},"nativeSrc":"7794:15:28","nodeType":"YulExpressionStatement","src":"7794:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7867:4:28","nodeType":"YulLiteral","src":"7867:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"7873:1:28","nodeType":"YulIdentifier","src":"7873:1:28"}],"functionName":{"name":"mstore","nativeSrc":"7860:6:28","nodeType":"YulIdentifier","src":"7860:6:28"},"nativeSrc":"7860:15:28","nodeType":"YulFunctionCall","src":"7860:15:28"},"nativeSrc":"7860:15:28","nodeType":"YulExpressionStatement","src":"7860:15:28"},{"nativeSrc":"7936:5:28","nodeType":"YulBreak","src":"7936:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"7688:14:28","nodeType":"YulIdentifier","src":"7688:14:28"},"nativeSrc":"7688:16:28","nodeType":"YulFunctionCall","src":"7688:16:28"}],"functionName":{"name":"iszero","nativeSrc":"7681:6:28","nodeType":"YulIdentifier","src":"7681:6:28"},"nativeSrc":"7681:24:28","nodeType":"YulFunctionCall","src":"7681:24:28"},{"arguments":[{"name":"signer","nativeSrc":"7711:6:28","nodeType":"YulIdentifier","src":"7711:6:28"},{"arguments":[{"name":"t","nativeSrc":"7725:1:28","nodeType":"YulIdentifier","src":"7725:1:28"}],"functionName":{"name":"mload","nativeSrc":"7719:5:28","nodeType":"YulIdentifier","src":"7719:5:28"},"nativeSrc":"7719:8:28","nodeType":"YulFunctionCall","src":"7719:8:28"}],"functionName":{"name":"xor","nativeSrc":"7707:3:28","nodeType":"YulIdentifier","src":"7707:3:28"},"nativeSrc":"7707:21:28","nodeType":"YulFunctionCall","src":"7707:21:28"}],"functionName":{"name":"or","nativeSrc":"7678:2:28","nodeType":"YulIdentifier","src":"7678:2:28"},"nativeSrc":"7678:51:28","nodeType":"YulFunctionCall","src":"7678:51:28"}],"functionName":{"name":"iszero","nativeSrc":"7671:6:28","nodeType":"YulIdentifier","src":"7671:6:28"},"nativeSrc":"7671:59:28","nodeType":"YulFunctionCall","src":"7671:59:28"},"nativeSrc":"7668:295:28","nodeType":"YulIf","src":"7668:295:28"}]},"condition":{"arguments":[{"name":"signature.length","nativeSrc":"6823:16:28","nodeType":"YulIdentifier","src":"6823:16:28"},{"kind":"number","nativeSrc":"6841:2:28","nodeType":"YulLiteral","src":"6841:2:28","type":"","value":"64"}],"functionName":{"name":"eq","nativeSrc":"6820:2:28","nodeType":"YulIdentifier","src":"6820:2:28"},"nativeSrc":"6820:24:28","nodeType":"YulFunctionCall","src":"6820:24:28"},"nativeSrc":"6817:1164:28","nodeType":"YulIf","src":"6817:1164:28"},{"body":{"nativeSrc":"8026:1035:28","nodeType":"YulBlock","src":"8026:1035:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8055:4:28","nodeType":"YulLiteral","src":"8055:4:28","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"8066:1:28","nodeType":"YulLiteral","src":"8066:1:28","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature.offset","nativeSrc":"8086:16:28","nodeType":"YulIdentifier","src":"8086:16:28"},{"kind":"number","nativeSrc":"8104:4:28","nodeType":"YulLiteral","src":"8104:4:28","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8082:3:28","nodeType":"YulIdentifier","src":"8082:3:28"},"nativeSrc":"8082:27:28","nodeType":"YulFunctionCall","src":"8082:27:28"}],"functionName":{"name":"calldataload","nativeSrc":"8069:12:28","nodeType":"YulIdentifier","src":"8069:12:28"},"nativeSrc":"8069:41:28","nodeType":"YulFunctionCall","src":"8069:41:28"}],"functionName":{"name":"byte","nativeSrc":"8061:4:28","nodeType":"YulIdentifier","src":"8061:4:28"},"nativeSrc":"8061:50:28","nodeType":"YulFunctionCall","src":"8061:50:28"}],"functionName":{"name":"mstore","nativeSrc":"8048:6:28","nodeType":"YulIdentifier","src":"8048:6:28"},"nativeSrc":"8048:64:28","nodeType":"YulFunctionCall","src":"8048:64:28"},"nativeSrc":"8048:64:28","nodeType":"YulExpressionStatement","src":"8048:64:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8154:4:28","nodeType":"YulLiteral","src":"8154:4:28","type":"","value":"0x40"},{"name":"signature.offset","nativeSrc":"8160:16:28","nodeType":"YulIdentifier","src":"8160:16:28"},{"kind":"number","nativeSrc":"8178:4:28","nodeType":"YulLiteral","src":"8178:4:28","type":"","value":"0x40"}],"functionName":{"name":"calldatacopy","nativeSrc":"8141:12:28","nodeType":"YulIdentifier","src":"8141:12:28"},"nativeSrc":"8141:42:28","nodeType":"YulFunctionCall","src":"8141:42:28"},"nativeSrc":"8141:42:28","nodeType":"YulExpressionStatement","src":"8141:42:28"},{"nativeSrc":"8217:417:28","nodeType":"YulVariableDeclaration","src":"8217:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"8290:3:28","nodeType":"YulIdentifier","src":"8290:3:28"},"nativeSrc":"8290:5:28","nodeType":"YulFunctionCall","src":"8290:5:28"},{"kind":"number","nativeSrc":"8368:1:28","nodeType":"YulLiteral","src":"8368:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"8426:4:28","nodeType":"YulLiteral","src":"8426:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8479:4:28","nodeType":"YulLiteral","src":"8479:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"8531:4:28","nodeType":"YulLiteral","src":"8531:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"8585:4:28","nodeType":"YulLiteral","src":"8585:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"8250:10:28","nodeType":"YulIdentifier","src":"8250:10:28"},"nativeSrc":"8250:384:28","nodeType":"YulFunctionCall","src":"8250:384:28"},"variables":[{"name":"t","nativeSrc":"8221:1:28","nodeType":"YulTypedName","src":"8221:1:28","type":""}]},{"body":{"nativeSrc":"8811:232:28","nodeType":"YulBlock","src":"8811:232:28","statements":[{"nativeSrc":"8837:12:28","nodeType":"YulAssignment","src":"8837:12:28","value":{"kind":"number","nativeSrc":"8848:1:28","nodeType":"YulLiteral","src":"8848:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"8837:7:28","nodeType":"YulIdentifier","src":"8837:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8881:4:28","nodeType":"YulLiteral","src":"8881:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"8887:1:28","nodeType":"YulLiteral","src":"8887:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8874:6:28","nodeType":"YulIdentifier","src":"8874:6:28"},"nativeSrc":"8874:15:28","nodeType":"YulFunctionCall","src":"8874:15:28"},"nativeSrc":"8874:15:28","nodeType":"YulExpressionStatement","src":"8874:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8947:4:28","nodeType":"YulLiteral","src":"8947:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"8953:1:28","nodeType":"YulIdentifier","src":"8953:1:28"}],"functionName":{"name":"mstore","nativeSrc":"8940:6:28","nodeType":"YulIdentifier","src":"8940:6:28"},"nativeSrc":"8940:15:28","nodeType":"YulFunctionCall","src":"8940:15:28"},"nativeSrc":"8940:15:28","nodeType":"YulExpressionStatement","src":"8940:15:28"},{"nativeSrc":"9016:5:28","nodeType":"YulBreak","src":"9016:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"8768:14:28","nodeType":"YulIdentifier","src":"8768:14:28"},"nativeSrc":"8768:16:28","nodeType":"YulFunctionCall","src":"8768:16:28"}],"functionName":{"name":"iszero","nativeSrc":"8761:6:28","nodeType":"YulIdentifier","src":"8761:6:28"},"nativeSrc":"8761:24:28","nodeType":"YulFunctionCall","src":"8761:24:28"},{"arguments":[{"name":"signer","nativeSrc":"8791:6:28","nodeType":"YulIdentifier","src":"8791:6:28"},{"arguments":[{"name":"t","nativeSrc":"8805:1:28","nodeType":"YulIdentifier","src":"8805:1:28"}],"functionName":{"name":"mload","nativeSrc":"8799:5:28","nodeType":"YulIdentifier","src":"8799:5:28"},"nativeSrc":"8799:8:28","nodeType":"YulFunctionCall","src":"8799:8:28"}],"functionName":{"name":"xor","nativeSrc":"8787:3:28","nodeType":"YulIdentifier","src":"8787:3:28"},"nativeSrc":"8787:21:28","nodeType":"YulFunctionCall","src":"8787:21:28"}],"functionName":{"name":"or","nativeSrc":"8758:2:28","nodeType":"YulIdentifier","src":"8758:2:28"},"nativeSrc":"8758:51:28","nodeType":"YulFunctionCall","src":"8758:51:28"}],"functionName":{"name":"iszero","nativeSrc":"8751:6:28","nodeType":"YulIdentifier","src":"8751:6:28"},"nativeSrc":"8751:59:28","nodeType":"YulFunctionCall","src":"8751:59:28"},"nativeSrc":"8748:295:28","nodeType":"YulIf","src":"8748:295:28"}]},"condition":{"arguments":[{"name":"signature.length","nativeSrc":"8004:16:28","nodeType":"YulIdentifier","src":"8004:16:28"},{"kind":"number","nativeSrc":"8022:2:28","nodeType":"YulLiteral","src":"8022:2:28","type":"","value":"65"}],"functionName":{"name":"eq","nativeSrc":"8001:2:28","nodeType":"YulIdentifier","src":"8001:2:28"},"nativeSrc":"8001:24:28","nodeType":"YulFunctionCall","src":"8001:24:28"},"nativeSrc":"7998:1063:28","nodeType":"YulIf","src":"7998:1063:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9085:4:28","nodeType":"YulLiteral","src":"9085:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"9091:1:28","nodeType":"YulLiteral","src":"9091:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9078:6:28","nodeType":"YulIdentifier","src":"9078:6:28"},"nativeSrc":"9078:15:28","nodeType":"YulFunctionCall","src":"9078:15:28"},"nativeSrc":"9078:15:28","nodeType":"YulExpressionStatement","src":"9078:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9143:4:28","nodeType":"YulLiteral","src":"9143:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"9149:1:28","nodeType":"YulIdentifier","src":"9149:1:28"}],"functionName":{"name":"mstore","nativeSrc":"9136:6:28","nodeType":"YulIdentifier","src":"9136:6:28"},"nativeSrc":"9136:15:28","nodeType":"YulFunctionCall","src":"9136:15:28"},"nativeSrc":"9136:15:28","nodeType":"YulExpressionStatement","src":"9136:15:28"},{"nativeSrc":"9205:29:28","nodeType":"YulVariableDeclaration","src":"9205:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"9218:3:28","nodeType":"YulLiteral","src":"9218:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"9223:10:28","nodeType":"YulLiteral","src":"9223:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"9214:3:28","nodeType":"YulIdentifier","src":"9214:3:28"},"nativeSrc":"9214:20:28","nodeType":"YulFunctionCall","src":"9214:20:28"},"variables":[{"name":"f","nativeSrc":"9209:1:28","nodeType":"YulTypedName","src":"9209:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"9258:1:28","nodeType":"YulIdentifier","src":"9258:1:28"},{"name":"f","nativeSrc":"9261:1:28","nodeType":"YulIdentifier","src":"9261:1:28"}],"functionName":{"name":"mstore","nativeSrc":"9251:6:28","nodeType":"YulIdentifier","src":"9251:6:28"},"nativeSrc":"9251:12:28","nodeType":"YulFunctionCall","src":"9251:12:28"},"nativeSrc":"9251:12:28","nodeType":"YulExpressionStatement","src":"9251:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9350:1:28","nodeType":"YulIdentifier","src":"9350:1:28"},{"kind":"number","nativeSrc":"9353:4:28","nodeType":"YulLiteral","src":"9353:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"9346:3:28","nodeType":"YulIdentifier","src":"9346:3:28"},"nativeSrc":"9346:12:28","nodeType":"YulFunctionCall","src":"9346:12:28"},{"name":"hash","nativeSrc":"9360:4:28","nodeType":"YulIdentifier","src":"9360:4:28"}],"functionName":{"name":"mstore","nativeSrc":"9339:6:28","nodeType":"YulIdentifier","src":"9339:6:28"},"nativeSrc":"9339:26:28","nodeType":"YulFunctionCall","src":"9339:26:28"},"nativeSrc":"9339:26:28","nodeType":"YulExpressionStatement","src":"9339:26:28"},{"nativeSrc":"9382:21:28","nodeType":"YulVariableDeclaration","src":"9382:21:28","value":{"arguments":[{"name":"m","nativeSrc":"9395:1:28","nodeType":"YulIdentifier","src":"9395:1:28"},{"kind":"number","nativeSrc":"9398:4:28","nodeType":"YulLiteral","src":"9398:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"9391:3:28","nodeType":"YulIdentifier","src":"9391:3:28"},"nativeSrc":"9391:12:28","nodeType":"YulFunctionCall","src":"9391:12:28"},"variables":[{"name":"d","nativeSrc":"9386:1:28","nodeType":"YulTypedName","src":"9386:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"9427:1:28","nodeType":"YulIdentifier","src":"9427:1:28"},{"kind":"number","nativeSrc":"9430:4:28","nodeType":"YulLiteral","src":"9430:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"9420:6:28","nodeType":"YulIdentifier","src":"9420:6:28"},"nativeSrc":"9420:15:28","nodeType":"YulFunctionCall","src":"9420:15:28"},"nativeSrc":"9420:15:28","nodeType":"YulExpressionStatement","src":"9420:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9513:1:28","nodeType":"YulIdentifier","src":"9513:1:28"},{"kind":"number","nativeSrc":"9516:4:28","nodeType":"YulLiteral","src":"9516:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"9509:3:28","nodeType":"YulIdentifier","src":"9509:3:28"},"nativeSrc":"9509:12:28","nodeType":"YulFunctionCall","src":"9509:12:28"},{"name":"signature.length","nativeSrc":"9523:16:28","nodeType":"YulIdentifier","src":"9523:16:28"}],"functionName":{"name":"mstore","nativeSrc":"9502:6:28","nodeType":"YulIdentifier","src":"9502:6:28"},"nativeSrc":"9502:38:28","nodeType":"YulFunctionCall","src":"9502:38:28"},"nativeSrc":"9502:38:28","nodeType":"YulExpressionStatement","src":"9502:38:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9620:1:28","nodeType":"YulIdentifier","src":"9620:1:28"},{"kind":"number","nativeSrc":"9623:4:28","nodeType":"YulLiteral","src":"9623:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"9616:3:28","nodeType":"YulIdentifier","src":"9616:3:28"},"nativeSrc":"9616:12:28","nodeType":"YulFunctionCall","src":"9616:12:28"},{"name":"signature.offset","nativeSrc":"9630:16:28","nodeType":"YulIdentifier","src":"9630:16:28"},{"name":"signature.length","nativeSrc":"9648:16:28","nodeType":"YulIdentifier","src":"9648:16:28"}],"functionName":{"name":"calldatacopy","nativeSrc":"9603:12:28","nodeType":"YulIdentifier","src":"9603:12:28"},"nativeSrc":"9603:62:28","nodeType":"YulFunctionCall","src":"9603:62:28"},"nativeSrc":"9603:62:28","nodeType":"YulExpressionStatement","src":"9603:62:28"},{"nativeSrc":"9729:797:28","nodeType":"YulAssignment","src":"9729:797:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"9868:1:28","nodeType":"YulIdentifier","src":"9868:1:28"}],"functionName":{"name":"mload","nativeSrc":"9862:5:28","nodeType":"YulIdentifier","src":"9862:5:28"},"nativeSrc":"9862:8:28","nodeType":"YulFunctionCall","src":"9862:8:28"},{"name":"f","nativeSrc":"9872:1:28","nodeType":"YulIdentifier","src":"9872:1:28"}],"functionName":{"name":"eq","nativeSrc":"9859:2:28","nodeType":"YulIdentifier","src":"9859:2:28"},"nativeSrc":"9859:15:28","nodeType":"YulFunctionCall","src":"9859:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"10144:3:28","nodeType":"YulIdentifier","src":"10144:3:28"},"nativeSrc":"10144:5:28","nodeType":"YulFunctionCall","src":"10144:5:28"},{"name":"signer","nativeSrc":"10193:6:28","nodeType":"YulIdentifier","src":"10193:6:28"},{"name":"m","nativeSrc":"10250:1:28","nodeType":"YulIdentifier","src":"10250:1:28"},{"arguments":[{"name":"signature.length","nativeSrc":"10314:16:28","nodeType":"YulIdentifier","src":"10314:16:28"},{"kind":"number","nativeSrc":"10332:4:28","nodeType":"YulLiteral","src":"10332:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"10310:3:28","nodeType":"YulIdentifier","src":"10310:3:28"},"nativeSrc":"10310:27:28","nodeType":"YulFunctionCall","src":"10310:27:28"},{"name":"d","nativeSrc":"10396:1:28","nodeType":"YulIdentifier","src":"10396:1:28"},{"kind":"number","nativeSrc":"10448:4:28","nodeType":"YulLiteral","src":"10448:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"10108:10:28","nodeType":"YulIdentifier","src":"10108:10:28"},"nativeSrc":"10108:400:28","nodeType":"YulFunctionCall","src":"10108:400:28"}],"functionName":{"name":"and","nativeSrc":"9740:3:28","nodeType":"YulIdentifier","src":"9740:3:28"},"nativeSrc":"9740:786:28","nodeType":"YulFunctionCall","src":"9740:786:28"},"variableNames":[{"name":"isValid","nativeSrc":"9729:7:28","nodeType":"YulIdentifier","src":"9729:7:28"}]},{"nativeSrc":"10543:5:28","nodeType":"YulBreak","src":"10543:5:28"}]},"condition":{"name":"signer","nativeSrc":"6717:6:28","nodeType":"YulIdentifier","src":"6717:6:28"},"nativeSrc":"6674:3888:28","nodeType":"YulForLoop","post":{"nativeSrc":"6724:2:28","nodeType":"YulBlock","src":"6724:2:28","statements":[]},"pre":{"nativeSrc":"6678:38:28","nodeType":"YulBlock","src":"6678:38:28","statements":[{"nativeSrc":"6680:34:28","nodeType":"YulAssignment","src":"6680:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"6694:2:28","nodeType":"YulLiteral","src":"6694:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6702:2:28","nodeType":"YulLiteral","src":"6702:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"6706:6:28","nodeType":"YulIdentifier","src":"6706:6:28"}],"functionName":{"name":"shl","nativeSrc":"6698:3:28","nodeType":"YulIdentifier","src":"6698:3:28"},"nativeSrc":"6698:15:28","nodeType":"YulFunctionCall","src":"6698:15:28"}],"functionName":{"name":"shr","nativeSrc":"6690:3:28","nodeType":"YulIdentifier","src":"6690:3:28"},"nativeSrc":"6690:24:28","nodeType":"YulFunctionCall","src":"6690:24:28"},"variableNames":[{"name":"signer","nativeSrc":"6680:6:28","nodeType":"YulIdentifier","src":"6680:6:28"}]}]},"src":"6674:3888:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11394,"isOffset":false,"isSlot":false,"src":"6795:4:28","valueSize":1},{"declaration":11394,"isOffset":false,"isSlot":false,"src":"9360:4:28","valueSize":1},{"declaration":11399,"isOffset":false,"isSlot":false,"src":"7757:7:28","valueSize":1},{"declaration":11399,"isOffset":false,"isSlot":false,"src":"8837:7:28","valueSize":1},{"declaration":11399,"isOffset":false,"isSlot":false,"src":"9729:7:28","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"10314:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"6823:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"8004:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"9523:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"9648:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"6894:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"7029:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"8086:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"8160:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"9630:16:28","suffix":"offset","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"10193:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"6680:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"6706:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"6717:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"7711:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"8791:6:28","valueSize":1}],"id":11401,"nodeType":"InlineAssembly","src":"6576:3996:28"}]},"documentation":{"id":11390,"nodeType":"StructuredDocumentation","src":"6140:220:28","text":"@dev Returns whether `signature` is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11403,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNowCalldata","nameLocation":"6374:27:28","nodeType":"FunctionDefinition","parameters":{"id":11397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11392,"mutability":"mutable","name":"signer","nameLocation":"6410:6:28","nodeType":"VariableDeclaration","scope":11403,"src":"6402:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11391,"name":"address","nodeType":"ElementaryTypeName","src":"6402:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11394,"mutability":"mutable","name":"hash","nameLocation":"6426:4:28","nodeType":"VariableDeclaration","scope":11403,"src":"6418:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6418:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11396,"mutability":"mutable","name":"signature","nameLocation":"6447:9:28","nodeType":"VariableDeclaration","scope":11403,"src":"6432:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11395,"name":"bytes","nodeType":"ElementaryTypeName","src":"6432:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6401:56:28"},"returnParameters":{"id":11400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11399,"mutability":"mutable","name":"isValid","nameLocation":"6510:7:28","nodeType":"VariableDeclaration","scope":11403,"src":"6505:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11398,"name":"bool","nodeType":"ElementaryTypeName","src":"6505:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6504:14:28"},"scope":11528,"src":"6365:4213:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11418,"nodeType":"Block","src":"10970:2765:28","statements":[{"AST":{"nativeSrc":"11032:2697:28","nodeType":"YulBlock","src":"11032:2697:28","statements":[{"body":{"nativeSrc":"11174:2545:28","nodeType":"YulBlock","src":"11174:2545:28","statements":[{"nativeSrc":"11192:20:28","nodeType":"YulVariableDeclaration","src":"11192:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"11207:4:28","nodeType":"YulLiteral","src":"11207:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11201:5:28","nodeType":"YulIdentifier","src":"11201:5:28"},"nativeSrc":"11201:11:28","nodeType":"YulFunctionCall","src":"11201:11:28"},"variables":[{"name":"m","nativeSrc":"11196:1:28","nodeType":"YulTypedName","src":"11196:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11236:4:28","nodeType":"YulLiteral","src":"11236:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"11242:4:28","nodeType":"YulIdentifier","src":"11242:4:28"}],"functionName":{"name":"mstore","nativeSrc":"11229:6:28","nodeType":"YulIdentifier","src":"11229:6:28"},"nativeSrc":"11229:18:28","nodeType":"YulFunctionCall","src":"11229:18:28"},"nativeSrc":"11229:18:28","nodeType":"YulExpressionStatement","src":"11229:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11271:4:28","nodeType":"YulLiteral","src":"11271:4:28","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11285:3:28","nodeType":"YulLiteral","src":"11285:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"11290:2:28","nodeType":"YulIdentifier","src":"11290:2:28"}],"functionName":{"name":"shr","nativeSrc":"11281:3:28","nodeType":"YulIdentifier","src":"11281:3:28"},"nativeSrc":"11281:12:28","nodeType":"YulFunctionCall","src":"11281:12:28"},{"kind":"number","nativeSrc":"11295:2:28","nodeType":"YulLiteral","src":"11295:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"11277:3:28","nodeType":"YulIdentifier","src":"11277:3:28"},"nativeSrc":"11277:21:28","nodeType":"YulFunctionCall","src":"11277:21:28"}],"functionName":{"name":"mstore","nativeSrc":"11264:6:28","nodeType":"YulIdentifier","src":"11264:6:28"},"nativeSrc":"11264:35:28","nodeType":"YulFunctionCall","src":"11264:35:28"},"nativeSrc":"11264:35:28","nodeType":"YulExpressionStatement","src":"11264:35:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11331:4:28","nodeType":"YulLiteral","src":"11331:4:28","type":"","value":"0x40"},{"name":"r","nativeSrc":"11337:1:28","nodeType":"YulIdentifier","src":"11337:1:28"}],"functionName":{"name":"mstore","nativeSrc":"11324:6:28","nodeType":"YulIdentifier","src":"11324:6:28"},"nativeSrc":"11324:15:28","nodeType":"YulFunctionCall","src":"11324:15:28"},"nativeSrc":"11324:15:28","nodeType":"YulExpressionStatement","src":"11324:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11371:4:28","nodeType":"YulLiteral","src":"11371:4:28","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"11381:1:28","nodeType":"YulLiteral","src":"11381:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"11388:1:28","nodeType":"YulLiteral","src":"11388:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"11391:2:28","nodeType":"YulIdentifier","src":"11391:2:28"}],"functionName":{"name":"shl","nativeSrc":"11384:3:28","nodeType":"YulIdentifier","src":"11384:3:28"},"nativeSrc":"11384:10:28","nodeType":"YulFunctionCall","src":"11384:10:28"}],"functionName":{"name":"shr","nativeSrc":"11377:3:28","nodeType":"YulIdentifier","src":"11377:3:28"},"nativeSrc":"11377:18:28","nodeType":"YulFunctionCall","src":"11377:18:28"}],"functionName":{"name":"mstore","nativeSrc":"11364:6:28","nodeType":"YulIdentifier","src":"11364:6:28"},"nativeSrc":"11364:32:28","nodeType":"YulFunctionCall","src":"11364:32:28"},"nativeSrc":"11364:32:28","nodeType":"YulExpressionStatement","src":"11364:32:28"},{"nativeSrc":"11421:385:28","nodeType":"YulVariableDeclaration","src":"11421:385:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"11486:3:28","nodeType":"YulIdentifier","src":"11486:3:28"},"nativeSrc":"11486:5:28","nodeType":"YulFunctionCall","src":"11486:5:28"},{"kind":"number","nativeSrc":"11560:1:28","nodeType":"YulLiteral","src":"11560:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"11614:4:28","nodeType":"YulLiteral","src":"11614:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11663:4:28","nodeType":"YulLiteral","src":"11663:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"11711:4:28","nodeType":"YulLiteral","src":"11711:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"11761:4:28","nodeType":"YulLiteral","src":"11761:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"11450:10:28","nodeType":"YulIdentifier","src":"11450:10:28"},"nativeSrc":"11450:356:28","nodeType":"YulFunctionCall","src":"11450:356:28"},"variables":[{"name":"t","nativeSrc":"11425:1:28","nodeType":"YulTypedName","src":"11425:1:28","type":""}]},{"body":{"nativeSrc":"11975:212:28","nodeType":"YulBlock","src":"11975:212:28","statements":[{"nativeSrc":"11997:12:28","nodeType":"YulAssignment","src":"11997:12:28","value":{"kind":"number","nativeSrc":"12008:1:28","nodeType":"YulLiteral","src":"12008:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"11997:7:28","nodeType":"YulIdentifier","src":"11997:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12037:4:28","nodeType":"YulLiteral","src":"12037:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"12043:1:28","nodeType":"YulLiteral","src":"12043:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12030:6:28","nodeType":"YulIdentifier","src":"12030:6:28"},"nativeSrc":"12030:15:28","nodeType":"YulFunctionCall","src":"12030:15:28"},"nativeSrc":"12030:15:28","nodeType":"YulExpressionStatement","src":"12030:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12099:4:28","nodeType":"YulLiteral","src":"12099:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"12105:1:28","nodeType":"YulIdentifier","src":"12105:1:28"}],"functionName":{"name":"mstore","nativeSrc":"12092:6:28","nodeType":"YulIdentifier","src":"12092:6:28"},"nativeSrc":"12092:15:28","nodeType":"YulFunctionCall","src":"12092:15:28"},"nativeSrc":"12092:15:28","nodeType":"YulExpressionStatement","src":"12092:15:28"},{"nativeSrc":"12164:5:28","nodeType":"YulBreak","src":"12164:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"11932:14:28","nodeType":"YulIdentifier","src":"11932:14:28"},"nativeSrc":"11932:16:28","nodeType":"YulFunctionCall","src":"11932:16:28"}],"functionName":{"name":"iszero","nativeSrc":"11925:6:28","nodeType":"YulIdentifier","src":"11925:6:28"},"nativeSrc":"11925:24:28","nodeType":"YulFunctionCall","src":"11925:24:28"},{"arguments":[{"name":"signer","nativeSrc":"11955:6:28","nodeType":"YulIdentifier","src":"11955:6:28"},{"arguments":[{"name":"t","nativeSrc":"11969:1:28","nodeType":"YulIdentifier","src":"11969:1:28"}],"functionName":{"name":"mload","nativeSrc":"11963:5:28","nodeType":"YulIdentifier","src":"11963:5:28"},"nativeSrc":"11963:8:28","nodeType":"YulFunctionCall","src":"11963:8:28"}],"functionName":{"name":"xor","nativeSrc":"11951:3:28","nodeType":"YulIdentifier","src":"11951:3:28"},"nativeSrc":"11951:21:28","nodeType":"YulFunctionCall","src":"11951:21:28"}],"functionName":{"name":"or","nativeSrc":"11922:2:28","nodeType":"YulIdentifier","src":"11922:2:28"},"nativeSrc":"11922:51:28","nodeType":"YulFunctionCall","src":"11922:51:28"}],"functionName":{"name":"iszero","nativeSrc":"11915:6:28","nodeType":"YulIdentifier","src":"11915:6:28"},"nativeSrc":"11915:59:28","nodeType":"YulFunctionCall","src":"11915:59:28"},"nativeSrc":"11912:275:28","nodeType":"YulIf","src":"11912:275:28"},{"nativeSrc":"12205:29:28","nodeType":"YulVariableDeclaration","src":"12205:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"12218:3:28","nodeType":"YulLiteral","src":"12218:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"12223:10:28","nodeType":"YulLiteral","src":"12223:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"12214:3:28","nodeType":"YulIdentifier","src":"12214:3:28"},"nativeSrc":"12214:20:28","nodeType":"YulFunctionCall","src":"12214:20:28"},"variables":[{"name":"f","nativeSrc":"12209:1:28","nodeType":"YulTypedName","src":"12209:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"12258:1:28","nodeType":"YulIdentifier","src":"12258:1:28"},{"name":"f","nativeSrc":"12261:1:28","nodeType":"YulIdentifier","src":"12261:1:28"}],"functionName":{"name":"mstore","nativeSrc":"12251:6:28","nodeType":"YulIdentifier","src":"12251:6:28"},"nativeSrc":"12251:12:28","nodeType":"YulFunctionCall","src":"12251:12:28"},"nativeSrc":"12251:12:28","nodeType":"YulExpressionStatement","src":"12251:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12350:1:28","nodeType":"YulIdentifier","src":"12350:1:28"},{"kind":"number","nativeSrc":"12353:4:28","nodeType":"YulLiteral","src":"12353:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"12346:3:28","nodeType":"YulIdentifier","src":"12346:3:28"},"nativeSrc":"12346:12:28","nodeType":"YulFunctionCall","src":"12346:12:28"},{"name":"hash","nativeSrc":"12360:4:28","nodeType":"YulIdentifier","src":"12360:4:28"}],"functionName":{"name":"mstore","nativeSrc":"12339:6:28","nodeType":"YulIdentifier","src":"12339:6:28"},"nativeSrc":"12339:26:28","nodeType":"YulFunctionCall","src":"12339:26:28"},"nativeSrc":"12339:26:28","nodeType":"YulExpressionStatement","src":"12339:26:28"},{"nativeSrc":"12382:21:28","nodeType":"YulVariableDeclaration","src":"12382:21:28","value":{"arguments":[{"name":"m","nativeSrc":"12395:1:28","nodeType":"YulIdentifier","src":"12395:1:28"},{"kind":"number","nativeSrc":"12398:4:28","nodeType":"YulLiteral","src":"12398:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"12391:3:28","nodeType":"YulIdentifier","src":"12391:3:28"},"nativeSrc":"12391:12:28","nodeType":"YulFunctionCall","src":"12391:12:28"},"variables":[{"name":"d","nativeSrc":"12386:1:28","nodeType":"YulTypedName","src":"12386:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"12427:1:28","nodeType":"YulIdentifier","src":"12427:1:28"},{"kind":"number","nativeSrc":"12430:4:28","nodeType":"YulLiteral","src":"12430:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"12420:6:28","nodeType":"YulIdentifier","src":"12420:6:28"},"nativeSrc":"12420:15:28","nodeType":"YulFunctionCall","src":"12420:15:28"},"nativeSrc":"12420:15:28","nodeType":"YulExpressionStatement","src":"12420:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12513:1:28","nodeType":"YulIdentifier","src":"12513:1:28"},{"kind":"number","nativeSrc":"12516:4:28","nodeType":"YulLiteral","src":"12516:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"12509:3:28","nodeType":"YulIdentifier","src":"12509:3:28"},"nativeSrc":"12509:12:28","nodeType":"YulFunctionCall","src":"12509:12:28"},{"kind":"number","nativeSrc":"12523:2:28","nodeType":"YulLiteral","src":"12523:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"12502:6:28","nodeType":"YulIdentifier","src":"12502:6:28"},"nativeSrc":"12502:24:28","nodeType":"YulFunctionCall","src":"12502:24:28"},"nativeSrc":"12502:24:28","nodeType":"YulExpressionStatement","src":"12502:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12582:1:28","nodeType":"YulIdentifier","src":"12582:1:28"},{"kind":"number","nativeSrc":"12585:4:28","nodeType":"YulLiteral","src":"12585:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"12578:3:28","nodeType":"YulIdentifier","src":"12578:3:28"},"nativeSrc":"12578:12:28","nodeType":"YulFunctionCall","src":"12578:12:28"},{"name":"r","nativeSrc":"12592:1:28","nodeType":"YulIdentifier","src":"12592:1:28"}],"functionName":{"name":"mstore","nativeSrc":"12571:6:28","nodeType":"YulIdentifier","src":"12571:6:28"},"nativeSrc":"12571:23:28","nodeType":"YulFunctionCall","src":"12571:23:28"},"nativeSrc":"12571:23:28","nodeType":"YulExpressionStatement","src":"12571:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12630:1:28","nodeType":"YulIdentifier","src":"12630:1:28"},{"kind":"number","nativeSrc":"12633:4:28","nodeType":"YulLiteral","src":"12633:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"12626:3:28","nodeType":"YulIdentifier","src":"12626:3:28"},"nativeSrc":"12626:12:28","nodeType":"YulFunctionCall","src":"12626:12:28"},{"arguments":[{"kind":"number","nativeSrc":"12646:4:28","nodeType":"YulLiteral","src":"12646:4:28","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"12640:5:28","nodeType":"YulIdentifier","src":"12640:5:28"},"nativeSrc":"12640:11:28","nodeType":"YulFunctionCall","src":"12640:11:28"}],"functionName":{"name":"mstore","nativeSrc":"12619:6:28","nodeType":"YulIdentifier","src":"12619:6:28"},"nativeSrc":"12619:33:28","nodeType":"YulFunctionCall","src":"12619:33:28"},"nativeSrc":"12619:33:28","nodeType":"YulExpressionStatement","src":"12619:33:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12689:1:28","nodeType":"YulIdentifier","src":"12689:1:28"},{"kind":"number","nativeSrc":"12692:4:28","nodeType":"YulLiteral","src":"12692:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"12685:3:28","nodeType":"YulIdentifier","src":"12685:3:28"},"nativeSrc":"12685:12:28","nodeType":"YulFunctionCall","src":"12685:12:28"},{"arguments":[{"kind":"number","nativeSrc":"12705:4:28","nodeType":"YulLiteral","src":"12705:4:28","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"12699:5:28","nodeType":"YulIdentifier","src":"12699:5:28"},"nativeSrc":"12699:11:28","nodeType":"YulFunctionCall","src":"12699:11:28"}],"functionName":{"name":"mstore8","nativeSrc":"12677:7:28","nodeType":"YulIdentifier","src":"12677:7:28"},"nativeSrc":"12677:34:28","nodeType":"YulFunctionCall","src":"12677:34:28"},"nativeSrc":"12677:34:28","nodeType":"YulExpressionStatement","src":"12677:34:28"},{"nativeSrc":"12783:774:28","nodeType":"YulAssignment","src":"12783:774:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"12922:1:28","nodeType":"YulIdentifier","src":"12922:1:28"}],"functionName":{"name":"mload","nativeSrc":"12916:5:28","nodeType":"YulIdentifier","src":"12916:5:28"},"nativeSrc":"12916:8:28","nodeType":"YulFunctionCall","src":"12916:8:28"},{"name":"f","nativeSrc":"12926:1:28","nodeType":"YulIdentifier","src":"12926:1:28"}],"functionName":{"name":"eq","nativeSrc":"12913:2:28","nodeType":"YulIdentifier","src":"12913:2:28"},"nativeSrc":"12913:15:28","nodeType":"YulFunctionCall","src":"12913:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"13198:3:28","nodeType":"YulIdentifier","src":"13198:3:28"},"nativeSrc":"13198:5:28","nodeType":"YulFunctionCall","src":"13198:5:28"},{"name":"signer","nativeSrc":"13247:6:28","nodeType":"YulIdentifier","src":"13247:6:28"},{"name":"m","nativeSrc":"13304:1:28","nodeType":"YulIdentifier","src":"13304:1:28"},{"kind":"number","nativeSrc":"13364:4:28","nodeType":"YulLiteral","src":"13364:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"13427:1:28","nodeType":"YulIdentifier","src":"13427:1:28"},{"kind":"number","nativeSrc":"13479:4:28","nodeType":"YulLiteral","src":"13479:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"13162:10:28","nodeType":"YulIdentifier","src":"13162:10:28"},"nativeSrc":"13162:377:28","nodeType":"YulFunctionCall","src":"13162:377:28"}],"functionName":{"name":"and","nativeSrc":"12794:3:28","nodeType":"YulIdentifier","src":"12794:3:28"},"nativeSrc":"12794:763:28","nodeType":"YulFunctionCall","src":"12794:763:28"},"variableNames":[{"name":"isValid","nativeSrc":"12783:7:28","nodeType":"YulIdentifier","src":"12783:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13581:4:28","nodeType":"YulLiteral","src":"13581:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"13587:1:28","nodeType":"YulLiteral","src":"13587:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13574:6:28","nodeType":"YulIdentifier","src":"13574:6:28"},"nativeSrc":"13574:15:28","nodeType":"YulFunctionCall","src":"13574:15:28"},"nativeSrc":"13574:15:28","nodeType":"YulExpressionStatement","src":"13574:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13639:4:28","nodeType":"YulLiteral","src":"13639:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"13645:1:28","nodeType":"YulIdentifier","src":"13645:1:28"}],"functionName":{"name":"mstore","nativeSrc":"13632:6:28","nodeType":"YulIdentifier","src":"13632:6:28"},"nativeSrc":"13632:15:28","nodeType":"YulFunctionCall","src":"13632:15:28"},"nativeSrc":"13632:15:28","nodeType":"YulExpressionStatement","src":"13632:15:28"},{"nativeSrc":"13700:5:28","nodeType":"YulBreak","src":"13700:5:28"}]},"condition":{"name":"signer","nativeSrc":"11164:6:28","nodeType":"YulIdentifier","src":"11164:6:28"},"nativeSrc":"11121:2598:28","nodeType":"YulForLoop","post":{"nativeSrc":"11171:2:28","nodeType":"YulBlock","src":"11171:2:28","statements":[]},"pre":{"nativeSrc":"11125:38:28","nodeType":"YulBlock","src":"11125:38:28","statements":[{"nativeSrc":"11127:34:28","nodeType":"YulAssignment","src":"11127:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"11141:2:28","nodeType":"YulLiteral","src":"11141:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"11149:2:28","nodeType":"YulLiteral","src":"11149:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"11153:6:28","nodeType":"YulIdentifier","src":"11153:6:28"}],"functionName":{"name":"shl","nativeSrc":"11145:3:28","nodeType":"YulIdentifier","src":"11145:3:28"},"nativeSrc":"11145:15:28","nodeType":"YulFunctionCall","src":"11145:15:28"}],"functionName":{"name":"shr","nativeSrc":"11137:3:28","nodeType":"YulIdentifier","src":"11137:3:28"},"nativeSrc":"11137:24:28","nodeType":"YulFunctionCall","src":"11137:24:28"},"variableNames":[{"name":"signer","nativeSrc":"11127:6:28","nodeType":"YulIdentifier","src":"11127:6:28"}]}]},"src":"11121:2598:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11408,"isOffset":false,"isSlot":false,"src":"11242:4:28","valueSize":1},{"declaration":11408,"isOffset":false,"isSlot":false,"src":"12360:4:28","valueSize":1},{"declaration":11415,"isOffset":false,"isSlot":false,"src":"11997:7:28","valueSize":1},{"declaration":11415,"isOffset":false,"isSlot":false,"src":"12783:7:28","valueSize":1},{"declaration":11410,"isOffset":false,"isSlot":false,"src":"11337:1:28","valueSize":1},{"declaration":11410,"isOffset":false,"isSlot":false,"src":"12592:1:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11127:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11153:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11164:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11955:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"13247:6:28","valueSize":1},{"declaration":11412,"isOffset":false,"isSlot":false,"src":"11290:2:28","valueSize":1},{"declaration":11412,"isOffset":false,"isSlot":false,"src":"11391:2:28","valueSize":1}],"id":11417,"nodeType":"InlineAssembly","src":"11023:2706:28"}]},"documentation":{"id":11404,"nodeType":"StructuredDocumentation","src":"10584:234:28","text":"@dev Returns whether the signature (`r`, `vs`) is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11419,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"10832:19:28","nodeType":"FunctionDefinition","parameters":{"id":11413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11406,"mutability":"mutable","name":"signer","nameLocation":"10860:6:28","nodeType":"VariableDeclaration","scope":11419,"src":"10852:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11405,"name":"address","nodeType":"ElementaryTypeName","src":"10852:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11408,"mutability":"mutable","name":"hash","nameLocation":"10876:4:28","nodeType":"VariableDeclaration","scope":11419,"src":"10868:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10868:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11410,"mutability":"mutable","name":"r","nameLocation":"10890:1:28","nodeType":"VariableDeclaration","scope":11419,"src":"10882:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10882:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11412,"mutability":"mutable","name":"vs","nameLocation":"10901:2:28","nodeType":"VariableDeclaration","scope":11419,"src":"10893:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10893:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10851:53:28"},"returnParameters":{"id":11416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11415,"mutability":"mutable","name":"isValid","nameLocation":"10957:7:28","nodeType":"VariableDeclaration","scope":11419,"src":"10952:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11414,"name":"bool","nodeType":"ElementaryTypeName","src":"10952:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10951:14:28"},"scope":11528,"src":"10823:2912:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11436,"nodeType":"Block","src":"14139:2719:28","statements":[{"AST":{"nativeSrc":"14201:2651:28","nodeType":"YulBlock","src":"14201:2651:28","statements":[{"body":{"nativeSrc":"14343:2499:28","nodeType":"YulBlock","src":"14343:2499:28","statements":[{"nativeSrc":"14361:20:28","nodeType":"YulVariableDeclaration","src":"14361:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"14376:4:28","nodeType":"YulLiteral","src":"14376:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14370:5:28","nodeType":"YulIdentifier","src":"14370:5:28"},"nativeSrc":"14370:11:28","nodeType":"YulFunctionCall","src":"14370:11:28"},"variables":[{"name":"m","nativeSrc":"14365:1:28","nodeType":"YulTypedName","src":"14365:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14405:4:28","nodeType":"YulLiteral","src":"14405:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"14411:4:28","nodeType":"YulIdentifier","src":"14411:4:28"}],"functionName":{"name":"mstore","nativeSrc":"14398:6:28","nodeType":"YulIdentifier","src":"14398:6:28"},"nativeSrc":"14398:18:28","nodeType":"YulFunctionCall","src":"14398:18:28"},"nativeSrc":"14398:18:28","nodeType":"YulExpressionStatement","src":"14398:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14440:4:28","nodeType":"YulLiteral","src":"14440:4:28","type":"","value":"0x20"},{"arguments":[{"name":"v","nativeSrc":"14450:1:28","nodeType":"YulIdentifier","src":"14450:1:28"},{"kind":"number","nativeSrc":"14453:4:28","nodeType":"YulLiteral","src":"14453:4:28","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"14446:3:28","nodeType":"YulIdentifier","src":"14446:3:28"},"nativeSrc":"14446:12:28","nodeType":"YulFunctionCall","src":"14446:12:28"}],"functionName":{"name":"mstore","nativeSrc":"14433:6:28","nodeType":"YulIdentifier","src":"14433:6:28"},"nativeSrc":"14433:26:28","nodeType":"YulFunctionCall","src":"14433:26:28"},"nativeSrc":"14433:26:28","nodeType":"YulExpressionStatement","src":"14433:26:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14491:4:28","nodeType":"YulLiteral","src":"14491:4:28","type":"","value":"0x40"},{"name":"r","nativeSrc":"14497:1:28","nodeType":"YulIdentifier","src":"14497:1:28"}],"functionName":{"name":"mstore","nativeSrc":"14484:6:28","nodeType":"YulIdentifier","src":"14484:6:28"},"nativeSrc":"14484:15:28","nodeType":"YulFunctionCall","src":"14484:15:28"},"nativeSrc":"14484:15:28","nodeType":"YulExpressionStatement","src":"14484:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14531:4:28","nodeType":"YulLiteral","src":"14531:4:28","type":"","value":"0x60"},{"name":"s","nativeSrc":"14537:1:28","nodeType":"YulIdentifier","src":"14537:1:28"}],"functionName":{"name":"mstore","nativeSrc":"14524:6:28","nodeType":"YulIdentifier","src":"14524:6:28"},"nativeSrc":"14524:15:28","nodeType":"YulFunctionCall","src":"14524:15:28"},"nativeSrc":"14524:15:28","nodeType":"YulExpressionStatement","src":"14524:15:28"},{"nativeSrc":"14564:385:28","nodeType":"YulVariableDeclaration","src":"14564:385:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"14629:3:28","nodeType":"YulIdentifier","src":"14629:3:28"},"nativeSrc":"14629:5:28","nodeType":"YulFunctionCall","src":"14629:5:28"},{"kind":"number","nativeSrc":"14703:1:28","nodeType":"YulLiteral","src":"14703:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"14757:4:28","nodeType":"YulLiteral","src":"14757:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14806:4:28","nodeType":"YulLiteral","src":"14806:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"14854:4:28","nodeType":"YulLiteral","src":"14854:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"14904:4:28","nodeType":"YulLiteral","src":"14904:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"14593:10:28","nodeType":"YulIdentifier","src":"14593:10:28"},"nativeSrc":"14593:356:28","nodeType":"YulFunctionCall","src":"14593:356:28"},"variables":[{"name":"t","nativeSrc":"14568:1:28","nodeType":"YulTypedName","src":"14568:1:28","type":""}]},{"body":{"nativeSrc":"15118:212:28","nodeType":"YulBlock","src":"15118:212:28","statements":[{"nativeSrc":"15140:12:28","nodeType":"YulAssignment","src":"15140:12:28","value":{"kind":"number","nativeSrc":"15151:1:28","nodeType":"YulLiteral","src":"15151:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"15140:7:28","nodeType":"YulIdentifier","src":"15140:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15180:4:28","nodeType":"YulLiteral","src":"15180:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"15186:1:28","nodeType":"YulLiteral","src":"15186:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15173:6:28","nodeType":"YulIdentifier","src":"15173:6:28"},"nativeSrc":"15173:15:28","nodeType":"YulFunctionCall","src":"15173:15:28"},"nativeSrc":"15173:15:28","nodeType":"YulExpressionStatement","src":"15173:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15242:4:28","nodeType":"YulLiteral","src":"15242:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"15248:1:28","nodeType":"YulIdentifier","src":"15248:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15235:6:28","nodeType":"YulIdentifier","src":"15235:6:28"},"nativeSrc":"15235:15:28","nodeType":"YulFunctionCall","src":"15235:15:28"},"nativeSrc":"15235:15:28","nodeType":"YulExpressionStatement","src":"15235:15:28"},{"nativeSrc":"15307:5:28","nodeType":"YulBreak","src":"15307:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15075:14:28","nodeType":"YulIdentifier","src":"15075:14:28"},"nativeSrc":"15075:16:28","nodeType":"YulFunctionCall","src":"15075:16:28"}],"functionName":{"name":"iszero","nativeSrc":"15068:6:28","nodeType":"YulIdentifier","src":"15068:6:28"},"nativeSrc":"15068:24:28","nodeType":"YulFunctionCall","src":"15068:24:28"},{"arguments":[{"name":"signer","nativeSrc":"15098:6:28","nodeType":"YulIdentifier","src":"15098:6:28"},{"arguments":[{"name":"t","nativeSrc":"15112:1:28","nodeType":"YulIdentifier","src":"15112:1:28"}],"functionName":{"name":"mload","nativeSrc":"15106:5:28","nodeType":"YulIdentifier","src":"15106:5:28"},"nativeSrc":"15106:8:28","nodeType":"YulFunctionCall","src":"15106:8:28"}],"functionName":{"name":"xor","nativeSrc":"15094:3:28","nodeType":"YulIdentifier","src":"15094:3:28"},"nativeSrc":"15094:21:28","nodeType":"YulFunctionCall","src":"15094:21:28"}],"functionName":{"name":"or","nativeSrc":"15065:2:28","nodeType":"YulIdentifier","src":"15065:2:28"},"nativeSrc":"15065:51:28","nodeType":"YulFunctionCall","src":"15065:51:28"}],"functionName":{"name":"iszero","nativeSrc":"15058:6:28","nodeType":"YulIdentifier","src":"15058:6:28"},"nativeSrc":"15058:59:28","nodeType":"YulFunctionCall","src":"15058:59:28"},"nativeSrc":"15055:275:28","nodeType":"YulIf","src":"15055:275:28"},{"nativeSrc":"15348:29:28","nodeType":"YulVariableDeclaration","src":"15348:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"15361:3:28","nodeType":"YulLiteral","src":"15361:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"15366:10:28","nodeType":"YulLiteral","src":"15366:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"15357:3:28","nodeType":"YulIdentifier","src":"15357:3:28"},"nativeSrc":"15357:20:28","nodeType":"YulFunctionCall","src":"15357:20:28"},"variables":[{"name":"f","nativeSrc":"15352:1:28","nodeType":"YulTypedName","src":"15352:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"15401:1:28","nodeType":"YulIdentifier","src":"15401:1:28"},{"name":"f","nativeSrc":"15404:1:28","nodeType":"YulIdentifier","src":"15404:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15394:6:28","nodeType":"YulIdentifier","src":"15394:6:28"},"nativeSrc":"15394:12:28","nodeType":"YulFunctionCall","src":"15394:12:28"},"nativeSrc":"15394:12:28","nodeType":"YulExpressionStatement","src":"15394:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15493:1:28","nodeType":"YulIdentifier","src":"15493:1:28"},{"kind":"number","nativeSrc":"15496:4:28","nodeType":"YulLiteral","src":"15496:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"15489:3:28","nodeType":"YulIdentifier","src":"15489:3:28"},"nativeSrc":"15489:12:28","nodeType":"YulFunctionCall","src":"15489:12:28"},{"name":"hash","nativeSrc":"15503:4:28","nodeType":"YulIdentifier","src":"15503:4:28"}],"functionName":{"name":"mstore","nativeSrc":"15482:6:28","nodeType":"YulIdentifier","src":"15482:6:28"},"nativeSrc":"15482:26:28","nodeType":"YulFunctionCall","src":"15482:26:28"},"nativeSrc":"15482:26:28","nodeType":"YulExpressionStatement","src":"15482:26:28"},{"nativeSrc":"15525:21:28","nodeType":"YulVariableDeclaration","src":"15525:21:28","value":{"arguments":[{"name":"m","nativeSrc":"15538:1:28","nodeType":"YulIdentifier","src":"15538:1:28"},{"kind":"number","nativeSrc":"15541:4:28","nodeType":"YulLiteral","src":"15541:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"15534:3:28","nodeType":"YulIdentifier","src":"15534:3:28"},"nativeSrc":"15534:12:28","nodeType":"YulFunctionCall","src":"15534:12:28"},"variables":[{"name":"d","nativeSrc":"15529:1:28","nodeType":"YulTypedName","src":"15529:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"15570:1:28","nodeType":"YulIdentifier","src":"15570:1:28"},{"kind":"number","nativeSrc":"15573:4:28","nodeType":"YulLiteral","src":"15573:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"15563:6:28","nodeType":"YulIdentifier","src":"15563:6:28"},"nativeSrc":"15563:15:28","nodeType":"YulFunctionCall","src":"15563:15:28"},"nativeSrc":"15563:15:28","nodeType":"YulExpressionStatement","src":"15563:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15656:1:28","nodeType":"YulIdentifier","src":"15656:1:28"},{"kind":"number","nativeSrc":"15659:4:28","nodeType":"YulLiteral","src":"15659:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"15652:3:28","nodeType":"YulIdentifier","src":"15652:3:28"},"nativeSrc":"15652:12:28","nodeType":"YulFunctionCall","src":"15652:12:28"},{"kind":"number","nativeSrc":"15666:2:28","nodeType":"YulLiteral","src":"15666:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"15645:6:28","nodeType":"YulIdentifier","src":"15645:6:28"},"nativeSrc":"15645:24:28","nodeType":"YulFunctionCall","src":"15645:24:28"},"nativeSrc":"15645:24:28","nodeType":"YulExpressionStatement","src":"15645:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15725:1:28","nodeType":"YulIdentifier","src":"15725:1:28"},{"kind":"number","nativeSrc":"15728:4:28","nodeType":"YulLiteral","src":"15728:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"15721:3:28","nodeType":"YulIdentifier","src":"15721:3:28"},"nativeSrc":"15721:12:28","nodeType":"YulFunctionCall","src":"15721:12:28"},{"name":"r","nativeSrc":"15735:1:28","nodeType":"YulIdentifier","src":"15735:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15714:6:28","nodeType":"YulIdentifier","src":"15714:6:28"},"nativeSrc":"15714:23:28","nodeType":"YulFunctionCall","src":"15714:23:28"},"nativeSrc":"15714:23:28","nodeType":"YulExpressionStatement","src":"15714:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15773:1:28","nodeType":"YulIdentifier","src":"15773:1:28"},{"kind":"number","nativeSrc":"15776:4:28","nodeType":"YulLiteral","src":"15776:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"15769:3:28","nodeType":"YulIdentifier","src":"15769:3:28"},"nativeSrc":"15769:12:28","nodeType":"YulFunctionCall","src":"15769:12:28"},{"name":"s","nativeSrc":"15783:1:28","nodeType":"YulIdentifier","src":"15783:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15762:6:28","nodeType":"YulIdentifier","src":"15762:6:28"},"nativeSrc":"15762:23:28","nodeType":"YulFunctionCall","src":"15762:23:28"},"nativeSrc":"15762:23:28","nodeType":"YulExpressionStatement","src":"15762:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15822:1:28","nodeType":"YulIdentifier","src":"15822:1:28"},{"kind":"number","nativeSrc":"15825:4:28","nodeType":"YulLiteral","src":"15825:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"15818:3:28","nodeType":"YulIdentifier","src":"15818:3:28"},"nativeSrc":"15818:12:28","nodeType":"YulFunctionCall","src":"15818:12:28"},{"name":"v","nativeSrc":"15832:1:28","nodeType":"YulIdentifier","src":"15832:1:28"}],"functionName":{"name":"mstore8","nativeSrc":"15810:7:28","nodeType":"YulIdentifier","src":"15810:7:28"},"nativeSrc":"15810:24:28","nodeType":"YulFunctionCall","src":"15810:24:28"},"nativeSrc":"15810:24:28","nodeType":"YulExpressionStatement","src":"15810:24:28"},{"nativeSrc":"15906:774:28","nodeType":"YulAssignment","src":"15906:774:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"16045:1:28","nodeType":"YulIdentifier","src":"16045:1:28"}],"functionName":{"name":"mload","nativeSrc":"16039:5:28","nodeType":"YulIdentifier","src":"16039:5:28"},"nativeSrc":"16039:8:28","nodeType":"YulFunctionCall","src":"16039:8:28"},{"name":"f","nativeSrc":"16049:1:28","nodeType":"YulIdentifier","src":"16049:1:28"}],"functionName":{"name":"eq","nativeSrc":"16036:2:28","nodeType":"YulIdentifier","src":"16036:2:28"},"nativeSrc":"16036:15:28","nodeType":"YulFunctionCall","src":"16036:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16321:3:28","nodeType":"YulIdentifier","src":"16321:3:28"},"nativeSrc":"16321:5:28","nodeType":"YulFunctionCall","src":"16321:5:28"},{"name":"signer","nativeSrc":"16370:6:28","nodeType":"YulIdentifier","src":"16370:6:28"},{"name":"m","nativeSrc":"16427:1:28","nodeType":"YulIdentifier","src":"16427:1:28"},{"kind":"number","nativeSrc":"16487:4:28","nodeType":"YulLiteral","src":"16487:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"16550:1:28","nodeType":"YulIdentifier","src":"16550:1:28"},{"kind":"number","nativeSrc":"16602:4:28","nodeType":"YulLiteral","src":"16602:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"16285:10:28","nodeType":"YulIdentifier","src":"16285:10:28"},"nativeSrc":"16285:377:28","nodeType":"YulFunctionCall","src":"16285:377:28"}],"functionName":{"name":"and","nativeSrc":"15917:3:28","nodeType":"YulIdentifier","src":"15917:3:28"},"nativeSrc":"15917:763:28","nodeType":"YulFunctionCall","src":"15917:763:28"},"variableNames":[{"name":"isValid","nativeSrc":"15906:7:28","nodeType":"YulIdentifier","src":"15906:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16704:4:28","nodeType":"YulLiteral","src":"16704:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"16710:1:28","nodeType":"YulLiteral","src":"16710:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16697:6:28","nodeType":"YulIdentifier","src":"16697:6:28"},"nativeSrc":"16697:15:28","nodeType":"YulFunctionCall","src":"16697:15:28"},"nativeSrc":"16697:15:28","nodeType":"YulExpressionStatement","src":"16697:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16762:4:28","nodeType":"YulLiteral","src":"16762:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"16768:1:28","nodeType":"YulIdentifier","src":"16768:1:28"}],"functionName":{"name":"mstore","nativeSrc":"16755:6:28","nodeType":"YulIdentifier","src":"16755:6:28"},"nativeSrc":"16755:15:28","nodeType":"YulFunctionCall","src":"16755:15:28"},"nativeSrc":"16755:15:28","nodeType":"YulExpressionStatement","src":"16755:15:28"},{"nativeSrc":"16823:5:28","nodeType":"YulBreak","src":"16823:5:28"}]},"condition":{"name":"signer","nativeSrc":"14333:6:28","nodeType":"YulIdentifier","src":"14333:6:28"},"nativeSrc":"14290:2552:28","nodeType":"YulForLoop","post":{"nativeSrc":"14340:2:28","nodeType":"YulBlock","src":"14340:2:28","statements":[]},"pre":{"nativeSrc":"14294:38:28","nodeType":"YulBlock","src":"14294:38:28","statements":[{"nativeSrc":"14296:34:28","nodeType":"YulAssignment","src":"14296:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"14310:2:28","nodeType":"YulLiteral","src":"14310:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14318:2:28","nodeType":"YulLiteral","src":"14318:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"14322:6:28","nodeType":"YulIdentifier","src":"14322:6:28"}],"functionName":{"name":"shl","nativeSrc":"14314:3:28","nodeType":"YulIdentifier","src":"14314:3:28"},"nativeSrc":"14314:15:28","nodeType":"YulFunctionCall","src":"14314:15:28"}],"functionName":{"name":"shr","nativeSrc":"14306:3:28","nodeType":"YulIdentifier","src":"14306:3:28"},"nativeSrc":"14306:24:28","nodeType":"YulFunctionCall","src":"14306:24:28"},"variableNames":[{"name":"signer","nativeSrc":"14296:6:28","nodeType":"YulIdentifier","src":"14296:6:28"}]}]},"src":"14290:2552:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11424,"isOffset":false,"isSlot":false,"src":"14411:4:28","valueSize":1},{"declaration":11424,"isOffset":false,"isSlot":false,"src":"15503:4:28","valueSize":1},{"declaration":11433,"isOffset":false,"isSlot":false,"src":"15140:7:28","valueSize":1},{"declaration":11433,"isOffset":false,"isSlot":false,"src":"15906:7:28","valueSize":1},{"declaration":11428,"isOffset":false,"isSlot":false,"src":"14497:1:28","valueSize":1},{"declaration":11428,"isOffset":false,"isSlot":false,"src":"15735:1:28","valueSize":1},{"declaration":11430,"isOffset":false,"isSlot":false,"src":"14537:1:28","valueSize":1},{"declaration":11430,"isOffset":false,"isSlot":false,"src":"15783:1:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"14296:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"14322:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"14333:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"15098:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"16370:6:28","valueSize":1},{"declaration":11426,"isOffset":false,"isSlot":false,"src":"14450:1:28","valueSize":1},{"declaration":11426,"isOffset":false,"isSlot":false,"src":"15832:1:28","valueSize":1}],"id":11435,"nodeType":"InlineAssembly","src":"14192:2660:28"}]},"documentation":{"id":11420,"nodeType":"StructuredDocumentation","src":"13741:238:28","text":"@dev Returns whether the signature (`v`, `r`, `s`) is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11437,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"13993:19:28","nodeType":"FunctionDefinition","parameters":{"id":11431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11422,"mutability":"mutable","name":"signer","nameLocation":"14021:6:28","nodeType":"VariableDeclaration","scope":11437,"src":"14013:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11421,"name":"address","nodeType":"ElementaryTypeName","src":"14013:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11424,"mutability":"mutable","name":"hash","nameLocation":"14037:4:28","nodeType":"VariableDeclaration","scope":11437,"src":"14029:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14029:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11426,"mutability":"mutable","name":"v","nameLocation":"14049:1:28","nodeType":"VariableDeclaration","scope":11437,"src":"14043:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11425,"name":"uint8","nodeType":"ElementaryTypeName","src":"14043:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11428,"mutability":"mutable","name":"r","nameLocation":"14060:1:28","nodeType":"VariableDeclaration","scope":11437,"src":"14052:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14052:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11430,"mutability":"mutable","name":"s","nameLocation":"14071:1:28","nodeType":"VariableDeclaration","scope":11437,"src":"14063:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14063:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14012:61:28"},"returnParameters":{"id":11434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11433,"mutability":"mutable","name":"isValid","nameLocation":"14126:7:28","nodeType":"VariableDeclaration","scope":11437,"src":"14121:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11432,"name":"bool","nodeType":"ElementaryTypeName","src":"14121:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14120:14:28"},"scope":11528,"src":"13984:2874:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11450,"nodeType":"Block","src":"17397:1346:28","statements":[{"AST":{"nativeSrc":"17459:1278:28","nodeType":"YulBlock","src":"17459:1278:28","statements":[{"nativeSrc":"17473:20:28","nodeType":"YulVariableDeclaration","src":"17473:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"17488:4:28","nodeType":"YulLiteral","src":"17488:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17482:5:28","nodeType":"YulIdentifier","src":"17482:5:28"},"nativeSrc":"17482:11:28","nodeType":"YulFunctionCall","src":"17482:11:28"},"variables":[{"name":"m","nativeSrc":"17477:1:28","nodeType":"YulTypedName","src":"17477:1:28","type":""}]},{"nativeSrc":"17506:29:28","nodeType":"YulVariableDeclaration","src":"17506:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"17519:3:28","nodeType":"YulLiteral","src":"17519:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"17524:10:28","nodeType":"YulLiteral","src":"17524:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"17515:3:28","nodeType":"YulIdentifier","src":"17515:3:28"},"nativeSrc":"17515:20:28","nodeType":"YulFunctionCall","src":"17515:20:28"},"variables":[{"name":"f","nativeSrc":"17510:1:28","nodeType":"YulTypedName","src":"17510:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"17555:1:28","nodeType":"YulIdentifier","src":"17555:1:28"},{"name":"f","nativeSrc":"17558:1:28","nodeType":"YulIdentifier","src":"17558:1:28"}],"functionName":{"name":"mstore","nativeSrc":"17548:6:28","nodeType":"YulIdentifier","src":"17548:6:28"},"nativeSrc":"17548:12:28","nodeType":"YulFunctionCall","src":"17548:12:28"},"nativeSrc":"17548:12:28","nodeType":"YulExpressionStatement","src":"17548:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17643:1:28","nodeType":"YulIdentifier","src":"17643:1:28"},{"kind":"number","nativeSrc":"17646:4:28","nodeType":"YulLiteral","src":"17646:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"17639:3:28","nodeType":"YulIdentifier","src":"17639:3:28"},"nativeSrc":"17639:12:28","nodeType":"YulFunctionCall","src":"17639:12:28"},{"name":"hash","nativeSrc":"17653:4:28","nodeType":"YulIdentifier","src":"17653:4:28"}],"functionName":{"name":"mstore","nativeSrc":"17632:6:28","nodeType":"YulIdentifier","src":"17632:6:28"},"nativeSrc":"17632:26:28","nodeType":"YulFunctionCall","src":"17632:26:28"},"nativeSrc":"17632:26:28","nodeType":"YulExpressionStatement","src":"17632:26:28"},{"nativeSrc":"17671:21:28","nodeType":"YulVariableDeclaration","src":"17671:21:28","value":{"arguments":[{"name":"m","nativeSrc":"17684:1:28","nodeType":"YulIdentifier","src":"17684:1:28"},{"kind":"number","nativeSrc":"17687:4:28","nodeType":"YulLiteral","src":"17687:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"17680:3:28","nodeType":"YulIdentifier","src":"17680:3:28"},"nativeSrc":"17680:12:28","nodeType":"YulFunctionCall","src":"17680:12:28"},"variables":[{"name":"d","nativeSrc":"17675:1:28","nodeType":"YulTypedName","src":"17675:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"17712:1:28","nodeType":"YulIdentifier","src":"17712:1:28"},{"kind":"number","nativeSrc":"17715:4:28","nodeType":"YulLiteral","src":"17715:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"17705:6:28","nodeType":"YulIdentifier","src":"17705:6:28"},"nativeSrc":"17705:15:28","nodeType":"YulFunctionCall","src":"17705:15:28"},"nativeSrc":"17705:15:28","nodeType":"YulExpressionStatement","src":"17705:15:28"},{"nativeSrc":"17825:36:28","nodeType":"YulVariableDeclaration","src":"17825:36:28","value":{"arguments":[{"kind":"number","nativeSrc":"17838:4:28","nodeType":"YulLiteral","src":"17838:4:28","type":"","value":"0x20"},{"arguments":[{"name":"signature","nativeSrc":"17850:9:28","nodeType":"YulIdentifier","src":"17850:9:28"}],"functionName":{"name":"mload","nativeSrc":"17844:5:28","nodeType":"YulIdentifier","src":"17844:5:28"},"nativeSrc":"17844:16:28","nodeType":"YulFunctionCall","src":"17844:16:28"}],"functionName":{"name":"add","nativeSrc":"17834:3:28","nodeType":"YulIdentifier","src":"17834:3:28"},"nativeSrc":"17834:27:28","nodeType":"YulFunctionCall","src":"17834:27:28"},"variables":[{"name":"n","nativeSrc":"17829:1:28","nodeType":"YulTypedName","src":"17829:1:28","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17889:3:28","nodeType":"YulIdentifier","src":"17889:3:28"},"nativeSrc":"17889:5:28","nodeType":"YulFunctionCall","src":"17889:5:28"},{"kind":"number","nativeSrc":"17896:1:28","nodeType":"YulLiteral","src":"17896:1:28","type":"","value":"4"},{"name":"signature","nativeSrc":"17899:9:28","nodeType":"YulIdentifier","src":"17899:9:28"},{"name":"n","nativeSrc":"17910:1:28","nodeType":"YulIdentifier","src":"17910:1:28"},{"arguments":[{"name":"m","nativeSrc":"17917:1:28","nodeType":"YulIdentifier","src":"17917:1:28"},{"kind":"number","nativeSrc":"17920:4:28","nodeType":"YulLiteral","src":"17920:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"17913:3:28","nodeType":"YulIdentifier","src":"17913:3:28"},"nativeSrc":"17913:12:28","nodeType":"YulFunctionCall","src":"17913:12:28"},{"name":"n","nativeSrc":"17927:1:28","nodeType":"YulIdentifier","src":"17927:1:28"}],"functionName":{"name":"staticcall","nativeSrc":"17878:10:28","nodeType":"YulIdentifier","src":"17878:10:28"},"nativeSrc":"17878:51:28","nodeType":"YulFunctionCall","src":"17878:51:28"}],"functionName":{"name":"pop","nativeSrc":"17874:3:28","nodeType":"YulIdentifier","src":"17874:3:28"},"nativeSrc":"17874:56:28","nodeType":"YulFunctionCall","src":"17874:56:28"},"nativeSrc":"17874:56:28","nodeType":"YulExpressionStatement","src":"17874:56:28"},{"nativeSrc":"17986:741:28","nodeType":"YulAssignment","src":"17986:741:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"18117:1:28","nodeType":"YulIdentifier","src":"18117:1:28"}],"functionName":{"name":"mload","nativeSrc":"18111:5:28","nodeType":"YulIdentifier","src":"18111:5:28"},"nativeSrc":"18111:8:28","nodeType":"YulFunctionCall","src":"18111:8:28"},{"name":"f","nativeSrc":"18121:1:28","nodeType":"YulIdentifier","src":"18121:1:28"}],"functionName":{"name":"eq","nativeSrc":"18108:2:28","nodeType":"YulIdentifier","src":"18108:2:28"},"nativeSrc":"18108:15:28","nodeType":"YulFunctionCall","src":"18108:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18373:3:28","nodeType":"YulIdentifier","src":"18373:3:28"},"nativeSrc":"18373:5:28","nodeType":"YulFunctionCall","src":"18373:5:28"},{"name":"signer","nativeSrc":"18418:6:28","nodeType":"YulIdentifier","src":"18418:6:28"},{"name":"m","nativeSrc":"18471:1:28","nodeType":"YulIdentifier","src":"18471:1:28"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18531:14:28","nodeType":"YulIdentifier","src":"18531:14:28"},"nativeSrc":"18531:16:28","nodeType":"YulFunctionCall","src":"18531:16:28"},{"kind":"number","nativeSrc":"18549:4:28","nodeType":"YulLiteral","src":"18549:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"18527:3:28","nodeType":"YulIdentifier","src":"18527:3:28"},"nativeSrc":"18527:27:28","nodeType":"YulFunctionCall","src":"18527:27:28"},{"name":"d","nativeSrc":"18609:1:28","nodeType":"YulIdentifier","src":"18609:1:28"},{"kind":"number","nativeSrc":"18657:4:28","nodeType":"YulLiteral","src":"18657:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"18341:10:28","nodeType":"YulIdentifier","src":"18341:10:28"},"nativeSrc":"18341:372:28","nodeType":"YulFunctionCall","src":"18341:372:28"}],"functionName":{"name":"and","nativeSrc":"17997:3:28","nodeType":"YulIdentifier","src":"17997:3:28"},"nativeSrc":"17997:730:28","nodeType":"YulFunctionCall","src":"17997:730:28"},"variableNames":[{"name":"isValid","nativeSrc":"17986:7:28","nodeType":"YulIdentifier","src":"17986:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11442,"isOffset":false,"isSlot":false,"src":"17653:4:28","valueSize":1},{"declaration":11447,"isOffset":false,"isSlot":false,"src":"17986:7:28","valueSize":1},{"declaration":11444,"isOffset":false,"isSlot":false,"src":"17850:9:28","valueSize":1},{"declaration":11444,"isOffset":false,"isSlot":false,"src":"17899:9:28","valueSize":1},{"declaration":11440,"isOffset":false,"isSlot":false,"src":"18418:6:28","valueSize":1}],"id":11449,"nodeType":"InlineAssembly","src":"17450:1287:28"}]},"documentation":{"id":11438,"nodeType":"StructuredDocumentation","src":"17147:90:28","text":"@dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract."},"id":11451,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"17251:26:28","nodeType":"FunctionDefinition","parameters":{"id":11445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11440,"mutability":"mutable","name":"signer","nameLocation":"17286:6:28","nodeType":"VariableDeclaration","scope":11451,"src":"17278:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11439,"name":"address","nodeType":"ElementaryTypeName","src":"17278:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11442,"mutability":"mutable","name":"hash","nameLocation":"17302:4:28","nodeType":"VariableDeclaration","scope":11451,"src":"17294:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17294:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11444,"mutability":"mutable","name":"signature","nameLocation":"17321:9:28","nodeType":"VariableDeclaration","scope":11451,"src":"17308:22:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11443,"name":"bytes","nodeType":"ElementaryTypeName","src":"17308:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17277:54:28"},"returnParameters":{"id":11448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11447,"mutability":"mutable","name":"isValid","nameLocation":"17384:7:28","nodeType":"VariableDeclaration","scope":11451,"src":"17379:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11446,"name":"bool","nodeType":"ElementaryTypeName","src":"17379:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17378:14:28"},"scope":11528,"src":"17242:1501:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11464,"nodeType":"Block","src":"19011:1354:28","statements":[{"AST":{"nativeSrc":"19073:1286:28","nodeType":"YulBlock","src":"19073:1286:28","statements":[{"nativeSrc":"19087:20:28","nodeType":"YulVariableDeclaration","src":"19087:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"19102:4:28","nodeType":"YulLiteral","src":"19102:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19096:5:28","nodeType":"YulIdentifier","src":"19096:5:28"},"nativeSrc":"19096:11:28","nodeType":"YulFunctionCall","src":"19096:11:28"},"variables":[{"name":"m","nativeSrc":"19091:1:28","nodeType":"YulTypedName","src":"19091:1:28","type":""}]},{"nativeSrc":"19120:29:28","nodeType":"YulVariableDeclaration","src":"19120:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"19133:3:28","nodeType":"YulLiteral","src":"19133:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"19138:10:28","nodeType":"YulLiteral","src":"19138:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"19129:3:28","nodeType":"YulIdentifier","src":"19129:3:28"},"nativeSrc":"19129:20:28","nodeType":"YulFunctionCall","src":"19129:20:28"},"variables":[{"name":"f","nativeSrc":"19124:1:28","nodeType":"YulTypedName","src":"19124:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"19169:1:28","nodeType":"YulIdentifier","src":"19169:1:28"},{"name":"f","nativeSrc":"19172:1:28","nodeType":"YulIdentifier","src":"19172:1:28"}],"functionName":{"name":"mstore","nativeSrc":"19162:6:28","nodeType":"YulIdentifier","src":"19162:6:28"},"nativeSrc":"19162:12:28","nodeType":"YulFunctionCall","src":"19162:12:28"},"nativeSrc":"19162:12:28","nodeType":"YulExpressionStatement","src":"19162:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19257:1:28","nodeType":"YulIdentifier","src":"19257:1:28"},{"kind":"number","nativeSrc":"19260:4:28","nodeType":"YulLiteral","src":"19260:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"19253:3:28","nodeType":"YulIdentifier","src":"19253:3:28"},"nativeSrc":"19253:12:28","nodeType":"YulFunctionCall","src":"19253:12:28"},{"name":"hash","nativeSrc":"19267:4:28","nodeType":"YulIdentifier","src":"19267:4:28"}],"functionName":{"name":"mstore","nativeSrc":"19246:6:28","nodeType":"YulIdentifier","src":"19246:6:28"},"nativeSrc":"19246:26:28","nodeType":"YulFunctionCall","src":"19246:26:28"},"nativeSrc":"19246:26:28","nodeType":"YulExpressionStatement","src":"19246:26:28"},{"nativeSrc":"19285:21:28","nodeType":"YulVariableDeclaration","src":"19285:21:28","value":{"arguments":[{"name":"m","nativeSrc":"19298:1:28","nodeType":"YulIdentifier","src":"19298:1:28"},{"kind":"number","nativeSrc":"19301:4:28","nodeType":"YulLiteral","src":"19301:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"19294:3:28","nodeType":"YulIdentifier","src":"19294:3:28"},"nativeSrc":"19294:12:28","nodeType":"YulFunctionCall","src":"19294:12:28"},"variables":[{"name":"d","nativeSrc":"19289:1:28","nodeType":"YulTypedName","src":"19289:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"19326:1:28","nodeType":"YulIdentifier","src":"19326:1:28"},{"kind":"number","nativeSrc":"19329:4:28","nodeType":"YulLiteral","src":"19329:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"19319:6:28","nodeType":"YulIdentifier","src":"19319:6:28"},"nativeSrc":"19319:15:28","nodeType":"YulFunctionCall","src":"19319:15:28"},"nativeSrc":"19319:15:28","nodeType":"YulExpressionStatement","src":"19319:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19408:1:28","nodeType":"YulIdentifier","src":"19408:1:28"},{"kind":"number","nativeSrc":"19411:4:28","nodeType":"YulLiteral","src":"19411:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"19404:3:28","nodeType":"YulIdentifier","src":"19404:3:28"},"nativeSrc":"19404:12:28","nodeType":"YulFunctionCall","src":"19404:12:28"},{"name":"signature.length","nativeSrc":"19418:16:28","nodeType":"YulIdentifier","src":"19418:16:28"}],"functionName":{"name":"mstore","nativeSrc":"19397:6:28","nodeType":"YulIdentifier","src":"19397:6:28"},"nativeSrc":"19397:38:28","nodeType":"YulFunctionCall","src":"19397:38:28"},"nativeSrc":"19397:38:28","nodeType":"YulExpressionStatement","src":"19397:38:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19507:1:28","nodeType":"YulIdentifier","src":"19507:1:28"},{"kind":"number","nativeSrc":"19510:4:28","nodeType":"YulLiteral","src":"19510:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"19503:3:28","nodeType":"YulIdentifier","src":"19503:3:28"},"nativeSrc":"19503:12:28","nodeType":"YulFunctionCall","src":"19503:12:28"},{"name":"signature.offset","nativeSrc":"19517:16:28","nodeType":"YulIdentifier","src":"19517:16:28"},{"name":"signature.length","nativeSrc":"19535:16:28","nodeType":"YulIdentifier","src":"19535:16:28"}],"functionName":{"name":"calldatacopy","nativeSrc":"19490:12:28","nodeType":"YulIdentifier","src":"19490:12:28"},"nativeSrc":"19490:62:28","nodeType":"YulFunctionCall","src":"19490:62:28"},"nativeSrc":"19490:62:28","nodeType":"YulExpressionStatement","src":"19490:62:28"},{"nativeSrc":"19608:741:28","nodeType":"YulAssignment","src":"19608:741:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"19739:1:28","nodeType":"YulIdentifier","src":"19739:1:28"}],"functionName":{"name":"mload","nativeSrc":"19733:5:28","nodeType":"YulIdentifier","src":"19733:5:28"},"nativeSrc":"19733:8:28","nodeType":"YulFunctionCall","src":"19733:8:28"},{"name":"f","nativeSrc":"19743:1:28","nodeType":"YulIdentifier","src":"19743:1:28"}],"functionName":{"name":"eq","nativeSrc":"19730:2:28","nodeType":"YulIdentifier","src":"19730:2:28"},"nativeSrc":"19730:15:28","nodeType":"YulFunctionCall","src":"19730:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"19995:3:28","nodeType":"YulIdentifier","src":"19995:3:28"},"nativeSrc":"19995:5:28","nodeType":"YulFunctionCall","src":"19995:5:28"},{"name":"signer","nativeSrc":"20040:6:28","nodeType":"YulIdentifier","src":"20040:6:28"},{"name":"m","nativeSrc":"20093:1:28","nodeType":"YulIdentifier","src":"20093:1:28"},{"arguments":[{"name":"signature.length","nativeSrc":"20153:16:28","nodeType":"YulIdentifier","src":"20153:16:28"},{"kind":"number","nativeSrc":"20171:4:28","nodeType":"YulLiteral","src":"20171:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"20149:3:28","nodeType":"YulIdentifier","src":"20149:3:28"},"nativeSrc":"20149:27:28","nodeType":"YulFunctionCall","src":"20149:27:28"},{"name":"d","nativeSrc":"20231:1:28","nodeType":"YulIdentifier","src":"20231:1:28"},{"kind":"number","nativeSrc":"20279:4:28","nodeType":"YulLiteral","src":"20279:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"19963:10:28","nodeType":"YulIdentifier","src":"19963:10:28"},"nativeSrc":"19963:372:28","nodeType":"YulFunctionCall","src":"19963:372:28"}],"functionName":{"name":"and","nativeSrc":"19619:3:28","nodeType":"YulIdentifier","src":"19619:3:28"},"nativeSrc":"19619:730:28","nodeType":"YulFunctionCall","src":"19619:730:28"},"variableNames":[{"name":"isValid","nativeSrc":"19608:7:28","nodeType":"YulIdentifier","src":"19608:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11456,"isOffset":false,"isSlot":false,"src":"19267:4:28","valueSize":1},{"declaration":11461,"isOffset":false,"isSlot":false,"src":"19608:7:28","valueSize":1},{"declaration":11458,"isOffset":false,"isSlot":false,"src":"19418:16:28","suffix":"length","valueSize":1},{"declaration":11458,"isOffset":false,"isSlot":false,"src":"19535:16:28","suffix":"length","valueSize":1},{"declaration":11458,"isOffset":false,"isSlot":false,"src":"20153:16:28","suffix":"length","valueSize":1},{"declaration":11458,"isOffset":true,"isSlot":false,"src":"19517:16:28","suffix":"offset","valueSize":1},{"declaration":11454,"isOffset":false,"isSlot":false,"src":"20040:6:28","valueSize":1}],"id":11463,"nodeType":"InlineAssembly","src":"19064:1295:28"}]},"documentation":{"id":11452,"nodeType":"StructuredDocumentation","src":"18749:90:28","text":"@dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract."},"id":11465,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNowCalldata","nameLocation":"18853:34:28","nodeType":"FunctionDefinition","parameters":{"id":11459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11454,"mutability":"mutable","name":"signer","nameLocation":"18905:6:28","nodeType":"VariableDeclaration","scope":11465,"src":"18897:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11453,"name":"address","nodeType":"ElementaryTypeName","src":"18897:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11456,"mutability":"mutable","name":"hash","nameLocation":"18929:4:28","nodeType":"VariableDeclaration","scope":11465,"src":"18921:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18921:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11458,"mutability":"mutable","name":"signature","nameLocation":"18958:9:28","nodeType":"VariableDeclaration","scope":11465,"src":"18943:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11457,"name":"bytes","nodeType":"ElementaryTypeName","src":"18943:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18887:86:28"},"returnParameters":{"id":11462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11461,"mutability":"mutable","name":"isValid","nameLocation":"19002:7:28","nodeType":"VariableDeclaration","scope":11465,"src":"18997:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11460,"name":"bool","nodeType":"ElementaryTypeName","src":"18997:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18996:14:28"},"scope":11528,"src":"18844:1521:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11480,"nodeType":"Block","src":"20642:1398:28","statements":[{"AST":{"nativeSrc":"20704:1330:28","nodeType":"YulBlock","src":"20704:1330:28","statements":[{"nativeSrc":"20718:20:28","nodeType":"YulVariableDeclaration","src":"20718:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"20733:4:28","nodeType":"YulLiteral","src":"20733:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20727:5:28","nodeType":"YulIdentifier","src":"20727:5:28"},"nativeSrc":"20727:11:28","nodeType":"YulFunctionCall","src":"20727:11:28"},"variables":[{"name":"m","nativeSrc":"20722:1:28","nodeType":"YulTypedName","src":"20722:1:28","type":""}]},{"nativeSrc":"20751:29:28","nodeType":"YulVariableDeclaration","src":"20751:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"20764:3:28","nodeType":"YulLiteral","src":"20764:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"20769:10:28","nodeType":"YulLiteral","src":"20769:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"20760:3:28","nodeType":"YulIdentifier","src":"20760:3:28"},"nativeSrc":"20760:20:28","nodeType":"YulFunctionCall","src":"20760:20:28"},"variables":[{"name":"f","nativeSrc":"20755:1:28","nodeType":"YulTypedName","src":"20755:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"20800:1:28","nodeType":"YulIdentifier","src":"20800:1:28"},{"name":"f","nativeSrc":"20803:1:28","nodeType":"YulIdentifier","src":"20803:1:28"}],"functionName":{"name":"mstore","nativeSrc":"20793:6:28","nodeType":"YulIdentifier","src":"20793:6:28"},"nativeSrc":"20793:12:28","nodeType":"YulFunctionCall","src":"20793:12:28"},"nativeSrc":"20793:12:28","nodeType":"YulExpressionStatement","src":"20793:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20888:1:28","nodeType":"YulIdentifier","src":"20888:1:28"},{"kind":"number","nativeSrc":"20891:4:28","nodeType":"YulLiteral","src":"20891:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"20884:3:28","nodeType":"YulIdentifier","src":"20884:3:28"},"nativeSrc":"20884:12:28","nodeType":"YulFunctionCall","src":"20884:12:28"},{"name":"hash","nativeSrc":"20898:4:28","nodeType":"YulIdentifier","src":"20898:4:28"}],"functionName":{"name":"mstore","nativeSrc":"20877:6:28","nodeType":"YulIdentifier","src":"20877:6:28"},"nativeSrc":"20877:26:28","nodeType":"YulFunctionCall","src":"20877:26:28"},"nativeSrc":"20877:26:28","nodeType":"YulExpressionStatement","src":"20877:26:28"},{"nativeSrc":"20916:21:28","nodeType":"YulVariableDeclaration","src":"20916:21:28","value":{"arguments":[{"name":"m","nativeSrc":"20929:1:28","nodeType":"YulIdentifier","src":"20929:1:28"},{"kind":"number","nativeSrc":"20932:4:28","nodeType":"YulLiteral","src":"20932:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"20925:3:28","nodeType":"YulIdentifier","src":"20925:3:28"},"nativeSrc":"20925:12:28","nodeType":"YulFunctionCall","src":"20925:12:28"},"variables":[{"name":"d","nativeSrc":"20920:1:28","nodeType":"YulTypedName","src":"20920:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"20957:1:28","nodeType":"YulIdentifier","src":"20957:1:28"},{"kind":"number","nativeSrc":"20960:4:28","nodeType":"YulLiteral","src":"20960:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"20950:6:28","nodeType":"YulIdentifier","src":"20950:6:28"},"nativeSrc":"20950:15:28","nodeType":"YulFunctionCall","src":"20950:15:28"},"nativeSrc":"20950:15:28","nodeType":"YulExpressionStatement","src":"20950:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21039:1:28","nodeType":"YulIdentifier","src":"21039:1:28"},{"kind":"number","nativeSrc":"21042:4:28","nodeType":"YulLiteral","src":"21042:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"21035:3:28","nodeType":"YulIdentifier","src":"21035:3:28"},"nativeSrc":"21035:12:28","nodeType":"YulFunctionCall","src":"21035:12:28"},{"kind":"number","nativeSrc":"21049:2:28","nodeType":"YulLiteral","src":"21049:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"21028:6:28","nodeType":"YulIdentifier","src":"21028:6:28"},"nativeSrc":"21028:24:28","nodeType":"YulFunctionCall","src":"21028:24:28"},"nativeSrc":"21028:24:28","nodeType":"YulExpressionStatement","src":"21028:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21104:1:28","nodeType":"YulIdentifier","src":"21104:1:28"},{"kind":"number","nativeSrc":"21107:4:28","nodeType":"YulLiteral","src":"21107:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"21100:3:28","nodeType":"YulIdentifier","src":"21100:3:28"},"nativeSrc":"21100:12:28","nodeType":"YulFunctionCall","src":"21100:12:28"},{"name":"r","nativeSrc":"21114:1:28","nodeType":"YulIdentifier","src":"21114:1:28"}],"functionName":{"name":"mstore","nativeSrc":"21093:6:28","nodeType":"YulIdentifier","src":"21093:6:28"},"nativeSrc":"21093:23:28","nodeType":"YulFunctionCall","src":"21093:23:28"},"nativeSrc":"21093:23:28","nodeType":"YulExpressionStatement","src":"21093:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21148:1:28","nodeType":"YulIdentifier","src":"21148:1:28"},{"kind":"number","nativeSrc":"21151:4:28","nodeType":"YulLiteral","src":"21151:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"21144:3:28","nodeType":"YulIdentifier","src":"21144:3:28"},"nativeSrc":"21144:12:28","nodeType":"YulFunctionCall","src":"21144:12:28"},{"arguments":[{"kind":"number","nativeSrc":"21162:1:28","nodeType":"YulLiteral","src":"21162:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"21169:1:28","nodeType":"YulLiteral","src":"21169:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"21172:2:28","nodeType":"YulIdentifier","src":"21172:2:28"}],"functionName":{"name":"shl","nativeSrc":"21165:3:28","nodeType":"YulIdentifier","src":"21165:3:28"},"nativeSrc":"21165:10:28","nodeType":"YulFunctionCall","src":"21165:10:28"}],"functionName":{"name":"shr","nativeSrc":"21158:3:28","nodeType":"YulIdentifier","src":"21158:3:28"},"nativeSrc":"21158:18:28","nodeType":"YulFunctionCall","src":"21158:18:28"}],"functionName":{"name":"mstore","nativeSrc":"21137:6:28","nodeType":"YulIdentifier","src":"21137:6:28"},"nativeSrc":"21137:40:28","nodeType":"YulFunctionCall","src":"21137:40:28"},"nativeSrc":"21137:40:28","nodeType":"YulExpressionStatement","src":"21137:40:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21210:1:28","nodeType":"YulIdentifier","src":"21210:1:28"},{"kind":"number","nativeSrc":"21213:4:28","nodeType":"YulLiteral","src":"21213:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"21206:3:28","nodeType":"YulIdentifier","src":"21206:3:28"},"nativeSrc":"21206:12:28","nodeType":"YulFunctionCall","src":"21206:12:28"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21228:3:28","nodeType":"YulLiteral","src":"21228:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"21233:2:28","nodeType":"YulIdentifier","src":"21233:2:28"}],"functionName":{"name":"shr","nativeSrc":"21224:3:28","nodeType":"YulIdentifier","src":"21224:3:28"},"nativeSrc":"21224:12:28","nodeType":"YulFunctionCall","src":"21224:12:28"},{"kind":"number","nativeSrc":"21238:2:28","nodeType":"YulLiteral","src":"21238:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"21220:3:28","nodeType":"YulIdentifier","src":"21220:3:28"},"nativeSrc":"21220:21:28","nodeType":"YulFunctionCall","src":"21220:21:28"}],"functionName":{"name":"mstore8","nativeSrc":"21198:7:28","nodeType":"YulIdentifier","src":"21198:7:28"},"nativeSrc":"21198:44:28","nodeType":"YulFunctionCall","src":"21198:44:28"},"nativeSrc":"21198:44:28","nodeType":"YulExpressionStatement","src":"21198:44:28"},{"nativeSrc":"21306:718:28","nodeType":"YulAssignment","src":"21306:718:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"21437:1:28","nodeType":"YulIdentifier","src":"21437:1:28"}],"functionName":{"name":"mload","nativeSrc":"21431:5:28","nodeType":"YulIdentifier","src":"21431:5:28"},"nativeSrc":"21431:8:28","nodeType":"YulFunctionCall","src":"21431:8:28"},{"name":"f","nativeSrc":"21441:1:28","nodeType":"YulIdentifier","src":"21441:1:28"}],"functionName":{"name":"eq","nativeSrc":"21428:2:28","nodeType":"YulIdentifier","src":"21428:2:28"},"nativeSrc":"21428:15:28","nodeType":"YulFunctionCall","src":"21428:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"21693:3:28","nodeType":"YulIdentifier","src":"21693:3:28"},"nativeSrc":"21693:5:28","nodeType":"YulFunctionCall","src":"21693:5:28"},{"name":"signer","nativeSrc":"21738:6:28","nodeType":"YulIdentifier","src":"21738:6:28"},{"name":"m","nativeSrc":"21791:1:28","nodeType":"YulIdentifier","src":"21791:1:28"},{"kind":"number","nativeSrc":"21847:4:28","nodeType":"YulLiteral","src":"21847:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"21906:1:28","nodeType":"YulIdentifier","src":"21906:1:28"},{"kind":"number","nativeSrc":"21954:4:28","nodeType":"YulLiteral","src":"21954:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"21661:10:28","nodeType":"YulIdentifier","src":"21661:10:28"},"nativeSrc":"21661:349:28","nodeType":"YulFunctionCall","src":"21661:349:28"}],"functionName":{"name":"and","nativeSrc":"21317:3:28","nodeType":"YulIdentifier","src":"21317:3:28"},"nativeSrc":"21317:707:28","nodeType":"YulFunctionCall","src":"21317:707:28"},"variableNames":[{"name":"isValid","nativeSrc":"21306:7:28","nodeType":"YulIdentifier","src":"21306:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11470,"isOffset":false,"isSlot":false,"src":"20898:4:28","valueSize":1},{"declaration":11477,"isOffset":false,"isSlot":false,"src":"21306:7:28","valueSize":1},{"declaration":11472,"isOffset":false,"isSlot":false,"src":"21114:1:28","valueSize":1},{"declaration":11468,"isOffset":false,"isSlot":false,"src":"21738:6:28","valueSize":1},{"declaration":11474,"isOffset":false,"isSlot":false,"src":"21172:2:28","valueSize":1},{"declaration":11474,"isOffset":false,"isSlot":false,"src":"21233:2:28","valueSize":1}],"id":11479,"nodeType":"InlineAssembly","src":"20695:1339:28"}]},"documentation":{"id":11466,"nodeType":"StructuredDocumentation","src":"20371:112:28","text":"@dev Returns whether the signature (`r`, `vs`) is valid for `hash`\n for an ERC1271 `signer` contract."},"id":11481,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"20497:26:28","nodeType":"FunctionDefinition","parameters":{"id":11475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11468,"mutability":"mutable","name":"signer","nameLocation":"20532:6:28","nodeType":"VariableDeclaration","scope":11481,"src":"20524:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11467,"name":"address","nodeType":"ElementaryTypeName","src":"20524:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11470,"mutability":"mutable","name":"hash","nameLocation":"20548:4:28","nodeType":"VariableDeclaration","scope":11481,"src":"20540:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20540:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11472,"mutability":"mutable","name":"r","nameLocation":"20562:1:28","nodeType":"VariableDeclaration","scope":11481,"src":"20554:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20554:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11474,"mutability":"mutable","name":"vs","nameLocation":"20573:2:28","nodeType":"VariableDeclaration","scope":11481,"src":"20565:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20565:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20523:53:28"},"returnParameters":{"id":11478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11477,"mutability":"mutable","name":"isValid","nameLocation":"20629:7:28","nodeType":"VariableDeclaration","scope":11481,"src":"20624:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11476,"name":"bool","nodeType":"ElementaryTypeName","src":"20624:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20623:14:28"},"scope":11528,"src":"20488:1552:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11498,"nodeType":"Block","src":"22329:1361:28","statements":[{"AST":{"nativeSrc":"22391:1293:28","nodeType":"YulBlock","src":"22391:1293:28","statements":[{"nativeSrc":"22405:20:28","nodeType":"YulVariableDeclaration","src":"22405:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"22420:4:28","nodeType":"YulLiteral","src":"22420:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"22414:5:28","nodeType":"YulIdentifier","src":"22414:5:28"},"nativeSrc":"22414:11:28","nodeType":"YulFunctionCall","src":"22414:11:28"},"variables":[{"name":"m","nativeSrc":"22409:1:28","nodeType":"YulTypedName","src":"22409:1:28","type":""}]},{"nativeSrc":"22438:29:28","nodeType":"YulVariableDeclaration","src":"22438:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"22451:3:28","nodeType":"YulLiteral","src":"22451:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"22456:10:28","nodeType":"YulLiteral","src":"22456:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"22447:3:28","nodeType":"YulIdentifier","src":"22447:3:28"},"nativeSrc":"22447:20:28","nodeType":"YulFunctionCall","src":"22447:20:28"},"variables":[{"name":"f","nativeSrc":"22442:1:28","nodeType":"YulTypedName","src":"22442:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"22487:1:28","nodeType":"YulIdentifier","src":"22487:1:28"},{"name":"f","nativeSrc":"22490:1:28","nodeType":"YulIdentifier","src":"22490:1:28"}],"functionName":{"name":"mstore","nativeSrc":"22480:6:28","nodeType":"YulIdentifier","src":"22480:6:28"},"nativeSrc":"22480:12:28","nodeType":"YulFunctionCall","src":"22480:12:28"},"nativeSrc":"22480:12:28","nodeType":"YulExpressionStatement","src":"22480:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22575:1:28","nodeType":"YulIdentifier","src":"22575:1:28"},{"kind":"number","nativeSrc":"22578:4:28","nodeType":"YulLiteral","src":"22578:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"22571:3:28","nodeType":"YulIdentifier","src":"22571:3:28"},"nativeSrc":"22571:12:28","nodeType":"YulFunctionCall","src":"22571:12:28"},{"name":"hash","nativeSrc":"22585:4:28","nodeType":"YulIdentifier","src":"22585:4:28"}],"functionName":{"name":"mstore","nativeSrc":"22564:6:28","nodeType":"YulIdentifier","src":"22564:6:28"},"nativeSrc":"22564:26:28","nodeType":"YulFunctionCall","src":"22564:26:28"},"nativeSrc":"22564:26:28","nodeType":"YulExpressionStatement","src":"22564:26:28"},{"nativeSrc":"22603:21:28","nodeType":"YulVariableDeclaration","src":"22603:21:28","value":{"arguments":[{"name":"m","nativeSrc":"22616:1:28","nodeType":"YulIdentifier","src":"22616:1:28"},{"kind":"number","nativeSrc":"22619:4:28","nodeType":"YulLiteral","src":"22619:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"22612:3:28","nodeType":"YulIdentifier","src":"22612:3:28"},"nativeSrc":"22612:12:28","nodeType":"YulFunctionCall","src":"22612:12:28"},"variables":[{"name":"d","nativeSrc":"22607:1:28","nodeType":"YulTypedName","src":"22607:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"22644:1:28","nodeType":"YulIdentifier","src":"22644:1:28"},{"kind":"number","nativeSrc":"22647:4:28","nodeType":"YulLiteral","src":"22647:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"22637:6:28","nodeType":"YulIdentifier","src":"22637:6:28"},"nativeSrc":"22637:15:28","nodeType":"YulFunctionCall","src":"22637:15:28"},"nativeSrc":"22637:15:28","nodeType":"YulExpressionStatement","src":"22637:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22726:1:28","nodeType":"YulIdentifier","src":"22726:1:28"},{"kind":"number","nativeSrc":"22729:4:28","nodeType":"YulLiteral","src":"22729:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"22722:3:28","nodeType":"YulIdentifier","src":"22722:3:28"},"nativeSrc":"22722:12:28","nodeType":"YulFunctionCall","src":"22722:12:28"},{"kind":"number","nativeSrc":"22736:2:28","nodeType":"YulLiteral","src":"22736:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"22715:6:28","nodeType":"YulIdentifier","src":"22715:6:28"},"nativeSrc":"22715:24:28","nodeType":"YulFunctionCall","src":"22715:24:28"},"nativeSrc":"22715:24:28","nodeType":"YulExpressionStatement","src":"22715:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22791:1:28","nodeType":"YulIdentifier","src":"22791:1:28"},{"kind":"number","nativeSrc":"22794:4:28","nodeType":"YulLiteral","src":"22794:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"22787:3:28","nodeType":"YulIdentifier","src":"22787:3:28"},"nativeSrc":"22787:12:28","nodeType":"YulFunctionCall","src":"22787:12:28"},{"name":"r","nativeSrc":"22801:1:28","nodeType":"YulIdentifier","src":"22801:1:28"}],"functionName":{"name":"mstore","nativeSrc":"22780:6:28","nodeType":"YulIdentifier","src":"22780:6:28"},"nativeSrc":"22780:23:28","nodeType":"YulFunctionCall","src":"22780:23:28"},"nativeSrc":"22780:23:28","nodeType":"YulExpressionStatement","src":"22780:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22835:1:28","nodeType":"YulIdentifier","src":"22835:1:28"},{"kind":"number","nativeSrc":"22838:4:28","nodeType":"YulLiteral","src":"22838:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"22831:3:28","nodeType":"YulIdentifier","src":"22831:3:28"},"nativeSrc":"22831:12:28","nodeType":"YulFunctionCall","src":"22831:12:28"},{"name":"s","nativeSrc":"22845:1:28","nodeType":"YulIdentifier","src":"22845:1:28"}],"functionName":{"name":"mstore","nativeSrc":"22824:6:28","nodeType":"YulIdentifier","src":"22824:6:28"},"nativeSrc":"22824:23:28","nodeType":"YulFunctionCall","src":"22824:23:28"},"nativeSrc":"22824:23:28","nodeType":"YulExpressionStatement","src":"22824:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22880:1:28","nodeType":"YulIdentifier","src":"22880:1:28"},{"kind":"number","nativeSrc":"22883:4:28","nodeType":"YulLiteral","src":"22883:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"22876:3:28","nodeType":"YulIdentifier","src":"22876:3:28"},"nativeSrc":"22876:12:28","nodeType":"YulFunctionCall","src":"22876:12:28"},{"name":"v","nativeSrc":"22890:1:28","nodeType":"YulIdentifier","src":"22890:1:28"}],"functionName":{"name":"mstore8","nativeSrc":"22868:7:28","nodeType":"YulIdentifier","src":"22868:7:28"},"nativeSrc":"22868:24:28","nodeType":"YulFunctionCall","src":"22868:24:28"},"nativeSrc":"22868:24:28","nodeType":"YulExpressionStatement","src":"22868:24:28"},{"nativeSrc":"22956:718:28","nodeType":"YulAssignment","src":"22956:718:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"23087:1:28","nodeType":"YulIdentifier","src":"23087:1:28"}],"functionName":{"name":"mload","nativeSrc":"23081:5:28","nodeType":"YulIdentifier","src":"23081:5:28"},"nativeSrc":"23081:8:28","nodeType":"YulFunctionCall","src":"23081:8:28"},{"name":"f","nativeSrc":"23091:1:28","nodeType":"YulIdentifier","src":"23091:1:28"}],"functionName":{"name":"eq","nativeSrc":"23078:2:28","nodeType":"YulIdentifier","src":"23078:2:28"},"nativeSrc":"23078:15:28","nodeType":"YulFunctionCall","src":"23078:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23343:3:28","nodeType":"YulIdentifier","src":"23343:3:28"},"nativeSrc":"23343:5:28","nodeType":"YulFunctionCall","src":"23343:5:28"},{"name":"signer","nativeSrc":"23388:6:28","nodeType":"YulIdentifier","src":"23388:6:28"},{"name":"m","nativeSrc":"23441:1:28","nodeType":"YulIdentifier","src":"23441:1:28"},{"kind":"number","nativeSrc":"23497:4:28","nodeType":"YulLiteral","src":"23497:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"23556:1:28","nodeType":"YulIdentifier","src":"23556:1:28"},{"kind":"number","nativeSrc":"23604:4:28","nodeType":"YulLiteral","src":"23604:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"23311:10:28","nodeType":"YulIdentifier","src":"23311:10:28"},"nativeSrc":"23311:349:28","nodeType":"YulFunctionCall","src":"23311:349:28"}],"functionName":{"name":"and","nativeSrc":"22967:3:28","nodeType":"YulIdentifier","src":"22967:3:28"},"nativeSrc":"22967:707:28","nodeType":"YulFunctionCall","src":"22967:707:28"},"variableNames":[{"name":"isValid","nativeSrc":"22956:7:28","nodeType":"YulIdentifier","src":"22956:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11486,"isOffset":false,"isSlot":false,"src":"22585:4:28","valueSize":1},{"declaration":11495,"isOffset":false,"isSlot":false,"src":"22956:7:28","valueSize":1},{"declaration":11490,"isOffset":false,"isSlot":false,"src":"22801:1:28","valueSize":1},{"declaration":11492,"isOffset":false,"isSlot":false,"src":"22845:1:28","valueSize":1},{"declaration":11484,"isOffset":false,"isSlot":false,"src":"23388:6:28","valueSize":1},{"declaration":11488,"isOffset":false,"isSlot":false,"src":"22890:1:28","valueSize":1}],"id":11497,"nodeType":"InlineAssembly","src":"22382:1302:28"}]},"documentation":{"id":11482,"nodeType":"StructuredDocumentation","src":"22046:116:28","text":"@dev Returns whether the signature (`v`, `r`, `s`) is valid for `hash`\n for an ERC1271 `signer` contract."},"id":11499,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"22176:26:28","nodeType":"FunctionDefinition","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11484,"mutability":"mutable","name":"signer","nameLocation":"22211:6:28","nodeType":"VariableDeclaration","scope":11499,"src":"22203:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11483,"name":"address","nodeType":"ElementaryTypeName","src":"22203:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11486,"mutability":"mutable","name":"hash","nameLocation":"22227:4:28","nodeType":"VariableDeclaration","scope":11499,"src":"22219:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22219:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11488,"mutability":"mutable","name":"v","nameLocation":"22239:1:28","nodeType":"VariableDeclaration","scope":11499,"src":"22233:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11487,"name":"uint8","nodeType":"ElementaryTypeName","src":"22233:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11490,"mutability":"mutable","name":"r","nameLocation":"22250:1:28","nodeType":"VariableDeclaration","scope":11499,"src":"22242:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22242:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11492,"mutability":"mutable","name":"s","nameLocation":"22261:1:28","nodeType":"VariableDeclaration","scope":11499,"src":"22253:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22253:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22202:61:28"},"returnParameters":{"id":11496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11495,"mutability":"mutable","name":"isValid","nameLocation":"22316:7:28","nodeType":"VariableDeclaration","scope":11499,"src":"22311:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11494,"name":"bool","nodeType":"ElementaryTypeName","src":"22311:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22310:14:28"},"scope":11528,"src":"22167:1523:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11508,"nodeType":"Block","src":"24311:324:28","statements":[{"AST":{"nativeSrc":"24373:256:28","nodeType":"YulBlock","src":"24373:256:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24394:4:28","nodeType":"YulLiteral","src":"24394:4:28","type":"","value":"0x20"},{"name":"hash","nativeSrc":"24400:4:28","nodeType":"YulIdentifier","src":"24400:4:28"}],"functionName":{"name":"mstore","nativeSrc":"24387:6:28","nodeType":"YulIdentifier","src":"24387:6:28"},"nativeSrc":"24387:18:28","nodeType":"YulFunctionCall","src":"24387:18:28"},"nativeSrc":"24387:18:28","nodeType":"YulExpressionStatement","src":"24387:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24468:4:28","nodeType":"YulLiteral","src":"24468:4:28","type":"","value":"0x00"},{"hexValue":"0000000019457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nativeSrc":"24474:50:28","nodeType":"YulLiteral","src":"24474:50:28","type":"","value":"\u0000\u0000\u0000\u0000\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nativeSrc":"24461:6:28","nodeType":"YulIdentifier","src":"24461:6:28"},"nativeSrc":"24461:64:28","nodeType":"YulFunctionCall","src":"24461:64:28"},"nativeSrc":"24461:64:28","nodeType":"YulExpressionStatement","src":"24461:64:28"},{"nativeSrc":"24551:31:28","nodeType":"YulAssignment","src":"24551:31:28","value":{"arguments":[{"kind":"number","nativeSrc":"24571:4:28","nodeType":"YulLiteral","src":"24571:4:28","type":"","value":"0x04"},{"kind":"number","nativeSrc":"24577:4:28","nodeType":"YulLiteral","src":"24577:4:28","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nativeSrc":"24561:9:28","nodeType":"YulIdentifier","src":"24561:9:28"},"nativeSrc":"24561:21:28","nodeType":"YulFunctionCall","src":"24561:21:28"},"variableNames":[{"name":"result","nativeSrc":"24551:6:28","nodeType":"YulIdentifier","src":"24551:6:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11502,"isOffset":false,"isSlot":false,"src":"24400:4:28","valueSize":1},{"declaration":11505,"isOffset":false,"isSlot":false,"src":"24551:6:28","valueSize":1}],"id":11507,"nodeType":"InlineAssembly","src":"24364:265:28"}]},"documentation":{"id":11500,"nodeType":"StructuredDocumentation","src":"23979:242:28","text":"@dev Returns an Ethereum Signed Message, created from a `hash`.\n This produces a hash corresponding to the one signed with the\n [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n JSON-RPC method as part of EIP-191."},"id":11509,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"24235:22:28","nodeType":"FunctionDefinition","parameters":{"id":11503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11502,"mutability":"mutable","name":"hash","nameLocation":"24266:4:28","nodeType":"VariableDeclaration","scope":11509,"src":"24258:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24258:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24257:14:28"},"returnParameters":{"id":11506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11505,"mutability":"mutable","name":"result","nameLocation":"24303:6:28","nodeType":"VariableDeclaration","scope":11509,"src":"24295:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24295:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24294:16:28"},"scope":11528,"src":"24226:409:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11518,"nodeType":"Block","src":"25028:1019:28","statements":[{"AST":{"nativeSrc":"25090:951:28","nodeType":"YulBlock","src":"25090:951:28","statements":[{"nativeSrc":"25104:23:28","nodeType":"YulVariableDeclaration","src":"25104:23:28","value":{"arguments":[{"name":"s","nativeSrc":"25125:1:28","nodeType":"YulIdentifier","src":"25125:1:28"}],"functionName":{"name":"mload","nativeSrc":"25119:5:28","nodeType":"YulIdentifier","src":"25119:5:28"},"nativeSrc":"25119:8:28","nodeType":"YulFunctionCall","src":"25119:8:28"},"variables":[{"name":"sLength","nativeSrc":"25108:7:28","nodeType":"YulTypedName","src":"25108:7:28","type":""}]},{"nativeSrc":"25140:13:28","nodeType":"YulVariableDeclaration","src":"25140:13:28","value":{"kind":"number","nativeSrc":"25149:4:28","nodeType":"YulLiteral","src":"25149:4:28","type":"","value":"0x20"},"variables":[{"name":"o","nativeSrc":"25144:1:28","nodeType":"YulTypedName","src":"25144:1:28","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"25173:1:28","nodeType":"YulIdentifier","src":"25173:1:28"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","kind":"string","nativeSrc":"25176:32:28","nodeType":"YulLiteral","src":"25176:32:28","type":"","value":"\u0019Ethereum Signed Message:\n"}],"functionName":{"name":"mstore","nativeSrc":"25166:6:28","nodeType":"YulIdentifier","src":"25166:6:28"},"nativeSrc":"25166:43:28","nodeType":"YulFunctionCall","src":"25166:43:28"},"nativeSrc":"25166:43:28","nodeType":"YulExpressionStatement","src":"25166:43:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25261:4:28","nodeType":"YulLiteral","src":"25261:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25267:4:28","nodeType":"YulLiteral","src":"25267:4:28","type":"","value":"0x00"}],"functionName":{"name":"mstore","nativeSrc":"25254:6:28","nodeType":"YulIdentifier","src":"25254:6:28"},"nativeSrc":"25254:18:28","nodeType":"YulFunctionCall","src":"25254:18:28"},"nativeSrc":"25254:18:28","nodeType":"YulExpressionStatement","src":"25254:18:28"},{"body":{"nativeSrc":"25409:177:28","nodeType":"YulBlock","src":"25409:177:28","statements":[{"nativeSrc":"25427:14:28","nodeType":"YulAssignment","src":"25427:14:28","value":{"arguments":[{"name":"o","nativeSrc":"25436:1:28","nodeType":"YulIdentifier","src":"25436:1:28"},{"kind":"number","nativeSrc":"25439:1:28","nodeType":"YulLiteral","src":"25439:1:28","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"25432:3:28","nodeType":"YulIdentifier","src":"25432:3:28"},"nativeSrc":"25432:9:28","nodeType":"YulFunctionCall","src":"25432:9:28"},"variableNames":[{"name":"o","nativeSrc":"25427:1:28","nodeType":"YulIdentifier","src":"25427:1:28"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"25466:1:28","nodeType":"YulIdentifier","src":"25466:1:28"},{"arguments":[{"kind":"number","nativeSrc":"25473:2:28","nodeType":"YulLiteral","src":"25473:2:28","type":"","value":"48"},{"arguments":[{"name":"temp","nativeSrc":"25481:4:28","nodeType":"YulIdentifier","src":"25481:4:28"},{"kind":"number","nativeSrc":"25487:2:28","nodeType":"YulLiteral","src":"25487:2:28","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"25477:3:28","nodeType":"YulIdentifier","src":"25477:3:28"},"nativeSrc":"25477:13:28","nodeType":"YulFunctionCall","src":"25477:13:28"}],"functionName":{"name":"add","nativeSrc":"25469:3:28","nodeType":"YulIdentifier","src":"25469:3:28"},"nativeSrc":"25469:22:28","nodeType":"YulFunctionCall","src":"25469:22:28"}],"functionName":{"name":"mstore8","nativeSrc":"25458:7:28","nodeType":"YulIdentifier","src":"25458:7:28"},"nativeSrc":"25458:34:28","nodeType":"YulFunctionCall","src":"25458:34:28"},"nativeSrc":"25458:34:28","nodeType":"YulExpressionStatement","src":"25458:34:28"},{"nativeSrc":"25509:21:28","nodeType":"YulAssignment","src":"25509:21:28","value":{"arguments":[{"name":"temp","nativeSrc":"25521:4:28","nodeType":"YulIdentifier","src":"25521:4:28"},{"kind":"number","nativeSrc":"25527:2:28","nodeType":"YulLiteral","src":"25527:2:28","type":"","value":"10"}],"functionName":{"name":"div","nativeSrc":"25517:3:28","nodeType":"YulIdentifier","src":"25517:3:28"},"nativeSrc":"25517:13:28","nodeType":"YulFunctionCall","src":"25517:13:28"},"variableNames":[{"name":"temp","nativeSrc":"25509:4:28","nodeType":"YulIdentifier","src":"25509:4:28"}]},{"body":{"nativeSrc":"25563:9:28","nodeType":"YulBlock","src":"25563:9:28","statements":[{"nativeSrc":"25565:5:28","nodeType":"YulBreak","src":"25565:5:28"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"25557:4:28","nodeType":"YulIdentifier","src":"25557:4:28"}],"functionName":{"name":"iszero","nativeSrc":"25550:6:28","nodeType":"YulIdentifier","src":"25550:6:28"},"nativeSrc":"25550:12:28","nodeType":"YulFunctionCall","src":"25550:12:28"},"nativeSrc":"25547:25:28","nodeType":"YulIf","src":"25547:25:28"}]},"condition":{"kind":"number","nativeSrc":"25404:1:28","nodeType":"YulLiteral","src":"25404:1:28","type":"","value":"1"},"nativeSrc":"25376:210:28","nodeType":"YulForLoop","post":{"nativeSrc":"25406:2:28","nodeType":"YulBlock","src":"25406:2:28","statements":[]},"pre":{"nativeSrc":"25380:23:28","nodeType":"YulBlock","src":"25380:23:28","statements":[{"nativeSrc":"25382:19:28","nodeType":"YulVariableDeclaration","src":"25382:19:28","value":{"name":"sLength","nativeSrc":"25394:7:28","nodeType":"YulIdentifier","src":"25394:7:28"},"variables":[{"name":"temp","nativeSrc":"25386:4:28","nodeType":"YulTypedName","src":"25386:4:28","type":""}]}]},"src":"25376:210:28"},{"nativeSrc":"25599:21:28","nodeType":"YulVariableDeclaration","src":"25599:21:28","value":{"arguments":[{"kind":"number","nativeSrc":"25612:4:28","nodeType":"YulLiteral","src":"25612:4:28","type":"","value":"0x3a"},{"name":"o","nativeSrc":"25618:1:28","nodeType":"YulIdentifier","src":"25618:1:28"}],"functionName":{"name":"sub","nativeSrc":"25608:3:28","nodeType":"YulIdentifier","src":"25608:3:28"},"nativeSrc":"25608:12:28","nodeType":"YulFunctionCall","src":"25608:12:28"},"variables":[{"name":"n","nativeSrc":"25603:1:28","nodeType":"YulTypedName","src":"25603:1:28","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25776:14:28","nodeType":"YulIdentifier","src":"25776:14:28"},"nativeSrc":"25776:16:28","nodeType":"YulFunctionCall","src":"25776:16:28"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25794:14:28","nodeType":"YulIdentifier","src":"25794:14:28"},"nativeSrc":"25794:16:28","nodeType":"YulFunctionCall","src":"25794:16:28"},{"arguments":[{"name":"n","nativeSrc":"25815:1:28","nodeType":"YulIdentifier","src":"25815:1:28"},{"kind":"number","nativeSrc":"25818:4:28","nodeType":"YulLiteral","src":"25818:4:28","type":"","value":"0x20"}],"functionName":{"name":"gt","nativeSrc":"25812:2:28","nodeType":"YulIdentifier","src":"25812:2:28"},"nativeSrc":"25812:11:28","nodeType":"YulFunctionCall","src":"25812:11:28"}],"functionName":{"name":"returndatacopy","nativeSrc":"25761:14:28","nodeType":"YulIdentifier","src":"25761:14:28"},"nativeSrc":"25761:63:28","nodeType":"YulFunctionCall","src":"25761:63:28"},"nativeSrc":"25761:63:28","nodeType":"YulExpressionStatement","src":"25761:63:28"},{"expression":{"arguments":[{"name":"s","nativeSrc":"25844:1:28","nodeType":"YulIdentifier","src":"25844:1:28"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25856:4:28","nodeType":"YulLiteral","src":"25856:4:28","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"25850:5:28","nodeType":"YulIdentifier","src":"25850:5:28"},"nativeSrc":"25850:11:28","nodeType":"YulFunctionCall","src":"25850:11:28"},{"arguments":[{"name":"n","nativeSrc":"25869:1:28","nodeType":"YulIdentifier","src":"25869:1:28"}],"functionName":{"name":"mload","nativeSrc":"25863:5:28","nodeType":"YulIdentifier","src":"25863:5:28"},"nativeSrc":"25863:8:28","nodeType":"YulFunctionCall","src":"25863:8:28"}],"functionName":{"name":"or","nativeSrc":"25847:2:28","nodeType":"YulIdentifier","src":"25847:2:28"},"nativeSrc":"25847:25:28","nodeType":"YulFunctionCall","src":"25847:25:28"}],"functionName":{"name":"mstore","nativeSrc":"25837:6:28","nodeType":"YulIdentifier","src":"25837:6:28"},"nativeSrc":"25837:36:28","nodeType":"YulFunctionCall","src":"25837:36:28"},"nativeSrc":"25837:36:28","nodeType":"YulExpressionStatement","src":"25837:36:28"},{"nativeSrc":"25919:58:28","nodeType":"YulAssignment","src":"25919:58:28","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"25943:1:28","nodeType":"YulIdentifier","src":"25943:1:28"},{"arguments":[{"kind":"number","nativeSrc":"25950:4:28","nodeType":"YulLiteral","src":"25950:4:28","type":"","value":"0x20"},{"name":"n","nativeSrc":"25956:1:28","nodeType":"YulIdentifier","src":"25956:1:28"}],"functionName":{"name":"sub","nativeSrc":"25946:3:28","nodeType":"YulIdentifier","src":"25946:3:28"},"nativeSrc":"25946:12:28","nodeType":"YulFunctionCall","src":"25946:12:28"}],"functionName":{"name":"add","nativeSrc":"25939:3:28","nodeType":"YulIdentifier","src":"25939:3:28"},"nativeSrc":"25939:20:28","nodeType":"YulFunctionCall","src":"25939:20:28"},{"arguments":[{"name":"n","nativeSrc":"25965:1:28","nodeType":"YulIdentifier","src":"25965:1:28"},{"name":"sLength","nativeSrc":"25968:7:28","nodeType":"YulIdentifier","src":"25968:7:28"}],"functionName":{"name":"add","nativeSrc":"25961:3:28","nodeType":"YulIdentifier","src":"25961:3:28"},"nativeSrc":"25961:15:28","nodeType":"YulFunctionCall","src":"25961:15:28"}],"functionName":{"name":"keccak256","nativeSrc":"25929:9:28","nodeType":"YulIdentifier","src":"25929:9:28"},"nativeSrc":"25929:48:28","nodeType":"YulFunctionCall","src":"25929:48:28"},"variableNames":[{"name":"result","nativeSrc":"25919:6:28","nodeType":"YulIdentifier","src":"25919:6:28"}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"25997:1:28","nodeType":"YulIdentifier","src":"25997:1:28"},{"name":"sLength","nativeSrc":"26000:7:28","nodeType":"YulIdentifier","src":"26000:7:28"}],"functionName":{"name":"mstore","nativeSrc":"25990:6:28","nodeType":"YulIdentifier","src":"25990:6:28"},"nativeSrc":"25990:18:28","nodeType":"YulFunctionCall","src":"25990:18:28"},"nativeSrc":"25990:18:28","nodeType":"YulExpressionStatement","src":"25990:18:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11515,"isOffset":false,"isSlot":false,"src":"25919:6:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25125:1:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25844:1:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25943:1:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25997:1:28","valueSize":1}],"id":11517,"nodeType":"InlineAssembly","src":"25081:960:28"}]},"documentation":{"id":11510,"nodeType":"StructuredDocumentation","src":"24641:295:28","text":"@dev Returns an Ethereum Signed Message, created from `s`.\n This produces a hash corresponding to the one signed with the\n [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n JSON-RPC method as part of EIP-191.\n Note: Supports lengths of `s` up to 999999 bytes."},"id":11519,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"24950:22:28","nodeType":"FunctionDefinition","parameters":{"id":11513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11512,"mutability":"mutable","name":"s","nameLocation":"24986:1:28","nodeType":"VariableDeclaration","scope":11519,"src":"24973:14:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11511,"name":"bytes","nodeType":"ElementaryTypeName","src":"24973:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"24972:16:28"},"returnParameters":{"id":11516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11515,"mutability":"mutable","name":"result","nameLocation":"25020:6:28","nodeType":"VariableDeclaration","scope":11519,"src":"25012:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25012:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25011:16:28"},"scope":11528,"src":"24941:1106:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11526,"nodeType":"Block","src":"26457:113:28","statements":[{"AST":{"nativeSrc":"26519:45:28","nodeType":"YulBlock","src":"26519:45:28","statements":[{"nativeSrc":"26533:21:28","nodeType":"YulAssignment","src":"26533:21:28","value":{"kind":"number","nativeSrc":"26553:1:28","nodeType":"YulLiteral","src":"26553:1:28","type":"","value":"0"},"variableNames":[{"name":"signature.length","nativeSrc":"26533:16:28","nodeType":"YulIdentifier","src":"26533:16:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11523,"isOffset":false,"isSlot":false,"src":"26533:16:28","suffix":"length","valueSize":1}],"id":11525,"nodeType":"InlineAssembly","src":"26510:54:28"}]},"documentation":{"id":11520,"nodeType":"StructuredDocumentation","src":"26336:41:28","text":"@dev Returns an empty calldata bytes."},"id":11527,"implemented":true,"kind":"function","modifiers":[],"name":"emptySignature","nameLocation":"26391:14:28","nodeType":"FunctionDefinition","parameters":{"id":11521,"nodeType":"ParameterList","parameters":[],"src":"26405:2:28"},"returnParameters":{"id":11524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11523,"mutability":"mutable","name":"signature","nameLocation":"26446:9:28","nodeType":"VariableDeclaration","scope":11527,"src":"26431:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11522,"name":"bytes","nodeType":"ElementaryTypeName","src":"26431:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26430:26:28"},"scope":11528,"src":"26382:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":11529,"src":"1438:25134:28","usedErrors":[],"usedEvents":[]}],"src":"32:26541:28"},"id":28},"contracts/BoostCore.sol":{"ast":{"absolutePath":"contracts/BoostCore.sol","exportedSymbols":{"Action":[12758],"AllowList":[13154],"BoostCore":[12265],"BoostError":[17566],"BoostLib":[17652],"BoostRegistry":[12680],"Budget":[13669],"Cloneable":[17720],"Incentive":[17260],"LibClone":[10092],"LibZip":[11014],"Ownable":[6423],"ReentrancyGuard":[11038],"SafeTransferLib":[11372],"Validator":[18282]},"id":12266,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":11530,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:29"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":11532,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":6424,"src":"62:49:29","symbolAliases":[{"foreign":{"id":11531,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":11534,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":10093,"src":"112:52:29","symbolAliases":[{"foreign":{"id":11533,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"120:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibZip.sol","file":"@solady/utils/LibZip.sol","id":11536,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":11015,"src":"165:48:29","symbolAliases":[{"foreign":{"id":11535,"name":"LibZip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"173:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":11538,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":11039,"src":"214:66:29","symbolAliases":[{"foreign":{"id":11537,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"222:15:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":11540,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":11373,"src":"281:66:29","symbolAliases":[{"foreign":{"id":11539,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"289:15:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":11542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17567,"src":"349:59:29","symbolAliases":[{"foreign":{"id":11541,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"357:10:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostLib.sol","file":"contracts/shared/BoostLib.sol","id":11544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17653,"src":"409:55:29","symbolAliases":[{"foreign":{"id":11543,"name":"BoostLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"417:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/BoostRegistry.sol","file":"contracts/BoostRegistry.sol","id":11546,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":12681,"src":"465:58:29","symbolAliases":[{"foreign":{"id":11545,"name":"BoostRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12680,"src":"473:13:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":11548,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17721,"src":"524:57:29","symbolAliases":[{"foreign":{"id":11547,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"532:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":11550,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":12759,"src":"583:52:29","symbolAliases":[{"foreign":{"id":11549,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"591:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":11552,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":13155,"src":"636:61:29","symbolAliases":[{"foreign":{"id":11551,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"644:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":11554,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":13670,"src":"698:52:29","symbolAliases":[{"foreign":{"id":11553,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"706:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":11556,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17261,"src":"751:61:29","symbolAliases":[{"foreign":{"id":11555,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"759:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":11558,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":18283,"src":"813:61:29","symbolAliases":[{"foreign":{"id":11557,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"821:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11560,"name":"Ownable","nameLocations":["1115:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"1115:7:29"},"id":11561,"nodeType":"InheritanceSpecifier","src":"1115:7:29"},{"baseName":{"id":11562,"name":"ReentrancyGuard","nameLocations":["1124:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"1124:15:29"},"id":11563,"nodeType":"InheritanceSpecifier","src":"1124:15:29"}],"canonicalName":"BoostCore","contractDependencies":[],"contractKind":"contract","documentation":{"id":11559,"nodeType":"StructuredDocumentation","src":"876:217:29","text":"@title Boost Core\n @notice The core contract for the Boost protocol\n @dev This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA"},"fullyImplemented":true,"id":12265,"linearizedBaseContracts":[12265,11038,6423],"name":"BoostCore","nameLocation":"1102:9:29","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11566,"libraryName":{"id":11564,"name":"LibClone","nameLocations":["1152:8:29"],"nodeType":"IdentifierPath","referencedDeclaration":10092,"src":"1152:8:29"},"nodeType":"UsingForDirective","src":"1146:27:29","typeName":{"id":11565,"name":"address","nodeType":"ElementaryTypeName","src":"1165:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":11569,"libraryName":{"id":11567,"name":"LibZip","nameLocations":["1184:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":11014,"src":"1184:6:29"},"nodeType":"UsingForDirective","src":"1178:23:29","typeName":{"id":11568,"name":"bytes","nodeType":"ElementaryTypeName","src":"1195:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":11572,"libraryName":{"id":11570,"name":"SafeTransferLib","nameLocations":["1212:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"1212:15:29"},"nodeType":"UsingForDirective","src":"1206:34:29","typeName":{"id":11571,"name":"address","nodeType":"ElementaryTypeName","src":"1232:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"BoostCore.InitPayload","id":11597,"members":[{"constant":false,"id":11575,"mutability":"mutable","name":"budget","nameLocation":"1282:6:29","nodeType":"VariableDeclaration","scope":11597,"src":"1275:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":11574,"nodeType":"UserDefinedTypeName","pathNode":{"id":11573,"name":"Budget","nameLocations":["1275:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"1275:6:29"},"referencedDeclaration":13669,"src":"1275:6:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"},{"constant":false,"id":11578,"mutability":"mutable","name":"action","nameLocation":"1314:6:29","nodeType":"VariableDeclaration","scope":11597,"src":"1298:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11577,"nodeType":"UserDefinedTypeName","pathNode":{"id":11576,"name":"BoostLib.Target","nameLocations":["1298:8:29","1307:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1298:15:29"},"referencedDeclaration":17624,"src":"1298:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11581,"mutability":"mutable","name":"validator","nameLocation":"1346:9:29","nodeType":"VariableDeclaration","scope":11597,"src":"1330:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11580,"nodeType":"UserDefinedTypeName","pathNode":{"id":11579,"name":"BoostLib.Target","nameLocations":["1330:8:29","1339:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1330:15:29"},"referencedDeclaration":17624,"src":"1330:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11584,"mutability":"mutable","name":"allowList","nameLocation":"1381:9:29","nodeType":"VariableDeclaration","scope":11597,"src":"1365:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11583,"nodeType":"UserDefinedTypeName","pathNode":{"id":11582,"name":"BoostLib.Target","nameLocations":["1365:8:29","1374:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1365:15:29"},"referencedDeclaration":17624,"src":"1365:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11588,"mutability":"mutable","name":"incentives","nameLocation":"1418:10:29","nodeType":"VariableDeclaration","scope":11597,"src":"1400:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"},"typeName":{"baseType":{"id":11586,"nodeType":"UserDefinedTypeName","pathNode":{"id":11585,"name":"BoostLib.Target","nameLocations":["1400:8:29","1409:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1400:15:29"},"referencedDeclaration":17624,"src":"1400:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"id":11587,"nodeType":"ArrayTypeName","src":"1400:17:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"}},"visibility":"internal"},{"constant":false,"id":11590,"mutability":"mutable","name":"protocolFee","nameLocation":"1445:11:29","nodeType":"VariableDeclaration","scope":11597,"src":"1438:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11589,"name":"uint64","nodeType":"ElementaryTypeName","src":"1438:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11592,"mutability":"mutable","name":"referralFee","nameLocation":"1473:11:29","nodeType":"VariableDeclaration","scope":11597,"src":"1466:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11591,"name":"uint64","nodeType":"ElementaryTypeName","src":"1466:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11594,"mutability":"mutable","name":"maxParticipants","nameLocation":"1502:15:29","nodeType":"VariableDeclaration","scope":11597,"src":"1494:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11596,"mutability":"mutable","name":"owner","nameLocation":"1535:5:29","nodeType":"VariableDeclaration","scope":11597,"src":"1527:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11595,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1253:11:29","nodeType":"StructDefinition","scope":12265,"src":"1246:301:29","visibility":"public"},{"constant":false,"documentation":{"id":11598,"nodeType":"StructuredDocumentation","src":"1553:30:29","text":"@notice The list of boosts"},"id":11602,"mutability":"mutable","name":"_boosts","nameLocation":"1613:7:29","nodeType":"VariableDeclaration","scope":12265,"src":"1588:32:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost[]"},"typeName":{"baseType":{"id":11600,"nodeType":"UserDefinedTypeName","pathNode":{"id":11599,"name":"BoostLib.Boost","nameLocations":["1588:8:29","1597:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"1588:14:29"},"referencedDeclaration":17616,"src":"1588:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"id":11601,"nodeType":"ArrayTypeName","src":"1588:16:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Boost[]"}},"visibility":"private"},{"constant":false,"documentation":{"id":11603,"nodeType":"StructuredDocumentation","src":"1627:38:29","text":"@notice The BoostRegistry contract"},"functionSelector":"7b103999","id":11606,"mutability":"mutable","name":"registry","nameLocation":"1691:8:29","nodeType":"VariableDeclaration","scope":12265,"src":"1670:29:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"},"typeName":{"id":11605,"nodeType":"UserDefinedTypeName","pathNode":{"id":11604,"name":"BoostRegistry","nameLocations":["1670:13:29"],"nodeType":"IdentifierPath","referencedDeclaration":12680,"src":"1670:13:29"},"referencedDeclaration":12680,"src":"1670:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"visibility":"public"},{"constant":false,"documentation":{"id":11607,"nodeType":"StructuredDocumentation","src":"1706:37:29","text":"@notice The protocol fee receiver"},"functionSelector":"39a51be5","id":11609,"mutability":"mutable","name":"protocolFeeReceiver","nameLocation":"1763:19:29","nodeType":"VariableDeclaration","scope":12265,"src":"1748:34:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11608,"name":"address","nodeType":"ElementaryTypeName","src":"1748:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":11610,"nodeType":"StructuredDocumentation","src":"1789:34:29","text":"@notice The claim fee (in wei)"},"functionSelector":"99d32fc4","id":11613,"mutability":"mutable","name":"claimFee","nameLocation":"1843:8:29","nodeType":"VariableDeclaration","scope":12265,"src":"1828:40:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1828:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303030303735","id":11612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:14:29","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_75000000000000_by_1","typeString":"int_const 75000000000000"},"value":"0.000075"},"visibility":"public"},{"constant":false,"documentation":{"id":11614,"nodeType":"StructuredDocumentation","src":"1875:42:29","text":"@notice The base protocol fee (in bps)"},"functionSelector":"b0e21e8a","id":11617,"mutability":"mutable","name":"protocolFee","nameLocation":"1936:11:29","nodeType":"VariableDeclaration","scope":12265,"src":"1922:33:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11615,"name":"uint64","nodeType":"ElementaryTypeName","src":"1922:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"315f303030","id":11616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:5:29","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"public"},{"constant":false,"documentation":{"id":11618,"nodeType":"StructuredDocumentation","src":"1969:42:29","text":"@notice The base referral fee (in bps)"},"functionSelector":"84ae2bc6","id":11621,"mutability":"mutable","name":"referralFee","nameLocation":"2030:11:29","nodeType":"VariableDeclaration","scope":12265,"src":"2016:33:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11619,"name":"uint64","nodeType":"ElementaryTypeName","src":"2016:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"315f303030","id":11620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2044:5:29","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"public"},{"constant":true,"documentation":{"id":11622,"nodeType":"StructuredDocumentation","src":"2063:66:29","text":"@notice The fee denominator (basis points, i.e. 10000 == 100%)"},"functionSelector":"d73792a9","id":11625,"mutability":"constant","name":"FEE_DENOMINATOR","nameLocation":"2157:15:29","nodeType":"VariableDeclaration","scope":12265,"src":"2134:47:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11623,"name":"uint64","nodeType":"ElementaryTypeName","src":"2134:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31305f303030","id":11624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2175:6:29","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10_000"},"visibility":"public"},{"body":{"id":11647,"nodeType":"Block","src":"2307:127:29","statements":[{"expression":{"arguments":[{"expression":{"id":11635,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2334:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2338:6:29","memberName":"sender","nodeType":"MemberAccess","src":"2334:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11634,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2317:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2317:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11638,"nodeType":"ExpressionStatement","src":"2317:28:29"},{"expression":{"id":11641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11639,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11606,"src":"2355:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11640,"name":"registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11629,"src":"2366:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"src":"2355:20:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"id":11642,"nodeType":"ExpressionStatement","src":"2355:20:29"},{"expression":{"id":11645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11643,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"2385:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11644,"name":"protocolFeeReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11631,"src":"2407:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2385:42:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11646,"nodeType":"ExpressionStatement","src":"2385:42:29"}]},"documentation":{"id":11626,"nodeType":"StructuredDocumentation","src":"2188:47:29","text":"@notice Constructor to initialize the owner"},"id":11648,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11629,"mutability":"mutable","name":"registry_","nameLocation":"2266:9:29","nodeType":"VariableDeclaration","scope":11648,"src":"2252:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"},"typeName":{"id":11628,"nodeType":"UserDefinedTypeName","pathNode":{"id":11627,"name":"BoostRegistry","nameLocations":["2252:13:29"],"nodeType":"IdentifierPath","referencedDeclaration":12680,"src":"2252:13:29"},"referencedDeclaration":12680,"src":"2252:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"visibility":"internal"},{"constant":false,"id":11631,"mutability":"mutable","name":"protocolFeeReceiver_","nameLocation":"2285:20:29","nodeType":"VariableDeclaration","scope":11648,"src":"2277:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11630,"name":"address","nodeType":"ElementaryTypeName","src":"2277:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2251:55:29"},"returnParameters":{"id":11633,"nodeType":"ParameterList","parameters":[],"src":"2307:0:29"},"scope":12265,"src":"2240:194:29","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11814,"nodeType":"Block","src":"4073:1161:29","statements":[{"assignments":[11663],"declarations":[{"constant":false,"id":11663,"mutability":"mutable","name":"payload_","nameLocation":"4102:8:29","nodeType":"VariableDeclaration","scope":11814,"src":"4083:27:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload"},"typeName":{"id":11662,"nodeType":"UserDefinedTypeName","pathNode":{"id":11661,"name":"InitPayload","nameLocations":["4083:11:29"],"nodeType":"IdentifierPath","referencedDeclaration":11597,"src":"4083:11:29"},"referencedDeclaration":11597,"src":"4083:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_storage_ptr","typeString":"struct BoostCore.InitPayload"}},"visibility":"internal"}],"id":11672,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11666,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11651,"src":"4124:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":11667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4130:12:29","memberName":"cdDecompress","nodeType":"MemberAccess","referencedDeclaration":11007,"src":"4124:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":11668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4124:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11669,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11597,"src":"4147:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11597_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}}],"id":11670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4146:13:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11597_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11597_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}],"expression":{"id":11664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4113:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4117:6:29","memberName":"decode","nodeType":"MemberAccess","src":"4113:10:29","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4083:77:29"},{"expression":{"arguments":[{"expression":{"id":11674,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4215:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4224:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11575,"src":"4215:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}],"id":11673,"name":"_checkBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11979,"src":"4202:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Budget_$13669_$returns$__$","typeString":"function (contract Budget) view"}},"id":11676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4202:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11677,"nodeType":"ExpressionStatement","src":"4202:29:29"},{"assignments":[11682],"declarations":[{"constant":false,"id":11682,"mutability":"mutable","name":"boost","nameLocation":"4297:5:29","nodeType":"VariableDeclaration","scope":11814,"src":"4274:28:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11681,"nodeType":"UserDefinedTypeName","pathNode":{"id":11680,"name":"BoostLib.Boost","nameLocations":["4274:8:29","4283:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"4274:14:29"},"referencedDeclaration":17616,"src":"4274:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"id":11686,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11683,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"4305:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4313:4:29","memberName":"push","nodeType":"MemberAccess","src":"4305:12:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Boost_$17616_storage_$dyn_storage_ptr_$returns$_t_struct$_Boost_$17616_storage_$attached_to$_t_array$_t_struct$_Boost_$17616_storage_$dyn_storage_ptr_$","typeString":"function (struct BoostLib.Boost storage ref[] storage pointer) returns (struct BoostLib.Boost storage ref)"}},"id":11685,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4305:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage","typeString":"struct BoostLib.Boost storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4274:45:29"},{"expression":{"id":11692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11687,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4329:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4335:5:29","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":17615,"src":"4329:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11690,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4343:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4352:5:29","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":11596,"src":"4343:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4329:28:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11693,"nodeType":"ExpressionStatement","src":"4329:28:29"},{"expression":{"id":11699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11694,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4367:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4373:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":17603,"src":"4367:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11697,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4382:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4391:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11575,"src":"4382:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"src":"4367:30:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"id":11700,"nodeType":"ExpressionStatement","src":"4367:30:29"},{"expression":{"id":11708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11701,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4407:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4413:11:29","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":17609,"src":"4407:17:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11704,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11617,"src":"4427:11:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11705,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4441:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4450:11:29","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":11590,"src":"4441:20:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4427:34:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4407:54:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":11709,"nodeType":"ExpressionStatement","src":"4407:54:29"},{"expression":{"id":11717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11710,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4471:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4477:11:29","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":17611,"src":"4471:17:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11713,"name":"referralFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"4491:11:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11714,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4505:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4514:11:29","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":11592,"src":"4505:20:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4491:34:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4471:54:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":11718,"nodeType":"ExpressionStatement","src":"4471:54:29"},{"expression":{"id":11724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11719,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4535:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4541:15:29","memberName":"maxParticipants","nodeType":"MemberAccess","referencedDeclaration":17613,"src":"4535:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11722,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4559:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4568:15:29","memberName":"maxParticipants","nodeType":"MemberAccess","referencedDeclaration":11594,"src":"4559:24:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4535:48:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11725,"nodeType":"ExpressionStatement","src":"4535:48:29"},{"expression":{"id":11740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11726,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4632:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4638:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"4632:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":11732,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"4671:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}],"id":11731,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4666:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4666:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Action_$12758","typeString":"type(contract Action)"}},"id":11734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4679:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"4666:24:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11735,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4692:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4701:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":11578,"src":"4692:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4709:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11730,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"4654:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4654:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11729,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"4647:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}},"id":11739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4647:68:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"src":"4632:83:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"id":11741,"nodeType":"ExpressionStatement","src":"4632:83:29"},{"expression":{"id":11756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11742,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4725:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4731:9:29","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":17600,"src":"4725:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":11748,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"4770:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}],"id":11747,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4765:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4765:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AllowList_$13154","typeString":"type(contract AllowList)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4781:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"4765:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11751,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4794:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4803:9:29","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":11584,"src":"4794:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4814:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11746,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"4753:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:66:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11745,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"4743:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}},"id":11755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4743:77:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"src":"4725:95:29","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"id":11757,"nodeType":"ExpressionStatement","src":"4725:95:29"},{"expression":{"id":11767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11758,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4830:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4836:10:29","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":17607,"src":"4830:16:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":11762,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4865:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4874:10:29","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":11588,"src":"4865:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},{"expression":{"id":11764,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4886:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11575,"src":"4886:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"},{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}],"id":11761,"name":"_makeIncentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12160,"src":"4849:15:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_$_t_contract$_Budget_$13669_$returns$_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_$","typeString":"function (struct BoostLib.Target memory[] memory,contract Budget) returns (contract Incentive[] memory)"}},"id":11766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4849:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"src":"4830:72:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"id":11768,"nodeType":"ExpressionStatement","src":"4830:72:29"},{"expression":{"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11769,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4912:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4918:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":17597,"src":"4912:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":11773,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4953:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4962:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":11581,"src":"4953:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":11775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4972:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"4953:27:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":11778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4992:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4984:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11776,"name":"address","nodeType":"ElementaryTypeName","src":"4984:7:29","typeDescriptions":{}}},"id":11779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4953:41:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"arguments":[{"id":11801,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"5145:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}],"id":11800,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5140:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5140:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$18282","typeString":"type(contract Validator)"}},"id":11803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5156:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"5140:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11804,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5169:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5178:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":11581,"src":"5169:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5189:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11799,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"5128:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5128:66:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4953:241:29","trueExpression":{"condition":{"arguments":[{"expression":{"arguments":[{"id":11785,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"5049:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}],"id":11784,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5044:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$18282","typeString":"type(contract Validator)"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5060:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"5044:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":11781,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5013:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5019:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"5013:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5026:17:29","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":12757,"src":"5013:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":11788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5013:59:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":11796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5107:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5099:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11794,"name":"address","nodeType":"ElementaryTypeName","src":"5099:7:29","typeDescriptions":{}}},"id":11797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5013:96:29","trueExpression":{"arguments":[{"expression":{"id":11791,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5083:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5089:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"5083:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}],"id":11790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5075:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11789,"name":"address","nodeType":"ElementaryTypeName","src":"5075:7:29","typeDescriptions":{}}},"id":11793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5075:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11772,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"4930:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4930:274:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"src":"4912:292:29","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"id":11811,"nodeType":"ExpressionStatement","src":"4912:292:29"},{"expression":{"id":11812,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5222:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"functionReturnParameters":11660,"id":11813,"nodeType":"Return","src":"5215:12:29"}]},"documentation":{"id":11649,"nodeType":"StructuredDocumentation","src":"2440:1521:29","text":"@notice Create a new Boost\n @param data_ The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\n @dev The data is expected to:\n - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol)\n - properly decode to the following types (in order):\n - `Budget` to be used for the Boost\n - `Target` for the action\n - `Target` for the validator which is expected to be one of the following:\n - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\"SignerValidator\")`), along with the parameters for its initializer;\n - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size);\n - The zero address along with no parameter data if validation is implemented by the action;\n - `Target` for the allowList\n - `Target[]` for the incentives\n - `uint256` for the protocolFee (added to the base protocol fee)\n - `uint256` for the referralFee (added to the base referral fee)\n - `uint256` for the maxParticipants\n - `address` for the owner of the Boost"},"functionSelector":"e21ff731","id":11815,"implemented":true,"kind":"function","modifiers":[{"id":11654,"kind":"modifierInvocation","modifierName":{"id":11653,"name":"onlyOwner","nameLocations":["4018:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4018:9:29"},"nodeType":"ModifierInvocation","src":"4018:9:29"},{"id":11656,"kind":"modifierInvocation","modifierName":{"id":11655,"name":"nonReentrant","nameLocations":["4028:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"4028:12:29"},"nodeType":"ModifierInvocation","src":"4028:12:29"}],"name":"createBoost","nameLocation":"3975:11:29","nodeType":"FunctionDefinition","parameters":{"id":11652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11651,"mutability":"mutable","name":"data_","nameLocation":"4002:5:29","nodeType":"VariableDeclaration","scope":11815,"src":"3987:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11650,"name":"bytes","nodeType":"ElementaryTypeName","src":"3987:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3986:22:29"},"returnParameters":{"id":11660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11815,"src":"4050:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_memory_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11658,"nodeType":"UserDefinedTypeName","pathNode":{"id":11657,"name":"BoostLib.Boost","nameLocations":["4050:8:29","4059:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"4050:14:29"},"referencedDeclaration":17616,"src":"4050:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"src":"4049:23:29"},"scope":12265,"src":"3966:1268:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11897,"nodeType":"Block","src":"5652:574:29","statements":[{"assignments":[11833],"declarations":[{"constant":false,"id":11833,"mutability":"mutable","name":"boost","nameLocation":"5685:5:29","nodeType":"VariableDeclaration","scope":11897,"src":"5662:28:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11832,"nodeType":"UserDefinedTypeName","pathNode":{"id":11831,"name":"BoostLib.Boost","nameLocations":["5662:8:29","5671:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"5662:14:29"},"referencedDeclaration":17616,"src":"5662:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"id":11837,"initialValue":{"baseExpression":{"id":11834,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"5693:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11836,"indexExpression":{"id":11835,"name":"boostId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11818,"src":"5701:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5693:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage","typeString":"struct BoostLib.Boost storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5662:48:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11838,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5724:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5728:5:29","memberName":"value","nodeType":"MemberAccess","src":"5724:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11840,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"5736:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5724:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11854,"nodeType":"IfStatement","src":"5720:94:29","trueBody":{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":11847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5790:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5782:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11845,"name":"address","nodeType":"ElementaryTypeName","src":"5782:7:29","typeDescriptions":{}}},"id":11848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5782:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":11849,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5794:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5798:5:29","memberName":"value","nodeType":"MemberAccess","src":"5794:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11851,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"5805:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11842,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"5753:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5764:17:29","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"5753:28:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":11852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:61:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11853,"nodeType":"RevertStatement","src":"5746:68:29"}},{"expression":{"arguments":[{"id":11856,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11833,"src":"5839:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},{"id":11857,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"5846:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11855,"name":"_routeClaimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"5824:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Boost_$17616_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct BoostLib.Boost storage pointer,address)"}},"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5824:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11859,"nodeType":"ExpressionStatement","src":"5824:32:29"},{"condition":{"id":11865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5959:32:29","subExpression":{"arguments":[{"id":11863,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11824,"src":"5985:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":11860,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11833,"src":"5960:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5966:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":17597,"src":"5960:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"id":11862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5976:8:29","memberName":"validate","nodeType":"MemberAccess","referencedDeclaration":18258,"src":"5960:24:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":11864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:31:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11871,"nodeType":"IfStatement","src":"5955:70:29","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11866,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"6000:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6011:12:29","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"6000:23:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6000:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11870,"nodeType":"RevertStatement","src":"5993:32:29"}},{"condition":{"id":11887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6052:108:29","subExpression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":11881,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6133:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6137:6:29","memberName":"sender","nodeType":"MemberAccess","src":"6133:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11883,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11824,"src":"6151:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11879,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"6101:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}},"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6111:12:29","memberName":"ClaimPayload","nodeType":"MemberAccess","referencedDeclaration":17186,"src":"6101:22:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}},"id":11884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6125:6:29","6145:4:29"],"names":["target","data"],"nodeType":"FunctionCall","src":"6101:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":11877,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6090:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6094:6:29","memberName":"encode","nodeType":"MemberAccess","src":"6090:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6090:69:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"expression":{"id":11872,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11833,"src":"6053:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6059:10:29","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":17607,"src":"6053:16:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"id":11875,"indexExpression":{"id":11874,"name":"incentiveId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11820,"src":"6070:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6053:30:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6084:5:29","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":17212,"src":"6053:36:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":11886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6053:107:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11896,"nodeType":"IfStatement","src":"6035:184:29","trueBody":{"errorCall":{"arguments":[{"expression":{"id":11891,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6201:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6205:6:29","memberName":"sender","nodeType":"MemberAccess","src":"6201:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11893,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11824,"src":"6213:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11888,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"6178:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6189:11:29","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"6178:22:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":11894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11895,"nodeType":"RevertStatement","src":"6171:48:29"}}]},"documentation":{"id":11816,"nodeType":"StructuredDocumentation","src":"5240:244:29","text":"@notice Claim an incentive for a Boost\n @param boostId_ The ID of the Boost\n @param incentiveId_ The ID of the Incentive\n @param referrer_ The address of the referrer (if any)\n @param data_ The data for the claim"},"functionSelector":"8fe4f523","id":11898,"implemented":true,"kind":"function","modifiers":[{"id":11827,"kind":"modifierInvocation","modifierName":{"id":11826,"name":"nonReentrant","nameLocations":["5635:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"5635:12:29"},"nodeType":"ModifierInvocation","src":"5635:12:29"}],"name":"claimIncentive","nameLocation":"5498:14:29","nodeType":"FunctionDefinition","parameters":{"id":11825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11818,"mutability":"mutable","name":"boostId_","nameLocation":"5521:8:29","nodeType":"VariableDeclaration","scope":11898,"src":"5513:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11817,"name":"uint256","nodeType":"ElementaryTypeName","src":"5513:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11820,"mutability":"mutable","name":"incentiveId_","nameLocation":"5539:12:29","nodeType":"VariableDeclaration","scope":11898,"src":"5531:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11819,"name":"uint256","nodeType":"ElementaryTypeName","src":"5531:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11822,"mutability":"mutable","name":"referrer_","nameLocation":"5561:9:29","nodeType":"VariableDeclaration","scope":11898,"src":"5553:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11821,"name":"address","nodeType":"ElementaryTypeName","src":"5553:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11824,"mutability":"mutable","name":"data_","nameLocation":"5587:5:29","nodeType":"VariableDeclaration","scope":11898,"src":"5572:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11823,"name":"bytes","nodeType":"ElementaryTypeName","src":"5572:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5512:81:29"},"returnParameters":{"id":11828,"nodeType":"ParameterList","parameters":[],"src":"5652:0:29"},"scope":12265,"src":"5489:737:29","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":11911,"nodeType":"Block","src":"6441:38:29","statements":[{"expression":{"baseExpression":{"id":11907,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"6458:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11909,"indexExpression":{"id":11908,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"6466:5:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6458:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage","typeString":"struct BoostLib.Boost storage ref"}},"functionReturnParameters":11906,"id":11910,"nodeType":"Return","src":"6451:21:29"}]},"documentation":{"id":11899,"nodeType":"StructuredDocumentation","src":"6232:125:29","text":"@notice Get a Boost by index\n @param index The index of the Boost\n @return The Boost at the specified index"},"functionSelector":"13c8e2de","id":11912,"implemented":true,"kind":"function","modifiers":[],"name":"getBoost","nameLocation":"6371:8:29","nodeType":"FunctionDefinition","parameters":{"id":11902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11901,"mutability":"mutable","name":"index","nameLocation":"6388:5:29","nodeType":"VariableDeclaration","scope":11912,"src":"6380:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11900,"name":"uint256","nodeType":"ElementaryTypeName","src":"6380:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6379:15:29"},"returnParameters":{"id":11906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11912,"src":"6418:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_memory_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11904,"nodeType":"UserDefinedTypeName","pathNode":{"id":11903,"name":"BoostLib.Boost","nameLocations":["6418:8:29","6427:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"6418:14:29"},"referencedDeclaration":17616,"src":"6418:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"src":"6417:23:29"},"scope":12265,"src":"6362:117:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11921,"nodeType":"Block","src":"6620:38:29","statements":[{"expression":{"expression":{"id":11918,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"6637:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6645:6:29","memberName":"length","nodeType":"MemberAccess","src":"6637:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11917,"id":11920,"nodeType":"Return","src":"6630:21:29"}]},"documentation":{"id":11913,"nodeType":"StructuredDocumentation","src":"6485:73:29","text":"@notice Get the number of Boosts\n @return The number of Boosts"},"functionSelector":"5edb9eb0","id":11922,"implemented":true,"kind":"function","modifiers":[],"name":"getBoostCount","nameLocation":"6572:13:29","nodeType":"FunctionDefinition","parameters":{"id":11914,"nodeType":"ParameterList","parameters":[],"src":"6585:2:29"},"returnParameters":{"id":11917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11922,"src":"6611:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11915,"name":"uint256","nodeType":"ElementaryTypeName","src":"6611:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6610:9:29"},"scope":12265,"src":"6563:95:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11934,"nodeType":"Block","src":"6930:59:29","statements":[{"expression":{"id":11932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11930,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"6940:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11931,"name":"protocolFeeReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"6962:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6940:42:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11933,"nodeType":"ExpressionStatement","src":"6940:42:29"}]},"documentation":{"id":11923,"nodeType":"StructuredDocumentation","src":"6664:180:29","text":"@notice Set the protocol fee receiver address\n @param protocolFeeReceiver_ The new protocol fee receiver address\n @dev This function is only callable by the owner"},"functionSelector":"46877b1a","id":11935,"implemented":true,"kind":"function","modifiers":[{"id":11928,"kind":"modifierInvocation","modifierName":{"id":11927,"name":"onlyOwner","nameLocations":["6920:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"6920:9:29"},"nodeType":"ModifierInvocation","src":"6920:9:29"}],"name":"setProtocolFeeReceiver","nameLocation":"6858:22:29","nodeType":"FunctionDefinition","parameters":{"id":11926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11925,"mutability":"mutable","name":"protocolFeeReceiver_","nameLocation":"6889:20:29","nodeType":"VariableDeclaration","scope":11935,"src":"6881:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11924,"name":"address","nodeType":"ElementaryTypeName","src":"6881:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6880:30:29"},"returnParameters":{"id":11929,"nodeType":"ParameterList","parameters":[],"src":"6930:0:29"},"scope":12265,"src":"6849:140:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11947,"nodeType":"Block","src":"7197:37:29","statements":[{"expression":{"id":11945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11943,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"7207:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11944,"name":"claimFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"7218:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7207:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11946,"nodeType":"ExpressionStatement","src":"7207:20:29"}]},"documentation":{"id":11936,"nodeType":"StructuredDocumentation","src":"6995:138:29","text":"@notice Set the claim fee\n @param claimFee_ The new claim fee (in wei)\n @dev This function is only callable by the owner"},"functionSelector":"2e75ab50","id":11948,"implemented":true,"kind":"function","modifiers":[{"id":11941,"kind":"modifierInvocation","modifierName":{"id":11940,"name":"onlyOwner","nameLocations":["7187:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7187:9:29"},"nodeType":"ModifierInvocation","src":"7187:9:29"}],"name":"setClaimFee","nameLocation":"7147:11:29","nodeType":"FunctionDefinition","parameters":{"id":11939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11938,"mutability":"mutable","name":"claimFee_","nameLocation":"7167:9:29","nodeType":"VariableDeclaration","scope":11948,"src":"7159:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11937,"name":"uint256","nodeType":"ElementaryTypeName","src":"7159:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7158:19:29"},"returnParameters":{"id":11942,"nodeType":"ParameterList","parameters":[],"src":"7197:0:29"},"scope":12265,"src":"7138:96:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11978,"nodeType":"Block","src":"7529:154:29","statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":11957,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"7557:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}],"id":11956,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7552:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7552:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Budget_$13669","typeString":"type(contract Budget)"}},"id":11959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7565:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"7552:24:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":11962,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11952,"src":"7586:7:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}],"id":11961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7578:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11960,"name":"address","nodeType":"ElementaryTypeName","src":"7578:7:29","typeDescriptions":{}}},"id":11963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7578:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11955,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"7539:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":11964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7539:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11965,"nodeType":"ExpressionStatement","src":"7539:56:29"},{"condition":{"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7609:33:29","subExpression":{"arguments":[{"expression":{"id":11968,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7631:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7635:6:29","memberName":"sender","nodeType":"MemberAccess","src":"7631:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11966,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11952,"src":"7610:7:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7618:12:29","memberName":"isAuthorized","nodeType":"MemberAccess","referencedDeclaration":13654,"src":"7610:20:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":11970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7610:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11977,"nodeType":"IfStatement","src":"7605:71:29","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11972,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"7651:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7662:12:29","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"7651:23:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7651:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11976,"nodeType":"RevertStatement","src":"7644:32:29"}}]},"documentation":{"id":11949,"nodeType":"StructuredDocumentation","src":"7240:232:29","text":"@notice Check that the provided Budget is valid and that the caller is authorized to use it\n @param budget_ The Budget to check\n @dev This function will revert if the Budget is invalid or the caller is unauthorized"},"id":11979,"implemented":true,"kind":"function","modifiers":[],"name":"_checkBudget","nameLocation":"7486:12:29","nodeType":"FunctionDefinition","parameters":{"id":11953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11952,"mutability":"mutable","name":"budget_","nameLocation":"7506:7:29","nodeType":"VariableDeclaration","scope":11979,"src":"7499:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":11951,"nodeType":"UserDefinedTypeName","pathNode":{"id":11950,"name":"Budget","nameLocations":["7499:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"7499:6:29"},"referencedDeclaration":13669,"src":"7499:6:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"}],"src":"7498:16:29"},"returnParameters":{"id":11954,"nodeType":"ParameterList","parameters":[],"src":"7529:0:29"},"scope":12265,"src":"7477:206:29","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12010,"nodeType":"Block","src":"8128:180:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11987,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"8142:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":11990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8162:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8154:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11988,"name":"address","nodeType":"ElementaryTypeName","src":"8154:7:29","typeDescriptions":{}}},"id":11991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8154:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8142:22:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":11999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8168:51:29","subExpression":{"arguments":[{"id":11997,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11982,"src":"8207:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":11994,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"8179:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11993,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"8169:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":11995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8169:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8189:17:29","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"8169:37:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":11998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8169:50:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8142:77:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12009,"nodeType":"IfStatement","src":"8138:164:29","trueBody":{"id":12008,"nodeType":"Block","src":"8221:81:29","statements":[{"errorCall":{"arguments":[{"id":12004,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11982,"src":"8269:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12005,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"8282:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12001,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"8242:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":12003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8253:15:29","memberName":"InvalidInstance","nodeType":"MemberAccess","referencedDeclaration":17535,"src":"8242:26:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) pure"}},"id":12006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8242:49:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12007,"nodeType":"RevertStatement","src":"8235:56:29"}]}}]},"documentation":{"id":11980,"nodeType":"StructuredDocumentation","src":"7689:360:29","text":"@notice Check that the provided Target is valid for the specified interface\n @param interfaceId The interface ID for the target\n @param instance The instance to check\n @dev This function will revert if the Target does not implement the expected interface\n @dev This check costs ~376 gas, which is worth it to validate the target"},"id":12011,"implemented":true,"kind":"function","modifiers":[],"name":"_checkTarget","nameLocation":"8063:12:29","nodeType":"FunctionDefinition","parameters":{"id":11985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11982,"mutability":"mutable","name":"interfaceId","nameLocation":"8083:11:29","nodeType":"VariableDeclaration","scope":12011,"src":"8076:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11981,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8076:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":11984,"mutability":"mutable","name":"instance","nameLocation":"8104:8:29","nodeType":"VariableDeclaration","scope":12011,"src":"8096:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11983,"name":"address","nodeType":"ElementaryTypeName","src":"8096:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8075:38:29"},"returnParameters":{"id":11986,"nodeType":"ParameterList","parameters":[],"src":"8128:0:29"},"scope":12265,"src":"8054:254:29","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12037,"nodeType":"Block","src":"8849:117:29","statements":[{"expression":{"arguments":[{"id":12025,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12014,"src":"8872:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":12026,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"8885:6:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8892:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"8885:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12024,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"8859:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":12028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8859:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12029,"nodeType":"ExpressionStatement","src":"8859:42:29"},{"expression":{"id":12035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12030,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"8911:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12032,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"8934:6:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"id":12033,"name":"shouldInitialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12019,"src":"8942:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12031,"name":"_maybeClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"8922:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (struct BoostLib.Target memory,bool) returns (address)"}},"id":12034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8922:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8911:48:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12036,"nodeType":"ExpressionStatement","src":"8911:48:29"}]},"documentation":{"id":12012,"nodeType":"StructuredDocumentation","src":"8314:379:29","text":"@notice Create a target instance and optionally initialize it\n @param interfaceId The interface ID for the target\n @param target The target to create\n @param shouldInitialize Whether or not to initialize the target\n @return instance The target instance\n @dev This function will revert if the target does not implement the expected interface"},"id":12038,"implemented":true,"kind":"function","modifiers":[],"name":"_makeTarget","nameLocation":"8707:11:29","nodeType":"FunctionDefinition","parameters":{"id":12020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12014,"mutability":"mutable","name":"interfaceId","nameLocation":"8726:11:29","nodeType":"VariableDeclaration","scope":12038,"src":"8719:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12013,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8719:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12017,"mutability":"mutable","name":"target","nameLocation":"8762:6:29","nodeType":"VariableDeclaration","scope":12038,"src":"8739:29:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":12016,"nodeType":"UserDefinedTypeName","pathNode":{"id":12015,"name":"BoostLib.Target","nameLocations":["8739:8:29","8748:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"8739:15:29"},"referencedDeclaration":17624,"src":"8739:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":12019,"mutability":"mutable","name":"shouldInitialize","nameLocation":"8775:16:29","nodeType":"VariableDeclaration","scope":12038,"src":"8770:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12018,"name":"bool","nodeType":"ElementaryTypeName","src":"8770:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8718:74:29"},"returnParameters":{"id":12023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12022,"mutability":"mutable","name":"instance","nameLocation":"8835:8:29","nodeType":"VariableDeclaration","scope":12038,"src":"8827:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12021,"name":"address","nodeType":"ElementaryTypeName","src":"8827:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8826:18:29"},"scope":12265,"src":"8698:268:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12159,"nodeType":"Block","src":"9413:1088:29","statements":[{"expression":{"id":12061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12053,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"9423:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":12058,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9452:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9461:6:29","memberName":"length","nodeType":"MemberAccess","src":"9452:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9436:15:29","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (contract Incentive[] memory)"},"typeName":{"baseType":{"id":12055,"nodeType":"UserDefinedTypeName","pathNode":{"id":12054,"name":"Incentive","nameLocations":["9440:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"9440:9:29"},"referencedDeclaration":17260,"src":"9440:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12056,"nodeType":"ArrayTypeName","src":"9440:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"}}},"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9436:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"src":"9423:45:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12062,"nodeType":"ExpressionStatement","src":"9423:45:29"},{"body":{"id":12157,"nodeType":"Block","src":"9524:971:29","statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":12076,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9637:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":12075,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9632:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9632:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":12078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9648:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"9632:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"baseExpression":{"id":12079,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9661:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12081,"indexExpression":{"id":12080,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9670:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9661:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9673:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"9661:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12074,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"9619:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":12083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9619:63:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12084,"nodeType":"ExpressionStatement","src":"9619:63:29"},{"condition":{"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9795:19:29","subExpression":{"expression":{"baseExpression":{"id":12085,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9796:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12087,"indexExpression":{"id":12086,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9805:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9796:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9808:6:29","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":17619,"src":"9796:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12104,"nodeType":"IfStatement","src":"9791:142:29","trueBody":{"id":12103,"nodeType":"Block","src":"9816:117:29","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":12094,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9873:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":12093,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9868:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9868:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":12096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9884:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"9868:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"baseExpression":{"id":12097,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9897:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12099,"indexExpression":{"id":12098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9906:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9897:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9909:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"9897:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12090,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"9841:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9852:15:29","memberName":"InvalidInstance","nodeType":"MemberAccess","referencedDeclaration":17535,"src":"9841:26:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) pure"}},"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9841:77:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12102,"nodeType":"RevertStatement","src":"9834:84:29"}]}},{"expression":{"id":12120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12105,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"9947:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12107,"indexExpression":{"id":12106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9958:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9947:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":12111,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9990:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":12110,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9985:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9985:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":12113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10001:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"9985:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"baseExpression":{"id":12114,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"10014:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12116,"indexExpression":{"id":12115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10023:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10014:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"66616c7365","id":12117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10027:5:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12109,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"9973:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":12118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9973:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12108,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9963:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}},"id":12119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9963:71:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"src":"9947:87:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12121,"nodeType":"ExpressionStatement","src":"9947:87:29"},{"assignments":[12123],"declarations":[{"constant":false,"id":12123,"mutability":"mutable","name":"preflight","nameLocation":"10062:9:29","nodeType":"VariableDeclaration","scope":12157,"src":"10049:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12122,"name":"bytes","nodeType":"ElementaryTypeName","src":"10049:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12133,"initialValue":{"arguments":[{"expression":{"baseExpression":{"id":12128,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"10098:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12130,"indexExpression":{"id":12129,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10107:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10098:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10110:10:29","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"10098:22:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"id":12124,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"10074:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12126,"indexExpression":{"id":12125,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10085:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10074:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10088:9:29","memberName":"preflight","nodeType":"MemberAccess","referencedDeclaration":17236,"src":"10074:23:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view external returns (bytes memory)"}},"id":12132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10074:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10049:72:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12134,"name":"preflight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12123,"src":"10139:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10149:6:29","memberName":"length","nodeType":"MemberAccess","src":"10139:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10159:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10139:21:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12146,"nodeType":"IfStatement","src":"10135:193:29","trueBody":{"id":12145,"nodeType":"Block","src":"10162:166:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":12141,"name":"preflight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12123,"src":"10302:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12139,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"10285:7:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"id":12140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10293:8:29","memberName":"disburse","nodeType":"MemberAccess","referencedDeclaration":13572,"src":"10285:16:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10285:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12138,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"10278:6:29","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10278:35:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"10278:35:29"}]}},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":12151,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"10461:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12153,"indexExpression":{"id":12152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10470:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10461:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10473:10:29","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"10461:22:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"id":12147,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"10436:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12149,"indexExpression":{"id":12148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10447:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10436:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10450:10:29","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17697,"src":"10436:24:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":12155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10436:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12156,"nodeType":"ExpressionStatement","src":"10436:48:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9498:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12068,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9502:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9511:6:29","memberName":"length","nodeType":"MemberAccess","src":"9502:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9498:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12158,"initializationExpression":{"assignments":[12064],"declarations":[{"constant":false,"id":12064,"mutability":"mutable","name":"i","nameLocation":"9491:1:29","nodeType":"VariableDeclaration","scope":12158,"src":"9483:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9483:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12066,"initialValue":{"hexValue":"30","id":12065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9495:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9483:13:29"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9519:3:29","subExpression":{"id":12071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9519:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12073,"nodeType":"ExpressionStatement","src":"9519:3:29"},"nodeType":"ForStatement","src":"9478:1017:29"}]},"documentation":{"id":12039,"nodeType":"StructuredDocumentation","src":"8972:291:29","text":"@notice Configure a set of incentives for a Boost using the given Budget\n @param targets_ The set of incentives {Target[]}\n @param budget_ The Budget from which to allocate the incentives\n @return incentives The set of initialized incentives {Incentive[]}"},"id":12160,"implemented":true,"kind":"function","modifiers":[],"name":"_makeIncentives","nameLocation":"9277:15:29","nodeType":"FunctionDefinition","parameters":{"id":12047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12043,"mutability":"mutable","name":"targets_","nameLocation":"9318:8:29","nodeType":"VariableDeclaration","scope":12160,"src":"9293:33:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target[]"},"typeName":{"baseType":{"id":12041,"nodeType":"UserDefinedTypeName","pathNode":{"id":12040,"name":"BoostLib.Target","nameLocations":["9293:8:29","9302:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"9293:15:29"},"referencedDeclaration":17624,"src":"9293:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"id":12042,"nodeType":"ArrayTypeName","src":"9293:17:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"}},"visibility":"internal"},{"constant":false,"id":12046,"mutability":"mutable","name":"budget_","nameLocation":"9335:7:29","nodeType":"VariableDeclaration","scope":12160,"src":"9328:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"Budget","nameLocations":["9328:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"9328:6:29"},"referencedDeclaration":13669,"src":"9328:6:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"}],"src":"9292:51:29"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12051,"mutability":"mutable","name":"incentives","nameLocation":"9397:10:29","nodeType":"VariableDeclaration","scope":12160,"src":"9378:29:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[]"},"typeName":{"baseType":{"id":12049,"nodeType":"UserDefinedTypeName","pathNode":{"id":12048,"name":"Incentive","nameLocations":["9378:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"9378:9:29"},"referencedDeclaration":17260,"src":"9378:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12050,"nodeType":"ArrayTypeName","src":"9378:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"}},"visibility":"internal"}],"src":"9377:31:29"},"scope":12265,"src":"9268:1233:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12197,"nodeType":"Block","src":"10724:307:29","statements":[{"expression":{"id":12181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12171,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12169,"src":"10734:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"expression":{"id":12172,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10745:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10753:6:29","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":17619,"src":"10745:14:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":12178,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10789:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10797:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"10789:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10745:60:29","trueExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12174,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10762:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10770:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"10762:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10779:5:29","memberName":"clone","nodeType":"MemberAccess","referencedDeclaration":9265,"src":"10762:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) returns (address)"}},"id":12177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10762:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10734:71:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12182,"nodeType":"ExpressionStatement","src":"10734:71:29"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12183,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10819:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10827:6:29","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":17619,"src":"10819:14:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":12185,"name":"shouldInitialize_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12166,"src":"10837:17:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10819:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12196,"nodeType":"IfStatement","src":"10815:210:29","trueBody":{"id":12195,"nodeType":"Block","src":"10856:169:29","statements":[{"expression":{"arguments":[{"expression":{"id":12191,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10995:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11003:10:29","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"10995:18:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":12188,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12169,"src":"10974:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12187,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"10964:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10964:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10984:10:29","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17697,"src":"10964:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":12193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10964:50:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12194,"nodeType":"ExpressionStatement","src":"10964:50:29"}]}}]},"documentation":{"id":12161,"nodeType":"StructuredDocumentation","src":"10507:99:29","text":"@notice Get the target instance, optionally cloning and initializing from a base implementation"},"id":12198,"implemented":true,"kind":"function","modifiers":[],"name":"_maybeClone","nameLocation":"10620:11:29","nodeType":"FunctionDefinition","parameters":{"id":12167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12164,"mutability":"mutable","name":"target_","nameLocation":"10655:7:29","nodeType":"VariableDeclaration","scope":12198,"src":"10632:30:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":12163,"nodeType":"UserDefinedTypeName","pathNode":{"id":12162,"name":"BoostLib.Target","nameLocations":["10632:8:29","10641:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"10632:15:29"},"referencedDeclaration":17624,"src":"10632:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":12166,"mutability":"mutable","name":"shouldInitialize_","nameLocation":"10669:17:29","nodeType":"VariableDeclaration","scope":12198,"src":"10664:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12165,"name":"bool","nodeType":"ElementaryTypeName","src":"10664:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10631:56:29"},"returnParameters":{"id":12170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12169,"mutability":"mutable","name":"instance","nameLocation":"10714:8:29","nodeType":"VariableDeclaration","scope":12198,"src":"10706:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12168,"name":"address","nodeType":"ElementaryTypeName","src":"10706:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10705:18:29"},"scope":12265,"src":"10611:420:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12263,"nodeType":"Block","src":"11333:576:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12207,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11347:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11359:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11347:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12211,"nodeType":"IfStatement","src":"11343:26:29","trueBody":{"functionReturnParameters":12206,"id":12210,"nodeType":"Return","src":"11362:7:29"}},{"assignments":[12213],"declarations":[{"constant":false,"id":12213,"mutability":"mutable","name":"netFee","nameLocation":"11386:6:29","nodeType":"VariableDeclaration","scope":12263,"src":"11378:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12212,"name":"uint256","nodeType":"ElementaryTypeName","src":"11378:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12215,"initialValue":{"id":12214,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11395:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11378:25:29"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12216,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"11501:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11522:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11514:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12217,"name":"address","nodeType":"ElementaryTypeName","src":"11514:7:29","typeDescriptions":{}}},"id":12220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11514:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11501:23:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12242,"nodeType":"IfStatement","src":"11497:215:29","trueBody":{"id":12241,"nodeType":"Block","src":"11526:186:29","statements":[{"assignments":[12223],"declarations":[{"constant":false,"id":12223,"mutability":"mutable","name":"referralShare","nameLocation":"11548:13:29","nodeType":"VariableDeclaration","scope":12241,"src":"11540:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12222,"name":"uint256","nodeType":"ElementaryTypeName","src":"11540:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12230,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12224,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11564:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":12225,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12202,"src":"11575:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":12226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11581:11:29","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":17611,"src":"11575:17:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11564:28:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12228,"name":"FEE_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11625,"src":"11595:15:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11564:46:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11540:70:29"},{"expression":{"id":12233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12231,"name":"netFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12213,"src":"11624:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12232,"name":"referralShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"11634:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11624:23:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12234,"nodeType":"ExpressionStatement","src":"11624:23:29"},{"expression":{"arguments":[{"id":12238,"name":"referralShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"11687:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12235,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"11661:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11671:15:29","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"11661:25:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11661:40:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12240,"nodeType":"ExpressionStatement","src":"11661:40:29"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12248,"name":"netFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12213,"src":"11823:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":12249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11832:1:29","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11823:10:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12243,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12202,"src":"11795:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":12246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11801:5:29","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":17615,"src":"11795:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11807:15:29","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"11795:27:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11795:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12252,"nodeType":"ExpressionStatement","src":"11795:39:29"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":12258,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11888:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostCore_$12265","typeString":"contract BoostCore"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BoostCore_$12265","typeString":"contract BoostCore"}],"id":12257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11880:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12256,"name":"address","nodeType":"ElementaryTypeName","src":"11880:7:29","typeDescriptions":{}}},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11880:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11894:7:29","memberName":"balance","nodeType":"MemberAccess","src":"11880:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12253,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"11844:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11864:15:29","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"11844:35:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11844:58:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12262,"nodeType":"ExpressionStatement","src":"11844:58:29"}]},"documentation":{"id":12199,"nodeType":"StructuredDocumentation","src":"11037:209:29","text":"@notice Route the claim fee to the creator, referrer, and protocol fee receiver\n @param boost The Boost for which to route the claim fee\n @param referrer_ The address of the referrer (if any)"},"id":12264,"implemented":true,"kind":"function","modifiers":[],"name":"_routeClaimFee","nameLocation":"11260:14:29","nodeType":"FunctionDefinition","parameters":{"id":12205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12202,"mutability":"mutable","name":"boost","nameLocation":"11298:5:29","nodeType":"VariableDeclaration","scope":12264,"src":"11275:28:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":12201,"nodeType":"UserDefinedTypeName","pathNode":{"id":12200,"name":"BoostLib.Boost","nameLocations":["11275:8:29","11284:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"11275:14:29"},"referencedDeclaration":17616,"src":"11275:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"},{"constant":false,"id":12204,"mutability":"mutable","name":"referrer_","nameLocation":"11313:9:29","nodeType":"VariableDeclaration","scope":12264,"src":"11305:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12203,"name":"address","nodeType":"ElementaryTypeName","src":"11305:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11274:49:29"},"returnParameters":{"id":12206,"nodeType":"ParameterList","parameters":[],"src":"11333:0:29"},"scope":12265,"src":"11251:658:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":12266,"src":"1093:10818:29","usedErrors":[6235,6238,6241,6244,11020,17519,17528,17535,17565],"usedEvents":[6251,6256,6261]}],"src":"36:11876:29"},"id":29},"contracts/BoostRegistry.sol":{"ast":{"absolutePath":"contracts/BoostRegistry.sol","exportedSymbols":{"AllowList":[13154],"BoostLib":[17652],"BoostRegistry":[12680],"Cloneable":[17720],"ERC165":[2845],"LibClone":[10092],"ReentrancyGuard":[11038]},"id":12681,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12267,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:30"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":12269,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":2846,"src":"62:78:30","symbolAliases":[{"foreign":{"id":12268,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"70:6:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":12271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":10093,"src":"141:52:30","symbolAliases":[{"foreign":{"id":12270,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"149:8:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":12273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":11039,"src":"194:66:30","symbolAliases":[{"foreign":{"id":12272,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"202:15:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostLib.sol","file":"contracts/shared/BoostLib.sol","id":12275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":17653,"src":"262:55:30","symbolAliases":[{"foreign":{"id":12274,"name":"BoostLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"270:8:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12277,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":17721,"src":"318:57:30","symbolAliases":[{"foreign":{"id":12276,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"326:9:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":12279,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":13155,"src":"376:61:30","symbolAliases":[{"foreign":{"id":12278,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"384:9:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12281,"name":"ERC165","nameLocations":["708:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"708:6:30"},"id":12282,"nodeType":"InheritanceSpecifier","src":"708:6:30"},{"baseName":{"id":12283,"name":"ReentrancyGuard","nameLocations":["716:15:30"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"716:15:30"},"id":12284,"nodeType":"InheritanceSpecifier","src":"716:15:30"}],"canonicalName":"BoostRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":12280,"nodeType":"StructuredDocumentation","src":"439:243:30","text":"@title Boost Registry\n @notice A registry for base implementations and cloned instances\n @dev This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol"},"fullyImplemented":true,"id":12680,"linearizedBaseContracts":[12680,11038,2845,2857],"name":"BoostRegistry","nameLocation":"691:13:30","nodeType":"ContractDefinition","nodes":[{"global":false,"id":12287,"libraryName":{"id":12285,"name":"BoostLib","nameLocations":["744:8:30"],"nodeType":"IdentifierPath","referencedDeclaration":17652,"src":"744:8:30"},"nodeType":"UsingForDirective","src":"738:27:30","typeName":{"id":12286,"name":"address","nodeType":"ElementaryTypeName","src":"757:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"BoostRegistry.RegistryType","documentation":{"id":12288,"nodeType":"StructuredDocumentation","src":"771:53:30","text":"@notice The types of bases that can be registered"},"id":12294,"members":[{"id":12289,"name":"ACTION","nameLocation":"857:6:30","nodeType":"EnumValue","src":"857:6:30"},{"id":12290,"name":"ALLOW_LIST","nameLocation":"873:10:30","nodeType":"EnumValue","src":"873:10:30"},{"id":12291,"name":"BUDGET","nameLocation":"893:6:30","nodeType":"EnumValue","src":"893:6:30"},{"id":12292,"name":"INCENTIVE","nameLocation":"909:9:30","nodeType":"EnumValue","src":"909:9:30"},{"id":12293,"name":"VALIDATOR","nameLocation":"928:9:30","nodeType":"EnumValue","src":"928:9:30"}],"name":"RegistryType","nameLocation":"834:12:30","nodeType":"EnumDefinition","src":"829:114:30"},{"canonicalName":"BoostRegistry.Clone","documentation":{"id":12295,"nodeType":"StructuredDocumentation","src":"949:259:30","text":"@notice The data structure for a deployed clone\n @param baseType The type of base implementation\n @param name The display name for the clone\n @param instance The address of the clone\n @param deployer The address of the deployer"},"id":12306,"members":[{"constant":false,"id":12298,"mutability":"mutable","name":"baseType","nameLocation":"1249:8:30","nodeType":"VariableDeclaration","scope":12306,"src":"1236:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12297,"nodeType":"UserDefinedTypeName","pathNode":{"id":12296,"name":"RegistryType","nameLocations":["1236:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1236:12:30"},"referencedDeclaration":12294,"src":"1236:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12301,"mutability":"mutable","name":"instance","nameLocation":"1277:8:30","nodeType":"VariableDeclaration","scope":12306,"src":"1267:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12300,"nodeType":"UserDefinedTypeName","pathNode":{"id":12299,"name":"Cloneable","nameLocations":["1267:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1267:9:30"},"referencedDeclaration":17720,"src":"1267:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"},{"constant":false,"id":12303,"mutability":"mutable","name":"deployer","nameLocation":"1303:8:30","nodeType":"VariableDeclaration","scope":12306,"src":"1295:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12302,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12305,"mutability":"mutable","name":"name","nameLocation":"1328:4:30","nodeType":"VariableDeclaration","scope":12306,"src":"1321:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12304,"name":"string","nodeType":"ElementaryTypeName","src":"1321:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Clone","nameLocation":"1220:5:30","nodeType":"StructDefinition","scope":12680,"src":"1213:126:30","visibility":"public"},{"anonymous":false,"documentation":{"id":12307,"nodeType":"StructuredDocumentation","src":"1345:64:30","text":"@notice Emitted when a new base implementation is registered"},"eventSelector":"660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd80","id":12316,"name":"Registered","nameLocation":"1420:10:30","nodeType":"EventDefinition","parameters":{"id":12315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12310,"indexed":true,"mutability":"mutable","name":"registryType","nameLocation":"1452:12:30","nodeType":"VariableDeclaration","scope":12316,"src":"1431:33:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12309,"nodeType":"UserDefinedTypeName","pathNode":{"id":12308,"name":"RegistryType","nameLocations":["1431:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1431:12:30"},"referencedDeclaration":12294,"src":"1431:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12312,"indexed":true,"mutability":"mutable","name":"identifier","nameLocation":"1482:10:30","nodeType":"VariableDeclaration","scope":12316,"src":"1466:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1466:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12314,"indexed":false,"mutability":"mutable","name":"implementation","nameLocation":"1502:14:30","nodeType":"VariableDeclaration","scope":12316,"src":"1494:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12313,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1430:87:30"},"src":"1414:104:30"},{"anonymous":false,"documentation":{"id":12317,"nodeType":"StructuredDocumentation","src":"1524:76:30","text":"@notice Emitted when a new instance of a base implementation is deployed"},"eventSelector":"2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a","id":12329,"name":"Deployed","nameLocation":"1611:8:30","nodeType":"EventDefinition","parameters":{"id":12328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12320,"indexed":true,"mutability":"mutable","name":"registryType","nameLocation":"1650:12:30","nodeType":"VariableDeclaration","scope":12329,"src":"1629:33:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12319,"nodeType":"UserDefinedTypeName","pathNode":{"id":12318,"name":"RegistryType","nameLocations":["1629:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1629:12:30"},"referencedDeclaration":12294,"src":"1629:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12322,"indexed":true,"mutability":"mutable","name":"identifier","nameLocation":"1688:10:30","nodeType":"VariableDeclaration","scope":12329,"src":"1672:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1672:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12324,"indexed":false,"mutability":"mutable","name":"baseImplementation","nameLocation":"1716:18:30","nodeType":"VariableDeclaration","scope":12329,"src":"1708:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12323,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12327,"indexed":false,"mutability":"mutable","name":"deployedInstance","nameLocation":"1754:16:30","nodeType":"VariableDeclaration","scope":12329,"src":"1744:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12326,"nodeType":"UserDefinedTypeName","pathNode":{"id":12325,"name":"Cloneable","nameLocations":["1744:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1744:9:30"},"referencedDeclaration":17720,"src":"1744:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"1619:157:30"},"src":"1605:172:30"},{"documentation":{"id":12330,"nodeType":"StructuredDocumentation","src":"1783:67:30","text":"@notice Thrown when a base implementation is already registered"},"errorSelector":"96b5684c","id":12337,"name":"AlreadyRegistered","nameLocation":"1861:17:30","nodeType":"ErrorDefinition","parameters":{"id":12336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12333,"mutability":"mutable","name":"registryType","nameLocation":"1892:12:30","nodeType":"VariableDeclaration","scope":12337,"src":"1879:25:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12332,"nodeType":"UserDefinedTypeName","pathNode":{"id":12331,"name":"RegistryType","nameLocations":["1879:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1879:12:30"},"referencedDeclaration":12294,"src":"1879:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12335,"mutability":"mutable","name":"identifier","nameLocation":"1914:10:30","nodeType":"VariableDeclaration","scope":12337,"src":"1906:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1906:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1878:47:30"},"src":"1855:71:30"},{"documentation":{"id":12338,"nodeType":"StructuredDocumentation","src":"1932:66:30","text":"@notice Thrown when no match is found for the given identifier"},"errorSelector":"8cc00d16","id":12342,"name":"NotRegistered","nameLocation":"2009:13:30","nodeType":"ErrorDefinition","parameters":{"id":12341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"mutability":"mutable","name":"identifier","nameLocation":"2031:10:30","nodeType":"VariableDeclaration","scope":12342,"src":"2023:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2022:20:30"},"src":"2003:40:30"},{"documentation":{"id":12343,"nodeType":"StructuredDocumentation","src":"2049:74:30","text":"@notice Thrown when the implementation is not a valid {Cloneable} base"},"errorSelector":"d3dd3012","id":12347,"name":"NotCloneable","nameLocation":"2134:12:30","nodeType":"ErrorDefinition","parameters":{"id":12346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12345,"mutability":"mutable","name":"implementation","nameLocation":"2155:14:30","nodeType":"VariableDeclaration","scope":12347,"src":"2147:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12344,"name":"address","nodeType":"ElementaryTypeName","src":"2147:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2146:24:30"},"src":"2128:43:30"},{"constant":false,"documentation":{"id":12348,"nodeType":"StructuredDocumentation","src":"2177:48:30","text":"@notice The registry of base implementations"},"id":12353,"mutability":"mutable","name":"_bases","nameLocation":"2268:6:30","nodeType":"VariableDeclaration","scope":12680,"src":"2230:44:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"},"typeName":{"id":12352,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2238:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2230:29:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12351,"nodeType":"UserDefinedTypeName","pathNode":{"id":12350,"name":"Cloneable","nameLocations":["2249:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"2249:9:30"},"referencedDeclaration":17720,"src":"2249:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}},"visibility":"private"},{"constant":false,"documentation":{"id":12354,"nodeType":"StructuredDocumentation","src":"2281:43:30","text":"@notice The registry of deployed clones"},"id":12359,"mutability":"mutable","name":"_clones","nameLocation":"2363:7:30","nodeType":"VariableDeclaration","scope":12680,"src":"2329:41:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone)"},"typeName":{"id":12358,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2337:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2329:25:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12357,"nodeType":"UserDefinedTypeName","pathNode":{"id":12356,"name":"Clone","nameLocations":["2348:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":12306,"src":"2348:5:30"},"referencedDeclaration":12306,"src":"2348:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage_ptr","typeString":"struct BoostRegistry.Clone"}}},"visibility":"private"},{"constant":false,"documentation":{"id":12360,"nodeType":"StructuredDocumentation","src":"2377:62:30","text":"@notice The registry of clones created by a given deployer"},"id":12365,"mutability":"mutable","name":"_deployedClones","nameLocation":"2482:15:30","nodeType":"VariableDeclaration","scope":12680,"src":"2444:53:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[])"},"typeName":{"id":12364,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12361,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2444:29:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":12362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2463:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12363,"nodeType":"ArrayTypeName","src":"2463:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"visibility":"private"},{"body":{"id":12387,"nodeType":"Block","src":"2713:168:30","statements":[{"condition":{"id":12379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2727:74:30","subExpression":{"arguments":[{"expression":{"arguments":[{"id":12375,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"2778:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}],"id":12374,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2773:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Cloneable_$17720","typeString":"type(contract Cloneable)"}},"id":12377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2789:11:30","memberName":"interfaceId","nodeType":"MemberAccess","src":"2773:27:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":12371,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"2738:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12370,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"2728:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2755:17:30","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"2728:44:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":12378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:73:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12385,"nodeType":"IfStatement","src":"2723:141:30","trueBody":{"id":12384,"nodeType":"Block","src":"2803:61:30","statements":[{"errorCall":{"arguments":[{"id":12381,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"2837:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12380,"name":"NotCloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"2824:12:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":12382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2824:29:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12383,"nodeType":"RevertStatement","src":"2817:36:30"}]}},{"id":12386,"nodeType":"PlaceholderStatement","src":"2873:1:30"}]},"documentation":{"id":12366,"nodeType":"StructuredDocumentation","src":"2504:155:30","text":"@notice A modifier to ensure the given address holds a valid {Cloneable} base\n @param implementation_ The address of the implementation to check"},"id":12388,"name":"onlyCloneables","nameLocation":"2673:14:30","nodeType":"ModifierDefinition","parameters":{"id":12369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12368,"mutability":"mutable","name":"implementation_","nameLocation":"2696:15:30","nodeType":"VariableDeclaration","scope":12388,"src":"2688:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12367,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2687:25:30"},"src":"2664:217:30","virtual":false,"visibility":"internal"},{"body":{"id":12440,"nodeType":"Block","src":"3548:285:30","statements":[{"assignments":[12403],"declarations":[{"constant":false,"id":12403,"mutability":"mutable","name":"identifier","nameLocation":"3566:10:30","nodeType":"VariableDeclaration","scope":12440,"src":"3558:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3558:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12408,"initialValue":{"arguments":[{"id":12405,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"3593:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12406,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"3600:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12404,"name":"getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12659,"src":"3579:13:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_string_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,string calldata) pure returns (bytes32)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3579:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3558:48:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":12411,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12353,"src":"3629:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12413,"indexExpression":{"id":12412,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3636:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3629:18:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3621:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12409,"name":"address","nodeType":"ElementaryTypeName","src":"3621:7:30","typeDescriptions":{}}},"id":12414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3621:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3660:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3652:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12415,"name":"address","nodeType":"ElementaryTypeName","src":"3652:7:30","typeDescriptions":{}}},"id":12418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3621:41:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12425,"nodeType":"IfStatement","src":"3617:90:30","trueBody":{"errorCall":{"arguments":[{"id":12421,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"3689:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12422,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3696:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12420,"name":"AlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"3671:17:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure"}},"id":12423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3671:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12424,"nodeType":"RevertStatement","src":"3664:43:30"}},{"expression":{"id":12432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12426,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12353,"src":"3717:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12428,"indexExpression":{"id":12427,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3724:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3717:18:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12430,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12396,"src":"3748:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12429,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"3738:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3738:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"src":"3717:47:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12433,"nodeType":"ExpressionStatement","src":"3717:47:30"},{"eventCall":{"arguments":[{"id":12435,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"3791:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12436,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3798:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12437,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12396,"src":"3810:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12434,"name":"Registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12316,"src":"3780:10:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_RegistryType_$12294_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32,address)"}},"id":12438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:46:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12439,"nodeType":"EmitStatement","src":"3775:51:30"}]},"documentation":{"id":12389,"nodeType":"StructuredDocumentation","src":"2887:509:30","text":"@notice Register a new base implementation of a given type\n @param type_ The base type for the implementation\n @param name_ A name for the implementation (must be unique within the given type)\n @param implementation_ The address of the implementation contract\n @dev This function will either emit a `Registered` event or revert if the identifier has already been registered\n @dev The given address must implement the given type interface (See {ERC165-supportsInterface})"},"functionSelector":"d12dd481","id":12441,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12399,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12396,"src":"3527:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12400,"kind":"modifierInvocation","modifierName":{"id":12398,"name":"onlyCloneables","nameLocations":["3512:14:30"],"nodeType":"IdentifierPath","referencedDeclaration":12388,"src":"3512:14:30"},"nodeType":"ModifierInvocation","src":"3512:31:30"}],"name":"register","nameLocation":"3410:8:30","nodeType":"FunctionDefinition","parameters":{"id":12397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12392,"mutability":"mutable","name":"type_","nameLocation":"3432:5:30","nodeType":"VariableDeclaration","scope":12441,"src":"3419:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12391,"nodeType":"UserDefinedTypeName","pathNode":{"id":12390,"name":"RegistryType","nameLocations":["3419:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"3419:12:30"},"referencedDeclaration":12294,"src":"3419:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12394,"mutability":"mutable","name":"name_","nameLocation":"3455:5:30","nodeType":"VariableDeclaration","scope":12441,"src":"3439:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12393,"name":"string","nodeType":"ElementaryTypeName","src":"3439:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12396,"mutability":"mutable","name":"implementation_","nameLocation":"3470:15:30","nodeType":"VariableDeclaration","scope":12441,"src":"3462:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12395,"name":"address","nodeType":"ElementaryTypeName","src":"3462:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3418:68:30"},"returnParameters":{"id":12401,"nodeType":"ParameterList","parameters":[],"src":"3548:0:30"},"scope":12680,"src":"3401:432:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12533,"nodeType":"Block","src":"4512:713:30","statements":[{"expression":{"id":12476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12459,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"4565:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":12466,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"4650:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12467,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"4657:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12468,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"4664:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":12469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4671:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4675:6:30","memberName":"sender","nodeType":"MemberAccess","src":"4671:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12464,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4633:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4637:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"4633:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:49:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12463,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4623:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:60:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12473,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"4685:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12461,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"4598:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4604:18:30","memberName":"cloneAndInitialize","nodeType":"MemberAccess","referencedDeclaration":17651,"src":"4598:24:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address,bytes32,bytes memory) returns (address)"}},"id":12474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4598:93:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12460,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"4588:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:104:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"src":"4565:127:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12477,"nodeType":"ExpressionStatement","src":"4565:127:30"},{"assignments":[12479],"declarations":[{"constant":false,"id":12479,"mutability":"mutable","name":"identifier","nameLocation":"4762:10:30","nodeType":"VariableDeclaration","scope":12533,"src":"4754:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4754:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12487,"initialValue":{"arguments":[{"id":12481,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"4794:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12482,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"4801:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12483,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4808:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4812:6:30","memberName":"sender","nodeType":"MemberAccess","src":"4808:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12485,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"4820:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12480,"name":"getCloneIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12637,"src":"4775:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_address_$_t_address_$_t_string_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,address,address,string calldata) pure returns (bytes32)"}},"id":12486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:51:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4754:72:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"baseExpression":{"id":12490,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"4848:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12492,"indexExpression":{"id":12491,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"4856:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4848:19:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"id":12493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4868:8:30","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":12301,"src":"4848:28:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4840:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12488,"name":"address","nodeType":"ElementaryTypeName","src":"4840:7:30","typeDescriptions":{}}},"id":12494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4840:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4889:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4881:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12495,"name":"address","nodeType":"ElementaryTypeName","src":"4881:7:30","typeDescriptions":{}}},"id":12498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4840:51:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12505,"nodeType":"IfStatement","src":"4836:100:30","trueBody":{"errorCall":{"arguments":[{"id":12501,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"4918:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12502,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"4925:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12500,"name":"AlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"4900:17:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure"}},"id":12503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4900:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12504,"nodeType":"RevertStatement","src":"4893:43:30"}},{"expression":{"arguments":[{"id":12511,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"5036:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"id":12506,"name":"_deployedClones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12365,"src":"5003:15:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[] storage ref)"}},"id":12509,"indexExpression":{"expression":{"id":12507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5019:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5023:6:30","memberName":"sender","nodeType":"MemberAccess","src":"5019:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5003:27:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5031:4:30","memberName":"push","nodeType":"MemberAccess","src":"5003:32:30","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5003:44:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12513,"nodeType":"ExpressionStatement","src":"5003:44:30"},{"expression":{"id":12524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12514,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"5057:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12516,"indexExpression":{"id":12515,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"5065:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5057:19:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12518,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"5096:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12519,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"5113:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},{"expression":{"id":12520,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5133:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5137:6:30","memberName":"sender","nodeType":"MemberAccess","src":"5133:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12522,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"5151:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12517,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12306,"src":"5079:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Clone_$12306_storage_ptr_$","typeString":"type(struct BoostRegistry.Clone storage pointer)"}},"id":12523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5086:8:30","5103:8:30","5123:8:30","5145:4:30"],"names":["baseType","instance","deployer","name"],"nodeType":"FunctionCall","src":"5079:79:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"src":"5057:101:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"id":12525,"nodeType":"ExpressionStatement","src":"5057:101:30"},{"eventCall":{"arguments":[{"id":12527,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"5183:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12528,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"5190:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12529,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"5202:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12530,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"5209:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12526,"name":"Deployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12329,"src":"5174:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_RegistryType_$12294_$_t_bytes32_$_t_address_$_t_contract$_Cloneable_$17720_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32,address,contract Cloneable)"}},"id":12531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5174:44:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12532,"nodeType":"EmitStatement","src":"5169:49:30"}]},"documentation":{"id":12442,"nodeType":"StructuredDocumentation","src":"3839:488:30","text":"@notice Deploy a new instance of a registered base implementation\n @param type_ The type of base implementation to be cloned\n @param base_ The address of the base implementation to clone\n @param name_ The display name for the clone\n @param data_ The data payload for the cloned instance's initializer\n @return instance The address of the deployed instance\n @dev This function will either emit a `Deployed` event and return the clone or revert"},"functionSelector":"fd97064b","id":12534,"implemented":true,"kind":"function","modifiers":[{"id":12454,"kind":"modifierInvocation","modifierName":{"id":12453,"name":"nonReentrant","nameLocations":["4458:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"4458:12:30"},"nodeType":"ModifierInvocation","src":"4458:12:30"}],"name":"deployClone","nameLocation":"4341:11:30","nodeType":"FunctionDefinition","parameters":{"id":12452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12445,"mutability":"mutable","name":"type_","nameLocation":"4366:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4353:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12444,"nodeType":"UserDefinedTypeName","pathNode":{"id":12443,"name":"RegistryType","nameLocations":["4353:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"4353:12:30"},"referencedDeclaration":12294,"src":"4353:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12447,"mutability":"mutable","name":"base_","nameLocation":"4381:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4373:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12446,"name":"address","nodeType":"ElementaryTypeName","src":"4373:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12449,"mutability":"mutable","name":"name_","nameLocation":"4404:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4388:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12448,"name":"string","nodeType":"ElementaryTypeName","src":"4388:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12451,"mutability":"mutable","name":"data_","nameLocation":"4426:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4411:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12450,"name":"bytes","nodeType":"ElementaryTypeName","src":"4411:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4352:80:30"},"returnParameters":{"id":12458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12457,"mutability":"mutable","name":"instance","nameLocation":"4498:8:30","nodeType":"VariableDeclaration","scope":12534,"src":"4488:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12456,"nodeType":"UserDefinedTypeName","pathNode":{"id":12455,"name":"Cloneable","nameLocations":["4488:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"4488:9:30"},"referencedDeclaration":17720,"src":"4488:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"4487:20:30"},"scope":12680,"src":"4332:893:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12563,"nodeType":"Block","src":"5636:139:30","statements":[{"expression":{"id":12547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12543,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"5646:14:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12544,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12353,"src":"5663:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12546,"indexExpression":{"id":12545,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12537,"src":"5670:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5663:19:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"src":"5646:36:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12548,"nodeType":"ExpressionStatement","src":"5646:36:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12551,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"5704:14:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5696:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12549,"name":"address","nodeType":"ElementaryTypeName","src":"5696:7:30","typeDescriptions":{}}},"id":12552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5696:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5731:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5723:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12553,"name":"address","nodeType":"ElementaryTypeName","src":"5723:7:30","typeDescriptions":{}}},"id":12556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5723:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5696:37:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12562,"nodeType":"IfStatement","src":"5692:76:30","trueBody":{"errorCall":{"arguments":[{"id":12559,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12537,"src":"5756:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12558,"name":"NotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"5742:13:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":12560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5742:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12561,"nodeType":"RevertStatement","src":"5735:33:30"}}]},"documentation":{"id":12535,"nodeType":"StructuredDocumentation","src":"5231:301:30","text":"@notice Get the address of a registered base implementation\n @param identifier_ The unique identifier for the implementation (see {getIdentifier})\n @return implementation The address of the implementation\n @dev This function will revert if the implementation is not registered"},"functionSelector":"83f38859","id":12564,"implemented":true,"kind":"function","modifiers":[],"name":"getBaseImplementation","nameLocation":"5546:21:30","nodeType":"FunctionDefinition","parameters":{"id":12538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12537,"mutability":"mutable","name":"identifier_","nameLocation":"5576:11:30","nodeType":"VariableDeclaration","scope":12564,"src":"5568:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5568:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5567:21:30"},"returnParameters":{"id":12542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12541,"mutability":"mutable","name":"implementation","nameLocation":"5620:14:30","nodeType":"VariableDeclaration","scope":12564,"src":"5610:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12540,"nodeType":"UserDefinedTypeName","pathNode":{"id":12539,"name":"Cloneable","nameLocations":["5610:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"5610:9:30"},"referencedDeclaration":17720,"src":"5610:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"5609:26:30"},"scope":12680,"src":"5537:238:30","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12594,"nodeType":"Block","src":"6088:131:30","statements":[{"expression":{"id":12577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12573,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"6098:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12574,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"6106:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12576,"indexExpression":{"id":12575,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12567,"src":"6114:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6106:20:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"src":"6098:28:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"id":12578,"nodeType":"ExpressionStatement","src":"6098:28:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12581,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"6148:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"id":12582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6154:8:30","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":12301,"src":"6148:14:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6140:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12579,"name":"address","nodeType":"ElementaryTypeName","src":"6140:7:30","typeDescriptions":{}}},"id":12583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6175:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6167:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12584,"name":"address","nodeType":"ElementaryTypeName","src":"6167:7:30","typeDescriptions":{}}},"id":12587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6167:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6140:37:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12593,"nodeType":"IfStatement","src":"6136:76:30","trueBody":{"errorCall":{"arguments":[{"id":12590,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12567,"src":"6200:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12589,"name":"NotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"6186:13:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":12591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12592,"nodeType":"RevertStatement","src":"6179:33:30"}}]},"documentation":{"id":12565,"nodeType":"StructuredDocumentation","src":"5781:220:30","text":"@notice Get the address of a deployed clone by its identifier\n @param identifier_ The unique identifier for the deployed clone (see {getCloneIdentifier})\n @return clone The address of the deployed clone"},"functionSelector":"3aaf1626","id":12595,"implemented":true,"kind":"function","modifiers":[],"name":"getClone","nameLocation":"6015:8:30","nodeType":"FunctionDefinition","parameters":{"id":12568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12567,"mutability":"mutable","name":"identifier_","nameLocation":"6032:11:30","nodeType":"VariableDeclaration","scope":12595,"src":"6024:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6024:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6023:21:30"},"returnParameters":{"id":12572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12571,"mutability":"mutable","name":"clone","nameLocation":"6081:5:30","nodeType":"VariableDeclaration","scope":12595,"src":"6068:18:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone"},"typeName":{"id":12570,"nodeType":"UserDefinedTypeName","pathNode":{"id":12569,"name":"Clone","nameLocations":["6068:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":12306,"src":"6068:5:30"},"referencedDeclaration":12306,"src":"6068:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage_ptr","typeString":"struct BoostRegistry.Clone"}},"visibility":"internal"}],"src":"6067:20:30"},"scope":12680,"src":"6006:213:30","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12608,"nodeType":"Block","src":"6672:50:30","statements":[{"expression":{"baseExpression":{"id":12604,"name":"_deployedClones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12365,"src":"6689:15:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[] storage ref)"}},"id":12606,"indexExpression":{"id":12605,"name":"deployer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12598,"src":"6705:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6689:26:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":12603,"id":12607,"nodeType":"Return","src":"6682:33:30"}]},"documentation":{"id":12596,"nodeType":"StructuredDocumentation","src":"6225:363:30","text":"@notice Get the list of identifiers of deployed clones for a given deployer\n @param deployer_ The address of the deployer\n @return clones The list of deployed clones for the given deployer\n @dev WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic."},"functionSelector":"792aa01c","id":12609,"implemented":true,"kind":"function","modifiers":[],"name":"getClones","nameLocation":"6602:9:30","nodeType":"FunctionDefinition","parameters":{"id":12599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12598,"mutability":"mutable","name":"deployer_","nameLocation":"6620:9:30","nodeType":"VariableDeclaration","scope":12609,"src":"6612:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12597,"name":"address","nodeType":"ElementaryTypeName","src":"6612:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6611:19:30"},"returnParameters":{"id":12603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12609,"src":"6654:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6654:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12601,"nodeType":"ArrayTypeName","src":"6654:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6653:18:30"},"scope":12680,"src":"6593:129:30","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12636,"nodeType":"Block","src":"7261:99:30","statements":[{"expression":{"arguments":[{"id":12625,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12613,"src":"7293:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"arguments":[{"arguments":[{"id":12629,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12615,"src":"7327:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12630,"name":"deployer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12617,"src":"7334:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12631,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"7345:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":12627,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7310:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7314:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"7310:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7310:41:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12626,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7300:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7300:52:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12624,"name":"_getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"7278:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (bytes32)"}},"id":12634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7278:75:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12623,"id":12635,"nodeType":"Return","src":"7271:82:30"}]},"documentation":{"id":12610,"nodeType":"StructuredDocumentation","src":"6728:354:30","text":"@notice Build the identifier for a clone of a base implementation\n @param type_ The base type for the implementation\n @param base_ The address of the base implementation\n @param deployer_ The address of the deployer\n @param name_ The display name of the clone\n @return identifier The unique identifier for the clone"},"functionSelector":"acc83fc8","id":12637,"implemented":true,"kind":"function","modifiers":[],"name":"getCloneIdentifier","nameLocation":"7096:18:30","nodeType":"FunctionDefinition","parameters":{"id":12620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12613,"mutability":"mutable","name":"type_","nameLocation":"7128:5:30","nodeType":"VariableDeclaration","scope":12637,"src":"7115:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12612,"nodeType":"UserDefinedTypeName","pathNode":{"id":12611,"name":"RegistryType","nameLocations":["7115:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"7115:12:30"},"referencedDeclaration":12294,"src":"7115:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12615,"mutability":"mutable","name":"base_","nameLocation":"7143:5:30","nodeType":"VariableDeclaration","scope":12637,"src":"7135:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12614,"name":"address","nodeType":"ElementaryTypeName","src":"7135:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12617,"mutability":"mutable","name":"deployer_","nameLocation":"7158:9:30","nodeType":"VariableDeclaration","scope":12637,"src":"7150:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12616,"name":"address","nodeType":"ElementaryTypeName","src":"7150:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12619,"mutability":"mutable","name":"name_","nameLocation":"7185:5:30","nodeType":"VariableDeclaration","scope":12637,"src":"7169:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12618,"name":"string","nodeType":"ElementaryTypeName","src":"7169:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7114:77:30"},"returnParameters":{"id":12623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12622,"mutability":"mutable","name":"identifier","nameLocation":"7245:10:30","nodeType":"VariableDeclaration","scope":12637,"src":"7237:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7237:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7236:20:30"},"scope":12680,"src":"7087:273:30","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12658,"nodeType":"Block","src":"7718:81:30","statements":[{"expression":{"arguments":[{"id":12649,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12641,"src":"7750:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"arguments":[{"arguments":[{"id":12653,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12643,"src":"7784:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":12651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7767:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7771:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"7767:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7767:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12650,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7757:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:34:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12648,"name":"_getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"7735:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (bytes32)"}},"id":12656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7735:57:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12647,"id":12657,"nodeType":"Return","src":"7728:64:30"}]},"documentation":{"id":12638,"nodeType":"StructuredDocumentation","src":"7366:240:30","text":"@notice Build the identifier for a base implementation\n @param type_ The base type for the implementation\n @param name_ The name of the implementation\n @return identifier The unique identifier for the implementation"},"functionSelector":"f1668792","id":12659,"implemented":true,"kind":"function","modifiers":[],"name":"getIdentifier","nameLocation":"7620:13:30","nodeType":"FunctionDefinition","parameters":{"id":12644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12641,"mutability":"mutable","name":"type_","nameLocation":"7647:5:30","nodeType":"VariableDeclaration","scope":12659,"src":"7634:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12640,"nodeType":"UserDefinedTypeName","pathNode":{"id":12639,"name":"RegistryType","nameLocations":["7634:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"7634:12:30"},"referencedDeclaration":12294,"src":"7634:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12643,"mutability":"mutable","name":"name_","nameLocation":"7670:5:30","nodeType":"VariableDeclaration","scope":12659,"src":"7654:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12642,"name":"string","nodeType":"ElementaryTypeName","src":"7654:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7633:43:30"},"returnParameters":{"id":12647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12646,"mutability":"mutable","name":"identifier","nameLocation":"7706:10:30","nodeType":"VariableDeclaration","scope":12659,"src":"7698:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7698:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7697:20:30"},"scope":12680,"src":"7611:188:30","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12678,"nodeType":"Block","src":"8165:65:30","statements":[{"expression":{"arguments":[{"arguments":[{"id":12673,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12663,"src":"8209:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12674,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12665,"src":"8216:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12671,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8192:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8196:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"8192:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12670,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8182:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8182:41:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12669,"id":12677,"nodeType":"Return","src":"8175:48:30"}]},"documentation":{"id":12660,"nodeType":"StructuredDocumentation","src":"7805:253:30","text":"@notice Build a unique identifier for a given type and hash\n @param type_ The base type for the implementation\n @param hash_ The unique hash for the implementation\n @return identifier The unique identifier for the implementation"},"id":12679,"implemented":true,"kind":"function","modifiers":[],"name":"_getIdentifier","nameLocation":"8072:14:30","nodeType":"FunctionDefinition","parameters":{"id":12666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12663,"mutability":"mutable","name":"type_","nameLocation":"8100:5:30","nodeType":"VariableDeclaration","scope":12679,"src":"8087:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12662,"nodeType":"UserDefinedTypeName","pathNode":{"id":12661,"name":"RegistryType","nameLocations":["8087:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"8087:12:30"},"referencedDeclaration":12294,"src":"8087:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12665,"mutability":"mutable","name":"hash_","nameLocation":"8115:5:30","nodeType":"VariableDeclaration","scope":12679,"src":"8107:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8107:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8086:35:30"},"returnParameters":{"id":12669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12668,"mutability":"mutable","name":"identifier","nameLocation":"8153:10:30","nodeType":"VariableDeclaration","scope":12679,"src":"8145:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8145:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8144:20:30"},"scope":12680,"src":"8063:167:30","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12681,"src":"682:7550:30","usedErrors":[11020,12337,12342,12347],"usedEvents":[12316,12329]}],"src":"36:8197:30"},"id":30},"contracts/actions/Action.sol":{"ast":{"absolutePath":"contracts/actions/Action.sol","exportedSymbols":{"Action":[12758],"Cloneable":[17720],"Validator":[18282]},"id":12759,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12682,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:31"},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12684,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12759,"sourceUnit":17721,"src":"62:57:31","symbolAliases":[{"foreign":{"id":12683,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"70:9:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":12686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12759,"sourceUnit":18283,"src":"120:61:31","symbolAliases":[{"foreign":{"id":12685,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"128:9:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":12688,"name":"Cloneable","nameLocations":["460:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"460:9:31"},"id":12689,"nodeType":"InheritanceSpecifier","src":"460:9:31"}],"canonicalName":"Action","contractDependencies":[],"contractKind":"contract","documentation":{"id":12687,"nodeType":"StructuredDocumentation","src":"183:249:31","text":"@title Boost Action\n @notice Abstract contract for a generic Action within the Boost protocol\n @dev Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":12758,"linearizedBaseContracts":[12758,17720,2845,2857,9225],"name":"Action","nameLocation":"450:6:31","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":12690,"nodeType":"StructuredDocumentation","src":"476:145:31","text":"@notice Emitted when the action is executed by a proxy.\n @dev The `data` field should contain the return data from the action, if any."},"eventSelector":"1f92ef25aeecc310b452a1367dc5386413b9e2a8ef881251566fae23cd7e73f5","id":12700,"name":"ActionExecuted","nameLocation":"632:14:31","nodeType":"EventDefinition","parameters":{"id":12699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12692,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"663:8:31","nodeType":"VariableDeclaration","scope":12700,"src":"647:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12691,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12694,"indexed":false,"mutability":"mutable","name":"caller","nameLocation":"681:6:31","nodeType":"VariableDeclaration","scope":12700,"src":"673:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12693,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12696,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"694:7:31","nodeType":"VariableDeclaration","scope":12700,"src":"689:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12695,"name":"bool","nodeType":"ElementaryTypeName","src":"689:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12698,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"709:4:31","nodeType":"VariableDeclaration","scope":12700,"src":"703:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12697,"name":"bytes","nodeType":"ElementaryTypeName","src":"703:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"646:68:31"},"src":"626:89:31"},{"documentation":{"id":12701,"nodeType":"StructuredDocumentation","src":"721:65:31","text":"@notice Thrown when the `execute` function is not implemented"},"errorSelector":"e1ebb83b","id":12703,"name":"ExecuteNotImplemented","nameLocation":"797:21:31","nodeType":"ErrorDefinition","parameters":{"id":12702,"nodeType":"ParameterList","parameters":[],"src":"818:2:31"},"src":"791:30:31"},{"anonymous":false,"documentation":{"id":12704,"nodeType":"StructuredDocumentation","src":"827:141:31","text":"@notice Emitted when the action is validated\n @dev The `data` field should contain implementation-specific context, if applicable."},"eventSelector":"2de47361bfd500dc4a9050a3ff72d4eab6a58f4772452004a90555302be271b1","id":12712,"name":"ActionValidated","nameLocation":"979:15:31","nodeType":"EventDefinition","parameters":{"id":12711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12706,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"1011:4:31","nodeType":"VariableDeclaration","scope":12712,"src":"995:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12705,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12708,"indexed":false,"mutability":"mutable","name":"isValidated","nameLocation":"1022:11:31","nodeType":"VariableDeclaration","scope":12712,"src":"1017:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12707,"name":"bool","nodeType":"ElementaryTypeName","src":"1017:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12710,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1041:4:31","nodeType":"VariableDeclaration","scope":12712,"src":"1035:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12709,"name":"bytes","nodeType":"ElementaryTypeName","src":"1035:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"994:52:31"},"src":"973:74:31"},{"constant":false,"documentation":{"id":12713,"nodeType":"StructuredDocumentation","src":"1053:91:31","text":"@notice The validator for the action (which may be the action itself where appropriate)"},"functionSelector":"393df8cb","id":12716,"mutability":"immutable","name":"VALIDATOR","nameLocation":"1176:9:31","nodeType":"VariableDeclaration","scope":12758,"src":"1149:36:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"},"typeName":{"id":12715,"nodeType":"UserDefinedTypeName","pathNode":{"id":12714,"name":"Validator","nameLocations":["1149:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"1149:9:31"},"referencedDeclaration":18282,"src":"1149:9:31","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"visibility":"public"},{"documentation":{"id":12717,"nodeType":"StructuredDocumentation","src":"1192:167:31","text":"@notice Execute the action\n @param data_ The data payload for the action\n @return (success, data) A tuple of the success status and the returned data"},"functionSelector":"09c5eabe","id":12726,"implemented":false,"kind":"function","modifiers":[],"name":"execute","nameLocation":"1373:7:31","nodeType":"FunctionDefinition","parameters":{"id":12720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12719,"mutability":"mutable","name":"data_","nameLocation":"1396:5:31","nodeType":"VariableDeclaration","scope":12726,"src":"1381:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12718,"name":"bytes","nodeType":"ElementaryTypeName","src":"1381:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1380:22:31"},"returnParameters":{"id":12725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12726,"src":"1437:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12721,"name":"bool","nodeType":"ElementaryTypeName","src":"1437:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12726,"src":"1443:12:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12723,"name":"bytes","nodeType":"ElementaryTypeName","src":"1443:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1436:20:31"},"scope":12758,"src":"1364:93:31","stateMutability":"payable","virtual":true,"visibility":"external"},{"documentation":{"id":12727,"nodeType":"StructuredDocumentation","src":"1463:166:31","text":"@notice Prepare the action for execution and return the expected payload\n @param data_ The data payload for the action\n @return The prepared payload"},"functionSelector":"d7768c47","id":12734,"implemented":false,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"1643:7:31","nodeType":"FunctionDefinition","parameters":{"id":12730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12729,"mutability":"mutable","name":"data_","nameLocation":"1666:5:31","nodeType":"VariableDeclaration","scope":12734,"src":"1651:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12728,"name":"bytes","nodeType":"ElementaryTypeName","src":"1651:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1650:22:31"},"returnParameters":{"id":12733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12734,"src":"1699:12:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12731,"name":"bytes","nodeType":"ElementaryTypeName","src":"1699:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1698:14:31"},"scope":12758,"src":"1634:79:31","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":12756,"nodeType":"Block","src":"1851:103:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12744,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12737,"src":"1868:11:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12746,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"1888:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}],"id":12745,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1883:4:31","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1883:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Action_$12758","typeString":"type(contract Action)"}},"id":12748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1896:11:31","memberName":"interfaceId","nodeType":"MemberAccess","src":"1883:24:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1868:39:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12752,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12737,"src":"1935:11:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":12750,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1911:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Action_$12758_$","typeString":"type(contract super Action)"}},"id":12751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1917:17:31","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"1911:23:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":12753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:36:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1868:79:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12743,"id":12755,"nodeType":"Return","src":"1861:86:31"}]},"documentation":{"id":12735,"nodeType":"StructuredDocumentation","src":"1719:25:31","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":12757,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1758:17:31","nodeType":"FunctionDefinition","overrides":{"id":12740,"nodeType":"OverrideSpecifier","overrides":[{"id":12739,"name":"Cloneable","nameLocations":["1825:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1825:9:31"}],"src":"1816:19:31"},"parameters":{"id":12738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12737,"mutability":"mutable","name":"interfaceId","nameLocation":"1783:11:31","nodeType":"VariableDeclaration","scope":12757,"src":"1776:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12736,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1776:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1775:20:31"},"returnParameters":{"id":12743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12757,"src":"1845:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12741,"name":"bool","nodeType":"ElementaryTypeName","src":"1845:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1844:6:31"},"scope":12758,"src":"1749:205:31","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":12759,"src":"432:1524:31","usedErrors":[9117,9120,12703,17666,17669,17672],"usedEvents":[9125,12700,12712]}],"src":"36:1921:31"},"id":31},"contracts/actions/ContractAction.sol":{"ast":{"absolutePath":"contracts/actions/ContractAction.sol","exportedSymbols":{"Action":[12758],"Cloneable":[17720],"ContractAction":[12914],"ERC721":[9111]},"id":12915,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12760,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:32"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":12762,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12915,"sourceUnit":9112,"src":"62:49:32","symbolAliases":[{"foreign":{"id":12761,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"70:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12764,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12915,"sourceUnit":17721,"src":"113:57:32","symbolAliases":[{"foreign":{"id":12763,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"121:9:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":12766,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12915,"sourceUnit":12759,"src":"171:52:32","symbolAliases":[{"foreign":{"id":12765,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"179:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12767,"name":"Action","nameLocations":["252:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":12758,"src":"252:6:32"},"id":12768,"nodeType":"InheritanceSpecifier","src":"252:6:32"}],"canonicalName":"ContractAction","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":12914,"linearizedBaseContracts":[12914,12758,17720,2845,2857,9225],"name":"ContractAction","nameLocation":"234:14:32","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12769,"nodeType":"StructuredDocumentation","src":"265:67:32","text":"@notice Thrown when execution on a given chain is not supported"},"errorSelector":"180098f4","id":12773,"name":"TargetChainUnsupported","nameLocation":"343:22:32","nodeType":"ErrorDefinition","parameters":{"id":12772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12771,"mutability":"mutable","name":"targetChainId","nameLocation":"374:13:32","nodeType":"VariableDeclaration","scope":12773,"src":"366:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12770,"name":"uint256","nodeType":"ElementaryTypeName","src":"366:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"365:23:32"},"src":"337:52:32"},{"canonicalName":"ContractAction.InitPayload","documentation":{"id":12774,"nodeType":"StructuredDocumentation","src":"395:249:32","text":"@notice The payload for initializing a ContractAction\n @param target The target contract address\n @param selector The selector for the function to be called\n @param value The native token value to send with the function call"},"id":12783,"members":[{"constant":false,"id":12776,"mutability":"mutable","name":"chainId","nameLocation":"686:7:32","nodeType":"VariableDeclaration","scope":12783,"src":"678:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12775,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12778,"mutability":"mutable","name":"target","nameLocation":"711:6:32","nodeType":"VariableDeclaration","scope":12783,"src":"703:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12777,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12780,"mutability":"mutable","name":"selector","nameLocation":"734:8:32","nodeType":"VariableDeclaration","scope":12783,"src":"727:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12779,"name":"bytes4","nodeType":"ElementaryTypeName","src":"727:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12782,"mutability":"mutable","name":"value","nameLocation":"760:5:32","nodeType":"VariableDeclaration","scope":12783,"src":"752:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12781,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"656:11:32","nodeType":"StructDefinition","scope":12914,"src":"649:123:32","visibility":"public"},{"constant":false,"documentation":{"id":12784,"nodeType":"StructuredDocumentation","src":"778:31:32","text":"@notice The target chain ID"},"functionSelector":"9a8a0592","id":12786,"mutability":"mutable","name":"chainId","nameLocation":"829:7:32","nodeType":"VariableDeclaration","scope":12914,"src":"814:22:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12785,"name":"uint256","nodeType":"ElementaryTypeName","src":"814:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":12787,"nodeType":"StructuredDocumentation","src":"843:31:32","text":"@notice The target contract"},"functionSelector":"d4b83992","id":12789,"mutability":"mutable","name":"target","nameLocation":"894:6:32","nodeType":"VariableDeclaration","scope":12914,"src":"879:21:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12788,"name":"address","nodeType":"ElementaryTypeName","src":"879:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":12790,"nodeType":"StructuredDocumentation","src":"907:54:32","text":"@notice The selector for the function to be called"},"functionSelector":"ea3d508a","id":12792,"mutability":"mutable","name":"selector","nameLocation":"980:8:32","nodeType":"VariableDeclaration","scope":12914,"src":"966:22:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12791,"name":"bytes4","nodeType":"ElementaryTypeName","src":"966:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":false,"documentation":{"id":12793,"nodeType":"StructuredDocumentation","src":"995:65:32","text":"@notice The native token value to send with the function call"},"functionSelector":"3fa4f245","id":12795,"mutability":"mutable","name":"value","nameLocation":"1080:5:32","nodeType":"VariableDeclaration","scope":12914,"src":"1065:20:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12794,"name":"uint256","nodeType":"ElementaryTypeName","src":"1065:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":12801,"nodeType":"Block","src":"1106:39:32","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12798,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1116:20:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12800,"nodeType":"ExpressionStatement","src":"1116:22:32"}]},"id":12802,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12796,"nodeType":"ParameterList","parameters":[],"src":"1103:2:32"},"returnParameters":{"id":12797,"nodeType":"ParameterList","parameters":[],"src":"1106:0:32"},"scope":12914,"src":"1092:53:32","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":12820,"nodeType":"Block","src":"1336:62:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":12814,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12805,"src":"1369:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":12815,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12783,"src":"1377:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"id":12816,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1376:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}],"expression":{"id":12812,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1358:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1362:6:32","memberName":"decode","nodeType":"MemberAccess","src":"1358:10:32","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"id":12811,"name":"_initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12902,"src":"1346:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$12783_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12819,"nodeType":"ExpressionStatement","src":"1346:45:32"}]},"documentation":{"id":12803,"nodeType":"StructuredDocumentation","src":"1151:102:32","text":"@inheritdoc Cloneable\n @notice Initialize the contract with the owner and the required data"},"functionSelector":"439fab91","id":12821,"implemented":true,"kind":"function","modifiers":[{"id":12809,"kind":"modifierInvocation","modifierName":{"id":12808,"name":"initializer","nameLocations":["1324:11:32"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1324:11:32"},"nodeType":"ModifierInvocation","src":"1324:11:32"}],"name":"initialize","nameLocation":"1267:10:32","nodeType":"FunctionDefinition","overrides":{"id":12807,"nodeType":"OverrideSpecifier","overrides":[],"src":"1315:8:32"},"parameters":{"id":12806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12805,"mutability":"mutable","name":"data_","nameLocation":"1293:5:32","nodeType":"VariableDeclaration","scope":12821,"src":"1278:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12804,"name":"bytes","nodeType":"ElementaryTypeName","src":"1278:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1277:22:32"},"returnParameters":{"id":12810,"nodeType":"ParameterList","parameters":[],"src":"1336:0:32"},"scope":12914,"src":"1258:140:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12726],"body":{"id":12858,"nodeType":"Block","src":"1506:232:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12831,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"1520:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12832,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1531:5:32","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1537:7:32","memberName":"chainid","nodeType":"MemberAccess","src":"1531:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1520:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12839,"nodeType":"IfStatement","src":"1516:68:32","trueBody":{"errorCall":{"arguments":[{"id":12836,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"1576:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12835,"name":"TargetChainUnsupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12773,"src":"1553:22:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:31:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12838,"nodeType":"RevertStatement","src":"1546:38:32"}},{"assignments":[12841,12843],"declarations":[{"constant":false,"id":12841,"mutability":"mutable","name":"success","nameLocation":"1600:7:32","nodeType":"VariableDeclaration","scope":12858,"src":"1595:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12840,"name":"bool","nodeType":"ElementaryTypeName","src":"1595:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12843,"mutability":"mutable","name":"returnData","nameLocation":"1622:10:32","nodeType":"VariableDeclaration","scope":12858,"src":"1609:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12842,"name":"bytes","nodeType":"ElementaryTypeName","src":"1609:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12853,"initialValue":{"arguments":[{"arguments":[{"id":12849,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"1676:8:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12850,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12823,"src":"1686:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12848,"name":"_buildPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12913,"src":"1662:13:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4,bytes calldata) pure returns (bytes memory)"}},"id":12851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12844,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"1636:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1643:4:32","memberName":"call","nodeType":"MemberAccess","src":"1636:11:32","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12846,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"1655:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1636:25:32","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:57:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1594:99:32"},{"expression":{"components":[{"id":12854,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12841,"src":"1711:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12855,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"1720:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12856,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1710:21:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":12830,"id":12857,"nodeType":"Return","src":"1703:28:32"}]},"functionSelector":"09c5eabe","id":12859,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"1413:7:32","nodeType":"FunctionDefinition","overrides":{"id":12825,"nodeType":"OverrideSpecifier","overrides":[],"src":"1468:8:32"},"parameters":{"id":12824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12823,"mutability":"mutable","name":"data_","nameLocation":"1436:5:32","nodeType":"VariableDeclaration","scope":12859,"src":"1421:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12822,"name":"bytes","nodeType":"ElementaryTypeName","src":"1421:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1420:22:32"},"returnParameters":{"id":12830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12859,"src":"1486:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12826,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12859,"src":"1492:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12828,"name":"bytes","nodeType":"ElementaryTypeName","src":"1492:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1485:20:32"},"scope":12914,"src":"1404:334:32","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[12734],"body":{"id":12872,"nodeType":"Block","src":"1842:54:32","statements":[{"expression":{"arguments":[{"id":12868,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"1873:8:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12869,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12861,"src":"1883:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12867,"name":"_buildPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12913,"src":"1859:13:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4,bytes calldata) pure returns (bytes memory)"}},"id":12870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1859:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12866,"id":12871,"nodeType":"Return","src":"1852:37:32"}]},"functionSelector":"d7768c47","id":12873,"implemented":true,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"1753:7:32","nodeType":"FunctionDefinition","overrides":{"id":12863,"nodeType":"OverrideSpecifier","overrides":[],"src":"1803:8:32"},"parameters":{"id":12862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12861,"mutability":"mutable","name":"data_","nameLocation":"1776:5:32","nodeType":"VariableDeclaration","scope":12873,"src":"1761:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12860,"name":"bytes","nodeType":"ElementaryTypeName","src":"1761:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1760:22:32"},"returnParameters":{"id":12866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12865,"mutability":"mutable","name":"bytes_","nameLocation":"1834:6:32","nodeType":"VariableDeclaration","scope":12873,"src":"1821:19:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12864,"name":"bytes","nodeType":"ElementaryTypeName","src":"1821:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1820:21:32"},"scope":12914,"src":"1744:152:32","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":12901,"nodeType":"Block","src":"1983:135:32","statements":[{"expression":{"id":12884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12881,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"1993:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12882,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2003:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2009:7:32","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":12776,"src":"2003:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1993:23:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12885,"nodeType":"ExpressionStatement","src":"1993:23:32"},{"expression":{"id":12889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12886,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"2026:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12887,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2035:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2041:6:32","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":12778,"src":"2035:12:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2026:21:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12890,"nodeType":"ExpressionStatement","src":"2026:21:32"},{"expression":{"id":12894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12891,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"2057:8:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12892,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2068:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2074:8:32","memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":12780,"src":"2068:14:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2057:25:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":12895,"nodeType":"ExpressionStatement","src":"2057:25:32"},{"expression":{"id":12899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12896,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"2092:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12897,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2100:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2106:5:32","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12782,"src":"2100:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2092:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12900,"nodeType":"ExpressionStatement","src":"2092:19:32"}]},"id":12902,"implemented":true,"kind":"function","modifiers":[{"id":12879,"kind":"modifierInvocation","modifierName":{"id":12878,"name":"onlyInitializing","nameLocations":["1966:16:32"],"nodeType":"IdentifierPath","referencedDeclaration":9176,"src":"1966:16:32"},"nodeType":"ModifierInvocation","src":"1966:16:32"}],"name":"_initialize","nameLocation":"1911:11:32","nodeType":"FunctionDefinition","parameters":{"id":12877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12876,"mutability":"mutable","name":"init_","nameLocation":"1942:5:32","nodeType":"VariableDeclaration","scope":12902,"src":"1923:24:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload"},"typeName":{"id":12875,"nodeType":"UserDefinedTypeName","pathNode":{"id":12874,"name":"InitPayload","nameLocations":["1923:11:32"],"nodeType":"IdentifierPath","referencedDeclaration":12783,"src":"1923:11:32"},"referencedDeclaration":12783,"src":"1923:11:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_storage_ptr","typeString":"struct ContractAction.InitPayload"}},"visibility":"internal"}],"src":"1922:26:32"},"returnParameters":{"id":12880,"nodeType":"ParameterList","parameters":[],"src":"1983:0:32"},"scope":12914,"src":"1902:216:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12912,"nodeType":"Block","src":"2236:457:32","statements":[{"AST":{"nativeSrc":"2255:432:32","nodeType":"YulBlock","src":"2255:432:32","statements":[{"nativeSrc":"2315:36:32","nodeType":"YulVariableDeclaration","src":"2315:36:32","value":{"arguments":[{"kind":"number","nativeSrc":"2331:1:32","nodeType":"YulLiteral","src":"2331:1:32","type":"","value":"4"},{"name":"calldata_.length","nativeSrc":"2334:16:32","nodeType":"YulIdentifier","src":"2334:16:32"}],"functionName":{"name":"add","nativeSrc":"2327:3:32","nodeType":"YulIdentifier","src":"2327:3:32"},"nativeSrc":"2327:24:32","nodeType":"YulFunctionCall","src":"2327:24:32"},"variables":[{"name":"size","nativeSrc":"2319:4:32","nodeType":"YulTypedName","src":"2319:4:32","type":""}]},{"nativeSrc":"2364:22:32","nodeType":"YulAssignment","src":"2364:22:32","value":{"arguments":[{"kind":"number","nativeSrc":"2381:4:32","nodeType":"YulLiteral","src":"2381:4:32","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2375:5:32","nodeType":"YulIdentifier","src":"2375:5:32"},"nativeSrc":"2375:11:32","nodeType":"YulFunctionCall","src":"2375:11:32"},"variableNames":[{"name":"payload","nativeSrc":"2364:7:32","nodeType":"YulIdentifier","src":"2364:7:32"}]},{"expression":{"arguments":[{"name":"payload","nativeSrc":"2406:7:32","nodeType":"YulIdentifier","src":"2406:7:32"},{"name":"size","nativeSrc":"2415:4:32","nodeType":"YulIdentifier","src":"2415:4:32"}],"functionName":{"name":"mstore","nativeSrc":"2399:6:32","nodeType":"YulIdentifier","src":"2399:6:32"},"nativeSrc":"2399:21:32","nodeType":"YulFunctionCall","src":"2399:21:32"},"nativeSrc":"2399:21:32","nodeType":"YulExpressionStatement","src":"2399:21:32"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2440:4:32","nodeType":"YulLiteral","src":"2440:4:32","type":"","value":"0x40"},{"arguments":[{"name":"payload","nativeSrc":"2450:7:32","nodeType":"YulIdentifier","src":"2450:7:32"},{"arguments":[{"name":"size","nativeSrc":"2463:4:32","nodeType":"YulIdentifier","src":"2463:4:32"},{"kind":"number","nativeSrc":"2469:4:32","nodeType":"YulLiteral","src":"2469:4:32","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2459:3:32","nodeType":"YulIdentifier","src":"2459:3:32"},"nativeSrc":"2459:15:32","nodeType":"YulFunctionCall","src":"2459:15:32"}],"functionName":{"name":"add","nativeSrc":"2446:3:32","nodeType":"YulIdentifier","src":"2446:3:32"},"nativeSrc":"2446:29:32","nodeType":"YulFunctionCall","src":"2446:29:32"}],"functionName":{"name":"mstore","nativeSrc":"2433:6:32","nodeType":"YulIdentifier","src":"2433:6:32"},"nativeSrc":"2433:43:32","nodeType":"YulFunctionCall","src":"2433:43:32"},"nativeSrc":"2433:43:32","nodeType":"YulExpressionStatement","src":"2433:43:32"},{"expression":{"arguments":[{"arguments":[{"name":"payload","nativeSrc":"2570:7:32","nodeType":"YulIdentifier","src":"2570:7:32"},{"kind":"number","nativeSrc":"2579:4:32","nodeType":"YulLiteral","src":"2579:4:32","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2566:3:32","nodeType":"YulIdentifier","src":"2566:3:32"},"nativeSrc":"2566:18:32","nodeType":"YulFunctionCall","src":"2566:18:32"},{"name":"selector_","nativeSrc":"2586:9:32","nodeType":"YulIdentifier","src":"2586:9:32"}],"functionName":{"name":"mstore","nativeSrc":"2559:6:32","nodeType":"YulIdentifier","src":"2559:6:32"},"nativeSrc":"2559:37:32","nodeType":"YulFunctionCall","src":"2559:37:32"},"nativeSrc":"2559:37:32","nodeType":"YulExpressionStatement","src":"2559:37:32"},{"expression":{"arguments":[{"arguments":[{"name":"payload","nativeSrc":"2626:7:32","nodeType":"YulIdentifier","src":"2626:7:32"},{"kind":"number","nativeSrc":"2635:4:32","nodeType":"YulLiteral","src":"2635:4:32","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"2622:3:32","nodeType":"YulIdentifier","src":"2622:3:32"},"nativeSrc":"2622:18:32","nodeType":"YulFunctionCall","src":"2622:18:32"},{"name":"calldata_.offset","nativeSrc":"2642:16:32","nodeType":"YulIdentifier","src":"2642:16:32"},{"name":"calldata_.length","nativeSrc":"2660:16:32","nodeType":"YulIdentifier","src":"2660:16:32"}],"functionName":{"name":"calldatacopy","nativeSrc":"2609:12:32","nodeType":"YulIdentifier","src":"2609:12:32"},"nativeSrc":"2609:68:32","nodeType":"YulFunctionCall","src":"2609:68:32"},"nativeSrc":"2609:68:32","nodeType":"YulExpressionStatement","src":"2609:68:32"}]},"evmVersion":"cancun","externalReferences":[{"declaration":12906,"isOffset":false,"isSlot":false,"src":"2334:16:32","suffix":"length","valueSize":1},{"declaration":12906,"isOffset":false,"isSlot":false,"src":"2660:16:32","suffix":"length","valueSize":1},{"declaration":12906,"isOffset":true,"isSlot":false,"src":"2642:16:32","suffix":"offset","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2364:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2406:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2450:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2570:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2626:7:32","valueSize":1},{"declaration":12904,"isOffset":false,"isSlot":false,"src":"2586:9:32","valueSize":1}],"id":12911,"nodeType":"InlineAssembly","src":"2246:441:32"}]},"id":12913,"implemented":true,"kind":"function","modifiers":[],"name":"_buildPayload","nameLocation":"2133:13:32","nodeType":"FunctionDefinition","parameters":{"id":12907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12904,"mutability":"mutable","name":"selector_","nameLocation":"2154:9:32","nodeType":"VariableDeclaration","scope":12913,"src":"2147:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12903,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2147:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12906,"mutability":"mutable","name":"calldata_","nameLocation":"2180:9:32","nodeType":"VariableDeclaration","scope":12913,"src":"2165:24:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12905,"name":"bytes","nodeType":"ElementaryTypeName","src":"2165:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2146:44:32"},"returnParameters":{"id":12910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12909,"mutability":"mutable","name":"payload","nameLocation":"2227:7:32","nodeType":"VariableDeclaration","scope":12913,"src":"2214:20:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12908,"name":"bytes","nodeType":"ElementaryTypeName","src":"2214:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2213:22:32"},"scope":12914,"src":"2124:569:32","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12915,"src":"225:2470:32","usedErrors":[9117,9120,12703,12773,17666,17669,17672],"usedEvents":[9125,12700,12712]}],"src":"36:2660:32"},"id":32},"contracts/actions/ERC721MintAction.sol":{"ast":{"absolutePath":"contracts/actions/ERC721MintAction.sol","exportedSymbols":{"Action":[12758],"Cloneable":[17720],"ContractAction":[12914],"ERC721":[9111],"ERC721MintAction":[13099],"Validator":[18282]},"id":13100,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12916,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:33"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":12918,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":9112,"src":"62:49:33","symbolAliases":[{"foreign":{"id":12917,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"70:6:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":12920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":12759,"src":"113:52:33","symbolAliases":[{"foreign":{"id":12919,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"121:6:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12922,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":17721,"src":"166:57:33","symbolAliases":[{"foreign":{"id":12921,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"174:9:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/ContractAction.sol","file":"contracts/actions/ContractAction.sol","id":12924,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":12915,"src":"224:68:33","symbolAliases":[{"foreign":{"id":12923,"name":"ContractAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"232:14:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":12926,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":18283,"src":"293:61:33","symbolAliases":[{"foreign":{"id":12925,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"301:9:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12928,"name":"ContractAction","nameLocations":["842:14:33"],"nodeType":"IdentifierPath","referencedDeclaration":12914,"src":"842:14:33"},"id":12929,"nodeType":"InheritanceSpecifier","src":"842:14:33"},{"baseName":{"id":12930,"name":"Validator","nameLocations":["858:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"858:9:33"},"id":12931,"nodeType":"InheritanceSpecifier","src":"858:9:33"}],"canonicalName":"ERC721MintAction","contractDependencies":[],"contractKind":"contract","documentation":{"id":12927,"nodeType":"StructuredDocumentation","src":"356:457:33","text":"@title ERC721 Mint Action\n @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n @dev The action is expected to be prepared with the data payload for the minting of the token\n @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n @dev It is expected that the target contract has an externally accessible mint function whose selector"},"fullyImplemented":true,"id":13099,"linearizedBaseContracts":[13099,18282,12914,12758,17720,2845,2857,9225,6423],"name":"ERC721MintAction","nameLocation":"822:16:33","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":12932,"nodeType":"StructuredDocumentation","src":"874:127:33","text":"@notice The set of validated tokens\n @dev This is intended to prevent multiple validations against the same token ID"},"functionSelector":"bec95277","id":12936,"mutability":"mutable","name":"validated","nameLocation":"1038:9:33","nodeType":"VariableDeclaration","scope":13099,"src":"1006:41:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":12935,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1014:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1006:24:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12934,"name":"bool","nodeType":"ElementaryTypeName","src":"1025:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":12943,"nodeType":"Block","src":"1310:39:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12940,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1320:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12942,"nodeType":"ExpressionStatement","src":"1320:22:33"}]},"documentation":{"id":12937,"nodeType":"StructuredDocumentation","src":"1054:237:33","text":"@notice Construct the ERC721 Mint Action\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":12944,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12938,"nodeType":"ParameterList","parameters":[],"src":"1307:2:33"},"returnParameters":{"id":12939,"nodeType":"ParameterList","parameters":[],"src":"1310:0:33"},"scope":13099,"src":"1296:53:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[12821,17697],"body":{"id":12964,"nodeType":"Block","src":"1681:62:33","statements":[{"expression":{"arguments":[{"arguments":[{"id":12958,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12947,"src":"1714:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":12959,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12783,"src":"1722:11:33","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"id":12960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1721:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}],"expression":{"id":12956,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1703:3:33","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1707:6:33","memberName":"decode","nodeType":"MemberAccess","src":"1703:10:33","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"id":12955,"name":"_initialize","nodeType":"Identifier","overloadedDeclarations":[13098],"referencedDeclaration":13098,"src":"1691:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$12783_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":12962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1691:45:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12963,"nodeType":"ExpressionStatement","src":"1691:45:33"}]},"documentation":{"id":12945,"nodeType":"StructuredDocumentation","src":"1355:216:33","text":"@inheritdoc Cloneable\n @notice Initialize the contract with the owner and the required mint data\n @param data_ The data payload for the mint action `(address target, bytes4 selector, uint256 value)`"},"functionSelector":"439fab91","id":12965,"implemented":true,"kind":"function","modifiers":[{"id":12953,"kind":"modifierInvocation","modifierName":{"id":12952,"name":"initializer","nameLocations":["1669:11:33"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1669:11:33"},"nodeType":"ModifierInvocation","src":"1669:11:33"}],"name":"initialize","nameLocation":"1585:10:33","nodeType":"FunctionDefinition","overrides":{"id":12951,"nodeType":"OverrideSpecifier","overrides":[{"id":12949,"name":"Cloneable","nameLocations":["1642:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1642:9:33"},{"id":12950,"name":"ContractAction","nameLocations":["1653:14:33"],"nodeType":"IdentifierPath","referencedDeclaration":12914,"src":"1653:14:33"}],"src":"1633:35:33"},"parameters":{"id":12948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12947,"mutability":"mutable","name":"data_","nameLocation":"1611:5:33","nodeType":"VariableDeclaration","scope":12965,"src":"1596:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12946,"name":"bytes","nodeType":"ElementaryTypeName","src":"1596:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1595:22:33"},"returnParameters":{"id":12954,"nodeType":"ParameterList","parameters":[],"src":"1681:0:33"},"scope":13099,"src":"1576:167:33","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12859],"body":{"id":12984,"nodeType":"Block","src":"2116:85:33","statements":[{"expression":{"components":[{"id":12976,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12968,"src":"2127:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":12977,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12972,"src":"2134:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12978,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12974,"src":"2143:10:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2126:28:33","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_calldata_ptr_$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes calldata,bool,bytes memory)"}},"id":12980,"nodeType":"ExpressionStatement","src":"2126:28:33"},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12981,"name":"ExecuteNotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12703,"src":"2171:21:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2171:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12983,"nodeType":"RevertStatement","src":"2164:30:33"}]},"documentation":{"id":12966,"nodeType":"StructuredDocumentation","src":"1749:249:33","text":"@notice Execute the action (not yet implemented)\n @param data_ The data payload for the call (not used in this implementation)\n @return success The success status of the call\n @return returnData The return data from the call"},"functionSelector":"09c5eabe","id":12985,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"2012:7:33","nodeType":"FunctionDefinition","overrides":{"id":12970,"nodeType":"OverrideSpecifier","overrides":[],"src":"2059:8:33"},"parameters":{"id":12969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12968,"mutability":"mutable","name":"data_","nameLocation":"2035:5:33","nodeType":"VariableDeclaration","scope":12985,"src":"2020:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12967,"name":"bytes","nodeType":"ElementaryTypeName","src":"2020:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2019:22:33"},"returnParameters":{"id":12975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12972,"mutability":"mutable","name":"success","nameLocation":"2082:7:33","nodeType":"VariableDeclaration","scope":12985,"src":"2077:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12971,"name":"bool","nodeType":"ElementaryTypeName","src":"2077:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12974,"mutability":"mutable","name":"returnData","nameLocation":"2104:10:33","nodeType":"VariableDeclaration","scope":12985,"src":"2091:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12973,"name":"bytes","nodeType":"ElementaryTypeName","src":"2091:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2076:39:33"},"scope":13099,"src":"2003:198:33","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[12873],"body":{"id":12999,"nodeType":"Block","src":"2624:44:33","statements":[{"expression":{"arguments":[{"id":12996,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12988,"src":"2655:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12994,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2641:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721MintAction_$13099_$","typeString":"type(contract super ERC721MintAction)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2647:7:33","memberName":"prepare","nodeType":"MemberAccess","referencedDeclaration":12873,"src":"2641:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes calldata) view returns (bytes memory)"}},"id":12997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12993,"id":12998,"nodeType":"Return","src":"2634:27:33"}]},"documentation":{"id":12986,"nodeType":"StructuredDocumentation","src":"2207:329:33","text":"@notice Prepare the action for execution and return the expected payload\n @param data_ The ABI-encoded payload for the target contract call\n @return The encoded payload to be sent to the target contract\n @dev Note that the mint value is NOT included in the prepared payload but must be sent with the call"},"functionSelector":"d7768c47","id":13000,"implemented":true,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"2550:7:33","nodeType":"FunctionDefinition","overrides":{"id":12990,"nodeType":"OverrideSpecifier","overrides":[],"src":"2592:8:33"},"parameters":{"id":12989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12988,"mutability":"mutable","name":"data_","nameLocation":"2573:5:33","nodeType":"VariableDeclaration","scope":13000,"src":"2558:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12987,"name":"bytes","nodeType":"ElementaryTypeName","src":"2558:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2557:22:33"},"returnParameters":{"id":12993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13000,"src":"2610:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12991,"name":"bytes","nodeType":"ElementaryTypeName","src":"2610:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2609:14:33"},"scope":13099,"src":"2541:127:33","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[18258],"body":{"id":13059,"nodeType":"Block","src":"3250:344:33","statements":[{"assignments":[13010,13012],"declarations":[{"constant":false,"id":13010,"mutability":"mutable","name":"holder","nameLocation":"3269:6:33","nodeType":"VariableDeclaration","scope":13059,"src":"3261:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13009,"name":"address","nodeType":"ElementaryTypeName","src":"3261:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13012,"mutability":"mutable","name":"payload","nameLocation":"3290:7:33","nodeType":"VariableDeclaration","scope":13059,"src":"3277:20:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13011,"name":"bytes","nodeType":"ElementaryTypeName","src":"3277:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13022,"initialValue":{"arguments":[{"id":13015,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"3312:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3320:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13016,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:33","typeDescriptions":{}}},{"id":13019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3329:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":13018,"name":"bytes","nodeType":"ElementaryTypeName","src":"3329:5:33","typeDescriptions":{}}}],"id":13020,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3319:16:33","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}],"expression":{"id":13013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3301:3:33","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3305:6:33","memberName":"decode","nodeType":"MemberAccess","src":"3301:10:33","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3301:35:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3260:76:33"},{"assignments":[13024],"declarations":[{"constant":false,"id":13024,"mutability":"mutable","name":"tokenId","nameLocation":"3354:7:33","nodeType":"VariableDeclaration","scope":13059,"src":"3346:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13023,"name":"uint256","nodeType":"ElementaryTypeName","src":"3346:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13032,"initialValue":{"arguments":[{"arguments":[{"id":13029,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13012,"src":"3380:7:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3372:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3372:7:33","typeDescriptions":{}}},"id":13030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:16:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3364:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13025,"name":"uint256","nodeType":"ElementaryTypeName","src":"3364:7:33","typeDescriptions":{}}},"id":13031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3364:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3346:43:33"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13037,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"3427:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13034,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"3411:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13033,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"3404:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$9111_$","typeString":"type(contract ERC721)"}},"id":13035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC721_$9111","typeString":"contract ERC721"}},"id":13036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3419:7:33","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":8485,"src":"3404:22:33","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13039,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13010,"src":"3439:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3404:41:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3449:19:33","subExpression":{"baseExpression":{"id":13041,"name":"validated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12936,"src":"3450:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":13043,"indexExpression":{"id":13042,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"3460:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3450:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3404:64:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13057,"nodeType":"Block","src":"3551:37:33","statements":[{"expression":{"hexValue":"66616c7365","id":13055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3572:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13008,"id":13056,"nodeType":"Return","src":"3565:12:33"}]},"id":13058,"nodeType":"IfStatement","src":"3400:188:33","trueBody":{"id":13054,"nodeType":"Block","src":"3470:75:33","statements":[{"expression":{"id":13050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13046,"name":"validated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12936,"src":"3484:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":13048,"indexExpression":{"id":13047,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"3494:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3484:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3505:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3484:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13051,"nodeType":"ExpressionStatement","src":"3484:25:33"},{"expression":{"hexValue":"74727565","id":13052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3530:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13008,"id":13053,"nodeType":"Return","src":"3523:11:33"}]}}]},"documentation":{"id":13001,"nodeType":"StructuredDocumentation","src":"2674:482:33","text":"@inheritdoc Validator\n @notice Validate that the action has been completed successfully\n @param data_ The data payload for the action `(address holder, (uint256 tokenId))`\n @return success True if the action has been validated for the user\n @dev The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)\n @dev Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`"},"functionSelector":"c16e50ef","id":13060,"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"3170:8:33","nodeType":"FunctionDefinition","overrides":{"id":13005,"nodeType":"OverrideSpecifier","overrides":[],"src":"3218:8:33"},"parameters":{"id":13004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13003,"mutability":"mutable","name":"data_","nameLocation":"3194:5:33","nodeType":"VariableDeclaration","scope":13060,"src":"3179:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13002,"name":"bytes","nodeType":"ElementaryTypeName","src":"3179:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3178:22:33"},"returnParameters":{"id":13008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13007,"mutability":"mutable","name":"success","nameLocation":"3241:7:33","nodeType":"VariableDeclaration","scope":13060,"src":"3236:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13006,"name":"bool","nodeType":"ElementaryTypeName","src":"3236:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3235:14:33"},"scope":13099,"src":"3161:433:33","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[12757,18281],"body":{"id":13076,"nodeType":"Block","src":"3740:60:33","statements":[{"expression":{"arguments":[{"id":13073,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13063,"src":"3781:11:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13071,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3757:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721MintAction_$13099_$","typeString":"type(contract super ERC721MintAction)"}},"id":13072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3763:17:33","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18281,"src":"3757:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3757:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13070,"id":13075,"nodeType":"Return","src":"3750:43:33"}]},"documentation":{"id":13061,"nodeType":"StructuredDocumentation","src":"3600:25:33","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13077,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3639:17:33","nodeType":"FunctionDefinition","overrides":{"id":13067,"nodeType":"OverrideSpecifier","overrides":[{"id":13065,"name":"Action","nameLocations":["3706:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":12758,"src":"3706:6:33"},{"id":13066,"name":"Validator","nameLocations":["3714:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"3714:9:33"}],"src":"3697:27:33"},"parameters":{"id":13064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13063,"mutability":"mutable","name":"interfaceId","nameLocation":"3664:11:33","nodeType":"VariableDeclaration","scope":13077,"src":"3657:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13062,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3657:6:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3656:20:33"},"returnParameters":{"id":13070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13077,"src":"3734:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13068,"name":"bool","nodeType":"ElementaryTypeName","src":"3734:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3733:6:33"},"scope":13099,"src":"3630:170:33","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12902],"body":{"id":13097,"nodeType":"Block","src":"3888:79:33","statements":[{"expression":{"arguments":[{"id":13089,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"3916:5:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"expression":{"id":13086,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3898:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721MintAction_$13099_$","typeString":"type(contract super ERC721MintAction)"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3904:11:33","memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":12902,"src":"3898:17:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$12783_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":13090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3898:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13091,"nodeType":"ExpressionStatement","src":"3898:24:33"},{"expression":{"arguments":[{"expression":{"id":13093,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3949:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3953:6:33","memberName":"sender","nodeType":"MemberAccess","src":"3949:10:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13092,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3932:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3932:28:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13096,"nodeType":"ExpressionStatement","src":"3932:28:33"}]},"id":13098,"implemented":true,"kind":"function","modifiers":[{"id":13084,"kind":"modifierInvocation","modifierName":{"id":13083,"name":"onlyInitializing","nameLocations":["3871:16:33"],"nodeType":"IdentifierPath","referencedDeclaration":9176,"src":"3871:16:33"},"nodeType":"ModifierInvocation","src":"3871:16:33"}],"name":"_initialize","nameLocation":"3815:11:33","nodeType":"FunctionDefinition","overrides":{"id":13082,"nodeType":"OverrideSpecifier","overrides":[],"src":"3862:8:33"},"parameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"init_","nameLocation":"3846:5:33","nodeType":"VariableDeclaration","scope":13098,"src":"3827:24:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload"},"typeName":{"id":13079,"nodeType":"UserDefinedTypeName","pathNode":{"id":13078,"name":"InitPayload","nameLocations":["3827:11:33"],"nodeType":"IdentifierPath","referencedDeclaration":12783,"src":"3827:11:33"},"referencedDeclaration":12783,"src":"3827:11:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_storage_ptr","typeString":"struct ContractAction.InitPayload"}},"visibility":"internal"}],"src":"3826:26:33"},"returnParameters":{"id":13085,"nodeType":"ParameterList","parameters":[],"src":"3888:0:33"},"scope":13099,"src":"3806:161:33","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":13100,"src":"813:3156:33","usedErrors":[6235,6238,6241,6244,9117,9120,12703,12773,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,12700,12712]}],"src":"36:3934:33"},"id":33},"contracts/allowlists/AllowList.sol":{"ast":{"absolutePath":"contracts/allowlists/AllowList.sol","exportedSymbols":{"AllowList":[13154],"Cloneable":[17720],"Ownable":[6423]},"id":13155,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13101,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:34"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":13103,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13155,"sourceUnit":6424,"src":"62:49:34","symbolAliases":[{"foreign":{"id":13102,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13105,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13155,"sourceUnit":17721,"src":"113:57:34","symbolAliases":[{"foreign":{"id":13104,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"121:9:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13107,"name":"Ownable","nameLocations":["533:7:34"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"533:7:34"},"id":13108,"nodeType":"InheritanceSpecifier","src":"533:7:34"},{"baseName":{"id":13109,"name":"Cloneable","nameLocations":["542:9:34"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"542:9:34"},"id":13110,"nodeType":"InheritanceSpecifier","src":"542:9:34"}],"canonicalName":"AllowList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13106,"nodeType":"StructuredDocumentation","src":"172:330:34","text":"@title Boost AllowList\n @notice Abstract contract for a generic Allow List within the Boost protocol\n @dev Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":13154,"linearizedBaseContracts":[13154,17720,2845,2857,9225,6423],"name":"AllowList","nameLocation":"520:9:34","nodeType":"ContractDefinition","nodes":[{"body":{"id":13119,"nodeType":"Block","src":"624:45:34","statements":[{"expression":{"arguments":[{"expression":{"id":13115,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"651:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"655:6:34","memberName":"sender","nodeType":"MemberAccess","src":"651:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13114,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"634:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"634:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13118,"nodeType":"ExpressionStatement","src":"634:28:34"}]},"documentation":{"id":13111,"nodeType":"StructuredDocumentation","src":"558:47:34","text":"@notice Constructor to initialize the owner"},"id":13120,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13112,"nodeType":"ParameterList","parameters":[],"src":"621:2:34"},"returnParameters":{"id":13113,"nodeType":"ParameterList","parameters":[],"src":"624:0:34"},"scope":13154,"src":"610:59:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":13121,"nodeType":"StructuredDocumentation","src":"675:214:34","text":"@notice Check if a user is authorized\n @param user_ The address of the user\n @param data_ The data payload for the authorization check, if applicable\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13130,"implemented":false,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"903:9:34","nodeType":"FunctionDefinition","parameters":{"id":13126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13123,"mutability":"mutable","name":"user_","nameLocation":"921:5:34","nodeType":"VariableDeclaration","scope":13130,"src":"913:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13122,"name":"address","nodeType":"ElementaryTypeName","src":"913:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13125,"mutability":"mutable","name":"data_","nameLocation":"943:5:34","nodeType":"VariableDeclaration","scope":13130,"src":"928:20:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13124,"name":"bytes","nodeType":"ElementaryTypeName","src":"928:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"912:37:34"},"returnParameters":{"id":13129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13130,"src":"981:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13127,"name":"bool","nodeType":"ElementaryTypeName","src":"981:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"980:6:34"},"scope":13154,"src":"894:93:34","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":13152,"nodeType":"Block","src":"1125:106:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13140,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"1142:11:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13142,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"1162:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}],"id":13141,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1157:4:34","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1157:15:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AllowList_$13154","typeString":"type(contract AllowList)"}},"id":13144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1173:11:34","memberName":"interfaceId","nodeType":"MemberAccess","src":"1157:27:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1142:42:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13148,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"1212:11:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13146,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1188:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AllowList_$13154_$","typeString":"type(contract super AllowList)"}},"id":13147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1194:17:34","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"1188:23:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:36:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1142:82:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13139,"id":13151,"nodeType":"Return","src":"1135:89:34"}]},"documentation":{"id":13131,"nodeType":"StructuredDocumentation","src":"993:25:34","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13153,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1032:17:34","nodeType":"FunctionDefinition","overrides":{"id":13136,"nodeType":"OverrideSpecifier","overrides":[{"id":13135,"name":"Cloneable","nameLocations":["1099:9:34"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1099:9:34"}],"src":"1090:19:34"},"parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13133,"mutability":"mutable","name":"interfaceId","nameLocation":"1057:11:34","nodeType":"VariableDeclaration","scope":13153,"src":"1050:18:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13132,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1050:6:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1049:20:34"},"returnParameters":{"id":13139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13153,"src":"1119:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13137,"name":"bool","nodeType":"ElementaryTypeName","src":"1119:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1118:6:34"},"scope":13154,"src":"1023:208:34","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":13155,"src":"502:731:34","usedErrors":[6235,6238,6241,6244,9117,9120,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:1198:34"},"id":34},"contracts/allowlists/SimpleAllowList.sol":{"ast":{"absolutePath":"contracts/allowlists/SimpleAllowList.sol","exportedSymbols":{"AllowList":[13154],"BoostError":[17566],"OwnableRoles":[7950],"SimpleAllowList":[13307]},"id":13308,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13156,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:35"},{"absolutePath":"@solady/auth/OwnableRoles.sol","file":"@solady/auth/OwnableRoles.sol","id":13158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13308,"sourceUnit":7951,"src":"62:59:35","symbolAliases":[{"foreign":{"id":13157,"name":"OwnableRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"70:12:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":13160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13308,"sourceUnit":13155,"src":"123:61:35","symbolAliases":[{"foreign":{"id":13159,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"131:9:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13162,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13308,"sourceUnit":17567,"src":"185:59:35","symbolAliases":[{"foreign":{"id":13161,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"193:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13164,"name":"AllowList","nameLocations":["427:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":13154,"src":"427:9:35"},"id":13165,"nodeType":"InheritanceSpecifier","src":"427:9:35"},{"baseName":{"id":13166,"name":"OwnableRoles","nameLocations":["438:12:35"],"nodeType":"IdentifierPath","referencedDeclaration":7950,"src":"438:12:35"},"id":13167,"nodeType":"InheritanceSpecifier","src":"438:12:35"}],"canonicalName":"SimpleAllowList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13163,"nodeType":"StructuredDocumentation","src":"246:153:35","text":"@title Simple AllowList\n @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses"},"fullyImplemented":true,"id":13307,"linearizedBaseContracts":[13307,7950,13154,17720,2845,2857,9225,6423],"name":"SimpleAllowList","nameLocation":"408:15:35","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":13168,"nodeType":"StructuredDocumentation","src":"457:48:35","text":"@notice The role for managing the allow list"},"functionSelector":"98332bbc","id":13173,"mutability":"constant","name":"LIST_MANAGER_ROLE","nameLocation":"534:17:35","nodeType":"VariableDeclaration","scope":13307,"src":"510:50:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13169,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":13172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":13170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"554:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":13171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"559:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"554:6:35","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"public"},{"constant":false,"documentation":{"id":13174,"nodeType":"StructuredDocumentation","src":"567:48:35","text":"@dev An internal mapping of allowed statuses"},"id":13178,"mutability":"mutable","name":"_allowed","nameLocation":"653:8:35","nodeType":"VariableDeclaration","scope":13307,"src":"620:41:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13177,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13175,"name":"address","nodeType":"ElementaryTypeName","src":"628:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"620:24:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13176,"name":"bool","nodeType":"ElementaryTypeName","src":"639:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":13185,"nodeType":"Block","src":"923:39:35","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13182,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"933:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"933:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13184,"nodeType":"ExpressionStatement","src":"933:22:35"}]},"documentation":{"id":13179,"nodeType":"StructuredDocumentation","src":"668:236:35","text":"@notice Construct a new SimpleAllowList\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13186,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13180,"nodeType":"ParameterList","parameters":[],"src":"920:2:35"},"returnParameters":{"id":13181,"nodeType":"ParameterList","parameters":[],"src":"923:0:35"},"scope":13307,"src":"909:53:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":13241,"nodeType":"Block","src":"1216:298:35","statements":[{"assignments":[13196,13199],"declarations":[{"constant":false,"id":13196,"mutability":"mutable","name":"owner_","nameLocation":"1235:6:35","nodeType":"VariableDeclaration","scope":13241,"src":"1227:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13195,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13199,"mutability":"mutable","name":"allowList_","nameLocation":"1260:10:35","nodeType":"VariableDeclaration","scope":13241,"src":"1243:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13197,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13198,"nodeType":"ArrayTypeName","src":"1243:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":13210,"initialValue":{"arguments":[{"id":13202,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13189,"src":"1285:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1293:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13203,"name":"address","nodeType":"ElementaryTypeName","src":"1293:7:35","typeDescriptions":{}}},{"baseExpression":{"id":13206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1302:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13205,"name":"address","nodeType":"ElementaryTypeName","src":"1302:7:35","typeDescriptions":{}}},"id":13207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1302:9:35","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":13208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1292:20:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}],"expression":{"id":13200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1274:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1278:6:35","memberName":"decode","nodeType":"MemberAccess","src":"1274:10:35","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1274:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"tuple(address payable,address[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1226:87:35"},{"expression":{"arguments":[{"id":13212,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13196,"src":"1340:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13211,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1323:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1323:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13214,"nodeType":"ExpressionStatement","src":"1323:24:35"},{"expression":{"arguments":[{"id":13216,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13196,"src":"1369:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13217,"name":"LIST_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13173,"src":"1377:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13215,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6482,"src":"1357:11:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:38:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13219,"nodeType":"ExpressionStatement","src":"1357:38:35"},{"body":{"id":13239,"nodeType":"Block","src":"1453:55:35","statements":[{"expression":{"id":13237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13231,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13178,"src":"1467:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13235,"indexExpression":{"baseExpression":{"id":13232,"name":"allowList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"1476:10:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13234,"indexExpression":{"id":13233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"1487:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1476:13:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1467:23:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1493:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1467:30:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13238,"nodeType":"ExpressionStatement","src":"1467:30:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13224,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"1425:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13225,"name":"allowList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"1429:10:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1440:6:35","memberName":"length","nodeType":"MemberAccess","src":"1429:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1425:21:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13240,"initializationExpression":{"assignments":[13221],"declarations":[{"constant":false,"id":13221,"mutability":"mutable","name":"i","nameLocation":"1418:1:35","nodeType":"VariableDeclaration","scope":13240,"src":"1410:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1410:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13223,"initialValue":{"hexValue":"30","id":13222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1422:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1410:13:35"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1448:3:35","subExpression":{"id":13228,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"1448:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13230,"nodeType":"ExpressionStatement","src":"1448:3:35"},"nodeType":"ForStatement","src":"1405:103:35"}]},"documentation":{"id":13187,"nodeType":"StructuredDocumentation","src":"968:165:35","text":"@notice Initialize the contract with the list of allowed addresses\n @param data_ The compressed initialization data `(address owner, address[] allowList)`"},"functionSelector":"439fab91","id":13242,"implemented":true,"kind":"function","modifiers":[{"id":13193,"kind":"modifierInvocation","modifierName":{"id":13192,"name":"initializer","nameLocations":["1204:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1204:11:35"},"nodeType":"ModifierInvocation","src":"1204:11:35"}],"name":"initialize","nameLocation":"1147:10:35","nodeType":"FunctionDefinition","overrides":{"id":13191,"nodeType":"OverrideSpecifier","overrides":[],"src":"1195:8:35"},"parameters":{"id":13190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13189,"mutability":"mutable","name":"data_","nameLocation":"1173:5:35","nodeType":"VariableDeclaration","scope":13242,"src":"1158:20:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13188,"name":"bytes","nodeType":"ElementaryTypeName","src":"1158:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1157:22:35"},"returnParameters":{"id":13194,"nodeType":"ParameterList","parameters":[],"src":"1216:0:35"},"scope":13307,"src":"1138:376:35","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13130],"body":{"id":13257,"nodeType":"Block","src":"1863:39:35","statements":[{"expression":{"baseExpression":{"id":13253,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13178,"src":"1880:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13255,"indexExpression":{"id":13254,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13245,"src":"1889:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1880:15:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13252,"id":13256,"nodeType":"Return","src":"1873:22:35"}]},"documentation":{"id":13243,"nodeType":"StructuredDocumentation","src":"1520:228:35","text":"@notice Check if a user is authorized\n @param user_ The address of the user\n @param - The data payload for the authorization check, not used in this implementation\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13258,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"1762:9:35","nodeType":"FunctionDefinition","overrides":{"id":13249,"nodeType":"OverrideSpecifier","overrides":[],"src":"1839:8:35"},"parameters":{"id":13248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13245,"mutability":"mutable","name":"user_","nameLocation":"1780:5:35","nodeType":"VariableDeclaration","scope":13258,"src":"1772:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13244,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13258,"src":"1787:14:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13246,"name":"bytes","nodeType":"ElementaryTypeName","src":"1787:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1771:53:35"},"returnParameters":{"id":13252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13258,"src":"1857:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13250,"name":"bool","nodeType":"ElementaryTypeName","src":"1857:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1856:6:35"},"scope":13307,"src":"1753:149:35","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13305,"nodeType":"Block","src":"2312:201:35","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13271,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13262,"src":"2326:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2333:6:35","memberName":"length","nodeType":"MemberAccess","src":"2326:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13273,"name":"allowed_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"2343:8:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:6:35","memberName":"length","nodeType":"MemberAccess","src":"2343:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2326:32:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13281,"nodeType":"IfStatement","src":"2322:72:35","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13276,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2367:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":13278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2378:14:35","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":17541,"src":"2367:25:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2367:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13280,"nodeType":"RevertStatement","src":"2360:34:35"}},{"body":{"id":13303,"nodeType":"Block","src":"2449:58:35","statements":[{"expression":{"id":13301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13293,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13178,"src":"2463:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13297,"indexExpression":{"baseExpression":{"id":13294,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13262,"src":"2472:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13296,"indexExpression":{"id":13295,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2479:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2472:9:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2463:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":13298,"name":"allowed_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"2485:8:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13300,"indexExpression":{"id":13299,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2494:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2485:11:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2463:33:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13302,"nodeType":"ExpressionStatement","src":"2463:33:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13286,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2425:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13287,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13262,"src":"2429:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2436:6:35","memberName":"length","nodeType":"MemberAccess","src":"2429:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2425:17:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13304,"initializationExpression":{"assignments":[13283],"declarations":[{"constant":false,"id":13283,"mutability":"mutable","name":"i","nameLocation":"2418:1:35","nodeType":"VariableDeclaration","scope":13304,"src":"2410:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13282,"name":"uint256","nodeType":"ElementaryTypeName","src":"2410:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13285,"initialValue":{"hexValue":"30","id":13284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2422:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2410:13:35"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2444:3:35","subExpression":{"id":13290,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2444:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13292,"nodeType":"ExpressionStatement","src":"2444:3:35"},"nodeType":"ForStatement","src":"2405:102:35"}]},"documentation":{"id":13259,"nodeType":"StructuredDocumentation","src":"1908:288:35","text":"@notice Set the allowed status of a user\n @param users_ The list of users to update\n @param allowed_ The allowed status of each user\n @dev The length of the `users_` and `allowed_` arrays must be the same\n @dev This function can only be called by the owner"},"functionSelector":"3abb0604","id":13306,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13268,"name":"LIST_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13173,"src":"2293:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13269,"kind":"modifierInvocation","modifierName":{"id":13267,"name":"onlyRoles","nameLocations":["2283:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":6647,"src":"2283:9:35"},"nodeType":"ModifierInvocation","src":"2283:28:35"}],"name":"setAllowed","nameLocation":"2210:10:35","nodeType":"FunctionDefinition","parameters":{"id":13266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13262,"mutability":"mutable","name":"users_","nameLocation":"2240:6:35","nodeType":"VariableDeclaration","scope":13306,"src":"2221:25:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13260,"name":"address","nodeType":"ElementaryTypeName","src":"2221:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13261,"nodeType":"ArrayTypeName","src":"2221:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13265,"mutability":"mutable","name":"allowed_","nameLocation":"2264:8:35","nodeType":"VariableDeclaration","scope":13306,"src":"2248:24:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13263,"name":"bool","nodeType":"ElementaryTypeName","src":"2248:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13264,"nodeType":"ArrayTypeName","src":"2248:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2220:53:35"},"returnParameters":{"id":13270,"nodeType":"ParameterList","parameters":[],"src":"2312:0:35"},"scope":13307,"src":"2201:312:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13308,"src":"399:2116:35","usedErrors":[6235,6238,6241,6244,9117,9120,17541,17666,17669,17672],"usedEvents":[6251,6256,6261,6437,9125]}],"src":"36:2480:35"},"id":35},"contracts/allowlists/SimpleDenyList.sol":{"ast":{"absolutePath":"contracts/allowlists/SimpleDenyList.sol","exportedSymbols":{"AllowList":[13154],"BoostError":[17566],"SimpleDenyList":[13445]},"id":13446,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13309,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:36"},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":13311,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13446,"sourceUnit":13155,"src":"62:61:36","symbolAliases":[{"foreign":{"id":13310,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"70:9:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13313,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13446,"sourceUnit":17567,"src":"124:59:36","symbolAliases":[{"foreign":{"id":13312,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"132:10:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13315,"name":"AllowList","nameLocations":["374:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":13154,"src":"374:9:36"},"id":13316,"nodeType":"InheritanceSpecifier","src":"374:9:36"}],"canonicalName":"SimpleDenyList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13314,"nodeType":"StructuredDocumentation","src":"185:162:36","text":"@title SimpleDenyList\n @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list"},"fullyImplemented":true,"id":13445,"linearizedBaseContracts":[13445,13154,17720,2845,2857,9225,6423],"name":"SimpleDenyList","nameLocation":"356:14:36","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":13317,"nodeType":"StructuredDocumentation","src":"390:47:36","text":"@dev An internal mapping of denied statuses"},"id":13321,"mutability":"mutable","name":"_denied","nameLocation":"475:7:36","nodeType":"VariableDeclaration","scope":13445,"src":"442:40:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13320,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13318,"name":"address","nodeType":"ElementaryTypeName","src":"450:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"442:24:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13319,"name":"bool","nodeType":"ElementaryTypeName","src":"461:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":13328,"nodeType":"Block","src":"743:39:36","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13325,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"753:20:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"753:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13327,"nodeType":"ExpressionStatement","src":"753:22:36"}]},"documentation":{"id":13322,"nodeType":"StructuredDocumentation","src":"489:235:36","text":"@notice Construct a new SimpleDenyList\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13329,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13323,"nodeType":"ParameterList","parameters":[],"src":"740:2:36"},"returnParameters":{"id":13324,"nodeType":"ParameterList","parameters":[],"src":"743:0:36"},"scope":13445,"src":"729:53:36","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":13379,"nodeType":"Block","src":"1042:247:36","statements":[{"assignments":[13339,13342],"declarations":[{"constant":false,"id":13339,"mutability":"mutable","name":"owner_","nameLocation":"1061:6:36","nodeType":"VariableDeclaration","scope":13379,"src":"1053:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13338,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13342,"mutability":"mutable","name":"denyList_","nameLocation":"1086:9:36","nodeType":"VariableDeclaration","scope":13379,"src":"1069:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13340,"name":"address","nodeType":"ElementaryTypeName","src":"1069:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13341,"nodeType":"ArrayTypeName","src":"1069:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":13353,"initialValue":{"arguments":[{"id":13345,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13332,"src":"1110:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1118:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13346,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:36","typeDescriptions":{}}},{"baseExpression":{"id":13349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1127:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13348,"name":"address","nodeType":"ElementaryTypeName","src":"1127:7:36","typeDescriptions":{}}},"id":13350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1127:9:36","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":13351,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1117:20:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}],"expression":{"id":13343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1099:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1103:6:36","memberName":"decode","nodeType":"MemberAccess","src":"1099:10:36","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1099:39:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"tuple(address payable,address[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1052:86:36"},{"expression":{"arguments":[{"id":13355,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13339,"src":"1166:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13354,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1149:16:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13357,"nodeType":"ExpressionStatement","src":"1149:24:36"},{"body":{"id":13377,"nodeType":"Block","src":"1230:53:36","statements":[{"expression":{"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13369,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"1244:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13373,"indexExpression":{"baseExpression":{"id":13370,"name":"denyList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13342,"src":"1252:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13372,"indexExpression":{"id":13371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"1262:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1252:12:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1244:21:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1268:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1244:28:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13376,"nodeType":"ExpressionStatement","src":"1244:28:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"1203:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13363,"name":"denyList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13342,"src":"1207:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1217:6:36","memberName":"length","nodeType":"MemberAccess","src":"1207:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1203:20:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13378,"initializationExpression":{"assignments":[13359],"declarations":[{"constant":false,"id":13359,"mutability":"mutable","name":"i","nameLocation":"1196:1:36","nodeType":"VariableDeclaration","scope":13378,"src":"1188:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1188:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13361,"initialValue":{"hexValue":"30","id":13360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1200:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1188:13:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1225:3:36","subExpression":{"id":13366,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"1225:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13368,"nodeType":"ExpressionStatement","src":"1225:3:36"},"nodeType":"ForStatement","src":"1183:100:36"}]},"documentation":{"id":13330,"nodeType":"StructuredDocumentation","src":"788:171:36","text":"@notice Initialize the contract with the initial list of denied addresses\n @param data_ The compressed initialization data `(address owner, address[] denyList)`"},"functionSelector":"439fab91","id":13380,"implemented":true,"kind":"function","modifiers":[{"id":13336,"kind":"modifierInvocation","modifierName":{"id":13335,"name":"initializer","nameLocations":["1030:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1030:11:36"},"nodeType":"ModifierInvocation","src":"1030:11:36"}],"name":"initialize","nameLocation":"973:10:36","nodeType":"FunctionDefinition","overrides":{"id":13334,"nodeType":"OverrideSpecifier","overrides":[],"src":"1021:8:36"},"parameters":{"id":13333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13332,"mutability":"mutable","name":"data_","nameLocation":"999:5:36","nodeType":"VariableDeclaration","scope":13380,"src":"984:20:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13331,"name":"bytes","nodeType":"ElementaryTypeName","src":"984:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"983:22:36"},"returnParameters":{"id":13337,"nodeType":"ParameterList","parameters":[],"src":"1042:0:36"},"scope":13445,"src":"964:325:36","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13130],"body":{"id":13396,"nodeType":"Block","src":"1656:39:36","statements":[{"expression":{"id":13394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1673:15:36","subExpression":{"baseExpression":{"id":13391,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"1674:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13393,"indexExpression":{"id":13392,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13383,"src":"1682:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1674:14:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13390,"id":13395,"nodeType":"Return","src":"1666:22:36"}]},"documentation":{"id":13381,"nodeType":"StructuredDocumentation","src":"1295:246:36","text":"@notice Check if a user is authorized (i.e. not denied)\n @param user_ The address of the user\n @param - The data payload for the authorization check, not used in this implementation\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13397,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"1555:9:36","nodeType":"FunctionDefinition","overrides":{"id":13387,"nodeType":"OverrideSpecifier","overrides":[],"src":"1632:8:36"},"parameters":{"id":13386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13383,"mutability":"mutable","name":"user_","nameLocation":"1573:5:36","nodeType":"VariableDeclaration","scope":13397,"src":"1565:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13382,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13397,"src":"1580:14:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13384,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1564:53:36"},"returnParameters":{"id":13390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13397,"src":"1650:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13388,"name":"bool","nodeType":"ElementaryTypeName","src":"1650:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1649:6:36"},"scope":13445,"src":"1546:149:36","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13443,"nodeType":"Block","src":"2080:198:36","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13409,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"2094:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2101:6:36","memberName":"length","nodeType":"MemberAccess","src":"2094:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13411,"name":"denied_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13404,"src":"2111:7:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2119:6:36","memberName":"length","nodeType":"MemberAccess","src":"2111:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2094:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13419,"nodeType":"IfStatement","src":"2090:71:36","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13414,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2134:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":13416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2145:14:36","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":17541,"src":"2134:25:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:27:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13418,"nodeType":"RevertStatement","src":"2127:34:36"}},{"body":{"id":13441,"nodeType":"Block","src":"2216:56:36","statements":[{"expression":{"id":13439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13431,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"2230:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13435,"indexExpression":{"baseExpression":{"id":13432,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"2238:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13434,"indexExpression":{"id":13433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2245:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2238:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2230:18:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":13436,"name":"denied_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13404,"src":"2251:7:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13438,"indexExpression":{"id":13437,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2259:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2251:10:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2230:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13440,"nodeType":"ExpressionStatement","src":"2230:31:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13424,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2192:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13425,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"2196:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2203:6:36","memberName":"length","nodeType":"MemberAccess","src":"2196:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2192:17:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13442,"initializationExpression":{"assignments":[13421],"declarations":[{"constant":false,"id":13421,"mutability":"mutable","name":"i","nameLocation":"2185:1:36","nodeType":"VariableDeclaration","scope":13442,"src":"2177:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13420,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13423,"initialValue":{"hexValue":"30","id":13422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2177:13:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2211:3:36","subExpression":{"id":13428,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2211:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13430,"nodeType":"ExpressionStatement","src":"2211:3:36"},"nodeType":"ForStatement","src":"2172:100:36"}]},"documentation":{"id":13398,"nodeType":"StructuredDocumentation","src":"1701:284:36","text":"@notice Set the denied status of a user\n @param users_ The list of users to update\n @param denied_ The denied status of each user\n @dev The length of the `users_` and `denied_` arrays must be the same\n @dev This function can only be called by the owner"},"functionSelector":"141973b0","id":13444,"implemented":true,"kind":"function","modifiers":[{"id":13407,"kind":"modifierInvocation","modifierName":{"id":13406,"name":"onlyOwner","nameLocations":["2070:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"2070:9:36"},"nodeType":"ModifierInvocation","src":"2070:9:36"}],"name":"setDenied","nameLocation":"1999:9:36","nodeType":"FunctionDefinition","parameters":{"id":13405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13401,"mutability":"mutable","name":"users_","nameLocation":"2028:6:36","nodeType":"VariableDeclaration","scope":13444,"src":"2009:25:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13399,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13400,"nodeType":"ArrayTypeName","src":"2009:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13404,"mutability":"mutable","name":"denied_","nameLocation":"2052:7:36","nodeType":"VariableDeclaration","scope":13444,"src":"2036:23:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13402,"name":"bool","nodeType":"ElementaryTypeName","src":"2036:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13403,"nodeType":"ArrayTypeName","src":"2036:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2008:52:36"},"returnParameters":{"id":13408,"nodeType":"ParameterList","parameters":[],"src":"2080:0:36"},"scope":13445,"src":"1990:288:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13446,"src":"347:1933:36","usedErrors":[6235,6238,6241,6244,9117,9120,17541,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:2245:36"},"id":36},"contracts/budgets/Budget.sol":{"ast":{"absolutePath":"contracts/budgets/Budget.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"Cloneable":[17720],"Ownable":[6423],"Receiver":[6229],"SafeTransferLib":[11372]},"id":13670,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13447,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:37"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":13449,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":6424,"src":"62:49:37","symbolAliases":[{"foreign":{"id":13448,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/accounts/Receiver.sol","file":"@solady/accounts/Receiver.sol","id":13451,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":6230,"src":"112:55:37","symbolAliases":[{"foreign":{"id":13450,"name":"Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"120:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":13453,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":11373,"src":"168:66:37","symbolAliases":[{"foreign":{"id":13452,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"176:15:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13455,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":17567,"src":"236:59:37","symbolAliases":[{"foreign":{"id":13454,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"244:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13457,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":17721,"src":"296:57:37","symbolAliases":[{"foreign":{"id":13456,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"304:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13459,"name":"Ownable","nameLocations":["718:7:37"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"718:7:37"},"id":13460,"nodeType":"InheritanceSpecifier","src":"718:7:37"},{"baseName":{"id":13461,"name":"Cloneable","nameLocations":["727:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"727:9:37"},"id":13462,"nodeType":"InheritanceSpecifier","src":"727:9:37"},{"baseName":{"id":13463,"name":"Receiver","nameLocations":["738:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":6229,"src":"738:8:37"},"id":13464,"nodeType":"InheritanceSpecifier","src":"738:8:37"}],"canonicalName":"Budget","contractDependencies":[],"contractKind":"contract","documentation":{"id":13458,"nodeType":"StructuredDocumentation","src":"355:335:37","text":"@title Boost Budget\n @notice Abstract contract for a generic Budget within the Boost protocol\n @dev Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.\n @dev WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future."},"fullyImplemented":false,"id":13669,"linearizedBaseContracts":[13669,6229,17720,2845,2857,9225,6423],"name":"Budget","nameLocation":"708:6:37","nodeType":"ContractDefinition","nodes":[{"global":false,"id":13467,"libraryName":{"id":13465,"name":"SafeTransferLib","nameLocations":["759:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"759:15:37"},"nodeType":"UsingForDirective","src":"753:34:37","typeName":{"id":13466,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"Budget.AssetType","id":13471,"members":[{"id":13468,"name":"ETH","nameLocation":"818:3:37","nodeType":"EnumValue","src":"818:3:37"},{"id":13469,"name":"ERC20","nameLocation":"831:5:37","nodeType":"EnumValue","src":"831:5:37"},{"id":13470,"name":"ERC1155","nameLocation":"846:7:37","nodeType":"EnumValue","src":"846:7:37"}],"name":"AssetType","nameLocation":"798:9:37","nodeType":"EnumDefinition","src":"793:66:37"},{"canonicalName":"Budget.Transfer","documentation":{"id":13472,"nodeType":"StructuredDocumentation","src":"865:369:37","text":"@notice A struct representing the inputs for an allocation\n @param assetType The type of asset to allocate\n @param asset The address of the asset to allocate\n @param target The address of the payee or payer (from or to, depending on the operation)\n @param data The implementation-specific data for the allocation (amount, token ID, etc.)"},"id":13482,"members":[{"constant":false,"id":13475,"mutability":"mutable","name":"assetType","nameLocation":"1275:9:37","nodeType":"VariableDeclaration","scope":13482,"src":"1265:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"typeName":{"id":13474,"nodeType":"UserDefinedTypeName","pathNode":{"id":13473,"name":"AssetType","nameLocations":["1265:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":13471,"src":"1265:9:37"},"referencedDeclaration":13471,"src":"1265:9:37","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"visibility":"internal"},{"constant":false,"id":13477,"mutability":"mutable","name":"asset","nameLocation":"1302:5:37","nodeType":"VariableDeclaration","scope":13482,"src":"1294:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13476,"name":"address","nodeType":"ElementaryTypeName","src":"1294:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13479,"mutability":"mutable","name":"target","nameLocation":"1325:6:37","nodeType":"VariableDeclaration","scope":13482,"src":"1317:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13478,"name":"address","nodeType":"ElementaryTypeName","src":"1317:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13481,"mutability":"mutable","name":"data","nameLocation":"1347:4:37","nodeType":"VariableDeclaration","scope":13482,"src":"1341:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":13480,"name":"bytes","nodeType":"ElementaryTypeName","src":"1341:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Transfer","nameLocation":"1246:8:37","nodeType":"StructDefinition","scope":13669,"src":"1239:119:37","visibility":"public"},{"canonicalName":"Budget.FungiblePayload","documentation":{"id":13483,"nodeType":"StructuredDocumentation","src":"1364:110:37","text":"@notice The payload for an ETH or ERC20 transfer\n @param amount The amount of the asset to transfer"},"id":13486,"members":[{"constant":false,"id":13485,"mutability":"mutable","name":"amount","nameLocation":"1520:6:37","nodeType":"VariableDeclaration","scope":13486,"src":"1512:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13484,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FungiblePayload","nameLocation":"1486:15:37","nodeType":"StructDefinition","scope":13669,"src":"1479:54:37","visibility":"public"},{"canonicalName":"Budget.ERC1155Payload","documentation":{"id":13487,"nodeType":"StructuredDocumentation","src":"1539:235:37","text":"@notice The payload for an ERC1155 transfer\n @param tokenId The ID of the token to transfer\n @param amount The amount of the token to transfer\n @param data Any additional data to forward to the ERC1155 contract"},"id":13494,"members":[{"constant":false,"id":13489,"mutability":"mutable","name":"tokenId","nameLocation":"1819:7:37","nodeType":"VariableDeclaration","scope":13494,"src":"1811:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13488,"name":"uint256","nodeType":"ElementaryTypeName","src":"1811:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13491,"mutability":"mutable","name":"amount","nameLocation":"1844:6:37","nodeType":"VariableDeclaration","scope":13494,"src":"1836:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13490,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13493,"mutability":"mutable","name":"data","nameLocation":"1866:4:37","nodeType":"VariableDeclaration","scope":13494,"src":"1860:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":13492,"name":"bytes","nodeType":"ElementaryTypeName","src":"1860:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ERC1155Payload","nameLocation":"1786:14:37","nodeType":"StructDefinition","scope":13669,"src":"1779:98:37","visibility":"public"},{"anonymous":false,"documentation":{"id":13495,"nodeType":"StructuredDocumentation","src":"1883:66:37","text":"@notice Emitted when an address's authorization status changes"},"eventSelector":"4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf","id":13501,"name":"Authorized","nameLocation":"1960:10:37","nodeType":"EventDefinition","parameters":{"id":13500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13497,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1987:7:37","nodeType":"VariableDeclaration","scope":13501,"src":"1971:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13496,"name":"address","nodeType":"ElementaryTypeName","src":"1971:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13499,"indexed":false,"mutability":"mutable","name":"isAuthorized","nameLocation":"2001:12:37","nodeType":"VariableDeclaration","scope":13501,"src":"1996:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13498,"name":"bool","nodeType":"ElementaryTypeName","src":"1996:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1970:44:37"},"src":"1954:61:37"},{"anonymous":false,"documentation":{"id":13502,"nodeType":"StructuredDocumentation","src":"2021:63:37","text":"@notice Emitted when assets are distributed from the budget"},"eventSelector":"ad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542","id":13510,"name":"Distributed","nameLocation":"2095:11:37","nodeType":"EventDefinition","parameters":{"id":13509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13504,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"2123:5:37","nodeType":"VariableDeclaration","scope":13510,"src":"2107:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13503,"name":"address","nodeType":"ElementaryTypeName","src":"2107:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13506,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2138:2:37","nodeType":"VariableDeclaration","scope":13510,"src":"2130:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13505,"name":"address","nodeType":"ElementaryTypeName","src":"2130:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13508,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2150:6:37","nodeType":"VariableDeclaration","scope":13510,"src":"2142:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13507,"name":"uint256","nodeType":"ElementaryTypeName","src":"2142:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2106:51:37"},"src":"2089:69:37"},{"documentation":{"id":13511,"nodeType":"StructuredDocumentation","src":"2164:49:37","text":"@notice Thrown when the allocation is invalid"},"errorSelector":"cece04c5","id":13517,"name":"InvalidAllocation","nameLocation":"2224:17:37","nodeType":"ErrorDefinition","parameters":{"id":13516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13513,"mutability":"mutable","name":"asset","nameLocation":"2250:5:37","nodeType":"VariableDeclaration","scope":13517,"src":"2242:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13512,"name":"address","nodeType":"ElementaryTypeName","src":"2242:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13515,"mutability":"mutable","name":"amount","nameLocation":"2265:6:37","nodeType":"VariableDeclaration","scope":13517,"src":"2257:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13514,"name":"uint256","nodeType":"ElementaryTypeName","src":"2257:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2241:31:37"},"src":"2218:55:37"},{"documentation":{"id":13518,"nodeType":"StructuredDocumentation","src":"2279:69:37","text":"@notice Thrown when there are insufficient funds for an operation"},"errorSelector":"5c54305e","id":13526,"name":"InsufficientFunds","nameLocation":"2359:17:37","nodeType":"ErrorDefinition","parameters":{"id":13525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13520,"mutability":"mutable","name":"asset","nameLocation":"2385:5:37","nodeType":"VariableDeclaration","scope":13526,"src":"2377:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13519,"name":"address","nodeType":"ElementaryTypeName","src":"2377:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13522,"mutability":"mutable","name":"available","nameLocation":"2400:9:37","nodeType":"VariableDeclaration","scope":13526,"src":"2392:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13521,"name":"uint256","nodeType":"ElementaryTypeName","src":"2392:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13524,"mutability":"mutable","name":"required","nameLocation":"2419:8:37","nodeType":"VariableDeclaration","scope":13526,"src":"2411:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13523,"name":"uint256","nodeType":"ElementaryTypeName","src":"2411:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2376:52:37"},"src":"2353:76:37"},{"documentation":{"id":13527,"nodeType":"StructuredDocumentation","src":"2435:62:37","text":"@notice Thrown when the length of two arrays are not equal"},"errorSelector":"ff633a38","id":13529,"name":"LengthMismatch","nameLocation":"2508:14:37","nodeType":"ErrorDefinition","parameters":{"id":13528,"nodeType":"ParameterList","parameters":[],"src":"2522:2:37"},"src":"2502:23:37"},{"documentation":{"id":13530,"nodeType":"StructuredDocumentation","src":"2531:62:37","text":"@notice Thrown when a transfer fails for an unknown reason"},"errorSelector":"bf182be8","id":13538,"name":"TransferFailed","nameLocation":"2604:14:37","nodeType":"ErrorDefinition","parameters":{"id":13537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13532,"mutability":"mutable","name":"asset","nameLocation":"2627:5:37","nodeType":"VariableDeclaration","scope":13538,"src":"2619:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13531,"name":"address","nodeType":"ElementaryTypeName","src":"2619:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13534,"mutability":"mutable","name":"to","nameLocation":"2642:2:37","nodeType":"VariableDeclaration","scope":13538,"src":"2634:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13533,"name":"address","nodeType":"ElementaryTypeName","src":"2634:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13536,"mutability":"mutable","name":"amount","nameLocation":"2654:6:37","nodeType":"VariableDeclaration","scope":13538,"src":"2646:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2646:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2618:43:37"},"src":"2598:64:37"},{"body":{"id":13547,"nodeType":"Block","src":"2793:45:37","statements":[{"expression":{"arguments":[{"expression":{"id":13543,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2820:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2824:6:37","memberName":"sender","nodeType":"MemberAccess","src":"2820:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13542,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2803:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:28:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13546,"nodeType":"ExpressionStatement","src":"2803:28:37"}]},"documentation":{"id":13539,"nodeType":"StructuredDocumentation","src":"2668:106:37","text":"@notice Initialize the budget and set the owner\n @dev The owner is set to the contract deployer"},"id":13548,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13540,"nodeType":"ParameterList","parameters":[],"src":"2790:2:37"},"returnParameters":{"id":13541,"nodeType":"ParameterList","parameters":[],"src":"2793:0:37"},"scope":13669,"src":"2779:59:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":13549,"nodeType":"StructuredDocumentation","src":"2844:195:37","text":"@notice Allocate assets to the budget\n @param data_ The compressed data for the allocation (amount, token address, token ID, etc.)\n @return True if the allocation was successful"},"functionSelector":"5aef467a","id":13556,"implemented":false,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"3053:8:37","nodeType":"FunctionDefinition","parameters":{"id":13552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13551,"mutability":"mutable","name":"data_","nameLocation":"3077:5:37","nodeType":"VariableDeclaration","scope":13556,"src":"3062:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13550,"name":"bytes","nodeType":"ElementaryTypeName","src":"3062:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3061:22:37"},"returnParameters":{"id":13555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13556,"src":"3118:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13553,"name":"bool","nodeType":"ElementaryTypeName","src":"3118:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3117:6:37"},"scope":13669,"src":"3044:80:37","stateMutability":"payable","virtual":true,"visibility":"external"},{"documentation":{"id":13557,"nodeType":"StructuredDocumentation","src":"3130:198:37","text":"@notice Reclaim assets from the budget\n @param data_ The compressed data for the reclamation (amount, token address, token ID, etc.)\n @return True if the reclamation was successful"},"functionSelector":"f1c30ec0","id":13564,"implemented":false,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"3342:7:37","nodeType":"FunctionDefinition","parameters":{"id":13560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13559,"mutability":"mutable","name":"data_","nameLocation":"3365:5:37","nodeType":"VariableDeclaration","scope":13564,"src":"3350:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13558,"name":"bytes","nodeType":"ElementaryTypeName","src":"3350:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3349:22:37"},"returnParameters":{"id":13563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13564,"src":"3398:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13561,"name":"bool","nodeType":"ElementaryTypeName","src":"3398:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3397:6:37"},"scope":13669,"src":"3333:71:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13565,"nodeType":"StructuredDocumentation","src":"3410:176:37","text":"@notice Disburse assets from the budget to a single recipient\n @param data_ The compressed {Transfer} request\n @return True if the disbursement was successful"},"functionSelector":"fa4ca9b1","id":13572,"implemented":false,"kind":"function","modifiers":[],"name":"disburse","nameLocation":"3600:8:37","nodeType":"FunctionDefinition","parameters":{"id":13568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13567,"mutability":"mutable","name":"data_","nameLocation":"3624:5:37","nodeType":"VariableDeclaration","scope":13572,"src":"3609:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13566,"name":"bytes","nodeType":"ElementaryTypeName","src":"3609:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3608:22:37"},"returnParameters":{"id":13571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13572,"src":"3657:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13569,"name":"bool","nodeType":"ElementaryTypeName","src":"3657:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3656:6:37"},"scope":13669,"src":"3591:72:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13573,"nodeType":"StructuredDocumentation","src":"3669:189:37","text":"@notice Disburse assets from the budget to multiple recipients\n @param data_ The array of compressed {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":13581,"implemented":false,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"3872:13:37","nodeType":"FunctionDefinition","parameters":{"id":13577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13576,"mutability":"mutable","name":"data_","nameLocation":"3903:5:37","nodeType":"VariableDeclaration","scope":13581,"src":"3886:22:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13574,"name":"bytes","nodeType":"ElementaryTypeName","src":"3886:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13575,"nodeType":"ArrayTypeName","src":"3886:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3885:24:37"},"returnParameters":{"id":13580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13581,"src":"3936:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13578,"name":"bool","nodeType":"ElementaryTypeName","src":"3936:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3935:6:37"},"scope":13669,"src":"3863:79:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13582,"nodeType":"StructuredDocumentation","src":"3948:198:37","text":"@notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets"},"functionSelector":"d2514e84","id":13589,"implemented":false,"kind":"function","modifiers":[],"name":"total","nameLocation":"4160:5:37","nodeType":"FunctionDefinition","parameters":{"id":13585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13584,"mutability":"mutable","name":"asset_","nameLocation":"4174:6:37","nodeType":"VariableDeclaration","scope":13589,"src":"4166:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13583,"name":"address","nodeType":"ElementaryTypeName","src":"4166:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4165:16:37"},"returnParameters":{"id":13588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13589,"src":"4213:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13586,"name":"uint256","nodeType":"ElementaryTypeName","src":"4213:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4212:9:37"},"scope":13669,"src":"4151:71:37","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":13590,"nodeType":"StructuredDocumentation","src":"4228:173:37","text":"@notice Get the amount of assets available for distribution from the budget\n @param asset_ The address of the asset\n @return The amount of assets available"},"functionSelector":"10098ad5","id":13597,"implemented":false,"kind":"function","modifiers":[],"name":"available","nameLocation":"4415:9:37","nodeType":"FunctionDefinition","parameters":{"id":13593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13592,"mutability":"mutable","name":"asset_","nameLocation":"4433:6:37","nodeType":"VariableDeclaration","scope":13597,"src":"4425:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13591,"name":"address","nodeType":"ElementaryTypeName","src":"4425:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4424:16:37"},"returnParameters":{"id":13596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13597,"src":"4472:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13594,"name":"uint256","nodeType":"ElementaryTypeName","src":"4472:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4471:9:37"},"scope":13669,"src":"4406:75:37","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":13598,"nodeType":"StructuredDocumentation","src":"4487:175:37","text":"@notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":13605,"implemented":false,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"4676:11:37","nodeType":"FunctionDefinition","parameters":{"id":13601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13600,"mutability":"mutable","name":"asset_","nameLocation":"4696:6:37","nodeType":"VariableDeclaration","scope":13605,"src":"4688:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13599,"name":"address","nodeType":"ElementaryTypeName","src":"4688:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4687:16:37"},"returnParameters":{"id":13604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13605,"src":"4735:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13602,"name":"uint256","nodeType":"ElementaryTypeName","src":"4735:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:9:37"},"scope":13669,"src":"4667:77:37","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":13606,"nodeType":"StructuredDocumentation","src":"4750:235:37","text":"@notice Reconcile the budget to ensure the known state matches the actual state\n @param data_ The compressed data for the reconciliation (amount, token address, token ID, etc.)\n @return The amount of assets reconciled"},"functionSelector":"451cc191","id":13613,"implemented":false,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"4999:9:37","nodeType":"FunctionDefinition","parameters":{"id":13609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13608,"mutability":"mutable","name":"data_","nameLocation":"5024:5:37","nodeType":"VariableDeclaration","scope":13613,"src":"5009:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13607,"name":"bytes","nodeType":"ElementaryTypeName","src":"5009:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5008:22:37"},"returnParameters":{"id":13612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13613,"src":"5057:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13610,"name":"uint256","nodeType":"ElementaryTypeName","src":"5057:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5056:9:37"},"scope":13669,"src":"4990:76:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":13635,"nodeType":"Block","src":"5204:103:37","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13623,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13616,"src":"5221:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13625,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5241:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}],"id":13624,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5236:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5236:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Budget_$13669","typeString":"type(contract Budget)"}},"id":13627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5249:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"5236:24:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5221:39:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13631,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13616,"src":"5288:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13629,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5264:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Budget_$13669_$","typeString":"type(contract super Budget)"}},"id":13630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:17:37","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"5264:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5264:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5221:79:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13622,"id":13634,"nodeType":"Return","src":"5214:86:37"}]},"documentation":{"id":13614,"nodeType":"StructuredDocumentation","src":"5072:25:37","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13636,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5111:17:37","nodeType":"FunctionDefinition","overrides":{"id":13619,"nodeType":"OverrideSpecifier","overrides":[{"id":13618,"name":"Cloneable","nameLocations":["5178:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"5178:9:37"}],"src":"5169:19:37"},"parameters":{"id":13617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13616,"mutability":"mutable","name":"interfaceId","nameLocation":"5136:11:37","nodeType":"VariableDeclaration","scope":13636,"src":"5129:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13615,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5129:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5128:20:37"},"returnParameters":{"id":13622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13636,"src":"5198:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13620,"name":"bool","nodeType":"ElementaryTypeName","src":"5198:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5197:6:37"},"scope":13669,"src":"5102:205:37","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":13637,"nodeType":"StructuredDocumentation","src":"5313:293:37","text":"@notice Set the authorized status of the given accounts\n @param accounts_ The accounts to authorize or deauthorize\n @param isAuthorized_ The authorization status for the given accounts\n @dev The mechanism for managing authorization is left to the implementing contract"},"functionSelector":"4359d28a","id":13646,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorized","nameLocation":"5620:13:37","nodeType":"FunctionDefinition","parameters":{"id":13644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13640,"mutability":"mutable","name":"accounts_","nameLocation":"5653:9:37","nodeType":"VariableDeclaration","scope":13646,"src":"5634:28:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13638,"name":"address","nodeType":"ElementaryTypeName","src":"5634:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13639,"nodeType":"ArrayTypeName","src":"5634:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13643,"mutability":"mutable","name":"isAuthorized_","nameLocation":"5680:13:37","nodeType":"VariableDeclaration","scope":13646,"src":"5664:29:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13641,"name":"bool","nodeType":"ElementaryTypeName","src":"5664:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13642,"nodeType":"ArrayTypeName","src":"5664:6:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"5633:61:37"},"returnParameters":{"id":13645,"nodeType":"ParameterList","parameters":[],"src":"5711:0:37"},"scope":13669,"src":"5611:101:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13647,"nodeType":"StructuredDocumentation","src":"5718:256:37","text":"@notice Check if the given account is authorized to use the budget\n @param account_ The account to check\n @return True if the account is authorized\n @dev The mechanism for checking authorization is left to the implementing contract"},"functionSelector":"fe9fbb80","id":13654,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"5988:12:37","nodeType":"FunctionDefinition","parameters":{"id":13650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13649,"mutability":"mutable","name":"account_","nameLocation":"6009:8:37","nodeType":"VariableDeclaration","scope":13654,"src":"6001:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13648,"name":"address","nodeType":"ElementaryTypeName","src":"6001:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6000:18:37"},"returnParameters":{"id":13653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13654,"src":"6050:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13651,"name":"bool","nodeType":"ElementaryTypeName","src":"6050:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6049:6:37"},"scope":13669,"src":"5979:77:37","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[6215],"body":{"id":13660,"nodeType":"Block","src":"6135:23:37","statements":[{"functionReturnParameters":13658,"id":13659,"nodeType":"Return","src":"6145:7:37"}]},"documentation":{"id":13655,"nodeType":"StructuredDocumentation","src":"6062:24:37","text":"@inheritdoc Receiver"},"id":13661,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","overrides":{"id":13657,"nodeType":"OverrideSpecifier","overrides":[],"src":"6126:8:37"},"parameters":{"id":13656,"nodeType":"ParameterList","parameters":[],"src":"6098:2:37"},"returnParameters":{"id":13658,"nodeType":"ParameterList","parameters":[],"src":"6135:0:37"},"scope":13669,"src":"6091:67:37","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[6222],"body":{"id":13667,"nodeType":"Block","src":"6238:23:37","statements":[{"functionReturnParameters":13665,"id":13666,"nodeType":"Return","src":"6248:7:37"}]},"documentation":{"id":13662,"nodeType":"StructuredDocumentation","src":"6164:24:37","text":"@inheritdoc Receiver"},"id":13668,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","overrides":{"id":13664,"nodeType":"OverrideSpecifier","overrides":[],"src":"6229:8:37"},"parameters":{"id":13663,"nodeType":"ParameterList","parameters":[],"src":"6201:2:37"},"returnParameters":{"id":13665,"nodeType":"ParameterList","parameters":[],"src":"6238:0:37"},"scope":13669,"src":"6193:68:37","stateMutability":"payable","virtual":true,"visibility":"external"}],"scope":13670,"src":"690:5573:37","usedErrors":[6235,6238,6241,6244,9117,9120,13517,13526,13529,13538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,13501,13510]}],"src":"36:6228:37"},"id":37},"contracts/budgets/SimpleBudget.sol":{"ast":{"absolutePath":"contracts/budgets/SimpleBudget.sol","exportedSymbols":{"Budget":[13669],"Cloneable":[17720],"IERC1155":[1190],"IERC1155Receiver":[1232],"IERC165":[2857],"ReentrancyGuard":[11038],"SafeTransferLib":[11372],"SimpleBudget":[14680]},"id":14681,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13671,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:38"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":13673,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":1233,"src":"62:92:38","symbolAliases":[{"foreign":{"id":13672,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"70:16:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":13675,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":1191,"src":"155:76:38","symbolAliases":[{"foreign":{"id":13674,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"163:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":13677,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":2858,"src":"232:80:38","symbolAliases":[{"foreign":{"id":13676,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"240:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":13679,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":11373,"src":"314:66:38","symbolAliases":[{"foreign":{"id":13678,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"322:15:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":13681,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":11039,"src":"381:66:38","symbolAliases":[{"foreign":{"id":13680,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"389:15:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":13683,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":13670,"src":"449:52:38","symbolAliases":[{"foreign":{"id":13682,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"457:6:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13685,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":17721,"src":"502:57:38","symbolAliases":[{"foreign":{"id":13684,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"510:9:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13687,"name":"Budget","nameLocations":["794:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"794:6:38"},"id":13688,"nodeType":"InheritanceSpecifier","src":"794:6:38"},{"baseName":{"id":13689,"name":"IERC1155Receiver","nameLocations":["802:16:38"],"nodeType":"IdentifierPath","referencedDeclaration":1232,"src":"802:16:38"},"id":13690,"nodeType":"InheritanceSpecifier","src":"802:16:38"},{"baseName":{"id":13691,"name":"ReentrancyGuard","nameLocations":["820:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"820:15:38"},"id":13692,"nodeType":"InheritanceSpecifier","src":"820:15:38"}],"canonicalName":"SimpleBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":13686,"nodeType":"StructuredDocumentation","src":"561:208:38","text":"@title Simple Budget\n @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n @dev This type of budget supports ETH, ERC20, and ERC1155 assets only"},"fullyImplemented":true,"id":14680,"linearizedBaseContracts":[14680,11038,1232,13669,6229,17720,2845,2857,9225,6423],"name":"SimpleBudget","nameLocation":"778:12:38","nodeType":"ContractDefinition","nodes":[{"global":false,"id":13695,"libraryName":{"id":13693,"name":"SafeTransferLib","nameLocations":["848:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"848:15:38"},"nodeType":"UsingForDirective","src":"842:34:38","typeName":{"id":13694,"name":"address","nodeType":"ElementaryTypeName","src":"868:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"SimpleBudget.InitPayload","documentation":{"id":13696,"nodeType":"StructuredDocumentation","src":"882:55:38","text":"@notice The payload for initializing a SimpleBudget"},"id":13702,"members":[{"constant":false,"id":13698,"mutability":"mutable","name":"owner","nameLocation":"979:5:38","nodeType":"VariableDeclaration","scope":13702,"src":"971:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13697,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13701,"mutability":"mutable","name":"authorized","nameLocation":"1004:10:38","nodeType":"VariableDeclaration","scope":13702,"src":"994:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13699,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13700,"nodeType":"ArrayTypeName","src":"994:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"949:11:38","nodeType":"StructDefinition","scope":14680,"src":"942:79:38","visibility":"public"},{"constant":false,"documentation":{"id":13703,"nodeType":"StructuredDocumentation","src":"1027:76:38","text":"@dev The total amount of each fungible asset distributed from the budget"},"id":13707,"mutability":"mutable","name":"_distributedFungible","nameLocation":"1144:20:38","nodeType":"VariableDeclaration","scope":14680,"src":"1108:56:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":13706,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13704,"name":"address","nodeType":"ElementaryTypeName","src":"1116:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1108:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13705,"name":"uint256","nodeType":"ElementaryTypeName","src":"1127:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"documentation":{"id":13708,"nodeType":"StructuredDocumentation","src":"1171:88:38","text":"@dev The total amount of each ERC1155 asset and token ID distributed from the budget"},"id":13714,"mutability":"mutable","name":"_distributedERC1155","nameLocation":"1320:19:38","nodeType":"VariableDeclaration","scope":14680,"src":"1264:75:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":13713,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13709,"name":"address","nodeType":"ElementaryTypeName","src":"1272:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1264:47:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13712,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1283:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13711,"name":"uint256","nodeType":"ElementaryTypeName","src":"1302:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"documentation":{"id":13715,"nodeType":"StructuredDocumentation","src":"1346:44:38","text":"@dev The mapping of authorized addresses"},"id":13719,"mutability":"mutable","name":"_isAuthorized","nameLocation":"1428:13:38","nodeType":"VariableDeclaration","scope":14680,"src":"1395:46:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13718,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13716,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1395:24:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13717,"name":"bool","nodeType":"ElementaryTypeName","src":"1414:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":13732,"nodeType":"Block","src":"1560:80:38","statements":[{"condition":{"id":13726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1574:25:38","subExpression":{"arguments":[{"expression":{"id":13723,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1588:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1592:6:38","memberName":"sender","nodeType":"MemberAccess","src":"1588:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13722,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14318,"src":"1575:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":13725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13730,"nodeType":"IfStatement","src":"1570:52:38","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13727,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"1608:12:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1608:14:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13729,"nodeType":"RevertStatement","src":"1601:21:38"}},{"id":13731,"nodeType":"PlaceholderStatement","src":"1632:1:38"}]},"documentation":{"id":13720,"nodeType":"StructuredDocumentation","src":"1448:81:38","text":"@notice A modifier that allows only authorized addresses to call the function"},"id":13733,"name":"onlyAuthorized","nameLocation":"1543:14:38","nodeType":"ModifierDefinition","parameters":{"id":13721,"nodeType":"ParameterList","parameters":[],"src":"1557:2:38"},"src":"1534:106:38","virtual":false,"visibility":"internal"},{"body":{"id":13740,"nodeType":"Block","src":"1898:39:38","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13737,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1908:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13739,"nodeType":"ExpressionStatement","src":"1908:22:38"}]},"documentation":{"id":13734,"nodeType":"StructuredDocumentation","src":"1646:233:38","text":"@notice Construct a new SimpleBudget\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13741,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13735,"nodeType":"ParameterList","parameters":[],"src":"1895:2:38"},"returnParameters":{"id":13736,"nodeType":"ParameterList","parameters":[],"src":"1898:0:38"},"scope":14680,"src":"1884:53:38","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":13788,"nodeType":"Block","src":"2148:244:38","statements":[{"assignments":[13752],"declarations":[{"constant":false,"id":13752,"mutability":"mutable","name":"init_","nameLocation":"2177:5:38","nodeType":"VariableDeclaration","scope":13788,"src":"2158:24:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload"},"typeName":{"id":13751,"nodeType":"UserDefinedTypeName","pathNode":{"id":13750,"name":"InitPayload","nameLocations":["2158:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":13702,"src":"2158:11:38"},"referencedDeclaration":13702,"src":"2158:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_storage_ptr","typeString":"struct SimpleBudget.InitPayload"}},"visibility":"internal"}],"id":13759,"initialValue":{"arguments":[{"id":13755,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13744,"src":"2196:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13756,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13702,"src":"2204:11:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13702_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}}],"id":13757,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2203:13:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13702_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13702_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}],"expression":{"id":13753,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2185:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2189:6:38","memberName":"decode","nodeType":"MemberAccess","src":"2185:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2185:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2158:59:38"},{"expression":{"arguments":[{"expression":{"id":13761,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"2244:5:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":13762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2250:5:38","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":13698,"src":"2244:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13760,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2227:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13764,"nodeType":"ExpressionStatement","src":"2227:29:38"},{"body":{"id":13786,"nodeType":"Block","src":"2320:66:38","statements":[{"expression":{"id":13784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13777,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"2334:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13782,"indexExpression":{"baseExpression":{"expression":{"id":13778,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"2348:5:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":13779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2354:10:38","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":13701,"src":"2348:16:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13781,"indexExpression":{"id":13780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"2365:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:19:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2334:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2371:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2334:41:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13785,"nodeType":"ExpressionStatement","src":"2334:41:38"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13769,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"2286:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13770,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"2290:5:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":13771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2296:10:38","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":13701,"src":"2290:16:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2307:6:38","memberName":"length","nodeType":"MemberAccess","src":"2290:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2286:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13787,"initializationExpression":{"assignments":[13766],"declarations":[{"constant":false,"id":13766,"mutability":"mutable","name":"i","nameLocation":"2279:1:38","nodeType":"VariableDeclaration","scope":13787,"src":"2271:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13765,"name":"uint256","nodeType":"ElementaryTypeName","src":"2271:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13768,"initialValue":{"hexValue":"30","id":13767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2271:13:38"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2315:3:38","subExpression":{"id":13774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"2315:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13776,"nodeType":"ExpressionStatement","src":"2315:3:38"},"nodeType":"ForStatement","src":"2266:120:38"}]},"documentation":{"id":13742,"nodeType":"StructuredDocumentation","src":"1943:122:38","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":13789,"implemented":true,"kind":"function","modifiers":[{"id":13748,"kind":"modifierInvocation","modifierName":{"id":13747,"name":"initializer","nameLocations":["2136:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2136:11:38"},"nodeType":"ModifierInvocation","src":"2136:11:38"}],"name":"initialize","nameLocation":"2079:10:38","nodeType":"FunctionDefinition","overrides":{"id":13746,"nodeType":"OverrideSpecifier","overrides":[],"src":"2127:8:38"},"parameters":{"id":13745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13744,"mutability":"mutable","name":"data_","nameLocation":"2105:5:38","nodeType":"VariableDeclaration","scope":13789,"src":"2090:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13743,"name":"bytes","nodeType":"ElementaryTypeName","src":"2090:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2089:22:38"},"returnParameters":{"id":13749,"nodeType":"ParameterList","parameters":[],"src":"2148:0:38"},"scope":14680,"src":"2070:322:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13556],"body":{"id":13959,"nodeType":"Block","src":"2834:1588:38","statements":[{"assignments":[13800],"declarations":[{"constant":false,"id":13800,"mutability":"mutable","name":"request","nameLocation":"2860:7:38","nodeType":"VariableDeclaration","scope":13959,"src":"2844:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":13799,"nodeType":"UserDefinedTypeName","pathNode":{"id":13798,"name":"Transfer","nameLocations":["2844:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"2844:8:38"},"referencedDeclaration":13482,"src":"2844:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":13807,"initialValue":{"arguments":[{"id":13803,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"2881:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13804,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"2889:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":13805,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2888:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":13801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2870:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2874:6:38","memberName":"decode","nodeType":"MemberAccess","src":"2870:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2870:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"2844:55:38"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13808,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"2913:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2921:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"2913:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13810,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"2934:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2944:3:38","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"2934:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"2913:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13839,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3269:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3277:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"3269:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13841,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"3290:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3300:5:38","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"3290:15:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"3269:36:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13891,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3743:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3751:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"3743:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13893,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"3764:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3774:7:38","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"3764:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"3743:38:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13953,"nodeType":"Block","src":"4319:75:38","statements":[{"expression":{"hexValue":"66616c7365","id":13951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4378:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13797,"id":13952,"nodeType":"Return","src":"4371:12:38"}]},"id":13954,"nodeType":"IfStatement","src":"3739:655:38","trueBody":{"id":13950,"nodeType":"Block","src":"3783:530:38","statements":[{"assignments":[13898],"declarations":[{"constant":false,"id":13898,"mutability":"mutable","name":"payload","nameLocation":"3819:7:38","nodeType":"VariableDeclaration","scope":13950,"src":"3797:29:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":13897,"nodeType":"UserDefinedTypeName","pathNode":{"id":13896,"name":"ERC1155Payload","nameLocations":["3797:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13494,"src":"3797:14:38"},"referencedDeclaration":13494,"src":"3797:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":13906,"initialValue":{"arguments":[{"expression":{"id":13901,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3840:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3848:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3840:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13903,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"3855:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":13904,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3854:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":13899,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3829:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3833:6:38","memberName":"decode","nodeType":"MemberAccess","src":"3829:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"3797:74:38"},{"expression":{"arguments":[{"expression":{"id":13912,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"4023:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4031:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"4023:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13916,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4047:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4039:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13914,"name":"address","nodeType":"ElementaryTypeName","src":"4039:7:38","typeDescriptions":{}}},"id":13917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4039:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13918,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4054:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4062:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"4054:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13920,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4071:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4079:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"4071:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13922,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4087:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4095:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13493,"src":"4087:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":13908,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3974:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3982:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3974:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13907,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"3965:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":13910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3965:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":13911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3989:16:38","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"3965:40:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":13924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3965:148:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13925,"nodeType":"ExpressionStatement","src":"3965:148:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":13933,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4173:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4165:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13931,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:38","typeDescriptions":{}}},"id":13934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13935,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4180:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4188:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"4180:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13927,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"4140:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4148:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4140:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13926,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"4131:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":13929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4131:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":13930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4155:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"4131:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":13937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4131:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13938,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4199:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4207:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"4199:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4131:82:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13949,"nodeType":"IfStatement","src":"4127:176:38","trueBody":{"id":13948,"nodeType":"Block","src":"4215:88:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":13942,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"4258:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4266:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4258:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13944,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4273:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4281:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"4273:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13941,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"4240:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":13946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4240:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13947,"nodeType":"RevertStatement","src":"4233:55:38"}]}}]}},"id":13955,"nodeType":"IfStatement","src":"3265:1129:38","trueBody":{"id":13890,"nodeType":"Block","src":"3307:426:38","statements":[{"assignments":[13846],"declarations":[{"constant":false,"id":13846,"mutability":"mutable","name":"payload","nameLocation":"3344:7:38","nodeType":"VariableDeclaration","scope":13890,"src":"3321:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13845,"nodeType":"UserDefinedTypeName","pathNode":{"id":13844,"name":"FungiblePayload","nameLocations":["3321:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"3321:15:38"},"referencedDeclaration":13486,"src":"3321:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":13854,"initialValue":{"arguments":[{"expression":{"id":13849,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3365:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3373:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3365:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13851,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"3380:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":13852,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3379:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13847,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3354:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3358:6:38","memberName":"decode","nodeType":"MemberAccess","src":"3354:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3354:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3321:76:38"},{"expression":{"arguments":[{"expression":{"id":13860,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3514:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3522:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"3514:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13864,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3538:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3530:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13862,"name":"address","nodeType":"ElementaryTypeName","src":"3530:7:38","typeDescriptions":{}}},"id":13865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3530:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13866,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13846,"src":"3545:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3553:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3545:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13855,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3483:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3491:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3483:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3497:16:38","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":11177,"src":"3483:30:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":13868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3483:77:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13869,"nodeType":"ExpressionStatement","src":"3483:77:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":13875,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3610:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3602:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13873,"name":"address","nodeType":"ElementaryTypeName","src":"3602:7:38","typeDescriptions":{}}},"id":13876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3602:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13870,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3578:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3586:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3578:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3592:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"3578:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":13877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3578:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13878,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13846,"src":"3619:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3627:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3619:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3578:55:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13889,"nodeType":"IfStatement","src":"3574:149:38","trueBody":{"id":13888,"nodeType":"Block","src":"3635:88:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":13882,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3678:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3686:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3678:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13884,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13846,"src":"3693:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3701:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3693:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13881,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"3660:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":13886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3660:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13887,"nodeType":"RevertStatement","src":"3653:55:38"}]}}]}},"id":13956,"nodeType":"IfStatement","src":"2909:1485:38","trueBody":{"id":13838,"nodeType":"Block","src":"2949:310:38","statements":[{"assignments":[13815],"declarations":[{"constant":false,"id":13815,"mutability":"mutable","name":"payload","nameLocation":"2986:7:38","nodeType":"VariableDeclaration","scope":13838,"src":"2963:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13814,"nodeType":"UserDefinedTypeName","pathNode":{"id":13813,"name":"FungiblePayload","nameLocations":["2963:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"2963:15:38"},"referencedDeclaration":13486,"src":"2963:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":13823,"initialValue":{"arguments":[{"expression":{"id":13818,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3007:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3015:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3007:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13820,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"3022:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":13821,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3021:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2996:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3000:6:38","memberName":"decode","nodeType":"MemberAccess","src":"2996:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2996:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2963:76:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13824,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3132:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3136:5:38","memberName":"value","nodeType":"MemberAccess","src":"3132:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13826,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"3145:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3145:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3132:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13837,"nodeType":"IfStatement","src":"3128:121:38","trueBody":{"id":13836,"nodeType":"Block","src":"3161:88:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":13830,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3204:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3212:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3204:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13832,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"3219:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3227:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3219:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13829,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"3186:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":13834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13835,"nodeType":"RevertStatement","src":"3179:55:38"}]}}]}},{"expression":{"hexValue":"74727565","id":13957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4411:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13797,"id":13958,"nodeType":"Return","src":"4404:11:38"}]},"documentation":{"id":13790,"nodeType":"StructuredDocumentation","src":"2398:342:38","text":"@inheritdoc Budget\n @notice Allocates assets to the budget\n @param data_ The packed data for the {Transfer} request\n @return True if the allocation was successful\n @dev The caller must have already approved the contract to transfer the asset\n @dev If the asset transfer fails, the allocation will revert"},"functionSelector":"5aef467a","id":13960,"implemented":true,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"2754:8:38","nodeType":"FunctionDefinition","overrides":{"id":13794,"nodeType":"OverrideSpecifier","overrides":[],"src":"2810:8:38"},"parameters":{"id":13793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13792,"mutability":"mutable","name":"data_","nameLocation":"2778:5:38","nodeType":"VariableDeclaration","scope":13960,"src":"2763:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13791,"name":"bytes","nodeType":"ElementaryTypeName","src":"2763:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2762:22:38"},"returnParameters":{"id":13797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13960,"src":"2828:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13795,"name":"bool","nodeType":"ElementaryTypeName","src":"2828:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2827:6:38"},"scope":14680,"src":"2745:1677:38","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[13564],"body":{"id":14076,"nodeType":"Block","src":"4941:925:38","statements":[{"assignments":[13973],"declarations":[{"constant":false,"id":13973,"mutability":"mutable","name":"request","nameLocation":"4967:7:38","nodeType":"VariableDeclaration","scope":14076,"src":"4951:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":13972,"nodeType":"UserDefinedTypeName","pathNode":{"id":13971,"name":"Transfer","nameLocations":["4951:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"4951:8:38"},"referencedDeclaration":13482,"src":"4951:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":13980,"initialValue":{"arguments":[{"id":13976,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13963,"src":"4988:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13977,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"4996:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":13978,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4995:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":13974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4977:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4981:6:38","memberName":"decode","nodeType":"MemberAccess","src":"4977:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4977:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"4951:55:38"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13981,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5020:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5020:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13983,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5041:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5051:3:38","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"5041:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5020:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13986,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5058:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5066:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5058:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13988,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5079:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5089:5:38","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5079:15:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5058:36:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5020:74:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14022,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5364:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5372:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5364:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14024,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5385:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5395:7:38","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"5385:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5364:38:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14071,"nodeType":"Block","src":"5801:37:38","statements":[{"expression":{"hexValue":"66616c7365","id":14069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5822:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13970,"id":14070,"nodeType":"Return","src":"5815:12:38"}]},"id":14072,"nodeType":"IfStatement","src":"5360:478:38","trueBody":{"id":14068,"nodeType":"Block","src":"5404:391:38","statements":[{"assignments":[14029],"declarations":[{"constant":false,"id":14029,"mutability":"mutable","name":"payload","nameLocation":"5440:7:38","nodeType":"VariableDeclaration","scope":14068,"src":"5418:29:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":14028,"nodeType":"UserDefinedTypeName","pathNode":{"id":14027,"name":"ERC1155Payload","nameLocations":["5418:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13494,"src":"5418:14:38"},"referencedDeclaration":13494,"src":"5418:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":14037,"initialValue":{"arguments":[{"expression":{"id":14032,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5461:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5469:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"5461:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14034,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"5476:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":14035,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5475:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":14030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5450:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5454:6:38","memberName":"decode","nodeType":"MemberAccess","src":"5450:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5450:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"5418:74:38"},{"expression":{"arguments":[{"expression":{"id":14039,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5540:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5548:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5540:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14041,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5571:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5579:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"5571:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14043,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5603:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5611:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"5603:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14045,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5636:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5644:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"5636:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5654:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5636:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14061,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5726:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5734:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"5726:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5636:104:38","trueExpression":{"arguments":[{"arguments":[{"id":14056,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5700:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5692:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14054,"name":"address","nodeType":"ElementaryTypeName","src":"5692:7:38","typeDescriptions":{}}},"id":14057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5692:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14058,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5707:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5715:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"5707:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":14050,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5667:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5675:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5667:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14049,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"5658:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5682:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"5658:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14064,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5758:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5766:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13493,"src":"5758:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14038,"name":"_transferERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"5506:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5506:278:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14067,"nodeType":"ExpressionStatement","src":"5506:278:38"}]}},"id":14073,"nodeType":"IfStatement","src":"5016:822:38","trueBody":{"id":14021,"nodeType":"Block","src":"5096:258:38","statements":[{"assignments":[13994],"declarations":[{"constant":false,"id":13994,"mutability":"mutable","name":"payload","nameLocation":"5133:7:38","nodeType":"VariableDeclaration","scope":14021,"src":"5110:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13993,"nodeType":"UserDefinedTypeName","pathNode":{"id":13992,"name":"FungiblePayload","nameLocations":["5110:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"5110:15:38"},"referencedDeclaration":13486,"src":"5110:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14002,"initialValue":{"arguments":[{"expression":{"id":13997,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5154:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5162:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"5154:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13999,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"5169:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14000,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5168:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13995,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5143:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5147:6:38","memberName":"decode","nodeType":"MemberAccess","src":"5143:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5143:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5110:76:38"},{"expression":{"arguments":[{"expression":{"id":14004,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5235:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5243:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5235:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14006,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5250:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5258:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"5250:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14008,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"5266:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5274:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5266:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5284:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5266:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14016,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"5315:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5323:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5315:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5266:63:38","trueExpression":{"arguments":[{"expression":{"id":14013,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5298:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5306:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5298:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14012,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"5288:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5288:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14003,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14535,"src":"5200:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5200:143:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14020,"nodeType":"ExpressionStatement","src":"5200:143:38"}]}},{"expression":{"hexValue":"74727565","id":14074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5855:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13970,"id":14075,"nodeType":"Return","src":"5848:11:38"}]},"documentation":{"id":13961,"nodeType":"StructuredDocumentation","src":"4428:418:38","text":"@inheritdoc Budget\n @notice Reclaims assets from the budget\n @param data_ The packed {Transfer} request\n @return True if the request was successful\n @dev Only the owner can directly reclaim assets from the budget\n @dev If the amount is zero, the entire balance of the asset will be transferred to the receiver\n @dev If the asset transfer fails, the reclamation will revert"},"functionSelector":"f1c30ec0","id":14077,"implemented":true,"kind":"function","modifiers":[{"id":13967,"kind":"modifierInvocation","modifierName":{"id":13966,"name":"onlyOwner","nameLocations":["4916:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4916:9:38"},"nodeType":"ModifierInvocation","src":"4916:9:38"}],"name":"reclaim","nameLocation":"4860:7:38","nodeType":"FunctionDefinition","overrides":{"id":13965,"nodeType":"OverrideSpecifier","overrides":[],"src":"4907:8:38"},"parameters":{"id":13964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13963,"mutability":"mutable","name":"data_","nameLocation":"4883:5:38","nodeType":"VariableDeclaration","scope":14077,"src":"4868:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13962,"name":"bytes","nodeType":"ElementaryTypeName","src":"4868:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4867:22:38"},"returnParameters":{"id":13970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14077,"src":"4935:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13968,"name":"bool","nodeType":"ElementaryTypeName","src":"4935:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4934:6:38"},"scope":14680,"src":"4851:1015:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13572],"body":{"id":14217,"nodeType":"Block","src":"6242:1087:38","statements":[{"assignments":[14090],"declarations":[{"constant":false,"id":14090,"mutability":"mutable","name":"request","nameLocation":"6268:7:38","nodeType":"VariableDeclaration","scope":14217,"src":"6252:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14089,"nodeType":"UserDefinedTypeName","pathNode":{"id":14088,"name":"Transfer","nameLocations":["6252:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"6252:8:38"},"referencedDeclaration":13482,"src":"6252:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14097,"initialValue":{"arguments":[{"id":14093,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14080,"src":"6289:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14094,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"6297:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6296:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6278:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6282:6:38","memberName":"decode","nodeType":"MemberAccess","src":"6278:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6278:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"6252:55:38"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14098,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6321:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6329:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6321:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14100,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6342:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6352:5:38","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"6342:15:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6321:36:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14103,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6361:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6369:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6361:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14105,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6382:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6392:3:38","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"6382:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6361:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6321:74:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14151,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6778:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6786:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6778:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14153,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6799:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6809:7:38","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"6799:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6778:38:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14212,"nodeType":"Block","src":"7264:37:38","statements":[{"expression":{"hexValue":"66616c7365","id":14210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7285:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14087,"id":14211,"nodeType":"Return","src":"7278:12:38"}]},"id":14213,"nodeType":"IfStatement","src":"6774:527:38","trueBody":{"id":14209,"nodeType":"Block","src":"6818:440:38","statements":[{"assignments":[14158],"declarations":[{"constant":false,"id":14158,"mutability":"mutable","name":"payload","nameLocation":"6854:7:38","nodeType":"VariableDeclaration","scope":14209,"src":"6832:29:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":14157,"nodeType":"UserDefinedTypeName","pathNode":{"id":14156,"name":"ERC1155Payload","nameLocations":["6832:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13494,"src":"6832:14:38"},"referencedDeclaration":13494,"src":"6832:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":14166,"initialValue":{"arguments":[{"expression":{"id":14161,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6875:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6883:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"6875:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14163,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"6890:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":14164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6889:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":14159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6864:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6868:6:38","memberName":"decode","nodeType":"MemberAccess","src":"6864:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6864:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"6832:74:38"},{"assignments":[14168],"declarations":[{"constant":false,"id":14168,"mutability":"mutable","name":"avail","nameLocation":"6929:5:38","nodeType":"VariableDeclaration","scope":14209,"src":"6921:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14167,"name":"uint256","nodeType":"ElementaryTypeName","src":"6921:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14181,"initialValue":{"arguments":[{"arguments":[{"id":14176,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6979:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6971:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14174,"name":"address","nodeType":"ElementaryTypeName","src":"6971:7:38","typeDescriptions":{}}},"id":14177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6971:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14178,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"6986:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6994:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"6986:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":14170,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6946:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6954:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6946:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14169,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"6937:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6937:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6961:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"6937:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6937:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6921:81:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14182,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7020:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7028:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"7020:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14184,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14168,"src":"7037:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7020:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14195,"nodeType":"IfStatement","src":"7016:123:38","trueBody":{"id":14194,"nodeType":"Block","src":"7044:95:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":14187,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"7087:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7095:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"7087:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14189,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14168,"src":"7102:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14190,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7109:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7117:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"7109:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14186,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"7069:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7069:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14193,"nodeType":"RevertStatement","src":"7062:62:38"}]}},{"expression":{"arguments":[{"expression":{"id":14197,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"7170:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7178:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"7170:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14199,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"7185:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7193:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"7185:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14201,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7201:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7209:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"7201:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14203,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7218:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7226:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"7218:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14205,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7234:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7242:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13493,"src":"7234:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14196,"name":"_transferERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"7153:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":14207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7153:94:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14208,"nodeType":"ExpressionStatement","src":"7153:94:38"}]}},"id":14214,"nodeType":"IfStatement","src":"6317:984:38","trueBody":{"id":14150,"nodeType":"Block","src":"6397:371:38","statements":[{"assignments":[14111],"declarations":[{"constant":false,"id":14111,"mutability":"mutable","name":"payload","nameLocation":"6434:7:38","nodeType":"VariableDeclaration","scope":14150,"src":"6411:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14110,"nodeType":"UserDefinedTypeName","pathNode":{"id":14109,"name":"FungiblePayload","nameLocations":["6411:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"6411:15:38"},"referencedDeclaration":13486,"src":"6411:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14119,"initialValue":{"arguments":[{"expression":{"id":14114,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6455:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6463:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"6455:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14116,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"6470:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6469:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6444:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6448:6:38","memberName":"decode","nodeType":"MemberAccess","src":"6444:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6444:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6411:76:38"},{"assignments":[14121],"declarations":[{"constant":false,"id":14121,"mutability":"mutable","name":"avail","nameLocation":"6510:5:38","nodeType":"VariableDeclaration","scope":14150,"src":"6502:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14120,"name":"uint256","nodeType":"ElementaryTypeName","src":"6502:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14126,"initialValue":{"arguments":[{"expression":{"id":14123,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6528:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6536:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6528:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14122,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"6518:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6518:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6502:40:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14127,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"6560:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6568:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6560:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14129,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14121,"src":"6577:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6560:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14140,"nodeType":"IfStatement","src":"6556:123:38","trueBody":{"id":14139,"nodeType":"Block","src":"6584:95:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":14132,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6627:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6635:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6627:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14134,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14121,"src":"6642:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14135,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"6649:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6657:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6649:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14131,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"6609:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6609:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14138,"nodeType":"RevertStatement","src":"6602:62:38"}]}},{"expression":{"arguments":[{"expression":{"id":14142,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6711:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6719:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6711:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14144,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6726:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6734:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"6726:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14146,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"6742:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6750:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6742:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14141,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14535,"src":"6693:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6693:64:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14149,"nodeType":"ExpressionStatement","src":"6693:64:38"}]}},{"expression":{"hexValue":"74727565","id":14215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7318:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14087,"id":14216,"nodeType":"Return","src":"7311:11:38"}]},"documentation":{"id":14078,"nodeType":"StructuredDocumentation","src":"5872:271:38","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to a single recipient\n @param data_ The packed {Transfer} request\n @return True if the disbursement was successful\n @dev If the asset transfer fails, the disbursement will revert"},"functionSelector":"fa4ca9b1","id":14218,"implemented":true,"kind":"function","modifiers":[{"id":14084,"kind":"modifierInvocation","modifierName":{"id":14083,"name":"onlyAuthorized","nameLocations":["6212:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13733,"src":"6212:14:38"},"nodeType":"ModifierInvocation","src":"6212:14:38"}],"name":"disburse","nameLocation":"6157:8:38","nodeType":"FunctionDefinition","overrides":{"id":14082,"nodeType":"OverrideSpecifier","overrides":[],"src":"6203:8:38"},"parameters":{"id":14081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14080,"mutability":"mutable","name":"data_","nameLocation":"6181:5:38","nodeType":"VariableDeclaration","scope":14218,"src":"6166:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14079,"name":"bytes","nodeType":"ElementaryTypeName","src":"6166:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6165:22:38"},"returnParameters":{"id":14087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14218,"src":"6236:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14085,"name":"bool","nodeType":"ElementaryTypeName","src":"6236:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6235:6:38"},"scope":14680,"src":"6148:1181:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13581],"body":{"id":14252,"nodeType":"Block","src":"7641:143:38","statements":[{"body":{"id":14248,"nodeType":"Block","src":"7694:62:38","statements":[{"condition":{"id":14244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7712:19:38","subExpression":{"arguments":[{"baseExpression":{"id":14240,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"7722:5:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":14242,"indexExpression":{"id":14241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14229,"src":"7728:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7722:8:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14239,"name":"disburse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14218,"src":"7713:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) returns (bool)"}},"id":14243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7713:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14247,"nodeType":"IfStatement","src":"7708:37:38","trueBody":{"expression":{"hexValue":"66616c7365","id":14245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7740:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14227,"id":14246,"nodeType":"Return","src":"7733:12:38"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14229,"src":"7671:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14233,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"7675:5:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":14234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7681:6:38","memberName":"length","nodeType":"MemberAccess","src":"7675:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7671:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14249,"initializationExpression":{"assignments":[14229],"declarations":[{"constant":false,"id":14229,"mutability":"mutable","name":"i","nameLocation":"7664:1:38","nodeType":"VariableDeclaration","scope":14249,"src":"7656:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14228,"name":"uint256","nodeType":"ElementaryTypeName","src":"7656:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14231,"initialValue":{"hexValue":"30","id":14230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7668:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7656:13:38"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7689:3:38","subExpression":{"id":14236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14229,"src":"7689:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14238,"nodeType":"ExpressionStatement","src":"7689:3:38"},"nodeType":"ForStatement","src":"7651:105:38"},{"expression":{"hexValue":"74727565","id":14250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7773:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14227,"id":14251,"nodeType":"Return","src":"7766:11:38"}]},"documentation":{"id":14219,"nodeType":"StructuredDocumentation","src":"7335:213:38","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to multiple recipients\n @param data_ The packed array of {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":14253,"implemented":true,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"7562:13:38","nodeType":"FunctionDefinition","overrides":{"id":14224,"nodeType":"OverrideSpecifier","overrides":[],"src":"7617:8:38"},"parameters":{"id":14223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14222,"mutability":"mutable","name":"data_","nameLocation":"7593:5:38","nodeType":"VariableDeclaration","scope":14253,"src":"7576:22:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14220,"name":"bytes","nodeType":"ElementaryTypeName","src":"7576:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14221,"nodeType":"ArrayTypeName","src":"7576:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7575:24:38"},"returnParameters":{"id":14227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14253,"src":"7635:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14225,"name":"bool","nodeType":"ElementaryTypeName","src":"7635:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7634:6:38"},"scope":14680,"src":"7553:231:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13646],"body":{"id":14298,"nodeType":"Block","src":"7970:206:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14266,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"7984:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7993:6:38","memberName":"length","nodeType":"MemberAccess","src":"7984:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14268,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14260,"src":"8003:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8015:6:38","memberName":"length","nodeType":"MemberAccess","src":"8003:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7984:37:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14274,"nodeType":"IfStatement","src":"7980:66:38","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14271,"name":"LengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13529,"src":"8030:14:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8030:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14273,"nodeType":"RevertStatement","src":"8023:23:38"}},{"body":{"id":14296,"nodeType":"Block","src":"8102:68:38","statements":[{"expression":{"id":14294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14286,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"8116:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14290,"indexExpression":{"baseExpression":{"id":14287,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"8130:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14289,"indexExpression":{"id":14288,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8139:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8130:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8116:26:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":14291,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14260,"src":"8145:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":14293,"indexExpression":{"id":14292,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8157:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8145:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8116:43:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14295,"nodeType":"ExpressionStatement","src":"8116:43:38"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8076:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14280,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"8080:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8089:6:38","memberName":"length","nodeType":"MemberAccess","src":"8080:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14297,"initializationExpression":{"assignments":[14276],"declarations":[{"constant":false,"id":14276,"mutability":"mutable","name":"i","nameLocation":"8069:1:38","nodeType":"VariableDeclaration","scope":14297,"src":"8061:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14275,"name":"uint256","nodeType":"ElementaryTypeName","src":"8061:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14278,"initialValue":{"hexValue":"30","id":14277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8073:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8061:13:38"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8097:3:38","subExpression":{"id":14283,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8097:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14285,"nodeType":"ExpressionStatement","src":"8097:3:38"},"nodeType":"ForStatement","src":"8056:114:38"}]},"documentation":{"id":14254,"nodeType":"StructuredDocumentation","src":"7790:22:38","text":"@inheritdoc Budget"},"functionSelector":"4359d28a","id":14299,"implemented":true,"kind":"function","modifiers":[{"id":14264,"kind":"modifierInvocation","modifierName":{"id":14263,"name":"onlyOwner","nameLocations":["7956:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7956:9:38"},"nodeType":"ModifierInvocation","src":"7956:9:38"}],"name":"setAuthorized","nameLocation":"7826:13:38","nodeType":"FunctionDefinition","overrides":{"id":14262,"nodeType":"OverrideSpecifier","overrides":[],"src":"7939:8:38"},"parameters":{"id":14261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14257,"mutability":"mutable","name":"account_","nameLocation":"7859:8:38","nodeType":"VariableDeclaration","scope":14299,"src":"7840:27:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14255,"name":"address","nodeType":"ElementaryTypeName","src":"7840:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14256,"nodeType":"ArrayTypeName","src":"7840:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14260,"mutability":"mutable","name":"authorized_","nameLocation":"7885:11:38","nodeType":"VariableDeclaration","scope":14299,"src":"7869:27:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14258,"name":"bool","nodeType":"ElementaryTypeName","src":"7869:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14259,"nodeType":"ArrayTypeName","src":"7869:6:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"7839:58:38"},"returnParameters":{"id":14265,"nodeType":"ParameterList","parameters":[],"src":"7970:0:38"},"scope":14680,"src":"7817:359:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13654],"body":{"id":14317,"nodeType":"Block","src":"8293:70:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":14308,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"8310:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14310,"indexExpression":{"id":14309,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14302,"src":"8324:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8310:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14311,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14302,"src":"8337:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14312,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6404,"src":"8349:5:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8349:7:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8337:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8310:46:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14307,"id":14316,"nodeType":"Return","src":"8303:53:38"}]},"documentation":{"id":14300,"nodeType":"StructuredDocumentation","src":"8182:22:38","text":"@inheritdoc Budget"},"functionSelector":"fe9fbb80","id":14318,"implemented":true,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"8218:12:38","nodeType":"FunctionDefinition","overrides":{"id":14304,"nodeType":"OverrideSpecifier","overrides":[],"src":"8269:8:38"},"parameters":{"id":14303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14302,"mutability":"mutable","name":"account_","nameLocation":"8239:8:38","nodeType":"VariableDeclaration","scope":14318,"src":"8231:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14301,"name":"address","nodeType":"ElementaryTypeName","src":"8231:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8230:18:38"},"returnParameters":{"id":14307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14318,"src":"8287:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14305,"name":"bool","nodeType":"ElementaryTypeName","src":"8287:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8286:6:38"},"scope":14680,"src":"8209:154:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[13589],"body":{"id":14335,"nodeType":"Block","src":"8765:72:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14328,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14321,"src":"8792:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14327,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"8782:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8782:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":14330,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"8802:20:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14332,"indexExpression":{"id":14331,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14321,"src":"8823:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8802:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8782:48:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14326,"id":14334,"nodeType":"Return","src":"8775:55:38"}]},"documentation":{"id":14319,"nodeType":"StructuredDocumentation","src":"8369:311:38","text":"@inheritdoc Budget\n @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets\n @dev This is simply the sum of the current balance and the distributed amount"},"functionSelector":"d2514e84","id":14336,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"8694:5:38","nodeType":"FunctionDefinition","overrides":{"id":14323,"nodeType":"OverrideSpecifier","overrides":[],"src":"8738:8:38"},"parameters":{"id":14322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14321,"mutability":"mutable","name":"asset_","nameLocation":"8708:6:38","nodeType":"VariableDeclaration","scope":14336,"src":"8700:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14320,"name":"address","nodeType":"ElementaryTypeName","src":"8700:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8699:16:38"},"returnParameters":{"id":14326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14336,"src":"8756:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14324,"name":"uint256","nodeType":"ElementaryTypeName","src":"8756:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8755:9:38"},"scope":14680,"src":"8685:152:38","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":14363,"nodeType":"Block","src":"9187:115:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":14352,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9239:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9231:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14350,"name":"address","nodeType":"ElementaryTypeName","src":"9231:7:38","typeDescriptions":{}}},"id":14353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9231:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14354,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"9246:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14347,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"9213:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14346,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"9204:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9221:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"9204:26:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"baseExpression":{"id":14356,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13714,"src":"9258:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14358,"indexExpression":{"id":14357,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"9278:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9258:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14360,"indexExpression":{"id":14359,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"9286:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9258:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9204:91:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14345,"id":14362,"nodeType":"Return","src":"9197:98:38"}]},"documentation":{"id":14337,"nodeType":"StructuredDocumentation","src":"8843:250:38","text":"@notice Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The total amount of assets"},"functionSelector":"f9a802c3","id":14364,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"9107:5:38","nodeType":"FunctionDefinition","parameters":{"id":14342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14339,"mutability":"mutable","name":"asset_","nameLocation":"9121:6:38","nodeType":"VariableDeclaration","scope":14364,"src":"9113:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14338,"name":"address","nodeType":"ElementaryTypeName","src":"9113:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14341,"mutability":"mutable","name":"tokenId_","nameLocation":"9137:8:38","nodeType":"VariableDeclaration","scope":14364,"src":"9129:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14340,"name":"uint256","nodeType":"ElementaryTypeName","src":"9129:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9112:34:38"},"returnParameters":{"id":14345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14364,"src":"9178:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14343,"name":"uint256","nodeType":"ElementaryTypeName","src":"9178:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9177:9:38"},"scope":14680,"src":"9098:204:38","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13597],"body":{"id":14393,"nodeType":"Block","src":"9791:102:38","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14373,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14367,"src":"9808:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9826:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9818:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14374,"name":"address","nodeType":"ElementaryTypeName","src":"9818:7:38","typeDescriptions":{}}},"id":14377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9818:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9808:20:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":14388,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9880:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9872:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14386,"name":"address","nodeType":"ElementaryTypeName","src":"9872:7:38","typeDescriptions":{}}},"id":14389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9872:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14384,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14367,"src":"9855:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9862:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"9855:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":14390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9855:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9808:78:38","trueExpression":{"expression":{"arguments":[{"id":14381,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9839:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9831:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14379,"name":"address","nodeType":"ElementaryTypeName","src":"9831:7:38","typeDescriptions":{}}},"id":14382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9831:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9845:7:38","memberName":"balance","nodeType":"MemberAccess","src":"9831:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14372,"id":14392,"nodeType":"Return","src":"9801:85:38"}]},"documentation":{"id":14365,"nodeType":"StructuredDocumentation","src":"9308:396:38","text":"@inheritdoc Budget\n @notice Get the amount of assets available for distribution from the budget\n @param asset_ The address of the asset (or the zero address for native assets)\n @return The amount of assets available\n @dev This is simply the current balance held by the budget\n @dev If the zero address is passed, this function will return the native balance"},"functionSelector":"10098ad5","id":14394,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"9718:9:38","nodeType":"FunctionDefinition","overrides":{"id":14369,"nodeType":"OverrideSpecifier","overrides":[],"src":"9764:8:38"},"parameters":{"id":14368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14367,"mutability":"mutable","name":"asset_","nameLocation":"9736:6:38","nodeType":"VariableDeclaration","scope":14394,"src":"9728:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14366,"name":"address","nodeType":"ElementaryTypeName","src":"9728:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9727:16:38"},"returnParameters":{"id":14372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14394,"src":"9782:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14370,"name":"uint256","nodeType":"ElementaryTypeName","src":"9782:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9781:9:38"},"scope":14680,"src":"9709:184:38","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14415,"nodeType":"Block","src":"10220:75:38","statements":[{"expression":{"arguments":[{"arguments":[{"id":14410,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10272:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10264:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14408,"name":"address","nodeType":"ElementaryTypeName","src":"10264:7:38","typeDescriptions":{}}},"id":14411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10264:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14412,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14399,"src":"10279:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14405,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14397,"src":"10246:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14404,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"10237:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10237:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10254:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"10237:26:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10237:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14403,"id":14414,"nodeType":"Return","src":"10230:58:38"}]},"documentation":{"id":14395,"nodeType":"StructuredDocumentation","src":"9899:225:38","text":"@notice Get the amount of ERC1155 assets available for distribution from the budget\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The amount of assets available"},"functionSelector":"f8724aba","id":14416,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"10138:9:38","nodeType":"FunctionDefinition","parameters":{"id":14400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14397,"mutability":"mutable","name":"asset_","nameLocation":"10156:6:38","nodeType":"VariableDeclaration","scope":14416,"src":"10148:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14396,"name":"address","nodeType":"ElementaryTypeName","src":"10148:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14399,"mutability":"mutable","name":"tokenId_","nameLocation":"10172:8:38","nodeType":"VariableDeclaration","scope":14416,"src":"10164:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14398,"name":"uint256","nodeType":"ElementaryTypeName","src":"10164:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10147:34:38"},"returnParameters":{"id":14403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14416,"src":"10211:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14401,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10210:9:38"},"scope":14680,"src":"10129:166:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[13605],"body":{"id":14429,"nodeType":"Block","src":"10594:52:38","statements":[{"expression":{"baseExpression":{"id":14425,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"10611:20:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14427,"indexExpression":{"id":14426,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14419,"src":"10632:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10611:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14424,"id":14428,"nodeType":"Return","src":"10604:35:38"}]},"documentation":{"id":14417,"nodeType":"StructuredDocumentation","src":"10301:202:38","text":"@inheritdoc Budget\n @notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":14430,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"10517:11:38","nodeType":"FunctionDefinition","overrides":{"id":14421,"nodeType":"OverrideSpecifier","overrides":[],"src":"10567:8:38"},"parameters":{"id":14420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14419,"mutability":"mutable","name":"asset_","nameLocation":"10537:6:38","nodeType":"VariableDeclaration","scope":14430,"src":"10529:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14418,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10528:16:38"},"returnParameters":{"id":14424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14430,"src":"10585:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14422,"name":"uint256","nodeType":"ElementaryTypeName","src":"10585:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10584:9:38"},"scope":14680,"src":"10508:138:38","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":14446,"nodeType":"Block","src":"10979:61:38","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":14440,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13714,"src":"10996:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14442,"indexExpression":{"id":14441,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14433,"src":"11016:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10996:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14444,"indexExpression":{"id":14443,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14435,"src":"11024:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10996:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14439,"id":14445,"nodeType":"Return","src":"10989:44:38"}]},"documentation":{"id":14431,"nodeType":"StructuredDocumentation","src":"10652:227:38","text":"@notice Get the amount of ERC1155 assets that have been distributed from the budget\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The amount of assets distributed"},"functionSelector":"774c33ab","id":14447,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"10893:11:38","nodeType":"FunctionDefinition","parameters":{"id":14436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14433,"mutability":"mutable","name":"asset_","nameLocation":"10913:6:38","nodeType":"VariableDeclaration","scope":14447,"src":"10905:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14432,"name":"address","nodeType":"ElementaryTypeName","src":"10905:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14435,"mutability":"mutable","name":"tokenId_","nameLocation":"10929:8:38","nodeType":"VariableDeclaration","scope":14447,"src":"10921:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14434,"name":"uint256","nodeType":"ElementaryTypeName","src":"10921:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10904:34:38"},"returnParameters":{"id":14439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14447,"src":"10970:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14437,"name":"uint256","nodeType":"ElementaryTypeName","src":"10970:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10969:9:38"},"scope":14680,"src":"10884:156:38","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13613],"body":{"id":14458,"nodeType":"Block","src":"11223:25:38","statements":[{"expression":{"hexValue":"30","id":14456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11240:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14455,"id":14457,"nodeType":"Return","src":"11233:8:38"}]},"documentation":{"id":14448,"nodeType":"StructuredDocumentation","src":"11046:93:38","text":"@inheritdoc Budget\n @dev This is a no-op as there is no local balance to reconcile"},"functionSelector":"451cc191","id":14459,"implemented":true,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"11153:9:38","nodeType":"FunctionDefinition","overrides":{"id":14452,"nodeType":"OverrideSpecifier","overrides":[],"src":"11196:8:38"},"parameters":{"id":14451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14459,"src":"11163:14:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14449,"name":"bytes","nodeType":"ElementaryTypeName","src":"11163:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11162:16:38"},"returnParameters":{"id":14455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14459,"src":"11214:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14453,"name":"uint256","nodeType":"ElementaryTypeName","src":"11214:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11213:9:38"},"scope":14680,"src":"11144:104:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":14534,"nodeType":"Block","src":"11810:605:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14471,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"11903:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11918:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11910:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14472,"name":"address","nodeType":"ElementaryTypeName","src":"11910:7:38","typeDescriptions":{}}},"id":14475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11910:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11903:17:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14483,"nodeType":"IfStatement","src":"11899:66:38","trueBody":{"errorCall":{"arguments":[{"id":14478,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"11944:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14479,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"11952:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14480,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"11957:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14477,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"11929:14:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) pure"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11929:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14482,"nodeType":"RevertStatement","src":"11922:43:38"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14484,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"11979:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":14486,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"11999:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14485,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"11989:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11979:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14498,"nodeType":"IfStatement","src":"11975:118:38","trueBody":{"id":14497,"nodeType":"Block","src":"12008:85:38","statements":[{"errorCall":{"arguments":[{"id":14490,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12047:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14492,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12065:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14491,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"12055:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12055:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14494,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12074:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14489,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"12029:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12029:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14496,"nodeType":"RevertStatement","src":"12022:60:38"}]}},{"expression":{"id":14503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14499,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"12103:20:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14501,"indexExpression":{"id":14500,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12124:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12103:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":14502,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12135:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12103:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14504,"nodeType":"ExpressionStatement","src":"12103:39:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14505,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12204:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12222:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12214:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14506,"name":"address","nodeType":"ElementaryTypeName","src":"12214:7:38","typeDescriptions":{}}},"id":14509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12214:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12204:20:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14526,"nodeType":"Block","src":"12302:58:38","statements":[{"expression":{"arguments":[{"id":14522,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"12336:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14523,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12341:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14519,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12316:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12323:12:38","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"12316:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":14524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12316:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14525,"nodeType":"ExpressionStatement","src":"12316:33:38"}]},"id":14527,"nodeType":"IfStatement","src":"12200:160:38","trueBody":{"id":14518,"nodeType":"Block","src":"12226:70:38","statements":[{"expression":{"arguments":[{"id":14514,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"12272:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14515,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12277:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14511,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"12240:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$11372_$","typeString":"type(library SafeTransferLib)"}},"id":14513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12256:15:38","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"12240:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12240:45:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14517,"nodeType":"ExpressionStatement","src":"12240:45:38"}]}},{"eventCall":{"arguments":[{"id":14529,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12387:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14530,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"12395:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14531,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12400:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14528,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"12375:11:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12375:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14533,"nodeType":"EmitStatement","src":"12370:38:38"}]},"documentation":{"id":14460,"nodeType":"StructuredDocumentation","src":"11254:448:38","text":"@notice Transfer assets to the recipient\n @param asset_ The address of the asset\n @param to_ The address of the recipient\n @param amount_ The amount of the asset to transfer\n @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert"},"id":14535,"implemented":true,"kind":"function","modifiers":[{"id":14469,"kind":"modifierInvocation","modifierName":{"id":14468,"name":"nonReentrant","nameLocations":["11797:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"11797:12:38"},"nodeType":"ModifierInvocation","src":"11797:12:38"}],"name":"_transferFungible","nameLocation":"11716:17:38","nodeType":"FunctionDefinition","parameters":{"id":14467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14462,"mutability":"mutable","name":"asset_","nameLocation":"11742:6:38","nodeType":"VariableDeclaration","scope":14535,"src":"11734:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14461,"name":"address","nodeType":"ElementaryTypeName","src":"11734:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14464,"mutability":"mutable","name":"to_","nameLocation":"11758:3:38","nodeType":"VariableDeclaration","scope":14535,"src":"11750:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14463,"name":"address","nodeType":"ElementaryTypeName","src":"11750:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14466,"mutability":"mutable","name":"amount_","nameLocation":"11771:7:38","nodeType":"VariableDeclaration","scope":14535,"src":"11763:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14465,"name":"uint256","nodeType":"ElementaryTypeName","src":"11763:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11733:46:38"},"returnParameters":{"id":14470,"nodeType":"ParameterList","parameters":[],"src":"11810:0:38"},"scope":14680,"src":"11707:708:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":14608,"nodeType":"Block","src":"12589:652:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14550,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"12682:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12697:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12689:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14551,"name":"address","nodeType":"ElementaryTypeName","src":"12689:7:38","typeDescriptions":{}}},"id":14554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12689:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12682:17:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14562,"nodeType":"IfStatement","src":"12678:66:38","trueBody":{"errorCall":{"arguments":[{"id":14557,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12723:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14558,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"12731:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14559,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12736:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14556,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"12708:14:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) pure"}},"id":14560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12708:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14561,"nodeType":"RevertStatement","src":"12701:43:38"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14563,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12758:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":14565,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12778:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14566,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"12786:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14564,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14416,"src":"12768:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12768:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12758:37:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14579,"nodeType":"IfStatement","src":"12754:138:38","trueBody":{"id":14578,"nodeType":"Block","src":"12797:95:38","statements":[{"errorCall":{"arguments":[{"id":14570,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12836:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14572,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12854:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14573,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"12862:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14571,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14416,"src":"12844:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12844:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14575,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12873:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14569,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"12818:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12818:63:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14577,"nodeType":"RevertStatement","src":"12811:70:38"}]}},{"expression":{"id":14586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":14580,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13714,"src":"12902:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14583,"indexExpression":{"id":14581,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12922:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12902:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14584,"indexExpression":{"id":14582,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"12930:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12902:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":14585,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12943:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12902:48:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14587,"nodeType":"ExpressionStatement","src":"12902:48:38"},{"expression":{"arguments":[{"arguments":[{"id":14594,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13148:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13140:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14592,"name":"address","nodeType":"ElementaryTypeName","src":"13140:7:38","typeDescriptions":{}}},"id":14595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13140:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14596,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"13155:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14597,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"13160:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14598,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"13170:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14599,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14545,"src":"13179:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":14589,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"13115:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14588,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"13106:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13106:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13123:16:38","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"13106:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":14600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13106:79:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14601,"nodeType":"ExpressionStatement","src":"13106:79:38"},{"eventCall":{"arguments":[{"id":14603,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"13213:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14604,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"13221:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14605,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"13226:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14602,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"13201:11:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13201:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14607,"nodeType":"EmitStatement","src":"13196:38:38"}]},"id":14609,"implemented":true,"kind":"function","modifiers":[{"id":14548,"kind":"modifierInvocation","modifierName":{"id":14547,"name":"nonReentrant","nameLocations":["12572:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"12572:12:38"},"nodeType":"ModifierInvocation","src":"12572:12:38"}],"name":"_transferERC1155","nameLocation":"12430:16:38","nodeType":"FunctionDefinition","parameters":{"id":14546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14537,"mutability":"mutable","name":"asset_","nameLocation":"12455:6:38","nodeType":"VariableDeclaration","scope":14609,"src":"12447:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14536,"name":"address","nodeType":"ElementaryTypeName","src":"12447:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14539,"mutability":"mutable","name":"to_","nameLocation":"12471:3:38","nodeType":"VariableDeclaration","scope":14609,"src":"12463:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14538,"name":"address","nodeType":"ElementaryTypeName","src":"12463:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14541,"mutability":"mutable","name":"tokenId_","nameLocation":"12484:8:38","nodeType":"VariableDeclaration","scope":14609,"src":"12476:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14540,"name":"uint256","nodeType":"ElementaryTypeName","src":"12476:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14543,"mutability":"mutable","name":"amount_","nameLocation":"12502:7:38","nodeType":"VariableDeclaration","scope":14609,"src":"12494:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14542,"name":"uint256","nodeType":"ElementaryTypeName","src":"12494:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14545,"mutability":"mutable","name":"data_","nameLocation":"12524:5:38","nodeType":"VariableDeclaration","scope":14609,"src":"12511:18:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14544,"name":"bytes","nodeType":"ElementaryTypeName","src":"12511:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12446:84:38"},"returnParameters":{"id":14549,"nodeType":"ParameterList","parameters":[],"src":"12589:0:38"},"scope":14680,"src":"12421:820:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1213],"body":{"id":14630,"nodeType":"Block","src":"13602:112:38","statements":[{"expression":{"expression":{"expression":{"id":14626,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"13664:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":14627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13681:17:38","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"13664:34:38","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)"}},"id":14628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13699:8:38","memberName":"selector","nodeType":"MemberAccess","src":"13664:43:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":14625,"id":14629,"nodeType":"Return","src":"13657:50:38"}]},"documentation":{"id":14610,"nodeType":"StructuredDocumentation","src":"13247:195:38","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)"},"functionSelector":"f23a6e61","id":14631,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"13456:17:38","nodeType":"FunctionDefinition","overrides":{"id":14622,"nodeType":"OverrideSpecifier","overrides":[],"src":"13564:8:38"},"parameters":{"id":14621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13474:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14611,"name":"address","nodeType":"ElementaryTypeName","src":"13474:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13483:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14613,"name":"address","nodeType":"ElementaryTypeName","src":"13483:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13492:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14615,"name":"uint256","nodeType":"ElementaryTypeName","src":"13492:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13501:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14617,"name":"uint256","nodeType":"ElementaryTypeName","src":"13501:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13510:14:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14619,"name":"bytes","nodeType":"ElementaryTypeName","src":"13510:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13473:52:38"},"returnParameters":{"id":14625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13590:6:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14623,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13590:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13589:8:38"},"scope":14680,"src":"13447:267:38","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1231],"body":{"id":14654,"nodeType":"Block","src":"14102:117:38","statements":[{"expression":{"expression":{"expression":{"id":14650,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"14164:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":14651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14181:22:38","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1231,"src":"14164:39:38","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)"}},"id":14652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14204:8:38","memberName":"selector","nodeType":"MemberAccess","src":"14164:48:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":14649,"id":14653,"nodeType":"Return","src":"14157:55:38"}]},"documentation":{"id":14632,"nodeType":"StructuredDocumentation","src":"13720:195:38","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)"},"functionSelector":"bc197c81","id":14655,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"13929:22:38","nodeType":"FunctionDefinition","overrides":{"id":14646,"nodeType":"OverrideSpecifier","overrides":[],"src":"14064:8:38"},"parameters":{"id":14645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13952:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14633,"name":"address","nodeType":"ElementaryTypeName","src":"13952:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13961:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14635,"name":"address","nodeType":"ElementaryTypeName","src":"13961:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13970:18:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14637,"name":"uint256","nodeType":"ElementaryTypeName","src":"13970:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14638,"nodeType":"ArrayTypeName","src":"13970:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13990:18:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14640,"name":"uint256","nodeType":"ElementaryTypeName","src":"13990:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14641,"nodeType":"ArrayTypeName","src":"13990:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"14010:14:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14643,"name":"bytes","nodeType":"ElementaryTypeName","src":"14010:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13951:74:38"},"returnParameters":{"id":14649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14648,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"14090:6:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14647,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14090:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14089:8:38"},"scope":14680,"src":"13920:299:38","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[2856,13636],"body":{"id":14678,"nodeType":"Block","src":"14363:113:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14666,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14658,"src":"14380:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14668,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"14400:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}],"id":14667,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14395:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14395:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$1232","typeString":"type(contract IERC1155Receiver)"}},"id":14670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14418:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"14395:34:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"14380:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14674,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14658,"src":"14457:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14672,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"14433:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_SimpleBudget_$14680_$","typeString":"type(contract super SimpleBudget)"}},"id":14673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14439:17:38","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":13636,"src":"14433:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14433:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14380:89:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14665,"id":14677,"nodeType":"Return","src":"14373:96:38"}]},"documentation":{"id":14656,"nodeType":"StructuredDocumentation","src":"14225:25:38","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":14679,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"14264:17:38","nodeType":"FunctionDefinition","overrides":{"id":14662,"nodeType":"OverrideSpecifier","overrides":[{"id":14660,"name":"Budget","nameLocations":["14331:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"14331:6:38"},{"id":14661,"name":"IERC165","nameLocations":["14339:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"14339:7:38"}],"src":"14322:25:38"},"parameters":{"id":14659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14658,"mutability":"mutable","name":"interfaceId","nameLocation":"14289:11:38","nodeType":"VariableDeclaration","scope":14679,"src":"14282:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14657,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14282:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14281:20:38"},"returnParameters":{"id":14665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14679,"src":"14357:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14663,"name":"bool","nodeType":"ElementaryTypeName","src":"14357:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14356:6:38"},"scope":14680,"src":"14255:221:38","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":14681,"src":"769:13709:38","usedErrors":[6235,6238,6241,6244,9117,9120,11020,13517,13526,13529,13538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,13501,13510]}],"src":"36:14443:38"},"id":38},"contracts/budgets/VestingBudget.sol":{"ast":{"absolutePath":"contracts/budgets/VestingBudget.sol","exportedSymbols":{"Budget":[13669],"Cloneable":[17720],"ReentrancyGuard":[11038],"SafeTransferLib":[11372],"VestingBudget":[15410]},"id":15411,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":14682,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:39"},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":14684,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":11373,"src":"62:66:39","symbolAliases":[{"foreign":{"id":14683,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"70:15:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":14686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":11039,"src":"129:66:39","symbolAliases":[{"foreign":{"id":14685,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"137:15:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":14688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":13670,"src":"197:52:39","symbolAliases":[{"foreign":{"id":14687,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"205:6:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":14690,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":17721,"src":"250:57:39","symbolAliases":[{"foreign":{"id":14689,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"258:9:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14692,"name":"Budget","nameLocations":["1507:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"1507:6:39"},"id":14693,"nodeType":"InheritanceSpecifier","src":"1507:6:39"},{"baseName":{"id":14694,"name":"ReentrancyGuard","nameLocations":["1515:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"1515:15:39"},"id":14695,"nodeType":"InheritanceSpecifier","src":"1515:15:39"}],"canonicalName":"VestingBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":14691,"nodeType":"StructuredDocumentation","src":"309:1172:39","text":"@title Vesting Budget\n @notice A vesting-based budget implementation that allows for the distribution of assets over time\n @dev Take note of the following when making use of this budget type:\n - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule."},"fullyImplemented":true,"id":15410,"linearizedBaseContracts":[15410,11038,13669,6229,17720,2845,2857,9225,6423],"name":"VestingBudget","nameLocation":"1490:13:39","nodeType":"ContractDefinition","nodes":[{"global":false,"id":14698,"libraryName":{"id":14696,"name":"SafeTransferLib","nameLocations":["1543:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"1543:15:39"},"nodeType":"UsingForDirective","src":"1537:34:39","typeName":{"id":14697,"name":"address","nodeType":"ElementaryTypeName","src":"1563:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"VestingBudget.InitPayload","documentation":{"id":14699,"nodeType":"StructuredDocumentation","src":"1577:56:39","text":"@notice The payload for initializing a VestingBudget"},"id":14711,"members":[{"constant":false,"id":14701,"mutability":"mutable","name":"owner","nameLocation":"1675:5:39","nodeType":"VariableDeclaration","scope":14711,"src":"1667:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14700,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14704,"mutability":"mutable","name":"authorized","nameLocation":"1700:10:39","nodeType":"VariableDeclaration","scope":14711,"src":"1690:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14702,"name":"address","nodeType":"ElementaryTypeName","src":"1690:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14703,"nodeType":"ArrayTypeName","src":"1690:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14706,"mutability":"mutable","name":"start","nameLocation":"1727:5:39","nodeType":"VariableDeclaration","scope":14711,"src":"1720:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14705,"name":"uint64","nodeType":"ElementaryTypeName","src":"1720:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":14708,"mutability":"mutable","name":"duration","nameLocation":"1749:8:39","nodeType":"VariableDeclaration","scope":14711,"src":"1742:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14707,"name":"uint64","nodeType":"ElementaryTypeName","src":"1742:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":14710,"mutability":"mutable","name":"cliff","nameLocation":"1774:5:39","nodeType":"VariableDeclaration","scope":14711,"src":"1767:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14709,"name":"uint64","nodeType":"ElementaryTypeName","src":"1767:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1645:11:39","nodeType":"StructDefinition","scope":15410,"src":"1638:148:39","visibility":"public"},{"constant":false,"documentation":{"id":14712,"nodeType":"StructuredDocumentation","src":"1792:76:39","text":"@dev The total amount of each fungible asset distributed from the budget"},"id":14716,"mutability":"mutable","name":"_distributedFungible","nameLocation":"1909:20:39","nodeType":"VariableDeclaration","scope":15410,"src":"1873:56:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":14715,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":14713,"name":"address","nodeType":"ElementaryTypeName","src":"1881:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1873:27:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":14714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1892:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"documentation":{"id":14717,"nodeType":"StructuredDocumentation","src":"1936:44:39","text":"@dev The mapping of authorized addresses"},"id":14721,"mutability":"mutable","name":"_isAuthorized","nameLocation":"2018:13:39","nodeType":"VariableDeclaration","scope":15410,"src":"1985:46:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":14720,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":14718,"name":"address","nodeType":"ElementaryTypeName","src":"1993:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1985:24:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":14719,"name":"bool","nodeType":"ElementaryTypeName","src":"2004:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"constant":false,"documentation":{"id":14722,"nodeType":"StructuredDocumentation","src":"2038:62:39","text":"@notice The timestamp at which the vesting schedule begins"},"functionSelector":"be9a6555","id":14724,"mutability":"mutable","name":"start","nameLocation":"2119:5:39","nodeType":"VariableDeclaration","scope":15410,"src":"2105:19:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14723,"name":"uint64","nodeType":"ElementaryTypeName","src":"2105:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"constant":false,"documentation":{"id":14725,"nodeType":"StructuredDocumentation","src":"2131:61:39","text":"@notice The duration of the vesting schedule (in seconds)"},"functionSelector":"0fb5a6b4","id":14727,"mutability":"mutable","name":"duration","nameLocation":"2211:8:39","nodeType":"VariableDeclaration","scope":15410,"src":"2197:22:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14726,"name":"uint64","nodeType":"ElementaryTypeName","src":"2197:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"constant":false,"documentation":{"id":14728,"nodeType":"StructuredDocumentation","src":"2226:57:39","text":"@notice The duration of the cliff period (in seconds)"},"functionSelector":"13d033c0","id":14730,"mutability":"mutable","name":"cliff","nameLocation":"2302:5:39","nodeType":"VariableDeclaration","scope":15410,"src":"2288:19:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14729,"name":"uint64","nodeType":"ElementaryTypeName","src":"2288:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"body":{"id":14743,"nodeType":"Block","src":"2426:80:39","statements":[{"condition":{"id":14737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2440:25:39","subExpression":{"arguments":[{"expression":{"id":14734,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2454:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2458:6:39","memberName":"sender","nodeType":"MemberAccess","src":"2454:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14733,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15154,"src":"2441:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":14736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2441:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14741,"nodeType":"IfStatement","src":"2436:52:39","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14738,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"2474:12:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:14:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14740,"nodeType":"RevertStatement","src":"2467:21:39"}},{"id":14742,"nodeType":"PlaceholderStatement","src":"2498:1:39"}]},"documentation":{"id":14731,"nodeType":"StructuredDocumentation","src":"2314:81:39","text":"@notice A modifier that allows only authorized addresses to call the function"},"id":14744,"name":"onlyAuthorized","nameLocation":"2409:14:39","nodeType":"ModifierDefinition","parameters":{"id":14732,"nodeType":"ParameterList","parameters":[],"src":"2423:2:39"},"src":"2400:106:39","virtual":false,"visibility":"internal"},{"body":{"id":14751,"nodeType":"Block","src":"2765:39:39","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14748,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"2775:20:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:22:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14750,"nodeType":"ExpressionStatement","src":"2775:22:39"}]},"documentation":{"id":14745,"nodeType":"StructuredDocumentation","src":"2512:234:39","text":"@notice Construct a new VestingBudget\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":14752,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14746,"nodeType":"ParameterList","parameters":[],"src":"2762:2:39"},"returnParameters":{"id":14747,"nodeType":"ParameterList","parameters":[],"src":"2765:0:39"},"scope":15410,"src":"2751:53:39","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":14814,"nodeType":"Block","src":"2995:339:39","statements":[{"assignments":[14763],"declarations":[{"constant":false,"id":14763,"mutability":"mutable","name":"init_","nameLocation":"3024:5:39","nodeType":"VariableDeclaration","scope":14814,"src":"3005:24:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload"},"typeName":{"id":14762,"nodeType":"UserDefinedTypeName","pathNode":{"id":14761,"name":"InitPayload","nameLocations":["3005:11:39"],"nodeType":"IdentifierPath","referencedDeclaration":14711,"src":"3005:11:39"},"referencedDeclaration":14711,"src":"3005:11:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_storage_ptr","typeString":"struct VestingBudget.InitPayload"}},"visibility":"internal"}],"id":14770,"initialValue":{"arguments":[{"id":14766,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"3043:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14767,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"3051:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$14711_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}}],"id":14768,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3050:13:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$14711_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$14711_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}],"expression":{"id":14764,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3032:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3036:6:39","memberName":"decode","nodeType":"MemberAccess","src":"3032:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3032:32:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3005:59:39"},{"expression":{"id":14774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14771,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"3075:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14772,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3083:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3089:5:39","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14706,"src":"3083:11:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3075:19:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14775,"nodeType":"ExpressionStatement","src":"3075:19:39"},{"expression":{"id":14779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14776,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"3104:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14777,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3115:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3121:8:39","memberName":"duration","nodeType":"MemberAccess","referencedDeclaration":14708,"src":"3115:14:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3104:25:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14780,"nodeType":"ExpressionStatement","src":"3104:25:39"},{"expression":{"id":14784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14781,"name":"cliff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"3139:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14782,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3147:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3153:5:39","memberName":"cliff","nodeType":"MemberAccess","referencedDeclaration":14710,"src":"3147:11:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3139:19:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14785,"nodeType":"ExpressionStatement","src":"3139:19:39"},{"expression":{"arguments":[{"expression":{"id":14787,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3186:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3192:5:39","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":14701,"src":"3186:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14786,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3169:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":14789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3169:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14790,"nodeType":"ExpressionStatement","src":"3169:29:39"},{"body":{"id":14812,"nodeType":"Block","src":"3262:66:39","statements":[{"expression":{"id":14810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14803,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14721,"src":"3276:13:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14808,"indexExpression":{"baseExpression":{"expression":{"id":14804,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3290:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3296:10:39","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":14704,"src":"3290:16:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14807,"indexExpression":{"id":14806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"3307:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3290:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3276:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":14809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3313:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3276:41:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14811,"nodeType":"ExpressionStatement","src":"3276:41:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"3228:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14796,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3232:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3238:10:39","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":14704,"src":"3232:16:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3249:6:39","memberName":"length","nodeType":"MemberAccess","src":"3232:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3228:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14813,"initializationExpression":{"assignments":[14792],"declarations":[{"constant":false,"id":14792,"mutability":"mutable","name":"i","nameLocation":"3221:1:39","nodeType":"VariableDeclaration","scope":14813,"src":"3213:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14794,"initialValue":{"hexValue":"30","id":14793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3225:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3213:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3257:3:39","subExpression":{"id":14800,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"3257:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14802,"nodeType":"ExpressionStatement","src":"3257:3:39"},"nodeType":"ForStatement","src":"3208:120:39"}]},"documentation":{"id":14753,"nodeType":"StructuredDocumentation","src":"2810:102:39","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget (see {InitPayload})"},"functionSelector":"439fab91","id":14815,"implemented":true,"kind":"function","modifiers":[{"id":14759,"kind":"modifierInvocation","modifierName":{"id":14758,"name":"initializer","nameLocations":["2983:11:39"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2983:11:39"},"nodeType":"ModifierInvocation","src":"2983:11:39"}],"name":"initialize","nameLocation":"2926:10:39","nodeType":"FunctionDefinition","overrides":{"id":14757,"nodeType":"OverrideSpecifier","overrides":[],"src":"2974:8:39"},"parameters":{"id":14756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14755,"mutability":"mutable","name":"data_","nameLocation":"2952:5:39","nodeType":"VariableDeclaration","scope":14815,"src":"2937:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14754,"name":"bytes","nodeType":"ElementaryTypeName","src":"2937:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2936:22:39"},"returnParameters":{"id":14760,"nodeType":"ParameterList","parameters":[],"src":"2995:0:39"},"scope":15410,"src":"2917:417:39","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13556],"body":{"id":14924,"nodeType":"Block","src":"3776:1008:39","statements":[{"assignments":[14826],"declarations":[{"constant":false,"id":14826,"mutability":"mutable","name":"request","nameLocation":"3802:7:39","nodeType":"VariableDeclaration","scope":14924,"src":"3786:23:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14825,"nodeType":"UserDefinedTypeName","pathNode":{"id":14824,"name":"Transfer","nameLocations":["3786:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"3786:8:39"},"referencedDeclaration":13482,"src":"3786:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14833,"initialValue":{"arguments":[{"id":14829,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14818,"src":"3823:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14830,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"3831:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14831,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3830:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3812:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3816:6:39","memberName":"decode","nodeType":"MemberAccess","src":"3812:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3812:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"3786:55:39"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14834,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"3855:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3863:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"3855:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14836,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"3876:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3886:3:39","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"3876:13:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"3855:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14865,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4211:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4219:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"4211:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14867,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"4232:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4242:5:39","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"4232:15:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"4211:36:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14919,"nodeType":"Block","src":"4681:75:39","statements":[{"expression":{"hexValue":"66616c7365","id":14917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4740:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14823,"id":14918,"nodeType":"Return","src":"4733:12:39"}]},"id":14920,"nodeType":"IfStatement","src":"4207:549:39","trueBody":{"id":14916,"nodeType":"Block","src":"4249:426:39","statements":[{"assignments":[14872],"declarations":[{"constant":false,"id":14872,"mutability":"mutable","name":"payload","nameLocation":"4286:7:39","nodeType":"VariableDeclaration","scope":14916,"src":"4263:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14871,"nodeType":"UserDefinedTypeName","pathNode":{"id":14870,"name":"FungiblePayload","nameLocations":["4263:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"4263:15:39"},"referencedDeclaration":13486,"src":"4263:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14880,"initialValue":{"arguments":[{"expression":{"id":14875,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4307:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4315:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"4307:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14877,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"4322:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4321:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4296:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4300:6:39","memberName":"decode","nodeType":"MemberAccess","src":"4296:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4263:76:39"},{"expression":{"arguments":[{"expression":{"id":14886,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4456:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4464:6:39","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"4456:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14890,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4480:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":14889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4472:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14888,"name":"address","nodeType":"ElementaryTypeName","src":"4472:7:39","typeDescriptions":{}}},"id":14891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4472:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14892,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"4487:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4495:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4487:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":14881,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4425:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4433:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4425:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4439:16:39","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":11177,"src":"4425:30:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":14894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:77:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14895,"nodeType":"ExpressionStatement","src":"4425:77:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":14901,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4552:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":14900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4544:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14899,"name":"address","nodeType":"ElementaryTypeName","src":"4544:7:39","typeDescriptions":{}}},"id":14902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":14896,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4520:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4528:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4520:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4534:9:39","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"4520:23:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":14903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14904,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"4561:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4569:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4561:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4520:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14915,"nodeType":"IfStatement","src":"4516:149:39","trueBody":{"id":14914,"nodeType":"Block","src":"4577:88:39","statements":[{"errorCall":{"arguments":[{"expression":{"id":14908,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4620:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4628:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4620:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14910,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"4635:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4643:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4635:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14907,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"4602:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":14912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4602:48:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14913,"nodeType":"RevertStatement","src":"4595:55:39"}]}}]}},"id":14921,"nodeType":"IfStatement","src":"3851:905:39","trueBody":{"id":14864,"nodeType":"Block","src":"3891:310:39","statements":[{"assignments":[14841],"declarations":[{"constant":false,"id":14841,"mutability":"mutable","name":"payload","nameLocation":"3928:7:39","nodeType":"VariableDeclaration","scope":14864,"src":"3905:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14840,"nodeType":"UserDefinedTypeName","pathNode":{"id":14839,"name":"FungiblePayload","nameLocations":["3905:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"3905:15:39"},"referencedDeclaration":13486,"src":"3905:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14849,"initialValue":{"arguments":[{"expression":{"id":14844,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"3949:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3957:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3949:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14846,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"3964:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14847,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3963:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14842,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3938:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3942:6:39","memberName":"decode","nodeType":"MemberAccess","src":"3938:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3938:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:76:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14850,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4074:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4078:5:39","memberName":"value","nodeType":"MemberAccess","src":"4074:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14852,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"4087:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4095:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4087:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4074:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14863,"nodeType":"IfStatement","src":"4070:121:39","trueBody":{"id":14862,"nodeType":"Block","src":"4103:88:39","statements":[{"errorCall":{"arguments":[{"expression":{"id":14856,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4146:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4154:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4146:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14858,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"4161:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4169:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4161:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14855,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"4128:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":14860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4128:48:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14861,"nodeType":"RevertStatement","src":"4121:55:39"}]}}]}},{"expression":{"hexValue":"74727565","id":14922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4773:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14823,"id":14923,"nodeType":"Return","src":"4766:11:39"}]},"documentation":{"id":14816,"nodeType":"StructuredDocumentation","src":"3340:342:39","text":"@inheritdoc Budget\n @notice Allocates assets to the budget\n @param data_ The packed data for the {Transfer} request\n @return True if the allocation was successful\n @dev The caller must have already approved the contract to transfer the asset\n @dev If the asset transfer fails, the allocation will revert"},"functionSelector":"5aef467a","id":14925,"implemented":true,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"3696:8:39","nodeType":"FunctionDefinition","overrides":{"id":14820,"nodeType":"OverrideSpecifier","overrides":[],"src":"3752:8:39"},"parameters":{"id":14819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14818,"mutability":"mutable","name":"data_","nameLocation":"3720:5:39","nodeType":"VariableDeclaration","scope":14925,"src":"3705:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14817,"name":"bytes","nodeType":"ElementaryTypeName","src":"3705:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3704:22:39"},"returnParameters":{"id":14823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14925,"src":"3770:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14821,"name":"bool","nodeType":"ElementaryTypeName","src":"3770:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3769:6:39"},"scope":15410,"src":"3687:1097:39","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[13564],"body":{"id":14993,"nodeType":"Block","src":"5381:484:39","statements":[{"assignments":[14938],"declarations":[{"constant":false,"id":14938,"mutability":"mutable","name":"request","nameLocation":"5407:7:39","nodeType":"VariableDeclaration","scope":14993,"src":"5391:23:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14937,"nodeType":"UserDefinedTypeName","pathNode":{"id":14936,"name":"Transfer","nameLocations":["5391:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"5391:8:39"},"referencedDeclaration":13482,"src":"5391:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14945,"initialValue":{"arguments":[{"id":14941,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14928,"src":"5428:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14942,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"5436:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14943,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5435:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5417:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5421:6:39","memberName":"decode","nodeType":"MemberAccess","src":"5417:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5417:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"5391:55:39"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14946,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5460:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5468:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5460:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14948,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5481:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5491:3:39","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"5481:13:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5460:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14951,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5498:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5506:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5498:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14953,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5519:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5529:5:39","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5519:15:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5498:36:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5460:74:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14989,"nodeType":"Block","src":"5800:37:39","statements":[{"expression":{"hexValue":"66616c7365","id":14987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5821:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14935,"id":14988,"nodeType":"Return","src":"5814:12:39"}]},"id":14990,"nodeType":"IfStatement","src":"5456:381:39","trueBody":{"id":14986,"nodeType":"Block","src":"5536:258:39","statements":[{"assignments":[14959],"declarations":[{"constant":false,"id":14959,"mutability":"mutable","name":"payload","nameLocation":"5573:7:39","nodeType":"VariableDeclaration","scope":14986,"src":"5550:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14958,"nodeType":"UserDefinedTypeName","pathNode":{"id":14957,"name":"FungiblePayload","nameLocations":["5550:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"5550:15:39"},"referencedDeclaration":13486,"src":"5550:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14967,"initialValue":{"arguments":[{"expression":{"id":14962,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5594:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5602:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"5594:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14964,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"5609:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5608:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14960,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5583:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5587:6:39","memberName":"decode","nodeType":"MemberAccess","src":"5583:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5583:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5550:76:39"},{"expression":{"arguments":[{"expression":{"id":14969,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5675:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5683:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5675:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14971,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5690:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5698:6:39","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"5690:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14973,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14959,"src":"5706:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5714:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5706:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5724:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5706:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14981,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14959,"src":"5755:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5763:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5755:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5706:63:39","trueExpression":{"arguments":[{"expression":{"id":14978,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5738:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5746:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5738:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14977,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15226,"src":"5728:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5728:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14968,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15328,"src":"5640:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5640:143:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14985,"nodeType":"ExpressionStatement","src":"5640:143:39"}]}},{"expression":{"hexValue":"74727565","id":14991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5854:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14935,"id":14992,"nodeType":"Return","src":"5847:11:39"}]},"documentation":{"id":14926,"nodeType":"StructuredDocumentation","src":"4790:496:39","text":"@inheritdoc Budget\n @notice Reclaims assets from the budget\n @param data_ The packed {Transfer} request\n @return True if the request was successful\n @dev Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting schedule\n @dev If the amount is zero, the entire available balance of the asset will be transferred to the receiver\n @dev If the asset transfer fails for any reason, the function will revert"},"functionSelector":"f1c30ec0","id":14994,"implemented":true,"kind":"function","modifiers":[{"id":14932,"kind":"modifierInvocation","modifierName":{"id":14931,"name":"onlyOwner","nameLocations":["5356:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"5356:9:39"},"nodeType":"ModifierInvocation","src":"5356:9:39"}],"name":"reclaim","nameLocation":"5300:7:39","nodeType":"FunctionDefinition","overrides":{"id":14930,"nodeType":"OverrideSpecifier","overrides":[],"src":"5347:8:39"},"parameters":{"id":14929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14928,"mutability":"mutable","name":"data_","nameLocation":"5323:5:39","nodeType":"VariableDeclaration","scope":14994,"src":"5308:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14927,"name":"bytes","nodeType":"ElementaryTypeName","src":"5308:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5307:22:39"},"returnParameters":{"id":14935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14994,"src":"5375:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14933,"name":"bool","nodeType":"ElementaryTypeName","src":"5375:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5374:6:39"},"scope":15410,"src":"5291:574:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13572],"body":{"id":15053,"nodeType":"Block","src":"6250:405:39","statements":[{"assignments":[15007],"declarations":[{"constant":false,"id":15007,"mutability":"mutable","name":"request","nameLocation":"6276:7:39","nodeType":"VariableDeclaration","scope":15053,"src":"6260:23:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":15006,"nodeType":"UserDefinedTypeName","pathNode":{"id":15005,"name":"Transfer","nameLocations":["6260:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"6260:8:39"},"referencedDeclaration":13482,"src":"6260:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":15014,"initialValue":{"arguments":[{"id":15010,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14997,"src":"6297:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15011,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"6305:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":15012,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6304:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":15008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6286:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6290:6:39","memberName":"decode","nodeType":"MemberAccess","src":"6286:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6286:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"6260:55:39"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":15019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15015,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6329:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6337:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6329:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15017,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6350:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":15018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6360:5:39","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"6350:15:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6329:36:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":15024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15020,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6369:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6377:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6369:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15022,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6390:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":15023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6400:3:39","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"6390:13:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6369:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6329:74:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15049,"nodeType":"Block","src":"6590:37:39","statements":[{"expression":{"hexValue":"66616c7365","id":15047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6611:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":15004,"id":15048,"nodeType":"Return","src":"6604:12:39"}]},"id":15050,"nodeType":"IfStatement","src":"6325:302:39","trueBody":{"id":15046,"nodeType":"Block","src":"6405:179:39","statements":[{"assignments":[15028],"declarations":[{"constant":false,"id":15028,"mutability":"mutable","name":"payload","nameLocation":"6442:7:39","nodeType":"VariableDeclaration","scope":15046,"src":"6419:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":15027,"nodeType":"UserDefinedTypeName","pathNode":{"id":15026,"name":"FungiblePayload","nameLocations":["6419:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"6419:15:39"},"referencedDeclaration":13486,"src":"6419:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":15036,"initialValue":{"arguments":[{"expression":{"id":15031,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6463:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6471:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"6463:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":15033,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"6478:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":15034,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6477:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":15029,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6452:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6456:6:39","memberName":"decode","nodeType":"MemberAccess","src":"6452:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6452:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6419:76:39"},{"expression":{"arguments":[{"expression":{"id":15038,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6527:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6535:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6527:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15040,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6542:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6550:6:39","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"6542:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15042,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"6558:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":15043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6566:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6558:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15037,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15328,"src":"6509:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":15044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6509:64:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15045,"nodeType":"ExpressionStatement","src":"6509:64:39"}]}},{"expression":{"hexValue":"74727565","id":15051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6644:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15004,"id":15052,"nodeType":"Return","src":"6637:11:39"}]},"documentation":{"id":14995,"nodeType":"StructuredDocumentation","src":"5871:280:39","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to a single recipient\n @param data_ The packed {Transfer} request\n @return True if the disbursement was successful\n @dev The maximum amount that can be disbursed is the {available} amount"},"functionSelector":"fa4ca9b1","id":15054,"implemented":true,"kind":"function","modifiers":[{"id":15001,"kind":"modifierInvocation","modifierName":{"id":15000,"name":"onlyAuthorized","nameLocations":["6220:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":14744,"src":"6220:14:39"},"nodeType":"ModifierInvocation","src":"6220:14:39"}],"name":"disburse","nameLocation":"6165:8:39","nodeType":"FunctionDefinition","overrides":{"id":14999,"nodeType":"OverrideSpecifier","overrides":[],"src":"6211:8:39"},"parameters":{"id":14998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14997,"mutability":"mutable","name":"data_","nameLocation":"6189:5:39","nodeType":"VariableDeclaration","scope":15054,"src":"6174:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14996,"name":"bytes","nodeType":"ElementaryTypeName","src":"6174:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6173:22:39"},"returnParameters":{"id":15004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15054,"src":"6244:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15002,"name":"bool","nodeType":"ElementaryTypeName","src":"6244:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6243:6:39"},"scope":15410,"src":"6156:499:39","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13581],"body":{"id":15088,"nodeType":"Block","src":"6967:143:39","statements":[{"body":{"id":15084,"nodeType":"Block","src":"7020:62:39","statements":[{"condition":{"id":15080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7038:19:39","subExpression":{"arguments":[{"baseExpression":{"id":15076,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15058,"src":"7048:5:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15078,"indexExpression":{"id":15077,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15065,"src":"7054:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7048:8:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15075,"name":"disburse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15054,"src":"7039:8:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) returns (bool)"}},"id":15079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7039:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15083,"nodeType":"IfStatement","src":"7034:37:39","trueBody":{"expression":{"hexValue":"66616c7365","id":15081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7066:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":15063,"id":15082,"nodeType":"Return","src":"7059:12:39"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15065,"src":"6997:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15069,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15058,"src":"7001:5:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7007:6:39","memberName":"length","nodeType":"MemberAccess","src":"7001:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6997:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15085,"initializationExpression":{"assignments":[15065],"declarations":[{"constant":false,"id":15065,"mutability":"mutable","name":"i","nameLocation":"6990:1:39","nodeType":"VariableDeclaration","scope":15085,"src":"6982:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15064,"name":"uint256","nodeType":"ElementaryTypeName","src":"6982:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15067,"initialValue":{"hexValue":"30","id":15066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6994:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6982:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7015:3:39","subExpression":{"id":15072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15065,"src":"7015:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15074,"nodeType":"ExpressionStatement","src":"7015:3:39"},"nodeType":"ForStatement","src":"6977:105:39"},{"expression":{"hexValue":"74727565","id":15086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7099:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15063,"id":15087,"nodeType":"Return","src":"7092:11:39"}]},"documentation":{"id":15055,"nodeType":"StructuredDocumentation","src":"6661:213:39","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to multiple recipients\n @param data_ The packed array of {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":15089,"implemented":true,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"6888:13:39","nodeType":"FunctionDefinition","overrides":{"id":15060,"nodeType":"OverrideSpecifier","overrides":[],"src":"6943:8:39"},"parameters":{"id":15059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15058,"mutability":"mutable","name":"data_","nameLocation":"6919:5:39","nodeType":"VariableDeclaration","scope":15089,"src":"6902:22:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15056,"name":"bytes","nodeType":"ElementaryTypeName","src":"6902:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15057,"nodeType":"ArrayTypeName","src":"6902:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"6901:24:39"},"returnParameters":{"id":15063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15089,"src":"6961:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15061,"name":"bool","nodeType":"ElementaryTypeName","src":"6961:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6960:6:39"},"scope":15410,"src":"6879:231:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13646],"body":{"id":15134,"nodeType":"Block","src":"7296:206:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15102,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"7310:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7319:6:39","memberName":"length","nodeType":"MemberAccess","src":"7310:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15104,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"7329:11:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":15105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7341:6:39","memberName":"length","nodeType":"MemberAccess","src":"7329:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7310:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15110,"nodeType":"IfStatement","src":"7306:66:39","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15107,"name":"LengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13529,"src":"7356:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15109,"nodeType":"RevertStatement","src":"7349:23:39"}},{"body":{"id":15132,"nodeType":"Block","src":"7428:68:39","statements":[{"expression":{"id":15130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15122,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14721,"src":"7442:13:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15126,"indexExpression":{"baseExpression":{"id":15123,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"7456:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15125,"indexExpression":{"id":15124,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7465:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7456:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7442:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":15127,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"7471:11:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":15129,"indexExpression":{"id":15128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7483:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7471:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7442:43:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15131,"nodeType":"ExpressionStatement","src":"7442:43:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7402:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15116,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"7406:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7415:6:39","memberName":"length","nodeType":"MemberAccess","src":"7406:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7402:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15133,"initializationExpression":{"assignments":[15112],"declarations":[{"constant":false,"id":15112,"mutability":"mutable","name":"i","nameLocation":"7395:1:39","nodeType":"VariableDeclaration","scope":15133,"src":"7387:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15111,"name":"uint256","nodeType":"ElementaryTypeName","src":"7387:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15114,"initialValue":{"hexValue":"30","id":15113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7399:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7387:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7423:3:39","subExpression":{"id":15119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7423:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15121,"nodeType":"ExpressionStatement","src":"7423:3:39"},"nodeType":"ForStatement","src":"7382:114:39"}]},"documentation":{"id":15090,"nodeType":"StructuredDocumentation","src":"7116:22:39","text":"@inheritdoc Budget"},"functionSelector":"4359d28a","id":15135,"implemented":true,"kind":"function","modifiers":[{"id":15100,"kind":"modifierInvocation","modifierName":{"id":15099,"name":"onlyOwner","nameLocations":["7282:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7282:9:39"},"nodeType":"ModifierInvocation","src":"7282:9:39"}],"name":"setAuthorized","nameLocation":"7152:13:39","nodeType":"FunctionDefinition","overrides":{"id":15098,"nodeType":"OverrideSpecifier","overrides":[],"src":"7265:8:39"},"parameters":{"id":15097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15093,"mutability":"mutable","name":"account_","nameLocation":"7185:8:39","nodeType":"VariableDeclaration","scope":15135,"src":"7166:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15091,"name":"address","nodeType":"ElementaryTypeName","src":"7166:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15092,"nodeType":"ArrayTypeName","src":"7166:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15096,"mutability":"mutable","name":"authorized_","nameLocation":"7211:11:39","nodeType":"VariableDeclaration","scope":15135,"src":"7195:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15094,"name":"bool","nodeType":"ElementaryTypeName","src":"7195:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15095,"nodeType":"ArrayTypeName","src":"7195:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"7165:58:39"},"returnParameters":{"id":15101,"nodeType":"ParameterList","parameters":[],"src":"7296:0:39"},"scope":15410,"src":"7143:359:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13654],"body":{"id":15153,"nodeType":"Block","src":"7619:70:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":15144,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14721,"src":"7636:13:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15146,"indexExpression":{"id":15145,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7650:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7636:23:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15147,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7663:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":15148,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6404,"src":"7675:5:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7675:7:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7663:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7636:46:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15143,"id":15152,"nodeType":"Return","src":"7629:53:39"}]},"documentation":{"id":15136,"nodeType":"StructuredDocumentation","src":"7508:22:39","text":"@inheritdoc Budget"},"functionSelector":"fe9fbb80","id":15154,"implemented":true,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"7544:12:39","nodeType":"FunctionDefinition","overrides":{"id":15140,"nodeType":"OverrideSpecifier","overrides":[],"src":"7595:8:39"},"parameters":{"id":15139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15138,"mutability":"mutable","name":"account_","nameLocation":"7565:8:39","nodeType":"VariableDeclaration","scope":15154,"src":"7557:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15137,"name":"address","nodeType":"ElementaryTypeName","src":"7557:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7556:18:39"},"returnParameters":{"id":15143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15154,"src":"7613:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15141,"name":"bool","nodeType":"ElementaryTypeName","src":"7613:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7612:6:39"},"scope":15410,"src":"7535:154:39","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15164,"nodeType":"Block","src":"7860:40:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15160,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"7877:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15161,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"7885:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7877:16:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":15159,"id":15163,"nodeType":"Return","src":"7870:23:39"}]},"documentation":{"id":15155,"nodeType":"StructuredDocumentation","src":"7695:105:39","text":"@notice Get the end time of the vesting schedule\n @return The end time of the vesting schedule"},"functionSelector":"efbe1c1c","id":15165,"implemented":true,"kind":"function","modifiers":[],"name":"end","nameLocation":"7814:3:39","nodeType":"FunctionDefinition","parameters":{"id":15156,"nodeType":"ParameterList","parameters":[],"src":"7817:2:39"},"returnParameters":{"id":15159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15165,"src":"7851:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15157,"name":"uint256","nodeType":"ElementaryTypeName","src":"7851:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7850:9:39"},"scope":15410,"src":"7805:95:39","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13589],"body":{"id":15202,"nodeType":"Block","src":"8316:168:39","statements":[{"assignments":[15175],"declarations":[{"constant":false,"id":15175,"mutability":"mutable","name":"balance","nameLocation":"8334:7:39","nodeType":"VariableDeclaration","scope":15202,"src":"8326:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15174,"name":"uint256","nodeType":"ElementaryTypeName","src":"8326:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15195,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15176,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8344:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8362:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8354:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15177,"name":"address","nodeType":"ElementaryTypeName","src":"8354:7:39","typeDescriptions":{}}},"id":15180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8354:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8344:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":15191,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8416:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8408:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15189,"name":"address","nodeType":"ElementaryTypeName","src":"8408:7:39","typeDescriptions":{}}},"id":15192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8408:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15187,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8391:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8398:9:39","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"8391:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8391:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8344:78:39","trueExpression":{"expression":{"arguments":[{"id":15184,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8375:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8367:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15182,"name":"address","nodeType":"ElementaryTypeName","src":"8367:7:39","typeDescriptions":{}}},"id":15185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8367:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8381:7:39","memberName":"balance","nodeType":"MemberAccess","src":"8367:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8326:96:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":15196,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"8439:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15198,"indexExpression":{"id":15197,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8460:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8439:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15199,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"8470:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8439:38:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15173,"id":15201,"nodeType":"Return","src":"8432:45:39"}]},"documentation":{"id":15166,"nodeType":"StructuredDocumentation","src":"7906:325:39","text":"@inheritdoc Budget\n @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets\n @dev This is equal to the sum of the total current balance and the total distributed amount"},"functionSelector":"d2514e84","id":15203,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"8245:5:39","nodeType":"FunctionDefinition","overrides":{"id":15170,"nodeType":"OverrideSpecifier","overrides":[],"src":"8289:8:39"},"parameters":{"id":15169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15168,"mutability":"mutable","name":"asset_","nameLocation":"8259:6:39","nodeType":"VariableDeclaration","scope":15203,"src":"8251:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15167,"name":"address","nodeType":"ElementaryTypeName","src":"8251:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8250:16:39"},"returnParameters":{"id":15173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15203,"src":"8307:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15171,"name":"uint256","nodeType":"ElementaryTypeName","src":"8307:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8306:9:39"},"scope":15410,"src":"8236:248:39","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13597],"body":{"id":15225,"nodeType":"Block","src":"8962:105:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15213,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15206,"src":"8997:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":15216,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9012:5:39","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9018:9:39","memberName":"timestamp","nodeType":"MemberAccess","src":"9012:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9005:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":15214,"name":"uint64","nodeType":"ElementaryTypeName","src":"9005:6:39","typeDescriptions":{}}},"id":15218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9005:23:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":15212,"name":"_vestedAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15370,"src":"8979:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint64_$returns$_t_uint256_$","typeString":"function (address,uint64) view returns (uint256)"}},"id":15219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8979:50:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"id":15220,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"9032:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15222,"indexExpression":{"id":15221,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15206,"src":"9053:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9032:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8979:81:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15211,"id":15224,"nodeType":"Return","src":"8972:88:39"}]},"documentation":{"id":15204,"nodeType":"StructuredDocumentation","src":"8490:385:39","text":"@inheritdoc Budget\n @notice Get the amount of assets available for distribution from the budget as of the current block timestamp\n @param asset_ The address of the asset (or the zero address for native assets)\n @return The amount of assets currently available for distribution\n @dev This is equal to the total vested amount minus any already distributed"},"functionSelector":"10098ad5","id":15226,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"8889:9:39","nodeType":"FunctionDefinition","overrides":{"id":15208,"nodeType":"OverrideSpecifier","overrides":[],"src":"8935:8:39"},"parameters":{"id":15207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15206,"mutability":"mutable","name":"asset_","nameLocation":"8907:6:39","nodeType":"VariableDeclaration","scope":15226,"src":"8899:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15205,"name":"address","nodeType":"ElementaryTypeName","src":"8899:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8898:16:39"},"returnParameters":{"id":15211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15226,"src":"8953:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15209,"name":"uint256","nodeType":"ElementaryTypeName","src":"8953:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8952:9:39"},"scope":15410,"src":"8880:187:39","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[13605],"body":{"id":15239,"nodeType":"Block","src":"9366:52:39","statements":[{"expression":{"baseExpression":{"id":15235,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"9383:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15237,"indexExpression":{"id":15236,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"9404:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9383:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15234,"id":15238,"nodeType":"Return","src":"9376:35:39"}]},"documentation":{"id":15227,"nodeType":"StructuredDocumentation","src":"9073:202:39","text":"@inheritdoc Budget\n @notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":15240,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"9289:11:39","nodeType":"FunctionDefinition","overrides":{"id":15231,"nodeType":"OverrideSpecifier","overrides":[],"src":"9339:8:39"},"parameters":{"id":15230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15229,"mutability":"mutable","name":"asset_","nameLocation":"9309:6:39","nodeType":"VariableDeclaration","scope":15240,"src":"9301:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15228,"name":"address","nodeType":"ElementaryTypeName","src":"9301:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9300:16:39"},"returnParameters":{"id":15234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15240,"src":"9357:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15232,"name":"uint256","nodeType":"ElementaryTypeName","src":"9357:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9356:9:39"},"scope":15410,"src":"9280:138:39","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13613],"body":{"id":15251,"nodeType":"Block","src":"9601:25:39","statements":[{"expression":{"hexValue":"30","id":15249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9618:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":15248,"id":15250,"nodeType":"Return","src":"9611:8:39"}]},"documentation":{"id":15241,"nodeType":"StructuredDocumentation","src":"9424:93:39","text":"@inheritdoc Budget\n @dev This is a no-op as there is no local balance to reconcile"},"functionSelector":"451cc191","id":15252,"implemented":true,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"9531:9:39","nodeType":"FunctionDefinition","overrides":{"id":15245,"nodeType":"OverrideSpecifier","overrides":[],"src":"9574:8:39"},"parameters":{"id":15244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15252,"src":"9541:14:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15242,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9540:16:39"},"returnParameters":{"id":15248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15252,"src":"9592:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15246,"name":"uint256","nodeType":"ElementaryTypeName","src":"9592:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9591:9:39"},"scope":15410,"src":"9522:104:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":15327,"nodeType":"Block","src":"10188:605:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15264,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10281:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10296:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10288:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15265,"name":"address","nodeType":"ElementaryTypeName","src":"10288:7:39","typeDescriptions":{}}},"id":15268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10281:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15276,"nodeType":"IfStatement","src":"10277:66:39","trueBody":{"errorCall":{"arguments":[{"id":15271,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10322:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15272,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10330:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15273,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10335:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15270,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"10307:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) pure"}},"id":15274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10307:36:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15275,"nodeType":"RevertStatement","src":"10300:43:39"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15277,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10357:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":15279,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10377:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15278,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15226,"src":"10367:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":15280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10367:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10357:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15291,"nodeType":"IfStatement","src":"10353:118:39","trueBody":{"id":15290,"nodeType":"Block","src":"10386:85:39","statements":[{"errorCall":{"arguments":[{"id":15283,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10425:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":15285,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10443:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15284,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15226,"src":"10433:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":15286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10433:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15287,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10452:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15282,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"10407:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":15288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10407:53:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15289,"nodeType":"RevertStatement","src":"10400:60:39"}]}},{"expression":{"id":15296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15292,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"10481:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15294,"indexExpression":{"id":15293,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10502:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10481:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15295,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10513:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10481:39:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15297,"nodeType":"ExpressionStatement","src":"10481:39:39"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15298,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10582:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10600:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15299,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:39","typeDescriptions":{}}},"id":15302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10582:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15319,"nodeType":"Block","src":"10680:58:39","statements":[{"expression":{"arguments":[{"id":15315,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10714:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15316,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10719:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15312,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10694:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10701:12:39","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"10694:19:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":15317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10694:33:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15318,"nodeType":"ExpressionStatement","src":"10694:33:39"}]},"id":15320,"nodeType":"IfStatement","src":"10578:160:39","trueBody":{"id":15311,"nodeType":"Block","src":"10604:70:39","statements":[{"expression":{"arguments":[{"id":15307,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10650:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15308,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10655:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15304,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"10618:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$11372_$","typeString":"type(library SafeTransferLib)"}},"id":15306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10634:15:39","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"10618:31:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":15309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10618:45:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15310,"nodeType":"ExpressionStatement","src":"10618:45:39"}]}},{"eventCall":{"arguments":[{"id":15322,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10765:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15323,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10773:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15324,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10778:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15321,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"10753:11:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":15325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10753:33:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15326,"nodeType":"EmitStatement","src":"10748:38:39"}]},"documentation":{"id":15253,"nodeType":"StructuredDocumentation","src":"9632:448:39","text":"@notice Transfer assets to the recipient\n @param asset_ The address of the asset\n @param to_ The address of the recipient\n @param amount_ The amount of the asset to transfer\n @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert"},"id":15328,"implemented":true,"kind":"function","modifiers":[{"id":15262,"kind":"modifierInvocation","modifierName":{"id":15261,"name":"nonReentrant","nameLocations":["10175:12:39"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"10175:12:39"},"nodeType":"ModifierInvocation","src":"10175:12:39"}],"name":"_transferFungible","nameLocation":"10094:17:39","nodeType":"FunctionDefinition","parameters":{"id":15260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15255,"mutability":"mutable","name":"asset_","nameLocation":"10120:6:39","nodeType":"VariableDeclaration","scope":15328,"src":"10112:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15254,"name":"address","nodeType":"ElementaryTypeName","src":"10112:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15257,"mutability":"mutable","name":"to_","nameLocation":"10136:3:39","nodeType":"VariableDeclaration","scope":15328,"src":"10128:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15256,"name":"address","nodeType":"ElementaryTypeName","src":"10128:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15259,"mutability":"mutable","name":"amount_","nameLocation":"10149:7:39","nodeType":"VariableDeclaration","scope":15328,"src":"10141:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15258,"name":"uint256","nodeType":"ElementaryTypeName","src":"10141:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10111:46:39"},"returnParameters":{"id":15263,"nodeType":"ParameterList","parameters":[],"src":"10188:0:39"},"scope":15410,"src":"10085:708:39","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":15369,"nodeType":"Block","src":"11176:201:39","statements":[{"assignments":[15339],"declarations":[{"constant":false,"id":15339,"mutability":"mutable","name":"balance","nameLocation":"11194:7:39","nodeType":"VariableDeclaration","scope":15369,"src":"11186:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15338,"name":"uint256","nodeType":"ElementaryTypeName","src":"11186:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15359,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15340,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15331,"src":"11204:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11222:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11214:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15341,"name":"address","nodeType":"ElementaryTypeName","src":"11214:7:39","typeDescriptions":{}}},"id":15344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11214:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11204:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":15355,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11276:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11268:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15353,"name":"address","nodeType":"ElementaryTypeName","src":"11268:7:39","typeDescriptions":{}}},"id":15356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11268:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15351,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15331,"src":"11251:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11258:9:39","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"11251:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11251:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11204:78:39","trueExpression":{"expression":{"arguments":[{"id":15348,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11235:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11227:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15346,"name":"address","nodeType":"ElementaryTypeName","src":"11227:7:39","typeDescriptions":{}}},"id":15349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11241:7:39","memberName":"balance","nodeType":"MemberAccess","src":"11227:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11186:96:39"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15361,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15339,"src":"11319:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":15362,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"11329:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15364,"indexExpression":{"id":15363,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15331,"src":"11350:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11329:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11319:38:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15366,"name":"timestamp_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15333,"src":"11359:10:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":15360,"name":"_linearVestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15409,"src":"11299:19:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint64_$returns$_t_uint256_$","typeString":"function (uint256,uint64) view returns (uint256)"}},"id":15367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11299:71:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15337,"id":15368,"nodeType":"Return","src":"11292:78:39"}]},"documentation":{"id":15329,"nodeType":"StructuredDocumentation","src":"10799:270:39","text":"@notice Calculate the portion of allocated assets vested at a given timestamp\n @param asset_ The address of the asset\n @param timestamp_ The timestamp used to calculate the vested amount\n @return The amount of assets vested at that point in time"},"id":15370,"implemented":true,"kind":"function","modifiers":[],"name":"_vestedAllocation","nameLocation":"11083:17:39","nodeType":"FunctionDefinition","parameters":{"id":15334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15331,"mutability":"mutable","name":"asset_","nameLocation":"11109:6:39","nodeType":"VariableDeclaration","scope":15370,"src":"11101:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15330,"name":"address","nodeType":"ElementaryTypeName","src":"11101:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15333,"mutability":"mutable","name":"timestamp_","nameLocation":"11124:10:39","nodeType":"VariableDeclaration","scope":15370,"src":"11117:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15332,"name":"uint64","nodeType":"ElementaryTypeName","src":"11117:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"11100:35:39"},"returnParameters":{"id":15337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15370,"src":"11167:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15335,"name":"uint256","nodeType":"ElementaryTypeName","src":"11167:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11166:9:39"},"scope":15410,"src":"11074:303:39","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":15408,"nodeType":"Block","src":"11860:254:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15380,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15375,"src":"11874:9:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15381,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"11886:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15382,"name":"cliff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"11894:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11886:13:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11874:25:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15388,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15375,"src":"11944:9:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15389,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"11957:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15390,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"11965:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11957:16:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11944:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15405,"nodeType":"Block","src":"12028:80:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15396,"name":"totalAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15373,"src":"12049:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15397,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15375,"src":"12068:9:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15398,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"12080:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12068:17:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":15400,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12067:19:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12049:37:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15402,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"12089:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12049:48:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15379,"id":15404,"nodeType":"Return","src":"12042:55:39"}]},"id":15406,"nodeType":"IfStatement","src":"11940:168:39","trueBody":{"id":15395,"nodeType":"Block","src":"11975:47:39","statements":[{"expression":{"id":15393,"name":"totalAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15373,"src":"11996:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15379,"id":15394,"nodeType":"Return","src":"11989:22:39"}]}},"id":15407,"nodeType":"IfStatement","src":"11870:238:39","trueBody":{"id":15387,"nodeType":"Block","src":"11901:33:39","statements":[{"expression":{"hexValue":"30","id":15385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11922:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":15379,"id":15386,"nodeType":"Return","src":"11915:8:39"}]}}]},"documentation":{"id":15371,"nodeType":"StructuredDocumentation","src":"11383:360:39","text":"@notice Calculate the amount of assets vested at a given timestamp using a linear vesting schedule\n @param totalAllocation The total amount of the asset allocated to the budget (including prior distributions)\n @param timestamp The timestamp used to calculate the vested amount\n @return The amount of assets vested at that point in time"},"id":15409,"implemented":true,"kind":"function","modifiers":[],"name":"_linearVestedAmount","nameLocation":"11757:19:39","nodeType":"FunctionDefinition","parameters":{"id":15376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15373,"mutability":"mutable","name":"totalAllocation","nameLocation":"11785:15:39","nodeType":"VariableDeclaration","scope":15409,"src":"11777:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15372,"name":"uint256","nodeType":"ElementaryTypeName","src":"11777:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15375,"mutability":"mutable","name":"timestamp","nameLocation":"11809:9:39","nodeType":"VariableDeclaration","scope":15409,"src":"11802:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15374,"name":"uint64","nodeType":"ElementaryTypeName","src":"11802:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"11776:43:39"},"returnParameters":{"id":15379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15409,"src":"11851:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15377,"name":"uint256","nodeType":"ElementaryTypeName","src":"11851:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11850:9:39"},"scope":15410,"src":"11748:366:39","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":15411,"src":"1481:10635:39","usedErrors":[6235,6238,6241,6244,9117,9120,11020,13517,13526,13529,13538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,13501,13510]}],"src":"36:12081:39"},"id":39},"contracts/incentives/AllowListIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/AllowListIncentive.sol","exportedSymbols":{"AllowListIncentive":[15662],"BoostError":[17566],"Incentive":[17260],"SimpleAllowList":[13307]},"id":15663,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15412,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:40"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":15414,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15663,"sourceUnit":17567,"src":"62:59:40","symbolAliases":[{"foreign":{"id":15413,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"70:10:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/SimpleAllowList.sol","file":"contracts/allowlists/SimpleAllowList.sol","id":15416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15663,"sourceUnit":13308,"src":"123:73:40","symbolAliases":[{"foreign":{"id":15415,"name":"SimpleAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13307,"src":"131:15:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":15418,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15663,"sourceUnit":17261,"src":"197:61:40","symbolAliases":[{"foreign":{"id":15417,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"205:9:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15420,"name":"Incentive","nameLocations":["677:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"677:9:40"},"id":15421,"nodeType":"InheritanceSpecifier","src":"677:9:40"}],"canonicalName":"AllowListIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":15419,"nodeType":"StructuredDocumentation","src":"260:386:40","text":"@title SimpleAllowList Incentive\n @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n @dev In order for any claim to be successful:\n - The claimer must not already be on the allow list; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to modify the allow list"},"fullyImplemented":true,"id":15662,"linearizedBaseContracts":[15662,17260,11038,17720,2845,2857,9225,6423],"name":"AllowListIncentive","nameLocation":"655:18:40","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AllowListIncentive.InitPayload","documentation":{"id":15422,"nodeType":"StructuredDocumentation","src":"693:62:40","text":"@notice The payload for initializing an AllowListIncentive"},"id":15428,"members":[{"constant":false,"id":15425,"mutability":"mutable","name":"allowList","nameLocation":"805:9:40","nodeType":"VariableDeclaration","scope":15428,"src":"789:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"},"typeName":{"id":15424,"nodeType":"UserDefinedTypeName","pathNode":{"id":15423,"name":"SimpleAllowList","nameLocations":["789:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":13307,"src":"789:15:40"},"referencedDeclaration":13307,"src":"789:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"visibility":"internal"},{"constant":false,"id":15427,"mutability":"mutable","name":"limit","nameLocation":"832:5:40","nodeType":"VariableDeclaration","scope":15428,"src":"824:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15426,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"767:11:40","nodeType":"StructDefinition","scope":15662,"src":"760:84:40","visibility":"public"},{"constant":false,"documentation":{"id":15429,"nodeType":"StructuredDocumentation","src":"850:40:40","text":"@notice The SimpleAllowList contract"},"functionSelector":"87b9d25c","id":15432,"mutability":"mutable","name":"allowList","nameLocation":"918:9:40","nodeType":"VariableDeclaration","scope":15662,"src":"895:32:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"},"typeName":{"id":15431,"nodeType":"UserDefinedTypeName","pathNode":{"id":15430,"name":"SimpleAllowList","nameLocations":["895:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":13307,"src":"895:15:40"},"referencedDeclaration":13307,"src":"895:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"visibility":"public"},{"constant":false,"documentation":{"id":15433,"nodeType":"StructuredDocumentation","src":"934:75:40","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":15435,"mutability":"mutable","name":"limit","nameLocation":"1029:5:40","nodeType":"VariableDeclaration","scope":15662,"src":"1014:20:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15434,"name":"uint256","nodeType":"ElementaryTypeName","src":"1014:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":15442,"nodeType":"Block","src":"1299:39:40","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15439,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1309:20:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1309:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15441,"nodeType":"ExpressionStatement","src":"1309:22:40"}]},"documentation":{"id":15436,"nodeType":"StructuredDocumentation","src":"1041:239:40","text":"@notice Construct a new AllowListIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":15443,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15437,"nodeType":"ParameterList","parameters":[],"src":"1296:2:40"},"returnParameters":{"id":15438,"nodeType":"ParameterList","parameters":[],"src":"1299:0:40"},"scope":15662,"src":"1285:53:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":15477,"nodeType":"Block","src":"1581:180:40","statements":[{"assignments":[15454],"declarations":[{"constant":false,"id":15454,"mutability":"mutable","name":"init_","nameLocation":"1610:5:40","nodeType":"VariableDeclaration","scope":15477,"src":"1591:24:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload"},"typeName":{"id":15453,"nodeType":"UserDefinedTypeName","pathNode":{"id":15452,"name":"InitPayload","nameLocations":["1591:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":15428,"src":"1591:11:40"},"referencedDeclaration":15428,"src":"1591:11:40","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_storage_ptr","typeString":"struct AllowListIncentive.InitPayload"}},"visibility":"internal"}],"id":15461,"initialValue":{"arguments":[{"id":15457,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15446,"src":"1629:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15458,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15428,"src":"1637:11:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15428_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}}],"id":15459,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1636:13:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15428_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15428_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}],"expression":{"id":15455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1618:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1622:6:40","memberName":"decode","nodeType":"MemberAccess","src":"1618:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1618:32:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1591:59:40"},{"expression":{"arguments":[{"expression":{"id":15463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1677:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1681:6:40","memberName":"sender","nodeType":"MemberAccess","src":"1677:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15462,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1660:16:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:28:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15466,"nodeType":"ExpressionStatement","src":"1660:28:40"},{"expression":{"id":15470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15467,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15432,"src":"1698:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15468,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"1710:5:40","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"id":15469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1716:9:40","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":15425,"src":"1710:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"src":"1698:27:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"id":15471,"nodeType":"ExpressionStatement","src":"1698:27:40"},{"expression":{"id":15475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15472,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15435,"src":"1735:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15473,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"1743:5:40","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"id":15474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1749:5:40","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":15427,"src":"1743:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1735:19:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15476,"nodeType":"ExpressionStatement","src":"1735:19:40"}]},"documentation":{"id":15444,"nodeType":"StructuredDocumentation","src":"1344:162:40","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The packed initialization data `(SimpleAllowList allowList, uint256 limit)`"},"functionSelector":"439fab91","id":15478,"implemented":true,"kind":"function","modifiers":[{"id":15450,"kind":"modifierInvocation","modifierName":{"id":15449,"name":"initializer","nameLocations":["1569:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1569:11:40"},"nodeType":"ModifierInvocation","src":"1569:11:40"}],"name":"initialize","nameLocation":"1520:10:40","nodeType":"FunctionDefinition","overrides":{"id":15448,"nodeType":"OverrideSpecifier","overrides":[],"src":"1560:8:40"},"parameters":{"id":15447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15446,"mutability":"mutable","name":"data_","nameLocation":"1546:5:40","nodeType":"VariableDeclaration","scope":15478,"src":"1531:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15445,"name":"bytes","nodeType":"ElementaryTypeName","src":"1531:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1530:22:40"},"returnParameters":{"id":15451,"nodeType":"ParameterList","parameters":[],"src":"1581:0:40"},"scope":15662,"src":"1511:250:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":15541,"nodeType":"Block","src":"1975:363:40","statements":[{"assignments":[15491],"declarations":[{"constant":false,"id":15491,"mutability":"mutable","name":"claim_","nameLocation":"2005:6:40","nodeType":"VariableDeclaration","scope":15541,"src":"1985:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15490,"nodeType":"UserDefinedTypeName","pathNode":{"id":15489,"name":"ClaimPayload","nameLocations":["1985:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"1985:12:40"},"referencedDeclaration":17186,"src":"1985:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15498,"initialValue":{"arguments":[{"id":15494,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15481,"src":"2025:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15495,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"2033:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15496,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2032:14:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15492,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2014:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2018:6:40","memberName":"decode","nodeType":"MemberAccess","src":"2014:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1985:62:40"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2061:8:40","subExpression":{"id":15499,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"2061:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":15501,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15435,"src":"2073:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2061:17:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"id":15503,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2082:7:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15506,"indexExpression":{"expression":{"id":15504,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"2090:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2097:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2090:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2082:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2061:43:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15511,"nodeType":"IfStatement","src":"2057:70:40","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15508,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"2113:12:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15510,"nodeType":"RevertStatement","src":"2106:21:40"}},{"expression":{"id":15517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15512,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2137:7:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15515,"indexExpression":{"expression":{"id":15513,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"2145:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2152:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2145:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2137:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2162:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2137:29:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15518,"nodeType":"ExpressionStatement","src":"2137:29:40"},{"assignments":[15523,15526],"declarations":[{"constant":false,"id":15523,"mutability":"mutable","name":"users","nameLocation":"2195:5:40","nodeType":"VariableDeclaration","scope":15541,"src":"2178:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15521,"name":"address","nodeType":"ElementaryTypeName","src":"2178:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15522,"nodeType":"ArrayTypeName","src":"2178:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15526,"mutability":"mutable","name":"allowed","nameLocation":"2216:7:40","nodeType":"VariableDeclaration","scope":15541,"src":"2202:21:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15524,"name":"bool","nodeType":"ElementaryTypeName","src":"2202:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15525,"nodeType":"ArrayTypeName","src":"2202:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":15531,"initialValue":{"arguments":[{"expression":{"id":15528,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"2249:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2256:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2249:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15527,"name":"_makeAllowListPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15661,"src":"2227:21:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (address) pure returns (address[] memory,bool[] memory)"}},"id":15530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bool[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"2177:86:40"},{"expression":{"arguments":[{"id":15535,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15523,"src":"2295:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15536,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15526,"src":"2302:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":15532,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15432,"src":"2274:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"id":15534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2284:10:40","memberName":"setAllowed","nodeType":"MemberAccess","referencedDeclaration":13306,"src":"2274:20:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bool[] memory) external"}},"id":15537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15538,"nodeType":"ExpressionStatement","src":"2274:36:40"},{"expression":{"hexValue":"74727565","id":15539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2327:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15488,"id":15540,"nodeType":"Return","src":"2320:11:40"}]},"documentation":{"id":15479,"nodeType":"StructuredDocumentation","src":"1767:115:40","text":"@inheritdoc Incentive\n @notice Claim a slot on the {SimpleAllowList}\n @param data_ The claim data"},"functionSelector":"c63ff8dd","id":15542,"implemented":true,"kind":"function","modifiers":[{"id":15485,"kind":"modifierInvocation","modifierName":{"id":15484,"name":"onlyOwner","nameLocations":["1950:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"1950:9:40"},"nodeType":"ModifierInvocation","src":"1950:9:40"}],"name":"claim","nameLocation":"1896:5:40","nodeType":"FunctionDefinition","overrides":{"id":15483,"nodeType":"OverrideSpecifier","overrides":[],"src":"1941:8:40"},"parameters":{"id":15482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15481,"mutability":"mutable","name":"data_","nameLocation":"1917:5:40","nodeType":"VariableDeclaration","scope":15542,"src":"1902:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15480,"name":"bytes","nodeType":"ElementaryTypeName","src":"1902:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1901:22:40"},"returnParameters":{"id":15488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15542,"src":"1969:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15486,"name":"bool","nodeType":"ElementaryTypeName","src":"1969:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1968:6:40"},"scope":15662,"src":"1887:451:40","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":15556,"nodeType":"Block","src":"2507:51:40","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15551,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2524:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":15553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2535:14:40","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"2524:25:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:27:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15555,"nodeType":"RevertStatement","src":"2517:34:40"}]},"documentation":{"id":15543,"nodeType":"StructuredDocumentation","src":"2344:87:40","text":"@inheritdoc Incentive\n @dev Not a valid operation for this type of incentive"},"functionSelector":"f1c30ec0","id":15557,"implemented":true,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2445:7:40","nodeType":"FunctionDefinition","overrides":{"id":15547,"nodeType":"OverrideSpecifier","overrides":[],"src":"2483:8:40"},"parameters":{"id":15546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15557,"src":"2453:14:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15544,"name":"bytes","nodeType":"ElementaryTypeName","src":"2453:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2452:16:40"},"returnParameters":{"id":15550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15557,"src":"2501:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15548,"name":"bool","nodeType":"ElementaryTypeName","src":"2501:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2500:6:40"},"scope":15662,"src":"2436:122:40","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":15594,"nodeType":"Block","src":"2683:180:40","statements":[{"assignments":[15568],"declarations":[{"constant":false,"id":15568,"mutability":"mutable","name":"claim_","nameLocation":"2713:6:40","nodeType":"VariableDeclaration","scope":15594,"src":"2693:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15567,"nodeType":"UserDefinedTypeName","pathNode":{"id":15566,"name":"ClaimPayload","nameLocations":["2693:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"2693:12:40"},"referencedDeclaration":17186,"src":"2693:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15575,"initialValue":{"arguments":[{"id":15571,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15560,"src":"2733:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15572,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"2741:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2740:14:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15569,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2722:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2726:6:40","memberName":"decode","nodeType":"MemberAccess","src":"2722:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2693:62:40"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15576,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"2772:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15577,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15435,"src":"2781:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2790:23:40","subExpression":{"baseExpression":{"id":15579,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2791:7:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15582,"indexExpression":{"expression":{"id":15580,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"2799:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2806:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2799:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2791:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2772:41:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2817:39:40","subExpression":{"arguments":[{"expression":{"id":15587,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"2838:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2845:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2838:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"","id":15589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2853:2:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":15585,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15432,"src":"2818:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"id":15586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2828:9:40","memberName":"isAllowed","nodeType":"MemberAccess","referencedDeclaration":13258,"src":"2818:19:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes memory) view external returns (bool)"}},"id":15590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:38:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2772:84:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15565,"id":15593,"nodeType":"Return","src":"2765:91:40"}]},"documentation":{"id":15558,"nodeType":"StructuredDocumentation","src":"2564:25:40","text":"@inheritdoc Incentive"},"functionSelector":"e18e6508","id":15595,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"2603:11:40","nodeType":"FunctionDefinition","overrides":{"id":15562,"nodeType":"OverrideSpecifier","overrides":[],"src":"2659:8:40"},"parameters":{"id":15561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15560,"mutability":"mutable","name":"data_","nameLocation":"2630:5:40","nodeType":"VariableDeclaration","scope":15595,"src":"2615:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15559,"name":"bytes","nodeType":"ElementaryTypeName","src":"2615:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2614:22:40"},"returnParameters":{"id":15565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15595,"src":"2677:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15563,"name":"bool","nodeType":"ElementaryTypeName","src":"2677:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2676:6:40"},"scope":15662,"src":"2594:269:40","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":15609,"nodeType":"Block","src":"3070:36:40","statements":[{"expression":{"arguments":[{"hexValue":"30","id":15606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3097:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3087:9:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":15604,"name":"bytes","nodeType":"ElementaryTypeName","src":"3091:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":15607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15603,"id":15608,"nodeType":"Return","src":"3080:19:40"}]},"documentation":{"id":15596,"nodeType":"StructuredDocumentation","src":"2869:115:40","text":"@inheritdoc Incentive\n @dev No preflight approval is required for this incentive (no tokens are handled)"},"functionSelector":"4e7165a2","id":15610,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2998:9:40","nodeType":"FunctionDefinition","overrides":{"id":15600,"nodeType":"OverrideSpecifier","overrides":[],"src":"3038:8:40"},"parameters":{"id":15599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15610,"src":"3008:14:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15597,"name":"bytes","nodeType":"ElementaryTypeName","src":"3008:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3007:16:40"},"returnParameters":{"id":15603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15610,"src":"3056:12:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15601,"name":"bytes","nodeType":"ElementaryTypeName","src":"3056:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3055:14:40"},"scope":15662,"src":"2989:117:40","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":15660,"nodeType":"Block","src":"3396:193:40","statements":[{"assignments":[15626],"declarations":[{"constant":false,"id":15626,"mutability":"mutable","name":"users","nameLocation":"3423:5:40","nodeType":"VariableDeclaration","scope":15660,"src":"3406:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15624,"name":"address","nodeType":"ElementaryTypeName","src":"3406:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15625,"nodeType":"ArrayTypeName","src":"3406:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":15632,"initialValue":{"arguments":[{"hexValue":"31","id":15630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3445:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":15629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3431:13:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":15627,"name":"address","nodeType":"ElementaryTypeName","src":"3435:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15628,"nodeType":"ArrayTypeName","src":"3435:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":15631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3431:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3406:41:40"},{"assignments":[15637],"declarations":[{"constant":false,"id":15637,"mutability":"mutable","name":"allowed","nameLocation":"3471:7:40","nodeType":"VariableDeclaration","scope":15660,"src":"3457:21:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15635,"name":"bool","nodeType":"ElementaryTypeName","src":"3457:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15636,"nodeType":"ArrayTypeName","src":"3457:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":15643,"initialValue":{"arguments":[{"hexValue":"31","id":15641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3492:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":15640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3481:10:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":15638,"name":"bool","nodeType":"ElementaryTypeName","src":"3485:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15639,"nodeType":"ArrayTypeName","src":"3485:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":15642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3481:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3457:37:40"},{"expression":{"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15644,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15626,"src":"3504:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15646,"indexExpression":{"hexValue":"30","id":15645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3510:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3504:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15647,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15613,"src":"3515:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3504:18:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15649,"nodeType":"ExpressionStatement","src":"3504:18:40"},{"expression":{"id":15654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15650,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15637,"src":"3532:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":15652,"indexExpression":{"hexValue":"30","id":15651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3540:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3532:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3545:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3532:17:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15655,"nodeType":"ExpressionStatement","src":"3532:17:40"},{"expression":{"components":[{"id":15656,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15626,"src":"3567:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15657,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15637,"src":"3574:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"id":15658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3566:16:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bool[] memory)"}},"functionReturnParameters":15621,"id":15659,"nodeType":"Return","src":"3559:23:40"}]},"documentation":{"id":15611,"nodeType":"StructuredDocumentation","src":"3112:175:40","text":"@notice Create the payload for the SimpleAllowList\n @param target_ The target address to add to the allow list\n @return A tuple of users and allowed statuses"},"id":15661,"implemented":true,"kind":"function","modifiers":[],"name":"_makeAllowListPayload","nameLocation":"3301:21:40","nodeType":"FunctionDefinition","parameters":{"id":15614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15613,"mutability":"mutable","name":"target_","nameLocation":"3331:7:40","nodeType":"VariableDeclaration","scope":15661,"src":"3323:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15612,"name":"address","nodeType":"ElementaryTypeName","src":"3323:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3322:17:40"},"returnParameters":{"id":15621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15661,"src":"3363:16:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15615,"name":"address","nodeType":"ElementaryTypeName","src":"3363:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15616,"nodeType":"ArrayTypeName","src":"3363:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15661,"src":"3381:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15618,"name":"bool","nodeType":"ElementaryTypeName","src":"3381:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15619,"nodeType":"ArrayTypeName","src":"3381:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3362:33:40"},"scope":15662,"src":"3292:297:40","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":15663,"src":"646:2945:40","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17544,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:3556:40"},"id":40},"contracts/incentives/CGDAIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/CGDAIncentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"CGDAIncentive":[16103],"Incentive":[17260],"SafeTransferLib":[11372]},"id":16104,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15664,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:41"},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":15666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":11373,"src":"62:66:41","symbolAliases":[{"foreign":{"id":15665,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"70:15:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":15668,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":17567,"src":"130:59:41","symbolAliases":[{"foreign":{"id":15667,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"138:10:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":15670,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":13670,"src":"190:52:41","symbolAliases":[{"foreign":{"id":15669,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"198:6:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":15672,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":17261,"src":"244:42:41","symbolAliases":[{"foreign":{"id":15671,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"252:9:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15674,"name":"Incentive","nameLocations":["479:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"479:9:41"},"id":15675,"nodeType":"InheritanceSpecifier","src":"479:9:41"}],"canonicalName":"CGDAIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":15673,"nodeType":"StructuredDocumentation","src":"288:165:41","text":"@title Continuous Gradual Dutch Auction Incentive\n @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume."},"fullyImplemented":true,"id":16103,"linearizedBaseContracts":[16103,17260,11038,17720,2845,2857,9225,6423],"name":"CGDAIncentive","nameLocation":"462:13:41","nodeType":"ContractDefinition","nodes":[{"global":false,"id":15678,"libraryName":{"id":15676,"name":"SafeTransferLib","nameLocations":["501:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"501:15:41"},"nodeType":"UsingForDirective","src":"495:34:41","typeName":{"id":15677,"name":"address","nodeType":"ElementaryTypeName","src":"521:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":15679,"nodeType":"StructuredDocumentation","src":"535:55:41","text":"@notice The ERC20-like token used for the incentive"},"functionSelector":"38d52e0f","id":15681,"mutability":"mutable","name":"asset","nameLocation":"610:5:41","nodeType":"VariableDeclaration","scope":16103,"src":"595:20:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15680,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"canonicalName":"CGDAIncentive.InitPayload","documentation":{"id":15682,"nodeType":"StructuredDocumentation","src":"622:448:41","text":"@notice The payload for initializing a CGDAIncentive\n @param asset The address of the ERC20-like token\n @param initialReward The initial reward amount\n @param rewardDecay The amount to subtract from the current reward after each claim\n @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n @param totalBudget The total budget for the incentive"},"id":15693,"members":[{"constant":false,"id":15684,"mutability":"mutable","name":"asset","nameLocation":"1112:5:41","nodeType":"VariableDeclaration","scope":15693,"src":"1104:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15683,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15686,"mutability":"mutable","name":"initialReward","nameLocation":"1135:13:41","nodeType":"VariableDeclaration","scope":15693,"src":"1127:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15685,"name":"uint256","nodeType":"ElementaryTypeName","src":"1127:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15688,"mutability":"mutable","name":"rewardDecay","nameLocation":"1166:11:41","nodeType":"VariableDeclaration","scope":15693,"src":"1158:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15690,"mutability":"mutable","name":"rewardBoost","nameLocation":"1195:11:41","nodeType":"VariableDeclaration","scope":15693,"src":"1187:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15689,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15692,"mutability":"mutable","name":"totalBudget","nameLocation":"1224:11:41","nodeType":"VariableDeclaration","scope":15693,"src":"1216:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15691,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1082:11:41","nodeType":"StructDefinition","scope":16103,"src":"1075:167:41","visibility":"public"},{"canonicalName":"CGDAIncentive.CGDAParameters","documentation":{"id":15694,"nodeType":"StructuredDocumentation","src":"1248:396:41","text":"@notice The configuration parameters for the CGDAIncentive\n @param rewardDecay The amount to subtract from the current reward after each claim\n @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n @param lastClaimTime The timestamp of the last claim\n @param currentReward The current reward amount"},"id":15703,"members":[{"constant":false,"id":15696,"mutability":"mutable","name":"rewardDecay","nameLocation":"1689:11:41","nodeType":"VariableDeclaration","scope":15703,"src":"1681:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1681:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15698,"mutability":"mutable","name":"rewardBoost","nameLocation":"1718:11:41","nodeType":"VariableDeclaration","scope":15703,"src":"1710:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1710:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15700,"mutability":"mutable","name":"lastClaimTime","nameLocation":"1747:13:41","nodeType":"VariableDeclaration","scope":15703,"src":"1739:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15699,"name":"uint256","nodeType":"ElementaryTypeName","src":"1739:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15702,"mutability":"mutable","name":"currentReward","nameLocation":"1778:13:41","nodeType":"VariableDeclaration","scope":15703,"src":"1770:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15701,"name":"uint256","nodeType":"ElementaryTypeName","src":"1770:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CGDAParameters","nameLocation":"1656:14:41","nodeType":"StructDefinition","scope":16103,"src":"1649:149:41","visibility":"public"},{"constant":false,"functionSelector":"75ef18d0","id":15706,"mutability":"mutable","name":"cgdaParams","nameLocation":"1826:10:41","nodeType":"VariableDeclaration","scope":16103,"src":"1804:32:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters"},"typeName":{"id":15705,"nodeType":"UserDefinedTypeName","pathNode":{"id":15704,"name":"CGDAParameters","nameLocations":["1804:14:41"],"nodeType":"IdentifierPath","referencedDeclaration":15703,"src":"1804:14:41"},"referencedDeclaration":15703,"src":"1804:14:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage_ptr","typeString":"struct CGDAIncentive.CGDAParameters"}},"visibility":"public"},{"constant":false,"functionSelector":"c78da39a","id":15708,"mutability":"mutable","name":"totalBudget","nameLocation":"1857:11:41","nodeType":"VariableDeclaration","scope":16103,"src":"1842:26:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15707,"name":"uint256","nodeType":"ElementaryTypeName","src":"1842:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":15715,"nodeType":"Block","src":"2050:39:41","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15712,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"2060:20:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15714,"nodeType":"ExpressionStatement","src":"2060:22:41"}]},"documentation":{"id":15709,"nodeType":"StructuredDocumentation","src":"1875:156:41","text":"@notice Construct a new CGDAIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor."},"id":15716,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15710,"nodeType":"ParameterList","parameters":[],"src":"2047:2:41"},"returnParameters":{"id":15711,"nodeType":"ParameterList","parameters":[],"src":"2050:0:41"},"scope":16103,"src":"2036:53:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":15816,"nodeType":"Block","src":"2259:844:41","statements":[{"assignments":[15727],"declarations":[{"constant":false,"id":15727,"mutability":"mutable","name":"init_","nameLocation":"2288:5:41","nodeType":"VariableDeclaration","scope":15816,"src":"2269:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload"},"typeName":{"id":15726,"nodeType":"UserDefinedTypeName","pathNode":{"id":15725,"name":"InitPayload","nameLocations":["2269:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":15693,"src":"2269:11:41"},"referencedDeclaration":15693,"src":"2269:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_storage_ptr","typeString":"struct CGDAIncentive.InitPayload"}},"visibility":"internal"}],"id":15734,"initialValue":{"arguments":[{"id":15730,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"2307:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15731,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15693,"src":"2315:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"id":15732,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2314:13:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}],"expression":{"id":15728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2296:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2300:6:41","memberName":"decode","nodeType":"MemberAccess","src":"2296:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2269:59:41"},{"assignments":[15736],"declarations":[{"constant":false,"id":15736,"mutability":"mutable","name":"available","nameLocation":"2347:9:41","nodeType":"VariableDeclaration","scope":15816,"src":"2339:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15735,"name":"uint256","nodeType":"ElementaryTypeName","src":"2339:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15745,"initialValue":{"arguments":[{"arguments":[{"id":15742,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2389:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":15741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2381:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15740,"name":"address","nodeType":"ElementaryTypeName","src":"2381:7:41","typeDescriptions":{}}},"id":15743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":15737,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2359:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2365:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"2359:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2371:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"2359:21:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2359:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2339:56:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15746,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15736,"src":"2409:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15747,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2421:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2427:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"2421:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2409:29:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15761,"nodeType":"IfStatement","src":"2405:138:41","trueBody":{"id":15760,"nodeType":"Block","src":"2440:103:41","statements":[{"errorCall":{"arguments":[{"expression":{"id":15753,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2490:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2496:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"2490:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15755,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15736,"src":"2503:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15756,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2514:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2520:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"2514:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15750,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2461:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":15752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2472:17:41","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"2461:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":15758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2461:71:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15759,"nodeType":"RevertStatement","src":"2454:78:41"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15762,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2570:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2576:13:41","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":15686,"src":"2570:19:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2593:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2570:24:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15766,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2598:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2604:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15688,"src":"2598:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2619:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2598:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2570:50:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15771,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2624:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2630:11:41","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":15690,"src":"2624:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2645:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2624:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2570:76:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15776,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2666:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2672:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"2666:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15778,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2686:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2692:13:41","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":15686,"src":"2686:19:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2666:39:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2570:135:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15787,"nodeType":"IfStatement","src":"2553:204:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15782,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2723:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":15784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2734:21:41","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"2723:32:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15786,"nodeType":"RevertStatement","src":"2716:41:41"}},{"expression":{"id":15791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15788,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"2768:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15789,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2776:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2782:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"2776:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2768:19:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15792,"nodeType":"ExpressionStatement","src":"2768:19:41"},{"expression":{"id":15804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15793,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"2797:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":15795,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2852:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2858:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15688,"src":"2852:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15797,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2896:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2902:11:41","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":15690,"src":"2896:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15799,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2942:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2948:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"2942:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15801,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2986:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2992:13:41","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":15686,"src":"2986:19:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15794,"name":"CGDAParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"2810:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CGDAParameters_$15703_storage_ptr_$","typeString":"type(struct CGDAIncentive.CGDAParameters storage pointer)"}},"id":15803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2839:11:41","2883:11:41","2927:13:41","2971:13:41"],"names":["rewardDecay","rewardBoost","lastClaimTime","currentReward"],"nodeType":"FunctionCall","src":"2810:206:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_memory_ptr","typeString":"struct CGDAIncentive.CGDAParameters memory"}},"src":"2797:219:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15805,"nodeType":"ExpressionStatement","src":"2797:219:41"},{"expression":{"id":15809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15806,"name":"totalBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"3027:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15807,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"3041:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3047:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"3041:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3027:31:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15810,"nodeType":"ExpressionStatement","src":"3027:31:41"},{"expression":{"arguments":[{"expression":{"id":15812,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3085:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3089:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3085:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15811,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3068:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3068:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15815,"nodeType":"ExpressionStatement","src":"3068:28:41"}]},"documentation":{"id":15717,"nodeType":"StructuredDocumentation","src":"2095:89:41","text":"@notice Initialize the CGDA Incentive\n @param data_ Initialization parameters."},"functionSelector":"439fab91","id":15817,"implemented":true,"kind":"function","modifiers":[{"id":15723,"kind":"modifierInvocation","modifierName":{"id":15722,"name":"initializer","nameLocations":["2247:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2247:11:41"},"nodeType":"ModifierInvocation","src":"2247:11:41"}],"name":"initialize","nameLocation":"2198:10:41","nodeType":"FunctionDefinition","overrides":{"id":15721,"nodeType":"OverrideSpecifier","overrides":[],"src":"2238:8:41"},"parameters":{"id":15720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15719,"mutability":"mutable","name":"data_","nameLocation":"2224:5:41","nodeType":"VariableDeclaration","scope":15817,"src":"2209:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15718,"name":"bytes","nodeType":"ElementaryTypeName","src":"2209:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2208:22:41"},"returnParameters":{"id":15724,"nodeType":"ParameterList","parameters":[],"src":"2259:0:41"},"scope":16103,"src":"2189:914:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":15900,"nodeType":"Block","src":"3263:664:41","statements":[{"assignments":[15830],"declarations":[{"constant":false,"id":15830,"mutability":"mutable","name":"claim_","nameLocation":"3293:6:41","nodeType":"VariableDeclaration","scope":15900,"src":"3273:26:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15829,"nodeType":"UserDefinedTypeName","pathNode":{"id":15828,"name":"ClaimPayload","nameLocations":["3273:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3273:12:41"},"referencedDeclaration":17186,"src":"3273:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15837,"initialValue":{"arguments":[{"id":15833,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15820,"src":"3313:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15834,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3321:12:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15835,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3320:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3302:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3306:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3302:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3302:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3273:62:41"},{"condition":{"id":15842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3349:28:41","subExpression":{"arguments":[{"expression":{"id":15839,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3363:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3370:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3363:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15838,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16102,"src":"3350:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":15841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3350:27:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15846,"nodeType":"IfStatement","src":"3345:55:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15843,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"3386:12:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15845,"nodeType":"RevertStatement","src":"3379:21:41"}},{"expression":{"id":15848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3410:8:41","subExpression":{"id":15847,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"3410:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15849,"nodeType":"ExpressionStatement","src":"3410:8:41"},{"assignments":[15851],"declarations":[{"constant":false,"id":15851,"mutability":"mutable","name":"reward","nameLocation":"3498:6:41","nodeType":"VariableDeclaration","scope":15900,"src":"3490:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15850,"name":"uint256","nodeType":"ElementaryTypeName","src":"3490:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15854,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15852,"name":"currentReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"3507:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3507:15:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3490:32:41"},{"expression":{"id":15860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15855,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3532:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3543:13:41","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":15700,"src":"3532:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15858,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3559:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3565:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"3559:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3532:42:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15861,"nodeType":"ExpressionStatement","src":"3532:42:41"},{"expression":{"id":15876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15862,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3584:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3595:13:41","memberName":"currentReward","nodeType":"MemberAccess","referencedDeclaration":15702,"src":"3584:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15865,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3623:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":15866,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3632:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3643:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15696,"src":"3632:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3623:31:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":15873,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3691:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3702:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15696,"src":"3691:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3623:90:41","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15869,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3657:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15870,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3666:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3677:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15696,"src":"3666:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3657:31:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3584:129:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15877,"nodeType":"ExpressionStatement","src":"3584:129:41"},{"expression":{"arguments":[{"expression":{"id":15881,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3791:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3798:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3791:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15883,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3806:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15878,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"3772:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3778:12:41","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"3772:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":15884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3772:41:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15885,"nodeType":"ExpressionStatement","src":"3772:41:41"},{"eventCall":{"arguments":[{"expression":{"id":15887,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3837:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3844:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3837:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":15891,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"3869:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15892,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3876:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3883:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3876:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15894,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3891:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15889,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3852:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3856:12:41","memberName":"encodePacked","nodeType":"MemberAccess","src":"3852:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3852:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15886,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"3829:7:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":15896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:70:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15897,"nodeType":"EmitStatement","src":"3824:75:41"},{"expression":{"hexValue":"74727565","id":15898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3916:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15827,"id":15899,"nodeType":"Return","src":"3909:11:41"}]},"documentation":{"id":15818,"nodeType":"StructuredDocumentation","src":"3109:61:41","text":"@inheritdoc Incentive\n @notice Claim the incentive"},"functionSelector":"c63ff8dd","id":15901,"implemented":true,"kind":"function","modifiers":[{"id":15824,"kind":"modifierInvocation","modifierName":{"id":15823,"name":"onlyOwner","nameLocations":["3238:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"3238:9:41"},"nodeType":"ModifierInvocation","src":"3238:9:41"}],"name":"claim","nameLocation":"3184:5:41","nodeType":"FunctionDefinition","overrides":{"id":15822,"nodeType":"OverrideSpecifier","overrides":[],"src":"3229:8:41"},"parameters":{"id":15821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15820,"mutability":"mutable","name":"data_","nameLocation":"3205:5:41","nodeType":"VariableDeclaration","scope":15901,"src":"3190:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15819,"name":"bytes","nodeType":"ElementaryTypeName","src":"3190:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3189:22:41"},"returnParameters":{"id":15827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15901,"src":"3257:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15825,"name":"bool","nodeType":"ElementaryTypeName","src":"3257:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3256:6:41"},"scope":16103,"src":"3175:752:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":15955,"nodeType":"Block","src":"4053:363:41","statements":[{"assignments":[15914],"declarations":[{"constant":false,"id":15914,"mutability":"mutable","name":"claim_","nameLocation":"4083:6:41","nodeType":"VariableDeclaration","scope":15955,"src":"4063:26:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15913,"nodeType":"UserDefinedTypeName","pathNode":{"id":15912,"name":"ClaimPayload","nameLocations":["4063:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4063:12:41"},"referencedDeclaration":17186,"src":"4063:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15921,"initialValue":{"arguments":[{"id":15917,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"4103:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15918,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4111:12:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15919,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4110:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15915,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4092:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4096:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4092:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4092:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4063:62:41"},{"assignments":[15923],"declarations":[{"constant":false,"id":15923,"mutability":"mutable","name":"amount","nameLocation":"4144:6:41","nodeType":"VariableDeclaration","scope":15955,"src":"4136:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15922,"name":"uint256","nodeType":"ElementaryTypeName","src":"4136:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15932,"initialValue":{"arguments":[{"expression":{"id":15926,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4165:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4172:4:41","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4165:11:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":15929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4179:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":15928,"name":"uint256","nodeType":"ElementaryTypeName","src":"4179:7:41","typeDescriptions":{}}}],"id":15930,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4178:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":15924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4154:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4158:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4154:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4135:53:41"},{"expression":{"arguments":[{"expression":{"id":15936,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4280:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4287:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4280:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15923,"src":"4295:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15933,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"4261:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4267:12:41","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"4261:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":15939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:41:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15940,"nodeType":"ExpressionStatement","src":"4261:41:41"},{"eventCall":{"arguments":[{"expression":{"id":15942,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4325:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4332:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4325:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":15946,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"4357:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15947,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4364:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4371:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4364:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15949,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15923,"src":"4379:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15944,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4340:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4344:12:41","memberName":"encodePacked","nodeType":"MemberAccess","src":"4340:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15941,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"4317:7:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":15951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:70:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15952,"nodeType":"EmitStatement","src":"4312:75:41"},{"expression":{"hexValue":"74727565","id":15953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4405:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15911,"id":15954,"nodeType":"Return","src":"4398:11:41"}]},"documentation":{"id":15902,"nodeType":"StructuredDocumentation","src":"3933:25:41","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":15956,"implemented":true,"kind":"function","modifiers":[{"id":15908,"kind":"modifierInvocation","modifierName":{"id":15907,"name":"onlyOwner","nameLocations":["4028:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4028:9:41"},"nodeType":"ModifierInvocation","src":"4028:9:41"}],"name":"reclaim","nameLocation":"3972:7:41","nodeType":"FunctionDefinition","overrides":{"id":15906,"nodeType":"OverrideSpecifier","overrides":[],"src":"4019:8:41"},"parameters":{"id":15905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15904,"mutability":"mutable","name":"data_","nameLocation":"3995:5:41","nodeType":"VariableDeclaration","scope":15956,"src":"3980:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15903,"name":"bytes","nodeType":"ElementaryTypeName","src":"3980:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3979:22:41"},"returnParameters":{"id":15911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15956,"src":"4047:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15909,"name":"bool","nodeType":"ElementaryTypeName","src":"4047:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4046:6:41"},"scope":16103,"src":"3963:453:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":15980,"nodeType":"Block","src":"4541:123:41","statements":[{"assignments":[15967],"declarations":[{"constant":false,"id":15967,"mutability":"mutable","name":"claim_","nameLocation":"4571:6:41","nodeType":"VariableDeclaration","scope":15980,"src":"4551:26:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15966,"nodeType":"UserDefinedTypeName","pathNode":{"id":15965,"name":"ClaimPayload","nameLocations":["4551:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4551:12:41"},"referencedDeclaration":17186,"src":"4551:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15974,"initialValue":{"arguments":[{"id":15970,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"4591:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15971,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4599:12:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4598:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15968,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4580:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4584:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4580:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4580:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4551:62:41"},{"expression":{"arguments":[{"expression":{"id":15976,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15967,"src":"4643:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4650:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4643:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15975,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16102,"src":"4630:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":15978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:27:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15964,"id":15979,"nodeType":"Return","src":"4623:34:41"}]},"documentation":{"id":15957,"nodeType":"StructuredDocumentation","src":"4422:25:41","text":"@inheritdoc Incentive"},"functionSelector":"e18e6508","id":15981,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"4461:11:41","nodeType":"FunctionDefinition","overrides":{"id":15961,"nodeType":"OverrideSpecifier","overrides":[],"src":"4517:8:41"},"parameters":{"id":15960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15959,"mutability":"mutable","name":"data_","nameLocation":"4488:5:41","nodeType":"VariableDeclaration","scope":15981,"src":"4473:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15958,"name":"bytes","nodeType":"ElementaryTypeName","src":"4473:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4472:22:41"},"returnParameters":{"id":15964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15981,"src":"4535:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15962,"name":"bool","nodeType":"ElementaryTypeName","src":"4535:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4534:6:41"},"scope":16103,"src":"4452:212:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":16024,"nodeType":"Block","src":"5141:372:41","statements":[{"assignments":[15992],"declarations":[{"constant":false,"id":15992,"mutability":"mutable","name":"init_","nameLocation":"5170:5:41","nodeType":"VariableDeclaration","scope":16024,"src":"5151:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload"},"typeName":{"id":15991,"nodeType":"UserDefinedTypeName","pathNode":{"id":15990,"name":"InitPayload","nameLocations":["5151:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":15693,"src":"5151:11:41"},"referencedDeclaration":15693,"src":"5151:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_storage_ptr","typeString":"struct CGDAIncentive.InitPayload"}},"visibility":"internal"}],"id":15999,"initialValue":{"arguments":[{"id":15995,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15984,"src":"5189:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15996,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15693,"src":"5197:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"id":15997,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5196:13:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}],"expression":{"id":15993,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5178:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5182:6:41","memberName":"decode","nodeType":"MemberAccess","src":"5178:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5178:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5151:59:41"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":16004,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5297:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5304:9:41","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"5297:16:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":16006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5314:5:41","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5297:22:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},{"expression":{"id":16007,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15992,"src":"5344:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":16008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5350:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"5344:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16011,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5389:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":16010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5381:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16009,"name":"address","nodeType":"ElementaryTypeName","src":"5381:7:41","typeDescriptions":{}}},"id":16012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5381:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"expression":{"id":16017,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15992,"src":"5461:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":16018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5467:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"5461:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16015,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5429:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5436:15:41","memberName":"FungiblePayload","nodeType":"MemberAccess","referencedDeclaration":13486,"src":"5429:22:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}},"id":16019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5453:6:41"],"names":["amount"],"nodeType":"FunctionCall","src":"5429:51:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}],"expression":{"id":16013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5418:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5422:6:41","memberName":"encode","nodeType":"MemberAccess","src":"5418:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5418:63:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16002,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5252:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5259:8:41","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":13482,"src":"5252:15:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":16021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5286:9:41","5337:5:41","5373:6:41","5412:4:41"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"5252:244:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":16000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5228:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5232:6:41","memberName":"encode","nodeType":"MemberAccess","src":"5228:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5228:278:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15989,"id":16023,"nodeType":"Return","src":"5221:285:41"}]},"documentation":{"id":15982,"nodeType":"StructuredDocumentation","src":"4670:371:41","text":"@inheritdoc Incentive\n @notice Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\n @param data_ The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\n @return The amount of tokens required"},"functionSelector":"4e7165a2","id":16025,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"5055:9:41","nodeType":"FunctionDefinition","overrides":{"id":15986,"nodeType":"OverrideSpecifier","overrides":[],"src":"5109:8:41"},"parameters":{"id":15985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15984,"mutability":"mutable","name":"data_","nameLocation":"5080:5:41","nodeType":"VariableDeclaration","scope":16025,"src":"5065:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15983,"name":"bytes","nodeType":"ElementaryTypeName","src":"5065:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5064:22:41"},"returnParameters":{"id":15989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16025,"src":"5127:12:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15987,"name":"bytes","nodeType":"ElementaryTypeName","src":"5127:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5126:14:41"},"scope":16103,"src":"5046:467:41","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":16069,"nodeType":"Block","src":"6146:514:41","statements":[{"assignments":[16032],"declarations":[{"constant":false,"id":16032,"mutability":"mutable","name":"timeSinceLastClaim","nameLocation":"6164:18:41","nodeType":"VariableDeclaration","scope":16069,"src":"6156:26:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16031,"name":"uint256","nodeType":"ElementaryTypeName","src":"6156:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16038,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16033,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6185:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6191:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"6185:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16035,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"6203:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":16036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6214:13:41","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":15700,"src":"6203:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6185:42:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6156:71:41"},{"assignments":[16040],"declarations":[{"constant":false,"id":16040,"mutability":"mutable","name":"available","nameLocation":"6245:9:41","nodeType":"VariableDeclaration","scope":16069,"src":"6237:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16039,"name":"uint256","nodeType":"ElementaryTypeName","src":"6237:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16048,"initialValue":{"arguments":[{"arguments":[{"id":16045,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6281:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":16044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6273:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16043,"name":"address","nodeType":"ElementaryTypeName","src":"6273:7:41","typeDescriptions":{}}},"id":16046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6273:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16041,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"6257:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6263:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"6257:15:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6257:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6237:50:41"},{"assignments":[16050],"declarations":[{"constant":false,"id":16050,"mutability":"mutable","name":"projectedReward","nameLocation":"6482:15:41","nodeType":"VariableDeclaration","scope":16069,"src":"6474:23:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16049,"name":"uint256","nodeType":"ElementaryTypeName","src":"6474:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16061,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16051,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"6500:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":16052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6511:13:41","memberName":"currentReward","nodeType":"MemberAccess","referencedDeclaration":15702,"src":"6500:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16053,"name":"timeSinceLastClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16032,"src":"6528:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16054,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"6549:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":16055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6560:11:41","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":15698,"src":"6549:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6528:43:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16057,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6527:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33363030","id":16058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6575:4:41","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"6527:52:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6500:79:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6474:105:41"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16062,"name":"projectedReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16050,"src":"6596:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16063,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"6614:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6596:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":16066,"name":"projectedReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16050,"src":"6638:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6596:57:41","trueExpression":{"id":16065,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"6626:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16030,"id":16068,"nodeType":"Return","src":"6589:64:41"}]},"documentation":{"id":16026,"nodeType":"StructuredDocumentation","src":"5519:567:41","text":"@notice Calculates the current reward based on the time since the last claim.\n @return The current reward\n @dev The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.\n @dev For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`"},"functionSelector":"07621eca","id":16070,"implemented":true,"kind":"function","modifiers":[],"name":"currentReward","nameLocation":"6100:13:41","nodeType":"FunctionDefinition","parameters":{"id":16027,"nodeType":"ParameterList","parameters":[],"src":"6113:2:41"},"returnParameters":{"id":16030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16070,"src":"6137:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16028,"name":"uint256","nodeType":"ElementaryTypeName","src":"6137:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6136:9:41"},"scope":16103,"src":"6091:569:41","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16101,"nodeType":"Block","src":"6737:144:41","statements":[{"assignments":[16078],"declarations":[{"constant":false,"id":16078,"mutability":"mutable","name":"reward","nameLocation":"6755:6:41","nodeType":"VariableDeclaration","scope":16101,"src":"6747:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6747:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":16079,"name":"currentReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"6764:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":16080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6764:15:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6747:32:41"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16082,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16078,"src":"6796:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6805:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6796:10:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":16089,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6834:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":16088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6826:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16087,"name":"address","nodeType":"ElementaryTypeName","src":"6826:7:41","typeDescriptions":{}}},"id":16090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16085,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"6810:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6816:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"6810:15:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6810:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16092,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16078,"src":"6844:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6810:40:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6796:54:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":16098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6854:20:41","subExpression":{"baseExpression":{"id":16095,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"6855:7:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16097,"indexExpression":{"id":16096,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16072,"src":"6863:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6855:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6796:78:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16076,"id":16100,"nodeType":"Return","src":"6789:85:41"}]},"id":16102,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"6675:12:41","nodeType":"FunctionDefinition","parameters":{"id":16073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16072,"mutability":"mutable","name":"recipient_","nameLocation":"6696:10:41","nodeType":"VariableDeclaration","scope":16102,"src":"6688:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16071,"name":"address","nodeType":"ElementaryTypeName","src":"6688:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6687:20:41"},"returnParameters":{"id":16076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16102,"src":"6731:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16074,"name":"bool","nodeType":"ElementaryTypeName","src":"6731:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6730:6:41"},"scope":16103,"src":"6666:215:41","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":16104,"src":"453:6430:41","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17528,17538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:6848:41"},"id":41},"contracts/incentives/ERC1155Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/ERC1155Incentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"ERC1155Incentive":[16601],"IERC1155":[1190],"IERC1155Receiver":[1232],"IERC165":[2857],"Incentive":[17260]},"id":16602,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":16105,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:42"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":16107,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":1233,"src":"62:92:42","symbolAliases":[{"foreign":{"id":16106,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"70:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":16109,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":1191,"src":"155:76:42","symbolAliases":[{"foreign":{"id":16108,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"163:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":16111,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":2858,"src":"232:80:42","symbolAliases":[{"foreign":{"id":16110,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"240:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":16113,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":17567,"src":"314:59:42","symbolAliases":[{"foreign":{"id":16112,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"322:10:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":16115,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":13670,"src":"374:52:42","symbolAliases":[{"foreign":{"id":16114,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"382:6:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":16117,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":17261,"src":"427:61:42","symbolAliases":[{"foreign":{"id":16116,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"435:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16119,"name":"Incentive","nameLocations":["632:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"632:9:42"},"id":16120,"nodeType":"InheritanceSpecifier","src":"632:9:42"},{"baseName":{"id":16121,"name":"IERC1155Receiver","nameLocations":["643:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":1232,"src":"643:16:42"},"id":16122,"nodeType":"InheritanceSpecifier","src":"643:16:42"}],"canonicalName":"ERC1155Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":16118,"nodeType":"StructuredDocumentation","src":"490:113:42","text":"@title ERC1155Incentive\n @notice A simple ERC1155 incentive implementation that allows claiming of tokens"},"fullyImplemented":true,"id":16601,"linearizedBaseContracts":[16601,1232,17260,11038,17720,2845,2857,9225,6423],"name":"ERC1155Incentive","nameLocation":"612:16:42","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC1155Incentive.Strategy","documentation":{"id":16123,"nodeType":"StructuredDocumentation","src":"666:258:42","text":"@notice The strategy for the incentive\n @dev The strategy determines how the incentive is disbursed:\n - POOL: Transfer tokens from the pool to the recipient\n - MINT: Mint tokens to the recipient directly (not yet implemented)"},"id":16126,"members":[{"id":16124,"name":"POOL","nameLocation":"953:4:42","nodeType":"EnumValue","src":"953:4:42"},{"id":16125,"name":"MINT","nameLocation":"967:4:42","nodeType":"EnumValue","src":"967:4:42"}],"name":"Strategy","nameLocation":"934:8:42","nodeType":"EnumDefinition","src":"929:48:42"},{"canonicalName":"ERC1155Incentive.InitPayload","documentation":{"id":16127,"nodeType":"StructuredDocumentation","src":"983:60:42","text":"@notice The payload for initializing an ERC1155Incentive"},"id":16140,"members":[{"constant":false,"id":16130,"mutability":"mutable","name":"asset","nameLocation":"1086:5:42","nodeType":"VariableDeclaration","scope":16140,"src":"1077:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},"typeName":{"id":16129,"nodeType":"UserDefinedTypeName","pathNode":{"id":16128,"name":"IERC1155","nameLocations":["1077:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"1077:8:42"},"referencedDeclaration":1190,"src":"1077:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"visibility":"internal"},{"constant":false,"id":16133,"mutability":"mutable","name":"strategy","nameLocation":"1110:8:42","nodeType":"VariableDeclaration","scope":16140,"src":"1101:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"typeName":{"id":16132,"nodeType":"UserDefinedTypeName","pathNode":{"id":16131,"name":"Strategy","nameLocations":["1101:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":16126,"src":"1101:8:42"},"referencedDeclaration":16126,"src":"1101:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"visibility":"internal"},{"constant":false,"id":16135,"mutability":"mutable","name":"tokenId","nameLocation":"1136:7:42","nodeType":"VariableDeclaration","scope":16140,"src":"1128:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1128:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16137,"mutability":"mutable","name":"limit","nameLocation":"1161:5:42","nodeType":"VariableDeclaration","scope":16140,"src":"1153:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16136,"name":"uint256","nodeType":"ElementaryTypeName","src":"1153:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16139,"mutability":"mutable","name":"extraData","nameLocation":"1182:9:42","nodeType":"VariableDeclaration","scope":16140,"src":"1176:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16138,"name":"bytes","nodeType":"ElementaryTypeName","src":"1176:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1055:11:42","nodeType":"StructDefinition","scope":16601,"src":"1048:150:42","visibility":"public"},{"constant":false,"documentation":{"id":16141,"nodeType":"StructuredDocumentation","src":"1204:57:42","text":"@notice The address of the ERC1155-compliant contract"},"functionSelector":"38d52e0f","id":16144,"mutability":"mutable","name":"asset","nameLocation":"1282:5:42","nodeType":"VariableDeclaration","scope":16601,"src":"1266:21:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},"typeName":{"id":16143,"nodeType":"UserDefinedTypeName","pathNode":{"id":16142,"name":"IERC1155","nameLocations":["1266:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"1266:8:42"},"referencedDeclaration":1190,"src":"1266:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"visibility":"public"},{"constant":false,"documentation":{"id":16145,"nodeType":"StructuredDocumentation","src":"1294:57:42","text":"@notice The strategy for the incentive (MINT or POOL)"},"functionSelector":"a8c62e76","id":16148,"mutability":"mutable","name":"strategy","nameLocation":"1372:8:42","nodeType":"VariableDeclaration","scope":16601,"src":"1356:24:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"typeName":{"id":16147,"nodeType":"UserDefinedTypeName","pathNode":{"id":16146,"name":"Strategy","nameLocations":["1356:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":16126,"src":"1356:8:42"},"referencedDeclaration":16126,"src":"1356:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"visibility":"public"},{"constant":false,"documentation":{"id":16149,"nodeType":"StructuredDocumentation","src":"1387:75:42","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":16151,"mutability":"mutable","name":"limit","nameLocation":"1482:5:42","nodeType":"VariableDeclaration","scope":16601,"src":"1467:20:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16150,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16152,"nodeType":"StructuredDocumentation","src":"1494:50:42","text":"@notice The ERC1155 token ID for the incentive"},"functionSelector":"17d70f7c","id":16154,"mutability":"mutable","name":"tokenId","nameLocation":"1564:7:42","nodeType":"VariableDeclaration","scope":16601,"src":"1549:22:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16153,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16155,"nodeType":"StructuredDocumentation","src":"1578:59:42","text":"@notice Extra data to be passed to the ERC1155 contract"},"functionSelector":"609d3334","id":16157,"mutability":"mutable","name":"extraData","nameLocation":"1655:9:42","nodeType":"VariableDeclaration","scope":16601,"src":"1642:22:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":16156,"name":"bytes","nodeType":"ElementaryTypeName","src":"1642:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"body":{"id":16164,"nodeType":"Block","src":"1927:39:42","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16161,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1937:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1937:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16163,"nodeType":"ExpressionStatement","src":"1937:22:42"}]},"documentation":{"id":16158,"nodeType":"StructuredDocumentation","src":"1671:237:42","text":"@notice Construct a new ERC1155Incentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":16165,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16159,"nodeType":"ParameterList","parameters":[],"src":"1924:2:42"},"returnParameters":{"id":16160,"nodeType":"ParameterList","parameters":[],"src":"1927:0:42"},"scope":16601,"src":"1913:53:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":16267,"nodeType":"Block","src":"2171:790:42","statements":[{"assignments":[16176],"declarations":[{"constant":false,"id":16176,"mutability":"mutable","name":"init_","nameLocation":"2200:5:42","nodeType":"VariableDeclaration","scope":16267,"src":"2181:24:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload"},"typeName":{"id":16175,"nodeType":"UserDefinedTypeName","pathNode":{"id":16174,"name":"InitPayload","nameLocations":["2181:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":16140,"src":"2181:11:42"},"referencedDeclaration":16140,"src":"2181:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_storage_ptr","typeString":"struct ERC1155Incentive.InitPayload"}},"visibility":"internal"}],"id":16183,"initialValue":{"arguments":[{"id":16179,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16168,"src":"2219:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16180,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"2227:11:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"id":16181,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2226:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}],"expression":{"id":16177,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2208:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2212:6:42","memberName":"decode","nodeType":"MemberAccess","src":"2208:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2181:59:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"id":16188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16184,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2323:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2329:8:42","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16133,"src":"2323:14:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16186,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16126,"src":"2341:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16126_$","typeString":"type(enum ERC1155Incentive.Strategy)"}},"id":16187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2350:4:42","memberName":"MINT","nodeType":"MemberAccess","referencedDeclaration":16125,"src":"2341:13:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"src":"2323:31:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16194,"nodeType":"IfStatement","src":"2319:71:42","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16189,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2363:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:14:42","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"2363:25:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2363:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16193,"nodeType":"RevertStatement","src":"2356:34:42"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16195,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2404:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2410:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2404:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2419:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2404:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16204,"nodeType":"IfStatement","src":"2400:63:42","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16199,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2429:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2440:21:42","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"2429:32:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16203,"nodeType":"RevertStatement","src":"2422:41:42"}},{"assignments":[16206],"declarations":[{"constant":false,"id":16206,"mutability":"mutable","name":"available","nameLocation":"2545:9:42","nodeType":"VariableDeclaration","scope":16267,"src":"2537:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16205,"name":"uint256","nodeType":"ElementaryTypeName","src":"2537:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16217,"initialValue":{"arguments":[{"arguments":[{"id":16212,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2587:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2579:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16210,"name":"address","nodeType":"ElementaryTypeName","src":"2579:7:42","typeDescriptions":{}}},"id":16213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16214,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2594:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2600:7:42","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16135,"src":"2594:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":16207,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2557:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2563:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"2557:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2569:9:42","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"2557:21:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":16216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2537:71:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16218,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16206,"src":"2622:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":16219,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2634:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2640:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2634:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2622:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16236,"nodeType":"IfStatement","src":"2618:135:42","trueBody":{"id":16235,"nodeType":"Block","src":"2647:106:42","statements":[{"errorCall":{"arguments":[{"arguments":[{"expression":{"id":16227,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2705:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2711:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"2705:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}],"id":16226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2697:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16225,"name":"address","nodeType":"ElementaryTypeName","src":"2697:7:42","typeDescriptions":{}}},"id":16229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2697:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16230,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16206,"src":"2719:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16231,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2730:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2736:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2730:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16222,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2668:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2679:17:42","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"2668:28:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":16233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2668:74:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16234,"nodeType":"RevertStatement","src":"2661:81:42"}]}},{"expression":{"id":16240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16237,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"2763:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16238,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2771:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2777:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"2771:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"src":"2763:19:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16241,"nodeType":"ExpressionStatement","src":"2763:19:42"},{"expression":{"id":16245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16242,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16148,"src":"2792:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16243,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2803:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2809:8:42","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16133,"src":"2803:14:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"src":"2792:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"id":16246,"nodeType":"ExpressionStatement","src":"2792:25:42"},{"expression":{"id":16250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16247,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"2827:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16248,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2837:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2843:7:42","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16135,"src":"2837:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2827:23:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16251,"nodeType":"ExpressionStatement","src":"2827:23:42"},{"expression":{"id":16255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16252,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"2860:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16253,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2868:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2874:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2868:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2860:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16256,"nodeType":"ExpressionStatement","src":"2860:19:42"},{"expression":{"id":16260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16257,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16157,"src":"2889:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16258,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2901:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2907:9:42","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":16139,"src":"2901:15:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2889:27:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":16261,"nodeType":"ExpressionStatement","src":"2889:27:42"},{"expression":{"arguments":[{"expression":{"id":16263,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2943:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2947:6:42","memberName":"sender","nodeType":"MemberAccess","src":"2943:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16262,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2926:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2926:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16266,"nodeType":"ExpressionStatement","src":"2926:28:42"}]},"documentation":{"id":16166,"nodeType":"StructuredDocumentation","src":"1972:124:42","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed initialization payload"},"functionSelector":"439fab91","id":16268,"implemented":true,"kind":"function","modifiers":[{"id":16172,"kind":"modifierInvocation","modifierName":{"id":16171,"name":"initializer","nameLocations":["2159:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2159:11:42"},"nodeType":"ModifierInvocation","src":"2159:11:42"}],"name":"initialize","nameLocation":"2110:10:42","nodeType":"FunctionDefinition","overrides":{"id":16170,"nodeType":"OverrideSpecifier","overrides":[],"src":"2150:8:42"},"parameters":{"id":16169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16168,"mutability":"mutable","name":"data_","nameLocation":"2136:5:42","nodeType":"VariableDeclaration","scope":16268,"src":"2121:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16167,"name":"bytes","nodeType":"ElementaryTypeName","src":"2121:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2120:22:42"},"returnParameters":{"id":16173,"nodeType":"ParameterList","parameters":[],"src":"2171:0:42"},"scope":16601,"src":"2101:860:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":16351,"nodeType":"Block","src":"3242:668:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"id":16282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16279,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16148,"src":"3332:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16280,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16126,"src":"3344:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16126_$","typeString":"type(enum ERC1155Incentive.Strategy)"}},"id":16281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3353:4:42","memberName":"POOL","nodeType":"MemberAccess","referencedDeclaration":16124,"src":"3344:13:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"src":"3332:25:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16348,"nodeType":"IfStatement","src":"3328:553:42","trueBody":{"id":16347,"nodeType":"Block","src":"3359:522:42","statements":[{"assignments":[16285],"declarations":[{"constant":false,"id":16285,"mutability":"mutable","name":"claim_","nameLocation":"3393:6:42","nodeType":"VariableDeclaration","scope":16347,"src":"3373:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16284,"nodeType":"UserDefinedTypeName","pathNode":{"id":16283,"name":"ClaimPayload","nameLocations":["3373:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3373:12:42"},"referencedDeclaration":17186,"src":"3373:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16292,"initialValue":{"arguments":[{"id":16288,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16271,"src":"3413:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16289,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3421:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16290,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3420:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3402:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3406:6:42","memberName":"decode","nodeType":"MemberAccess","src":"3402:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3402:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3373:62:42"},{"condition":{"id":16297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3453:28:42","subExpression":{"arguments":[{"expression":{"id":16294,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3467:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3474:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3467:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16293,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16554,"src":"3454:12:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3454:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16301,"nodeType":"IfStatement","src":"3449:55:42","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16298,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"3490:12:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:14:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16300,"nodeType":"RevertStatement","src":"3483:21:42"}},{"expression":{"id":16303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3519:8:42","subExpression":{"id":16302,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"3519:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16304,"nodeType":"ExpressionStatement","src":"3519:8:42"},{"expression":{"id":16310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16305,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"3541:7:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16308,"indexExpression":{"expression":{"id":16306,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3549:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3556:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3549:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3541:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3566:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3541:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16311,"nodeType":"ExpressionStatement","src":"3541:29:42"},{"expression":{"arguments":[{"arguments":[{"id":16317,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3683:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3675:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16315,"name":"address","nodeType":"ElementaryTypeName","src":"3675:7:42","typeDescriptions":{}}},"id":16318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3675:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16319,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3690:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3697:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3690:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16321,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"3705:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":16322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3714:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"expression":{"id":16323,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3717:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3724:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"3717:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16312,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"3652:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3658:16:42","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"3652:22:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":16325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:77:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16326,"nodeType":"ExpressionStatement","src":"3652:77:42"},{"eventCall":{"arguments":[{"expression":{"id":16328,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3756:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3763:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3756:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16332,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"3788:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},{"expression":{"id":16333,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3795:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3795:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16335,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"3810:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":16338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3827:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":16337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3819:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16336,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:42","typeDescriptions":{}}},"id":16339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3819:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16340,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3831:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3838:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"3831:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3771:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3775:12:42","memberName":"encodePacked","nodeType":"MemberAccess","src":"3771:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:72:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16327,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"3748:7:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3748:96:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16344,"nodeType":"EmitStatement","src":"3743:101:42"},{"expression":{"hexValue":"74727565","id":16345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3866:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16278,"id":16346,"nodeType":"Return","src":"3859:11:42"}]}},{"expression":{"hexValue":"66616c7365","id":16349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3898:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16278,"id":16350,"nodeType":"Return","src":"3891:12:42"}]},"documentation":{"id":16269,"nodeType":"StructuredDocumentation","src":"2967:190:42","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":16352,"implemented":true,"kind":"function","modifiers":[{"id":16275,"kind":"modifierInvocation","modifierName":{"id":16274,"name":"onlyOwner","nameLocations":["3217:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"3217:9:42"},"nodeType":"ModifierInvocation","src":"3217:9:42"}],"name":"claim","nameLocation":"3171:5:42","nodeType":"FunctionDefinition","overrides":{"id":16273,"nodeType":"OverrideSpecifier","overrides":[],"src":"3208:8:42"},"parameters":{"id":16272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16271,"mutability":"mutable","name":"data_","nameLocation":"3192:5:42","nodeType":"VariableDeclaration","scope":16352,"src":"3177:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16270,"name":"bytes","nodeType":"ElementaryTypeName","src":"3177:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3176:22:42"},"returnParameters":{"id":16278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16352,"src":"3236:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16276,"name":"bool","nodeType":"ElementaryTypeName","src":"3236:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3235:6:42"},"scope":16601,"src":"3162:748:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":16435,"nodeType":"Block","src":"4028:679:42","statements":[{"assignments":[16365],"declarations":[{"constant":false,"id":16365,"mutability":"mutable","name":"claim_","nameLocation":"4058:6:42","nodeType":"VariableDeclaration","scope":16435,"src":"4038:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16364,"nodeType":"UserDefinedTypeName","pathNode":{"id":16363,"name":"ClaimPayload","nameLocations":["4038:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4038:12:42"},"referencedDeclaration":17186,"src":"4038:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16372,"initialValue":{"arguments":[{"id":16368,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16355,"src":"4078:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16369,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4086:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16370,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4085:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4067:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4071:6:42","memberName":"decode","nodeType":"MemberAccess","src":"4067:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4067:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4038:62:42"},{"assignments":[16374],"declarations":[{"constant":false,"id":16374,"mutability":"mutable","name":"amount","nameLocation":"4119:6:42","nodeType":"VariableDeclaration","scope":16435,"src":"4111:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16373,"name":"uint256","nodeType":"ElementaryTypeName","src":"4111:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16383,"initialValue":{"arguments":[{"expression":{"id":16377,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4140:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4147:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4140:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4154:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16379,"name":"uint256","nodeType":"ElementaryTypeName","src":"4154:7:42","typeDescriptions":{}}}],"id":16381,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4153:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":16375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4129:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4133:6:42","memberName":"decode","nodeType":"MemberAccess","src":"4129:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4110:53:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16384,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4254:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16385,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"4263:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4254:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16398,"nodeType":"IfStatement","src":"4250:81:42","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16390,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4300:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4304:6:42","memberName":"sender","nodeType":"MemberAccess","src":"4300:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16394,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4323:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16392,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4312:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4316:6:42","memberName":"encode","nodeType":"MemberAccess","src":"4312:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4312:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16387,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"4277:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:11:42","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"4277:22:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":16396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4277:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16397,"nodeType":"RevertStatement","src":"4270:61:42"}},{"expression":{"id":16401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16399,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"4341:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16400,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4350:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4341:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16402,"nodeType":"ExpressionStatement","src":"4341:15:42"},{"expression":{"arguments":[{"arguments":[{"id":16408,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4520:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4512:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16406,"name":"address","nodeType":"ElementaryTypeName","src":"4512:7:42","typeDescriptions":{}}},"id":16409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4512:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16410,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4527:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4534:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4527:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16412,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"4542:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16413,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4551:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16414,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4559:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4566:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4559:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16403,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"4489:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4495:16:42","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"4489:22:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":16416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4489:82:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16417,"nodeType":"ExpressionStatement","src":"4489:82:42"},{"eventCall":{"arguments":[{"expression":{"id":16419,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4594:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4601:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4594:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16423,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"4626:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},{"expression":{"id":16424,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4633:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4640:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4633:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16426,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"4648:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16427,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4657:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16428,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4665:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4672:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4665:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4609:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4613:12:42","memberName":"encodePacked","nodeType":"MemberAccess","src":"4609:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4609:68:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16418,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"4586:7:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:92:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16432,"nodeType":"EmitStatement","src":"4581:97:42"},{"expression":{"hexValue":"74727565","id":16433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4696:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16362,"id":16434,"nodeType":"Return","src":"4689:11:42"}]},"documentation":{"id":16353,"nodeType":"StructuredDocumentation","src":"3916:25:42","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":16436,"implemented":true,"kind":"function","modifiers":[{"id":16359,"kind":"modifierInvocation","modifierName":{"id":16358,"name":"onlyOwner","nameLocations":["4003:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4003:9:42"},"nodeType":"ModifierInvocation","src":"4003:9:42"}],"name":"reclaim","nameLocation":"3955:7:42","nodeType":"FunctionDefinition","overrides":{"id":16357,"nodeType":"OverrideSpecifier","overrides":[],"src":"3994:8:42"},"parameters":{"id":16356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16355,"mutability":"mutable","name":"data_","nameLocation":"3978:5:42","nodeType":"VariableDeclaration","scope":16436,"src":"3963:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16354,"name":"bytes","nodeType":"ElementaryTypeName","src":"3963:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3962:22:42"},"returnParameters":{"id":16362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16436,"src":"4022:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16360,"name":"bool","nodeType":"ElementaryTypeName","src":"4022:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4021:6:42"},"scope":16601,"src":"3946:761:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":16486,"nodeType":"Block","src":"5058:464:42","statements":[{"assignments":[16447],"declarations":[{"constant":false,"id":16447,"mutability":"mutable","name":"init_","nameLocation":"5087:5:42","nodeType":"VariableDeclaration","scope":16486,"src":"5068:24:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload"},"typeName":{"id":16446,"nodeType":"UserDefinedTypeName","pathNode":{"id":16445,"name":"InitPayload","nameLocations":["5068:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":16140,"src":"5068:11:42"},"referencedDeclaration":16140,"src":"5068:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_storage_ptr","typeString":"struct ERC1155Incentive.InitPayload"}},"visibility":"internal"}],"id":16454,"initialValue":{"arguments":[{"id":16450,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16439,"src":"5106:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16451,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"5114:11:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"id":16452,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5113:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}],"expression":{"id":16448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5095:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5099:6:42","memberName":"decode","nodeType":"MemberAccess","src":"5095:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5095:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5068:59:42"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":16459,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5213:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5220:9:42","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"5213:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":16461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5230:7:42","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"5213:24:42","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},{"arguments":[{"expression":{"id":16464,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5270:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5276:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"5270:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}],"id":16463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5262:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16462,"name":"address","nodeType":"ElementaryTypeName","src":"5262:7:42","typeDescriptions":{}}},"id":16466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5262:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16469,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5316:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5308:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16467,"name":"address","nodeType":"ElementaryTypeName","src":"5308:7:42","typeDescriptions":{}}},"id":16470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5308:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"expression":{"id":16475,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5409:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5415:7:42","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16135,"src":"5409:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16477,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5432:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5438:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"5432:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16479,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5451:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5457:9:42","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":16139,"src":"5451:15:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16473,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5377:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5384:14:42","memberName":"ERC1155Payload","nodeType":"MemberAccess","referencedDeclaration":13494,"src":"5377:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}},"id":16481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5400:7:42","5424:6:42","5445:4:42"],"names":["tokenId","amount","data"],"nodeType":"FunctionCall","src":"5377:91:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}],"expression":{"id":16471,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5345:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5349:6:42","memberName":"encode","nodeType":"MemberAccess","src":"5345:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:145:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16457,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5168:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5175:8:42","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":13482,"src":"5168:15:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":16483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5202:9:42","5255:5:42","5300:6:42","5339:4:42"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"5168:337:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":16455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5144:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5148:6:42","memberName":"encode","nodeType":"MemberAccess","src":"5144:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5144:371:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":16444,"id":16485,"nodeType":"Return","src":"5137:378:42"}]},"documentation":{"id":16437,"nodeType":"StructuredDocumentation","src":"4713:242:42","text":"@inheritdoc Incentive\n @notice Get the required allowance for the incentive\n @param data_ The initialization payload for the incentive\n @return budgetData The data payload to be passed to the Budget for interpretation"},"functionSelector":"4e7165a2","id":16487,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"4969:9:42","nodeType":"FunctionDefinition","overrides":{"id":16441,"nodeType":"OverrideSpecifier","overrides":[],"src":"5015:8:42"},"parameters":{"id":16440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16439,"mutability":"mutable","name":"data_","nameLocation":"4994:5:42","nodeType":"VariableDeclaration","scope":16487,"src":"4979:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16438,"name":"bytes","nodeType":"ElementaryTypeName","src":"4979:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4978:22:42"},"returnParameters":{"id":16444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16443,"mutability":"mutable","name":"budgetData","nameLocation":"5046:10:42","nodeType":"VariableDeclaration","scope":16487,"src":"5033:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16442,"name":"bytes","nodeType":"ElementaryTypeName","src":"5033:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5032:25:42"},"scope":16601,"src":"4960:562:42","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":16511,"nodeType":"Block","src":"5982:123:42","statements":[{"assignments":[16498],"declarations":[{"constant":false,"id":16498,"mutability":"mutable","name":"claim_","nameLocation":"6012:6:42","nodeType":"VariableDeclaration","scope":16511,"src":"5992:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16497,"nodeType":"UserDefinedTypeName","pathNode":{"id":16496,"name":"ClaimPayload","nameLocations":["5992:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"5992:12:42"},"referencedDeclaration":17186,"src":"5992:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16505,"initialValue":{"arguments":[{"id":16501,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16490,"src":"6032:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16502,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"6040:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16503,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6039:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16499,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6021:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6025:6:42","memberName":"decode","nodeType":"MemberAccess","src":"6021:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5992:62:42"},{"expression":{"arguments":[{"expression":{"id":16507,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16498,"src":"6084:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6091:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"6084:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16506,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16554,"src":"6071:12:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6071:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16495,"id":16510,"nodeType":"Return","src":"6064:34:42"}]},"documentation":{"id":16488,"nodeType":"StructuredDocumentation","src":"5528:370:42","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":16512,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"5912:11:42","nodeType":"FunctionDefinition","overrides":{"id":16492,"nodeType":"OverrideSpecifier","overrides":[],"src":"5958:8:42"},"parameters":{"id":16491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16490,"mutability":"mutable","name":"data_","nameLocation":"5939:5:42","nodeType":"VariableDeclaration","scope":16512,"src":"5924:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16489,"name":"bytes","nodeType":"ElementaryTypeName","src":"5924:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5923:22:42"},"returnParameters":{"id":16495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16512,"src":"5976:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16493,"name":"bool","nodeType":"ElementaryTypeName","src":"5976:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5975:6:42"},"scope":16601,"src":"5903:202:42","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2856,17259],"body":{"id":16535,"nodeType":"Block","src":"6252:113:42","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16523,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"6269:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":16525,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"6289:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}],"id":16524,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6284:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6284:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$1232","typeString":"type(contract IERC1155Receiver)"}},"id":16527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6307:11:42","memberName":"interfaceId","nodeType":"MemberAccess","src":"6284:34:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6269:49:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":16531,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"6346:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16529,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6322:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC1155Incentive_$16601_$","typeString":"type(contract super ERC1155Incentive)"}},"id":16530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6328:17:42","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17259,"src":"6322:23:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6322:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6269:89:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16522,"id":16534,"nodeType":"Return","src":"6262:96:42"}]},"documentation":{"id":16513,"nodeType":"StructuredDocumentation","src":"6111:25:42","text":"@inheritdoc Incentive"},"functionSelector":"01ffc9a7","id":16536,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6150:17:42","nodeType":"FunctionDefinition","overrides":{"id":16519,"nodeType":"OverrideSpecifier","overrides":[{"id":16517,"name":"IERC165","nameLocations":["6217:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"6217:7:42"},{"id":16518,"name":"Incentive","nameLocations":["6226:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"6226:9:42"}],"src":"6208:28:42"},"parameters":{"id":16516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16515,"mutability":"mutable","name":"interfaceId","nameLocation":"6175:11:42","nodeType":"VariableDeclaration","scope":16536,"src":"6168:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16514,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6168:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6167:20:42"},"returnParameters":{"id":16522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16536,"src":"6246:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16520,"name":"bool","nodeType":"ElementaryTypeName","src":"6246:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6245:6:42"},"scope":16601,"src":"6141:224:42","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":16553,"nodeType":"Block","src":"6642:62:42","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6659:20:42","subExpression":{"baseExpression":{"id":16544,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"6660:7:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16546,"indexExpression":{"id":16545,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"6668:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6660:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16548,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"6683:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16549,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"6692:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6683:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6659:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16543,"id":16552,"nodeType":"Return","src":"6652:45:42"}]},"documentation":{"id":16537,"nodeType":"StructuredDocumentation","src":"6371:195:42","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":16554,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"6580:12:42","nodeType":"FunctionDefinition","parameters":{"id":16540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16539,"mutability":"mutable","name":"recipient_","nameLocation":"6601:10:42","nodeType":"VariableDeclaration","scope":16554,"src":"6593:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16538,"name":"address","nodeType":"ElementaryTypeName","src":"6593:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6592:20:42"},"returnParameters":{"id":16543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16554,"src":"6636:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16541,"name":"bool","nodeType":"ElementaryTypeName","src":"6636:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6635:6:42"},"scope":16601,"src":"6571:133:42","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[1213],"body":{"id":16575,"nodeType":"Block","src":"6984:55:42","statements":[{"expression":{"expression":{"expression":{"id":16571,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7001:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}},"id":16572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7006:17:42","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":16576,"src":"7001:22:42","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) pure external returns (bytes4)"}},"id":16573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7024:8:42","memberName":"selector","nodeType":"MemberAccess","src":"7001:31:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16570,"id":16574,"nodeType":"Return","src":"6994:38:42"}]},"documentation":{"id":16555,"nodeType":"StructuredDocumentation","src":"6710:114:42","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not check the token ID and will accept all tokens"},"functionSelector":"f23a6e61","id":16576,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"6838:17:42","nodeType":"FunctionDefinition","overrides":{"id":16567,"nodeType":"OverrideSpecifier","overrides":[],"src":"6946:8:42"},"parameters":{"id":16566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6856:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16556,"name":"address","nodeType":"ElementaryTypeName","src":"6856:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6865:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16558,"name":"address","nodeType":"ElementaryTypeName","src":"6865:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6874:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16560,"name":"uint256","nodeType":"ElementaryTypeName","src":"6874:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6883:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16562,"name":"uint256","nodeType":"ElementaryTypeName","src":"6883:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6892:14:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16564,"name":"bytes","nodeType":"ElementaryTypeName","src":"6892:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6855:52:42"},"returnParameters":{"id":16570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6972:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16568,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6972:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6971:8:42"},"scope":16601,"src":"6829:210:42","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1231],"body":{"id":16599,"nodeType":"Block","src":"7347:60:42","statements":[{"expression":{"expression":{"expression":{"id":16595,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7364:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}},"id":16596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7369:22:42","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":16600,"src":"7364:27:42","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) pure external returns (bytes4)"}},"id":16597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7392:8:42","memberName":"selector","nodeType":"MemberAccess","src":"7364:36:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16594,"id":16598,"nodeType":"Return","src":"7357:43:42"}]},"documentation":{"id":16577,"nodeType":"StructuredDocumentation","src":"7045:115:42","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not check the token ID and will accept all batches"},"functionSelector":"bc197c81","id":16600,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"7174:22:42","nodeType":"FunctionDefinition","overrides":{"id":16591,"nodeType":"OverrideSpecifier","overrides":[],"src":"7309:8:42"},"parameters":{"id":16590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7197:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16578,"name":"address","nodeType":"ElementaryTypeName","src":"7197:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7206:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16580,"name":"address","nodeType":"ElementaryTypeName","src":"7206:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7215:18:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16582,"name":"uint256","nodeType":"ElementaryTypeName","src":"7215:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16583,"nodeType":"ArrayTypeName","src":"7215:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":16587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7235:18:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16585,"name":"uint256","nodeType":"ElementaryTypeName","src":"7235:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16586,"nodeType":"ArrayTypeName","src":"7235:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":16589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7255:14:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16588,"name":"bytes","nodeType":"ElementaryTypeName","src":"7255:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7196:74:42"},"returnParameters":{"id":16594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7335:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16592,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7335:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"7334:8:42"},"scope":16601,"src":"7165:242:42","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":16602,"src":"603:6806:42","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17519,17528,17538,17544,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:7374:42"},"id":42},"contracts/incentives/ERC20Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/ERC20Incentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"ERC20Incentive":[17152],"Incentive":[17260],"LibPRNG":[10307],"SafeTransferLib":[11372]},"id":17153,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":16603,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:43"},{"absolutePath":"@solady/utils/LibPRNG.sol","file":"@solady/utils/LibPRNG.sol","id":16605,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":10308,"src":"62:50:43","symbolAliases":[{"foreign":{"id":16604,"name":"LibPRNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10307,"src":"70:7:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":16607,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":11373,"src":"113:66:43","symbolAliases":[{"foreign":{"id":16606,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"121:15:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":16609,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":17567,"src":"181:59:43","symbolAliases":[{"foreign":{"id":16608,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"189:10:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":16611,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":13670,"src":"241:52:43","symbolAliases":[{"foreign":{"id":16610,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"249:6:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":16613,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":17261,"src":"294:42:43","symbolAliases":[{"foreign":{"id":16612,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"302:9:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16615,"name":"Incentive","nameLocations":["475:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"475:9:43"},"id":16616,"nodeType":"InheritanceSpecifier","src":"475:9:43"}],"canonicalName":"ERC20Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":16614,"nodeType":"StructuredDocumentation","src":"338:110:43","text":"@title ERC20 Incentive\n @notice A simple ERC20 incentive implementation that allows claiming of tokens"},"fullyImplemented":true,"id":17152,"linearizedBaseContracts":[17152,17260,11038,17720,2845,2857,9225,6423],"name":"ERC20Incentive","nameLocation":"457:14:43","nodeType":"ContractDefinition","nodes":[{"global":false,"id":16620,"libraryName":{"id":16617,"name":"LibPRNG","nameLocations":["497:7:43"],"nodeType":"IdentifierPath","referencedDeclaration":10307,"src":"497:7:43"},"nodeType":"UsingForDirective","src":"491:31:43","typeName":{"id":16619,"nodeType":"UserDefinedTypeName","pathNode":{"id":16618,"name":"LibPRNG.PRNG","nameLocations":["509:7:43","517:4:43"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"509:12:43"},"referencedDeclaration":10121,"src":"509:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}}},{"global":false,"id":16623,"libraryName":{"id":16621,"name":"SafeTransferLib","nameLocations":["533:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"533:15:43"},"nodeType":"UsingForDirective","src":"527:34:43","typeName":{"id":16622,"name":"address","nodeType":"ElementaryTypeName","src":"553:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"anonymous":false,"documentation":{"id":16624,"nodeType":"StructuredDocumentation","src":"567:56:43","text":"@notice Emitted when an entry is added to the raffle"},"eventSelector":"f0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f153","id":16628,"name":"Entry","nameLocation":"634:5:43","nodeType":"EventDefinition","parameters":{"id":16627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16626,"indexed":true,"mutability":"mutable","name":"entry","nameLocation":"656:5:43","nodeType":"VariableDeclaration","scope":16628,"src":"640:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16625,"name":"address","nodeType":"ElementaryTypeName","src":"640:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"639:23:43"},"src":"628:35:43"},{"canonicalName":"ERC20Incentive.Strategy","documentation":{"id":16629,"nodeType":"StructuredDocumentation","src":"669:520:43","text":"@notice The strategy for the incentive\n @dev The strategy determines how the incentive is disbursed:\n - POOL: Users claim from a pool of rewards until the limit is reached, with each claim receiving an equal share of the total;\n - MINT: New tokens are minted and distributed to the recipient, with each claim receiving an equal amount of newly issued tokens;\n - RAFFLE: Users claim a slot in a raffle, and a single winner is randomly drawn to receive the entire reward amount;"},"id":16633,"members":[{"id":16630,"name":"POOL","nameLocation":"1218:4:43","nodeType":"EnumValue","src":"1218:4:43"},{"id":16631,"name":"MINT","nameLocation":"1232:4:43","nodeType":"EnumValue","src":"1232:4:43"},{"id":16632,"name":"RAFFLE","nameLocation":"1246:6:43","nodeType":"EnumValue","src":"1246:6:43"}],"name":"Strategy","nameLocation":"1199:8:43","nodeType":"EnumDefinition","src":"1194:64:43"},{"canonicalName":"ERC20Incentive.InitPayload","documentation":{"id":16634,"nodeType":"StructuredDocumentation","src":"1264:54:43","text":"@notice The payload for initializing the incentive"},"id":16644,"members":[{"constant":false,"id":16636,"mutability":"mutable","name":"asset","nameLocation":"1360:5:43","nodeType":"VariableDeclaration","scope":16644,"src":"1352:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16635,"name":"address","nodeType":"ElementaryTypeName","src":"1352:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16639,"mutability":"mutable","name":"strategy","nameLocation":"1384:8:43","nodeType":"VariableDeclaration","scope":16644,"src":"1375:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"typeName":{"id":16638,"nodeType":"UserDefinedTypeName","pathNode":{"id":16637,"name":"Strategy","nameLocations":["1375:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":16633,"src":"1375:8:43"},"referencedDeclaration":16633,"src":"1375:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"visibility":"internal"},{"constant":false,"id":16641,"mutability":"mutable","name":"reward","nameLocation":"1410:6:43","nodeType":"VariableDeclaration","scope":16644,"src":"1402:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1402:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16643,"mutability":"mutable","name":"limit","nameLocation":"1434:5:43","nodeType":"VariableDeclaration","scope":16644,"src":"1426:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16642,"name":"uint256","nodeType":"ElementaryTypeName","src":"1426:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1330:11:43","nodeType":"StructDefinition","scope":17152,"src":"1323:123:43","visibility":"public"},{"constant":false,"documentation":{"id":16645,"nodeType":"StructuredDocumentation","src":"1452:47:43","text":"@notice The address of the ERC20-like token"},"functionSelector":"38d52e0f","id":16647,"mutability":"mutable","name":"asset","nameLocation":"1519:5:43","nodeType":"VariableDeclaration","scope":17152,"src":"1504:20:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16646,"name":"address","nodeType":"ElementaryTypeName","src":"1504:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":16648,"nodeType":"StructuredDocumentation","src":"1531:57:43","text":"@notice The strategy for the incentive (MINT or POOL)"},"functionSelector":"a8c62e76","id":16651,"mutability":"mutable","name":"strategy","nameLocation":"1609:8:43","nodeType":"VariableDeclaration","scope":17152,"src":"1593:24:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"typeName":{"id":16650,"nodeType":"UserDefinedTypeName","pathNode":{"id":16649,"name":"Strategy","nameLocations":["1593:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":16633,"src":"1593:8:43"},"referencedDeclaration":16633,"src":"1593:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"visibility":"public"},{"constant":false,"documentation":{"id":16652,"nodeType":"StructuredDocumentation","src":"1624:51:43","text":"@notice The reward amount issued for each claim"},"functionSelector":"228cb733","id":16654,"mutability":"mutable","name":"reward","nameLocation":"1695:6:43","nodeType":"VariableDeclaration","scope":17152,"src":"1680:21:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16653,"name":"uint256","nodeType":"ElementaryTypeName","src":"1680:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16655,"nodeType":"StructuredDocumentation","src":"1708:62:43","text":"@notice The limit (max claims, or max entries for raffles)"},"functionSelector":"a4d66daf","id":16657,"mutability":"mutable","name":"limit","nameLocation":"1790:5:43","nodeType":"VariableDeclaration","scope":17152,"src":"1775:20:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16656,"name":"uint256","nodeType":"ElementaryTypeName","src":"1775:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16658,"nodeType":"StructuredDocumentation","src":"1802:81:43","text":"@notice The set of addresses that have claimed a slot in the incentive raffle"},"functionSelector":"b30906d4","id":16661,"mutability":"mutable","name":"entries","nameLocation":"1905:7:43","nodeType":"VariableDeclaration","scope":17152,"src":"1888:24:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":16659,"name":"address","nodeType":"ElementaryTypeName","src":"1888:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16660,"nodeType":"ArrayTypeName","src":"1888:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"body":{"id":16668,"nodeType":"Block","src":"2173:39:43","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16665,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"2183:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2183:22:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16667,"nodeType":"ExpressionStatement","src":"2183:22:43"}]},"documentation":{"id":16662,"nodeType":"StructuredDocumentation","src":"1919:235:43","text":"@notice Construct a new ERC20Incentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":16669,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16663,"nodeType":"ParameterList","parameters":[],"src":"2170:2:43"},"returnParameters":{"id":16664,"nodeType":"ParameterList","parameters":[],"src":"2173:0:43"},"scope":17152,"src":"2159:53:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":16780,"nodeType":"Block","src":"2483:866:43","statements":[{"assignments":[16680],"declarations":[{"constant":false,"id":16680,"mutability":"mutable","name":"init_","nameLocation":"2512:5:43","nodeType":"VariableDeclaration","scope":16780,"src":"2493:24:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload"},"typeName":{"id":16679,"nodeType":"UserDefinedTypeName","pathNode":{"id":16678,"name":"InitPayload","nameLocations":["2493:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":16644,"src":"2493:11:43"},"referencedDeclaration":16644,"src":"2493:11:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_storage_ptr","typeString":"struct ERC20Incentive.InitPayload"}},"visibility":"internal"}],"id":16687,"initialValue":{"arguments":[{"id":16683,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16672,"src":"2531:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16684,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16644,"src":"2539:11:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"id":16685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2538:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}],"expression":{"id":16681,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2520:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2524:6:43","memberName":"decode","nodeType":"MemberAccess","src":"2520:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2520:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2493:59:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16688,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2635:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"2635:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16690,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"2653:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2662:4:43","memberName":"MINT","nodeType":"MemberAccess","referencedDeclaration":16631,"src":"2653:13:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"2635:31:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16698,"nodeType":"IfStatement","src":"2631:71:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16693,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2675:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2686:14:43","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"2675:25:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2675:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16697,"nodeType":"RevertStatement","src":"2668:34:43"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16699,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2716:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2722:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"2716:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2732:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2716:17:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16703,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2737:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2743:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"2737:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2752:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2737:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2716:37:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16713,"nodeType":"IfStatement","src":"2712:84:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16708,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2762:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2773:21:43","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"2762:32:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2762:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16712,"nodeType":"RevertStatement","src":"2755:41:43"}},{"assignments":[16715],"declarations":[{"constant":false,"id":16715,"mutability":"mutable","name":"maxTotalReward","nameLocation":"2878:14:43","nodeType":"VariableDeclaration","scope":16780,"src":"2870:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16714,"name":"uint256","nodeType":"ElementaryTypeName","src":"2870:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16729,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16716,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2895:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2901:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"2895:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16718,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"2913:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2922:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"2913:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"2895:33:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":16726,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2960:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2966:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"2960:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2895:77:43","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16721,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2931:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2937:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"2931:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16723,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2946:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2952:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"2946:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2931:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2870:102:43"},{"assignments":[16731],"declarations":[{"constant":false,"id":16731,"mutability":"mutable","name":"available","nameLocation":"2990:9:43","nodeType":"VariableDeclaration","scope":16780,"src":"2982:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16730,"name":"uint256","nodeType":"ElementaryTypeName","src":"2982:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16740,"initialValue":{"arguments":[{"arguments":[{"id":16737,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3032:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}],"id":16736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3024:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16735,"name":"address","nodeType":"ElementaryTypeName","src":"3024:7:43","typeDescriptions":{}}},"id":16738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":16732,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3002:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3008:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"3002:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3014:9:43","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"3002:21:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3002:36:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2982:56:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16741,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16731,"src":"3052:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16742,"name":"maxTotalReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16715,"src":"3064:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3052:26:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16754,"nodeType":"IfStatement","src":"3048:132:43","trueBody":{"id":16753,"nodeType":"Block","src":"3080:100:43","statements":[{"errorCall":{"arguments":[{"expression":{"id":16747,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3130:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3136:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"3130:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16749,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16731,"src":"3143:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16750,"name":"maxTotalReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16715,"src":"3154:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16744,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"3101:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3112:17:43","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"3101:28:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":16751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3101:68:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16752,"nodeType":"RevertStatement","src":"3094:75:43"}]}},{"expression":{"id":16758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16755,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"3190:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16756,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3198:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3204:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"3198:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3190:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16759,"nodeType":"ExpressionStatement","src":"3190:19:43"},{"expression":{"id":16763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16760,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"3219:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16761,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3230:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3236:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"3230:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"3219:25:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"id":16764,"nodeType":"ExpressionStatement","src":"3219:25:43"},{"expression":{"id":16768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16765,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"3254:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16766,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3263:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3269:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"3263:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3254:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16769,"nodeType":"ExpressionStatement","src":"3254:21:43"},{"expression":{"id":16773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16770,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"3285:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16771,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3293:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3299:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"3293:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3285:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16774,"nodeType":"ExpressionStatement","src":"3285:19:43"},{"expression":{"arguments":[{"expression":{"id":16776,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3331:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3335:6:43","memberName":"sender","nodeType":"MemberAccess","src":"3331:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16775,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3314:16:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3314:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16779,"nodeType":"ExpressionStatement","src":"3314:28:43"}]},"documentation":{"id":16670,"nodeType":"StructuredDocumentation","src":"2218:190:43","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`"},"functionSelector":"439fab91","id":16781,"implemented":true,"kind":"function","modifiers":[{"id":16676,"kind":"modifierInvocation","modifierName":{"id":16675,"name":"initializer","nameLocations":["2471:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2471:11:43"},"nodeType":"ModifierInvocation","src":"2471:11:43"}],"name":"initialize","nameLocation":"2422:10:43","nodeType":"FunctionDefinition","overrides":{"id":16674,"nodeType":"OverrideSpecifier","overrides":[],"src":"2462:8:43"},"parameters":{"id":16673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16672,"mutability":"mutable","name":"data_","nameLocation":"2448:5:43","nodeType":"VariableDeclaration","scope":16781,"src":"2433:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16671,"name":"bytes","nodeType":"ElementaryTypeName","src":"2433:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2432:22:43"},"returnParameters":{"id":16677,"nodeType":"ParameterList","parameters":[],"src":"2483:0:43"},"scope":17152,"src":"2413:936:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":16881,"nodeType":"Block","src":"3630:676:43","statements":[{"assignments":[16794],"declarations":[{"constant":false,"id":16794,"mutability":"mutable","name":"claim_","nameLocation":"3660:6:43","nodeType":"VariableDeclaration","scope":16881,"src":"3640:26:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16793,"nodeType":"UserDefinedTypeName","pathNode":{"id":16792,"name":"ClaimPayload","nameLocations":["3640:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3640:12:43"},"referencedDeclaration":17186,"src":"3640:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16801,"initialValue":{"arguments":[{"id":16797,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16784,"src":"3680:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16798,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3688:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16799,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3687:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16795,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3669:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3673:6:43","memberName":"decode","nodeType":"MemberAccess","src":"3669:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3669:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3640:62:43"},{"condition":{"id":16806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3716:28:43","subExpression":{"arguments":[{"expression":{"id":16803,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3730:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3737:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3730:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16802,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17092,"src":"3717:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3717:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16810,"nodeType":"IfStatement","src":"3712:55:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16807,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"3753:12:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:14:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16809,"nodeType":"RevertStatement","src":"3746:21:43"}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16811,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"3782:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16812,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"3794:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3803:4:43","memberName":"POOL","nodeType":"MemberAccess","referencedDeclaration":16630,"src":"3794:13:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"3782:25:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16848,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"4066:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16849,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"4078:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4087:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"4078:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"4066:27:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16877,"nodeType":"IfStatement","src":"4062:215:43","trueBody":{"id":16876,"nodeType":"Block","src":"4095:182:43","statements":[{"expression":{"id":16853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4109:8:43","subExpression":{"id":16852,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"4109:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16854,"nodeType":"ExpressionStatement","src":"4109:8:43"},{"expression":{"id":16860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16855,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"4131:7:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16858,"indexExpression":{"expression":{"id":16856,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"4139:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4146:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4139:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4131:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4156:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4131:29:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16861,"nodeType":"ExpressionStatement","src":"4131:29:43"},{"expression":{"arguments":[{"expression":{"id":16865,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"4187:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4194:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4187:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16862,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16661,"src":"4174:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":16864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4182:4:43","memberName":"push","nodeType":"MemberAccess","src":"4174:12:43","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4174:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16868,"nodeType":"ExpressionStatement","src":"4174:27:43"},{"eventCall":{"arguments":[{"expression":{"id":16870,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"4227:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4234:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4227:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16869,"name":"Entry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16628,"src":"4221:5:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4221:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16873,"nodeType":"EmitStatement","src":"4216:25:43"},{"expression":{"hexValue":"74727565","id":16874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4262:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16791,"id":16875,"nodeType":"Return","src":"4255:11:43"}]}},"id":16878,"nodeType":"IfStatement","src":"3778:499:43","trueBody":{"id":16847,"nodeType":"Block","src":"3809:247:43","statements":[{"expression":{"id":16816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3823:8:43","subExpression":{"id":16815,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"3823:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16817,"nodeType":"ExpressionStatement","src":"3823:8:43"},{"expression":{"id":16823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16818,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"3845:7:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16821,"indexExpression":{"expression":{"id":16819,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3853:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3860:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3853:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3845:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3870:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3845:29:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16824,"nodeType":"ExpressionStatement","src":"3845:29:43"},{"expression":{"arguments":[{"expression":{"id":16828,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3908:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3915:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3908:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16830,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"3923:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16825,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"3889:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3895:12:43","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"3889:18:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":16831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16832,"nodeType":"ExpressionStatement","src":"3889:41:43"},{"eventCall":{"arguments":[{"expression":{"id":16834,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3958:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3958:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16838,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"3990:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16839,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3997:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4004:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3997:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16841,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"4012:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3973:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3977:12:43","memberName":"encodePacked","nodeType":"MemberAccess","src":"3973:16:43","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3973:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16833,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"3950:7:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3950:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16844,"nodeType":"EmitStatement","src":"3945:75:43"},{"expression":{"hexValue":"74727565","id":16845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4041:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16791,"id":16846,"nodeType":"Return","src":"4034:11:43"}]}},{"expression":{"hexValue":"66616c7365","id":16879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4294:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16791,"id":16880,"nodeType":"Return","src":"4287:12:43"}]},"documentation":{"id":16782,"nodeType":"StructuredDocumentation","src":"3355:190:43","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":16882,"implemented":true,"kind":"function","modifiers":[{"id":16788,"kind":"modifierInvocation","modifierName":{"id":16787,"name":"onlyOwner","nameLocations":["3605:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"3605:9:43"},"nodeType":"ModifierInvocation","src":"3605:9:43"}],"name":"claim","nameLocation":"3559:5:43","nodeType":"FunctionDefinition","overrides":{"id":16786,"nodeType":"OverrideSpecifier","overrides":[],"src":"3596:8:43"},"parameters":{"id":16785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16784,"mutability":"mutable","name":"data_","nameLocation":"3580:5:43","nodeType":"VariableDeclaration","scope":16882,"src":"3565:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16783,"name":"bytes","nodeType":"ElementaryTypeName","src":"3565:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3564:22:43"},"returnParameters":{"id":16791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16882,"src":"3624:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16789,"name":"bool","nodeType":"ElementaryTypeName","src":"3624:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3623:6:43"},"scope":17152,"src":"3550:756:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":16989,"nodeType":"Block","src":"4424:912:43","statements":[{"assignments":[16895],"declarations":[{"constant":false,"id":16895,"mutability":"mutable","name":"claim_","nameLocation":"4454:6:43","nodeType":"VariableDeclaration","scope":16989,"src":"4434:26:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16894,"nodeType":"UserDefinedTypeName","pathNode":{"id":16893,"name":"ClaimPayload","nameLocations":["4434:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4434:12:43"},"referencedDeclaration":17186,"src":"4434:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16902,"initialValue":{"arguments":[{"id":16898,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16885,"src":"4474:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16899,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4482:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4481:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4463:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4467:6:43","memberName":"decode","nodeType":"MemberAccess","src":"4463:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4434:62:43"},{"assignments":[16904],"declarations":[{"constant":false,"id":16904,"mutability":"mutable","name":"amount","nameLocation":"4515:6:43","nodeType":"VariableDeclaration","scope":16989,"src":"4507:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16903,"name":"uint256","nodeType":"ElementaryTypeName","src":"4507:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16913,"initialValue":{"arguments":[{"expression":{"id":16907,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"4536:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4543:4:43","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4536:11:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4550:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16909,"name":"uint256","nodeType":"ElementaryTypeName","src":"4550:7:43","typeDescriptions":{}}}],"id":16911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4549:9:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":16905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4525:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4529:6:43","memberName":"decode","nodeType":"MemberAccess","src":"4525:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4525:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4506:53:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16914,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"4574:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16915,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"4586:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4595:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"4586:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"4574:27:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16965,"nodeType":"Block","src":"4860:249:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16942,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"4977:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":16943,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"4986:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4977:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4996:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4977:20:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16958,"nodeType":"IfStatement","src":"4973:87:43","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16950,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5029:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5033:6:43","memberName":"sender","nodeType":"MemberAccess","src":"5029:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16954,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5052:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5041:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5045:6:43","memberName":"encode","nodeType":"MemberAccess","src":"5041:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5041:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16947,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"5006:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5017:11:43","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"5006:22:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":16956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5006:54:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16957,"nodeType":"RevertStatement","src":"4999:61:43"}},{"expression":{"id":16963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16959,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"5074:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16960,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"5083:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":16961,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"5092:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5083:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5074:24:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16964,"nodeType":"ExpressionStatement","src":"5074:24:43"}]},"id":16966,"nodeType":"IfStatement","src":"4570:539:43","trueBody":{"id":16941,"nodeType":"Block","src":"4603:251:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16918,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"4727:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16919,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"4737:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4727:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16921,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"4747:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4756:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4747:10:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4727:30:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16936,"nodeType":"IfStatement","src":"4723:97:43","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16928,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4789:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4793:6:43","memberName":"sender","nodeType":"MemberAccess","src":"4789:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16932,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"4812:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4801:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4805:6:43","memberName":"encode","nodeType":"MemberAccess","src":"4801:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16925,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"4766:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4777:11:43","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"4766:22:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":16934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4766:54:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16935,"nodeType":"RevertStatement","src":"4759:61:43"}},{"expression":{"id":16939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16937,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"4834:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4834:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16940,"nodeType":"ExpressionStatement","src":"4834:9:43"}]}},{"expression":{"arguments":[{"expression":{"id":16970,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5200:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5207:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"5200:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16972,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"5215:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16967,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"5181:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5187:12:43","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"5181:18:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":16973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5181:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16974,"nodeType":"ExpressionStatement","src":"5181:41:43"},{"eventCall":{"arguments":[{"expression":{"id":16976,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5245:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5252:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"5245:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16980,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"5277:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16981,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5284:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5291:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"5284:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16983,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"5299:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16978,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5260:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5264:12:43","memberName":"encodePacked","nodeType":"MemberAccess","src":"5260:16:43","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5260:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16975,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"5237:7:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5237:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16986,"nodeType":"EmitStatement","src":"5232:75:43"},{"expression":{"hexValue":"74727565","id":16987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5325:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16892,"id":16988,"nodeType":"Return","src":"5318:11:43"}]},"documentation":{"id":16883,"nodeType":"StructuredDocumentation","src":"4312:25:43","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":16990,"implemented":true,"kind":"function","modifiers":[{"id":16889,"kind":"modifierInvocation","modifierName":{"id":16888,"name":"onlyOwner","nameLocations":["4399:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4399:9:43"},"nodeType":"ModifierInvocation","src":"4399:9:43"}],"name":"reclaim","nameLocation":"4351:7:43","nodeType":"FunctionDefinition","overrides":{"id":16887,"nodeType":"OverrideSpecifier","overrides":[],"src":"4390:8:43"},"parameters":{"id":16886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16885,"mutability":"mutable","name":"data_","nameLocation":"4374:5:43","nodeType":"VariableDeclaration","scope":16990,"src":"4359:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16884,"name":"bytes","nodeType":"ElementaryTypeName","src":"4359:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4358:22:43"},"returnParameters":{"id":16892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16990,"src":"4418:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16890,"name":"bool","nodeType":"ElementaryTypeName","src":"4418:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4417:6:43"},"scope":17152,"src":"4342:994:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":17048,"nodeType":"Block","src":"5705:465:43","statements":[{"assignments":[17001],"declarations":[{"constant":false,"id":17001,"mutability":"mutable","name":"init_","nameLocation":"5734:5:43","nodeType":"VariableDeclaration","scope":17048,"src":"5715:24:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload"},"typeName":{"id":17000,"nodeType":"UserDefinedTypeName","pathNode":{"id":16999,"name":"InitPayload","nameLocations":["5715:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":16644,"src":"5715:11:43"},"referencedDeclaration":16644,"src":"5715:11:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_storage_ptr","typeString":"struct ERC20Incentive.InitPayload"}},"visibility":"internal"}],"id":17008,"initialValue":{"arguments":[{"id":17004,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"5753:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17005,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16644,"src":"5761:11:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"id":17006,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5760:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}],"expression":{"id":17002,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5742:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5746:6:43","memberName":"decode","nodeType":"MemberAccess","src":"5742:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5742:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5715:59:43"},{"assignments":[17010],"declarations":[{"constant":false,"id":17010,"mutability":"mutable","name":"amount","nameLocation":"5792:6:43","nodeType":"VariableDeclaration","scope":17048,"src":"5784:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17009,"name":"uint256","nodeType":"ElementaryTypeName","src":"5784:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17024,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":17015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17011,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5801:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5807:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"5801:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17013,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"5819:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":17014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5828:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"5819:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"5801:33:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":17021,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5866:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5872:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"5866:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5801:77:43","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17016,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5837:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5843:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"5837:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":17018,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5852:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5858:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"5852:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5837:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5784:94:43"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":17029,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5965:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":17030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5972:9:43","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"5965:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":17031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5982:5:43","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5965:22:43","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},{"expression":{"id":17032,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"6012:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6018:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"6012:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17036,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6057:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}],"id":17035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6049:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17034,"name":"address","nodeType":"ElementaryTypeName","src":"6049:7:43","typeDescriptions":{}}},"id":17037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6049:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":17042,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17010,"src":"6129:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17040,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"6097:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":17041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6104:15:43","memberName":"FungiblePayload","nodeType":"MemberAccess","referencedDeclaration":13486,"src":"6097:22:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6121:6:43"],"names":["amount"],"nodeType":"FunctionCall","src":"6097:40:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}],"expression":{"id":17038,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6086:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6090:6:43","memberName":"encode","nodeType":"MemberAccess","src":"6086:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6086:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17027,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5920:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":17028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5927:8:43","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":13482,"src":"5920:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5954:9:43","6005:5:43","6041:6:43","6080:4:43"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"5920:233:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":17025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5896:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5900:6:43","memberName":"encode","nodeType":"MemberAccess","src":"5896:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5896:267:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":16998,"id":17047,"nodeType":"Return","src":"5889:274:43"}]},"documentation":{"id":16991,"nodeType":"StructuredDocumentation","src":"5342:260:43","text":"@inheritdoc Incentive\n @notice Preflight the incentive to determine the required budget action\n @param data_ The {InitPayload} for the incentive\n @return budgetData The {Transfer} payload to be passed to the {Budget} for interpretation"},"functionSelector":"4e7165a2","id":17049,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"5616:9:43","nodeType":"FunctionDefinition","overrides":{"id":16995,"nodeType":"OverrideSpecifier","overrides":[],"src":"5662:8:43"},"parameters":{"id":16994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16993,"mutability":"mutable","name":"data_","nameLocation":"5641:5:43","nodeType":"VariableDeclaration","scope":17049,"src":"5626:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16992,"name":"bytes","nodeType":"ElementaryTypeName","src":"5626:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5625:22:43"},"returnParameters":{"id":16998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16997,"mutability":"mutable","name":"budgetData","nameLocation":"5693:10:43","nodeType":"VariableDeclaration","scope":17049,"src":"5680:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16996,"name":"bytes","nodeType":"ElementaryTypeName","src":"5680:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5679:25:43"},"scope":17152,"src":"5607:563:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":17073,"nodeType":"Block","src":"6630:123:43","statements":[{"assignments":[17060],"declarations":[{"constant":false,"id":17060,"mutability":"mutable","name":"claim_","nameLocation":"6660:6:43","nodeType":"VariableDeclaration","scope":17073,"src":"6640:26:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17059,"nodeType":"UserDefinedTypeName","pathNode":{"id":17058,"name":"ClaimPayload","nameLocations":["6640:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"6640:12:43"},"referencedDeclaration":17186,"src":"6640:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17067,"initialValue":{"arguments":[{"id":17063,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17052,"src":"6680:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17064,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"6688:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6687:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6669:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6673:6:43","memberName":"decode","nodeType":"MemberAccess","src":"6669:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6640:62:43"},{"expression":{"arguments":[{"expression":{"id":17069,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17060,"src":"6732:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6739:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"6732:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17068,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17092,"src":"6719:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6719:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17057,"id":17072,"nodeType":"Return","src":"6712:34:43"}]},"documentation":{"id":17050,"nodeType":"StructuredDocumentation","src":"6176:370:43","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":17074,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"6560:11:43","nodeType":"FunctionDefinition","overrides":{"id":17054,"nodeType":"OverrideSpecifier","overrides":[],"src":"6606:8:43"},"parameters":{"id":17053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17052,"mutability":"mutable","name":"data_","nameLocation":"6587:5:43","nodeType":"VariableDeclaration","scope":17074,"src":"6572:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17051,"name":"bytes","nodeType":"ElementaryTypeName","src":"6572:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6571:22:43"},"returnParameters":{"id":17057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17074,"src":"6624:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17055,"name":"bool","nodeType":"ElementaryTypeName","src":"6624:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6623:6:43"},"scope":17152,"src":"6551:202:43","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17091,"nodeType":"Block","src":"7030:62:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7047:20:43","subExpression":{"baseExpression":{"id":17082,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"7048:7:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17084,"indexExpression":{"id":17083,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17077,"src":"7056:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7048:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17086,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"7071:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17087,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"7080:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7071:14:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7047:38:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17081,"id":17090,"nodeType":"Return","src":"7040:45:43"}]},"documentation":{"id":17075,"nodeType":"StructuredDocumentation","src":"6759:195:43","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":17092,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"6968:12:43","nodeType":"FunctionDefinition","parameters":{"id":17078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17077,"mutability":"mutable","name":"recipient_","nameLocation":"6989:10:43","nodeType":"VariableDeclaration","scope":17092,"src":"6981:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17076,"name":"address","nodeType":"ElementaryTypeName","src":"6981:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6980:20:43"},"returnParameters":{"id":17081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17092,"src":"7024:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17079,"name":"bool","nodeType":"ElementaryTypeName","src":"7024:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7023:6:43"},"scope":17152,"src":"6959:133:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17150,"nodeType":"Block","src":"7255:388:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":17101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17098,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"7269:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17099,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"7281:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":17100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7290:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"7281:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"7269:27:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17107,"nodeType":"IfStatement","src":"7265:65:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17102,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"7305:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":17104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7316:12:43","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"7305:23:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7305:25:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17106,"nodeType":"RevertStatement","src":"7298:32:43"}},{"assignments":[17112],"declarations":[{"constant":false,"id":17112,"mutability":"mutable","name":"_prng","nameLocation":"7361:5:43","nodeType":"VariableDeclaration","scope":17150,"src":"7341:25:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":17111,"nodeType":"UserDefinedTypeName","pathNode":{"id":17110,"name":"LibPRNG.PRNG","nameLocations":["7341:7:43","7349:4:43"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"7341:12:43"},"referencedDeclaration":10121,"src":"7341:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"id":17121,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17115,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7390:5:43","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7396:10:43","memberName":"prevrandao","nodeType":"MemberAccess","src":"7390:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":17117,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7409:5:43","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7415:9:43","memberName":"timestamp","nodeType":"MemberAccess","src":"7409:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7390:34:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17113,"name":"LibPRNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10307,"src":"7369:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPRNG_$10307_$","typeString":"type(library LibPRNG)"}},"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7377:4:43","memberName":"PRNG","nodeType":"MemberAccess","referencedDeclaration":10121,"src":"7369:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PRNG_$10121_storage_ptr_$","typeString":"type(struct LibPRNG.PRNG storage pointer)"}},"id":17120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7383:5:43"],"names":["state"],"nodeType":"FunctionCall","src":"7369:57:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG memory"}},"nodeType":"VariableDeclarationStatement","src":"7341:85:43"},{"assignments":[17123],"declarations":[{"constant":false,"id":17123,"mutability":"mutable","name":"winnerAddress","nameLocation":"7445:13:43","nodeType":"VariableDeclaration","scope":17150,"src":"7437:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17122,"name":"address","nodeType":"ElementaryTypeName","src":"7437:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17132,"initialValue":{"baseExpression":{"id":17124,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16661,"src":"7461:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17131,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17125,"name":"_prng","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17112,"src":"7469:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG memory"}},"id":17126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7475:4:43","memberName":"next","nodeType":"MemberAccess","referencedDeclaration":10147,"src":"7469:10:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PRNG_$10121_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PRNG_$10121_memory_ptr_$","typeString":"function (struct LibPRNG.PRNG memory) pure returns (uint256)"}},"id":17127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:12:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":17128,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16661,"src":"7484:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7492:6:43","memberName":"length","nodeType":"MemberAccess","src":"7484:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7469:29:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7461:38:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7437:62:43"},{"expression":{"arguments":[{"id":17136,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"7529:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17137,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"7544:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17133,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"7510:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7516:12:43","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"7510:18:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":17138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7510:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17139,"nodeType":"ExpressionStatement","src":"7510:41:43"},{"eventCall":{"arguments":[{"id":17141,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"7574:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17144,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"7606:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17145,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"7613:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17146,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"7628:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17142,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7589:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7593:12:43","memberName":"encodePacked","nodeType":"MemberAccess","src":"7589:16:43","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7589:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17140,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"7566:7:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7566:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17149,"nodeType":"EmitStatement","src":"7561:75:43"}]},"documentation":{"id":17093,"nodeType":"StructuredDocumentation","src":"7098:111:43","text":"@notice Draw a winner from the raffle\n @dev Only valid when the strategy is set to `Strategy.RAFFLE`"},"functionSelector":"2275aea9","id":17151,"implemented":true,"kind":"function","modifiers":[{"id":17096,"kind":"modifierInvocation","modifierName":{"id":17095,"name":"onlyOwner","nameLocations":["7245:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7245:9:43"},"nodeType":"ModifierInvocation","src":"7245:9:43"}],"name":"drawRaffle","nameLocation":"7223:10:43","nodeType":"FunctionDefinition","parameters":{"id":17094,"nodeType":"ParameterList","parameters":[],"src":"7233:2:43"},"returnParameters":{"id":17097,"nodeType":"ParameterList","parameters":[],"src":"7255:0:43"},"scope":17152,"src":"7214:429:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":17153,"src":"448:7197:43","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17519,17528,17538,17544,17565,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,16628,17174]}],"src":"36:7610:43"},"id":43},"contracts/incentives/Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/Incentive.sol","exportedSymbols":{"Cloneable":[17720],"Incentive":[17260],"Ownable":[6423],"ReentrancyGuard":[11038]},"id":17261,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17154,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:44"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":17156,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17261,"sourceUnit":6424,"src":"62:49:44","symbolAliases":[{"foreign":{"id":17155,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":17158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17261,"sourceUnit":11039,"src":"112:66:44","symbolAliases":[{"foreign":{"id":17157,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"120:15:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":17160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17261,"sourceUnit":17721,"src":"180:57:44","symbolAliases":[{"foreign":{"id":17159,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"188:9:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":17162,"name":"Ownable","nameLocations":["528:7:44"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"528:7:44"},"id":17163,"nodeType":"InheritanceSpecifier","src":"528:7:44"},{"baseName":{"id":17164,"name":"Cloneable","nameLocations":["537:9:44"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"537:9:44"},"id":17165,"nodeType":"InheritanceSpecifier","src":"537:9:44"},{"baseName":{"id":17166,"name":"ReentrancyGuard","nameLocations":["548:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"548:15:44"},"id":17167,"nodeType":"InheritanceSpecifier","src":"548:15:44"}],"canonicalName":"Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17161,"nodeType":"StructuredDocumentation","src":"239:258:44","text":"@title Boost Incentive\n @notice Abstract contract for a generic Incentive within the Boost protocol\n @dev Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":17260,"linearizedBaseContracts":[17260,11038,17720,2845,2857,9225,6423],"name":"Incentive","nameLocation":"515:9:44","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":17168,"nodeType":"StructuredDocumentation","src":"570:175:44","text":"@notice Emitted when an incentive is claimed\n @dev The `data` field contains implementation-specific context. See the implementation's `claim` function for details."},"eventSelector":"9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d3","id":17174,"name":"Claimed","nameLocation":"756:7:44","nodeType":"EventDefinition","parameters":{"id":17173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17170,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"780:9:44","nodeType":"VariableDeclaration","scope":17174,"src":"764:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17169,"name":"address","nodeType":"ElementaryTypeName","src":"764:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17172,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"797:4:44","nodeType":"VariableDeclaration","scope":17174,"src":"791:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17171,"name":"bytes","nodeType":"ElementaryTypeName","src":"791:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"763:39:44"},"src":"750:53:44"},{"documentation":{"id":17175,"nodeType":"StructuredDocumentation","src":"809:37:44","text":"@notice Thrown when a claim fails"},"errorSelector":"360e42e1","id":17177,"name":"ClaimFailed","nameLocation":"857:11:44","nodeType":"ErrorDefinition","parameters":{"id":17176,"nodeType":"ParameterList","parameters":[],"src":"868:2:44"},"src":"851:20:44"},{"documentation":{"id":17178,"nodeType":"StructuredDocumentation","src":"877:54:44","text":"@notice Thrown when the incentive is not claimable"},"errorSelector":"6247a84e","id":17180,"name":"NotClaimable","nameLocation":"942:12:44","nodeType":"ErrorDefinition","parameters":{"id":17179,"nodeType":"ParameterList","parameters":[],"src":"954:2:44"},"src":"936:21:44"},{"canonicalName":"Incentive.ClaimPayload","documentation":{"id":17181,"nodeType":"StructuredDocumentation","src":"963:197:44","text":"@notice A struct representing the payload for an incentive claim\n @param target The address of the recipient\n @param data The implementation-specific data for the claim, if needed"},"id":17186,"members":[{"constant":false,"id":17183,"mutability":"mutable","name":"target","nameLocation":"1203:6:44","nodeType":"VariableDeclaration","scope":17186,"src":"1195:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17182,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17185,"mutability":"mutable","name":"data","nameLocation":"1225:4:44","nodeType":"VariableDeclaration","scope":17186,"src":"1219:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":17184,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ClaimPayload","nameLocation":"1172:12:44","nodeType":"StructDefinition","scope":17260,"src":"1165:71:44","visibility":"public"},{"constant":false,"documentation":{"id":17187,"nodeType":"StructuredDocumentation","src":"1242:52:44","text":"@notice The number of claims that have been made"},"functionSelector":"dcc59b6f","id":17189,"mutability":"mutable","name":"claims","nameLocation":"1314:6:44","nodeType":"VariableDeclaration","scope":17260,"src":"1299:21:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":17190,"nodeType":"StructuredDocumentation","src":"1327:48:44","text":"@notice A mapping of address to claim status"},"functionSelector":"c884ef83","id":17194,"mutability":"mutable","name":"claimed","nameLocation":"1412:7:44","nodeType":"VariableDeclaration","scope":17260,"src":"1380:39:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":17193,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":17191,"name":"address","nodeType":"ElementaryTypeName","src":"1388:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1380:24:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17192,"name":"bool","nodeType":"ElementaryTypeName","src":"1399:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":17203,"nodeType":"Block","src":"1553:45:44","statements":[{"expression":{"arguments":[{"expression":{"id":17199,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1580:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:6:44","memberName":"sender","nodeType":"MemberAccess","src":"1580:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17198,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1563:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1563:28:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17202,"nodeType":"ExpressionStatement","src":"1563:28:44"}]},"documentation":{"id":17195,"nodeType":"StructuredDocumentation","src":"1426:108:44","text":"@notice Initialize the contract and set the owner\n @dev The owner is set to the contract deployer"},"id":17204,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17196,"nodeType":"ParameterList","parameters":[],"src":"1550:2:44"},"returnParameters":{"id":17197,"nodeType":"ParameterList","parameters":[],"src":"1553:0:44"},"scope":17260,"src":"1539:59:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":17205,"nodeType":"StructuredDocumentation","src":"1604:156:44","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":17212,"implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1774:5:44","nodeType":"FunctionDefinition","parameters":{"id":17208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17207,"mutability":"mutable","name":"data_","nameLocation":"1795:5:44","nodeType":"VariableDeclaration","scope":17212,"src":"1780:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17206,"name":"bytes","nodeType":"ElementaryTypeName","src":"1780:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1779:22:44"},"returnParameters":{"id":17211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17212,"src":"1828:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17209,"name":"bool","nodeType":"ElementaryTypeName","src":"1828:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1827:6:44"},"scope":17260,"src":"1765:69:44","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":17213,"nodeType":"StructuredDocumentation","src":"1840:162:44","text":"@notice Reclaim assets from the incentive\n @param data_ The data payload for the reclaim\n @return True if the assets were successfully reclaimed"},"functionSelector":"f1c30ec0","id":17220,"implemented":false,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2016:7:44","nodeType":"FunctionDefinition","parameters":{"id":17216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17215,"mutability":"mutable","name":"data_","nameLocation":"2039:5:44","nodeType":"VariableDeclaration","scope":17220,"src":"2024:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17214,"name":"bytes","nodeType":"ElementaryTypeName","src":"2024:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2023:22:44"},"returnParameters":{"id":17219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17220,"src":"2072:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17217,"name":"bool","nodeType":"ElementaryTypeName","src":"2072:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2071:6:44"},"scope":17260,"src":"2007:71:44","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":17221,"nodeType":"StructuredDocumentation","src":"2084:205:44","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check (data, signature, etc.)\n @return True if the incentive is claimable based on the data payload"},"functionSelector":"e18e6508","id":17228,"implemented":false,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"2303:11:44","nodeType":"FunctionDefinition","parameters":{"id":17224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17223,"mutability":"mutable","name":"data_","nameLocation":"2330:5:44","nodeType":"VariableDeclaration","scope":17228,"src":"2315:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17222,"name":"bytes","nodeType":"ElementaryTypeName","src":"2315:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2314:22:44"},"returnParameters":{"id":17227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17228,"src":"2368:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17225,"name":"bool","nodeType":"ElementaryTypeName","src":"2368:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2367:6:44"},"scope":17260,"src":"2294:80:44","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":17229,"nodeType":"StructuredDocumentation","src":"2380:448:44","text":"@notice Get the required allowance for the incentive\n @param data_ The initialization payload for the incentive\n @return The data payload to be passed to the {Budget} for interpretation\n @dev This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation."},"functionSelector":"4e7165a2","id":17236,"implemented":false,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2842:9:44","nodeType":"FunctionDefinition","parameters":{"id":17232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17231,"mutability":"mutable","name":"data_","nameLocation":"2867:5:44","nodeType":"VariableDeclaration","scope":17236,"src":"2852:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17230,"name":"bytes","nodeType":"ElementaryTypeName","src":"2852:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2851:22:44"},"returnParameters":{"id":17235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17236,"src":"2905:12:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17233,"name":"bytes","nodeType":"ElementaryTypeName","src":"2905:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2904:14:44"},"scope":17260,"src":"2833:86:44","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":17258,"nodeType":"Block","src":"3057:106:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17246,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17239,"src":"3074:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17248,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"3094:9:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":17247,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3089:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3089:15:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":17250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3105:11:44","memberName":"interfaceId","nodeType":"MemberAccess","src":"3089:27:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3074:42:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":17254,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17239,"src":"3144:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17252,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3120:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Incentive_$17260_$","typeString":"type(contract super Incentive)"}},"id":17253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3126:17:44","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"3120:23:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":17255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3120:36:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3074:82:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17245,"id":17257,"nodeType":"Return","src":"3067:89:44"}]},"documentation":{"id":17237,"nodeType":"StructuredDocumentation","src":"2925:25:44","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":17259,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2964:17:44","nodeType":"FunctionDefinition","overrides":{"id":17242,"nodeType":"OverrideSpecifier","overrides":[{"id":17241,"name":"Cloneable","nameLocations":["3031:9:44"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"3031:9:44"}],"src":"3022:19:44"},"parameters":{"id":17240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17239,"mutability":"mutable","name":"interfaceId","nameLocation":"2989:11:44","nodeType":"VariableDeclaration","scope":17259,"src":"2982:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17238,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2982:6:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2981:20:44"},"returnParameters":{"id":17245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17259,"src":"3051:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17243,"name":"bool","nodeType":"ElementaryTypeName","src":"3051:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3050:6:44"},"scope":17260,"src":"2955:208:44","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17261,"src":"497:2668:44","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:3130:44"},"id":44},"contracts/incentives/PointsIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/PointsIncentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"Incentive":[17260],"PointsIncentive":[17509]},"id":17510,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17262,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:45"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":17264,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17510,"sourceUnit":17567,"src":"62:59:45","symbolAliases":[{"foreign":{"id":17263,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"70:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17266,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17510,"sourceUnit":13670,"src":"122:52:45","symbolAliases":[{"foreign":{"id":17265,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"130:6:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":17268,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17510,"sourceUnit":17261,"src":"175:42:45","symbolAliases":[{"foreign":{"id":17267,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"183:9:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17270,"name":"Incentive","nameLocations":["664:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"664:9:45"},"id":17271,"nodeType":"InheritanceSpecifier","src":"664:9:45"}],"canonicalName":"PointsIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17269,"nodeType":"StructuredDocumentation","src":"219:417:45","text":"@title Points Incentive\n @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n @dev In order for any claim to be successful:\n - The claimer must not have already claimed the incentive; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to operate the points contract's issuance function"},"fullyImplemented":true,"id":17509,"linearizedBaseContracts":[17509,17260,11038,17720,2845,2857,9225,6423],"name":"PointsIncentive","nameLocation":"645:15:45","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PointsIncentive.InitPayload","documentation":{"id":17272,"nodeType":"StructuredDocumentation","src":"680:58:45","text":"@notice The payload for initializing a PointsIncentive"},"id":17281,"members":[{"constant":false,"id":17274,"mutability":"mutable","name":"venue","nameLocation":"780:5:45","nodeType":"VariableDeclaration","scope":17281,"src":"772:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17273,"name":"address","nodeType":"ElementaryTypeName","src":"772:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17276,"mutability":"mutable","name":"selector","nameLocation":"802:8:45","nodeType":"VariableDeclaration","scope":17281,"src":"795:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17275,"name":"bytes4","nodeType":"ElementaryTypeName","src":"795:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":17278,"mutability":"mutable","name":"quantity","nameLocation":"828:8:45","nodeType":"VariableDeclaration","scope":17281,"src":"820:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17277,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17280,"mutability":"mutable","name":"limit","nameLocation":"854:5:45","nodeType":"VariableDeclaration","scope":17281,"src":"846:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17279,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"750:11:45","nodeType":"StructDefinition","scope":17509,"src":"743:123:45","visibility":"public"},{"constant":false,"documentation":{"id":17282,"nodeType":"StructuredDocumentation","src":"872:46:45","text":"@notice The address of the points contract"},"functionSelector":"a270a737","id":17284,"mutability":"mutable","name":"venue","nameLocation":"938:5:45","nodeType":"VariableDeclaration","scope":17509,"src":"923:20:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17283,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":17285,"nodeType":"StructuredDocumentation","src":"950:53:45","text":"@notice The quantity amount issued for each claim"},"functionSelector":"17fc45e2","id":17287,"mutability":"mutable","name":"quantity","nameLocation":"1023:8:45","nodeType":"VariableDeclaration","scope":17509,"src":"1008:23:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17286,"name":"uint256","nodeType":"ElementaryTypeName","src":"1008:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":17288,"nodeType":"StructuredDocumentation","src":"1038:75:45","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":17290,"mutability":"mutable","name":"limit","nameLocation":"1133:5:45","nodeType":"VariableDeclaration","scope":17509,"src":"1118:20:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1118:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":17291,"nodeType":"StructuredDocumentation","src":"1145:73:45","text":"@notice The selector for the issuance function on the points contract"},"functionSelector":"ea3d508a","id":17293,"mutability":"mutable","name":"selector","nameLocation":"1237:8:45","nodeType":"VariableDeclaration","scope":17509,"src":"1223:22:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17292,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1223:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"body":{"id":17300,"nodeType":"Block","src":"1507:39:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17297,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1517:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1517:22:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17299,"nodeType":"ExpressionStatement","src":"1517:22:45"}]},"documentation":{"id":17294,"nodeType":"StructuredDocumentation","src":"1252:236:45","text":"@notice Construct a new PointsIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":17301,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17295,"nodeType":"ParameterList","parameters":[],"src":"1504:2:45"},"returnParameters":{"id":17296,"nodeType":"ParameterList","parameters":[],"src":"1507:0:45"},"scope":17509,"src":"1493:53:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":17360,"nodeType":"Block","src":"1801:339:45","statements":[{"assignments":[17312],"declarations":[{"constant":false,"id":17312,"mutability":"mutable","name":"init_","nameLocation":"1830:5:45","nodeType":"VariableDeclaration","scope":17360,"src":"1811:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload"},"typeName":{"id":17311,"nodeType":"UserDefinedTypeName","pathNode":{"id":17310,"name":"InitPayload","nameLocations":["1811:11:45"],"nodeType":"IdentifierPath","referencedDeclaration":17281,"src":"1811:11:45"},"referencedDeclaration":17281,"src":"1811:11:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_storage_ptr","typeString":"struct PointsIncentive.InitPayload"}},"visibility":"internal"}],"id":17319,"initialValue":{"arguments":[{"id":17315,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17304,"src":"1849:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17316,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17281,"src":"1857:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17281_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}}],"id":17317,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1856:13:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17281_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17281_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}],"expression":{"id":17313,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1838:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1842:6:45","memberName":"decode","nodeType":"MemberAccess","src":"1838:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:32:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1811:59:45"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17320,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"1884:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1890:8:45","memberName":"quantity","nodeType":"MemberAccess","referencedDeclaration":17278,"src":"1884:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1902:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1884:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17324,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"1907:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1913:5:45","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17280,"src":"1907:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1907:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1884:39:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17334,"nodeType":"IfStatement","src":"1880:86:45","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17329,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"1932:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":17331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:21:45","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"1932:32:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1932:34:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17333,"nodeType":"RevertStatement","src":"1925:41:45"}},{"expression":{"id":17338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17335,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"1977:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17336,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"1985:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1991:5:45","memberName":"venue","nodeType":"MemberAccess","referencedDeclaration":17274,"src":"1985:11:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1977:19:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17339,"nodeType":"ExpressionStatement","src":"1977:19:45"},{"expression":{"id":17343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17340,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"2006:8:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17341,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"2017:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2023:8:45","memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":17276,"src":"2017:14:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2006:25:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":17344,"nodeType":"ExpressionStatement","src":"2006:25:45"},{"expression":{"id":17348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17345,"name":"quantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"2041:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17346,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"2052:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2058:8:45","memberName":"quantity","nodeType":"MemberAccess","referencedDeclaration":17278,"src":"2052:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2041:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17349,"nodeType":"ExpressionStatement","src":"2041:25:45"},{"expression":{"id":17353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17350,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17290,"src":"2076:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17351,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"2084:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2090:5:45","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17280,"src":"2084:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2076:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17354,"nodeType":"ExpressionStatement","src":"2076:19:45"},{"expression":{"arguments":[{"expression":{"id":17356,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2122:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2126:6:45","memberName":"sender","nodeType":"MemberAccess","src":"2122:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17355,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2105:16:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2105:28:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17359,"nodeType":"ExpressionStatement","src":"2105:28:45"}]},"documentation":{"id":17302,"nodeType":"StructuredDocumentation","src":"1552:174:45","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed incentive parameters `(address points, uint256 quantity, uint256 limit)`"},"functionSelector":"439fab91","id":17361,"implemented":true,"kind":"function","modifiers":[{"id":17308,"kind":"modifierInvocation","modifierName":{"id":17307,"name":"initializer","nameLocations":["1789:11:45"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1789:11:45"},"nodeType":"ModifierInvocation","src":"1789:11:45"}],"name":"initialize","nameLocation":"1740:10:45","nodeType":"FunctionDefinition","overrides":{"id":17306,"nodeType":"OverrideSpecifier","overrides":[],"src":"1780:8:45"},"parameters":{"id":17305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17304,"mutability":"mutable","name":"data_","nameLocation":"1766:5:45","nodeType":"VariableDeclaration","scope":17361,"src":"1751:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17303,"name":"bytes","nodeType":"ElementaryTypeName","src":"1751:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1750:22:45"},"returnParameters":{"id":17309,"nodeType":"ParameterList","parameters":[],"src":"1801:0:45"},"scope":17509,"src":"1731:409:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":17434,"nodeType":"Block","src":"2421:453:45","statements":[{"assignments":[17374],"declarations":[{"constant":false,"id":17374,"mutability":"mutable","name":"claim_","nameLocation":"2451:6:45","nodeType":"VariableDeclaration","scope":17434,"src":"2431:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17373,"nodeType":"UserDefinedTypeName","pathNode":{"id":17372,"name":"ClaimPayload","nameLocations":["2431:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"2431:12:45"},"referencedDeclaration":17186,"src":"2431:12:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17381,"initialValue":{"arguments":[{"id":17377,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17364,"src":"2471:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17378,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"2479:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17379,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2478:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2460:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2464:6:45","memberName":"decode","nodeType":"MemberAccess","src":"2460:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2460:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2431:62:45"},{"condition":{"id":17386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2507:28:45","subExpression":{"arguments":[{"expression":{"id":17383,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2521:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2528:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2521:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17382,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17508,"src":"2508:12:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17390,"nodeType":"IfStatement","src":"2503:55:45","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17387,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"2544:12:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2544:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17389,"nodeType":"RevertStatement","src":"2537:21:45"}},{"expression":{"id":17392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2569:8:45","subExpression":{"id":17391,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"2569:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17393,"nodeType":"ExpressionStatement","src":"2569:8:45"},{"expression":{"id":17399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17394,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2587:7:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17397,"indexExpression":{"expression":{"id":17395,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2595:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2602:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2595:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2587:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2612:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2587:29:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17400,"nodeType":"ExpressionStatement","src":"2587:29:45"},{"assignments":[17402,null],"declarations":[{"constant":false,"id":17402,"mutability":"mutable","name":"success","nameLocation":"2633:7:45","nodeType":"VariableDeclaration","scope":17434,"src":"2628:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17401,"name":"bool","nodeType":"ElementaryTypeName","src":"2628:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":17413,"initialValue":{"arguments":[{"arguments":[{"id":17407,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"2679:8:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":17408,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2689:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2696:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2689:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17410,"name":"quantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"2704:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17405,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2656:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2660:18:45","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2656:22:45","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":17411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2656:57:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17403,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"2645:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2651:4:45","memberName":"call","nodeType":"MemberAccess","src":"2645:10:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2645:69:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2627:87:45"},{"condition":{"id":17415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2728:8:45","subExpression":{"id":17414,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"2729:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17419,"nodeType":"IfStatement","src":"2724:34:45","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17416,"name":"ClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17177,"src":"2745:11:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2745:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17418,"nodeType":"RevertStatement","src":"2738:20:45"}},{"eventCall":{"arguments":[{"expression":{"id":17421,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2782:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2789:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2782:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17425,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"2814:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17426,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2821:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2828:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2821:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17428,"name":"quantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"2836:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2797:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2801:12:45","memberName":"encodePacked","nodeType":"MemberAccess","src":"2797:16:45","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2797:48:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17420,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"2774:7:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2774:72:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17431,"nodeType":"EmitStatement","src":"2769:77:45"},{"expression":{"hexValue":"74727565","id":17432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2863:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":17371,"id":17433,"nodeType":"Return","src":"2856:11:45"}]},"documentation":{"id":17362,"nodeType":"StructuredDocumentation","src":"2146:190:45","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":17435,"implemented":true,"kind":"function","modifiers":[{"id":17368,"kind":"modifierInvocation","modifierName":{"id":17367,"name":"onlyOwner","nameLocations":["2396:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"2396:9:45"},"nodeType":"ModifierInvocation","src":"2396:9:45"}],"name":"claim","nameLocation":"2350:5:45","nodeType":"FunctionDefinition","overrides":{"id":17366,"nodeType":"OverrideSpecifier","overrides":[],"src":"2387:8:45"},"parameters":{"id":17365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17364,"mutability":"mutable","name":"data_","nameLocation":"2371:5:45","nodeType":"VariableDeclaration","scope":17435,"src":"2356:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17363,"name":"bytes","nodeType":"ElementaryTypeName","src":"2356:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2355:22:45"},"returnParameters":{"id":17371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17435,"src":"2415:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17369,"name":"bool","nodeType":"ElementaryTypeName","src":"2415:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2414:6:45"},"scope":17509,"src":"2341:533:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":17449,"nodeType":"Block","src":"3043:51:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17444,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"3060:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":17446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3071:14:45","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"3060:25:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17448,"nodeType":"RevertStatement","src":"3053:34:45"}]},"documentation":{"id":17436,"nodeType":"StructuredDocumentation","src":"2880:87:45","text":"@inheritdoc Incentive\n @dev Not a valid operation for this type of incentive"},"functionSelector":"f1c30ec0","id":17450,"implemented":true,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2981:7:45","nodeType":"FunctionDefinition","overrides":{"id":17440,"nodeType":"OverrideSpecifier","overrides":[],"src":"3019:8:45"},"parameters":{"id":17439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17450,"src":"2989:14:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17437,"name":"bytes","nodeType":"ElementaryTypeName","src":"2989:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2988:16:45"},"returnParameters":{"id":17443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17450,"src":"3037:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17441,"name":"bool","nodeType":"ElementaryTypeName","src":"3037:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3036:6:45"},"scope":17509,"src":"2972:122:45","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":17464,"nodeType":"Block","src":"3289:36:45","statements":[{"expression":{"arguments":[{"hexValue":"30","id":17461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3316:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3306:9:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":17459,"name":"bytes","nodeType":"ElementaryTypeName","src":"3310:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":17462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3306:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":17458,"id":17463,"nodeType":"Return","src":"3299:19:45"}]},"documentation":{"id":17451,"nodeType":"StructuredDocumentation","src":"3100:92:45","text":"@inheritdoc Incentive\n @notice No token approvals are required for this incentive"},"functionSelector":"4e7165a2","id":17465,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"3206:9:45","nodeType":"FunctionDefinition","overrides":{"id":17455,"nodeType":"OverrideSpecifier","overrides":[],"src":"3246:8:45"},"parameters":{"id":17454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17465,"src":"3216:14:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17452,"name":"bytes","nodeType":"ElementaryTypeName","src":"3216:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3215:16:45"},"returnParameters":{"id":17458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17457,"mutability":"mutable","name":"budgetData","nameLocation":"3277:10:45","nodeType":"VariableDeclaration","scope":17465,"src":"3264:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17456,"name":"bytes","nodeType":"ElementaryTypeName","src":"3264:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3263:25:45"},"scope":17509,"src":"3197:128:45","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":17489,"nodeType":"Block","src":"3785:123:45","statements":[{"assignments":[17476],"declarations":[{"constant":false,"id":17476,"mutability":"mutable","name":"claim_","nameLocation":"3815:6:45","nodeType":"VariableDeclaration","scope":17489,"src":"3795:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17475,"nodeType":"UserDefinedTypeName","pathNode":{"id":17474,"name":"ClaimPayload","nameLocations":["3795:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3795:12:45"},"referencedDeclaration":17186,"src":"3795:12:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17483,"initialValue":{"arguments":[{"id":17479,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"3835:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17480,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3843:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17481,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3842:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3824:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3828:6:45","memberName":"decode","nodeType":"MemberAccess","src":"3824:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3824:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3795:62:45"},{"expression":{"arguments":[{"expression":{"id":17485,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17476,"src":"3887:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3894:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3887:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17484,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17508,"src":"3874:12:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3874:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17473,"id":17488,"nodeType":"Return","src":"3867:34:45"}]},"documentation":{"id":17466,"nodeType":"StructuredDocumentation","src":"3331:370:45","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":17490,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"3715:11:45","nodeType":"FunctionDefinition","overrides":{"id":17470,"nodeType":"OverrideSpecifier","overrides":[],"src":"3761:8:45"},"parameters":{"id":17469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17468,"mutability":"mutable","name":"data_","nameLocation":"3742:5:45","nodeType":"VariableDeclaration","scope":17490,"src":"3727:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17467,"name":"bytes","nodeType":"ElementaryTypeName","src":"3727:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3726:22:45"},"returnParameters":{"id":17473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17490,"src":"3779:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17471,"name":"bool","nodeType":"ElementaryTypeName","src":"3779:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3778:6:45"},"scope":17509,"src":"3706:202:45","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17507,"nodeType":"Block","src":"4185:62:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4202:20:45","subExpression":{"baseExpression":{"id":17498,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"4203:7:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17500,"indexExpression":{"id":17499,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17493,"src":"4211:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4203:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17502,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"4226:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17503,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17290,"src":"4235:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4226:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4202:38:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17497,"id":17506,"nodeType":"Return","src":"4195:45:45"}]},"documentation":{"id":17491,"nodeType":"StructuredDocumentation","src":"3914:195:45","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":17508,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"4123:12:45","nodeType":"FunctionDefinition","parameters":{"id":17494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17493,"mutability":"mutable","name":"recipient_","nameLocation":"4144:10:45","nodeType":"VariableDeclaration","scope":17508,"src":"4136:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17492,"name":"address","nodeType":"ElementaryTypeName","src":"4136:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4135:20:45"},"returnParameters":{"id":17497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17508,"src":"4179:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17495,"name":"bool","nodeType":"ElementaryTypeName","src":"4179:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4178:6:45"},"scope":17509,"src":"4114:133:45","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":17510,"src":"636:3613:45","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17538,17544,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:4214:45"},"id":45},"contracts/shared/BoostError.sol":{"ast":{"absolutePath":"contracts/shared/BoostError.sol","exportedSymbols":{"BoostError":[17566]},"id":17567,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17511,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:46"},{"abstract":false,"baseContracts":[],"canonicalName":"BoostError","contractDependencies":[],"contractKind":"library","documentation":{"id":17512,"nodeType":"StructuredDocumentation","src":"62:239:46","text":"@title BoostError\n @notice Standardized errors for the Boost protocol\n @dev Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing."},"fullyImplemented":true,"id":17566,"linearizedBaseContracts":[17566],"name":"BoostError","nameLocation":"309:10:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17513,"nodeType":"StructuredDocumentation","src":"326:45:46","text":"@notice Thrown when a claim attempt fails"},"errorSelector":"4139d81d","id":17519,"name":"ClaimFailed","nameLocation":"382:11:46","nodeType":"ErrorDefinition","parameters":{"id":17518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17515,"mutability":"mutable","name":"caller","nameLocation":"402:6:46","nodeType":"VariableDeclaration","scope":17519,"src":"394:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17514,"name":"address","nodeType":"ElementaryTypeName","src":"394:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17517,"mutability":"mutable","name":"data","nameLocation":"416:4:46","nodeType":"VariableDeclaration","scope":17519,"src":"410:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17516,"name":"bytes","nodeType":"ElementaryTypeName","src":"410:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"393:28:46"},"src":"376:46:46"},{"documentation":{"id":17520,"nodeType":"StructuredDocumentation","src":"428:69:46","text":"@notice Thrown when there are insufficient funds for an operation"},"errorSelector":"5c54305e","id":17528,"name":"InsufficientFunds","nameLocation":"508:17:46","nodeType":"ErrorDefinition","parameters":{"id":17527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17522,"mutability":"mutable","name":"asset","nameLocation":"534:5:46","nodeType":"VariableDeclaration","scope":17528,"src":"526:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17521,"name":"address","nodeType":"ElementaryTypeName","src":"526:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17524,"mutability":"mutable","name":"available","nameLocation":"549:9:46","nodeType":"VariableDeclaration","scope":17528,"src":"541:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17523,"name":"uint256","nodeType":"ElementaryTypeName","src":"541:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17526,"mutability":"mutable","name":"required","nameLocation":"568:8:46","nodeType":"VariableDeclaration","scope":17528,"src":"560:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17525,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"525:52:46"},"src":"502:76:46"},{"documentation":{"id":17529,"nodeType":"StructuredDocumentation","src":"584:81:46","text":"@notice Thrown when a non-conforming instance for a given type is encountered"},"errorSelector":"e1c44448","id":17535,"name":"InvalidInstance","nameLocation":"676:15:46","nodeType":"ErrorDefinition","parameters":{"id":17534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17531,"mutability":"mutable","name":"expectedInterface","nameLocation":"699:17:46","nodeType":"VariableDeclaration","scope":17535,"src":"692:24:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17530,"name":"bytes4","nodeType":"ElementaryTypeName","src":"692:6:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":17533,"mutability":"mutable","name":"instance","nameLocation":"726:8:46","nodeType":"VariableDeclaration","scope":17535,"src":"718:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17532,"name":"address","nodeType":"ElementaryTypeName","src":"718:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"691:44:46"},"src":"670:66:46"},{"documentation":{"id":17536,"nodeType":"StructuredDocumentation","src":"742:62:46","text":"@notice Thrown when an invalid initialization is attempted"},"errorSelector":"f92ee8a9","id":17538,"name":"InvalidInitialization","nameLocation":"815:21:46","nodeType":"ErrorDefinition","parameters":{"id":17537,"nodeType":"ParameterList","parameters":[],"src":"836:2:46"},"src":"809:30:46"},{"documentation":{"id":17539,"nodeType":"StructuredDocumentation","src":"845:62:46","text":"@notice Thrown when the length of two arrays are not equal"},"errorSelector":"ff633a38","id":17541,"name":"LengthMismatch","nameLocation":"918:14:46","nodeType":"ErrorDefinition","parameters":{"id":17540,"nodeType":"ParameterList","parameters":[],"src":"932:2:46"},"src":"912:23:46"},{"documentation":{"id":17542,"nodeType":"StructuredDocumentation","src":"941:51:46","text":"@notice Thrown when a method is not implemented"},"errorSelector":"d6234725","id":17544,"name":"NotImplemented","nameLocation":"1003:14:46","nodeType":"ErrorDefinition","parameters":{"id":17543,"nodeType":"ParameterList","parameters":[],"src":"1017:2:46"},"src":"997:23:46"},{"documentation":{"id":17545,"nodeType":"StructuredDocumentation","src":"1026:63:46","text":"@notice Thrown when a previously used signature is replayed"},"errorSelector":"cde6ac87","id":17553,"name":"Replayed","nameLocation":"1100:8:46","nodeType":"ErrorDefinition","parameters":{"id":17552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17547,"mutability":"mutable","name":"signer","nameLocation":"1117:6:46","nodeType":"VariableDeclaration","scope":17553,"src":"1109:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17546,"name":"address","nodeType":"ElementaryTypeName","src":"1109:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17549,"mutability":"mutable","name":"hash","nameLocation":"1133:4:46","nodeType":"VariableDeclaration","scope":17553,"src":"1125:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1125:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17551,"mutability":"mutable","name":"signature","nameLocation":"1145:9:46","nodeType":"VariableDeclaration","scope":17553,"src":"1139:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17550,"name":"bytes","nodeType":"ElementaryTypeName","src":"1139:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1108:47:46"},"src":"1094:62:46"},{"documentation":{"id":17554,"nodeType":"StructuredDocumentation","src":"1162:62:46","text":"@notice Thrown when a transfer fails for an unknown reason"},"errorSelector":"bf182be8","id":17562,"name":"TransferFailed","nameLocation":"1235:14:46","nodeType":"ErrorDefinition","parameters":{"id":17561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17556,"mutability":"mutable","name":"asset","nameLocation":"1258:5:46","nodeType":"VariableDeclaration","scope":17562,"src":"1250:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17555,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17558,"mutability":"mutable","name":"to","nameLocation":"1273:2:46","nodeType":"VariableDeclaration","scope":17562,"src":"1265:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17557,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17560,"mutability":"mutable","name":"amount","nameLocation":"1285:6:46","nodeType":"VariableDeclaration","scope":17562,"src":"1277:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17559,"name":"uint256","nodeType":"ElementaryTypeName","src":"1277:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1249:43:46"},"src":"1229:64:46"},{"documentation":{"id":17563,"nodeType":"StructuredDocumentation","src":"1299:60:46","text":"@notice Thrown when the requested action is unauthorized"},"errorSelector":"82b42900","id":17565,"name":"Unauthorized","nameLocation":"1370:12:46","nodeType":"ErrorDefinition","parameters":{"id":17564,"nodeType":"ParameterList","parameters":[],"src":"1382:2:46"},"src":"1364:21:46"}],"scope":17567,"src":"301:1086:46","usedErrors":[17519,17528,17535,17538,17541,17544,17553,17562,17565],"usedEvents":[]}],"src":"36:1352:46"},"id":46},"contracts/shared/BoostLib.sol":{"ast":{"absolutePath":"contracts/shared/BoostLib.sol","exportedSymbols":{"Action":[12758],"AllowList":[13154],"BoostLib":[17652],"Budget":[13669],"Cloneable":[17720],"Incentive":[17260],"LibClone":[10092],"LibZip":[11014],"Validator":[18282]},"id":17653,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17568,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:47"},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":17570,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":10093,"src":"62:52:47","symbolAliases":[{"foreign":{"id":17569,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"70:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibZip.sol","file":"@solady/utils/LibZip.sol","id":17572,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":11015,"src":"115:48:47","symbolAliases":[{"foreign":{"id":17571,"name":"LibZip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"123:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":17574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":12759,"src":"165:52:47","symbolAliases":[{"foreign":{"id":17573,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"173:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":17576,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":13155,"src":"218:61:47","symbolAliases":[{"foreign":{"id":17575,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"226:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17578,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":13670,"src":"280:52:47","symbolAliases":[{"foreign":{"id":17577,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"288:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":17580,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":17721,"src":"333:57:47","symbolAliases":[{"foreign":{"id":17579,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"341:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":17582,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":17261,"src":"391:61:47","symbolAliases":[{"foreign":{"id":17581,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"399:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":17584,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":18283,"src":"453:61:47","symbolAliases":[{"foreign":{"id":17583,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"461:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"BoostLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":17652,"linearizedBaseContracts":[17652],"name":"BoostLib","nameLocation":"524:8:47","nodeType":"ContractDefinition","nodes":[{"global":false,"id":17587,"libraryName":{"id":17585,"name":"LibClone","nameLocations":["545:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":10092,"src":"545:8:47"},"nodeType":"UsingForDirective","src":"539:27:47","typeName":{"id":17586,"name":"address","nodeType":"ElementaryTypeName","src":"558:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":17590,"libraryName":{"id":17588,"name":"LibZip","nameLocations":["577:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":11014,"src":"577:6:47"},"nodeType":"UsingForDirective","src":"571:23:47","typeName":{"id":17589,"name":"bytes","nodeType":"ElementaryTypeName","src":"588:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"canonicalName":"BoostLib.Boost","documentation":{"id":17591,"nodeType":"StructuredDocumentation","src":"600:48:47","text":"@notice A struct representing a single Boost"},"id":17616,"members":[{"constant":false,"id":17594,"mutability":"mutable","name":"action","nameLocation":"683:6:47","nodeType":"VariableDeclaration","scope":17616,"src":"676:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"},"typeName":{"id":17593,"nodeType":"UserDefinedTypeName","pathNode":{"id":17592,"name":"Action","nameLocations":["676:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":12758,"src":"676:6:47"},"referencedDeclaration":12758,"src":"676:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"visibility":"internal"},{"constant":false,"id":17597,"mutability":"mutable","name":"validator","nameLocation":"709:9:47","nodeType":"VariableDeclaration","scope":17616,"src":"699:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"},"typeName":{"id":17596,"nodeType":"UserDefinedTypeName","pathNode":{"id":17595,"name":"Validator","nameLocations":["699:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"699:9:47"},"referencedDeclaration":18282,"src":"699:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"visibility":"internal"},{"constant":false,"id":17600,"mutability":"mutable","name":"allowList","nameLocation":"738:9:47","nodeType":"VariableDeclaration","scope":17616,"src":"728:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"},"typeName":{"id":17599,"nodeType":"UserDefinedTypeName","pathNode":{"id":17598,"name":"AllowList","nameLocations":["728:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":13154,"src":"728:9:47"},"referencedDeclaration":13154,"src":"728:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"visibility":"internal"},{"constant":false,"id":17603,"mutability":"mutable","name":"budget","nameLocation":"764:6:47","nodeType":"VariableDeclaration","scope":17616,"src":"757:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":17602,"nodeType":"UserDefinedTypeName","pathNode":{"id":17601,"name":"Budget","nameLocations":["757:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"757:6:47"},"referencedDeclaration":13669,"src":"757:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"},{"constant":false,"id":17607,"mutability":"mutable","name":"incentives","nameLocation":"792:10:47","nodeType":"VariableDeclaration","scope":17616,"src":"780:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"},"typeName":{"baseType":{"id":17605,"nodeType":"UserDefinedTypeName","pathNode":{"id":17604,"name":"Incentive","nameLocations":["780:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"780:9:47"},"referencedDeclaration":17260,"src":"780:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":17606,"nodeType":"ArrayTypeName","src":"780:11:47","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"}},"visibility":"internal"},{"constant":false,"id":17609,"mutability":"mutable","name":"protocolFee","nameLocation":"819:11:47","nodeType":"VariableDeclaration","scope":17616,"src":"812:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17608,"name":"uint64","nodeType":"ElementaryTypeName","src":"812:6:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":17611,"mutability":"mutable","name":"referralFee","nameLocation":"847:11:47","nodeType":"VariableDeclaration","scope":17616,"src":"840:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17610,"name":"uint64","nodeType":"ElementaryTypeName","src":"840:6:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":17613,"mutability":"mutable","name":"maxParticipants","nameLocation":"876:15:47","nodeType":"VariableDeclaration","scope":17616,"src":"868:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17612,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17615,"mutability":"mutable","name":"owner","nameLocation":"909:5:47","nodeType":"VariableDeclaration","scope":17616,"src":"901:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17614,"name":"address","nodeType":"ElementaryTypeName","src":"901:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Boost","nameLocation":"660:5:47","nodeType":"StructDefinition","scope":17652,"src":"653:268:47","visibility":"public"},{"canonicalName":"BoostLib.Target","documentation":{"id":17617,"nodeType":"StructuredDocumentation","src":"927:183:47","text":"@notice A base struct for a contract and its initialization parameters\n @dev This is used to pass the base contract and its initialization parameters in an efficient manner"},"id":17624,"members":[{"constant":false,"id":17619,"mutability":"mutable","name":"isBase","nameLocation":"1144:6:47","nodeType":"VariableDeclaration","scope":17624,"src":"1139:11:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17618,"name":"bool","nodeType":"ElementaryTypeName","src":"1139:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17621,"mutability":"mutable","name":"instance","nameLocation":"1168:8:47","nodeType":"VariableDeclaration","scope":17624,"src":"1160:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17620,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17623,"mutability":"mutable","name":"parameters","nameLocation":"1192:10:47","nodeType":"VariableDeclaration","scope":17624,"src":"1186:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":17622,"name":"bytes","nodeType":"ElementaryTypeName","src":"1186:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Target","nameLocation":"1122:6:47","nodeType":"StructDefinition","scope":17652,"src":"1115:94:47","visibility":"public"},{"body":{"id":17650,"nodeType":"Block","src":"1638:164:47","statements":[{"expression":{"id":17641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17636,"name":"_clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17634,"src":"1648:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17639,"name":"salt_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17629,"src":"1678:5:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":17637,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17627,"src":"1657:1:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1659:18:47","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":9296,"src":"1657:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":17640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1657:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1648:36:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17642,"nodeType":"ExpressionStatement","src":"1648:36:47"},{"expression":{"arguments":[{"id":17647,"name":"initData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17631,"src":"1785:9:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":17644,"name":"_clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17634,"src":"1766:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17643,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"1756:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":17646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1774:10:47","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17697,"src":"1756:28:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":17648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17649,"nodeType":"ExpressionStatement","src":"1756:39:47"}]},"documentation":{"id":17625,"nodeType":"StructuredDocumentation","src":"1215:306:47","text":"@notice Clone and initialize a contract with a deterministic salt\n @param $ The contract to clone and initialize\n @param salt_ The salt for the deterministic clone\n @param initData_ The initialization data for the contract\n @return _clone The cloned and initialized contract"},"id":17651,"implemented":true,"kind":"function","modifiers":[],"name":"cloneAndInitialize","nameLocation":"1535:18:47","nodeType":"FunctionDefinition","parameters":{"id":17632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17627,"mutability":"mutable","name":"$","nameLocation":"1562:1:47","nodeType":"VariableDeclaration","scope":17651,"src":"1554:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17626,"name":"address","nodeType":"ElementaryTypeName","src":"1554:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17629,"mutability":"mutable","name":"salt_","nameLocation":"1573:5:47","nodeType":"VariableDeclaration","scope":17651,"src":"1565:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1565:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17631,"mutability":"mutable","name":"initData_","nameLocation":"1593:9:47","nodeType":"VariableDeclaration","scope":17651,"src":"1580:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17630,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1553:50:47"},"returnParameters":{"id":17635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17634,"mutability":"mutable","name":"_clone","nameLocation":"1630:6:47","nodeType":"VariableDeclaration","scope":17651,"src":"1622:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17633,"name":"address","nodeType":"ElementaryTypeName","src":"1622:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1621:16:47"},"scope":17652,"src":"1526:276:47","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":17653,"src":"516:1288:47","usedErrors":[],"usedEvents":[]}],"src":"36:1769:47"},"id":47},"contracts/shared/Cloneable.sol":{"ast":{"absolutePath":"contracts/shared/Cloneable.sol","exportedSymbols":{"Cloneable":[17720],"ERC165":[2845],"Initializable":[9225]},"id":17721,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17654,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:48"},{"absolutePath":"@solady/utils/Initializable.sol","file":"@solady/utils/Initializable.sol","id":17656,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17721,"sourceUnit":9226,"src":"62:62:48","symbolAliases":[{"foreign":{"id":17655,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9225,"src":"70:13:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":17658,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17721,"sourceUnit":2846,"src":"125:78:48","symbolAliases":[{"foreign":{"id":17657,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"133:6:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":17660,"name":"Initializable","nameLocations":["325:13:48"],"nodeType":"IdentifierPath","referencedDeclaration":9225,"src":"325:13:48"},"id":17661,"nodeType":"InheritanceSpecifier","src":"325:13:48"},{"baseName":{"id":17662,"name":"ERC165","nameLocations":["340:6:48"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"340:6:48"},"id":17663,"nodeType":"InheritanceSpecifier","src":"340:6:48"}],"canonicalName":"Cloneable","contractDependencies":[],"contractKind":"contract","documentation":{"id":17659,"nodeType":"StructuredDocumentation","src":"205:89:48","text":"@title Cloneable\n @notice A contract that can be cloned and initialized only once"},"fullyImplemented":true,"id":17720,"linearizedBaseContracts":[17720,2845,2857,9225],"name":"Cloneable","nameLocation":"312:9:48","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17664,"nodeType":"StructuredDocumentation","src":"353:90:48","text":"@notice Thrown when an inheriting contract does not implement the initializer function"},"errorSelector":"7a7da9f8","id":17666,"name":"InitializerNotImplemented","nameLocation":"454:25:48","nodeType":"ErrorDefinition","parameters":{"id":17665,"nodeType":"ParameterList","parameters":[],"src":"479:2:48"},"src":"448:34:48"},{"documentation":{"id":17667,"nodeType":"StructuredDocumentation","src":"488:202:48","text":"@notice Thrown when the provided initialization data is invalid\n @dev This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)"},"errorSelector":"69d23ad9","id":17669,"name":"InvalidInitializationData","nameLocation":"701:25:48","nodeType":"ErrorDefinition","parameters":{"id":17668,"nodeType":"ParameterList","parameters":[],"src":"726:2:48"},"src":"695:34:48"},{"documentation":{"id":17670,"nodeType":"StructuredDocumentation","src":"735:65:48","text":"@notice Thrown when the contract has already been initialized"},"errorSelector":"6947c876","id":17672,"name":"CloneAlreadyInitialized","nameLocation":"811:23:48","nodeType":"ErrorDefinition","parameters":{"id":17671,"nodeType":"ParameterList","parameters":[],"src":"834:2:48"},"src":"805:32:48"},{"body":{"id":17684,"nodeType":"Block","src":"1086:95:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":17678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17675,"name":"_getInitializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9211,"src":"1100:22:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":17676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1128:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:29:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17682,"nodeType":"IfStatement","src":"1096:67:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17679,"name":"CloneAlreadyInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17672,"src":"1138:23:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1138:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17681,"nodeType":"RevertStatement","src":"1131:32:48"}},{"id":17683,"nodeType":"PlaceholderStatement","src":"1173:1:48"}]},"documentation":{"id":17673,"nodeType":"StructuredDocumentation","src":"843:202:48","text":"@notice A modifier to restrict a function to only be called before initialization\n @dev This is intended to enforce that a function can only be called before the contract has been initialized"},"id":17685,"name":"onlyBeforeInitialization","nameLocation":"1059:24:48","nodeType":"ModifierDefinition","parameters":{"id":17674,"nodeType":"ParameterList","parameters":[],"src":"1083:2:48"},"src":"1050:131:48","virtual":false,"visibility":"internal"},{"body":{"id":17696,"nodeType":"Block","src":"1566:51:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17693,"name":"InitializerNotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17666,"src":"1583:25:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17695,"nodeType":"RevertStatement","src":"1576:34:48"}]},"documentation":{"id":17686,"nodeType":"StructuredDocumentation","src":"1187:311:48","text":"@notice Initialize the clone with the given arbitrary data\n @param - The compressed initialization data (if required)\n @dev The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}\n @dev All implementations must override this function to initialize the contract"},"functionSelector":"439fab91","id":17697,"implemented":true,"kind":"function","modifiers":[{"id":17691,"kind":"modifierInvocation","modifierName":{"id":17690,"name":"initializer","nameLocations":["1554:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1554:11:48"},"nodeType":"ModifierInvocation","src":"1554:11:48"}],"name":"initialize","nameLocation":"1512:10:48","nodeType":"FunctionDefinition","parameters":{"id":17689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17697,"src":"1523:14:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17687,"name":"bytes","nodeType":"ElementaryTypeName","src":"1523:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1522:16:48"},"returnParameters":{"id":17692,"nodeType":"ParameterList","parameters":[],"src":"1566:0:48"},"scope":17720,"src":"1503:114:48","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2844],"body":{"id":17718,"nodeType":"Block","src":"1920:106:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17706,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17700,"src":"1937:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17708,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"1957:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}],"id":17707,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1952:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:15:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Cloneable_$17720","typeString":"type(contract Cloneable)"}},"id":17710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1968:11:48","memberName":"interfaceId","nodeType":"MemberAccess","src":"1952:27:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1937:42:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":17714,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17700,"src":"2007:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17712,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1983:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Cloneable_$17720_$","typeString":"type(contract super Cloneable)"}},"id":17713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1989:17:48","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2844,"src":"1983:23:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1937:82:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17705,"id":17717,"nodeType":"Return","src":"1930:89:48"}]},"documentation":{"id":17698,"nodeType":"StructuredDocumentation","src":"1623:201:48","text":"@inheritdoc ERC165\n @notice Check if the contract supports the given interface\n @param interfaceId The interface identifier\n @return True if the contract supports the interface"},"functionSelector":"01ffc9a7","id":17719,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1838:17:48","nodeType":"FunctionDefinition","overrides":{"id":17702,"nodeType":"OverrideSpecifier","overrides":[],"src":"1896:8:48"},"parameters":{"id":17701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17700,"mutability":"mutable","name":"interfaceId","nameLocation":"1863:11:48","nodeType":"VariableDeclaration","scope":17719,"src":"1856:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17699,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1856:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1855:20:48"},"returnParameters":{"id":17705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17719,"src":"1914:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17703,"name":"bool","nodeType":"ElementaryTypeName","src":"1914:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1913:6:48"},"scope":17720,"src":"1829:197:48","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17721,"src":"294:1734:48","usedErrors":[9117,9120,17666,17669,17672],"usedEvents":[9125]}],"src":"36:1993:48"},"id":48},"contracts/shared/Mocks.sol":{"ast":{"absolutePath":"contracts/shared/Mocks.sol","exportedSymbols":{"ERC1155":[1067],"ERC20":[8369],"ERC721":[9111],"LibString":[10964],"MockERC1155":[17900],"MockERC20":[17856],"MockERC721":[17798]},"id":17901,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17722,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:49"},{"absolutePath":"@solady/utils/LibString.sol","file":"@solady/utils/LibString.sol","id":17724,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":10965,"src":"62:54:49","symbolAliases":[{"foreign":{"id":17723,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10964,"src":"70:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/tokens/ERC20.sol","file":"@solady/tokens/ERC20.sol","id":17726,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":8370,"src":"117:47:49","symbolAliases":[{"foreign":{"id":17725,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"125:5:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":17728,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":9112,"src":"165:49:49","symbolAliases":[{"foreign":{"id":17727,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"173:6:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","id":17730,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":1068,"src":"215:74:49","symbolAliases":[{"foreign":{"id":17729,"name":"ERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"223:7:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17732,"name":"ERC721","nameLocations":["702:6:49"],"nodeType":"IdentifierPath","referencedDeclaration":9111,"src":"702:6:49"},"id":17733,"nodeType":"InheritanceSpecifier","src":"702:6:49"}],"canonicalName":"MockERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":17731,"nodeType":"StructuredDocumentation","src":"597:82:49","text":"@title MockERC721\n @notice A mock ERC721 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":17798,"linearizedBaseContracts":[17798,9111],"name":"MockERC721","nameLocation":"688:10:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"18160ddd","id":17735,"mutability":"mutable","name":"totalSupply","nameLocation":"730:11:49","nodeType":"VariableDeclaration","scope":17798,"src":"715:26:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17734,"name":"uint256","nodeType":"ElementaryTypeName","src":"715:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"6817c76c","id":17738,"mutability":"mutable","name":"mintPrice","nameLocation":"762:9:49","nodeType":"VariableDeclaration","scope":17798,"src":"747:36:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17736,"name":"uint256","nodeType":"ElementaryTypeName","src":"747:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e31","id":17737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:9:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"visibility":"public"},{"baseFunctions":[8455],"body":{"id":17746,"nodeType":"Block","src":"851:37:49","statements":[{"expression":{"hexValue":"4d6f636b20455243373231","id":17744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"868:13:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_54fc097defce4be279e9eebd3ed864140ee862e10a1ac2ceb77f264a0e7df328","typeString":"literal_string \"Mock ERC721\""},"value":"Mock ERC721"},"functionReturnParameters":17743,"id":17745,"nodeType":"Return","src":"861:20:49"}]},"functionSelector":"06fdde03","id":17747,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"799:4:49","nodeType":"FunctionDefinition","overrides":{"id":17740,"nodeType":"OverrideSpecifier","overrides":[],"src":"818:8:49"},"parameters":{"id":17739,"nodeType":"ParameterList","parameters":[],"src":"803:2:49"},"returnParameters":{"id":17743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17747,"src":"836:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17741,"name":"string","nodeType":"ElementaryTypeName","src":"836:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"835:15:49"},"scope":17798,"src":"790:98:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8461],"body":{"id":17755,"nodeType":"Block","src":"957:30:49","statements":[{"expression":{"hexValue":"4d4f434b","id":17753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"974:6:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c517c66587983dacbde85dde74f9eb525b7881b1753cee39b9677a9d863af0","typeString":"literal_string \"MOCK\""},"value":"MOCK"},"functionReturnParameters":17752,"id":17754,"nodeType":"Return","src":"967:13:49"}]},"functionSelector":"95d89b41","id":17756,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"903:6:49","nodeType":"FunctionDefinition","overrides":{"id":17749,"nodeType":"OverrideSpecifier","overrides":[],"src":"924:8:49"},"parameters":{"id":17748,"nodeType":"ParameterList","parameters":[],"src":"909:2:49"},"returnParameters":{"id":17752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17756,"src":"942:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17750,"name":"string","nodeType":"ElementaryTypeName","src":"942:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"941:15:49"},"scope":17798,"src":"894:93:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":17775,"nodeType":"Block","src":"1034:158:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1052:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1056:5:49","memberName":"value","nodeType":"MemberAccess","src":"1052:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":17764,"name":"mintPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17738,"src":"1065:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e657921","id":17766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1076:31:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","typeString":"literal_string \"MockERC721: gimme more money!\""},"value":"MockERC721: gimme more money!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","typeString":"literal_string \"MockERC721: gimme more money!\""}],"id":17761,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1044:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17768,"nodeType":"ExpressionStatement","src":"1044:64:49"},{"expression":{"arguments":[{"id":17770,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17758,"src":"1167:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1171:13:49","subExpression":{"id":17771,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17735,"src":"1173:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17769,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"1161:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17774,"nodeType":"ExpressionStatement","src":"1161:24:49"}]},"functionSelector":"6a627842","id":17776,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1002:4:49","nodeType":"FunctionDefinition","parameters":{"id":17759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17758,"mutability":"mutable","name":"to","nameLocation":"1015:2:49","nodeType":"VariableDeclaration","scope":17776,"src":"1007:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17757,"name":"address","nodeType":"ElementaryTypeName","src":"1007:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1006:12:49"},"returnParameters":{"id":17760,"nodeType":"ParameterList","parameters":[],"src":"1034:0:49"},"scope":17798,"src":"993:199:49","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[8469],"body":{"id":17796,"nodeType":"Block","src":"1281:102:49","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f","id":17788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:28:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","typeString":"literal_string \"https://example.com/token/\""},"value":"https://example.com/token/"},{"arguments":[{"id":17791,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17778,"src":"1371:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17789,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10964,"src":"1352:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibString_$10964_$","typeString":"type(library LibString)"}},"id":17790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1362:8:49","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":10334,"src":"1352:18:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1352:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","typeString":"literal_string \"https://example.com/token/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1305:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1309:12:49","memberName":"encodePacked","nodeType":"MemberAccess","src":"1305:16:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1305:70:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1298:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17784,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:49","typeDescriptions":{}}},"id":17794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1298:78:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":17783,"id":17795,"nodeType":"Return","src":"1291:85:49"}]},"functionSelector":"c87b56dd","id":17797,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1207:8:49","nodeType":"FunctionDefinition","overrides":{"id":17780,"nodeType":"OverrideSpecifier","overrides":[],"src":"1248:8:49"},"parameters":{"id":17779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17778,"mutability":"mutable","name":"id","nameLocation":"1224:2:49","nodeType":"VariableDeclaration","scope":17797,"src":"1216:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17777,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:12:49"},"returnParameters":{"id":17783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17797,"src":"1266:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17781,"name":"string","nodeType":"ElementaryTypeName","src":"1266:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1265:15:49"},"scope":17798,"src":"1198:185:49","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17901,"src":"679:706:49","usedErrors":[8379,8382,8385,8388,8391,8394,8397,8400],"usedEvents":[8409,8418,8427]},{"abstract":false,"baseContracts":[{"baseName":{"id":17800,"name":"ERC20","nameLocations":["1489:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":8369,"src":"1489:5:49"},"id":17801,"nodeType":"InheritanceSpecifier","src":"1489:5:49"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":17799,"nodeType":"StructuredDocumentation","src":"1387:80:49","text":"@title MockERC20\n @notice A mock ERC20 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":17856,"linearizedBaseContracts":[17856,8369],"name":"MockERC20","nameLocation":"1476:9:49","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[8038],"body":{"id":17809,"nodeType":"Block","src":"1562:36:49","statements":[{"expression":{"hexValue":"4d6f636b204552433230","id":17807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1579:12:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5c9260bf133e670eeaf4d41f5c4289fc23bb146bf11ba8fa70a2ea91ba1a330","typeString":"literal_string \"Mock ERC20\""},"value":"Mock ERC20"},"functionReturnParameters":17806,"id":17808,"nodeType":"Return","src":"1572:19:49"}]},"functionSelector":"06fdde03","id":17810,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1510:4:49","nodeType":"FunctionDefinition","overrides":{"id":17803,"nodeType":"OverrideSpecifier","overrides":[],"src":"1529:8:49"},"parameters":{"id":17802,"nodeType":"ParameterList","parameters":[],"src":"1514:2:49"},"returnParameters":{"id":17806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17810,"src":"1547:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17804,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1546:15:49"},"scope":17856,"src":"1501:97:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8044],"body":{"id":17818,"nodeType":"Block","src":"1667:30:49","statements":[{"expression":{"hexValue":"4d4f434b","id":17816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:6:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c517c66587983dacbde85dde74f9eb525b7881b1753cee39b9677a9d863af0","typeString":"literal_string \"MOCK\""},"value":"MOCK"},"functionReturnParameters":17815,"id":17817,"nodeType":"Return","src":"1677:13:49"}]},"functionSelector":"95d89b41","id":17819,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1613:6:49","nodeType":"FunctionDefinition","overrides":{"id":17812,"nodeType":"OverrideSpecifier","overrides":[],"src":"1634:8:49"},"parameters":{"id":17811,"nodeType":"ParameterList","parameters":[],"src":"1619:2:49"},"returnParameters":{"id":17815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17819,"src":"1652:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17813,"name":"string","nodeType":"ElementaryTypeName","src":"1652:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1651:15:49"},"scope":17856,"src":"1604:93:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":17831,"nodeType":"Block","src":"1752:34:49","statements":[{"expression":{"arguments":[{"id":17827,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17821,"src":"1768:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17828,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17823,"src":"1772:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17826,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8270,"src":"1762:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1762:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17830,"nodeType":"ExpressionStatement","src":"1762:17:49"}]},"functionSelector":"40c10f19","id":17832,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1712:4:49","nodeType":"FunctionDefinition","parameters":{"id":17824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17821,"mutability":"mutable","name":"to","nameLocation":"1725:2:49","nodeType":"VariableDeclaration","scope":17832,"src":"1717:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17820,"name":"address","nodeType":"ElementaryTypeName","src":"1717:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17823,"mutability":"mutable","name":"amount","nameLocation":"1737:6:49","nodeType":"VariableDeclaration","scope":17832,"src":"1729:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17822,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1716:28:49"},"returnParameters":{"id":17825,"nodeType":"ParameterList","parameters":[],"src":"1752:0:49"},"scope":17856,"src":"1703:83:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17854,"nodeType":"Block","src":"1856:110:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17840,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1874:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1878:5:49","memberName":"value","nodeType":"MemberAccess","src":"1874:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17842,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17836,"src":"1887:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":17843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:3:49","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1887:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1874:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921","id":17846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1901:30:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","typeString":"literal_string \"MockERC20: gimme more money!\""},"value":"MockERC20: gimme more money!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","typeString":"literal_string \"MockERC20: gimme more money!\""}],"id":17839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1866:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:66:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17848,"nodeType":"ExpressionStatement","src":"1866:66:49"},{"expression":{"arguments":[{"id":17850,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17834,"src":"1948:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17851,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17836,"src":"1952:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17849,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8270,"src":"1942:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1942:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17853,"nodeType":"ExpressionStatement","src":"1942:17:49"}]},"functionSelector":"17d304b0","id":17855,"implemented":true,"kind":"function","modifiers":[],"name":"mintPayable","nameLocation":"1801:11:49","nodeType":"FunctionDefinition","parameters":{"id":17837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17834,"mutability":"mutable","name":"to","nameLocation":"1821:2:49","nodeType":"VariableDeclaration","scope":17855,"src":"1813:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17833,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17836,"mutability":"mutable","name":"amount","nameLocation":"1833:6:49","nodeType":"VariableDeclaration","scope":17855,"src":"1825:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1825:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:28:49"},"returnParameters":{"id":17838,"nodeType":"ParameterList","parameters":[],"src":"1856:0:49"},"scope":17856,"src":"1792:174:49","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":17901,"src":"1467:501:49","usedErrors":[7956,7959,7962,7965,7968,7971,7974],"usedEvents":[7983,7992]},{"abstract":false,"baseContracts":[{"baseName":{"id":17858,"name":"ERC1155","nameLocations":["2078:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":1067,"src":"2078:7:49"},"id":17859,"nodeType":"InheritanceSpecifier","src":"2078:7:49"}],"canonicalName":"MockERC1155","contractDependencies":[],"contractKind":"contract","documentation":{"id":17857,"nodeType":"StructuredDocumentation","src":"1970:84:49","text":"@title MockERC1155\n @notice A mock ERC1155 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":17900,"linearizedBaseContracts":[17900,1067,150,1248,1190,2845,2857,2320],"name":"MockERC1155","nameLocation":"2063:11:49","nodeType":"ContractDefinition","nodes":[{"body":{"id":17865,"nodeType":"Block","src":"2148:2:49","statements":[]},"id":17866,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f7b69647d","id":17862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2114:32:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_235f953ca31be89610a3901e42cadd905e053724b9df69362aa305b503d4ed6d","typeString":"literal_string \"https://example.com/token/{id}\""},"value":"https://example.com/token/{id}"}],"id":17863,"kind":"baseConstructorSpecifier","modifierName":{"id":17861,"name":"ERC1155","nameLocations":["2106:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":1067,"src":"2106:7:49"},"nodeType":"ModifierInvocation","src":"2106:41:49"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17860,"nodeType":"ParameterList","parameters":[],"src":"2103:2:49"},"returnParameters":{"id":17864,"nodeType":"ParameterList","parameters":[],"src":"2148:0:49"},"scope":17900,"src":"2092:58:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17882,"nodeType":"Block","src":"2217:42:49","statements":[{"expression":{"arguments":[{"id":17876,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17868,"src":"2233:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17877,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17870,"src":"2237:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17878,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17872,"src":"2241:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":17879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2249:2:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":17875,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":880,"src":"2227:5:49","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":17880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17881,"nodeType":"ExpressionStatement","src":"2227:25:49"}]},"functionSelector":"156e29f6","id":17883,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"2165:4:49","nodeType":"FunctionDefinition","parameters":{"id":17873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17868,"mutability":"mutable","name":"to","nameLocation":"2178:2:49","nodeType":"VariableDeclaration","scope":17883,"src":"2170:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17867,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17870,"mutability":"mutable","name":"id","nameLocation":"2190:2:49","nodeType":"VariableDeclaration","scope":17883,"src":"2182:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2182:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17872,"mutability":"mutable","name":"amount","nameLocation":"2202:6:49","nodeType":"VariableDeclaration","scope":17883,"src":"2194:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2194:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2169:40:49"},"returnParameters":{"id":17874,"nodeType":"ParameterList","parameters":[],"src":"2217:0:49"},"scope":17900,"src":"2156:103:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17898,"nodeType":"Block","src":"2328:40:49","statements":[{"expression":{"arguments":[{"id":17893,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17885,"src":"2344:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17894,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17887,"src":"2350:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17895,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17889,"src":"2354:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17892,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"2338:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":17896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17897,"nodeType":"ExpressionStatement","src":"2338:23:49"}]},"functionSelector":"f5298aca","id":17899,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2274:4:49","nodeType":"FunctionDefinition","parameters":{"id":17890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17885,"mutability":"mutable","name":"from","nameLocation":"2287:4:49","nodeType":"VariableDeclaration","scope":17899,"src":"2279:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17884,"name":"address","nodeType":"ElementaryTypeName","src":"2279:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17887,"mutability":"mutable","name":"id","nameLocation":"2301:2:49","nodeType":"VariableDeclaration","scope":17899,"src":"2293:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17886,"name":"uint256","nodeType":"ElementaryTypeName","src":"2293:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17889,"mutability":"mutable","name":"amount","nameLocation":"2313:6:49","nodeType":"VariableDeclaration","scope":17899,"src":"2305:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17888,"name":"uint256","nodeType":"ElementaryTypeName","src":"2305:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2278:42:49"},"returnParameters":{"id":17891,"nodeType":"ParameterList","parameters":[],"src":"2328:0:49"},"scope":17900,"src":"2265:103:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":17901,"src":"2054:316:49","usedErrors":[115,120,125,132,137,142,149],"usedEvents":[1087,1102,1111,1118]}],"src":"36:2335:49"},"id":49},"contracts/tokens/Points.sol":{"ast":{"absolutePath":"contracts/tokens/Points.sol","exportedSymbols":{"ERC20":[8369],"Initializable":[9225],"OwnableRoles":[7950],"Points":[18026]},"id":18027,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17902,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"32:24:50"},{"absolutePath":"@solady/tokens/ERC20.sol","file":"@solady/tokens/ERC20.sol","id":17904,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18027,"sourceUnit":8370,"src":"58:47:50","symbolAliases":[{"foreign":{"id":17903,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"66:5:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/Initializable.sol","file":"@solady/utils/Initializable.sol","id":17906,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18027,"sourceUnit":9226,"src":"106:62:50","symbolAliases":[{"foreign":{"id":17905,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9225,"src":"114:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/auth/OwnableRoles.sol","file":"@solady/auth/OwnableRoles.sol","id":17908,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18027,"sourceUnit":7951,"src":"169:59:50","symbolAliases":[{"foreign":{"id":17907,"name":"OwnableRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"177:12:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17910,"name":"ERC20","nameLocations":["413:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":8369,"src":"413:5:50"},"id":17911,"nodeType":"InheritanceSpecifier","src":"413:5:50"},{"baseName":{"id":17912,"name":"Initializable","nameLocations":["420:13:50"],"nodeType":"IdentifierPath","referencedDeclaration":9225,"src":"420:13:50"},"id":17913,"nodeType":"InheritanceSpecifier","src":"420:13:50"},{"baseName":{"id":17914,"name":"OwnableRoles","nameLocations":["435:12:50"],"nodeType":"IdentifierPath","referencedDeclaration":7950,"src":"435:12:50"},"id":17915,"nodeType":"InheritanceSpecifier","src":"435:12:50"}],"canonicalName":"Points","contractDependencies":[],"contractKind":"contract","documentation":{"id":17909,"nodeType":"StructuredDocumentation","src":"230:164:50","text":"@title Points\n @notice A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred."},"fullyImplemented":true,"id":18026,"linearizedBaseContracts":[18026,7950,6423,9225,8369],"name":"Points","nameLocation":"403:6:50","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":17917,"mutability":"mutable","name":"_name","nameLocation":"469:5:50","nodeType":"VariableDeclaration","scope":18026,"src":"454:20:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17916,"name":"string","nodeType":"ElementaryTypeName","src":"454:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":17919,"mutability":"mutable","name":"_symbol","nameLocation":"495:7:50","nodeType":"VariableDeclaration","scope":18026,"src":"480:22:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17918,"name":"string","nodeType":"ElementaryTypeName","src":"480:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":true,"documentation":{"id":17920,"nodeType":"StructuredDocumentation","src":"509:39:50","text":"@notice The role for issuing points"},"functionSelector":"82aefa24","id":17925,"mutability":"constant","name":"ISSUER_ROLE","nameLocation":"577:11:50","nodeType":"VariableDeclaration","scope":18026,"src":"553:44:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17921,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":17924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":17922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"591:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":17923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"596:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"591:6:50","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"public"},{"documentation":{"id":17926,"nodeType":"StructuredDocumentation","src":"604:61:50","text":"@notice Thrown when an attempt is made to transfer points"},"errorSelector":"9cbe2357","id":17928,"name":"NonTransferable","nameLocation":"676:15:50","nodeType":"ErrorDefinition","parameters":{"id":17927,"nodeType":"ParameterList","parameters":[],"src":"691:2:50"},"src":"670:24:50"},{"body":{"id":17958,"nodeType":"Block","src":"1000:140:50","statements":[{"expression":{"arguments":[{"expression":{"id":17941,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1027:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1031:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1027:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17940,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1010:16:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17944,"nodeType":"ExpressionStatement","src":"1010:28:50"},{"expression":{"id":17947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17945,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17917,"src":"1049:5:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17946,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17931,"src":"1057:5:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1049:13:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17948,"nodeType":"ExpressionStatement","src":"1049:13:50"},{"expression":{"id":17951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17949,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17919,"src":"1072:7:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17950,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17933,"src":"1082:7:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1072:17:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17952,"nodeType":"ExpressionStatement","src":"1072:17:50"},{"expression":{"arguments":[{"id":17954,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17935,"src":"1112:7:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17955,"name":"ISSUER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"1121:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17953,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6482,"src":"1100:11:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17957,"nodeType":"ExpressionStatement","src":"1100:33:50"}]},"documentation":{"id":17929,"nodeType":"StructuredDocumentation","src":"700:193:50","text":"@notice Initialize the Points contract\n @param name_ The name of the token\n @param symbol_ The symbol of the token\n @param minter_ The initial holder of the minter role"},"functionSelector":"077f224a","id":17959,"implemented":true,"kind":"function","modifiers":[{"id":17938,"kind":"modifierInvocation","modifierName":{"id":17937,"name":"initializer","nameLocations":["988:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"988:11:50"},"nodeType":"ModifierInvocation","src":"988:11:50"}],"name":"initialize","nameLocation":"907:10:50","nodeType":"FunctionDefinition","parameters":{"id":17936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17931,"mutability":"mutable","name":"name_","nameLocation":"932:5:50","nodeType":"VariableDeclaration","scope":17959,"src":"918:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17930,"name":"string","nodeType":"ElementaryTypeName","src":"918:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17933,"mutability":"mutable","name":"symbol_","nameLocation":"953:7:50","nodeType":"VariableDeclaration","scope":17959,"src":"939:21:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17932,"name":"string","nodeType":"ElementaryTypeName","src":"939:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17935,"mutability":"mutable","name":"minter_","nameLocation":"970:7:50","nodeType":"VariableDeclaration","scope":17959,"src":"962:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17934,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"917:61:50"},"returnParameters":{"id":17939,"nodeType":"ParameterList","parameters":[],"src":"1000:0:50"},"scope":18026,"src":"898:242:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17975,"nodeType":"Block","src":"1396:34:50","statements":[{"expression":{"arguments":[{"id":17971,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"1412:2:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17972,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17964,"src":"1416:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17970,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8270,"src":"1406:5:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1406:17:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17974,"nodeType":"ExpressionStatement","src":"1406:17:50"}]},"documentation":{"id":17960,"nodeType":"StructuredDocumentation","src":"1146:163:50","text":"@notice Issue `amount` points and assign them to `to`\n @param to The address to assign the points to\n @param amount The amount of points to issue"},"functionSelector":"867904b4","id":17976,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17967,"name":"ISSUER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"1383:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17968,"kind":"modifierInvocation","modifierName":{"id":17966,"name":"onlyOwnerOrRoles","nameLocations":["1366:16:50"],"nodeType":"IdentifierPath","referencedDeclaration":6658,"src":"1366:16:50"},"nodeType":"ModifierInvocation","src":"1366:29:50"}],"name":"issue","nameLocation":"1323:5:50","nodeType":"FunctionDefinition","parameters":{"id":17965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17962,"mutability":"mutable","name":"to","nameLocation":"1337:2:50","nodeType":"VariableDeclaration","scope":17976,"src":"1329:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17961,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17964,"mutability":"mutable","name":"amount","nameLocation":"1349:6:50","nodeType":"VariableDeclaration","scope":17976,"src":"1341:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17963,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1328:28:50"},"returnParameters":{"id":17969,"nodeType":"ParameterList","parameters":[],"src":"1396:0:50"},"scope":18026,"src":"1314:116:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8038],"body":{"id":17985,"nodeType":"Block","src":"1569:29:50","statements":[{"expression":{"id":17983,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17917,"src":"1586:5:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":17982,"id":17984,"nodeType":"Return","src":"1579:12:50"}]},"documentation":{"id":17977,"nodeType":"StructuredDocumentation","src":"1436:59:50","text":"@inheritdoc ERC20\n @return The name of the token"},"functionSelector":"06fdde03","id":17986,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1509:4:50","nodeType":"FunctionDefinition","overrides":{"id":17979,"nodeType":"OverrideSpecifier","overrides":[],"src":"1536:8:50"},"parameters":{"id":17978,"nodeType":"ParameterList","parameters":[],"src":"1513:2:50"},"returnParameters":{"id":17982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17986,"src":"1554:13:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17980,"name":"string","nodeType":"ElementaryTypeName","src":"1554:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1553:15:50"},"scope":18026,"src":"1500:98:50","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8044],"body":{"id":17995,"nodeType":"Block","src":"1741:31:50","statements":[{"expression":{"id":17993,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17919,"src":"1758:7:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":17992,"id":17994,"nodeType":"Return","src":"1751:14:50"}]},"documentation":{"id":17987,"nodeType":"StructuredDocumentation","src":"1604:61:50","text":"@inheritdoc ERC20\n @return The symbol of the token"},"functionSelector":"95d89b41","id":17996,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1679:6:50","nodeType":"FunctionDefinition","overrides":{"id":17989,"nodeType":"OverrideSpecifier","overrides":[],"src":"1708:8:50"},"parameters":{"id":17988,"nodeType":"ParameterList","parameters":[],"src":"1685:2:50"},"returnParameters":{"id":17992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17996,"src":"1726:13:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17990,"name":"string","nodeType":"ElementaryTypeName","src":"1726:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1725:15:50"},"scope":18026,"src":"1670:102:50","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8357],"body":{"id":18024,"nodeType":"Block","src":"2077:85:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18007,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"2091:4:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2107:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2099:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18008,"name":"address","nodeType":"ElementaryTypeName","src":"2099:7:50","typeDescriptions":{}}},"id":18011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2099:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2091:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18013,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18001,"src":"2113:2:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2119:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18014,"name":"address","nodeType":"ElementaryTypeName","src":"2119:7:50","typeDescriptions":{}}},"id":18017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2119:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2113:16:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2091:38:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18023,"nodeType":"IfStatement","src":"2087:68:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18020,"name":"NonTransferable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17928,"src":"2138:15:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:17:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18022,"nodeType":"RevertStatement","src":"2131:24:50"}}]},"documentation":{"id":17997,"nodeType":"StructuredDocumentation","src":"1778:203:50","text":"@inheritdoc ERC20\n @notice A hook that is called before any transfer of points\n @dev Reverts if the transfer is not a mint or burn (i.e. if neither `from` nor `to` are the zero address)"},"id":18025,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"1995:20:50","nodeType":"FunctionDefinition","overrides":{"id":18005,"nodeType":"OverrideSpecifier","overrides":[],"src":"2068:8:50"},"parameters":{"id":18004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17999,"mutability":"mutable","name":"from","nameLocation":"2024:4:50","nodeType":"VariableDeclaration","scope":18025,"src":"2016:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17998,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18001,"mutability":"mutable","name":"to","nameLocation":"2038:2:50","nodeType":"VariableDeclaration","scope":18025,"src":"2030:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18000,"name":"address","nodeType":"ElementaryTypeName","src":"2030:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18025,"src":"2042:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2042:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2015:35:50"},"returnParameters":{"id":18006,"nodeType":"ParameterList","parameters":[],"src":"2077:0:50"},"scope":18026,"src":"1986:176:50","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":18027,"src":"394:1770:50","usedErrors":[6235,6238,6241,6244,7956,7959,7962,7965,7968,7971,7974,9117,9120,17928],"usedEvents":[6251,6256,6261,6437,7983,7992,9125]}],"src":"32:2133:50"},"id":50},"contracts/validators/SignerValidator.sol":{"ast":{"absolutePath":"contracts/validators/SignerValidator.sol","exportedSymbols":{"BoostError":[17566],"IERC1271":[13],"SignatureCheckerLib":[11528],"SignerValidator":[18224],"Validator":[18282]},"id":18225,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18028,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:51"},{"absolutePath":"@solady/utils/SignatureCheckerLib.sol","file":"@solady/utils/SignatureCheckerLib.sol","id":18030,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":11529,"src":"62:74:51","symbolAliases":[{"foreign":{"id":18029,"name":"SignatureCheckerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"70:19:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1271.sol","file":"@openzeppelin/contracts/interfaces/IERC1271.sol","id":18032,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":14,"src":"137:73:51","symbolAliases":[{"foreign":{"id":18031,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"145:8:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":18034,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":17567,"src":"212:59:51","symbolAliases":[{"foreign":{"id":18033,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"220:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":18036,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":18283,"src":"272:61:51","symbolAliases":[{"foreign":{"id":18035,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"280:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18038,"name":"Validator","nameLocations":["543:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"543:9:51"},"id":18039,"nodeType":"InheritanceSpecifier","src":"543:9:51"}],"canonicalName":"SignerValidator","contractDependencies":[],"contractKind":"contract","documentation":{"id":18037,"nodeType":"StructuredDocumentation","src":"335:180:51","text":"@title Signer Validator\n @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers"},"fullyImplemented":true,"id":18224,"linearizedBaseContracts":[18224,18282,17720,2845,2857,9225,6423],"name":"SignerValidator","nameLocation":"524:15:51","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18042,"libraryName":{"id":18040,"name":"SignatureCheckerLib","nameLocations":["565:19:51"],"nodeType":"IdentifierPath","referencedDeclaration":11528,"src":"565:19:51"},"nodeType":"UsingForDirective","src":"559:38:51","typeName":{"id":18041,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":18043,"nodeType":"StructuredDocumentation","src":"603:38:51","text":"@dev The set of authorized signers"},"functionSelector":"736c0d5b","id":18047,"mutability":"mutable","name":"signers","nameLocation":"678:7:51","nodeType":"VariableDeclaration","scope":18224,"src":"646:39:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":18046,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18044,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"646:24:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18045,"name":"bool","nodeType":"ElementaryTypeName","src":"665:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":18048,"nodeType":"StructuredDocumentation","src":"692:55:51","text":"@dev The set of used hashes (for replay protection)"},"id":18052,"mutability":"mutable","name":"_used","nameLocation":"785:5:51","nodeType":"VariableDeclaration","scope":18224,"src":"752:38:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":18051,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"760:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"752:24:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18050,"name":"bool","nodeType":"ElementaryTypeName","src":"771:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":18059,"nodeType":"Block","src":"1052:39:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18056,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1062:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18058,"nodeType":"ExpressionStatement","src":"1062:22:51"}]},"documentation":{"id":18053,"nodeType":"StructuredDocumentation","src":"797:236:51","text":"@notice Construct a new SignerValidator\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":18060,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18054,"nodeType":"ParameterList","parameters":[],"src":"1049:2:51"},"returnParameters":{"id":18055,"nodeType":"ParameterList","parameters":[],"src":"1052:0:51"},"scope":18224,"src":"1038:53:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":18110,"nodeType":"Block","src":"1399:223:51","statements":[{"assignments":[18073],"declarations":[{"constant":false,"id":18073,"mutability":"mutable","name":"signers_","nameLocation":"1427:8:51","nodeType":"VariableDeclaration","scope":18110,"src":"1410:25:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":18071,"name":"address","nodeType":"ElementaryTypeName","src":"1410:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18072,"nodeType":"ArrayTypeName","src":"1410:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":18082,"initialValue":{"arguments":[{"id":18076,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18063,"src":"1450:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"baseExpression":{"id":18078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1458:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18077,"name":"address","nodeType":"ElementaryTypeName","src":"1458:7:51","typeDescriptions":{}}},"id":18079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1458:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":18080,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1457:11:51","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}],"expression":{"id":18074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1439:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1443:6:51","memberName":"decode","nodeType":"MemberAccess","src":"1439:10:51","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1439:30:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1409:60:51"},{"expression":{"arguments":[{"baseExpression":{"id":18084,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"1496:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18086,"indexExpression":{"hexValue":"30","id":18085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1505:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1496:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18083,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1479:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1479:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18088,"nodeType":"ExpressionStatement","src":"1479:29:51"},{"body":{"id":18108,"nodeType":"Block","src":"1564:52:51","statements":[{"expression":{"id":18106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18100,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18047,"src":"1578:7:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18104,"indexExpression":{"baseExpression":{"id":18101,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"1586:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18103,"indexExpression":{"id":18102,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1595:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1586:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1578:20:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":18105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1601:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1578:27:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18107,"nodeType":"ExpressionStatement","src":"1578:27:51"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18093,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1538:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":18094,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"1542:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1551:6:51","memberName":"length","nodeType":"MemberAccess","src":"1542:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1538:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18109,"initializationExpression":{"assignments":[18090],"declarations":[{"constant":false,"id":18090,"mutability":"mutable","name":"i","nameLocation":"1531:1:51","nodeType":"VariableDeclaration","scope":18109,"src":"1523:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18089,"name":"uint256","nodeType":"ElementaryTypeName","src":"1523:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18092,"initialValue":{"hexValue":"30","id":18091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1535:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1523:13:51"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":18098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1559:3:51","subExpression":{"id":18097,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1559:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18099,"nodeType":"ExpressionStatement","src":"1559:3:51"},"nodeType":"ForStatement","src":"1518:98:51"}]},"documentation":{"id":18061,"nodeType":"StructuredDocumentation","src":"1097:219:51","text":"@notice Initialize the contract with the list of authorized signers\n @param data_ The compressed list of authorized signers\n @dev The first address in the list will be the initial owner of the contract"},"functionSelector":"439fab91","id":18111,"implemented":true,"kind":"function","modifiers":[{"id":18067,"kind":"modifierInvocation","modifierName":{"id":18066,"name":"initializer","nameLocations":["1387:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1387:11:51"},"nodeType":"ModifierInvocation","src":"1387:11:51"}],"name":"initialize","nameLocation":"1330:10:51","nodeType":"FunctionDefinition","overrides":{"id":18065,"nodeType":"OverrideSpecifier","overrides":[],"src":"1378:8:51"},"parameters":{"id":18064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18063,"mutability":"mutable","name":"data_","nameLocation":"1356:5:51","nodeType":"VariableDeclaration","scope":18111,"src":"1341:20:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18062,"name":"bytes","nodeType":"ElementaryTypeName","src":"1341:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1340:22:51"},"returnParameters":{"id":18068,"nodeType":"ParameterList","parameters":[],"src":"1399:0:51"},"scope":18224,"src":"1321:301:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[18258],"body":{"id":18175,"nodeType":"Block","src":"2146:511:51","statements":[{"assignments":[18121,18123,18125],"declarations":[{"constant":false,"id":18121,"mutability":"mutable","name":"signer_","nameLocation":"2165:7:51","nodeType":"VariableDeclaration","scope":18175,"src":"2157:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18120,"name":"address","nodeType":"ElementaryTypeName","src":"2157:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18123,"mutability":"mutable","name":"hash_","nameLocation":"2182:5:51","nodeType":"VariableDeclaration","scope":18175,"src":"2174:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2174:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18125,"mutability":"mutable","name":"signature_","nameLocation":"2202:10:51","nodeType":"VariableDeclaration","scope":18175,"src":"2189:23:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18124,"name":"bytes","nodeType":"ElementaryTypeName","src":"2189:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18137,"initialValue":{"arguments":[{"id":18128,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18114,"src":"2227:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2235:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18129,"name":"address","nodeType":"ElementaryTypeName","src":"2235:7:51","typeDescriptions":{}}},{"id":18132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2244:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2244:7:51","typeDescriptions":{}}},{"id":18134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2253:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18133,"name":"bytes","nodeType":"ElementaryTypeName","src":"2253:5:51","typeDescriptions":{}}}],"id":18135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2234:25:51","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes32),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes32),type(bytes storage pointer))"}],"expression":{"id":18126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2216:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2220:6:51","memberName":"decode","nodeType":"MemberAccess","src":"2216:10:51","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2216:44:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes32_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes32,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2156:104:51"},{"condition":{"id":18141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2275:17:51","subExpression":{"baseExpression":{"id":18138,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18047,"src":"2276:7:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18140,"indexExpression":{"id":18139,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"2284:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2276:16:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18147,"nodeType":"IfStatement","src":"2271:55:51","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18142,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2301:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":18144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2312:12:51","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"2301:23:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2301:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18146,"nodeType":"RevertStatement","src":"2294:32:51"}},{"condition":{"baseExpression":{"id":18148,"name":"_used","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18052,"src":"2340:5:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18150,"indexExpression":{"id":18149,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2346:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2340:12:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18159,"nodeType":"IfStatement","src":"2336:72:51","trueBody":{"errorCall":{"arguments":[{"id":18154,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"2381:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18155,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2390:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18156,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"2397:10:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18151,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2361:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":18153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2372:8:51","memberName":"Replayed","nodeType":"MemberAccess","referencedDeclaration":17553,"src":"2361:19:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory) pure"}},"id":18157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:47:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18158,"nodeType":"RevertStatement","src":"2354:54:51"}},{"expression":{"id":18164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18160,"name":"_used","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18052,"src":"2471:5:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18162,"indexExpression":{"id":18161,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2477:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2471:12:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":18163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2486:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2471:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18165,"nodeType":"ExpressionStatement","src":"2471:19:51"},{"expression":{"arguments":[{"arguments":[{"id":18170,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2631:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18168,"name":"SignatureCheckerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2588:19:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureCheckerLib_$11528_$","typeString":"type(library SignatureCheckerLib)"}},"id":18169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2608:22:51","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":11509,"src":"2588:42:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":18171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2588:49:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18172,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"2639:10:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18166,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"2560:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2568:19:51","memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":11389,"src":"2560:27:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":18173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2560:90:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18119,"id":18174,"nodeType":"Return","src":"2553:97:51"}]},"documentation":{"id":18112,"nodeType":"StructuredDocumentation","src":"1628:440:51","text":"@notice Validate that the action has been completed successfully\n @param data_ The data payload for the validation check\n @return True if the action has been validated based on the data payload\n @dev The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)\n @dev The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer"},"functionSelector":"c16e50ef","id":18176,"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"2082:8:51","nodeType":"FunctionDefinition","overrides":{"id":18116,"nodeType":"OverrideSpecifier","overrides":[],"src":"2122:8:51"},"parameters":{"id":18115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18114,"mutability":"mutable","name":"data_","nameLocation":"2106:5:51","nodeType":"VariableDeclaration","scope":18176,"src":"2091:20:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18113,"name":"bytes","nodeType":"ElementaryTypeName","src":"2091:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2090:22:51"},"returnParameters":{"id":18119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18176,"src":"2140:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18117,"name":"bool","nodeType":"ElementaryTypeName","src":"2140:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2139:6:51"},"scope":18224,"src":"2073:584:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18222,"nodeType":"Block","src":"2935:212:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18188,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18180,"src":"2949:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2958:6:51","memberName":"length","nodeType":"MemberAccess","src":"2949:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18190,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18183,"src":"2968:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":18191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2980:6:51","memberName":"length","nodeType":"MemberAccess","src":"2968:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2949:37:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18198,"nodeType":"IfStatement","src":"2945:77:51","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18193,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2995:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":18195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3006:14:51","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":17541,"src":"2995:25:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2995:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18197,"nodeType":"RevertStatement","src":"2988:34:51"}},{"body":{"id":18220,"nodeType":"Block","src":"3079:62:51","statements":[{"expression":{"id":18218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18210,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18047,"src":"3093:7:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18214,"indexExpression":{"baseExpression":{"id":18211,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18180,"src":"3101:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18213,"indexExpression":{"id":18212,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3110:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3101:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3093:20:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":18215,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18183,"src":"3116:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":18217,"indexExpression":{"id":18216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3128:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3116:14:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3093:37:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18219,"nodeType":"ExpressionStatement","src":"3093:37:51"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3053:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":18204,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18180,"src":"3057:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3066:6:51","memberName":"length","nodeType":"MemberAccess","src":"3057:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3053:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18221,"initializationExpression":{"assignments":[18200],"declarations":[{"constant":false,"id":18200,"mutability":"mutable","name":"i","nameLocation":"3046:1:51","nodeType":"VariableDeclaration","scope":18221,"src":"3038:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18199,"name":"uint256","nodeType":"ElementaryTypeName","src":"3038:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18202,"initialValue":{"hexValue":"30","id":18201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3050:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3038:13:51"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":18208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3074:3:51","subExpression":{"id":18207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3074:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18209,"nodeType":"ExpressionStatement","src":"3074:3:51"},"nodeType":"ForStatement","src":"3033:108:51"}]},"documentation":{"id":18177,"nodeType":"StructuredDocumentation","src":"2663:167:51","text":"@notice Set the authorized status of a signer\n @param signers_ The list of signers to update\n @param authorized_ The authorized status of each signer"},"functionSelector":"4359d28a","id":18223,"implemented":true,"kind":"function","modifiers":[{"id":18186,"kind":"modifierInvocation","modifierName":{"id":18185,"name":"onlyOwner","nameLocations":["2925:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"2925:9:51"},"nodeType":"ModifierInvocation","src":"2925:9:51"}],"name":"setAuthorized","nameLocation":"2844:13:51","nodeType":"FunctionDefinition","parameters":{"id":18184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18180,"mutability":"mutable","name":"signers_","nameLocation":"2877:8:51","nodeType":"VariableDeclaration","scope":18223,"src":"2858:27:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":18178,"name":"address","nodeType":"ElementaryTypeName","src":"2858:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18179,"nodeType":"ArrayTypeName","src":"2858:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":18183,"mutability":"mutable","name":"authorized_","nameLocation":"2903:11:51","nodeType":"VariableDeclaration","scope":18223,"src":"2887:27:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":18181,"name":"bool","nodeType":"ElementaryTypeName","src":"2887:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18182,"nodeType":"ArrayTypeName","src":"2887:6:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2857:58:51"},"returnParameters":{"id":18187,"nodeType":"ParameterList","parameters":[],"src":"2935:0:51"},"scope":18224,"src":"2835:312:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":18225,"src":"515:2634:51","usedErrors":[6235,6238,6241,6244,9117,9120,17541,17553,17565,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:3114:51"},"id":51},"contracts/validators/Validator.sol":{"ast":{"absolutePath":"contracts/validators/Validator.sol","exportedSymbols":{"Cloneable":[17720],"Ownable":[6423],"Validator":[18282]},"id":18283,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18226,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:52"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":18228,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18283,"sourceUnit":6424,"src":"62:49:52","symbolAliases":[{"foreign":{"id":18227,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":18230,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18283,"sourceUnit":17721,"src":"113:57:52","symbolAliases":[{"foreign":{"id":18229,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"121:9:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":18232,"name":"Ownable","nameLocations":["461:7:52"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"461:7:52"},"id":18233,"nodeType":"InheritanceSpecifier","src":"461:7:52"},{"baseName":{"id":18234,"name":"Cloneable","nameLocations":["470:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"470:9:52"},"id":18235,"nodeType":"InheritanceSpecifier","src":"470:9:52"}],"canonicalName":"Validator","contractDependencies":[],"contractKind":"contract","documentation":{"id":18231,"nodeType":"StructuredDocumentation","src":"172:258:52","text":"@title Boost Validator\n @notice Abstract contract for a generic Validator within the Boost protocol\n @dev Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":18282,"linearizedBaseContracts":[18282,17720,2845,2857,9225,6423],"name":"Validator","nameLocation":"448:9:52","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Validator.ValidatePayload","id":18240,"members":[{"constant":false,"id":18237,"mutability":"mutable","name":"target","nameLocation":"527:6:52","nodeType":"VariableDeclaration","scope":18240,"src":"519:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18236,"name":"address","nodeType":"ElementaryTypeName","src":"519:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18239,"mutability":"mutable","name":"data","nameLocation":"549:4:52","nodeType":"VariableDeclaration","scope":18240,"src":"543:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":18238,"name":"bytes","nodeType":"ElementaryTypeName","src":"543:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatePayload","nameLocation":"493:15:52","nodeType":"StructDefinition","scope":18282,"src":"486:74:52","visibility":"public"},{"body":{"id":18249,"nodeType":"Block","src":"693:45:52","statements":[{"expression":{"arguments":[{"expression":{"id":18245,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"720:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"724:6:52","memberName":"sender","nodeType":"MemberAccess","src":"720:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18244,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"703:16:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:28:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18248,"nodeType":"ExpressionStatement","src":"703:28:52"}]},"documentation":{"id":18241,"nodeType":"StructuredDocumentation","src":"566:108:52","text":"@notice Initialize the contract and set the owner\n @dev The owner is set to the contract deployer"},"id":18250,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18242,"nodeType":"ParameterList","parameters":[],"src":"690:2:52"},"returnParameters":{"id":18243,"nodeType":"ParameterList","parameters":[],"src":"693:0:52"},"scope":18282,"src":"679:59:52","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":18251,"nodeType":"StructuredDocumentation","src":"744:655:52","text":"@notice Validate that a given user has completed an acction successfully\n @param data_ The compressed {ValidatePayload} to be validated\n @return True if the action has been validated based on the data payload\n @dev The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specific\n @dev For example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}"},"functionSelector":"c16e50ef","id":18258,"implemented":false,"kind":"function","modifiers":[],"name":"validate","nameLocation":"1413:8:52","nodeType":"FunctionDefinition","parameters":{"id":18254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18253,"mutability":"mutable","name":"data_","nameLocation":"1437:5:52","nodeType":"VariableDeclaration","scope":18258,"src":"1422:20:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18252,"name":"bytes","nodeType":"ElementaryTypeName","src":"1422:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1421:22:52"},"returnParameters":{"id":18257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18258,"src":"1470:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18255,"name":"bool","nodeType":"ElementaryTypeName","src":"1470:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1469:6:52"},"scope":18282,"src":"1404:72:52","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":18280,"nodeType":"Block","src":"1614:106:52","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":18273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18268,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18261,"src":"1631:11:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":18270,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"1651:9:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}],"id":18269,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1646:4:52","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1646:15:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$18282","typeString":"type(contract Validator)"}},"id":18272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1662:11:52","memberName":"interfaceId","nodeType":"MemberAccess","src":"1646:27:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1631:42:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":18276,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18261,"src":"1701:11:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":18274,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1677:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Validator_$18282_$","typeString":"type(contract super Validator)"}},"id":18275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1683:17:52","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"1677:23:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":18277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:36:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1631:82:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18267,"id":18279,"nodeType":"Return","src":"1624:89:52"}]},"documentation":{"id":18259,"nodeType":"StructuredDocumentation","src":"1482:25:52","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":18281,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1521:17:52","nodeType":"FunctionDefinition","overrides":{"id":18264,"nodeType":"OverrideSpecifier","overrides":[{"id":18263,"name":"Cloneable","nameLocations":["1588:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1588:9:52"}],"src":"1579:19:52"},"parameters":{"id":18262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18261,"mutability":"mutable","name":"interfaceId","nameLocation":"1546:11:52","nodeType":"VariableDeclaration","scope":18281,"src":"1539:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18260,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1539:6:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1538:20:52"},"returnParameters":{"id":18267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18281,"src":"1608:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18265,"name":"bool","nodeType":"ElementaryTypeName","src":"1608:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1607:6:52"},"scope":18282,"src":"1512:208:52","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":18283,"src":"430:1292:52","usedErrors":[6235,6238,6241,6244,9117,9120,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:1687:52"},"id":52}},"contracts":{"@openzeppelin/contracts/interfaces/IERC1271.sol":{"IERC1271":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0a7e89ffa57127a2e75931be926a11094b6ee2955632a5dce0228f3d8e98eb02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca02052cca6c00d760253f74519e6d7460dfaaf4efb3c004bf9c811ad7791d40\",\"dweb:/ipfs/QmSfzCXbsALfzo6Joqte5oyJxi7h27VqhDmcMJhmNGX2GJ\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 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 ERC-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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"ERC1155":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC]. 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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"IERC1155":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[ERC].\",\"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`.\"},\"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 zero address.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"IERC1155Receiver":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-1155 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 ERC-1155 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[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"IERC1155MetadataURI":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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[ERC].\",\"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`.\"},\"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 zero address.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"ERC1155Utils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122051492cae3ae4df375fdc2822e52906a416fe7ada22de05ff2a39e0237fc1b46364736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MLOAD BLOBHASH 0x2C 0xAE GASPRICE 0xE4 0xDF CALLDATACOPY PUSH0 0xDC 0x28 0x22 0xE5 0x29 MOD LOG4 AND INVALID PUSH27 0xDA22DE05FF2A39E0237FC1B46364736F6C63430008190033000000 ","sourceMap":"322:3178:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122051492cae3ae4df375fdc2822e52906a416fe7ada22de05ff2a39e0237fc1b46364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MLOAD BLOBHASH 0x2C 0xAE GASPRICE 0xE4 0xDF CALLDATACOPY PUSH0 0xDC 0x28 0x22 0xE5 0x29 MOD LOG4 AND INVALID PUSH27 0xDA22DE05FF2A39E0237FC1B46364736F6C63430008190033000000 ","sourceMap":"322:3178:6:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library that provide common ERC-1155 utility functions. See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":\"ERC1155Utils\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Arrays.sol":{"Arrays":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202f362cca3b8c099b92f3f7bdda6a35b3a437aafeeefc9fd9a059fc689feb097164736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F CALLDATASIZE 0x2C 0xCA EXTCODESIZE DUP13 MULMOD SWAP12 SWAP3 RETURN 0xF7 0xBD 0xDA PUSH11 0x35B3A437AAFEEEFC9FD9A0 MSIZE 0xFC PUSH9 0x9FEB097164736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"412:17845:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202f362cca3b8c099b92f3f7bdda6a35b3a437aafeeefc9fd9a059fc689feb097164736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F CALLDATASIZE 0x2C 0xCA EXTCODESIZE DUP13 MULMOD SWAP12 SWAP3 RETURN 0xF7 0xBD 0xDA PUSH11 0x35B3A437AAFEEEFC9FD9A0 MSIZE 0xFC PUSH9 0x9FEB097164736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"412:17845:7:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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\":\"cancun\",\"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/Panic.sol":{"Panic":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220efc88f0b773929379419265516c9690496731683cfc9621e01347973290dc13d64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF 0xC8 DUP16 SIGNEXTEND PUSH24 0x3929379419265516C9690496731683CFC9621E0134797329 0xD 0xC1 RETURNDATASIZE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"561:1342:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220efc88f0b773929379419265516c9690496731683cfc9621e01347973290dc13d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF 0xC8 DUP16 SIGNEXTEND PUSH24 0x3929379419265516C9690496731683CFC9621E0134797329 0xD 0xC1 RETURNDATASIZE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"561:1342:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"SlotDerivation":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d7d3510fb55afd82dd28cb4be0a8ea32f7fb101629cd4368b3e589509247a9f364736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xD3 MLOAD 0xF 0xB5 GAS REVERT DUP3 0xDD 0x28 0xCB 0x4B 0xE0 0xA8 0xEA ORIGIN 0xF7 0xFB LT AND 0x29 0xCD NUMBER PUSH9 0xB3E589509247A9F364 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1493:3928:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d7d3510fb55afd82dd28cb4be0a8ea32f7fb101629cd4368b3e589509247a9f364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xD3 MLOAD 0xF 0xB5 GAS REVERT DUP3 0xDD 0x28 0xCB 0x4B 0xE0 0xA8 0xEA ORIGIN 0xF7 0xFB LT AND 0x29 0xCD NUMBER PUSH9 0xB3E589509247A9F364 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1493:3928:10:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for computing storage (and transient storage) locations from namespaces and deriving slots corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by the solidity language / compiler. See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.]. Example usage: ```solidity contract Example { // Add the library methods using StorageSlot for bytes32; using SlotDerivation for bytes32; // Declare a namespace string private constant _NAMESPACE = \\\"\\\" // eg. OpenZeppelin.Slot function setValueInNamespace(uint256 key, address newValue) internal { _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue; } function getValueInNamespace(uint256 key) internal view returns (address) { return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value; } } ``` TIP: Consider using this library along with {StorageSlot}. NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking upgrade safety will ignore the slots accessed through this library.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":\"SlotDerivation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e248e04ea1e66cb6fa4a0e8cfe5a4c3bf010324de4a7bb08f89e9c4c75050d8e64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 BASEFEE 0xE0 0x4E LOG1 0xE6 PUSH13 0xB6FA4A0E8CFE5A4C3BF010324D 0xE4 0xA7 0xBB ADDMOD 0xF8 SWAP15 SWAP13 0x4C PUSH22 0x50D8E64736F6C634300081900330000000000000000 ","sourceMap":"2022:7294:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e248e04ea1e66cb6fa4a0e8cfe5a4c3bf010324de4a7bb08f89e9c4c75050d8e64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 BASEFEE 0xE0 0x4E LOG1 0xE6 PUSH13 0xB6FA4A0E8CFE5A4C3BF010324D 0xE4 0xA7 0xBB ADDMOD 0xF8 SWAP15 SWAP13 0x4C PUSH22 0x50D8E64736F6C634300081900330000000000000000 ","sourceMap":"2022:7294:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC-1967 implementation slot: ```solidity contract ERC1967 { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` Since version 5.1, this library also support writing and reading value types to and from transient storage. * Example using transient storage: ```solidity contract Lock { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542; modifier locked() { require(!_LOCK_SLOT.asBoolean().tload()); _LOCK_SLOT.asBoolean().tstore(true); _; _LOCK_SLOT.asBoolean().tstore(false); } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122054da9aa0625e097b1311a7043d1ea5179471f1b389bbc95beeb584145f3e11e464736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xDA SWAP11 LOG0 PUSH3 0x5E097B SGT GT 0xA7 DIV RETURNDATASIZE 0x1E 0xA5 OR SWAP5 PUSH18 0xF1B389BBC95BEEB584145F3E11E464736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"281:27383:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122054da9aa0625e097b1311a7043d1ea5179471f1b389bbc95beeb584145f3e11e464736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xDA SWAP11 LOG0 PUSH3 0x5E097B SGT GT 0xA7 DIV RETURNDATASIZE 0x1E 0xA5 OR SWAP5 PUSH18 0xF1B389BBC95BEEB584145F3E11E464736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"281:27383:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122050627ed4b307661db26597bbe7b75192e3cbc572449944c319e64ff5a34f75b864736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP PUSH3 0x7ED4B3 SMOD PUSH7 0x1DB26597BBE7B7 MLOAD SWAP3 0xE3 0xCB 0xC5 PUSH19 0x449944C319E64FF5A34F75B864736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"769:34200:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122050627ed4b307661db26597bbe7b75192e3cbc572449944c319e64ff5a34f75b864736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP PUSH3 0x7ED4B3 SMOD PUSH7 0x1DB26597BBE7B7 MLOAD SWAP3 0xE3 0xCB 0xC5 PUSH19 0x449944C319E64FF5A34F75B864736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"769:34200:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@solady/accounts/Receiver.sol":{"Receiver":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\",\"details\":\"Note: - Handles all ERC721 and ERC1155 token safety callbacks. - Collapses function table gas overhead and code size. - Utilizes fallback so unknown calldata will pass on.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/accounts/Receiver.sol\":\"Receiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]}},\"version\":1}"}},"@solady/auth/Ownable.sol":{"Ownable":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\",\"details\":\"Note: This implementation does NOT auto-initialize the owner to `msg.sender`. You MUST call the `_initializeOwner` in the constructor / initializer. While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility, the nomenclature for the 2-step ownership handover may be unique to this codebase.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipHandoverCanceled(address)\\\"))`.\"},\"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipHandoverRequested(address)\\\"))`.\"},\"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipTransferred(address,address)\\\"))`.\"},\"_OWNER_SLOT\":{\"details\":\"The owner slot is given by: `bytes32(~uint256(uint32(bytes4(keccak256(\\\"_OWNER_SLOT_NOT\\\")))))`. It is intentionally chosen to be a high value to avoid collision with lower slots. The choice of manual storage layout is to enable compatibility with both regular and upgradeable contracts.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/auth/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]}},\"version\":1}"}},"@solady/auth/OwnableRoles.sol":{"OwnableRoles":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\",\"details\":\"While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility, the nomenclature for the 2-step ownership handover and roles may be unique to this codebase.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_ROLES_UPDATED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"RolesUpdated(address,uint256)\\\"))`.\"},\"_ROLE_SLOT_SEED\":{\"details\":\"The role slot of `user` is given by: ``` mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED)) let roleSlot := keccak256(0x00, 0x20) ``` This automatically ignores the upper bits of the `user` in case they are not clean, as well as keep the `keccak256` under 32-bytes. Note: This is equivalent to `uint32(bytes4(keccak256(\\\"_OWNER_SLOT_NOT\\\")))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner and multiroles authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/auth/OwnableRoles.sol\":\"OwnableRoles\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]}},\"version\":1}"}},"@solady/tokens/ERC20.sol":{"ERC20":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\",\"details\":\"Note: - The ERC20 standard allows minting and transferring to and from the zero address, minting and transferring zero tokens, as well as self-approvals. For performance, this implementation WILL NOT revert for such actions. Please add any checks with overrides if desired. - The `permit` function uses the ecrecover precompile (0x1). If you are overriding: - NEVER violate the ERC20 invariant: the total sum of all balances must be equal to `totalSupply()`. - Check that the overridden function is actually used in the function you want to change the behavior of. Much of the code has been manually inlined for performance.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"stateVariables\":{\"_ALLOWANCE_SLOT_SEED\":{\"details\":\"The allowance slot of (`owner`, `spender`) is given by: ``` mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, owner) let allowanceSlot := keccak256(0x0c, 0x34) ```\"},\"_APPROVAL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Approval(address,address,uint256)\\\"))`.\"},\"_BALANCE_SLOT_SEED\":{\"details\":\"The balance slot of `owner` is given by: ``` mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, owner) let balanceSlot := keccak256(0x0c, 0x20) ```\"},\"_DOMAIN_TYPEHASH\":{\"details\":\"`keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\\\")`.\"},\"_NONCES_SLOT_SEED\":{\"details\":\"The nonce slot of `owner` is given by: ``` mstore(0x0c, _NONCES_SLOT_SEED) mstore(0x00, owner) let nonceSlot := keccak256(0x0c, 0x20) ```\"},\"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX\":{\"details\":\"`(_NONCES_SLOT_SEED << 16) | 0x1901`.\"},\"_PERMIT_TYPEHASH\":{\"details\":\"`keccak256(\\\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\\\")`.\"},\"_TOTAL_SUPPLY_SLOT\":{\"details\":\"The storage slot for the total supply.\"},\"_TRANSFER_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Transfer(address,address,uint256)\\\"))`.\"},\"_VERSION_HASH\":{\"details\":\"`keccak256(\\\"1\\\")`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/tokens/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]}},\"version\":1}"}},"@solady/tokens/ERC721.sol":{"ERC721":{"abi":[{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TokenAlreadyExists","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"isApproved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccountBalanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccountBalanceOverflow()\":[{\"details\":\"The recipient's balance has overflowed.\"}],\"BalanceQueryForZeroAddress()\":[{\"details\":\"Cannot query the balance for the zero address.\"}],\"NotOwnerNorApproved()\":[{\"details\":\"Only the token owner or an approved account can manage the token.\"}],\"TokenAlreadyExists()\":[{\"details\":\"The token already exists.\"}],\"TokenDoesNotExist()\":[{\"details\":\"The token does not exist.\"}],\"TransferFromIncorrectOwner()\":[{\"details\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"details\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"details\":\"Cannot mint or transfer to the zero address.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `account` to manage the `id` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when token `id` is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Sets `account` as the approved account to manage token `id`. Requirements: - Token `id` must exist. - The caller must be the owner of the token, or an approved operator for the token owner. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens owned by `owner`. Requirements: - `owner` must not be the zero address.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved to manage token `id`. Requirements: - Token `id` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns whether `operator` is approved to manage the tokens of `owner`.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of token `id`. Requirements: - Token `id` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, id, \\\"\\\")`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See: https://eips.ethereum.org/EIPS/eip-165 This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. Emits a {Transfer} event.\"}},\"stateVariables\":{\"_APPROVAL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Approval(address,address,uint256)\\\"))`.\"},\"_APPROVAL_FOR_ALL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"ApprovalForAll(address,address,bool)\\\"))`.\"},\"_ERC721_MASTER_SLOT_SEED\":{\"details\":\"The ownership data slot of `id` is given by: ``` mstore(0x00, id) mstore(0x1c, _ERC721_MASTER_SLOT_SEED) let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20))) ``` Bits Layout: - [0..159] `addr` - [160..255] `extraData` The approved address slot is given by: `add(1, ownershipSlot)`. See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip The balance slot of `owner` is given by: ``` mstore(0x1c, _ERC721_MASTER_SLOT_SEED) mstore(0x00, owner) let balanceSlot := keccak256(0x0c, 0x1c) ``` Bits Layout: - [0..31] `balance` - [32..255] `aux` The `operator` approval slot of `owner` is given by: ``` mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator)) mstore(0x00, owner) let operatorApprovalSlot := keccak256(0x0c, 0x30) ```\"},\"_ERC721_MASTER_SLOT_SEED_MASKED\":{\"details\":\"Pre-shifted and pre-masked constant.\"},\"_MAX_ACCOUNT_BALANCE\":{\"details\":\"An account can hold up to 4294967295 tokens.\"},\"_TRANSFER_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Transfer(address,address,uint256)\\\"))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"- Check that the overridden function is actually used in the function you want to change the behavior of. Much of the code has been manually inlined for performance.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/tokens/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]}},\"version\":1}"}},"@solady/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_INITIALIZABLE_SLOT\":{\"details\":\"The default initializable slot is given by: `bytes32(~uint256(uint32(bytes4(keccak256(\\\"_INITIALIZABLE_SLOT\\\")))))`. Bits Layout: - [0] `initializing` - [1..64] `initializedVersion`\"},\"_INTIALIZED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Initialized(uint64)\\\"))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Initializable mixin for the upgradeable contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]}},\"version\":1}"}},"@solady/utils/LibClone.sol":{"LibClone":{"abi":[{"inputs":[],"name":"DeploymentFailed","type":"error"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"SaltDoesNotStartWith","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122044adfd5ebe74ac2414a655ee1e1f173bb1c472efaeb8fd59b05b8d753e39a6de64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO 0xAD REVERT MCOPY 0xBE PUSH21 0xAC2414A655EE1E1F173BB1C472EFAEB8FD59B05B8D PUSH22 0x3E39A6DE64736F6C6343000819003300000000000000 ","sourceMap":"2217:88872:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122044adfd5ebe74ac2414a655ee1e1f173bb1c472efaeb8fd59b05b8d753e39a6de64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO 0xAD REVERT MCOPY 0xBE PUSH21 0xAC2414A655EE1E1F173BB1C472EFAEB8FD59B05B8D PUSH22 0x3E39A6DE64736F6C6343000819003300000000000000 ","sourceMap":"2217:88872:22:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DeploymentFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaltDoesNotStartWith\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)Minimal proxy by 0age (https://github.com/0age)Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\",\"details\":\"Minimal proxy: Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime, it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern, which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.Minimal proxy (PUSH0 variant): This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai. It is optimized first for minimal runtime gas, then for minimal bytecode. The PUSH0 clone functions are intentionally postfixed with a jarring \\\"_PUSH0\\\" as many EVM chains may not support the PUSH0 opcode in the early months after Shanghai. Please use with caution.Clones with immutable args (CWIA): The implementation of CWIA here implements a `receive()` method that emits the `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata, enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards composability. The minimal proxy implementation does not offer this feature.Minimal ERC1967 proxy: An minimal ERC1967 proxy, intended to be upgraded with UUPS. This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic. This proxy is automatically verified on Etherscan.ERC1967I proxy: An variant of the minimal ERC1967 proxy, with a special code path that activates if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the `implementation` address. The returned implementation is guaranteed to be valid if the keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.\",\"errors\":{\"DeploymentFailed()\":[{\"details\":\"Unable to deploy the clone.\"}],\"ETHTransferFailed()\":[{\"details\":\"The ETH transfer has failed.\"}],\"SaltDoesNotStartWith()\":[{\"details\":\"The salt must start with either the zero address or `by`.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ERC1967I_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967I proxy.\"},\"ERC1967_BEACON_PROXY_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 beacon proxy.\"},\"ERC1967_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal proxy library.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibClone.sol\":\"LibClone\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]}},\"version\":1}"}},"@solady/utils/LibPRNG.sol":{"LibPRNG":{"abi":[{"inputs":[],"name":"InvalidInitialLazyShufflerLength","type":"error"},{"inputs":[],"name":"InvalidNewLazyShufflerLength","type":"error"},{"inputs":[],"name":"LazyShuffleFinished","type":"error"},{"inputs":[],"name":"LazyShufflerAlreadyInitialized","type":"error"},{"inputs":[],"name":"LazyShufflerGetOutOfBounds","type":"error"},{"inputs":[],"name":"LazyShufflerNotInitialized","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122025689cdfb2362bb9b4248ff2c8718f3a732c2e622000d424b613544fe274a71d64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 PUSH9 0x9CDFB2362BB9B4248F CALLCODE 0xC8 PUSH18 0x8F3A732C2E622000D424B613544FE274A71D PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"375:18038:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122025689cdfb2362bb9b4248ff2c8718f3a732c2e622000d424b613544fe274a71d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 PUSH9 0x9CDFB2362BB9B4248F CALLCODE 0xC8 PUSH18 0x8F3A732C2E622000D424B613544FE274A71D PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"375:18038:23:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialLazyShufflerLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNewLazyShufflerLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShuffleFinished\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerGetOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerNotInitialized\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)LazyShuffler based on NextShuffler by aschlosberg (divergencearran) (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)\",\"errors\":{\"InvalidInitialLazyShufflerLength()\":[{\"details\":\"The initial length must be greater than zero and less than `2**32 - 1`.\"}],\"InvalidNewLazyShufflerLength()\":[{\"details\":\"The new length must not be less than the current length.\"}],\"LazyShuffleFinished()\":[{\"details\":\"The lazy shuffle has finished.\"}],\"LazyShufflerAlreadyInitialized()\":[{\"details\":\"Cannot double initialize the lazy shuffler.\"}],\"LazyShufflerGetOutOfBounds()\":[{\"details\":\"The queried index is out of bounds.\"}],\"LazyShufflerNotInitialized()\":[{\"details\":\"The lazy shuffler has not been initialized.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"WAD\":{\"details\":\"The scalar of ETH and most ERC20s.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for generating pseudorandom numbers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibPRNG.sol\":\"LibPRNG\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibPRNG.sol\":{\"keccak256\":\"0xdcb71f8dc72bb7384776154ca24d34c23e3c9bcf124bc75f0d2e379f9ebd021d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64e23b9ccfd1a5842268d36fe2798a13b063fe7821d0e952ea4758df5cc386f\",\"dweb:/ipfs/QmVTtkbUuEMi4gryE6NW2BGg5WGwRt1LX4KXNfH87BBZQk\"]}},\"version\":1}"}},"@solady/utils/LibString.sol":{"LibString":{"abi":[{"inputs":[],"name":"HexLengthInsufficient","type":"error"},{"inputs":[],"name":"TooBigForSmallString","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d91b6d503cc3e113ad0f1da3205ab19c545773a65b6a734db62a9fecfe23610264736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 SHL PUSH14 0x503CC3E113AD0F1DA3205AB19C54 JUMPI PUSH20 0xA65B6A734DB62A9FECFE23610264736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"648:51342:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d91b6d503cc3e113ad0f1da3205ab19c545773a65b6a734db62a9fecfe23610264736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 SHL PUSH14 0x503CC3E113AD0F1DA3205AB19C54 JUMPI PUSH20 0xA65B6A734DB62A9FECFE23610264736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"648:51342:24:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HexLengthInsufficient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooBigForSmallString\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\",\"details\":\"Note: For performance and bytecode compactness, most of the string operations are restricted to byte strings (7-bit ASCII), except where otherwise specified. Usage of byte string operations on charsets with runes spanning two or more bytes can lead to undefined behavior.\",\"errors\":{\"HexLengthInsufficient()\":[{\"details\":\"The length of the output is too small to contain all the hex digits.\"}],\"TooBigForSmallString()\":[{\"details\":\"The length of the string is more than 32 bytes.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"NOT_FOUND\":{\"details\":\"The constant returned when the `search` is not found in the string.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting numbers into strings and other string operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibString.sol\":\"LibString\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]}},\"version\":1}"}},"@solady/utils/LibZip.sol":{"LibZip":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201aaee0b751657c4bf8f9eb1a394a8b2ba57cc64e0446751dec612a5a5d70e30564736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xAE 0xE0 0xB7 MLOAD PUSH6 0x7C4BF8F9EB1A CODECOPY BLOBBASEFEE DUP12 0x2B 0xA5 PUSH29 0xC64E0446751DEC612A5A5D70E30564736F6C6343000819003300000000 ","sourceMap":"492:11812:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201aaee0b751657c4bf8f9eb1a394a8b2ba57cc64e0446751dec612a5a5d70e30564736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xAE 0xE0 0xB7 MLOAD PUSH6 0x7C4BF8F9EB1A CODECOPY BLOBBASEFEE DUP12 0x2B 0xA5 PUSH29 0xC64E0446751DEC612A5A5D70E30564736F6C6343000819003300000000 ","sourceMap":"492:11812:25:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)Calldata compression by clabby (https://github.com/clabby/op-kompressor)FastLZ by ariya (https://github.com/ariya/FastLZ)\",\"details\":\"Note: The accompanying solady.js library includes implementations of FastLZ and calldata operations for convenience.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for compressing and decompressing bytes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibZip.sol\":\"LibZip\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]}},\"version\":1}"}},"@solady/utils/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[{"inputs":[],"name":"Reentrancy","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)\",\"errors\":{\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_REENTRANCY_GUARD_SLOT\":{\"details\":\"Equivalent to: `uint72(bytes9(keccak256(\\\"_REENTRANCY_GUARD_SLOT\\\")))`. 9 bytes is large enough to avoid collisions with lower slots, but not too large to result in excessive bytecode bloat.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Reentrancy guard mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]}},\"version\":1}"}},"@solady/utils/SafeTransferLib.sol":{"SafeTransferLib":{"abi":[{"inputs":[],"name":"ApproveFailed","type":"error"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"Permit2AmountOverflow","type":"error"},{"inputs":[],"name":"Permit2Failed","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"TransferFromFailed","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208afe208c4223512aa41f50bac0174df51c66e28b28a8edeabed8663edcbb0dde64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP11 INVALID KECCAK256 DUP13 TIMESTAMP 0x23 MLOAD 0x2A LOG4 0x1F POP 0xBA 0xC0 OR 0x4D CREATE2 SHR PUSH7 0xE28B28A8EDEABE 0xD8 PUSH7 0x3EDCBB0DDE6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"701:25833:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208afe208c4223512aa41f50bac0174df51c66e28b28a8edeabed8663edcbb0dde64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP11 INVALID KECCAK256 DUP13 TIMESTAMP 0x23 MLOAD 0x2A LOG4 0x1F POP 0xBA 0xC0 OR 0x4D CREATE2 SHR PUSH7 0xE28B28A8EDEABE 0xD8 PUSH7 0x3EDCBB0DDE6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"701:25833:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2AmountOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\",\"details\":\"Note: - For ETH transfers, please use `forceSafeTransferETH` for DoS protection. - For ERC20s, this implementation won't check that a token has code, responsibility is delegated to the caller.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"The ERC20 `approve` has failed.\"}],\"ETHTransferFailed()\":[{\"details\":\"The ETH transfer has failed.\"}],\"Permit2AmountOverflow()\":[{\"details\":\"The Permit2 amount must be less than `2**160 - 1`.\"}],\"Permit2Failed()\":[{\"details\":\"The Permit2 operation has failed.\"}],\"TransferFailed()\":[{\"details\":\"The ERC20 `transfer` has failed.\"}],\"TransferFromFailed()\":[{\"details\":\"The ERC20 `transferFrom` has failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"DAI_DOMAIN_SEPARATOR\":{\"details\":\"The unique EIP-712 domain domain separator for the DAI token contract.\"},\"GAS_STIPEND_NO_GRIEF\":{\"details\":\"Suggested gas stipend for contract receiving ETH to perform a few storage reads and writes, but low enough to prevent griefing.\"},\"GAS_STIPEND_NO_STORAGE_WRITES\":{\"details\":\"Suggested gas stipend for contract receiving ETH that disallows any storage writes.\"},\"PERMIT2\":{\"details\":\"The canonical Permit2 address. [Github](https://github.com/Uniswap/permit2) [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\"},\"WETH9\":{\"details\":\"The address for the WETH9 contract on Ethereum mainnet.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Safe ETH and ERC20 transfer library that gracefully handles missing return values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/SafeTransferLib.sol\":\"SafeTransferLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]}},\"version\":1}"}},"@solady/utils/SignatureCheckerLib.sol":{"SignatureCheckerLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220569a3bd3b5cb3a54508b7f789993e311b6a9f7f23d0bb4cd321176cdd1df942264736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP SWAP11 EXTCODESIZE 0xD3 0xB5 0xCB GASPRICE SLOAD POP DUP12 PUSH32 0x789993E311B6A9F7F23D0BB4CD321176CDD1DF942264736F6C63430008190033 ","sourceMap":"1438:25134:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220569a3bd3b5cb3a54508b7f789993e311b6a9f7f23d0bb4cd321176cdd1df942264736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP SWAP11 EXTCODESIZE 0xD3 0xB5 0xCB GASPRICE SLOAD POP DUP12 PUSH32 0x789993E311B6A9F7F23D0BB4CD321176CDD1DF942264736F6C63430008190033 ","sourceMap":"1438:25134:28:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\",\"details\":\"Note: - The signature checking functions use the ecrecover precompile (0x1). - The `bytes memory signature` variants use the identity precompile (0x4) to copy memory internally. - Unlike ECDSA signatures, contract signatures are revocable. - As of Solady version 0.0.134, all `bytes signature` variants accept both regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures. See: https://eips.ethereum.org/EIPS/eip-2098 This is for calldata efficiency on smart accounts prevalent on L2s. WARNING! Do NOT use signatures as unique identifiers: - Use a nonce in the digest to prevent replay attacks on the same contract. - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts. EIP-712 also enables readable signing of typed data for better user safety. This implementation does NOT check if a signature is non-malleable.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Signature verification helper that supports both ECDSA signatures from EOAs and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/SignatureCheckerLib.sol\":\"SignatureCheckerLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x7a7acc59723ed291f24d9a2ed019109c8be69f32701f35f8a61dc7fff6652379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bab15a03dfca0567d7472933ee4e776fc21f9dfb6c4dbc06934fa75eceeff5e\",\"dweb:/ipfs/QmPUuKsRwpZXz15DpsoJMMPN9DtZiRvMfwjqJScxkppNsP\"]}},\"version\":1}"}},"contracts/BoostCore.sol":{"BoostCore":{"abi":[{"inputs":[{"internalType":"contract BoostRegistry","name":"registry_","type":"address"},{"internalType":"address","name":"protocolFeeReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"bytes4","name":"expectedInterface","type":"bytes4"},{"internalType":"address","name":"instance","type":"address"}],"name":"InvalidInstance","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"boostId_","type":"uint256"},{"internalType":"uint256","name":"incentiveId_","type":"uint256"},{"internalType":"address","name":"referrer_","type":"address"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claimIncentive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"createBoost","outputs":[{"components":[{"internalType":"contract Action","name":"action","type":"address"},{"internalType":"contract Validator","name":"validator","type":"address"},{"internalType":"contract AllowList","name":"allowList","type":"address"},{"internalType":"contract Budget","name":"budget","type":"address"},{"internalType":"contract Incentive[]","name":"incentives","type":"address[]"},{"internalType":"uint64","name":"protocolFee","type":"uint64"},{"internalType":"uint64","name":"referralFee","type":"uint64"},{"internalType":"uint256","name":"maxParticipants","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct BoostLib.Boost","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getBoost","outputs":[{"components":[{"internalType":"contract Action","name":"action","type":"address"},{"internalType":"contract Validator","name":"validator","type":"address"},{"internalType":"contract AllowList","name":"allowList","type":"address"},{"internalType":"contract Budget","name":"budget","type":"address"},{"internalType":"contract Incentive[]","name":"incentives","type":"address[]"},{"internalType":"uint64","name":"protocolFee","type":"uint64"},{"internalType":"uint64","name":"referralFee","type":"uint64"},{"internalType":"uint256","name":"maxParticipants","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct BoostLib.Boost","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBoostCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFee","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralFee","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract BoostRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"claimFee_","type":"uint256"}],"name":"setClaimFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"protocolFeeReceiver_","type":"address"}],"name":"setProtocolFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11648":{"entryPoint":null,"id":11648,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":514,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":294,"id":6302,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":651,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_BoostRegistry_$12680_fromMemory":{"entryPoint":609,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_BoostRegistry_$12680t_address_fromMemory":{"entryPoint":671,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":553,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_BoostRegistry_$12680":{"entryPoint":570,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":522,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":518,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":629,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_BoostRegistry_$12680":{"entryPoint":587,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1895:53","nodeType":"YulBlock","src":"0:1895:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"379:81:53","nodeType":"YulBlock","src":"379:81:53","statements":[{"nativeSrc":"389:65:53","nodeType":"YulAssignment","src":"389:65:53","value":{"arguments":[{"name":"value","nativeSrc":"404:5:53","nodeType":"YulIdentifier","src":"404:5:53"},{"kind":"number","nativeSrc":"411:42:53","nodeType":"YulLiteral","src":"411:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:53","nodeType":"YulIdentifier","src":"400:3:53"},"nativeSrc":"400:54:53","nodeType":"YulFunctionCall","src":"400:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:53","nodeType":"YulIdentifier","src":"389:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:53","nodeType":"YulTypedName","src":"361:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:53","nodeType":"YulTypedName","src":"371:7:53","type":""}],"src":"334:126:53"},{"body":{"nativeSrc":"511:51:53","nodeType":"YulBlock","src":"511:51:53","statements":[{"nativeSrc":"521:35:53","nodeType":"YulAssignment","src":"521:35:53","value":{"arguments":[{"name":"value","nativeSrc":"550:5:53","nodeType":"YulIdentifier","src":"550:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:53","nodeType":"YulIdentifier","src":"532:17:53"},"nativeSrc":"532:24:53","nodeType":"YulFunctionCall","src":"532:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:53","nodeType":"YulIdentifier","src":"521:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:53","nodeType":"YulTypedName","src":"493:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:53","nodeType":"YulTypedName","src":"503:7:53","type":""}],"src":"466:96:53"},{"body":{"nativeSrc":"636:51:53","nodeType":"YulBlock","src":"636:51:53","statements":[{"nativeSrc":"646:35:53","nodeType":"YulAssignment","src":"646:35:53","value":{"arguments":[{"name":"value","nativeSrc":"675:5:53","nodeType":"YulIdentifier","src":"675:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"657:17:53","nodeType":"YulIdentifier","src":"657:17:53"},"nativeSrc":"657:24:53","nodeType":"YulFunctionCall","src":"657:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"646:7:53","nodeType":"YulIdentifier","src":"646:7:53"}]}]},"name":"cleanup_t_contract$_BoostRegistry_$12680","nativeSrc":"568:119:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"618:5:53","nodeType":"YulTypedName","src":"618:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"628:7:53","nodeType":"YulTypedName","src":"628:7:53","type":""}],"src":"568:119:53"},{"body":{"nativeSrc":"759:102:53","nodeType":"YulBlock","src":"759:102:53","statements":[{"body":{"nativeSrc":"839:16:53","nodeType":"YulBlock","src":"839:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"848:1:53","nodeType":"YulLiteral","src":"848:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"851:1:53","nodeType":"YulLiteral","src":"851:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"841:6:53","nodeType":"YulIdentifier","src":"841:6:53"},"nativeSrc":"841:12:53","nodeType":"YulFunctionCall","src":"841:12:53"},"nativeSrc":"841:12:53","nodeType":"YulExpressionStatement","src":"841:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"782:5:53","nodeType":"YulIdentifier","src":"782:5:53"},{"arguments":[{"name":"value","nativeSrc":"830:5:53","nodeType":"YulIdentifier","src":"830:5:53"}],"functionName":{"name":"cleanup_t_contract$_BoostRegistry_$12680","nativeSrc":"789:40:53","nodeType":"YulIdentifier","src":"789:40:53"},"nativeSrc":"789:47:53","nodeType":"YulFunctionCall","src":"789:47:53"}],"functionName":{"name":"eq","nativeSrc":"779:2:53","nodeType":"YulIdentifier","src":"779:2:53"},"nativeSrc":"779:58:53","nodeType":"YulFunctionCall","src":"779:58:53"}],"functionName":{"name":"iszero","nativeSrc":"772:6:53","nodeType":"YulIdentifier","src":"772:6:53"},"nativeSrc":"772:66:53","nodeType":"YulFunctionCall","src":"772:66:53"},"nativeSrc":"769:86:53","nodeType":"YulIf","src":"769:86:53"}]},"name":"validator_revert_t_contract$_BoostRegistry_$12680","nativeSrc":"693:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"752:5:53","nodeType":"YulTypedName","src":"752:5:53","type":""}],"src":"693:168:53"},{"body":{"nativeSrc":"953:103:53","nodeType":"YulBlock","src":"953:103:53","statements":[{"nativeSrc":"963:22:53","nodeType":"YulAssignment","src":"963:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"978:6:53","nodeType":"YulIdentifier","src":"978:6:53"}],"functionName":{"name":"mload","nativeSrc":"972:5:53","nodeType":"YulIdentifier","src":"972:5:53"},"nativeSrc":"972:13:53","nodeType":"YulFunctionCall","src":"972:13:53"},"variableNames":[{"name":"value","nativeSrc":"963:5:53","nodeType":"YulIdentifier","src":"963:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1044:5:53","nodeType":"YulIdentifier","src":"1044:5:53"}],"functionName":{"name":"validator_revert_t_contract$_BoostRegistry_$12680","nativeSrc":"994:49:53","nodeType":"YulIdentifier","src":"994:49:53"},"nativeSrc":"994:56:53","nodeType":"YulFunctionCall","src":"994:56:53"},"nativeSrc":"994:56:53","nodeType":"YulExpressionStatement","src":"994:56:53"}]},"name":"abi_decode_t_contract$_BoostRegistry_$12680_fromMemory","nativeSrc":"867:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"931:6:53","nodeType":"YulTypedName","src":"931:6:53","type":""},{"name":"end","nativeSrc":"939:3:53","nodeType":"YulTypedName","src":"939:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"947:5:53","nodeType":"YulTypedName","src":"947:5:53","type":""}],"src":"867:189:53"},{"body":{"nativeSrc":"1105:79:53","nodeType":"YulBlock","src":"1105:79:53","statements":[{"body":{"nativeSrc":"1162:16:53","nodeType":"YulBlock","src":"1162:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1171:1:53","nodeType":"YulLiteral","src":"1171:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1174:1:53","nodeType":"YulLiteral","src":"1174:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1164:6:53","nodeType":"YulIdentifier","src":"1164:6:53"},"nativeSrc":"1164:12:53","nodeType":"YulFunctionCall","src":"1164:12:53"},"nativeSrc":"1164:12:53","nodeType":"YulExpressionStatement","src":"1164:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1128:5:53","nodeType":"YulIdentifier","src":"1128:5:53"},{"arguments":[{"name":"value","nativeSrc":"1153:5:53","nodeType":"YulIdentifier","src":"1153:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1135:17:53","nodeType":"YulIdentifier","src":"1135:17:53"},"nativeSrc":"1135:24:53","nodeType":"YulFunctionCall","src":"1135:24:53"}],"functionName":{"name":"eq","nativeSrc":"1125:2:53","nodeType":"YulIdentifier","src":"1125:2:53"},"nativeSrc":"1125:35:53","nodeType":"YulFunctionCall","src":"1125:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1118:6:53","nodeType":"YulIdentifier","src":"1118:6:53"},"nativeSrc":"1118:43:53","nodeType":"YulFunctionCall","src":"1118:43:53"},"nativeSrc":"1115:63:53","nodeType":"YulIf","src":"1115:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"1062:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1098:5:53","nodeType":"YulTypedName","src":"1098:5:53","type":""}],"src":"1062:122:53"},{"body":{"nativeSrc":"1253:80:53","nodeType":"YulBlock","src":"1253:80:53","statements":[{"nativeSrc":"1263:22:53","nodeType":"YulAssignment","src":"1263:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"1278:6:53","nodeType":"YulIdentifier","src":"1278:6:53"}],"functionName":{"name":"mload","nativeSrc":"1272:5:53","nodeType":"YulIdentifier","src":"1272:5:53"},"nativeSrc":"1272:13:53","nodeType":"YulFunctionCall","src":"1272:13:53"},"variableNames":[{"name":"value","nativeSrc":"1263:5:53","nodeType":"YulIdentifier","src":"1263:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1321:5:53","nodeType":"YulIdentifier","src":"1321:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1294:26:53","nodeType":"YulIdentifier","src":"1294:26:53"},"nativeSrc":"1294:33:53","nodeType":"YulFunctionCall","src":"1294:33:53"},"nativeSrc":"1294:33:53","nodeType":"YulExpressionStatement","src":"1294:33:53"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"1190:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1231:6:53","nodeType":"YulTypedName","src":"1231:6:53","type":""},{"name":"end","nativeSrc":"1239:3:53","nodeType":"YulTypedName","src":"1239:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1247:5:53","nodeType":"YulTypedName","src":"1247:5:53","type":""}],"src":"1190:143:53"},{"body":{"nativeSrc":"1456:436:53","nodeType":"YulBlock","src":"1456:436:53","statements":[{"body":{"nativeSrc":"1502:83:53","nodeType":"YulBlock","src":"1502:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1504:77:53","nodeType":"YulIdentifier","src":"1504:77:53"},"nativeSrc":"1504:79:53","nodeType":"YulFunctionCall","src":"1504:79:53"},"nativeSrc":"1504:79:53","nodeType":"YulExpressionStatement","src":"1504:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1477:7:53","nodeType":"YulIdentifier","src":"1477:7:53"},{"name":"headStart","nativeSrc":"1486:9:53","nodeType":"YulIdentifier","src":"1486:9:53"}],"functionName":{"name":"sub","nativeSrc":"1473:3:53","nodeType":"YulIdentifier","src":"1473:3:53"},"nativeSrc":"1473:23:53","nodeType":"YulFunctionCall","src":"1473:23:53"},{"kind":"number","nativeSrc":"1498:2:53","nodeType":"YulLiteral","src":"1498:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1469:3:53","nodeType":"YulIdentifier","src":"1469:3:53"},"nativeSrc":"1469:32:53","nodeType":"YulFunctionCall","src":"1469:32:53"},"nativeSrc":"1466:119:53","nodeType":"YulIf","src":"1466:119:53"},{"nativeSrc":"1595:151:53","nodeType":"YulBlock","src":"1595:151:53","statements":[{"nativeSrc":"1610:15:53","nodeType":"YulVariableDeclaration","src":"1610:15:53","value":{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1614:6:53","nodeType":"YulTypedName","src":"1614:6:53","type":""}]},{"nativeSrc":"1639:97:53","nodeType":"YulAssignment","src":"1639:97:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1708:9:53","nodeType":"YulIdentifier","src":"1708:9:53"},{"name":"offset","nativeSrc":"1719:6:53","nodeType":"YulIdentifier","src":"1719:6:53"}],"functionName":{"name":"add","nativeSrc":"1704:3:53","nodeType":"YulIdentifier","src":"1704:3:53"},"nativeSrc":"1704:22:53","nodeType":"YulFunctionCall","src":"1704:22:53"},{"name":"dataEnd","nativeSrc":"1728:7:53","nodeType":"YulIdentifier","src":"1728:7:53"}],"functionName":{"name":"abi_decode_t_contract$_BoostRegistry_$12680_fromMemory","nativeSrc":"1649:54:53","nodeType":"YulIdentifier","src":"1649:54:53"},"nativeSrc":"1649:87:53","nodeType":"YulFunctionCall","src":"1649:87:53"},"variableNames":[{"name":"value0","nativeSrc":"1639:6:53","nodeType":"YulIdentifier","src":"1639:6:53"}]}]},{"nativeSrc":"1756:129:53","nodeType":"YulBlock","src":"1756:129:53","statements":[{"nativeSrc":"1771:16:53","nodeType":"YulVariableDeclaration","src":"1771:16:53","value":{"kind":"number","nativeSrc":"1785:2:53","nodeType":"YulLiteral","src":"1785:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1775:6:53","nodeType":"YulTypedName","src":"1775:6:53","type":""}]},{"nativeSrc":"1801:74:53","nodeType":"YulAssignment","src":"1801:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1847:9:53","nodeType":"YulIdentifier","src":"1847:9:53"},{"name":"offset","nativeSrc":"1858:6:53","nodeType":"YulIdentifier","src":"1858:6:53"}],"functionName":{"name":"add","nativeSrc":"1843:3:53","nodeType":"YulIdentifier","src":"1843:3:53"},"nativeSrc":"1843:22:53","nodeType":"YulFunctionCall","src":"1843:22:53"},{"name":"dataEnd","nativeSrc":"1867:7:53","nodeType":"YulIdentifier","src":"1867:7:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1811:31:53","nodeType":"YulIdentifier","src":"1811:31:53"},"nativeSrc":"1811:64:53","nodeType":"YulFunctionCall","src":"1811:64:53"},"variableNames":[{"name":"value1","nativeSrc":"1801:6:53","nodeType":"YulIdentifier","src":"1801:6:53"}]}]}]},"name":"abi_decode_tuple_t_contract$_BoostRegistry_$12680t_address_fromMemory","nativeSrc":"1339:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1418:9:53","nodeType":"YulTypedName","src":"1418:9:53","type":""},{"name":"dataEnd","nativeSrc":"1429:7:53","nodeType":"YulTypedName","src":"1429:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1441:6:53","nodeType":"YulTypedName","src":"1441:6:53","type":""},{"name":"value1","nativeSrc":"1449:6:53","nodeType":"YulTypedName","src":"1449:6:53","type":""}],"src":"1339:553:53"}]},"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 cleanup_t_contract$_BoostRegistry_$12680(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_BoostRegistry_$12680(value) {\n if iszero(eq(value, cleanup_t_contract$_BoostRegistry_$12680(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_BoostRegistry_$12680_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_BoostRegistry_$12680(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_contract$_BoostRegistry_$12680t_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_BoostRegistry_$12680_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526544364c5bb0006003556103e860045f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e8600460086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561006e575f80fd5b506040516130da3803806130da8339818101604052810190610090919061029f565b61009f3361012660201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102dd565b61013461020260201b60201c565b156101ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101ff565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102338261020a565b9050919050565b5f61024482610229565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8151905061026f8161024b565b92915050565b61027e81610229565b8114610288575f80fd5b50565b5f8151905061029981610275565b92915050565b5f80604083850312156102b5576102b4610206565b5b5f6102c285828601610261565b92505060206102d38582860161028b565b9150509250929050565b612df0806102ea5f395ff3fe608060405260043610610113575f3560e01c806384ae2bc61161009f578063d73792a911610063578063d73792a914610303578063e21ff7311461032d578063f04e283e14610369578063f2fde38b14610385578063fee81cf4146103a157610113565b806384ae2bc61461023f5780638da5cb5b146102695780638fe4f5231461029357806399d32fc4146102af578063b0e21e8a146102d957610113565b806346877b1a116100e657806346877b1a146101af57806354d1f13d146101d75780635edb9eb0146101e1578063715018a61461020b5780637b1039991461021557610113565b806313c8e2de1461011757806325692962146101535780632e75ab501461015d57806339a51be514610185575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611f1d565b6103dd565b60405161014a919061220e565b60405180910390f35b61015b6106b7565b005b348015610168575f80fd5b50610183600480360381019061017e9190611f1d565b610708565b005b348015610190575f80fd5b5061019961071a565b6040516101a6919061223d565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d09190612280565b61073f565b005b6101df61078a565b005b3480156101ec575f80fd5b506101f56107c3565b60405161020291906122ba565b60405180910390f35b6102136107ce565b005b348015610220575f80fd5b506102296107e1565b60405161023691906122f3565b60405180910390f35b34801561024a575f80fd5b50610253610806565b604051610260919061231b565b60405180910390f35b348015610274575f80fd5b5061027d610820565b60405161028a919061223d565b60405180910390f35b6102ad60048036038101906102a89190612395565b610848565b005b3480156102ba575f80fd5b506102c3610b5a565b6040516102d091906122ba565b60405180910390f35b3480156102e4575f80fd5b506102ed610b60565b6040516102fa919061231b565b60405180910390f35b34801561030e575f80fd5b50610317610b79565b604051610324919061231b565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190612419565b610b7f565b604051610360919061220e565b60405180910390f35b610383600480360381019061037e9190612280565b6112e5565b005b61039f600480360381019061039a9190612280565b611323565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190612280565b61134c565b6040516103d491906122ba565b60405180910390f35b6103e5611d71565b5f82815481106103f8576103f7612464565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156105e557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161059c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6106c0611365565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071061136f565b8060038190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61074761136f565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6107d661136f565b6107df5f6113a6565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460089054906101000a900467ffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b3068929eee149b4bd2126854036108665763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80868154811061088657610885612464565b5b905f5260205f20906008020190506003543410156108e1575f346003546040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108d893929190612491565b60405180910390fd5b6108eb818561146c565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c16e50ef84846040518363ffffffff1660e01b8152600401610949929190612520565b6020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109899190612577565b6109bf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060040185815481106109d5576109d4612464565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c63ff8dd60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250604051602001610a96919061263c565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610ac19190612694565b6020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190612577565b610b46573383836040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b3d939291906126b4565b60405180910390fd5b503868929eee149b4bd21268555050505050565b60035481565b60045f9054906101000a900467ffffffffffffffff1681565b61271081565b610b87611d71565b610b8f61136f565b3068929eee149b4bd212685403610bad5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610c0684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506115da565b806020019051810190610c199190612b4c565b9050610c27815f0151611673565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160045f9054906101000a900467ffffffffffffffff16610cf89190612bc0565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600460089054906101000a900467ffffffffffffffff16610d479190612bc0565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e001518160060181905550610dae7fe6715795000000000000000000000000000000000000000000000000000000008360200151600161174e565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e1e7fe2089f79000000000000000000000000000000000000000000000000000000008360600151600161174e565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e708260800151835f0151611770565b816004019080519060200190610e87929190611e37565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614610ef857610ef37fc0919948000000000000000000000000000000000000000000000000000000008360400151600161174e565b610fe1565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fc0919948000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f739190612c35565b602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612577565b610fbc575f610fe0565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561120457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111bb575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050925050503868929eee149b4bd212685592915050565b6112ed61136f565b63389a75e1600c52805f526020600c20805442111561131357636f5e88185f526004601cfd5b5f815550611320816113a6565b50565b61132b61136f565b8060601b61134057637448fbae5f526004601cfd5b611349816113a6565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113a4576382b429005f526004601cfd5b565b6113ae611b3a565b15611413577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611469565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60035403156115d6575f60035490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611532575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166003546114ed9190612c4e565b6114f79190612cbc565b905080826115059190612cec565b9150611530818473ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b61158a6002826115429190612cbc565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b6115d44760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b5050565b606081511561166e5760405190506020810160048301805184518501811983525b80861015611654576001860195508551601f1a80611644576001870196508651601f1a5f198652607f811161163257600181013887395b6001607f82160186019550505061164f565b808553600185019450505b6115fb565b81835260208501840385525f845260208401604052505050505b919050565b61169d7f5cd687ca0000000000000000000000000000000000000000000000000000000082611b5b565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016116d6919061223d565b602060405180830381865afa1580156116f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117159190612577565b61174b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f61175d848460200151611b5b565b6117678383611c52565b90509392505050565b6060825167ffffffffffffffff81111561178d5761178c6126e8565b5b6040519080825280602002602001820160405280156117bb5781602001602082028036833780820191505090505b5090505f5b8351811015611b33576118117f8dbd4bfc00000000000000000000000000000000000000000000000000000000858381518110611800576117ff612464565b5b602002602001015160200151611b5b565b83818151811061182457611823612464565b5b60200260200101515f01516118b0577f8dbd4bfc0000000000000000000000000000000000000000000000000000000084828151811061186757611866612464565b5b6020026020010151602001516040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016118a7929190612d1f565b60405180910390fd5b6118f57f8dbd4bfc000000000000000000000000000000000000000000000000000000008583815181106118e7576118e6612464565b5b60200260200101515f61174e565b82828151811061190857611907612464565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f82828151811061195657611955612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a286848151811061198c5761198b612464565b5b6020026020010151604001516040518263ffffffff1660e01b81526004016119b49190612694565b5f60405180830381865afa1580156119ce573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906119f69190612d46565b90505f815114611a87578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611a399190612694565b6020604051808303815f875af1158015611a55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a799190612577565b611a8657611a85612d8d565b5b5b828281518110611a9a57611a99612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611ad057611acf612464565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611af89190612694565b5f604051808303815f87803b158015611b0f575f80fd5b505af1158015611b21573d5f803e3d5ffd5b505050505080806001019150506117c0565b5092915050565b5f90565b5f385f3884865af1611b575763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0a57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611bc99190612c35565b602060405180830381865afa158015611be4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c089190612577565b155b15611c4e5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611c45929190612d1f565b60405180910390fd5b5050565b5f825f0151611c65578260200151611c89565b611c88836020015173ffffffffffffffffffffffffffffffffffffffff16611d0e565b5b9050825f01518015611c985750815b15611d08578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b8152600401611cda9190612694565b5f604051808303815f87803b158015611cf1575f80fd5b505af1158015611d03573d5f803e3d5ffd5b505050505b92915050565b5f611d195f83611d20565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080611d675763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215611ead579160200282015b82811115611eac578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611e55565b5b509050611eba9190611ebe565b5090565b5b80821115611ed5575f815f905550600101611ebf565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b611efc81611eea565b8114611f06575f80fd5b50565b5f81359050611f1781611ef3565b92915050565b5f60208284031215611f3257611f31611ee2565b5b5f611f3f84828501611f09565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f611f8a611f85611f8084611f48565b611f67565b611f48565b9050919050565b5f611f9b82611f70565b9050919050565b5f611fac82611f91565b9050919050565b611fbc81611fa2565b82525050565b5f611fcc82611f91565b9050919050565b611fdc81611fc2565b82525050565b5f611fec82611f91565b9050919050565b611ffc81611fe2565b82525050565b5f61200c82611f70565b9050919050565b5f61201d82612002565b9050919050565b61202d81612013565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61206682611f91565b9050919050565b6120768161205c565b82525050565b5f612087838361206d565b60208301905092915050565b5f602082019050919050565b5f6120a982612033565b6120b3818561203d565b93506120be8361204d565b805f5b838110156120ee5781516120d5888261207c565b97506120e083612093565b9250506001810190506120c1565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b612117816120fb565b82525050565b61212681611eea565b82525050565b5f61213682611f48565b9050919050565b6121468161212c565b82525050565b5f61012083015f8301516121625f860182611fb3565b5060208301516121756020860182611fd3565b5060408301516121886040860182611ff3565b50606083015161219b6060860182612024565b50608083015184820360808601526121b3828261209f565b91505060a08301516121c860a086018261210e565b5060c08301516121db60c086018261210e565b5060e08301516121ee60e086018261211d565b5061010083015161220361010086018261213d565b508091505092915050565b5f6020820190508181035f830152612226818461214c565b905092915050565b6122378161212c565b82525050565b5f6020820190506122505f83018461222e565b92915050565b61225f8161212c565b8114612269575f80fd5b50565b5f8135905061227a81612256565b92915050565b5f6020828403121561229557612294611ee2565b5b5f6122a28482850161226c565b91505092915050565b6122b481611eea565b82525050565b5f6020820190506122cd5f8301846122ab565b92915050565b5f6122dd82611f91565b9050919050565b6122ed816122d3565b82525050565b5f6020820190506123065f8301846122e4565b92915050565b612315816120fb565b82525050565b5f60208201905061232e5f83018461230c565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261235557612354612334565b5b8235905067ffffffffffffffff81111561237257612371612338565b5b60208301915083600182028301111561238e5761238d61233c565b5b9250929050565b5f805f805f608086880312156123ae576123ad611ee2565b5b5f6123bb88828901611f09565b95505060206123cc88828901611f09565b94505060406123dd8882890161226c565b935050606086013567ffffffffffffffff8111156123fe576123fd611ee6565b5b61240a88828901612340565b92509250509295509295909350565b5f806020838503121561242f5761242e611ee2565b5b5f83013567ffffffffffffffff81111561244c5761244b611ee6565b5b61245885828601612340565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506124a45f83018661222e565b6124b160208301856122ab565b6124be60408301846122ab565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6124ff83856124c6565b935061250c8385846124d6565b612515836124e4565b840190509392505050565b5f6020820190508181035f8301526125398184866124f4565b90509392505050565b5f8115159050919050565b61255681612542565b8114612560575f80fd5b50565b5f815190506125718161254d565b92915050565b5f6020828403121561258c5761258b611ee2565b5b5f61259984828501612563565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6125d4826125a2565b6125de81856125ac565b93506125ee8185602086016125bc565b6125f7816124e4565b840191505092915050565b5f604083015f8301516126175f86018261213d565b506020830151848203602086015261262f82826125ca565b9150508091505092915050565b5f6020820190508181035f8301526126548184612602565b905092915050565b5f612666826125a2565b61267081856124c6565b93506126808185602086016125bc565b612689816124e4565b840191505092915050565b5f6020820190508181035f8301526126ac818461265c565b905092915050565b5f6040820190506126c75f83018661222e565b81810360208301526126da8184866124f4565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61271e826124e4565b810181811067ffffffffffffffff8211171561273d5761273c6126e8565b5b80604052505050565b5f61274f611ed9565b905061275b8282612715565b919050565b5f80fd5b5f61276e82611f48565b9050919050565b5f61277f82612764565b9050919050565b61278f81612775565b8114612799575f80fd5b50565b5f815190506127aa81612786565b92915050565b5f815190506127be81612256565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127e2576127e16126e8565b5b6127eb826124e4565b9050602081019050919050565b5f61280a612805846127c8565b612746565b905082815260208101848484011115612826576128256127c4565b5b6128318482856125bc565b509392505050565b5f82601f83011261284d5761284c612334565b5b815161285d8482602086016127f8565b91505092915050565b5f6060828403121561287b5761287a6126e4565b5b6128856060612746565b90505f61289484828501612563565b5f8301525060206128a7848285016127b0565b602083015250604082015167ffffffffffffffff8111156128cb576128ca612760565b5b6128d784828501612839565b60408301525092915050565b5f67ffffffffffffffff8211156128fd576128fc6126e8565b5b602082029050602081019050919050565b5f61292061291b846128e3565b612746565b905080838252602082019050602084028301858111156129435761294261233c565b5b835b8181101561298a57805167ffffffffffffffff81111561296857612967612334565b5b8086016129758982612866565b85526020850194505050602081019050612945565b5050509392505050565b5f82601f8301126129a8576129a7612334565b5b81516129b884826020860161290e565b91505092915050565b6129ca816120fb565b81146129d4575f80fd5b50565b5f815190506129e5816129c1565b92915050565b5f815190506129f981611ef3565b92915050565b5f6101208284031215612a1557612a146126e4565b5b612a20610120612746565b90505f612a2f8482850161279c565b5f83015250602082015167ffffffffffffffff811115612a5257612a51612760565b5b612a5e84828501612866565b602083015250604082015167ffffffffffffffff811115612a8257612a81612760565b5b612a8e84828501612866565b604083015250606082015167ffffffffffffffff811115612ab257612ab1612760565b5b612abe84828501612866565b606083015250608082015167ffffffffffffffff811115612ae257612ae1612760565b5b612aee84828501612994565b60808301525060a0612b02848285016129d7565b60a08301525060c0612b16848285016129d7565b60c08301525060e0612b2a848285016129eb565b60e083015250610100612b3f848285016127b0565b6101008301525092915050565b5f60208284031215612b6157612b60611ee2565b5b5f82015167ffffffffffffffff811115612b7e57612b7d611ee6565b5b612b8a848285016129ff565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bca826120fb565b9150612bd5836120fb565b9250828201905067ffffffffffffffff811115612bf557612bf4612b93565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c2f81612bfb565b82525050565b5f602082019050612c485f830184612c26565b92915050565b5f612c5882611eea565b9150612c6383611eea565b9250828202612c7181611eea565b91508282048414831517612c8857612c87612b93565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cc682611eea565b9150612cd183611eea565b925082612ce157612ce0612c8f565b5b828204905092915050565b5f612cf682611eea565b9150612d0183611eea565b9250828203905081811115612d1957612d18612b93565b5b92915050565b5f604082019050612d325f830185612c26565b612d3f602083018461222e565b9392505050565b5f60208284031215612d5b57612d5a611ee2565b5b5f82015167ffffffffffffffff811115612d7857612d77611ee6565b5b612d8484828501612839565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea264697066735822122000411cf454d3f7b220aadb64ce9e6a010c954ba7ec7e1848fd2534e56a5294e364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH6 0x44364C5BB000 PUSH1 0x3 SSTORE PUSH2 0x3E8 PUSH1 0x4 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x3E8 PUSH1 0x4 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x6E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x30DA CODESIZE SUB DUP1 PUSH2 0x30DA DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH2 0x9F CALLER PUSH2 0x126 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH2 0x2DD JUMP JUMPDEST PUSH2 0x134 PUSH2 0x202 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0x1AC JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x16E JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1FF JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x233 DUP3 PUSH2 0x20A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x244 DUP3 PUSH2 0x229 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x254 DUP2 PUSH2 0x23A JUMP JUMPDEST DUP2 EQ PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x26F DUP2 PUSH2 0x24B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x27E DUP2 PUSH2 0x229 JUMP JUMPDEST DUP2 EQ PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x299 DUP2 PUSH2 0x275 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B5 JUMPI PUSH2 0x2B4 PUSH2 0x206 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2C2 DUP6 DUP3 DUP7 ADD PUSH2 0x261 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2D3 DUP6 DUP3 DUP7 ADD PUSH2 0x28B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2DF0 DUP1 PUSH2 0x2EA PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84AE2BC6 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xE21FF731 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A1 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x84AE2BC6 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x8FE4F523 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x99D32FC4 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x2D9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x46877B1A GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x46877B1A EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5EDB9EB0 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x215 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x13C8E2DE EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x2E75AB50 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x39A51BE5 EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x6B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x190 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x7C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x213 PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x220 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x229 PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x22F3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x806 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x2395 JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0xB5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x353 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34E SWAP2 SWAP1 PUSH2 0x2419 JUMP JUMPDEST PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x383 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x12E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x134C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E5 PUSH2 0x1D71 JUMP JUMPDEST PUSH0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3F8 JUMPI PUSH2 0x3F7 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x59C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x1365 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x710 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x136F JUMP JUMPDEST PUSH2 0x7DF PUSH0 PUSH2 0x13A6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x866 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 DUP1 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP PUSH1 0x3 SLOAD CALLVALUE LT ISZERO PUSH2 0x8E1 JUMPI PUSH0 CALLVALUE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EB DUP2 DUP6 PUSH2 0x146C JUMP JUMPDEST DUP1 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC16E50EF DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x949 SWAP3 SWAP2 SWAP1 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x965 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x989 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D4 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC63FF8DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA96 SWAP2 SWAP1 PUSH2 0x263C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xB46 JUMPI CALLER DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x26B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0xB87 PUSH2 0x1D71 JUMP JUMPDEST PUSH2 0xB8F PUSH2 0x136F JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0xBAD JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH2 0xC06 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x15DA JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x2B4C JUMP JUMPDEST SWAP1 POP PUSH2 0xC27 DUP2 PUSH0 ADD MLOAD PUSH2 0x1673 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP DUP2 PUSH2 0x100 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH0 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xA0 ADD MLOAD PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xCF8 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xC0 ADD MLOAD PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD47 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xDAE PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE1E PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH1 0x2 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE70 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x1770 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x1E37 JUMP JUMPDEST POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEF8 JUMPI PUSH2 0xEF3 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF73 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB2 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xFBC JUMPI PUSH0 PUSH2 0xFE0 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST JUMPDEST DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1204 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x11BB JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP3 POP POP POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12ED PUSH2 0x136F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x1313 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1320 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x132B PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1340 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1349 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x13A4 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x13AE PUSH2 0x1B3A JUMP JUMPDEST ISZERO PUSH2 0x1413 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1469 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD SUB ISZERO PUSH2 0x15D6 JUMPI PUSH0 PUSH1 0x3 SLOAD SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1532 JUMPI PUSH0 PUSH2 0x2710 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x5 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x3 SLOAD PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x2C4E JUMP JUMPDEST PUSH2 0x14F7 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x1505 SWAP2 SWAP1 PUSH2 0x2CEC JUMP JUMPDEST SWAP2 POP PUSH2 0x1530 DUP2 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST PUSH2 0x158A PUSH1 0x2 DUP3 PUSH2 0x1542 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST DUP5 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15D4 SELFBALANCE PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD ISZERO PUSH2 0x166E JUMPI PUSH1 0x40 MLOAD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x4 DUP4 ADD DUP1 MLOAD DUP5 MLOAD DUP6 ADD DUP2 NOT DUP4 MSTORE JUMPDEST DUP1 DUP7 LT ISZERO PUSH2 0x1654 JUMPI PUSH1 0x1 DUP7 ADD SWAP6 POP DUP6 MLOAD PUSH1 0x1F BYTE DUP1 PUSH2 0x1644 JUMPI PUSH1 0x1 DUP8 ADD SWAP7 POP DUP7 MLOAD PUSH1 0x1F BYTE PUSH0 NOT DUP7 MSTORE PUSH1 0x7F DUP2 GT PUSH2 0x1632 JUMPI PUSH1 0x1 DUP2 ADD CODESIZE DUP8 CODECOPY JUMPDEST PUSH1 0x1 PUSH1 0x7F DUP3 AND ADD DUP7 ADD SWAP6 POP POP POP PUSH2 0x164F JUMP JUMPDEST DUP1 DUP6 MSTORE8 PUSH1 0x1 DUP6 ADD SWAP5 POP POP JUMPDEST PUSH2 0x15FB JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP6 ADD DUP5 SUB DUP6 MSTORE PUSH0 DUP5 MSTORE PUSH1 0x20 DUP5 ADD PUSH1 0x40 MSTORE POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169D PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 DUP3 PUSH2 0x1B5B JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFE9FBB80 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1715 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x174B JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x175D DUP5 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST PUSH2 0x1767 DUP4 DUP4 PUSH2 0x1C52 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x178D JUMPI PUSH2 0x178C PUSH2 0x26E8 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 0x17BB 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 PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH2 0x1811 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1800 JUMPI PUSH2 0x17FF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1824 JUMPI PUSH2 0x1823 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH2 0x18B0 JUMPI PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1867 JUMPI PUSH2 0x1866 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18A7 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x18F5 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x18E7 JUMPI PUSH2 0x18E6 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 PUSH2 0x174E JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1908 JUMPI PUSH2 0x1907 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1956 JUMPI PUSH2 0x1955 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4E7165A2 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x198C JUMPI PUSH2 0x198B PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19B4 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F6 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD EQ PUSH2 0x1A87 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFA4CA9B1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A39 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A79 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x2D8D JUMP JUMPDEST JUMPDEST JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A9A JUMPI PUSH2 0x1A99 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1AD0 JUMPI PUSH2 0x1ACF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AF8 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B21 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x17C0 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1B57 JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1C0A JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BC9 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BE4 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C08 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C4E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C45 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH0 ADD MLOAD PUSH2 0x1C65 JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0x1C88 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D0E JUMP JUMPDEST JUMPDEST SWAP1 POP DUP3 PUSH0 ADD MLOAD DUP1 ISZERO PUSH2 0x1C98 JUMPI POP DUP2 JUMPDEST ISZERO PUSH2 0x1D08 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CDA SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D03 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D19 PUSH0 DUP4 PUSH2 0x1D20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP2 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE PUSH1 0x35 PUSH1 0xC DUP5 CREATE SWAP1 POP DUP1 PUSH2 0x1D67 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1EAD JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI DUP3 MLOAD DUP3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E55 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1EBA SWAP2 SWAP1 PUSH2 0x1EBE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH0 DUP2 PUSH0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1EBF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EFC DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP2 EQ PUSH2 0x1F06 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F17 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F32 JUMPI PUSH2 0x1F31 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F3F DUP5 DUP3 DUP6 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F8A PUSH2 0x1F85 PUSH2 0x1F80 DUP5 PUSH2 0x1F48 JUMP JUMPDEST PUSH2 0x1F67 JUMP JUMPDEST PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F9B DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1FAC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBC DUP2 PUSH2 0x1FA2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FCC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FDC DUP2 PUSH2 0x1FC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FEC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FFC DUP2 PUSH2 0x1FE2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x200C DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x201D DUP3 PUSH2 0x2002 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x202D DUP2 PUSH2 0x2013 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2066 DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2076 DUP2 PUSH2 0x205C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2087 DUP4 DUP4 PUSH2 0x206D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20A9 DUP3 PUSH2 0x2033 JUMP JUMPDEST PUSH2 0x20B3 DUP2 DUP6 PUSH2 0x203D JUMP JUMPDEST SWAP4 POP PUSH2 0x20BE DUP4 PUSH2 0x204D JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x20EE JUMPI DUP2 MLOAD PUSH2 0x20D5 DUP9 DUP3 PUSH2 0x207C JUMP JUMPDEST SWAP8 POP PUSH2 0x20E0 DUP4 PUSH2 0x2093 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x20C1 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2117 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2126 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2136 DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2146 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2162 PUSH0 DUP7 ADD DUP3 PUSH2 0x1FB3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2175 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1FD3 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2188 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1FF3 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x219B PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x2024 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x21B3 DUP3 DUP3 PUSH2 0x209F JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x21C8 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x21DB PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x21EE PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x211D JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x2203 PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2226 DUP2 DUP5 PUSH2 0x214C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2237 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2250 PUSH0 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x225F DUP2 PUSH2 0x212C JUMP JUMPDEST DUP2 EQ PUSH2 0x2269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227A DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2295 JUMPI PUSH2 0x2294 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22A2 DUP5 DUP3 DUP6 ADD PUSH2 0x226C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22B4 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22CD PUSH0 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22DD DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2306 PUSH0 DUP4 ADD DUP5 PUSH2 0x22E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2315 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x232E PUSH0 DUP4 ADD DUP5 PUSH2 0x230C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2355 JUMPI PUSH2 0x2354 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2372 JUMPI PUSH2 0x2371 PUSH2 0x2338 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x238E JUMPI PUSH2 0x238D PUSH2 0x233C JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x23AE JUMPI PUSH2 0x23AD PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23BB DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x23CC DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x23DD DUP9 DUP3 DUP10 ADD PUSH2 0x226C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23FE JUMPI PUSH2 0x23FD PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x240A DUP9 DUP3 DUP10 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x242F JUMPI PUSH2 0x242E PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x244C JUMPI PUSH2 0x244B PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2458 DUP6 DUP3 DUP7 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x24A4 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x24B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x24BE PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x24FF DUP4 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x250C DUP4 DUP6 DUP5 PUSH2 0x24D6 JUMP JUMPDEST PUSH2 0x2515 DUP4 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2539 DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2556 DUP2 PUSH2 0x2542 JUMP JUMPDEST DUP2 EQ PUSH2 0x2560 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2571 DUP2 PUSH2 0x254D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258C JUMPI PUSH2 0x258B PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2599 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25D4 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x25DE DUP2 DUP6 PUSH2 0x25AC JUMP JUMPDEST SWAP4 POP PUSH2 0x25EE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x25F7 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2617 PUSH0 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x262F DUP3 DUP3 PUSH2 0x25CA JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2654 DUP2 DUP5 PUSH2 0x2602 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2666 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x2670 DUP2 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x2680 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x2689 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x26AC DUP2 DUP5 PUSH2 0x265C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x26C7 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26DA DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x271E DUP3 PUSH2 0x24E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x273D JUMPI PUSH2 0x273C PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x274F PUSH2 0x1ED9 JUMP JUMPDEST SWAP1 POP PUSH2 0x275B DUP3 DUP3 PUSH2 0x2715 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x276E DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x277F DUP3 PUSH2 0x2764 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x278F DUP2 PUSH2 0x2775 JUMP JUMPDEST DUP2 EQ PUSH2 0x2799 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27AA DUP2 PUSH2 0x2786 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27BE DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x27E2 JUMPI PUSH2 0x27E1 PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH2 0x27EB DUP3 PUSH2 0x24E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x280A PUSH2 0x2805 DUP5 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2826 JUMPI PUSH2 0x2825 PUSH2 0x27C4 JUMP JUMPDEST JUMPDEST PUSH2 0x2831 DUP5 DUP3 DUP6 PUSH2 0x25BC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x284D JUMPI PUSH2 0x284C PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x285D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x27F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2885 PUSH1 0x60 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2894 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x28A7 DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28CB JUMPI PUSH2 0x28CA PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x28D7 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FD JUMPI PUSH2 0x28FC PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2920 PUSH2 0x291B DUP5 PUSH2 0x28E3 JUMP JUMPDEST PUSH2 0x2746 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 0x2943 JUMPI PUSH2 0x2942 PUSH2 0x233C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298A JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2968 JUMPI PUSH2 0x2967 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x2975 DUP10 DUP3 PUSH2 0x2866 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2945 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29A8 JUMPI PUSH2 0x29A7 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x29B8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x290E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29CA DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP2 EQ PUSH2 0x29D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29E5 DUP2 PUSH2 0x29C1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29F9 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A15 JUMPI PUSH2 0x2A14 PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2A20 PUSH2 0x120 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A2F DUP5 DUP3 DUP6 ADD PUSH2 0x279C JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A52 JUMPI PUSH2 0x2A51 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A5E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A82 JUMPI PUSH2 0x2A81 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A8E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AB2 JUMPI PUSH2 0x2AB1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2ABE DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE2 JUMPI PUSH2 0x2AE1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2AEE DUP5 DUP3 DUP6 ADD PUSH2 0x2994 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x2B02 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x2B16 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x2B2A DUP5 DUP3 DUP6 ADD PUSH2 0x29EB JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x2B3F DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B60 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B7E JUMPI PUSH2 0x2B7D PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2B8A DUP5 DUP3 DUP6 ADD PUSH2 0x29FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2BCA DUP3 PUSH2 0x20FB JUMP JUMPDEST SWAP2 POP PUSH2 0x2BD5 DUP4 PUSH2 0x20FB JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BF5 JUMPI PUSH2 0x2BF4 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C2F DUP2 PUSH2 0x2BFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C48 PUSH0 DUP4 ADD DUP5 PUSH2 0x2C26 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C58 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2C63 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x2C71 DUP2 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2C88 JUMPI PUSH2 0x2C87 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2CC6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2CD1 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2CE1 JUMPI PUSH2 0x2CE0 PUSH2 0x2C8F JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2CF6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2D01 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D19 JUMPI PUSH2 0x2D18 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D32 PUSH0 DUP4 ADD DUP6 PUSH2 0x2C26 JUMP JUMPDEST PUSH2 0x2D3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D5B JUMPI PUSH2 0x2D5A PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D78 JUMPI PUSH2 0x2D77 PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2D84 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP COINBASE SHR DELEGATECALL SLOAD 0xD3 0xF7 0xB2 KECCAK256 0xAA 0xDB PUSH5 0xCE9E6A010C SWAP6 0x4B 0xA7 0xEC PUSH31 0x1848FD2534E56A5294E364736F6C6343000819003300000000000000000000 ","sourceMap":"1093:10818:29:-:0;;;1854:14;1828:40;;1950:5;1922:33;;;;;;;;;;;;;;;;;;;;2044:5;2016:33;;;;;;;;;;;;;;;;;;;;2240:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2317:28;2334:10;2317:16;;;:28;;:::i;:::-;2366:9;2355:8;;:20;;;;;;;;;;;;;;;;;;2407;2385:19;;:42;;;;;;;;;;;;;;;;;;2240:194;;1093:10818;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4348:78::-;4412:10;4348:78;:::o;88:117:53:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:189::-;947:5;978:6;972:13;963:22;;994:56;1044:5;994:56;:::i;:::-;867:189;;;;:::o;1062:122::-;1135:24;1153:5;1135:24;:::i;:::-;1128:5;1125:35;1115:63;;1174:1;1171;1164:12;1115:63;1062:122;:::o;1190:143::-;1247:5;1278:6;1272:13;1263:22;;1294:33;1321:5;1294:33;:::i;:::-;1190:143;;;;:::o;1339:553::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:87;1728:7;1719:6;1708:9;1704:22;1649:87;:::i;:::-;1639:97;;1595:151;1785:2;1811:64;1867:7;1858:6;1847:9;1843:22;1811:64;:::i;:::-;1801:74;;1756:129;1339:553;;;;;:::o;1093:10818:29:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@FEE_DENOMINATOR_11625":{"entryPoint":2937,"id":11625,"parameterSlots":0,"returnSlots":0},"@_checkBudget_11979":{"entryPoint":5747,"id":11979,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":4975,"id":6322,"parameterSlots":0,"returnSlots":0},"@_checkTarget_12011":{"entryPoint":7003,"id":12011,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":6970,"id":6288,"parameterSlots":0,"returnSlots":1},"@_makeIncentives_12160":{"entryPoint":6000,"id":12160,"parameterSlots":2,"returnSlots":1},"@_makeTarget_12038":{"entryPoint":5966,"id":12038,"parameterSlots":3,"returnSlots":1},"@_maybeClone_12198":{"entryPoint":7250,"id":12198,"parameterSlots":2,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4965,"id":6333,"parameterSlots":0,"returnSlots":1},"@_routeClaimFee_12264":{"entryPoint":5228,"id":12264,"parameterSlots":2,"returnSlots":0},"@_setOwner_6316":{"entryPoint":5030,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1930,"id":6382,"parameterSlots":0,"returnSlots":0},"@cdDecompress_11007":{"entryPoint":5594,"id":11007,"parameterSlots":1,"returnSlots":1},"@claimFee_11613":{"entryPoint":2906,"id":11613,"parameterSlots":0,"returnSlots":0},"@claimIncentive_11898":{"entryPoint":2120,"id":11898,"parameterSlots":5,"returnSlots":0},"@clone_9265":{"entryPoint":7438,"id":9265,"parameterSlots":1,"returnSlots":1},"@clone_9277":{"entryPoint":7456,"id":9277,"parameterSlots":2,"returnSlots":1},"@completeOwnershipHandover_6396":{"entryPoint":4837,"id":6396,"parameterSlots":1,"returnSlots":0},"@createBoost_11815":{"entryPoint":2943,"id":11815,"parameterSlots":2,"returnSlots":1},"@getBoostCount_11922":{"entryPoint":1987,"id":11922,"parameterSlots":0,"returnSlots":1},"@getBoost_11912":{"entryPoint":989,"id":11912,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":2080,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4940,"id":6414,"parameterSlots":1,"returnSlots":1},"@protocolFeeReceiver_11609":{"entryPoint":1818,"id":11609,"parameterSlots":0,"returnSlots":0},"@protocolFee_11617":{"entryPoint":2912,"id":11617,"parameterSlots":0,"returnSlots":0},"@referralFee_11621":{"entryPoint":2054,"id":11621,"parameterSlots":0,"returnSlots":0},"@registry_11606":{"entryPoint":2017,"id":11606,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_6361":{"entryPoint":1998,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1719,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11089":{"entryPoint":6974,"id":11089,"parameterSlots":2,"returnSlots":0},"@setClaimFee_11948":{"entryPoint":1800,"id":11948,"parameterSlots":1,"returnSlots":0},"@setProtocolFeeReceiver_11935":{"entryPoint":1855,"id":11935,"parameterSlots":1,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":4899,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory":{"entryPoint":10510,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":10232,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":8812,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":10160,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory":{"entryPoint":10644,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":9571,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":9024,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":10297,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_Budget_$13669_fromMemory":{"entryPoint":10140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory":{"entryPoint":10751,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory":{"entryPoint":10342,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":7945,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":10731,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64_fromMemory":{"entryPoint":10711,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":9591,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":9241,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$11597_memory_ptr_fromMemory":{"entryPoint":11084,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":7965,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr":{"entryPoint":9109,"id":null,"parameterSlots":2,"returnSlots":5},"abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address":{"entryPoint":8316,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":8509,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":8750,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":8351,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":11302,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":9460,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":9674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":9820,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Action_$12758_to_t_address":{"entryPoint":8115,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_AllowList_$13154_to_t_address":{"entryPoint":8179,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack":{"entryPoint":8932,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Budget_$13669_to_t_address_payable":{"entryPoint":8228,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Incentive_$17260_to_t_address":{"entryPoint":8301,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Validator_$18282_to_t_address":{"entryPoint":8147,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack":{"entryPoint":8524,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack":{"entryPoint":9730,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":8477,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":8875,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64":{"entryPoint":8462,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":8972,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":8765,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9908,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":9361,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":11317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed":{"entryPoint":11551,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9504,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9876,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_BoostRegistry_$12680__to_t_address__fromStack_reversed":{"entryPoint":8947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Boost_$17616_memory_ptr__to_t_struct$_Boost_$17616_memory_ptr__fromStack_reversed":{"entryPoint":8718,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed":{"entryPoint":9788,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":8890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":8987,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":10054,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":7897,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr":{"entryPoint":10467,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":10184,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr":{"entryPoint":8269,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr":{"entryPoint":8243,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":9634,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr":{"entryPoint":8339,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":8253,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":9644,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":9414,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":11200,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11452,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11342,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11500,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":8492,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":10084,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":9538,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":11259,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_Budget_$13669":{"entryPoint":10101,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":8008,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":7914,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":8443,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Action_$12758_to_t_address":{"entryPoint":8098,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_AllowList_$13154_to_t_address":{"entryPoint":8162,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_BoostRegistry_$12680_to_t_address":{"entryPoint":8915,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Budget_$13669_to_t_address_payable":{"entryPoint":8211,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Incentive_$17260_to_t_address":{"entryPoint":8284,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$18282_to_t_address":{"entryPoint":8130,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":8081,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address_payable":{"entryPoint":8194,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":8048,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":9430,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":9660,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":10005,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":8039,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x01":{"entryPoint":11661,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":11155,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11407,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9316,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9960,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":9016,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":9012,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":9956,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":10080,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":9020,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":10180,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":7910,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":7906,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":9444,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":8790,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":9549,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_Budget_$13669":{"entryPoint":10118,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":7923,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":10689,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30349:53","nodeType":"YulBlock","src":"0:30349:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"379:32:53","nodeType":"YulBlock","src":"379:32:53","statements":[{"nativeSrc":"389:16:53","nodeType":"YulAssignment","src":"389:16:53","value":{"name":"value","nativeSrc":"400:5:53","nodeType":"YulIdentifier","src":"400:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:53","nodeType":"YulIdentifier","src":"389:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"334:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:53","nodeType":"YulTypedName","src":"361:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:53","nodeType":"YulTypedName","src":"371:7:53","type":""}],"src":"334:77:53"},{"body":{"nativeSrc":"460:79:53","nodeType":"YulBlock","src":"460:79:53","statements":[{"body":{"nativeSrc":"517:16:53","nodeType":"YulBlock","src":"517:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:53","nodeType":"YulLiteral","src":"526:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:53","nodeType":"YulLiteral","src":"529:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:53","nodeType":"YulIdentifier","src":"519:6:53"},"nativeSrc":"519:12:53","nodeType":"YulFunctionCall","src":"519:12:53"},"nativeSrc":"519:12:53","nodeType":"YulExpressionStatement","src":"519:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:53","nodeType":"YulIdentifier","src":"483:5:53"},{"arguments":[{"name":"value","nativeSrc":"508:5:53","nodeType":"YulIdentifier","src":"508:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"490:17:53","nodeType":"YulIdentifier","src":"490:17:53"},"nativeSrc":"490:24:53","nodeType":"YulFunctionCall","src":"490:24:53"}],"functionName":{"name":"eq","nativeSrc":"480:2:53","nodeType":"YulIdentifier","src":"480:2:53"},"nativeSrc":"480:35:53","nodeType":"YulFunctionCall","src":"480:35:53"}],"functionName":{"name":"iszero","nativeSrc":"473:6:53","nodeType":"YulIdentifier","src":"473:6:53"},"nativeSrc":"473:43:53","nodeType":"YulFunctionCall","src":"473:43:53"},"nativeSrc":"470:63:53","nodeType":"YulIf","src":"470:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"417:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:53","nodeType":"YulTypedName","src":"453:5:53","type":""}],"src":"417:122:53"},{"body":{"nativeSrc":"597:87:53","nodeType":"YulBlock","src":"597:87:53","statements":[{"nativeSrc":"607:29:53","nodeType":"YulAssignment","src":"607:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:53","nodeType":"YulIdentifier","src":"629:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:53","nodeType":"YulIdentifier","src":"616:12:53"},"nativeSrc":"616:20:53","nodeType":"YulFunctionCall","src":"616:20:53"},"variableNames":[{"name":"value","nativeSrc":"607:5:53","nodeType":"YulIdentifier","src":"607:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:53","nodeType":"YulIdentifier","src":"672:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"645:26:53","nodeType":"YulIdentifier","src":"645:26:53"},"nativeSrc":"645:33:53","nodeType":"YulFunctionCall","src":"645:33:53"},"nativeSrc":"645:33:53","nodeType":"YulExpressionStatement","src":"645:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"545:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:53","nodeType":"YulTypedName","src":"575:6:53","type":""},{"name":"end","nativeSrc":"583:3:53","nodeType":"YulTypedName","src":"583:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:53","nodeType":"YulTypedName","src":"591:5:53","type":""}],"src":"545:139:53"},{"body":{"nativeSrc":"756:263:53","nodeType":"YulBlock","src":"756:263:53","statements":[{"body":{"nativeSrc":"802:83:53","nodeType":"YulBlock","src":"802:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"804:77:53","nodeType":"YulIdentifier","src":"804:77:53"},"nativeSrc":"804:79:53","nodeType":"YulFunctionCall","src":"804:79:53"},"nativeSrc":"804:79:53","nodeType":"YulExpressionStatement","src":"804:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"777:7:53","nodeType":"YulIdentifier","src":"777:7:53"},{"name":"headStart","nativeSrc":"786:9:53","nodeType":"YulIdentifier","src":"786:9:53"}],"functionName":{"name":"sub","nativeSrc":"773:3:53","nodeType":"YulIdentifier","src":"773:3:53"},"nativeSrc":"773:23:53","nodeType":"YulFunctionCall","src":"773:23:53"},{"kind":"number","nativeSrc":"798:2:53","nodeType":"YulLiteral","src":"798:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"769:3:53","nodeType":"YulIdentifier","src":"769:3:53"},"nativeSrc":"769:32:53","nodeType":"YulFunctionCall","src":"769:32:53"},"nativeSrc":"766:119:53","nodeType":"YulIf","src":"766:119:53"},{"nativeSrc":"895:117:53","nodeType":"YulBlock","src":"895:117:53","statements":[{"nativeSrc":"910:15:53","nodeType":"YulVariableDeclaration","src":"910:15:53","value":{"kind":"number","nativeSrc":"924:1:53","nodeType":"YulLiteral","src":"924:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"914:6:53","nodeType":"YulTypedName","src":"914:6:53","type":""}]},{"nativeSrc":"939:63:53","nodeType":"YulAssignment","src":"939:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"974:9:53","nodeType":"YulIdentifier","src":"974:9:53"},{"name":"offset","nativeSrc":"985:6:53","nodeType":"YulIdentifier","src":"985:6:53"}],"functionName":{"name":"add","nativeSrc":"970:3:53","nodeType":"YulIdentifier","src":"970:3:53"},"nativeSrc":"970:22:53","nodeType":"YulFunctionCall","src":"970:22:53"},{"name":"dataEnd","nativeSrc":"994:7:53","nodeType":"YulIdentifier","src":"994:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"949:20:53","nodeType":"YulIdentifier","src":"949:20:53"},"nativeSrc":"949:53:53","nodeType":"YulFunctionCall","src":"949:53:53"},"variableNames":[{"name":"value0","nativeSrc":"939:6:53","nodeType":"YulIdentifier","src":"939:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"690:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"726:9:53","nodeType":"YulTypedName","src":"726:9:53","type":""},{"name":"dataEnd","nativeSrc":"737:7:53","nodeType":"YulTypedName","src":"737:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"749:6:53","nodeType":"YulTypedName","src":"749:6:53","type":""}],"src":"690:329:53"},{"body":{"nativeSrc":"1070:81:53","nodeType":"YulBlock","src":"1070:81:53","statements":[{"nativeSrc":"1080:65:53","nodeType":"YulAssignment","src":"1080:65:53","value":{"arguments":[{"name":"value","nativeSrc":"1095:5:53","nodeType":"YulIdentifier","src":"1095:5:53"},{"kind":"number","nativeSrc":"1102:42:53","nodeType":"YulLiteral","src":"1102:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1091:3:53","nodeType":"YulIdentifier","src":"1091:3:53"},"nativeSrc":"1091:54:53","nodeType":"YulFunctionCall","src":"1091:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1080:7:53","nodeType":"YulIdentifier","src":"1080:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1025:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1052:5:53","nodeType":"YulTypedName","src":"1052:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1062:7:53","nodeType":"YulTypedName","src":"1062:7:53","type":""}],"src":"1025:126:53"},{"body":{"nativeSrc":"1189:28:53","nodeType":"YulBlock","src":"1189:28:53","statements":[{"nativeSrc":"1199:12:53","nodeType":"YulAssignment","src":"1199:12:53","value":{"name":"value","nativeSrc":"1206:5:53","nodeType":"YulIdentifier","src":"1206:5:53"},"variableNames":[{"name":"ret","nativeSrc":"1199:3:53","nodeType":"YulIdentifier","src":"1199:3:53"}]}]},"name":"identity","nativeSrc":"1157:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1175:5:53","nodeType":"YulTypedName","src":"1175:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1185:3:53","nodeType":"YulTypedName","src":"1185:3:53","type":""}],"src":"1157:60:53"},{"body":{"nativeSrc":"1283:82:53","nodeType":"YulBlock","src":"1283:82:53","statements":[{"nativeSrc":"1293:66:53","nodeType":"YulAssignment","src":"1293:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1351:5:53","nodeType":"YulIdentifier","src":"1351:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1333:17:53","nodeType":"YulIdentifier","src":"1333:17:53"},"nativeSrc":"1333:24:53","nodeType":"YulFunctionCall","src":"1333:24:53"}],"functionName":{"name":"identity","nativeSrc":"1324:8:53","nodeType":"YulIdentifier","src":"1324:8:53"},"nativeSrc":"1324:34:53","nodeType":"YulFunctionCall","src":"1324:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1306:17:53","nodeType":"YulIdentifier","src":"1306:17:53"},"nativeSrc":"1306:53:53","nodeType":"YulFunctionCall","src":"1306:53:53"},"variableNames":[{"name":"converted","nativeSrc":"1293:9:53","nodeType":"YulIdentifier","src":"1293:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1223:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1263:5:53","nodeType":"YulTypedName","src":"1263:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1273:9:53","nodeType":"YulTypedName","src":"1273:9:53","type":""}],"src":"1223:142:53"},{"body":{"nativeSrc":"1431:66:53","nodeType":"YulBlock","src":"1431:66:53","statements":[{"nativeSrc":"1441:50:53","nodeType":"YulAssignment","src":"1441:50:53","value":{"arguments":[{"name":"value","nativeSrc":"1485:5:53","nodeType":"YulIdentifier","src":"1485:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1454:30:53","nodeType":"YulIdentifier","src":"1454:30:53"},"nativeSrc":"1454:37:53","nodeType":"YulFunctionCall","src":"1454:37:53"},"variableNames":[{"name":"converted","nativeSrc":"1441:9:53","nodeType":"YulIdentifier","src":"1441:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"1371:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1411:5:53","nodeType":"YulTypedName","src":"1411:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1421:9:53","nodeType":"YulTypedName","src":"1421:9:53","type":""}],"src":"1371:126:53"},{"body":{"nativeSrc":"1579:66:53","nodeType":"YulBlock","src":"1579:66:53","statements":[{"nativeSrc":"1589:50:53","nodeType":"YulAssignment","src":"1589:50:53","value":{"arguments":[{"name":"value","nativeSrc":"1633:5:53","nodeType":"YulIdentifier","src":"1633:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1602:30:53","nodeType":"YulIdentifier","src":"1602:30:53"},"nativeSrc":"1602:37:53","nodeType":"YulFunctionCall","src":"1602:37:53"},"variableNames":[{"name":"converted","nativeSrc":"1589:9:53","nodeType":"YulIdentifier","src":"1589:9:53"}]}]},"name":"convert_t_contract$_Action_$12758_to_t_address","nativeSrc":"1503:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1559:5:53","nodeType":"YulTypedName","src":"1559:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1569:9:53","nodeType":"YulTypedName","src":"1569:9:53","type":""}],"src":"1503:142:53"},{"body":{"nativeSrc":"1722:82:53","nodeType":"YulBlock","src":"1722:82:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1739:3:53","nodeType":"YulIdentifier","src":"1739:3:53"},{"arguments":[{"name":"value","nativeSrc":"1791:5:53","nodeType":"YulIdentifier","src":"1791:5:53"}],"functionName":{"name":"convert_t_contract$_Action_$12758_to_t_address","nativeSrc":"1744:46:53","nodeType":"YulIdentifier","src":"1744:46:53"},"nativeSrc":"1744:53:53","nodeType":"YulFunctionCall","src":"1744:53:53"}],"functionName":{"name":"mstore","nativeSrc":"1732:6:53","nodeType":"YulIdentifier","src":"1732:6:53"},"nativeSrc":"1732:66:53","nodeType":"YulFunctionCall","src":"1732:66:53"},"nativeSrc":"1732:66:53","nodeType":"YulExpressionStatement","src":"1732:66:53"}]},"name":"abi_encode_t_contract$_Action_$12758_to_t_address","nativeSrc":"1651:153:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1710:5:53","nodeType":"YulTypedName","src":"1710:5:53","type":""},{"name":"pos","nativeSrc":"1717:3:53","nodeType":"YulTypedName","src":"1717:3:53","type":""}],"src":"1651:153:53"},{"body":{"nativeSrc":"1889:66:53","nodeType":"YulBlock","src":"1889:66:53","statements":[{"nativeSrc":"1899:50:53","nodeType":"YulAssignment","src":"1899:50:53","value":{"arguments":[{"name":"value","nativeSrc":"1943:5:53","nodeType":"YulIdentifier","src":"1943:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1912:30:53","nodeType":"YulIdentifier","src":"1912:30:53"},"nativeSrc":"1912:37:53","nodeType":"YulFunctionCall","src":"1912:37:53"},"variableNames":[{"name":"converted","nativeSrc":"1899:9:53","nodeType":"YulIdentifier","src":"1899:9:53"}]}]},"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"1810:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1869:5:53","nodeType":"YulTypedName","src":"1869:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1879:9:53","nodeType":"YulTypedName","src":"1879:9:53","type":""}],"src":"1810:145:53"},{"body":{"nativeSrc":"2035:85:53","nodeType":"YulBlock","src":"2035:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2052:3:53","nodeType":"YulIdentifier","src":"2052:3:53"},{"arguments":[{"name":"value","nativeSrc":"2107:5:53","nodeType":"YulIdentifier","src":"2107:5:53"}],"functionName":{"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"2057:49:53","nodeType":"YulIdentifier","src":"2057:49:53"},"nativeSrc":"2057:56:53","nodeType":"YulFunctionCall","src":"2057:56:53"}],"functionName":{"name":"mstore","nativeSrc":"2045:6:53","nodeType":"YulIdentifier","src":"2045:6:53"},"nativeSrc":"2045:69:53","nodeType":"YulFunctionCall","src":"2045:69:53"},"nativeSrc":"2045:69:53","nodeType":"YulExpressionStatement","src":"2045:69:53"}]},"name":"abi_encode_t_contract$_Validator_$18282_to_t_address","nativeSrc":"1961:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulTypedName","src":"2023:5:53","type":""},{"name":"pos","nativeSrc":"2030:3:53","nodeType":"YulTypedName","src":"2030:3:53","type":""}],"src":"1961:159:53"},{"body":{"nativeSrc":"2205:66:53","nodeType":"YulBlock","src":"2205:66:53","statements":[{"nativeSrc":"2215:50:53","nodeType":"YulAssignment","src":"2215:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2259:5:53","nodeType":"YulIdentifier","src":"2259:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2228:30:53","nodeType":"YulIdentifier","src":"2228:30:53"},"nativeSrc":"2228:37:53","nodeType":"YulFunctionCall","src":"2228:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2215:9:53","nodeType":"YulIdentifier","src":"2215:9:53"}]}]},"name":"convert_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"2126:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2185:5:53","nodeType":"YulTypedName","src":"2185:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2195:9:53","nodeType":"YulTypedName","src":"2195:9:53","type":""}],"src":"2126:145:53"},{"body":{"nativeSrc":"2351:85:53","nodeType":"YulBlock","src":"2351:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2368:3:53","nodeType":"YulIdentifier","src":"2368:3:53"},{"arguments":[{"name":"value","nativeSrc":"2423:5:53","nodeType":"YulIdentifier","src":"2423:5:53"}],"functionName":{"name":"convert_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"2373:49:53","nodeType":"YulIdentifier","src":"2373:49:53"},"nativeSrc":"2373:56:53","nodeType":"YulFunctionCall","src":"2373:56:53"}],"functionName":{"name":"mstore","nativeSrc":"2361:6:53","nodeType":"YulIdentifier","src":"2361:6:53"},"nativeSrc":"2361:69:53","nodeType":"YulFunctionCall","src":"2361:69:53"},"nativeSrc":"2361:69:53","nodeType":"YulExpressionStatement","src":"2361:69:53"}]},"name":"abi_encode_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"2277:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2339:5:53","nodeType":"YulTypedName","src":"2339:5:53","type":""},{"name":"pos","nativeSrc":"2346:3:53","nodeType":"YulTypedName","src":"2346:3:53","type":""}],"src":"2277:159:53"},{"body":{"nativeSrc":"2510:66:53","nodeType":"YulBlock","src":"2510:66:53","statements":[{"nativeSrc":"2520:50:53","nodeType":"YulAssignment","src":"2520:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2564:5:53","nodeType":"YulIdentifier","src":"2564:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2533:30:53","nodeType":"YulIdentifier","src":"2533:30:53"},"nativeSrc":"2533:37:53","nodeType":"YulFunctionCall","src":"2533:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2520:9:53","nodeType":"YulIdentifier","src":"2520:9:53"}]}]},"name":"convert_t_uint160_to_t_address_payable","nativeSrc":"2442:134:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2490:5:53","nodeType":"YulTypedName","src":"2490:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2500:9:53","nodeType":"YulTypedName","src":"2500:9:53","type":""}],"src":"2442:134:53"},{"body":{"nativeSrc":"2666:74:53","nodeType":"YulBlock","src":"2666:74:53","statements":[{"nativeSrc":"2676:58:53","nodeType":"YulAssignment","src":"2676:58:53","value":{"arguments":[{"name":"value","nativeSrc":"2728:5:53","nodeType":"YulIdentifier","src":"2728:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address_payable","nativeSrc":"2689:38:53","nodeType":"YulIdentifier","src":"2689:38:53"},"nativeSrc":"2689:45:53","nodeType":"YulFunctionCall","src":"2689:45:53"},"variableNames":[{"name":"converted","nativeSrc":"2676:9:53","nodeType":"YulIdentifier","src":"2676:9:53"}]}]},"name":"convert_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"2582:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2646:5:53","nodeType":"YulTypedName","src":"2646:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2656:9:53","nodeType":"YulTypedName","src":"2656:9:53","type":""}],"src":"2582:158:53"},{"body":{"nativeSrc":"2825:90:53","nodeType":"YulBlock","src":"2825:90:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2842:3:53","nodeType":"YulIdentifier","src":"2842:3:53"},{"arguments":[{"name":"value","nativeSrc":"2902:5:53","nodeType":"YulIdentifier","src":"2902:5:53"}],"functionName":{"name":"convert_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"2847:54:53","nodeType":"YulIdentifier","src":"2847:54:53"},"nativeSrc":"2847:61:53","nodeType":"YulFunctionCall","src":"2847:61:53"}],"functionName":{"name":"mstore","nativeSrc":"2835:6:53","nodeType":"YulIdentifier","src":"2835:6:53"},"nativeSrc":"2835:74:53","nodeType":"YulFunctionCall","src":"2835:74:53"},"nativeSrc":"2835:74:53","nodeType":"YulExpressionStatement","src":"2835:74:53"}]},"name":"abi_encode_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"2746:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2813:5:53","nodeType":"YulTypedName","src":"2813:5:53","type":""},{"name":"pos","nativeSrc":"2820:3:53","nodeType":"YulTypedName","src":"2820:3:53","type":""}],"src":"2746:169:53"},{"body":{"nativeSrc":"3014:40:53","nodeType":"YulBlock","src":"3014:40:53","statements":[{"nativeSrc":"3025:22:53","nodeType":"YulAssignment","src":"3025:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3041:5:53","nodeType":"YulIdentifier","src":"3041:5:53"}],"functionName":{"name":"mload","nativeSrc":"3035:5:53","nodeType":"YulIdentifier","src":"3035:5:53"},"nativeSrc":"3035:12:53","nodeType":"YulFunctionCall","src":"3035:12:53"},"variableNames":[{"name":"length","nativeSrc":"3025:6:53","nodeType":"YulIdentifier","src":"3025:6:53"}]}]},"name":"array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"2921:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2997:5:53","nodeType":"YulTypedName","src":"2997:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3007:6:53","nodeType":"YulTypedName","src":"3007:6:53","type":""}],"src":"2921:133:53"},{"body":{"nativeSrc":"3161:73:53","nodeType":"YulBlock","src":"3161:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3178:3:53","nodeType":"YulIdentifier","src":"3178:3:53"},{"name":"length","nativeSrc":"3183:6:53","nodeType":"YulIdentifier","src":"3183:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3171:6:53","nodeType":"YulIdentifier","src":"3171:6:53"},"nativeSrc":"3171:19:53","nodeType":"YulFunctionCall","src":"3171:19:53"},"nativeSrc":"3171:19:53","nodeType":"YulExpressionStatement","src":"3171:19:53"},{"nativeSrc":"3199:29:53","nodeType":"YulAssignment","src":"3199:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3218:3:53","nodeType":"YulIdentifier","src":"3218:3:53"},{"kind":"number","nativeSrc":"3223:4:53","nodeType":"YulLiteral","src":"3223:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3214:3:53","nodeType":"YulIdentifier","src":"3214:3:53"},"nativeSrc":"3214:14:53","nodeType":"YulFunctionCall","src":"3214:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3199:11:53","nodeType":"YulIdentifier","src":"3199:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"3060:174:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3133:3:53","nodeType":"YulTypedName","src":"3133:3:53","type":""},{"name":"length","nativeSrc":"3138:6:53","nodeType":"YulTypedName","src":"3138:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3149:11:53","nodeType":"YulTypedName","src":"3149:11:53","type":""}],"src":"3060:174:53"},{"body":{"nativeSrc":"3331:60:53","nodeType":"YulBlock","src":"3331:60:53","statements":[{"nativeSrc":"3341:11:53","nodeType":"YulAssignment","src":"3341:11:53","value":{"name":"ptr","nativeSrc":"3349:3:53","nodeType":"YulIdentifier","src":"3349:3:53"},"variableNames":[{"name":"data","nativeSrc":"3341:4:53","nodeType":"YulIdentifier","src":"3341:4:53"}]},{"nativeSrc":"3362:22:53","nodeType":"YulAssignment","src":"3362:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"3374:3:53","nodeType":"YulIdentifier","src":"3374:3:53"},{"kind":"number","nativeSrc":"3379:4:53","nodeType":"YulLiteral","src":"3379:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3370:3:53","nodeType":"YulIdentifier","src":"3370:3:53"},"nativeSrc":"3370:14:53","nodeType":"YulFunctionCall","src":"3370:14:53"},"variableNames":[{"name":"data","nativeSrc":"3362:4:53","nodeType":"YulIdentifier","src":"3362:4:53"}]}]},"name":"array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"3240:151:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"3326:4:53","nodeType":"YulTypedName","src":"3326:4:53","type":""}],"src":"3240:151:53"},{"body":{"nativeSrc":"3476:66:53","nodeType":"YulBlock","src":"3476:66:53","statements":[{"nativeSrc":"3486:50:53","nodeType":"YulAssignment","src":"3486:50:53","value":{"arguments":[{"name":"value","nativeSrc":"3530:5:53","nodeType":"YulIdentifier","src":"3530:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3499:30:53","nodeType":"YulIdentifier","src":"3499:30:53"},"nativeSrc":"3499:37:53","nodeType":"YulFunctionCall","src":"3499:37:53"},"variableNames":[{"name":"converted","nativeSrc":"3486:9:53","nodeType":"YulIdentifier","src":"3486:9:53"}]}]},"name":"convert_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3397:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3456:5:53","nodeType":"YulTypedName","src":"3456:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3466:9:53","nodeType":"YulTypedName","src":"3466:9:53","type":""}],"src":"3397:145:53"},{"body":{"nativeSrc":"3622:85:53","nodeType":"YulBlock","src":"3622:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3639:3:53","nodeType":"YulIdentifier","src":"3639:3:53"},{"arguments":[{"name":"value","nativeSrc":"3694:5:53","nodeType":"YulIdentifier","src":"3694:5:53"}],"functionName":{"name":"convert_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3644:49:53","nodeType":"YulIdentifier","src":"3644:49:53"},"nativeSrc":"3644:56:53","nodeType":"YulFunctionCall","src":"3644:56:53"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:53","nodeType":"YulIdentifier","src":"3632:6:53"},"nativeSrc":"3632:69:53","nodeType":"YulFunctionCall","src":"3632:69:53"},"nativeSrc":"3632:69:53","nodeType":"YulExpressionStatement","src":"3632:69:53"}]},"name":"abi_encode_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3548:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3610:5:53","nodeType":"YulTypedName","src":"3610:5:53","type":""},{"name":"pos","nativeSrc":"3617:3:53","nodeType":"YulTypedName","src":"3617:3:53","type":""}],"src":"3548:159:53"},{"body":{"nativeSrc":"3812:118:53","nodeType":"YulBlock","src":"3812:118:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"3875:6:53","nodeType":"YulIdentifier","src":"3875:6:53"},{"name":"pos","nativeSrc":"3883:3:53","nodeType":"YulIdentifier","src":"3883:3:53"}],"functionName":{"name":"abi_encode_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3822:52:53","nodeType":"YulIdentifier","src":"3822:52:53"},"nativeSrc":"3822:65:53","nodeType":"YulFunctionCall","src":"3822:65:53"},"nativeSrc":"3822:65:53","nodeType":"YulExpressionStatement","src":"3822:65:53"},{"nativeSrc":"3896:28:53","nodeType":"YulAssignment","src":"3896:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"3914:3:53","nodeType":"YulIdentifier","src":"3914:3:53"},{"kind":"number","nativeSrc":"3919:4:53","nodeType":"YulLiteral","src":"3919:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3910:3:53","nodeType":"YulIdentifier","src":"3910:3:53"},"nativeSrc":"3910:14:53","nodeType":"YulFunctionCall","src":"3910:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"3896:10:53","nodeType":"YulIdentifier","src":"3896:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3713:217:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"3785:6:53","nodeType":"YulTypedName","src":"3785:6:53","type":""},{"name":"pos","nativeSrc":"3793:3:53","nodeType":"YulTypedName","src":"3793:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"3801:10:53","nodeType":"YulTypedName","src":"3801:10:53","type":""}],"src":"3713:217:53"},{"body":{"nativeSrc":"4030:38:53","nodeType":"YulBlock","src":"4030:38:53","statements":[{"nativeSrc":"4040:22:53","nodeType":"YulAssignment","src":"4040:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"4052:3:53","nodeType":"YulIdentifier","src":"4052:3:53"},{"kind":"number","nativeSrc":"4057:4:53","nodeType":"YulLiteral","src":"4057:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4048:3:53","nodeType":"YulIdentifier","src":"4048:3:53"},"nativeSrc":"4048:14:53","nodeType":"YulFunctionCall","src":"4048:14:53"},"variableNames":[{"name":"next","nativeSrc":"4040:4:53","nodeType":"YulIdentifier","src":"4040:4:53"}]}]},"name":"array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"3936:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4017:3:53","nodeType":"YulTypedName","src":"4017:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"4025:4:53","nodeType":"YulTypedName","src":"4025:4:53","type":""}],"src":"3936:132:53"},{"body":{"nativeSrc":"4248:674:53","nodeType":"YulBlock","src":"4248:674:53","statements":[{"nativeSrc":"4258:87:53","nodeType":"YulVariableDeclaration","src":"4258:87:53","value":{"arguments":[{"name":"value","nativeSrc":"4339:5:53","nodeType":"YulIdentifier","src":"4339:5:53"}],"functionName":{"name":"array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"4272:66:53","nodeType":"YulIdentifier","src":"4272:66:53"},"nativeSrc":"4272:73:53","nodeType":"YulFunctionCall","src":"4272:73:53"},"variables":[{"name":"length","nativeSrc":"4262:6:53","nodeType":"YulTypedName","src":"4262:6:53","type":""}]},{"nativeSrc":"4354:83:53","nodeType":"YulAssignment","src":"4354:83:53","value":{"arguments":[{"name":"pos","nativeSrc":"4425:3:53","nodeType":"YulIdentifier","src":"4425:3:53"},{"name":"length","nativeSrc":"4430:6:53","nodeType":"YulIdentifier","src":"4430:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"4361:63:53","nodeType":"YulIdentifier","src":"4361:63:53"},"nativeSrc":"4361:76:53","nodeType":"YulFunctionCall","src":"4361:76:53"},"variableNames":[{"name":"pos","nativeSrc":"4354:3:53","nodeType":"YulIdentifier","src":"4354:3:53"}]},{"nativeSrc":"4446:90:53","nodeType":"YulVariableDeclaration","src":"4446:90:53","value":{"arguments":[{"name":"value","nativeSrc":"4530:5:53","nodeType":"YulIdentifier","src":"4530:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"4461:68:53","nodeType":"YulIdentifier","src":"4461:68:53"},"nativeSrc":"4461:75:53","nodeType":"YulFunctionCall","src":"4461:75:53"},"variables":[{"name":"baseRef","nativeSrc":"4450:7:53","nodeType":"YulTypedName","src":"4450:7:53","type":""}]},{"nativeSrc":"4545:21:53","nodeType":"YulVariableDeclaration","src":"4545:21:53","value":{"name":"baseRef","nativeSrc":"4559:7:53","nodeType":"YulIdentifier","src":"4559:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"4549:6:53","nodeType":"YulTypedName","src":"4549:6:53","type":""}]},{"body":{"nativeSrc":"4635:262:53","nodeType":"YulBlock","src":"4635:262:53","statements":[{"nativeSrc":"4649:34:53","nodeType":"YulVariableDeclaration","src":"4649:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4676:6:53","nodeType":"YulIdentifier","src":"4676:6:53"}],"functionName":{"name":"mload","nativeSrc":"4670:5:53","nodeType":"YulIdentifier","src":"4670:5:53"},"nativeSrc":"4670:13:53","nodeType":"YulFunctionCall","src":"4670:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"4653:13:53","nodeType":"YulTypedName","src":"4653:13:53","type":""}]},{"nativeSrc":"4696:89:53","nodeType":"YulAssignment","src":"4696:89:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"4766:13:53","nodeType":"YulIdentifier","src":"4766:13:53"},{"name":"pos","nativeSrc":"4781:3:53","nodeType":"YulIdentifier","src":"4781:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"4703:62:53","nodeType":"YulIdentifier","src":"4703:62:53"},"nativeSrc":"4703:82:53","nodeType":"YulFunctionCall","src":"4703:82:53"},"variableNames":[{"name":"pos","nativeSrc":"4696:3:53","nodeType":"YulIdentifier","src":"4696:3:53"}]},{"nativeSrc":"4798:89:53","nodeType":"YulAssignment","src":"4798:89:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4880:6:53","nodeType":"YulIdentifier","src":"4880:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"4808:71:53","nodeType":"YulIdentifier","src":"4808:71:53"},"nativeSrc":"4808:79:53","nodeType":"YulFunctionCall","src":"4808:79:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"4798:6:53","nodeType":"YulIdentifier","src":"4798:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4597:1:53","nodeType":"YulIdentifier","src":"4597:1:53"},{"name":"length","nativeSrc":"4600:6:53","nodeType":"YulIdentifier","src":"4600:6:53"}],"functionName":{"name":"lt","nativeSrc":"4594:2:53","nodeType":"YulIdentifier","src":"4594:2:53"},"nativeSrc":"4594:13:53","nodeType":"YulFunctionCall","src":"4594:13:53"},"nativeSrc":"4575:322:53","nodeType":"YulForLoop","post":{"nativeSrc":"4608:18:53","nodeType":"YulBlock","src":"4608:18:53","statements":[{"nativeSrc":"4610:14:53","nodeType":"YulAssignment","src":"4610:14:53","value":{"arguments":[{"name":"i","nativeSrc":"4619:1:53","nodeType":"YulIdentifier","src":"4619:1:53"},{"kind":"number","nativeSrc":"4622:1:53","nodeType":"YulLiteral","src":"4622:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4615:3:53","nodeType":"YulIdentifier","src":"4615:3:53"},"nativeSrc":"4615:9:53","nodeType":"YulFunctionCall","src":"4615:9:53"},"variableNames":[{"name":"i","nativeSrc":"4610:1:53","nodeType":"YulIdentifier","src":"4610:1:53"}]}]},"pre":{"nativeSrc":"4579:14:53","nodeType":"YulBlock","src":"4579:14:53","statements":[{"nativeSrc":"4581:10:53","nodeType":"YulVariableDeclaration","src":"4581:10:53","value":{"kind":"number","nativeSrc":"4590:1:53","nodeType":"YulLiteral","src":"4590:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4585:1:53","nodeType":"YulTypedName","src":"4585:1:53","type":""}]}]},"src":"4575:322:53"},{"nativeSrc":"4906:10:53","nodeType":"YulAssignment","src":"4906:10:53","value":{"name":"pos","nativeSrc":"4913:3:53","nodeType":"YulIdentifier","src":"4913:3:53"},"variableNames":[{"name":"end","nativeSrc":"4906:3:53","nodeType":"YulIdentifier","src":"4906:3:53"}]}]},"name":"abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"4115:807:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4227:5:53","nodeType":"YulTypedName","src":"4227:5:53","type":""},{"name":"pos","nativeSrc":"4234:3:53","nodeType":"YulTypedName","src":"4234:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4243:3:53","nodeType":"YulTypedName","src":"4243:3:53","type":""}],"src":"4115:807:53"},{"body":{"nativeSrc":"4972:57:53","nodeType":"YulBlock","src":"4972:57:53","statements":[{"nativeSrc":"4982:41:53","nodeType":"YulAssignment","src":"4982:41:53","value":{"arguments":[{"name":"value","nativeSrc":"4997:5:53","nodeType":"YulIdentifier","src":"4997:5:53"},{"kind":"number","nativeSrc":"5004:18:53","nodeType":"YulLiteral","src":"5004:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4993:3:53","nodeType":"YulIdentifier","src":"4993:3:53"},"nativeSrc":"4993:30:53","nodeType":"YulFunctionCall","src":"4993:30:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4982:7:53","nodeType":"YulIdentifier","src":"4982:7:53"}]}]},"name":"cleanup_t_uint64","nativeSrc":"4928:101:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4954:5:53","nodeType":"YulTypedName","src":"4954:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4964:7:53","nodeType":"YulTypedName","src":"4964:7:53","type":""}],"src":"4928:101:53"},{"body":{"nativeSrc":"5088:52:53","nodeType":"YulBlock","src":"5088:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5105:3:53","nodeType":"YulIdentifier","src":"5105:3:53"},{"arguments":[{"name":"value","nativeSrc":"5127:5:53","nodeType":"YulIdentifier","src":"5127:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"5110:16:53","nodeType":"YulIdentifier","src":"5110:16:53"},"nativeSrc":"5110:23:53","nodeType":"YulFunctionCall","src":"5110:23:53"}],"functionName":{"name":"mstore","nativeSrc":"5098:6:53","nodeType":"YulIdentifier","src":"5098:6:53"},"nativeSrc":"5098:36:53","nodeType":"YulFunctionCall","src":"5098:36:53"},"nativeSrc":"5098:36:53","nodeType":"YulExpressionStatement","src":"5098:36:53"}]},"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"5035:105:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5076:5:53","nodeType":"YulTypedName","src":"5076:5:53","type":""},{"name":"pos","nativeSrc":"5083:3:53","nodeType":"YulTypedName","src":"5083:3:53","type":""}],"src":"5035:105:53"},{"body":{"nativeSrc":"5201:53:53","nodeType":"YulBlock","src":"5201:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5218:3:53","nodeType":"YulIdentifier","src":"5218:3:53"},{"arguments":[{"name":"value","nativeSrc":"5241:5:53","nodeType":"YulIdentifier","src":"5241:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5223:17:53","nodeType":"YulIdentifier","src":"5223:17:53"},"nativeSrc":"5223:24:53","nodeType":"YulFunctionCall","src":"5223:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:53","nodeType":"YulIdentifier","src":"5211:6:53"},"nativeSrc":"5211:37:53","nodeType":"YulFunctionCall","src":"5211:37:53"},"nativeSrc":"5211:37:53","nodeType":"YulExpressionStatement","src":"5211:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"5146:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5189:5:53","nodeType":"YulTypedName","src":"5189:5:53","type":""},{"name":"pos","nativeSrc":"5196:3:53","nodeType":"YulTypedName","src":"5196:3:53","type":""}],"src":"5146:108:53"},{"body":{"nativeSrc":"5305:51:53","nodeType":"YulBlock","src":"5305:51:53","statements":[{"nativeSrc":"5315:35:53","nodeType":"YulAssignment","src":"5315:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5344:5:53","nodeType":"YulIdentifier","src":"5344:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5326:17:53","nodeType":"YulIdentifier","src":"5326:17:53"},"nativeSrc":"5326:24:53","nodeType":"YulFunctionCall","src":"5326:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5315:7:53","nodeType":"YulIdentifier","src":"5315:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5260:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5287:5:53","nodeType":"YulTypedName","src":"5287:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5297:7:53","nodeType":"YulTypedName","src":"5297:7:53","type":""}],"src":"5260:96:53"},{"body":{"nativeSrc":"5417:53:53","nodeType":"YulBlock","src":"5417:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5434:3:53","nodeType":"YulIdentifier","src":"5434:3:53"},{"arguments":[{"name":"value","nativeSrc":"5457:5:53","nodeType":"YulIdentifier","src":"5457:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5439:17:53","nodeType":"YulIdentifier","src":"5439:17:53"},"nativeSrc":"5439:24:53","nodeType":"YulFunctionCall","src":"5439:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5427:6:53","nodeType":"YulIdentifier","src":"5427:6:53"},"nativeSrc":"5427:37:53","nodeType":"YulFunctionCall","src":"5427:37:53"},"nativeSrc":"5427:37:53","nodeType":"YulExpressionStatement","src":"5427:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"5362:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5405:5:53","nodeType":"YulTypedName","src":"5405:5:53","type":""},{"name":"pos","nativeSrc":"5412:3:53","nodeType":"YulTypedName","src":"5412:3:53","type":""}],"src":"5362:108:53"},{"body":{"nativeSrc":"5652:1875:53","nodeType":"YulBlock","src":"5652:1875:53","statements":[{"nativeSrc":"5662:28:53","nodeType":"YulVariableDeclaration","src":"5662:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"5678:3:53","nodeType":"YulIdentifier","src":"5678:3:53"},{"kind":"number","nativeSrc":"5683:6:53","nodeType":"YulLiteral","src":"5683:6:53","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"5674:3:53","nodeType":"YulIdentifier","src":"5674:3:53"},"nativeSrc":"5674:16:53","nodeType":"YulFunctionCall","src":"5674:16:53"},"variables":[{"name":"tail","nativeSrc":"5666:4:53","nodeType":"YulTypedName","src":"5666:4:53","type":""}]},{"nativeSrc":"5700:182:53","nodeType":"YulBlock","src":"5700:182:53","statements":[{"nativeSrc":"5737:43:53","nodeType":"YulVariableDeclaration","src":"5737:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5767:5:53","nodeType":"YulIdentifier","src":"5767:5:53"},{"kind":"number","nativeSrc":"5774:4:53","nodeType":"YulLiteral","src":"5774:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5763:3:53","nodeType":"YulIdentifier","src":"5763:3:53"},"nativeSrc":"5763:16:53","nodeType":"YulFunctionCall","src":"5763:16:53"}],"functionName":{"name":"mload","nativeSrc":"5757:5:53","nodeType":"YulIdentifier","src":"5757:5:53"},"nativeSrc":"5757:23:53","nodeType":"YulFunctionCall","src":"5757:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5741:12:53","nodeType":"YulTypedName","src":"5741:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5843:12:53","nodeType":"YulIdentifier","src":"5843:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5861:3:53","nodeType":"YulIdentifier","src":"5861:3:53"},{"kind":"number","nativeSrc":"5866:4:53","nodeType":"YulLiteral","src":"5866:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5857:3:53","nodeType":"YulIdentifier","src":"5857:3:53"},"nativeSrc":"5857:14:53","nodeType":"YulFunctionCall","src":"5857:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Action_$12758_to_t_address","nativeSrc":"5793:49:53","nodeType":"YulIdentifier","src":"5793:49:53"},"nativeSrc":"5793:79:53","nodeType":"YulFunctionCall","src":"5793:79:53"},"nativeSrc":"5793:79:53","nodeType":"YulExpressionStatement","src":"5793:79:53"}]},{"nativeSrc":"5892:188:53","nodeType":"YulBlock","src":"5892:188:53","statements":[{"nativeSrc":"5932:43:53","nodeType":"YulVariableDeclaration","src":"5932:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5962:5:53","nodeType":"YulIdentifier","src":"5962:5:53"},{"kind":"number","nativeSrc":"5969:4:53","nodeType":"YulLiteral","src":"5969:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5958:3:53","nodeType":"YulIdentifier","src":"5958:3:53"},"nativeSrc":"5958:16:53","nodeType":"YulFunctionCall","src":"5958:16:53"}],"functionName":{"name":"mload","nativeSrc":"5952:5:53","nodeType":"YulIdentifier","src":"5952:5:53"},"nativeSrc":"5952:23:53","nodeType":"YulFunctionCall","src":"5952:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5936:12:53","nodeType":"YulTypedName","src":"5936:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6041:12:53","nodeType":"YulIdentifier","src":"6041:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6059:3:53","nodeType":"YulIdentifier","src":"6059:3:53"},{"kind":"number","nativeSrc":"6064:4:53","nodeType":"YulLiteral","src":"6064:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6055:3:53","nodeType":"YulIdentifier","src":"6055:3:53"},"nativeSrc":"6055:14:53","nodeType":"YulFunctionCall","src":"6055:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$18282_to_t_address","nativeSrc":"5988:52:53","nodeType":"YulIdentifier","src":"5988:52:53"},"nativeSrc":"5988:82:53","nodeType":"YulFunctionCall","src":"5988:82:53"},"nativeSrc":"5988:82:53","nodeType":"YulExpressionStatement","src":"5988:82:53"}]},{"nativeSrc":"6090:188:53","nodeType":"YulBlock","src":"6090:188:53","statements":[{"nativeSrc":"6130:43:53","nodeType":"YulVariableDeclaration","src":"6130:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6160:5:53","nodeType":"YulIdentifier","src":"6160:5:53"},{"kind":"number","nativeSrc":"6167:4:53","nodeType":"YulLiteral","src":"6167:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6156:3:53","nodeType":"YulIdentifier","src":"6156:3:53"},"nativeSrc":"6156:16:53","nodeType":"YulFunctionCall","src":"6156:16:53"}],"functionName":{"name":"mload","nativeSrc":"6150:5:53","nodeType":"YulIdentifier","src":"6150:5:53"},"nativeSrc":"6150:23:53","nodeType":"YulFunctionCall","src":"6150:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6134:12:53","nodeType":"YulTypedName","src":"6134:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6239:12:53","nodeType":"YulIdentifier","src":"6239:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6257:3:53","nodeType":"YulIdentifier","src":"6257:3:53"},{"kind":"number","nativeSrc":"6262:4:53","nodeType":"YulLiteral","src":"6262:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6253:3:53","nodeType":"YulIdentifier","src":"6253:3:53"},"nativeSrc":"6253:14:53","nodeType":"YulFunctionCall","src":"6253:14:53"}],"functionName":{"name":"abi_encode_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"6186:52:53","nodeType":"YulIdentifier","src":"6186:52:53"},"nativeSrc":"6186:82:53","nodeType":"YulFunctionCall","src":"6186:82:53"},"nativeSrc":"6186:82:53","nodeType":"YulExpressionStatement","src":"6186:82:53"}]},{"nativeSrc":"6288:190:53","nodeType":"YulBlock","src":"6288:190:53","statements":[{"nativeSrc":"6325:43:53","nodeType":"YulVariableDeclaration","src":"6325:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6355:5:53","nodeType":"YulIdentifier","src":"6355:5:53"},{"kind":"number","nativeSrc":"6362:4:53","nodeType":"YulLiteral","src":"6362:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6351:3:53","nodeType":"YulIdentifier","src":"6351:3:53"},"nativeSrc":"6351:16:53","nodeType":"YulFunctionCall","src":"6351:16:53"}],"functionName":{"name":"mload","nativeSrc":"6345:5:53","nodeType":"YulIdentifier","src":"6345:5:53"},"nativeSrc":"6345:23:53","nodeType":"YulFunctionCall","src":"6345:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6329:12:53","nodeType":"YulTypedName","src":"6329:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6439:12:53","nodeType":"YulIdentifier","src":"6439:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6457:3:53","nodeType":"YulIdentifier","src":"6457:3:53"},{"kind":"number","nativeSrc":"6462:4:53","nodeType":"YulLiteral","src":"6462:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6453:3:53","nodeType":"YulIdentifier","src":"6453:3:53"},"nativeSrc":"6453:14:53","nodeType":"YulFunctionCall","src":"6453:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"6381:57:53","nodeType":"YulIdentifier","src":"6381:57:53"},"nativeSrc":"6381:87:53","nodeType":"YulFunctionCall","src":"6381:87:53"},"nativeSrc":"6381:87:53","nodeType":"YulExpressionStatement","src":"6381:87:53"}]},{"nativeSrc":"6488:290:53","nodeType":"YulBlock","src":"6488:290:53","statements":[{"nativeSrc":"6529:43:53","nodeType":"YulVariableDeclaration","src":"6529:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6559:5:53","nodeType":"YulIdentifier","src":"6559:5:53"},{"kind":"number","nativeSrc":"6566:4:53","nodeType":"YulLiteral","src":"6566:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"6555:3:53","nodeType":"YulIdentifier","src":"6555:3:53"},"nativeSrc":"6555:16:53","nodeType":"YulFunctionCall","src":"6555:16:53"}],"functionName":{"name":"mload","nativeSrc":"6549:5:53","nodeType":"YulIdentifier","src":"6549:5:53"},"nativeSrc":"6549:23:53","nodeType":"YulFunctionCall","src":"6549:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6533:12:53","nodeType":"YulTypedName","src":"6533:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6597:3:53","nodeType":"YulIdentifier","src":"6597:3:53"},{"kind":"number","nativeSrc":"6602:4:53","nodeType":"YulLiteral","src":"6602:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"6593:3:53","nodeType":"YulIdentifier","src":"6593:3:53"},"nativeSrc":"6593:14:53","nodeType":"YulFunctionCall","src":"6593:14:53"},{"arguments":[{"name":"tail","nativeSrc":"6613:4:53","nodeType":"YulIdentifier","src":"6613:4:53"},{"name":"pos","nativeSrc":"6619:3:53","nodeType":"YulIdentifier","src":"6619:3:53"}],"functionName":{"name":"sub","nativeSrc":"6609:3:53","nodeType":"YulIdentifier","src":"6609:3:53"},"nativeSrc":"6609:14:53","nodeType":"YulFunctionCall","src":"6609:14:53"}],"functionName":{"name":"mstore","nativeSrc":"6586:6:53","nodeType":"YulIdentifier","src":"6586:6:53"},"nativeSrc":"6586:38:53","nodeType":"YulFunctionCall","src":"6586:38:53"},"nativeSrc":"6586:38:53","nodeType":"YulExpressionStatement","src":"6586:38:53"},{"nativeSrc":"6637:130:53","nodeType":"YulAssignment","src":"6637:130:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"6748:12:53","nodeType":"YulIdentifier","src":"6748:12:53"},{"name":"tail","nativeSrc":"6762:4:53","nodeType":"YulIdentifier","src":"6762:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"6645:102:53","nodeType":"YulIdentifier","src":"6645:102:53"},"nativeSrc":"6645:122:53","nodeType":"YulFunctionCall","src":"6645:122:53"},"variableNames":[{"name":"tail","nativeSrc":"6637:4:53","nodeType":"YulIdentifier","src":"6637:4:53"}]}]},{"nativeSrc":"6788:169:53","nodeType":"YulBlock","src":"6788:169:53","statements":[{"nativeSrc":"6830:43:53","nodeType":"YulVariableDeclaration","src":"6830:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6860:5:53","nodeType":"YulIdentifier","src":"6860:5:53"},{"kind":"number","nativeSrc":"6867:4:53","nodeType":"YulLiteral","src":"6867:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6856:3:53","nodeType":"YulIdentifier","src":"6856:3:53"},"nativeSrc":"6856:16:53","nodeType":"YulFunctionCall","src":"6856:16:53"}],"functionName":{"name":"mload","nativeSrc":"6850:5:53","nodeType":"YulIdentifier","src":"6850:5:53"},"nativeSrc":"6850:23:53","nodeType":"YulFunctionCall","src":"6850:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6834:12:53","nodeType":"YulTypedName","src":"6834:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6918:12:53","nodeType":"YulIdentifier","src":"6918:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6936:3:53","nodeType":"YulIdentifier","src":"6936:3:53"},{"kind":"number","nativeSrc":"6941:4:53","nodeType":"YulLiteral","src":"6941:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6932:3:53","nodeType":"YulIdentifier","src":"6932:3:53"},"nativeSrc":"6932:14:53","nodeType":"YulFunctionCall","src":"6932:14:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"6886:31:53","nodeType":"YulIdentifier","src":"6886:31:53"},"nativeSrc":"6886:61:53","nodeType":"YulFunctionCall","src":"6886:61:53"},"nativeSrc":"6886:61:53","nodeType":"YulExpressionStatement","src":"6886:61:53"}]},{"nativeSrc":"6967:169:53","nodeType":"YulBlock","src":"6967:169:53","statements":[{"nativeSrc":"7009:43:53","nodeType":"YulVariableDeclaration","src":"7009:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7039:5:53","nodeType":"YulIdentifier","src":"7039:5:53"},{"kind":"number","nativeSrc":"7046:4:53","nodeType":"YulLiteral","src":"7046:4:53","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"7035:3:53","nodeType":"YulIdentifier","src":"7035:3:53"},"nativeSrc":"7035:16:53","nodeType":"YulFunctionCall","src":"7035:16:53"}],"functionName":{"name":"mload","nativeSrc":"7029:5:53","nodeType":"YulIdentifier","src":"7029:5:53"},"nativeSrc":"7029:23:53","nodeType":"YulFunctionCall","src":"7029:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"7013:12:53","nodeType":"YulTypedName","src":"7013:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7097:12:53","nodeType":"YulIdentifier","src":"7097:12:53"},{"arguments":[{"name":"pos","nativeSrc":"7115:3:53","nodeType":"YulIdentifier","src":"7115:3:53"},{"kind":"number","nativeSrc":"7120:4:53","nodeType":"YulLiteral","src":"7120:4:53","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"7111:3:53","nodeType":"YulIdentifier","src":"7111:3:53"},"nativeSrc":"7111:14:53","nodeType":"YulFunctionCall","src":"7111:14:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"7065:31:53","nodeType":"YulIdentifier","src":"7065:31:53"},"nativeSrc":"7065:61:53","nodeType":"YulFunctionCall","src":"7065:61:53"},"nativeSrc":"7065:61:53","nodeType":"YulExpressionStatement","src":"7065:61:53"}]},{"nativeSrc":"7146:175:53","nodeType":"YulBlock","src":"7146:175:53","statements":[{"nativeSrc":"7192:43:53","nodeType":"YulVariableDeclaration","src":"7192:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7222:5:53","nodeType":"YulIdentifier","src":"7222:5:53"},{"kind":"number","nativeSrc":"7229:4:53","nodeType":"YulLiteral","src":"7229:4:53","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"7218:3:53","nodeType":"YulIdentifier","src":"7218:3:53"},"nativeSrc":"7218:16:53","nodeType":"YulFunctionCall","src":"7218:16:53"}],"functionName":{"name":"mload","nativeSrc":"7212:5:53","nodeType":"YulIdentifier","src":"7212:5:53"},"nativeSrc":"7212:23:53","nodeType":"YulFunctionCall","src":"7212:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"7196:12:53","nodeType":"YulTypedName","src":"7196:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7282:12:53","nodeType":"YulIdentifier","src":"7282:12:53"},{"arguments":[{"name":"pos","nativeSrc":"7300:3:53","nodeType":"YulIdentifier","src":"7300:3:53"},{"kind":"number","nativeSrc":"7305:4:53","nodeType":"YulLiteral","src":"7305:4:53","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"7296:3:53","nodeType":"YulIdentifier","src":"7296:3:53"},"nativeSrc":"7296:14:53","nodeType":"YulFunctionCall","src":"7296:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"7248:33:53","nodeType":"YulIdentifier","src":"7248:33:53"},"nativeSrc":"7248:63:53","nodeType":"YulFunctionCall","src":"7248:63:53"},"nativeSrc":"7248:63:53","nodeType":"YulExpressionStatement","src":"7248:63:53"}]},{"nativeSrc":"7331:169:53","nodeType":"YulBlock","src":"7331:169:53","statements":[{"nativeSrc":"7367:45:53","nodeType":"YulVariableDeclaration","src":"7367:45:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7397:5:53","nodeType":"YulIdentifier","src":"7397:5:53"},{"kind":"number","nativeSrc":"7404:6:53","nodeType":"YulLiteral","src":"7404:6:53","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"7393:3:53","nodeType":"YulIdentifier","src":"7393:3:53"},"nativeSrc":"7393:18:53","nodeType":"YulFunctionCall","src":"7393:18:53"}],"functionName":{"name":"mload","nativeSrc":"7387:5:53","nodeType":"YulIdentifier","src":"7387:5:53"},"nativeSrc":"7387:25:53","nodeType":"YulFunctionCall","src":"7387:25:53"},"variables":[{"name":"memberValue0","nativeSrc":"7371:12:53","nodeType":"YulTypedName","src":"7371:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7459:12:53","nodeType":"YulIdentifier","src":"7459:12:53"},{"arguments":[{"name":"pos","nativeSrc":"7477:3:53","nodeType":"YulIdentifier","src":"7477:3:53"},{"kind":"number","nativeSrc":"7482:6:53","nodeType":"YulLiteral","src":"7482:6:53","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"7473:3:53","nodeType":"YulIdentifier","src":"7473:3:53"},"nativeSrc":"7473:16:53","nodeType":"YulFunctionCall","src":"7473:16:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"7425:33:53","nodeType":"YulIdentifier","src":"7425:33:53"},"nativeSrc":"7425:65:53","nodeType":"YulFunctionCall","src":"7425:65:53"},"nativeSrc":"7425:65:53","nodeType":"YulExpressionStatement","src":"7425:65:53"}]},{"nativeSrc":"7510:11:53","nodeType":"YulAssignment","src":"7510:11:53","value":{"name":"tail","nativeSrc":"7517:4:53","nodeType":"YulIdentifier","src":"7517:4:53"},"variableNames":[{"name":"end","nativeSrc":"7510:3:53","nodeType":"YulIdentifier","src":"7510:3:53"}]}]},"name":"abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack","nativeSrc":"5530:1997:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5631:5:53","nodeType":"YulTypedName","src":"5631:5:53","type":""},{"name":"pos","nativeSrc":"5638:3:53","nodeType":"YulTypedName","src":"5638:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5647:3:53","nodeType":"YulTypedName","src":"5647:3:53","type":""}],"src":"5530:1997:53"},{"body":{"nativeSrc":"7679:223:53","nodeType":"YulBlock","src":"7679:223:53","statements":[{"nativeSrc":"7689:26:53","nodeType":"YulAssignment","src":"7689:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7701:9:53","nodeType":"YulIdentifier","src":"7701:9:53"},{"kind":"number","nativeSrc":"7712:2:53","nodeType":"YulLiteral","src":"7712:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7697:3:53","nodeType":"YulIdentifier","src":"7697:3:53"},"nativeSrc":"7697:18:53","nodeType":"YulFunctionCall","src":"7697:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7689:4:53","nodeType":"YulIdentifier","src":"7689:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7736:9:53","nodeType":"YulIdentifier","src":"7736:9:53"},{"kind":"number","nativeSrc":"7747:1:53","nodeType":"YulLiteral","src":"7747:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7732:3:53","nodeType":"YulIdentifier","src":"7732:3:53"},"nativeSrc":"7732:17:53","nodeType":"YulFunctionCall","src":"7732:17:53"},{"arguments":[{"name":"tail","nativeSrc":"7755:4:53","nodeType":"YulIdentifier","src":"7755:4:53"},{"name":"headStart","nativeSrc":"7761:9:53","nodeType":"YulIdentifier","src":"7761:9:53"}],"functionName":{"name":"sub","nativeSrc":"7751:3:53","nodeType":"YulIdentifier","src":"7751:3:53"},"nativeSrc":"7751:20:53","nodeType":"YulFunctionCall","src":"7751:20:53"}],"functionName":{"name":"mstore","nativeSrc":"7725:6:53","nodeType":"YulIdentifier","src":"7725:6:53"},"nativeSrc":"7725:47:53","nodeType":"YulFunctionCall","src":"7725:47:53"},"nativeSrc":"7725:47:53","nodeType":"YulExpressionStatement","src":"7725:47:53"},{"nativeSrc":"7781:114:53","nodeType":"YulAssignment","src":"7781:114:53","value":{"arguments":[{"name":"value0","nativeSrc":"7881:6:53","nodeType":"YulIdentifier","src":"7881:6:53"},{"name":"tail","nativeSrc":"7890:4:53","nodeType":"YulIdentifier","src":"7890:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack","nativeSrc":"7789:91:53","nodeType":"YulIdentifier","src":"7789:91:53"},"nativeSrc":"7789:106:53","nodeType":"YulFunctionCall","src":"7789:106:53"},"variableNames":[{"name":"tail","nativeSrc":"7781:4:53","nodeType":"YulIdentifier","src":"7781:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Boost_$17616_memory_ptr__to_t_struct$_Boost_$17616_memory_ptr__fromStack_reversed","nativeSrc":"7533:369:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7651:9:53","nodeType":"YulTypedName","src":"7651:9:53","type":""},{"name":"value0","nativeSrc":"7663:6:53","nodeType":"YulTypedName","src":"7663:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7674:4:53","nodeType":"YulTypedName","src":"7674:4:53","type":""}],"src":"7533:369:53"},{"body":{"nativeSrc":"7973:53:53","nodeType":"YulBlock","src":"7973:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7990:3:53","nodeType":"YulIdentifier","src":"7990:3:53"},{"arguments":[{"name":"value","nativeSrc":"8013:5:53","nodeType":"YulIdentifier","src":"8013:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7995:17:53","nodeType":"YulIdentifier","src":"7995:17:53"},"nativeSrc":"7995:24:53","nodeType":"YulFunctionCall","src":"7995:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7983:6:53","nodeType":"YulIdentifier","src":"7983:6:53"},"nativeSrc":"7983:37:53","nodeType":"YulFunctionCall","src":"7983:37:53"},"nativeSrc":"7983:37:53","nodeType":"YulExpressionStatement","src":"7983:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7908:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7961:5:53","nodeType":"YulTypedName","src":"7961:5:53","type":""},{"name":"pos","nativeSrc":"7968:3:53","nodeType":"YulTypedName","src":"7968:3:53","type":""}],"src":"7908:118:53"},{"body":{"nativeSrc":"8130:124:53","nodeType":"YulBlock","src":"8130:124:53","statements":[{"nativeSrc":"8140:26:53","nodeType":"YulAssignment","src":"8140:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8152:9:53","nodeType":"YulIdentifier","src":"8152:9:53"},{"kind":"number","nativeSrc":"8163:2:53","nodeType":"YulLiteral","src":"8163:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8148:3:53","nodeType":"YulIdentifier","src":"8148:3:53"},"nativeSrc":"8148:18:53","nodeType":"YulFunctionCall","src":"8148:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8140:4:53","nodeType":"YulIdentifier","src":"8140:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8220:6:53","nodeType":"YulIdentifier","src":"8220:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8233:9:53","nodeType":"YulIdentifier","src":"8233:9:53"},{"kind":"number","nativeSrc":"8244:1:53","nodeType":"YulLiteral","src":"8244:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8229:3:53","nodeType":"YulIdentifier","src":"8229:3:53"},"nativeSrc":"8229:17:53","nodeType":"YulFunctionCall","src":"8229:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8176:43:53","nodeType":"YulIdentifier","src":"8176:43:53"},"nativeSrc":"8176:71:53","nodeType":"YulFunctionCall","src":"8176:71:53"},"nativeSrc":"8176:71:53","nodeType":"YulExpressionStatement","src":"8176:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8032:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8102:9:53","nodeType":"YulTypedName","src":"8102:9:53","type":""},{"name":"value0","nativeSrc":"8114:6:53","nodeType":"YulTypedName","src":"8114:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8125:4:53","nodeType":"YulTypedName","src":"8125:4:53","type":""}],"src":"8032:222:53"},{"body":{"nativeSrc":"8303:79:53","nodeType":"YulBlock","src":"8303:79:53","statements":[{"body":{"nativeSrc":"8360:16:53","nodeType":"YulBlock","src":"8360:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8369:1:53","nodeType":"YulLiteral","src":"8369:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8372:1:53","nodeType":"YulLiteral","src":"8372:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8362:6:53","nodeType":"YulIdentifier","src":"8362:6:53"},"nativeSrc":"8362:12:53","nodeType":"YulFunctionCall","src":"8362:12:53"},"nativeSrc":"8362:12:53","nodeType":"YulExpressionStatement","src":"8362:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8326:5:53","nodeType":"YulIdentifier","src":"8326:5:53"},{"arguments":[{"name":"value","nativeSrc":"8351:5:53","nodeType":"YulIdentifier","src":"8351:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8333:17:53","nodeType":"YulIdentifier","src":"8333:17:53"},"nativeSrc":"8333:24:53","nodeType":"YulFunctionCall","src":"8333:24:53"}],"functionName":{"name":"eq","nativeSrc":"8323:2:53","nodeType":"YulIdentifier","src":"8323:2:53"},"nativeSrc":"8323:35:53","nodeType":"YulFunctionCall","src":"8323:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8316:6:53","nodeType":"YulIdentifier","src":"8316:6:53"},"nativeSrc":"8316:43:53","nodeType":"YulFunctionCall","src":"8316:43:53"},"nativeSrc":"8313:63:53","nodeType":"YulIf","src":"8313:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"8260:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8296:5:53","nodeType":"YulTypedName","src":"8296:5:53","type":""}],"src":"8260:122:53"},{"body":{"nativeSrc":"8440:87:53","nodeType":"YulBlock","src":"8440:87:53","statements":[{"nativeSrc":"8450:29:53","nodeType":"YulAssignment","src":"8450:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8472:6:53","nodeType":"YulIdentifier","src":"8472:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8459:12:53","nodeType":"YulIdentifier","src":"8459:12:53"},"nativeSrc":"8459:20:53","nodeType":"YulFunctionCall","src":"8459:20:53"},"variableNames":[{"name":"value","nativeSrc":"8450:5:53","nodeType":"YulIdentifier","src":"8450:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8515:5:53","nodeType":"YulIdentifier","src":"8515:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"8488:26:53","nodeType":"YulIdentifier","src":"8488:26:53"},"nativeSrc":"8488:33:53","nodeType":"YulFunctionCall","src":"8488:33:53"},"nativeSrc":"8488:33:53","nodeType":"YulExpressionStatement","src":"8488:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"8388:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8418:6:53","nodeType":"YulTypedName","src":"8418:6:53","type":""},{"name":"end","nativeSrc":"8426:3:53","nodeType":"YulTypedName","src":"8426:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8434:5:53","nodeType":"YulTypedName","src":"8434:5:53","type":""}],"src":"8388:139:53"},{"body":{"nativeSrc":"8599:263:53","nodeType":"YulBlock","src":"8599:263:53","statements":[{"body":{"nativeSrc":"8645:83:53","nodeType":"YulBlock","src":"8645:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8647:77:53","nodeType":"YulIdentifier","src":"8647:77:53"},"nativeSrc":"8647:79:53","nodeType":"YulFunctionCall","src":"8647:79:53"},"nativeSrc":"8647:79:53","nodeType":"YulExpressionStatement","src":"8647:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8620:7:53","nodeType":"YulIdentifier","src":"8620:7:53"},{"name":"headStart","nativeSrc":"8629:9:53","nodeType":"YulIdentifier","src":"8629:9:53"}],"functionName":{"name":"sub","nativeSrc":"8616:3:53","nodeType":"YulIdentifier","src":"8616:3:53"},"nativeSrc":"8616:23:53","nodeType":"YulFunctionCall","src":"8616:23:53"},{"kind":"number","nativeSrc":"8641:2:53","nodeType":"YulLiteral","src":"8641:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8612:3:53","nodeType":"YulIdentifier","src":"8612:3:53"},"nativeSrc":"8612:32:53","nodeType":"YulFunctionCall","src":"8612:32:53"},"nativeSrc":"8609:119:53","nodeType":"YulIf","src":"8609:119:53"},{"nativeSrc":"8738:117:53","nodeType":"YulBlock","src":"8738:117:53","statements":[{"nativeSrc":"8753:15:53","nodeType":"YulVariableDeclaration","src":"8753:15:53","value":{"kind":"number","nativeSrc":"8767:1:53","nodeType":"YulLiteral","src":"8767:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8757:6:53","nodeType":"YulTypedName","src":"8757:6:53","type":""}]},{"nativeSrc":"8782:63:53","nodeType":"YulAssignment","src":"8782:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8817:9:53","nodeType":"YulIdentifier","src":"8817:9:53"},{"name":"offset","nativeSrc":"8828:6:53","nodeType":"YulIdentifier","src":"8828:6:53"}],"functionName":{"name":"add","nativeSrc":"8813:3:53","nodeType":"YulIdentifier","src":"8813:3:53"},"nativeSrc":"8813:22:53","nodeType":"YulFunctionCall","src":"8813:22:53"},{"name":"dataEnd","nativeSrc":"8837:7:53","nodeType":"YulIdentifier","src":"8837:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8792:20:53","nodeType":"YulIdentifier","src":"8792:20:53"},"nativeSrc":"8792:53:53","nodeType":"YulFunctionCall","src":"8792:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8782:6:53","nodeType":"YulIdentifier","src":"8782:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"8533:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8569:9:53","nodeType":"YulTypedName","src":"8569:9:53","type":""},{"name":"dataEnd","nativeSrc":"8580:7:53","nodeType":"YulTypedName","src":"8580:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8592:6:53","nodeType":"YulTypedName","src":"8592:6:53","type":""}],"src":"8533:329:53"},{"body":{"nativeSrc":"8933:53:53","nodeType":"YulBlock","src":"8933:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8950:3:53","nodeType":"YulIdentifier","src":"8950:3:53"},{"arguments":[{"name":"value","nativeSrc":"8973:5:53","nodeType":"YulIdentifier","src":"8973:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8955:17:53","nodeType":"YulIdentifier","src":"8955:17:53"},"nativeSrc":"8955:24:53","nodeType":"YulFunctionCall","src":"8955:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8943:6:53","nodeType":"YulIdentifier","src":"8943:6:53"},"nativeSrc":"8943:37:53","nodeType":"YulFunctionCall","src":"8943:37:53"},"nativeSrc":"8943:37:53","nodeType":"YulExpressionStatement","src":"8943:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"8868:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8921:5:53","nodeType":"YulTypedName","src":"8921:5:53","type":""},{"name":"pos","nativeSrc":"8928:3:53","nodeType":"YulTypedName","src":"8928:3:53","type":""}],"src":"8868:118:53"},{"body":{"nativeSrc":"9090:124:53","nodeType":"YulBlock","src":"9090:124:53","statements":[{"nativeSrc":"9100:26:53","nodeType":"YulAssignment","src":"9100:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9112:9:53","nodeType":"YulIdentifier","src":"9112:9:53"},{"kind":"number","nativeSrc":"9123:2:53","nodeType":"YulLiteral","src":"9123:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9108:3:53","nodeType":"YulIdentifier","src":"9108:3:53"},"nativeSrc":"9108:18:53","nodeType":"YulFunctionCall","src":"9108:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9100:4:53","nodeType":"YulIdentifier","src":"9100:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9180:6:53","nodeType":"YulIdentifier","src":"9180:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9193:9:53","nodeType":"YulIdentifier","src":"9193:9:53"},{"kind":"number","nativeSrc":"9204:1:53","nodeType":"YulLiteral","src":"9204:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9189:3:53","nodeType":"YulIdentifier","src":"9189:3:53"},"nativeSrc":"9189:17:53","nodeType":"YulFunctionCall","src":"9189:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9136:43:53","nodeType":"YulIdentifier","src":"9136:43:53"},"nativeSrc":"9136:71:53","nodeType":"YulFunctionCall","src":"9136:71:53"},"nativeSrc":"9136:71:53","nodeType":"YulExpressionStatement","src":"9136:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"8992:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9062:9:53","nodeType":"YulTypedName","src":"9062:9:53","type":""},{"name":"value0","nativeSrc":"9074:6:53","nodeType":"YulTypedName","src":"9074:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9085:4:53","nodeType":"YulTypedName","src":"9085:4:53","type":""}],"src":"8992:222:53"},{"body":{"nativeSrc":"9303:66:53","nodeType":"YulBlock","src":"9303:66:53","statements":[{"nativeSrc":"9313:50:53","nodeType":"YulAssignment","src":"9313:50:53","value":{"arguments":[{"name":"value","nativeSrc":"9357:5:53","nodeType":"YulIdentifier","src":"9357:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"9326:30:53","nodeType":"YulIdentifier","src":"9326:30:53"},"nativeSrc":"9326:37:53","nodeType":"YulFunctionCall","src":"9326:37:53"},"variableNames":[{"name":"converted","nativeSrc":"9313:9:53","nodeType":"YulIdentifier","src":"9313:9:53"}]}]},"name":"convert_t_contract$_BoostRegistry_$12680_to_t_address","nativeSrc":"9220:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9283:5:53","nodeType":"YulTypedName","src":"9283:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"9293:9:53","nodeType":"YulTypedName","src":"9293:9:53","type":""}],"src":"9220:149:53"},{"body":{"nativeSrc":"9463:89:53","nodeType":"YulBlock","src":"9463:89:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9480:3:53","nodeType":"YulIdentifier","src":"9480:3:53"},{"arguments":[{"name":"value","nativeSrc":"9539:5:53","nodeType":"YulIdentifier","src":"9539:5:53"}],"functionName":{"name":"convert_t_contract$_BoostRegistry_$12680_to_t_address","nativeSrc":"9485:53:53","nodeType":"YulIdentifier","src":"9485:53:53"},"nativeSrc":"9485:60:53","nodeType":"YulFunctionCall","src":"9485:60:53"}],"functionName":{"name":"mstore","nativeSrc":"9473:6:53","nodeType":"YulIdentifier","src":"9473:6:53"},"nativeSrc":"9473:73:53","nodeType":"YulFunctionCall","src":"9473:73:53"},"nativeSrc":"9473:73:53","nodeType":"YulExpressionStatement","src":"9473:73:53"}]},"name":"abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack","nativeSrc":"9375:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9451:5:53","nodeType":"YulTypedName","src":"9451:5:53","type":""},{"name":"pos","nativeSrc":"9458:3:53","nodeType":"YulTypedName","src":"9458:3:53","type":""}],"src":"9375:177:53"},{"body":{"nativeSrc":"9679:147:53","nodeType":"YulBlock","src":"9679:147:53","statements":[{"nativeSrc":"9689:26:53","nodeType":"YulAssignment","src":"9689:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9701:9:53","nodeType":"YulIdentifier","src":"9701:9:53"},{"kind":"number","nativeSrc":"9712:2:53","nodeType":"YulLiteral","src":"9712:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9697:3:53","nodeType":"YulIdentifier","src":"9697:3:53"},"nativeSrc":"9697:18:53","nodeType":"YulFunctionCall","src":"9697:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9689:4:53","nodeType":"YulIdentifier","src":"9689:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9792:6:53","nodeType":"YulIdentifier","src":"9792:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9805:9:53","nodeType":"YulIdentifier","src":"9805:9:53"},{"kind":"number","nativeSrc":"9816:1:53","nodeType":"YulLiteral","src":"9816:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9801:3:53","nodeType":"YulIdentifier","src":"9801:3:53"},"nativeSrc":"9801:17:53","nodeType":"YulFunctionCall","src":"9801:17:53"}],"functionName":{"name":"abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack","nativeSrc":"9725:66:53","nodeType":"YulIdentifier","src":"9725:66:53"},"nativeSrc":"9725:94:53","nodeType":"YulFunctionCall","src":"9725:94:53"},"nativeSrc":"9725:94:53","nodeType":"YulExpressionStatement","src":"9725:94:53"}]},"name":"abi_encode_tuple_t_contract$_BoostRegistry_$12680__to_t_address__fromStack_reversed","nativeSrc":"9558:268:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9651:9:53","nodeType":"YulTypedName","src":"9651:9:53","type":""},{"name":"value0","nativeSrc":"9663:6:53","nodeType":"YulTypedName","src":"9663:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9674:4:53","nodeType":"YulTypedName","src":"9674:4:53","type":""}],"src":"9558:268:53"},{"body":{"nativeSrc":"9895:52:53","nodeType":"YulBlock","src":"9895:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9912:3:53","nodeType":"YulIdentifier","src":"9912:3:53"},{"arguments":[{"name":"value","nativeSrc":"9934:5:53","nodeType":"YulIdentifier","src":"9934:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"9917:16:53","nodeType":"YulIdentifier","src":"9917:16:53"},"nativeSrc":"9917:23:53","nodeType":"YulFunctionCall","src":"9917:23:53"}],"functionName":{"name":"mstore","nativeSrc":"9905:6:53","nodeType":"YulIdentifier","src":"9905:6:53"},"nativeSrc":"9905:36:53","nodeType":"YulFunctionCall","src":"9905:36:53"},"nativeSrc":"9905:36:53","nodeType":"YulExpressionStatement","src":"9905:36:53"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"9832:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9883:5:53","nodeType":"YulTypedName","src":"9883:5:53","type":""},{"name":"pos","nativeSrc":"9890:3:53","nodeType":"YulTypedName","src":"9890:3:53","type":""}],"src":"9832:115:53"},{"body":{"nativeSrc":"10049:122:53","nodeType":"YulBlock","src":"10049:122:53","statements":[{"nativeSrc":"10059:26:53","nodeType":"YulAssignment","src":"10059:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"10071:9:53","nodeType":"YulIdentifier","src":"10071:9:53"},{"kind":"number","nativeSrc":"10082:2:53","nodeType":"YulLiteral","src":"10082:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10067:3:53","nodeType":"YulIdentifier","src":"10067:3:53"},"nativeSrc":"10067:18:53","nodeType":"YulFunctionCall","src":"10067:18:53"},"variableNames":[{"name":"tail","nativeSrc":"10059:4:53","nodeType":"YulIdentifier","src":"10059:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10137:6:53","nodeType":"YulIdentifier","src":"10137:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10150:9:53","nodeType":"YulIdentifier","src":"10150:9:53"},{"kind":"number","nativeSrc":"10161:1:53","nodeType":"YulLiteral","src":"10161:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10146:3:53","nodeType":"YulIdentifier","src":"10146:3:53"},"nativeSrc":"10146:17:53","nodeType":"YulFunctionCall","src":"10146:17:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"10095:41:53","nodeType":"YulIdentifier","src":"10095:41:53"},"nativeSrc":"10095:69:53","nodeType":"YulFunctionCall","src":"10095:69:53"},"nativeSrc":"10095:69:53","nodeType":"YulExpressionStatement","src":"10095:69:53"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"9953:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10021:9:53","nodeType":"YulTypedName","src":"10021:9:53","type":""},{"name":"value0","nativeSrc":"10033:6:53","nodeType":"YulTypedName","src":"10033:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10044:4:53","nodeType":"YulTypedName","src":"10044:4:53","type":""}],"src":"9953:218:53"},{"body":{"nativeSrc":"10266:28:53","nodeType":"YulBlock","src":"10266:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10283:1:53","nodeType":"YulLiteral","src":"10283:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10286:1:53","nodeType":"YulLiteral","src":"10286:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10276:6:53","nodeType":"YulIdentifier","src":"10276:6:53"},"nativeSrc":"10276:12:53","nodeType":"YulFunctionCall","src":"10276:12:53"},"nativeSrc":"10276:12:53","nodeType":"YulExpressionStatement","src":"10276:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10177:117:53","nodeType":"YulFunctionDefinition","src":"10177:117:53"},{"body":{"nativeSrc":"10389:28:53","nodeType":"YulBlock","src":"10389:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10406:1:53","nodeType":"YulLiteral","src":"10406:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10409:1:53","nodeType":"YulLiteral","src":"10409:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10399:6:53","nodeType":"YulIdentifier","src":"10399:6:53"},"nativeSrc":"10399:12:53","nodeType":"YulFunctionCall","src":"10399:12:53"},"nativeSrc":"10399:12:53","nodeType":"YulExpressionStatement","src":"10399:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10300:117:53","nodeType":"YulFunctionDefinition","src":"10300:117:53"},{"body":{"nativeSrc":"10512:28:53","nodeType":"YulBlock","src":"10512:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10529:1:53","nodeType":"YulLiteral","src":"10529:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10532:1:53","nodeType":"YulLiteral","src":"10532:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10522:6:53","nodeType":"YulIdentifier","src":"10522:6:53"},"nativeSrc":"10522:12:53","nodeType":"YulFunctionCall","src":"10522:12:53"},"nativeSrc":"10522:12:53","nodeType":"YulExpressionStatement","src":"10522:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10423:117:53","nodeType":"YulFunctionDefinition","src":"10423:117:53"},{"body":{"nativeSrc":"10633:478:53","nodeType":"YulBlock","src":"10633:478:53","statements":[{"body":{"nativeSrc":"10682:83:53","nodeType":"YulBlock","src":"10682:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10684:77:53","nodeType":"YulIdentifier","src":"10684:77:53"},"nativeSrc":"10684:79:53","nodeType":"YulFunctionCall","src":"10684:79:53"},"nativeSrc":"10684:79:53","nodeType":"YulExpressionStatement","src":"10684:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10661:6:53","nodeType":"YulIdentifier","src":"10661:6:53"},{"kind":"number","nativeSrc":"10669:4:53","nodeType":"YulLiteral","src":"10669:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10657:3:53","nodeType":"YulIdentifier","src":"10657:3:53"},"nativeSrc":"10657:17:53","nodeType":"YulFunctionCall","src":"10657:17:53"},{"name":"end","nativeSrc":"10676:3:53","nodeType":"YulIdentifier","src":"10676:3:53"}],"functionName":{"name":"slt","nativeSrc":"10653:3:53","nodeType":"YulIdentifier","src":"10653:3:53"},"nativeSrc":"10653:27:53","nodeType":"YulFunctionCall","src":"10653:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10646:6:53","nodeType":"YulIdentifier","src":"10646:6:53"},"nativeSrc":"10646:35:53","nodeType":"YulFunctionCall","src":"10646:35:53"},"nativeSrc":"10643:122:53","nodeType":"YulIf","src":"10643:122:53"},{"nativeSrc":"10774:30:53","nodeType":"YulAssignment","src":"10774:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"10797:6:53","nodeType":"YulIdentifier","src":"10797:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10784:12:53","nodeType":"YulIdentifier","src":"10784:12:53"},"nativeSrc":"10784:20:53","nodeType":"YulFunctionCall","src":"10784:20:53"},"variableNames":[{"name":"length","nativeSrc":"10774:6:53","nodeType":"YulIdentifier","src":"10774:6:53"}]},{"body":{"nativeSrc":"10847:83:53","nodeType":"YulBlock","src":"10847:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10849:77:53","nodeType":"YulIdentifier","src":"10849:77:53"},"nativeSrc":"10849:79:53","nodeType":"YulFunctionCall","src":"10849:79:53"},"nativeSrc":"10849:79:53","nodeType":"YulExpressionStatement","src":"10849:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10819:6:53","nodeType":"YulIdentifier","src":"10819:6:53"},{"kind":"number","nativeSrc":"10827:18:53","nodeType":"YulLiteral","src":"10827:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10816:2:53","nodeType":"YulIdentifier","src":"10816:2:53"},"nativeSrc":"10816:30:53","nodeType":"YulFunctionCall","src":"10816:30:53"},"nativeSrc":"10813:117:53","nodeType":"YulIf","src":"10813:117:53"},{"nativeSrc":"10939:29:53","nodeType":"YulAssignment","src":"10939:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10955:6:53","nodeType":"YulIdentifier","src":"10955:6:53"},{"kind":"number","nativeSrc":"10963:4:53","nodeType":"YulLiteral","src":"10963:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10951:3:53","nodeType":"YulIdentifier","src":"10951:3:53"},"nativeSrc":"10951:17:53","nodeType":"YulFunctionCall","src":"10951:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"10939:8:53","nodeType":"YulIdentifier","src":"10939:8:53"}]},{"body":{"nativeSrc":"11022:83:53","nodeType":"YulBlock","src":"11022:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11024:77:53","nodeType":"YulIdentifier","src":"11024:77:53"},"nativeSrc":"11024:79:53","nodeType":"YulFunctionCall","src":"11024:79:53"},"nativeSrc":"11024:79:53","nodeType":"YulExpressionStatement","src":"11024:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10987:8:53","nodeType":"YulIdentifier","src":"10987:8:53"},{"arguments":[{"name":"length","nativeSrc":"11001:6:53","nodeType":"YulIdentifier","src":"11001:6:53"},{"kind":"number","nativeSrc":"11009:4:53","nodeType":"YulLiteral","src":"11009:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"10997:3:53","nodeType":"YulIdentifier","src":"10997:3:53"},"nativeSrc":"10997:17:53","nodeType":"YulFunctionCall","src":"10997:17:53"}],"functionName":{"name":"add","nativeSrc":"10983:3:53","nodeType":"YulIdentifier","src":"10983:3:53"},"nativeSrc":"10983:32:53","nodeType":"YulFunctionCall","src":"10983:32:53"},{"name":"end","nativeSrc":"11017:3:53","nodeType":"YulIdentifier","src":"11017:3:53"}],"functionName":{"name":"gt","nativeSrc":"10980:2:53","nodeType":"YulIdentifier","src":"10980:2:53"},"nativeSrc":"10980:41:53","nodeType":"YulFunctionCall","src":"10980:41:53"},"nativeSrc":"10977:128:53","nodeType":"YulIf","src":"10977:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"10559:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10600:6:53","nodeType":"YulTypedName","src":"10600:6:53","type":""},{"name":"end","nativeSrc":"10608:3:53","nodeType":"YulTypedName","src":"10608:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"10616:8:53","nodeType":"YulTypedName","src":"10616:8:53","type":""},{"name":"length","nativeSrc":"10626:6:53","nodeType":"YulTypedName","src":"10626:6:53","type":""}],"src":"10559:552:53"},{"body":{"nativeSrc":"11253:827:53","nodeType":"YulBlock","src":"11253:827:53","statements":[{"body":{"nativeSrc":"11300:83:53","nodeType":"YulBlock","src":"11300:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11302:77:53","nodeType":"YulIdentifier","src":"11302:77:53"},"nativeSrc":"11302:79:53","nodeType":"YulFunctionCall","src":"11302:79:53"},"nativeSrc":"11302:79:53","nodeType":"YulExpressionStatement","src":"11302:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11274:7:53","nodeType":"YulIdentifier","src":"11274:7:53"},{"name":"headStart","nativeSrc":"11283:9:53","nodeType":"YulIdentifier","src":"11283:9:53"}],"functionName":{"name":"sub","nativeSrc":"11270:3:53","nodeType":"YulIdentifier","src":"11270:3:53"},"nativeSrc":"11270:23:53","nodeType":"YulFunctionCall","src":"11270:23:53"},{"kind":"number","nativeSrc":"11295:3:53","nodeType":"YulLiteral","src":"11295:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11266:3:53","nodeType":"YulIdentifier","src":"11266:3:53"},"nativeSrc":"11266:33:53","nodeType":"YulFunctionCall","src":"11266:33:53"},"nativeSrc":"11263:120:53","nodeType":"YulIf","src":"11263:120:53"},{"nativeSrc":"11393:117:53","nodeType":"YulBlock","src":"11393:117:53","statements":[{"nativeSrc":"11408:15:53","nodeType":"YulVariableDeclaration","src":"11408:15:53","value":{"kind":"number","nativeSrc":"11422:1:53","nodeType":"YulLiteral","src":"11422:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11412:6:53","nodeType":"YulTypedName","src":"11412:6:53","type":""}]},{"nativeSrc":"11437:63:53","nodeType":"YulAssignment","src":"11437:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11472:9:53","nodeType":"YulIdentifier","src":"11472:9:53"},{"name":"offset","nativeSrc":"11483:6:53","nodeType":"YulIdentifier","src":"11483:6:53"}],"functionName":{"name":"add","nativeSrc":"11468:3:53","nodeType":"YulIdentifier","src":"11468:3:53"},"nativeSrc":"11468:22:53","nodeType":"YulFunctionCall","src":"11468:22:53"},{"name":"dataEnd","nativeSrc":"11492:7:53","nodeType":"YulIdentifier","src":"11492:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11447:20:53","nodeType":"YulIdentifier","src":"11447:20:53"},"nativeSrc":"11447:53:53","nodeType":"YulFunctionCall","src":"11447:53:53"},"variableNames":[{"name":"value0","nativeSrc":"11437:6:53","nodeType":"YulIdentifier","src":"11437:6:53"}]}]},{"nativeSrc":"11520:118:53","nodeType":"YulBlock","src":"11520:118:53","statements":[{"nativeSrc":"11535:16:53","nodeType":"YulVariableDeclaration","src":"11535:16:53","value":{"kind":"number","nativeSrc":"11549:2:53","nodeType":"YulLiteral","src":"11549:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11539:6:53","nodeType":"YulTypedName","src":"11539:6:53","type":""}]},{"nativeSrc":"11565:63:53","nodeType":"YulAssignment","src":"11565:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11600:9:53","nodeType":"YulIdentifier","src":"11600:9:53"},{"name":"offset","nativeSrc":"11611:6:53","nodeType":"YulIdentifier","src":"11611:6:53"}],"functionName":{"name":"add","nativeSrc":"11596:3:53","nodeType":"YulIdentifier","src":"11596:3:53"},"nativeSrc":"11596:22:53","nodeType":"YulFunctionCall","src":"11596:22:53"},{"name":"dataEnd","nativeSrc":"11620:7:53","nodeType":"YulIdentifier","src":"11620:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11575:20:53","nodeType":"YulIdentifier","src":"11575:20:53"},"nativeSrc":"11575:53:53","nodeType":"YulFunctionCall","src":"11575:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11565:6:53","nodeType":"YulIdentifier","src":"11565:6:53"}]}]},{"nativeSrc":"11648:118:53","nodeType":"YulBlock","src":"11648:118:53","statements":[{"nativeSrc":"11663:16:53","nodeType":"YulVariableDeclaration","src":"11663:16:53","value":{"kind":"number","nativeSrc":"11677:2:53","nodeType":"YulLiteral","src":"11677:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11667:6:53","nodeType":"YulTypedName","src":"11667:6:53","type":""}]},{"nativeSrc":"11693:63:53","nodeType":"YulAssignment","src":"11693:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11728:9:53","nodeType":"YulIdentifier","src":"11728:9:53"},{"name":"offset","nativeSrc":"11739:6:53","nodeType":"YulIdentifier","src":"11739:6:53"}],"functionName":{"name":"add","nativeSrc":"11724:3:53","nodeType":"YulIdentifier","src":"11724:3:53"},"nativeSrc":"11724:22:53","nodeType":"YulFunctionCall","src":"11724:22:53"},{"name":"dataEnd","nativeSrc":"11748:7:53","nodeType":"YulIdentifier","src":"11748:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11703:20:53","nodeType":"YulIdentifier","src":"11703:20:53"},"nativeSrc":"11703:53:53","nodeType":"YulFunctionCall","src":"11703:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11693:6:53","nodeType":"YulIdentifier","src":"11693:6:53"}]}]},{"nativeSrc":"11776:297:53","nodeType":"YulBlock","src":"11776:297:53","statements":[{"nativeSrc":"11791:46:53","nodeType":"YulVariableDeclaration","src":"11791:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11822:9:53","nodeType":"YulIdentifier","src":"11822:9:53"},{"kind":"number","nativeSrc":"11833:2:53","nodeType":"YulLiteral","src":"11833:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11818:3:53","nodeType":"YulIdentifier","src":"11818:3:53"},"nativeSrc":"11818:18:53","nodeType":"YulFunctionCall","src":"11818:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11805:12:53","nodeType":"YulIdentifier","src":"11805:12:53"},"nativeSrc":"11805:32:53","nodeType":"YulFunctionCall","src":"11805:32:53"},"variables":[{"name":"offset","nativeSrc":"11795:6:53","nodeType":"YulTypedName","src":"11795:6:53","type":""}]},{"body":{"nativeSrc":"11884:83:53","nodeType":"YulBlock","src":"11884:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11886:77:53","nodeType":"YulIdentifier","src":"11886:77:53"},"nativeSrc":"11886:79:53","nodeType":"YulFunctionCall","src":"11886:79:53"},"nativeSrc":"11886:79:53","nodeType":"YulExpressionStatement","src":"11886:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11856:6:53","nodeType":"YulIdentifier","src":"11856:6:53"},{"kind":"number","nativeSrc":"11864:18:53","nodeType":"YulLiteral","src":"11864:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11853:2:53","nodeType":"YulIdentifier","src":"11853:2:53"},"nativeSrc":"11853:30:53","nodeType":"YulFunctionCall","src":"11853:30:53"},"nativeSrc":"11850:117:53","nodeType":"YulIf","src":"11850:117:53"},{"nativeSrc":"11981:82:53","nodeType":"YulAssignment","src":"11981:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12035:9:53","nodeType":"YulIdentifier","src":"12035:9:53"},{"name":"offset","nativeSrc":"12046:6:53","nodeType":"YulIdentifier","src":"12046:6:53"}],"functionName":{"name":"add","nativeSrc":"12031:3:53","nodeType":"YulIdentifier","src":"12031:3:53"},"nativeSrc":"12031:22:53","nodeType":"YulFunctionCall","src":"12031:22:53"},{"name":"dataEnd","nativeSrc":"12055:7:53","nodeType":"YulIdentifier","src":"12055:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"11999:31:53","nodeType":"YulIdentifier","src":"11999:31:53"},"nativeSrc":"11999:64:53","nodeType":"YulFunctionCall","src":"11999:64:53"},"variableNames":[{"name":"value3","nativeSrc":"11981:6:53","nodeType":"YulIdentifier","src":"11981:6:53"},{"name":"value4","nativeSrc":"11989:6:53","nodeType":"YulIdentifier","src":"11989:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr","nativeSrc":"11117:963:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11191:9:53","nodeType":"YulTypedName","src":"11191:9:53","type":""},{"name":"dataEnd","nativeSrc":"11202:7:53","nodeType":"YulTypedName","src":"11202:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11214:6:53","nodeType":"YulTypedName","src":"11214:6:53","type":""},{"name":"value1","nativeSrc":"11222:6:53","nodeType":"YulTypedName","src":"11222:6:53","type":""},{"name":"value2","nativeSrc":"11230:6:53","nodeType":"YulTypedName","src":"11230:6:53","type":""},{"name":"value3","nativeSrc":"11238:6:53","nodeType":"YulTypedName","src":"11238:6:53","type":""},{"name":"value4","nativeSrc":"11246:6:53","nodeType":"YulTypedName","src":"11246:6:53","type":""}],"src":"11117:963:53"},{"body":{"nativeSrc":"12171:442:53","nodeType":"YulBlock","src":"12171:442:53","statements":[{"body":{"nativeSrc":"12217:83:53","nodeType":"YulBlock","src":"12217:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12219:77:53","nodeType":"YulIdentifier","src":"12219:77:53"},"nativeSrc":"12219:79:53","nodeType":"YulFunctionCall","src":"12219:79:53"},"nativeSrc":"12219:79:53","nodeType":"YulExpressionStatement","src":"12219:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12192:7:53","nodeType":"YulIdentifier","src":"12192:7:53"},{"name":"headStart","nativeSrc":"12201:9:53","nodeType":"YulIdentifier","src":"12201:9:53"}],"functionName":{"name":"sub","nativeSrc":"12188:3:53","nodeType":"YulIdentifier","src":"12188:3:53"},"nativeSrc":"12188:23:53","nodeType":"YulFunctionCall","src":"12188:23:53"},{"kind":"number","nativeSrc":"12213:2:53","nodeType":"YulLiteral","src":"12213:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12184:3:53","nodeType":"YulIdentifier","src":"12184:3:53"},"nativeSrc":"12184:32:53","nodeType":"YulFunctionCall","src":"12184:32:53"},"nativeSrc":"12181:119:53","nodeType":"YulIf","src":"12181:119:53"},{"nativeSrc":"12310:296:53","nodeType":"YulBlock","src":"12310:296:53","statements":[{"nativeSrc":"12325:45:53","nodeType":"YulVariableDeclaration","src":"12325:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12356:9:53","nodeType":"YulIdentifier","src":"12356:9:53"},{"kind":"number","nativeSrc":"12367:1:53","nodeType":"YulLiteral","src":"12367:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12352:3:53","nodeType":"YulIdentifier","src":"12352:3:53"},"nativeSrc":"12352:17:53","nodeType":"YulFunctionCall","src":"12352:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"12339:12:53","nodeType":"YulIdentifier","src":"12339:12:53"},"nativeSrc":"12339:31:53","nodeType":"YulFunctionCall","src":"12339:31:53"},"variables":[{"name":"offset","nativeSrc":"12329:6:53","nodeType":"YulTypedName","src":"12329:6:53","type":""}]},{"body":{"nativeSrc":"12417:83:53","nodeType":"YulBlock","src":"12417:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12419:77:53","nodeType":"YulIdentifier","src":"12419:77:53"},"nativeSrc":"12419:79:53","nodeType":"YulFunctionCall","src":"12419:79:53"},"nativeSrc":"12419:79:53","nodeType":"YulExpressionStatement","src":"12419:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12389:6:53","nodeType":"YulIdentifier","src":"12389:6:53"},{"kind":"number","nativeSrc":"12397:18:53","nodeType":"YulLiteral","src":"12397:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12386:2:53","nodeType":"YulIdentifier","src":"12386:2:53"},"nativeSrc":"12386:30:53","nodeType":"YulFunctionCall","src":"12386:30:53"},"nativeSrc":"12383:117:53","nodeType":"YulIf","src":"12383:117:53"},{"nativeSrc":"12514:82:53","nodeType":"YulAssignment","src":"12514:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12568:9:53","nodeType":"YulIdentifier","src":"12568:9:53"},{"name":"offset","nativeSrc":"12579:6:53","nodeType":"YulIdentifier","src":"12579:6:53"}],"functionName":{"name":"add","nativeSrc":"12564:3:53","nodeType":"YulIdentifier","src":"12564:3:53"},"nativeSrc":"12564:22:53","nodeType":"YulFunctionCall","src":"12564:22:53"},{"name":"dataEnd","nativeSrc":"12588:7:53","nodeType":"YulIdentifier","src":"12588:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"12532:31:53","nodeType":"YulIdentifier","src":"12532:31:53"},"nativeSrc":"12532:64:53","nodeType":"YulFunctionCall","src":"12532:64:53"},"variableNames":[{"name":"value0","nativeSrc":"12514:6:53","nodeType":"YulIdentifier","src":"12514:6:53"},{"name":"value1","nativeSrc":"12522:6:53","nodeType":"YulIdentifier","src":"12522:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"12086:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12133:9:53","nodeType":"YulTypedName","src":"12133:9:53","type":""},{"name":"dataEnd","nativeSrc":"12144:7:53","nodeType":"YulTypedName","src":"12144:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12156:6:53","nodeType":"YulTypedName","src":"12156:6:53","type":""},{"name":"value1","nativeSrc":"12164:6:53","nodeType":"YulTypedName","src":"12164:6:53","type":""}],"src":"12086:527:53"},{"body":{"nativeSrc":"12647:152:53","nodeType":"YulBlock","src":"12647:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12664:1:53","nodeType":"YulLiteral","src":"12664:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12667:77:53","nodeType":"YulLiteral","src":"12667:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12657:6:53","nodeType":"YulIdentifier","src":"12657:6:53"},"nativeSrc":"12657:88:53","nodeType":"YulFunctionCall","src":"12657:88:53"},"nativeSrc":"12657:88:53","nodeType":"YulExpressionStatement","src":"12657:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12761:1:53","nodeType":"YulLiteral","src":"12761:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"12764:4:53","nodeType":"YulLiteral","src":"12764:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"12754:6:53","nodeType":"YulIdentifier","src":"12754:6:53"},"nativeSrc":"12754:15:53","nodeType":"YulFunctionCall","src":"12754:15:53"},"nativeSrc":"12754:15:53","nodeType":"YulExpressionStatement","src":"12754:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12785:1:53","nodeType":"YulLiteral","src":"12785:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12788:4:53","nodeType":"YulLiteral","src":"12788:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12778:6:53","nodeType":"YulIdentifier","src":"12778:6:53"},"nativeSrc":"12778:15:53","nodeType":"YulFunctionCall","src":"12778:15:53"},"nativeSrc":"12778:15:53","nodeType":"YulExpressionStatement","src":"12778:15:53"}]},"name":"panic_error_0x32","nativeSrc":"12619:180:53","nodeType":"YulFunctionDefinition","src":"12619:180:53"},{"body":{"nativeSrc":"12959:288:53","nodeType":"YulBlock","src":"12959:288:53","statements":[{"nativeSrc":"12969:26:53","nodeType":"YulAssignment","src":"12969:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12981:9:53","nodeType":"YulIdentifier","src":"12981:9:53"},{"kind":"number","nativeSrc":"12992:2:53","nodeType":"YulLiteral","src":"12992:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12977:3:53","nodeType":"YulIdentifier","src":"12977:3:53"},"nativeSrc":"12977:18:53","nodeType":"YulFunctionCall","src":"12977:18:53"},"variableNames":[{"name":"tail","nativeSrc":"12969:4:53","nodeType":"YulIdentifier","src":"12969:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13049:6:53","nodeType":"YulIdentifier","src":"13049:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13062:9:53","nodeType":"YulIdentifier","src":"13062:9:53"},{"kind":"number","nativeSrc":"13073:1:53","nodeType":"YulLiteral","src":"13073:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13058:3:53","nodeType":"YulIdentifier","src":"13058:3:53"},"nativeSrc":"13058:17:53","nodeType":"YulFunctionCall","src":"13058:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13005:43:53","nodeType":"YulIdentifier","src":"13005:43:53"},"nativeSrc":"13005:71:53","nodeType":"YulFunctionCall","src":"13005:71:53"},"nativeSrc":"13005:71:53","nodeType":"YulExpressionStatement","src":"13005:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13130:6:53","nodeType":"YulIdentifier","src":"13130:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13143:9:53","nodeType":"YulIdentifier","src":"13143:9:53"},{"kind":"number","nativeSrc":"13154:2:53","nodeType":"YulLiteral","src":"13154:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13139:3:53","nodeType":"YulIdentifier","src":"13139:3:53"},"nativeSrc":"13139:18:53","nodeType":"YulFunctionCall","src":"13139:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13086:43:53","nodeType":"YulIdentifier","src":"13086:43:53"},"nativeSrc":"13086:72:53","nodeType":"YulFunctionCall","src":"13086:72:53"},"nativeSrc":"13086:72:53","nodeType":"YulExpressionStatement","src":"13086:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"13212:6:53","nodeType":"YulIdentifier","src":"13212:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13225:9:53","nodeType":"YulIdentifier","src":"13225:9:53"},{"kind":"number","nativeSrc":"13236:2:53","nodeType":"YulLiteral","src":"13236:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13221:3:53","nodeType":"YulIdentifier","src":"13221:3:53"},"nativeSrc":"13221:18:53","nodeType":"YulFunctionCall","src":"13221:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13168:43:53","nodeType":"YulIdentifier","src":"13168:43:53"},"nativeSrc":"13168:72:53","nodeType":"YulFunctionCall","src":"13168:72:53"},"nativeSrc":"13168:72:53","nodeType":"YulExpressionStatement","src":"13168:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12805:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12915:9:53","nodeType":"YulTypedName","src":"12915:9:53","type":""},{"name":"value2","nativeSrc":"12927:6:53","nodeType":"YulTypedName","src":"12927:6:53","type":""},{"name":"value1","nativeSrc":"12935:6:53","nodeType":"YulTypedName","src":"12935:6:53","type":""},{"name":"value0","nativeSrc":"12943:6:53","nodeType":"YulTypedName","src":"12943:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12954:4:53","nodeType":"YulTypedName","src":"12954:4:53","type":""}],"src":"12805:442:53"},{"body":{"nativeSrc":"13348:73:53","nodeType":"YulBlock","src":"13348:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13365:3:53","nodeType":"YulIdentifier","src":"13365:3:53"},{"name":"length","nativeSrc":"13370:6:53","nodeType":"YulIdentifier","src":"13370:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13358:6:53","nodeType":"YulIdentifier","src":"13358:6:53"},"nativeSrc":"13358:19:53","nodeType":"YulFunctionCall","src":"13358:19:53"},"nativeSrc":"13358:19:53","nodeType":"YulExpressionStatement","src":"13358:19:53"},{"nativeSrc":"13386:29:53","nodeType":"YulAssignment","src":"13386:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"13405:3:53","nodeType":"YulIdentifier","src":"13405:3:53"},{"kind":"number","nativeSrc":"13410:4:53","nodeType":"YulLiteral","src":"13410:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13401:3:53","nodeType":"YulIdentifier","src":"13401:3:53"},"nativeSrc":"13401:14:53","nodeType":"YulFunctionCall","src":"13401:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"13386:11:53","nodeType":"YulIdentifier","src":"13386:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13253:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13320:3:53","nodeType":"YulTypedName","src":"13320:3:53","type":""},{"name":"length","nativeSrc":"13325:6:53","nodeType":"YulTypedName","src":"13325:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13336:11:53","nodeType":"YulTypedName","src":"13336:11:53","type":""}],"src":"13253:168:53"},{"body":{"nativeSrc":"13491:84:53","nodeType":"YulBlock","src":"13491:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13515:3:53","nodeType":"YulIdentifier","src":"13515:3:53"},{"name":"src","nativeSrc":"13520:3:53","nodeType":"YulIdentifier","src":"13520:3:53"},{"name":"length","nativeSrc":"13525:6:53","nodeType":"YulIdentifier","src":"13525:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"13502:12:53","nodeType":"YulIdentifier","src":"13502:12:53"},"nativeSrc":"13502:30:53","nodeType":"YulFunctionCall","src":"13502:30:53"},"nativeSrc":"13502:30:53","nodeType":"YulExpressionStatement","src":"13502:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13552:3:53","nodeType":"YulIdentifier","src":"13552:3:53"},{"name":"length","nativeSrc":"13557:6:53","nodeType":"YulIdentifier","src":"13557:6:53"}],"functionName":{"name":"add","nativeSrc":"13548:3:53","nodeType":"YulIdentifier","src":"13548:3:53"},"nativeSrc":"13548:16:53","nodeType":"YulFunctionCall","src":"13548:16:53"},{"kind":"number","nativeSrc":"13566:1:53","nodeType":"YulLiteral","src":"13566:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13541:6:53","nodeType":"YulIdentifier","src":"13541:6:53"},"nativeSrc":"13541:27:53","nodeType":"YulFunctionCall","src":"13541:27:53"},"nativeSrc":"13541:27:53","nodeType":"YulExpressionStatement","src":"13541:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13427:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13473:3:53","nodeType":"YulTypedName","src":"13473:3:53","type":""},{"name":"dst","nativeSrc":"13478:3:53","nodeType":"YulTypedName","src":"13478:3:53","type":""},{"name":"length","nativeSrc":"13483:6:53","nodeType":"YulTypedName","src":"13483:6:53","type":""}],"src":"13427:148:53"},{"body":{"nativeSrc":"13629:54:53","nodeType":"YulBlock","src":"13629:54:53","statements":[{"nativeSrc":"13639:38:53","nodeType":"YulAssignment","src":"13639:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13657:5:53","nodeType":"YulIdentifier","src":"13657:5:53"},{"kind":"number","nativeSrc":"13664:2:53","nodeType":"YulLiteral","src":"13664:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13653:3:53","nodeType":"YulIdentifier","src":"13653:3:53"},"nativeSrc":"13653:14:53","nodeType":"YulFunctionCall","src":"13653:14:53"},{"arguments":[{"kind":"number","nativeSrc":"13673:2:53","nodeType":"YulLiteral","src":"13673:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13669:3:53","nodeType":"YulIdentifier","src":"13669:3:53"},"nativeSrc":"13669:7:53","nodeType":"YulFunctionCall","src":"13669:7:53"}],"functionName":{"name":"and","nativeSrc":"13649:3:53","nodeType":"YulIdentifier","src":"13649:3:53"},"nativeSrc":"13649:28:53","nodeType":"YulFunctionCall","src":"13649:28:53"},"variableNames":[{"name":"result","nativeSrc":"13639:6:53","nodeType":"YulIdentifier","src":"13639:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"13581:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13612:5:53","nodeType":"YulTypedName","src":"13612:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"13622:6:53","nodeType":"YulTypedName","src":"13622:6:53","type":""}],"src":"13581:102:53"},{"body":{"nativeSrc":"13811:214:53","nodeType":"YulBlock","src":"13811:214:53","statements":[{"nativeSrc":"13821:77:53","nodeType":"YulAssignment","src":"13821:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"13886:3:53","nodeType":"YulIdentifier","src":"13886:3:53"},{"name":"length","nativeSrc":"13891:6:53","nodeType":"YulIdentifier","src":"13891:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13828:57:53","nodeType":"YulIdentifier","src":"13828:57:53"},"nativeSrc":"13828:70:53","nodeType":"YulFunctionCall","src":"13828:70:53"},"variableNames":[{"name":"pos","nativeSrc":"13821:3:53","nodeType":"YulIdentifier","src":"13821:3:53"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"13945:5:53","nodeType":"YulIdentifier","src":"13945:5:53"},{"name":"pos","nativeSrc":"13952:3:53","nodeType":"YulIdentifier","src":"13952:3:53"},{"name":"length","nativeSrc":"13957:6:53","nodeType":"YulIdentifier","src":"13957:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13908:36:53","nodeType":"YulIdentifier","src":"13908:36:53"},"nativeSrc":"13908:56:53","nodeType":"YulFunctionCall","src":"13908:56:53"},"nativeSrc":"13908:56:53","nodeType":"YulExpressionStatement","src":"13908:56:53"},{"nativeSrc":"13973:46:53","nodeType":"YulAssignment","src":"13973:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"13984:3:53","nodeType":"YulIdentifier","src":"13984:3:53"},{"arguments":[{"name":"length","nativeSrc":"14011:6:53","nodeType":"YulIdentifier","src":"14011:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13989:21:53","nodeType":"YulIdentifier","src":"13989:21:53"},"nativeSrc":"13989:29:53","nodeType":"YulFunctionCall","src":"13989:29:53"}],"functionName":{"name":"add","nativeSrc":"13980:3:53","nodeType":"YulIdentifier","src":"13980:3:53"},"nativeSrc":"13980:39:53","nodeType":"YulFunctionCall","src":"13980:39:53"},"variableNames":[{"name":"end","nativeSrc":"13973:3:53","nodeType":"YulIdentifier","src":"13973:3:53"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"13711:314:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"13784:5:53","nodeType":"YulTypedName","src":"13784:5:53","type":""},{"name":"length","nativeSrc":"13791:6:53","nodeType":"YulTypedName","src":"13791:6:53","type":""},{"name":"pos","nativeSrc":"13799:3:53","nodeType":"YulTypedName","src":"13799:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13807:3:53","nodeType":"YulTypedName","src":"13807:3:53","type":""}],"src":"13711:314:53"},{"body":{"nativeSrc":"14157:203:53","nodeType":"YulBlock","src":"14157:203:53","statements":[{"nativeSrc":"14167:26:53","nodeType":"YulAssignment","src":"14167:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14179:9:53","nodeType":"YulIdentifier","src":"14179:9:53"},{"kind":"number","nativeSrc":"14190:2:53","nodeType":"YulLiteral","src":"14190:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14175:3:53","nodeType":"YulIdentifier","src":"14175:3:53"},"nativeSrc":"14175:18:53","nodeType":"YulFunctionCall","src":"14175:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14167:4:53","nodeType":"YulIdentifier","src":"14167:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14214:9:53","nodeType":"YulIdentifier","src":"14214:9:53"},{"kind":"number","nativeSrc":"14225:1:53","nodeType":"YulLiteral","src":"14225:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14210:3:53","nodeType":"YulIdentifier","src":"14210:3:53"},"nativeSrc":"14210:17:53","nodeType":"YulFunctionCall","src":"14210:17:53"},{"arguments":[{"name":"tail","nativeSrc":"14233:4:53","nodeType":"YulIdentifier","src":"14233:4:53"},{"name":"headStart","nativeSrc":"14239:9:53","nodeType":"YulIdentifier","src":"14239:9:53"}],"functionName":{"name":"sub","nativeSrc":"14229:3:53","nodeType":"YulIdentifier","src":"14229:3:53"},"nativeSrc":"14229:20:53","nodeType":"YulFunctionCall","src":"14229:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14203:6:53","nodeType":"YulIdentifier","src":"14203:6:53"},"nativeSrc":"14203:47:53","nodeType":"YulFunctionCall","src":"14203:47:53"},"nativeSrc":"14203:47:53","nodeType":"YulExpressionStatement","src":"14203:47:53"},{"nativeSrc":"14259:94:53","nodeType":"YulAssignment","src":"14259:94:53","value":{"arguments":[{"name":"value0","nativeSrc":"14331:6:53","nodeType":"YulIdentifier","src":"14331:6:53"},{"name":"value1","nativeSrc":"14339:6:53","nodeType":"YulIdentifier","src":"14339:6:53"},{"name":"tail","nativeSrc":"14348:4:53","nodeType":"YulIdentifier","src":"14348:4:53"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"14267:63:53","nodeType":"YulIdentifier","src":"14267:63:53"},"nativeSrc":"14267:86:53","nodeType":"YulFunctionCall","src":"14267:86:53"},"variableNames":[{"name":"tail","nativeSrc":"14259:4:53","nodeType":"YulIdentifier","src":"14259:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"14031:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14121:9:53","nodeType":"YulTypedName","src":"14121:9:53","type":""},{"name":"value1","nativeSrc":"14133:6:53","nodeType":"YulTypedName","src":"14133:6:53","type":""},{"name":"value0","nativeSrc":"14141:6:53","nodeType":"YulTypedName","src":"14141:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14152:4:53","nodeType":"YulTypedName","src":"14152:4:53","type":""}],"src":"14031:329:53"},{"body":{"nativeSrc":"14408:48:53","nodeType":"YulBlock","src":"14408:48:53","statements":[{"nativeSrc":"14418:32:53","nodeType":"YulAssignment","src":"14418:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14443:5:53","nodeType":"YulIdentifier","src":"14443:5:53"}],"functionName":{"name":"iszero","nativeSrc":"14436:6:53","nodeType":"YulIdentifier","src":"14436:6:53"},"nativeSrc":"14436:13:53","nodeType":"YulFunctionCall","src":"14436:13:53"}],"functionName":{"name":"iszero","nativeSrc":"14429:6:53","nodeType":"YulIdentifier","src":"14429:6:53"},"nativeSrc":"14429:21:53","nodeType":"YulFunctionCall","src":"14429:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"14418:7:53","nodeType":"YulIdentifier","src":"14418:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"14366:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14390:5:53","nodeType":"YulTypedName","src":"14390:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14400:7:53","nodeType":"YulTypedName","src":"14400:7:53","type":""}],"src":"14366:90:53"},{"body":{"nativeSrc":"14502:76:53","nodeType":"YulBlock","src":"14502:76:53","statements":[{"body":{"nativeSrc":"14556:16:53","nodeType":"YulBlock","src":"14556:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14565:1:53","nodeType":"YulLiteral","src":"14565:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14568:1:53","nodeType":"YulLiteral","src":"14568:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14558:6:53","nodeType":"YulIdentifier","src":"14558:6:53"},"nativeSrc":"14558:12:53","nodeType":"YulFunctionCall","src":"14558:12:53"},"nativeSrc":"14558:12:53","nodeType":"YulExpressionStatement","src":"14558:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14525:5:53","nodeType":"YulIdentifier","src":"14525:5:53"},{"arguments":[{"name":"value","nativeSrc":"14547:5:53","nodeType":"YulIdentifier","src":"14547:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"14532:14:53","nodeType":"YulIdentifier","src":"14532:14:53"},"nativeSrc":"14532:21:53","nodeType":"YulFunctionCall","src":"14532:21:53"}],"functionName":{"name":"eq","nativeSrc":"14522:2:53","nodeType":"YulIdentifier","src":"14522:2:53"},"nativeSrc":"14522:32:53","nodeType":"YulFunctionCall","src":"14522:32:53"}],"functionName":{"name":"iszero","nativeSrc":"14515:6:53","nodeType":"YulIdentifier","src":"14515:6:53"},"nativeSrc":"14515:40:53","nodeType":"YulFunctionCall","src":"14515:40:53"},"nativeSrc":"14512:60:53","nodeType":"YulIf","src":"14512:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"14462:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14495:5:53","nodeType":"YulTypedName","src":"14495:5:53","type":""}],"src":"14462:116:53"},{"body":{"nativeSrc":"14644:77:53","nodeType":"YulBlock","src":"14644:77:53","statements":[{"nativeSrc":"14654:22:53","nodeType":"YulAssignment","src":"14654:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"14669:6:53","nodeType":"YulIdentifier","src":"14669:6:53"}],"functionName":{"name":"mload","nativeSrc":"14663:5:53","nodeType":"YulIdentifier","src":"14663:5:53"},"nativeSrc":"14663:13:53","nodeType":"YulFunctionCall","src":"14663:13:53"},"variableNames":[{"name":"value","nativeSrc":"14654:5:53","nodeType":"YulIdentifier","src":"14654:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14709:5:53","nodeType":"YulIdentifier","src":"14709:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"14685:23:53","nodeType":"YulIdentifier","src":"14685:23:53"},"nativeSrc":"14685:30:53","nodeType":"YulFunctionCall","src":"14685:30:53"},"nativeSrc":"14685:30:53","nodeType":"YulExpressionStatement","src":"14685:30:53"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14584:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14622:6:53","nodeType":"YulTypedName","src":"14622:6:53","type":""},{"name":"end","nativeSrc":"14630:3:53","nodeType":"YulTypedName","src":"14630:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14638:5:53","nodeType":"YulTypedName","src":"14638:5:53","type":""}],"src":"14584:137:53"},{"body":{"nativeSrc":"14801:271:53","nodeType":"YulBlock","src":"14801:271:53","statements":[{"body":{"nativeSrc":"14847:83:53","nodeType":"YulBlock","src":"14847:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14849:77:53","nodeType":"YulIdentifier","src":"14849:77:53"},"nativeSrc":"14849:79:53","nodeType":"YulFunctionCall","src":"14849:79:53"},"nativeSrc":"14849:79:53","nodeType":"YulExpressionStatement","src":"14849:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14822:7:53","nodeType":"YulIdentifier","src":"14822:7:53"},{"name":"headStart","nativeSrc":"14831:9:53","nodeType":"YulIdentifier","src":"14831:9:53"}],"functionName":{"name":"sub","nativeSrc":"14818:3:53","nodeType":"YulIdentifier","src":"14818:3:53"},"nativeSrc":"14818:23:53","nodeType":"YulFunctionCall","src":"14818:23:53"},{"kind":"number","nativeSrc":"14843:2:53","nodeType":"YulLiteral","src":"14843:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14814:3:53","nodeType":"YulIdentifier","src":"14814:3:53"},"nativeSrc":"14814:32:53","nodeType":"YulFunctionCall","src":"14814:32:53"},"nativeSrc":"14811:119:53","nodeType":"YulIf","src":"14811:119:53"},{"nativeSrc":"14940:125:53","nodeType":"YulBlock","src":"14940:125:53","statements":[{"nativeSrc":"14955:15:53","nodeType":"YulVariableDeclaration","src":"14955:15:53","value":{"kind":"number","nativeSrc":"14969:1:53","nodeType":"YulLiteral","src":"14969:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14959:6:53","nodeType":"YulTypedName","src":"14959:6:53","type":""}]},{"nativeSrc":"14984:71:53","nodeType":"YulAssignment","src":"14984:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15027:9:53","nodeType":"YulIdentifier","src":"15027:9:53"},{"name":"offset","nativeSrc":"15038:6:53","nodeType":"YulIdentifier","src":"15038:6:53"}],"functionName":{"name":"add","nativeSrc":"15023:3:53","nodeType":"YulIdentifier","src":"15023:3:53"},"nativeSrc":"15023:22:53","nodeType":"YulFunctionCall","src":"15023:22:53"},{"name":"dataEnd","nativeSrc":"15047:7:53","nodeType":"YulIdentifier","src":"15047:7:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14994:28:53","nodeType":"YulIdentifier","src":"14994:28:53"},"nativeSrc":"14994:61:53","nodeType":"YulFunctionCall","src":"14994:61:53"},"variableNames":[{"name":"value0","nativeSrc":"14984:6:53","nodeType":"YulIdentifier","src":"14984:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"14727:345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14771:9:53","nodeType":"YulTypedName","src":"14771:9:53","type":""},{"name":"dataEnd","nativeSrc":"14782:7:53","nodeType":"YulTypedName","src":"14782:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14794:6:53","nodeType":"YulTypedName","src":"14794:6:53","type":""}],"src":"14727:345:53"},{"body":{"nativeSrc":"15136:40:53","nodeType":"YulBlock","src":"15136:40:53","statements":[{"nativeSrc":"15147:22:53","nodeType":"YulAssignment","src":"15147:22:53","value":{"arguments":[{"name":"value","nativeSrc":"15163:5:53","nodeType":"YulIdentifier","src":"15163:5:53"}],"functionName":{"name":"mload","nativeSrc":"15157:5:53","nodeType":"YulIdentifier","src":"15157:5:53"},"nativeSrc":"15157:12:53","nodeType":"YulFunctionCall","src":"15157:12:53"},"variableNames":[{"name":"length","nativeSrc":"15147:6:53","nodeType":"YulIdentifier","src":"15147:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"15078:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15119:5:53","nodeType":"YulTypedName","src":"15119:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15129:6:53","nodeType":"YulTypedName","src":"15129:6:53","type":""}],"src":"15078:98:53"},{"body":{"nativeSrc":"15267:73:53","nodeType":"YulBlock","src":"15267:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15284:3:53","nodeType":"YulIdentifier","src":"15284:3:53"},{"name":"length","nativeSrc":"15289:6:53","nodeType":"YulIdentifier","src":"15289:6:53"}],"functionName":{"name":"mstore","nativeSrc":"15277:6:53","nodeType":"YulIdentifier","src":"15277:6:53"},"nativeSrc":"15277:19:53","nodeType":"YulFunctionCall","src":"15277:19:53"},"nativeSrc":"15277:19:53","nodeType":"YulExpressionStatement","src":"15277:19:53"},{"nativeSrc":"15305:29:53","nodeType":"YulAssignment","src":"15305:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"15324:3:53","nodeType":"YulIdentifier","src":"15324:3:53"},{"kind":"number","nativeSrc":"15329:4:53","nodeType":"YulLiteral","src":"15329:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15320:3:53","nodeType":"YulIdentifier","src":"15320:3:53"},"nativeSrc":"15320:14:53","nodeType":"YulFunctionCall","src":"15320:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"15305:11:53","nodeType":"YulIdentifier","src":"15305:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"15182:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15239:3:53","nodeType":"YulTypedName","src":"15239:3:53","type":""},{"name":"length","nativeSrc":"15244:6:53","nodeType":"YulTypedName","src":"15244:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"15255:11:53","nodeType":"YulTypedName","src":"15255:11:53","type":""}],"src":"15182:158:53"},{"body":{"nativeSrc":"15408:77:53","nodeType":"YulBlock","src":"15408:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"15425:3:53","nodeType":"YulIdentifier","src":"15425:3:53"},{"name":"src","nativeSrc":"15430:3:53","nodeType":"YulIdentifier","src":"15430:3:53"},{"name":"length","nativeSrc":"15435:6:53","nodeType":"YulIdentifier","src":"15435:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"15419:5:53","nodeType":"YulIdentifier","src":"15419:5:53"},"nativeSrc":"15419:23:53","nodeType":"YulFunctionCall","src":"15419:23:53"},"nativeSrc":"15419:23:53","nodeType":"YulExpressionStatement","src":"15419:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"15462:3:53","nodeType":"YulIdentifier","src":"15462:3:53"},{"name":"length","nativeSrc":"15467:6:53","nodeType":"YulIdentifier","src":"15467:6:53"}],"functionName":{"name":"add","nativeSrc":"15458:3:53","nodeType":"YulIdentifier","src":"15458:3:53"},"nativeSrc":"15458:16:53","nodeType":"YulFunctionCall","src":"15458:16:53"},{"kind":"number","nativeSrc":"15476:1:53","nodeType":"YulLiteral","src":"15476:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15451:6:53","nodeType":"YulIdentifier","src":"15451:6:53"},"nativeSrc":"15451:27:53","nodeType":"YulFunctionCall","src":"15451:27:53"},"nativeSrc":"15451:27:53","nodeType":"YulExpressionStatement","src":"15451:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15346:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15390:3:53","nodeType":"YulTypedName","src":"15390:3:53","type":""},{"name":"dst","nativeSrc":"15395:3:53","nodeType":"YulTypedName","src":"15395:3:53","type":""},{"name":"length","nativeSrc":"15400:6:53","nodeType":"YulTypedName","src":"15400:6:53","type":""}],"src":"15346:139:53"},{"body":{"nativeSrc":"15571:273:53","nodeType":"YulBlock","src":"15571:273:53","statements":[{"nativeSrc":"15581:52:53","nodeType":"YulVariableDeclaration","src":"15581:52:53","value":{"arguments":[{"name":"value","nativeSrc":"15627:5:53","nodeType":"YulIdentifier","src":"15627:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"15595:31:53","nodeType":"YulIdentifier","src":"15595:31:53"},"nativeSrc":"15595:38:53","nodeType":"YulFunctionCall","src":"15595:38:53"},"variables":[{"name":"length","nativeSrc":"15585:6:53","nodeType":"YulTypedName","src":"15585:6:53","type":""}]},{"nativeSrc":"15642:67:53","nodeType":"YulAssignment","src":"15642:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"15697:3:53","nodeType":"YulIdentifier","src":"15697:3:53"},{"name":"length","nativeSrc":"15702:6:53","nodeType":"YulIdentifier","src":"15702:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"15649:47:53","nodeType":"YulIdentifier","src":"15649:47:53"},"nativeSrc":"15649:60:53","nodeType":"YulFunctionCall","src":"15649:60:53"},"variableNames":[{"name":"pos","nativeSrc":"15642:3:53","nodeType":"YulIdentifier","src":"15642:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15757:5:53","nodeType":"YulIdentifier","src":"15757:5:53"},{"kind":"number","nativeSrc":"15764:4:53","nodeType":"YulLiteral","src":"15764:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15753:3:53","nodeType":"YulIdentifier","src":"15753:3:53"},"nativeSrc":"15753:16:53","nodeType":"YulFunctionCall","src":"15753:16:53"},{"name":"pos","nativeSrc":"15771:3:53","nodeType":"YulIdentifier","src":"15771:3:53"},{"name":"length","nativeSrc":"15776:6:53","nodeType":"YulIdentifier","src":"15776:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15718:34:53","nodeType":"YulIdentifier","src":"15718:34:53"},"nativeSrc":"15718:65:53","nodeType":"YulFunctionCall","src":"15718:65:53"},"nativeSrc":"15718:65:53","nodeType":"YulExpressionStatement","src":"15718:65:53"},{"nativeSrc":"15792:46:53","nodeType":"YulAssignment","src":"15792:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"15803:3:53","nodeType":"YulIdentifier","src":"15803:3:53"},{"arguments":[{"name":"length","nativeSrc":"15830:6:53","nodeType":"YulIdentifier","src":"15830:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15808:21:53","nodeType":"YulIdentifier","src":"15808:21:53"},"nativeSrc":"15808:29:53","nodeType":"YulFunctionCall","src":"15808:29:53"}],"functionName":{"name":"add","nativeSrc":"15799:3:53","nodeType":"YulIdentifier","src":"15799:3:53"},"nativeSrc":"15799:39:53","nodeType":"YulFunctionCall","src":"15799:39:53"},"variableNames":[{"name":"end","nativeSrc":"15792:3:53","nodeType":"YulIdentifier","src":"15792:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"15491:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15552:5:53","nodeType":"YulTypedName","src":"15552:5:53","type":""},{"name":"pos","nativeSrc":"15559:3:53","nodeType":"YulTypedName","src":"15559:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15567:3:53","nodeType":"YulTypedName","src":"15567:3:53","type":""}],"src":"15491:353:53"},{"body":{"nativeSrc":"16056:482:53","nodeType":"YulBlock","src":"16056:482:53","statements":[{"nativeSrc":"16066:26:53","nodeType":"YulVariableDeclaration","src":"16066:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"16082:3:53","nodeType":"YulIdentifier","src":"16082:3:53"},{"kind":"number","nativeSrc":"16087:4:53","nodeType":"YulLiteral","src":"16087:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16078:3:53","nodeType":"YulIdentifier","src":"16078:3:53"},"nativeSrc":"16078:14:53","nodeType":"YulFunctionCall","src":"16078:14:53"},"variables":[{"name":"tail","nativeSrc":"16070:4:53","nodeType":"YulTypedName","src":"16070:4:53","type":""}]},{"nativeSrc":"16102:166:53","nodeType":"YulBlock","src":"16102:166:53","statements":[{"nativeSrc":"16139:43:53","nodeType":"YulVariableDeclaration","src":"16139:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16169:5:53","nodeType":"YulIdentifier","src":"16169:5:53"},{"kind":"number","nativeSrc":"16176:4:53","nodeType":"YulLiteral","src":"16176:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16165:3:53","nodeType":"YulIdentifier","src":"16165:3:53"},"nativeSrc":"16165:16:53","nodeType":"YulFunctionCall","src":"16165:16:53"}],"functionName":{"name":"mload","nativeSrc":"16159:5:53","nodeType":"YulIdentifier","src":"16159:5:53"},"nativeSrc":"16159:23:53","nodeType":"YulFunctionCall","src":"16159:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"16143:12:53","nodeType":"YulTypedName","src":"16143:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"16229:12:53","nodeType":"YulIdentifier","src":"16229:12:53"},{"arguments":[{"name":"pos","nativeSrc":"16247:3:53","nodeType":"YulIdentifier","src":"16247:3:53"},{"kind":"number","nativeSrc":"16252:4:53","nodeType":"YulLiteral","src":"16252:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16243:3:53","nodeType":"YulIdentifier","src":"16243:3:53"},"nativeSrc":"16243:14:53","nodeType":"YulFunctionCall","src":"16243:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"16195:33:53","nodeType":"YulIdentifier","src":"16195:33:53"},"nativeSrc":"16195:63:53","nodeType":"YulFunctionCall","src":"16195:63:53"},"nativeSrc":"16195:63:53","nodeType":"YulExpressionStatement","src":"16195:63:53"}]},{"nativeSrc":"16278:233:53","nodeType":"YulBlock","src":"16278:233:53","statements":[{"nativeSrc":"16313:43:53","nodeType":"YulVariableDeclaration","src":"16313:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16343:5:53","nodeType":"YulIdentifier","src":"16343:5:53"},{"kind":"number","nativeSrc":"16350:4:53","nodeType":"YulLiteral","src":"16350:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16339:3:53","nodeType":"YulIdentifier","src":"16339:3:53"},"nativeSrc":"16339:16:53","nodeType":"YulFunctionCall","src":"16339:16:53"}],"functionName":{"name":"mload","nativeSrc":"16333:5:53","nodeType":"YulIdentifier","src":"16333:5:53"},"nativeSrc":"16333:23:53","nodeType":"YulFunctionCall","src":"16333:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"16317:12:53","nodeType":"YulTypedName","src":"16317:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16381:3:53","nodeType":"YulIdentifier","src":"16381:3:53"},{"kind":"number","nativeSrc":"16386:4:53","nodeType":"YulLiteral","src":"16386:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16377:3:53","nodeType":"YulIdentifier","src":"16377:3:53"},"nativeSrc":"16377:14:53","nodeType":"YulFunctionCall","src":"16377:14:53"},{"arguments":[{"name":"tail","nativeSrc":"16397:4:53","nodeType":"YulIdentifier","src":"16397:4:53"},{"name":"pos","nativeSrc":"16403:3:53","nodeType":"YulIdentifier","src":"16403:3:53"}],"functionName":{"name":"sub","nativeSrc":"16393:3:53","nodeType":"YulIdentifier","src":"16393:3:53"},"nativeSrc":"16393:14:53","nodeType":"YulFunctionCall","src":"16393:14:53"}],"functionName":{"name":"mstore","nativeSrc":"16370:6:53","nodeType":"YulIdentifier","src":"16370:6:53"},"nativeSrc":"16370:38:53","nodeType":"YulFunctionCall","src":"16370:38:53"},"nativeSrc":"16370:38:53","nodeType":"YulExpressionStatement","src":"16370:38:53"},{"nativeSrc":"16421:79:53","nodeType":"YulAssignment","src":"16421:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"16481:12:53","nodeType":"YulIdentifier","src":"16481:12:53"},{"name":"tail","nativeSrc":"16495:4:53","nodeType":"YulIdentifier","src":"16495:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"16429:51:53","nodeType":"YulIdentifier","src":"16429:51:53"},"nativeSrc":"16429:71:53","nodeType":"YulFunctionCall","src":"16429:71:53"},"variableNames":[{"name":"tail","nativeSrc":"16421:4:53","nodeType":"YulIdentifier","src":"16421:4:53"}]}]},{"nativeSrc":"16521:11:53","nodeType":"YulAssignment","src":"16521:11:53","value":{"name":"tail","nativeSrc":"16528:4:53","nodeType":"YulIdentifier","src":"16528:4:53"},"variableNames":[{"name":"end","nativeSrc":"16521:3:53","nodeType":"YulIdentifier","src":"16521:3:53"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"15920:618:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16035:5:53","nodeType":"YulTypedName","src":"16035:5:53","type":""},{"name":"pos","nativeSrc":"16042:3:53","nodeType":"YulTypedName","src":"16042:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16051:3:53","nodeType":"YulTypedName","src":"16051:3:53","type":""}],"src":"15920:618:53"},{"body":{"nativeSrc":"16704:237:53","nodeType":"YulBlock","src":"16704:237:53","statements":[{"nativeSrc":"16714:26:53","nodeType":"YulAssignment","src":"16714:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16726:9:53","nodeType":"YulIdentifier","src":"16726:9:53"},{"kind":"number","nativeSrc":"16737:2:53","nodeType":"YulLiteral","src":"16737:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16722:3:53","nodeType":"YulIdentifier","src":"16722:3:53"},"nativeSrc":"16722:18:53","nodeType":"YulFunctionCall","src":"16722:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16714:4:53","nodeType":"YulIdentifier","src":"16714:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16761:9:53","nodeType":"YulIdentifier","src":"16761:9:53"},{"kind":"number","nativeSrc":"16772:1:53","nodeType":"YulLiteral","src":"16772:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16757:3:53","nodeType":"YulIdentifier","src":"16757:3:53"},"nativeSrc":"16757:17:53","nodeType":"YulFunctionCall","src":"16757:17:53"},{"arguments":[{"name":"tail","nativeSrc":"16780:4:53","nodeType":"YulIdentifier","src":"16780:4:53"},{"name":"headStart","nativeSrc":"16786:9:53","nodeType":"YulIdentifier","src":"16786:9:53"}],"functionName":{"name":"sub","nativeSrc":"16776:3:53","nodeType":"YulIdentifier","src":"16776:3:53"},"nativeSrc":"16776:20:53","nodeType":"YulFunctionCall","src":"16776:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16750:6:53","nodeType":"YulIdentifier","src":"16750:6:53"},"nativeSrc":"16750:47:53","nodeType":"YulFunctionCall","src":"16750:47:53"},"nativeSrc":"16750:47:53","nodeType":"YulExpressionStatement","src":"16750:47:53"},{"nativeSrc":"16806:128:53","nodeType":"YulAssignment","src":"16806:128:53","value":{"arguments":[{"name":"value0","nativeSrc":"16920:6:53","nodeType":"YulIdentifier","src":"16920:6:53"},{"name":"tail","nativeSrc":"16929:4:53","nodeType":"YulIdentifier","src":"16929:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"16814:105:53","nodeType":"YulIdentifier","src":"16814:105:53"},"nativeSrc":"16814:120:53","nodeType":"YulFunctionCall","src":"16814:120:53"},"variableNames":[{"name":"tail","nativeSrc":"16806:4:53","nodeType":"YulIdentifier","src":"16806:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed","nativeSrc":"16544:397:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16676:9:53","nodeType":"YulTypedName","src":"16676:9:53","type":""},{"name":"value0","nativeSrc":"16688:6:53","nodeType":"YulTypedName","src":"16688:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16699:4:53","nodeType":"YulTypedName","src":"16699:4:53","type":""}],"src":"16544:397:53"},{"body":{"nativeSrc":"17037:283:53","nodeType":"YulBlock","src":"17037:283:53","statements":[{"nativeSrc":"17047:52:53","nodeType":"YulVariableDeclaration","src":"17047:52:53","value":{"arguments":[{"name":"value","nativeSrc":"17093:5:53","nodeType":"YulIdentifier","src":"17093:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"17061:31:53","nodeType":"YulIdentifier","src":"17061:31:53"},"nativeSrc":"17061:38:53","nodeType":"YulFunctionCall","src":"17061:38:53"},"variables":[{"name":"length","nativeSrc":"17051:6:53","nodeType":"YulTypedName","src":"17051:6:53","type":""}]},{"nativeSrc":"17108:77:53","nodeType":"YulAssignment","src":"17108:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"17173:3:53","nodeType":"YulIdentifier","src":"17173:3:53"},{"name":"length","nativeSrc":"17178:6:53","nodeType":"YulIdentifier","src":"17178:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"17115:57:53","nodeType":"YulIdentifier","src":"17115:57:53"},"nativeSrc":"17115:70:53","nodeType":"YulFunctionCall","src":"17115:70:53"},"variableNames":[{"name":"pos","nativeSrc":"17108:3:53","nodeType":"YulIdentifier","src":"17108:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17233:5:53","nodeType":"YulIdentifier","src":"17233:5:53"},{"kind":"number","nativeSrc":"17240:4:53","nodeType":"YulLiteral","src":"17240:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17229:3:53","nodeType":"YulIdentifier","src":"17229:3:53"},"nativeSrc":"17229:16:53","nodeType":"YulFunctionCall","src":"17229:16:53"},{"name":"pos","nativeSrc":"17247:3:53","nodeType":"YulIdentifier","src":"17247:3:53"},{"name":"length","nativeSrc":"17252:6:53","nodeType":"YulIdentifier","src":"17252:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17194:34:53","nodeType":"YulIdentifier","src":"17194:34:53"},"nativeSrc":"17194:65:53","nodeType":"YulFunctionCall","src":"17194:65:53"},"nativeSrc":"17194:65:53","nodeType":"YulExpressionStatement","src":"17194:65:53"},{"nativeSrc":"17268:46:53","nodeType":"YulAssignment","src":"17268:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"17279:3:53","nodeType":"YulIdentifier","src":"17279:3:53"},{"arguments":[{"name":"length","nativeSrc":"17306:6:53","nodeType":"YulIdentifier","src":"17306:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17284:21:53","nodeType":"YulIdentifier","src":"17284:21:53"},"nativeSrc":"17284:29:53","nodeType":"YulFunctionCall","src":"17284:29:53"}],"functionName":{"name":"add","nativeSrc":"17275:3:53","nodeType":"YulIdentifier","src":"17275:3:53"},"nativeSrc":"17275:39:53","nodeType":"YulFunctionCall","src":"17275:39:53"},"variableNames":[{"name":"end","nativeSrc":"17268:3:53","nodeType":"YulIdentifier","src":"17268:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16947:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17018:5:53","nodeType":"YulTypedName","src":"17018:5:53","type":""},{"name":"pos","nativeSrc":"17025:3:53","nodeType":"YulTypedName","src":"17025:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17033:3:53","nodeType":"YulTypedName","src":"17033:3:53","type":""}],"src":"16947:373:53"},{"body":{"nativeSrc":"17442:193:53","nodeType":"YulBlock","src":"17442:193:53","statements":[{"nativeSrc":"17452:26:53","nodeType":"YulAssignment","src":"17452:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17464:9:53","nodeType":"YulIdentifier","src":"17464:9:53"},{"kind":"number","nativeSrc":"17475:2:53","nodeType":"YulLiteral","src":"17475:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17460:3:53","nodeType":"YulIdentifier","src":"17460:3:53"},"nativeSrc":"17460:18:53","nodeType":"YulFunctionCall","src":"17460:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17452:4:53","nodeType":"YulIdentifier","src":"17452:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17499:9:53","nodeType":"YulIdentifier","src":"17499:9:53"},{"kind":"number","nativeSrc":"17510:1:53","nodeType":"YulLiteral","src":"17510:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17495:3:53","nodeType":"YulIdentifier","src":"17495:3:53"},"nativeSrc":"17495:17:53","nodeType":"YulFunctionCall","src":"17495:17:53"},{"arguments":[{"name":"tail","nativeSrc":"17518:4:53","nodeType":"YulIdentifier","src":"17518:4:53"},{"name":"headStart","nativeSrc":"17524:9:53","nodeType":"YulIdentifier","src":"17524:9:53"}],"functionName":{"name":"sub","nativeSrc":"17514:3:53","nodeType":"YulIdentifier","src":"17514:3:53"},"nativeSrc":"17514:20:53","nodeType":"YulFunctionCall","src":"17514:20:53"}],"functionName":{"name":"mstore","nativeSrc":"17488:6:53","nodeType":"YulIdentifier","src":"17488:6:53"},"nativeSrc":"17488:47:53","nodeType":"YulFunctionCall","src":"17488:47:53"},"nativeSrc":"17488:47:53","nodeType":"YulExpressionStatement","src":"17488:47:53"},{"nativeSrc":"17544:84:53","nodeType":"YulAssignment","src":"17544:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"17614:6:53","nodeType":"YulIdentifier","src":"17614:6:53"},{"name":"tail","nativeSrc":"17623:4:53","nodeType":"YulIdentifier","src":"17623:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17552:61:53","nodeType":"YulIdentifier","src":"17552:61:53"},"nativeSrc":"17552:76:53","nodeType":"YulFunctionCall","src":"17552:76:53"},"variableNames":[{"name":"tail","nativeSrc":"17544:4:53","nodeType":"YulIdentifier","src":"17544:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17326:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17414:9:53","nodeType":"YulTypedName","src":"17414:9:53","type":""},{"name":"value0","nativeSrc":"17426:6:53","nodeType":"YulTypedName","src":"17426:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17437:4:53","nodeType":"YulTypedName","src":"17437:4:53","type":""}],"src":"17326:309:53"},{"body":{"nativeSrc":"17795:285:53","nodeType":"YulBlock","src":"17795:285:53","statements":[{"nativeSrc":"17805:26:53","nodeType":"YulAssignment","src":"17805:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17817:9:53","nodeType":"YulIdentifier","src":"17817:9:53"},{"kind":"number","nativeSrc":"17828:2:53","nodeType":"YulLiteral","src":"17828:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17813:3:53","nodeType":"YulIdentifier","src":"17813:3:53"},"nativeSrc":"17813:18:53","nodeType":"YulFunctionCall","src":"17813:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17805:4:53","nodeType":"YulIdentifier","src":"17805:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17885:6:53","nodeType":"YulIdentifier","src":"17885:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17898:9:53","nodeType":"YulIdentifier","src":"17898:9:53"},{"kind":"number","nativeSrc":"17909:1:53","nodeType":"YulLiteral","src":"17909:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17894:3:53","nodeType":"YulIdentifier","src":"17894:3:53"},"nativeSrc":"17894:17:53","nodeType":"YulFunctionCall","src":"17894:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17841:43:53","nodeType":"YulIdentifier","src":"17841:43:53"},"nativeSrc":"17841:71:53","nodeType":"YulFunctionCall","src":"17841:71:53"},"nativeSrc":"17841:71:53","nodeType":"YulExpressionStatement","src":"17841:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17933:9:53","nodeType":"YulIdentifier","src":"17933:9:53"},{"kind":"number","nativeSrc":"17944:2:53","nodeType":"YulLiteral","src":"17944:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17929:3:53","nodeType":"YulIdentifier","src":"17929:3:53"},"nativeSrc":"17929:18:53","nodeType":"YulFunctionCall","src":"17929:18:53"},{"arguments":[{"name":"tail","nativeSrc":"17953:4:53","nodeType":"YulIdentifier","src":"17953:4:53"},{"name":"headStart","nativeSrc":"17959:9:53","nodeType":"YulIdentifier","src":"17959:9:53"}],"functionName":{"name":"sub","nativeSrc":"17949:3:53","nodeType":"YulIdentifier","src":"17949:3:53"},"nativeSrc":"17949:20:53","nodeType":"YulFunctionCall","src":"17949:20:53"}],"functionName":{"name":"mstore","nativeSrc":"17922:6:53","nodeType":"YulIdentifier","src":"17922:6:53"},"nativeSrc":"17922:48:53","nodeType":"YulFunctionCall","src":"17922:48:53"},"nativeSrc":"17922:48:53","nodeType":"YulExpressionStatement","src":"17922:48:53"},{"nativeSrc":"17979:94:53","nodeType":"YulAssignment","src":"17979:94:53","value":{"arguments":[{"name":"value1","nativeSrc":"18051:6:53","nodeType":"YulIdentifier","src":"18051:6:53"},{"name":"value2","nativeSrc":"18059:6:53","nodeType":"YulIdentifier","src":"18059:6:53"},{"name":"tail","nativeSrc":"18068:4:53","nodeType":"YulIdentifier","src":"18068:4:53"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17987:63:53","nodeType":"YulIdentifier","src":"17987:63:53"},"nativeSrc":"17987:86:53","nodeType":"YulFunctionCall","src":"17987:86:53"},"variableNames":[{"name":"tail","nativeSrc":"17979:4:53","nodeType":"YulIdentifier","src":"17979:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17641:439:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17751:9:53","nodeType":"YulTypedName","src":"17751:9:53","type":""},{"name":"value2","nativeSrc":"17763:6:53","nodeType":"YulTypedName","src":"17763:6:53","type":""},{"name":"value1","nativeSrc":"17771:6:53","nodeType":"YulTypedName","src":"17771:6:53","type":""},{"name":"value0","nativeSrc":"17779:6:53","nodeType":"YulTypedName","src":"17779:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17790:4:53","nodeType":"YulTypedName","src":"17790:4:53","type":""}],"src":"17641:439:53"},{"body":{"nativeSrc":"18175:28:53","nodeType":"YulBlock","src":"18175:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18192:1:53","nodeType":"YulLiteral","src":"18192:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18195:1:53","nodeType":"YulLiteral","src":"18195:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18185:6:53","nodeType":"YulIdentifier","src":"18185:6:53"},"nativeSrc":"18185:12:53","nodeType":"YulFunctionCall","src":"18185:12:53"},"nativeSrc":"18185:12:53","nodeType":"YulExpressionStatement","src":"18185:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18086:117:53","nodeType":"YulFunctionDefinition","src":"18086:117:53"},{"body":{"nativeSrc":"18237:152:53","nodeType":"YulBlock","src":"18237:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18254:1:53","nodeType":"YulLiteral","src":"18254:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18257:77:53","nodeType":"YulLiteral","src":"18257:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18247:6:53","nodeType":"YulIdentifier","src":"18247:6:53"},"nativeSrc":"18247:88:53","nodeType":"YulFunctionCall","src":"18247:88:53"},"nativeSrc":"18247:88:53","nodeType":"YulExpressionStatement","src":"18247:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18351:1:53","nodeType":"YulLiteral","src":"18351:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"18354:4:53","nodeType":"YulLiteral","src":"18354:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"18344:6:53","nodeType":"YulIdentifier","src":"18344:6:53"},"nativeSrc":"18344:15:53","nodeType":"YulFunctionCall","src":"18344:15:53"},"nativeSrc":"18344:15:53","nodeType":"YulExpressionStatement","src":"18344:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18375:1:53","nodeType":"YulLiteral","src":"18375:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18378:4:53","nodeType":"YulLiteral","src":"18378:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18368:6:53","nodeType":"YulIdentifier","src":"18368:6:53"},"nativeSrc":"18368:15:53","nodeType":"YulFunctionCall","src":"18368:15:53"},"nativeSrc":"18368:15:53","nodeType":"YulExpressionStatement","src":"18368:15:53"}]},"name":"panic_error_0x41","nativeSrc":"18209:180:53","nodeType":"YulFunctionDefinition","src":"18209:180:53"},{"body":{"nativeSrc":"18438:238:53","nodeType":"YulBlock","src":"18438:238:53","statements":[{"nativeSrc":"18448:58:53","nodeType":"YulVariableDeclaration","src":"18448:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"18470:6:53","nodeType":"YulIdentifier","src":"18470:6:53"},{"arguments":[{"name":"size","nativeSrc":"18500:4:53","nodeType":"YulIdentifier","src":"18500:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"18478:21:53","nodeType":"YulIdentifier","src":"18478:21:53"},"nativeSrc":"18478:27:53","nodeType":"YulFunctionCall","src":"18478:27:53"}],"functionName":{"name":"add","nativeSrc":"18466:3:53","nodeType":"YulIdentifier","src":"18466:3:53"},"nativeSrc":"18466:40:53","nodeType":"YulFunctionCall","src":"18466:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"18452:10:53","nodeType":"YulTypedName","src":"18452:10:53","type":""}]},{"body":{"nativeSrc":"18617:22:53","nodeType":"YulBlock","src":"18617:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"18619:16:53","nodeType":"YulIdentifier","src":"18619:16:53"},"nativeSrc":"18619:18:53","nodeType":"YulFunctionCall","src":"18619:18:53"},"nativeSrc":"18619:18:53","nodeType":"YulExpressionStatement","src":"18619:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"18560:10:53","nodeType":"YulIdentifier","src":"18560:10:53"},{"kind":"number","nativeSrc":"18572:18:53","nodeType":"YulLiteral","src":"18572:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"18557:2:53","nodeType":"YulIdentifier","src":"18557:2:53"},"nativeSrc":"18557:34:53","nodeType":"YulFunctionCall","src":"18557:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"18596:10:53","nodeType":"YulIdentifier","src":"18596:10:53"},{"name":"memPtr","nativeSrc":"18608:6:53","nodeType":"YulIdentifier","src":"18608:6:53"}],"functionName":{"name":"lt","nativeSrc":"18593:2:53","nodeType":"YulIdentifier","src":"18593:2:53"},"nativeSrc":"18593:22:53","nodeType":"YulFunctionCall","src":"18593:22:53"}],"functionName":{"name":"or","nativeSrc":"18554:2:53","nodeType":"YulIdentifier","src":"18554:2:53"},"nativeSrc":"18554:62:53","nodeType":"YulFunctionCall","src":"18554:62:53"},"nativeSrc":"18551:88:53","nodeType":"YulIf","src":"18551:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18655:2:53","nodeType":"YulLiteral","src":"18655:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"18659:10:53","nodeType":"YulIdentifier","src":"18659:10:53"}],"functionName":{"name":"mstore","nativeSrc":"18648:6:53","nodeType":"YulIdentifier","src":"18648:6:53"},"nativeSrc":"18648:22:53","nodeType":"YulFunctionCall","src":"18648:22:53"},"nativeSrc":"18648:22:53","nodeType":"YulExpressionStatement","src":"18648:22:53"}]},"name":"finalize_allocation","nativeSrc":"18395:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18424:6:53","nodeType":"YulTypedName","src":"18424:6:53","type":""},{"name":"size","nativeSrc":"18432:4:53","nodeType":"YulTypedName","src":"18432:4:53","type":""}],"src":"18395:281:53"},{"body":{"nativeSrc":"18723:88:53","nodeType":"YulBlock","src":"18723:88:53","statements":[{"nativeSrc":"18733:30:53","nodeType":"YulAssignment","src":"18733:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"18743:18:53","nodeType":"YulIdentifier","src":"18743:18:53"},"nativeSrc":"18743:20:53","nodeType":"YulFunctionCall","src":"18743:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"18733:6:53","nodeType":"YulIdentifier","src":"18733:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"18792:6:53","nodeType":"YulIdentifier","src":"18792:6:53"},{"name":"size","nativeSrc":"18800:4:53","nodeType":"YulIdentifier","src":"18800:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"18772:19:53","nodeType":"YulIdentifier","src":"18772:19:53"},"nativeSrc":"18772:33:53","nodeType":"YulFunctionCall","src":"18772:33:53"},"nativeSrc":"18772:33:53","nodeType":"YulExpressionStatement","src":"18772:33:53"}]},"name":"allocate_memory","nativeSrc":"18682:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"18707:4:53","nodeType":"YulTypedName","src":"18707:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"18716:6:53","nodeType":"YulTypedName","src":"18716:6:53","type":""}],"src":"18682:129:53"},{"body":{"nativeSrc":"18906:28:53","nodeType":"YulBlock","src":"18906:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18923:1:53","nodeType":"YulLiteral","src":"18923:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18926:1:53","nodeType":"YulLiteral","src":"18926:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18916:6:53","nodeType":"YulIdentifier","src":"18916:6:53"},"nativeSrc":"18916:12:53","nodeType":"YulFunctionCall","src":"18916:12:53"},"nativeSrc":"18916:12:53","nodeType":"YulExpressionStatement","src":"18916:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"18817:117:53","nodeType":"YulFunctionDefinition","src":"18817:117:53"},{"body":{"nativeSrc":"18993:51:53","nodeType":"YulBlock","src":"18993:51:53","statements":[{"nativeSrc":"19003:35:53","nodeType":"YulAssignment","src":"19003:35:53","value":{"arguments":[{"name":"value","nativeSrc":"19032:5:53","nodeType":"YulIdentifier","src":"19032:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"19014:17:53","nodeType":"YulIdentifier","src":"19014:17:53"},"nativeSrc":"19014:24:53","nodeType":"YulFunctionCall","src":"19014:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"19003:7:53","nodeType":"YulIdentifier","src":"19003:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"18940:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18975:5:53","nodeType":"YulTypedName","src":"18975:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"18985:7:53","nodeType":"YulTypedName","src":"18985:7:53","type":""}],"src":"18940:104:53"},{"body":{"nativeSrc":"19111:59:53","nodeType":"YulBlock","src":"19111:59:53","statements":[{"nativeSrc":"19121:43:53","nodeType":"YulAssignment","src":"19121:43:53","value":{"arguments":[{"name":"value","nativeSrc":"19158:5:53","nodeType":"YulIdentifier","src":"19158:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"19132:25:53","nodeType":"YulIdentifier","src":"19132:25:53"},"nativeSrc":"19132:32:53","nodeType":"YulFunctionCall","src":"19132:32:53"},"variableNames":[{"name":"cleaned","nativeSrc":"19121:7:53","nodeType":"YulIdentifier","src":"19121:7:53"}]}]},"name":"cleanup_t_contract$_Budget_$13669","nativeSrc":"19050:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19093:5:53","nodeType":"YulTypedName","src":"19093:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"19103:7:53","nodeType":"YulTypedName","src":"19103:7:53","type":""}],"src":"19050:120:53"},{"body":{"nativeSrc":"19235:95:53","nodeType":"YulBlock","src":"19235:95:53","statements":[{"body":{"nativeSrc":"19308:16:53","nodeType":"YulBlock","src":"19308:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19317:1:53","nodeType":"YulLiteral","src":"19317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19320:1:53","nodeType":"YulLiteral","src":"19320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19310:6:53","nodeType":"YulIdentifier","src":"19310:6:53"},"nativeSrc":"19310:12:53","nodeType":"YulFunctionCall","src":"19310:12:53"},"nativeSrc":"19310:12:53","nodeType":"YulExpressionStatement","src":"19310:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19258:5:53","nodeType":"YulIdentifier","src":"19258:5:53"},{"arguments":[{"name":"value","nativeSrc":"19299:5:53","nodeType":"YulIdentifier","src":"19299:5:53"}],"functionName":{"name":"cleanup_t_contract$_Budget_$13669","nativeSrc":"19265:33:53","nodeType":"YulIdentifier","src":"19265:33:53"},"nativeSrc":"19265:40:53","nodeType":"YulFunctionCall","src":"19265:40:53"}],"functionName":{"name":"eq","nativeSrc":"19255:2:53","nodeType":"YulIdentifier","src":"19255:2:53"},"nativeSrc":"19255:51:53","nodeType":"YulFunctionCall","src":"19255:51:53"}],"functionName":{"name":"iszero","nativeSrc":"19248:6:53","nodeType":"YulIdentifier","src":"19248:6:53"},"nativeSrc":"19248:59:53","nodeType":"YulFunctionCall","src":"19248:59:53"},"nativeSrc":"19245:79:53","nodeType":"YulIf","src":"19245:79:53"}]},"name":"validator_revert_t_contract$_Budget_$13669","nativeSrc":"19176:154:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19228:5:53","nodeType":"YulTypedName","src":"19228:5:53","type":""}],"src":"19176:154:53"},{"body":{"nativeSrc":"19415:96:53","nodeType":"YulBlock","src":"19415:96:53","statements":[{"nativeSrc":"19425:22:53","nodeType":"YulAssignment","src":"19425:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"19440:6:53","nodeType":"YulIdentifier","src":"19440:6:53"}],"functionName":{"name":"mload","nativeSrc":"19434:5:53","nodeType":"YulIdentifier","src":"19434:5:53"},"nativeSrc":"19434:13:53","nodeType":"YulFunctionCall","src":"19434:13:53"},"variableNames":[{"name":"value","nativeSrc":"19425:5:53","nodeType":"YulIdentifier","src":"19425:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19499:5:53","nodeType":"YulIdentifier","src":"19499:5:53"}],"functionName":{"name":"validator_revert_t_contract$_Budget_$13669","nativeSrc":"19456:42:53","nodeType":"YulIdentifier","src":"19456:42:53"},"nativeSrc":"19456:49:53","nodeType":"YulFunctionCall","src":"19456:49:53"},"nativeSrc":"19456:49:53","nodeType":"YulExpressionStatement","src":"19456:49:53"}]},"name":"abi_decode_t_contract$_Budget_$13669_fromMemory","nativeSrc":"19336:175:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19393:6:53","nodeType":"YulTypedName","src":"19393:6:53","type":""},{"name":"end","nativeSrc":"19401:3:53","nodeType":"YulTypedName","src":"19401:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19409:5:53","nodeType":"YulTypedName","src":"19409:5:53","type":""}],"src":"19336:175:53"},{"body":{"nativeSrc":"19580:80:53","nodeType":"YulBlock","src":"19580:80:53","statements":[{"nativeSrc":"19590:22:53","nodeType":"YulAssignment","src":"19590:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"19605:6:53","nodeType":"YulIdentifier","src":"19605:6:53"}],"functionName":{"name":"mload","nativeSrc":"19599:5:53","nodeType":"YulIdentifier","src":"19599:5:53"},"nativeSrc":"19599:13:53","nodeType":"YulFunctionCall","src":"19599:13:53"},"variableNames":[{"name":"value","nativeSrc":"19590:5:53","nodeType":"YulIdentifier","src":"19590:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19648:5:53","nodeType":"YulIdentifier","src":"19648:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"19621:26:53","nodeType":"YulIdentifier","src":"19621:26:53"},"nativeSrc":"19621:33:53","nodeType":"YulFunctionCall","src":"19621:33:53"},"nativeSrc":"19621:33:53","nodeType":"YulExpressionStatement","src":"19621:33:53"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"19517:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19558:6:53","nodeType":"YulTypedName","src":"19558:6:53","type":""},{"name":"end","nativeSrc":"19566:3:53","nodeType":"YulTypedName","src":"19566:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19574:5:53","nodeType":"YulTypedName","src":"19574:5:53","type":""}],"src":"19517:143:53"},{"body":{"nativeSrc":"19755:28:53","nodeType":"YulBlock","src":"19755:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19772:1:53","nodeType":"YulLiteral","src":"19772:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19775:1:53","nodeType":"YulLiteral","src":"19775:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19765:6:53","nodeType":"YulIdentifier","src":"19765:6:53"},"nativeSrc":"19765:12:53","nodeType":"YulFunctionCall","src":"19765:12:53"},"nativeSrc":"19765:12:53","nodeType":"YulExpressionStatement","src":"19765:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"19666:117:53","nodeType":"YulFunctionDefinition","src":"19666:117:53"},{"body":{"nativeSrc":"19855:241:53","nodeType":"YulBlock","src":"19855:241:53","statements":[{"body":{"nativeSrc":"19960:22:53","nodeType":"YulBlock","src":"19960:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19962:16:53","nodeType":"YulIdentifier","src":"19962:16:53"},"nativeSrc":"19962:18:53","nodeType":"YulFunctionCall","src":"19962:18:53"},"nativeSrc":"19962:18:53","nodeType":"YulExpressionStatement","src":"19962:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"19932:6:53","nodeType":"YulIdentifier","src":"19932:6:53"},{"kind":"number","nativeSrc":"19940:18:53","nodeType":"YulLiteral","src":"19940:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19929:2:53","nodeType":"YulIdentifier","src":"19929:2:53"},"nativeSrc":"19929:30:53","nodeType":"YulFunctionCall","src":"19929:30:53"},"nativeSrc":"19926:56:53","nodeType":"YulIf","src":"19926:56:53"},{"nativeSrc":"19992:37:53","nodeType":"YulAssignment","src":"19992:37:53","value":{"arguments":[{"name":"length","nativeSrc":"20022:6:53","nodeType":"YulIdentifier","src":"20022:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"20000:21:53","nodeType":"YulIdentifier","src":"20000:21:53"},"nativeSrc":"20000:29:53","nodeType":"YulFunctionCall","src":"20000:29:53"},"variableNames":[{"name":"size","nativeSrc":"19992:4:53","nodeType":"YulIdentifier","src":"19992:4:53"}]},{"nativeSrc":"20066:23:53","nodeType":"YulAssignment","src":"20066:23:53","value":{"arguments":[{"name":"size","nativeSrc":"20078:4:53","nodeType":"YulIdentifier","src":"20078:4:53"},{"kind":"number","nativeSrc":"20084:4:53","nodeType":"YulLiteral","src":"20084:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20074:3:53","nodeType":"YulIdentifier","src":"20074:3:53"},"nativeSrc":"20074:15:53","nodeType":"YulFunctionCall","src":"20074:15:53"},"variableNames":[{"name":"size","nativeSrc":"20066:4:53","nodeType":"YulIdentifier","src":"20066:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"19789:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"19839:6:53","nodeType":"YulTypedName","src":"19839:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"19850:4:53","nodeType":"YulTypedName","src":"19850:4:53","type":""}],"src":"19789:307:53"},{"body":{"nativeSrc":"20196:338:53","nodeType":"YulBlock","src":"20196:338:53","statements":[{"nativeSrc":"20206:74:53","nodeType":"YulAssignment","src":"20206:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"20272:6:53","nodeType":"YulIdentifier","src":"20272:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"20231:40:53","nodeType":"YulIdentifier","src":"20231:40:53"},"nativeSrc":"20231:48:53","nodeType":"YulFunctionCall","src":"20231:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"20215:15:53","nodeType":"YulIdentifier","src":"20215:15:53"},"nativeSrc":"20215:65:53","nodeType":"YulFunctionCall","src":"20215:65:53"},"variableNames":[{"name":"array","nativeSrc":"20206:5:53","nodeType":"YulIdentifier","src":"20206:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"20296:5:53","nodeType":"YulIdentifier","src":"20296:5:53"},{"name":"length","nativeSrc":"20303:6:53","nodeType":"YulIdentifier","src":"20303:6:53"}],"functionName":{"name":"mstore","nativeSrc":"20289:6:53","nodeType":"YulIdentifier","src":"20289:6:53"},"nativeSrc":"20289:21:53","nodeType":"YulFunctionCall","src":"20289:21:53"},"nativeSrc":"20289:21:53","nodeType":"YulExpressionStatement","src":"20289:21:53"},{"nativeSrc":"20319:27:53","nodeType":"YulVariableDeclaration","src":"20319:27:53","value":{"arguments":[{"name":"array","nativeSrc":"20334:5:53","nodeType":"YulIdentifier","src":"20334:5:53"},{"kind":"number","nativeSrc":"20341:4:53","nodeType":"YulLiteral","src":"20341:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20330:3:53","nodeType":"YulIdentifier","src":"20330:3:53"},"nativeSrc":"20330:16:53","nodeType":"YulFunctionCall","src":"20330:16:53"},"variables":[{"name":"dst","nativeSrc":"20323:3:53","nodeType":"YulTypedName","src":"20323:3:53","type":""}]},{"body":{"nativeSrc":"20384:83:53","nodeType":"YulBlock","src":"20384:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"20386:77:53","nodeType":"YulIdentifier","src":"20386:77:53"},"nativeSrc":"20386:79:53","nodeType":"YulFunctionCall","src":"20386:79:53"},"nativeSrc":"20386:79:53","nodeType":"YulExpressionStatement","src":"20386:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20365:3:53","nodeType":"YulIdentifier","src":"20365:3:53"},{"name":"length","nativeSrc":"20370:6:53","nodeType":"YulIdentifier","src":"20370:6:53"}],"functionName":{"name":"add","nativeSrc":"20361:3:53","nodeType":"YulIdentifier","src":"20361:3:53"},"nativeSrc":"20361:16:53","nodeType":"YulFunctionCall","src":"20361:16:53"},{"name":"end","nativeSrc":"20379:3:53","nodeType":"YulIdentifier","src":"20379:3:53"}],"functionName":{"name":"gt","nativeSrc":"20358:2:53","nodeType":"YulIdentifier","src":"20358:2:53"},"nativeSrc":"20358:25:53","nodeType":"YulFunctionCall","src":"20358:25:53"},"nativeSrc":"20355:112:53","nodeType":"YulIf","src":"20355:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"20511:3:53","nodeType":"YulIdentifier","src":"20511:3:53"},{"name":"dst","nativeSrc":"20516:3:53","nodeType":"YulIdentifier","src":"20516:3:53"},{"name":"length","nativeSrc":"20521:6:53","nodeType":"YulIdentifier","src":"20521:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"20476:34:53","nodeType":"YulIdentifier","src":"20476:34:53"},"nativeSrc":"20476:52:53","nodeType":"YulFunctionCall","src":"20476:52:53"},"nativeSrc":"20476:52:53","nodeType":"YulExpressionStatement","src":"20476:52:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"20102:432:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"20169:3:53","nodeType":"YulTypedName","src":"20169:3:53","type":""},{"name":"length","nativeSrc":"20174:6:53","nodeType":"YulTypedName","src":"20174:6:53","type":""},{"name":"end","nativeSrc":"20182:3:53","nodeType":"YulTypedName","src":"20182:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20190:5:53","nodeType":"YulTypedName","src":"20190:5:53","type":""}],"src":"20102:432:53"},{"body":{"nativeSrc":"20625:281:53","nodeType":"YulBlock","src":"20625:281:53","statements":[{"body":{"nativeSrc":"20674:83:53","nodeType":"YulBlock","src":"20674:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"20676:77:53","nodeType":"YulIdentifier","src":"20676:77:53"},"nativeSrc":"20676:79:53","nodeType":"YulFunctionCall","src":"20676:79:53"},"nativeSrc":"20676:79:53","nodeType":"YulExpressionStatement","src":"20676:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20653:6:53","nodeType":"YulIdentifier","src":"20653:6:53"},{"kind":"number","nativeSrc":"20661:4:53","nodeType":"YulLiteral","src":"20661:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"20649:3:53","nodeType":"YulIdentifier","src":"20649:3:53"},"nativeSrc":"20649:17:53","nodeType":"YulFunctionCall","src":"20649:17:53"},{"name":"end","nativeSrc":"20668:3:53","nodeType":"YulIdentifier","src":"20668:3:53"}],"functionName":{"name":"slt","nativeSrc":"20645:3:53","nodeType":"YulIdentifier","src":"20645:3:53"},"nativeSrc":"20645:27:53","nodeType":"YulFunctionCall","src":"20645:27:53"}],"functionName":{"name":"iszero","nativeSrc":"20638:6:53","nodeType":"YulIdentifier","src":"20638:6:53"},"nativeSrc":"20638:35:53","nodeType":"YulFunctionCall","src":"20638:35:53"},"nativeSrc":"20635:122:53","nodeType":"YulIf","src":"20635:122:53"},{"nativeSrc":"20766:27:53","nodeType":"YulVariableDeclaration","src":"20766:27:53","value":{"arguments":[{"name":"offset","nativeSrc":"20786:6:53","nodeType":"YulIdentifier","src":"20786:6:53"}],"functionName":{"name":"mload","nativeSrc":"20780:5:53","nodeType":"YulIdentifier","src":"20780:5:53"},"nativeSrc":"20780:13:53","nodeType":"YulFunctionCall","src":"20780:13:53"},"variables":[{"name":"length","nativeSrc":"20770:6:53","nodeType":"YulTypedName","src":"20770:6:53","type":""}]},{"nativeSrc":"20802:98:53","nodeType":"YulAssignment","src":"20802:98:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20873:6:53","nodeType":"YulIdentifier","src":"20873:6:53"},{"kind":"number","nativeSrc":"20881:4:53","nodeType":"YulLiteral","src":"20881:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20869:3:53","nodeType":"YulIdentifier","src":"20869:3:53"},"nativeSrc":"20869:17:53","nodeType":"YulFunctionCall","src":"20869:17:53"},{"name":"length","nativeSrc":"20888:6:53","nodeType":"YulIdentifier","src":"20888:6:53"},{"name":"end","nativeSrc":"20896:3:53","nodeType":"YulIdentifier","src":"20896:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"20811:57:53","nodeType":"YulIdentifier","src":"20811:57:53"},"nativeSrc":"20811:89:53","nodeType":"YulFunctionCall","src":"20811:89:53"},"variableNames":[{"name":"array","nativeSrc":"20802:5:53","nodeType":"YulIdentifier","src":"20802:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"20553:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20603:6:53","nodeType":"YulTypedName","src":"20603:6:53","type":""},{"name":"end","nativeSrc":"20611:3:53","nodeType":"YulTypedName","src":"20611:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20619:5:53","nodeType":"YulTypedName","src":"20619:5:53","type":""}],"src":"20553:353:53"},{"body":{"nativeSrc":"21033:859:53","nodeType":"YulBlock","src":"21033:859:53","statements":[{"body":{"nativeSrc":"21077:83:53","nodeType":"YulBlock","src":"21077:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"21079:77:53","nodeType":"YulIdentifier","src":"21079:77:53"},"nativeSrc":"21079:79:53","nodeType":"YulFunctionCall","src":"21079:79:53"},"nativeSrc":"21079:79:53","nodeType":"YulExpressionStatement","src":"21079:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"21054:3:53","nodeType":"YulIdentifier","src":"21054:3:53"},{"name":"headStart","nativeSrc":"21059:9:53","nodeType":"YulIdentifier","src":"21059:9:53"}],"functionName":{"name":"sub","nativeSrc":"21050:3:53","nodeType":"YulIdentifier","src":"21050:3:53"},"nativeSrc":"21050:19:53","nodeType":"YulFunctionCall","src":"21050:19:53"},{"kind":"number","nativeSrc":"21071:4:53","nodeType":"YulLiteral","src":"21071:4:53","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"21046:3:53","nodeType":"YulIdentifier","src":"21046:3:53"},"nativeSrc":"21046:30:53","nodeType":"YulFunctionCall","src":"21046:30:53"},"nativeSrc":"21043:117:53","nodeType":"YulIf","src":"21043:117:53"},{"nativeSrc":"21169:30:53","nodeType":"YulAssignment","src":"21169:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"21194:4:53","nodeType":"YulLiteral","src":"21194:4:53","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"21178:15:53","nodeType":"YulIdentifier","src":"21178:15:53"},"nativeSrc":"21178:21:53","nodeType":"YulFunctionCall","src":"21178:21:53"},"variableNames":[{"name":"value","nativeSrc":"21169:5:53","nodeType":"YulIdentifier","src":"21169:5:53"}]},{"nativeSrc":"21209:160:53","nodeType":"YulBlock","src":"21209:160:53","statements":[{"nativeSrc":"21246:15:53","nodeType":"YulVariableDeclaration","src":"21246:15:53","value":{"kind":"number","nativeSrc":"21260:1:53","nodeType":"YulLiteral","src":"21260:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21250:6:53","nodeType":"YulTypedName","src":"21250:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21286:5:53","nodeType":"YulIdentifier","src":"21286:5:53"},{"kind":"number","nativeSrc":"21293:4:53","nodeType":"YulLiteral","src":"21293:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"21282:3:53","nodeType":"YulIdentifier","src":"21282:3:53"},"nativeSrc":"21282:16:53","nodeType":"YulFunctionCall","src":"21282:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21333:9:53","nodeType":"YulIdentifier","src":"21333:9:53"},{"name":"offset","nativeSrc":"21344:6:53","nodeType":"YulIdentifier","src":"21344:6:53"}],"functionName":{"name":"add","nativeSrc":"21329:3:53","nodeType":"YulIdentifier","src":"21329:3:53"},"nativeSrc":"21329:22:53","nodeType":"YulFunctionCall","src":"21329:22:53"},{"name":"end","nativeSrc":"21353:3:53","nodeType":"YulIdentifier","src":"21353:3:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"21300:28:53","nodeType":"YulIdentifier","src":"21300:28:53"},"nativeSrc":"21300:57:53","nodeType":"YulFunctionCall","src":"21300:57:53"}],"functionName":{"name":"mstore","nativeSrc":"21275:6:53","nodeType":"YulIdentifier","src":"21275:6:53"},"nativeSrc":"21275:83:53","nodeType":"YulFunctionCall","src":"21275:83:53"},"nativeSrc":"21275:83:53","nodeType":"YulExpressionStatement","src":"21275:83:53"}]},{"nativeSrc":"21379:166:53","nodeType":"YulBlock","src":"21379:166:53","statements":[{"nativeSrc":"21418:16:53","nodeType":"YulVariableDeclaration","src":"21418:16:53","value":{"kind":"number","nativeSrc":"21432:2:53","nodeType":"YulLiteral","src":"21432:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"21422:6:53","nodeType":"YulTypedName","src":"21422:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21459:5:53","nodeType":"YulIdentifier","src":"21459:5:53"},{"kind":"number","nativeSrc":"21466:4:53","nodeType":"YulLiteral","src":"21466:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21455:3:53","nodeType":"YulIdentifier","src":"21455:3:53"},"nativeSrc":"21455:16:53","nodeType":"YulFunctionCall","src":"21455:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21509:9:53","nodeType":"YulIdentifier","src":"21509:9:53"},{"name":"offset","nativeSrc":"21520:6:53","nodeType":"YulIdentifier","src":"21520:6:53"}],"functionName":{"name":"add","nativeSrc":"21505:3:53","nodeType":"YulIdentifier","src":"21505:3:53"},"nativeSrc":"21505:22:53","nodeType":"YulFunctionCall","src":"21505:22:53"},{"name":"end","nativeSrc":"21529:3:53","nodeType":"YulIdentifier","src":"21529:3:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"21473:31:53","nodeType":"YulIdentifier","src":"21473:31:53"},"nativeSrc":"21473:60:53","nodeType":"YulFunctionCall","src":"21473:60:53"}],"functionName":{"name":"mstore","nativeSrc":"21448:6:53","nodeType":"YulIdentifier","src":"21448:6:53"},"nativeSrc":"21448:86:53","nodeType":"YulFunctionCall","src":"21448:86:53"},"nativeSrc":"21448:86:53","nodeType":"YulExpressionStatement","src":"21448:86:53"}]},{"nativeSrc":"21555:330:53","nodeType":"YulBlock","src":"21555:330:53","statements":[{"nativeSrc":"21596:39:53","nodeType":"YulVariableDeclaration","src":"21596:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21620:9:53","nodeType":"YulIdentifier","src":"21620:9:53"},{"kind":"number","nativeSrc":"21631:2:53","nodeType":"YulLiteral","src":"21631:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21616:3:53","nodeType":"YulIdentifier","src":"21616:3:53"},"nativeSrc":"21616:18:53","nodeType":"YulFunctionCall","src":"21616:18:53"}],"functionName":{"name":"mload","nativeSrc":"21610:5:53","nodeType":"YulIdentifier","src":"21610:5:53"},"nativeSrc":"21610:25:53","nodeType":"YulFunctionCall","src":"21610:25:53"},"variables":[{"name":"offset","nativeSrc":"21600:6:53","nodeType":"YulTypedName","src":"21600:6:53","type":""}]},{"body":{"nativeSrc":"21682:83:53","nodeType":"YulBlock","src":"21682:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"21684:77:53","nodeType":"YulIdentifier","src":"21684:77:53"},"nativeSrc":"21684:79:53","nodeType":"YulFunctionCall","src":"21684:79:53"},"nativeSrc":"21684:79:53","nodeType":"YulExpressionStatement","src":"21684:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"21654:6:53","nodeType":"YulIdentifier","src":"21654:6:53"},{"kind":"number","nativeSrc":"21662:18:53","nodeType":"YulLiteral","src":"21662:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21651:2:53","nodeType":"YulIdentifier","src":"21651:2:53"},"nativeSrc":"21651:30:53","nodeType":"YulFunctionCall","src":"21651:30:53"},"nativeSrc":"21648:117:53","nodeType":"YulIf","src":"21648:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21790:5:53","nodeType":"YulIdentifier","src":"21790:5:53"},{"kind":"number","nativeSrc":"21797:4:53","nodeType":"YulLiteral","src":"21797:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21786:3:53","nodeType":"YulIdentifier","src":"21786:3:53"},"nativeSrc":"21786:16:53","nodeType":"YulFunctionCall","src":"21786:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21849:9:53","nodeType":"YulIdentifier","src":"21849:9:53"},{"name":"offset","nativeSrc":"21860:6:53","nodeType":"YulIdentifier","src":"21860:6:53"}],"functionName":{"name":"add","nativeSrc":"21845:3:53","nodeType":"YulIdentifier","src":"21845:3:53"},"nativeSrc":"21845:22:53","nodeType":"YulFunctionCall","src":"21845:22:53"},{"name":"end","nativeSrc":"21869:3:53","nodeType":"YulIdentifier","src":"21869:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"21804:40:53","nodeType":"YulIdentifier","src":"21804:40:53"},"nativeSrc":"21804:69:53","nodeType":"YulFunctionCall","src":"21804:69:53"}],"functionName":{"name":"mstore","nativeSrc":"21779:6:53","nodeType":"YulIdentifier","src":"21779:6:53"},"nativeSrc":"21779:95:53","nodeType":"YulFunctionCall","src":"21779:95:53"},"nativeSrc":"21779:95:53","nodeType":"YulExpressionStatement","src":"21779:95:53"}]}]},"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"20942:950:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21008:9:53","nodeType":"YulTypedName","src":"21008:9:53","type":""},{"name":"end","nativeSrc":"21019:3:53","nodeType":"YulTypedName","src":"21019:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"21027:5:53","nodeType":"YulTypedName","src":"21027:5:53","type":""}],"src":"20942:950:53"},{"body":{"nativeSrc":"22005:229:53","nodeType":"YulBlock","src":"22005:229:53","statements":[{"body":{"nativeSrc":"22110:22:53","nodeType":"YulBlock","src":"22110:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"22112:16:53","nodeType":"YulIdentifier","src":"22112:16:53"},"nativeSrc":"22112:18:53","nodeType":"YulFunctionCall","src":"22112:18:53"},"nativeSrc":"22112:18:53","nodeType":"YulExpressionStatement","src":"22112:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"22082:6:53","nodeType":"YulIdentifier","src":"22082:6:53"},{"kind":"number","nativeSrc":"22090:18:53","nodeType":"YulLiteral","src":"22090:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22079:2:53","nodeType":"YulIdentifier","src":"22079:2:53"},"nativeSrc":"22079:30:53","nodeType":"YulFunctionCall","src":"22079:30:53"},"nativeSrc":"22076:56:53","nodeType":"YulIf","src":"22076:56:53"},{"nativeSrc":"22142:25:53","nodeType":"YulAssignment","src":"22142:25:53","value":{"arguments":[{"name":"length","nativeSrc":"22154:6:53","nodeType":"YulIdentifier","src":"22154:6:53"},{"kind":"number","nativeSrc":"22162:4:53","nodeType":"YulLiteral","src":"22162:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"22150:3:53","nodeType":"YulIdentifier","src":"22150:3:53"},"nativeSrc":"22150:17:53","nodeType":"YulFunctionCall","src":"22150:17:53"},"variableNames":[{"name":"size","nativeSrc":"22142:4:53","nodeType":"YulIdentifier","src":"22142:4:53"}]},{"nativeSrc":"22204:23:53","nodeType":"YulAssignment","src":"22204:23:53","value":{"arguments":[{"name":"size","nativeSrc":"22216:4:53","nodeType":"YulIdentifier","src":"22216:4:53"},{"kind":"number","nativeSrc":"22222:4:53","nodeType":"YulLiteral","src":"22222:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22212:3:53","nodeType":"YulIdentifier","src":"22212:3:53"},"nativeSrc":"22212:15:53","nodeType":"YulFunctionCall","src":"22212:15:53"},"variableNames":[{"name":"size","nativeSrc":"22204:4:53","nodeType":"YulIdentifier","src":"22204:4:53"}]}]},"name":"array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","nativeSrc":"21898:336:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"21989:6:53","nodeType":"YulTypedName","src":"21989:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"22000:4:53","nodeType":"YulTypedName","src":"22000:4:53","type":""}],"src":"21898:336:53"},{"body":{"nativeSrc":"22410:867:53","nodeType":"YulBlock","src":"22410:867:53","statements":[{"nativeSrc":"22420:115:53","nodeType":"YulAssignment","src":"22420:115:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"22527:6:53","nodeType":"YulIdentifier","src":"22527:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","nativeSrc":"22445:81:53","nodeType":"YulIdentifier","src":"22445:81:53"},"nativeSrc":"22445:89:53","nodeType":"YulFunctionCall","src":"22445:89:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"22429:15:53","nodeType":"YulIdentifier","src":"22429:15:53"},"nativeSrc":"22429:106:53","nodeType":"YulFunctionCall","src":"22429:106:53"},"variableNames":[{"name":"array","nativeSrc":"22420:5:53","nodeType":"YulIdentifier","src":"22420:5:53"}]},{"nativeSrc":"22544:16:53","nodeType":"YulVariableDeclaration","src":"22544:16:53","value":{"name":"array","nativeSrc":"22555:5:53","nodeType":"YulIdentifier","src":"22555:5:53"},"variables":[{"name":"dst","nativeSrc":"22548:3:53","nodeType":"YulTypedName","src":"22548:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22577:5:53","nodeType":"YulIdentifier","src":"22577:5:53"},{"name":"length","nativeSrc":"22584:6:53","nodeType":"YulIdentifier","src":"22584:6:53"}],"functionName":{"name":"mstore","nativeSrc":"22570:6:53","nodeType":"YulIdentifier","src":"22570:6:53"},"nativeSrc":"22570:21:53","nodeType":"YulFunctionCall","src":"22570:21:53"},"nativeSrc":"22570:21:53","nodeType":"YulExpressionStatement","src":"22570:21:53"},{"nativeSrc":"22600:23:53","nodeType":"YulAssignment","src":"22600:23:53","value":{"arguments":[{"name":"array","nativeSrc":"22611:5:53","nodeType":"YulIdentifier","src":"22611:5:53"},{"kind":"number","nativeSrc":"22618:4:53","nodeType":"YulLiteral","src":"22618:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22607:3:53","nodeType":"YulIdentifier","src":"22607:3:53"},"nativeSrc":"22607:16:53","nodeType":"YulFunctionCall","src":"22607:16:53"},"variableNames":[{"name":"dst","nativeSrc":"22600:3:53","nodeType":"YulIdentifier","src":"22600:3:53"}]},{"nativeSrc":"22633:44:53","nodeType":"YulVariableDeclaration","src":"22633:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"22651:6:53","nodeType":"YulIdentifier","src":"22651:6:53"},{"arguments":[{"name":"length","nativeSrc":"22663:6:53","nodeType":"YulIdentifier","src":"22663:6:53"},{"kind":"number","nativeSrc":"22671:4:53","nodeType":"YulLiteral","src":"22671:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"22659:3:53","nodeType":"YulIdentifier","src":"22659:3:53"},"nativeSrc":"22659:17:53","nodeType":"YulFunctionCall","src":"22659:17:53"}],"functionName":{"name":"add","nativeSrc":"22647:3:53","nodeType":"YulIdentifier","src":"22647:3:53"},"nativeSrc":"22647:30:53","nodeType":"YulFunctionCall","src":"22647:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"22637:6:53","nodeType":"YulTypedName","src":"22637:6:53","type":""}]},{"body":{"nativeSrc":"22705:103:53","nodeType":"YulBlock","src":"22705:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"22719:77:53","nodeType":"YulIdentifier","src":"22719:77:53"},"nativeSrc":"22719:79:53","nodeType":"YulFunctionCall","src":"22719:79:53"},"nativeSrc":"22719:79:53","nodeType":"YulExpressionStatement","src":"22719:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"22692:6:53","nodeType":"YulIdentifier","src":"22692:6:53"},{"name":"end","nativeSrc":"22700:3:53","nodeType":"YulIdentifier","src":"22700:3:53"}],"functionName":{"name":"gt","nativeSrc":"22689:2:53","nodeType":"YulIdentifier","src":"22689:2:53"},"nativeSrc":"22689:15:53","nodeType":"YulFunctionCall","src":"22689:15:53"},"nativeSrc":"22686:122:53","nodeType":"YulIf","src":"22686:122:53"},{"body":{"nativeSrc":"22893:378:53","nodeType":"YulBlock","src":"22893:378:53","statements":[{"nativeSrc":"22908:29:53","nodeType":"YulVariableDeclaration","src":"22908:29:53","value":{"arguments":[{"name":"src","nativeSrc":"22933:3:53","nodeType":"YulIdentifier","src":"22933:3:53"}],"functionName":{"name":"mload","nativeSrc":"22927:5:53","nodeType":"YulIdentifier","src":"22927:5:53"},"nativeSrc":"22927:10:53","nodeType":"YulFunctionCall","src":"22927:10:53"},"variables":[{"name":"innerOffset","nativeSrc":"22912:11:53","nodeType":"YulTypedName","src":"22912:11:53","type":""}]},{"body":{"nativeSrc":"22989:83:53","nodeType":"YulBlock","src":"22989:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"22991:77:53","nodeType":"YulIdentifier","src":"22991:77:53"},"nativeSrc":"22991:79:53","nodeType":"YulFunctionCall","src":"22991:79:53"},"nativeSrc":"22991:79:53","nodeType":"YulExpressionStatement","src":"22991:79:53"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"22956:11:53","nodeType":"YulIdentifier","src":"22956:11:53"},{"kind":"number","nativeSrc":"22969:18:53","nodeType":"YulLiteral","src":"22969:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22953:2:53","nodeType":"YulIdentifier","src":"22953:2:53"},"nativeSrc":"22953:35:53","nodeType":"YulFunctionCall","src":"22953:35:53"},"nativeSrc":"22950:122:53","nodeType":"YulIf","src":"22950:122:53"},{"nativeSrc":"23085:42:53","nodeType":"YulVariableDeclaration","src":"23085:42:53","value":{"arguments":[{"name":"offset","nativeSrc":"23107:6:53","nodeType":"YulIdentifier","src":"23107:6:53"},{"name":"innerOffset","nativeSrc":"23115:11:53","nodeType":"YulIdentifier","src":"23115:11:53"}],"functionName":{"name":"add","nativeSrc":"23103:3:53","nodeType":"YulIdentifier","src":"23103:3:53"},"nativeSrc":"23103:24:53","nodeType":"YulFunctionCall","src":"23103:24:53"},"variables":[{"name":"elementPos","nativeSrc":"23089:10:53","nodeType":"YulTypedName","src":"23089:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"23148:3:53","nodeType":"YulIdentifier","src":"23148:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"23210:10:53","nodeType":"YulIdentifier","src":"23210:10:53"},{"name":"end","nativeSrc":"23222:3:53","nodeType":"YulIdentifier","src":"23222:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"23153:56:53","nodeType":"YulIdentifier","src":"23153:56:53"},"nativeSrc":"23153:73:53","nodeType":"YulFunctionCall","src":"23153:73:53"}],"functionName":{"name":"mstore","nativeSrc":"23141:6:53","nodeType":"YulIdentifier","src":"23141:6:53"},"nativeSrc":"23141:86:53","nodeType":"YulFunctionCall","src":"23141:86:53"},"nativeSrc":"23141:86:53","nodeType":"YulExpressionStatement","src":"23141:86:53"},{"nativeSrc":"23240:21:53","nodeType":"YulAssignment","src":"23240:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"23251:3:53","nodeType":"YulIdentifier","src":"23251:3:53"},{"kind":"number","nativeSrc":"23256:4:53","nodeType":"YulLiteral","src":"23256:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23247:3:53","nodeType":"YulIdentifier","src":"23247:3:53"},"nativeSrc":"23247:14:53","nodeType":"YulFunctionCall","src":"23247:14:53"},"variableNames":[{"name":"dst","nativeSrc":"23240:3:53","nodeType":"YulIdentifier","src":"23240:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"22846:3:53","nodeType":"YulIdentifier","src":"22846:3:53"},{"name":"srcEnd","nativeSrc":"22851:6:53","nodeType":"YulIdentifier","src":"22851:6:53"}],"functionName":{"name":"lt","nativeSrc":"22843:2:53","nodeType":"YulIdentifier","src":"22843:2:53"},"nativeSrc":"22843:15:53","nodeType":"YulFunctionCall","src":"22843:15:53"},"nativeSrc":"22817:454:53","nodeType":"YulForLoop","post":{"nativeSrc":"22859:25:53","nodeType":"YulBlock","src":"22859:25:53","statements":[{"nativeSrc":"22861:21:53","nodeType":"YulAssignment","src":"22861:21:53","value":{"arguments":[{"name":"src","nativeSrc":"22872:3:53","nodeType":"YulIdentifier","src":"22872:3:53"},{"kind":"number","nativeSrc":"22877:4:53","nodeType":"YulLiteral","src":"22877:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22868:3:53","nodeType":"YulIdentifier","src":"22868:3:53"},"nativeSrc":"22868:14:53","nodeType":"YulFunctionCall","src":"22868:14:53"},"variableNames":[{"name":"src","nativeSrc":"22861:3:53","nodeType":"YulIdentifier","src":"22861:3:53"}]}]},"pre":{"nativeSrc":"22821:21:53","nodeType":"YulBlock","src":"22821:21:53","statements":[{"nativeSrc":"22823:17:53","nodeType":"YulVariableDeclaration","src":"22823:17:53","value":{"name":"offset","nativeSrc":"22834:6:53","nodeType":"YulIdentifier","src":"22834:6:53"},"variables":[{"name":"src","nativeSrc":"22827:3:53","nodeType":"YulTypedName","src":"22827:3:53","type":""}]}]},"src":"22817:454:53"}]},"name":"abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"22272:1005:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22380:6:53","nodeType":"YulTypedName","src":"22380:6:53","type":""},{"name":"length","nativeSrc":"22388:6:53","nodeType":"YulTypedName","src":"22388:6:53","type":""},{"name":"end","nativeSrc":"22396:3:53","nodeType":"YulTypedName","src":"22396:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22404:5:53","nodeType":"YulTypedName","src":"22404:5:53","type":""}],"src":"22272:1005:53"},{"body":{"nativeSrc":"23428:322:53","nodeType":"YulBlock","src":"23428:322:53","statements":[{"body":{"nativeSrc":"23477:83:53","nodeType":"YulBlock","src":"23477:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"23479:77:53","nodeType":"YulIdentifier","src":"23479:77:53"},"nativeSrc":"23479:79:53","nodeType":"YulFunctionCall","src":"23479:79:53"},"nativeSrc":"23479:79:53","nodeType":"YulExpressionStatement","src":"23479:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"23456:6:53","nodeType":"YulIdentifier","src":"23456:6:53"},{"kind":"number","nativeSrc":"23464:4:53","nodeType":"YulLiteral","src":"23464:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"23452:3:53","nodeType":"YulIdentifier","src":"23452:3:53"},"nativeSrc":"23452:17:53","nodeType":"YulFunctionCall","src":"23452:17:53"},{"name":"end","nativeSrc":"23471:3:53","nodeType":"YulIdentifier","src":"23471:3:53"}],"functionName":{"name":"slt","nativeSrc":"23448:3:53","nodeType":"YulIdentifier","src":"23448:3:53"},"nativeSrc":"23448:27:53","nodeType":"YulFunctionCall","src":"23448:27:53"}],"functionName":{"name":"iszero","nativeSrc":"23441:6:53","nodeType":"YulIdentifier","src":"23441:6:53"},"nativeSrc":"23441:35:53","nodeType":"YulFunctionCall","src":"23441:35:53"},"nativeSrc":"23438:122:53","nodeType":"YulIf","src":"23438:122:53"},{"nativeSrc":"23569:27:53","nodeType":"YulVariableDeclaration","src":"23569:27:53","value":{"arguments":[{"name":"offset","nativeSrc":"23589:6:53","nodeType":"YulIdentifier","src":"23589:6:53"}],"functionName":{"name":"mload","nativeSrc":"23583:5:53","nodeType":"YulIdentifier","src":"23583:5:53"},"nativeSrc":"23583:13:53","nodeType":"YulFunctionCall","src":"23583:13:53"},"variables":[{"name":"length","nativeSrc":"23573:6:53","nodeType":"YulTypedName","src":"23573:6:53","type":""}]},{"nativeSrc":"23605:139:53","nodeType":"YulAssignment","src":"23605:139:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"23717:6:53","nodeType":"YulIdentifier","src":"23717:6:53"},{"kind":"number","nativeSrc":"23725:4:53","nodeType":"YulLiteral","src":"23725:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23713:3:53","nodeType":"YulIdentifier","src":"23713:3:53"},"nativeSrc":"23713:17:53","nodeType":"YulFunctionCall","src":"23713:17:53"},{"name":"length","nativeSrc":"23732:6:53","nodeType":"YulIdentifier","src":"23732:6:53"},{"name":"end","nativeSrc":"23740:3:53","nodeType":"YulIdentifier","src":"23740:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"23614:98:53","nodeType":"YulIdentifier","src":"23614:98:53"},"nativeSrc":"23614:130:53","nodeType":"YulFunctionCall","src":"23614:130:53"},"variableNames":[{"name":"array","nativeSrc":"23605:5:53","nodeType":"YulIdentifier","src":"23605:5:53"}]}]},"name":"abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"23315:435:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"23406:6:53","nodeType":"YulTypedName","src":"23406:6:53","type":""},{"name":"end","nativeSrc":"23414:3:53","nodeType":"YulTypedName","src":"23414:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"23422:5:53","nodeType":"YulTypedName","src":"23422:5:53","type":""}],"src":"23315:435:53"},{"body":{"nativeSrc":"23798:78:53","nodeType":"YulBlock","src":"23798:78:53","statements":[{"body":{"nativeSrc":"23854:16:53","nodeType":"YulBlock","src":"23854:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23863:1:53","nodeType":"YulLiteral","src":"23863:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"23866:1:53","nodeType":"YulLiteral","src":"23866:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23856:6:53","nodeType":"YulIdentifier","src":"23856:6:53"},"nativeSrc":"23856:12:53","nodeType":"YulFunctionCall","src":"23856:12:53"},"nativeSrc":"23856:12:53","nodeType":"YulExpressionStatement","src":"23856:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23821:5:53","nodeType":"YulIdentifier","src":"23821:5:53"},{"arguments":[{"name":"value","nativeSrc":"23845:5:53","nodeType":"YulIdentifier","src":"23845:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"23828:16:53","nodeType":"YulIdentifier","src":"23828:16:53"},"nativeSrc":"23828:23:53","nodeType":"YulFunctionCall","src":"23828:23:53"}],"functionName":{"name":"eq","nativeSrc":"23818:2:53","nodeType":"YulIdentifier","src":"23818:2:53"},"nativeSrc":"23818:34:53","nodeType":"YulFunctionCall","src":"23818:34:53"}],"functionName":{"name":"iszero","nativeSrc":"23811:6:53","nodeType":"YulIdentifier","src":"23811:6:53"},"nativeSrc":"23811:42:53","nodeType":"YulFunctionCall","src":"23811:42:53"},"nativeSrc":"23808:62:53","nodeType":"YulIf","src":"23808:62:53"}]},"name":"validator_revert_t_uint64","nativeSrc":"23756:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23791:5:53","nodeType":"YulTypedName","src":"23791:5:53","type":""}],"src":"23756:120:53"},{"body":{"nativeSrc":"23944:79:53","nodeType":"YulBlock","src":"23944:79:53","statements":[{"nativeSrc":"23954:22:53","nodeType":"YulAssignment","src":"23954:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"23969:6:53","nodeType":"YulIdentifier","src":"23969:6:53"}],"functionName":{"name":"mload","nativeSrc":"23963:5:53","nodeType":"YulIdentifier","src":"23963:5:53"},"nativeSrc":"23963:13:53","nodeType":"YulFunctionCall","src":"23963:13:53"},"variableNames":[{"name":"value","nativeSrc":"23954:5:53","nodeType":"YulIdentifier","src":"23954:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24011:5:53","nodeType":"YulIdentifier","src":"24011:5:53"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"23985:25:53","nodeType":"YulIdentifier","src":"23985:25:53"},"nativeSrc":"23985:32:53","nodeType":"YulFunctionCall","src":"23985:32:53"},"nativeSrc":"23985:32:53","nodeType":"YulExpressionStatement","src":"23985:32:53"}]},"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"23882:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"23922:6:53","nodeType":"YulTypedName","src":"23922:6:53","type":""},{"name":"end","nativeSrc":"23930:3:53","nodeType":"YulTypedName","src":"23930:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"23938:5:53","nodeType":"YulTypedName","src":"23938:5:53","type":""}],"src":"23882:141:53"},{"body":{"nativeSrc":"24092:80:53","nodeType":"YulBlock","src":"24092:80:53","statements":[{"nativeSrc":"24102:22:53","nodeType":"YulAssignment","src":"24102:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"24117:6:53","nodeType":"YulIdentifier","src":"24117:6:53"}],"functionName":{"name":"mload","nativeSrc":"24111:5:53","nodeType":"YulIdentifier","src":"24111:5:53"},"nativeSrc":"24111:13:53","nodeType":"YulFunctionCall","src":"24111:13:53"},"variableNames":[{"name":"value","nativeSrc":"24102:5:53","nodeType":"YulIdentifier","src":"24102:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24160:5:53","nodeType":"YulIdentifier","src":"24160:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"24133:26:53","nodeType":"YulIdentifier","src":"24133:26:53"},"nativeSrc":"24133:33:53","nodeType":"YulFunctionCall","src":"24133:33:53"},"nativeSrc":"24133:33:53","nodeType":"YulExpressionStatement","src":"24133:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"24029:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24070:6:53","nodeType":"YulTypedName","src":"24070:6:53","type":""},{"name":"end","nativeSrc":"24078:3:53","nodeType":"YulTypedName","src":"24078:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24086:5:53","nodeType":"YulTypedName","src":"24086:5:53","type":""}],"src":"24029:143:53"},{"body":{"nativeSrc":"24310:2528:53","nodeType":"YulBlock","src":"24310:2528:53","statements":[{"body":{"nativeSrc":"24356:83:53","nodeType":"YulBlock","src":"24356:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"24358:77:53","nodeType":"YulIdentifier","src":"24358:77:53"},"nativeSrc":"24358:79:53","nodeType":"YulFunctionCall","src":"24358:79:53"},"nativeSrc":"24358:79:53","nodeType":"YulExpressionStatement","src":"24358:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"24331:3:53","nodeType":"YulIdentifier","src":"24331:3:53"},{"name":"headStart","nativeSrc":"24336:9:53","nodeType":"YulIdentifier","src":"24336:9:53"}],"functionName":{"name":"sub","nativeSrc":"24327:3:53","nodeType":"YulIdentifier","src":"24327:3:53"},"nativeSrc":"24327:19:53","nodeType":"YulFunctionCall","src":"24327:19:53"},{"kind":"number","nativeSrc":"24348:6:53","nodeType":"YulLiteral","src":"24348:6:53","type":"","value":"0x0120"}],"functionName":{"name":"slt","nativeSrc":"24323:3:53","nodeType":"YulIdentifier","src":"24323:3:53"},"nativeSrc":"24323:32:53","nodeType":"YulFunctionCall","src":"24323:32:53"},"nativeSrc":"24320:119:53","nodeType":"YulIf","src":"24320:119:53"},{"nativeSrc":"24448:32:53","nodeType":"YulAssignment","src":"24448:32:53","value":{"arguments":[{"kind":"number","nativeSrc":"24473:6:53","nodeType":"YulLiteral","src":"24473:6:53","type":"","value":"0x0120"}],"functionName":{"name":"allocate_memory","nativeSrc":"24457:15:53","nodeType":"YulIdentifier","src":"24457:15:53"},"nativeSrc":"24457:23:53","nodeType":"YulFunctionCall","src":"24457:23:53"},"variableNames":[{"name":"value","nativeSrc":"24448:5:53","nodeType":"YulIdentifier","src":"24448:5:53"}]},{"nativeSrc":"24490:179:53","nodeType":"YulBlock","src":"24490:179:53","statements":[{"nativeSrc":"24527:15:53","nodeType":"YulVariableDeclaration","src":"24527:15:53","value":{"kind":"number","nativeSrc":"24541:1:53","nodeType":"YulLiteral","src":"24541:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"24531:6:53","nodeType":"YulTypedName","src":"24531:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24567:5:53","nodeType":"YulIdentifier","src":"24567:5:53"},{"kind":"number","nativeSrc":"24574:4:53","nodeType":"YulLiteral","src":"24574:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"24563:3:53","nodeType":"YulIdentifier","src":"24563:3:53"},"nativeSrc":"24563:16:53","nodeType":"YulFunctionCall","src":"24563:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24633:9:53","nodeType":"YulIdentifier","src":"24633:9:53"},{"name":"offset","nativeSrc":"24644:6:53","nodeType":"YulIdentifier","src":"24644:6:53"}],"functionName":{"name":"add","nativeSrc":"24629:3:53","nodeType":"YulIdentifier","src":"24629:3:53"},"nativeSrc":"24629:22:53","nodeType":"YulFunctionCall","src":"24629:22:53"},{"name":"end","nativeSrc":"24653:3:53","nodeType":"YulIdentifier","src":"24653:3:53"}],"functionName":{"name":"abi_decode_t_contract$_Budget_$13669_fromMemory","nativeSrc":"24581:47:53","nodeType":"YulIdentifier","src":"24581:47:53"},"nativeSrc":"24581:76:53","nodeType":"YulFunctionCall","src":"24581:76:53"}],"functionName":{"name":"mstore","nativeSrc":"24556:6:53","nodeType":"YulIdentifier","src":"24556:6:53"},"nativeSrc":"24556:102:53","nodeType":"YulFunctionCall","src":"24556:102:53"},"nativeSrc":"24556:102:53","nodeType":"YulExpressionStatement","src":"24556:102:53"}]},{"nativeSrc":"24679:342:53","nodeType":"YulBlock","src":"24679:342:53","statements":[{"nativeSrc":"24716:39:53","nodeType":"YulVariableDeclaration","src":"24716:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24740:9:53","nodeType":"YulIdentifier","src":"24740:9:53"},{"kind":"number","nativeSrc":"24751:2:53","nodeType":"YulLiteral","src":"24751:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24736:3:53","nodeType":"YulIdentifier","src":"24736:3:53"},"nativeSrc":"24736:18:53","nodeType":"YulFunctionCall","src":"24736:18:53"}],"functionName":{"name":"mload","nativeSrc":"24730:5:53","nodeType":"YulIdentifier","src":"24730:5:53"},"nativeSrc":"24730:25:53","nodeType":"YulFunctionCall","src":"24730:25:53"},"variables":[{"name":"offset","nativeSrc":"24720:6:53","nodeType":"YulTypedName","src":"24720:6:53","type":""}]},{"body":{"nativeSrc":"24802:83:53","nodeType":"YulBlock","src":"24802:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"24804:77:53","nodeType":"YulIdentifier","src":"24804:77:53"},"nativeSrc":"24804:79:53","nodeType":"YulFunctionCall","src":"24804:79:53"},"nativeSrc":"24804:79:53","nodeType":"YulExpressionStatement","src":"24804:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24774:6:53","nodeType":"YulIdentifier","src":"24774:6:53"},{"kind":"number","nativeSrc":"24782:18:53","nodeType":"YulLiteral","src":"24782:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24771:2:53","nodeType":"YulIdentifier","src":"24771:2:53"},"nativeSrc":"24771:30:53","nodeType":"YulFunctionCall","src":"24771:30:53"},"nativeSrc":"24768:117:53","nodeType":"YulIf","src":"24768:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24910:5:53","nodeType":"YulIdentifier","src":"24910:5:53"},{"kind":"number","nativeSrc":"24917:4:53","nodeType":"YulLiteral","src":"24917:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24906:3:53","nodeType":"YulIdentifier","src":"24906:3:53"},"nativeSrc":"24906:16:53","nodeType":"YulFunctionCall","src":"24906:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24985:9:53","nodeType":"YulIdentifier","src":"24985:9:53"},{"name":"offset","nativeSrc":"24996:6:53","nodeType":"YulIdentifier","src":"24996:6:53"}],"functionName":{"name":"add","nativeSrc":"24981:3:53","nodeType":"YulIdentifier","src":"24981:3:53"},"nativeSrc":"24981:22:53","nodeType":"YulFunctionCall","src":"24981:22:53"},{"name":"end","nativeSrc":"25005:3:53","nodeType":"YulIdentifier","src":"25005:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"24924:56:53","nodeType":"YulIdentifier","src":"24924:56:53"},"nativeSrc":"24924:85:53","nodeType":"YulFunctionCall","src":"24924:85:53"}],"functionName":{"name":"mstore","nativeSrc":"24899:6:53","nodeType":"YulIdentifier","src":"24899:6:53"},"nativeSrc":"24899:111:53","nodeType":"YulFunctionCall","src":"24899:111:53"},"nativeSrc":"24899:111:53","nodeType":"YulExpressionStatement","src":"24899:111:53"}]},{"nativeSrc":"25031:345:53","nodeType":"YulBlock","src":"25031:345:53","statements":[{"nativeSrc":"25071:39:53","nodeType":"YulVariableDeclaration","src":"25071:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25095:9:53","nodeType":"YulIdentifier","src":"25095:9:53"},{"kind":"number","nativeSrc":"25106:2:53","nodeType":"YulLiteral","src":"25106:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25091:3:53","nodeType":"YulIdentifier","src":"25091:3:53"},"nativeSrc":"25091:18:53","nodeType":"YulFunctionCall","src":"25091:18:53"}],"functionName":{"name":"mload","nativeSrc":"25085:5:53","nodeType":"YulIdentifier","src":"25085:5:53"},"nativeSrc":"25085:25:53","nodeType":"YulFunctionCall","src":"25085:25:53"},"variables":[{"name":"offset","nativeSrc":"25075:6:53","nodeType":"YulTypedName","src":"25075:6:53","type":""}]},{"body":{"nativeSrc":"25157:83:53","nodeType":"YulBlock","src":"25157:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25159:77:53","nodeType":"YulIdentifier","src":"25159:77:53"},"nativeSrc":"25159:79:53","nodeType":"YulFunctionCall","src":"25159:79:53"},"nativeSrc":"25159:79:53","nodeType":"YulExpressionStatement","src":"25159:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25129:6:53","nodeType":"YulIdentifier","src":"25129:6:53"},{"kind":"number","nativeSrc":"25137:18:53","nodeType":"YulLiteral","src":"25137:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25126:2:53","nodeType":"YulIdentifier","src":"25126:2:53"},"nativeSrc":"25126:30:53","nodeType":"YulFunctionCall","src":"25126:30:53"},"nativeSrc":"25123:117:53","nodeType":"YulIf","src":"25123:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25265:5:53","nodeType":"YulIdentifier","src":"25265:5:53"},{"kind":"number","nativeSrc":"25272:4:53","nodeType":"YulLiteral","src":"25272:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25261:3:53","nodeType":"YulIdentifier","src":"25261:3:53"},"nativeSrc":"25261:16:53","nodeType":"YulFunctionCall","src":"25261:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25340:9:53","nodeType":"YulIdentifier","src":"25340:9:53"},{"name":"offset","nativeSrc":"25351:6:53","nodeType":"YulIdentifier","src":"25351:6:53"}],"functionName":{"name":"add","nativeSrc":"25336:3:53","nodeType":"YulIdentifier","src":"25336:3:53"},"nativeSrc":"25336:22:53","nodeType":"YulFunctionCall","src":"25336:22:53"},{"name":"end","nativeSrc":"25360:3:53","nodeType":"YulIdentifier","src":"25360:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"25279:56:53","nodeType":"YulIdentifier","src":"25279:56:53"},"nativeSrc":"25279:85:53","nodeType":"YulFunctionCall","src":"25279:85:53"}],"functionName":{"name":"mstore","nativeSrc":"25254:6:53","nodeType":"YulIdentifier","src":"25254:6:53"},"nativeSrc":"25254:111:53","nodeType":"YulFunctionCall","src":"25254:111:53"},"nativeSrc":"25254:111:53","nodeType":"YulExpressionStatement","src":"25254:111:53"}]},{"nativeSrc":"25386:345:53","nodeType":"YulBlock","src":"25386:345:53","statements":[{"nativeSrc":"25426:39:53","nodeType":"YulVariableDeclaration","src":"25426:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25450:9:53","nodeType":"YulIdentifier","src":"25450:9:53"},{"kind":"number","nativeSrc":"25461:2:53","nodeType":"YulLiteral","src":"25461:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25446:3:53","nodeType":"YulIdentifier","src":"25446:3:53"},"nativeSrc":"25446:18:53","nodeType":"YulFunctionCall","src":"25446:18:53"}],"functionName":{"name":"mload","nativeSrc":"25440:5:53","nodeType":"YulIdentifier","src":"25440:5:53"},"nativeSrc":"25440:25:53","nodeType":"YulFunctionCall","src":"25440:25:53"},"variables":[{"name":"offset","nativeSrc":"25430:6:53","nodeType":"YulTypedName","src":"25430:6:53","type":""}]},{"body":{"nativeSrc":"25512:83:53","nodeType":"YulBlock","src":"25512:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25514:77:53","nodeType":"YulIdentifier","src":"25514:77:53"},"nativeSrc":"25514:79:53","nodeType":"YulFunctionCall","src":"25514:79:53"},"nativeSrc":"25514:79:53","nodeType":"YulExpressionStatement","src":"25514:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25484:6:53","nodeType":"YulIdentifier","src":"25484:6:53"},{"kind":"number","nativeSrc":"25492:18:53","nodeType":"YulLiteral","src":"25492:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25481:2:53","nodeType":"YulIdentifier","src":"25481:2:53"},"nativeSrc":"25481:30:53","nodeType":"YulFunctionCall","src":"25481:30:53"},"nativeSrc":"25478:117:53","nodeType":"YulIf","src":"25478:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25620:5:53","nodeType":"YulIdentifier","src":"25620:5:53"},{"kind":"number","nativeSrc":"25627:4:53","nodeType":"YulLiteral","src":"25627:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25616:3:53","nodeType":"YulIdentifier","src":"25616:3:53"},"nativeSrc":"25616:16:53","nodeType":"YulFunctionCall","src":"25616:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25695:9:53","nodeType":"YulIdentifier","src":"25695:9:53"},{"name":"offset","nativeSrc":"25706:6:53","nodeType":"YulIdentifier","src":"25706:6:53"}],"functionName":{"name":"add","nativeSrc":"25691:3:53","nodeType":"YulIdentifier","src":"25691:3:53"},"nativeSrc":"25691:22:53","nodeType":"YulFunctionCall","src":"25691:22:53"},{"name":"end","nativeSrc":"25715:3:53","nodeType":"YulIdentifier","src":"25715:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"25634:56:53","nodeType":"YulIdentifier","src":"25634:56:53"},"nativeSrc":"25634:85:53","nodeType":"YulFunctionCall","src":"25634:85:53"}],"functionName":{"name":"mstore","nativeSrc":"25609:6:53","nodeType":"YulIdentifier","src":"25609:6:53"},"nativeSrc":"25609:111:53","nodeType":"YulFunctionCall","src":"25609:111:53"},"nativeSrc":"25609:111:53","nodeType":"YulExpressionStatement","src":"25609:111:53"}]},{"nativeSrc":"25741:372:53","nodeType":"YulBlock","src":"25741:372:53","statements":[{"nativeSrc":"25782:40:53","nodeType":"YulVariableDeclaration","src":"25782:40:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25806:9:53","nodeType":"YulIdentifier","src":"25806:9:53"},{"kind":"number","nativeSrc":"25817:3:53","nodeType":"YulLiteral","src":"25817:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25802:3:53","nodeType":"YulIdentifier","src":"25802:3:53"},"nativeSrc":"25802:19:53","nodeType":"YulFunctionCall","src":"25802:19:53"}],"functionName":{"name":"mload","nativeSrc":"25796:5:53","nodeType":"YulIdentifier","src":"25796:5:53"},"nativeSrc":"25796:26:53","nodeType":"YulFunctionCall","src":"25796:26:53"},"variables":[{"name":"offset","nativeSrc":"25786:6:53","nodeType":"YulTypedName","src":"25786:6:53","type":""}]},{"body":{"nativeSrc":"25869:83:53","nodeType":"YulBlock","src":"25869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25871:77:53","nodeType":"YulIdentifier","src":"25871:77:53"},"nativeSrc":"25871:79:53","nodeType":"YulFunctionCall","src":"25871:79:53"},"nativeSrc":"25871:79:53","nodeType":"YulExpressionStatement","src":"25871:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25841:6:53","nodeType":"YulIdentifier","src":"25841:6:53"},{"kind":"number","nativeSrc":"25849:18:53","nodeType":"YulLiteral","src":"25849:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25838:2:53","nodeType":"YulIdentifier","src":"25838:2:53"},"nativeSrc":"25838:30:53","nodeType":"YulFunctionCall","src":"25838:30:53"},"nativeSrc":"25835:117:53","nodeType":"YulIf","src":"25835:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25977:5:53","nodeType":"YulIdentifier","src":"25977:5:53"},{"kind":"number","nativeSrc":"25984:4:53","nodeType":"YulLiteral","src":"25984:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25973:3:53","nodeType":"YulIdentifier","src":"25973:3:53"},"nativeSrc":"25973:16:53","nodeType":"YulFunctionCall","src":"25973:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26077:9:53","nodeType":"YulIdentifier","src":"26077:9:53"},{"name":"offset","nativeSrc":"26088:6:53","nodeType":"YulIdentifier","src":"26088:6:53"}],"functionName":{"name":"add","nativeSrc":"26073:3:53","nodeType":"YulIdentifier","src":"26073:3:53"},"nativeSrc":"26073:22:53","nodeType":"YulFunctionCall","src":"26073:22:53"},{"name":"end","nativeSrc":"26097:3:53","nodeType":"YulIdentifier","src":"26097:3:53"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"25991:81:53","nodeType":"YulIdentifier","src":"25991:81:53"},"nativeSrc":"25991:110:53","nodeType":"YulFunctionCall","src":"25991:110:53"}],"functionName":{"name":"mstore","nativeSrc":"25966:6:53","nodeType":"YulIdentifier","src":"25966:6:53"},"nativeSrc":"25966:136:53","nodeType":"YulFunctionCall","src":"25966:136:53"},"nativeSrc":"25966:136:53","nodeType":"YulExpressionStatement","src":"25966:136:53"}]},{"nativeSrc":"26123:169:53","nodeType":"YulBlock","src":"26123:169:53","statements":[{"nativeSrc":"26165:17:53","nodeType":"YulVariableDeclaration","src":"26165:17:53","value":{"kind":"number","nativeSrc":"26179:3:53","nodeType":"YulLiteral","src":"26179:3:53","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"26169:6:53","nodeType":"YulTypedName","src":"26169:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26207:5:53","nodeType":"YulIdentifier","src":"26207:5:53"},{"kind":"number","nativeSrc":"26214:4:53","nodeType":"YulLiteral","src":"26214:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"26203:3:53","nodeType":"YulIdentifier","src":"26203:3:53"},"nativeSrc":"26203:16:53","nodeType":"YulFunctionCall","src":"26203:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26256:9:53","nodeType":"YulIdentifier","src":"26256:9:53"},{"name":"offset","nativeSrc":"26267:6:53","nodeType":"YulIdentifier","src":"26267:6:53"}],"functionName":{"name":"add","nativeSrc":"26252:3:53","nodeType":"YulIdentifier","src":"26252:3:53"},"nativeSrc":"26252:22:53","nodeType":"YulFunctionCall","src":"26252:22:53"},{"name":"end","nativeSrc":"26276:3:53","nodeType":"YulIdentifier","src":"26276:3:53"}],"functionName":{"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"26221:30:53","nodeType":"YulIdentifier","src":"26221:30:53"},"nativeSrc":"26221:59:53","nodeType":"YulFunctionCall","src":"26221:59:53"}],"functionName":{"name":"mstore","nativeSrc":"26196:6:53","nodeType":"YulIdentifier","src":"26196:6:53"},"nativeSrc":"26196:85:53","nodeType":"YulFunctionCall","src":"26196:85:53"},"nativeSrc":"26196:85:53","nodeType":"YulExpressionStatement","src":"26196:85:53"}]},{"nativeSrc":"26302:169:53","nodeType":"YulBlock","src":"26302:169:53","statements":[{"nativeSrc":"26344:17:53","nodeType":"YulVariableDeclaration","src":"26344:17:53","value":{"kind":"number","nativeSrc":"26358:3:53","nodeType":"YulLiteral","src":"26358:3:53","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"26348:6:53","nodeType":"YulTypedName","src":"26348:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26386:5:53","nodeType":"YulIdentifier","src":"26386:5:53"},{"kind":"number","nativeSrc":"26393:4:53","nodeType":"YulLiteral","src":"26393:4:53","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"26382:3:53","nodeType":"YulIdentifier","src":"26382:3:53"},"nativeSrc":"26382:16:53","nodeType":"YulFunctionCall","src":"26382:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26435:9:53","nodeType":"YulIdentifier","src":"26435:9:53"},{"name":"offset","nativeSrc":"26446:6:53","nodeType":"YulIdentifier","src":"26446:6:53"}],"functionName":{"name":"add","nativeSrc":"26431:3:53","nodeType":"YulIdentifier","src":"26431:3:53"},"nativeSrc":"26431:22:53","nodeType":"YulFunctionCall","src":"26431:22:53"},{"name":"end","nativeSrc":"26455:3:53","nodeType":"YulIdentifier","src":"26455:3:53"}],"functionName":{"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"26400:30:53","nodeType":"YulIdentifier","src":"26400:30:53"},"nativeSrc":"26400:59:53","nodeType":"YulFunctionCall","src":"26400:59:53"}],"functionName":{"name":"mstore","nativeSrc":"26375:6:53","nodeType":"YulIdentifier","src":"26375:6:53"},"nativeSrc":"26375:85:53","nodeType":"YulFunctionCall","src":"26375:85:53"},"nativeSrc":"26375:85:53","nodeType":"YulExpressionStatement","src":"26375:85:53"}]},{"nativeSrc":"26481:174:53","nodeType":"YulBlock","src":"26481:174:53","statements":[{"nativeSrc":"26527:17:53","nodeType":"YulVariableDeclaration","src":"26527:17:53","value":{"kind":"number","nativeSrc":"26541:3:53","nodeType":"YulLiteral","src":"26541:3:53","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"26531:6:53","nodeType":"YulTypedName","src":"26531:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26569:5:53","nodeType":"YulIdentifier","src":"26569:5:53"},{"kind":"number","nativeSrc":"26576:4:53","nodeType":"YulLiteral","src":"26576:4:53","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"26565:3:53","nodeType":"YulIdentifier","src":"26565:3:53"},"nativeSrc":"26565:16:53","nodeType":"YulFunctionCall","src":"26565:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26619:9:53","nodeType":"YulIdentifier","src":"26619:9:53"},{"name":"offset","nativeSrc":"26630:6:53","nodeType":"YulIdentifier","src":"26630:6:53"}],"functionName":{"name":"add","nativeSrc":"26615:3:53","nodeType":"YulIdentifier","src":"26615:3:53"},"nativeSrc":"26615:22:53","nodeType":"YulFunctionCall","src":"26615:22:53"},{"name":"end","nativeSrc":"26639:3:53","nodeType":"YulIdentifier","src":"26639:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"26583:31:53","nodeType":"YulIdentifier","src":"26583:31:53"},"nativeSrc":"26583:60:53","nodeType":"YulFunctionCall","src":"26583:60:53"}],"functionName":{"name":"mstore","nativeSrc":"26558:6:53","nodeType":"YulIdentifier","src":"26558:6:53"},"nativeSrc":"26558:86:53","nodeType":"YulFunctionCall","src":"26558:86:53"},"nativeSrc":"26558:86:53","nodeType":"YulExpressionStatement","src":"26558:86:53"}]},{"nativeSrc":"26665:166:53","nodeType":"YulBlock","src":"26665:166:53","statements":[{"nativeSrc":"26701:17:53","nodeType":"YulVariableDeclaration","src":"26701:17:53","value":{"kind":"number","nativeSrc":"26715:3:53","nodeType":"YulLiteral","src":"26715:3:53","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"26705:6:53","nodeType":"YulTypedName","src":"26705:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26743:5:53","nodeType":"YulIdentifier","src":"26743:5:53"},{"kind":"number","nativeSrc":"26750:6:53","nodeType":"YulLiteral","src":"26750:6:53","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"26739:3:53","nodeType":"YulIdentifier","src":"26739:3:53"},"nativeSrc":"26739:18:53","nodeType":"YulFunctionCall","src":"26739:18:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26795:9:53","nodeType":"YulIdentifier","src":"26795:9:53"},{"name":"offset","nativeSrc":"26806:6:53","nodeType":"YulIdentifier","src":"26806:6:53"}],"functionName":{"name":"add","nativeSrc":"26791:3:53","nodeType":"YulIdentifier","src":"26791:3:53"},"nativeSrc":"26791:22:53","nodeType":"YulFunctionCall","src":"26791:22:53"},{"name":"end","nativeSrc":"26815:3:53","nodeType":"YulIdentifier","src":"26815:3:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"26759:31:53","nodeType":"YulIdentifier","src":"26759:31:53"},"nativeSrc":"26759:60:53","nodeType":"YulFunctionCall","src":"26759:60:53"}],"functionName":{"name":"mstore","nativeSrc":"26732:6:53","nodeType":"YulIdentifier","src":"26732:6:53"},"nativeSrc":"26732:88:53","nodeType":"YulFunctionCall","src":"26732:88:53"},"nativeSrc":"26732:88:53","nodeType":"YulExpressionStatement","src":"26732:88:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory","nativeSrc":"24214:2624:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24285:9:53","nodeType":"YulTypedName","src":"24285:9:53","type":""},{"name":"end","nativeSrc":"24296:3:53","nodeType":"YulTypedName","src":"24296:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24304:5:53","nodeType":"YulTypedName","src":"24304:5:53","type":""}],"src":"24214:2624:53"},{"body":{"nativeSrc":"26951:457:53","nodeType":"YulBlock","src":"26951:457:53","statements":[{"body":{"nativeSrc":"26997:83:53","nodeType":"YulBlock","src":"26997:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"26999:77:53","nodeType":"YulIdentifier","src":"26999:77:53"},"nativeSrc":"26999:79:53","nodeType":"YulFunctionCall","src":"26999:79:53"},"nativeSrc":"26999:79:53","nodeType":"YulExpressionStatement","src":"26999:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26972:7:53","nodeType":"YulIdentifier","src":"26972:7:53"},{"name":"headStart","nativeSrc":"26981:9:53","nodeType":"YulIdentifier","src":"26981:9:53"}],"functionName":{"name":"sub","nativeSrc":"26968:3:53","nodeType":"YulIdentifier","src":"26968:3:53"},"nativeSrc":"26968:23:53","nodeType":"YulFunctionCall","src":"26968:23:53"},{"kind":"number","nativeSrc":"26993:2:53","nodeType":"YulLiteral","src":"26993:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"26964:3:53","nodeType":"YulIdentifier","src":"26964:3:53"},"nativeSrc":"26964:32:53","nodeType":"YulFunctionCall","src":"26964:32:53"},"nativeSrc":"26961:119:53","nodeType":"YulIf","src":"26961:119:53"},{"nativeSrc":"27090:311:53","nodeType":"YulBlock","src":"27090:311:53","statements":[{"nativeSrc":"27105:38:53","nodeType":"YulVariableDeclaration","src":"27105:38:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27129:9:53","nodeType":"YulIdentifier","src":"27129:9:53"},{"kind":"number","nativeSrc":"27140:1:53","nodeType":"YulLiteral","src":"27140:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27125:3:53","nodeType":"YulIdentifier","src":"27125:3:53"},"nativeSrc":"27125:17:53","nodeType":"YulFunctionCall","src":"27125:17:53"}],"functionName":{"name":"mload","nativeSrc":"27119:5:53","nodeType":"YulIdentifier","src":"27119:5:53"},"nativeSrc":"27119:24:53","nodeType":"YulFunctionCall","src":"27119:24:53"},"variables":[{"name":"offset","nativeSrc":"27109:6:53","nodeType":"YulTypedName","src":"27109:6:53","type":""}]},{"body":{"nativeSrc":"27190:83:53","nodeType":"YulBlock","src":"27190:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27192:77:53","nodeType":"YulIdentifier","src":"27192:77:53"},"nativeSrc":"27192:79:53","nodeType":"YulFunctionCall","src":"27192:79:53"},"nativeSrc":"27192:79:53","nodeType":"YulExpressionStatement","src":"27192:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27162:6:53","nodeType":"YulIdentifier","src":"27162:6:53"},{"kind":"number","nativeSrc":"27170:18:53","nodeType":"YulLiteral","src":"27170:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27159:2:53","nodeType":"YulIdentifier","src":"27159:2:53"},"nativeSrc":"27159:30:53","nodeType":"YulFunctionCall","src":"27159:30:53"},"nativeSrc":"27156:117:53","nodeType":"YulIf","src":"27156:117:53"},{"nativeSrc":"27287:104:53","nodeType":"YulAssignment","src":"27287:104:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27363:9:53","nodeType":"YulIdentifier","src":"27363:9:53"},{"name":"offset","nativeSrc":"27374:6:53","nodeType":"YulIdentifier","src":"27374:6:53"}],"functionName":{"name":"add","nativeSrc":"27359:3:53","nodeType":"YulIdentifier","src":"27359:3:53"},"nativeSrc":"27359:22:53","nodeType":"YulFunctionCall","src":"27359:22:53"},{"name":"dataEnd","nativeSrc":"27383:7:53","nodeType":"YulIdentifier","src":"27383:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory","nativeSrc":"27297:61:53","nodeType":"YulIdentifier","src":"27297:61:53"},"nativeSrc":"27297:94:53","nodeType":"YulFunctionCall","src":"27297:94:53"},"variableNames":[{"name":"value0","nativeSrc":"27287:6:53","nodeType":"YulIdentifier","src":"27287:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$11597_memory_ptr_fromMemory","nativeSrc":"26844:564:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26921:9:53","nodeType":"YulTypedName","src":"26921:9:53","type":""},{"name":"dataEnd","nativeSrc":"26932:7:53","nodeType":"YulTypedName","src":"26932:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26944:6:53","nodeType":"YulTypedName","src":"26944:6:53","type":""}],"src":"26844:564:53"},{"body":{"nativeSrc":"27442:152:53","nodeType":"YulBlock","src":"27442:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27459:1:53","nodeType":"YulLiteral","src":"27459:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27462:77:53","nodeType":"YulLiteral","src":"27462:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"27452:6:53","nodeType":"YulIdentifier","src":"27452:6:53"},"nativeSrc":"27452:88:53","nodeType":"YulFunctionCall","src":"27452:88:53"},"nativeSrc":"27452:88:53","nodeType":"YulExpressionStatement","src":"27452:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27556:1:53","nodeType":"YulLiteral","src":"27556:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"27559:4:53","nodeType":"YulLiteral","src":"27559:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"27549:6:53","nodeType":"YulIdentifier","src":"27549:6:53"},"nativeSrc":"27549:15:53","nodeType":"YulFunctionCall","src":"27549:15:53"},"nativeSrc":"27549:15:53","nodeType":"YulExpressionStatement","src":"27549:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27580:1:53","nodeType":"YulLiteral","src":"27580:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27583:4:53","nodeType":"YulLiteral","src":"27583:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"27573:6:53","nodeType":"YulIdentifier","src":"27573:6:53"},"nativeSrc":"27573:15:53","nodeType":"YulFunctionCall","src":"27573:15:53"},"nativeSrc":"27573:15:53","nodeType":"YulExpressionStatement","src":"27573:15:53"}]},"name":"panic_error_0x11","nativeSrc":"27414:180:53","nodeType":"YulFunctionDefinition","src":"27414:180:53"},{"body":{"nativeSrc":"27643:162:53","nodeType":"YulBlock","src":"27643:162:53","statements":[{"nativeSrc":"27653:24:53","nodeType":"YulAssignment","src":"27653:24:53","value":{"arguments":[{"name":"x","nativeSrc":"27675:1:53","nodeType":"YulIdentifier","src":"27675:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"27658:16:53","nodeType":"YulIdentifier","src":"27658:16:53"},"nativeSrc":"27658:19:53","nodeType":"YulFunctionCall","src":"27658:19:53"},"variableNames":[{"name":"x","nativeSrc":"27653:1:53","nodeType":"YulIdentifier","src":"27653:1:53"}]},{"nativeSrc":"27686:24:53","nodeType":"YulAssignment","src":"27686:24:53","value":{"arguments":[{"name":"y","nativeSrc":"27708:1:53","nodeType":"YulIdentifier","src":"27708:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"27691:16:53","nodeType":"YulIdentifier","src":"27691:16:53"},"nativeSrc":"27691:19:53","nodeType":"YulFunctionCall","src":"27691:19:53"},"variableNames":[{"name":"y","nativeSrc":"27686:1:53","nodeType":"YulIdentifier","src":"27686:1:53"}]},{"nativeSrc":"27719:16:53","nodeType":"YulAssignment","src":"27719:16:53","value":{"arguments":[{"name":"x","nativeSrc":"27730:1:53","nodeType":"YulIdentifier","src":"27730:1:53"},{"name":"y","nativeSrc":"27733:1:53","nodeType":"YulIdentifier","src":"27733:1:53"}],"functionName":{"name":"add","nativeSrc":"27726:3:53","nodeType":"YulIdentifier","src":"27726:3:53"},"nativeSrc":"27726:9:53","nodeType":"YulFunctionCall","src":"27726:9:53"},"variableNames":[{"name":"sum","nativeSrc":"27719:3:53","nodeType":"YulIdentifier","src":"27719:3:53"}]},{"body":{"nativeSrc":"27776:22:53","nodeType":"YulBlock","src":"27776:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27778:16:53","nodeType":"YulIdentifier","src":"27778:16:53"},"nativeSrc":"27778:18:53","nodeType":"YulFunctionCall","src":"27778:18:53"},"nativeSrc":"27778:18:53","nodeType":"YulExpressionStatement","src":"27778:18:53"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"27751:3:53","nodeType":"YulIdentifier","src":"27751:3:53"},{"kind":"number","nativeSrc":"27756:18:53","nodeType":"YulLiteral","src":"27756:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27748:2:53","nodeType":"YulIdentifier","src":"27748:2:53"},"nativeSrc":"27748:27:53","nodeType":"YulFunctionCall","src":"27748:27:53"},"nativeSrc":"27745:53:53","nodeType":"YulIf","src":"27745:53:53"}]},"name":"checked_add_t_uint64","nativeSrc":"27600:205:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27630:1:53","nodeType":"YulTypedName","src":"27630:1:53","type":""},{"name":"y","nativeSrc":"27633:1:53","nodeType":"YulTypedName","src":"27633:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"27639:3:53","nodeType":"YulTypedName","src":"27639:3:53","type":""}],"src":"27600:205:53"},{"body":{"nativeSrc":"27855:105:53","nodeType":"YulBlock","src":"27855:105:53","statements":[{"nativeSrc":"27865:89:53","nodeType":"YulAssignment","src":"27865:89:53","value":{"arguments":[{"name":"value","nativeSrc":"27880:5:53","nodeType":"YulIdentifier","src":"27880:5:53"},{"kind":"number","nativeSrc":"27887:66:53","nodeType":"YulLiteral","src":"27887:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"27876:3:53","nodeType":"YulIdentifier","src":"27876:3:53"},"nativeSrc":"27876:78:53","nodeType":"YulFunctionCall","src":"27876:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"27865:7:53","nodeType":"YulIdentifier","src":"27865:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"27811:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27837:5:53","nodeType":"YulTypedName","src":"27837:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"27847:7:53","nodeType":"YulTypedName","src":"27847:7:53","type":""}],"src":"27811:149:53"},{"body":{"nativeSrc":"28029:52:53","nodeType":"YulBlock","src":"28029:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"28046:3:53","nodeType":"YulIdentifier","src":"28046:3:53"},{"arguments":[{"name":"value","nativeSrc":"28068:5:53","nodeType":"YulIdentifier","src":"28068:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"28051:16:53","nodeType":"YulIdentifier","src":"28051:16:53"},"nativeSrc":"28051:23:53","nodeType":"YulFunctionCall","src":"28051:23:53"}],"functionName":{"name":"mstore","nativeSrc":"28039:6:53","nodeType":"YulIdentifier","src":"28039:6:53"},"nativeSrc":"28039:36:53","nodeType":"YulFunctionCall","src":"28039:36:53"},"nativeSrc":"28039:36:53","nodeType":"YulExpressionStatement","src":"28039:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"27966:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28017:5:53","nodeType":"YulTypedName","src":"28017:5:53","type":""},{"name":"pos","nativeSrc":"28024:3:53","nodeType":"YulTypedName","src":"28024:3:53","type":""}],"src":"27966:115:53"},{"body":{"nativeSrc":"28183:122:53","nodeType":"YulBlock","src":"28183:122:53","statements":[{"nativeSrc":"28193:26:53","nodeType":"YulAssignment","src":"28193:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"28205:9:53","nodeType":"YulIdentifier","src":"28205:9:53"},{"kind":"number","nativeSrc":"28216:2:53","nodeType":"YulLiteral","src":"28216:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28201:3:53","nodeType":"YulIdentifier","src":"28201:3:53"},"nativeSrc":"28201:18:53","nodeType":"YulFunctionCall","src":"28201:18:53"},"variableNames":[{"name":"tail","nativeSrc":"28193:4:53","nodeType":"YulIdentifier","src":"28193:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28271:6:53","nodeType":"YulIdentifier","src":"28271:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28284:9:53","nodeType":"YulIdentifier","src":"28284:9:53"},{"kind":"number","nativeSrc":"28295:1:53","nodeType":"YulLiteral","src":"28295:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28280:3:53","nodeType":"YulIdentifier","src":"28280:3:53"},"nativeSrc":"28280:17:53","nodeType":"YulFunctionCall","src":"28280:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"28229:41:53","nodeType":"YulIdentifier","src":"28229:41:53"},"nativeSrc":"28229:69:53","nodeType":"YulFunctionCall","src":"28229:69:53"},"nativeSrc":"28229:69:53","nodeType":"YulExpressionStatement","src":"28229:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"28087:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28155:9:53","nodeType":"YulTypedName","src":"28155:9:53","type":""},{"name":"value0","nativeSrc":"28167:6:53","nodeType":"YulTypedName","src":"28167:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28178:4:53","nodeType":"YulTypedName","src":"28178:4:53","type":""}],"src":"28087:218:53"},{"body":{"nativeSrc":"28359:362:53","nodeType":"YulBlock","src":"28359:362:53","statements":[{"nativeSrc":"28369:25:53","nodeType":"YulAssignment","src":"28369:25:53","value":{"arguments":[{"name":"x","nativeSrc":"28392:1:53","nodeType":"YulIdentifier","src":"28392:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28374:17:53","nodeType":"YulIdentifier","src":"28374:17:53"},"nativeSrc":"28374:20:53","nodeType":"YulFunctionCall","src":"28374:20:53"},"variableNames":[{"name":"x","nativeSrc":"28369:1:53","nodeType":"YulIdentifier","src":"28369:1:53"}]},{"nativeSrc":"28403:25:53","nodeType":"YulAssignment","src":"28403:25:53","value":{"arguments":[{"name":"y","nativeSrc":"28426:1:53","nodeType":"YulIdentifier","src":"28426:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28408:17:53","nodeType":"YulIdentifier","src":"28408:17:53"},"nativeSrc":"28408:20:53","nodeType":"YulFunctionCall","src":"28408:20:53"},"variableNames":[{"name":"y","nativeSrc":"28403:1:53","nodeType":"YulIdentifier","src":"28403:1:53"}]},{"nativeSrc":"28437:28:53","nodeType":"YulVariableDeclaration","src":"28437:28:53","value":{"arguments":[{"name":"x","nativeSrc":"28460:1:53","nodeType":"YulIdentifier","src":"28460:1:53"},{"name":"y","nativeSrc":"28463:1:53","nodeType":"YulIdentifier","src":"28463:1:53"}],"functionName":{"name":"mul","nativeSrc":"28456:3:53","nodeType":"YulIdentifier","src":"28456:3:53"},"nativeSrc":"28456:9:53","nodeType":"YulFunctionCall","src":"28456:9:53"},"variables":[{"name":"product_raw","nativeSrc":"28441:11:53","nodeType":"YulTypedName","src":"28441:11:53","type":""}]},{"nativeSrc":"28474:41:53","nodeType":"YulAssignment","src":"28474:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"28503:11:53","nodeType":"YulIdentifier","src":"28503:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28485:17:53","nodeType":"YulIdentifier","src":"28485:17:53"},"nativeSrc":"28485:30:53","nodeType":"YulFunctionCall","src":"28485:30:53"},"variableNames":[{"name":"product","nativeSrc":"28474:7:53","nodeType":"YulIdentifier","src":"28474:7:53"}]},{"body":{"nativeSrc":"28692:22:53","nodeType":"YulBlock","src":"28692:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28694:16:53","nodeType":"YulIdentifier","src":"28694:16:53"},"nativeSrc":"28694:18:53","nodeType":"YulFunctionCall","src":"28694:18:53"},"nativeSrc":"28694:18:53","nodeType":"YulExpressionStatement","src":"28694:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28625:1:53","nodeType":"YulIdentifier","src":"28625:1:53"}],"functionName":{"name":"iszero","nativeSrc":"28618:6:53","nodeType":"YulIdentifier","src":"28618:6:53"},"nativeSrc":"28618:9:53","nodeType":"YulFunctionCall","src":"28618:9:53"},{"arguments":[{"name":"y","nativeSrc":"28648:1:53","nodeType":"YulIdentifier","src":"28648:1:53"},{"arguments":[{"name":"product","nativeSrc":"28655:7:53","nodeType":"YulIdentifier","src":"28655:7:53"},{"name":"x","nativeSrc":"28664:1:53","nodeType":"YulIdentifier","src":"28664:1:53"}],"functionName":{"name":"div","nativeSrc":"28651:3:53","nodeType":"YulIdentifier","src":"28651:3:53"},"nativeSrc":"28651:15:53","nodeType":"YulFunctionCall","src":"28651:15:53"}],"functionName":{"name":"eq","nativeSrc":"28645:2:53","nodeType":"YulIdentifier","src":"28645:2:53"},"nativeSrc":"28645:22:53","nodeType":"YulFunctionCall","src":"28645:22:53"}],"functionName":{"name":"or","nativeSrc":"28598:2:53","nodeType":"YulIdentifier","src":"28598:2:53"},"nativeSrc":"28598:83:53","nodeType":"YulFunctionCall","src":"28598:83:53"}],"functionName":{"name":"iszero","nativeSrc":"28578:6:53","nodeType":"YulIdentifier","src":"28578:6:53"},"nativeSrc":"28578:113:53","nodeType":"YulFunctionCall","src":"28578:113:53"},"nativeSrc":"28575:139:53","nodeType":"YulIf","src":"28575:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"28311:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28342:1:53","nodeType":"YulTypedName","src":"28342:1:53","type":""},{"name":"y","nativeSrc":"28345:1:53","nodeType":"YulTypedName","src":"28345:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"28351:7:53","nodeType":"YulTypedName","src":"28351:7:53","type":""}],"src":"28311:410:53"},{"body":{"nativeSrc":"28755:152:53","nodeType":"YulBlock","src":"28755:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28772:1:53","nodeType":"YulLiteral","src":"28772:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28775:77:53","nodeType":"YulLiteral","src":"28775:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"28765:6:53","nodeType":"YulIdentifier","src":"28765:6:53"},"nativeSrc":"28765:88:53","nodeType":"YulFunctionCall","src":"28765:88:53"},"nativeSrc":"28765:88:53","nodeType":"YulExpressionStatement","src":"28765:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28869:1:53","nodeType":"YulLiteral","src":"28869:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"28872:4:53","nodeType":"YulLiteral","src":"28872:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"28862:6:53","nodeType":"YulIdentifier","src":"28862:6:53"},"nativeSrc":"28862:15:53","nodeType":"YulFunctionCall","src":"28862:15:53"},"nativeSrc":"28862:15:53","nodeType":"YulExpressionStatement","src":"28862:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28893:1:53","nodeType":"YulLiteral","src":"28893:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28896:4:53","nodeType":"YulLiteral","src":"28896:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28886:6:53","nodeType":"YulIdentifier","src":"28886:6:53"},"nativeSrc":"28886:15:53","nodeType":"YulFunctionCall","src":"28886:15:53"},"nativeSrc":"28886:15:53","nodeType":"YulExpressionStatement","src":"28886:15:53"}]},"name":"panic_error_0x12","nativeSrc":"28727:180:53","nodeType":"YulFunctionDefinition","src":"28727:180:53"},{"body":{"nativeSrc":"28955:143:53","nodeType":"YulBlock","src":"28955:143:53","statements":[{"nativeSrc":"28965:25:53","nodeType":"YulAssignment","src":"28965:25:53","value":{"arguments":[{"name":"x","nativeSrc":"28988:1:53","nodeType":"YulIdentifier","src":"28988:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28970:17:53","nodeType":"YulIdentifier","src":"28970:17:53"},"nativeSrc":"28970:20:53","nodeType":"YulFunctionCall","src":"28970:20:53"},"variableNames":[{"name":"x","nativeSrc":"28965:1:53","nodeType":"YulIdentifier","src":"28965:1:53"}]},{"nativeSrc":"28999:25:53","nodeType":"YulAssignment","src":"28999:25:53","value":{"arguments":[{"name":"y","nativeSrc":"29022:1:53","nodeType":"YulIdentifier","src":"29022:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29004:17:53","nodeType":"YulIdentifier","src":"29004:17:53"},"nativeSrc":"29004:20:53","nodeType":"YulFunctionCall","src":"29004:20:53"},"variableNames":[{"name":"y","nativeSrc":"28999:1:53","nodeType":"YulIdentifier","src":"28999:1:53"}]},{"body":{"nativeSrc":"29046:22:53","nodeType":"YulBlock","src":"29046:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"29048:16:53","nodeType":"YulIdentifier","src":"29048:16:53"},"nativeSrc":"29048:18:53","nodeType":"YulFunctionCall","src":"29048:18:53"},"nativeSrc":"29048:18:53","nodeType":"YulExpressionStatement","src":"29048:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"29043:1:53","nodeType":"YulIdentifier","src":"29043:1:53"}],"functionName":{"name":"iszero","nativeSrc":"29036:6:53","nodeType":"YulIdentifier","src":"29036:6:53"},"nativeSrc":"29036:9:53","nodeType":"YulFunctionCall","src":"29036:9:53"},"nativeSrc":"29033:35:53","nodeType":"YulIf","src":"29033:35:53"},{"nativeSrc":"29078:14:53","nodeType":"YulAssignment","src":"29078:14:53","value":{"arguments":[{"name":"x","nativeSrc":"29087:1:53","nodeType":"YulIdentifier","src":"29087:1:53"},{"name":"y","nativeSrc":"29090:1:53","nodeType":"YulIdentifier","src":"29090:1:53"}],"functionName":{"name":"div","nativeSrc":"29083:3:53","nodeType":"YulIdentifier","src":"29083:3:53"},"nativeSrc":"29083:9:53","nodeType":"YulFunctionCall","src":"29083:9:53"},"variableNames":[{"name":"r","nativeSrc":"29078:1:53","nodeType":"YulIdentifier","src":"29078:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"28913:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28944:1:53","nodeType":"YulTypedName","src":"28944:1:53","type":""},{"name":"y","nativeSrc":"28947:1:53","nodeType":"YulTypedName","src":"28947:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"28953:1:53","nodeType":"YulTypedName","src":"28953:1:53","type":""}],"src":"28913:185:53"},{"body":{"nativeSrc":"29149:149:53","nodeType":"YulBlock","src":"29149:149:53","statements":[{"nativeSrc":"29159:25:53","nodeType":"YulAssignment","src":"29159:25:53","value":{"arguments":[{"name":"x","nativeSrc":"29182:1:53","nodeType":"YulIdentifier","src":"29182:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29164:17:53","nodeType":"YulIdentifier","src":"29164:17:53"},"nativeSrc":"29164:20:53","nodeType":"YulFunctionCall","src":"29164:20:53"},"variableNames":[{"name":"x","nativeSrc":"29159:1:53","nodeType":"YulIdentifier","src":"29159:1:53"}]},{"nativeSrc":"29193:25:53","nodeType":"YulAssignment","src":"29193:25:53","value":{"arguments":[{"name":"y","nativeSrc":"29216:1:53","nodeType":"YulIdentifier","src":"29216:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29198:17:53","nodeType":"YulIdentifier","src":"29198:17:53"},"nativeSrc":"29198:20:53","nodeType":"YulFunctionCall","src":"29198:20:53"},"variableNames":[{"name":"y","nativeSrc":"29193:1:53","nodeType":"YulIdentifier","src":"29193:1:53"}]},{"nativeSrc":"29227:17:53","nodeType":"YulAssignment","src":"29227:17:53","value":{"arguments":[{"name":"x","nativeSrc":"29239:1:53","nodeType":"YulIdentifier","src":"29239:1:53"},{"name":"y","nativeSrc":"29242:1:53","nodeType":"YulIdentifier","src":"29242:1:53"}],"functionName":{"name":"sub","nativeSrc":"29235:3:53","nodeType":"YulIdentifier","src":"29235:3:53"},"nativeSrc":"29235:9:53","nodeType":"YulFunctionCall","src":"29235:9:53"},"variableNames":[{"name":"diff","nativeSrc":"29227:4:53","nodeType":"YulIdentifier","src":"29227:4:53"}]},{"body":{"nativeSrc":"29269:22:53","nodeType":"YulBlock","src":"29269:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29271:16:53","nodeType":"YulIdentifier","src":"29271:16:53"},"nativeSrc":"29271:18:53","nodeType":"YulFunctionCall","src":"29271:18:53"},"nativeSrc":"29271:18:53","nodeType":"YulExpressionStatement","src":"29271:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"29260:4:53","nodeType":"YulIdentifier","src":"29260:4:53"},{"name":"x","nativeSrc":"29266:1:53","nodeType":"YulIdentifier","src":"29266:1:53"}],"functionName":{"name":"gt","nativeSrc":"29257:2:53","nodeType":"YulIdentifier","src":"29257:2:53"},"nativeSrc":"29257:11:53","nodeType":"YulFunctionCall","src":"29257:11:53"},"nativeSrc":"29254:37:53","nodeType":"YulIf","src":"29254:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"29104:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29135:1:53","nodeType":"YulTypedName","src":"29135:1:53","type":""},{"name":"y","nativeSrc":"29138:1:53","nodeType":"YulTypedName","src":"29138:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"29144:4:53","nodeType":"YulTypedName","src":"29144:4:53","type":""}],"src":"29104:194:53"},{"body":{"nativeSrc":"29428:204:53","nodeType":"YulBlock","src":"29428:204:53","statements":[{"nativeSrc":"29438:26:53","nodeType":"YulAssignment","src":"29438:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"29450:9:53","nodeType":"YulIdentifier","src":"29450:9:53"},{"kind":"number","nativeSrc":"29461:2:53","nodeType":"YulLiteral","src":"29461:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29446:3:53","nodeType":"YulIdentifier","src":"29446:3:53"},"nativeSrc":"29446:18:53","nodeType":"YulFunctionCall","src":"29446:18:53"},"variableNames":[{"name":"tail","nativeSrc":"29438:4:53","nodeType":"YulIdentifier","src":"29438:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29516:6:53","nodeType":"YulIdentifier","src":"29516:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29529:9:53","nodeType":"YulIdentifier","src":"29529:9:53"},{"kind":"number","nativeSrc":"29540:1:53","nodeType":"YulLiteral","src":"29540:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29525:3:53","nodeType":"YulIdentifier","src":"29525:3:53"},"nativeSrc":"29525:17:53","nodeType":"YulFunctionCall","src":"29525:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"29474:41:53","nodeType":"YulIdentifier","src":"29474:41:53"},"nativeSrc":"29474:69:53","nodeType":"YulFunctionCall","src":"29474:69:53"},"nativeSrc":"29474:69:53","nodeType":"YulExpressionStatement","src":"29474:69:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29597:6:53","nodeType":"YulIdentifier","src":"29597:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29610:9:53","nodeType":"YulIdentifier","src":"29610:9:53"},{"kind":"number","nativeSrc":"29621:2:53","nodeType":"YulLiteral","src":"29621:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29606:3:53","nodeType":"YulIdentifier","src":"29606:3:53"},"nativeSrc":"29606:18:53","nodeType":"YulFunctionCall","src":"29606:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29553:43:53","nodeType":"YulIdentifier","src":"29553:43:53"},"nativeSrc":"29553:72:53","nodeType":"YulFunctionCall","src":"29553:72:53"},"nativeSrc":"29553:72:53","nodeType":"YulExpressionStatement","src":"29553:72:53"}]},"name":"abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed","nativeSrc":"29304:328:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29392:9:53","nodeType":"YulTypedName","src":"29392:9:53","type":""},{"name":"value1","nativeSrc":"29404:6:53","nodeType":"YulTypedName","src":"29404:6:53","type":""},{"name":"value0","nativeSrc":"29412:6:53","nodeType":"YulTypedName","src":"29412:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29423:4:53","nodeType":"YulTypedName","src":"29423:4:53","type":""}],"src":"29304:328:53"},{"body":{"nativeSrc":"29724:436:53","nodeType":"YulBlock","src":"29724:436:53","statements":[{"body":{"nativeSrc":"29770:83:53","nodeType":"YulBlock","src":"29770:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"29772:77:53","nodeType":"YulIdentifier","src":"29772:77:53"},"nativeSrc":"29772:79:53","nodeType":"YulFunctionCall","src":"29772:79:53"},"nativeSrc":"29772:79:53","nodeType":"YulExpressionStatement","src":"29772:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29745:7:53","nodeType":"YulIdentifier","src":"29745:7:53"},{"name":"headStart","nativeSrc":"29754:9:53","nodeType":"YulIdentifier","src":"29754:9:53"}],"functionName":{"name":"sub","nativeSrc":"29741:3:53","nodeType":"YulIdentifier","src":"29741:3:53"},"nativeSrc":"29741:23:53","nodeType":"YulFunctionCall","src":"29741:23:53"},{"kind":"number","nativeSrc":"29766:2:53","nodeType":"YulLiteral","src":"29766:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29737:3:53","nodeType":"YulIdentifier","src":"29737:3:53"},"nativeSrc":"29737:32:53","nodeType":"YulFunctionCall","src":"29737:32:53"},"nativeSrc":"29734:119:53","nodeType":"YulIf","src":"29734:119:53"},{"nativeSrc":"29863:290:53","nodeType":"YulBlock","src":"29863:290:53","statements":[{"nativeSrc":"29878:38:53","nodeType":"YulVariableDeclaration","src":"29878:38:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29902:9:53","nodeType":"YulIdentifier","src":"29902:9:53"},{"kind":"number","nativeSrc":"29913:1:53","nodeType":"YulLiteral","src":"29913:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29898:3:53","nodeType":"YulIdentifier","src":"29898:3:53"},"nativeSrc":"29898:17:53","nodeType":"YulFunctionCall","src":"29898:17:53"}],"functionName":{"name":"mload","nativeSrc":"29892:5:53","nodeType":"YulIdentifier","src":"29892:5:53"},"nativeSrc":"29892:24:53","nodeType":"YulFunctionCall","src":"29892:24:53"},"variables":[{"name":"offset","nativeSrc":"29882:6:53","nodeType":"YulTypedName","src":"29882:6:53","type":""}]},{"body":{"nativeSrc":"29963:83:53","nodeType":"YulBlock","src":"29963:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"29965:77:53","nodeType":"YulIdentifier","src":"29965:77:53"},"nativeSrc":"29965:79:53","nodeType":"YulFunctionCall","src":"29965:79:53"},"nativeSrc":"29965:79:53","nodeType":"YulExpressionStatement","src":"29965:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"29935:6:53","nodeType":"YulIdentifier","src":"29935:6:53"},{"kind":"number","nativeSrc":"29943:18:53","nodeType":"YulLiteral","src":"29943:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"29932:2:53","nodeType":"YulIdentifier","src":"29932:2:53"},"nativeSrc":"29932:30:53","nodeType":"YulFunctionCall","src":"29932:30:53"},"nativeSrc":"29929:117:53","nodeType":"YulIf","src":"29929:117:53"},{"nativeSrc":"30060:83:53","nodeType":"YulAssignment","src":"30060:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30115:9:53","nodeType":"YulIdentifier","src":"30115:9:53"},{"name":"offset","nativeSrc":"30126:6:53","nodeType":"YulIdentifier","src":"30126:6:53"}],"functionName":{"name":"add","nativeSrc":"30111:3:53","nodeType":"YulIdentifier","src":"30111:3:53"},"nativeSrc":"30111:22:53","nodeType":"YulFunctionCall","src":"30111:22:53"},{"name":"dataEnd","nativeSrc":"30135:7:53","nodeType":"YulIdentifier","src":"30135:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"30070:40:53","nodeType":"YulIdentifier","src":"30070:40:53"},"nativeSrc":"30070:73:53","nodeType":"YulFunctionCall","src":"30070:73:53"},"variableNames":[{"name":"value0","nativeSrc":"30060:6:53","nodeType":"YulIdentifier","src":"30060:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"29638:522:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29694:9:53","nodeType":"YulTypedName","src":"29694:9:53","type":""},{"name":"dataEnd","nativeSrc":"29705:7:53","nodeType":"YulTypedName","src":"29705:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29717:6:53","nodeType":"YulTypedName","src":"29717:6:53","type":""}],"src":"29638:522:53"},{"body":{"nativeSrc":"30194:152:53","nodeType":"YulBlock","src":"30194:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30211:1:53","nodeType":"YulLiteral","src":"30211:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"30214:77:53","nodeType":"YulLiteral","src":"30214:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"30204:6:53","nodeType":"YulIdentifier","src":"30204:6:53"},"nativeSrc":"30204:88:53","nodeType":"YulFunctionCall","src":"30204:88:53"},"nativeSrc":"30204:88:53","nodeType":"YulExpressionStatement","src":"30204:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30308:1:53","nodeType":"YulLiteral","src":"30308:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"30311:4:53","nodeType":"YulLiteral","src":"30311:4:53","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"30301:6:53","nodeType":"YulIdentifier","src":"30301:6:53"},"nativeSrc":"30301:15:53","nodeType":"YulFunctionCall","src":"30301:15:53"},"nativeSrc":"30301:15:53","nodeType":"YulExpressionStatement","src":"30301:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30332:1:53","nodeType":"YulLiteral","src":"30332:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"30335:4:53","nodeType":"YulLiteral","src":"30335:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"30325:6:53","nodeType":"YulIdentifier","src":"30325:6:53"},"nativeSrc":"30325:15:53","nodeType":"YulFunctionCall","src":"30325:15:53"},"nativeSrc":"30325:15:53","nodeType":"YulExpressionStatement","src":"30325:15:53"}]},"name":"panic_error_0x01","nativeSrc":"30166:180:53","nodeType":"YulFunctionDefinition","src":"30166:180:53"}]},"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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Action_$12758_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Action_$12758_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Action_$12758_to_t_address(value))\n }\n\n function convert_t_contract$_Validator_$18282_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$18282_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$18282_to_t_address(value))\n }\n\n function convert_t_contract$_AllowList_$13154_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_AllowList_$13154_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_AllowList_$13154_to_t_address(value))\n }\n\n function convert_t_uint160_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Budget_$13669_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_address_payable(value)\n }\n\n function abi_encode_t_contract$_Budget_$13669_to_t_address_payable(value, pos) {\n mstore(pos, convert_t_contract$_Budget_$13669_to_t_address_payable(value))\n }\n\n function array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function convert_t_contract$_Incentive_$17260_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Incentive_$17260_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Incentive_$17260_to_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_contract$_Incentive_$17260_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // contract Incentive[] -> address[]\n function abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr(value, pos) -> end {\n let length := array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr(pos, length)\n let baseRef := array_dataslot_t_array$_t_contract$_Incentive_$17260_$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_contract$_Incentive_$17260_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // struct BoostLib.Boost -> struct BoostLib.Boost\n function abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x0120)\n\n {\n // action\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_contract$_Action_$12758_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // validator\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_contract$_Validator_$18282_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // allowList\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_contract$_AllowList_$13154_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // budget\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_contract$_Budget_$13669_to_t_address_payable(memberValue0, add(pos, 0x60))\n }\n\n {\n // incentives\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // protocolFee\n\n let memberValue0 := mload(add(value, 0xa0))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0xa0))\n }\n\n {\n // referralFee\n\n let memberValue0 := mload(add(value, 0xc0))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0xc0))\n }\n\n {\n // maxParticipants\n\n let memberValue0 := mload(add(value, 0xe0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xe0))\n }\n\n {\n // owner\n\n let memberValue0 := mload(add(value, 0x0100))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x0100))\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Boost_$17616_memory_ptr__to_t_struct$_Boost_$17616_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_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 convert_t_contract$_BoostRegistry_$12680_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_BoostRegistry_$12680_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_BoostRegistry_$12680__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { 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 := 64\n\n value2 := abi_decode_t_address(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, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_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 round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value0, value1, tail)\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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 mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_Budget_$13669(value) -> cleaned {\n cleaned := cleanup_t_address_payable(value)\n }\n\n function validator_revert_t_contract$_Budget_$13669(value) {\n if iszero(eq(value, cleanup_t_contract$_Budget_$13669(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_Budget_$13669_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_Budget_$13669(value)\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_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 abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct BoostLib.Target\n function abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // isBase\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // instance\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // parameters\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // struct BoostLib.Target[]\n function abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let innerOffset := mload(src)\n if gt(innerOffset, 0xffffffffffffffff) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let elementPos := add(offset, innerOffset)\n\n mstore(dst, abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // struct BoostLib.Target[]\n function abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct BoostCore.InitPayload\n function abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0120) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0120)\n\n {\n // budget\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_Budget_$13669_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // action\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // validator\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // allowList\n\n let offset := mload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // incentives\n\n let offset := mload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // protocolFee\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint64_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // referralFee\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint64_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maxParticipants\n\n let offset := 224\n\n mstore(add(value, 0xe0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // owner\n\n let offset := 256\n\n mstore(add(value, 0x0100), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$11597_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_struct$_InitPayload_$11597_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\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 checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes4_to_t_bytes4_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_decode_tuple_t_bytes_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_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c806384ae2bc61161009f578063d73792a911610063578063d73792a914610303578063e21ff7311461032d578063f04e283e14610369578063f2fde38b14610385578063fee81cf4146103a157610113565b806384ae2bc61461023f5780638da5cb5b146102695780638fe4f5231461029357806399d32fc4146102af578063b0e21e8a146102d957610113565b806346877b1a116100e657806346877b1a146101af57806354d1f13d146101d75780635edb9eb0146101e1578063715018a61461020b5780637b1039991461021557610113565b806313c8e2de1461011757806325692962146101535780632e75ab501461015d57806339a51be514610185575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611f1d565b6103dd565b60405161014a919061220e565b60405180910390f35b61015b6106b7565b005b348015610168575f80fd5b50610183600480360381019061017e9190611f1d565b610708565b005b348015610190575f80fd5b5061019961071a565b6040516101a6919061223d565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d09190612280565b61073f565b005b6101df61078a565b005b3480156101ec575f80fd5b506101f56107c3565b60405161020291906122ba565b60405180910390f35b6102136107ce565b005b348015610220575f80fd5b506102296107e1565b60405161023691906122f3565b60405180910390f35b34801561024a575f80fd5b50610253610806565b604051610260919061231b565b60405180910390f35b348015610274575f80fd5b5061027d610820565b60405161028a919061223d565b60405180910390f35b6102ad60048036038101906102a89190612395565b610848565b005b3480156102ba575f80fd5b506102c3610b5a565b6040516102d091906122ba565b60405180910390f35b3480156102e4575f80fd5b506102ed610b60565b6040516102fa919061231b565b60405180910390f35b34801561030e575f80fd5b50610317610b79565b604051610324919061231b565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190612419565b610b7f565b604051610360919061220e565b60405180910390f35b610383600480360381019061037e9190612280565b6112e5565b005b61039f600480360381019061039a9190612280565b611323565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190612280565b61134c565b6040516103d491906122ba565b60405180910390f35b6103e5611d71565b5f82815481106103f8576103f7612464565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156105e557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161059c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6106c0611365565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071061136f565b8060038190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61074761136f565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6107d661136f565b6107df5f6113a6565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460089054906101000a900467ffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b3068929eee149b4bd2126854036108665763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80868154811061088657610885612464565b5b905f5260205f20906008020190506003543410156108e1575f346003546040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108d893929190612491565b60405180910390fd5b6108eb818561146c565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c16e50ef84846040518363ffffffff1660e01b8152600401610949929190612520565b6020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109899190612577565b6109bf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060040185815481106109d5576109d4612464565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c63ff8dd60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250604051602001610a96919061263c565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610ac19190612694565b6020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190612577565b610b46573383836040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b3d939291906126b4565b60405180910390fd5b503868929eee149b4bd21268555050505050565b60035481565b60045f9054906101000a900467ffffffffffffffff1681565b61271081565b610b87611d71565b610b8f61136f565b3068929eee149b4bd212685403610bad5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610c0684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506115da565b806020019051810190610c199190612b4c565b9050610c27815f0151611673565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160045f9054906101000a900467ffffffffffffffff16610cf89190612bc0565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600460089054906101000a900467ffffffffffffffff16610d479190612bc0565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e001518160060181905550610dae7fe6715795000000000000000000000000000000000000000000000000000000008360200151600161174e565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e1e7fe2089f79000000000000000000000000000000000000000000000000000000008360600151600161174e565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e708260800151835f0151611770565b816004019080519060200190610e87929190611e37565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614610ef857610ef37fc0919948000000000000000000000000000000000000000000000000000000008360400151600161174e565b610fe1565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fc0919948000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f739190612c35565b602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612577565b610fbc575f610fe0565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561120457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111bb575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050925050503868929eee149b4bd212685592915050565b6112ed61136f565b63389a75e1600c52805f526020600c20805442111561131357636f5e88185f526004601cfd5b5f815550611320816113a6565b50565b61132b61136f565b8060601b61134057637448fbae5f526004601cfd5b611349816113a6565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113a4576382b429005f526004601cfd5b565b6113ae611b3a565b15611413577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611469565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60035403156115d6575f60035490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611532575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166003546114ed9190612c4e565b6114f79190612cbc565b905080826115059190612cec565b9150611530818473ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b61158a6002826115429190612cbc565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b6115d44760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b5050565b606081511561166e5760405190506020810160048301805184518501811983525b80861015611654576001860195508551601f1a80611644576001870196508651601f1a5f198652607f811161163257600181013887395b6001607f82160186019550505061164f565b808553600185019450505b6115fb565b81835260208501840385525f845260208401604052505050505b919050565b61169d7f5cd687ca0000000000000000000000000000000000000000000000000000000082611b5b565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016116d6919061223d565b602060405180830381865afa1580156116f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117159190612577565b61174b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f61175d848460200151611b5b565b6117678383611c52565b90509392505050565b6060825167ffffffffffffffff81111561178d5761178c6126e8565b5b6040519080825280602002602001820160405280156117bb5781602001602082028036833780820191505090505b5090505f5b8351811015611b33576118117f8dbd4bfc00000000000000000000000000000000000000000000000000000000858381518110611800576117ff612464565b5b602002602001015160200151611b5b565b83818151811061182457611823612464565b5b60200260200101515f01516118b0577f8dbd4bfc0000000000000000000000000000000000000000000000000000000084828151811061186757611866612464565b5b6020026020010151602001516040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016118a7929190612d1f565b60405180910390fd5b6118f57f8dbd4bfc000000000000000000000000000000000000000000000000000000008583815181106118e7576118e6612464565b5b60200260200101515f61174e565b82828151811061190857611907612464565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f82828151811061195657611955612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a286848151811061198c5761198b612464565b5b6020026020010151604001516040518263ffffffff1660e01b81526004016119b49190612694565b5f60405180830381865afa1580156119ce573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906119f69190612d46565b90505f815114611a87578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611a399190612694565b6020604051808303815f875af1158015611a55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a799190612577565b611a8657611a85612d8d565b5b5b828281518110611a9a57611a99612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611ad057611acf612464565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611af89190612694565b5f604051808303815f87803b158015611b0f575f80fd5b505af1158015611b21573d5f803e3d5ffd5b505050505080806001019150506117c0565b5092915050565b5f90565b5f385f3884865af1611b575763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0a57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611bc99190612c35565b602060405180830381865afa158015611be4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c089190612577565b155b15611c4e5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611c45929190612d1f565b60405180910390fd5b5050565b5f825f0151611c65578260200151611c89565b611c88836020015173ffffffffffffffffffffffffffffffffffffffff16611d0e565b5b9050825f01518015611c985750815b15611d08578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b8152600401611cda9190612694565b5f604051808303815f87803b158015611cf1575f80fd5b505af1158015611d03573d5f803e3d5ffd5b505050505b92915050565b5f611d195f83611d20565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080611d675763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215611ead579160200282015b82811115611eac578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611e55565b5b509050611eba9190611ebe565b5090565b5b80821115611ed5575f815f905550600101611ebf565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b611efc81611eea565b8114611f06575f80fd5b50565b5f81359050611f1781611ef3565b92915050565b5f60208284031215611f3257611f31611ee2565b5b5f611f3f84828501611f09565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f611f8a611f85611f8084611f48565b611f67565b611f48565b9050919050565b5f611f9b82611f70565b9050919050565b5f611fac82611f91565b9050919050565b611fbc81611fa2565b82525050565b5f611fcc82611f91565b9050919050565b611fdc81611fc2565b82525050565b5f611fec82611f91565b9050919050565b611ffc81611fe2565b82525050565b5f61200c82611f70565b9050919050565b5f61201d82612002565b9050919050565b61202d81612013565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61206682611f91565b9050919050565b6120768161205c565b82525050565b5f612087838361206d565b60208301905092915050565b5f602082019050919050565b5f6120a982612033565b6120b3818561203d565b93506120be8361204d565b805f5b838110156120ee5781516120d5888261207c565b97506120e083612093565b9250506001810190506120c1565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b612117816120fb565b82525050565b61212681611eea565b82525050565b5f61213682611f48565b9050919050565b6121468161212c565b82525050565b5f61012083015f8301516121625f860182611fb3565b5060208301516121756020860182611fd3565b5060408301516121886040860182611ff3565b50606083015161219b6060860182612024565b50608083015184820360808601526121b3828261209f565b91505060a08301516121c860a086018261210e565b5060c08301516121db60c086018261210e565b5060e08301516121ee60e086018261211d565b5061010083015161220361010086018261213d565b508091505092915050565b5f6020820190508181035f830152612226818461214c565b905092915050565b6122378161212c565b82525050565b5f6020820190506122505f83018461222e565b92915050565b61225f8161212c565b8114612269575f80fd5b50565b5f8135905061227a81612256565b92915050565b5f6020828403121561229557612294611ee2565b5b5f6122a28482850161226c565b91505092915050565b6122b481611eea565b82525050565b5f6020820190506122cd5f8301846122ab565b92915050565b5f6122dd82611f91565b9050919050565b6122ed816122d3565b82525050565b5f6020820190506123065f8301846122e4565b92915050565b612315816120fb565b82525050565b5f60208201905061232e5f83018461230c565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261235557612354612334565b5b8235905067ffffffffffffffff81111561237257612371612338565b5b60208301915083600182028301111561238e5761238d61233c565b5b9250929050565b5f805f805f608086880312156123ae576123ad611ee2565b5b5f6123bb88828901611f09565b95505060206123cc88828901611f09565b94505060406123dd8882890161226c565b935050606086013567ffffffffffffffff8111156123fe576123fd611ee6565b5b61240a88828901612340565b92509250509295509295909350565b5f806020838503121561242f5761242e611ee2565b5b5f83013567ffffffffffffffff81111561244c5761244b611ee6565b5b61245885828601612340565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506124a45f83018661222e565b6124b160208301856122ab565b6124be60408301846122ab565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6124ff83856124c6565b935061250c8385846124d6565b612515836124e4565b840190509392505050565b5f6020820190508181035f8301526125398184866124f4565b90509392505050565b5f8115159050919050565b61255681612542565b8114612560575f80fd5b50565b5f815190506125718161254d565b92915050565b5f6020828403121561258c5761258b611ee2565b5b5f61259984828501612563565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6125d4826125a2565b6125de81856125ac565b93506125ee8185602086016125bc565b6125f7816124e4565b840191505092915050565b5f604083015f8301516126175f86018261213d565b506020830151848203602086015261262f82826125ca565b9150508091505092915050565b5f6020820190508181035f8301526126548184612602565b905092915050565b5f612666826125a2565b61267081856124c6565b93506126808185602086016125bc565b612689816124e4565b840191505092915050565b5f6020820190508181035f8301526126ac818461265c565b905092915050565b5f6040820190506126c75f83018661222e565b81810360208301526126da8184866124f4565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61271e826124e4565b810181811067ffffffffffffffff8211171561273d5761273c6126e8565b5b80604052505050565b5f61274f611ed9565b905061275b8282612715565b919050565b5f80fd5b5f61276e82611f48565b9050919050565b5f61277f82612764565b9050919050565b61278f81612775565b8114612799575f80fd5b50565b5f815190506127aa81612786565b92915050565b5f815190506127be81612256565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127e2576127e16126e8565b5b6127eb826124e4565b9050602081019050919050565b5f61280a612805846127c8565b612746565b905082815260208101848484011115612826576128256127c4565b5b6128318482856125bc565b509392505050565b5f82601f83011261284d5761284c612334565b5b815161285d8482602086016127f8565b91505092915050565b5f6060828403121561287b5761287a6126e4565b5b6128856060612746565b90505f61289484828501612563565b5f8301525060206128a7848285016127b0565b602083015250604082015167ffffffffffffffff8111156128cb576128ca612760565b5b6128d784828501612839565b60408301525092915050565b5f67ffffffffffffffff8211156128fd576128fc6126e8565b5b602082029050602081019050919050565b5f61292061291b846128e3565b612746565b905080838252602082019050602084028301858111156129435761294261233c565b5b835b8181101561298a57805167ffffffffffffffff81111561296857612967612334565b5b8086016129758982612866565b85526020850194505050602081019050612945565b5050509392505050565b5f82601f8301126129a8576129a7612334565b5b81516129b884826020860161290e565b91505092915050565b6129ca816120fb565b81146129d4575f80fd5b50565b5f815190506129e5816129c1565b92915050565b5f815190506129f981611ef3565b92915050565b5f6101208284031215612a1557612a146126e4565b5b612a20610120612746565b90505f612a2f8482850161279c565b5f83015250602082015167ffffffffffffffff811115612a5257612a51612760565b5b612a5e84828501612866565b602083015250604082015167ffffffffffffffff811115612a8257612a81612760565b5b612a8e84828501612866565b604083015250606082015167ffffffffffffffff811115612ab257612ab1612760565b5b612abe84828501612866565b606083015250608082015167ffffffffffffffff811115612ae257612ae1612760565b5b612aee84828501612994565b60808301525060a0612b02848285016129d7565b60a08301525060c0612b16848285016129d7565b60c08301525060e0612b2a848285016129eb565b60e083015250610100612b3f848285016127b0565b6101008301525092915050565b5f60208284031215612b6157612b60611ee2565b5b5f82015167ffffffffffffffff811115612b7e57612b7d611ee6565b5b612b8a848285016129ff565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bca826120fb565b9150612bd5836120fb565b9250828201905067ffffffffffffffff811115612bf557612bf4612b93565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c2f81612bfb565b82525050565b5f602082019050612c485f830184612c26565b92915050565b5f612c5882611eea565b9150612c6383611eea565b9250828202612c7181611eea565b91508282048414831517612c8857612c87612b93565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cc682611eea565b9150612cd183611eea565b925082612ce157612ce0612c8f565b5b828204905092915050565b5f612cf682611eea565b9150612d0183611eea565b9250828203905081811115612d1957612d18612b93565b5b92915050565b5f604082019050612d325f830185612c26565b612d3f602083018461222e565b9392505050565b5f60208284031215612d5b57612d5a611ee2565b5b5f82015167ffffffffffffffff811115612d7857612d77611ee6565b5b612d8484828501612839565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea264697066735822122000411cf454d3f7b220aadb64ce9e6a010c954ba7ec7e1848fd2534e56a5294e364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84AE2BC6 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xE21FF731 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A1 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x84AE2BC6 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x8FE4F523 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x99D32FC4 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x2D9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x46877B1A GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x46877B1A EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5EDB9EB0 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x215 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x13C8E2DE EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x2E75AB50 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x39A51BE5 EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x6B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x190 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x7C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x213 PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x220 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x229 PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x22F3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x806 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x2395 JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0xB5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x353 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34E SWAP2 SWAP1 PUSH2 0x2419 JUMP JUMPDEST PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x383 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x12E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x134C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E5 PUSH2 0x1D71 JUMP JUMPDEST PUSH0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3F8 JUMPI PUSH2 0x3F7 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x59C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x1365 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x710 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x136F JUMP JUMPDEST PUSH2 0x7DF PUSH0 PUSH2 0x13A6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x866 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 DUP1 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP PUSH1 0x3 SLOAD CALLVALUE LT ISZERO PUSH2 0x8E1 JUMPI PUSH0 CALLVALUE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EB DUP2 DUP6 PUSH2 0x146C JUMP JUMPDEST DUP1 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC16E50EF DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x949 SWAP3 SWAP2 SWAP1 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x965 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x989 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D4 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC63FF8DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA96 SWAP2 SWAP1 PUSH2 0x263C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xB46 JUMPI CALLER DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x26B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0xB87 PUSH2 0x1D71 JUMP JUMPDEST PUSH2 0xB8F PUSH2 0x136F JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0xBAD JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH2 0xC06 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x15DA JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x2B4C JUMP JUMPDEST SWAP1 POP PUSH2 0xC27 DUP2 PUSH0 ADD MLOAD PUSH2 0x1673 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP DUP2 PUSH2 0x100 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH0 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xA0 ADD MLOAD PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xCF8 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xC0 ADD MLOAD PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD47 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xDAE PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE1E PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH1 0x2 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE70 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x1770 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x1E37 JUMP JUMPDEST POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEF8 JUMPI PUSH2 0xEF3 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF73 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB2 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xFBC JUMPI PUSH0 PUSH2 0xFE0 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST JUMPDEST DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1204 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x11BB JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP3 POP POP POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12ED PUSH2 0x136F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x1313 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1320 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x132B PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1340 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1349 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x13A4 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x13AE PUSH2 0x1B3A JUMP JUMPDEST ISZERO PUSH2 0x1413 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1469 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD SUB ISZERO PUSH2 0x15D6 JUMPI PUSH0 PUSH1 0x3 SLOAD SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1532 JUMPI PUSH0 PUSH2 0x2710 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x5 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x3 SLOAD PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x2C4E JUMP JUMPDEST PUSH2 0x14F7 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x1505 SWAP2 SWAP1 PUSH2 0x2CEC JUMP JUMPDEST SWAP2 POP PUSH2 0x1530 DUP2 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST PUSH2 0x158A PUSH1 0x2 DUP3 PUSH2 0x1542 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST DUP5 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15D4 SELFBALANCE PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD ISZERO PUSH2 0x166E JUMPI PUSH1 0x40 MLOAD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x4 DUP4 ADD DUP1 MLOAD DUP5 MLOAD DUP6 ADD DUP2 NOT DUP4 MSTORE JUMPDEST DUP1 DUP7 LT ISZERO PUSH2 0x1654 JUMPI PUSH1 0x1 DUP7 ADD SWAP6 POP DUP6 MLOAD PUSH1 0x1F BYTE DUP1 PUSH2 0x1644 JUMPI PUSH1 0x1 DUP8 ADD SWAP7 POP DUP7 MLOAD PUSH1 0x1F BYTE PUSH0 NOT DUP7 MSTORE PUSH1 0x7F DUP2 GT PUSH2 0x1632 JUMPI PUSH1 0x1 DUP2 ADD CODESIZE DUP8 CODECOPY JUMPDEST PUSH1 0x1 PUSH1 0x7F DUP3 AND ADD DUP7 ADD SWAP6 POP POP POP PUSH2 0x164F JUMP JUMPDEST DUP1 DUP6 MSTORE8 PUSH1 0x1 DUP6 ADD SWAP5 POP POP JUMPDEST PUSH2 0x15FB JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP6 ADD DUP5 SUB DUP6 MSTORE PUSH0 DUP5 MSTORE PUSH1 0x20 DUP5 ADD PUSH1 0x40 MSTORE POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169D PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 DUP3 PUSH2 0x1B5B JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFE9FBB80 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1715 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x174B JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x175D DUP5 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST PUSH2 0x1767 DUP4 DUP4 PUSH2 0x1C52 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x178D JUMPI PUSH2 0x178C PUSH2 0x26E8 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 0x17BB 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 PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH2 0x1811 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1800 JUMPI PUSH2 0x17FF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1824 JUMPI PUSH2 0x1823 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH2 0x18B0 JUMPI PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1867 JUMPI PUSH2 0x1866 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18A7 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x18F5 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x18E7 JUMPI PUSH2 0x18E6 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 PUSH2 0x174E JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1908 JUMPI PUSH2 0x1907 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1956 JUMPI PUSH2 0x1955 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4E7165A2 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x198C JUMPI PUSH2 0x198B PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19B4 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F6 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD EQ PUSH2 0x1A87 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFA4CA9B1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A39 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A79 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x2D8D JUMP JUMPDEST JUMPDEST JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A9A JUMPI PUSH2 0x1A99 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1AD0 JUMPI PUSH2 0x1ACF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AF8 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B21 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x17C0 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1B57 JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1C0A JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BC9 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BE4 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C08 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C4E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C45 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH0 ADD MLOAD PUSH2 0x1C65 JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0x1C88 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D0E JUMP JUMPDEST JUMPDEST SWAP1 POP DUP3 PUSH0 ADD MLOAD DUP1 ISZERO PUSH2 0x1C98 JUMPI POP DUP2 JUMPDEST ISZERO PUSH2 0x1D08 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CDA SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D03 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D19 PUSH0 DUP4 PUSH2 0x1D20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP2 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE PUSH1 0x35 PUSH1 0xC DUP5 CREATE SWAP1 POP DUP1 PUSH2 0x1D67 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1EAD JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI DUP3 MLOAD DUP3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E55 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1EBA SWAP2 SWAP1 PUSH2 0x1EBE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH0 DUP2 PUSH0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1EBF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EFC DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP2 EQ PUSH2 0x1F06 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F17 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F32 JUMPI PUSH2 0x1F31 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F3F DUP5 DUP3 DUP6 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F8A PUSH2 0x1F85 PUSH2 0x1F80 DUP5 PUSH2 0x1F48 JUMP JUMPDEST PUSH2 0x1F67 JUMP JUMPDEST PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F9B DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1FAC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBC DUP2 PUSH2 0x1FA2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FCC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FDC DUP2 PUSH2 0x1FC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FEC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FFC DUP2 PUSH2 0x1FE2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x200C DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x201D DUP3 PUSH2 0x2002 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x202D DUP2 PUSH2 0x2013 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2066 DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2076 DUP2 PUSH2 0x205C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2087 DUP4 DUP4 PUSH2 0x206D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20A9 DUP3 PUSH2 0x2033 JUMP JUMPDEST PUSH2 0x20B3 DUP2 DUP6 PUSH2 0x203D JUMP JUMPDEST SWAP4 POP PUSH2 0x20BE DUP4 PUSH2 0x204D JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x20EE JUMPI DUP2 MLOAD PUSH2 0x20D5 DUP9 DUP3 PUSH2 0x207C JUMP JUMPDEST SWAP8 POP PUSH2 0x20E0 DUP4 PUSH2 0x2093 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x20C1 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2117 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2126 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2136 DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2146 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2162 PUSH0 DUP7 ADD DUP3 PUSH2 0x1FB3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2175 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1FD3 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2188 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1FF3 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x219B PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x2024 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x21B3 DUP3 DUP3 PUSH2 0x209F JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x21C8 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x21DB PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x21EE PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x211D JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x2203 PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2226 DUP2 DUP5 PUSH2 0x214C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2237 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2250 PUSH0 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x225F DUP2 PUSH2 0x212C JUMP JUMPDEST DUP2 EQ PUSH2 0x2269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227A DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2295 JUMPI PUSH2 0x2294 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22A2 DUP5 DUP3 DUP6 ADD PUSH2 0x226C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22B4 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22CD PUSH0 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22DD DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2306 PUSH0 DUP4 ADD DUP5 PUSH2 0x22E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2315 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x232E PUSH0 DUP4 ADD DUP5 PUSH2 0x230C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2355 JUMPI PUSH2 0x2354 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2372 JUMPI PUSH2 0x2371 PUSH2 0x2338 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x238E JUMPI PUSH2 0x238D PUSH2 0x233C JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x23AE JUMPI PUSH2 0x23AD PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23BB DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x23CC DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x23DD DUP9 DUP3 DUP10 ADD PUSH2 0x226C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23FE JUMPI PUSH2 0x23FD PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x240A DUP9 DUP3 DUP10 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x242F JUMPI PUSH2 0x242E PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x244C JUMPI PUSH2 0x244B PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2458 DUP6 DUP3 DUP7 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x24A4 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x24B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x24BE PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x24FF DUP4 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x250C DUP4 DUP6 DUP5 PUSH2 0x24D6 JUMP JUMPDEST PUSH2 0x2515 DUP4 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2539 DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2556 DUP2 PUSH2 0x2542 JUMP JUMPDEST DUP2 EQ PUSH2 0x2560 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2571 DUP2 PUSH2 0x254D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258C JUMPI PUSH2 0x258B PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2599 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25D4 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x25DE DUP2 DUP6 PUSH2 0x25AC JUMP JUMPDEST SWAP4 POP PUSH2 0x25EE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x25F7 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2617 PUSH0 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x262F DUP3 DUP3 PUSH2 0x25CA JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2654 DUP2 DUP5 PUSH2 0x2602 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2666 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x2670 DUP2 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x2680 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x2689 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x26AC DUP2 DUP5 PUSH2 0x265C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x26C7 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26DA DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x271E DUP3 PUSH2 0x24E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x273D JUMPI PUSH2 0x273C PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x274F PUSH2 0x1ED9 JUMP JUMPDEST SWAP1 POP PUSH2 0x275B DUP3 DUP3 PUSH2 0x2715 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x276E DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x277F DUP3 PUSH2 0x2764 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x278F DUP2 PUSH2 0x2775 JUMP JUMPDEST DUP2 EQ PUSH2 0x2799 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27AA DUP2 PUSH2 0x2786 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27BE DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x27E2 JUMPI PUSH2 0x27E1 PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH2 0x27EB DUP3 PUSH2 0x24E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x280A PUSH2 0x2805 DUP5 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2826 JUMPI PUSH2 0x2825 PUSH2 0x27C4 JUMP JUMPDEST JUMPDEST PUSH2 0x2831 DUP5 DUP3 DUP6 PUSH2 0x25BC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x284D JUMPI PUSH2 0x284C PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x285D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x27F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2885 PUSH1 0x60 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2894 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x28A7 DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28CB JUMPI PUSH2 0x28CA PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x28D7 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FD JUMPI PUSH2 0x28FC PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2920 PUSH2 0x291B DUP5 PUSH2 0x28E3 JUMP JUMPDEST PUSH2 0x2746 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 0x2943 JUMPI PUSH2 0x2942 PUSH2 0x233C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298A JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2968 JUMPI PUSH2 0x2967 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x2975 DUP10 DUP3 PUSH2 0x2866 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2945 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29A8 JUMPI PUSH2 0x29A7 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x29B8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x290E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29CA DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP2 EQ PUSH2 0x29D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29E5 DUP2 PUSH2 0x29C1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29F9 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A15 JUMPI PUSH2 0x2A14 PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2A20 PUSH2 0x120 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A2F DUP5 DUP3 DUP6 ADD PUSH2 0x279C JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A52 JUMPI PUSH2 0x2A51 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A5E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A82 JUMPI PUSH2 0x2A81 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A8E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AB2 JUMPI PUSH2 0x2AB1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2ABE DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE2 JUMPI PUSH2 0x2AE1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2AEE DUP5 DUP3 DUP6 ADD PUSH2 0x2994 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x2B02 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x2B16 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x2B2A DUP5 DUP3 DUP6 ADD PUSH2 0x29EB JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x2B3F DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B60 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B7E JUMPI PUSH2 0x2B7D PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2B8A DUP5 DUP3 DUP6 ADD PUSH2 0x29FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2BCA DUP3 PUSH2 0x20FB JUMP JUMPDEST SWAP2 POP PUSH2 0x2BD5 DUP4 PUSH2 0x20FB JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BF5 JUMPI PUSH2 0x2BF4 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C2F DUP2 PUSH2 0x2BFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C48 PUSH0 DUP4 ADD DUP5 PUSH2 0x2C26 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C58 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2C63 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x2C71 DUP2 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2C88 JUMPI PUSH2 0x2C87 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2CC6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2CD1 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2CE1 JUMPI PUSH2 0x2CE0 PUSH2 0x2C8F JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2CF6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2D01 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D19 JUMPI PUSH2 0x2D18 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D32 PUSH0 DUP4 ADD DUP6 PUSH2 0x2C26 JUMP JUMPDEST PUSH2 0x2D3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D5B JUMPI PUSH2 0x2D5A PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D78 JUMPI PUSH2 0x2D77 PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2D84 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP COINBASE SHR DELEGATECALL SLOAD 0xD3 0xF7 0xB2 KECCAK256 0xAA 0xDB PUSH5 0xCE9E6A010C SWAP6 0x4B 0xA7 0xEC PUSH31 0x1848FD2534E56A5294E364736F6C6343000819003300000000000000000000 ","sourceMap":"1093:10818:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;7138:96:29;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1748:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6849:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;6563:95:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;1670:29:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2016:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:737:29;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1828:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1922:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2134:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3966:1268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6362:117:29;6418:21;;:::i;:::-;6458:7;6466:5;6458:14;;;;;;;;:::i;:::-;;;;;;;;;;;;6451:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:117;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;7138:96:29:-;12517:13:17;:11;:13::i;:::-;7218:9:29::1;7207:8;:20;;;;7138:96:::0;:::o;1748:34::-;;;;;;;;;;;;;:::o;6849:140::-;12517:13:17;:11;:13::i;:::-;6962:20:29::1;6940:19;;:42;;;;;;;;;;;;;;;;;;6849:140:::0;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;6563:95:29:-;6611:7;6637;:14;;;;6630:21;;6563:95;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;1670:29:29:-;;;;;;;;;;;;;:::o;2016:33::-;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;5489:737:29:-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;5662:28:29::1;5693:7:::0;5701:8:::1;5693:17;;;;;;;;:::i;:::-;;;;;;;;;;;;5662:48;;5736:8;;5724:9;:20;5720:94;;;5790:1;5794:9;5805:8;;5753:61;;;;;;;;;;;;;:::i;:::-;;;;;;;;5720:94;5824:32;5839:5;5846:9;5824:14;:32::i;:::-;5960:5;:15;;;;;;;;;;;;:24;;;5985:5;;5960:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5955:70;;6000:25;;;;;;;;;;;;;;5955:70;6053:5;:16;;6070:12;6053:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:36;;;6101:57;;;;;;;;6133:10;6101:57;;;;;;6151:5;;6101:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;6090:69:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;6053:107;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6035:184;;6201:10;6213:5;;6178:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;6035:184;5652:574;1937:10:26::0;1913:22;1906:42;5489:737:29;;;;;:::o;1828:40::-;;;;:::o;1922:33::-;;;;;;;;;;;;;:::o;2134:47::-;2175:6;2134:47;:::o;3966:1268::-;4050:21;;:::i;:::-;12517:13:17;:11;:13::i;:::-;1635:9:26::1;1610:22;1604:29;1601:44:::0;1598:158:::1;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;4083:27:29::2;4124:20;:5;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20::i;:::-;4113:47;;;;;;;;;;;;:::i;:::-;4083:77;;4202:29;4215:8;:15;;;4202:12;:29::i;:::-;4274:28;4305:7:::0;:14:::2;;;;;;;;;;;;;;;;;;;;;;;;4274:45;;4343:8;:14;;;4329:5;:11;;;:28;;;;;;;;;;;;;;;;;;4382:8;:15;;;4367:5;:12;;;:30;;;;;;;;;;;;;;;;;;4441:8;:20;;;4427:11;;;;;;;;;;;:34;;;;:::i;:::-;4407:5;:17;;;:54;;;;;;;;;;;;;;;;;;4505:8;:20;;;4491:11;;;;;;;;;;;:34;;;;:::i;:::-;4471:5;:17;;;:54;;;;;;;;;;;;;;;;;;4559:8;:24;;;4535:5;:21;;:48;;;;4654:60;4666:24;4692:8;:15;;;4709:4;4654:11;:60::i;:::-;4632:5;:12;;;:83;;;;;;;;;;;;;;;;;;4753:66;4765:27;4794:8;:18;;;4814:4;4753:11;:66::i;:::-;4725:5;:15;;;:95;;;;;;;;;;;;;;;;;;4849:53;4865:8;:19;;;4886:8;:15;;;4849;:53::i;:::-;4830:5;:16;;:72;;;;;;;;;;;;:::i;:::-;;4992:1;4953:41;;:8;:18;;;:27;;;:41;;;:241;;5128:66;5140:27;5169:8;:18;;;5189:4;5128:11;:66::i;:::-;4953:241;;;5013:5;:12;;;;;;;;;;;;:30;;;5044:27;5013:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:96;;5107:1;5013:96;;;5083:5;:12;;;;;;;;;;;;5013:96;4953:241;4912:5;:15;;;:292;;;;;;;;;;;;;;;;;;5222:5;5215:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;1937:10:26::1;1913:22;1906:42;3966:1268:29::0;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;7878:110::-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;11251:658:29:-;11359:1;11347:8;;:13;11343:26;11362:7;11343:26;11378:14;11395:8;;11378:25;;11522:1;11501:23;;:9;:23;;;11497:215;;11540:21;2175:6;11564:46;;11575:5;:17;;;;;;;;;;;;11564:28;;:8;;:28;;;;:::i;:::-;:46;;;;:::i;:::-;11540:70;;11634:13;11624:23;;;;;:::i;:::-;;;11661:40;11687:13;11661:9;:25;;;;:40;;;;:::i;:::-;11526:186;11497:215;11795:39;11832:1;11823:6;:10;;;;:::i;:::-;11795:5;:11;;;;;;;;;;;;:27;;;;:39;;;;:::i;:::-;11844:58;11880:21;11844:19;;;;;;;;;;;:35;;;;:58;;;;:::i;:::-;11333:576;11251:658;;;:::o;9347:1408:25:-;9411:19;9517:4;9511:11;9508:1231;;;9557:4;9551:11;9541:21;;9600:4;9592:6;9588:17;9641:1;9635:4;9631:12;9675:1;9669:8;9721:4;9715:11;9709:4;9705:22;9758:1;9754:6;9751:1;9744:17;9815:638;9831:3;9825:4;9822:13;9815:638;;;9879:1;9873:4;9869:12;9861:20;;9926:4;9920:11;9916:2;9911:21;9963:1;9953:413;;10010:1;10004:4;10000:12;9992:20;;10061:4;10055:11;10051:2;10046:21;10164:1;10160:6;10157:1;10150:17;10208:4;10205:1;10202:11;10192:61;;10248:1;10245;10241:9;10229:10;10226:1;10217:34;10192:61;10308:1;10301:4;10298:1;10294:12;10290:20;10287:1;10283:28;10278:33;;10336:8;;;;9953:413;10398:1;10395;10387:13;10433:1;10430;10426:9;10421:14;;9839:614;9815:638;;;;10480:1;10477;10470:12;10563:4;10555:6;10551:17;10548:1;10544:25;10536:6;10529:41;10618:1;10615;10608:12;10695:4;10692:1;10688:12;10682:4;10675:26;9523:1216;;;;9508:1231;9347:1408;;;:::o;7477:206:29:-;7539:56;7552:24;7586:7;7539:12;:56::i;:::-;7610:7;:20;;;7631:10;7610:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7605:71;;7651:25;;;;;;;;;;;;;;7605:71;7477:206;:::o;8698:268::-;8827:16;8859:42;8872:11;8885:6;:15;;;8859:12;:42::i;:::-;8922:37;8934:6;8942:16;8922:11;:37::i;:::-;8911:48;;8698:268;;;;;:::o;9268:1233::-;9378:29;9452:8;:15;9436:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9423:45;;9483:9;9478:1017;9502:8;:15;9498:1;:19;9478:1017;;;9619:63;9632:27;9661:8;9670:1;9661:11;;;;;;;;:::i;:::-;;;;;;;;:20;;;9619:12;:63::i;:::-;9796:8;9805:1;9796:11;;;;;;;;:::i;:::-;;;;;;;;:18;;;9791:142;;9868:27;9897:8;9906:1;9897:11;;;;;;;;:::i;:::-;;;;;;;;:20;;;9841:77;;;;;;;;;;;;:::i;:::-;;;;;;;;9791:142;9973:60;9985:27;10014:8;10023:1;10014:11;;;;;;;;:::i;:::-;;;;;;;;10027:5;9973:11;:60::i;:::-;9947:10;9958:1;9947:13;;;;;;;;:::i;:::-;;;;;;;:87;;;;;;;;;;;10049:22;10074:10;10085:1;10074:13;;;;;;;;:::i;:::-;;;;;;;;:23;;;10098:8;10107:1;10098:11;;;;;;;;:::i;:::-;;;;;;;;:22;;;10074:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10049:72;;10159:1;10139:9;:16;:21;10135:193;;10285:7;:16;;;10302:9;10285:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10278:35;;;;:::i;:::-;;10135:193;10436:10;10447:1;10436:13;;;;;;;;:::i;:::-;;;;;;;;:24;;;10461:8;10470:1;10461:11;;;;;;;;:::i;:::-;;;;;;;;:22;;;10436:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9524:971;9519:3;;;;;;;9478:1017;;;;9268:1233;;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;4031:342:27:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;8054:254:29:-;8162:1;8142:22;;:8;:22;;;:77;;;;8179:8;8169:37;;;8207:11;8169:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8168:51;8142:77;8138:164;;;8269:11;8282:8;8242:49;;;;;;;;;;;;:::i;:::-;;;;;;;;8138:164;8054:254;;:::o;10611:420::-;10706:16;10745:7;:14;;;:60;;10789:7;:16;;;10745:60;;;10762:24;:7;:16;;;:22;;;:24::i;:::-;10745:60;10734:71;;10819:7;:14;;;:35;;;;;10837:17;10819:35;10815:210;;;10974:8;10964:30;;;10995:7;:18;;;10964:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10815:210;10611:420;;;;:::o;4007:127:22:-;4064:16;4103:24;4109:1;4112:14;4103:5;:24::i;:::-;4092:35;;4007:127;;;:::o;4238:5567::-;4310:16;9363:28;9357:4;9350:42;9418:14;9412:4;9405:28;9459:42;9453:4;9446:56;9547:4;9541;9534:5;9527:25;9515:37;;9575:8;9565:136;;9616:10;9610:4;9603:24;9682:4;9676;9669:18;9565:136;9727:1;9721:4;9714:15;4238:5567;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:60::-;1185:3;1206:5;1199:12;;1157:60;;;:::o;1223:142::-;1273:9;1306:53;1324:34;1333:24;1351:5;1333:24;:::i;:::-;1324:34;:::i;:::-;1306:53;:::i;:::-;1293:66;;1223:142;;;:::o;1371:126::-;1421:9;1454:37;1485:5;1454:37;:::i;:::-;1441:50;;1371:126;;;:::o;1503:142::-;1569:9;1602:37;1633:5;1602:37;:::i;:::-;1589:50;;1503:142;;;:::o;1651:153::-;1744:53;1791:5;1744:53;:::i;:::-;1739:3;1732:66;1651:153;;:::o;1810:145::-;1879:9;1912:37;1943:5;1912:37;:::i;:::-;1899:50;;1810:145;;;:::o;1961:159::-;2057:56;2107:5;2057:56;:::i;:::-;2052:3;2045:69;1961:159;;:::o;2126:145::-;2195:9;2228:37;2259:5;2228:37;:::i;:::-;2215:50;;2126:145;;;:::o;2277:159::-;2373:56;2423:5;2373:56;:::i;:::-;2368:3;2361:69;2277:159;;:::o;2442:134::-;2500:9;2533:37;2564:5;2533:37;:::i;:::-;2520:50;;2442:134;;;:::o;2582:158::-;2656:9;2689:45;2728:5;2689:45;:::i;:::-;2676:58;;2582:158;;;:::o;2746:169::-;2847:61;2902:5;2847:61;:::i;:::-;2842:3;2835:74;2746:169;;:::o;2921:133::-;3007:6;3041:5;3035:12;3025:22;;2921:133;;;:::o;3060:174::-;3149:11;3183:6;3178:3;3171:19;3223:4;3218:3;3214:14;3199:29;;3060:174;;;;:::o;3240:151::-;3326:4;3349:3;3341:11;;3379:4;3374:3;3370:14;3362:22;;3240:151;;;:::o;3397:145::-;3466:9;3499:37;3530:5;3499:37;:::i;:::-;3486:50;;3397:145;;;:::o;3548:159::-;3644:56;3694:5;3644:56;:::i;:::-;3639:3;3632:69;3548:159;;:::o;3713:217::-;3801:10;3822:65;3883:3;3875:6;3822:65;:::i;:::-;3919:4;3914:3;3910:14;3896:28;;3713:217;;;;:::o;3936:132::-;4025:4;4057;4052:3;4048:14;4040:22;;3936:132;;;:::o;4115:807::-;4243:3;4272:73;4339:5;4272:73;:::i;:::-;4361:76;4430:6;4425:3;4361:76;:::i;:::-;4354:83;;4461:75;4530:5;4461:75;:::i;:::-;4559:7;4590:1;4575:322;4600:6;4597:1;4594:13;4575:322;;;4676:6;4670:13;4703:82;4781:3;4766:13;4703:82;:::i;:::-;4696:89;;4808:79;4880:6;4808:79;:::i;:::-;4798:89;;4635:262;4622:1;4619;4615:9;4610:14;;4575:322;;;4579:14;4913:3;4906:10;;4248:674;;;4115:807;;;;:::o;4928:101::-;4964:7;5004:18;4997:5;4993:30;4982:41;;4928:101;;;:::o;5035:105::-;5110:23;5127:5;5110:23;:::i;:::-;5105:3;5098:36;5035:105;;:::o;5146:108::-;5223:24;5241:5;5223:24;:::i;:::-;5218:3;5211:37;5146:108;;:::o;5260:96::-;5297:7;5326:24;5344:5;5326:24;:::i;:::-;5315:35;;5260:96;;;:::o;5362:108::-;5439:24;5457:5;5439:24;:::i;:::-;5434:3;5427:37;5362:108;;:::o;5530:1997::-;5647:3;5683:6;5678:3;5674:16;5774:4;5767:5;5763:16;5757:23;5793:79;5866:4;5861:3;5857:14;5843:12;5793:79;:::i;:::-;5700:182;5969:4;5962:5;5958:16;5952:23;5988:82;6064:4;6059:3;6055:14;6041:12;5988:82;:::i;:::-;5892:188;6167:4;6160:5;6156:16;6150:23;6186:82;6262:4;6257:3;6253:14;6239:12;6186:82;:::i;:::-;6090:188;6362:4;6355:5;6351:16;6345:23;6381:87;6462:4;6457:3;6453:14;6439:12;6381:87;:::i;:::-;6288:190;6566:4;6559:5;6555:16;6549:23;6619:3;6613:4;6609:14;6602:4;6597:3;6593:14;6586:38;6645:122;6762:4;6748:12;6645:122;:::i;:::-;6637:130;;6488:290;6867:4;6860:5;6856:16;6850:23;6886:61;6941:4;6936:3;6932:14;6918:12;6886:61;:::i;:::-;6788:169;7046:4;7039:5;7035:16;7029:23;7065:61;7120:4;7115:3;7111:14;7097:12;7065:61;:::i;:::-;6967:169;7229:4;7222:5;7218:16;7212:23;7248:63;7305:4;7300:3;7296:14;7282:12;7248:63;:::i;:::-;7146:175;7404:6;7397:5;7393:18;7387:25;7425:65;7482:6;7477:3;7473:16;7459:12;7425:65;:::i;:::-;7331:169;7517:4;7510:11;;5652:1875;5530:1997;;;;:::o;7533:369::-;7674:4;7712:2;7701:9;7697:18;7689:26;;7761:9;7755:4;7751:20;7747:1;7736:9;7732:17;7725:47;7789:106;7890:4;7881:6;7789:106;:::i;:::-;7781:114;;7533:369;;;;:::o;7908:118::-;7995:24;8013:5;7995:24;:::i;:::-;7990:3;7983:37;7908:118;;:::o;8032:222::-;8125:4;8163:2;8152:9;8148:18;8140:26;;8176:71;8244:1;8233:9;8229:17;8220:6;8176:71;:::i;:::-;8032:222;;;;:::o;8260:122::-;8333:24;8351:5;8333:24;:::i;:::-;8326:5;8323:35;8313:63;;8372:1;8369;8362:12;8313:63;8260:122;:::o;8388:139::-;8434:5;8472:6;8459:20;8450:29;;8488:33;8515:5;8488:33;:::i;:::-;8388:139;;;;:::o;8533:329::-;8592:6;8641:2;8629:9;8620:7;8616:23;8612:32;8609:119;;;8647:79;;:::i;:::-;8609:119;8767:1;8792:53;8837:7;8828:6;8817:9;8813:22;8792:53;:::i;:::-;8782:63;;8738:117;8533:329;;;;:::o;8868:118::-;8955:24;8973:5;8955:24;:::i;:::-;8950:3;8943:37;8868:118;;:::o;8992:222::-;9085:4;9123:2;9112:9;9108:18;9100:26;;9136:71;9204:1;9193:9;9189:17;9180:6;9136:71;:::i;:::-;8992:222;;;;:::o;9220:149::-;9293:9;9326:37;9357:5;9326:37;:::i;:::-;9313:50;;9220:149;;;:::o;9375:177::-;9485:60;9539:5;9485:60;:::i;:::-;9480:3;9473:73;9375:177;;:::o;9558:268::-;9674:4;9712:2;9701:9;9697:18;9689:26;;9725:94;9816:1;9805:9;9801:17;9792:6;9725:94;:::i;:::-;9558:268;;;;:::o;9832:115::-;9917:23;9934:5;9917:23;:::i;:::-;9912:3;9905:36;9832:115;;:::o;9953:218::-;10044:4;10082:2;10071:9;10067:18;10059:26;;10095:69;10161:1;10150:9;10146:17;10137:6;10095:69;:::i;:::-;9953:218;;;;:::o;10177:117::-;10286:1;10283;10276:12;10300:117;10409:1;10406;10399:12;10423:117;10532:1;10529;10522:12;10559:552;10616:8;10626:6;10676:3;10669:4;10661:6;10657:17;10653:27;10643:122;;10684:79;;:::i;:::-;10643:122;10797:6;10784:20;10774:30;;10827:18;10819:6;10816:30;10813:117;;;10849:79;;:::i;:::-;10813:117;10963:4;10955:6;10951:17;10939:29;;11017:3;11009:4;11001:6;10997:17;10987:8;10983:32;10980:41;10977:128;;;11024:79;;:::i;:::-;10977:128;10559:552;;;;;:::o;11117:963::-;11214:6;11222;11230;11238;11246;11295:3;11283:9;11274:7;11270:23;11266:33;11263:120;;;11302:79;;:::i;:::-;11263:120;11422:1;11447:53;11492:7;11483:6;11472:9;11468:22;11447:53;:::i;:::-;11437:63;;11393:117;11549:2;11575:53;11620:7;11611:6;11600:9;11596:22;11575:53;:::i;:::-;11565:63;;11520:118;11677:2;11703:53;11748:7;11739:6;11728:9;11724:22;11703:53;:::i;:::-;11693:63;;11648:118;11833:2;11822:9;11818:18;11805:32;11864:18;11856:6;11853:30;11850:117;;;11886:79;;:::i;:::-;11850:117;11999:64;12055:7;12046:6;12035:9;12031:22;11999:64;:::i;:::-;11981:82;;;;11776:297;11117:963;;;;;;;;:::o;12086:527::-;12156:6;12164;12213:2;12201:9;12192:7;12188:23;12184:32;12181:119;;;12219:79;;:::i;:::-;12181:119;12367:1;12356:9;12352:17;12339:31;12397:18;12389:6;12386:30;12383:117;;;12419:79;;:::i;:::-;12383:117;12532:64;12588:7;12579:6;12568:9;12564:22;12532:64;:::i;:::-;12514:82;;;;12310:296;12086:527;;;;;:::o;12619:180::-;12667:77;12664:1;12657:88;12764:4;12761:1;12754:15;12788:4;12785:1;12778:15;12805:442;12954:4;12992:2;12981:9;12977:18;12969:26;;13005:71;13073:1;13062:9;13058:17;13049:6;13005:71;:::i;:::-;13086:72;13154:2;13143:9;13139:18;13130:6;13086:72;:::i;:::-;13168;13236:2;13225:9;13221:18;13212:6;13168:72;:::i;:::-;12805:442;;;;;;:::o;13253:168::-;13336:11;13370:6;13365:3;13358:19;13410:4;13405:3;13401:14;13386:29;;13253:168;;;;:::o;13427:148::-;13525:6;13520:3;13515;13502:30;13566:1;13557:6;13552:3;13548:16;13541:27;13427:148;;;:::o;13581:102::-;13622:6;13673:2;13669:7;13664:2;13657:5;13653:14;13649:28;13639:38;;13581:102;;;:::o;13711:314::-;13807:3;13828:70;13891:6;13886:3;13828:70;:::i;:::-;13821:77;;13908:56;13957:6;13952:3;13945:5;13908:56;:::i;:::-;13989:29;14011:6;13989:29;:::i;:::-;13984:3;13980:39;13973:46;;13711:314;;;;;:::o;14031:329::-;14152:4;14190:2;14179:9;14175:18;14167:26;;14239:9;14233:4;14229:20;14225:1;14214:9;14210:17;14203:47;14267:86;14348:4;14339:6;14331;14267:86;:::i;:::-;14259:94;;14031:329;;;;;:::o;14366:90::-;14400:7;14443:5;14436:13;14429:21;14418:32;;14366:90;;;:::o;14462:116::-;14532:21;14547:5;14532:21;:::i;:::-;14525:5;14522:32;14512:60;;14568:1;14565;14558:12;14512:60;14462:116;:::o;14584:137::-;14638:5;14669:6;14663:13;14654:22;;14685:30;14709:5;14685:30;:::i;:::-;14584:137;;;;:::o;14727:345::-;14794:6;14843:2;14831:9;14822:7;14818:23;14814:32;14811:119;;;14849:79;;:::i;:::-;14811:119;14969:1;14994:61;15047:7;15038:6;15027:9;15023:22;14994:61;:::i;:::-;14984:71;;14940:125;14727:345;;;;:::o;15078:98::-;15129:6;15163:5;15157:12;15147:22;;15078:98;;;:::o;15182:158::-;15255:11;15289:6;15284:3;15277:19;15329:4;15324:3;15320:14;15305:29;;15182:158;;;;:::o;15346:139::-;15435:6;15430:3;15425;15419:23;15476:1;15467:6;15462:3;15458:16;15451:27;15346:139;;;:::o;15491:353::-;15567:3;15595:38;15627:5;15595:38;:::i;:::-;15649:60;15702:6;15697:3;15649:60;:::i;:::-;15642:67;;15718:65;15776:6;15771:3;15764:4;15757:5;15753:16;15718:65;:::i;:::-;15808:29;15830:6;15808:29;:::i;:::-;15803:3;15799:39;15792:46;;15571:273;15491:353;;;;:::o;15920:618::-;16051:3;16087:4;16082:3;16078:14;16176:4;16169:5;16165:16;16159:23;16195:63;16252:4;16247:3;16243:14;16229:12;16195:63;:::i;:::-;16102:166;16350:4;16343:5;16339:16;16333:23;16403:3;16397:4;16393:14;16386:4;16381:3;16377:14;16370:38;16429:71;16495:4;16481:12;16429:71;:::i;:::-;16421:79;;16278:233;16528:4;16521:11;;16056:482;15920:618;;;;:::o;16544:397::-;16699:4;16737:2;16726:9;16722:18;16714:26;;16786:9;16780:4;16776:20;16772:1;16761:9;16757:17;16750:47;16814:120;16929:4;16920:6;16814:120;:::i;:::-;16806:128;;16544:397;;;;:::o;16947:373::-;17033:3;17061:38;17093:5;17061:38;:::i;:::-;17115:70;17178:6;17173:3;17115:70;:::i;:::-;17108:77;;17194:65;17252:6;17247:3;17240:4;17233:5;17229:16;17194:65;:::i;:::-;17284:29;17306:6;17284:29;:::i;:::-;17279:3;17275:39;17268:46;;17037:283;16947:373;;;;:::o;17326:309::-;17437:4;17475:2;17464:9;17460:18;17452:26;;17524:9;17518:4;17514:20;17510:1;17499:9;17495:17;17488:47;17552:76;17623:4;17614:6;17552:76;:::i;:::-;17544:84;;17326:309;;;;:::o;17641:439::-;17790:4;17828:2;17817:9;17813:18;17805:26;;17841:71;17909:1;17898:9;17894:17;17885:6;17841:71;:::i;:::-;17959:9;17953:4;17949:20;17944:2;17933:9;17929:18;17922:48;17987:86;18068:4;18059:6;18051;17987:86;:::i;:::-;17979:94;;17641:439;;;;;;:::o;18086:117::-;18195:1;18192;18185:12;18209:180;18257:77;18254:1;18247:88;18354:4;18351:1;18344:15;18378:4;18375:1;18368:15;18395:281;18478:27;18500:4;18478:27;:::i;:::-;18470:6;18466:40;18608:6;18596:10;18593:22;18572:18;18560:10;18557:34;18554:62;18551:88;;;18619:18;;:::i;:::-;18551:88;18659:10;18655:2;18648:22;18438:238;18395:281;;:::o;18682:129::-;18716:6;18743:20;;:::i;:::-;18733:30;;18772:33;18800:4;18792:6;18772:33;:::i;:::-;18682:129;;;:::o;18817:117::-;18926:1;18923;18916:12;18940:104;18985:7;19014:24;19032:5;19014:24;:::i;:::-;19003:35;;18940:104;;;:::o;19050:120::-;19103:7;19132:32;19158:5;19132:32;:::i;:::-;19121:43;;19050:120;;;:::o;19176:154::-;19265:40;19299:5;19265:40;:::i;:::-;19258:5;19255:51;19245:79;;19320:1;19317;19310:12;19245:79;19176:154;:::o;19336:175::-;19409:5;19440:6;19434:13;19425:22;;19456:49;19499:5;19456:49;:::i;:::-;19336:175;;;;:::o;19517:143::-;19574:5;19605:6;19599:13;19590:22;;19621:33;19648:5;19621:33;:::i;:::-;19517:143;;;;:::o;19666:117::-;19775:1;19772;19765:12;19789:307;19850:4;19940:18;19932:6;19929:30;19926:56;;;19962:18;;:::i;:::-;19926:56;20000:29;20022:6;20000:29;:::i;:::-;19992:37;;20084:4;20078;20074:15;20066:23;;19789:307;;;:::o;20102:432::-;20190:5;20215:65;20231:48;20272:6;20231:48;:::i;:::-;20215:65;:::i;:::-;20206:74;;20303:6;20296:5;20289:21;20341:4;20334:5;20330:16;20379:3;20370:6;20365:3;20361:16;20358:25;20355:112;;;20386:79;;:::i;:::-;20355:112;20476:52;20521:6;20516:3;20511;20476:52;:::i;:::-;20196:338;20102:432;;;;;:::o;20553:353::-;20619:5;20668:3;20661:4;20653:6;20649:17;20645:27;20635:122;;20676:79;;:::i;:::-;20635:122;20786:6;20780:13;20811:89;20896:3;20888:6;20881:4;20873:6;20869:17;20811:89;:::i;:::-;20802:98;;20625:281;20553:353;;;;:::o;20942:950::-;21027:5;21071:4;21059:9;21054:3;21050:19;21046:30;21043:117;;;21079:79;;:::i;:::-;21043:117;21178:21;21194:4;21178:21;:::i;:::-;21169:30;;21260:1;21300:57;21353:3;21344:6;21333:9;21329:22;21300:57;:::i;:::-;21293:4;21286:5;21282:16;21275:83;21209:160;21432:2;21473:60;21529:3;21520:6;21509:9;21505:22;21473:60;:::i;:::-;21466:4;21459:5;21455:16;21448:86;21379:166;21631:2;21620:9;21616:18;21610:25;21662:18;21654:6;21651:30;21648:117;;;21684:79;;:::i;:::-;21648:117;21804:69;21869:3;21860:6;21849:9;21845:22;21804:69;:::i;:::-;21797:4;21790:5;21786:16;21779:95;21555:330;20942:950;;;;:::o;21898:336::-;22000:4;22090:18;22082:6;22079:30;22076:56;;;22112:18;;:::i;:::-;22076:56;22162:4;22154:6;22150:17;22142:25;;22222:4;22216;22212:15;22204:23;;21898:336;;;:::o;22272:1005::-;22404:5;22429:106;22445:89;22527:6;22445:89;:::i;:::-;22429:106;:::i;:::-;22420:115;;22555:5;22584:6;22577:5;22570:21;22618:4;22611:5;22607:16;22600:23;;22671:4;22663:6;22659:17;22651:6;22647:30;22700:3;22692:6;22689:15;22686:122;;;22719:79;;:::i;:::-;22686:122;22834:6;22817:454;22851:6;22846:3;22843:15;22817:454;;;22933:3;22927:10;22969:18;22956:11;22953:35;22950:122;;;22991:79;;:::i;:::-;22950:122;23115:11;23107:6;23103:24;23153:73;23222:3;23210:10;23153:73;:::i;:::-;23148:3;23141:86;23256:4;23251:3;23247:14;23240:21;;22893:378;;22877:4;22872:3;22868:14;22861:21;;22817:454;;;22821:21;22410:867;;22272:1005;;;;;:::o;23315:435::-;23422:5;23471:3;23464:4;23456:6;23452:17;23448:27;23438:122;;23479:79;;:::i;:::-;23438:122;23589:6;23583:13;23614:130;23740:3;23732:6;23725:4;23717:6;23713:17;23614:130;:::i;:::-;23605:139;;23428:322;23315:435;;;;:::o;23756:120::-;23828:23;23845:5;23828:23;:::i;:::-;23821:5;23818:34;23808:62;;23866:1;23863;23856:12;23808:62;23756:120;:::o;23882:141::-;23938:5;23969:6;23963:13;23954:22;;23985:32;24011:5;23985:32;:::i;:::-;23882:141;;;;:::o;24029:143::-;24086:5;24117:6;24111:13;24102:22;;24133:33;24160:5;24133:33;:::i;:::-;24029:143;;;;:::o;24214:2624::-;24304:5;24348:6;24336:9;24331:3;24327:19;24323:32;24320:119;;;24358:79;;:::i;:::-;24320:119;24457:23;24473:6;24457:23;:::i;:::-;24448:32;;24541:1;24581:76;24653:3;24644:6;24633:9;24629:22;24581:76;:::i;:::-;24574:4;24567:5;24563:16;24556:102;24490:179;24751:2;24740:9;24736:18;24730:25;24782:18;24774:6;24771:30;24768:117;;;24804:79;;:::i;:::-;24768:117;24924:85;25005:3;24996:6;24985:9;24981:22;24924:85;:::i;:::-;24917:4;24910:5;24906:16;24899:111;24679:342;25106:2;25095:9;25091:18;25085:25;25137:18;25129:6;25126:30;25123:117;;;25159:79;;:::i;:::-;25123:117;25279:85;25360:3;25351:6;25340:9;25336:22;25279:85;:::i;:::-;25272:4;25265:5;25261:16;25254:111;25031:345;25461:2;25450:9;25446:18;25440:25;25492:18;25484:6;25481:30;25478:117;;;25514:79;;:::i;:::-;25478:117;25634:85;25715:3;25706:6;25695:9;25691:22;25634:85;:::i;:::-;25627:4;25620:5;25616:16;25609:111;25386:345;25817:3;25806:9;25802:19;25796:26;25849:18;25841:6;25838:30;25835:117;;;25871:79;;:::i;:::-;25835:117;25991:110;26097:3;26088:6;26077:9;26073:22;25991:110;:::i;:::-;25984:4;25977:5;25973:16;25966:136;25741:372;26179:3;26221:59;26276:3;26267:6;26256:9;26252:22;26221:59;:::i;:::-;26214:4;26207:5;26203:16;26196:85;26123:169;26358:3;26400:59;26455:3;26446:6;26435:9;26431:22;26400:59;:::i;:::-;26393:4;26386:5;26382:16;26375:85;26302:169;26541:3;26583:60;26639:3;26630:6;26619:9;26615:22;26583:60;:::i;:::-;26576:4;26569:5;26565:16;26558:86;26481:174;26715:3;26759:60;26815:3;26806:6;26795:9;26791:22;26759:60;:::i;:::-;26750:6;26743:5;26739:18;26732:88;26665:166;24214:2624;;;;:::o;26844:564::-;26944:6;26993:2;26981:9;26972:7;26968:23;26964:32;26961:119;;;26999:79;;:::i;:::-;26961:119;27140:1;27129:9;27125:17;27119:24;27170:18;27162:6;27159:30;27156:117;;;27192:79;;:::i;:::-;27156:117;27297:94;27383:7;27374:6;27363:9;27359:22;27297:94;:::i;:::-;27287:104;;27090:311;26844:564;;;;:::o;27414:180::-;27462:77;27459:1;27452:88;27559:4;27556:1;27549:15;27583:4;27580:1;27573:15;27600:205;27639:3;27658:19;27675:1;27658:19;:::i;:::-;27653:24;;27691:19;27708:1;27691:19;:::i;:::-;27686:24;;27733:1;27730;27726:9;27719:16;;27756:18;27751:3;27748:27;27745:53;;;27778:18;;:::i;:::-;27745:53;27600:205;;;;:::o;27811:149::-;27847:7;27887:66;27880:5;27876:78;27865:89;;27811:149;;;:::o;27966:115::-;28051:23;28068:5;28051:23;:::i;:::-;28046:3;28039:36;27966:115;;:::o;28087:218::-;28178:4;28216:2;28205:9;28201:18;28193:26;;28229:69;28295:1;28284:9;28280:17;28271:6;28229:69;:::i;:::-;28087:218;;;;:::o;28311:410::-;28351:7;28374:20;28392:1;28374:20;:::i;:::-;28369:25;;28408:20;28426:1;28408:20;:::i;:::-;28403:25;;28463:1;28460;28456:9;28485:30;28503:11;28485:30;:::i;:::-;28474:41;;28664:1;28655:7;28651:15;28648:1;28645:22;28625:1;28618:9;28598:83;28575:139;;28694:18;;:::i;:::-;28575:139;28359:362;28311:410;;;;:::o;28727:180::-;28775:77;28772:1;28765:88;28872:4;28869:1;28862:15;28896:4;28893:1;28886:15;28913:185;28953:1;28970:20;28988:1;28970:20;:::i;:::-;28965:25;;29004:20;29022:1;29004:20;:::i;:::-;28999:25;;29043:1;29033:35;;29048:18;;:::i;:::-;29033:35;29090:1;29087;29083:9;29078:14;;28913:185;;;;:::o;29104:194::-;29144:4;29164:20;29182:1;29164:20;:::i;:::-;29159:25;;29198:20;29216:1;29198:20;:::i;:::-;29193:25;;29242:1;29239;29235:9;29227:17;;29266:1;29260:4;29257:11;29254:37;;;29271:18;;:::i;:::-;29254:37;29104:194;;;;:::o;29304:328::-;29423:4;29461:2;29450:9;29446:18;29438:26;;29474:69;29540:1;29529:9;29525:17;29516:6;29474:69;:::i;:::-;29553:72;29621:2;29610:9;29606:18;29597:6;29553:72;:::i;:::-;29304:328;;;;;:::o;29638:522::-;29717:6;29766:2;29754:9;29745:7;29741:23;29737:32;29734:119;;;29772:79;;:::i;:::-;29734:119;29913:1;29902:9;29898:17;29892:24;29943:18;29935:6;29932:30;29929:117;;;29965:79;;:::i;:::-;29929:117;30070:73;30135:7;30126:6;30115:9;30111:22;30070:73;:::i;:::-;30060:83;;29863:290;29638:522;;;;:::o;30166:180::-;30214:77;30211:1;30204:88;30311:4;30308:1;30301:15;30335:4;30332:1;30325:15"},"methodIdentifiers":{"FEE_DENOMINATOR()":"d73792a9","cancelOwnershipHandover()":"54d1f13d","claimFee()":"99d32fc4","claimIncentive(uint256,uint256,address,bytes)":"8fe4f523","completeOwnershipHandover(address)":"f04e283e","createBoost(bytes)":"e21ff731","getBoost(uint256)":"13c8e2de","getBoostCount()":"5edb9eb0","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","protocolFee()":"b0e21e8a","protocolFeeReceiver()":"39a51be5","referralFee()":"84ae2bc6","registry()":"7b103999","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setClaimFee(uint256)":"2e75ab50","setProtocolFeeReceiver(address)":"46877b1a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract BoostRegistry\",\"name\":\"registry_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"protocolFeeReceiver_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"expectedInterface\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"InvalidInstance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FEE_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"boostId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"incentiveId_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claimIncentive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"createBoost\",\"outputs\":[{\"components\":[{\"internalType\":\"contract Action\",\"name\":\"action\",\"type\":\"address\"},{\"internalType\":\"contract Validator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"contract AllowList\",\"name\":\"allowList\",\"type\":\"address\"},{\"internalType\":\"contract Budget\",\"name\":\"budget\",\"type\":\"address\"},{\"internalType\":\"contract Incentive[]\",\"name\":\"incentives\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralFee\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxParticipants\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"struct BoostLib.Boost\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getBoost\",\"outputs\":[{\"components\":[{\"internalType\":\"contract Action\",\"name\":\"action\",\"type\":\"address\"},{\"internalType\":\"contract Validator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"contract AllowList\",\"name\":\"allowList\",\"type\":\"address\"},{\"internalType\":\"contract Budget\",\"name\":\"budget\",\"type\":\"address\"},{\"internalType\":\"contract Incentive[]\",\"name\":\"incentives\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralFee\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxParticipants\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"struct BoostLib.Boost\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBoostCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"referralFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract BoostRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimFee_\",\"type\":\"uint256\"}],\"name\":\"setClaimFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protocolFeeReceiver_\",\"type\":\"address\"}],\"name\":\"setProtocolFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claimIncentive(uint256,uint256,address,bytes)\":{\"params\":{\"boostId_\":\"The ID of the Boost\",\"data_\":\"The data for the claim\",\"incentiveId_\":\"The ID of the Incentive\",\"referrer_\":\"The address of the referrer (if any)\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"createBoost(bytes)\":{\"details\":\"The data is expected to: - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol) - properly decode to the following types (in order): - `Budget` to be used for the Boost - `Target` for the action - `Target` for the validator which is expected to be one of the following: - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\\\"SignerValidator\\\")`), along with the parameters for its initializer; - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size); - The zero address along with no parameter data if validation is implemented by the action; - `Target` for the allowList - `Target[]` for the incentives - `uint256` for the protocolFee (added to the base protocol fee) - `uint256` for the referralFee (added to the base referral fee) - `uint256` for the maxParticipants - `address` for the owner of the Boost\",\"params\":{\"data_\":\"The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\"}},\"getBoost(uint256)\":{\"params\":{\"index\":\"The index of the Boost\"},\"returns\":{\"_0\":\"The Boost at the specified index\"}},\"getBoostCount()\":{\"returns\":{\"_0\":\"The number of Boosts\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setClaimFee(uint256)\":{\"details\":\"This function is only callable by the owner\",\"params\":{\"claimFee_\":\"The new claim fee (in wei)\"}},\"setProtocolFeeReceiver(address)\":{\"details\":\"This function is only callable by the owner\",\"params\":{\"protocolFeeReceiver_\":\"The new protocol fee receiver address\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Core\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInstance(bytes4,address)\":[{\"notice\":\"Thrown when a non-conforming instance for a given type is encountered\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"FEE_DENOMINATOR()\":{\"notice\":\"The fee denominator (basis points, i.e. 10000 == 100%)\"},\"claimFee()\":{\"notice\":\"The claim fee (in wei)\"},\"claimIncentive(uint256,uint256,address,bytes)\":{\"notice\":\"Claim an incentive for a Boost\"},\"constructor\":{\"notice\":\"Constructor to initialize the owner\"},\"createBoost(bytes)\":{\"notice\":\"Create a new Boost\"},\"getBoost(uint256)\":{\"notice\":\"Get a Boost by index\"},\"getBoostCount()\":{\"notice\":\"Get the number of Boosts\"},\"protocolFee()\":{\"notice\":\"The base protocol fee (in bps)\"},\"protocolFeeReceiver()\":{\"notice\":\"The protocol fee receiver\"},\"referralFee()\":{\"notice\":\"The base referral fee (in bps)\"},\"registry()\":{\"notice\":\"The BoostRegistry contract\"},\"setClaimFee(uint256)\":{\"notice\":\"Set the claim fee\"},\"setProtocolFeeReceiver(address)\":{\"notice\":\"Set the protocol fee receiver address\"}},\"notice\":\"The core contract for the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BoostCore.sol\":\"BoostCore\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/BoostCore.sol\":{\"keccak256\":\"0x53488a68a46eb54d183a480d19ecdd2eb9157d1e61b624619b7c9661217a7eb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d4d866f239b0c612665e236db5d20fbf31d715bedabae5491c983347b6707e31\",\"dweb:/ipfs/QmYVZwma5mPP3aga4oooK3ky1nxwzTqiMbV6ShUhL5rH7i\"]},\"contracts/BoostRegistry.sol\":{\"keccak256\":\"0xc9f28f67a2b9d1e8cfe76981011908b38c63538ee0a27405c58f2e337609d1ff\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53859966207b2ba00858ef705409506458281e37dfeaf7d887f7d9ebe37e08c6\",\"dweb:/ipfs/QmRoAmJnvgG3J8UQqRGEdNdBc1fbWfELqaDemEUx3roPCS\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/BoostRegistry.sol":{"BoostRegistry":{"abi":[{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"name":"AlreadyRegistered","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"NotCloneable","type":"error"},{"inputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"identifier","type":"bytes32"},{"indexed":false,"internalType":"address","name":"baseImplementation","type":"address"},{"indexed":false,"internalType":"contract Cloneable","name":"deployedInstance","type":"address"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"identifier","type":"bytes32"},{"indexed":false,"internalType":"address","name":"implementation","type":"address"}],"name":"Registered","type":"event"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"address","name":"base_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"deployClone","outputs":[{"internalType":"contract Cloneable","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"identifier_","type":"bytes32"}],"name":"getBaseImplementation","outputs":[{"internalType":"contract Cloneable","name":"implementation","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"identifier_","type":"bytes32"}],"name":"getClone","outputs":[{"components":[{"internalType":"enum BoostRegistry.RegistryType","name":"baseType","type":"uint8"},{"internalType":"contract Cloneable","name":"instance","type":"address"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct BoostRegistry.Clone","name":"clone","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"address","name":"base_","type":"address"},{"internalType":"address","name":"deployer_","type":"address"},{"internalType":"string","name":"name_","type":"string"}],"name":"getCloneIdentifier","outputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"deployer_","type":"address"}],"name":"getClones","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"string","name":"name_","type":"string"}],"name":"getIdentifier","outputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"address","name":"implementation_","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50611b4e8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f42606236000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517fd3dd30120000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea264697066735822122015a5554f9dc3df658e598ffccd93a6cb416716d42755b52f24475168ea0d9fbb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4E DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xACC83FC8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xACC83FC8 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0xD12DD481 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1668792 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xFD97064B EQ PUSH2 0x1C6 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x3AAF1626 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x792AA01C EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x83F38859 EQ PUSH2 0x11A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB1 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCF SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x10A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x471 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0x11D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x504 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15F SWAP2 SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x171 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x194 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH2 0x5EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH2 0x818 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x146E JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x376 SWAP1 PUSH2 0x153E 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 0x3A2 SWAP1 PUSH2 0x153E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x46C JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4E4 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5A7 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x5E3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x15EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x648 SWAP2 SWAP1 PUSH2 0x1638 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x687 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH2 0x6C8 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD3DD301200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D4 DUP7 DUP7 DUP7 PUSH2 0x818 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x777 JUMPI DUP6 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76E SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x7D9 JUMPI PUSH2 0x7D8 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x660D31DF25C96B8A337FCF12A56B7363E5A997639DB853D5DBAEC7C01F31BD80 DUP6 PUSH1 0x40 MLOAD PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x84B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x830 SWAP3 SWAP2 SWAP1 PUSH2 0x1704 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x873 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH2 0x91B DUP8 DUP8 DUP8 DUP8 CALLER PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x89B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC4E SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x92B DUP9 DUP9 CALLER DUP10 DUP10 PUSH2 0x5AC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9D2 JUMPI DUP8 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C9 SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA51 JUMPI PUSH2 0xA50 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xB0E JUMPI PUSH2 0xB0D PUSH2 0xECA JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xBB4 SWAP2 SWAP1 PUSH2 0x1965 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP9 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x2348FCDB9847B17A183E53AA32C0C5C76AFDEF8FCB14BB51F216C6611701AB1A DUP10 DUP6 PUSH1 0x40 MLOAD PUSH2 0xBFD SWAP3 SWAP2 SWAP1 PUSH2 0x1A34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC30 SWAP3 SWAP2 SWAP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC78 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCE7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB3 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCF3 PUSH0 DUP5 DUP5 PUSH2 0xCFB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP3 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE DUP2 PUSH1 0x35 PUSH1 0xC DUP7 CREATE2 SWAP1 POP DUP1 PUSH2 0xD43 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6C JUMPI PUSH2 0xD6B PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDED DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP2 EQ PUSH2 0xDF7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE08 DUP2 PUSH2 0xDE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE23 JUMPI PUSH2 0xE22 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE30 DUP5 DUP3 DUP6 ADD PUSH2 0xDFA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE66 PUSH0 DUP4 ADD DUP5 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE7E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP2 EQ PUSH2 0xE88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE99 DUP2 PUSH2 0xE75 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEB4 JUMPI PUSH2 0xEB3 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEC1 DUP5 DUP3 DUP6 ADD PUSH2 0xE8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xECA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0xF18 DUP3 PUSH2 0xEF7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF27 DUP3 PUSH2 0xF0B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF37 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF7F PUSH2 0xF7A PUSH2 0xF75 DUP5 PUSH2 0xF3D JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF90 DUP3 PUSH2 0xF65 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFA1 DUP3 PUSH2 0xF86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB1 DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFC1 DUP3 PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD1 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1019 DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x1023 DUP2 DUP6 PUSH2 0xFE1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1033 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x103C DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x105C PUSH0 DUP7 ADD DUP3 PUSH2 0xF2E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x106F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xFA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1082 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xFC8 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x109A DUP3 DUP3 PUSH2 0x100F JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10BF DUP2 DUP5 PUSH2 0x1047 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10D0 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10EB DUP2 PUSH2 0x10C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1106 JUMPI PUSH2 0x1105 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1113 DUP5 DUP3 DUP6 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x115F DUP4 DUP4 PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1126 JUMP JUMPDEST SWAP4 POP PUSH2 0x1196 DUP4 PUSH2 0x1136 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11C6 JUMPI DUP2 MLOAD PUSH2 0x11AD DUP9 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP8 POP PUSH2 0x11B8 DUP4 PUSH2 0x116B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1199 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11EB DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11FC DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1215 PUSH0 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1238 DUP2 PUSH2 0x121B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x125F JUMPI PUSH2 0x125E PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH2 0x127B PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH2 0x1297 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B7 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12C5 DUP9 DUP3 DUP10 ADD PUSH2 0x122A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x12D6 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x12E7 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1308 JUMPI PUSH2 0x1307 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1314 DUP9 DUP3 DUP10 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x132C DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1345 PUSH0 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1363 JUMPI PUSH2 0x1362 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1370 DUP8 DUP3 DUP9 ADD PUSH2 0x122A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1391 JUMPI PUSH2 0x1390 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x139D DUP8 DUP3 DUP9 ADD PUSH2 0x124A JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x13B0 DUP8 DUP3 DUP9 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D2 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13E0 DUP7 DUP3 DUP8 ADD PUSH2 0x122A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x140D DUP7 DUP3 DUP8 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x142E JUMPI PUSH2 0x142D PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144A PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1466 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1487 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1495 DUP10 DUP3 DUP11 ADD PUSH2 0x122A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x14A6 DUP10 DUP3 DUP11 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP10 DUP3 DUP11 ADD PUSH2 0x124A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH2 0x14F5 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1502 DUP10 DUP3 DUP11 ADD PUSH2 0x1419 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1555 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1568 JUMPI PUSH2 0x1567 PUSH2 0x1511 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1584 DUP3 PUSH2 0x156E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1595 DUP3 PUSH2 0x157A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15AD PUSH2 0x15A8 DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x158B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D6 DUP4 DUP6 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x15E3 DUP4 DUP6 DUP5 PUSH2 0x15BD JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15FA DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x160A DUP3 DUP7 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x161B DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x164B PUSH0 DUP4 ADD DUP5 PUSH2 0x1629 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165A DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP2 EQ PUSH2 0x1664 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1675 DUP2 PUSH2 0x1651 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1690 JUMPI PUSH2 0x168F PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169D DUP5 DUP3 DUP6 ADD PUSH2 0x1667 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16AF DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C8 PUSH0 DUP4 ADD DUP5 PUSH2 0x16A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F0 PUSH0 DUP4 ADD DUP6 PUSH2 0x16CE JUMP JUMPDEST PUSH2 0x16FD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1710 DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 DUP3 PUSH2 0x171C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x174A PUSH2 0x1745 DUP3 PUSH2 0xF1D JUMP JUMPDEST PUSH2 0x1728 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x175B DUP3 DUP9 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x176B DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x177C DUP3 DUP6 DUP8 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP PUSH2 0x1788 DUP3 DUP5 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1824 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x17E9 JUMP JUMPDEST PUSH2 0x182E DUP7 DUP4 PUSH2 0x17E9 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1869 PUSH2 0x1864 PUSH2 0x185F DUP5 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x1846 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1882 DUP4 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x1896 PUSH2 0x188E DUP3 PUSH2 0x1870 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x17F5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x18AA PUSH2 0x189E JUMP JUMPDEST PUSH2 0x18B5 DUP2 DUP5 DUP5 PUSH2 0x1879 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18D8 JUMPI PUSH2 0x18CD PUSH0 DUP3 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x18BB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x18EE DUP2 PUSH2 0x17C8 JUMP JUMPDEST PUSH2 0x18F7 DUP5 PUSH2 0x17DA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1906 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x191A PUSH2 0x1912 DUP6 PUSH2 0x17DA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x18BA JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x193D PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1922 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1955 DUP4 DUP4 PUSH2 0x192E JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x196E DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1987 JUMPI PUSH2 0x1986 PUSH2 0x179B JUMP JUMPDEST JUMPDEST PUSH2 0x1991 DUP3 SLOAD PUSH2 0x153E JUMP JUMPDEST PUSH2 0x199C DUP3 DUP3 DUP6 PUSH2 0x18DC JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19CD JUMPI PUSH0 DUP5 ISZERO PUSH2 0x19BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x19C5 DUP6 DUP3 PUSH2 0x194A JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1A2C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x19DB DUP7 PUSH2 0x17C8 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A02 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 0x19DD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1A1F JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1A1B PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x192E 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 PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A47 PUSH0 DUP4 ADD DUP6 PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x1A54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A70 DUP3 PUSH2 0xE6C JUMP JUMPDEST PUSH2 0x1A5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A86 DUP3 DUP6 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x1A96 DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ACA DUP3 PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0x1AD4 DUP2 DUP6 PUSH2 0x1AB0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1AE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x1AED DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B10 DUP2 DUP5 PUSH2 0x1AC0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO 0xA5 SSTORE 0x4F SWAP14 0xC3 0xDF PUSH6 0x8E598FFCCD93 0xA6 0xCB COINBASE PUSH8 0x16D42755B52F2447 MLOAD PUSH9 0xEA0D9FBB64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"682:7550:30:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_getIdentifier_12679":{"entryPoint":3100,"id":12679,"parameterSlots":2,"returnSlots":1},"@cloneAndInitialize_17651":{"entryPoint":3150,"id":17651,"parameterSlots":3,"returnSlots":1},"@cloneDeterministic_9296":{"entryPoint":3303,"id":9296,"parameterSlots":2,"returnSlots":1},"@cloneDeterministic_9310":{"entryPoint":3323,"id":9310,"parameterSlots":3,"returnSlots":1},"@deployClone_12534":{"entryPoint":2132,"id":12534,"parameterSlots":6,"returnSlots":1},"@getBaseImplementation_12564":{"entryPoint":1284,"id":12564,"parameterSlots":1,"returnSlots":1},"@getCloneIdentifier_12637":{"entryPoint":1452,"id":12637,"parameterSlots":5,"returnSlots":1},"@getClone_12595":{"entryPoint":607,"id":12595,"parameterSlots":1,"returnSlots":1},"@getClones_12609":{"entryPoint":1137,"id":12609,"parameterSlots":1,"returnSlots":1},"@getIdentifier_12659":{"entryPoint":2072,"id":12659,"parameterSlots":3,"returnSlots":1},"@register_12441":{"entryPoint":1518,"id":12441,"parameterSlots":4,"returnSlots":0},"@supportsInterface_2844":{"entryPoint":502,"id":2844,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":5735,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":5145,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_enum$_RegistryType_$12294":{"entryPoint":4650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_calldata_ptr":{"entryPoint":4682,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4337,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5755,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":3743,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3598,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_addresst_string_calldata_ptr":{"entryPoint":4767,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_string_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":5230,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptr":{"entryPoint":5052,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptrt_address":{"entryPoint":4939,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32":{"entryPoint":4436,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":4040,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5798,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":5532,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":4471,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3652,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32":{"entryPoint":4421,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":4899,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":6756,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":5673,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6848,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Cloneable_$17720_to_t_address":{"entryPoint":4008,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack":{"entryPoint":4595,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8":{"entryPoint":3886,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack":{"entryPoint":5838,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack":{"entryPoint":5945,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5579,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr":{"entryPoint":4111,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack":{"entryPoint":4167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5615,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":5968,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":6779,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5892,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5813,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_contract$_Cloneable_$17720__to_t_address_t_address__fromStack_reversed":{"entryPoint":6708,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":4563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":4914,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":5688,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6904,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Cloneable_$17720__to_t_address__fromStack_reversed":{"entryPoint":4610,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed":{"entryPoint":5853,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_Clone_$12306_memory_ptr__to_t_struct$_Clone_$12306_memory_ptr__fromStack_reversed":{"entryPoint":4263,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4406,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":6088,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4380,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":6822,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":4055,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4459,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":4390,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":6832,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr":{"entryPoint":4065,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5555,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":6364,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":4023,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3641,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":3692,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3513,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_RegistryType_$12294":{"entryPoint":3851,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3901,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6214,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":6330,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_Cloneable_$17720_to_t_address":{"entryPoint":3991,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_RegistryType_$12294_to_t_uint8":{"entryPoint":3869,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3974,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":3941,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":6223,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":6501,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5565,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4081,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":6106,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":5438,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":6474,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":3932,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":5515,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_bytes32":{"entryPoint":6747,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":5498,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint8":{"entryPoint":5928,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":6446,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x21":{"entryPoint":3786,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":5393,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6043,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":6256,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":4674,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4670,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":4678,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3509,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3505,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4095,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_248":{"entryPoint":5916,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":5486,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":6121,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":6434,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":6306,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":6133,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":6265,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_RegistryType_$12294":{"entryPoint":3831,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4295,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":5713,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3701,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3556,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_RegistryType_$12294":{"entryPoint":4635,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":6302,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:27467:53","nodeType":"YulBlock","src":"0:27467:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1644:79:53","nodeType":"YulBlock","src":"1644:79:53","statements":[{"body":{"nativeSrc":"1701:16:53","nodeType":"YulBlock","src":"1701:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1710:1:53","nodeType":"YulLiteral","src":"1710:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1713:1:53","nodeType":"YulLiteral","src":"1713:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1703:6:53","nodeType":"YulIdentifier","src":"1703:6:53"},"nativeSrc":"1703:12:53","nodeType":"YulFunctionCall","src":"1703:12:53"},"nativeSrc":"1703:12:53","nodeType":"YulExpressionStatement","src":"1703:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1667:5:53","nodeType":"YulIdentifier","src":"1667:5:53"},{"arguments":[{"name":"value","nativeSrc":"1692:5:53","nodeType":"YulIdentifier","src":"1692:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"1674:17:53","nodeType":"YulIdentifier","src":"1674:17:53"},"nativeSrc":"1674:24:53","nodeType":"YulFunctionCall","src":"1674:24:53"}],"functionName":{"name":"eq","nativeSrc":"1664:2:53","nodeType":"YulIdentifier","src":"1664:2:53"},"nativeSrc":"1664:35:53","nodeType":"YulFunctionCall","src":"1664:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1657:6:53","nodeType":"YulIdentifier","src":"1657:6:53"},"nativeSrc":"1657:43:53","nodeType":"YulFunctionCall","src":"1657:43:53"},"nativeSrc":"1654:63:53","nodeType":"YulIf","src":"1654:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"1601:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1637:5:53","nodeType":"YulTypedName","src":"1637:5:53","type":""}],"src":"1601:122:53"},{"body":{"nativeSrc":"1781:87:53","nodeType":"YulBlock","src":"1781:87:53","statements":[{"nativeSrc":"1791:29:53","nodeType":"YulAssignment","src":"1791:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1813:6:53","nodeType":"YulIdentifier","src":"1813:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1800:12:53","nodeType":"YulIdentifier","src":"1800:12:53"},"nativeSrc":"1800:20:53","nodeType":"YulFunctionCall","src":"1800:20:53"},"variableNames":[{"name":"value","nativeSrc":"1791:5:53","nodeType":"YulIdentifier","src":"1791:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1856:5:53","nodeType":"YulIdentifier","src":"1856:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"1829:26:53","nodeType":"YulIdentifier","src":"1829:26:53"},"nativeSrc":"1829:33:53","nodeType":"YulFunctionCall","src":"1829:33:53"},"nativeSrc":"1829:33:53","nodeType":"YulExpressionStatement","src":"1829:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"1729:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1759:6:53","nodeType":"YulTypedName","src":"1759:6:53","type":""},{"name":"end","nativeSrc":"1767:3:53","nodeType":"YulTypedName","src":"1767:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1775:5:53","nodeType":"YulTypedName","src":"1775:5:53","type":""}],"src":"1729:139:53"},{"body":{"nativeSrc":"1940:263:53","nodeType":"YulBlock","src":"1940:263:53","statements":[{"body":{"nativeSrc":"1986:83:53","nodeType":"YulBlock","src":"1986:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1988:77:53","nodeType":"YulIdentifier","src":"1988:77:53"},"nativeSrc":"1988:79:53","nodeType":"YulFunctionCall","src":"1988:79:53"},"nativeSrc":"1988:79:53","nodeType":"YulExpressionStatement","src":"1988:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1961:7:53","nodeType":"YulIdentifier","src":"1961:7:53"},{"name":"headStart","nativeSrc":"1970:9:53","nodeType":"YulIdentifier","src":"1970:9:53"}],"functionName":{"name":"sub","nativeSrc":"1957:3:53","nodeType":"YulIdentifier","src":"1957:3:53"},"nativeSrc":"1957:23:53","nodeType":"YulFunctionCall","src":"1957:23:53"},{"kind":"number","nativeSrc":"1982:2:53","nodeType":"YulLiteral","src":"1982:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1953:3:53","nodeType":"YulIdentifier","src":"1953:3:53"},"nativeSrc":"1953:32:53","nodeType":"YulFunctionCall","src":"1953:32:53"},"nativeSrc":"1950:119:53","nodeType":"YulIf","src":"1950:119:53"},{"nativeSrc":"2079:117:53","nodeType":"YulBlock","src":"2079:117:53","statements":[{"nativeSrc":"2094:15:53","nodeType":"YulVariableDeclaration","src":"2094:15:53","value":{"kind":"number","nativeSrc":"2108:1:53","nodeType":"YulLiteral","src":"2108:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2098:6:53","nodeType":"YulTypedName","src":"2098:6:53","type":""}]},{"nativeSrc":"2123:63:53","nodeType":"YulAssignment","src":"2123:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2158:9:53","nodeType":"YulIdentifier","src":"2158:9:53"},{"name":"offset","nativeSrc":"2169:6:53","nodeType":"YulIdentifier","src":"2169:6:53"}],"functionName":{"name":"add","nativeSrc":"2154:3:53","nodeType":"YulIdentifier","src":"2154:3:53"},"nativeSrc":"2154:22:53","nodeType":"YulFunctionCall","src":"2154:22:53"},{"name":"dataEnd","nativeSrc":"2178:7:53","nodeType":"YulIdentifier","src":"2178:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2133:20:53","nodeType":"YulIdentifier","src":"2133:20:53"},"nativeSrc":"2133:53:53","nodeType":"YulFunctionCall","src":"2133:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:53","nodeType":"YulIdentifier","src":"2123:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1874:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1910:9:53","nodeType":"YulTypedName","src":"1910:9:53","type":""},{"name":"dataEnd","nativeSrc":"1921:7:53","nodeType":"YulTypedName","src":"1921:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1933:6:53","nodeType":"YulTypedName","src":"1933:6:53","type":""}],"src":"1874:329:53"},{"body":{"nativeSrc":"2237:152:53","nodeType":"YulBlock","src":"2237:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2254:1:53","nodeType":"YulLiteral","src":"2254:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2257:77:53","nodeType":"YulLiteral","src":"2257:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2247:6:53","nodeType":"YulIdentifier","src":"2247:6:53"},"nativeSrc":"2247:88:53","nodeType":"YulFunctionCall","src":"2247:88:53"},"nativeSrc":"2247:88:53","nodeType":"YulExpressionStatement","src":"2247:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2351:1:53","nodeType":"YulLiteral","src":"2351:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"2354:4:53","nodeType":"YulLiteral","src":"2354:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"2344:6:53","nodeType":"YulIdentifier","src":"2344:6:53"},"nativeSrc":"2344:15:53","nodeType":"YulFunctionCall","src":"2344:15:53"},"nativeSrc":"2344:15:53","nodeType":"YulExpressionStatement","src":"2344:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2375:1:53","nodeType":"YulLiteral","src":"2375:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2378:4:53","nodeType":"YulLiteral","src":"2378:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2368:6:53","nodeType":"YulIdentifier","src":"2368:6:53"},"nativeSrc":"2368:15:53","nodeType":"YulFunctionCall","src":"2368:15:53"},"nativeSrc":"2368:15:53","nodeType":"YulExpressionStatement","src":"2368:15:53"}]},"name":"panic_error_0x21","nativeSrc":"2209:180:53","nodeType":"YulFunctionDefinition","src":"2209:180:53"},{"body":{"nativeSrc":"2456:62:53","nodeType":"YulBlock","src":"2456:62:53","statements":[{"body":{"nativeSrc":"2490:22:53","nodeType":"YulBlock","src":"2490:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"2492:16:53","nodeType":"YulIdentifier","src":"2492:16:53"},"nativeSrc":"2492:18:53","nodeType":"YulFunctionCall","src":"2492:18:53"},"nativeSrc":"2492:18:53","nodeType":"YulExpressionStatement","src":"2492:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2479:5:53","nodeType":"YulIdentifier","src":"2479:5:53"},{"kind":"number","nativeSrc":"2486:1:53","nodeType":"YulLiteral","src":"2486:1:53","type":"","value":"5"}],"functionName":{"name":"lt","nativeSrc":"2476:2:53","nodeType":"YulIdentifier","src":"2476:2:53"},"nativeSrc":"2476:12:53","nodeType":"YulFunctionCall","src":"2476:12:53"}],"functionName":{"name":"iszero","nativeSrc":"2469:6:53","nodeType":"YulIdentifier","src":"2469:6:53"},"nativeSrc":"2469:20:53","nodeType":"YulFunctionCall","src":"2469:20:53"},"nativeSrc":"2466:46:53","nodeType":"YulIf","src":"2466:46:53"}]},"name":"validator_assert_t_enum$_RegistryType_$12294","nativeSrc":"2395:123:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2449:5:53","nodeType":"YulTypedName","src":"2449:5:53","type":""}],"src":"2395:123:53"},{"body":{"nativeSrc":"2587:84:53","nodeType":"YulBlock","src":"2587:84:53","statements":[{"nativeSrc":"2597:16:53","nodeType":"YulAssignment","src":"2597:16:53","value":{"name":"value","nativeSrc":"2608:5:53","nodeType":"YulIdentifier","src":"2608:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2597:7:53","nodeType":"YulIdentifier","src":"2597:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2659:5:53","nodeType":"YulIdentifier","src":"2659:5:53"}],"functionName":{"name":"validator_assert_t_enum$_RegistryType_$12294","nativeSrc":"2614:44:53","nodeType":"YulIdentifier","src":"2614:44:53"},"nativeSrc":"2614:51:53","nodeType":"YulFunctionCall","src":"2614:51:53"},"nativeSrc":"2614:51:53","nodeType":"YulExpressionStatement","src":"2614:51:53"}]},"name":"cleanup_t_enum$_RegistryType_$12294","nativeSrc":"2524:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2569:5:53","nodeType":"YulTypedName","src":"2569:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2579:7:53","nodeType":"YulTypedName","src":"2579:7:53","type":""}],"src":"2524:147:53"},{"body":{"nativeSrc":"2753:71:53","nodeType":"YulBlock","src":"2753:71:53","statements":[{"nativeSrc":"2763:55:53","nodeType":"YulAssignment","src":"2763:55:53","value":{"arguments":[{"name":"value","nativeSrc":"2812:5:53","nodeType":"YulIdentifier","src":"2812:5:53"}],"functionName":{"name":"cleanup_t_enum$_RegistryType_$12294","nativeSrc":"2776:35:53","nodeType":"YulIdentifier","src":"2776:35:53"},"nativeSrc":"2776:42:53","nodeType":"YulFunctionCall","src":"2776:42:53"},"variableNames":[{"name":"converted","nativeSrc":"2763:9:53","nodeType":"YulIdentifier","src":"2763:9:53"}]}]},"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"2677:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2733:5:53","nodeType":"YulTypedName","src":"2733:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2743:9:53","nodeType":"YulTypedName","src":"2743:9:53","type":""}],"src":"2677:147:53"},{"body":{"nativeSrc":"2901:82:53","nodeType":"YulBlock","src":"2901:82:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2918:3:53","nodeType":"YulIdentifier","src":"2918:3:53"},{"arguments":[{"name":"value","nativeSrc":"2970:5:53","nodeType":"YulIdentifier","src":"2970:5:53"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"2923:46:53","nodeType":"YulIdentifier","src":"2923:46:53"},"nativeSrc":"2923:53:53","nodeType":"YulFunctionCall","src":"2923:53:53"}],"functionName":{"name":"mstore","nativeSrc":"2911:6:53","nodeType":"YulIdentifier","src":"2911:6:53"},"nativeSrc":"2911:66:53","nodeType":"YulFunctionCall","src":"2911:66:53"},"nativeSrc":"2911:66:53","nodeType":"YulExpressionStatement","src":"2911:66:53"}]},"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"2830:153:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2889:5:53","nodeType":"YulTypedName","src":"2889:5:53","type":""},{"name":"pos","nativeSrc":"2896:3:53","nodeType":"YulTypedName","src":"2896:3:53","type":""}],"src":"2830:153:53"},{"body":{"nativeSrc":"3034:81:53","nodeType":"YulBlock","src":"3034:81:53","statements":[{"nativeSrc":"3044:65:53","nodeType":"YulAssignment","src":"3044:65:53","value":{"arguments":[{"name":"value","nativeSrc":"3059:5:53","nodeType":"YulIdentifier","src":"3059:5:53"},{"kind":"number","nativeSrc":"3066:42:53","nodeType":"YulLiteral","src":"3066:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3055:3:53","nodeType":"YulIdentifier","src":"3055:3:53"},"nativeSrc":"3055:54:53","nodeType":"YulFunctionCall","src":"3055:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3044:7:53","nodeType":"YulIdentifier","src":"3044:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2989:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3016:5:53","nodeType":"YulTypedName","src":"3016:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3026:7:53","nodeType":"YulTypedName","src":"3026:7:53","type":""}],"src":"2989:126:53"},{"body":{"nativeSrc":"3153:28:53","nodeType":"YulBlock","src":"3153:28:53","statements":[{"nativeSrc":"3163:12:53","nodeType":"YulAssignment","src":"3163:12:53","value":{"name":"value","nativeSrc":"3170:5:53","nodeType":"YulIdentifier","src":"3170:5:53"},"variableNames":[{"name":"ret","nativeSrc":"3163:3:53","nodeType":"YulIdentifier","src":"3163:3:53"}]}]},"name":"identity","nativeSrc":"3121:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3139:5:53","nodeType":"YulTypedName","src":"3139:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"3149:3:53","nodeType":"YulTypedName","src":"3149:3:53","type":""}],"src":"3121:60:53"},{"body":{"nativeSrc":"3247:82:53","nodeType":"YulBlock","src":"3247:82:53","statements":[{"nativeSrc":"3257:66:53","nodeType":"YulAssignment","src":"3257:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3315:5:53","nodeType":"YulIdentifier","src":"3315:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3297:17:53","nodeType":"YulIdentifier","src":"3297:17:53"},"nativeSrc":"3297:24:53","nodeType":"YulFunctionCall","src":"3297:24:53"}],"functionName":{"name":"identity","nativeSrc":"3288:8:53","nodeType":"YulIdentifier","src":"3288:8:53"},"nativeSrc":"3288:34:53","nodeType":"YulFunctionCall","src":"3288:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3270:17:53","nodeType":"YulIdentifier","src":"3270:17:53"},"nativeSrc":"3270:53:53","nodeType":"YulFunctionCall","src":"3270:53:53"},"variableNames":[{"name":"converted","nativeSrc":"3257:9:53","nodeType":"YulIdentifier","src":"3257:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3187:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3227:5:53","nodeType":"YulTypedName","src":"3227:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3237:9:53","nodeType":"YulTypedName","src":"3237:9:53","type":""}],"src":"3187:142:53"},{"body":{"nativeSrc":"3395:66:53","nodeType":"YulBlock","src":"3395:66:53","statements":[{"nativeSrc":"3405:50:53","nodeType":"YulAssignment","src":"3405:50:53","value":{"arguments":[{"name":"value","nativeSrc":"3449:5:53","nodeType":"YulIdentifier","src":"3449:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3418:30:53","nodeType":"YulIdentifier","src":"3418:30:53"},"nativeSrc":"3418:37:53","nodeType":"YulFunctionCall","src":"3418:37:53"},"variableNames":[{"name":"converted","nativeSrc":"3405:9:53","nodeType":"YulIdentifier","src":"3405:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"3335:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3375:5:53","nodeType":"YulTypedName","src":"3375:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3385:9:53","nodeType":"YulTypedName","src":"3385:9:53","type":""}],"src":"3335:126:53"},{"body":{"nativeSrc":"3546:66:53","nodeType":"YulBlock","src":"3546:66:53","statements":[{"nativeSrc":"3556:50:53","nodeType":"YulAssignment","src":"3556:50:53","value":{"arguments":[{"name":"value","nativeSrc":"3600:5:53","nodeType":"YulIdentifier","src":"3600:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3569:30:53","nodeType":"YulIdentifier","src":"3569:30:53"},"nativeSrc":"3569:37:53","nodeType":"YulFunctionCall","src":"3569:37:53"},"variableNames":[{"name":"converted","nativeSrc":"3556:9:53","nodeType":"YulIdentifier","src":"3556:9:53"}]}]},"name":"convert_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"3467:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3526:5:53","nodeType":"YulTypedName","src":"3526:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3536:9:53","nodeType":"YulTypedName","src":"3536:9:53","type":""}],"src":"3467:145:53"},{"body":{"nativeSrc":"3692:85:53","nodeType":"YulBlock","src":"3692:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3709:3:53","nodeType":"YulIdentifier","src":"3709:3:53"},{"arguments":[{"name":"value","nativeSrc":"3764:5:53","nodeType":"YulIdentifier","src":"3764:5:53"}],"functionName":{"name":"convert_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"3714:49:53","nodeType":"YulIdentifier","src":"3714:49:53"},"nativeSrc":"3714:56:53","nodeType":"YulFunctionCall","src":"3714:56:53"}],"functionName":{"name":"mstore","nativeSrc":"3702:6:53","nodeType":"YulIdentifier","src":"3702:6:53"},"nativeSrc":"3702:69:53","nodeType":"YulFunctionCall","src":"3702:69:53"},"nativeSrc":"3702:69:53","nodeType":"YulExpressionStatement","src":"3702:69:53"}]},"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"3618:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3680:5:53","nodeType":"YulTypedName","src":"3680:5:53","type":""},{"name":"pos","nativeSrc":"3687:3:53","nodeType":"YulTypedName","src":"3687:3:53","type":""}],"src":"3618:159:53"},{"body":{"nativeSrc":"3828:51:53","nodeType":"YulBlock","src":"3828:51:53","statements":[{"nativeSrc":"3838:35:53","nodeType":"YulAssignment","src":"3838:35:53","value":{"arguments":[{"name":"value","nativeSrc":"3867:5:53","nodeType":"YulIdentifier","src":"3867:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3849:17:53","nodeType":"YulIdentifier","src":"3849:17:53"},"nativeSrc":"3849:24:53","nodeType":"YulFunctionCall","src":"3849:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3838:7:53","nodeType":"YulIdentifier","src":"3838:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"3783:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3810:5:53","nodeType":"YulTypedName","src":"3810:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3820:7:53","nodeType":"YulTypedName","src":"3820:7:53","type":""}],"src":"3783:96:53"},{"body":{"nativeSrc":"3940:53:53","nodeType":"YulBlock","src":"3940:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3957:3:53","nodeType":"YulIdentifier","src":"3957:3:53"},{"arguments":[{"name":"value","nativeSrc":"3980:5:53","nodeType":"YulIdentifier","src":"3980:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3962:17:53","nodeType":"YulIdentifier","src":"3962:17:53"},"nativeSrc":"3962:24:53","nodeType":"YulFunctionCall","src":"3962:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3950:6:53","nodeType":"YulIdentifier","src":"3950:6:53"},"nativeSrc":"3950:37:53","nodeType":"YulFunctionCall","src":"3950:37:53"},"nativeSrc":"3950:37:53","nodeType":"YulExpressionStatement","src":"3950:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"3885:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3928:5:53","nodeType":"YulTypedName","src":"3928:5:53","type":""},{"name":"pos","nativeSrc":"3935:3:53","nodeType":"YulTypedName","src":"3935:3:53","type":""}],"src":"3885:108:53"},{"body":{"nativeSrc":"4058:40:53","nodeType":"YulBlock","src":"4058:40:53","statements":[{"nativeSrc":"4069:22:53","nodeType":"YulAssignment","src":"4069:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4085:5:53","nodeType":"YulIdentifier","src":"4085:5:53"}],"functionName":{"name":"mload","nativeSrc":"4079:5:53","nodeType":"YulIdentifier","src":"4079:5:53"},"nativeSrc":"4079:12:53","nodeType":"YulFunctionCall","src":"4079:12:53"},"variableNames":[{"name":"length","nativeSrc":"4069:6:53","nodeType":"YulIdentifier","src":"4069:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3999:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4041:5:53","nodeType":"YulTypedName","src":"4041:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4051:6:53","nodeType":"YulTypedName","src":"4051:6:53","type":""}],"src":"3999:99:53"},{"body":{"nativeSrc":"4190:73:53","nodeType":"YulBlock","src":"4190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4207:3:53","nodeType":"YulIdentifier","src":"4207:3:53"},{"name":"length","nativeSrc":"4212:6:53","nodeType":"YulIdentifier","src":"4212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4200:6:53","nodeType":"YulIdentifier","src":"4200:6:53"},"nativeSrc":"4200:19:53","nodeType":"YulFunctionCall","src":"4200:19:53"},"nativeSrc":"4200:19:53","nodeType":"YulExpressionStatement","src":"4200:19:53"},{"nativeSrc":"4228:29:53","nodeType":"YulAssignment","src":"4228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4247:3:53","nodeType":"YulIdentifier","src":"4247:3:53"},{"kind":"number","nativeSrc":"4252:4:53","nodeType":"YulLiteral","src":"4252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4243:3:53","nodeType":"YulIdentifier","src":"4243:3:53"},"nativeSrc":"4243:14:53","nodeType":"YulFunctionCall","src":"4243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4228:11:53","nodeType":"YulIdentifier","src":"4228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"4104:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4162:3:53","nodeType":"YulTypedName","src":"4162:3:53","type":""},{"name":"length","nativeSrc":"4167:6:53","nodeType":"YulTypedName","src":"4167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4178:11:53","nodeType":"YulTypedName","src":"4178:11:53","type":""}],"src":"4104:159:53"},{"body":{"nativeSrc":"4331:77:53","nodeType":"YulBlock","src":"4331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4348:3:53","nodeType":"YulIdentifier","src":"4348:3:53"},{"name":"src","nativeSrc":"4353:3:53","nodeType":"YulIdentifier","src":"4353:3:53"},{"name":"length","nativeSrc":"4358:6:53","nodeType":"YulIdentifier","src":"4358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4342:5:53","nodeType":"YulIdentifier","src":"4342:5:53"},"nativeSrc":"4342:23:53","nodeType":"YulFunctionCall","src":"4342:23:53"},"nativeSrc":"4342:23:53","nodeType":"YulExpressionStatement","src":"4342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4385:3:53","nodeType":"YulIdentifier","src":"4385:3:53"},{"name":"length","nativeSrc":"4390:6:53","nodeType":"YulIdentifier","src":"4390:6:53"}],"functionName":{"name":"add","nativeSrc":"4381:3:53","nodeType":"YulIdentifier","src":"4381:3:53"},"nativeSrc":"4381:16:53","nodeType":"YulFunctionCall","src":"4381:16:53"},{"kind":"number","nativeSrc":"4399:1:53","nodeType":"YulLiteral","src":"4399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4374:6:53","nodeType":"YulIdentifier","src":"4374:6:53"},"nativeSrc":"4374:27:53","nodeType":"YulFunctionCall","src":"4374:27:53"},"nativeSrc":"4374:27:53","nodeType":"YulExpressionStatement","src":"4374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4313:3:53","nodeType":"YulTypedName","src":"4313:3:53","type":""},{"name":"dst","nativeSrc":"4318:3:53","nodeType":"YulTypedName","src":"4318:3:53","type":""},{"name":"length","nativeSrc":"4323:6:53","nodeType":"YulTypedName","src":"4323:6:53","type":""}],"src":"4269:139:53"},{"body":{"nativeSrc":"4462:54:53","nodeType":"YulBlock","src":"4462:54:53","statements":[{"nativeSrc":"4472:38:53","nodeType":"YulAssignment","src":"4472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4490:5:53","nodeType":"YulIdentifier","src":"4490:5:53"},{"kind":"number","nativeSrc":"4497:2:53","nodeType":"YulLiteral","src":"4497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4486:3:53","nodeType":"YulIdentifier","src":"4486:3:53"},"nativeSrc":"4486:14:53","nodeType":"YulFunctionCall","src":"4486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4506:2:53","nodeType":"YulLiteral","src":"4506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4502:3:53","nodeType":"YulIdentifier","src":"4502:3:53"},"nativeSrc":"4502:7:53","nodeType":"YulFunctionCall","src":"4502:7:53"}],"functionName":{"name":"and","nativeSrc":"4482:3:53","nodeType":"YulIdentifier","src":"4482:3:53"},"nativeSrc":"4482:28:53","nodeType":"YulFunctionCall","src":"4482:28:53"},"variableNames":[{"name":"result","nativeSrc":"4472:6:53","nodeType":"YulIdentifier","src":"4472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4445:5:53","nodeType":"YulTypedName","src":"4445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4455:6:53","nodeType":"YulTypedName","src":"4455:6:53","type":""}],"src":"4414:102:53"},{"body":{"nativeSrc":"4604:275:53","nodeType":"YulBlock","src":"4604:275:53","statements":[{"nativeSrc":"4614:53:53","nodeType":"YulVariableDeclaration","src":"4614:53:53","value":{"arguments":[{"name":"value","nativeSrc":"4661:5:53","nodeType":"YulIdentifier","src":"4661:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"4628:32:53","nodeType":"YulIdentifier","src":"4628:32:53"},"nativeSrc":"4628:39:53","nodeType":"YulFunctionCall","src":"4628:39:53"},"variables":[{"name":"length","nativeSrc":"4618:6:53","nodeType":"YulTypedName","src":"4618:6:53","type":""}]},{"nativeSrc":"4676:68:53","nodeType":"YulAssignment","src":"4676:68:53","value":{"arguments":[{"name":"pos","nativeSrc":"4732:3:53","nodeType":"YulIdentifier","src":"4732:3:53"},{"name":"length","nativeSrc":"4737:6:53","nodeType":"YulIdentifier","src":"4737:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"4683:48:53","nodeType":"YulIdentifier","src":"4683:48:53"},"nativeSrc":"4683:61:53","nodeType":"YulFunctionCall","src":"4683:61:53"},"variableNames":[{"name":"pos","nativeSrc":"4676:3:53","nodeType":"YulIdentifier","src":"4676:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4792:5:53","nodeType":"YulIdentifier","src":"4792:5:53"},{"kind":"number","nativeSrc":"4799:4:53","nodeType":"YulLiteral","src":"4799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4788:3:53","nodeType":"YulIdentifier","src":"4788:3:53"},"nativeSrc":"4788:16:53","nodeType":"YulFunctionCall","src":"4788:16:53"},{"name":"pos","nativeSrc":"4806:3:53","nodeType":"YulIdentifier","src":"4806:3:53"},{"name":"length","nativeSrc":"4811:6:53","nodeType":"YulIdentifier","src":"4811:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4753:34:53","nodeType":"YulIdentifier","src":"4753:34:53"},"nativeSrc":"4753:65:53","nodeType":"YulFunctionCall","src":"4753:65:53"},"nativeSrc":"4753:65:53","nodeType":"YulExpressionStatement","src":"4753:65:53"},{"nativeSrc":"4827:46:53","nodeType":"YulAssignment","src":"4827:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4838:3:53","nodeType":"YulIdentifier","src":"4838:3:53"},{"arguments":[{"name":"length","nativeSrc":"4865:6:53","nodeType":"YulIdentifier","src":"4865:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4843:21:53","nodeType":"YulIdentifier","src":"4843:21:53"},"nativeSrc":"4843:29:53","nodeType":"YulFunctionCall","src":"4843:29:53"}],"functionName":{"name":"add","nativeSrc":"4834:3:53","nodeType":"YulIdentifier","src":"4834:3:53"},"nativeSrc":"4834:39:53","nodeType":"YulFunctionCall","src":"4834:39:53"},"variableNames":[{"name":"end","nativeSrc":"4827:3:53","nodeType":"YulIdentifier","src":"4827:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"4522:357:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4585:5:53","nodeType":"YulTypedName","src":"4585:5:53","type":""},{"name":"pos","nativeSrc":"4592:3:53","nodeType":"YulTypedName","src":"4592:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4600:3:53","nodeType":"YulTypedName","src":"4600:3:53","type":""}],"src":"4522:357:53"},{"body":{"nativeSrc":"5071:877:53","nodeType":"YulBlock","src":"5071:877:53","statements":[{"nativeSrc":"5081:26:53","nodeType":"YulVariableDeclaration","src":"5081:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"5097:3:53","nodeType":"YulIdentifier","src":"5097:3:53"},{"kind":"number","nativeSrc":"5102:4:53","nodeType":"YulLiteral","src":"5102:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5093:3:53","nodeType":"YulIdentifier","src":"5093:3:53"},"nativeSrc":"5093:14:53","nodeType":"YulFunctionCall","src":"5093:14:53"},"variables":[{"name":"tail","nativeSrc":"5085:4:53","nodeType":"YulTypedName","src":"5085:4:53","type":""}]},{"nativeSrc":"5117:184:53","nodeType":"YulBlock","src":"5117:184:53","statements":[{"nativeSrc":"5156:43:53","nodeType":"YulVariableDeclaration","src":"5156:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5186:5:53","nodeType":"YulIdentifier","src":"5186:5:53"},{"kind":"number","nativeSrc":"5193:4:53","nodeType":"YulLiteral","src":"5193:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5182:3:53","nodeType":"YulIdentifier","src":"5182:3:53"},"nativeSrc":"5182:16:53","nodeType":"YulFunctionCall","src":"5182:16:53"}],"functionName":{"name":"mload","nativeSrc":"5176:5:53","nodeType":"YulIdentifier","src":"5176:5:53"},"nativeSrc":"5176:23:53","nodeType":"YulFunctionCall","src":"5176:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5160:12:53","nodeType":"YulTypedName","src":"5160:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5262:12:53","nodeType":"YulIdentifier","src":"5262:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5280:3:53","nodeType":"YulIdentifier","src":"5280:3:53"},{"kind":"number","nativeSrc":"5285:4:53","nodeType":"YulLiteral","src":"5285:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5276:3:53","nodeType":"YulIdentifier","src":"5276:3:53"},"nativeSrc":"5276:14:53","nodeType":"YulFunctionCall","src":"5276:14:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"5212:49:53","nodeType":"YulIdentifier","src":"5212:49:53"},"nativeSrc":"5212:79:53","nodeType":"YulFunctionCall","src":"5212:79:53"},"nativeSrc":"5212:79:53","nodeType":"YulExpressionStatement","src":"5212:79:53"}]},{"nativeSrc":"5311:187:53","nodeType":"YulBlock","src":"5311:187:53","statements":[{"nativeSrc":"5350:43:53","nodeType":"YulVariableDeclaration","src":"5350:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5380:5:53","nodeType":"YulIdentifier","src":"5380:5:53"},{"kind":"number","nativeSrc":"5387:4:53","nodeType":"YulLiteral","src":"5387:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5376:3:53","nodeType":"YulIdentifier","src":"5376:3:53"},"nativeSrc":"5376:16:53","nodeType":"YulFunctionCall","src":"5376:16:53"}],"functionName":{"name":"mload","nativeSrc":"5370:5:53","nodeType":"YulIdentifier","src":"5370:5:53"},"nativeSrc":"5370:23:53","nodeType":"YulFunctionCall","src":"5370:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5354:12:53","nodeType":"YulTypedName","src":"5354:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5459:12:53","nodeType":"YulIdentifier","src":"5459:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5477:3:53","nodeType":"YulIdentifier","src":"5477:3:53"},{"kind":"number","nativeSrc":"5482:4:53","nodeType":"YulLiteral","src":"5482:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5473:3:53","nodeType":"YulIdentifier","src":"5473:3:53"},"nativeSrc":"5473:14:53","nodeType":"YulFunctionCall","src":"5473:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"5406:52:53","nodeType":"YulIdentifier","src":"5406:52:53"},"nativeSrc":"5406:82:53","nodeType":"YulFunctionCall","src":"5406:82:53"},"nativeSrc":"5406:82:53","nodeType":"YulExpressionStatement","src":"5406:82:53"}]},{"nativeSrc":"5508:168:53","nodeType":"YulBlock","src":"5508:168:53","statements":[{"nativeSrc":"5547:43:53","nodeType":"YulVariableDeclaration","src":"5547:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5577:5:53","nodeType":"YulIdentifier","src":"5577:5:53"},{"kind":"number","nativeSrc":"5584:4:53","nodeType":"YulLiteral","src":"5584:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5573:3:53","nodeType":"YulIdentifier","src":"5573:3:53"},"nativeSrc":"5573:16:53","nodeType":"YulFunctionCall","src":"5573:16:53"}],"functionName":{"name":"mload","nativeSrc":"5567:5:53","nodeType":"YulIdentifier","src":"5567:5:53"},"nativeSrc":"5567:23:53","nodeType":"YulFunctionCall","src":"5567:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5551:12:53","nodeType":"YulTypedName","src":"5551:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5637:12:53","nodeType":"YulIdentifier","src":"5637:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5655:3:53","nodeType":"YulIdentifier","src":"5655:3:53"},{"kind":"number","nativeSrc":"5660:4:53","nodeType":"YulLiteral","src":"5660:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5651:3:53","nodeType":"YulIdentifier","src":"5651:3:53"},"nativeSrc":"5651:14:53","nodeType":"YulFunctionCall","src":"5651:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"5603:33:53","nodeType":"YulIdentifier","src":"5603:33:53"},"nativeSrc":"5603:63:53","nodeType":"YulFunctionCall","src":"5603:63:53"},"nativeSrc":"5603:63:53","nodeType":"YulExpressionStatement","src":"5603:63:53"}]},{"nativeSrc":"5686:235:53","nodeType":"YulBlock","src":"5686:235:53","statements":[{"nativeSrc":"5721:43:53","nodeType":"YulVariableDeclaration","src":"5721:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5751:5:53","nodeType":"YulIdentifier","src":"5751:5:53"},{"kind":"number","nativeSrc":"5758:4:53","nodeType":"YulLiteral","src":"5758:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5747:3:53","nodeType":"YulIdentifier","src":"5747:3:53"},"nativeSrc":"5747:16:53","nodeType":"YulFunctionCall","src":"5747:16:53"}],"functionName":{"name":"mload","nativeSrc":"5741:5:53","nodeType":"YulIdentifier","src":"5741:5:53"},"nativeSrc":"5741:23:53","nodeType":"YulFunctionCall","src":"5741:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5725:12:53","nodeType":"YulTypedName","src":"5725:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5789:3:53","nodeType":"YulIdentifier","src":"5789:3:53"},{"kind":"number","nativeSrc":"5794:4:53","nodeType":"YulLiteral","src":"5794:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5785:3:53","nodeType":"YulIdentifier","src":"5785:3:53"},"nativeSrc":"5785:14:53","nodeType":"YulFunctionCall","src":"5785:14:53"},{"arguments":[{"name":"tail","nativeSrc":"5805:4:53","nodeType":"YulIdentifier","src":"5805:4:53"},{"name":"pos","nativeSrc":"5811:3:53","nodeType":"YulIdentifier","src":"5811:3:53"}],"functionName":{"name":"sub","nativeSrc":"5801:3:53","nodeType":"YulIdentifier","src":"5801:3:53"},"nativeSrc":"5801:14:53","nodeType":"YulFunctionCall","src":"5801:14:53"}],"functionName":{"name":"mstore","nativeSrc":"5778:6:53","nodeType":"YulIdentifier","src":"5778:6:53"},"nativeSrc":"5778:38:53","nodeType":"YulFunctionCall","src":"5778:38:53"},"nativeSrc":"5778:38:53","nodeType":"YulExpressionStatement","src":"5778:38:53"},{"nativeSrc":"5829:81:53","nodeType":"YulAssignment","src":"5829:81:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"5891:12:53","nodeType":"YulIdentifier","src":"5891:12:53"},{"name":"tail","nativeSrc":"5905:4:53","nodeType":"YulIdentifier","src":"5905:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"5837:53:53","nodeType":"YulIdentifier","src":"5837:53:53"},"nativeSrc":"5837:73:53","nodeType":"YulFunctionCall","src":"5837:73:53"},"variableNames":[{"name":"tail","nativeSrc":"5829:4:53","nodeType":"YulIdentifier","src":"5829:4:53"}]}]},{"nativeSrc":"5931:11:53","nodeType":"YulAssignment","src":"5931:11:53","value":{"name":"tail","nativeSrc":"5938:4:53","nodeType":"YulIdentifier","src":"5938:4:53"},"variableNames":[{"name":"end","nativeSrc":"5931:3:53","nodeType":"YulIdentifier","src":"5931:3:53"}]}]},"name":"abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack","nativeSrc":"4949:999:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5050:5:53","nodeType":"YulTypedName","src":"5050:5:53","type":""},{"name":"pos","nativeSrc":"5057:3:53","nodeType":"YulTypedName","src":"5057:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5066:3:53","nodeType":"YulTypedName","src":"5066:3:53","type":""}],"src":"4949:999:53"},{"body":{"nativeSrc":"6100:223:53","nodeType":"YulBlock","src":"6100:223:53","statements":[{"nativeSrc":"6110:26:53","nodeType":"YulAssignment","src":"6110:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6122:9:53","nodeType":"YulIdentifier","src":"6122:9:53"},{"kind":"number","nativeSrc":"6133:2:53","nodeType":"YulLiteral","src":"6133:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6118:3:53","nodeType":"YulIdentifier","src":"6118:3:53"},"nativeSrc":"6118:18:53","nodeType":"YulFunctionCall","src":"6118:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6110:4:53","nodeType":"YulIdentifier","src":"6110:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6157:9:53","nodeType":"YulIdentifier","src":"6157:9:53"},{"kind":"number","nativeSrc":"6168:1:53","nodeType":"YulLiteral","src":"6168:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6153:3:53","nodeType":"YulIdentifier","src":"6153:3:53"},"nativeSrc":"6153:17:53","nodeType":"YulFunctionCall","src":"6153:17:53"},{"arguments":[{"name":"tail","nativeSrc":"6176:4:53","nodeType":"YulIdentifier","src":"6176:4:53"},{"name":"headStart","nativeSrc":"6182:9:53","nodeType":"YulIdentifier","src":"6182:9:53"}],"functionName":{"name":"sub","nativeSrc":"6172:3:53","nodeType":"YulIdentifier","src":"6172:3:53"},"nativeSrc":"6172:20:53","nodeType":"YulFunctionCall","src":"6172:20:53"}],"functionName":{"name":"mstore","nativeSrc":"6146:6:53","nodeType":"YulIdentifier","src":"6146:6:53"},"nativeSrc":"6146:47:53","nodeType":"YulFunctionCall","src":"6146:47:53"},"nativeSrc":"6146:47:53","nodeType":"YulExpressionStatement","src":"6146:47:53"},{"nativeSrc":"6202:114:53","nodeType":"YulAssignment","src":"6202:114:53","value":{"arguments":[{"name":"value0","nativeSrc":"6302:6:53","nodeType":"YulIdentifier","src":"6302:6:53"},{"name":"tail","nativeSrc":"6311:4:53","nodeType":"YulIdentifier","src":"6311:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack","nativeSrc":"6210:91:53","nodeType":"YulIdentifier","src":"6210:91:53"},"nativeSrc":"6210:106:53","nodeType":"YulFunctionCall","src":"6210:106:53"},"variableNames":[{"name":"tail","nativeSrc":"6202:4:53","nodeType":"YulIdentifier","src":"6202:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Clone_$12306_memory_ptr__to_t_struct$_Clone_$12306_memory_ptr__fromStack_reversed","nativeSrc":"5954:369:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6072:9:53","nodeType":"YulTypedName","src":"6072:9:53","type":""},{"name":"value0","nativeSrc":"6084:6:53","nodeType":"YulTypedName","src":"6084:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6095:4:53","nodeType":"YulTypedName","src":"6095:4:53","type":""}],"src":"5954:369:53"},{"body":{"nativeSrc":"6372:79:53","nodeType":"YulBlock","src":"6372:79:53","statements":[{"body":{"nativeSrc":"6429:16:53","nodeType":"YulBlock","src":"6429:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6438:1:53","nodeType":"YulLiteral","src":"6438:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6441:1:53","nodeType":"YulLiteral","src":"6441:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6431:6:53","nodeType":"YulIdentifier","src":"6431:6:53"},"nativeSrc":"6431:12:53","nodeType":"YulFunctionCall","src":"6431:12:53"},"nativeSrc":"6431:12:53","nodeType":"YulExpressionStatement","src":"6431:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6395:5:53","nodeType":"YulIdentifier","src":"6395:5:53"},{"arguments":[{"name":"value","nativeSrc":"6420:5:53","nodeType":"YulIdentifier","src":"6420:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6402:17:53","nodeType":"YulIdentifier","src":"6402:17:53"},"nativeSrc":"6402:24:53","nodeType":"YulFunctionCall","src":"6402:24:53"}],"functionName":{"name":"eq","nativeSrc":"6392:2:53","nodeType":"YulIdentifier","src":"6392:2:53"},"nativeSrc":"6392:35:53","nodeType":"YulFunctionCall","src":"6392:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6385:6:53","nodeType":"YulIdentifier","src":"6385:6:53"},"nativeSrc":"6385:43:53","nodeType":"YulFunctionCall","src":"6385:43:53"},"nativeSrc":"6382:63:53","nodeType":"YulIf","src":"6382:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"6329:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6365:5:53","nodeType":"YulTypedName","src":"6365:5:53","type":""}],"src":"6329:122:53"},{"body":{"nativeSrc":"6509:87:53","nodeType":"YulBlock","src":"6509:87:53","statements":[{"nativeSrc":"6519:29:53","nodeType":"YulAssignment","src":"6519:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6541:6:53","nodeType":"YulIdentifier","src":"6541:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6528:12:53","nodeType":"YulIdentifier","src":"6528:12:53"},"nativeSrc":"6528:20:53","nodeType":"YulFunctionCall","src":"6528:20:53"},"variableNames":[{"name":"value","nativeSrc":"6519:5:53","nodeType":"YulIdentifier","src":"6519:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6584:5:53","nodeType":"YulIdentifier","src":"6584:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6557:26:53","nodeType":"YulIdentifier","src":"6557:26:53"},"nativeSrc":"6557:33:53","nodeType":"YulFunctionCall","src":"6557:33:53"},"nativeSrc":"6557:33:53","nodeType":"YulExpressionStatement","src":"6557:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"6457:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6487:6:53","nodeType":"YulTypedName","src":"6487:6:53","type":""},{"name":"end","nativeSrc":"6495:3:53","nodeType":"YulTypedName","src":"6495:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6503:5:53","nodeType":"YulTypedName","src":"6503:5:53","type":""}],"src":"6457:139:53"},{"body":{"nativeSrc":"6668:263:53","nodeType":"YulBlock","src":"6668:263:53","statements":[{"body":{"nativeSrc":"6714:83:53","nodeType":"YulBlock","src":"6714:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6716:77:53","nodeType":"YulIdentifier","src":"6716:77:53"},"nativeSrc":"6716:79:53","nodeType":"YulFunctionCall","src":"6716:79:53"},"nativeSrc":"6716:79:53","nodeType":"YulExpressionStatement","src":"6716:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6689:7:53","nodeType":"YulIdentifier","src":"6689:7:53"},{"name":"headStart","nativeSrc":"6698:9:53","nodeType":"YulIdentifier","src":"6698:9:53"}],"functionName":{"name":"sub","nativeSrc":"6685:3:53","nodeType":"YulIdentifier","src":"6685:3:53"},"nativeSrc":"6685:23:53","nodeType":"YulFunctionCall","src":"6685:23:53"},{"kind":"number","nativeSrc":"6710:2:53","nodeType":"YulLiteral","src":"6710:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6681:3:53","nodeType":"YulIdentifier","src":"6681:3:53"},"nativeSrc":"6681:32:53","nodeType":"YulFunctionCall","src":"6681:32:53"},"nativeSrc":"6678:119:53","nodeType":"YulIf","src":"6678:119:53"},{"nativeSrc":"6807:117:53","nodeType":"YulBlock","src":"6807:117:53","statements":[{"nativeSrc":"6822:15:53","nodeType":"YulVariableDeclaration","src":"6822:15:53","value":{"kind":"number","nativeSrc":"6836:1:53","nodeType":"YulLiteral","src":"6836:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6826:6:53","nodeType":"YulTypedName","src":"6826:6:53","type":""}]},{"nativeSrc":"6851:63:53","nodeType":"YulAssignment","src":"6851:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6886:9:53","nodeType":"YulIdentifier","src":"6886:9:53"},{"name":"offset","nativeSrc":"6897:6:53","nodeType":"YulIdentifier","src":"6897:6:53"}],"functionName":{"name":"add","nativeSrc":"6882:3:53","nodeType":"YulIdentifier","src":"6882:3:53"},"nativeSrc":"6882:22:53","nodeType":"YulFunctionCall","src":"6882:22:53"},{"name":"dataEnd","nativeSrc":"6906:7:53","nodeType":"YulIdentifier","src":"6906:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6861:20:53","nodeType":"YulIdentifier","src":"6861:20:53"},"nativeSrc":"6861:53:53","nodeType":"YulFunctionCall","src":"6861:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6851:6:53","nodeType":"YulIdentifier","src":"6851:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6602:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6638:9:53","nodeType":"YulTypedName","src":"6638:9:53","type":""},{"name":"dataEnd","nativeSrc":"6649:7:53","nodeType":"YulTypedName","src":"6649:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6661:6:53","nodeType":"YulTypedName","src":"6661:6:53","type":""}],"src":"6602:329:53"},{"body":{"nativeSrc":"7011:40:53","nodeType":"YulBlock","src":"7011:40:53","statements":[{"nativeSrc":"7022:22:53","nodeType":"YulAssignment","src":"7022:22:53","value":{"arguments":[{"name":"value","nativeSrc":"7038:5:53","nodeType":"YulIdentifier","src":"7038:5:53"}],"functionName":{"name":"mload","nativeSrc":"7032:5:53","nodeType":"YulIdentifier","src":"7032:5:53"},"nativeSrc":"7032:12:53","nodeType":"YulFunctionCall","src":"7032:12:53"},"variableNames":[{"name":"length","nativeSrc":"7022:6:53","nodeType":"YulIdentifier","src":"7022:6:53"}]}]},"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6937:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6994:5:53","nodeType":"YulTypedName","src":"6994:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7004:6:53","nodeType":"YulTypedName","src":"7004:6:53","type":""}],"src":"6937:114:53"},{"body":{"nativeSrc":"7168:73:53","nodeType":"YulBlock","src":"7168:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7185:3:53","nodeType":"YulIdentifier","src":"7185:3:53"},{"name":"length","nativeSrc":"7190:6:53","nodeType":"YulIdentifier","src":"7190:6:53"}],"functionName":{"name":"mstore","nativeSrc":"7178:6:53","nodeType":"YulIdentifier","src":"7178:6:53"},"nativeSrc":"7178:19:53","nodeType":"YulFunctionCall","src":"7178:19:53"},"nativeSrc":"7178:19:53","nodeType":"YulExpressionStatement","src":"7178:19:53"},{"nativeSrc":"7206:29:53","nodeType":"YulAssignment","src":"7206:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"7225:3:53","nodeType":"YulIdentifier","src":"7225:3:53"},{"kind":"number","nativeSrc":"7230:4:53","nodeType":"YulLiteral","src":"7230:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7221:3:53","nodeType":"YulIdentifier","src":"7221:3:53"},"nativeSrc":"7221:14:53","nodeType":"YulFunctionCall","src":"7221:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"7206:11:53","nodeType":"YulIdentifier","src":"7206:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"7057:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7140:3:53","nodeType":"YulTypedName","src":"7140:3:53","type":""},{"name":"length","nativeSrc":"7145:6:53","nodeType":"YulTypedName","src":"7145:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7156:11:53","nodeType":"YulTypedName","src":"7156:11:53","type":""}],"src":"7057:184:53"},{"body":{"nativeSrc":"7319:60:53","nodeType":"YulBlock","src":"7319:60:53","statements":[{"nativeSrc":"7329:11:53","nodeType":"YulAssignment","src":"7329:11:53","value":{"name":"ptr","nativeSrc":"7337:3:53","nodeType":"YulIdentifier","src":"7337:3:53"},"variableNames":[{"name":"data","nativeSrc":"7329:4:53","nodeType":"YulIdentifier","src":"7329:4:53"}]},{"nativeSrc":"7350:22:53","nodeType":"YulAssignment","src":"7350:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"7362:3:53","nodeType":"YulIdentifier","src":"7362:3:53"},{"kind":"number","nativeSrc":"7367:4:53","nodeType":"YulLiteral","src":"7367:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7358:3:53","nodeType":"YulIdentifier","src":"7358:3:53"},"nativeSrc":"7358:14:53","nodeType":"YulFunctionCall","src":"7358:14:53"},"variableNames":[{"name":"data","nativeSrc":"7350:4:53","nodeType":"YulIdentifier","src":"7350:4:53"}]}]},"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7247:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"7306:3:53","nodeType":"YulTypedName","src":"7306:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"7314:4:53","nodeType":"YulTypedName","src":"7314:4:53","type":""}],"src":"7247:132:53"},{"body":{"nativeSrc":"7440:53:53","nodeType":"YulBlock","src":"7440:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7457:3:53","nodeType":"YulIdentifier","src":"7457:3:53"},{"arguments":[{"name":"value","nativeSrc":"7480:5:53","nodeType":"YulIdentifier","src":"7480:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"7462:17:53","nodeType":"YulIdentifier","src":"7462:17:53"},"nativeSrc":"7462:24:53","nodeType":"YulFunctionCall","src":"7462:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7450:6:53","nodeType":"YulIdentifier","src":"7450:6:53"},"nativeSrc":"7450:37:53","nodeType":"YulFunctionCall","src":"7450:37:53"},"nativeSrc":"7450:37:53","nodeType":"YulExpressionStatement","src":"7450:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"7385:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7428:5:53","nodeType":"YulTypedName","src":"7428:5:53","type":""},{"name":"pos","nativeSrc":"7435:3:53","nodeType":"YulTypedName","src":"7435:3:53","type":""}],"src":"7385:108:53"},{"body":{"nativeSrc":"7579:99:53","nodeType":"YulBlock","src":"7579:99:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"7623:6:53","nodeType":"YulIdentifier","src":"7623:6:53"},{"name":"pos","nativeSrc":"7631:3:53","nodeType":"YulIdentifier","src":"7631:3:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"7589:33:53","nodeType":"YulIdentifier","src":"7589:33:53"},"nativeSrc":"7589:46:53","nodeType":"YulFunctionCall","src":"7589:46:53"},"nativeSrc":"7589:46:53","nodeType":"YulExpressionStatement","src":"7589:46:53"},{"nativeSrc":"7644:28:53","nodeType":"YulAssignment","src":"7644:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"7662:3:53","nodeType":"YulIdentifier","src":"7662:3:53"},{"kind":"number","nativeSrc":"7667:4:53","nodeType":"YulLiteral","src":"7667:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7658:3:53","nodeType":"YulIdentifier","src":"7658:3:53"},"nativeSrc":"7658:14:53","nodeType":"YulFunctionCall","src":"7658:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"7644:10:53","nodeType":"YulIdentifier","src":"7644:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"7499:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"7552:6:53","nodeType":"YulTypedName","src":"7552:6:53","type":""},{"name":"pos","nativeSrc":"7560:3:53","nodeType":"YulTypedName","src":"7560:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"7568:10:53","nodeType":"YulTypedName","src":"7568:10:53","type":""}],"src":"7499:179:53"},{"body":{"nativeSrc":"7759:38:53","nodeType":"YulBlock","src":"7759:38:53","statements":[{"nativeSrc":"7769:22:53","nodeType":"YulAssignment","src":"7769:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"7781:3:53","nodeType":"YulIdentifier","src":"7781:3:53"},{"kind":"number","nativeSrc":"7786:4:53","nodeType":"YulLiteral","src":"7786:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7777:3:53","nodeType":"YulIdentifier","src":"7777:3:53"},"nativeSrc":"7777:14:53","nodeType":"YulFunctionCall","src":"7777:14:53"},"variableNames":[{"name":"next","nativeSrc":"7769:4:53","nodeType":"YulIdentifier","src":"7769:4:53"}]}]},"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7684:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"7746:3:53","nodeType":"YulTypedName","src":"7746:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"7754:4:53","nodeType":"YulTypedName","src":"7754:4:53","type":""}],"src":"7684:113:53"},{"body":{"nativeSrc":"7957:608:53","nodeType":"YulBlock","src":"7957:608:53","statements":[{"nativeSrc":"7967:68:53","nodeType":"YulVariableDeclaration","src":"7967:68:53","value":{"arguments":[{"name":"value","nativeSrc":"8029:5:53","nodeType":"YulIdentifier","src":"8029:5:53"}],"functionName":{"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7981:47:53","nodeType":"YulIdentifier","src":"7981:47:53"},"nativeSrc":"7981:54:53","nodeType":"YulFunctionCall","src":"7981:54:53"},"variables":[{"name":"length","nativeSrc":"7971:6:53","nodeType":"YulTypedName","src":"7971:6:53","type":""}]},{"nativeSrc":"8044:93:53","nodeType":"YulAssignment","src":"8044:93:53","value":{"arguments":[{"name":"pos","nativeSrc":"8125:3:53","nodeType":"YulIdentifier","src":"8125:3:53"},{"name":"length","nativeSrc":"8130:6:53","nodeType":"YulIdentifier","src":"8130:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"8051:73:53","nodeType":"YulIdentifier","src":"8051:73:53"},"nativeSrc":"8051:86:53","nodeType":"YulFunctionCall","src":"8051:86:53"},"variableNames":[{"name":"pos","nativeSrc":"8044:3:53","nodeType":"YulIdentifier","src":"8044:3:53"}]},{"nativeSrc":"8146:71:53","nodeType":"YulVariableDeclaration","src":"8146:71:53","value":{"arguments":[{"name":"value","nativeSrc":"8211:5:53","nodeType":"YulIdentifier","src":"8211:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"8161:49:53","nodeType":"YulIdentifier","src":"8161:49:53"},"nativeSrc":"8161:56:53","nodeType":"YulFunctionCall","src":"8161:56:53"},"variables":[{"name":"baseRef","nativeSrc":"8150:7:53","nodeType":"YulTypedName","src":"8150:7:53","type":""}]},{"nativeSrc":"8226:21:53","nodeType":"YulVariableDeclaration","src":"8226:21:53","value":{"name":"baseRef","nativeSrc":"8240:7:53","nodeType":"YulIdentifier","src":"8240:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"8230:6:53","nodeType":"YulTypedName","src":"8230:6:53","type":""}]},{"body":{"nativeSrc":"8316:224:53","nodeType":"YulBlock","src":"8316:224:53","statements":[{"nativeSrc":"8330:34:53","nodeType":"YulVariableDeclaration","src":"8330:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8357:6:53","nodeType":"YulIdentifier","src":"8357:6:53"}],"functionName":{"name":"mload","nativeSrc":"8351:5:53","nodeType":"YulIdentifier","src":"8351:5:53"},"nativeSrc":"8351:13:53","nodeType":"YulFunctionCall","src":"8351:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"8334:13:53","nodeType":"YulTypedName","src":"8334:13:53","type":""}]},{"nativeSrc":"8377:70:53","nodeType":"YulAssignment","src":"8377:70:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"8428:13:53","nodeType":"YulIdentifier","src":"8428:13:53"},{"name":"pos","nativeSrc":"8443:3:53","nodeType":"YulIdentifier","src":"8443:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"8384:43:53","nodeType":"YulIdentifier","src":"8384:43:53"},"nativeSrc":"8384:63:53","nodeType":"YulFunctionCall","src":"8384:63:53"},"variableNames":[{"name":"pos","nativeSrc":"8377:3:53","nodeType":"YulIdentifier","src":"8377:3:53"}]},{"nativeSrc":"8460:70:53","nodeType":"YulAssignment","src":"8460:70:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8523:6:53","nodeType":"YulIdentifier","src":"8523:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"8470:52:53","nodeType":"YulIdentifier","src":"8470:52:53"},"nativeSrc":"8470:60:53","nodeType":"YulFunctionCall","src":"8470:60:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"8460:6:53","nodeType":"YulIdentifier","src":"8460:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8278:1:53","nodeType":"YulIdentifier","src":"8278:1:53"},{"name":"length","nativeSrc":"8281:6:53","nodeType":"YulIdentifier","src":"8281:6:53"}],"functionName":{"name":"lt","nativeSrc":"8275:2:53","nodeType":"YulIdentifier","src":"8275:2:53"},"nativeSrc":"8275:13:53","nodeType":"YulFunctionCall","src":"8275:13:53"},"nativeSrc":"8256:284:53","nodeType":"YulForLoop","post":{"nativeSrc":"8289:18:53","nodeType":"YulBlock","src":"8289:18:53","statements":[{"nativeSrc":"8291:14:53","nodeType":"YulAssignment","src":"8291:14:53","value":{"arguments":[{"name":"i","nativeSrc":"8300:1:53","nodeType":"YulIdentifier","src":"8300:1:53"},{"kind":"number","nativeSrc":"8303:1:53","nodeType":"YulLiteral","src":"8303:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8296:3:53","nodeType":"YulIdentifier","src":"8296:3:53"},"nativeSrc":"8296:9:53","nodeType":"YulFunctionCall","src":"8296:9:53"},"variableNames":[{"name":"i","nativeSrc":"8291:1:53","nodeType":"YulIdentifier","src":"8291:1:53"}]}]},"pre":{"nativeSrc":"8260:14:53","nodeType":"YulBlock","src":"8260:14:53","statements":[{"nativeSrc":"8262:10:53","nodeType":"YulVariableDeclaration","src":"8262:10:53","value":{"kind":"number","nativeSrc":"8271:1:53","nodeType":"YulLiteral","src":"8271:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8266:1:53","nodeType":"YulTypedName","src":"8266:1:53","type":""}]}]},"src":"8256:284:53"},{"nativeSrc":"8549:10:53","nodeType":"YulAssignment","src":"8549:10:53","value":{"name":"pos","nativeSrc":"8556:3:53","nodeType":"YulIdentifier","src":"8556:3:53"},"variableNames":[{"name":"end","nativeSrc":"8549:3:53","nodeType":"YulIdentifier","src":"8549:3:53"}]}]},"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"7833:732:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7936:5:53","nodeType":"YulTypedName","src":"7936:5:53","type":""},{"name":"pos","nativeSrc":"7943:3:53","nodeType":"YulTypedName","src":"7943:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7952:3:53","nodeType":"YulTypedName","src":"7952:3:53","type":""}],"src":"7833:732:53"},{"body":{"nativeSrc":"8719:225:53","nodeType":"YulBlock","src":"8719:225:53","statements":[{"nativeSrc":"8729:26:53","nodeType":"YulAssignment","src":"8729:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8741:9:53","nodeType":"YulIdentifier","src":"8741:9:53"},{"kind":"number","nativeSrc":"8752:2:53","nodeType":"YulLiteral","src":"8752:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8737:3:53","nodeType":"YulIdentifier","src":"8737:3:53"},"nativeSrc":"8737:18:53","nodeType":"YulFunctionCall","src":"8737:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8729:4:53","nodeType":"YulIdentifier","src":"8729:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8776:9:53","nodeType":"YulIdentifier","src":"8776:9:53"},{"kind":"number","nativeSrc":"8787:1:53","nodeType":"YulLiteral","src":"8787:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8772:3:53","nodeType":"YulIdentifier","src":"8772:3:53"},"nativeSrc":"8772:17:53","nodeType":"YulFunctionCall","src":"8772:17:53"},{"arguments":[{"name":"tail","nativeSrc":"8795:4:53","nodeType":"YulIdentifier","src":"8795:4:53"},{"name":"headStart","nativeSrc":"8801:9:53","nodeType":"YulIdentifier","src":"8801:9:53"}],"functionName":{"name":"sub","nativeSrc":"8791:3:53","nodeType":"YulIdentifier","src":"8791:3:53"},"nativeSrc":"8791:20:53","nodeType":"YulFunctionCall","src":"8791:20:53"}],"functionName":{"name":"mstore","nativeSrc":"8765:6:53","nodeType":"YulIdentifier","src":"8765:6:53"},"nativeSrc":"8765:47:53","nodeType":"YulFunctionCall","src":"8765:47:53"},"nativeSrc":"8765:47:53","nodeType":"YulExpressionStatement","src":"8765:47:53"},{"nativeSrc":"8821:116:53","nodeType":"YulAssignment","src":"8821:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"8923:6:53","nodeType":"YulIdentifier","src":"8923:6:53"},{"name":"tail","nativeSrc":"8932:4:53","nodeType":"YulIdentifier","src":"8932:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"8829:93:53","nodeType":"YulIdentifier","src":"8829:93:53"},"nativeSrc":"8829:108:53","nodeType":"YulFunctionCall","src":"8829:108:53"},"variableNames":[{"name":"tail","nativeSrc":"8821:4:53","nodeType":"YulIdentifier","src":"8821:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"8571:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8691:9:53","nodeType":"YulTypedName","src":"8691:9:53","type":""},{"name":"value0","nativeSrc":"8703:6:53","nodeType":"YulTypedName","src":"8703:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8714:4:53","nodeType":"YulTypedName","src":"8714:4:53","type":""}],"src":"8571:373:53"},{"body":{"nativeSrc":"9034:85:53","nodeType":"YulBlock","src":"9034:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9051:3:53","nodeType":"YulIdentifier","src":"9051:3:53"},{"arguments":[{"name":"value","nativeSrc":"9106:5:53","nodeType":"YulIdentifier","src":"9106:5:53"}],"functionName":{"name":"convert_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"9056:49:53","nodeType":"YulIdentifier","src":"9056:49:53"},"nativeSrc":"9056:56:53","nodeType":"YulFunctionCall","src":"9056:56:53"}],"functionName":{"name":"mstore","nativeSrc":"9044:6:53","nodeType":"YulIdentifier","src":"9044:6:53"},"nativeSrc":"9044:69:53","nodeType":"YulFunctionCall","src":"9044:69:53"},"nativeSrc":"9044:69:53","nodeType":"YulExpressionStatement","src":"9044:69:53"}]},"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack","nativeSrc":"8950:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9022:5:53","nodeType":"YulTypedName","src":"9022:5:53","type":""},{"name":"pos","nativeSrc":"9029:3:53","nodeType":"YulTypedName","src":"9029:3:53","type":""}],"src":"8950:169:53"},{"body":{"nativeSrc":"9242:143:53","nodeType":"YulBlock","src":"9242:143:53","statements":[{"nativeSrc":"9252:26:53","nodeType":"YulAssignment","src":"9252:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9264:9:53","nodeType":"YulIdentifier","src":"9264:9:53"},{"kind":"number","nativeSrc":"9275:2:53","nodeType":"YulLiteral","src":"9275:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9260:3:53","nodeType":"YulIdentifier","src":"9260:3:53"},"nativeSrc":"9260:18:53","nodeType":"YulFunctionCall","src":"9260:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9252:4:53","nodeType":"YulIdentifier","src":"9252:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9351:6:53","nodeType":"YulIdentifier","src":"9351:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9364:9:53","nodeType":"YulIdentifier","src":"9364:9:53"},{"kind":"number","nativeSrc":"9375:1:53","nodeType":"YulLiteral","src":"9375:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9360:3:53","nodeType":"YulIdentifier","src":"9360:3:53"},"nativeSrc":"9360:17:53","nodeType":"YulFunctionCall","src":"9360:17:53"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack","nativeSrc":"9288:62:53","nodeType":"YulIdentifier","src":"9288:62:53"},"nativeSrc":"9288:90:53","nodeType":"YulFunctionCall","src":"9288:90:53"},"nativeSrc":"9288:90:53","nodeType":"YulExpressionStatement","src":"9288:90:53"}]},"name":"abi_encode_tuple_t_contract$_Cloneable_$17720__to_t_address__fromStack_reversed","nativeSrc":"9125:260:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9214:9:53","nodeType":"YulTypedName","src":"9214:9:53","type":""},{"name":"value0","nativeSrc":"9226:6:53","nodeType":"YulTypedName","src":"9226:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9237:4:53","nodeType":"YulTypedName","src":"9237:4:53","type":""}],"src":"9125:260:53"},{"body":{"nativeSrc":"9452:56:53","nodeType":"YulBlock","src":"9452:56:53","statements":[{"body":{"nativeSrc":"9486:16:53","nodeType":"YulBlock","src":"9486:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9495:1:53","nodeType":"YulLiteral","src":"9495:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9498:1:53","nodeType":"YulLiteral","src":"9498:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9488:6:53","nodeType":"YulIdentifier","src":"9488:6:53"},"nativeSrc":"9488:12:53","nodeType":"YulFunctionCall","src":"9488:12:53"},"nativeSrc":"9488:12:53","nodeType":"YulExpressionStatement","src":"9488:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9475:5:53","nodeType":"YulIdentifier","src":"9475:5:53"},{"kind":"number","nativeSrc":"9482:1:53","nodeType":"YulLiteral","src":"9482:1:53","type":"","value":"5"}],"functionName":{"name":"lt","nativeSrc":"9472:2:53","nodeType":"YulIdentifier","src":"9472:2:53"},"nativeSrc":"9472:12:53","nodeType":"YulFunctionCall","src":"9472:12:53"}],"functionName":{"name":"iszero","nativeSrc":"9465:6:53","nodeType":"YulIdentifier","src":"9465:6:53"},"nativeSrc":"9465:20:53","nodeType":"YulFunctionCall","src":"9465:20:53"},"nativeSrc":"9462:40:53","nodeType":"YulIf","src":"9462:40:53"}]},"name":"validator_revert_t_enum$_RegistryType_$12294","nativeSrc":"9391:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9445:5:53","nodeType":"YulTypedName","src":"9445:5:53","type":""}],"src":"9391:117:53"},{"body":{"nativeSrc":"9584:105:53","nodeType":"YulBlock","src":"9584:105:53","statements":[{"nativeSrc":"9594:29:53","nodeType":"YulAssignment","src":"9594:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9616:6:53","nodeType":"YulIdentifier","src":"9616:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9603:12:53","nodeType":"YulIdentifier","src":"9603:12:53"},"nativeSrc":"9603:20:53","nodeType":"YulFunctionCall","src":"9603:20:53"},"variableNames":[{"name":"value","nativeSrc":"9594:5:53","nodeType":"YulIdentifier","src":"9594:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9677:5:53","nodeType":"YulIdentifier","src":"9677:5:53"}],"functionName":{"name":"validator_revert_t_enum$_RegistryType_$12294","nativeSrc":"9632:44:53","nodeType":"YulIdentifier","src":"9632:44:53"},"nativeSrc":"9632:51:53","nodeType":"YulFunctionCall","src":"9632:51:53"},"nativeSrc":"9632:51:53","nodeType":"YulExpressionStatement","src":"9632:51:53"}]},"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"9514:175:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9562:6:53","nodeType":"YulTypedName","src":"9562:6:53","type":""},{"name":"end","nativeSrc":"9570:3:53","nodeType":"YulTypedName","src":"9570:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9578:5:53","nodeType":"YulTypedName","src":"9578:5:53","type":""}],"src":"9514:175:53"},{"body":{"nativeSrc":"9784:28:53","nodeType":"YulBlock","src":"9784:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9801:1:53","nodeType":"YulLiteral","src":"9801:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9804:1:53","nodeType":"YulLiteral","src":"9804:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9794:6:53","nodeType":"YulIdentifier","src":"9794:6:53"},"nativeSrc":"9794:12:53","nodeType":"YulFunctionCall","src":"9794:12:53"},"nativeSrc":"9794:12:53","nodeType":"YulExpressionStatement","src":"9794:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9695:117:53","nodeType":"YulFunctionDefinition","src":"9695:117:53"},{"body":{"nativeSrc":"9907:28:53","nodeType":"YulBlock","src":"9907:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9924:1:53","nodeType":"YulLiteral","src":"9924:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9927:1:53","nodeType":"YulLiteral","src":"9927:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9917:6:53","nodeType":"YulIdentifier","src":"9917:6:53"},"nativeSrc":"9917:12:53","nodeType":"YulFunctionCall","src":"9917:12:53"},"nativeSrc":"9917:12:53","nodeType":"YulExpressionStatement","src":"9917:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"9818:117:53","nodeType":"YulFunctionDefinition","src":"9818:117:53"},{"body":{"nativeSrc":"10030:28:53","nodeType":"YulBlock","src":"10030:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10047:1:53","nodeType":"YulLiteral","src":"10047:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10050:1:53","nodeType":"YulLiteral","src":"10050:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10040:6:53","nodeType":"YulIdentifier","src":"10040:6:53"},"nativeSrc":"10040:12:53","nodeType":"YulFunctionCall","src":"10040:12:53"},"nativeSrc":"10040:12:53","nodeType":"YulExpressionStatement","src":"10040:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9941:117:53","nodeType":"YulFunctionDefinition","src":"9941:117:53"},{"body":{"nativeSrc":"10153:478:53","nodeType":"YulBlock","src":"10153:478:53","statements":[{"body":{"nativeSrc":"10202:83:53","nodeType":"YulBlock","src":"10202:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10204:77:53","nodeType":"YulIdentifier","src":"10204:77:53"},"nativeSrc":"10204:79:53","nodeType":"YulFunctionCall","src":"10204:79:53"},"nativeSrc":"10204:79:53","nodeType":"YulExpressionStatement","src":"10204:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10181:6:53","nodeType":"YulIdentifier","src":"10181:6:53"},{"kind":"number","nativeSrc":"10189:4:53","nodeType":"YulLiteral","src":"10189:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10177:3:53","nodeType":"YulIdentifier","src":"10177:3:53"},"nativeSrc":"10177:17:53","nodeType":"YulFunctionCall","src":"10177:17:53"},{"name":"end","nativeSrc":"10196:3:53","nodeType":"YulIdentifier","src":"10196:3:53"}],"functionName":{"name":"slt","nativeSrc":"10173:3:53","nodeType":"YulIdentifier","src":"10173:3:53"},"nativeSrc":"10173:27:53","nodeType":"YulFunctionCall","src":"10173:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10166:6:53","nodeType":"YulIdentifier","src":"10166:6:53"},"nativeSrc":"10166:35:53","nodeType":"YulFunctionCall","src":"10166:35:53"},"nativeSrc":"10163:122:53","nodeType":"YulIf","src":"10163:122:53"},{"nativeSrc":"10294:30:53","nodeType":"YulAssignment","src":"10294:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"10317:6:53","nodeType":"YulIdentifier","src":"10317:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10304:12:53","nodeType":"YulIdentifier","src":"10304:12:53"},"nativeSrc":"10304:20:53","nodeType":"YulFunctionCall","src":"10304:20:53"},"variableNames":[{"name":"length","nativeSrc":"10294:6:53","nodeType":"YulIdentifier","src":"10294:6:53"}]},{"body":{"nativeSrc":"10367:83:53","nodeType":"YulBlock","src":"10367:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10369:77:53","nodeType":"YulIdentifier","src":"10369:77:53"},"nativeSrc":"10369:79:53","nodeType":"YulFunctionCall","src":"10369:79:53"},"nativeSrc":"10369:79:53","nodeType":"YulExpressionStatement","src":"10369:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10339:6:53","nodeType":"YulIdentifier","src":"10339:6:53"},{"kind":"number","nativeSrc":"10347:18:53","nodeType":"YulLiteral","src":"10347:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10336:2:53","nodeType":"YulIdentifier","src":"10336:2:53"},"nativeSrc":"10336:30:53","nodeType":"YulFunctionCall","src":"10336:30:53"},"nativeSrc":"10333:117:53","nodeType":"YulIf","src":"10333:117:53"},{"nativeSrc":"10459:29:53","nodeType":"YulAssignment","src":"10459:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10475:6:53","nodeType":"YulIdentifier","src":"10475:6:53"},{"kind":"number","nativeSrc":"10483:4:53","nodeType":"YulLiteral","src":"10483:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10471:3:53","nodeType":"YulIdentifier","src":"10471:3:53"},"nativeSrc":"10471:17:53","nodeType":"YulFunctionCall","src":"10471:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"10459:8:53","nodeType":"YulIdentifier","src":"10459:8:53"}]},{"body":{"nativeSrc":"10542:83:53","nodeType":"YulBlock","src":"10542:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10544:77:53","nodeType":"YulIdentifier","src":"10544:77:53"},"nativeSrc":"10544:79:53","nodeType":"YulFunctionCall","src":"10544:79:53"},"nativeSrc":"10544:79:53","nodeType":"YulExpressionStatement","src":"10544:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10507:8:53","nodeType":"YulIdentifier","src":"10507:8:53"},{"arguments":[{"name":"length","nativeSrc":"10521:6:53","nodeType":"YulIdentifier","src":"10521:6:53"},{"kind":"number","nativeSrc":"10529:4:53","nodeType":"YulLiteral","src":"10529:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"10517:3:53","nodeType":"YulIdentifier","src":"10517:3:53"},"nativeSrc":"10517:17:53","nodeType":"YulFunctionCall","src":"10517:17:53"}],"functionName":{"name":"add","nativeSrc":"10503:3:53","nodeType":"YulIdentifier","src":"10503:3:53"},"nativeSrc":"10503:32:53","nodeType":"YulFunctionCall","src":"10503:32:53"},{"name":"end","nativeSrc":"10537:3:53","nodeType":"YulIdentifier","src":"10537:3:53"}],"functionName":{"name":"gt","nativeSrc":"10500:2:53","nodeType":"YulIdentifier","src":"10500:2:53"},"nativeSrc":"10500:41:53","nodeType":"YulFunctionCall","src":"10500:41:53"},"nativeSrc":"10497:128:53","nodeType":"YulIf","src":"10497:128:53"}]},"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"10078:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10120:6:53","nodeType":"YulTypedName","src":"10120:6:53","type":""},{"name":"end","nativeSrc":"10128:3:53","nodeType":"YulTypedName","src":"10128:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"10136:8:53","nodeType":"YulTypedName","src":"10136:8:53","type":""},{"name":"length","nativeSrc":"10146:6:53","nodeType":"YulTypedName","src":"10146:6:53","type":""}],"src":"10078:553:53"},{"body":{"nativeSrc":"10792:846:53","nodeType":"YulBlock","src":"10792:846:53","statements":[{"body":{"nativeSrc":"10839:83:53","nodeType":"YulBlock","src":"10839:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10841:77:53","nodeType":"YulIdentifier","src":"10841:77:53"},"nativeSrc":"10841:79:53","nodeType":"YulFunctionCall","src":"10841:79:53"},"nativeSrc":"10841:79:53","nodeType":"YulExpressionStatement","src":"10841:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10813:7:53","nodeType":"YulIdentifier","src":"10813:7:53"},{"name":"headStart","nativeSrc":"10822:9:53","nodeType":"YulIdentifier","src":"10822:9:53"}],"functionName":{"name":"sub","nativeSrc":"10809:3:53","nodeType":"YulIdentifier","src":"10809:3:53"},"nativeSrc":"10809:23:53","nodeType":"YulFunctionCall","src":"10809:23:53"},{"kind":"number","nativeSrc":"10834:3:53","nodeType":"YulLiteral","src":"10834:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10805:3:53","nodeType":"YulIdentifier","src":"10805:3:53"},"nativeSrc":"10805:33:53","nodeType":"YulFunctionCall","src":"10805:33:53"},"nativeSrc":"10802:120:53","nodeType":"YulIf","src":"10802:120:53"},{"nativeSrc":"10932:135:53","nodeType":"YulBlock","src":"10932:135:53","statements":[{"nativeSrc":"10947:15:53","nodeType":"YulVariableDeclaration","src":"10947:15:53","value":{"kind":"number","nativeSrc":"10961:1:53","nodeType":"YulLiteral","src":"10961:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10951:6:53","nodeType":"YulTypedName","src":"10951:6:53","type":""}]},{"nativeSrc":"10976:81:53","nodeType":"YulAssignment","src":"10976:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11029:9:53","nodeType":"YulIdentifier","src":"11029:9:53"},{"name":"offset","nativeSrc":"11040:6:53","nodeType":"YulIdentifier","src":"11040:6:53"}],"functionName":{"name":"add","nativeSrc":"11025:3:53","nodeType":"YulIdentifier","src":"11025:3:53"},"nativeSrc":"11025:22:53","nodeType":"YulFunctionCall","src":"11025:22:53"},{"name":"dataEnd","nativeSrc":"11049:7:53","nodeType":"YulIdentifier","src":"11049:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"10986:38:53","nodeType":"YulIdentifier","src":"10986:38:53"},"nativeSrc":"10986:71:53","nodeType":"YulFunctionCall","src":"10986:71:53"},"variableNames":[{"name":"value0","nativeSrc":"10976:6:53","nodeType":"YulIdentifier","src":"10976:6:53"}]}]},{"nativeSrc":"11077:118:53","nodeType":"YulBlock","src":"11077:118:53","statements":[{"nativeSrc":"11092:16:53","nodeType":"YulVariableDeclaration","src":"11092:16:53","value":{"kind":"number","nativeSrc":"11106:2:53","nodeType":"YulLiteral","src":"11106:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11096:6:53","nodeType":"YulTypedName","src":"11096:6:53","type":""}]},{"nativeSrc":"11122:63:53","nodeType":"YulAssignment","src":"11122:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11157:9:53","nodeType":"YulIdentifier","src":"11157:9:53"},{"name":"offset","nativeSrc":"11168:6:53","nodeType":"YulIdentifier","src":"11168:6:53"}],"functionName":{"name":"add","nativeSrc":"11153:3:53","nodeType":"YulIdentifier","src":"11153:3:53"},"nativeSrc":"11153:22:53","nodeType":"YulFunctionCall","src":"11153:22:53"},{"name":"dataEnd","nativeSrc":"11177:7:53","nodeType":"YulIdentifier","src":"11177:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11132:20:53","nodeType":"YulIdentifier","src":"11132:20:53"},"nativeSrc":"11132:53:53","nodeType":"YulFunctionCall","src":"11132:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11122:6:53","nodeType":"YulIdentifier","src":"11122:6:53"}]}]},{"nativeSrc":"11205:118:53","nodeType":"YulBlock","src":"11205:118:53","statements":[{"nativeSrc":"11220:16:53","nodeType":"YulVariableDeclaration","src":"11220:16:53","value":{"kind":"number","nativeSrc":"11234:2:53","nodeType":"YulLiteral","src":"11234:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11224:6:53","nodeType":"YulTypedName","src":"11224:6:53","type":""}]},{"nativeSrc":"11250:63:53","nodeType":"YulAssignment","src":"11250:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11285:9:53","nodeType":"YulIdentifier","src":"11285:9:53"},{"name":"offset","nativeSrc":"11296:6:53","nodeType":"YulIdentifier","src":"11296:6:53"}],"functionName":{"name":"add","nativeSrc":"11281:3:53","nodeType":"YulIdentifier","src":"11281:3:53"},"nativeSrc":"11281:22:53","nodeType":"YulFunctionCall","src":"11281:22:53"},{"name":"dataEnd","nativeSrc":"11305:7:53","nodeType":"YulIdentifier","src":"11305:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11260:20:53","nodeType":"YulIdentifier","src":"11260:20:53"},"nativeSrc":"11260:53:53","nodeType":"YulFunctionCall","src":"11260:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11250:6:53","nodeType":"YulIdentifier","src":"11250:6:53"}]}]},{"nativeSrc":"11333:298:53","nodeType":"YulBlock","src":"11333:298:53","statements":[{"nativeSrc":"11348:46:53","nodeType":"YulVariableDeclaration","src":"11348:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11379:9:53","nodeType":"YulIdentifier","src":"11379:9:53"},{"kind":"number","nativeSrc":"11390:2:53","nodeType":"YulLiteral","src":"11390:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11375:3:53","nodeType":"YulIdentifier","src":"11375:3:53"},"nativeSrc":"11375:18:53","nodeType":"YulFunctionCall","src":"11375:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11362:12:53","nodeType":"YulIdentifier","src":"11362:12:53"},"nativeSrc":"11362:32:53","nodeType":"YulFunctionCall","src":"11362:32:53"},"variables":[{"name":"offset","nativeSrc":"11352:6:53","nodeType":"YulTypedName","src":"11352:6:53","type":""}]},{"body":{"nativeSrc":"11441:83:53","nodeType":"YulBlock","src":"11441:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11443:77:53","nodeType":"YulIdentifier","src":"11443:77:53"},"nativeSrc":"11443:79:53","nodeType":"YulFunctionCall","src":"11443:79:53"},"nativeSrc":"11443:79:53","nodeType":"YulExpressionStatement","src":"11443:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11413:6:53","nodeType":"YulIdentifier","src":"11413:6:53"},{"kind":"number","nativeSrc":"11421:18:53","nodeType":"YulLiteral","src":"11421:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11410:2:53","nodeType":"YulIdentifier","src":"11410:2:53"},"nativeSrc":"11410:30:53","nodeType":"YulFunctionCall","src":"11410:30:53"},"nativeSrc":"11407:117:53","nodeType":"YulIf","src":"11407:117:53"},{"nativeSrc":"11538:83:53","nodeType":"YulAssignment","src":"11538:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11593:9:53","nodeType":"YulIdentifier","src":"11593:9:53"},{"name":"offset","nativeSrc":"11604:6:53","nodeType":"YulIdentifier","src":"11604:6:53"}],"functionName":{"name":"add","nativeSrc":"11589:3:53","nodeType":"YulIdentifier","src":"11589:3:53"},"nativeSrc":"11589:22:53","nodeType":"YulFunctionCall","src":"11589:22:53"},{"name":"dataEnd","nativeSrc":"11613:7:53","nodeType":"YulIdentifier","src":"11613:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"11556:32:53","nodeType":"YulIdentifier","src":"11556:32:53"},"nativeSrc":"11556:65:53","nodeType":"YulFunctionCall","src":"11556:65:53"},"variableNames":[{"name":"value3","nativeSrc":"11538:6:53","nodeType":"YulIdentifier","src":"11538:6:53"},{"name":"value4","nativeSrc":"11546:6:53","nodeType":"YulIdentifier","src":"11546:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_addresst_string_calldata_ptr","nativeSrc":"10637:1001:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10730:9:53","nodeType":"YulTypedName","src":"10730:9:53","type":""},{"name":"dataEnd","nativeSrc":"10741:7:53","nodeType":"YulTypedName","src":"10741:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10753:6:53","nodeType":"YulTypedName","src":"10753:6:53","type":""},{"name":"value1","nativeSrc":"10761:6:53","nodeType":"YulTypedName","src":"10761:6:53","type":""},{"name":"value2","nativeSrc":"10769:6:53","nodeType":"YulTypedName","src":"10769:6:53","type":""},{"name":"value3","nativeSrc":"10777:6:53","nodeType":"YulTypedName","src":"10777:6:53","type":""},{"name":"value4","nativeSrc":"10785:6:53","nodeType":"YulTypedName","src":"10785:6:53","type":""}],"src":"10637:1001:53"},{"body":{"nativeSrc":"11709:53:53","nodeType":"YulBlock","src":"11709:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11726:3:53","nodeType":"YulIdentifier","src":"11726:3:53"},{"arguments":[{"name":"value","nativeSrc":"11749:5:53","nodeType":"YulIdentifier","src":"11749:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"11731:17:53","nodeType":"YulIdentifier","src":"11731:17:53"},"nativeSrc":"11731:24:53","nodeType":"YulFunctionCall","src":"11731:24:53"}],"functionName":{"name":"mstore","nativeSrc":"11719:6:53","nodeType":"YulIdentifier","src":"11719:6:53"},"nativeSrc":"11719:37:53","nodeType":"YulFunctionCall","src":"11719:37:53"},"nativeSrc":"11719:37:53","nodeType":"YulExpressionStatement","src":"11719:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"11644:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11697:5:53","nodeType":"YulTypedName","src":"11697:5:53","type":""},{"name":"pos","nativeSrc":"11704:3:53","nodeType":"YulTypedName","src":"11704:3:53","type":""}],"src":"11644:118:53"},{"body":{"nativeSrc":"11866:124:53","nodeType":"YulBlock","src":"11866:124:53","statements":[{"nativeSrc":"11876:26:53","nodeType":"YulAssignment","src":"11876:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11888:9:53","nodeType":"YulIdentifier","src":"11888:9:53"},{"kind":"number","nativeSrc":"11899:2:53","nodeType":"YulLiteral","src":"11899:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11884:3:53","nodeType":"YulIdentifier","src":"11884:3:53"},"nativeSrc":"11884:18:53","nodeType":"YulFunctionCall","src":"11884:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11876:4:53","nodeType":"YulIdentifier","src":"11876:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11956:6:53","nodeType":"YulIdentifier","src":"11956:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"11969:9:53","nodeType":"YulIdentifier","src":"11969:9:53"},{"kind":"number","nativeSrc":"11980:1:53","nodeType":"YulLiteral","src":"11980:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11965:3:53","nodeType":"YulIdentifier","src":"11965:3:53"},"nativeSrc":"11965:17:53","nodeType":"YulFunctionCall","src":"11965:17:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"11912:43:53","nodeType":"YulIdentifier","src":"11912:43:53"},"nativeSrc":"11912:71:53","nodeType":"YulFunctionCall","src":"11912:71:53"},"nativeSrc":"11912:71:53","nodeType":"YulExpressionStatement","src":"11912:71:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"11768:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11838:9:53","nodeType":"YulTypedName","src":"11838:9:53","type":""},{"name":"value0","nativeSrc":"11850:6:53","nodeType":"YulTypedName","src":"11850:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11861:4:53","nodeType":"YulTypedName","src":"11861:4:53","type":""}],"src":"11768:222:53"},{"body":{"nativeSrc":"12134:717:53","nodeType":"YulBlock","src":"12134:717:53","statements":[{"body":{"nativeSrc":"12180:83:53","nodeType":"YulBlock","src":"12180:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12182:77:53","nodeType":"YulIdentifier","src":"12182:77:53"},"nativeSrc":"12182:79:53","nodeType":"YulFunctionCall","src":"12182:79:53"},"nativeSrc":"12182:79:53","nodeType":"YulExpressionStatement","src":"12182:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12155:7:53","nodeType":"YulIdentifier","src":"12155:7:53"},{"name":"headStart","nativeSrc":"12164:9:53","nodeType":"YulIdentifier","src":"12164:9:53"}],"functionName":{"name":"sub","nativeSrc":"12151:3:53","nodeType":"YulIdentifier","src":"12151:3:53"},"nativeSrc":"12151:23:53","nodeType":"YulFunctionCall","src":"12151:23:53"},{"kind":"number","nativeSrc":"12176:2:53","nodeType":"YulLiteral","src":"12176:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"12147:3:53","nodeType":"YulIdentifier","src":"12147:3:53"},"nativeSrc":"12147:32:53","nodeType":"YulFunctionCall","src":"12147:32:53"},"nativeSrc":"12144:119:53","nodeType":"YulIf","src":"12144:119:53"},{"nativeSrc":"12273:135:53","nodeType":"YulBlock","src":"12273:135:53","statements":[{"nativeSrc":"12288:15:53","nodeType":"YulVariableDeclaration","src":"12288:15:53","value":{"kind":"number","nativeSrc":"12302:1:53","nodeType":"YulLiteral","src":"12302:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12292:6:53","nodeType":"YulTypedName","src":"12292:6:53","type":""}]},{"nativeSrc":"12317:81:53","nodeType":"YulAssignment","src":"12317:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12370:9:53","nodeType":"YulIdentifier","src":"12370:9:53"},{"name":"offset","nativeSrc":"12381:6:53","nodeType":"YulIdentifier","src":"12381:6:53"}],"functionName":{"name":"add","nativeSrc":"12366:3:53","nodeType":"YulIdentifier","src":"12366:3:53"},"nativeSrc":"12366:22:53","nodeType":"YulFunctionCall","src":"12366:22:53"},{"name":"dataEnd","nativeSrc":"12390:7:53","nodeType":"YulIdentifier","src":"12390:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"12327:38:53","nodeType":"YulIdentifier","src":"12327:38:53"},"nativeSrc":"12327:71:53","nodeType":"YulFunctionCall","src":"12327:71:53"},"variableNames":[{"name":"value0","nativeSrc":"12317:6:53","nodeType":"YulIdentifier","src":"12317:6:53"}]}]},{"nativeSrc":"12418:298:53","nodeType":"YulBlock","src":"12418:298:53","statements":[{"nativeSrc":"12433:46:53","nodeType":"YulVariableDeclaration","src":"12433:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12464:9:53","nodeType":"YulIdentifier","src":"12464:9:53"},{"kind":"number","nativeSrc":"12475:2:53","nodeType":"YulLiteral","src":"12475:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12460:3:53","nodeType":"YulIdentifier","src":"12460:3:53"},"nativeSrc":"12460:18:53","nodeType":"YulFunctionCall","src":"12460:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12447:12:53","nodeType":"YulIdentifier","src":"12447:12:53"},"nativeSrc":"12447:32:53","nodeType":"YulFunctionCall","src":"12447:32:53"},"variables":[{"name":"offset","nativeSrc":"12437:6:53","nodeType":"YulTypedName","src":"12437:6:53","type":""}]},{"body":{"nativeSrc":"12526:83:53","nodeType":"YulBlock","src":"12526:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12528:77:53","nodeType":"YulIdentifier","src":"12528:77:53"},"nativeSrc":"12528:79:53","nodeType":"YulFunctionCall","src":"12528:79:53"},"nativeSrc":"12528:79:53","nodeType":"YulExpressionStatement","src":"12528:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12498:6:53","nodeType":"YulIdentifier","src":"12498:6:53"},{"kind":"number","nativeSrc":"12506:18:53","nodeType":"YulLiteral","src":"12506:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12495:2:53","nodeType":"YulIdentifier","src":"12495:2:53"},"nativeSrc":"12495:30:53","nodeType":"YulFunctionCall","src":"12495:30:53"},"nativeSrc":"12492:117:53","nodeType":"YulIf","src":"12492:117:53"},{"nativeSrc":"12623:83:53","nodeType":"YulAssignment","src":"12623:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12678:9:53","nodeType":"YulIdentifier","src":"12678:9:53"},{"name":"offset","nativeSrc":"12689:6:53","nodeType":"YulIdentifier","src":"12689:6:53"}],"functionName":{"name":"add","nativeSrc":"12674:3:53","nodeType":"YulIdentifier","src":"12674:3:53"},"nativeSrc":"12674:22:53","nodeType":"YulFunctionCall","src":"12674:22:53"},{"name":"dataEnd","nativeSrc":"12698:7:53","nodeType":"YulIdentifier","src":"12698:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"12641:32:53","nodeType":"YulIdentifier","src":"12641:32:53"},"nativeSrc":"12641:65:53","nodeType":"YulFunctionCall","src":"12641:65:53"},"variableNames":[{"name":"value1","nativeSrc":"12623:6:53","nodeType":"YulIdentifier","src":"12623:6:53"},{"name":"value2","nativeSrc":"12631:6:53","nodeType":"YulIdentifier","src":"12631:6:53"}]}]},{"nativeSrc":"12726:118:53","nodeType":"YulBlock","src":"12726:118:53","statements":[{"nativeSrc":"12741:16:53","nodeType":"YulVariableDeclaration","src":"12741:16:53","value":{"kind":"number","nativeSrc":"12755:2:53","nodeType":"YulLiteral","src":"12755:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"12745:6:53","nodeType":"YulTypedName","src":"12745:6:53","type":""}]},{"nativeSrc":"12771:63:53","nodeType":"YulAssignment","src":"12771:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12806:9:53","nodeType":"YulIdentifier","src":"12806:9:53"},{"name":"offset","nativeSrc":"12817:6:53","nodeType":"YulIdentifier","src":"12817:6:53"}],"functionName":{"name":"add","nativeSrc":"12802:3:53","nodeType":"YulIdentifier","src":"12802:3:53"},"nativeSrc":"12802:22:53","nodeType":"YulFunctionCall","src":"12802:22:53"},{"name":"dataEnd","nativeSrc":"12826:7:53","nodeType":"YulIdentifier","src":"12826:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12781:20:53","nodeType":"YulIdentifier","src":"12781:20:53"},"nativeSrc":"12781:53:53","nodeType":"YulFunctionCall","src":"12781:53:53"},"variableNames":[{"name":"value3","nativeSrc":"12771:6:53","nodeType":"YulIdentifier","src":"12771:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptrt_address","nativeSrc":"11996:855:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12080:9:53","nodeType":"YulTypedName","src":"12080:9:53","type":""},{"name":"dataEnd","nativeSrc":"12091:7:53","nodeType":"YulTypedName","src":"12091:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12103:6:53","nodeType":"YulTypedName","src":"12103:6:53","type":""},{"name":"value1","nativeSrc":"12111:6:53","nodeType":"YulTypedName","src":"12111:6:53","type":""},{"name":"value2","nativeSrc":"12119:6:53","nodeType":"YulTypedName","src":"12119:6:53","type":""},{"name":"value3","nativeSrc":"12127:6:53","nodeType":"YulTypedName","src":"12127:6:53","type":""}],"src":"11996:855:53"},{"body":{"nativeSrc":"12978:589:53","nodeType":"YulBlock","src":"12978:589:53","statements":[{"body":{"nativeSrc":"13024:83:53","nodeType":"YulBlock","src":"13024:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13026:77:53","nodeType":"YulIdentifier","src":"13026:77:53"},"nativeSrc":"13026:79:53","nodeType":"YulFunctionCall","src":"13026:79:53"},"nativeSrc":"13026:79:53","nodeType":"YulExpressionStatement","src":"13026:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12999:7:53","nodeType":"YulIdentifier","src":"12999:7:53"},{"name":"headStart","nativeSrc":"13008:9:53","nodeType":"YulIdentifier","src":"13008:9:53"}],"functionName":{"name":"sub","nativeSrc":"12995:3:53","nodeType":"YulIdentifier","src":"12995:3:53"},"nativeSrc":"12995:23:53","nodeType":"YulFunctionCall","src":"12995:23:53"},{"kind":"number","nativeSrc":"13020:2:53","nodeType":"YulLiteral","src":"13020:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12991:3:53","nodeType":"YulIdentifier","src":"12991:3:53"},"nativeSrc":"12991:32:53","nodeType":"YulFunctionCall","src":"12991:32:53"},"nativeSrc":"12988:119:53","nodeType":"YulIf","src":"12988:119:53"},{"nativeSrc":"13117:135:53","nodeType":"YulBlock","src":"13117:135:53","statements":[{"nativeSrc":"13132:15:53","nodeType":"YulVariableDeclaration","src":"13132:15:53","value":{"kind":"number","nativeSrc":"13146:1:53","nodeType":"YulLiteral","src":"13146:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"13136:6:53","nodeType":"YulTypedName","src":"13136:6:53","type":""}]},{"nativeSrc":"13161:81:53","nodeType":"YulAssignment","src":"13161:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13214:9:53","nodeType":"YulIdentifier","src":"13214:9:53"},{"name":"offset","nativeSrc":"13225:6:53","nodeType":"YulIdentifier","src":"13225:6:53"}],"functionName":{"name":"add","nativeSrc":"13210:3:53","nodeType":"YulIdentifier","src":"13210:3:53"},"nativeSrc":"13210:22:53","nodeType":"YulFunctionCall","src":"13210:22:53"},{"name":"dataEnd","nativeSrc":"13234:7:53","nodeType":"YulIdentifier","src":"13234:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"13171:38:53","nodeType":"YulIdentifier","src":"13171:38:53"},"nativeSrc":"13171:71:53","nodeType":"YulFunctionCall","src":"13171:71:53"},"variableNames":[{"name":"value0","nativeSrc":"13161:6:53","nodeType":"YulIdentifier","src":"13161:6:53"}]}]},{"nativeSrc":"13262:298:53","nodeType":"YulBlock","src":"13262:298:53","statements":[{"nativeSrc":"13277:46:53","nodeType":"YulVariableDeclaration","src":"13277:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13308:9:53","nodeType":"YulIdentifier","src":"13308:9:53"},{"kind":"number","nativeSrc":"13319:2:53","nodeType":"YulLiteral","src":"13319:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13304:3:53","nodeType":"YulIdentifier","src":"13304:3:53"},"nativeSrc":"13304:18:53","nodeType":"YulFunctionCall","src":"13304:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"13291:12:53","nodeType":"YulIdentifier","src":"13291:12:53"},"nativeSrc":"13291:32:53","nodeType":"YulFunctionCall","src":"13291:32:53"},"variables":[{"name":"offset","nativeSrc":"13281:6:53","nodeType":"YulTypedName","src":"13281:6:53","type":""}]},{"body":{"nativeSrc":"13370:83:53","nodeType":"YulBlock","src":"13370:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13372:77:53","nodeType":"YulIdentifier","src":"13372:77:53"},"nativeSrc":"13372:79:53","nodeType":"YulFunctionCall","src":"13372:79:53"},"nativeSrc":"13372:79:53","nodeType":"YulExpressionStatement","src":"13372:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13342:6:53","nodeType":"YulIdentifier","src":"13342:6:53"},{"kind":"number","nativeSrc":"13350:18:53","nodeType":"YulLiteral","src":"13350:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13339:2:53","nodeType":"YulIdentifier","src":"13339:2:53"},"nativeSrc":"13339:30:53","nodeType":"YulFunctionCall","src":"13339:30:53"},"nativeSrc":"13336:117:53","nodeType":"YulIf","src":"13336:117:53"},{"nativeSrc":"13467:83:53","nodeType":"YulAssignment","src":"13467:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13522:9:53","nodeType":"YulIdentifier","src":"13522:9:53"},{"name":"offset","nativeSrc":"13533:6:53","nodeType":"YulIdentifier","src":"13533:6:53"}],"functionName":{"name":"add","nativeSrc":"13518:3:53","nodeType":"YulIdentifier","src":"13518:3:53"},"nativeSrc":"13518:22:53","nodeType":"YulFunctionCall","src":"13518:22:53"},{"name":"dataEnd","nativeSrc":"13542:7:53","nodeType":"YulIdentifier","src":"13542:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"13485:32:53","nodeType":"YulIdentifier","src":"13485:32:53"},"nativeSrc":"13485:65:53","nodeType":"YulFunctionCall","src":"13485:65:53"},"variableNames":[{"name":"value1","nativeSrc":"13467:6:53","nodeType":"YulIdentifier","src":"13467:6:53"},{"name":"value2","nativeSrc":"13475:6:53","nodeType":"YulIdentifier","src":"13475:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptr","nativeSrc":"12857:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12932:9:53","nodeType":"YulTypedName","src":"12932:9:53","type":""},{"name":"dataEnd","nativeSrc":"12943:7:53","nodeType":"YulTypedName","src":"12943:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12955:6:53","nodeType":"YulTypedName","src":"12955:6:53","type":""},{"name":"value1","nativeSrc":"12963:6:53","nodeType":"YulTypedName","src":"12963:6:53","type":""},{"name":"value2","nativeSrc":"12971:6:53","nodeType":"YulTypedName","src":"12971:6:53","type":""}],"src":"12857:710:53"},{"body":{"nativeSrc":"13660:478:53","nodeType":"YulBlock","src":"13660:478:53","statements":[{"body":{"nativeSrc":"13709:83:53","nodeType":"YulBlock","src":"13709:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"13711:77:53","nodeType":"YulIdentifier","src":"13711:77:53"},"nativeSrc":"13711:79:53","nodeType":"YulFunctionCall","src":"13711:79:53"},"nativeSrc":"13711:79:53","nodeType":"YulExpressionStatement","src":"13711:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13688:6:53","nodeType":"YulIdentifier","src":"13688:6:53"},{"kind":"number","nativeSrc":"13696:4:53","nodeType":"YulLiteral","src":"13696:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"13684:3:53","nodeType":"YulIdentifier","src":"13684:3:53"},"nativeSrc":"13684:17:53","nodeType":"YulFunctionCall","src":"13684:17:53"},{"name":"end","nativeSrc":"13703:3:53","nodeType":"YulIdentifier","src":"13703:3:53"}],"functionName":{"name":"slt","nativeSrc":"13680:3:53","nodeType":"YulIdentifier","src":"13680:3:53"},"nativeSrc":"13680:27:53","nodeType":"YulFunctionCall","src":"13680:27:53"}],"functionName":{"name":"iszero","nativeSrc":"13673:6:53","nodeType":"YulIdentifier","src":"13673:6:53"},"nativeSrc":"13673:35:53","nodeType":"YulFunctionCall","src":"13673:35:53"},"nativeSrc":"13670:122:53","nodeType":"YulIf","src":"13670:122:53"},{"nativeSrc":"13801:30:53","nodeType":"YulAssignment","src":"13801:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"13824:6:53","nodeType":"YulIdentifier","src":"13824:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"13811:12:53","nodeType":"YulIdentifier","src":"13811:12:53"},"nativeSrc":"13811:20:53","nodeType":"YulFunctionCall","src":"13811:20:53"},"variableNames":[{"name":"length","nativeSrc":"13801:6:53","nodeType":"YulIdentifier","src":"13801:6:53"}]},{"body":{"nativeSrc":"13874:83:53","nodeType":"YulBlock","src":"13874:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"13876:77:53","nodeType":"YulIdentifier","src":"13876:77:53"},"nativeSrc":"13876:79:53","nodeType":"YulFunctionCall","src":"13876:79:53"},"nativeSrc":"13876:79:53","nodeType":"YulExpressionStatement","src":"13876:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13846:6:53","nodeType":"YulIdentifier","src":"13846:6:53"},{"kind":"number","nativeSrc":"13854:18:53","nodeType":"YulLiteral","src":"13854:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13843:2:53","nodeType":"YulIdentifier","src":"13843:2:53"},"nativeSrc":"13843:30:53","nodeType":"YulFunctionCall","src":"13843:30:53"},"nativeSrc":"13840:117:53","nodeType":"YulIf","src":"13840:117:53"},{"nativeSrc":"13966:29:53","nodeType":"YulAssignment","src":"13966:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"13982:6:53","nodeType":"YulIdentifier","src":"13982:6:53"},{"kind":"number","nativeSrc":"13990:4:53","nodeType":"YulLiteral","src":"13990:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13978:3:53","nodeType":"YulIdentifier","src":"13978:3:53"},"nativeSrc":"13978:17:53","nodeType":"YulFunctionCall","src":"13978:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"13966:8:53","nodeType":"YulIdentifier","src":"13966:8:53"}]},{"body":{"nativeSrc":"14049:83:53","nodeType":"YulBlock","src":"14049:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"14051:77:53","nodeType":"YulIdentifier","src":"14051:77:53"},"nativeSrc":"14051:79:53","nodeType":"YulFunctionCall","src":"14051:79:53"},"nativeSrc":"14051:79:53","nodeType":"YulExpressionStatement","src":"14051:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"14014:8:53","nodeType":"YulIdentifier","src":"14014:8:53"},{"arguments":[{"name":"length","nativeSrc":"14028:6:53","nodeType":"YulIdentifier","src":"14028:6:53"},{"kind":"number","nativeSrc":"14036:4:53","nodeType":"YulLiteral","src":"14036:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"14024:3:53","nodeType":"YulIdentifier","src":"14024:3:53"},"nativeSrc":"14024:17:53","nodeType":"YulFunctionCall","src":"14024:17:53"}],"functionName":{"name":"add","nativeSrc":"14010:3:53","nodeType":"YulIdentifier","src":"14010:3:53"},"nativeSrc":"14010:32:53","nodeType":"YulFunctionCall","src":"14010:32:53"},{"name":"end","nativeSrc":"14044:3:53","nodeType":"YulIdentifier","src":"14044:3:53"}],"functionName":{"name":"gt","nativeSrc":"14007:2:53","nodeType":"YulIdentifier","src":"14007:2:53"},"nativeSrc":"14007:41:53","nodeType":"YulFunctionCall","src":"14007:41:53"},"nativeSrc":"14004:128:53","nodeType":"YulIf","src":"14004:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"13586:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13627:6:53","nodeType":"YulTypedName","src":"13627:6:53","type":""},{"name":"end","nativeSrc":"13635:3:53","nodeType":"YulTypedName","src":"13635:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"13643:8:53","nodeType":"YulTypedName","src":"13643:8:53","type":""},{"name":"length","nativeSrc":"13653:6:53","nodeType":"YulTypedName","src":"13653:6:53","type":""}],"src":"13586:552:53"},{"body":{"nativeSrc":"14318:1025:53","nodeType":"YulBlock","src":"14318:1025:53","statements":[{"body":{"nativeSrc":"14365:83:53","nodeType":"YulBlock","src":"14365:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14367:77:53","nodeType":"YulIdentifier","src":"14367:77:53"},"nativeSrc":"14367:79:53","nodeType":"YulFunctionCall","src":"14367:79:53"},"nativeSrc":"14367:79:53","nodeType":"YulExpressionStatement","src":"14367:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14339:7:53","nodeType":"YulIdentifier","src":"14339:7:53"},{"name":"headStart","nativeSrc":"14348:9:53","nodeType":"YulIdentifier","src":"14348:9:53"}],"functionName":{"name":"sub","nativeSrc":"14335:3:53","nodeType":"YulIdentifier","src":"14335:3:53"},"nativeSrc":"14335:23:53","nodeType":"YulFunctionCall","src":"14335:23:53"},{"kind":"number","nativeSrc":"14360:3:53","nodeType":"YulLiteral","src":"14360:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"14331:3:53","nodeType":"YulIdentifier","src":"14331:3:53"},"nativeSrc":"14331:33:53","nodeType":"YulFunctionCall","src":"14331:33:53"},"nativeSrc":"14328:120:53","nodeType":"YulIf","src":"14328:120:53"},{"nativeSrc":"14458:135:53","nodeType":"YulBlock","src":"14458:135:53","statements":[{"nativeSrc":"14473:15:53","nodeType":"YulVariableDeclaration","src":"14473:15:53","value":{"kind":"number","nativeSrc":"14487:1:53","nodeType":"YulLiteral","src":"14487:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14477:6:53","nodeType":"YulTypedName","src":"14477:6:53","type":""}]},{"nativeSrc":"14502:81:53","nodeType":"YulAssignment","src":"14502:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14555:9:53","nodeType":"YulIdentifier","src":"14555:9:53"},{"name":"offset","nativeSrc":"14566:6:53","nodeType":"YulIdentifier","src":"14566:6:53"}],"functionName":{"name":"add","nativeSrc":"14551:3:53","nodeType":"YulIdentifier","src":"14551:3:53"},"nativeSrc":"14551:22:53","nodeType":"YulFunctionCall","src":"14551:22:53"},{"name":"dataEnd","nativeSrc":"14575:7:53","nodeType":"YulIdentifier","src":"14575:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"14512:38:53","nodeType":"YulIdentifier","src":"14512:38:53"},"nativeSrc":"14512:71:53","nodeType":"YulFunctionCall","src":"14512:71:53"},"variableNames":[{"name":"value0","nativeSrc":"14502:6:53","nodeType":"YulIdentifier","src":"14502:6:53"}]}]},{"nativeSrc":"14603:118:53","nodeType":"YulBlock","src":"14603:118:53","statements":[{"nativeSrc":"14618:16:53","nodeType":"YulVariableDeclaration","src":"14618:16:53","value":{"kind":"number","nativeSrc":"14632:2:53","nodeType":"YulLiteral","src":"14632:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"14622:6:53","nodeType":"YulTypedName","src":"14622:6:53","type":""}]},{"nativeSrc":"14648:63:53","nodeType":"YulAssignment","src":"14648:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14683:9:53","nodeType":"YulIdentifier","src":"14683:9:53"},{"name":"offset","nativeSrc":"14694:6:53","nodeType":"YulIdentifier","src":"14694:6:53"}],"functionName":{"name":"add","nativeSrc":"14679:3:53","nodeType":"YulIdentifier","src":"14679:3:53"},"nativeSrc":"14679:22:53","nodeType":"YulFunctionCall","src":"14679:22:53"},{"name":"dataEnd","nativeSrc":"14703:7:53","nodeType":"YulIdentifier","src":"14703:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"14658:20:53","nodeType":"YulIdentifier","src":"14658:20:53"},"nativeSrc":"14658:53:53","nodeType":"YulFunctionCall","src":"14658:53:53"},"variableNames":[{"name":"value1","nativeSrc":"14648:6:53","nodeType":"YulIdentifier","src":"14648:6:53"}]}]},{"nativeSrc":"14731:298:53","nodeType":"YulBlock","src":"14731:298:53","statements":[{"nativeSrc":"14746:46:53","nodeType":"YulVariableDeclaration","src":"14746:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14777:9:53","nodeType":"YulIdentifier","src":"14777:9:53"},{"kind":"number","nativeSrc":"14788:2:53","nodeType":"YulLiteral","src":"14788:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14773:3:53","nodeType":"YulIdentifier","src":"14773:3:53"},"nativeSrc":"14773:18:53","nodeType":"YulFunctionCall","src":"14773:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"14760:12:53","nodeType":"YulIdentifier","src":"14760:12:53"},"nativeSrc":"14760:32:53","nodeType":"YulFunctionCall","src":"14760:32:53"},"variables":[{"name":"offset","nativeSrc":"14750:6:53","nodeType":"YulTypedName","src":"14750:6:53","type":""}]},{"body":{"nativeSrc":"14839:83:53","nodeType":"YulBlock","src":"14839:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"14841:77:53","nodeType":"YulIdentifier","src":"14841:77:53"},"nativeSrc":"14841:79:53","nodeType":"YulFunctionCall","src":"14841:79:53"},"nativeSrc":"14841:79:53","nodeType":"YulExpressionStatement","src":"14841:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14811:6:53","nodeType":"YulIdentifier","src":"14811:6:53"},{"kind":"number","nativeSrc":"14819:18:53","nodeType":"YulLiteral","src":"14819:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14808:2:53","nodeType":"YulIdentifier","src":"14808:2:53"},"nativeSrc":"14808:30:53","nodeType":"YulFunctionCall","src":"14808:30:53"},"nativeSrc":"14805:117:53","nodeType":"YulIf","src":"14805:117:53"},{"nativeSrc":"14936:83:53","nodeType":"YulAssignment","src":"14936:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14991:9:53","nodeType":"YulIdentifier","src":"14991:9:53"},{"name":"offset","nativeSrc":"15002:6:53","nodeType":"YulIdentifier","src":"15002:6:53"}],"functionName":{"name":"add","nativeSrc":"14987:3:53","nodeType":"YulIdentifier","src":"14987:3:53"},"nativeSrc":"14987:22:53","nodeType":"YulFunctionCall","src":"14987:22:53"},{"name":"dataEnd","nativeSrc":"15011:7:53","nodeType":"YulIdentifier","src":"15011:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"14954:32:53","nodeType":"YulIdentifier","src":"14954:32:53"},"nativeSrc":"14954:65:53","nodeType":"YulFunctionCall","src":"14954:65:53"},"variableNames":[{"name":"value2","nativeSrc":"14936:6:53","nodeType":"YulIdentifier","src":"14936:6:53"},{"name":"value3","nativeSrc":"14944:6:53","nodeType":"YulIdentifier","src":"14944:6:53"}]}]},{"nativeSrc":"15039:297:53","nodeType":"YulBlock","src":"15039:297:53","statements":[{"nativeSrc":"15054:46:53","nodeType":"YulVariableDeclaration","src":"15054:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15085:9:53","nodeType":"YulIdentifier","src":"15085:9:53"},{"kind":"number","nativeSrc":"15096:2:53","nodeType":"YulLiteral","src":"15096:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15081:3:53","nodeType":"YulIdentifier","src":"15081:3:53"},"nativeSrc":"15081:18:53","nodeType":"YulFunctionCall","src":"15081:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"15068:12:53","nodeType":"YulIdentifier","src":"15068:12:53"},"nativeSrc":"15068:32:53","nodeType":"YulFunctionCall","src":"15068:32:53"},"variables":[{"name":"offset","nativeSrc":"15058:6:53","nodeType":"YulTypedName","src":"15058:6:53","type":""}]},{"body":{"nativeSrc":"15147:83:53","nodeType":"YulBlock","src":"15147:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"15149:77:53","nodeType":"YulIdentifier","src":"15149:77:53"},"nativeSrc":"15149:79:53","nodeType":"YulFunctionCall","src":"15149:79:53"},"nativeSrc":"15149:79:53","nodeType":"YulExpressionStatement","src":"15149:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15119:6:53","nodeType":"YulIdentifier","src":"15119:6:53"},{"kind":"number","nativeSrc":"15127:18:53","nodeType":"YulLiteral","src":"15127:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15116:2:53","nodeType":"YulIdentifier","src":"15116:2:53"},"nativeSrc":"15116:30:53","nodeType":"YulFunctionCall","src":"15116:30:53"},"nativeSrc":"15113:117:53","nodeType":"YulIf","src":"15113:117:53"},{"nativeSrc":"15244:82:53","nodeType":"YulAssignment","src":"15244:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15298:9:53","nodeType":"YulIdentifier","src":"15298:9:53"},{"name":"offset","nativeSrc":"15309:6:53","nodeType":"YulIdentifier","src":"15309:6:53"}],"functionName":{"name":"add","nativeSrc":"15294:3:53","nodeType":"YulIdentifier","src":"15294:3:53"},"nativeSrc":"15294:22:53","nodeType":"YulFunctionCall","src":"15294:22:53"},{"name":"dataEnd","nativeSrc":"15318:7:53","nodeType":"YulIdentifier","src":"15318:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"15262:31:53","nodeType":"YulIdentifier","src":"15262:31:53"},"nativeSrc":"15262:64:53","nodeType":"YulFunctionCall","src":"15262:64:53"},"variableNames":[{"name":"value4","nativeSrc":"15244:6:53","nodeType":"YulIdentifier","src":"15244:6:53"},{"name":"value5","nativeSrc":"15252:6:53","nodeType":"YulIdentifier","src":"15252:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_string_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"14144:1199:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14248:9:53","nodeType":"YulTypedName","src":"14248:9:53","type":""},{"name":"dataEnd","nativeSrc":"14259:7:53","nodeType":"YulTypedName","src":"14259:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14271:6:53","nodeType":"YulTypedName","src":"14271:6:53","type":""},{"name":"value1","nativeSrc":"14279:6:53","nodeType":"YulTypedName","src":"14279:6:53","type":""},{"name":"value2","nativeSrc":"14287:6:53","nodeType":"YulTypedName","src":"14287:6:53","type":""},{"name":"value3","nativeSrc":"14295:6:53","nodeType":"YulTypedName","src":"14295:6:53","type":""},{"name":"value4","nativeSrc":"14303:6:53","nodeType":"YulTypedName","src":"14303:6:53","type":""},{"name":"value5","nativeSrc":"14311:6:53","nodeType":"YulTypedName","src":"14311:6:53","type":""}],"src":"14144:1199:53"},{"body":{"nativeSrc":"15377:152:53","nodeType":"YulBlock","src":"15377:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15394:1:53","nodeType":"YulLiteral","src":"15394:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15397:77:53","nodeType":"YulLiteral","src":"15397:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15387:6:53","nodeType":"YulIdentifier","src":"15387:6:53"},"nativeSrc":"15387:88:53","nodeType":"YulFunctionCall","src":"15387:88:53"},"nativeSrc":"15387:88:53","nodeType":"YulExpressionStatement","src":"15387:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15491:1:53","nodeType":"YulLiteral","src":"15491:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"15494:4:53","nodeType":"YulLiteral","src":"15494:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"15484:6:53","nodeType":"YulIdentifier","src":"15484:6:53"},"nativeSrc":"15484:15:53","nodeType":"YulFunctionCall","src":"15484:15:53"},"nativeSrc":"15484:15:53","nodeType":"YulExpressionStatement","src":"15484:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15515:1:53","nodeType":"YulLiteral","src":"15515:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15518:4:53","nodeType":"YulLiteral","src":"15518:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15508:6:53","nodeType":"YulIdentifier","src":"15508:6:53"},"nativeSrc":"15508:15:53","nodeType":"YulFunctionCall","src":"15508:15:53"},"nativeSrc":"15508:15:53","nodeType":"YulExpressionStatement","src":"15508:15:53"}]},"name":"panic_error_0x22","nativeSrc":"15349:180:53","nodeType":"YulFunctionDefinition","src":"15349:180:53"},{"body":{"nativeSrc":"15586:269:53","nodeType":"YulBlock","src":"15586:269:53","statements":[{"nativeSrc":"15596:22:53","nodeType":"YulAssignment","src":"15596:22:53","value":{"arguments":[{"name":"data","nativeSrc":"15610:4:53","nodeType":"YulIdentifier","src":"15610:4:53"},{"kind":"number","nativeSrc":"15616:1:53","nodeType":"YulLiteral","src":"15616:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"15606:3:53","nodeType":"YulIdentifier","src":"15606:3:53"},"nativeSrc":"15606:12:53","nodeType":"YulFunctionCall","src":"15606:12:53"},"variableNames":[{"name":"length","nativeSrc":"15596:6:53","nodeType":"YulIdentifier","src":"15596:6:53"}]},{"nativeSrc":"15627:38:53","nodeType":"YulVariableDeclaration","src":"15627:38:53","value":{"arguments":[{"name":"data","nativeSrc":"15657:4:53","nodeType":"YulIdentifier","src":"15657:4:53"},{"kind":"number","nativeSrc":"15663:1:53","nodeType":"YulLiteral","src":"15663:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"15653:3:53","nodeType":"YulIdentifier","src":"15653:3:53"},"nativeSrc":"15653:12:53","nodeType":"YulFunctionCall","src":"15653:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"15631:18:53","nodeType":"YulTypedName","src":"15631:18:53","type":""}]},{"body":{"nativeSrc":"15704:51:53","nodeType":"YulBlock","src":"15704:51:53","statements":[{"nativeSrc":"15718:27:53","nodeType":"YulAssignment","src":"15718:27:53","value":{"arguments":[{"name":"length","nativeSrc":"15732:6:53","nodeType":"YulIdentifier","src":"15732:6:53"},{"kind":"number","nativeSrc":"15740:4:53","nodeType":"YulLiteral","src":"15740:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"15728:3:53","nodeType":"YulIdentifier","src":"15728:3:53"},"nativeSrc":"15728:17:53","nodeType":"YulFunctionCall","src":"15728:17:53"},"variableNames":[{"name":"length","nativeSrc":"15718:6:53","nodeType":"YulIdentifier","src":"15718:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15684:18:53","nodeType":"YulIdentifier","src":"15684:18:53"}],"functionName":{"name":"iszero","nativeSrc":"15677:6:53","nodeType":"YulIdentifier","src":"15677:6:53"},"nativeSrc":"15677:26:53","nodeType":"YulFunctionCall","src":"15677:26:53"},"nativeSrc":"15674:81:53","nodeType":"YulIf","src":"15674:81:53"},{"body":{"nativeSrc":"15807:42:53","nodeType":"YulBlock","src":"15807:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"15821:16:53","nodeType":"YulIdentifier","src":"15821:16:53"},"nativeSrc":"15821:18:53","nodeType":"YulFunctionCall","src":"15821:18:53"},"nativeSrc":"15821:18:53","nodeType":"YulExpressionStatement","src":"15821:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15771:18:53","nodeType":"YulIdentifier","src":"15771:18:53"},{"arguments":[{"name":"length","nativeSrc":"15794:6:53","nodeType":"YulIdentifier","src":"15794:6:53"},{"kind":"number","nativeSrc":"15802:2:53","nodeType":"YulLiteral","src":"15802:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"15791:2:53","nodeType":"YulIdentifier","src":"15791:2:53"},"nativeSrc":"15791:14:53","nodeType":"YulFunctionCall","src":"15791:14:53"}],"functionName":{"name":"eq","nativeSrc":"15768:2:53","nodeType":"YulIdentifier","src":"15768:2:53"},"nativeSrc":"15768:38:53","nodeType":"YulFunctionCall","src":"15768:38:53"},"nativeSrc":"15765:84:53","nodeType":"YulIf","src":"15765:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"15535:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"15570:4:53","nodeType":"YulTypedName","src":"15570:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15579:6:53","nodeType":"YulTypedName","src":"15579:6:53","type":""}],"src":"15535:320:53"},{"body":{"nativeSrc":"15903:52:53","nodeType":"YulBlock","src":"15903:52:53","statements":[{"nativeSrc":"15913:35:53","nodeType":"YulAssignment","src":"15913:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"15938:2:53","nodeType":"YulLiteral","src":"15938:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"15942:5:53","nodeType":"YulIdentifier","src":"15942:5:53"}],"functionName":{"name":"shl","nativeSrc":"15934:3:53","nodeType":"YulIdentifier","src":"15934:3:53"},"nativeSrc":"15934:14:53","nodeType":"YulFunctionCall","src":"15934:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"15913:8:53","nodeType":"YulIdentifier","src":"15913:8:53"}]}]},"name":"shift_left_96","nativeSrc":"15861:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15884:5:53","nodeType":"YulTypedName","src":"15884:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"15894:8:53","nodeType":"YulTypedName","src":"15894:8:53","type":""}],"src":"15861:94:53"},{"body":{"nativeSrc":"16008:47:53","nodeType":"YulBlock","src":"16008:47:53","statements":[{"nativeSrc":"16018:31:53","nodeType":"YulAssignment","src":"16018:31:53","value":{"arguments":[{"name":"value","nativeSrc":"16043:5:53","nodeType":"YulIdentifier","src":"16043:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"16029:13:53","nodeType":"YulIdentifier","src":"16029:13:53"},"nativeSrc":"16029:20:53","nodeType":"YulFunctionCall","src":"16029:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"16018:7:53","nodeType":"YulIdentifier","src":"16018:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"15961:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15990:5:53","nodeType":"YulTypedName","src":"15990:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"16000:7:53","nodeType":"YulTypedName","src":"16000:7:53","type":""}],"src":"15961:94:53"},{"body":{"nativeSrc":"16108:53:53","nodeType":"YulBlock","src":"16108:53:53","statements":[{"nativeSrc":"16118:37:53","nodeType":"YulAssignment","src":"16118:37:53","value":{"arguments":[{"name":"value","nativeSrc":"16149:5:53","nodeType":"YulIdentifier","src":"16149:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"16129:19:53","nodeType":"YulIdentifier","src":"16129:19:53"},"nativeSrc":"16129:26:53","nodeType":"YulFunctionCall","src":"16129:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"16118:7:53","nodeType":"YulIdentifier","src":"16118:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"16061:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16090:5:53","nodeType":"YulTypedName","src":"16090:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"16100:7:53","nodeType":"YulTypedName","src":"16100:7:53","type":""}],"src":"16061:100:53"},{"body":{"nativeSrc":"16250:74:53","nodeType":"YulBlock","src":"16250:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16267:3:53","nodeType":"YulIdentifier","src":"16267:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16310:5:53","nodeType":"YulIdentifier","src":"16310:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"16292:17:53","nodeType":"YulIdentifier","src":"16292:17:53"},"nativeSrc":"16292:24:53","nodeType":"YulFunctionCall","src":"16292:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"16272:19:53","nodeType":"YulIdentifier","src":"16272:19:53"},"nativeSrc":"16272:45:53","nodeType":"YulFunctionCall","src":"16272:45:53"}],"functionName":{"name":"mstore","nativeSrc":"16260:6:53","nodeType":"YulIdentifier","src":"16260:6:53"},"nativeSrc":"16260:58:53","nodeType":"YulFunctionCall","src":"16260:58:53"},"nativeSrc":"16260:58:53","nodeType":"YulExpressionStatement","src":"16260:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"16167:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16238:5:53","nodeType":"YulTypedName","src":"16238:5:53","type":""},{"name":"pos","nativeSrc":"16245:3:53","nodeType":"YulTypedName","src":"16245:3:53","type":""}],"src":"16167:157:53"},{"body":{"nativeSrc":"16444:34:53","nodeType":"YulBlock","src":"16444:34:53","statements":[{"nativeSrc":"16454:18:53","nodeType":"YulAssignment","src":"16454:18:53","value":{"name":"pos","nativeSrc":"16469:3:53","nodeType":"YulIdentifier","src":"16469:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"16454:11:53","nodeType":"YulIdentifier","src":"16454:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16330:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16416:3:53","nodeType":"YulTypedName","src":"16416:3:53","type":""},{"name":"length","nativeSrc":"16421:6:53","nodeType":"YulTypedName","src":"16421:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"16432:11:53","nodeType":"YulTypedName","src":"16432:11:53","type":""}],"src":"16330:148:53"},{"body":{"nativeSrc":"16548:84:53","nodeType":"YulBlock","src":"16548:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"16572:3:53","nodeType":"YulIdentifier","src":"16572:3:53"},{"name":"src","nativeSrc":"16577:3:53","nodeType":"YulIdentifier","src":"16577:3:53"},{"name":"length","nativeSrc":"16582:6:53","nodeType":"YulIdentifier","src":"16582:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"16559:12:53","nodeType":"YulIdentifier","src":"16559:12:53"},"nativeSrc":"16559:30:53","nodeType":"YulFunctionCall","src":"16559:30:53"},"nativeSrc":"16559:30:53","nodeType":"YulExpressionStatement","src":"16559:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"16609:3:53","nodeType":"YulIdentifier","src":"16609:3:53"},{"name":"length","nativeSrc":"16614:6:53","nodeType":"YulIdentifier","src":"16614:6:53"}],"functionName":{"name":"add","nativeSrc":"16605:3:53","nodeType":"YulIdentifier","src":"16605:3:53"},"nativeSrc":"16605:16:53","nodeType":"YulFunctionCall","src":"16605:16:53"},{"kind":"number","nativeSrc":"16623:1:53","nodeType":"YulLiteral","src":"16623:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16598:6:53","nodeType":"YulIdentifier","src":"16598:6:53"},"nativeSrc":"16598:27:53","nodeType":"YulFunctionCall","src":"16598:27:53"},"nativeSrc":"16598:27:53","nodeType":"YulExpressionStatement","src":"16598:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"16484:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"16530:3:53","nodeType":"YulTypedName","src":"16530:3:53","type":""},{"name":"dst","nativeSrc":"16535:3:53","nodeType":"YulTypedName","src":"16535:3:53","type":""},{"name":"length","nativeSrc":"16540:6:53","nodeType":"YulTypedName","src":"16540:6:53","type":""}],"src":"16484:148:53"},{"body":{"nativeSrc":"16782:210:53","nodeType":"YulBlock","src":"16782:210:53","statements":[{"nativeSrc":"16792:96:53","nodeType":"YulAssignment","src":"16792:96:53","value":{"arguments":[{"name":"pos","nativeSrc":"16876:3:53","nodeType":"YulIdentifier","src":"16876:3:53"},{"name":"length","nativeSrc":"16881:6:53","nodeType":"YulIdentifier","src":"16881:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16799:76:53","nodeType":"YulIdentifier","src":"16799:76:53"},"nativeSrc":"16799:89:53","nodeType":"YulFunctionCall","src":"16799:89:53"},"variableNames":[{"name":"pos","nativeSrc":"16792:3:53","nodeType":"YulIdentifier","src":"16792:3:53"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"16935:5:53","nodeType":"YulIdentifier","src":"16935:5:53"},{"name":"pos","nativeSrc":"16942:3:53","nodeType":"YulIdentifier","src":"16942:3:53"},{"name":"length","nativeSrc":"16947:6:53","nodeType":"YulIdentifier","src":"16947:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"16898:36:53","nodeType":"YulIdentifier","src":"16898:36:53"},"nativeSrc":"16898:56:53","nodeType":"YulFunctionCall","src":"16898:56:53"},"nativeSrc":"16898:56:53","nodeType":"YulExpressionStatement","src":"16898:56:53"},{"nativeSrc":"16963:23:53","nodeType":"YulAssignment","src":"16963:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"16974:3:53","nodeType":"YulIdentifier","src":"16974:3:53"},{"name":"length","nativeSrc":"16979:6:53","nodeType":"YulIdentifier","src":"16979:6:53"}],"functionName":{"name":"add","nativeSrc":"16970:3:53","nodeType":"YulIdentifier","src":"16970:3:53"},"nativeSrc":"16970:16:53","nodeType":"YulFunctionCall","src":"16970:16:53"},"variableNames":[{"name":"end","nativeSrc":"16963:3:53","nodeType":"YulIdentifier","src":"16963:3:53"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16662:330:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"16755:5:53","nodeType":"YulTypedName","src":"16755:5:53","type":""},{"name":"length","nativeSrc":"16762:6:53","nodeType":"YulTypedName","src":"16762:6:53","type":""},{"name":"pos","nativeSrc":"16770:3:53","nodeType":"YulTypedName","src":"16770:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16778:3:53","nodeType":"YulTypedName","src":"16778:3:53","type":""}],"src":"16662:330:53"},{"body":{"nativeSrc":"17200:375:53","nodeType":"YulBlock","src":"17200:375:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"17273:6:53","nodeType":"YulIdentifier","src":"17273:6:53"},{"name":"pos","nativeSrc":"17282:3:53","nodeType":"YulIdentifier","src":"17282:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17211:61:53","nodeType":"YulIdentifier","src":"17211:61:53"},"nativeSrc":"17211:75:53","nodeType":"YulFunctionCall","src":"17211:75:53"},"nativeSrc":"17211:75:53","nodeType":"YulExpressionStatement","src":"17211:75:53"},{"nativeSrc":"17295:19:53","nodeType":"YulAssignment","src":"17295:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"17306:3:53","nodeType":"YulIdentifier","src":"17306:3:53"},{"kind":"number","nativeSrc":"17311:2:53","nodeType":"YulLiteral","src":"17311:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"17302:3:53","nodeType":"YulIdentifier","src":"17302:3:53"},"nativeSrc":"17302:12:53","nodeType":"YulFunctionCall","src":"17302:12:53"},"variableNames":[{"name":"pos","nativeSrc":"17295:3:53","nodeType":"YulIdentifier","src":"17295:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"17386:6:53","nodeType":"YulIdentifier","src":"17386:6:53"},{"name":"pos","nativeSrc":"17395:3:53","nodeType":"YulIdentifier","src":"17395:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17324:61:53","nodeType":"YulIdentifier","src":"17324:61:53"},"nativeSrc":"17324:75:53","nodeType":"YulFunctionCall","src":"17324:75:53"},"nativeSrc":"17324:75:53","nodeType":"YulExpressionStatement","src":"17324:75:53"},{"nativeSrc":"17408:19:53","nodeType":"YulAssignment","src":"17408:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"17419:3:53","nodeType":"YulIdentifier","src":"17419:3:53"},{"kind":"number","nativeSrc":"17424:2:53","nodeType":"YulLiteral","src":"17424:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"17415:3:53","nodeType":"YulIdentifier","src":"17415:3:53"},"nativeSrc":"17415:12:53","nodeType":"YulFunctionCall","src":"17415:12:53"},"variableNames":[{"name":"pos","nativeSrc":"17408:3:53","nodeType":"YulIdentifier","src":"17408:3:53"}]},{"nativeSrc":"17437:112:53","nodeType":"YulAssignment","src":"17437:112:53","value":{"arguments":[{"name":"value2","nativeSrc":"17528:6:53","nodeType":"YulIdentifier","src":"17528:6:53"},{"name":"value3","nativeSrc":"17536:6:53","nodeType":"YulIdentifier","src":"17536:6:53"},{"name":"pos","nativeSrc":"17545:3:53","nodeType":"YulIdentifier","src":"17545:3:53"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"17444:83:53","nodeType":"YulIdentifier","src":"17444:83:53"},"nativeSrc":"17444:105:53","nodeType":"YulFunctionCall","src":"17444:105:53"},"variableNames":[{"name":"pos","nativeSrc":"17437:3:53","nodeType":"YulIdentifier","src":"17437:3:53"}]},{"nativeSrc":"17559:10:53","nodeType":"YulAssignment","src":"17559:10:53","value":{"name":"pos","nativeSrc":"17566:3:53","nodeType":"YulIdentifier","src":"17566:3:53"},"variableNames":[{"name":"end","nativeSrc":"17559:3:53","nodeType":"YulIdentifier","src":"17559:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"16998:577:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17155:3:53","nodeType":"YulTypedName","src":"17155:3:53","type":""},{"name":"value3","nativeSrc":"17161:6:53","nodeType":"YulTypedName","src":"17161:6:53","type":""},{"name":"value2","nativeSrc":"17169:6:53","nodeType":"YulTypedName","src":"17169:6:53","type":""},{"name":"value1","nativeSrc":"17177:6:53","nodeType":"YulTypedName","src":"17177:6:53","type":""},{"name":"value0","nativeSrc":"17185:6:53","nodeType":"YulTypedName","src":"17185:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17196:3:53","nodeType":"YulTypedName","src":"17196:3:53","type":""}],"src":"16998:577:53"},{"body":{"nativeSrc":"17644:52:53","nodeType":"YulBlock","src":"17644:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17661:3:53","nodeType":"YulIdentifier","src":"17661:3:53"},{"arguments":[{"name":"value","nativeSrc":"17683:5:53","nodeType":"YulIdentifier","src":"17683:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"17666:16:53","nodeType":"YulIdentifier","src":"17666:16:53"},"nativeSrc":"17666:23:53","nodeType":"YulFunctionCall","src":"17666:23:53"}],"functionName":{"name":"mstore","nativeSrc":"17654:6:53","nodeType":"YulIdentifier","src":"17654:6:53"},"nativeSrc":"17654:36:53","nodeType":"YulFunctionCall","src":"17654:36:53"},"nativeSrc":"17654:36:53","nodeType":"YulExpressionStatement","src":"17654:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"17581:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17632:5:53","nodeType":"YulTypedName","src":"17632:5:53","type":""},{"name":"pos","nativeSrc":"17639:3:53","nodeType":"YulTypedName","src":"17639:3:53","type":""}],"src":"17581:115:53"},{"body":{"nativeSrc":"17798:122:53","nodeType":"YulBlock","src":"17798:122:53","statements":[{"nativeSrc":"17808:26:53","nodeType":"YulAssignment","src":"17808:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17820:9:53","nodeType":"YulIdentifier","src":"17820:9:53"},{"kind":"number","nativeSrc":"17831:2:53","nodeType":"YulLiteral","src":"17831:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17816:3:53","nodeType":"YulIdentifier","src":"17816:3:53"},"nativeSrc":"17816:18:53","nodeType":"YulFunctionCall","src":"17816:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17808:4:53","nodeType":"YulIdentifier","src":"17808:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17886:6:53","nodeType":"YulIdentifier","src":"17886:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17899:9:53","nodeType":"YulIdentifier","src":"17899:9:53"},{"kind":"number","nativeSrc":"17910:1:53","nodeType":"YulLiteral","src":"17910:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17895:3:53","nodeType":"YulIdentifier","src":"17895:3:53"},"nativeSrc":"17895:17:53","nodeType":"YulFunctionCall","src":"17895:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"17844:41:53","nodeType":"YulIdentifier","src":"17844:41:53"},"nativeSrc":"17844:69:53","nodeType":"YulFunctionCall","src":"17844:69:53"},"nativeSrc":"17844:69:53","nodeType":"YulExpressionStatement","src":"17844:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"17702:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17770:9:53","nodeType":"YulTypedName","src":"17770:9:53","type":""},{"name":"value0","nativeSrc":"17782:6:53","nodeType":"YulTypedName","src":"17782:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17793:4:53","nodeType":"YulTypedName","src":"17793:4:53","type":""}],"src":"17702:218:53"},{"body":{"nativeSrc":"17966:76:53","nodeType":"YulBlock","src":"17966:76:53","statements":[{"body":{"nativeSrc":"18020:16:53","nodeType":"YulBlock","src":"18020:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18029:1:53","nodeType":"YulLiteral","src":"18029:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18032:1:53","nodeType":"YulLiteral","src":"18032:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18022:6:53","nodeType":"YulIdentifier","src":"18022:6:53"},"nativeSrc":"18022:12:53","nodeType":"YulFunctionCall","src":"18022:12:53"},"nativeSrc":"18022:12:53","nodeType":"YulExpressionStatement","src":"18022:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17989:5:53","nodeType":"YulIdentifier","src":"17989:5:53"},{"arguments":[{"name":"value","nativeSrc":"18011:5:53","nodeType":"YulIdentifier","src":"18011:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"17996:14:53","nodeType":"YulIdentifier","src":"17996:14:53"},"nativeSrc":"17996:21:53","nodeType":"YulFunctionCall","src":"17996:21:53"}],"functionName":{"name":"eq","nativeSrc":"17986:2:53","nodeType":"YulIdentifier","src":"17986:2:53"},"nativeSrc":"17986:32:53","nodeType":"YulFunctionCall","src":"17986:32:53"}],"functionName":{"name":"iszero","nativeSrc":"17979:6:53","nodeType":"YulIdentifier","src":"17979:6:53"},"nativeSrc":"17979:40:53","nodeType":"YulFunctionCall","src":"17979:40:53"},"nativeSrc":"17976:60:53","nodeType":"YulIf","src":"17976:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"17926:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17959:5:53","nodeType":"YulTypedName","src":"17959:5:53","type":""}],"src":"17926:116:53"},{"body":{"nativeSrc":"18108:77:53","nodeType":"YulBlock","src":"18108:77:53","statements":[{"nativeSrc":"18118:22:53","nodeType":"YulAssignment","src":"18118:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"18133:6:53","nodeType":"YulIdentifier","src":"18133:6:53"}],"functionName":{"name":"mload","nativeSrc":"18127:5:53","nodeType":"YulIdentifier","src":"18127:5:53"},"nativeSrc":"18127:13:53","nodeType":"YulFunctionCall","src":"18127:13:53"},"variableNames":[{"name":"value","nativeSrc":"18118:5:53","nodeType":"YulIdentifier","src":"18118:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18173:5:53","nodeType":"YulIdentifier","src":"18173:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"18149:23:53","nodeType":"YulIdentifier","src":"18149:23:53"},"nativeSrc":"18149:30:53","nodeType":"YulFunctionCall","src":"18149:30:53"},"nativeSrc":"18149:30:53","nodeType":"YulExpressionStatement","src":"18149:30:53"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18048:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18086:6:53","nodeType":"YulTypedName","src":"18086:6:53","type":""},{"name":"end","nativeSrc":"18094:3:53","nodeType":"YulTypedName","src":"18094:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18102:5:53","nodeType":"YulTypedName","src":"18102:5:53","type":""}],"src":"18048:137:53"},{"body":{"nativeSrc":"18265:271:53","nodeType":"YulBlock","src":"18265:271:53","statements":[{"body":{"nativeSrc":"18311:83:53","nodeType":"YulBlock","src":"18311:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18313:77:53","nodeType":"YulIdentifier","src":"18313:77:53"},"nativeSrc":"18313:79:53","nodeType":"YulFunctionCall","src":"18313:79:53"},"nativeSrc":"18313:79:53","nodeType":"YulExpressionStatement","src":"18313:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18286:7:53","nodeType":"YulIdentifier","src":"18286:7:53"},{"name":"headStart","nativeSrc":"18295:9:53","nodeType":"YulIdentifier","src":"18295:9:53"}],"functionName":{"name":"sub","nativeSrc":"18282:3:53","nodeType":"YulIdentifier","src":"18282:3:53"},"nativeSrc":"18282:23:53","nodeType":"YulFunctionCall","src":"18282:23:53"},{"kind":"number","nativeSrc":"18307:2:53","nodeType":"YulLiteral","src":"18307:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18278:3:53","nodeType":"YulIdentifier","src":"18278:3:53"},"nativeSrc":"18278:32:53","nodeType":"YulFunctionCall","src":"18278:32:53"},"nativeSrc":"18275:119:53","nodeType":"YulIf","src":"18275:119:53"},{"nativeSrc":"18404:125:53","nodeType":"YulBlock","src":"18404:125:53","statements":[{"nativeSrc":"18419:15:53","nodeType":"YulVariableDeclaration","src":"18419:15:53","value":{"kind":"number","nativeSrc":"18433:1:53","nodeType":"YulLiteral","src":"18433:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18423:6:53","nodeType":"YulTypedName","src":"18423:6:53","type":""}]},{"nativeSrc":"18448:71:53","nodeType":"YulAssignment","src":"18448:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18491:9:53","nodeType":"YulIdentifier","src":"18491:9:53"},{"name":"offset","nativeSrc":"18502:6:53","nodeType":"YulIdentifier","src":"18502:6:53"}],"functionName":{"name":"add","nativeSrc":"18487:3:53","nodeType":"YulIdentifier","src":"18487:3:53"},"nativeSrc":"18487:22:53","nodeType":"YulFunctionCall","src":"18487:22:53"},{"name":"dataEnd","nativeSrc":"18511:7:53","nodeType":"YulIdentifier","src":"18511:7:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18458:28:53","nodeType":"YulIdentifier","src":"18458:28:53"},"nativeSrc":"18458:61:53","nodeType":"YulFunctionCall","src":"18458:61:53"},"variableNames":[{"name":"value0","nativeSrc":"18448:6:53","nodeType":"YulIdentifier","src":"18448:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"18191:345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18235:9:53","nodeType":"YulTypedName","src":"18235:9:53","type":""},{"name":"dataEnd","nativeSrc":"18246:7:53","nodeType":"YulTypedName","src":"18246:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18258:6:53","nodeType":"YulTypedName","src":"18258:6:53","type":""}],"src":"18191:345:53"},{"body":{"nativeSrc":"18607:53:53","nodeType":"YulBlock","src":"18607:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18624:3:53","nodeType":"YulIdentifier","src":"18624:3:53"},{"arguments":[{"name":"value","nativeSrc":"18647:5:53","nodeType":"YulIdentifier","src":"18647:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"18629:17:53","nodeType":"YulIdentifier","src":"18629:17:53"},"nativeSrc":"18629:24:53","nodeType":"YulFunctionCall","src":"18629:24:53"}],"functionName":{"name":"mstore","nativeSrc":"18617:6:53","nodeType":"YulIdentifier","src":"18617:6:53"},"nativeSrc":"18617:37:53","nodeType":"YulFunctionCall","src":"18617:37:53"},"nativeSrc":"18617:37:53","nodeType":"YulExpressionStatement","src":"18617:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18542:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18595:5:53","nodeType":"YulTypedName","src":"18595:5:53","type":""},{"name":"pos","nativeSrc":"18602:3:53","nodeType":"YulTypedName","src":"18602:3:53","type":""}],"src":"18542:118:53"},{"body":{"nativeSrc":"18764:124:53","nodeType":"YulBlock","src":"18764:124:53","statements":[{"nativeSrc":"18774:26:53","nodeType":"YulAssignment","src":"18774:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18786:9:53","nodeType":"YulIdentifier","src":"18786:9:53"},{"kind":"number","nativeSrc":"18797:2:53","nodeType":"YulLiteral","src":"18797:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18782:3:53","nodeType":"YulIdentifier","src":"18782:3:53"},"nativeSrc":"18782:18:53","nodeType":"YulFunctionCall","src":"18782:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18774:4:53","nodeType":"YulIdentifier","src":"18774:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18854:6:53","nodeType":"YulIdentifier","src":"18854:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18867:9:53","nodeType":"YulIdentifier","src":"18867:9:53"},{"kind":"number","nativeSrc":"18878:1:53","nodeType":"YulLiteral","src":"18878:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18863:3:53","nodeType":"YulIdentifier","src":"18863:3:53"},"nativeSrc":"18863:17:53","nodeType":"YulFunctionCall","src":"18863:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18810:43:53","nodeType":"YulIdentifier","src":"18810:43:53"},"nativeSrc":"18810:71:53","nodeType":"YulFunctionCall","src":"18810:71:53"},"nativeSrc":"18810:71:53","nodeType":"YulExpressionStatement","src":"18810:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"18666:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18736:9:53","nodeType":"YulTypedName","src":"18736:9:53","type":""},{"name":"value0","nativeSrc":"18748:6:53","nodeType":"YulTypedName","src":"18748:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18759:4:53","nodeType":"YulTypedName","src":"18759:4:53","type":""}],"src":"18666:222:53"},{"body":{"nativeSrc":"18975:82:53","nodeType":"YulBlock","src":"18975:82:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18992:3:53","nodeType":"YulIdentifier","src":"18992:3:53"},{"arguments":[{"name":"value","nativeSrc":"19044:5:53","nodeType":"YulIdentifier","src":"19044:5:53"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"18997:46:53","nodeType":"YulIdentifier","src":"18997:46:53"},"nativeSrc":"18997:53:53","nodeType":"YulFunctionCall","src":"18997:53:53"}],"functionName":{"name":"mstore","nativeSrc":"18985:6:53","nodeType":"YulIdentifier","src":"18985:6:53"},"nativeSrc":"18985:66:53","nodeType":"YulFunctionCall","src":"18985:66:53"},"nativeSrc":"18985:66:53","nodeType":"YulExpressionStatement","src":"18985:66:53"}]},"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack","nativeSrc":"18894:163:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18963:5:53","nodeType":"YulTypedName","src":"18963:5:53","type":""},{"name":"pos","nativeSrc":"18970:3:53","nodeType":"YulTypedName","src":"18970:3:53","type":""}],"src":"18894:163:53"},{"body":{"nativeSrc":"19205:222:53","nodeType":"YulBlock","src":"19205:222:53","statements":[{"nativeSrc":"19215:26:53","nodeType":"YulAssignment","src":"19215:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"19227:9:53","nodeType":"YulIdentifier","src":"19227:9:53"},{"kind":"number","nativeSrc":"19238:2:53","nodeType":"YulLiteral","src":"19238:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19223:3:53","nodeType":"YulIdentifier","src":"19223:3:53"},"nativeSrc":"19223:18:53","nodeType":"YulFunctionCall","src":"19223:18:53"},"variableNames":[{"name":"tail","nativeSrc":"19215:4:53","nodeType":"YulIdentifier","src":"19215:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19311:6:53","nodeType":"YulIdentifier","src":"19311:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19324:9:53","nodeType":"YulIdentifier","src":"19324:9:53"},{"kind":"number","nativeSrc":"19335:1:53","nodeType":"YulLiteral","src":"19335:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19320:3:53","nodeType":"YulIdentifier","src":"19320:3:53"},"nativeSrc":"19320:17:53","nodeType":"YulFunctionCall","src":"19320:17:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack","nativeSrc":"19251:59:53","nodeType":"YulIdentifier","src":"19251:59:53"},"nativeSrc":"19251:87:53","nodeType":"YulFunctionCall","src":"19251:87:53"},"nativeSrc":"19251:87:53","nodeType":"YulExpressionStatement","src":"19251:87:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19392:6:53","nodeType":"YulIdentifier","src":"19392:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19405:9:53","nodeType":"YulIdentifier","src":"19405:9:53"},{"kind":"number","nativeSrc":"19416:2:53","nodeType":"YulLiteral","src":"19416:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19401:3:53","nodeType":"YulIdentifier","src":"19401:3:53"},"nativeSrc":"19401:18:53","nodeType":"YulFunctionCall","src":"19401:18:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"19348:43:53","nodeType":"YulIdentifier","src":"19348:43:53"},"nativeSrc":"19348:72:53","nodeType":"YulFunctionCall","src":"19348:72:53"},"nativeSrc":"19348:72:53","nodeType":"YulExpressionStatement","src":"19348:72:53"}]},"name":"abi_encode_tuple_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed","nativeSrc":"19063:364:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19169:9:53","nodeType":"YulTypedName","src":"19169:9:53","type":""},{"name":"value1","nativeSrc":"19181:6:53","nodeType":"YulTypedName","src":"19181:6:53","type":""},{"name":"value0","nativeSrc":"19189:6:53","nodeType":"YulTypedName","src":"19189:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19200:4:53","nodeType":"YulTypedName","src":"19200:4:53","type":""}],"src":"19063:364:53"},{"body":{"nativeSrc":"19579:149:53","nodeType":"YulBlock","src":"19579:149:53","statements":[{"nativeSrc":"19590:112:53","nodeType":"YulAssignment","src":"19590:112:53","value":{"arguments":[{"name":"value0","nativeSrc":"19681:6:53","nodeType":"YulIdentifier","src":"19681:6:53"},{"name":"value1","nativeSrc":"19689:6:53","nodeType":"YulIdentifier","src":"19689:6:53"},{"name":"pos","nativeSrc":"19698:3:53","nodeType":"YulIdentifier","src":"19698:3:53"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"19597:83:53","nodeType":"YulIdentifier","src":"19597:83:53"},"nativeSrc":"19597:105:53","nodeType":"YulFunctionCall","src":"19597:105:53"},"variableNames":[{"name":"pos","nativeSrc":"19590:3:53","nodeType":"YulIdentifier","src":"19590:3:53"}]},{"nativeSrc":"19712:10:53","nodeType":"YulAssignment","src":"19712:10:53","value":{"name":"pos","nativeSrc":"19719:3:53","nodeType":"YulIdentifier","src":"19719:3:53"},"variableNames":[{"name":"end","nativeSrc":"19712:3:53","nodeType":"YulIdentifier","src":"19712:3:53"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"19433:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19550:3:53","nodeType":"YulTypedName","src":"19550:3:53","type":""},{"name":"value1","nativeSrc":"19556:6:53","nodeType":"YulTypedName","src":"19556:6:53","type":""},{"name":"value0","nativeSrc":"19564:6:53","nodeType":"YulTypedName","src":"19564:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19575:3:53","nodeType":"YulTypedName","src":"19575:3:53","type":""}],"src":"19433:295:53"},{"body":{"nativeSrc":"19777:53:53","nodeType":"YulBlock","src":"19777:53:53","statements":[{"nativeSrc":"19787:36:53","nodeType":"YulAssignment","src":"19787:36:53","value":{"arguments":[{"kind":"number","nativeSrc":"19812:3:53","nodeType":"YulLiteral","src":"19812:3:53","type":"","value":"248"},{"name":"value","nativeSrc":"19817:5:53","nodeType":"YulIdentifier","src":"19817:5:53"}],"functionName":{"name":"shl","nativeSrc":"19808:3:53","nodeType":"YulIdentifier","src":"19808:3:53"},"nativeSrc":"19808:15:53","nodeType":"YulFunctionCall","src":"19808:15:53"},"variableNames":[{"name":"newValue","nativeSrc":"19787:8:53","nodeType":"YulIdentifier","src":"19787:8:53"}]}]},"name":"shift_left_248","nativeSrc":"19734:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19758:5:53","nodeType":"YulTypedName","src":"19758:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"19768:8:53","nodeType":"YulTypedName","src":"19768:8:53","type":""}],"src":"19734:96:53"},{"body":{"nativeSrc":"19881:48:53","nodeType":"YulBlock","src":"19881:48:53","statements":[{"nativeSrc":"19891:32:53","nodeType":"YulAssignment","src":"19891:32:53","value":{"arguments":[{"name":"value","nativeSrc":"19917:5:53","nodeType":"YulIdentifier","src":"19917:5:53"}],"functionName":{"name":"shift_left_248","nativeSrc":"19902:14:53","nodeType":"YulIdentifier","src":"19902:14:53"},"nativeSrc":"19902:21:53","nodeType":"YulFunctionCall","src":"19902:21:53"},"variableNames":[{"name":"aligned","nativeSrc":"19891:7:53","nodeType":"YulIdentifier","src":"19891:7:53"}]}]},"name":"leftAlign_t_uint8","nativeSrc":"19836:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19863:5:53","nodeType":"YulTypedName","src":"19863:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"19873:7:53","nodeType":"YulTypedName","src":"19873:7:53","type":""}],"src":"19836:93:53"},{"body":{"nativeSrc":"20034:101:53","nodeType":"YulBlock","src":"20034:101:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20051:3:53","nodeType":"YulIdentifier","src":"20051:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20121:5:53","nodeType":"YulIdentifier","src":"20121:5:53"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"20074:46:53","nodeType":"YulIdentifier","src":"20074:46:53"},"nativeSrc":"20074:53:53","nodeType":"YulFunctionCall","src":"20074:53:53"}],"functionName":{"name":"leftAlign_t_uint8","nativeSrc":"20056:17:53","nodeType":"YulIdentifier","src":"20056:17:53"},"nativeSrc":"20056:72:53","nodeType":"YulFunctionCall","src":"20056:72:53"}],"functionName":{"name":"mstore","nativeSrc":"20044:6:53","nodeType":"YulIdentifier","src":"20044:6:53"},"nativeSrc":"20044:85:53","nodeType":"YulFunctionCall","src":"20044:85:53"},"nativeSrc":"20044:85:53","nodeType":"YulExpressionStatement","src":"20044:85:53"}]},"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"19935:200:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20022:5:53","nodeType":"YulTypedName","src":"20022:5:53","type":""},{"name":"pos","nativeSrc":"20029:3:53","nodeType":"YulTypedName","src":"20029:3:53","type":""}],"src":"19935:200:53"},{"body":{"nativeSrc":"20387:503:53","nodeType":"YulBlock","src":"20387:503:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"20476:6:53","nodeType":"YulIdentifier","src":"20476:6:53"},{"name":"pos","nativeSrc":"20485:3:53","nodeType":"YulIdentifier","src":"20485:3:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"20398:77:53","nodeType":"YulIdentifier","src":"20398:77:53"},"nativeSrc":"20398:91:53","nodeType":"YulFunctionCall","src":"20398:91:53"},"nativeSrc":"20398:91:53","nodeType":"YulExpressionStatement","src":"20398:91:53"},{"nativeSrc":"20498:18:53","nodeType":"YulAssignment","src":"20498:18:53","value":{"arguments":[{"name":"pos","nativeSrc":"20509:3:53","nodeType":"YulIdentifier","src":"20509:3:53"},{"kind":"number","nativeSrc":"20514:1:53","nodeType":"YulLiteral","src":"20514:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20505:3:53","nodeType":"YulIdentifier","src":"20505:3:53"},"nativeSrc":"20505:11:53","nodeType":"YulFunctionCall","src":"20505:11:53"},"variableNames":[{"name":"pos","nativeSrc":"20498:3:53","nodeType":"YulIdentifier","src":"20498:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"20588:6:53","nodeType":"YulIdentifier","src":"20588:6:53"},{"name":"pos","nativeSrc":"20597:3:53","nodeType":"YulIdentifier","src":"20597:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"20526:61:53","nodeType":"YulIdentifier","src":"20526:61:53"},"nativeSrc":"20526:75:53","nodeType":"YulFunctionCall","src":"20526:75:53"},"nativeSrc":"20526:75:53","nodeType":"YulExpressionStatement","src":"20526:75:53"},{"nativeSrc":"20610:19:53","nodeType":"YulAssignment","src":"20610:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"20621:3:53","nodeType":"YulIdentifier","src":"20621:3:53"},{"kind":"number","nativeSrc":"20626:2:53","nodeType":"YulLiteral","src":"20626:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"20617:3:53","nodeType":"YulIdentifier","src":"20617:3:53"},"nativeSrc":"20617:12:53","nodeType":"YulFunctionCall","src":"20617:12:53"},"variableNames":[{"name":"pos","nativeSrc":"20610:3:53","nodeType":"YulIdentifier","src":"20610:3:53"}]},{"nativeSrc":"20639:112:53","nodeType":"YulAssignment","src":"20639:112:53","value":{"arguments":[{"name":"value2","nativeSrc":"20730:6:53","nodeType":"YulIdentifier","src":"20730:6:53"},{"name":"value3","nativeSrc":"20738:6:53","nodeType":"YulIdentifier","src":"20738:6:53"},{"name":"pos","nativeSrc":"20747:3:53","nodeType":"YulIdentifier","src":"20747:3:53"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"20646:83:53","nodeType":"YulIdentifier","src":"20646:83:53"},"nativeSrc":"20646:105:53","nodeType":"YulFunctionCall","src":"20646:105:53"},"variableNames":[{"name":"pos","nativeSrc":"20639:3:53","nodeType":"YulIdentifier","src":"20639:3:53"}]},{"expression":{"arguments":[{"name":"value4","nativeSrc":"20823:6:53","nodeType":"YulIdentifier","src":"20823:6:53"},{"name":"pos","nativeSrc":"20832:3:53","nodeType":"YulIdentifier","src":"20832:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"20761:61:53","nodeType":"YulIdentifier","src":"20761:61:53"},"nativeSrc":"20761:75:53","nodeType":"YulFunctionCall","src":"20761:75:53"},"nativeSrc":"20761:75:53","nodeType":"YulExpressionStatement","src":"20761:75:53"},{"nativeSrc":"20845:19:53","nodeType":"YulAssignment","src":"20845:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"20856:3:53","nodeType":"YulIdentifier","src":"20856:3:53"},{"kind":"number","nativeSrc":"20861:2:53","nodeType":"YulLiteral","src":"20861:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"20852:3:53","nodeType":"YulIdentifier","src":"20852:3:53"},"nativeSrc":"20852:12:53","nodeType":"YulFunctionCall","src":"20852:12:53"},"variableNames":[{"name":"pos","nativeSrc":"20845:3:53","nodeType":"YulIdentifier","src":"20845:3:53"}]},{"nativeSrc":"20874:10:53","nodeType":"YulAssignment","src":"20874:10:53","value":{"name":"pos","nativeSrc":"20881:3:53","nodeType":"YulIdentifier","src":"20881:3:53"},"variableNames":[{"name":"end","nativeSrc":"20874:3:53","nodeType":"YulIdentifier","src":"20874:3:53"}]}]},"name":"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"20141:749:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20334:3:53","nodeType":"YulTypedName","src":"20334:3:53","type":""},{"name":"value4","nativeSrc":"20340:6:53","nodeType":"YulTypedName","src":"20340:6:53","type":""},{"name":"value3","nativeSrc":"20348:6:53","nodeType":"YulTypedName","src":"20348:6:53","type":""},{"name":"value2","nativeSrc":"20356:6:53","nodeType":"YulTypedName","src":"20356:6:53","type":""},{"name":"value1","nativeSrc":"20364:6:53","nodeType":"YulTypedName","src":"20364:6:53","type":""},{"name":"value0","nativeSrc":"20372:6:53","nodeType":"YulTypedName","src":"20372:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20383:3:53","nodeType":"YulTypedName","src":"20383:3:53","type":""}],"src":"20141:749:53"},{"body":{"nativeSrc":"20924:152:53","nodeType":"YulBlock","src":"20924:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20941:1:53","nodeType":"YulLiteral","src":"20941:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20944:77:53","nodeType":"YulLiteral","src":"20944:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20934:6:53","nodeType":"YulIdentifier","src":"20934:6:53"},"nativeSrc":"20934:88:53","nodeType":"YulFunctionCall","src":"20934:88:53"},"nativeSrc":"20934:88:53","nodeType":"YulExpressionStatement","src":"20934:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21038:1:53","nodeType":"YulLiteral","src":"21038:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"21041:4:53","nodeType":"YulLiteral","src":"21041:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"21031:6:53","nodeType":"YulIdentifier","src":"21031:6:53"},"nativeSrc":"21031:15:53","nodeType":"YulFunctionCall","src":"21031:15:53"},"nativeSrc":"21031:15:53","nodeType":"YulExpressionStatement","src":"21031:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21062:1:53","nodeType":"YulLiteral","src":"21062:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21065:4:53","nodeType":"YulLiteral","src":"21065:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21055:6:53","nodeType":"YulIdentifier","src":"21055:6:53"},"nativeSrc":"21055:15:53","nodeType":"YulFunctionCall","src":"21055:15:53"},"nativeSrc":"21055:15:53","nodeType":"YulExpressionStatement","src":"21055:15:53"}]},"name":"panic_error_0x41","nativeSrc":"20896:180:53","nodeType":"YulFunctionDefinition","src":"20896:180:53"},{"body":{"nativeSrc":"21136:87:53","nodeType":"YulBlock","src":"21136:87:53","statements":[{"nativeSrc":"21146:11:53","nodeType":"YulAssignment","src":"21146:11:53","value":{"name":"ptr","nativeSrc":"21154:3:53","nodeType":"YulIdentifier","src":"21154:3:53"},"variableNames":[{"name":"data","nativeSrc":"21146:4:53","nodeType":"YulIdentifier","src":"21146:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21174:1:53","nodeType":"YulLiteral","src":"21174:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"21177:3:53","nodeType":"YulIdentifier","src":"21177:3:53"}],"functionName":{"name":"mstore","nativeSrc":"21167:6:53","nodeType":"YulIdentifier","src":"21167:6:53"},"nativeSrc":"21167:14:53","nodeType":"YulFunctionCall","src":"21167:14:53"},"nativeSrc":"21167:14:53","nodeType":"YulExpressionStatement","src":"21167:14:53"},{"nativeSrc":"21190:26:53","nodeType":"YulAssignment","src":"21190:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"21208:1:53","nodeType":"YulLiteral","src":"21208:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21211:4:53","nodeType":"YulLiteral","src":"21211:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21198:9:53","nodeType":"YulIdentifier","src":"21198:9:53"},"nativeSrc":"21198:18:53","nodeType":"YulFunctionCall","src":"21198:18:53"},"variableNames":[{"name":"data","nativeSrc":"21190:4:53","nodeType":"YulIdentifier","src":"21190:4:53"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"21082:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"21123:3:53","nodeType":"YulTypedName","src":"21123:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"21131:4:53","nodeType":"YulTypedName","src":"21131:4:53","type":""}],"src":"21082:141:53"},{"body":{"nativeSrc":"21273:49:53","nodeType":"YulBlock","src":"21273:49:53","statements":[{"nativeSrc":"21283:33:53","nodeType":"YulAssignment","src":"21283:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21301:5:53","nodeType":"YulIdentifier","src":"21301:5:53"},{"kind":"number","nativeSrc":"21308:2:53","nodeType":"YulLiteral","src":"21308:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"21297:3:53","nodeType":"YulIdentifier","src":"21297:3:53"},"nativeSrc":"21297:14:53","nodeType":"YulFunctionCall","src":"21297:14:53"},{"kind":"number","nativeSrc":"21313:2:53","nodeType":"YulLiteral","src":"21313:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"21293:3:53","nodeType":"YulIdentifier","src":"21293:3:53"},"nativeSrc":"21293:23:53","nodeType":"YulFunctionCall","src":"21293:23:53"},"variableNames":[{"name":"result","nativeSrc":"21283:6:53","nodeType":"YulIdentifier","src":"21283:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"21229:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21256:5:53","nodeType":"YulTypedName","src":"21256:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"21266:6:53","nodeType":"YulTypedName","src":"21266:6:53","type":""}],"src":"21229:93:53"},{"body":{"nativeSrc":"21381:54:53","nodeType":"YulBlock","src":"21381:54:53","statements":[{"nativeSrc":"21391:37:53","nodeType":"YulAssignment","src":"21391:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"21416:4:53","nodeType":"YulIdentifier","src":"21416:4:53"},{"name":"value","nativeSrc":"21422:5:53","nodeType":"YulIdentifier","src":"21422:5:53"}],"functionName":{"name":"shl","nativeSrc":"21412:3:53","nodeType":"YulIdentifier","src":"21412:3:53"},"nativeSrc":"21412:16:53","nodeType":"YulFunctionCall","src":"21412:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"21391:8:53","nodeType":"YulIdentifier","src":"21391:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"21328:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"21356:4:53","nodeType":"YulTypedName","src":"21356:4:53","type":""},{"name":"value","nativeSrc":"21362:5:53","nodeType":"YulTypedName","src":"21362:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"21372:8:53","nodeType":"YulTypedName","src":"21372:8:53","type":""}],"src":"21328:107:53"},{"body":{"nativeSrc":"21517:317:53","nodeType":"YulBlock","src":"21517:317:53","statements":[{"nativeSrc":"21527:35:53","nodeType":"YulVariableDeclaration","src":"21527:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"21548:10:53","nodeType":"YulIdentifier","src":"21548:10:53"},{"kind":"number","nativeSrc":"21560:1:53","nodeType":"YulLiteral","src":"21560:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"21544:3:53","nodeType":"YulIdentifier","src":"21544:3:53"},"nativeSrc":"21544:18:53","nodeType":"YulFunctionCall","src":"21544:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"21531:9:53","nodeType":"YulTypedName","src":"21531:9:53","type":""}]},{"nativeSrc":"21571:109:53","nodeType":"YulVariableDeclaration","src":"21571:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21602:9:53","nodeType":"YulIdentifier","src":"21602:9:53"},{"kind":"number","nativeSrc":"21613:66:53","nodeType":"YulLiteral","src":"21613:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21583:18:53","nodeType":"YulIdentifier","src":"21583:18:53"},"nativeSrc":"21583:97:53","nodeType":"YulFunctionCall","src":"21583:97:53"},"variables":[{"name":"mask","nativeSrc":"21575:4:53","nodeType":"YulTypedName","src":"21575:4:53","type":""}]},{"nativeSrc":"21689:51:53","nodeType":"YulAssignment","src":"21689:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21720:9:53","nodeType":"YulIdentifier","src":"21720:9:53"},{"name":"toInsert","nativeSrc":"21731:8:53","nodeType":"YulIdentifier","src":"21731:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21701:18:53","nodeType":"YulIdentifier","src":"21701:18:53"},"nativeSrc":"21701:39:53","nodeType":"YulFunctionCall","src":"21701:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"21689:8:53","nodeType":"YulIdentifier","src":"21689:8:53"}]},{"nativeSrc":"21749:30:53","nodeType":"YulAssignment","src":"21749:30:53","value":{"arguments":[{"name":"value","nativeSrc":"21762:5:53","nodeType":"YulIdentifier","src":"21762:5:53"},{"arguments":[{"name":"mask","nativeSrc":"21773:4:53","nodeType":"YulIdentifier","src":"21773:4:53"}],"functionName":{"name":"not","nativeSrc":"21769:3:53","nodeType":"YulIdentifier","src":"21769:3:53"},"nativeSrc":"21769:9:53","nodeType":"YulFunctionCall","src":"21769:9:53"}],"functionName":{"name":"and","nativeSrc":"21758:3:53","nodeType":"YulIdentifier","src":"21758:3:53"},"nativeSrc":"21758:21:53","nodeType":"YulFunctionCall","src":"21758:21:53"},"variableNames":[{"name":"value","nativeSrc":"21749:5:53","nodeType":"YulIdentifier","src":"21749:5:53"}]},{"nativeSrc":"21788:40:53","nodeType":"YulAssignment","src":"21788:40:53","value":{"arguments":[{"name":"value","nativeSrc":"21801:5:53","nodeType":"YulIdentifier","src":"21801:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"21812:8:53","nodeType":"YulIdentifier","src":"21812:8:53"},{"name":"mask","nativeSrc":"21822:4:53","nodeType":"YulIdentifier","src":"21822:4:53"}],"functionName":{"name":"and","nativeSrc":"21808:3:53","nodeType":"YulIdentifier","src":"21808:3:53"},"nativeSrc":"21808:19:53","nodeType":"YulFunctionCall","src":"21808:19:53"}],"functionName":{"name":"or","nativeSrc":"21798:2:53","nodeType":"YulIdentifier","src":"21798:2:53"},"nativeSrc":"21798:30:53","nodeType":"YulFunctionCall","src":"21798:30:53"},"variableNames":[{"name":"result","nativeSrc":"21788:6:53","nodeType":"YulIdentifier","src":"21788:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"21441:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21478:5:53","nodeType":"YulTypedName","src":"21478:5:53","type":""},{"name":"shiftBytes","nativeSrc":"21485:10:53","nodeType":"YulTypedName","src":"21485:10:53","type":""},{"name":"toInsert","nativeSrc":"21497:8:53","nodeType":"YulTypedName","src":"21497:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"21510:6:53","nodeType":"YulTypedName","src":"21510:6:53","type":""}],"src":"21441:393:53"},{"body":{"nativeSrc":"21885:32:53","nodeType":"YulBlock","src":"21885:32:53","statements":[{"nativeSrc":"21895:16:53","nodeType":"YulAssignment","src":"21895:16:53","value":{"name":"value","nativeSrc":"21906:5:53","nodeType":"YulIdentifier","src":"21906:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"21895:7:53","nodeType":"YulIdentifier","src":"21895:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"21840:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21867:5:53","nodeType":"YulTypedName","src":"21867:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"21877:7:53","nodeType":"YulTypedName","src":"21877:7:53","type":""}],"src":"21840:77:53"},{"body":{"nativeSrc":"21983:82:53","nodeType":"YulBlock","src":"21983:82:53","statements":[{"nativeSrc":"21993:66:53","nodeType":"YulAssignment","src":"21993:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22051:5:53","nodeType":"YulIdentifier","src":"22051:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22033:17:53","nodeType":"YulIdentifier","src":"22033:17:53"},"nativeSrc":"22033:24:53","nodeType":"YulFunctionCall","src":"22033:24:53"}],"functionName":{"name":"identity","nativeSrc":"22024:8:53","nodeType":"YulIdentifier","src":"22024:8:53"},"nativeSrc":"22024:34:53","nodeType":"YulFunctionCall","src":"22024:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22006:17:53","nodeType":"YulIdentifier","src":"22006:17:53"},"nativeSrc":"22006:53:53","nodeType":"YulFunctionCall","src":"22006:53:53"},"variableNames":[{"name":"converted","nativeSrc":"21993:9:53","nodeType":"YulIdentifier","src":"21993:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"21923:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21963:5:53","nodeType":"YulTypedName","src":"21963:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21973:9:53","nodeType":"YulTypedName","src":"21973:9:53","type":""}],"src":"21923:142:53"},{"body":{"nativeSrc":"22118:28:53","nodeType":"YulBlock","src":"22118:28:53","statements":[{"nativeSrc":"22128:12:53","nodeType":"YulAssignment","src":"22128:12:53","value":{"name":"value","nativeSrc":"22135:5:53","nodeType":"YulIdentifier","src":"22135:5:53"},"variableNames":[{"name":"ret","nativeSrc":"22128:3:53","nodeType":"YulIdentifier","src":"22128:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"22071:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22104:5:53","nodeType":"YulTypedName","src":"22104:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"22114:3:53","nodeType":"YulTypedName","src":"22114:3:53","type":""}],"src":"22071:75:53"},{"body":{"nativeSrc":"22228:193:53","nodeType":"YulBlock","src":"22228:193:53","statements":[{"nativeSrc":"22238:63:53","nodeType":"YulVariableDeclaration","src":"22238:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"22293:7:53","nodeType":"YulIdentifier","src":"22293:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"22262:30:53","nodeType":"YulIdentifier","src":"22262:30:53"},"nativeSrc":"22262:39:53","nodeType":"YulFunctionCall","src":"22262:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"22242:16:53","nodeType":"YulTypedName","src":"22242:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22317:4:53","nodeType":"YulIdentifier","src":"22317:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"22357:4:53","nodeType":"YulIdentifier","src":"22357:4:53"}],"functionName":{"name":"sload","nativeSrc":"22351:5:53","nodeType":"YulIdentifier","src":"22351:5:53"},"nativeSrc":"22351:11:53","nodeType":"YulFunctionCall","src":"22351:11:53"},{"name":"offset","nativeSrc":"22364:6:53","nodeType":"YulIdentifier","src":"22364:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"22396:16:53","nodeType":"YulIdentifier","src":"22396:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"22372:23:53","nodeType":"YulIdentifier","src":"22372:23:53"},"nativeSrc":"22372:41:53","nodeType":"YulFunctionCall","src":"22372:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"22323:27:53","nodeType":"YulIdentifier","src":"22323:27:53"},"nativeSrc":"22323:91:53","nodeType":"YulFunctionCall","src":"22323:91:53"}],"functionName":{"name":"sstore","nativeSrc":"22310:6:53","nodeType":"YulIdentifier","src":"22310:6:53"},"nativeSrc":"22310:105:53","nodeType":"YulFunctionCall","src":"22310:105:53"},"nativeSrc":"22310:105:53","nodeType":"YulExpressionStatement","src":"22310:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"22152:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22205:4:53","nodeType":"YulTypedName","src":"22205:4:53","type":""},{"name":"offset","nativeSrc":"22211:6:53","nodeType":"YulTypedName","src":"22211:6:53","type":""},{"name":"value_0","nativeSrc":"22219:7:53","nodeType":"YulTypedName","src":"22219:7:53","type":""}],"src":"22152:269:53"},{"body":{"nativeSrc":"22476:24:53","nodeType":"YulBlock","src":"22476:24:53","statements":[{"nativeSrc":"22486:8:53","nodeType":"YulAssignment","src":"22486:8:53","value":{"kind":"number","nativeSrc":"22493:1:53","nodeType":"YulLiteral","src":"22493:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"22486:3:53","nodeType":"YulIdentifier","src":"22486:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"22427:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"22472:3:53","nodeType":"YulTypedName","src":"22472:3:53","type":""}],"src":"22427:73:53"},{"body":{"nativeSrc":"22559:136:53","nodeType":"YulBlock","src":"22559:136:53","statements":[{"nativeSrc":"22569:46:53","nodeType":"YulVariableDeclaration","src":"22569:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"22583:30:53","nodeType":"YulIdentifier","src":"22583:30:53"},"nativeSrc":"22583:32:53","nodeType":"YulFunctionCall","src":"22583:32:53"},"variables":[{"name":"zero_0","nativeSrc":"22573:6:53","nodeType":"YulTypedName","src":"22573:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22668:4:53","nodeType":"YulIdentifier","src":"22668:4:53"},{"name":"offset","nativeSrc":"22674:6:53","nodeType":"YulIdentifier","src":"22674:6:53"},{"name":"zero_0","nativeSrc":"22682:6:53","nodeType":"YulIdentifier","src":"22682:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"22624:43:53","nodeType":"YulIdentifier","src":"22624:43:53"},"nativeSrc":"22624:65:53","nodeType":"YulFunctionCall","src":"22624:65:53"},"nativeSrc":"22624:65:53","nodeType":"YulExpressionStatement","src":"22624:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"22506:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22545:4:53","nodeType":"YulTypedName","src":"22545:4:53","type":""},{"name":"offset","nativeSrc":"22551:6:53","nodeType":"YulTypedName","src":"22551:6:53","type":""}],"src":"22506:189:53"},{"body":{"nativeSrc":"22751:136:53","nodeType":"YulBlock","src":"22751:136:53","statements":[{"body":{"nativeSrc":"22818:63:53","nodeType":"YulBlock","src":"22818:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"22862:5:53","nodeType":"YulIdentifier","src":"22862:5:53"},{"kind":"number","nativeSrc":"22869:1:53","nodeType":"YulLiteral","src":"22869:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"22832:29:53","nodeType":"YulIdentifier","src":"22832:29:53"},"nativeSrc":"22832:39:53","nodeType":"YulFunctionCall","src":"22832:39:53"},"nativeSrc":"22832:39:53","nodeType":"YulExpressionStatement","src":"22832:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"22771:5:53","nodeType":"YulIdentifier","src":"22771:5:53"},{"name":"end","nativeSrc":"22778:3:53","nodeType":"YulIdentifier","src":"22778:3:53"}],"functionName":{"name":"lt","nativeSrc":"22768:2:53","nodeType":"YulIdentifier","src":"22768:2:53"},"nativeSrc":"22768:14:53","nodeType":"YulFunctionCall","src":"22768:14:53"},"nativeSrc":"22761:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"22783:26:53","nodeType":"YulBlock","src":"22783:26:53","statements":[{"nativeSrc":"22785:22:53","nodeType":"YulAssignment","src":"22785:22:53","value":{"arguments":[{"name":"start","nativeSrc":"22798:5:53","nodeType":"YulIdentifier","src":"22798:5:53"},{"kind":"number","nativeSrc":"22805:1:53","nodeType":"YulLiteral","src":"22805:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22794:3:53","nodeType":"YulIdentifier","src":"22794:3:53"},"nativeSrc":"22794:13:53","nodeType":"YulFunctionCall","src":"22794:13:53"},"variableNames":[{"name":"start","nativeSrc":"22785:5:53","nodeType":"YulIdentifier","src":"22785:5:53"}]}]},"pre":{"nativeSrc":"22765:2:53","nodeType":"YulBlock","src":"22765:2:53","statements":[]},"src":"22761:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"22701:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"22739:5:53","nodeType":"YulTypedName","src":"22739:5:53","type":""},{"name":"end","nativeSrc":"22746:3:53","nodeType":"YulTypedName","src":"22746:3:53","type":""}],"src":"22701:186:53"},{"body":{"nativeSrc":"22972:464:53","nodeType":"YulBlock","src":"22972:464:53","statements":[{"body":{"nativeSrc":"22998:431:53","nodeType":"YulBlock","src":"22998:431:53","statements":[{"nativeSrc":"23012:54:53","nodeType":"YulVariableDeclaration","src":"23012:54:53","value":{"arguments":[{"name":"array","nativeSrc":"23060:5:53","nodeType":"YulIdentifier","src":"23060:5:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"23028:31:53","nodeType":"YulIdentifier","src":"23028:31:53"},"nativeSrc":"23028:38:53","nodeType":"YulFunctionCall","src":"23028:38:53"},"variables":[{"name":"dataArea","nativeSrc":"23016:8:53","nodeType":"YulTypedName","src":"23016:8:53","type":""}]},{"nativeSrc":"23079:63:53","nodeType":"YulVariableDeclaration","src":"23079:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"23102:8:53","nodeType":"YulIdentifier","src":"23102:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"23130:10:53","nodeType":"YulIdentifier","src":"23130:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"23112:17:53","nodeType":"YulIdentifier","src":"23112:17:53"},"nativeSrc":"23112:29:53","nodeType":"YulFunctionCall","src":"23112:29:53"}],"functionName":{"name":"add","nativeSrc":"23098:3:53","nodeType":"YulIdentifier","src":"23098:3:53"},"nativeSrc":"23098:44:53","nodeType":"YulFunctionCall","src":"23098:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"23083:11:53","nodeType":"YulTypedName","src":"23083:11:53","type":""}]},{"body":{"nativeSrc":"23299:27:53","nodeType":"YulBlock","src":"23299:27:53","statements":[{"nativeSrc":"23301:23:53","nodeType":"YulAssignment","src":"23301:23:53","value":{"name":"dataArea","nativeSrc":"23316:8:53","nodeType":"YulIdentifier","src":"23316:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"23301:11:53","nodeType":"YulIdentifier","src":"23301:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"23283:10:53","nodeType":"YulIdentifier","src":"23283:10:53"},{"kind":"number","nativeSrc":"23295:2:53","nodeType":"YulLiteral","src":"23295:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"23280:2:53","nodeType":"YulIdentifier","src":"23280:2:53"},"nativeSrc":"23280:18:53","nodeType":"YulFunctionCall","src":"23280:18:53"},"nativeSrc":"23277:49:53","nodeType":"YulIf","src":"23277:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"23368:11:53","nodeType":"YulIdentifier","src":"23368:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"23385:8:53","nodeType":"YulIdentifier","src":"23385:8:53"},{"arguments":[{"name":"len","nativeSrc":"23413:3:53","nodeType":"YulIdentifier","src":"23413:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"23395:17:53","nodeType":"YulIdentifier","src":"23395:17:53"},"nativeSrc":"23395:22:53","nodeType":"YulFunctionCall","src":"23395:22:53"}],"functionName":{"name":"add","nativeSrc":"23381:3:53","nodeType":"YulIdentifier","src":"23381:3:53"},"nativeSrc":"23381:37:53","nodeType":"YulFunctionCall","src":"23381:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"23339:28:53","nodeType":"YulIdentifier","src":"23339:28:53"},"nativeSrc":"23339:80:53","nodeType":"YulFunctionCall","src":"23339:80:53"},"nativeSrc":"23339:80:53","nodeType":"YulExpressionStatement","src":"23339:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"22989:3:53","nodeType":"YulIdentifier","src":"22989:3:53"},{"kind":"number","nativeSrc":"22994:2:53","nodeType":"YulLiteral","src":"22994:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22986:2:53","nodeType":"YulIdentifier","src":"22986:2:53"},"nativeSrc":"22986:11:53","nodeType":"YulFunctionCall","src":"22986:11:53"},"nativeSrc":"22983:446:53","nodeType":"YulIf","src":"22983:446:53"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"22893:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"22948:5:53","nodeType":"YulTypedName","src":"22948:5:53","type":""},{"name":"len","nativeSrc":"22955:3:53","nodeType":"YulTypedName","src":"22955:3:53","type":""},{"name":"startIndex","nativeSrc":"22960:10:53","nodeType":"YulTypedName","src":"22960:10:53","type":""}],"src":"22893:543:53"},{"body":{"nativeSrc":"23505:54:53","nodeType":"YulBlock","src":"23505:54:53","statements":[{"nativeSrc":"23515:37:53","nodeType":"YulAssignment","src":"23515:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"23540:4:53","nodeType":"YulIdentifier","src":"23540:4:53"},{"name":"value","nativeSrc":"23546:5:53","nodeType":"YulIdentifier","src":"23546:5:53"}],"functionName":{"name":"shr","nativeSrc":"23536:3:53","nodeType":"YulIdentifier","src":"23536:3:53"},"nativeSrc":"23536:16:53","nodeType":"YulFunctionCall","src":"23536:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"23515:8:53","nodeType":"YulIdentifier","src":"23515:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"23442:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"23480:4:53","nodeType":"YulTypedName","src":"23480:4:53","type":""},{"name":"value","nativeSrc":"23486:5:53","nodeType":"YulTypedName","src":"23486:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"23496:8:53","nodeType":"YulTypedName","src":"23496:8:53","type":""}],"src":"23442:117:53"},{"body":{"nativeSrc":"23616:118:53","nodeType":"YulBlock","src":"23616:118:53","statements":[{"nativeSrc":"23626:68:53","nodeType":"YulVariableDeclaration","src":"23626:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23675:1:53","nodeType":"YulLiteral","src":"23675:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"23678:5:53","nodeType":"YulIdentifier","src":"23678:5:53"}],"functionName":{"name":"mul","nativeSrc":"23671:3:53","nodeType":"YulIdentifier","src":"23671:3:53"},"nativeSrc":"23671:13:53","nodeType":"YulFunctionCall","src":"23671:13:53"},{"arguments":[{"kind":"number","nativeSrc":"23690:1:53","nodeType":"YulLiteral","src":"23690:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23686:3:53","nodeType":"YulIdentifier","src":"23686:3:53"},"nativeSrc":"23686:6:53","nodeType":"YulFunctionCall","src":"23686:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"23642:28:53","nodeType":"YulIdentifier","src":"23642:28:53"},"nativeSrc":"23642:51:53","nodeType":"YulFunctionCall","src":"23642:51:53"}],"functionName":{"name":"not","nativeSrc":"23638:3:53","nodeType":"YulIdentifier","src":"23638:3:53"},"nativeSrc":"23638:56:53","nodeType":"YulFunctionCall","src":"23638:56:53"},"variables":[{"name":"mask","nativeSrc":"23630:4:53","nodeType":"YulTypedName","src":"23630:4:53","type":""}]},{"nativeSrc":"23703:25:53","nodeType":"YulAssignment","src":"23703:25:53","value":{"arguments":[{"name":"data","nativeSrc":"23717:4:53","nodeType":"YulIdentifier","src":"23717:4:53"},{"name":"mask","nativeSrc":"23723:4:53","nodeType":"YulIdentifier","src":"23723:4:53"}],"functionName":{"name":"and","nativeSrc":"23713:3:53","nodeType":"YulIdentifier","src":"23713:3:53"},"nativeSrc":"23713:15:53","nodeType":"YulFunctionCall","src":"23713:15:53"},"variableNames":[{"name":"result","nativeSrc":"23703:6:53","nodeType":"YulIdentifier","src":"23703:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"23565:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23593:4:53","nodeType":"YulTypedName","src":"23593:4:53","type":""},{"name":"bytes","nativeSrc":"23599:5:53","nodeType":"YulTypedName","src":"23599:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"23609:6:53","nodeType":"YulTypedName","src":"23609:6:53","type":""}],"src":"23565:169:53"},{"body":{"nativeSrc":"23820:214:53","nodeType":"YulBlock","src":"23820:214:53","statements":[{"nativeSrc":"23953:37:53","nodeType":"YulAssignment","src":"23953:37:53","value":{"arguments":[{"name":"data","nativeSrc":"23980:4:53","nodeType":"YulIdentifier","src":"23980:4:53"},{"name":"len","nativeSrc":"23986:3:53","nodeType":"YulIdentifier","src":"23986:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"23961:18:53","nodeType":"YulIdentifier","src":"23961:18:53"},"nativeSrc":"23961:29:53","nodeType":"YulFunctionCall","src":"23961:29:53"},"variableNames":[{"name":"data","nativeSrc":"23953:4:53","nodeType":"YulIdentifier","src":"23953:4:53"}]},{"nativeSrc":"23999:29:53","nodeType":"YulAssignment","src":"23999:29:53","value":{"arguments":[{"name":"data","nativeSrc":"24010:4:53","nodeType":"YulIdentifier","src":"24010:4:53"},{"arguments":[{"kind":"number","nativeSrc":"24020:1:53","nodeType":"YulLiteral","src":"24020:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"24023:3:53","nodeType":"YulIdentifier","src":"24023:3:53"}],"functionName":{"name":"mul","nativeSrc":"24016:3:53","nodeType":"YulIdentifier","src":"24016:3:53"},"nativeSrc":"24016:11:53","nodeType":"YulFunctionCall","src":"24016:11:53"}],"functionName":{"name":"or","nativeSrc":"24007:2:53","nodeType":"YulIdentifier","src":"24007:2:53"},"nativeSrc":"24007:21:53","nodeType":"YulFunctionCall","src":"24007:21:53"},"variableNames":[{"name":"used","nativeSrc":"23999:4:53","nodeType":"YulIdentifier","src":"23999:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"23739:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23801:4:53","nodeType":"YulTypedName","src":"23801:4:53","type":""},{"name":"len","nativeSrc":"23807:3:53","nodeType":"YulTypedName","src":"23807:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"23815:4:53","nodeType":"YulTypedName","src":"23815:4:53","type":""}],"src":"23739:295:53"},{"body":{"nativeSrc":"24131:1303:53","nodeType":"YulBlock","src":"24131:1303:53","statements":[{"nativeSrc":"24142:51:53","nodeType":"YulVariableDeclaration","src":"24142:51:53","value":{"arguments":[{"name":"src","nativeSrc":"24189:3:53","nodeType":"YulIdentifier","src":"24189:3:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"24156:32:53","nodeType":"YulIdentifier","src":"24156:32:53"},"nativeSrc":"24156:37:53","nodeType":"YulFunctionCall","src":"24156:37:53"},"variables":[{"name":"newLen","nativeSrc":"24146:6:53","nodeType":"YulTypedName","src":"24146:6:53","type":""}]},{"body":{"nativeSrc":"24278:22:53","nodeType":"YulBlock","src":"24278:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"24280:16:53","nodeType":"YulIdentifier","src":"24280:16:53"},"nativeSrc":"24280:18:53","nodeType":"YulFunctionCall","src":"24280:18:53"},"nativeSrc":"24280:18:53","nodeType":"YulExpressionStatement","src":"24280:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"24250:6:53","nodeType":"YulIdentifier","src":"24250:6:53"},{"kind":"number","nativeSrc":"24258:18:53","nodeType":"YulLiteral","src":"24258:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24247:2:53","nodeType":"YulIdentifier","src":"24247:2:53"},"nativeSrc":"24247:30:53","nodeType":"YulFunctionCall","src":"24247:30:53"},"nativeSrc":"24244:56:53","nodeType":"YulIf","src":"24244:56:53"},{"nativeSrc":"24310:52:53","nodeType":"YulVariableDeclaration","src":"24310:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"24356:4:53","nodeType":"YulIdentifier","src":"24356:4:53"}],"functionName":{"name":"sload","nativeSrc":"24350:5:53","nodeType":"YulIdentifier","src":"24350:5:53"},"nativeSrc":"24350:11:53","nodeType":"YulFunctionCall","src":"24350:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"24324:25:53","nodeType":"YulIdentifier","src":"24324:25:53"},"nativeSrc":"24324:38:53","nodeType":"YulFunctionCall","src":"24324:38:53"},"variables":[{"name":"oldLen","nativeSrc":"24314:6:53","nodeType":"YulTypedName","src":"24314:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24455:4:53","nodeType":"YulIdentifier","src":"24455:4:53"},{"name":"oldLen","nativeSrc":"24461:6:53","nodeType":"YulIdentifier","src":"24461:6:53"},{"name":"newLen","nativeSrc":"24469:6:53","nodeType":"YulIdentifier","src":"24469:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"24409:45:53","nodeType":"YulIdentifier","src":"24409:45:53"},"nativeSrc":"24409:67:53","nodeType":"YulFunctionCall","src":"24409:67:53"},"nativeSrc":"24409:67:53","nodeType":"YulExpressionStatement","src":"24409:67:53"},{"nativeSrc":"24486:18:53","nodeType":"YulVariableDeclaration","src":"24486:18:53","value":{"kind":"number","nativeSrc":"24503:1:53","nodeType":"YulLiteral","src":"24503:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"24490:9:53","nodeType":"YulTypedName","src":"24490:9:53","type":""}]},{"nativeSrc":"24514:17:53","nodeType":"YulAssignment","src":"24514:17:53","value":{"kind":"number","nativeSrc":"24527:4:53","nodeType":"YulLiteral","src":"24527:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"24514:9:53","nodeType":"YulIdentifier","src":"24514:9:53"}]},{"cases":[{"body":{"nativeSrc":"24578:611:53","nodeType":"YulBlock","src":"24578:611:53","statements":[{"nativeSrc":"24592:37:53","nodeType":"YulVariableDeclaration","src":"24592:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"24611:6:53","nodeType":"YulIdentifier","src":"24611:6:53"},{"arguments":[{"kind":"number","nativeSrc":"24623:4:53","nodeType":"YulLiteral","src":"24623:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"24619:3:53","nodeType":"YulIdentifier","src":"24619:3:53"},"nativeSrc":"24619:9:53","nodeType":"YulFunctionCall","src":"24619:9:53"}],"functionName":{"name":"and","nativeSrc":"24607:3:53","nodeType":"YulIdentifier","src":"24607:3:53"},"nativeSrc":"24607:22:53","nodeType":"YulFunctionCall","src":"24607:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"24596:7:53","nodeType":"YulTypedName","src":"24596:7:53","type":""}]},{"nativeSrc":"24643:51:53","nodeType":"YulVariableDeclaration","src":"24643:51:53","value":{"arguments":[{"name":"slot","nativeSrc":"24689:4:53","nodeType":"YulIdentifier","src":"24689:4:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"24657:31:53","nodeType":"YulIdentifier","src":"24657:31:53"},"nativeSrc":"24657:37:53","nodeType":"YulFunctionCall","src":"24657:37:53"},"variables":[{"name":"dstPtr","nativeSrc":"24647:6:53","nodeType":"YulTypedName","src":"24647:6:53","type":""}]},{"nativeSrc":"24707:10:53","nodeType":"YulVariableDeclaration","src":"24707:10:53","value":{"kind":"number","nativeSrc":"24716:1:53","nodeType":"YulLiteral","src":"24716:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"24711:1:53","nodeType":"YulTypedName","src":"24711:1:53","type":""}]},{"body":{"nativeSrc":"24775:163:53","nodeType":"YulBlock","src":"24775:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24800:6:53","nodeType":"YulIdentifier","src":"24800:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24818:3:53","nodeType":"YulIdentifier","src":"24818:3:53"},{"name":"srcOffset","nativeSrc":"24823:9:53","nodeType":"YulIdentifier","src":"24823:9:53"}],"functionName":{"name":"add","nativeSrc":"24814:3:53","nodeType":"YulIdentifier","src":"24814:3:53"},"nativeSrc":"24814:19:53","nodeType":"YulFunctionCall","src":"24814:19:53"}],"functionName":{"name":"mload","nativeSrc":"24808:5:53","nodeType":"YulIdentifier","src":"24808:5:53"},"nativeSrc":"24808:26:53","nodeType":"YulFunctionCall","src":"24808:26:53"}],"functionName":{"name":"sstore","nativeSrc":"24793:6:53","nodeType":"YulIdentifier","src":"24793:6:53"},"nativeSrc":"24793:42:53","nodeType":"YulFunctionCall","src":"24793:42:53"},"nativeSrc":"24793:42:53","nodeType":"YulExpressionStatement","src":"24793:42:53"},{"nativeSrc":"24852:24:53","nodeType":"YulAssignment","src":"24852:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"24866:6:53","nodeType":"YulIdentifier","src":"24866:6:53"},{"kind":"number","nativeSrc":"24874:1:53","nodeType":"YulLiteral","src":"24874:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24862:3:53","nodeType":"YulIdentifier","src":"24862:3:53"},"nativeSrc":"24862:14:53","nodeType":"YulFunctionCall","src":"24862:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"24852:6:53","nodeType":"YulIdentifier","src":"24852:6:53"}]},{"nativeSrc":"24893:31:53","nodeType":"YulAssignment","src":"24893:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"24910:9:53","nodeType":"YulIdentifier","src":"24910:9:53"},{"kind":"number","nativeSrc":"24921:2:53","nodeType":"YulLiteral","src":"24921:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24906:3:53","nodeType":"YulIdentifier","src":"24906:3:53"},"nativeSrc":"24906:18:53","nodeType":"YulFunctionCall","src":"24906:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"24893:9:53","nodeType":"YulIdentifier","src":"24893:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"24741:1:53","nodeType":"YulIdentifier","src":"24741:1:53"},{"name":"loopEnd","nativeSrc":"24744:7:53","nodeType":"YulIdentifier","src":"24744:7:53"}],"functionName":{"name":"lt","nativeSrc":"24738:2:53","nodeType":"YulIdentifier","src":"24738:2:53"},"nativeSrc":"24738:14:53","nodeType":"YulFunctionCall","src":"24738:14:53"},"nativeSrc":"24730:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"24753:21:53","nodeType":"YulBlock","src":"24753:21:53","statements":[{"nativeSrc":"24755:17:53","nodeType":"YulAssignment","src":"24755:17:53","value":{"arguments":[{"name":"i","nativeSrc":"24764:1:53","nodeType":"YulIdentifier","src":"24764:1:53"},{"kind":"number","nativeSrc":"24767:4:53","nodeType":"YulLiteral","src":"24767:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24760:3:53","nodeType":"YulIdentifier","src":"24760:3:53"},"nativeSrc":"24760:12:53","nodeType":"YulFunctionCall","src":"24760:12:53"},"variableNames":[{"name":"i","nativeSrc":"24755:1:53","nodeType":"YulIdentifier","src":"24755:1:53"}]}]},"pre":{"nativeSrc":"24734:3:53","nodeType":"YulBlock","src":"24734:3:53","statements":[]},"src":"24730:208:53"},{"body":{"nativeSrc":"24974:156:53","nodeType":"YulBlock","src":"24974:156:53","statements":[{"nativeSrc":"24992:43:53","nodeType":"YulVariableDeclaration","src":"24992:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25019:3:53","nodeType":"YulIdentifier","src":"25019:3:53"},{"name":"srcOffset","nativeSrc":"25024:9:53","nodeType":"YulIdentifier","src":"25024:9:53"}],"functionName":{"name":"add","nativeSrc":"25015:3:53","nodeType":"YulIdentifier","src":"25015:3:53"},"nativeSrc":"25015:19:53","nodeType":"YulFunctionCall","src":"25015:19:53"}],"functionName":{"name":"mload","nativeSrc":"25009:5:53","nodeType":"YulIdentifier","src":"25009:5:53"},"nativeSrc":"25009:26:53","nodeType":"YulFunctionCall","src":"25009:26:53"},"variables":[{"name":"lastValue","nativeSrc":"24996:9:53","nodeType":"YulTypedName","src":"24996:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"25059:6:53","nodeType":"YulIdentifier","src":"25059:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"25086:9:53","nodeType":"YulIdentifier","src":"25086:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"25101:6:53","nodeType":"YulIdentifier","src":"25101:6:53"},{"kind":"number","nativeSrc":"25109:4:53","nodeType":"YulLiteral","src":"25109:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"25097:3:53","nodeType":"YulIdentifier","src":"25097:3:53"},"nativeSrc":"25097:17:53","nodeType":"YulFunctionCall","src":"25097:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"25067:18:53","nodeType":"YulIdentifier","src":"25067:18:53"},"nativeSrc":"25067:48:53","nodeType":"YulFunctionCall","src":"25067:48:53"}],"functionName":{"name":"sstore","nativeSrc":"25052:6:53","nodeType":"YulIdentifier","src":"25052:6:53"},"nativeSrc":"25052:64:53","nodeType":"YulFunctionCall","src":"25052:64:53"},"nativeSrc":"25052:64:53","nodeType":"YulExpressionStatement","src":"25052:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"24957:7:53","nodeType":"YulIdentifier","src":"24957:7:53"},{"name":"newLen","nativeSrc":"24966:6:53","nodeType":"YulIdentifier","src":"24966:6:53"}],"functionName":{"name":"lt","nativeSrc":"24954:2:53","nodeType":"YulIdentifier","src":"24954:2:53"},"nativeSrc":"24954:19:53","nodeType":"YulFunctionCall","src":"24954:19:53"},"nativeSrc":"24951:179:53","nodeType":"YulIf","src":"24951:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25150:4:53","nodeType":"YulIdentifier","src":"25150:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"25164:6:53","nodeType":"YulIdentifier","src":"25164:6:53"},{"kind":"number","nativeSrc":"25172:1:53","nodeType":"YulLiteral","src":"25172:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"25160:3:53","nodeType":"YulIdentifier","src":"25160:3:53"},"nativeSrc":"25160:14:53","nodeType":"YulFunctionCall","src":"25160:14:53"},{"kind":"number","nativeSrc":"25176:1:53","nodeType":"YulLiteral","src":"25176:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"25156:3:53","nodeType":"YulIdentifier","src":"25156:3:53"},"nativeSrc":"25156:22:53","nodeType":"YulFunctionCall","src":"25156:22:53"}],"functionName":{"name":"sstore","nativeSrc":"25143:6:53","nodeType":"YulIdentifier","src":"25143:6:53"},"nativeSrc":"25143:36:53","nodeType":"YulFunctionCall","src":"25143:36:53"},"nativeSrc":"25143:36:53","nodeType":"YulExpressionStatement","src":"25143:36:53"}]},"nativeSrc":"24571:618:53","nodeType":"YulCase","src":"24571:618:53","value":{"kind":"number","nativeSrc":"24576:1:53","nodeType":"YulLiteral","src":"24576:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"25206:222:53","nodeType":"YulBlock","src":"25206:222:53","statements":[{"nativeSrc":"25220:14:53","nodeType":"YulVariableDeclaration","src":"25220:14:53","value":{"kind":"number","nativeSrc":"25233:1:53","nodeType":"YulLiteral","src":"25233:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"25224:5:53","nodeType":"YulTypedName","src":"25224:5:53","type":""}]},{"body":{"nativeSrc":"25257:67:53","nodeType":"YulBlock","src":"25257:67:53","statements":[{"nativeSrc":"25275:35:53","nodeType":"YulAssignment","src":"25275:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25294:3:53","nodeType":"YulIdentifier","src":"25294:3:53"},{"name":"srcOffset","nativeSrc":"25299:9:53","nodeType":"YulIdentifier","src":"25299:9:53"}],"functionName":{"name":"add","nativeSrc":"25290:3:53","nodeType":"YulIdentifier","src":"25290:3:53"},"nativeSrc":"25290:19:53","nodeType":"YulFunctionCall","src":"25290:19:53"}],"functionName":{"name":"mload","nativeSrc":"25284:5:53","nodeType":"YulIdentifier","src":"25284:5:53"},"nativeSrc":"25284:26:53","nodeType":"YulFunctionCall","src":"25284:26:53"},"variableNames":[{"name":"value","nativeSrc":"25275:5:53","nodeType":"YulIdentifier","src":"25275:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"25250:6:53","nodeType":"YulIdentifier","src":"25250:6:53"},"nativeSrc":"25247:77:53","nodeType":"YulIf","src":"25247:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25344:4:53","nodeType":"YulIdentifier","src":"25344:4:53"},{"arguments":[{"name":"value","nativeSrc":"25403:5:53","nodeType":"YulIdentifier","src":"25403:5:53"},{"name":"newLen","nativeSrc":"25410:6:53","nodeType":"YulIdentifier","src":"25410:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"25350:52:53","nodeType":"YulIdentifier","src":"25350:52:53"},"nativeSrc":"25350:67:53","nodeType":"YulFunctionCall","src":"25350:67:53"}],"functionName":{"name":"sstore","nativeSrc":"25337:6:53","nodeType":"YulIdentifier","src":"25337:6:53"},"nativeSrc":"25337:81:53","nodeType":"YulFunctionCall","src":"25337:81:53"},"nativeSrc":"25337:81:53","nodeType":"YulExpressionStatement","src":"25337:81:53"}]},"nativeSrc":"25198:230:53","nodeType":"YulCase","src":"25198:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"24551:6:53","nodeType":"YulIdentifier","src":"24551:6:53"},{"kind":"number","nativeSrc":"24559:2:53","nodeType":"YulLiteral","src":"24559:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"24548:2:53","nodeType":"YulIdentifier","src":"24548:2:53"},"nativeSrc":"24548:14:53","nodeType":"YulFunctionCall","src":"24548:14:53"},"nativeSrc":"24541:887:53","nodeType":"YulSwitch","src":"24541:887:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"24039:1395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"24120:4:53","nodeType":"YulTypedName","src":"24120:4:53","type":""},{"name":"src","nativeSrc":"24126:3:53","nodeType":"YulTypedName","src":"24126:3:53","type":""}],"src":"24039:1395:53"},{"body":{"nativeSrc":"25585:225:53","nodeType":"YulBlock","src":"25585:225:53","statements":[{"nativeSrc":"25595:26:53","nodeType":"YulAssignment","src":"25595:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"25607:9:53","nodeType":"YulIdentifier","src":"25607:9:53"},{"kind":"number","nativeSrc":"25618:2:53","nodeType":"YulLiteral","src":"25618:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25603:3:53","nodeType":"YulIdentifier","src":"25603:3:53"},"nativeSrc":"25603:18:53","nodeType":"YulFunctionCall","src":"25603:18:53"},"variableNames":[{"name":"tail","nativeSrc":"25595:4:53","nodeType":"YulIdentifier","src":"25595:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25675:6:53","nodeType":"YulIdentifier","src":"25675:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25688:9:53","nodeType":"YulIdentifier","src":"25688:9:53"},{"kind":"number","nativeSrc":"25699:1:53","nodeType":"YulLiteral","src":"25699:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25684:3:53","nodeType":"YulIdentifier","src":"25684:3:53"},"nativeSrc":"25684:17:53","nodeType":"YulFunctionCall","src":"25684:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25631:43:53","nodeType":"YulIdentifier","src":"25631:43:53"},"nativeSrc":"25631:71:53","nodeType":"YulFunctionCall","src":"25631:71:53"},"nativeSrc":"25631:71:53","nodeType":"YulExpressionStatement","src":"25631:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"25775:6:53","nodeType":"YulIdentifier","src":"25775:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25788:9:53","nodeType":"YulIdentifier","src":"25788:9:53"},{"kind":"number","nativeSrc":"25799:2:53","nodeType":"YulLiteral","src":"25799:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25784:3:53","nodeType":"YulIdentifier","src":"25784:3:53"},"nativeSrc":"25784:18:53","nodeType":"YulFunctionCall","src":"25784:18:53"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack","nativeSrc":"25712:62:53","nodeType":"YulIdentifier","src":"25712:62:53"},"nativeSrc":"25712:91:53","nodeType":"YulFunctionCall","src":"25712:91:53"},"nativeSrc":"25712:91:53","nodeType":"YulExpressionStatement","src":"25712:91:53"}]},"name":"abi_encode_tuple_t_address_t_contract$_Cloneable_$17720__to_t_address_t_address__fromStack_reversed","nativeSrc":"25440:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25549:9:53","nodeType":"YulTypedName","src":"25549:9:53","type":""},{"name":"value1","nativeSrc":"25561:6:53","nodeType":"YulTypedName","src":"25561:6:53","type":""},{"name":"value0","nativeSrc":"25569:6:53","nodeType":"YulTypedName","src":"25569:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25580:4:53","nodeType":"YulTypedName","src":"25580:4:53","type":""}],"src":"25440:370:53"},{"body":{"nativeSrc":"25863:32:53","nodeType":"YulBlock","src":"25863:32:53","statements":[{"nativeSrc":"25873:16:53","nodeType":"YulAssignment","src":"25873:16:53","value":{"name":"value","nativeSrc":"25884:5:53","nodeType":"YulIdentifier","src":"25884:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"25873:7:53","nodeType":"YulIdentifier","src":"25873:7:53"}]}]},"name":"leftAlign_t_bytes32","nativeSrc":"25816:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25845:5:53","nodeType":"YulTypedName","src":"25845:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"25855:7:53","nodeType":"YulTypedName","src":"25855:7:53","type":""}],"src":"25816:79:53"},{"body":{"nativeSrc":"25984:74:53","nodeType":"YulBlock","src":"25984:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26001:3:53","nodeType":"YulIdentifier","src":"26001:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26044:5:53","nodeType":"YulIdentifier","src":"26044:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"26026:17:53","nodeType":"YulIdentifier","src":"26026:17:53"},"nativeSrc":"26026:24:53","nodeType":"YulFunctionCall","src":"26026:24:53"}],"functionName":{"name":"leftAlign_t_bytes32","nativeSrc":"26006:19:53","nodeType":"YulIdentifier","src":"26006:19:53"},"nativeSrc":"26006:45:53","nodeType":"YulFunctionCall","src":"26006:45:53"}],"functionName":{"name":"mstore","nativeSrc":"25994:6:53","nodeType":"YulIdentifier","src":"25994:6:53"},"nativeSrc":"25994:58:53","nodeType":"YulFunctionCall","src":"25994:58:53"},"nativeSrc":"25994:58:53","nodeType":"YulExpressionStatement","src":"25994:58:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"25901:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25972:5:53","nodeType":"YulTypedName","src":"25972:5:53","type":""},{"name":"pos","nativeSrc":"25979:3:53","nodeType":"YulTypedName","src":"25979:3:53","type":""}],"src":"25901:157:53"},{"body":{"nativeSrc":"26224:268:53","nodeType":"YulBlock","src":"26224:268:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"26313:6:53","nodeType":"YulIdentifier","src":"26313:6:53"},{"name":"pos","nativeSrc":"26322:3:53","nodeType":"YulIdentifier","src":"26322:3:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"26235:77:53","nodeType":"YulIdentifier","src":"26235:77:53"},"nativeSrc":"26235:91:53","nodeType":"YulFunctionCall","src":"26235:91:53"},"nativeSrc":"26235:91:53","nodeType":"YulExpressionStatement","src":"26235:91:53"},{"nativeSrc":"26335:18:53","nodeType":"YulAssignment","src":"26335:18:53","value":{"arguments":[{"name":"pos","nativeSrc":"26346:3:53","nodeType":"YulIdentifier","src":"26346:3:53"},{"kind":"number","nativeSrc":"26351:1:53","nodeType":"YulLiteral","src":"26351:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26342:3:53","nodeType":"YulIdentifier","src":"26342:3:53"},"nativeSrc":"26342:11:53","nodeType":"YulFunctionCall","src":"26342:11:53"},"variableNames":[{"name":"pos","nativeSrc":"26335:3:53","nodeType":"YulIdentifier","src":"26335:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"26425:6:53","nodeType":"YulIdentifier","src":"26425:6:53"},{"name":"pos","nativeSrc":"26434:3:53","nodeType":"YulIdentifier","src":"26434:3:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"26363:61:53","nodeType":"YulIdentifier","src":"26363:61:53"},"nativeSrc":"26363:75:53","nodeType":"YulFunctionCall","src":"26363:75:53"},"nativeSrc":"26363:75:53","nodeType":"YulExpressionStatement","src":"26363:75:53"},{"nativeSrc":"26447:19:53","nodeType":"YulAssignment","src":"26447:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"26458:3:53","nodeType":"YulIdentifier","src":"26458:3:53"},{"kind":"number","nativeSrc":"26463:2:53","nodeType":"YulLiteral","src":"26463:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26454:3:53","nodeType":"YulIdentifier","src":"26454:3:53"},"nativeSrc":"26454:12:53","nodeType":"YulFunctionCall","src":"26454:12:53"},"variableNames":[{"name":"pos","nativeSrc":"26447:3:53","nodeType":"YulIdentifier","src":"26447:3:53"}]},{"nativeSrc":"26476:10:53","nodeType":"YulAssignment","src":"26476:10:53","value":{"name":"pos","nativeSrc":"26483:3:53","nodeType":"YulIdentifier","src":"26483:3:53"},"variableNames":[{"name":"end","nativeSrc":"26476:3:53","nodeType":"YulIdentifier","src":"26476:3:53"}]}]},"name":"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"26064:428:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26195:3:53","nodeType":"YulTypedName","src":"26195:3:53","type":""},{"name":"value1","nativeSrc":"26201:6:53","nodeType":"YulTypedName","src":"26201:6:53","type":""},{"name":"value0","nativeSrc":"26209:6:53","nodeType":"YulTypedName","src":"26209:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26220:3:53","nodeType":"YulTypedName","src":"26220:3:53","type":""}],"src":"26064:428:53"},{"body":{"nativeSrc":"26556:40:53","nodeType":"YulBlock","src":"26556:40:53","statements":[{"nativeSrc":"26567:22:53","nodeType":"YulAssignment","src":"26567:22:53","value":{"arguments":[{"name":"value","nativeSrc":"26583:5:53","nodeType":"YulIdentifier","src":"26583:5:53"}],"functionName":{"name":"mload","nativeSrc":"26577:5:53","nodeType":"YulIdentifier","src":"26577:5:53"},"nativeSrc":"26577:12:53","nodeType":"YulFunctionCall","src":"26577:12:53"},"variableNames":[{"name":"length","nativeSrc":"26567:6:53","nodeType":"YulIdentifier","src":"26567:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"26498:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26539:5:53","nodeType":"YulTypedName","src":"26539:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"26549:6:53","nodeType":"YulTypedName","src":"26549:6:53","type":""}],"src":"26498:98:53"},{"body":{"nativeSrc":"26697:73:53","nodeType":"YulBlock","src":"26697:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26714:3:53","nodeType":"YulIdentifier","src":"26714:3:53"},{"name":"length","nativeSrc":"26719:6:53","nodeType":"YulIdentifier","src":"26719:6:53"}],"functionName":{"name":"mstore","nativeSrc":"26707:6:53","nodeType":"YulIdentifier","src":"26707:6:53"},"nativeSrc":"26707:19:53","nodeType":"YulFunctionCall","src":"26707:19:53"},"nativeSrc":"26707:19:53","nodeType":"YulExpressionStatement","src":"26707:19:53"},{"nativeSrc":"26735:29:53","nodeType":"YulAssignment","src":"26735:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"26754:3:53","nodeType":"YulIdentifier","src":"26754:3:53"},{"kind":"number","nativeSrc":"26759:4:53","nodeType":"YulLiteral","src":"26759:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26750:3:53","nodeType":"YulIdentifier","src":"26750:3:53"},"nativeSrc":"26750:14:53","nodeType":"YulFunctionCall","src":"26750:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"26735:11:53","nodeType":"YulIdentifier","src":"26735:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"26602:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26669:3:53","nodeType":"YulTypedName","src":"26669:3:53","type":""},{"name":"length","nativeSrc":"26674:6:53","nodeType":"YulTypedName","src":"26674:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"26685:11:53","nodeType":"YulTypedName","src":"26685:11:53","type":""}],"src":"26602:168:53"},{"body":{"nativeSrc":"26866:283:53","nodeType":"YulBlock","src":"26866:283:53","statements":[{"nativeSrc":"26876:52:53","nodeType":"YulVariableDeclaration","src":"26876:52:53","value":{"arguments":[{"name":"value","nativeSrc":"26922:5:53","nodeType":"YulIdentifier","src":"26922:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"26890:31:53","nodeType":"YulIdentifier","src":"26890:31:53"},"nativeSrc":"26890:38:53","nodeType":"YulFunctionCall","src":"26890:38:53"},"variables":[{"name":"length","nativeSrc":"26880:6:53","nodeType":"YulTypedName","src":"26880:6:53","type":""}]},{"nativeSrc":"26937:77:53","nodeType":"YulAssignment","src":"26937:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"27002:3:53","nodeType":"YulIdentifier","src":"27002:3:53"},{"name":"length","nativeSrc":"27007:6:53","nodeType":"YulIdentifier","src":"27007:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"26944:57:53","nodeType":"YulIdentifier","src":"26944:57:53"},"nativeSrc":"26944:70:53","nodeType":"YulFunctionCall","src":"26944:70:53"},"variableNames":[{"name":"pos","nativeSrc":"26937:3:53","nodeType":"YulIdentifier","src":"26937:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27062:5:53","nodeType":"YulIdentifier","src":"27062:5:53"},{"kind":"number","nativeSrc":"27069:4:53","nodeType":"YulLiteral","src":"27069:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27058:3:53","nodeType":"YulIdentifier","src":"27058:3:53"},"nativeSrc":"27058:16:53","nodeType":"YulFunctionCall","src":"27058:16:53"},{"name":"pos","nativeSrc":"27076:3:53","nodeType":"YulIdentifier","src":"27076:3:53"},{"name":"length","nativeSrc":"27081:6:53","nodeType":"YulIdentifier","src":"27081:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"27023:34:53","nodeType":"YulIdentifier","src":"27023:34:53"},"nativeSrc":"27023:65:53","nodeType":"YulFunctionCall","src":"27023:65:53"},"nativeSrc":"27023:65:53","nodeType":"YulExpressionStatement","src":"27023:65:53"},{"nativeSrc":"27097:46:53","nodeType":"YulAssignment","src":"27097:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"27108:3:53","nodeType":"YulIdentifier","src":"27108:3:53"},{"arguments":[{"name":"length","nativeSrc":"27135:6:53","nodeType":"YulIdentifier","src":"27135:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"27113:21:53","nodeType":"YulIdentifier","src":"27113:21:53"},"nativeSrc":"27113:29:53","nodeType":"YulFunctionCall","src":"27113:29:53"}],"functionName":{"name":"add","nativeSrc":"27104:3:53","nodeType":"YulIdentifier","src":"27104:3:53"},"nativeSrc":"27104:39:53","nodeType":"YulFunctionCall","src":"27104:39:53"},"variableNames":[{"name":"end","nativeSrc":"27097:3:53","nodeType":"YulIdentifier","src":"27097:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"26776:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26847:5:53","nodeType":"YulTypedName","src":"26847:5:53","type":""},{"name":"pos","nativeSrc":"26854:3:53","nodeType":"YulTypedName","src":"26854:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26862:3:53","nodeType":"YulTypedName","src":"26862:3:53","type":""}],"src":"26776:373:53"},{"body":{"nativeSrc":"27271:193:53","nodeType":"YulBlock","src":"27271:193:53","statements":[{"nativeSrc":"27281:26:53","nodeType":"YulAssignment","src":"27281:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"27293:9:53","nodeType":"YulIdentifier","src":"27293:9:53"},{"kind":"number","nativeSrc":"27304:2:53","nodeType":"YulLiteral","src":"27304:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27289:3:53","nodeType":"YulIdentifier","src":"27289:3:53"},"nativeSrc":"27289:18:53","nodeType":"YulFunctionCall","src":"27289:18:53"},"variableNames":[{"name":"tail","nativeSrc":"27281:4:53","nodeType":"YulIdentifier","src":"27281:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27328:9:53","nodeType":"YulIdentifier","src":"27328:9:53"},{"kind":"number","nativeSrc":"27339:1:53","nodeType":"YulLiteral","src":"27339:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27324:3:53","nodeType":"YulIdentifier","src":"27324:3:53"},"nativeSrc":"27324:17:53","nodeType":"YulFunctionCall","src":"27324:17:53"},{"arguments":[{"name":"tail","nativeSrc":"27347:4:53","nodeType":"YulIdentifier","src":"27347:4:53"},{"name":"headStart","nativeSrc":"27353:9:53","nodeType":"YulIdentifier","src":"27353:9:53"}],"functionName":{"name":"sub","nativeSrc":"27343:3:53","nodeType":"YulIdentifier","src":"27343:3:53"},"nativeSrc":"27343:20:53","nodeType":"YulFunctionCall","src":"27343:20:53"}],"functionName":{"name":"mstore","nativeSrc":"27317:6:53","nodeType":"YulIdentifier","src":"27317:6:53"},"nativeSrc":"27317:47:53","nodeType":"YulFunctionCall","src":"27317:47:53"},"nativeSrc":"27317:47:53","nodeType":"YulExpressionStatement","src":"27317:47:53"},{"nativeSrc":"27373:84:53","nodeType":"YulAssignment","src":"27373:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"27443:6:53","nodeType":"YulIdentifier","src":"27443:6:53"},{"name":"tail","nativeSrc":"27452:4:53","nodeType":"YulIdentifier","src":"27452:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"27381:61:53","nodeType":"YulIdentifier","src":"27381:61:53"},"nativeSrc":"27381:76:53","nodeType":"YulFunctionCall","src":"27381:76:53"},"variableNames":[{"name":"tail","nativeSrc":"27373:4:53","nodeType":"YulIdentifier","src":"27373:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"27155:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27243:9:53","nodeType":"YulTypedName","src":"27243:9:53","type":""},{"name":"value0","nativeSrc":"27255:6:53","nodeType":"YulTypedName","src":"27255:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27266:4:53","nodeType":"YulTypedName","src":"27266:4:53","type":""}],"src":"27155:309:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_RegistryType_$12294(value) {\n if iszero(lt(value, 5)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_RegistryType_$12294(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_RegistryType_$12294(value)\n }\n\n function convert_t_enum$_RegistryType_$12294_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_RegistryType_$12294(value)\n }\n\n function abi_encode_t_enum$_RegistryType_$12294_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_RegistryType_$12294_to_t_uint8(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Cloneable_$17720_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Cloneable_$17720_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Cloneable_$17720_to_t_address(value))\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\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(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct BoostRegistry.Clone -> struct BoostRegistry.Clone\n function abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // baseType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // instance\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_contract$_Cloneable_$17720_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // deployer\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // name\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Clone_$12306_memory_ptr__to_t_struct$_Clone_$12306_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_bytes32_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(value0, pos) -> updatedPos {\n abi_encode_t_bytes32_to_t_bytes32(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bytes32[] -> bytes32[]\n function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$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_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Cloneable_$17720_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Cloneable_$17720__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_enum$_RegistryType_$12294(value) {\n if iszero(lt(value, 5)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_RegistryType_$12294(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_RegistryType_$12294(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_string_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(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, value3 := abi_decode_t_string_calldata_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 value4, value5 := abi_decode_t_bytes_calldata_ptr(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 shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\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 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 // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, value3, pos)\n\n end := pos\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 validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_RegistryType_$12294_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_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_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n end := pos\n }\n\n function shift_left_248(value) -> newValue {\n newValue :=\n\n shl(248, value)\n\n }\n\n function leftAlign_t_uint8(value) -> aligned {\n aligned := shift_left_248(value)\n }\n\n function abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint8(convert_t_enum$_RegistryType_$12294_to_t_uint8(value)))\n }\n\n function abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, value3, pos)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_t_address_t_contract$_Cloneable_$17720__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_contract$_Cloneable_$17720_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f42606236000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517fd3dd30120000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea264697066735822122015a5554f9dc3df658e598ffccd93a6cb416716d42755b52f24475168ea0d9fbb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xACC83FC8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xACC83FC8 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0xD12DD481 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1668792 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xFD97064B EQ PUSH2 0x1C6 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x3AAF1626 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x792AA01C EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x83F38859 EQ PUSH2 0x11A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB1 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCF SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x10A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x471 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0x11D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x504 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15F SWAP2 SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x171 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x194 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH2 0x5EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH2 0x818 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x146E JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x376 SWAP1 PUSH2 0x153E 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 0x3A2 SWAP1 PUSH2 0x153E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x46C JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4E4 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5A7 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x5E3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x15EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x648 SWAP2 SWAP1 PUSH2 0x1638 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x687 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH2 0x6C8 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD3DD301200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D4 DUP7 DUP7 DUP7 PUSH2 0x818 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x777 JUMPI DUP6 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76E SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x7D9 JUMPI PUSH2 0x7D8 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x660D31DF25C96B8A337FCF12A56B7363E5A997639DB853D5DBAEC7C01F31BD80 DUP6 PUSH1 0x40 MLOAD PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x84B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x830 SWAP3 SWAP2 SWAP1 PUSH2 0x1704 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x873 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH2 0x91B DUP8 DUP8 DUP8 DUP8 CALLER PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x89B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC4E SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x92B DUP9 DUP9 CALLER DUP10 DUP10 PUSH2 0x5AC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9D2 JUMPI DUP8 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C9 SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA51 JUMPI PUSH2 0xA50 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xB0E JUMPI PUSH2 0xB0D PUSH2 0xECA JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xBB4 SWAP2 SWAP1 PUSH2 0x1965 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP9 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x2348FCDB9847B17A183E53AA32C0C5C76AFDEF8FCB14BB51F216C6611701AB1A DUP10 DUP6 PUSH1 0x40 MLOAD PUSH2 0xBFD SWAP3 SWAP2 SWAP1 PUSH2 0x1A34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC30 SWAP3 SWAP2 SWAP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC78 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCE7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB3 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCF3 PUSH0 DUP5 DUP5 PUSH2 0xCFB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP3 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE DUP2 PUSH1 0x35 PUSH1 0xC DUP7 CREATE2 SWAP1 POP DUP1 PUSH2 0xD43 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6C JUMPI PUSH2 0xD6B PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDED DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP2 EQ PUSH2 0xDF7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE08 DUP2 PUSH2 0xDE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE23 JUMPI PUSH2 0xE22 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE30 DUP5 DUP3 DUP6 ADD PUSH2 0xDFA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE66 PUSH0 DUP4 ADD DUP5 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE7E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP2 EQ PUSH2 0xE88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE99 DUP2 PUSH2 0xE75 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEB4 JUMPI PUSH2 0xEB3 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEC1 DUP5 DUP3 DUP6 ADD PUSH2 0xE8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xECA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0xF18 DUP3 PUSH2 0xEF7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF27 DUP3 PUSH2 0xF0B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF37 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF7F PUSH2 0xF7A PUSH2 0xF75 DUP5 PUSH2 0xF3D JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF90 DUP3 PUSH2 0xF65 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFA1 DUP3 PUSH2 0xF86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB1 DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFC1 DUP3 PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD1 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1019 DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x1023 DUP2 DUP6 PUSH2 0xFE1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1033 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x103C DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x105C PUSH0 DUP7 ADD DUP3 PUSH2 0xF2E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x106F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xFA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1082 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xFC8 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x109A DUP3 DUP3 PUSH2 0x100F JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10BF DUP2 DUP5 PUSH2 0x1047 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10D0 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10EB DUP2 PUSH2 0x10C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1106 JUMPI PUSH2 0x1105 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1113 DUP5 DUP3 DUP6 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x115F DUP4 DUP4 PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1126 JUMP JUMPDEST SWAP4 POP PUSH2 0x1196 DUP4 PUSH2 0x1136 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11C6 JUMPI DUP2 MLOAD PUSH2 0x11AD DUP9 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP8 POP PUSH2 0x11B8 DUP4 PUSH2 0x116B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1199 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11EB DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11FC DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1215 PUSH0 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1238 DUP2 PUSH2 0x121B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x125F JUMPI PUSH2 0x125E PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH2 0x127B PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH2 0x1297 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B7 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12C5 DUP9 DUP3 DUP10 ADD PUSH2 0x122A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x12D6 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x12E7 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1308 JUMPI PUSH2 0x1307 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1314 DUP9 DUP3 DUP10 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x132C DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1345 PUSH0 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1363 JUMPI PUSH2 0x1362 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1370 DUP8 DUP3 DUP9 ADD PUSH2 0x122A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1391 JUMPI PUSH2 0x1390 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x139D DUP8 DUP3 DUP9 ADD PUSH2 0x124A JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x13B0 DUP8 DUP3 DUP9 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D2 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13E0 DUP7 DUP3 DUP8 ADD PUSH2 0x122A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x140D DUP7 DUP3 DUP8 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x142E JUMPI PUSH2 0x142D PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144A PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1466 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1487 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1495 DUP10 DUP3 DUP11 ADD PUSH2 0x122A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x14A6 DUP10 DUP3 DUP11 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP10 DUP3 DUP11 ADD PUSH2 0x124A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH2 0x14F5 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1502 DUP10 DUP3 DUP11 ADD PUSH2 0x1419 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1555 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1568 JUMPI PUSH2 0x1567 PUSH2 0x1511 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1584 DUP3 PUSH2 0x156E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1595 DUP3 PUSH2 0x157A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15AD PUSH2 0x15A8 DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x158B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D6 DUP4 DUP6 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x15E3 DUP4 DUP6 DUP5 PUSH2 0x15BD JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15FA DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x160A DUP3 DUP7 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x161B DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x164B PUSH0 DUP4 ADD DUP5 PUSH2 0x1629 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165A DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP2 EQ PUSH2 0x1664 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1675 DUP2 PUSH2 0x1651 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1690 JUMPI PUSH2 0x168F PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169D DUP5 DUP3 DUP6 ADD PUSH2 0x1667 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16AF DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C8 PUSH0 DUP4 ADD DUP5 PUSH2 0x16A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F0 PUSH0 DUP4 ADD DUP6 PUSH2 0x16CE JUMP JUMPDEST PUSH2 0x16FD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1710 DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 DUP3 PUSH2 0x171C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x174A PUSH2 0x1745 DUP3 PUSH2 0xF1D JUMP JUMPDEST PUSH2 0x1728 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x175B DUP3 DUP9 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x176B DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x177C DUP3 DUP6 DUP8 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP PUSH2 0x1788 DUP3 DUP5 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1824 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x17E9 JUMP JUMPDEST PUSH2 0x182E DUP7 DUP4 PUSH2 0x17E9 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1869 PUSH2 0x1864 PUSH2 0x185F DUP5 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x1846 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1882 DUP4 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x1896 PUSH2 0x188E DUP3 PUSH2 0x1870 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x17F5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x18AA PUSH2 0x189E JUMP JUMPDEST PUSH2 0x18B5 DUP2 DUP5 DUP5 PUSH2 0x1879 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18D8 JUMPI PUSH2 0x18CD PUSH0 DUP3 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x18BB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x18EE DUP2 PUSH2 0x17C8 JUMP JUMPDEST PUSH2 0x18F7 DUP5 PUSH2 0x17DA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1906 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x191A PUSH2 0x1912 DUP6 PUSH2 0x17DA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x18BA JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x193D PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1922 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1955 DUP4 DUP4 PUSH2 0x192E JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x196E DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1987 JUMPI PUSH2 0x1986 PUSH2 0x179B JUMP JUMPDEST JUMPDEST PUSH2 0x1991 DUP3 SLOAD PUSH2 0x153E JUMP JUMPDEST PUSH2 0x199C DUP3 DUP3 DUP6 PUSH2 0x18DC JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19CD JUMPI PUSH0 DUP5 ISZERO PUSH2 0x19BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x19C5 DUP6 DUP3 PUSH2 0x194A JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1A2C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x19DB DUP7 PUSH2 0x17C8 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A02 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 0x19DD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1A1F JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1A1B PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x192E 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 PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A47 PUSH0 DUP4 ADD DUP6 PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x1A54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A70 DUP3 PUSH2 0xE6C JUMP JUMPDEST PUSH2 0x1A5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A86 DUP3 DUP6 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x1A96 DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ACA DUP3 PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0x1AD4 DUP2 DUP6 PUSH2 0x1AB0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1AE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x1AED DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B10 DUP2 DUP5 PUSH2 0x1AC0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO 0xA5 SSTORE 0x4F SWAP14 0xC3 0xDF PUSH6 0x8E598FFCCD93 0xA6 0xCB COINBASE PUSH8 0x16D42755B52F2447 MLOAD PUSH9 0xEA0D9FBB64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"682:7550:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:146:12;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6006:213:30;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6593:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7087:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3401:432;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7611:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4332:893;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;763:146:12;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;6006:213:30:-;6068:18;;:::i;:::-;6106:7;:20;6114:11;6106:20;;;;;;;;;;;6098:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6175:1;6140:37;;6148:5;:14;;;6140:37;;;6136:76;;6200:11;6186:26;;;;;;;;;;;:::i;:::-;;;;;;;;6136:76;6006:213;;;:::o;6593:129::-;6654:16;6689:15;:26;6705:9;6689:26;;;;;;;;;;;;;;;6682:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6593:129;;;:::o;5537:238::-;5610:24;5663:6;:19;5670:11;5663:19;;;;;;;;;;;;;;;;;;;;;5646:36;;5731:1;5696:37;;5704:14;5696:37;;;5692:76;;5756:11;5742:26;;;;;;;;;;;:::i;:::-;;;;;;;;5692:76;5537:238;;;:::o;7087:273::-;7237:18;7278:75;7293:5;7327;7334:9;7345:5;;7310:41;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7300:52;;;;;;7278:14;:75::i;:::-;7271:82;;7087:273;;;;;;;:::o;3401:432::-;3527:15;2738;2728:44;;;2773:27;2728:73;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2723:141;;2837:15;2824:29;;;;;;;;;;;:::i;:::-;;;;;;;;2723:141;3558:18:::1;3579:27;3593:5;3600;;3579:13;:27::i;:::-;3558:48;;3660:1;3621:41;;3629:6;:18:::0;3636:10:::1;3629:18;;;;;;;;;;;;;;;;;;;;;3621:41;;;3617:90;;3689:5;3696:10;3671:36;;;;;;;;;;;;:::i;:::-;;;;;;;;3617:90;3748:15;3717:6;:18:::0;3724:10:::1;3717:18;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;3798:10;3791:5;3780:46;;;;;;;;:::i;:::-;;;3810:15;3780:46;;;;;;:::i;:::-;;;;;;;;3548:285;3401:432:::0;;;;;:::o;7611:188::-;7698:18;7735:57;7750:5;7784;;7767:23;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7757:34;;;;;;7735:14;:57::i;:::-;7728:64;;7611:188;;;;;:::o;4332:893::-;4488:18;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;4598:93:30::1;4650:5;4657;4664;;4671:10;4633:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4623:60;;;;;;4685:5;;4598:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:24;;;;:93;;;;;:::i;:::-;4565:127;;4754:18;4775:51;4794:5;4801;4808:10;4820:5;;4775:18;:51::i;:::-;4754:72;;4889:1;4840:51;;4848:7;:19;4856:10;4848:19;;;;;;;;;;;:28;;;;;;;;;;;;4840:51;;;4836:100;;4918:5;4925:10;4900:36;;;;;;;;;;;;:::i;:::-;;;;;;;;4836:100;5003:15;:27;5019:10;5003:27;;;;;;;;;;;;;;;5036:10;5003:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5079:79;;;;;;;;5096:5;5079:79;;;;;;;;:::i;:::-;;;;;;5113:8;5079:79;;;;;;5133:10;5079:79;;;;;;5151:5;;5079:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;5057:7:::1;:19;5065:10;5057:19;;;;;;;;;;;:101;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5190:10;5183:5;5174:44;;;;;;;;:::i;:::-;;;5202:5;5209:8;5174:44;;;;;;;:::i;:::-;;;;;;;;4512:713;1937:10:26::0;1913:22;1906:42;4332:893:30;;;;;;;;:::o;8063:167::-;8145:18;8209:5;8216;8192:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8182:41;;;;;;8175:48;;8063:167;;;;:::o;1526:276:47:-;1622:14;1657:27;1678:5;1657:1;:20;;;;:27;;;;:::i;:::-;1648:36;;1766:6;1756:28;;;1785:9;1756:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1526:276;;;;;:::o;9887:193:22:-;9987:16;10030:43;10049:1;10052:14;10068:4;10030:18;:43::i;:::-;10019:54;;9887:193;;;;:::o;10210:675::-;10325:16;10436:28;10430:4;10423:42;10491:14;10485:4;10478:28;10532:42;10526:4;10519:56;10627:4;10621;10615;10608:5;10600:32;10588:44;;10655:8;10645:136;;10696:10;10690:4;10683:24;10762:4;10756;10749:18;10645:136;10807:1;10801:4;10794:15;10210:675;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:53:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:180::-;2257:77;2254:1;2247:88;2354:4;2351:1;2344:15;2378:4;2375:1;2368:15;2395:123;2486:1;2479:5;2476:12;2466:46;;2492:18;;:::i;:::-;2466:46;2395:123;:::o;2524:147::-;2579:7;2608:5;2597:16;;2614:51;2659:5;2614:51;:::i;:::-;2524:147;;;:::o;2677:::-;2743:9;2776:42;2812:5;2776:42;:::i;:::-;2763:55;;2677:147;;;:::o;2830:153::-;2923:53;2970:5;2923:53;:::i;:::-;2918:3;2911:66;2830:153;;:::o;2989:126::-;3026:7;3066:42;3059:5;3055:54;3044:65;;2989:126;;;:::o;3121:60::-;3149:3;3170:5;3163:12;;3121:60;;;:::o;3187:142::-;3237:9;3270:53;3288:34;3297:24;3315:5;3297:24;:::i;:::-;3288:34;:::i;:::-;3270:53;:::i;:::-;3257:66;;3187:142;;;:::o;3335:126::-;3385:9;3418:37;3449:5;3418:37;:::i;:::-;3405:50;;3335:126;;;:::o;3467:145::-;3536:9;3569:37;3600:5;3569:37;:::i;:::-;3556:50;;3467:145;;;:::o;3618:159::-;3714:56;3764:5;3714:56;:::i;:::-;3709:3;3702:69;3618:159;;:::o;3783:96::-;3820:7;3849:24;3867:5;3849:24;:::i;:::-;3838:35;;3783:96;;;:::o;3885:108::-;3962:24;3980:5;3962:24;:::i;:::-;3957:3;3950:37;3885:108;;:::o;3999:99::-;4051:6;4085:5;4079:12;4069:22;;3999:99;;;:::o;4104:159::-;4178:11;4212:6;4207:3;4200:19;4252:4;4247:3;4243:14;4228:29;;4104:159;;;;:::o;4269:139::-;4358:6;4353:3;4348;4342:23;4399:1;4390:6;4385:3;4381:16;4374:27;4269:139;;;:::o;4414:102::-;4455:6;4506:2;4502:7;4497:2;4490:5;4486:14;4482:28;4472:38;;4414:102;;;:::o;4522:357::-;4600:3;4628:39;4661:5;4628:39;:::i;:::-;4683:61;4737:6;4732:3;4683:61;:::i;:::-;4676:68;;4753:65;4811:6;4806:3;4799:4;4792:5;4788:16;4753:65;:::i;:::-;4843:29;4865:6;4843:29;:::i;:::-;4838:3;4834:39;4827:46;;4604:275;4522:357;;;;:::o;4949:999::-;5066:3;5102:4;5097:3;5093:14;5193:4;5186:5;5182:16;5176:23;5212:79;5285:4;5280:3;5276:14;5262:12;5212:79;:::i;:::-;5117:184;5387:4;5380:5;5376:16;5370:23;5406:82;5482:4;5477:3;5473:14;5459:12;5406:82;:::i;:::-;5311:187;5584:4;5577:5;5573:16;5567:23;5603:63;5660:4;5655:3;5651:14;5637:12;5603:63;:::i;:::-;5508:168;5758:4;5751:5;5747:16;5741:23;5811:3;5805:4;5801:14;5794:4;5789:3;5785:14;5778:38;5837:73;5905:4;5891:12;5837:73;:::i;:::-;5829:81;;5686:235;5938:4;5931:11;;5071:877;4949:999;;;;:::o;5954:369::-;6095:4;6133:2;6122:9;6118:18;6110:26;;6182:9;6176:4;6172:20;6168:1;6157:9;6153:17;6146:47;6210:106;6311:4;6302:6;6210:106;:::i;:::-;6202:114;;5954:369;;;;:::o;6329:122::-;6402:24;6420:5;6402:24;:::i;:::-;6395:5;6392:35;6382:63;;6441:1;6438;6431:12;6382:63;6329:122;:::o;6457:139::-;6503:5;6541:6;6528:20;6519:29;;6557:33;6584:5;6557:33;:::i;:::-;6457:139;;;;:::o;6602:329::-;6661:6;6710:2;6698:9;6689:7;6685:23;6681:32;6678:119;;;6716:79;;:::i;:::-;6678:119;6836:1;6861:53;6906:7;6897:6;6886:9;6882:22;6861:53;:::i;:::-;6851:63;;6807:117;6602:329;;;;:::o;6937:114::-;7004:6;7038:5;7032:12;7022:22;;6937:114;;;:::o;7057:184::-;7156:11;7190:6;7185:3;7178:19;7230:4;7225:3;7221:14;7206:29;;7057:184;;;;:::o;7247:132::-;7314:4;7337:3;7329:11;;7367:4;7362:3;7358:14;7350:22;;7247:132;;;:::o;7385:108::-;7462:24;7480:5;7462:24;:::i;:::-;7457:3;7450:37;7385:108;;:::o;7499:179::-;7568:10;7589:46;7631:3;7623:6;7589:46;:::i;:::-;7667:4;7662:3;7658:14;7644:28;;7499:179;;;;:::o;7684:113::-;7754:4;7786;7781:3;7777:14;7769:22;;7684:113;;;:::o;7833:732::-;7952:3;7981:54;8029:5;7981:54;:::i;:::-;8051:86;8130:6;8125:3;8051:86;:::i;:::-;8044:93;;8161:56;8211:5;8161:56;:::i;:::-;8240:7;8271:1;8256:284;8281:6;8278:1;8275:13;8256:284;;;8357:6;8351:13;8384:63;8443:3;8428:13;8384:63;:::i;:::-;8377:70;;8470:60;8523:6;8470:60;:::i;:::-;8460:70;;8316:224;8303:1;8300;8296:9;8291:14;;8256:284;;;8260:14;8556:3;8549:10;;7957:608;;;7833:732;;;;:::o;8571:373::-;8714:4;8752:2;8741:9;8737:18;8729:26;;8801:9;8795:4;8791:20;8787:1;8776:9;8772:17;8765:47;8829:108;8932:4;8923:6;8829:108;:::i;:::-;8821:116;;8571:373;;;;:::o;8950:169::-;9056:56;9106:5;9056:56;:::i;:::-;9051:3;9044:69;8950:169;;:::o;9125:260::-;9237:4;9275:2;9264:9;9260:18;9252:26;;9288:90;9375:1;9364:9;9360:17;9351:6;9288:90;:::i;:::-;9125:260;;;;:::o;9391:117::-;9482:1;9475:5;9472:12;9462:40;;9498:1;9495;9488:12;9462:40;9391:117;:::o;9514:175::-;9578:5;9616:6;9603:20;9594:29;;9632:51;9677:5;9632:51;:::i;:::-;9514:175;;;;:::o;9695:117::-;9804:1;9801;9794:12;9818:117;9927:1;9924;9917:12;9941:117;10050:1;10047;10040:12;10078:553;10136:8;10146:6;10196:3;10189:4;10181:6;10177:17;10173:27;10163:122;;10204:79;;:::i;:::-;10163:122;10317:6;10304:20;10294:30;;10347:18;10339:6;10336:30;10333:117;;;10369:79;;:::i;:::-;10333:117;10483:4;10475:6;10471:17;10459:29;;10537:3;10529:4;10521:6;10517:17;10507:8;10503:32;10500:41;10497:128;;;10544:79;;:::i;:::-;10497:128;10078:553;;;;;:::o;10637:1001::-;10753:6;10761;10769;10777;10785;10834:3;10822:9;10813:7;10809:23;10805:33;10802:120;;;10841:79;;:::i;:::-;10802:120;10961:1;10986:71;11049:7;11040:6;11029:9;11025:22;10986:71;:::i;:::-;10976:81;;10932:135;11106:2;11132:53;11177:7;11168:6;11157:9;11153:22;11132:53;:::i;:::-;11122:63;;11077:118;11234:2;11260:53;11305:7;11296:6;11285:9;11281:22;11260:53;:::i;:::-;11250:63;;11205:118;11390:2;11379:9;11375:18;11362:32;11421:18;11413:6;11410:30;11407:117;;;11443:79;;:::i;:::-;11407:117;11556:65;11613:7;11604:6;11593:9;11589:22;11556:65;:::i;:::-;11538:83;;;;11333:298;10637:1001;;;;;;;;:::o;11644:118::-;11731:24;11749:5;11731:24;:::i;:::-;11726:3;11719:37;11644:118;;:::o;11768:222::-;11861:4;11899:2;11888:9;11884:18;11876:26;;11912:71;11980:1;11969:9;11965:17;11956:6;11912:71;:::i;:::-;11768:222;;;;:::o;11996:855::-;12103:6;12111;12119;12127;12176:2;12164:9;12155:7;12151:23;12147:32;12144:119;;;12182:79;;:::i;:::-;12144:119;12302:1;12327:71;12390:7;12381:6;12370:9;12366:22;12327:71;:::i;:::-;12317:81;;12273:135;12475:2;12464:9;12460:18;12447:32;12506:18;12498:6;12495:30;12492:117;;;12528:79;;:::i;:::-;12492:117;12641:65;12698:7;12689:6;12678:9;12674:22;12641:65;:::i;:::-;12623:83;;;;12418:298;12755:2;12781:53;12826:7;12817:6;12806:9;12802:22;12781:53;:::i;:::-;12771:63;;12726:118;11996:855;;;;;;;:::o;12857:710::-;12955:6;12963;12971;13020:2;13008:9;12999:7;12995:23;12991:32;12988:119;;;13026:79;;:::i;:::-;12988:119;13146:1;13171:71;13234:7;13225:6;13214:9;13210:22;13171:71;:::i;:::-;13161:81;;13117:135;13319:2;13308:9;13304:18;13291:32;13350:18;13342:6;13339:30;13336:117;;;13372:79;;:::i;:::-;13336:117;13485:65;13542:7;13533:6;13522:9;13518:22;13485:65;:::i;:::-;13467:83;;;;13262:298;12857:710;;;;;:::o;13586:552::-;13643:8;13653:6;13703:3;13696:4;13688:6;13684:17;13680:27;13670:122;;13711:79;;:::i;:::-;13670:122;13824:6;13811:20;13801:30;;13854:18;13846:6;13843:30;13840:117;;;13876:79;;:::i;:::-;13840:117;13990:4;13982:6;13978:17;13966:29;;14044:3;14036:4;14028:6;14024:17;14014:8;14010:32;14007:41;14004:128;;;14051:79;;:::i;:::-;14004:128;13586:552;;;;;:::o;14144:1199::-;14271:6;14279;14287;14295;14303;14311;14360:3;14348:9;14339:7;14335:23;14331:33;14328:120;;;14367:79;;:::i;:::-;14328:120;14487:1;14512:71;14575:7;14566:6;14555:9;14551:22;14512:71;:::i;:::-;14502:81;;14458:135;14632:2;14658:53;14703:7;14694:6;14683:9;14679:22;14658:53;:::i;:::-;14648:63;;14603:118;14788:2;14777:9;14773:18;14760:32;14819:18;14811:6;14808:30;14805:117;;;14841:79;;:::i;:::-;14805:117;14954:65;15011:7;15002:6;14991:9;14987:22;14954:65;:::i;:::-;14936:83;;;;14731:298;15096:2;15085:9;15081:18;15068:32;15127:18;15119:6;15116:30;15113:117;;;15149:79;;:::i;:::-;15113:117;15262:64;15318:7;15309:6;15298:9;15294:22;15262:64;:::i;:::-;15244:82;;;;15039:297;14144:1199;;;;;;;;:::o;15349:180::-;15397:77;15394:1;15387:88;15494:4;15491:1;15484:15;15518:4;15515:1;15508:15;15535:320;15579:6;15616:1;15610:4;15606:12;15596:22;;15663:1;15657:4;15653:12;15684:18;15674:81;;15740:4;15732:6;15728:17;15718:27;;15674:81;15802:2;15794:6;15791:14;15771:18;15768:38;15765:84;;15821:18;;:::i;:::-;15765:84;15586:269;15535:320;;;:::o;15861:94::-;15894:8;15942:5;15938:2;15934:14;15913:35;;15861:94;;;:::o;15961:::-;16000:7;16029:20;16043:5;16029:20;:::i;:::-;16018:31;;15961:94;;;:::o;16061:100::-;16100:7;16129:26;16149:5;16129:26;:::i;:::-;16118:37;;16061:100;;;:::o;16167:157::-;16272:45;16292:24;16310:5;16292:24;:::i;:::-;16272:45;:::i;:::-;16267:3;16260:58;16167:157;;:::o;16330:148::-;16432:11;16469:3;16454:18;;16330:148;;;;:::o;16484:::-;16582:6;16577:3;16572;16559:30;16623:1;16614:6;16609:3;16605:16;16598:27;16484:148;;;:::o;16662:330::-;16778:3;16799:89;16881:6;16876:3;16799:89;:::i;:::-;16792:96;;16898:56;16947:6;16942:3;16935:5;16898:56;:::i;:::-;16979:6;16974:3;16970:16;16963:23;;16662:330;;;;;:::o;16998:577::-;17196:3;17211:75;17282:3;17273:6;17211:75;:::i;:::-;17311:2;17306:3;17302:12;17295:19;;17324:75;17395:3;17386:6;17324:75;:::i;:::-;17424:2;17419:3;17415:12;17408:19;;17444:105;17545:3;17536:6;17528;17444:105;:::i;:::-;17437:112;;17566:3;17559:10;;16998:577;;;;;;;:::o;17581:115::-;17666:23;17683:5;17666:23;:::i;:::-;17661:3;17654:36;17581:115;;:::o;17702:218::-;17793:4;17831:2;17820:9;17816:18;17808:26;;17844:69;17910:1;17899:9;17895:17;17886:6;17844:69;:::i;:::-;17702:218;;;;:::o;17926:116::-;17996:21;18011:5;17996:21;:::i;:::-;17989:5;17986:32;17976:60;;18032:1;18029;18022:12;17976:60;17926:116;:::o;18048:137::-;18102:5;18133:6;18127:13;18118:22;;18149:30;18173:5;18149:30;:::i;:::-;18048:137;;;;:::o;18191:345::-;18258:6;18307:2;18295:9;18286:7;18282:23;18278:32;18275:119;;;18313:79;;:::i;:::-;18275:119;18433:1;18458:61;18511:7;18502:6;18491:9;18487:22;18458:61;:::i;:::-;18448:71;;18404:125;18191:345;;;;:::o;18542:118::-;18629:24;18647:5;18629:24;:::i;:::-;18624:3;18617:37;18542:118;;:::o;18666:222::-;18759:4;18797:2;18786:9;18782:18;18774:26;;18810:71;18878:1;18867:9;18863:17;18854:6;18810:71;:::i;:::-;18666:222;;;;:::o;18894:163::-;18997:53;19044:5;18997:53;:::i;:::-;18992:3;18985:66;18894:163;;:::o;19063:364::-;19200:4;19238:2;19227:9;19223:18;19215:26;;19251:87;19335:1;19324:9;19320:17;19311:6;19251:87;:::i;:::-;19348:72;19416:2;19405:9;19401:18;19392:6;19348:72;:::i;:::-;19063:364;;;;;:::o;19433:295::-;19575:3;19597:105;19698:3;19689:6;19681;19597:105;:::i;:::-;19590:112;;19719:3;19712:10;;19433:295;;;;;:::o;19734:96::-;19768:8;19817:5;19812:3;19808:15;19787:36;;19734:96;;;:::o;19836:93::-;19873:7;19902:21;19917:5;19902:21;:::i;:::-;19891:32;;19836:93;;;:::o;19935:200::-;20056:72;20074:53;20121:5;20074:53;:::i;:::-;20056:72;:::i;:::-;20051:3;20044:85;19935:200;;:::o;20141:749::-;20383:3;20398:91;20485:3;20476:6;20398:91;:::i;:::-;20514:1;20509:3;20505:11;20498:18;;20526:75;20597:3;20588:6;20526:75;:::i;:::-;20626:2;20621:3;20617:12;20610:19;;20646:105;20747:3;20738:6;20730;20646:105;:::i;:::-;20639:112;;20761:75;20832:3;20823:6;20761:75;:::i;:::-;20861:2;20856:3;20852:12;20845:19;;20881:3;20874:10;;20141:749;;;;;;;;:::o;20896:180::-;20944:77;20941:1;20934:88;21041:4;21038:1;21031:15;21065:4;21062:1;21055:15;21082:141;21131:4;21154:3;21146:11;;21177:3;21174:1;21167:14;21211:4;21208:1;21198:18;21190:26;;21082:141;;;:::o;21229:93::-;21266:6;21313:2;21308;21301:5;21297:14;21293:23;21283:33;;21229:93;;;:::o;21328:107::-;21372:8;21422:5;21416:4;21412:16;21391:37;;21328:107;;;;:::o;21441:393::-;21510:6;21560:1;21548:10;21544:18;21583:97;21613:66;21602:9;21583:97;:::i;:::-;21701:39;21731:8;21720:9;21701:39;:::i;:::-;21689:51;;21773:4;21769:9;21762:5;21758:21;21749:30;;21822:4;21812:8;21808:19;21801:5;21798:30;21788:40;;21517:317;;21441:393;;;;;:::o;21840:77::-;21877:7;21906:5;21895:16;;21840:77;;;:::o;21923:142::-;21973:9;22006:53;22024:34;22033:24;22051:5;22033:24;:::i;:::-;22024:34;:::i;:::-;22006:53;:::i;:::-;21993:66;;21923:142;;;:::o;22071:75::-;22114:3;22135:5;22128:12;;22071:75;;;:::o;22152:269::-;22262:39;22293:7;22262:39;:::i;:::-;22323:91;22372:41;22396:16;22372:41;:::i;:::-;22364:6;22357:4;22351:11;22323:91;:::i;:::-;22317:4;22310:105;22228:193;22152:269;;;:::o;22427:73::-;22472:3;22427:73;:::o;22506:189::-;22583:32;;:::i;:::-;22624:65;22682:6;22674;22668:4;22624:65;:::i;:::-;22559:136;22506:189;;:::o;22701:186::-;22761:120;22778:3;22771:5;22768:14;22761:120;;;22832:39;22869:1;22862:5;22832:39;:::i;:::-;22805:1;22798:5;22794:13;22785:22;;22761:120;;;22701:186;;:::o;22893:543::-;22994:2;22989:3;22986:11;22983:446;;;23028:38;23060:5;23028:38;:::i;:::-;23112:29;23130:10;23112:29;:::i;:::-;23102:8;23098:44;23295:2;23283:10;23280:18;23277:49;;;23316:8;23301:23;;23277:49;23339:80;23395:22;23413:3;23395:22;:::i;:::-;23385:8;23381:37;23368:11;23339:80;:::i;:::-;22998:431;;22983:446;22893:543;;;:::o;23442:117::-;23496:8;23546:5;23540:4;23536:16;23515:37;;23442:117;;;;:::o;23565:169::-;23609:6;23642:51;23690:1;23686:6;23678:5;23675:1;23671:13;23642:51;:::i;:::-;23638:56;23723:4;23717;23713:15;23703:25;;23616:118;23565:169;;;;:::o;23739:295::-;23815:4;23961:29;23986:3;23980:4;23961:29;:::i;:::-;23953:37;;24023:3;24020:1;24016:11;24010:4;24007:21;23999:29;;23739:295;;;;:::o;24039:1395::-;24156:37;24189:3;24156:37;:::i;:::-;24258:18;24250:6;24247:30;24244:56;;;24280:18;;:::i;:::-;24244:56;24324:38;24356:4;24350:11;24324:38;:::i;:::-;24409:67;24469:6;24461;24455:4;24409:67;:::i;:::-;24503:1;24527:4;24514:17;;24559:2;24551:6;24548:14;24576:1;24571:618;;;;25233:1;25250:6;25247:77;;;25299:9;25294:3;25290:19;25284:26;25275:35;;25247:77;25350:67;25410:6;25403:5;25350:67;:::i;:::-;25344:4;25337:81;25206:222;24541:887;;24571:618;24623:4;24619:9;24611:6;24607:22;24657:37;24689:4;24657:37;:::i;:::-;24716:1;24730:208;24744:7;24741:1;24738:14;24730:208;;;24823:9;24818:3;24814:19;24808:26;24800:6;24793:42;24874:1;24866:6;24862:14;24852:24;;24921:2;24910:9;24906:18;24893:31;;24767:4;24764:1;24760:12;24755:17;;24730:208;;;24966:6;24957:7;24954:19;24951:179;;;25024:9;25019:3;25015:19;25009:26;25067:48;25109:4;25101:6;25097:17;25086:9;25067:48;:::i;:::-;25059:6;25052:64;24974:156;24951:179;25176:1;25172;25164:6;25160:14;25156:22;25150:4;25143:36;24578:611;;;24541:887;;24131:1303;;;24039:1395;;:::o;25440:370::-;25580:4;25618:2;25607:9;25603:18;25595:26;;25631:71;25699:1;25688:9;25684:17;25675:6;25631:71;:::i;:::-;25712:91;25799:2;25788:9;25784:18;25775:6;25712:91;:::i;:::-;25440:370;;;;;:::o;25816:79::-;25855:7;25884:5;25873:16;;25816:79;;;:::o;25901:157::-;26006:45;26026:24;26044:5;26026:24;:::i;:::-;26006:45;:::i;:::-;26001:3;25994:58;25901:157;;:::o;26064:428::-;26220:3;26235:91;26322:3;26313:6;26235:91;:::i;:::-;26351:1;26346:3;26342:11;26335:18;;26363:75;26434:3;26425:6;26363:75;:::i;:::-;26463:2;26458:3;26454:12;26447:19;;26483:3;26476:10;;26064:428;;;;;:::o;26498:98::-;26549:6;26583:5;26577:12;26567:22;;26498:98;;;:::o;26602:168::-;26685:11;26719:6;26714:3;26707:19;26759:4;26754:3;26750:14;26735:29;;26602:168;;;;:::o;26776:373::-;26862:3;26890:38;26922:5;26890:38;:::i;:::-;26944:70;27007:6;27002:3;26944:70;:::i;:::-;26937:77;;27023:65;27081:6;27076:3;27069:4;27062:5;27058:16;27023:65;:::i;:::-;27113:29;27135:6;27113:29;:::i;:::-;27108:3;27104:39;27097:46;;26866:283;26776:373;;;;:::o;27155:309::-;27266:4;27304:2;27293:9;27289:18;27281:26;;27353:9;27347:4;27343:20;27339:1;27328:9;27324:17;27317:47;27381:76;27452:4;27443:6;27381:76;:::i;:::-;27373:84;;27155:309;;;;:::o"},"methodIdentifiers":{"deployClone(uint8,address,string,bytes)":"fd97064b","getBaseImplementation(bytes32)":"83f38859","getClone(bytes32)":"3aaf1626","getCloneIdentifier(uint8,address,address,string)":"acc83fc8","getClones(address)":"792aa01c","getIdentifier(uint8,string)":"f1668792","register(uint8,string,address)":"d12dd481","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"name\":\"AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"NotCloneable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"name\":\"NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"baseImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract Cloneable\",\"name\":\"deployedInstance\",\"type\":\"address\"}],\"name\":\"Deployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"base_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"deployClone\",\"outputs\":[{\"internalType\":\"contract Cloneable\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier_\",\"type\":\"bytes32\"}],\"name\":\"getBaseImplementation\",\"outputs\":[{\"internalType\":\"contract Cloneable\",\"name\":\"implementation\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier_\",\"type\":\"bytes32\"}],\"name\":\"getClone\",\"outputs\":[{\"components\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"baseType\",\"type\":\"uint8\"},{\"internalType\":\"contract Cloneable\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"struct BoostRegistry.Clone\",\"name\":\"clone\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"base_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"getCloneIdentifier\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer_\",\"type\":\"address\"}],\"name\":\"getClones\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"getIdentifier\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"register\",\"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\":\"This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol\",\"errors\":{\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{\"deployClone(uint8,address,string,bytes)\":{\"details\":\"This function will either emit a `Deployed` event and return the clone or revert\",\"params\":{\"base_\":\"The address of the base implementation to clone\",\"data_\":\"The data payload for the cloned instance's initializer\",\"name_\":\"The display name for the clone\",\"type_\":\"The type of base implementation to be cloned\"},\"returns\":{\"instance\":\"The address of the deployed instance\"}},\"getBaseImplementation(bytes32)\":{\"details\":\"This function will revert if the implementation is not registered\",\"params\":{\"identifier_\":\"The unique identifier for the implementation (see {getIdentifier})\"},\"returns\":{\"implementation\":\"The address of the implementation\"}},\"getClone(bytes32)\":{\"params\":{\"identifier_\":\"The unique identifier for the deployed clone (see {getCloneIdentifier})\"},\"returns\":{\"clone\":\"The address of the deployed clone\"}},\"getCloneIdentifier(uint8,address,address,string)\":{\"params\":{\"base_\":\"The address of the base implementation\",\"deployer_\":\"The address of the deployer\",\"name_\":\"The display name of the clone\",\"type_\":\"The base type for the implementation\"},\"returns\":{\"identifier\":\"The unique identifier for the clone\"}},\"getClones(address)\":{\"details\":\"WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic.\",\"params\":{\"deployer_\":\"The address of the deployer\"},\"returns\":{\"_0\":\"clones The list of deployed clones for the given deployer\"}},\"getIdentifier(uint8,string)\":{\"params\":{\"name_\":\"The name of the implementation\",\"type_\":\"The base type for the implementation\"},\"returns\":{\"identifier\":\"The unique identifier for the implementation\"}},\"register(uint8,string,address)\":{\"details\":\"This function will either emit a `Registered` event or revert if the identifier has already been registeredThe given address must implement the given type interface (See {ERC165-supportsInterface})\",\"params\":{\"implementation_\":\"The address of the implementation contract\",\"name_\":\"A name for the implementation (must be unique within the given type)\",\"type_\":\"The base type for the implementation\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Boost Registry\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyRegistered(uint8,bytes32)\":[{\"notice\":\"Thrown when a base implementation is already registered\"}],\"NotCloneable(address)\":[{\"notice\":\"Thrown when the implementation is not a valid {Cloneable} base\"}],\"NotRegistered(bytes32)\":[{\"notice\":\"Thrown when no match is found for the given identifier\"}]},\"events\":{\"Deployed(uint8,bytes32,address,address)\":{\"notice\":\"Emitted when a new instance of a base implementation is deployed\"},\"Registered(uint8,bytes32,address)\":{\"notice\":\"Emitted when a new base implementation is registered\"}},\"kind\":\"user\",\"methods\":{\"deployClone(uint8,address,string,bytes)\":{\"notice\":\"Deploy a new instance of a registered base implementation\"},\"getBaseImplementation(bytes32)\":{\"notice\":\"Get the address of a registered base implementation\"},\"getClone(bytes32)\":{\"notice\":\"Get the address of a deployed clone by its identifier\"},\"getCloneIdentifier(uint8,address,address,string)\":{\"notice\":\"Build the identifier for a clone of a base implementation\"},\"getClones(address)\":{\"notice\":\"Get the list of identifiers of deployed clones for a given deployer\"},\"getIdentifier(uint8,string)\":{\"notice\":\"Build the identifier for a base implementation\"},\"register(uint8,string,address)\":{\"notice\":\"Register a new base implementation of a given type\"}},\"notice\":\"A registry for base implementations and cloned instances\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BoostRegistry.sol\":\"BoostRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/BoostRegistry.sol\":{\"keccak256\":\"0xc9f28f67a2b9d1e8cfe76981011908b38c63538ee0a27405c58f2e337609d1ff\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53859966207b2ba00858ef705409506458281e37dfeaf7d887f7d9ebe37e08c6\",\"dweb:/ipfs/QmRoAmJnvgG3J8UQqRGEdNdBc1fbWfELqaDemEUx3roPCS\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/actions/Action.sol":{"Action":{"abi":[{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"ExecuteNotImplemented","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"VALIDATOR()":"393df8cb","execute(bytes)":"09c5eabe","initialize(bytes)":"439fab91","prepare(bytes)":"d7768c47","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecuteNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"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\":\"Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"(success, data) A tuple of the success status and the returned data\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"prepare(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"The prepared payload\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"title\":\"Boost Action\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"ExecuteNotImplemented()\":[{\"notice\":\"Thrown when the `execute` function is not implemented\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"execute(bytes)\":{\"notice\":\"Execute the action\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Action within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/Action.sol\":\"Action\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/actions/ContractAction.sol":{"ContractAction":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"ExecuteNotImplemented","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"bytes_","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_12802":{"entryPoint":null,"id":12802,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":31,"id":9198,"parameterSlots":0,"returnSlots":0},"@_initializableSlot_9142":{"entryPoint":135,"id":9142,"parameterSlots":0,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"60a0604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b608051610be66100c85f395f6103a70152610be65ff3fe608060405260043610610085575f3560e01c8063439fab9111610058578063439fab911461014a5780639a8a059214610172578063d4b839921461019c578063d7768c47146101c6578063ea3d508a1461020257610085565b806301ffc9a71461008957806309c5eabe146100c5578063393df8cb146100f65780633fa4f24514610120575b5f80fd5b348015610094575f80fd5b506100af60048036038101906100aa9190610703565b61022c565b6040516100bc9190610748565b60405180910390f35b6100df60048036038101906100da91906107c2565b6102a5565b6040516100ed92919061087d565b60405180910390f35b348015610101575f80fd5b5061010a6103a5565b6040516101179190610925565b60405180910390f35b34801561012b575f80fd5b506101346103c9565b6040516101419190610956565b60405180910390f35b348015610155575f80fd5b50610170600480360381019061016b91906107c2565b6103cf565b005b34801561017d575f80fd5b5061018661045c565b6040516101939190610956565b60405180910390f35b3480156101a7575f80fd5b506101b0610461565b6040516101bd919061098f565b60405180910390f35b3480156101d1575f80fd5b506101ec60048036038101906101e791906107c2565b610486565b6040516101f991906109a8565b60405180910390f35b34801561020d575f80fd5b506102166104aa565b60405161022391906109d7565b60405180910390f35b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029e575061029d826104bd565b5b9050919050565b5f6060465f54146102ee575f546040517f180098f40000000000000000000000000000000000000000000000000000000081526004016102e59190610956565b60405180910390fd5b5f8060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600254610345600160149054906101000a900460e01b8989610536565b6040516103529190610a2a565b5f6040518083038185875af1925050503d805f811461038c576040519150601f19603f3d011682016040523d82523d5f602084013e610391565b606091505b509150915081819350935050509250929050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6103d8610562565b9050805460038255801561040a5760018160011c14303b106104015763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610422838381019061041d9190610b85565b61058b565b8015610457576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606104a2600160149054906101000a900460e01b8484610536565b905092915050565b600160149054906101000a900460e01b81565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052f575061052e82610610565b5b9050919050565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610593610679565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f610682610562565b9050805460011661069a5763d7e6bcf85f526004601cfd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6106e2816106ae565b81146106ec575f80fd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106a6565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261078257610781610761565b5b8235905067ffffffffffffffff81111561079f5761079e610765565b5b6020830191508360018202830111156107bb576107ba610769565b5b9250929050565b5f80602083850312156107d8576107d76106a6565b5b5f83013567ffffffffffffffff8111156107f5576107f46106aa565b5b6108018582860161076d565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084f8261080d565b6108598185610817565b9350610869818560208601610827565b61087281610835565b840191505092915050565b5f6040820190506108905f830185610739565b81810360208301526108a28184610845565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6108ed6108e86108e3846108ab565b6108ca565b6108ab565b9050919050565b5f6108fe826108d3565b9050919050565b5f61090f826108f4565b9050919050565b61091f81610905565b82525050565b5f6020820190506109385f830184610916565b92915050565b5f819050919050565b6109508161093e565b82525050565b5f6020820190506109695f830184610947565b92915050565b5f610979826108ab565b9050919050565b6109898161096f565b82525050565b5f6020820190506109a25f830184610980565b92915050565b5f6020820190508181035f8301526109c08184610845565b905092915050565b6109d1816106ae565b82525050565b5f6020820190506109ea5f8301846109c8565b92915050565b5f81905092915050565b5f610a048261080d565b610a0e81856109f0565b9350610a1e818560208601610827565b80840191505092915050565b5f610a3582846109fa565b915081905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a7a82610835565b810181811067ffffffffffffffff82111715610a9957610a98610a44565b5b80604052505050565b5f610aab61069d565b9050610ab78282610a71565b919050565b610ac58161093e565b8114610acf575f80fd5b50565b5f81359050610ae081610abc565b92915050565b610aef8161096f565b8114610af9575f80fd5b50565b5f81359050610b0a81610ae6565b92915050565b5f60808284031215610b2557610b24610a40565b5b610b2f6080610aa2565b90505f610b3e84828501610ad2565b5f830152506020610b5184828501610afc565b6020830152506040610b65848285016106ef565b6040830152506060610b7984828501610ad2565b60608301525092915050565b5f60808284031215610b9a57610b996106a6565b5b5f610ba784828501610b10565b9150509291505056fea264697066735822122021c0c7afbc5047b3c02734c3b94bc48232b385dfccec943fdc344e862c9f8f1c64736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x1B PUSH1 0x1F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xB0 JUMP JUMPDEST PUSH0 PUSH1 0x2C PUSH1 0x87 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH1 0x45 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH1 0x82 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xBE6 PUSH2 0xC8 PUSH0 CODECOPY PUSH0 PUSH2 0x3A7 ADD MSTORE PUSH2 0xBE6 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x85 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x439FAB91 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x202 JUMPI PUSH2 0x85 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x120 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBC SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDA SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x2A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP3 SWAP2 SWAP1 PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x10A PUSH2 0x3A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x117 SWAP2 SWAP1 PUSH2 0x925 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x134 PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x155 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x45C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B0 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x4AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x9D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x29E JUMPI POP PUSH2 0x29D DUP3 PUSH2 0x4BD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 CHAINID PUSH0 SLOAD EQ PUSH2 0x2EE JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x180098F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E5 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 SLOAD PUSH2 0x345 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP10 DUP10 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xA2A JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x38C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x391 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x3D8 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x401 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x422 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x58B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x457 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4A2 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x52F JUMPI POP PUSH2 0x52E DUP3 PUSH2 0x610 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x593 PUSH2 0x679 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x682 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0x69A JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6E2 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP2 EQ PUSH2 0x6EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6FD DUP2 PUSH2 0x6D9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x718 JUMPI PUSH2 0x717 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x725 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x742 DUP2 PUSH2 0x72E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x75B PUSH0 DUP4 ADD DUP5 PUSH2 0x739 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x782 JUMPI PUSH2 0x781 PUSH2 0x761 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x79F JUMPI PUSH2 0x79E PUSH2 0x765 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x769 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH2 0x7F4 PUSH2 0x6AA JUMP JUMPDEST JUMPDEST PUSH2 0x801 DUP6 DUP3 DUP7 ADD PUSH2 0x76D JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x84F DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0x859 DUP2 DUP6 PUSH2 0x817 JUMP JUMPDEST SWAP4 POP PUSH2 0x869 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST PUSH2 0x872 DUP2 PUSH2 0x835 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x890 PUSH0 DUP4 ADD DUP6 PUSH2 0x739 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8A2 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8ED PUSH2 0x8E8 PUSH2 0x8E3 DUP5 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x8CA JUMP JUMPDEST PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8FE DUP3 PUSH2 0x8D3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x90F DUP3 PUSH2 0x8F4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x91F DUP2 PUSH2 0x905 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x938 PUSH0 DUP4 ADD DUP5 PUSH2 0x916 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x950 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x969 PUSH0 DUP4 ADD DUP5 PUSH2 0x947 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x979 DUP3 PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x989 DUP2 PUSH2 0x96F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9A2 PUSH0 DUP4 ADD DUP5 PUSH2 0x980 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9C0 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9D1 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9EA PUSH0 DUP4 ADD DUP5 PUSH2 0x9C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA04 DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0xA0E DUP2 DUP6 PUSH2 0x9F0 JUMP JUMPDEST SWAP4 POP PUSH2 0xA1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA35 DUP3 DUP5 PUSH2 0x9FA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xA7A DUP3 PUSH2 0x835 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xA99 JUMPI PUSH2 0xA98 PUSH2 0xA44 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAB PUSH2 0x69D JUMP JUMPDEST SWAP1 POP PUSH2 0xAB7 DUP3 DUP3 PUSH2 0xA71 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP2 EQ PUSH2 0xACF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE0 DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEF DUP2 PUSH2 0x96F JUMP JUMPDEST DUP2 EQ PUSH2 0xAF9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB0A DUP2 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0xA40 JUMP JUMPDEST JUMPDEST PUSH2 0xB2F PUSH1 0x80 PUSH2 0xAA2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xB3E DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0xB51 DUP5 DUP3 DUP6 ADD PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xB65 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0xB79 DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH2 0xB99 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBA7 DUP5 DUP3 DUP6 ADD PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xC0 0xC7 0xAF 0xBC POP SELFBALANCE 0xB3 0xC0 0x27 CALLVALUE 0xC3 0xB9 0x4B 0xC4 DUP3 ORIGIN 0xB3 DUP6 0xDF 0xCC 0xEC SWAP5 EXTCODEHASH 0xDC CALLVALUE 0x4E DUP7 0x2C SWAP16 DUP16 SHR PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"225:2470:32:-:0;;;1092:53;;;;;;;;;;1116:22;:20;;;:22;;:::i;:::-;225:2470;;6525:759:21;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;2424:113::-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;225:2470:32:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@VALIDATOR_12716":{"entryPoint":933,"id":12716,"parameterSlots":0,"returnSlots":0},"@_buildPayload_12913":{"entryPoint":1334,"id":12913,"parameterSlots":3,"returnSlots":1},"@_checkInitializing_9187":{"entryPoint":1657,"id":9187,"parameterSlots":0,"returnSlots":0},"@_initializableSlot_9142":{"entryPoint":1378,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initialize_12902":{"entryPoint":1419,"id":12902,"parameterSlots":1,"returnSlots":0},"@chainId_12786":{"entryPoint":1116,"id":12786,"parameterSlots":0,"returnSlots":0},"@execute_12859":{"entryPoint":677,"id":12859,"parameterSlots":2,"returnSlots":2},"@initialize_12821":{"entryPoint":975,"id":12821,"parameterSlots":2,"returnSlots":0},"@prepare_12873":{"entryPoint":1158,"id":12873,"parameterSlots":2,"returnSlots":1},"@selector_12792":{"entryPoint":1194,"id":12792,"parameterSlots":0,"returnSlots":0},"@supportsInterface_12757":{"entryPoint":556,"id":12757,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":1213,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":1552,"id":2844,"parameterSlots":1,"returnSlots":1},"@target_12789":{"entryPoint":1121,"id":12789,"parameterSlots":0,"returnSlots":0},"@value_12795":{"entryPoint":969,"id":12795,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2812,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":1775,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1901,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":2832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2770,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":1795,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":1986,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":2949,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2432,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1849,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":2504,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2117,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2554,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack":{"entryPoint":2326,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2375,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2602,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2447,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1864,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2173,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":2519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed":{"entryPoint":2341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2390,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":2722,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1693,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2061,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2071,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2544,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2415,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":1838,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":1710,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2219,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2366,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$18282_to_t_address":{"entryPoint":2309,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2292,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":2259,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2087,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":2673,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":2250,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":2628,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":1893,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1889,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":2624,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":1897,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1706,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1702,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2101,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2790,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":1753,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2748,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10505:53","nodeType":"YulBlock","src":"0:10505:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1974:478:53","nodeType":"YulBlock","src":"1974:478:53","statements":[{"body":{"nativeSrc":"2023:83:53","nodeType":"YulBlock","src":"2023:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:53","nodeType":"YulIdentifier","src":"2025:77:53"},"nativeSrc":"2025:79:53","nodeType":"YulFunctionCall","src":"2025:79:53"},"nativeSrc":"2025:79:53","nodeType":"YulExpressionStatement","src":"2025:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:53","nodeType":"YulIdentifier","src":"2002:6:53"},{"kind":"number","nativeSrc":"2010:4:53","nodeType":"YulLiteral","src":"2010:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"},{"name":"end","nativeSrc":"2017:3:53","nodeType":"YulIdentifier","src":"2017:3:53"}],"functionName":{"name":"slt","nativeSrc":"1994:3:53","nodeType":"YulIdentifier","src":"1994:3:53"},"nativeSrc":"1994:27:53","nodeType":"YulFunctionCall","src":"1994:27:53"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:53","nodeType":"YulIdentifier","src":"1987:6:53"},"nativeSrc":"1987:35:53","nodeType":"YulFunctionCall","src":"1987:35:53"},"nativeSrc":"1984:122:53","nodeType":"YulIf","src":"1984:122:53"},{"nativeSrc":"2115:30:53","nodeType":"YulAssignment","src":"2115:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:53","nodeType":"YulIdentifier","src":"2138:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:53","nodeType":"YulIdentifier","src":"2125:12:53"},"nativeSrc":"2125:20:53","nodeType":"YulFunctionCall","src":"2125:20:53"},"variableNames":[{"name":"length","nativeSrc":"2115:6:53","nodeType":"YulIdentifier","src":"2115:6:53"}]},{"body":{"nativeSrc":"2188:83:53","nodeType":"YulBlock","src":"2188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:53","nodeType":"YulIdentifier","src":"2190:77:53"},"nativeSrc":"2190:79:53","nodeType":"YulFunctionCall","src":"2190:79:53"},"nativeSrc":"2190:79:53","nodeType":"YulExpressionStatement","src":"2190:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:53","nodeType":"YulIdentifier","src":"2160:6:53"},{"kind":"number","nativeSrc":"2168:18:53","nodeType":"YulLiteral","src":"2168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:53","nodeType":"YulIdentifier","src":"2157:2:53"},"nativeSrc":"2157:30:53","nodeType":"YulFunctionCall","src":"2157:30:53"},"nativeSrc":"2154:117:53","nodeType":"YulIf","src":"2154:117:53"},{"nativeSrc":"2280:29:53","nodeType":"YulAssignment","src":"2280:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:53","nodeType":"YulIdentifier","src":"2296:6:53"},{"kind":"number","nativeSrc":"2304:4:53","nodeType":"YulLiteral","src":"2304:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:53","nodeType":"YulIdentifier","src":"2292:3:53"},"nativeSrc":"2292:17:53","nodeType":"YulFunctionCall","src":"2292:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:53","nodeType":"YulIdentifier","src":"2280:8:53"}]},{"body":{"nativeSrc":"2363:83:53","nodeType":"YulBlock","src":"2363:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:53","nodeType":"YulIdentifier","src":"2365:77:53"},"nativeSrc":"2365:79:53","nodeType":"YulFunctionCall","src":"2365:79:53"},"nativeSrc":"2365:79:53","nodeType":"YulExpressionStatement","src":"2365:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:53","nodeType":"YulIdentifier","src":"2328:8:53"},{"arguments":[{"name":"length","nativeSrc":"2342:6:53","nodeType":"YulIdentifier","src":"2342:6:53"},{"kind":"number","nativeSrc":"2350:4:53","nodeType":"YulLiteral","src":"2350:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:53","nodeType":"YulIdentifier","src":"2338:3:53"},"nativeSrc":"2338:17:53","nodeType":"YulFunctionCall","src":"2338:17:53"}],"functionName":{"name":"add","nativeSrc":"2324:3:53","nodeType":"YulIdentifier","src":"2324:3:53"},"nativeSrc":"2324:32:53","nodeType":"YulFunctionCall","src":"2324:32:53"},{"name":"end","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"}],"functionName":{"name":"gt","nativeSrc":"2321:2:53","nodeType":"YulIdentifier","src":"2321:2:53"},"nativeSrc":"2321:41:53","nodeType":"YulFunctionCall","src":"2321:41:53"},"nativeSrc":"2318:128:53","nodeType":"YulIf","src":"2318:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:53","nodeType":"YulTypedName","src":"1941:6:53","type":""},{"name":"end","nativeSrc":"1949:3:53","nodeType":"YulTypedName","src":"1949:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:53","nodeType":"YulTypedName","src":"1957:8:53","type":""},{"name":"length","nativeSrc":"1967:6:53","nodeType":"YulTypedName","src":"1967:6:53","type":""}],"src":"1900:552:53"},{"body":{"nativeSrc":"2543:442:53","nodeType":"YulBlock","src":"2543:442:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:296:53","nodeType":"YulBlock","src":"2682:296:53","statements":[{"nativeSrc":"2697:45:53","nodeType":"YulVariableDeclaration","src":"2697:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:53","nodeType":"YulIdentifier","src":"2728:9:53"},{"kind":"number","nativeSrc":"2739:1:53","nodeType":"YulLiteral","src":"2739:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:53","nodeType":"YulIdentifier","src":"2724:3:53"},"nativeSrc":"2724:17:53","nodeType":"YulFunctionCall","src":"2724:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:53","nodeType":"YulIdentifier","src":"2711:12:53"},"nativeSrc":"2711:31:53","nodeType":"YulFunctionCall","src":"2711:31:53"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"body":{"nativeSrc":"2789:83:53","nodeType":"YulBlock","src":"2789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:53","nodeType":"YulIdentifier","src":"2791:77:53"},"nativeSrc":"2791:79:53","nodeType":"YulFunctionCall","src":"2791:79:53"},"nativeSrc":"2791:79:53","nodeType":"YulExpressionStatement","src":"2791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},{"kind":"number","nativeSrc":"2769:18:53","nodeType":"YulLiteral","src":"2769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:53","nodeType":"YulIdentifier","src":"2758:2:53"},"nativeSrc":"2758:30:53","nodeType":"YulFunctionCall","src":"2758:30:53"},"nativeSrc":"2755:117:53","nodeType":"YulIf","src":"2755:117:53"},{"nativeSrc":"2886:82:53","nodeType":"YulAssignment","src":"2886:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"},{"name":"offset","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"}],"functionName":{"name":"add","nativeSrc":"2936:3:53","nodeType":"YulIdentifier","src":"2936:3:53"},"nativeSrc":"2936:22:53","nodeType":"YulFunctionCall","src":"2936:22:53"},{"name":"dataEnd","nativeSrc":"2960:7:53","nodeType":"YulIdentifier","src":"2960:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:53","nodeType":"YulIdentifier","src":"2904:31:53"},"nativeSrc":"2904:64:53","nodeType":"YulFunctionCall","src":"2904:64:53"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:53","nodeType":"YulIdentifier","src":"2886:6:53"},{"name":"value1","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:53","nodeType":"YulTypedName","src":"2505:9:53","type":""},{"name":"dataEnd","nativeSrc":"2516:7:53","nodeType":"YulTypedName","src":"2516:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:53","nodeType":"YulTypedName","src":"2528:6:53","type":""},{"name":"value1","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2458:527:53"},{"body":{"nativeSrc":"3049:40:53","nodeType":"YulBlock","src":"3049:40:53","statements":[{"nativeSrc":"3060:22:53","nodeType":"YulAssignment","src":"3060:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"}],"functionName":{"name":"mload","nativeSrc":"3070:5:53","nodeType":"YulIdentifier","src":"3070:5:53"},"nativeSrc":"3070:12:53","nodeType":"YulFunctionCall","src":"3070:12:53"},"variableNames":[{"name":"length","nativeSrc":"3060:6:53","nodeType":"YulIdentifier","src":"3060:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:53","nodeType":"YulTypedName","src":"3032:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:53","nodeType":"YulTypedName","src":"3042:6:53","type":""}],"src":"2991:98:53"},{"body":{"nativeSrc":"3190:73:53","nodeType":"YulBlock","src":"3190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"},{"name":"length","nativeSrc":"3212:6:53","nodeType":"YulIdentifier","src":"3212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:53","nodeType":"YulIdentifier","src":"3200:6:53"},"nativeSrc":"3200:19:53","nodeType":"YulFunctionCall","src":"3200:19:53"},"nativeSrc":"3200:19:53","nodeType":"YulExpressionStatement","src":"3200:19:53"},{"nativeSrc":"3228:29:53","nodeType":"YulAssignment","src":"3228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:53","nodeType":"YulIdentifier","src":"3247:3:53"},{"kind":"number","nativeSrc":"3252:4:53","nodeType":"YulLiteral","src":"3252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:53","nodeType":"YulIdentifier","src":"3243:3:53"},"nativeSrc":"3243:14:53","nodeType":"YulFunctionCall","src":"3243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:53","nodeType":"YulIdentifier","src":"3228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:53","nodeType":"YulTypedName","src":"3162:3:53","type":""},{"name":"length","nativeSrc":"3167:6:53","nodeType":"YulTypedName","src":"3167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:53","nodeType":"YulTypedName","src":"3178:11:53","type":""}],"src":"3095:168:53"},{"body":{"nativeSrc":"3331:77:53","nodeType":"YulBlock","src":"3331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:53","nodeType":"YulIdentifier","src":"3348:3:53"},{"name":"src","nativeSrc":"3353:3:53","nodeType":"YulIdentifier","src":"3353:3:53"},{"name":"length","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:53","nodeType":"YulIdentifier","src":"3342:5:53"},"nativeSrc":"3342:23:53","nodeType":"YulFunctionCall","src":"3342:23:53"},"nativeSrc":"3342:23:53","nodeType":"YulExpressionStatement","src":"3342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:53","nodeType":"YulIdentifier","src":"3385:3:53"},{"name":"length","nativeSrc":"3390:6:53","nodeType":"YulIdentifier","src":"3390:6:53"}],"functionName":{"name":"add","nativeSrc":"3381:3:53","nodeType":"YulIdentifier","src":"3381:3:53"},"nativeSrc":"3381:16:53","nodeType":"YulFunctionCall","src":"3381:16:53"},{"kind":"number","nativeSrc":"3399:1:53","nodeType":"YulLiteral","src":"3399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:53","nodeType":"YulIdentifier","src":"3374:6:53"},"nativeSrc":"3374:27:53","nodeType":"YulFunctionCall","src":"3374:27:53"},"nativeSrc":"3374:27:53","nodeType":"YulExpressionStatement","src":"3374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:53","nodeType":"YulTypedName","src":"3313:3:53","type":""},{"name":"dst","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""},{"name":"length","nativeSrc":"3323:6:53","nodeType":"YulTypedName","src":"3323:6:53","type":""}],"src":"3269:139:53"},{"body":{"nativeSrc":"3462:54:53","nodeType":"YulBlock","src":"3462:54:53","statements":[{"nativeSrc":"3472:38:53","nodeType":"YulAssignment","src":"3472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:53","nodeType":"YulIdentifier","src":"3490:5:53"},{"kind":"number","nativeSrc":"3497:2:53","nodeType":"YulLiteral","src":"3497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:53","nodeType":"YulIdentifier","src":"3486:3:53"},"nativeSrc":"3486:14:53","nodeType":"YulFunctionCall","src":"3486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:53","nodeType":"YulLiteral","src":"3506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:53","nodeType":"YulIdentifier","src":"3502:3:53"},"nativeSrc":"3502:7:53","nodeType":"YulFunctionCall","src":"3502:7:53"}],"functionName":{"name":"and","nativeSrc":"3482:3:53","nodeType":"YulIdentifier","src":"3482:3:53"},"nativeSrc":"3482:28:53","nodeType":"YulFunctionCall","src":"3482:28:53"},"variableNames":[{"name":"result","nativeSrc":"3472:6:53","nodeType":"YulIdentifier","src":"3472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:53","nodeType":"YulTypedName","src":"3445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:53","nodeType":"YulTypedName","src":"3455:6:53","type":""}],"src":"3414:102:53"},{"body":{"nativeSrc":"3612:283:53","nodeType":"YulBlock","src":"3612:283:53","statements":[{"nativeSrc":"3622:52:53","nodeType":"YulVariableDeclaration","src":"3622:52:53","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:53","nodeType":"YulIdentifier","src":"3668:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:53","nodeType":"YulIdentifier","src":"3636:31:53"},"nativeSrc":"3636:38:53","nodeType":"YulFunctionCall","src":"3636:38:53"},"variables":[{"name":"length","nativeSrc":"3626:6:53","nodeType":"YulTypedName","src":"3626:6:53","type":""}]},{"nativeSrc":"3683:77:53","nodeType":"YulAssignment","src":"3683:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},{"name":"length","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:53","nodeType":"YulIdentifier","src":"3690:57:53"},"nativeSrc":"3690:70:53","nodeType":"YulFunctionCall","src":"3690:70:53"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:53","nodeType":"YulIdentifier","src":"3683:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:53","nodeType":"YulIdentifier","src":"3808:5:53"},{"kind":"number","nativeSrc":"3815:4:53","nodeType":"YulLiteral","src":"3815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:16:53","nodeType":"YulFunctionCall","src":"3804:16:53"},{"name":"pos","nativeSrc":"3822:3:53","nodeType":"YulIdentifier","src":"3822:3:53"},{"name":"length","nativeSrc":"3827:6:53","nodeType":"YulIdentifier","src":"3827:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:53","nodeType":"YulIdentifier","src":"3769:34:53"},"nativeSrc":"3769:65:53","nodeType":"YulFunctionCall","src":"3769:65:53"},"nativeSrc":"3769:65:53","nodeType":"YulExpressionStatement","src":"3769:65:53"},{"nativeSrc":"3843:46:53","nodeType":"YulAssignment","src":"3843:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:53","nodeType":"YulIdentifier","src":"3854:3:53"},{"arguments":[{"name":"length","nativeSrc":"3881:6:53","nodeType":"YulIdentifier","src":"3881:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:53","nodeType":"YulIdentifier","src":"3859:21:53"},"nativeSrc":"3859:29:53","nodeType":"YulFunctionCall","src":"3859:29:53"}],"functionName":{"name":"add","nativeSrc":"3850:3:53","nodeType":"YulIdentifier","src":"3850:3:53"},"nativeSrc":"3850:39:53","nodeType":"YulFunctionCall","src":"3850:39:53"},"variableNames":[{"name":"end","nativeSrc":"3843:3:53","nodeType":"YulIdentifier","src":"3843:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:53","nodeType":"YulTypedName","src":"3593:5:53","type":""},{"name":"pos","nativeSrc":"3600:3:53","nodeType":"YulTypedName","src":"3600:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:53","nodeType":"YulTypedName","src":"3608:3:53","type":""}],"src":"3522:373:53"},{"body":{"nativeSrc":"4039:269:53","nodeType":"YulBlock","src":"4039:269:53","statements":[{"nativeSrc":"4049:26:53","nodeType":"YulAssignment","src":"4049:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4061:9:53","nodeType":"YulIdentifier","src":"4061:9:53"},{"kind":"number","nativeSrc":"4072:2:53","nodeType":"YulLiteral","src":"4072:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4057:3:53","nodeType":"YulIdentifier","src":"4057:3:53"},"nativeSrc":"4057:18:53","nodeType":"YulFunctionCall","src":"4057:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4049:4:53","nodeType":"YulIdentifier","src":"4049:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4123:6:53","nodeType":"YulIdentifier","src":"4123:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4136:9:53","nodeType":"YulIdentifier","src":"4136:9:53"},{"kind":"number","nativeSrc":"4147:1:53","nodeType":"YulLiteral","src":"4147:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4132:3:53","nodeType":"YulIdentifier","src":"4132:3:53"},"nativeSrc":"4132:17:53","nodeType":"YulFunctionCall","src":"4132:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4085:37:53","nodeType":"YulIdentifier","src":"4085:37:53"},"nativeSrc":"4085:65:53","nodeType":"YulFunctionCall","src":"4085:65:53"},"nativeSrc":"4085:65:53","nodeType":"YulExpressionStatement","src":"4085:65:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4171:9:53","nodeType":"YulIdentifier","src":"4171:9:53"},{"kind":"number","nativeSrc":"4182:2:53","nodeType":"YulLiteral","src":"4182:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4167:3:53","nodeType":"YulIdentifier","src":"4167:3:53"},"nativeSrc":"4167:18:53","nodeType":"YulFunctionCall","src":"4167:18:53"},{"arguments":[{"name":"tail","nativeSrc":"4191:4:53","nodeType":"YulIdentifier","src":"4191:4:53"},{"name":"headStart","nativeSrc":"4197:9:53","nodeType":"YulIdentifier","src":"4197:9:53"}],"functionName":{"name":"sub","nativeSrc":"4187:3:53","nodeType":"YulIdentifier","src":"4187:3:53"},"nativeSrc":"4187:20:53","nodeType":"YulFunctionCall","src":"4187:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4160:6:53","nodeType":"YulIdentifier","src":"4160:6:53"},"nativeSrc":"4160:48:53","nodeType":"YulFunctionCall","src":"4160:48:53"},"nativeSrc":"4160:48:53","nodeType":"YulExpressionStatement","src":"4160:48:53"},{"nativeSrc":"4217:84:53","nodeType":"YulAssignment","src":"4217:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"4287:6:53","nodeType":"YulIdentifier","src":"4287:6:53"},{"name":"tail","nativeSrc":"4296:4:53","nodeType":"YulIdentifier","src":"4296:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4225:61:53","nodeType":"YulIdentifier","src":"4225:61:53"},"nativeSrc":"4225:76:53","nodeType":"YulFunctionCall","src":"4225:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:53","nodeType":"YulIdentifier","src":"4217:4:53"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:407:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4003:9:53","nodeType":"YulTypedName","src":"4003:9:53","type":""},{"name":"value1","nativeSrc":"4015:6:53","nodeType":"YulTypedName","src":"4015:6:53","type":""},{"name":"value0","nativeSrc":"4023:6:53","nodeType":"YulTypedName","src":"4023:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4034:4:53","nodeType":"YulTypedName","src":"4034:4:53","type":""}],"src":"3901:407:53"},{"body":{"nativeSrc":"4359:81:53","nodeType":"YulBlock","src":"4359:81:53","statements":[{"nativeSrc":"4369:65:53","nodeType":"YulAssignment","src":"4369:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:53","nodeType":"YulIdentifier","src":"4384:5:53"},{"kind":"number","nativeSrc":"4391:42:53","nodeType":"YulLiteral","src":"4391:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4380:3:53","nodeType":"YulIdentifier","src":"4380:3:53"},"nativeSrc":"4380:54:53","nodeType":"YulFunctionCall","src":"4380:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:53","nodeType":"YulIdentifier","src":"4369:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4314:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:53","nodeType":"YulTypedName","src":"4341:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:53","nodeType":"YulTypedName","src":"4351:7:53","type":""}],"src":"4314:126:53"},{"body":{"nativeSrc":"4478:28:53","nodeType":"YulBlock","src":"4478:28:53","statements":[{"nativeSrc":"4488:12:53","nodeType":"YulAssignment","src":"4488:12:53","value":{"name":"value","nativeSrc":"4495:5:53","nodeType":"YulIdentifier","src":"4495:5:53"},"variableNames":[{"name":"ret","nativeSrc":"4488:3:53","nodeType":"YulIdentifier","src":"4488:3:53"}]}]},"name":"identity","nativeSrc":"4446:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4464:5:53","nodeType":"YulTypedName","src":"4464:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4474:3:53","nodeType":"YulTypedName","src":"4474:3:53","type":""}],"src":"4446:60:53"},{"body":{"nativeSrc":"4572:82:53","nodeType":"YulBlock","src":"4572:82:53","statements":[{"nativeSrc":"4582:66:53","nodeType":"YulAssignment","src":"4582:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4640:5:53","nodeType":"YulIdentifier","src":"4640:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4622:17:53","nodeType":"YulIdentifier","src":"4622:17:53"},"nativeSrc":"4622:24:53","nodeType":"YulFunctionCall","src":"4622:24:53"}],"functionName":{"name":"identity","nativeSrc":"4613:8:53","nodeType":"YulIdentifier","src":"4613:8:53"},"nativeSrc":"4613:34:53","nodeType":"YulFunctionCall","src":"4613:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4595:17:53","nodeType":"YulIdentifier","src":"4595:17:53"},"nativeSrc":"4595:53:53","nodeType":"YulFunctionCall","src":"4595:53:53"},"variableNames":[{"name":"converted","nativeSrc":"4582:9:53","nodeType":"YulIdentifier","src":"4582:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4512:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4552:5:53","nodeType":"YulTypedName","src":"4552:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4562:9:53","nodeType":"YulTypedName","src":"4562:9:53","type":""}],"src":"4512:142:53"},{"body":{"nativeSrc":"4720:66:53","nodeType":"YulBlock","src":"4720:66:53","statements":[{"nativeSrc":"4730:50:53","nodeType":"YulAssignment","src":"4730:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4774:5:53","nodeType":"YulIdentifier","src":"4774:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4743:30:53","nodeType":"YulIdentifier","src":"4743:30:53"},"nativeSrc":"4743:37:53","nodeType":"YulFunctionCall","src":"4743:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4730:9:53","nodeType":"YulIdentifier","src":"4730:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"4660:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4700:5:53","nodeType":"YulTypedName","src":"4700:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4710:9:53","nodeType":"YulTypedName","src":"4710:9:53","type":""}],"src":"4660:126:53"},{"body":{"nativeSrc":"4871:66:53","nodeType":"YulBlock","src":"4871:66:53","statements":[{"nativeSrc":"4881:50:53","nodeType":"YulAssignment","src":"4881:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4925:5:53","nodeType":"YulIdentifier","src":"4925:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4894:30:53","nodeType":"YulIdentifier","src":"4894:30:53"},"nativeSrc":"4894:37:53","nodeType":"YulFunctionCall","src":"4894:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4881:9:53","nodeType":"YulIdentifier","src":"4881:9:53"}]}]},"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"4792:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4851:5:53","nodeType":"YulTypedName","src":"4851:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4861:9:53","nodeType":"YulTypedName","src":"4861:9:53","type":""}],"src":"4792:145:53"},{"body":{"nativeSrc":"5027:85:53","nodeType":"YulBlock","src":"5027:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5044:3:53","nodeType":"YulIdentifier","src":"5044:3:53"},{"arguments":[{"name":"value","nativeSrc":"5099:5:53","nodeType":"YulIdentifier","src":"5099:5:53"}],"functionName":{"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"5049:49:53","nodeType":"YulIdentifier","src":"5049:49:53"},"nativeSrc":"5049:56:53","nodeType":"YulFunctionCall","src":"5049:56:53"}],"functionName":{"name":"mstore","nativeSrc":"5037:6:53","nodeType":"YulIdentifier","src":"5037:6:53"},"nativeSrc":"5037:69:53","nodeType":"YulFunctionCall","src":"5037:69:53"},"nativeSrc":"5037:69:53","nodeType":"YulExpressionStatement","src":"5037:69:53"}]},"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"4943:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5015:5:53","nodeType":"YulTypedName","src":"5015:5:53","type":""},{"name":"pos","nativeSrc":"5022:3:53","nodeType":"YulTypedName","src":"5022:3:53","type":""}],"src":"4943:169:53"},{"body":{"nativeSrc":"5235:143:53","nodeType":"YulBlock","src":"5235:143:53","statements":[{"nativeSrc":"5245:26:53","nodeType":"YulAssignment","src":"5245:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5257:9:53","nodeType":"YulIdentifier","src":"5257:9:53"},{"kind":"number","nativeSrc":"5268:2:53","nodeType":"YulLiteral","src":"5268:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5253:3:53","nodeType":"YulIdentifier","src":"5253:3:53"},"nativeSrc":"5253:18:53","nodeType":"YulFunctionCall","src":"5253:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5245:4:53","nodeType":"YulIdentifier","src":"5245:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5344:6:53","nodeType":"YulIdentifier","src":"5344:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5357:9:53","nodeType":"YulIdentifier","src":"5357:9:53"},{"kind":"number","nativeSrc":"5368:1:53","nodeType":"YulLiteral","src":"5368:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5353:3:53","nodeType":"YulIdentifier","src":"5353:3:53"},"nativeSrc":"5353:17:53","nodeType":"YulFunctionCall","src":"5353:17:53"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"5281:62:53","nodeType":"YulIdentifier","src":"5281:62:53"},"nativeSrc":"5281:90:53","nodeType":"YulFunctionCall","src":"5281:90:53"},"nativeSrc":"5281:90:53","nodeType":"YulExpressionStatement","src":"5281:90:53"}]},"name":"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed","nativeSrc":"5118:260:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5207:9:53","nodeType":"YulTypedName","src":"5207:9:53","type":""},{"name":"value0","nativeSrc":"5219:6:53","nodeType":"YulTypedName","src":"5219:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5230:4:53","nodeType":"YulTypedName","src":"5230:4:53","type":""}],"src":"5118:260:53"},{"body":{"nativeSrc":"5429:32:53","nodeType":"YulBlock","src":"5429:32:53","statements":[{"nativeSrc":"5439:16:53","nodeType":"YulAssignment","src":"5439:16:53","value":{"name":"value","nativeSrc":"5450:5:53","nodeType":"YulIdentifier","src":"5450:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5439:7:53","nodeType":"YulIdentifier","src":"5439:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5384:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5411:5:53","nodeType":"YulTypedName","src":"5411:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5421:7:53","nodeType":"YulTypedName","src":"5421:7:53","type":""}],"src":"5384:77:53"},{"body":{"nativeSrc":"5532:53:53","nodeType":"YulBlock","src":"5532:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5549:3:53","nodeType":"YulIdentifier","src":"5549:3:53"},{"arguments":[{"name":"value","nativeSrc":"5572:5:53","nodeType":"YulIdentifier","src":"5572:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5554:17:53","nodeType":"YulIdentifier","src":"5554:17:53"},"nativeSrc":"5554:24:53","nodeType":"YulFunctionCall","src":"5554:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5542:6:53","nodeType":"YulIdentifier","src":"5542:6:53"},"nativeSrc":"5542:37:53","nodeType":"YulFunctionCall","src":"5542:37:53"},"nativeSrc":"5542:37:53","nodeType":"YulExpressionStatement","src":"5542:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5467:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5520:5:53","nodeType":"YulTypedName","src":"5520:5:53","type":""},{"name":"pos","nativeSrc":"5527:3:53","nodeType":"YulTypedName","src":"5527:3:53","type":""}],"src":"5467:118:53"},{"body":{"nativeSrc":"5689:124:53","nodeType":"YulBlock","src":"5689:124:53","statements":[{"nativeSrc":"5699:26:53","nodeType":"YulAssignment","src":"5699:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5711:9:53","nodeType":"YulIdentifier","src":"5711:9:53"},{"kind":"number","nativeSrc":"5722:2:53","nodeType":"YulLiteral","src":"5722:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5707:3:53","nodeType":"YulIdentifier","src":"5707:3:53"},"nativeSrc":"5707:18:53","nodeType":"YulFunctionCall","src":"5707:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5699:4:53","nodeType":"YulIdentifier","src":"5699:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5779:6:53","nodeType":"YulIdentifier","src":"5779:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5792:9:53","nodeType":"YulIdentifier","src":"5792:9:53"},{"kind":"number","nativeSrc":"5803:1:53","nodeType":"YulLiteral","src":"5803:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5788:3:53","nodeType":"YulIdentifier","src":"5788:3:53"},"nativeSrc":"5788:17:53","nodeType":"YulFunctionCall","src":"5788:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5735:43:53","nodeType":"YulIdentifier","src":"5735:43:53"},"nativeSrc":"5735:71:53","nodeType":"YulFunctionCall","src":"5735:71:53"},"nativeSrc":"5735:71:53","nodeType":"YulExpressionStatement","src":"5735:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5591:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5661:9:53","nodeType":"YulTypedName","src":"5661:9:53","type":""},{"name":"value0","nativeSrc":"5673:6:53","nodeType":"YulTypedName","src":"5673:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5684:4:53","nodeType":"YulTypedName","src":"5684:4:53","type":""}],"src":"5591:222:53"},{"body":{"nativeSrc":"5864:51:53","nodeType":"YulBlock","src":"5864:51:53","statements":[{"nativeSrc":"5874:35:53","nodeType":"YulAssignment","src":"5874:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5903:5:53","nodeType":"YulIdentifier","src":"5903:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5885:17:53","nodeType":"YulIdentifier","src":"5885:17:53"},"nativeSrc":"5885:24:53","nodeType":"YulFunctionCall","src":"5885:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5874:7:53","nodeType":"YulIdentifier","src":"5874:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5819:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5846:5:53","nodeType":"YulTypedName","src":"5846:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5856:7:53","nodeType":"YulTypedName","src":"5856:7:53","type":""}],"src":"5819:96:53"},{"body":{"nativeSrc":"5986:53:53","nodeType":"YulBlock","src":"5986:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6003:3:53","nodeType":"YulIdentifier","src":"6003:3:53"},{"arguments":[{"name":"value","nativeSrc":"6026:5:53","nodeType":"YulIdentifier","src":"6026:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6008:17:53","nodeType":"YulIdentifier","src":"6008:17:53"},"nativeSrc":"6008:24:53","nodeType":"YulFunctionCall","src":"6008:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5996:6:53","nodeType":"YulIdentifier","src":"5996:6:53"},"nativeSrc":"5996:37:53","nodeType":"YulFunctionCall","src":"5996:37:53"},"nativeSrc":"5996:37:53","nodeType":"YulExpressionStatement","src":"5996:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5921:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5974:5:53","nodeType":"YulTypedName","src":"5974:5:53","type":""},{"name":"pos","nativeSrc":"5981:3:53","nodeType":"YulTypedName","src":"5981:3:53","type":""}],"src":"5921:118:53"},{"body":{"nativeSrc":"6143:124:53","nodeType":"YulBlock","src":"6143:124:53","statements":[{"nativeSrc":"6153:26:53","nodeType":"YulAssignment","src":"6153:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6165:9:53","nodeType":"YulIdentifier","src":"6165:9:53"},{"kind":"number","nativeSrc":"6176:2:53","nodeType":"YulLiteral","src":"6176:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6161:3:53","nodeType":"YulIdentifier","src":"6161:3:53"},"nativeSrc":"6161:18:53","nodeType":"YulFunctionCall","src":"6161:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6153:4:53","nodeType":"YulIdentifier","src":"6153:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6233:6:53","nodeType":"YulIdentifier","src":"6233:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6246:9:53","nodeType":"YulIdentifier","src":"6246:9:53"},{"kind":"number","nativeSrc":"6257:1:53","nodeType":"YulLiteral","src":"6257:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6242:3:53","nodeType":"YulIdentifier","src":"6242:3:53"},"nativeSrc":"6242:17:53","nodeType":"YulFunctionCall","src":"6242:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6189:43:53","nodeType":"YulIdentifier","src":"6189:43:53"},"nativeSrc":"6189:71:53","nodeType":"YulFunctionCall","src":"6189:71:53"},"nativeSrc":"6189:71:53","nodeType":"YulExpressionStatement","src":"6189:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6045:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6115:9:53","nodeType":"YulTypedName","src":"6115:9:53","type":""},{"name":"value0","nativeSrc":"6127:6:53","nodeType":"YulTypedName","src":"6127:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6138:4:53","nodeType":"YulTypedName","src":"6138:4:53","type":""}],"src":"6045:222:53"},{"body":{"nativeSrc":"6389:193:53","nodeType":"YulBlock","src":"6389:193:53","statements":[{"nativeSrc":"6399:26:53","nodeType":"YulAssignment","src":"6399:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6411:9:53","nodeType":"YulIdentifier","src":"6411:9:53"},{"kind":"number","nativeSrc":"6422:2:53","nodeType":"YulLiteral","src":"6422:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6407:3:53","nodeType":"YulIdentifier","src":"6407:3:53"},"nativeSrc":"6407:18:53","nodeType":"YulFunctionCall","src":"6407:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6399:4:53","nodeType":"YulIdentifier","src":"6399:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6446:9:53","nodeType":"YulIdentifier","src":"6446:9:53"},{"kind":"number","nativeSrc":"6457:1:53","nodeType":"YulLiteral","src":"6457:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6442:3:53","nodeType":"YulIdentifier","src":"6442:3:53"},"nativeSrc":"6442:17:53","nodeType":"YulFunctionCall","src":"6442:17:53"},{"arguments":[{"name":"tail","nativeSrc":"6465:4:53","nodeType":"YulIdentifier","src":"6465:4:53"},{"name":"headStart","nativeSrc":"6471:9:53","nodeType":"YulIdentifier","src":"6471:9:53"}],"functionName":{"name":"sub","nativeSrc":"6461:3:53","nodeType":"YulIdentifier","src":"6461:3:53"},"nativeSrc":"6461:20:53","nodeType":"YulFunctionCall","src":"6461:20:53"}],"functionName":{"name":"mstore","nativeSrc":"6435:6:53","nodeType":"YulIdentifier","src":"6435:6:53"},"nativeSrc":"6435:47:53","nodeType":"YulFunctionCall","src":"6435:47:53"},"nativeSrc":"6435:47:53","nodeType":"YulExpressionStatement","src":"6435:47:53"},{"nativeSrc":"6491:84:53","nodeType":"YulAssignment","src":"6491:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"6561:6:53","nodeType":"YulIdentifier","src":"6561:6:53"},{"name":"tail","nativeSrc":"6570:4:53","nodeType":"YulIdentifier","src":"6570:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"6499:61:53","nodeType":"YulIdentifier","src":"6499:61:53"},"nativeSrc":"6499:76:53","nodeType":"YulFunctionCall","src":"6499:76:53"},"variableNames":[{"name":"tail","nativeSrc":"6491:4:53","nodeType":"YulIdentifier","src":"6491:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6273:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6361:9:53","nodeType":"YulTypedName","src":"6361:9:53","type":""},{"name":"value0","nativeSrc":"6373:6:53","nodeType":"YulTypedName","src":"6373:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6384:4:53","nodeType":"YulTypedName","src":"6384:4:53","type":""}],"src":"6273:309:53"},{"body":{"nativeSrc":"6651:52:53","nodeType":"YulBlock","src":"6651:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6668:3:53","nodeType":"YulIdentifier","src":"6668:3:53"},{"arguments":[{"name":"value","nativeSrc":"6690:5:53","nodeType":"YulIdentifier","src":"6690:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"6673:16:53","nodeType":"YulIdentifier","src":"6673:16:53"},"nativeSrc":"6673:23:53","nodeType":"YulFunctionCall","src":"6673:23:53"}],"functionName":{"name":"mstore","nativeSrc":"6661:6:53","nodeType":"YulIdentifier","src":"6661:6:53"},"nativeSrc":"6661:36:53","nodeType":"YulFunctionCall","src":"6661:36:53"},"nativeSrc":"6661:36:53","nodeType":"YulExpressionStatement","src":"6661:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"6588:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6639:5:53","nodeType":"YulTypedName","src":"6639:5:53","type":""},{"name":"pos","nativeSrc":"6646:3:53","nodeType":"YulTypedName","src":"6646:3:53","type":""}],"src":"6588:115:53"},{"body":{"nativeSrc":"6805:122:53","nodeType":"YulBlock","src":"6805:122:53","statements":[{"nativeSrc":"6815:26:53","nodeType":"YulAssignment","src":"6815:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6827:9:53","nodeType":"YulIdentifier","src":"6827:9:53"},{"kind":"number","nativeSrc":"6838:2:53","nodeType":"YulLiteral","src":"6838:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6823:3:53","nodeType":"YulIdentifier","src":"6823:3:53"},"nativeSrc":"6823:18:53","nodeType":"YulFunctionCall","src":"6823:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6815:4:53","nodeType":"YulIdentifier","src":"6815:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6893:6:53","nodeType":"YulIdentifier","src":"6893:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6906:9:53","nodeType":"YulIdentifier","src":"6906:9:53"},{"kind":"number","nativeSrc":"6917:1:53","nodeType":"YulLiteral","src":"6917:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6902:3:53","nodeType":"YulIdentifier","src":"6902:3:53"},"nativeSrc":"6902:17:53","nodeType":"YulFunctionCall","src":"6902:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"6851:41:53","nodeType":"YulIdentifier","src":"6851:41:53"},"nativeSrc":"6851:69:53","nodeType":"YulFunctionCall","src":"6851:69:53"},"nativeSrc":"6851:69:53","nodeType":"YulExpressionStatement","src":"6851:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"6709:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6777:9:53","nodeType":"YulTypedName","src":"6777:9:53","type":""},{"name":"value0","nativeSrc":"6789:6:53","nodeType":"YulTypedName","src":"6789:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6800:4:53","nodeType":"YulTypedName","src":"6800:4:53","type":""}],"src":"6709:218:53"},{"body":{"nativeSrc":"7046:34:53","nodeType":"YulBlock","src":"7046:34:53","statements":[{"nativeSrc":"7056:18:53","nodeType":"YulAssignment","src":"7056:18:53","value":{"name":"pos","nativeSrc":"7071:3:53","nodeType":"YulIdentifier","src":"7071:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"7056:11:53","nodeType":"YulIdentifier","src":"7056:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6933:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7018:3:53","nodeType":"YulTypedName","src":"7018:3:53","type":""},{"name":"length","nativeSrc":"7023:6:53","nodeType":"YulTypedName","src":"7023:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7034:11:53","nodeType":"YulTypedName","src":"7034:11:53","type":""}],"src":"6933:147:53"},{"body":{"nativeSrc":"7194:278:53","nodeType":"YulBlock","src":"7194:278:53","statements":[{"nativeSrc":"7204:52:53","nodeType":"YulVariableDeclaration","src":"7204:52:53","value":{"arguments":[{"name":"value","nativeSrc":"7250:5:53","nodeType":"YulIdentifier","src":"7250:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7218:31:53","nodeType":"YulIdentifier","src":"7218:31:53"},"nativeSrc":"7218:38:53","nodeType":"YulFunctionCall","src":"7218:38:53"},"variables":[{"name":"length","nativeSrc":"7208:6:53","nodeType":"YulTypedName","src":"7208:6:53","type":""}]},{"nativeSrc":"7265:95:53","nodeType":"YulAssignment","src":"7265:95:53","value":{"arguments":[{"name":"pos","nativeSrc":"7348:3:53","nodeType":"YulIdentifier","src":"7348:3:53"},{"name":"length","nativeSrc":"7353:6:53","nodeType":"YulIdentifier","src":"7353:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7272:75:53","nodeType":"YulIdentifier","src":"7272:75:53"},"nativeSrc":"7272:88:53","nodeType":"YulFunctionCall","src":"7272:88:53"},"variableNames":[{"name":"pos","nativeSrc":"7265:3:53","nodeType":"YulIdentifier","src":"7265:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7408:5:53","nodeType":"YulIdentifier","src":"7408:5:53"},{"kind":"number","nativeSrc":"7415:4:53","nodeType":"YulLiteral","src":"7415:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7404:3:53","nodeType":"YulIdentifier","src":"7404:3:53"},"nativeSrc":"7404:16:53","nodeType":"YulFunctionCall","src":"7404:16:53"},{"name":"pos","nativeSrc":"7422:3:53","nodeType":"YulIdentifier","src":"7422:3:53"},{"name":"length","nativeSrc":"7427:6:53","nodeType":"YulIdentifier","src":"7427:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7369:34:53","nodeType":"YulIdentifier","src":"7369:34:53"},"nativeSrc":"7369:65:53","nodeType":"YulFunctionCall","src":"7369:65:53"},"nativeSrc":"7369:65:53","nodeType":"YulExpressionStatement","src":"7369:65:53"},{"nativeSrc":"7443:23:53","nodeType":"YulAssignment","src":"7443:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"7454:3:53","nodeType":"YulIdentifier","src":"7454:3:53"},{"name":"length","nativeSrc":"7459:6:53","nodeType":"YulIdentifier","src":"7459:6:53"}],"functionName":{"name":"add","nativeSrc":"7450:3:53","nodeType":"YulIdentifier","src":"7450:3:53"},"nativeSrc":"7450:16:53","nodeType":"YulFunctionCall","src":"7450:16:53"},"variableNames":[{"name":"end","nativeSrc":"7443:3:53","nodeType":"YulIdentifier","src":"7443:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7086:386:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7175:5:53","nodeType":"YulTypedName","src":"7175:5:53","type":""},{"name":"pos","nativeSrc":"7182:3:53","nodeType":"YulTypedName","src":"7182:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7190:3:53","nodeType":"YulTypedName","src":"7190:3:53","type":""}],"src":"7086:386:53"},{"body":{"nativeSrc":"7612:137:53","nodeType":"YulBlock","src":"7612:137:53","statements":[{"nativeSrc":"7623:100:53","nodeType":"YulAssignment","src":"7623:100:53","value":{"arguments":[{"name":"value0","nativeSrc":"7710:6:53","nodeType":"YulIdentifier","src":"7710:6:53"},{"name":"pos","nativeSrc":"7719:3:53","nodeType":"YulIdentifier","src":"7719:3:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7630:79:53","nodeType":"YulIdentifier","src":"7630:79:53"},"nativeSrc":"7630:93:53","nodeType":"YulFunctionCall","src":"7630:93:53"},"variableNames":[{"name":"pos","nativeSrc":"7623:3:53","nodeType":"YulIdentifier","src":"7623:3:53"}]},{"nativeSrc":"7733:10:53","nodeType":"YulAssignment","src":"7733:10:53","value":{"name":"pos","nativeSrc":"7740:3:53","nodeType":"YulIdentifier","src":"7740:3:53"},"variableNames":[{"name":"end","nativeSrc":"7733:3:53","nodeType":"YulIdentifier","src":"7733:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7478:271:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7591:3:53","nodeType":"YulTypedName","src":"7591:3:53","type":""},{"name":"value0","nativeSrc":"7597:6:53","nodeType":"YulTypedName","src":"7597:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7608:3:53","nodeType":"YulTypedName","src":"7608:3:53","type":""}],"src":"7478:271:53"},{"body":{"nativeSrc":"7844:28:53","nodeType":"YulBlock","src":"7844:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7861:1:53","nodeType":"YulLiteral","src":"7861:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7864:1:53","nodeType":"YulLiteral","src":"7864:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7854:6:53","nodeType":"YulIdentifier","src":"7854:6:53"},"nativeSrc":"7854:12:53","nodeType":"YulFunctionCall","src":"7854:12:53"},"nativeSrc":"7854:12:53","nodeType":"YulExpressionStatement","src":"7854:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7755:117:53","nodeType":"YulFunctionDefinition","src":"7755:117:53"},{"body":{"nativeSrc":"7906:152:53","nodeType":"YulBlock","src":"7906:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7923:1:53","nodeType":"YulLiteral","src":"7923:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7926:77:53","nodeType":"YulLiteral","src":"7926:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7916:6:53","nodeType":"YulIdentifier","src":"7916:6:53"},"nativeSrc":"7916:88:53","nodeType":"YulFunctionCall","src":"7916:88:53"},"nativeSrc":"7916:88:53","nodeType":"YulExpressionStatement","src":"7916:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8020:1:53","nodeType":"YulLiteral","src":"8020:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8023:4:53","nodeType":"YulLiteral","src":"8023:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8013:6:53","nodeType":"YulIdentifier","src":"8013:6:53"},"nativeSrc":"8013:15:53","nodeType":"YulFunctionCall","src":"8013:15:53"},"nativeSrc":"8013:15:53","nodeType":"YulExpressionStatement","src":"8013:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8044:1:53","nodeType":"YulLiteral","src":"8044:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8047:4:53","nodeType":"YulLiteral","src":"8047:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8037:6:53","nodeType":"YulIdentifier","src":"8037:6:53"},"nativeSrc":"8037:15:53","nodeType":"YulFunctionCall","src":"8037:15:53"},"nativeSrc":"8037:15:53","nodeType":"YulExpressionStatement","src":"8037:15:53"}]},"name":"panic_error_0x41","nativeSrc":"7878:180:53","nodeType":"YulFunctionDefinition","src":"7878:180:53"},{"body":{"nativeSrc":"8107:238:53","nodeType":"YulBlock","src":"8107:238:53","statements":[{"nativeSrc":"8117:58:53","nodeType":"YulVariableDeclaration","src":"8117:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8139:6:53","nodeType":"YulIdentifier","src":"8139:6:53"},{"arguments":[{"name":"size","nativeSrc":"8169:4:53","nodeType":"YulIdentifier","src":"8169:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8147:21:53","nodeType":"YulIdentifier","src":"8147:21:53"},"nativeSrc":"8147:27:53","nodeType":"YulFunctionCall","src":"8147:27:53"}],"functionName":{"name":"add","nativeSrc":"8135:3:53","nodeType":"YulIdentifier","src":"8135:3:53"},"nativeSrc":"8135:40:53","nodeType":"YulFunctionCall","src":"8135:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8121:10:53","nodeType":"YulTypedName","src":"8121:10:53","type":""}]},{"body":{"nativeSrc":"8286:22:53","nodeType":"YulBlock","src":"8286:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8288:16:53","nodeType":"YulIdentifier","src":"8288:16:53"},"nativeSrc":"8288:18:53","nodeType":"YulFunctionCall","src":"8288:18:53"},"nativeSrc":"8288:18:53","nodeType":"YulExpressionStatement","src":"8288:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8229:10:53","nodeType":"YulIdentifier","src":"8229:10:53"},{"kind":"number","nativeSrc":"8241:18:53","nodeType":"YulLiteral","src":"8241:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8226:2:53","nodeType":"YulIdentifier","src":"8226:2:53"},"nativeSrc":"8226:34:53","nodeType":"YulFunctionCall","src":"8226:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8265:10:53","nodeType":"YulIdentifier","src":"8265:10:53"},{"name":"memPtr","nativeSrc":"8277:6:53","nodeType":"YulIdentifier","src":"8277:6:53"}],"functionName":{"name":"lt","nativeSrc":"8262:2:53","nodeType":"YulIdentifier","src":"8262:2:53"},"nativeSrc":"8262:22:53","nodeType":"YulFunctionCall","src":"8262:22:53"}],"functionName":{"name":"or","nativeSrc":"8223:2:53","nodeType":"YulIdentifier","src":"8223:2:53"},"nativeSrc":"8223:62:53","nodeType":"YulFunctionCall","src":"8223:62:53"},"nativeSrc":"8220:88:53","nodeType":"YulIf","src":"8220:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8324:2:53","nodeType":"YulLiteral","src":"8324:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8328:10:53","nodeType":"YulIdentifier","src":"8328:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8317:6:53","nodeType":"YulIdentifier","src":"8317:6:53"},"nativeSrc":"8317:22:53","nodeType":"YulFunctionCall","src":"8317:22:53"},"nativeSrc":"8317:22:53","nodeType":"YulExpressionStatement","src":"8317:22:53"}]},"name":"finalize_allocation","nativeSrc":"8064:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8093:6:53","nodeType":"YulTypedName","src":"8093:6:53","type":""},{"name":"size","nativeSrc":"8101:4:53","nodeType":"YulTypedName","src":"8101:4:53","type":""}],"src":"8064:281:53"},{"body":{"nativeSrc":"8392:88:53","nodeType":"YulBlock","src":"8392:88:53","statements":[{"nativeSrc":"8402:30:53","nodeType":"YulAssignment","src":"8402:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8412:18:53","nodeType":"YulIdentifier","src":"8412:18:53"},"nativeSrc":"8412:20:53","nodeType":"YulFunctionCall","src":"8412:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8402:6:53","nodeType":"YulIdentifier","src":"8402:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8461:6:53","nodeType":"YulIdentifier","src":"8461:6:53"},{"name":"size","nativeSrc":"8469:4:53","nodeType":"YulIdentifier","src":"8469:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8441:19:53","nodeType":"YulIdentifier","src":"8441:19:53"},"nativeSrc":"8441:33:53","nodeType":"YulFunctionCall","src":"8441:33:53"},"nativeSrc":"8441:33:53","nodeType":"YulExpressionStatement","src":"8441:33:53"}]},"name":"allocate_memory","nativeSrc":"8351:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8376:4:53","nodeType":"YulTypedName","src":"8376:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8385:6:53","nodeType":"YulTypedName","src":"8385:6:53","type":""}],"src":"8351:129:53"},{"body":{"nativeSrc":"8575:28:53","nodeType":"YulBlock","src":"8575:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8592:1:53","nodeType":"YulLiteral","src":"8592:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8595:1:53","nodeType":"YulLiteral","src":"8595:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8585:6:53","nodeType":"YulIdentifier","src":"8585:6:53"},"nativeSrc":"8585:12:53","nodeType":"YulFunctionCall","src":"8585:12:53"},"nativeSrc":"8585:12:53","nodeType":"YulExpressionStatement","src":"8585:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8486:117:53","nodeType":"YulFunctionDefinition","src":"8486:117:53"},{"body":{"nativeSrc":"8652:79:53","nodeType":"YulBlock","src":"8652:79:53","statements":[{"body":{"nativeSrc":"8709:16:53","nodeType":"YulBlock","src":"8709:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8718:1:53","nodeType":"YulLiteral","src":"8718:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8721:1:53","nodeType":"YulLiteral","src":"8721:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8711:6:53","nodeType":"YulIdentifier","src":"8711:6:53"},"nativeSrc":"8711:12:53","nodeType":"YulFunctionCall","src":"8711:12:53"},"nativeSrc":"8711:12:53","nodeType":"YulExpressionStatement","src":"8711:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8675:5:53","nodeType":"YulIdentifier","src":"8675:5:53"},{"arguments":[{"name":"value","nativeSrc":"8700:5:53","nodeType":"YulIdentifier","src":"8700:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8682:17:53","nodeType":"YulIdentifier","src":"8682:17:53"},"nativeSrc":"8682:24:53","nodeType":"YulFunctionCall","src":"8682:24:53"}],"functionName":{"name":"eq","nativeSrc":"8672:2:53","nodeType":"YulIdentifier","src":"8672:2:53"},"nativeSrc":"8672:35:53","nodeType":"YulFunctionCall","src":"8672:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8665:6:53","nodeType":"YulIdentifier","src":"8665:6:53"},"nativeSrc":"8665:43:53","nodeType":"YulFunctionCall","src":"8665:43:53"},"nativeSrc":"8662:63:53","nodeType":"YulIf","src":"8662:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"8609:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8645:5:53","nodeType":"YulTypedName","src":"8645:5:53","type":""}],"src":"8609:122:53"},{"body":{"nativeSrc":"8789:87:53","nodeType":"YulBlock","src":"8789:87:53","statements":[{"nativeSrc":"8799:29:53","nodeType":"YulAssignment","src":"8799:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8821:6:53","nodeType":"YulIdentifier","src":"8821:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8808:12:53","nodeType":"YulIdentifier","src":"8808:12:53"},"nativeSrc":"8808:20:53","nodeType":"YulFunctionCall","src":"8808:20:53"},"variableNames":[{"name":"value","nativeSrc":"8799:5:53","nodeType":"YulIdentifier","src":"8799:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8864:5:53","nodeType":"YulIdentifier","src":"8864:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8837:26:53","nodeType":"YulIdentifier","src":"8837:26:53"},"nativeSrc":"8837:33:53","nodeType":"YulFunctionCall","src":"8837:33:53"},"nativeSrc":"8837:33:53","nodeType":"YulExpressionStatement","src":"8837:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"8737:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8767:6:53","nodeType":"YulTypedName","src":"8767:6:53","type":""},{"name":"end","nativeSrc":"8775:3:53","nodeType":"YulTypedName","src":"8775:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8783:5:53","nodeType":"YulTypedName","src":"8783:5:53","type":""}],"src":"8737:139:53"},{"body":{"nativeSrc":"8925:79:53","nodeType":"YulBlock","src":"8925:79:53","statements":[{"body":{"nativeSrc":"8982:16:53","nodeType":"YulBlock","src":"8982:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8991:1:53","nodeType":"YulLiteral","src":"8991:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8994:1:53","nodeType":"YulLiteral","src":"8994:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8984:6:53","nodeType":"YulIdentifier","src":"8984:6:53"},"nativeSrc":"8984:12:53","nodeType":"YulFunctionCall","src":"8984:12:53"},"nativeSrc":"8984:12:53","nodeType":"YulExpressionStatement","src":"8984:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8948:5:53","nodeType":"YulIdentifier","src":"8948:5:53"},{"arguments":[{"name":"value","nativeSrc":"8973:5:53","nodeType":"YulIdentifier","src":"8973:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8955:17:53","nodeType":"YulIdentifier","src":"8955:17:53"},"nativeSrc":"8955:24:53","nodeType":"YulFunctionCall","src":"8955:24:53"}],"functionName":{"name":"eq","nativeSrc":"8945:2:53","nodeType":"YulIdentifier","src":"8945:2:53"},"nativeSrc":"8945:35:53","nodeType":"YulFunctionCall","src":"8945:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8938:6:53","nodeType":"YulIdentifier","src":"8938:6:53"},"nativeSrc":"8938:43:53","nodeType":"YulFunctionCall","src":"8938:43:53"},"nativeSrc":"8935:63:53","nodeType":"YulIf","src":"8935:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"8882:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8918:5:53","nodeType":"YulTypedName","src":"8918:5:53","type":""}],"src":"8882:122:53"},{"body":{"nativeSrc":"9062:87:53","nodeType":"YulBlock","src":"9062:87:53","statements":[{"nativeSrc":"9072:29:53","nodeType":"YulAssignment","src":"9072:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9094:6:53","nodeType":"YulIdentifier","src":"9094:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9081:12:53","nodeType":"YulIdentifier","src":"9081:12:53"},"nativeSrc":"9081:20:53","nodeType":"YulFunctionCall","src":"9081:20:53"},"variableNames":[{"name":"value","nativeSrc":"9072:5:53","nodeType":"YulIdentifier","src":"9072:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9137:5:53","nodeType":"YulIdentifier","src":"9137:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"9110:26:53","nodeType":"YulIdentifier","src":"9110:26:53"},"nativeSrc":"9110:33:53","nodeType":"YulFunctionCall","src":"9110:33:53"},"nativeSrc":"9110:33:53","nodeType":"YulExpressionStatement","src":"9110:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"9010:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9040:6:53","nodeType":"YulTypedName","src":"9040:6:53","type":""},{"name":"end","nativeSrc":"9048:3:53","nodeType":"YulTypedName","src":"9048:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9056:5:53","nodeType":"YulTypedName","src":"9056:5:53","type":""}],"src":"9010:139:53"},{"body":{"nativeSrc":"9281:825:53","nodeType":"YulBlock","src":"9281:825:53","statements":[{"body":{"nativeSrc":"9325:83:53","nodeType":"YulBlock","src":"9325:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9327:77:53","nodeType":"YulIdentifier","src":"9327:77:53"},"nativeSrc":"9327:79:53","nodeType":"YulFunctionCall","src":"9327:79:53"},"nativeSrc":"9327:79:53","nodeType":"YulExpressionStatement","src":"9327:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9302:3:53","nodeType":"YulIdentifier","src":"9302:3:53"},{"name":"headStart","nativeSrc":"9307:9:53","nodeType":"YulIdentifier","src":"9307:9:53"}],"functionName":{"name":"sub","nativeSrc":"9298:3:53","nodeType":"YulIdentifier","src":"9298:3:53"},"nativeSrc":"9298:19:53","nodeType":"YulFunctionCall","src":"9298:19:53"},{"kind":"number","nativeSrc":"9319:4:53","nodeType":"YulLiteral","src":"9319:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"9294:3:53","nodeType":"YulIdentifier","src":"9294:3:53"},"nativeSrc":"9294:30:53","nodeType":"YulFunctionCall","src":"9294:30:53"},"nativeSrc":"9291:117:53","nodeType":"YulIf","src":"9291:117:53"},{"nativeSrc":"9417:30:53","nodeType":"YulAssignment","src":"9417:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"9442:4:53","nodeType":"YulLiteral","src":"9442:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"9426:15:53","nodeType":"YulIdentifier","src":"9426:15:53"},"nativeSrc":"9426:21:53","nodeType":"YulFunctionCall","src":"9426:21:53"},"variableNames":[{"name":"value","nativeSrc":"9417:5:53","nodeType":"YulIdentifier","src":"9417:5:53"}]},{"nativeSrc":"9457:153:53","nodeType":"YulBlock","src":"9457:153:53","statements":[{"nativeSrc":"9495:15:53","nodeType":"YulVariableDeclaration","src":"9495:15:53","value":{"kind":"number","nativeSrc":"9509:1:53","nodeType":"YulLiteral","src":"9509:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9499:6:53","nodeType":"YulTypedName","src":"9499:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9535:5:53","nodeType":"YulIdentifier","src":"9535:5:53"},{"kind":"number","nativeSrc":"9542:4:53","nodeType":"YulLiteral","src":"9542:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9531:3:53","nodeType":"YulIdentifier","src":"9531:3:53"},"nativeSrc":"9531:16:53","nodeType":"YulFunctionCall","src":"9531:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9574:9:53","nodeType":"YulIdentifier","src":"9574:9:53"},{"name":"offset","nativeSrc":"9585:6:53","nodeType":"YulIdentifier","src":"9585:6:53"}],"functionName":{"name":"add","nativeSrc":"9570:3:53","nodeType":"YulIdentifier","src":"9570:3:53"},"nativeSrc":"9570:22:53","nodeType":"YulFunctionCall","src":"9570:22:53"},{"name":"end","nativeSrc":"9594:3:53","nodeType":"YulIdentifier","src":"9594:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9549:20:53","nodeType":"YulIdentifier","src":"9549:20:53"},"nativeSrc":"9549:49:53","nodeType":"YulFunctionCall","src":"9549:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9524:6:53","nodeType":"YulIdentifier","src":"9524:6:53"},"nativeSrc":"9524:75:53","nodeType":"YulFunctionCall","src":"9524:75:53"},"nativeSrc":"9524:75:53","nodeType":"YulExpressionStatement","src":"9524:75:53"}]},{"nativeSrc":"9620:153:53","nodeType":"YulBlock","src":"9620:153:53","statements":[{"nativeSrc":"9657:16:53","nodeType":"YulVariableDeclaration","src":"9657:16:53","value":{"kind":"number","nativeSrc":"9671:2:53","nodeType":"YulLiteral","src":"9671:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9661:6:53","nodeType":"YulTypedName","src":"9661:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9698:5:53","nodeType":"YulIdentifier","src":"9698:5:53"},{"kind":"number","nativeSrc":"9705:4:53","nodeType":"YulLiteral","src":"9705:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9694:3:53","nodeType":"YulIdentifier","src":"9694:3:53"},"nativeSrc":"9694:16:53","nodeType":"YulFunctionCall","src":"9694:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9737:9:53","nodeType":"YulIdentifier","src":"9737:9:53"},{"name":"offset","nativeSrc":"9748:6:53","nodeType":"YulIdentifier","src":"9748:6:53"}],"functionName":{"name":"add","nativeSrc":"9733:3:53","nodeType":"YulIdentifier","src":"9733:3:53"},"nativeSrc":"9733:22:53","nodeType":"YulFunctionCall","src":"9733:22:53"},{"name":"end","nativeSrc":"9757:3:53","nodeType":"YulIdentifier","src":"9757:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9712:20:53","nodeType":"YulIdentifier","src":"9712:20:53"},"nativeSrc":"9712:49:53","nodeType":"YulFunctionCall","src":"9712:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9687:6:53","nodeType":"YulIdentifier","src":"9687:6:53"},"nativeSrc":"9687:75:53","nodeType":"YulFunctionCall","src":"9687:75:53"},"nativeSrc":"9687:75:53","nodeType":"YulExpressionStatement","src":"9687:75:53"}]},{"nativeSrc":"9783:154:53","nodeType":"YulBlock","src":"9783:154:53","statements":[{"nativeSrc":"9822:16:53","nodeType":"YulVariableDeclaration","src":"9822:16:53","value":{"kind":"number","nativeSrc":"9836:2:53","nodeType":"YulLiteral","src":"9836:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9826:6:53","nodeType":"YulTypedName","src":"9826:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9863:5:53","nodeType":"YulIdentifier","src":"9863:5:53"},{"kind":"number","nativeSrc":"9870:4:53","nodeType":"YulLiteral","src":"9870:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9859:3:53","nodeType":"YulIdentifier","src":"9859:3:53"},"nativeSrc":"9859:16:53","nodeType":"YulFunctionCall","src":"9859:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9901:9:53","nodeType":"YulIdentifier","src":"9901:9:53"},{"name":"offset","nativeSrc":"9912:6:53","nodeType":"YulIdentifier","src":"9912:6:53"}],"functionName":{"name":"add","nativeSrc":"9897:3:53","nodeType":"YulIdentifier","src":"9897:3:53"},"nativeSrc":"9897:22:53","nodeType":"YulFunctionCall","src":"9897:22:53"},{"name":"end","nativeSrc":"9921:3:53","nodeType":"YulIdentifier","src":"9921:3:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"9877:19:53","nodeType":"YulIdentifier","src":"9877:19:53"},"nativeSrc":"9877:48:53","nodeType":"YulFunctionCall","src":"9877:48:53"}],"functionName":{"name":"mstore","nativeSrc":"9852:6:53","nodeType":"YulIdentifier","src":"9852:6:53"},"nativeSrc":"9852:74:53","nodeType":"YulFunctionCall","src":"9852:74:53"},"nativeSrc":"9852:74:53","nodeType":"YulExpressionStatement","src":"9852:74:53"}]},{"nativeSrc":"9947:152:53","nodeType":"YulBlock","src":"9947:152:53","statements":[{"nativeSrc":"9983:16:53","nodeType":"YulVariableDeclaration","src":"9983:16:53","value":{"kind":"number","nativeSrc":"9997:2:53","nodeType":"YulLiteral","src":"9997:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9987:6:53","nodeType":"YulTypedName","src":"9987:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10024:5:53","nodeType":"YulIdentifier","src":"10024:5:53"},{"kind":"number","nativeSrc":"10031:4:53","nodeType":"YulLiteral","src":"10031:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10020:3:53","nodeType":"YulIdentifier","src":"10020:3:53"},"nativeSrc":"10020:16:53","nodeType":"YulFunctionCall","src":"10020:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10063:9:53","nodeType":"YulIdentifier","src":"10063:9:53"},{"name":"offset","nativeSrc":"10074:6:53","nodeType":"YulIdentifier","src":"10074:6:53"}],"functionName":{"name":"add","nativeSrc":"10059:3:53","nodeType":"YulIdentifier","src":"10059:3:53"},"nativeSrc":"10059:22:53","nodeType":"YulFunctionCall","src":"10059:22:53"},{"name":"end","nativeSrc":"10083:3:53","nodeType":"YulIdentifier","src":"10083:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10038:20:53","nodeType":"YulIdentifier","src":"10038:20:53"},"nativeSrc":"10038:49:53","nodeType":"YulFunctionCall","src":"10038:49:53"}],"functionName":{"name":"mstore","nativeSrc":"10013:6:53","nodeType":"YulIdentifier","src":"10013:6:53"},"nativeSrc":"10013:75:53","nodeType":"YulFunctionCall","src":"10013:75:53"},"nativeSrc":"10013:75:53","nodeType":"YulExpressionStatement","src":"10013:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"9196:910:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9256:9:53","nodeType":"YulTypedName","src":"9256:9:53","type":""},{"name":"end","nativeSrc":"9267:3:53","nodeType":"YulTypedName","src":"9267:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9275:5:53","nodeType":"YulTypedName","src":"9275:5:53","type":""}],"src":"9196:910:53"},{"body":{"nativeSrc":"10208:294:53","nodeType":"YulBlock","src":"10208:294:53","statements":[{"body":{"nativeSrc":"10255:83:53","nodeType":"YulBlock","src":"10255:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10257:77:53","nodeType":"YulIdentifier","src":"10257:77:53"},"nativeSrc":"10257:79:53","nodeType":"YulFunctionCall","src":"10257:79:53"},"nativeSrc":"10257:79:53","nodeType":"YulExpressionStatement","src":"10257:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10229:7:53","nodeType":"YulIdentifier","src":"10229:7:53"},{"name":"headStart","nativeSrc":"10238:9:53","nodeType":"YulIdentifier","src":"10238:9:53"}],"functionName":{"name":"sub","nativeSrc":"10225:3:53","nodeType":"YulIdentifier","src":"10225:3:53"},"nativeSrc":"10225:23:53","nodeType":"YulFunctionCall","src":"10225:23:53"},{"kind":"number","nativeSrc":"10250:3:53","nodeType":"YulLiteral","src":"10250:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10221:3:53","nodeType":"YulIdentifier","src":"10221:3:53"},"nativeSrc":"10221:33:53","nodeType":"YulFunctionCall","src":"10221:33:53"},"nativeSrc":"10218:120:53","nodeType":"YulIf","src":"10218:120:53"},{"nativeSrc":"10348:147:53","nodeType":"YulBlock","src":"10348:147:53","statements":[{"nativeSrc":"10363:15:53","nodeType":"YulVariableDeclaration","src":"10363:15:53","value":{"kind":"number","nativeSrc":"10377:1:53","nodeType":"YulLiteral","src":"10377:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10367:6:53","nodeType":"YulTypedName","src":"10367:6:53","type":""}]},{"nativeSrc":"10392:93:53","nodeType":"YulAssignment","src":"10392:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10457:9:53","nodeType":"YulIdentifier","src":"10457:9:53"},{"name":"offset","nativeSrc":"10468:6:53","nodeType":"YulIdentifier","src":"10468:6:53"}],"functionName":{"name":"add","nativeSrc":"10453:3:53","nodeType":"YulIdentifier","src":"10453:3:53"},"nativeSrc":"10453:22:53","nodeType":"YulFunctionCall","src":"10453:22:53"},{"name":"dataEnd","nativeSrc":"10477:7:53","nodeType":"YulIdentifier","src":"10477:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"10402:50:53","nodeType":"YulIdentifier","src":"10402:50:53"},"nativeSrc":"10402:83:53","nodeType":"YulFunctionCall","src":"10402:83:53"},"variableNames":[{"name":"value0","nativeSrc":"10392:6:53","nodeType":"YulIdentifier","src":"10392:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"10112:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10178:9:53","nodeType":"YulTypedName","src":"10178:9:53","type":""},{"name":"dataEnd","nativeSrc":"10189:7:53","nodeType":"YulTypedName","src":"10189:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10201:6:53","nodeType":"YulTypedName","src":"10201:6:53","type":""}],"src":"10112:390:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Validator_$18282_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$18282_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_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 array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\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 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 // struct ContractAction.InitPayload\n function abi_decode_t_struct$_InitPayload_$12783_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // chainId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // value\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$12783_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"12716":[{"length":32,"start":935}]},"linkReferences":{},"object":"608060405260043610610085575f3560e01c8063439fab9111610058578063439fab911461014a5780639a8a059214610172578063d4b839921461019c578063d7768c47146101c6578063ea3d508a1461020257610085565b806301ffc9a71461008957806309c5eabe146100c5578063393df8cb146100f65780633fa4f24514610120575b5f80fd5b348015610094575f80fd5b506100af60048036038101906100aa9190610703565b61022c565b6040516100bc9190610748565b60405180910390f35b6100df60048036038101906100da91906107c2565b6102a5565b6040516100ed92919061087d565b60405180910390f35b348015610101575f80fd5b5061010a6103a5565b6040516101179190610925565b60405180910390f35b34801561012b575f80fd5b506101346103c9565b6040516101419190610956565b60405180910390f35b348015610155575f80fd5b50610170600480360381019061016b91906107c2565b6103cf565b005b34801561017d575f80fd5b5061018661045c565b6040516101939190610956565b60405180910390f35b3480156101a7575f80fd5b506101b0610461565b6040516101bd919061098f565b60405180910390f35b3480156101d1575f80fd5b506101ec60048036038101906101e791906107c2565b610486565b6040516101f991906109a8565b60405180910390f35b34801561020d575f80fd5b506102166104aa565b60405161022391906109d7565b60405180910390f35b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029e575061029d826104bd565b5b9050919050565b5f6060465f54146102ee575f546040517f180098f40000000000000000000000000000000000000000000000000000000081526004016102e59190610956565b60405180910390fd5b5f8060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600254610345600160149054906101000a900460e01b8989610536565b6040516103529190610a2a565b5f6040518083038185875af1925050503d805f811461038c576040519150601f19603f3d011682016040523d82523d5f602084013e610391565b606091505b509150915081819350935050509250929050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6103d8610562565b9050805460038255801561040a5760018160011c14303b106104015763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610422838381019061041d9190610b85565b61058b565b8015610457576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606104a2600160149054906101000a900460e01b8484610536565b905092915050565b600160149054906101000a900460e01b81565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052f575061052e82610610565b5b9050919050565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610593610679565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f610682610562565b9050805460011661069a5763d7e6bcf85f526004601cfd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6106e2816106ae565b81146106ec575f80fd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106a6565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261078257610781610761565b5b8235905067ffffffffffffffff81111561079f5761079e610765565b5b6020830191508360018202830111156107bb576107ba610769565b5b9250929050565b5f80602083850312156107d8576107d76106a6565b5b5f83013567ffffffffffffffff8111156107f5576107f46106aa565b5b6108018582860161076d565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084f8261080d565b6108598185610817565b9350610869818560208601610827565b61087281610835565b840191505092915050565b5f6040820190506108905f830185610739565b81810360208301526108a28184610845565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6108ed6108e86108e3846108ab565b6108ca565b6108ab565b9050919050565b5f6108fe826108d3565b9050919050565b5f61090f826108f4565b9050919050565b61091f81610905565b82525050565b5f6020820190506109385f830184610916565b92915050565b5f819050919050565b6109508161093e565b82525050565b5f6020820190506109695f830184610947565b92915050565b5f610979826108ab565b9050919050565b6109898161096f565b82525050565b5f6020820190506109a25f830184610980565b92915050565b5f6020820190508181035f8301526109c08184610845565b905092915050565b6109d1816106ae565b82525050565b5f6020820190506109ea5f8301846109c8565b92915050565b5f81905092915050565b5f610a048261080d565b610a0e81856109f0565b9350610a1e818560208601610827565b80840191505092915050565b5f610a3582846109fa565b915081905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a7a82610835565b810181811067ffffffffffffffff82111715610a9957610a98610a44565b5b80604052505050565b5f610aab61069d565b9050610ab78282610a71565b919050565b610ac58161093e565b8114610acf575f80fd5b50565b5f81359050610ae081610abc565b92915050565b610aef8161096f565b8114610af9575f80fd5b50565b5f81359050610b0a81610ae6565b92915050565b5f60808284031215610b2557610b24610a40565b5b610b2f6080610aa2565b90505f610b3e84828501610ad2565b5f830152506020610b5184828501610afc565b6020830152506040610b65848285016106ef565b6040830152506060610b7984828501610ad2565b60608301525092915050565b5f60808284031215610b9a57610b996106a6565b5b5f610ba784828501610b10565b9150509291505056fea264697066735822122021c0c7afbc5047b3c02734c3b94bc48232b385dfccec943fdc344e862c9f8f1c64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x85 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x439FAB91 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x202 JUMPI PUSH2 0x85 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x120 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBC SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDA SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x2A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP3 SWAP2 SWAP1 PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x10A PUSH2 0x3A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x117 SWAP2 SWAP1 PUSH2 0x925 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x134 PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x155 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x45C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B0 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x4AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x9D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x29E JUMPI POP PUSH2 0x29D DUP3 PUSH2 0x4BD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 CHAINID PUSH0 SLOAD EQ PUSH2 0x2EE JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x180098F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E5 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 SLOAD PUSH2 0x345 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP10 DUP10 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xA2A JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x38C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x391 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x3D8 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x401 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x422 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x58B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x457 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4A2 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x52F JUMPI POP PUSH2 0x52E DUP3 PUSH2 0x610 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x593 PUSH2 0x679 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x682 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0x69A JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6E2 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP2 EQ PUSH2 0x6EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6FD DUP2 PUSH2 0x6D9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x718 JUMPI PUSH2 0x717 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x725 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x742 DUP2 PUSH2 0x72E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x75B PUSH0 DUP4 ADD DUP5 PUSH2 0x739 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x782 JUMPI PUSH2 0x781 PUSH2 0x761 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x79F JUMPI PUSH2 0x79E PUSH2 0x765 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x769 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH2 0x7F4 PUSH2 0x6AA JUMP JUMPDEST JUMPDEST PUSH2 0x801 DUP6 DUP3 DUP7 ADD PUSH2 0x76D JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x84F DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0x859 DUP2 DUP6 PUSH2 0x817 JUMP JUMPDEST SWAP4 POP PUSH2 0x869 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST PUSH2 0x872 DUP2 PUSH2 0x835 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x890 PUSH0 DUP4 ADD DUP6 PUSH2 0x739 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8A2 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8ED PUSH2 0x8E8 PUSH2 0x8E3 DUP5 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x8CA JUMP JUMPDEST PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8FE DUP3 PUSH2 0x8D3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x90F DUP3 PUSH2 0x8F4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x91F DUP2 PUSH2 0x905 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x938 PUSH0 DUP4 ADD DUP5 PUSH2 0x916 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x950 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x969 PUSH0 DUP4 ADD DUP5 PUSH2 0x947 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x979 DUP3 PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x989 DUP2 PUSH2 0x96F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9A2 PUSH0 DUP4 ADD DUP5 PUSH2 0x980 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9C0 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9D1 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9EA PUSH0 DUP4 ADD DUP5 PUSH2 0x9C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA04 DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0xA0E DUP2 DUP6 PUSH2 0x9F0 JUMP JUMPDEST SWAP4 POP PUSH2 0xA1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA35 DUP3 DUP5 PUSH2 0x9FA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xA7A DUP3 PUSH2 0x835 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xA99 JUMPI PUSH2 0xA98 PUSH2 0xA44 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAB PUSH2 0x69D JUMP JUMPDEST SWAP1 POP PUSH2 0xAB7 DUP3 DUP3 PUSH2 0xA71 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP2 EQ PUSH2 0xACF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE0 DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEF DUP2 PUSH2 0x96F JUMP JUMPDEST DUP2 EQ PUSH2 0xAF9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB0A DUP2 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0xA40 JUMP JUMPDEST JUMPDEST PUSH2 0xB2F PUSH1 0x80 PUSH2 0xAA2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xB3E DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0xB51 DUP5 DUP3 DUP6 ADD PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xB65 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0xB79 DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH2 0xB99 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBA7 DUP5 DUP3 DUP6 ADD PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xC0 0xC7 0xAF 0xBC POP SELFBALANCE 0xB3 0xC0 0x27 CALLVALUE 0xC3 0xB9 0x4B 0xC4 DUP3 ORIGIN 0xB3 DUP6 0xDF 0xCC 0xEC SWAP5 EXTCODEHASH 0xDC CALLVALUE 0x4E DUP7 0x2C SWAP16 DUP16 SHR PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"225:2470:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1749:205:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1404:334:32;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1149:36:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1065:20:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1258:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;814:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;879:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1744:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;966:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1749:205:31;1845:4;1883:24;1868:39;;;:11;:39;;;;:79;;;;1911:36;1935:11;1911:23;:36::i;:::-;1868:79;1861:86;;1749:205;;;:::o;1404:334:32:-;1486:4;1492:12;1531:13;1520:7;;:24;1516:68;;1576:7;;1553:31;;;;;;;;;;;:::i;:::-;;;;;;;;1516:68;1595:12;1609:23;1636:6;;;;;;;;;;;:11;;1655:5;;1662:30;1676:8;;;;;;;;;;;1686:5;;1662:13;:30::i;:::-;1636:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:99;;;;1711:7;1720:10;1703:28;;;;;;1404:334;;;;;:::o;1149:36:31:-;;;:::o;1065:20:32:-;;;;:::o;1258:140::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1346:45:32::1;1369:5;;1358:32;;;;;;;:::i;:::-;1346:11;:45::i;:::-;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1258:140:32;;:::o;814:22::-;;;;:::o;879:21::-;;;;;;;;;;;;;:::o;1744:152::-;1821:19;1859:30;1873:8;;;;;;;;;;;1883:5;;1859:13;:30::i;:::-;1852:37;;1744:152;;;;:::o;966:22::-;;;;;;;;;;;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;2124:569:32:-;2214:20;2334:16;2331:1;2327:24;2381:4;2375:11;2364:22;;2415:4;2406:7;2399:21;2469:4;2463;2459:15;2450:7;2446:29;2440:4;2433:43;2586:9;2579:4;2570:7;2566:18;2559:37;2660:16;2642;2635:4;2626:7;2622:18;2609:68;2255:432;2124:569;;;;;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;1902:216:32:-;5662:20:21;:18;:20::i;:::-;2003:5:32::1;:13;;;1993:7;:23;;;;2035:5;:12;;;2026:6;;:21;;;;;;;;;;;;;;;;;;2068:5;:14;;;2057:8;;:25;;;;;;;;;;;;;;;;;;2100:5;:11;;;2092:5;:19;;;;1902:216:::0;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;5764:329:21:-;5826:9;5838:20;:18;:20::i;:::-;5826:32;;5957:1;5951:8;5948:1;5944:16;5934:143;;5993:10;5987:4;5980:24;6058:4;6052;6045:18;5934:143;5920:167;5764:329::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:407::-;4034:4;4072:2;4061:9;4057:18;4049:26;;4085:65;4147:1;4136:9;4132:17;4123:6;4085:65;:::i;:::-;4197:9;4191:4;4187:20;4182:2;4171:9;4167:18;4160:48;4225:76;4296:4;4287:6;4225:76;:::i;:::-;4217:84;;3901:407;;;;;:::o;4314:126::-;4351:7;4391:42;4384:5;4380:54;4369:65;;4314:126;;;:::o;4446:60::-;4474:3;4495:5;4488:12;;4446:60;;;:::o;4512:142::-;4562:9;4595:53;4613:34;4622:24;4640:5;4622:24;:::i;:::-;4613:34;:::i;:::-;4595:53;:::i;:::-;4582:66;;4512:142;;;:::o;4660:126::-;4710:9;4743:37;4774:5;4743:37;:::i;:::-;4730:50;;4660:126;;;:::o;4792:145::-;4861:9;4894:37;4925:5;4894:37;:::i;:::-;4881:50;;4792:145;;;:::o;4943:169::-;5049:56;5099:5;5049:56;:::i;:::-;5044:3;5037:69;4943:169;;:::o;5118:260::-;5230:4;5268:2;5257:9;5253:18;5245:26;;5281:90;5368:1;5357:9;5353:17;5344:6;5281:90;:::i;:::-;5118:260;;;;:::o;5384:77::-;5421:7;5450:5;5439:16;;5384:77;;;:::o;5467:118::-;5554:24;5572:5;5554:24;:::i;:::-;5549:3;5542:37;5467:118;;:::o;5591:222::-;5684:4;5722:2;5711:9;5707:18;5699:26;;5735:71;5803:1;5792:9;5788:17;5779:6;5735:71;:::i;:::-;5591:222;;;;:::o;5819:96::-;5856:7;5885:24;5903:5;5885:24;:::i;:::-;5874:35;;5819:96;;;:::o;5921:118::-;6008:24;6026:5;6008:24;:::i;:::-;6003:3;5996:37;5921:118;;:::o;6045:222::-;6138:4;6176:2;6165:9;6161:18;6153:26;;6189:71;6257:1;6246:9;6242:17;6233:6;6189:71;:::i;:::-;6045:222;;;;:::o;6273:309::-;6384:4;6422:2;6411:9;6407:18;6399:26;;6471:9;6465:4;6461:20;6457:1;6446:9;6442:17;6435:47;6499:76;6570:4;6561:6;6499:76;:::i;:::-;6491:84;;6273:309;;;;:::o;6588:115::-;6673:23;6690:5;6673:23;:::i;:::-;6668:3;6661:36;6588:115;;:::o;6709:218::-;6800:4;6838:2;6827:9;6823:18;6815:26;;6851:69;6917:1;6906:9;6902:17;6893:6;6851:69;:::i;:::-;6709:218;;;;:::o;6933:147::-;7034:11;7071:3;7056:18;;6933:147;;;;:::o;7086:386::-;7190:3;7218:38;7250:5;7218:38;:::i;:::-;7272:88;7353:6;7348:3;7272:88;:::i;:::-;7265:95;;7369:65;7427:6;7422:3;7415:4;7408:5;7404:16;7369:65;:::i;:::-;7459:6;7454:3;7450:16;7443:23;;7194:278;7086:386;;;;:::o;7478:271::-;7608:3;7630:93;7719:3;7710:6;7630:93;:::i;:::-;7623:100;;7740:3;7733:10;;7478:271;;;;:::o;7755:117::-;7864:1;7861;7854:12;7878:180;7926:77;7923:1;7916:88;8023:4;8020:1;8013:15;8047:4;8044:1;8037:15;8064:281;8147:27;8169:4;8147:27;:::i;:::-;8139:6;8135:40;8277:6;8265:10;8262:22;8241:18;8229:10;8226:34;8223:62;8220:88;;;8288:18;;:::i;:::-;8220:88;8328:10;8324:2;8317:22;8107:238;8064:281;;:::o;8351:129::-;8385:6;8412:20;;:::i;:::-;8402:30;;8441:33;8469:4;8461:6;8441:33;:::i;:::-;8351:129;;;:::o;8609:122::-;8682:24;8700:5;8682:24;:::i;:::-;8675:5;8672:35;8662:63;;8721:1;8718;8711:12;8662:63;8609:122;:::o;8737:139::-;8783:5;8821:6;8808:20;8799:29;;8837:33;8864:5;8837:33;:::i;:::-;8737:139;;;;:::o;8882:122::-;8955:24;8973:5;8955:24;:::i;:::-;8948:5;8945:35;8935:63;;8994:1;8991;8984:12;8935:63;8882:122;:::o;9010:139::-;9056:5;9094:6;9081:20;9072:29;;9110:33;9137:5;9110:33;:::i;:::-;9010:139;;;;:::o;9196:910::-;9275:5;9319:4;9307:9;9302:3;9298:19;9294:30;9291:117;;;9327:79;;:::i;:::-;9291:117;9426:21;9442:4;9426:21;:::i;:::-;9417:30;;9509:1;9549:49;9594:3;9585:6;9574:9;9570:22;9549:49;:::i;:::-;9542:4;9535:5;9531:16;9524:75;9457:153;9671:2;9712:49;9757:3;9748:6;9737:9;9733:22;9712:49;:::i;:::-;9705:4;9698:5;9694:16;9687:75;9620:153;9836:2;9877:48;9921:3;9912:6;9901:9;9897:22;9877:48;:::i;:::-;9870:4;9863:5;9859:16;9852:74;9783:154;9997:2;10038:49;10083:3;10074:6;10063:9;10059:22;10038:49;:::i;:::-;10031:4;10024:5;10020:16;10013:75;9947:152;9196:910;;;;:::o;10112:390::-;10201:6;10250:3;10238:9;10229:7;10225:23;10221:33;10218:120;;;10257:79;;:::i;:::-;10218:120;10377:1;10402:83;10477:7;10468:6;10457:9;10453:22;10402:83;:::i;:::-;10392:93;;10348:147;10112:390;;;;:::o"},"methodIdentifiers":{"VALIDATOR()":"393df8cb","chainId()":"9a8a0592","execute(bytes)":"09c5eabe","initialize(bytes)":"439fab91","prepare(bytes)":"d7768c47","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecuteNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"bytes_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"(success, data) A tuple of the success status and the returned data\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"prepare(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"bytes_\":\"The prepared payload\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"ExecuteNotImplemented()\":[{\"notice\":\"Thrown when the `execute` function is not implemented\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"execute(bytes)\":{\"notice\":\"Execute the action\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the owner and the required data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/ContractAction.sol\":\"ContractAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/actions/ContractAction.sol\":{\"keccak256\":\"0x1d216cdb7e8011350fd07c8b796235264da51e788701f6be92605277c7b457d5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5198f63609e67be2f9b9660837f9c576aca3ed3af370d39fd53c184aecb3e0e4\",\"dweb:/ipfs/QmYEhsxWWsw12koqkUFLYT8SVexdpPH8hD3Ezh1aHBdmig\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/actions/ERC721MintAction.sol":{"ERC721MintAction":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"ExecuteNotImplemented","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"validated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_12802":{"entryPoint":null,"id":12802,"parameterSlots":0,"returnSlots":0},"@_12944":{"entryPoint":null,"id":12944,"parameterSlots":0,"returnSlots":0},"@_18250":{"entryPoint":null,"id":18250,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":64,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":433,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":392,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":172,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b5061001e61004060201b60201c565b61002d336100ac60201b60201c565b61003b61004060201b60201c565b6101b5565b5f61004f61018860201b60201c565b9050805460018116156100695763f92ee8a95f526004601cfd5b8160c01c808260011c146100a7578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6100ba6101b160201b60201c565b15610132577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156100f457630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610185565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f90565b6080516114526101cd5f395f61047c01526114525ff3fe608060405260043610610108575f3560e01c80639a8a059211610094578063d7768c4711610063578063d7768c4714610309578063ea3d508a14610345578063f04e283e1461036f578063f2fde38b1461038b578063fee81cf4146103a757610108565b80639a8a05921461023d578063bec9527714610267578063c16e50ef146102a3578063d4b83992146102df57610108565b80633fa4f245116100db5780633fa4f245146101ad578063439fab91146101d757806354d1f13d146101ff578063715018a6146102095780638da5cb5b1461021357610108565b806301ffc9a71461010c57806309c5eabe146101485780632569296214610179578063393df8cb14610183575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610d47565b6103e3565b60405161013f9190610d8c565b60405180910390f35b610162600480360381019061015d9190610e06565b6103f4565b604051610170929190610ec1565b60405180910390f35b610181610429565b005b34801561018e575f80fd5b5061019761047a565b6040516101a49190610f69565b60405180910390f35b3480156101b8575f80fd5b506101c161049e565b6040516101ce9190610f9a565b60405180910390f35b3480156101e2575f80fd5b506101fd60048036038101906101f89190610e06565b6104a4565b005b610207610531565b005b61021161056a565b005b34801561021e575f80fd5b5061022761057d565b6040516102349190610fd3565b60405180910390f35b348015610248575f80fd5b506102516105a5565b60405161025e9190610f9a565b60405180910390f35b348015610272575f80fd5b5061028d60048036038101906102889190611016565b6105aa565b60405161029a9190610d8c565b60405180910390f35b3480156102ae575f80fd5b506102c960048036038101906102c49190610e06565b6105c7565b6040516102d69190610d8c565b60405180910390f35b3480156102ea575f80fd5b506102f3610721565b6040516103009190610fd3565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a9190610e06565b610746565b60405161033c9190611041565b60405180910390f35b348015610350575f80fd5b5061035961075a565b6040516103669190611070565b60405180910390f35b610389600480360381019061038491906110b3565b61076d565b005b6103a560048036038101906103a091906110b3565b6107ab565b005b3480156103b2575f80fd5b506103cd60048036038101906103c891906110b3565b6107d4565b6040516103da9190610f9a565b60405180910390f35b5f6103ed826107ed565b9050919050565b5f60606040517fe1ebb83b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610432610866565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6104ad610870565b905080546003825580156104df5760018160011c14303b106104d65763f92ee8a95f526004601cfd5b818160ff1b1b91505b506104f783838101906104f291906111cf565b610899565b801561052c576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105726108b6565b61057b5f6108ed565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f84848101906105d991906112e5565b915091505f816105e890611377565b5f1c90508273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161065d9190610f9a565b602060405180830381865afa158015610678573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069c91906113f1565b73ffffffffffffffffffffffffffffffffffffffff161480156106da575060035f8281526020019081526020015f205f9054906101000a900460ff16155b1561071457600160035f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055506001935050505061071b565b5f93505050505b92915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061075283836109b3565b905092915050565b600160149054906101000a900460e01b81565b6107756108b6565b63389a75e1600c52805f526020600c20805442111561079b57636f5e88185f526004601cfd5b5f8155506107a8816108ed565b50565b6107b36108b6565b8060601b6107c857637448fbae5f526004601cfd5b6107d1816108ed565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061085f575061085e826109d7565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108a1610a50565b6108aa81610a74565b6108b333610af9565b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146108eb576382b429005f526004601cfd5b565b6108f5610bcf565b1561095a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506109b0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b60606109cf600160149054906101000a900460e01b8484610bd3565b905092915050565b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a495750610a4882610bff565b5b9050919050565b5f610a59610870565b90508054600116610a715763d7e6bcf85f526004601cfd5b50565b610a7c610a50565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b610b01610bcf565b15610b79577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b3b57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610bcc565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c715750610c7082610c78565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d2681610cf2565b8114610d30575f80fd5b50565b5f81359050610d4181610d1d565b92915050565b5f60208284031215610d5c57610d5b610cea565b5b5f610d6984828501610d33565b91505092915050565b5f8115159050919050565b610d8681610d72565b82525050565b5f602082019050610d9f5f830184610d7d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610dc657610dc5610da5565b5b8235905067ffffffffffffffff811115610de357610de2610da9565b5b602083019150836001820283011115610dff57610dfe610dad565b5b9250929050565b5f8060208385031215610e1c57610e1b610cea565b5b5f83013567ffffffffffffffff811115610e3957610e38610cee565b5b610e4585828601610db1565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9382610e51565b610e9d8185610e5b565b9350610ead818560208601610e6b565b610eb681610e79565b840191505092915050565b5f604082019050610ed45f830185610d7d565b8181036020830152610ee68184610e89565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f31610f2c610f2784610eef565b610f0e565b610eef565b9050919050565b5f610f4282610f17565b9050919050565b5f610f5382610f38565b9050919050565b610f6381610f49565b82525050565b5f602082019050610f7c5f830184610f5a565b92915050565b5f819050919050565b610f9481610f82565b82525050565b5f602082019050610fad5f830184610f8b565b92915050565b5f610fbd82610eef565b9050919050565b610fcd81610fb3565b82525050565b5f602082019050610fe65f830184610fc4565b92915050565b610ff581610f82565b8114610fff575f80fd5b50565b5f8135905061101081610fec565b92915050565b5f6020828403121561102b5761102a610cea565b5b5f61103884828501611002565b91505092915050565b5f6020820190508181035f8301526110598184610e89565b905092915050565b61106a81610cf2565b82525050565b5f6020820190506110835f830184611061565b92915050565b61109281610fb3565b811461109c575f80fd5b50565b5f813590506110ad81611089565b92915050565b5f602082840312156110c8576110c7610cea565b5b5f6110d58482850161109f565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61111882610e79565b810181811067ffffffffffffffff82111715611137576111366110e2565b5b80604052505050565b5f611149610ce1565b9050611155828261110f565b919050565b5f6080828403121561116f5761116e6110de565b5b6111796080611140565b90505f61118884828501611002565b5f83015250602061119b8482850161109f565b60208301525060406111af84828501610d33565b60408301525060606111c384828501611002565b60608301525092915050565b5f608082840312156111e4576111e3610cea565b5b5f6111f18482850161115a565b91505092915050565b5f61120482610eef565b9050919050565b611214816111fa565b811461121e575f80fd5b50565b5f8135905061122f8161120b565b92915050565b5f80fd5b5f67ffffffffffffffff821115611253576112526110e2565b5b61125c82610e79565b9050602081019050919050565b828183375f83830152505050565b5f61128961128484611239565b611140565b9050828152602081018484840111156112a5576112a4611235565b5b6112b0848285611269565b509392505050565b5f82601f8301126112cc576112cb610da5565b5b81356112dc848260208601611277565b91505092915050565b5f80604083850312156112fb576112fa610cea565b5b5f61130885828601611221565b925050602083013567ffffffffffffffff81111561132957611328610cee565b5b611335858286016112b8565b9150509250929050565b5f819050602082019050919050565b5f819050919050565b5f611362825161134e565b80915050919050565b5f82821b905092915050565b5f61138182610e51565b8261138b8461133f565b905061139681611357565b925060208210156113d6576113d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261136b565b831692505b5050919050565b5f815190506113eb81611089565b92915050565b5f6020828403121561140657611405610cea565b5b5f611413848285016113dd565b9150509291505056fea26469706673582212201eed06d9c91007e2b028d9b47b4370f06ff230572c76ee6cca214af1f4c9bfb464736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E PUSH2 0x40 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D CALLER PUSH2 0xAC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x3B PUSH2 0x40 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1B5 JUMP JUMPDEST PUSH0 PUSH2 0x4F PUSH2 0x188 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x69 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0xA7 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xBA PUSH2 0x1B1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0x132 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xF4 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x185 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1452 PUSH2 0x1CD PUSH0 CODECOPY PUSH0 PUSH2 0x47C ADD MSTORE PUSH2 0x1452 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A8A0592 GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xD7768C47 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A7 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xBEC95277 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x2DF JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x3FA4F245 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x213 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x183 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xD47 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x3F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP3 SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x429 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x197 PUSH2 0x47A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH2 0x49E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CE SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x207 PUSH2 0x531 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x211 PUSH2 0x56A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x251 PUSH2 0x5A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x1016 JUMP JUMPDEST PUSH2 0x5AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29A SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F3 PUSH2 0x721 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x32A SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x746 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0x75A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x366 SWAP2 SWAP1 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x389 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x384 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x76D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7AB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH2 0x3ED DUP3 PUSH2 0x7ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH32 0xE1EBB83B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x432 PUSH2 0x866 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4AD PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4D6 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x4F7 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x11CF JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x52C JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x572 PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x57B PUSH0 PUSH2 0x8ED JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x5D9 SWAP2 SWAP1 PUSH2 0x12E5 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP2 PUSH2 0x5E8 SWAP1 PUSH2 0x1377 JUMP JUMPDEST PUSH0 SHR SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x65D SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x678 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x69C SWAP2 SWAP1 PUSH2 0x13F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x6DA JUMPI POP PUSH1 0x3 PUSH0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x714 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x71B JUMP JUMPDEST PUSH0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x752 DUP4 DUP4 PUSH2 0x9B3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0x775 PUSH2 0x8B6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x79B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x7A8 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7B3 PUSH2 0x8B6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7C8 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7D1 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x85F JUMPI POP PUSH2 0x85E DUP3 PUSH2 0x9D7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0xA50 JUMP JUMPDEST PUSH2 0x8AA DUP2 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x8B3 CALLER PUSH2 0xAF9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x8EB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x8F5 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0x95A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x9B0 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x9CF PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA49 JUMPI POP PUSH2 0xA48 DUP3 PUSH2 0xBFF JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA59 PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0xA71 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA7C PUSH2 0xA50 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xB01 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0xB79 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB3B JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xBCC JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC71 JUMPI POP PUSH2 0xC70 DUP3 PUSH2 0xC78 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD26 DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP2 EQ PUSH2 0xD30 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD41 DUP2 PUSH2 0xD1D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5C JUMPI PUSH2 0xD5B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD86 DUP2 PUSH2 0xD72 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD9F PUSH0 DUP4 ADD DUP5 PUSH2 0xD7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDC6 JUMPI PUSH2 0xDC5 PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDE3 JUMPI PUSH2 0xDE2 PUSH2 0xDA9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xDFF JUMPI PUSH2 0xDFE PUSH2 0xDAD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1C JUMPI PUSH2 0xE1B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE38 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0xE45 DUP6 DUP3 DUP7 ADD PUSH2 0xDB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE93 DUP3 PUSH2 0xE51 JUMP JUMPDEST PUSH2 0xE9D DUP2 DUP6 PUSH2 0xE5B JUMP JUMPDEST SWAP4 POP PUSH2 0xEAD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE6B JUMP JUMPDEST PUSH2 0xEB6 DUP2 PUSH2 0xE79 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xED4 PUSH0 DUP4 ADD DUP6 PUSH2 0xD7D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF31 PUSH2 0xF2C PUSH2 0xF27 DUP5 PUSH2 0xEEF JUMP JUMPDEST PUSH2 0xF0E JUMP JUMPDEST PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF42 DUP3 PUSH2 0xF17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF53 DUP3 PUSH2 0xF38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF63 DUP2 PUSH2 0xF49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF7C PUSH0 DUP4 ADD DUP5 PUSH2 0xF5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF94 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFAD PUSH0 DUP4 ADD DUP5 PUSH2 0xF8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFBD DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFCD DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFE6 PUSH0 DUP4 ADD DUP5 PUSH2 0xFC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFF5 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP2 EQ PUSH2 0xFFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1010 DUP2 PUSH2 0xFEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1038 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1059 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x106A DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1083 PUSH0 DUP4 ADD DUP5 PUSH2 0x1061 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1092 DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP2 EQ PUSH2 0x109C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10AD DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10C8 JUMPI PUSH2 0x10C7 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10D5 DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1118 DUP3 PUSH2 0xE79 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1137 JUMPI PUSH2 0x1136 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1149 PUSH2 0xCE1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1155 DUP3 DUP3 PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH2 0x116E PUSH2 0x10DE JUMP JUMPDEST JUMPDEST PUSH2 0x1179 PUSH1 0x80 PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1188 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x119B DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x11AF DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x11C3 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11E4 JUMPI PUSH2 0x11E3 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11F1 DUP5 DUP3 DUP6 ADD PUSH2 0x115A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1204 DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1214 DUP2 PUSH2 0x11FA JUMP JUMPDEST DUP2 EQ PUSH2 0x121E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122F DUP2 PUSH2 0x120B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1253 JUMPI PUSH2 0x1252 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST PUSH2 0x125C DUP3 PUSH2 0xE79 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1289 PUSH2 0x1284 DUP5 PUSH2 0x1239 JUMP JUMPDEST PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x12A5 JUMPI PUSH2 0x12A4 PUSH2 0x1235 JUMP JUMPDEST JUMPDEST PUSH2 0x12B0 DUP5 DUP3 DUP6 PUSH2 0x1269 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12CC JUMPI PUSH2 0x12CB PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12DC DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1277 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12FB JUMPI PUSH2 0x12FA PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1308 DUP6 DUP3 DUP7 ADD PUSH2 0x1221 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1329 JUMPI PUSH2 0x1328 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0x1335 DUP6 DUP3 DUP7 ADD PUSH2 0x12B8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1362 DUP3 MLOAD PUSH2 0x134E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1381 DUP3 PUSH2 0xE51 JUMP JUMPDEST DUP3 PUSH2 0x138B DUP5 PUSH2 0x133F JUMP JUMPDEST SWAP1 POP PUSH2 0x1396 DUP2 PUSH2 0x1357 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x13D6 JUMPI PUSH2 0x13D1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x136B JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EB DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1406 JUMPI PUSH2 0x1405 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1413 DUP5 DUP3 DUP6 ADD PUSH2 0x13DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xED MOD 0xD9 0xC9 LT SMOD 0xE2 0xB0 0x28 0xD9 0xB4 PUSH28 0x4370F06FF230572C76EE6CCA214AF1F4C9BFB464736F6C6343000819 STOP CALLER ","sourceMap":"813:3156:33:-:0;;;1296:53;;;;;;;;;;1116:22:32;:20;;;:22;;:::i;:::-;703:28:52;720:10;703:16;;;:28;;:::i;:::-;1320:22:33;:20;;;:22;;:::i;:::-;813:3156;;6525:759:21;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4883:1190:17:-;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4348:78:17:-;4412:10;4348:78;:::o;813:3156:33:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@VALIDATOR_12716":{"entryPoint":1146,"id":12716,"parameterSlots":0,"returnSlots":0},"@_buildPayload_12913":{"entryPoint":3027,"id":12913,"parameterSlots":3,"returnSlots":1},"@_checkInitializing_9187":{"entryPoint":2640,"id":9187,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":2230,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3023,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2160,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2809,"id":6302,"parameterSlots":1,"returnSlots":0},"@_initialize_12902":{"entryPoint":2676,"id":12902,"parameterSlots":1,"returnSlots":0},"@_initialize_13098":{"entryPoint":2201,"id":13098,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":2150,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":2285,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1329,"id":6382,"parameterSlots":0,"returnSlots":0},"@chainId_12786":{"entryPoint":1445,"id":12786,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":1901,"id":6396,"parameterSlots":1,"returnSlots":0},"@execute_12985":{"entryPoint":1012,"id":12985,"parameterSlots":2,"returnSlots":2},"@initialize_12965":{"entryPoint":1188,"id":12965,"parameterSlots":2,"returnSlots":0},"@owner_6404":{"entryPoint":1405,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2004,"id":6414,"parameterSlots":1,"returnSlots":1},"@prepare_12873":{"entryPoint":2483,"id":12873,"parameterSlots":2,"returnSlots":1},"@prepare_13000":{"entryPoint":1862,"id":13000,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1386,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1065,"id":6376,"parameterSlots":0,"returnSlots":0},"@selector_12792":{"entryPoint":1882,"id":12792,"parameterSlots":0,"returnSlots":0},"@supportsInterface_12757":{"entryPoint":2519,"id":12757,"parameterSlots":1,"returnSlots":1},"@supportsInterface_13077":{"entryPoint":995,"id":13077,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":3071,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18281":{"entryPoint":2029,"id":18281,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":3192,"id":2844,"parameterSlots":1,"returnSlots":1},"@target_12789":{"entryPoint":1825,"id":12789,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":1963,"id":6347,"parameterSlots":1,"returnSlots":0},"@validate_13060":{"entryPoint":1479,"id":13060,"parameterSlots":2,"returnSlots":1},"@validated_12936":{"entryPoint":1450,"id":12936,"parameterSlots":0,"returnSlots":0},"@value_12795":{"entryPoint":1182,"id":12795,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4727,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4255,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":5085,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4641,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3379,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3505,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4792,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":4442,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4098,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4275,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":5105,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes_memory_ptr":{"entryPoint":4837,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3399,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3590,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":4559,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4118,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4036,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3453,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4193,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":3721,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack":{"entryPoint":3930,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3979,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3777,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4208,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed":{"entryPoint":3945,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3994,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4416,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3297,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4665,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_memory_ptr":{"entryPoint":4927,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":3665,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":3675,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4019,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4602,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3442,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":4942,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3314,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3823,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3970,"id":null,"parameterSlots":1,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":4983,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$18282_to_t_address":{"entryPoint":3913,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3896,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":3863,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4713,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":3691,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4367,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":3854,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":4322,"id":null,"parameterSlots":0,"returnSlots":0},"read_from_memoryt_bytes32":{"entryPoint":4951,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3497,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3493,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4318,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3501,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4661,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3310,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3306,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3705,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":4971,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_t_address":{"entryPoint":4233,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4619,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3357,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4076,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14402:53","nodeType":"YulBlock","src":"0:14402:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1974:478:53","nodeType":"YulBlock","src":"1974:478:53","statements":[{"body":{"nativeSrc":"2023:83:53","nodeType":"YulBlock","src":"2023:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:53","nodeType":"YulIdentifier","src":"2025:77:53"},"nativeSrc":"2025:79:53","nodeType":"YulFunctionCall","src":"2025:79:53"},"nativeSrc":"2025:79:53","nodeType":"YulExpressionStatement","src":"2025:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:53","nodeType":"YulIdentifier","src":"2002:6:53"},{"kind":"number","nativeSrc":"2010:4:53","nodeType":"YulLiteral","src":"2010:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"},{"name":"end","nativeSrc":"2017:3:53","nodeType":"YulIdentifier","src":"2017:3:53"}],"functionName":{"name":"slt","nativeSrc":"1994:3:53","nodeType":"YulIdentifier","src":"1994:3:53"},"nativeSrc":"1994:27:53","nodeType":"YulFunctionCall","src":"1994:27:53"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:53","nodeType":"YulIdentifier","src":"1987:6:53"},"nativeSrc":"1987:35:53","nodeType":"YulFunctionCall","src":"1987:35:53"},"nativeSrc":"1984:122:53","nodeType":"YulIf","src":"1984:122:53"},{"nativeSrc":"2115:30:53","nodeType":"YulAssignment","src":"2115:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:53","nodeType":"YulIdentifier","src":"2138:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:53","nodeType":"YulIdentifier","src":"2125:12:53"},"nativeSrc":"2125:20:53","nodeType":"YulFunctionCall","src":"2125:20:53"},"variableNames":[{"name":"length","nativeSrc":"2115:6:53","nodeType":"YulIdentifier","src":"2115:6:53"}]},{"body":{"nativeSrc":"2188:83:53","nodeType":"YulBlock","src":"2188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:53","nodeType":"YulIdentifier","src":"2190:77:53"},"nativeSrc":"2190:79:53","nodeType":"YulFunctionCall","src":"2190:79:53"},"nativeSrc":"2190:79:53","nodeType":"YulExpressionStatement","src":"2190:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:53","nodeType":"YulIdentifier","src":"2160:6:53"},{"kind":"number","nativeSrc":"2168:18:53","nodeType":"YulLiteral","src":"2168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:53","nodeType":"YulIdentifier","src":"2157:2:53"},"nativeSrc":"2157:30:53","nodeType":"YulFunctionCall","src":"2157:30:53"},"nativeSrc":"2154:117:53","nodeType":"YulIf","src":"2154:117:53"},{"nativeSrc":"2280:29:53","nodeType":"YulAssignment","src":"2280:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:53","nodeType":"YulIdentifier","src":"2296:6:53"},{"kind":"number","nativeSrc":"2304:4:53","nodeType":"YulLiteral","src":"2304:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:53","nodeType":"YulIdentifier","src":"2292:3:53"},"nativeSrc":"2292:17:53","nodeType":"YulFunctionCall","src":"2292:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:53","nodeType":"YulIdentifier","src":"2280:8:53"}]},{"body":{"nativeSrc":"2363:83:53","nodeType":"YulBlock","src":"2363:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:53","nodeType":"YulIdentifier","src":"2365:77:53"},"nativeSrc":"2365:79:53","nodeType":"YulFunctionCall","src":"2365:79:53"},"nativeSrc":"2365:79:53","nodeType":"YulExpressionStatement","src":"2365:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:53","nodeType":"YulIdentifier","src":"2328:8:53"},{"arguments":[{"name":"length","nativeSrc":"2342:6:53","nodeType":"YulIdentifier","src":"2342:6:53"},{"kind":"number","nativeSrc":"2350:4:53","nodeType":"YulLiteral","src":"2350:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:53","nodeType":"YulIdentifier","src":"2338:3:53"},"nativeSrc":"2338:17:53","nodeType":"YulFunctionCall","src":"2338:17:53"}],"functionName":{"name":"add","nativeSrc":"2324:3:53","nodeType":"YulIdentifier","src":"2324:3:53"},"nativeSrc":"2324:32:53","nodeType":"YulFunctionCall","src":"2324:32:53"},{"name":"end","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"}],"functionName":{"name":"gt","nativeSrc":"2321:2:53","nodeType":"YulIdentifier","src":"2321:2:53"},"nativeSrc":"2321:41:53","nodeType":"YulFunctionCall","src":"2321:41:53"},"nativeSrc":"2318:128:53","nodeType":"YulIf","src":"2318:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:53","nodeType":"YulTypedName","src":"1941:6:53","type":""},{"name":"end","nativeSrc":"1949:3:53","nodeType":"YulTypedName","src":"1949:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:53","nodeType":"YulTypedName","src":"1957:8:53","type":""},{"name":"length","nativeSrc":"1967:6:53","nodeType":"YulTypedName","src":"1967:6:53","type":""}],"src":"1900:552:53"},{"body":{"nativeSrc":"2543:442:53","nodeType":"YulBlock","src":"2543:442:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:296:53","nodeType":"YulBlock","src":"2682:296:53","statements":[{"nativeSrc":"2697:45:53","nodeType":"YulVariableDeclaration","src":"2697:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:53","nodeType":"YulIdentifier","src":"2728:9:53"},{"kind":"number","nativeSrc":"2739:1:53","nodeType":"YulLiteral","src":"2739:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:53","nodeType":"YulIdentifier","src":"2724:3:53"},"nativeSrc":"2724:17:53","nodeType":"YulFunctionCall","src":"2724:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:53","nodeType":"YulIdentifier","src":"2711:12:53"},"nativeSrc":"2711:31:53","nodeType":"YulFunctionCall","src":"2711:31:53"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"body":{"nativeSrc":"2789:83:53","nodeType":"YulBlock","src":"2789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:53","nodeType":"YulIdentifier","src":"2791:77:53"},"nativeSrc":"2791:79:53","nodeType":"YulFunctionCall","src":"2791:79:53"},"nativeSrc":"2791:79:53","nodeType":"YulExpressionStatement","src":"2791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},{"kind":"number","nativeSrc":"2769:18:53","nodeType":"YulLiteral","src":"2769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:53","nodeType":"YulIdentifier","src":"2758:2:53"},"nativeSrc":"2758:30:53","nodeType":"YulFunctionCall","src":"2758:30:53"},"nativeSrc":"2755:117:53","nodeType":"YulIf","src":"2755:117:53"},{"nativeSrc":"2886:82:53","nodeType":"YulAssignment","src":"2886:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"},{"name":"offset","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"}],"functionName":{"name":"add","nativeSrc":"2936:3:53","nodeType":"YulIdentifier","src":"2936:3:53"},"nativeSrc":"2936:22:53","nodeType":"YulFunctionCall","src":"2936:22:53"},{"name":"dataEnd","nativeSrc":"2960:7:53","nodeType":"YulIdentifier","src":"2960:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:53","nodeType":"YulIdentifier","src":"2904:31:53"},"nativeSrc":"2904:64:53","nodeType":"YulFunctionCall","src":"2904:64:53"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:53","nodeType":"YulIdentifier","src":"2886:6:53"},{"name":"value1","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:53","nodeType":"YulTypedName","src":"2505:9:53","type":""},{"name":"dataEnd","nativeSrc":"2516:7:53","nodeType":"YulTypedName","src":"2516:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:53","nodeType":"YulTypedName","src":"2528:6:53","type":""},{"name":"value1","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2458:527:53"},{"body":{"nativeSrc":"3049:40:53","nodeType":"YulBlock","src":"3049:40:53","statements":[{"nativeSrc":"3060:22:53","nodeType":"YulAssignment","src":"3060:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"}],"functionName":{"name":"mload","nativeSrc":"3070:5:53","nodeType":"YulIdentifier","src":"3070:5:53"},"nativeSrc":"3070:12:53","nodeType":"YulFunctionCall","src":"3070:12:53"},"variableNames":[{"name":"length","nativeSrc":"3060:6:53","nodeType":"YulIdentifier","src":"3060:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:53","nodeType":"YulTypedName","src":"3032:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:53","nodeType":"YulTypedName","src":"3042:6:53","type":""}],"src":"2991:98:53"},{"body":{"nativeSrc":"3190:73:53","nodeType":"YulBlock","src":"3190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"},{"name":"length","nativeSrc":"3212:6:53","nodeType":"YulIdentifier","src":"3212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:53","nodeType":"YulIdentifier","src":"3200:6:53"},"nativeSrc":"3200:19:53","nodeType":"YulFunctionCall","src":"3200:19:53"},"nativeSrc":"3200:19:53","nodeType":"YulExpressionStatement","src":"3200:19:53"},{"nativeSrc":"3228:29:53","nodeType":"YulAssignment","src":"3228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:53","nodeType":"YulIdentifier","src":"3247:3:53"},{"kind":"number","nativeSrc":"3252:4:53","nodeType":"YulLiteral","src":"3252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:53","nodeType":"YulIdentifier","src":"3243:3:53"},"nativeSrc":"3243:14:53","nodeType":"YulFunctionCall","src":"3243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:53","nodeType":"YulIdentifier","src":"3228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:53","nodeType":"YulTypedName","src":"3162:3:53","type":""},{"name":"length","nativeSrc":"3167:6:53","nodeType":"YulTypedName","src":"3167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:53","nodeType":"YulTypedName","src":"3178:11:53","type":""}],"src":"3095:168:53"},{"body":{"nativeSrc":"3331:77:53","nodeType":"YulBlock","src":"3331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:53","nodeType":"YulIdentifier","src":"3348:3:53"},{"name":"src","nativeSrc":"3353:3:53","nodeType":"YulIdentifier","src":"3353:3:53"},{"name":"length","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:53","nodeType":"YulIdentifier","src":"3342:5:53"},"nativeSrc":"3342:23:53","nodeType":"YulFunctionCall","src":"3342:23:53"},"nativeSrc":"3342:23:53","nodeType":"YulExpressionStatement","src":"3342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:53","nodeType":"YulIdentifier","src":"3385:3:53"},{"name":"length","nativeSrc":"3390:6:53","nodeType":"YulIdentifier","src":"3390:6:53"}],"functionName":{"name":"add","nativeSrc":"3381:3:53","nodeType":"YulIdentifier","src":"3381:3:53"},"nativeSrc":"3381:16:53","nodeType":"YulFunctionCall","src":"3381:16:53"},{"kind":"number","nativeSrc":"3399:1:53","nodeType":"YulLiteral","src":"3399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:53","nodeType":"YulIdentifier","src":"3374:6:53"},"nativeSrc":"3374:27:53","nodeType":"YulFunctionCall","src":"3374:27:53"},"nativeSrc":"3374:27:53","nodeType":"YulExpressionStatement","src":"3374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:53","nodeType":"YulTypedName","src":"3313:3:53","type":""},{"name":"dst","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""},{"name":"length","nativeSrc":"3323:6:53","nodeType":"YulTypedName","src":"3323:6:53","type":""}],"src":"3269:139:53"},{"body":{"nativeSrc":"3462:54:53","nodeType":"YulBlock","src":"3462:54:53","statements":[{"nativeSrc":"3472:38:53","nodeType":"YulAssignment","src":"3472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:53","nodeType":"YulIdentifier","src":"3490:5:53"},{"kind":"number","nativeSrc":"3497:2:53","nodeType":"YulLiteral","src":"3497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:53","nodeType":"YulIdentifier","src":"3486:3:53"},"nativeSrc":"3486:14:53","nodeType":"YulFunctionCall","src":"3486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:53","nodeType":"YulLiteral","src":"3506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:53","nodeType":"YulIdentifier","src":"3502:3:53"},"nativeSrc":"3502:7:53","nodeType":"YulFunctionCall","src":"3502:7:53"}],"functionName":{"name":"and","nativeSrc":"3482:3:53","nodeType":"YulIdentifier","src":"3482:3:53"},"nativeSrc":"3482:28:53","nodeType":"YulFunctionCall","src":"3482:28:53"},"variableNames":[{"name":"result","nativeSrc":"3472:6:53","nodeType":"YulIdentifier","src":"3472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:53","nodeType":"YulTypedName","src":"3445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:53","nodeType":"YulTypedName","src":"3455:6:53","type":""}],"src":"3414:102:53"},{"body":{"nativeSrc":"3612:283:53","nodeType":"YulBlock","src":"3612:283:53","statements":[{"nativeSrc":"3622:52:53","nodeType":"YulVariableDeclaration","src":"3622:52:53","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:53","nodeType":"YulIdentifier","src":"3668:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:53","nodeType":"YulIdentifier","src":"3636:31:53"},"nativeSrc":"3636:38:53","nodeType":"YulFunctionCall","src":"3636:38:53"},"variables":[{"name":"length","nativeSrc":"3626:6:53","nodeType":"YulTypedName","src":"3626:6:53","type":""}]},{"nativeSrc":"3683:77:53","nodeType":"YulAssignment","src":"3683:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},{"name":"length","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:53","nodeType":"YulIdentifier","src":"3690:57:53"},"nativeSrc":"3690:70:53","nodeType":"YulFunctionCall","src":"3690:70:53"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:53","nodeType":"YulIdentifier","src":"3683:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:53","nodeType":"YulIdentifier","src":"3808:5:53"},{"kind":"number","nativeSrc":"3815:4:53","nodeType":"YulLiteral","src":"3815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:16:53","nodeType":"YulFunctionCall","src":"3804:16:53"},{"name":"pos","nativeSrc":"3822:3:53","nodeType":"YulIdentifier","src":"3822:3:53"},{"name":"length","nativeSrc":"3827:6:53","nodeType":"YulIdentifier","src":"3827:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:53","nodeType":"YulIdentifier","src":"3769:34:53"},"nativeSrc":"3769:65:53","nodeType":"YulFunctionCall","src":"3769:65:53"},"nativeSrc":"3769:65:53","nodeType":"YulExpressionStatement","src":"3769:65:53"},{"nativeSrc":"3843:46:53","nodeType":"YulAssignment","src":"3843:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:53","nodeType":"YulIdentifier","src":"3854:3:53"},{"arguments":[{"name":"length","nativeSrc":"3881:6:53","nodeType":"YulIdentifier","src":"3881:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:53","nodeType":"YulIdentifier","src":"3859:21:53"},"nativeSrc":"3859:29:53","nodeType":"YulFunctionCall","src":"3859:29:53"}],"functionName":{"name":"add","nativeSrc":"3850:3:53","nodeType":"YulIdentifier","src":"3850:3:53"},"nativeSrc":"3850:39:53","nodeType":"YulFunctionCall","src":"3850:39:53"},"variableNames":[{"name":"end","nativeSrc":"3843:3:53","nodeType":"YulIdentifier","src":"3843:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:53","nodeType":"YulTypedName","src":"3593:5:53","type":""},{"name":"pos","nativeSrc":"3600:3:53","nodeType":"YulTypedName","src":"3600:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:53","nodeType":"YulTypedName","src":"3608:3:53","type":""}],"src":"3522:373:53"},{"body":{"nativeSrc":"4039:269:53","nodeType":"YulBlock","src":"4039:269:53","statements":[{"nativeSrc":"4049:26:53","nodeType":"YulAssignment","src":"4049:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4061:9:53","nodeType":"YulIdentifier","src":"4061:9:53"},{"kind":"number","nativeSrc":"4072:2:53","nodeType":"YulLiteral","src":"4072:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4057:3:53","nodeType":"YulIdentifier","src":"4057:3:53"},"nativeSrc":"4057:18:53","nodeType":"YulFunctionCall","src":"4057:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4049:4:53","nodeType":"YulIdentifier","src":"4049:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4123:6:53","nodeType":"YulIdentifier","src":"4123:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4136:9:53","nodeType":"YulIdentifier","src":"4136:9:53"},{"kind":"number","nativeSrc":"4147:1:53","nodeType":"YulLiteral","src":"4147:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4132:3:53","nodeType":"YulIdentifier","src":"4132:3:53"},"nativeSrc":"4132:17:53","nodeType":"YulFunctionCall","src":"4132:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4085:37:53","nodeType":"YulIdentifier","src":"4085:37:53"},"nativeSrc":"4085:65:53","nodeType":"YulFunctionCall","src":"4085:65:53"},"nativeSrc":"4085:65:53","nodeType":"YulExpressionStatement","src":"4085:65:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4171:9:53","nodeType":"YulIdentifier","src":"4171:9:53"},{"kind":"number","nativeSrc":"4182:2:53","nodeType":"YulLiteral","src":"4182:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4167:3:53","nodeType":"YulIdentifier","src":"4167:3:53"},"nativeSrc":"4167:18:53","nodeType":"YulFunctionCall","src":"4167:18:53"},{"arguments":[{"name":"tail","nativeSrc":"4191:4:53","nodeType":"YulIdentifier","src":"4191:4:53"},{"name":"headStart","nativeSrc":"4197:9:53","nodeType":"YulIdentifier","src":"4197:9:53"}],"functionName":{"name":"sub","nativeSrc":"4187:3:53","nodeType":"YulIdentifier","src":"4187:3:53"},"nativeSrc":"4187:20:53","nodeType":"YulFunctionCall","src":"4187:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4160:6:53","nodeType":"YulIdentifier","src":"4160:6:53"},"nativeSrc":"4160:48:53","nodeType":"YulFunctionCall","src":"4160:48:53"},"nativeSrc":"4160:48:53","nodeType":"YulExpressionStatement","src":"4160:48:53"},{"nativeSrc":"4217:84:53","nodeType":"YulAssignment","src":"4217:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"4287:6:53","nodeType":"YulIdentifier","src":"4287:6:53"},{"name":"tail","nativeSrc":"4296:4:53","nodeType":"YulIdentifier","src":"4296:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4225:61:53","nodeType":"YulIdentifier","src":"4225:61:53"},"nativeSrc":"4225:76:53","nodeType":"YulFunctionCall","src":"4225:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:53","nodeType":"YulIdentifier","src":"4217:4:53"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:407:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4003:9:53","nodeType":"YulTypedName","src":"4003:9:53","type":""},{"name":"value1","nativeSrc":"4015:6:53","nodeType":"YulTypedName","src":"4015:6:53","type":""},{"name":"value0","nativeSrc":"4023:6:53","nodeType":"YulTypedName","src":"4023:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4034:4:53","nodeType":"YulTypedName","src":"4034:4:53","type":""}],"src":"3901:407:53"},{"body":{"nativeSrc":"4359:81:53","nodeType":"YulBlock","src":"4359:81:53","statements":[{"nativeSrc":"4369:65:53","nodeType":"YulAssignment","src":"4369:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:53","nodeType":"YulIdentifier","src":"4384:5:53"},{"kind":"number","nativeSrc":"4391:42:53","nodeType":"YulLiteral","src":"4391:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4380:3:53","nodeType":"YulIdentifier","src":"4380:3:53"},"nativeSrc":"4380:54:53","nodeType":"YulFunctionCall","src":"4380:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:53","nodeType":"YulIdentifier","src":"4369:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4314:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:53","nodeType":"YulTypedName","src":"4341:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:53","nodeType":"YulTypedName","src":"4351:7:53","type":""}],"src":"4314:126:53"},{"body":{"nativeSrc":"4478:28:53","nodeType":"YulBlock","src":"4478:28:53","statements":[{"nativeSrc":"4488:12:53","nodeType":"YulAssignment","src":"4488:12:53","value":{"name":"value","nativeSrc":"4495:5:53","nodeType":"YulIdentifier","src":"4495:5:53"},"variableNames":[{"name":"ret","nativeSrc":"4488:3:53","nodeType":"YulIdentifier","src":"4488:3:53"}]}]},"name":"identity","nativeSrc":"4446:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4464:5:53","nodeType":"YulTypedName","src":"4464:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4474:3:53","nodeType":"YulTypedName","src":"4474:3:53","type":""}],"src":"4446:60:53"},{"body":{"nativeSrc":"4572:82:53","nodeType":"YulBlock","src":"4572:82:53","statements":[{"nativeSrc":"4582:66:53","nodeType":"YulAssignment","src":"4582:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4640:5:53","nodeType":"YulIdentifier","src":"4640:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4622:17:53","nodeType":"YulIdentifier","src":"4622:17:53"},"nativeSrc":"4622:24:53","nodeType":"YulFunctionCall","src":"4622:24:53"}],"functionName":{"name":"identity","nativeSrc":"4613:8:53","nodeType":"YulIdentifier","src":"4613:8:53"},"nativeSrc":"4613:34:53","nodeType":"YulFunctionCall","src":"4613:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4595:17:53","nodeType":"YulIdentifier","src":"4595:17:53"},"nativeSrc":"4595:53:53","nodeType":"YulFunctionCall","src":"4595:53:53"},"variableNames":[{"name":"converted","nativeSrc":"4582:9:53","nodeType":"YulIdentifier","src":"4582:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4512:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4552:5:53","nodeType":"YulTypedName","src":"4552:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4562:9:53","nodeType":"YulTypedName","src":"4562:9:53","type":""}],"src":"4512:142:53"},{"body":{"nativeSrc":"4720:66:53","nodeType":"YulBlock","src":"4720:66:53","statements":[{"nativeSrc":"4730:50:53","nodeType":"YulAssignment","src":"4730:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4774:5:53","nodeType":"YulIdentifier","src":"4774:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4743:30:53","nodeType":"YulIdentifier","src":"4743:30:53"},"nativeSrc":"4743:37:53","nodeType":"YulFunctionCall","src":"4743:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4730:9:53","nodeType":"YulIdentifier","src":"4730:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"4660:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4700:5:53","nodeType":"YulTypedName","src":"4700:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4710:9:53","nodeType":"YulTypedName","src":"4710:9:53","type":""}],"src":"4660:126:53"},{"body":{"nativeSrc":"4871:66:53","nodeType":"YulBlock","src":"4871:66:53","statements":[{"nativeSrc":"4881:50:53","nodeType":"YulAssignment","src":"4881:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4925:5:53","nodeType":"YulIdentifier","src":"4925:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4894:30:53","nodeType":"YulIdentifier","src":"4894:30:53"},"nativeSrc":"4894:37:53","nodeType":"YulFunctionCall","src":"4894:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4881:9:53","nodeType":"YulIdentifier","src":"4881:9:53"}]}]},"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"4792:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4851:5:53","nodeType":"YulTypedName","src":"4851:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4861:9:53","nodeType":"YulTypedName","src":"4861:9:53","type":""}],"src":"4792:145:53"},{"body":{"nativeSrc":"5027:85:53","nodeType":"YulBlock","src":"5027:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5044:3:53","nodeType":"YulIdentifier","src":"5044:3:53"},{"arguments":[{"name":"value","nativeSrc":"5099:5:53","nodeType":"YulIdentifier","src":"5099:5:53"}],"functionName":{"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"5049:49:53","nodeType":"YulIdentifier","src":"5049:49:53"},"nativeSrc":"5049:56:53","nodeType":"YulFunctionCall","src":"5049:56:53"}],"functionName":{"name":"mstore","nativeSrc":"5037:6:53","nodeType":"YulIdentifier","src":"5037:6:53"},"nativeSrc":"5037:69:53","nodeType":"YulFunctionCall","src":"5037:69:53"},"nativeSrc":"5037:69:53","nodeType":"YulExpressionStatement","src":"5037:69:53"}]},"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"4943:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5015:5:53","nodeType":"YulTypedName","src":"5015:5:53","type":""},{"name":"pos","nativeSrc":"5022:3:53","nodeType":"YulTypedName","src":"5022:3:53","type":""}],"src":"4943:169:53"},{"body":{"nativeSrc":"5235:143:53","nodeType":"YulBlock","src":"5235:143:53","statements":[{"nativeSrc":"5245:26:53","nodeType":"YulAssignment","src":"5245:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5257:9:53","nodeType":"YulIdentifier","src":"5257:9:53"},{"kind":"number","nativeSrc":"5268:2:53","nodeType":"YulLiteral","src":"5268:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5253:3:53","nodeType":"YulIdentifier","src":"5253:3:53"},"nativeSrc":"5253:18:53","nodeType":"YulFunctionCall","src":"5253:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5245:4:53","nodeType":"YulIdentifier","src":"5245:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5344:6:53","nodeType":"YulIdentifier","src":"5344:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5357:9:53","nodeType":"YulIdentifier","src":"5357:9:53"},{"kind":"number","nativeSrc":"5368:1:53","nodeType":"YulLiteral","src":"5368:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5353:3:53","nodeType":"YulIdentifier","src":"5353:3:53"},"nativeSrc":"5353:17:53","nodeType":"YulFunctionCall","src":"5353:17:53"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"5281:62:53","nodeType":"YulIdentifier","src":"5281:62:53"},"nativeSrc":"5281:90:53","nodeType":"YulFunctionCall","src":"5281:90:53"},"nativeSrc":"5281:90:53","nodeType":"YulExpressionStatement","src":"5281:90:53"}]},"name":"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed","nativeSrc":"5118:260:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5207:9:53","nodeType":"YulTypedName","src":"5207:9:53","type":""},{"name":"value0","nativeSrc":"5219:6:53","nodeType":"YulTypedName","src":"5219:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5230:4:53","nodeType":"YulTypedName","src":"5230:4:53","type":""}],"src":"5118:260:53"},{"body":{"nativeSrc":"5429:32:53","nodeType":"YulBlock","src":"5429:32:53","statements":[{"nativeSrc":"5439:16:53","nodeType":"YulAssignment","src":"5439:16:53","value":{"name":"value","nativeSrc":"5450:5:53","nodeType":"YulIdentifier","src":"5450:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5439:7:53","nodeType":"YulIdentifier","src":"5439:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5384:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5411:5:53","nodeType":"YulTypedName","src":"5411:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5421:7:53","nodeType":"YulTypedName","src":"5421:7:53","type":""}],"src":"5384:77:53"},{"body":{"nativeSrc":"5532:53:53","nodeType":"YulBlock","src":"5532:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5549:3:53","nodeType":"YulIdentifier","src":"5549:3:53"},{"arguments":[{"name":"value","nativeSrc":"5572:5:53","nodeType":"YulIdentifier","src":"5572:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5554:17:53","nodeType":"YulIdentifier","src":"5554:17:53"},"nativeSrc":"5554:24:53","nodeType":"YulFunctionCall","src":"5554:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5542:6:53","nodeType":"YulIdentifier","src":"5542:6:53"},"nativeSrc":"5542:37:53","nodeType":"YulFunctionCall","src":"5542:37:53"},"nativeSrc":"5542:37:53","nodeType":"YulExpressionStatement","src":"5542:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5467:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5520:5:53","nodeType":"YulTypedName","src":"5520:5:53","type":""},{"name":"pos","nativeSrc":"5527:3:53","nodeType":"YulTypedName","src":"5527:3:53","type":""}],"src":"5467:118:53"},{"body":{"nativeSrc":"5689:124:53","nodeType":"YulBlock","src":"5689:124:53","statements":[{"nativeSrc":"5699:26:53","nodeType":"YulAssignment","src":"5699:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5711:9:53","nodeType":"YulIdentifier","src":"5711:9:53"},{"kind":"number","nativeSrc":"5722:2:53","nodeType":"YulLiteral","src":"5722:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5707:3:53","nodeType":"YulIdentifier","src":"5707:3:53"},"nativeSrc":"5707:18:53","nodeType":"YulFunctionCall","src":"5707:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5699:4:53","nodeType":"YulIdentifier","src":"5699:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5779:6:53","nodeType":"YulIdentifier","src":"5779:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5792:9:53","nodeType":"YulIdentifier","src":"5792:9:53"},{"kind":"number","nativeSrc":"5803:1:53","nodeType":"YulLiteral","src":"5803:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5788:3:53","nodeType":"YulIdentifier","src":"5788:3:53"},"nativeSrc":"5788:17:53","nodeType":"YulFunctionCall","src":"5788:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5735:43:53","nodeType":"YulIdentifier","src":"5735:43:53"},"nativeSrc":"5735:71:53","nodeType":"YulFunctionCall","src":"5735:71:53"},"nativeSrc":"5735:71:53","nodeType":"YulExpressionStatement","src":"5735:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5591:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5661:9:53","nodeType":"YulTypedName","src":"5661:9:53","type":""},{"name":"value0","nativeSrc":"5673:6:53","nodeType":"YulTypedName","src":"5673:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5684:4:53","nodeType":"YulTypedName","src":"5684:4:53","type":""}],"src":"5591:222:53"},{"body":{"nativeSrc":"5864:51:53","nodeType":"YulBlock","src":"5864:51:53","statements":[{"nativeSrc":"5874:35:53","nodeType":"YulAssignment","src":"5874:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5903:5:53","nodeType":"YulIdentifier","src":"5903:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5885:17:53","nodeType":"YulIdentifier","src":"5885:17:53"},"nativeSrc":"5885:24:53","nodeType":"YulFunctionCall","src":"5885:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5874:7:53","nodeType":"YulIdentifier","src":"5874:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5819:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5846:5:53","nodeType":"YulTypedName","src":"5846:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5856:7:53","nodeType":"YulTypedName","src":"5856:7:53","type":""}],"src":"5819:96:53"},{"body":{"nativeSrc":"5986:53:53","nodeType":"YulBlock","src":"5986:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6003:3:53","nodeType":"YulIdentifier","src":"6003:3:53"},{"arguments":[{"name":"value","nativeSrc":"6026:5:53","nodeType":"YulIdentifier","src":"6026:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6008:17:53","nodeType":"YulIdentifier","src":"6008:17:53"},"nativeSrc":"6008:24:53","nodeType":"YulFunctionCall","src":"6008:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5996:6:53","nodeType":"YulIdentifier","src":"5996:6:53"},"nativeSrc":"5996:37:53","nodeType":"YulFunctionCall","src":"5996:37:53"},"nativeSrc":"5996:37:53","nodeType":"YulExpressionStatement","src":"5996:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5921:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5974:5:53","nodeType":"YulTypedName","src":"5974:5:53","type":""},{"name":"pos","nativeSrc":"5981:3:53","nodeType":"YulTypedName","src":"5981:3:53","type":""}],"src":"5921:118:53"},{"body":{"nativeSrc":"6143:124:53","nodeType":"YulBlock","src":"6143:124:53","statements":[{"nativeSrc":"6153:26:53","nodeType":"YulAssignment","src":"6153:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6165:9:53","nodeType":"YulIdentifier","src":"6165:9:53"},{"kind":"number","nativeSrc":"6176:2:53","nodeType":"YulLiteral","src":"6176:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6161:3:53","nodeType":"YulIdentifier","src":"6161:3:53"},"nativeSrc":"6161:18:53","nodeType":"YulFunctionCall","src":"6161:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6153:4:53","nodeType":"YulIdentifier","src":"6153:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6233:6:53","nodeType":"YulIdentifier","src":"6233:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6246:9:53","nodeType":"YulIdentifier","src":"6246:9:53"},{"kind":"number","nativeSrc":"6257:1:53","nodeType":"YulLiteral","src":"6257:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6242:3:53","nodeType":"YulIdentifier","src":"6242:3:53"},"nativeSrc":"6242:17:53","nodeType":"YulFunctionCall","src":"6242:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6189:43:53","nodeType":"YulIdentifier","src":"6189:43:53"},"nativeSrc":"6189:71:53","nodeType":"YulFunctionCall","src":"6189:71:53"},"nativeSrc":"6189:71:53","nodeType":"YulExpressionStatement","src":"6189:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6045:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6115:9:53","nodeType":"YulTypedName","src":"6115:9:53","type":""},{"name":"value0","nativeSrc":"6127:6:53","nodeType":"YulTypedName","src":"6127:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6138:4:53","nodeType":"YulTypedName","src":"6138:4:53","type":""}],"src":"6045:222:53"},{"body":{"nativeSrc":"6316:79:53","nodeType":"YulBlock","src":"6316:79:53","statements":[{"body":{"nativeSrc":"6373:16:53","nodeType":"YulBlock","src":"6373:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6382:1:53","nodeType":"YulLiteral","src":"6382:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6385:1:53","nodeType":"YulLiteral","src":"6385:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6375:6:53","nodeType":"YulIdentifier","src":"6375:6:53"},"nativeSrc":"6375:12:53","nodeType":"YulFunctionCall","src":"6375:12:53"},"nativeSrc":"6375:12:53","nodeType":"YulExpressionStatement","src":"6375:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6339:5:53","nodeType":"YulIdentifier","src":"6339:5:53"},{"arguments":[{"name":"value","nativeSrc":"6364:5:53","nodeType":"YulIdentifier","src":"6364:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6346:17:53","nodeType":"YulIdentifier","src":"6346:17:53"},"nativeSrc":"6346:24:53","nodeType":"YulFunctionCall","src":"6346:24:53"}],"functionName":{"name":"eq","nativeSrc":"6336:2:53","nodeType":"YulIdentifier","src":"6336:2:53"},"nativeSrc":"6336:35:53","nodeType":"YulFunctionCall","src":"6336:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6329:6:53","nodeType":"YulIdentifier","src":"6329:6:53"},"nativeSrc":"6329:43:53","nodeType":"YulFunctionCall","src":"6329:43:53"},"nativeSrc":"6326:63:53","nodeType":"YulIf","src":"6326:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"6273:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6309:5:53","nodeType":"YulTypedName","src":"6309:5:53","type":""}],"src":"6273:122:53"},{"body":{"nativeSrc":"6453:87:53","nodeType":"YulBlock","src":"6453:87:53","statements":[{"nativeSrc":"6463:29:53","nodeType":"YulAssignment","src":"6463:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6485:6:53","nodeType":"YulIdentifier","src":"6485:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6472:12:53","nodeType":"YulIdentifier","src":"6472:12:53"},"nativeSrc":"6472:20:53","nodeType":"YulFunctionCall","src":"6472:20:53"},"variableNames":[{"name":"value","nativeSrc":"6463:5:53","nodeType":"YulIdentifier","src":"6463:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6528:5:53","nodeType":"YulIdentifier","src":"6528:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6501:26:53","nodeType":"YulIdentifier","src":"6501:26:53"},"nativeSrc":"6501:33:53","nodeType":"YulFunctionCall","src":"6501:33:53"},"nativeSrc":"6501:33:53","nodeType":"YulExpressionStatement","src":"6501:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"6401:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6431:6:53","nodeType":"YulTypedName","src":"6431:6:53","type":""},{"name":"end","nativeSrc":"6439:3:53","nodeType":"YulTypedName","src":"6439:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6447:5:53","nodeType":"YulTypedName","src":"6447:5:53","type":""}],"src":"6401:139:53"},{"body":{"nativeSrc":"6612:263:53","nodeType":"YulBlock","src":"6612:263:53","statements":[{"body":{"nativeSrc":"6658:83:53","nodeType":"YulBlock","src":"6658:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6660:77:53","nodeType":"YulIdentifier","src":"6660:77:53"},"nativeSrc":"6660:79:53","nodeType":"YulFunctionCall","src":"6660:79:53"},"nativeSrc":"6660:79:53","nodeType":"YulExpressionStatement","src":"6660:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6633:7:53","nodeType":"YulIdentifier","src":"6633:7:53"},{"name":"headStart","nativeSrc":"6642:9:53","nodeType":"YulIdentifier","src":"6642:9:53"}],"functionName":{"name":"sub","nativeSrc":"6629:3:53","nodeType":"YulIdentifier","src":"6629:3:53"},"nativeSrc":"6629:23:53","nodeType":"YulFunctionCall","src":"6629:23:53"},{"kind":"number","nativeSrc":"6654:2:53","nodeType":"YulLiteral","src":"6654:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6625:3:53","nodeType":"YulIdentifier","src":"6625:3:53"},"nativeSrc":"6625:32:53","nodeType":"YulFunctionCall","src":"6625:32:53"},"nativeSrc":"6622:119:53","nodeType":"YulIf","src":"6622:119:53"},{"nativeSrc":"6751:117:53","nodeType":"YulBlock","src":"6751:117:53","statements":[{"nativeSrc":"6766:15:53","nodeType":"YulVariableDeclaration","src":"6766:15:53","value":{"kind":"number","nativeSrc":"6780:1:53","nodeType":"YulLiteral","src":"6780:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6770:6:53","nodeType":"YulTypedName","src":"6770:6:53","type":""}]},{"nativeSrc":"6795:63:53","nodeType":"YulAssignment","src":"6795:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6830:9:53","nodeType":"YulIdentifier","src":"6830:9:53"},{"name":"offset","nativeSrc":"6841:6:53","nodeType":"YulIdentifier","src":"6841:6:53"}],"functionName":{"name":"add","nativeSrc":"6826:3:53","nodeType":"YulIdentifier","src":"6826:3:53"},"nativeSrc":"6826:22:53","nodeType":"YulFunctionCall","src":"6826:22:53"},{"name":"dataEnd","nativeSrc":"6850:7:53","nodeType":"YulIdentifier","src":"6850:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6805:20:53","nodeType":"YulIdentifier","src":"6805:20:53"},"nativeSrc":"6805:53:53","nodeType":"YulFunctionCall","src":"6805:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6795:6:53","nodeType":"YulIdentifier","src":"6795:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6546:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6582:9:53","nodeType":"YulTypedName","src":"6582:9:53","type":""},{"name":"dataEnd","nativeSrc":"6593:7:53","nodeType":"YulTypedName","src":"6593:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6605:6:53","nodeType":"YulTypedName","src":"6605:6:53","type":""}],"src":"6546:329:53"},{"body":{"nativeSrc":"6997:193:53","nodeType":"YulBlock","src":"6997:193:53","statements":[{"nativeSrc":"7007:26:53","nodeType":"YulAssignment","src":"7007:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7019:9:53","nodeType":"YulIdentifier","src":"7019:9:53"},{"kind":"number","nativeSrc":"7030:2:53","nodeType":"YulLiteral","src":"7030:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7015:3:53","nodeType":"YulIdentifier","src":"7015:3:53"},"nativeSrc":"7015:18:53","nodeType":"YulFunctionCall","src":"7015:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7007:4:53","nodeType":"YulIdentifier","src":"7007:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7054:9:53","nodeType":"YulIdentifier","src":"7054:9:53"},{"kind":"number","nativeSrc":"7065:1:53","nodeType":"YulLiteral","src":"7065:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7050:3:53","nodeType":"YulIdentifier","src":"7050:3:53"},"nativeSrc":"7050:17:53","nodeType":"YulFunctionCall","src":"7050:17:53"},{"arguments":[{"name":"tail","nativeSrc":"7073:4:53","nodeType":"YulIdentifier","src":"7073:4:53"},{"name":"headStart","nativeSrc":"7079:9:53","nodeType":"YulIdentifier","src":"7079:9:53"}],"functionName":{"name":"sub","nativeSrc":"7069:3:53","nodeType":"YulIdentifier","src":"7069:3:53"},"nativeSrc":"7069:20:53","nodeType":"YulFunctionCall","src":"7069:20:53"}],"functionName":{"name":"mstore","nativeSrc":"7043:6:53","nodeType":"YulIdentifier","src":"7043:6:53"},"nativeSrc":"7043:47:53","nodeType":"YulFunctionCall","src":"7043:47:53"},"nativeSrc":"7043:47:53","nodeType":"YulExpressionStatement","src":"7043:47:53"},{"nativeSrc":"7099:84:53","nodeType":"YulAssignment","src":"7099:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"7169:6:53","nodeType":"YulIdentifier","src":"7169:6:53"},{"name":"tail","nativeSrc":"7178:4:53","nodeType":"YulIdentifier","src":"7178:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7107:61:53","nodeType":"YulIdentifier","src":"7107:61:53"},"nativeSrc":"7107:76:53","nodeType":"YulFunctionCall","src":"7107:76:53"},"variableNames":[{"name":"tail","nativeSrc":"7099:4:53","nodeType":"YulIdentifier","src":"7099:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6881:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6969:9:53","nodeType":"YulTypedName","src":"6969:9:53","type":""},{"name":"value0","nativeSrc":"6981:6:53","nodeType":"YulTypedName","src":"6981:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6992:4:53","nodeType":"YulTypedName","src":"6992:4:53","type":""}],"src":"6881:309:53"},{"body":{"nativeSrc":"7259:52:53","nodeType":"YulBlock","src":"7259:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7276:3:53","nodeType":"YulIdentifier","src":"7276:3:53"},{"arguments":[{"name":"value","nativeSrc":"7298:5:53","nodeType":"YulIdentifier","src":"7298:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"7281:16:53","nodeType":"YulIdentifier","src":"7281:16:53"},"nativeSrc":"7281:23:53","nodeType":"YulFunctionCall","src":"7281:23:53"}],"functionName":{"name":"mstore","nativeSrc":"7269:6:53","nodeType":"YulIdentifier","src":"7269:6:53"},"nativeSrc":"7269:36:53","nodeType":"YulFunctionCall","src":"7269:36:53"},"nativeSrc":"7269:36:53","nodeType":"YulExpressionStatement","src":"7269:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"7196:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7247:5:53","nodeType":"YulTypedName","src":"7247:5:53","type":""},{"name":"pos","nativeSrc":"7254:3:53","nodeType":"YulTypedName","src":"7254:3:53","type":""}],"src":"7196:115:53"},{"body":{"nativeSrc":"7413:122:53","nodeType":"YulBlock","src":"7413:122:53","statements":[{"nativeSrc":"7423:26:53","nodeType":"YulAssignment","src":"7423:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7435:9:53","nodeType":"YulIdentifier","src":"7435:9:53"},{"kind":"number","nativeSrc":"7446:2:53","nodeType":"YulLiteral","src":"7446:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7431:3:53","nodeType":"YulIdentifier","src":"7431:3:53"},"nativeSrc":"7431:18:53","nodeType":"YulFunctionCall","src":"7431:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7423:4:53","nodeType":"YulIdentifier","src":"7423:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7501:6:53","nodeType":"YulIdentifier","src":"7501:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7514:9:53","nodeType":"YulIdentifier","src":"7514:9:53"},{"kind":"number","nativeSrc":"7525:1:53","nodeType":"YulLiteral","src":"7525:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7510:3:53","nodeType":"YulIdentifier","src":"7510:3:53"},"nativeSrc":"7510:17:53","nodeType":"YulFunctionCall","src":"7510:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"7459:41:53","nodeType":"YulIdentifier","src":"7459:41:53"},"nativeSrc":"7459:69:53","nodeType":"YulFunctionCall","src":"7459:69:53"},"nativeSrc":"7459:69:53","nodeType":"YulExpressionStatement","src":"7459:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"7317:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7385:9:53","nodeType":"YulTypedName","src":"7385:9:53","type":""},{"name":"value0","nativeSrc":"7397:6:53","nodeType":"YulTypedName","src":"7397:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7408:4:53","nodeType":"YulTypedName","src":"7408:4:53","type":""}],"src":"7317:218:53"},{"body":{"nativeSrc":"7584:79:53","nodeType":"YulBlock","src":"7584:79:53","statements":[{"body":{"nativeSrc":"7641:16:53","nodeType":"YulBlock","src":"7641:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7650:1:53","nodeType":"YulLiteral","src":"7650:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7653:1:53","nodeType":"YulLiteral","src":"7653:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7643:6:53","nodeType":"YulIdentifier","src":"7643:6:53"},"nativeSrc":"7643:12:53","nodeType":"YulFunctionCall","src":"7643:12:53"},"nativeSrc":"7643:12:53","nodeType":"YulExpressionStatement","src":"7643:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7607:5:53","nodeType":"YulIdentifier","src":"7607:5:53"},{"arguments":[{"name":"value","nativeSrc":"7632:5:53","nodeType":"YulIdentifier","src":"7632:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7614:17:53","nodeType":"YulIdentifier","src":"7614:17:53"},"nativeSrc":"7614:24:53","nodeType":"YulFunctionCall","src":"7614:24:53"}],"functionName":{"name":"eq","nativeSrc":"7604:2:53","nodeType":"YulIdentifier","src":"7604:2:53"},"nativeSrc":"7604:35:53","nodeType":"YulFunctionCall","src":"7604:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7597:6:53","nodeType":"YulIdentifier","src":"7597:6:53"},"nativeSrc":"7597:43:53","nodeType":"YulFunctionCall","src":"7597:43:53"},"nativeSrc":"7594:63:53","nodeType":"YulIf","src":"7594:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"7541:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7577:5:53","nodeType":"YulTypedName","src":"7577:5:53","type":""}],"src":"7541:122:53"},{"body":{"nativeSrc":"7721:87:53","nodeType":"YulBlock","src":"7721:87:53","statements":[{"nativeSrc":"7731:29:53","nodeType":"YulAssignment","src":"7731:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7753:6:53","nodeType":"YulIdentifier","src":"7753:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7740:12:53","nodeType":"YulIdentifier","src":"7740:12:53"},"nativeSrc":"7740:20:53","nodeType":"YulFunctionCall","src":"7740:20:53"},"variableNames":[{"name":"value","nativeSrc":"7731:5:53","nodeType":"YulIdentifier","src":"7731:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7796:5:53","nodeType":"YulIdentifier","src":"7796:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7769:26:53","nodeType":"YulIdentifier","src":"7769:26:53"},"nativeSrc":"7769:33:53","nodeType":"YulFunctionCall","src":"7769:33:53"},"nativeSrc":"7769:33:53","nodeType":"YulExpressionStatement","src":"7769:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"7669:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7699:6:53","nodeType":"YulTypedName","src":"7699:6:53","type":""},{"name":"end","nativeSrc":"7707:3:53","nodeType":"YulTypedName","src":"7707:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7715:5:53","nodeType":"YulTypedName","src":"7715:5:53","type":""}],"src":"7669:139:53"},{"body":{"nativeSrc":"7880:263:53","nodeType":"YulBlock","src":"7880:263:53","statements":[{"body":{"nativeSrc":"7926:83:53","nodeType":"YulBlock","src":"7926:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7928:77:53","nodeType":"YulIdentifier","src":"7928:77:53"},"nativeSrc":"7928:79:53","nodeType":"YulFunctionCall","src":"7928:79:53"},"nativeSrc":"7928:79:53","nodeType":"YulExpressionStatement","src":"7928:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7901:7:53","nodeType":"YulIdentifier","src":"7901:7:53"},{"name":"headStart","nativeSrc":"7910:9:53","nodeType":"YulIdentifier","src":"7910:9:53"}],"functionName":{"name":"sub","nativeSrc":"7897:3:53","nodeType":"YulIdentifier","src":"7897:3:53"},"nativeSrc":"7897:23:53","nodeType":"YulFunctionCall","src":"7897:23:53"},{"kind":"number","nativeSrc":"7922:2:53","nodeType":"YulLiteral","src":"7922:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7893:3:53","nodeType":"YulIdentifier","src":"7893:3:53"},"nativeSrc":"7893:32:53","nodeType":"YulFunctionCall","src":"7893:32:53"},"nativeSrc":"7890:119:53","nodeType":"YulIf","src":"7890:119:53"},{"nativeSrc":"8019:117:53","nodeType":"YulBlock","src":"8019:117:53","statements":[{"nativeSrc":"8034:15:53","nodeType":"YulVariableDeclaration","src":"8034:15:53","value":{"kind":"number","nativeSrc":"8048:1:53","nodeType":"YulLiteral","src":"8048:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8038:6:53","nodeType":"YulTypedName","src":"8038:6:53","type":""}]},{"nativeSrc":"8063:63:53","nodeType":"YulAssignment","src":"8063:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8098:9:53","nodeType":"YulIdentifier","src":"8098:9:53"},{"name":"offset","nativeSrc":"8109:6:53","nodeType":"YulIdentifier","src":"8109:6:53"}],"functionName":{"name":"add","nativeSrc":"8094:3:53","nodeType":"YulIdentifier","src":"8094:3:53"},"nativeSrc":"8094:22:53","nodeType":"YulFunctionCall","src":"8094:22:53"},{"name":"dataEnd","nativeSrc":"8118:7:53","nodeType":"YulIdentifier","src":"8118:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8073:20:53","nodeType":"YulIdentifier","src":"8073:20:53"},"nativeSrc":"8073:53:53","nodeType":"YulFunctionCall","src":"8073:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8063:6:53","nodeType":"YulIdentifier","src":"8063:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7814:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7850:9:53","nodeType":"YulTypedName","src":"7850:9:53","type":""},{"name":"dataEnd","nativeSrc":"7861:7:53","nodeType":"YulTypedName","src":"7861:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7873:6:53","nodeType":"YulTypedName","src":"7873:6:53","type":""}],"src":"7814:329:53"},{"body":{"nativeSrc":"8238:28:53","nodeType":"YulBlock","src":"8238:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8255:1:53","nodeType":"YulLiteral","src":"8255:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8258:1:53","nodeType":"YulLiteral","src":"8258:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8248:6:53","nodeType":"YulIdentifier","src":"8248:6:53"},"nativeSrc":"8248:12:53","nodeType":"YulFunctionCall","src":"8248:12:53"},"nativeSrc":"8248:12:53","nodeType":"YulExpressionStatement","src":"8248:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8149:117:53","nodeType":"YulFunctionDefinition","src":"8149:117:53"},{"body":{"nativeSrc":"8300:152:53","nodeType":"YulBlock","src":"8300:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8317:1:53","nodeType":"YulLiteral","src":"8317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8320:77:53","nodeType":"YulLiteral","src":"8320:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8310:6:53","nodeType":"YulIdentifier","src":"8310:6:53"},"nativeSrc":"8310:88:53","nodeType":"YulFunctionCall","src":"8310:88:53"},"nativeSrc":"8310:88:53","nodeType":"YulExpressionStatement","src":"8310:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8414:1:53","nodeType":"YulLiteral","src":"8414:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8417:4:53","nodeType":"YulLiteral","src":"8417:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8407:6:53","nodeType":"YulIdentifier","src":"8407:6:53"},"nativeSrc":"8407:15:53","nodeType":"YulFunctionCall","src":"8407:15:53"},"nativeSrc":"8407:15:53","nodeType":"YulExpressionStatement","src":"8407:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8438:1:53","nodeType":"YulLiteral","src":"8438:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8441:4:53","nodeType":"YulLiteral","src":"8441:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8431:6:53","nodeType":"YulIdentifier","src":"8431:6:53"},"nativeSrc":"8431:15:53","nodeType":"YulFunctionCall","src":"8431:15:53"},"nativeSrc":"8431:15:53","nodeType":"YulExpressionStatement","src":"8431:15:53"}]},"name":"panic_error_0x41","nativeSrc":"8272:180:53","nodeType":"YulFunctionDefinition","src":"8272:180:53"},{"body":{"nativeSrc":"8501:238:53","nodeType":"YulBlock","src":"8501:238:53","statements":[{"nativeSrc":"8511:58:53","nodeType":"YulVariableDeclaration","src":"8511:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8533:6:53","nodeType":"YulIdentifier","src":"8533:6:53"},{"arguments":[{"name":"size","nativeSrc":"8563:4:53","nodeType":"YulIdentifier","src":"8563:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8541:21:53","nodeType":"YulIdentifier","src":"8541:21:53"},"nativeSrc":"8541:27:53","nodeType":"YulFunctionCall","src":"8541:27:53"}],"functionName":{"name":"add","nativeSrc":"8529:3:53","nodeType":"YulIdentifier","src":"8529:3:53"},"nativeSrc":"8529:40:53","nodeType":"YulFunctionCall","src":"8529:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8515:10:53","nodeType":"YulTypedName","src":"8515:10:53","type":""}]},{"body":{"nativeSrc":"8680:22:53","nodeType":"YulBlock","src":"8680:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8682:16:53","nodeType":"YulIdentifier","src":"8682:16:53"},"nativeSrc":"8682:18:53","nodeType":"YulFunctionCall","src":"8682:18:53"},"nativeSrc":"8682:18:53","nodeType":"YulExpressionStatement","src":"8682:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8623:10:53","nodeType":"YulIdentifier","src":"8623:10:53"},{"kind":"number","nativeSrc":"8635:18:53","nodeType":"YulLiteral","src":"8635:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8620:2:53","nodeType":"YulIdentifier","src":"8620:2:53"},"nativeSrc":"8620:34:53","nodeType":"YulFunctionCall","src":"8620:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8659:10:53","nodeType":"YulIdentifier","src":"8659:10:53"},{"name":"memPtr","nativeSrc":"8671:6:53","nodeType":"YulIdentifier","src":"8671:6:53"}],"functionName":{"name":"lt","nativeSrc":"8656:2:53","nodeType":"YulIdentifier","src":"8656:2:53"},"nativeSrc":"8656:22:53","nodeType":"YulFunctionCall","src":"8656:22:53"}],"functionName":{"name":"or","nativeSrc":"8617:2:53","nodeType":"YulIdentifier","src":"8617:2:53"},"nativeSrc":"8617:62:53","nodeType":"YulFunctionCall","src":"8617:62:53"},"nativeSrc":"8614:88:53","nodeType":"YulIf","src":"8614:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8718:2:53","nodeType":"YulLiteral","src":"8718:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8722:10:53","nodeType":"YulIdentifier","src":"8722:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8711:6:53","nodeType":"YulIdentifier","src":"8711:6:53"},"nativeSrc":"8711:22:53","nodeType":"YulFunctionCall","src":"8711:22:53"},"nativeSrc":"8711:22:53","nodeType":"YulExpressionStatement","src":"8711:22:53"}]},"name":"finalize_allocation","nativeSrc":"8458:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8487:6:53","nodeType":"YulTypedName","src":"8487:6:53","type":""},{"name":"size","nativeSrc":"8495:4:53","nodeType":"YulTypedName","src":"8495:4:53","type":""}],"src":"8458:281:53"},{"body":{"nativeSrc":"8786:88:53","nodeType":"YulBlock","src":"8786:88:53","statements":[{"nativeSrc":"8796:30:53","nodeType":"YulAssignment","src":"8796:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8806:18:53","nodeType":"YulIdentifier","src":"8806:18:53"},"nativeSrc":"8806:20:53","nodeType":"YulFunctionCall","src":"8806:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8796:6:53","nodeType":"YulIdentifier","src":"8796:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8855:6:53","nodeType":"YulIdentifier","src":"8855:6:53"},{"name":"size","nativeSrc":"8863:4:53","nodeType":"YulIdentifier","src":"8863:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8835:19:53","nodeType":"YulIdentifier","src":"8835:19:53"},"nativeSrc":"8835:33:53","nodeType":"YulFunctionCall","src":"8835:33:53"},"nativeSrc":"8835:33:53","nodeType":"YulExpressionStatement","src":"8835:33:53"}]},"name":"allocate_memory","nativeSrc":"8745:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8770:4:53","nodeType":"YulTypedName","src":"8770:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8779:6:53","nodeType":"YulTypedName","src":"8779:6:53","type":""}],"src":"8745:129:53"},{"body":{"nativeSrc":"8969:28:53","nodeType":"YulBlock","src":"8969:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8986:1:53","nodeType":"YulLiteral","src":"8986:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8989:1:53","nodeType":"YulLiteral","src":"8989:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8979:6:53","nodeType":"YulIdentifier","src":"8979:6:53"},"nativeSrc":"8979:12:53","nodeType":"YulFunctionCall","src":"8979:12:53"},"nativeSrc":"8979:12:53","nodeType":"YulExpressionStatement","src":"8979:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8880:117:53","nodeType":"YulFunctionDefinition","src":"8880:117:53"},{"body":{"nativeSrc":"9129:825:53","nodeType":"YulBlock","src":"9129:825:53","statements":[{"body":{"nativeSrc":"9173:83:53","nodeType":"YulBlock","src":"9173:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9175:77:53","nodeType":"YulIdentifier","src":"9175:77:53"},"nativeSrc":"9175:79:53","nodeType":"YulFunctionCall","src":"9175:79:53"},"nativeSrc":"9175:79:53","nodeType":"YulExpressionStatement","src":"9175:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9150:3:53","nodeType":"YulIdentifier","src":"9150:3:53"},{"name":"headStart","nativeSrc":"9155:9:53","nodeType":"YulIdentifier","src":"9155:9:53"}],"functionName":{"name":"sub","nativeSrc":"9146:3:53","nodeType":"YulIdentifier","src":"9146:3:53"},"nativeSrc":"9146:19:53","nodeType":"YulFunctionCall","src":"9146:19:53"},{"kind":"number","nativeSrc":"9167:4:53","nodeType":"YulLiteral","src":"9167:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"9142:3:53","nodeType":"YulIdentifier","src":"9142:3:53"},"nativeSrc":"9142:30:53","nodeType":"YulFunctionCall","src":"9142:30:53"},"nativeSrc":"9139:117:53","nodeType":"YulIf","src":"9139:117:53"},{"nativeSrc":"9265:30:53","nodeType":"YulAssignment","src":"9265:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"9290:4:53","nodeType":"YulLiteral","src":"9290:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"9274:15:53","nodeType":"YulIdentifier","src":"9274:15:53"},"nativeSrc":"9274:21:53","nodeType":"YulFunctionCall","src":"9274:21:53"},"variableNames":[{"name":"value","nativeSrc":"9265:5:53","nodeType":"YulIdentifier","src":"9265:5:53"}]},{"nativeSrc":"9305:153:53","nodeType":"YulBlock","src":"9305:153:53","statements":[{"nativeSrc":"9343:15:53","nodeType":"YulVariableDeclaration","src":"9343:15:53","value":{"kind":"number","nativeSrc":"9357:1:53","nodeType":"YulLiteral","src":"9357:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9347:6:53","nodeType":"YulTypedName","src":"9347:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9383:5:53","nodeType":"YulIdentifier","src":"9383:5:53"},{"kind":"number","nativeSrc":"9390:4:53","nodeType":"YulLiteral","src":"9390:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9379:3:53","nodeType":"YulIdentifier","src":"9379:3:53"},"nativeSrc":"9379:16:53","nodeType":"YulFunctionCall","src":"9379:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9422:9:53","nodeType":"YulIdentifier","src":"9422:9:53"},{"name":"offset","nativeSrc":"9433:6:53","nodeType":"YulIdentifier","src":"9433:6:53"}],"functionName":{"name":"add","nativeSrc":"9418:3:53","nodeType":"YulIdentifier","src":"9418:3:53"},"nativeSrc":"9418:22:53","nodeType":"YulFunctionCall","src":"9418:22:53"},{"name":"end","nativeSrc":"9442:3:53","nodeType":"YulIdentifier","src":"9442:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9397:20:53","nodeType":"YulIdentifier","src":"9397:20:53"},"nativeSrc":"9397:49:53","nodeType":"YulFunctionCall","src":"9397:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9372:6:53","nodeType":"YulIdentifier","src":"9372:6:53"},"nativeSrc":"9372:75:53","nodeType":"YulFunctionCall","src":"9372:75:53"},"nativeSrc":"9372:75:53","nodeType":"YulExpressionStatement","src":"9372:75:53"}]},{"nativeSrc":"9468:153:53","nodeType":"YulBlock","src":"9468:153:53","statements":[{"nativeSrc":"9505:16:53","nodeType":"YulVariableDeclaration","src":"9505:16:53","value":{"kind":"number","nativeSrc":"9519:2:53","nodeType":"YulLiteral","src":"9519:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9509:6:53","nodeType":"YulTypedName","src":"9509:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9546:5:53","nodeType":"YulIdentifier","src":"9546:5:53"},{"kind":"number","nativeSrc":"9553:4:53","nodeType":"YulLiteral","src":"9553:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9542:3:53","nodeType":"YulIdentifier","src":"9542:3:53"},"nativeSrc":"9542:16:53","nodeType":"YulFunctionCall","src":"9542:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9585:9:53","nodeType":"YulIdentifier","src":"9585:9:53"},{"name":"offset","nativeSrc":"9596:6:53","nodeType":"YulIdentifier","src":"9596:6:53"}],"functionName":{"name":"add","nativeSrc":"9581:3:53","nodeType":"YulIdentifier","src":"9581:3:53"},"nativeSrc":"9581:22:53","nodeType":"YulFunctionCall","src":"9581:22:53"},{"name":"end","nativeSrc":"9605:3:53","nodeType":"YulIdentifier","src":"9605:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9560:20:53","nodeType":"YulIdentifier","src":"9560:20:53"},"nativeSrc":"9560:49:53","nodeType":"YulFunctionCall","src":"9560:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9535:6:53","nodeType":"YulIdentifier","src":"9535:6:53"},"nativeSrc":"9535:75:53","nodeType":"YulFunctionCall","src":"9535:75:53"},"nativeSrc":"9535:75:53","nodeType":"YulExpressionStatement","src":"9535:75:53"}]},{"nativeSrc":"9631:154:53","nodeType":"YulBlock","src":"9631:154:53","statements":[{"nativeSrc":"9670:16:53","nodeType":"YulVariableDeclaration","src":"9670:16:53","value":{"kind":"number","nativeSrc":"9684:2:53","nodeType":"YulLiteral","src":"9684:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9674:6:53","nodeType":"YulTypedName","src":"9674:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9711:5:53","nodeType":"YulIdentifier","src":"9711:5:53"},{"kind":"number","nativeSrc":"9718:4:53","nodeType":"YulLiteral","src":"9718:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9707:3:53","nodeType":"YulIdentifier","src":"9707:3:53"},"nativeSrc":"9707:16:53","nodeType":"YulFunctionCall","src":"9707:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9749:9:53","nodeType":"YulIdentifier","src":"9749:9:53"},{"name":"offset","nativeSrc":"9760:6:53","nodeType":"YulIdentifier","src":"9760:6:53"}],"functionName":{"name":"add","nativeSrc":"9745:3:53","nodeType":"YulIdentifier","src":"9745:3:53"},"nativeSrc":"9745:22:53","nodeType":"YulFunctionCall","src":"9745:22:53"},{"name":"end","nativeSrc":"9769:3:53","nodeType":"YulIdentifier","src":"9769:3:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"9725:19:53","nodeType":"YulIdentifier","src":"9725:19:53"},"nativeSrc":"9725:48:53","nodeType":"YulFunctionCall","src":"9725:48:53"}],"functionName":{"name":"mstore","nativeSrc":"9700:6:53","nodeType":"YulIdentifier","src":"9700:6:53"},"nativeSrc":"9700:74:53","nodeType":"YulFunctionCall","src":"9700:74:53"},"nativeSrc":"9700:74:53","nodeType":"YulExpressionStatement","src":"9700:74:53"}]},{"nativeSrc":"9795:152:53","nodeType":"YulBlock","src":"9795:152:53","statements":[{"nativeSrc":"9831:16:53","nodeType":"YulVariableDeclaration","src":"9831:16:53","value":{"kind":"number","nativeSrc":"9845:2:53","nodeType":"YulLiteral","src":"9845:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9835:6:53","nodeType":"YulTypedName","src":"9835:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9872:5:53","nodeType":"YulIdentifier","src":"9872:5:53"},{"kind":"number","nativeSrc":"9879:4:53","nodeType":"YulLiteral","src":"9879:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9868:3:53","nodeType":"YulIdentifier","src":"9868:3:53"},"nativeSrc":"9868:16:53","nodeType":"YulFunctionCall","src":"9868:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9911:9:53","nodeType":"YulIdentifier","src":"9911:9:53"},{"name":"offset","nativeSrc":"9922:6:53","nodeType":"YulIdentifier","src":"9922:6:53"}],"functionName":{"name":"add","nativeSrc":"9907:3:53","nodeType":"YulIdentifier","src":"9907:3:53"},"nativeSrc":"9907:22:53","nodeType":"YulFunctionCall","src":"9907:22:53"},{"name":"end","nativeSrc":"9931:3:53","nodeType":"YulIdentifier","src":"9931:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9886:20:53","nodeType":"YulIdentifier","src":"9886:20:53"},"nativeSrc":"9886:49:53","nodeType":"YulFunctionCall","src":"9886:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9861:6:53","nodeType":"YulIdentifier","src":"9861:6:53"},"nativeSrc":"9861:75:53","nodeType":"YulFunctionCall","src":"9861:75:53"},"nativeSrc":"9861:75:53","nodeType":"YulExpressionStatement","src":"9861:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"9044:910:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9104:9:53","nodeType":"YulTypedName","src":"9104:9:53","type":""},{"name":"end","nativeSrc":"9115:3:53","nodeType":"YulTypedName","src":"9115:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9123:5:53","nodeType":"YulTypedName","src":"9123:5:53","type":""}],"src":"9044:910:53"},{"body":{"nativeSrc":"10056:294:53","nodeType":"YulBlock","src":"10056:294:53","statements":[{"body":{"nativeSrc":"10103:83:53","nodeType":"YulBlock","src":"10103:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10105:77:53","nodeType":"YulIdentifier","src":"10105:77:53"},"nativeSrc":"10105:79:53","nodeType":"YulFunctionCall","src":"10105:79:53"},"nativeSrc":"10105:79:53","nodeType":"YulExpressionStatement","src":"10105:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10077:7:53","nodeType":"YulIdentifier","src":"10077:7:53"},{"name":"headStart","nativeSrc":"10086:9:53","nodeType":"YulIdentifier","src":"10086:9:53"}],"functionName":{"name":"sub","nativeSrc":"10073:3:53","nodeType":"YulIdentifier","src":"10073:3:53"},"nativeSrc":"10073:23:53","nodeType":"YulFunctionCall","src":"10073:23:53"},{"kind":"number","nativeSrc":"10098:3:53","nodeType":"YulLiteral","src":"10098:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10069:3:53","nodeType":"YulIdentifier","src":"10069:3:53"},"nativeSrc":"10069:33:53","nodeType":"YulFunctionCall","src":"10069:33:53"},"nativeSrc":"10066:120:53","nodeType":"YulIf","src":"10066:120:53"},{"nativeSrc":"10196:147:53","nodeType":"YulBlock","src":"10196:147:53","statements":[{"nativeSrc":"10211:15:53","nodeType":"YulVariableDeclaration","src":"10211:15:53","value":{"kind":"number","nativeSrc":"10225:1:53","nodeType":"YulLiteral","src":"10225:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10215:6:53","nodeType":"YulTypedName","src":"10215:6:53","type":""}]},{"nativeSrc":"10240:93:53","nodeType":"YulAssignment","src":"10240:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:53","nodeType":"YulIdentifier","src":"10305:9:53"},{"name":"offset","nativeSrc":"10316:6:53","nodeType":"YulIdentifier","src":"10316:6:53"}],"functionName":{"name":"add","nativeSrc":"10301:3:53","nodeType":"YulIdentifier","src":"10301:3:53"},"nativeSrc":"10301:22:53","nodeType":"YulFunctionCall","src":"10301:22:53"},{"name":"dataEnd","nativeSrc":"10325:7:53","nodeType":"YulIdentifier","src":"10325:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"10250:50:53","nodeType":"YulIdentifier","src":"10250:50:53"},"nativeSrc":"10250:83:53","nodeType":"YulFunctionCall","src":"10250:83:53"},"variableNames":[{"name":"value0","nativeSrc":"10240:6:53","nodeType":"YulIdentifier","src":"10240:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"9960:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10026:9:53","nodeType":"YulTypedName","src":"10026:9:53","type":""},{"name":"dataEnd","nativeSrc":"10037:7:53","nodeType":"YulTypedName","src":"10037:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10049:6:53","nodeType":"YulTypedName","src":"10049:6:53","type":""}],"src":"9960:390:53"},{"body":{"nativeSrc":"10409:51:53","nodeType":"YulBlock","src":"10409:51:53","statements":[{"nativeSrc":"10419:35:53","nodeType":"YulAssignment","src":"10419:35:53","value":{"arguments":[{"name":"value","nativeSrc":"10448:5:53","nodeType":"YulIdentifier","src":"10448:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"10430:17:53","nodeType":"YulIdentifier","src":"10430:17:53"},"nativeSrc":"10430:24:53","nodeType":"YulFunctionCall","src":"10430:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"10419:7:53","nodeType":"YulIdentifier","src":"10419:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"10356:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10391:5:53","nodeType":"YulTypedName","src":"10391:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10401:7:53","nodeType":"YulTypedName","src":"10401:7:53","type":""}],"src":"10356:104:53"},{"body":{"nativeSrc":"10517:87:53","nodeType":"YulBlock","src":"10517:87:53","statements":[{"body":{"nativeSrc":"10582:16:53","nodeType":"YulBlock","src":"10582:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10591:1:53","nodeType":"YulLiteral","src":"10591:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10594:1:53","nodeType":"YulLiteral","src":"10594:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10584:6:53","nodeType":"YulIdentifier","src":"10584:6:53"},"nativeSrc":"10584:12:53","nodeType":"YulFunctionCall","src":"10584:12:53"},"nativeSrc":"10584:12:53","nodeType":"YulExpressionStatement","src":"10584:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10540:5:53","nodeType":"YulIdentifier","src":"10540:5:53"},{"arguments":[{"name":"value","nativeSrc":"10573:5:53","nodeType":"YulIdentifier","src":"10573:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"10547:25:53","nodeType":"YulIdentifier","src":"10547:25:53"},"nativeSrc":"10547:32:53","nodeType":"YulFunctionCall","src":"10547:32:53"}],"functionName":{"name":"eq","nativeSrc":"10537:2:53","nodeType":"YulIdentifier","src":"10537:2:53"},"nativeSrc":"10537:43:53","nodeType":"YulFunctionCall","src":"10537:43:53"}],"functionName":{"name":"iszero","nativeSrc":"10530:6:53","nodeType":"YulIdentifier","src":"10530:6:53"},"nativeSrc":"10530:51:53","nodeType":"YulFunctionCall","src":"10530:51:53"},"nativeSrc":"10527:71:53","nodeType":"YulIf","src":"10527:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"10466:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10510:5:53","nodeType":"YulTypedName","src":"10510:5:53","type":""}],"src":"10466:138:53"},{"body":{"nativeSrc":"10670:95:53","nodeType":"YulBlock","src":"10670:95:53","statements":[{"nativeSrc":"10680:29:53","nodeType":"YulAssignment","src":"10680:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10702:6:53","nodeType":"YulIdentifier","src":"10702:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10689:12:53","nodeType":"YulIdentifier","src":"10689:12:53"},"nativeSrc":"10689:20:53","nodeType":"YulFunctionCall","src":"10689:20:53"},"variableNames":[{"name":"value","nativeSrc":"10680:5:53","nodeType":"YulIdentifier","src":"10680:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10753:5:53","nodeType":"YulIdentifier","src":"10753:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"10718:34:53","nodeType":"YulIdentifier","src":"10718:34:53"},"nativeSrc":"10718:41:53","nodeType":"YulFunctionCall","src":"10718:41:53"},"nativeSrc":"10718:41:53","nodeType":"YulExpressionStatement","src":"10718:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"10610:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10648:6:53","nodeType":"YulTypedName","src":"10648:6:53","type":""},{"name":"end","nativeSrc":"10656:3:53","nodeType":"YulTypedName","src":"10656:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10664:5:53","nodeType":"YulTypedName","src":"10664:5:53","type":""}],"src":"10610:155:53"},{"body":{"nativeSrc":"10860:28:53","nodeType":"YulBlock","src":"10860:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10877:1:53","nodeType":"YulLiteral","src":"10877:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10880:1:53","nodeType":"YulLiteral","src":"10880:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10870:6:53","nodeType":"YulIdentifier","src":"10870:6:53"},"nativeSrc":"10870:12:53","nodeType":"YulFunctionCall","src":"10870:12:53"},"nativeSrc":"10870:12:53","nodeType":"YulExpressionStatement","src":"10870:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10771:117:53","nodeType":"YulFunctionDefinition","src":"10771:117:53"},{"body":{"nativeSrc":"10960:241:53","nodeType":"YulBlock","src":"10960:241:53","statements":[{"body":{"nativeSrc":"11065:22:53","nodeType":"YulBlock","src":"11065:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11067:16:53","nodeType":"YulIdentifier","src":"11067:16:53"},"nativeSrc":"11067:18:53","nodeType":"YulFunctionCall","src":"11067:18:53"},"nativeSrc":"11067:18:53","nodeType":"YulExpressionStatement","src":"11067:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"11037:6:53","nodeType":"YulIdentifier","src":"11037:6:53"},{"kind":"number","nativeSrc":"11045:18:53","nodeType":"YulLiteral","src":"11045:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11034:2:53","nodeType":"YulIdentifier","src":"11034:2:53"},"nativeSrc":"11034:30:53","nodeType":"YulFunctionCall","src":"11034:30:53"},"nativeSrc":"11031:56:53","nodeType":"YulIf","src":"11031:56:53"},{"nativeSrc":"11097:37:53","nodeType":"YulAssignment","src":"11097:37:53","value":{"arguments":[{"name":"length","nativeSrc":"11127:6:53","nodeType":"YulIdentifier","src":"11127:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11105:21:53","nodeType":"YulIdentifier","src":"11105:21:53"},"nativeSrc":"11105:29:53","nodeType":"YulFunctionCall","src":"11105:29:53"},"variableNames":[{"name":"size","nativeSrc":"11097:4:53","nodeType":"YulIdentifier","src":"11097:4:53"}]},{"nativeSrc":"11171:23:53","nodeType":"YulAssignment","src":"11171:23:53","value":{"arguments":[{"name":"size","nativeSrc":"11183:4:53","nodeType":"YulIdentifier","src":"11183:4:53"},{"kind":"number","nativeSrc":"11189:4:53","nodeType":"YulLiteral","src":"11189:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11179:3:53","nodeType":"YulIdentifier","src":"11179:3:53"},"nativeSrc":"11179:15:53","nodeType":"YulFunctionCall","src":"11179:15:53"},"variableNames":[{"name":"size","nativeSrc":"11171:4:53","nodeType":"YulIdentifier","src":"11171:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"10894:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10944:6:53","nodeType":"YulTypedName","src":"10944:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10955:4:53","nodeType":"YulTypedName","src":"10955:4:53","type":""}],"src":"10894:307:53"},{"body":{"nativeSrc":"11271:84:53","nodeType":"YulBlock","src":"11271:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11295:3:53","nodeType":"YulIdentifier","src":"11295:3:53"},{"name":"src","nativeSrc":"11300:3:53","nodeType":"YulIdentifier","src":"11300:3:53"},{"name":"length","nativeSrc":"11305:6:53","nodeType":"YulIdentifier","src":"11305:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"11282:12:53","nodeType":"YulIdentifier","src":"11282:12:53"},"nativeSrc":"11282:30:53","nodeType":"YulFunctionCall","src":"11282:30:53"},"nativeSrc":"11282:30:53","nodeType":"YulExpressionStatement","src":"11282:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11332:3:53","nodeType":"YulIdentifier","src":"11332:3:53"},{"name":"length","nativeSrc":"11337:6:53","nodeType":"YulIdentifier","src":"11337:6:53"}],"functionName":{"name":"add","nativeSrc":"11328:3:53","nodeType":"YulIdentifier","src":"11328:3:53"},"nativeSrc":"11328:16:53","nodeType":"YulFunctionCall","src":"11328:16:53"},{"kind":"number","nativeSrc":"11346:1:53","nodeType":"YulLiteral","src":"11346:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11321:6:53","nodeType":"YulIdentifier","src":"11321:6:53"},"nativeSrc":"11321:27:53","nodeType":"YulFunctionCall","src":"11321:27:53"},"nativeSrc":"11321:27:53","nodeType":"YulExpressionStatement","src":"11321:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11207:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11253:3:53","nodeType":"YulTypedName","src":"11253:3:53","type":""},{"name":"dst","nativeSrc":"11258:3:53","nodeType":"YulTypedName","src":"11258:3:53","type":""},{"name":"length","nativeSrc":"11263:6:53","nodeType":"YulTypedName","src":"11263:6:53","type":""}],"src":"11207:148:53"},{"body":{"nativeSrc":"11444:340:53","nodeType":"YulBlock","src":"11444:340:53","statements":[{"nativeSrc":"11454:74:53","nodeType":"YulAssignment","src":"11454:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11520:6:53","nodeType":"YulIdentifier","src":"11520:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11479:40:53","nodeType":"YulIdentifier","src":"11479:40:53"},"nativeSrc":"11479:48:53","nodeType":"YulFunctionCall","src":"11479:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"11463:15:53","nodeType":"YulIdentifier","src":"11463:15:53"},"nativeSrc":"11463:65:53","nodeType":"YulFunctionCall","src":"11463:65:53"},"variableNames":[{"name":"array","nativeSrc":"11454:5:53","nodeType":"YulIdentifier","src":"11454:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11544:5:53","nodeType":"YulIdentifier","src":"11544:5:53"},{"name":"length","nativeSrc":"11551:6:53","nodeType":"YulIdentifier","src":"11551:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11537:6:53","nodeType":"YulIdentifier","src":"11537:6:53"},"nativeSrc":"11537:21:53","nodeType":"YulFunctionCall","src":"11537:21:53"},"nativeSrc":"11537:21:53","nodeType":"YulExpressionStatement","src":"11537:21:53"},{"nativeSrc":"11567:27:53","nodeType":"YulVariableDeclaration","src":"11567:27:53","value":{"arguments":[{"name":"array","nativeSrc":"11582:5:53","nodeType":"YulIdentifier","src":"11582:5:53"},{"kind":"number","nativeSrc":"11589:4:53","nodeType":"YulLiteral","src":"11589:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11578:3:53","nodeType":"YulIdentifier","src":"11578:3:53"},"nativeSrc":"11578:16:53","nodeType":"YulFunctionCall","src":"11578:16:53"},"variables":[{"name":"dst","nativeSrc":"11571:3:53","nodeType":"YulTypedName","src":"11571:3:53","type":""}]},{"body":{"nativeSrc":"11632:83:53","nodeType":"YulBlock","src":"11632:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"11634:77:53","nodeType":"YulIdentifier","src":"11634:77:53"},"nativeSrc":"11634:79:53","nodeType":"YulFunctionCall","src":"11634:79:53"},"nativeSrc":"11634:79:53","nodeType":"YulExpressionStatement","src":"11634:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11613:3:53","nodeType":"YulIdentifier","src":"11613:3:53"},{"name":"length","nativeSrc":"11618:6:53","nodeType":"YulIdentifier","src":"11618:6:53"}],"functionName":{"name":"add","nativeSrc":"11609:3:53","nodeType":"YulIdentifier","src":"11609:3:53"},"nativeSrc":"11609:16:53","nodeType":"YulFunctionCall","src":"11609:16:53"},{"name":"end","nativeSrc":"11627:3:53","nodeType":"YulIdentifier","src":"11627:3:53"}],"functionName":{"name":"gt","nativeSrc":"11606:2:53","nodeType":"YulIdentifier","src":"11606:2:53"},"nativeSrc":"11606:25:53","nodeType":"YulFunctionCall","src":"11606:25:53"},"nativeSrc":"11603:112:53","nodeType":"YulIf","src":"11603:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"11761:3:53","nodeType":"YulIdentifier","src":"11761:3:53"},{"name":"dst","nativeSrc":"11766:3:53","nodeType":"YulIdentifier","src":"11766:3:53"},{"name":"length","nativeSrc":"11771:6:53","nodeType":"YulIdentifier","src":"11771:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11724:36:53","nodeType":"YulIdentifier","src":"11724:36:53"},"nativeSrc":"11724:54:53","nodeType":"YulFunctionCall","src":"11724:54:53"},"nativeSrc":"11724:54:53","nodeType":"YulExpressionStatement","src":"11724:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"11361:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11417:3:53","nodeType":"YulTypedName","src":"11417:3:53","type":""},{"name":"length","nativeSrc":"11422:6:53","nodeType":"YulTypedName","src":"11422:6:53","type":""},{"name":"end","nativeSrc":"11430:3:53","nodeType":"YulTypedName","src":"11430:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11438:5:53","nodeType":"YulTypedName","src":"11438:5:53","type":""}],"src":"11361:423:53"},{"body":{"nativeSrc":"11864:277:53","nodeType":"YulBlock","src":"11864:277:53","statements":[{"body":{"nativeSrc":"11913:83:53","nodeType":"YulBlock","src":"11913:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11915:77:53","nodeType":"YulIdentifier","src":"11915:77:53"},"nativeSrc":"11915:79:53","nodeType":"YulFunctionCall","src":"11915:79:53"},"nativeSrc":"11915:79:53","nodeType":"YulExpressionStatement","src":"11915:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11892:6:53","nodeType":"YulIdentifier","src":"11892:6:53"},{"kind":"number","nativeSrc":"11900:4:53","nodeType":"YulLiteral","src":"11900:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11888:3:53","nodeType":"YulIdentifier","src":"11888:3:53"},"nativeSrc":"11888:17:53","nodeType":"YulFunctionCall","src":"11888:17:53"},{"name":"end","nativeSrc":"11907:3:53","nodeType":"YulIdentifier","src":"11907:3:53"}],"functionName":{"name":"slt","nativeSrc":"11884:3:53","nodeType":"YulIdentifier","src":"11884:3:53"},"nativeSrc":"11884:27:53","nodeType":"YulFunctionCall","src":"11884:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11877:6:53","nodeType":"YulIdentifier","src":"11877:6:53"},"nativeSrc":"11877:35:53","nodeType":"YulFunctionCall","src":"11877:35:53"},"nativeSrc":"11874:122:53","nodeType":"YulIf","src":"11874:122:53"},{"nativeSrc":"12005:34:53","nodeType":"YulVariableDeclaration","src":"12005:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"12032:6:53","nodeType":"YulIdentifier","src":"12032:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12019:12:53","nodeType":"YulIdentifier","src":"12019:12:53"},"nativeSrc":"12019:20:53","nodeType":"YulFunctionCall","src":"12019:20:53"},"variables":[{"name":"length","nativeSrc":"12009:6:53","nodeType":"YulTypedName","src":"12009:6:53","type":""}]},{"nativeSrc":"12048:87:53","nodeType":"YulAssignment","src":"12048:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12108:6:53","nodeType":"YulIdentifier","src":"12108:6:53"},{"kind":"number","nativeSrc":"12116:4:53","nodeType":"YulLiteral","src":"12116:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12104:3:53","nodeType":"YulIdentifier","src":"12104:3:53"},"nativeSrc":"12104:17:53","nodeType":"YulFunctionCall","src":"12104:17:53"},{"name":"length","nativeSrc":"12123:6:53","nodeType":"YulIdentifier","src":"12123:6:53"},{"name":"end","nativeSrc":"12131:3:53","nodeType":"YulIdentifier","src":"12131:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"12057:46:53","nodeType":"YulIdentifier","src":"12057:46:53"},"nativeSrc":"12057:78:53","nodeType":"YulFunctionCall","src":"12057:78:53"},"variableNames":[{"name":"array","nativeSrc":"12048:5:53","nodeType":"YulIdentifier","src":"12048:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"11803:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11842:6:53","nodeType":"YulTypedName","src":"11842:6:53","type":""},{"name":"end","nativeSrc":"11850:3:53","nodeType":"YulTypedName","src":"11850:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11858:5:53","nodeType":"YulTypedName","src":"11858:5:53","type":""}],"src":"11803:338:53"},{"body":{"nativeSrc":"12247:568:53","nodeType":"YulBlock","src":"12247:568:53","statements":[{"body":{"nativeSrc":"12293:83:53","nodeType":"YulBlock","src":"12293:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12295:77:53","nodeType":"YulIdentifier","src":"12295:77:53"},"nativeSrc":"12295:79:53","nodeType":"YulFunctionCall","src":"12295:79:53"},"nativeSrc":"12295:79:53","nodeType":"YulExpressionStatement","src":"12295:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12268:7:53","nodeType":"YulIdentifier","src":"12268:7:53"},{"name":"headStart","nativeSrc":"12277:9:53","nodeType":"YulIdentifier","src":"12277:9:53"}],"functionName":{"name":"sub","nativeSrc":"12264:3:53","nodeType":"YulIdentifier","src":"12264:3:53"},"nativeSrc":"12264:23:53","nodeType":"YulFunctionCall","src":"12264:23:53"},{"kind":"number","nativeSrc":"12289:2:53","nodeType":"YulLiteral","src":"12289:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12260:3:53","nodeType":"YulIdentifier","src":"12260:3:53"},"nativeSrc":"12260:32:53","nodeType":"YulFunctionCall","src":"12260:32:53"},"nativeSrc":"12257:119:53","nodeType":"YulIf","src":"12257:119:53"},{"nativeSrc":"12386:125:53","nodeType":"YulBlock","src":"12386:125:53","statements":[{"nativeSrc":"12401:15:53","nodeType":"YulVariableDeclaration","src":"12401:15:53","value":{"kind":"number","nativeSrc":"12415:1:53","nodeType":"YulLiteral","src":"12415:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12405:6:53","nodeType":"YulTypedName","src":"12405:6:53","type":""}]},{"nativeSrc":"12430:71:53","nodeType":"YulAssignment","src":"12430:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12473:9:53","nodeType":"YulIdentifier","src":"12473:9:53"},{"name":"offset","nativeSrc":"12484:6:53","nodeType":"YulIdentifier","src":"12484:6:53"}],"functionName":{"name":"add","nativeSrc":"12469:3:53","nodeType":"YulIdentifier","src":"12469:3:53"},"nativeSrc":"12469:22:53","nodeType":"YulFunctionCall","src":"12469:22:53"},{"name":"dataEnd","nativeSrc":"12493:7:53","nodeType":"YulIdentifier","src":"12493:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12440:28:53","nodeType":"YulIdentifier","src":"12440:28:53"},"nativeSrc":"12440:61:53","nodeType":"YulFunctionCall","src":"12440:61:53"},"variableNames":[{"name":"value0","nativeSrc":"12430:6:53","nodeType":"YulIdentifier","src":"12430:6:53"}]}]},{"nativeSrc":"12521:287:53","nodeType":"YulBlock","src":"12521:287:53","statements":[{"nativeSrc":"12536:46:53","nodeType":"YulVariableDeclaration","src":"12536:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12567:9:53","nodeType":"YulIdentifier","src":"12567:9:53"},{"kind":"number","nativeSrc":"12578:2:53","nodeType":"YulLiteral","src":"12578:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12563:3:53","nodeType":"YulIdentifier","src":"12563:3:53"},"nativeSrc":"12563:18:53","nodeType":"YulFunctionCall","src":"12563:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12550:12:53","nodeType":"YulIdentifier","src":"12550:12:53"},"nativeSrc":"12550:32:53","nodeType":"YulFunctionCall","src":"12550:32:53"},"variables":[{"name":"offset","nativeSrc":"12540:6:53","nodeType":"YulTypedName","src":"12540:6:53","type":""}]},{"body":{"nativeSrc":"12629:83:53","nodeType":"YulBlock","src":"12629:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12631:77:53","nodeType":"YulIdentifier","src":"12631:77:53"},"nativeSrc":"12631:79:53","nodeType":"YulFunctionCall","src":"12631:79:53"},"nativeSrc":"12631:79:53","nodeType":"YulExpressionStatement","src":"12631:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12601:6:53","nodeType":"YulIdentifier","src":"12601:6:53"},{"kind":"number","nativeSrc":"12609:18:53","nodeType":"YulLiteral","src":"12609:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12598:2:53","nodeType":"YulIdentifier","src":"12598:2:53"},"nativeSrc":"12598:30:53","nodeType":"YulFunctionCall","src":"12598:30:53"},"nativeSrc":"12595:117:53","nodeType":"YulIf","src":"12595:117:53"},{"nativeSrc":"12726:72:53","nodeType":"YulAssignment","src":"12726:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12770:9:53","nodeType":"YulIdentifier","src":"12770:9:53"},{"name":"offset","nativeSrc":"12781:6:53","nodeType":"YulIdentifier","src":"12781:6:53"}],"functionName":{"name":"add","nativeSrc":"12766:3:53","nodeType":"YulIdentifier","src":"12766:3:53"},"nativeSrc":"12766:22:53","nodeType":"YulFunctionCall","src":"12766:22:53"},{"name":"dataEnd","nativeSrc":"12790:7:53","nodeType":"YulIdentifier","src":"12790:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"12736:29:53","nodeType":"YulIdentifier","src":"12736:29:53"},"nativeSrc":"12736:62:53","nodeType":"YulFunctionCall","src":"12736:62:53"},"variableNames":[{"name":"value1","nativeSrc":"12726:6:53","nodeType":"YulIdentifier","src":"12726:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes_memory_ptr","nativeSrc":"12147:668:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12209:9:53","nodeType":"YulTypedName","src":"12209:9:53","type":""},{"name":"dataEnd","nativeSrc":"12220:7:53","nodeType":"YulTypedName","src":"12220:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12232:6:53","nodeType":"YulTypedName","src":"12232:6:53","type":""},{"name":"value1","nativeSrc":"12240:6:53","nodeType":"YulTypedName","src":"12240:6:53","type":""}],"src":"12147:668:53"},{"body":{"nativeSrc":"12877:60:53","nodeType":"YulBlock","src":"12877:60:53","statements":[{"nativeSrc":"12887:11:53","nodeType":"YulAssignment","src":"12887:11:53","value":{"name":"ptr","nativeSrc":"12895:3:53","nodeType":"YulIdentifier","src":"12895:3:53"},"variableNames":[{"name":"data","nativeSrc":"12887:4:53","nodeType":"YulIdentifier","src":"12887:4:53"}]},{"nativeSrc":"12908:22:53","nodeType":"YulAssignment","src":"12908:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"12920:3:53","nodeType":"YulIdentifier","src":"12920:3:53"},{"kind":"number","nativeSrc":"12925:4:53","nodeType":"YulLiteral","src":"12925:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12916:3:53","nodeType":"YulIdentifier","src":"12916:3:53"},"nativeSrc":"12916:14:53","nodeType":"YulFunctionCall","src":"12916:14:53"},"variableNames":[{"name":"data","nativeSrc":"12908:4:53","nodeType":"YulIdentifier","src":"12908:4:53"}]}]},"name":"array_dataslot_t_bytes_memory_ptr","nativeSrc":"12821:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"12864:3:53","nodeType":"YulTypedName","src":"12864:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"12872:4:53","nodeType":"YulTypedName","src":"12872:4:53","type":""}],"src":"12821:116:53"},{"body":{"nativeSrc":"12988:32:53","nodeType":"YulBlock","src":"12988:32:53","statements":[{"nativeSrc":"12998:16:53","nodeType":"YulAssignment","src":"12998:16:53","value":{"name":"value","nativeSrc":"13009:5:53","nodeType":"YulIdentifier","src":"13009:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"12998:7:53","nodeType":"YulIdentifier","src":"12998:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"12943:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12970:5:53","nodeType":"YulTypedName","src":"12970:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12980:7:53","nodeType":"YulTypedName","src":"12980:7:53","type":""}],"src":"12943:77:53"},{"body":{"nativeSrc":"13081:99:53","nodeType":"YulBlock","src":"13081:99:53","statements":[{"nativeSrc":"13092:42:53","nodeType":"YulVariableDeclaration","src":"13092:42:53","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"13129:3:53","nodeType":"YulIdentifier","src":"13129:3:53"}],"functionName":{"name":"mload","nativeSrc":"13123:5:53","nodeType":"YulIdentifier","src":"13123:5:53"},"nativeSrc":"13123:10:53","nodeType":"YulFunctionCall","src":"13123:10:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"13105:17:53","nodeType":"YulIdentifier","src":"13105:17:53"},"nativeSrc":"13105:29:53","nodeType":"YulFunctionCall","src":"13105:29:53"},"variables":[{"name":"value","nativeSrc":"13096:5:53","nodeType":"YulTypedName","src":"13096:5:53","type":""}]},{"nativeSrc":"13144:29:53","nodeType":"YulAssignment","src":"13144:29:53","value":{"name":"value","nativeSrc":"13168:5:53","nodeType":"YulIdentifier","src":"13168:5:53"},"variableNames":[{"name":"returnValue","nativeSrc":"13144:11:53","nodeType":"YulIdentifier","src":"13144:11:53"}]}]},"name":"read_from_memoryt_bytes32","nativeSrc":"13026:154:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13061:3:53","nodeType":"YulTypedName","src":"13061:3:53","type":""}],"returnVariables":[{"name":"returnValue","nativeSrc":"13069:11:53","nodeType":"YulTypedName","src":"13069:11:53","type":""}],"src":"13026:154:53"},{"body":{"nativeSrc":"13239:54:53","nodeType":"YulBlock","src":"13239:54:53","statements":[{"nativeSrc":"13249:37:53","nodeType":"YulAssignment","src":"13249:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"13274:4:53","nodeType":"YulIdentifier","src":"13274:4:53"},{"name":"value","nativeSrc":"13280:5:53","nodeType":"YulIdentifier","src":"13280:5:53"}],"functionName":{"name":"shl","nativeSrc":"13270:3:53","nodeType":"YulIdentifier","src":"13270:3:53"},"nativeSrc":"13270:16:53","nodeType":"YulFunctionCall","src":"13270:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"13249:8:53","nodeType":"YulIdentifier","src":"13249:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"13186:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"13214:4:53","nodeType":"YulTypedName","src":"13214:4:53","type":""},{"name":"value","nativeSrc":"13220:5:53","nodeType":"YulTypedName","src":"13220:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"13230:8:53","nodeType":"YulTypedName","src":"13230:8:53","type":""}],"src":"13186:107:53"},{"body":{"nativeSrc":"13389:504:53","nodeType":"YulBlock","src":"13389:504:53","statements":[{"nativeSrc":"13400:52:53","nodeType":"YulVariableDeclaration","src":"13400:52:53","value":{"arguments":[{"name":"array","nativeSrc":"13446:5:53","nodeType":"YulIdentifier","src":"13446:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13414:31:53","nodeType":"YulIdentifier","src":"13414:31:53"},"nativeSrc":"13414:38:53","nodeType":"YulFunctionCall","src":"13414:38:53"},"variables":[{"name":"length","nativeSrc":"13404:6:53","nodeType":"YulTypedName","src":"13404:6:53","type":""}]},{"nativeSrc":"13461:21:53","nodeType":"YulVariableDeclaration","src":"13461:21:53","value":{"name":"array","nativeSrc":"13477:5:53","nodeType":"YulIdentifier","src":"13477:5:53"},"variables":[{"name":"dataArea","nativeSrc":"13465:8:53","nodeType":"YulTypedName","src":"13465:8:53","type":""}]},{"nativeSrc":"13492:52:53","nodeType":"YulAssignment","src":"13492:52:53","value":{"arguments":[{"name":"array","nativeSrc":"13538:5:53","nodeType":"YulIdentifier","src":"13538:5:53"}],"functionName":{"name":"array_dataslot_t_bytes_memory_ptr","nativeSrc":"13504:33:53","nodeType":"YulIdentifier","src":"13504:33:53"},"nativeSrc":"13504:40:53","nodeType":"YulFunctionCall","src":"13504:40:53"},"variableNames":[{"name":"dataArea","nativeSrc":"13492:8:53","nodeType":"YulIdentifier","src":"13492:8:53"}]},{"nativeSrc":"13554:44:53","nodeType":"YulAssignment","src":"13554:44:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"13589:8:53","nodeType":"YulIdentifier","src":"13589:8:53"}],"functionName":{"name":"read_from_memoryt_bytes32","nativeSrc":"13563:25:53","nodeType":"YulIdentifier","src":"13563:25:53"},"nativeSrc":"13563:35:53","nodeType":"YulFunctionCall","src":"13563:35:53"},"variableNames":[{"name":"value","nativeSrc":"13554:5:53","nodeType":"YulIdentifier","src":"13554:5:53"}]},{"body":{"nativeSrc":"13626:260:53","nodeType":"YulBlock","src":"13626:260:53","statements":[{"nativeSrc":"13640:236:53","nodeType":"YulAssignment","src":"13640:236:53","value":{"arguments":[{"name":"value","nativeSrc":"13670:5:53","nodeType":"YulIdentifier","src":"13670:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13737:1:53","nodeType":"YulLiteral","src":"13737:1:53","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"13744:2:53","nodeType":"YulLiteral","src":"13744:2:53","type":"","value":"32"},{"name":"length","nativeSrc":"13748:6:53","nodeType":"YulIdentifier","src":"13748:6:53"}],"functionName":{"name":"sub","nativeSrc":"13740:3:53","nodeType":"YulIdentifier","src":"13740:3:53"},"nativeSrc":"13740:15:53","nodeType":"YulFunctionCall","src":"13740:15:53"}],"functionName":{"name":"mul","nativeSrc":"13733:3:53","nodeType":"YulIdentifier","src":"13733:3:53"},"nativeSrc":"13733:23:53","nodeType":"YulFunctionCall","src":"13733:23:53"},{"kind":"number","nativeSrc":"13778:66:53","nodeType":"YulLiteral","src":"13778:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"13693:18:53","nodeType":"YulIdentifier","src":"13693:18:53"},"nativeSrc":"13693:169:53","nodeType":"YulFunctionCall","src":"13693:169:53"}],"functionName":{"name":"and","nativeSrc":"13649:3:53","nodeType":"YulIdentifier","src":"13649:3:53"},"nativeSrc":"13649:227:53","nodeType":"YulFunctionCall","src":"13649:227:53"},"variableNames":[{"name":"value","nativeSrc":"13640:5:53","nodeType":"YulIdentifier","src":"13640:5:53"}]}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13614:6:53","nodeType":"YulIdentifier","src":"13614:6:53"},{"kind":"number","nativeSrc":"13622:2:53","nodeType":"YulLiteral","src":"13622:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"13611:2:53","nodeType":"YulIdentifier","src":"13611:2:53"},"nativeSrc":"13611:14:53","nodeType":"YulFunctionCall","src":"13611:14:53"},"nativeSrc":"13608:278:53","nodeType":"YulIf","src":"13608:278:53"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nativeSrc":"13299:594:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"13373:5:53","nodeType":"YulTypedName","src":"13373:5:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13383:5:53","nodeType":"YulTypedName","src":"13383:5:53","type":""}],"src":"13299:594:53"},{"body":{"nativeSrc":"13962:80:53","nodeType":"YulBlock","src":"13962:80:53","statements":[{"nativeSrc":"13972:22:53","nodeType":"YulAssignment","src":"13972:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"13987:6:53","nodeType":"YulIdentifier","src":"13987:6:53"}],"functionName":{"name":"mload","nativeSrc":"13981:5:53","nodeType":"YulIdentifier","src":"13981:5:53"},"nativeSrc":"13981:13:53","nodeType":"YulFunctionCall","src":"13981:13:53"},"variableNames":[{"name":"value","nativeSrc":"13972:5:53","nodeType":"YulIdentifier","src":"13972:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14030:5:53","nodeType":"YulIdentifier","src":"14030:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"14003:26:53","nodeType":"YulIdentifier","src":"14003:26:53"},"nativeSrc":"14003:33:53","nodeType":"YulFunctionCall","src":"14003:33:53"},"nativeSrc":"14003:33:53","nodeType":"YulExpressionStatement","src":"14003:33:53"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"13899:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13940:6:53","nodeType":"YulTypedName","src":"13940:6:53","type":""},{"name":"end","nativeSrc":"13948:3:53","nodeType":"YulTypedName","src":"13948:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13956:5:53","nodeType":"YulTypedName","src":"13956:5:53","type":""}],"src":"13899:143:53"},{"body":{"nativeSrc":"14125:274:53","nodeType":"YulBlock","src":"14125:274:53","statements":[{"body":{"nativeSrc":"14171:83:53","nodeType":"YulBlock","src":"14171:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14173:77:53","nodeType":"YulIdentifier","src":"14173:77:53"},"nativeSrc":"14173:79:53","nodeType":"YulFunctionCall","src":"14173:79:53"},"nativeSrc":"14173:79:53","nodeType":"YulExpressionStatement","src":"14173:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14146:7:53","nodeType":"YulIdentifier","src":"14146:7:53"},{"name":"headStart","nativeSrc":"14155:9:53","nodeType":"YulIdentifier","src":"14155:9:53"}],"functionName":{"name":"sub","nativeSrc":"14142:3:53","nodeType":"YulIdentifier","src":"14142:3:53"},"nativeSrc":"14142:23:53","nodeType":"YulFunctionCall","src":"14142:23:53"},{"kind":"number","nativeSrc":"14167:2:53","nodeType":"YulLiteral","src":"14167:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14138:3:53","nodeType":"YulIdentifier","src":"14138:3:53"},"nativeSrc":"14138:32:53","nodeType":"YulFunctionCall","src":"14138:32:53"},"nativeSrc":"14135:119:53","nodeType":"YulIf","src":"14135:119:53"},{"nativeSrc":"14264:128:53","nodeType":"YulBlock","src":"14264:128:53","statements":[{"nativeSrc":"14279:15:53","nodeType":"YulVariableDeclaration","src":"14279:15:53","value":{"kind":"number","nativeSrc":"14293:1:53","nodeType":"YulLiteral","src":"14293:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14283:6:53","nodeType":"YulTypedName","src":"14283:6:53","type":""}]},{"nativeSrc":"14308:74:53","nodeType":"YulAssignment","src":"14308:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14354:9:53","nodeType":"YulIdentifier","src":"14354:9:53"},{"name":"offset","nativeSrc":"14365:6:53","nodeType":"YulIdentifier","src":"14365:6:53"}],"functionName":{"name":"add","nativeSrc":"14350:3:53","nodeType":"YulIdentifier","src":"14350:3:53"},"nativeSrc":"14350:22:53","nodeType":"YulFunctionCall","src":"14350:22:53"},{"name":"dataEnd","nativeSrc":"14374:7:53","nodeType":"YulIdentifier","src":"14374:7:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"14318:31:53","nodeType":"YulIdentifier","src":"14318:31:53"},"nativeSrc":"14318:64:53","nodeType":"YulFunctionCall","src":"14318:64:53"},"variableNames":[{"name":"value0","nativeSrc":"14308:6:53","nodeType":"YulIdentifier","src":"14308:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14048:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14095:9:53","nodeType":"YulTypedName","src":"14095:9:53","type":""},{"name":"dataEnd","nativeSrc":"14106:7:53","nodeType":"YulTypedName","src":"14106:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14118:6:53","nodeType":"YulTypedName","src":"14118:6:53","type":""}],"src":"14048:351:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Validator_$18282_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$18282_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n // struct ContractAction.InitPayload\n function abi_decode_t_struct$_InitPayload_$12783_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // chainId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // value\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$12783_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function revert_error_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_address_payablet_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_dataslot_t_bytes_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function read_from_memoryt_bytes32(ptr) -> returnValue {\n\n let value := cleanup_t_bytes32(mload(ptr))\n\n returnValue :=\n\n value\n\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value {\n\n let length := array_length_t_bytes_memory_ptr(array)\n let dataArea := array\n\n dataArea := array_dataslot_t_bytes_memory_ptr(array)\n\n value := read_from_memoryt_bytes32(dataArea)\n\n if lt(length, 32) {\n value := and(\n value,\n shift_left_dynamic(\n mul(8, sub(32, length)),\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n )\n )\n }\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"12716":[{"length":32,"start":1148}]},"linkReferences":{},"object":"608060405260043610610108575f3560e01c80639a8a059211610094578063d7768c4711610063578063d7768c4714610309578063ea3d508a14610345578063f04e283e1461036f578063f2fde38b1461038b578063fee81cf4146103a757610108565b80639a8a05921461023d578063bec9527714610267578063c16e50ef146102a3578063d4b83992146102df57610108565b80633fa4f245116100db5780633fa4f245146101ad578063439fab91146101d757806354d1f13d146101ff578063715018a6146102095780638da5cb5b1461021357610108565b806301ffc9a71461010c57806309c5eabe146101485780632569296214610179578063393df8cb14610183575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610d47565b6103e3565b60405161013f9190610d8c565b60405180910390f35b610162600480360381019061015d9190610e06565b6103f4565b604051610170929190610ec1565b60405180910390f35b610181610429565b005b34801561018e575f80fd5b5061019761047a565b6040516101a49190610f69565b60405180910390f35b3480156101b8575f80fd5b506101c161049e565b6040516101ce9190610f9a565b60405180910390f35b3480156101e2575f80fd5b506101fd60048036038101906101f89190610e06565b6104a4565b005b610207610531565b005b61021161056a565b005b34801561021e575f80fd5b5061022761057d565b6040516102349190610fd3565b60405180910390f35b348015610248575f80fd5b506102516105a5565b60405161025e9190610f9a565b60405180910390f35b348015610272575f80fd5b5061028d60048036038101906102889190611016565b6105aa565b60405161029a9190610d8c565b60405180910390f35b3480156102ae575f80fd5b506102c960048036038101906102c49190610e06565b6105c7565b6040516102d69190610d8c565b60405180910390f35b3480156102ea575f80fd5b506102f3610721565b6040516103009190610fd3565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a9190610e06565b610746565b60405161033c9190611041565b60405180910390f35b348015610350575f80fd5b5061035961075a565b6040516103669190611070565b60405180910390f35b610389600480360381019061038491906110b3565b61076d565b005b6103a560048036038101906103a091906110b3565b6107ab565b005b3480156103b2575f80fd5b506103cd60048036038101906103c891906110b3565b6107d4565b6040516103da9190610f9a565b60405180910390f35b5f6103ed826107ed565b9050919050565b5f60606040517fe1ebb83b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610432610866565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6104ad610870565b905080546003825580156104df5760018160011c14303b106104d65763f92ee8a95f526004601cfd5b818160ff1b1b91505b506104f783838101906104f291906111cf565b610899565b801561052c576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105726108b6565b61057b5f6108ed565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f84848101906105d991906112e5565b915091505f816105e890611377565b5f1c90508273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161065d9190610f9a565b602060405180830381865afa158015610678573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069c91906113f1565b73ffffffffffffffffffffffffffffffffffffffff161480156106da575060035f8281526020019081526020015f205f9054906101000a900460ff16155b1561071457600160035f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055506001935050505061071b565b5f93505050505b92915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061075283836109b3565b905092915050565b600160149054906101000a900460e01b81565b6107756108b6565b63389a75e1600c52805f526020600c20805442111561079b57636f5e88185f526004601cfd5b5f8155506107a8816108ed565b50565b6107b36108b6565b8060601b6107c857637448fbae5f526004601cfd5b6107d1816108ed565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061085f575061085e826109d7565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108a1610a50565b6108aa81610a74565b6108b333610af9565b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146108eb576382b429005f526004601cfd5b565b6108f5610bcf565b1561095a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506109b0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b60606109cf600160149054906101000a900460e01b8484610bd3565b905092915050565b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a495750610a4882610bff565b5b9050919050565b5f610a59610870565b90508054600116610a715763d7e6bcf85f526004601cfd5b50565b610a7c610a50565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b610b01610bcf565b15610b79577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b3b57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610bcc565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c715750610c7082610c78565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d2681610cf2565b8114610d30575f80fd5b50565b5f81359050610d4181610d1d565b92915050565b5f60208284031215610d5c57610d5b610cea565b5b5f610d6984828501610d33565b91505092915050565b5f8115159050919050565b610d8681610d72565b82525050565b5f602082019050610d9f5f830184610d7d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610dc657610dc5610da5565b5b8235905067ffffffffffffffff811115610de357610de2610da9565b5b602083019150836001820283011115610dff57610dfe610dad565b5b9250929050565b5f8060208385031215610e1c57610e1b610cea565b5b5f83013567ffffffffffffffff811115610e3957610e38610cee565b5b610e4585828601610db1565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9382610e51565b610e9d8185610e5b565b9350610ead818560208601610e6b565b610eb681610e79565b840191505092915050565b5f604082019050610ed45f830185610d7d565b8181036020830152610ee68184610e89565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f31610f2c610f2784610eef565b610f0e565b610eef565b9050919050565b5f610f4282610f17565b9050919050565b5f610f5382610f38565b9050919050565b610f6381610f49565b82525050565b5f602082019050610f7c5f830184610f5a565b92915050565b5f819050919050565b610f9481610f82565b82525050565b5f602082019050610fad5f830184610f8b565b92915050565b5f610fbd82610eef565b9050919050565b610fcd81610fb3565b82525050565b5f602082019050610fe65f830184610fc4565b92915050565b610ff581610f82565b8114610fff575f80fd5b50565b5f8135905061101081610fec565b92915050565b5f6020828403121561102b5761102a610cea565b5b5f61103884828501611002565b91505092915050565b5f6020820190508181035f8301526110598184610e89565b905092915050565b61106a81610cf2565b82525050565b5f6020820190506110835f830184611061565b92915050565b61109281610fb3565b811461109c575f80fd5b50565b5f813590506110ad81611089565b92915050565b5f602082840312156110c8576110c7610cea565b5b5f6110d58482850161109f565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61111882610e79565b810181811067ffffffffffffffff82111715611137576111366110e2565b5b80604052505050565b5f611149610ce1565b9050611155828261110f565b919050565b5f6080828403121561116f5761116e6110de565b5b6111796080611140565b90505f61118884828501611002565b5f83015250602061119b8482850161109f565b60208301525060406111af84828501610d33565b60408301525060606111c384828501611002565b60608301525092915050565b5f608082840312156111e4576111e3610cea565b5b5f6111f18482850161115a565b91505092915050565b5f61120482610eef565b9050919050565b611214816111fa565b811461121e575f80fd5b50565b5f8135905061122f8161120b565b92915050565b5f80fd5b5f67ffffffffffffffff821115611253576112526110e2565b5b61125c82610e79565b9050602081019050919050565b828183375f83830152505050565b5f61128961128484611239565b611140565b9050828152602081018484840111156112a5576112a4611235565b5b6112b0848285611269565b509392505050565b5f82601f8301126112cc576112cb610da5565b5b81356112dc848260208601611277565b91505092915050565b5f80604083850312156112fb576112fa610cea565b5b5f61130885828601611221565b925050602083013567ffffffffffffffff81111561132957611328610cee565b5b611335858286016112b8565b9150509250929050565b5f819050602082019050919050565b5f819050919050565b5f611362825161134e565b80915050919050565b5f82821b905092915050565b5f61138182610e51565b8261138b8461133f565b905061139681611357565b925060208210156113d6576113d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261136b565b831692505b5050919050565b5f815190506113eb81611089565b92915050565b5f6020828403121561140657611405610cea565b5b5f611413848285016113dd565b9150509291505056fea26469706673582212201eed06d9c91007e2b028d9b47b4370f06ff230572c76ee6cca214af1f4c9bfb464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A8A0592 GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xD7768C47 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A7 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xBEC95277 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x2DF JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x3FA4F245 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x213 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x183 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xD47 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x3F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP3 SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x429 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x197 PUSH2 0x47A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH2 0x49E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CE SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x207 PUSH2 0x531 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x211 PUSH2 0x56A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x251 PUSH2 0x5A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x1016 JUMP JUMPDEST PUSH2 0x5AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29A SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F3 PUSH2 0x721 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x32A SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x746 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0x75A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x366 SWAP2 SWAP1 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x389 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x384 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x76D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7AB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH2 0x3ED DUP3 PUSH2 0x7ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH32 0xE1EBB83B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x432 PUSH2 0x866 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4AD PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4D6 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x4F7 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x11CF JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x52C JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x572 PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x57B PUSH0 PUSH2 0x8ED JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x5D9 SWAP2 SWAP1 PUSH2 0x12E5 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP2 PUSH2 0x5E8 SWAP1 PUSH2 0x1377 JUMP JUMPDEST PUSH0 SHR SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x65D SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x678 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x69C SWAP2 SWAP1 PUSH2 0x13F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x6DA JUMPI POP PUSH1 0x3 PUSH0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x714 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x71B JUMP JUMPDEST PUSH0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x752 DUP4 DUP4 PUSH2 0x9B3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0x775 PUSH2 0x8B6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x79B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x7A8 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7B3 PUSH2 0x8B6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7C8 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7D1 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x85F JUMPI POP PUSH2 0x85E DUP3 PUSH2 0x9D7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0xA50 JUMP JUMPDEST PUSH2 0x8AA DUP2 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x8B3 CALLER PUSH2 0xAF9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x8EB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x8F5 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0x95A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x9B0 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x9CF PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA49 JUMPI POP PUSH2 0xA48 DUP3 PUSH2 0xBFF JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA59 PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0xA71 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA7C PUSH2 0xA50 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xB01 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0xB79 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB3B JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xBCC JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC71 JUMPI POP PUSH2 0xC70 DUP3 PUSH2 0xC78 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD26 DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP2 EQ PUSH2 0xD30 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD41 DUP2 PUSH2 0xD1D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5C JUMPI PUSH2 0xD5B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD86 DUP2 PUSH2 0xD72 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD9F PUSH0 DUP4 ADD DUP5 PUSH2 0xD7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDC6 JUMPI PUSH2 0xDC5 PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDE3 JUMPI PUSH2 0xDE2 PUSH2 0xDA9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xDFF JUMPI PUSH2 0xDFE PUSH2 0xDAD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1C JUMPI PUSH2 0xE1B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE38 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0xE45 DUP6 DUP3 DUP7 ADD PUSH2 0xDB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE93 DUP3 PUSH2 0xE51 JUMP JUMPDEST PUSH2 0xE9D DUP2 DUP6 PUSH2 0xE5B JUMP JUMPDEST SWAP4 POP PUSH2 0xEAD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE6B JUMP JUMPDEST PUSH2 0xEB6 DUP2 PUSH2 0xE79 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xED4 PUSH0 DUP4 ADD DUP6 PUSH2 0xD7D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF31 PUSH2 0xF2C PUSH2 0xF27 DUP5 PUSH2 0xEEF JUMP JUMPDEST PUSH2 0xF0E JUMP JUMPDEST PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF42 DUP3 PUSH2 0xF17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF53 DUP3 PUSH2 0xF38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF63 DUP2 PUSH2 0xF49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF7C PUSH0 DUP4 ADD DUP5 PUSH2 0xF5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF94 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFAD PUSH0 DUP4 ADD DUP5 PUSH2 0xF8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFBD DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFCD DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFE6 PUSH0 DUP4 ADD DUP5 PUSH2 0xFC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFF5 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP2 EQ PUSH2 0xFFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1010 DUP2 PUSH2 0xFEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1038 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1059 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x106A DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1083 PUSH0 DUP4 ADD DUP5 PUSH2 0x1061 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1092 DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP2 EQ PUSH2 0x109C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10AD DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10C8 JUMPI PUSH2 0x10C7 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10D5 DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1118 DUP3 PUSH2 0xE79 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1137 JUMPI PUSH2 0x1136 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1149 PUSH2 0xCE1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1155 DUP3 DUP3 PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH2 0x116E PUSH2 0x10DE JUMP JUMPDEST JUMPDEST PUSH2 0x1179 PUSH1 0x80 PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1188 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x119B DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x11AF DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x11C3 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11E4 JUMPI PUSH2 0x11E3 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11F1 DUP5 DUP3 DUP6 ADD PUSH2 0x115A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1204 DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1214 DUP2 PUSH2 0x11FA JUMP JUMPDEST DUP2 EQ PUSH2 0x121E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122F DUP2 PUSH2 0x120B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1253 JUMPI PUSH2 0x1252 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST PUSH2 0x125C DUP3 PUSH2 0xE79 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1289 PUSH2 0x1284 DUP5 PUSH2 0x1239 JUMP JUMPDEST PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x12A5 JUMPI PUSH2 0x12A4 PUSH2 0x1235 JUMP JUMPDEST JUMPDEST PUSH2 0x12B0 DUP5 DUP3 DUP6 PUSH2 0x1269 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12CC JUMPI PUSH2 0x12CB PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12DC DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1277 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12FB JUMPI PUSH2 0x12FA PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1308 DUP6 DUP3 DUP7 ADD PUSH2 0x1221 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1329 JUMPI PUSH2 0x1328 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0x1335 DUP6 DUP3 DUP7 ADD PUSH2 0x12B8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1362 DUP3 MLOAD PUSH2 0x134E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1381 DUP3 PUSH2 0xE51 JUMP JUMPDEST DUP3 PUSH2 0x138B DUP5 PUSH2 0x133F JUMP JUMPDEST SWAP1 POP PUSH2 0x1396 DUP2 PUSH2 0x1357 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x13D6 JUMPI PUSH2 0x13D1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x136B JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EB DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1406 JUMPI PUSH2 0x1405 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1413 DUP5 DUP3 DUP6 ADD PUSH2 0x13DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xED MOD 0xD9 0xC9 LT SMOD 0xE2 0xB0 0x28 0xD9 0xB4 PUSH28 0x4370F06FF230572C76EE6CCA214AF1F4C9BFB464736F6C6343000819 STOP CALLER ","sourceMap":"813:3156:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3630:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2003:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1149:36:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1065:20:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:167:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;814:22:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1006:41:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3161:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;879:21:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2541:127:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;966:22:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3630:170:33;3734:4;3757:36;3781:11;3757:23;:36::i;:::-;3750:43;;3630:170;;;:::o;2003:198::-;2077:12;2091:23;2171;;;;;;;;;;;;;;9021:617:17;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1149:36:31:-;;;:::o;1065:20:32:-;;;;:::o;1576:167:33:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1691:45:33::1;1714:5;;1703:32;;;;;;;:::i;:::-;1691:11;:45::i;:::-;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1576:167:33;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;814:22:32:-;;;;:::o;1006:41:33:-;;;;;;;;;;;;;;;;;;;;;;:::o;3161:433::-;3236:12;3261:14;3277:20;3312:5;;3301:35;;;;;;;:::i;:::-;3260:76;;;;3346:15;3380:7;3372:16;;;:::i;:::-;3364:25;;3346:43;;3439:6;3404:41;;3411:6;;;;;;;;;;;3404:22;;;3427:7;3404:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;;:64;;;;;3450:9;:18;3460:7;3450:18;;;;;;;;;;;;;;;;;;;;;3449:19;3404:64;3400:188;;;3505:4;3484:9;:18;3494:7;3484:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3530:4;3523:11;;;;;;;3400:188;3572:5;3565:12;;;;;3161:433;;;;;:::o;879:21:32:-;;;;;;;;;;;;;:::o;2541:127:33:-;2610:12;2641:20;2655:5;;2641:13;:20::i;:::-;2634:27;;2541:127;;;;:::o;966:22:32:-;;;;;;;;;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1512:208:52:-;1608:4;1646:27;1631:42;;;:11;:42;;;;:82;;;;1677:36;1701:11;1677:23;:36::i;:::-;1631:82;1624:89;;1512:208;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;3806:161:33:-;5662:20:21;:18;:20::i;:::-;3898:24:33::1;3916:5;3898:17;:24::i;:::-;3932:28;3949:10;3932:16;:28::i;:::-;3806:161:::0;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;1744:152:32:-;1821:19;1859:30;1873:8;;;;;;;;;;;1883:5;;1859:13;:30::i;:::-;1852:37;;1744:152;;;;:::o;1749:205:31:-;1845:4;1883:24;1868:39;;;:11;:39;;;;:79;;;;1911:36;1935:11;1911:23;:36::i;:::-;1868:79;1861:86;;1749:205;;;:::o;5764:329:21:-;5826:9;5838:20;:18;:20::i;:::-;5826:32;;5957:1;5951:8;5948:1;5944:16;5934:143;;5993:10;5987:4;5980:24;6058:4;6052;6045:18;5934:143;5920:167;5764:329::o;1902:216:32:-;5662:20:21;:18;:20::i;:::-;2003:5:32::1;:13;;;1993:7;:23;;;;2035:5;:12;;;2026:6;;:21;;;;;;;;;;;;;;;;;;2068:5;:14;;;2057:8;;:25;;;;;;;;;;;;;;;;;;2100:5;:11;;;2092:5;:19;;;;1902:216:::0;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4348:78::-;4412:10;4348:78;:::o;2124:569:32:-;2214:20;2334:16;2331:1;2327:24;2381:4;2375:11;2364:22;;2415:4;2406:7;2399:21;2469:4;2463;2459:15;2450:7;2446:29;2440:4;2433:43;2586:9;2579:4;2570:7;2566:18;2559:37;2660:16;2642;2635:4;2626:7;2622:18;2609:68;2255:432;2124:569;;;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:407::-;4034:4;4072:2;4061:9;4057:18;4049:26;;4085:65;4147:1;4136:9;4132:17;4123:6;4085:65;:::i;:::-;4197:9;4191:4;4187:20;4182:2;4171:9;4167:18;4160:48;4225:76;4296:4;4287:6;4225:76;:::i;:::-;4217:84;;3901:407;;;;;:::o;4314:126::-;4351:7;4391:42;4384:5;4380:54;4369:65;;4314:126;;;:::o;4446:60::-;4474:3;4495:5;4488:12;;4446:60;;;:::o;4512:142::-;4562:9;4595:53;4613:34;4622:24;4640:5;4622:24;:::i;:::-;4613:34;:::i;:::-;4595:53;:::i;:::-;4582:66;;4512:142;;;:::o;4660:126::-;4710:9;4743:37;4774:5;4743:37;:::i;:::-;4730:50;;4660:126;;;:::o;4792:145::-;4861:9;4894:37;4925:5;4894:37;:::i;:::-;4881:50;;4792:145;;;:::o;4943:169::-;5049:56;5099:5;5049:56;:::i;:::-;5044:3;5037:69;4943:169;;:::o;5118:260::-;5230:4;5268:2;5257:9;5253:18;5245:26;;5281:90;5368:1;5357:9;5353:17;5344:6;5281:90;:::i;:::-;5118:260;;;;:::o;5384:77::-;5421:7;5450:5;5439:16;;5384:77;;;:::o;5467:118::-;5554:24;5572:5;5554:24;:::i;:::-;5549:3;5542:37;5467:118;;:::o;5591:222::-;5684:4;5722:2;5711:9;5707:18;5699:26;;5735:71;5803:1;5792:9;5788:17;5779:6;5735:71;:::i;:::-;5591:222;;;;:::o;5819:96::-;5856:7;5885:24;5903:5;5885:24;:::i;:::-;5874:35;;5819:96;;;:::o;5921:118::-;6008:24;6026:5;6008:24;:::i;:::-;6003:3;5996:37;5921:118;;:::o;6045:222::-;6138:4;6176:2;6165:9;6161:18;6153:26;;6189:71;6257:1;6246:9;6242:17;6233:6;6189:71;:::i;:::-;6045:222;;;;:::o;6273:122::-;6346:24;6364:5;6346:24;:::i;:::-;6339:5;6336:35;6326:63;;6385:1;6382;6375:12;6326:63;6273:122;:::o;6401:139::-;6447:5;6485:6;6472:20;6463:29;;6501:33;6528:5;6501:33;:::i;:::-;6401:139;;;;:::o;6546:329::-;6605:6;6654:2;6642:9;6633:7;6629:23;6625:32;6622:119;;;6660:79;;:::i;:::-;6622:119;6780:1;6805:53;6850:7;6841:6;6830:9;6826:22;6805:53;:::i;:::-;6795:63;;6751:117;6546:329;;;;:::o;6881:309::-;6992:4;7030:2;7019:9;7015:18;7007:26;;7079:9;7073:4;7069:20;7065:1;7054:9;7050:17;7043:47;7107:76;7178:4;7169:6;7107:76;:::i;:::-;7099:84;;6881:309;;;;:::o;7196:115::-;7281:23;7298:5;7281:23;:::i;:::-;7276:3;7269:36;7196:115;;:::o;7317:218::-;7408:4;7446:2;7435:9;7431:18;7423:26;;7459:69;7525:1;7514:9;7510:17;7501:6;7459:69;:::i;:::-;7317:218;;;;:::o;7541:122::-;7614:24;7632:5;7614:24;:::i;:::-;7607:5;7604:35;7594:63;;7653:1;7650;7643:12;7594:63;7541:122;:::o;7669:139::-;7715:5;7753:6;7740:20;7731:29;;7769:33;7796:5;7769:33;:::i;:::-;7669:139;;;;:::o;7814:329::-;7873:6;7922:2;7910:9;7901:7;7897:23;7893:32;7890:119;;;7928:79;;:::i;:::-;7890:119;8048:1;8073:53;8118:7;8109:6;8098:9;8094:22;8073:53;:::i;:::-;8063:63;;8019:117;7814:329;;;;:::o;8149:117::-;8258:1;8255;8248:12;8272:180;8320:77;8317:1;8310:88;8417:4;8414:1;8407:15;8441:4;8438:1;8431:15;8458:281;8541:27;8563:4;8541:27;:::i;:::-;8533:6;8529:40;8671:6;8659:10;8656:22;8635:18;8623:10;8620:34;8617:62;8614:88;;;8682:18;;:::i;:::-;8614:88;8722:10;8718:2;8711:22;8501:238;8458:281;;:::o;8745:129::-;8779:6;8806:20;;:::i;:::-;8796:30;;8835:33;8863:4;8855:6;8835:33;:::i;:::-;8745:129;;;:::o;9044:910::-;9123:5;9167:4;9155:9;9150:3;9146:19;9142:30;9139:117;;;9175:79;;:::i;:::-;9139:117;9274:21;9290:4;9274:21;:::i;:::-;9265:30;;9357:1;9397:49;9442:3;9433:6;9422:9;9418:22;9397:49;:::i;:::-;9390:4;9383:5;9379:16;9372:75;9305:153;9519:2;9560:49;9605:3;9596:6;9585:9;9581:22;9560:49;:::i;:::-;9553:4;9546:5;9542:16;9535:75;9468:153;9684:2;9725:48;9769:3;9760:6;9749:9;9745:22;9725:48;:::i;:::-;9718:4;9711:5;9707:16;9700:74;9631:154;9845:2;9886:49;9931:3;9922:6;9911:9;9907:22;9886:49;:::i;:::-;9879:4;9872:5;9868:16;9861:75;9795:152;9044:910;;;;:::o;9960:390::-;10049:6;10098:3;10086:9;10077:7;10073:23;10069:33;10066:120;;;10105:79;;:::i;:::-;10066:120;10225:1;10250:83;10325:7;10316:6;10305:9;10301:22;10250:83;:::i;:::-;10240:93;;10196:147;9960:390;;;;:::o;10356:104::-;10401:7;10430:24;10448:5;10430:24;:::i;:::-;10419:35;;10356:104;;;:::o;10466:138::-;10547:32;10573:5;10547:32;:::i;:::-;10540:5;10537:43;10527:71;;10594:1;10591;10584:12;10527:71;10466:138;:::o;10610:155::-;10664:5;10702:6;10689:20;10680:29;;10718:41;10753:5;10718:41;:::i;:::-;10610:155;;;;:::o;10771:117::-;10880:1;10877;10870:12;10894:307;10955:4;11045:18;11037:6;11034:30;11031:56;;;11067:18;;:::i;:::-;11031:56;11105:29;11127:6;11105:29;:::i;:::-;11097:37;;11189:4;11183;11179:15;11171:23;;10894:307;;;:::o;11207:148::-;11305:6;11300:3;11295;11282:30;11346:1;11337:6;11332:3;11328:16;11321:27;11207:148;;;:::o;11361:423::-;11438:5;11463:65;11479:48;11520:6;11479:48;:::i;:::-;11463:65;:::i;:::-;11454:74;;11551:6;11544:5;11537:21;11589:4;11582:5;11578:16;11627:3;11618:6;11613:3;11609:16;11606:25;11603:112;;;11634:79;;:::i;:::-;11603:112;11724:54;11771:6;11766:3;11761;11724:54;:::i;:::-;11444:340;11361:423;;;;;:::o;11803:338::-;11858:5;11907:3;11900:4;11892:6;11888:17;11884:27;11874:122;;11915:79;;:::i;:::-;11874:122;12032:6;12019:20;12057:78;12131:3;12123:6;12116:4;12108:6;12104:17;12057:78;:::i;:::-;12048:87;;11864:277;11803:338;;;;:::o;12147:668::-;12232:6;12240;12289:2;12277:9;12268:7;12264:23;12260:32;12257:119;;;12295:79;;:::i;:::-;12257:119;12415:1;12440:61;12493:7;12484:6;12473:9;12469:22;12440:61;:::i;:::-;12430:71;;12386:125;12578:2;12567:9;12563:18;12550:32;12609:18;12601:6;12598:30;12595:117;;;12631:79;;:::i;:::-;12595:117;12736:62;12790:7;12781:6;12770:9;12766:22;12736:62;:::i;:::-;12726:72;;12521:287;12147:668;;;;;:::o;12821:116::-;12872:4;12895:3;12887:11;;12925:4;12920:3;12916:14;12908:22;;12821:116;;;:::o;12943:77::-;12980:7;13009:5;12998:16;;12943:77;;;:::o;13026:154::-;13069:11;13105:29;13129:3;13123:10;13105:29;:::i;:::-;13168:5;13144:29;;13081:99;13026:154;;;:::o;13186:107::-;13230:8;13280:5;13274:4;13270:16;13249:37;;13186:107;;;;:::o;13299:594::-;13383:5;13414:38;13446:5;13414:38;:::i;:::-;13477:5;13504:40;13538:5;13504:40;:::i;:::-;13492:52;;13563:35;13589:8;13563:35;:::i;:::-;13554:44;;13622:2;13614:6;13611:14;13608:278;;;13693:169;13778:66;13748:6;13744:2;13740:15;13737:1;13733:23;13693:169;:::i;:::-;13670:5;13649:227;13640:236;;13608:278;13389:504;;13299:594;;;:::o;13899:143::-;13956:5;13987:6;13981:13;13972:22;;14003:33;14030:5;14003:33;:::i;:::-;13899:143;;;;:::o;14048:351::-;14118:6;14167:2;14155:9;14146:7;14142:23;14138:32;14135:119;;;14173:79;;:::i;:::-;14135:119;14293:1;14318:64;14374:7;14365:6;14354:9;14350:22;14318:64;:::i;:::-;14308:74;;14264:128;14048:351;;;;:::o"},"methodIdentifiers":{"VALIDATOR()":"393df8cb","cancelOwnershipHandover()":"54d1f13d","chainId()":"9a8a0592","completeOwnershipHandover(address)":"f04e283e","execute(bytes)":"09c5eabe","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","prepare(bytes)":"d7768c47","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef","validated(uint256)":"bec95277","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecuteNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"validated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The action is expected to be prepared with the data payload for the minting of the tokenThis a minimal generic implementation that should be extended if additional functionality or customizations are requiredIt is expected that the target contract has an externally accessible mint function whose selector\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the call (not used in this implementation)\"},\"returns\":{\"returnData\":\"The return data from the call\",\"success\":\"The success status of the call\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The data payload for the mint action `(address target, bytes4 selector, uint256 value)`\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"prepare(bytes)\":{\"details\":\"Note that the mint value is NOT included in the prepared payload but must be sent with the call\",\"params\":{\"data_\":\"The ABI-encoded payload for the target contract call\"},\"returns\":{\"_0\":\"The encoded payload to be sent to the target contract\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`\",\"params\":{\"data_\":\"The data payload for the action `(address holder, (uint256 tokenId))`\"},\"returns\":{\"success\":\"True if the action has been validated for the user\"}}},\"stateVariables\":{\"validated\":{\"details\":\"This is intended to prevent multiple validations against the same token ID\"}},\"title\":\"ERC721 Mint Action\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"ExecuteNotImplemented()\":[{\"notice\":\"Thrown when the `execute` function is not implemented\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"constructor\":{\"notice\":\"Construct the ERC721 Mint Action\"},\"execute(bytes)\":{\"notice\":\"Execute the action (not yet implemented)\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the owner and the required mint data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"},\"validated(uint256)\":{\"notice\":\"The set of validated tokens\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"notice\":\"A primitive action to mint and/or validate that an ERC721 token has been minted\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/ERC721MintAction.sol\":\"ERC721MintAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/actions/ContractAction.sol\":{\"keccak256\":\"0x1d216cdb7e8011350fd07c8b796235264da51e788701f6be92605277c7b457d5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5198f63609e67be2f9b9660837f9c576aca3ed3af370d39fd53c184aecb3e0e4\",\"dweb:/ipfs/QmYEhsxWWsw12koqkUFLYT8SVexdpPH8hD3Ezh1aHBdmig\"]},\"contracts/actions/ERC721MintAction.sol\":{\"keccak256\":\"0x571450eae6e044c80b531a68e677aa6bc51489ed3fb9892cefa29c04cf9d5a17\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ec0898266404aa6219dd575ca96f727245d5ebe4ac4b400ee9922916381fa91f\",\"dweb:/ipfs/QmVoK8fQCKR8o8N178UDK8Spvi5dB2LVHghaf63WtsP6X9\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/allowlists/AllowList.sol":{"AllowList":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isAllowed(address,bytes)\":{\"params\":{\"data_\":\"The data payload for the authorization check, if applicable\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost AllowList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor to initialize the owner\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Allow List within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/AllowList.sol\":\"AllowList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/allowlists/SimpleAllowList.sol":{"SimpleAllowList":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"inputs":[],"name":"LIST_MANAGER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"allowed_","type":"bool[]"}],"name":"setAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13120":{"entryPoint":null,"id":13120,"parameterSlots":0,"returnSlots":0},"@_13186":{"entryPoint":null,"id":13186,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611311806101b45f395ff3fe608060405260043610610108575f3560e01c8063514e62fc1161009457806398332bbc1161006357806398332bbc146102e8578063e3f756de14610312578063f04e283e1461034e578063f2fde38b1461036a578063fee81cf41461038657610108565b8063514e62fc1461026e57806354d1f13d146102aa578063715018a6146102b45780638da5cb5b146102be57610108565b806325692962116100db57806325692962146101bc5780632de94807146101c65780633abb060414610202578063439fab911461022a5780634a4ee7b11461025257610108565b806301ffc9a71461010c578063183a4f6e146101485780631c10893f146101645780631cd64df414610180575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610c7c565b6103c2565b60405161013f9190610cc1565b60405180910390f35b610162600480360381019061015d9190610d0d565b61043b565b005b61017e60048036038101906101799190610d92565b610448565b005b34801561018b575f80fd5b506101a660048036038101906101a19190610d92565b61045e565b6040516101b39190610cc1565b60405180910390f35b6101c4610474565b005b3480156101d1575f80fd5b506101ec60048036038101906101e79190610dd0565b6104c5565b6040516101f99190610e0a565b60405180910390f35b34801561020d575f80fd5b5061022860048036038101906102239190610ed9565b6104de565b005b348015610235575f80fd5b50610250600480360381019061024b9190610fac565b6105eb565b005b61026c60048036038101906102679190610d92565b610713565b005b348015610279575f80fd5b50610294600480360381019061028f9190610d92565b610729565b6040516102a19190610cc1565b60405180910390f35b6102b2610740565b005b6102bc610779565b005b3480156102c9575f80fd5b506102d261078c565b6040516102df9190611006565b60405180910390f35b3480156102f3575f80fd5b506102fc6107b4565b6040516103099190610e0a565b60405180910390f35b34801561031d575f80fd5b506103386004803603810190610333919061101f565b6107b9565b6040516103459190610cc1565b60405180910390f35b61036860048036038101906103639190610dd0565b61080c565b005b610384600480360381019061037f9190610dd0565b61084a565b005b348015610391575f80fd5b506103ac60048036038101906103a79190610dd0565b610873565b6040516103b99190610e0a565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043457506104338261088c565b5b9050919050565b6104453382610905565b50565b610450610914565b61045a828261094b565b5050565b5f818261046a856104c5565b1614905092915050565b5f61047d61095b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b60026104e981610965565b828290508585905014610528576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156105e3578383828181106105485761054761107c565b5b905060200201602081019061055d91906110d3565b5f808888858181106105725761057161107c565b5b90506020020160208101906105879190610dd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061052a565b505050505050565b5f6105f461098c565b905080546003825580156106265760018160011c14303b1061061d5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906106389190611281565b91509150610645826109b5565b61065082600261094b565b5f5b81518110156106d65760015f808484815181106106725761067161107c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610652565b505050801561070e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b61071b610914565b6107258282610905565b5050565b5f8082610735856104c5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610781610914565b61078a5f610a8b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610814610914565b63389a75e1600c52805f526020600c20805442111561083a57636f5e88185f526004601cfd5b5f81555061084781610a8b565b50565b610852610914565b8060601b61086757637448fbae5f526004601cfd5b61087081610a8b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fe57506108fd82610b51565b5b9050919050565b61091082825f610bba565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610949576382b429005f526004601cfd5b565b61095782826001610bba565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c205416610989576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6109bd610c12565b15610a35577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156109f757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610a88565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610a93610c12565b15610af8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610b4e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b638b78c6d8600c52825f526020600c20805483811783610bdc57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c5b81610c27565b8114610c65575f80fd5b50565b5f81359050610c7681610c52565b92915050565b5f60208284031215610c9157610c90610c1f565b5b5f610c9e84828501610c68565b91505092915050565b5f8115159050919050565b610cbb81610ca7565b82525050565b5f602082019050610cd45f830184610cb2565b92915050565b5f819050919050565b610cec81610cda565b8114610cf6575f80fd5b50565b5f81359050610d0781610ce3565b92915050565b5f60208284031215610d2257610d21610c1f565b5b5f610d2f84828501610cf9565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d6182610d38565b9050919050565b610d7181610d57565b8114610d7b575f80fd5b50565b5f81359050610d8c81610d68565b92915050565b5f8060408385031215610da857610da7610c1f565b5b5f610db585828601610d7e565b9250506020610dc685828601610cf9565b9150509250929050565b5f60208284031215610de557610de4610c1f565b5b5f610df284828501610d7e565b91505092915050565b610e0481610cda565b82525050565b5f602082019050610e1d5f830184610dfb565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4457610e43610e23565b5b8235905067ffffffffffffffff811115610e6157610e60610e27565b5b602083019150836020820283011115610e7d57610e7c610e2b565b5b9250929050565b5f8083601f840112610e9957610e98610e23565b5b8235905067ffffffffffffffff811115610eb657610eb5610e27565b5b602083019150836020820283011115610ed257610ed1610e2b565b5b9250929050565b5f805f8060408587031215610ef157610ef0610c1f565b5b5f85013567ffffffffffffffff811115610f0e57610f0d610c23565b5b610f1a87828801610e2f565b9450945050602085013567ffffffffffffffff811115610f3d57610f3c610c23565b5b610f4987828801610e84565b925092505092959194509250565b5f8083601f840112610f6c57610f6b610e23565b5b8235905067ffffffffffffffff811115610f8957610f88610e27565b5b602083019150836001820283011115610fa557610fa4610e2b565b5b9250929050565b5f8060208385031215610fc257610fc1610c1f565b5b5f83013567ffffffffffffffff811115610fdf57610fde610c23565b5b610feb85828601610f57565b92509250509250929050565b61100081610d57565b82525050565b5f6020820190506110195f830184610ff7565b92915050565b5f805f6040848603121561103657611035610c1f565b5b5f61104386828701610d7e565b935050602084013567ffffffffffffffff81111561106457611063610c23565b5b61107086828701610f57565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6110b281610ca7565b81146110bc575f80fd5b50565b5f813590506110cd816110a9565b92915050565b5f602082840312156110e8576110e7610c1f565b5b5f6110f5848285016110bf565b91505092915050565b5f61110882610d38565b9050919050565b611118816110fe565b8114611122575f80fd5b50565b5f813590506111338161110f565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61117f82611139565b810181811067ffffffffffffffff8211171561119e5761119d611149565b5b80604052505050565b5f6111b0610c16565b90506111bc8282611176565b919050565b5f67ffffffffffffffff8211156111db576111da611149565b5b602082029050602081019050919050565b5f6111fe6111f9846111c1565b6111a7565b9050808382526020820190506020840283018581111561122157611220610e2b565b5b835b8181101561124a57806112368882610d7e565b845260208401935050602081019050611223565b5050509392505050565b5f82601f83011261126857611267610e23565b5b81356112788482602086016111ec565b91505092915050565b5f806040838503121561129757611296610c1f565b5b5f6112a485828601611125565b925050602083013567ffffffffffffffff8111156112c5576112c4610c23565b5b6112d185828601611254565b915050925092905056fea26469706673582212207bbcb52bcd17b2acb05e964af2f520d69a68d6012efbb2f646861e99ee8e53b264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1311 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x514E62FC GT PUSH2 0x94 JUMPI DUP1 PUSH4 0x98332BBC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x98332BBC EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x386 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x514E62FC EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2BE JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x25692962 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x3ABB0604 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x252 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x180 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xC7C JUMP JUMPDEST PUSH2 0x3C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xD0D JUMP JUMPDEST PUSH2 0x43B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A1 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C4 PUSH2 0x474 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0xED9 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x5EB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x267 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x713 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x729 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B2 PUSH2 0x740 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BC PUSH2 0x779 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D2 PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1006 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x309 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x384 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37F SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x391 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x434 JUMPI POP PUSH2 0x433 DUP3 PUSH2 0x88C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x445 CALLER DUP3 PUSH2 0x905 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x450 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x45A DUP3 DUP3 PUSH2 0x94B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x46A DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47D PUSH2 0x95B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH2 0x4E9 DUP2 PUSH2 0x965 JUMP JUMPDEST DUP3 DUP3 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x528 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP6 DUP6 SWAP1 POP DUP2 LT ISZERO PUSH2 0x5E3 JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x548 JUMPI PUSH2 0x547 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x55D SWAP2 SWAP1 PUSH2 0x10D3 JUMP JUMPDEST PUSH0 DUP1 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x572 JUMPI PUSH2 0x571 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x587 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x52A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5F4 PUSH2 0x98C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61D JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x638 SWAP2 SWAP1 PUSH2 0x1281 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x645 DUP3 PUSH2 0x9B5 JUMP JUMPDEST PUSH2 0x650 DUP3 PUSH1 0x2 PUSH2 0x94B JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x672 JUMPI PUSH2 0x671 PUSH2 0x107C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x652 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x70E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x71B PUSH2 0x914 JUMP JUMPDEST PUSH2 0x725 DUP3 DUP3 PUSH2 0x905 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0x735 DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x781 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x78A PUSH0 PUSH2 0xA8B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x814 PUSH2 0x914 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x83A JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x847 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x852 PUSH2 0x914 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x867 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x870 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8FE JUMPI POP PUSH2 0x8FD DUP3 PUSH2 0xB51 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x910 DUP3 DUP3 PUSH0 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x949 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x957 DUP3 DUP3 PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x989 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9BD PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xA35 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x9F7 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xA88 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xA93 PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xAF8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xB4E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0xBDC JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5B DUP2 PUSH2 0xC27 JUMP JUMPDEST DUP2 EQ PUSH2 0xC65 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC76 DUP2 PUSH2 0xC52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC90 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC9E DUP5 DUP3 DUP6 ADD PUSH2 0xC68 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCBB DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCD4 PUSH0 DUP4 ADD DUP5 PUSH2 0xCB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCEC DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP2 EQ PUSH2 0xCF6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD07 DUP2 PUSH2 0xCE3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD22 JUMPI PUSH2 0xD21 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD2F DUP5 DUP3 DUP6 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xD61 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD71 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP2 EQ PUSH2 0xD7B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD8C DUP2 PUSH2 0xD68 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA8 JUMPI PUSH2 0xDA7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDB5 DUP6 DUP3 DUP7 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC6 DUP6 DUP3 DUP7 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE5 JUMPI PUSH2 0xDE4 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDF2 DUP5 DUP3 DUP6 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE04 DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE1D PUSH0 DUP4 ADD DUP5 PUSH2 0xDFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE44 JUMPI PUSH2 0xE43 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE61 JUMPI PUSH2 0xE60 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE7D JUMPI PUSH2 0xE7C PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE99 JUMPI PUSH2 0xE98 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEB6 JUMPI PUSH2 0xEB5 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xED2 JUMPI PUSH2 0xED1 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xEF1 JUMPI PUSH2 0xEF0 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF1A DUP8 DUP3 DUP9 ADD PUSH2 0xE2F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF3D JUMPI PUSH2 0xF3C PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF49 DUP8 DUP3 DUP9 ADD PUSH2 0xE84 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF6C JUMPI PUSH2 0xF6B PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF88 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFA5 JUMPI PUSH2 0xFA4 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFC2 JUMPI PUSH2 0xFC1 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFDF JUMPI PUSH2 0xFDE PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xFEB DUP6 DUP3 DUP7 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1000 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1019 PUSH0 DUP4 ADD DUP5 PUSH2 0xFF7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1036 JUMPI PUSH2 0x1035 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1043 DUP7 DUP3 DUP8 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1064 JUMPI PUSH2 0x1063 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x1070 DUP7 DUP3 DUP8 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x10B2 DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10CD DUP2 PUSH2 0x10A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10F5 DUP5 DUP3 DUP6 ADD PUSH2 0x10BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1108 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1118 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP2 EQ PUSH2 0x1122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1133 DUP2 PUSH2 0x110F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x117F DUP3 PUSH2 0x1139 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x119E JUMPI PUSH2 0x119D PUSH2 0x1149 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11B0 PUSH2 0xC16 JUMP JUMPDEST SWAP1 POP PUSH2 0x11BC DUP3 DUP3 PUSH2 0x1176 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DB JUMPI PUSH2 0x11DA PUSH2 0x1149 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11FE PUSH2 0x11F9 DUP5 PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0x11A7 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 0x1221 JUMPI PUSH2 0x1220 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x124A JUMPI DUP1 PUSH2 0x1236 DUP9 DUP3 PUSH2 0xD7E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1268 JUMPI PUSH2 0x1267 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1278 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x11EC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1297 JUMPI PUSH2 0x1296 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A4 DUP6 DUP3 DUP7 ADD PUSH2 0x1125 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12C5 JUMPI PUSH2 0x12C4 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x12D1 DUP6 DUP3 DUP7 ADD PUSH2 0x1254 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0xBCB52BCD17B2ACB05E964AF2F520D69A68D6012EFBB2F646861E99EE DUP15 MSTORE8 0xB2 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"399:2116:35:-:0;;;909:53;;;;;;;;;;634:28:34;651:10;634:16;;;:28;;:::i;:::-;933:22:35;:20;;;:22;;:::i;:::-;399:2116;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;399:2116:35:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LIST_MANAGER_ROLE_13173":{"entryPoint":1972,"id":13173,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":2324,"id":6322,"parameterSlots":0,"returnSlots":0},"@_checkRoles_6505":{"entryPoint":2405,"id":6505,"parameterSlots":1,"returnSlots":0},"@_grantRoles_6482":{"entryPoint":2379,"id":6482,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3090,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2444,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2485,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":2395,"id":6333,"parameterSlots":0,"returnSlots":1},"@_removeRoles_6497":{"entryPoint":2309,"id":6497,"parameterSlots":2,"returnSlots":0},"@_setOwner_6316":{"entryPoint":2699,"id":6316,"parameterSlots":1,"returnSlots":0},"@_updateRoles_6467":{"entryPoint":3002,"id":6467,"parameterSlots":3,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1856,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2060,"id":6396,"parameterSlots":1,"returnSlots":0},"@grantRoles_6559":{"entryPoint":1096,"id":6559,"parameterSlots":2,"returnSlots":0},"@hasAllRoles_6636":{"entryPoint":1118,"id":6636,"parameterSlots":2,"returnSlots":1},"@hasAnyRole_6617":{"entryPoint":1833,"id":6617,"parameterSlots":2,"returnSlots":1},"@initialize_13242":{"entryPoint":1515,"id":13242,"parameterSlots":2,"returnSlots":0},"@isAllowed_13258":{"entryPoint":1977,"id":13258,"parameterSlots":3,"returnSlots":1},"@owner_6404":{"entryPoint":1932,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2163,"id":6414,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1913,"id":6361,"parameterSlots":0,"returnSlots":0},"@renounceRoles_6588":{"entryPoint":1083,"id":6588,"parameterSlots":1,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1140,"id":6376,"parameterSlots":0,"returnSlots":0},"@revokeRoles_6575":{"entryPoint":1811,"id":6575,"parameterSlots":2,"returnSlots":0},"@rolesOf_6598":{"entryPoint":1221,"id":6598,"parameterSlots":1,"returnSlots":1},"@setAllowed_13306":{"entryPoint":1246,"id":13306,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13153":{"entryPoint":962,"id":13153,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":2188,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":2897,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":2122,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4588,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3454,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":3631,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4692,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3716,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":4287,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3176,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3927,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":3321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3536,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr":{"entryPoint":4737,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":4127,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3474,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3801,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":4307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3196,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4012,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":3341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4087,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3250,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3579,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4102,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3265,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3594,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4519,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3094,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4545,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":3415,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4350,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3239,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3111,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3384,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3290,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":4470,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":4220,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4425,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3623,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3619,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3627,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3107,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3103,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4409,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3432,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4367,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4265,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3154,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3299,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12549:53","nodeType":"YulBlock","src":"0:12549:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1644:79:53","nodeType":"YulBlock","src":"1644:79:53","statements":[{"body":{"nativeSrc":"1701:16:53","nodeType":"YulBlock","src":"1701:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1710:1:53","nodeType":"YulLiteral","src":"1710:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1713:1:53","nodeType":"YulLiteral","src":"1713:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1703:6:53","nodeType":"YulIdentifier","src":"1703:6:53"},"nativeSrc":"1703:12:53","nodeType":"YulFunctionCall","src":"1703:12:53"},"nativeSrc":"1703:12:53","nodeType":"YulExpressionStatement","src":"1703:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1667:5:53","nodeType":"YulIdentifier","src":"1667:5:53"},{"arguments":[{"name":"value","nativeSrc":"1692:5:53","nodeType":"YulIdentifier","src":"1692:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1674:17:53","nodeType":"YulIdentifier","src":"1674:17:53"},"nativeSrc":"1674:24:53","nodeType":"YulFunctionCall","src":"1674:24:53"}],"functionName":{"name":"eq","nativeSrc":"1664:2:53","nodeType":"YulIdentifier","src":"1664:2:53"},"nativeSrc":"1664:35:53","nodeType":"YulFunctionCall","src":"1664:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1657:6:53","nodeType":"YulIdentifier","src":"1657:6:53"},"nativeSrc":"1657:43:53","nodeType":"YulFunctionCall","src":"1657:43:53"},"nativeSrc":"1654:63:53","nodeType":"YulIf","src":"1654:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"1601:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1637:5:53","nodeType":"YulTypedName","src":"1637:5:53","type":""}],"src":"1601:122:53"},{"body":{"nativeSrc":"1781:87:53","nodeType":"YulBlock","src":"1781:87:53","statements":[{"nativeSrc":"1791:29:53","nodeType":"YulAssignment","src":"1791:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1813:6:53","nodeType":"YulIdentifier","src":"1813:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1800:12:53","nodeType":"YulIdentifier","src":"1800:12:53"},"nativeSrc":"1800:20:53","nodeType":"YulFunctionCall","src":"1800:20:53"},"variableNames":[{"name":"value","nativeSrc":"1791:5:53","nodeType":"YulIdentifier","src":"1791:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1856:5:53","nodeType":"YulIdentifier","src":"1856:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1829:26:53","nodeType":"YulIdentifier","src":"1829:26:53"},"nativeSrc":"1829:33:53","nodeType":"YulFunctionCall","src":"1829:33:53"},"nativeSrc":"1829:33:53","nodeType":"YulExpressionStatement","src":"1829:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"1729:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1759:6:53","nodeType":"YulTypedName","src":"1759:6:53","type":""},{"name":"end","nativeSrc":"1767:3:53","nodeType":"YulTypedName","src":"1767:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1775:5:53","nodeType":"YulTypedName","src":"1775:5:53","type":""}],"src":"1729:139:53"},{"body":{"nativeSrc":"1940:263:53","nodeType":"YulBlock","src":"1940:263:53","statements":[{"body":{"nativeSrc":"1986:83:53","nodeType":"YulBlock","src":"1986:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1988:77:53","nodeType":"YulIdentifier","src":"1988:77:53"},"nativeSrc":"1988:79:53","nodeType":"YulFunctionCall","src":"1988:79:53"},"nativeSrc":"1988:79:53","nodeType":"YulExpressionStatement","src":"1988:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1961:7:53","nodeType":"YulIdentifier","src":"1961:7:53"},{"name":"headStart","nativeSrc":"1970:9:53","nodeType":"YulIdentifier","src":"1970:9:53"}],"functionName":{"name":"sub","nativeSrc":"1957:3:53","nodeType":"YulIdentifier","src":"1957:3:53"},"nativeSrc":"1957:23:53","nodeType":"YulFunctionCall","src":"1957:23:53"},{"kind":"number","nativeSrc":"1982:2:53","nodeType":"YulLiteral","src":"1982:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1953:3:53","nodeType":"YulIdentifier","src":"1953:3:53"},"nativeSrc":"1953:32:53","nodeType":"YulFunctionCall","src":"1953:32:53"},"nativeSrc":"1950:119:53","nodeType":"YulIf","src":"1950:119:53"},{"nativeSrc":"2079:117:53","nodeType":"YulBlock","src":"2079:117:53","statements":[{"nativeSrc":"2094:15:53","nodeType":"YulVariableDeclaration","src":"2094:15:53","value":{"kind":"number","nativeSrc":"2108:1:53","nodeType":"YulLiteral","src":"2108:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2098:6:53","nodeType":"YulTypedName","src":"2098:6:53","type":""}]},{"nativeSrc":"2123:63:53","nodeType":"YulAssignment","src":"2123:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2158:9:53","nodeType":"YulIdentifier","src":"2158:9:53"},{"name":"offset","nativeSrc":"2169:6:53","nodeType":"YulIdentifier","src":"2169:6:53"}],"functionName":{"name":"add","nativeSrc":"2154:3:53","nodeType":"YulIdentifier","src":"2154:3:53"},"nativeSrc":"2154:22:53","nodeType":"YulFunctionCall","src":"2154:22:53"},{"name":"dataEnd","nativeSrc":"2178:7:53","nodeType":"YulIdentifier","src":"2178:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2133:20:53","nodeType":"YulIdentifier","src":"2133:20:53"},"nativeSrc":"2133:53:53","nodeType":"YulFunctionCall","src":"2133:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:53","nodeType":"YulIdentifier","src":"2123:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1874:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1910:9:53","nodeType":"YulTypedName","src":"1910:9:53","type":""},{"name":"dataEnd","nativeSrc":"1921:7:53","nodeType":"YulTypedName","src":"1921:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1933:6:53","nodeType":"YulTypedName","src":"1933:6:53","type":""}],"src":"1874:329:53"},{"body":{"nativeSrc":"2254:81:53","nodeType":"YulBlock","src":"2254:81:53","statements":[{"nativeSrc":"2264:65:53","nodeType":"YulAssignment","src":"2264:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2279:5:53","nodeType":"YulIdentifier","src":"2279:5:53"},{"kind":"number","nativeSrc":"2286:42:53","nodeType":"YulLiteral","src":"2286:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2275:3:53","nodeType":"YulIdentifier","src":"2275:3:53"},"nativeSrc":"2275:54:53","nodeType":"YulFunctionCall","src":"2275:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2264:7:53","nodeType":"YulIdentifier","src":"2264:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2209:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2236:5:53","nodeType":"YulTypedName","src":"2236:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2246:7:53","nodeType":"YulTypedName","src":"2246:7:53","type":""}],"src":"2209:126:53"},{"body":{"nativeSrc":"2386:51:53","nodeType":"YulBlock","src":"2386:51:53","statements":[{"nativeSrc":"2396:35:53","nodeType":"YulAssignment","src":"2396:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2425:5:53","nodeType":"YulIdentifier","src":"2425:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2407:17:53","nodeType":"YulIdentifier","src":"2407:17:53"},"nativeSrc":"2407:24:53","nodeType":"YulFunctionCall","src":"2407:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2396:7:53","nodeType":"YulIdentifier","src":"2396:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2341:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2368:5:53","nodeType":"YulTypedName","src":"2368:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2378:7:53","nodeType":"YulTypedName","src":"2378:7:53","type":""}],"src":"2341:96:53"},{"body":{"nativeSrc":"2486:79:53","nodeType":"YulBlock","src":"2486:79:53","statements":[{"body":{"nativeSrc":"2543:16:53","nodeType":"YulBlock","src":"2543:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2552:1:53","nodeType":"YulLiteral","src":"2552:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2555:1:53","nodeType":"YulLiteral","src":"2555:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2545:6:53","nodeType":"YulIdentifier","src":"2545:6:53"},"nativeSrc":"2545:12:53","nodeType":"YulFunctionCall","src":"2545:12:53"},"nativeSrc":"2545:12:53","nodeType":"YulExpressionStatement","src":"2545:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2509:5:53","nodeType":"YulIdentifier","src":"2509:5:53"},{"arguments":[{"name":"value","nativeSrc":"2534:5:53","nodeType":"YulIdentifier","src":"2534:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2516:17:53","nodeType":"YulIdentifier","src":"2516:17:53"},"nativeSrc":"2516:24:53","nodeType":"YulFunctionCall","src":"2516:24:53"}],"functionName":{"name":"eq","nativeSrc":"2506:2:53","nodeType":"YulIdentifier","src":"2506:2:53"},"nativeSrc":"2506:35:53","nodeType":"YulFunctionCall","src":"2506:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2499:6:53","nodeType":"YulIdentifier","src":"2499:6:53"},"nativeSrc":"2499:43:53","nodeType":"YulFunctionCall","src":"2499:43:53"},"nativeSrc":"2496:63:53","nodeType":"YulIf","src":"2496:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"2443:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2479:5:53","nodeType":"YulTypedName","src":"2479:5:53","type":""}],"src":"2443:122:53"},{"body":{"nativeSrc":"2623:87:53","nodeType":"YulBlock","src":"2623:87:53","statements":[{"nativeSrc":"2633:29:53","nodeType":"YulAssignment","src":"2633:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2655:6:53","nodeType":"YulIdentifier","src":"2655:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2642:12:53","nodeType":"YulIdentifier","src":"2642:12:53"},"nativeSrc":"2642:20:53","nodeType":"YulFunctionCall","src":"2642:20:53"},"variableNames":[{"name":"value","nativeSrc":"2633:5:53","nodeType":"YulIdentifier","src":"2633:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2698:5:53","nodeType":"YulIdentifier","src":"2698:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2671:26:53","nodeType":"YulIdentifier","src":"2671:26:53"},"nativeSrc":"2671:33:53","nodeType":"YulFunctionCall","src":"2671:33:53"},"nativeSrc":"2671:33:53","nodeType":"YulExpressionStatement","src":"2671:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"2571:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2601:6:53","nodeType":"YulTypedName","src":"2601:6:53","type":""},{"name":"end","nativeSrc":"2609:3:53","nodeType":"YulTypedName","src":"2609:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2617:5:53","nodeType":"YulTypedName","src":"2617:5:53","type":""}],"src":"2571:139:53"},{"body":{"nativeSrc":"2799:391:53","nodeType":"YulBlock","src":"2799:391:53","statements":[{"body":{"nativeSrc":"2845:83:53","nodeType":"YulBlock","src":"2845:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2847:77:53","nodeType":"YulIdentifier","src":"2847:77:53"},"nativeSrc":"2847:79:53","nodeType":"YulFunctionCall","src":"2847:79:53"},"nativeSrc":"2847:79:53","nodeType":"YulExpressionStatement","src":"2847:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2820:7:53","nodeType":"YulIdentifier","src":"2820:7:53"},{"name":"headStart","nativeSrc":"2829:9:53","nodeType":"YulIdentifier","src":"2829:9:53"}],"functionName":{"name":"sub","nativeSrc":"2816:3:53","nodeType":"YulIdentifier","src":"2816:3:53"},"nativeSrc":"2816:23:53","nodeType":"YulFunctionCall","src":"2816:23:53"},{"kind":"number","nativeSrc":"2841:2:53","nodeType":"YulLiteral","src":"2841:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2812:3:53","nodeType":"YulIdentifier","src":"2812:3:53"},"nativeSrc":"2812:32:53","nodeType":"YulFunctionCall","src":"2812:32:53"},"nativeSrc":"2809:119:53","nodeType":"YulIf","src":"2809:119:53"},{"nativeSrc":"2938:117:53","nodeType":"YulBlock","src":"2938:117:53","statements":[{"nativeSrc":"2953:15:53","nodeType":"YulVariableDeclaration","src":"2953:15:53","value":{"kind":"number","nativeSrc":"2967:1:53","nodeType":"YulLiteral","src":"2967:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2957:6:53","nodeType":"YulTypedName","src":"2957:6:53","type":""}]},{"nativeSrc":"2982:63:53","nodeType":"YulAssignment","src":"2982:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3017:9:53","nodeType":"YulIdentifier","src":"3017:9:53"},{"name":"offset","nativeSrc":"3028:6:53","nodeType":"YulIdentifier","src":"3028:6:53"}],"functionName":{"name":"add","nativeSrc":"3013:3:53","nodeType":"YulIdentifier","src":"3013:3:53"},"nativeSrc":"3013:22:53","nodeType":"YulFunctionCall","src":"3013:22:53"},{"name":"dataEnd","nativeSrc":"3037:7:53","nodeType":"YulIdentifier","src":"3037:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2992:20:53","nodeType":"YulIdentifier","src":"2992:20:53"},"nativeSrc":"2992:53:53","nodeType":"YulFunctionCall","src":"2992:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2982:6:53","nodeType":"YulIdentifier","src":"2982:6:53"}]}]},{"nativeSrc":"3065:118:53","nodeType":"YulBlock","src":"3065:118:53","statements":[{"nativeSrc":"3080:16:53","nodeType":"YulVariableDeclaration","src":"3080:16:53","value":{"kind":"number","nativeSrc":"3094:2:53","nodeType":"YulLiteral","src":"3094:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3084:6:53","nodeType":"YulTypedName","src":"3084:6:53","type":""}]},{"nativeSrc":"3110:63:53","nodeType":"YulAssignment","src":"3110:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3145:9:53","nodeType":"YulIdentifier","src":"3145:9:53"},{"name":"offset","nativeSrc":"3156:6:53","nodeType":"YulIdentifier","src":"3156:6:53"}],"functionName":{"name":"add","nativeSrc":"3141:3:53","nodeType":"YulIdentifier","src":"3141:3:53"},"nativeSrc":"3141:22:53","nodeType":"YulFunctionCall","src":"3141:22:53"},{"name":"dataEnd","nativeSrc":"3165:7:53","nodeType":"YulIdentifier","src":"3165:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3120:20:53","nodeType":"YulIdentifier","src":"3120:20:53"},"nativeSrc":"3120:53:53","nodeType":"YulFunctionCall","src":"3120:53:53"},"variableNames":[{"name":"value1","nativeSrc":"3110:6:53","nodeType":"YulIdentifier","src":"3110:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2716:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2761:9:53","nodeType":"YulTypedName","src":"2761:9:53","type":""},{"name":"dataEnd","nativeSrc":"2772:7:53","nodeType":"YulTypedName","src":"2772:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2784:6:53","nodeType":"YulTypedName","src":"2784:6:53","type":""},{"name":"value1","nativeSrc":"2792:6:53","nodeType":"YulTypedName","src":"2792:6:53","type":""}],"src":"2716:474:53"},{"body":{"nativeSrc":"3262:263:53","nodeType":"YulBlock","src":"3262:263:53","statements":[{"body":{"nativeSrc":"3308:83:53","nodeType":"YulBlock","src":"3308:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3310:77:53","nodeType":"YulIdentifier","src":"3310:77:53"},"nativeSrc":"3310:79:53","nodeType":"YulFunctionCall","src":"3310:79:53"},"nativeSrc":"3310:79:53","nodeType":"YulExpressionStatement","src":"3310:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3283:7:53","nodeType":"YulIdentifier","src":"3283:7:53"},{"name":"headStart","nativeSrc":"3292:9:53","nodeType":"YulIdentifier","src":"3292:9:53"}],"functionName":{"name":"sub","nativeSrc":"3279:3:53","nodeType":"YulIdentifier","src":"3279:3:53"},"nativeSrc":"3279:23:53","nodeType":"YulFunctionCall","src":"3279:23:53"},{"kind":"number","nativeSrc":"3304:2:53","nodeType":"YulLiteral","src":"3304:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3275:3:53","nodeType":"YulIdentifier","src":"3275:3:53"},"nativeSrc":"3275:32:53","nodeType":"YulFunctionCall","src":"3275:32:53"},"nativeSrc":"3272:119:53","nodeType":"YulIf","src":"3272:119:53"},{"nativeSrc":"3401:117:53","nodeType":"YulBlock","src":"3401:117:53","statements":[{"nativeSrc":"3416:15:53","nodeType":"YulVariableDeclaration","src":"3416:15:53","value":{"kind":"number","nativeSrc":"3430:1:53","nodeType":"YulLiteral","src":"3430:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3420:6:53","nodeType":"YulTypedName","src":"3420:6:53","type":""}]},{"nativeSrc":"3445:63:53","nodeType":"YulAssignment","src":"3445:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3480:9:53","nodeType":"YulIdentifier","src":"3480:9:53"},{"name":"offset","nativeSrc":"3491:6:53","nodeType":"YulIdentifier","src":"3491:6:53"}],"functionName":{"name":"add","nativeSrc":"3476:3:53","nodeType":"YulIdentifier","src":"3476:3:53"},"nativeSrc":"3476:22:53","nodeType":"YulFunctionCall","src":"3476:22:53"},{"name":"dataEnd","nativeSrc":"3500:7:53","nodeType":"YulIdentifier","src":"3500:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3455:20:53","nodeType":"YulIdentifier","src":"3455:20:53"},"nativeSrc":"3455:53:53","nodeType":"YulFunctionCall","src":"3455:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3445:6:53","nodeType":"YulIdentifier","src":"3445:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3196:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3232:9:53","nodeType":"YulTypedName","src":"3232:9:53","type":""},{"name":"dataEnd","nativeSrc":"3243:7:53","nodeType":"YulTypedName","src":"3243:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3255:6:53","nodeType":"YulTypedName","src":"3255:6:53","type":""}],"src":"3196:329:53"},{"body":{"nativeSrc":"3596:53:53","nodeType":"YulBlock","src":"3596:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3613:3:53","nodeType":"YulIdentifier","src":"3613:3:53"},{"arguments":[{"name":"value","nativeSrc":"3636:5:53","nodeType":"YulIdentifier","src":"3636:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3618:17:53","nodeType":"YulIdentifier","src":"3618:17:53"},"nativeSrc":"3618:24:53","nodeType":"YulFunctionCall","src":"3618:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3606:6:53","nodeType":"YulIdentifier","src":"3606:6:53"},"nativeSrc":"3606:37:53","nodeType":"YulFunctionCall","src":"3606:37:53"},"nativeSrc":"3606:37:53","nodeType":"YulExpressionStatement","src":"3606:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3531:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3584:5:53","nodeType":"YulTypedName","src":"3584:5:53","type":""},{"name":"pos","nativeSrc":"3591:3:53","nodeType":"YulTypedName","src":"3591:3:53","type":""}],"src":"3531:118:53"},{"body":{"nativeSrc":"3753:124:53","nodeType":"YulBlock","src":"3753:124:53","statements":[{"nativeSrc":"3763:26:53","nodeType":"YulAssignment","src":"3763:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3775:9:53","nodeType":"YulIdentifier","src":"3775:9:53"},{"kind":"number","nativeSrc":"3786:2:53","nodeType":"YulLiteral","src":"3786:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3771:3:53","nodeType":"YulIdentifier","src":"3771:3:53"},"nativeSrc":"3771:18:53","nodeType":"YulFunctionCall","src":"3771:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3763:4:53","nodeType":"YulIdentifier","src":"3763:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3843:6:53","nodeType":"YulIdentifier","src":"3843:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3856:9:53","nodeType":"YulIdentifier","src":"3856:9:53"},{"kind":"number","nativeSrc":"3867:1:53","nodeType":"YulLiteral","src":"3867:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3852:3:53","nodeType":"YulIdentifier","src":"3852:3:53"},"nativeSrc":"3852:17:53","nodeType":"YulFunctionCall","src":"3852:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3799:43:53","nodeType":"YulIdentifier","src":"3799:43:53"},"nativeSrc":"3799:71:53","nodeType":"YulFunctionCall","src":"3799:71:53"},"nativeSrc":"3799:71:53","nodeType":"YulExpressionStatement","src":"3799:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3655:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3725:9:53","nodeType":"YulTypedName","src":"3725:9:53","type":""},{"name":"value0","nativeSrc":"3737:6:53","nodeType":"YulTypedName","src":"3737:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3748:4:53","nodeType":"YulTypedName","src":"3748:4:53","type":""}],"src":"3655:222:53"},{"body":{"nativeSrc":"3972:28:53","nodeType":"YulBlock","src":"3972:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3989:1:53","nodeType":"YulLiteral","src":"3989:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3992:1:53","nodeType":"YulLiteral","src":"3992:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3982:6:53","nodeType":"YulIdentifier","src":"3982:6:53"},"nativeSrc":"3982:12:53","nodeType":"YulFunctionCall","src":"3982:12:53"},"nativeSrc":"3982:12:53","nodeType":"YulExpressionStatement","src":"3982:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3883:117:53","nodeType":"YulFunctionDefinition","src":"3883:117:53"},{"body":{"nativeSrc":"4095:28:53","nodeType":"YulBlock","src":"4095:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4112:1:53","nodeType":"YulLiteral","src":"4112:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4115:1:53","nodeType":"YulLiteral","src":"4115:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4105:6:53","nodeType":"YulIdentifier","src":"4105:6:53"},"nativeSrc":"4105:12:53","nodeType":"YulFunctionCall","src":"4105:12:53"},"nativeSrc":"4105:12:53","nodeType":"YulExpressionStatement","src":"4105:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4006:117:53","nodeType":"YulFunctionDefinition","src":"4006:117:53"},{"body":{"nativeSrc":"4218:28:53","nodeType":"YulBlock","src":"4218:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4235:1:53","nodeType":"YulLiteral","src":"4235:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4238:1:53","nodeType":"YulLiteral","src":"4238:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4228:6:53","nodeType":"YulIdentifier","src":"4228:6:53"},"nativeSrc":"4228:12:53","nodeType":"YulFunctionCall","src":"4228:12:53"},"nativeSrc":"4228:12:53","nodeType":"YulExpressionStatement","src":"4228:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4129:117:53","nodeType":"YulFunctionDefinition","src":"4129:117:53"},{"body":{"nativeSrc":"4359:478:53","nodeType":"YulBlock","src":"4359:478:53","statements":[{"body":{"nativeSrc":"4408:83:53","nodeType":"YulBlock","src":"4408:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4410:77:53","nodeType":"YulIdentifier","src":"4410:77:53"},"nativeSrc":"4410:79:53","nodeType":"YulFunctionCall","src":"4410:79:53"},"nativeSrc":"4410:79:53","nodeType":"YulExpressionStatement","src":"4410:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4387:6:53","nodeType":"YulIdentifier","src":"4387:6:53"},{"kind":"number","nativeSrc":"4395:4:53","nodeType":"YulLiteral","src":"4395:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4383:3:53","nodeType":"YulIdentifier","src":"4383:3:53"},"nativeSrc":"4383:17:53","nodeType":"YulFunctionCall","src":"4383:17:53"},{"name":"end","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"}],"functionName":{"name":"slt","nativeSrc":"4379:3:53","nodeType":"YulIdentifier","src":"4379:3:53"},"nativeSrc":"4379:27:53","nodeType":"YulFunctionCall","src":"4379:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4372:6:53","nodeType":"YulIdentifier","src":"4372:6:53"},"nativeSrc":"4372:35:53","nodeType":"YulFunctionCall","src":"4372:35:53"},"nativeSrc":"4369:122:53","nodeType":"YulIf","src":"4369:122:53"},{"nativeSrc":"4500:30:53","nodeType":"YulAssignment","src":"4500:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4523:6:53","nodeType":"YulIdentifier","src":"4523:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4510:12:53","nodeType":"YulIdentifier","src":"4510:12:53"},"nativeSrc":"4510:20:53","nodeType":"YulFunctionCall","src":"4510:20:53"},"variableNames":[{"name":"length","nativeSrc":"4500:6:53","nodeType":"YulIdentifier","src":"4500:6:53"}]},{"body":{"nativeSrc":"4573:83:53","nodeType":"YulBlock","src":"4573:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4575:77:53","nodeType":"YulIdentifier","src":"4575:77:53"},"nativeSrc":"4575:79:53","nodeType":"YulFunctionCall","src":"4575:79:53"},"nativeSrc":"4575:79:53","nodeType":"YulExpressionStatement","src":"4575:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4545:6:53","nodeType":"YulIdentifier","src":"4545:6:53"},{"kind":"number","nativeSrc":"4553:18:53","nodeType":"YulLiteral","src":"4553:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4542:2:53","nodeType":"YulIdentifier","src":"4542:2:53"},"nativeSrc":"4542:30:53","nodeType":"YulFunctionCall","src":"4542:30:53"},"nativeSrc":"4539:117:53","nodeType":"YulIf","src":"4539:117:53"},{"nativeSrc":"4665:29:53","nodeType":"YulAssignment","src":"4665:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4681:6:53","nodeType":"YulIdentifier","src":"4681:6:53"},{"kind":"number","nativeSrc":"4689:4:53","nodeType":"YulLiteral","src":"4689:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4677:3:53","nodeType":"YulIdentifier","src":"4677:3:53"},"nativeSrc":"4677:17:53","nodeType":"YulFunctionCall","src":"4677:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4665:8:53","nodeType":"YulIdentifier","src":"4665:8:53"}]},{"body":{"nativeSrc":"4748:83:53","nodeType":"YulBlock","src":"4748:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4750:77:53","nodeType":"YulIdentifier","src":"4750:77:53"},"nativeSrc":"4750:79:53","nodeType":"YulFunctionCall","src":"4750:79:53"},"nativeSrc":"4750:79:53","nodeType":"YulExpressionStatement","src":"4750:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4713:8:53","nodeType":"YulIdentifier","src":"4713:8:53"},{"arguments":[{"name":"length","nativeSrc":"4727:6:53","nodeType":"YulIdentifier","src":"4727:6:53"},{"kind":"number","nativeSrc":"4735:4:53","nodeType":"YulLiteral","src":"4735:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4723:3:53","nodeType":"YulIdentifier","src":"4723:3:53"},"nativeSrc":"4723:17:53","nodeType":"YulFunctionCall","src":"4723:17:53"}],"functionName":{"name":"add","nativeSrc":"4709:3:53","nodeType":"YulIdentifier","src":"4709:3:53"},"nativeSrc":"4709:32:53","nodeType":"YulFunctionCall","src":"4709:32:53"},{"name":"end","nativeSrc":"4743:3:53","nodeType":"YulIdentifier","src":"4743:3:53"}],"functionName":{"name":"gt","nativeSrc":"4706:2:53","nodeType":"YulIdentifier","src":"4706:2:53"},"nativeSrc":"4706:41:53","nodeType":"YulFunctionCall","src":"4706:41:53"},"nativeSrc":"4703:128:53","nodeType":"YulIf","src":"4703:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"4269:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4326:6:53","nodeType":"YulTypedName","src":"4326:6:53","type":""},{"name":"end","nativeSrc":"4334:3:53","nodeType":"YulTypedName","src":"4334:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4342:8:53","nodeType":"YulTypedName","src":"4342:8:53","type":""},{"name":"length","nativeSrc":"4352:6:53","nodeType":"YulTypedName","src":"4352:6:53","type":""}],"src":"4269:568:53"},{"body":{"nativeSrc":"4944:478:53","nodeType":"YulBlock","src":"4944:478:53","statements":[{"body":{"nativeSrc":"4993:83:53","nodeType":"YulBlock","src":"4993:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4995:77:53","nodeType":"YulIdentifier","src":"4995:77:53"},"nativeSrc":"4995:79:53","nodeType":"YulFunctionCall","src":"4995:79:53"},"nativeSrc":"4995:79:53","nodeType":"YulExpressionStatement","src":"4995:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4972:6:53","nodeType":"YulIdentifier","src":"4972:6:53"},{"kind":"number","nativeSrc":"4980:4:53","nodeType":"YulLiteral","src":"4980:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4968:3:53","nodeType":"YulIdentifier","src":"4968:3:53"},"nativeSrc":"4968:17:53","nodeType":"YulFunctionCall","src":"4968:17:53"},{"name":"end","nativeSrc":"4987:3:53","nodeType":"YulIdentifier","src":"4987:3:53"}],"functionName":{"name":"slt","nativeSrc":"4964:3:53","nodeType":"YulIdentifier","src":"4964:3:53"},"nativeSrc":"4964:27:53","nodeType":"YulFunctionCall","src":"4964:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4957:6:53","nodeType":"YulIdentifier","src":"4957:6:53"},"nativeSrc":"4957:35:53","nodeType":"YulFunctionCall","src":"4957:35:53"},"nativeSrc":"4954:122:53","nodeType":"YulIf","src":"4954:122:53"},{"nativeSrc":"5085:30:53","nodeType":"YulAssignment","src":"5085:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"5108:6:53","nodeType":"YulIdentifier","src":"5108:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5095:12:53","nodeType":"YulIdentifier","src":"5095:12:53"},"nativeSrc":"5095:20:53","nodeType":"YulFunctionCall","src":"5095:20:53"},"variableNames":[{"name":"length","nativeSrc":"5085:6:53","nodeType":"YulIdentifier","src":"5085:6:53"}]},{"body":{"nativeSrc":"5158:83:53","nodeType":"YulBlock","src":"5158:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"5160:77:53","nodeType":"YulIdentifier","src":"5160:77:53"},"nativeSrc":"5160:79:53","nodeType":"YulFunctionCall","src":"5160:79:53"},"nativeSrc":"5160:79:53","nodeType":"YulExpressionStatement","src":"5160:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5130:6:53","nodeType":"YulIdentifier","src":"5130:6:53"},{"kind":"number","nativeSrc":"5138:18:53","nodeType":"YulLiteral","src":"5138:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5127:2:53","nodeType":"YulIdentifier","src":"5127:2:53"},"nativeSrc":"5127:30:53","nodeType":"YulFunctionCall","src":"5127:30:53"},"nativeSrc":"5124:117:53","nodeType":"YulIf","src":"5124:117:53"},{"nativeSrc":"5250:29:53","nodeType":"YulAssignment","src":"5250:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5266:6:53","nodeType":"YulIdentifier","src":"5266:6:53"},{"kind":"number","nativeSrc":"5274:4:53","nodeType":"YulLiteral","src":"5274:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5262:3:53","nodeType":"YulIdentifier","src":"5262:3:53"},"nativeSrc":"5262:17:53","nodeType":"YulFunctionCall","src":"5262:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"5250:8:53","nodeType":"YulIdentifier","src":"5250:8:53"}]},{"body":{"nativeSrc":"5333:83:53","nodeType":"YulBlock","src":"5333:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5335:77:53","nodeType":"YulIdentifier","src":"5335:77:53"},"nativeSrc":"5335:79:53","nodeType":"YulFunctionCall","src":"5335:79:53"},"nativeSrc":"5335:79:53","nodeType":"YulExpressionStatement","src":"5335:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"5298:8:53","nodeType":"YulIdentifier","src":"5298:8:53"},{"arguments":[{"name":"length","nativeSrc":"5312:6:53","nodeType":"YulIdentifier","src":"5312:6:53"},{"kind":"number","nativeSrc":"5320:4:53","nodeType":"YulLiteral","src":"5320:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"5308:3:53","nodeType":"YulIdentifier","src":"5308:3:53"},"nativeSrc":"5308:17:53","nodeType":"YulFunctionCall","src":"5308:17:53"}],"functionName":{"name":"add","nativeSrc":"5294:3:53","nodeType":"YulIdentifier","src":"5294:3:53"},"nativeSrc":"5294:32:53","nodeType":"YulFunctionCall","src":"5294:32:53"},{"name":"end","nativeSrc":"5328:3:53","nodeType":"YulIdentifier","src":"5328:3:53"}],"functionName":{"name":"gt","nativeSrc":"5291:2:53","nodeType":"YulIdentifier","src":"5291:2:53"},"nativeSrc":"5291:41:53","nodeType":"YulFunctionCall","src":"5291:41:53"},"nativeSrc":"5288:128:53","nodeType":"YulIf","src":"5288:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4857:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4911:6:53","nodeType":"YulTypedName","src":"4911:6:53","type":""},{"name":"end","nativeSrc":"4919:3:53","nodeType":"YulTypedName","src":"4919:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4927:8:53","nodeType":"YulTypedName","src":"4927:8:53","type":""},{"name":"length","nativeSrc":"4937:6:53","nodeType":"YulTypedName","src":"4937:6:53","type":""}],"src":"4857:565:53"},{"body":{"nativeSrc":"5578:778:53","nodeType":"YulBlock","src":"5578:778:53","statements":[{"body":{"nativeSrc":"5624:83:53","nodeType":"YulBlock","src":"5624:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5626:77:53","nodeType":"YulIdentifier","src":"5626:77:53"},"nativeSrc":"5626:79:53","nodeType":"YulFunctionCall","src":"5626:79:53"},"nativeSrc":"5626:79:53","nodeType":"YulExpressionStatement","src":"5626:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5599:7:53","nodeType":"YulIdentifier","src":"5599:7:53"},{"name":"headStart","nativeSrc":"5608:9:53","nodeType":"YulIdentifier","src":"5608:9:53"}],"functionName":{"name":"sub","nativeSrc":"5595:3:53","nodeType":"YulIdentifier","src":"5595:3:53"},"nativeSrc":"5595:23:53","nodeType":"YulFunctionCall","src":"5595:23:53"},{"kind":"number","nativeSrc":"5620:2:53","nodeType":"YulLiteral","src":"5620:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5591:3:53","nodeType":"YulIdentifier","src":"5591:3:53"},"nativeSrc":"5591:32:53","nodeType":"YulFunctionCall","src":"5591:32:53"},"nativeSrc":"5588:119:53","nodeType":"YulIf","src":"5588:119:53"},{"nativeSrc":"5717:312:53","nodeType":"YulBlock","src":"5717:312:53","statements":[{"nativeSrc":"5732:45:53","nodeType":"YulVariableDeclaration","src":"5732:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5763:9:53","nodeType":"YulIdentifier","src":"5763:9:53"},{"kind":"number","nativeSrc":"5774:1:53","nodeType":"YulLiteral","src":"5774:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5759:3:53","nodeType":"YulIdentifier","src":"5759:3:53"},"nativeSrc":"5759:17:53","nodeType":"YulFunctionCall","src":"5759:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"5746:12:53","nodeType":"YulIdentifier","src":"5746:12:53"},"nativeSrc":"5746:31:53","nodeType":"YulFunctionCall","src":"5746:31:53"},"variables":[{"name":"offset","nativeSrc":"5736:6:53","nodeType":"YulTypedName","src":"5736:6:53","type":""}]},{"body":{"nativeSrc":"5824:83:53","nodeType":"YulBlock","src":"5824:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5826:77:53","nodeType":"YulIdentifier","src":"5826:77:53"},"nativeSrc":"5826:79:53","nodeType":"YulFunctionCall","src":"5826:79:53"},"nativeSrc":"5826:79:53","nodeType":"YulExpressionStatement","src":"5826:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5796:6:53","nodeType":"YulIdentifier","src":"5796:6:53"},{"kind":"number","nativeSrc":"5804:18:53","nodeType":"YulLiteral","src":"5804:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5793:2:53","nodeType":"YulIdentifier","src":"5793:2:53"},"nativeSrc":"5793:30:53","nodeType":"YulFunctionCall","src":"5793:30:53"},"nativeSrc":"5790:117:53","nodeType":"YulIf","src":"5790:117:53"},{"nativeSrc":"5921:98:53","nodeType":"YulAssignment","src":"5921:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5991:9:53","nodeType":"YulIdentifier","src":"5991:9:53"},{"name":"offset","nativeSrc":"6002:6:53","nodeType":"YulIdentifier","src":"6002:6:53"}],"functionName":{"name":"add","nativeSrc":"5987:3:53","nodeType":"YulIdentifier","src":"5987:3:53"},"nativeSrc":"5987:22:53","nodeType":"YulFunctionCall","src":"5987:22:53"},{"name":"dataEnd","nativeSrc":"6011:7:53","nodeType":"YulIdentifier","src":"6011:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"5939:47:53","nodeType":"YulIdentifier","src":"5939:47:53"},"nativeSrc":"5939:80:53","nodeType":"YulFunctionCall","src":"5939:80:53"},"variableNames":[{"name":"value0","nativeSrc":"5921:6:53","nodeType":"YulIdentifier","src":"5921:6:53"},{"name":"value1","nativeSrc":"5929:6:53","nodeType":"YulIdentifier","src":"5929:6:53"}]}]},{"nativeSrc":"6039:310:53","nodeType":"YulBlock","src":"6039:310:53","statements":[{"nativeSrc":"6054:46:53","nodeType":"YulVariableDeclaration","src":"6054:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6085:9:53","nodeType":"YulIdentifier","src":"6085:9:53"},{"kind":"number","nativeSrc":"6096:2:53","nodeType":"YulLiteral","src":"6096:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6081:3:53","nodeType":"YulIdentifier","src":"6081:3:53"},"nativeSrc":"6081:18:53","nodeType":"YulFunctionCall","src":"6081:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6068:12:53","nodeType":"YulIdentifier","src":"6068:12:53"},"nativeSrc":"6068:32:53","nodeType":"YulFunctionCall","src":"6068:32:53"},"variables":[{"name":"offset","nativeSrc":"6058:6:53","nodeType":"YulTypedName","src":"6058:6:53","type":""}]},{"body":{"nativeSrc":"6147:83:53","nodeType":"YulBlock","src":"6147:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6149:77:53","nodeType":"YulIdentifier","src":"6149:77:53"},"nativeSrc":"6149:79:53","nodeType":"YulFunctionCall","src":"6149:79:53"},"nativeSrc":"6149:79:53","nodeType":"YulExpressionStatement","src":"6149:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6119:6:53","nodeType":"YulIdentifier","src":"6119:6:53"},{"kind":"number","nativeSrc":"6127:18:53","nodeType":"YulLiteral","src":"6127:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6116:2:53","nodeType":"YulIdentifier","src":"6116:2:53"},"nativeSrc":"6116:30:53","nodeType":"YulFunctionCall","src":"6116:30:53"},"nativeSrc":"6113:117:53","nodeType":"YulIf","src":"6113:117:53"},{"nativeSrc":"6244:95:53","nodeType":"YulAssignment","src":"6244:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6311:9:53","nodeType":"YulIdentifier","src":"6311:9:53"},{"name":"offset","nativeSrc":"6322:6:53","nodeType":"YulIdentifier","src":"6322:6:53"}],"functionName":{"name":"add","nativeSrc":"6307:3:53","nodeType":"YulIdentifier","src":"6307:3:53"},"nativeSrc":"6307:22:53","nodeType":"YulFunctionCall","src":"6307:22:53"},{"name":"dataEnd","nativeSrc":"6331:7:53","nodeType":"YulIdentifier","src":"6331:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"6262:44:53","nodeType":"YulIdentifier","src":"6262:44:53"},"nativeSrc":"6262:77:53","nodeType":"YulFunctionCall","src":"6262:77:53"},"variableNames":[{"name":"value2","nativeSrc":"6244:6:53","nodeType":"YulIdentifier","src":"6244:6:53"},{"name":"value3","nativeSrc":"6252:6:53","nodeType":"YulIdentifier","src":"6252:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5428:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5524:9:53","nodeType":"YulTypedName","src":"5524:9:53","type":""},{"name":"dataEnd","nativeSrc":"5535:7:53","nodeType":"YulTypedName","src":"5535:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5547:6:53","nodeType":"YulTypedName","src":"5547:6:53","type":""},{"name":"value1","nativeSrc":"5555:6:53","nodeType":"YulTypedName","src":"5555:6:53","type":""},{"name":"value2","nativeSrc":"5563:6:53","nodeType":"YulTypedName","src":"5563:6:53","type":""},{"name":"value3","nativeSrc":"5571:6:53","nodeType":"YulTypedName","src":"5571:6:53","type":""}],"src":"5428:928:53"},{"body":{"nativeSrc":"6449:478:53","nodeType":"YulBlock","src":"6449:478:53","statements":[{"body":{"nativeSrc":"6498:83:53","nodeType":"YulBlock","src":"6498:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6500:77:53","nodeType":"YulIdentifier","src":"6500:77:53"},"nativeSrc":"6500:79:53","nodeType":"YulFunctionCall","src":"6500:79:53"},"nativeSrc":"6500:79:53","nodeType":"YulExpressionStatement","src":"6500:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6477:6:53","nodeType":"YulIdentifier","src":"6477:6:53"},{"kind":"number","nativeSrc":"6485:4:53","nodeType":"YulLiteral","src":"6485:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6473:3:53","nodeType":"YulIdentifier","src":"6473:3:53"},"nativeSrc":"6473:17:53","nodeType":"YulFunctionCall","src":"6473:17:53"},{"name":"end","nativeSrc":"6492:3:53","nodeType":"YulIdentifier","src":"6492:3:53"}],"functionName":{"name":"slt","nativeSrc":"6469:3:53","nodeType":"YulIdentifier","src":"6469:3:53"},"nativeSrc":"6469:27:53","nodeType":"YulFunctionCall","src":"6469:27:53"}],"functionName":{"name":"iszero","nativeSrc":"6462:6:53","nodeType":"YulIdentifier","src":"6462:6:53"},"nativeSrc":"6462:35:53","nodeType":"YulFunctionCall","src":"6462:35:53"},"nativeSrc":"6459:122:53","nodeType":"YulIf","src":"6459:122:53"},{"nativeSrc":"6590:30:53","nodeType":"YulAssignment","src":"6590:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"6613:6:53","nodeType":"YulIdentifier","src":"6613:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6600:12:53","nodeType":"YulIdentifier","src":"6600:12:53"},"nativeSrc":"6600:20:53","nodeType":"YulFunctionCall","src":"6600:20:53"},"variableNames":[{"name":"length","nativeSrc":"6590:6:53","nodeType":"YulIdentifier","src":"6590:6:53"}]},{"body":{"nativeSrc":"6663:83:53","nodeType":"YulBlock","src":"6663:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6665:77:53","nodeType":"YulIdentifier","src":"6665:77:53"},"nativeSrc":"6665:79:53","nodeType":"YulFunctionCall","src":"6665:79:53"},"nativeSrc":"6665:79:53","nodeType":"YulExpressionStatement","src":"6665:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6635:6:53","nodeType":"YulIdentifier","src":"6635:6:53"},{"kind":"number","nativeSrc":"6643:18:53","nodeType":"YulLiteral","src":"6643:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6632:2:53","nodeType":"YulIdentifier","src":"6632:2:53"},"nativeSrc":"6632:30:53","nodeType":"YulFunctionCall","src":"6632:30:53"},"nativeSrc":"6629:117:53","nodeType":"YulIf","src":"6629:117:53"},{"nativeSrc":"6755:29:53","nodeType":"YulAssignment","src":"6755:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6771:6:53","nodeType":"YulIdentifier","src":"6771:6:53"},{"kind":"number","nativeSrc":"6779:4:53","nodeType":"YulLiteral","src":"6779:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6767:3:53","nodeType":"YulIdentifier","src":"6767:3:53"},"nativeSrc":"6767:17:53","nodeType":"YulFunctionCall","src":"6767:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"6755:8:53","nodeType":"YulIdentifier","src":"6755:8:53"}]},{"body":{"nativeSrc":"6838:83:53","nodeType":"YulBlock","src":"6838:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6840:77:53","nodeType":"YulIdentifier","src":"6840:77:53"},"nativeSrc":"6840:79:53","nodeType":"YulFunctionCall","src":"6840:79:53"},"nativeSrc":"6840:79:53","nodeType":"YulExpressionStatement","src":"6840:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6803:8:53","nodeType":"YulIdentifier","src":"6803:8:53"},{"arguments":[{"name":"length","nativeSrc":"6817:6:53","nodeType":"YulIdentifier","src":"6817:6:53"},{"kind":"number","nativeSrc":"6825:4:53","nodeType":"YulLiteral","src":"6825:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"6813:3:53","nodeType":"YulIdentifier","src":"6813:3:53"},"nativeSrc":"6813:17:53","nodeType":"YulFunctionCall","src":"6813:17:53"}],"functionName":{"name":"add","nativeSrc":"6799:3:53","nodeType":"YulIdentifier","src":"6799:3:53"},"nativeSrc":"6799:32:53","nodeType":"YulFunctionCall","src":"6799:32:53"},{"name":"end","nativeSrc":"6833:3:53","nodeType":"YulIdentifier","src":"6833:3:53"}],"functionName":{"name":"gt","nativeSrc":"6796:2:53","nodeType":"YulIdentifier","src":"6796:2:53"},"nativeSrc":"6796:41:53","nodeType":"YulFunctionCall","src":"6796:41:53"},"nativeSrc":"6793:128:53","nodeType":"YulIf","src":"6793:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6375:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6416:6:53","nodeType":"YulTypedName","src":"6416:6:53","type":""},{"name":"end","nativeSrc":"6424:3:53","nodeType":"YulTypedName","src":"6424:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6432:8:53","nodeType":"YulTypedName","src":"6432:8:53","type":""},{"name":"length","nativeSrc":"6442:6:53","nodeType":"YulTypedName","src":"6442:6:53","type":""}],"src":"6375:552:53"},{"body":{"nativeSrc":"7018:442:53","nodeType":"YulBlock","src":"7018:442:53","statements":[{"body":{"nativeSrc":"7064:83:53","nodeType":"YulBlock","src":"7064:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7066:77:53","nodeType":"YulIdentifier","src":"7066:77:53"},"nativeSrc":"7066:79:53","nodeType":"YulFunctionCall","src":"7066:79:53"},"nativeSrc":"7066:79:53","nodeType":"YulExpressionStatement","src":"7066:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7039:7:53","nodeType":"YulIdentifier","src":"7039:7:53"},{"name":"headStart","nativeSrc":"7048:9:53","nodeType":"YulIdentifier","src":"7048:9:53"}],"functionName":{"name":"sub","nativeSrc":"7035:3:53","nodeType":"YulIdentifier","src":"7035:3:53"},"nativeSrc":"7035:23:53","nodeType":"YulFunctionCall","src":"7035:23:53"},{"kind":"number","nativeSrc":"7060:2:53","nodeType":"YulLiteral","src":"7060:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7031:3:53","nodeType":"YulIdentifier","src":"7031:3:53"},"nativeSrc":"7031:32:53","nodeType":"YulFunctionCall","src":"7031:32:53"},"nativeSrc":"7028:119:53","nodeType":"YulIf","src":"7028:119:53"},{"nativeSrc":"7157:296:53","nodeType":"YulBlock","src":"7157:296:53","statements":[{"nativeSrc":"7172:45:53","nodeType":"YulVariableDeclaration","src":"7172:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7203:9:53","nodeType":"YulIdentifier","src":"7203:9:53"},{"kind":"number","nativeSrc":"7214:1:53","nodeType":"YulLiteral","src":"7214:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7199:3:53","nodeType":"YulIdentifier","src":"7199:3:53"},"nativeSrc":"7199:17:53","nodeType":"YulFunctionCall","src":"7199:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"7186:12:53","nodeType":"YulIdentifier","src":"7186:12:53"},"nativeSrc":"7186:31:53","nodeType":"YulFunctionCall","src":"7186:31:53"},"variables":[{"name":"offset","nativeSrc":"7176:6:53","nodeType":"YulTypedName","src":"7176:6:53","type":""}]},{"body":{"nativeSrc":"7264:83:53","nodeType":"YulBlock","src":"7264:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7266:77:53","nodeType":"YulIdentifier","src":"7266:77:53"},"nativeSrc":"7266:79:53","nodeType":"YulFunctionCall","src":"7266:79:53"},"nativeSrc":"7266:79:53","nodeType":"YulExpressionStatement","src":"7266:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7236:6:53","nodeType":"YulIdentifier","src":"7236:6:53"},{"kind":"number","nativeSrc":"7244:18:53","nodeType":"YulLiteral","src":"7244:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7233:2:53","nodeType":"YulIdentifier","src":"7233:2:53"},"nativeSrc":"7233:30:53","nodeType":"YulFunctionCall","src":"7233:30:53"},"nativeSrc":"7230:117:53","nodeType":"YulIf","src":"7230:117:53"},{"nativeSrc":"7361:82:53","nodeType":"YulAssignment","src":"7361:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7415:9:53","nodeType":"YulIdentifier","src":"7415:9:53"},{"name":"offset","nativeSrc":"7426:6:53","nodeType":"YulIdentifier","src":"7426:6:53"}],"functionName":{"name":"add","nativeSrc":"7411:3:53","nodeType":"YulIdentifier","src":"7411:3:53"},"nativeSrc":"7411:22:53","nodeType":"YulFunctionCall","src":"7411:22:53"},{"name":"dataEnd","nativeSrc":"7435:7:53","nodeType":"YulIdentifier","src":"7435:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7379:31:53","nodeType":"YulIdentifier","src":"7379:31:53"},"nativeSrc":"7379:64:53","nodeType":"YulFunctionCall","src":"7379:64:53"},"variableNames":[{"name":"value0","nativeSrc":"7361:6:53","nodeType":"YulIdentifier","src":"7361:6:53"},{"name":"value1","nativeSrc":"7369:6:53","nodeType":"YulIdentifier","src":"7369:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"6933:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6980:9:53","nodeType":"YulTypedName","src":"6980:9:53","type":""},{"name":"dataEnd","nativeSrc":"6991:7:53","nodeType":"YulTypedName","src":"6991:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7003:6:53","nodeType":"YulTypedName","src":"7003:6:53","type":""},{"name":"value1","nativeSrc":"7011:6:53","nodeType":"YulTypedName","src":"7011:6:53","type":""}],"src":"6933:527:53"},{"body":{"nativeSrc":"7531:53:53","nodeType":"YulBlock","src":"7531:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7548:3:53","nodeType":"YulIdentifier","src":"7548:3:53"},{"arguments":[{"name":"value","nativeSrc":"7571:5:53","nodeType":"YulIdentifier","src":"7571:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7553:17:53","nodeType":"YulIdentifier","src":"7553:17:53"},"nativeSrc":"7553:24:53","nodeType":"YulFunctionCall","src":"7553:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7541:6:53","nodeType":"YulIdentifier","src":"7541:6:53"},"nativeSrc":"7541:37:53","nodeType":"YulFunctionCall","src":"7541:37:53"},"nativeSrc":"7541:37:53","nodeType":"YulExpressionStatement","src":"7541:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7466:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7519:5:53","nodeType":"YulTypedName","src":"7519:5:53","type":""},{"name":"pos","nativeSrc":"7526:3:53","nodeType":"YulTypedName","src":"7526:3:53","type":""}],"src":"7466:118:53"},{"body":{"nativeSrc":"7688:124:53","nodeType":"YulBlock","src":"7688:124:53","statements":[{"nativeSrc":"7698:26:53","nodeType":"YulAssignment","src":"7698:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7710:9:53","nodeType":"YulIdentifier","src":"7710:9:53"},{"kind":"number","nativeSrc":"7721:2:53","nodeType":"YulLiteral","src":"7721:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7706:3:53","nodeType":"YulIdentifier","src":"7706:3:53"},"nativeSrc":"7706:18:53","nodeType":"YulFunctionCall","src":"7706:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7698:4:53","nodeType":"YulIdentifier","src":"7698:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7778:6:53","nodeType":"YulIdentifier","src":"7778:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7791:9:53","nodeType":"YulIdentifier","src":"7791:9:53"},{"kind":"number","nativeSrc":"7802:1:53","nodeType":"YulLiteral","src":"7802:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7787:3:53","nodeType":"YulIdentifier","src":"7787:3:53"},"nativeSrc":"7787:17:53","nodeType":"YulFunctionCall","src":"7787:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7734:43:53","nodeType":"YulIdentifier","src":"7734:43:53"},"nativeSrc":"7734:71:53","nodeType":"YulFunctionCall","src":"7734:71:53"},"nativeSrc":"7734:71:53","nodeType":"YulExpressionStatement","src":"7734:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7590:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7660:9:53","nodeType":"YulTypedName","src":"7660:9:53","type":""},{"name":"value0","nativeSrc":"7672:6:53","nodeType":"YulTypedName","src":"7672:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7683:4:53","nodeType":"YulTypedName","src":"7683:4:53","type":""}],"src":"7590:222:53"},{"body":{"nativeSrc":"7920:570:53","nodeType":"YulBlock","src":"7920:570:53","statements":[{"body":{"nativeSrc":"7966:83:53","nodeType":"YulBlock","src":"7966:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7968:77:53","nodeType":"YulIdentifier","src":"7968:77:53"},"nativeSrc":"7968:79:53","nodeType":"YulFunctionCall","src":"7968:79:53"},"nativeSrc":"7968:79:53","nodeType":"YulExpressionStatement","src":"7968:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7941:7:53","nodeType":"YulIdentifier","src":"7941:7:53"},{"name":"headStart","nativeSrc":"7950:9:53","nodeType":"YulIdentifier","src":"7950:9:53"}],"functionName":{"name":"sub","nativeSrc":"7937:3:53","nodeType":"YulIdentifier","src":"7937:3:53"},"nativeSrc":"7937:23:53","nodeType":"YulFunctionCall","src":"7937:23:53"},{"kind":"number","nativeSrc":"7962:2:53","nodeType":"YulLiteral","src":"7962:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7933:3:53","nodeType":"YulIdentifier","src":"7933:3:53"},"nativeSrc":"7933:32:53","nodeType":"YulFunctionCall","src":"7933:32:53"},"nativeSrc":"7930:119:53","nodeType":"YulIf","src":"7930:119:53"},{"nativeSrc":"8059:117:53","nodeType":"YulBlock","src":"8059:117:53","statements":[{"nativeSrc":"8074:15:53","nodeType":"YulVariableDeclaration","src":"8074:15:53","value":{"kind":"number","nativeSrc":"8088:1:53","nodeType":"YulLiteral","src":"8088:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8078:6:53","nodeType":"YulTypedName","src":"8078:6:53","type":""}]},{"nativeSrc":"8103:63:53","nodeType":"YulAssignment","src":"8103:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8138:9:53","nodeType":"YulIdentifier","src":"8138:9:53"},{"name":"offset","nativeSrc":"8149:6:53","nodeType":"YulIdentifier","src":"8149:6:53"}],"functionName":{"name":"add","nativeSrc":"8134:3:53","nodeType":"YulIdentifier","src":"8134:3:53"},"nativeSrc":"8134:22:53","nodeType":"YulFunctionCall","src":"8134:22:53"},{"name":"dataEnd","nativeSrc":"8158:7:53","nodeType":"YulIdentifier","src":"8158:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8113:20:53","nodeType":"YulIdentifier","src":"8113:20:53"},"nativeSrc":"8113:53:53","nodeType":"YulFunctionCall","src":"8113:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8103:6:53","nodeType":"YulIdentifier","src":"8103:6:53"}]}]},{"nativeSrc":"8186:297:53","nodeType":"YulBlock","src":"8186:297:53","statements":[{"nativeSrc":"8201:46:53","nodeType":"YulVariableDeclaration","src":"8201:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8232:9:53","nodeType":"YulIdentifier","src":"8232:9:53"},{"kind":"number","nativeSrc":"8243:2:53","nodeType":"YulLiteral","src":"8243:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8228:3:53","nodeType":"YulIdentifier","src":"8228:3:53"},"nativeSrc":"8228:18:53","nodeType":"YulFunctionCall","src":"8228:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8215:12:53","nodeType":"YulIdentifier","src":"8215:12:53"},"nativeSrc":"8215:32:53","nodeType":"YulFunctionCall","src":"8215:32:53"},"variables":[{"name":"offset","nativeSrc":"8205:6:53","nodeType":"YulTypedName","src":"8205:6:53","type":""}]},{"body":{"nativeSrc":"8294:83:53","nodeType":"YulBlock","src":"8294:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8296:77:53","nodeType":"YulIdentifier","src":"8296:77:53"},"nativeSrc":"8296:79:53","nodeType":"YulFunctionCall","src":"8296:79:53"},"nativeSrc":"8296:79:53","nodeType":"YulExpressionStatement","src":"8296:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8266:6:53","nodeType":"YulIdentifier","src":"8266:6:53"},{"kind":"number","nativeSrc":"8274:18:53","nodeType":"YulLiteral","src":"8274:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8263:2:53","nodeType":"YulIdentifier","src":"8263:2:53"},"nativeSrc":"8263:30:53","nodeType":"YulFunctionCall","src":"8263:30:53"},"nativeSrc":"8260:117:53","nodeType":"YulIf","src":"8260:117:53"},{"nativeSrc":"8391:82:53","nodeType":"YulAssignment","src":"8391:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8445:9:53","nodeType":"YulIdentifier","src":"8445:9:53"},{"name":"offset","nativeSrc":"8456:6:53","nodeType":"YulIdentifier","src":"8456:6:53"}],"functionName":{"name":"add","nativeSrc":"8441:3:53","nodeType":"YulIdentifier","src":"8441:3:53"},"nativeSrc":"8441:22:53","nodeType":"YulFunctionCall","src":"8441:22:53"},{"name":"dataEnd","nativeSrc":"8465:7:53","nodeType":"YulIdentifier","src":"8465:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"8409:31:53","nodeType":"YulIdentifier","src":"8409:31:53"},"nativeSrc":"8409:64:53","nodeType":"YulFunctionCall","src":"8409:64:53"},"variableNames":[{"name":"value1","nativeSrc":"8391:6:53","nodeType":"YulIdentifier","src":"8391:6:53"},{"name":"value2","nativeSrc":"8399:6:53","nodeType":"YulIdentifier","src":"8399:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"7818:672:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7874:9:53","nodeType":"YulTypedName","src":"7874:9:53","type":""},{"name":"dataEnd","nativeSrc":"7885:7:53","nodeType":"YulTypedName","src":"7885:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7897:6:53","nodeType":"YulTypedName","src":"7897:6:53","type":""},{"name":"value1","nativeSrc":"7905:6:53","nodeType":"YulTypedName","src":"7905:6:53","type":""},{"name":"value2","nativeSrc":"7913:6:53","nodeType":"YulTypedName","src":"7913:6:53","type":""}],"src":"7818:672:53"},{"body":{"nativeSrc":"8524:152:53","nodeType":"YulBlock","src":"8524:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8541:1:53","nodeType":"YulLiteral","src":"8541:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8544:77:53","nodeType":"YulLiteral","src":"8544:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8534:6:53","nodeType":"YulIdentifier","src":"8534:6:53"},"nativeSrc":"8534:88:53","nodeType":"YulFunctionCall","src":"8534:88:53"},"nativeSrc":"8534:88:53","nodeType":"YulExpressionStatement","src":"8534:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8638:1:53","nodeType":"YulLiteral","src":"8638:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8641:4:53","nodeType":"YulLiteral","src":"8641:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8631:6:53","nodeType":"YulIdentifier","src":"8631:6:53"},"nativeSrc":"8631:15:53","nodeType":"YulFunctionCall","src":"8631:15:53"},"nativeSrc":"8631:15:53","nodeType":"YulExpressionStatement","src":"8631:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8662:1:53","nodeType":"YulLiteral","src":"8662:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8665:4:53","nodeType":"YulLiteral","src":"8665:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8655:6:53","nodeType":"YulIdentifier","src":"8655:6:53"},"nativeSrc":"8655:15:53","nodeType":"YulFunctionCall","src":"8655:15:53"},"nativeSrc":"8655:15:53","nodeType":"YulExpressionStatement","src":"8655:15:53"}]},"name":"panic_error_0x32","nativeSrc":"8496:180:53","nodeType":"YulFunctionDefinition","src":"8496:180:53"},{"body":{"nativeSrc":"8722:76:53","nodeType":"YulBlock","src":"8722:76:53","statements":[{"body":{"nativeSrc":"8776:16:53","nodeType":"YulBlock","src":"8776:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8785:1:53","nodeType":"YulLiteral","src":"8785:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8788:1:53","nodeType":"YulLiteral","src":"8788:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8778:6:53","nodeType":"YulIdentifier","src":"8778:6:53"},"nativeSrc":"8778:12:53","nodeType":"YulFunctionCall","src":"8778:12:53"},"nativeSrc":"8778:12:53","nodeType":"YulExpressionStatement","src":"8778:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8745:5:53","nodeType":"YulIdentifier","src":"8745:5:53"},{"arguments":[{"name":"value","nativeSrc":"8767:5:53","nodeType":"YulIdentifier","src":"8767:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"8752:14:53","nodeType":"YulIdentifier","src":"8752:14:53"},"nativeSrc":"8752:21:53","nodeType":"YulFunctionCall","src":"8752:21:53"}],"functionName":{"name":"eq","nativeSrc":"8742:2:53","nodeType":"YulIdentifier","src":"8742:2:53"},"nativeSrc":"8742:32:53","nodeType":"YulFunctionCall","src":"8742:32:53"}],"functionName":{"name":"iszero","nativeSrc":"8735:6:53","nodeType":"YulIdentifier","src":"8735:6:53"},"nativeSrc":"8735:40:53","nodeType":"YulFunctionCall","src":"8735:40:53"},"nativeSrc":"8732:60:53","nodeType":"YulIf","src":"8732:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"8682:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8715:5:53","nodeType":"YulTypedName","src":"8715:5:53","type":""}],"src":"8682:116:53"},{"body":{"nativeSrc":"8853:84:53","nodeType":"YulBlock","src":"8853:84:53","statements":[{"nativeSrc":"8863:29:53","nodeType":"YulAssignment","src":"8863:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8885:6:53","nodeType":"YulIdentifier","src":"8885:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8872:12:53","nodeType":"YulIdentifier","src":"8872:12:53"},"nativeSrc":"8872:20:53","nodeType":"YulFunctionCall","src":"8872:20:53"},"variableNames":[{"name":"value","nativeSrc":"8863:5:53","nodeType":"YulIdentifier","src":"8863:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8925:5:53","nodeType":"YulIdentifier","src":"8925:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"8901:23:53","nodeType":"YulIdentifier","src":"8901:23:53"},"nativeSrc":"8901:30:53","nodeType":"YulFunctionCall","src":"8901:30:53"},"nativeSrc":"8901:30:53","nodeType":"YulExpressionStatement","src":"8901:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"8804:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8831:6:53","nodeType":"YulTypedName","src":"8831:6:53","type":""},{"name":"end","nativeSrc":"8839:3:53","nodeType":"YulTypedName","src":"8839:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8847:5:53","nodeType":"YulTypedName","src":"8847:5:53","type":""}],"src":"8804:133:53"},{"body":{"nativeSrc":"9006:260:53","nodeType":"YulBlock","src":"9006:260:53","statements":[{"body":{"nativeSrc":"9052:83:53","nodeType":"YulBlock","src":"9052:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9054:77:53","nodeType":"YulIdentifier","src":"9054:77:53"},"nativeSrc":"9054:79:53","nodeType":"YulFunctionCall","src":"9054:79:53"},"nativeSrc":"9054:79:53","nodeType":"YulExpressionStatement","src":"9054:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9027:7:53","nodeType":"YulIdentifier","src":"9027:7:53"},{"name":"headStart","nativeSrc":"9036:9:53","nodeType":"YulIdentifier","src":"9036:9:53"}],"functionName":{"name":"sub","nativeSrc":"9023:3:53","nodeType":"YulIdentifier","src":"9023:3:53"},"nativeSrc":"9023:23:53","nodeType":"YulFunctionCall","src":"9023:23:53"},{"kind":"number","nativeSrc":"9048:2:53","nodeType":"YulLiteral","src":"9048:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9019:3:53","nodeType":"YulIdentifier","src":"9019:3:53"},"nativeSrc":"9019:32:53","nodeType":"YulFunctionCall","src":"9019:32:53"},"nativeSrc":"9016:119:53","nodeType":"YulIf","src":"9016:119:53"},{"nativeSrc":"9145:114:53","nodeType":"YulBlock","src":"9145:114:53","statements":[{"nativeSrc":"9160:15:53","nodeType":"YulVariableDeclaration","src":"9160:15:53","value":{"kind":"number","nativeSrc":"9174:1:53","nodeType":"YulLiteral","src":"9174:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9164:6:53","nodeType":"YulTypedName","src":"9164:6:53","type":""}]},{"nativeSrc":"9189:60:53","nodeType":"YulAssignment","src":"9189:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9221:9:53","nodeType":"YulIdentifier","src":"9221:9:53"},{"name":"offset","nativeSrc":"9232:6:53","nodeType":"YulIdentifier","src":"9232:6:53"}],"functionName":{"name":"add","nativeSrc":"9217:3:53","nodeType":"YulIdentifier","src":"9217:3:53"},"nativeSrc":"9217:22:53","nodeType":"YulFunctionCall","src":"9217:22:53"},{"name":"dataEnd","nativeSrc":"9241:7:53","nodeType":"YulIdentifier","src":"9241:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"9199:17:53","nodeType":"YulIdentifier","src":"9199:17:53"},"nativeSrc":"9199:50:53","nodeType":"YulFunctionCall","src":"9199:50:53"},"variableNames":[{"name":"value0","nativeSrc":"9189:6:53","nodeType":"YulIdentifier","src":"9189:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"8943:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8976:9:53","nodeType":"YulTypedName","src":"8976:9:53","type":""},{"name":"dataEnd","nativeSrc":"8987:7:53","nodeType":"YulTypedName","src":"8987:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8999:6:53","nodeType":"YulTypedName","src":"8999:6:53","type":""}],"src":"8943:323:53"},{"body":{"nativeSrc":"9325:51:53","nodeType":"YulBlock","src":"9325:51:53","statements":[{"nativeSrc":"9335:35:53","nodeType":"YulAssignment","src":"9335:35:53","value":{"arguments":[{"name":"value","nativeSrc":"9364:5:53","nodeType":"YulIdentifier","src":"9364:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"9346:17:53","nodeType":"YulIdentifier","src":"9346:17:53"},"nativeSrc":"9346:24:53","nodeType":"YulFunctionCall","src":"9346:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"9335:7:53","nodeType":"YulIdentifier","src":"9335:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"9272:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9307:5:53","nodeType":"YulTypedName","src":"9307:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"9317:7:53","nodeType":"YulTypedName","src":"9317:7:53","type":""}],"src":"9272:104:53"},{"body":{"nativeSrc":"9433:87:53","nodeType":"YulBlock","src":"9433:87:53","statements":[{"body":{"nativeSrc":"9498:16:53","nodeType":"YulBlock","src":"9498:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9507:1:53","nodeType":"YulLiteral","src":"9507:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9510:1:53","nodeType":"YulLiteral","src":"9510:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9500:6:53","nodeType":"YulIdentifier","src":"9500:6:53"},"nativeSrc":"9500:12:53","nodeType":"YulFunctionCall","src":"9500:12:53"},"nativeSrc":"9500:12:53","nodeType":"YulExpressionStatement","src":"9500:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9456:5:53","nodeType":"YulIdentifier","src":"9456:5:53"},{"arguments":[{"name":"value","nativeSrc":"9489:5:53","nodeType":"YulIdentifier","src":"9489:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"9463:25:53","nodeType":"YulIdentifier","src":"9463:25:53"},"nativeSrc":"9463:32:53","nodeType":"YulFunctionCall","src":"9463:32:53"}],"functionName":{"name":"eq","nativeSrc":"9453:2:53","nodeType":"YulIdentifier","src":"9453:2:53"},"nativeSrc":"9453:43:53","nodeType":"YulFunctionCall","src":"9453:43:53"}],"functionName":{"name":"iszero","nativeSrc":"9446:6:53","nodeType":"YulIdentifier","src":"9446:6:53"},"nativeSrc":"9446:51:53","nodeType":"YulFunctionCall","src":"9446:51:53"},"nativeSrc":"9443:71:53","nodeType":"YulIf","src":"9443:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"9382:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9426:5:53","nodeType":"YulTypedName","src":"9426:5:53","type":""}],"src":"9382:138:53"},{"body":{"nativeSrc":"9586:95:53","nodeType":"YulBlock","src":"9586:95:53","statements":[{"nativeSrc":"9596:29:53","nodeType":"YulAssignment","src":"9596:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9618:6:53","nodeType":"YulIdentifier","src":"9618:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9605:12:53","nodeType":"YulIdentifier","src":"9605:12:53"},"nativeSrc":"9605:20:53","nodeType":"YulFunctionCall","src":"9605:20:53"},"variableNames":[{"name":"value","nativeSrc":"9596:5:53","nodeType":"YulIdentifier","src":"9596:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9669:5:53","nodeType":"YulIdentifier","src":"9669:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"9634:34:53","nodeType":"YulIdentifier","src":"9634:34:53"},"nativeSrc":"9634:41:53","nodeType":"YulFunctionCall","src":"9634:41:53"},"nativeSrc":"9634:41:53","nodeType":"YulExpressionStatement","src":"9634:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"9526:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9564:6:53","nodeType":"YulTypedName","src":"9564:6:53","type":""},{"name":"end","nativeSrc":"9572:3:53","nodeType":"YulTypedName","src":"9572:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9580:5:53","nodeType":"YulTypedName","src":"9580:5:53","type":""}],"src":"9526:155:53"},{"body":{"nativeSrc":"9735:54:53","nodeType":"YulBlock","src":"9735:54:53","statements":[{"nativeSrc":"9745:38:53","nodeType":"YulAssignment","src":"9745:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9763:5:53","nodeType":"YulIdentifier","src":"9763:5:53"},{"kind":"number","nativeSrc":"9770:2:53","nodeType":"YulLiteral","src":"9770:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9759:3:53","nodeType":"YulIdentifier","src":"9759:3:53"},"nativeSrc":"9759:14:53","nodeType":"YulFunctionCall","src":"9759:14:53"},{"arguments":[{"kind":"number","nativeSrc":"9779:2:53","nodeType":"YulLiteral","src":"9779:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9775:3:53","nodeType":"YulIdentifier","src":"9775:3:53"},"nativeSrc":"9775:7:53","nodeType":"YulFunctionCall","src":"9775:7:53"}],"functionName":{"name":"and","nativeSrc":"9755:3:53","nodeType":"YulIdentifier","src":"9755:3:53"},"nativeSrc":"9755:28:53","nodeType":"YulFunctionCall","src":"9755:28:53"},"variableNames":[{"name":"result","nativeSrc":"9745:6:53","nodeType":"YulIdentifier","src":"9745:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9687:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9718:5:53","nodeType":"YulTypedName","src":"9718:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9728:6:53","nodeType":"YulTypedName","src":"9728:6:53","type":""}],"src":"9687:102:53"},{"body":{"nativeSrc":"9823:152:53","nodeType":"YulBlock","src":"9823:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9840:1:53","nodeType":"YulLiteral","src":"9840:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9843:77:53","nodeType":"YulLiteral","src":"9843:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9833:6:53","nodeType":"YulIdentifier","src":"9833:6:53"},"nativeSrc":"9833:88:53","nodeType":"YulFunctionCall","src":"9833:88:53"},"nativeSrc":"9833:88:53","nodeType":"YulExpressionStatement","src":"9833:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9937:1:53","nodeType":"YulLiteral","src":"9937:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9940:4:53","nodeType":"YulLiteral","src":"9940:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9930:6:53","nodeType":"YulIdentifier","src":"9930:6:53"},"nativeSrc":"9930:15:53","nodeType":"YulFunctionCall","src":"9930:15:53"},"nativeSrc":"9930:15:53","nodeType":"YulExpressionStatement","src":"9930:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9961:1:53","nodeType":"YulLiteral","src":"9961:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9964:4:53","nodeType":"YulLiteral","src":"9964:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9954:6:53","nodeType":"YulIdentifier","src":"9954:6:53"},"nativeSrc":"9954:15:53","nodeType":"YulFunctionCall","src":"9954:15:53"},"nativeSrc":"9954:15:53","nodeType":"YulExpressionStatement","src":"9954:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9795:180:53","nodeType":"YulFunctionDefinition","src":"9795:180:53"},{"body":{"nativeSrc":"10024:238:53","nodeType":"YulBlock","src":"10024:238:53","statements":[{"nativeSrc":"10034:58:53","nodeType":"YulVariableDeclaration","src":"10034:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10056:6:53","nodeType":"YulIdentifier","src":"10056:6:53"},{"arguments":[{"name":"size","nativeSrc":"10086:4:53","nodeType":"YulIdentifier","src":"10086:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10064:21:53","nodeType":"YulIdentifier","src":"10064:21:53"},"nativeSrc":"10064:27:53","nodeType":"YulFunctionCall","src":"10064:27:53"}],"functionName":{"name":"add","nativeSrc":"10052:3:53","nodeType":"YulIdentifier","src":"10052:3:53"},"nativeSrc":"10052:40:53","nodeType":"YulFunctionCall","src":"10052:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10038:10:53","nodeType":"YulTypedName","src":"10038:10:53","type":""}]},{"body":{"nativeSrc":"10203:22:53","nodeType":"YulBlock","src":"10203:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10205:16:53","nodeType":"YulIdentifier","src":"10205:16:53"},"nativeSrc":"10205:18:53","nodeType":"YulFunctionCall","src":"10205:18:53"},"nativeSrc":"10205:18:53","nodeType":"YulExpressionStatement","src":"10205:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10146:10:53","nodeType":"YulIdentifier","src":"10146:10:53"},{"kind":"number","nativeSrc":"10158:18:53","nodeType":"YulLiteral","src":"10158:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10143:2:53","nodeType":"YulIdentifier","src":"10143:2:53"},"nativeSrc":"10143:34:53","nodeType":"YulFunctionCall","src":"10143:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10182:10:53","nodeType":"YulIdentifier","src":"10182:10:53"},{"name":"memPtr","nativeSrc":"10194:6:53","nodeType":"YulIdentifier","src":"10194:6:53"}],"functionName":{"name":"lt","nativeSrc":"10179:2:53","nodeType":"YulIdentifier","src":"10179:2:53"},"nativeSrc":"10179:22:53","nodeType":"YulFunctionCall","src":"10179:22:53"}],"functionName":{"name":"or","nativeSrc":"10140:2:53","nodeType":"YulIdentifier","src":"10140:2:53"},"nativeSrc":"10140:62:53","nodeType":"YulFunctionCall","src":"10140:62:53"},"nativeSrc":"10137:88:53","nodeType":"YulIf","src":"10137:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10241:2:53","nodeType":"YulLiteral","src":"10241:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10245:10:53","nodeType":"YulIdentifier","src":"10245:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10234:6:53","nodeType":"YulIdentifier","src":"10234:6:53"},"nativeSrc":"10234:22:53","nodeType":"YulFunctionCall","src":"10234:22:53"},"nativeSrc":"10234:22:53","nodeType":"YulExpressionStatement","src":"10234:22:53"}]},"name":"finalize_allocation","nativeSrc":"9981:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10010:6:53","nodeType":"YulTypedName","src":"10010:6:53","type":""},{"name":"size","nativeSrc":"10018:4:53","nodeType":"YulTypedName","src":"10018:4:53","type":""}],"src":"9981:281:53"},{"body":{"nativeSrc":"10309:88:53","nodeType":"YulBlock","src":"10309:88:53","statements":[{"nativeSrc":"10319:30:53","nodeType":"YulAssignment","src":"10319:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10329:18:53","nodeType":"YulIdentifier","src":"10329:18:53"},"nativeSrc":"10329:20:53","nodeType":"YulFunctionCall","src":"10329:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10319:6:53","nodeType":"YulIdentifier","src":"10319:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10378:6:53","nodeType":"YulIdentifier","src":"10378:6:53"},{"name":"size","nativeSrc":"10386:4:53","nodeType":"YulIdentifier","src":"10386:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10358:19:53","nodeType":"YulIdentifier","src":"10358:19:53"},"nativeSrc":"10358:33:53","nodeType":"YulFunctionCall","src":"10358:33:53"},"nativeSrc":"10358:33:53","nodeType":"YulExpressionStatement","src":"10358:33:53"}]},"name":"allocate_memory","nativeSrc":"10268:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10293:4:53","nodeType":"YulTypedName","src":"10293:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10302:6:53","nodeType":"YulTypedName","src":"10302:6:53","type":""}],"src":"10268:129:53"},{"body":{"nativeSrc":"10485:229:53","nodeType":"YulBlock","src":"10485:229:53","statements":[{"body":{"nativeSrc":"10590:22:53","nodeType":"YulBlock","src":"10590:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10592:16:53","nodeType":"YulIdentifier","src":"10592:16:53"},"nativeSrc":"10592:18:53","nodeType":"YulFunctionCall","src":"10592:18:53"},"nativeSrc":"10592:18:53","nodeType":"YulExpressionStatement","src":"10592:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10562:6:53","nodeType":"YulIdentifier","src":"10562:6:53"},{"kind":"number","nativeSrc":"10570:18:53","nodeType":"YulLiteral","src":"10570:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10559:2:53","nodeType":"YulIdentifier","src":"10559:2:53"},"nativeSrc":"10559:30:53","nodeType":"YulFunctionCall","src":"10559:30:53"},"nativeSrc":"10556:56:53","nodeType":"YulIf","src":"10556:56:53"},{"nativeSrc":"10622:25:53","nodeType":"YulAssignment","src":"10622:25:53","value":{"arguments":[{"name":"length","nativeSrc":"10634:6:53","nodeType":"YulIdentifier","src":"10634:6:53"},{"kind":"number","nativeSrc":"10642:4:53","nodeType":"YulLiteral","src":"10642:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10630:3:53","nodeType":"YulIdentifier","src":"10630:3:53"},"nativeSrc":"10630:17:53","nodeType":"YulFunctionCall","src":"10630:17:53"},"variableNames":[{"name":"size","nativeSrc":"10622:4:53","nodeType":"YulIdentifier","src":"10622:4:53"}]},{"nativeSrc":"10684:23:53","nodeType":"YulAssignment","src":"10684:23:53","value":{"arguments":[{"name":"size","nativeSrc":"10696:4:53","nodeType":"YulIdentifier","src":"10696:4:53"},{"kind":"number","nativeSrc":"10702:4:53","nodeType":"YulLiteral","src":"10702:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10692:3:53","nodeType":"YulIdentifier","src":"10692:3:53"},"nativeSrc":"10692:15:53","nodeType":"YulFunctionCall","src":"10692:15:53"},"variableNames":[{"name":"size","nativeSrc":"10684:4:53","nodeType":"YulIdentifier","src":"10684:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10403:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10469:6:53","nodeType":"YulTypedName","src":"10469:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10480:4:53","nodeType":"YulTypedName","src":"10480:4:53","type":""}],"src":"10403:311:53"},{"body":{"nativeSrc":"10839:608:53","nodeType":"YulBlock","src":"10839:608:53","statements":[{"nativeSrc":"10849:90:53","nodeType":"YulAssignment","src":"10849:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10931:6:53","nodeType":"YulIdentifier","src":"10931:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10874:56:53","nodeType":"YulIdentifier","src":"10874:56:53"},"nativeSrc":"10874:64:53","nodeType":"YulFunctionCall","src":"10874:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10858:15:53","nodeType":"YulIdentifier","src":"10858:15:53"},"nativeSrc":"10858:81:53","nodeType":"YulFunctionCall","src":"10858:81:53"},"variableNames":[{"name":"array","nativeSrc":"10849:5:53","nodeType":"YulIdentifier","src":"10849:5:53"}]},{"nativeSrc":"10948:16:53","nodeType":"YulVariableDeclaration","src":"10948:16:53","value":{"name":"array","nativeSrc":"10959:5:53","nodeType":"YulIdentifier","src":"10959:5:53"},"variables":[{"name":"dst","nativeSrc":"10952:3:53","nodeType":"YulTypedName","src":"10952:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"10981:5:53","nodeType":"YulIdentifier","src":"10981:5:53"},{"name":"length","nativeSrc":"10988:6:53","nodeType":"YulIdentifier","src":"10988:6:53"}],"functionName":{"name":"mstore","nativeSrc":"10974:6:53","nodeType":"YulIdentifier","src":"10974:6:53"},"nativeSrc":"10974:21:53","nodeType":"YulFunctionCall","src":"10974:21:53"},"nativeSrc":"10974:21:53","nodeType":"YulExpressionStatement","src":"10974:21:53"},{"nativeSrc":"11004:23:53","nodeType":"YulAssignment","src":"11004:23:53","value":{"arguments":[{"name":"array","nativeSrc":"11015:5:53","nodeType":"YulIdentifier","src":"11015:5:53"},{"kind":"number","nativeSrc":"11022:4:53","nodeType":"YulLiteral","src":"11022:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11011:3:53","nodeType":"YulIdentifier","src":"11011:3:53"},"nativeSrc":"11011:16:53","nodeType":"YulFunctionCall","src":"11011:16:53"},"variableNames":[{"name":"dst","nativeSrc":"11004:3:53","nodeType":"YulIdentifier","src":"11004:3:53"}]},{"nativeSrc":"11037:44:53","nodeType":"YulVariableDeclaration","src":"11037:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"11055:6:53","nodeType":"YulIdentifier","src":"11055:6:53"},{"arguments":[{"name":"length","nativeSrc":"11067:6:53","nodeType":"YulIdentifier","src":"11067:6:53"},{"kind":"number","nativeSrc":"11075:4:53","nodeType":"YulLiteral","src":"11075:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11063:3:53","nodeType":"YulIdentifier","src":"11063:3:53"},"nativeSrc":"11063:17:53","nodeType":"YulFunctionCall","src":"11063:17:53"}],"functionName":{"name":"add","nativeSrc":"11051:3:53","nodeType":"YulIdentifier","src":"11051:3:53"},"nativeSrc":"11051:30:53","nodeType":"YulFunctionCall","src":"11051:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"11041:6:53","nodeType":"YulTypedName","src":"11041:6:53","type":""}]},{"body":{"nativeSrc":"11109:103:53","nodeType":"YulBlock","src":"11109:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11123:77:53","nodeType":"YulIdentifier","src":"11123:77:53"},"nativeSrc":"11123:79:53","nodeType":"YulFunctionCall","src":"11123:79:53"},"nativeSrc":"11123:79:53","nodeType":"YulExpressionStatement","src":"11123:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11096:6:53","nodeType":"YulIdentifier","src":"11096:6:53"},{"name":"end","nativeSrc":"11104:3:53","nodeType":"YulIdentifier","src":"11104:3:53"}],"functionName":{"name":"gt","nativeSrc":"11093:2:53","nodeType":"YulIdentifier","src":"11093:2:53"},"nativeSrc":"11093:15:53","nodeType":"YulFunctionCall","src":"11093:15:53"},"nativeSrc":"11090:122:53","nodeType":"YulIf","src":"11090:122:53"},{"body":{"nativeSrc":"11297:144:53","nodeType":"YulBlock","src":"11297:144:53","statements":[{"nativeSrc":"11312:21:53","nodeType":"YulVariableDeclaration","src":"11312:21:53","value":{"name":"src","nativeSrc":"11330:3:53","nodeType":"YulIdentifier","src":"11330:3:53"},"variables":[{"name":"elementPos","nativeSrc":"11316:10:53","nodeType":"YulTypedName","src":"11316:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11354:3:53","nodeType":"YulIdentifier","src":"11354:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"11380:10:53","nodeType":"YulIdentifier","src":"11380:10:53"},{"name":"end","nativeSrc":"11392:3:53","nodeType":"YulIdentifier","src":"11392:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11359:20:53","nodeType":"YulIdentifier","src":"11359:20:53"},"nativeSrc":"11359:37:53","nodeType":"YulFunctionCall","src":"11359:37:53"}],"functionName":{"name":"mstore","nativeSrc":"11347:6:53","nodeType":"YulIdentifier","src":"11347:6:53"},"nativeSrc":"11347:50:53","nodeType":"YulFunctionCall","src":"11347:50:53"},"nativeSrc":"11347:50:53","nodeType":"YulExpressionStatement","src":"11347:50:53"},{"nativeSrc":"11410:21:53","nodeType":"YulAssignment","src":"11410:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"11421:3:53","nodeType":"YulIdentifier","src":"11421:3:53"},{"kind":"number","nativeSrc":"11426:4:53","nodeType":"YulLiteral","src":"11426:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11417:3:53","nodeType":"YulIdentifier","src":"11417:3:53"},"nativeSrc":"11417:14:53","nodeType":"YulFunctionCall","src":"11417:14:53"},"variableNames":[{"name":"dst","nativeSrc":"11410:3:53","nodeType":"YulIdentifier","src":"11410:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11250:3:53","nodeType":"YulIdentifier","src":"11250:3:53"},{"name":"srcEnd","nativeSrc":"11255:6:53","nodeType":"YulIdentifier","src":"11255:6:53"}],"functionName":{"name":"lt","nativeSrc":"11247:2:53","nodeType":"YulIdentifier","src":"11247:2:53"},"nativeSrc":"11247:15:53","nodeType":"YulFunctionCall","src":"11247:15:53"},"nativeSrc":"11221:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"11263:25:53","nodeType":"YulBlock","src":"11263:25:53","statements":[{"nativeSrc":"11265:21:53","nodeType":"YulAssignment","src":"11265:21:53","value":{"arguments":[{"name":"src","nativeSrc":"11276:3:53","nodeType":"YulIdentifier","src":"11276:3:53"},{"kind":"number","nativeSrc":"11281:4:53","nodeType":"YulLiteral","src":"11281:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11272:3:53","nodeType":"YulIdentifier","src":"11272:3:53"},"nativeSrc":"11272:14:53","nodeType":"YulFunctionCall","src":"11272:14:53"},"variableNames":[{"name":"src","nativeSrc":"11265:3:53","nodeType":"YulIdentifier","src":"11265:3:53"}]}]},"pre":{"nativeSrc":"11225:21:53","nodeType":"YulBlock","src":"11225:21:53","statements":[{"nativeSrc":"11227:17:53","nodeType":"YulVariableDeclaration","src":"11227:17:53","value":{"name":"offset","nativeSrc":"11238:6:53","nodeType":"YulIdentifier","src":"11238:6:53"},"variables":[{"name":"src","nativeSrc":"11231:3:53","nodeType":"YulTypedName","src":"11231:3:53","type":""}]}]},"src":"11221:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10737:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10809:6:53","nodeType":"YulTypedName","src":"10809:6:53","type":""},{"name":"length","nativeSrc":"10817:6:53","nodeType":"YulTypedName","src":"10817:6:53","type":""},{"name":"end","nativeSrc":"10825:3:53","nodeType":"YulTypedName","src":"10825:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10833:5:53","nodeType":"YulTypedName","src":"10833:5:53","type":""}],"src":"10737:710:53"},{"body":{"nativeSrc":"11547:293:53","nodeType":"YulBlock","src":"11547:293:53","statements":[{"body":{"nativeSrc":"11596:83:53","nodeType":"YulBlock","src":"11596:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11598:77:53","nodeType":"YulIdentifier","src":"11598:77:53"},"nativeSrc":"11598:79:53","nodeType":"YulFunctionCall","src":"11598:79:53"},"nativeSrc":"11598:79:53","nodeType":"YulExpressionStatement","src":"11598:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11575:6:53","nodeType":"YulIdentifier","src":"11575:6:53"},{"kind":"number","nativeSrc":"11583:4:53","nodeType":"YulLiteral","src":"11583:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11571:3:53","nodeType":"YulIdentifier","src":"11571:3:53"},"nativeSrc":"11571:17:53","nodeType":"YulFunctionCall","src":"11571:17:53"},{"name":"end","nativeSrc":"11590:3:53","nodeType":"YulIdentifier","src":"11590:3:53"}],"functionName":{"name":"slt","nativeSrc":"11567:3:53","nodeType":"YulIdentifier","src":"11567:3:53"},"nativeSrc":"11567:27:53","nodeType":"YulFunctionCall","src":"11567:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11560:6:53","nodeType":"YulIdentifier","src":"11560:6:53"},"nativeSrc":"11560:35:53","nodeType":"YulFunctionCall","src":"11560:35:53"},"nativeSrc":"11557:122:53","nodeType":"YulIf","src":"11557:122:53"},{"nativeSrc":"11688:34:53","nodeType":"YulVariableDeclaration","src":"11688:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"11715:6:53","nodeType":"YulIdentifier","src":"11715:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"11702:12:53","nodeType":"YulIdentifier","src":"11702:12:53"},"nativeSrc":"11702:20:53","nodeType":"YulFunctionCall","src":"11702:20:53"},"variables":[{"name":"length","nativeSrc":"11692:6:53","nodeType":"YulTypedName","src":"11692:6:53","type":""}]},{"nativeSrc":"11731:103:53","nodeType":"YulAssignment","src":"11731:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11807:6:53","nodeType":"YulIdentifier","src":"11807:6:53"},{"kind":"number","nativeSrc":"11815:4:53","nodeType":"YulLiteral","src":"11815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11803:3:53","nodeType":"YulIdentifier","src":"11803:3:53"},"nativeSrc":"11803:17:53","nodeType":"YulFunctionCall","src":"11803:17:53"},{"name":"length","nativeSrc":"11822:6:53","nodeType":"YulIdentifier","src":"11822:6:53"},{"name":"end","nativeSrc":"11830:3:53","nodeType":"YulIdentifier","src":"11830:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11740:62:53","nodeType":"YulIdentifier","src":"11740:62:53"},"nativeSrc":"11740:94:53","nodeType":"YulFunctionCall","src":"11740:94:53"},"variableNames":[{"name":"array","nativeSrc":"11731:5:53","nodeType":"YulIdentifier","src":"11731:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11470:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11525:6:53","nodeType":"YulTypedName","src":"11525:6:53","type":""},{"name":"end","nativeSrc":"11533:3:53","nodeType":"YulTypedName","src":"11533:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11541:5:53","nodeType":"YulTypedName","src":"11541:5:53","type":""}],"src":"11470:370:53"},{"body":{"nativeSrc":"11962:584:53","nodeType":"YulBlock","src":"11962:584:53","statements":[{"body":{"nativeSrc":"12008:83:53","nodeType":"YulBlock","src":"12008:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12010:77:53","nodeType":"YulIdentifier","src":"12010:77:53"},"nativeSrc":"12010:79:53","nodeType":"YulFunctionCall","src":"12010:79:53"},"nativeSrc":"12010:79:53","nodeType":"YulExpressionStatement","src":"12010:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11983:7:53","nodeType":"YulIdentifier","src":"11983:7:53"},{"name":"headStart","nativeSrc":"11992:9:53","nodeType":"YulIdentifier","src":"11992:9:53"}],"functionName":{"name":"sub","nativeSrc":"11979:3:53","nodeType":"YulIdentifier","src":"11979:3:53"},"nativeSrc":"11979:23:53","nodeType":"YulFunctionCall","src":"11979:23:53"},{"kind":"number","nativeSrc":"12004:2:53","nodeType":"YulLiteral","src":"12004:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11975:3:53","nodeType":"YulIdentifier","src":"11975:3:53"},"nativeSrc":"11975:32:53","nodeType":"YulFunctionCall","src":"11975:32:53"},"nativeSrc":"11972:119:53","nodeType":"YulIf","src":"11972:119:53"},{"nativeSrc":"12101:125:53","nodeType":"YulBlock","src":"12101:125:53","statements":[{"nativeSrc":"12116:15:53","nodeType":"YulVariableDeclaration","src":"12116:15:53","value":{"kind":"number","nativeSrc":"12130:1:53","nodeType":"YulLiteral","src":"12130:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12120:6:53","nodeType":"YulTypedName","src":"12120:6:53","type":""}]},{"nativeSrc":"12145:71:53","nodeType":"YulAssignment","src":"12145:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12188:9:53","nodeType":"YulIdentifier","src":"12188:9:53"},{"name":"offset","nativeSrc":"12199:6:53","nodeType":"YulIdentifier","src":"12199:6:53"}],"functionName":{"name":"add","nativeSrc":"12184:3:53","nodeType":"YulIdentifier","src":"12184:3:53"},"nativeSrc":"12184:22:53","nodeType":"YulFunctionCall","src":"12184:22:53"},{"name":"dataEnd","nativeSrc":"12208:7:53","nodeType":"YulIdentifier","src":"12208:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12155:28:53","nodeType":"YulIdentifier","src":"12155:28:53"},"nativeSrc":"12155:61:53","nodeType":"YulFunctionCall","src":"12155:61:53"},"variableNames":[{"name":"value0","nativeSrc":"12145:6:53","nodeType":"YulIdentifier","src":"12145:6:53"}]}]},{"nativeSrc":"12236:303:53","nodeType":"YulBlock","src":"12236:303:53","statements":[{"nativeSrc":"12251:46:53","nodeType":"YulVariableDeclaration","src":"12251:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12282:9:53","nodeType":"YulIdentifier","src":"12282:9:53"},{"kind":"number","nativeSrc":"12293:2:53","nodeType":"YulLiteral","src":"12293:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12278:3:53","nodeType":"YulIdentifier","src":"12278:3:53"},"nativeSrc":"12278:18:53","nodeType":"YulFunctionCall","src":"12278:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12265:12:53","nodeType":"YulIdentifier","src":"12265:12:53"},"nativeSrc":"12265:32:53","nodeType":"YulFunctionCall","src":"12265:32:53"},"variables":[{"name":"offset","nativeSrc":"12255:6:53","nodeType":"YulTypedName","src":"12255:6:53","type":""}]},{"body":{"nativeSrc":"12344:83:53","nodeType":"YulBlock","src":"12344:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12346:77:53","nodeType":"YulIdentifier","src":"12346:77:53"},"nativeSrc":"12346:79:53","nodeType":"YulFunctionCall","src":"12346:79:53"},"nativeSrc":"12346:79:53","nodeType":"YulExpressionStatement","src":"12346:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12316:6:53","nodeType":"YulIdentifier","src":"12316:6:53"},{"kind":"number","nativeSrc":"12324:18:53","nodeType":"YulLiteral","src":"12324:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12313:2:53","nodeType":"YulIdentifier","src":"12313:2:53"},"nativeSrc":"12313:30:53","nodeType":"YulFunctionCall","src":"12313:30:53"},"nativeSrc":"12310:117:53","nodeType":"YulIf","src":"12310:117:53"},{"nativeSrc":"12441:88:53","nodeType":"YulAssignment","src":"12441:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12501:9:53","nodeType":"YulIdentifier","src":"12501:9:53"},{"name":"offset","nativeSrc":"12512:6:53","nodeType":"YulIdentifier","src":"12512:6:53"}],"functionName":{"name":"add","nativeSrc":"12497:3:53","nodeType":"YulIdentifier","src":"12497:3:53"},"nativeSrc":"12497:22:53","nodeType":"YulFunctionCall","src":"12497:22:53"},{"name":"dataEnd","nativeSrc":"12521:7:53","nodeType":"YulIdentifier","src":"12521:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12451:45:53","nodeType":"YulIdentifier","src":"12451:45:53"},"nativeSrc":"12451:78:53","nodeType":"YulFunctionCall","src":"12451:78:53"},"variableNames":[{"name":"value1","nativeSrc":"12441:6:53","nodeType":"YulIdentifier","src":"12441:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr","nativeSrc":"11846:700:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11924:9:53","nodeType":"YulTypedName","src":"11924:9:53","type":""},{"name":"dataEnd","nativeSrc":"11935:7:53","nodeType":"YulTypedName","src":"11935:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11947:6:53","nodeType":"YulTypedName","src":"11947:6:53","type":""},{"name":"value1","nativeSrc":"11955:6:53","nodeType":"YulTypedName","src":"11955:6:53","type":""}],"src":"11846:700:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\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 := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_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_address_payablet_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610108575f3560e01c8063514e62fc1161009457806398332bbc1161006357806398332bbc146102e8578063e3f756de14610312578063f04e283e1461034e578063f2fde38b1461036a578063fee81cf41461038657610108565b8063514e62fc1461026e57806354d1f13d146102aa578063715018a6146102b45780638da5cb5b146102be57610108565b806325692962116100db57806325692962146101bc5780632de94807146101c65780633abb060414610202578063439fab911461022a5780634a4ee7b11461025257610108565b806301ffc9a71461010c578063183a4f6e146101485780631c10893f146101645780631cd64df414610180575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610c7c565b6103c2565b60405161013f9190610cc1565b60405180910390f35b610162600480360381019061015d9190610d0d565b61043b565b005b61017e60048036038101906101799190610d92565b610448565b005b34801561018b575f80fd5b506101a660048036038101906101a19190610d92565b61045e565b6040516101b39190610cc1565b60405180910390f35b6101c4610474565b005b3480156101d1575f80fd5b506101ec60048036038101906101e79190610dd0565b6104c5565b6040516101f99190610e0a565b60405180910390f35b34801561020d575f80fd5b5061022860048036038101906102239190610ed9565b6104de565b005b348015610235575f80fd5b50610250600480360381019061024b9190610fac565b6105eb565b005b61026c60048036038101906102679190610d92565b610713565b005b348015610279575f80fd5b50610294600480360381019061028f9190610d92565b610729565b6040516102a19190610cc1565b60405180910390f35b6102b2610740565b005b6102bc610779565b005b3480156102c9575f80fd5b506102d261078c565b6040516102df9190611006565b60405180910390f35b3480156102f3575f80fd5b506102fc6107b4565b6040516103099190610e0a565b60405180910390f35b34801561031d575f80fd5b506103386004803603810190610333919061101f565b6107b9565b6040516103459190610cc1565b60405180910390f35b61036860048036038101906103639190610dd0565b61080c565b005b610384600480360381019061037f9190610dd0565b61084a565b005b348015610391575f80fd5b506103ac60048036038101906103a79190610dd0565b610873565b6040516103b99190610e0a565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043457506104338261088c565b5b9050919050565b6104453382610905565b50565b610450610914565b61045a828261094b565b5050565b5f818261046a856104c5565b1614905092915050565b5f61047d61095b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b60026104e981610965565b828290508585905014610528576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156105e3578383828181106105485761054761107c565b5b905060200201602081019061055d91906110d3565b5f808888858181106105725761057161107c565b5b90506020020160208101906105879190610dd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061052a565b505050505050565b5f6105f461098c565b905080546003825580156106265760018160011c14303b1061061d5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906106389190611281565b91509150610645826109b5565b61065082600261094b565b5f5b81518110156106d65760015f808484815181106106725761067161107c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610652565b505050801561070e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b61071b610914565b6107258282610905565b5050565b5f8082610735856104c5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610781610914565b61078a5f610a8b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610814610914565b63389a75e1600c52805f526020600c20805442111561083a57636f5e88185f526004601cfd5b5f81555061084781610a8b565b50565b610852610914565b8060601b61086757637448fbae5f526004601cfd5b61087081610a8b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fe57506108fd82610b51565b5b9050919050565b61091082825f610bba565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610949576382b429005f526004601cfd5b565b61095782826001610bba565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c205416610989576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6109bd610c12565b15610a35577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156109f757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610a88565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610a93610c12565b15610af8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610b4e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b638b78c6d8600c52825f526020600c20805483811783610bdc57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c5b81610c27565b8114610c65575f80fd5b50565b5f81359050610c7681610c52565b92915050565b5f60208284031215610c9157610c90610c1f565b5b5f610c9e84828501610c68565b91505092915050565b5f8115159050919050565b610cbb81610ca7565b82525050565b5f602082019050610cd45f830184610cb2565b92915050565b5f819050919050565b610cec81610cda565b8114610cf6575f80fd5b50565b5f81359050610d0781610ce3565b92915050565b5f60208284031215610d2257610d21610c1f565b5b5f610d2f84828501610cf9565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d6182610d38565b9050919050565b610d7181610d57565b8114610d7b575f80fd5b50565b5f81359050610d8c81610d68565b92915050565b5f8060408385031215610da857610da7610c1f565b5b5f610db585828601610d7e565b9250506020610dc685828601610cf9565b9150509250929050565b5f60208284031215610de557610de4610c1f565b5b5f610df284828501610d7e565b91505092915050565b610e0481610cda565b82525050565b5f602082019050610e1d5f830184610dfb565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4457610e43610e23565b5b8235905067ffffffffffffffff811115610e6157610e60610e27565b5b602083019150836020820283011115610e7d57610e7c610e2b565b5b9250929050565b5f8083601f840112610e9957610e98610e23565b5b8235905067ffffffffffffffff811115610eb657610eb5610e27565b5b602083019150836020820283011115610ed257610ed1610e2b565b5b9250929050565b5f805f8060408587031215610ef157610ef0610c1f565b5b5f85013567ffffffffffffffff811115610f0e57610f0d610c23565b5b610f1a87828801610e2f565b9450945050602085013567ffffffffffffffff811115610f3d57610f3c610c23565b5b610f4987828801610e84565b925092505092959194509250565b5f8083601f840112610f6c57610f6b610e23565b5b8235905067ffffffffffffffff811115610f8957610f88610e27565b5b602083019150836001820283011115610fa557610fa4610e2b565b5b9250929050565b5f8060208385031215610fc257610fc1610c1f565b5b5f83013567ffffffffffffffff811115610fdf57610fde610c23565b5b610feb85828601610f57565b92509250509250929050565b61100081610d57565b82525050565b5f6020820190506110195f830184610ff7565b92915050565b5f805f6040848603121561103657611035610c1f565b5b5f61104386828701610d7e565b935050602084013567ffffffffffffffff81111561106457611063610c23565b5b61107086828701610f57565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6110b281610ca7565b81146110bc575f80fd5b50565b5f813590506110cd816110a9565b92915050565b5f602082840312156110e8576110e7610c1f565b5b5f6110f5848285016110bf565b91505092915050565b5f61110882610d38565b9050919050565b611118816110fe565b8114611122575f80fd5b50565b5f813590506111338161110f565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61117f82611139565b810181811067ffffffffffffffff8211171561119e5761119d611149565b5b80604052505050565b5f6111b0610c16565b90506111bc8282611176565b919050565b5f67ffffffffffffffff8211156111db576111da611149565b5b602082029050602081019050919050565b5f6111fe6111f9846111c1565b6111a7565b9050808382526020820190506020840283018581111561122157611220610e2b565b5b835b8181101561124a57806112368882610d7e565b845260208401935050602081019050611223565b5050509392505050565b5f82601f83011261126857611267610e23565b5b81356112788482602086016111ec565b91505092915050565b5f806040838503121561129757611296610c1f565b5b5f6112a485828601611125565b925050602083013567ffffffffffffffff8111156112c5576112c4610c23565b5b6112d185828601611254565b915050925092905056fea26469706673582212207bbcb52bcd17b2acb05e964af2f520d69a68d6012efbb2f646861e99ee8e53b264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x514E62FC GT PUSH2 0x94 JUMPI DUP1 PUSH4 0x98332BBC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x98332BBC EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x386 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x514E62FC EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2BE JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x25692962 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x3ABB0604 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x252 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x180 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xC7C JUMP JUMPDEST PUSH2 0x3C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xD0D JUMP JUMPDEST PUSH2 0x43B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A1 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C4 PUSH2 0x474 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0xED9 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x5EB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x267 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x713 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x729 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B2 PUSH2 0x740 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BC PUSH2 0x779 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D2 PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1006 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x309 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x384 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37F SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x391 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x434 JUMPI POP PUSH2 0x433 DUP3 PUSH2 0x88C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x445 CALLER DUP3 PUSH2 0x905 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x450 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x45A DUP3 DUP3 PUSH2 0x94B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x46A DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47D PUSH2 0x95B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH2 0x4E9 DUP2 PUSH2 0x965 JUMP JUMPDEST DUP3 DUP3 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x528 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP6 DUP6 SWAP1 POP DUP2 LT ISZERO PUSH2 0x5E3 JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x548 JUMPI PUSH2 0x547 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x55D SWAP2 SWAP1 PUSH2 0x10D3 JUMP JUMPDEST PUSH0 DUP1 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x572 JUMPI PUSH2 0x571 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x587 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x52A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5F4 PUSH2 0x98C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61D JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x638 SWAP2 SWAP1 PUSH2 0x1281 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x645 DUP3 PUSH2 0x9B5 JUMP JUMPDEST PUSH2 0x650 DUP3 PUSH1 0x2 PUSH2 0x94B JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x672 JUMPI PUSH2 0x671 PUSH2 0x107C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x652 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x70E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x71B PUSH2 0x914 JUMP JUMPDEST PUSH2 0x725 DUP3 DUP3 PUSH2 0x905 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0x735 DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x781 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x78A PUSH0 PUSH2 0xA8B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x814 PUSH2 0x914 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x83A JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x847 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x852 PUSH2 0x914 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x867 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x870 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8FE JUMPI POP PUSH2 0x8FD DUP3 PUSH2 0xB51 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x910 DUP3 DUP3 PUSH0 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x949 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x957 DUP3 DUP3 PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x989 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9BD PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xA35 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x9F7 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xA88 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xA93 PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xAF8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xB4E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0xBDC JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5B DUP2 PUSH2 0xC27 JUMP JUMPDEST DUP2 EQ PUSH2 0xC65 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC76 DUP2 PUSH2 0xC52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC90 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC9E DUP5 DUP3 DUP6 ADD PUSH2 0xC68 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCBB DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCD4 PUSH0 DUP4 ADD DUP5 PUSH2 0xCB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCEC DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP2 EQ PUSH2 0xCF6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD07 DUP2 PUSH2 0xCE3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD22 JUMPI PUSH2 0xD21 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD2F DUP5 DUP3 DUP6 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xD61 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD71 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP2 EQ PUSH2 0xD7B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD8C DUP2 PUSH2 0xD68 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA8 JUMPI PUSH2 0xDA7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDB5 DUP6 DUP3 DUP7 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC6 DUP6 DUP3 DUP7 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE5 JUMPI PUSH2 0xDE4 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDF2 DUP5 DUP3 DUP6 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE04 DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE1D PUSH0 DUP4 ADD DUP5 PUSH2 0xDFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE44 JUMPI PUSH2 0xE43 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE61 JUMPI PUSH2 0xE60 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE7D JUMPI PUSH2 0xE7C PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE99 JUMPI PUSH2 0xE98 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEB6 JUMPI PUSH2 0xEB5 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xED2 JUMPI PUSH2 0xED1 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xEF1 JUMPI PUSH2 0xEF0 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF1A DUP8 DUP3 DUP9 ADD PUSH2 0xE2F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF3D JUMPI PUSH2 0xF3C PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF49 DUP8 DUP3 DUP9 ADD PUSH2 0xE84 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF6C JUMPI PUSH2 0xF6B PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF88 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFA5 JUMPI PUSH2 0xFA4 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFC2 JUMPI PUSH2 0xFC1 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFDF JUMPI PUSH2 0xFDE PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xFEB DUP6 DUP3 DUP7 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1000 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1019 PUSH0 DUP4 ADD DUP5 PUSH2 0xFF7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1036 JUMPI PUSH2 0x1035 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1043 DUP7 DUP3 DUP8 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1064 JUMPI PUSH2 0x1063 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x1070 DUP7 DUP3 DUP8 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x10B2 DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10CD DUP2 PUSH2 0x10A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10F5 DUP5 DUP3 DUP6 ADD PUSH2 0x10BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1108 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1118 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP2 EQ PUSH2 0x1122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1133 DUP2 PUSH2 0x110F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x117F DUP3 PUSH2 0x1139 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x119E JUMPI PUSH2 0x119D PUSH2 0x1149 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11B0 PUSH2 0xC16 JUMP JUMPDEST SWAP1 POP PUSH2 0x11BC DUP3 DUP3 PUSH2 0x1176 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DB JUMPI PUSH2 0x11DA PUSH2 0x1149 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11FE PUSH2 0x11F9 DUP5 PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0x11A7 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 0x1221 JUMPI PUSH2 0x1220 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x124A JUMPI DUP1 PUSH2 0x1236 DUP9 DUP3 PUSH2 0xD7E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1268 JUMPI PUSH2 0x1267 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1278 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x11EC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1297 JUMPI PUSH2 0x1296 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A4 DUP6 DUP3 DUP7 ADD PUSH2 0x1125 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12C5 JUMPI PUSH2 0x12C4 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x12D1 DUP6 DUP3 DUP7 ADD PUSH2 0x1254 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0xBCB52BCD17B2ACB05E964AF2F520D69A68D6012EFBB2F646861E99EE DUP15 MSTORE8 0xB2 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"399:2116:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:208:34;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:109:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9588:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11178:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;10567:353:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2201:312:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1138:376;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9856:125:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10982:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;510:50:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1753:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1023:208:34;1119:4;1157:27;1142:42;;;:11;:42;;;;:82;;;;1188:36;1212:11;1188:23;:36::i;:::-;1142:82;1135:89;;1023:208;;;:::o;10127:109:18:-;10198:31;10211:10;10223:5;10198:12;:31::i;:::-;10127:109;:::o;9588:123::-;12517:13:17;:11;:13::i;:::-;9680:24:18::1;9692:4;9698:5;9680:11;:24::i;:::-;9588:123:::0;;:::o;11178:139::-;11257:4;11305:5;11296;11280:13;11288:4;11280:7;:13::i;:::-;:21;:30;11273:37;;11178:139;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;10567:353:18:-;10627:13;10769:15;10763:4;10756:29;10811:4;10805;10798:18;10898:4;10892;10882:21;10876:28;10867:37;;10567:353;;;:::o;2201:312:35:-;554:6;11733:18:18;11745:5;11733:11;:18::i;:::-;2343:8:35::1;;:15;;2326:6;;:13;;:32;2322:72;;2367:27;;;;;;;;;;;;;;2322:72;2410:9;2405:102;2429:6;;:13;;2425:1;:17;2405:102;;;2485:8;;2494:1;2485:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2463:8;:19:::0;2472:6:::1;;2479:1;2472:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2463:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2444:3;;;;;;;2405:102;;;;2201:312:::0;;;;;:::o;1138:376::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1227:14:35::1;1243:27:::0;1285:5:::1;;1274:39;;;;;;;:::i;:::-;1226:87;;;;1323:24;1340:6;1323:16;:24::i;:::-;1357:38;1369:6;554;1357:11;:38::i;:::-;1410:9;1405:103;1429:10;:17;1425:1;:21;1405:103;;;1493:4;1467:8;:23:::0;1476:10:::1;1487:1;1476:13;;;;;;;;:::i;:::-;;;;;;;;1467:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1448:3;;;;;;;1405:103;;;;1216:298;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1138:376:35;;:::o;9856:125:18:-;12517:13:17;:11;:13::i;:::-;9949:25:18::1;9962:4;9968:5;9949:12;:25::i;:::-;9856:125:::0;;:::o;10982:134::-;11060:4;11108:1;11099:5;11083:13;11091:4;11083:7;:13::i;:::-;:21;:26;;11076:33;;10982:134;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;510:50:35:-;554:6;510:50;:::o;1753:149::-;1857:4;1880:8;:15;1889:5;1880:15;;;;;;;;;;;;;;;;;;;;;;;;;1873:22;;1753:149;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;4304:117:18:-;4382:32;4395:4;4401:5;4408;4382:12;:32::i;:::-;4304:117;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;4053:115:18:-;4130:31;4143:4;4149:5;4156:4;4130:12;:31::i;:::-;4053:115;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;4495:554:18:-;4680:15;4674:4;4667:29;4722:8;4716:4;4709:22;4913:5;4905:4;4899;4889:21;4883:28;4879:40;4869:164;;4952:10;4946:4;4939:24;5014:4;5008;5001:18;4869:164;4495:554;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;2952:967:18:-;3118:15;3112:4;3105:29;3160:4;3154;3147:18;3210:4;3204;3194:21;3288:8;3282:15;3395:5;3386:7;3383:18;3639:2;3629:62;;3682:5;3673:7;3669:19;3660:7;3656:33;3645:44;;3629:62;3763:7;3753:8;3746:25;3895:7;3887:4;3881:11;3877:2;3873:20;3841:30;3838:1;3835;3830:73;3091:822;;;2952:967;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:126::-;2246:7;2286:42;2279:5;2275:54;2264:65;;2209:126;;;:::o;2341:96::-;2378:7;2407:24;2425:5;2407:24;:::i;:::-;2396:35;;2341:96;;;:::o;2443:122::-;2516:24;2534:5;2516:24;:::i;:::-;2509:5;2506:35;2496:63;;2555:1;2552;2545:12;2496:63;2443:122;:::o;2571:139::-;2617:5;2655:6;2642:20;2633:29;;2671:33;2698:5;2671:33;:::i;:::-;2571:139;;;;:::o;2716:474::-;2784:6;2792;2841:2;2829:9;2820:7;2816:23;2812:32;2809:119;;;2847:79;;:::i;:::-;2809:119;2967:1;2992:53;3037:7;3028:6;3017:9;3013:22;2992:53;:::i;:::-;2982:63;;2938:117;3094:2;3120:53;3165:7;3156:6;3145:9;3141:22;3120:53;:::i;:::-;3110:63;;3065:118;2716:474;;;;;:::o;3196:329::-;3255:6;3304:2;3292:9;3283:7;3279:23;3275:32;3272:119;;;3310:79;;:::i;:::-;3272:119;3430:1;3455:53;3500:7;3491:6;3480:9;3476:22;3455:53;:::i;:::-;3445:63;;3401:117;3196:329;;;;:::o;3531:118::-;3618:24;3636:5;3618:24;:::i;:::-;3613:3;3606:37;3531:118;;:::o;3655:222::-;3748:4;3786:2;3775:9;3771:18;3763:26;;3799:71;3867:1;3856:9;3852:17;3843:6;3799:71;:::i;:::-;3655:222;;;;:::o;3883:117::-;3992:1;3989;3982:12;4006:117;4115:1;4112;4105:12;4129:117;4238:1;4235;4228:12;4269:568;4342:8;4352:6;4402:3;4395:4;4387:6;4383:17;4379:27;4369:122;;4410:79;;:::i;:::-;4369:122;4523:6;4510:20;4500:30;;4553:18;4545:6;4542:30;4539:117;;;4575:79;;:::i;:::-;4539:117;4689:4;4681:6;4677:17;4665:29;;4743:3;4735:4;4727:6;4723:17;4713:8;4709:32;4706:41;4703:128;;;4750:79;;:::i;:::-;4703:128;4269:568;;;;;:::o;4857:565::-;4927:8;4937:6;4987:3;4980:4;4972:6;4968:17;4964:27;4954:122;;4995:79;;:::i;:::-;4954:122;5108:6;5095:20;5085:30;;5138:18;5130:6;5127:30;5124:117;;;5160:79;;:::i;:::-;5124:117;5274:4;5266:6;5262:17;5250:29;;5328:3;5320:4;5312:6;5308:17;5298:8;5294:32;5291:41;5288:128;;;5335:79;;:::i;:::-;5288:128;4857:565;;;;;:::o;5428:928::-;5547:6;5555;5563;5571;5620:2;5608:9;5599:7;5595:23;5591:32;5588:119;;;5626:79;;:::i;:::-;5588:119;5774:1;5763:9;5759:17;5746:31;5804:18;5796:6;5793:30;5790:117;;;5826:79;;:::i;:::-;5790:117;5939:80;6011:7;6002:6;5991:9;5987:22;5939:80;:::i;:::-;5921:98;;;;5717:312;6096:2;6085:9;6081:18;6068:32;6127:18;6119:6;6116:30;6113:117;;;6149:79;;:::i;:::-;6113:117;6262:77;6331:7;6322:6;6311:9;6307:22;6262:77;:::i;:::-;6244:95;;;;6039:310;5428:928;;;;;;;:::o;6375:552::-;6432:8;6442:6;6492:3;6485:4;6477:6;6473:17;6469:27;6459:122;;6500:79;;:::i;:::-;6459:122;6613:6;6600:20;6590:30;;6643:18;6635:6;6632:30;6629:117;;;6665:79;;:::i;:::-;6629:117;6779:4;6771:6;6767:17;6755:29;;6833:3;6825:4;6817:6;6813:17;6803:8;6799:32;6796:41;6793:128;;;6840:79;;:::i;:::-;6793:128;6375:552;;;;;:::o;6933:527::-;7003:6;7011;7060:2;7048:9;7039:7;7035:23;7031:32;7028:119;;;7066:79;;:::i;:::-;7028:119;7214:1;7203:9;7199:17;7186:31;7244:18;7236:6;7233:30;7230:117;;;7266:79;;:::i;:::-;7230:117;7379:64;7435:7;7426:6;7415:9;7411:22;7379:64;:::i;:::-;7361:82;;;;7157:296;6933:527;;;;;:::o;7466:118::-;7553:24;7571:5;7553:24;:::i;:::-;7548:3;7541:37;7466:118;;:::o;7590:222::-;7683:4;7721:2;7710:9;7706:18;7698:26;;7734:71;7802:1;7791:9;7787:17;7778:6;7734:71;:::i;:::-;7590:222;;;;:::o;7818:672::-;7897:6;7905;7913;7962:2;7950:9;7941:7;7937:23;7933:32;7930:119;;;7968:79;;:::i;:::-;7930:119;8088:1;8113:53;8158:7;8149:6;8138:9;8134:22;8113:53;:::i;:::-;8103:63;;8059:117;8243:2;8232:9;8228:18;8215:32;8274:18;8266:6;8263:30;8260:117;;;8296:79;;:::i;:::-;8260:117;8409:64;8465:7;8456:6;8445:9;8441:22;8409:64;:::i;:::-;8391:82;;;;8186:297;7818:672;;;;;:::o;8496:180::-;8544:77;8541:1;8534:88;8641:4;8638:1;8631:15;8665:4;8662:1;8655:15;8682:116;8752:21;8767:5;8752:21;:::i;:::-;8745:5;8742:32;8732:60;;8788:1;8785;8778:12;8732:60;8682:116;:::o;8804:133::-;8847:5;8885:6;8872:20;8863:29;;8901:30;8925:5;8901:30;:::i;:::-;8804:133;;;;:::o;8943:323::-;8999:6;9048:2;9036:9;9027:7;9023:23;9019:32;9016:119;;;9054:79;;:::i;:::-;9016:119;9174:1;9199:50;9241:7;9232:6;9221:9;9217:22;9199:50;:::i;:::-;9189:60;;9145:114;8943:323;;;;:::o;9272:104::-;9317:7;9346:24;9364:5;9346:24;:::i;:::-;9335:35;;9272:104;;;:::o;9382:138::-;9463:32;9489:5;9463:32;:::i;:::-;9456:5;9453:43;9443:71;;9510:1;9507;9500:12;9443:71;9382:138;:::o;9526:155::-;9580:5;9618:6;9605:20;9596:29;;9634:41;9669:5;9634:41;:::i;:::-;9526:155;;;;:::o;9687:102::-;9728:6;9779:2;9775:7;9770:2;9763:5;9759:14;9755:28;9745:38;;9687:102;;;:::o;9795:180::-;9843:77;9840:1;9833:88;9940:4;9937:1;9930:15;9964:4;9961:1;9954:15;9981:281;10064:27;10086:4;10064:27;:::i;:::-;10056:6;10052:40;10194:6;10182:10;10179:22;10158:18;10146:10;10143:34;10140:62;10137:88;;;10205:18;;:::i;:::-;10137:88;10245:10;10241:2;10234:22;10024:238;9981:281;;:::o;10268:129::-;10302:6;10329:20;;:::i;:::-;10319:30;;10358:33;10386:4;10378:6;10358:33;:::i;:::-;10268:129;;;:::o;10403:311::-;10480:4;10570:18;10562:6;10559:30;10556:56;;;10592:18;;:::i;:::-;10556:56;10642:4;10634:6;10630:17;10622:25;;10702:4;10696;10692:15;10684:23;;10403:311;;;:::o;10737:710::-;10833:5;10858:81;10874:64;10931:6;10874:64;:::i;:::-;10858:81;:::i;:::-;10849:90;;10959:5;10988:6;10981:5;10974:21;11022:4;11015:5;11011:16;11004:23;;11075:4;11067:6;11063:17;11055:6;11051:30;11104:3;11096:6;11093:15;11090:122;;;11123:79;;:::i;:::-;11090:122;11238:6;11221:220;11255:6;11250:3;11247:15;11221:220;;;11330:3;11359:37;11392:3;11380:10;11359:37;:::i;:::-;11354:3;11347:50;11426:4;11421:3;11417:14;11410:21;;11297:144;11281:4;11276:3;11272:14;11265:21;;11221:220;;;11225:21;10839:608;;10737:710;;;;;:::o;11470:370::-;11541:5;11590:3;11583:4;11575:6;11571:17;11567:27;11557:122;;11598:79;;:::i;:::-;11557:122;11715:6;11702:20;11740:94;11830:3;11822:6;11815:4;11807:6;11803:17;11740:94;:::i;:::-;11731:103;;11547:293;11470:370;;;;:::o;11846:700::-;11947:6;11955;12004:2;11992:9;11983:7;11979:23;11975:32;11972:119;;;12010:79;;:::i;:::-;11972:119;12130:1;12155:61;12208:7;12199:6;12188:9;12184:22;12155:61;:::i;:::-;12145:71;;12101:125;12293:2;12282:9;12278:18;12265:32;12324:18;12316:6;12313:30;12310:117;;;12346:79;;:::i;:::-;12310:117;12451:78;12521:7;12512:6;12501:9;12497:22;12451:78;:::i;:::-;12441:88;;12236:303;11846:700;;;;;:::o"},"methodIdentifiers":{"LIST_MANAGER_ROLE()":"98332bbc","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","setAllowed(address[],bool[])":"3abb0604","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LIST_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"allowed_\",\"type\":\"bool[]\"}],\"name\":\"setAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization data `(address owner, address[] allowList)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"setAllowed(address[],bool[])\":{\"details\":\"The length of the `users_` and `allowed_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"allowed_\":\"The allowed status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_allowed\":{\"details\":\"An internal mapping of allowed statuses\"}},\"title\":\"Simple AllowList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"LIST_MANAGER_ROLE()\":{\"notice\":\"The role for managing the allow list\"},\"constructor\":{\"notice\":\"Construct a new SimpleAllowList\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the list of allowed addresses\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized\"},\"setAllowed(address[],bool[])\":{\"notice\":\"Set the allowed status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/SimpleAllowList.sol\":\"SimpleAllowList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/allowlists/SimpleAllowList.sol\":{\"keccak256\":\"0x85f83d5522cac95d1cfe50eaa95d5f8f39fc46bec0566402025505259bd061f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6452442e92e1fdaef23b59b67ce1f7d65cdc96acf7bcac0bb16318f007e08644\",\"dweb:/ipfs/QmeE33irgs9tPnnbzGidzb2iBKo7BSKmto7kMGWTVT3t5k\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/allowlists/SimpleDenyList.sol":{"SimpleDenyList":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"denied_","type":"bool[]"}],"name":"setDenied","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13120":{"entryPoint":null,"id":13120,"parameterSlots":0,"returnSlots":0},"@_13329":{"entryPoint":null,"id":13329,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610faf806101b45f395ff3fe60806040526004361061009b575f3560e01c8063715018a611610063578063715018a61461013f5780638da5cb5b14610149578063e3f756de14610173578063f04e283e146101af578063f2fde38b146101cb578063fee81cf4146101e75761009b565b806301ffc9a71461009f578063141973b0146100db5780632569296214610103578063439fab911461010d57806354d1f13d14610135575b5f80fd5b3480156100aa575f80fd5b506100c560048036038101906100c091906109ad565b610223565b6040516100d291906109f2565b60405180910390f35b3480156100e6575f80fd5b5061010160048036038101906100fc9190610ac1565b61029c565b005b61010b6103a5565b005b348015610118575f80fd5b50610133600480360381019061012e9190610b94565b6103f6565b005b61013d610513565b005b61014761054c565b005b348015610154575f80fd5b5061015d61055f565b60405161016a9190610c1e565b60405180910390f35b34801561017e575f80fd5b5061019960048036038101906101949190610c61565b610587565b6040516101a691906109f2565b60405180910390f35b6101c960048036038101906101c49190610cbe565b6105db565b005b6101e560048036038101906101e09190610cbe565b610619565b005b3480156101f2575f80fd5b5061020d60048036038101906102089190610cbe565b610642565b60405161021a9190610d01565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029557506102948261065b565b5b9050919050565b6102a46106d4565b8181905084849050146102e3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561039e5782828281811061030357610302610d1a565b5b90506020020160208101906103189190610d71565b5f8087878581811061032d5761032c610d1a565b5b90506020020160208101906103429190610cbe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506102e5565b5050505050565b5f6103ae61070b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f6103ff610715565b905080546003825580156104315760018160011c14303b106104285763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906104439190610f1f565b915091506104508261073e565b5f5b81518110156104d65760015f8084848151811061047257610471610d1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610452565b505050801561050e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105546106d4565b61055d5f610814565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161590509392505050565b6105e36106d4565b63389a75e1600c52805f526020600c20805442111561060957636f5e88185f526004601cfd5b5f81555061061681610814565b50565b6106216106d4565b8060601b61063657637448fbae5f526004601cfd5b61063f81610814565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106cd57506106cc826108da565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610709576382b429005f526004601cfd5b565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610746610943565b156107be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561078057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610811565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b61081c610943565b15610881577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506108d7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61098c81610958565b8114610996575f80fd5b50565b5f813590506109a781610983565b92915050565b5f602082840312156109c2576109c1610950565b5b5f6109cf84828501610999565b91505092915050565b5f8115159050919050565b6109ec816109d8565b82525050565b5f602082019050610a055f8301846109e3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610a2c57610a2b610a0b565b5b8235905067ffffffffffffffff811115610a4957610a48610a0f565b5b602083019150836020820283011115610a6557610a64610a13565b5b9250929050565b5f8083601f840112610a8157610a80610a0b565b5b8235905067ffffffffffffffff811115610a9e57610a9d610a0f565b5b602083019150836020820283011115610aba57610ab9610a13565b5b9250929050565b5f805f8060408587031215610ad957610ad8610950565b5b5f85013567ffffffffffffffff811115610af657610af5610954565b5b610b0287828801610a17565b9450945050602085013567ffffffffffffffff811115610b2557610b24610954565b5b610b3187828801610a6c565b925092505092959194509250565b5f8083601f840112610b5457610b53610a0b565b5b8235905067ffffffffffffffff811115610b7157610b70610a0f565b5b602083019150836001820283011115610b8d57610b8c610a13565b5b9250929050565b5f8060208385031215610baa57610ba9610950565b5b5f83013567ffffffffffffffff811115610bc757610bc6610954565b5b610bd385828601610b3f565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c0882610bdf565b9050919050565b610c1881610bfe565b82525050565b5f602082019050610c315f830184610c0f565b92915050565b610c4081610bfe565b8114610c4a575f80fd5b50565b5f81359050610c5b81610c37565b92915050565b5f805f60408486031215610c7857610c77610950565b5b5f610c8586828701610c4d565b935050602084013567ffffffffffffffff811115610ca657610ca5610954565b5b610cb286828701610b3f565b92509250509250925092565b5f60208284031215610cd357610cd2610950565b5b5f610ce084828501610c4d565b91505092915050565b5f819050919050565b610cfb81610ce9565b82525050565b5f602082019050610d145f830184610cf2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610d50816109d8565b8114610d5a575f80fd5b50565b5f81359050610d6b81610d47565b92915050565b5f60208284031215610d8657610d85610950565b5b5f610d9384828501610d5d565b91505092915050565b5f610da682610bdf565b9050919050565b610db681610d9c565b8114610dc0575f80fd5b50565b5f81359050610dd181610dad565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610e1d82610dd7565b810181811067ffffffffffffffff82111715610e3c57610e3b610de7565b5b80604052505050565b5f610e4e610947565b9050610e5a8282610e14565b919050565b5f67ffffffffffffffff821115610e7957610e78610de7565b5b602082029050602081019050919050565b5f610e9c610e9784610e5f565b610e45565b90508083825260208201905060208402830185811115610ebf57610ebe610a13565b5b835b81811015610ee85780610ed48882610c4d565b845260208401935050602081019050610ec1565b5050509392505050565b5f82601f830112610f0657610f05610a0b565b5b8135610f16848260208601610e8a565b91505092915050565b5f8060408385031215610f3557610f34610950565b5b5f610f4285828601610dc3565b925050602083013567ffffffffffffffff811115610f6357610f62610954565b5b610f6f85828601610ef2565b915050925092905056fea2646970667358221220ddfce1aec2fb0f8d518874929c00497c2d81c727e9711b3c7324436f014ef3ef64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFAF DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x1E7 JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x141973B0 EQ PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x135 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x223 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xAC1 JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH2 0x3A5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13D PUSH2 0x513 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x147 PUSH2 0x54C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15D PUSH2 0x55F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C4 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x619 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x208 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0xD01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x295 JUMPI POP PUSH2 0x294 DUP3 PUSH2 0x65B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A4 PUSH2 0x6D4 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x2E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x39E JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x318 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x32D JUMPI PUSH2 0x32C PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2E5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3AE PUSH2 0x70B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x3FF PUSH2 0x715 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x431 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x428 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x443 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x450 DUP3 PUSH2 0x73E JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x472 JUMPI PUSH2 0x471 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x452 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x554 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0x55D PUSH0 PUSH2 0x814 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5E3 PUSH2 0x6D4 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x609 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x616 DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x621 PUSH2 0x6D4 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x636 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x63F DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6CD JUMPI POP PUSH2 0x6CC DUP3 PUSH2 0x8DA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x709 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x746 PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x7BE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x780 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x811 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x81C PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x881 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0x958 JUMP JUMPDEST DUP2 EQ PUSH2 0x996 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9A7 DUP2 PUSH2 0x983 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C2 JUMPI PUSH2 0x9C1 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x9CF DUP5 DUP3 DUP6 ADD PUSH2 0x999 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9EC DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA05 PUSH0 DUP4 ADD DUP5 PUSH2 0x9E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA2C JUMPI PUSH2 0xA2B PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA49 JUMPI PUSH2 0xA48 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xA65 JUMPI PUSH2 0xA64 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA81 JUMPI PUSH2 0xA80 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA9E JUMPI PUSH2 0xA9D PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xABA JUMPI PUSH2 0xAB9 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAF6 JUMPI PUSH2 0xAF5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB02 DUP8 DUP3 DUP9 ADD PUSH2 0xA17 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB31 DUP8 DUP3 DUP9 ADD PUSH2 0xA6C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB54 JUMPI PUSH2 0xB53 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB71 JUMPI PUSH2 0xB70 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB8D JUMPI PUSH2 0xB8C PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBAA JUMPI PUSH2 0xBA9 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBC7 JUMPI PUSH2 0xBC6 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xBD3 DUP6 DUP3 DUP7 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC08 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC18 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC31 PUSH0 DUP4 ADD DUP5 PUSH2 0xC0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC40 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP2 EQ PUSH2 0xC4A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC5B DUP2 PUSH2 0xC37 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC78 JUMPI PUSH2 0xC77 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC85 DUP7 DUP3 DUP8 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCA6 JUMPI PUSH2 0xCA5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xCB2 DUP7 DUP3 DUP8 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCE0 DUP5 DUP3 DUP6 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCFB DUP2 PUSH2 0xCE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD14 PUSH0 DUP4 ADD DUP5 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xD50 DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP2 EQ PUSH2 0xD5A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD6B DUP2 PUSH2 0xD47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD85 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD93 DUP5 DUP3 DUP6 ADD PUSH2 0xD5D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB6 DUP2 PUSH2 0xD9C JUMP JUMPDEST DUP2 EQ PUSH2 0xDC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD1 DUP2 PUSH2 0xDAD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xE1D DUP3 PUSH2 0xDD7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xE3C JUMPI PUSH2 0xE3B PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE4E PUSH2 0x947 JUMP JUMPDEST SWAP1 POP PUSH2 0xE5A DUP3 DUP3 PUSH2 0xE14 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE79 JUMPI PUSH2 0xE78 PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE9C PUSH2 0xE97 DUP5 PUSH2 0xE5F JUMP JUMPDEST PUSH2 0xE45 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 0xEBF JUMPI PUSH2 0xEBE PUSH2 0xA13 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEE8 JUMPI DUP1 PUSH2 0xED4 DUP9 DUP3 PUSH2 0xC4D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC1 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF06 JUMPI PUSH2 0xF05 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xF16 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE8A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xDC3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xF6F DUP6 DUP3 DUP7 ADD PUSH2 0xEF2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xFC 0xE1 0xAE 0xC2 0xFB 0xF DUP14 MLOAD DUP9 PUSH21 0x929C00497C2D81C727E9711B3C7324436F014EF3EF PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"347:1933:36:-:0;;;729:53;;;;;;;;;;634:28:34;651:10;634:16;;;:28;;:::i;:::-;753:22:36;:20;;;:22;;:::i;:::-;347:1933;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;347:1933:36:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":1748,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":2371,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":1813,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":1854,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":1803,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":2068,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1299,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":1499,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_13380":{"entryPoint":1014,"id":13380,"parameterSlots":2,"returnSlots":0},"@isAllowed_13397":{"entryPoint":1415,"id":13397,"parameterSlots":3,"returnSlots":1},"@owner_6404":{"entryPoint":1375,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":1602,"id":6414,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1356,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":933,"id":6376,"parameterSlots":0,"returnSlots":0},"@setDenied_13444":{"entryPoint":668,"id":13444,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13153":{"entryPoint":547,"id":13153,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":1627,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":2266,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":1561,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3722,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3149,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":3523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":2583,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":2668,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":3421,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":2879,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":3262,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr":{"entryPoint":3871,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":3169,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":2753,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":3441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":2477,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":2964,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3087,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2531,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3314,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3102,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2546,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3329,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3653,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":2375,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3679,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":3070,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":3484,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2520,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":2392,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3039,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3305,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":3604,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":3354,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3559,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":2575,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":2571,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":2579,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":2388,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2384,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3543,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3127,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":3501,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3399,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":2435,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:11461:53","nodeType":"YulBlock","src":"0:11461:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1994:478:53","nodeType":"YulBlock","src":"1994:478:53","statements":[{"body":{"nativeSrc":"2043:83:53","nodeType":"YulBlock","src":"2043:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2045:77:53","nodeType":"YulIdentifier","src":"2045:77:53"},"nativeSrc":"2045:79:53","nodeType":"YulFunctionCall","src":"2045:79:53"},"nativeSrc":"2045:79:53","nodeType":"YulExpressionStatement","src":"2045:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2022:6:53","nodeType":"YulIdentifier","src":"2022:6:53"},{"kind":"number","nativeSrc":"2030:4:53","nodeType":"YulLiteral","src":"2030:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2018:3:53","nodeType":"YulIdentifier","src":"2018:3:53"},"nativeSrc":"2018:17:53","nodeType":"YulFunctionCall","src":"2018:17:53"},{"name":"end","nativeSrc":"2037:3:53","nodeType":"YulIdentifier","src":"2037:3:53"}],"functionName":{"name":"slt","nativeSrc":"2014:3:53","nodeType":"YulIdentifier","src":"2014:3:53"},"nativeSrc":"2014:27:53","nodeType":"YulFunctionCall","src":"2014:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2007:6:53","nodeType":"YulIdentifier","src":"2007:6:53"},"nativeSrc":"2007:35:53","nodeType":"YulFunctionCall","src":"2007:35:53"},"nativeSrc":"2004:122:53","nodeType":"YulIf","src":"2004:122:53"},{"nativeSrc":"2135:30:53","nodeType":"YulAssignment","src":"2135:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2158:6:53","nodeType":"YulIdentifier","src":"2158:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2145:12:53","nodeType":"YulIdentifier","src":"2145:12:53"},"nativeSrc":"2145:20:53","nodeType":"YulFunctionCall","src":"2145:20:53"},"variableNames":[{"name":"length","nativeSrc":"2135:6:53","nodeType":"YulIdentifier","src":"2135:6:53"}]},{"body":{"nativeSrc":"2208:83:53","nodeType":"YulBlock","src":"2208:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2210:77:53","nodeType":"YulIdentifier","src":"2210:77:53"},"nativeSrc":"2210:79:53","nodeType":"YulFunctionCall","src":"2210:79:53"},"nativeSrc":"2210:79:53","nodeType":"YulExpressionStatement","src":"2210:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2180:6:53","nodeType":"YulIdentifier","src":"2180:6:53"},{"kind":"number","nativeSrc":"2188:18:53","nodeType":"YulLiteral","src":"2188:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2177:2:53","nodeType":"YulIdentifier","src":"2177:2:53"},"nativeSrc":"2177:30:53","nodeType":"YulFunctionCall","src":"2177:30:53"},"nativeSrc":"2174:117:53","nodeType":"YulIf","src":"2174:117:53"},{"nativeSrc":"2300:29:53","nodeType":"YulAssignment","src":"2300:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2316:6:53","nodeType":"YulIdentifier","src":"2316:6:53"},{"kind":"number","nativeSrc":"2324:4:53","nodeType":"YulLiteral","src":"2324:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2312:3:53","nodeType":"YulIdentifier","src":"2312:3:53"},"nativeSrc":"2312:17:53","nodeType":"YulFunctionCall","src":"2312:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2300:8:53","nodeType":"YulIdentifier","src":"2300:8:53"}]},{"body":{"nativeSrc":"2383:83:53","nodeType":"YulBlock","src":"2383:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2385:77:53","nodeType":"YulIdentifier","src":"2385:77:53"},"nativeSrc":"2385:79:53","nodeType":"YulFunctionCall","src":"2385:79:53"},"nativeSrc":"2385:79:53","nodeType":"YulExpressionStatement","src":"2385:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2348:8:53","nodeType":"YulIdentifier","src":"2348:8:53"},{"arguments":[{"name":"length","nativeSrc":"2362:6:53","nodeType":"YulIdentifier","src":"2362:6:53"},{"kind":"number","nativeSrc":"2370:4:53","nodeType":"YulLiteral","src":"2370:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"},"nativeSrc":"2358:17:53","nodeType":"YulFunctionCall","src":"2358:17:53"}],"functionName":{"name":"add","nativeSrc":"2344:3:53","nodeType":"YulIdentifier","src":"2344:3:53"},"nativeSrc":"2344:32:53","nodeType":"YulFunctionCall","src":"2344:32:53"},{"name":"end","nativeSrc":"2378:3:53","nodeType":"YulIdentifier","src":"2378:3:53"}],"functionName":{"name":"gt","nativeSrc":"2341:2:53","nodeType":"YulIdentifier","src":"2341:2:53"},"nativeSrc":"2341:41:53","nodeType":"YulFunctionCall","src":"2341:41:53"},"nativeSrc":"2338:128:53","nodeType":"YulIf","src":"2338:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"1904:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:53","nodeType":"YulTypedName","src":"1961:6:53","type":""},{"name":"end","nativeSrc":"1969:3:53","nodeType":"YulTypedName","src":"1969:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1977:8:53","nodeType":"YulTypedName","src":"1977:8:53","type":""},{"name":"length","nativeSrc":"1987:6:53","nodeType":"YulTypedName","src":"1987:6:53","type":""}],"src":"1904:568:53"},{"body":{"nativeSrc":"2579:478:53","nodeType":"YulBlock","src":"2579:478:53","statements":[{"body":{"nativeSrc":"2628:83:53","nodeType":"YulBlock","src":"2628:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2630:77:53","nodeType":"YulIdentifier","src":"2630:77:53"},"nativeSrc":"2630:79:53","nodeType":"YulFunctionCall","src":"2630:79:53"},"nativeSrc":"2630:79:53","nodeType":"YulExpressionStatement","src":"2630:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2607:6:53","nodeType":"YulIdentifier","src":"2607:6:53"},{"kind":"number","nativeSrc":"2615:4:53","nodeType":"YulLiteral","src":"2615:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2603:3:53","nodeType":"YulIdentifier","src":"2603:3:53"},"nativeSrc":"2603:17:53","nodeType":"YulFunctionCall","src":"2603:17:53"},{"name":"end","nativeSrc":"2622:3:53","nodeType":"YulIdentifier","src":"2622:3:53"}],"functionName":{"name":"slt","nativeSrc":"2599:3:53","nodeType":"YulIdentifier","src":"2599:3:53"},"nativeSrc":"2599:27:53","nodeType":"YulFunctionCall","src":"2599:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2592:6:53","nodeType":"YulIdentifier","src":"2592:6:53"},"nativeSrc":"2592:35:53","nodeType":"YulFunctionCall","src":"2592:35:53"},"nativeSrc":"2589:122:53","nodeType":"YulIf","src":"2589:122:53"},{"nativeSrc":"2720:30:53","nodeType":"YulAssignment","src":"2720:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2743:6:53","nodeType":"YulIdentifier","src":"2743:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2730:12:53","nodeType":"YulIdentifier","src":"2730:12:53"},"nativeSrc":"2730:20:53","nodeType":"YulFunctionCall","src":"2730:20:53"},"variableNames":[{"name":"length","nativeSrc":"2720:6:53","nodeType":"YulIdentifier","src":"2720:6:53"}]},{"body":{"nativeSrc":"2793:83:53","nodeType":"YulBlock","src":"2793:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2795:77:53","nodeType":"YulIdentifier","src":"2795:77:53"},"nativeSrc":"2795:79:53","nodeType":"YulFunctionCall","src":"2795:79:53"},"nativeSrc":"2795:79:53","nodeType":"YulExpressionStatement","src":"2795:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2765:6:53","nodeType":"YulIdentifier","src":"2765:6:53"},{"kind":"number","nativeSrc":"2773:18:53","nodeType":"YulLiteral","src":"2773:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2762:2:53","nodeType":"YulIdentifier","src":"2762:2:53"},"nativeSrc":"2762:30:53","nodeType":"YulFunctionCall","src":"2762:30:53"},"nativeSrc":"2759:117:53","nodeType":"YulIf","src":"2759:117:53"},{"nativeSrc":"2885:29:53","nodeType":"YulAssignment","src":"2885:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2901:6:53","nodeType":"YulIdentifier","src":"2901:6:53"},{"kind":"number","nativeSrc":"2909:4:53","nodeType":"YulLiteral","src":"2909:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2897:3:53","nodeType":"YulIdentifier","src":"2897:3:53"},"nativeSrc":"2897:17:53","nodeType":"YulFunctionCall","src":"2897:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2885:8:53","nodeType":"YulIdentifier","src":"2885:8:53"}]},{"body":{"nativeSrc":"2968:83:53","nodeType":"YulBlock","src":"2968:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2970:77:53","nodeType":"YulIdentifier","src":"2970:77:53"},"nativeSrc":"2970:79:53","nodeType":"YulFunctionCall","src":"2970:79:53"},"nativeSrc":"2970:79:53","nodeType":"YulExpressionStatement","src":"2970:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2933:8:53","nodeType":"YulIdentifier","src":"2933:8:53"},{"arguments":[{"name":"length","nativeSrc":"2947:6:53","nodeType":"YulIdentifier","src":"2947:6:53"},{"kind":"number","nativeSrc":"2955:4:53","nodeType":"YulLiteral","src":"2955:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2943:3:53","nodeType":"YulIdentifier","src":"2943:3:53"},"nativeSrc":"2943:17:53","nodeType":"YulFunctionCall","src":"2943:17:53"}],"functionName":{"name":"add","nativeSrc":"2929:3:53","nodeType":"YulIdentifier","src":"2929:3:53"},"nativeSrc":"2929:32:53","nodeType":"YulFunctionCall","src":"2929:32:53"},{"name":"end","nativeSrc":"2963:3:53","nodeType":"YulIdentifier","src":"2963:3:53"}],"functionName":{"name":"gt","nativeSrc":"2926:2:53","nodeType":"YulIdentifier","src":"2926:2:53"},"nativeSrc":"2926:41:53","nodeType":"YulFunctionCall","src":"2926:41:53"},"nativeSrc":"2923:128:53","nodeType":"YulIf","src":"2923:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"2492:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2546:6:53","nodeType":"YulTypedName","src":"2546:6:53","type":""},{"name":"end","nativeSrc":"2554:3:53","nodeType":"YulTypedName","src":"2554:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2562:8:53","nodeType":"YulTypedName","src":"2562:8:53","type":""},{"name":"length","nativeSrc":"2572:6:53","nodeType":"YulTypedName","src":"2572:6:53","type":""}],"src":"2492:565:53"},{"body":{"nativeSrc":"3213:778:53","nodeType":"YulBlock","src":"3213:778:53","statements":[{"body":{"nativeSrc":"3259:83:53","nodeType":"YulBlock","src":"3259:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3261:77:53","nodeType":"YulIdentifier","src":"3261:77:53"},"nativeSrc":"3261:79:53","nodeType":"YulFunctionCall","src":"3261:79:53"},"nativeSrc":"3261:79:53","nodeType":"YulExpressionStatement","src":"3261:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3234:7:53","nodeType":"YulIdentifier","src":"3234:7:53"},{"name":"headStart","nativeSrc":"3243:9:53","nodeType":"YulIdentifier","src":"3243:9:53"}],"functionName":{"name":"sub","nativeSrc":"3230:3:53","nodeType":"YulIdentifier","src":"3230:3:53"},"nativeSrc":"3230:23:53","nodeType":"YulFunctionCall","src":"3230:23:53"},{"kind":"number","nativeSrc":"3255:2:53","nodeType":"YulLiteral","src":"3255:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3226:3:53","nodeType":"YulIdentifier","src":"3226:3:53"},"nativeSrc":"3226:32:53","nodeType":"YulFunctionCall","src":"3226:32:53"},"nativeSrc":"3223:119:53","nodeType":"YulIf","src":"3223:119:53"},{"nativeSrc":"3352:312:53","nodeType":"YulBlock","src":"3352:312:53","statements":[{"nativeSrc":"3367:45:53","nodeType":"YulVariableDeclaration","src":"3367:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3398:9:53","nodeType":"YulIdentifier","src":"3398:9:53"},{"kind":"number","nativeSrc":"3409:1:53","nodeType":"YulLiteral","src":"3409:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3394:3:53","nodeType":"YulIdentifier","src":"3394:3:53"},"nativeSrc":"3394:17:53","nodeType":"YulFunctionCall","src":"3394:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3381:12:53","nodeType":"YulIdentifier","src":"3381:12:53"},"nativeSrc":"3381:31:53","nodeType":"YulFunctionCall","src":"3381:31:53"},"variables":[{"name":"offset","nativeSrc":"3371:6:53","nodeType":"YulTypedName","src":"3371:6:53","type":""}]},{"body":{"nativeSrc":"3459:83:53","nodeType":"YulBlock","src":"3459:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3461:77:53","nodeType":"YulIdentifier","src":"3461:77:53"},"nativeSrc":"3461:79:53","nodeType":"YulFunctionCall","src":"3461:79:53"},"nativeSrc":"3461:79:53","nodeType":"YulExpressionStatement","src":"3461:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3431:6:53","nodeType":"YulIdentifier","src":"3431:6:53"},{"kind":"number","nativeSrc":"3439:18:53","nodeType":"YulLiteral","src":"3439:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3428:2:53","nodeType":"YulIdentifier","src":"3428:2:53"},"nativeSrc":"3428:30:53","nodeType":"YulFunctionCall","src":"3428:30:53"},"nativeSrc":"3425:117:53","nodeType":"YulIf","src":"3425:117:53"},{"nativeSrc":"3556:98:53","nodeType":"YulAssignment","src":"3556:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3626:9:53","nodeType":"YulIdentifier","src":"3626:9:53"},{"name":"offset","nativeSrc":"3637:6:53","nodeType":"YulIdentifier","src":"3637:6:53"}],"functionName":{"name":"add","nativeSrc":"3622:3:53","nodeType":"YulIdentifier","src":"3622:3:53"},"nativeSrc":"3622:22:53","nodeType":"YulFunctionCall","src":"3622:22:53"},{"name":"dataEnd","nativeSrc":"3646:7:53","nodeType":"YulIdentifier","src":"3646:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3574:47:53","nodeType":"YulIdentifier","src":"3574:47:53"},"nativeSrc":"3574:80:53","nodeType":"YulFunctionCall","src":"3574:80:53"},"variableNames":[{"name":"value0","nativeSrc":"3556:6:53","nodeType":"YulIdentifier","src":"3556:6:53"},{"name":"value1","nativeSrc":"3564:6:53","nodeType":"YulIdentifier","src":"3564:6:53"}]}]},{"nativeSrc":"3674:310:53","nodeType":"YulBlock","src":"3674:310:53","statements":[{"nativeSrc":"3689:46:53","nodeType":"YulVariableDeclaration","src":"3689:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3720:9:53","nodeType":"YulIdentifier","src":"3720:9:53"},{"kind":"number","nativeSrc":"3731:2:53","nodeType":"YulLiteral","src":"3731:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3716:3:53","nodeType":"YulIdentifier","src":"3716:3:53"},"nativeSrc":"3716:18:53","nodeType":"YulFunctionCall","src":"3716:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"3703:12:53","nodeType":"YulIdentifier","src":"3703:12:53"},"nativeSrc":"3703:32:53","nodeType":"YulFunctionCall","src":"3703:32:53"},"variables":[{"name":"offset","nativeSrc":"3693:6:53","nodeType":"YulTypedName","src":"3693:6:53","type":""}]},{"body":{"nativeSrc":"3782:83:53","nodeType":"YulBlock","src":"3782:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3784:77:53","nodeType":"YulIdentifier","src":"3784:77:53"},"nativeSrc":"3784:79:53","nodeType":"YulFunctionCall","src":"3784:79:53"},"nativeSrc":"3784:79:53","nodeType":"YulExpressionStatement","src":"3784:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3754:6:53","nodeType":"YulIdentifier","src":"3754:6:53"},{"kind":"number","nativeSrc":"3762:18:53","nodeType":"YulLiteral","src":"3762:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3751:2:53","nodeType":"YulIdentifier","src":"3751:2:53"},"nativeSrc":"3751:30:53","nodeType":"YulFunctionCall","src":"3751:30:53"},"nativeSrc":"3748:117:53","nodeType":"YulIf","src":"3748:117:53"},{"nativeSrc":"3879:95:53","nodeType":"YulAssignment","src":"3879:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3946:9:53","nodeType":"YulIdentifier","src":"3946:9:53"},{"name":"offset","nativeSrc":"3957:6:53","nodeType":"YulIdentifier","src":"3957:6:53"}],"functionName":{"name":"add","nativeSrc":"3942:3:53","nodeType":"YulIdentifier","src":"3942:3:53"},"nativeSrc":"3942:22:53","nodeType":"YulFunctionCall","src":"3942:22:53"},{"name":"dataEnd","nativeSrc":"3966:7:53","nodeType":"YulIdentifier","src":"3966:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3897:44:53","nodeType":"YulIdentifier","src":"3897:44:53"},"nativeSrc":"3897:77:53","nodeType":"YulFunctionCall","src":"3897:77:53"},"variableNames":[{"name":"value2","nativeSrc":"3879:6:53","nodeType":"YulIdentifier","src":"3879:6:53"},{"name":"value3","nativeSrc":"3887:6:53","nodeType":"YulIdentifier","src":"3887:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3063:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3159:9:53","nodeType":"YulTypedName","src":"3159:9:53","type":""},{"name":"dataEnd","nativeSrc":"3170:7:53","nodeType":"YulTypedName","src":"3170:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3182:6:53","nodeType":"YulTypedName","src":"3182:6:53","type":""},{"name":"value1","nativeSrc":"3190:6:53","nodeType":"YulTypedName","src":"3190:6:53","type":""},{"name":"value2","nativeSrc":"3198:6:53","nodeType":"YulTypedName","src":"3198:6:53","type":""},{"name":"value3","nativeSrc":"3206:6:53","nodeType":"YulTypedName","src":"3206:6:53","type":""}],"src":"3063:928:53"},{"body":{"nativeSrc":"4084:478:53","nodeType":"YulBlock","src":"4084:478:53","statements":[{"body":{"nativeSrc":"4133:83:53","nodeType":"YulBlock","src":"4133:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4135:77:53","nodeType":"YulIdentifier","src":"4135:77:53"},"nativeSrc":"4135:79:53","nodeType":"YulFunctionCall","src":"4135:79:53"},"nativeSrc":"4135:79:53","nodeType":"YulExpressionStatement","src":"4135:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4112:6:53","nodeType":"YulIdentifier","src":"4112:6:53"},{"kind":"number","nativeSrc":"4120:4:53","nodeType":"YulLiteral","src":"4120:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4108:3:53","nodeType":"YulIdentifier","src":"4108:3:53"},"nativeSrc":"4108:17:53","nodeType":"YulFunctionCall","src":"4108:17:53"},{"name":"end","nativeSrc":"4127:3:53","nodeType":"YulIdentifier","src":"4127:3:53"}],"functionName":{"name":"slt","nativeSrc":"4104:3:53","nodeType":"YulIdentifier","src":"4104:3:53"},"nativeSrc":"4104:27:53","nodeType":"YulFunctionCall","src":"4104:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4097:6:53","nodeType":"YulIdentifier","src":"4097:6:53"},"nativeSrc":"4097:35:53","nodeType":"YulFunctionCall","src":"4097:35:53"},"nativeSrc":"4094:122:53","nodeType":"YulIf","src":"4094:122:53"},{"nativeSrc":"4225:30:53","nodeType":"YulAssignment","src":"4225:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4248:6:53","nodeType":"YulIdentifier","src":"4248:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4235:12:53","nodeType":"YulIdentifier","src":"4235:12:53"},"nativeSrc":"4235:20:53","nodeType":"YulFunctionCall","src":"4235:20:53"},"variableNames":[{"name":"length","nativeSrc":"4225:6:53","nodeType":"YulIdentifier","src":"4225:6:53"}]},{"body":{"nativeSrc":"4298:83:53","nodeType":"YulBlock","src":"4298:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4300:77:53","nodeType":"YulIdentifier","src":"4300:77:53"},"nativeSrc":"4300:79:53","nodeType":"YulFunctionCall","src":"4300:79:53"},"nativeSrc":"4300:79:53","nodeType":"YulExpressionStatement","src":"4300:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4270:6:53","nodeType":"YulIdentifier","src":"4270:6:53"},{"kind":"number","nativeSrc":"4278:18:53","nodeType":"YulLiteral","src":"4278:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4267:2:53","nodeType":"YulIdentifier","src":"4267:2:53"},"nativeSrc":"4267:30:53","nodeType":"YulFunctionCall","src":"4267:30:53"},"nativeSrc":"4264:117:53","nodeType":"YulIf","src":"4264:117:53"},{"nativeSrc":"4390:29:53","nodeType":"YulAssignment","src":"4390:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4406:6:53","nodeType":"YulIdentifier","src":"4406:6:53"},{"kind":"number","nativeSrc":"4414:4:53","nodeType":"YulLiteral","src":"4414:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:17:53","nodeType":"YulFunctionCall","src":"4402:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4390:8:53","nodeType":"YulIdentifier","src":"4390:8:53"}]},{"body":{"nativeSrc":"4473:83:53","nodeType":"YulBlock","src":"4473:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4475:77:53","nodeType":"YulIdentifier","src":"4475:77:53"},"nativeSrc":"4475:79:53","nodeType":"YulFunctionCall","src":"4475:79:53"},"nativeSrc":"4475:79:53","nodeType":"YulExpressionStatement","src":"4475:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4438:8:53","nodeType":"YulIdentifier","src":"4438:8:53"},{"arguments":[{"name":"length","nativeSrc":"4452:6:53","nodeType":"YulIdentifier","src":"4452:6:53"},{"kind":"number","nativeSrc":"4460:4:53","nodeType":"YulLiteral","src":"4460:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"4448:3:53","nodeType":"YulIdentifier","src":"4448:3:53"},"nativeSrc":"4448:17:53","nodeType":"YulFunctionCall","src":"4448:17:53"}],"functionName":{"name":"add","nativeSrc":"4434:3:53","nodeType":"YulIdentifier","src":"4434:3:53"},"nativeSrc":"4434:32:53","nodeType":"YulFunctionCall","src":"4434:32:53"},{"name":"end","nativeSrc":"4468:3:53","nodeType":"YulIdentifier","src":"4468:3:53"}],"functionName":{"name":"gt","nativeSrc":"4431:2:53","nodeType":"YulIdentifier","src":"4431:2:53"},"nativeSrc":"4431:41:53","nodeType":"YulFunctionCall","src":"4431:41:53"},"nativeSrc":"4428:128:53","nodeType":"YulIf","src":"4428:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4010:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4051:6:53","nodeType":"YulTypedName","src":"4051:6:53","type":""},{"name":"end","nativeSrc":"4059:3:53","nodeType":"YulTypedName","src":"4059:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4067:8:53","nodeType":"YulTypedName","src":"4067:8:53","type":""},{"name":"length","nativeSrc":"4077:6:53","nodeType":"YulTypedName","src":"4077:6:53","type":""}],"src":"4010:552:53"},{"body":{"nativeSrc":"4653:442:53","nodeType":"YulBlock","src":"4653:442:53","statements":[{"body":{"nativeSrc":"4699:83:53","nodeType":"YulBlock","src":"4699:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4701:77:53","nodeType":"YulIdentifier","src":"4701:77:53"},"nativeSrc":"4701:79:53","nodeType":"YulFunctionCall","src":"4701:79:53"},"nativeSrc":"4701:79:53","nodeType":"YulExpressionStatement","src":"4701:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4674:7:53","nodeType":"YulIdentifier","src":"4674:7:53"},{"name":"headStart","nativeSrc":"4683:9:53","nodeType":"YulIdentifier","src":"4683:9:53"}],"functionName":{"name":"sub","nativeSrc":"4670:3:53","nodeType":"YulIdentifier","src":"4670:3:53"},"nativeSrc":"4670:23:53","nodeType":"YulFunctionCall","src":"4670:23:53"},{"kind":"number","nativeSrc":"4695:2:53","nodeType":"YulLiteral","src":"4695:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4666:3:53","nodeType":"YulIdentifier","src":"4666:3:53"},"nativeSrc":"4666:32:53","nodeType":"YulFunctionCall","src":"4666:32:53"},"nativeSrc":"4663:119:53","nodeType":"YulIf","src":"4663:119:53"},{"nativeSrc":"4792:296:53","nodeType":"YulBlock","src":"4792:296:53","statements":[{"nativeSrc":"4807:45:53","nodeType":"YulVariableDeclaration","src":"4807:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4838:9:53","nodeType":"YulIdentifier","src":"4838:9:53"},{"kind":"number","nativeSrc":"4849:1:53","nodeType":"YulLiteral","src":"4849:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4834:3:53","nodeType":"YulIdentifier","src":"4834:3:53"},"nativeSrc":"4834:17:53","nodeType":"YulFunctionCall","src":"4834:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4821:12:53","nodeType":"YulIdentifier","src":"4821:12:53"},"nativeSrc":"4821:31:53","nodeType":"YulFunctionCall","src":"4821:31:53"},"variables":[{"name":"offset","nativeSrc":"4811:6:53","nodeType":"YulTypedName","src":"4811:6:53","type":""}]},{"body":{"nativeSrc":"4899:83:53","nodeType":"YulBlock","src":"4899:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4901:77:53","nodeType":"YulIdentifier","src":"4901:77:53"},"nativeSrc":"4901:79:53","nodeType":"YulFunctionCall","src":"4901:79:53"},"nativeSrc":"4901:79:53","nodeType":"YulExpressionStatement","src":"4901:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4871:6:53","nodeType":"YulIdentifier","src":"4871:6:53"},{"kind":"number","nativeSrc":"4879:18:53","nodeType":"YulLiteral","src":"4879:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4868:2:53","nodeType":"YulIdentifier","src":"4868:2:53"},"nativeSrc":"4868:30:53","nodeType":"YulFunctionCall","src":"4868:30:53"},"nativeSrc":"4865:117:53","nodeType":"YulIf","src":"4865:117:53"},{"nativeSrc":"4996:82:53","nodeType":"YulAssignment","src":"4996:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5050:9:53","nodeType":"YulIdentifier","src":"5050:9:53"},{"name":"offset","nativeSrc":"5061:6:53","nodeType":"YulIdentifier","src":"5061:6:53"}],"functionName":{"name":"add","nativeSrc":"5046:3:53","nodeType":"YulIdentifier","src":"5046:3:53"},"nativeSrc":"5046:22:53","nodeType":"YulFunctionCall","src":"5046:22:53"},{"name":"dataEnd","nativeSrc":"5070:7:53","nodeType":"YulIdentifier","src":"5070:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5014:31:53","nodeType":"YulIdentifier","src":"5014:31:53"},"nativeSrc":"5014:64:53","nodeType":"YulFunctionCall","src":"5014:64:53"},"variableNames":[{"name":"value0","nativeSrc":"4996:6:53","nodeType":"YulIdentifier","src":"4996:6:53"},{"name":"value1","nativeSrc":"5004:6:53","nodeType":"YulIdentifier","src":"5004:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"4568:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4615:9:53","nodeType":"YulTypedName","src":"4615:9:53","type":""},{"name":"dataEnd","nativeSrc":"4626:7:53","nodeType":"YulTypedName","src":"4626:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4638:6:53","nodeType":"YulTypedName","src":"4638:6:53","type":""},{"name":"value1","nativeSrc":"4646:6:53","nodeType":"YulTypedName","src":"4646:6:53","type":""}],"src":"4568:527:53"},{"body":{"nativeSrc":"5146:81:53","nodeType":"YulBlock","src":"5146:81:53","statements":[{"nativeSrc":"5156:65:53","nodeType":"YulAssignment","src":"5156:65:53","value":{"arguments":[{"name":"value","nativeSrc":"5171:5:53","nodeType":"YulIdentifier","src":"5171:5:53"},{"kind":"number","nativeSrc":"5178:42:53","nodeType":"YulLiteral","src":"5178:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5167:3:53","nodeType":"YulIdentifier","src":"5167:3:53"},"nativeSrc":"5167:54:53","nodeType":"YulFunctionCall","src":"5167:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5156:7:53","nodeType":"YulIdentifier","src":"5156:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5101:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5128:5:53","nodeType":"YulTypedName","src":"5128:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5138:7:53","nodeType":"YulTypedName","src":"5138:7:53","type":""}],"src":"5101:126:53"},{"body":{"nativeSrc":"5278:51:53","nodeType":"YulBlock","src":"5278:51:53","statements":[{"nativeSrc":"5288:35:53","nodeType":"YulAssignment","src":"5288:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5317:5:53","nodeType":"YulIdentifier","src":"5317:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5299:17:53","nodeType":"YulIdentifier","src":"5299:17:53"},"nativeSrc":"5299:24:53","nodeType":"YulFunctionCall","src":"5299:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5288:7:53","nodeType":"YulIdentifier","src":"5288:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5233:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5260:5:53","nodeType":"YulTypedName","src":"5260:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5270:7:53","nodeType":"YulTypedName","src":"5270:7:53","type":""}],"src":"5233:96:53"},{"body":{"nativeSrc":"5400:53:53","nodeType":"YulBlock","src":"5400:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5417:3:53","nodeType":"YulIdentifier","src":"5417:3:53"},{"arguments":[{"name":"value","nativeSrc":"5440:5:53","nodeType":"YulIdentifier","src":"5440:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5422:17:53","nodeType":"YulIdentifier","src":"5422:17:53"},"nativeSrc":"5422:24:53","nodeType":"YulFunctionCall","src":"5422:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5410:6:53","nodeType":"YulIdentifier","src":"5410:6:53"},"nativeSrc":"5410:37:53","nodeType":"YulFunctionCall","src":"5410:37:53"},"nativeSrc":"5410:37:53","nodeType":"YulExpressionStatement","src":"5410:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5335:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5388:5:53","nodeType":"YulTypedName","src":"5388:5:53","type":""},{"name":"pos","nativeSrc":"5395:3:53","nodeType":"YulTypedName","src":"5395:3:53","type":""}],"src":"5335:118:53"},{"body":{"nativeSrc":"5557:124:53","nodeType":"YulBlock","src":"5557:124:53","statements":[{"nativeSrc":"5567:26:53","nodeType":"YulAssignment","src":"5567:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5579:9:53","nodeType":"YulIdentifier","src":"5579:9:53"},{"kind":"number","nativeSrc":"5590:2:53","nodeType":"YulLiteral","src":"5590:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5575:3:53","nodeType":"YulIdentifier","src":"5575:3:53"},"nativeSrc":"5575:18:53","nodeType":"YulFunctionCall","src":"5575:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5567:4:53","nodeType":"YulIdentifier","src":"5567:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5647:6:53","nodeType":"YulIdentifier","src":"5647:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5660:9:53","nodeType":"YulIdentifier","src":"5660:9:53"},{"kind":"number","nativeSrc":"5671:1:53","nodeType":"YulLiteral","src":"5671:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5656:3:53","nodeType":"YulIdentifier","src":"5656:3:53"},"nativeSrc":"5656:17:53","nodeType":"YulFunctionCall","src":"5656:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5603:43:53","nodeType":"YulIdentifier","src":"5603:43:53"},"nativeSrc":"5603:71:53","nodeType":"YulFunctionCall","src":"5603:71:53"},"nativeSrc":"5603:71:53","nodeType":"YulExpressionStatement","src":"5603:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5459:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5529:9:53","nodeType":"YulTypedName","src":"5529:9:53","type":""},{"name":"value0","nativeSrc":"5541:6:53","nodeType":"YulTypedName","src":"5541:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5552:4:53","nodeType":"YulTypedName","src":"5552:4:53","type":""}],"src":"5459:222:53"},{"body":{"nativeSrc":"5730:79:53","nodeType":"YulBlock","src":"5730:79:53","statements":[{"body":{"nativeSrc":"5787:16:53","nodeType":"YulBlock","src":"5787:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5796:1:53","nodeType":"YulLiteral","src":"5796:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5799:1:53","nodeType":"YulLiteral","src":"5799:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5789:6:53","nodeType":"YulIdentifier","src":"5789:6:53"},"nativeSrc":"5789:12:53","nodeType":"YulFunctionCall","src":"5789:12:53"},"nativeSrc":"5789:12:53","nodeType":"YulExpressionStatement","src":"5789:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5753:5:53","nodeType":"YulIdentifier","src":"5753:5:53"},{"arguments":[{"name":"value","nativeSrc":"5778:5:53","nodeType":"YulIdentifier","src":"5778:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5760:17:53","nodeType":"YulIdentifier","src":"5760:17:53"},"nativeSrc":"5760:24:53","nodeType":"YulFunctionCall","src":"5760:24:53"}],"functionName":{"name":"eq","nativeSrc":"5750:2:53","nodeType":"YulIdentifier","src":"5750:2:53"},"nativeSrc":"5750:35:53","nodeType":"YulFunctionCall","src":"5750:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5743:6:53","nodeType":"YulIdentifier","src":"5743:6:53"},"nativeSrc":"5743:43:53","nodeType":"YulFunctionCall","src":"5743:43:53"},"nativeSrc":"5740:63:53","nodeType":"YulIf","src":"5740:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5687:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5723:5:53","nodeType":"YulTypedName","src":"5723:5:53","type":""}],"src":"5687:122:53"},{"body":{"nativeSrc":"5867:87:53","nodeType":"YulBlock","src":"5867:87:53","statements":[{"nativeSrc":"5877:29:53","nodeType":"YulAssignment","src":"5877:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5899:6:53","nodeType":"YulIdentifier","src":"5899:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5886:12:53","nodeType":"YulIdentifier","src":"5886:12:53"},"nativeSrc":"5886:20:53","nodeType":"YulFunctionCall","src":"5886:20:53"},"variableNames":[{"name":"value","nativeSrc":"5877:5:53","nodeType":"YulIdentifier","src":"5877:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5942:5:53","nodeType":"YulIdentifier","src":"5942:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5915:26:53","nodeType":"YulIdentifier","src":"5915:26:53"},"nativeSrc":"5915:33:53","nodeType":"YulFunctionCall","src":"5915:33:53"},"nativeSrc":"5915:33:53","nodeType":"YulExpressionStatement","src":"5915:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5815:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5845:6:53","nodeType":"YulTypedName","src":"5845:6:53","type":""},{"name":"end","nativeSrc":"5853:3:53","nodeType":"YulTypedName","src":"5853:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5861:5:53","nodeType":"YulTypedName","src":"5861:5:53","type":""}],"src":"5815:139:53"},{"body":{"nativeSrc":"6062:570:53","nodeType":"YulBlock","src":"6062:570:53","statements":[{"body":{"nativeSrc":"6108:83:53","nodeType":"YulBlock","src":"6108:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6110:77:53","nodeType":"YulIdentifier","src":"6110:77:53"},"nativeSrc":"6110:79:53","nodeType":"YulFunctionCall","src":"6110:79:53"},"nativeSrc":"6110:79:53","nodeType":"YulExpressionStatement","src":"6110:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6083:7:53","nodeType":"YulIdentifier","src":"6083:7:53"},{"name":"headStart","nativeSrc":"6092:9:53","nodeType":"YulIdentifier","src":"6092:9:53"}],"functionName":{"name":"sub","nativeSrc":"6079:3:53","nodeType":"YulIdentifier","src":"6079:3:53"},"nativeSrc":"6079:23:53","nodeType":"YulFunctionCall","src":"6079:23:53"},{"kind":"number","nativeSrc":"6104:2:53","nodeType":"YulLiteral","src":"6104:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6075:3:53","nodeType":"YulIdentifier","src":"6075:3:53"},"nativeSrc":"6075:32:53","nodeType":"YulFunctionCall","src":"6075:32:53"},"nativeSrc":"6072:119:53","nodeType":"YulIf","src":"6072:119:53"},{"nativeSrc":"6201:117:53","nodeType":"YulBlock","src":"6201:117:53","statements":[{"nativeSrc":"6216:15:53","nodeType":"YulVariableDeclaration","src":"6216:15:53","value":{"kind":"number","nativeSrc":"6230:1:53","nodeType":"YulLiteral","src":"6230:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6220:6:53","nodeType":"YulTypedName","src":"6220:6:53","type":""}]},{"nativeSrc":"6245:63:53","nodeType":"YulAssignment","src":"6245:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6280:9:53","nodeType":"YulIdentifier","src":"6280:9:53"},{"name":"offset","nativeSrc":"6291:6:53","nodeType":"YulIdentifier","src":"6291:6:53"}],"functionName":{"name":"add","nativeSrc":"6276:3:53","nodeType":"YulIdentifier","src":"6276:3:53"},"nativeSrc":"6276:22:53","nodeType":"YulFunctionCall","src":"6276:22:53"},{"name":"dataEnd","nativeSrc":"6300:7:53","nodeType":"YulIdentifier","src":"6300:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6255:20:53","nodeType":"YulIdentifier","src":"6255:20:53"},"nativeSrc":"6255:53:53","nodeType":"YulFunctionCall","src":"6255:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6245:6:53","nodeType":"YulIdentifier","src":"6245:6:53"}]}]},{"nativeSrc":"6328:297:53","nodeType":"YulBlock","src":"6328:297:53","statements":[{"nativeSrc":"6343:46:53","nodeType":"YulVariableDeclaration","src":"6343:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6374:9:53","nodeType":"YulIdentifier","src":"6374:9:53"},{"kind":"number","nativeSrc":"6385:2:53","nodeType":"YulLiteral","src":"6385:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6370:3:53","nodeType":"YulIdentifier","src":"6370:3:53"},"nativeSrc":"6370:18:53","nodeType":"YulFunctionCall","src":"6370:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6357:12:53","nodeType":"YulIdentifier","src":"6357:12:53"},"nativeSrc":"6357:32:53","nodeType":"YulFunctionCall","src":"6357:32:53"},"variables":[{"name":"offset","nativeSrc":"6347:6:53","nodeType":"YulTypedName","src":"6347:6:53","type":""}]},{"body":{"nativeSrc":"6436:83:53","nodeType":"YulBlock","src":"6436:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6438:77:53","nodeType":"YulIdentifier","src":"6438:77:53"},"nativeSrc":"6438:79:53","nodeType":"YulFunctionCall","src":"6438:79:53"},"nativeSrc":"6438:79:53","nodeType":"YulExpressionStatement","src":"6438:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6408:6:53","nodeType":"YulIdentifier","src":"6408:6:53"},{"kind":"number","nativeSrc":"6416:18:53","nodeType":"YulLiteral","src":"6416:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6405:2:53","nodeType":"YulIdentifier","src":"6405:2:53"},"nativeSrc":"6405:30:53","nodeType":"YulFunctionCall","src":"6405:30:53"},"nativeSrc":"6402:117:53","nodeType":"YulIf","src":"6402:117:53"},{"nativeSrc":"6533:82:53","nodeType":"YulAssignment","src":"6533:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6587:9:53","nodeType":"YulIdentifier","src":"6587:9:53"},{"name":"offset","nativeSrc":"6598:6:53","nodeType":"YulIdentifier","src":"6598:6:53"}],"functionName":{"name":"add","nativeSrc":"6583:3:53","nodeType":"YulIdentifier","src":"6583:3:53"},"nativeSrc":"6583:22:53","nodeType":"YulFunctionCall","src":"6583:22:53"},{"name":"dataEnd","nativeSrc":"6607:7:53","nodeType":"YulIdentifier","src":"6607:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6551:31:53","nodeType":"YulIdentifier","src":"6551:31:53"},"nativeSrc":"6551:64:53","nodeType":"YulFunctionCall","src":"6551:64:53"},"variableNames":[{"name":"value1","nativeSrc":"6533:6:53","nodeType":"YulIdentifier","src":"6533:6:53"},{"name":"value2","nativeSrc":"6541:6:53","nodeType":"YulIdentifier","src":"6541:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"5960:672:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6016:9:53","nodeType":"YulTypedName","src":"6016:9:53","type":""},{"name":"dataEnd","nativeSrc":"6027:7:53","nodeType":"YulTypedName","src":"6027:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6039:6:53","nodeType":"YulTypedName","src":"6039:6:53","type":""},{"name":"value1","nativeSrc":"6047:6:53","nodeType":"YulTypedName","src":"6047:6:53","type":""},{"name":"value2","nativeSrc":"6055:6:53","nodeType":"YulTypedName","src":"6055:6:53","type":""}],"src":"5960:672:53"},{"body":{"nativeSrc":"6704:263:53","nodeType":"YulBlock","src":"6704:263:53","statements":[{"body":{"nativeSrc":"6750:83:53","nodeType":"YulBlock","src":"6750:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6752:77:53","nodeType":"YulIdentifier","src":"6752:77:53"},"nativeSrc":"6752:79:53","nodeType":"YulFunctionCall","src":"6752:79:53"},"nativeSrc":"6752:79:53","nodeType":"YulExpressionStatement","src":"6752:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6725:7:53","nodeType":"YulIdentifier","src":"6725:7:53"},{"name":"headStart","nativeSrc":"6734:9:53","nodeType":"YulIdentifier","src":"6734:9:53"}],"functionName":{"name":"sub","nativeSrc":"6721:3:53","nodeType":"YulIdentifier","src":"6721:3:53"},"nativeSrc":"6721:23:53","nodeType":"YulFunctionCall","src":"6721:23:53"},{"kind":"number","nativeSrc":"6746:2:53","nodeType":"YulLiteral","src":"6746:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6717:3:53","nodeType":"YulIdentifier","src":"6717:3:53"},"nativeSrc":"6717:32:53","nodeType":"YulFunctionCall","src":"6717:32:53"},"nativeSrc":"6714:119:53","nodeType":"YulIf","src":"6714:119:53"},{"nativeSrc":"6843:117:53","nodeType":"YulBlock","src":"6843:117:53","statements":[{"nativeSrc":"6858:15:53","nodeType":"YulVariableDeclaration","src":"6858:15:53","value":{"kind":"number","nativeSrc":"6872:1:53","nodeType":"YulLiteral","src":"6872:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6862:6:53","nodeType":"YulTypedName","src":"6862:6:53","type":""}]},{"nativeSrc":"6887:63:53","nodeType":"YulAssignment","src":"6887:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6922:9:53","nodeType":"YulIdentifier","src":"6922:9:53"},{"name":"offset","nativeSrc":"6933:6:53","nodeType":"YulIdentifier","src":"6933:6:53"}],"functionName":{"name":"add","nativeSrc":"6918:3:53","nodeType":"YulIdentifier","src":"6918:3:53"},"nativeSrc":"6918:22:53","nodeType":"YulFunctionCall","src":"6918:22:53"},{"name":"dataEnd","nativeSrc":"6942:7:53","nodeType":"YulIdentifier","src":"6942:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6897:20:53","nodeType":"YulIdentifier","src":"6897:20:53"},"nativeSrc":"6897:53:53","nodeType":"YulFunctionCall","src":"6897:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6887:6:53","nodeType":"YulIdentifier","src":"6887:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6638:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6674:9:53","nodeType":"YulTypedName","src":"6674:9:53","type":""},{"name":"dataEnd","nativeSrc":"6685:7:53","nodeType":"YulTypedName","src":"6685:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6697:6:53","nodeType":"YulTypedName","src":"6697:6:53","type":""}],"src":"6638:329:53"},{"body":{"nativeSrc":"7018:32:53","nodeType":"YulBlock","src":"7018:32:53","statements":[{"nativeSrc":"7028:16:53","nodeType":"YulAssignment","src":"7028:16:53","value":{"name":"value","nativeSrc":"7039:5:53","nodeType":"YulIdentifier","src":"7039:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"7028:7:53","nodeType":"YulIdentifier","src":"7028:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"6973:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7000:5:53","nodeType":"YulTypedName","src":"7000:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7010:7:53","nodeType":"YulTypedName","src":"7010:7:53","type":""}],"src":"6973:77:53"},{"body":{"nativeSrc":"7121:53:53","nodeType":"YulBlock","src":"7121:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7138:3:53","nodeType":"YulIdentifier","src":"7138:3:53"},{"arguments":[{"name":"value","nativeSrc":"7161:5:53","nodeType":"YulIdentifier","src":"7161:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7143:17:53","nodeType":"YulIdentifier","src":"7143:17:53"},"nativeSrc":"7143:24:53","nodeType":"YulFunctionCall","src":"7143:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7131:6:53","nodeType":"YulIdentifier","src":"7131:6:53"},"nativeSrc":"7131:37:53","nodeType":"YulFunctionCall","src":"7131:37:53"},"nativeSrc":"7131:37:53","nodeType":"YulExpressionStatement","src":"7131:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7056:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7109:5:53","nodeType":"YulTypedName","src":"7109:5:53","type":""},{"name":"pos","nativeSrc":"7116:3:53","nodeType":"YulTypedName","src":"7116:3:53","type":""}],"src":"7056:118:53"},{"body":{"nativeSrc":"7278:124:53","nodeType":"YulBlock","src":"7278:124:53","statements":[{"nativeSrc":"7288:26:53","nodeType":"YulAssignment","src":"7288:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7300:9:53","nodeType":"YulIdentifier","src":"7300:9:53"},{"kind":"number","nativeSrc":"7311:2:53","nodeType":"YulLiteral","src":"7311:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7296:3:53","nodeType":"YulIdentifier","src":"7296:3:53"},"nativeSrc":"7296:18:53","nodeType":"YulFunctionCall","src":"7296:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7288:4:53","nodeType":"YulIdentifier","src":"7288:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7368:6:53","nodeType":"YulIdentifier","src":"7368:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7381:9:53","nodeType":"YulIdentifier","src":"7381:9:53"},{"kind":"number","nativeSrc":"7392:1:53","nodeType":"YulLiteral","src":"7392:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7377:3:53","nodeType":"YulIdentifier","src":"7377:3:53"},"nativeSrc":"7377:17:53","nodeType":"YulFunctionCall","src":"7377:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7324:43:53","nodeType":"YulIdentifier","src":"7324:43:53"},"nativeSrc":"7324:71:53","nodeType":"YulFunctionCall","src":"7324:71:53"},"nativeSrc":"7324:71:53","nodeType":"YulExpressionStatement","src":"7324:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7180:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7250:9:53","nodeType":"YulTypedName","src":"7250:9:53","type":""},{"name":"value0","nativeSrc":"7262:6:53","nodeType":"YulTypedName","src":"7262:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7273:4:53","nodeType":"YulTypedName","src":"7273:4:53","type":""}],"src":"7180:222:53"},{"body":{"nativeSrc":"7436:152:53","nodeType":"YulBlock","src":"7436:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7453:1:53","nodeType":"YulLiteral","src":"7453:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7456:77:53","nodeType":"YulLiteral","src":"7456:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7446:6:53","nodeType":"YulIdentifier","src":"7446:6:53"},"nativeSrc":"7446:88:53","nodeType":"YulFunctionCall","src":"7446:88:53"},"nativeSrc":"7446:88:53","nodeType":"YulExpressionStatement","src":"7446:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7550:1:53","nodeType":"YulLiteral","src":"7550:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7553:4:53","nodeType":"YulLiteral","src":"7553:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7543:6:53","nodeType":"YulIdentifier","src":"7543:6:53"},"nativeSrc":"7543:15:53","nodeType":"YulFunctionCall","src":"7543:15:53"},"nativeSrc":"7543:15:53","nodeType":"YulExpressionStatement","src":"7543:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7574:1:53","nodeType":"YulLiteral","src":"7574:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7577:4:53","nodeType":"YulLiteral","src":"7577:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7567:6:53","nodeType":"YulIdentifier","src":"7567:6:53"},"nativeSrc":"7567:15:53","nodeType":"YulFunctionCall","src":"7567:15:53"},"nativeSrc":"7567:15:53","nodeType":"YulExpressionStatement","src":"7567:15:53"}]},"name":"panic_error_0x32","nativeSrc":"7408:180:53","nodeType":"YulFunctionDefinition","src":"7408:180:53"},{"body":{"nativeSrc":"7634:76:53","nodeType":"YulBlock","src":"7634:76:53","statements":[{"body":{"nativeSrc":"7688:16:53","nodeType":"YulBlock","src":"7688:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7697:1:53","nodeType":"YulLiteral","src":"7697:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7700:1:53","nodeType":"YulLiteral","src":"7700:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7690:6:53","nodeType":"YulIdentifier","src":"7690:6:53"},"nativeSrc":"7690:12:53","nodeType":"YulFunctionCall","src":"7690:12:53"},"nativeSrc":"7690:12:53","nodeType":"YulExpressionStatement","src":"7690:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7657:5:53","nodeType":"YulIdentifier","src":"7657:5:53"},{"arguments":[{"name":"value","nativeSrc":"7679:5:53","nodeType":"YulIdentifier","src":"7679:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"7664:14:53","nodeType":"YulIdentifier","src":"7664:14:53"},"nativeSrc":"7664:21:53","nodeType":"YulFunctionCall","src":"7664:21:53"}],"functionName":{"name":"eq","nativeSrc":"7654:2:53","nodeType":"YulIdentifier","src":"7654:2:53"},"nativeSrc":"7654:32:53","nodeType":"YulFunctionCall","src":"7654:32:53"}],"functionName":{"name":"iszero","nativeSrc":"7647:6:53","nodeType":"YulIdentifier","src":"7647:6:53"},"nativeSrc":"7647:40:53","nodeType":"YulFunctionCall","src":"7647:40:53"},"nativeSrc":"7644:60:53","nodeType":"YulIf","src":"7644:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"7594:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7627:5:53","nodeType":"YulTypedName","src":"7627:5:53","type":""}],"src":"7594:116:53"},{"body":{"nativeSrc":"7765:84:53","nodeType":"YulBlock","src":"7765:84:53","statements":[{"nativeSrc":"7775:29:53","nodeType":"YulAssignment","src":"7775:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7797:6:53","nodeType":"YulIdentifier","src":"7797:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7784:12:53","nodeType":"YulIdentifier","src":"7784:12:53"},"nativeSrc":"7784:20:53","nodeType":"YulFunctionCall","src":"7784:20:53"},"variableNames":[{"name":"value","nativeSrc":"7775:5:53","nodeType":"YulIdentifier","src":"7775:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7837:5:53","nodeType":"YulIdentifier","src":"7837:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"7813:23:53","nodeType":"YulIdentifier","src":"7813:23:53"},"nativeSrc":"7813:30:53","nodeType":"YulFunctionCall","src":"7813:30:53"},"nativeSrc":"7813:30:53","nodeType":"YulExpressionStatement","src":"7813:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"7716:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7743:6:53","nodeType":"YulTypedName","src":"7743:6:53","type":""},{"name":"end","nativeSrc":"7751:3:53","nodeType":"YulTypedName","src":"7751:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7759:5:53","nodeType":"YulTypedName","src":"7759:5:53","type":""}],"src":"7716:133:53"},{"body":{"nativeSrc":"7918:260:53","nodeType":"YulBlock","src":"7918:260:53","statements":[{"body":{"nativeSrc":"7964:83:53","nodeType":"YulBlock","src":"7964:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7966:77:53","nodeType":"YulIdentifier","src":"7966:77:53"},"nativeSrc":"7966:79:53","nodeType":"YulFunctionCall","src":"7966:79:53"},"nativeSrc":"7966:79:53","nodeType":"YulExpressionStatement","src":"7966:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7939:7:53","nodeType":"YulIdentifier","src":"7939:7:53"},{"name":"headStart","nativeSrc":"7948:9:53","nodeType":"YulIdentifier","src":"7948:9:53"}],"functionName":{"name":"sub","nativeSrc":"7935:3:53","nodeType":"YulIdentifier","src":"7935:3:53"},"nativeSrc":"7935:23:53","nodeType":"YulFunctionCall","src":"7935:23:53"},{"kind":"number","nativeSrc":"7960:2:53","nodeType":"YulLiteral","src":"7960:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7931:3:53","nodeType":"YulIdentifier","src":"7931:3:53"},"nativeSrc":"7931:32:53","nodeType":"YulFunctionCall","src":"7931:32:53"},"nativeSrc":"7928:119:53","nodeType":"YulIf","src":"7928:119:53"},{"nativeSrc":"8057:114:53","nodeType":"YulBlock","src":"8057:114:53","statements":[{"nativeSrc":"8072:15:53","nodeType":"YulVariableDeclaration","src":"8072:15:53","value":{"kind":"number","nativeSrc":"8086:1:53","nodeType":"YulLiteral","src":"8086:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8076:6:53","nodeType":"YulTypedName","src":"8076:6:53","type":""}]},{"nativeSrc":"8101:60:53","nodeType":"YulAssignment","src":"8101:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8133:9:53","nodeType":"YulIdentifier","src":"8133:9:53"},{"name":"offset","nativeSrc":"8144:6:53","nodeType":"YulIdentifier","src":"8144:6:53"}],"functionName":{"name":"add","nativeSrc":"8129:3:53","nodeType":"YulIdentifier","src":"8129:3:53"},"nativeSrc":"8129:22:53","nodeType":"YulFunctionCall","src":"8129:22:53"},{"name":"dataEnd","nativeSrc":"8153:7:53","nodeType":"YulIdentifier","src":"8153:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"8111:17:53","nodeType":"YulIdentifier","src":"8111:17:53"},"nativeSrc":"8111:50:53","nodeType":"YulFunctionCall","src":"8111:50:53"},"variableNames":[{"name":"value0","nativeSrc":"8101:6:53","nodeType":"YulIdentifier","src":"8101:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"7855:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7888:9:53","nodeType":"YulTypedName","src":"7888:9:53","type":""},{"name":"dataEnd","nativeSrc":"7899:7:53","nodeType":"YulTypedName","src":"7899:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7911:6:53","nodeType":"YulTypedName","src":"7911:6:53","type":""}],"src":"7855:323:53"},{"body":{"nativeSrc":"8237:51:53","nodeType":"YulBlock","src":"8237:51:53","statements":[{"nativeSrc":"8247:35:53","nodeType":"YulAssignment","src":"8247:35:53","value":{"arguments":[{"name":"value","nativeSrc":"8276:5:53","nodeType":"YulIdentifier","src":"8276:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"8258:17:53","nodeType":"YulIdentifier","src":"8258:17:53"},"nativeSrc":"8258:24:53","nodeType":"YulFunctionCall","src":"8258:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"8247:7:53","nodeType":"YulIdentifier","src":"8247:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"8184:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8219:5:53","nodeType":"YulTypedName","src":"8219:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8229:7:53","nodeType":"YulTypedName","src":"8229:7:53","type":""}],"src":"8184:104:53"},{"body":{"nativeSrc":"8345:87:53","nodeType":"YulBlock","src":"8345:87:53","statements":[{"body":{"nativeSrc":"8410:16:53","nodeType":"YulBlock","src":"8410:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8419:1:53","nodeType":"YulLiteral","src":"8419:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8422:1:53","nodeType":"YulLiteral","src":"8422:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8412:6:53","nodeType":"YulIdentifier","src":"8412:6:53"},"nativeSrc":"8412:12:53","nodeType":"YulFunctionCall","src":"8412:12:53"},"nativeSrc":"8412:12:53","nodeType":"YulExpressionStatement","src":"8412:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8368:5:53","nodeType":"YulIdentifier","src":"8368:5:53"},{"arguments":[{"name":"value","nativeSrc":"8401:5:53","nodeType":"YulIdentifier","src":"8401:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"8375:25:53","nodeType":"YulIdentifier","src":"8375:25:53"},"nativeSrc":"8375:32:53","nodeType":"YulFunctionCall","src":"8375:32:53"}],"functionName":{"name":"eq","nativeSrc":"8365:2:53","nodeType":"YulIdentifier","src":"8365:2:53"},"nativeSrc":"8365:43:53","nodeType":"YulFunctionCall","src":"8365:43:53"}],"functionName":{"name":"iszero","nativeSrc":"8358:6:53","nodeType":"YulIdentifier","src":"8358:6:53"},"nativeSrc":"8358:51:53","nodeType":"YulFunctionCall","src":"8358:51:53"},"nativeSrc":"8355:71:53","nodeType":"YulIf","src":"8355:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"8294:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8338:5:53","nodeType":"YulTypedName","src":"8338:5:53","type":""}],"src":"8294:138:53"},{"body":{"nativeSrc":"8498:95:53","nodeType":"YulBlock","src":"8498:95:53","statements":[{"nativeSrc":"8508:29:53","nodeType":"YulAssignment","src":"8508:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8530:6:53","nodeType":"YulIdentifier","src":"8530:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8517:12:53","nodeType":"YulIdentifier","src":"8517:12:53"},"nativeSrc":"8517:20:53","nodeType":"YulFunctionCall","src":"8517:20:53"},"variableNames":[{"name":"value","nativeSrc":"8508:5:53","nodeType":"YulIdentifier","src":"8508:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8581:5:53","nodeType":"YulIdentifier","src":"8581:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"8546:34:53","nodeType":"YulIdentifier","src":"8546:34:53"},"nativeSrc":"8546:41:53","nodeType":"YulFunctionCall","src":"8546:41:53"},"nativeSrc":"8546:41:53","nodeType":"YulExpressionStatement","src":"8546:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"8438:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8476:6:53","nodeType":"YulTypedName","src":"8476:6:53","type":""},{"name":"end","nativeSrc":"8484:3:53","nodeType":"YulTypedName","src":"8484:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8492:5:53","nodeType":"YulTypedName","src":"8492:5:53","type":""}],"src":"8438:155:53"},{"body":{"nativeSrc":"8647:54:53","nodeType":"YulBlock","src":"8647:54:53","statements":[{"nativeSrc":"8657:38:53","nodeType":"YulAssignment","src":"8657:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8675:5:53","nodeType":"YulIdentifier","src":"8675:5:53"},{"kind":"number","nativeSrc":"8682:2:53","nodeType":"YulLiteral","src":"8682:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"8671:3:53","nodeType":"YulIdentifier","src":"8671:3:53"},"nativeSrc":"8671:14:53","nodeType":"YulFunctionCall","src":"8671:14:53"},{"arguments":[{"kind":"number","nativeSrc":"8691:2:53","nodeType":"YulLiteral","src":"8691:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"8687:3:53","nodeType":"YulIdentifier","src":"8687:3:53"},"nativeSrc":"8687:7:53","nodeType":"YulFunctionCall","src":"8687:7:53"}],"functionName":{"name":"and","nativeSrc":"8667:3:53","nodeType":"YulIdentifier","src":"8667:3:53"},"nativeSrc":"8667:28:53","nodeType":"YulFunctionCall","src":"8667:28:53"},"variableNames":[{"name":"result","nativeSrc":"8657:6:53","nodeType":"YulIdentifier","src":"8657:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"8599:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8630:5:53","nodeType":"YulTypedName","src":"8630:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"8640:6:53","nodeType":"YulTypedName","src":"8640:6:53","type":""}],"src":"8599:102:53"},{"body":{"nativeSrc":"8735:152:53","nodeType":"YulBlock","src":"8735:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8752:1:53","nodeType":"YulLiteral","src":"8752:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8755:77:53","nodeType":"YulLiteral","src":"8755:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8745:6:53","nodeType":"YulIdentifier","src":"8745:6:53"},"nativeSrc":"8745:88:53","nodeType":"YulFunctionCall","src":"8745:88:53"},"nativeSrc":"8745:88:53","nodeType":"YulExpressionStatement","src":"8745:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8849:1:53","nodeType":"YulLiteral","src":"8849:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8852:4:53","nodeType":"YulLiteral","src":"8852:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8842:6:53","nodeType":"YulIdentifier","src":"8842:6:53"},"nativeSrc":"8842:15:53","nodeType":"YulFunctionCall","src":"8842:15:53"},"nativeSrc":"8842:15:53","nodeType":"YulExpressionStatement","src":"8842:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8873:1:53","nodeType":"YulLiteral","src":"8873:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8876:4:53","nodeType":"YulLiteral","src":"8876:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8866:6:53","nodeType":"YulIdentifier","src":"8866:6:53"},"nativeSrc":"8866:15:53","nodeType":"YulFunctionCall","src":"8866:15:53"},"nativeSrc":"8866:15:53","nodeType":"YulExpressionStatement","src":"8866:15:53"}]},"name":"panic_error_0x41","nativeSrc":"8707:180:53","nodeType":"YulFunctionDefinition","src":"8707:180:53"},{"body":{"nativeSrc":"8936:238:53","nodeType":"YulBlock","src":"8936:238:53","statements":[{"nativeSrc":"8946:58:53","nodeType":"YulVariableDeclaration","src":"8946:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8968:6:53","nodeType":"YulIdentifier","src":"8968:6:53"},{"arguments":[{"name":"size","nativeSrc":"8998:4:53","nodeType":"YulIdentifier","src":"8998:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8976:21:53","nodeType":"YulIdentifier","src":"8976:21:53"},"nativeSrc":"8976:27:53","nodeType":"YulFunctionCall","src":"8976:27:53"}],"functionName":{"name":"add","nativeSrc":"8964:3:53","nodeType":"YulIdentifier","src":"8964:3:53"},"nativeSrc":"8964:40:53","nodeType":"YulFunctionCall","src":"8964:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8950:10:53","nodeType":"YulTypedName","src":"8950:10:53","type":""}]},{"body":{"nativeSrc":"9115:22:53","nodeType":"YulBlock","src":"9115:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9117:16:53","nodeType":"YulIdentifier","src":"9117:16:53"},"nativeSrc":"9117:18:53","nodeType":"YulFunctionCall","src":"9117:18:53"},"nativeSrc":"9117:18:53","nodeType":"YulExpressionStatement","src":"9117:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9058:10:53","nodeType":"YulIdentifier","src":"9058:10:53"},{"kind":"number","nativeSrc":"9070:18:53","nodeType":"YulLiteral","src":"9070:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9055:2:53","nodeType":"YulIdentifier","src":"9055:2:53"},"nativeSrc":"9055:34:53","nodeType":"YulFunctionCall","src":"9055:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9094:10:53","nodeType":"YulIdentifier","src":"9094:10:53"},{"name":"memPtr","nativeSrc":"9106:6:53","nodeType":"YulIdentifier","src":"9106:6:53"}],"functionName":{"name":"lt","nativeSrc":"9091:2:53","nodeType":"YulIdentifier","src":"9091:2:53"},"nativeSrc":"9091:22:53","nodeType":"YulFunctionCall","src":"9091:22:53"}],"functionName":{"name":"or","nativeSrc":"9052:2:53","nodeType":"YulIdentifier","src":"9052:2:53"},"nativeSrc":"9052:62:53","nodeType":"YulFunctionCall","src":"9052:62:53"},"nativeSrc":"9049:88:53","nodeType":"YulIf","src":"9049:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9153:2:53","nodeType":"YulLiteral","src":"9153:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"9157:10:53","nodeType":"YulIdentifier","src":"9157:10:53"}],"functionName":{"name":"mstore","nativeSrc":"9146:6:53","nodeType":"YulIdentifier","src":"9146:6:53"},"nativeSrc":"9146:22:53","nodeType":"YulFunctionCall","src":"9146:22:53"},"nativeSrc":"9146:22:53","nodeType":"YulExpressionStatement","src":"9146:22:53"}]},"name":"finalize_allocation","nativeSrc":"8893:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8922:6:53","nodeType":"YulTypedName","src":"8922:6:53","type":""},{"name":"size","nativeSrc":"8930:4:53","nodeType":"YulTypedName","src":"8930:4:53","type":""}],"src":"8893:281:53"},{"body":{"nativeSrc":"9221:88:53","nodeType":"YulBlock","src":"9221:88:53","statements":[{"nativeSrc":"9231:30:53","nodeType":"YulAssignment","src":"9231:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"9241:18:53","nodeType":"YulIdentifier","src":"9241:18:53"},"nativeSrc":"9241:20:53","nodeType":"YulFunctionCall","src":"9241:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"9231:6:53","nodeType":"YulIdentifier","src":"9231:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"9290:6:53","nodeType":"YulIdentifier","src":"9290:6:53"},{"name":"size","nativeSrc":"9298:4:53","nodeType":"YulIdentifier","src":"9298:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"9270:19:53","nodeType":"YulIdentifier","src":"9270:19:53"},"nativeSrc":"9270:33:53","nodeType":"YulFunctionCall","src":"9270:33:53"},"nativeSrc":"9270:33:53","nodeType":"YulExpressionStatement","src":"9270:33:53"}]},"name":"allocate_memory","nativeSrc":"9180:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"9205:4:53","nodeType":"YulTypedName","src":"9205:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"9214:6:53","nodeType":"YulTypedName","src":"9214:6:53","type":""}],"src":"9180:129:53"},{"body":{"nativeSrc":"9397:229:53","nodeType":"YulBlock","src":"9397:229:53","statements":[{"body":{"nativeSrc":"9502:22:53","nodeType":"YulBlock","src":"9502:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9504:16:53","nodeType":"YulIdentifier","src":"9504:16:53"},"nativeSrc":"9504:18:53","nodeType":"YulFunctionCall","src":"9504:18:53"},"nativeSrc":"9504:18:53","nodeType":"YulExpressionStatement","src":"9504:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9474:6:53","nodeType":"YulIdentifier","src":"9474:6:53"},{"kind":"number","nativeSrc":"9482:18:53","nodeType":"YulLiteral","src":"9482:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9471:2:53","nodeType":"YulIdentifier","src":"9471:2:53"},"nativeSrc":"9471:30:53","nodeType":"YulFunctionCall","src":"9471:30:53"},"nativeSrc":"9468:56:53","nodeType":"YulIf","src":"9468:56:53"},{"nativeSrc":"9534:25:53","nodeType":"YulAssignment","src":"9534:25:53","value":{"arguments":[{"name":"length","nativeSrc":"9546:6:53","nodeType":"YulIdentifier","src":"9546:6:53"},{"kind":"number","nativeSrc":"9554:4:53","nodeType":"YulLiteral","src":"9554:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9542:3:53","nodeType":"YulIdentifier","src":"9542:3:53"},"nativeSrc":"9542:17:53","nodeType":"YulFunctionCall","src":"9542:17:53"},"variableNames":[{"name":"size","nativeSrc":"9534:4:53","nodeType":"YulIdentifier","src":"9534:4:53"}]},{"nativeSrc":"9596:23:53","nodeType":"YulAssignment","src":"9596:23:53","value":{"arguments":[{"name":"size","nativeSrc":"9608:4:53","nodeType":"YulIdentifier","src":"9608:4:53"},{"kind":"number","nativeSrc":"9614:4:53","nodeType":"YulLiteral","src":"9614:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9604:3:53","nodeType":"YulIdentifier","src":"9604:3:53"},"nativeSrc":"9604:15:53","nodeType":"YulFunctionCall","src":"9604:15:53"},"variableNames":[{"name":"size","nativeSrc":"9596:4:53","nodeType":"YulIdentifier","src":"9596:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9315:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"9381:6:53","nodeType":"YulTypedName","src":"9381:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"9392:4:53","nodeType":"YulTypedName","src":"9392:4:53","type":""}],"src":"9315:311:53"},{"body":{"nativeSrc":"9751:608:53","nodeType":"YulBlock","src":"9751:608:53","statements":[{"nativeSrc":"9761:90:53","nodeType":"YulAssignment","src":"9761:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9843:6:53","nodeType":"YulIdentifier","src":"9843:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9786:56:53","nodeType":"YulIdentifier","src":"9786:56:53"},"nativeSrc":"9786:64:53","nodeType":"YulFunctionCall","src":"9786:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"9770:15:53","nodeType":"YulIdentifier","src":"9770:15:53"},"nativeSrc":"9770:81:53","nodeType":"YulFunctionCall","src":"9770:81:53"},"variableNames":[{"name":"array","nativeSrc":"9761:5:53","nodeType":"YulIdentifier","src":"9761:5:53"}]},{"nativeSrc":"9860:16:53","nodeType":"YulVariableDeclaration","src":"9860:16:53","value":{"name":"array","nativeSrc":"9871:5:53","nodeType":"YulIdentifier","src":"9871:5:53"},"variables":[{"name":"dst","nativeSrc":"9864:3:53","nodeType":"YulTypedName","src":"9864:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"9893:5:53","nodeType":"YulIdentifier","src":"9893:5:53"},{"name":"length","nativeSrc":"9900:6:53","nodeType":"YulIdentifier","src":"9900:6:53"}],"functionName":{"name":"mstore","nativeSrc":"9886:6:53","nodeType":"YulIdentifier","src":"9886:6:53"},"nativeSrc":"9886:21:53","nodeType":"YulFunctionCall","src":"9886:21:53"},"nativeSrc":"9886:21:53","nodeType":"YulExpressionStatement","src":"9886:21:53"},{"nativeSrc":"9916:23:53","nodeType":"YulAssignment","src":"9916:23:53","value":{"arguments":[{"name":"array","nativeSrc":"9927:5:53","nodeType":"YulIdentifier","src":"9927:5:53"},{"kind":"number","nativeSrc":"9934:4:53","nodeType":"YulLiteral","src":"9934:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9923:3:53","nodeType":"YulIdentifier","src":"9923:3:53"},"nativeSrc":"9923:16:53","nodeType":"YulFunctionCall","src":"9923:16:53"},"variableNames":[{"name":"dst","nativeSrc":"9916:3:53","nodeType":"YulIdentifier","src":"9916:3:53"}]},{"nativeSrc":"9949:44:53","nodeType":"YulVariableDeclaration","src":"9949:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"9967:6:53","nodeType":"YulIdentifier","src":"9967:6:53"},{"arguments":[{"name":"length","nativeSrc":"9979:6:53","nodeType":"YulIdentifier","src":"9979:6:53"},{"kind":"number","nativeSrc":"9987:4:53","nodeType":"YulLiteral","src":"9987:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9975:3:53","nodeType":"YulIdentifier","src":"9975:3:53"},"nativeSrc":"9975:17:53","nodeType":"YulFunctionCall","src":"9975:17:53"}],"functionName":{"name":"add","nativeSrc":"9963:3:53","nodeType":"YulIdentifier","src":"9963:3:53"},"nativeSrc":"9963:30:53","nodeType":"YulFunctionCall","src":"9963:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"9953:6:53","nodeType":"YulTypedName","src":"9953:6:53","type":""}]},{"body":{"nativeSrc":"10021:103:53","nodeType":"YulBlock","src":"10021:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10035:77:53","nodeType":"YulIdentifier","src":"10035:77:53"},"nativeSrc":"10035:79:53","nodeType":"YulFunctionCall","src":"10035:79:53"},"nativeSrc":"10035:79:53","nodeType":"YulExpressionStatement","src":"10035:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"10008:6:53","nodeType":"YulIdentifier","src":"10008:6:53"},{"name":"end","nativeSrc":"10016:3:53","nodeType":"YulIdentifier","src":"10016:3:53"}],"functionName":{"name":"gt","nativeSrc":"10005:2:53","nodeType":"YulIdentifier","src":"10005:2:53"},"nativeSrc":"10005:15:53","nodeType":"YulFunctionCall","src":"10005:15:53"},"nativeSrc":"10002:122:53","nodeType":"YulIf","src":"10002:122:53"},{"body":{"nativeSrc":"10209:144:53","nodeType":"YulBlock","src":"10209:144:53","statements":[{"nativeSrc":"10224:21:53","nodeType":"YulVariableDeclaration","src":"10224:21:53","value":{"name":"src","nativeSrc":"10242:3:53","nodeType":"YulIdentifier","src":"10242:3:53"},"variables":[{"name":"elementPos","nativeSrc":"10228:10:53","nodeType":"YulTypedName","src":"10228:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"10266:3:53","nodeType":"YulIdentifier","src":"10266:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"10292:10:53","nodeType":"YulIdentifier","src":"10292:10:53"},{"name":"end","nativeSrc":"10304:3:53","nodeType":"YulIdentifier","src":"10304:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10271:20:53","nodeType":"YulIdentifier","src":"10271:20:53"},"nativeSrc":"10271:37:53","nodeType":"YulFunctionCall","src":"10271:37:53"}],"functionName":{"name":"mstore","nativeSrc":"10259:6:53","nodeType":"YulIdentifier","src":"10259:6:53"},"nativeSrc":"10259:50:53","nodeType":"YulFunctionCall","src":"10259:50:53"},"nativeSrc":"10259:50:53","nodeType":"YulExpressionStatement","src":"10259:50:53"},{"nativeSrc":"10322:21:53","nodeType":"YulAssignment","src":"10322:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"10333:3:53","nodeType":"YulIdentifier","src":"10333:3:53"},{"kind":"number","nativeSrc":"10338:4:53","nodeType":"YulLiteral","src":"10338:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10329:3:53","nodeType":"YulIdentifier","src":"10329:3:53"},"nativeSrc":"10329:14:53","nodeType":"YulFunctionCall","src":"10329:14:53"},"variableNames":[{"name":"dst","nativeSrc":"10322:3:53","nodeType":"YulIdentifier","src":"10322:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"10162:3:53","nodeType":"YulIdentifier","src":"10162:3:53"},{"name":"srcEnd","nativeSrc":"10167:6:53","nodeType":"YulIdentifier","src":"10167:6:53"}],"functionName":{"name":"lt","nativeSrc":"10159:2:53","nodeType":"YulIdentifier","src":"10159:2:53"},"nativeSrc":"10159:15:53","nodeType":"YulFunctionCall","src":"10159:15:53"},"nativeSrc":"10133:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"10175:25:53","nodeType":"YulBlock","src":"10175:25:53","statements":[{"nativeSrc":"10177:21:53","nodeType":"YulAssignment","src":"10177:21:53","value":{"arguments":[{"name":"src","nativeSrc":"10188:3:53","nodeType":"YulIdentifier","src":"10188:3:53"},{"kind":"number","nativeSrc":"10193:4:53","nodeType":"YulLiteral","src":"10193:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10184:3:53","nodeType":"YulIdentifier","src":"10184:3:53"},"nativeSrc":"10184:14:53","nodeType":"YulFunctionCall","src":"10184:14:53"},"variableNames":[{"name":"src","nativeSrc":"10177:3:53","nodeType":"YulIdentifier","src":"10177:3:53"}]}]},"pre":{"nativeSrc":"10137:21:53","nodeType":"YulBlock","src":"10137:21:53","statements":[{"nativeSrc":"10139:17:53","nodeType":"YulVariableDeclaration","src":"10139:17:53","value":{"name":"offset","nativeSrc":"10150:6:53","nodeType":"YulIdentifier","src":"10150:6:53"},"variables":[{"name":"src","nativeSrc":"10143:3:53","nodeType":"YulTypedName","src":"10143:3:53","type":""}]}]},"src":"10133:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9649:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9721:6:53","nodeType":"YulTypedName","src":"9721:6:53","type":""},{"name":"length","nativeSrc":"9729:6:53","nodeType":"YulTypedName","src":"9729:6:53","type":""},{"name":"end","nativeSrc":"9737:3:53","nodeType":"YulTypedName","src":"9737:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9745:5:53","nodeType":"YulTypedName","src":"9745:5:53","type":""}],"src":"9649:710:53"},{"body":{"nativeSrc":"10459:293:53","nodeType":"YulBlock","src":"10459:293:53","statements":[{"body":{"nativeSrc":"10508:83:53","nodeType":"YulBlock","src":"10508:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10510:77:53","nodeType":"YulIdentifier","src":"10510:77:53"},"nativeSrc":"10510:79:53","nodeType":"YulFunctionCall","src":"10510:79:53"},"nativeSrc":"10510:79:53","nodeType":"YulExpressionStatement","src":"10510:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10487:6:53","nodeType":"YulIdentifier","src":"10487:6:53"},{"kind":"number","nativeSrc":"10495:4:53","nodeType":"YulLiteral","src":"10495:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10483:3:53","nodeType":"YulIdentifier","src":"10483:3:53"},"nativeSrc":"10483:17:53","nodeType":"YulFunctionCall","src":"10483:17:53"},{"name":"end","nativeSrc":"10502:3:53","nodeType":"YulIdentifier","src":"10502:3:53"}],"functionName":{"name":"slt","nativeSrc":"10479:3:53","nodeType":"YulIdentifier","src":"10479:3:53"},"nativeSrc":"10479:27:53","nodeType":"YulFunctionCall","src":"10479:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10472:6:53","nodeType":"YulIdentifier","src":"10472:6:53"},"nativeSrc":"10472:35:53","nodeType":"YulFunctionCall","src":"10472:35:53"},"nativeSrc":"10469:122:53","nodeType":"YulIf","src":"10469:122:53"},{"nativeSrc":"10600:34:53","nodeType":"YulVariableDeclaration","src":"10600:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"10627:6:53","nodeType":"YulIdentifier","src":"10627:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10614:12:53","nodeType":"YulIdentifier","src":"10614:12:53"},"nativeSrc":"10614:20:53","nodeType":"YulFunctionCall","src":"10614:20:53"},"variables":[{"name":"length","nativeSrc":"10604:6:53","nodeType":"YulTypedName","src":"10604:6:53","type":""}]},{"nativeSrc":"10643:103:53","nodeType":"YulAssignment","src":"10643:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10719:6:53","nodeType":"YulIdentifier","src":"10719:6:53"},{"kind":"number","nativeSrc":"10727:4:53","nodeType":"YulLiteral","src":"10727:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10715:3:53","nodeType":"YulIdentifier","src":"10715:3:53"},"nativeSrc":"10715:17:53","nodeType":"YulFunctionCall","src":"10715:17:53"},{"name":"length","nativeSrc":"10734:6:53","nodeType":"YulIdentifier","src":"10734:6:53"},{"name":"end","nativeSrc":"10742:3:53","nodeType":"YulIdentifier","src":"10742:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10652:62:53","nodeType":"YulIdentifier","src":"10652:62:53"},"nativeSrc":"10652:94:53","nodeType":"YulFunctionCall","src":"10652:94:53"},"variableNames":[{"name":"array","nativeSrc":"10643:5:53","nodeType":"YulIdentifier","src":"10643:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10382:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10437:6:53","nodeType":"YulTypedName","src":"10437:6:53","type":""},{"name":"end","nativeSrc":"10445:3:53","nodeType":"YulTypedName","src":"10445:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10453:5:53","nodeType":"YulTypedName","src":"10453:5:53","type":""}],"src":"10382:370:53"},{"body":{"nativeSrc":"10874:584:53","nodeType":"YulBlock","src":"10874:584:53","statements":[{"body":{"nativeSrc":"10920:83:53","nodeType":"YulBlock","src":"10920:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10922:77:53","nodeType":"YulIdentifier","src":"10922:77:53"},"nativeSrc":"10922:79:53","nodeType":"YulFunctionCall","src":"10922:79:53"},"nativeSrc":"10922:79:53","nodeType":"YulExpressionStatement","src":"10922:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10895:7:53","nodeType":"YulIdentifier","src":"10895:7:53"},{"name":"headStart","nativeSrc":"10904:9:53","nodeType":"YulIdentifier","src":"10904:9:53"}],"functionName":{"name":"sub","nativeSrc":"10891:3:53","nodeType":"YulIdentifier","src":"10891:3:53"},"nativeSrc":"10891:23:53","nodeType":"YulFunctionCall","src":"10891:23:53"},{"kind":"number","nativeSrc":"10916:2:53","nodeType":"YulLiteral","src":"10916:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10887:3:53","nodeType":"YulIdentifier","src":"10887:3:53"},"nativeSrc":"10887:32:53","nodeType":"YulFunctionCall","src":"10887:32:53"},"nativeSrc":"10884:119:53","nodeType":"YulIf","src":"10884:119:53"},{"nativeSrc":"11013:125:53","nodeType":"YulBlock","src":"11013:125:53","statements":[{"nativeSrc":"11028:15:53","nodeType":"YulVariableDeclaration","src":"11028:15:53","value":{"kind":"number","nativeSrc":"11042:1:53","nodeType":"YulLiteral","src":"11042:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11032:6:53","nodeType":"YulTypedName","src":"11032:6:53","type":""}]},{"nativeSrc":"11057:71:53","nodeType":"YulAssignment","src":"11057:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11100:9:53","nodeType":"YulIdentifier","src":"11100:9:53"},{"name":"offset","nativeSrc":"11111:6:53","nodeType":"YulIdentifier","src":"11111:6:53"}],"functionName":{"name":"add","nativeSrc":"11096:3:53","nodeType":"YulIdentifier","src":"11096:3:53"},"nativeSrc":"11096:22:53","nodeType":"YulFunctionCall","src":"11096:22:53"},{"name":"dataEnd","nativeSrc":"11120:7:53","nodeType":"YulIdentifier","src":"11120:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"11067:28:53","nodeType":"YulIdentifier","src":"11067:28:53"},"nativeSrc":"11067:61:53","nodeType":"YulFunctionCall","src":"11067:61:53"},"variableNames":[{"name":"value0","nativeSrc":"11057:6:53","nodeType":"YulIdentifier","src":"11057:6:53"}]}]},{"nativeSrc":"11148:303:53","nodeType":"YulBlock","src":"11148:303:53","statements":[{"nativeSrc":"11163:46:53","nodeType":"YulVariableDeclaration","src":"11163:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11194:9:53","nodeType":"YulIdentifier","src":"11194:9:53"},{"kind":"number","nativeSrc":"11205:2:53","nodeType":"YulLiteral","src":"11205:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11190:3:53","nodeType":"YulIdentifier","src":"11190:3:53"},"nativeSrc":"11190:18:53","nodeType":"YulFunctionCall","src":"11190:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11177:12:53","nodeType":"YulIdentifier","src":"11177:12:53"},"nativeSrc":"11177:32:53","nodeType":"YulFunctionCall","src":"11177:32:53"},"variables":[{"name":"offset","nativeSrc":"11167:6:53","nodeType":"YulTypedName","src":"11167:6:53","type":""}]},{"body":{"nativeSrc":"11256:83:53","nodeType":"YulBlock","src":"11256:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11258:77:53","nodeType":"YulIdentifier","src":"11258:77:53"},"nativeSrc":"11258:79:53","nodeType":"YulFunctionCall","src":"11258:79:53"},"nativeSrc":"11258:79:53","nodeType":"YulExpressionStatement","src":"11258:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11228:6:53","nodeType":"YulIdentifier","src":"11228:6:53"},{"kind":"number","nativeSrc":"11236:18:53","nodeType":"YulLiteral","src":"11236:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11225:2:53","nodeType":"YulIdentifier","src":"11225:2:53"},"nativeSrc":"11225:30:53","nodeType":"YulFunctionCall","src":"11225:30:53"},"nativeSrc":"11222:117:53","nodeType":"YulIf","src":"11222:117:53"},{"nativeSrc":"11353:88:53","nodeType":"YulAssignment","src":"11353:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11413:9:53","nodeType":"YulIdentifier","src":"11413:9:53"},{"name":"offset","nativeSrc":"11424:6:53","nodeType":"YulIdentifier","src":"11424:6:53"}],"functionName":{"name":"add","nativeSrc":"11409:3:53","nodeType":"YulIdentifier","src":"11409:3:53"},"nativeSrc":"11409:22:53","nodeType":"YulFunctionCall","src":"11409:22:53"},{"name":"dataEnd","nativeSrc":"11433:7:53","nodeType":"YulIdentifier","src":"11433:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11363:45:53","nodeType":"YulIdentifier","src":"11363:45:53"},"nativeSrc":"11363:78:53","nodeType":"YulFunctionCall","src":"11363:78:53"},"variableNames":[{"name":"value1","nativeSrc":"11353:6:53","nodeType":"YulIdentifier","src":"11353:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr","nativeSrc":"10758:700:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10836:9:53","nodeType":"YulTypedName","src":"10836:9:53","type":""},{"name":"dataEnd","nativeSrc":"10847:7:53","nodeType":"YulTypedName","src":"10847:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10859:6:53","nodeType":"YulTypedName","src":"10859:6:53","type":""},{"name":"value1","nativeSrc":"10867:6:53","nodeType":"YulTypedName","src":"10867:6:53","type":""}],"src":"10758:700:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\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 := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_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_address_payablet_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061009b575f3560e01c8063715018a611610063578063715018a61461013f5780638da5cb5b14610149578063e3f756de14610173578063f04e283e146101af578063f2fde38b146101cb578063fee81cf4146101e75761009b565b806301ffc9a71461009f578063141973b0146100db5780632569296214610103578063439fab911461010d57806354d1f13d14610135575b5f80fd5b3480156100aa575f80fd5b506100c560048036038101906100c091906109ad565b610223565b6040516100d291906109f2565b60405180910390f35b3480156100e6575f80fd5b5061010160048036038101906100fc9190610ac1565b61029c565b005b61010b6103a5565b005b348015610118575f80fd5b50610133600480360381019061012e9190610b94565b6103f6565b005b61013d610513565b005b61014761054c565b005b348015610154575f80fd5b5061015d61055f565b60405161016a9190610c1e565b60405180910390f35b34801561017e575f80fd5b5061019960048036038101906101949190610c61565b610587565b6040516101a691906109f2565b60405180910390f35b6101c960048036038101906101c49190610cbe565b6105db565b005b6101e560048036038101906101e09190610cbe565b610619565b005b3480156101f2575f80fd5b5061020d60048036038101906102089190610cbe565b610642565b60405161021a9190610d01565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029557506102948261065b565b5b9050919050565b6102a46106d4565b8181905084849050146102e3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561039e5782828281811061030357610302610d1a565b5b90506020020160208101906103189190610d71565b5f8087878581811061032d5761032c610d1a565b5b90506020020160208101906103429190610cbe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506102e5565b5050505050565b5f6103ae61070b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f6103ff610715565b905080546003825580156104315760018160011c14303b106104285763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906104439190610f1f565b915091506104508261073e565b5f5b81518110156104d65760015f8084848151811061047257610471610d1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610452565b505050801561050e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105546106d4565b61055d5f610814565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161590509392505050565b6105e36106d4565b63389a75e1600c52805f526020600c20805442111561060957636f5e88185f526004601cfd5b5f81555061061681610814565b50565b6106216106d4565b8060601b61063657637448fbae5f526004601cfd5b61063f81610814565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106cd57506106cc826108da565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610709576382b429005f526004601cfd5b565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610746610943565b156107be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561078057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610811565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b61081c610943565b15610881577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506108d7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61098c81610958565b8114610996575f80fd5b50565b5f813590506109a781610983565b92915050565b5f602082840312156109c2576109c1610950565b5b5f6109cf84828501610999565b91505092915050565b5f8115159050919050565b6109ec816109d8565b82525050565b5f602082019050610a055f8301846109e3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610a2c57610a2b610a0b565b5b8235905067ffffffffffffffff811115610a4957610a48610a0f565b5b602083019150836020820283011115610a6557610a64610a13565b5b9250929050565b5f8083601f840112610a8157610a80610a0b565b5b8235905067ffffffffffffffff811115610a9e57610a9d610a0f565b5b602083019150836020820283011115610aba57610ab9610a13565b5b9250929050565b5f805f8060408587031215610ad957610ad8610950565b5b5f85013567ffffffffffffffff811115610af657610af5610954565b5b610b0287828801610a17565b9450945050602085013567ffffffffffffffff811115610b2557610b24610954565b5b610b3187828801610a6c565b925092505092959194509250565b5f8083601f840112610b5457610b53610a0b565b5b8235905067ffffffffffffffff811115610b7157610b70610a0f565b5b602083019150836001820283011115610b8d57610b8c610a13565b5b9250929050565b5f8060208385031215610baa57610ba9610950565b5b5f83013567ffffffffffffffff811115610bc757610bc6610954565b5b610bd385828601610b3f565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c0882610bdf565b9050919050565b610c1881610bfe565b82525050565b5f602082019050610c315f830184610c0f565b92915050565b610c4081610bfe565b8114610c4a575f80fd5b50565b5f81359050610c5b81610c37565b92915050565b5f805f60408486031215610c7857610c77610950565b5b5f610c8586828701610c4d565b935050602084013567ffffffffffffffff811115610ca657610ca5610954565b5b610cb286828701610b3f565b92509250509250925092565b5f60208284031215610cd357610cd2610950565b5b5f610ce084828501610c4d565b91505092915050565b5f819050919050565b610cfb81610ce9565b82525050565b5f602082019050610d145f830184610cf2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610d50816109d8565b8114610d5a575f80fd5b50565b5f81359050610d6b81610d47565b92915050565b5f60208284031215610d8657610d85610950565b5b5f610d9384828501610d5d565b91505092915050565b5f610da682610bdf565b9050919050565b610db681610d9c565b8114610dc0575f80fd5b50565b5f81359050610dd181610dad565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610e1d82610dd7565b810181811067ffffffffffffffff82111715610e3c57610e3b610de7565b5b80604052505050565b5f610e4e610947565b9050610e5a8282610e14565b919050565b5f67ffffffffffffffff821115610e7957610e78610de7565b5b602082029050602081019050919050565b5f610e9c610e9784610e5f565b610e45565b90508083825260208201905060208402830185811115610ebf57610ebe610a13565b5b835b81811015610ee85780610ed48882610c4d565b845260208401935050602081019050610ec1565b5050509392505050565b5f82601f830112610f0657610f05610a0b565b5b8135610f16848260208601610e8a565b91505092915050565b5f8060408385031215610f3557610f34610950565b5b5f610f4285828601610dc3565b925050602083013567ffffffffffffffff811115610f6357610f62610954565b5b610f6f85828601610ef2565b915050925092905056fea2646970667358221220ddfce1aec2fb0f8d518874929c00497c2d81c727e9711b3c7324436f014ef3ef64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x1E7 JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x141973B0 EQ PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x135 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x223 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xAC1 JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH2 0x3A5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13D PUSH2 0x513 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x147 PUSH2 0x54C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15D PUSH2 0x55F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C4 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x619 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x208 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0xD01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x295 JUMPI POP PUSH2 0x294 DUP3 PUSH2 0x65B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A4 PUSH2 0x6D4 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x2E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x39E JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x318 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x32D JUMPI PUSH2 0x32C PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2E5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3AE PUSH2 0x70B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x3FF PUSH2 0x715 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x431 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x428 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x443 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x450 DUP3 PUSH2 0x73E JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x472 JUMPI PUSH2 0x471 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x452 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x554 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0x55D PUSH0 PUSH2 0x814 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5E3 PUSH2 0x6D4 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x609 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x616 DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x621 PUSH2 0x6D4 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x636 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x63F DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6CD JUMPI POP PUSH2 0x6CC DUP3 PUSH2 0x8DA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x709 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x746 PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x7BE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x780 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x811 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x81C PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x881 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0x958 JUMP JUMPDEST DUP2 EQ PUSH2 0x996 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9A7 DUP2 PUSH2 0x983 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C2 JUMPI PUSH2 0x9C1 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x9CF DUP5 DUP3 DUP6 ADD PUSH2 0x999 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9EC DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA05 PUSH0 DUP4 ADD DUP5 PUSH2 0x9E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA2C JUMPI PUSH2 0xA2B PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA49 JUMPI PUSH2 0xA48 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xA65 JUMPI PUSH2 0xA64 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA81 JUMPI PUSH2 0xA80 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA9E JUMPI PUSH2 0xA9D PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xABA JUMPI PUSH2 0xAB9 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAF6 JUMPI PUSH2 0xAF5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB02 DUP8 DUP3 DUP9 ADD PUSH2 0xA17 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB31 DUP8 DUP3 DUP9 ADD PUSH2 0xA6C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB54 JUMPI PUSH2 0xB53 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB71 JUMPI PUSH2 0xB70 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB8D JUMPI PUSH2 0xB8C PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBAA JUMPI PUSH2 0xBA9 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBC7 JUMPI PUSH2 0xBC6 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xBD3 DUP6 DUP3 DUP7 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC08 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC18 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC31 PUSH0 DUP4 ADD DUP5 PUSH2 0xC0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC40 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP2 EQ PUSH2 0xC4A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC5B DUP2 PUSH2 0xC37 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC78 JUMPI PUSH2 0xC77 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC85 DUP7 DUP3 DUP8 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCA6 JUMPI PUSH2 0xCA5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xCB2 DUP7 DUP3 DUP8 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCE0 DUP5 DUP3 DUP6 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCFB DUP2 PUSH2 0xCE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD14 PUSH0 DUP4 ADD DUP5 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xD50 DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP2 EQ PUSH2 0xD5A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD6B DUP2 PUSH2 0xD47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD85 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD93 DUP5 DUP3 DUP6 ADD PUSH2 0xD5D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB6 DUP2 PUSH2 0xD9C JUMP JUMPDEST DUP2 EQ PUSH2 0xDC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD1 DUP2 PUSH2 0xDAD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xE1D DUP3 PUSH2 0xDD7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xE3C JUMPI PUSH2 0xE3B PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE4E PUSH2 0x947 JUMP JUMPDEST SWAP1 POP PUSH2 0xE5A DUP3 DUP3 PUSH2 0xE14 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE79 JUMPI PUSH2 0xE78 PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE9C PUSH2 0xE97 DUP5 PUSH2 0xE5F JUMP JUMPDEST PUSH2 0xE45 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 0xEBF JUMPI PUSH2 0xEBE PUSH2 0xA13 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEE8 JUMPI DUP1 PUSH2 0xED4 DUP9 DUP3 PUSH2 0xC4D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC1 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF06 JUMPI PUSH2 0xF05 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xF16 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE8A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xDC3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xF6F DUP6 DUP3 DUP7 ADD PUSH2 0xEF2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xFC 0xE1 0xAE 0xC2 0xFB 0xF DUP14 MLOAD DUP9 PUSH21 0x929C00497C2D81C727E9711B3C7324436F014EF3EF PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"347:1933:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:208:34;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1990:288:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9021:617:17;;;:::i;:::-;;964:325:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1546:149:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1023:208:34;1119:4;1157:27;1142:42;;;:11;:42;;;;:82;;;;1188:36;1212:11;1188:23;:36::i;:::-;1142:82;1135:89;;1023:208;;;:::o;1990:288:36:-;12517:13:17;:11;:13::i;:::-;2111:7:36::1;;:14;;2094:6;;:13;;:31;2090:71;;2134:27;;;;;;;;;;;;;;2090:71;2177:9;2172:100;2196:6;;:13;;2192:1;:17;2172:100;;;2251:7;;2259:1;2251:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2230:7;:18:::0;2238:6:::1;;2245:1;2238:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2230:18;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2211:3;;;;;;;2172:100;;;;1990:288:::0;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;964:325:36:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1053:14:36::1;1069:26:::0;1110:5:::1;;1099:39;;;;;;;:::i;:::-;1052:86;;;;1149:24;1166:6;1149:16;:24::i;:::-;1188:9;1183:100;1207:9;:16;1203:1;:20;1183:100;;;1268:4;1244:7;:21:::0;1252:9:::1;1262:1;1252:12;;;;;;;;:::i;:::-;;;;;;;;1244:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1225:3;;;;;;;1183:100;;;;1042:247;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;964:325:36;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1546:149:36:-;1650:4;1674:7;:14;1682:5;1674:14;;;;;;;;;;;;;;;;;;;;;;;;;1673:15;1666:22;;1546:149;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;7878:110::-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1904:568;1977:8;1987:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:122;;2045:79;;:::i;:::-;2004:122;2158:6;2145:20;2135:30;;2188:18;2180:6;2177:30;2174:117;;;2210:79;;:::i;:::-;2174:117;2324:4;2316:6;2312:17;2300:29;;2378:3;2370:4;2362:6;2358:17;2348:8;2344:32;2341:41;2338:128;;;2385:79;;:::i;:::-;2338:128;1904:568;;;;;:::o;2492:565::-;2562:8;2572:6;2622:3;2615:4;2607:6;2603:17;2599:27;2589:122;;2630:79;;:::i;:::-;2589:122;2743:6;2730:20;2720:30;;2773:18;2765:6;2762:30;2759:117;;;2795:79;;:::i;:::-;2759:117;2909:4;2901:6;2897:17;2885:29;;2963:3;2955:4;2947:6;2943:17;2933:8;2929:32;2926:41;2923:128;;;2970:79;;:::i;:::-;2923:128;2492:565;;;;;:::o;3063:928::-;3182:6;3190;3198;3206;3255:2;3243:9;3234:7;3230:23;3226:32;3223:119;;;3261:79;;:::i;:::-;3223:119;3409:1;3398:9;3394:17;3381:31;3439:18;3431:6;3428:30;3425:117;;;3461:79;;:::i;:::-;3425:117;3574:80;3646:7;3637:6;3626:9;3622:22;3574:80;:::i;:::-;3556:98;;;;3352:312;3731:2;3720:9;3716:18;3703:32;3762:18;3754:6;3751:30;3748:117;;;3784:79;;:::i;:::-;3748:117;3897:77;3966:7;3957:6;3946:9;3942:22;3897:77;:::i;:::-;3879:95;;;;3674:310;3063:928;;;;;;;:::o;4010:552::-;4067:8;4077:6;4127:3;4120:4;4112:6;4108:17;4104:27;4094:122;;4135:79;;:::i;:::-;4094:122;4248:6;4235:20;4225:30;;4278:18;4270:6;4267:30;4264:117;;;4300:79;;:::i;:::-;4264:117;4414:4;4406:6;4402:17;4390:29;;4468:3;4460:4;4452:6;4448:17;4438:8;4434:32;4431:41;4428:128;;;4475:79;;:::i;:::-;4428:128;4010:552;;;;;:::o;4568:527::-;4638:6;4646;4695:2;4683:9;4674:7;4670:23;4666:32;4663:119;;;4701:79;;:::i;:::-;4663:119;4849:1;4838:9;4834:17;4821:31;4879:18;4871:6;4868:30;4865:117;;;4901:79;;:::i;:::-;4865:117;5014:64;5070:7;5061:6;5050:9;5046:22;5014:64;:::i;:::-;4996:82;;;;4792:296;4568:527;;;;;:::o;5101:126::-;5138:7;5178:42;5171:5;5167:54;5156:65;;5101:126;;;:::o;5233:96::-;5270:7;5299:24;5317:5;5299:24;:::i;:::-;5288:35;;5233:96;;;:::o;5335:118::-;5422:24;5440:5;5422:24;:::i;:::-;5417:3;5410:37;5335:118;;:::o;5459:222::-;5552:4;5590:2;5579:9;5575:18;5567:26;;5603:71;5671:1;5660:9;5656:17;5647:6;5603:71;:::i;:::-;5459:222;;;;:::o;5687:122::-;5760:24;5778:5;5760:24;:::i;:::-;5753:5;5750:35;5740:63;;5799:1;5796;5789:12;5740:63;5687:122;:::o;5815:139::-;5861:5;5899:6;5886:20;5877:29;;5915:33;5942:5;5915:33;:::i;:::-;5815:139;;;;:::o;5960:672::-;6039:6;6047;6055;6104:2;6092:9;6083:7;6079:23;6075:32;6072:119;;;6110:79;;:::i;:::-;6072:119;6230:1;6255:53;6300:7;6291:6;6280:9;6276:22;6255:53;:::i;:::-;6245:63;;6201:117;6385:2;6374:9;6370:18;6357:32;6416:18;6408:6;6405:30;6402:117;;;6438:79;;:::i;:::-;6402:117;6551:64;6607:7;6598:6;6587:9;6583:22;6551:64;:::i;:::-;6533:82;;;;6328:297;5960:672;;;;;:::o;6638:329::-;6697:6;6746:2;6734:9;6725:7;6721:23;6717:32;6714:119;;;6752:79;;:::i;:::-;6714:119;6872:1;6897:53;6942:7;6933:6;6922:9;6918:22;6897:53;:::i;:::-;6887:63;;6843:117;6638:329;;;;:::o;6973:77::-;7010:7;7039:5;7028:16;;6973:77;;;:::o;7056:118::-;7143:24;7161:5;7143:24;:::i;:::-;7138:3;7131:37;7056:118;;:::o;7180:222::-;7273:4;7311:2;7300:9;7296:18;7288:26;;7324:71;7392:1;7381:9;7377:17;7368:6;7324:71;:::i;:::-;7180:222;;;;:::o;7408:180::-;7456:77;7453:1;7446:88;7553:4;7550:1;7543:15;7577:4;7574:1;7567:15;7594:116;7664:21;7679:5;7664:21;:::i;:::-;7657:5;7654:32;7644:60;;7700:1;7697;7690:12;7644:60;7594:116;:::o;7716:133::-;7759:5;7797:6;7784:20;7775:29;;7813:30;7837:5;7813:30;:::i;:::-;7716:133;;;;:::o;7855:323::-;7911:6;7960:2;7948:9;7939:7;7935:23;7931:32;7928:119;;;7966:79;;:::i;:::-;7928:119;8086:1;8111:50;8153:7;8144:6;8133:9;8129:22;8111:50;:::i;:::-;8101:60;;8057:114;7855:323;;;;:::o;8184:104::-;8229:7;8258:24;8276:5;8258:24;:::i;:::-;8247:35;;8184:104;;;:::o;8294:138::-;8375:32;8401:5;8375:32;:::i;:::-;8368:5;8365:43;8355:71;;8422:1;8419;8412:12;8355:71;8294:138;:::o;8438:155::-;8492:5;8530:6;8517:20;8508:29;;8546:41;8581:5;8546:41;:::i;:::-;8438:155;;;;:::o;8599:102::-;8640:6;8691:2;8687:7;8682:2;8675:5;8671:14;8667:28;8657:38;;8599:102;;;:::o;8707:180::-;8755:77;8752:1;8745:88;8852:4;8849:1;8842:15;8876:4;8873:1;8866:15;8893:281;8976:27;8998:4;8976:27;:::i;:::-;8968:6;8964:40;9106:6;9094:10;9091:22;9070:18;9058:10;9055:34;9052:62;9049:88;;;9117:18;;:::i;:::-;9049:88;9157:10;9153:2;9146:22;8936:238;8893:281;;:::o;9180:129::-;9214:6;9241:20;;:::i;:::-;9231:30;;9270:33;9298:4;9290:6;9270:33;:::i;:::-;9180:129;;;:::o;9315:311::-;9392:4;9482:18;9474:6;9471:30;9468:56;;;9504:18;;:::i;:::-;9468:56;9554:4;9546:6;9542:17;9534:25;;9614:4;9608;9604:15;9596:23;;9315:311;;;:::o;9649:710::-;9745:5;9770:81;9786:64;9843:6;9786:64;:::i;:::-;9770:81;:::i;:::-;9761:90;;9871:5;9900:6;9893:5;9886:21;9934:4;9927:5;9923:16;9916:23;;9987:4;9979:6;9975:17;9967:6;9963:30;10016:3;10008:6;10005:15;10002:122;;;10035:79;;:::i;:::-;10002:122;10150:6;10133:220;10167:6;10162:3;10159:15;10133:220;;;10242:3;10271:37;10304:3;10292:10;10271:37;:::i;:::-;10266:3;10259:50;10338:4;10333:3;10329:14;10322:21;;10209:144;10193:4;10188:3;10184:14;10177:21;;10133:220;;;10137:21;9751:608;;9649:710;;;;;:::o;10382:370::-;10453:5;10502:3;10495:4;10487:6;10483:17;10479:27;10469:122;;10510:79;;:::i;:::-;10469:122;10627:6;10614:20;10652:94;10742:3;10734:6;10727:4;10719:6;10715:17;10652:94;:::i;:::-;10643:103;;10459:293;10382:370;;;;:::o;10758:700::-;10859:6;10867;10916:2;10904:9;10895:7;10891:23;10887:32;10884:119;;;10922:79;;:::i;:::-;10884:119;11042:1;11067:61;11120:7;11111:6;11100:9;11096:22;11067:61;:::i;:::-;11057:71;;11013:125;11205:2;11194:9;11190:18;11177:32;11236:18;11228:6;11225:30;11222:117;;;11258:79;;:::i;:::-;11222:117;11363:78;11433:7;11424:6;11413:9;11409:22;11363:78;:::i;:::-;11353:88;;11148:303;10758:700;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setDenied(address[],bool[])":"141973b0","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"denied_\",\"type\":\"bool[]\"}],\"name\":\"setDenied\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization data `(address owner, address[] denyList)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setDenied(address[],bool[])\":{\"details\":\"The length of the `users_` and `denied_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"denied_\":\"The denied status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_denied\":{\"details\":\"An internal mapping of denied statuses\"}},\"title\":\"SimpleDenyList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Construct a new SimpleDenyList\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the initial list of denied addresses\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized (i.e. not denied)\"},\"setDenied(address[],bool[])\":{\"notice\":\"Set the denied status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/SimpleDenyList.sol\":\"SimpleDenyList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/allowlists/SimpleDenyList.sol\":{\"keccak256\":\"0xde3f7b1fac23f2da8624e7acc9430624696de626dd93ccf3a124fa4eccc150b1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dba72774a18536a5de2e8cdcb70c16cd942763703cd8cec1d87a9369f573e979\",\"dweb:/ipfs/QmY2V1vUwPwR1iMKQXZFaxcC9UKG7mXuzkv1wqk8pyut64\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/budgets/Budget.sol":{"Budget":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts_","type":"address[]"},{"internalType":"bool[]","name":"isAuthorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"isAuthorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"params\":{\"data_\":\"The compressed data for the allocation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"disburse(bytes)\":{\"params\":{\"data_\":\"The compressed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The array of compressed {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The compressed data for the reclamation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"True if the reclamation was successful\"}},\"reconcile(bytes)\":{\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"isAuthorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocate assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget\"},\"constructor\":{\"notice\":\"Initialize the budget and set the owner\"},\"disburse(bytes)\":{\"notice\":\"Disburse assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburse assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"Abstract contract for a generic Budget within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/Budget.sol\":\"Budget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/budgets/SimpleBudget.sol":{"SimpleBudget":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_13548":{"entryPoint":null,"id":13548,"parameterSlots":0,"returnSlots":0},"@_13741":{"entryPoint":null,"id":13741,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612d29806101b45f395ff3fe60806040526004361061014e575f3560e01c80638da5cb5b116100b5578063f2fde38b1161006e578063f2fde38b14610493578063f8724aba146104af578063f9a802c3146104eb578063fa4ca9b114610527578063fe9fbb8014610563578063fee81cf41461059f57610155565b80638da5cb5b1461035d578063bc197c8114610387578063d2514e84146103c3578063f04e283e146103ff578063f1c30ec01461041b578063f23a6e611461045757610155565b806354d1f13d1161010757806354d1f13d14610265578063578bcf351461026f5780635aef467a146102ab57806361400c99146102db578063715018a614610317578063774c33ab1461032157610155565b806301ffc9a71461015757806310098ad51461019357806325692962146101cf5780634359d28a146101d9578063439fab9114610201578063451cc1911461022957610155565b3661015557005b005b348015610162575f80fd5b5061017d60048036038101906101789190611eab565b6105db565b60405161018a9190611ef0565b60405180910390f35b34801561019e575f80fd5b506101b960048036038101906101b49190611f63565b610654565b6040516101c69190611fa6565b60405180910390f35b6101d76106bf565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa9190612075565b610710565b005b34801561020c575f80fd5b5061022760048036038101906102229190612148565b61081a565b005b348015610234575f80fd5b5061024f600480360381019061024a9190612148565b61093f565b60405161025c9190611fa6565b60405180910390f35b61026d610946565b005b34801561027a575f80fd5b5061029560048036038101906102909190611f63565b61097f565b6040516102a29190611fa6565b60405180910390f35b6102c560048036038101906102c09190612148565b6109c4565b6040516102d29190611ef0565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc91906121e8565b610d34565b60405161030e9190611ef0565b60405180910390f35b61031f610d98565b005b34801561032c575f80fd5b506103476004803603810190610342919061225d565b610dab565b6040516103549190611fa6565b60405180910390f35b348015610368575f80fd5b50610371610e01565b60405161037e91906122aa565b60405180910390f35b348015610392575f80fd5b506103ad60048036038101906103a89190612318565b610e29565b6040516103ba91906123fe565b60405180910390f35b3480156103ce575f80fd5b506103e960048036038101906103e49190611f63565b610e40565b6040516103f69190611fa6565b60405180910390f35b61041960048036038101906104149190611f63565b610e98565b005b348015610426575f80fd5b50610441600480360381019061043c9190612148565b610ed6565b60405161044e9190611ef0565b60405180910390f35b348015610462575f80fd5b5061047d60048036038101906104789190612417565b6110bc565b60405161048a91906123fe565b60405180910390f35b6104ad60048036038101906104a89190611f63565b6110d1565b005b3480156104ba575f80fd5b506104d560048036038101906104d0919061225d565b6110fa565b6040516104e29190611fa6565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c919061225d565b61117c565b60405161051e9190611fa6565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190612148565b611255565b60405161055a9190611ef0565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190611f63565b611501565b6040516105969190611ef0565b60405180910390f35b3480156105aa575f80fd5b506105c560048036038101906105c09190611f63565b611590565b6040516105d29190611fa6565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061064d575061064c826115a9565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146106b6576106b1308373ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b6106b8565b475b9050919050565b5f6106c8611655565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071861165f565b818190508484905014610757576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561081357828282818110610777576107766124ad565b5b905060200201602081019061078c9190612504565b60025f8787858181106107a2576107a16124ad565b5b90506020020160208101906107b79190611f63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610759565b5050505050565b5f610823611696565b905080546003825580156108555760018160011c14303b1061084c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061086691906126e8565b9050610874815f01516116bf565b5f5b81602001515181101561090357600160025f8460200151848151811061089f5761089e6124ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610876565b5050801561093a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109d59190612893565b90505f60028111156109ea576109e96128da565b5b815f01516002811115610a00576109ff6128da565b5b03610a76575f8160600151806020019051810190610a1e9190612954565b9050805f01513414610a70578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a6792919061297f565b60405180910390fd5b50610d28565b60016002811115610a8a57610a896128da565b5b815f01516002811115610aa057610a9f6128da565b5b03610b7b575f8160600151806020019051810190610abe9190612954565b9050610af8826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16611795909392919063ffffffff16565b805f0151610b2930846020015173ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b1015610b75578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b6c92919061297f565b60405180910390fd5b50610d27565b600280811115610b8e57610b8d6128da565b5b815f01516002811115610ba457610ba36128da565b5b03610d1d575f8160600151806020019051810190610bc29190612a9f565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b8152600401610c18959493929190612b38565b5f604051808303815f87803b158015610c2f575f80fd5b505af1158015610c41573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401610c8b92919061297f565b602060405180830381865afa158015610ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cca9190612b90565b1015610d1757816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610d0e92919061297f565b60405180910390fd5b50610d26565b5f915050610d2e565b5b5b60019150505b92915050565b5f805f90505b83839050811015610d8c57610d72848483818110610d5b57610d5a6124ad565b5b9050602002810190610d6d9190612bc7565b611255565b610d7f575f915050610d92565b8080600101915050610d3a565b50600190505b92915050565b610da061165f565b610da95f6117ef565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f63bc197c8160e01b905098975050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e8783610654565b610e919190612c56565b9050919050565b610ea061165f565b63389a75e1600c52805f526020600c208054421115610ec657636f5e88185f526004601cfd5b5f815550610ed3816117ef565b50565b5f610edf61165f565b5f8383810190610eef9190612893565b90505f6002811115610f0457610f036128da565b5b815f01516002811115610f1a57610f196128da565b5b1480610f4d575060016002811115610f3557610f346128da565b5b815f01516002811115610f4b57610f4a6128da565b5b145b15610fa6575f8160600151806020019051810190610f6b9190612954565b9050610fa0826020015183604001515f845f015114610f8d57835f0151610f9b565b610f9a8560200151610654565b5b6118b5565b506110b0565b600280811115610fb957610fb86128da565b5b815f01516002811115610fcf57610fce6128da565b5b036110a6575f8160600151806020019051810190610fed9190612a9f565b90506110a082602001518360400151835f01515f856020015114611015578460200151611096565b856020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b815260040161105692919061297f565b602060405180830381865afa158015611071573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110959190612b90565b5b8560400151611acd565b506110af565b5f9150506110b6565b5b60019150505b92915050565b5f63f23a6e6160e01b90509695505050505050565b6110d961165f565b8060601b6110ee57637448fbae5f526004601cfd5b6110f7816117ef565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b815260040161113592919061297f565b602060405180830381865afa158015611150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111749190612b90565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161120492919061297f565b602060405180830381865afa15801561121f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112439190612b90565b61124d9190612c56565b905092915050565b5f61125f33611501565b611295576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906112a59190612893565b9050600160028111156112bb576112ba6128da565b5b815f015160028111156112d1576112d06128da565b5b148061130357505f60028111156112eb576112ea6128da565b5b815f01516002811115611301576113006128da565b5b145b156113a3575f81606001518060200190518101906113219190612954565b90505f6113318360200151610654565b905080825f0151111561138657826020015181835f01516040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161137d93929190612c89565b60405180910390fd5b61139c83602001518460400151845f01516118b5565b50506114f5565b6002808111156113b6576113b56128da565b5b815f015160028111156113cc576113cb6128da565b5b036114eb575f81606001518060200190518101906113ea9190612a9f565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b815260040161142e92919061297f565b602060405180830381865afa158015611449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146d9190612b90565b905080826020015111156114c45782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016114bb93929190612c89565b60405180910390fd5b6114e483602001518460400151845f015185602001518660400151611acd565b50506114f4565b5f9150506114fb565b5b60019150505b92915050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611589575061155a610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061161b575061161a82611cf9565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611694576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6116c7611d72565b1561173f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561170157630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611792565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f511417166117e057637939f4245f526004601cfd5b5f606052806040525050505050565b6117f7611d72565b1561185c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506118b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd2126854036118d35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611953578282826040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161194a93929190612cbe565b60405180910390fd5b61195c83610654565b8111156119ac578261196d84610654565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016119a393929190612c89565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119f79190612c56565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a4057611a3b8282611d76565b611a6c565b611a6b82828573ffffffffffffffffffffffffffffffffffffffff16611d939092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051611ab492919061297f565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403611aeb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b6b578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611b6293929190612cbe565b60405180910390fd5b611b7585846110fa565b821115611bc65784611b8786856110fa565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611bbd93929190612c89565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254611c219190612c56565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401611c69959493929190612b38565b5f604051808303815f87803b158015611c80575f80fd5b505af1158015611c92573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051611cde92919061297f565b60405180910390a23868929eee149b4bd21268555050505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d6b5750611d6a82611ddc565b5b9050919050565b5f90565b5f385f3884865af1611d8f5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611dd3576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611e8a81611e56565b8114611e94575f80fd5b50565b5f81359050611ea581611e81565b92915050565b5f60208284031215611ec057611ebf611e4e565b5b5f611ecd84828501611e97565b91505092915050565b5f8115159050919050565b611eea81611ed6565b82525050565b5f602082019050611f035f830184611ee1565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f3282611f09565b9050919050565b611f4281611f28565b8114611f4c575f80fd5b50565b5f81359050611f5d81611f39565b92915050565b5f60208284031215611f7857611f77611e4e565b5b5f611f8584828501611f4f565b91505092915050565b5f819050919050565b611fa081611f8e565b82525050565b5f602082019050611fb95f830184611f97565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611fe057611fdf611fbf565b5b8235905067ffffffffffffffff811115611ffd57611ffc611fc3565b5b60208301915083602082028301111561201957612018611fc7565b5b9250929050565b5f8083601f84011261203557612034611fbf565b5b8235905067ffffffffffffffff81111561205257612051611fc3565b5b60208301915083602082028301111561206e5761206d611fc7565b5b9250929050565b5f805f806040858703121561208d5761208c611e4e565b5b5f85013567ffffffffffffffff8111156120aa576120a9611e52565b5b6120b687828801611fcb565b9450945050602085013567ffffffffffffffff8111156120d9576120d8611e52565b5b6120e587828801612020565b925092505092959194509250565b5f8083601f84011261210857612107611fbf565b5b8235905067ffffffffffffffff81111561212557612124611fc3565b5b60208301915083600182028301111561214157612140611fc7565b5b9250929050565b5f806020838503121561215e5761215d611e4e565b5b5f83013567ffffffffffffffff81111561217b5761217a611e52565b5b612187858286016120f3565b92509250509250929050565b5f8083601f8401126121a8576121a7611fbf565b5b8235905067ffffffffffffffff8111156121c5576121c4611fc3565b5b6020830191508360208202830111156121e1576121e0611fc7565b5b9250929050565b5f80602083850312156121fe576121fd611e4e565b5b5f83013567ffffffffffffffff81111561221b5761221a611e52565b5b61222785828601612193565b92509250509250929050565b61223c81611f8e565b8114612246575f80fd5b50565b5f8135905061225781612233565b92915050565b5f806040838503121561227357612272611e4e565b5b5f61228085828601611f4f565b925050602061229185828601612249565b9150509250929050565b6122a481611f28565b82525050565b5f6020820190506122bd5f83018461229b565b92915050565b5f8083601f8401126122d8576122d7611fbf565b5b8235905067ffffffffffffffff8111156122f5576122f4611fc3565b5b60208301915083602082028301111561231157612310611fc7565b5b9250929050565b5f805f805f805f8060a0898b03121561233457612333611e4e565b5b5f6123418b828c01611f4f565b98505060206123528b828c01611f4f565b975050604089013567ffffffffffffffff81111561237357612372611e52565b5b61237f8b828c016122c3565b9650965050606089013567ffffffffffffffff8111156123a2576123a1611e52565b5b6123ae8b828c016122c3565b9450945050608089013567ffffffffffffffff8111156123d1576123d0611e52565b5b6123dd8b828c016120f3565b92509250509295985092959890939650565b6123f881611e56565b82525050565b5f6020820190506124115f8301846123ef565b92915050565b5f805f805f8060a0878903121561243157612430611e4e565b5b5f61243e89828a01611f4f565b965050602061244f89828a01611f4f565b955050604061246089828a01612249565b945050606061247189828a01612249565b935050608087013567ffffffffffffffff81111561249257612491611e52565b5b61249e89828a016120f3565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6124e381611ed6565b81146124ed575f80fd5b50565b5f813590506124fe816124da565b92915050565b5f6020828403121561251957612518611e4e565b5b5f612526848285016124f0565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61257982612533565b810181811067ffffffffffffffff8211171561259857612597612543565b5b80604052505050565b5f6125aa611e45565b90506125b68282612570565b919050565b5f80fd5b5f67ffffffffffffffff8211156125d9576125d8612543565b5b602082029050602081019050919050565b5f6125fc6125f7846125bf565b6125a1565b9050808382526020820190506020840283018581111561261f5761261e611fc7565b5b835b8181101561264857806126348882611f4f565b845260208401935050602081019050612621565b5050509392505050565b5f82601f83011261266657612665611fbf565b5b81356126768482602086016125ea565b91505092915050565b5f604082840312156126945761269361252f565b5b61269e60406125a1565b90505f6126ad84828501611f4f565b5f83015250602082013567ffffffffffffffff8111156126d0576126cf6125bb565b5b6126dc84828501612652565b60208301525092915050565b5f602082840312156126fd576126fc611e4e565b5b5f82013567ffffffffffffffff81111561271a57612719611e52565b5b6127268482850161267f565b91505092915050565b6003811061273b575f80fd5b50565b5f8135905061274c8161272f565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127705761276f612543565b5b61277982612533565b9050602081019050919050565b828183375f83830152505050565b5f6127a66127a184612756565b6125a1565b9050828152602081018484840111156127c2576127c1612752565b5b6127cd848285612786565b509392505050565b5f82601f8301126127e9576127e8611fbf565b5b81356127f9848260208601612794565b91505092915050565b5f608082840312156128175761281661252f565b5b61282160806125a1565b90505f6128308482850161273e565b5f83015250602061284384828501611f4f565b602083015250604061285784828501611f4f565b604083015250606082013567ffffffffffffffff81111561287b5761287a6125bb565b5b612887848285016127d5565b60608301525092915050565b5f602082840312156128a8576128a7611e4e565b5b5f82013567ffffffffffffffff8111156128c5576128c4611e52565b5b6128d184828501612802565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f8151905061291581612233565b92915050565b5f602082840312156129305761292f61252f565b5b61293a60206125a1565b90505f61294984828501612907565b5f8301525092915050565b5f6020828403121561296957612968611e4e565b5b5f6129768482850161291b565b91505092915050565b5f6040820190506129925f83018561229b565b61299f6020830184611f97565b9392505050565b8281835e5f83830152505050565b5f6129c66129c184612756565b6125a1565b9050828152602081018484840111156129e2576129e1612752565b5b6129ed8482856129a6565b509392505050565b5f82601f830112612a0957612a08611fbf565b5b8151612a198482602086016129b4565b91505092915050565b5f60608284031215612a3757612a3661252f565b5b612a4160606125a1565b90505f612a5084828501612907565b5f830152506020612a6384828501612907565b602083015250604082015167ffffffffffffffff811115612a8757612a866125bb565b5b612a93848285016129f5565b60408301525092915050565b5f60208284031215612ab457612ab3611e4e565b5b5f82015167ffffffffffffffff811115612ad157612ad0611e52565b5b612add84828501612a22565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612b0a82612ae6565b612b148185612af0565b9350612b248185602086016129a6565b612b2d81612533565b840191505092915050565b5f60a082019050612b4b5f83018861229b565b612b58602083018761229b565b612b656040830186611f97565b612b726060830185611f97565b8181036080830152612b848184612b00565b90509695505050505050565b5f60208284031215612ba557612ba4611e4e565b5b5f612bb284828501612907565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112612be357612be2612bbb565b5b80840192508235915067ffffffffffffffff821115612c0557612c04612bbf565b5b602083019250600182023603831315612c2157612c20612bc3565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c6082611f8e565b9150612c6b83611f8e565b9250828201905080821115612c8357612c82612c29565b5b92915050565b5f606082019050612c9c5f83018661229b565b612ca96020830185611f97565b612cb66040830184611f97565b949350505050565b5f606082019050612cd15f83018661229b565b612cde602083018561229b565b612ceb6040830184611f97565b94935050505056fea2646970667358221220f53b1ed2d8251930b4f97c8116e40d29f46a036a8c5f4fe3d9369cd70e1203db64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2D29 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xF8724ABA EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0xF9A802C3 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x563 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x59F JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3C3 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x457 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x61400C99 EQ PUSH2 0x2DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x774C33AB EQ PUSH2 0x321 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1CF JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x229 JUMPI PUSH2 0x155 JUMP JUMPDEST CALLDATASIZE PUSH2 0x155 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x6BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2075 JUMP JUMPDEST PUSH2 0x710 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x93F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25C SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26D PUSH2 0x946 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C0 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x9C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D2 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x301 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xD34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH2 0xD98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x347 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0xDAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xE01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x22AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x2318 JUMP JUMPDEST PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BA SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x441 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x462 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x478 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A8 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x10FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x511 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50C SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x117C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x54D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x548 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x589 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x584 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C0 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1590 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x64D JUMPI POP PUSH2 0x64C DUP3 PUSH2 0x15A9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6B6 JUMPI PUSH2 0x6B1 ADDRESS DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C8 PUSH2 0x1655 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x718 PUSH2 0x165F JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x757 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x813 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x777 JUMPI PUSH2 0x776 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x78C SWAP2 SWAP1 PUSH2 0x2504 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x7A2 JUMPI PUSH2 0x7A1 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7B7 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x759 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x823 PUSH2 0x1696 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x855 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x84C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x26E8 JUMP JUMPDEST SWAP1 POP PUSH2 0x874 DUP2 PUSH0 ADD MLOAD PUSH2 0x16BF JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x903 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x89F JUMPI PUSH2 0x89E PUSH2 0x24AD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x876 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9D5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x9EA JUMPI PUSH2 0x9E9 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA00 JUMPI PUSH2 0x9FF PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA76 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA1E SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA70 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA67 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH2 0xA89 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA0 JUMPI PUSH2 0xA9F PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB7B JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xAF8 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1795 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB29 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB75 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6C SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD27 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xB8E JUMPI PUSH2 0xB8D PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xD1D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC2 SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A DUP4 PUSH1 0x40 ADD MLOAD ADDRESS DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC18 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC8B SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCA6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCA SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST LT ISZERO PUSH2 0xD17 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD26 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xD2E JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xD8C JUMPI PUSH2 0xD72 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD6D SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH2 0xD7F JUMPI PUSH0 SWAP2 POP POP PUSH2 0xD92 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xD3A JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDA0 PUSH2 0x165F JUMP JUMPDEST PUSH2 0xDA9 PUSH0 PUSH2 0x17EF JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xE87 DUP4 PUSH2 0x654 JUMP JUMPDEST PUSH2 0xE91 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA0 PUSH2 0x165F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xEC6 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xED3 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEDF PUSH2 0x165F JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEEF SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF04 JUMPI PUSH2 0xF03 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF1A JUMPI PUSH2 0xF19 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF4D JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF4B JUMPI PUSH2 0xF4A PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xFA6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xFA0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xF8D JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xF9B JUMP JUMPDEST PUSH2 0xF9A DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST JUMPDEST PUSH2 0x18B5 JUMP JUMPDEST POP PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xFB9 JUMPI PUSH2 0xFB8 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFCF JUMPI PUSH2 0xFCE PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10A6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFED SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH2 0x10A0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH0 DUP6 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1015 JUMPI DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1096 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP8 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1056 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1071 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1095 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST JUMPDEST DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP PUSH2 0x10AF JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x10B6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x165F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x10EE JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x10F7 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1135 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1150 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1174 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1204 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x121F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST PUSH2 0x124D SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x125F CALLER PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x1295 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x12A5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12D1 JUMPI PUSH2 0x12D0 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1303 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12EB JUMPI PUSH2 0x12EA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH2 0x1300 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x13A3 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1331 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH0 ADD MLOAD GT ISZERO PUSH2 0x1386 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x137D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x139C DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD PUSH2 0x18B5 JUMP JUMPDEST POP POP PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x13B6 JUMPI PUSH2 0x13B5 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x14EB JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x13EA SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x142E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1449 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x146D SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x14C4 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14E4 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP POP PUSH2 0x14F4 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x14FB JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1589 JUMPI POP PUSH2 0x155A PUSH2 0xE01 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x161B JUMPI POP PUSH2 0x161A DUP3 PUSH2 0x1CF9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1694 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x16C7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x173F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1701 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1792 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x17E0 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x185C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x18B2 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x18D3 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1953 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x194A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x195C DUP4 PUSH2 0x654 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x19AC JUMPI DUP3 PUSH2 0x196D DUP5 PUSH2 0x654 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x19F7 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A40 JUMPI PUSH2 0x1A3B DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1A6B DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D93 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1AB4 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1AEB JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B6B JUMPI DUP5 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B62 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B75 DUP6 DUP5 PUSH2 0x10FA JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1BC6 JUMPI DUP5 PUSH2 0x1B87 DUP7 DUP6 PUSH2 0x10FA JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BBD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1C21 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C69 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C80 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C92 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1CDE SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1D6B JUMPI POP PUSH2 0x1D6A DUP3 PUSH2 0x1DDC JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1D8F JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1DD3 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8A DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EA5 DUP2 PUSH2 0x1E81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EC0 JUMPI PUSH2 0x1EBF PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1ECD DUP5 DUP3 DUP6 ADD PUSH2 0x1E97 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEA DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F03 PUSH0 DUP4 ADD DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F32 DUP3 PUSH2 0x1F09 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F42 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F5D DUP2 PUSH2 0x1F39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F78 JUMPI PUSH2 0x1F77 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F85 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FA0 DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FB9 PUSH0 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1FE0 JUMPI PUSH2 0x1FDF PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2019 JUMPI PUSH2 0x2018 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2035 JUMPI PUSH2 0x2034 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH2 0x2051 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x206E JUMPI PUSH2 0x206D PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x208D JUMPI PUSH2 0x208C PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20AA JUMPI PUSH2 0x20A9 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20B6 DUP8 DUP3 DUP9 ADD PUSH2 0x1FCB JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20D9 JUMPI PUSH2 0x20D8 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20E5 DUP8 DUP3 DUP9 ADD PUSH2 0x2020 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2108 JUMPI PUSH2 0x2107 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2125 JUMPI PUSH2 0x2124 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2141 JUMPI PUSH2 0x2140 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x215E JUMPI PUSH2 0x215D PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217B JUMPI PUSH2 0x217A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2187 DUP6 DUP3 DUP7 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x21A8 JUMPI PUSH2 0x21A7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21C5 JUMPI PUSH2 0x21C4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x21E1 JUMPI PUSH2 0x21E0 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21FE JUMPI PUSH2 0x21FD PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x221B JUMPI PUSH2 0x221A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2227 DUP6 DUP3 DUP7 ADD PUSH2 0x2193 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x223C DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP2 EQ PUSH2 0x2246 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2257 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2273 JUMPI PUSH2 0x2272 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2280 DUP6 DUP3 DUP7 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2291 DUP6 DUP3 DUP7 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x22A4 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22BD PUSH0 DUP4 ADD DUP5 PUSH2 0x229B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x22D8 JUMPI PUSH2 0x22D7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22F5 JUMPI PUSH2 0x22F4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2311 JUMPI PUSH2 0x2310 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2334 JUMPI PUSH2 0x2333 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2341 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x2352 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2373 JUMPI PUSH2 0x2372 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x237F DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23A2 JUMPI PUSH2 0x23A1 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23AE DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23D1 JUMPI PUSH2 0x23D0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23DD DUP12 DUP3 DUP13 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x23F8 DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2411 PUSH0 DUP4 ADD DUP5 PUSH2 0x23EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2431 JUMPI PUSH2 0x2430 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x243E DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x244F DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2460 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2471 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2492 JUMPI PUSH2 0x2491 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x249E DUP10 DUP3 DUP11 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x24E3 DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP2 EQ PUSH2 0x24ED JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24FE DUP2 PUSH2 0x24DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2526 DUP5 DUP3 DUP6 ADD PUSH2 0x24F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2579 DUP3 PUSH2 0x2533 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2598 JUMPI PUSH2 0x2597 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25AA PUSH2 0x1E45 JUMP JUMPDEST SWAP1 POP PUSH2 0x25B6 DUP3 DUP3 PUSH2 0x2570 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25D9 JUMPI PUSH2 0x25D8 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x25FC PUSH2 0x25F7 DUP5 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x25A1 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 0x261F JUMPI PUSH2 0x261E PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2648 JUMPI DUP1 PUSH2 0x2634 DUP9 DUP3 PUSH2 0x1F4F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2621 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2666 JUMPI PUSH2 0x2665 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2676 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x269E PUSH1 0x40 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x26AD DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26D0 JUMPI PUSH2 0x26CF PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x26DC DUP5 DUP3 DUP6 ADD PUSH2 0x2652 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26FD JUMPI PUSH2 0x26FC PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271A JUMPI PUSH2 0x2719 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2726 DUP5 DUP3 DUP6 ADD PUSH2 0x267F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x273B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x274C DUP2 PUSH2 0x272F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2770 JUMPI PUSH2 0x276F PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH2 0x2779 DUP3 PUSH2 0x2533 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x27A6 PUSH2 0x27A1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27C2 JUMPI PUSH2 0x27C1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x27CD DUP5 DUP3 DUP6 PUSH2 0x2786 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27E9 JUMPI PUSH2 0x27E8 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27F9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2794 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2817 JUMPI PUSH2 0x2816 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2821 PUSH1 0x80 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2830 DUP5 DUP3 DUP6 ADD PUSH2 0x273E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2843 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2857 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2887 DUP5 DUP3 DUP6 ADD PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A8 JUMPI PUSH2 0x28A7 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x28D1 DUP5 DUP3 DUP6 ADD PUSH2 0x2802 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2915 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2930 JUMPI PUSH2 0x292F PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x293A PUSH1 0x20 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2949 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2969 JUMPI PUSH2 0x2968 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2976 DUP5 DUP3 DUP6 ADD PUSH2 0x291B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2992 PUSH0 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x299F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x29C6 PUSH2 0x29C1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x29E2 JUMPI PUSH2 0x29E1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x29ED DUP5 DUP3 DUP6 PUSH2 0x29A6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A09 JUMPI PUSH2 0x2A08 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2A19 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x29B4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A37 JUMPI PUSH2 0x2A36 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2A41 PUSH1 0x60 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A50 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2A63 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A87 JUMPI PUSH2 0x2A86 PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2A93 DUP5 DUP3 DUP6 ADD PUSH2 0x29F5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB4 JUMPI PUSH2 0x2AB3 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD1 JUMPI PUSH2 0x2AD0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADD DUP5 DUP3 DUP6 ADD PUSH2 0x2A22 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2B0A DUP3 PUSH2 0x2AE6 JUMP JUMPDEST PUSH2 0x2B14 DUP2 DUP6 PUSH2 0x2AF0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2B24 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x29A6 JUMP JUMPDEST PUSH2 0x2B2D DUP2 PUSH2 0x2533 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2B4B PUSH0 DUP4 ADD DUP9 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B58 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B65 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2B72 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B84 DUP2 DUP5 PUSH2 0x2B00 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BA5 JUMPI PUSH2 0x2BA4 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2BB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2BE3 JUMPI PUSH2 0x2BE2 PUSH2 0x2BBB JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C05 JUMPI PUSH2 0x2C04 PUSH2 0x2BBF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x2C21 JUMPI PUSH2 0x2C20 PUSH2 0x2BC3 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2C60 DUP3 PUSH2 0x1F8E JUMP JUMPDEST SWAP2 POP PUSH2 0x2C6B DUP4 PUSH2 0x1F8E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C83 JUMPI PUSH2 0x2C82 PUSH2 0x2C29 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2C9C PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CA9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2CB6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2CD1 PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CDE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CEB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 EXTCODESIZE 0x1E 0xD2 0xD8 0x25 NOT ADDRESS 0xB4 0xF9 PUSH29 0x8116E40D29F46A036A8C5F4FE3D9369CD70E1203DB64736F6C63430008 NOT STOP CALLER ","sourceMap":"769:13709:38:-:0;;;1884:53;;;;;;;;;;2803:28:37;2820:10;2803:16;;;:28;;:::i;:::-;1908:22:38;:20;;;:22;;:::i;:::-;769:13709;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;769:13709:38:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_13661":{"entryPoint":null,"id":13661,"parameterSlots":0,"returnSlots":0},"@_13668":{"entryPoint":null,"id":13668,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":5727,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":7538,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":5782,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":5823,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":5717,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":6127,"id":6316,"parameterSlots":1,"returnSlots":0},"@_transferERC1155_14609":{"entryPoint":6861,"id":14609,"parameterSlots":5,"returnSlots":0},"@_transferFungible_14535":{"entryPoint":6325,"id":14535,"parameterSlots":3,"returnSlots":0},"@allocate_13960":{"entryPoint":2500,"id":13960,"parameterSlots":2,"returnSlots":1},"@available_14394":{"entryPoint":1620,"id":14394,"parameterSlots":1,"returnSlots":1},"@available_14416":{"entryPoint":4346,"id":14416,"parameterSlots":2,"returnSlots":1},"@balanceOf_11267":{"entryPoint":5666,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2374,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3736,"id":6396,"parameterSlots":1,"returnSlots":0},"@disburseBatch_14253":{"entryPoint":3380,"id":14253,"parameterSlots":2,"returnSlots":1},"@disburse_14218":{"entryPoint":4693,"id":14218,"parameterSlots":2,"returnSlots":1},"@distributed_14430":{"entryPoint":2431,"id":14430,"parameterSlots":1,"returnSlots":1},"@distributed_14447":{"entryPoint":3499,"id":14447,"parameterSlots":2,"returnSlots":1},"@initialize_13789":{"entryPoint":2074,"id":13789,"parameterSlots":2,"returnSlots":0},"@isAuthorized_14318":{"entryPoint":5377,"id":14318,"parameterSlots":1,"returnSlots":1},"@onERC1155BatchReceived_14655":{"entryPoint":3625,"id":14655,"parameterSlots":8,"returnSlots":1},"@onERC1155Received_14631":{"entryPoint":4284,"id":14631,"parameterSlots":6,"returnSlots":1},"@owner_6404":{"entryPoint":3585,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":5520,"id":6414,"parameterSlots":1,"returnSlots":1},"@reclaim_14077":{"entryPoint":3798,"id":14077,"parameterSlots":2,"returnSlots":1},"@reconcile_14459":{"entryPoint":2367,"id":14459,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":3480,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1727,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11089":{"entryPoint":7542,"id":11089,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_11177":{"entryPoint":6037,"id":11177,"parameterSlots":4,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":7571,"id":11219,"parameterSlots":3,"returnSlots":0},"@setAuthorized_14299":{"entryPoint":1808,"id":14299,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13636":{"entryPoint":5545,"id":13636,"parameterSlots":1,"returnSlots":1},"@supportsInterface_14679":{"entryPoint":1499,"id":14679,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":7417,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":7644,"id":2844,"parameterSlots":1,"returnSlots":1},"@total_14336":{"entryPoint":3648,"id":14336,"parameterSlots":1,"returnSlots":1},"@total_14364":{"entryPoint":4476,"id":14364,"parameterSlots":2,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":4305,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":9706,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":10132,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":10676,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":8015,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":8139,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":9810,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":8224,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":8595,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":8899,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":9456,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":7831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":8435,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":10197,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":10741,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_AssetType_$13471":{"entryPoint":10046,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory":{"entryPoint":10786,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":10523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$13702_memory_ptr":{"entryPoint":9855,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":8777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":10503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8035,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":8984,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr":{"entryPoint":9239,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":8797,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":8309,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":8680,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":9476,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":7851,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":8520,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory":{"entryPoint":10911,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":10580,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$13702_memory_ptr":{"entryPoint":9960,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":10387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":11152,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":8859,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":7905,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":9199,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":11008,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":8087,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":8874,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":11454,"id":null,"parameterSlots":4,"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":11064,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":10623,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":11401,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":7920,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":9214,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":8102,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":11207,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":9633,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":7749,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":9663,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":10070,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":10982,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":10992,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11350,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":7976,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":7894,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":7766,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":7945,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":8078,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":10118,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":10662,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":9584,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":11305,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":10458,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9389,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9539,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":8131,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":8127,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":11199,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":9519,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":11195,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":9659,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":8135,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":11203,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":10066,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":7762,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":7758,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":9523,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":7993,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":9434,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":7809,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_AssetType_$13471":{"entryPoint":10031,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8755,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:28454:53","nodeType":"YulBlock","src":"0:28454:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:81:53","nodeType":"YulBlock","src":"1563:81:53","statements":[{"nativeSrc":"1573:65:53","nodeType":"YulAssignment","src":"1573:65:53","value":{"arguments":[{"name":"value","nativeSrc":"1588:5:53","nodeType":"YulIdentifier","src":"1588:5:53"},{"kind":"number","nativeSrc":"1595:42:53","nodeType":"YulLiteral","src":"1595:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1584:3:53","nodeType":"YulIdentifier","src":"1584:3:53"},"nativeSrc":"1584:54:53","nodeType":"YulFunctionCall","src":"1584:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1518:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:126:53"},{"body":{"nativeSrc":"1695:51:53","nodeType":"YulBlock","src":"1695:51:53","statements":[{"nativeSrc":"1705:35:53","nodeType":"YulAssignment","src":"1705:35:53","value":{"arguments":[{"name":"value","nativeSrc":"1734:5:53","nodeType":"YulIdentifier","src":"1734:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1716:17:53","nodeType":"YulIdentifier","src":"1716:17:53"},"nativeSrc":"1716:24:53","nodeType":"YulFunctionCall","src":"1716:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1705:7:53","nodeType":"YulIdentifier","src":"1705:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"1650:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1677:5:53","nodeType":"YulTypedName","src":"1677:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1687:7:53","nodeType":"YulTypedName","src":"1687:7:53","type":""}],"src":"1650:96:53"},{"body":{"nativeSrc":"1795:79:53","nodeType":"YulBlock","src":"1795:79:53","statements":[{"body":{"nativeSrc":"1852:16:53","nodeType":"YulBlock","src":"1852:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1861:1:53","nodeType":"YulLiteral","src":"1861:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1864:1:53","nodeType":"YulLiteral","src":"1864:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1854:6:53","nodeType":"YulIdentifier","src":"1854:6:53"},"nativeSrc":"1854:12:53","nodeType":"YulFunctionCall","src":"1854:12:53"},"nativeSrc":"1854:12:53","nodeType":"YulExpressionStatement","src":"1854:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1818:5:53","nodeType":"YulIdentifier","src":"1818:5:53"},{"arguments":[{"name":"value","nativeSrc":"1843:5:53","nodeType":"YulIdentifier","src":"1843:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1825:17:53","nodeType":"YulIdentifier","src":"1825:17:53"},"nativeSrc":"1825:24:53","nodeType":"YulFunctionCall","src":"1825:24:53"}],"functionName":{"name":"eq","nativeSrc":"1815:2:53","nodeType":"YulIdentifier","src":"1815:2:53"},"nativeSrc":"1815:35:53","nodeType":"YulFunctionCall","src":"1815:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1808:6:53","nodeType":"YulIdentifier","src":"1808:6:53"},"nativeSrc":"1808:43:53","nodeType":"YulFunctionCall","src":"1808:43:53"},"nativeSrc":"1805:63:53","nodeType":"YulIf","src":"1805:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"1752:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1788:5:53","nodeType":"YulTypedName","src":"1788:5:53","type":""}],"src":"1752:122:53"},{"body":{"nativeSrc":"1932:87:53","nodeType":"YulBlock","src":"1932:87:53","statements":[{"nativeSrc":"1942:29:53","nodeType":"YulAssignment","src":"1942:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1964:6:53","nodeType":"YulIdentifier","src":"1964:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1951:12:53","nodeType":"YulIdentifier","src":"1951:12:53"},"nativeSrc":"1951:20:53","nodeType":"YulFunctionCall","src":"1951:20:53"},"variableNames":[{"name":"value","nativeSrc":"1942:5:53","nodeType":"YulIdentifier","src":"1942:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2007:5:53","nodeType":"YulIdentifier","src":"2007:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1980:26:53","nodeType":"YulIdentifier","src":"1980:26:53"},"nativeSrc":"1980:33:53","nodeType":"YulFunctionCall","src":"1980:33:53"},"nativeSrc":"1980:33:53","nodeType":"YulExpressionStatement","src":"1980:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"1880:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1910:6:53","nodeType":"YulTypedName","src":"1910:6:53","type":""},{"name":"end","nativeSrc":"1918:3:53","nodeType":"YulTypedName","src":"1918:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1926:5:53","nodeType":"YulTypedName","src":"1926:5:53","type":""}],"src":"1880:139:53"},{"body":{"nativeSrc":"2091:263:53","nodeType":"YulBlock","src":"2091:263:53","statements":[{"body":{"nativeSrc":"2137:83:53","nodeType":"YulBlock","src":"2137:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2139:77:53","nodeType":"YulIdentifier","src":"2139:77:53"},"nativeSrc":"2139:79:53","nodeType":"YulFunctionCall","src":"2139:79:53"},"nativeSrc":"2139:79:53","nodeType":"YulExpressionStatement","src":"2139:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2112:7:53","nodeType":"YulIdentifier","src":"2112:7:53"},{"name":"headStart","nativeSrc":"2121:9:53","nodeType":"YulIdentifier","src":"2121:9:53"}],"functionName":{"name":"sub","nativeSrc":"2108:3:53","nodeType":"YulIdentifier","src":"2108:3:53"},"nativeSrc":"2108:23:53","nodeType":"YulFunctionCall","src":"2108:23:53"},{"kind":"number","nativeSrc":"2133:2:53","nodeType":"YulLiteral","src":"2133:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2104:3:53","nodeType":"YulIdentifier","src":"2104:3:53"},"nativeSrc":"2104:32:53","nodeType":"YulFunctionCall","src":"2104:32:53"},"nativeSrc":"2101:119:53","nodeType":"YulIf","src":"2101:119:53"},{"nativeSrc":"2230:117:53","nodeType":"YulBlock","src":"2230:117:53","statements":[{"nativeSrc":"2245:15:53","nodeType":"YulVariableDeclaration","src":"2245:15:53","value":{"kind":"number","nativeSrc":"2259:1:53","nodeType":"YulLiteral","src":"2259:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2249:6:53","nodeType":"YulTypedName","src":"2249:6:53","type":""}]},{"nativeSrc":"2274:63:53","nodeType":"YulAssignment","src":"2274:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2309:9:53","nodeType":"YulIdentifier","src":"2309:9:53"},{"name":"offset","nativeSrc":"2320:6:53","nodeType":"YulIdentifier","src":"2320:6:53"}],"functionName":{"name":"add","nativeSrc":"2305:3:53","nodeType":"YulIdentifier","src":"2305:3:53"},"nativeSrc":"2305:22:53","nodeType":"YulFunctionCall","src":"2305:22:53"},{"name":"dataEnd","nativeSrc":"2329:7:53","nodeType":"YulIdentifier","src":"2329:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2284:20:53","nodeType":"YulIdentifier","src":"2284:20:53"},"nativeSrc":"2284:53:53","nodeType":"YulFunctionCall","src":"2284:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2274:6:53","nodeType":"YulIdentifier","src":"2274:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2025:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2061:9:53","nodeType":"YulTypedName","src":"2061:9:53","type":""},{"name":"dataEnd","nativeSrc":"2072:7:53","nodeType":"YulTypedName","src":"2072:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2084:6:53","nodeType":"YulTypedName","src":"2084:6:53","type":""}],"src":"2025:329:53"},{"body":{"nativeSrc":"2405:32:53","nodeType":"YulBlock","src":"2405:32:53","statements":[{"nativeSrc":"2415:16:53","nodeType":"YulAssignment","src":"2415:16:53","value":{"name":"value","nativeSrc":"2426:5:53","nodeType":"YulIdentifier","src":"2426:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2415:7:53","nodeType":"YulIdentifier","src":"2415:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2360:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2387:5:53","nodeType":"YulTypedName","src":"2387:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2397:7:53","nodeType":"YulTypedName","src":"2397:7:53","type":""}],"src":"2360:77:53"},{"body":{"nativeSrc":"2508:53:53","nodeType":"YulBlock","src":"2508:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2525:3:53","nodeType":"YulIdentifier","src":"2525:3:53"},{"arguments":[{"name":"value","nativeSrc":"2548:5:53","nodeType":"YulIdentifier","src":"2548:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2530:17:53","nodeType":"YulIdentifier","src":"2530:17:53"},"nativeSrc":"2530:24:53","nodeType":"YulFunctionCall","src":"2530:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2518:6:53","nodeType":"YulIdentifier","src":"2518:6:53"},"nativeSrc":"2518:37:53","nodeType":"YulFunctionCall","src":"2518:37:53"},"nativeSrc":"2518:37:53","nodeType":"YulExpressionStatement","src":"2518:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2443:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2496:5:53","nodeType":"YulTypedName","src":"2496:5:53","type":""},{"name":"pos","nativeSrc":"2503:3:53","nodeType":"YulTypedName","src":"2503:3:53","type":""}],"src":"2443:118:53"},{"body":{"nativeSrc":"2665:124:53","nodeType":"YulBlock","src":"2665:124:53","statements":[{"nativeSrc":"2675:26:53","nodeType":"YulAssignment","src":"2675:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2687:9:53","nodeType":"YulIdentifier","src":"2687:9:53"},{"kind":"number","nativeSrc":"2698:2:53","nodeType":"YulLiteral","src":"2698:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2683:3:53","nodeType":"YulIdentifier","src":"2683:3:53"},"nativeSrc":"2683:18:53","nodeType":"YulFunctionCall","src":"2683:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2675:4:53","nodeType":"YulIdentifier","src":"2675:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2755:6:53","nodeType":"YulIdentifier","src":"2755:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2768:9:53","nodeType":"YulIdentifier","src":"2768:9:53"},{"kind":"number","nativeSrc":"2779:1:53","nodeType":"YulLiteral","src":"2779:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2764:3:53","nodeType":"YulIdentifier","src":"2764:3:53"},"nativeSrc":"2764:17:53","nodeType":"YulFunctionCall","src":"2764:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2711:43:53","nodeType":"YulIdentifier","src":"2711:43:53"},"nativeSrc":"2711:71:53","nodeType":"YulFunctionCall","src":"2711:71:53"},"nativeSrc":"2711:71:53","nodeType":"YulExpressionStatement","src":"2711:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2567:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2637:9:53","nodeType":"YulTypedName","src":"2637:9:53","type":""},{"name":"value0","nativeSrc":"2649:6:53","nodeType":"YulTypedName","src":"2649:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2660:4:53","nodeType":"YulTypedName","src":"2660:4:53","type":""}],"src":"2567:222:53"},{"body":{"nativeSrc":"2884:28:53","nodeType":"YulBlock","src":"2884:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2901:1:53","nodeType":"YulLiteral","src":"2901:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2904:1:53","nodeType":"YulLiteral","src":"2904:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"},"nativeSrc":"2894:12:53","nodeType":"YulFunctionCall","src":"2894:12:53"},"nativeSrc":"2894:12:53","nodeType":"YulExpressionStatement","src":"2894:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2795:117:53","nodeType":"YulFunctionDefinition","src":"2795:117:53"},{"body":{"nativeSrc":"3007:28:53","nodeType":"YulBlock","src":"3007:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3024:1:53","nodeType":"YulLiteral","src":"3024:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3027:1:53","nodeType":"YulLiteral","src":"3027:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3017:6:53","nodeType":"YulIdentifier","src":"3017:6:53"},"nativeSrc":"3017:12:53","nodeType":"YulFunctionCall","src":"3017:12:53"},"nativeSrc":"3017:12:53","nodeType":"YulExpressionStatement","src":"3017:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2918:117:53","nodeType":"YulFunctionDefinition","src":"2918:117:53"},{"body":{"nativeSrc":"3130:28:53","nodeType":"YulBlock","src":"3130:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3147:1:53","nodeType":"YulLiteral","src":"3147:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3150:1:53","nodeType":"YulLiteral","src":"3150:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3140:6:53","nodeType":"YulIdentifier","src":"3140:6:53"},"nativeSrc":"3140:12:53","nodeType":"YulFunctionCall","src":"3140:12:53"},"nativeSrc":"3140:12:53","nodeType":"YulExpressionStatement","src":"3140:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3041:117:53","nodeType":"YulFunctionDefinition","src":"3041:117:53"},{"body":{"nativeSrc":"3271:478:53","nodeType":"YulBlock","src":"3271:478:53","statements":[{"body":{"nativeSrc":"3320:83:53","nodeType":"YulBlock","src":"3320:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3322:77:53","nodeType":"YulIdentifier","src":"3322:77:53"},"nativeSrc":"3322:79:53","nodeType":"YulFunctionCall","src":"3322:79:53"},"nativeSrc":"3322:79:53","nodeType":"YulExpressionStatement","src":"3322:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3299:6:53","nodeType":"YulIdentifier","src":"3299:6:53"},{"kind":"number","nativeSrc":"3307:4:53","nodeType":"YulLiteral","src":"3307:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3295:3:53","nodeType":"YulIdentifier","src":"3295:3:53"},"nativeSrc":"3295:17:53","nodeType":"YulFunctionCall","src":"3295:17:53"},{"name":"end","nativeSrc":"3314:3:53","nodeType":"YulIdentifier","src":"3314:3:53"}],"functionName":{"name":"slt","nativeSrc":"3291:3:53","nodeType":"YulIdentifier","src":"3291:3:53"},"nativeSrc":"3291:27:53","nodeType":"YulFunctionCall","src":"3291:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3284:6:53","nodeType":"YulIdentifier","src":"3284:6:53"},"nativeSrc":"3284:35:53","nodeType":"YulFunctionCall","src":"3284:35:53"},"nativeSrc":"3281:122:53","nodeType":"YulIf","src":"3281:122:53"},{"nativeSrc":"3412:30:53","nodeType":"YulAssignment","src":"3412:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3435:6:53","nodeType":"YulIdentifier","src":"3435:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3422:12:53","nodeType":"YulIdentifier","src":"3422:12:53"},"nativeSrc":"3422:20:53","nodeType":"YulFunctionCall","src":"3422:20:53"},"variableNames":[{"name":"length","nativeSrc":"3412:6:53","nodeType":"YulIdentifier","src":"3412:6:53"}]},{"body":{"nativeSrc":"3485:83:53","nodeType":"YulBlock","src":"3485:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3487:77:53","nodeType":"YulIdentifier","src":"3487:77:53"},"nativeSrc":"3487:79:53","nodeType":"YulFunctionCall","src":"3487:79:53"},"nativeSrc":"3487:79:53","nodeType":"YulExpressionStatement","src":"3487:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3457:6:53","nodeType":"YulIdentifier","src":"3457:6:53"},{"kind":"number","nativeSrc":"3465:18:53","nodeType":"YulLiteral","src":"3465:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3454:2:53","nodeType":"YulIdentifier","src":"3454:2:53"},"nativeSrc":"3454:30:53","nodeType":"YulFunctionCall","src":"3454:30:53"},"nativeSrc":"3451:117:53","nodeType":"YulIf","src":"3451:117:53"},{"nativeSrc":"3577:29:53","nodeType":"YulAssignment","src":"3577:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3593:6:53","nodeType":"YulIdentifier","src":"3593:6:53"},{"kind":"number","nativeSrc":"3601:4:53","nodeType":"YulLiteral","src":"3601:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3589:3:53","nodeType":"YulIdentifier","src":"3589:3:53"},"nativeSrc":"3589:17:53","nodeType":"YulFunctionCall","src":"3589:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3577:8:53","nodeType":"YulIdentifier","src":"3577:8:53"}]},{"body":{"nativeSrc":"3660:83:53","nodeType":"YulBlock","src":"3660:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3662:77:53","nodeType":"YulIdentifier","src":"3662:77:53"},"nativeSrc":"3662:79:53","nodeType":"YulFunctionCall","src":"3662:79:53"},"nativeSrc":"3662:79:53","nodeType":"YulExpressionStatement","src":"3662:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3625:8:53","nodeType":"YulIdentifier","src":"3625:8:53"},{"arguments":[{"name":"length","nativeSrc":"3639:6:53","nodeType":"YulIdentifier","src":"3639:6:53"},{"kind":"number","nativeSrc":"3647:4:53","nodeType":"YulLiteral","src":"3647:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3635:3:53","nodeType":"YulIdentifier","src":"3635:3:53"},"nativeSrc":"3635:17:53","nodeType":"YulFunctionCall","src":"3635:17:53"}],"functionName":{"name":"add","nativeSrc":"3621:3:53","nodeType":"YulIdentifier","src":"3621:3:53"},"nativeSrc":"3621:32:53","nodeType":"YulFunctionCall","src":"3621:32:53"},{"name":"end","nativeSrc":"3655:3:53","nodeType":"YulIdentifier","src":"3655:3:53"}],"functionName":{"name":"gt","nativeSrc":"3618:2:53","nodeType":"YulIdentifier","src":"3618:2:53"},"nativeSrc":"3618:41:53","nodeType":"YulFunctionCall","src":"3618:41:53"},"nativeSrc":"3615:128:53","nodeType":"YulIf","src":"3615:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3181:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3238:6:53","nodeType":"YulTypedName","src":"3238:6:53","type":""},{"name":"end","nativeSrc":"3246:3:53","nodeType":"YulTypedName","src":"3246:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3254:8:53","nodeType":"YulTypedName","src":"3254:8:53","type":""},{"name":"length","nativeSrc":"3264:6:53","nodeType":"YulTypedName","src":"3264:6:53","type":""}],"src":"3181:568:53"},{"body":{"nativeSrc":"3856:478:53","nodeType":"YulBlock","src":"3856:478:53","statements":[{"body":{"nativeSrc":"3905:83:53","nodeType":"YulBlock","src":"3905:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3907:77:53","nodeType":"YulIdentifier","src":"3907:77:53"},"nativeSrc":"3907:79:53","nodeType":"YulFunctionCall","src":"3907:79:53"},"nativeSrc":"3907:79:53","nodeType":"YulExpressionStatement","src":"3907:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3884:6:53","nodeType":"YulIdentifier","src":"3884:6:53"},{"kind":"number","nativeSrc":"3892:4:53","nodeType":"YulLiteral","src":"3892:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3880:3:53","nodeType":"YulIdentifier","src":"3880:3:53"},"nativeSrc":"3880:17:53","nodeType":"YulFunctionCall","src":"3880:17:53"},{"name":"end","nativeSrc":"3899:3:53","nodeType":"YulIdentifier","src":"3899:3:53"}],"functionName":{"name":"slt","nativeSrc":"3876:3:53","nodeType":"YulIdentifier","src":"3876:3:53"},"nativeSrc":"3876:27:53","nodeType":"YulFunctionCall","src":"3876:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3869:6:53","nodeType":"YulIdentifier","src":"3869:6:53"},"nativeSrc":"3869:35:53","nodeType":"YulFunctionCall","src":"3869:35:53"},"nativeSrc":"3866:122:53","nodeType":"YulIf","src":"3866:122:53"},{"nativeSrc":"3997:30:53","nodeType":"YulAssignment","src":"3997:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4020:6:53","nodeType":"YulIdentifier","src":"4020:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4007:12:53","nodeType":"YulIdentifier","src":"4007:12:53"},"nativeSrc":"4007:20:53","nodeType":"YulFunctionCall","src":"4007:20:53"},"variableNames":[{"name":"length","nativeSrc":"3997:6:53","nodeType":"YulIdentifier","src":"3997:6:53"}]},{"body":{"nativeSrc":"4070:83:53","nodeType":"YulBlock","src":"4070:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4072:77:53","nodeType":"YulIdentifier","src":"4072:77:53"},"nativeSrc":"4072:79:53","nodeType":"YulFunctionCall","src":"4072:79:53"},"nativeSrc":"4072:79:53","nodeType":"YulExpressionStatement","src":"4072:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4042:6:53","nodeType":"YulIdentifier","src":"4042:6:53"},{"kind":"number","nativeSrc":"4050:18:53","nodeType":"YulLiteral","src":"4050:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4039:2:53","nodeType":"YulIdentifier","src":"4039:2:53"},"nativeSrc":"4039:30:53","nodeType":"YulFunctionCall","src":"4039:30:53"},"nativeSrc":"4036:117:53","nodeType":"YulIf","src":"4036:117:53"},{"nativeSrc":"4162:29:53","nodeType":"YulAssignment","src":"4162:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4178:6:53","nodeType":"YulIdentifier","src":"4178:6:53"},{"kind":"number","nativeSrc":"4186:4:53","nodeType":"YulLiteral","src":"4186:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4174:3:53","nodeType":"YulIdentifier","src":"4174:3:53"},"nativeSrc":"4174:17:53","nodeType":"YulFunctionCall","src":"4174:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4162:8:53","nodeType":"YulIdentifier","src":"4162:8:53"}]},{"body":{"nativeSrc":"4245:83:53","nodeType":"YulBlock","src":"4245:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4247:77:53","nodeType":"YulIdentifier","src":"4247:77:53"},"nativeSrc":"4247:79:53","nodeType":"YulFunctionCall","src":"4247:79:53"},"nativeSrc":"4247:79:53","nodeType":"YulExpressionStatement","src":"4247:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4210:8:53","nodeType":"YulIdentifier","src":"4210:8:53"},{"arguments":[{"name":"length","nativeSrc":"4224:6:53","nodeType":"YulIdentifier","src":"4224:6:53"},{"kind":"number","nativeSrc":"4232:4:53","nodeType":"YulLiteral","src":"4232:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4220:3:53","nodeType":"YulIdentifier","src":"4220:3:53"},"nativeSrc":"4220:17:53","nodeType":"YulFunctionCall","src":"4220:17:53"}],"functionName":{"name":"add","nativeSrc":"4206:3:53","nodeType":"YulIdentifier","src":"4206:3:53"},"nativeSrc":"4206:32:53","nodeType":"YulFunctionCall","src":"4206:32:53"},{"name":"end","nativeSrc":"4240:3:53","nodeType":"YulIdentifier","src":"4240:3:53"}],"functionName":{"name":"gt","nativeSrc":"4203:2:53","nodeType":"YulIdentifier","src":"4203:2:53"},"nativeSrc":"4203:41:53","nodeType":"YulFunctionCall","src":"4203:41:53"},"nativeSrc":"4200:128:53","nodeType":"YulIf","src":"4200:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3769:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3823:6:53","nodeType":"YulTypedName","src":"3823:6:53","type":""},{"name":"end","nativeSrc":"3831:3:53","nodeType":"YulTypedName","src":"3831:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3839:8:53","nodeType":"YulTypedName","src":"3839:8:53","type":""},{"name":"length","nativeSrc":"3849:6:53","nodeType":"YulTypedName","src":"3849:6:53","type":""}],"src":"3769:565:53"},{"body":{"nativeSrc":"4490:778:53","nodeType":"YulBlock","src":"4490:778:53","statements":[{"body":{"nativeSrc":"4536:83:53","nodeType":"YulBlock","src":"4536:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4538:77:53","nodeType":"YulIdentifier","src":"4538:77:53"},"nativeSrc":"4538:79:53","nodeType":"YulFunctionCall","src":"4538:79:53"},"nativeSrc":"4538:79:53","nodeType":"YulExpressionStatement","src":"4538:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4511:7:53","nodeType":"YulIdentifier","src":"4511:7:53"},{"name":"headStart","nativeSrc":"4520:9:53","nodeType":"YulIdentifier","src":"4520:9:53"}],"functionName":{"name":"sub","nativeSrc":"4507:3:53","nodeType":"YulIdentifier","src":"4507:3:53"},"nativeSrc":"4507:23:53","nodeType":"YulFunctionCall","src":"4507:23:53"},{"kind":"number","nativeSrc":"4532:2:53","nodeType":"YulLiteral","src":"4532:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4503:3:53","nodeType":"YulIdentifier","src":"4503:3:53"},"nativeSrc":"4503:32:53","nodeType":"YulFunctionCall","src":"4503:32:53"},"nativeSrc":"4500:119:53","nodeType":"YulIf","src":"4500:119:53"},{"nativeSrc":"4629:312:53","nodeType":"YulBlock","src":"4629:312:53","statements":[{"nativeSrc":"4644:45:53","nodeType":"YulVariableDeclaration","src":"4644:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4675:9:53","nodeType":"YulIdentifier","src":"4675:9:53"},{"kind":"number","nativeSrc":"4686:1:53","nodeType":"YulLiteral","src":"4686:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4671:3:53","nodeType":"YulIdentifier","src":"4671:3:53"},"nativeSrc":"4671:17:53","nodeType":"YulFunctionCall","src":"4671:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4658:12:53","nodeType":"YulIdentifier","src":"4658:12:53"},"nativeSrc":"4658:31:53","nodeType":"YulFunctionCall","src":"4658:31:53"},"variables":[{"name":"offset","nativeSrc":"4648:6:53","nodeType":"YulTypedName","src":"4648:6:53","type":""}]},{"body":{"nativeSrc":"4736:83:53","nodeType":"YulBlock","src":"4736:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4738:77:53","nodeType":"YulIdentifier","src":"4738:77:53"},"nativeSrc":"4738:79:53","nodeType":"YulFunctionCall","src":"4738:79:53"},"nativeSrc":"4738:79:53","nodeType":"YulExpressionStatement","src":"4738:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4708:6:53","nodeType":"YulIdentifier","src":"4708:6:53"},{"kind":"number","nativeSrc":"4716:18:53","nodeType":"YulLiteral","src":"4716:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4705:2:53","nodeType":"YulIdentifier","src":"4705:2:53"},"nativeSrc":"4705:30:53","nodeType":"YulFunctionCall","src":"4705:30:53"},"nativeSrc":"4702:117:53","nodeType":"YulIf","src":"4702:117:53"},{"nativeSrc":"4833:98:53","nodeType":"YulAssignment","src":"4833:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4903:9:53","nodeType":"YulIdentifier","src":"4903:9:53"},{"name":"offset","nativeSrc":"4914:6:53","nodeType":"YulIdentifier","src":"4914:6:53"}],"functionName":{"name":"add","nativeSrc":"4899:3:53","nodeType":"YulIdentifier","src":"4899:3:53"},"nativeSrc":"4899:22:53","nodeType":"YulFunctionCall","src":"4899:22:53"},{"name":"dataEnd","nativeSrc":"4923:7:53","nodeType":"YulIdentifier","src":"4923:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"4851:47:53","nodeType":"YulIdentifier","src":"4851:47:53"},"nativeSrc":"4851:80:53","nodeType":"YulFunctionCall","src":"4851:80:53"},"variableNames":[{"name":"value0","nativeSrc":"4833:6:53","nodeType":"YulIdentifier","src":"4833:6:53"},{"name":"value1","nativeSrc":"4841:6:53","nodeType":"YulIdentifier","src":"4841:6:53"}]}]},{"nativeSrc":"4951:310:53","nodeType":"YulBlock","src":"4951:310:53","statements":[{"nativeSrc":"4966:46:53","nodeType":"YulVariableDeclaration","src":"4966:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4997:9:53","nodeType":"YulIdentifier","src":"4997:9:53"},{"kind":"number","nativeSrc":"5008:2:53","nodeType":"YulLiteral","src":"5008:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4993:3:53","nodeType":"YulIdentifier","src":"4993:3:53"},"nativeSrc":"4993:18:53","nodeType":"YulFunctionCall","src":"4993:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"4980:12:53","nodeType":"YulIdentifier","src":"4980:12:53"},"nativeSrc":"4980:32:53","nodeType":"YulFunctionCall","src":"4980:32:53"},"variables":[{"name":"offset","nativeSrc":"4970:6:53","nodeType":"YulTypedName","src":"4970:6:53","type":""}]},{"body":{"nativeSrc":"5059:83:53","nodeType":"YulBlock","src":"5059:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5061:77:53","nodeType":"YulIdentifier","src":"5061:77:53"},"nativeSrc":"5061:79:53","nodeType":"YulFunctionCall","src":"5061:79:53"},"nativeSrc":"5061:79:53","nodeType":"YulExpressionStatement","src":"5061:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5031:6:53","nodeType":"YulIdentifier","src":"5031:6:53"},{"kind":"number","nativeSrc":"5039:18:53","nodeType":"YulLiteral","src":"5039:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5028:2:53","nodeType":"YulIdentifier","src":"5028:2:53"},"nativeSrc":"5028:30:53","nodeType":"YulFunctionCall","src":"5028:30:53"},"nativeSrc":"5025:117:53","nodeType":"YulIf","src":"5025:117:53"},{"nativeSrc":"5156:95:53","nodeType":"YulAssignment","src":"5156:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5223:9:53","nodeType":"YulIdentifier","src":"5223:9:53"},{"name":"offset","nativeSrc":"5234:6:53","nodeType":"YulIdentifier","src":"5234:6:53"}],"functionName":{"name":"add","nativeSrc":"5219:3:53","nodeType":"YulIdentifier","src":"5219:3:53"},"nativeSrc":"5219:22:53","nodeType":"YulFunctionCall","src":"5219:22:53"},{"name":"dataEnd","nativeSrc":"5243:7:53","nodeType":"YulIdentifier","src":"5243:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5174:44:53","nodeType":"YulIdentifier","src":"5174:44:53"},"nativeSrc":"5174:77:53","nodeType":"YulFunctionCall","src":"5174:77:53"},"variableNames":[{"name":"value2","nativeSrc":"5156:6:53","nodeType":"YulIdentifier","src":"5156:6:53"},{"name":"value3","nativeSrc":"5164:6:53","nodeType":"YulIdentifier","src":"5164:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4340:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4436:9:53","nodeType":"YulTypedName","src":"4436:9:53","type":""},{"name":"dataEnd","nativeSrc":"4447:7:53","nodeType":"YulTypedName","src":"4447:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4459:6:53","nodeType":"YulTypedName","src":"4459:6:53","type":""},{"name":"value1","nativeSrc":"4467:6:53","nodeType":"YulTypedName","src":"4467:6:53","type":""},{"name":"value2","nativeSrc":"4475:6:53","nodeType":"YulTypedName","src":"4475:6:53","type":""},{"name":"value3","nativeSrc":"4483:6:53","nodeType":"YulTypedName","src":"4483:6:53","type":""}],"src":"4340:928:53"},{"body":{"nativeSrc":"5361:478:53","nodeType":"YulBlock","src":"5361:478:53","statements":[{"body":{"nativeSrc":"5410:83:53","nodeType":"YulBlock","src":"5410:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5412:77:53","nodeType":"YulIdentifier","src":"5412:77:53"},"nativeSrc":"5412:79:53","nodeType":"YulFunctionCall","src":"5412:79:53"},"nativeSrc":"5412:79:53","nodeType":"YulExpressionStatement","src":"5412:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5389:6:53","nodeType":"YulIdentifier","src":"5389:6:53"},{"kind":"number","nativeSrc":"5397:4:53","nodeType":"YulLiteral","src":"5397:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5385:3:53","nodeType":"YulIdentifier","src":"5385:3:53"},"nativeSrc":"5385:17:53","nodeType":"YulFunctionCall","src":"5385:17:53"},{"name":"end","nativeSrc":"5404:3:53","nodeType":"YulIdentifier","src":"5404:3:53"}],"functionName":{"name":"slt","nativeSrc":"5381:3:53","nodeType":"YulIdentifier","src":"5381:3:53"},"nativeSrc":"5381:27:53","nodeType":"YulFunctionCall","src":"5381:27:53"}],"functionName":{"name":"iszero","nativeSrc":"5374:6:53","nodeType":"YulIdentifier","src":"5374:6:53"},"nativeSrc":"5374:35:53","nodeType":"YulFunctionCall","src":"5374:35:53"},"nativeSrc":"5371:122:53","nodeType":"YulIf","src":"5371:122:53"},{"nativeSrc":"5502:30:53","nodeType":"YulAssignment","src":"5502:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"5525:6:53","nodeType":"YulIdentifier","src":"5525:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5512:12:53","nodeType":"YulIdentifier","src":"5512:12:53"},"nativeSrc":"5512:20:53","nodeType":"YulFunctionCall","src":"5512:20:53"},"variableNames":[{"name":"length","nativeSrc":"5502:6:53","nodeType":"YulIdentifier","src":"5502:6:53"}]},{"body":{"nativeSrc":"5575:83:53","nodeType":"YulBlock","src":"5575:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"5577:77:53","nodeType":"YulIdentifier","src":"5577:77:53"},"nativeSrc":"5577:79:53","nodeType":"YulFunctionCall","src":"5577:79:53"},"nativeSrc":"5577:79:53","nodeType":"YulExpressionStatement","src":"5577:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5547:6:53","nodeType":"YulIdentifier","src":"5547:6:53"},{"kind":"number","nativeSrc":"5555:18:53","nodeType":"YulLiteral","src":"5555:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5544:2:53","nodeType":"YulIdentifier","src":"5544:2:53"},"nativeSrc":"5544:30:53","nodeType":"YulFunctionCall","src":"5544:30:53"},"nativeSrc":"5541:117:53","nodeType":"YulIf","src":"5541:117:53"},{"nativeSrc":"5667:29:53","nodeType":"YulAssignment","src":"5667:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5683:6:53","nodeType":"YulIdentifier","src":"5683:6:53"},{"kind":"number","nativeSrc":"5691:4:53","nodeType":"YulLiteral","src":"5691:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5679:3:53","nodeType":"YulIdentifier","src":"5679:3:53"},"nativeSrc":"5679:17:53","nodeType":"YulFunctionCall","src":"5679:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"5667:8:53","nodeType":"YulIdentifier","src":"5667:8:53"}]},{"body":{"nativeSrc":"5750:83:53","nodeType":"YulBlock","src":"5750:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5752:77:53","nodeType":"YulIdentifier","src":"5752:77:53"},"nativeSrc":"5752:79:53","nodeType":"YulFunctionCall","src":"5752:79:53"},"nativeSrc":"5752:79:53","nodeType":"YulExpressionStatement","src":"5752:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"5715:8:53","nodeType":"YulIdentifier","src":"5715:8:53"},{"arguments":[{"name":"length","nativeSrc":"5729:6:53","nodeType":"YulIdentifier","src":"5729:6:53"},{"kind":"number","nativeSrc":"5737:4:53","nodeType":"YulLiteral","src":"5737:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"5725:3:53","nodeType":"YulIdentifier","src":"5725:3:53"},"nativeSrc":"5725:17:53","nodeType":"YulFunctionCall","src":"5725:17:53"}],"functionName":{"name":"add","nativeSrc":"5711:3:53","nodeType":"YulIdentifier","src":"5711:3:53"},"nativeSrc":"5711:32:53","nodeType":"YulFunctionCall","src":"5711:32:53"},{"name":"end","nativeSrc":"5745:3:53","nodeType":"YulIdentifier","src":"5745:3:53"}],"functionName":{"name":"gt","nativeSrc":"5708:2:53","nodeType":"YulIdentifier","src":"5708:2:53"},"nativeSrc":"5708:41:53","nodeType":"YulFunctionCall","src":"5708:41:53"},"nativeSrc":"5705:128:53","nodeType":"YulIf","src":"5705:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5287:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5328:6:53","nodeType":"YulTypedName","src":"5328:6:53","type":""},{"name":"end","nativeSrc":"5336:3:53","nodeType":"YulTypedName","src":"5336:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"5344:8:53","nodeType":"YulTypedName","src":"5344:8:53","type":""},{"name":"length","nativeSrc":"5354:6:53","nodeType":"YulTypedName","src":"5354:6:53","type":""}],"src":"5287:552:53"},{"body":{"nativeSrc":"5930:442:53","nodeType":"YulBlock","src":"5930:442:53","statements":[{"body":{"nativeSrc":"5976:83:53","nodeType":"YulBlock","src":"5976:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5978:77:53","nodeType":"YulIdentifier","src":"5978:77:53"},"nativeSrc":"5978:79:53","nodeType":"YulFunctionCall","src":"5978:79:53"},"nativeSrc":"5978:79:53","nodeType":"YulExpressionStatement","src":"5978:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5951:7:53","nodeType":"YulIdentifier","src":"5951:7:53"},{"name":"headStart","nativeSrc":"5960:9:53","nodeType":"YulIdentifier","src":"5960:9:53"}],"functionName":{"name":"sub","nativeSrc":"5947:3:53","nodeType":"YulIdentifier","src":"5947:3:53"},"nativeSrc":"5947:23:53","nodeType":"YulFunctionCall","src":"5947:23:53"},{"kind":"number","nativeSrc":"5972:2:53","nodeType":"YulLiteral","src":"5972:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5943:3:53","nodeType":"YulIdentifier","src":"5943:3:53"},"nativeSrc":"5943:32:53","nodeType":"YulFunctionCall","src":"5943:32:53"},"nativeSrc":"5940:119:53","nodeType":"YulIf","src":"5940:119:53"},{"nativeSrc":"6069:296:53","nodeType":"YulBlock","src":"6069:296:53","statements":[{"nativeSrc":"6084:45:53","nodeType":"YulVariableDeclaration","src":"6084:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6115:9:53","nodeType":"YulIdentifier","src":"6115:9:53"},{"kind":"number","nativeSrc":"6126:1:53","nodeType":"YulLiteral","src":"6126:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6111:3:53","nodeType":"YulIdentifier","src":"6111:3:53"},"nativeSrc":"6111:17:53","nodeType":"YulFunctionCall","src":"6111:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"6098:12:53","nodeType":"YulIdentifier","src":"6098:12:53"},"nativeSrc":"6098:31:53","nodeType":"YulFunctionCall","src":"6098:31:53"},"variables":[{"name":"offset","nativeSrc":"6088:6:53","nodeType":"YulTypedName","src":"6088:6:53","type":""}]},{"body":{"nativeSrc":"6176:83:53","nodeType":"YulBlock","src":"6176:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6178:77:53","nodeType":"YulIdentifier","src":"6178:77:53"},"nativeSrc":"6178:79:53","nodeType":"YulFunctionCall","src":"6178:79:53"},"nativeSrc":"6178:79:53","nodeType":"YulExpressionStatement","src":"6178:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6148:6:53","nodeType":"YulIdentifier","src":"6148:6:53"},{"kind":"number","nativeSrc":"6156:18:53","nodeType":"YulLiteral","src":"6156:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6145:2:53","nodeType":"YulIdentifier","src":"6145:2:53"},"nativeSrc":"6145:30:53","nodeType":"YulFunctionCall","src":"6145:30:53"},"nativeSrc":"6142:117:53","nodeType":"YulIf","src":"6142:117:53"},{"nativeSrc":"6273:82:53","nodeType":"YulAssignment","src":"6273:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6327:9:53","nodeType":"YulIdentifier","src":"6327:9:53"},{"name":"offset","nativeSrc":"6338:6:53","nodeType":"YulIdentifier","src":"6338:6:53"}],"functionName":{"name":"add","nativeSrc":"6323:3:53","nodeType":"YulIdentifier","src":"6323:3:53"},"nativeSrc":"6323:22:53","nodeType":"YulFunctionCall","src":"6323:22:53"},{"name":"dataEnd","nativeSrc":"6347:7:53","nodeType":"YulIdentifier","src":"6347:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6291:31:53","nodeType":"YulIdentifier","src":"6291:31:53"},"nativeSrc":"6291:64:53","nodeType":"YulFunctionCall","src":"6291:64:53"},"variableNames":[{"name":"value0","nativeSrc":"6273:6:53","nodeType":"YulIdentifier","src":"6273:6:53"},{"name":"value1","nativeSrc":"6281:6:53","nodeType":"YulIdentifier","src":"6281:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"5845:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5892:9:53","nodeType":"YulTypedName","src":"5892:9:53","type":""},{"name":"dataEnd","nativeSrc":"5903:7:53","nodeType":"YulTypedName","src":"5903:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5915:6:53","nodeType":"YulTypedName","src":"5915:6:53","type":""},{"name":"value1","nativeSrc":"5923:6:53","nodeType":"YulTypedName","src":"5923:6:53","type":""}],"src":"5845:527:53"},{"body":{"nativeSrc":"6494:478:53","nodeType":"YulBlock","src":"6494:478:53","statements":[{"body":{"nativeSrc":"6543:83:53","nodeType":"YulBlock","src":"6543:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6545:77:53","nodeType":"YulIdentifier","src":"6545:77:53"},"nativeSrc":"6545:79:53","nodeType":"YulFunctionCall","src":"6545:79:53"},"nativeSrc":"6545:79:53","nodeType":"YulExpressionStatement","src":"6545:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6522:6:53","nodeType":"YulIdentifier","src":"6522:6:53"},{"kind":"number","nativeSrc":"6530:4:53","nodeType":"YulLiteral","src":"6530:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6518:3:53","nodeType":"YulIdentifier","src":"6518:3:53"},"nativeSrc":"6518:17:53","nodeType":"YulFunctionCall","src":"6518:17:53"},{"name":"end","nativeSrc":"6537:3:53","nodeType":"YulIdentifier","src":"6537:3:53"}],"functionName":{"name":"slt","nativeSrc":"6514:3:53","nodeType":"YulIdentifier","src":"6514:3:53"},"nativeSrc":"6514:27:53","nodeType":"YulFunctionCall","src":"6514:27:53"}],"functionName":{"name":"iszero","nativeSrc":"6507:6:53","nodeType":"YulIdentifier","src":"6507:6:53"},"nativeSrc":"6507:35:53","nodeType":"YulFunctionCall","src":"6507:35:53"},"nativeSrc":"6504:122:53","nodeType":"YulIf","src":"6504:122:53"},{"nativeSrc":"6635:30:53","nodeType":"YulAssignment","src":"6635:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"6658:6:53","nodeType":"YulIdentifier","src":"6658:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6645:12:53","nodeType":"YulIdentifier","src":"6645:12:53"},"nativeSrc":"6645:20:53","nodeType":"YulFunctionCall","src":"6645:20:53"},"variableNames":[{"name":"length","nativeSrc":"6635:6:53","nodeType":"YulIdentifier","src":"6635:6:53"}]},{"body":{"nativeSrc":"6708:83:53","nodeType":"YulBlock","src":"6708:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6710:77:53","nodeType":"YulIdentifier","src":"6710:77:53"},"nativeSrc":"6710:79:53","nodeType":"YulFunctionCall","src":"6710:79:53"},"nativeSrc":"6710:79:53","nodeType":"YulExpressionStatement","src":"6710:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6680:6:53","nodeType":"YulIdentifier","src":"6680:6:53"},{"kind":"number","nativeSrc":"6688:18:53","nodeType":"YulLiteral","src":"6688:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6677:2:53","nodeType":"YulIdentifier","src":"6677:2:53"},"nativeSrc":"6677:30:53","nodeType":"YulFunctionCall","src":"6677:30:53"},"nativeSrc":"6674:117:53","nodeType":"YulIf","src":"6674:117:53"},{"nativeSrc":"6800:29:53","nodeType":"YulAssignment","src":"6800:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6816:6:53","nodeType":"YulIdentifier","src":"6816:6:53"},{"kind":"number","nativeSrc":"6824:4:53","nodeType":"YulLiteral","src":"6824:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6812:3:53","nodeType":"YulIdentifier","src":"6812:3:53"},"nativeSrc":"6812:17:53","nodeType":"YulFunctionCall","src":"6812:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"6800:8:53","nodeType":"YulIdentifier","src":"6800:8:53"}]},{"body":{"nativeSrc":"6883:83:53","nodeType":"YulBlock","src":"6883:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6885:77:53","nodeType":"YulIdentifier","src":"6885:77:53"},"nativeSrc":"6885:79:53","nodeType":"YulFunctionCall","src":"6885:79:53"},"nativeSrc":"6885:79:53","nodeType":"YulExpressionStatement","src":"6885:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6848:8:53","nodeType":"YulIdentifier","src":"6848:8:53"},{"arguments":[{"name":"length","nativeSrc":"6862:6:53","nodeType":"YulIdentifier","src":"6862:6:53"},{"kind":"number","nativeSrc":"6870:4:53","nodeType":"YulLiteral","src":"6870:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6858:3:53","nodeType":"YulIdentifier","src":"6858:3:53"},"nativeSrc":"6858:17:53","nodeType":"YulFunctionCall","src":"6858:17:53"}],"functionName":{"name":"add","nativeSrc":"6844:3:53","nodeType":"YulIdentifier","src":"6844:3:53"},"nativeSrc":"6844:32:53","nodeType":"YulFunctionCall","src":"6844:32:53"},{"name":"end","nativeSrc":"6878:3:53","nodeType":"YulIdentifier","src":"6878:3:53"}],"functionName":{"name":"gt","nativeSrc":"6841:2:53","nodeType":"YulIdentifier","src":"6841:2:53"},"nativeSrc":"6841:41:53","nodeType":"YulFunctionCall","src":"6841:41:53"},"nativeSrc":"6838:128:53","nodeType":"YulIf","src":"6838:128:53"}]},"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"6393:579:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6461:6:53","nodeType":"YulTypedName","src":"6461:6:53","type":""},{"name":"end","nativeSrc":"6469:3:53","nodeType":"YulTypedName","src":"6469:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6477:8:53","nodeType":"YulTypedName","src":"6477:8:53","type":""},{"name":"length","nativeSrc":"6487:6:53","nodeType":"YulTypedName","src":"6487:6:53","type":""}],"src":"6393:579:53"},{"body":{"nativeSrc":"7090:469:53","nodeType":"YulBlock","src":"7090:469:53","statements":[{"body":{"nativeSrc":"7136:83:53","nodeType":"YulBlock","src":"7136:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7138:77:53","nodeType":"YulIdentifier","src":"7138:77:53"},"nativeSrc":"7138:79:53","nodeType":"YulFunctionCall","src":"7138:79:53"},"nativeSrc":"7138:79:53","nodeType":"YulExpressionStatement","src":"7138:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7111:7:53","nodeType":"YulIdentifier","src":"7111:7:53"},{"name":"headStart","nativeSrc":"7120:9:53","nodeType":"YulIdentifier","src":"7120:9:53"}],"functionName":{"name":"sub","nativeSrc":"7107:3:53","nodeType":"YulIdentifier","src":"7107:3:53"},"nativeSrc":"7107:23:53","nodeType":"YulFunctionCall","src":"7107:23:53"},{"kind":"number","nativeSrc":"7132:2:53","nodeType":"YulLiteral","src":"7132:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7103:3:53","nodeType":"YulIdentifier","src":"7103:3:53"},"nativeSrc":"7103:32:53","nodeType":"YulFunctionCall","src":"7103:32:53"},"nativeSrc":"7100:119:53","nodeType":"YulIf","src":"7100:119:53"},{"nativeSrc":"7229:323:53","nodeType":"YulBlock","src":"7229:323:53","statements":[{"nativeSrc":"7244:45:53","nodeType":"YulVariableDeclaration","src":"7244:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7275:9:53","nodeType":"YulIdentifier","src":"7275:9:53"},{"kind":"number","nativeSrc":"7286:1:53","nodeType":"YulLiteral","src":"7286:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7271:3:53","nodeType":"YulIdentifier","src":"7271:3:53"},"nativeSrc":"7271:17:53","nodeType":"YulFunctionCall","src":"7271:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"7258:12:53","nodeType":"YulIdentifier","src":"7258:12:53"},"nativeSrc":"7258:31:53","nodeType":"YulFunctionCall","src":"7258:31:53"},"variables":[{"name":"offset","nativeSrc":"7248:6:53","nodeType":"YulTypedName","src":"7248:6:53","type":""}]},{"body":{"nativeSrc":"7336:83:53","nodeType":"YulBlock","src":"7336:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7338:77:53","nodeType":"YulIdentifier","src":"7338:77:53"},"nativeSrc":"7338:79:53","nodeType":"YulFunctionCall","src":"7338:79:53"},"nativeSrc":"7338:79:53","nodeType":"YulExpressionStatement","src":"7338:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7308:6:53","nodeType":"YulIdentifier","src":"7308:6:53"},{"kind":"number","nativeSrc":"7316:18:53","nodeType":"YulLiteral","src":"7316:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7305:2:53","nodeType":"YulIdentifier","src":"7305:2:53"},"nativeSrc":"7305:30:53","nodeType":"YulFunctionCall","src":"7305:30:53"},"nativeSrc":"7302:117:53","nodeType":"YulIf","src":"7302:117:53"},{"nativeSrc":"7433:109:53","nodeType":"YulAssignment","src":"7433:109:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7514:9:53","nodeType":"YulIdentifier","src":"7514:9:53"},{"name":"offset","nativeSrc":"7525:6:53","nodeType":"YulIdentifier","src":"7525:6:53"}],"functionName":{"name":"add","nativeSrc":"7510:3:53","nodeType":"YulIdentifier","src":"7510:3:53"},"nativeSrc":"7510:22:53","nodeType":"YulFunctionCall","src":"7510:22:53"},{"name":"dataEnd","nativeSrc":"7534:7:53","nodeType":"YulIdentifier","src":"7534:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7451:58:53","nodeType":"YulIdentifier","src":"7451:58:53"},"nativeSrc":"7451:91:53","nodeType":"YulFunctionCall","src":"7451:91:53"},"variableNames":[{"name":"value0","nativeSrc":"7433:6:53","nodeType":"YulIdentifier","src":"7433:6:53"},{"name":"value1","nativeSrc":"7441:6:53","nodeType":"YulIdentifier","src":"7441:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"6978:581:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7052:9:53","nodeType":"YulTypedName","src":"7052:9:53","type":""},{"name":"dataEnd","nativeSrc":"7063:7:53","nodeType":"YulTypedName","src":"7063:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7075:6:53","nodeType":"YulTypedName","src":"7075:6:53","type":""},{"name":"value1","nativeSrc":"7083:6:53","nodeType":"YulTypedName","src":"7083:6:53","type":""}],"src":"6978:581:53"},{"body":{"nativeSrc":"7608:79:53","nodeType":"YulBlock","src":"7608:79:53","statements":[{"body":{"nativeSrc":"7665:16:53","nodeType":"YulBlock","src":"7665:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7674:1:53","nodeType":"YulLiteral","src":"7674:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7677:1:53","nodeType":"YulLiteral","src":"7677:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7667:6:53","nodeType":"YulIdentifier","src":"7667:6:53"},"nativeSrc":"7667:12:53","nodeType":"YulFunctionCall","src":"7667:12:53"},"nativeSrc":"7667:12:53","nodeType":"YulExpressionStatement","src":"7667:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7631:5:53","nodeType":"YulIdentifier","src":"7631:5:53"},{"arguments":[{"name":"value","nativeSrc":"7656:5:53","nodeType":"YulIdentifier","src":"7656:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7638:17:53","nodeType":"YulIdentifier","src":"7638:17:53"},"nativeSrc":"7638:24:53","nodeType":"YulFunctionCall","src":"7638:24:53"}],"functionName":{"name":"eq","nativeSrc":"7628:2:53","nodeType":"YulIdentifier","src":"7628:2:53"},"nativeSrc":"7628:35:53","nodeType":"YulFunctionCall","src":"7628:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7621:6:53","nodeType":"YulIdentifier","src":"7621:6:53"},"nativeSrc":"7621:43:53","nodeType":"YulFunctionCall","src":"7621:43:53"},"nativeSrc":"7618:63:53","nodeType":"YulIf","src":"7618:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"7565:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7601:5:53","nodeType":"YulTypedName","src":"7601:5:53","type":""}],"src":"7565:122:53"},{"body":{"nativeSrc":"7745:87:53","nodeType":"YulBlock","src":"7745:87:53","statements":[{"nativeSrc":"7755:29:53","nodeType":"YulAssignment","src":"7755:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7777:6:53","nodeType":"YulIdentifier","src":"7777:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7764:12:53","nodeType":"YulIdentifier","src":"7764:12:53"},"nativeSrc":"7764:20:53","nodeType":"YulFunctionCall","src":"7764:20:53"},"variableNames":[{"name":"value","nativeSrc":"7755:5:53","nodeType":"YulIdentifier","src":"7755:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7820:5:53","nodeType":"YulIdentifier","src":"7820:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7793:26:53","nodeType":"YulIdentifier","src":"7793:26:53"},"nativeSrc":"7793:33:53","nodeType":"YulFunctionCall","src":"7793:33:53"},"nativeSrc":"7793:33:53","nodeType":"YulExpressionStatement","src":"7793:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"7693:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7723:6:53","nodeType":"YulTypedName","src":"7723:6:53","type":""},{"name":"end","nativeSrc":"7731:3:53","nodeType":"YulTypedName","src":"7731:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7739:5:53","nodeType":"YulTypedName","src":"7739:5:53","type":""}],"src":"7693:139:53"},{"body":{"nativeSrc":"7921:391:53","nodeType":"YulBlock","src":"7921:391:53","statements":[{"body":{"nativeSrc":"7967:83:53","nodeType":"YulBlock","src":"7967:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7969:77:53","nodeType":"YulIdentifier","src":"7969:77:53"},"nativeSrc":"7969:79:53","nodeType":"YulFunctionCall","src":"7969:79:53"},"nativeSrc":"7969:79:53","nodeType":"YulExpressionStatement","src":"7969:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7942:7:53","nodeType":"YulIdentifier","src":"7942:7:53"},{"name":"headStart","nativeSrc":"7951:9:53","nodeType":"YulIdentifier","src":"7951:9:53"}],"functionName":{"name":"sub","nativeSrc":"7938:3:53","nodeType":"YulIdentifier","src":"7938:3:53"},"nativeSrc":"7938:23:53","nodeType":"YulFunctionCall","src":"7938:23:53"},{"kind":"number","nativeSrc":"7963:2:53","nodeType":"YulLiteral","src":"7963:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7934:3:53","nodeType":"YulIdentifier","src":"7934:3:53"},"nativeSrc":"7934:32:53","nodeType":"YulFunctionCall","src":"7934:32:53"},"nativeSrc":"7931:119:53","nodeType":"YulIf","src":"7931:119:53"},{"nativeSrc":"8060:117:53","nodeType":"YulBlock","src":"8060:117:53","statements":[{"nativeSrc":"8075:15:53","nodeType":"YulVariableDeclaration","src":"8075:15:53","value":{"kind":"number","nativeSrc":"8089:1:53","nodeType":"YulLiteral","src":"8089:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8079:6:53","nodeType":"YulTypedName","src":"8079:6:53","type":""}]},{"nativeSrc":"8104:63:53","nodeType":"YulAssignment","src":"8104:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8139:9:53","nodeType":"YulIdentifier","src":"8139:9:53"},{"name":"offset","nativeSrc":"8150:6:53","nodeType":"YulIdentifier","src":"8150:6:53"}],"functionName":{"name":"add","nativeSrc":"8135:3:53","nodeType":"YulIdentifier","src":"8135:3:53"},"nativeSrc":"8135:22:53","nodeType":"YulFunctionCall","src":"8135:22:53"},{"name":"dataEnd","nativeSrc":"8159:7:53","nodeType":"YulIdentifier","src":"8159:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8114:20:53","nodeType":"YulIdentifier","src":"8114:20:53"},"nativeSrc":"8114:53:53","nodeType":"YulFunctionCall","src":"8114:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8104:6:53","nodeType":"YulIdentifier","src":"8104:6:53"}]}]},{"nativeSrc":"8187:118:53","nodeType":"YulBlock","src":"8187:118:53","statements":[{"nativeSrc":"8202:16:53","nodeType":"YulVariableDeclaration","src":"8202:16:53","value":{"kind":"number","nativeSrc":"8216:2:53","nodeType":"YulLiteral","src":"8216:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8206:6:53","nodeType":"YulTypedName","src":"8206:6:53","type":""}]},{"nativeSrc":"8232:63:53","nodeType":"YulAssignment","src":"8232:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8267:9:53","nodeType":"YulIdentifier","src":"8267:9:53"},{"name":"offset","nativeSrc":"8278:6:53","nodeType":"YulIdentifier","src":"8278:6:53"}],"functionName":{"name":"add","nativeSrc":"8263:3:53","nodeType":"YulIdentifier","src":"8263:3:53"},"nativeSrc":"8263:22:53","nodeType":"YulFunctionCall","src":"8263:22:53"},{"name":"dataEnd","nativeSrc":"8287:7:53","nodeType":"YulIdentifier","src":"8287:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8242:20:53","nodeType":"YulIdentifier","src":"8242:20:53"},"nativeSrc":"8242:53:53","nodeType":"YulFunctionCall","src":"8242:53:53"},"variableNames":[{"name":"value1","nativeSrc":"8232:6:53","nodeType":"YulIdentifier","src":"8232:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"7838:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7883:9:53","nodeType":"YulTypedName","src":"7883:9:53","type":""},{"name":"dataEnd","nativeSrc":"7894:7:53","nodeType":"YulTypedName","src":"7894:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7906:6:53","nodeType":"YulTypedName","src":"7906:6:53","type":""},{"name":"value1","nativeSrc":"7914:6:53","nodeType":"YulTypedName","src":"7914:6:53","type":""}],"src":"7838:474:53"},{"body":{"nativeSrc":"8383:53:53","nodeType":"YulBlock","src":"8383:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8400:3:53","nodeType":"YulIdentifier","src":"8400:3:53"},{"arguments":[{"name":"value","nativeSrc":"8423:5:53","nodeType":"YulIdentifier","src":"8423:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8405:17:53","nodeType":"YulIdentifier","src":"8405:17:53"},"nativeSrc":"8405:24:53","nodeType":"YulFunctionCall","src":"8405:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8393:6:53","nodeType":"YulIdentifier","src":"8393:6:53"},"nativeSrc":"8393:37:53","nodeType":"YulFunctionCall","src":"8393:37:53"},"nativeSrc":"8393:37:53","nodeType":"YulExpressionStatement","src":"8393:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8318:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8371:5:53","nodeType":"YulTypedName","src":"8371:5:53","type":""},{"name":"pos","nativeSrc":"8378:3:53","nodeType":"YulTypedName","src":"8378:3:53","type":""}],"src":"8318:118:53"},{"body":{"nativeSrc":"8540:124:53","nodeType":"YulBlock","src":"8540:124:53","statements":[{"nativeSrc":"8550:26:53","nodeType":"YulAssignment","src":"8550:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8562:9:53","nodeType":"YulIdentifier","src":"8562:9:53"},{"kind":"number","nativeSrc":"8573:2:53","nodeType":"YulLiteral","src":"8573:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8558:3:53","nodeType":"YulIdentifier","src":"8558:3:53"},"nativeSrc":"8558:18:53","nodeType":"YulFunctionCall","src":"8558:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8550:4:53","nodeType":"YulIdentifier","src":"8550:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8630:6:53","nodeType":"YulIdentifier","src":"8630:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8643:9:53","nodeType":"YulIdentifier","src":"8643:9:53"},{"kind":"number","nativeSrc":"8654:1:53","nodeType":"YulLiteral","src":"8654:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8639:3:53","nodeType":"YulIdentifier","src":"8639:3:53"},"nativeSrc":"8639:17:53","nodeType":"YulFunctionCall","src":"8639:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8586:43:53","nodeType":"YulIdentifier","src":"8586:43:53"},"nativeSrc":"8586:71:53","nodeType":"YulFunctionCall","src":"8586:71:53"},"nativeSrc":"8586:71:53","nodeType":"YulExpressionStatement","src":"8586:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8442:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8512:9:53","nodeType":"YulTypedName","src":"8512:9:53","type":""},{"name":"value0","nativeSrc":"8524:6:53","nodeType":"YulTypedName","src":"8524:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8535:4:53","nodeType":"YulTypedName","src":"8535:4:53","type":""}],"src":"8442:222:53"},{"body":{"nativeSrc":"8777:478:53","nodeType":"YulBlock","src":"8777:478:53","statements":[{"body":{"nativeSrc":"8826:83:53","nodeType":"YulBlock","src":"8826:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"8828:77:53","nodeType":"YulIdentifier","src":"8828:77:53"},"nativeSrc":"8828:79:53","nodeType":"YulFunctionCall","src":"8828:79:53"},"nativeSrc":"8828:79:53","nodeType":"YulExpressionStatement","src":"8828:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8805:6:53","nodeType":"YulIdentifier","src":"8805:6:53"},{"kind":"number","nativeSrc":"8813:4:53","nodeType":"YulLiteral","src":"8813:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"8801:3:53","nodeType":"YulIdentifier","src":"8801:3:53"},"nativeSrc":"8801:17:53","nodeType":"YulFunctionCall","src":"8801:17:53"},{"name":"end","nativeSrc":"8820:3:53","nodeType":"YulIdentifier","src":"8820:3:53"}],"functionName":{"name":"slt","nativeSrc":"8797:3:53","nodeType":"YulIdentifier","src":"8797:3:53"},"nativeSrc":"8797:27:53","nodeType":"YulFunctionCall","src":"8797:27:53"}],"functionName":{"name":"iszero","nativeSrc":"8790:6:53","nodeType":"YulIdentifier","src":"8790:6:53"},"nativeSrc":"8790:35:53","nodeType":"YulFunctionCall","src":"8790:35:53"},"nativeSrc":"8787:122:53","nodeType":"YulIf","src":"8787:122:53"},{"nativeSrc":"8918:30:53","nodeType":"YulAssignment","src":"8918:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"8941:6:53","nodeType":"YulIdentifier","src":"8941:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8928:12:53","nodeType":"YulIdentifier","src":"8928:12:53"},"nativeSrc":"8928:20:53","nodeType":"YulFunctionCall","src":"8928:20:53"},"variableNames":[{"name":"length","nativeSrc":"8918:6:53","nodeType":"YulIdentifier","src":"8918:6:53"}]},{"body":{"nativeSrc":"8991:83:53","nodeType":"YulBlock","src":"8991:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"8993:77:53","nodeType":"YulIdentifier","src":"8993:77:53"},"nativeSrc":"8993:79:53","nodeType":"YulFunctionCall","src":"8993:79:53"},"nativeSrc":"8993:79:53","nodeType":"YulExpressionStatement","src":"8993:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8963:6:53","nodeType":"YulIdentifier","src":"8963:6:53"},{"kind":"number","nativeSrc":"8971:18:53","nodeType":"YulLiteral","src":"8971:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8960:2:53","nodeType":"YulIdentifier","src":"8960:2:53"},"nativeSrc":"8960:30:53","nodeType":"YulFunctionCall","src":"8960:30:53"},"nativeSrc":"8957:117:53","nodeType":"YulIf","src":"8957:117:53"},{"nativeSrc":"9083:29:53","nodeType":"YulAssignment","src":"9083:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9099:6:53","nodeType":"YulIdentifier","src":"9099:6:53"},{"kind":"number","nativeSrc":"9107:4:53","nodeType":"YulLiteral","src":"9107:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9095:3:53","nodeType":"YulIdentifier","src":"9095:3:53"},"nativeSrc":"9095:17:53","nodeType":"YulFunctionCall","src":"9095:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"9083:8:53","nodeType":"YulIdentifier","src":"9083:8:53"}]},{"body":{"nativeSrc":"9166:83:53","nodeType":"YulBlock","src":"9166:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9168:77:53","nodeType":"YulIdentifier","src":"9168:77:53"},"nativeSrc":"9168:79:53","nodeType":"YulFunctionCall","src":"9168:79:53"},"nativeSrc":"9168:79:53","nodeType":"YulExpressionStatement","src":"9168:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"9131:8:53","nodeType":"YulIdentifier","src":"9131:8:53"},{"arguments":[{"name":"length","nativeSrc":"9145:6:53","nodeType":"YulIdentifier","src":"9145:6:53"},{"kind":"number","nativeSrc":"9153:4:53","nodeType":"YulLiteral","src":"9153:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9141:3:53","nodeType":"YulIdentifier","src":"9141:3:53"},"nativeSrc":"9141:17:53","nodeType":"YulFunctionCall","src":"9141:17:53"}],"functionName":{"name":"add","nativeSrc":"9127:3:53","nodeType":"YulIdentifier","src":"9127:3:53"},"nativeSrc":"9127:32:53","nodeType":"YulFunctionCall","src":"9127:32:53"},{"name":"end","nativeSrc":"9161:3:53","nodeType":"YulIdentifier","src":"9161:3:53"}],"functionName":{"name":"gt","nativeSrc":"9124:2:53","nodeType":"YulIdentifier","src":"9124:2:53"},"nativeSrc":"9124:41:53","nodeType":"YulFunctionCall","src":"9124:41:53"},"nativeSrc":"9121:128:53","nodeType":"YulIf","src":"9121:128:53"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"8687:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8744:6:53","nodeType":"YulTypedName","src":"8744:6:53","type":""},{"name":"end","nativeSrc":"8752:3:53","nodeType":"YulTypedName","src":"8752:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"8760:8:53","nodeType":"YulTypedName","src":"8760:8:53","type":""},{"name":"length","nativeSrc":"8770:6:53","nodeType":"YulTypedName","src":"8770:6:53","type":""}],"src":"8687:568:53"},{"body":{"nativeSrc":"9484:1346:53","nodeType":"YulBlock","src":"9484:1346:53","statements":[{"body":{"nativeSrc":"9531:83:53","nodeType":"YulBlock","src":"9531:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9533:77:53","nodeType":"YulIdentifier","src":"9533:77:53"},"nativeSrc":"9533:79:53","nodeType":"YulFunctionCall","src":"9533:79:53"},"nativeSrc":"9533:79:53","nodeType":"YulExpressionStatement","src":"9533:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9505:7:53","nodeType":"YulIdentifier","src":"9505:7:53"},{"name":"headStart","nativeSrc":"9514:9:53","nodeType":"YulIdentifier","src":"9514:9:53"}],"functionName":{"name":"sub","nativeSrc":"9501:3:53","nodeType":"YulIdentifier","src":"9501:3:53"},"nativeSrc":"9501:23:53","nodeType":"YulFunctionCall","src":"9501:23:53"},{"kind":"number","nativeSrc":"9526:3:53","nodeType":"YulLiteral","src":"9526:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"9497:3:53","nodeType":"YulIdentifier","src":"9497:3:53"},"nativeSrc":"9497:33:53","nodeType":"YulFunctionCall","src":"9497:33:53"},"nativeSrc":"9494:120:53","nodeType":"YulIf","src":"9494:120:53"},{"nativeSrc":"9624:117:53","nodeType":"YulBlock","src":"9624:117:53","statements":[{"nativeSrc":"9639:15:53","nodeType":"YulVariableDeclaration","src":"9639:15:53","value":{"kind":"number","nativeSrc":"9653:1:53","nodeType":"YulLiteral","src":"9653:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9643:6:53","nodeType":"YulTypedName","src":"9643:6:53","type":""}]},{"nativeSrc":"9668:63:53","nodeType":"YulAssignment","src":"9668:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9703:9:53","nodeType":"YulIdentifier","src":"9703:9:53"},{"name":"offset","nativeSrc":"9714:6:53","nodeType":"YulIdentifier","src":"9714:6:53"}],"functionName":{"name":"add","nativeSrc":"9699:3:53","nodeType":"YulIdentifier","src":"9699:3:53"},"nativeSrc":"9699:22:53","nodeType":"YulFunctionCall","src":"9699:22:53"},{"name":"dataEnd","nativeSrc":"9723:7:53","nodeType":"YulIdentifier","src":"9723:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9678:20:53","nodeType":"YulIdentifier","src":"9678:20:53"},"nativeSrc":"9678:53:53","nodeType":"YulFunctionCall","src":"9678:53:53"},"variableNames":[{"name":"value0","nativeSrc":"9668:6:53","nodeType":"YulIdentifier","src":"9668:6:53"}]}]},{"nativeSrc":"9751:118:53","nodeType":"YulBlock","src":"9751:118:53","statements":[{"nativeSrc":"9766:16:53","nodeType":"YulVariableDeclaration","src":"9766:16:53","value":{"kind":"number","nativeSrc":"9780:2:53","nodeType":"YulLiteral","src":"9780:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9770:6:53","nodeType":"YulTypedName","src":"9770:6:53","type":""}]},{"nativeSrc":"9796:63:53","nodeType":"YulAssignment","src":"9796:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9831:9:53","nodeType":"YulIdentifier","src":"9831:9:53"},{"name":"offset","nativeSrc":"9842:6:53","nodeType":"YulIdentifier","src":"9842:6:53"}],"functionName":{"name":"add","nativeSrc":"9827:3:53","nodeType":"YulIdentifier","src":"9827:3:53"},"nativeSrc":"9827:22:53","nodeType":"YulFunctionCall","src":"9827:22:53"},{"name":"dataEnd","nativeSrc":"9851:7:53","nodeType":"YulIdentifier","src":"9851:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9806:20:53","nodeType":"YulIdentifier","src":"9806:20:53"},"nativeSrc":"9806:53:53","nodeType":"YulFunctionCall","src":"9806:53:53"},"variableNames":[{"name":"value1","nativeSrc":"9796:6:53","nodeType":"YulIdentifier","src":"9796:6:53"}]}]},{"nativeSrc":"9879:313:53","nodeType":"YulBlock","src":"9879:313:53","statements":[{"nativeSrc":"9894:46:53","nodeType":"YulVariableDeclaration","src":"9894:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9925:9:53","nodeType":"YulIdentifier","src":"9925:9:53"},{"kind":"number","nativeSrc":"9936:2:53","nodeType":"YulLiteral","src":"9936:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9921:3:53","nodeType":"YulIdentifier","src":"9921:3:53"},"nativeSrc":"9921:18:53","nodeType":"YulFunctionCall","src":"9921:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9908:12:53","nodeType":"YulIdentifier","src":"9908:12:53"},"nativeSrc":"9908:32:53","nodeType":"YulFunctionCall","src":"9908:32:53"},"variables":[{"name":"offset","nativeSrc":"9898:6:53","nodeType":"YulTypedName","src":"9898:6:53","type":""}]},{"body":{"nativeSrc":"9987:83:53","nodeType":"YulBlock","src":"9987:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9989:77:53","nodeType":"YulIdentifier","src":"9989:77:53"},"nativeSrc":"9989:79:53","nodeType":"YulFunctionCall","src":"9989:79:53"},"nativeSrc":"9989:79:53","nodeType":"YulExpressionStatement","src":"9989:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9959:6:53","nodeType":"YulIdentifier","src":"9959:6:53"},{"kind":"number","nativeSrc":"9967:18:53","nodeType":"YulLiteral","src":"9967:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9956:2:53","nodeType":"YulIdentifier","src":"9956:2:53"},"nativeSrc":"9956:30:53","nodeType":"YulFunctionCall","src":"9956:30:53"},"nativeSrc":"9953:117:53","nodeType":"YulIf","src":"9953:117:53"},{"nativeSrc":"10084:98:53","nodeType":"YulAssignment","src":"10084:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10154:9:53","nodeType":"YulIdentifier","src":"10154:9:53"},{"name":"offset","nativeSrc":"10165:6:53","nodeType":"YulIdentifier","src":"10165:6:53"}],"functionName":{"name":"add","nativeSrc":"10150:3:53","nodeType":"YulIdentifier","src":"10150:3:53"},"nativeSrc":"10150:22:53","nodeType":"YulFunctionCall","src":"10150:22:53"},{"name":"dataEnd","nativeSrc":"10174:7:53","nodeType":"YulIdentifier","src":"10174:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"10102:47:53","nodeType":"YulIdentifier","src":"10102:47:53"},"nativeSrc":"10102:80:53","nodeType":"YulFunctionCall","src":"10102:80:53"},"variableNames":[{"name":"value2","nativeSrc":"10084:6:53","nodeType":"YulIdentifier","src":"10084:6:53"},{"name":"value3","nativeSrc":"10092:6:53","nodeType":"YulIdentifier","src":"10092:6:53"}]}]},{"nativeSrc":"10202:313:53","nodeType":"YulBlock","src":"10202:313:53","statements":[{"nativeSrc":"10217:46:53","nodeType":"YulVariableDeclaration","src":"10217:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10248:9:53","nodeType":"YulIdentifier","src":"10248:9:53"},{"kind":"number","nativeSrc":"10259:2:53","nodeType":"YulLiteral","src":"10259:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10244:3:53","nodeType":"YulIdentifier","src":"10244:3:53"},"nativeSrc":"10244:18:53","nodeType":"YulFunctionCall","src":"10244:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"10231:12:53","nodeType":"YulIdentifier","src":"10231:12:53"},"nativeSrc":"10231:32:53","nodeType":"YulFunctionCall","src":"10231:32:53"},"variables":[{"name":"offset","nativeSrc":"10221:6:53","nodeType":"YulTypedName","src":"10221:6:53","type":""}]},{"body":{"nativeSrc":"10310:83:53","nodeType":"YulBlock","src":"10310:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10312:77:53","nodeType":"YulIdentifier","src":"10312:77:53"},"nativeSrc":"10312:79:53","nodeType":"YulFunctionCall","src":"10312:79:53"},"nativeSrc":"10312:79:53","nodeType":"YulExpressionStatement","src":"10312:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10282:6:53","nodeType":"YulIdentifier","src":"10282:6:53"},{"kind":"number","nativeSrc":"10290:18:53","nodeType":"YulLiteral","src":"10290:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10279:2:53","nodeType":"YulIdentifier","src":"10279:2:53"},"nativeSrc":"10279:30:53","nodeType":"YulFunctionCall","src":"10279:30:53"},"nativeSrc":"10276:117:53","nodeType":"YulIf","src":"10276:117:53"},{"nativeSrc":"10407:98:53","nodeType":"YulAssignment","src":"10407:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10477:9:53","nodeType":"YulIdentifier","src":"10477:9:53"},{"name":"offset","nativeSrc":"10488:6:53","nodeType":"YulIdentifier","src":"10488:6:53"}],"functionName":{"name":"add","nativeSrc":"10473:3:53","nodeType":"YulIdentifier","src":"10473:3:53"},"nativeSrc":"10473:22:53","nodeType":"YulFunctionCall","src":"10473:22:53"},{"name":"dataEnd","nativeSrc":"10497:7:53","nodeType":"YulIdentifier","src":"10497:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"10425:47:53","nodeType":"YulIdentifier","src":"10425:47:53"},"nativeSrc":"10425:80:53","nodeType":"YulFunctionCall","src":"10425:80:53"},"variableNames":[{"name":"value4","nativeSrc":"10407:6:53","nodeType":"YulIdentifier","src":"10407:6:53"},{"name":"value5","nativeSrc":"10415:6:53","nodeType":"YulIdentifier","src":"10415:6:53"}]}]},{"nativeSrc":"10525:298:53","nodeType":"YulBlock","src":"10525:298:53","statements":[{"nativeSrc":"10540:47:53","nodeType":"YulVariableDeclaration","src":"10540:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10571:9:53","nodeType":"YulIdentifier","src":"10571:9:53"},{"kind":"number","nativeSrc":"10582:3:53","nodeType":"YulLiteral","src":"10582:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10567:3:53","nodeType":"YulIdentifier","src":"10567:3:53"},"nativeSrc":"10567:19:53","nodeType":"YulFunctionCall","src":"10567:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"10554:12:53","nodeType":"YulIdentifier","src":"10554:12:53"},"nativeSrc":"10554:33:53","nodeType":"YulFunctionCall","src":"10554:33:53"},"variables":[{"name":"offset","nativeSrc":"10544:6:53","nodeType":"YulTypedName","src":"10544:6:53","type":""}]},{"body":{"nativeSrc":"10634:83:53","nodeType":"YulBlock","src":"10634:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10636:77:53","nodeType":"YulIdentifier","src":"10636:77:53"},"nativeSrc":"10636:79:53","nodeType":"YulFunctionCall","src":"10636:79:53"},"nativeSrc":"10636:79:53","nodeType":"YulExpressionStatement","src":"10636:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10606:6:53","nodeType":"YulIdentifier","src":"10606:6:53"},{"kind":"number","nativeSrc":"10614:18:53","nodeType":"YulLiteral","src":"10614:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10603:2:53","nodeType":"YulIdentifier","src":"10603:2:53"},"nativeSrc":"10603:30:53","nodeType":"YulFunctionCall","src":"10603:30:53"},"nativeSrc":"10600:117:53","nodeType":"YulIf","src":"10600:117:53"},{"nativeSrc":"10731:82:53","nodeType":"YulAssignment","src":"10731:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10785:9:53","nodeType":"YulIdentifier","src":"10785:9:53"},{"name":"offset","nativeSrc":"10796:6:53","nodeType":"YulIdentifier","src":"10796:6:53"}],"functionName":{"name":"add","nativeSrc":"10781:3:53","nodeType":"YulIdentifier","src":"10781:3:53"},"nativeSrc":"10781:22:53","nodeType":"YulFunctionCall","src":"10781:22:53"},{"name":"dataEnd","nativeSrc":"10805:7:53","nodeType":"YulIdentifier","src":"10805:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"10749:31:53","nodeType":"YulIdentifier","src":"10749:31:53"},"nativeSrc":"10749:64:53","nodeType":"YulFunctionCall","src":"10749:64:53"},"variableNames":[{"name":"value6","nativeSrc":"10731:6:53","nodeType":"YulIdentifier","src":"10731:6:53"},{"name":"value7","nativeSrc":"10739:6:53","nodeType":"YulIdentifier","src":"10739:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"9261:1569:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9398:9:53","nodeType":"YulTypedName","src":"9398:9:53","type":""},{"name":"dataEnd","nativeSrc":"9409:7:53","nodeType":"YulTypedName","src":"9409:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9421:6:53","nodeType":"YulTypedName","src":"9421:6:53","type":""},{"name":"value1","nativeSrc":"9429:6:53","nodeType":"YulTypedName","src":"9429:6:53","type":""},{"name":"value2","nativeSrc":"9437:6:53","nodeType":"YulTypedName","src":"9437:6:53","type":""},{"name":"value3","nativeSrc":"9445:6:53","nodeType":"YulTypedName","src":"9445:6:53","type":""},{"name":"value4","nativeSrc":"9453:6:53","nodeType":"YulTypedName","src":"9453:6:53","type":""},{"name":"value5","nativeSrc":"9461:6:53","nodeType":"YulTypedName","src":"9461:6:53","type":""},{"name":"value6","nativeSrc":"9469:6:53","nodeType":"YulTypedName","src":"9469:6:53","type":""},{"name":"value7","nativeSrc":"9477:6:53","nodeType":"YulTypedName","src":"9477:6:53","type":""}],"src":"9261:1569:53"},{"body":{"nativeSrc":"10899:52:53","nodeType":"YulBlock","src":"10899:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10916:3:53","nodeType":"YulIdentifier","src":"10916:3:53"},{"arguments":[{"name":"value","nativeSrc":"10938:5:53","nodeType":"YulIdentifier","src":"10938:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"10921:16:53","nodeType":"YulIdentifier","src":"10921:16:53"},"nativeSrc":"10921:23:53","nodeType":"YulFunctionCall","src":"10921:23:53"}],"functionName":{"name":"mstore","nativeSrc":"10909:6:53","nodeType":"YulIdentifier","src":"10909:6:53"},"nativeSrc":"10909:36:53","nodeType":"YulFunctionCall","src":"10909:36:53"},"nativeSrc":"10909:36:53","nodeType":"YulExpressionStatement","src":"10909:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"10836:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10887:5:53","nodeType":"YulTypedName","src":"10887:5:53","type":""},{"name":"pos","nativeSrc":"10894:3:53","nodeType":"YulTypedName","src":"10894:3:53","type":""}],"src":"10836:115:53"},{"body":{"nativeSrc":"11053:122:53","nodeType":"YulBlock","src":"11053:122:53","statements":[{"nativeSrc":"11063:26:53","nodeType":"YulAssignment","src":"11063:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11075:9:53","nodeType":"YulIdentifier","src":"11075:9:53"},{"kind":"number","nativeSrc":"11086:2:53","nodeType":"YulLiteral","src":"11086:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11071:3:53","nodeType":"YulIdentifier","src":"11071:3:53"},"nativeSrc":"11071:18:53","nodeType":"YulFunctionCall","src":"11071:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11063:4:53","nodeType":"YulIdentifier","src":"11063:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11141:6:53","nodeType":"YulIdentifier","src":"11141:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"11154:9:53","nodeType":"YulIdentifier","src":"11154:9:53"},{"kind":"number","nativeSrc":"11165:1:53","nodeType":"YulLiteral","src":"11165:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11150:3:53","nodeType":"YulIdentifier","src":"11150:3:53"},"nativeSrc":"11150:17:53","nodeType":"YulFunctionCall","src":"11150:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"11099:41:53","nodeType":"YulIdentifier","src":"11099:41:53"},"nativeSrc":"11099:69:53","nodeType":"YulFunctionCall","src":"11099:69:53"},"nativeSrc":"11099:69:53","nodeType":"YulExpressionStatement","src":"11099:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"10957:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11025:9:53","nodeType":"YulTypedName","src":"11025:9:53","type":""},{"name":"value0","nativeSrc":"11037:6:53","nodeType":"YulTypedName","src":"11037:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11048:4:53","nodeType":"YulTypedName","src":"11048:4:53","type":""}],"src":"10957:218:53"},{"body":{"nativeSrc":"11334:956:53","nodeType":"YulBlock","src":"11334:956:53","statements":[{"body":{"nativeSrc":"11381:83:53","nodeType":"YulBlock","src":"11381:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11383:77:53","nodeType":"YulIdentifier","src":"11383:77:53"},"nativeSrc":"11383:79:53","nodeType":"YulFunctionCall","src":"11383:79:53"},"nativeSrc":"11383:79:53","nodeType":"YulExpressionStatement","src":"11383:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11355:7:53","nodeType":"YulIdentifier","src":"11355:7:53"},{"name":"headStart","nativeSrc":"11364:9:53","nodeType":"YulIdentifier","src":"11364:9:53"}],"functionName":{"name":"sub","nativeSrc":"11351:3:53","nodeType":"YulIdentifier","src":"11351:3:53"},"nativeSrc":"11351:23:53","nodeType":"YulFunctionCall","src":"11351:23:53"},{"kind":"number","nativeSrc":"11376:3:53","nodeType":"YulLiteral","src":"11376:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"11347:3:53","nodeType":"YulIdentifier","src":"11347:3:53"},"nativeSrc":"11347:33:53","nodeType":"YulFunctionCall","src":"11347:33:53"},"nativeSrc":"11344:120:53","nodeType":"YulIf","src":"11344:120:53"},{"nativeSrc":"11474:117:53","nodeType":"YulBlock","src":"11474:117:53","statements":[{"nativeSrc":"11489:15:53","nodeType":"YulVariableDeclaration","src":"11489:15:53","value":{"kind":"number","nativeSrc":"11503:1:53","nodeType":"YulLiteral","src":"11503:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11493:6:53","nodeType":"YulTypedName","src":"11493:6:53","type":""}]},{"nativeSrc":"11518:63:53","nodeType":"YulAssignment","src":"11518:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11553:9:53","nodeType":"YulIdentifier","src":"11553:9:53"},{"name":"offset","nativeSrc":"11564:6:53","nodeType":"YulIdentifier","src":"11564:6:53"}],"functionName":{"name":"add","nativeSrc":"11549:3:53","nodeType":"YulIdentifier","src":"11549:3:53"},"nativeSrc":"11549:22:53","nodeType":"YulFunctionCall","src":"11549:22:53"},{"name":"dataEnd","nativeSrc":"11573:7:53","nodeType":"YulIdentifier","src":"11573:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11528:20:53","nodeType":"YulIdentifier","src":"11528:20:53"},"nativeSrc":"11528:53:53","nodeType":"YulFunctionCall","src":"11528:53:53"},"variableNames":[{"name":"value0","nativeSrc":"11518:6:53","nodeType":"YulIdentifier","src":"11518:6:53"}]}]},{"nativeSrc":"11601:118:53","nodeType":"YulBlock","src":"11601:118:53","statements":[{"nativeSrc":"11616:16:53","nodeType":"YulVariableDeclaration","src":"11616:16:53","value":{"kind":"number","nativeSrc":"11630:2:53","nodeType":"YulLiteral","src":"11630:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11620:6:53","nodeType":"YulTypedName","src":"11620:6:53","type":""}]},{"nativeSrc":"11646:63:53","nodeType":"YulAssignment","src":"11646:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11681:9:53","nodeType":"YulIdentifier","src":"11681:9:53"},{"name":"offset","nativeSrc":"11692:6:53","nodeType":"YulIdentifier","src":"11692:6:53"}],"functionName":{"name":"add","nativeSrc":"11677:3:53","nodeType":"YulIdentifier","src":"11677:3:53"},"nativeSrc":"11677:22:53","nodeType":"YulFunctionCall","src":"11677:22:53"},{"name":"dataEnd","nativeSrc":"11701:7:53","nodeType":"YulIdentifier","src":"11701:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11656:20:53","nodeType":"YulIdentifier","src":"11656:20:53"},"nativeSrc":"11656:53:53","nodeType":"YulFunctionCall","src":"11656:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11646:6:53","nodeType":"YulIdentifier","src":"11646:6:53"}]}]},{"nativeSrc":"11729:118:53","nodeType":"YulBlock","src":"11729:118:53","statements":[{"nativeSrc":"11744:16:53","nodeType":"YulVariableDeclaration","src":"11744:16:53","value":{"kind":"number","nativeSrc":"11758:2:53","nodeType":"YulLiteral","src":"11758:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11748:6:53","nodeType":"YulTypedName","src":"11748:6:53","type":""}]},{"nativeSrc":"11774:63:53","nodeType":"YulAssignment","src":"11774:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11809:9:53","nodeType":"YulIdentifier","src":"11809:9:53"},{"name":"offset","nativeSrc":"11820:6:53","nodeType":"YulIdentifier","src":"11820:6:53"}],"functionName":{"name":"add","nativeSrc":"11805:3:53","nodeType":"YulIdentifier","src":"11805:3:53"},"nativeSrc":"11805:22:53","nodeType":"YulFunctionCall","src":"11805:22:53"},{"name":"dataEnd","nativeSrc":"11829:7:53","nodeType":"YulIdentifier","src":"11829:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11784:20:53","nodeType":"YulIdentifier","src":"11784:20:53"},"nativeSrc":"11784:53:53","nodeType":"YulFunctionCall","src":"11784:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11774:6:53","nodeType":"YulIdentifier","src":"11774:6:53"}]}]},{"nativeSrc":"11857:118:53","nodeType":"YulBlock","src":"11857:118:53","statements":[{"nativeSrc":"11872:16:53","nodeType":"YulVariableDeclaration","src":"11872:16:53","value":{"kind":"number","nativeSrc":"11886:2:53","nodeType":"YulLiteral","src":"11886:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11876:6:53","nodeType":"YulTypedName","src":"11876:6:53","type":""}]},{"nativeSrc":"11902:63:53","nodeType":"YulAssignment","src":"11902:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11937:9:53","nodeType":"YulIdentifier","src":"11937:9:53"},{"name":"offset","nativeSrc":"11948:6:53","nodeType":"YulIdentifier","src":"11948:6:53"}],"functionName":{"name":"add","nativeSrc":"11933:3:53","nodeType":"YulIdentifier","src":"11933:3:53"},"nativeSrc":"11933:22:53","nodeType":"YulFunctionCall","src":"11933:22:53"},{"name":"dataEnd","nativeSrc":"11957:7:53","nodeType":"YulIdentifier","src":"11957:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11912:20:53","nodeType":"YulIdentifier","src":"11912:20:53"},"nativeSrc":"11912:53:53","nodeType":"YulFunctionCall","src":"11912:53:53"},"variableNames":[{"name":"value3","nativeSrc":"11902:6:53","nodeType":"YulIdentifier","src":"11902:6:53"}]}]},{"nativeSrc":"11985:298:53","nodeType":"YulBlock","src":"11985:298:53","statements":[{"nativeSrc":"12000:47:53","nodeType":"YulVariableDeclaration","src":"12000:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12031:9:53","nodeType":"YulIdentifier","src":"12031:9:53"},{"kind":"number","nativeSrc":"12042:3:53","nodeType":"YulLiteral","src":"12042:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12027:3:53","nodeType":"YulIdentifier","src":"12027:3:53"},"nativeSrc":"12027:19:53","nodeType":"YulFunctionCall","src":"12027:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"12014:12:53","nodeType":"YulIdentifier","src":"12014:12:53"},"nativeSrc":"12014:33:53","nodeType":"YulFunctionCall","src":"12014:33:53"},"variables":[{"name":"offset","nativeSrc":"12004:6:53","nodeType":"YulTypedName","src":"12004:6:53","type":""}]},{"body":{"nativeSrc":"12094:83:53","nodeType":"YulBlock","src":"12094:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12096:77:53","nodeType":"YulIdentifier","src":"12096:77:53"},"nativeSrc":"12096:79:53","nodeType":"YulFunctionCall","src":"12096:79:53"},"nativeSrc":"12096:79:53","nodeType":"YulExpressionStatement","src":"12096:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12066:6:53","nodeType":"YulIdentifier","src":"12066:6:53"},{"kind":"number","nativeSrc":"12074:18:53","nodeType":"YulLiteral","src":"12074:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12063:2:53","nodeType":"YulIdentifier","src":"12063:2:53"},"nativeSrc":"12063:30:53","nodeType":"YulFunctionCall","src":"12063:30:53"},"nativeSrc":"12060:117:53","nodeType":"YulIf","src":"12060:117:53"},{"nativeSrc":"12191:82:53","nodeType":"YulAssignment","src":"12191:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12245:9:53","nodeType":"YulIdentifier","src":"12245:9:53"},{"name":"offset","nativeSrc":"12256:6:53","nodeType":"YulIdentifier","src":"12256:6:53"}],"functionName":{"name":"add","nativeSrc":"12241:3:53","nodeType":"YulIdentifier","src":"12241:3:53"},"nativeSrc":"12241:22:53","nodeType":"YulFunctionCall","src":"12241:22:53"},{"name":"dataEnd","nativeSrc":"12265:7:53","nodeType":"YulIdentifier","src":"12265:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"12209:31:53","nodeType":"YulIdentifier","src":"12209:31:53"},"nativeSrc":"12209:64:53","nodeType":"YulFunctionCall","src":"12209:64:53"},"variableNames":[{"name":"value4","nativeSrc":"12191:6:53","nodeType":"YulIdentifier","src":"12191:6:53"},{"name":"value5","nativeSrc":"12199:6:53","nodeType":"YulIdentifier","src":"12199:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr","nativeSrc":"11181:1109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11264:9:53","nodeType":"YulTypedName","src":"11264:9:53","type":""},{"name":"dataEnd","nativeSrc":"11275:7:53","nodeType":"YulTypedName","src":"11275:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11287:6:53","nodeType":"YulTypedName","src":"11287:6:53","type":""},{"name":"value1","nativeSrc":"11295:6:53","nodeType":"YulTypedName","src":"11295:6:53","type":""},{"name":"value2","nativeSrc":"11303:6:53","nodeType":"YulTypedName","src":"11303:6:53","type":""},{"name":"value3","nativeSrc":"11311:6:53","nodeType":"YulTypedName","src":"11311:6:53","type":""},{"name":"value4","nativeSrc":"11319:6:53","nodeType":"YulTypedName","src":"11319:6:53","type":""},{"name":"value5","nativeSrc":"11327:6:53","nodeType":"YulTypedName","src":"11327:6:53","type":""}],"src":"11181:1109:53"},{"body":{"nativeSrc":"12324:152:53","nodeType":"YulBlock","src":"12324:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12341:1:53","nodeType":"YulLiteral","src":"12341:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12344:77:53","nodeType":"YulLiteral","src":"12344:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12334:6:53","nodeType":"YulIdentifier","src":"12334:6:53"},"nativeSrc":"12334:88:53","nodeType":"YulFunctionCall","src":"12334:88:53"},"nativeSrc":"12334:88:53","nodeType":"YulExpressionStatement","src":"12334:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12438:1:53","nodeType":"YulLiteral","src":"12438:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"12441:4:53","nodeType":"YulLiteral","src":"12441:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"12431:6:53","nodeType":"YulIdentifier","src":"12431:6:53"},"nativeSrc":"12431:15:53","nodeType":"YulFunctionCall","src":"12431:15:53"},"nativeSrc":"12431:15:53","nodeType":"YulExpressionStatement","src":"12431:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12462:1:53","nodeType":"YulLiteral","src":"12462:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12465:4:53","nodeType":"YulLiteral","src":"12465:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12455:6:53","nodeType":"YulIdentifier","src":"12455:6:53"},"nativeSrc":"12455:15:53","nodeType":"YulFunctionCall","src":"12455:15:53"},"nativeSrc":"12455:15:53","nodeType":"YulExpressionStatement","src":"12455:15:53"}]},"name":"panic_error_0x32","nativeSrc":"12296:180:53","nodeType":"YulFunctionDefinition","src":"12296:180:53"},{"body":{"nativeSrc":"12522:76:53","nodeType":"YulBlock","src":"12522:76:53","statements":[{"body":{"nativeSrc":"12576:16:53","nodeType":"YulBlock","src":"12576:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12585:1:53","nodeType":"YulLiteral","src":"12585:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12588:1:53","nodeType":"YulLiteral","src":"12588:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12578:6:53","nodeType":"YulIdentifier","src":"12578:6:53"},"nativeSrc":"12578:12:53","nodeType":"YulFunctionCall","src":"12578:12:53"},"nativeSrc":"12578:12:53","nodeType":"YulExpressionStatement","src":"12578:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12545:5:53","nodeType":"YulIdentifier","src":"12545:5:53"},{"arguments":[{"name":"value","nativeSrc":"12567:5:53","nodeType":"YulIdentifier","src":"12567:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12552:14:53","nodeType":"YulIdentifier","src":"12552:14:53"},"nativeSrc":"12552:21:53","nodeType":"YulFunctionCall","src":"12552:21:53"}],"functionName":{"name":"eq","nativeSrc":"12542:2:53","nodeType":"YulIdentifier","src":"12542:2:53"},"nativeSrc":"12542:32:53","nodeType":"YulFunctionCall","src":"12542:32:53"}],"functionName":{"name":"iszero","nativeSrc":"12535:6:53","nodeType":"YulIdentifier","src":"12535:6:53"},"nativeSrc":"12535:40:53","nodeType":"YulFunctionCall","src":"12535:40:53"},"nativeSrc":"12532:60:53","nodeType":"YulIf","src":"12532:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"12482:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12515:5:53","nodeType":"YulTypedName","src":"12515:5:53","type":""}],"src":"12482:116:53"},{"body":{"nativeSrc":"12653:84:53","nodeType":"YulBlock","src":"12653:84:53","statements":[{"nativeSrc":"12663:29:53","nodeType":"YulAssignment","src":"12663:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12685:6:53","nodeType":"YulIdentifier","src":"12685:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12672:12:53","nodeType":"YulIdentifier","src":"12672:12:53"},"nativeSrc":"12672:20:53","nodeType":"YulFunctionCall","src":"12672:20:53"},"variableNames":[{"name":"value","nativeSrc":"12663:5:53","nodeType":"YulIdentifier","src":"12663:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12725:5:53","nodeType":"YulIdentifier","src":"12725:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12701:23:53","nodeType":"YulIdentifier","src":"12701:23:53"},"nativeSrc":"12701:30:53","nodeType":"YulFunctionCall","src":"12701:30:53"},"nativeSrc":"12701:30:53","nodeType":"YulExpressionStatement","src":"12701:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"12604:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12631:6:53","nodeType":"YulTypedName","src":"12631:6:53","type":""},{"name":"end","nativeSrc":"12639:3:53","nodeType":"YulTypedName","src":"12639:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12647:5:53","nodeType":"YulTypedName","src":"12647:5:53","type":""}],"src":"12604:133:53"},{"body":{"nativeSrc":"12806:260:53","nodeType":"YulBlock","src":"12806:260:53","statements":[{"body":{"nativeSrc":"12852:83:53","nodeType":"YulBlock","src":"12852:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12854:77:53","nodeType":"YulIdentifier","src":"12854:77:53"},"nativeSrc":"12854:79:53","nodeType":"YulFunctionCall","src":"12854:79:53"},"nativeSrc":"12854:79:53","nodeType":"YulExpressionStatement","src":"12854:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12827:7:53","nodeType":"YulIdentifier","src":"12827:7:53"},{"name":"headStart","nativeSrc":"12836:9:53","nodeType":"YulIdentifier","src":"12836:9:53"}],"functionName":{"name":"sub","nativeSrc":"12823:3:53","nodeType":"YulIdentifier","src":"12823:3:53"},"nativeSrc":"12823:23:53","nodeType":"YulFunctionCall","src":"12823:23:53"},{"kind":"number","nativeSrc":"12848:2:53","nodeType":"YulLiteral","src":"12848:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12819:3:53","nodeType":"YulIdentifier","src":"12819:3:53"},"nativeSrc":"12819:32:53","nodeType":"YulFunctionCall","src":"12819:32:53"},"nativeSrc":"12816:119:53","nodeType":"YulIf","src":"12816:119:53"},{"nativeSrc":"12945:114:53","nodeType":"YulBlock","src":"12945:114:53","statements":[{"nativeSrc":"12960:15:53","nodeType":"YulVariableDeclaration","src":"12960:15:53","value":{"kind":"number","nativeSrc":"12974:1:53","nodeType":"YulLiteral","src":"12974:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12964:6:53","nodeType":"YulTypedName","src":"12964:6:53","type":""}]},{"nativeSrc":"12989:60:53","nodeType":"YulAssignment","src":"12989:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13021:9:53","nodeType":"YulIdentifier","src":"13021:9:53"},{"name":"offset","nativeSrc":"13032:6:53","nodeType":"YulIdentifier","src":"13032:6:53"}],"functionName":{"name":"add","nativeSrc":"13017:3:53","nodeType":"YulIdentifier","src":"13017:3:53"},"nativeSrc":"13017:22:53","nodeType":"YulFunctionCall","src":"13017:22:53"},{"name":"dataEnd","nativeSrc":"13041:7:53","nodeType":"YulIdentifier","src":"13041:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"12999:17:53","nodeType":"YulIdentifier","src":"12999:17:53"},"nativeSrc":"12999:50:53","nodeType":"YulFunctionCall","src":"12999:50:53"},"variableNames":[{"name":"value0","nativeSrc":"12989:6:53","nodeType":"YulIdentifier","src":"12989:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"12743:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12776:9:53","nodeType":"YulTypedName","src":"12776:9:53","type":""},{"name":"dataEnd","nativeSrc":"12787:7:53","nodeType":"YulTypedName","src":"12787:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12799:6:53","nodeType":"YulTypedName","src":"12799:6:53","type":""}],"src":"12743:323:53"},{"body":{"nativeSrc":"13161:28:53","nodeType":"YulBlock","src":"13161:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13178:1:53","nodeType":"YulLiteral","src":"13178:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13181:1:53","nodeType":"YulLiteral","src":"13181:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13171:6:53","nodeType":"YulIdentifier","src":"13171:6:53"},"nativeSrc":"13171:12:53","nodeType":"YulFunctionCall","src":"13171:12:53"},"nativeSrc":"13171:12:53","nodeType":"YulExpressionStatement","src":"13171:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"13072:117:53","nodeType":"YulFunctionDefinition","src":"13072:117:53"},{"body":{"nativeSrc":"13243:54:53","nodeType":"YulBlock","src":"13243:54:53","statements":[{"nativeSrc":"13253:38:53","nodeType":"YulAssignment","src":"13253:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13271:5:53","nodeType":"YulIdentifier","src":"13271:5:53"},{"kind":"number","nativeSrc":"13278:2:53","nodeType":"YulLiteral","src":"13278:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13267:3:53","nodeType":"YulIdentifier","src":"13267:3:53"},"nativeSrc":"13267:14:53","nodeType":"YulFunctionCall","src":"13267:14:53"},{"arguments":[{"kind":"number","nativeSrc":"13287:2:53","nodeType":"YulLiteral","src":"13287:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13283:3:53","nodeType":"YulIdentifier","src":"13283:3:53"},"nativeSrc":"13283:7:53","nodeType":"YulFunctionCall","src":"13283:7:53"}],"functionName":{"name":"and","nativeSrc":"13263:3:53","nodeType":"YulIdentifier","src":"13263:3:53"},"nativeSrc":"13263:28:53","nodeType":"YulFunctionCall","src":"13263:28:53"},"variableNames":[{"name":"result","nativeSrc":"13253:6:53","nodeType":"YulIdentifier","src":"13253:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"13195:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13226:5:53","nodeType":"YulTypedName","src":"13226:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"13236:6:53","nodeType":"YulTypedName","src":"13236:6:53","type":""}],"src":"13195:102:53"},{"body":{"nativeSrc":"13331:152:53","nodeType":"YulBlock","src":"13331:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13348:1:53","nodeType":"YulLiteral","src":"13348:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13351:77:53","nodeType":"YulLiteral","src":"13351:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"13341:6:53","nodeType":"YulIdentifier","src":"13341:6:53"},"nativeSrc":"13341:88:53","nodeType":"YulFunctionCall","src":"13341:88:53"},"nativeSrc":"13341:88:53","nodeType":"YulExpressionStatement","src":"13341:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13445:1:53","nodeType":"YulLiteral","src":"13445:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"13448:4:53","nodeType":"YulLiteral","src":"13448:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"13438:6:53","nodeType":"YulIdentifier","src":"13438:6:53"},"nativeSrc":"13438:15:53","nodeType":"YulFunctionCall","src":"13438:15:53"},"nativeSrc":"13438:15:53","nodeType":"YulExpressionStatement","src":"13438:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13469:1:53","nodeType":"YulLiteral","src":"13469:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13472:4:53","nodeType":"YulLiteral","src":"13472:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13462:6:53","nodeType":"YulIdentifier","src":"13462:6:53"},"nativeSrc":"13462:15:53","nodeType":"YulFunctionCall","src":"13462:15:53"},"nativeSrc":"13462:15:53","nodeType":"YulExpressionStatement","src":"13462:15:53"}]},"name":"panic_error_0x41","nativeSrc":"13303:180:53","nodeType":"YulFunctionDefinition","src":"13303:180:53"},{"body":{"nativeSrc":"13532:238:53","nodeType":"YulBlock","src":"13532:238:53","statements":[{"nativeSrc":"13542:58:53","nodeType":"YulVariableDeclaration","src":"13542:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"13564:6:53","nodeType":"YulIdentifier","src":"13564:6:53"},{"arguments":[{"name":"size","nativeSrc":"13594:4:53","nodeType":"YulIdentifier","src":"13594:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13572:21:53","nodeType":"YulIdentifier","src":"13572:21:53"},"nativeSrc":"13572:27:53","nodeType":"YulFunctionCall","src":"13572:27:53"}],"functionName":{"name":"add","nativeSrc":"13560:3:53","nodeType":"YulIdentifier","src":"13560:3:53"},"nativeSrc":"13560:40:53","nodeType":"YulFunctionCall","src":"13560:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"13546:10:53","nodeType":"YulTypedName","src":"13546:10:53","type":""}]},{"body":{"nativeSrc":"13711:22:53","nodeType":"YulBlock","src":"13711:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"13713:16:53","nodeType":"YulIdentifier","src":"13713:16:53"},"nativeSrc":"13713:18:53","nodeType":"YulFunctionCall","src":"13713:18:53"},"nativeSrc":"13713:18:53","nodeType":"YulExpressionStatement","src":"13713:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"13654:10:53","nodeType":"YulIdentifier","src":"13654:10:53"},{"kind":"number","nativeSrc":"13666:18:53","nodeType":"YulLiteral","src":"13666:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13651:2:53","nodeType":"YulIdentifier","src":"13651:2:53"},"nativeSrc":"13651:34:53","nodeType":"YulFunctionCall","src":"13651:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"13690:10:53","nodeType":"YulIdentifier","src":"13690:10:53"},{"name":"memPtr","nativeSrc":"13702:6:53","nodeType":"YulIdentifier","src":"13702:6:53"}],"functionName":{"name":"lt","nativeSrc":"13687:2:53","nodeType":"YulIdentifier","src":"13687:2:53"},"nativeSrc":"13687:22:53","nodeType":"YulFunctionCall","src":"13687:22:53"}],"functionName":{"name":"or","nativeSrc":"13648:2:53","nodeType":"YulIdentifier","src":"13648:2:53"},"nativeSrc":"13648:62:53","nodeType":"YulFunctionCall","src":"13648:62:53"},"nativeSrc":"13645:88:53","nodeType":"YulIf","src":"13645:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13749:2:53","nodeType":"YulLiteral","src":"13749:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"13753:10:53","nodeType":"YulIdentifier","src":"13753:10:53"}],"functionName":{"name":"mstore","nativeSrc":"13742:6:53","nodeType":"YulIdentifier","src":"13742:6:53"},"nativeSrc":"13742:22:53","nodeType":"YulFunctionCall","src":"13742:22:53"},"nativeSrc":"13742:22:53","nodeType":"YulExpressionStatement","src":"13742:22:53"}]},"name":"finalize_allocation","nativeSrc":"13489:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13518:6:53","nodeType":"YulTypedName","src":"13518:6:53","type":""},{"name":"size","nativeSrc":"13526:4:53","nodeType":"YulTypedName","src":"13526:4:53","type":""}],"src":"13489:281:53"},{"body":{"nativeSrc":"13817:88:53","nodeType":"YulBlock","src":"13817:88:53","statements":[{"nativeSrc":"13827:30:53","nodeType":"YulAssignment","src":"13827:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"13837:18:53","nodeType":"YulIdentifier","src":"13837:18:53"},"nativeSrc":"13837:20:53","nodeType":"YulFunctionCall","src":"13837:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"13827:6:53","nodeType":"YulIdentifier","src":"13827:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"13886:6:53","nodeType":"YulIdentifier","src":"13886:6:53"},{"name":"size","nativeSrc":"13894:4:53","nodeType":"YulIdentifier","src":"13894:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"13866:19:53","nodeType":"YulIdentifier","src":"13866:19:53"},"nativeSrc":"13866:33:53","nodeType":"YulFunctionCall","src":"13866:33:53"},"nativeSrc":"13866:33:53","nodeType":"YulExpressionStatement","src":"13866:33:53"}]},"name":"allocate_memory","nativeSrc":"13776:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"13801:4:53","nodeType":"YulTypedName","src":"13801:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"13810:6:53","nodeType":"YulTypedName","src":"13810:6:53","type":""}],"src":"13776:129:53"},{"body":{"nativeSrc":"14000:28:53","nodeType":"YulBlock","src":"14000:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14017:1:53","nodeType":"YulLiteral","src":"14017:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14020:1:53","nodeType":"YulLiteral","src":"14020:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14010:6:53","nodeType":"YulIdentifier","src":"14010:6:53"},"nativeSrc":"14010:12:53","nodeType":"YulFunctionCall","src":"14010:12:53"},"nativeSrc":"14010:12:53","nodeType":"YulExpressionStatement","src":"14010:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"13911:117:53","nodeType":"YulFunctionDefinition","src":"13911:117:53"},{"body":{"nativeSrc":"14116:229:53","nodeType":"YulBlock","src":"14116:229:53","statements":[{"body":{"nativeSrc":"14221:22:53","nodeType":"YulBlock","src":"14221:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"14223:16:53","nodeType":"YulIdentifier","src":"14223:16:53"},"nativeSrc":"14223:18:53","nodeType":"YulFunctionCall","src":"14223:18:53"},"nativeSrc":"14223:18:53","nodeType":"YulExpressionStatement","src":"14223:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14193:6:53","nodeType":"YulIdentifier","src":"14193:6:53"},{"kind":"number","nativeSrc":"14201:18:53","nodeType":"YulLiteral","src":"14201:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14190:2:53","nodeType":"YulIdentifier","src":"14190:2:53"},"nativeSrc":"14190:30:53","nodeType":"YulFunctionCall","src":"14190:30:53"},"nativeSrc":"14187:56:53","nodeType":"YulIf","src":"14187:56:53"},{"nativeSrc":"14253:25:53","nodeType":"YulAssignment","src":"14253:25:53","value":{"arguments":[{"name":"length","nativeSrc":"14265:6:53","nodeType":"YulIdentifier","src":"14265:6:53"},{"kind":"number","nativeSrc":"14273:4:53","nodeType":"YulLiteral","src":"14273:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"14261:3:53","nodeType":"YulIdentifier","src":"14261:3:53"},"nativeSrc":"14261:17:53","nodeType":"YulFunctionCall","src":"14261:17:53"},"variableNames":[{"name":"size","nativeSrc":"14253:4:53","nodeType":"YulIdentifier","src":"14253:4:53"}]},{"nativeSrc":"14315:23:53","nodeType":"YulAssignment","src":"14315:23:53","value":{"arguments":[{"name":"size","nativeSrc":"14327:4:53","nodeType":"YulIdentifier","src":"14327:4:53"},{"kind":"number","nativeSrc":"14333:4:53","nodeType":"YulLiteral","src":"14333:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14323:3:53","nodeType":"YulIdentifier","src":"14323:3:53"},"nativeSrc":"14323:15:53","nodeType":"YulFunctionCall","src":"14323:15:53"},"variableNames":[{"name":"size","nativeSrc":"14315:4:53","nodeType":"YulIdentifier","src":"14315:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14034:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14100:6:53","nodeType":"YulTypedName","src":"14100:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14111:4:53","nodeType":"YulTypedName","src":"14111:4:53","type":""}],"src":"14034:311:53"},{"body":{"nativeSrc":"14470:608:53","nodeType":"YulBlock","src":"14470:608:53","statements":[{"nativeSrc":"14480:90:53","nodeType":"YulAssignment","src":"14480:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14562:6:53","nodeType":"YulIdentifier","src":"14562:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14505:56:53","nodeType":"YulIdentifier","src":"14505:56:53"},"nativeSrc":"14505:64:53","nodeType":"YulFunctionCall","src":"14505:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"14489:15:53","nodeType":"YulIdentifier","src":"14489:15:53"},"nativeSrc":"14489:81:53","nodeType":"YulFunctionCall","src":"14489:81:53"},"variableNames":[{"name":"array","nativeSrc":"14480:5:53","nodeType":"YulIdentifier","src":"14480:5:53"}]},{"nativeSrc":"14579:16:53","nodeType":"YulVariableDeclaration","src":"14579:16:53","value":{"name":"array","nativeSrc":"14590:5:53","nodeType":"YulIdentifier","src":"14590:5:53"},"variables":[{"name":"dst","nativeSrc":"14583:3:53","nodeType":"YulTypedName","src":"14583:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"14612:5:53","nodeType":"YulIdentifier","src":"14612:5:53"},{"name":"length","nativeSrc":"14619:6:53","nodeType":"YulIdentifier","src":"14619:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14605:6:53","nodeType":"YulIdentifier","src":"14605:6:53"},"nativeSrc":"14605:21:53","nodeType":"YulFunctionCall","src":"14605:21:53"},"nativeSrc":"14605:21:53","nodeType":"YulExpressionStatement","src":"14605:21:53"},{"nativeSrc":"14635:23:53","nodeType":"YulAssignment","src":"14635:23:53","value":{"arguments":[{"name":"array","nativeSrc":"14646:5:53","nodeType":"YulIdentifier","src":"14646:5:53"},{"kind":"number","nativeSrc":"14653:4:53","nodeType":"YulLiteral","src":"14653:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14642:3:53","nodeType":"YulIdentifier","src":"14642:3:53"},"nativeSrc":"14642:16:53","nodeType":"YulFunctionCall","src":"14642:16:53"},"variableNames":[{"name":"dst","nativeSrc":"14635:3:53","nodeType":"YulIdentifier","src":"14635:3:53"}]},{"nativeSrc":"14668:44:53","nodeType":"YulVariableDeclaration","src":"14668:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"14686:6:53","nodeType":"YulIdentifier","src":"14686:6:53"},{"arguments":[{"name":"length","nativeSrc":"14698:6:53","nodeType":"YulIdentifier","src":"14698:6:53"},{"kind":"number","nativeSrc":"14706:4:53","nodeType":"YulLiteral","src":"14706:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"14694:3:53","nodeType":"YulIdentifier","src":"14694:3:53"},"nativeSrc":"14694:17:53","nodeType":"YulFunctionCall","src":"14694:17:53"}],"functionName":{"name":"add","nativeSrc":"14682:3:53","nodeType":"YulIdentifier","src":"14682:3:53"},"nativeSrc":"14682:30:53","nodeType":"YulFunctionCall","src":"14682:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"14672:6:53","nodeType":"YulTypedName","src":"14672:6:53","type":""}]},{"body":{"nativeSrc":"14740:103:53","nodeType":"YulBlock","src":"14740:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"14754:77:53","nodeType":"YulIdentifier","src":"14754:77:53"},"nativeSrc":"14754:79:53","nodeType":"YulFunctionCall","src":"14754:79:53"},"nativeSrc":"14754:79:53","nodeType":"YulExpressionStatement","src":"14754:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"14727:6:53","nodeType":"YulIdentifier","src":"14727:6:53"},{"name":"end","nativeSrc":"14735:3:53","nodeType":"YulIdentifier","src":"14735:3:53"}],"functionName":{"name":"gt","nativeSrc":"14724:2:53","nodeType":"YulIdentifier","src":"14724:2:53"},"nativeSrc":"14724:15:53","nodeType":"YulFunctionCall","src":"14724:15:53"},"nativeSrc":"14721:122:53","nodeType":"YulIf","src":"14721:122:53"},{"body":{"nativeSrc":"14928:144:53","nodeType":"YulBlock","src":"14928:144:53","statements":[{"nativeSrc":"14943:21:53","nodeType":"YulVariableDeclaration","src":"14943:21:53","value":{"name":"src","nativeSrc":"14961:3:53","nodeType":"YulIdentifier","src":"14961:3:53"},"variables":[{"name":"elementPos","nativeSrc":"14947:10:53","nodeType":"YulTypedName","src":"14947:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"14985:3:53","nodeType":"YulIdentifier","src":"14985:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"15011:10:53","nodeType":"YulIdentifier","src":"15011:10:53"},{"name":"end","nativeSrc":"15023:3:53","nodeType":"YulIdentifier","src":"15023:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"14990:20:53","nodeType":"YulIdentifier","src":"14990:20:53"},"nativeSrc":"14990:37:53","nodeType":"YulFunctionCall","src":"14990:37:53"}],"functionName":{"name":"mstore","nativeSrc":"14978:6:53","nodeType":"YulIdentifier","src":"14978:6:53"},"nativeSrc":"14978:50:53","nodeType":"YulFunctionCall","src":"14978:50:53"},"nativeSrc":"14978:50:53","nodeType":"YulExpressionStatement","src":"14978:50:53"},{"nativeSrc":"15041:21:53","nodeType":"YulAssignment","src":"15041:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"15052:3:53","nodeType":"YulIdentifier","src":"15052:3:53"},{"kind":"number","nativeSrc":"15057:4:53","nodeType":"YulLiteral","src":"15057:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15048:3:53","nodeType":"YulIdentifier","src":"15048:3:53"},"nativeSrc":"15048:14:53","nodeType":"YulFunctionCall","src":"15048:14:53"},"variableNames":[{"name":"dst","nativeSrc":"15041:3:53","nodeType":"YulIdentifier","src":"15041:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"14881:3:53","nodeType":"YulIdentifier","src":"14881:3:53"},{"name":"srcEnd","nativeSrc":"14886:6:53","nodeType":"YulIdentifier","src":"14886:6:53"}],"functionName":{"name":"lt","nativeSrc":"14878:2:53","nodeType":"YulIdentifier","src":"14878:2:53"},"nativeSrc":"14878:15:53","nodeType":"YulFunctionCall","src":"14878:15:53"},"nativeSrc":"14852:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"14894:25:53","nodeType":"YulBlock","src":"14894:25:53","statements":[{"nativeSrc":"14896:21:53","nodeType":"YulAssignment","src":"14896:21:53","value":{"arguments":[{"name":"src","nativeSrc":"14907:3:53","nodeType":"YulIdentifier","src":"14907:3:53"},{"kind":"number","nativeSrc":"14912:4:53","nodeType":"YulLiteral","src":"14912:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14903:3:53","nodeType":"YulIdentifier","src":"14903:3:53"},"nativeSrc":"14903:14:53","nodeType":"YulFunctionCall","src":"14903:14:53"},"variableNames":[{"name":"src","nativeSrc":"14896:3:53","nodeType":"YulIdentifier","src":"14896:3:53"}]}]},"pre":{"nativeSrc":"14856:21:53","nodeType":"YulBlock","src":"14856:21:53","statements":[{"nativeSrc":"14858:17:53","nodeType":"YulVariableDeclaration","src":"14858:17:53","value":{"name":"offset","nativeSrc":"14869:6:53","nodeType":"YulIdentifier","src":"14869:6:53"},"variables":[{"name":"src","nativeSrc":"14862:3:53","nodeType":"YulTypedName","src":"14862:3:53","type":""}]}]},"src":"14852:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14368:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14440:6:53","nodeType":"YulTypedName","src":"14440:6:53","type":""},{"name":"length","nativeSrc":"14448:6:53","nodeType":"YulTypedName","src":"14448:6:53","type":""},{"name":"end","nativeSrc":"14456:3:53","nodeType":"YulTypedName","src":"14456:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"14464:5:53","nodeType":"YulTypedName","src":"14464:5:53","type":""}],"src":"14368:710:53"},{"body":{"nativeSrc":"15178:293:53","nodeType":"YulBlock","src":"15178:293:53","statements":[{"body":{"nativeSrc":"15227:83:53","nodeType":"YulBlock","src":"15227:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15229:77:53","nodeType":"YulIdentifier","src":"15229:77:53"},"nativeSrc":"15229:79:53","nodeType":"YulFunctionCall","src":"15229:79:53"},"nativeSrc":"15229:79:53","nodeType":"YulExpressionStatement","src":"15229:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15206:6:53","nodeType":"YulIdentifier","src":"15206:6:53"},{"kind":"number","nativeSrc":"15214:4:53","nodeType":"YulLiteral","src":"15214:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15202:3:53","nodeType":"YulIdentifier","src":"15202:3:53"},"nativeSrc":"15202:17:53","nodeType":"YulFunctionCall","src":"15202:17:53"},{"name":"end","nativeSrc":"15221:3:53","nodeType":"YulIdentifier","src":"15221:3:53"}],"functionName":{"name":"slt","nativeSrc":"15198:3:53","nodeType":"YulIdentifier","src":"15198:3:53"},"nativeSrc":"15198:27:53","nodeType":"YulFunctionCall","src":"15198:27:53"}],"functionName":{"name":"iszero","nativeSrc":"15191:6:53","nodeType":"YulIdentifier","src":"15191:6:53"},"nativeSrc":"15191:35:53","nodeType":"YulFunctionCall","src":"15191:35:53"},"nativeSrc":"15188:122:53","nodeType":"YulIf","src":"15188:122:53"},{"nativeSrc":"15319:34:53","nodeType":"YulVariableDeclaration","src":"15319:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"15346:6:53","nodeType":"YulIdentifier","src":"15346:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15333:12:53","nodeType":"YulIdentifier","src":"15333:12:53"},"nativeSrc":"15333:20:53","nodeType":"YulFunctionCall","src":"15333:20:53"},"variables":[{"name":"length","nativeSrc":"15323:6:53","nodeType":"YulTypedName","src":"15323:6:53","type":""}]},{"nativeSrc":"15362:103:53","nodeType":"YulAssignment","src":"15362:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15438:6:53","nodeType":"YulIdentifier","src":"15438:6:53"},{"kind":"number","nativeSrc":"15446:4:53","nodeType":"YulLiteral","src":"15446:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15434:3:53","nodeType":"YulIdentifier","src":"15434:3:53"},"nativeSrc":"15434:17:53","nodeType":"YulFunctionCall","src":"15434:17:53"},{"name":"length","nativeSrc":"15453:6:53","nodeType":"YulIdentifier","src":"15453:6:53"},{"name":"end","nativeSrc":"15461:3:53","nodeType":"YulIdentifier","src":"15461:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"15371:62:53","nodeType":"YulIdentifier","src":"15371:62:53"},"nativeSrc":"15371:94:53","nodeType":"YulFunctionCall","src":"15371:94:53"},"variableNames":[{"name":"array","nativeSrc":"15362:5:53","nodeType":"YulIdentifier","src":"15362:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"15101:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15156:6:53","nodeType":"YulTypedName","src":"15156:6:53","type":""},{"name":"end","nativeSrc":"15164:3:53","nodeType":"YulTypedName","src":"15164:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15172:5:53","nodeType":"YulTypedName","src":"15172:5:53","type":""}],"src":"15101:370:53"},{"body":{"nativeSrc":"15601:686:53","nodeType":"YulBlock","src":"15601:686:53","statements":[{"body":{"nativeSrc":"15645:83:53","nodeType":"YulBlock","src":"15645:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"15647:77:53","nodeType":"YulIdentifier","src":"15647:77:53"},"nativeSrc":"15647:79:53","nodeType":"YulFunctionCall","src":"15647:79:53"},"nativeSrc":"15647:79:53","nodeType":"YulExpressionStatement","src":"15647:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"15622:3:53","nodeType":"YulIdentifier","src":"15622:3:53"},{"name":"headStart","nativeSrc":"15627:9:53","nodeType":"YulIdentifier","src":"15627:9:53"}],"functionName":{"name":"sub","nativeSrc":"15618:3:53","nodeType":"YulIdentifier","src":"15618:3:53"},"nativeSrc":"15618:19:53","nodeType":"YulFunctionCall","src":"15618:19:53"},{"kind":"number","nativeSrc":"15639:4:53","nodeType":"YulLiteral","src":"15639:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"15614:3:53","nodeType":"YulIdentifier","src":"15614:3:53"},"nativeSrc":"15614:30:53","nodeType":"YulFunctionCall","src":"15614:30:53"},"nativeSrc":"15611:117:53","nodeType":"YulIf","src":"15611:117:53"},{"nativeSrc":"15737:30:53","nodeType":"YulAssignment","src":"15737:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"15762:4:53","nodeType":"YulLiteral","src":"15762:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"15746:15:53","nodeType":"YulIdentifier","src":"15746:15:53"},"nativeSrc":"15746:21:53","nodeType":"YulFunctionCall","src":"15746:21:53"},"variableNames":[{"name":"value","nativeSrc":"15737:5:53","nodeType":"YulIdentifier","src":"15737:5:53"}]},{"nativeSrc":"15777:151:53","nodeType":"YulBlock","src":"15777:151:53","statements":[{"nativeSrc":"15813:15:53","nodeType":"YulVariableDeclaration","src":"15813:15:53","value":{"kind":"number","nativeSrc":"15827:1:53","nodeType":"YulLiteral","src":"15827:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15817:6:53","nodeType":"YulTypedName","src":"15817:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15853:5:53","nodeType":"YulIdentifier","src":"15853:5:53"},{"kind":"number","nativeSrc":"15860:4:53","nodeType":"YulLiteral","src":"15860:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15849:3:53","nodeType":"YulIdentifier","src":"15849:3:53"},"nativeSrc":"15849:16:53","nodeType":"YulFunctionCall","src":"15849:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15892:9:53","nodeType":"YulIdentifier","src":"15892:9:53"},{"name":"offset","nativeSrc":"15903:6:53","nodeType":"YulIdentifier","src":"15903:6:53"}],"functionName":{"name":"add","nativeSrc":"15888:3:53","nodeType":"YulIdentifier","src":"15888:3:53"},"nativeSrc":"15888:22:53","nodeType":"YulFunctionCall","src":"15888:22:53"},{"name":"end","nativeSrc":"15912:3:53","nodeType":"YulIdentifier","src":"15912:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15867:20:53","nodeType":"YulIdentifier","src":"15867:20:53"},"nativeSrc":"15867:49:53","nodeType":"YulFunctionCall","src":"15867:49:53"}],"functionName":{"name":"mstore","nativeSrc":"15842:6:53","nodeType":"YulIdentifier","src":"15842:6:53"},"nativeSrc":"15842:75:53","nodeType":"YulFunctionCall","src":"15842:75:53"},"nativeSrc":"15842:75:53","nodeType":"YulExpressionStatement","src":"15842:75:53"}]},{"nativeSrc":"15938:342:53","nodeType":"YulBlock","src":"15938:342:53","statements":[{"nativeSrc":"15979:46:53","nodeType":"YulVariableDeclaration","src":"15979:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16010:9:53","nodeType":"YulIdentifier","src":"16010:9:53"},{"kind":"number","nativeSrc":"16021:2:53","nodeType":"YulLiteral","src":"16021:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16006:3:53","nodeType":"YulIdentifier","src":"16006:3:53"},"nativeSrc":"16006:18:53","nodeType":"YulFunctionCall","src":"16006:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"15993:12:53","nodeType":"YulIdentifier","src":"15993:12:53"},"nativeSrc":"15993:32:53","nodeType":"YulFunctionCall","src":"15993:32:53"},"variables":[{"name":"offset","nativeSrc":"15983:6:53","nodeType":"YulTypedName","src":"15983:6:53","type":""}]},{"body":{"nativeSrc":"16072:83:53","nodeType":"YulBlock","src":"16072:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16074:77:53","nodeType":"YulIdentifier","src":"16074:77:53"},"nativeSrc":"16074:79:53","nodeType":"YulFunctionCall","src":"16074:79:53"},"nativeSrc":"16074:79:53","nodeType":"YulExpressionStatement","src":"16074:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16044:6:53","nodeType":"YulIdentifier","src":"16044:6:53"},{"kind":"number","nativeSrc":"16052:18:53","nodeType":"YulLiteral","src":"16052:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16041:2:53","nodeType":"YulIdentifier","src":"16041:2:53"},"nativeSrc":"16041:30:53","nodeType":"YulFunctionCall","src":"16041:30:53"},"nativeSrc":"16038:117:53","nodeType":"YulIf","src":"16038:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16180:5:53","nodeType":"YulIdentifier","src":"16180:5:53"},{"kind":"number","nativeSrc":"16187:4:53","nodeType":"YulLiteral","src":"16187:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16176:3:53","nodeType":"YulIdentifier","src":"16176:3:53"},"nativeSrc":"16176:16:53","nodeType":"YulFunctionCall","src":"16176:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16244:9:53","nodeType":"YulIdentifier","src":"16244:9:53"},{"name":"offset","nativeSrc":"16255:6:53","nodeType":"YulIdentifier","src":"16255:6:53"}],"functionName":{"name":"add","nativeSrc":"16240:3:53","nodeType":"YulIdentifier","src":"16240:3:53"},"nativeSrc":"16240:22:53","nodeType":"YulFunctionCall","src":"16240:22:53"},{"name":"end","nativeSrc":"16264:3:53","nodeType":"YulIdentifier","src":"16264:3:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"16194:45:53","nodeType":"YulIdentifier","src":"16194:45:53"},"nativeSrc":"16194:74:53","nodeType":"YulFunctionCall","src":"16194:74:53"}],"functionName":{"name":"mstore","nativeSrc":"16169:6:53","nodeType":"YulIdentifier","src":"16169:6:53"},"nativeSrc":"16169:100:53","nodeType":"YulFunctionCall","src":"16169:100:53"},"nativeSrc":"16169:100:53","nodeType":"YulExpressionStatement","src":"16169:100:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$13702_memory_ptr","nativeSrc":"15516:771:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15576:9:53","nodeType":"YulTypedName","src":"15576:9:53","type":""},{"name":"end","nativeSrc":"15587:3:53","nodeType":"YulTypedName","src":"15587:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15595:5:53","nodeType":"YulTypedName","src":"15595:5:53","type":""}],"src":"15516:771:53"},{"body":{"nativeSrc":"16389:453:53","nodeType":"YulBlock","src":"16389:453:53","statements":[{"body":{"nativeSrc":"16435:83:53","nodeType":"YulBlock","src":"16435:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16437:77:53","nodeType":"YulIdentifier","src":"16437:77:53"},"nativeSrc":"16437:79:53","nodeType":"YulFunctionCall","src":"16437:79:53"},"nativeSrc":"16437:79:53","nodeType":"YulExpressionStatement","src":"16437:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16410:7:53","nodeType":"YulIdentifier","src":"16410:7:53"},{"name":"headStart","nativeSrc":"16419:9:53","nodeType":"YulIdentifier","src":"16419:9:53"}],"functionName":{"name":"sub","nativeSrc":"16406:3:53","nodeType":"YulIdentifier","src":"16406:3:53"},"nativeSrc":"16406:23:53","nodeType":"YulFunctionCall","src":"16406:23:53"},{"kind":"number","nativeSrc":"16431:2:53","nodeType":"YulLiteral","src":"16431:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16402:3:53","nodeType":"YulIdentifier","src":"16402:3:53"},"nativeSrc":"16402:32:53","nodeType":"YulFunctionCall","src":"16402:32:53"},"nativeSrc":"16399:119:53","nodeType":"YulIf","src":"16399:119:53"},{"nativeSrc":"16528:307:53","nodeType":"YulBlock","src":"16528:307:53","statements":[{"nativeSrc":"16543:45:53","nodeType":"YulVariableDeclaration","src":"16543:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16574:9:53","nodeType":"YulIdentifier","src":"16574:9:53"},{"kind":"number","nativeSrc":"16585:1:53","nodeType":"YulLiteral","src":"16585:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16570:3:53","nodeType":"YulIdentifier","src":"16570:3:53"},"nativeSrc":"16570:17:53","nodeType":"YulFunctionCall","src":"16570:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"16557:12:53","nodeType":"YulIdentifier","src":"16557:12:53"},"nativeSrc":"16557:31:53","nodeType":"YulFunctionCall","src":"16557:31:53"},"variables":[{"name":"offset","nativeSrc":"16547:6:53","nodeType":"YulTypedName","src":"16547:6:53","type":""}]},{"body":{"nativeSrc":"16635:83:53","nodeType":"YulBlock","src":"16635:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"16637:77:53","nodeType":"YulIdentifier","src":"16637:77:53"},"nativeSrc":"16637:79:53","nodeType":"YulFunctionCall","src":"16637:79:53"},"nativeSrc":"16637:79:53","nodeType":"YulExpressionStatement","src":"16637:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16607:6:53","nodeType":"YulIdentifier","src":"16607:6:53"},{"kind":"number","nativeSrc":"16615:18:53","nodeType":"YulLiteral","src":"16615:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16604:2:53","nodeType":"YulIdentifier","src":"16604:2:53"},"nativeSrc":"16604:30:53","nodeType":"YulFunctionCall","src":"16604:30:53"},"nativeSrc":"16601:117:53","nodeType":"YulIf","src":"16601:117:53"},{"nativeSrc":"16732:93:53","nodeType":"YulAssignment","src":"16732:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16797:9:53","nodeType":"YulIdentifier","src":"16797:9:53"},{"name":"offset","nativeSrc":"16808:6:53","nodeType":"YulIdentifier","src":"16808:6:53"}],"functionName":{"name":"add","nativeSrc":"16793:3:53","nodeType":"YulIdentifier","src":"16793:3:53"},"nativeSrc":"16793:22:53","nodeType":"YulFunctionCall","src":"16793:22:53"},{"name":"dataEnd","nativeSrc":"16817:7:53","nodeType":"YulIdentifier","src":"16817:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$13702_memory_ptr","nativeSrc":"16742:50:53","nodeType":"YulIdentifier","src":"16742:50:53"},"nativeSrc":"16742:83:53","nodeType":"YulFunctionCall","src":"16742:83:53"},"variableNames":[{"name":"value0","nativeSrc":"16732:6:53","nodeType":"YulIdentifier","src":"16732:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$13702_memory_ptr","nativeSrc":"16293:549:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16359:9:53","nodeType":"YulTypedName","src":"16359:9:53","type":""},{"name":"dataEnd","nativeSrc":"16370:7:53","nodeType":"YulTypedName","src":"16370:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16382:6:53","nodeType":"YulTypedName","src":"16382:6:53","type":""}],"src":"16293:549:53"},{"body":{"nativeSrc":"16906:56:53","nodeType":"YulBlock","src":"16906:56:53","statements":[{"body":{"nativeSrc":"16940:16:53","nodeType":"YulBlock","src":"16940:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16949:1:53","nodeType":"YulLiteral","src":"16949:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"16952:1:53","nodeType":"YulLiteral","src":"16952:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16942:6:53","nodeType":"YulIdentifier","src":"16942:6:53"},"nativeSrc":"16942:12:53","nodeType":"YulFunctionCall","src":"16942:12:53"},"nativeSrc":"16942:12:53","nodeType":"YulExpressionStatement","src":"16942:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16929:5:53","nodeType":"YulIdentifier","src":"16929:5:53"},{"kind":"number","nativeSrc":"16936:1:53","nodeType":"YulLiteral","src":"16936:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"16926:2:53","nodeType":"YulIdentifier","src":"16926:2:53"},"nativeSrc":"16926:12:53","nodeType":"YulFunctionCall","src":"16926:12:53"}],"functionName":{"name":"iszero","nativeSrc":"16919:6:53","nodeType":"YulIdentifier","src":"16919:6:53"},"nativeSrc":"16919:20:53","nodeType":"YulFunctionCall","src":"16919:20:53"},"nativeSrc":"16916:40:53","nodeType":"YulIf","src":"16916:40:53"}]},"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"16848:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16899:5:53","nodeType":"YulTypedName","src":"16899:5:53","type":""}],"src":"16848:114:53"},{"body":{"nativeSrc":"17035:102:53","nodeType":"YulBlock","src":"17035:102:53","statements":[{"nativeSrc":"17045:29:53","nodeType":"YulAssignment","src":"17045:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"17067:6:53","nodeType":"YulIdentifier","src":"17067:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"17054:12:53","nodeType":"YulIdentifier","src":"17054:12:53"},"nativeSrc":"17054:20:53","nodeType":"YulFunctionCall","src":"17054:20:53"},"variableNames":[{"name":"value","nativeSrc":"17045:5:53","nodeType":"YulIdentifier","src":"17045:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17125:5:53","nodeType":"YulIdentifier","src":"17125:5:53"}],"functionName":{"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"17083:41:53","nodeType":"YulIdentifier","src":"17083:41:53"},"nativeSrc":"17083:48:53","nodeType":"YulFunctionCall","src":"17083:48:53"},"nativeSrc":"17083:48:53","nodeType":"YulExpressionStatement","src":"17083:48:53"}]},"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"16968:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17013:6:53","nodeType":"YulTypedName","src":"17013:6:53","type":""},{"name":"end","nativeSrc":"17021:3:53","nodeType":"YulTypedName","src":"17021:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17029:5:53","nodeType":"YulTypedName","src":"17029:5:53","type":""}],"src":"16968:169:53"},{"body":{"nativeSrc":"17232:28:53","nodeType":"YulBlock","src":"17232:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17249:1:53","nodeType":"YulLiteral","src":"17249:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17252:1:53","nodeType":"YulLiteral","src":"17252:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17242:6:53","nodeType":"YulIdentifier","src":"17242:6:53"},"nativeSrc":"17242:12:53","nodeType":"YulFunctionCall","src":"17242:12:53"},"nativeSrc":"17242:12:53","nodeType":"YulExpressionStatement","src":"17242:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"17143:117:53","nodeType":"YulFunctionDefinition","src":"17143:117:53"},{"body":{"nativeSrc":"17332:241:53","nodeType":"YulBlock","src":"17332:241:53","statements":[{"body":{"nativeSrc":"17437:22:53","nodeType":"YulBlock","src":"17437:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"17439:16:53","nodeType":"YulIdentifier","src":"17439:16:53"},"nativeSrc":"17439:18:53","nodeType":"YulFunctionCall","src":"17439:18:53"},"nativeSrc":"17439:18:53","nodeType":"YulExpressionStatement","src":"17439:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"17409:6:53","nodeType":"YulIdentifier","src":"17409:6:53"},{"kind":"number","nativeSrc":"17417:18:53","nodeType":"YulLiteral","src":"17417:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17406:2:53","nodeType":"YulIdentifier","src":"17406:2:53"},"nativeSrc":"17406:30:53","nodeType":"YulFunctionCall","src":"17406:30:53"},"nativeSrc":"17403:56:53","nodeType":"YulIf","src":"17403:56:53"},{"nativeSrc":"17469:37:53","nodeType":"YulAssignment","src":"17469:37:53","value":{"arguments":[{"name":"length","nativeSrc":"17499:6:53","nodeType":"YulIdentifier","src":"17499:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17477:21:53","nodeType":"YulIdentifier","src":"17477:21:53"},"nativeSrc":"17477:29:53","nodeType":"YulFunctionCall","src":"17477:29:53"},"variableNames":[{"name":"size","nativeSrc":"17469:4:53","nodeType":"YulIdentifier","src":"17469:4:53"}]},{"nativeSrc":"17543:23:53","nodeType":"YulAssignment","src":"17543:23:53","value":{"arguments":[{"name":"size","nativeSrc":"17555:4:53","nodeType":"YulIdentifier","src":"17555:4:53"},{"kind":"number","nativeSrc":"17561:4:53","nodeType":"YulLiteral","src":"17561:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17551:3:53","nodeType":"YulIdentifier","src":"17551:3:53"},"nativeSrc":"17551:15:53","nodeType":"YulFunctionCall","src":"17551:15:53"},"variableNames":[{"name":"size","nativeSrc":"17543:4:53","nodeType":"YulIdentifier","src":"17543:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17266:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"17316:6:53","nodeType":"YulTypedName","src":"17316:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"17327:4:53","nodeType":"YulTypedName","src":"17327:4:53","type":""}],"src":"17266:307:53"},{"body":{"nativeSrc":"17643:84:53","nodeType":"YulBlock","src":"17643:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"17667:3:53","nodeType":"YulIdentifier","src":"17667:3:53"},{"name":"src","nativeSrc":"17672:3:53","nodeType":"YulIdentifier","src":"17672:3:53"},{"name":"length","nativeSrc":"17677:6:53","nodeType":"YulIdentifier","src":"17677:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"17654:12:53","nodeType":"YulIdentifier","src":"17654:12:53"},"nativeSrc":"17654:30:53","nodeType":"YulFunctionCall","src":"17654:30:53"},"nativeSrc":"17654:30:53","nodeType":"YulExpressionStatement","src":"17654:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17704:3:53","nodeType":"YulIdentifier","src":"17704:3:53"},{"name":"length","nativeSrc":"17709:6:53","nodeType":"YulIdentifier","src":"17709:6:53"}],"functionName":{"name":"add","nativeSrc":"17700:3:53","nodeType":"YulIdentifier","src":"17700:3:53"},"nativeSrc":"17700:16:53","nodeType":"YulFunctionCall","src":"17700:16:53"},{"kind":"number","nativeSrc":"17718:1:53","nodeType":"YulLiteral","src":"17718:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17693:6:53","nodeType":"YulIdentifier","src":"17693:6:53"},"nativeSrc":"17693:27:53","nodeType":"YulFunctionCall","src":"17693:27:53"},"nativeSrc":"17693:27:53","nodeType":"YulExpressionStatement","src":"17693:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17579:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17625:3:53","nodeType":"YulTypedName","src":"17625:3:53","type":""},{"name":"dst","nativeSrc":"17630:3:53","nodeType":"YulTypedName","src":"17630:3:53","type":""},{"name":"length","nativeSrc":"17635:6:53","nodeType":"YulTypedName","src":"17635:6:53","type":""}],"src":"17579:148:53"},{"body":{"nativeSrc":"17816:340:53","nodeType":"YulBlock","src":"17816:340:53","statements":[{"nativeSrc":"17826:74:53","nodeType":"YulAssignment","src":"17826:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17892:6:53","nodeType":"YulIdentifier","src":"17892:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17851:40:53","nodeType":"YulIdentifier","src":"17851:40:53"},"nativeSrc":"17851:48:53","nodeType":"YulFunctionCall","src":"17851:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"17835:15:53","nodeType":"YulIdentifier","src":"17835:15:53"},"nativeSrc":"17835:65:53","nodeType":"YulFunctionCall","src":"17835:65:53"},"variableNames":[{"name":"array","nativeSrc":"17826:5:53","nodeType":"YulIdentifier","src":"17826:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"17916:5:53","nodeType":"YulIdentifier","src":"17916:5:53"},{"name":"length","nativeSrc":"17923:6:53","nodeType":"YulIdentifier","src":"17923:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17909:6:53","nodeType":"YulIdentifier","src":"17909:6:53"},"nativeSrc":"17909:21:53","nodeType":"YulFunctionCall","src":"17909:21:53"},"nativeSrc":"17909:21:53","nodeType":"YulExpressionStatement","src":"17909:21:53"},{"nativeSrc":"17939:27:53","nodeType":"YulVariableDeclaration","src":"17939:27:53","value":{"arguments":[{"name":"array","nativeSrc":"17954:5:53","nodeType":"YulIdentifier","src":"17954:5:53"},{"kind":"number","nativeSrc":"17961:4:53","nodeType":"YulLiteral","src":"17961:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17950:3:53","nodeType":"YulIdentifier","src":"17950:3:53"},"nativeSrc":"17950:16:53","nodeType":"YulFunctionCall","src":"17950:16:53"},"variables":[{"name":"dst","nativeSrc":"17943:3:53","nodeType":"YulTypedName","src":"17943:3:53","type":""}]},{"body":{"nativeSrc":"18004:83:53","nodeType":"YulBlock","src":"18004:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"18006:77:53","nodeType":"YulIdentifier","src":"18006:77:53"},"nativeSrc":"18006:79:53","nodeType":"YulFunctionCall","src":"18006:79:53"},"nativeSrc":"18006:79:53","nodeType":"YulExpressionStatement","src":"18006:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17985:3:53","nodeType":"YulIdentifier","src":"17985:3:53"},{"name":"length","nativeSrc":"17990:6:53","nodeType":"YulIdentifier","src":"17990:6:53"}],"functionName":{"name":"add","nativeSrc":"17981:3:53","nodeType":"YulIdentifier","src":"17981:3:53"},"nativeSrc":"17981:16:53","nodeType":"YulFunctionCall","src":"17981:16:53"},{"name":"end","nativeSrc":"17999:3:53","nodeType":"YulIdentifier","src":"17999:3:53"}],"functionName":{"name":"gt","nativeSrc":"17978:2:53","nodeType":"YulIdentifier","src":"17978:2:53"},"nativeSrc":"17978:25:53","nodeType":"YulFunctionCall","src":"17978:25:53"},"nativeSrc":"17975:112:53","nodeType":"YulIf","src":"17975:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"18133:3:53","nodeType":"YulIdentifier","src":"18133:3:53"},{"name":"dst","nativeSrc":"18138:3:53","nodeType":"YulIdentifier","src":"18138:3:53"},{"name":"length","nativeSrc":"18143:6:53","nodeType":"YulIdentifier","src":"18143:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"18096:36:53","nodeType":"YulIdentifier","src":"18096:36:53"},"nativeSrc":"18096:54:53","nodeType":"YulFunctionCall","src":"18096:54:53"},"nativeSrc":"18096:54:53","nodeType":"YulExpressionStatement","src":"18096:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17733:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17789:3:53","nodeType":"YulTypedName","src":"17789:3:53","type":""},{"name":"length","nativeSrc":"17794:6:53","nodeType":"YulTypedName","src":"17794:6:53","type":""},{"name":"end","nativeSrc":"17802:3:53","nodeType":"YulTypedName","src":"17802:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17810:5:53","nodeType":"YulTypedName","src":"17810:5:53","type":""}],"src":"17733:423:53"},{"body":{"nativeSrc":"18236:277:53","nodeType":"YulBlock","src":"18236:277:53","statements":[{"body":{"nativeSrc":"18285:83:53","nodeType":"YulBlock","src":"18285:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"18287:77:53","nodeType":"YulIdentifier","src":"18287:77:53"},"nativeSrc":"18287:79:53","nodeType":"YulFunctionCall","src":"18287:79:53"},"nativeSrc":"18287:79:53","nodeType":"YulExpressionStatement","src":"18287:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18264:6:53","nodeType":"YulIdentifier","src":"18264:6:53"},{"kind":"number","nativeSrc":"18272:4:53","nodeType":"YulLiteral","src":"18272:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"18260:3:53","nodeType":"YulIdentifier","src":"18260:3:53"},"nativeSrc":"18260:17:53","nodeType":"YulFunctionCall","src":"18260:17:53"},{"name":"end","nativeSrc":"18279:3:53","nodeType":"YulIdentifier","src":"18279:3:53"}],"functionName":{"name":"slt","nativeSrc":"18256:3:53","nodeType":"YulIdentifier","src":"18256:3:53"},"nativeSrc":"18256:27:53","nodeType":"YulFunctionCall","src":"18256:27:53"}],"functionName":{"name":"iszero","nativeSrc":"18249:6:53","nodeType":"YulIdentifier","src":"18249:6:53"},"nativeSrc":"18249:35:53","nodeType":"YulFunctionCall","src":"18249:35:53"},"nativeSrc":"18246:122:53","nodeType":"YulIf","src":"18246:122:53"},{"nativeSrc":"18377:34:53","nodeType":"YulVariableDeclaration","src":"18377:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"18404:6:53","nodeType":"YulIdentifier","src":"18404:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"18391:12:53","nodeType":"YulIdentifier","src":"18391:12:53"},"nativeSrc":"18391:20:53","nodeType":"YulFunctionCall","src":"18391:20:53"},"variables":[{"name":"length","nativeSrc":"18381:6:53","nodeType":"YulTypedName","src":"18381:6:53","type":""}]},{"nativeSrc":"18420:87:53","nodeType":"YulAssignment","src":"18420:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18480:6:53","nodeType":"YulIdentifier","src":"18480:6:53"},{"kind":"number","nativeSrc":"18488:4:53","nodeType":"YulLiteral","src":"18488:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18476:3:53","nodeType":"YulIdentifier","src":"18476:3:53"},"nativeSrc":"18476:17:53","nodeType":"YulFunctionCall","src":"18476:17:53"},{"name":"length","nativeSrc":"18495:6:53","nodeType":"YulIdentifier","src":"18495:6:53"},{"name":"end","nativeSrc":"18503:3:53","nodeType":"YulIdentifier","src":"18503:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"18429:46:53","nodeType":"YulIdentifier","src":"18429:46:53"},"nativeSrc":"18429:78:53","nodeType":"YulFunctionCall","src":"18429:78:53"},"variableNames":[{"name":"array","nativeSrc":"18420:5:53","nodeType":"YulIdentifier","src":"18420:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"18175:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18214:6:53","nodeType":"YulTypedName","src":"18214:6:53","type":""},{"name":"end","nativeSrc":"18222:3:53","nodeType":"YulTypedName","src":"18222:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"18230:5:53","nodeType":"YulTypedName","src":"18230:5:53","type":""}],"src":"18175:338:53"},{"body":{"nativeSrc":"18631:1008:53","nodeType":"YulBlock","src":"18631:1008:53","statements":[{"body":{"nativeSrc":"18675:83:53","nodeType":"YulBlock","src":"18675:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18677:77:53","nodeType":"YulIdentifier","src":"18677:77:53"},"nativeSrc":"18677:79:53","nodeType":"YulFunctionCall","src":"18677:79:53"},"nativeSrc":"18677:79:53","nodeType":"YulExpressionStatement","src":"18677:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18652:3:53","nodeType":"YulIdentifier","src":"18652:3:53"},{"name":"headStart","nativeSrc":"18657:9:53","nodeType":"YulIdentifier","src":"18657:9:53"}],"functionName":{"name":"sub","nativeSrc":"18648:3:53","nodeType":"YulIdentifier","src":"18648:3:53"},"nativeSrc":"18648:19:53","nodeType":"YulFunctionCall","src":"18648:19:53"},{"kind":"number","nativeSrc":"18669:4:53","nodeType":"YulLiteral","src":"18669:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"18644:3:53","nodeType":"YulIdentifier","src":"18644:3:53"},"nativeSrc":"18644:30:53","nodeType":"YulFunctionCall","src":"18644:30:53"},"nativeSrc":"18641:117:53","nodeType":"YulIf","src":"18641:117:53"},{"nativeSrc":"18767:30:53","nodeType":"YulAssignment","src":"18767:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"18792:4:53","nodeType":"YulLiteral","src":"18792:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"18776:15:53","nodeType":"YulIdentifier","src":"18776:15:53"},"nativeSrc":"18776:21:53","nodeType":"YulFunctionCall","src":"18776:21:53"},"variableNames":[{"name":"value","nativeSrc":"18767:5:53","nodeType":"YulIdentifier","src":"18767:5:53"}]},{"nativeSrc":"18807:170:53","nodeType":"YulBlock","src":"18807:170:53","statements":[{"nativeSrc":"18847:15:53","nodeType":"YulVariableDeclaration","src":"18847:15:53","value":{"kind":"number","nativeSrc":"18861:1:53","nodeType":"YulLiteral","src":"18861:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18851:6:53","nodeType":"YulTypedName","src":"18851:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18887:5:53","nodeType":"YulIdentifier","src":"18887:5:53"},{"kind":"number","nativeSrc":"18894:4:53","nodeType":"YulLiteral","src":"18894:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18883:3:53","nodeType":"YulIdentifier","src":"18883:3:53"},"nativeSrc":"18883:16:53","nodeType":"YulFunctionCall","src":"18883:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18941:9:53","nodeType":"YulIdentifier","src":"18941:9:53"},{"name":"offset","nativeSrc":"18952:6:53","nodeType":"YulIdentifier","src":"18952:6:53"}],"functionName":{"name":"add","nativeSrc":"18937:3:53","nodeType":"YulIdentifier","src":"18937:3:53"},"nativeSrc":"18937:22:53","nodeType":"YulFunctionCall","src":"18937:22:53"},{"name":"end","nativeSrc":"18961:3:53","nodeType":"YulIdentifier","src":"18961:3:53"}],"functionName":{"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"18901:35:53","nodeType":"YulIdentifier","src":"18901:35:53"},"nativeSrc":"18901:64:53","nodeType":"YulFunctionCall","src":"18901:64:53"}],"functionName":{"name":"mstore","nativeSrc":"18876:6:53","nodeType":"YulIdentifier","src":"18876:6:53"},"nativeSrc":"18876:90:53","nodeType":"YulFunctionCall","src":"18876:90:53"},"nativeSrc":"18876:90:53","nodeType":"YulExpressionStatement","src":"18876:90:53"}]},{"nativeSrc":"18987:152:53","nodeType":"YulBlock","src":"18987:152:53","statements":[{"nativeSrc":"19023:16:53","nodeType":"YulVariableDeclaration","src":"19023:16:53","value":{"kind":"number","nativeSrc":"19037:2:53","nodeType":"YulLiteral","src":"19037:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"19027:6:53","nodeType":"YulTypedName","src":"19027:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19064:5:53","nodeType":"YulIdentifier","src":"19064:5:53"},{"kind":"number","nativeSrc":"19071:4:53","nodeType":"YulLiteral","src":"19071:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19060:3:53","nodeType":"YulIdentifier","src":"19060:3:53"},"nativeSrc":"19060:16:53","nodeType":"YulFunctionCall","src":"19060:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19103:9:53","nodeType":"YulIdentifier","src":"19103:9:53"},{"name":"offset","nativeSrc":"19114:6:53","nodeType":"YulIdentifier","src":"19114:6:53"}],"functionName":{"name":"add","nativeSrc":"19099:3:53","nodeType":"YulIdentifier","src":"19099:3:53"},"nativeSrc":"19099:22:53","nodeType":"YulFunctionCall","src":"19099:22:53"},{"name":"end","nativeSrc":"19123:3:53","nodeType":"YulIdentifier","src":"19123:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19078:20:53","nodeType":"YulIdentifier","src":"19078:20:53"},"nativeSrc":"19078:49:53","nodeType":"YulFunctionCall","src":"19078:49:53"}],"functionName":{"name":"mstore","nativeSrc":"19053:6:53","nodeType":"YulIdentifier","src":"19053:6:53"},"nativeSrc":"19053:75:53","nodeType":"YulFunctionCall","src":"19053:75:53"},"nativeSrc":"19053:75:53","nodeType":"YulExpressionStatement","src":"19053:75:53"}]},{"nativeSrc":"19149:153:53","nodeType":"YulBlock","src":"19149:153:53","statements":[{"nativeSrc":"19186:16:53","nodeType":"YulVariableDeclaration","src":"19186:16:53","value":{"kind":"number","nativeSrc":"19200:2:53","nodeType":"YulLiteral","src":"19200:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"19190:6:53","nodeType":"YulTypedName","src":"19190:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19227:5:53","nodeType":"YulIdentifier","src":"19227:5:53"},{"kind":"number","nativeSrc":"19234:4:53","nodeType":"YulLiteral","src":"19234:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"19223:3:53","nodeType":"YulIdentifier","src":"19223:3:53"},"nativeSrc":"19223:16:53","nodeType":"YulFunctionCall","src":"19223:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19266:9:53","nodeType":"YulIdentifier","src":"19266:9:53"},{"name":"offset","nativeSrc":"19277:6:53","nodeType":"YulIdentifier","src":"19277:6:53"}],"functionName":{"name":"add","nativeSrc":"19262:3:53","nodeType":"YulIdentifier","src":"19262:3:53"},"nativeSrc":"19262:22:53","nodeType":"YulFunctionCall","src":"19262:22:53"},{"name":"end","nativeSrc":"19286:3:53","nodeType":"YulIdentifier","src":"19286:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19241:20:53","nodeType":"YulIdentifier","src":"19241:20:53"},"nativeSrc":"19241:49:53","nodeType":"YulFunctionCall","src":"19241:49:53"}],"functionName":{"name":"mstore","nativeSrc":"19216:6:53","nodeType":"YulIdentifier","src":"19216:6:53"},"nativeSrc":"19216:75:53","nodeType":"YulFunctionCall","src":"19216:75:53"},"nativeSrc":"19216:75:53","nodeType":"YulExpressionStatement","src":"19216:75:53"}]},{"nativeSrc":"19312:320:53","nodeType":"YulBlock","src":"19312:320:53","statements":[{"nativeSrc":"19347:46:53","nodeType":"YulVariableDeclaration","src":"19347:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19378:9:53","nodeType":"YulIdentifier","src":"19378:9:53"},{"kind":"number","nativeSrc":"19389:2:53","nodeType":"YulLiteral","src":"19389:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19374:3:53","nodeType":"YulIdentifier","src":"19374:3:53"},"nativeSrc":"19374:18:53","nodeType":"YulFunctionCall","src":"19374:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"19361:12:53","nodeType":"YulIdentifier","src":"19361:12:53"},"nativeSrc":"19361:32:53","nodeType":"YulFunctionCall","src":"19361:32:53"},"variables":[{"name":"offset","nativeSrc":"19351:6:53","nodeType":"YulTypedName","src":"19351:6:53","type":""}]},{"body":{"nativeSrc":"19440:83:53","nodeType":"YulBlock","src":"19440:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"19442:77:53","nodeType":"YulIdentifier","src":"19442:77:53"},"nativeSrc":"19442:79:53","nodeType":"YulFunctionCall","src":"19442:79:53"},"nativeSrc":"19442:79:53","nodeType":"YulExpressionStatement","src":"19442:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19412:6:53","nodeType":"YulIdentifier","src":"19412:6:53"},{"kind":"number","nativeSrc":"19420:18:53","nodeType":"YulLiteral","src":"19420:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19409:2:53","nodeType":"YulIdentifier","src":"19409:2:53"},"nativeSrc":"19409:30:53","nodeType":"YulFunctionCall","src":"19409:30:53"},"nativeSrc":"19406:117:53","nodeType":"YulIf","src":"19406:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19548:5:53","nodeType":"YulIdentifier","src":"19548:5:53"},{"kind":"number","nativeSrc":"19555:4:53","nodeType":"YulLiteral","src":"19555:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"19544:3:53","nodeType":"YulIdentifier","src":"19544:3:53"},"nativeSrc":"19544:16:53","nodeType":"YulFunctionCall","src":"19544:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19596:9:53","nodeType":"YulIdentifier","src":"19596:9:53"},{"name":"offset","nativeSrc":"19607:6:53","nodeType":"YulIdentifier","src":"19607:6:53"}],"functionName":{"name":"add","nativeSrc":"19592:3:53","nodeType":"YulIdentifier","src":"19592:3:53"},"nativeSrc":"19592:22:53","nodeType":"YulFunctionCall","src":"19592:22:53"},{"name":"end","nativeSrc":"19616:3:53","nodeType":"YulIdentifier","src":"19616:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"19562:29:53","nodeType":"YulIdentifier","src":"19562:29:53"},"nativeSrc":"19562:58:53","nodeType":"YulFunctionCall","src":"19562:58:53"}],"functionName":{"name":"mstore","nativeSrc":"19537:6:53","nodeType":"YulIdentifier","src":"19537:6:53"},"nativeSrc":"19537:84:53","nodeType":"YulFunctionCall","src":"19537:84:53"},"nativeSrc":"19537:84:53","nodeType":"YulExpressionStatement","src":"19537:84:53"}]}]},"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"18549:1090:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18606:9:53","nodeType":"YulTypedName","src":"18606:9:53","type":""},{"name":"end","nativeSrc":"18617:3:53","nodeType":"YulTypedName","src":"18617:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18625:5:53","nodeType":"YulTypedName","src":"18625:5:53","type":""}],"src":"18549:1090:53"},{"body":{"nativeSrc":"19738:450:53","nodeType":"YulBlock","src":"19738:450:53","statements":[{"body":{"nativeSrc":"19784:83:53","nodeType":"YulBlock","src":"19784:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19786:77:53","nodeType":"YulIdentifier","src":"19786:77:53"},"nativeSrc":"19786:79:53","nodeType":"YulFunctionCall","src":"19786:79:53"},"nativeSrc":"19786:79:53","nodeType":"YulExpressionStatement","src":"19786:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19759:7:53","nodeType":"YulIdentifier","src":"19759:7:53"},{"name":"headStart","nativeSrc":"19768:9:53","nodeType":"YulIdentifier","src":"19768:9:53"}],"functionName":{"name":"sub","nativeSrc":"19755:3:53","nodeType":"YulIdentifier","src":"19755:3:53"},"nativeSrc":"19755:23:53","nodeType":"YulFunctionCall","src":"19755:23:53"},{"kind":"number","nativeSrc":"19780:2:53","nodeType":"YulLiteral","src":"19780:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19751:3:53","nodeType":"YulIdentifier","src":"19751:3:53"},"nativeSrc":"19751:32:53","nodeType":"YulFunctionCall","src":"19751:32:53"},"nativeSrc":"19748:119:53","nodeType":"YulIf","src":"19748:119:53"},{"nativeSrc":"19877:304:53","nodeType":"YulBlock","src":"19877:304:53","statements":[{"nativeSrc":"19892:45:53","nodeType":"YulVariableDeclaration","src":"19892:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19923:9:53","nodeType":"YulIdentifier","src":"19923:9:53"},{"kind":"number","nativeSrc":"19934:1:53","nodeType":"YulLiteral","src":"19934:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19919:3:53","nodeType":"YulIdentifier","src":"19919:3:53"},"nativeSrc":"19919:17:53","nodeType":"YulFunctionCall","src":"19919:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"19906:12:53","nodeType":"YulIdentifier","src":"19906:12:53"},"nativeSrc":"19906:31:53","nodeType":"YulFunctionCall","src":"19906:31:53"},"variables":[{"name":"offset","nativeSrc":"19896:6:53","nodeType":"YulTypedName","src":"19896:6:53","type":""}]},{"body":{"nativeSrc":"19984:83:53","nodeType":"YulBlock","src":"19984:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19986:77:53","nodeType":"YulIdentifier","src":"19986:77:53"},"nativeSrc":"19986:79:53","nodeType":"YulFunctionCall","src":"19986:79:53"},"nativeSrc":"19986:79:53","nodeType":"YulExpressionStatement","src":"19986:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19956:6:53","nodeType":"YulIdentifier","src":"19956:6:53"},{"kind":"number","nativeSrc":"19964:18:53","nodeType":"YulLiteral","src":"19964:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19953:2:53","nodeType":"YulIdentifier","src":"19953:2:53"},"nativeSrc":"19953:30:53","nodeType":"YulFunctionCall","src":"19953:30:53"},"nativeSrc":"19950:117:53","nodeType":"YulIf","src":"19950:117:53"},{"nativeSrc":"20081:90:53","nodeType":"YulAssignment","src":"20081:90:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20143:9:53","nodeType":"YulIdentifier","src":"20143:9:53"},{"name":"offset","nativeSrc":"20154:6:53","nodeType":"YulIdentifier","src":"20154:6:53"}],"functionName":{"name":"add","nativeSrc":"20139:3:53","nodeType":"YulIdentifier","src":"20139:3:53"},"nativeSrc":"20139:22:53","nodeType":"YulFunctionCall","src":"20139:22:53"},{"name":"dataEnd","nativeSrc":"20163:7:53","nodeType":"YulIdentifier","src":"20163:7:53"}],"functionName":{"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"20091:47:53","nodeType":"YulIdentifier","src":"20091:47:53"},"nativeSrc":"20091:80:53","nodeType":"YulFunctionCall","src":"20091:80:53"},"variableNames":[{"name":"value0","nativeSrc":"20081:6:53","nodeType":"YulIdentifier","src":"20081:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"19645:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19708:9:53","nodeType":"YulTypedName","src":"19708:9:53","type":""},{"name":"dataEnd","nativeSrc":"19719:7:53","nodeType":"YulTypedName","src":"19719:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19731:6:53","nodeType":"YulTypedName","src":"19731:6:53","type":""}],"src":"19645:543:53"},{"body":{"nativeSrc":"20222:152:53","nodeType":"YulBlock","src":"20222:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20239:1:53","nodeType":"YulLiteral","src":"20239:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20242:77:53","nodeType":"YulLiteral","src":"20242:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20232:6:53","nodeType":"YulIdentifier","src":"20232:6:53"},"nativeSrc":"20232:88:53","nodeType":"YulFunctionCall","src":"20232:88:53"},"nativeSrc":"20232:88:53","nodeType":"YulExpressionStatement","src":"20232:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20336:1:53","nodeType":"YulLiteral","src":"20336:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"20339:4:53","nodeType":"YulLiteral","src":"20339:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"20329:6:53","nodeType":"YulIdentifier","src":"20329:6:53"},"nativeSrc":"20329:15:53","nodeType":"YulFunctionCall","src":"20329:15:53"},"nativeSrc":"20329:15:53","nodeType":"YulExpressionStatement","src":"20329:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20360:1:53","nodeType":"YulLiteral","src":"20360:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20363:4:53","nodeType":"YulLiteral","src":"20363:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20353:6:53","nodeType":"YulIdentifier","src":"20353:6:53"},"nativeSrc":"20353:15:53","nodeType":"YulFunctionCall","src":"20353:15:53"},"nativeSrc":"20353:15:53","nodeType":"YulExpressionStatement","src":"20353:15:53"}]},"name":"panic_error_0x21","nativeSrc":"20194:180:53","nodeType":"YulFunctionDefinition","src":"20194:180:53"},{"body":{"nativeSrc":"20443:80:53","nodeType":"YulBlock","src":"20443:80:53","statements":[{"nativeSrc":"20453:22:53","nodeType":"YulAssignment","src":"20453:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"20468:6:53","nodeType":"YulIdentifier","src":"20468:6:53"}],"functionName":{"name":"mload","nativeSrc":"20462:5:53","nodeType":"YulIdentifier","src":"20462:5:53"},"nativeSrc":"20462:13:53","nodeType":"YulFunctionCall","src":"20462:13:53"},"variableNames":[{"name":"value","nativeSrc":"20453:5:53","nodeType":"YulIdentifier","src":"20453:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"20511:5:53","nodeType":"YulIdentifier","src":"20511:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"20484:26:53","nodeType":"YulIdentifier","src":"20484:26:53"},"nativeSrc":"20484:33:53","nodeType":"YulFunctionCall","src":"20484:33:53"},"nativeSrc":"20484:33:53","nodeType":"YulExpressionStatement","src":"20484:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"20380:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20421:6:53","nodeType":"YulTypedName","src":"20421:6:53","type":""},{"name":"end","nativeSrc":"20429:3:53","nodeType":"YulTypedName","src":"20429:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20437:5:53","nodeType":"YulTypedName","src":"20437:5:53","type":""}],"src":"20380:143:53"},{"body":{"nativeSrc":"20666:346:53","nodeType":"YulBlock","src":"20666:346:53","statements":[{"body":{"nativeSrc":"20710:83:53","nodeType":"YulBlock","src":"20710:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"20712:77:53","nodeType":"YulIdentifier","src":"20712:77:53"},"nativeSrc":"20712:79:53","nodeType":"YulFunctionCall","src":"20712:79:53"},"nativeSrc":"20712:79:53","nodeType":"YulExpressionStatement","src":"20712:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"20687:3:53","nodeType":"YulIdentifier","src":"20687:3:53"},{"name":"headStart","nativeSrc":"20692:9:53","nodeType":"YulIdentifier","src":"20692:9:53"}],"functionName":{"name":"sub","nativeSrc":"20683:3:53","nodeType":"YulIdentifier","src":"20683:3:53"},"nativeSrc":"20683:19:53","nodeType":"YulFunctionCall","src":"20683:19:53"},{"kind":"number","nativeSrc":"20704:4:53","nodeType":"YulLiteral","src":"20704:4:53","type":"","value":"0x20"}],"functionName":{"name":"slt","nativeSrc":"20679:3:53","nodeType":"YulIdentifier","src":"20679:3:53"},"nativeSrc":"20679:30:53","nodeType":"YulFunctionCall","src":"20679:30:53"},"nativeSrc":"20676:117:53","nodeType":"YulIf","src":"20676:117:53"},{"nativeSrc":"20802:30:53","nodeType":"YulAssignment","src":"20802:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"20827:4:53","nodeType":"YulLiteral","src":"20827:4:53","type":"","value":"0x20"}],"functionName":{"name":"allocate_memory","nativeSrc":"20811:15:53","nodeType":"YulIdentifier","src":"20811:15:53"},"nativeSrc":"20811:21:53","nodeType":"YulFunctionCall","src":"20811:21:53"},"variableNames":[{"name":"value","nativeSrc":"20802:5:53","nodeType":"YulIdentifier","src":"20802:5:53"}]},{"nativeSrc":"20842:163:53","nodeType":"YulBlock","src":"20842:163:53","statements":[{"nativeSrc":"20879:15:53","nodeType":"YulVariableDeclaration","src":"20879:15:53","value":{"kind":"number","nativeSrc":"20893:1:53","nodeType":"YulLiteral","src":"20893:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"20883:6:53","nodeType":"YulTypedName","src":"20883:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20919:5:53","nodeType":"YulIdentifier","src":"20919:5:53"},{"kind":"number","nativeSrc":"20926:4:53","nodeType":"YulLiteral","src":"20926:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20915:3:53","nodeType":"YulIdentifier","src":"20915:3:53"},"nativeSrc":"20915:16:53","nodeType":"YulFunctionCall","src":"20915:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20969:9:53","nodeType":"YulIdentifier","src":"20969:9:53"},{"name":"offset","nativeSrc":"20980:6:53","nodeType":"YulIdentifier","src":"20980:6:53"}],"functionName":{"name":"add","nativeSrc":"20965:3:53","nodeType":"YulIdentifier","src":"20965:3:53"},"nativeSrc":"20965:22:53","nodeType":"YulFunctionCall","src":"20965:22:53"},{"name":"end","nativeSrc":"20989:3:53","nodeType":"YulIdentifier","src":"20989:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"20933:31:53","nodeType":"YulIdentifier","src":"20933:31:53"},"nativeSrc":"20933:60:53","nodeType":"YulFunctionCall","src":"20933:60:53"}],"functionName":{"name":"mstore","nativeSrc":"20908:6:53","nodeType":"YulIdentifier","src":"20908:6:53"},"nativeSrc":"20908:86:53","nodeType":"YulFunctionCall","src":"20908:86:53"},"nativeSrc":"20908:86:53","nodeType":"YulExpressionStatement","src":"20908:86:53"}]}]},"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"20566:446:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20641:9:53","nodeType":"YulTypedName","src":"20641:9:53","type":""},{"name":"end","nativeSrc":"20652:3:53","nodeType":"YulTypedName","src":"20652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20660:5:53","nodeType":"YulTypedName","src":"20660:5:53","type":""}],"src":"20566:446:53"},{"body":{"nativeSrc":"21129:308:53","nodeType":"YulBlock","src":"21129:308:53","statements":[{"body":{"nativeSrc":"21175:83:53","nodeType":"YulBlock","src":"21175:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"21177:77:53","nodeType":"YulIdentifier","src":"21177:77:53"},"nativeSrc":"21177:79:53","nodeType":"YulFunctionCall","src":"21177:79:53"},"nativeSrc":"21177:79:53","nodeType":"YulExpressionStatement","src":"21177:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"21150:7:53","nodeType":"YulIdentifier","src":"21150:7:53"},{"name":"headStart","nativeSrc":"21159:9:53","nodeType":"YulIdentifier","src":"21159:9:53"}],"functionName":{"name":"sub","nativeSrc":"21146:3:53","nodeType":"YulIdentifier","src":"21146:3:53"},"nativeSrc":"21146:23:53","nodeType":"YulFunctionCall","src":"21146:23:53"},{"kind":"number","nativeSrc":"21171:2:53","nodeType":"YulLiteral","src":"21171:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"21142:3:53","nodeType":"YulIdentifier","src":"21142:3:53"},"nativeSrc":"21142:32:53","nodeType":"YulFunctionCall","src":"21142:32:53"},"nativeSrc":"21139:119:53","nodeType":"YulIf","src":"21139:119:53"},{"nativeSrc":"21268:162:53","nodeType":"YulBlock","src":"21268:162:53","statements":[{"nativeSrc":"21283:15:53","nodeType":"YulVariableDeclaration","src":"21283:15:53","value":{"kind":"number","nativeSrc":"21297:1:53","nodeType":"YulLiteral","src":"21297:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21287:6:53","nodeType":"YulTypedName","src":"21287:6:53","type":""}]},{"nativeSrc":"21312:108:53","nodeType":"YulAssignment","src":"21312:108:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21392:9:53","nodeType":"YulIdentifier","src":"21392:9:53"},{"name":"offset","nativeSrc":"21403:6:53","nodeType":"YulIdentifier","src":"21403:6:53"}],"functionName":{"name":"add","nativeSrc":"21388:3:53","nodeType":"YulIdentifier","src":"21388:3:53"},"nativeSrc":"21388:22:53","nodeType":"YulFunctionCall","src":"21388:22:53"},{"name":"dataEnd","nativeSrc":"21412:7:53","nodeType":"YulIdentifier","src":"21412:7:53"}],"functionName":{"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"21322:65:53","nodeType":"YulIdentifier","src":"21322:65:53"},"nativeSrc":"21322:98:53","nodeType":"YulFunctionCall","src":"21322:98:53"},"variableNames":[{"name":"value0","nativeSrc":"21312:6:53","nodeType":"YulIdentifier","src":"21312:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"21018:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21099:9:53","nodeType":"YulTypedName","src":"21099:9:53","type":""},{"name":"dataEnd","nativeSrc":"21110:7:53","nodeType":"YulTypedName","src":"21110:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"21122:6:53","nodeType":"YulTypedName","src":"21122:6:53","type":""}],"src":"21018:419:53"},{"body":{"nativeSrc":"21569:206:53","nodeType":"YulBlock","src":"21569:206:53","statements":[{"nativeSrc":"21579:26:53","nodeType":"YulAssignment","src":"21579:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21591:9:53","nodeType":"YulIdentifier","src":"21591:9:53"},{"kind":"number","nativeSrc":"21602:2:53","nodeType":"YulLiteral","src":"21602:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21587:3:53","nodeType":"YulIdentifier","src":"21587:3:53"},"nativeSrc":"21587:18:53","nodeType":"YulFunctionCall","src":"21587:18:53"},"variableNames":[{"name":"tail","nativeSrc":"21579:4:53","nodeType":"YulIdentifier","src":"21579:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21659:6:53","nodeType":"YulIdentifier","src":"21659:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21672:9:53","nodeType":"YulIdentifier","src":"21672:9:53"},{"kind":"number","nativeSrc":"21683:1:53","nodeType":"YulLiteral","src":"21683:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21668:3:53","nodeType":"YulIdentifier","src":"21668:3:53"},"nativeSrc":"21668:17:53","nodeType":"YulFunctionCall","src":"21668:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21615:43:53","nodeType":"YulIdentifier","src":"21615:43:53"},"nativeSrc":"21615:71:53","nodeType":"YulFunctionCall","src":"21615:71:53"},"nativeSrc":"21615:71:53","nodeType":"YulExpressionStatement","src":"21615:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21740:6:53","nodeType":"YulIdentifier","src":"21740:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21753:9:53","nodeType":"YulIdentifier","src":"21753:9:53"},{"kind":"number","nativeSrc":"21764:2:53","nodeType":"YulLiteral","src":"21764:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21749:3:53","nodeType":"YulIdentifier","src":"21749:3:53"},"nativeSrc":"21749:18:53","nodeType":"YulFunctionCall","src":"21749:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21696:43:53","nodeType":"YulIdentifier","src":"21696:43:53"},"nativeSrc":"21696:72:53","nodeType":"YulFunctionCall","src":"21696:72:53"},"nativeSrc":"21696:72:53","nodeType":"YulExpressionStatement","src":"21696:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"21443:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21533:9:53","nodeType":"YulTypedName","src":"21533:9:53","type":""},{"name":"value1","nativeSrc":"21545:6:53","nodeType":"YulTypedName","src":"21545:6:53","type":""},{"name":"value0","nativeSrc":"21553:6:53","nodeType":"YulTypedName","src":"21553:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21564:4:53","nodeType":"YulTypedName","src":"21564:4:53","type":""}],"src":"21443:332:53"},{"body":{"nativeSrc":"21843:77:53","nodeType":"YulBlock","src":"21843:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"21860:3:53","nodeType":"YulIdentifier","src":"21860:3:53"},{"name":"src","nativeSrc":"21865:3:53","nodeType":"YulIdentifier","src":"21865:3:53"},{"name":"length","nativeSrc":"21870:6:53","nodeType":"YulIdentifier","src":"21870:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"21854:5:53","nodeType":"YulIdentifier","src":"21854:5:53"},"nativeSrc":"21854:23:53","nodeType":"YulFunctionCall","src":"21854:23:53"},"nativeSrc":"21854:23:53","nodeType":"YulExpressionStatement","src":"21854:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"21897:3:53","nodeType":"YulIdentifier","src":"21897:3:53"},{"name":"length","nativeSrc":"21902:6:53","nodeType":"YulIdentifier","src":"21902:6:53"}],"functionName":{"name":"add","nativeSrc":"21893:3:53","nodeType":"YulIdentifier","src":"21893:3:53"},"nativeSrc":"21893:16:53","nodeType":"YulFunctionCall","src":"21893:16:53"},{"kind":"number","nativeSrc":"21911:1:53","nodeType":"YulLiteral","src":"21911:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"21886:6:53","nodeType":"YulIdentifier","src":"21886:6:53"},"nativeSrc":"21886:27:53","nodeType":"YulFunctionCall","src":"21886:27:53"},"nativeSrc":"21886:27:53","nodeType":"YulExpressionStatement","src":"21886:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"21781:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"21825:3:53","nodeType":"YulTypedName","src":"21825:3:53","type":""},{"name":"dst","nativeSrc":"21830:3:53","nodeType":"YulTypedName","src":"21830:3:53","type":""},{"name":"length","nativeSrc":"21835:6:53","nodeType":"YulTypedName","src":"21835:6:53","type":""}],"src":"21781:139:53"},{"body":{"nativeSrc":"22020:338:53","nodeType":"YulBlock","src":"22020:338:53","statements":[{"nativeSrc":"22030:74:53","nodeType":"YulAssignment","src":"22030:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"22096:6:53","nodeType":"YulIdentifier","src":"22096:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"22055:40:53","nodeType":"YulIdentifier","src":"22055:40:53"},"nativeSrc":"22055:48:53","nodeType":"YulFunctionCall","src":"22055:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"22039:15:53","nodeType":"YulIdentifier","src":"22039:15:53"},"nativeSrc":"22039:65:53","nodeType":"YulFunctionCall","src":"22039:65:53"},"variableNames":[{"name":"array","nativeSrc":"22030:5:53","nodeType":"YulIdentifier","src":"22030:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22120:5:53","nodeType":"YulIdentifier","src":"22120:5:53"},{"name":"length","nativeSrc":"22127:6:53","nodeType":"YulIdentifier","src":"22127:6:53"}],"functionName":{"name":"mstore","nativeSrc":"22113:6:53","nodeType":"YulIdentifier","src":"22113:6:53"},"nativeSrc":"22113:21:53","nodeType":"YulFunctionCall","src":"22113:21:53"},"nativeSrc":"22113:21:53","nodeType":"YulExpressionStatement","src":"22113:21:53"},{"nativeSrc":"22143:27:53","nodeType":"YulVariableDeclaration","src":"22143:27:53","value":{"arguments":[{"name":"array","nativeSrc":"22158:5:53","nodeType":"YulIdentifier","src":"22158:5:53"},{"kind":"number","nativeSrc":"22165:4:53","nodeType":"YulLiteral","src":"22165:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22154:3:53","nodeType":"YulIdentifier","src":"22154:3:53"},"nativeSrc":"22154:16:53","nodeType":"YulFunctionCall","src":"22154:16:53"},"variables":[{"name":"dst","nativeSrc":"22147:3:53","nodeType":"YulTypedName","src":"22147:3:53","type":""}]},{"body":{"nativeSrc":"22208:83:53","nodeType":"YulBlock","src":"22208:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"22210:77:53","nodeType":"YulIdentifier","src":"22210:77:53"},"nativeSrc":"22210:79:53","nodeType":"YulFunctionCall","src":"22210:79:53"},"nativeSrc":"22210:79:53","nodeType":"YulExpressionStatement","src":"22210:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22189:3:53","nodeType":"YulIdentifier","src":"22189:3:53"},{"name":"length","nativeSrc":"22194:6:53","nodeType":"YulIdentifier","src":"22194:6:53"}],"functionName":{"name":"add","nativeSrc":"22185:3:53","nodeType":"YulIdentifier","src":"22185:3:53"},"nativeSrc":"22185:16:53","nodeType":"YulFunctionCall","src":"22185:16:53"},{"name":"end","nativeSrc":"22203:3:53","nodeType":"YulIdentifier","src":"22203:3:53"}],"functionName":{"name":"gt","nativeSrc":"22182:2:53","nodeType":"YulIdentifier","src":"22182:2:53"},"nativeSrc":"22182:25:53","nodeType":"YulFunctionCall","src":"22182:25:53"},"nativeSrc":"22179:112:53","nodeType":"YulIf","src":"22179:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"22335:3:53","nodeType":"YulIdentifier","src":"22335:3:53"},{"name":"dst","nativeSrc":"22340:3:53","nodeType":"YulIdentifier","src":"22340:3:53"},{"name":"length","nativeSrc":"22345:6:53","nodeType":"YulIdentifier","src":"22345:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22300:34:53","nodeType":"YulIdentifier","src":"22300:34:53"},"nativeSrc":"22300:52:53","nodeType":"YulFunctionCall","src":"22300:52:53"},"nativeSrc":"22300:52:53","nodeType":"YulExpressionStatement","src":"22300:52:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"21926:432:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"21993:3:53","nodeType":"YulTypedName","src":"21993:3:53","type":""},{"name":"length","nativeSrc":"21998:6:53","nodeType":"YulTypedName","src":"21998:6:53","type":""},{"name":"end","nativeSrc":"22006:3:53","nodeType":"YulTypedName","src":"22006:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22014:5:53","nodeType":"YulTypedName","src":"22014:5:53","type":""}],"src":"21926:432:53"},{"body":{"nativeSrc":"22449:281:53","nodeType":"YulBlock","src":"22449:281:53","statements":[{"body":{"nativeSrc":"22498:83:53","nodeType":"YulBlock","src":"22498:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"22500:77:53","nodeType":"YulIdentifier","src":"22500:77:53"},"nativeSrc":"22500:79:53","nodeType":"YulFunctionCall","src":"22500:79:53"},"nativeSrc":"22500:79:53","nodeType":"YulExpressionStatement","src":"22500:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22477:6:53","nodeType":"YulIdentifier","src":"22477:6:53"},{"kind":"number","nativeSrc":"22485:4:53","nodeType":"YulLiteral","src":"22485:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22473:3:53","nodeType":"YulIdentifier","src":"22473:3:53"},"nativeSrc":"22473:17:53","nodeType":"YulFunctionCall","src":"22473:17:53"},{"name":"end","nativeSrc":"22492:3:53","nodeType":"YulIdentifier","src":"22492:3:53"}],"functionName":{"name":"slt","nativeSrc":"22469:3:53","nodeType":"YulIdentifier","src":"22469:3:53"},"nativeSrc":"22469:27:53","nodeType":"YulFunctionCall","src":"22469:27:53"}],"functionName":{"name":"iszero","nativeSrc":"22462:6:53","nodeType":"YulIdentifier","src":"22462:6:53"},"nativeSrc":"22462:35:53","nodeType":"YulFunctionCall","src":"22462:35:53"},"nativeSrc":"22459:122:53","nodeType":"YulIf","src":"22459:122:53"},{"nativeSrc":"22590:27:53","nodeType":"YulVariableDeclaration","src":"22590:27:53","value":{"arguments":[{"name":"offset","nativeSrc":"22610:6:53","nodeType":"YulIdentifier","src":"22610:6:53"}],"functionName":{"name":"mload","nativeSrc":"22604:5:53","nodeType":"YulIdentifier","src":"22604:5:53"},"nativeSrc":"22604:13:53","nodeType":"YulFunctionCall","src":"22604:13:53"},"variables":[{"name":"length","nativeSrc":"22594:6:53","nodeType":"YulTypedName","src":"22594:6:53","type":""}]},{"nativeSrc":"22626:98:53","nodeType":"YulAssignment","src":"22626:98:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22697:6:53","nodeType":"YulIdentifier","src":"22697:6:53"},{"kind":"number","nativeSrc":"22705:4:53","nodeType":"YulLiteral","src":"22705:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22693:3:53","nodeType":"YulIdentifier","src":"22693:3:53"},"nativeSrc":"22693:17:53","nodeType":"YulFunctionCall","src":"22693:17:53"},{"name":"length","nativeSrc":"22712:6:53","nodeType":"YulIdentifier","src":"22712:6:53"},{"name":"end","nativeSrc":"22720:3:53","nodeType":"YulIdentifier","src":"22720:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"22635:57:53","nodeType":"YulIdentifier","src":"22635:57:53"},"nativeSrc":"22635:89:53","nodeType":"YulFunctionCall","src":"22635:89:53"},"variableNames":[{"name":"array","nativeSrc":"22626:5:53","nodeType":"YulIdentifier","src":"22626:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"22377:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22427:6:53","nodeType":"YulTypedName","src":"22427:6:53","type":""},{"name":"end","nativeSrc":"22435:3:53","nodeType":"YulTypedName","src":"22435:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22443:5:53","nodeType":"YulTypedName","src":"22443:5:53","type":""}],"src":"22377:353:53"},{"body":{"nativeSrc":"22871:855:53","nodeType":"YulBlock","src":"22871:855:53","statements":[{"body":{"nativeSrc":"22915:83:53","nodeType":"YulBlock","src":"22915:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"22917:77:53","nodeType":"YulIdentifier","src":"22917:77:53"},"nativeSrc":"22917:79:53","nodeType":"YulFunctionCall","src":"22917:79:53"},"nativeSrc":"22917:79:53","nodeType":"YulExpressionStatement","src":"22917:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"22892:3:53","nodeType":"YulIdentifier","src":"22892:3:53"},{"name":"headStart","nativeSrc":"22897:9:53","nodeType":"YulIdentifier","src":"22897:9:53"}],"functionName":{"name":"sub","nativeSrc":"22888:3:53","nodeType":"YulIdentifier","src":"22888:3:53"},"nativeSrc":"22888:19:53","nodeType":"YulFunctionCall","src":"22888:19:53"},{"kind":"number","nativeSrc":"22909:4:53","nodeType":"YulLiteral","src":"22909:4:53","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"22884:3:53","nodeType":"YulIdentifier","src":"22884:3:53"},"nativeSrc":"22884:30:53","nodeType":"YulFunctionCall","src":"22884:30:53"},"nativeSrc":"22881:117:53","nodeType":"YulIf","src":"22881:117:53"},{"nativeSrc":"23007:30:53","nodeType":"YulAssignment","src":"23007:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"23032:4:53","nodeType":"YulLiteral","src":"23032:4:53","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"23016:15:53","nodeType":"YulIdentifier","src":"23016:15:53"},"nativeSrc":"23016:21:53","nodeType":"YulFunctionCall","src":"23016:21:53"},"variableNames":[{"name":"value","nativeSrc":"23007:5:53","nodeType":"YulIdentifier","src":"23007:5:53"}]},{"nativeSrc":"23047:164:53","nodeType":"YulBlock","src":"23047:164:53","statements":[{"nativeSrc":"23085:15:53","nodeType":"YulVariableDeclaration","src":"23085:15:53","value":{"kind":"number","nativeSrc":"23099:1:53","nodeType":"YulLiteral","src":"23099:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23089:6:53","nodeType":"YulTypedName","src":"23089:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23125:5:53","nodeType":"YulIdentifier","src":"23125:5:53"},{"kind":"number","nativeSrc":"23132:4:53","nodeType":"YulLiteral","src":"23132:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23121:3:53","nodeType":"YulIdentifier","src":"23121:3:53"},"nativeSrc":"23121:16:53","nodeType":"YulFunctionCall","src":"23121:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23175:9:53","nodeType":"YulIdentifier","src":"23175:9:53"},{"name":"offset","nativeSrc":"23186:6:53","nodeType":"YulIdentifier","src":"23186:6:53"}],"functionName":{"name":"add","nativeSrc":"23171:3:53","nodeType":"YulIdentifier","src":"23171:3:53"},"nativeSrc":"23171:22:53","nodeType":"YulFunctionCall","src":"23171:22:53"},{"name":"end","nativeSrc":"23195:3:53","nodeType":"YulIdentifier","src":"23195:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23139:31:53","nodeType":"YulIdentifier","src":"23139:31:53"},"nativeSrc":"23139:60:53","nodeType":"YulFunctionCall","src":"23139:60:53"}],"functionName":{"name":"mstore","nativeSrc":"23114:6:53","nodeType":"YulIdentifier","src":"23114:6:53"},"nativeSrc":"23114:86:53","nodeType":"YulFunctionCall","src":"23114:86:53"},"nativeSrc":"23114:86:53","nodeType":"YulExpressionStatement","src":"23114:86:53"}]},{"nativeSrc":"23221:164:53","nodeType":"YulBlock","src":"23221:164:53","statements":[{"nativeSrc":"23258:16:53","nodeType":"YulVariableDeclaration","src":"23258:16:53","value":{"kind":"number","nativeSrc":"23272:2:53","nodeType":"YulLiteral","src":"23272:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"23262:6:53","nodeType":"YulTypedName","src":"23262:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23299:5:53","nodeType":"YulIdentifier","src":"23299:5:53"},{"kind":"number","nativeSrc":"23306:4:53","nodeType":"YulLiteral","src":"23306:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23295:3:53","nodeType":"YulIdentifier","src":"23295:3:53"},"nativeSrc":"23295:16:53","nodeType":"YulFunctionCall","src":"23295:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23349:9:53","nodeType":"YulIdentifier","src":"23349:9:53"},{"name":"offset","nativeSrc":"23360:6:53","nodeType":"YulIdentifier","src":"23360:6:53"}],"functionName":{"name":"add","nativeSrc":"23345:3:53","nodeType":"YulIdentifier","src":"23345:3:53"},"nativeSrc":"23345:22:53","nodeType":"YulFunctionCall","src":"23345:22:53"},{"name":"end","nativeSrc":"23369:3:53","nodeType":"YulIdentifier","src":"23369:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23313:31:53","nodeType":"YulIdentifier","src":"23313:31:53"},"nativeSrc":"23313:60:53","nodeType":"YulFunctionCall","src":"23313:60:53"}],"functionName":{"name":"mstore","nativeSrc":"23288:6:53","nodeType":"YulIdentifier","src":"23288:6:53"},"nativeSrc":"23288:86:53","nodeType":"YulFunctionCall","src":"23288:86:53"},"nativeSrc":"23288:86:53","nodeType":"YulExpressionStatement","src":"23288:86:53"}]},{"nativeSrc":"23395:324:53","nodeType":"YulBlock","src":"23395:324:53","statements":[{"nativeSrc":"23430:39:53","nodeType":"YulVariableDeclaration","src":"23430:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23454:9:53","nodeType":"YulIdentifier","src":"23454:9:53"},{"kind":"number","nativeSrc":"23465:2:53","nodeType":"YulLiteral","src":"23465:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23450:3:53","nodeType":"YulIdentifier","src":"23450:3:53"},"nativeSrc":"23450:18:53","nodeType":"YulFunctionCall","src":"23450:18:53"}],"functionName":{"name":"mload","nativeSrc":"23444:5:53","nodeType":"YulIdentifier","src":"23444:5:53"},"nativeSrc":"23444:25:53","nodeType":"YulFunctionCall","src":"23444:25:53"},"variables":[{"name":"offset","nativeSrc":"23434:6:53","nodeType":"YulTypedName","src":"23434:6:53","type":""}]},{"body":{"nativeSrc":"23516:83:53","nodeType":"YulBlock","src":"23516:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"23518:77:53","nodeType":"YulIdentifier","src":"23518:77:53"},"nativeSrc":"23518:79:53","nodeType":"YulFunctionCall","src":"23518:79:53"},"nativeSrc":"23518:79:53","nodeType":"YulExpressionStatement","src":"23518:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"23488:6:53","nodeType":"YulIdentifier","src":"23488:6:53"},{"kind":"number","nativeSrc":"23496:18:53","nodeType":"YulLiteral","src":"23496:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23485:2:53","nodeType":"YulIdentifier","src":"23485:2:53"},"nativeSrc":"23485:30:53","nodeType":"YulFunctionCall","src":"23485:30:53"},"nativeSrc":"23482:117:53","nodeType":"YulIf","src":"23482:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23624:5:53","nodeType":"YulIdentifier","src":"23624:5:53"},{"kind":"number","nativeSrc":"23631:4:53","nodeType":"YulLiteral","src":"23631:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23620:3:53","nodeType":"YulIdentifier","src":"23620:3:53"},"nativeSrc":"23620:16:53","nodeType":"YulFunctionCall","src":"23620:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23683:9:53","nodeType":"YulIdentifier","src":"23683:9:53"},{"name":"offset","nativeSrc":"23694:6:53","nodeType":"YulIdentifier","src":"23694:6:53"}],"functionName":{"name":"add","nativeSrc":"23679:3:53","nodeType":"YulIdentifier","src":"23679:3:53"},"nativeSrc":"23679:22:53","nodeType":"YulFunctionCall","src":"23679:22:53"},{"name":"end","nativeSrc":"23703:3:53","nodeType":"YulIdentifier","src":"23703:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"23638:40:53","nodeType":"YulIdentifier","src":"23638:40:53"},"nativeSrc":"23638:69:53","nodeType":"YulFunctionCall","src":"23638:69:53"}],"functionName":{"name":"mstore","nativeSrc":"23613:6:53","nodeType":"YulIdentifier","src":"23613:6:53"},"nativeSrc":"23613:95:53","nodeType":"YulFunctionCall","src":"23613:95:53"},"nativeSrc":"23613:95:53","nodeType":"YulExpressionStatement","src":"23613:95:53"}]}]},"name":"abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory","nativeSrc":"22772:954:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22846:9:53","nodeType":"YulTypedName","src":"22846:9:53","type":""},{"name":"end","nativeSrc":"22857:3:53","nodeType":"YulTypedName","src":"22857:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22865:5:53","nodeType":"YulTypedName","src":"22865:5:53","type":""}],"src":"22772:954:53"},{"body":{"nativeSrc":"23842:460:53","nodeType":"YulBlock","src":"23842:460:53","statements":[{"body":{"nativeSrc":"23888:83:53","nodeType":"YulBlock","src":"23888:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"23890:77:53","nodeType":"YulIdentifier","src":"23890:77:53"},"nativeSrc":"23890:79:53","nodeType":"YulFunctionCall","src":"23890:79:53"},"nativeSrc":"23890:79:53","nodeType":"YulExpressionStatement","src":"23890:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23863:7:53","nodeType":"YulIdentifier","src":"23863:7:53"},{"name":"headStart","nativeSrc":"23872:9:53","nodeType":"YulIdentifier","src":"23872:9:53"}],"functionName":{"name":"sub","nativeSrc":"23859:3:53","nodeType":"YulIdentifier","src":"23859:3:53"},"nativeSrc":"23859:23:53","nodeType":"YulFunctionCall","src":"23859:23:53"},{"kind":"number","nativeSrc":"23884:2:53","nodeType":"YulLiteral","src":"23884:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23855:3:53","nodeType":"YulIdentifier","src":"23855:3:53"},"nativeSrc":"23855:32:53","nodeType":"YulFunctionCall","src":"23855:32:53"},"nativeSrc":"23852:119:53","nodeType":"YulIf","src":"23852:119:53"},{"nativeSrc":"23981:314:53","nodeType":"YulBlock","src":"23981:314:53","statements":[{"nativeSrc":"23996:38:53","nodeType":"YulVariableDeclaration","src":"23996:38:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24020:9:53","nodeType":"YulIdentifier","src":"24020:9:53"},{"kind":"number","nativeSrc":"24031:1:53","nodeType":"YulLiteral","src":"24031:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24016:3:53","nodeType":"YulIdentifier","src":"24016:3:53"},"nativeSrc":"24016:17:53","nodeType":"YulFunctionCall","src":"24016:17:53"}],"functionName":{"name":"mload","nativeSrc":"24010:5:53","nodeType":"YulIdentifier","src":"24010:5:53"},"nativeSrc":"24010:24:53","nodeType":"YulFunctionCall","src":"24010:24:53"},"variables":[{"name":"offset","nativeSrc":"24000:6:53","nodeType":"YulTypedName","src":"24000:6:53","type":""}]},{"body":{"nativeSrc":"24081:83:53","nodeType":"YulBlock","src":"24081:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"24083:77:53","nodeType":"YulIdentifier","src":"24083:77:53"},"nativeSrc":"24083:79:53","nodeType":"YulFunctionCall","src":"24083:79:53"},"nativeSrc":"24083:79:53","nodeType":"YulExpressionStatement","src":"24083:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24053:6:53","nodeType":"YulIdentifier","src":"24053:6:53"},{"kind":"number","nativeSrc":"24061:18:53","nodeType":"YulLiteral","src":"24061:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24050:2:53","nodeType":"YulIdentifier","src":"24050:2:53"},"nativeSrc":"24050:30:53","nodeType":"YulFunctionCall","src":"24050:30:53"},"nativeSrc":"24047:117:53","nodeType":"YulIf","src":"24047:117:53"},{"nativeSrc":"24178:107:53","nodeType":"YulAssignment","src":"24178:107:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24257:9:53","nodeType":"YulIdentifier","src":"24257:9:53"},{"name":"offset","nativeSrc":"24268:6:53","nodeType":"YulIdentifier","src":"24268:6:53"}],"functionName":{"name":"add","nativeSrc":"24253:3:53","nodeType":"YulIdentifier","src":"24253:3:53"},"nativeSrc":"24253:22:53","nodeType":"YulFunctionCall","src":"24253:22:53"},{"name":"dataEnd","nativeSrc":"24277:7:53","nodeType":"YulIdentifier","src":"24277:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory","nativeSrc":"24188:64:53","nodeType":"YulIdentifier","src":"24188:64:53"},"nativeSrc":"24188:97:53","nodeType":"YulFunctionCall","src":"24188:97:53"},"variableNames":[{"name":"value0","nativeSrc":"24178:6:53","nodeType":"YulIdentifier","src":"24178:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory","nativeSrc":"23732:570:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23812:9:53","nodeType":"YulTypedName","src":"23812:9:53","type":""},{"name":"dataEnd","nativeSrc":"23823:7:53","nodeType":"YulTypedName","src":"23823:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23835:6:53","nodeType":"YulTypedName","src":"23835:6:53","type":""}],"src":"23732:570:53"},{"body":{"nativeSrc":"24366:40:53","nodeType":"YulBlock","src":"24366:40:53","statements":[{"nativeSrc":"24377:22:53","nodeType":"YulAssignment","src":"24377:22:53","value":{"arguments":[{"name":"value","nativeSrc":"24393:5:53","nodeType":"YulIdentifier","src":"24393:5:53"}],"functionName":{"name":"mload","nativeSrc":"24387:5:53","nodeType":"YulIdentifier","src":"24387:5:53"},"nativeSrc":"24387:12:53","nodeType":"YulFunctionCall","src":"24387:12:53"},"variableNames":[{"name":"length","nativeSrc":"24377:6:53","nodeType":"YulIdentifier","src":"24377:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"24308:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24349:5:53","nodeType":"YulTypedName","src":"24349:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"24359:6:53","nodeType":"YulTypedName","src":"24359:6:53","type":""}],"src":"24308:98:53"},{"body":{"nativeSrc":"24507:73:53","nodeType":"YulBlock","src":"24507:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"24524:3:53","nodeType":"YulIdentifier","src":"24524:3:53"},{"name":"length","nativeSrc":"24529:6:53","nodeType":"YulIdentifier","src":"24529:6:53"}],"functionName":{"name":"mstore","nativeSrc":"24517:6:53","nodeType":"YulIdentifier","src":"24517:6:53"},"nativeSrc":"24517:19:53","nodeType":"YulFunctionCall","src":"24517:19:53"},"nativeSrc":"24517:19:53","nodeType":"YulExpressionStatement","src":"24517:19:53"},{"nativeSrc":"24545:29:53","nodeType":"YulAssignment","src":"24545:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"24564:3:53","nodeType":"YulIdentifier","src":"24564:3:53"},{"kind":"number","nativeSrc":"24569:4:53","nodeType":"YulLiteral","src":"24569:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24560:3:53","nodeType":"YulIdentifier","src":"24560:3:53"},"nativeSrc":"24560:14:53","nodeType":"YulFunctionCall","src":"24560:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"24545:11:53","nodeType":"YulIdentifier","src":"24545:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"24412:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"24479:3:53","nodeType":"YulTypedName","src":"24479:3:53","type":""},{"name":"length","nativeSrc":"24484:6:53","nodeType":"YulTypedName","src":"24484:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"24495:11:53","nodeType":"YulTypedName","src":"24495:11:53","type":""}],"src":"24412:168:53"},{"body":{"nativeSrc":"24676:283:53","nodeType":"YulBlock","src":"24676:283:53","statements":[{"nativeSrc":"24686:52:53","nodeType":"YulVariableDeclaration","src":"24686:52:53","value":{"arguments":[{"name":"value","nativeSrc":"24732:5:53","nodeType":"YulIdentifier","src":"24732:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"24700:31:53","nodeType":"YulIdentifier","src":"24700:31:53"},"nativeSrc":"24700:38:53","nodeType":"YulFunctionCall","src":"24700:38:53"},"variables":[{"name":"length","nativeSrc":"24690:6:53","nodeType":"YulTypedName","src":"24690:6:53","type":""}]},{"nativeSrc":"24747:77:53","nodeType":"YulAssignment","src":"24747:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"24812:3:53","nodeType":"YulIdentifier","src":"24812:3:53"},{"name":"length","nativeSrc":"24817:6:53","nodeType":"YulIdentifier","src":"24817:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"24754:57:53","nodeType":"YulIdentifier","src":"24754:57:53"},"nativeSrc":"24754:70:53","nodeType":"YulFunctionCall","src":"24754:70:53"},"variableNames":[{"name":"pos","nativeSrc":"24747:3:53","nodeType":"YulIdentifier","src":"24747:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24872:5:53","nodeType":"YulIdentifier","src":"24872:5:53"},{"kind":"number","nativeSrc":"24879:4:53","nodeType":"YulLiteral","src":"24879:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24868:3:53","nodeType":"YulIdentifier","src":"24868:3:53"},"nativeSrc":"24868:16:53","nodeType":"YulFunctionCall","src":"24868:16:53"},{"name":"pos","nativeSrc":"24886:3:53","nodeType":"YulIdentifier","src":"24886:3:53"},{"name":"length","nativeSrc":"24891:6:53","nodeType":"YulIdentifier","src":"24891:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"24833:34:53","nodeType":"YulIdentifier","src":"24833:34:53"},"nativeSrc":"24833:65:53","nodeType":"YulFunctionCall","src":"24833:65:53"},"nativeSrc":"24833:65:53","nodeType":"YulExpressionStatement","src":"24833:65:53"},{"nativeSrc":"24907:46:53","nodeType":"YulAssignment","src":"24907:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"24918:3:53","nodeType":"YulIdentifier","src":"24918:3:53"},{"arguments":[{"name":"length","nativeSrc":"24945:6:53","nodeType":"YulIdentifier","src":"24945:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"24923:21:53","nodeType":"YulIdentifier","src":"24923:21:53"},"nativeSrc":"24923:29:53","nodeType":"YulFunctionCall","src":"24923:29:53"}],"functionName":{"name":"add","nativeSrc":"24914:3:53","nodeType":"YulIdentifier","src":"24914:3:53"},"nativeSrc":"24914:39:53","nodeType":"YulFunctionCall","src":"24914:39:53"},"variableNames":[{"name":"end","nativeSrc":"24907:3:53","nodeType":"YulIdentifier","src":"24907:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"24586:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24657:5:53","nodeType":"YulTypedName","src":"24657:5:53","type":""},{"name":"pos","nativeSrc":"24664:3:53","nodeType":"YulTypedName","src":"24664:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24672:3:53","nodeType":"YulTypedName","src":"24672:3:53","type":""}],"src":"24586:373:53"},{"body":{"nativeSrc":"25193:523:53","nodeType":"YulBlock","src":"25193:523:53","statements":[{"nativeSrc":"25203:27:53","nodeType":"YulAssignment","src":"25203:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"25215:9:53","nodeType":"YulIdentifier","src":"25215:9:53"},{"kind":"number","nativeSrc":"25226:3:53","nodeType":"YulLiteral","src":"25226:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"25211:3:53","nodeType":"YulIdentifier","src":"25211:3:53"},"nativeSrc":"25211:19:53","nodeType":"YulFunctionCall","src":"25211:19:53"},"variableNames":[{"name":"tail","nativeSrc":"25203:4:53","nodeType":"YulIdentifier","src":"25203:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25284:6:53","nodeType":"YulIdentifier","src":"25284:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25297:9:53","nodeType":"YulIdentifier","src":"25297:9:53"},{"kind":"number","nativeSrc":"25308:1:53","nodeType":"YulLiteral","src":"25308:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25293:3:53","nodeType":"YulIdentifier","src":"25293:3:53"},"nativeSrc":"25293:17:53","nodeType":"YulFunctionCall","src":"25293:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25240:43:53","nodeType":"YulIdentifier","src":"25240:43:53"},"nativeSrc":"25240:71:53","nodeType":"YulFunctionCall","src":"25240:71:53"},"nativeSrc":"25240:71:53","nodeType":"YulExpressionStatement","src":"25240:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"25365:6:53","nodeType":"YulIdentifier","src":"25365:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25378:9:53","nodeType":"YulIdentifier","src":"25378:9:53"},{"kind":"number","nativeSrc":"25389:2:53","nodeType":"YulLiteral","src":"25389:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25374:3:53","nodeType":"YulIdentifier","src":"25374:3:53"},"nativeSrc":"25374:18:53","nodeType":"YulFunctionCall","src":"25374:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25321:43:53","nodeType":"YulIdentifier","src":"25321:43:53"},"nativeSrc":"25321:72:53","nodeType":"YulFunctionCall","src":"25321:72:53"},"nativeSrc":"25321:72:53","nodeType":"YulExpressionStatement","src":"25321:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"25447:6:53","nodeType":"YulIdentifier","src":"25447:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25460:9:53","nodeType":"YulIdentifier","src":"25460:9:53"},{"kind":"number","nativeSrc":"25471:2:53","nodeType":"YulLiteral","src":"25471:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25456:3:53","nodeType":"YulIdentifier","src":"25456:3:53"},"nativeSrc":"25456:18:53","nodeType":"YulFunctionCall","src":"25456:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"25403:43:53","nodeType":"YulIdentifier","src":"25403:43:53"},"nativeSrc":"25403:72:53","nodeType":"YulFunctionCall","src":"25403:72:53"},"nativeSrc":"25403:72:53","nodeType":"YulExpressionStatement","src":"25403:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"25529:6:53","nodeType":"YulIdentifier","src":"25529:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25542:9:53","nodeType":"YulIdentifier","src":"25542:9:53"},{"kind":"number","nativeSrc":"25553:2:53","nodeType":"YulLiteral","src":"25553:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25538:3:53","nodeType":"YulIdentifier","src":"25538:3:53"},"nativeSrc":"25538:18:53","nodeType":"YulFunctionCall","src":"25538:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"25485:43:53","nodeType":"YulIdentifier","src":"25485:43:53"},"nativeSrc":"25485:72:53","nodeType":"YulFunctionCall","src":"25485:72:53"},"nativeSrc":"25485:72:53","nodeType":"YulExpressionStatement","src":"25485:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25578:9:53","nodeType":"YulIdentifier","src":"25578:9:53"},{"kind":"number","nativeSrc":"25589:3:53","nodeType":"YulLiteral","src":"25589:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25574:3:53","nodeType":"YulIdentifier","src":"25574:3:53"},"nativeSrc":"25574:19:53","nodeType":"YulFunctionCall","src":"25574:19:53"},{"arguments":[{"name":"tail","nativeSrc":"25599:4:53","nodeType":"YulIdentifier","src":"25599:4:53"},{"name":"headStart","nativeSrc":"25605:9:53","nodeType":"YulIdentifier","src":"25605:9:53"}],"functionName":{"name":"sub","nativeSrc":"25595:3:53","nodeType":"YulIdentifier","src":"25595:3:53"},"nativeSrc":"25595:20:53","nodeType":"YulFunctionCall","src":"25595:20:53"}],"functionName":{"name":"mstore","nativeSrc":"25567:6:53","nodeType":"YulIdentifier","src":"25567:6:53"},"nativeSrc":"25567:49:53","nodeType":"YulFunctionCall","src":"25567:49:53"},"nativeSrc":"25567:49:53","nodeType":"YulExpressionStatement","src":"25567:49:53"},{"nativeSrc":"25625:84:53","nodeType":"YulAssignment","src":"25625:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"25695:6:53","nodeType":"YulIdentifier","src":"25695:6:53"},{"name":"tail","nativeSrc":"25704:4:53","nodeType":"YulIdentifier","src":"25704:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"25633:61:53","nodeType":"YulIdentifier","src":"25633:61:53"},"nativeSrc":"25633:76:53","nodeType":"YulFunctionCall","src":"25633:76:53"},"variableNames":[{"name":"tail","nativeSrc":"25625:4:53","nodeType":"YulIdentifier","src":"25625:4:53"}]}]},"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":"24965:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25133:9:53","nodeType":"YulTypedName","src":"25133:9:53","type":""},{"name":"value4","nativeSrc":"25145:6:53","nodeType":"YulTypedName","src":"25145:6:53","type":""},{"name":"value3","nativeSrc":"25153:6:53","nodeType":"YulTypedName","src":"25153:6:53","type":""},{"name":"value2","nativeSrc":"25161:6:53","nodeType":"YulTypedName","src":"25161:6:53","type":""},{"name":"value1","nativeSrc":"25169:6:53","nodeType":"YulTypedName","src":"25169:6:53","type":""},{"name":"value0","nativeSrc":"25177:6:53","nodeType":"YulTypedName","src":"25177:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25188:4:53","nodeType":"YulTypedName","src":"25188:4:53","type":""}],"src":"24965:751:53"},{"body":{"nativeSrc":"25799:274:53","nodeType":"YulBlock","src":"25799:274:53","statements":[{"body":{"nativeSrc":"25845:83:53","nodeType":"YulBlock","src":"25845:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"25847:77:53","nodeType":"YulIdentifier","src":"25847:77:53"},"nativeSrc":"25847:79:53","nodeType":"YulFunctionCall","src":"25847:79:53"},"nativeSrc":"25847:79:53","nodeType":"YulExpressionStatement","src":"25847:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25820:7:53","nodeType":"YulIdentifier","src":"25820:7:53"},{"name":"headStart","nativeSrc":"25829:9:53","nodeType":"YulIdentifier","src":"25829:9:53"}],"functionName":{"name":"sub","nativeSrc":"25816:3:53","nodeType":"YulIdentifier","src":"25816:3:53"},"nativeSrc":"25816:23:53","nodeType":"YulFunctionCall","src":"25816:23:53"},{"kind":"number","nativeSrc":"25841:2:53","nodeType":"YulLiteral","src":"25841:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25812:3:53","nodeType":"YulIdentifier","src":"25812:3:53"},"nativeSrc":"25812:32:53","nodeType":"YulFunctionCall","src":"25812:32:53"},"nativeSrc":"25809:119:53","nodeType":"YulIf","src":"25809:119:53"},{"nativeSrc":"25938:128:53","nodeType":"YulBlock","src":"25938:128:53","statements":[{"nativeSrc":"25953:15:53","nodeType":"YulVariableDeclaration","src":"25953:15:53","value":{"kind":"number","nativeSrc":"25967:1:53","nodeType":"YulLiteral","src":"25967:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"25957:6:53","nodeType":"YulTypedName","src":"25957:6:53","type":""}]},{"nativeSrc":"25982:74:53","nodeType":"YulAssignment","src":"25982:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26028:9:53","nodeType":"YulIdentifier","src":"26028:9:53"},{"name":"offset","nativeSrc":"26039:6:53","nodeType":"YulIdentifier","src":"26039:6:53"}],"functionName":{"name":"add","nativeSrc":"26024:3:53","nodeType":"YulIdentifier","src":"26024:3:53"},"nativeSrc":"26024:22:53","nodeType":"YulFunctionCall","src":"26024:22:53"},{"name":"dataEnd","nativeSrc":"26048:7:53","nodeType":"YulIdentifier","src":"26048:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"25992:31:53","nodeType":"YulIdentifier","src":"25992:31:53"},"nativeSrc":"25992:64:53","nodeType":"YulFunctionCall","src":"25992:64:53"},"variableNames":[{"name":"value0","nativeSrc":"25982:6:53","nodeType":"YulIdentifier","src":"25982:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"25722:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25769:9:53","nodeType":"YulTypedName","src":"25769:9:53","type":""},{"name":"dataEnd","nativeSrc":"25780:7:53","nodeType":"YulTypedName","src":"25780:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25792:6:53","nodeType":"YulTypedName","src":"25792:6:53","type":""}],"src":"25722:351:53"},{"body":{"nativeSrc":"26168:28:53","nodeType":"YulBlock","src":"26168:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26185:1:53","nodeType":"YulLiteral","src":"26185:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26188:1:53","nodeType":"YulLiteral","src":"26188:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26178:6:53","nodeType":"YulIdentifier","src":"26178:6:53"},"nativeSrc":"26178:12:53","nodeType":"YulFunctionCall","src":"26178:12:53"},"nativeSrc":"26178:12:53","nodeType":"YulExpressionStatement","src":"26178:12:53"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"26079:117:53","nodeType":"YulFunctionDefinition","src":"26079:117:53"},{"body":{"nativeSrc":"26291:28:53","nodeType":"YulBlock","src":"26291:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26308:1:53","nodeType":"YulLiteral","src":"26308:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26311:1:53","nodeType":"YulLiteral","src":"26311:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26301:6:53","nodeType":"YulIdentifier","src":"26301:6:53"},"nativeSrc":"26301:12:53","nodeType":"YulFunctionCall","src":"26301:12:53"},"nativeSrc":"26301:12:53","nodeType":"YulExpressionStatement","src":"26301:12:53"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"26202:117:53","nodeType":"YulFunctionDefinition","src":"26202:117:53"},{"body":{"nativeSrc":"26414:28:53","nodeType":"YulBlock","src":"26414:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26431:1:53","nodeType":"YulLiteral","src":"26431:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26434:1:53","nodeType":"YulLiteral","src":"26434:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26424:6:53","nodeType":"YulIdentifier","src":"26424:6:53"},"nativeSrc":"26424:12:53","nodeType":"YulFunctionCall","src":"26424:12:53"},"nativeSrc":"26424:12:53","nodeType":"YulExpressionStatement","src":"26424:12:53"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"26325:117:53","nodeType":"YulFunctionDefinition","src":"26325:117:53"},{"body":{"nativeSrc":"26538:634:53","nodeType":"YulBlock","src":"26538:634:53","statements":[{"nativeSrc":"26548:51:53","nodeType":"YulVariableDeclaration","src":"26548:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"26587:11:53","nodeType":"YulIdentifier","src":"26587:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"26574:12:53","nodeType":"YulIdentifier","src":"26574:12:53"},"nativeSrc":"26574:25:53","nodeType":"YulFunctionCall","src":"26574:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"26552:18:53","nodeType":"YulTypedName","src":"26552:18:53","type":""}]},{"body":{"nativeSrc":"26693:83:53","nodeType":"YulBlock","src":"26693:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"26695:77:53","nodeType":"YulIdentifier","src":"26695:77:53"},"nativeSrc":"26695:79:53","nodeType":"YulFunctionCall","src":"26695:79:53"},"nativeSrc":"26695:79:53","nodeType":"YulExpressionStatement","src":"26695:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"26622:18:53","nodeType":"YulIdentifier","src":"26622:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"26650:12:53","nodeType":"YulIdentifier","src":"26650:12:53"},"nativeSrc":"26650:14:53","nodeType":"YulFunctionCall","src":"26650:14:53"},{"name":"base_ref","nativeSrc":"26666:8:53","nodeType":"YulIdentifier","src":"26666:8:53"}],"functionName":{"name":"sub","nativeSrc":"26646:3:53","nodeType":"YulIdentifier","src":"26646:3:53"},"nativeSrc":"26646:29:53","nodeType":"YulFunctionCall","src":"26646:29:53"},{"arguments":[{"kind":"number","nativeSrc":"26681:4:53","nodeType":"YulLiteral","src":"26681:4:53","type":"","value":"0x20"},{"kind":"number","nativeSrc":"26687:1:53","nodeType":"YulLiteral","src":"26687:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26677:3:53","nodeType":"YulIdentifier","src":"26677:3:53"},"nativeSrc":"26677:12:53","nodeType":"YulFunctionCall","src":"26677:12:53"}],"functionName":{"name":"sub","nativeSrc":"26642:3:53","nodeType":"YulIdentifier","src":"26642:3:53"},"nativeSrc":"26642:48:53","nodeType":"YulFunctionCall","src":"26642:48:53"}],"functionName":{"name":"slt","nativeSrc":"26618:3:53","nodeType":"YulIdentifier","src":"26618:3:53"},"nativeSrc":"26618:73:53","nodeType":"YulFunctionCall","src":"26618:73:53"}],"functionName":{"name":"iszero","nativeSrc":"26611:6:53","nodeType":"YulIdentifier","src":"26611:6:53"},"nativeSrc":"26611:81:53","nodeType":"YulFunctionCall","src":"26611:81:53"},"nativeSrc":"26608:168:53","nodeType":"YulIf","src":"26608:168:53"},{"nativeSrc":"26785:41:53","nodeType":"YulAssignment","src":"26785:41:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"26797:8:53","nodeType":"YulIdentifier","src":"26797:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"26807:18:53","nodeType":"YulIdentifier","src":"26807:18:53"}],"functionName":{"name":"add","nativeSrc":"26793:3:53","nodeType":"YulIdentifier","src":"26793:3:53"},"nativeSrc":"26793:33:53","nodeType":"YulFunctionCall","src":"26793:33:53"},"variableNames":[{"name":"addr","nativeSrc":"26785:4:53","nodeType":"YulIdentifier","src":"26785:4:53"}]},{"nativeSrc":"26836:28:53","nodeType":"YulAssignment","src":"26836:28:53","value":{"arguments":[{"name":"addr","nativeSrc":"26859:4:53","nodeType":"YulIdentifier","src":"26859:4:53"}],"functionName":{"name":"calldataload","nativeSrc":"26846:12:53","nodeType":"YulIdentifier","src":"26846:12:53"},"nativeSrc":"26846:18:53","nodeType":"YulFunctionCall","src":"26846:18:53"},"variableNames":[{"name":"length","nativeSrc":"26836:6:53","nodeType":"YulIdentifier","src":"26836:6:53"}]},{"body":{"nativeSrc":"26907:83:53","nodeType":"YulBlock","src":"26907:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"26909:77:53","nodeType":"YulIdentifier","src":"26909:77:53"},"nativeSrc":"26909:79:53","nodeType":"YulFunctionCall","src":"26909:79:53"},"nativeSrc":"26909:79:53","nodeType":"YulExpressionStatement","src":"26909:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"26879:6:53","nodeType":"YulIdentifier","src":"26879:6:53"},{"kind":"number","nativeSrc":"26887:18:53","nodeType":"YulLiteral","src":"26887:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26876:2:53","nodeType":"YulIdentifier","src":"26876:2:53"},"nativeSrc":"26876:30:53","nodeType":"YulFunctionCall","src":"26876:30:53"},"nativeSrc":"26873:117:53","nodeType":"YulIf","src":"26873:117:53"},{"nativeSrc":"26999:21:53","nodeType":"YulAssignment","src":"26999:21:53","value":{"arguments":[{"name":"addr","nativeSrc":"27011:4:53","nodeType":"YulIdentifier","src":"27011:4:53"},{"kind":"number","nativeSrc":"27017:2:53","nodeType":"YulLiteral","src":"27017:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27007:3:53","nodeType":"YulIdentifier","src":"27007:3:53"},"nativeSrc":"27007:13:53","nodeType":"YulFunctionCall","src":"27007:13:53"},"variableNames":[{"name":"addr","nativeSrc":"26999:4:53","nodeType":"YulIdentifier","src":"26999:4:53"}]},{"body":{"nativeSrc":"27082:83:53","nodeType":"YulBlock","src":"27082:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"27084:77:53","nodeType":"YulIdentifier","src":"27084:77:53"},"nativeSrc":"27084:79:53","nodeType":"YulFunctionCall","src":"27084:79:53"},"nativeSrc":"27084:79:53","nodeType":"YulExpressionStatement","src":"27084:79:53"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"27036:4:53","nodeType":"YulIdentifier","src":"27036:4:53"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"27046:12:53","nodeType":"YulIdentifier","src":"27046:12:53"},"nativeSrc":"27046:14:53","nodeType":"YulFunctionCall","src":"27046:14:53"},{"arguments":[{"name":"length","nativeSrc":"27066:6:53","nodeType":"YulIdentifier","src":"27066:6:53"},{"kind":"number","nativeSrc":"27074:4:53","nodeType":"YulLiteral","src":"27074:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"27062:3:53","nodeType":"YulIdentifier","src":"27062:3:53"},"nativeSrc":"27062:17:53","nodeType":"YulFunctionCall","src":"27062:17:53"}],"functionName":{"name":"sub","nativeSrc":"27042:3:53","nodeType":"YulIdentifier","src":"27042:3:53"},"nativeSrc":"27042:38:53","nodeType":"YulFunctionCall","src":"27042:38:53"}],"functionName":{"name":"sgt","nativeSrc":"27032:3:53","nodeType":"YulIdentifier","src":"27032:3:53"},"nativeSrc":"27032:49:53","nodeType":"YulFunctionCall","src":"27032:49:53"},"nativeSrc":"27029:136:53","nodeType":"YulIf","src":"27029:136:53"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"26448:724:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"26499:8:53","nodeType":"YulTypedName","src":"26499:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"26509:11:53","nodeType":"YulTypedName","src":"26509:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"26525:4:53","nodeType":"YulTypedName","src":"26525:4:53","type":""},{"name":"length","nativeSrc":"26531:6:53","nodeType":"YulTypedName","src":"26531:6:53","type":""}],"src":"26448:724:53"},{"body":{"nativeSrc":"27206:152:53","nodeType":"YulBlock","src":"27206:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27223:1:53","nodeType":"YulLiteral","src":"27223:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27226:77:53","nodeType":"YulLiteral","src":"27226:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"27216:6:53","nodeType":"YulIdentifier","src":"27216:6:53"},"nativeSrc":"27216:88:53","nodeType":"YulFunctionCall","src":"27216:88:53"},"nativeSrc":"27216:88:53","nodeType":"YulExpressionStatement","src":"27216:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27320:1:53","nodeType":"YulLiteral","src":"27320:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"27323:4:53","nodeType":"YulLiteral","src":"27323:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"27313:6:53","nodeType":"YulIdentifier","src":"27313:6:53"},"nativeSrc":"27313:15:53","nodeType":"YulFunctionCall","src":"27313:15:53"},"nativeSrc":"27313:15:53","nodeType":"YulExpressionStatement","src":"27313:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27344:1:53","nodeType":"YulLiteral","src":"27344:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27347:4:53","nodeType":"YulLiteral","src":"27347:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"27337:6:53","nodeType":"YulIdentifier","src":"27337:6:53"},"nativeSrc":"27337:15:53","nodeType":"YulFunctionCall","src":"27337:15:53"},"nativeSrc":"27337:15:53","nodeType":"YulExpressionStatement","src":"27337:15:53"}]},"name":"panic_error_0x11","nativeSrc":"27178:180:53","nodeType":"YulFunctionDefinition","src":"27178:180:53"},{"body":{"nativeSrc":"27408:147:53","nodeType":"YulBlock","src":"27408:147:53","statements":[{"nativeSrc":"27418:25:53","nodeType":"YulAssignment","src":"27418:25:53","value":{"arguments":[{"name":"x","nativeSrc":"27441:1:53","nodeType":"YulIdentifier","src":"27441:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27423:17:53","nodeType":"YulIdentifier","src":"27423:17:53"},"nativeSrc":"27423:20:53","nodeType":"YulFunctionCall","src":"27423:20:53"},"variableNames":[{"name":"x","nativeSrc":"27418:1:53","nodeType":"YulIdentifier","src":"27418:1:53"}]},{"nativeSrc":"27452:25:53","nodeType":"YulAssignment","src":"27452:25:53","value":{"arguments":[{"name":"y","nativeSrc":"27475:1:53","nodeType":"YulIdentifier","src":"27475:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27457:17:53","nodeType":"YulIdentifier","src":"27457:17:53"},"nativeSrc":"27457:20:53","nodeType":"YulFunctionCall","src":"27457:20:53"},"variableNames":[{"name":"y","nativeSrc":"27452:1:53","nodeType":"YulIdentifier","src":"27452:1:53"}]},{"nativeSrc":"27486:16:53","nodeType":"YulAssignment","src":"27486:16:53","value":{"arguments":[{"name":"x","nativeSrc":"27497:1:53","nodeType":"YulIdentifier","src":"27497:1:53"},{"name":"y","nativeSrc":"27500:1:53","nodeType":"YulIdentifier","src":"27500:1:53"}],"functionName":{"name":"add","nativeSrc":"27493:3:53","nodeType":"YulIdentifier","src":"27493:3:53"},"nativeSrc":"27493:9:53","nodeType":"YulFunctionCall","src":"27493:9:53"},"variableNames":[{"name":"sum","nativeSrc":"27486:3:53","nodeType":"YulIdentifier","src":"27486:3:53"}]},{"body":{"nativeSrc":"27526:22:53","nodeType":"YulBlock","src":"27526:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27528:16:53","nodeType":"YulIdentifier","src":"27528:16:53"},"nativeSrc":"27528:18:53","nodeType":"YulFunctionCall","src":"27528:18:53"},"nativeSrc":"27528:18:53","nodeType":"YulExpressionStatement","src":"27528:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"27518:1:53","nodeType":"YulIdentifier","src":"27518:1:53"},{"name":"sum","nativeSrc":"27521:3:53","nodeType":"YulIdentifier","src":"27521:3:53"}],"functionName":{"name":"gt","nativeSrc":"27515:2:53","nodeType":"YulIdentifier","src":"27515:2:53"},"nativeSrc":"27515:10:53","nodeType":"YulFunctionCall","src":"27515:10:53"},"nativeSrc":"27512:36:53","nodeType":"YulIf","src":"27512:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"27364:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27395:1:53","nodeType":"YulTypedName","src":"27395:1:53","type":""},{"name":"y","nativeSrc":"27398:1:53","nodeType":"YulTypedName","src":"27398:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"27404:3:53","nodeType":"YulTypedName","src":"27404:3:53","type":""}],"src":"27364:191:53"},{"body":{"nativeSrc":"27715:288:53","nodeType":"YulBlock","src":"27715:288:53","statements":[{"nativeSrc":"27725:26:53","nodeType":"YulAssignment","src":"27725:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"27737:9:53","nodeType":"YulIdentifier","src":"27737:9:53"},{"kind":"number","nativeSrc":"27748:2:53","nodeType":"YulLiteral","src":"27748:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27733:3:53","nodeType":"YulIdentifier","src":"27733:3:53"},"nativeSrc":"27733:18:53","nodeType":"YulFunctionCall","src":"27733:18:53"},"variableNames":[{"name":"tail","nativeSrc":"27725:4:53","nodeType":"YulIdentifier","src":"27725:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"27805:6:53","nodeType":"YulIdentifier","src":"27805:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27818:9:53","nodeType":"YulIdentifier","src":"27818:9:53"},{"kind":"number","nativeSrc":"27829:1:53","nodeType":"YulLiteral","src":"27829:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27814:3:53","nodeType":"YulIdentifier","src":"27814:3:53"},"nativeSrc":"27814:17:53","nodeType":"YulFunctionCall","src":"27814:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"27761:43:53","nodeType":"YulIdentifier","src":"27761:43:53"},"nativeSrc":"27761:71:53","nodeType":"YulFunctionCall","src":"27761:71:53"},"nativeSrc":"27761:71:53","nodeType":"YulExpressionStatement","src":"27761:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"27886:6:53","nodeType":"YulIdentifier","src":"27886:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27899:9:53","nodeType":"YulIdentifier","src":"27899:9:53"},{"kind":"number","nativeSrc":"27910:2:53","nodeType":"YulLiteral","src":"27910:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27895:3:53","nodeType":"YulIdentifier","src":"27895:3:53"},"nativeSrc":"27895:18:53","nodeType":"YulFunctionCall","src":"27895:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"27842:43:53","nodeType":"YulIdentifier","src":"27842:43:53"},"nativeSrc":"27842:72:53","nodeType":"YulFunctionCall","src":"27842:72:53"},"nativeSrc":"27842:72:53","nodeType":"YulExpressionStatement","src":"27842:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"27968:6:53","nodeType":"YulIdentifier","src":"27968:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27981:9:53","nodeType":"YulIdentifier","src":"27981:9:53"},{"kind":"number","nativeSrc":"27992:2:53","nodeType":"YulLiteral","src":"27992:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27977:3:53","nodeType":"YulIdentifier","src":"27977:3:53"},"nativeSrc":"27977:18:53","nodeType":"YulFunctionCall","src":"27977:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"27924:43:53","nodeType":"YulIdentifier","src":"27924:43:53"},"nativeSrc":"27924:72:53","nodeType":"YulFunctionCall","src":"27924:72:53"},"nativeSrc":"27924:72:53","nodeType":"YulExpressionStatement","src":"27924:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"27561:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27671:9:53","nodeType":"YulTypedName","src":"27671:9:53","type":""},{"name":"value2","nativeSrc":"27683:6:53","nodeType":"YulTypedName","src":"27683:6:53","type":""},{"name":"value1","nativeSrc":"27691:6:53","nodeType":"YulTypedName","src":"27691:6:53","type":""},{"name":"value0","nativeSrc":"27699:6:53","nodeType":"YulTypedName","src":"27699:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27710:4:53","nodeType":"YulTypedName","src":"27710:4:53","type":""}],"src":"27561:442:53"},{"body":{"nativeSrc":"28163:288:53","nodeType":"YulBlock","src":"28163:288:53","statements":[{"nativeSrc":"28173:26:53","nodeType":"YulAssignment","src":"28173:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"28185:9:53","nodeType":"YulIdentifier","src":"28185:9:53"},{"kind":"number","nativeSrc":"28196:2:53","nodeType":"YulLiteral","src":"28196:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28181:3:53","nodeType":"YulIdentifier","src":"28181:3:53"},"nativeSrc":"28181:18:53","nodeType":"YulFunctionCall","src":"28181:18:53"},"variableNames":[{"name":"tail","nativeSrc":"28173:4:53","nodeType":"YulIdentifier","src":"28173:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28253:6:53","nodeType":"YulIdentifier","src":"28253:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28266:9:53","nodeType":"YulIdentifier","src":"28266:9:53"},{"kind":"number","nativeSrc":"28277:1:53","nodeType":"YulLiteral","src":"28277:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28262:3:53","nodeType":"YulIdentifier","src":"28262:3:53"},"nativeSrc":"28262:17:53","nodeType":"YulFunctionCall","src":"28262:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28209:43:53","nodeType":"YulIdentifier","src":"28209:43:53"},"nativeSrc":"28209:71:53","nodeType":"YulFunctionCall","src":"28209:71:53"},"nativeSrc":"28209:71:53","nodeType":"YulExpressionStatement","src":"28209:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"28334:6:53","nodeType":"YulIdentifier","src":"28334:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28347:9:53","nodeType":"YulIdentifier","src":"28347:9:53"},{"kind":"number","nativeSrc":"28358:2:53","nodeType":"YulLiteral","src":"28358:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28343:3:53","nodeType":"YulIdentifier","src":"28343:3:53"},"nativeSrc":"28343:18:53","nodeType":"YulFunctionCall","src":"28343:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28290:43:53","nodeType":"YulIdentifier","src":"28290:43:53"},"nativeSrc":"28290:72:53","nodeType":"YulFunctionCall","src":"28290:72:53"},"nativeSrc":"28290:72:53","nodeType":"YulExpressionStatement","src":"28290:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"28416:6:53","nodeType":"YulIdentifier","src":"28416:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28429:9:53","nodeType":"YulIdentifier","src":"28429:9:53"},{"kind":"number","nativeSrc":"28440:2:53","nodeType":"YulLiteral","src":"28440:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28425:3:53","nodeType":"YulIdentifier","src":"28425:3:53"},"nativeSrc":"28425:18:53","nodeType":"YulFunctionCall","src":"28425:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"28372:43:53","nodeType":"YulIdentifier","src":"28372:43:53"},"nativeSrc":"28372:72:53","nodeType":"YulFunctionCall","src":"28372:72:53"},"nativeSrc":"28372:72:53","nodeType":"YulExpressionStatement","src":"28372:72:53"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"28009:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28119:9:53","nodeType":"YulTypedName","src":"28119:9:53","type":""},{"name":"value2","nativeSrc":"28131:6:53","nodeType":"YulTypedName","src":"28131:6:53","type":""},{"name":"value1","nativeSrc":"28139:6:53","nodeType":"YulTypedName","src":"28139:6:53","type":""},{"name":"value0","nativeSrc":"28147:6:53","nodeType":"YulTypedName","src":"28147:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28158:4:53","nodeType":"YulTypedName","src":"28158:4:53","type":""}],"src":"28009:442:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\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_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\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, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value6, value7 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\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_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\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, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function 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 // struct SimpleBudget.InitPayload\n function abi_decode_t_struct$_InitPayload_$13702_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // authorized\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$13702_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$13702_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_AssetType_$13471(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_AssetType_$13471(value)\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 // struct Budget.Transfer\n function abi_decode_t_struct$_Transfer_$13482_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // assetType\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_enum$_AssetType_$13471(add(headStart, offset), end))\n\n }\n\n {\n // asset\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Transfer_$13482_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\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 // struct Budget.FungiblePayload\n function abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x20) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x20)\n\n {\n // amount\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_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_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct Budget.ERC1155Payload\n function abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // tokenId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // amount\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ERC1155Payload_$13494_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_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_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_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 revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\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_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061014e575f3560e01c80638da5cb5b116100b5578063f2fde38b1161006e578063f2fde38b14610493578063f8724aba146104af578063f9a802c3146104eb578063fa4ca9b114610527578063fe9fbb8014610563578063fee81cf41461059f57610155565b80638da5cb5b1461035d578063bc197c8114610387578063d2514e84146103c3578063f04e283e146103ff578063f1c30ec01461041b578063f23a6e611461045757610155565b806354d1f13d1161010757806354d1f13d14610265578063578bcf351461026f5780635aef467a146102ab57806361400c99146102db578063715018a614610317578063774c33ab1461032157610155565b806301ffc9a71461015757806310098ad51461019357806325692962146101cf5780634359d28a146101d9578063439fab9114610201578063451cc1911461022957610155565b3661015557005b005b348015610162575f80fd5b5061017d60048036038101906101789190611eab565b6105db565b60405161018a9190611ef0565b60405180910390f35b34801561019e575f80fd5b506101b960048036038101906101b49190611f63565b610654565b6040516101c69190611fa6565b60405180910390f35b6101d76106bf565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa9190612075565b610710565b005b34801561020c575f80fd5b5061022760048036038101906102229190612148565b61081a565b005b348015610234575f80fd5b5061024f600480360381019061024a9190612148565b61093f565b60405161025c9190611fa6565b60405180910390f35b61026d610946565b005b34801561027a575f80fd5b5061029560048036038101906102909190611f63565b61097f565b6040516102a29190611fa6565b60405180910390f35b6102c560048036038101906102c09190612148565b6109c4565b6040516102d29190611ef0565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc91906121e8565b610d34565b60405161030e9190611ef0565b60405180910390f35b61031f610d98565b005b34801561032c575f80fd5b506103476004803603810190610342919061225d565b610dab565b6040516103549190611fa6565b60405180910390f35b348015610368575f80fd5b50610371610e01565b60405161037e91906122aa565b60405180910390f35b348015610392575f80fd5b506103ad60048036038101906103a89190612318565b610e29565b6040516103ba91906123fe565b60405180910390f35b3480156103ce575f80fd5b506103e960048036038101906103e49190611f63565b610e40565b6040516103f69190611fa6565b60405180910390f35b61041960048036038101906104149190611f63565b610e98565b005b348015610426575f80fd5b50610441600480360381019061043c9190612148565b610ed6565b60405161044e9190611ef0565b60405180910390f35b348015610462575f80fd5b5061047d60048036038101906104789190612417565b6110bc565b60405161048a91906123fe565b60405180910390f35b6104ad60048036038101906104a89190611f63565b6110d1565b005b3480156104ba575f80fd5b506104d560048036038101906104d0919061225d565b6110fa565b6040516104e29190611fa6565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c919061225d565b61117c565b60405161051e9190611fa6565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190612148565b611255565b60405161055a9190611ef0565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190611f63565b611501565b6040516105969190611ef0565b60405180910390f35b3480156105aa575f80fd5b506105c560048036038101906105c09190611f63565b611590565b6040516105d29190611fa6565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061064d575061064c826115a9565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146106b6576106b1308373ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b6106b8565b475b9050919050565b5f6106c8611655565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071861165f565b818190508484905014610757576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561081357828282818110610777576107766124ad565b5b905060200201602081019061078c9190612504565b60025f8787858181106107a2576107a16124ad565b5b90506020020160208101906107b79190611f63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610759565b5050505050565b5f610823611696565b905080546003825580156108555760018160011c14303b1061084c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061086691906126e8565b9050610874815f01516116bf565b5f5b81602001515181101561090357600160025f8460200151848151811061089f5761089e6124ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610876565b5050801561093a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109d59190612893565b90505f60028111156109ea576109e96128da565b5b815f01516002811115610a00576109ff6128da565b5b03610a76575f8160600151806020019051810190610a1e9190612954565b9050805f01513414610a70578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a6792919061297f565b60405180910390fd5b50610d28565b60016002811115610a8a57610a896128da565b5b815f01516002811115610aa057610a9f6128da565b5b03610b7b575f8160600151806020019051810190610abe9190612954565b9050610af8826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16611795909392919063ffffffff16565b805f0151610b2930846020015173ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b1015610b75578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b6c92919061297f565b60405180910390fd5b50610d27565b600280811115610b8e57610b8d6128da565b5b815f01516002811115610ba457610ba36128da565b5b03610d1d575f8160600151806020019051810190610bc29190612a9f565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b8152600401610c18959493929190612b38565b5f604051808303815f87803b158015610c2f575f80fd5b505af1158015610c41573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401610c8b92919061297f565b602060405180830381865afa158015610ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cca9190612b90565b1015610d1757816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610d0e92919061297f565b60405180910390fd5b50610d26565b5f915050610d2e565b5b5b60019150505b92915050565b5f805f90505b83839050811015610d8c57610d72848483818110610d5b57610d5a6124ad565b5b9050602002810190610d6d9190612bc7565b611255565b610d7f575f915050610d92565b8080600101915050610d3a565b50600190505b92915050565b610da061165f565b610da95f6117ef565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f63bc197c8160e01b905098975050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e8783610654565b610e919190612c56565b9050919050565b610ea061165f565b63389a75e1600c52805f526020600c208054421115610ec657636f5e88185f526004601cfd5b5f815550610ed3816117ef565b50565b5f610edf61165f565b5f8383810190610eef9190612893565b90505f6002811115610f0457610f036128da565b5b815f01516002811115610f1a57610f196128da565b5b1480610f4d575060016002811115610f3557610f346128da565b5b815f01516002811115610f4b57610f4a6128da565b5b145b15610fa6575f8160600151806020019051810190610f6b9190612954565b9050610fa0826020015183604001515f845f015114610f8d57835f0151610f9b565b610f9a8560200151610654565b5b6118b5565b506110b0565b600280811115610fb957610fb86128da565b5b815f01516002811115610fcf57610fce6128da565b5b036110a6575f8160600151806020019051810190610fed9190612a9f565b90506110a082602001518360400151835f01515f856020015114611015578460200151611096565b856020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b815260040161105692919061297f565b602060405180830381865afa158015611071573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110959190612b90565b5b8560400151611acd565b506110af565b5f9150506110b6565b5b60019150505b92915050565b5f63f23a6e6160e01b90509695505050505050565b6110d961165f565b8060601b6110ee57637448fbae5f526004601cfd5b6110f7816117ef565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b815260040161113592919061297f565b602060405180830381865afa158015611150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111749190612b90565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161120492919061297f565b602060405180830381865afa15801561121f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112439190612b90565b61124d9190612c56565b905092915050565b5f61125f33611501565b611295576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906112a59190612893565b9050600160028111156112bb576112ba6128da565b5b815f015160028111156112d1576112d06128da565b5b148061130357505f60028111156112eb576112ea6128da565b5b815f01516002811115611301576113006128da565b5b145b156113a3575f81606001518060200190518101906113219190612954565b90505f6113318360200151610654565b905080825f0151111561138657826020015181835f01516040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161137d93929190612c89565b60405180910390fd5b61139c83602001518460400151845f01516118b5565b50506114f5565b6002808111156113b6576113b56128da565b5b815f015160028111156113cc576113cb6128da565b5b036114eb575f81606001518060200190518101906113ea9190612a9f565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b815260040161142e92919061297f565b602060405180830381865afa158015611449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146d9190612b90565b905080826020015111156114c45782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016114bb93929190612c89565b60405180910390fd5b6114e483602001518460400151845f015185602001518660400151611acd565b50506114f4565b5f9150506114fb565b5b60019150505b92915050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611589575061155a610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061161b575061161a82611cf9565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611694576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6116c7611d72565b1561173f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561170157630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611792565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f511417166117e057637939f4245f526004601cfd5b5f606052806040525050505050565b6117f7611d72565b1561185c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506118b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd2126854036118d35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611953578282826040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161194a93929190612cbe565b60405180910390fd5b61195c83610654565b8111156119ac578261196d84610654565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016119a393929190612c89565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119f79190612c56565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a4057611a3b8282611d76565b611a6c565b611a6b82828573ffffffffffffffffffffffffffffffffffffffff16611d939092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051611ab492919061297f565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403611aeb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b6b578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611b6293929190612cbe565b60405180910390fd5b611b7585846110fa565b821115611bc65784611b8786856110fa565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611bbd93929190612c89565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254611c219190612c56565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401611c69959493929190612b38565b5f604051808303815f87803b158015611c80575f80fd5b505af1158015611c92573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051611cde92919061297f565b60405180910390a23868929eee149b4bd21268555050505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d6b5750611d6a82611ddc565b5b9050919050565b5f90565b5f385f3884865af1611d8f5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611dd3576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611e8a81611e56565b8114611e94575f80fd5b50565b5f81359050611ea581611e81565b92915050565b5f60208284031215611ec057611ebf611e4e565b5b5f611ecd84828501611e97565b91505092915050565b5f8115159050919050565b611eea81611ed6565b82525050565b5f602082019050611f035f830184611ee1565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f3282611f09565b9050919050565b611f4281611f28565b8114611f4c575f80fd5b50565b5f81359050611f5d81611f39565b92915050565b5f60208284031215611f7857611f77611e4e565b5b5f611f8584828501611f4f565b91505092915050565b5f819050919050565b611fa081611f8e565b82525050565b5f602082019050611fb95f830184611f97565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611fe057611fdf611fbf565b5b8235905067ffffffffffffffff811115611ffd57611ffc611fc3565b5b60208301915083602082028301111561201957612018611fc7565b5b9250929050565b5f8083601f84011261203557612034611fbf565b5b8235905067ffffffffffffffff81111561205257612051611fc3565b5b60208301915083602082028301111561206e5761206d611fc7565b5b9250929050565b5f805f806040858703121561208d5761208c611e4e565b5b5f85013567ffffffffffffffff8111156120aa576120a9611e52565b5b6120b687828801611fcb565b9450945050602085013567ffffffffffffffff8111156120d9576120d8611e52565b5b6120e587828801612020565b925092505092959194509250565b5f8083601f84011261210857612107611fbf565b5b8235905067ffffffffffffffff81111561212557612124611fc3565b5b60208301915083600182028301111561214157612140611fc7565b5b9250929050565b5f806020838503121561215e5761215d611e4e565b5b5f83013567ffffffffffffffff81111561217b5761217a611e52565b5b612187858286016120f3565b92509250509250929050565b5f8083601f8401126121a8576121a7611fbf565b5b8235905067ffffffffffffffff8111156121c5576121c4611fc3565b5b6020830191508360208202830111156121e1576121e0611fc7565b5b9250929050565b5f80602083850312156121fe576121fd611e4e565b5b5f83013567ffffffffffffffff81111561221b5761221a611e52565b5b61222785828601612193565b92509250509250929050565b61223c81611f8e565b8114612246575f80fd5b50565b5f8135905061225781612233565b92915050565b5f806040838503121561227357612272611e4e565b5b5f61228085828601611f4f565b925050602061229185828601612249565b9150509250929050565b6122a481611f28565b82525050565b5f6020820190506122bd5f83018461229b565b92915050565b5f8083601f8401126122d8576122d7611fbf565b5b8235905067ffffffffffffffff8111156122f5576122f4611fc3565b5b60208301915083602082028301111561231157612310611fc7565b5b9250929050565b5f805f805f805f8060a0898b03121561233457612333611e4e565b5b5f6123418b828c01611f4f565b98505060206123528b828c01611f4f565b975050604089013567ffffffffffffffff81111561237357612372611e52565b5b61237f8b828c016122c3565b9650965050606089013567ffffffffffffffff8111156123a2576123a1611e52565b5b6123ae8b828c016122c3565b9450945050608089013567ffffffffffffffff8111156123d1576123d0611e52565b5b6123dd8b828c016120f3565b92509250509295985092959890939650565b6123f881611e56565b82525050565b5f6020820190506124115f8301846123ef565b92915050565b5f805f805f8060a0878903121561243157612430611e4e565b5b5f61243e89828a01611f4f565b965050602061244f89828a01611f4f565b955050604061246089828a01612249565b945050606061247189828a01612249565b935050608087013567ffffffffffffffff81111561249257612491611e52565b5b61249e89828a016120f3565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6124e381611ed6565b81146124ed575f80fd5b50565b5f813590506124fe816124da565b92915050565b5f6020828403121561251957612518611e4e565b5b5f612526848285016124f0565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61257982612533565b810181811067ffffffffffffffff8211171561259857612597612543565b5b80604052505050565b5f6125aa611e45565b90506125b68282612570565b919050565b5f80fd5b5f67ffffffffffffffff8211156125d9576125d8612543565b5b602082029050602081019050919050565b5f6125fc6125f7846125bf565b6125a1565b9050808382526020820190506020840283018581111561261f5761261e611fc7565b5b835b8181101561264857806126348882611f4f565b845260208401935050602081019050612621565b5050509392505050565b5f82601f83011261266657612665611fbf565b5b81356126768482602086016125ea565b91505092915050565b5f604082840312156126945761269361252f565b5b61269e60406125a1565b90505f6126ad84828501611f4f565b5f83015250602082013567ffffffffffffffff8111156126d0576126cf6125bb565b5b6126dc84828501612652565b60208301525092915050565b5f602082840312156126fd576126fc611e4e565b5b5f82013567ffffffffffffffff81111561271a57612719611e52565b5b6127268482850161267f565b91505092915050565b6003811061273b575f80fd5b50565b5f8135905061274c8161272f565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127705761276f612543565b5b61277982612533565b9050602081019050919050565b828183375f83830152505050565b5f6127a66127a184612756565b6125a1565b9050828152602081018484840111156127c2576127c1612752565b5b6127cd848285612786565b509392505050565b5f82601f8301126127e9576127e8611fbf565b5b81356127f9848260208601612794565b91505092915050565b5f608082840312156128175761281661252f565b5b61282160806125a1565b90505f6128308482850161273e565b5f83015250602061284384828501611f4f565b602083015250604061285784828501611f4f565b604083015250606082013567ffffffffffffffff81111561287b5761287a6125bb565b5b612887848285016127d5565b60608301525092915050565b5f602082840312156128a8576128a7611e4e565b5b5f82013567ffffffffffffffff8111156128c5576128c4611e52565b5b6128d184828501612802565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f8151905061291581612233565b92915050565b5f602082840312156129305761292f61252f565b5b61293a60206125a1565b90505f61294984828501612907565b5f8301525092915050565b5f6020828403121561296957612968611e4e565b5b5f6129768482850161291b565b91505092915050565b5f6040820190506129925f83018561229b565b61299f6020830184611f97565b9392505050565b8281835e5f83830152505050565b5f6129c66129c184612756565b6125a1565b9050828152602081018484840111156129e2576129e1612752565b5b6129ed8482856129a6565b509392505050565b5f82601f830112612a0957612a08611fbf565b5b8151612a198482602086016129b4565b91505092915050565b5f60608284031215612a3757612a3661252f565b5b612a4160606125a1565b90505f612a5084828501612907565b5f830152506020612a6384828501612907565b602083015250604082015167ffffffffffffffff811115612a8757612a866125bb565b5b612a93848285016129f5565b60408301525092915050565b5f60208284031215612ab457612ab3611e4e565b5b5f82015167ffffffffffffffff811115612ad157612ad0611e52565b5b612add84828501612a22565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612b0a82612ae6565b612b148185612af0565b9350612b248185602086016129a6565b612b2d81612533565b840191505092915050565b5f60a082019050612b4b5f83018861229b565b612b58602083018761229b565b612b656040830186611f97565b612b726060830185611f97565b8181036080830152612b848184612b00565b90509695505050505050565b5f60208284031215612ba557612ba4611e4e565b5b5f612bb284828501612907565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112612be357612be2612bbb565b5b80840192508235915067ffffffffffffffff821115612c0557612c04612bbf565b5b602083019250600182023603831315612c2157612c20612bc3565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c6082611f8e565b9150612c6b83611f8e565b9250828201905080821115612c8357612c82612c29565b5b92915050565b5f606082019050612c9c5f83018661229b565b612ca96020830185611f97565b612cb66040830184611f97565b949350505050565b5f606082019050612cd15f83018661229b565b612cde602083018561229b565b612ceb6040830184611f97565b94935050505056fea2646970667358221220f53b1ed2d8251930b4f97c8116e40d29f46a036a8c5f4fe3d9369cd70e1203db64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xF8724ABA EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0xF9A802C3 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x563 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x59F JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3C3 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x457 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x61400C99 EQ PUSH2 0x2DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x774C33AB EQ PUSH2 0x321 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1CF JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x229 JUMPI PUSH2 0x155 JUMP JUMPDEST CALLDATASIZE PUSH2 0x155 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x6BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2075 JUMP JUMPDEST PUSH2 0x710 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x93F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25C SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26D PUSH2 0x946 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C0 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x9C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D2 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x301 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xD34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH2 0xD98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x347 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0xDAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xE01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x22AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x2318 JUMP JUMPDEST PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BA SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x441 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x462 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x478 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A8 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x10FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x511 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50C SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x117C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x54D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x548 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x589 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x584 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C0 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1590 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x64D JUMPI POP PUSH2 0x64C DUP3 PUSH2 0x15A9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6B6 JUMPI PUSH2 0x6B1 ADDRESS DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C8 PUSH2 0x1655 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x718 PUSH2 0x165F JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x757 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x813 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x777 JUMPI PUSH2 0x776 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x78C SWAP2 SWAP1 PUSH2 0x2504 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x7A2 JUMPI PUSH2 0x7A1 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7B7 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x759 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x823 PUSH2 0x1696 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x855 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x84C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x26E8 JUMP JUMPDEST SWAP1 POP PUSH2 0x874 DUP2 PUSH0 ADD MLOAD PUSH2 0x16BF JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x903 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x89F JUMPI PUSH2 0x89E PUSH2 0x24AD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x876 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9D5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x9EA JUMPI PUSH2 0x9E9 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA00 JUMPI PUSH2 0x9FF PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA76 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA1E SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA70 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA67 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH2 0xA89 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA0 JUMPI PUSH2 0xA9F PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB7B JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xAF8 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1795 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB29 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB75 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6C SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD27 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xB8E JUMPI PUSH2 0xB8D PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xD1D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC2 SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A DUP4 PUSH1 0x40 ADD MLOAD ADDRESS DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC18 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC8B SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCA6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCA SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST LT ISZERO PUSH2 0xD17 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD26 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xD2E JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xD8C JUMPI PUSH2 0xD72 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD6D SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH2 0xD7F JUMPI PUSH0 SWAP2 POP POP PUSH2 0xD92 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xD3A JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDA0 PUSH2 0x165F JUMP JUMPDEST PUSH2 0xDA9 PUSH0 PUSH2 0x17EF JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xE87 DUP4 PUSH2 0x654 JUMP JUMPDEST PUSH2 0xE91 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA0 PUSH2 0x165F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xEC6 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xED3 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEDF PUSH2 0x165F JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEEF SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF04 JUMPI PUSH2 0xF03 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF1A JUMPI PUSH2 0xF19 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF4D JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF4B JUMPI PUSH2 0xF4A PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xFA6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xFA0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xF8D JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xF9B JUMP JUMPDEST PUSH2 0xF9A DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST JUMPDEST PUSH2 0x18B5 JUMP JUMPDEST POP PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xFB9 JUMPI PUSH2 0xFB8 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFCF JUMPI PUSH2 0xFCE PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10A6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFED SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH2 0x10A0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH0 DUP6 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1015 JUMPI DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1096 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP8 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1056 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1071 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1095 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST JUMPDEST DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP PUSH2 0x10AF JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x10B6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x165F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x10EE JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x10F7 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1135 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1150 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1174 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1204 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x121F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST PUSH2 0x124D SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x125F CALLER PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x1295 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x12A5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12D1 JUMPI PUSH2 0x12D0 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1303 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12EB JUMPI PUSH2 0x12EA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH2 0x1300 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x13A3 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1331 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH0 ADD MLOAD GT ISZERO PUSH2 0x1386 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x137D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x139C DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD PUSH2 0x18B5 JUMP JUMPDEST POP POP PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x13B6 JUMPI PUSH2 0x13B5 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x14EB JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x13EA SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x142E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1449 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x146D SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x14C4 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14E4 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP POP PUSH2 0x14F4 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x14FB JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1589 JUMPI POP PUSH2 0x155A PUSH2 0xE01 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x161B JUMPI POP PUSH2 0x161A DUP3 PUSH2 0x1CF9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1694 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x16C7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x173F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1701 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1792 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x17E0 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x185C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x18B2 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x18D3 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1953 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x194A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x195C DUP4 PUSH2 0x654 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x19AC JUMPI DUP3 PUSH2 0x196D DUP5 PUSH2 0x654 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x19F7 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A40 JUMPI PUSH2 0x1A3B DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1A6B DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D93 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1AB4 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1AEB JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B6B JUMPI DUP5 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B62 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B75 DUP6 DUP5 PUSH2 0x10FA JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1BC6 JUMPI DUP5 PUSH2 0x1B87 DUP7 DUP6 PUSH2 0x10FA JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BBD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1C21 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C69 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C80 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C92 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1CDE SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1D6B JUMPI POP PUSH2 0x1D6A DUP3 PUSH2 0x1DDC JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1D8F JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1DD3 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8A DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EA5 DUP2 PUSH2 0x1E81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EC0 JUMPI PUSH2 0x1EBF PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1ECD DUP5 DUP3 DUP6 ADD PUSH2 0x1E97 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEA DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F03 PUSH0 DUP4 ADD DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F32 DUP3 PUSH2 0x1F09 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F42 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F5D DUP2 PUSH2 0x1F39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F78 JUMPI PUSH2 0x1F77 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F85 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FA0 DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FB9 PUSH0 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1FE0 JUMPI PUSH2 0x1FDF PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2019 JUMPI PUSH2 0x2018 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2035 JUMPI PUSH2 0x2034 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH2 0x2051 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x206E JUMPI PUSH2 0x206D PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x208D JUMPI PUSH2 0x208C PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20AA JUMPI PUSH2 0x20A9 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20B6 DUP8 DUP3 DUP9 ADD PUSH2 0x1FCB JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20D9 JUMPI PUSH2 0x20D8 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20E5 DUP8 DUP3 DUP9 ADD PUSH2 0x2020 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2108 JUMPI PUSH2 0x2107 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2125 JUMPI PUSH2 0x2124 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2141 JUMPI PUSH2 0x2140 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x215E JUMPI PUSH2 0x215D PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217B JUMPI PUSH2 0x217A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2187 DUP6 DUP3 DUP7 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x21A8 JUMPI PUSH2 0x21A7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21C5 JUMPI PUSH2 0x21C4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x21E1 JUMPI PUSH2 0x21E0 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21FE JUMPI PUSH2 0x21FD PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x221B JUMPI PUSH2 0x221A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2227 DUP6 DUP3 DUP7 ADD PUSH2 0x2193 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x223C DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP2 EQ PUSH2 0x2246 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2257 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2273 JUMPI PUSH2 0x2272 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2280 DUP6 DUP3 DUP7 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2291 DUP6 DUP3 DUP7 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x22A4 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22BD PUSH0 DUP4 ADD DUP5 PUSH2 0x229B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x22D8 JUMPI PUSH2 0x22D7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22F5 JUMPI PUSH2 0x22F4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2311 JUMPI PUSH2 0x2310 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2334 JUMPI PUSH2 0x2333 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2341 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x2352 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2373 JUMPI PUSH2 0x2372 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x237F DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23A2 JUMPI PUSH2 0x23A1 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23AE DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23D1 JUMPI PUSH2 0x23D0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23DD DUP12 DUP3 DUP13 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x23F8 DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2411 PUSH0 DUP4 ADD DUP5 PUSH2 0x23EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2431 JUMPI PUSH2 0x2430 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x243E DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x244F DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2460 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2471 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2492 JUMPI PUSH2 0x2491 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x249E DUP10 DUP3 DUP11 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x24E3 DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP2 EQ PUSH2 0x24ED JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24FE DUP2 PUSH2 0x24DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2526 DUP5 DUP3 DUP6 ADD PUSH2 0x24F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2579 DUP3 PUSH2 0x2533 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2598 JUMPI PUSH2 0x2597 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25AA PUSH2 0x1E45 JUMP JUMPDEST SWAP1 POP PUSH2 0x25B6 DUP3 DUP3 PUSH2 0x2570 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25D9 JUMPI PUSH2 0x25D8 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x25FC PUSH2 0x25F7 DUP5 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x25A1 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 0x261F JUMPI PUSH2 0x261E PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2648 JUMPI DUP1 PUSH2 0x2634 DUP9 DUP3 PUSH2 0x1F4F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2621 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2666 JUMPI PUSH2 0x2665 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2676 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x269E PUSH1 0x40 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x26AD DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26D0 JUMPI PUSH2 0x26CF PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x26DC DUP5 DUP3 DUP6 ADD PUSH2 0x2652 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26FD JUMPI PUSH2 0x26FC PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271A JUMPI PUSH2 0x2719 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2726 DUP5 DUP3 DUP6 ADD PUSH2 0x267F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x273B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x274C DUP2 PUSH2 0x272F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2770 JUMPI PUSH2 0x276F PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH2 0x2779 DUP3 PUSH2 0x2533 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x27A6 PUSH2 0x27A1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27C2 JUMPI PUSH2 0x27C1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x27CD DUP5 DUP3 DUP6 PUSH2 0x2786 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27E9 JUMPI PUSH2 0x27E8 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27F9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2794 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2817 JUMPI PUSH2 0x2816 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2821 PUSH1 0x80 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2830 DUP5 DUP3 DUP6 ADD PUSH2 0x273E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2843 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2857 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2887 DUP5 DUP3 DUP6 ADD PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A8 JUMPI PUSH2 0x28A7 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x28D1 DUP5 DUP3 DUP6 ADD PUSH2 0x2802 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2915 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2930 JUMPI PUSH2 0x292F PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x293A PUSH1 0x20 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2949 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2969 JUMPI PUSH2 0x2968 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2976 DUP5 DUP3 DUP6 ADD PUSH2 0x291B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2992 PUSH0 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x299F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x29C6 PUSH2 0x29C1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x29E2 JUMPI PUSH2 0x29E1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x29ED DUP5 DUP3 DUP6 PUSH2 0x29A6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A09 JUMPI PUSH2 0x2A08 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2A19 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x29B4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A37 JUMPI PUSH2 0x2A36 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2A41 PUSH1 0x60 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A50 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2A63 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A87 JUMPI PUSH2 0x2A86 PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2A93 DUP5 DUP3 DUP6 ADD PUSH2 0x29F5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB4 JUMPI PUSH2 0x2AB3 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD1 JUMPI PUSH2 0x2AD0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADD DUP5 DUP3 DUP6 ADD PUSH2 0x2A22 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2B0A DUP3 PUSH2 0x2AE6 JUMP JUMPDEST PUSH2 0x2B14 DUP2 DUP6 PUSH2 0x2AF0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2B24 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x29A6 JUMP JUMPDEST PUSH2 0x2B2D DUP2 PUSH2 0x2533 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2B4B PUSH0 DUP4 ADD DUP9 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B58 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B65 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2B72 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B84 DUP2 DUP5 PUSH2 0x2B00 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BA5 JUMPI PUSH2 0x2BA4 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2BB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2BE3 JUMPI PUSH2 0x2BE2 PUSH2 0x2BBB JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C05 JUMPI PUSH2 0x2C04 PUSH2 0x2BBF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x2C21 JUMPI PUSH2 0x2C20 PUSH2 0x2BC3 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2C60 DUP3 PUSH2 0x1F8E JUMP JUMPDEST SWAP2 POP PUSH2 0x2C6B DUP4 PUSH2 0x1F8E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C83 JUMPI PUSH2 0x2C82 PUSH2 0x2C29 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2C9C PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CA9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2CB6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2CD1 PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CDE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CEB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 EXTCODESIZE 0x1E 0xD2 0xD8 0x25 NOT ADDRESS 0xB4 0xF9 PUSH29 0x8116E40D29F46A036A8C5F4FE3D9369CD70E1203DB64736F6C63430008 NOT STOP CALLER ","sourceMap":"769:13709:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14255:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9709:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;7817:359:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2070:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11144:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;10508:138:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2745:1677;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7553:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;10884:156:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13920:299:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8685:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4851:1015:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13447:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10129:166:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9098:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6148:1181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8209:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11693:435:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14255:221:38;14357:4;14395:34;14380:49;;;:11;:49;;;;:89;;;;14433:36;14457:11;14433:23;:36::i;:::-;14380:89;14373:96;;14255:221;;;:::o;9709:184::-;9782:7;9826:1;9808:20;;:6;:20;;;:78;;9855:31;9880:4;9855:6;:16;;;;:31;;;;:::i;:::-;9808:78;;;9831:21;9808:78;9801:85;;9709:184;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;7817:359:38:-;12517:13:17;:11;:13::i;:::-;8003:11:38::1;;:18;;7984:8;;:15;;:37;7980:66;;8030:16;;;;;;;;;;;;;;7980:66;8061:9;8056:114;8080:8;;:15;;8076:1;:19;8056:114;;;8145:11;;8157:1;8145:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8116:13;:26;8130:8;;8139:1;8130:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8116:26;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;8097:3;;;;;;;8056:114;;;;7817:359:::0;;;;:::o;2070:322::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2158:24:38::1;2196:5;;2185:32;;;;;;;:::i;:::-;2158:59;;2227:29;2244:5;:11;;;2227:16;:29::i;:::-;2271:9;2266:120;2290:5;:16;;;:23;2286:1;:27;2266:120;;;2371:4;2334:13;:34;2348:5;:16;;;2365:1;2348:19;;;;;;;;:::i;:::-;;;;;;;;2334:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;2315:3;;;;;;;2266:120;;;;2148:244;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2070:322:38;;:::o;11144:104::-;11214:7;11144:104;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;10508:138:38:-;10585:7;10611:20;:28;10632:6;10611:28;;;;;;;;;;;;;;;;10604:35;;10508:138;;;:::o;2745:1677::-;2828:4;2844:23;2881:5;;2870:29;;;;;;;:::i;:::-;2844:55;;2934:13;2913:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;2909:1485;;2963:30;3007:7;:12;;;2996:43;;;;;;;;;;;;:::i;:::-;2963:76;;3145:7;:14;;;3132:9;:27;3128:121;;3204:7;:13;;;3219:7;:14;;;3186:48;;;;;;;;;;;;:::i;:::-;;;;;;;;3128:121;2949:310;2909:1485;;;3290:15;3269:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;3265:1129;;3321:30;3365:7;:12;;;3354:43;;;;;;;;;;;;:::i;:::-;3321:76;;3483:77;3514:7;:14;;;3538:4;3545:7;:14;;;3483:7;:13;;;:30;;;;:77;;;;;;:::i;:::-;3619:7;:14;;;3578:38;3610:4;3578:7;:13;;;:23;;;;:38;;;;:::i;:::-;:55;3574:149;;;3678:7;:13;;;3693:7;:14;;;3660:48;;;;;;;;;;;;:::i;:::-;;;;;;;;3574:149;3307:426;3265:1129;;;3764:17;3743:38;;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;;3739:655;;3797:29;3840:7;:12;;;3829:42;;;;;;;;;;;;:::i;:::-;3797:74;;3974:7;:13;;;3965:40;;;4023:7;:14;;;4047:4;4054:7;:15;;;4071:7;:14;;;4087:7;:12;;;3965:148;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4199:7;:14;;;4140:7;:13;;;4131:33;;;4173:4;4180:7;:15;;;4131:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;4127:176;;;4258:7;:13;;;4273:7;:14;;;4240:48;;;;;;;;;;;;:::i;:::-;;;;;;;;4127:176;3783:530;3739:655;;;4378:5;4371:12;;;;;3739:655;3265:1129;2909:1485;4411:4;4404:11;;;2745:1677;;;;;:::o;7553:231::-;7635:4;7656:9;7668:1;7656:13;;7651:105;7675:5;;:12;;7671:1;:16;7651:105;;;7713:18;7722:5;;7728:1;7722:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;7713;:18::i;:::-;7708:37;;7740:5;7733:12;;;;;7708:37;7689:3;;;;;;;7651:105;;;;7773:4;7766:11;;7553:231;;;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;10884:156:38:-;10970:7;10996:19;:27;11016:6;10996:27;;;;;;;;;;;;;;;:37;11024:8;10996:37;;;;;;;;;;;;10989:44;;10884:156;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;13920:299:38:-;14090:6;14164:48;;;14157:55;;13920:299;;;;;;;;;;:::o;8685:152::-;8756:7;8802:20;:28;8823:6;8802:28;;;;;;;;;;;;;;;;8782:17;8792:6;8782:9;:17::i;:::-;:48;;;;:::i;:::-;8775:55;;8685:152;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;4851:1015:38:-;4935:4;12517:13:17;:11;:13::i;:::-;4951:23:38::1;4988:5;;4977:29;;;;;;;:::i;:::-;4951:55;;5041:13;5020:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;:74;;;;5079:15;5058:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;5020:74;5016:822;;;5110:30;5154:7;:12;;;5143:43;;;;;;;;;;;;:::i;:::-;5110:76;;5200:143;5235:7;:13;;;5250:7;:14;;;5284:1;5266:7;:14;;;:19;:63;;5315:7;:14;;;5266:63;;;5288:24;5298:7;:13;;;5288:9;:24::i;:::-;5266:63;5200:17;:143::i;:::-;5096:258;5016:822;;;5385:17;5364:38:::0;::::1;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;::::0;5360:478:::1;;5418:29;5461:7;:12;;;5450:42;;;;;;;;;;;;:::i;:::-;5418:74;;5506:278;5540:7;:13;;;5571:7;:14;;;5603:7;:15;;;5654:1;5636:7;:14;;;:19;:104;;5726:7;:14;;;5636:104;;;5667:7;:13;;;5658:33;;;5700:4;5707:7;:15;;;5658:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5636:104;5758:7;:12;;;5506:16;:278::i;:::-;5404:391;5360:478;;;5822:5;5815:12;;;;;5360:478;5016:822;5855:4;5848:11;;;12540:1:17;4851:1015:38::0;;;;:::o;13447:267::-;13590:6;13664:43;;;13657:50;;13447:267;;;;;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;10129:166:38:-;10211:7;10246:6;10237:26;;;10272:4;10279:8;10237:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10230:58;;10129:166;;;;:::o;9098:204::-;9178:7;9258:19;:27;9278:6;9258:27;;;;;;;;;;;;;;;:37;9286:8;9258:37;;;;;;;;;;;;9213:6;9204:26;;;9239:4;9246:8;9204:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:91;;;;:::i;:::-;9197:98;;9098:204;;;;:::o;6148:1181::-;6236:4;1575:24;1588:10;1575:12;:24::i;:::-;1570:52;;1608:14;;;;;;;;;;;;;;1570:52;6252:23:::1;6289:5;;6278:29;;;;;;;:::i;:::-;6252:55;;6342:15;6321:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;:74;;;;6382:13;6361:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;6321:74;6317:984;;;6411:30;6455:7;:12;;;6444:43;;;;;;;;;;;;:::i;:::-;6411:76;;6502:13;6518:24;6528:7;:13;;;6518:9;:24::i;:::-;6502:40;;6577:5;6560:7;:14;;;:22;6556:123;;;6627:7;:13;;;6642:5;6649:7;:14;;;6609:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;6556:123;6693:64;6711:7;:13;;;6726:7;:14;;;6742:7;:14;;;6693:17;:64::i;:::-;6397:371;;6317:984;;;6799:17;6778:38:::0;::::1;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;::::0;6774:527:::1;;6832:29;6875:7;:12;;;6864:42;;;;;;;;;;;;:::i;:::-;6832:74;;6921:13;6946:7;:13;;;6937:33;;;6979:4;6986:7;:15;;;6937:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6921:81;;7037:5;7020:7;:14;;;:22;7016:123;;;7087:7;:13;;;7102:5;7109:7;:14;;;7069:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;7016:123;7153:94;7170:7;:13;;;7185:7;:14;;;7201:7;:15;;;7218:7;:14;;;7234:7;:12;;;7153:16;:94::i;:::-;6818:440;;6774:527;;;7285:5;7278:12;;;;;6774:527;6317:984;7318:4;7311:11;;;1632:1;6148:1181:::0;;;;:::o;8209:154::-;8287:4;8310:13;:23;8324:8;8310:23;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;8349:7;:5;:7::i;:::-;8337:19;;:8;:19;;;8310:46;8303:53;;8209:154;;;:::o;11693:435:17:-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;5102:205:37:-;5198:4;5236:24;5221:39;;;:11;:39;;;;:79;;;;5264:36;5288:11;5264:23;:36::i;:::-;5221:79;5214:86;;5102:205;;;:::o;19260:739:27:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;9109:1139:27:-;9292:4;9286:11;9357:6;9351:4;9344:20;9422:2;9416:4;9409:16;9487:4;9483:2;9479:13;9473:4;9466:27;9549:34;9543:4;9536:48;9950:4;9944;9938;9932;9929:1;9922:5;9915;9910:45;9844:16;9837:24;9833:1;9826:4;9820:11;9817:18;9814:48;9729:244;9702:404;;10019:10;10013:4;10006:24;10087:4;10081;10074:18;9702:404;10132:1;10126:4;10119:15;10194:1;10188:4;10181:15;9263:979;9109:1139;;;;:::o;6145:1089:17:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;11707:708:38:-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;11918:1:38::1;11903:17;;:3;:17;;::::0;11899:66:::1;;11944:6;11952:3;11957:7;11929:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;11899:66;11989:17;11999:6;11989:9;:17::i;:::-;11979:7;:27;11975:118;;;12047:6;12055:17;12065:6;12055:9;:17::i;:::-;12074:7;12029:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;11975:118;12135:7;12103:20;:28:::0;12124:6:::1;12103:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;12222:1;12204:20;;:6;:20;;::::0;12200:160:::1;;12240:45;12272:3;12277:7;12240:31;:45::i;:::-;12200:160;;;12316:33;12336:3;12341:7;12316:6;:19;;;;:33;;;;;:::i;:::-;12200:160;12387:6;12375:33;;;12395:3;12400:7;12375:33;;;;;;;:::i;:::-;;;;;;;;1937:10:26::0;1913:22;1906:42;11707:708:38;;;:::o;12421:820::-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;12697:1:38::1;12682:17;;:3;:17;;::::0;12678:66:::1;;12723:6;12731:3;12736:7;12708:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;12678:66;12768:27;12778:6;12786:8;12768:9;:27::i;:::-;12758:7;:37;12754:138;;;12836:6;12844:27;12854:6;12862:8;12844:9;:27::i;:::-;12873:7;12818:63;;;;;;;;;;;;;:::i;:::-;;;;;;;;12754:138;12943:7;12902:19;:27;12922:6;12902:27;;;;;;;;;;;;;;;:37;12930:8;12902:37;;;;;;;;;;;;:48;;;;;;;:::i;:::-;;;;;;;;13115:6;13106:33;;;13148:4;13155:3;13160:8;13170:7;13179:5;13106:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13213:6;13201:33;;;13221:3;13226:7;13201:33;;;;;;;:::i;:::-;;;;;;;;1937:10:26::0;1913:22;1906:42;12421:820:38;;;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;4031:342:27:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;13466:939::-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:329::-;2084:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:119;;;2139:79;;:::i;:::-;2101:119;2259:1;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2230:117;2025:329;;;;:::o;2360:77::-;2397:7;2426:5;2415:16;;2360:77;;;:::o;2443:118::-;2530:24;2548:5;2530:24;:::i;:::-;2525:3;2518:37;2443:118;;:::o;2567:222::-;2660:4;2698:2;2687:9;2683:18;2675:26;;2711:71;2779:1;2768:9;2764:17;2755:6;2711:71;:::i;:::-;2567:222;;;;:::o;2795:117::-;2904:1;2901;2894:12;2918:117;3027:1;3024;3017:12;3041:117;3150:1;3147;3140:12;3181:568;3254:8;3264:6;3314:3;3307:4;3299:6;3295:17;3291:27;3281:122;;3322:79;;:::i;:::-;3281:122;3435:6;3422:20;3412:30;;3465:18;3457:6;3454:30;3451:117;;;3487:79;;:::i;:::-;3451:117;3601:4;3593:6;3589:17;3577:29;;3655:3;3647:4;3639:6;3635:17;3625:8;3621:32;3618:41;3615:128;;;3662:79;;:::i;:::-;3615:128;3181:568;;;;;:::o;3769:565::-;3839:8;3849:6;3899:3;3892:4;3884:6;3880:17;3876:27;3866:122;;3907:79;;:::i;:::-;3866:122;4020:6;4007:20;3997:30;;4050:18;4042:6;4039:30;4036:117;;;4072:79;;:::i;:::-;4036:117;4186:4;4178:6;4174:17;4162:29;;4240:3;4232:4;4224:6;4220:17;4210:8;4206:32;4203:41;4200:128;;;4247:79;;:::i;:::-;4200:128;3769:565;;;;;:::o;4340:928::-;4459:6;4467;4475;4483;4532:2;4520:9;4511:7;4507:23;4503:32;4500:119;;;4538:79;;:::i;:::-;4500:119;4686:1;4675:9;4671:17;4658:31;4716:18;4708:6;4705:30;4702:117;;;4738:79;;:::i;:::-;4702:117;4851:80;4923:7;4914:6;4903:9;4899:22;4851:80;:::i;:::-;4833:98;;;;4629:312;5008:2;4997:9;4993:18;4980:32;5039:18;5031:6;5028:30;5025:117;;;5061:79;;:::i;:::-;5025:117;5174:77;5243:7;5234:6;5223:9;5219:22;5174:77;:::i;:::-;5156:95;;;;4951:310;4340:928;;;;;;;:::o;5287:552::-;5344:8;5354:6;5404:3;5397:4;5389:6;5385:17;5381:27;5371:122;;5412:79;;:::i;:::-;5371:122;5525:6;5512:20;5502:30;;5555:18;5547:6;5544:30;5541:117;;;5577:79;;:::i;:::-;5541:117;5691:4;5683:6;5679:17;5667:29;;5745:3;5737:4;5729:6;5725:17;5715:8;5711:32;5708:41;5705:128;;;5752:79;;:::i;:::-;5705:128;5287:552;;;;;:::o;5845:527::-;5915:6;5923;5972:2;5960:9;5951:7;5947:23;5943:32;5940:119;;;5978:79;;:::i;:::-;5940:119;6126:1;6115:9;6111:17;6098:31;6156:18;6148:6;6145:30;6142:117;;;6178:79;;:::i;:::-;6142:117;6291:64;6347:7;6338:6;6327:9;6323:22;6291:64;:::i;:::-;6273:82;;;;6069:296;5845:527;;;;;:::o;6393:579::-;6477:8;6487:6;6537:3;6530:4;6522:6;6518:17;6514:27;6504:122;;6545:79;;:::i;:::-;6504:122;6658:6;6645:20;6635:30;;6688:18;6680:6;6677:30;6674:117;;;6710:79;;:::i;:::-;6674:117;6824:4;6816:6;6812:17;6800:29;;6878:3;6870:4;6862:6;6858:17;6848:8;6844:32;6841:41;6838:128;;;6885:79;;:::i;:::-;6838:128;6393:579;;;;;:::o;6978:581::-;7075:6;7083;7132:2;7120:9;7111:7;7107:23;7103:32;7100:119;;;7138:79;;:::i;:::-;7100:119;7286:1;7275:9;7271:17;7258:31;7316:18;7308:6;7305:30;7302:117;;;7338:79;;:::i;:::-;7302:117;7451:91;7534:7;7525:6;7514:9;7510:22;7451:91;:::i;:::-;7433:109;;;;7229:323;6978:581;;;;;:::o;7565:122::-;7638:24;7656:5;7638:24;:::i;:::-;7631:5;7628:35;7618:63;;7677:1;7674;7667:12;7618:63;7565:122;:::o;7693:139::-;7739:5;7777:6;7764:20;7755:29;;7793:33;7820:5;7793:33;:::i;:::-;7693:139;;;;:::o;7838:474::-;7906:6;7914;7963:2;7951:9;7942:7;7938:23;7934:32;7931:119;;;7969:79;;:::i;:::-;7931:119;8089:1;8114:53;8159:7;8150:6;8139:9;8135:22;8114:53;:::i;:::-;8104:63;;8060:117;8216:2;8242:53;8287:7;8278:6;8267:9;8263:22;8242:53;:::i;:::-;8232:63;;8187:118;7838:474;;;;;:::o;8318:118::-;8405:24;8423:5;8405:24;:::i;:::-;8400:3;8393:37;8318:118;;:::o;8442:222::-;8535:4;8573:2;8562:9;8558:18;8550:26;;8586:71;8654:1;8643:9;8639:17;8630:6;8586:71;:::i;:::-;8442:222;;;;:::o;8687:568::-;8760:8;8770:6;8820:3;8813:4;8805:6;8801:17;8797:27;8787:122;;8828:79;;:::i;:::-;8787:122;8941:6;8928:20;8918:30;;8971:18;8963:6;8960:30;8957:117;;;8993:79;;:::i;:::-;8957:117;9107:4;9099:6;9095:17;9083:29;;9161:3;9153:4;9145:6;9141:17;9131:8;9127:32;9124:41;9121:128;;;9168:79;;:::i;:::-;9121:128;8687:568;;;;;:::o;9261:1569::-;9421:6;9429;9437;9445;9453;9461;9469;9477;9526:3;9514:9;9505:7;9501:23;9497:33;9494:120;;;9533:79;;:::i;:::-;9494:120;9653:1;9678:53;9723:7;9714:6;9703:9;9699:22;9678:53;:::i;:::-;9668:63;;9624:117;9780:2;9806:53;9851:7;9842:6;9831:9;9827:22;9806:53;:::i;:::-;9796:63;;9751:118;9936:2;9925:9;9921:18;9908:32;9967:18;9959:6;9956:30;9953:117;;;9989:79;;:::i;:::-;9953:117;10102:80;10174:7;10165:6;10154:9;10150:22;10102:80;:::i;:::-;10084:98;;;;9879:313;10259:2;10248:9;10244:18;10231:32;10290:18;10282:6;10279:30;10276:117;;;10312:79;;:::i;:::-;10276:117;10425:80;10497:7;10488:6;10477:9;10473:22;10425:80;:::i;:::-;10407:98;;;;10202:313;10582:3;10571:9;10567:19;10554:33;10614:18;10606:6;10603:30;10600:117;;;10636:79;;:::i;:::-;10600:117;10749:64;10805:7;10796:6;10785:9;10781:22;10749:64;:::i;:::-;10731:82;;;;10525:298;9261:1569;;;;;;;;;;;:::o;10836:115::-;10921:23;10938:5;10921:23;:::i;:::-;10916:3;10909:36;10836:115;;:::o;10957:218::-;11048:4;11086:2;11075:9;11071:18;11063:26;;11099:69;11165:1;11154:9;11150:17;11141:6;11099:69;:::i;:::-;10957:218;;;;:::o;11181:1109::-;11287:6;11295;11303;11311;11319;11327;11376:3;11364:9;11355:7;11351:23;11347:33;11344:120;;;11383:79;;:::i;:::-;11344:120;11503:1;11528:53;11573:7;11564:6;11553:9;11549:22;11528:53;:::i;:::-;11518:63;;11474:117;11630:2;11656:53;11701:7;11692:6;11681:9;11677:22;11656:53;:::i;:::-;11646:63;;11601:118;11758:2;11784:53;11829:7;11820:6;11809:9;11805:22;11784:53;:::i;:::-;11774:63;;11729:118;11886:2;11912:53;11957:7;11948:6;11937:9;11933:22;11912:53;:::i;:::-;11902:63;;11857:118;12042:3;12031:9;12027:19;12014:33;12074:18;12066:6;12063:30;12060:117;;;12096:79;;:::i;:::-;12060:117;12209:64;12265:7;12256:6;12245:9;12241:22;12209:64;:::i;:::-;12191:82;;;;11985:298;11181:1109;;;;;;;;:::o;12296:180::-;12344:77;12341:1;12334:88;12441:4;12438:1;12431:15;12465:4;12462:1;12455:15;12482:116;12552:21;12567:5;12552:21;:::i;:::-;12545:5;12542:32;12532:60;;12588:1;12585;12578:12;12532:60;12482:116;:::o;12604:133::-;12647:5;12685:6;12672:20;12663:29;;12701:30;12725:5;12701:30;:::i;:::-;12604:133;;;;:::o;12743:323::-;12799:6;12848:2;12836:9;12827:7;12823:23;12819:32;12816:119;;;12854:79;;:::i;:::-;12816:119;12974:1;12999:50;13041:7;13032:6;13021:9;13017:22;12999:50;:::i;:::-;12989:60;;12945:114;12743:323;;;;:::o;13072:117::-;13181:1;13178;13171:12;13195:102;13236:6;13287:2;13283:7;13278:2;13271:5;13267:14;13263:28;13253:38;;13195:102;;;:::o;13303:180::-;13351:77;13348:1;13341:88;13448:4;13445:1;13438:15;13472:4;13469:1;13462:15;13489:281;13572:27;13594:4;13572:27;:::i;:::-;13564:6;13560:40;13702:6;13690:10;13687:22;13666:18;13654:10;13651:34;13648:62;13645:88;;;13713:18;;:::i;:::-;13645:88;13753:10;13749:2;13742:22;13532:238;13489:281;;:::o;13776:129::-;13810:6;13837:20;;:::i;:::-;13827:30;;13866:33;13894:4;13886:6;13866:33;:::i;:::-;13776:129;;;:::o;13911:117::-;14020:1;14017;14010:12;14034:311;14111:4;14201:18;14193:6;14190:30;14187:56;;;14223:18;;:::i;:::-;14187:56;14273:4;14265:6;14261:17;14253:25;;14333:4;14327;14323:15;14315:23;;14034:311;;;:::o;14368:710::-;14464:5;14489:81;14505:64;14562:6;14505:64;:::i;:::-;14489:81;:::i;:::-;14480:90;;14590:5;14619:6;14612:5;14605:21;14653:4;14646:5;14642:16;14635:23;;14706:4;14698:6;14694:17;14686:6;14682:30;14735:3;14727:6;14724:15;14721:122;;;14754:79;;:::i;:::-;14721:122;14869:6;14852:220;14886:6;14881:3;14878:15;14852:220;;;14961:3;14990:37;15023:3;15011:10;14990:37;:::i;:::-;14985:3;14978:50;15057:4;15052:3;15048:14;15041:21;;14928:144;14912:4;14907:3;14903:14;14896:21;;14852:220;;;14856:21;14470:608;;14368:710;;;;;:::o;15101:370::-;15172:5;15221:3;15214:4;15206:6;15202:17;15198:27;15188:122;;15229:79;;:::i;:::-;15188:122;15346:6;15333:20;15371:94;15461:3;15453:6;15446:4;15438:6;15434:17;15371:94;:::i;:::-;15362:103;;15178:293;15101:370;;;;:::o;15516:771::-;15595:5;15639:4;15627:9;15622:3;15618:19;15614:30;15611:117;;;15647:79;;:::i;:::-;15611:117;15746:21;15762:4;15746:21;:::i;:::-;15737:30;;15827:1;15867:49;15912:3;15903:6;15892:9;15888:22;15867:49;:::i;:::-;15860:4;15853:5;15849:16;15842:75;15777:151;16021:2;16010:9;16006:18;15993:32;16052:18;16044:6;16041:30;16038:117;;;16074:79;;:::i;:::-;16038:117;16194:74;16264:3;16255:6;16244:9;16240:22;16194:74;:::i;:::-;16187:4;16180:5;16176:16;16169:100;15938:342;15516:771;;;;:::o;16293:549::-;16382:6;16431:2;16419:9;16410:7;16406:23;16402:32;16399:119;;;16437:79;;:::i;:::-;16399:119;16585:1;16574:9;16570:17;16557:31;16615:18;16607:6;16604:30;16601:117;;;16637:79;;:::i;:::-;16601:117;16742:83;16817:7;16808:6;16797:9;16793:22;16742:83;:::i;:::-;16732:93;;16528:307;16293:549;;;;:::o;16848:114::-;16936:1;16929:5;16926:12;16916:40;;16952:1;16949;16942:12;16916:40;16848:114;:::o;16968:169::-;17029:5;17067:6;17054:20;17045:29;;17083:48;17125:5;17083:48;:::i;:::-;16968:169;;;;:::o;17143:117::-;17252:1;17249;17242:12;17266:307;17327:4;17417:18;17409:6;17406:30;17403:56;;;17439:18;;:::i;:::-;17403:56;17477:29;17499:6;17477:29;:::i;:::-;17469:37;;17561:4;17555;17551:15;17543:23;;17266:307;;;:::o;17579:148::-;17677:6;17672:3;17667;17654:30;17718:1;17709:6;17704:3;17700:16;17693:27;17579:148;;;:::o;17733:423::-;17810:5;17835:65;17851:48;17892:6;17851:48;:::i;:::-;17835:65;:::i;:::-;17826:74;;17923:6;17916:5;17909:21;17961:4;17954:5;17950:16;17999:3;17990:6;17985:3;17981:16;17978:25;17975:112;;;18006:79;;:::i;:::-;17975:112;18096:54;18143:6;18138:3;18133;18096:54;:::i;:::-;17816:340;17733:423;;;;;:::o;18175:338::-;18230:5;18279:3;18272:4;18264:6;18260:17;18256:27;18246:122;;18287:79;;:::i;:::-;18246:122;18404:6;18391:20;18429:78;18503:3;18495:6;18488:4;18480:6;18476:17;18429:78;:::i;:::-;18420:87;;18236:277;18175:338;;;;:::o;18549:1090::-;18625:5;18669:4;18657:9;18652:3;18648:19;18644:30;18641:117;;;18677:79;;:::i;:::-;18641:117;18776:21;18792:4;18776:21;:::i;:::-;18767:30;;18861:1;18901:64;18961:3;18952:6;18941:9;18937:22;18901:64;:::i;:::-;18894:4;18887:5;18883:16;18876:90;18807:170;19037:2;19078:49;19123:3;19114:6;19103:9;19099:22;19078:49;:::i;:::-;19071:4;19064:5;19060:16;19053:75;18987:152;19200:2;19241:49;19286:3;19277:6;19266:9;19262:22;19241:49;:::i;:::-;19234:4;19227:5;19223:16;19216:75;19149:153;19389:2;19378:9;19374:18;19361:32;19420:18;19412:6;19409:30;19406:117;;;19442:79;;:::i;:::-;19406:117;19562:58;19616:3;19607:6;19596:9;19592:22;19562:58;:::i;:::-;19555:4;19548:5;19544:16;19537:84;19312:320;18549:1090;;;;:::o;19645:543::-;19731:6;19780:2;19768:9;19759:7;19755:23;19751:32;19748:119;;;19786:79;;:::i;:::-;19748:119;19934:1;19923:9;19919:17;19906:31;19964:18;19956:6;19953:30;19950:117;;;19986:79;;:::i;:::-;19950:117;20091:80;20163:7;20154:6;20143:9;20139:22;20091:80;:::i;:::-;20081:90;;19877:304;19645:543;;;;:::o;20194:180::-;20242:77;20239:1;20232:88;20339:4;20336:1;20329:15;20363:4;20360:1;20353:15;20380:143;20437:5;20468:6;20462:13;20453:22;;20484:33;20511:5;20484:33;:::i;:::-;20380:143;;;;:::o;20566:446::-;20660:5;20704:4;20692:9;20687:3;20683:19;20679:30;20676:117;;;20712:79;;:::i;:::-;20676:117;20811:21;20827:4;20811:21;:::i;:::-;20802:30;;20893:1;20933:60;20989:3;20980:6;20969:9;20965:22;20933:60;:::i;:::-;20926:4;20919:5;20915:16;20908:86;20842:163;20566:446;;;;:::o;21018:419::-;21122:6;21171:2;21159:9;21150:7;21146:23;21142:32;21139:119;;;21177:79;;:::i;:::-;21139:119;21297:1;21322:98;21412:7;21403:6;21392:9;21388:22;21322:98;:::i;:::-;21312:108;;21268:162;21018:419;;;;:::o;21443:332::-;21564:4;21602:2;21591:9;21587:18;21579:26;;21615:71;21683:1;21672:9;21668:17;21659:6;21615:71;:::i;:::-;21696:72;21764:2;21753:9;21749:18;21740:6;21696:72;:::i;:::-;21443:332;;;;;:::o;21781:139::-;21870:6;21865:3;21860;21854:23;21911:1;21902:6;21897:3;21893:16;21886:27;21781:139;;;:::o;21926:432::-;22014:5;22039:65;22055:48;22096:6;22055:48;:::i;:::-;22039:65;:::i;:::-;22030:74;;22127:6;22120:5;22113:21;22165:4;22158:5;22154:16;22203:3;22194:6;22189:3;22185:16;22182:25;22179:112;;;22210:79;;:::i;:::-;22179:112;22300:52;22345:6;22340:3;22335;22300:52;:::i;:::-;22020:338;21926:432;;;;;:::o;22377:353::-;22443:5;22492:3;22485:4;22477:6;22473:17;22469:27;22459:122;;22500:79;;:::i;:::-;22459:122;22610:6;22604:13;22635:89;22720:3;22712:6;22705:4;22697:6;22693:17;22635:89;:::i;:::-;22626:98;;22449:281;22377:353;;;;:::o;22772:954::-;22865:5;22909:4;22897:9;22892:3;22888:19;22884:30;22881:117;;;22917:79;;:::i;:::-;22881:117;23016:21;23032:4;23016:21;:::i;:::-;23007:30;;23099:1;23139:60;23195:3;23186:6;23175:9;23171:22;23139:60;:::i;:::-;23132:4;23125:5;23121:16;23114:86;23047:164;23272:2;23313:60;23369:3;23360:6;23349:9;23345:22;23313:60;:::i;:::-;23306:4;23299:5;23295:16;23288:86;23221:164;23465:2;23454:9;23450:18;23444:25;23496:18;23488:6;23485:30;23482:117;;;23518:79;;:::i;:::-;23482:117;23638:69;23703:3;23694:6;23683:9;23679:22;23638:69;:::i;:::-;23631:4;23624:5;23620:16;23613:95;23395:324;22772:954;;;;:::o;23732:570::-;23835:6;23884:2;23872:9;23863:7;23859:23;23855:32;23852:119;;;23890:79;;:::i;:::-;23852:119;24031:1;24020:9;24016:17;24010:24;24061:18;24053:6;24050:30;24047:117;;;24083:79;;:::i;:::-;24047:117;24188:97;24277:7;24268:6;24257:9;24253:22;24188:97;:::i;:::-;24178:107;;23981:314;23732:570;;;;:::o;24308:98::-;24359:6;24393:5;24387:12;24377:22;;24308:98;;;:::o;24412:168::-;24495:11;24529:6;24524:3;24517:19;24569:4;24564:3;24560:14;24545:29;;24412:168;;;;:::o;24586:373::-;24672:3;24700:38;24732:5;24700:38;:::i;:::-;24754:70;24817:6;24812:3;24754:70;:::i;:::-;24747:77;;24833:65;24891:6;24886:3;24879:4;24872:5;24868:16;24833:65;:::i;:::-;24923:29;24945:6;24923:29;:::i;:::-;24918:3;24914:39;24907:46;;24676:283;24586:373;;;;:::o;24965:751::-;25188:4;25226:3;25215:9;25211:19;25203:27;;25240:71;25308:1;25297:9;25293:17;25284:6;25240:71;:::i;:::-;25321:72;25389:2;25378:9;25374:18;25365:6;25321:72;:::i;:::-;25403;25471:2;25460:9;25456:18;25447:6;25403:72;:::i;:::-;25485;25553:2;25542:9;25538:18;25529:6;25485:72;:::i;:::-;25605:9;25599:4;25595:20;25589:3;25578:9;25574:19;25567:49;25633:76;25704:4;25695:6;25633:76;:::i;:::-;25625:84;;24965:751;;;;;;;;:::o;25722:351::-;25792:6;25841:2;25829:9;25820:7;25816:23;25812:32;25809:119;;;25847:79;;:::i;:::-;25809:119;25967:1;25992:64;26048:7;26039:6;26028:9;26024:22;25992:64;:::i;:::-;25982:74;;25938:128;25722:351;;;;:::o;26079:117::-;26188:1;26185;26178:12;26202:117;26311:1;26308;26301:12;26325:117;26434:1;26431;26424:12;26448:724;26525:4;26531:6;26587:11;26574:25;26687:1;26681:4;26677:12;26666:8;26650:14;26646:29;26642:48;26622:18;26618:73;26608:168;;26695:79;;:::i;:::-;26608:168;26807:18;26797:8;26793:33;26785:41;;26859:4;26846:18;26836:28;;26887:18;26879:6;26876:30;26873:117;;;26909:79;;:::i;:::-;26873:117;27017:2;27011:4;27007:13;26999:21;;27074:4;27066:6;27062:17;27046:14;27042:38;27036:4;27032:49;27029:136;;;27084:79;;:::i;:::-;27029:136;26538:634;26448:724;;;;;:::o;27178:180::-;27226:77;27223:1;27216:88;27323:4;27320:1;27313:15;27347:4;27344:1;27337:15;27364:191;27404:3;27423:20;27441:1;27423:20;:::i;:::-;27418:25;;27457:20;27475:1;27457:20;:::i;:::-;27452:25;;27500:1;27497;27493:9;27486:16;;27521:3;27518:1;27515:10;27512:36;;;27528:18;;:::i;:::-;27512:36;27364:191;;;;:::o;27561:442::-;27710:4;27748:2;27737:9;27733:18;27725:26;;27761:71;27829:1;27818:9;27814:17;27805:6;27761:71;:::i;:::-;27842:72;27910:2;27899:9;27895:18;27886:6;27842:72;:::i;:::-;27924;27992:2;27981:9;27977:18;27968:6;27924:72;:::i;:::-;27561:442;;;;;;:::o;28009:::-;28158:4;28196:2;28185:9;28181:18;28173:26;;28209:71;28277:1;28266:9;28262:17;28253:6;28209:71;:::i;:::-;28290:72;28358:2;28347:9;28343:18;28334:6;28290:72;:::i;:::-;28372;28440:2;28429:9;28425:18;28416:6;28372:72;:::i;:::-;28009:442;;;;;;:::o"},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","available(address,uint256)":"f8724aba","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","distributed(address,uint256)":"774c33ab","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","total(address,uint256)":"f9a802c3","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This type of budget supports ETH, ERC20, and ERC1155 assets only\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is simply the current balance held by the budgetIf the zero address is passed, this function will return the native balance\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"available(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"disburse(bytes)\":{\"details\":\"If the asset transfer fails, the disbursement will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"distributed(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budgetIf the amount is zero, the entire balance of the asset will be transferred to the receiverIf the asset transfer fails, the reclamation will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"isAuthorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is simply the sum of the current balance and the distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"total(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_distributedERC1155\":{\"details\":\"The total amount of each ERC1155 asset and token ID distributed from the budget\"},\"_distributedFungible\":{\"details\":\"The total amount of each fungible asset distributed from the budget\"},\"_isAuthorized\":{\"details\":\"The mapping of authorized addresses\"}},\"title\":\"Simple Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget\"},\"available(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets available for distribution from the budget\"},\"constructor\":{\"notice\":\"Construct a new SimpleBudget\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"distributed(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets that have been distributed from the budget\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"},\"total(address,uint256)\":{\"notice\":\"Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/SimpleBudget.sol\":\"SimpleBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/budgets/SimpleBudget.sol\":{\"keccak256\":\"0xaaf0cbaba09803c2d134ecd251b2622fac9211879e540e400ff3b6b75935a262\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5da1c01840cbe1d527ea7753f952ff03f07bd99725bb8fb8aba99166661ce9b8\",\"dweb:/ipfs/QmddFuosP3gYFtH7nvuzAqkMqQKhDr24qNNcVK6g7ADDDD\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/budgets/VestingBudget.sol":{"VestingBudget":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cliff","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_13548":{"entryPoint":null,"id":13548,"parameterSlots":0,"returnSlots":0},"@_14752":{"entryPoint":null,"id":14752,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6124a3806101b45f395ff3fe608060405260043610610143575f3560e01c806361400c99116100b5578063f04e283e1161006e578063f04e283e14610424578063f1c30ec014610440578063f2fde38b1461047c578063fa4ca9b114610498578063fe9fbb80146104d4578063fee81cf4146105105761014a565b806361400c9914610324578063715018a6146103605780638da5cb5b1461036a578063be9a655514610394578063d2514e84146103be578063efbe1c1c146103fa5761014a565b80634359d28a116101075780634359d28a14610222578063439fab911461024a578063451cc1911461027257806354d1f13d146102ae578063578bcf35146102b85780635aef467a146102f45761014a565b806301ffc9a71461014c5780630fb5a6b41461018857806310098ad5146101b257806313d033c0146101ee57806325692962146102185761014a565b3661014a57005b005b348015610157575f80fd5b50610172600480360381019061016d919061188e565b61054c565b60405161017f91906118d3565b60405180910390f35b348015610193575f80fd5b5061019c6105c5565b6040516101a9919061190e565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d39190611981565b6105df565b6040516101e591906119c4565b60405180910390f35b3480156101f9575f80fd5b50610202610638565b60405161020f919061190e565b60405180910390f35b610220610652565b005b34801561022d575f80fd5b5061024860048036038101906102439190611a93565b6106a3565b005b348015610255575f80fd5b50610270600480360381019061026b9190611b66565b6107ad565b005b34801561027d575f80fd5b5061029860048036038101906102939190611b66565b610957565b6040516102a591906119c4565b60405180910390f35b6102b661095e565b005b3480156102c3575f80fd5b506102de60048036038101906102d99190611981565b610997565b6040516102eb91906119c4565b60405180910390f35b61030e60048036038101906103099190611b66565b6109dc565b60405161031b91906118d3565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190611c06565b610ba9565b60405161035791906118d3565b60405180910390f35b610368610c0d565b005b348015610375575f80fd5b5061037e610c20565b60405161038b9190611c60565b60405180910390f35b34801561039f575f80fd5b506103a8610c48565b6040516103b5919061190e565b60405180910390f35b3480156103c9575f80fd5b506103e460048036038101906103df9190611981565b610c61565b6040516103f191906119c4565b60405180910390f35b348015610405575f80fd5b5061040e610d18565b60405161041b91906119c4565b60405180910390f35b61043e60048036038101906104399190611981565b610d5f565b005b34801561044b575f80fd5b5061046660048036038101906104619190611b66565b610d9d565b60405161047391906118d3565b60405180910390f35b61049660048036038101906104919190611981565b610e82565b005b3480156104a3575f80fd5b506104be60048036038101906104b99190611b66565b610eab565b6040516104cb91906118d3565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190611981565b610faa565b60405161050791906118d3565b60405180910390f35b34801561051b575f80fd5b5061053660048036038101906105319190611981565b611039565b60405161054391906119c4565b60405180910390f35b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105be57506105bd82611052565b5b9050919050565b600260089054906101000a900467ffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461062783426110cb565b6106319190611ca6565b9050919050565b600260109054906101000a900467ffffffffffffffff1681565b5f61065b61118c565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6106ab611196565b8181905084849050146106ea576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156107a65782828281811061070a57610709611cd9565b5b905060200201602081019061071f9190611d30565b60015f87878581811061073557610734611cd9565b5b905060200201602081019061074a9190611981565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ec565b5050505050565b5f6107b66111cd565b905080546003825580156107e85760018160011c14303b106107df5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107f99190611f7a565b9050806040015160025f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060600151600260086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060800151600260106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061088d815f01516111f6565b5f5b81602001515181101561091b576001805f846020015184815181106108b7576108b6611cd9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061088f565b50508015610952576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109ed9190612125565b90505f6002811115610a0257610a0161216c565b5b815f01516002811115610a1857610a1761216c565b5b03610a8e575f8160600151806020019051810190610a3691906121fc565b9050805f01513414610a88578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a7f929190612227565b60405180910390fd5b50610b9d565b60016002811115610aa257610aa161216c565b5b815f01516002811115610ab857610ab761216c565b5b03610b93575f8160600151806020019051810190610ad691906121fc565b9050610b10826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166112cc909392919063ffffffff16565b805f0151610b4130846020015173ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b1015610b8d578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b84929190612227565b60405180910390fd5b50610b9c565b5f915050610ba3565b5b60019150505b92915050565b5f805f90505b83839050811015610c0157610be7848483818110610bd057610bcf611cd9565b5b9050602002810190610be2919061225a565b610eab565b610bf4575f915050610c07565b8080600101915050610baf565b50600190505b92915050565b610c15611196565b610c1e5f611359565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900467ffffffffffffffff1681565b5f805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610cc457610cbf308473ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b610cc6565b475b9050805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d1091906122bc565b915050919050565b5f600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16610d5091906122ef565b67ffffffffffffffff16905090565b610d67611196565b63389a75e1600c52805f526020600c208054421115610d8d57636f5e88185f526004601cfd5b5f815550610d9a81611359565b50565b5f610da6611196565b5f8383810190610db69190612125565b90505f6002811115610dcb57610dca61216c565b5b815f01516002811115610de157610de061216c565b5b1480610e14575060016002811115610dfc57610dfb61216c565b5b815f01516002811115610e1257610e1161216c565b5b145b15610e6d575f8160600151806020019051810190610e3291906121fc565b9050610e67826020015183604001515f845f015114610e5457835f0151610e62565b610e6185602001516105df565b5b61141f565b50610e76565b5f915050610e7c565b60019150505b92915050565b610e8a611196565b8060601b610e9f57637448fbae5f526004601cfd5b610ea881611359565b50565b5f610eb533610faa565b610eeb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610efb9190612125565b905060016002811115610f1157610f1061216c565b5b815f01516002811115610f2757610f2661216c565b5b1480610f5957505f6002811115610f4157610f4061216c565b5b815f01516002811115610f5757610f5661216c565b5b145b15610f95575f8160600151806020019051810190610f7791906121fc565b9050610f8f82602001518360400151835f015161141f565b50610f9e565b5f915050610fa4565b60019150505b92915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110325750611003610c20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110c457506110c382611637565b5b9050919050565b5f805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461112e57611129308573ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b611130565b475b90506111835f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548261117d91906122bc565b846116a0565b91505092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146111cb576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6111fe6117be565b15611276577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561123857630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506112c9565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661131757637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113616117be565b156113c6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061141c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd21268540361143d5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bd578282826040517fbf182be80000000000000000000000000000000000000000000000000000000081526004016114b49392919061232a565b60405180910390fd5b6114c6836105df565b81111561151657826114d7846105df565b826040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161150d9392919061235f565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461156191906122bc565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115aa576115a582826117c2565b6115d6565b6115d582828573ffffffffffffffffffffffffffffffffffffffff166117df9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161161e929190612227565b60405180910390a23868929eee149b4bd2126855505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f600260109054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff166116d891906122ef565b67ffffffffffffffff168267ffffffffffffffff1610156116fb575f90506117b8565b600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661173291906122ef565b67ffffffffffffffff168267ffffffffffffffff1610611754578290506117b8565b600260089054906101000a900467ffffffffffffffff1667ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16836117969190612394565b67ffffffffffffffff16846117ab91906123cf565b6117b5919061243d565b90505b92915050565b5f90565b5f385f3884865af16117db5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661181f576390b8ec185f526004601cfd5b5f603452505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61186d81611839565b8114611877575f80fd5b50565b5f8135905061188881611864565b92915050565b5f602082840312156118a3576118a2611831565b5b5f6118b08482850161187a565b91505092915050565b5f8115159050919050565b6118cd816118b9565b82525050565b5f6020820190506118e65f8301846118c4565b92915050565b5f67ffffffffffffffff82169050919050565b611908816118ec565b82525050565b5f6020820190506119215f8301846118ff565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195082611927565b9050919050565b61196081611946565b811461196a575f80fd5b50565b5f8135905061197b81611957565b92915050565b5f6020828403121561199657611995611831565b5b5f6119a38482850161196d565b91505092915050565b5f819050919050565b6119be816119ac565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126119fe576119fd6119dd565b5b8235905067ffffffffffffffff811115611a1b57611a1a6119e1565b5b602083019150836020820283011115611a3757611a366119e5565b5b9250929050565b5f8083601f840112611a5357611a526119dd565b5b8235905067ffffffffffffffff811115611a7057611a6f6119e1565b5b602083019150836020820283011115611a8c57611a8b6119e5565b5b9250929050565b5f805f8060408587031215611aab57611aaa611831565b5b5f85013567ffffffffffffffff811115611ac857611ac7611835565b5b611ad4878288016119e9565b9450945050602085013567ffffffffffffffff811115611af757611af6611835565b5b611b0387828801611a3e565b925092505092959194509250565b5f8083601f840112611b2657611b256119dd565b5b8235905067ffffffffffffffff811115611b4357611b426119e1565b5b602083019150836001820283011115611b5f57611b5e6119e5565b5b9250929050565b5f8060208385031215611b7c57611b7b611831565b5b5f83013567ffffffffffffffff811115611b9957611b98611835565b5b611ba585828601611b11565b92509250509250929050565b5f8083601f840112611bc657611bc56119dd565b5b8235905067ffffffffffffffff811115611be357611be26119e1565b5b602083019150836020820283011115611bff57611bfe6119e5565b5b9250929050565b5f8060208385031215611c1c57611c1b611831565b5b5f83013567ffffffffffffffff811115611c3957611c38611835565b5b611c4585828601611bb1565b92509250509250929050565b611c5a81611946565b82525050565b5f602082019050611c735f830184611c51565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cb0826119ac565b9150611cbb836119ac565b9250828203905081811115611cd357611cd2611c79565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611d0f816118b9565b8114611d19575f80fd5b50565b5f81359050611d2a81611d06565b92915050565b5f60208284031215611d4557611d44611831565b5b5f611d5284828501611d1c565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611da582611d5f565b810181811067ffffffffffffffff82111715611dc457611dc3611d6f565b5b80604052505050565b5f611dd6611828565b9050611de28282611d9c565b919050565b5f80fd5b5f67ffffffffffffffff821115611e0557611e04611d6f565b5b602082029050602081019050919050565b5f611e28611e2384611deb565b611dcd565b90508083825260208201905060208402830185811115611e4b57611e4a6119e5565b5b835b81811015611e745780611e60888261196d565b845260208401935050602081019050611e4d565b5050509392505050565b5f82601f830112611e9257611e916119dd565b5b8135611ea2848260208601611e16565b91505092915050565b611eb4816118ec565b8114611ebe575f80fd5b50565b5f81359050611ecf81611eab565b92915050565b5f60a08284031215611eea57611ee9611d5b565b5b611ef460a0611dcd565b90505f611f038482850161196d565b5f83015250602082013567ffffffffffffffff811115611f2657611f25611de7565b5b611f3284828501611e7e565b6020830152506040611f4684828501611ec1565b6040830152506060611f5a84828501611ec1565b6060830152506080611f6e84828501611ec1565b60808301525092915050565b5f60208284031215611f8f57611f8e611831565b5b5f82013567ffffffffffffffff811115611fac57611fab611835565b5b611fb884828501611ed5565b91505092915050565b60038110611fcd575f80fd5b50565b5f81359050611fde81611fc1565b92915050565b5f80fd5b5f67ffffffffffffffff82111561200257612001611d6f565b5b61200b82611d5f565b9050602081019050919050565b828183375f83830152505050565b5f61203861203384611fe8565b611dcd565b90508281526020810184848401111561205457612053611fe4565b5b61205f848285612018565b509392505050565b5f82601f83011261207b5761207a6119dd565b5b813561208b848260208601612026565b91505092915050565b5f608082840312156120a9576120a8611d5b565b5b6120b36080611dcd565b90505f6120c284828501611fd0565b5f8301525060206120d58482850161196d565b60208301525060406120e98482850161196d565b604083015250606082013567ffffffffffffffff81111561210d5761210c611de7565b5b61211984828501612067565b60608301525092915050565b5f6020828403121561213a57612139611831565b5b5f82013567ffffffffffffffff81111561215757612156611835565b5b61216384828501612094565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6121a2816119ac565b81146121ac575f80fd5b50565b5f815190506121bd81612199565b92915050565b5f602082840312156121d8576121d7611d5b565b5b6121e26020611dcd565b90505f6121f1848285016121af565b5f8301525092915050565b5f6020828403121561221157612210611831565b5b5f61221e848285016121c3565b91505092915050565b5f60408201905061223a5f830185611c51565b61224760208301846119b5565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f80833560016020038436030381126122765761227561224e565b5b80840192508235915067ffffffffffffffff82111561229857612297612252565b5b6020830192506001820236038313156122b4576122b3612256565b5b509250929050565b5f6122c6826119ac565b91506122d1836119ac565b92508282019050808211156122e9576122e8611c79565b5b92915050565b5f6122f9826118ec565b9150612304836118ec565b9250828201905067ffffffffffffffff81111561232457612323611c79565b5b92915050565b5f60608201905061233d5f830186611c51565b61234a6020830185611c51565b61235760408301846119b5565b949350505050565b5f6060820190506123725f830186611c51565b61237f60208301856119b5565b61238c60408301846119b5565b949350505050565b5f61239e826118ec565b91506123a9836118ec565b9250828203905067ffffffffffffffff8111156123c9576123c8611c79565b5b92915050565b5f6123d9826119ac565b91506123e4836119ac565b92508282026123f2816119ac565b9150828204841483151761240957612408611c79565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612447826119ac565b9150612452836119ac565b92508261246257612461612410565b5b82820490509291505056fea26469706673582212200800c5718970c108b16c08f87d484853c64c49e10cd30ba20a5593885273a25764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x24A3 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x143 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61400C99 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF04E283E GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x440 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x510 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x61400C99 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0xEFBE1C1C EQ PUSH2 0x3FA JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x4359D28A GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2F4 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xFB5A6B4 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x13D033C0 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x218 JUMPI PUSH2 0x14A JUMP JUMPDEST CALLDATASIZE PUSH2 0x14A JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x188E JUMP JUMPDEST PUSH2 0x54C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x202 PUSH2 0x638 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20F SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x220 PUSH2 0x652 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0x1A93 JUMP JUMPDEST PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x298 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B6 PUSH2 0x95E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D9 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x997 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EB SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x9DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x34A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x345 SWAP2 SWAP1 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x357 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH2 0xC0D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37E PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A8 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B5 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DF SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x40E PUSH2 0xD18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x41B SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x439 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xD5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xD9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x473 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x496 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x491 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B9 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CB SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F5 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xFAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x507 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x536 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x1039 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x543 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5BE JUMPI POP PUSH2 0x5BD DUP3 PUSH2 0x1052 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x627 DUP4 TIMESTAMP PUSH2 0x10CB JUMP JUMPDEST PUSH2 0x631 SWAP2 SWAP1 PUSH2 0x1CA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x65B PUSH2 0x118C JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x1196 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x6EA JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x70A JUMPI PUSH2 0x709 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x1D30 JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x735 JUMPI PUSH2 0x734 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x74A SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x7B6 PUSH2 0x11CD JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x7DF JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x1F7A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x80 ADD MLOAD PUSH1 0x2 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x88D DUP2 PUSH0 ADD MLOAD PUSH2 0x11F6 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x91B JUMPI PUSH1 0x1 DUP1 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x8B7 JUMPI PUSH2 0x8B6 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x88F JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x952 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9ED SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA17 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA8E JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA36 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA88 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA7F SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAB8 JUMPI PUSH2 0xAB7 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB93 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAD6 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xB10 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CC SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB41 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB8D JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB84 SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9C JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xBA3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xBE7 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xBD0 JUMPI PUSH2 0xBCF PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xBE2 SWAP2 SWAP1 PUSH2 0x225A JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH2 0xBF4 JUMPI PUSH0 SWAP2 POP POP PUSH2 0xC07 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xBAF JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC15 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0xC1E PUSH0 PUSH2 0x1359 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC4 JUMPI PUSH2 0xCBF ADDRESS DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xCC6 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xD10 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD50 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xD67 PUSH2 0x1196 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD8D JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD9A DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 PUSH2 0x1196 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xDB6 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDE1 JUMPI PUSH2 0xDE0 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xE14 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI PUSH2 0xDFB PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE12 JUMPI PUSH2 0xE11 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xE6D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE32 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xE67 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xE54 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xE62 JUMP JUMPDEST PUSH2 0xE61 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x5DF JUMP JUMPDEST JUMPDEST PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xE76 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x1196 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE9F JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xEA8 DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEB5 CALLER PUSH2 0xFAA JUMP JUMPDEST PUSH2 0xEEB JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEFB SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF11 JUMPI PUSH2 0xF10 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF27 JUMPI PUSH2 0xF26 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF59 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF41 JUMPI PUSH2 0xF40 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF57 JUMPI PUSH2 0xF56 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xF95 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF77 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xF8F DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xF9E JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xFA4 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1032 JUMPI POP PUSH2 0x1003 PUSH2 0xC20 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x10C4 JUMPI POP PUSH2 0x10C3 DUP3 PUSH2 0x1637 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x112E JUMPI PUSH2 0x1129 ADDRESS DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1130 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP PUSH2 0x1183 PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP3 PUSH2 0x117D SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST DUP5 PUSH2 0x16A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x11CB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x1276 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1238 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x12C9 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1317 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1361 PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x13C6 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x141C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x143D JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BD JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x232A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14C6 DUP4 PUSH2 0x5DF JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1516 JUMPI DUP3 PUSH2 0x14D7 DUP5 PUSH2 0x5DF JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AA JUMPI PUSH2 0x15A5 DUP3 DUP3 PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST PUSH2 0x15D5 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x17DF SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x161E SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x16D8 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x16FB JUMPI PUSH0 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x1732 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT PUSH2 0x1754 JUMPI DUP3 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1796 SWAP2 SWAP1 PUSH2 0x2394 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH2 0x17AB SWAP2 SWAP1 PUSH2 0x23CF JUMP JUMPDEST PUSH2 0x17B5 SWAP2 SWAP1 PUSH2 0x243D JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x17DB JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x181F JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x1839 JUMP JUMPDEST DUP2 EQ PUSH2 0x1877 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1888 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18A3 JUMPI PUSH2 0x18A2 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18B0 DUP5 DUP3 DUP6 ADD PUSH2 0x187A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18CD DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18E6 PUSH0 DUP4 ADD DUP5 PUSH2 0x18C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1908 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1921 PUSH0 DUP4 ADD DUP5 PUSH2 0x18FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1950 DUP3 PUSH2 0x1927 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1960 DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP2 EQ PUSH2 0x196A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x197B DUP2 PUSH2 0x1957 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1996 JUMPI PUSH2 0x1995 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19A3 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19BE DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19D7 PUSH0 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A1B JUMPI PUSH2 0x1A1A PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A37 JUMPI PUSH2 0x1A36 PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A53 JUMPI PUSH2 0x1A52 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A70 JUMPI PUSH2 0x1A6F PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A8C JUMPI PUSH2 0x1A8B PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1AAB JUMPI PUSH2 0x1AAA PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AC8 JUMPI PUSH2 0x1AC7 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1AD4 DUP8 DUP3 DUP9 ADD PUSH2 0x19E9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AF7 JUMPI PUSH2 0x1AF6 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1B03 DUP8 DUP3 DUP9 ADD PUSH2 0x1A3E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B26 JUMPI PUSH2 0x1B25 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B43 JUMPI PUSH2 0x1B42 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B5F JUMPI PUSH2 0x1B5E PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7C JUMPI PUSH2 0x1B7B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B99 JUMPI PUSH2 0x1B98 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1BA5 DUP6 DUP3 DUP7 ADD PUSH2 0x1B11 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BC6 JUMPI PUSH2 0x1BC5 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE3 JUMPI PUSH2 0x1BE2 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1BFF JUMPI PUSH2 0x1BFE PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C1C JUMPI PUSH2 0x1C1B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C39 JUMPI PUSH2 0x1C38 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1C45 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C5A DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1C73 PUSH0 DUP4 ADD DUP5 PUSH2 0x1C51 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1CB0 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x1CBB DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1CD3 JUMPI PUSH2 0x1CD2 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1D0F DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D19 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D2A DUP2 PUSH2 0x1D06 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D45 JUMPI PUSH2 0x1D44 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1D52 DUP5 DUP3 DUP6 ADD PUSH2 0x1D1C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1DA5 DUP3 PUSH2 0x1D5F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1DC4 JUMPI PUSH2 0x1DC3 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1DD6 PUSH2 0x1828 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DE2 DUP3 DUP3 PUSH2 0x1D9C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1E05 JUMPI PUSH2 0x1E04 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1E28 PUSH2 0x1E23 DUP5 PUSH2 0x1DEB JUMP JUMPDEST PUSH2 0x1DCD 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 0x1E4B JUMPI PUSH2 0x1E4A PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E74 JUMPI DUP1 PUSH2 0x1E60 DUP9 DUP3 PUSH2 0x196D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E4D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1E92 JUMPI PUSH2 0x1E91 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EA2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1E16 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EB4 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP2 EQ PUSH2 0x1EBE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1ECF DUP2 PUSH2 0x1EAB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EEA JUMPI PUSH2 0x1EE9 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x1EF4 PUSH1 0xA0 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F03 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F26 JUMPI PUSH2 0x1F25 PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 ADD PUSH2 0x1E7E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1F46 DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1F5A DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1F6E DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8F JUMPI PUSH2 0x1F8E PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FAC JUMPI PUSH2 0x1FAB PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1FB8 DUP5 DUP3 DUP6 ADD PUSH2 0x1ED5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1FCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FDE DUP2 PUSH2 0x1FC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH2 0x200B DUP3 PUSH2 0x1D5F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2038 PUSH2 0x2033 DUP5 PUSH2 0x1FE8 JUMP JUMPDEST PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2054 JUMPI PUSH2 0x2053 PUSH2 0x1FE4 JUMP JUMPDEST JUMPDEST PUSH2 0x205F DUP5 DUP3 DUP6 PUSH2 0x2018 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x207B JUMPI PUSH2 0x207A PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x208B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2026 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A9 JUMPI PUSH2 0x20A8 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x20B3 PUSH1 0x80 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x20C2 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD0 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x20D5 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x20E9 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x2119 DUP5 DUP3 DUP6 ADD PUSH2 0x2067 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x213A JUMPI PUSH2 0x2139 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2156 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x2163 DUP5 DUP3 DUP6 ADD PUSH2 0x2094 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x21A2 DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP2 EQ PUSH2 0x21AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x21BD DUP2 PUSH2 0x2199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21D8 JUMPI PUSH2 0x21D7 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x21E2 PUSH1 0x20 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x21F1 DUP5 DUP3 DUP6 ADD PUSH2 0x21AF JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x221E DUP5 DUP3 DUP6 ADD PUSH2 0x21C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x223A PUSH0 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2247 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2276 JUMPI PUSH2 0x2275 PUSH2 0x224E JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2298 JUMPI PUSH2 0x2297 PUSH2 0x2252 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x22B4 JUMPI PUSH2 0x22B3 PUSH2 0x2256 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C6 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x22D1 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x22E9 JUMPI PUSH2 0x22E8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22F9 DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x2304 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2324 JUMPI PUSH2 0x2323 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x233D PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x234A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2357 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2372 PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x237F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x238C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x239E DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x23A9 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23C9 JUMPI PUSH2 0x23C8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23D9 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x23E4 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x23F2 DUP2 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2409 JUMPI PUSH2 0x2408 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2447 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2452 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2462 JUMPI PUSH2 0x2461 PUSH2 0x2410 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD STOP 0xC5 PUSH18 0x8970C108B16C08F87D484853C64C49E10CD3 SIGNEXTEND LOG2 EXP SSTORE SWAP4 DUP9 MSTORE PUSH20 0xA25764736F6C6343000819003300000000000000 ","sourceMap":"1481:10635:39:-:0;;;2751:53;;;;;;;;;;2803:28:37;2820:10;2803:16;;;:28;;:::i;:::-;2775:22:39;:20;;;:22;;:::i;:::-;1481:10635;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;1481:10635:39:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_13661":{"entryPoint":null,"id":13661,"parameterSlots":0,"returnSlots":0},"@_13668":{"entryPoint":null,"id":13668,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":4502,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":6078,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":4557,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":4598,"id":6302,"parameterSlots":1,"returnSlots":0},"@_linearVestedAmount_15409":{"entryPoint":5792,"id":15409,"parameterSlots":2,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4492,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":4953,"id":6316,"parameterSlots":1,"returnSlots":0},"@_transferFungible_15328":{"entryPoint":5151,"id":15328,"parameterSlots":3,"returnSlots":0},"@_vestedAllocation_15370":{"entryPoint":4299,"id":15370,"parameterSlots":2,"returnSlots":1},"@allocate_14925":{"entryPoint":2524,"id":14925,"parameterSlots":2,"returnSlots":1},"@available_15226":{"entryPoint":1503,"id":15226,"parameterSlots":1,"returnSlots":1},"@balanceOf_11267":{"entryPoint":4902,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2398,"id":6382,"parameterSlots":0,"returnSlots":0},"@cliff_14730":{"entryPoint":1592,"id":14730,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3423,"id":6396,"parameterSlots":1,"returnSlots":0},"@disburseBatch_15089":{"entryPoint":2985,"id":15089,"parameterSlots":2,"returnSlots":1},"@disburse_15054":{"entryPoint":3755,"id":15054,"parameterSlots":2,"returnSlots":1},"@distributed_15240":{"entryPoint":2455,"id":15240,"parameterSlots":1,"returnSlots":1},"@duration_14727":{"entryPoint":1477,"id":14727,"parameterSlots":0,"returnSlots":0},"@end_15165":{"entryPoint":3352,"id":15165,"parameterSlots":0,"returnSlots":1},"@initialize_14815":{"entryPoint":1965,"id":14815,"parameterSlots":2,"returnSlots":0},"@isAuthorized_15154":{"entryPoint":4010,"id":15154,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":3104,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4153,"id":6414,"parameterSlots":1,"returnSlots":1},"@reclaim_14994":{"entryPoint":3485,"id":14994,"parameterSlots":2,"returnSlots":1},"@reconcile_15252":{"entryPoint":2391,"id":15252,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":3085,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1618,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11089":{"entryPoint":6082,"id":11089,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_11177":{"entryPoint":4812,"id":11177,"parameterSlots":4,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":6111,"id":11219,"parameterSlots":3,"returnSlots":0},"@setAuthorized_15135":{"entryPoint":1699,"id":15135,"parameterSlots":4,"returnSlots":0},"@start_14724":{"entryPoint":3144,"id":14724,"parameterSlots":0,"returnSlots":0},"@supportsInterface_13636":{"entryPoint":1356,"id":13636,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":4178,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":5687,"id":2844,"parameterSlots":1,"returnSlots":1},"@total_15203":{"entryPoint":3169,"id":15203,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":3714,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7702,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":8230,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6509,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":6633,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7806,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":6718,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":7089,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":7452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":6266,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":6929,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":8295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_AssetType_$13471":{"entryPoint":8144,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":8643,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$14711_memory_ptr":{"entryPoint":7893,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":8340,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":7873,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6529,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":6803,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":7174,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":7472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":6286,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":7014,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":8700,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$14711_memory_ptr":{"entryPoint":8058,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":8485,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7249,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6340,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6581,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":6399,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7264,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":9002,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":8743,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":9055,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":6355,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":6596,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":6414,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":8794,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":7629,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":6184,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7659,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":8168,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":8892,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":8943,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":9277,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":9167,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":7334,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint64":{"entryPoint":9108,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6470,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":6329,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":6201,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":6439,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6572,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":6380,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":8216,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":7580,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":7289,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":9232,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":8556,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7385,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7535,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":6625,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6621,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":8786,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":7515,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":8782,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":7655,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":6629,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":8790,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":8164,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6197,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6193,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":7519,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":6487,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7430,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":6244,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_AssetType_$13471":{"entryPoint":8129,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8601,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":7851,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:22532:53","nodeType":"YulBlock","src":"0:22532:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1562:57:53","nodeType":"YulBlock","src":"1562:57:53","statements":[{"nativeSrc":"1572:41:53","nodeType":"YulAssignment","src":"1572:41:53","value":{"arguments":[{"name":"value","nativeSrc":"1587:5:53","nodeType":"YulIdentifier","src":"1587:5:53"},{"kind":"number","nativeSrc":"1594:18:53","nodeType":"YulLiteral","src":"1594:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1583:3:53","nodeType":"YulIdentifier","src":"1583:3:53"},"nativeSrc":"1583:30:53","nodeType":"YulFunctionCall","src":"1583:30:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1572:7:53","nodeType":"YulIdentifier","src":"1572:7:53"}]}]},"name":"cleanup_t_uint64","nativeSrc":"1518:101:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1544:5:53","nodeType":"YulTypedName","src":"1544:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1554:7:53","nodeType":"YulTypedName","src":"1554:7:53","type":""}],"src":"1518:101:53"},{"body":{"nativeSrc":"1688:52:53","nodeType":"YulBlock","src":"1688:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1705:3:53","nodeType":"YulIdentifier","src":"1705:3:53"},{"arguments":[{"name":"value","nativeSrc":"1727:5:53","nodeType":"YulIdentifier","src":"1727:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"1710:16:53","nodeType":"YulIdentifier","src":"1710:16:53"},"nativeSrc":"1710:23:53","nodeType":"YulFunctionCall","src":"1710:23:53"}],"functionName":{"name":"mstore","nativeSrc":"1698:6:53","nodeType":"YulIdentifier","src":"1698:6:53"},"nativeSrc":"1698:36:53","nodeType":"YulFunctionCall","src":"1698:36:53"},"nativeSrc":"1698:36:53","nodeType":"YulExpressionStatement","src":"1698:36:53"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"1625:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1676:5:53","nodeType":"YulTypedName","src":"1676:5:53","type":""},{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulTypedName","src":"1683:3:53","type":""}],"src":"1625:115:53"},{"body":{"nativeSrc":"1842:122:53","nodeType":"YulBlock","src":"1842:122:53","statements":[{"nativeSrc":"1852:26:53","nodeType":"YulAssignment","src":"1852:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1864:9:53","nodeType":"YulIdentifier","src":"1864:9:53"},{"kind":"number","nativeSrc":"1875:2:53","nodeType":"YulLiteral","src":"1875:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1860:3:53","nodeType":"YulIdentifier","src":"1860:3:53"},"nativeSrc":"1860:18:53","nodeType":"YulFunctionCall","src":"1860:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1852:4:53","nodeType":"YulIdentifier","src":"1852:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1930:6:53","nodeType":"YulIdentifier","src":"1930:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1943:9:53","nodeType":"YulIdentifier","src":"1943:9:53"},{"kind":"number","nativeSrc":"1954:1:53","nodeType":"YulLiteral","src":"1954:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1939:3:53","nodeType":"YulIdentifier","src":"1939:3:53"},"nativeSrc":"1939:17:53","nodeType":"YulFunctionCall","src":"1939:17:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"1888:41:53","nodeType":"YulIdentifier","src":"1888:41:53"},"nativeSrc":"1888:69:53","nodeType":"YulFunctionCall","src":"1888:69:53"},"nativeSrc":"1888:69:53","nodeType":"YulExpressionStatement","src":"1888:69:53"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"1746:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1814:9:53","nodeType":"YulTypedName","src":"1814:9:53","type":""},{"name":"value0","nativeSrc":"1826:6:53","nodeType":"YulTypedName","src":"1826:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1837:4:53","nodeType":"YulTypedName","src":"1837:4:53","type":""}],"src":"1746:218:53"},{"body":{"nativeSrc":"2015:81:53","nodeType":"YulBlock","src":"2015:81:53","statements":[{"nativeSrc":"2025:65:53","nodeType":"YulAssignment","src":"2025:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2040:5:53","nodeType":"YulIdentifier","src":"2040:5:53"},{"kind":"number","nativeSrc":"2047:42:53","nodeType":"YulLiteral","src":"2047:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2036:3:53","nodeType":"YulIdentifier","src":"2036:3:53"},"nativeSrc":"2036:54:53","nodeType":"YulFunctionCall","src":"2036:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2025:7:53","nodeType":"YulIdentifier","src":"2025:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1970:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1997:5:53","nodeType":"YulTypedName","src":"1997:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2007:7:53","nodeType":"YulTypedName","src":"2007:7:53","type":""}],"src":"1970:126:53"},{"body":{"nativeSrc":"2147:51:53","nodeType":"YulBlock","src":"2147:51:53","statements":[{"nativeSrc":"2157:35:53","nodeType":"YulAssignment","src":"2157:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2186:5:53","nodeType":"YulIdentifier","src":"2186:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2168:17:53","nodeType":"YulIdentifier","src":"2168:17:53"},"nativeSrc":"2168:24:53","nodeType":"YulFunctionCall","src":"2168:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2157:7:53","nodeType":"YulIdentifier","src":"2157:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2102:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2129:5:53","nodeType":"YulTypedName","src":"2129:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2139:7:53","nodeType":"YulTypedName","src":"2139:7:53","type":""}],"src":"2102:96:53"},{"body":{"nativeSrc":"2247:79:53","nodeType":"YulBlock","src":"2247:79:53","statements":[{"body":{"nativeSrc":"2304:16:53","nodeType":"YulBlock","src":"2304:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2313:1:53","nodeType":"YulLiteral","src":"2313:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2316:1:53","nodeType":"YulLiteral","src":"2316:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2306:6:53","nodeType":"YulIdentifier","src":"2306:6:53"},"nativeSrc":"2306:12:53","nodeType":"YulFunctionCall","src":"2306:12:53"},"nativeSrc":"2306:12:53","nodeType":"YulExpressionStatement","src":"2306:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2270:5:53","nodeType":"YulIdentifier","src":"2270:5:53"},{"arguments":[{"name":"value","nativeSrc":"2295:5:53","nodeType":"YulIdentifier","src":"2295:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2277:17:53","nodeType":"YulIdentifier","src":"2277:17:53"},"nativeSrc":"2277:24:53","nodeType":"YulFunctionCall","src":"2277:24:53"}],"functionName":{"name":"eq","nativeSrc":"2267:2:53","nodeType":"YulIdentifier","src":"2267:2:53"},"nativeSrc":"2267:35:53","nodeType":"YulFunctionCall","src":"2267:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2260:6:53","nodeType":"YulIdentifier","src":"2260:6:53"},"nativeSrc":"2260:43:53","nodeType":"YulFunctionCall","src":"2260:43:53"},"nativeSrc":"2257:63:53","nodeType":"YulIf","src":"2257:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"2204:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2240:5:53","nodeType":"YulTypedName","src":"2240:5:53","type":""}],"src":"2204:122:53"},{"body":{"nativeSrc":"2384:87:53","nodeType":"YulBlock","src":"2384:87:53","statements":[{"nativeSrc":"2394:29:53","nodeType":"YulAssignment","src":"2394:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2416:6:53","nodeType":"YulIdentifier","src":"2416:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2403:12:53","nodeType":"YulIdentifier","src":"2403:12:53"},"nativeSrc":"2403:20:53","nodeType":"YulFunctionCall","src":"2403:20:53"},"variableNames":[{"name":"value","nativeSrc":"2394:5:53","nodeType":"YulIdentifier","src":"2394:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2459:5:53","nodeType":"YulIdentifier","src":"2459:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2432:26:53","nodeType":"YulIdentifier","src":"2432:26:53"},"nativeSrc":"2432:33:53","nodeType":"YulFunctionCall","src":"2432:33:53"},"nativeSrc":"2432:33:53","nodeType":"YulExpressionStatement","src":"2432:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"2332:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2362:6:53","nodeType":"YulTypedName","src":"2362:6:53","type":""},{"name":"end","nativeSrc":"2370:3:53","nodeType":"YulTypedName","src":"2370:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2378:5:53","nodeType":"YulTypedName","src":"2378:5:53","type":""}],"src":"2332:139:53"},{"body":{"nativeSrc":"2543:263:53","nodeType":"YulBlock","src":"2543:263:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:117:53","nodeType":"YulBlock","src":"2682:117:53","statements":[{"nativeSrc":"2697:15:53","nodeType":"YulVariableDeclaration","src":"2697:15:53","value":{"kind":"number","nativeSrc":"2711:1:53","nodeType":"YulLiteral","src":"2711:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"nativeSrc":"2726:63:53","nodeType":"YulAssignment","src":"2726:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2761:9:53","nodeType":"YulIdentifier","src":"2761:9:53"},{"name":"offset","nativeSrc":"2772:6:53","nodeType":"YulIdentifier","src":"2772:6:53"}],"functionName":{"name":"add","nativeSrc":"2757:3:53","nodeType":"YulIdentifier","src":"2757:3:53"},"nativeSrc":"2757:22:53","nodeType":"YulFunctionCall","src":"2757:22:53"},{"name":"dataEnd","nativeSrc":"2781:7:53","nodeType":"YulIdentifier","src":"2781:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2736:20:53","nodeType":"YulIdentifier","src":"2736:20:53"},"nativeSrc":"2736:53:53","nodeType":"YulFunctionCall","src":"2736:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2726:6:53","nodeType":"YulIdentifier","src":"2726:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2477:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2513:9:53","nodeType":"YulTypedName","src":"2513:9:53","type":""},{"name":"dataEnd","nativeSrc":"2524:7:53","nodeType":"YulTypedName","src":"2524:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2477:329:53"},{"body":{"nativeSrc":"2857:32:53","nodeType":"YulBlock","src":"2857:32:53","statements":[{"nativeSrc":"2867:16:53","nodeType":"YulAssignment","src":"2867:16:53","value":{"name":"value","nativeSrc":"2878:5:53","nodeType":"YulIdentifier","src":"2878:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2867:7:53","nodeType":"YulIdentifier","src":"2867:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2812:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2839:5:53","nodeType":"YulTypedName","src":"2839:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2849:7:53","nodeType":"YulTypedName","src":"2849:7:53","type":""}],"src":"2812:77:53"},{"body":{"nativeSrc":"2960:53:53","nodeType":"YulBlock","src":"2960:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2977:3:53","nodeType":"YulIdentifier","src":"2977:3:53"},{"arguments":[{"name":"value","nativeSrc":"3000:5:53","nodeType":"YulIdentifier","src":"3000:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2982:17:53","nodeType":"YulIdentifier","src":"2982:17:53"},"nativeSrc":"2982:24:53","nodeType":"YulFunctionCall","src":"2982:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2970:6:53","nodeType":"YulIdentifier","src":"2970:6:53"},"nativeSrc":"2970:37:53","nodeType":"YulFunctionCall","src":"2970:37:53"},"nativeSrc":"2970:37:53","nodeType":"YulExpressionStatement","src":"2970:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2895:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2948:5:53","nodeType":"YulTypedName","src":"2948:5:53","type":""},{"name":"pos","nativeSrc":"2955:3:53","nodeType":"YulTypedName","src":"2955:3:53","type":""}],"src":"2895:118:53"},{"body":{"nativeSrc":"3117:124:53","nodeType":"YulBlock","src":"3117:124:53","statements":[{"nativeSrc":"3127:26:53","nodeType":"YulAssignment","src":"3127:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3139:9:53","nodeType":"YulIdentifier","src":"3139:9:53"},{"kind":"number","nativeSrc":"3150:2:53","nodeType":"YulLiteral","src":"3150:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3135:3:53","nodeType":"YulIdentifier","src":"3135:3:53"},"nativeSrc":"3135:18:53","nodeType":"YulFunctionCall","src":"3135:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3127:4:53","nodeType":"YulIdentifier","src":"3127:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3207:6:53","nodeType":"YulIdentifier","src":"3207:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3220:9:53","nodeType":"YulIdentifier","src":"3220:9:53"},{"kind":"number","nativeSrc":"3231:1:53","nodeType":"YulLiteral","src":"3231:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3216:3:53","nodeType":"YulIdentifier","src":"3216:3:53"},"nativeSrc":"3216:17:53","nodeType":"YulFunctionCall","src":"3216:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3163:43:53","nodeType":"YulIdentifier","src":"3163:43:53"},"nativeSrc":"3163:71:53","nodeType":"YulFunctionCall","src":"3163:71:53"},"nativeSrc":"3163:71:53","nodeType":"YulExpressionStatement","src":"3163:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3019:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3089:9:53","nodeType":"YulTypedName","src":"3089:9:53","type":""},{"name":"value0","nativeSrc":"3101:6:53","nodeType":"YulTypedName","src":"3101:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3112:4:53","nodeType":"YulTypedName","src":"3112:4:53","type":""}],"src":"3019:222:53"},{"body":{"nativeSrc":"3336:28:53","nodeType":"YulBlock","src":"3336:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3353:1:53","nodeType":"YulLiteral","src":"3353:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3356:1:53","nodeType":"YulLiteral","src":"3356:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3346:6:53","nodeType":"YulIdentifier","src":"3346:6:53"},"nativeSrc":"3346:12:53","nodeType":"YulFunctionCall","src":"3346:12:53"},"nativeSrc":"3346:12:53","nodeType":"YulExpressionStatement","src":"3346:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3247:117:53","nodeType":"YulFunctionDefinition","src":"3247:117:53"},{"body":{"nativeSrc":"3459:28:53","nodeType":"YulBlock","src":"3459:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3476:1:53","nodeType":"YulLiteral","src":"3476:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3479:1:53","nodeType":"YulLiteral","src":"3479:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3469:6:53","nodeType":"YulIdentifier","src":"3469:6:53"},"nativeSrc":"3469:12:53","nodeType":"YulFunctionCall","src":"3469:12:53"},"nativeSrc":"3469:12:53","nodeType":"YulExpressionStatement","src":"3469:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3370:117:53","nodeType":"YulFunctionDefinition","src":"3370:117:53"},{"body":{"nativeSrc":"3582:28:53","nodeType":"YulBlock","src":"3582:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3599:1:53","nodeType":"YulLiteral","src":"3599:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3602:1:53","nodeType":"YulLiteral","src":"3602:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3592:6:53","nodeType":"YulIdentifier","src":"3592:6:53"},"nativeSrc":"3592:12:53","nodeType":"YulFunctionCall","src":"3592:12:53"},"nativeSrc":"3592:12:53","nodeType":"YulExpressionStatement","src":"3592:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3493:117:53","nodeType":"YulFunctionDefinition","src":"3493:117:53"},{"body":{"nativeSrc":"3723:478:53","nodeType":"YulBlock","src":"3723:478:53","statements":[{"body":{"nativeSrc":"3772:83:53","nodeType":"YulBlock","src":"3772:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3774:77:53","nodeType":"YulIdentifier","src":"3774:77:53"},"nativeSrc":"3774:79:53","nodeType":"YulFunctionCall","src":"3774:79:53"},"nativeSrc":"3774:79:53","nodeType":"YulExpressionStatement","src":"3774:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3751:6:53","nodeType":"YulIdentifier","src":"3751:6:53"},{"kind":"number","nativeSrc":"3759:4:53","nodeType":"YulLiteral","src":"3759:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3747:3:53","nodeType":"YulIdentifier","src":"3747:3:53"},"nativeSrc":"3747:17:53","nodeType":"YulFunctionCall","src":"3747:17:53"},{"name":"end","nativeSrc":"3766:3:53","nodeType":"YulIdentifier","src":"3766:3:53"}],"functionName":{"name":"slt","nativeSrc":"3743:3:53","nodeType":"YulIdentifier","src":"3743:3:53"},"nativeSrc":"3743:27:53","nodeType":"YulFunctionCall","src":"3743:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3736:6:53","nodeType":"YulIdentifier","src":"3736:6:53"},"nativeSrc":"3736:35:53","nodeType":"YulFunctionCall","src":"3736:35:53"},"nativeSrc":"3733:122:53","nodeType":"YulIf","src":"3733:122:53"},{"nativeSrc":"3864:30:53","nodeType":"YulAssignment","src":"3864:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3887:6:53","nodeType":"YulIdentifier","src":"3887:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3874:12:53","nodeType":"YulIdentifier","src":"3874:12:53"},"nativeSrc":"3874:20:53","nodeType":"YulFunctionCall","src":"3874:20:53"},"variableNames":[{"name":"length","nativeSrc":"3864:6:53","nodeType":"YulIdentifier","src":"3864:6:53"}]},{"body":{"nativeSrc":"3937:83:53","nodeType":"YulBlock","src":"3937:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3939:77:53","nodeType":"YulIdentifier","src":"3939:77:53"},"nativeSrc":"3939:79:53","nodeType":"YulFunctionCall","src":"3939:79:53"},"nativeSrc":"3939:79:53","nodeType":"YulExpressionStatement","src":"3939:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3909:6:53","nodeType":"YulIdentifier","src":"3909:6:53"},{"kind":"number","nativeSrc":"3917:18:53","nodeType":"YulLiteral","src":"3917:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3906:2:53","nodeType":"YulIdentifier","src":"3906:2:53"},"nativeSrc":"3906:30:53","nodeType":"YulFunctionCall","src":"3906:30:53"},"nativeSrc":"3903:117:53","nodeType":"YulIf","src":"3903:117:53"},{"nativeSrc":"4029:29:53","nodeType":"YulAssignment","src":"4029:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4045:6:53","nodeType":"YulIdentifier","src":"4045:6:53"},{"kind":"number","nativeSrc":"4053:4:53","nodeType":"YulLiteral","src":"4053:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4041:3:53","nodeType":"YulIdentifier","src":"4041:3:53"},"nativeSrc":"4041:17:53","nodeType":"YulFunctionCall","src":"4041:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4029:8:53","nodeType":"YulIdentifier","src":"4029:8:53"}]},{"body":{"nativeSrc":"4112:83:53","nodeType":"YulBlock","src":"4112:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4114:77:53","nodeType":"YulIdentifier","src":"4114:77:53"},"nativeSrc":"4114:79:53","nodeType":"YulFunctionCall","src":"4114:79:53"},"nativeSrc":"4114:79:53","nodeType":"YulExpressionStatement","src":"4114:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4077:8:53","nodeType":"YulIdentifier","src":"4077:8:53"},{"arguments":[{"name":"length","nativeSrc":"4091:6:53","nodeType":"YulIdentifier","src":"4091:6:53"},{"kind":"number","nativeSrc":"4099:4:53","nodeType":"YulLiteral","src":"4099:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4087:3:53","nodeType":"YulIdentifier","src":"4087:3:53"},"nativeSrc":"4087:17:53","nodeType":"YulFunctionCall","src":"4087:17:53"}],"functionName":{"name":"add","nativeSrc":"4073:3:53","nodeType":"YulIdentifier","src":"4073:3:53"},"nativeSrc":"4073:32:53","nodeType":"YulFunctionCall","src":"4073:32:53"},{"name":"end","nativeSrc":"4107:3:53","nodeType":"YulIdentifier","src":"4107:3:53"}],"functionName":{"name":"gt","nativeSrc":"4070:2:53","nodeType":"YulIdentifier","src":"4070:2:53"},"nativeSrc":"4070:41:53","nodeType":"YulFunctionCall","src":"4070:41:53"},"nativeSrc":"4067:128:53","nodeType":"YulIf","src":"4067:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3633:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3690:6:53","nodeType":"YulTypedName","src":"3690:6:53","type":""},{"name":"end","nativeSrc":"3698:3:53","nodeType":"YulTypedName","src":"3698:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3706:8:53","nodeType":"YulTypedName","src":"3706:8:53","type":""},{"name":"length","nativeSrc":"3716:6:53","nodeType":"YulTypedName","src":"3716:6:53","type":""}],"src":"3633:568:53"},{"body":{"nativeSrc":"4308:478:53","nodeType":"YulBlock","src":"4308:478:53","statements":[{"body":{"nativeSrc":"4357:83:53","nodeType":"YulBlock","src":"4357:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4359:77:53","nodeType":"YulIdentifier","src":"4359:77:53"},"nativeSrc":"4359:79:53","nodeType":"YulFunctionCall","src":"4359:79:53"},"nativeSrc":"4359:79:53","nodeType":"YulExpressionStatement","src":"4359:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4336:6:53","nodeType":"YulIdentifier","src":"4336:6:53"},{"kind":"number","nativeSrc":"4344:4:53","nodeType":"YulLiteral","src":"4344:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4332:3:53","nodeType":"YulIdentifier","src":"4332:3:53"},"nativeSrc":"4332:17:53","nodeType":"YulFunctionCall","src":"4332:17:53"},{"name":"end","nativeSrc":"4351:3:53","nodeType":"YulIdentifier","src":"4351:3:53"}],"functionName":{"name":"slt","nativeSrc":"4328:3:53","nodeType":"YulIdentifier","src":"4328:3:53"},"nativeSrc":"4328:27:53","nodeType":"YulFunctionCall","src":"4328:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4321:6:53","nodeType":"YulIdentifier","src":"4321:6:53"},"nativeSrc":"4321:35:53","nodeType":"YulFunctionCall","src":"4321:35:53"},"nativeSrc":"4318:122:53","nodeType":"YulIf","src":"4318:122:53"},{"nativeSrc":"4449:30:53","nodeType":"YulAssignment","src":"4449:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4472:6:53","nodeType":"YulIdentifier","src":"4472:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4459:12:53","nodeType":"YulIdentifier","src":"4459:12:53"},"nativeSrc":"4459:20:53","nodeType":"YulFunctionCall","src":"4459:20:53"},"variableNames":[{"name":"length","nativeSrc":"4449:6:53","nodeType":"YulIdentifier","src":"4449:6:53"}]},{"body":{"nativeSrc":"4522:83:53","nodeType":"YulBlock","src":"4522:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4524:77:53","nodeType":"YulIdentifier","src":"4524:77:53"},"nativeSrc":"4524:79:53","nodeType":"YulFunctionCall","src":"4524:79:53"},"nativeSrc":"4524:79:53","nodeType":"YulExpressionStatement","src":"4524:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4494:6:53","nodeType":"YulIdentifier","src":"4494:6:53"},{"kind":"number","nativeSrc":"4502:18:53","nodeType":"YulLiteral","src":"4502:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4491:2:53","nodeType":"YulIdentifier","src":"4491:2:53"},"nativeSrc":"4491:30:53","nodeType":"YulFunctionCall","src":"4491:30:53"},"nativeSrc":"4488:117:53","nodeType":"YulIf","src":"4488:117:53"},{"nativeSrc":"4614:29:53","nodeType":"YulAssignment","src":"4614:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4630:6:53","nodeType":"YulIdentifier","src":"4630:6:53"},{"kind":"number","nativeSrc":"4638:4:53","nodeType":"YulLiteral","src":"4638:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4626:3:53","nodeType":"YulIdentifier","src":"4626:3:53"},"nativeSrc":"4626:17:53","nodeType":"YulFunctionCall","src":"4626:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4614:8:53","nodeType":"YulIdentifier","src":"4614:8:53"}]},{"body":{"nativeSrc":"4697:83:53","nodeType":"YulBlock","src":"4697:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4699:77:53","nodeType":"YulIdentifier","src":"4699:77:53"},"nativeSrc":"4699:79:53","nodeType":"YulFunctionCall","src":"4699:79:53"},"nativeSrc":"4699:79:53","nodeType":"YulExpressionStatement","src":"4699:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4662:8:53","nodeType":"YulIdentifier","src":"4662:8:53"},{"arguments":[{"name":"length","nativeSrc":"4676:6:53","nodeType":"YulIdentifier","src":"4676:6:53"},{"kind":"number","nativeSrc":"4684:4:53","nodeType":"YulLiteral","src":"4684:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4672:3:53","nodeType":"YulIdentifier","src":"4672:3:53"},"nativeSrc":"4672:17:53","nodeType":"YulFunctionCall","src":"4672:17:53"}],"functionName":{"name":"add","nativeSrc":"4658:3:53","nodeType":"YulIdentifier","src":"4658:3:53"},"nativeSrc":"4658:32:53","nodeType":"YulFunctionCall","src":"4658:32:53"},{"name":"end","nativeSrc":"4692:3:53","nodeType":"YulIdentifier","src":"4692:3:53"}],"functionName":{"name":"gt","nativeSrc":"4655:2:53","nodeType":"YulIdentifier","src":"4655:2:53"},"nativeSrc":"4655:41:53","nodeType":"YulFunctionCall","src":"4655:41:53"},"nativeSrc":"4652:128:53","nodeType":"YulIf","src":"4652:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4221:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4275:6:53","nodeType":"YulTypedName","src":"4275:6:53","type":""},{"name":"end","nativeSrc":"4283:3:53","nodeType":"YulTypedName","src":"4283:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4291:8:53","nodeType":"YulTypedName","src":"4291:8:53","type":""},{"name":"length","nativeSrc":"4301:6:53","nodeType":"YulTypedName","src":"4301:6:53","type":""}],"src":"4221:565:53"},{"body":{"nativeSrc":"4942:778:53","nodeType":"YulBlock","src":"4942:778:53","statements":[{"body":{"nativeSrc":"4988:83:53","nodeType":"YulBlock","src":"4988:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4990:77:53","nodeType":"YulIdentifier","src":"4990:77:53"},"nativeSrc":"4990:79:53","nodeType":"YulFunctionCall","src":"4990:79:53"},"nativeSrc":"4990:79:53","nodeType":"YulExpressionStatement","src":"4990:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4963:7:53","nodeType":"YulIdentifier","src":"4963:7:53"},{"name":"headStart","nativeSrc":"4972:9:53","nodeType":"YulIdentifier","src":"4972:9:53"}],"functionName":{"name":"sub","nativeSrc":"4959:3:53","nodeType":"YulIdentifier","src":"4959:3:53"},"nativeSrc":"4959:23:53","nodeType":"YulFunctionCall","src":"4959:23:53"},{"kind":"number","nativeSrc":"4984:2:53","nodeType":"YulLiteral","src":"4984:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4955:3:53","nodeType":"YulIdentifier","src":"4955:3:53"},"nativeSrc":"4955:32:53","nodeType":"YulFunctionCall","src":"4955:32:53"},"nativeSrc":"4952:119:53","nodeType":"YulIf","src":"4952:119:53"},{"nativeSrc":"5081:312:53","nodeType":"YulBlock","src":"5081:312:53","statements":[{"nativeSrc":"5096:45:53","nodeType":"YulVariableDeclaration","src":"5096:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5127:9:53","nodeType":"YulIdentifier","src":"5127:9:53"},{"kind":"number","nativeSrc":"5138:1:53","nodeType":"YulLiteral","src":"5138:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5123:3:53","nodeType":"YulIdentifier","src":"5123:3:53"},"nativeSrc":"5123:17:53","nodeType":"YulFunctionCall","src":"5123:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"5110:12:53","nodeType":"YulIdentifier","src":"5110:12:53"},"nativeSrc":"5110:31:53","nodeType":"YulFunctionCall","src":"5110:31:53"},"variables":[{"name":"offset","nativeSrc":"5100:6:53","nodeType":"YulTypedName","src":"5100:6:53","type":""}]},{"body":{"nativeSrc":"5188:83:53","nodeType":"YulBlock","src":"5188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5190:77:53","nodeType":"YulIdentifier","src":"5190:77:53"},"nativeSrc":"5190:79:53","nodeType":"YulFunctionCall","src":"5190:79:53"},"nativeSrc":"5190:79:53","nodeType":"YulExpressionStatement","src":"5190:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5160:6:53","nodeType":"YulIdentifier","src":"5160:6:53"},{"kind":"number","nativeSrc":"5168:18:53","nodeType":"YulLiteral","src":"5168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5157:2:53","nodeType":"YulIdentifier","src":"5157:2:53"},"nativeSrc":"5157:30:53","nodeType":"YulFunctionCall","src":"5157:30:53"},"nativeSrc":"5154:117:53","nodeType":"YulIf","src":"5154:117:53"},{"nativeSrc":"5285:98:53","nodeType":"YulAssignment","src":"5285:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5355:9:53","nodeType":"YulIdentifier","src":"5355:9:53"},{"name":"offset","nativeSrc":"5366:6:53","nodeType":"YulIdentifier","src":"5366:6:53"}],"functionName":{"name":"add","nativeSrc":"5351:3:53","nodeType":"YulIdentifier","src":"5351:3:53"},"nativeSrc":"5351:22:53","nodeType":"YulFunctionCall","src":"5351:22:53"},{"name":"dataEnd","nativeSrc":"5375:7:53","nodeType":"YulIdentifier","src":"5375:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"5303:47:53","nodeType":"YulIdentifier","src":"5303:47:53"},"nativeSrc":"5303:80:53","nodeType":"YulFunctionCall","src":"5303:80:53"},"variableNames":[{"name":"value0","nativeSrc":"5285:6:53","nodeType":"YulIdentifier","src":"5285:6:53"},{"name":"value1","nativeSrc":"5293:6:53","nodeType":"YulIdentifier","src":"5293:6:53"}]}]},{"nativeSrc":"5403:310:53","nodeType":"YulBlock","src":"5403:310:53","statements":[{"nativeSrc":"5418:46:53","nodeType":"YulVariableDeclaration","src":"5418:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5449:9:53","nodeType":"YulIdentifier","src":"5449:9:53"},{"kind":"number","nativeSrc":"5460:2:53","nodeType":"YulLiteral","src":"5460:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5445:3:53","nodeType":"YulIdentifier","src":"5445:3:53"},"nativeSrc":"5445:18:53","nodeType":"YulFunctionCall","src":"5445:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"5432:12:53","nodeType":"YulIdentifier","src":"5432:12:53"},"nativeSrc":"5432:32:53","nodeType":"YulFunctionCall","src":"5432:32:53"},"variables":[{"name":"offset","nativeSrc":"5422:6:53","nodeType":"YulTypedName","src":"5422:6:53","type":""}]},{"body":{"nativeSrc":"5511:83:53","nodeType":"YulBlock","src":"5511:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5513:77:53","nodeType":"YulIdentifier","src":"5513:77:53"},"nativeSrc":"5513:79:53","nodeType":"YulFunctionCall","src":"5513:79:53"},"nativeSrc":"5513:79:53","nodeType":"YulExpressionStatement","src":"5513:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5483:6:53","nodeType":"YulIdentifier","src":"5483:6:53"},{"kind":"number","nativeSrc":"5491:18:53","nodeType":"YulLiteral","src":"5491:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5480:2:53","nodeType":"YulIdentifier","src":"5480:2:53"},"nativeSrc":"5480:30:53","nodeType":"YulFunctionCall","src":"5480:30:53"},"nativeSrc":"5477:117:53","nodeType":"YulIf","src":"5477:117:53"},{"nativeSrc":"5608:95:53","nodeType":"YulAssignment","src":"5608:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5675:9:53","nodeType":"YulIdentifier","src":"5675:9:53"},{"name":"offset","nativeSrc":"5686:6:53","nodeType":"YulIdentifier","src":"5686:6:53"}],"functionName":{"name":"add","nativeSrc":"5671:3:53","nodeType":"YulIdentifier","src":"5671:3:53"},"nativeSrc":"5671:22:53","nodeType":"YulFunctionCall","src":"5671:22:53"},{"name":"dataEnd","nativeSrc":"5695:7:53","nodeType":"YulIdentifier","src":"5695:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5626:44:53","nodeType":"YulIdentifier","src":"5626:44:53"},"nativeSrc":"5626:77:53","nodeType":"YulFunctionCall","src":"5626:77:53"},"variableNames":[{"name":"value2","nativeSrc":"5608:6:53","nodeType":"YulIdentifier","src":"5608:6:53"},{"name":"value3","nativeSrc":"5616:6:53","nodeType":"YulIdentifier","src":"5616:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4792:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4888:9:53","nodeType":"YulTypedName","src":"4888:9:53","type":""},{"name":"dataEnd","nativeSrc":"4899:7:53","nodeType":"YulTypedName","src":"4899:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4911:6:53","nodeType":"YulTypedName","src":"4911:6:53","type":""},{"name":"value1","nativeSrc":"4919:6:53","nodeType":"YulTypedName","src":"4919:6:53","type":""},{"name":"value2","nativeSrc":"4927:6:53","nodeType":"YulTypedName","src":"4927:6:53","type":""},{"name":"value3","nativeSrc":"4935:6:53","nodeType":"YulTypedName","src":"4935:6:53","type":""}],"src":"4792:928:53"},{"body":{"nativeSrc":"5813:478:53","nodeType":"YulBlock","src":"5813:478:53","statements":[{"body":{"nativeSrc":"5862:83:53","nodeType":"YulBlock","src":"5862:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5864:77:53","nodeType":"YulIdentifier","src":"5864:77:53"},"nativeSrc":"5864:79:53","nodeType":"YulFunctionCall","src":"5864:79:53"},"nativeSrc":"5864:79:53","nodeType":"YulExpressionStatement","src":"5864:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5841:6:53","nodeType":"YulIdentifier","src":"5841:6:53"},{"kind":"number","nativeSrc":"5849:4:53","nodeType":"YulLiteral","src":"5849:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5837:3:53","nodeType":"YulIdentifier","src":"5837:3:53"},"nativeSrc":"5837:17:53","nodeType":"YulFunctionCall","src":"5837:17:53"},{"name":"end","nativeSrc":"5856:3:53","nodeType":"YulIdentifier","src":"5856:3:53"}],"functionName":{"name":"slt","nativeSrc":"5833:3:53","nodeType":"YulIdentifier","src":"5833:3:53"},"nativeSrc":"5833:27:53","nodeType":"YulFunctionCall","src":"5833:27:53"}],"functionName":{"name":"iszero","nativeSrc":"5826:6:53","nodeType":"YulIdentifier","src":"5826:6:53"},"nativeSrc":"5826:35:53","nodeType":"YulFunctionCall","src":"5826:35:53"},"nativeSrc":"5823:122:53","nodeType":"YulIf","src":"5823:122:53"},{"nativeSrc":"5954:30:53","nodeType":"YulAssignment","src":"5954:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"5977:6:53","nodeType":"YulIdentifier","src":"5977:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5964:12:53","nodeType":"YulIdentifier","src":"5964:12:53"},"nativeSrc":"5964:20:53","nodeType":"YulFunctionCall","src":"5964:20:53"},"variableNames":[{"name":"length","nativeSrc":"5954:6:53","nodeType":"YulIdentifier","src":"5954:6:53"}]},{"body":{"nativeSrc":"6027:83:53","nodeType":"YulBlock","src":"6027:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6029:77:53","nodeType":"YulIdentifier","src":"6029:77:53"},"nativeSrc":"6029:79:53","nodeType":"YulFunctionCall","src":"6029:79:53"},"nativeSrc":"6029:79:53","nodeType":"YulExpressionStatement","src":"6029:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5999:6:53","nodeType":"YulIdentifier","src":"5999:6:53"},{"kind":"number","nativeSrc":"6007:18:53","nodeType":"YulLiteral","src":"6007:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5996:2:53","nodeType":"YulIdentifier","src":"5996:2:53"},"nativeSrc":"5996:30:53","nodeType":"YulFunctionCall","src":"5996:30:53"},"nativeSrc":"5993:117:53","nodeType":"YulIf","src":"5993:117:53"},{"nativeSrc":"6119:29:53","nodeType":"YulAssignment","src":"6119:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6135:6:53","nodeType":"YulIdentifier","src":"6135:6:53"},{"kind":"number","nativeSrc":"6143:4:53","nodeType":"YulLiteral","src":"6143:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6131:3:53","nodeType":"YulIdentifier","src":"6131:3:53"},"nativeSrc":"6131:17:53","nodeType":"YulFunctionCall","src":"6131:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"6119:8:53","nodeType":"YulIdentifier","src":"6119:8:53"}]},{"body":{"nativeSrc":"6202:83:53","nodeType":"YulBlock","src":"6202:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6204:77:53","nodeType":"YulIdentifier","src":"6204:77:53"},"nativeSrc":"6204:79:53","nodeType":"YulFunctionCall","src":"6204:79:53"},"nativeSrc":"6204:79:53","nodeType":"YulExpressionStatement","src":"6204:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6167:8:53","nodeType":"YulIdentifier","src":"6167:8:53"},{"arguments":[{"name":"length","nativeSrc":"6181:6:53","nodeType":"YulIdentifier","src":"6181:6:53"},{"kind":"number","nativeSrc":"6189:4:53","nodeType":"YulLiteral","src":"6189:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"6177:3:53","nodeType":"YulIdentifier","src":"6177:3:53"},"nativeSrc":"6177:17:53","nodeType":"YulFunctionCall","src":"6177:17:53"}],"functionName":{"name":"add","nativeSrc":"6163:3:53","nodeType":"YulIdentifier","src":"6163:3:53"},"nativeSrc":"6163:32:53","nodeType":"YulFunctionCall","src":"6163:32:53"},{"name":"end","nativeSrc":"6197:3:53","nodeType":"YulIdentifier","src":"6197:3:53"}],"functionName":{"name":"gt","nativeSrc":"6160:2:53","nodeType":"YulIdentifier","src":"6160:2:53"},"nativeSrc":"6160:41:53","nodeType":"YulFunctionCall","src":"6160:41:53"},"nativeSrc":"6157:128:53","nodeType":"YulIf","src":"6157:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5739:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5780:6:53","nodeType":"YulTypedName","src":"5780:6:53","type":""},{"name":"end","nativeSrc":"5788:3:53","nodeType":"YulTypedName","src":"5788:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"5796:8:53","nodeType":"YulTypedName","src":"5796:8:53","type":""},{"name":"length","nativeSrc":"5806:6:53","nodeType":"YulTypedName","src":"5806:6:53","type":""}],"src":"5739:552:53"},{"body":{"nativeSrc":"6382:442:53","nodeType":"YulBlock","src":"6382:442:53","statements":[{"body":{"nativeSrc":"6428:83:53","nodeType":"YulBlock","src":"6428:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6430:77:53","nodeType":"YulIdentifier","src":"6430:77:53"},"nativeSrc":"6430:79:53","nodeType":"YulFunctionCall","src":"6430:79:53"},"nativeSrc":"6430:79:53","nodeType":"YulExpressionStatement","src":"6430:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6403:7:53","nodeType":"YulIdentifier","src":"6403:7:53"},{"name":"headStart","nativeSrc":"6412:9:53","nodeType":"YulIdentifier","src":"6412:9:53"}],"functionName":{"name":"sub","nativeSrc":"6399:3:53","nodeType":"YulIdentifier","src":"6399:3:53"},"nativeSrc":"6399:23:53","nodeType":"YulFunctionCall","src":"6399:23:53"},{"kind":"number","nativeSrc":"6424:2:53","nodeType":"YulLiteral","src":"6424:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6395:3:53","nodeType":"YulIdentifier","src":"6395:3:53"},"nativeSrc":"6395:32:53","nodeType":"YulFunctionCall","src":"6395:32:53"},"nativeSrc":"6392:119:53","nodeType":"YulIf","src":"6392:119:53"},{"nativeSrc":"6521:296:53","nodeType":"YulBlock","src":"6521:296:53","statements":[{"nativeSrc":"6536:45:53","nodeType":"YulVariableDeclaration","src":"6536:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6567:9:53","nodeType":"YulIdentifier","src":"6567:9:53"},{"kind":"number","nativeSrc":"6578:1:53","nodeType":"YulLiteral","src":"6578:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6563:3:53","nodeType":"YulIdentifier","src":"6563:3:53"},"nativeSrc":"6563:17:53","nodeType":"YulFunctionCall","src":"6563:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"6550:12:53","nodeType":"YulIdentifier","src":"6550:12:53"},"nativeSrc":"6550:31:53","nodeType":"YulFunctionCall","src":"6550:31:53"},"variables":[{"name":"offset","nativeSrc":"6540:6:53","nodeType":"YulTypedName","src":"6540:6:53","type":""}]},{"body":{"nativeSrc":"6628:83:53","nodeType":"YulBlock","src":"6628:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6630:77:53","nodeType":"YulIdentifier","src":"6630:77:53"},"nativeSrc":"6630:79:53","nodeType":"YulFunctionCall","src":"6630:79:53"},"nativeSrc":"6630:79:53","nodeType":"YulExpressionStatement","src":"6630:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6600:6:53","nodeType":"YulIdentifier","src":"6600:6:53"},{"kind":"number","nativeSrc":"6608:18:53","nodeType":"YulLiteral","src":"6608:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6597:2:53","nodeType":"YulIdentifier","src":"6597:2:53"},"nativeSrc":"6597:30:53","nodeType":"YulFunctionCall","src":"6597:30:53"},"nativeSrc":"6594:117:53","nodeType":"YulIf","src":"6594:117:53"},{"nativeSrc":"6725:82:53","nodeType":"YulAssignment","src":"6725:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6779:9:53","nodeType":"YulIdentifier","src":"6779:9:53"},{"name":"offset","nativeSrc":"6790:6:53","nodeType":"YulIdentifier","src":"6790:6:53"}],"functionName":{"name":"add","nativeSrc":"6775:3:53","nodeType":"YulIdentifier","src":"6775:3:53"},"nativeSrc":"6775:22:53","nodeType":"YulFunctionCall","src":"6775:22:53"},{"name":"dataEnd","nativeSrc":"6799:7:53","nodeType":"YulIdentifier","src":"6799:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6743:31:53","nodeType":"YulIdentifier","src":"6743:31:53"},"nativeSrc":"6743:64:53","nodeType":"YulFunctionCall","src":"6743:64:53"},"variableNames":[{"name":"value0","nativeSrc":"6725:6:53","nodeType":"YulIdentifier","src":"6725:6:53"},{"name":"value1","nativeSrc":"6733:6:53","nodeType":"YulIdentifier","src":"6733:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"6297:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6344:9:53","nodeType":"YulTypedName","src":"6344:9:53","type":""},{"name":"dataEnd","nativeSrc":"6355:7:53","nodeType":"YulTypedName","src":"6355:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6367:6:53","nodeType":"YulTypedName","src":"6367:6:53","type":""},{"name":"value1","nativeSrc":"6375:6:53","nodeType":"YulTypedName","src":"6375:6:53","type":""}],"src":"6297:527:53"},{"body":{"nativeSrc":"6946:478:53","nodeType":"YulBlock","src":"6946:478:53","statements":[{"body":{"nativeSrc":"6995:83:53","nodeType":"YulBlock","src":"6995:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6997:77:53","nodeType":"YulIdentifier","src":"6997:77:53"},"nativeSrc":"6997:79:53","nodeType":"YulFunctionCall","src":"6997:79:53"},"nativeSrc":"6997:79:53","nodeType":"YulExpressionStatement","src":"6997:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6974:6:53","nodeType":"YulIdentifier","src":"6974:6:53"},{"kind":"number","nativeSrc":"6982:4:53","nodeType":"YulLiteral","src":"6982:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6970:3:53","nodeType":"YulIdentifier","src":"6970:3:53"},"nativeSrc":"6970:17:53","nodeType":"YulFunctionCall","src":"6970:17:53"},{"name":"end","nativeSrc":"6989:3:53","nodeType":"YulIdentifier","src":"6989:3:53"}],"functionName":{"name":"slt","nativeSrc":"6966:3:53","nodeType":"YulIdentifier","src":"6966:3:53"},"nativeSrc":"6966:27:53","nodeType":"YulFunctionCall","src":"6966:27:53"}],"functionName":{"name":"iszero","nativeSrc":"6959:6:53","nodeType":"YulIdentifier","src":"6959:6:53"},"nativeSrc":"6959:35:53","nodeType":"YulFunctionCall","src":"6959:35:53"},"nativeSrc":"6956:122:53","nodeType":"YulIf","src":"6956:122:53"},{"nativeSrc":"7087:30:53","nodeType":"YulAssignment","src":"7087:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"7110:6:53","nodeType":"YulIdentifier","src":"7110:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7097:12:53","nodeType":"YulIdentifier","src":"7097:12:53"},"nativeSrc":"7097:20:53","nodeType":"YulFunctionCall","src":"7097:20:53"},"variableNames":[{"name":"length","nativeSrc":"7087:6:53","nodeType":"YulIdentifier","src":"7087:6:53"}]},{"body":{"nativeSrc":"7160:83:53","nodeType":"YulBlock","src":"7160:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7162:77:53","nodeType":"YulIdentifier","src":"7162:77:53"},"nativeSrc":"7162:79:53","nodeType":"YulFunctionCall","src":"7162:79:53"},"nativeSrc":"7162:79:53","nodeType":"YulExpressionStatement","src":"7162:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7132:6:53","nodeType":"YulIdentifier","src":"7132:6:53"},{"kind":"number","nativeSrc":"7140:18:53","nodeType":"YulLiteral","src":"7140:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7129:2:53","nodeType":"YulIdentifier","src":"7129:2:53"},"nativeSrc":"7129:30:53","nodeType":"YulFunctionCall","src":"7129:30:53"},"nativeSrc":"7126:117:53","nodeType":"YulIf","src":"7126:117:53"},{"nativeSrc":"7252:29:53","nodeType":"YulAssignment","src":"7252:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7268:6:53","nodeType":"YulIdentifier","src":"7268:6:53"},{"kind":"number","nativeSrc":"7276:4:53","nodeType":"YulLiteral","src":"7276:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7264:3:53","nodeType":"YulIdentifier","src":"7264:3:53"},"nativeSrc":"7264:17:53","nodeType":"YulFunctionCall","src":"7264:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"7252:8:53","nodeType":"YulIdentifier","src":"7252:8:53"}]},{"body":{"nativeSrc":"7335:83:53","nodeType":"YulBlock","src":"7335:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7337:77:53","nodeType":"YulIdentifier","src":"7337:77:53"},"nativeSrc":"7337:79:53","nodeType":"YulFunctionCall","src":"7337:79:53"},"nativeSrc":"7337:79:53","nodeType":"YulExpressionStatement","src":"7337:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7300:8:53","nodeType":"YulIdentifier","src":"7300:8:53"},{"arguments":[{"name":"length","nativeSrc":"7314:6:53","nodeType":"YulIdentifier","src":"7314:6:53"},{"kind":"number","nativeSrc":"7322:4:53","nodeType":"YulLiteral","src":"7322:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7310:3:53","nodeType":"YulIdentifier","src":"7310:3:53"},"nativeSrc":"7310:17:53","nodeType":"YulFunctionCall","src":"7310:17:53"}],"functionName":{"name":"add","nativeSrc":"7296:3:53","nodeType":"YulIdentifier","src":"7296:3:53"},"nativeSrc":"7296:32:53","nodeType":"YulFunctionCall","src":"7296:32:53"},{"name":"end","nativeSrc":"7330:3:53","nodeType":"YulIdentifier","src":"7330:3:53"}],"functionName":{"name":"gt","nativeSrc":"7293:2:53","nodeType":"YulIdentifier","src":"7293:2:53"},"nativeSrc":"7293:41:53","nodeType":"YulFunctionCall","src":"7293:41:53"},"nativeSrc":"7290:128:53","nodeType":"YulIf","src":"7290:128:53"}]},"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"6845:579:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6913:6:53","nodeType":"YulTypedName","src":"6913:6:53","type":""},{"name":"end","nativeSrc":"6921:3:53","nodeType":"YulTypedName","src":"6921:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6929:8:53","nodeType":"YulTypedName","src":"6929:8:53","type":""},{"name":"length","nativeSrc":"6939:6:53","nodeType":"YulTypedName","src":"6939:6:53","type":""}],"src":"6845:579:53"},{"body":{"nativeSrc":"7542:469:53","nodeType":"YulBlock","src":"7542:469:53","statements":[{"body":{"nativeSrc":"7588:83:53","nodeType":"YulBlock","src":"7588:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7590:77:53","nodeType":"YulIdentifier","src":"7590:77:53"},"nativeSrc":"7590:79:53","nodeType":"YulFunctionCall","src":"7590:79:53"},"nativeSrc":"7590:79:53","nodeType":"YulExpressionStatement","src":"7590:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7563:7:53","nodeType":"YulIdentifier","src":"7563:7:53"},{"name":"headStart","nativeSrc":"7572:9:53","nodeType":"YulIdentifier","src":"7572:9:53"}],"functionName":{"name":"sub","nativeSrc":"7559:3:53","nodeType":"YulIdentifier","src":"7559:3:53"},"nativeSrc":"7559:23:53","nodeType":"YulFunctionCall","src":"7559:23:53"},{"kind":"number","nativeSrc":"7584:2:53","nodeType":"YulLiteral","src":"7584:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7555:3:53","nodeType":"YulIdentifier","src":"7555:3:53"},"nativeSrc":"7555:32:53","nodeType":"YulFunctionCall","src":"7555:32:53"},"nativeSrc":"7552:119:53","nodeType":"YulIf","src":"7552:119:53"},{"nativeSrc":"7681:323:53","nodeType":"YulBlock","src":"7681:323:53","statements":[{"nativeSrc":"7696:45:53","nodeType":"YulVariableDeclaration","src":"7696:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7727:9:53","nodeType":"YulIdentifier","src":"7727:9:53"},{"kind":"number","nativeSrc":"7738:1:53","nodeType":"YulLiteral","src":"7738:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7723:3:53","nodeType":"YulIdentifier","src":"7723:3:53"},"nativeSrc":"7723:17:53","nodeType":"YulFunctionCall","src":"7723:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"7710:12:53","nodeType":"YulIdentifier","src":"7710:12:53"},"nativeSrc":"7710:31:53","nodeType":"YulFunctionCall","src":"7710:31:53"},"variables":[{"name":"offset","nativeSrc":"7700:6:53","nodeType":"YulTypedName","src":"7700:6:53","type":""}]},{"body":{"nativeSrc":"7788:83:53","nodeType":"YulBlock","src":"7788:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7790:77:53","nodeType":"YulIdentifier","src":"7790:77:53"},"nativeSrc":"7790:79:53","nodeType":"YulFunctionCall","src":"7790:79:53"},"nativeSrc":"7790:79:53","nodeType":"YulExpressionStatement","src":"7790:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7760:6:53","nodeType":"YulIdentifier","src":"7760:6:53"},{"kind":"number","nativeSrc":"7768:18:53","nodeType":"YulLiteral","src":"7768:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7757:2:53","nodeType":"YulIdentifier","src":"7757:2:53"},"nativeSrc":"7757:30:53","nodeType":"YulFunctionCall","src":"7757:30:53"},"nativeSrc":"7754:117:53","nodeType":"YulIf","src":"7754:117:53"},{"nativeSrc":"7885:109:53","nodeType":"YulAssignment","src":"7885:109:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7966:9:53","nodeType":"YulIdentifier","src":"7966:9:53"},{"name":"offset","nativeSrc":"7977:6:53","nodeType":"YulIdentifier","src":"7977:6:53"}],"functionName":{"name":"add","nativeSrc":"7962:3:53","nodeType":"YulIdentifier","src":"7962:3:53"},"nativeSrc":"7962:22:53","nodeType":"YulFunctionCall","src":"7962:22:53"},{"name":"dataEnd","nativeSrc":"7986:7:53","nodeType":"YulIdentifier","src":"7986:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7903:58:53","nodeType":"YulIdentifier","src":"7903:58:53"},"nativeSrc":"7903:91:53","nodeType":"YulFunctionCall","src":"7903:91:53"},"variableNames":[{"name":"value0","nativeSrc":"7885:6:53","nodeType":"YulIdentifier","src":"7885:6:53"},{"name":"value1","nativeSrc":"7893:6:53","nodeType":"YulIdentifier","src":"7893:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7430:581:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7504:9:53","nodeType":"YulTypedName","src":"7504:9:53","type":""},{"name":"dataEnd","nativeSrc":"7515:7:53","nodeType":"YulTypedName","src":"7515:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7527:6:53","nodeType":"YulTypedName","src":"7527:6:53","type":""},{"name":"value1","nativeSrc":"7535:6:53","nodeType":"YulTypedName","src":"7535:6:53","type":""}],"src":"7430:581:53"},{"body":{"nativeSrc":"8082:53:53","nodeType":"YulBlock","src":"8082:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8099:3:53","nodeType":"YulIdentifier","src":"8099:3:53"},{"arguments":[{"name":"value","nativeSrc":"8122:5:53","nodeType":"YulIdentifier","src":"8122:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8104:17:53","nodeType":"YulIdentifier","src":"8104:17:53"},"nativeSrc":"8104:24:53","nodeType":"YulFunctionCall","src":"8104:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8092:6:53","nodeType":"YulIdentifier","src":"8092:6:53"},"nativeSrc":"8092:37:53","nodeType":"YulFunctionCall","src":"8092:37:53"},"nativeSrc":"8092:37:53","nodeType":"YulExpressionStatement","src":"8092:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8017:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8070:5:53","nodeType":"YulTypedName","src":"8070:5:53","type":""},{"name":"pos","nativeSrc":"8077:3:53","nodeType":"YulTypedName","src":"8077:3:53","type":""}],"src":"8017:118:53"},{"body":{"nativeSrc":"8239:124:53","nodeType":"YulBlock","src":"8239:124:53","statements":[{"nativeSrc":"8249:26:53","nodeType":"YulAssignment","src":"8249:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8261:9:53","nodeType":"YulIdentifier","src":"8261:9:53"},{"kind":"number","nativeSrc":"8272:2:53","nodeType":"YulLiteral","src":"8272:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8257:3:53","nodeType":"YulIdentifier","src":"8257:3:53"},"nativeSrc":"8257:18:53","nodeType":"YulFunctionCall","src":"8257:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8249:4:53","nodeType":"YulIdentifier","src":"8249:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8329:6:53","nodeType":"YulIdentifier","src":"8329:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8342:9:53","nodeType":"YulIdentifier","src":"8342:9:53"},{"kind":"number","nativeSrc":"8353:1:53","nodeType":"YulLiteral","src":"8353:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8338:3:53","nodeType":"YulIdentifier","src":"8338:3:53"},"nativeSrc":"8338:17:53","nodeType":"YulFunctionCall","src":"8338:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8285:43:53","nodeType":"YulIdentifier","src":"8285:43:53"},"nativeSrc":"8285:71:53","nodeType":"YulFunctionCall","src":"8285:71:53"},"nativeSrc":"8285:71:53","nodeType":"YulExpressionStatement","src":"8285:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8141:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8211:9:53","nodeType":"YulTypedName","src":"8211:9:53","type":""},{"name":"value0","nativeSrc":"8223:6:53","nodeType":"YulTypedName","src":"8223:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8234:4:53","nodeType":"YulTypedName","src":"8234:4:53","type":""}],"src":"8141:222:53"},{"body":{"nativeSrc":"8397:152:53","nodeType":"YulBlock","src":"8397:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8414:1:53","nodeType":"YulLiteral","src":"8414:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8417:77:53","nodeType":"YulLiteral","src":"8417:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8407:6:53","nodeType":"YulIdentifier","src":"8407:6:53"},"nativeSrc":"8407:88:53","nodeType":"YulFunctionCall","src":"8407:88:53"},"nativeSrc":"8407:88:53","nodeType":"YulExpressionStatement","src":"8407:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8511:1:53","nodeType":"YulLiteral","src":"8511:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8514:4:53","nodeType":"YulLiteral","src":"8514:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8504:6:53","nodeType":"YulIdentifier","src":"8504:6:53"},"nativeSrc":"8504:15:53","nodeType":"YulFunctionCall","src":"8504:15:53"},"nativeSrc":"8504:15:53","nodeType":"YulExpressionStatement","src":"8504:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8535:1:53","nodeType":"YulLiteral","src":"8535:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8538:4:53","nodeType":"YulLiteral","src":"8538:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8528:6:53","nodeType":"YulIdentifier","src":"8528:6:53"},"nativeSrc":"8528:15:53","nodeType":"YulFunctionCall","src":"8528:15:53"},"nativeSrc":"8528:15:53","nodeType":"YulExpressionStatement","src":"8528:15:53"}]},"name":"panic_error_0x11","nativeSrc":"8369:180:53","nodeType":"YulFunctionDefinition","src":"8369:180:53"},{"body":{"nativeSrc":"8600:149:53","nodeType":"YulBlock","src":"8600:149:53","statements":[{"nativeSrc":"8610:25:53","nodeType":"YulAssignment","src":"8610:25:53","value":{"arguments":[{"name":"x","nativeSrc":"8633:1:53","nodeType":"YulIdentifier","src":"8633:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8615:17:53","nodeType":"YulIdentifier","src":"8615:17:53"},"nativeSrc":"8615:20:53","nodeType":"YulFunctionCall","src":"8615:20:53"},"variableNames":[{"name":"x","nativeSrc":"8610:1:53","nodeType":"YulIdentifier","src":"8610:1:53"}]},{"nativeSrc":"8644:25:53","nodeType":"YulAssignment","src":"8644:25:53","value":{"arguments":[{"name":"y","nativeSrc":"8667:1:53","nodeType":"YulIdentifier","src":"8667:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8649:17:53","nodeType":"YulIdentifier","src":"8649:17:53"},"nativeSrc":"8649:20:53","nodeType":"YulFunctionCall","src":"8649:20:53"},"variableNames":[{"name":"y","nativeSrc":"8644:1:53","nodeType":"YulIdentifier","src":"8644:1:53"}]},{"nativeSrc":"8678:17:53","nodeType":"YulAssignment","src":"8678:17:53","value":{"arguments":[{"name":"x","nativeSrc":"8690:1:53","nodeType":"YulIdentifier","src":"8690:1:53"},{"name":"y","nativeSrc":"8693:1:53","nodeType":"YulIdentifier","src":"8693:1:53"}],"functionName":{"name":"sub","nativeSrc":"8686:3:53","nodeType":"YulIdentifier","src":"8686:3:53"},"nativeSrc":"8686:9:53","nodeType":"YulFunctionCall","src":"8686:9:53"},"variableNames":[{"name":"diff","nativeSrc":"8678:4:53","nodeType":"YulIdentifier","src":"8678:4:53"}]},{"body":{"nativeSrc":"8720:22:53","nodeType":"YulBlock","src":"8720:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8722:16:53","nodeType":"YulIdentifier","src":"8722:16:53"},"nativeSrc":"8722:18:53","nodeType":"YulFunctionCall","src":"8722:18:53"},"nativeSrc":"8722:18:53","nodeType":"YulExpressionStatement","src":"8722:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"8711:4:53","nodeType":"YulIdentifier","src":"8711:4:53"},{"name":"x","nativeSrc":"8717:1:53","nodeType":"YulIdentifier","src":"8717:1:53"}],"functionName":{"name":"gt","nativeSrc":"8708:2:53","nodeType":"YulIdentifier","src":"8708:2:53"},"nativeSrc":"8708:11:53","nodeType":"YulFunctionCall","src":"8708:11:53"},"nativeSrc":"8705:37:53","nodeType":"YulIf","src":"8705:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"8555:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8586:1:53","nodeType":"YulTypedName","src":"8586:1:53","type":""},{"name":"y","nativeSrc":"8589:1:53","nodeType":"YulTypedName","src":"8589:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"8595:4:53","nodeType":"YulTypedName","src":"8595:4:53","type":""}],"src":"8555:194:53"},{"body":{"nativeSrc":"8783:152:53","nodeType":"YulBlock","src":"8783:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8800:1:53","nodeType":"YulLiteral","src":"8800:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8803:77:53","nodeType":"YulLiteral","src":"8803:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8793:6:53","nodeType":"YulIdentifier","src":"8793:6:53"},"nativeSrc":"8793:88:53","nodeType":"YulFunctionCall","src":"8793:88:53"},"nativeSrc":"8793:88:53","nodeType":"YulExpressionStatement","src":"8793:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8897:1:53","nodeType":"YulLiteral","src":"8897:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8900:4:53","nodeType":"YulLiteral","src":"8900:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8890:6:53","nodeType":"YulIdentifier","src":"8890:6:53"},"nativeSrc":"8890:15:53","nodeType":"YulFunctionCall","src":"8890:15:53"},"nativeSrc":"8890:15:53","nodeType":"YulExpressionStatement","src":"8890:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8921:1:53","nodeType":"YulLiteral","src":"8921:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8924:4:53","nodeType":"YulLiteral","src":"8924:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8914:6:53","nodeType":"YulIdentifier","src":"8914:6:53"},"nativeSrc":"8914:15:53","nodeType":"YulFunctionCall","src":"8914:15:53"},"nativeSrc":"8914:15:53","nodeType":"YulExpressionStatement","src":"8914:15:53"}]},"name":"panic_error_0x32","nativeSrc":"8755:180:53","nodeType":"YulFunctionDefinition","src":"8755:180:53"},{"body":{"nativeSrc":"8981:76:53","nodeType":"YulBlock","src":"8981:76:53","statements":[{"body":{"nativeSrc":"9035:16:53","nodeType":"YulBlock","src":"9035:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9044:1:53","nodeType":"YulLiteral","src":"9044:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9047:1:53","nodeType":"YulLiteral","src":"9047:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9037:6:53","nodeType":"YulIdentifier","src":"9037:6:53"},"nativeSrc":"9037:12:53","nodeType":"YulFunctionCall","src":"9037:12:53"},"nativeSrc":"9037:12:53","nodeType":"YulExpressionStatement","src":"9037:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9004:5:53","nodeType":"YulIdentifier","src":"9004:5:53"},{"arguments":[{"name":"value","nativeSrc":"9026:5:53","nodeType":"YulIdentifier","src":"9026:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"9011:14:53","nodeType":"YulIdentifier","src":"9011:14:53"},"nativeSrc":"9011:21:53","nodeType":"YulFunctionCall","src":"9011:21:53"}],"functionName":{"name":"eq","nativeSrc":"9001:2:53","nodeType":"YulIdentifier","src":"9001:2:53"},"nativeSrc":"9001:32:53","nodeType":"YulFunctionCall","src":"9001:32:53"}],"functionName":{"name":"iszero","nativeSrc":"8994:6:53","nodeType":"YulIdentifier","src":"8994:6:53"},"nativeSrc":"8994:40:53","nodeType":"YulFunctionCall","src":"8994:40:53"},"nativeSrc":"8991:60:53","nodeType":"YulIf","src":"8991:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"8941:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8974:5:53","nodeType":"YulTypedName","src":"8974:5:53","type":""}],"src":"8941:116:53"},{"body":{"nativeSrc":"9112:84:53","nodeType":"YulBlock","src":"9112:84:53","statements":[{"nativeSrc":"9122:29:53","nodeType":"YulAssignment","src":"9122:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9144:6:53","nodeType":"YulIdentifier","src":"9144:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9131:12:53","nodeType":"YulIdentifier","src":"9131:12:53"},"nativeSrc":"9131:20:53","nodeType":"YulFunctionCall","src":"9131:20:53"},"variableNames":[{"name":"value","nativeSrc":"9122:5:53","nodeType":"YulIdentifier","src":"9122:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9184:5:53","nodeType":"YulIdentifier","src":"9184:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"9160:23:53","nodeType":"YulIdentifier","src":"9160:23:53"},"nativeSrc":"9160:30:53","nodeType":"YulFunctionCall","src":"9160:30:53"},"nativeSrc":"9160:30:53","nodeType":"YulExpressionStatement","src":"9160:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"9063:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9090:6:53","nodeType":"YulTypedName","src":"9090:6:53","type":""},{"name":"end","nativeSrc":"9098:3:53","nodeType":"YulTypedName","src":"9098:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9106:5:53","nodeType":"YulTypedName","src":"9106:5:53","type":""}],"src":"9063:133:53"},{"body":{"nativeSrc":"9265:260:53","nodeType":"YulBlock","src":"9265:260:53","statements":[{"body":{"nativeSrc":"9311:83:53","nodeType":"YulBlock","src":"9311:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9313:77:53","nodeType":"YulIdentifier","src":"9313:77:53"},"nativeSrc":"9313:79:53","nodeType":"YulFunctionCall","src":"9313:79:53"},"nativeSrc":"9313:79:53","nodeType":"YulExpressionStatement","src":"9313:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9286:7:53","nodeType":"YulIdentifier","src":"9286:7:53"},{"name":"headStart","nativeSrc":"9295:9:53","nodeType":"YulIdentifier","src":"9295:9:53"}],"functionName":{"name":"sub","nativeSrc":"9282:3:53","nodeType":"YulIdentifier","src":"9282:3:53"},"nativeSrc":"9282:23:53","nodeType":"YulFunctionCall","src":"9282:23:53"},{"kind":"number","nativeSrc":"9307:2:53","nodeType":"YulLiteral","src":"9307:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9278:3:53","nodeType":"YulIdentifier","src":"9278:3:53"},"nativeSrc":"9278:32:53","nodeType":"YulFunctionCall","src":"9278:32:53"},"nativeSrc":"9275:119:53","nodeType":"YulIf","src":"9275:119:53"},{"nativeSrc":"9404:114:53","nodeType":"YulBlock","src":"9404:114:53","statements":[{"nativeSrc":"9419:15:53","nodeType":"YulVariableDeclaration","src":"9419:15:53","value":{"kind":"number","nativeSrc":"9433:1:53","nodeType":"YulLiteral","src":"9433:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9423:6:53","nodeType":"YulTypedName","src":"9423:6:53","type":""}]},{"nativeSrc":"9448:60:53","nodeType":"YulAssignment","src":"9448:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9480:9:53","nodeType":"YulIdentifier","src":"9480:9:53"},{"name":"offset","nativeSrc":"9491:6:53","nodeType":"YulIdentifier","src":"9491:6:53"}],"functionName":{"name":"add","nativeSrc":"9476:3:53","nodeType":"YulIdentifier","src":"9476:3:53"},"nativeSrc":"9476:22:53","nodeType":"YulFunctionCall","src":"9476:22:53"},{"name":"dataEnd","nativeSrc":"9500:7:53","nodeType":"YulIdentifier","src":"9500:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"9458:17:53","nodeType":"YulIdentifier","src":"9458:17:53"},"nativeSrc":"9458:50:53","nodeType":"YulFunctionCall","src":"9458:50:53"},"variableNames":[{"name":"value0","nativeSrc":"9448:6:53","nodeType":"YulIdentifier","src":"9448:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"9202:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9235:9:53","nodeType":"YulTypedName","src":"9235:9:53","type":""},{"name":"dataEnd","nativeSrc":"9246:7:53","nodeType":"YulTypedName","src":"9246:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9258:6:53","nodeType":"YulTypedName","src":"9258:6:53","type":""}],"src":"9202:323:53"},{"body":{"nativeSrc":"9620:28:53","nodeType":"YulBlock","src":"9620:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9637:1:53","nodeType":"YulLiteral","src":"9637:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9640:1:53","nodeType":"YulLiteral","src":"9640:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9630:6:53","nodeType":"YulIdentifier","src":"9630:6:53"},"nativeSrc":"9630:12:53","nodeType":"YulFunctionCall","src":"9630:12:53"},"nativeSrc":"9630:12:53","nodeType":"YulExpressionStatement","src":"9630:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9531:117:53","nodeType":"YulFunctionDefinition","src":"9531:117:53"},{"body":{"nativeSrc":"9702:54:53","nodeType":"YulBlock","src":"9702:54:53","statements":[{"nativeSrc":"9712:38:53","nodeType":"YulAssignment","src":"9712:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9730:5:53","nodeType":"YulIdentifier","src":"9730:5:53"},{"kind":"number","nativeSrc":"9737:2:53","nodeType":"YulLiteral","src":"9737:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9726:3:53","nodeType":"YulIdentifier","src":"9726:3:53"},"nativeSrc":"9726:14:53","nodeType":"YulFunctionCall","src":"9726:14:53"},{"arguments":[{"kind":"number","nativeSrc":"9746:2:53","nodeType":"YulLiteral","src":"9746:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9742:3:53","nodeType":"YulIdentifier","src":"9742:3:53"},"nativeSrc":"9742:7:53","nodeType":"YulFunctionCall","src":"9742:7:53"}],"functionName":{"name":"and","nativeSrc":"9722:3:53","nodeType":"YulIdentifier","src":"9722:3:53"},"nativeSrc":"9722:28:53","nodeType":"YulFunctionCall","src":"9722:28:53"},"variableNames":[{"name":"result","nativeSrc":"9712:6:53","nodeType":"YulIdentifier","src":"9712:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9654:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9685:5:53","nodeType":"YulTypedName","src":"9685:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9695:6:53","nodeType":"YulTypedName","src":"9695:6:53","type":""}],"src":"9654:102:53"},{"body":{"nativeSrc":"9790:152:53","nodeType":"YulBlock","src":"9790:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9807:1:53","nodeType":"YulLiteral","src":"9807:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9810:77:53","nodeType":"YulLiteral","src":"9810:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9800:6:53","nodeType":"YulIdentifier","src":"9800:6:53"},"nativeSrc":"9800:88:53","nodeType":"YulFunctionCall","src":"9800:88:53"},"nativeSrc":"9800:88:53","nodeType":"YulExpressionStatement","src":"9800:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9904:1:53","nodeType":"YulLiteral","src":"9904:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9907:4:53","nodeType":"YulLiteral","src":"9907:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9897:6:53","nodeType":"YulIdentifier","src":"9897:6:53"},"nativeSrc":"9897:15:53","nodeType":"YulFunctionCall","src":"9897:15:53"},"nativeSrc":"9897:15:53","nodeType":"YulExpressionStatement","src":"9897:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9928:1:53","nodeType":"YulLiteral","src":"9928:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9931:4:53","nodeType":"YulLiteral","src":"9931:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9921:6:53","nodeType":"YulIdentifier","src":"9921:6:53"},"nativeSrc":"9921:15:53","nodeType":"YulFunctionCall","src":"9921:15:53"},"nativeSrc":"9921:15:53","nodeType":"YulExpressionStatement","src":"9921:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9762:180:53","nodeType":"YulFunctionDefinition","src":"9762:180:53"},{"body":{"nativeSrc":"9991:238:53","nodeType":"YulBlock","src":"9991:238:53","statements":[{"nativeSrc":"10001:58:53","nodeType":"YulVariableDeclaration","src":"10001:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10023:6:53","nodeType":"YulIdentifier","src":"10023:6:53"},{"arguments":[{"name":"size","nativeSrc":"10053:4:53","nodeType":"YulIdentifier","src":"10053:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10031:21:53","nodeType":"YulIdentifier","src":"10031:21:53"},"nativeSrc":"10031:27:53","nodeType":"YulFunctionCall","src":"10031:27:53"}],"functionName":{"name":"add","nativeSrc":"10019:3:53","nodeType":"YulIdentifier","src":"10019:3:53"},"nativeSrc":"10019:40:53","nodeType":"YulFunctionCall","src":"10019:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10005:10:53","nodeType":"YulTypedName","src":"10005:10:53","type":""}]},{"body":{"nativeSrc":"10170:22:53","nodeType":"YulBlock","src":"10170:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10172:16:53","nodeType":"YulIdentifier","src":"10172:16:53"},"nativeSrc":"10172:18:53","nodeType":"YulFunctionCall","src":"10172:18:53"},"nativeSrc":"10172:18:53","nodeType":"YulExpressionStatement","src":"10172:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10113:10:53","nodeType":"YulIdentifier","src":"10113:10:53"},{"kind":"number","nativeSrc":"10125:18:53","nodeType":"YulLiteral","src":"10125:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10110:2:53","nodeType":"YulIdentifier","src":"10110:2:53"},"nativeSrc":"10110:34:53","nodeType":"YulFunctionCall","src":"10110:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10149:10:53","nodeType":"YulIdentifier","src":"10149:10:53"},{"name":"memPtr","nativeSrc":"10161:6:53","nodeType":"YulIdentifier","src":"10161:6:53"}],"functionName":{"name":"lt","nativeSrc":"10146:2:53","nodeType":"YulIdentifier","src":"10146:2:53"},"nativeSrc":"10146:22:53","nodeType":"YulFunctionCall","src":"10146:22:53"}],"functionName":{"name":"or","nativeSrc":"10107:2:53","nodeType":"YulIdentifier","src":"10107:2:53"},"nativeSrc":"10107:62:53","nodeType":"YulFunctionCall","src":"10107:62:53"},"nativeSrc":"10104:88:53","nodeType":"YulIf","src":"10104:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10208:2:53","nodeType":"YulLiteral","src":"10208:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10212:10:53","nodeType":"YulIdentifier","src":"10212:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10201:6:53","nodeType":"YulIdentifier","src":"10201:6:53"},"nativeSrc":"10201:22:53","nodeType":"YulFunctionCall","src":"10201:22:53"},"nativeSrc":"10201:22:53","nodeType":"YulExpressionStatement","src":"10201:22:53"}]},"name":"finalize_allocation","nativeSrc":"9948:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9977:6:53","nodeType":"YulTypedName","src":"9977:6:53","type":""},{"name":"size","nativeSrc":"9985:4:53","nodeType":"YulTypedName","src":"9985:4:53","type":""}],"src":"9948:281:53"},{"body":{"nativeSrc":"10276:88:53","nodeType":"YulBlock","src":"10276:88:53","statements":[{"nativeSrc":"10286:30:53","nodeType":"YulAssignment","src":"10286:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10296:18:53","nodeType":"YulIdentifier","src":"10296:18:53"},"nativeSrc":"10296:20:53","nodeType":"YulFunctionCall","src":"10296:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10286:6:53","nodeType":"YulIdentifier","src":"10286:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10345:6:53","nodeType":"YulIdentifier","src":"10345:6:53"},{"name":"size","nativeSrc":"10353:4:53","nodeType":"YulIdentifier","src":"10353:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10325:19:53","nodeType":"YulIdentifier","src":"10325:19:53"},"nativeSrc":"10325:33:53","nodeType":"YulFunctionCall","src":"10325:33:53"},"nativeSrc":"10325:33:53","nodeType":"YulExpressionStatement","src":"10325:33:53"}]},"name":"allocate_memory","nativeSrc":"10235:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10260:4:53","nodeType":"YulTypedName","src":"10260:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10269:6:53","nodeType":"YulTypedName","src":"10269:6:53","type":""}],"src":"10235:129:53"},{"body":{"nativeSrc":"10459:28:53","nodeType":"YulBlock","src":"10459:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10476:1:53","nodeType":"YulLiteral","src":"10476:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10479:1:53","nodeType":"YulLiteral","src":"10479:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10469:6:53","nodeType":"YulIdentifier","src":"10469:6:53"},"nativeSrc":"10469:12:53","nodeType":"YulFunctionCall","src":"10469:12:53"},"nativeSrc":"10469:12:53","nodeType":"YulExpressionStatement","src":"10469:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10370:117:53","nodeType":"YulFunctionDefinition","src":"10370:117:53"},{"body":{"nativeSrc":"10575:229:53","nodeType":"YulBlock","src":"10575:229:53","statements":[{"body":{"nativeSrc":"10680:22:53","nodeType":"YulBlock","src":"10680:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10682:16:53","nodeType":"YulIdentifier","src":"10682:16:53"},"nativeSrc":"10682:18:53","nodeType":"YulFunctionCall","src":"10682:18:53"},"nativeSrc":"10682:18:53","nodeType":"YulExpressionStatement","src":"10682:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10652:6:53","nodeType":"YulIdentifier","src":"10652:6:53"},{"kind":"number","nativeSrc":"10660:18:53","nodeType":"YulLiteral","src":"10660:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10649:2:53","nodeType":"YulIdentifier","src":"10649:2:53"},"nativeSrc":"10649:30:53","nodeType":"YulFunctionCall","src":"10649:30:53"},"nativeSrc":"10646:56:53","nodeType":"YulIf","src":"10646:56:53"},{"nativeSrc":"10712:25:53","nodeType":"YulAssignment","src":"10712:25:53","value":{"arguments":[{"name":"length","nativeSrc":"10724:6:53","nodeType":"YulIdentifier","src":"10724:6:53"},{"kind":"number","nativeSrc":"10732:4:53","nodeType":"YulLiteral","src":"10732:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10720:3:53","nodeType":"YulIdentifier","src":"10720:3:53"},"nativeSrc":"10720:17:53","nodeType":"YulFunctionCall","src":"10720:17:53"},"variableNames":[{"name":"size","nativeSrc":"10712:4:53","nodeType":"YulIdentifier","src":"10712:4:53"}]},{"nativeSrc":"10774:23:53","nodeType":"YulAssignment","src":"10774:23:53","value":{"arguments":[{"name":"size","nativeSrc":"10786:4:53","nodeType":"YulIdentifier","src":"10786:4:53"},{"kind":"number","nativeSrc":"10792:4:53","nodeType":"YulLiteral","src":"10792:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10782:3:53","nodeType":"YulIdentifier","src":"10782:3:53"},"nativeSrc":"10782:15:53","nodeType":"YulFunctionCall","src":"10782:15:53"},"variableNames":[{"name":"size","nativeSrc":"10774:4:53","nodeType":"YulIdentifier","src":"10774:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10493:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10559:6:53","nodeType":"YulTypedName","src":"10559:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10570:4:53","nodeType":"YulTypedName","src":"10570:4:53","type":""}],"src":"10493:311:53"},{"body":{"nativeSrc":"10929:608:53","nodeType":"YulBlock","src":"10929:608:53","statements":[{"nativeSrc":"10939:90:53","nodeType":"YulAssignment","src":"10939:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11021:6:53","nodeType":"YulIdentifier","src":"11021:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10964:56:53","nodeType":"YulIdentifier","src":"10964:56:53"},"nativeSrc":"10964:64:53","nodeType":"YulFunctionCall","src":"10964:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10948:15:53","nodeType":"YulIdentifier","src":"10948:15:53"},"nativeSrc":"10948:81:53","nodeType":"YulFunctionCall","src":"10948:81:53"},"variableNames":[{"name":"array","nativeSrc":"10939:5:53","nodeType":"YulIdentifier","src":"10939:5:53"}]},{"nativeSrc":"11038:16:53","nodeType":"YulVariableDeclaration","src":"11038:16:53","value":{"name":"array","nativeSrc":"11049:5:53","nodeType":"YulIdentifier","src":"11049:5:53"},"variables":[{"name":"dst","nativeSrc":"11042:3:53","nodeType":"YulTypedName","src":"11042:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11071:5:53","nodeType":"YulIdentifier","src":"11071:5:53"},{"name":"length","nativeSrc":"11078:6:53","nodeType":"YulIdentifier","src":"11078:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11064:6:53","nodeType":"YulIdentifier","src":"11064:6:53"},"nativeSrc":"11064:21:53","nodeType":"YulFunctionCall","src":"11064:21:53"},"nativeSrc":"11064:21:53","nodeType":"YulExpressionStatement","src":"11064:21:53"},{"nativeSrc":"11094:23:53","nodeType":"YulAssignment","src":"11094:23:53","value":{"arguments":[{"name":"array","nativeSrc":"11105:5:53","nodeType":"YulIdentifier","src":"11105:5:53"},{"kind":"number","nativeSrc":"11112:4:53","nodeType":"YulLiteral","src":"11112:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11101:3:53","nodeType":"YulIdentifier","src":"11101:3:53"},"nativeSrc":"11101:16:53","nodeType":"YulFunctionCall","src":"11101:16:53"},"variableNames":[{"name":"dst","nativeSrc":"11094:3:53","nodeType":"YulIdentifier","src":"11094:3:53"}]},{"nativeSrc":"11127:44:53","nodeType":"YulVariableDeclaration","src":"11127:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"11145:6:53","nodeType":"YulIdentifier","src":"11145:6:53"},{"arguments":[{"name":"length","nativeSrc":"11157:6:53","nodeType":"YulIdentifier","src":"11157:6:53"},{"kind":"number","nativeSrc":"11165:4:53","nodeType":"YulLiteral","src":"11165:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11153:3:53","nodeType":"YulIdentifier","src":"11153:3:53"},"nativeSrc":"11153:17:53","nodeType":"YulFunctionCall","src":"11153:17:53"}],"functionName":{"name":"add","nativeSrc":"11141:3:53","nodeType":"YulIdentifier","src":"11141:3:53"},"nativeSrc":"11141:30:53","nodeType":"YulFunctionCall","src":"11141:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"11131:6:53","nodeType":"YulTypedName","src":"11131:6:53","type":""}]},{"body":{"nativeSrc":"11199:103:53","nodeType":"YulBlock","src":"11199:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11213:77:53","nodeType":"YulIdentifier","src":"11213:77:53"},"nativeSrc":"11213:79:53","nodeType":"YulFunctionCall","src":"11213:79:53"},"nativeSrc":"11213:79:53","nodeType":"YulExpressionStatement","src":"11213:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11186:6:53","nodeType":"YulIdentifier","src":"11186:6:53"},{"name":"end","nativeSrc":"11194:3:53","nodeType":"YulIdentifier","src":"11194:3:53"}],"functionName":{"name":"gt","nativeSrc":"11183:2:53","nodeType":"YulIdentifier","src":"11183:2:53"},"nativeSrc":"11183:15:53","nodeType":"YulFunctionCall","src":"11183:15:53"},"nativeSrc":"11180:122:53","nodeType":"YulIf","src":"11180:122:53"},{"body":{"nativeSrc":"11387:144:53","nodeType":"YulBlock","src":"11387:144:53","statements":[{"nativeSrc":"11402:21:53","nodeType":"YulVariableDeclaration","src":"11402:21:53","value":{"name":"src","nativeSrc":"11420:3:53","nodeType":"YulIdentifier","src":"11420:3:53"},"variables":[{"name":"elementPos","nativeSrc":"11406:10:53","nodeType":"YulTypedName","src":"11406:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11444:3:53","nodeType":"YulIdentifier","src":"11444:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"11470:10:53","nodeType":"YulIdentifier","src":"11470:10:53"},{"name":"end","nativeSrc":"11482:3:53","nodeType":"YulIdentifier","src":"11482:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11449:20:53","nodeType":"YulIdentifier","src":"11449:20:53"},"nativeSrc":"11449:37:53","nodeType":"YulFunctionCall","src":"11449:37:53"}],"functionName":{"name":"mstore","nativeSrc":"11437:6:53","nodeType":"YulIdentifier","src":"11437:6:53"},"nativeSrc":"11437:50:53","nodeType":"YulFunctionCall","src":"11437:50:53"},"nativeSrc":"11437:50:53","nodeType":"YulExpressionStatement","src":"11437:50:53"},{"nativeSrc":"11500:21:53","nodeType":"YulAssignment","src":"11500:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"11511:3:53","nodeType":"YulIdentifier","src":"11511:3:53"},{"kind":"number","nativeSrc":"11516:4:53","nodeType":"YulLiteral","src":"11516:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11507:3:53","nodeType":"YulIdentifier","src":"11507:3:53"},"nativeSrc":"11507:14:53","nodeType":"YulFunctionCall","src":"11507:14:53"},"variableNames":[{"name":"dst","nativeSrc":"11500:3:53","nodeType":"YulIdentifier","src":"11500:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11340:3:53","nodeType":"YulIdentifier","src":"11340:3:53"},{"name":"srcEnd","nativeSrc":"11345:6:53","nodeType":"YulIdentifier","src":"11345:6:53"}],"functionName":{"name":"lt","nativeSrc":"11337:2:53","nodeType":"YulIdentifier","src":"11337:2:53"},"nativeSrc":"11337:15:53","nodeType":"YulFunctionCall","src":"11337:15:53"},"nativeSrc":"11311:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"11353:25:53","nodeType":"YulBlock","src":"11353:25:53","statements":[{"nativeSrc":"11355:21:53","nodeType":"YulAssignment","src":"11355:21:53","value":{"arguments":[{"name":"src","nativeSrc":"11366:3:53","nodeType":"YulIdentifier","src":"11366:3:53"},{"kind":"number","nativeSrc":"11371:4:53","nodeType":"YulLiteral","src":"11371:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11362:3:53","nodeType":"YulIdentifier","src":"11362:3:53"},"nativeSrc":"11362:14:53","nodeType":"YulFunctionCall","src":"11362:14:53"},"variableNames":[{"name":"src","nativeSrc":"11355:3:53","nodeType":"YulIdentifier","src":"11355:3:53"}]}]},"pre":{"nativeSrc":"11315:21:53","nodeType":"YulBlock","src":"11315:21:53","statements":[{"nativeSrc":"11317:17:53","nodeType":"YulVariableDeclaration","src":"11317:17:53","value":{"name":"offset","nativeSrc":"11328:6:53","nodeType":"YulIdentifier","src":"11328:6:53"},"variables":[{"name":"src","nativeSrc":"11321:3:53","nodeType":"YulTypedName","src":"11321:3:53","type":""}]}]},"src":"11311:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10827:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10899:6:53","nodeType":"YulTypedName","src":"10899:6:53","type":""},{"name":"length","nativeSrc":"10907:6:53","nodeType":"YulTypedName","src":"10907:6:53","type":""},{"name":"end","nativeSrc":"10915:3:53","nodeType":"YulTypedName","src":"10915:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10923:5:53","nodeType":"YulTypedName","src":"10923:5:53","type":""}],"src":"10827:710:53"},{"body":{"nativeSrc":"11637:293:53","nodeType":"YulBlock","src":"11637:293:53","statements":[{"body":{"nativeSrc":"11686:83:53","nodeType":"YulBlock","src":"11686:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11688:77:53","nodeType":"YulIdentifier","src":"11688:77:53"},"nativeSrc":"11688:79:53","nodeType":"YulFunctionCall","src":"11688:79:53"},"nativeSrc":"11688:79:53","nodeType":"YulExpressionStatement","src":"11688:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11665:6:53","nodeType":"YulIdentifier","src":"11665:6:53"},{"kind":"number","nativeSrc":"11673:4:53","nodeType":"YulLiteral","src":"11673:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11661:3:53","nodeType":"YulIdentifier","src":"11661:3:53"},"nativeSrc":"11661:17:53","nodeType":"YulFunctionCall","src":"11661:17:53"},{"name":"end","nativeSrc":"11680:3:53","nodeType":"YulIdentifier","src":"11680:3:53"}],"functionName":{"name":"slt","nativeSrc":"11657:3:53","nodeType":"YulIdentifier","src":"11657:3:53"},"nativeSrc":"11657:27:53","nodeType":"YulFunctionCall","src":"11657:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11650:6:53","nodeType":"YulIdentifier","src":"11650:6:53"},"nativeSrc":"11650:35:53","nodeType":"YulFunctionCall","src":"11650:35:53"},"nativeSrc":"11647:122:53","nodeType":"YulIf","src":"11647:122:53"},{"nativeSrc":"11778:34:53","nodeType":"YulVariableDeclaration","src":"11778:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"11805:6:53","nodeType":"YulIdentifier","src":"11805:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"11792:12:53","nodeType":"YulIdentifier","src":"11792:12:53"},"nativeSrc":"11792:20:53","nodeType":"YulFunctionCall","src":"11792:20:53"},"variables":[{"name":"length","nativeSrc":"11782:6:53","nodeType":"YulTypedName","src":"11782:6:53","type":""}]},{"nativeSrc":"11821:103:53","nodeType":"YulAssignment","src":"11821:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11897:6:53","nodeType":"YulIdentifier","src":"11897:6:53"},{"kind":"number","nativeSrc":"11905:4:53","nodeType":"YulLiteral","src":"11905:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11893:3:53","nodeType":"YulIdentifier","src":"11893:3:53"},"nativeSrc":"11893:17:53","nodeType":"YulFunctionCall","src":"11893:17:53"},{"name":"length","nativeSrc":"11912:6:53","nodeType":"YulIdentifier","src":"11912:6:53"},{"name":"end","nativeSrc":"11920:3:53","nodeType":"YulIdentifier","src":"11920:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11830:62:53","nodeType":"YulIdentifier","src":"11830:62:53"},"nativeSrc":"11830:94:53","nodeType":"YulFunctionCall","src":"11830:94:53"},"variableNames":[{"name":"array","nativeSrc":"11821:5:53","nodeType":"YulIdentifier","src":"11821:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11560:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11615:6:53","nodeType":"YulTypedName","src":"11615:6:53","type":""},{"name":"end","nativeSrc":"11623:3:53","nodeType":"YulTypedName","src":"11623:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11631:5:53","nodeType":"YulTypedName","src":"11631:5:53","type":""}],"src":"11560:370:53"},{"body":{"nativeSrc":"11978:78:53","nodeType":"YulBlock","src":"11978:78:53","statements":[{"body":{"nativeSrc":"12034:16:53","nodeType":"YulBlock","src":"12034:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12043:1:53","nodeType":"YulLiteral","src":"12043:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12046:1:53","nodeType":"YulLiteral","src":"12046:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12036:6:53","nodeType":"YulIdentifier","src":"12036:6:53"},"nativeSrc":"12036:12:53","nodeType":"YulFunctionCall","src":"12036:12:53"},"nativeSrc":"12036:12:53","nodeType":"YulExpressionStatement","src":"12036:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12001:5:53","nodeType":"YulIdentifier","src":"12001:5:53"},{"arguments":[{"name":"value","nativeSrc":"12025:5:53","nodeType":"YulIdentifier","src":"12025:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"12008:16:53","nodeType":"YulIdentifier","src":"12008:16:53"},"nativeSrc":"12008:23:53","nodeType":"YulFunctionCall","src":"12008:23:53"}],"functionName":{"name":"eq","nativeSrc":"11998:2:53","nodeType":"YulIdentifier","src":"11998:2:53"},"nativeSrc":"11998:34:53","nodeType":"YulFunctionCall","src":"11998:34:53"}],"functionName":{"name":"iszero","nativeSrc":"11991:6:53","nodeType":"YulIdentifier","src":"11991:6:53"},"nativeSrc":"11991:42:53","nodeType":"YulFunctionCall","src":"11991:42:53"},"nativeSrc":"11988:62:53","nodeType":"YulIf","src":"11988:62:53"}]},"name":"validator_revert_t_uint64","nativeSrc":"11936:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11971:5:53","nodeType":"YulTypedName","src":"11971:5:53","type":""}],"src":"11936:120:53"},{"body":{"nativeSrc":"12113:86:53","nodeType":"YulBlock","src":"12113:86:53","statements":[{"nativeSrc":"12123:29:53","nodeType":"YulAssignment","src":"12123:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12145:6:53","nodeType":"YulIdentifier","src":"12145:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12132:12:53","nodeType":"YulIdentifier","src":"12132:12:53"},"nativeSrc":"12132:20:53","nodeType":"YulFunctionCall","src":"12132:20:53"},"variableNames":[{"name":"value","nativeSrc":"12123:5:53","nodeType":"YulIdentifier","src":"12123:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12187:5:53","nodeType":"YulIdentifier","src":"12187:5:53"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"12161:25:53","nodeType":"YulIdentifier","src":"12161:25:53"},"nativeSrc":"12161:32:53","nodeType":"YulFunctionCall","src":"12161:32:53"},"nativeSrc":"12161:32:53","nodeType":"YulExpressionStatement","src":"12161:32:53"}]},"name":"abi_decode_t_uint64","nativeSrc":"12062:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12091:6:53","nodeType":"YulTypedName","src":"12091:6:53","type":""},{"name":"end","nativeSrc":"12099:3:53","nodeType":"YulTypedName","src":"12099:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12107:5:53","nodeType":"YulTypedName","src":"12107:5:53","type":""}],"src":"12062:137:53"},{"body":{"nativeSrc":"12330:1173:53","nodeType":"YulBlock","src":"12330:1173:53","statements":[{"body":{"nativeSrc":"12374:83:53","nodeType":"YulBlock","src":"12374:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"12376:77:53","nodeType":"YulIdentifier","src":"12376:77:53"},"nativeSrc":"12376:79:53","nodeType":"YulFunctionCall","src":"12376:79:53"},"nativeSrc":"12376:79:53","nodeType":"YulExpressionStatement","src":"12376:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"12351:3:53","nodeType":"YulIdentifier","src":"12351:3:53"},{"name":"headStart","nativeSrc":"12356:9:53","nodeType":"YulIdentifier","src":"12356:9:53"}],"functionName":{"name":"sub","nativeSrc":"12347:3:53","nodeType":"YulIdentifier","src":"12347:3:53"},"nativeSrc":"12347:19:53","nodeType":"YulFunctionCall","src":"12347:19:53"},{"kind":"number","nativeSrc":"12368:4:53","nodeType":"YulLiteral","src":"12368:4:53","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"12343:3:53","nodeType":"YulIdentifier","src":"12343:3:53"},"nativeSrc":"12343:30:53","nodeType":"YulFunctionCall","src":"12343:30:53"},"nativeSrc":"12340:117:53","nodeType":"YulIf","src":"12340:117:53"},{"nativeSrc":"12466:30:53","nodeType":"YulAssignment","src":"12466:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"12491:4:53","nodeType":"YulLiteral","src":"12491:4:53","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"12475:15:53","nodeType":"YulIdentifier","src":"12475:15:53"},"nativeSrc":"12475:21:53","nodeType":"YulFunctionCall","src":"12475:21:53"},"variableNames":[{"name":"value","nativeSrc":"12466:5:53","nodeType":"YulIdentifier","src":"12466:5:53"}]},{"nativeSrc":"12506:151:53","nodeType":"YulBlock","src":"12506:151:53","statements":[{"nativeSrc":"12542:15:53","nodeType":"YulVariableDeclaration","src":"12542:15:53","value":{"kind":"number","nativeSrc":"12556:1:53","nodeType":"YulLiteral","src":"12556:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12546:6:53","nodeType":"YulTypedName","src":"12546:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12582:5:53","nodeType":"YulIdentifier","src":"12582:5:53"},{"kind":"number","nativeSrc":"12589:4:53","nodeType":"YulLiteral","src":"12589:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"12578:3:53","nodeType":"YulIdentifier","src":"12578:3:53"},"nativeSrc":"12578:16:53","nodeType":"YulFunctionCall","src":"12578:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12621:9:53","nodeType":"YulIdentifier","src":"12621:9:53"},{"name":"offset","nativeSrc":"12632:6:53","nodeType":"YulIdentifier","src":"12632:6:53"}],"functionName":{"name":"add","nativeSrc":"12617:3:53","nodeType":"YulIdentifier","src":"12617:3:53"},"nativeSrc":"12617:22:53","nodeType":"YulFunctionCall","src":"12617:22:53"},{"name":"end","nativeSrc":"12641:3:53","nodeType":"YulIdentifier","src":"12641:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12596:20:53","nodeType":"YulIdentifier","src":"12596:20:53"},"nativeSrc":"12596:49:53","nodeType":"YulFunctionCall","src":"12596:49:53"}],"functionName":{"name":"mstore","nativeSrc":"12571:6:53","nodeType":"YulIdentifier","src":"12571:6:53"},"nativeSrc":"12571:75:53","nodeType":"YulFunctionCall","src":"12571:75:53"},"nativeSrc":"12571:75:53","nodeType":"YulExpressionStatement","src":"12571:75:53"}]},{"nativeSrc":"12667:342:53","nodeType":"YulBlock","src":"12667:342:53","statements":[{"nativeSrc":"12708:46:53","nodeType":"YulVariableDeclaration","src":"12708:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12739:9:53","nodeType":"YulIdentifier","src":"12739:9:53"},{"kind":"number","nativeSrc":"12750:2:53","nodeType":"YulLiteral","src":"12750:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12735:3:53","nodeType":"YulIdentifier","src":"12735:3:53"},"nativeSrc":"12735:18:53","nodeType":"YulFunctionCall","src":"12735:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12722:12:53","nodeType":"YulIdentifier","src":"12722:12:53"},"nativeSrc":"12722:32:53","nodeType":"YulFunctionCall","src":"12722:32:53"},"variables":[{"name":"offset","nativeSrc":"12712:6:53","nodeType":"YulTypedName","src":"12712:6:53","type":""}]},{"body":{"nativeSrc":"12801:83:53","nodeType":"YulBlock","src":"12801:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"12803:77:53","nodeType":"YulIdentifier","src":"12803:77:53"},"nativeSrc":"12803:79:53","nodeType":"YulFunctionCall","src":"12803:79:53"},"nativeSrc":"12803:79:53","nodeType":"YulExpressionStatement","src":"12803:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12773:6:53","nodeType":"YulIdentifier","src":"12773:6:53"},{"kind":"number","nativeSrc":"12781:18:53","nodeType":"YulLiteral","src":"12781:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12770:2:53","nodeType":"YulIdentifier","src":"12770:2:53"},"nativeSrc":"12770:30:53","nodeType":"YulFunctionCall","src":"12770:30:53"},"nativeSrc":"12767:117:53","nodeType":"YulIf","src":"12767:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12909:5:53","nodeType":"YulIdentifier","src":"12909:5:53"},{"kind":"number","nativeSrc":"12916:4:53","nodeType":"YulLiteral","src":"12916:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12905:3:53","nodeType":"YulIdentifier","src":"12905:3:53"},"nativeSrc":"12905:16:53","nodeType":"YulFunctionCall","src":"12905:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12973:9:53","nodeType":"YulIdentifier","src":"12973:9:53"},{"name":"offset","nativeSrc":"12984:6:53","nodeType":"YulIdentifier","src":"12984:6:53"}],"functionName":{"name":"add","nativeSrc":"12969:3:53","nodeType":"YulIdentifier","src":"12969:3:53"},"nativeSrc":"12969:22:53","nodeType":"YulFunctionCall","src":"12969:22:53"},{"name":"end","nativeSrc":"12993:3:53","nodeType":"YulIdentifier","src":"12993:3:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12923:45:53","nodeType":"YulIdentifier","src":"12923:45:53"},"nativeSrc":"12923:74:53","nodeType":"YulFunctionCall","src":"12923:74:53"}],"functionName":{"name":"mstore","nativeSrc":"12898:6:53","nodeType":"YulIdentifier","src":"12898:6:53"},"nativeSrc":"12898:100:53","nodeType":"YulFunctionCall","src":"12898:100:53"},"nativeSrc":"12898:100:53","nodeType":"YulExpressionStatement","src":"12898:100:53"}]},{"nativeSrc":"13019:151:53","nodeType":"YulBlock","src":"13019:151:53","statements":[{"nativeSrc":"13055:16:53","nodeType":"YulVariableDeclaration","src":"13055:16:53","value":{"kind":"number","nativeSrc":"13069:2:53","nodeType":"YulLiteral","src":"13069:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"13059:6:53","nodeType":"YulTypedName","src":"13059:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13096:5:53","nodeType":"YulIdentifier","src":"13096:5:53"},{"kind":"number","nativeSrc":"13103:4:53","nodeType":"YulLiteral","src":"13103:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13092:3:53","nodeType":"YulIdentifier","src":"13092:3:53"},"nativeSrc":"13092:16:53","nodeType":"YulFunctionCall","src":"13092:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13134:9:53","nodeType":"YulIdentifier","src":"13134:9:53"},{"name":"offset","nativeSrc":"13145:6:53","nodeType":"YulIdentifier","src":"13145:6:53"}],"functionName":{"name":"add","nativeSrc":"13130:3:53","nodeType":"YulIdentifier","src":"13130:3:53"},"nativeSrc":"13130:22:53","nodeType":"YulFunctionCall","src":"13130:22:53"},{"name":"end","nativeSrc":"13154:3:53","nodeType":"YulIdentifier","src":"13154:3:53"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13110:19:53","nodeType":"YulIdentifier","src":"13110:19:53"},"nativeSrc":"13110:48:53","nodeType":"YulFunctionCall","src":"13110:48:53"}],"functionName":{"name":"mstore","nativeSrc":"13085:6:53","nodeType":"YulIdentifier","src":"13085:6:53"},"nativeSrc":"13085:74:53","nodeType":"YulFunctionCall","src":"13085:74:53"},"nativeSrc":"13085:74:53","nodeType":"YulExpressionStatement","src":"13085:74:53"}]},{"nativeSrc":"13180:154:53","nodeType":"YulBlock","src":"13180:154:53","statements":[{"nativeSrc":"13219:16:53","nodeType":"YulVariableDeclaration","src":"13219:16:53","value":{"kind":"number","nativeSrc":"13233:2:53","nodeType":"YulLiteral","src":"13233:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"13223:6:53","nodeType":"YulTypedName","src":"13223:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13260:5:53","nodeType":"YulIdentifier","src":"13260:5:53"},{"kind":"number","nativeSrc":"13267:4:53","nodeType":"YulLiteral","src":"13267:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"13256:3:53","nodeType":"YulIdentifier","src":"13256:3:53"},"nativeSrc":"13256:16:53","nodeType":"YulFunctionCall","src":"13256:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13298:9:53","nodeType":"YulIdentifier","src":"13298:9:53"},{"name":"offset","nativeSrc":"13309:6:53","nodeType":"YulIdentifier","src":"13309:6:53"}],"functionName":{"name":"add","nativeSrc":"13294:3:53","nodeType":"YulIdentifier","src":"13294:3:53"},"nativeSrc":"13294:22:53","nodeType":"YulFunctionCall","src":"13294:22:53"},{"name":"end","nativeSrc":"13318:3:53","nodeType":"YulIdentifier","src":"13318:3:53"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13274:19:53","nodeType":"YulIdentifier","src":"13274:19:53"},"nativeSrc":"13274:48:53","nodeType":"YulFunctionCall","src":"13274:48:53"}],"functionName":{"name":"mstore","nativeSrc":"13249:6:53","nodeType":"YulIdentifier","src":"13249:6:53"},"nativeSrc":"13249:74:53","nodeType":"YulFunctionCall","src":"13249:74:53"},"nativeSrc":"13249:74:53","nodeType":"YulExpressionStatement","src":"13249:74:53"}]},{"nativeSrc":"13344:152:53","nodeType":"YulBlock","src":"13344:152:53","statements":[{"nativeSrc":"13380:17:53","nodeType":"YulVariableDeclaration","src":"13380:17:53","value":{"kind":"number","nativeSrc":"13394:3:53","nodeType":"YulLiteral","src":"13394:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"13384:6:53","nodeType":"YulTypedName","src":"13384:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13422:5:53","nodeType":"YulIdentifier","src":"13422:5:53"},{"kind":"number","nativeSrc":"13429:4:53","nodeType":"YulLiteral","src":"13429:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13418:3:53","nodeType":"YulIdentifier","src":"13418:3:53"},"nativeSrc":"13418:16:53","nodeType":"YulFunctionCall","src":"13418:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13460:9:53","nodeType":"YulIdentifier","src":"13460:9:53"},{"name":"offset","nativeSrc":"13471:6:53","nodeType":"YulIdentifier","src":"13471:6:53"}],"functionName":{"name":"add","nativeSrc":"13456:3:53","nodeType":"YulIdentifier","src":"13456:3:53"},"nativeSrc":"13456:22:53","nodeType":"YulFunctionCall","src":"13456:22:53"},{"name":"end","nativeSrc":"13480:3:53","nodeType":"YulIdentifier","src":"13480:3:53"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13436:19:53","nodeType":"YulIdentifier","src":"13436:19:53"},"nativeSrc":"13436:48:53","nodeType":"YulFunctionCall","src":"13436:48:53"}],"functionName":{"name":"mstore","nativeSrc":"13411:6:53","nodeType":"YulIdentifier","src":"13411:6:53"},"nativeSrc":"13411:74:53","nodeType":"YulFunctionCall","src":"13411:74:53"},"nativeSrc":"13411:74:53","nodeType":"YulExpressionStatement","src":"13411:74:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$14711_memory_ptr","nativeSrc":"12245:1258:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12305:9:53","nodeType":"YulTypedName","src":"12305:9:53","type":""},{"name":"end","nativeSrc":"12316:3:53","nodeType":"YulTypedName","src":"12316:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12324:5:53","nodeType":"YulTypedName","src":"12324:5:53","type":""}],"src":"12245:1258:53"},{"body":{"nativeSrc":"13605:453:53","nodeType":"YulBlock","src":"13605:453:53","statements":[{"body":{"nativeSrc":"13651:83:53","nodeType":"YulBlock","src":"13651:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13653:77:53","nodeType":"YulIdentifier","src":"13653:77:53"},"nativeSrc":"13653:79:53","nodeType":"YulFunctionCall","src":"13653:79:53"},"nativeSrc":"13653:79:53","nodeType":"YulExpressionStatement","src":"13653:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13626:7:53","nodeType":"YulIdentifier","src":"13626:7:53"},{"name":"headStart","nativeSrc":"13635:9:53","nodeType":"YulIdentifier","src":"13635:9:53"}],"functionName":{"name":"sub","nativeSrc":"13622:3:53","nodeType":"YulIdentifier","src":"13622:3:53"},"nativeSrc":"13622:23:53","nodeType":"YulFunctionCall","src":"13622:23:53"},{"kind":"number","nativeSrc":"13647:2:53","nodeType":"YulLiteral","src":"13647:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13618:3:53","nodeType":"YulIdentifier","src":"13618:3:53"},"nativeSrc":"13618:32:53","nodeType":"YulFunctionCall","src":"13618:32:53"},"nativeSrc":"13615:119:53","nodeType":"YulIf","src":"13615:119:53"},{"nativeSrc":"13744:307:53","nodeType":"YulBlock","src":"13744:307:53","statements":[{"nativeSrc":"13759:45:53","nodeType":"YulVariableDeclaration","src":"13759:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13790:9:53","nodeType":"YulIdentifier","src":"13790:9:53"},{"kind":"number","nativeSrc":"13801:1:53","nodeType":"YulLiteral","src":"13801:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13786:3:53","nodeType":"YulIdentifier","src":"13786:3:53"},"nativeSrc":"13786:17:53","nodeType":"YulFunctionCall","src":"13786:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"13773:12:53","nodeType":"YulIdentifier","src":"13773:12:53"},"nativeSrc":"13773:31:53","nodeType":"YulFunctionCall","src":"13773:31:53"},"variables":[{"name":"offset","nativeSrc":"13763:6:53","nodeType":"YulTypedName","src":"13763:6:53","type":""}]},{"body":{"nativeSrc":"13851:83:53","nodeType":"YulBlock","src":"13851:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13853:77:53","nodeType":"YulIdentifier","src":"13853:77:53"},"nativeSrc":"13853:79:53","nodeType":"YulFunctionCall","src":"13853:79:53"},"nativeSrc":"13853:79:53","nodeType":"YulExpressionStatement","src":"13853:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13823:6:53","nodeType":"YulIdentifier","src":"13823:6:53"},{"kind":"number","nativeSrc":"13831:18:53","nodeType":"YulLiteral","src":"13831:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13820:2:53","nodeType":"YulIdentifier","src":"13820:2:53"},"nativeSrc":"13820:30:53","nodeType":"YulFunctionCall","src":"13820:30:53"},"nativeSrc":"13817:117:53","nodeType":"YulIf","src":"13817:117:53"},{"nativeSrc":"13948:93:53","nodeType":"YulAssignment","src":"13948:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14013:9:53","nodeType":"YulIdentifier","src":"14013:9:53"},{"name":"offset","nativeSrc":"14024:6:53","nodeType":"YulIdentifier","src":"14024:6:53"}],"functionName":{"name":"add","nativeSrc":"14009:3:53","nodeType":"YulIdentifier","src":"14009:3:53"},"nativeSrc":"14009:22:53","nodeType":"YulFunctionCall","src":"14009:22:53"},{"name":"dataEnd","nativeSrc":"14033:7:53","nodeType":"YulIdentifier","src":"14033:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$14711_memory_ptr","nativeSrc":"13958:50:53","nodeType":"YulIdentifier","src":"13958:50:53"},"nativeSrc":"13958:83:53","nodeType":"YulFunctionCall","src":"13958:83:53"},"variableNames":[{"name":"value0","nativeSrc":"13948:6:53","nodeType":"YulIdentifier","src":"13948:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$14711_memory_ptr","nativeSrc":"13509:549:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13575:9:53","nodeType":"YulTypedName","src":"13575:9:53","type":""},{"name":"dataEnd","nativeSrc":"13586:7:53","nodeType":"YulTypedName","src":"13586:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13598:6:53","nodeType":"YulTypedName","src":"13598:6:53","type":""}],"src":"13509:549:53"},{"body":{"nativeSrc":"14122:56:53","nodeType":"YulBlock","src":"14122:56:53","statements":[{"body":{"nativeSrc":"14156:16:53","nodeType":"YulBlock","src":"14156:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14165:1:53","nodeType":"YulLiteral","src":"14165:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14168:1:53","nodeType":"YulLiteral","src":"14168:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14158:6:53","nodeType":"YulIdentifier","src":"14158:6:53"},"nativeSrc":"14158:12:53","nodeType":"YulFunctionCall","src":"14158:12:53"},"nativeSrc":"14158:12:53","nodeType":"YulExpressionStatement","src":"14158:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14145:5:53","nodeType":"YulIdentifier","src":"14145:5:53"},{"kind":"number","nativeSrc":"14152:1:53","nodeType":"YulLiteral","src":"14152:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"14142:2:53","nodeType":"YulIdentifier","src":"14142:2:53"},"nativeSrc":"14142:12:53","nodeType":"YulFunctionCall","src":"14142:12:53"}],"functionName":{"name":"iszero","nativeSrc":"14135:6:53","nodeType":"YulIdentifier","src":"14135:6:53"},"nativeSrc":"14135:20:53","nodeType":"YulFunctionCall","src":"14135:20:53"},"nativeSrc":"14132:40:53","nodeType":"YulIf","src":"14132:40:53"}]},"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"14064:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14115:5:53","nodeType":"YulTypedName","src":"14115:5:53","type":""}],"src":"14064:114:53"},{"body":{"nativeSrc":"14251:102:53","nodeType":"YulBlock","src":"14251:102:53","statements":[{"nativeSrc":"14261:29:53","nodeType":"YulAssignment","src":"14261:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"14283:6:53","nodeType":"YulIdentifier","src":"14283:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"14270:12:53","nodeType":"YulIdentifier","src":"14270:12:53"},"nativeSrc":"14270:20:53","nodeType":"YulFunctionCall","src":"14270:20:53"},"variableNames":[{"name":"value","nativeSrc":"14261:5:53","nodeType":"YulIdentifier","src":"14261:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14341:5:53","nodeType":"YulIdentifier","src":"14341:5:53"}],"functionName":{"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"14299:41:53","nodeType":"YulIdentifier","src":"14299:41:53"},"nativeSrc":"14299:48:53","nodeType":"YulFunctionCall","src":"14299:48:53"},"nativeSrc":"14299:48:53","nodeType":"YulExpressionStatement","src":"14299:48:53"}]},"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"14184:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14229:6:53","nodeType":"YulTypedName","src":"14229:6:53","type":""},{"name":"end","nativeSrc":"14237:3:53","nodeType":"YulTypedName","src":"14237:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14245:5:53","nodeType":"YulTypedName","src":"14245:5:53","type":""}],"src":"14184:169:53"},{"body":{"nativeSrc":"14448:28:53","nodeType":"YulBlock","src":"14448:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14465:1:53","nodeType":"YulLiteral","src":"14465:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14468:1:53","nodeType":"YulLiteral","src":"14468:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14458:6:53","nodeType":"YulIdentifier","src":"14458:6:53"},"nativeSrc":"14458:12:53","nodeType":"YulFunctionCall","src":"14458:12:53"},"nativeSrc":"14458:12:53","nodeType":"YulExpressionStatement","src":"14458:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14359:117:53","nodeType":"YulFunctionDefinition","src":"14359:117:53"},{"body":{"nativeSrc":"14548:241:53","nodeType":"YulBlock","src":"14548:241:53","statements":[{"body":{"nativeSrc":"14653:22:53","nodeType":"YulBlock","src":"14653:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"14655:16:53","nodeType":"YulIdentifier","src":"14655:16:53"},"nativeSrc":"14655:18:53","nodeType":"YulFunctionCall","src":"14655:18:53"},"nativeSrc":"14655:18:53","nodeType":"YulExpressionStatement","src":"14655:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14625:6:53","nodeType":"YulIdentifier","src":"14625:6:53"},{"kind":"number","nativeSrc":"14633:18:53","nodeType":"YulLiteral","src":"14633:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14622:2:53","nodeType":"YulIdentifier","src":"14622:2:53"},"nativeSrc":"14622:30:53","nodeType":"YulFunctionCall","src":"14622:30:53"},"nativeSrc":"14619:56:53","nodeType":"YulIf","src":"14619:56:53"},{"nativeSrc":"14685:37:53","nodeType":"YulAssignment","src":"14685:37:53","value":{"arguments":[{"name":"length","nativeSrc":"14715:6:53","nodeType":"YulIdentifier","src":"14715:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"14693:21:53","nodeType":"YulIdentifier","src":"14693:21:53"},"nativeSrc":"14693:29:53","nodeType":"YulFunctionCall","src":"14693:29:53"},"variableNames":[{"name":"size","nativeSrc":"14685:4:53","nodeType":"YulIdentifier","src":"14685:4:53"}]},{"nativeSrc":"14759:23:53","nodeType":"YulAssignment","src":"14759:23:53","value":{"arguments":[{"name":"size","nativeSrc":"14771:4:53","nodeType":"YulIdentifier","src":"14771:4:53"},{"kind":"number","nativeSrc":"14777:4:53","nodeType":"YulLiteral","src":"14777:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14767:3:53","nodeType":"YulIdentifier","src":"14767:3:53"},"nativeSrc":"14767:15:53","nodeType":"YulFunctionCall","src":"14767:15:53"},"variableNames":[{"name":"size","nativeSrc":"14759:4:53","nodeType":"YulIdentifier","src":"14759:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14482:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14532:6:53","nodeType":"YulTypedName","src":"14532:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14543:4:53","nodeType":"YulTypedName","src":"14543:4:53","type":""}],"src":"14482:307:53"},{"body":{"nativeSrc":"14859:84:53","nodeType":"YulBlock","src":"14859:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"14883:3:53","nodeType":"YulIdentifier","src":"14883:3:53"},{"name":"src","nativeSrc":"14888:3:53","nodeType":"YulIdentifier","src":"14888:3:53"},{"name":"length","nativeSrc":"14893:6:53","nodeType":"YulIdentifier","src":"14893:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"14870:12:53","nodeType":"YulIdentifier","src":"14870:12:53"},"nativeSrc":"14870:30:53","nodeType":"YulFunctionCall","src":"14870:30:53"},"nativeSrc":"14870:30:53","nodeType":"YulExpressionStatement","src":"14870:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"14920:3:53","nodeType":"YulIdentifier","src":"14920:3:53"},{"name":"length","nativeSrc":"14925:6:53","nodeType":"YulIdentifier","src":"14925:6:53"}],"functionName":{"name":"add","nativeSrc":"14916:3:53","nodeType":"YulIdentifier","src":"14916:3:53"},"nativeSrc":"14916:16:53","nodeType":"YulFunctionCall","src":"14916:16:53"},{"kind":"number","nativeSrc":"14934:1:53","nodeType":"YulLiteral","src":"14934:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14909:6:53","nodeType":"YulIdentifier","src":"14909:6:53"},"nativeSrc":"14909:27:53","nodeType":"YulFunctionCall","src":"14909:27:53"},"nativeSrc":"14909:27:53","nodeType":"YulExpressionStatement","src":"14909:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"14795:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"14841:3:53","nodeType":"YulTypedName","src":"14841:3:53","type":""},{"name":"dst","nativeSrc":"14846:3:53","nodeType":"YulTypedName","src":"14846:3:53","type":""},{"name":"length","nativeSrc":"14851:6:53","nodeType":"YulTypedName","src":"14851:6:53","type":""}],"src":"14795:148:53"},{"body":{"nativeSrc":"15032:340:53","nodeType":"YulBlock","src":"15032:340:53","statements":[{"nativeSrc":"15042:74:53","nodeType":"YulAssignment","src":"15042:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"15108:6:53","nodeType":"YulIdentifier","src":"15108:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"15067:40:53","nodeType":"YulIdentifier","src":"15067:40:53"},"nativeSrc":"15067:48:53","nodeType":"YulFunctionCall","src":"15067:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"15051:15:53","nodeType":"YulIdentifier","src":"15051:15:53"},"nativeSrc":"15051:65:53","nodeType":"YulFunctionCall","src":"15051:65:53"},"variableNames":[{"name":"array","nativeSrc":"15042:5:53","nodeType":"YulIdentifier","src":"15042:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"15132:5:53","nodeType":"YulIdentifier","src":"15132:5:53"},{"name":"length","nativeSrc":"15139:6:53","nodeType":"YulIdentifier","src":"15139:6:53"}],"functionName":{"name":"mstore","nativeSrc":"15125:6:53","nodeType":"YulIdentifier","src":"15125:6:53"},"nativeSrc":"15125:21:53","nodeType":"YulFunctionCall","src":"15125:21:53"},"nativeSrc":"15125:21:53","nodeType":"YulExpressionStatement","src":"15125:21:53"},{"nativeSrc":"15155:27:53","nodeType":"YulVariableDeclaration","src":"15155:27:53","value":{"arguments":[{"name":"array","nativeSrc":"15170:5:53","nodeType":"YulIdentifier","src":"15170:5:53"},{"kind":"number","nativeSrc":"15177:4:53","nodeType":"YulLiteral","src":"15177:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15166:3:53","nodeType":"YulIdentifier","src":"15166:3:53"},"nativeSrc":"15166:16:53","nodeType":"YulFunctionCall","src":"15166:16:53"},"variables":[{"name":"dst","nativeSrc":"15159:3:53","nodeType":"YulTypedName","src":"15159:3:53","type":""}]},{"body":{"nativeSrc":"15220:83:53","nodeType":"YulBlock","src":"15220:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"15222:77:53","nodeType":"YulIdentifier","src":"15222:77:53"},"nativeSrc":"15222:79:53","nodeType":"YulFunctionCall","src":"15222:79:53"},"nativeSrc":"15222:79:53","nodeType":"YulExpressionStatement","src":"15222:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15201:3:53","nodeType":"YulIdentifier","src":"15201:3:53"},{"name":"length","nativeSrc":"15206:6:53","nodeType":"YulIdentifier","src":"15206:6:53"}],"functionName":{"name":"add","nativeSrc":"15197:3:53","nodeType":"YulIdentifier","src":"15197:3:53"},"nativeSrc":"15197:16:53","nodeType":"YulFunctionCall","src":"15197:16:53"},{"name":"end","nativeSrc":"15215:3:53","nodeType":"YulIdentifier","src":"15215:3:53"}],"functionName":{"name":"gt","nativeSrc":"15194:2:53","nodeType":"YulIdentifier","src":"15194:2:53"},"nativeSrc":"15194:25:53","nodeType":"YulFunctionCall","src":"15194:25:53"},"nativeSrc":"15191:112:53","nodeType":"YulIf","src":"15191:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"15349:3:53","nodeType":"YulIdentifier","src":"15349:3:53"},{"name":"dst","nativeSrc":"15354:3:53","nodeType":"YulIdentifier","src":"15354:3:53"},{"name":"length","nativeSrc":"15359:6:53","nodeType":"YulIdentifier","src":"15359:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15312:36:53","nodeType":"YulIdentifier","src":"15312:36:53"},"nativeSrc":"15312:54:53","nodeType":"YulFunctionCall","src":"15312:54:53"},"nativeSrc":"15312:54:53","nodeType":"YulExpressionStatement","src":"15312:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"14949:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15005:3:53","nodeType":"YulTypedName","src":"15005:3:53","type":""},{"name":"length","nativeSrc":"15010:6:53","nodeType":"YulTypedName","src":"15010:6:53","type":""},{"name":"end","nativeSrc":"15018:3:53","nodeType":"YulTypedName","src":"15018:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15026:5:53","nodeType":"YulTypedName","src":"15026:5:53","type":""}],"src":"14949:423:53"},{"body":{"nativeSrc":"15452:277:53","nodeType":"YulBlock","src":"15452:277:53","statements":[{"body":{"nativeSrc":"15501:83:53","nodeType":"YulBlock","src":"15501:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15503:77:53","nodeType":"YulIdentifier","src":"15503:77:53"},"nativeSrc":"15503:79:53","nodeType":"YulFunctionCall","src":"15503:79:53"},"nativeSrc":"15503:79:53","nodeType":"YulExpressionStatement","src":"15503:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15480:6:53","nodeType":"YulIdentifier","src":"15480:6:53"},{"kind":"number","nativeSrc":"15488:4:53","nodeType":"YulLiteral","src":"15488:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15476:3:53","nodeType":"YulIdentifier","src":"15476:3:53"},"nativeSrc":"15476:17:53","nodeType":"YulFunctionCall","src":"15476:17:53"},{"name":"end","nativeSrc":"15495:3:53","nodeType":"YulIdentifier","src":"15495:3:53"}],"functionName":{"name":"slt","nativeSrc":"15472:3:53","nodeType":"YulIdentifier","src":"15472:3:53"},"nativeSrc":"15472:27:53","nodeType":"YulFunctionCall","src":"15472:27:53"}],"functionName":{"name":"iszero","nativeSrc":"15465:6:53","nodeType":"YulIdentifier","src":"15465:6:53"},"nativeSrc":"15465:35:53","nodeType":"YulFunctionCall","src":"15465:35:53"},"nativeSrc":"15462:122:53","nodeType":"YulIf","src":"15462:122:53"},{"nativeSrc":"15593:34:53","nodeType":"YulVariableDeclaration","src":"15593:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"15620:6:53","nodeType":"YulIdentifier","src":"15620:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15607:12:53","nodeType":"YulIdentifier","src":"15607:12:53"},"nativeSrc":"15607:20:53","nodeType":"YulFunctionCall","src":"15607:20:53"},"variables":[{"name":"length","nativeSrc":"15597:6:53","nodeType":"YulTypedName","src":"15597:6:53","type":""}]},{"nativeSrc":"15636:87:53","nodeType":"YulAssignment","src":"15636:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15696:6:53","nodeType":"YulIdentifier","src":"15696:6:53"},{"kind":"number","nativeSrc":"15704:4:53","nodeType":"YulLiteral","src":"15704:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15692:3:53","nodeType":"YulIdentifier","src":"15692:3:53"},"nativeSrc":"15692:17:53","nodeType":"YulFunctionCall","src":"15692:17:53"},{"name":"length","nativeSrc":"15711:6:53","nodeType":"YulIdentifier","src":"15711:6:53"},{"name":"end","nativeSrc":"15719:3:53","nodeType":"YulIdentifier","src":"15719:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15645:46:53","nodeType":"YulIdentifier","src":"15645:46:53"},"nativeSrc":"15645:78:53","nodeType":"YulFunctionCall","src":"15645:78:53"},"variableNames":[{"name":"array","nativeSrc":"15636:5:53","nodeType":"YulIdentifier","src":"15636:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15391:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15430:6:53","nodeType":"YulTypedName","src":"15430:6:53","type":""},{"name":"end","nativeSrc":"15438:3:53","nodeType":"YulTypedName","src":"15438:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15446:5:53","nodeType":"YulTypedName","src":"15446:5:53","type":""}],"src":"15391:338:53"},{"body":{"nativeSrc":"15847:1008:53","nodeType":"YulBlock","src":"15847:1008:53","statements":[{"body":{"nativeSrc":"15891:83:53","nodeType":"YulBlock","src":"15891:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"15893:77:53","nodeType":"YulIdentifier","src":"15893:77:53"},"nativeSrc":"15893:79:53","nodeType":"YulFunctionCall","src":"15893:79:53"},"nativeSrc":"15893:79:53","nodeType":"YulExpressionStatement","src":"15893:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"15868:3:53","nodeType":"YulIdentifier","src":"15868:3:53"},{"name":"headStart","nativeSrc":"15873:9:53","nodeType":"YulIdentifier","src":"15873:9:53"}],"functionName":{"name":"sub","nativeSrc":"15864:3:53","nodeType":"YulIdentifier","src":"15864:3:53"},"nativeSrc":"15864:19:53","nodeType":"YulFunctionCall","src":"15864:19:53"},{"kind":"number","nativeSrc":"15885:4:53","nodeType":"YulLiteral","src":"15885:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"15860:3:53","nodeType":"YulIdentifier","src":"15860:3:53"},"nativeSrc":"15860:30:53","nodeType":"YulFunctionCall","src":"15860:30:53"},"nativeSrc":"15857:117:53","nodeType":"YulIf","src":"15857:117:53"},{"nativeSrc":"15983:30:53","nodeType":"YulAssignment","src":"15983:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"16008:4:53","nodeType":"YulLiteral","src":"16008:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"15992:15:53","nodeType":"YulIdentifier","src":"15992:15:53"},"nativeSrc":"15992:21:53","nodeType":"YulFunctionCall","src":"15992:21:53"},"variableNames":[{"name":"value","nativeSrc":"15983:5:53","nodeType":"YulIdentifier","src":"15983:5:53"}]},{"nativeSrc":"16023:170:53","nodeType":"YulBlock","src":"16023:170:53","statements":[{"nativeSrc":"16063:15:53","nodeType":"YulVariableDeclaration","src":"16063:15:53","value":{"kind":"number","nativeSrc":"16077:1:53","nodeType":"YulLiteral","src":"16077:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16067:6:53","nodeType":"YulTypedName","src":"16067:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16103:5:53","nodeType":"YulIdentifier","src":"16103:5:53"},{"kind":"number","nativeSrc":"16110:4:53","nodeType":"YulLiteral","src":"16110:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16099:3:53","nodeType":"YulIdentifier","src":"16099:3:53"},"nativeSrc":"16099:16:53","nodeType":"YulFunctionCall","src":"16099:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16157:9:53","nodeType":"YulIdentifier","src":"16157:9:53"},{"name":"offset","nativeSrc":"16168:6:53","nodeType":"YulIdentifier","src":"16168:6:53"}],"functionName":{"name":"add","nativeSrc":"16153:3:53","nodeType":"YulIdentifier","src":"16153:3:53"},"nativeSrc":"16153:22:53","nodeType":"YulFunctionCall","src":"16153:22:53"},{"name":"end","nativeSrc":"16177:3:53","nodeType":"YulIdentifier","src":"16177:3:53"}],"functionName":{"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"16117:35:53","nodeType":"YulIdentifier","src":"16117:35:53"},"nativeSrc":"16117:64:53","nodeType":"YulFunctionCall","src":"16117:64:53"}],"functionName":{"name":"mstore","nativeSrc":"16092:6:53","nodeType":"YulIdentifier","src":"16092:6:53"},"nativeSrc":"16092:90:53","nodeType":"YulFunctionCall","src":"16092:90:53"},"nativeSrc":"16092:90:53","nodeType":"YulExpressionStatement","src":"16092:90:53"}]},{"nativeSrc":"16203:152:53","nodeType":"YulBlock","src":"16203:152:53","statements":[{"nativeSrc":"16239:16:53","nodeType":"YulVariableDeclaration","src":"16239:16:53","value":{"kind":"number","nativeSrc":"16253:2:53","nodeType":"YulLiteral","src":"16253:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16243:6:53","nodeType":"YulTypedName","src":"16243:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16280:5:53","nodeType":"YulIdentifier","src":"16280:5:53"},{"kind":"number","nativeSrc":"16287:4:53","nodeType":"YulLiteral","src":"16287:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16276:3:53","nodeType":"YulIdentifier","src":"16276:3:53"},"nativeSrc":"16276:16:53","nodeType":"YulFunctionCall","src":"16276:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16319:9:53","nodeType":"YulIdentifier","src":"16319:9:53"},{"name":"offset","nativeSrc":"16330:6:53","nodeType":"YulIdentifier","src":"16330:6:53"}],"functionName":{"name":"add","nativeSrc":"16315:3:53","nodeType":"YulIdentifier","src":"16315:3:53"},"nativeSrc":"16315:22:53","nodeType":"YulFunctionCall","src":"16315:22:53"},{"name":"end","nativeSrc":"16339:3:53","nodeType":"YulIdentifier","src":"16339:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16294:20:53","nodeType":"YulIdentifier","src":"16294:20:53"},"nativeSrc":"16294:49:53","nodeType":"YulFunctionCall","src":"16294:49:53"}],"functionName":{"name":"mstore","nativeSrc":"16269:6:53","nodeType":"YulIdentifier","src":"16269:6:53"},"nativeSrc":"16269:75:53","nodeType":"YulFunctionCall","src":"16269:75:53"},"nativeSrc":"16269:75:53","nodeType":"YulExpressionStatement","src":"16269:75:53"}]},{"nativeSrc":"16365:153:53","nodeType":"YulBlock","src":"16365:153:53","statements":[{"nativeSrc":"16402:16:53","nodeType":"YulVariableDeclaration","src":"16402:16:53","value":{"kind":"number","nativeSrc":"16416:2:53","nodeType":"YulLiteral","src":"16416:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16406:6:53","nodeType":"YulTypedName","src":"16406:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16443:5:53","nodeType":"YulIdentifier","src":"16443:5:53"},{"kind":"number","nativeSrc":"16450:4:53","nodeType":"YulLiteral","src":"16450:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16439:3:53","nodeType":"YulIdentifier","src":"16439:3:53"},"nativeSrc":"16439:16:53","nodeType":"YulFunctionCall","src":"16439:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16482:9:53","nodeType":"YulIdentifier","src":"16482:9:53"},{"name":"offset","nativeSrc":"16493:6:53","nodeType":"YulIdentifier","src":"16493:6:53"}],"functionName":{"name":"add","nativeSrc":"16478:3:53","nodeType":"YulIdentifier","src":"16478:3:53"},"nativeSrc":"16478:22:53","nodeType":"YulFunctionCall","src":"16478:22:53"},{"name":"end","nativeSrc":"16502:3:53","nodeType":"YulIdentifier","src":"16502:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16457:20:53","nodeType":"YulIdentifier","src":"16457:20:53"},"nativeSrc":"16457:49:53","nodeType":"YulFunctionCall","src":"16457:49:53"}],"functionName":{"name":"mstore","nativeSrc":"16432:6:53","nodeType":"YulIdentifier","src":"16432:6:53"},"nativeSrc":"16432:75:53","nodeType":"YulFunctionCall","src":"16432:75:53"},"nativeSrc":"16432:75:53","nodeType":"YulExpressionStatement","src":"16432:75:53"}]},{"nativeSrc":"16528:320:53","nodeType":"YulBlock","src":"16528:320:53","statements":[{"nativeSrc":"16563:46:53","nodeType":"YulVariableDeclaration","src":"16563:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16594:9:53","nodeType":"YulIdentifier","src":"16594:9:53"},{"kind":"number","nativeSrc":"16605:2:53","nodeType":"YulLiteral","src":"16605:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16590:3:53","nodeType":"YulIdentifier","src":"16590:3:53"},"nativeSrc":"16590:18:53","nodeType":"YulFunctionCall","src":"16590:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"16577:12:53","nodeType":"YulIdentifier","src":"16577:12:53"},"nativeSrc":"16577:32:53","nodeType":"YulFunctionCall","src":"16577:32:53"},"variables":[{"name":"offset","nativeSrc":"16567:6:53","nodeType":"YulTypedName","src":"16567:6:53","type":""}]},{"body":{"nativeSrc":"16656:83:53","nodeType":"YulBlock","src":"16656:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16658:77:53","nodeType":"YulIdentifier","src":"16658:77:53"},"nativeSrc":"16658:79:53","nodeType":"YulFunctionCall","src":"16658:79:53"},"nativeSrc":"16658:79:53","nodeType":"YulExpressionStatement","src":"16658:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16628:6:53","nodeType":"YulIdentifier","src":"16628:6:53"},{"kind":"number","nativeSrc":"16636:18:53","nodeType":"YulLiteral","src":"16636:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16625:2:53","nodeType":"YulIdentifier","src":"16625:2:53"},"nativeSrc":"16625:30:53","nodeType":"YulFunctionCall","src":"16625:30:53"},"nativeSrc":"16622:117:53","nodeType":"YulIf","src":"16622:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16764:5:53","nodeType":"YulIdentifier","src":"16764:5:53"},{"kind":"number","nativeSrc":"16771:4:53","nodeType":"YulLiteral","src":"16771:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16760:3:53","nodeType":"YulIdentifier","src":"16760:3:53"},"nativeSrc":"16760:16:53","nodeType":"YulFunctionCall","src":"16760:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16812:9:53","nodeType":"YulIdentifier","src":"16812:9:53"},{"name":"offset","nativeSrc":"16823:6:53","nodeType":"YulIdentifier","src":"16823:6:53"}],"functionName":{"name":"add","nativeSrc":"16808:3:53","nodeType":"YulIdentifier","src":"16808:3:53"},"nativeSrc":"16808:22:53","nodeType":"YulFunctionCall","src":"16808:22:53"},{"name":"end","nativeSrc":"16832:3:53","nodeType":"YulIdentifier","src":"16832:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"16778:29:53","nodeType":"YulIdentifier","src":"16778:29:53"},"nativeSrc":"16778:58:53","nodeType":"YulFunctionCall","src":"16778:58:53"}],"functionName":{"name":"mstore","nativeSrc":"16753:6:53","nodeType":"YulIdentifier","src":"16753:6:53"},"nativeSrc":"16753:84:53","nodeType":"YulFunctionCall","src":"16753:84:53"},"nativeSrc":"16753:84:53","nodeType":"YulExpressionStatement","src":"16753:84:53"}]}]},"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"15765:1090:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15822:9:53","nodeType":"YulTypedName","src":"15822:9:53","type":""},{"name":"end","nativeSrc":"15833:3:53","nodeType":"YulTypedName","src":"15833:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15841:5:53","nodeType":"YulTypedName","src":"15841:5:53","type":""}],"src":"15765:1090:53"},{"body":{"nativeSrc":"16954:450:53","nodeType":"YulBlock","src":"16954:450:53","statements":[{"body":{"nativeSrc":"17000:83:53","nodeType":"YulBlock","src":"17000:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17002:77:53","nodeType":"YulIdentifier","src":"17002:77:53"},"nativeSrc":"17002:79:53","nodeType":"YulFunctionCall","src":"17002:79:53"},"nativeSrc":"17002:79:53","nodeType":"YulExpressionStatement","src":"17002:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16975:7:53","nodeType":"YulIdentifier","src":"16975:7:53"},{"name":"headStart","nativeSrc":"16984:9:53","nodeType":"YulIdentifier","src":"16984:9:53"}],"functionName":{"name":"sub","nativeSrc":"16971:3:53","nodeType":"YulIdentifier","src":"16971:3:53"},"nativeSrc":"16971:23:53","nodeType":"YulFunctionCall","src":"16971:23:53"},{"kind":"number","nativeSrc":"16996:2:53","nodeType":"YulLiteral","src":"16996:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16967:3:53","nodeType":"YulIdentifier","src":"16967:3:53"},"nativeSrc":"16967:32:53","nodeType":"YulFunctionCall","src":"16967:32:53"},"nativeSrc":"16964:119:53","nodeType":"YulIf","src":"16964:119:53"},{"nativeSrc":"17093:304:53","nodeType":"YulBlock","src":"17093:304:53","statements":[{"nativeSrc":"17108:45:53","nodeType":"YulVariableDeclaration","src":"17108:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17139:9:53","nodeType":"YulIdentifier","src":"17139:9:53"},{"kind":"number","nativeSrc":"17150:1:53","nodeType":"YulLiteral","src":"17150:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17135:3:53","nodeType":"YulIdentifier","src":"17135:3:53"},"nativeSrc":"17135:17:53","nodeType":"YulFunctionCall","src":"17135:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"17122:12:53","nodeType":"YulIdentifier","src":"17122:12:53"},"nativeSrc":"17122:31:53","nodeType":"YulFunctionCall","src":"17122:31:53"},"variables":[{"name":"offset","nativeSrc":"17112:6:53","nodeType":"YulTypedName","src":"17112:6:53","type":""}]},{"body":{"nativeSrc":"17200:83:53","nodeType":"YulBlock","src":"17200:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17202:77:53","nodeType":"YulIdentifier","src":"17202:77:53"},"nativeSrc":"17202:79:53","nodeType":"YulFunctionCall","src":"17202:79:53"},"nativeSrc":"17202:79:53","nodeType":"YulExpressionStatement","src":"17202:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17172:6:53","nodeType":"YulIdentifier","src":"17172:6:53"},{"kind":"number","nativeSrc":"17180:18:53","nodeType":"YulLiteral","src":"17180:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17169:2:53","nodeType":"YulIdentifier","src":"17169:2:53"},"nativeSrc":"17169:30:53","nodeType":"YulFunctionCall","src":"17169:30:53"},"nativeSrc":"17166:117:53","nodeType":"YulIf","src":"17166:117:53"},{"nativeSrc":"17297:90:53","nodeType":"YulAssignment","src":"17297:90:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17359:9:53","nodeType":"YulIdentifier","src":"17359:9:53"},{"name":"offset","nativeSrc":"17370:6:53","nodeType":"YulIdentifier","src":"17370:6:53"}],"functionName":{"name":"add","nativeSrc":"17355:3:53","nodeType":"YulIdentifier","src":"17355:3:53"},"nativeSrc":"17355:22:53","nodeType":"YulFunctionCall","src":"17355:22:53"},{"name":"dataEnd","nativeSrc":"17379:7:53","nodeType":"YulIdentifier","src":"17379:7:53"}],"functionName":{"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"17307:47:53","nodeType":"YulIdentifier","src":"17307:47:53"},"nativeSrc":"17307:80:53","nodeType":"YulFunctionCall","src":"17307:80:53"},"variableNames":[{"name":"value0","nativeSrc":"17297:6:53","nodeType":"YulIdentifier","src":"17297:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"16861:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16924:9:53","nodeType":"YulTypedName","src":"16924:9:53","type":""},{"name":"dataEnd","nativeSrc":"16935:7:53","nodeType":"YulTypedName","src":"16935:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16947:6:53","nodeType":"YulTypedName","src":"16947:6:53","type":""}],"src":"16861:543:53"},{"body":{"nativeSrc":"17438:152:53","nodeType":"YulBlock","src":"17438:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17455:1:53","nodeType":"YulLiteral","src":"17455:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17458:77:53","nodeType":"YulLiteral","src":"17458:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17448:6:53","nodeType":"YulIdentifier","src":"17448:6:53"},"nativeSrc":"17448:88:53","nodeType":"YulFunctionCall","src":"17448:88:53"},"nativeSrc":"17448:88:53","nodeType":"YulExpressionStatement","src":"17448:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17552:1:53","nodeType":"YulLiteral","src":"17552:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"17555:4:53","nodeType":"YulLiteral","src":"17555:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"17545:6:53","nodeType":"YulIdentifier","src":"17545:6:53"},"nativeSrc":"17545:15:53","nodeType":"YulFunctionCall","src":"17545:15:53"},"nativeSrc":"17545:15:53","nodeType":"YulExpressionStatement","src":"17545:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17576:1:53","nodeType":"YulLiteral","src":"17576:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17579:4:53","nodeType":"YulLiteral","src":"17579:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17569:6:53","nodeType":"YulIdentifier","src":"17569:6:53"},"nativeSrc":"17569:15:53","nodeType":"YulFunctionCall","src":"17569:15:53"},"nativeSrc":"17569:15:53","nodeType":"YulExpressionStatement","src":"17569:15:53"}]},"name":"panic_error_0x21","nativeSrc":"17410:180:53","nodeType":"YulFunctionDefinition","src":"17410:180:53"},{"body":{"nativeSrc":"17639:79:53","nodeType":"YulBlock","src":"17639:79:53","statements":[{"body":{"nativeSrc":"17696:16:53","nodeType":"YulBlock","src":"17696:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17705:1:53","nodeType":"YulLiteral","src":"17705:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17708:1:53","nodeType":"YulLiteral","src":"17708:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17698:6:53","nodeType":"YulIdentifier","src":"17698:6:53"},"nativeSrc":"17698:12:53","nodeType":"YulFunctionCall","src":"17698:12:53"},"nativeSrc":"17698:12:53","nodeType":"YulExpressionStatement","src":"17698:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17662:5:53","nodeType":"YulIdentifier","src":"17662:5:53"},{"arguments":[{"name":"value","nativeSrc":"17687:5:53","nodeType":"YulIdentifier","src":"17687:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"17669:17:53","nodeType":"YulIdentifier","src":"17669:17:53"},"nativeSrc":"17669:24:53","nodeType":"YulFunctionCall","src":"17669:24:53"}],"functionName":{"name":"eq","nativeSrc":"17659:2:53","nodeType":"YulIdentifier","src":"17659:2:53"},"nativeSrc":"17659:35:53","nodeType":"YulFunctionCall","src":"17659:35:53"}],"functionName":{"name":"iszero","nativeSrc":"17652:6:53","nodeType":"YulIdentifier","src":"17652:6:53"},"nativeSrc":"17652:43:53","nodeType":"YulFunctionCall","src":"17652:43:53"},"nativeSrc":"17649:63:53","nodeType":"YulIf","src":"17649:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"17596:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17632:5:53","nodeType":"YulTypedName","src":"17632:5:53","type":""}],"src":"17596:122:53"},{"body":{"nativeSrc":"17787:80:53","nodeType":"YulBlock","src":"17787:80:53","statements":[{"nativeSrc":"17797:22:53","nodeType":"YulAssignment","src":"17797:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"17812:6:53","nodeType":"YulIdentifier","src":"17812:6:53"}],"functionName":{"name":"mload","nativeSrc":"17806:5:53","nodeType":"YulIdentifier","src":"17806:5:53"},"nativeSrc":"17806:13:53","nodeType":"YulFunctionCall","src":"17806:13:53"},"variableNames":[{"name":"value","nativeSrc":"17797:5:53","nodeType":"YulIdentifier","src":"17797:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17855:5:53","nodeType":"YulIdentifier","src":"17855:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"17828:26:53","nodeType":"YulIdentifier","src":"17828:26:53"},"nativeSrc":"17828:33:53","nodeType":"YulFunctionCall","src":"17828:33:53"},"nativeSrc":"17828:33:53","nodeType":"YulExpressionStatement","src":"17828:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"17724:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17765:6:53","nodeType":"YulTypedName","src":"17765:6:53","type":""},{"name":"end","nativeSrc":"17773:3:53","nodeType":"YulTypedName","src":"17773:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17781:5:53","nodeType":"YulTypedName","src":"17781:5:53","type":""}],"src":"17724:143:53"},{"body":{"nativeSrc":"18010:346:53","nodeType":"YulBlock","src":"18010:346:53","statements":[{"body":{"nativeSrc":"18054:83:53","nodeType":"YulBlock","src":"18054:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18056:77:53","nodeType":"YulIdentifier","src":"18056:77:53"},"nativeSrc":"18056:79:53","nodeType":"YulFunctionCall","src":"18056:79:53"},"nativeSrc":"18056:79:53","nodeType":"YulExpressionStatement","src":"18056:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18031:3:53","nodeType":"YulIdentifier","src":"18031:3:53"},{"name":"headStart","nativeSrc":"18036:9:53","nodeType":"YulIdentifier","src":"18036:9:53"}],"functionName":{"name":"sub","nativeSrc":"18027:3:53","nodeType":"YulIdentifier","src":"18027:3:53"},"nativeSrc":"18027:19:53","nodeType":"YulFunctionCall","src":"18027:19:53"},{"kind":"number","nativeSrc":"18048:4:53","nodeType":"YulLiteral","src":"18048:4:53","type":"","value":"0x20"}],"functionName":{"name":"slt","nativeSrc":"18023:3:53","nodeType":"YulIdentifier","src":"18023:3:53"},"nativeSrc":"18023:30:53","nodeType":"YulFunctionCall","src":"18023:30:53"},"nativeSrc":"18020:117:53","nodeType":"YulIf","src":"18020:117:53"},{"nativeSrc":"18146:30:53","nodeType":"YulAssignment","src":"18146:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"18171:4:53","nodeType":"YulLiteral","src":"18171:4:53","type":"","value":"0x20"}],"functionName":{"name":"allocate_memory","nativeSrc":"18155:15:53","nodeType":"YulIdentifier","src":"18155:15:53"},"nativeSrc":"18155:21:53","nodeType":"YulFunctionCall","src":"18155:21:53"},"variableNames":[{"name":"value","nativeSrc":"18146:5:53","nodeType":"YulIdentifier","src":"18146:5:53"}]},{"nativeSrc":"18186:163:53","nodeType":"YulBlock","src":"18186:163:53","statements":[{"nativeSrc":"18223:15:53","nodeType":"YulVariableDeclaration","src":"18223:15:53","value":{"kind":"number","nativeSrc":"18237:1:53","nodeType":"YulLiteral","src":"18237:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18227:6:53","nodeType":"YulTypedName","src":"18227:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18263:5:53","nodeType":"YulIdentifier","src":"18263:5:53"},{"kind":"number","nativeSrc":"18270:4:53","nodeType":"YulLiteral","src":"18270:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18259:3:53","nodeType":"YulIdentifier","src":"18259:3:53"},"nativeSrc":"18259:16:53","nodeType":"YulFunctionCall","src":"18259:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18313:9:53","nodeType":"YulIdentifier","src":"18313:9:53"},{"name":"offset","nativeSrc":"18324:6:53","nodeType":"YulIdentifier","src":"18324:6:53"}],"functionName":{"name":"add","nativeSrc":"18309:3:53","nodeType":"YulIdentifier","src":"18309:3:53"},"nativeSrc":"18309:22:53","nodeType":"YulFunctionCall","src":"18309:22:53"},{"name":"end","nativeSrc":"18333:3:53","nodeType":"YulIdentifier","src":"18333:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"18277:31:53","nodeType":"YulIdentifier","src":"18277:31:53"},"nativeSrc":"18277:60:53","nodeType":"YulFunctionCall","src":"18277:60:53"}],"functionName":{"name":"mstore","nativeSrc":"18252:6:53","nodeType":"YulIdentifier","src":"18252:6:53"},"nativeSrc":"18252:86:53","nodeType":"YulFunctionCall","src":"18252:86:53"},"nativeSrc":"18252:86:53","nodeType":"YulExpressionStatement","src":"18252:86:53"}]}]},"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"17910:446:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17985:9:53","nodeType":"YulTypedName","src":"17985:9:53","type":""},{"name":"end","nativeSrc":"17996:3:53","nodeType":"YulTypedName","src":"17996:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18004:5:53","nodeType":"YulTypedName","src":"18004:5:53","type":""}],"src":"17910:446:53"},{"body":{"nativeSrc":"18473:308:53","nodeType":"YulBlock","src":"18473:308:53","statements":[{"body":{"nativeSrc":"18519:83:53","nodeType":"YulBlock","src":"18519:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18521:77:53","nodeType":"YulIdentifier","src":"18521:77:53"},"nativeSrc":"18521:79:53","nodeType":"YulFunctionCall","src":"18521:79:53"},"nativeSrc":"18521:79:53","nodeType":"YulExpressionStatement","src":"18521:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18494:7:53","nodeType":"YulIdentifier","src":"18494:7:53"},{"name":"headStart","nativeSrc":"18503:9:53","nodeType":"YulIdentifier","src":"18503:9:53"}],"functionName":{"name":"sub","nativeSrc":"18490:3:53","nodeType":"YulIdentifier","src":"18490:3:53"},"nativeSrc":"18490:23:53","nodeType":"YulFunctionCall","src":"18490:23:53"},{"kind":"number","nativeSrc":"18515:2:53","nodeType":"YulLiteral","src":"18515:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18486:3:53","nodeType":"YulIdentifier","src":"18486:3:53"},"nativeSrc":"18486:32:53","nodeType":"YulFunctionCall","src":"18486:32:53"},"nativeSrc":"18483:119:53","nodeType":"YulIf","src":"18483:119:53"},{"nativeSrc":"18612:162:53","nodeType":"YulBlock","src":"18612:162:53","statements":[{"nativeSrc":"18627:15:53","nodeType":"YulVariableDeclaration","src":"18627:15:53","value":{"kind":"number","nativeSrc":"18641:1:53","nodeType":"YulLiteral","src":"18641:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18631:6:53","nodeType":"YulTypedName","src":"18631:6:53","type":""}]},{"nativeSrc":"18656:108:53","nodeType":"YulAssignment","src":"18656:108:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18736:9:53","nodeType":"YulIdentifier","src":"18736:9:53"},{"name":"offset","nativeSrc":"18747:6:53","nodeType":"YulIdentifier","src":"18747:6:53"}],"functionName":{"name":"add","nativeSrc":"18732:3:53","nodeType":"YulIdentifier","src":"18732:3:53"},"nativeSrc":"18732:22:53","nodeType":"YulFunctionCall","src":"18732:22:53"},{"name":"dataEnd","nativeSrc":"18756:7:53","nodeType":"YulIdentifier","src":"18756:7:53"}],"functionName":{"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"18666:65:53","nodeType":"YulIdentifier","src":"18666:65:53"},"nativeSrc":"18666:98:53","nodeType":"YulFunctionCall","src":"18666:98:53"},"variableNames":[{"name":"value0","nativeSrc":"18656:6:53","nodeType":"YulIdentifier","src":"18656:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"18362:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18443:9:53","nodeType":"YulTypedName","src":"18443:9:53","type":""},{"name":"dataEnd","nativeSrc":"18454:7:53","nodeType":"YulTypedName","src":"18454:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18466:6:53","nodeType":"YulTypedName","src":"18466:6:53","type":""}],"src":"18362:419:53"},{"body":{"nativeSrc":"18913:206:53","nodeType":"YulBlock","src":"18913:206:53","statements":[{"nativeSrc":"18923:26:53","nodeType":"YulAssignment","src":"18923:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18935:9:53","nodeType":"YulIdentifier","src":"18935:9:53"},{"kind":"number","nativeSrc":"18946:2:53","nodeType":"YulLiteral","src":"18946:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18931:3:53","nodeType":"YulIdentifier","src":"18931:3:53"},"nativeSrc":"18931:18:53","nodeType":"YulFunctionCall","src":"18931:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18923:4:53","nodeType":"YulIdentifier","src":"18923:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19003:6:53","nodeType":"YulIdentifier","src":"19003:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19016:9:53","nodeType":"YulIdentifier","src":"19016:9:53"},{"kind":"number","nativeSrc":"19027:1:53","nodeType":"YulLiteral","src":"19027:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19012:3:53","nodeType":"YulIdentifier","src":"19012:3:53"},"nativeSrc":"19012:17:53","nodeType":"YulFunctionCall","src":"19012:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18959:43:53","nodeType":"YulIdentifier","src":"18959:43:53"},"nativeSrc":"18959:71:53","nodeType":"YulFunctionCall","src":"18959:71:53"},"nativeSrc":"18959:71:53","nodeType":"YulExpressionStatement","src":"18959:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19084:6:53","nodeType":"YulIdentifier","src":"19084:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19097:9:53","nodeType":"YulIdentifier","src":"19097:9:53"},{"kind":"number","nativeSrc":"19108:2:53","nodeType":"YulLiteral","src":"19108:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19093:3:53","nodeType":"YulIdentifier","src":"19093:3:53"},"nativeSrc":"19093:18:53","nodeType":"YulFunctionCall","src":"19093:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19040:43:53","nodeType":"YulIdentifier","src":"19040:43:53"},"nativeSrc":"19040:72:53","nodeType":"YulFunctionCall","src":"19040:72:53"},"nativeSrc":"19040:72:53","nodeType":"YulExpressionStatement","src":"19040:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"18787:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18877:9:53","nodeType":"YulTypedName","src":"18877:9:53","type":""},{"name":"value1","nativeSrc":"18889:6:53","nodeType":"YulTypedName","src":"18889:6:53","type":""},{"name":"value0","nativeSrc":"18897:6:53","nodeType":"YulTypedName","src":"18897:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18908:4:53","nodeType":"YulTypedName","src":"18908:4:53","type":""}],"src":"18787:332:53"},{"body":{"nativeSrc":"19214:28:53","nodeType":"YulBlock","src":"19214:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19231:1:53","nodeType":"YulLiteral","src":"19231:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19234:1:53","nodeType":"YulLiteral","src":"19234:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19224:6:53","nodeType":"YulIdentifier","src":"19224:6:53"},"nativeSrc":"19224:12:53","nodeType":"YulFunctionCall","src":"19224:12:53"},"nativeSrc":"19224:12:53","nodeType":"YulExpressionStatement","src":"19224:12:53"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"19125:117:53","nodeType":"YulFunctionDefinition","src":"19125:117:53"},{"body":{"nativeSrc":"19337:28:53","nodeType":"YulBlock","src":"19337:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19354:1:53","nodeType":"YulLiteral","src":"19354:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19357:1:53","nodeType":"YulLiteral","src":"19357:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19347:6:53","nodeType":"YulIdentifier","src":"19347:6:53"},"nativeSrc":"19347:12:53","nodeType":"YulFunctionCall","src":"19347:12:53"},"nativeSrc":"19347:12:53","nodeType":"YulExpressionStatement","src":"19347:12:53"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"19248:117:53","nodeType":"YulFunctionDefinition","src":"19248:117:53"},{"body":{"nativeSrc":"19460:28:53","nodeType":"YulBlock","src":"19460:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19477:1:53","nodeType":"YulLiteral","src":"19477:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19480:1:53","nodeType":"YulLiteral","src":"19480:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19470:6:53","nodeType":"YulIdentifier","src":"19470:6:53"},"nativeSrc":"19470:12:53","nodeType":"YulFunctionCall","src":"19470:12:53"},"nativeSrc":"19470:12:53","nodeType":"YulExpressionStatement","src":"19470:12:53"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"19371:117:53","nodeType":"YulFunctionDefinition","src":"19371:117:53"},{"body":{"nativeSrc":"19584:634:53","nodeType":"YulBlock","src":"19584:634:53","statements":[{"nativeSrc":"19594:51:53","nodeType":"YulVariableDeclaration","src":"19594:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"19633:11:53","nodeType":"YulIdentifier","src":"19633:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"19620:12:53","nodeType":"YulIdentifier","src":"19620:12:53"},"nativeSrc":"19620:25:53","nodeType":"YulFunctionCall","src":"19620:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"19598:18:53","nodeType":"YulTypedName","src":"19598:18:53","type":""}]},{"body":{"nativeSrc":"19739:83:53","nodeType":"YulBlock","src":"19739:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"19741:77:53","nodeType":"YulIdentifier","src":"19741:77:53"},"nativeSrc":"19741:79:53","nodeType":"YulFunctionCall","src":"19741:79:53"},"nativeSrc":"19741:79:53","nodeType":"YulExpressionStatement","src":"19741:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"19668:18:53","nodeType":"YulIdentifier","src":"19668:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"19696:12:53","nodeType":"YulIdentifier","src":"19696:12:53"},"nativeSrc":"19696:14:53","nodeType":"YulFunctionCall","src":"19696:14:53"},{"name":"base_ref","nativeSrc":"19712:8:53","nodeType":"YulIdentifier","src":"19712:8:53"}],"functionName":{"name":"sub","nativeSrc":"19692:3:53","nodeType":"YulIdentifier","src":"19692:3:53"},"nativeSrc":"19692:29:53","nodeType":"YulFunctionCall","src":"19692:29:53"},{"arguments":[{"kind":"number","nativeSrc":"19727:4:53","nodeType":"YulLiteral","src":"19727:4:53","type":"","value":"0x20"},{"kind":"number","nativeSrc":"19733:1:53","nodeType":"YulLiteral","src":"19733:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"19723:3:53","nodeType":"YulIdentifier","src":"19723:3:53"},"nativeSrc":"19723:12:53","nodeType":"YulFunctionCall","src":"19723:12:53"}],"functionName":{"name":"sub","nativeSrc":"19688:3:53","nodeType":"YulIdentifier","src":"19688:3:53"},"nativeSrc":"19688:48:53","nodeType":"YulFunctionCall","src":"19688:48:53"}],"functionName":{"name":"slt","nativeSrc":"19664:3:53","nodeType":"YulIdentifier","src":"19664:3:53"},"nativeSrc":"19664:73:53","nodeType":"YulFunctionCall","src":"19664:73:53"}],"functionName":{"name":"iszero","nativeSrc":"19657:6:53","nodeType":"YulIdentifier","src":"19657:6:53"},"nativeSrc":"19657:81:53","nodeType":"YulFunctionCall","src":"19657:81:53"},"nativeSrc":"19654:168:53","nodeType":"YulIf","src":"19654:168:53"},{"nativeSrc":"19831:41:53","nodeType":"YulAssignment","src":"19831:41:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"19843:8:53","nodeType":"YulIdentifier","src":"19843:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"19853:18:53","nodeType":"YulIdentifier","src":"19853:18:53"}],"functionName":{"name":"add","nativeSrc":"19839:3:53","nodeType":"YulIdentifier","src":"19839:3:53"},"nativeSrc":"19839:33:53","nodeType":"YulFunctionCall","src":"19839:33:53"},"variableNames":[{"name":"addr","nativeSrc":"19831:4:53","nodeType":"YulIdentifier","src":"19831:4:53"}]},{"nativeSrc":"19882:28:53","nodeType":"YulAssignment","src":"19882:28:53","value":{"arguments":[{"name":"addr","nativeSrc":"19905:4:53","nodeType":"YulIdentifier","src":"19905:4:53"}],"functionName":{"name":"calldataload","nativeSrc":"19892:12:53","nodeType":"YulIdentifier","src":"19892:12:53"},"nativeSrc":"19892:18:53","nodeType":"YulFunctionCall","src":"19892:18:53"},"variableNames":[{"name":"length","nativeSrc":"19882:6:53","nodeType":"YulIdentifier","src":"19882:6:53"}]},{"body":{"nativeSrc":"19953:83:53","nodeType":"YulBlock","src":"19953:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"19955:77:53","nodeType":"YulIdentifier","src":"19955:77:53"},"nativeSrc":"19955:79:53","nodeType":"YulFunctionCall","src":"19955:79:53"},"nativeSrc":"19955:79:53","nodeType":"YulExpressionStatement","src":"19955:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"19925:6:53","nodeType":"YulIdentifier","src":"19925:6:53"},{"kind":"number","nativeSrc":"19933:18:53","nodeType":"YulLiteral","src":"19933:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19922:2:53","nodeType":"YulIdentifier","src":"19922:2:53"},"nativeSrc":"19922:30:53","nodeType":"YulFunctionCall","src":"19922:30:53"},"nativeSrc":"19919:117:53","nodeType":"YulIf","src":"19919:117:53"},{"nativeSrc":"20045:21:53","nodeType":"YulAssignment","src":"20045:21:53","value":{"arguments":[{"name":"addr","nativeSrc":"20057:4:53","nodeType":"YulIdentifier","src":"20057:4:53"},{"kind":"number","nativeSrc":"20063:2:53","nodeType":"YulLiteral","src":"20063:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20053:3:53","nodeType":"YulIdentifier","src":"20053:3:53"},"nativeSrc":"20053:13:53","nodeType":"YulFunctionCall","src":"20053:13:53"},"variableNames":[{"name":"addr","nativeSrc":"20045:4:53","nodeType":"YulIdentifier","src":"20045:4:53"}]},{"body":{"nativeSrc":"20128:83:53","nodeType":"YulBlock","src":"20128:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"20130:77:53","nodeType":"YulIdentifier","src":"20130:77:53"},"nativeSrc":"20130:79:53","nodeType":"YulFunctionCall","src":"20130:79:53"},"nativeSrc":"20130:79:53","nodeType":"YulExpressionStatement","src":"20130:79:53"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"20082:4:53","nodeType":"YulIdentifier","src":"20082:4:53"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20092:12:53","nodeType":"YulIdentifier","src":"20092:12:53"},"nativeSrc":"20092:14:53","nodeType":"YulFunctionCall","src":"20092:14:53"},{"arguments":[{"name":"length","nativeSrc":"20112:6:53","nodeType":"YulIdentifier","src":"20112:6:53"},{"kind":"number","nativeSrc":"20120:4:53","nodeType":"YulLiteral","src":"20120:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"20108:3:53","nodeType":"YulIdentifier","src":"20108:3:53"},"nativeSrc":"20108:17:53","nodeType":"YulFunctionCall","src":"20108:17:53"}],"functionName":{"name":"sub","nativeSrc":"20088:3:53","nodeType":"YulIdentifier","src":"20088:3:53"},"nativeSrc":"20088:38:53","nodeType":"YulFunctionCall","src":"20088:38:53"}],"functionName":{"name":"sgt","nativeSrc":"20078:3:53","nodeType":"YulIdentifier","src":"20078:3:53"},"nativeSrc":"20078:49:53","nodeType":"YulFunctionCall","src":"20078:49:53"},"nativeSrc":"20075:136:53","nodeType":"YulIf","src":"20075:136:53"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"19494:724:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"19545:8:53","nodeType":"YulTypedName","src":"19545:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"19555:11:53","nodeType":"YulTypedName","src":"19555:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"19571:4:53","nodeType":"YulTypedName","src":"19571:4:53","type":""},{"name":"length","nativeSrc":"19577:6:53","nodeType":"YulTypedName","src":"19577:6:53","type":""}],"src":"19494:724:53"},{"body":{"nativeSrc":"20268:147:53","nodeType":"YulBlock","src":"20268:147:53","statements":[{"nativeSrc":"20278:25:53","nodeType":"YulAssignment","src":"20278:25:53","value":{"arguments":[{"name":"x","nativeSrc":"20301:1:53","nodeType":"YulIdentifier","src":"20301:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20283:17:53","nodeType":"YulIdentifier","src":"20283:17:53"},"nativeSrc":"20283:20:53","nodeType":"YulFunctionCall","src":"20283:20:53"},"variableNames":[{"name":"x","nativeSrc":"20278:1:53","nodeType":"YulIdentifier","src":"20278:1:53"}]},{"nativeSrc":"20312:25:53","nodeType":"YulAssignment","src":"20312:25:53","value":{"arguments":[{"name":"y","nativeSrc":"20335:1:53","nodeType":"YulIdentifier","src":"20335:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20317:17:53","nodeType":"YulIdentifier","src":"20317:17:53"},"nativeSrc":"20317:20:53","nodeType":"YulFunctionCall","src":"20317:20:53"},"variableNames":[{"name":"y","nativeSrc":"20312:1:53","nodeType":"YulIdentifier","src":"20312:1:53"}]},{"nativeSrc":"20346:16:53","nodeType":"YulAssignment","src":"20346:16:53","value":{"arguments":[{"name":"x","nativeSrc":"20357:1:53","nodeType":"YulIdentifier","src":"20357:1:53"},{"name":"y","nativeSrc":"20360:1:53","nodeType":"YulIdentifier","src":"20360:1:53"}],"functionName":{"name":"add","nativeSrc":"20353:3:53","nodeType":"YulIdentifier","src":"20353:3:53"},"nativeSrc":"20353:9:53","nodeType":"YulFunctionCall","src":"20353:9:53"},"variableNames":[{"name":"sum","nativeSrc":"20346:3:53","nodeType":"YulIdentifier","src":"20346:3:53"}]},{"body":{"nativeSrc":"20386:22:53","nodeType":"YulBlock","src":"20386:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20388:16:53","nodeType":"YulIdentifier","src":"20388:16:53"},"nativeSrc":"20388:18:53","nodeType":"YulFunctionCall","src":"20388:18:53"},"nativeSrc":"20388:18:53","nodeType":"YulExpressionStatement","src":"20388:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"20378:1:53","nodeType":"YulIdentifier","src":"20378:1:53"},{"name":"sum","nativeSrc":"20381:3:53","nodeType":"YulIdentifier","src":"20381:3:53"}],"functionName":{"name":"gt","nativeSrc":"20375:2:53","nodeType":"YulIdentifier","src":"20375:2:53"},"nativeSrc":"20375:10:53","nodeType":"YulFunctionCall","src":"20375:10:53"},"nativeSrc":"20372:36:53","nodeType":"YulIf","src":"20372:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"20224:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20255:1:53","nodeType":"YulTypedName","src":"20255:1:53","type":""},{"name":"y","nativeSrc":"20258:1:53","nodeType":"YulTypedName","src":"20258:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"20264:3:53","nodeType":"YulTypedName","src":"20264:3:53","type":""}],"src":"20224:191:53"},{"body":{"nativeSrc":"20464:162:53","nodeType":"YulBlock","src":"20464:162:53","statements":[{"nativeSrc":"20474:24:53","nodeType":"YulAssignment","src":"20474:24:53","value":{"arguments":[{"name":"x","nativeSrc":"20496:1:53","nodeType":"YulIdentifier","src":"20496:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"20479:16:53","nodeType":"YulIdentifier","src":"20479:16:53"},"nativeSrc":"20479:19:53","nodeType":"YulFunctionCall","src":"20479:19:53"},"variableNames":[{"name":"x","nativeSrc":"20474:1:53","nodeType":"YulIdentifier","src":"20474:1:53"}]},{"nativeSrc":"20507:24:53","nodeType":"YulAssignment","src":"20507:24:53","value":{"arguments":[{"name":"y","nativeSrc":"20529:1:53","nodeType":"YulIdentifier","src":"20529:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"20512:16:53","nodeType":"YulIdentifier","src":"20512:16:53"},"nativeSrc":"20512:19:53","nodeType":"YulFunctionCall","src":"20512:19:53"},"variableNames":[{"name":"y","nativeSrc":"20507:1:53","nodeType":"YulIdentifier","src":"20507:1:53"}]},{"nativeSrc":"20540:16:53","nodeType":"YulAssignment","src":"20540:16:53","value":{"arguments":[{"name":"x","nativeSrc":"20551:1:53","nodeType":"YulIdentifier","src":"20551:1:53"},{"name":"y","nativeSrc":"20554:1:53","nodeType":"YulIdentifier","src":"20554:1:53"}],"functionName":{"name":"add","nativeSrc":"20547:3:53","nodeType":"YulIdentifier","src":"20547:3:53"},"nativeSrc":"20547:9:53","nodeType":"YulFunctionCall","src":"20547:9:53"},"variableNames":[{"name":"sum","nativeSrc":"20540:3:53","nodeType":"YulIdentifier","src":"20540:3:53"}]},{"body":{"nativeSrc":"20597:22:53","nodeType":"YulBlock","src":"20597:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20599:16:53","nodeType":"YulIdentifier","src":"20599:16:53"},"nativeSrc":"20599:18:53","nodeType":"YulFunctionCall","src":"20599:18:53"},"nativeSrc":"20599:18:53","nodeType":"YulExpressionStatement","src":"20599:18:53"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"20572:3:53","nodeType":"YulIdentifier","src":"20572:3:53"},{"kind":"number","nativeSrc":"20577:18:53","nodeType":"YulLiteral","src":"20577:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20569:2:53","nodeType":"YulIdentifier","src":"20569:2:53"},"nativeSrc":"20569:27:53","nodeType":"YulFunctionCall","src":"20569:27:53"},"nativeSrc":"20566:53:53","nodeType":"YulIf","src":"20566:53:53"}]},"name":"checked_add_t_uint64","nativeSrc":"20421:205:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20451:1:53","nodeType":"YulTypedName","src":"20451:1:53","type":""},{"name":"y","nativeSrc":"20454:1:53","nodeType":"YulTypedName","src":"20454:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"20460:3:53","nodeType":"YulTypedName","src":"20460:3:53","type":""}],"src":"20421:205:53"},{"body":{"nativeSrc":"20786:288:53","nodeType":"YulBlock","src":"20786:288:53","statements":[{"nativeSrc":"20796:26:53","nodeType":"YulAssignment","src":"20796:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"20808:9:53","nodeType":"YulIdentifier","src":"20808:9:53"},{"kind":"number","nativeSrc":"20819:2:53","nodeType":"YulLiteral","src":"20819:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20804:3:53","nodeType":"YulIdentifier","src":"20804:3:53"},"nativeSrc":"20804:18:53","nodeType":"YulFunctionCall","src":"20804:18:53"},"variableNames":[{"name":"tail","nativeSrc":"20796:4:53","nodeType":"YulIdentifier","src":"20796:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"20876:6:53","nodeType":"YulIdentifier","src":"20876:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"20889:9:53","nodeType":"YulIdentifier","src":"20889:9:53"},{"kind":"number","nativeSrc":"20900:1:53","nodeType":"YulLiteral","src":"20900:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20885:3:53","nodeType":"YulIdentifier","src":"20885:3:53"},"nativeSrc":"20885:17:53","nodeType":"YulFunctionCall","src":"20885:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20832:43:53","nodeType":"YulIdentifier","src":"20832:43:53"},"nativeSrc":"20832:71:53","nodeType":"YulFunctionCall","src":"20832:71:53"},"nativeSrc":"20832:71:53","nodeType":"YulExpressionStatement","src":"20832:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"20957:6:53","nodeType":"YulIdentifier","src":"20957:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"20970:9:53","nodeType":"YulIdentifier","src":"20970:9:53"},{"kind":"number","nativeSrc":"20981:2:53","nodeType":"YulLiteral","src":"20981:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20966:3:53","nodeType":"YulIdentifier","src":"20966:3:53"},"nativeSrc":"20966:18:53","nodeType":"YulFunctionCall","src":"20966:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20913:43:53","nodeType":"YulIdentifier","src":"20913:43:53"},"nativeSrc":"20913:72:53","nodeType":"YulFunctionCall","src":"20913:72:53"},"nativeSrc":"20913:72:53","nodeType":"YulExpressionStatement","src":"20913:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21039:6:53","nodeType":"YulIdentifier","src":"21039:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21052:9:53","nodeType":"YulIdentifier","src":"21052:9:53"},{"kind":"number","nativeSrc":"21063:2:53","nodeType":"YulLiteral","src":"21063:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21048:3:53","nodeType":"YulIdentifier","src":"21048:3:53"},"nativeSrc":"21048:18:53","nodeType":"YulFunctionCall","src":"21048:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"20995:43:53","nodeType":"YulIdentifier","src":"20995:43:53"},"nativeSrc":"20995:72:53","nodeType":"YulFunctionCall","src":"20995:72:53"},"nativeSrc":"20995:72:53","nodeType":"YulExpressionStatement","src":"20995:72:53"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"20632:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20742:9:53","nodeType":"YulTypedName","src":"20742:9:53","type":""},{"name":"value2","nativeSrc":"20754:6:53","nodeType":"YulTypedName","src":"20754:6:53","type":""},{"name":"value1","nativeSrc":"20762:6:53","nodeType":"YulTypedName","src":"20762:6:53","type":""},{"name":"value0","nativeSrc":"20770:6:53","nodeType":"YulTypedName","src":"20770:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20781:4:53","nodeType":"YulTypedName","src":"20781:4:53","type":""}],"src":"20632:442:53"},{"body":{"nativeSrc":"21234:288:53","nodeType":"YulBlock","src":"21234:288:53","statements":[{"nativeSrc":"21244:26:53","nodeType":"YulAssignment","src":"21244:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21256:9:53","nodeType":"YulIdentifier","src":"21256:9:53"},{"kind":"number","nativeSrc":"21267:2:53","nodeType":"YulLiteral","src":"21267:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21252:3:53","nodeType":"YulIdentifier","src":"21252:3:53"},"nativeSrc":"21252:18:53","nodeType":"YulFunctionCall","src":"21252:18:53"},"variableNames":[{"name":"tail","nativeSrc":"21244:4:53","nodeType":"YulIdentifier","src":"21244:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21324:6:53","nodeType":"YulIdentifier","src":"21324:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21337:9:53","nodeType":"YulIdentifier","src":"21337:9:53"},{"kind":"number","nativeSrc":"21348:1:53","nodeType":"YulLiteral","src":"21348:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21333:3:53","nodeType":"YulIdentifier","src":"21333:3:53"},"nativeSrc":"21333:17:53","nodeType":"YulFunctionCall","src":"21333:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21280:43:53","nodeType":"YulIdentifier","src":"21280:43:53"},"nativeSrc":"21280:71:53","nodeType":"YulFunctionCall","src":"21280:71:53"},"nativeSrc":"21280:71:53","nodeType":"YulExpressionStatement","src":"21280:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21405:6:53","nodeType":"YulIdentifier","src":"21405:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21418:9:53","nodeType":"YulIdentifier","src":"21418:9:53"},{"kind":"number","nativeSrc":"21429:2:53","nodeType":"YulLiteral","src":"21429:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21414:3:53","nodeType":"YulIdentifier","src":"21414:3:53"},"nativeSrc":"21414:18:53","nodeType":"YulFunctionCall","src":"21414:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21361:43:53","nodeType":"YulIdentifier","src":"21361:43:53"},"nativeSrc":"21361:72:53","nodeType":"YulFunctionCall","src":"21361:72:53"},"nativeSrc":"21361:72:53","nodeType":"YulExpressionStatement","src":"21361:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21487:6:53","nodeType":"YulIdentifier","src":"21487:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21500:9:53","nodeType":"YulIdentifier","src":"21500:9:53"},{"kind":"number","nativeSrc":"21511:2:53","nodeType":"YulLiteral","src":"21511:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21496:3:53","nodeType":"YulIdentifier","src":"21496:3:53"},"nativeSrc":"21496:18:53","nodeType":"YulFunctionCall","src":"21496:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21443:43:53","nodeType":"YulIdentifier","src":"21443:43:53"},"nativeSrc":"21443:72:53","nodeType":"YulFunctionCall","src":"21443:72:53"},"nativeSrc":"21443:72:53","nodeType":"YulExpressionStatement","src":"21443:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"21080:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21190:9:53","nodeType":"YulTypedName","src":"21190:9:53","type":""},{"name":"value2","nativeSrc":"21202:6:53","nodeType":"YulTypedName","src":"21202:6:53","type":""},{"name":"value1","nativeSrc":"21210:6:53","nodeType":"YulTypedName","src":"21210:6:53","type":""},{"name":"value0","nativeSrc":"21218:6:53","nodeType":"YulTypedName","src":"21218:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21229:4:53","nodeType":"YulTypedName","src":"21229:4:53","type":""}],"src":"21080:442:53"},{"body":{"nativeSrc":"21572:164:53","nodeType":"YulBlock","src":"21572:164:53","statements":[{"nativeSrc":"21582:24:53","nodeType":"YulAssignment","src":"21582:24:53","value":{"arguments":[{"name":"x","nativeSrc":"21604:1:53","nodeType":"YulIdentifier","src":"21604:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"21587:16:53","nodeType":"YulIdentifier","src":"21587:16:53"},"nativeSrc":"21587:19:53","nodeType":"YulFunctionCall","src":"21587:19:53"},"variableNames":[{"name":"x","nativeSrc":"21582:1:53","nodeType":"YulIdentifier","src":"21582:1:53"}]},{"nativeSrc":"21615:24:53","nodeType":"YulAssignment","src":"21615:24:53","value":{"arguments":[{"name":"y","nativeSrc":"21637:1:53","nodeType":"YulIdentifier","src":"21637:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"21620:16:53","nodeType":"YulIdentifier","src":"21620:16:53"},"nativeSrc":"21620:19:53","nodeType":"YulFunctionCall","src":"21620:19:53"},"variableNames":[{"name":"y","nativeSrc":"21615:1:53","nodeType":"YulIdentifier","src":"21615:1:53"}]},{"nativeSrc":"21648:17:53","nodeType":"YulAssignment","src":"21648:17:53","value":{"arguments":[{"name":"x","nativeSrc":"21660:1:53","nodeType":"YulIdentifier","src":"21660:1:53"},{"name":"y","nativeSrc":"21663:1:53","nodeType":"YulIdentifier","src":"21663:1:53"}],"functionName":{"name":"sub","nativeSrc":"21656:3:53","nodeType":"YulIdentifier","src":"21656:3:53"},"nativeSrc":"21656:9:53","nodeType":"YulFunctionCall","src":"21656:9:53"},"variableNames":[{"name":"diff","nativeSrc":"21648:4:53","nodeType":"YulIdentifier","src":"21648:4:53"}]},{"body":{"nativeSrc":"21707:22:53","nodeType":"YulBlock","src":"21707:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21709:16:53","nodeType":"YulIdentifier","src":"21709:16:53"},"nativeSrc":"21709:18:53","nodeType":"YulFunctionCall","src":"21709:18:53"},"nativeSrc":"21709:18:53","nodeType":"YulExpressionStatement","src":"21709:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21681:4:53","nodeType":"YulIdentifier","src":"21681:4:53"},{"kind":"number","nativeSrc":"21687:18:53","nodeType":"YulLiteral","src":"21687:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21678:2:53","nodeType":"YulIdentifier","src":"21678:2:53"},"nativeSrc":"21678:28:53","nodeType":"YulFunctionCall","src":"21678:28:53"},"nativeSrc":"21675:54:53","nodeType":"YulIf","src":"21675:54:53"}]},"name":"checked_sub_t_uint64","nativeSrc":"21528:208:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21558:1:53","nodeType":"YulTypedName","src":"21558:1:53","type":""},{"name":"y","nativeSrc":"21561:1:53","nodeType":"YulTypedName","src":"21561:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21567:4:53","nodeType":"YulTypedName","src":"21567:4:53","type":""}],"src":"21528:208:53"},{"body":{"nativeSrc":"21790:362:53","nodeType":"YulBlock","src":"21790:362:53","statements":[{"nativeSrc":"21800:25:53","nodeType":"YulAssignment","src":"21800:25:53","value":{"arguments":[{"name":"x","nativeSrc":"21823:1:53","nodeType":"YulIdentifier","src":"21823:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21805:17:53","nodeType":"YulIdentifier","src":"21805:17:53"},"nativeSrc":"21805:20:53","nodeType":"YulFunctionCall","src":"21805:20:53"},"variableNames":[{"name":"x","nativeSrc":"21800:1:53","nodeType":"YulIdentifier","src":"21800:1:53"}]},{"nativeSrc":"21834:25:53","nodeType":"YulAssignment","src":"21834:25:53","value":{"arguments":[{"name":"y","nativeSrc":"21857:1:53","nodeType":"YulIdentifier","src":"21857:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21839:17:53","nodeType":"YulIdentifier","src":"21839:17:53"},"nativeSrc":"21839:20:53","nodeType":"YulFunctionCall","src":"21839:20:53"},"variableNames":[{"name":"y","nativeSrc":"21834:1:53","nodeType":"YulIdentifier","src":"21834:1:53"}]},{"nativeSrc":"21868:28:53","nodeType":"YulVariableDeclaration","src":"21868:28:53","value":{"arguments":[{"name":"x","nativeSrc":"21891:1:53","nodeType":"YulIdentifier","src":"21891:1:53"},{"name":"y","nativeSrc":"21894:1:53","nodeType":"YulIdentifier","src":"21894:1:53"}],"functionName":{"name":"mul","nativeSrc":"21887:3:53","nodeType":"YulIdentifier","src":"21887:3:53"},"nativeSrc":"21887:9:53","nodeType":"YulFunctionCall","src":"21887:9:53"},"variables":[{"name":"product_raw","nativeSrc":"21872:11:53","nodeType":"YulTypedName","src":"21872:11:53","type":""}]},{"nativeSrc":"21905:41:53","nodeType":"YulAssignment","src":"21905:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"21934:11:53","nodeType":"YulIdentifier","src":"21934:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21916:17:53","nodeType":"YulIdentifier","src":"21916:17:53"},"nativeSrc":"21916:30:53","nodeType":"YulFunctionCall","src":"21916:30:53"},"variableNames":[{"name":"product","nativeSrc":"21905:7:53","nodeType":"YulIdentifier","src":"21905:7:53"}]},{"body":{"nativeSrc":"22123:22:53","nodeType":"YulBlock","src":"22123:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22125:16:53","nodeType":"YulIdentifier","src":"22125:16:53"},"nativeSrc":"22125:18:53","nodeType":"YulFunctionCall","src":"22125:18:53"},"nativeSrc":"22125:18:53","nodeType":"YulExpressionStatement","src":"22125:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"22056:1:53","nodeType":"YulIdentifier","src":"22056:1:53"}],"functionName":{"name":"iszero","nativeSrc":"22049:6:53","nodeType":"YulIdentifier","src":"22049:6:53"},"nativeSrc":"22049:9:53","nodeType":"YulFunctionCall","src":"22049:9:53"},{"arguments":[{"name":"y","nativeSrc":"22079:1:53","nodeType":"YulIdentifier","src":"22079:1:53"},{"arguments":[{"name":"product","nativeSrc":"22086:7:53","nodeType":"YulIdentifier","src":"22086:7:53"},{"name":"x","nativeSrc":"22095:1:53","nodeType":"YulIdentifier","src":"22095:1:53"}],"functionName":{"name":"div","nativeSrc":"22082:3:53","nodeType":"YulIdentifier","src":"22082:3:53"},"nativeSrc":"22082:15:53","nodeType":"YulFunctionCall","src":"22082:15:53"}],"functionName":{"name":"eq","nativeSrc":"22076:2:53","nodeType":"YulIdentifier","src":"22076:2:53"},"nativeSrc":"22076:22:53","nodeType":"YulFunctionCall","src":"22076:22:53"}],"functionName":{"name":"or","nativeSrc":"22029:2:53","nodeType":"YulIdentifier","src":"22029:2:53"},"nativeSrc":"22029:83:53","nodeType":"YulFunctionCall","src":"22029:83:53"}],"functionName":{"name":"iszero","nativeSrc":"22009:6:53","nodeType":"YulIdentifier","src":"22009:6:53"},"nativeSrc":"22009:113:53","nodeType":"YulFunctionCall","src":"22009:113:53"},"nativeSrc":"22006:139:53","nodeType":"YulIf","src":"22006:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"21742:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21773:1:53","nodeType":"YulTypedName","src":"21773:1:53","type":""},{"name":"y","nativeSrc":"21776:1:53","nodeType":"YulTypedName","src":"21776:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"21782:7:53","nodeType":"YulTypedName","src":"21782:7:53","type":""}],"src":"21742:410:53"},{"body":{"nativeSrc":"22186:152:53","nodeType":"YulBlock","src":"22186:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22203:1:53","nodeType":"YulLiteral","src":"22203:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22206:77:53","nodeType":"YulLiteral","src":"22206:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"22196:6:53","nodeType":"YulIdentifier","src":"22196:6:53"},"nativeSrc":"22196:88:53","nodeType":"YulFunctionCall","src":"22196:88:53"},"nativeSrc":"22196:88:53","nodeType":"YulExpressionStatement","src":"22196:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22300:1:53","nodeType":"YulLiteral","src":"22300:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"22303:4:53","nodeType":"YulLiteral","src":"22303:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"22293:6:53","nodeType":"YulIdentifier","src":"22293:6:53"},"nativeSrc":"22293:15:53","nodeType":"YulFunctionCall","src":"22293:15:53"},"nativeSrc":"22293:15:53","nodeType":"YulExpressionStatement","src":"22293:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22324:1:53","nodeType":"YulLiteral","src":"22324:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22327:4:53","nodeType":"YulLiteral","src":"22327:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"22317:6:53","nodeType":"YulIdentifier","src":"22317:6:53"},"nativeSrc":"22317:15:53","nodeType":"YulFunctionCall","src":"22317:15:53"},"nativeSrc":"22317:15:53","nodeType":"YulExpressionStatement","src":"22317:15:53"}]},"name":"panic_error_0x12","nativeSrc":"22158:180:53","nodeType":"YulFunctionDefinition","src":"22158:180:53"},{"body":{"nativeSrc":"22386:143:53","nodeType":"YulBlock","src":"22386:143:53","statements":[{"nativeSrc":"22396:25:53","nodeType":"YulAssignment","src":"22396:25:53","value":{"arguments":[{"name":"x","nativeSrc":"22419:1:53","nodeType":"YulIdentifier","src":"22419:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22401:17:53","nodeType":"YulIdentifier","src":"22401:17:53"},"nativeSrc":"22401:20:53","nodeType":"YulFunctionCall","src":"22401:20:53"},"variableNames":[{"name":"x","nativeSrc":"22396:1:53","nodeType":"YulIdentifier","src":"22396:1:53"}]},{"nativeSrc":"22430:25:53","nodeType":"YulAssignment","src":"22430:25:53","value":{"arguments":[{"name":"y","nativeSrc":"22453:1:53","nodeType":"YulIdentifier","src":"22453:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22435:17:53","nodeType":"YulIdentifier","src":"22435:17:53"},"nativeSrc":"22435:20:53","nodeType":"YulFunctionCall","src":"22435:20:53"},"variableNames":[{"name":"y","nativeSrc":"22430:1:53","nodeType":"YulIdentifier","src":"22430:1:53"}]},{"body":{"nativeSrc":"22477:22:53","nodeType":"YulBlock","src":"22477:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"22479:16:53","nodeType":"YulIdentifier","src":"22479:16:53"},"nativeSrc":"22479:18:53","nodeType":"YulFunctionCall","src":"22479:18:53"},"nativeSrc":"22479:18:53","nodeType":"YulExpressionStatement","src":"22479:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"22474:1:53","nodeType":"YulIdentifier","src":"22474:1:53"}],"functionName":{"name":"iszero","nativeSrc":"22467:6:53","nodeType":"YulIdentifier","src":"22467:6:53"},"nativeSrc":"22467:9:53","nodeType":"YulFunctionCall","src":"22467:9:53"},"nativeSrc":"22464:35:53","nodeType":"YulIf","src":"22464:35:53"},{"nativeSrc":"22509:14:53","nodeType":"YulAssignment","src":"22509:14:53","value":{"arguments":[{"name":"x","nativeSrc":"22518:1:53","nodeType":"YulIdentifier","src":"22518:1:53"},{"name":"y","nativeSrc":"22521:1:53","nodeType":"YulIdentifier","src":"22521:1:53"}],"functionName":{"name":"div","nativeSrc":"22514:3:53","nodeType":"YulIdentifier","src":"22514:3:53"},"nativeSrc":"22514:9:53","nodeType":"YulFunctionCall","src":"22514:9:53"},"variableNames":[{"name":"r","nativeSrc":"22509:1:53","nodeType":"YulIdentifier","src":"22509:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"22344:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"22375:1:53","nodeType":"YulTypedName","src":"22375:1:53","type":""},{"name":"y","nativeSrc":"22378:1:53","nodeType":"YulTypedName","src":"22378:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"22384:1:53","nodeType":"YulTypedName","src":"22384:1:53","type":""}],"src":"22344:185:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function 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 validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n // struct VestingBudget.InitPayload\n function abi_decode_t_struct$_InitPayload_$14711_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // authorized\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // start\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n {\n // duration\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n {\n // cliff\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$14711_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$14711_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_AssetType_$13471(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_AssetType_$13471(value)\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 // struct Budget.Transfer\n function abi_decode_t_struct$_Transfer_$13482_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // assetType\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_enum$_AssetType_$13471(add(headStart, offset), end))\n\n }\n\n {\n // asset\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Transfer_$13482_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\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 // struct Budget.FungiblePayload\n function abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x20) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x20)\n\n {\n // amount\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_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_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\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 checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_sub_t_uint64(x, y) -> diff {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n diff := sub(x, y)\n\n if gt(diff, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610143575f3560e01c806361400c99116100b5578063f04e283e1161006e578063f04e283e14610424578063f1c30ec014610440578063f2fde38b1461047c578063fa4ca9b114610498578063fe9fbb80146104d4578063fee81cf4146105105761014a565b806361400c9914610324578063715018a6146103605780638da5cb5b1461036a578063be9a655514610394578063d2514e84146103be578063efbe1c1c146103fa5761014a565b80634359d28a116101075780634359d28a14610222578063439fab911461024a578063451cc1911461027257806354d1f13d146102ae578063578bcf35146102b85780635aef467a146102f45761014a565b806301ffc9a71461014c5780630fb5a6b41461018857806310098ad5146101b257806313d033c0146101ee57806325692962146102185761014a565b3661014a57005b005b348015610157575f80fd5b50610172600480360381019061016d919061188e565b61054c565b60405161017f91906118d3565b60405180910390f35b348015610193575f80fd5b5061019c6105c5565b6040516101a9919061190e565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d39190611981565b6105df565b6040516101e591906119c4565b60405180910390f35b3480156101f9575f80fd5b50610202610638565b60405161020f919061190e565b60405180910390f35b610220610652565b005b34801561022d575f80fd5b5061024860048036038101906102439190611a93565b6106a3565b005b348015610255575f80fd5b50610270600480360381019061026b9190611b66565b6107ad565b005b34801561027d575f80fd5b5061029860048036038101906102939190611b66565b610957565b6040516102a591906119c4565b60405180910390f35b6102b661095e565b005b3480156102c3575f80fd5b506102de60048036038101906102d99190611981565b610997565b6040516102eb91906119c4565b60405180910390f35b61030e60048036038101906103099190611b66565b6109dc565b60405161031b91906118d3565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190611c06565b610ba9565b60405161035791906118d3565b60405180910390f35b610368610c0d565b005b348015610375575f80fd5b5061037e610c20565b60405161038b9190611c60565b60405180910390f35b34801561039f575f80fd5b506103a8610c48565b6040516103b5919061190e565b60405180910390f35b3480156103c9575f80fd5b506103e460048036038101906103df9190611981565b610c61565b6040516103f191906119c4565b60405180910390f35b348015610405575f80fd5b5061040e610d18565b60405161041b91906119c4565b60405180910390f35b61043e60048036038101906104399190611981565b610d5f565b005b34801561044b575f80fd5b5061046660048036038101906104619190611b66565b610d9d565b60405161047391906118d3565b60405180910390f35b61049660048036038101906104919190611981565b610e82565b005b3480156104a3575f80fd5b506104be60048036038101906104b99190611b66565b610eab565b6040516104cb91906118d3565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190611981565b610faa565b60405161050791906118d3565b60405180910390f35b34801561051b575f80fd5b5061053660048036038101906105319190611981565b611039565b60405161054391906119c4565b60405180910390f35b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105be57506105bd82611052565b5b9050919050565b600260089054906101000a900467ffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461062783426110cb565b6106319190611ca6565b9050919050565b600260109054906101000a900467ffffffffffffffff1681565b5f61065b61118c565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6106ab611196565b8181905084849050146106ea576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156107a65782828281811061070a57610709611cd9565b5b905060200201602081019061071f9190611d30565b60015f87878581811061073557610734611cd9565b5b905060200201602081019061074a9190611981565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ec565b5050505050565b5f6107b66111cd565b905080546003825580156107e85760018160011c14303b106107df5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107f99190611f7a565b9050806040015160025f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060600151600260086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060800151600260106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061088d815f01516111f6565b5f5b81602001515181101561091b576001805f846020015184815181106108b7576108b6611cd9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061088f565b50508015610952576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109ed9190612125565b90505f6002811115610a0257610a0161216c565b5b815f01516002811115610a1857610a1761216c565b5b03610a8e575f8160600151806020019051810190610a3691906121fc565b9050805f01513414610a88578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a7f929190612227565b60405180910390fd5b50610b9d565b60016002811115610aa257610aa161216c565b5b815f01516002811115610ab857610ab761216c565b5b03610b93575f8160600151806020019051810190610ad691906121fc565b9050610b10826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166112cc909392919063ffffffff16565b805f0151610b4130846020015173ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b1015610b8d578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b84929190612227565b60405180910390fd5b50610b9c565b5f915050610ba3565b5b60019150505b92915050565b5f805f90505b83839050811015610c0157610be7848483818110610bd057610bcf611cd9565b5b9050602002810190610be2919061225a565b610eab565b610bf4575f915050610c07565b8080600101915050610baf565b50600190505b92915050565b610c15611196565b610c1e5f611359565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900467ffffffffffffffff1681565b5f805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610cc457610cbf308473ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b610cc6565b475b9050805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d1091906122bc565b915050919050565b5f600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16610d5091906122ef565b67ffffffffffffffff16905090565b610d67611196565b63389a75e1600c52805f526020600c208054421115610d8d57636f5e88185f526004601cfd5b5f815550610d9a81611359565b50565b5f610da6611196565b5f8383810190610db69190612125565b90505f6002811115610dcb57610dca61216c565b5b815f01516002811115610de157610de061216c565b5b1480610e14575060016002811115610dfc57610dfb61216c565b5b815f01516002811115610e1257610e1161216c565b5b145b15610e6d575f8160600151806020019051810190610e3291906121fc565b9050610e67826020015183604001515f845f015114610e5457835f0151610e62565b610e6185602001516105df565b5b61141f565b50610e76565b5f915050610e7c565b60019150505b92915050565b610e8a611196565b8060601b610e9f57637448fbae5f526004601cfd5b610ea881611359565b50565b5f610eb533610faa565b610eeb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610efb9190612125565b905060016002811115610f1157610f1061216c565b5b815f01516002811115610f2757610f2661216c565b5b1480610f5957505f6002811115610f4157610f4061216c565b5b815f01516002811115610f5757610f5661216c565b5b145b15610f95575f8160600151806020019051810190610f7791906121fc565b9050610f8f82602001518360400151835f015161141f565b50610f9e565b5f915050610fa4565b60019150505b92915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110325750611003610c20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110c457506110c382611637565b5b9050919050565b5f805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461112e57611129308573ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b611130565b475b90506111835f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548261117d91906122bc565b846116a0565b91505092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146111cb576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6111fe6117be565b15611276577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561123857630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506112c9565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661131757637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113616117be565b156113c6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061141c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd21268540361143d5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bd578282826040517fbf182be80000000000000000000000000000000000000000000000000000000081526004016114b49392919061232a565b60405180910390fd5b6114c6836105df565b81111561151657826114d7846105df565b826040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161150d9392919061235f565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461156191906122bc565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115aa576115a582826117c2565b6115d6565b6115d582828573ffffffffffffffffffffffffffffffffffffffff166117df9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161161e929190612227565b60405180910390a23868929eee149b4bd2126855505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f600260109054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff166116d891906122ef565b67ffffffffffffffff168267ffffffffffffffff1610156116fb575f90506117b8565b600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661173291906122ef565b67ffffffffffffffff168267ffffffffffffffff1610611754578290506117b8565b600260089054906101000a900467ffffffffffffffff1667ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16836117969190612394565b67ffffffffffffffff16846117ab91906123cf565b6117b5919061243d565b90505b92915050565b5f90565b5f385f3884865af16117db5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661181f576390b8ec185f526004601cfd5b5f603452505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61186d81611839565b8114611877575f80fd5b50565b5f8135905061188881611864565b92915050565b5f602082840312156118a3576118a2611831565b5b5f6118b08482850161187a565b91505092915050565b5f8115159050919050565b6118cd816118b9565b82525050565b5f6020820190506118e65f8301846118c4565b92915050565b5f67ffffffffffffffff82169050919050565b611908816118ec565b82525050565b5f6020820190506119215f8301846118ff565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195082611927565b9050919050565b61196081611946565b811461196a575f80fd5b50565b5f8135905061197b81611957565b92915050565b5f6020828403121561199657611995611831565b5b5f6119a38482850161196d565b91505092915050565b5f819050919050565b6119be816119ac565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126119fe576119fd6119dd565b5b8235905067ffffffffffffffff811115611a1b57611a1a6119e1565b5b602083019150836020820283011115611a3757611a366119e5565b5b9250929050565b5f8083601f840112611a5357611a526119dd565b5b8235905067ffffffffffffffff811115611a7057611a6f6119e1565b5b602083019150836020820283011115611a8c57611a8b6119e5565b5b9250929050565b5f805f8060408587031215611aab57611aaa611831565b5b5f85013567ffffffffffffffff811115611ac857611ac7611835565b5b611ad4878288016119e9565b9450945050602085013567ffffffffffffffff811115611af757611af6611835565b5b611b0387828801611a3e565b925092505092959194509250565b5f8083601f840112611b2657611b256119dd565b5b8235905067ffffffffffffffff811115611b4357611b426119e1565b5b602083019150836001820283011115611b5f57611b5e6119e5565b5b9250929050565b5f8060208385031215611b7c57611b7b611831565b5b5f83013567ffffffffffffffff811115611b9957611b98611835565b5b611ba585828601611b11565b92509250509250929050565b5f8083601f840112611bc657611bc56119dd565b5b8235905067ffffffffffffffff811115611be357611be26119e1565b5b602083019150836020820283011115611bff57611bfe6119e5565b5b9250929050565b5f8060208385031215611c1c57611c1b611831565b5b5f83013567ffffffffffffffff811115611c3957611c38611835565b5b611c4585828601611bb1565b92509250509250929050565b611c5a81611946565b82525050565b5f602082019050611c735f830184611c51565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cb0826119ac565b9150611cbb836119ac565b9250828203905081811115611cd357611cd2611c79565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611d0f816118b9565b8114611d19575f80fd5b50565b5f81359050611d2a81611d06565b92915050565b5f60208284031215611d4557611d44611831565b5b5f611d5284828501611d1c565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611da582611d5f565b810181811067ffffffffffffffff82111715611dc457611dc3611d6f565b5b80604052505050565b5f611dd6611828565b9050611de28282611d9c565b919050565b5f80fd5b5f67ffffffffffffffff821115611e0557611e04611d6f565b5b602082029050602081019050919050565b5f611e28611e2384611deb565b611dcd565b90508083825260208201905060208402830185811115611e4b57611e4a6119e5565b5b835b81811015611e745780611e60888261196d565b845260208401935050602081019050611e4d565b5050509392505050565b5f82601f830112611e9257611e916119dd565b5b8135611ea2848260208601611e16565b91505092915050565b611eb4816118ec565b8114611ebe575f80fd5b50565b5f81359050611ecf81611eab565b92915050565b5f60a08284031215611eea57611ee9611d5b565b5b611ef460a0611dcd565b90505f611f038482850161196d565b5f83015250602082013567ffffffffffffffff811115611f2657611f25611de7565b5b611f3284828501611e7e565b6020830152506040611f4684828501611ec1565b6040830152506060611f5a84828501611ec1565b6060830152506080611f6e84828501611ec1565b60808301525092915050565b5f60208284031215611f8f57611f8e611831565b5b5f82013567ffffffffffffffff811115611fac57611fab611835565b5b611fb884828501611ed5565b91505092915050565b60038110611fcd575f80fd5b50565b5f81359050611fde81611fc1565b92915050565b5f80fd5b5f67ffffffffffffffff82111561200257612001611d6f565b5b61200b82611d5f565b9050602081019050919050565b828183375f83830152505050565b5f61203861203384611fe8565b611dcd565b90508281526020810184848401111561205457612053611fe4565b5b61205f848285612018565b509392505050565b5f82601f83011261207b5761207a6119dd565b5b813561208b848260208601612026565b91505092915050565b5f608082840312156120a9576120a8611d5b565b5b6120b36080611dcd565b90505f6120c284828501611fd0565b5f8301525060206120d58482850161196d565b60208301525060406120e98482850161196d565b604083015250606082013567ffffffffffffffff81111561210d5761210c611de7565b5b61211984828501612067565b60608301525092915050565b5f6020828403121561213a57612139611831565b5b5f82013567ffffffffffffffff81111561215757612156611835565b5b61216384828501612094565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6121a2816119ac565b81146121ac575f80fd5b50565b5f815190506121bd81612199565b92915050565b5f602082840312156121d8576121d7611d5b565b5b6121e26020611dcd565b90505f6121f1848285016121af565b5f8301525092915050565b5f6020828403121561221157612210611831565b5b5f61221e848285016121c3565b91505092915050565b5f60408201905061223a5f830185611c51565b61224760208301846119b5565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f80833560016020038436030381126122765761227561224e565b5b80840192508235915067ffffffffffffffff82111561229857612297612252565b5b6020830192506001820236038313156122b4576122b3612256565b5b509250929050565b5f6122c6826119ac565b91506122d1836119ac565b92508282019050808211156122e9576122e8611c79565b5b92915050565b5f6122f9826118ec565b9150612304836118ec565b9250828201905067ffffffffffffffff81111561232457612323611c79565b5b92915050565b5f60608201905061233d5f830186611c51565b61234a6020830185611c51565b61235760408301846119b5565b949350505050565b5f6060820190506123725f830186611c51565b61237f60208301856119b5565b61238c60408301846119b5565b949350505050565b5f61239e826118ec565b91506123a9836118ec565b9250828203905067ffffffffffffffff8111156123c9576123c8611c79565b5b92915050565b5f6123d9826119ac565b91506123e4836119ac565b92508282026123f2816119ac565b9150828204841483151761240957612408611c79565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612447826119ac565b9150612452836119ac565b92508261246257612461612410565b5b82820490509291505056fea26469706673582212200800c5718970c108b16c08f87d484853c64c49e10cd30ba20a5593885273a25764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x143 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61400C99 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF04E283E GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x440 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x510 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x61400C99 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0xEFBE1C1C EQ PUSH2 0x3FA JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x4359D28A GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2F4 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xFB5A6B4 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x13D033C0 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x218 JUMPI PUSH2 0x14A JUMP JUMPDEST CALLDATASIZE PUSH2 0x14A JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x188E JUMP JUMPDEST PUSH2 0x54C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x202 PUSH2 0x638 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20F SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x220 PUSH2 0x652 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0x1A93 JUMP JUMPDEST PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x298 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B6 PUSH2 0x95E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D9 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x997 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EB SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x9DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x34A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x345 SWAP2 SWAP1 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x357 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH2 0xC0D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37E PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A8 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B5 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DF SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x40E PUSH2 0xD18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x41B SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x439 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xD5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xD9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x473 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x496 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x491 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B9 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CB SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F5 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xFAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x507 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x536 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x1039 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x543 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5BE JUMPI POP PUSH2 0x5BD DUP3 PUSH2 0x1052 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x627 DUP4 TIMESTAMP PUSH2 0x10CB JUMP JUMPDEST PUSH2 0x631 SWAP2 SWAP1 PUSH2 0x1CA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x65B PUSH2 0x118C JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x1196 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x6EA JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x70A JUMPI PUSH2 0x709 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x1D30 JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x735 JUMPI PUSH2 0x734 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x74A SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x7B6 PUSH2 0x11CD JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x7DF JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x1F7A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x80 ADD MLOAD PUSH1 0x2 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x88D DUP2 PUSH0 ADD MLOAD PUSH2 0x11F6 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x91B JUMPI PUSH1 0x1 DUP1 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x8B7 JUMPI PUSH2 0x8B6 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x88F JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x952 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9ED SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA17 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA8E JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA36 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA88 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA7F SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAB8 JUMPI PUSH2 0xAB7 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB93 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAD6 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xB10 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CC SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB41 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB8D JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB84 SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9C JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xBA3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xBE7 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xBD0 JUMPI PUSH2 0xBCF PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xBE2 SWAP2 SWAP1 PUSH2 0x225A JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH2 0xBF4 JUMPI PUSH0 SWAP2 POP POP PUSH2 0xC07 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xBAF JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC15 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0xC1E PUSH0 PUSH2 0x1359 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC4 JUMPI PUSH2 0xCBF ADDRESS DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xCC6 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xD10 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD50 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xD67 PUSH2 0x1196 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD8D JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD9A DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 PUSH2 0x1196 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xDB6 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDE1 JUMPI PUSH2 0xDE0 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xE14 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI PUSH2 0xDFB PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE12 JUMPI PUSH2 0xE11 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xE6D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE32 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xE67 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xE54 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xE62 JUMP JUMPDEST PUSH2 0xE61 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x5DF JUMP JUMPDEST JUMPDEST PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xE76 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x1196 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE9F JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xEA8 DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEB5 CALLER PUSH2 0xFAA JUMP JUMPDEST PUSH2 0xEEB JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEFB SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF11 JUMPI PUSH2 0xF10 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF27 JUMPI PUSH2 0xF26 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF59 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF41 JUMPI PUSH2 0xF40 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF57 JUMPI PUSH2 0xF56 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xF95 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF77 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xF8F DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xF9E JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xFA4 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1032 JUMPI POP PUSH2 0x1003 PUSH2 0xC20 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x10C4 JUMPI POP PUSH2 0x10C3 DUP3 PUSH2 0x1637 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x112E JUMPI PUSH2 0x1129 ADDRESS DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1130 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP PUSH2 0x1183 PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP3 PUSH2 0x117D SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST DUP5 PUSH2 0x16A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x11CB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x1276 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1238 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x12C9 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1317 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1361 PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x13C6 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x141C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x143D JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BD JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x232A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14C6 DUP4 PUSH2 0x5DF JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1516 JUMPI DUP3 PUSH2 0x14D7 DUP5 PUSH2 0x5DF JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AA JUMPI PUSH2 0x15A5 DUP3 DUP3 PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST PUSH2 0x15D5 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x17DF SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x161E SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x16D8 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x16FB JUMPI PUSH0 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x1732 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT PUSH2 0x1754 JUMPI DUP3 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1796 SWAP2 SWAP1 PUSH2 0x2394 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH2 0x17AB SWAP2 SWAP1 PUSH2 0x23CF JUMP JUMPDEST PUSH2 0x17B5 SWAP2 SWAP1 PUSH2 0x243D JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x17DB JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x181F JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x1839 JUMP JUMPDEST DUP2 EQ PUSH2 0x1877 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1888 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18A3 JUMPI PUSH2 0x18A2 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18B0 DUP5 DUP3 DUP6 ADD PUSH2 0x187A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18CD DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18E6 PUSH0 DUP4 ADD DUP5 PUSH2 0x18C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1908 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1921 PUSH0 DUP4 ADD DUP5 PUSH2 0x18FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1950 DUP3 PUSH2 0x1927 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1960 DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP2 EQ PUSH2 0x196A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x197B DUP2 PUSH2 0x1957 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1996 JUMPI PUSH2 0x1995 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19A3 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19BE DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19D7 PUSH0 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A1B JUMPI PUSH2 0x1A1A PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A37 JUMPI PUSH2 0x1A36 PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A53 JUMPI PUSH2 0x1A52 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A70 JUMPI PUSH2 0x1A6F PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A8C JUMPI PUSH2 0x1A8B PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1AAB JUMPI PUSH2 0x1AAA PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AC8 JUMPI PUSH2 0x1AC7 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1AD4 DUP8 DUP3 DUP9 ADD PUSH2 0x19E9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AF7 JUMPI PUSH2 0x1AF6 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1B03 DUP8 DUP3 DUP9 ADD PUSH2 0x1A3E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B26 JUMPI PUSH2 0x1B25 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B43 JUMPI PUSH2 0x1B42 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B5F JUMPI PUSH2 0x1B5E PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7C JUMPI PUSH2 0x1B7B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B99 JUMPI PUSH2 0x1B98 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1BA5 DUP6 DUP3 DUP7 ADD PUSH2 0x1B11 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BC6 JUMPI PUSH2 0x1BC5 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE3 JUMPI PUSH2 0x1BE2 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1BFF JUMPI PUSH2 0x1BFE PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C1C JUMPI PUSH2 0x1C1B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C39 JUMPI PUSH2 0x1C38 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1C45 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C5A DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1C73 PUSH0 DUP4 ADD DUP5 PUSH2 0x1C51 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1CB0 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x1CBB DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1CD3 JUMPI PUSH2 0x1CD2 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1D0F DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D19 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D2A DUP2 PUSH2 0x1D06 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D45 JUMPI PUSH2 0x1D44 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1D52 DUP5 DUP3 DUP6 ADD PUSH2 0x1D1C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1DA5 DUP3 PUSH2 0x1D5F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1DC4 JUMPI PUSH2 0x1DC3 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1DD6 PUSH2 0x1828 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DE2 DUP3 DUP3 PUSH2 0x1D9C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1E05 JUMPI PUSH2 0x1E04 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1E28 PUSH2 0x1E23 DUP5 PUSH2 0x1DEB JUMP JUMPDEST PUSH2 0x1DCD 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 0x1E4B JUMPI PUSH2 0x1E4A PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E74 JUMPI DUP1 PUSH2 0x1E60 DUP9 DUP3 PUSH2 0x196D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E4D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1E92 JUMPI PUSH2 0x1E91 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EA2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1E16 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EB4 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP2 EQ PUSH2 0x1EBE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1ECF DUP2 PUSH2 0x1EAB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EEA JUMPI PUSH2 0x1EE9 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x1EF4 PUSH1 0xA0 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F03 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F26 JUMPI PUSH2 0x1F25 PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 ADD PUSH2 0x1E7E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1F46 DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1F5A DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1F6E DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8F JUMPI PUSH2 0x1F8E PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FAC JUMPI PUSH2 0x1FAB PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1FB8 DUP5 DUP3 DUP6 ADD PUSH2 0x1ED5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1FCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FDE DUP2 PUSH2 0x1FC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH2 0x200B DUP3 PUSH2 0x1D5F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2038 PUSH2 0x2033 DUP5 PUSH2 0x1FE8 JUMP JUMPDEST PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2054 JUMPI PUSH2 0x2053 PUSH2 0x1FE4 JUMP JUMPDEST JUMPDEST PUSH2 0x205F DUP5 DUP3 DUP6 PUSH2 0x2018 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x207B JUMPI PUSH2 0x207A PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x208B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2026 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A9 JUMPI PUSH2 0x20A8 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x20B3 PUSH1 0x80 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x20C2 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD0 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x20D5 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x20E9 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x2119 DUP5 DUP3 DUP6 ADD PUSH2 0x2067 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x213A JUMPI PUSH2 0x2139 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2156 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x2163 DUP5 DUP3 DUP6 ADD PUSH2 0x2094 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x21A2 DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP2 EQ PUSH2 0x21AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x21BD DUP2 PUSH2 0x2199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21D8 JUMPI PUSH2 0x21D7 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x21E2 PUSH1 0x20 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x21F1 DUP5 DUP3 DUP6 ADD PUSH2 0x21AF JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x221E DUP5 DUP3 DUP6 ADD PUSH2 0x21C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x223A PUSH0 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2247 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2276 JUMPI PUSH2 0x2275 PUSH2 0x224E JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2298 JUMPI PUSH2 0x2297 PUSH2 0x2252 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x22B4 JUMPI PUSH2 0x22B3 PUSH2 0x2256 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C6 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x22D1 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x22E9 JUMPI PUSH2 0x22E8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22F9 DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x2304 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2324 JUMPI PUSH2 0x2323 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x233D PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x234A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2357 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2372 PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x237F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x238C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x239E DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x23A9 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23C9 JUMPI PUSH2 0x23C8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23D9 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x23E4 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x23F2 DUP2 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2409 JUMPI PUSH2 0x2408 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2447 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2452 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2462 JUMPI PUSH2 0x2461 PUSH2 0x2410 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD STOP 0xC5 PUSH18 0x8970C108B16C08F87D484853C64C49E10CD3 SIGNEXTEND LOG2 EXP SSTORE SWAP4 DUP9 MSTORE PUSH20 0xA25764736F6C6343000819003300000000000000 ","sourceMap":"1481:10635:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5102:205:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2197:22:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8880:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2288:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;7143:359:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2917:417;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9522:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;9280:138:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3687:1097;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6879:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2105:19:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8236:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7805:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5291:574:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6156:499:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11693:435:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5102:205:37;5198:4;5236:24;5221:39;;;:11;:39;;;;:79;;;;5264:36;5288:11;5264:23;:36::i;:::-;5221:79;5214:86;;5102:205;;;:::o;2197:22:39:-;;;;;;;;;;;;;:::o;8880:187::-;8953:7;9032:20;:28;9053:6;9032:28;;;;;;;;;;;;;;;;8979:50;8997:6;9012:15;8979:17;:50::i;:::-;:81;;;;:::i;:::-;8972:88;;8880:187;;;:::o;2288:19::-;;;;;;;;;;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;7143:359:39:-;12517:13:17;:11;:13::i;:::-;7329:11:39::1;;:18;;7310:8;;:15;;:37;7306:66;;7356:16;;;;;;;;;;;;;;7306:66;7387:9;7382:114;7406:8;;:15;;7402:1;:19;7382:114;;;7471:11;;7483:1;7471:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7442:13;:26;7456:8;;7465:1;7456:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7442:26;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;7423:3;;;;;;;7382:114;;;;7143:359:::0;;;;:::o;2917:417::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;3005:24:39::1;3043:5;;3032:32;;;;;;;:::i;:::-;3005:59;;3083:5;:11;;;3075:5;;:19;;;;;;;;;;;;;;;;;;3115:5;:14;;;3104:8;;:25;;;;;;;;;;;;;;;;;;3147:5;:11;;;3139:5;;:19;;;;;;;;;;;;;;;;;;3169:29;3186:5;:11;;;3169:16;:29::i;:::-;3213:9;3208:120;3232:5;:16;;;:23;3228:1;:27;3208:120;;;3313:4;3276:13:::0;:34:::1;3290:5;:16;;;3307:1;3290:19;;;;;;;;:::i;:::-;;;;;;;;3276:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;3257:3;;;;;;;3208:120;;;;2995:339;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2917:417:39;;:::o;9522:104::-;9592:7;9522:104;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;9280:138:39:-;9357:7;9383:20;:28;9404:6;9383:28;;;;;;;;;;;;;;;;9376:35;;9280:138;;;:::o;3687:1097::-;3770:4;3786:23;3823:5;;3812:29;;;;;;;:::i;:::-;3786:55;;3876:13;3855:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;3851:905;;3905:30;3949:7;:12;;;3938:43;;;;;;;;;;;;:::i;:::-;3905:76;;4087:7;:14;;;4074:9;:27;4070:121;;4146:7;:13;;;4161:7;:14;;;4128:48;;;;;;;;;;;;:::i;:::-;;;;;;;;4070:121;3891:310;3851:905;;;4232:15;4211:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;4207:549;;4263:30;4307:7;:12;;;4296:43;;;;;;;;;;;;:::i;:::-;4263:76;;4425:77;4456:7;:14;;;4480:4;4487:7;:14;;;4425:7;:13;;;:30;;;;:77;;;;;;:::i;:::-;4561:7;:14;;;4520:38;4552:4;4520:7;:13;;;:23;;;;:38;;;;:::i;:::-;:55;4516:149;;;4620:7;:13;;;4635:7;:14;;;4602:48;;;;;;;;;;;;:::i;:::-;;;;;;;;4516:149;4249:426;4207:549;;;4740:5;4733:12;;;;;4207:549;3851:905;4773:4;4766:11;;;3687:1097;;;;;:::o;6879:231::-;6961:4;6982:9;6994:1;6982:13;;6977:105;7001:5;;:12;;6997:1;:16;6977:105;;;7039:18;7048:5;;7054:1;7048:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;7039;:18::i;:::-;7034:37;;7066:5;7059:12;;;;;7034:37;7015:3;;;;;;;6977:105;;;;7099:4;7092:11;;6879:231;;;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;2105:19:39:-;;;;;;;;;;;;;:::o;8236:248::-;8307:7;8326:15;8362:1;8344:20;;:6;:20;;;:78;;8391:31;8416:4;8391:6;:16;;;;:31;;;;:::i;:::-;8344:78;;;8367:21;8344:78;8326:96;;8470:7;8439:20;:28;8460:6;8439:28;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;8432:45;;;8236:248;;;:::o;7805:95::-;7851:7;7885:8;;;;;;;;;;;7877:5;;;;;;;;;;;:16;;;;:::i;:::-;7870:23;;;;7805:95;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;5291:574:39:-;5375:4;12517:13:17;:11;:13::i;:::-;5391:23:39::1;5428:5;;5417:29;;;;;;;:::i;:::-;5391:55;;5481:13;5460:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;:74;;;;5519:15;5498:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;5460:74;5456:381;;;5550:30;5594:7;:12;;;5583:43;;;;;;;;;;;;:::i;:::-;5550:76;;5640:143;5675:7;:13;;;5690:7;:14;;;5724:1;5706:7;:14;;;:19;:63;;5755:7;:14;;;5706:63;;;5728:24;5738:7;:13;;;5728:9;:24::i;:::-;5706:63;5640:17;:143::i;:::-;5536:258;5456:381;;;5821:5;5814:12;;;;;5456:381;5854:4;5847:11;;;12540:1:17;5291:574:39::0;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;6156:499:39:-;6244:4;2441:24;2454:10;2441:12;:24::i;:::-;2436:52;;2474:14;;;;;;;;;;;;;;2436:52;6260:23:::1;6297:5;;6286:29;;;;;;;:::i;:::-;6260:55;;6350:15;6329:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;:74;;;;6390:13;6369:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;6329:74;6325:302;;;6419:30;6463:7;:12;;;6452:43;;;;;;;;;;;;:::i;:::-;6419:76;;6509:64;6527:7;:13;;;6542:7;:14;;;6558:7;:14;;;6509:17;:64::i;:::-;6405:179;6325:302;;;6611:5;6604:12;;;;;6325:302;6644:4;6637:11;;;2498:1;6156:499:::0;;;;:::o;7535:154::-;7613:4;7636:13;:23;7650:8;7636:23;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;7675:7;:5;:7::i;:::-;7663:19;;:8;:19;;;7636:46;7629:53;;7535:154;;;:::o;11693:435:17:-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;11074:303:39:-;11167:7;11186:15;11222:1;11204:20;;:6;:20;;;:78;;11251:31;11276:4;11251:6;:16;;;;:31;;;;:::i;:::-;11204:78;;;11227:21;11204:78;11186:96;;11299:71;11329:20;:28;11350:6;11329:28;;;;;;;;;;;;;;;;11319:7;:38;;;;:::i;:::-;11359:10;11299:19;:71::i;:::-;11292:78;;;11074:303;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;9109:1139:27:-;9292:4;9286:11;9357:6;9351:4;9344:20;9422:2;9416:4;9409:16;9487:4;9483:2;9479:13;9473:4;9466:27;9549:34;9543:4;9536:48;9950:4;9944;9938;9932;9929:1;9922:5;9915;9910:45;9844:16;9837:24;9833:1;9826:4;9820:11;9817:18;9814:48;9729:244;9702:404;;10019:10;10013:4;10006:24;10087:4;10081;10074:18;9702:404;10132:1;10126:4;10119:15;10194:1;10188:4;10181:15;9263:979;9109:1139;;;;:::o;19260:739::-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;6145:1089:17:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;10085:708:39:-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;10296:1:39::1;10281:17;;:3;:17;;::::0;10277:66:::1;;10322:6;10330:3;10335:7;10307:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;10277:66;10367:17;10377:6;10367:9;:17::i;:::-;10357:7;:27;10353:118;;;10425:6;10433:17;10443:6;10433:9;:17::i;:::-;10452:7;10407:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;10353:118;10513:7;10481:20;:28:::0;10502:6:::1;10481:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;10600:1;10582:20;;:6;:20;;::::0;10578:160:::1;;10618:45;10650:3;10655:7;10618:31;:45::i;:::-;10578:160;;;10694:33;10714:3;10719:7;10694:6;:19;;;;:33;;;;;:::i;:::-;10578:160;10765:6;10753:33;;;10773:3;10778:7;10753:33;;;;;;;:::i;:::-;;;;;;;;1937:10:26::0;1913:22;1906:42;10085:708:39;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;11748:366:39:-;11851:7;11894:5;;;;;;;;;;;11886;;;;;;;;;;;:13;;;;:::i;:::-;11874:25;;:9;:25;;;11870:238;;;11922:1;11915:8;;;;11870:238;11965:8;;;;;;;;;;;11957:5;;;;;;;;;;;:16;;;;:::i;:::-;11944:29;;:9;:29;;;11940:168;;11996:15;11989:22;;;;11940:168;12089:8;;;;;;;;;;;12049:48;;12080:5;;;;;;;;;;;12068:9;:17;;;;:::i;:::-;12049:37;;:15;:37;;;;:::i;:::-;:48;;;;:::i;:::-;12042:55;;11748:366;;;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;4031:342:27:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;13466:939::-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:101::-;1554:7;1594:18;1587:5;1583:30;1572:41;;1518:101;;;:::o;1625:115::-;1710:23;1727:5;1710:23;:::i;:::-;1705:3;1698:36;1625:115;;:::o;1746:218::-;1837:4;1875:2;1864:9;1860:18;1852:26;;1888:69;1954:1;1943:9;1939:17;1930:6;1888:69;:::i;:::-;1746:218;;;;:::o;1970:126::-;2007:7;2047:42;2040:5;2036:54;2025:65;;1970:126;;;:::o;2102:96::-;2139:7;2168:24;2186:5;2168:24;:::i;:::-;2157:35;;2102:96;;;:::o;2204:122::-;2277:24;2295:5;2277:24;:::i;:::-;2270:5;2267:35;2257:63;;2316:1;2313;2306:12;2257:63;2204:122;:::o;2332:139::-;2378:5;2416:6;2403:20;2394:29;;2432:33;2459:5;2432:33;:::i;:::-;2332:139;;;;:::o;2477:329::-;2536:6;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2711:1;2736:53;2781:7;2772:6;2761:9;2757:22;2736:53;:::i;:::-;2726:63;;2682:117;2477:329;;;;:::o;2812:77::-;2849:7;2878:5;2867:16;;2812:77;;;:::o;2895:118::-;2982:24;3000:5;2982:24;:::i;:::-;2977:3;2970:37;2895:118;;:::o;3019:222::-;3112:4;3150:2;3139:9;3135:18;3127:26;;3163:71;3231:1;3220:9;3216:17;3207:6;3163:71;:::i;:::-;3019:222;;;;:::o;3247:117::-;3356:1;3353;3346:12;3370:117;3479:1;3476;3469:12;3493:117;3602:1;3599;3592:12;3633:568;3706:8;3716:6;3766:3;3759:4;3751:6;3747:17;3743:27;3733:122;;3774:79;;:::i;:::-;3733:122;3887:6;3874:20;3864:30;;3917:18;3909:6;3906:30;3903:117;;;3939:79;;:::i;:::-;3903:117;4053:4;4045:6;4041:17;4029:29;;4107:3;4099:4;4091:6;4087:17;4077:8;4073:32;4070:41;4067:128;;;4114:79;;:::i;:::-;4067:128;3633:568;;;;;:::o;4221:565::-;4291:8;4301:6;4351:3;4344:4;4336:6;4332:17;4328:27;4318:122;;4359:79;;:::i;:::-;4318:122;4472:6;4459:20;4449:30;;4502:18;4494:6;4491:30;4488:117;;;4524:79;;:::i;:::-;4488:117;4638:4;4630:6;4626:17;4614:29;;4692:3;4684:4;4676:6;4672:17;4662:8;4658:32;4655:41;4652:128;;;4699:79;;:::i;:::-;4652:128;4221:565;;;;;:::o;4792:928::-;4911:6;4919;4927;4935;4984:2;4972:9;4963:7;4959:23;4955:32;4952:119;;;4990:79;;:::i;:::-;4952:119;5138:1;5127:9;5123:17;5110:31;5168:18;5160:6;5157:30;5154:117;;;5190:79;;:::i;:::-;5154:117;5303:80;5375:7;5366:6;5355:9;5351:22;5303:80;:::i;:::-;5285:98;;;;5081:312;5460:2;5449:9;5445:18;5432:32;5491:18;5483:6;5480:30;5477:117;;;5513:79;;:::i;:::-;5477:117;5626:77;5695:7;5686:6;5675:9;5671:22;5626:77;:::i;:::-;5608:95;;;;5403:310;4792:928;;;;;;;:::o;5739:552::-;5796:8;5806:6;5856:3;5849:4;5841:6;5837:17;5833:27;5823:122;;5864:79;;:::i;:::-;5823:122;5977:6;5964:20;5954:30;;6007:18;5999:6;5996:30;5993:117;;;6029:79;;:::i;:::-;5993:117;6143:4;6135:6;6131:17;6119:29;;6197:3;6189:4;6181:6;6177:17;6167:8;6163:32;6160:41;6157:128;;;6204:79;;:::i;:::-;6157:128;5739:552;;;;;:::o;6297:527::-;6367:6;6375;6424:2;6412:9;6403:7;6399:23;6395:32;6392:119;;;6430:79;;:::i;:::-;6392:119;6578:1;6567:9;6563:17;6550:31;6608:18;6600:6;6597:30;6594:117;;;6630:79;;:::i;:::-;6594:117;6743:64;6799:7;6790:6;6779:9;6775:22;6743:64;:::i;:::-;6725:82;;;;6521:296;6297:527;;;;;:::o;6845:579::-;6929:8;6939:6;6989:3;6982:4;6974:6;6970:17;6966:27;6956:122;;6997:79;;:::i;:::-;6956:122;7110:6;7097:20;7087:30;;7140:18;7132:6;7129:30;7126:117;;;7162:79;;:::i;:::-;7126:117;7276:4;7268:6;7264:17;7252:29;;7330:3;7322:4;7314:6;7310:17;7300:8;7296:32;7293:41;7290:128;;;7337:79;;:::i;:::-;7290:128;6845:579;;;;;:::o;7430:581::-;7527:6;7535;7584:2;7572:9;7563:7;7559:23;7555:32;7552:119;;;7590:79;;:::i;:::-;7552:119;7738:1;7727:9;7723:17;7710:31;7768:18;7760:6;7757:30;7754:117;;;7790:79;;:::i;:::-;7754:117;7903:91;7986:7;7977:6;7966:9;7962:22;7903:91;:::i;:::-;7885:109;;;;7681:323;7430:581;;;;;:::o;8017:118::-;8104:24;8122:5;8104:24;:::i;:::-;8099:3;8092:37;8017:118;;:::o;8141:222::-;8234:4;8272:2;8261:9;8257:18;8249:26;;8285:71;8353:1;8342:9;8338:17;8329:6;8285:71;:::i;:::-;8141:222;;;;:::o;8369:180::-;8417:77;8414:1;8407:88;8514:4;8511:1;8504:15;8538:4;8535:1;8528:15;8555:194;8595:4;8615:20;8633:1;8615:20;:::i;:::-;8610:25;;8649:20;8667:1;8649:20;:::i;:::-;8644:25;;8693:1;8690;8686:9;8678:17;;8717:1;8711:4;8708:11;8705:37;;;8722:18;;:::i;:::-;8705:37;8555:194;;;;:::o;8755:180::-;8803:77;8800:1;8793:88;8900:4;8897:1;8890:15;8924:4;8921:1;8914:15;8941:116;9011:21;9026:5;9011:21;:::i;:::-;9004:5;9001:32;8991:60;;9047:1;9044;9037:12;8991:60;8941:116;:::o;9063:133::-;9106:5;9144:6;9131:20;9122:29;;9160:30;9184:5;9160:30;:::i;:::-;9063:133;;;;:::o;9202:323::-;9258:6;9307:2;9295:9;9286:7;9282:23;9278:32;9275:119;;;9313:79;;:::i;:::-;9275:119;9433:1;9458:50;9500:7;9491:6;9480:9;9476:22;9458:50;:::i;:::-;9448:60;;9404:114;9202:323;;;;:::o;9531:117::-;9640:1;9637;9630:12;9654:102;9695:6;9746:2;9742:7;9737:2;9730:5;9726:14;9722:28;9712:38;;9654:102;;;:::o;9762:180::-;9810:77;9807:1;9800:88;9907:4;9904:1;9897:15;9931:4;9928:1;9921:15;9948:281;10031:27;10053:4;10031:27;:::i;:::-;10023:6;10019:40;10161:6;10149:10;10146:22;10125:18;10113:10;10110:34;10107:62;10104:88;;;10172:18;;:::i;:::-;10104:88;10212:10;10208:2;10201:22;9991:238;9948:281;;:::o;10235:129::-;10269:6;10296:20;;:::i;:::-;10286:30;;10325:33;10353:4;10345:6;10325:33;:::i;:::-;10235:129;;;:::o;10370:117::-;10479:1;10476;10469:12;10493:311;10570:4;10660:18;10652:6;10649:30;10646:56;;;10682:18;;:::i;:::-;10646:56;10732:4;10724:6;10720:17;10712:25;;10792:4;10786;10782:15;10774:23;;10493:311;;;:::o;10827:710::-;10923:5;10948:81;10964:64;11021:6;10964:64;:::i;:::-;10948:81;:::i;:::-;10939:90;;11049:5;11078:6;11071:5;11064:21;11112:4;11105:5;11101:16;11094:23;;11165:4;11157:6;11153:17;11145:6;11141:30;11194:3;11186:6;11183:15;11180:122;;;11213:79;;:::i;:::-;11180:122;11328:6;11311:220;11345:6;11340:3;11337:15;11311:220;;;11420:3;11449:37;11482:3;11470:10;11449:37;:::i;:::-;11444:3;11437:50;11516:4;11511:3;11507:14;11500:21;;11387:144;11371:4;11366:3;11362:14;11355:21;;11311:220;;;11315:21;10929:608;;10827:710;;;;;:::o;11560:370::-;11631:5;11680:3;11673:4;11665:6;11661:17;11657:27;11647:122;;11688:79;;:::i;:::-;11647:122;11805:6;11792:20;11830:94;11920:3;11912:6;11905:4;11897:6;11893:17;11830:94;:::i;:::-;11821:103;;11637:293;11560:370;;;;:::o;11936:120::-;12008:23;12025:5;12008:23;:::i;:::-;12001:5;11998:34;11988:62;;12046:1;12043;12036:12;11988:62;11936:120;:::o;12062:137::-;12107:5;12145:6;12132:20;12123:29;;12161:32;12187:5;12161:32;:::i;:::-;12062:137;;;;:::o;12245:1258::-;12324:5;12368:4;12356:9;12351:3;12347:19;12343:30;12340:117;;;12376:79;;:::i;:::-;12340:117;12475:21;12491:4;12475:21;:::i;:::-;12466:30;;12556:1;12596:49;12641:3;12632:6;12621:9;12617:22;12596:49;:::i;:::-;12589:4;12582:5;12578:16;12571:75;12506:151;12750:2;12739:9;12735:18;12722:32;12781:18;12773:6;12770:30;12767:117;;;12803:79;;:::i;:::-;12767:117;12923:74;12993:3;12984:6;12973:9;12969:22;12923:74;:::i;:::-;12916:4;12909:5;12905:16;12898:100;12667:342;13069:2;13110:48;13154:3;13145:6;13134:9;13130:22;13110:48;:::i;:::-;13103:4;13096:5;13092:16;13085:74;13019:151;13233:2;13274:48;13318:3;13309:6;13298:9;13294:22;13274:48;:::i;:::-;13267:4;13260:5;13256:16;13249:74;13180:154;13394:3;13436:48;13480:3;13471:6;13460:9;13456:22;13436:48;:::i;:::-;13429:4;13422:5;13418:16;13411:74;13344:152;12245:1258;;;;:::o;13509:549::-;13598:6;13647:2;13635:9;13626:7;13622:23;13618:32;13615:119;;;13653:79;;:::i;:::-;13615:119;13801:1;13790:9;13786:17;13773:31;13831:18;13823:6;13820:30;13817:117;;;13853:79;;:::i;:::-;13817:117;13958:83;14033:7;14024:6;14013:9;14009:22;13958:83;:::i;:::-;13948:93;;13744:307;13509:549;;;;:::o;14064:114::-;14152:1;14145:5;14142:12;14132:40;;14168:1;14165;14158:12;14132:40;14064:114;:::o;14184:169::-;14245:5;14283:6;14270:20;14261:29;;14299:48;14341:5;14299:48;:::i;:::-;14184:169;;;;:::o;14359:117::-;14468:1;14465;14458:12;14482:307;14543:4;14633:18;14625:6;14622:30;14619:56;;;14655:18;;:::i;:::-;14619:56;14693:29;14715:6;14693:29;:::i;:::-;14685:37;;14777:4;14771;14767:15;14759:23;;14482:307;;;:::o;14795:148::-;14893:6;14888:3;14883;14870:30;14934:1;14925:6;14920:3;14916:16;14909:27;14795:148;;;:::o;14949:423::-;15026:5;15051:65;15067:48;15108:6;15067:48;:::i;:::-;15051:65;:::i;:::-;15042:74;;15139:6;15132:5;15125:21;15177:4;15170:5;15166:16;15215:3;15206:6;15201:3;15197:16;15194:25;15191:112;;;15222:79;;:::i;:::-;15191:112;15312:54;15359:6;15354:3;15349;15312:54;:::i;:::-;15032:340;14949:423;;;;;:::o;15391:338::-;15446:5;15495:3;15488:4;15480:6;15476:17;15472:27;15462:122;;15503:79;;:::i;:::-;15462:122;15620:6;15607:20;15645:78;15719:3;15711:6;15704:4;15696:6;15692:17;15645:78;:::i;:::-;15636:87;;15452:277;15391:338;;;;:::o;15765:1090::-;15841:5;15885:4;15873:9;15868:3;15864:19;15860:30;15857:117;;;15893:79;;:::i;:::-;15857:117;15992:21;16008:4;15992:21;:::i;:::-;15983:30;;16077:1;16117:64;16177:3;16168:6;16157:9;16153:22;16117:64;:::i;:::-;16110:4;16103:5;16099:16;16092:90;16023:170;16253:2;16294:49;16339:3;16330:6;16319:9;16315:22;16294:49;:::i;:::-;16287:4;16280:5;16276:16;16269:75;16203:152;16416:2;16457:49;16502:3;16493:6;16482:9;16478:22;16457:49;:::i;:::-;16450:4;16443:5;16439:16;16432:75;16365:153;16605:2;16594:9;16590:18;16577:32;16636:18;16628:6;16625:30;16622:117;;;16658:79;;:::i;:::-;16622:117;16778:58;16832:3;16823:6;16812:9;16808:22;16778:58;:::i;:::-;16771:4;16764:5;16760:16;16753:84;16528:320;15765:1090;;;;:::o;16861:543::-;16947:6;16996:2;16984:9;16975:7;16971:23;16967:32;16964:119;;;17002:79;;:::i;:::-;16964:119;17150:1;17139:9;17135:17;17122:31;17180:18;17172:6;17169:30;17166:117;;;17202:79;;:::i;:::-;17166:117;17307:80;17379:7;17370:6;17359:9;17355:22;17307:80;:::i;:::-;17297:90;;17093:304;16861:543;;;;:::o;17410:180::-;17458:77;17455:1;17448:88;17555:4;17552:1;17545:15;17579:4;17576:1;17569:15;17596:122;17669:24;17687:5;17669:24;:::i;:::-;17662:5;17659:35;17649:63;;17708:1;17705;17698:12;17649:63;17596:122;:::o;17724:143::-;17781:5;17812:6;17806:13;17797:22;;17828:33;17855:5;17828:33;:::i;:::-;17724:143;;;;:::o;17910:446::-;18004:5;18048:4;18036:9;18031:3;18027:19;18023:30;18020:117;;;18056:79;;:::i;:::-;18020:117;18155:21;18171:4;18155:21;:::i;:::-;18146:30;;18237:1;18277:60;18333:3;18324:6;18313:9;18309:22;18277:60;:::i;:::-;18270:4;18263:5;18259:16;18252:86;18186:163;17910:446;;;;:::o;18362:419::-;18466:6;18515:2;18503:9;18494:7;18490:23;18486:32;18483:119;;;18521:79;;:::i;:::-;18483:119;18641:1;18666:98;18756:7;18747:6;18736:9;18732:22;18666:98;:::i;:::-;18656:108;;18612:162;18362:419;;;;:::o;18787:332::-;18908:4;18946:2;18935:9;18931:18;18923:26;;18959:71;19027:1;19016:9;19012:17;19003:6;18959:71;:::i;:::-;19040:72;19108:2;19097:9;19093:18;19084:6;19040:72;:::i;:::-;18787:332;;;;;:::o;19125:117::-;19234:1;19231;19224:12;19248:117;19357:1;19354;19347:12;19371:117;19480:1;19477;19470:12;19494:724;19571:4;19577:6;19633:11;19620:25;19733:1;19727:4;19723:12;19712:8;19696:14;19692:29;19688:48;19668:18;19664:73;19654:168;;19741:79;;:::i;:::-;19654:168;19853:18;19843:8;19839:33;19831:41;;19905:4;19892:18;19882:28;;19933:18;19925:6;19922:30;19919:117;;;19955:79;;:::i;:::-;19919:117;20063:2;20057:4;20053:13;20045:21;;20120:4;20112:6;20108:17;20092:14;20088:38;20082:4;20078:49;20075:136;;;20130:79;;:::i;:::-;20075:136;19584:634;19494:724;;;;;:::o;20224:191::-;20264:3;20283:20;20301:1;20283:20;:::i;:::-;20278:25;;20317:20;20335:1;20317:20;:::i;:::-;20312:25;;20360:1;20357;20353:9;20346:16;;20381:3;20378:1;20375:10;20372:36;;;20388:18;;:::i;:::-;20372:36;20224:191;;;;:::o;20421:205::-;20460:3;20479:19;20496:1;20479:19;:::i;:::-;20474:24;;20512:19;20529:1;20512:19;:::i;:::-;20507:24;;20554:1;20551;20547:9;20540:16;;20577:18;20572:3;20569:27;20566:53;;;20599:18;;:::i;:::-;20566:53;20421:205;;;;:::o;20632:442::-;20781:4;20819:2;20808:9;20804:18;20796:26;;20832:71;20900:1;20889:9;20885:17;20876:6;20832:71;:::i;:::-;20913:72;20981:2;20970:9;20966:18;20957:6;20913:72;:::i;:::-;20995;21063:2;21052:9;21048:18;21039:6;20995:72;:::i;:::-;20632:442;;;;;;:::o;21080:::-;21229:4;21267:2;21256:9;21252:18;21244:26;;21280:71;21348:1;21337:9;21333:17;21324:6;21280:71;:::i;:::-;21361:72;21429:2;21418:9;21414:18;21405:6;21361:72;:::i;:::-;21443;21511:2;21500:9;21496:18;21487:6;21443:72;:::i;:::-;21080:442;;;;;;:::o;21528:208::-;21567:4;21587:19;21604:1;21587:19;:::i;:::-;21582:24;;21620:19;21637:1;21620:19;:::i;:::-;21615:24;;21663:1;21660;21656:9;21648:17;;21687:18;21681:4;21678:28;21675:54;;;21709:18;;:::i;:::-;21675:54;21528:208;;;;:::o;21742:410::-;21782:7;21805:20;21823:1;21805:20;:::i;:::-;21800:25;;21839:20;21857:1;21839:20;:::i;:::-;21834:25;;21894:1;21891;21887:9;21916:30;21934:11;21916:30;:::i;:::-;21905:41;;22095:1;22086:7;22082:15;22079:1;22076:22;22056:1;22049:9;22029:83;22006:139;;22125:18;;:::i;:::-;22006:139;21790:362;21742:410;;;;:::o;22158:180::-;22206:77;22203:1;22196:88;22303:4;22300:1;22293:15;22327:4;22324:1;22317:15;22344:185;22384:1;22401:20;22419:1;22401:20;:::i;:::-;22396:25;;22435:20;22453:1;22435:20;:::i;:::-;22430:25;;22474:1;22464:35;;22479:18;;:::i;:::-;22464:35;22521:1;22518;22514:9;22509:14;;22344:185;;;;:::o"},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","cancelOwnershipHandover()":"54d1f13d","cliff()":"13d033c0","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","duration()":"0fb5a6b4","end()":"efbe1c1c","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","start()":"be9a6555","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cliff\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"duration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"start\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Take note of the following when making use of this budget type: - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior. - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution. - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero. - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is equal to the total vested amount minus any already distributed\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets currently available for distribution\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"disburse(bytes)\":{\"details\":\"The maximum amount that can be disbursed is the {available} amount\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"end()\":{\"returns\":{\"_0\":\"The end time of the vesting schedule\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget (see {InitPayload})\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting scheduleIf the amount is zero, the entire available balance of the asset will be transferred to the receiverIf the asset transfer fails for any reason, the function will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"isAuthorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is equal to the sum of the total current balance and the total distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_distributedFungible\":{\"details\":\"The total amount of each fungible asset distributed from the budget\"},\"_isAuthorized\":{\"details\":\"The mapping of authorized addresses\"}},\"title\":\"Vesting Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget as of the current block timestamp\"},\"cliff()\":{\"notice\":\"The duration of the cliff period (in seconds)\"},\"constructor\":{\"notice\":\"Construct a new VestingBudget\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"duration()\":{\"notice\":\"The duration of the vesting schedule (in seconds)\"},\"end()\":{\"notice\":\"Get the end time of the vesting schedule\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"start()\":{\"notice\":\"The timestamp at which the vesting schedule begins\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A vesting-based budget implementation that allows for the distribution of assets over time\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/VestingBudget.sol\":\"VestingBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/budgets/VestingBudget.sol\":{\"keccak256\":\"0x31f6625abbd3668413280d8dd96560b63dde6074e0aee92f04808c02a335e024\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a4dc39be3f8e13624ffbdec0acb458a1c229fa3514191e144db1dcec5ee51cca\",\"dweb:/ipfs/QmW1ysAbpEnXJwunqnuEkA1vGRgNJ3ojXGYMJAsXg8zHz2\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/AllowListIncentive.sol":{"AllowListIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"allowList","outputs":[{"internalType":"contract SimpleAllowList","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_15443":{"entryPoint":null,"id":15443,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611754806101b45f395ff3fe6080604052600436106100fd575f3560e01c8063a4d66daf11610094578063e18e650811610063578063e18e6508146102df578063f04e283e1461031b578063f1c30ec014610337578063f2fde38b14610373578063fee81cf41461038f576100fd565b8063a4d66daf14610213578063c63ff8dd1461023d578063c884ef8314610279578063dcc59b6f146102b5576100fd565b806354d1f13d116100d057806354d1f13d146101ab578063715018a6146101b557806387b9d25c146101bf5780638da5cb5b146101e9576100fd565b806301ffc9a714610101578063256929621461013d578063439fab91146101475780634e7165a21461016f575b5f80fd5b34801561010c575f80fd5b5061012760048036038101906101229190610e8d565b6103cb565b6040516101349190610ed2565b60405180910390f35b610145610444565b005b348015610152575f80fd5b5061016d60048036038101906101689190610f4c565b610495565b005b34801561017a575f80fd5b5061019560048036038101906101909190610f4c565b610575565b6040516101a29190611007565b60405180910390f35b6101b36105cc565b005b6101bd610605565b005b3480156101ca575f80fd5b506101d3610618565b6040516101e091906110a1565b60405180910390f35b3480156101f4575f80fd5b506101fd61063d565b60405161020a91906110da565b60405180910390f35b34801561021e575f80fd5b50610227610665565b604051610234919061110b565b60405180910390f35b348015610248575f80fd5b50610263600480360381019061025e9190610f4c565b61066b565b6040516102709190610ed2565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a919061114e565b61082a565b6040516102ac9190610ed2565b60405180910390f35b3480156102c0575f80fd5b506102c9610847565b6040516102d6919061110b565b60405180910390f35b3480156102ea575f80fd5b5061030560048036038101906103009190610f4c565b61084c565b6040516103129190610ed2565b60405180910390f35b6103356004803603810190610330919061114e565b610969565b005b348015610342575f80fd5b5061035d60048036038101906103589190610f4c565b6109a7565b60405161036a9190610ed2565b60405180910390f35b61038d6004803603810190610388919061114e565b6109da565b005b34801561039a575f80fd5b506103b560048036038101906103b0919061114e565b610a03565b6040516103c2919061110b565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043d575061043c82610a1c565b5b9050919050565b5f61044d610a95565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61049e610a9f565b905080546003825580156104d05760018160011c14303b106104c75763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104e191906112ab565b90506104ec33610ac8565b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600381905550508015610570576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156105915761059061117d565b5b6040519080825280601f01601f1916602001820160405280156105c35781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61060d610b9e565b6106165f610bd5565b565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b5f610674610b9e565b5f838381019061068491906113ef565b90506003545f8081548092919061069a90611463565b919050551015806106f4575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561072b576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f80610790835f0151610c9b565b9150915060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b81526004016107f0929190611618565b5f604051808303815f87803b158015610807575f80fd5b505af1158015610819573d5f803e3d5ffd5b505050506001935050505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f80838381019061085d91906113ef565b90506003545f541080156108bb575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610960575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de825f01516040518263ffffffff1660e01b815260040161091f9190611670565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e91906116c6565b155b91505092915050565b610971610b9e565b63389a75e1600c52805f526020600c20805442111561099757636f5e88185f526004601cfd5b5f8155506109a481610bd5565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109e2610b9e565b8060601b6109f757637448fbae5f526004601cfd5b610a0081610bd5565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a8e5750610a8d82610dba565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610ad0610e23565b15610b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b0a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610b9b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610bd3576382b429005f526004601cfd5b565b610bdd610e23565b15610c42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610c98565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610cba57610cb961117d565b5b604051908082528060200260200182016040528015610ce85781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610d0757610d0661117d565b5b604051908082528060200260200182016040528015610d355781602001602082028036833780820191505090505b50905084825f81518110610d4c57610d4b6116f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610d9b57610d9a6116f1565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6c81610e38565b8114610e76575f80fd5b50565b5f81359050610e8781610e63565b92915050565b5f60208284031215610ea257610ea1610e30565b5b5f610eaf84828501610e79565b91505092915050565b5f8115159050919050565b610ecc81610eb8565b82525050565b5f602082019050610ee55f830184610ec3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f0c57610f0b610eeb565b5b8235905067ffffffffffffffff811115610f2957610f28610eef565b5b602083019150836001820283011115610f4557610f44610ef3565b5b9250929050565b5f8060208385031215610f6257610f61610e30565b5b5f83013567ffffffffffffffff811115610f7f57610f7e610e34565b5b610f8b85828601610ef7565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fd982610f97565b610fe38185610fa1565b9350610ff3818560208601610fb1565b610ffc81610fbf565b840191505092915050565b5f6020820190508181035f83015261101f8184610fcf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61106961106461105f84611027565b611046565b611027565b9050919050565b5f61107a8261104f565b9050919050565b5f61108b82611070565b9050919050565b61109b81611081565b82525050565b5f6020820190506110b45f830184611092565b92915050565b5f6110c482611027565b9050919050565b6110d4816110ba565b82525050565b5f6020820190506110ed5f8301846110cb565b92915050565b5f819050919050565b611105816110f3565b82525050565b5f60208201905061111e5f8301846110fc565b92915050565b61112d816110ba565b8114611137575f80fd5b50565b5f8135905061114881611124565b92915050565b5f6020828403121561116357611162610e30565b5b5f6111708482850161113a565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111b382610fbf565b810181811067ffffffffffffffff821117156111d2576111d161117d565b5b80604052505050565b5f6111e4610e27565b90506111f082826111aa565b919050565b5f80fd5b5f611203826110ba565b9050919050565b611213816111f9565b811461121d575f80fd5b50565b5f8135905061122e8161120a565b92915050565b61123d816110f3565b8114611247575f80fd5b50565b5f8135905061125881611234565b92915050565b5f6040828403121561127357611272611179565b5b61127d60406111db565b90505f61128c84828501611220565b5f83015250602061129f8482850161124a565b60208301525092915050565b5f604082840312156112c0576112bf610e30565b5b5f6112cd8482850161125e565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112f4576112f361117d565b5b6112fd82610fbf565b9050602081019050919050565b828183375f83830152505050565b5f61132a611325846112da565b6111db565b905082815260208101848484011115611346576113456112d6565b5b61135184828561130a565b509392505050565b5f82601f83011261136d5761136c610eeb565b5b813561137d848260208601611318565b91505092915050565b5f6040828403121561139b5761139a611179565b5b6113a560406111db565b90505f6113b48482850161113a565b5f83015250602082013567ffffffffffffffff8111156113d7576113d66111f5565b5b6113e384828501611359565b60208301525092915050565b5f6020828403121561140457611403610e30565b5b5f82013567ffffffffffffffff81111561142157611420610e34565b5b61142d84828501611386565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61146d826110f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361149f5761149e611436565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114dc816110ba565b82525050565b5f6114ed83836114d3565b60208301905092915050565b5f602082019050919050565b5f61150f826114aa565b61151981856114b4565b9350611524836114c4565b805f5b8381101561155457815161153b88826114e2565b9750611546836114f9565b925050600181019050611527565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61159381610eb8565b82525050565b5f6115a4838361158a565b60208301905092915050565b5f602082019050919050565b5f6115c682611561565b6115d0818561156b565b93506115db8361157b565b805f5b8381101561160b5781516115f28882611599565b97506115fd836115b0565b9250506001810190506115de565b5085935050505092915050565b5f6040820190508181035f8301526116308185611505565b9050818103602083015261164481846115bc565b90509392505050565b50565b5f61165b5f83610fa1565b91506116668261164d565b5f82019050919050565b5f6040820190506116835f8301846110cb565b818103602083015261169481611650565b905092915050565b6116a581610eb8565b81146116af575f80fd5b50565b5f815190506116c08161169c565b92915050565b5f602082840312156116db576116da610e30565b5b5f6116e8848285016116b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122083d54774cb29726df516d619eb145b34471849b496d1f77c14ec02f035cc0aab64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1754 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xFD JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x31B JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x38F JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2B5 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x87B9D25C EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E9 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x16F JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0xE8D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH2 0x444 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x495 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x575 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B3 PUSH2 0x5CC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BD PUSH2 0x605 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x618 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x10A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH2 0x63D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x10DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x665 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x263 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x66B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x270 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x284 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x29F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29A SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AC SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x305 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x84C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x312 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x969 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x35D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x358 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36A SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x388 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0xA03 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43D JUMPI POP PUSH2 0x43C DUP3 PUSH2 0xA1C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x44D PUSH2 0xA95 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x49E PUSH2 0xA9F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4C7 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4E1 SWAP2 SWAP1 PUSH2 0x12AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4EC CALLER PUSH2 0xAC8 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x591 JUMPI PUSH2 0x590 PUSH2 0x117D 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 0x5C3 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x60D PUSH2 0xB9E JUMP JUMPDEST PUSH2 0x616 PUSH0 PUSH2 0xBD5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x674 PUSH2 0xB9E JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x684 SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x69A SWAP1 PUSH2 0x1463 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE LT ISZERO DUP1 PUSH2 0x6F4 JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x72B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP1 PUSH2 0x790 DUP4 PUSH0 ADD MLOAD PUSH2 0xC9B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3ABB0604 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x1618 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x807 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x819 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x85D SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT DUP1 ISZERO PUSH2 0x8BB JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x960 JUMPI POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3F756DE DUP3 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91F SWAP2 SWAP1 PUSH2 0x1670 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x95E SWAP2 SWAP1 PUSH2 0x16C6 JUMP JUMPDEST ISZERO JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x971 PUSH2 0xB9E JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x997 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x9A4 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9E2 PUSH2 0xB9E JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x9F7 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xA00 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA8E JUMPI POP PUSH2 0xA8D DUP3 PUSH2 0xDBA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD0 PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xB48 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB0A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xB9B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xBD3 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xBDD PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xC42 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xC98 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCBA JUMPI PUSH2 0xCB9 PUSH2 0x117D 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 0xCE8 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 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0x117D 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 0xD35 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 DUP5 DUP3 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD4C JUMPI PUSH2 0xD4B PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x1 DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD9B JUMPI PUSH2 0xD9A PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE38 JUMP JUMPDEST DUP2 EQ PUSH2 0xE76 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE87 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA2 JUMPI PUSH2 0xEA1 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEAF DUP5 DUP3 DUP6 ADD PUSH2 0xE79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xECC DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE5 PUSH0 DUP4 ADD DUP5 PUSH2 0xEC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF0C JUMPI PUSH2 0xF0B PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF29 JUMPI PUSH2 0xF28 PUSH2 0xEEF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0xEF3 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF7F JUMPI PUSH2 0xF7E PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0xF8B DUP6 DUP3 DUP7 ADD PUSH2 0xEF7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFD9 DUP3 PUSH2 0xF97 JUMP JUMPDEST PUSH2 0xFE3 DUP2 DUP6 PUSH2 0xFA1 JUMP JUMPDEST SWAP4 POP PUSH2 0xFF3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFB1 JUMP JUMPDEST PUSH2 0xFFC DUP2 PUSH2 0xFBF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x101F DUP2 DUP5 PUSH2 0xFCF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1069 PUSH2 0x1064 PUSH2 0x105F DUP5 PUSH2 0x1027 JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x107A DUP3 PUSH2 0x104F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108B DUP3 PUSH2 0x1070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x109B DUP2 PUSH2 0x1081 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1092 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10C4 DUP3 PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10D4 DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10ED PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1105 DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x111E PUSH0 DUP4 ADD DUP5 PUSH2 0x10FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x112D DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP2 EQ PUSH2 0x1137 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1148 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1163 JUMPI PUSH2 0x1162 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1170 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11B3 DUP3 PUSH2 0xFBF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11D2 JUMPI PUSH2 0x11D1 PUSH2 0x117D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11E4 PUSH2 0xE27 JUMP JUMPDEST SWAP1 POP PUSH2 0x11F0 DUP3 DUP3 PUSH2 0x11AA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1203 DUP3 PUSH2 0x10BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1213 DUP2 PUSH2 0x11F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x121D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122E DUP2 PUSH2 0x120A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x123D DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1247 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1258 DUP2 PUSH2 0x1234 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1273 JUMPI PUSH2 0x1272 PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x127D PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x128C DUP5 DUP3 DUP6 ADD PUSH2 0x1220 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x129F DUP5 DUP3 DUP6 ADD PUSH2 0x124A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12C0 JUMPI PUSH2 0x12BF PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CD DUP5 DUP3 DUP6 ADD PUSH2 0x125E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12F4 JUMPI PUSH2 0x12F3 PUSH2 0x117D JUMP JUMPDEST JUMPDEST PUSH2 0x12FD DUP3 PUSH2 0xFBF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x132A PUSH2 0x1325 DUP5 PUSH2 0x12DA JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1346 JUMPI PUSH2 0x1345 PUSH2 0x12D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1351 DUP5 DUP3 DUP6 PUSH2 0x130A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x136D JUMPI PUSH2 0x136C PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x137D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1318 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x139B JUMPI PUSH2 0x139A PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x13A5 PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x13B4 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13D7 JUMPI PUSH2 0x13D6 PUSH2 0x11F5 JUMP JUMPDEST JUMPDEST PUSH2 0x13E3 DUP5 DUP3 DUP6 ADD PUSH2 0x1359 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1404 JUMPI PUSH2 0x1403 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1421 JUMPI PUSH2 0x1420 PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0x142D DUP5 DUP3 DUP6 ADD PUSH2 0x1386 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x146D DUP3 PUSH2 0x10F3 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x149F JUMPI PUSH2 0x149E PUSH2 0x1436 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14DC DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14ED DUP4 DUP4 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x150F DUP3 PUSH2 0x14AA JUMP JUMPDEST PUSH2 0x1519 DUP2 DUP6 PUSH2 0x14B4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1524 DUP4 PUSH2 0x14C4 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1554 JUMPI DUP2 MLOAD PUSH2 0x153B DUP9 DUP3 PUSH2 0x14E2 JUMP JUMPDEST SWAP8 POP PUSH2 0x1546 DUP4 PUSH2 0x14F9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1527 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1593 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x158A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x15C6 DUP3 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x15D0 DUP2 DUP6 PUSH2 0x156B JUMP JUMPDEST SWAP4 POP PUSH2 0x15DB DUP4 PUSH2 0x157B JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x160B JUMPI DUP2 MLOAD PUSH2 0x15F2 DUP9 DUP3 PUSH2 0x1599 JUMP JUMPDEST SWAP8 POP PUSH2 0x15FD DUP4 PUSH2 0x15B0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x15DE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1630 DUP2 DUP6 PUSH2 0x1505 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1644 DUP2 DUP5 PUSH2 0x15BC JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x165B PUSH0 DUP4 PUSH2 0xFA1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1666 DUP3 PUSH2 0x164D JUMP JUMPDEST PUSH0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1683 PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1694 DUP2 PUSH2 0x1650 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16A5 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0x16AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x16C0 DUP2 PUSH2 0x169C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DB JUMPI PUSH2 0x16DA PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16E8 DUP5 DUP3 DUP6 ADD PUSH2 0x16B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD5 SELFBALANCE PUSH21 0xCB29726DF516D619EB145B34471849B496D1F77C14 0xEC MUL CREATE CALLDATALOAD 0xCC EXP 0xAB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"646:2945:40:-:0;;;1285:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;1309:22:40;:20;;;:22;;:::i;:::-;646:2945;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;646:2945:40:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":2974,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3619,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2719,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2760,"id":6302,"parameterSlots":1,"returnSlots":0},"@_makeAllowListPayload_15661":{"entryPoint":3227,"id":15661,"parameterSlots":1,"returnSlots":2},"@_ownershipHandoverValidFor_6333":{"entryPoint":2709,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":3029,"id":6316,"parameterSlots":1,"returnSlots":0},"@allowList_15432":{"entryPoint":1560,"id":15432,"parameterSlots":0,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1484,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_15542":{"entryPoint":1643,"id":15542,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":2090,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":2119,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2409,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_15478":{"entryPoint":1173,"id":15478,"parameterSlots":2,"returnSlots":0},"@isClaimable_15595":{"entryPoint":2124,"id":15595,"parameterSlots":2,"returnSlots":1},"@limit_15435":{"entryPoint":1637,"id":15435,"parameterSlots":0,"returnSlots":0},"@owner_6404":{"entryPoint":1597,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2563,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_15610":{"entryPoint":1397,"id":15610,"parameterSlots":2,"returnSlots":1},"@reclaim_15557":{"entryPoint":2471,"id":15557,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1541,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1092,"id":6376,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":971,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":2588,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":3514,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":2522,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4888,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4410,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":5810,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3831,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4953,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_SimpleAllowList_$13307":{"entryPoint":4640,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":4998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$15428_memory_ptr":{"entryPoint":4702,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4682,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4430,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5830,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3725,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3916,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":5103,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$15428_memory_ptr":{"entryPoint":4779,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_address_to_t_address":{"entryPoint":5346,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_bool_to_t_bool":{"entryPoint":5529,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":5331,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4299,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack":{"entryPoint":5381,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack":{"entryPoint":5564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool":{"entryPoint":5514,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3779,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4047,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack":{"entryPoint":4242,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack":{"entryPoint":5712,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4348,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4314,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5744,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":5656,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3794,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4103,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_SimpleAllowList_$13307__to_t_address__fromStack_reversed":{"entryPoint":4257,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4363,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4571,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3623,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4826,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5316,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5499,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5290,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5473,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":3991,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5369,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5552,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack":{"entryPoint":5300,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack":{"entryPoint":5483,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4001,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4282,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3768,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3640,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_SimpleAllowList_$13307":{"entryPoint":4601,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4135,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4339,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_SimpleAllowList_$13307_to_t_address":{"entryPoint":4225,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":4208,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":4175,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4874,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4017,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4522,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":4166,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":5219,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5174,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":5873,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4477,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3823,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3819,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4473,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":4597,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3827,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4822,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3636,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3632,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4031,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470":{"entryPoint":5709,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4388,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":5788,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3683,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_SimpleAllowList_$13307":{"entryPoint":4618,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4660,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:18301:53","nodeType":"YulBlock","src":"0:18301:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1974:478:53","nodeType":"YulBlock","src":"1974:478:53","statements":[{"body":{"nativeSrc":"2023:83:53","nodeType":"YulBlock","src":"2023:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:53","nodeType":"YulIdentifier","src":"2025:77:53"},"nativeSrc":"2025:79:53","nodeType":"YulFunctionCall","src":"2025:79:53"},"nativeSrc":"2025:79:53","nodeType":"YulExpressionStatement","src":"2025:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:53","nodeType":"YulIdentifier","src":"2002:6:53"},{"kind":"number","nativeSrc":"2010:4:53","nodeType":"YulLiteral","src":"2010:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"},{"name":"end","nativeSrc":"2017:3:53","nodeType":"YulIdentifier","src":"2017:3:53"}],"functionName":{"name":"slt","nativeSrc":"1994:3:53","nodeType":"YulIdentifier","src":"1994:3:53"},"nativeSrc":"1994:27:53","nodeType":"YulFunctionCall","src":"1994:27:53"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:53","nodeType":"YulIdentifier","src":"1987:6:53"},"nativeSrc":"1987:35:53","nodeType":"YulFunctionCall","src":"1987:35:53"},"nativeSrc":"1984:122:53","nodeType":"YulIf","src":"1984:122:53"},{"nativeSrc":"2115:30:53","nodeType":"YulAssignment","src":"2115:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:53","nodeType":"YulIdentifier","src":"2138:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:53","nodeType":"YulIdentifier","src":"2125:12:53"},"nativeSrc":"2125:20:53","nodeType":"YulFunctionCall","src":"2125:20:53"},"variableNames":[{"name":"length","nativeSrc":"2115:6:53","nodeType":"YulIdentifier","src":"2115:6:53"}]},{"body":{"nativeSrc":"2188:83:53","nodeType":"YulBlock","src":"2188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:53","nodeType":"YulIdentifier","src":"2190:77:53"},"nativeSrc":"2190:79:53","nodeType":"YulFunctionCall","src":"2190:79:53"},"nativeSrc":"2190:79:53","nodeType":"YulExpressionStatement","src":"2190:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:53","nodeType":"YulIdentifier","src":"2160:6:53"},{"kind":"number","nativeSrc":"2168:18:53","nodeType":"YulLiteral","src":"2168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:53","nodeType":"YulIdentifier","src":"2157:2:53"},"nativeSrc":"2157:30:53","nodeType":"YulFunctionCall","src":"2157:30:53"},"nativeSrc":"2154:117:53","nodeType":"YulIf","src":"2154:117:53"},{"nativeSrc":"2280:29:53","nodeType":"YulAssignment","src":"2280:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:53","nodeType":"YulIdentifier","src":"2296:6:53"},{"kind":"number","nativeSrc":"2304:4:53","nodeType":"YulLiteral","src":"2304:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:53","nodeType":"YulIdentifier","src":"2292:3:53"},"nativeSrc":"2292:17:53","nodeType":"YulFunctionCall","src":"2292:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:53","nodeType":"YulIdentifier","src":"2280:8:53"}]},{"body":{"nativeSrc":"2363:83:53","nodeType":"YulBlock","src":"2363:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:53","nodeType":"YulIdentifier","src":"2365:77:53"},"nativeSrc":"2365:79:53","nodeType":"YulFunctionCall","src":"2365:79:53"},"nativeSrc":"2365:79:53","nodeType":"YulExpressionStatement","src":"2365:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:53","nodeType":"YulIdentifier","src":"2328:8:53"},{"arguments":[{"name":"length","nativeSrc":"2342:6:53","nodeType":"YulIdentifier","src":"2342:6:53"},{"kind":"number","nativeSrc":"2350:4:53","nodeType":"YulLiteral","src":"2350:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:53","nodeType":"YulIdentifier","src":"2338:3:53"},"nativeSrc":"2338:17:53","nodeType":"YulFunctionCall","src":"2338:17:53"}],"functionName":{"name":"add","nativeSrc":"2324:3:53","nodeType":"YulIdentifier","src":"2324:3:53"},"nativeSrc":"2324:32:53","nodeType":"YulFunctionCall","src":"2324:32:53"},{"name":"end","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"}],"functionName":{"name":"gt","nativeSrc":"2321:2:53","nodeType":"YulIdentifier","src":"2321:2:53"},"nativeSrc":"2321:41:53","nodeType":"YulFunctionCall","src":"2321:41:53"},"nativeSrc":"2318:128:53","nodeType":"YulIf","src":"2318:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:53","nodeType":"YulTypedName","src":"1941:6:53","type":""},{"name":"end","nativeSrc":"1949:3:53","nodeType":"YulTypedName","src":"1949:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:53","nodeType":"YulTypedName","src":"1957:8:53","type":""},{"name":"length","nativeSrc":"1967:6:53","nodeType":"YulTypedName","src":"1967:6:53","type":""}],"src":"1900:552:53"},{"body":{"nativeSrc":"2543:442:53","nodeType":"YulBlock","src":"2543:442:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:296:53","nodeType":"YulBlock","src":"2682:296:53","statements":[{"nativeSrc":"2697:45:53","nodeType":"YulVariableDeclaration","src":"2697:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:53","nodeType":"YulIdentifier","src":"2728:9:53"},{"kind":"number","nativeSrc":"2739:1:53","nodeType":"YulLiteral","src":"2739:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:53","nodeType":"YulIdentifier","src":"2724:3:53"},"nativeSrc":"2724:17:53","nodeType":"YulFunctionCall","src":"2724:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:53","nodeType":"YulIdentifier","src":"2711:12:53"},"nativeSrc":"2711:31:53","nodeType":"YulFunctionCall","src":"2711:31:53"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"body":{"nativeSrc":"2789:83:53","nodeType":"YulBlock","src":"2789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:53","nodeType":"YulIdentifier","src":"2791:77:53"},"nativeSrc":"2791:79:53","nodeType":"YulFunctionCall","src":"2791:79:53"},"nativeSrc":"2791:79:53","nodeType":"YulExpressionStatement","src":"2791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},{"kind":"number","nativeSrc":"2769:18:53","nodeType":"YulLiteral","src":"2769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:53","nodeType":"YulIdentifier","src":"2758:2:53"},"nativeSrc":"2758:30:53","nodeType":"YulFunctionCall","src":"2758:30:53"},"nativeSrc":"2755:117:53","nodeType":"YulIf","src":"2755:117:53"},{"nativeSrc":"2886:82:53","nodeType":"YulAssignment","src":"2886:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"},{"name":"offset","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"}],"functionName":{"name":"add","nativeSrc":"2936:3:53","nodeType":"YulIdentifier","src":"2936:3:53"},"nativeSrc":"2936:22:53","nodeType":"YulFunctionCall","src":"2936:22:53"},{"name":"dataEnd","nativeSrc":"2960:7:53","nodeType":"YulIdentifier","src":"2960:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:53","nodeType":"YulIdentifier","src":"2904:31:53"},"nativeSrc":"2904:64:53","nodeType":"YulFunctionCall","src":"2904:64:53"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:53","nodeType":"YulIdentifier","src":"2886:6:53"},{"name":"value1","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:53","nodeType":"YulTypedName","src":"2505:9:53","type":""},{"name":"dataEnd","nativeSrc":"2516:7:53","nodeType":"YulTypedName","src":"2516:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:53","nodeType":"YulTypedName","src":"2528:6:53","type":""},{"name":"value1","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2458:527:53"},{"body":{"nativeSrc":"3049:40:53","nodeType":"YulBlock","src":"3049:40:53","statements":[{"nativeSrc":"3060:22:53","nodeType":"YulAssignment","src":"3060:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"}],"functionName":{"name":"mload","nativeSrc":"3070:5:53","nodeType":"YulIdentifier","src":"3070:5:53"},"nativeSrc":"3070:12:53","nodeType":"YulFunctionCall","src":"3070:12:53"},"variableNames":[{"name":"length","nativeSrc":"3060:6:53","nodeType":"YulIdentifier","src":"3060:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:53","nodeType":"YulTypedName","src":"3032:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:53","nodeType":"YulTypedName","src":"3042:6:53","type":""}],"src":"2991:98:53"},{"body":{"nativeSrc":"3190:73:53","nodeType":"YulBlock","src":"3190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"},{"name":"length","nativeSrc":"3212:6:53","nodeType":"YulIdentifier","src":"3212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:53","nodeType":"YulIdentifier","src":"3200:6:53"},"nativeSrc":"3200:19:53","nodeType":"YulFunctionCall","src":"3200:19:53"},"nativeSrc":"3200:19:53","nodeType":"YulExpressionStatement","src":"3200:19:53"},{"nativeSrc":"3228:29:53","nodeType":"YulAssignment","src":"3228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:53","nodeType":"YulIdentifier","src":"3247:3:53"},{"kind":"number","nativeSrc":"3252:4:53","nodeType":"YulLiteral","src":"3252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:53","nodeType":"YulIdentifier","src":"3243:3:53"},"nativeSrc":"3243:14:53","nodeType":"YulFunctionCall","src":"3243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:53","nodeType":"YulIdentifier","src":"3228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:53","nodeType":"YulTypedName","src":"3162:3:53","type":""},{"name":"length","nativeSrc":"3167:6:53","nodeType":"YulTypedName","src":"3167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:53","nodeType":"YulTypedName","src":"3178:11:53","type":""}],"src":"3095:168:53"},{"body":{"nativeSrc":"3331:77:53","nodeType":"YulBlock","src":"3331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:53","nodeType":"YulIdentifier","src":"3348:3:53"},{"name":"src","nativeSrc":"3353:3:53","nodeType":"YulIdentifier","src":"3353:3:53"},{"name":"length","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:53","nodeType":"YulIdentifier","src":"3342:5:53"},"nativeSrc":"3342:23:53","nodeType":"YulFunctionCall","src":"3342:23:53"},"nativeSrc":"3342:23:53","nodeType":"YulExpressionStatement","src":"3342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:53","nodeType":"YulIdentifier","src":"3385:3:53"},{"name":"length","nativeSrc":"3390:6:53","nodeType":"YulIdentifier","src":"3390:6:53"}],"functionName":{"name":"add","nativeSrc":"3381:3:53","nodeType":"YulIdentifier","src":"3381:3:53"},"nativeSrc":"3381:16:53","nodeType":"YulFunctionCall","src":"3381:16:53"},{"kind":"number","nativeSrc":"3399:1:53","nodeType":"YulLiteral","src":"3399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:53","nodeType":"YulIdentifier","src":"3374:6:53"},"nativeSrc":"3374:27:53","nodeType":"YulFunctionCall","src":"3374:27:53"},"nativeSrc":"3374:27:53","nodeType":"YulExpressionStatement","src":"3374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:53","nodeType":"YulTypedName","src":"3313:3:53","type":""},{"name":"dst","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""},{"name":"length","nativeSrc":"3323:6:53","nodeType":"YulTypedName","src":"3323:6:53","type":""}],"src":"3269:139:53"},{"body":{"nativeSrc":"3462:54:53","nodeType":"YulBlock","src":"3462:54:53","statements":[{"nativeSrc":"3472:38:53","nodeType":"YulAssignment","src":"3472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:53","nodeType":"YulIdentifier","src":"3490:5:53"},{"kind":"number","nativeSrc":"3497:2:53","nodeType":"YulLiteral","src":"3497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:53","nodeType":"YulIdentifier","src":"3486:3:53"},"nativeSrc":"3486:14:53","nodeType":"YulFunctionCall","src":"3486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:53","nodeType":"YulLiteral","src":"3506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:53","nodeType":"YulIdentifier","src":"3502:3:53"},"nativeSrc":"3502:7:53","nodeType":"YulFunctionCall","src":"3502:7:53"}],"functionName":{"name":"and","nativeSrc":"3482:3:53","nodeType":"YulIdentifier","src":"3482:3:53"},"nativeSrc":"3482:28:53","nodeType":"YulFunctionCall","src":"3482:28:53"},"variableNames":[{"name":"result","nativeSrc":"3472:6:53","nodeType":"YulIdentifier","src":"3472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:53","nodeType":"YulTypedName","src":"3445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:53","nodeType":"YulTypedName","src":"3455:6:53","type":""}],"src":"3414:102:53"},{"body":{"nativeSrc":"3612:283:53","nodeType":"YulBlock","src":"3612:283:53","statements":[{"nativeSrc":"3622:52:53","nodeType":"YulVariableDeclaration","src":"3622:52:53","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:53","nodeType":"YulIdentifier","src":"3668:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:53","nodeType":"YulIdentifier","src":"3636:31:53"},"nativeSrc":"3636:38:53","nodeType":"YulFunctionCall","src":"3636:38:53"},"variables":[{"name":"length","nativeSrc":"3626:6:53","nodeType":"YulTypedName","src":"3626:6:53","type":""}]},{"nativeSrc":"3683:77:53","nodeType":"YulAssignment","src":"3683:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},{"name":"length","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:53","nodeType":"YulIdentifier","src":"3690:57:53"},"nativeSrc":"3690:70:53","nodeType":"YulFunctionCall","src":"3690:70:53"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:53","nodeType":"YulIdentifier","src":"3683:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:53","nodeType":"YulIdentifier","src":"3808:5:53"},{"kind":"number","nativeSrc":"3815:4:53","nodeType":"YulLiteral","src":"3815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:16:53","nodeType":"YulFunctionCall","src":"3804:16:53"},{"name":"pos","nativeSrc":"3822:3:53","nodeType":"YulIdentifier","src":"3822:3:53"},{"name":"length","nativeSrc":"3827:6:53","nodeType":"YulIdentifier","src":"3827:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:53","nodeType":"YulIdentifier","src":"3769:34:53"},"nativeSrc":"3769:65:53","nodeType":"YulFunctionCall","src":"3769:65:53"},"nativeSrc":"3769:65:53","nodeType":"YulExpressionStatement","src":"3769:65:53"},{"nativeSrc":"3843:46:53","nodeType":"YulAssignment","src":"3843:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:53","nodeType":"YulIdentifier","src":"3854:3:53"},{"arguments":[{"name":"length","nativeSrc":"3881:6:53","nodeType":"YulIdentifier","src":"3881:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:53","nodeType":"YulIdentifier","src":"3859:21:53"},"nativeSrc":"3859:29:53","nodeType":"YulFunctionCall","src":"3859:29:53"}],"functionName":{"name":"add","nativeSrc":"3850:3:53","nodeType":"YulIdentifier","src":"3850:3:53"},"nativeSrc":"3850:39:53","nodeType":"YulFunctionCall","src":"3850:39:53"},"variableNames":[{"name":"end","nativeSrc":"3843:3:53","nodeType":"YulIdentifier","src":"3843:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:53","nodeType":"YulTypedName","src":"3593:5:53","type":""},{"name":"pos","nativeSrc":"3600:3:53","nodeType":"YulTypedName","src":"3600:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:53","nodeType":"YulTypedName","src":"3608:3:53","type":""}],"src":"3522:373:53"},{"body":{"nativeSrc":"4017:193:53","nodeType":"YulBlock","src":"4017:193:53","statements":[{"nativeSrc":"4027:26:53","nodeType":"YulAssignment","src":"4027:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4039:9:53","nodeType":"YulIdentifier","src":"4039:9:53"},{"kind":"number","nativeSrc":"4050:2:53","nodeType":"YulLiteral","src":"4050:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4035:3:53","nodeType":"YulIdentifier","src":"4035:3:53"},"nativeSrc":"4035:18:53","nodeType":"YulFunctionCall","src":"4035:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4027:4:53","nodeType":"YulIdentifier","src":"4027:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4074:9:53","nodeType":"YulIdentifier","src":"4074:9:53"},{"kind":"number","nativeSrc":"4085:1:53","nodeType":"YulLiteral","src":"4085:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4070:3:53","nodeType":"YulIdentifier","src":"4070:3:53"},"nativeSrc":"4070:17:53","nodeType":"YulFunctionCall","src":"4070:17:53"},{"arguments":[{"name":"tail","nativeSrc":"4093:4:53","nodeType":"YulIdentifier","src":"4093:4:53"},{"name":"headStart","nativeSrc":"4099:9:53","nodeType":"YulIdentifier","src":"4099:9:53"}],"functionName":{"name":"sub","nativeSrc":"4089:3:53","nodeType":"YulIdentifier","src":"4089:3:53"},"nativeSrc":"4089:20:53","nodeType":"YulFunctionCall","src":"4089:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4063:6:53","nodeType":"YulIdentifier","src":"4063:6:53"},"nativeSrc":"4063:47:53","nodeType":"YulFunctionCall","src":"4063:47:53"},"nativeSrc":"4063:47:53","nodeType":"YulExpressionStatement","src":"4063:47:53"},{"nativeSrc":"4119:84:53","nodeType":"YulAssignment","src":"4119:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"4189:6:53","nodeType":"YulIdentifier","src":"4189:6:53"},{"name":"tail","nativeSrc":"4198:4:53","nodeType":"YulIdentifier","src":"4198:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4127:61:53","nodeType":"YulIdentifier","src":"4127:61:53"},"nativeSrc":"4127:76:53","nodeType":"YulFunctionCall","src":"4127:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4119:4:53","nodeType":"YulIdentifier","src":"4119:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3989:9:53","nodeType":"YulTypedName","src":"3989:9:53","type":""},{"name":"value0","nativeSrc":"4001:6:53","nodeType":"YulTypedName","src":"4001:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4012:4:53","nodeType":"YulTypedName","src":"4012:4:53","type":""}],"src":"3901:309:53"},{"body":{"nativeSrc":"4261:81:53","nodeType":"YulBlock","src":"4261:81:53","statements":[{"nativeSrc":"4271:65:53","nodeType":"YulAssignment","src":"4271:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4286:5:53","nodeType":"YulIdentifier","src":"4286:5:53"},{"kind":"number","nativeSrc":"4293:42:53","nodeType":"YulLiteral","src":"4293:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4282:3:53","nodeType":"YulIdentifier","src":"4282:3:53"},"nativeSrc":"4282:54:53","nodeType":"YulFunctionCall","src":"4282:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4271:7:53","nodeType":"YulIdentifier","src":"4271:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4216:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4243:5:53","nodeType":"YulTypedName","src":"4243:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4253:7:53","nodeType":"YulTypedName","src":"4253:7:53","type":""}],"src":"4216:126:53"},{"body":{"nativeSrc":"4380:28:53","nodeType":"YulBlock","src":"4380:28:53","statements":[{"nativeSrc":"4390:12:53","nodeType":"YulAssignment","src":"4390:12:53","value":{"name":"value","nativeSrc":"4397:5:53","nodeType":"YulIdentifier","src":"4397:5:53"},"variableNames":[{"name":"ret","nativeSrc":"4390:3:53","nodeType":"YulIdentifier","src":"4390:3:53"}]}]},"name":"identity","nativeSrc":"4348:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4366:5:53","nodeType":"YulTypedName","src":"4366:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4376:3:53","nodeType":"YulTypedName","src":"4376:3:53","type":""}],"src":"4348:60:53"},{"body":{"nativeSrc":"4474:82:53","nodeType":"YulBlock","src":"4474:82:53","statements":[{"nativeSrc":"4484:66:53","nodeType":"YulAssignment","src":"4484:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4542:5:53","nodeType":"YulIdentifier","src":"4542:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4524:17:53","nodeType":"YulIdentifier","src":"4524:17:53"},"nativeSrc":"4524:24:53","nodeType":"YulFunctionCall","src":"4524:24:53"}],"functionName":{"name":"identity","nativeSrc":"4515:8:53","nodeType":"YulIdentifier","src":"4515:8:53"},"nativeSrc":"4515:34:53","nodeType":"YulFunctionCall","src":"4515:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4497:17:53","nodeType":"YulIdentifier","src":"4497:17:53"},"nativeSrc":"4497:53:53","nodeType":"YulFunctionCall","src":"4497:53:53"},"variableNames":[{"name":"converted","nativeSrc":"4484:9:53","nodeType":"YulIdentifier","src":"4484:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4414:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4454:5:53","nodeType":"YulTypedName","src":"4454:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4464:9:53","nodeType":"YulTypedName","src":"4464:9:53","type":""}],"src":"4414:142:53"},{"body":{"nativeSrc":"4622:66:53","nodeType":"YulBlock","src":"4622:66:53","statements":[{"nativeSrc":"4632:50:53","nodeType":"YulAssignment","src":"4632:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4676:5:53","nodeType":"YulIdentifier","src":"4676:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4645:30:53","nodeType":"YulIdentifier","src":"4645:30:53"},"nativeSrc":"4645:37:53","nodeType":"YulFunctionCall","src":"4645:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4632:9:53","nodeType":"YulIdentifier","src":"4632:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"4562:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4602:5:53","nodeType":"YulTypedName","src":"4602:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4612:9:53","nodeType":"YulTypedName","src":"4612:9:53","type":""}],"src":"4562:126:53"},{"body":{"nativeSrc":"4779:66:53","nodeType":"YulBlock","src":"4779:66:53","statements":[{"nativeSrc":"4789:50:53","nodeType":"YulAssignment","src":"4789:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4833:5:53","nodeType":"YulIdentifier","src":"4833:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4802:30:53","nodeType":"YulIdentifier","src":"4802:30:53"},"nativeSrc":"4802:37:53","nodeType":"YulFunctionCall","src":"4802:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4789:9:53","nodeType":"YulIdentifier","src":"4789:9:53"}]}]},"name":"convert_t_contract$_SimpleAllowList_$13307_to_t_address","nativeSrc":"4694:151:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4759:5:53","nodeType":"YulTypedName","src":"4759:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4769:9:53","nodeType":"YulTypedName","src":"4769:9:53","type":""}],"src":"4694:151:53"},{"body":{"nativeSrc":"4941:91:53","nodeType":"YulBlock","src":"4941:91:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4958:3:53","nodeType":"YulIdentifier","src":"4958:3:53"},{"arguments":[{"name":"value","nativeSrc":"5019:5:53","nodeType":"YulIdentifier","src":"5019:5:53"}],"functionName":{"name":"convert_t_contract$_SimpleAllowList_$13307_to_t_address","nativeSrc":"4963:55:53","nodeType":"YulIdentifier","src":"4963:55:53"},"nativeSrc":"4963:62:53","nodeType":"YulFunctionCall","src":"4963:62:53"}],"functionName":{"name":"mstore","nativeSrc":"4951:6:53","nodeType":"YulIdentifier","src":"4951:6:53"},"nativeSrc":"4951:75:53","nodeType":"YulFunctionCall","src":"4951:75:53"},"nativeSrc":"4951:75:53","nodeType":"YulExpressionStatement","src":"4951:75:53"}]},"name":"abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack","nativeSrc":"4851:181:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4929:5:53","nodeType":"YulTypedName","src":"4929:5:53","type":""},{"name":"pos","nativeSrc":"4936:3:53","nodeType":"YulTypedName","src":"4936:3:53","type":""}],"src":"4851:181:53"},{"body":{"nativeSrc":"5161:149:53","nodeType":"YulBlock","src":"5161:149:53","statements":[{"nativeSrc":"5171:26:53","nodeType":"YulAssignment","src":"5171:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5183:9:53","nodeType":"YulIdentifier","src":"5183:9:53"},{"kind":"number","nativeSrc":"5194:2:53","nodeType":"YulLiteral","src":"5194:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5179:3:53","nodeType":"YulIdentifier","src":"5179:3:53"},"nativeSrc":"5179:18:53","nodeType":"YulFunctionCall","src":"5179:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5171:4:53","nodeType":"YulIdentifier","src":"5171:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5276:6:53","nodeType":"YulIdentifier","src":"5276:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5289:9:53","nodeType":"YulIdentifier","src":"5289:9:53"},{"kind":"number","nativeSrc":"5300:1:53","nodeType":"YulLiteral","src":"5300:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5285:3:53","nodeType":"YulIdentifier","src":"5285:3:53"},"nativeSrc":"5285:17:53","nodeType":"YulFunctionCall","src":"5285:17:53"}],"functionName":{"name":"abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack","nativeSrc":"5207:68:53","nodeType":"YulIdentifier","src":"5207:68:53"},"nativeSrc":"5207:96:53","nodeType":"YulFunctionCall","src":"5207:96:53"},"nativeSrc":"5207:96:53","nodeType":"YulExpressionStatement","src":"5207:96:53"}]},"name":"abi_encode_tuple_t_contract$_SimpleAllowList_$13307__to_t_address__fromStack_reversed","nativeSrc":"5038:272:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5133:9:53","nodeType":"YulTypedName","src":"5133:9:53","type":""},{"name":"value0","nativeSrc":"5145:6:53","nodeType":"YulTypedName","src":"5145:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5156:4:53","nodeType":"YulTypedName","src":"5156:4:53","type":""}],"src":"5038:272:53"},{"body":{"nativeSrc":"5361:51:53","nodeType":"YulBlock","src":"5361:51:53","statements":[{"nativeSrc":"5371:35:53","nodeType":"YulAssignment","src":"5371:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5400:5:53","nodeType":"YulIdentifier","src":"5400:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5382:17:53","nodeType":"YulIdentifier","src":"5382:17:53"},"nativeSrc":"5382:24:53","nodeType":"YulFunctionCall","src":"5382:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5371:7:53","nodeType":"YulIdentifier","src":"5371:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5316:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5343:5:53","nodeType":"YulTypedName","src":"5343:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5353:7:53","nodeType":"YulTypedName","src":"5353:7:53","type":""}],"src":"5316:96:53"},{"body":{"nativeSrc":"5483:53:53","nodeType":"YulBlock","src":"5483:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5500:3:53","nodeType":"YulIdentifier","src":"5500:3:53"},{"arguments":[{"name":"value","nativeSrc":"5523:5:53","nodeType":"YulIdentifier","src":"5523:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5505:17:53","nodeType":"YulIdentifier","src":"5505:17:53"},"nativeSrc":"5505:24:53","nodeType":"YulFunctionCall","src":"5505:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5493:6:53","nodeType":"YulIdentifier","src":"5493:6:53"},"nativeSrc":"5493:37:53","nodeType":"YulFunctionCall","src":"5493:37:53"},"nativeSrc":"5493:37:53","nodeType":"YulExpressionStatement","src":"5493:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5418:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5471:5:53","nodeType":"YulTypedName","src":"5471:5:53","type":""},{"name":"pos","nativeSrc":"5478:3:53","nodeType":"YulTypedName","src":"5478:3:53","type":""}],"src":"5418:118:53"},{"body":{"nativeSrc":"5640:124:53","nodeType":"YulBlock","src":"5640:124:53","statements":[{"nativeSrc":"5650:26:53","nodeType":"YulAssignment","src":"5650:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5662:9:53","nodeType":"YulIdentifier","src":"5662:9:53"},{"kind":"number","nativeSrc":"5673:2:53","nodeType":"YulLiteral","src":"5673:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5658:3:53","nodeType":"YulIdentifier","src":"5658:3:53"},"nativeSrc":"5658:18:53","nodeType":"YulFunctionCall","src":"5658:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5650:4:53","nodeType":"YulIdentifier","src":"5650:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5730:6:53","nodeType":"YulIdentifier","src":"5730:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5743:9:53","nodeType":"YulIdentifier","src":"5743:9:53"},{"kind":"number","nativeSrc":"5754:1:53","nodeType":"YulLiteral","src":"5754:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5739:3:53","nodeType":"YulIdentifier","src":"5739:3:53"},"nativeSrc":"5739:17:53","nodeType":"YulFunctionCall","src":"5739:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5686:43:53","nodeType":"YulIdentifier","src":"5686:43:53"},"nativeSrc":"5686:71:53","nodeType":"YulFunctionCall","src":"5686:71:53"},"nativeSrc":"5686:71:53","nodeType":"YulExpressionStatement","src":"5686:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5542:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5612:9:53","nodeType":"YulTypedName","src":"5612:9:53","type":""},{"name":"value0","nativeSrc":"5624:6:53","nodeType":"YulTypedName","src":"5624:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5635:4:53","nodeType":"YulTypedName","src":"5635:4:53","type":""}],"src":"5542:222:53"},{"body":{"nativeSrc":"5815:32:53","nodeType":"YulBlock","src":"5815:32:53","statements":[{"nativeSrc":"5825:16:53","nodeType":"YulAssignment","src":"5825:16:53","value":{"name":"value","nativeSrc":"5836:5:53","nodeType":"YulIdentifier","src":"5836:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5825:7:53","nodeType":"YulIdentifier","src":"5825:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5770:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5797:5:53","nodeType":"YulTypedName","src":"5797:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5807:7:53","nodeType":"YulTypedName","src":"5807:7:53","type":""}],"src":"5770:77:53"},{"body":{"nativeSrc":"5918:53:53","nodeType":"YulBlock","src":"5918:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5935:3:53","nodeType":"YulIdentifier","src":"5935:3:53"},{"arguments":[{"name":"value","nativeSrc":"5958:5:53","nodeType":"YulIdentifier","src":"5958:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5940:17:53","nodeType":"YulIdentifier","src":"5940:17:53"},"nativeSrc":"5940:24:53","nodeType":"YulFunctionCall","src":"5940:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5928:6:53","nodeType":"YulIdentifier","src":"5928:6:53"},"nativeSrc":"5928:37:53","nodeType":"YulFunctionCall","src":"5928:37:53"},"nativeSrc":"5928:37:53","nodeType":"YulExpressionStatement","src":"5928:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5853:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5906:5:53","nodeType":"YulTypedName","src":"5906:5:53","type":""},{"name":"pos","nativeSrc":"5913:3:53","nodeType":"YulTypedName","src":"5913:3:53","type":""}],"src":"5853:118:53"},{"body":{"nativeSrc":"6075:124:53","nodeType":"YulBlock","src":"6075:124:53","statements":[{"nativeSrc":"6085:26:53","nodeType":"YulAssignment","src":"6085:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6097:9:53","nodeType":"YulIdentifier","src":"6097:9:53"},{"kind":"number","nativeSrc":"6108:2:53","nodeType":"YulLiteral","src":"6108:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6093:3:53","nodeType":"YulIdentifier","src":"6093:3:53"},"nativeSrc":"6093:18:53","nodeType":"YulFunctionCall","src":"6093:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6085:4:53","nodeType":"YulIdentifier","src":"6085:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6165:6:53","nodeType":"YulIdentifier","src":"6165:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6178:9:53","nodeType":"YulIdentifier","src":"6178:9:53"},{"kind":"number","nativeSrc":"6189:1:53","nodeType":"YulLiteral","src":"6189:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6174:3:53","nodeType":"YulIdentifier","src":"6174:3:53"},"nativeSrc":"6174:17:53","nodeType":"YulFunctionCall","src":"6174:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6121:43:53","nodeType":"YulIdentifier","src":"6121:43:53"},"nativeSrc":"6121:71:53","nodeType":"YulFunctionCall","src":"6121:71:53"},"nativeSrc":"6121:71:53","nodeType":"YulExpressionStatement","src":"6121:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5977:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6047:9:53","nodeType":"YulTypedName","src":"6047:9:53","type":""},{"name":"value0","nativeSrc":"6059:6:53","nodeType":"YulTypedName","src":"6059:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6070:4:53","nodeType":"YulTypedName","src":"6070:4:53","type":""}],"src":"5977:222:53"},{"body":{"nativeSrc":"6248:79:53","nodeType":"YulBlock","src":"6248:79:53","statements":[{"body":{"nativeSrc":"6305:16:53","nodeType":"YulBlock","src":"6305:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6314:1:53","nodeType":"YulLiteral","src":"6314:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6317:1:53","nodeType":"YulLiteral","src":"6317:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6307:6:53","nodeType":"YulIdentifier","src":"6307:6:53"},"nativeSrc":"6307:12:53","nodeType":"YulFunctionCall","src":"6307:12:53"},"nativeSrc":"6307:12:53","nodeType":"YulExpressionStatement","src":"6307:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6271:5:53","nodeType":"YulIdentifier","src":"6271:5:53"},{"arguments":[{"name":"value","nativeSrc":"6296:5:53","nodeType":"YulIdentifier","src":"6296:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6278:17:53","nodeType":"YulIdentifier","src":"6278:17:53"},"nativeSrc":"6278:24:53","nodeType":"YulFunctionCall","src":"6278:24:53"}],"functionName":{"name":"eq","nativeSrc":"6268:2:53","nodeType":"YulIdentifier","src":"6268:2:53"},"nativeSrc":"6268:35:53","nodeType":"YulFunctionCall","src":"6268:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6261:6:53","nodeType":"YulIdentifier","src":"6261:6:53"},"nativeSrc":"6261:43:53","nodeType":"YulFunctionCall","src":"6261:43:53"},"nativeSrc":"6258:63:53","nodeType":"YulIf","src":"6258:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"6205:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6241:5:53","nodeType":"YulTypedName","src":"6241:5:53","type":""}],"src":"6205:122:53"},{"body":{"nativeSrc":"6385:87:53","nodeType":"YulBlock","src":"6385:87:53","statements":[{"nativeSrc":"6395:29:53","nodeType":"YulAssignment","src":"6395:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6417:6:53","nodeType":"YulIdentifier","src":"6417:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6404:12:53","nodeType":"YulIdentifier","src":"6404:12:53"},"nativeSrc":"6404:20:53","nodeType":"YulFunctionCall","src":"6404:20:53"},"variableNames":[{"name":"value","nativeSrc":"6395:5:53","nodeType":"YulIdentifier","src":"6395:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6460:5:53","nodeType":"YulIdentifier","src":"6460:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6433:26:53","nodeType":"YulIdentifier","src":"6433:26:53"},"nativeSrc":"6433:33:53","nodeType":"YulFunctionCall","src":"6433:33:53"},"nativeSrc":"6433:33:53","nodeType":"YulExpressionStatement","src":"6433:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"6333:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6363:6:53","nodeType":"YulTypedName","src":"6363:6:53","type":""},{"name":"end","nativeSrc":"6371:3:53","nodeType":"YulTypedName","src":"6371:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6379:5:53","nodeType":"YulTypedName","src":"6379:5:53","type":""}],"src":"6333:139:53"},{"body":{"nativeSrc":"6544:263:53","nodeType":"YulBlock","src":"6544:263:53","statements":[{"body":{"nativeSrc":"6590:83:53","nodeType":"YulBlock","src":"6590:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6592:77:53","nodeType":"YulIdentifier","src":"6592:77:53"},"nativeSrc":"6592:79:53","nodeType":"YulFunctionCall","src":"6592:79:53"},"nativeSrc":"6592:79:53","nodeType":"YulExpressionStatement","src":"6592:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6565:7:53","nodeType":"YulIdentifier","src":"6565:7:53"},{"name":"headStart","nativeSrc":"6574:9:53","nodeType":"YulIdentifier","src":"6574:9:53"}],"functionName":{"name":"sub","nativeSrc":"6561:3:53","nodeType":"YulIdentifier","src":"6561:3:53"},"nativeSrc":"6561:23:53","nodeType":"YulFunctionCall","src":"6561:23:53"},{"kind":"number","nativeSrc":"6586:2:53","nodeType":"YulLiteral","src":"6586:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6557:3:53","nodeType":"YulIdentifier","src":"6557:3:53"},"nativeSrc":"6557:32:53","nodeType":"YulFunctionCall","src":"6557:32:53"},"nativeSrc":"6554:119:53","nodeType":"YulIf","src":"6554:119:53"},{"nativeSrc":"6683:117:53","nodeType":"YulBlock","src":"6683:117:53","statements":[{"nativeSrc":"6698:15:53","nodeType":"YulVariableDeclaration","src":"6698:15:53","value":{"kind":"number","nativeSrc":"6712:1:53","nodeType":"YulLiteral","src":"6712:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6702:6:53","nodeType":"YulTypedName","src":"6702:6:53","type":""}]},{"nativeSrc":"6727:63:53","nodeType":"YulAssignment","src":"6727:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6762:9:53","nodeType":"YulIdentifier","src":"6762:9:53"},{"name":"offset","nativeSrc":"6773:6:53","nodeType":"YulIdentifier","src":"6773:6:53"}],"functionName":{"name":"add","nativeSrc":"6758:3:53","nodeType":"YulIdentifier","src":"6758:3:53"},"nativeSrc":"6758:22:53","nodeType":"YulFunctionCall","src":"6758:22:53"},{"name":"dataEnd","nativeSrc":"6782:7:53","nodeType":"YulIdentifier","src":"6782:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6737:20:53","nodeType":"YulIdentifier","src":"6737:20:53"},"nativeSrc":"6737:53:53","nodeType":"YulFunctionCall","src":"6737:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6727:6:53","nodeType":"YulIdentifier","src":"6727:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6478:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6514:9:53","nodeType":"YulTypedName","src":"6514:9:53","type":""},{"name":"dataEnd","nativeSrc":"6525:7:53","nodeType":"YulTypedName","src":"6525:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6537:6:53","nodeType":"YulTypedName","src":"6537:6:53","type":""}],"src":"6478:329:53"},{"body":{"nativeSrc":"6902:28:53","nodeType":"YulBlock","src":"6902:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6919:1:53","nodeType":"YulLiteral","src":"6919:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6922:1:53","nodeType":"YulLiteral","src":"6922:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6912:6:53","nodeType":"YulIdentifier","src":"6912:6:53"},"nativeSrc":"6912:12:53","nodeType":"YulFunctionCall","src":"6912:12:53"},"nativeSrc":"6912:12:53","nodeType":"YulExpressionStatement","src":"6912:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"6813:117:53","nodeType":"YulFunctionDefinition","src":"6813:117:53"},{"body":{"nativeSrc":"6964:152:53","nodeType":"YulBlock","src":"6964:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6981:1:53","nodeType":"YulLiteral","src":"6981:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6984:77:53","nodeType":"YulLiteral","src":"6984:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6974:6:53","nodeType":"YulIdentifier","src":"6974:6:53"},"nativeSrc":"6974:88:53","nodeType":"YulFunctionCall","src":"6974:88:53"},"nativeSrc":"6974:88:53","nodeType":"YulExpressionStatement","src":"6974:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7078:1:53","nodeType":"YulLiteral","src":"7078:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7081:4:53","nodeType":"YulLiteral","src":"7081:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7071:6:53","nodeType":"YulIdentifier","src":"7071:6:53"},"nativeSrc":"7071:15:53","nodeType":"YulFunctionCall","src":"7071:15:53"},"nativeSrc":"7071:15:53","nodeType":"YulExpressionStatement","src":"7071:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7102:1:53","nodeType":"YulLiteral","src":"7102:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7105:4:53","nodeType":"YulLiteral","src":"7105:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7095:6:53","nodeType":"YulIdentifier","src":"7095:6:53"},"nativeSrc":"7095:15:53","nodeType":"YulFunctionCall","src":"7095:15:53"},"nativeSrc":"7095:15:53","nodeType":"YulExpressionStatement","src":"7095:15:53"}]},"name":"panic_error_0x41","nativeSrc":"6936:180:53","nodeType":"YulFunctionDefinition","src":"6936:180:53"},{"body":{"nativeSrc":"7165:238:53","nodeType":"YulBlock","src":"7165:238:53","statements":[{"nativeSrc":"7175:58:53","nodeType":"YulVariableDeclaration","src":"7175:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"7197:6:53","nodeType":"YulIdentifier","src":"7197:6:53"},{"arguments":[{"name":"size","nativeSrc":"7227:4:53","nodeType":"YulIdentifier","src":"7227:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7205:21:53","nodeType":"YulIdentifier","src":"7205:21:53"},"nativeSrc":"7205:27:53","nodeType":"YulFunctionCall","src":"7205:27:53"}],"functionName":{"name":"add","nativeSrc":"7193:3:53","nodeType":"YulIdentifier","src":"7193:3:53"},"nativeSrc":"7193:40:53","nodeType":"YulFunctionCall","src":"7193:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"7179:10:53","nodeType":"YulTypedName","src":"7179:10:53","type":""}]},{"body":{"nativeSrc":"7344:22:53","nodeType":"YulBlock","src":"7344:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7346:16:53","nodeType":"YulIdentifier","src":"7346:16:53"},"nativeSrc":"7346:18:53","nodeType":"YulFunctionCall","src":"7346:18:53"},"nativeSrc":"7346:18:53","nodeType":"YulExpressionStatement","src":"7346:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"7287:10:53","nodeType":"YulIdentifier","src":"7287:10:53"},{"kind":"number","nativeSrc":"7299:18:53","nodeType":"YulLiteral","src":"7299:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7284:2:53","nodeType":"YulIdentifier","src":"7284:2:53"},"nativeSrc":"7284:34:53","nodeType":"YulFunctionCall","src":"7284:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"7323:10:53","nodeType":"YulIdentifier","src":"7323:10:53"},{"name":"memPtr","nativeSrc":"7335:6:53","nodeType":"YulIdentifier","src":"7335:6:53"}],"functionName":{"name":"lt","nativeSrc":"7320:2:53","nodeType":"YulIdentifier","src":"7320:2:53"},"nativeSrc":"7320:22:53","nodeType":"YulFunctionCall","src":"7320:22:53"}],"functionName":{"name":"or","nativeSrc":"7281:2:53","nodeType":"YulIdentifier","src":"7281:2:53"},"nativeSrc":"7281:62:53","nodeType":"YulFunctionCall","src":"7281:62:53"},"nativeSrc":"7278:88:53","nodeType":"YulIf","src":"7278:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7382:2:53","nodeType":"YulLiteral","src":"7382:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"7386:10:53","nodeType":"YulIdentifier","src":"7386:10:53"}],"functionName":{"name":"mstore","nativeSrc":"7375:6:53","nodeType":"YulIdentifier","src":"7375:6:53"},"nativeSrc":"7375:22:53","nodeType":"YulFunctionCall","src":"7375:22:53"},"nativeSrc":"7375:22:53","nodeType":"YulExpressionStatement","src":"7375:22:53"}]},"name":"finalize_allocation","nativeSrc":"7122:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7151:6:53","nodeType":"YulTypedName","src":"7151:6:53","type":""},{"name":"size","nativeSrc":"7159:4:53","nodeType":"YulTypedName","src":"7159:4:53","type":""}],"src":"7122:281:53"},{"body":{"nativeSrc":"7450:88:53","nodeType":"YulBlock","src":"7450:88:53","statements":[{"nativeSrc":"7460:30:53","nodeType":"YulAssignment","src":"7460:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"7470:18:53","nodeType":"YulIdentifier","src":"7470:18:53"},"nativeSrc":"7470:20:53","nodeType":"YulFunctionCall","src":"7470:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"7460:6:53","nodeType":"YulIdentifier","src":"7460:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"7519:6:53","nodeType":"YulIdentifier","src":"7519:6:53"},{"name":"size","nativeSrc":"7527:4:53","nodeType":"YulIdentifier","src":"7527:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"7499:19:53","nodeType":"YulIdentifier","src":"7499:19:53"},"nativeSrc":"7499:33:53","nodeType":"YulFunctionCall","src":"7499:33:53"},"nativeSrc":"7499:33:53","nodeType":"YulExpressionStatement","src":"7499:33:53"}]},"name":"allocate_memory","nativeSrc":"7409:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"7434:4:53","nodeType":"YulTypedName","src":"7434:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"7443:6:53","nodeType":"YulTypedName","src":"7443:6:53","type":""}],"src":"7409:129:53"},{"body":{"nativeSrc":"7633:28:53","nodeType":"YulBlock","src":"7633:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7650:1:53","nodeType":"YulLiteral","src":"7650:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7653:1:53","nodeType":"YulLiteral","src":"7653:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7643:6:53","nodeType":"YulIdentifier","src":"7643:6:53"},"nativeSrc":"7643:12:53","nodeType":"YulFunctionCall","src":"7643:12:53"},"nativeSrc":"7643:12:53","nodeType":"YulExpressionStatement","src":"7643:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"7544:117:53","nodeType":"YulFunctionDefinition","src":"7544:117:53"},{"body":{"nativeSrc":"7737:51:53","nodeType":"YulBlock","src":"7737:51:53","statements":[{"nativeSrc":"7747:35:53","nodeType":"YulAssignment","src":"7747:35:53","value":{"arguments":[{"name":"value","nativeSrc":"7776:5:53","nodeType":"YulIdentifier","src":"7776:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7758:17:53","nodeType":"YulIdentifier","src":"7758:17:53"},"nativeSrc":"7758:24:53","nodeType":"YulFunctionCall","src":"7758:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"7747:7:53","nodeType":"YulIdentifier","src":"7747:7:53"}]}]},"name":"cleanup_t_contract$_SimpleAllowList_$13307","nativeSrc":"7667:121:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7719:5:53","nodeType":"YulTypedName","src":"7719:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7729:7:53","nodeType":"YulTypedName","src":"7729:7:53","type":""}],"src":"7667:121:53"},{"body":{"nativeSrc":"7862:104:53","nodeType":"YulBlock","src":"7862:104:53","statements":[{"body":{"nativeSrc":"7944:16:53","nodeType":"YulBlock","src":"7944:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7953:1:53","nodeType":"YulLiteral","src":"7953:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7956:1:53","nodeType":"YulLiteral","src":"7956:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7946:6:53","nodeType":"YulIdentifier","src":"7946:6:53"},"nativeSrc":"7946:12:53","nodeType":"YulFunctionCall","src":"7946:12:53"},"nativeSrc":"7946:12:53","nodeType":"YulExpressionStatement","src":"7946:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7885:5:53","nodeType":"YulIdentifier","src":"7885:5:53"},{"arguments":[{"name":"value","nativeSrc":"7935:5:53","nodeType":"YulIdentifier","src":"7935:5:53"}],"functionName":{"name":"cleanup_t_contract$_SimpleAllowList_$13307","nativeSrc":"7892:42:53","nodeType":"YulIdentifier","src":"7892:42:53"},"nativeSrc":"7892:49:53","nodeType":"YulFunctionCall","src":"7892:49:53"}],"functionName":{"name":"eq","nativeSrc":"7882:2:53","nodeType":"YulIdentifier","src":"7882:2:53"},"nativeSrc":"7882:60:53","nodeType":"YulFunctionCall","src":"7882:60:53"}],"functionName":{"name":"iszero","nativeSrc":"7875:6:53","nodeType":"YulIdentifier","src":"7875:6:53"},"nativeSrc":"7875:68:53","nodeType":"YulFunctionCall","src":"7875:68:53"},"nativeSrc":"7872:88:53","nodeType":"YulIf","src":"7872:88:53"}]},"name":"validator_revert_t_contract$_SimpleAllowList_$13307","nativeSrc":"7794:172:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7855:5:53","nodeType":"YulTypedName","src":"7855:5:53","type":""}],"src":"7794:172:53"},{"body":{"nativeSrc":"8049:112:53","nodeType":"YulBlock","src":"8049:112:53","statements":[{"nativeSrc":"8059:29:53","nodeType":"YulAssignment","src":"8059:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8081:6:53","nodeType":"YulIdentifier","src":"8081:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8068:12:53","nodeType":"YulIdentifier","src":"8068:12:53"},"nativeSrc":"8068:20:53","nodeType":"YulFunctionCall","src":"8068:20:53"},"variableNames":[{"name":"value","nativeSrc":"8059:5:53","nodeType":"YulIdentifier","src":"8059:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8149:5:53","nodeType":"YulIdentifier","src":"8149:5:53"}],"functionName":{"name":"validator_revert_t_contract$_SimpleAllowList_$13307","nativeSrc":"8097:51:53","nodeType":"YulIdentifier","src":"8097:51:53"},"nativeSrc":"8097:58:53","nodeType":"YulFunctionCall","src":"8097:58:53"},"nativeSrc":"8097:58:53","nodeType":"YulExpressionStatement","src":"8097:58:53"}]},"name":"abi_decode_t_contract$_SimpleAllowList_$13307","nativeSrc":"7972:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8027:6:53","nodeType":"YulTypedName","src":"8027:6:53","type":""},{"name":"end","nativeSrc":"8035:3:53","nodeType":"YulTypedName","src":"8035:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8043:5:53","nodeType":"YulTypedName","src":"8043:5:53","type":""}],"src":"7972:189:53"},{"body":{"nativeSrc":"8210:79:53","nodeType":"YulBlock","src":"8210:79:53","statements":[{"body":{"nativeSrc":"8267:16:53","nodeType":"YulBlock","src":"8267:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8276:1:53","nodeType":"YulLiteral","src":"8276:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8279:1:53","nodeType":"YulLiteral","src":"8279:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8269:6:53","nodeType":"YulIdentifier","src":"8269:6:53"},"nativeSrc":"8269:12:53","nodeType":"YulFunctionCall","src":"8269:12:53"},"nativeSrc":"8269:12:53","nodeType":"YulExpressionStatement","src":"8269:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8233:5:53","nodeType":"YulIdentifier","src":"8233:5:53"},{"arguments":[{"name":"value","nativeSrc":"8258:5:53","nodeType":"YulIdentifier","src":"8258:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8240:17:53","nodeType":"YulIdentifier","src":"8240:17:53"},"nativeSrc":"8240:24:53","nodeType":"YulFunctionCall","src":"8240:24:53"}],"functionName":{"name":"eq","nativeSrc":"8230:2:53","nodeType":"YulIdentifier","src":"8230:2:53"},"nativeSrc":"8230:35:53","nodeType":"YulFunctionCall","src":"8230:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8223:6:53","nodeType":"YulIdentifier","src":"8223:6:53"},"nativeSrc":"8223:43:53","nodeType":"YulFunctionCall","src":"8223:43:53"},"nativeSrc":"8220:63:53","nodeType":"YulIf","src":"8220:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"8167:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8203:5:53","nodeType":"YulTypedName","src":"8203:5:53","type":""}],"src":"8167:122:53"},{"body":{"nativeSrc":"8347:87:53","nodeType":"YulBlock","src":"8347:87:53","statements":[{"nativeSrc":"8357:29:53","nodeType":"YulAssignment","src":"8357:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8379:6:53","nodeType":"YulIdentifier","src":"8379:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8366:12:53","nodeType":"YulIdentifier","src":"8366:12:53"},"nativeSrc":"8366:20:53","nodeType":"YulFunctionCall","src":"8366:20:53"},"variableNames":[{"name":"value","nativeSrc":"8357:5:53","nodeType":"YulIdentifier","src":"8357:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8422:5:53","nodeType":"YulIdentifier","src":"8422:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8395:26:53","nodeType":"YulIdentifier","src":"8395:26:53"},"nativeSrc":"8395:33:53","nodeType":"YulFunctionCall","src":"8395:33:53"},"nativeSrc":"8395:33:53","nodeType":"YulExpressionStatement","src":"8395:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"8295:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8325:6:53","nodeType":"YulTypedName","src":"8325:6:53","type":""},{"name":"end","nativeSrc":"8333:3:53","nodeType":"YulTypedName","src":"8333:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8341:5:53","nodeType":"YulTypedName","src":"8341:5:53","type":""}],"src":"8295:139:53"},{"body":{"nativeSrc":"8570:525:53","nodeType":"YulBlock","src":"8570:525:53","statements":[{"body":{"nativeSrc":"8614:83:53","nodeType":"YulBlock","src":"8614:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8616:77:53","nodeType":"YulIdentifier","src":"8616:77:53"},"nativeSrc":"8616:79:53","nodeType":"YulFunctionCall","src":"8616:79:53"},"nativeSrc":"8616:79:53","nodeType":"YulExpressionStatement","src":"8616:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"8591:3:53","nodeType":"YulIdentifier","src":"8591:3:53"},{"name":"headStart","nativeSrc":"8596:9:53","nodeType":"YulIdentifier","src":"8596:9:53"}],"functionName":{"name":"sub","nativeSrc":"8587:3:53","nodeType":"YulIdentifier","src":"8587:3:53"},"nativeSrc":"8587:19:53","nodeType":"YulFunctionCall","src":"8587:19:53"},{"kind":"number","nativeSrc":"8608:4:53","nodeType":"YulLiteral","src":"8608:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"8583:3:53","nodeType":"YulIdentifier","src":"8583:3:53"},"nativeSrc":"8583:30:53","nodeType":"YulFunctionCall","src":"8583:30:53"},"nativeSrc":"8580:117:53","nodeType":"YulIf","src":"8580:117:53"},{"nativeSrc":"8706:30:53","nodeType":"YulAssignment","src":"8706:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"8731:4:53","nodeType":"YulLiteral","src":"8731:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"8715:15:53","nodeType":"YulIdentifier","src":"8715:15:53"},"nativeSrc":"8715:21:53","nodeType":"YulFunctionCall","src":"8715:21:53"},"variableNames":[{"name":"value","nativeSrc":"8706:5:53","nodeType":"YulIdentifier","src":"8706:5:53"}]},{"nativeSrc":"8746:180:53","nodeType":"YulBlock","src":"8746:180:53","statements":[{"nativeSrc":"8786:15:53","nodeType":"YulVariableDeclaration","src":"8786:15:53","value":{"kind":"number","nativeSrc":"8800:1:53","nodeType":"YulLiteral","src":"8800:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8790:6:53","nodeType":"YulTypedName","src":"8790:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8826:5:53","nodeType":"YulIdentifier","src":"8826:5:53"},{"kind":"number","nativeSrc":"8833:4:53","nodeType":"YulLiteral","src":"8833:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"8822:3:53","nodeType":"YulIdentifier","src":"8822:3:53"},"nativeSrc":"8822:16:53","nodeType":"YulFunctionCall","src":"8822:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8890:9:53","nodeType":"YulIdentifier","src":"8890:9:53"},{"name":"offset","nativeSrc":"8901:6:53","nodeType":"YulIdentifier","src":"8901:6:53"}],"functionName":{"name":"add","nativeSrc":"8886:3:53","nodeType":"YulIdentifier","src":"8886:3:53"},"nativeSrc":"8886:22:53","nodeType":"YulFunctionCall","src":"8886:22:53"},{"name":"end","nativeSrc":"8910:3:53","nodeType":"YulIdentifier","src":"8910:3:53"}],"functionName":{"name":"abi_decode_t_contract$_SimpleAllowList_$13307","nativeSrc":"8840:45:53","nodeType":"YulIdentifier","src":"8840:45:53"},"nativeSrc":"8840:74:53","nodeType":"YulFunctionCall","src":"8840:74:53"}],"functionName":{"name":"mstore","nativeSrc":"8815:6:53","nodeType":"YulIdentifier","src":"8815:6:53"},"nativeSrc":"8815:100:53","nodeType":"YulFunctionCall","src":"8815:100:53"},"nativeSrc":"8815:100:53","nodeType":"YulExpressionStatement","src":"8815:100:53"}]},{"nativeSrc":"8936:152:53","nodeType":"YulBlock","src":"8936:152:53","statements":[{"nativeSrc":"8972:16:53","nodeType":"YulVariableDeclaration","src":"8972:16:53","value":{"kind":"number","nativeSrc":"8986:2:53","nodeType":"YulLiteral","src":"8986:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8976:6:53","nodeType":"YulTypedName","src":"8976:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9013:5:53","nodeType":"YulIdentifier","src":"9013:5:53"},{"kind":"number","nativeSrc":"9020:4:53","nodeType":"YulLiteral","src":"9020:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9009:3:53","nodeType":"YulIdentifier","src":"9009:3:53"},"nativeSrc":"9009:16:53","nodeType":"YulFunctionCall","src":"9009:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9052:9:53","nodeType":"YulIdentifier","src":"9052:9:53"},{"name":"offset","nativeSrc":"9063:6:53","nodeType":"YulIdentifier","src":"9063:6:53"}],"functionName":{"name":"add","nativeSrc":"9048:3:53","nodeType":"YulIdentifier","src":"9048:3:53"},"nativeSrc":"9048:22:53","nodeType":"YulFunctionCall","src":"9048:22:53"},{"name":"end","nativeSrc":"9072:3:53","nodeType":"YulIdentifier","src":"9072:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9027:20:53","nodeType":"YulIdentifier","src":"9027:20:53"},"nativeSrc":"9027:49:53","nodeType":"YulFunctionCall","src":"9027:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9002:6:53","nodeType":"YulIdentifier","src":"9002:6:53"},"nativeSrc":"9002:75:53","nodeType":"YulFunctionCall","src":"9002:75:53"},"nativeSrc":"9002:75:53","nodeType":"YulExpressionStatement","src":"9002:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$15428_memory_ptr","nativeSrc":"8485:610:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8545:9:53","nodeType":"YulTypedName","src":"8545:9:53","type":""},{"name":"end","nativeSrc":"8556:3:53","nodeType":"YulTypedName","src":"8556:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8564:5:53","nodeType":"YulTypedName","src":"8564:5:53","type":""}],"src":"8485:610:53"},{"body":{"nativeSrc":"9197:293:53","nodeType":"YulBlock","src":"9197:293:53","statements":[{"body":{"nativeSrc":"9243:83:53","nodeType":"YulBlock","src":"9243:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9245:77:53","nodeType":"YulIdentifier","src":"9245:77:53"},"nativeSrc":"9245:79:53","nodeType":"YulFunctionCall","src":"9245:79:53"},"nativeSrc":"9245:79:53","nodeType":"YulExpressionStatement","src":"9245:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9218:7:53","nodeType":"YulIdentifier","src":"9218:7:53"},{"name":"headStart","nativeSrc":"9227:9:53","nodeType":"YulIdentifier","src":"9227:9:53"}],"functionName":{"name":"sub","nativeSrc":"9214:3:53","nodeType":"YulIdentifier","src":"9214:3:53"},"nativeSrc":"9214:23:53","nodeType":"YulFunctionCall","src":"9214:23:53"},{"kind":"number","nativeSrc":"9239:2:53","nodeType":"YulLiteral","src":"9239:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9210:3:53","nodeType":"YulIdentifier","src":"9210:3:53"},"nativeSrc":"9210:32:53","nodeType":"YulFunctionCall","src":"9210:32:53"},"nativeSrc":"9207:119:53","nodeType":"YulIf","src":"9207:119:53"},{"nativeSrc":"9336:147:53","nodeType":"YulBlock","src":"9336:147:53","statements":[{"nativeSrc":"9351:15:53","nodeType":"YulVariableDeclaration","src":"9351:15:53","value":{"kind":"number","nativeSrc":"9365:1:53","nodeType":"YulLiteral","src":"9365:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9355:6:53","nodeType":"YulTypedName","src":"9355:6:53","type":""}]},{"nativeSrc":"9380:93:53","nodeType":"YulAssignment","src":"9380:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9445:9:53","nodeType":"YulIdentifier","src":"9445:9:53"},{"name":"offset","nativeSrc":"9456:6:53","nodeType":"YulIdentifier","src":"9456:6:53"}],"functionName":{"name":"add","nativeSrc":"9441:3:53","nodeType":"YulIdentifier","src":"9441:3:53"},"nativeSrc":"9441:22:53","nodeType":"YulFunctionCall","src":"9441:22:53"},{"name":"dataEnd","nativeSrc":"9465:7:53","nodeType":"YulIdentifier","src":"9465:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$15428_memory_ptr","nativeSrc":"9390:50:53","nodeType":"YulIdentifier","src":"9390:50:53"},"nativeSrc":"9390:83:53","nodeType":"YulFunctionCall","src":"9390:83:53"},"variableNames":[{"name":"value0","nativeSrc":"9380:6:53","nodeType":"YulIdentifier","src":"9380:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$15428_memory_ptr","nativeSrc":"9101:389:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9167:9:53","nodeType":"YulTypedName","src":"9167:9:53","type":""},{"name":"dataEnd","nativeSrc":"9178:7:53","nodeType":"YulTypedName","src":"9178:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9190:6:53","nodeType":"YulTypedName","src":"9190:6:53","type":""}],"src":"9101:389:53"},{"body":{"nativeSrc":"9585:28:53","nodeType":"YulBlock","src":"9585:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9602:1:53","nodeType":"YulLiteral","src":"9602:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9605:1:53","nodeType":"YulLiteral","src":"9605:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9595:6:53","nodeType":"YulIdentifier","src":"9595:6:53"},"nativeSrc":"9595:12:53","nodeType":"YulFunctionCall","src":"9595:12:53"},"nativeSrc":"9595:12:53","nodeType":"YulExpressionStatement","src":"9595:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"9496:117:53","nodeType":"YulFunctionDefinition","src":"9496:117:53"},{"body":{"nativeSrc":"9685:241:53","nodeType":"YulBlock","src":"9685:241:53","statements":[{"body":{"nativeSrc":"9790:22:53","nodeType":"YulBlock","src":"9790:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9792:16:53","nodeType":"YulIdentifier","src":"9792:16:53"},"nativeSrc":"9792:18:53","nodeType":"YulFunctionCall","src":"9792:18:53"},"nativeSrc":"9792:18:53","nodeType":"YulExpressionStatement","src":"9792:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9762:6:53","nodeType":"YulIdentifier","src":"9762:6:53"},{"kind":"number","nativeSrc":"9770:18:53","nodeType":"YulLiteral","src":"9770:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9759:2:53","nodeType":"YulIdentifier","src":"9759:2:53"},"nativeSrc":"9759:30:53","nodeType":"YulFunctionCall","src":"9759:30:53"},"nativeSrc":"9756:56:53","nodeType":"YulIf","src":"9756:56:53"},{"nativeSrc":"9822:37:53","nodeType":"YulAssignment","src":"9822:37:53","value":{"arguments":[{"name":"length","nativeSrc":"9852:6:53","nodeType":"YulIdentifier","src":"9852:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9830:21:53","nodeType":"YulIdentifier","src":"9830:21:53"},"nativeSrc":"9830:29:53","nodeType":"YulFunctionCall","src":"9830:29:53"},"variableNames":[{"name":"size","nativeSrc":"9822:4:53","nodeType":"YulIdentifier","src":"9822:4:53"}]},{"nativeSrc":"9896:23:53","nodeType":"YulAssignment","src":"9896:23:53","value":{"arguments":[{"name":"size","nativeSrc":"9908:4:53","nodeType":"YulIdentifier","src":"9908:4:53"},{"kind":"number","nativeSrc":"9914:4:53","nodeType":"YulLiteral","src":"9914:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9904:3:53","nodeType":"YulIdentifier","src":"9904:3:53"},"nativeSrc":"9904:15:53","nodeType":"YulFunctionCall","src":"9904:15:53"},"variableNames":[{"name":"size","nativeSrc":"9896:4:53","nodeType":"YulIdentifier","src":"9896:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"9619:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"9669:6:53","nodeType":"YulTypedName","src":"9669:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"9680:4:53","nodeType":"YulTypedName","src":"9680:4:53","type":""}],"src":"9619:307:53"},{"body":{"nativeSrc":"9996:84:53","nodeType":"YulBlock","src":"9996:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10020:3:53","nodeType":"YulIdentifier","src":"10020:3:53"},{"name":"src","nativeSrc":"10025:3:53","nodeType":"YulIdentifier","src":"10025:3:53"},{"name":"length","nativeSrc":"10030:6:53","nodeType":"YulIdentifier","src":"10030:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"10007:12:53","nodeType":"YulIdentifier","src":"10007:12:53"},"nativeSrc":"10007:30:53","nodeType":"YulFunctionCall","src":"10007:30:53"},"nativeSrc":"10007:30:53","nodeType":"YulExpressionStatement","src":"10007:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10057:3:53","nodeType":"YulIdentifier","src":"10057:3:53"},{"name":"length","nativeSrc":"10062:6:53","nodeType":"YulIdentifier","src":"10062:6:53"}],"functionName":{"name":"add","nativeSrc":"10053:3:53","nodeType":"YulIdentifier","src":"10053:3:53"},"nativeSrc":"10053:16:53","nodeType":"YulFunctionCall","src":"10053:16:53"},{"kind":"number","nativeSrc":"10071:1:53","nodeType":"YulLiteral","src":"10071:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10046:6:53","nodeType":"YulIdentifier","src":"10046:6:53"},"nativeSrc":"10046:27:53","nodeType":"YulFunctionCall","src":"10046:27:53"},"nativeSrc":"10046:27:53","nodeType":"YulExpressionStatement","src":"10046:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9932:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9978:3:53","nodeType":"YulTypedName","src":"9978:3:53","type":""},{"name":"dst","nativeSrc":"9983:3:53","nodeType":"YulTypedName","src":"9983:3:53","type":""},{"name":"length","nativeSrc":"9988:6:53","nodeType":"YulTypedName","src":"9988:6:53","type":""}],"src":"9932:148:53"},{"body":{"nativeSrc":"10169:340:53","nodeType":"YulBlock","src":"10169:340:53","statements":[{"nativeSrc":"10179:74:53","nodeType":"YulAssignment","src":"10179:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10245:6:53","nodeType":"YulIdentifier","src":"10245:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"10204:40:53","nodeType":"YulIdentifier","src":"10204:40:53"},"nativeSrc":"10204:48:53","nodeType":"YulFunctionCall","src":"10204:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10188:15:53","nodeType":"YulIdentifier","src":"10188:15:53"},"nativeSrc":"10188:65:53","nodeType":"YulFunctionCall","src":"10188:65:53"},"variableNames":[{"name":"array","nativeSrc":"10179:5:53","nodeType":"YulIdentifier","src":"10179:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"10269:5:53","nodeType":"YulIdentifier","src":"10269:5:53"},{"name":"length","nativeSrc":"10276:6:53","nodeType":"YulIdentifier","src":"10276:6:53"}],"functionName":{"name":"mstore","nativeSrc":"10262:6:53","nodeType":"YulIdentifier","src":"10262:6:53"},"nativeSrc":"10262:21:53","nodeType":"YulFunctionCall","src":"10262:21:53"},"nativeSrc":"10262:21:53","nodeType":"YulExpressionStatement","src":"10262:21:53"},{"nativeSrc":"10292:27:53","nodeType":"YulVariableDeclaration","src":"10292:27:53","value":{"arguments":[{"name":"array","nativeSrc":"10307:5:53","nodeType":"YulIdentifier","src":"10307:5:53"},{"kind":"number","nativeSrc":"10314:4:53","nodeType":"YulLiteral","src":"10314:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10303:3:53","nodeType":"YulIdentifier","src":"10303:3:53"},"nativeSrc":"10303:16:53","nodeType":"YulFunctionCall","src":"10303:16:53"},"variables":[{"name":"dst","nativeSrc":"10296:3:53","nodeType":"YulTypedName","src":"10296:3:53","type":""}]},{"body":{"nativeSrc":"10357:83:53","nodeType":"YulBlock","src":"10357:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10359:77:53","nodeType":"YulIdentifier","src":"10359:77:53"},"nativeSrc":"10359:79:53","nodeType":"YulFunctionCall","src":"10359:79:53"},"nativeSrc":"10359:79:53","nodeType":"YulExpressionStatement","src":"10359:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10338:3:53","nodeType":"YulIdentifier","src":"10338:3:53"},{"name":"length","nativeSrc":"10343:6:53","nodeType":"YulIdentifier","src":"10343:6:53"}],"functionName":{"name":"add","nativeSrc":"10334:3:53","nodeType":"YulIdentifier","src":"10334:3:53"},"nativeSrc":"10334:16:53","nodeType":"YulFunctionCall","src":"10334:16:53"},{"name":"end","nativeSrc":"10352:3:53","nodeType":"YulIdentifier","src":"10352:3:53"}],"functionName":{"name":"gt","nativeSrc":"10331:2:53","nodeType":"YulIdentifier","src":"10331:2:53"},"nativeSrc":"10331:25:53","nodeType":"YulFunctionCall","src":"10331:25:53"},"nativeSrc":"10328:112:53","nodeType":"YulIf","src":"10328:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"10486:3:53","nodeType":"YulIdentifier","src":"10486:3:53"},{"name":"dst","nativeSrc":"10491:3:53","nodeType":"YulIdentifier","src":"10491:3:53"},{"name":"length","nativeSrc":"10496:6:53","nodeType":"YulIdentifier","src":"10496:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"10449:36:53","nodeType":"YulIdentifier","src":"10449:36:53"},"nativeSrc":"10449:54:53","nodeType":"YulFunctionCall","src":"10449:54:53"},"nativeSrc":"10449:54:53","nodeType":"YulExpressionStatement","src":"10449:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"10086:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10142:3:53","nodeType":"YulTypedName","src":"10142:3:53","type":""},{"name":"length","nativeSrc":"10147:6:53","nodeType":"YulTypedName","src":"10147:6:53","type":""},{"name":"end","nativeSrc":"10155:3:53","nodeType":"YulTypedName","src":"10155:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10163:5:53","nodeType":"YulTypedName","src":"10163:5:53","type":""}],"src":"10086:423:53"},{"body":{"nativeSrc":"10589:277:53","nodeType":"YulBlock","src":"10589:277:53","statements":[{"body":{"nativeSrc":"10638:83:53","nodeType":"YulBlock","src":"10638:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10640:77:53","nodeType":"YulIdentifier","src":"10640:77:53"},"nativeSrc":"10640:79:53","nodeType":"YulFunctionCall","src":"10640:79:53"},"nativeSrc":"10640:79:53","nodeType":"YulExpressionStatement","src":"10640:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10617:6:53","nodeType":"YulIdentifier","src":"10617:6:53"},{"kind":"number","nativeSrc":"10625:4:53","nodeType":"YulLiteral","src":"10625:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10613:3:53","nodeType":"YulIdentifier","src":"10613:3:53"},"nativeSrc":"10613:17:53","nodeType":"YulFunctionCall","src":"10613:17:53"},{"name":"end","nativeSrc":"10632:3:53","nodeType":"YulIdentifier","src":"10632:3:53"}],"functionName":{"name":"slt","nativeSrc":"10609:3:53","nodeType":"YulIdentifier","src":"10609:3:53"},"nativeSrc":"10609:27:53","nodeType":"YulFunctionCall","src":"10609:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10602:6:53","nodeType":"YulIdentifier","src":"10602:6:53"},"nativeSrc":"10602:35:53","nodeType":"YulFunctionCall","src":"10602:35:53"},"nativeSrc":"10599:122:53","nodeType":"YulIf","src":"10599:122:53"},{"nativeSrc":"10730:34:53","nodeType":"YulVariableDeclaration","src":"10730:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"10757:6:53","nodeType":"YulIdentifier","src":"10757:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10744:12:53","nodeType":"YulIdentifier","src":"10744:12:53"},"nativeSrc":"10744:20:53","nodeType":"YulFunctionCall","src":"10744:20:53"},"variables":[{"name":"length","nativeSrc":"10734:6:53","nodeType":"YulTypedName","src":"10734:6:53","type":""}]},{"nativeSrc":"10773:87:53","nodeType":"YulAssignment","src":"10773:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10833:6:53","nodeType":"YulIdentifier","src":"10833:6:53"},{"kind":"number","nativeSrc":"10841:4:53","nodeType":"YulLiteral","src":"10841:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10829:3:53","nodeType":"YulIdentifier","src":"10829:3:53"},"nativeSrc":"10829:17:53","nodeType":"YulFunctionCall","src":"10829:17:53"},{"name":"length","nativeSrc":"10848:6:53","nodeType":"YulIdentifier","src":"10848:6:53"},{"name":"end","nativeSrc":"10856:3:53","nodeType":"YulIdentifier","src":"10856:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"10782:46:53","nodeType":"YulIdentifier","src":"10782:46:53"},"nativeSrc":"10782:78:53","nodeType":"YulFunctionCall","src":"10782:78:53"},"variableNames":[{"name":"array","nativeSrc":"10773:5:53","nodeType":"YulIdentifier","src":"10773:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10528:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10567:6:53","nodeType":"YulTypedName","src":"10567:6:53","type":""},{"name":"end","nativeSrc":"10575:3:53","nodeType":"YulTypedName","src":"10575:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10583:5:53","nodeType":"YulTypedName","src":"10583:5:53","type":""}],"src":"10528:338:53"},{"body":{"nativeSrc":"10995:665:53","nodeType":"YulBlock","src":"10995:665:53","statements":[{"body":{"nativeSrc":"11039:83:53","nodeType":"YulBlock","src":"11039:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"11041:77:53","nodeType":"YulIdentifier","src":"11041:77:53"},"nativeSrc":"11041:79:53","nodeType":"YulFunctionCall","src":"11041:79:53"},"nativeSrc":"11041:79:53","nodeType":"YulExpressionStatement","src":"11041:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"11016:3:53","nodeType":"YulIdentifier","src":"11016:3:53"},{"name":"headStart","nativeSrc":"11021:9:53","nodeType":"YulIdentifier","src":"11021:9:53"}],"functionName":{"name":"sub","nativeSrc":"11012:3:53","nodeType":"YulIdentifier","src":"11012:3:53"},"nativeSrc":"11012:19:53","nodeType":"YulFunctionCall","src":"11012:19:53"},{"kind":"number","nativeSrc":"11033:4:53","nodeType":"YulLiteral","src":"11033:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"11008:3:53","nodeType":"YulIdentifier","src":"11008:3:53"},"nativeSrc":"11008:30:53","nodeType":"YulFunctionCall","src":"11008:30:53"},"nativeSrc":"11005:117:53","nodeType":"YulIf","src":"11005:117:53"},{"nativeSrc":"11131:30:53","nodeType":"YulAssignment","src":"11131:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"11156:4:53","nodeType":"YulLiteral","src":"11156:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"11140:15:53","nodeType":"YulIdentifier","src":"11140:15:53"},"nativeSrc":"11140:21:53","nodeType":"YulFunctionCall","src":"11140:21:53"},"variableNames":[{"name":"value","nativeSrc":"11131:5:53","nodeType":"YulIdentifier","src":"11131:5:53"}]},{"nativeSrc":"11171:152:53","nodeType":"YulBlock","src":"11171:152:53","statements":[{"nativeSrc":"11208:15:53","nodeType":"YulVariableDeclaration","src":"11208:15:53","value":{"kind":"number","nativeSrc":"11222:1:53","nodeType":"YulLiteral","src":"11222:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11212:6:53","nodeType":"YulTypedName","src":"11212:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11248:5:53","nodeType":"YulIdentifier","src":"11248:5:53"},{"kind":"number","nativeSrc":"11255:4:53","nodeType":"YulLiteral","src":"11255:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11244:3:53","nodeType":"YulIdentifier","src":"11244:3:53"},"nativeSrc":"11244:16:53","nodeType":"YulFunctionCall","src":"11244:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11287:9:53","nodeType":"YulIdentifier","src":"11287:9:53"},{"name":"offset","nativeSrc":"11298:6:53","nodeType":"YulIdentifier","src":"11298:6:53"}],"functionName":{"name":"add","nativeSrc":"11283:3:53","nodeType":"YulIdentifier","src":"11283:3:53"},"nativeSrc":"11283:22:53","nodeType":"YulFunctionCall","src":"11283:22:53"},{"name":"end","nativeSrc":"11307:3:53","nodeType":"YulIdentifier","src":"11307:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11262:20:53","nodeType":"YulIdentifier","src":"11262:20:53"},"nativeSrc":"11262:49:53","nodeType":"YulFunctionCall","src":"11262:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11237:6:53","nodeType":"YulIdentifier","src":"11237:6:53"},"nativeSrc":"11237:75:53","nodeType":"YulFunctionCall","src":"11237:75:53"},"nativeSrc":"11237:75:53","nodeType":"YulExpressionStatement","src":"11237:75:53"}]},{"nativeSrc":"11333:320:53","nodeType":"YulBlock","src":"11333:320:53","statements":[{"nativeSrc":"11368:46:53","nodeType":"YulVariableDeclaration","src":"11368:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11399:9:53","nodeType":"YulIdentifier","src":"11399:9:53"},{"kind":"number","nativeSrc":"11410:2:53","nodeType":"YulLiteral","src":"11410:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11395:3:53","nodeType":"YulIdentifier","src":"11395:3:53"},"nativeSrc":"11395:18:53","nodeType":"YulFunctionCall","src":"11395:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11382:12:53","nodeType":"YulIdentifier","src":"11382:12:53"},"nativeSrc":"11382:32:53","nodeType":"YulFunctionCall","src":"11382:32:53"},"variables":[{"name":"offset","nativeSrc":"11372:6:53","nodeType":"YulTypedName","src":"11372:6:53","type":""}]},{"body":{"nativeSrc":"11461:83:53","nodeType":"YulBlock","src":"11461:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"11463:77:53","nodeType":"YulIdentifier","src":"11463:77:53"},"nativeSrc":"11463:79:53","nodeType":"YulFunctionCall","src":"11463:79:53"},"nativeSrc":"11463:79:53","nodeType":"YulExpressionStatement","src":"11463:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11433:6:53","nodeType":"YulIdentifier","src":"11433:6:53"},{"kind":"number","nativeSrc":"11441:18:53","nodeType":"YulLiteral","src":"11441:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11430:2:53","nodeType":"YulIdentifier","src":"11430:2:53"},"nativeSrc":"11430:30:53","nodeType":"YulFunctionCall","src":"11430:30:53"},"nativeSrc":"11427:117:53","nodeType":"YulIf","src":"11427:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11569:5:53","nodeType":"YulIdentifier","src":"11569:5:53"},{"kind":"number","nativeSrc":"11576:4:53","nodeType":"YulLiteral","src":"11576:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11565:3:53","nodeType":"YulIdentifier","src":"11565:3:53"},"nativeSrc":"11565:16:53","nodeType":"YulFunctionCall","src":"11565:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11617:9:53","nodeType":"YulIdentifier","src":"11617:9:53"},{"name":"offset","nativeSrc":"11628:6:53","nodeType":"YulIdentifier","src":"11628:6:53"}],"functionName":{"name":"add","nativeSrc":"11613:3:53","nodeType":"YulIdentifier","src":"11613:3:53"},"nativeSrc":"11613:22:53","nodeType":"YulFunctionCall","src":"11613:22:53"},{"name":"end","nativeSrc":"11637:3:53","nodeType":"YulIdentifier","src":"11637:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"11583:29:53","nodeType":"YulIdentifier","src":"11583:29:53"},"nativeSrc":"11583:58:53","nodeType":"YulFunctionCall","src":"11583:58:53"}],"functionName":{"name":"mstore","nativeSrc":"11558:6:53","nodeType":"YulIdentifier","src":"11558:6:53"},"nativeSrc":"11558:84:53","nodeType":"YulFunctionCall","src":"11558:84:53"},"nativeSrc":"11558:84:53","nodeType":"YulExpressionStatement","src":"11558:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"10909:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10970:9:53","nodeType":"YulTypedName","src":"10970:9:53","type":""},{"name":"end","nativeSrc":"10981:3:53","nodeType":"YulTypedName","src":"10981:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10989:5:53","nodeType":"YulTypedName","src":"10989:5:53","type":""}],"src":"10909:751:53"},{"body":{"nativeSrc":"11763:454:53","nodeType":"YulBlock","src":"11763:454:53","statements":[{"body":{"nativeSrc":"11809:83:53","nodeType":"YulBlock","src":"11809:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11811:77:53","nodeType":"YulIdentifier","src":"11811:77:53"},"nativeSrc":"11811:79:53","nodeType":"YulFunctionCall","src":"11811:79:53"},"nativeSrc":"11811:79:53","nodeType":"YulExpressionStatement","src":"11811:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11784:7:53","nodeType":"YulIdentifier","src":"11784:7:53"},{"name":"headStart","nativeSrc":"11793:9:53","nodeType":"YulIdentifier","src":"11793:9:53"}],"functionName":{"name":"sub","nativeSrc":"11780:3:53","nodeType":"YulIdentifier","src":"11780:3:53"},"nativeSrc":"11780:23:53","nodeType":"YulFunctionCall","src":"11780:23:53"},{"kind":"number","nativeSrc":"11805:2:53","nodeType":"YulLiteral","src":"11805:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11776:3:53","nodeType":"YulIdentifier","src":"11776:3:53"},"nativeSrc":"11776:32:53","nodeType":"YulFunctionCall","src":"11776:32:53"},"nativeSrc":"11773:119:53","nodeType":"YulIf","src":"11773:119:53"},{"nativeSrc":"11902:308:53","nodeType":"YulBlock","src":"11902:308:53","statements":[{"nativeSrc":"11917:45:53","nodeType":"YulVariableDeclaration","src":"11917:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11948:9:53","nodeType":"YulIdentifier","src":"11948:9:53"},{"kind":"number","nativeSrc":"11959:1:53","nodeType":"YulLiteral","src":"11959:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11944:3:53","nodeType":"YulIdentifier","src":"11944:3:53"},"nativeSrc":"11944:17:53","nodeType":"YulFunctionCall","src":"11944:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"11931:12:53","nodeType":"YulIdentifier","src":"11931:12:53"},"nativeSrc":"11931:31:53","nodeType":"YulFunctionCall","src":"11931:31:53"},"variables":[{"name":"offset","nativeSrc":"11921:6:53","nodeType":"YulTypedName","src":"11921:6:53","type":""}]},{"body":{"nativeSrc":"12009:83:53","nodeType":"YulBlock","src":"12009:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12011:77:53","nodeType":"YulIdentifier","src":"12011:77:53"},"nativeSrc":"12011:79:53","nodeType":"YulFunctionCall","src":"12011:79:53"},"nativeSrc":"12011:79:53","nodeType":"YulExpressionStatement","src":"12011:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11981:6:53","nodeType":"YulIdentifier","src":"11981:6:53"},{"kind":"number","nativeSrc":"11989:18:53","nodeType":"YulLiteral","src":"11989:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11978:2:53","nodeType":"YulIdentifier","src":"11978:2:53"},"nativeSrc":"11978:30:53","nodeType":"YulFunctionCall","src":"11978:30:53"},"nativeSrc":"11975:117:53","nodeType":"YulIf","src":"11975:117:53"},{"nativeSrc":"12106:94:53","nodeType":"YulAssignment","src":"12106:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12172:9:53","nodeType":"YulIdentifier","src":"12172:9:53"},{"name":"offset","nativeSrc":"12183:6:53","nodeType":"YulIdentifier","src":"12183:6:53"}],"functionName":{"name":"add","nativeSrc":"12168:3:53","nodeType":"YulIdentifier","src":"12168:3:53"},"nativeSrc":"12168:22:53","nodeType":"YulFunctionCall","src":"12168:22:53"},{"name":"dataEnd","nativeSrc":"12192:7:53","nodeType":"YulIdentifier","src":"12192:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"12116:51:53","nodeType":"YulIdentifier","src":"12116:51:53"},"nativeSrc":"12116:84:53","nodeType":"YulFunctionCall","src":"12116:84:53"},"variableNames":[{"name":"value0","nativeSrc":"12106:6:53","nodeType":"YulIdentifier","src":"12106:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"11666:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11733:9:53","nodeType":"YulTypedName","src":"11733:9:53","type":""},{"name":"dataEnd","nativeSrc":"11744:7:53","nodeType":"YulTypedName","src":"11744:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11756:6:53","nodeType":"YulTypedName","src":"11756:6:53","type":""}],"src":"11666:551:53"},{"body":{"nativeSrc":"12251:152:53","nodeType":"YulBlock","src":"12251:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12268:1:53","nodeType":"YulLiteral","src":"12268:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12271:77:53","nodeType":"YulLiteral","src":"12271:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12261:6:53","nodeType":"YulIdentifier","src":"12261:6:53"},"nativeSrc":"12261:88:53","nodeType":"YulFunctionCall","src":"12261:88:53"},"nativeSrc":"12261:88:53","nodeType":"YulExpressionStatement","src":"12261:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12365:1:53","nodeType":"YulLiteral","src":"12365:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"12368:4:53","nodeType":"YulLiteral","src":"12368:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"12358:6:53","nodeType":"YulIdentifier","src":"12358:6:53"},"nativeSrc":"12358:15:53","nodeType":"YulFunctionCall","src":"12358:15:53"},"nativeSrc":"12358:15:53","nodeType":"YulExpressionStatement","src":"12358:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12389:1:53","nodeType":"YulLiteral","src":"12389:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12392:4:53","nodeType":"YulLiteral","src":"12392:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12382:6:53","nodeType":"YulIdentifier","src":"12382:6:53"},"nativeSrc":"12382:15:53","nodeType":"YulFunctionCall","src":"12382:15:53"},"nativeSrc":"12382:15:53","nodeType":"YulExpressionStatement","src":"12382:15:53"}]},"name":"panic_error_0x11","nativeSrc":"12223:180:53","nodeType":"YulFunctionDefinition","src":"12223:180:53"},{"body":{"nativeSrc":"12452:190:53","nodeType":"YulBlock","src":"12452:190:53","statements":[{"nativeSrc":"12462:33:53","nodeType":"YulAssignment","src":"12462:33:53","value":{"arguments":[{"name":"value","nativeSrc":"12489:5:53","nodeType":"YulIdentifier","src":"12489:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12471:17:53","nodeType":"YulIdentifier","src":"12471:17:53"},"nativeSrc":"12471:24:53","nodeType":"YulFunctionCall","src":"12471:24:53"},"variableNames":[{"name":"value","nativeSrc":"12462:5:53","nodeType":"YulIdentifier","src":"12462:5:53"}]},{"body":{"nativeSrc":"12585:22:53","nodeType":"YulBlock","src":"12585:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12587:16:53","nodeType":"YulIdentifier","src":"12587:16:53"},"nativeSrc":"12587:18:53","nodeType":"YulFunctionCall","src":"12587:18:53"},"nativeSrc":"12587:18:53","nodeType":"YulExpressionStatement","src":"12587:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"12510:5:53","nodeType":"YulIdentifier","src":"12510:5:53"},{"kind":"number","nativeSrc":"12517:66:53","nodeType":"YulLiteral","src":"12517:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"12507:2:53","nodeType":"YulIdentifier","src":"12507:2:53"},"nativeSrc":"12507:77:53","nodeType":"YulFunctionCall","src":"12507:77:53"},"nativeSrc":"12504:103:53","nodeType":"YulIf","src":"12504:103:53"},{"nativeSrc":"12616:20:53","nodeType":"YulAssignment","src":"12616:20:53","value":{"arguments":[{"name":"value","nativeSrc":"12627:5:53","nodeType":"YulIdentifier","src":"12627:5:53"},{"kind":"number","nativeSrc":"12634:1:53","nodeType":"YulLiteral","src":"12634:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12623:3:53","nodeType":"YulIdentifier","src":"12623:3:53"},"nativeSrc":"12623:13:53","nodeType":"YulFunctionCall","src":"12623:13:53"},"variableNames":[{"name":"ret","nativeSrc":"12616:3:53","nodeType":"YulIdentifier","src":"12616:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"12409:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12438:5:53","nodeType":"YulTypedName","src":"12438:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"12448:3:53","nodeType":"YulTypedName","src":"12448:3:53","type":""}],"src":"12409:233:53"},{"body":{"nativeSrc":"12722:40:53","nodeType":"YulBlock","src":"12722:40:53","statements":[{"nativeSrc":"12733:22:53","nodeType":"YulAssignment","src":"12733:22:53","value":{"arguments":[{"name":"value","nativeSrc":"12749:5:53","nodeType":"YulIdentifier","src":"12749:5:53"}],"functionName":{"name":"mload","nativeSrc":"12743:5:53","nodeType":"YulIdentifier","src":"12743:5:53"},"nativeSrc":"12743:12:53","nodeType":"YulFunctionCall","src":"12743:12:53"},"variableNames":[{"name":"length","nativeSrc":"12733:6:53","nodeType":"YulIdentifier","src":"12733:6:53"}]}]},"name":"array_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12648:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12705:5:53","nodeType":"YulTypedName","src":"12705:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"12715:6:53","nodeType":"YulTypedName","src":"12715:6:53","type":""}],"src":"12648:114:53"},{"body":{"nativeSrc":"12879:73:53","nodeType":"YulBlock","src":"12879:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12896:3:53","nodeType":"YulIdentifier","src":"12896:3:53"},{"name":"length","nativeSrc":"12901:6:53","nodeType":"YulIdentifier","src":"12901:6:53"}],"functionName":{"name":"mstore","nativeSrc":"12889:6:53","nodeType":"YulIdentifier","src":"12889:6:53"},"nativeSrc":"12889:19:53","nodeType":"YulFunctionCall","src":"12889:19:53"},"nativeSrc":"12889:19:53","nodeType":"YulExpressionStatement","src":"12889:19:53"},{"nativeSrc":"12917:29:53","nodeType":"YulAssignment","src":"12917:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"12936:3:53","nodeType":"YulIdentifier","src":"12936:3:53"},{"kind":"number","nativeSrc":"12941:4:53","nodeType":"YulLiteral","src":"12941:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12932:3:53","nodeType":"YulIdentifier","src":"12932:3:53"},"nativeSrc":"12932:14:53","nodeType":"YulFunctionCall","src":"12932:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"12917:11:53","nodeType":"YulIdentifier","src":"12917:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"12768:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12851:3:53","nodeType":"YulTypedName","src":"12851:3:53","type":""},{"name":"length","nativeSrc":"12856:6:53","nodeType":"YulTypedName","src":"12856:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12867:11:53","nodeType":"YulTypedName","src":"12867:11:53","type":""}],"src":"12768:184:53"},{"body":{"nativeSrc":"13030:60:53","nodeType":"YulBlock","src":"13030:60:53","statements":[{"nativeSrc":"13040:11:53","nodeType":"YulAssignment","src":"13040:11:53","value":{"name":"ptr","nativeSrc":"13048:3:53","nodeType":"YulIdentifier","src":"13048:3:53"},"variableNames":[{"name":"data","nativeSrc":"13040:4:53","nodeType":"YulIdentifier","src":"13040:4:53"}]},{"nativeSrc":"13061:22:53","nodeType":"YulAssignment","src":"13061:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13073:3:53","nodeType":"YulIdentifier","src":"13073:3:53"},{"kind":"number","nativeSrc":"13078:4:53","nodeType":"YulLiteral","src":"13078:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13069:3:53","nodeType":"YulIdentifier","src":"13069:3:53"},"nativeSrc":"13069:14:53","nodeType":"YulFunctionCall","src":"13069:14:53"},"variableNames":[{"name":"data","nativeSrc":"13061:4:53","nodeType":"YulIdentifier","src":"13061:4:53"}]}]},"name":"array_dataslot_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12958:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13017:3:53","nodeType":"YulTypedName","src":"13017:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"13025:4:53","nodeType":"YulTypedName","src":"13025:4:53","type":""}],"src":"12958:132:53"},{"body":{"nativeSrc":"13151:53:53","nodeType":"YulBlock","src":"13151:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13168:3:53","nodeType":"YulIdentifier","src":"13168:3:53"},{"arguments":[{"name":"value","nativeSrc":"13191:5:53","nodeType":"YulIdentifier","src":"13191:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"13173:17:53","nodeType":"YulIdentifier","src":"13173:17:53"},"nativeSrc":"13173:24:53","nodeType":"YulFunctionCall","src":"13173:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13161:6:53","nodeType":"YulIdentifier","src":"13161:6:53"},"nativeSrc":"13161:37:53","nodeType":"YulFunctionCall","src":"13161:37:53"},"nativeSrc":"13161:37:53","nodeType":"YulExpressionStatement","src":"13161:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"13096:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13139:5:53","nodeType":"YulTypedName","src":"13139:5:53","type":""},{"name":"pos","nativeSrc":"13146:3:53","nodeType":"YulTypedName","src":"13146:3:53","type":""}],"src":"13096:108:53"},{"body":{"nativeSrc":"13290:99:53","nodeType":"YulBlock","src":"13290:99:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13334:6:53","nodeType":"YulIdentifier","src":"13334:6:53"},{"name":"pos","nativeSrc":"13342:3:53","nodeType":"YulIdentifier","src":"13342:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"13300:33:53","nodeType":"YulIdentifier","src":"13300:33:53"},"nativeSrc":"13300:46:53","nodeType":"YulFunctionCall","src":"13300:46:53"},"nativeSrc":"13300:46:53","nodeType":"YulExpressionStatement","src":"13300:46:53"},{"nativeSrc":"13355:28:53","nodeType":"YulAssignment","src":"13355:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"13373:3:53","nodeType":"YulIdentifier","src":"13373:3:53"},{"kind":"number","nativeSrc":"13378:4:53","nodeType":"YulLiteral","src":"13378:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13369:3:53","nodeType":"YulIdentifier","src":"13369:3:53"},"nativeSrc":"13369:14:53","nodeType":"YulFunctionCall","src":"13369:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"13355:10:53","nodeType":"YulIdentifier","src":"13355:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"13210:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"13263:6:53","nodeType":"YulTypedName","src":"13263:6:53","type":""},{"name":"pos","nativeSrc":"13271:3:53","nodeType":"YulTypedName","src":"13271:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"13279:10:53","nodeType":"YulTypedName","src":"13279:10:53","type":""}],"src":"13210:179:53"},{"body":{"nativeSrc":"13470:38:53","nodeType":"YulBlock","src":"13470:38:53","statements":[{"nativeSrc":"13480:22:53","nodeType":"YulAssignment","src":"13480:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13492:3:53","nodeType":"YulIdentifier","src":"13492:3:53"},{"kind":"number","nativeSrc":"13497:4:53","nodeType":"YulLiteral","src":"13497:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13488:3:53","nodeType":"YulIdentifier","src":"13488:3:53"},"nativeSrc":"13488:14:53","nodeType":"YulFunctionCall","src":"13488:14:53"},"variableNames":[{"name":"next","nativeSrc":"13480:4:53","nodeType":"YulIdentifier","src":"13480:4:53"}]}]},"name":"array_nextElement_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13395:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13457:3:53","nodeType":"YulTypedName","src":"13457:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"13465:4:53","nodeType":"YulTypedName","src":"13465:4:53","type":""}],"src":"13395:113:53"},{"body":{"nativeSrc":"13668:608:53","nodeType":"YulBlock","src":"13668:608:53","statements":[{"nativeSrc":"13678:68:53","nodeType":"YulVariableDeclaration","src":"13678:68:53","value":{"arguments":[{"name":"value","nativeSrc":"13740:5:53","nodeType":"YulIdentifier","src":"13740:5:53"}],"functionName":{"name":"array_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13692:47:53","nodeType":"YulIdentifier","src":"13692:47:53"},"nativeSrc":"13692:54:53","nodeType":"YulFunctionCall","src":"13692:54:53"},"variables":[{"name":"length","nativeSrc":"13682:6:53","nodeType":"YulTypedName","src":"13682:6:53","type":""}]},{"nativeSrc":"13755:93:53","nodeType":"YulAssignment","src":"13755:93:53","value":{"arguments":[{"name":"pos","nativeSrc":"13836:3:53","nodeType":"YulIdentifier","src":"13836:3:53"},{"name":"length","nativeSrc":"13841:6:53","nodeType":"YulIdentifier","src":"13841:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"13762:73:53","nodeType":"YulIdentifier","src":"13762:73:53"},"nativeSrc":"13762:86:53","nodeType":"YulFunctionCall","src":"13762:86:53"},"variableNames":[{"name":"pos","nativeSrc":"13755:3:53","nodeType":"YulIdentifier","src":"13755:3:53"}]},{"nativeSrc":"13857:71:53","nodeType":"YulVariableDeclaration","src":"13857:71:53","value":{"arguments":[{"name":"value","nativeSrc":"13922:5:53","nodeType":"YulIdentifier","src":"13922:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13872:49:53","nodeType":"YulIdentifier","src":"13872:49:53"},"nativeSrc":"13872:56:53","nodeType":"YulFunctionCall","src":"13872:56:53"},"variables":[{"name":"baseRef","nativeSrc":"13861:7:53","nodeType":"YulTypedName","src":"13861:7:53","type":""}]},{"nativeSrc":"13937:21:53","nodeType":"YulVariableDeclaration","src":"13937:21:53","value":{"name":"baseRef","nativeSrc":"13951:7:53","nodeType":"YulIdentifier","src":"13951:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"13941:6:53","nodeType":"YulTypedName","src":"13941:6:53","type":""}]},{"body":{"nativeSrc":"14027:224:53","nodeType":"YulBlock","src":"14027:224:53","statements":[{"nativeSrc":"14041:34:53","nodeType":"YulVariableDeclaration","src":"14041:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14068:6:53","nodeType":"YulIdentifier","src":"14068:6:53"}],"functionName":{"name":"mload","nativeSrc":"14062:5:53","nodeType":"YulIdentifier","src":"14062:5:53"},"nativeSrc":"14062:13:53","nodeType":"YulFunctionCall","src":"14062:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"14045:13:53","nodeType":"YulTypedName","src":"14045:13:53","type":""}]},{"nativeSrc":"14088:70:53","nodeType":"YulAssignment","src":"14088:70:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"14139:13:53","nodeType":"YulIdentifier","src":"14139:13:53"},{"name":"pos","nativeSrc":"14154:3:53","nodeType":"YulIdentifier","src":"14154:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"14095:43:53","nodeType":"YulIdentifier","src":"14095:43:53"},"nativeSrc":"14095:63:53","nodeType":"YulFunctionCall","src":"14095:63:53"},"variableNames":[{"name":"pos","nativeSrc":"14088:3:53","nodeType":"YulIdentifier","src":"14088:3:53"}]},{"nativeSrc":"14171:70:53","nodeType":"YulAssignment","src":"14171:70:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14234:6:53","nodeType":"YulIdentifier","src":"14234:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14181:52:53","nodeType":"YulIdentifier","src":"14181:52:53"},"nativeSrc":"14181:60:53","nodeType":"YulFunctionCall","src":"14181:60:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"14171:6:53","nodeType":"YulIdentifier","src":"14171:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"13989:1:53","nodeType":"YulIdentifier","src":"13989:1:53"},{"name":"length","nativeSrc":"13992:6:53","nodeType":"YulIdentifier","src":"13992:6:53"}],"functionName":{"name":"lt","nativeSrc":"13986:2:53","nodeType":"YulIdentifier","src":"13986:2:53"},"nativeSrc":"13986:13:53","nodeType":"YulFunctionCall","src":"13986:13:53"},"nativeSrc":"13967:284:53","nodeType":"YulForLoop","post":{"nativeSrc":"14000:18:53","nodeType":"YulBlock","src":"14000:18:53","statements":[{"nativeSrc":"14002:14:53","nodeType":"YulAssignment","src":"14002:14:53","value":{"arguments":[{"name":"i","nativeSrc":"14011:1:53","nodeType":"YulIdentifier","src":"14011:1:53"},{"kind":"number","nativeSrc":"14014:1:53","nodeType":"YulLiteral","src":"14014:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14007:3:53","nodeType":"YulIdentifier","src":"14007:3:53"},"nativeSrc":"14007:9:53","nodeType":"YulFunctionCall","src":"14007:9:53"},"variableNames":[{"name":"i","nativeSrc":"14002:1:53","nodeType":"YulIdentifier","src":"14002:1:53"}]}]},"pre":{"nativeSrc":"13971:14:53","nodeType":"YulBlock","src":"13971:14:53","statements":[{"nativeSrc":"13973:10:53","nodeType":"YulVariableDeclaration","src":"13973:10:53","value":{"kind":"number","nativeSrc":"13982:1:53","nodeType":"YulLiteral","src":"13982:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"13977:1:53","nodeType":"YulTypedName","src":"13977:1:53","type":""}]}]},"src":"13967:284:53"},{"nativeSrc":"14260:10:53","nodeType":"YulAssignment","src":"14260:10:53","value":{"name":"pos","nativeSrc":"14267:3:53","nodeType":"YulIdentifier","src":"14267:3:53"},"variableNames":[{"name":"end","nativeSrc":"14260:3:53","nodeType":"YulIdentifier","src":"14260:3:53"}]}]},"name":"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"13544:732:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13647:5:53","nodeType":"YulTypedName","src":"13647:5:53","type":""},{"name":"pos","nativeSrc":"13654:3:53","nodeType":"YulTypedName","src":"13654:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13663:3:53","nodeType":"YulTypedName","src":"13663:3:53","type":""}],"src":"13544:732:53"},{"body":{"nativeSrc":"14353:40:53","nodeType":"YulBlock","src":"14353:40:53","statements":[{"nativeSrc":"14364:22:53","nodeType":"YulAssignment","src":"14364:22:53","value":{"arguments":[{"name":"value","nativeSrc":"14380:5:53","nodeType":"YulIdentifier","src":"14380:5:53"}],"functionName":{"name":"mload","nativeSrc":"14374:5:53","nodeType":"YulIdentifier","src":"14374:5:53"},"nativeSrc":"14374:12:53","nodeType":"YulFunctionCall","src":"14374:12:53"},"variableNames":[{"name":"length","nativeSrc":"14364:6:53","nodeType":"YulIdentifier","src":"14364:6:53"}]}]},"name":"array_length_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14282:111:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14336:5:53","nodeType":"YulTypedName","src":"14336:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"14346:6:53","nodeType":"YulTypedName","src":"14346:6:53","type":""}],"src":"14282:111:53"},{"body":{"nativeSrc":"14507:73:53","nodeType":"YulBlock","src":"14507:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14524:3:53","nodeType":"YulIdentifier","src":"14524:3:53"},{"name":"length","nativeSrc":"14529:6:53","nodeType":"YulIdentifier","src":"14529:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14517:6:53","nodeType":"YulIdentifier","src":"14517:6:53"},"nativeSrc":"14517:19:53","nodeType":"YulFunctionCall","src":"14517:19:53"},"nativeSrc":"14517:19:53","nodeType":"YulExpressionStatement","src":"14517:19:53"},{"nativeSrc":"14545:29:53","nodeType":"YulAssignment","src":"14545:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"14564:3:53","nodeType":"YulIdentifier","src":"14564:3:53"},{"kind":"number","nativeSrc":"14569:4:53","nodeType":"YulLiteral","src":"14569:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14560:3:53","nodeType":"YulIdentifier","src":"14560:3:53"},"nativeSrc":"14560:14:53","nodeType":"YulFunctionCall","src":"14560:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"14545:11:53","nodeType":"YulIdentifier","src":"14545:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"14399:181:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14479:3:53","nodeType":"YulTypedName","src":"14479:3:53","type":""},{"name":"length","nativeSrc":"14484:6:53","nodeType":"YulTypedName","src":"14484:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14495:11:53","nodeType":"YulTypedName","src":"14495:11:53","type":""}],"src":"14399:181:53"},{"body":{"nativeSrc":"14655:60:53","nodeType":"YulBlock","src":"14655:60:53","statements":[{"nativeSrc":"14665:11:53","nodeType":"YulAssignment","src":"14665:11:53","value":{"name":"ptr","nativeSrc":"14673:3:53","nodeType":"YulIdentifier","src":"14673:3:53"},"variableNames":[{"name":"data","nativeSrc":"14665:4:53","nodeType":"YulIdentifier","src":"14665:4:53"}]},{"nativeSrc":"14686:22:53","nodeType":"YulAssignment","src":"14686:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"14698:3:53","nodeType":"YulIdentifier","src":"14698:3:53"},{"kind":"number","nativeSrc":"14703:4:53","nodeType":"YulLiteral","src":"14703:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14694:3:53","nodeType":"YulIdentifier","src":"14694:3:53"},"nativeSrc":"14694:14:53","nodeType":"YulFunctionCall","src":"14694:14:53"},"variableNames":[{"name":"data","nativeSrc":"14686:4:53","nodeType":"YulIdentifier","src":"14686:4:53"}]}]},"name":"array_dataslot_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14586:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14642:3:53","nodeType":"YulTypedName","src":"14642:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"14650:4:53","nodeType":"YulTypedName","src":"14650:4:53","type":""}],"src":"14586:129:53"},{"body":{"nativeSrc":"14770:50:53","nodeType":"YulBlock","src":"14770:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14787:3:53","nodeType":"YulIdentifier","src":"14787:3:53"},{"arguments":[{"name":"value","nativeSrc":"14807:5:53","nodeType":"YulIdentifier","src":"14807:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"14792:14:53","nodeType":"YulIdentifier","src":"14792:14:53"},"nativeSrc":"14792:21:53","nodeType":"YulFunctionCall","src":"14792:21:53"}],"functionName":{"name":"mstore","nativeSrc":"14780:6:53","nodeType":"YulIdentifier","src":"14780:6:53"},"nativeSrc":"14780:34:53","nodeType":"YulFunctionCall","src":"14780:34:53"},"nativeSrc":"14780:34:53","nodeType":"YulExpressionStatement","src":"14780:34:53"}]},"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"14721:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14758:5:53","nodeType":"YulTypedName","src":"14758:5:53","type":""},{"name":"pos","nativeSrc":"14765:3:53","nodeType":"YulTypedName","src":"14765:3:53","type":""}],"src":"14721:99:53"},{"body":{"nativeSrc":"14900:93:53","nodeType":"YulBlock","src":"14900:93:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"14938:6:53","nodeType":"YulIdentifier","src":"14938:6:53"},{"name":"pos","nativeSrc":"14946:3:53","nodeType":"YulIdentifier","src":"14946:3:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"14910:27:53","nodeType":"YulIdentifier","src":"14910:27:53"},"nativeSrc":"14910:40:53","nodeType":"YulFunctionCall","src":"14910:40:53"},"nativeSrc":"14910:40:53","nodeType":"YulExpressionStatement","src":"14910:40:53"},{"nativeSrc":"14959:28:53","nodeType":"YulAssignment","src":"14959:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"14977:3:53","nodeType":"YulIdentifier","src":"14977:3:53"},{"kind":"number","nativeSrc":"14982:4:53","nodeType":"YulLiteral","src":"14982:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14973:3:53","nodeType":"YulIdentifier","src":"14973:3:53"},"nativeSrc":"14973:14:53","nodeType":"YulFunctionCall","src":"14973:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"14959:10:53","nodeType":"YulIdentifier","src":"14959:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"14826:167:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"14873:6:53","nodeType":"YulTypedName","src":"14873:6:53","type":""},{"name":"pos","nativeSrc":"14881:3:53","nodeType":"YulTypedName","src":"14881:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"14889:10:53","nodeType":"YulTypedName","src":"14889:10:53","type":""}],"src":"14826:167:53"},{"body":{"nativeSrc":"15071:38:53","nodeType":"YulBlock","src":"15071:38:53","statements":[{"nativeSrc":"15081:22:53","nodeType":"YulAssignment","src":"15081:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"15093:3:53","nodeType":"YulIdentifier","src":"15093:3:53"},{"kind":"number","nativeSrc":"15098:4:53","nodeType":"YulLiteral","src":"15098:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15089:3:53","nodeType":"YulIdentifier","src":"15089:3:53"},"nativeSrc":"15089:14:53","nodeType":"YulFunctionCall","src":"15089:14:53"},"variableNames":[{"name":"next","nativeSrc":"15081:4:53","nodeType":"YulIdentifier","src":"15081:4:53"}]}]},"name":"array_nextElement_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14999:110:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"15058:3:53","nodeType":"YulTypedName","src":"15058:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"15066:4:53","nodeType":"YulTypedName","src":"15066:4:53","type":""}],"src":"14999:110:53"},{"body":{"nativeSrc":"15257:590:53","nodeType":"YulBlock","src":"15257:590:53","statements":[{"nativeSrc":"15267:65:53","nodeType":"YulVariableDeclaration","src":"15267:65:53","value":{"arguments":[{"name":"value","nativeSrc":"15326:5:53","nodeType":"YulIdentifier","src":"15326:5:53"}],"functionName":{"name":"array_length_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15281:44:53","nodeType":"YulIdentifier","src":"15281:44:53"},"nativeSrc":"15281:51:53","nodeType":"YulFunctionCall","src":"15281:51:53"},"variables":[{"name":"length","nativeSrc":"15271:6:53","nodeType":"YulTypedName","src":"15271:6:53","type":""}]},{"nativeSrc":"15341:90:53","nodeType":"YulAssignment","src":"15341:90:53","value":{"arguments":[{"name":"pos","nativeSrc":"15419:3:53","nodeType":"YulIdentifier","src":"15419:3:53"},{"name":"length","nativeSrc":"15424:6:53","nodeType":"YulIdentifier","src":"15424:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"15348:70:53","nodeType":"YulIdentifier","src":"15348:70:53"},"nativeSrc":"15348:83:53","nodeType":"YulFunctionCall","src":"15348:83:53"},"variableNames":[{"name":"pos","nativeSrc":"15341:3:53","nodeType":"YulIdentifier","src":"15341:3:53"}]},{"nativeSrc":"15440:68:53","nodeType":"YulVariableDeclaration","src":"15440:68:53","value":{"arguments":[{"name":"value","nativeSrc":"15502:5:53","nodeType":"YulIdentifier","src":"15502:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15455:46:53","nodeType":"YulIdentifier","src":"15455:46:53"},"nativeSrc":"15455:53:53","nodeType":"YulFunctionCall","src":"15455:53:53"},"variables":[{"name":"baseRef","nativeSrc":"15444:7:53","nodeType":"YulTypedName","src":"15444:7:53","type":""}]},{"nativeSrc":"15517:21:53","nodeType":"YulVariableDeclaration","src":"15517:21:53","value":{"name":"baseRef","nativeSrc":"15531:7:53","nodeType":"YulIdentifier","src":"15531:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"15521:6:53","nodeType":"YulTypedName","src":"15521:6:53","type":""}]},{"body":{"nativeSrc":"15607:215:53","nodeType":"YulBlock","src":"15607:215:53","statements":[{"nativeSrc":"15621:34:53","nodeType":"YulVariableDeclaration","src":"15621:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15648:6:53","nodeType":"YulIdentifier","src":"15648:6:53"}],"functionName":{"name":"mload","nativeSrc":"15642:5:53","nodeType":"YulIdentifier","src":"15642:5:53"},"nativeSrc":"15642:13:53","nodeType":"YulFunctionCall","src":"15642:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"15625:13:53","nodeType":"YulTypedName","src":"15625:13:53","type":""}]},{"nativeSrc":"15668:64:53","nodeType":"YulAssignment","src":"15668:64:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"15713:13:53","nodeType":"YulIdentifier","src":"15713:13:53"},{"name":"pos","nativeSrc":"15728:3:53","nodeType":"YulIdentifier","src":"15728:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"15675:37:53","nodeType":"YulIdentifier","src":"15675:37:53"},"nativeSrc":"15675:57:53","nodeType":"YulFunctionCall","src":"15675:57:53"},"variableNames":[{"name":"pos","nativeSrc":"15668:3:53","nodeType":"YulIdentifier","src":"15668:3:53"}]},{"nativeSrc":"15745:67:53","nodeType":"YulAssignment","src":"15745:67:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15805:6:53","nodeType":"YulIdentifier","src":"15805:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15755:49:53","nodeType":"YulIdentifier","src":"15755:49:53"},"nativeSrc":"15755:57:53","nodeType":"YulFunctionCall","src":"15755:57:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"15745:6:53","nodeType":"YulIdentifier","src":"15745:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15569:1:53","nodeType":"YulIdentifier","src":"15569:1:53"},{"name":"length","nativeSrc":"15572:6:53","nodeType":"YulIdentifier","src":"15572:6:53"}],"functionName":{"name":"lt","nativeSrc":"15566:2:53","nodeType":"YulIdentifier","src":"15566:2:53"},"nativeSrc":"15566:13:53","nodeType":"YulFunctionCall","src":"15566:13:53"},"nativeSrc":"15547:275:53","nodeType":"YulForLoop","post":{"nativeSrc":"15580:18:53","nodeType":"YulBlock","src":"15580:18:53","statements":[{"nativeSrc":"15582:14:53","nodeType":"YulAssignment","src":"15582:14:53","value":{"arguments":[{"name":"i","nativeSrc":"15591:1:53","nodeType":"YulIdentifier","src":"15591:1:53"},{"kind":"number","nativeSrc":"15594:1:53","nodeType":"YulLiteral","src":"15594:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15587:3:53","nodeType":"YulIdentifier","src":"15587:3:53"},"nativeSrc":"15587:9:53","nodeType":"YulFunctionCall","src":"15587:9:53"},"variableNames":[{"name":"i","nativeSrc":"15582:1:53","nodeType":"YulIdentifier","src":"15582:1:53"}]}]},"pre":{"nativeSrc":"15551:14:53","nodeType":"YulBlock","src":"15551:14:53","statements":[{"nativeSrc":"15553:10:53","nodeType":"YulVariableDeclaration","src":"15553:10:53","value":{"kind":"number","nativeSrc":"15562:1:53","nodeType":"YulLiteral","src":"15562:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15557:1:53","nodeType":"YulTypedName","src":"15557:1:53","type":""}]}]},"src":"15547:275:53"},{"nativeSrc":"15831:10:53","nodeType":"YulAssignment","src":"15831:10:53","value":{"name":"pos","nativeSrc":"15838:3:53","nodeType":"YulIdentifier","src":"15838:3:53"},"variableNames":[{"name":"end","nativeSrc":"15831:3:53","nodeType":"YulIdentifier","src":"15831:3:53"}]}]},"name":"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"15139:708:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15236:5:53","nodeType":"YulTypedName","src":"15236:5:53","type":""},{"name":"pos","nativeSrc":"15243:3:53","nodeType":"YulTypedName","src":"15243:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15252:3:53","nodeType":"YulTypedName","src":"15252:3:53","type":""}],"src":"15139:708:53"},{"body":{"nativeSrc":"16073:402:53","nodeType":"YulBlock","src":"16073:402:53","statements":[{"nativeSrc":"16083:26:53","nodeType":"YulAssignment","src":"16083:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16095:9:53","nodeType":"YulIdentifier","src":"16095:9:53"},{"kind":"number","nativeSrc":"16106:2:53","nodeType":"YulLiteral","src":"16106:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16091:3:53","nodeType":"YulIdentifier","src":"16091:3:53"},"nativeSrc":"16091:18:53","nodeType":"YulFunctionCall","src":"16091:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16083:4:53","nodeType":"YulIdentifier","src":"16083:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16130:9:53","nodeType":"YulIdentifier","src":"16130:9:53"},{"kind":"number","nativeSrc":"16141:1:53","nodeType":"YulLiteral","src":"16141:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16126:3:53","nodeType":"YulIdentifier","src":"16126:3:53"},"nativeSrc":"16126:17:53","nodeType":"YulFunctionCall","src":"16126:17:53"},{"arguments":[{"name":"tail","nativeSrc":"16149:4:53","nodeType":"YulIdentifier","src":"16149:4:53"},{"name":"headStart","nativeSrc":"16155:9:53","nodeType":"YulIdentifier","src":"16155:9:53"}],"functionName":{"name":"sub","nativeSrc":"16145:3:53","nodeType":"YulIdentifier","src":"16145:3:53"},"nativeSrc":"16145:20:53","nodeType":"YulFunctionCall","src":"16145:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16119:6:53","nodeType":"YulIdentifier","src":"16119:6:53"},"nativeSrc":"16119:47:53","nodeType":"YulFunctionCall","src":"16119:47:53"},"nativeSrc":"16119:47:53","nodeType":"YulExpressionStatement","src":"16119:47:53"},{"nativeSrc":"16175:116:53","nodeType":"YulAssignment","src":"16175:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"16277:6:53","nodeType":"YulIdentifier","src":"16277:6:53"},{"name":"tail","nativeSrc":"16286:4:53","nodeType":"YulIdentifier","src":"16286:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"16183:93:53","nodeType":"YulIdentifier","src":"16183:93:53"},"nativeSrc":"16183:108:53","nodeType":"YulFunctionCall","src":"16183:108:53"},"variableNames":[{"name":"tail","nativeSrc":"16175:4:53","nodeType":"YulIdentifier","src":"16175:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16312:9:53","nodeType":"YulIdentifier","src":"16312:9:53"},{"kind":"number","nativeSrc":"16323:2:53","nodeType":"YulLiteral","src":"16323:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16308:3:53","nodeType":"YulIdentifier","src":"16308:3:53"},"nativeSrc":"16308:18:53","nodeType":"YulFunctionCall","src":"16308:18:53"},{"arguments":[{"name":"tail","nativeSrc":"16332:4:53","nodeType":"YulIdentifier","src":"16332:4:53"},{"name":"headStart","nativeSrc":"16338:9:53","nodeType":"YulIdentifier","src":"16338:9:53"}],"functionName":{"name":"sub","nativeSrc":"16328:3:53","nodeType":"YulIdentifier","src":"16328:3:53"},"nativeSrc":"16328:20:53","nodeType":"YulFunctionCall","src":"16328:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16301:6:53","nodeType":"YulIdentifier","src":"16301:6:53"},"nativeSrc":"16301:48:53","nodeType":"YulFunctionCall","src":"16301:48:53"},"nativeSrc":"16301:48:53","nodeType":"YulExpressionStatement","src":"16301:48:53"},{"nativeSrc":"16358:110:53","nodeType":"YulAssignment","src":"16358:110:53","value":{"arguments":[{"name":"value1","nativeSrc":"16454:6:53","nodeType":"YulIdentifier","src":"16454:6:53"},{"name":"tail","nativeSrc":"16463:4:53","nodeType":"YulIdentifier","src":"16463:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"16366:87:53","nodeType":"YulIdentifier","src":"16366:87:53"},"nativeSrc":"16366:102:53","nodeType":"YulFunctionCall","src":"16366:102:53"},"variableNames":[{"name":"tail","nativeSrc":"16358:4:53","nodeType":"YulIdentifier","src":"16358:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"15853:622:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16037:9:53","nodeType":"YulTypedName","src":"16037:9:53","type":""},{"name":"value1","nativeSrc":"16049:6:53","nodeType":"YulTypedName","src":"16049:6:53","type":""},{"name":"value0","nativeSrc":"16057:6:53","nodeType":"YulTypedName","src":"16057:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16068:4:53","nodeType":"YulTypedName","src":"16068:4:53","type":""}],"src":"15853:622:53"},{"body":{"nativeSrc":"16587:8:53","nodeType":"YulBlock","src":"16587:8:53","statements":[]},"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"16481:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16579:6:53","nodeType":"YulTypedName","src":"16579:6:53","type":""}],"src":"16481:114:53"},{"body":{"nativeSrc":"16746:217:53","nodeType":"YulBlock","src":"16746:217:53","statements":[{"nativeSrc":"16756:72:53","nodeType":"YulAssignment","src":"16756:72:53","value":{"arguments":[{"name":"pos","nativeSrc":"16821:3:53","nodeType":"YulIdentifier","src":"16821:3:53"},{"kind":"number","nativeSrc":"16826:1:53","nodeType":"YulLiteral","src":"16826:1:53","type":"","value":"0"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"16763:57:53","nodeType":"YulIdentifier","src":"16763:57:53"},"nativeSrc":"16763:65:53","nodeType":"YulFunctionCall","src":"16763:65:53"},"variableNames":[{"name":"pos","nativeSrc":"16756:3:53","nodeType":"YulIdentifier","src":"16756:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16926:3:53","nodeType":"YulIdentifier","src":"16926:3:53"}],"functionName":{"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"16837:88:53","nodeType":"YulIdentifier","src":"16837:88:53"},"nativeSrc":"16837:93:53","nodeType":"YulFunctionCall","src":"16837:93:53"},"nativeSrc":"16837:93:53","nodeType":"YulExpressionStatement","src":"16837:93:53"},{"nativeSrc":"16939:18:53","nodeType":"YulAssignment","src":"16939:18:53","value":{"arguments":[{"name":"pos","nativeSrc":"16950:3:53","nodeType":"YulIdentifier","src":"16950:3:53"},{"kind":"number","nativeSrc":"16955:1:53","nodeType":"YulLiteral","src":"16955:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16946:3:53","nodeType":"YulIdentifier","src":"16946:3:53"},"nativeSrc":"16946:11:53","nodeType":"YulFunctionCall","src":"16946:11:53"},"variableNames":[{"name":"end","nativeSrc":"16939:3:53","nodeType":"YulIdentifier","src":"16939:3:53"}]}]},"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16601:362:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16734:3:53","nodeType":"YulTypedName","src":"16734:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16742:3:53","nodeType":"YulTypedName","src":"16742:3:53","type":""}],"src":"16601:362:53"},{"body":{"nativeSrc":"17167:329:53","nodeType":"YulBlock","src":"17167:329:53","statements":[{"nativeSrc":"17177:26:53","nodeType":"YulAssignment","src":"17177:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17189:9:53","nodeType":"YulIdentifier","src":"17189:9:53"},{"kind":"number","nativeSrc":"17200:2:53","nodeType":"YulLiteral","src":"17200:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17185:3:53","nodeType":"YulIdentifier","src":"17185:3:53"},"nativeSrc":"17185:18:53","nodeType":"YulFunctionCall","src":"17185:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17177:4:53","nodeType":"YulIdentifier","src":"17177:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17257:6:53","nodeType":"YulIdentifier","src":"17257:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17270:9:53","nodeType":"YulIdentifier","src":"17270:9:53"},{"kind":"number","nativeSrc":"17281:1:53","nodeType":"YulLiteral","src":"17281:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17266:3:53","nodeType":"YulIdentifier","src":"17266:3:53"},"nativeSrc":"17266:17:53","nodeType":"YulFunctionCall","src":"17266:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17213:43:53","nodeType":"YulIdentifier","src":"17213:43:53"},"nativeSrc":"17213:71:53","nodeType":"YulFunctionCall","src":"17213:71:53"},"nativeSrc":"17213:71:53","nodeType":"YulExpressionStatement","src":"17213:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17305:9:53","nodeType":"YulIdentifier","src":"17305:9:53"},{"kind":"number","nativeSrc":"17316:2:53","nodeType":"YulLiteral","src":"17316:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17301:3:53","nodeType":"YulIdentifier","src":"17301:3:53"},"nativeSrc":"17301:18:53","nodeType":"YulFunctionCall","src":"17301:18:53"},{"arguments":[{"name":"tail","nativeSrc":"17325:4:53","nodeType":"YulIdentifier","src":"17325:4:53"},{"name":"headStart","nativeSrc":"17331:9:53","nodeType":"YulIdentifier","src":"17331:9:53"}],"functionName":{"name":"sub","nativeSrc":"17321:3:53","nodeType":"YulIdentifier","src":"17321:3:53"},"nativeSrc":"17321:20:53","nodeType":"YulFunctionCall","src":"17321:20:53"}],"functionName":{"name":"mstore","nativeSrc":"17294:6:53","nodeType":"YulIdentifier","src":"17294:6:53"},"nativeSrc":"17294:48:53","nodeType":"YulFunctionCall","src":"17294:48:53"},"nativeSrc":"17294:48:53","nodeType":"YulExpressionStatement","src":"17294:48:53"},{"nativeSrc":"17351:138:53","nodeType":"YulAssignment","src":"17351:138:53","value":{"arguments":[{"name":"tail","nativeSrc":"17484:4:53","nodeType":"YulIdentifier","src":"17484:4:53"}],"functionName":{"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17359:123:53","nodeType":"YulIdentifier","src":"17359:123:53"},"nativeSrc":"17359:130:53","nodeType":"YulFunctionCall","src":"17359:130:53"},"variableNames":[{"name":"tail","nativeSrc":"17351:4:53","nodeType":"YulIdentifier","src":"17351:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16969:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17139:9:53","nodeType":"YulTypedName","src":"17139:9:53","type":""},{"name":"value0","nativeSrc":"17151:6:53","nodeType":"YulTypedName","src":"17151:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17162:4:53","nodeType":"YulTypedName","src":"17162:4:53","type":""}],"src":"16969:527:53"},{"body":{"nativeSrc":"17542:76:53","nodeType":"YulBlock","src":"17542:76:53","statements":[{"body":{"nativeSrc":"17596:16:53","nodeType":"YulBlock","src":"17596:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17605:1:53","nodeType":"YulLiteral","src":"17605:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17608:1:53","nodeType":"YulLiteral","src":"17608:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17598:6:53","nodeType":"YulIdentifier","src":"17598:6:53"},"nativeSrc":"17598:12:53","nodeType":"YulFunctionCall","src":"17598:12:53"},"nativeSrc":"17598:12:53","nodeType":"YulExpressionStatement","src":"17598:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17565:5:53","nodeType":"YulIdentifier","src":"17565:5:53"},{"arguments":[{"name":"value","nativeSrc":"17587:5:53","nodeType":"YulIdentifier","src":"17587:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"17572:14:53","nodeType":"YulIdentifier","src":"17572:14:53"},"nativeSrc":"17572:21:53","nodeType":"YulFunctionCall","src":"17572:21:53"}],"functionName":{"name":"eq","nativeSrc":"17562:2:53","nodeType":"YulIdentifier","src":"17562:2:53"},"nativeSrc":"17562:32:53","nodeType":"YulFunctionCall","src":"17562:32:53"}],"functionName":{"name":"iszero","nativeSrc":"17555:6:53","nodeType":"YulIdentifier","src":"17555:6:53"},"nativeSrc":"17555:40:53","nodeType":"YulFunctionCall","src":"17555:40:53"},"nativeSrc":"17552:60:53","nodeType":"YulIf","src":"17552:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"17502:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17535:5:53","nodeType":"YulTypedName","src":"17535:5:53","type":""}],"src":"17502:116:53"},{"body":{"nativeSrc":"17684:77:53","nodeType":"YulBlock","src":"17684:77:53","statements":[{"nativeSrc":"17694:22:53","nodeType":"YulAssignment","src":"17694:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"17709:6:53","nodeType":"YulIdentifier","src":"17709:6:53"}],"functionName":{"name":"mload","nativeSrc":"17703:5:53","nodeType":"YulIdentifier","src":"17703:5:53"},"nativeSrc":"17703:13:53","nodeType":"YulFunctionCall","src":"17703:13:53"},"variableNames":[{"name":"value","nativeSrc":"17694:5:53","nodeType":"YulIdentifier","src":"17694:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17749:5:53","nodeType":"YulIdentifier","src":"17749:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"17725:23:53","nodeType":"YulIdentifier","src":"17725:23:53"},"nativeSrc":"17725:30:53","nodeType":"YulFunctionCall","src":"17725:30:53"},"nativeSrc":"17725:30:53","nodeType":"YulExpressionStatement","src":"17725:30:53"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17624:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17662:6:53","nodeType":"YulTypedName","src":"17662:6:53","type":""},{"name":"end","nativeSrc":"17670:3:53","nodeType":"YulTypedName","src":"17670:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17678:5:53","nodeType":"YulTypedName","src":"17678:5:53","type":""}],"src":"17624:137:53"},{"body":{"nativeSrc":"17841:271:53","nodeType":"YulBlock","src":"17841:271:53","statements":[{"body":{"nativeSrc":"17887:83:53","nodeType":"YulBlock","src":"17887:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17889:77:53","nodeType":"YulIdentifier","src":"17889:77:53"},"nativeSrc":"17889:79:53","nodeType":"YulFunctionCall","src":"17889:79:53"},"nativeSrc":"17889:79:53","nodeType":"YulExpressionStatement","src":"17889:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17862:7:53","nodeType":"YulIdentifier","src":"17862:7:53"},{"name":"headStart","nativeSrc":"17871:9:53","nodeType":"YulIdentifier","src":"17871:9:53"}],"functionName":{"name":"sub","nativeSrc":"17858:3:53","nodeType":"YulIdentifier","src":"17858:3:53"},"nativeSrc":"17858:23:53","nodeType":"YulFunctionCall","src":"17858:23:53"},{"kind":"number","nativeSrc":"17883:2:53","nodeType":"YulLiteral","src":"17883:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17854:3:53","nodeType":"YulIdentifier","src":"17854:3:53"},"nativeSrc":"17854:32:53","nodeType":"YulFunctionCall","src":"17854:32:53"},"nativeSrc":"17851:119:53","nodeType":"YulIf","src":"17851:119:53"},{"nativeSrc":"17980:125:53","nodeType":"YulBlock","src":"17980:125:53","statements":[{"nativeSrc":"17995:15:53","nodeType":"YulVariableDeclaration","src":"17995:15:53","value":{"kind":"number","nativeSrc":"18009:1:53","nodeType":"YulLiteral","src":"18009:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17999:6:53","nodeType":"YulTypedName","src":"17999:6:53","type":""}]},{"nativeSrc":"18024:71:53","nodeType":"YulAssignment","src":"18024:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18067:9:53","nodeType":"YulIdentifier","src":"18067:9:53"},{"name":"offset","nativeSrc":"18078:6:53","nodeType":"YulIdentifier","src":"18078:6:53"}],"functionName":{"name":"add","nativeSrc":"18063:3:53","nodeType":"YulIdentifier","src":"18063:3:53"},"nativeSrc":"18063:22:53","nodeType":"YulFunctionCall","src":"18063:22:53"},{"name":"dataEnd","nativeSrc":"18087:7:53","nodeType":"YulIdentifier","src":"18087:7:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18034:28:53","nodeType":"YulIdentifier","src":"18034:28:53"},"nativeSrc":"18034:61:53","nodeType":"YulFunctionCall","src":"18034:61:53"},"variableNames":[{"name":"value0","nativeSrc":"18024:6:53","nodeType":"YulIdentifier","src":"18024:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"17767:345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17811:9:53","nodeType":"YulTypedName","src":"17811:9:53","type":""},{"name":"dataEnd","nativeSrc":"17822:7:53","nodeType":"YulTypedName","src":"17822:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17834:6:53","nodeType":"YulTypedName","src":"17834:6:53","type":""}],"src":"17767:345:53"},{"body":{"nativeSrc":"18146:152:53","nodeType":"YulBlock","src":"18146:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18163:1:53","nodeType":"YulLiteral","src":"18163:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18166:77:53","nodeType":"YulLiteral","src":"18166:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18156:6:53","nodeType":"YulIdentifier","src":"18156:6:53"},"nativeSrc":"18156:88:53","nodeType":"YulFunctionCall","src":"18156:88:53"},"nativeSrc":"18156:88:53","nodeType":"YulExpressionStatement","src":"18156:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18260:1:53","nodeType":"YulLiteral","src":"18260:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"18263:4:53","nodeType":"YulLiteral","src":"18263:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"18253:6:53","nodeType":"YulIdentifier","src":"18253:6:53"},"nativeSrc":"18253:15:53","nodeType":"YulFunctionCall","src":"18253:15:53"},"nativeSrc":"18253:15:53","nodeType":"YulExpressionStatement","src":"18253:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18284:1:53","nodeType":"YulLiteral","src":"18284:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18287:4:53","nodeType":"YulLiteral","src":"18287:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18277:6:53","nodeType":"YulIdentifier","src":"18277:6:53"},"nativeSrc":"18277:15:53","nodeType":"YulFunctionCall","src":"18277:15:53"},"nativeSrc":"18277:15:53","nodeType":"YulExpressionStatement","src":"18277:15:53"}]},"name":"panic_error_0x32","nativeSrc":"18118:180:53","nodeType":"YulFunctionDefinition","src":"18118:180:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_SimpleAllowList_$13307_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_SimpleAllowList_$13307_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_SimpleAllowList_$13307__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_SimpleAllowList_$13307(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_SimpleAllowList_$13307(value) {\n if iszero(eq(value, cleanup_t_contract$_SimpleAllowList_$13307(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_SimpleAllowList_$13307(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_SimpleAllowList_$13307(value)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct AllowListIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$15428_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // allowList\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_SimpleAllowList_$13307(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$15428_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$15428_memory_ptr(add(headStart, offset), dataEnd)\n }\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$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_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$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_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function array_length_t_array$_t_bool_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bool_$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_bool_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bool_to_t_bool(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encodeUpdatedPos_t_bool_to_t_bool(value0, pos) -> updatedPos {\n abi_encode_t_bool_to_t_bool(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bool_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bool[] -> bool[]\n function abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bool_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bool_$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_bool_to_t_bool(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bool_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$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_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack( tail)\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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100fd575f3560e01c8063a4d66daf11610094578063e18e650811610063578063e18e6508146102df578063f04e283e1461031b578063f1c30ec014610337578063f2fde38b14610373578063fee81cf41461038f576100fd565b8063a4d66daf14610213578063c63ff8dd1461023d578063c884ef8314610279578063dcc59b6f146102b5576100fd565b806354d1f13d116100d057806354d1f13d146101ab578063715018a6146101b557806387b9d25c146101bf5780638da5cb5b146101e9576100fd565b806301ffc9a714610101578063256929621461013d578063439fab91146101475780634e7165a21461016f575b5f80fd5b34801561010c575f80fd5b5061012760048036038101906101229190610e8d565b6103cb565b6040516101349190610ed2565b60405180910390f35b610145610444565b005b348015610152575f80fd5b5061016d60048036038101906101689190610f4c565b610495565b005b34801561017a575f80fd5b5061019560048036038101906101909190610f4c565b610575565b6040516101a29190611007565b60405180910390f35b6101b36105cc565b005b6101bd610605565b005b3480156101ca575f80fd5b506101d3610618565b6040516101e091906110a1565b60405180910390f35b3480156101f4575f80fd5b506101fd61063d565b60405161020a91906110da565b60405180910390f35b34801561021e575f80fd5b50610227610665565b604051610234919061110b565b60405180910390f35b348015610248575f80fd5b50610263600480360381019061025e9190610f4c565b61066b565b6040516102709190610ed2565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a919061114e565b61082a565b6040516102ac9190610ed2565b60405180910390f35b3480156102c0575f80fd5b506102c9610847565b6040516102d6919061110b565b60405180910390f35b3480156102ea575f80fd5b5061030560048036038101906103009190610f4c565b61084c565b6040516103129190610ed2565b60405180910390f35b6103356004803603810190610330919061114e565b610969565b005b348015610342575f80fd5b5061035d60048036038101906103589190610f4c565b6109a7565b60405161036a9190610ed2565b60405180910390f35b61038d6004803603810190610388919061114e565b6109da565b005b34801561039a575f80fd5b506103b560048036038101906103b0919061114e565b610a03565b6040516103c2919061110b565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043d575061043c82610a1c565b5b9050919050565b5f61044d610a95565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61049e610a9f565b905080546003825580156104d05760018160011c14303b106104c75763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104e191906112ab565b90506104ec33610ac8565b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600381905550508015610570576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156105915761059061117d565b5b6040519080825280601f01601f1916602001820160405280156105c35781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61060d610b9e565b6106165f610bd5565b565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b5f610674610b9e565b5f838381019061068491906113ef565b90506003545f8081548092919061069a90611463565b919050551015806106f4575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561072b576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f80610790835f0151610c9b565b9150915060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b81526004016107f0929190611618565b5f604051808303815f87803b158015610807575f80fd5b505af1158015610819573d5f803e3d5ffd5b505050506001935050505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f80838381019061085d91906113ef565b90506003545f541080156108bb575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610960575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de825f01516040518263ffffffff1660e01b815260040161091f9190611670565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e91906116c6565b155b91505092915050565b610971610b9e565b63389a75e1600c52805f526020600c20805442111561099757636f5e88185f526004601cfd5b5f8155506109a481610bd5565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109e2610b9e565b8060601b6109f757637448fbae5f526004601cfd5b610a0081610bd5565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a8e5750610a8d82610dba565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610ad0610e23565b15610b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b0a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610b9b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610bd3576382b429005f526004601cfd5b565b610bdd610e23565b15610c42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610c98565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610cba57610cb961117d565b5b604051908082528060200260200182016040528015610ce85781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610d0757610d0661117d565b5b604051908082528060200260200182016040528015610d355781602001602082028036833780820191505090505b50905084825f81518110610d4c57610d4b6116f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610d9b57610d9a6116f1565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6c81610e38565b8114610e76575f80fd5b50565b5f81359050610e8781610e63565b92915050565b5f60208284031215610ea257610ea1610e30565b5b5f610eaf84828501610e79565b91505092915050565b5f8115159050919050565b610ecc81610eb8565b82525050565b5f602082019050610ee55f830184610ec3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f0c57610f0b610eeb565b5b8235905067ffffffffffffffff811115610f2957610f28610eef565b5b602083019150836001820283011115610f4557610f44610ef3565b5b9250929050565b5f8060208385031215610f6257610f61610e30565b5b5f83013567ffffffffffffffff811115610f7f57610f7e610e34565b5b610f8b85828601610ef7565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fd982610f97565b610fe38185610fa1565b9350610ff3818560208601610fb1565b610ffc81610fbf565b840191505092915050565b5f6020820190508181035f83015261101f8184610fcf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61106961106461105f84611027565b611046565b611027565b9050919050565b5f61107a8261104f565b9050919050565b5f61108b82611070565b9050919050565b61109b81611081565b82525050565b5f6020820190506110b45f830184611092565b92915050565b5f6110c482611027565b9050919050565b6110d4816110ba565b82525050565b5f6020820190506110ed5f8301846110cb565b92915050565b5f819050919050565b611105816110f3565b82525050565b5f60208201905061111e5f8301846110fc565b92915050565b61112d816110ba565b8114611137575f80fd5b50565b5f8135905061114881611124565b92915050565b5f6020828403121561116357611162610e30565b5b5f6111708482850161113a565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111b382610fbf565b810181811067ffffffffffffffff821117156111d2576111d161117d565b5b80604052505050565b5f6111e4610e27565b90506111f082826111aa565b919050565b5f80fd5b5f611203826110ba565b9050919050565b611213816111f9565b811461121d575f80fd5b50565b5f8135905061122e8161120a565b92915050565b61123d816110f3565b8114611247575f80fd5b50565b5f8135905061125881611234565b92915050565b5f6040828403121561127357611272611179565b5b61127d60406111db565b90505f61128c84828501611220565b5f83015250602061129f8482850161124a565b60208301525092915050565b5f604082840312156112c0576112bf610e30565b5b5f6112cd8482850161125e565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112f4576112f361117d565b5b6112fd82610fbf565b9050602081019050919050565b828183375f83830152505050565b5f61132a611325846112da565b6111db565b905082815260208101848484011115611346576113456112d6565b5b61135184828561130a565b509392505050565b5f82601f83011261136d5761136c610eeb565b5b813561137d848260208601611318565b91505092915050565b5f6040828403121561139b5761139a611179565b5b6113a560406111db565b90505f6113b48482850161113a565b5f83015250602082013567ffffffffffffffff8111156113d7576113d66111f5565b5b6113e384828501611359565b60208301525092915050565b5f6020828403121561140457611403610e30565b5b5f82013567ffffffffffffffff81111561142157611420610e34565b5b61142d84828501611386565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61146d826110f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361149f5761149e611436565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114dc816110ba565b82525050565b5f6114ed83836114d3565b60208301905092915050565b5f602082019050919050565b5f61150f826114aa565b61151981856114b4565b9350611524836114c4565b805f5b8381101561155457815161153b88826114e2565b9750611546836114f9565b925050600181019050611527565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61159381610eb8565b82525050565b5f6115a4838361158a565b60208301905092915050565b5f602082019050919050565b5f6115c682611561565b6115d0818561156b565b93506115db8361157b565b805f5b8381101561160b5781516115f28882611599565b97506115fd836115b0565b9250506001810190506115de565b5085935050505092915050565b5f6040820190508181035f8301526116308185611505565b9050818103602083015261164481846115bc565b90509392505050565b50565b5f61165b5f83610fa1565b91506116668261164d565b5f82019050919050565b5f6040820190506116835f8301846110cb565b818103602083015261169481611650565b905092915050565b6116a581610eb8565b81146116af575f80fd5b50565b5f815190506116c08161169c565b92915050565b5f602082840312156116db576116da610e30565b5b5f6116e8848285016116b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122083d54774cb29726df516d619eb145b34471849b496d1f77c14ec02f035cc0aab64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xFD JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x31B JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x38F JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2B5 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x87B9D25C EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E9 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x16F JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0xE8D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH2 0x444 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x495 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x575 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B3 PUSH2 0x5CC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BD PUSH2 0x605 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x618 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x10A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH2 0x63D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x10DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x665 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x263 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x66B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x270 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x284 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x29F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29A SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AC SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x305 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x84C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x312 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x969 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x35D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x358 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36A SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x388 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0xA03 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43D JUMPI POP PUSH2 0x43C DUP3 PUSH2 0xA1C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x44D PUSH2 0xA95 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x49E PUSH2 0xA9F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4C7 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4E1 SWAP2 SWAP1 PUSH2 0x12AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4EC CALLER PUSH2 0xAC8 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x591 JUMPI PUSH2 0x590 PUSH2 0x117D 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 0x5C3 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x60D PUSH2 0xB9E JUMP JUMPDEST PUSH2 0x616 PUSH0 PUSH2 0xBD5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x674 PUSH2 0xB9E JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x684 SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x69A SWAP1 PUSH2 0x1463 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE LT ISZERO DUP1 PUSH2 0x6F4 JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x72B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP1 PUSH2 0x790 DUP4 PUSH0 ADD MLOAD PUSH2 0xC9B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3ABB0604 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x1618 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x807 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x819 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x85D SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT DUP1 ISZERO PUSH2 0x8BB JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x960 JUMPI POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3F756DE DUP3 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91F SWAP2 SWAP1 PUSH2 0x1670 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x95E SWAP2 SWAP1 PUSH2 0x16C6 JUMP JUMPDEST ISZERO JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x971 PUSH2 0xB9E JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x997 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x9A4 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9E2 PUSH2 0xB9E JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x9F7 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xA00 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA8E JUMPI POP PUSH2 0xA8D DUP3 PUSH2 0xDBA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD0 PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xB48 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB0A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xB9B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xBD3 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xBDD PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xC42 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xC98 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCBA JUMPI PUSH2 0xCB9 PUSH2 0x117D 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 0xCE8 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 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0x117D 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 0xD35 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 DUP5 DUP3 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD4C JUMPI PUSH2 0xD4B PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x1 DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD9B JUMPI PUSH2 0xD9A PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE38 JUMP JUMPDEST DUP2 EQ PUSH2 0xE76 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE87 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA2 JUMPI PUSH2 0xEA1 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEAF DUP5 DUP3 DUP6 ADD PUSH2 0xE79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xECC DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE5 PUSH0 DUP4 ADD DUP5 PUSH2 0xEC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF0C JUMPI PUSH2 0xF0B PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF29 JUMPI PUSH2 0xF28 PUSH2 0xEEF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0xEF3 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF7F JUMPI PUSH2 0xF7E PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0xF8B DUP6 DUP3 DUP7 ADD PUSH2 0xEF7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFD9 DUP3 PUSH2 0xF97 JUMP JUMPDEST PUSH2 0xFE3 DUP2 DUP6 PUSH2 0xFA1 JUMP JUMPDEST SWAP4 POP PUSH2 0xFF3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFB1 JUMP JUMPDEST PUSH2 0xFFC DUP2 PUSH2 0xFBF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x101F DUP2 DUP5 PUSH2 0xFCF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1069 PUSH2 0x1064 PUSH2 0x105F DUP5 PUSH2 0x1027 JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x107A DUP3 PUSH2 0x104F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108B DUP3 PUSH2 0x1070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x109B DUP2 PUSH2 0x1081 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1092 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10C4 DUP3 PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10D4 DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10ED PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1105 DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x111E PUSH0 DUP4 ADD DUP5 PUSH2 0x10FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x112D DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP2 EQ PUSH2 0x1137 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1148 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1163 JUMPI PUSH2 0x1162 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1170 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11B3 DUP3 PUSH2 0xFBF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11D2 JUMPI PUSH2 0x11D1 PUSH2 0x117D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11E4 PUSH2 0xE27 JUMP JUMPDEST SWAP1 POP PUSH2 0x11F0 DUP3 DUP3 PUSH2 0x11AA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1203 DUP3 PUSH2 0x10BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1213 DUP2 PUSH2 0x11F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x121D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122E DUP2 PUSH2 0x120A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x123D DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1247 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1258 DUP2 PUSH2 0x1234 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1273 JUMPI PUSH2 0x1272 PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x127D PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x128C DUP5 DUP3 DUP6 ADD PUSH2 0x1220 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x129F DUP5 DUP3 DUP6 ADD PUSH2 0x124A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12C0 JUMPI PUSH2 0x12BF PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CD DUP5 DUP3 DUP6 ADD PUSH2 0x125E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12F4 JUMPI PUSH2 0x12F3 PUSH2 0x117D JUMP JUMPDEST JUMPDEST PUSH2 0x12FD DUP3 PUSH2 0xFBF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x132A PUSH2 0x1325 DUP5 PUSH2 0x12DA JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1346 JUMPI PUSH2 0x1345 PUSH2 0x12D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1351 DUP5 DUP3 DUP6 PUSH2 0x130A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x136D JUMPI PUSH2 0x136C PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x137D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1318 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x139B JUMPI PUSH2 0x139A PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x13A5 PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x13B4 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13D7 JUMPI PUSH2 0x13D6 PUSH2 0x11F5 JUMP JUMPDEST JUMPDEST PUSH2 0x13E3 DUP5 DUP3 DUP6 ADD PUSH2 0x1359 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1404 JUMPI PUSH2 0x1403 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1421 JUMPI PUSH2 0x1420 PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0x142D DUP5 DUP3 DUP6 ADD PUSH2 0x1386 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x146D DUP3 PUSH2 0x10F3 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x149F JUMPI PUSH2 0x149E PUSH2 0x1436 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14DC DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14ED DUP4 DUP4 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x150F DUP3 PUSH2 0x14AA JUMP JUMPDEST PUSH2 0x1519 DUP2 DUP6 PUSH2 0x14B4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1524 DUP4 PUSH2 0x14C4 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1554 JUMPI DUP2 MLOAD PUSH2 0x153B DUP9 DUP3 PUSH2 0x14E2 JUMP JUMPDEST SWAP8 POP PUSH2 0x1546 DUP4 PUSH2 0x14F9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1527 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1593 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x158A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x15C6 DUP3 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x15D0 DUP2 DUP6 PUSH2 0x156B JUMP JUMPDEST SWAP4 POP PUSH2 0x15DB DUP4 PUSH2 0x157B JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x160B JUMPI DUP2 MLOAD PUSH2 0x15F2 DUP9 DUP3 PUSH2 0x1599 JUMP JUMPDEST SWAP8 POP PUSH2 0x15FD DUP4 PUSH2 0x15B0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x15DE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1630 DUP2 DUP6 PUSH2 0x1505 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1644 DUP2 DUP5 PUSH2 0x15BC JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x165B PUSH0 DUP4 PUSH2 0xFA1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1666 DUP3 PUSH2 0x164D JUMP JUMPDEST PUSH0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1683 PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1694 DUP2 PUSH2 0x1650 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16A5 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0x16AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x16C0 DUP2 PUSH2 0x169C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DB JUMPI PUSH2 0x16DA PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16E8 DUP5 DUP3 DUP6 ADD PUSH2 0x16B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD5 SELFBALANCE PUSH21 0xCB29726DF516D619EB145B34471849B496D1F77C14 0xEC MUL CREATE CALLDATALOAD 0xCC EXP 0xAB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"646:2945:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1511:250:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2989:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;895:32:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1014:20:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1887:451;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2594:269:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2436:122:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1511:250:40:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1591:24:40::1;1629:5;;1618:32;;;;;;;:::i;:::-;1591:59;;1660:28;1677:10;1660:16;:28::i;:::-;1710:5;:15;;;1698:9;;:27;;;;;;;;;;;;;;;;;;1743:5;:11;;;1735:5;:19;;;;1581:180;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1511:250:40;;:::o;2989:117::-;3056:12;3097:1;3087:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3080:19;;2989:117;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;895:32:40:-;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1014:20:40:-;;;;:::o;1887:451::-;1969:4;12517:13:17;:11;:13::i;:::-;1985:26:40::1;2025:5;;2014:33;;;;;;;:::i;:::-;1985:62;;2073:5;;2061:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;:17;;:43;;;;2082:7;:22;2090:6;:13;;;2082:22;;;;;;;;;;;;;;;;;;;;;;;;;2061:43;2057:70;;;2113:14;;;;;;;;;;;;;;2057:70;2162:4;2137:7:::0;:22:::1;2145:6;:13;;;2137:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2178:22;2202:21:::0;2227:36:::1;2249:6;:13;;;2227:21;:36::i;:::-;2177:86;;;;2274:9;;;;;;;;;;;:20;;;2295:5;2302:7;2274:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2327:4;2320:11;;;;;1887:451:::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;2594:269:40:-;2677:4;2693:26;2733:5;;2722:33;;;;;;;:::i;:::-;2693:62;;2781:5;;2772:6;;:14;:41;;;;;2791:7;:22;2799:6;:13;;;2791:22;;;;;;;;;;;;;;;;;;;;;;;;;2790:23;2772:41;:84;;;;;2818:9;;;;;;;;;;;:19;;;2838:6;:13;;;2818:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2817:39;2772:84;2765:91;;;2594:269;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2436:122:40:-;2501:4;2524:27;;;;;;;;;;;;;;8348:349:17;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;3292:297:40:-;3363:16;3381:13;3406:22;3445:1;3431:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3406:41;;3457:21;3492:1;3481:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3457:37;;3515:7;3504:5;3510:1;3504:8;;;;;;;;:::i;:::-;;;;;;;:18;;;;;;;;;;;3545:4;3532:7;3540:1;3532:10;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;;;3567:5;3574:7;3559:23;;;;;;3292:297;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:309::-;4012:4;4050:2;4039:9;4035:18;4027:26;;4099:9;4093:4;4089:20;4085:1;4074:9;4070:17;4063:47;4127:76;4198:4;4189:6;4127:76;:::i;:::-;4119:84;;3901:309;;;;:::o;4216:126::-;4253:7;4293:42;4286:5;4282:54;4271:65;;4216:126;;;:::o;4348:60::-;4376:3;4397:5;4390:12;;4348:60;;;:::o;4414:142::-;4464:9;4497:53;4515:34;4524:24;4542:5;4524:24;:::i;:::-;4515:34;:::i;:::-;4497:53;:::i;:::-;4484:66;;4414:142;;;:::o;4562:126::-;4612:9;4645:37;4676:5;4645:37;:::i;:::-;4632:50;;4562:126;;;:::o;4694:151::-;4769:9;4802:37;4833:5;4802:37;:::i;:::-;4789:50;;4694:151;;;:::o;4851:181::-;4963:62;5019:5;4963:62;:::i;:::-;4958:3;4951:75;4851:181;;:::o;5038:272::-;5156:4;5194:2;5183:9;5179:18;5171:26;;5207:96;5300:1;5289:9;5285:17;5276:6;5207:96;:::i;:::-;5038:272;;;;:::o;5316:96::-;5353:7;5382:24;5400:5;5382:24;:::i;:::-;5371:35;;5316:96;;;:::o;5418:118::-;5505:24;5523:5;5505:24;:::i;:::-;5500:3;5493:37;5418:118;;:::o;5542:222::-;5635:4;5673:2;5662:9;5658:18;5650:26;;5686:71;5754:1;5743:9;5739:17;5730:6;5686:71;:::i;:::-;5542:222;;;;:::o;5770:77::-;5807:7;5836:5;5825:16;;5770:77;;;:::o;5853:118::-;5940:24;5958:5;5940:24;:::i;:::-;5935:3;5928:37;5853:118;;:::o;5977:222::-;6070:4;6108:2;6097:9;6093:18;6085:26;;6121:71;6189:1;6178:9;6174:17;6165:6;6121:71;:::i;:::-;5977:222;;;;:::o;6205:122::-;6278:24;6296:5;6278:24;:::i;:::-;6271:5;6268:35;6258:63;;6317:1;6314;6307:12;6258:63;6205:122;:::o;6333:139::-;6379:5;6417:6;6404:20;6395:29;;6433:33;6460:5;6433:33;:::i;:::-;6333:139;;;;:::o;6478:329::-;6537:6;6586:2;6574:9;6565:7;6561:23;6557:32;6554:119;;;6592:79;;:::i;:::-;6554:119;6712:1;6737:53;6782:7;6773:6;6762:9;6758:22;6737:53;:::i;:::-;6727:63;;6683:117;6478:329;;;;:::o;6813:117::-;6922:1;6919;6912:12;6936:180;6984:77;6981:1;6974:88;7081:4;7078:1;7071:15;7105:4;7102:1;7095:15;7122:281;7205:27;7227:4;7205:27;:::i;:::-;7197:6;7193:40;7335:6;7323:10;7320:22;7299:18;7287:10;7284:34;7281:62;7278:88;;;7346:18;;:::i;:::-;7278:88;7386:10;7382:2;7375:22;7165:238;7122:281;;:::o;7409:129::-;7443:6;7470:20;;:::i;:::-;7460:30;;7499:33;7527:4;7519:6;7499:33;:::i;:::-;7409:129;;;:::o;7544:117::-;7653:1;7650;7643:12;7667:121;7729:7;7758:24;7776:5;7758:24;:::i;:::-;7747:35;;7667:121;;;:::o;7794:172::-;7892:49;7935:5;7892:49;:::i;:::-;7885:5;7882:60;7872:88;;7956:1;7953;7946:12;7872:88;7794:172;:::o;7972:189::-;8043:5;8081:6;8068:20;8059:29;;8097:58;8149:5;8097:58;:::i;:::-;7972:189;;;;:::o;8167:122::-;8240:24;8258:5;8240:24;:::i;:::-;8233:5;8230:35;8220:63;;8279:1;8276;8269:12;8220:63;8167:122;:::o;8295:139::-;8341:5;8379:6;8366:20;8357:29;;8395:33;8422:5;8395:33;:::i;:::-;8295:139;;;;:::o;8485:610::-;8564:5;8608:4;8596:9;8591:3;8587:19;8583:30;8580:117;;;8616:79;;:::i;:::-;8580:117;8715:21;8731:4;8715:21;:::i;:::-;8706:30;;8800:1;8840:74;8910:3;8901:6;8890:9;8886:22;8840:74;:::i;:::-;8833:4;8826:5;8822:16;8815:100;8746:180;8986:2;9027:49;9072:3;9063:6;9052:9;9048:22;9027:49;:::i;:::-;9020:4;9013:5;9009:16;9002:75;8936:152;8485:610;;;;:::o;9101:389::-;9190:6;9239:2;9227:9;9218:7;9214:23;9210:32;9207:119;;;9245:79;;:::i;:::-;9207:119;9365:1;9390:83;9465:7;9456:6;9445:9;9441:22;9390:83;:::i;:::-;9380:93;;9336:147;9101:389;;;;:::o;9496:117::-;9605:1;9602;9595:12;9619:307;9680:4;9770:18;9762:6;9759:30;9756:56;;;9792:18;;:::i;:::-;9756:56;9830:29;9852:6;9830:29;:::i;:::-;9822:37;;9914:4;9908;9904:15;9896:23;;9619:307;;;:::o;9932:148::-;10030:6;10025:3;10020;10007:30;10071:1;10062:6;10057:3;10053:16;10046:27;9932:148;;;:::o;10086:423::-;10163:5;10188:65;10204:48;10245:6;10204:48;:::i;:::-;10188:65;:::i;:::-;10179:74;;10276:6;10269:5;10262:21;10314:4;10307:5;10303:16;10352:3;10343:6;10338:3;10334:16;10331:25;10328:112;;;10359:79;;:::i;:::-;10328:112;10449:54;10496:6;10491:3;10486;10449:54;:::i;:::-;10169:340;10086:423;;;;;:::o;10528:338::-;10583:5;10632:3;10625:4;10617:6;10613:17;10609:27;10599:122;;10640:79;;:::i;:::-;10599:122;10757:6;10744:20;10782:78;10856:3;10848:6;10841:4;10833:6;10829:17;10782:78;:::i;:::-;10773:87;;10589:277;10528:338;;;;:::o;10909:751::-;10989:5;11033:4;11021:9;11016:3;11012:19;11008:30;11005:117;;;11041:79;;:::i;:::-;11005:117;11140:21;11156:4;11140:21;:::i;:::-;11131:30;;11222:1;11262:49;11307:3;11298:6;11287:9;11283:22;11262:49;:::i;:::-;11255:4;11248:5;11244:16;11237:75;11171:152;11410:2;11399:9;11395:18;11382:32;11441:18;11433:6;11430:30;11427:117;;;11463:79;;:::i;:::-;11427:117;11583:58;11637:3;11628:6;11617:9;11613:22;11583:58;:::i;:::-;11576:4;11569:5;11565:16;11558:84;11333:320;10909:751;;;;:::o;11666:551::-;11756:6;11805:2;11793:9;11784:7;11780:23;11776:32;11773:119;;;11811:79;;:::i;:::-;11773:119;11959:1;11948:9;11944:17;11931:31;11989:18;11981:6;11978:30;11975:117;;;12011:79;;:::i;:::-;11975:117;12116:84;12192:7;12183:6;12172:9;12168:22;12116:84;:::i;:::-;12106:94;;11902:308;11666:551;;;;:::o;12223:180::-;12271:77;12268:1;12261:88;12368:4;12365:1;12358:15;12392:4;12389:1;12382:15;12409:233;12448:3;12471:24;12489:5;12471:24;:::i;:::-;12462:33;;12517:66;12510:5;12507:77;12504:103;;12587:18;;:::i;:::-;12504:103;12634:1;12627:5;12623:13;12616:20;;12409:233;;;:::o;12648:114::-;12715:6;12749:5;12743:12;12733:22;;12648:114;;;:::o;12768:184::-;12867:11;12901:6;12896:3;12889:19;12941:4;12936:3;12932:14;12917:29;;12768:184;;;;:::o;12958:132::-;13025:4;13048:3;13040:11;;13078:4;13073:3;13069:14;13061:22;;12958:132;;;:::o;13096:108::-;13173:24;13191:5;13173:24;:::i;:::-;13168:3;13161:37;13096:108;;:::o;13210:179::-;13279:10;13300:46;13342:3;13334:6;13300:46;:::i;:::-;13378:4;13373:3;13369:14;13355:28;;13210:179;;;;:::o;13395:113::-;13465:4;13497;13492:3;13488:14;13480:22;;13395:113;;;:::o;13544:732::-;13663:3;13692:54;13740:5;13692:54;:::i;:::-;13762:86;13841:6;13836:3;13762:86;:::i;:::-;13755:93;;13872:56;13922:5;13872:56;:::i;:::-;13951:7;13982:1;13967:284;13992:6;13989:1;13986:13;13967:284;;;14068:6;14062:13;14095:63;14154:3;14139:13;14095:63;:::i;:::-;14088:70;;14181:60;14234:6;14181:60;:::i;:::-;14171:70;;14027:224;14014:1;14011;14007:9;14002:14;;13967:284;;;13971:14;14267:3;14260:10;;13668:608;;;13544:732;;;;:::o;14282:111::-;14346:6;14380:5;14374:12;14364:22;;14282:111;;;:::o;14399:181::-;14495:11;14529:6;14524:3;14517:19;14569:4;14564:3;14560:14;14545:29;;14399:181;;;;:::o;14586:129::-;14650:4;14673:3;14665:11;;14703:4;14698:3;14694:14;14686:22;;14586:129;;;:::o;14721:99::-;14792:21;14807:5;14792:21;:::i;:::-;14787:3;14780:34;14721:99;;:::o;14826:167::-;14889:10;14910:40;14946:3;14938:6;14910:40;:::i;:::-;14982:4;14977:3;14973:14;14959:28;;14826:167;;;;:::o;14999:110::-;15066:4;15098;15093:3;15089:14;15081:22;;14999:110;;;:::o;15139:708::-;15252:3;15281:51;15326:5;15281:51;:::i;:::-;15348:83;15424:6;15419:3;15348:83;:::i;:::-;15341:90;;15455:53;15502:5;15455:53;:::i;:::-;15531:7;15562:1;15547:275;15572:6;15569:1;15566:13;15547:275;;;15648:6;15642:13;15675:57;15728:3;15713:13;15675:57;:::i;:::-;15668:64;;15755:57;15805:6;15755:57;:::i;:::-;15745:67;;15607:215;15594:1;15591;15587:9;15582:14;;15547:275;;;15551:14;15838:3;15831:10;;15257:590;;;15139:708;;;;:::o;15853:622::-;16068:4;16106:2;16095:9;16091:18;16083:26;;16155:9;16149:4;16145:20;16141:1;16130:9;16126:17;16119:47;16183:108;16286:4;16277:6;16183:108;:::i;:::-;16175:116;;16338:9;16332:4;16328:20;16323:2;16312:9;16308:18;16301:48;16366:102;16463:4;16454:6;16366:102;:::i;:::-;16358:110;;15853:622;;;;;:::o;16481:114::-;;:::o;16601:362::-;16742:3;16763:65;16826:1;16821:3;16763:65;:::i;:::-;16756:72;;16837:93;16926:3;16837:93;:::i;:::-;16955:1;16950:3;16946:11;16939:18;;16601:362;;;:::o;16969:527::-;17162:4;17200:2;17189:9;17185:18;17177:26;;17213:71;17281:1;17270:9;17266:17;17257:6;17213:71;:::i;:::-;17331:9;17325:4;17321:20;17316:2;17305:9;17301:18;17294:48;17359:130;17484:4;17359:130;:::i;:::-;17351:138;;16969:527;;;;:::o;17502:116::-;17572:21;17587:5;17572:21;:::i;:::-;17565:5;17562:32;17552:60;;17608:1;17605;17598:12;17552:60;17502:116;:::o;17624:137::-;17678:5;17709:6;17703:13;17694:22;;17725:30;17749:5;17725:30;:::i;:::-;17624:137;;;;:::o;17767:345::-;17834:6;17883:2;17871:9;17862:7;17858:23;17854:32;17851:119;;;17889:79;;:::i;:::-;17851:119;18009:1;18034:61;18087:7;18078:6;18067:9;18063:22;18034:61;:::i;:::-;18024:71;;17980:125;17767:345;;;;:::o;18118:180::-;18166:77;18163:1;18156:88;18263:4;18260:1;18253:15;18287:4;18284:1;18277:15"},"methodIdentifiers":{"allowList()":"87b9d25c","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowList\",\"outputs\":[{\"internalType\":\"contract SimpleAllowList\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not already be on the allow list; and - The maximum number of claims must not have been reached; and - This contract must be authorized to modify the allow list\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The claim data\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The packed initialization data `(SimpleAllowList allowList, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"No preflight approval is required for this incentive (no tokens are handled)\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"SimpleAllowList Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"allowList()\":{\"notice\":\"The SimpleAllowList contract\"},\"claim(bytes)\":{\"notice\":\"Claim a slot on the {SimpleAllowList}\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new AllowListIncentive\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/AllowListIncentive.sol\":\"AllowListIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/allowlists/SimpleAllowList.sol\":{\"keccak256\":\"0x85f83d5522cac95d1cfe50eaa95d5f8f39fc46bec0566402025505259bd061f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6452442e92e1fdaef23b59b67ce1f7d65cdc96acf7bcac0bb16318f007e08644\",\"dweb:/ipfs/QmeE33irgs9tPnnbzGidzb2iBKo7BSKmto7kMGWTVT3t5k\"]},\"contracts/incentives/AllowListIncentive.sol\":{\"keccak256\":\"0xc0cb04dc3a4448f63b0235b5bdfcb7425817e086d3b4f26bfce499d2d3b8f188\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a45795c4791721a7b3563518baf02dc20eec9f70d951f1f984796a07e91f98e1\",\"dweb:/ipfs/Qmbp2oiK9zKaRbQfvZjF7fsm9FzxQVgERSC8NH22GAgxNY\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/CGDAIncentive.sol":{"CGDAIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cgdaParams","outputs":[{"internalType":"uint256","name":"rewardDecay","type":"uint256"},{"internalType":"uint256","name":"rewardBoost","type":"uint256"},{"internalType":"uint256","name":"lastClaimTime","type":"uint256"},{"internalType":"uint256","name":"currentReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBudget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_15716":{"entryPoint":null,"id":15716,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611b50806101b45f395ff3fe608060405260043610610113575f3560e01c80638da5cb5b1161009f578063e18e650811610063578063e18e65081461034c578063f04e283e14610388578063f1c30ec0146103a4578063f2fde38b146103e0578063fee81cf4146103fc57610113565b80638da5cb5b14610256578063c63ff8dd14610280578063c78da39a146102bc578063c884ef83146102e6578063dcc59b6f1461032257610113565b8063439fab91116100e6578063439fab91146101b15780634e7165a2146101d957806354d1f13d14610215578063715018a61461021f57806375ef18d01461022957610113565b806301ffc9a71461011757806307621eca14610153578063256929621461017d57806338d52e0f14610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611188565b610438565b60405161014a91906111cd565b60405180910390f35b34801561015e575f80fd5b506101676104b1565b60405161017491906111fe565b60405180910390f35b61018561055a565b005b348015610192575f80fd5b5061019b6105ab565b6040516101a89190611256565b60405180910390f35b3480156101bc575f80fd5b506101d760048036038101906101d291906112d0565b6105d0565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa91906112d0565b6107f8565b60405161020c919061138b565b60405180910390f35b61021d6108c8565b005b610227610901565b005b348015610234575f80fd5b5061023d610914565b60405161024d94939291906113ab565b60405180910390f35b348015610261575f80fd5b5061026a610931565b6040516102779190611256565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a191906112d0565b610959565b6040516102b391906111cd565b60405180910390f35b3480156102c7575f80fd5b506102d0610b02565b6040516102dd91906111fe565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190611418565b610b08565b60405161031991906111cd565b60405180910390f35b34801561032d575f80fd5b50610336610b25565b60405161034391906111fe565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d91906112d0565b610b2a565b60405161037f91906111cd565b60405180910390f35b6103a2600480360381019061039d9190611418565b610b52565b005b3480156103af575f80fd5b506103ca60048036038101906103c591906112d0565b610b90565b6040516103d791906111cd565b60405180910390f35b6103fa60048036038101906103f59190611418565b610cb9565b005b348015610407575f80fd5b50610422600480360381019061041d9190611418565b610ce2565b60405161042f91906111fe565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104aa57506104a982610cfb565b5b9050919050565b5f80600360020154426104c49190611470565b90505f6105113060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b90505f610e106003600101548461052891906114a3565b6105329190611511565b60038001546105419190611541565b90508181116105505780610552565b815b935050505090565b5f610563610da7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105d9610db1565b9050805460038255801561060b5760018160011c14303b106106025763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061061c91906116a7565b90505f61064b30835f015173ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b905081608001518110156106a157815f01518183608001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610698939291906116d2565b60405180910390fd5b5f826020015114806106b657505f8260400151145b806106c457505f8260600151145b806106d6575081602001518260800151105b1561070d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052808360400151815260200183606001518152602001428152602001836020015181525060035f820151815f015560208201518160010155604082015181600201556060820151816003015590505081608001516007819055506107bc33610dda565b505080156107f3576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f838381019061080a91906116a7565b905060405180608001604052806001600281111561082b5761082a611707565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060200160405280846080015181525060405160200161088e919061175d565b6040516020818303038152906040528152506040516020016108b09190611873565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610909610eb0565b6109125f610ee7565b565b6003805f0154908060010154908060020154908060030154905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f610962610eb0565b5f838381019061097291906119ac565b9050610980815f0151610fad565b6109b6576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906109c7906119f3565b91905055505f6109d56104b1565b90504260036002018190555060035f015481116109f65760035f0154610a07565b60035f015481610a069190611470565b5b6003800181905550610a5e825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610ad293929190611a9f565b604051602081830303815290604052604051610aee919061138b565b60405180910390a260019250505092915050565b60075481565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610b3b91906119ac565b9050610b49815f0151610fad565b91505092915050565b610b5a610eb0565b63389a75e1600c52805f526020600c208054421115610b8057636f5e88185f526004601cfd5b5f815550610b8d81610ee7565b50565b5f610b99610eb0565b5f8383810190610ba991906119ac565b90505f8160200151806020019051810190610bc49190611aef565b9050610c15825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610c8993929190611a9f565b604051602081830303815290604052604051610ca5919061138b565b60405180910390a260019250505092915050565b610cc1610eb0565b8060601b610cd657637448fbae5f526004601cfd5b610cdf81610ee7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d6d5750610d6c826110b5565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610de261111e565b15610e5a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610e1c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ead565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ee5576382b429005f526004601cfd5b565b610eef61111e565b15610f54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610faa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f80610fb76104b1565b90505f8111801561101157508061100e3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b10155b8015611064575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b915050919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166110ac576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61116781611133565b8114611171575f80fd5b50565b5f813590506111828161115e565b92915050565b5f6020828403121561119d5761119c61112b565b5b5f6111aa84828501611174565b91505092915050565b5f8115159050919050565b6111c7816111b3565b82525050565b5f6020820190506111e05f8301846111be565b92915050565b5f819050919050565b6111f8816111e6565b82525050565b5f6020820190506112115f8301846111ef565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61124082611217565b9050919050565b61125081611236565b82525050565b5f6020820190506112695f830184611247565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112905761128f61126f565b5b8235905067ffffffffffffffff8111156112ad576112ac611273565b5b6020830191508360018202830111156112c9576112c8611277565b5b9250929050565b5f80602083850312156112e6576112e561112b565b5b5f83013567ffffffffffffffff8111156113035761130261112f565b5b61130f8582860161127b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61135d8261131b565b6113678185611325565b9350611377818560208601611335565b61138081611343565b840191505092915050565b5f6020820190508181035f8301526113a38184611353565b905092915050565b5f6080820190506113be5f8301876111ef565b6113cb60208301866111ef565b6113d860408301856111ef565b6113e560608301846111ef565b95945050505050565b6113f781611236565b8114611401575f80fd5b50565b5f81359050611412816113ee565b92915050565b5f6020828403121561142d5761142c61112b565b5b5f61143a84828501611404565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61147a826111e6565b9150611485836111e6565b925082820390508181111561149d5761149c611443565b5b92915050565b5f6114ad826111e6565b91506114b8836111e6565b92508282026114c6816111e6565b915082820484148315176114dd576114dc611443565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61151b826111e6565b9150611526836111e6565b925082611536576115356114e4565b5b828204905092915050565b5f61154b826111e6565b9150611556836111e6565b925082820190508082111561156e5761156d611443565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6115ae82611343565b810181811067ffffffffffffffff821117156115cd576115cc611578565b5b80604052505050565b5f6115df611122565b90506115eb82826115a5565b919050565b5f80fd5b6115fd816111e6565b8114611607575f80fd5b50565b5f81359050611618816115f4565b92915050565b5f60a0828403121561163357611632611574565b5b61163d60a06115d6565b90505f61164c84828501611404565b5f83015250602061165f8482850161160a565b60208301525060406116738482850161160a565b60408301525060606116878482850161160a565b606083015250608061169b8482850161160a565b60808301525092915050565b5f60a082840312156116bc576116bb61112b565b5b5f6116c98482850161161e565b91505092915050565b5f6060820190506116e55f830186611247565b6116f260208301856111ef565b6116ff60408301846111ef565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61173d816111e6565b82525050565b602082015f8201516117575f850182611734565b50505050565b5f6020820190506117705f830184611743565b92915050565b6003811061178757611786611707565b5b50565b5f81905061179782611776565b919050565b5f6117a68261178a565b9050919050565b6117b68161179c565b82525050565b6117c581611236565b82525050565b5f82825260208201905092915050565b5f6117e58261131b565b6117ef81856117cb565b93506117ff818560208601611335565b61180881611343565b840191505092915050565b5f608083015f8301516118285f8601826117ad565b50602083015161183b60208601826117bc565b50604083015161184e60408601826117bc565b506060830151848203606086015261186682826117db565b9150508091505092915050565b5f6020820190508181035f83015261188b8184611813565b905092915050565b5f80fd5b5f67ffffffffffffffff8211156118b1576118b0611578565b5b6118ba82611343565b9050602081019050919050565b828183375f83830152505050565b5f6118e76118e284611897565b6115d6565b90508281526020810184848401111561190357611902611893565b5b61190e8482856118c7565b509392505050565b5f82601f83011261192a5761192961126f565b5b813561193a8482602086016118d5565b91505092915050565b5f6040828403121561195857611957611574565b5b61196260406115d6565b90505f61197184828501611404565b5f83015250602082013567ffffffffffffffff811115611994576119936115f0565b5b6119a084828501611916565b60208301525092915050565b5f602082840312156119c1576119c061112b565b5b5f82013567ffffffffffffffff8111156119de576119dd61112f565b5b6119ea84828501611943565b91505092915050565b5f6119fd826111e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a2f57611a2e611443565b5b600182019050919050565b5f8160601b9050919050565b5f611a5082611a3a565b9050919050565b5f611a6182611a46565b9050919050565b611a79611a7482611236565b611a57565b82525050565b5f819050919050565b611a99611a94826111e6565b611a7f565b82525050565b5f611aaa8286611a68565b601482019150611aba8285611a68565b601482019150611aca8284611a88565b602082019150819050949350505050565b5f81519050611ae9816115f4565b92915050565b5f60208284031215611b0457611b0361112b565b5b5f611b1184828501611adb565b9150509291505056fea26469706673582212204e6c9519f1b738c96d6ba1e0a87f71231432193bb2d41d56057c7c52c76b10a164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1B50 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3FC JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xC78DA39A EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x322 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x75EF18D0 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x438 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x55A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x5D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x7F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH2 0x8C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x227 PUSH2 0x901 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x914 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x13AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x931 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x959 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0xB25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x343 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x372 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36D SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB2A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB90 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCB9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x422 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCE2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4AA JUMPI POP PUSH2 0x4A9 DUP3 PUSH2 0xCFB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x511 ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xE10 PUSH1 0x3 PUSH1 0x1 ADD SLOAD DUP5 PUSH2 0x528 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x532 SWAP2 SWAP1 PUSH2 0x1511 JUMP JUMPDEST PUSH1 0x3 DUP1 ADD SLOAD PUSH2 0x541 SWAP2 SWAP1 PUSH2 0x1541 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x550 JUMPI DUP1 PUSH2 0x552 JUMP JUMPDEST DUP2 JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x563 PUSH2 0xDA7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5D9 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x60B JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x602 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x61C SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x64B ADDRESS DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x80 ADD MLOAD DUP2 LT ISZERO PUSH2 0x6A1 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x698 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x16D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x20 ADD MLOAD EQ DUP1 PUSH2 0x6B6 JUMPI POP PUSH0 DUP3 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6C4 JUMPI POP PUSH0 DUP3 PUSH1 0x60 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6D6 JUMPI POP DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD LT JUMPDEST ISZERO PUSH2 0x70D JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE POP PUSH1 0x3 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH2 0x7BC CALLER PUSH2 0xDDA JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x80A SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x82B JUMPI PUSH2 0x82A PUSH2 0x1707 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x175D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8B0 SWAP2 SWAP1 PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x909 PUSH2 0xEB0 JUMP JUMPDEST PUSH2 0x912 PUSH0 PUSH2 0xEE7 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 DUP1 PUSH0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x962 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0x980 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x9B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x9C7 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH0 PUSH2 0x9D5 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x3 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH0 ADD SLOAD DUP2 GT PUSH2 0x9F6 JUMPI PUSH1 0x3 PUSH0 ADD SLOAD PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x3 PUSH0 ADD SLOAD DUP2 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP1 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xA5E DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xAEE SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xB3B SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0xB49 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5A PUSH2 0xEB0 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xB80 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xB8D DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xB99 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBA9 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC4 SWAP2 SWAP1 PUSH2 0x1AEF JUMP JUMPDEST SWAP1 POP PUSH2 0xC15 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC89 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCA5 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC1 PUSH2 0xEB0 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xCD6 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xCDF DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD6D JUMPI POP PUSH2 0xD6C DUP3 PUSH2 0x10B5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDE2 PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xE5A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xE1C JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xEAD JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xEE5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xEEF PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xF54 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xFAA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xFB7 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x1011 JUMPI POP DUP1 PUSH2 0x100E ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1064 JUMPI POP PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x10AC JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1133 JUMP JUMPDEST DUP2 EQ PUSH2 0x1171 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1182 DUP2 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x119D JUMPI PUSH2 0x119C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11AA DUP5 DUP3 DUP6 ADD PUSH2 0x1174 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11C7 DUP2 PUSH2 0x11B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11E0 PUSH0 DUP4 ADD DUP5 PUSH2 0x11BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11F8 DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1211 PUSH0 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1240 DUP3 PUSH2 0x1217 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1250 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1269 PUSH0 DUP4 ADD DUP5 PUSH2 0x1247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1290 JUMPI PUSH2 0x128F PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12AD JUMPI PUSH2 0x12AC PUSH2 0x1273 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x12C9 JUMPI PUSH2 0x12C8 PUSH2 0x1277 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12E6 JUMPI PUSH2 0x12E5 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1303 JUMPI PUSH2 0x1302 PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x130F DUP6 DUP3 DUP7 ADD PUSH2 0x127B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x135D DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x1367 DUP2 DUP6 PUSH2 0x1325 JUMP JUMPDEST SWAP4 POP PUSH2 0x1377 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1380 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x13A3 DUP2 DUP5 PUSH2 0x1353 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x13BE PUSH0 DUP4 ADD DUP8 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13CB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13D8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13E5 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13F7 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP2 EQ PUSH2 0x1401 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1412 DUP2 PUSH2 0x13EE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x142D JUMPI PUSH2 0x142C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x143A DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x147A DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1485 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x149D JUMPI PUSH2 0x149C PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14AD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x14B8 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x14C6 DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x14DD JUMPI PUSH2 0x14DC PUSH2 0x1443 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x151B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1526 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1536 JUMPI PUSH2 0x1535 PUSH2 0x14E4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x154B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1556 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x156E JUMPI PUSH2 0x156D PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x15AE DUP3 PUSH2 0x1343 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x15CD JUMPI PUSH2 0x15CC PUSH2 0x1578 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15DF PUSH2 0x1122 JUMP JUMPDEST SWAP1 POP PUSH2 0x15EB DUP3 DUP3 PUSH2 0x15A5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x15FD DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1607 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1618 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1633 JUMPI PUSH2 0x1632 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x163D PUSH1 0xA0 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x164C DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x165F DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1673 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1687 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x169B DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16C9 DUP5 DUP3 DUP6 ADD PUSH2 0x161E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x16E5 PUSH0 DUP4 ADD DUP7 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0x16F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x16FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x173D DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1757 PUSH0 DUP6 ADD DUP3 PUSH2 0x1734 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1770 PUSH0 DUP4 ADD DUP5 PUSH2 0x1743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1787 JUMPI PUSH2 0x1786 PUSH2 0x1707 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1797 DUP3 PUSH2 0x1776 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x17A6 DUP3 PUSH2 0x178A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17B6 DUP2 PUSH2 0x179C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x17E5 DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x17EF DUP2 DUP6 PUSH2 0x17CB JUMP JUMPDEST SWAP4 POP PUSH2 0x17FF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1808 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1828 PUSH0 DUP7 ADD DUP3 PUSH2 0x17AD JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x183B PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x184E PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1866 DUP3 DUP3 PUSH2 0x17DB JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x188B DUP2 DUP5 PUSH2 0x1813 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18B1 JUMPI PUSH2 0x18B0 PUSH2 0x1578 JUMP JUMPDEST JUMPDEST PUSH2 0x18BA DUP3 PUSH2 0x1343 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x18E7 PUSH2 0x18E2 DUP5 PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1903 JUMPI PUSH2 0x1902 PUSH2 0x1893 JUMP JUMPDEST JUMPDEST PUSH2 0x190E DUP5 DUP3 DUP6 PUSH2 0x18C7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192A JUMPI PUSH2 0x1929 PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x193A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x18D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1958 JUMPI PUSH2 0x1957 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x1962 PUSH1 0x40 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1971 DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1994 JUMPI PUSH2 0x1993 PUSH2 0x15F0 JUMP JUMPDEST JUMPDEST PUSH2 0x19A0 DUP5 DUP3 DUP6 ADD PUSH2 0x1916 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C1 JUMPI PUSH2 0x19C0 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19DE JUMPI PUSH2 0x19DD PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x19EA DUP5 DUP3 DUP6 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19FD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1A2F JUMPI PUSH2 0x1A2E PUSH2 0x1443 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A50 DUP3 PUSH2 0x1A3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A61 DUP3 PUSH2 0x1A46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A79 PUSH2 0x1A74 DUP3 PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1A57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A99 PUSH2 0x1A94 DUP3 PUSH2 0x11E6 JUMP JUMPDEST PUSH2 0x1A7F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AAA DUP3 DUP7 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ABA DUP3 DUP6 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ACA DUP3 DUP5 PUSH2 0x1A88 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1AE9 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B04 JUMPI PUSH2 0x1B03 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1B11 DUP5 DUP3 DUP6 ADD PUSH2 0x1ADB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E PUSH13 0x9519F1B738C96D6BA1E0A87F71 0x23 EQ ORIGIN NOT EXTCODESIZE 0xB2 0xD4 SAR JUMP SDIV PUSH29 0x7C52C76B10A164736F6C63430008190033000000000000000000000000 ","sourceMap":"453:6430:41:-:0;;;2036:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;2060:22:41;:20;;;:22;;:::i;:::-;453:6430;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;453:6430:41:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":3760,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":4382,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":3505,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":3546,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_16102":{"entryPoint":4013,"id":16102,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":3495,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":3815,"id":6316,"parameterSlots":1,"returnSlots":0},"@asset_15681":{"entryPoint":1451,"id":15681,"parameterSlots":0,"returnSlots":0},"@balanceOf_11267":{"entryPoint":3444,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2248,"id":6382,"parameterSlots":0,"returnSlots":0},"@cgdaParams_15706":{"entryPoint":2324,"id":15706,"parameterSlots":0,"returnSlots":0},"@claim_15901":{"entryPoint":2393,"id":15901,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":2824,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":2853,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2898,"id":6396,"parameterSlots":1,"returnSlots":0},"@currentReward_16070":{"entryPoint":1201,"id":16070,"parameterSlots":0,"returnSlots":1},"@initialize_15817":{"entryPoint":1488,"id":15817,"parameterSlots":2,"returnSlots":0},"@isClaimable_15981":{"entryPoint":2858,"id":15981,"parameterSlots":2,"returnSlots":1},"@owner_6404":{"entryPoint":2353,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":3298,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_16025":{"entryPoint":2040,"id":16025,"parameterSlots":2,"returnSlots":1},"@reclaim_15956":{"entryPoint":2960,"id":15956,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":2305,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1370,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":4204,"id":11219,"parameterSlots":3,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":1080,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":3323,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":4277,"id":2844,"parameterSlots":1,"returnSlots":1},"@totalBudget_15708":{"entryPoint":2818,"id":15708,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":3257,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6357,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5124,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":4468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":4731,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6422,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":6467,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$15693_memory_ptr":{"entryPoint":5662,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5642,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":6875,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5144,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":4488,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4816,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":6572,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$15693_memory_ptr":{"entryPoint":5799,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":6895,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":6076,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4679,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":6760,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4542,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":6107,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":6061,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack":{"entryPoint":5955,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack":{"entryPoint":6163,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":5940,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4591,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":6792,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":6815,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4694,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":5842,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4557,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5003,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed":{"entryPoint":5981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed":{"entryPoint":6259,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4606,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":5035,"id":null,"parameterSlots":5,"returnSlots":1},"allocate_memory":{"entryPoint":5590,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":4386,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6295,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4891,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":6091,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4901,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5441,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":5393,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5283,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5232,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4662,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":4531,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":4403,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$13471":{"entryPoint":6026,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4631,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4582,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":6044,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6343,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4917,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":5541,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":6643,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":6743,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":6726,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":6783,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5187,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":5348,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":5895,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5496,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":4723,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4719,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":5492,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":5616,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":4727,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6291,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":4399,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":4395,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4931,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":6714,"id":null,"parameterSlots":1,"returnSlots":1},"validator_assert_t_enum$_AssetType_$13471":{"entryPoint":6006,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5102,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":4446,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5620,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:19350:53","nodeType":"YulBlock","src":"0:19350:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"1998:81:53","nodeType":"YulBlock","src":"1998:81:53","statements":[{"nativeSrc":"2008:65:53","nodeType":"YulAssignment","src":"2008:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulIdentifier","src":"2023:5:53"},{"kind":"number","nativeSrc":"2030:42:53","nodeType":"YulLiteral","src":"2030:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2019:3:53","nodeType":"YulIdentifier","src":"2019:3:53"},"nativeSrc":"2019:54:53","nodeType":"YulFunctionCall","src":"2019:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2008:7:53","nodeType":"YulIdentifier","src":"2008:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1953:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1980:5:53","nodeType":"YulTypedName","src":"1980:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1990:7:53","nodeType":"YulTypedName","src":"1990:7:53","type":""}],"src":"1953:126:53"},{"body":{"nativeSrc":"2130:51:53","nodeType":"YulBlock","src":"2130:51:53","statements":[{"nativeSrc":"2140:35:53","nodeType":"YulAssignment","src":"2140:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2169:5:53","nodeType":"YulIdentifier","src":"2169:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2151:17:53","nodeType":"YulIdentifier","src":"2151:17:53"},"nativeSrc":"2151:24:53","nodeType":"YulFunctionCall","src":"2151:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2140:7:53","nodeType":"YulIdentifier","src":"2140:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2085:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2112:5:53","nodeType":"YulTypedName","src":"2112:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2122:7:53","nodeType":"YulTypedName","src":"2122:7:53","type":""}],"src":"2085:96:53"},{"body":{"nativeSrc":"2252:53:53","nodeType":"YulBlock","src":"2252:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2269:3:53","nodeType":"YulIdentifier","src":"2269:3:53"},{"arguments":[{"name":"value","nativeSrc":"2292:5:53","nodeType":"YulIdentifier","src":"2292:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2274:17:53","nodeType":"YulIdentifier","src":"2274:17:53"},"nativeSrc":"2274:24:53","nodeType":"YulFunctionCall","src":"2274:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2262:6:53","nodeType":"YulIdentifier","src":"2262:6:53"},"nativeSrc":"2262:37:53","nodeType":"YulFunctionCall","src":"2262:37:53"},"nativeSrc":"2262:37:53","nodeType":"YulExpressionStatement","src":"2262:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2187:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2240:5:53","nodeType":"YulTypedName","src":"2240:5:53","type":""},{"name":"pos","nativeSrc":"2247:3:53","nodeType":"YulTypedName","src":"2247:3:53","type":""}],"src":"2187:118:53"},{"body":{"nativeSrc":"2409:124:53","nodeType":"YulBlock","src":"2409:124:53","statements":[{"nativeSrc":"2419:26:53","nodeType":"YulAssignment","src":"2419:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2431:9:53","nodeType":"YulIdentifier","src":"2431:9:53"},{"kind":"number","nativeSrc":"2442:2:53","nodeType":"YulLiteral","src":"2442:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2427:3:53","nodeType":"YulIdentifier","src":"2427:3:53"},"nativeSrc":"2427:18:53","nodeType":"YulFunctionCall","src":"2427:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2419:4:53","nodeType":"YulIdentifier","src":"2419:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2499:6:53","nodeType":"YulIdentifier","src":"2499:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2512:9:53","nodeType":"YulIdentifier","src":"2512:9:53"},{"kind":"number","nativeSrc":"2523:1:53","nodeType":"YulLiteral","src":"2523:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2508:3:53","nodeType":"YulIdentifier","src":"2508:3:53"},"nativeSrc":"2508:17:53","nodeType":"YulFunctionCall","src":"2508:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2455:43:53","nodeType":"YulIdentifier","src":"2455:43:53"},"nativeSrc":"2455:71:53","nodeType":"YulFunctionCall","src":"2455:71:53"},"nativeSrc":"2455:71:53","nodeType":"YulExpressionStatement","src":"2455:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2311:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2381:9:53","nodeType":"YulTypedName","src":"2381:9:53","type":""},{"name":"value0","nativeSrc":"2393:6:53","nodeType":"YulTypedName","src":"2393:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2404:4:53","nodeType":"YulTypedName","src":"2404:4:53","type":""}],"src":"2311:222:53"},{"body":{"nativeSrc":"2628:28:53","nodeType":"YulBlock","src":"2628:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2645:1:53","nodeType":"YulLiteral","src":"2645:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2648:1:53","nodeType":"YulLiteral","src":"2648:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2638:6:53","nodeType":"YulIdentifier","src":"2638:6:53"},"nativeSrc":"2638:12:53","nodeType":"YulFunctionCall","src":"2638:12:53"},"nativeSrc":"2638:12:53","nodeType":"YulExpressionStatement","src":"2638:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2539:117:53","nodeType":"YulFunctionDefinition","src":"2539:117:53"},{"body":{"nativeSrc":"2751:28:53","nodeType":"YulBlock","src":"2751:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2768:1:53","nodeType":"YulLiteral","src":"2768:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2771:1:53","nodeType":"YulLiteral","src":"2771:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},"nativeSrc":"2761:12:53","nodeType":"YulFunctionCall","src":"2761:12:53"},"nativeSrc":"2761:12:53","nodeType":"YulExpressionStatement","src":"2761:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2662:117:53","nodeType":"YulFunctionDefinition","src":"2662:117:53"},{"body":{"nativeSrc":"2874:28:53","nodeType":"YulBlock","src":"2874:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2891:1:53","nodeType":"YulLiteral","src":"2891:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2894:1:53","nodeType":"YulLiteral","src":"2894:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2884:6:53","nodeType":"YulIdentifier","src":"2884:6:53"},"nativeSrc":"2884:12:53","nodeType":"YulFunctionCall","src":"2884:12:53"},"nativeSrc":"2884:12:53","nodeType":"YulExpressionStatement","src":"2884:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2785:117:53","nodeType":"YulFunctionDefinition","src":"2785:117:53"},{"body":{"nativeSrc":"2995:478:53","nodeType":"YulBlock","src":"2995:478:53","statements":[{"body":{"nativeSrc":"3044:83:53","nodeType":"YulBlock","src":"3044:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3046:77:53","nodeType":"YulIdentifier","src":"3046:77:53"},"nativeSrc":"3046:79:53","nodeType":"YulFunctionCall","src":"3046:79:53"},"nativeSrc":"3046:79:53","nodeType":"YulExpressionStatement","src":"3046:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3023:6:53","nodeType":"YulIdentifier","src":"3023:6:53"},{"kind":"number","nativeSrc":"3031:4:53","nodeType":"YulLiteral","src":"3031:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3019:3:53","nodeType":"YulIdentifier","src":"3019:3:53"},"nativeSrc":"3019:17:53","nodeType":"YulFunctionCall","src":"3019:17:53"},{"name":"end","nativeSrc":"3038:3:53","nodeType":"YulIdentifier","src":"3038:3:53"}],"functionName":{"name":"slt","nativeSrc":"3015:3:53","nodeType":"YulIdentifier","src":"3015:3:53"},"nativeSrc":"3015:27:53","nodeType":"YulFunctionCall","src":"3015:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3008:6:53","nodeType":"YulIdentifier","src":"3008:6:53"},"nativeSrc":"3008:35:53","nodeType":"YulFunctionCall","src":"3008:35:53"},"nativeSrc":"3005:122:53","nodeType":"YulIf","src":"3005:122:53"},{"nativeSrc":"3136:30:53","nodeType":"YulAssignment","src":"3136:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3159:6:53","nodeType":"YulIdentifier","src":"3159:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:53","nodeType":"YulIdentifier","src":"3146:12:53"},"nativeSrc":"3146:20:53","nodeType":"YulFunctionCall","src":"3146:20:53"},"variableNames":[{"name":"length","nativeSrc":"3136:6:53","nodeType":"YulIdentifier","src":"3136:6:53"}]},{"body":{"nativeSrc":"3209:83:53","nodeType":"YulBlock","src":"3209:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3211:77:53","nodeType":"YulIdentifier","src":"3211:77:53"},"nativeSrc":"3211:79:53","nodeType":"YulFunctionCall","src":"3211:79:53"},"nativeSrc":"3211:79:53","nodeType":"YulExpressionStatement","src":"3211:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3181:6:53","nodeType":"YulIdentifier","src":"3181:6:53"},{"kind":"number","nativeSrc":"3189:18:53","nodeType":"YulLiteral","src":"3189:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3178:2:53","nodeType":"YulIdentifier","src":"3178:2:53"},"nativeSrc":"3178:30:53","nodeType":"YulFunctionCall","src":"3178:30:53"},"nativeSrc":"3175:117:53","nodeType":"YulIf","src":"3175:117:53"},{"nativeSrc":"3301:29:53","nodeType":"YulAssignment","src":"3301:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3317:6:53","nodeType":"YulIdentifier","src":"3317:6:53"},{"kind":"number","nativeSrc":"3325:4:53","nodeType":"YulLiteral","src":"3325:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3313:3:53","nodeType":"YulIdentifier","src":"3313:3:53"},"nativeSrc":"3313:17:53","nodeType":"YulFunctionCall","src":"3313:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3301:8:53","nodeType":"YulIdentifier","src":"3301:8:53"}]},{"body":{"nativeSrc":"3384:83:53","nodeType":"YulBlock","src":"3384:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3386:77:53","nodeType":"YulIdentifier","src":"3386:77:53"},"nativeSrc":"3386:79:53","nodeType":"YulFunctionCall","src":"3386:79:53"},"nativeSrc":"3386:79:53","nodeType":"YulExpressionStatement","src":"3386:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3349:8:53","nodeType":"YulIdentifier","src":"3349:8:53"},{"arguments":[{"name":"length","nativeSrc":"3363:6:53","nodeType":"YulIdentifier","src":"3363:6:53"},{"kind":"number","nativeSrc":"3371:4:53","nodeType":"YulLiteral","src":"3371:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3359:3:53","nodeType":"YulIdentifier","src":"3359:3:53"},"nativeSrc":"3359:17:53","nodeType":"YulFunctionCall","src":"3359:17:53"}],"functionName":{"name":"add","nativeSrc":"3345:3:53","nodeType":"YulIdentifier","src":"3345:3:53"},"nativeSrc":"3345:32:53","nodeType":"YulFunctionCall","src":"3345:32:53"},{"name":"end","nativeSrc":"3379:3:53","nodeType":"YulIdentifier","src":"3379:3:53"}],"functionName":{"name":"gt","nativeSrc":"3342:2:53","nodeType":"YulIdentifier","src":"3342:2:53"},"nativeSrc":"3342:41:53","nodeType":"YulFunctionCall","src":"3342:41:53"},"nativeSrc":"3339:128:53","nodeType":"YulIf","src":"3339:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2921:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2962:6:53","nodeType":"YulTypedName","src":"2962:6:53","type":""},{"name":"end","nativeSrc":"2970:3:53","nodeType":"YulTypedName","src":"2970:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2978:8:53","nodeType":"YulTypedName","src":"2978:8:53","type":""},{"name":"length","nativeSrc":"2988:6:53","nodeType":"YulTypedName","src":"2988:6:53","type":""}],"src":"2921:552:53"},{"body":{"nativeSrc":"3564:442:53","nodeType":"YulBlock","src":"3564:442:53","statements":[{"body":{"nativeSrc":"3610:83:53","nodeType":"YulBlock","src":"3610:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3612:77:53","nodeType":"YulIdentifier","src":"3612:77:53"},"nativeSrc":"3612:79:53","nodeType":"YulFunctionCall","src":"3612:79:53"},"nativeSrc":"3612:79:53","nodeType":"YulExpressionStatement","src":"3612:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3585:7:53","nodeType":"YulIdentifier","src":"3585:7:53"},{"name":"headStart","nativeSrc":"3594:9:53","nodeType":"YulIdentifier","src":"3594:9:53"}],"functionName":{"name":"sub","nativeSrc":"3581:3:53","nodeType":"YulIdentifier","src":"3581:3:53"},"nativeSrc":"3581:23:53","nodeType":"YulFunctionCall","src":"3581:23:53"},{"kind":"number","nativeSrc":"3606:2:53","nodeType":"YulLiteral","src":"3606:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3577:3:53","nodeType":"YulIdentifier","src":"3577:3:53"},"nativeSrc":"3577:32:53","nodeType":"YulFunctionCall","src":"3577:32:53"},"nativeSrc":"3574:119:53","nodeType":"YulIf","src":"3574:119:53"},{"nativeSrc":"3703:296:53","nodeType":"YulBlock","src":"3703:296:53","statements":[{"nativeSrc":"3718:45:53","nodeType":"YulVariableDeclaration","src":"3718:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3749:9:53","nodeType":"YulIdentifier","src":"3749:9:53"},{"kind":"number","nativeSrc":"3760:1:53","nodeType":"YulLiteral","src":"3760:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3745:3:53","nodeType":"YulIdentifier","src":"3745:3:53"},"nativeSrc":"3745:17:53","nodeType":"YulFunctionCall","src":"3745:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3732:12:53","nodeType":"YulIdentifier","src":"3732:12:53"},"nativeSrc":"3732:31:53","nodeType":"YulFunctionCall","src":"3732:31:53"},"variables":[{"name":"offset","nativeSrc":"3722:6:53","nodeType":"YulTypedName","src":"3722:6:53","type":""}]},{"body":{"nativeSrc":"3810:83:53","nodeType":"YulBlock","src":"3810:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3812:77:53","nodeType":"YulIdentifier","src":"3812:77:53"},"nativeSrc":"3812:79:53","nodeType":"YulFunctionCall","src":"3812:79:53"},"nativeSrc":"3812:79:53","nodeType":"YulExpressionStatement","src":"3812:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3782:6:53","nodeType":"YulIdentifier","src":"3782:6:53"},{"kind":"number","nativeSrc":"3790:18:53","nodeType":"YulLiteral","src":"3790:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3779:2:53","nodeType":"YulIdentifier","src":"3779:2:53"},"nativeSrc":"3779:30:53","nodeType":"YulFunctionCall","src":"3779:30:53"},"nativeSrc":"3776:117:53","nodeType":"YulIf","src":"3776:117:53"},{"nativeSrc":"3907:82:53","nodeType":"YulAssignment","src":"3907:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3961:9:53","nodeType":"YulIdentifier","src":"3961:9:53"},{"name":"offset","nativeSrc":"3972:6:53","nodeType":"YulIdentifier","src":"3972:6:53"}],"functionName":{"name":"add","nativeSrc":"3957:3:53","nodeType":"YulIdentifier","src":"3957:3:53"},"nativeSrc":"3957:22:53","nodeType":"YulFunctionCall","src":"3957:22:53"},{"name":"dataEnd","nativeSrc":"3981:7:53","nodeType":"YulIdentifier","src":"3981:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3925:31:53","nodeType":"YulIdentifier","src":"3925:31:53"},"nativeSrc":"3925:64:53","nodeType":"YulFunctionCall","src":"3925:64:53"},"variableNames":[{"name":"value0","nativeSrc":"3907:6:53","nodeType":"YulIdentifier","src":"3907:6:53"},{"name":"value1","nativeSrc":"3915:6:53","nodeType":"YulIdentifier","src":"3915:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3479:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3526:9:53","nodeType":"YulTypedName","src":"3526:9:53","type":""},{"name":"dataEnd","nativeSrc":"3537:7:53","nodeType":"YulTypedName","src":"3537:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3549:6:53","nodeType":"YulTypedName","src":"3549:6:53","type":""},{"name":"value1","nativeSrc":"3557:6:53","nodeType":"YulTypedName","src":"3557:6:53","type":""}],"src":"3479:527:53"},{"body":{"nativeSrc":"4070:40:53","nodeType":"YulBlock","src":"4070:40:53","statements":[{"nativeSrc":"4081:22:53","nodeType":"YulAssignment","src":"4081:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4097:5:53","nodeType":"YulIdentifier","src":"4097:5:53"}],"functionName":{"name":"mload","nativeSrc":"4091:5:53","nodeType":"YulIdentifier","src":"4091:5:53"},"nativeSrc":"4091:12:53","nodeType":"YulFunctionCall","src":"4091:12:53"},"variableNames":[{"name":"length","nativeSrc":"4081:6:53","nodeType":"YulIdentifier","src":"4081:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4012:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4053:5:53","nodeType":"YulTypedName","src":"4053:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4063:6:53","nodeType":"YulTypedName","src":"4063:6:53","type":""}],"src":"4012:98:53"},{"body":{"nativeSrc":"4211:73:53","nodeType":"YulBlock","src":"4211:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4228:3:53","nodeType":"YulIdentifier","src":"4228:3:53"},{"name":"length","nativeSrc":"4233:6:53","nodeType":"YulIdentifier","src":"4233:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4221:6:53","nodeType":"YulIdentifier","src":"4221:6:53"},"nativeSrc":"4221:19:53","nodeType":"YulFunctionCall","src":"4221:19:53"},"nativeSrc":"4221:19:53","nodeType":"YulExpressionStatement","src":"4221:19:53"},{"nativeSrc":"4249:29:53","nodeType":"YulAssignment","src":"4249:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4268:3:53","nodeType":"YulIdentifier","src":"4268:3:53"},{"kind":"number","nativeSrc":"4273:4:53","nodeType":"YulLiteral","src":"4273:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4264:3:53","nodeType":"YulIdentifier","src":"4264:3:53"},"nativeSrc":"4264:14:53","nodeType":"YulFunctionCall","src":"4264:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4249:11:53","nodeType":"YulIdentifier","src":"4249:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4116:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4183:3:53","nodeType":"YulTypedName","src":"4183:3:53","type":""},{"name":"length","nativeSrc":"4188:6:53","nodeType":"YulTypedName","src":"4188:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4199:11:53","nodeType":"YulTypedName","src":"4199:11:53","type":""}],"src":"4116:168:53"},{"body":{"nativeSrc":"4352:77:53","nodeType":"YulBlock","src":"4352:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4369:3:53","nodeType":"YulIdentifier","src":"4369:3:53"},{"name":"src","nativeSrc":"4374:3:53","nodeType":"YulIdentifier","src":"4374:3:53"},{"name":"length","nativeSrc":"4379:6:53","nodeType":"YulIdentifier","src":"4379:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4363:5:53","nodeType":"YulIdentifier","src":"4363:5:53"},"nativeSrc":"4363:23:53","nodeType":"YulFunctionCall","src":"4363:23:53"},"nativeSrc":"4363:23:53","nodeType":"YulExpressionStatement","src":"4363:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4406:3:53","nodeType":"YulIdentifier","src":"4406:3:53"},{"name":"length","nativeSrc":"4411:6:53","nodeType":"YulIdentifier","src":"4411:6:53"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:16:53","nodeType":"YulFunctionCall","src":"4402:16:53"},{"kind":"number","nativeSrc":"4420:1:53","nodeType":"YulLiteral","src":"4420:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4395:6:53","nodeType":"YulIdentifier","src":"4395:6:53"},"nativeSrc":"4395:27:53","nodeType":"YulFunctionCall","src":"4395:27:53"},"nativeSrc":"4395:27:53","nodeType":"YulExpressionStatement","src":"4395:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4290:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4334:3:53","nodeType":"YulTypedName","src":"4334:3:53","type":""},{"name":"dst","nativeSrc":"4339:3:53","nodeType":"YulTypedName","src":"4339:3:53","type":""},{"name":"length","nativeSrc":"4344:6:53","nodeType":"YulTypedName","src":"4344:6:53","type":""}],"src":"4290:139:53"},{"body":{"nativeSrc":"4483:54:53","nodeType":"YulBlock","src":"4483:54:53","statements":[{"nativeSrc":"4493:38:53","nodeType":"YulAssignment","src":"4493:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4511:5:53","nodeType":"YulIdentifier","src":"4511:5:53"},{"kind":"number","nativeSrc":"4518:2:53","nodeType":"YulLiteral","src":"4518:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4507:3:53","nodeType":"YulIdentifier","src":"4507:3:53"},"nativeSrc":"4507:14:53","nodeType":"YulFunctionCall","src":"4507:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4527:2:53","nodeType":"YulLiteral","src":"4527:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4523:3:53","nodeType":"YulIdentifier","src":"4523:3:53"},"nativeSrc":"4523:7:53","nodeType":"YulFunctionCall","src":"4523:7:53"}],"functionName":{"name":"and","nativeSrc":"4503:3:53","nodeType":"YulIdentifier","src":"4503:3:53"},"nativeSrc":"4503:28:53","nodeType":"YulFunctionCall","src":"4503:28:53"},"variableNames":[{"name":"result","nativeSrc":"4493:6:53","nodeType":"YulIdentifier","src":"4493:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4435:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4466:5:53","nodeType":"YulTypedName","src":"4466:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4476:6:53","nodeType":"YulTypedName","src":"4476:6:53","type":""}],"src":"4435:102:53"},{"body":{"nativeSrc":"4633:283:53","nodeType":"YulBlock","src":"4633:283:53","statements":[{"nativeSrc":"4643:52:53","nodeType":"YulVariableDeclaration","src":"4643:52:53","value":{"arguments":[{"name":"value","nativeSrc":"4689:5:53","nodeType":"YulIdentifier","src":"4689:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4657:31:53","nodeType":"YulIdentifier","src":"4657:31:53"},"nativeSrc":"4657:38:53","nodeType":"YulFunctionCall","src":"4657:38:53"},"variables":[{"name":"length","nativeSrc":"4647:6:53","nodeType":"YulTypedName","src":"4647:6:53","type":""}]},{"nativeSrc":"4704:77:53","nodeType":"YulAssignment","src":"4704:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"4769:3:53","nodeType":"YulIdentifier","src":"4769:3:53"},{"name":"length","nativeSrc":"4774:6:53","nodeType":"YulIdentifier","src":"4774:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4711:57:53","nodeType":"YulIdentifier","src":"4711:57:53"},"nativeSrc":"4711:70:53","nodeType":"YulFunctionCall","src":"4711:70:53"},"variableNames":[{"name":"pos","nativeSrc":"4704:3:53","nodeType":"YulIdentifier","src":"4704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4829:5:53","nodeType":"YulIdentifier","src":"4829:5:53"},{"kind":"number","nativeSrc":"4836:4:53","nodeType":"YulLiteral","src":"4836:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4825:3:53","nodeType":"YulIdentifier","src":"4825:3:53"},"nativeSrc":"4825:16:53","nodeType":"YulFunctionCall","src":"4825:16:53"},{"name":"pos","nativeSrc":"4843:3:53","nodeType":"YulIdentifier","src":"4843:3:53"},{"name":"length","nativeSrc":"4848:6:53","nodeType":"YulIdentifier","src":"4848:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4790:34:53","nodeType":"YulIdentifier","src":"4790:34:53"},"nativeSrc":"4790:65:53","nodeType":"YulFunctionCall","src":"4790:65:53"},"nativeSrc":"4790:65:53","nodeType":"YulExpressionStatement","src":"4790:65:53"},{"nativeSrc":"4864:46:53","nodeType":"YulAssignment","src":"4864:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4875:3:53","nodeType":"YulIdentifier","src":"4875:3:53"},{"arguments":[{"name":"length","nativeSrc":"4902:6:53","nodeType":"YulIdentifier","src":"4902:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4880:21:53","nodeType":"YulIdentifier","src":"4880:21:53"},"nativeSrc":"4880:29:53","nodeType":"YulFunctionCall","src":"4880:29:53"}],"functionName":{"name":"add","nativeSrc":"4871:3:53","nodeType":"YulIdentifier","src":"4871:3:53"},"nativeSrc":"4871:39:53","nodeType":"YulFunctionCall","src":"4871:39:53"},"variableNames":[{"name":"end","nativeSrc":"4864:3:53","nodeType":"YulIdentifier","src":"4864:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4543:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4614:5:53","nodeType":"YulTypedName","src":"4614:5:53","type":""},{"name":"pos","nativeSrc":"4621:3:53","nodeType":"YulTypedName","src":"4621:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4629:3:53","nodeType":"YulTypedName","src":"4629:3:53","type":""}],"src":"4543:373:53"},{"body":{"nativeSrc":"5038:193:53","nodeType":"YulBlock","src":"5038:193:53","statements":[{"nativeSrc":"5048:26:53","nodeType":"YulAssignment","src":"5048:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5060:9:53","nodeType":"YulIdentifier","src":"5060:9:53"},{"kind":"number","nativeSrc":"5071:2:53","nodeType":"YulLiteral","src":"5071:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5056:3:53","nodeType":"YulIdentifier","src":"5056:3:53"},"nativeSrc":"5056:18:53","nodeType":"YulFunctionCall","src":"5056:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5048:4:53","nodeType":"YulIdentifier","src":"5048:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5095:9:53","nodeType":"YulIdentifier","src":"5095:9:53"},{"kind":"number","nativeSrc":"5106:1:53","nodeType":"YulLiteral","src":"5106:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5091:3:53","nodeType":"YulIdentifier","src":"5091:3:53"},"nativeSrc":"5091:17:53","nodeType":"YulFunctionCall","src":"5091:17:53"},{"arguments":[{"name":"tail","nativeSrc":"5114:4:53","nodeType":"YulIdentifier","src":"5114:4:53"},{"name":"headStart","nativeSrc":"5120:9:53","nodeType":"YulIdentifier","src":"5120:9:53"}],"functionName":{"name":"sub","nativeSrc":"5110:3:53","nodeType":"YulIdentifier","src":"5110:3:53"},"nativeSrc":"5110:20:53","nodeType":"YulFunctionCall","src":"5110:20:53"}],"functionName":{"name":"mstore","nativeSrc":"5084:6:53","nodeType":"YulIdentifier","src":"5084:6:53"},"nativeSrc":"5084:47:53","nodeType":"YulFunctionCall","src":"5084:47:53"},"nativeSrc":"5084:47:53","nodeType":"YulExpressionStatement","src":"5084:47:53"},{"nativeSrc":"5140:84:53","nodeType":"YulAssignment","src":"5140:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"5210:6:53","nodeType":"YulIdentifier","src":"5210:6:53"},{"name":"tail","nativeSrc":"5219:4:53","nodeType":"YulIdentifier","src":"5219:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5148:61:53","nodeType":"YulIdentifier","src":"5148:61:53"},"nativeSrc":"5148:76:53","nodeType":"YulFunctionCall","src":"5148:76:53"},"variableNames":[{"name":"tail","nativeSrc":"5140:4:53","nodeType":"YulIdentifier","src":"5140:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4922:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5010:9:53","nodeType":"YulTypedName","src":"5010:9:53","type":""},{"name":"value0","nativeSrc":"5022:6:53","nodeType":"YulTypedName","src":"5022:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5033:4:53","nodeType":"YulTypedName","src":"5033:4:53","type":""}],"src":"4922:309:53"},{"body":{"nativeSrc":"5419:371:53","nodeType":"YulBlock","src":"5419:371:53","statements":[{"nativeSrc":"5429:27:53","nodeType":"YulAssignment","src":"5429:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5441:9:53","nodeType":"YulIdentifier","src":"5441:9:53"},{"kind":"number","nativeSrc":"5452:3:53","nodeType":"YulLiteral","src":"5452:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5437:3:53","nodeType":"YulIdentifier","src":"5437:3:53"},"nativeSrc":"5437:19:53","nodeType":"YulFunctionCall","src":"5437:19:53"},"variableNames":[{"name":"tail","nativeSrc":"5429:4:53","nodeType":"YulIdentifier","src":"5429:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5510:6:53","nodeType":"YulIdentifier","src":"5510:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5523:9:53","nodeType":"YulIdentifier","src":"5523:9:53"},{"kind":"number","nativeSrc":"5534:1:53","nodeType":"YulLiteral","src":"5534:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5519:3:53","nodeType":"YulIdentifier","src":"5519:3:53"},"nativeSrc":"5519:17:53","nodeType":"YulFunctionCall","src":"5519:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5466:43:53","nodeType":"YulIdentifier","src":"5466:43:53"},"nativeSrc":"5466:71:53","nodeType":"YulFunctionCall","src":"5466:71:53"},"nativeSrc":"5466:71:53","nodeType":"YulExpressionStatement","src":"5466:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5591:6:53","nodeType":"YulIdentifier","src":"5591:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5604:9:53","nodeType":"YulIdentifier","src":"5604:9:53"},{"kind":"number","nativeSrc":"5615:2:53","nodeType":"YulLiteral","src":"5615:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5600:3:53","nodeType":"YulIdentifier","src":"5600:3:53"},"nativeSrc":"5600:18:53","nodeType":"YulFunctionCall","src":"5600:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5547:43:53","nodeType":"YulIdentifier","src":"5547:43:53"},"nativeSrc":"5547:72:53","nodeType":"YulFunctionCall","src":"5547:72:53"},"nativeSrc":"5547:72:53","nodeType":"YulExpressionStatement","src":"5547:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"5673:6:53","nodeType":"YulIdentifier","src":"5673:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5686:9:53","nodeType":"YulIdentifier","src":"5686:9:53"},{"kind":"number","nativeSrc":"5697:2:53","nodeType":"YulLiteral","src":"5697:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5682:3:53","nodeType":"YulIdentifier","src":"5682:3:53"},"nativeSrc":"5682:18:53","nodeType":"YulFunctionCall","src":"5682:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5629:43:53","nodeType":"YulIdentifier","src":"5629:43:53"},"nativeSrc":"5629:72:53","nodeType":"YulFunctionCall","src":"5629:72:53"},"nativeSrc":"5629:72:53","nodeType":"YulExpressionStatement","src":"5629:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"5755:6:53","nodeType":"YulIdentifier","src":"5755:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5768:9:53","nodeType":"YulIdentifier","src":"5768:9:53"},{"kind":"number","nativeSrc":"5779:2:53","nodeType":"YulLiteral","src":"5779:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5764:3:53","nodeType":"YulIdentifier","src":"5764:3:53"},"nativeSrc":"5764:18:53","nodeType":"YulFunctionCall","src":"5764:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5711:43:53","nodeType":"YulIdentifier","src":"5711:43:53"},"nativeSrc":"5711:72:53","nodeType":"YulFunctionCall","src":"5711:72:53"},"nativeSrc":"5711:72:53","nodeType":"YulExpressionStatement","src":"5711:72:53"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"5237:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5367:9:53","nodeType":"YulTypedName","src":"5367:9:53","type":""},{"name":"value3","nativeSrc":"5379:6:53","nodeType":"YulTypedName","src":"5379:6:53","type":""},{"name":"value2","nativeSrc":"5387:6:53","nodeType":"YulTypedName","src":"5387:6:53","type":""},{"name":"value1","nativeSrc":"5395:6:53","nodeType":"YulTypedName","src":"5395:6:53","type":""},{"name":"value0","nativeSrc":"5403:6:53","nodeType":"YulTypedName","src":"5403:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5414:4:53","nodeType":"YulTypedName","src":"5414:4:53","type":""}],"src":"5237:553:53"},{"body":{"nativeSrc":"5839:79:53","nodeType":"YulBlock","src":"5839:79:53","statements":[{"body":{"nativeSrc":"5896:16:53","nodeType":"YulBlock","src":"5896:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5905:1:53","nodeType":"YulLiteral","src":"5905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5908:1:53","nodeType":"YulLiteral","src":"5908:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5898:6:53","nodeType":"YulIdentifier","src":"5898:6:53"},"nativeSrc":"5898:12:53","nodeType":"YulFunctionCall","src":"5898:12:53"},"nativeSrc":"5898:12:53","nodeType":"YulExpressionStatement","src":"5898:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5862:5:53","nodeType":"YulIdentifier","src":"5862:5:53"},{"arguments":[{"name":"value","nativeSrc":"5887:5:53","nodeType":"YulIdentifier","src":"5887:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5869:17:53","nodeType":"YulIdentifier","src":"5869:17:53"},"nativeSrc":"5869:24:53","nodeType":"YulFunctionCall","src":"5869:24:53"}],"functionName":{"name":"eq","nativeSrc":"5859:2:53","nodeType":"YulIdentifier","src":"5859:2:53"},"nativeSrc":"5859:35:53","nodeType":"YulFunctionCall","src":"5859:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5852:6:53","nodeType":"YulIdentifier","src":"5852:6:53"},"nativeSrc":"5852:43:53","nodeType":"YulFunctionCall","src":"5852:43:53"},"nativeSrc":"5849:63:53","nodeType":"YulIf","src":"5849:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5796:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5832:5:53","nodeType":"YulTypedName","src":"5832:5:53","type":""}],"src":"5796:122:53"},{"body":{"nativeSrc":"5976:87:53","nodeType":"YulBlock","src":"5976:87:53","statements":[{"nativeSrc":"5986:29:53","nodeType":"YulAssignment","src":"5986:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6008:6:53","nodeType":"YulIdentifier","src":"6008:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5995:12:53","nodeType":"YulIdentifier","src":"5995:12:53"},"nativeSrc":"5995:20:53","nodeType":"YulFunctionCall","src":"5995:20:53"},"variableNames":[{"name":"value","nativeSrc":"5986:5:53","nodeType":"YulIdentifier","src":"5986:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6051:5:53","nodeType":"YulIdentifier","src":"6051:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6024:26:53","nodeType":"YulIdentifier","src":"6024:26:53"},"nativeSrc":"6024:33:53","nodeType":"YulFunctionCall","src":"6024:33:53"},"nativeSrc":"6024:33:53","nodeType":"YulExpressionStatement","src":"6024:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5924:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5954:6:53","nodeType":"YulTypedName","src":"5954:6:53","type":""},{"name":"end","nativeSrc":"5962:3:53","nodeType":"YulTypedName","src":"5962:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5970:5:53","nodeType":"YulTypedName","src":"5970:5:53","type":""}],"src":"5924:139:53"},{"body":{"nativeSrc":"6135:263:53","nodeType":"YulBlock","src":"6135:263:53","statements":[{"body":{"nativeSrc":"6181:83:53","nodeType":"YulBlock","src":"6181:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6183:77:53","nodeType":"YulIdentifier","src":"6183:77:53"},"nativeSrc":"6183:79:53","nodeType":"YulFunctionCall","src":"6183:79:53"},"nativeSrc":"6183:79:53","nodeType":"YulExpressionStatement","src":"6183:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6156:7:53","nodeType":"YulIdentifier","src":"6156:7:53"},{"name":"headStart","nativeSrc":"6165:9:53","nodeType":"YulIdentifier","src":"6165:9:53"}],"functionName":{"name":"sub","nativeSrc":"6152:3:53","nodeType":"YulIdentifier","src":"6152:3:53"},"nativeSrc":"6152:23:53","nodeType":"YulFunctionCall","src":"6152:23:53"},{"kind":"number","nativeSrc":"6177:2:53","nodeType":"YulLiteral","src":"6177:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6148:3:53","nodeType":"YulIdentifier","src":"6148:3:53"},"nativeSrc":"6148:32:53","nodeType":"YulFunctionCall","src":"6148:32:53"},"nativeSrc":"6145:119:53","nodeType":"YulIf","src":"6145:119:53"},{"nativeSrc":"6274:117:53","nodeType":"YulBlock","src":"6274:117:53","statements":[{"nativeSrc":"6289:15:53","nodeType":"YulVariableDeclaration","src":"6289:15:53","value":{"kind":"number","nativeSrc":"6303:1:53","nodeType":"YulLiteral","src":"6303:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6293:6:53","nodeType":"YulTypedName","src":"6293:6:53","type":""}]},{"nativeSrc":"6318:63:53","nodeType":"YulAssignment","src":"6318:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6353:9:53","nodeType":"YulIdentifier","src":"6353:9:53"},{"name":"offset","nativeSrc":"6364:6:53","nodeType":"YulIdentifier","src":"6364:6:53"}],"functionName":{"name":"add","nativeSrc":"6349:3:53","nodeType":"YulIdentifier","src":"6349:3:53"},"nativeSrc":"6349:22:53","nodeType":"YulFunctionCall","src":"6349:22:53"},{"name":"dataEnd","nativeSrc":"6373:7:53","nodeType":"YulIdentifier","src":"6373:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6328:20:53","nodeType":"YulIdentifier","src":"6328:20:53"},"nativeSrc":"6328:53:53","nodeType":"YulFunctionCall","src":"6328:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6318:6:53","nodeType":"YulIdentifier","src":"6318:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6069:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6105:9:53","nodeType":"YulTypedName","src":"6105:9:53","type":""},{"name":"dataEnd","nativeSrc":"6116:7:53","nodeType":"YulTypedName","src":"6116:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6128:6:53","nodeType":"YulTypedName","src":"6128:6:53","type":""}],"src":"6069:329:53"},{"body":{"nativeSrc":"6432:152:53","nodeType":"YulBlock","src":"6432:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6449:1:53","nodeType":"YulLiteral","src":"6449:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6452:77:53","nodeType":"YulLiteral","src":"6452:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6442:6:53","nodeType":"YulIdentifier","src":"6442:6:53"},"nativeSrc":"6442:88:53","nodeType":"YulFunctionCall","src":"6442:88:53"},"nativeSrc":"6442:88:53","nodeType":"YulExpressionStatement","src":"6442:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6546:1:53","nodeType":"YulLiteral","src":"6546:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6549:4:53","nodeType":"YulLiteral","src":"6549:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6539:6:53","nodeType":"YulIdentifier","src":"6539:6:53"},"nativeSrc":"6539:15:53","nodeType":"YulFunctionCall","src":"6539:15:53"},"nativeSrc":"6539:15:53","nodeType":"YulExpressionStatement","src":"6539:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6570:1:53","nodeType":"YulLiteral","src":"6570:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6573:4:53","nodeType":"YulLiteral","src":"6573:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6563:6:53","nodeType":"YulIdentifier","src":"6563:6:53"},"nativeSrc":"6563:15:53","nodeType":"YulFunctionCall","src":"6563:15:53"},"nativeSrc":"6563:15:53","nodeType":"YulExpressionStatement","src":"6563:15:53"}]},"name":"panic_error_0x11","nativeSrc":"6404:180:53","nodeType":"YulFunctionDefinition","src":"6404:180:53"},{"body":{"nativeSrc":"6635:149:53","nodeType":"YulBlock","src":"6635:149:53","statements":[{"nativeSrc":"6645:25:53","nodeType":"YulAssignment","src":"6645:25:53","value":{"arguments":[{"name":"x","nativeSrc":"6668:1:53","nodeType":"YulIdentifier","src":"6668:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6650:17:53","nodeType":"YulIdentifier","src":"6650:17:53"},"nativeSrc":"6650:20:53","nodeType":"YulFunctionCall","src":"6650:20:53"},"variableNames":[{"name":"x","nativeSrc":"6645:1:53","nodeType":"YulIdentifier","src":"6645:1:53"}]},{"nativeSrc":"6679:25:53","nodeType":"YulAssignment","src":"6679:25:53","value":{"arguments":[{"name":"y","nativeSrc":"6702:1:53","nodeType":"YulIdentifier","src":"6702:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6684:17:53","nodeType":"YulIdentifier","src":"6684:17:53"},"nativeSrc":"6684:20:53","nodeType":"YulFunctionCall","src":"6684:20:53"},"variableNames":[{"name":"y","nativeSrc":"6679:1:53","nodeType":"YulIdentifier","src":"6679:1:53"}]},{"nativeSrc":"6713:17:53","nodeType":"YulAssignment","src":"6713:17:53","value":{"arguments":[{"name":"x","nativeSrc":"6725:1:53","nodeType":"YulIdentifier","src":"6725:1:53"},{"name":"y","nativeSrc":"6728:1:53","nodeType":"YulIdentifier","src":"6728:1:53"}],"functionName":{"name":"sub","nativeSrc":"6721:3:53","nodeType":"YulIdentifier","src":"6721:3:53"},"nativeSrc":"6721:9:53","nodeType":"YulFunctionCall","src":"6721:9:53"},"variableNames":[{"name":"diff","nativeSrc":"6713:4:53","nodeType":"YulIdentifier","src":"6713:4:53"}]},{"body":{"nativeSrc":"6755:22:53","nodeType":"YulBlock","src":"6755:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6757:16:53","nodeType":"YulIdentifier","src":"6757:16:53"},"nativeSrc":"6757:18:53","nodeType":"YulFunctionCall","src":"6757:18:53"},"nativeSrc":"6757:18:53","nodeType":"YulExpressionStatement","src":"6757:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6746:4:53","nodeType":"YulIdentifier","src":"6746:4:53"},{"name":"x","nativeSrc":"6752:1:53","nodeType":"YulIdentifier","src":"6752:1:53"}],"functionName":{"name":"gt","nativeSrc":"6743:2:53","nodeType":"YulIdentifier","src":"6743:2:53"},"nativeSrc":"6743:11:53","nodeType":"YulFunctionCall","src":"6743:11:53"},"nativeSrc":"6740:37:53","nodeType":"YulIf","src":"6740:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"6590:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6621:1:53","nodeType":"YulTypedName","src":"6621:1:53","type":""},{"name":"y","nativeSrc":"6624:1:53","nodeType":"YulTypedName","src":"6624:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6630:4:53","nodeType":"YulTypedName","src":"6630:4:53","type":""}],"src":"6590:194:53"},{"body":{"nativeSrc":"6838:362:53","nodeType":"YulBlock","src":"6838:362:53","statements":[{"nativeSrc":"6848:25:53","nodeType":"YulAssignment","src":"6848:25:53","value":{"arguments":[{"name":"x","nativeSrc":"6871:1:53","nodeType":"YulIdentifier","src":"6871:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6853:17:53","nodeType":"YulIdentifier","src":"6853:17:53"},"nativeSrc":"6853:20:53","nodeType":"YulFunctionCall","src":"6853:20:53"},"variableNames":[{"name":"x","nativeSrc":"6848:1:53","nodeType":"YulIdentifier","src":"6848:1:53"}]},{"nativeSrc":"6882:25:53","nodeType":"YulAssignment","src":"6882:25:53","value":{"arguments":[{"name":"y","nativeSrc":"6905:1:53","nodeType":"YulIdentifier","src":"6905:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6887:17:53","nodeType":"YulIdentifier","src":"6887:17:53"},"nativeSrc":"6887:20:53","nodeType":"YulFunctionCall","src":"6887:20:53"},"variableNames":[{"name":"y","nativeSrc":"6882:1:53","nodeType":"YulIdentifier","src":"6882:1:53"}]},{"nativeSrc":"6916:28:53","nodeType":"YulVariableDeclaration","src":"6916:28:53","value":{"arguments":[{"name":"x","nativeSrc":"6939:1:53","nodeType":"YulIdentifier","src":"6939:1:53"},{"name":"y","nativeSrc":"6942:1:53","nodeType":"YulIdentifier","src":"6942:1:53"}],"functionName":{"name":"mul","nativeSrc":"6935:3:53","nodeType":"YulIdentifier","src":"6935:3:53"},"nativeSrc":"6935:9:53","nodeType":"YulFunctionCall","src":"6935:9:53"},"variables":[{"name":"product_raw","nativeSrc":"6920:11:53","nodeType":"YulTypedName","src":"6920:11:53","type":""}]},{"nativeSrc":"6953:41:53","nodeType":"YulAssignment","src":"6953:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"6982:11:53","nodeType":"YulIdentifier","src":"6982:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6964:17:53","nodeType":"YulIdentifier","src":"6964:17:53"},"nativeSrc":"6964:30:53","nodeType":"YulFunctionCall","src":"6964:30:53"},"variableNames":[{"name":"product","nativeSrc":"6953:7:53","nodeType":"YulIdentifier","src":"6953:7:53"}]},{"body":{"nativeSrc":"7171:22:53","nodeType":"YulBlock","src":"7171:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7173:16:53","nodeType":"YulIdentifier","src":"7173:16:53"},"nativeSrc":"7173:18:53","nodeType":"YulFunctionCall","src":"7173:18:53"},"nativeSrc":"7173:18:53","nodeType":"YulExpressionStatement","src":"7173:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7104:1:53","nodeType":"YulIdentifier","src":"7104:1:53"}],"functionName":{"name":"iszero","nativeSrc":"7097:6:53","nodeType":"YulIdentifier","src":"7097:6:53"},"nativeSrc":"7097:9:53","nodeType":"YulFunctionCall","src":"7097:9:53"},{"arguments":[{"name":"y","nativeSrc":"7127:1:53","nodeType":"YulIdentifier","src":"7127:1:53"},{"arguments":[{"name":"product","nativeSrc":"7134:7:53","nodeType":"YulIdentifier","src":"7134:7:53"},{"name":"x","nativeSrc":"7143:1:53","nodeType":"YulIdentifier","src":"7143:1:53"}],"functionName":{"name":"div","nativeSrc":"7130:3:53","nodeType":"YulIdentifier","src":"7130:3:53"},"nativeSrc":"7130:15:53","nodeType":"YulFunctionCall","src":"7130:15:53"}],"functionName":{"name":"eq","nativeSrc":"7124:2:53","nodeType":"YulIdentifier","src":"7124:2:53"},"nativeSrc":"7124:22:53","nodeType":"YulFunctionCall","src":"7124:22:53"}],"functionName":{"name":"or","nativeSrc":"7077:2:53","nodeType":"YulIdentifier","src":"7077:2:53"},"nativeSrc":"7077:83:53","nodeType":"YulFunctionCall","src":"7077:83:53"}],"functionName":{"name":"iszero","nativeSrc":"7057:6:53","nodeType":"YulIdentifier","src":"7057:6:53"},"nativeSrc":"7057:113:53","nodeType":"YulFunctionCall","src":"7057:113:53"},"nativeSrc":"7054:139:53","nodeType":"YulIf","src":"7054:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"6790:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6821:1:53","nodeType":"YulTypedName","src":"6821:1:53","type":""},{"name":"y","nativeSrc":"6824:1:53","nodeType":"YulTypedName","src":"6824:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6830:7:53","nodeType":"YulTypedName","src":"6830:7:53","type":""}],"src":"6790:410:53"},{"body":{"nativeSrc":"7234:152:53","nodeType":"YulBlock","src":"7234:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7251:1:53","nodeType":"YulLiteral","src":"7251:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7254:77:53","nodeType":"YulLiteral","src":"7254:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7244:6:53","nodeType":"YulIdentifier","src":"7244:6:53"},"nativeSrc":"7244:88:53","nodeType":"YulFunctionCall","src":"7244:88:53"},"nativeSrc":"7244:88:53","nodeType":"YulExpressionStatement","src":"7244:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7348:1:53","nodeType":"YulLiteral","src":"7348:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7351:4:53","nodeType":"YulLiteral","src":"7351:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7341:6:53","nodeType":"YulIdentifier","src":"7341:6:53"},"nativeSrc":"7341:15:53","nodeType":"YulFunctionCall","src":"7341:15:53"},"nativeSrc":"7341:15:53","nodeType":"YulExpressionStatement","src":"7341:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7372:1:53","nodeType":"YulLiteral","src":"7372:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7375:4:53","nodeType":"YulLiteral","src":"7375:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7365:6:53","nodeType":"YulIdentifier","src":"7365:6:53"},"nativeSrc":"7365:15:53","nodeType":"YulFunctionCall","src":"7365:15:53"},"nativeSrc":"7365:15:53","nodeType":"YulExpressionStatement","src":"7365:15:53"}]},"name":"panic_error_0x12","nativeSrc":"7206:180:53","nodeType":"YulFunctionDefinition","src":"7206:180:53"},{"body":{"nativeSrc":"7434:143:53","nodeType":"YulBlock","src":"7434:143:53","statements":[{"nativeSrc":"7444:25:53","nodeType":"YulAssignment","src":"7444:25:53","value":{"arguments":[{"name":"x","nativeSrc":"7467:1:53","nodeType":"YulIdentifier","src":"7467:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7449:17:53","nodeType":"YulIdentifier","src":"7449:17:53"},"nativeSrc":"7449:20:53","nodeType":"YulFunctionCall","src":"7449:20:53"},"variableNames":[{"name":"x","nativeSrc":"7444:1:53","nodeType":"YulIdentifier","src":"7444:1:53"}]},{"nativeSrc":"7478:25:53","nodeType":"YulAssignment","src":"7478:25:53","value":{"arguments":[{"name":"y","nativeSrc":"7501:1:53","nodeType":"YulIdentifier","src":"7501:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7483:17:53","nodeType":"YulIdentifier","src":"7483:17:53"},"nativeSrc":"7483:20:53","nodeType":"YulFunctionCall","src":"7483:20:53"},"variableNames":[{"name":"y","nativeSrc":"7478:1:53","nodeType":"YulIdentifier","src":"7478:1:53"}]},{"body":{"nativeSrc":"7525:22:53","nodeType":"YulBlock","src":"7525:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"7527:16:53","nodeType":"YulIdentifier","src":"7527:16:53"},"nativeSrc":"7527:18:53","nodeType":"YulFunctionCall","src":"7527:18:53"},"nativeSrc":"7527:18:53","nodeType":"YulExpressionStatement","src":"7527:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"7522:1:53","nodeType":"YulIdentifier","src":"7522:1:53"}],"functionName":{"name":"iszero","nativeSrc":"7515:6:53","nodeType":"YulIdentifier","src":"7515:6:53"},"nativeSrc":"7515:9:53","nodeType":"YulFunctionCall","src":"7515:9:53"},"nativeSrc":"7512:35:53","nodeType":"YulIf","src":"7512:35:53"},{"nativeSrc":"7557:14:53","nodeType":"YulAssignment","src":"7557:14:53","value":{"arguments":[{"name":"x","nativeSrc":"7566:1:53","nodeType":"YulIdentifier","src":"7566:1:53"},{"name":"y","nativeSrc":"7569:1:53","nodeType":"YulIdentifier","src":"7569:1:53"}],"functionName":{"name":"div","nativeSrc":"7562:3:53","nodeType":"YulIdentifier","src":"7562:3:53"},"nativeSrc":"7562:9:53","nodeType":"YulFunctionCall","src":"7562:9:53"},"variableNames":[{"name":"r","nativeSrc":"7557:1:53","nodeType":"YulIdentifier","src":"7557:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"7392:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7423:1:53","nodeType":"YulTypedName","src":"7423:1:53","type":""},{"name":"y","nativeSrc":"7426:1:53","nodeType":"YulTypedName","src":"7426:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"7432:1:53","nodeType":"YulTypedName","src":"7432:1:53","type":""}],"src":"7392:185:53"},{"body":{"nativeSrc":"7627:147:53","nodeType":"YulBlock","src":"7627:147:53","statements":[{"nativeSrc":"7637:25:53","nodeType":"YulAssignment","src":"7637:25:53","value":{"arguments":[{"name":"x","nativeSrc":"7660:1:53","nodeType":"YulIdentifier","src":"7660:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7642:17:53","nodeType":"YulIdentifier","src":"7642:17:53"},"nativeSrc":"7642:20:53","nodeType":"YulFunctionCall","src":"7642:20:53"},"variableNames":[{"name":"x","nativeSrc":"7637:1:53","nodeType":"YulIdentifier","src":"7637:1:53"}]},{"nativeSrc":"7671:25:53","nodeType":"YulAssignment","src":"7671:25:53","value":{"arguments":[{"name":"y","nativeSrc":"7694:1:53","nodeType":"YulIdentifier","src":"7694:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7676:17:53","nodeType":"YulIdentifier","src":"7676:17:53"},"nativeSrc":"7676:20:53","nodeType":"YulFunctionCall","src":"7676:20:53"},"variableNames":[{"name":"y","nativeSrc":"7671:1:53","nodeType":"YulIdentifier","src":"7671:1:53"}]},{"nativeSrc":"7705:16:53","nodeType":"YulAssignment","src":"7705:16:53","value":{"arguments":[{"name":"x","nativeSrc":"7716:1:53","nodeType":"YulIdentifier","src":"7716:1:53"},{"name":"y","nativeSrc":"7719:1:53","nodeType":"YulIdentifier","src":"7719:1:53"}],"functionName":{"name":"add","nativeSrc":"7712:3:53","nodeType":"YulIdentifier","src":"7712:3:53"},"nativeSrc":"7712:9:53","nodeType":"YulFunctionCall","src":"7712:9:53"},"variableNames":[{"name":"sum","nativeSrc":"7705:3:53","nodeType":"YulIdentifier","src":"7705:3:53"}]},{"body":{"nativeSrc":"7745:22:53","nodeType":"YulBlock","src":"7745:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7747:16:53","nodeType":"YulIdentifier","src":"7747:16:53"},"nativeSrc":"7747:18:53","nodeType":"YulFunctionCall","src":"7747:18:53"},"nativeSrc":"7747:18:53","nodeType":"YulExpressionStatement","src":"7747:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7737:1:53","nodeType":"YulIdentifier","src":"7737:1:53"},{"name":"sum","nativeSrc":"7740:3:53","nodeType":"YulIdentifier","src":"7740:3:53"}],"functionName":{"name":"gt","nativeSrc":"7734:2:53","nodeType":"YulIdentifier","src":"7734:2:53"},"nativeSrc":"7734:10:53","nodeType":"YulFunctionCall","src":"7734:10:53"},"nativeSrc":"7731:36:53","nodeType":"YulIf","src":"7731:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"7583:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7614:1:53","nodeType":"YulTypedName","src":"7614:1:53","type":""},{"name":"y","nativeSrc":"7617:1:53","nodeType":"YulTypedName","src":"7617:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7623:3:53","nodeType":"YulTypedName","src":"7623:3:53","type":""}],"src":"7583:191:53"},{"body":{"nativeSrc":"7869:28:53","nodeType":"YulBlock","src":"7869:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7886:1:53","nodeType":"YulLiteral","src":"7886:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7889:1:53","nodeType":"YulLiteral","src":"7889:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7879:6:53","nodeType":"YulIdentifier","src":"7879:6:53"},"nativeSrc":"7879:12:53","nodeType":"YulFunctionCall","src":"7879:12:53"},"nativeSrc":"7879:12:53","nodeType":"YulExpressionStatement","src":"7879:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7780:117:53","nodeType":"YulFunctionDefinition","src":"7780:117:53"},{"body":{"nativeSrc":"7931:152:53","nodeType":"YulBlock","src":"7931:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7948:1:53","nodeType":"YulLiteral","src":"7948:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7951:77:53","nodeType":"YulLiteral","src":"7951:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7941:6:53","nodeType":"YulIdentifier","src":"7941:6:53"},"nativeSrc":"7941:88:53","nodeType":"YulFunctionCall","src":"7941:88:53"},"nativeSrc":"7941:88:53","nodeType":"YulExpressionStatement","src":"7941:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8045:1:53","nodeType":"YulLiteral","src":"8045:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8048:4:53","nodeType":"YulLiteral","src":"8048:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8038:6:53","nodeType":"YulIdentifier","src":"8038:6:53"},"nativeSrc":"8038:15:53","nodeType":"YulFunctionCall","src":"8038:15:53"},"nativeSrc":"8038:15:53","nodeType":"YulExpressionStatement","src":"8038:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8069:1:53","nodeType":"YulLiteral","src":"8069:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8072:4:53","nodeType":"YulLiteral","src":"8072:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8062:6:53","nodeType":"YulIdentifier","src":"8062:6:53"},"nativeSrc":"8062:15:53","nodeType":"YulFunctionCall","src":"8062:15:53"},"nativeSrc":"8062:15:53","nodeType":"YulExpressionStatement","src":"8062:15:53"}]},"name":"panic_error_0x41","nativeSrc":"7903:180:53","nodeType":"YulFunctionDefinition","src":"7903:180:53"},{"body":{"nativeSrc":"8132:238:53","nodeType":"YulBlock","src":"8132:238:53","statements":[{"nativeSrc":"8142:58:53","nodeType":"YulVariableDeclaration","src":"8142:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8164:6:53","nodeType":"YulIdentifier","src":"8164:6:53"},{"arguments":[{"name":"size","nativeSrc":"8194:4:53","nodeType":"YulIdentifier","src":"8194:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8172:21:53","nodeType":"YulIdentifier","src":"8172:21:53"},"nativeSrc":"8172:27:53","nodeType":"YulFunctionCall","src":"8172:27:53"}],"functionName":{"name":"add","nativeSrc":"8160:3:53","nodeType":"YulIdentifier","src":"8160:3:53"},"nativeSrc":"8160:40:53","nodeType":"YulFunctionCall","src":"8160:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8146:10:53","nodeType":"YulTypedName","src":"8146:10:53","type":""}]},{"body":{"nativeSrc":"8311:22:53","nodeType":"YulBlock","src":"8311:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8313:16:53","nodeType":"YulIdentifier","src":"8313:16:53"},"nativeSrc":"8313:18:53","nodeType":"YulFunctionCall","src":"8313:18:53"},"nativeSrc":"8313:18:53","nodeType":"YulExpressionStatement","src":"8313:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8254:10:53","nodeType":"YulIdentifier","src":"8254:10:53"},{"kind":"number","nativeSrc":"8266:18:53","nodeType":"YulLiteral","src":"8266:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8251:2:53","nodeType":"YulIdentifier","src":"8251:2:53"},"nativeSrc":"8251:34:53","nodeType":"YulFunctionCall","src":"8251:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8290:10:53","nodeType":"YulIdentifier","src":"8290:10:53"},{"name":"memPtr","nativeSrc":"8302:6:53","nodeType":"YulIdentifier","src":"8302:6:53"}],"functionName":{"name":"lt","nativeSrc":"8287:2:53","nodeType":"YulIdentifier","src":"8287:2:53"},"nativeSrc":"8287:22:53","nodeType":"YulFunctionCall","src":"8287:22:53"}],"functionName":{"name":"or","nativeSrc":"8248:2:53","nodeType":"YulIdentifier","src":"8248:2:53"},"nativeSrc":"8248:62:53","nodeType":"YulFunctionCall","src":"8248:62:53"},"nativeSrc":"8245:88:53","nodeType":"YulIf","src":"8245:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8349:2:53","nodeType":"YulLiteral","src":"8349:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8353:10:53","nodeType":"YulIdentifier","src":"8353:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8342:6:53","nodeType":"YulIdentifier","src":"8342:6:53"},"nativeSrc":"8342:22:53","nodeType":"YulFunctionCall","src":"8342:22:53"},"nativeSrc":"8342:22:53","nodeType":"YulExpressionStatement","src":"8342:22:53"}]},"name":"finalize_allocation","nativeSrc":"8089:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8118:6:53","nodeType":"YulTypedName","src":"8118:6:53","type":""},{"name":"size","nativeSrc":"8126:4:53","nodeType":"YulTypedName","src":"8126:4:53","type":""}],"src":"8089:281:53"},{"body":{"nativeSrc":"8417:88:53","nodeType":"YulBlock","src":"8417:88:53","statements":[{"nativeSrc":"8427:30:53","nodeType":"YulAssignment","src":"8427:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8437:18:53","nodeType":"YulIdentifier","src":"8437:18:53"},"nativeSrc":"8437:20:53","nodeType":"YulFunctionCall","src":"8437:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8427:6:53","nodeType":"YulIdentifier","src":"8427:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8486:6:53","nodeType":"YulIdentifier","src":"8486:6:53"},{"name":"size","nativeSrc":"8494:4:53","nodeType":"YulIdentifier","src":"8494:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8466:19:53","nodeType":"YulIdentifier","src":"8466:19:53"},"nativeSrc":"8466:33:53","nodeType":"YulFunctionCall","src":"8466:33:53"},"nativeSrc":"8466:33:53","nodeType":"YulExpressionStatement","src":"8466:33:53"}]},"name":"allocate_memory","nativeSrc":"8376:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8401:4:53","nodeType":"YulTypedName","src":"8401:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8410:6:53","nodeType":"YulTypedName","src":"8410:6:53","type":""}],"src":"8376:129:53"},{"body":{"nativeSrc":"8600:28:53","nodeType":"YulBlock","src":"8600:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8617:1:53","nodeType":"YulLiteral","src":"8617:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8620:1:53","nodeType":"YulLiteral","src":"8620:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8610:6:53","nodeType":"YulIdentifier","src":"8610:6:53"},"nativeSrc":"8610:12:53","nodeType":"YulFunctionCall","src":"8610:12:53"},"nativeSrc":"8610:12:53","nodeType":"YulExpressionStatement","src":"8610:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8511:117:53","nodeType":"YulFunctionDefinition","src":"8511:117:53"},{"body":{"nativeSrc":"8677:79:53","nodeType":"YulBlock","src":"8677:79:53","statements":[{"body":{"nativeSrc":"8734:16:53","nodeType":"YulBlock","src":"8734:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8743:1:53","nodeType":"YulLiteral","src":"8743:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8746:1:53","nodeType":"YulLiteral","src":"8746:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8736:6:53","nodeType":"YulIdentifier","src":"8736:6:53"},"nativeSrc":"8736:12:53","nodeType":"YulFunctionCall","src":"8736:12:53"},"nativeSrc":"8736:12:53","nodeType":"YulExpressionStatement","src":"8736:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8700:5:53","nodeType":"YulIdentifier","src":"8700:5:53"},{"arguments":[{"name":"value","nativeSrc":"8725:5:53","nodeType":"YulIdentifier","src":"8725:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8707:17:53","nodeType":"YulIdentifier","src":"8707:17:53"},"nativeSrc":"8707:24:53","nodeType":"YulFunctionCall","src":"8707:24:53"}],"functionName":{"name":"eq","nativeSrc":"8697:2:53","nodeType":"YulIdentifier","src":"8697:2:53"},"nativeSrc":"8697:35:53","nodeType":"YulFunctionCall","src":"8697:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8690:6:53","nodeType":"YulIdentifier","src":"8690:6:53"},"nativeSrc":"8690:43:53","nodeType":"YulFunctionCall","src":"8690:43:53"},"nativeSrc":"8687:63:53","nodeType":"YulIf","src":"8687:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"8634:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8670:5:53","nodeType":"YulTypedName","src":"8670:5:53","type":""}],"src":"8634:122:53"},{"body":{"nativeSrc":"8814:87:53","nodeType":"YulBlock","src":"8814:87:53","statements":[{"nativeSrc":"8824:29:53","nodeType":"YulAssignment","src":"8824:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8846:6:53","nodeType":"YulIdentifier","src":"8846:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8833:12:53","nodeType":"YulIdentifier","src":"8833:12:53"},"nativeSrc":"8833:20:53","nodeType":"YulFunctionCall","src":"8833:20:53"},"variableNames":[{"name":"value","nativeSrc":"8824:5:53","nodeType":"YulIdentifier","src":"8824:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8889:5:53","nodeType":"YulIdentifier","src":"8889:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8862:26:53","nodeType":"YulIdentifier","src":"8862:26:53"},"nativeSrc":"8862:33:53","nodeType":"YulFunctionCall","src":"8862:33:53"},"nativeSrc":"8862:33:53","nodeType":"YulExpressionStatement","src":"8862:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"8762:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8792:6:53","nodeType":"YulTypedName","src":"8792:6:53","type":""},{"name":"end","nativeSrc":"8800:3:53","nodeType":"YulTypedName","src":"8800:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8808:5:53","nodeType":"YulTypedName","src":"8808:5:53","type":""}],"src":"8762:139:53"},{"body":{"nativeSrc":"9032:1009:53","nodeType":"YulBlock","src":"9032:1009:53","statements":[{"body":{"nativeSrc":"9076:83:53","nodeType":"YulBlock","src":"9076:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9078:77:53","nodeType":"YulIdentifier","src":"9078:77:53"},"nativeSrc":"9078:79:53","nodeType":"YulFunctionCall","src":"9078:79:53"},"nativeSrc":"9078:79:53","nodeType":"YulExpressionStatement","src":"9078:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9053:3:53","nodeType":"YulIdentifier","src":"9053:3:53"},{"name":"headStart","nativeSrc":"9058:9:53","nodeType":"YulIdentifier","src":"9058:9:53"}],"functionName":{"name":"sub","nativeSrc":"9049:3:53","nodeType":"YulIdentifier","src":"9049:3:53"},"nativeSrc":"9049:19:53","nodeType":"YulFunctionCall","src":"9049:19:53"},{"kind":"number","nativeSrc":"9070:4:53","nodeType":"YulLiteral","src":"9070:4:53","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"9045:3:53","nodeType":"YulIdentifier","src":"9045:3:53"},"nativeSrc":"9045:30:53","nodeType":"YulFunctionCall","src":"9045:30:53"},"nativeSrc":"9042:117:53","nodeType":"YulIf","src":"9042:117:53"},{"nativeSrc":"9168:30:53","nodeType":"YulAssignment","src":"9168:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"9193:4:53","nodeType":"YulLiteral","src":"9193:4:53","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"9177:15:53","nodeType":"YulIdentifier","src":"9177:15:53"},"nativeSrc":"9177:21:53","nodeType":"YulFunctionCall","src":"9177:21:53"},"variableNames":[{"name":"value","nativeSrc":"9168:5:53","nodeType":"YulIdentifier","src":"9168:5:53"}]},{"nativeSrc":"9208:151:53","nodeType":"YulBlock","src":"9208:151:53","statements":[{"nativeSrc":"9244:15:53","nodeType":"YulVariableDeclaration","src":"9244:15:53","value":{"kind":"number","nativeSrc":"9258:1:53","nodeType":"YulLiteral","src":"9258:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9248:6:53","nodeType":"YulTypedName","src":"9248:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9284:5:53","nodeType":"YulIdentifier","src":"9284:5:53"},{"kind":"number","nativeSrc":"9291:4:53","nodeType":"YulLiteral","src":"9291:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9280:3:53","nodeType":"YulIdentifier","src":"9280:3:53"},"nativeSrc":"9280:16:53","nodeType":"YulFunctionCall","src":"9280:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9323:9:53","nodeType":"YulIdentifier","src":"9323:9:53"},{"name":"offset","nativeSrc":"9334:6:53","nodeType":"YulIdentifier","src":"9334:6:53"}],"functionName":{"name":"add","nativeSrc":"9319:3:53","nodeType":"YulIdentifier","src":"9319:3:53"},"nativeSrc":"9319:22:53","nodeType":"YulFunctionCall","src":"9319:22:53"},{"name":"end","nativeSrc":"9343:3:53","nodeType":"YulIdentifier","src":"9343:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9298:20:53","nodeType":"YulIdentifier","src":"9298:20:53"},"nativeSrc":"9298:49:53","nodeType":"YulFunctionCall","src":"9298:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9273:6:53","nodeType":"YulIdentifier","src":"9273:6:53"},"nativeSrc":"9273:75:53","nodeType":"YulFunctionCall","src":"9273:75:53"},"nativeSrc":"9273:75:53","nodeType":"YulExpressionStatement","src":"9273:75:53"}]},{"nativeSrc":"9369:160:53","nodeType":"YulBlock","src":"9369:160:53","statements":[{"nativeSrc":"9413:16:53","nodeType":"YulVariableDeclaration","src":"9413:16:53","value":{"kind":"number","nativeSrc":"9427:2:53","nodeType":"YulLiteral","src":"9427:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9417:6:53","nodeType":"YulTypedName","src":"9417:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9454:5:53","nodeType":"YulIdentifier","src":"9454:5:53"},{"kind":"number","nativeSrc":"9461:4:53","nodeType":"YulLiteral","src":"9461:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9450:3:53","nodeType":"YulIdentifier","src":"9450:3:53"},"nativeSrc":"9450:16:53","nodeType":"YulFunctionCall","src":"9450:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9493:9:53","nodeType":"YulIdentifier","src":"9493:9:53"},{"name":"offset","nativeSrc":"9504:6:53","nodeType":"YulIdentifier","src":"9504:6:53"}],"functionName":{"name":"add","nativeSrc":"9489:3:53","nodeType":"YulIdentifier","src":"9489:3:53"},"nativeSrc":"9489:22:53","nodeType":"YulFunctionCall","src":"9489:22:53"},{"name":"end","nativeSrc":"9513:3:53","nodeType":"YulIdentifier","src":"9513:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9468:20:53","nodeType":"YulIdentifier","src":"9468:20:53"},"nativeSrc":"9468:49:53","nodeType":"YulFunctionCall","src":"9468:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9443:6:53","nodeType":"YulIdentifier","src":"9443:6:53"},"nativeSrc":"9443:75:53","nodeType":"YulFunctionCall","src":"9443:75:53"},"nativeSrc":"9443:75:53","nodeType":"YulExpressionStatement","src":"9443:75:53"}]},{"nativeSrc":"9539:158:53","nodeType":"YulBlock","src":"9539:158:53","statements":[{"nativeSrc":"9581:16:53","nodeType":"YulVariableDeclaration","src":"9581:16:53","value":{"kind":"number","nativeSrc":"9595:2:53","nodeType":"YulLiteral","src":"9595:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9585:6:53","nodeType":"YulTypedName","src":"9585:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9622:5:53","nodeType":"YulIdentifier","src":"9622:5:53"},{"kind":"number","nativeSrc":"9629:4:53","nodeType":"YulLiteral","src":"9629:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9618:3:53","nodeType":"YulIdentifier","src":"9618:3:53"},"nativeSrc":"9618:16:53","nodeType":"YulFunctionCall","src":"9618:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9661:9:53","nodeType":"YulIdentifier","src":"9661:9:53"},{"name":"offset","nativeSrc":"9672:6:53","nodeType":"YulIdentifier","src":"9672:6:53"}],"functionName":{"name":"add","nativeSrc":"9657:3:53","nodeType":"YulIdentifier","src":"9657:3:53"},"nativeSrc":"9657:22:53","nodeType":"YulFunctionCall","src":"9657:22:53"},{"name":"end","nativeSrc":"9681:3:53","nodeType":"YulIdentifier","src":"9681:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9636:20:53","nodeType":"YulIdentifier","src":"9636:20:53"},"nativeSrc":"9636:49:53","nodeType":"YulFunctionCall","src":"9636:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9611:6:53","nodeType":"YulIdentifier","src":"9611:6:53"},"nativeSrc":"9611:75:53","nodeType":"YulFunctionCall","src":"9611:75:53"},"nativeSrc":"9611:75:53","nodeType":"YulExpressionStatement","src":"9611:75:53"}]},{"nativeSrc":"9707:158:53","nodeType":"YulBlock","src":"9707:158:53","statements":[{"nativeSrc":"9749:16:53","nodeType":"YulVariableDeclaration","src":"9749:16:53","value":{"kind":"number","nativeSrc":"9763:2:53","nodeType":"YulLiteral","src":"9763:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9753:6:53","nodeType":"YulTypedName","src":"9753:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9790:5:53","nodeType":"YulIdentifier","src":"9790:5:53"},{"kind":"number","nativeSrc":"9797:4:53","nodeType":"YulLiteral","src":"9797:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9786:3:53","nodeType":"YulIdentifier","src":"9786:3:53"},"nativeSrc":"9786:16:53","nodeType":"YulFunctionCall","src":"9786:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9829:9:53","nodeType":"YulIdentifier","src":"9829:9:53"},{"name":"offset","nativeSrc":"9840:6:53","nodeType":"YulIdentifier","src":"9840:6:53"}],"functionName":{"name":"add","nativeSrc":"9825:3:53","nodeType":"YulIdentifier","src":"9825:3:53"},"nativeSrc":"9825:22:53","nodeType":"YulFunctionCall","src":"9825:22:53"},{"name":"end","nativeSrc":"9849:3:53","nodeType":"YulIdentifier","src":"9849:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9804:20:53","nodeType":"YulIdentifier","src":"9804:20:53"},"nativeSrc":"9804:49:53","nodeType":"YulFunctionCall","src":"9804:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9779:6:53","nodeType":"YulIdentifier","src":"9779:6:53"},"nativeSrc":"9779:75:53","nodeType":"YulFunctionCall","src":"9779:75:53"},"nativeSrc":"9779:75:53","nodeType":"YulExpressionStatement","src":"9779:75:53"}]},{"nativeSrc":"9875:159:53","nodeType":"YulBlock","src":"9875:159:53","statements":[{"nativeSrc":"9917:17:53","nodeType":"YulVariableDeclaration","src":"9917:17:53","value":{"kind":"number","nativeSrc":"9931:3:53","nodeType":"YulLiteral","src":"9931:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"9921:6:53","nodeType":"YulTypedName","src":"9921:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9959:5:53","nodeType":"YulIdentifier","src":"9959:5:53"},{"kind":"number","nativeSrc":"9966:4:53","nodeType":"YulLiteral","src":"9966:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"9955:3:53","nodeType":"YulIdentifier","src":"9955:3:53"},"nativeSrc":"9955:16:53","nodeType":"YulFunctionCall","src":"9955:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9998:9:53","nodeType":"YulIdentifier","src":"9998:9:53"},{"name":"offset","nativeSrc":"10009:6:53","nodeType":"YulIdentifier","src":"10009:6:53"}],"functionName":{"name":"add","nativeSrc":"9994:3:53","nodeType":"YulIdentifier","src":"9994:3:53"},"nativeSrc":"9994:22:53","nodeType":"YulFunctionCall","src":"9994:22:53"},{"name":"end","nativeSrc":"10018:3:53","nodeType":"YulIdentifier","src":"10018:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9973:20:53","nodeType":"YulIdentifier","src":"9973:20:53"},"nativeSrc":"9973:49:53","nodeType":"YulFunctionCall","src":"9973:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9948:6:53","nodeType":"YulIdentifier","src":"9948:6:53"},"nativeSrc":"9948:75:53","nodeType":"YulFunctionCall","src":"9948:75:53"},"nativeSrc":"9948:75:53","nodeType":"YulExpressionStatement","src":"9948:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$15693_memory_ptr","nativeSrc":"8947:1094:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9007:9:53","nodeType":"YulTypedName","src":"9007:9:53","type":""},{"name":"end","nativeSrc":"9018:3:53","nodeType":"YulTypedName","src":"9018:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9026:5:53","nodeType":"YulTypedName","src":"9026:5:53","type":""}],"src":"8947:1094:53"},{"body":{"nativeSrc":"10143:294:53","nodeType":"YulBlock","src":"10143:294:53","statements":[{"body":{"nativeSrc":"10190:83:53","nodeType":"YulBlock","src":"10190:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10192:77:53","nodeType":"YulIdentifier","src":"10192:77:53"},"nativeSrc":"10192:79:53","nodeType":"YulFunctionCall","src":"10192:79:53"},"nativeSrc":"10192:79:53","nodeType":"YulExpressionStatement","src":"10192:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10164:7:53","nodeType":"YulIdentifier","src":"10164:7:53"},{"name":"headStart","nativeSrc":"10173:9:53","nodeType":"YulIdentifier","src":"10173:9:53"}],"functionName":{"name":"sub","nativeSrc":"10160:3:53","nodeType":"YulIdentifier","src":"10160:3:53"},"nativeSrc":"10160:23:53","nodeType":"YulFunctionCall","src":"10160:23:53"},{"kind":"number","nativeSrc":"10185:3:53","nodeType":"YulLiteral","src":"10185:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"10156:3:53","nodeType":"YulIdentifier","src":"10156:3:53"},"nativeSrc":"10156:33:53","nodeType":"YulFunctionCall","src":"10156:33:53"},"nativeSrc":"10153:120:53","nodeType":"YulIf","src":"10153:120:53"},{"nativeSrc":"10283:147:53","nodeType":"YulBlock","src":"10283:147:53","statements":[{"nativeSrc":"10298:15:53","nodeType":"YulVariableDeclaration","src":"10298:15:53","value":{"kind":"number","nativeSrc":"10312:1:53","nodeType":"YulLiteral","src":"10312:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10302:6:53","nodeType":"YulTypedName","src":"10302:6:53","type":""}]},{"nativeSrc":"10327:93:53","nodeType":"YulAssignment","src":"10327:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10392:9:53","nodeType":"YulIdentifier","src":"10392:9:53"},{"name":"offset","nativeSrc":"10403:6:53","nodeType":"YulIdentifier","src":"10403:6:53"}],"functionName":{"name":"add","nativeSrc":"10388:3:53","nodeType":"YulIdentifier","src":"10388:3:53"},"nativeSrc":"10388:22:53","nodeType":"YulFunctionCall","src":"10388:22:53"},{"name":"dataEnd","nativeSrc":"10412:7:53","nodeType":"YulIdentifier","src":"10412:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$15693_memory_ptr","nativeSrc":"10337:50:53","nodeType":"YulIdentifier","src":"10337:50:53"},"nativeSrc":"10337:83:53","nodeType":"YulFunctionCall","src":"10337:83:53"},"variableNames":[{"name":"value0","nativeSrc":"10327:6:53","nodeType":"YulIdentifier","src":"10327:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$15693_memory_ptr","nativeSrc":"10047:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10113:9:53","nodeType":"YulTypedName","src":"10113:9:53","type":""},{"name":"dataEnd","nativeSrc":"10124:7:53","nodeType":"YulTypedName","src":"10124:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10136:6:53","nodeType":"YulTypedName","src":"10136:6:53","type":""}],"src":"10047:390:53"},{"body":{"nativeSrc":"10597:288:53","nodeType":"YulBlock","src":"10597:288:53","statements":[{"nativeSrc":"10607:26:53","nodeType":"YulAssignment","src":"10607:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"10619:9:53","nodeType":"YulIdentifier","src":"10619:9:53"},{"kind":"number","nativeSrc":"10630:2:53","nodeType":"YulLiteral","src":"10630:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10615:3:53","nodeType":"YulIdentifier","src":"10615:3:53"},"nativeSrc":"10615:18:53","nodeType":"YulFunctionCall","src":"10615:18:53"},"variableNames":[{"name":"tail","nativeSrc":"10607:4:53","nodeType":"YulIdentifier","src":"10607:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10687:6:53","nodeType":"YulIdentifier","src":"10687:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10700:9:53","nodeType":"YulIdentifier","src":"10700:9:53"},{"kind":"number","nativeSrc":"10711:1:53","nodeType":"YulLiteral","src":"10711:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10696:3:53","nodeType":"YulIdentifier","src":"10696:3:53"},"nativeSrc":"10696:17:53","nodeType":"YulFunctionCall","src":"10696:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10643:43:53","nodeType":"YulIdentifier","src":"10643:43:53"},"nativeSrc":"10643:71:53","nodeType":"YulFunctionCall","src":"10643:71:53"},"nativeSrc":"10643:71:53","nodeType":"YulExpressionStatement","src":"10643:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"10768:6:53","nodeType":"YulIdentifier","src":"10768:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10781:9:53","nodeType":"YulIdentifier","src":"10781:9:53"},{"kind":"number","nativeSrc":"10792:2:53","nodeType":"YulLiteral","src":"10792:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10777:3:53","nodeType":"YulIdentifier","src":"10777:3:53"},"nativeSrc":"10777:18:53","nodeType":"YulFunctionCall","src":"10777:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"10724:43:53","nodeType":"YulIdentifier","src":"10724:43:53"},"nativeSrc":"10724:72:53","nodeType":"YulFunctionCall","src":"10724:72:53"},"nativeSrc":"10724:72:53","nodeType":"YulExpressionStatement","src":"10724:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"10850:6:53","nodeType":"YulIdentifier","src":"10850:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10863:9:53","nodeType":"YulIdentifier","src":"10863:9:53"},{"kind":"number","nativeSrc":"10874:2:53","nodeType":"YulLiteral","src":"10874:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10859:3:53","nodeType":"YulIdentifier","src":"10859:3:53"},"nativeSrc":"10859:18:53","nodeType":"YulFunctionCall","src":"10859:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"10806:43:53","nodeType":"YulIdentifier","src":"10806:43:53"},"nativeSrc":"10806:72:53","nodeType":"YulFunctionCall","src":"10806:72:53"},"nativeSrc":"10806:72:53","nodeType":"YulExpressionStatement","src":"10806:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"10443:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10553:9:53","nodeType":"YulTypedName","src":"10553:9:53","type":""},{"name":"value2","nativeSrc":"10565:6:53","nodeType":"YulTypedName","src":"10565:6:53","type":""},{"name":"value1","nativeSrc":"10573:6:53","nodeType":"YulTypedName","src":"10573:6:53","type":""},{"name":"value0","nativeSrc":"10581:6:53","nodeType":"YulTypedName","src":"10581:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10592:4:53","nodeType":"YulTypedName","src":"10592:4:53","type":""}],"src":"10443:442:53"},{"body":{"nativeSrc":"10919:152:53","nodeType":"YulBlock","src":"10919:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10936:1:53","nodeType":"YulLiteral","src":"10936:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10939:77:53","nodeType":"YulLiteral","src":"10939:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10929:6:53","nodeType":"YulIdentifier","src":"10929:6:53"},"nativeSrc":"10929:88:53","nodeType":"YulFunctionCall","src":"10929:88:53"},"nativeSrc":"10929:88:53","nodeType":"YulExpressionStatement","src":"10929:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11033:1:53","nodeType":"YulLiteral","src":"11033:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11036:4:53","nodeType":"YulLiteral","src":"11036:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"11026:6:53","nodeType":"YulIdentifier","src":"11026:6:53"},"nativeSrc":"11026:15:53","nodeType":"YulFunctionCall","src":"11026:15:53"},"nativeSrc":"11026:15:53","nodeType":"YulExpressionStatement","src":"11026:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11057:1:53","nodeType":"YulLiteral","src":"11057:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11060:4:53","nodeType":"YulLiteral","src":"11060:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11050:6:53","nodeType":"YulIdentifier","src":"11050:6:53"},"nativeSrc":"11050:15:53","nodeType":"YulFunctionCall","src":"11050:15:53"},"nativeSrc":"11050:15:53","nodeType":"YulExpressionStatement","src":"11050:15:53"}]},"name":"panic_error_0x21","nativeSrc":"10891:180:53","nodeType":"YulFunctionDefinition","src":"10891:180:53"},{"body":{"nativeSrc":"11132:53:53","nodeType":"YulBlock","src":"11132:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11149:3:53","nodeType":"YulIdentifier","src":"11149:3:53"},{"arguments":[{"name":"value","nativeSrc":"11172:5:53","nodeType":"YulIdentifier","src":"11172:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11154:17:53","nodeType":"YulIdentifier","src":"11154:17:53"},"nativeSrc":"11154:24:53","nodeType":"YulFunctionCall","src":"11154:24:53"}],"functionName":{"name":"mstore","nativeSrc":"11142:6:53","nodeType":"YulIdentifier","src":"11142:6:53"},"nativeSrc":"11142:37:53","nodeType":"YulFunctionCall","src":"11142:37:53"},"nativeSrc":"11142:37:53","nodeType":"YulExpressionStatement","src":"11142:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"11077:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11120:5:53","nodeType":"YulTypedName","src":"11120:5:53","type":""},{"name":"pos","nativeSrc":"11127:3:53","nodeType":"YulTypedName","src":"11127:3:53","type":""}],"src":"11077:108:53"},{"body":{"nativeSrc":"11395:219:53","nodeType":"YulBlock","src":"11395:219:53","statements":[{"nativeSrc":"11405:26:53","nodeType":"YulVariableDeclaration","src":"11405:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"11421:3:53","nodeType":"YulIdentifier","src":"11421:3:53"},{"kind":"number","nativeSrc":"11426:4:53","nodeType":"YulLiteral","src":"11426:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11417:3:53","nodeType":"YulIdentifier","src":"11417:3:53"},"nativeSrc":"11417:14:53","nodeType":"YulFunctionCall","src":"11417:14:53"},"variables":[{"name":"tail","nativeSrc":"11409:4:53","nodeType":"YulTypedName","src":"11409:4:53","type":""}]},{"nativeSrc":"11441:166:53","nodeType":"YulBlock","src":"11441:166:53","statements":[{"nativeSrc":"11478:43:53","nodeType":"YulVariableDeclaration","src":"11478:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11508:5:53","nodeType":"YulIdentifier","src":"11508:5:53"},{"kind":"number","nativeSrc":"11515:4:53","nodeType":"YulLiteral","src":"11515:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11504:3:53","nodeType":"YulIdentifier","src":"11504:3:53"},"nativeSrc":"11504:16:53","nodeType":"YulFunctionCall","src":"11504:16:53"}],"functionName":{"name":"mload","nativeSrc":"11498:5:53","nodeType":"YulIdentifier","src":"11498:5:53"},"nativeSrc":"11498:23:53","nodeType":"YulFunctionCall","src":"11498:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"11482:12:53","nodeType":"YulTypedName","src":"11482:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"11568:12:53","nodeType":"YulIdentifier","src":"11568:12:53"},{"arguments":[{"name":"pos","nativeSrc":"11586:3:53","nodeType":"YulIdentifier","src":"11586:3:53"},{"kind":"number","nativeSrc":"11591:4:53","nodeType":"YulLiteral","src":"11591:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11582:3:53","nodeType":"YulIdentifier","src":"11582:3:53"},"nativeSrc":"11582:14:53","nodeType":"YulFunctionCall","src":"11582:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"11534:33:53","nodeType":"YulIdentifier","src":"11534:33:53"},"nativeSrc":"11534:63:53","nodeType":"YulFunctionCall","src":"11534:63:53"},"nativeSrc":"11534:63:53","nodeType":"YulExpressionStatement","src":"11534:63:53"}]}]},"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"11261:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11382:5:53","nodeType":"YulTypedName","src":"11382:5:53","type":""},{"name":"pos","nativeSrc":"11389:3:53","nodeType":"YulTypedName","src":"11389:3:53","type":""}],"src":"11261:353:53"},{"body":{"nativeSrc":"11786:192:53","nodeType":"YulBlock","src":"11786:192:53","statements":[{"nativeSrc":"11796:26:53","nodeType":"YulAssignment","src":"11796:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11808:9:53","nodeType":"YulIdentifier","src":"11808:9:53"},{"kind":"number","nativeSrc":"11819:2:53","nodeType":"YulLiteral","src":"11819:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11804:3:53","nodeType":"YulIdentifier","src":"11804:3:53"},"nativeSrc":"11804:18:53","nodeType":"YulFunctionCall","src":"11804:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11796:4:53","nodeType":"YulIdentifier","src":"11796:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11944:6:53","nodeType":"YulIdentifier","src":"11944:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"11957:9:53","nodeType":"YulIdentifier","src":"11957:9:53"},{"kind":"number","nativeSrc":"11968:1:53","nodeType":"YulLiteral","src":"11968:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11953:3:53","nodeType":"YulIdentifier","src":"11953:3:53"},"nativeSrc":"11953:17:53","nodeType":"YulFunctionCall","src":"11953:17:53"}],"functionName":{"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"11832:111:53","nodeType":"YulIdentifier","src":"11832:111:53"},"nativeSrc":"11832:139:53","nodeType":"YulFunctionCall","src":"11832:139:53"},"nativeSrc":"11832:139:53","nodeType":"YulExpressionStatement","src":"11832:139:53"}]},"name":"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed","nativeSrc":"11620:358:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11758:9:53","nodeType":"YulTypedName","src":"11758:9:53","type":""},{"name":"value0","nativeSrc":"11770:6:53","nodeType":"YulTypedName","src":"11770:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11781:4:53","nodeType":"YulTypedName","src":"11781:4:53","type":""}],"src":"11620:358:53"},{"body":{"nativeSrc":"12042:62:53","nodeType":"YulBlock","src":"12042:62:53","statements":[{"body":{"nativeSrc":"12076:22:53","nodeType":"YulBlock","src":"12076:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"12078:16:53","nodeType":"YulIdentifier","src":"12078:16:53"},"nativeSrc":"12078:18:53","nodeType":"YulFunctionCall","src":"12078:18:53"},"nativeSrc":"12078:18:53","nodeType":"YulExpressionStatement","src":"12078:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12065:5:53","nodeType":"YulIdentifier","src":"12065:5:53"},{"kind":"number","nativeSrc":"12072:1:53","nodeType":"YulLiteral","src":"12072:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"12062:2:53","nodeType":"YulIdentifier","src":"12062:2:53"},"nativeSrc":"12062:12:53","nodeType":"YulFunctionCall","src":"12062:12:53"}],"functionName":{"name":"iszero","nativeSrc":"12055:6:53","nodeType":"YulIdentifier","src":"12055:6:53"},"nativeSrc":"12055:20:53","nodeType":"YulFunctionCall","src":"12055:20:53"},"nativeSrc":"12052:46:53","nodeType":"YulIf","src":"12052:46:53"}]},"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"11984:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12035:5:53","nodeType":"YulTypedName","src":"12035:5:53","type":""}],"src":"11984:120:53"},{"body":{"nativeSrc":"12170:81:53","nodeType":"YulBlock","src":"12170:81:53","statements":[{"nativeSrc":"12180:16:53","nodeType":"YulAssignment","src":"12180:16:53","value":{"name":"value","nativeSrc":"12191:5:53","nodeType":"YulIdentifier","src":"12191:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"12180:7:53","nodeType":"YulIdentifier","src":"12180:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12239:5:53","nodeType":"YulIdentifier","src":"12239:5:53"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"12197:41:53","nodeType":"YulIdentifier","src":"12197:41:53"},"nativeSrc":"12197:48:53","nodeType":"YulFunctionCall","src":"12197:48:53"},"nativeSrc":"12197:48:53","nodeType":"YulExpressionStatement","src":"12197:48:53"}]},"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"12110:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12152:5:53","nodeType":"YulTypedName","src":"12152:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12162:7:53","nodeType":"YulTypedName","src":"12162:7:53","type":""}],"src":"12110:141:53"},{"body":{"nativeSrc":"12330:68:53","nodeType":"YulBlock","src":"12330:68:53","statements":[{"nativeSrc":"12340:52:53","nodeType":"YulAssignment","src":"12340:52:53","value":{"arguments":[{"name":"value","nativeSrc":"12386:5:53","nodeType":"YulIdentifier","src":"12386:5:53"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"12353:32:53","nodeType":"YulIdentifier","src":"12353:32:53"},"nativeSrc":"12353:39:53","nodeType":"YulFunctionCall","src":"12353:39:53"},"variableNames":[{"name":"converted","nativeSrc":"12340:9:53","nodeType":"YulIdentifier","src":"12340:9:53"}]}]},"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"12257:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12310:5:53","nodeType":"YulTypedName","src":"12310:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12320:9:53","nodeType":"YulTypedName","src":"12320:9:53","type":""}],"src":"12257:141:53"},{"body":{"nativeSrc":"12472:79:53","nodeType":"YulBlock","src":"12472:79:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12489:3:53","nodeType":"YulIdentifier","src":"12489:3:53"},{"arguments":[{"name":"value","nativeSrc":"12538:5:53","nodeType":"YulIdentifier","src":"12538:5:53"}],"functionName":{"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"12494:43:53","nodeType":"YulIdentifier","src":"12494:43:53"},"nativeSrc":"12494:50:53","nodeType":"YulFunctionCall","src":"12494:50:53"}],"functionName":{"name":"mstore","nativeSrc":"12482:6:53","nodeType":"YulIdentifier","src":"12482:6:53"},"nativeSrc":"12482:63:53","nodeType":"YulFunctionCall","src":"12482:63:53"},"nativeSrc":"12482:63:53","nodeType":"YulExpressionStatement","src":"12482:63:53"}]},"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"12404:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12460:5:53","nodeType":"YulTypedName","src":"12460:5:53","type":""},{"name":"pos","nativeSrc":"12467:3:53","nodeType":"YulTypedName","src":"12467:3:53","type":""}],"src":"12404:147:53"},{"body":{"nativeSrc":"12612:53:53","nodeType":"YulBlock","src":"12612:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12629:3:53","nodeType":"YulIdentifier","src":"12629:3:53"},{"arguments":[{"name":"value","nativeSrc":"12652:5:53","nodeType":"YulIdentifier","src":"12652:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"12634:17:53","nodeType":"YulIdentifier","src":"12634:17:53"},"nativeSrc":"12634:24:53","nodeType":"YulFunctionCall","src":"12634:24:53"}],"functionName":{"name":"mstore","nativeSrc":"12622:6:53","nodeType":"YulIdentifier","src":"12622:6:53"},"nativeSrc":"12622:37:53","nodeType":"YulFunctionCall","src":"12622:37:53"},"nativeSrc":"12622:37:53","nodeType":"YulExpressionStatement","src":"12622:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"12557:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12600:5:53","nodeType":"YulTypedName","src":"12600:5:53","type":""},{"name":"pos","nativeSrc":"12607:3:53","nodeType":"YulTypedName","src":"12607:3:53","type":""}],"src":"12557:108:53"},{"body":{"nativeSrc":"12756:73:53","nodeType":"YulBlock","src":"12756:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12773:3:53","nodeType":"YulIdentifier","src":"12773:3:53"},{"name":"length","nativeSrc":"12778:6:53","nodeType":"YulIdentifier","src":"12778:6:53"}],"functionName":{"name":"mstore","nativeSrc":"12766:6:53","nodeType":"YulIdentifier","src":"12766:6:53"},"nativeSrc":"12766:19:53","nodeType":"YulFunctionCall","src":"12766:19:53"},"nativeSrc":"12766:19:53","nodeType":"YulExpressionStatement","src":"12766:19:53"},{"nativeSrc":"12794:29:53","nodeType":"YulAssignment","src":"12794:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"12813:3:53","nodeType":"YulIdentifier","src":"12813:3:53"},{"kind":"number","nativeSrc":"12818:4:53","nodeType":"YulLiteral","src":"12818:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12809:3:53","nodeType":"YulIdentifier","src":"12809:3:53"},"nativeSrc":"12809:14:53","nodeType":"YulFunctionCall","src":"12809:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"12794:11:53","nodeType":"YulIdentifier","src":"12794:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"12671:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12728:3:53","nodeType":"YulTypedName","src":"12728:3:53","type":""},{"name":"length","nativeSrc":"12733:6:53","nodeType":"YulTypedName","src":"12733:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12744:11:53","nodeType":"YulTypedName","src":"12744:11:53","type":""}],"src":"12671:158:53"},{"body":{"nativeSrc":"12915:273:53","nodeType":"YulBlock","src":"12915:273:53","statements":[{"nativeSrc":"12925:52:53","nodeType":"YulVariableDeclaration","src":"12925:52:53","value":{"arguments":[{"name":"value","nativeSrc":"12971:5:53","nodeType":"YulIdentifier","src":"12971:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"12939:31:53","nodeType":"YulIdentifier","src":"12939:31:53"},"nativeSrc":"12939:38:53","nodeType":"YulFunctionCall","src":"12939:38:53"},"variables":[{"name":"length","nativeSrc":"12929:6:53","nodeType":"YulTypedName","src":"12929:6:53","type":""}]},{"nativeSrc":"12986:67:53","nodeType":"YulAssignment","src":"12986:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"13041:3:53","nodeType":"YulIdentifier","src":"13041:3:53"},{"name":"length","nativeSrc":"13046:6:53","nodeType":"YulIdentifier","src":"13046:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"12993:47:53","nodeType":"YulIdentifier","src":"12993:47:53"},"nativeSrc":"12993:60:53","nodeType":"YulFunctionCall","src":"12993:60:53"},"variableNames":[{"name":"pos","nativeSrc":"12986:3:53","nodeType":"YulIdentifier","src":"12986:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13101:5:53","nodeType":"YulIdentifier","src":"13101:5:53"},{"kind":"number","nativeSrc":"13108:4:53","nodeType":"YulLiteral","src":"13108:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13097:3:53","nodeType":"YulIdentifier","src":"13097:3:53"},"nativeSrc":"13097:16:53","nodeType":"YulFunctionCall","src":"13097:16:53"},{"name":"pos","nativeSrc":"13115:3:53","nodeType":"YulIdentifier","src":"13115:3:53"},{"name":"length","nativeSrc":"13120:6:53","nodeType":"YulIdentifier","src":"13120:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13062:34:53","nodeType":"YulIdentifier","src":"13062:34:53"},"nativeSrc":"13062:65:53","nodeType":"YulFunctionCall","src":"13062:65:53"},"nativeSrc":"13062:65:53","nodeType":"YulExpressionStatement","src":"13062:65:53"},{"nativeSrc":"13136:46:53","nodeType":"YulAssignment","src":"13136:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"13147:3:53","nodeType":"YulIdentifier","src":"13147:3:53"},{"arguments":[{"name":"length","nativeSrc":"13174:6:53","nodeType":"YulIdentifier","src":"13174:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13152:21:53","nodeType":"YulIdentifier","src":"13152:21:53"},"nativeSrc":"13152:29:53","nodeType":"YulFunctionCall","src":"13152:29:53"}],"functionName":{"name":"add","nativeSrc":"13143:3:53","nodeType":"YulIdentifier","src":"13143:3:53"},"nativeSrc":"13143:39:53","nodeType":"YulFunctionCall","src":"13143:39:53"},"variableNames":[{"name":"end","nativeSrc":"13136:3:53","nodeType":"YulIdentifier","src":"13136:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"12835:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12896:5:53","nodeType":"YulTypedName","src":"12896:5:53","type":""},{"name":"pos","nativeSrc":"12903:3:53","nodeType":"YulTypedName","src":"12903:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12911:3:53","nodeType":"YulTypedName","src":"12911:3:53","type":""}],"src":"12835:353:53"},{"body":{"nativeSrc":"13378:849:53","nodeType":"YulBlock","src":"13378:849:53","statements":[{"nativeSrc":"13388:26:53","nodeType":"YulVariableDeclaration","src":"13388:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"13404:3:53","nodeType":"YulIdentifier","src":"13404:3:53"},{"kind":"number","nativeSrc":"13409:4:53","nodeType":"YulLiteral","src":"13409:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13400:3:53","nodeType":"YulIdentifier","src":"13400:3:53"},"nativeSrc":"13400:14:53","nodeType":"YulFunctionCall","src":"13400:14:53"},"variables":[{"name":"tail","nativeSrc":"13392:4:53","nodeType":"YulTypedName","src":"13392:4:53","type":""}]},{"nativeSrc":"13424:182:53","nodeType":"YulBlock","src":"13424:182:53","statements":[{"nativeSrc":"13464:43:53","nodeType":"YulVariableDeclaration","src":"13464:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13494:5:53","nodeType":"YulIdentifier","src":"13494:5:53"},{"kind":"number","nativeSrc":"13501:4:53","nodeType":"YulLiteral","src":"13501:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13490:3:53","nodeType":"YulIdentifier","src":"13490:3:53"},"nativeSrc":"13490:16:53","nodeType":"YulFunctionCall","src":"13490:16:53"}],"functionName":{"name":"mload","nativeSrc":"13484:5:53","nodeType":"YulIdentifier","src":"13484:5:53"},"nativeSrc":"13484:23:53","nodeType":"YulFunctionCall","src":"13484:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13468:12:53","nodeType":"YulTypedName","src":"13468:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13567:12:53","nodeType":"YulIdentifier","src":"13567:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13585:3:53","nodeType":"YulIdentifier","src":"13585:3:53"},{"kind":"number","nativeSrc":"13590:4:53","nodeType":"YulLiteral","src":"13590:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13581:3:53","nodeType":"YulIdentifier","src":"13581:3:53"},"nativeSrc":"13581:14:53","nodeType":"YulFunctionCall","src":"13581:14:53"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"13520:46:53","nodeType":"YulIdentifier","src":"13520:46:53"},"nativeSrc":"13520:76:53","nodeType":"YulFunctionCall","src":"13520:76:53"},"nativeSrc":"13520:76:53","nodeType":"YulExpressionStatement","src":"13520:76:53"}]},{"nativeSrc":"13616:165:53","nodeType":"YulBlock","src":"13616:165:53","statements":[{"nativeSrc":"13652:43:53","nodeType":"YulVariableDeclaration","src":"13652:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13682:5:53","nodeType":"YulIdentifier","src":"13682:5:53"},{"kind":"number","nativeSrc":"13689:4:53","nodeType":"YulLiteral","src":"13689:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13678:3:53","nodeType":"YulIdentifier","src":"13678:3:53"},"nativeSrc":"13678:16:53","nodeType":"YulFunctionCall","src":"13678:16:53"}],"functionName":{"name":"mload","nativeSrc":"13672:5:53","nodeType":"YulIdentifier","src":"13672:5:53"},"nativeSrc":"13672:23:53","nodeType":"YulFunctionCall","src":"13672:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13656:12:53","nodeType":"YulTypedName","src":"13656:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13742:12:53","nodeType":"YulIdentifier","src":"13742:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13760:3:53","nodeType":"YulIdentifier","src":"13760:3:53"},{"kind":"number","nativeSrc":"13765:4:53","nodeType":"YulLiteral","src":"13765:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13756:3:53","nodeType":"YulIdentifier","src":"13756:3:53"},"nativeSrc":"13756:14:53","nodeType":"YulFunctionCall","src":"13756:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"13708:33:53","nodeType":"YulIdentifier","src":"13708:33:53"},"nativeSrc":"13708:63:53","nodeType":"YulFunctionCall","src":"13708:63:53"},"nativeSrc":"13708:63:53","nodeType":"YulExpressionStatement","src":"13708:63:53"}]},{"nativeSrc":"13791:166:53","nodeType":"YulBlock","src":"13791:166:53","statements":[{"nativeSrc":"13828:43:53","nodeType":"YulVariableDeclaration","src":"13828:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13858:5:53","nodeType":"YulIdentifier","src":"13858:5:53"},{"kind":"number","nativeSrc":"13865:4:53","nodeType":"YulLiteral","src":"13865:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13854:3:53","nodeType":"YulIdentifier","src":"13854:3:53"},"nativeSrc":"13854:16:53","nodeType":"YulFunctionCall","src":"13854:16:53"}],"functionName":{"name":"mload","nativeSrc":"13848:5:53","nodeType":"YulIdentifier","src":"13848:5:53"},"nativeSrc":"13848:23:53","nodeType":"YulFunctionCall","src":"13848:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13832:12:53","nodeType":"YulTypedName","src":"13832:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13918:12:53","nodeType":"YulIdentifier","src":"13918:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13936:3:53","nodeType":"YulIdentifier","src":"13936:3:53"},{"kind":"number","nativeSrc":"13941:4:53","nodeType":"YulLiteral","src":"13941:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13932:3:53","nodeType":"YulIdentifier","src":"13932:3:53"},"nativeSrc":"13932:14:53","nodeType":"YulFunctionCall","src":"13932:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"13884:33:53","nodeType":"YulIdentifier","src":"13884:33:53"},"nativeSrc":"13884:63:53","nodeType":"YulFunctionCall","src":"13884:63:53"},"nativeSrc":"13884:63:53","nodeType":"YulExpressionStatement","src":"13884:63:53"}]},{"nativeSrc":"13967:233:53","nodeType":"YulBlock","src":"13967:233:53","statements":[{"nativeSrc":"14002:43:53","nodeType":"YulVariableDeclaration","src":"14002:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14032:5:53","nodeType":"YulIdentifier","src":"14032:5:53"},{"kind":"number","nativeSrc":"14039:4:53","nodeType":"YulLiteral","src":"14039:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14028:3:53","nodeType":"YulIdentifier","src":"14028:3:53"},"nativeSrc":"14028:16:53","nodeType":"YulFunctionCall","src":"14028:16:53"}],"functionName":{"name":"mload","nativeSrc":"14022:5:53","nodeType":"YulIdentifier","src":"14022:5:53"},"nativeSrc":"14022:23:53","nodeType":"YulFunctionCall","src":"14022:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"14006:12:53","nodeType":"YulTypedName","src":"14006:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14070:3:53","nodeType":"YulIdentifier","src":"14070:3:53"},{"kind":"number","nativeSrc":"14075:4:53","nodeType":"YulLiteral","src":"14075:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14066:3:53","nodeType":"YulIdentifier","src":"14066:3:53"},"nativeSrc":"14066:14:53","nodeType":"YulFunctionCall","src":"14066:14:53"},{"arguments":[{"name":"tail","nativeSrc":"14086:4:53","nodeType":"YulIdentifier","src":"14086:4:53"},{"name":"pos","nativeSrc":"14092:3:53","nodeType":"YulIdentifier","src":"14092:3:53"}],"functionName":{"name":"sub","nativeSrc":"14082:3:53","nodeType":"YulIdentifier","src":"14082:3:53"},"nativeSrc":"14082:14:53","nodeType":"YulFunctionCall","src":"14082:14:53"}],"functionName":{"name":"mstore","nativeSrc":"14059:6:53","nodeType":"YulIdentifier","src":"14059:6:53"},"nativeSrc":"14059:38:53","nodeType":"YulFunctionCall","src":"14059:38:53"},"nativeSrc":"14059:38:53","nodeType":"YulExpressionStatement","src":"14059:38:53"},{"nativeSrc":"14110:79:53","nodeType":"YulAssignment","src":"14110:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"14170:12:53","nodeType":"YulIdentifier","src":"14170:12:53"},{"name":"tail","nativeSrc":"14184:4:53","nodeType":"YulIdentifier","src":"14184:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"14118:51:53","nodeType":"YulIdentifier","src":"14118:51:53"},"nativeSrc":"14118:71:53","nodeType":"YulFunctionCall","src":"14118:71:53"},"variableNames":[{"name":"tail","nativeSrc":"14110:4:53","nodeType":"YulIdentifier","src":"14110:4:53"}]}]},{"nativeSrc":"14210:11:53","nodeType":"YulAssignment","src":"14210:11:53","value":{"name":"tail","nativeSrc":"14217:4:53","nodeType":"YulIdentifier","src":"14217:4:53"},"variableNames":[{"name":"end","nativeSrc":"14210:3:53","nodeType":"YulIdentifier","src":"14210:3:53"}]}]},"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"13250:977:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13357:5:53","nodeType":"YulTypedName","src":"13357:5:53","type":""},{"name":"pos","nativeSrc":"13364:3:53","nodeType":"YulTypedName","src":"13364:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13373:3:53","nodeType":"YulTypedName","src":"13373:3:53","type":""}],"src":"13250:977:53"},{"body":{"nativeSrc":"14385:229:53","nodeType":"YulBlock","src":"14385:229:53","statements":[{"nativeSrc":"14395:26:53","nodeType":"YulAssignment","src":"14395:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14407:9:53","nodeType":"YulIdentifier","src":"14407:9:53"},{"kind":"number","nativeSrc":"14418:2:53","nodeType":"YulLiteral","src":"14418:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14403:3:53","nodeType":"YulIdentifier","src":"14403:3:53"},"nativeSrc":"14403:18:53","nodeType":"YulFunctionCall","src":"14403:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14395:4:53","nodeType":"YulIdentifier","src":"14395:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14442:9:53","nodeType":"YulIdentifier","src":"14442:9:53"},{"kind":"number","nativeSrc":"14453:1:53","nodeType":"YulLiteral","src":"14453:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14438:3:53","nodeType":"YulIdentifier","src":"14438:3:53"},"nativeSrc":"14438:17:53","nodeType":"YulFunctionCall","src":"14438:17:53"},{"arguments":[{"name":"tail","nativeSrc":"14461:4:53","nodeType":"YulIdentifier","src":"14461:4:53"},{"name":"headStart","nativeSrc":"14467:9:53","nodeType":"YulIdentifier","src":"14467:9:53"}],"functionName":{"name":"sub","nativeSrc":"14457:3:53","nodeType":"YulIdentifier","src":"14457:3:53"},"nativeSrc":"14457:20:53","nodeType":"YulFunctionCall","src":"14457:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14431:6:53","nodeType":"YulIdentifier","src":"14431:6:53"},"nativeSrc":"14431:47:53","nodeType":"YulFunctionCall","src":"14431:47:53"},"nativeSrc":"14431:47:53","nodeType":"YulExpressionStatement","src":"14431:47:53"},{"nativeSrc":"14487:120:53","nodeType":"YulAssignment","src":"14487:120:53","value":{"arguments":[{"name":"value0","nativeSrc":"14593:6:53","nodeType":"YulIdentifier","src":"14593:6:53"},{"name":"tail","nativeSrc":"14602:4:53","nodeType":"YulIdentifier","src":"14602:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"14495:97:53","nodeType":"YulIdentifier","src":"14495:97:53"},"nativeSrc":"14495:112:53","nodeType":"YulFunctionCall","src":"14495:112:53"},"variableNames":[{"name":"tail","nativeSrc":"14487:4:53","nodeType":"YulIdentifier","src":"14487:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed","nativeSrc":"14233:381:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14357:9:53","nodeType":"YulTypedName","src":"14357:9:53","type":""},{"name":"value0","nativeSrc":"14369:6:53","nodeType":"YulTypedName","src":"14369:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14380:4:53","nodeType":"YulTypedName","src":"14380:4:53","type":""}],"src":"14233:381:53"},{"body":{"nativeSrc":"14709:28:53","nodeType":"YulBlock","src":"14709:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14726:1:53","nodeType":"YulLiteral","src":"14726:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14729:1:53","nodeType":"YulLiteral","src":"14729:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14719:6:53","nodeType":"YulIdentifier","src":"14719:6:53"},"nativeSrc":"14719:12:53","nodeType":"YulFunctionCall","src":"14719:12:53"},"nativeSrc":"14719:12:53","nodeType":"YulExpressionStatement","src":"14719:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14620:117:53","nodeType":"YulFunctionDefinition","src":"14620:117:53"},{"body":{"nativeSrc":"14809:241:53","nodeType":"YulBlock","src":"14809:241:53","statements":[{"body":{"nativeSrc":"14914:22:53","nodeType":"YulBlock","src":"14914:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"14916:16:53","nodeType":"YulIdentifier","src":"14916:16:53"},"nativeSrc":"14916:18:53","nodeType":"YulFunctionCall","src":"14916:18:53"},"nativeSrc":"14916:18:53","nodeType":"YulExpressionStatement","src":"14916:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14886:6:53","nodeType":"YulIdentifier","src":"14886:6:53"},{"kind":"number","nativeSrc":"14894:18:53","nodeType":"YulLiteral","src":"14894:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14883:2:53","nodeType":"YulIdentifier","src":"14883:2:53"},"nativeSrc":"14883:30:53","nodeType":"YulFunctionCall","src":"14883:30:53"},"nativeSrc":"14880:56:53","nodeType":"YulIf","src":"14880:56:53"},{"nativeSrc":"14946:37:53","nodeType":"YulAssignment","src":"14946:37:53","value":{"arguments":[{"name":"length","nativeSrc":"14976:6:53","nodeType":"YulIdentifier","src":"14976:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"14954:21:53","nodeType":"YulIdentifier","src":"14954:21:53"},"nativeSrc":"14954:29:53","nodeType":"YulFunctionCall","src":"14954:29:53"},"variableNames":[{"name":"size","nativeSrc":"14946:4:53","nodeType":"YulIdentifier","src":"14946:4:53"}]},{"nativeSrc":"15020:23:53","nodeType":"YulAssignment","src":"15020:23:53","value":{"arguments":[{"name":"size","nativeSrc":"15032:4:53","nodeType":"YulIdentifier","src":"15032:4:53"},{"kind":"number","nativeSrc":"15038:4:53","nodeType":"YulLiteral","src":"15038:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15028:3:53","nodeType":"YulIdentifier","src":"15028:3:53"},"nativeSrc":"15028:15:53","nodeType":"YulFunctionCall","src":"15028:15:53"},"variableNames":[{"name":"size","nativeSrc":"15020:4:53","nodeType":"YulIdentifier","src":"15020:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14743:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14793:6:53","nodeType":"YulTypedName","src":"14793:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14804:4:53","nodeType":"YulTypedName","src":"14804:4:53","type":""}],"src":"14743:307:53"},{"body":{"nativeSrc":"15120:84:53","nodeType":"YulBlock","src":"15120:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"15144:3:53","nodeType":"YulIdentifier","src":"15144:3:53"},{"name":"src","nativeSrc":"15149:3:53","nodeType":"YulIdentifier","src":"15149:3:53"},{"name":"length","nativeSrc":"15154:6:53","nodeType":"YulIdentifier","src":"15154:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"15131:12:53","nodeType":"YulIdentifier","src":"15131:12:53"},"nativeSrc":"15131:30:53","nodeType":"YulFunctionCall","src":"15131:30:53"},"nativeSrc":"15131:30:53","nodeType":"YulExpressionStatement","src":"15131:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"15181:3:53","nodeType":"YulIdentifier","src":"15181:3:53"},{"name":"length","nativeSrc":"15186:6:53","nodeType":"YulIdentifier","src":"15186:6:53"}],"functionName":{"name":"add","nativeSrc":"15177:3:53","nodeType":"YulIdentifier","src":"15177:3:53"},"nativeSrc":"15177:16:53","nodeType":"YulFunctionCall","src":"15177:16:53"},{"kind":"number","nativeSrc":"15195:1:53","nodeType":"YulLiteral","src":"15195:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15170:6:53","nodeType":"YulIdentifier","src":"15170:6:53"},"nativeSrc":"15170:27:53","nodeType":"YulFunctionCall","src":"15170:27:53"},"nativeSrc":"15170:27:53","nodeType":"YulExpressionStatement","src":"15170:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15056:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15102:3:53","nodeType":"YulTypedName","src":"15102:3:53","type":""},{"name":"dst","nativeSrc":"15107:3:53","nodeType":"YulTypedName","src":"15107:3:53","type":""},{"name":"length","nativeSrc":"15112:6:53","nodeType":"YulTypedName","src":"15112:6:53","type":""}],"src":"15056:148:53"},{"body":{"nativeSrc":"15293:340:53","nodeType":"YulBlock","src":"15293:340:53","statements":[{"nativeSrc":"15303:74:53","nodeType":"YulAssignment","src":"15303:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"15369:6:53","nodeType":"YulIdentifier","src":"15369:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"15328:40:53","nodeType":"YulIdentifier","src":"15328:40:53"},"nativeSrc":"15328:48:53","nodeType":"YulFunctionCall","src":"15328:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"15312:15:53","nodeType":"YulIdentifier","src":"15312:15:53"},"nativeSrc":"15312:65:53","nodeType":"YulFunctionCall","src":"15312:65:53"},"variableNames":[{"name":"array","nativeSrc":"15303:5:53","nodeType":"YulIdentifier","src":"15303:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"15393:5:53","nodeType":"YulIdentifier","src":"15393:5:53"},{"name":"length","nativeSrc":"15400:6:53","nodeType":"YulIdentifier","src":"15400:6:53"}],"functionName":{"name":"mstore","nativeSrc":"15386:6:53","nodeType":"YulIdentifier","src":"15386:6:53"},"nativeSrc":"15386:21:53","nodeType":"YulFunctionCall","src":"15386:21:53"},"nativeSrc":"15386:21:53","nodeType":"YulExpressionStatement","src":"15386:21:53"},{"nativeSrc":"15416:27:53","nodeType":"YulVariableDeclaration","src":"15416:27:53","value":{"arguments":[{"name":"array","nativeSrc":"15431:5:53","nodeType":"YulIdentifier","src":"15431:5:53"},{"kind":"number","nativeSrc":"15438:4:53","nodeType":"YulLiteral","src":"15438:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15427:3:53","nodeType":"YulIdentifier","src":"15427:3:53"},"nativeSrc":"15427:16:53","nodeType":"YulFunctionCall","src":"15427:16:53"},"variables":[{"name":"dst","nativeSrc":"15420:3:53","nodeType":"YulTypedName","src":"15420:3:53","type":""}]},{"body":{"nativeSrc":"15481:83:53","nodeType":"YulBlock","src":"15481:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"15483:77:53","nodeType":"YulIdentifier","src":"15483:77:53"},"nativeSrc":"15483:79:53","nodeType":"YulFunctionCall","src":"15483:79:53"},"nativeSrc":"15483:79:53","nodeType":"YulExpressionStatement","src":"15483:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15462:3:53","nodeType":"YulIdentifier","src":"15462:3:53"},{"name":"length","nativeSrc":"15467:6:53","nodeType":"YulIdentifier","src":"15467:6:53"}],"functionName":{"name":"add","nativeSrc":"15458:3:53","nodeType":"YulIdentifier","src":"15458:3:53"},"nativeSrc":"15458:16:53","nodeType":"YulFunctionCall","src":"15458:16:53"},{"name":"end","nativeSrc":"15476:3:53","nodeType":"YulIdentifier","src":"15476:3:53"}],"functionName":{"name":"gt","nativeSrc":"15455:2:53","nodeType":"YulIdentifier","src":"15455:2:53"},"nativeSrc":"15455:25:53","nodeType":"YulFunctionCall","src":"15455:25:53"},"nativeSrc":"15452:112:53","nodeType":"YulIf","src":"15452:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"15610:3:53","nodeType":"YulIdentifier","src":"15610:3:53"},{"name":"dst","nativeSrc":"15615:3:53","nodeType":"YulIdentifier","src":"15615:3:53"},{"name":"length","nativeSrc":"15620:6:53","nodeType":"YulIdentifier","src":"15620:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15573:36:53","nodeType":"YulIdentifier","src":"15573:36:53"},"nativeSrc":"15573:54:53","nodeType":"YulFunctionCall","src":"15573:54:53"},"nativeSrc":"15573:54:53","nodeType":"YulExpressionStatement","src":"15573:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15210:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15266:3:53","nodeType":"YulTypedName","src":"15266:3:53","type":""},{"name":"length","nativeSrc":"15271:6:53","nodeType":"YulTypedName","src":"15271:6:53","type":""},{"name":"end","nativeSrc":"15279:3:53","nodeType":"YulTypedName","src":"15279:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15287:5:53","nodeType":"YulTypedName","src":"15287:5:53","type":""}],"src":"15210:423:53"},{"body":{"nativeSrc":"15713:277:53","nodeType":"YulBlock","src":"15713:277:53","statements":[{"body":{"nativeSrc":"15762:83:53","nodeType":"YulBlock","src":"15762:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15764:77:53","nodeType":"YulIdentifier","src":"15764:77:53"},"nativeSrc":"15764:79:53","nodeType":"YulFunctionCall","src":"15764:79:53"},"nativeSrc":"15764:79:53","nodeType":"YulExpressionStatement","src":"15764:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15741:6:53","nodeType":"YulIdentifier","src":"15741:6:53"},{"kind":"number","nativeSrc":"15749:4:53","nodeType":"YulLiteral","src":"15749:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15737:3:53","nodeType":"YulIdentifier","src":"15737:3:53"},"nativeSrc":"15737:17:53","nodeType":"YulFunctionCall","src":"15737:17:53"},{"name":"end","nativeSrc":"15756:3:53","nodeType":"YulIdentifier","src":"15756:3:53"}],"functionName":{"name":"slt","nativeSrc":"15733:3:53","nodeType":"YulIdentifier","src":"15733:3:53"},"nativeSrc":"15733:27:53","nodeType":"YulFunctionCall","src":"15733:27:53"}],"functionName":{"name":"iszero","nativeSrc":"15726:6:53","nodeType":"YulIdentifier","src":"15726:6:53"},"nativeSrc":"15726:35:53","nodeType":"YulFunctionCall","src":"15726:35:53"},"nativeSrc":"15723:122:53","nodeType":"YulIf","src":"15723:122:53"},{"nativeSrc":"15854:34:53","nodeType":"YulVariableDeclaration","src":"15854:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"15881:6:53","nodeType":"YulIdentifier","src":"15881:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15868:12:53","nodeType":"YulIdentifier","src":"15868:12:53"},"nativeSrc":"15868:20:53","nodeType":"YulFunctionCall","src":"15868:20:53"},"variables":[{"name":"length","nativeSrc":"15858:6:53","nodeType":"YulTypedName","src":"15858:6:53","type":""}]},{"nativeSrc":"15897:87:53","nodeType":"YulAssignment","src":"15897:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15957:6:53","nodeType":"YulIdentifier","src":"15957:6:53"},{"kind":"number","nativeSrc":"15965:4:53","nodeType":"YulLiteral","src":"15965:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15953:3:53","nodeType":"YulIdentifier","src":"15953:3:53"},"nativeSrc":"15953:17:53","nodeType":"YulFunctionCall","src":"15953:17:53"},{"name":"length","nativeSrc":"15972:6:53","nodeType":"YulIdentifier","src":"15972:6:53"},{"name":"end","nativeSrc":"15980:3:53","nodeType":"YulIdentifier","src":"15980:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15906:46:53","nodeType":"YulIdentifier","src":"15906:46:53"},"nativeSrc":"15906:78:53","nodeType":"YulFunctionCall","src":"15906:78:53"},"variableNames":[{"name":"array","nativeSrc":"15897:5:53","nodeType":"YulIdentifier","src":"15897:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15652:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15691:6:53","nodeType":"YulTypedName","src":"15691:6:53","type":""},{"name":"end","nativeSrc":"15699:3:53","nodeType":"YulTypedName","src":"15699:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15707:5:53","nodeType":"YulTypedName","src":"15707:5:53","type":""}],"src":"15652:338:53"},{"body":{"nativeSrc":"16119:665:53","nodeType":"YulBlock","src":"16119:665:53","statements":[{"body":{"nativeSrc":"16163:83:53","nodeType":"YulBlock","src":"16163:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"16165:77:53","nodeType":"YulIdentifier","src":"16165:77:53"},"nativeSrc":"16165:79:53","nodeType":"YulFunctionCall","src":"16165:79:53"},"nativeSrc":"16165:79:53","nodeType":"YulExpressionStatement","src":"16165:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"16140:3:53","nodeType":"YulIdentifier","src":"16140:3:53"},{"name":"headStart","nativeSrc":"16145:9:53","nodeType":"YulIdentifier","src":"16145:9:53"}],"functionName":{"name":"sub","nativeSrc":"16136:3:53","nodeType":"YulIdentifier","src":"16136:3:53"},"nativeSrc":"16136:19:53","nodeType":"YulFunctionCall","src":"16136:19:53"},{"kind":"number","nativeSrc":"16157:4:53","nodeType":"YulLiteral","src":"16157:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"16132:3:53","nodeType":"YulIdentifier","src":"16132:3:53"},"nativeSrc":"16132:30:53","nodeType":"YulFunctionCall","src":"16132:30:53"},"nativeSrc":"16129:117:53","nodeType":"YulIf","src":"16129:117:53"},{"nativeSrc":"16255:30:53","nodeType":"YulAssignment","src":"16255:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"16280:4:53","nodeType":"YulLiteral","src":"16280:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"16264:15:53","nodeType":"YulIdentifier","src":"16264:15:53"},"nativeSrc":"16264:21:53","nodeType":"YulFunctionCall","src":"16264:21:53"},"variableNames":[{"name":"value","nativeSrc":"16255:5:53","nodeType":"YulIdentifier","src":"16255:5:53"}]},{"nativeSrc":"16295:152:53","nodeType":"YulBlock","src":"16295:152:53","statements":[{"nativeSrc":"16332:15:53","nodeType":"YulVariableDeclaration","src":"16332:15:53","value":{"kind":"number","nativeSrc":"16346:1:53","nodeType":"YulLiteral","src":"16346:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16336:6:53","nodeType":"YulTypedName","src":"16336:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16372:5:53","nodeType":"YulIdentifier","src":"16372:5:53"},{"kind":"number","nativeSrc":"16379:4:53","nodeType":"YulLiteral","src":"16379:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16368:3:53","nodeType":"YulIdentifier","src":"16368:3:53"},"nativeSrc":"16368:16:53","nodeType":"YulFunctionCall","src":"16368:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16411:9:53","nodeType":"YulIdentifier","src":"16411:9:53"},{"name":"offset","nativeSrc":"16422:6:53","nodeType":"YulIdentifier","src":"16422:6:53"}],"functionName":{"name":"add","nativeSrc":"16407:3:53","nodeType":"YulIdentifier","src":"16407:3:53"},"nativeSrc":"16407:22:53","nodeType":"YulFunctionCall","src":"16407:22:53"},{"name":"end","nativeSrc":"16431:3:53","nodeType":"YulIdentifier","src":"16431:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16386:20:53","nodeType":"YulIdentifier","src":"16386:20:53"},"nativeSrc":"16386:49:53","nodeType":"YulFunctionCall","src":"16386:49:53"}],"functionName":{"name":"mstore","nativeSrc":"16361:6:53","nodeType":"YulIdentifier","src":"16361:6:53"},"nativeSrc":"16361:75:53","nodeType":"YulFunctionCall","src":"16361:75:53"},"nativeSrc":"16361:75:53","nodeType":"YulExpressionStatement","src":"16361:75:53"}]},{"nativeSrc":"16457:320:53","nodeType":"YulBlock","src":"16457:320:53","statements":[{"nativeSrc":"16492:46:53","nodeType":"YulVariableDeclaration","src":"16492:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16523:9:53","nodeType":"YulIdentifier","src":"16523:9:53"},{"kind":"number","nativeSrc":"16534:2:53","nodeType":"YulLiteral","src":"16534:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16519:3:53","nodeType":"YulIdentifier","src":"16519:3:53"},"nativeSrc":"16519:18:53","nodeType":"YulFunctionCall","src":"16519:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"16506:12:53","nodeType":"YulIdentifier","src":"16506:12:53"},"nativeSrc":"16506:32:53","nodeType":"YulFunctionCall","src":"16506:32:53"},"variables":[{"name":"offset","nativeSrc":"16496:6:53","nodeType":"YulTypedName","src":"16496:6:53","type":""}]},{"body":{"nativeSrc":"16585:83:53","nodeType":"YulBlock","src":"16585:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16587:77:53","nodeType":"YulIdentifier","src":"16587:77:53"},"nativeSrc":"16587:79:53","nodeType":"YulFunctionCall","src":"16587:79:53"},"nativeSrc":"16587:79:53","nodeType":"YulExpressionStatement","src":"16587:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16557:6:53","nodeType":"YulIdentifier","src":"16557:6:53"},{"kind":"number","nativeSrc":"16565:18:53","nodeType":"YulLiteral","src":"16565:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16554:2:53","nodeType":"YulIdentifier","src":"16554:2:53"},"nativeSrc":"16554:30:53","nodeType":"YulFunctionCall","src":"16554:30:53"},"nativeSrc":"16551:117:53","nodeType":"YulIf","src":"16551:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16693:5:53","nodeType":"YulIdentifier","src":"16693:5:53"},{"kind":"number","nativeSrc":"16700:4:53","nodeType":"YulLiteral","src":"16700:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16689:3:53","nodeType":"YulIdentifier","src":"16689:3:53"},"nativeSrc":"16689:16:53","nodeType":"YulFunctionCall","src":"16689:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16741:9:53","nodeType":"YulIdentifier","src":"16741:9:53"},{"name":"offset","nativeSrc":"16752:6:53","nodeType":"YulIdentifier","src":"16752:6:53"}],"functionName":{"name":"add","nativeSrc":"16737:3:53","nodeType":"YulIdentifier","src":"16737:3:53"},"nativeSrc":"16737:22:53","nodeType":"YulFunctionCall","src":"16737:22:53"},{"name":"end","nativeSrc":"16761:3:53","nodeType":"YulIdentifier","src":"16761:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"16707:29:53","nodeType":"YulIdentifier","src":"16707:29:53"},"nativeSrc":"16707:58:53","nodeType":"YulFunctionCall","src":"16707:58:53"}],"functionName":{"name":"mstore","nativeSrc":"16682:6:53","nodeType":"YulIdentifier","src":"16682:6:53"},"nativeSrc":"16682:84:53","nodeType":"YulFunctionCall","src":"16682:84:53"},"nativeSrc":"16682:84:53","nodeType":"YulExpressionStatement","src":"16682:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"16033:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16094:9:53","nodeType":"YulTypedName","src":"16094:9:53","type":""},{"name":"end","nativeSrc":"16105:3:53","nodeType":"YulTypedName","src":"16105:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16113:5:53","nodeType":"YulTypedName","src":"16113:5:53","type":""}],"src":"16033:751:53"},{"body":{"nativeSrc":"16887:454:53","nodeType":"YulBlock","src":"16887:454:53","statements":[{"body":{"nativeSrc":"16933:83:53","nodeType":"YulBlock","src":"16933:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16935:77:53","nodeType":"YulIdentifier","src":"16935:77:53"},"nativeSrc":"16935:79:53","nodeType":"YulFunctionCall","src":"16935:79:53"},"nativeSrc":"16935:79:53","nodeType":"YulExpressionStatement","src":"16935:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16908:7:53","nodeType":"YulIdentifier","src":"16908:7:53"},{"name":"headStart","nativeSrc":"16917:9:53","nodeType":"YulIdentifier","src":"16917:9:53"}],"functionName":{"name":"sub","nativeSrc":"16904:3:53","nodeType":"YulIdentifier","src":"16904:3:53"},"nativeSrc":"16904:23:53","nodeType":"YulFunctionCall","src":"16904:23:53"},{"kind":"number","nativeSrc":"16929:2:53","nodeType":"YulLiteral","src":"16929:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16900:3:53","nodeType":"YulIdentifier","src":"16900:3:53"},"nativeSrc":"16900:32:53","nodeType":"YulFunctionCall","src":"16900:32:53"},"nativeSrc":"16897:119:53","nodeType":"YulIf","src":"16897:119:53"},{"nativeSrc":"17026:308:53","nodeType":"YulBlock","src":"17026:308:53","statements":[{"nativeSrc":"17041:45:53","nodeType":"YulVariableDeclaration","src":"17041:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17072:9:53","nodeType":"YulIdentifier","src":"17072:9:53"},{"kind":"number","nativeSrc":"17083:1:53","nodeType":"YulLiteral","src":"17083:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17068:3:53","nodeType":"YulIdentifier","src":"17068:3:53"},"nativeSrc":"17068:17:53","nodeType":"YulFunctionCall","src":"17068:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"17055:12:53","nodeType":"YulIdentifier","src":"17055:12:53"},"nativeSrc":"17055:31:53","nodeType":"YulFunctionCall","src":"17055:31:53"},"variables":[{"name":"offset","nativeSrc":"17045:6:53","nodeType":"YulTypedName","src":"17045:6:53","type":""}]},{"body":{"nativeSrc":"17133:83:53","nodeType":"YulBlock","src":"17133:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17135:77:53","nodeType":"YulIdentifier","src":"17135:77:53"},"nativeSrc":"17135:79:53","nodeType":"YulFunctionCall","src":"17135:79:53"},"nativeSrc":"17135:79:53","nodeType":"YulExpressionStatement","src":"17135:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17105:6:53","nodeType":"YulIdentifier","src":"17105:6:53"},{"kind":"number","nativeSrc":"17113:18:53","nodeType":"YulLiteral","src":"17113:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17102:2:53","nodeType":"YulIdentifier","src":"17102:2:53"},"nativeSrc":"17102:30:53","nodeType":"YulFunctionCall","src":"17102:30:53"},"nativeSrc":"17099:117:53","nodeType":"YulIf","src":"17099:117:53"},{"nativeSrc":"17230:94:53","nodeType":"YulAssignment","src":"17230:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17296:9:53","nodeType":"YulIdentifier","src":"17296:9:53"},{"name":"offset","nativeSrc":"17307:6:53","nodeType":"YulIdentifier","src":"17307:6:53"}],"functionName":{"name":"add","nativeSrc":"17292:3:53","nodeType":"YulIdentifier","src":"17292:3:53"},"nativeSrc":"17292:22:53","nodeType":"YulFunctionCall","src":"17292:22:53"},{"name":"dataEnd","nativeSrc":"17316:7:53","nodeType":"YulIdentifier","src":"17316:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"17240:51:53","nodeType":"YulIdentifier","src":"17240:51:53"},"nativeSrc":"17240:84:53","nodeType":"YulFunctionCall","src":"17240:84:53"},"variableNames":[{"name":"value0","nativeSrc":"17230:6:53","nodeType":"YulIdentifier","src":"17230:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"16790:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16857:9:53","nodeType":"YulTypedName","src":"16857:9:53","type":""},{"name":"dataEnd","nativeSrc":"16868:7:53","nodeType":"YulTypedName","src":"16868:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16880:6:53","nodeType":"YulTypedName","src":"16880:6:53","type":""}],"src":"16790:551:53"},{"body":{"nativeSrc":"17390:190:53","nodeType":"YulBlock","src":"17390:190:53","statements":[{"nativeSrc":"17400:33:53","nodeType":"YulAssignment","src":"17400:33:53","value":{"arguments":[{"name":"value","nativeSrc":"17427:5:53","nodeType":"YulIdentifier","src":"17427:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"17409:17:53","nodeType":"YulIdentifier","src":"17409:17:53"},"nativeSrc":"17409:24:53","nodeType":"YulFunctionCall","src":"17409:24:53"},"variableNames":[{"name":"value","nativeSrc":"17400:5:53","nodeType":"YulIdentifier","src":"17400:5:53"}]},{"body":{"nativeSrc":"17523:22:53","nodeType":"YulBlock","src":"17523:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"17525:16:53","nodeType":"YulIdentifier","src":"17525:16:53"},"nativeSrc":"17525:18:53","nodeType":"YulFunctionCall","src":"17525:18:53"},"nativeSrc":"17525:18:53","nodeType":"YulExpressionStatement","src":"17525:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"17448:5:53","nodeType":"YulIdentifier","src":"17448:5:53"},{"kind":"number","nativeSrc":"17455:66:53","nodeType":"YulLiteral","src":"17455:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"17445:2:53","nodeType":"YulIdentifier","src":"17445:2:53"},"nativeSrc":"17445:77:53","nodeType":"YulFunctionCall","src":"17445:77:53"},"nativeSrc":"17442:103:53","nodeType":"YulIf","src":"17442:103:53"},{"nativeSrc":"17554:20:53","nodeType":"YulAssignment","src":"17554:20:53","value":{"arguments":[{"name":"value","nativeSrc":"17565:5:53","nodeType":"YulIdentifier","src":"17565:5:53"},{"kind":"number","nativeSrc":"17572:1:53","nodeType":"YulLiteral","src":"17572:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17561:3:53","nodeType":"YulIdentifier","src":"17561:3:53"},"nativeSrc":"17561:13:53","nodeType":"YulFunctionCall","src":"17561:13:53"},"variableNames":[{"name":"ret","nativeSrc":"17554:3:53","nodeType":"YulIdentifier","src":"17554:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"17347:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17376:5:53","nodeType":"YulTypedName","src":"17376:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"17386:3:53","nodeType":"YulTypedName","src":"17386:3:53","type":""}],"src":"17347:233:53"},{"body":{"nativeSrc":"17628:52:53","nodeType":"YulBlock","src":"17628:52:53","statements":[{"nativeSrc":"17638:35:53","nodeType":"YulAssignment","src":"17638:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"17663:2:53","nodeType":"YulLiteral","src":"17663:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"17667:5:53","nodeType":"YulIdentifier","src":"17667:5:53"}],"functionName":{"name":"shl","nativeSrc":"17659:3:53","nodeType":"YulIdentifier","src":"17659:3:53"},"nativeSrc":"17659:14:53","nodeType":"YulFunctionCall","src":"17659:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"17638:8:53","nodeType":"YulIdentifier","src":"17638:8:53"}]}]},"name":"shift_left_96","nativeSrc":"17586:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17609:5:53","nodeType":"YulTypedName","src":"17609:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"17619:8:53","nodeType":"YulTypedName","src":"17619:8:53","type":""}],"src":"17586:94:53"},{"body":{"nativeSrc":"17733:47:53","nodeType":"YulBlock","src":"17733:47:53","statements":[{"nativeSrc":"17743:31:53","nodeType":"YulAssignment","src":"17743:31:53","value":{"arguments":[{"name":"value","nativeSrc":"17768:5:53","nodeType":"YulIdentifier","src":"17768:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"17754:13:53","nodeType":"YulIdentifier","src":"17754:13:53"},"nativeSrc":"17754:20:53","nodeType":"YulFunctionCall","src":"17754:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"17743:7:53","nodeType":"YulIdentifier","src":"17743:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"17686:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17715:5:53","nodeType":"YulTypedName","src":"17715:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"17725:7:53","nodeType":"YulTypedName","src":"17725:7:53","type":""}],"src":"17686:94:53"},{"body":{"nativeSrc":"17833:53:53","nodeType":"YulBlock","src":"17833:53:53","statements":[{"nativeSrc":"17843:37:53","nodeType":"YulAssignment","src":"17843:37:53","value":{"arguments":[{"name":"value","nativeSrc":"17874:5:53","nodeType":"YulIdentifier","src":"17874:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"17854:19:53","nodeType":"YulIdentifier","src":"17854:19:53"},"nativeSrc":"17854:26:53","nodeType":"YulFunctionCall","src":"17854:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"17843:7:53","nodeType":"YulIdentifier","src":"17843:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"17786:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17815:5:53","nodeType":"YulTypedName","src":"17815:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"17825:7:53","nodeType":"YulTypedName","src":"17825:7:53","type":""}],"src":"17786:100:53"},{"body":{"nativeSrc":"17975:74:53","nodeType":"YulBlock","src":"17975:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17992:3:53","nodeType":"YulIdentifier","src":"17992:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18035:5:53","nodeType":"YulIdentifier","src":"18035:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"18017:17:53","nodeType":"YulIdentifier","src":"18017:17:53"},"nativeSrc":"18017:24:53","nodeType":"YulFunctionCall","src":"18017:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"17997:19:53","nodeType":"YulIdentifier","src":"17997:19:53"},"nativeSrc":"17997:45:53","nodeType":"YulFunctionCall","src":"17997:45:53"}],"functionName":{"name":"mstore","nativeSrc":"17985:6:53","nodeType":"YulIdentifier","src":"17985:6:53"},"nativeSrc":"17985:58:53","nodeType":"YulFunctionCall","src":"17985:58:53"},"nativeSrc":"17985:58:53","nodeType":"YulExpressionStatement","src":"17985:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17892:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17963:5:53","nodeType":"YulTypedName","src":"17963:5:53","type":""},{"name":"pos","nativeSrc":"17970:3:53","nodeType":"YulTypedName","src":"17970:3:53","type":""}],"src":"17892:157:53"},{"body":{"nativeSrc":"18102:32:53","nodeType":"YulBlock","src":"18102:32:53","statements":[{"nativeSrc":"18112:16:53","nodeType":"YulAssignment","src":"18112:16:53","value":{"name":"value","nativeSrc":"18123:5:53","nodeType":"YulIdentifier","src":"18123:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"18112:7:53","nodeType":"YulIdentifier","src":"18112:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"18055:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18084:5:53","nodeType":"YulTypedName","src":"18084:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"18094:7:53","nodeType":"YulTypedName","src":"18094:7:53","type":""}],"src":"18055:79:53"},{"body":{"nativeSrc":"18223:74:53","nodeType":"YulBlock","src":"18223:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18240:3:53","nodeType":"YulIdentifier","src":"18240:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18283:5:53","nodeType":"YulIdentifier","src":"18283:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"18265:17:53","nodeType":"YulIdentifier","src":"18265:17:53"},"nativeSrc":"18265:24:53","nodeType":"YulFunctionCall","src":"18265:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"18245:19:53","nodeType":"YulIdentifier","src":"18245:19:53"},"nativeSrc":"18245:45:53","nodeType":"YulFunctionCall","src":"18245:45:53"}],"functionName":{"name":"mstore","nativeSrc":"18233:6:53","nodeType":"YulIdentifier","src":"18233:6:53"},"nativeSrc":"18233:58:53","nodeType":"YulFunctionCall","src":"18233:58:53"},"nativeSrc":"18233:58:53","nodeType":"YulExpressionStatement","src":"18233:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"18140:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18211:5:53","nodeType":"YulTypedName","src":"18211:5:53","type":""},{"name":"pos","nativeSrc":"18218:3:53","nodeType":"YulTypedName","src":"18218:3:53","type":""}],"src":"18140:157:53"},{"body":{"nativeSrc":"18475:366:53","nodeType":"YulBlock","src":"18475:366:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"18548:6:53","nodeType":"YulIdentifier","src":"18548:6:53"},{"name":"pos","nativeSrc":"18557:3:53","nodeType":"YulIdentifier","src":"18557:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"18486:61:53","nodeType":"YulIdentifier","src":"18486:61:53"},"nativeSrc":"18486:75:53","nodeType":"YulFunctionCall","src":"18486:75:53"},"nativeSrc":"18486:75:53","nodeType":"YulExpressionStatement","src":"18486:75:53"},{"nativeSrc":"18570:19:53","nodeType":"YulAssignment","src":"18570:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"18581:3:53","nodeType":"YulIdentifier","src":"18581:3:53"},{"kind":"number","nativeSrc":"18586:2:53","nodeType":"YulLiteral","src":"18586:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"18577:3:53","nodeType":"YulIdentifier","src":"18577:3:53"},"nativeSrc":"18577:12:53","nodeType":"YulFunctionCall","src":"18577:12:53"},"variableNames":[{"name":"pos","nativeSrc":"18570:3:53","nodeType":"YulIdentifier","src":"18570:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18661:6:53","nodeType":"YulIdentifier","src":"18661:6:53"},{"name":"pos","nativeSrc":"18670:3:53","nodeType":"YulIdentifier","src":"18670:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"18599:61:53","nodeType":"YulIdentifier","src":"18599:61:53"},"nativeSrc":"18599:75:53","nodeType":"YulFunctionCall","src":"18599:75:53"},"nativeSrc":"18599:75:53","nodeType":"YulExpressionStatement","src":"18599:75:53"},{"nativeSrc":"18683:19:53","nodeType":"YulAssignment","src":"18683:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"18694:3:53","nodeType":"YulIdentifier","src":"18694:3:53"},{"kind":"number","nativeSrc":"18699:2:53","nodeType":"YulLiteral","src":"18699:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"18690:3:53","nodeType":"YulIdentifier","src":"18690:3:53"},"nativeSrc":"18690:12:53","nodeType":"YulFunctionCall","src":"18690:12:53"},"variableNames":[{"name":"pos","nativeSrc":"18683:3:53","nodeType":"YulIdentifier","src":"18683:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"18774:6:53","nodeType":"YulIdentifier","src":"18774:6:53"},{"name":"pos","nativeSrc":"18783:3:53","nodeType":"YulIdentifier","src":"18783:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"18712:61:53","nodeType":"YulIdentifier","src":"18712:61:53"},"nativeSrc":"18712:75:53","nodeType":"YulFunctionCall","src":"18712:75:53"},"nativeSrc":"18712:75:53","nodeType":"YulExpressionStatement","src":"18712:75:53"},{"nativeSrc":"18796:19:53","nodeType":"YulAssignment","src":"18796:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"18807:3:53","nodeType":"YulIdentifier","src":"18807:3:53"},{"kind":"number","nativeSrc":"18812:2:53","nodeType":"YulLiteral","src":"18812:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18803:3:53","nodeType":"YulIdentifier","src":"18803:3:53"},"nativeSrc":"18803:12:53","nodeType":"YulFunctionCall","src":"18803:12:53"},"variableNames":[{"name":"pos","nativeSrc":"18796:3:53","nodeType":"YulIdentifier","src":"18796:3:53"}]},{"nativeSrc":"18825:10:53","nodeType":"YulAssignment","src":"18825:10:53","value":{"name":"pos","nativeSrc":"18832:3:53","nodeType":"YulIdentifier","src":"18832:3:53"},"variableNames":[{"name":"end","nativeSrc":"18825:3:53","nodeType":"YulIdentifier","src":"18825:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"18303:538:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18438:3:53","nodeType":"YulTypedName","src":"18438:3:53","type":""},{"name":"value2","nativeSrc":"18444:6:53","nodeType":"YulTypedName","src":"18444:6:53","type":""},{"name":"value1","nativeSrc":"18452:6:53","nodeType":"YulTypedName","src":"18452:6:53","type":""},{"name":"value0","nativeSrc":"18460:6:53","nodeType":"YulTypedName","src":"18460:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18471:3:53","nodeType":"YulTypedName","src":"18471:3:53","type":""}],"src":"18303:538:53"},{"body":{"nativeSrc":"18910:80:53","nodeType":"YulBlock","src":"18910:80:53","statements":[{"nativeSrc":"18920:22:53","nodeType":"YulAssignment","src":"18920:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"18935:6:53","nodeType":"YulIdentifier","src":"18935:6:53"}],"functionName":{"name":"mload","nativeSrc":"18929:5:53","nodeType":"YulIdentifier","src":"18929:5:53"},"nativeSrc":"18929:13:53","nodeType":"YulFunctionCall","src":"18929:13:53"},"variableNames":[{"name":"value","nativeSrc":"18920:5:53","nodeType":"YulIdentifier","src":"18920:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18978:5:53","nodeType":"YulIdentifier","src":"18978:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"18951:26:53","nodeType":"YulIdentifier","src":"18951:26:53"},"nativeSrc":"18951:33:53","nodeType":"YulFunctionCall","src":"18951:33:53"},"nativeSrc":"18951:33:53","nodeType":"YulExpressionStatement","src":"18951:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"18847:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18888:6:53","nodeType":"YulTypedName","src":"18888:6:53","type":""},{"name":"end","nativeSrc":"18896:3:53","nodeType":"YulTypedName","src":"18896:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18904:5:53","nodeType":"YulTypedName","src":"18904:5:53","type":""}],"src":"18847:143:53"},{"body":{"nativeSrc":"19073:274:53","nodeType":"YulBlock","src":"19073:274:53","statements":[{"body":{"nativeSrc":"19119:83:53","nodeType":"YulBlock","src":"19119:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19121:77:53","nodeType":"YulIdentifier","src":"19121:77:53"},"nativeSrc":"19121:79:53","nodeType":"YulFunctionCall","src":"19121:79:53"},"nativeSrc":"19121:79:53","nodeType":"YulExpressionStatement","src":"19121:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19094:7:53","nodeType":"YulIdentifier","src":"19094:7:53"},{"name":"headStart","nativeSrc":"19103:9:53","nodeType":"YulIdentifier","src":"19103:9:53"}],"functionName":{"name":"sub","nativeSrc":"19090:3:53","nodeType":"YulIdentifier","src":"19090:3:53"},"nativeSrc":"19090:23:53","nodeType":"YulFunctionCall","src":"19090:23:53"},{"kind":"number","nativeSrc":"19115:2:53","nodeType":"YulLiteral","src":"19115:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19086:3:53","nodeType":"YulIdentifier","src":"19086:3:53"},"nativeSrc":"19086:32:53","nodeType":"YulFunctionCall","src":"19086:32:53"},"nativeSrc":"19083:119:53","nodeType":"YulIf","src":"19083:119:53"},{"nativeSrc":"19212:128:53","nodeType":"YulBlock","src":"19212:128:53","statements":[{"nativeSrc":"19227:15:53","nodeType":"YulVariableDeclaration","src":"19227:15:53","value":{"kind":"number","nativeSrc":"19241:1:53","nodeType":"YulLiteral","src":"19241:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19231:6:53","nodeType":"YulTypedName","src":"19231:6:53","type":""}]},{"nativeSrc":"19256:74:53","nodeType":"YulAssignment","src":"19256:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19302:9:53","nodeType":"YulIdentifier","src":"19302:9:53"},{"name":"offset","nativeSrc":"19313:6:53","nodeType":"YulIdentifier","src":"19313:6:53"}],"functionName":{"name":"add","nativeSrc":"19298:3:53","nodeType":"YulIdentifier","src":"19298:3:53"},"nativeSrc":"19298:22:53","nodeType":"YulFunctionCall","src":"19298:22:53"},{"name":"dataEnd","nativeSrc":"19322:7:53","nodeType":"YulIdentifier","src":"19322:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19266:31:53","nodeType":"YulIdentifier","src":"19266:31:53"},"nativeSrc":"19266:64:53","nodeType":"YulFunctionCall","src":"19266:64:53"},"variableNames":[{"name":"value0","nativeSrc":"19256:6:53","nodeType":"YulIdentifier","src":"19256:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"18996:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19043:9:53","nodeType":"YulTypedName","src":"19043:9:53","type":""},{"name":"dataEnd","nativeSrc":"19054:7:53","nodeType":"YulTypedName","src":"19054:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19066:6:53","nodeType":"YulTypedName","src":"19066:6:53","type":""}],"src":"18996:351:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\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 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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\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 revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct CGDAIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$15693_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // initialReward\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // rewardDecay\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // rewardBoost\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // totalBudget\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$15693_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$15693_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct Budget.FungiblePayload -> struct Budget.FungiblePayload\n function abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x20)\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_assert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$13471(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$13471(value)\n }\n\n function convert_t_enum$_AssetType_$13471_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$13471(value)\n }\n\n function abi_encode_t_enum$_AssetType_$13471_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$13471_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$13471_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value0, tail)\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\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}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c80638da5cb5b1161009f578063e18e650811610063578063e18e65081461034c578063f04e283e14610388578063f1c30ec0146103a4578063f2fde38b146103e0578063fee81cf4146103fc57610113565b80638da5cb5b14610256578063c63ff8dd14610280578063c78da39a146102bc578063c884ef83146102e6578063dcc59b6f1461032257610113565b8063439fab91116100e6578063439fab91146101b15780634e7165a2146101d957806354d1f13d14610215578063715018a61461021f57806375ef18d01461022957610113565b806301ffc9a71461011757806307621eca14610153578063256929621461017d57806338d52e0f14610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611188565b610438565b60405161014a91906111cd565b60405180910390f35b34801561015e575f80fd5b506101676104b1565b60405161017491906111fe565b60405180910390f35b61018561055a565b005b348015610192575f80fd5b5061019b6105ab565b6040516101a89190611256565b60405180910390f35b3480156101bc575f80fd5b506101d760048036038101906101d291906112d0565b6105d0565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa91906112d0565b6107f8565b60405161020c919061138b565b60405180910390f35b61021d6108c8565b005b610227610901565b005b348015610234575f80fd5b5061023d610914565b60405161024d94939291906113ab565b60405180910390f35b348015610261575f80fd5b5061026a610931565b6040516102779190611256565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a191906112d0565b610959565b6040516102b391906111cd565b60405180910390f35b3480156102c7575f80fd5b506102d0610b02565b6040516102dd91906111fe565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190611418565b610b08565b60405161031991906111cd565b60405180910390f35b34801561032d575f80fd5b50610336610b25565b60405161034391906111fe565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d91906112d0565b610b2a565b60405161037f91906111cd565b60405180910390f35b6103a2600480360381019061039d9190611418565b610b52565b005b3480156103af575f80fd5b506103ca60048036038101906103c591906112d0565b610b90565b6040516103d791906111cd565b60405180910390f35b6103fa60048036038101906103f59190611418565b610cb9565b005b348015610407575f80fd5b50610422600480360381019061041d9190611418565b610ce2565b60405161042f91906111fe565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104aa57506104a982610cfb565b5b9050919050565b5f80600360020154426104c49190611470565b90505f6105113060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b90505f610e106003600101548461052891906114a3565b6105329190611511565b60038001546105419190611541565b90508181116105505780610552565b815b935050505090565b5f610563610da7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105d9610db1565b9050805460038255801561060b5760018160011c14303b106106025763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061061c91906116a7565b90505f61064b30835f015173ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b905081608001518110156106a157815f01518183608001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610698939291906116d2565b60405180910390fd5b5f826020015114806106b657505f8260400151145b806106c457505f8260600151145b806106d6575081602001518260800151105b1561070d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052808360400151815260200183606001518152602001428152602001836020015181525060035f820151815f015560208201518160010155604082015181600201556060820151816003015590505081608001516007819055506107bc33610dda565b505080156107f3576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f838381019061080a91906116a7565b905060405180608001604052806001600281111561082b5761082a611707565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060200160405280846080015181525060405160200161088e919061175d565b6040516020818303038152906040528152506040516020016108b09190611873565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610909610eb0565b6109125f610ee7565b565b6003805f0154908060010154908060020154908060030154905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f610962610eb0565b5f838381019061097291906119ac565b9050610980815f0151610fad565b6109b6576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906109c7906119f3565b91905055505f6109d56104b1565b90504260036002018190555060035f015481116109f65760035f0154610a07565b60035f015481610a069190611470565b5b6003800181905550610a5e825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610ad293929190611a9f565b604051602081830303815290604052604051610aee919061138b565b60405180910390a260019250505092915050565b60075481565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610b3b91906119ac565b9050610b49815f0151610fad565b91505092915050565b610b5a610eb0565b63389a75e1600c52805f526020600c208054421115610b8057636f5e88185f526004601cfd5b5f815550610b8d81610ee7565b50565b5f610b99610eb0565b5f8383810190610ba991906119ac565b90505f8160200151806020019051810190610bc49190611aef565b9050610c15825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610c8993929190611a9f565b604051602081830303815290604052604051610ca5919061138b565b60405180910390a260019250505092915050565b610cc1610eb0565b8060601b610cd657637448fbae5f526004601cfd5b610cdf81610ee7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d6d5750610d6c826110b5565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610de261111e565b15610e5a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610e1c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ead565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ee5576382b429005f526004601cfd5b565b610eef61111e565b15610f54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610faa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f80610fb76104b1565b90505f8111801561101157508061100e3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b10155b8015611064575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b915050919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166110ac576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61116781611133565b8114611171575f80fd5b50565b5f813590506111828161115e565b92915050565b5f6020828403121561119d5761119c61112b565b5b5f6111aa84828501611174565b91505092915050565b5f8115159050919050565b6111c7816111b3565b82525050565b5f6020820190506111e05f8301846111be565b92915050565b5f819050919050565b6111f8816111e6565b82525050565b5f6020820190506112115f8301846111ef565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61124082611217565b9050919050565b61125081611236565b82525050565b5f6020820190506112695f830184611247565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112905761128f61126f565b5b8235905067ffffffffffffffff8111156112ad576112ac611273565b5b6020830191508360018202830111156112c9576112c8611277565b5b9250929050565b5f80602083850312156112e6576112e561112b565b5b5f83013567ffffffffffffffff8111156113035761130261112f565b5b61130f8582860161127b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61135d8261131b565b6113678185611325565b9350611377818560208601611335565b61138081611343565b840191505092915050565b5f6020820190508181035f8301526113a38184611353565b905092915050565b5f6080820190506113be5f8301876111ef565b6113cb60208301866111ef565b6113d860408301856111ef565b6113e560608301846111ef565b95945050505050565b6113f781611236565b8114611401575f80fd5b50565b5f81359050611412816113ee565b92915050565b5f6020828403121561142d5761142c61112b565b5b5f61143a84828501611404565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61147a826111e6565b9150611485836111e6565b925082820390508181111561149d5761149c611443565b5b92915050565b5f6114ad826111e6565b91506114b8836111e6565b92508282026114c6816111e6565b915082820484148315176114dd576114dc611443565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61151b826111e6565b9150611526836111e6565b925082611536576115356114e4565b5b828204905092915050565b5f61154b826111e6565b9150611556836111e6565b925082820190508082111561156e5761156d611443565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6115ae82611343565b810181811067ffffffffffffffff821117156115cd576115cc611578565b5b80604052505050565b5f6115df611122565b90506115eb82826115a5565b919050565b5f80fd5b6115fd816111e6565b8114611607575f80fd5b50565b5f81359050611618816115f4565b92915050565b5f60a0828403121561163357611632611574565b5b61163d60a06115d6565b90505f61164c84828501611404565b5f83015250602061165f8482850161160a565b60208301525060406116738482850161160a565b60408301525060606116878482850161160a565b606083015250608061169b8482850161160a565b60808301525092915050565b5f60a082840312156116bc576116bb61112b565b5b5f6116c98482850161161e565b91505092915050565b5f6060820190506116e55f830186611247565b6116f260208301856111ef565b6116ff60408301846111ef565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61173d816111e6565b82525050565b602082015f8201516117575f850182611734565b50505050565b5f6020820190506117705f830184611743565b92915050565b6003811061178757611786611707565b5b50565b5f81905061179782611776565b919050565b5f6117a68261178a565b9050919050565b6117b68161179c565b82525050565b6117c581611236565b82525050565b5f82825260208201905092915050565b5f6117e58261131b565b6117ef81856117cb565b93506117ff818560208601611335565b61180881611343565b840191505092915050565b5f608083015f8301516118285f8601826117ad565b50602083015161183b60208601826117bc565b50604083015161184e60408601826117bc565b506060830151848203606086015261186682826117db565b9150508091505092915050565b5f6020820190508181035f83015261188b8184611813565b905092915050565b5f80fd5b5f67ffffffffffffffff8211156118b1576118b0611578565b5b6118ba82611343565b9050602081019050919050565b828183375f83830152505050565b5f6118e76118e284611897565b6115d6565b90508281526020810184848401111561190357611902611893565b5b61190e8482856118c7565b509392505050565b5f82601f83011261192a5761192961126f565b5b813561193a8482602086016118d5565b91505092915050565b5f6040828403121561195857611957611574565b5b61196260406115d6565b90505f61197184828501611404565b5f83015250602082013567ffffffffffffffff811115611994576119936115f0565b5b6119a084828501611916565b60208301525092915050565b5f602082840312156119c1576119c061112b565b5b5f82013567ffffffffffffffff8111156119de576119dd61112f565b5b6119ea84828501611943565b91505092915050565b5f6119fd826111e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a2f57611a2e611443565b5b600182019050919050565b5f8160601b9050919050565b5f611a5082611a3a565b9050919050565b5f611a6182611a46565b9050919050565b611a79611a7482611236565b611a57565b82525050565b5f819050919050565b611a99611a94826111e6565b611a7f565b82525050565b5f611aaa8286611a68565b601482019150611aba8285611a68565b601482019150611aca8284611a88565b602082019150819050949350505050565b5f81519050611ae9816115f4565b92915050565b5f60208284031215611b0457611b0361112b565b5b5f611b1184828501611adb565b9150509291505056fea26469706673582212204e6c9519f1b738c96d6ba1e0a87f71231432193bb2d41d56057c7c52c76b10a164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3FC JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xC78DA39A EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x322 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x75EF18D0 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x438 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x55A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x5D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x7F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH2 0x8C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x227 PUSH2 0x901 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x914 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x13AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x931 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x959 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0xB25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x343 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x372 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36D SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB2A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB90 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCB9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x422 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCE2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4AA JUMPI POP PUSH2 0x4A9 DUP3 PUSH2 0xCFB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x511 ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xE10 PUSH1 0x3 PUSH1 0x1 ADD SLOAD DUP5 PUSH2 0x528 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x532 SWAP2 SWAP1 PUSH2 0x1511 JUMP JUMPDEST PUSH1 0x3 DUP1 ADD SLOAD PUSH2 0x541 SWAP2 SWAP1 PUSH2 0x1541 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x550 JUMPI DUP1 PUSH2 0x552 JUMP JUMPDEST DUP2 JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x563 PUSH2 0xDA7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5D9 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x60B JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x602 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x61C SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x64B ADDRESS DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x80 ADD MLOAD DUP2 LT ISZERO PUSH2 0x6A1 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x698 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x16D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x20 ADD MLOAD EQ DUP1 PUSH2 0x6B6 JUMPI POP PUSH0 DUP3 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6C4 JUMPI POP PUSH0 DUP3 PUSH1 0x60 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6D6 JUMPI POP DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD LT JUMPDEST ISZERO PUSH2 0x70D JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE POP PUSH1 0x3 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH2 0x7BC CALLER PUSH2 0xDDA JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x80A SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x82B JUMPI PUSH2 0x82A PUSH2 0x1707 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x175D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8B0 SWAP2 SWAP1 PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x909 PUSH2 0xEB0 JUMP JUMPDEST PUSH2 0x912 PUSH0 PUSH2 0xEE7 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 DUP1 PUSH0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x962 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0x980 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x9B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x9C7 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH0 PUSH2 0x9D5 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x3 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH0 ADD SLOAD DUP2 GT PUSH2 0x9F6 JUMPI PUSH1 0x3 PUSH0 ADD SLOAD PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x3 PUSH0 ADD SLOAD DUP2 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP1 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xA5E DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xAEE SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xB3B SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0xB49 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5A PUSH2 0xEB0 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xB80 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xB8D DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xB99 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBA9 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC4 SWAP2 SWAP1 PUSH2 0x1AEF JUMP JUMPDEST SWAP1 POP PUSH2 0xC15 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC89 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCA5 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC1 PUSH2 0xEB0 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xCD6 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xCDF DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD6D JUMPI POP PUSH2 0xD6C DUP3 PUSH2 0x10B5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDE2 PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xE5A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xE1C JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xEAD JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xEE5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xEEF PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xF54 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xFAA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xFB7 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x1011 JUMPI POP DUP1 PUSH2 0x100E ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1064 JUMPI POP PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x10AC JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1133 JUMP JUMPDEST DUP2 EQ PUSH2 0x1171 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1182 DUP2 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x119D JUMPI PUSH2 0x119C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11AA DUP5 DUP3 DUP6 ADD PUSH2 0x1174 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11C7 DUP2 PUSH2 0x11B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11E0 PUSH0 DUP4 ADD DUP5 PUSH2 0x11BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11F8 DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1211 PUSH0 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1240 DUP3 PUSH2 0x1217 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1250 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1269 PUSH0 DUP4 ADD DUP5 PUSH2 0x1247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1290 JUMPI PUSH2 0x128F PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12AD JUMPI PUSH2 0x12AC PUSH2 0x1273 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x12C9 JUMPI PUSH2 0x12C8 PUSH2 0x1277 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12E6 JUMPI PUSH2 0x12E5 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1303 JUMPI PUSH2 0x1302 PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x130F DUP6 DUP3 DUP7 ADD PUSH2 0x127B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x135D DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x1367 DUP2 DUP6 PUSH2 0x1325 JUMP JUMPDEST SWAP4 POP PUSH2 0x1377 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1380 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x13A3 DUP2 DUP5 PUSH2 0x1353 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x13BE PUSH0 DUP4 ADD DUP8 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13CB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13D8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13E5 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13F7 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP2 EQ PUSH2 0x1401 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1412 DUP2 PUSH2 0x13EE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x142D JUMPI PUSH2 0x142C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x143A DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x147A DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1485 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x149D JUMPI PUSH2 0x149C PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14AD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x14B8 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x14C6 DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x14DD JUMPI PUSH2 0x14DC PUSH2 0x1443 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x151B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1526 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1536 JUMPI PUSH2 0x1535 PUSH2 0x14E4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x154B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1556 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x156E JUMPI PUSH2 0x156D PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x15AE DUP3 PUSH2 0x1343 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x15CD JUMPI PUSH2 0x15CC PUSH2 0x1578 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15DF PUSH2 0x1122 JUMP JUMPDEST SWAP1 POP PUSH2 0x15EB DUP3 DUP3 PUSH2 0x15A5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x15FD DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1607 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1618 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1633 JUMPI PUSH2 0x1632 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x163D PUSH1 0xA0 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x164C DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x165F DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1673 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1687 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x169B DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16C9 DUP5 DUP3 DUP6 ADD PUSH2 0x161E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x16E5 PUSH0 DUP4 ADD DUP7 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0x16F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x16FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x173D DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1757 PUSH0 DUP6 ADD DUP3 PUSH2 0x1734 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1770 PUSH0 DUP4 ADD DUP5 PUSH2 0x1743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1787 JUMPI PUSH2 0x1786 PUSH2 0x1707 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1797 DUP3 PUSH2 0x1776 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x17A6 DUP3 PUSH2 0x178A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17B6 DUP2 PUSH2 0x179C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x17E5 DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x17EF DUP2 DUP6 PUSH2 0x17CB JUMP JUMPDEST SWAP4 POP PUSH2 0x17FF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1808 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1828 PUSH0 DUP7 ADD DUP3 PUSH2 0x17AD JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x183B PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x184E PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1866 DUP3 DUP3 PUSH2 0x17DB JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x188B DUP2 DUP5 PUSH2 0x1813 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18B1 JUMPI PUSH2 0x18B0 PUSH2 0x1578 JUMP JUMPDEST JUMPDEST PUSH2 0x18BA DUP3 PUSH2 0x1343 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x18E7 PUSH2 0x18E2 DUP5 PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1903 JUMPI PUSH2 0x1902 PUSH2 0x1893 JUMP JUMPDEST JUMPDEST PUSH2 0x190E DUP5 DUP3 DUP6 PUSH2 0x18C7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192A JUMPI PUSH2 0x1929 PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x193A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x18D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1958 JUMPI PUSH2 0x1957 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x1962 PUSH1 0x40 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1971 DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1994 JUMPI PUSH2 0x1993 PUSH2 0x15F0 JUMP JUMPDEST JUMPDEST PUSH2 0x19A0 DUP5 DUP3 DUP6 ADD PUSH2 0x1916 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C1 JUMPI PUSH2 0x19C0 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19DE JUMPI PUSH2 0x19DD PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x19EA DUP5 DUP3 DUP6 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19FD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1A2F JUMPI PUSH2 0x1A2E PUSH2 0x1443 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A50 DUP3 PUSH2 0x1A3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A61 DUP3 PUSH2 0x1A46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A79 PUSH2 0x1A74 DUP3 PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1A57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A99 PUSH2 0x1A94 DUP3 PUSH2 0x11E6 JUMP JUMPDEST PUSH2 0x1A7F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AAA DUP3 DUP7 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ABA DUP3 DUP6 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ACA DUP3 DUP5 PUSH2 0x1A88 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1AE9 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B04 JUMPI PUSH2 0x1B03 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1B11 DUP5 DUP3 DUP6 ADD PUSH2 0x1ADB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E PUSH13 0x9519F1B738C96D6BA1E0A87F71 0x23 EQ ORIGIN NOT EXTCODESIZE 0xB2 0xD4 SAR JUMP SDIV PUSH29 0x7C52C76B10A164736F6C63430008190033000000000000000000000000 ","sourceMap":"453:6430:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6091:569:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;595:20:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2189:914;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5046:467;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;1804:32:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3175:752:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1842:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4452:212:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3963:453:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;6091:569:41:-;6137:7;6156:26;6203:10;:24;;;6185:15;:42;;;;:::i;:::-;6156:71;;6237:17;6257:30;6281:4;6257:5;;;;;;;;;;;:15;;;;:30;;;;:::i;:::-;6237:50;;6474:23;6575:4;6549:10;:22;;;6528:18;:43;;;;:::i;:::-;6527:52;;;;:::i;:::-;6500:10;:24;;;:79;;;;:::i;:::-;6474:105;;6614:9;6596:15;:27;:57;;6638:15;6596:57;;;6626:9;6596:57;6589:64;;;;;6091:569;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;595:20:41:-;;;;;;;;;;;;;:::o;2189:914::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2269:24:41::1;2307:5;;2296:32;;;;;;;:::i;:::-;2269:59;;2339:17;2359:36;2389:4;2359:5;:11;;;:21;;;;:36;;;;:::i;:::-;2339:56;;2421:5;:17;;;2409:9;:29;2405:138;;;2490:5;:11;;;2503:9;2514:5;:17;;;2461:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;2405:138;2593:1;2570:5;:19;;;:24;:50;;;;2619:1;2598:5;:17;;;:22;2570:50;:76;;;;2645:1;2624:5;:17;;;:22;2570:76;:135;;;;2686:5;:19;;;2666:5;:17;;;:39;2570:135;2553:204;;;2723:34;;;;;;;;;;;;;;2553:204;2776:5;:11;;;2768:5;;:19;;;;;;;;;;;;;;;;;;2810:206;;;;;;;;2852:5;:17;;;2810:206;;;;2896:5;:17;;;2810:206;;;;2942:15;2810:206;;;;2986:5;:19;;;2810:206;;::::0;2797:10:::1;:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3041:5;:17;;;3027:11;:31;;;;3068:28;3085:10;3068:16;:28::i;:::-;2259:844;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2189:914:41;;:::o;5046:467::-;5127:12;5151:24;5189:5;;5178:32;;;;;;;:::i;:::-;5151:59;;5252:244;;;;;;;;5297:22;5252:244;;;;;;;;:::i;:::-;;;;;;5344:5;:11;;;5252:244;;;;;;5389:4;5252:244;;;;;;5429:51;;;;;;;;5461:5;:17;;;5429:51;;;5418:63;;;;;;;;:::i;:::-;;;;;;;;;;;;;5252:244;;;5228:278;;;;;;;;:::i;:::-;;;;;;;;;;;;;5221:285;;;5046:467;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;1804:32:41:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;3175:752:41:-;3257:4;12517:13:17;:11;:13::i;:::-;3273:26:41::1;3313:5;;3302:33;;;;;;;:::i;:::-;3273:62;;3350:27;3363:6;:13;;;3350:12;:27::i;:::-;3345:55;;3386:14;;;;;;;;;;;;;;3345:55;3410:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;3490:14;3507:15;:13;:15::i;:::-;3490:32;;3559:15;3532:10;:24;;:42;;;;3632:10;:22;;;3623:6;:31;:90;;3691:10;:22;;;3623:90;;;3666:10;:22;;;3657:6;:31;;;;:::i;:::-;3623:90;3584:10;:24:::0;::::1;:129;;;;3772:41;3791:6;:13;;;3806:6;3772:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;3837:6;:13;;;3829:70;;;3869:5;;;;;;;;;;;3876:6;:13;;;3891:6;3852:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3829:70;;;;;;:::i;:::-;;;;;;;;3916:4;3909:11;;;;3175:752:::0;;;;:::o;1842:26::-;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;4452:212:41:-;4535:4;4551:26;4591:5;;4580:33;;;;;;;:::i;:::-;4551:62;;4630:27;4643:6;:13;;;4630:12;:27::i;:::-;4623:34;;;4452:212;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;3963:453:41:-;4047:4;12517:13:17;:11;:13::i;:::-;4063:26:41::1;4103:5;;4092:33;;;;;;;:::i;:::-;4063:62;;4136:14;4165:6;:11;;;4154:34;;;;;;;;;;;;:::i;:::-;4135:53;;4261:41;4280:6;:13;;;4295:6;4261:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;4325:6;:13;;;4317:70;;;4357:5;;;;;;;;;;;4364:6;:13;;;4379:6;4340:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4317:70;;;;;;:::i;:::-;;;;;;;;4405:4;4398:11;;;;3963:453:::0;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;19260:739:27:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;6666:215:41:-;6731:4;6747:14;6764:15;:13;:15::i;:::-;6747:32;;6805:1;6796:6;:10;:54;;;;;6844:6;6810:30;6834:4;6810:5;;;;;;;;;;;:15;;;;:30;;;;:::i;:::-;:40;;6796:54;:78;;;;;6855:7;:19;6863:10;6855:19;;;;;;;;;;;;;;;;;;;;;;;;;6854:20;6796:78;6789:85;;;6666:215;;;:::o;13466:939:27:-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:126::-;1990:7;2030:42;2023:5;2019:54;2008:65;;1953:126;;;:::o;2085:96::-;2122:7;2151:24;2169:5;2151:24;:::i;:::-;2140:35;;2085:96;;;:::o;2187:118::-;2274:24;2292:5;2274:24;:::i;:::-;2269:3;2262:37;2187:118;;:::o;2311:222::-;2404:4;2442:2;2431:9;2427:18;2419:26;;2455:71;2523:1;2512:9;2508:17;2499:6;2455:71;:::i;:::-;2311:222;;;;:::o;2539:117::-;2648:1;2645;2638:12;2662:117;2771:1;2768;2761:12;2785:117;2894:1;2891;2884:12;2921:552;2978:8;2988:6;3038:3;3031:4;3023:6;3019:17;3015:27;3005:122;;3046:79;;:::i;:::-;3005:122;3159:6;3146:20;3136:30;;3189:18;3181:6;3178:30;3175:117;;;3211:79;;:::i;:::-;3175:117;3325:4;3317:6;3313:17;3301:29;;3379:3;3371:4;3363:6;3359:17;3349:8;3345:32;3342:41;3339:128;;;3386:79;;:::i;:::-;3339:128;2921:552;;;;;:::o;3479:527::-;3549:6;3557;3606:2;3594:9;3585:7;3581:23;3577:32;3574:119;;;3612:79;;:::i;:::-;3574:119;3760:1;3749:9;3745:17;3732:31;3790:18;3782:6;3779:30;3776:117;;;3812:79;;:::i;:::-;3776:117;3925:64;3981:7;3972:6;3961:9;3957:22;3925:64;:::i;:::-;3907:82;;;;3703:296;3479:527;;;;;:::o;4012:98::-;4063:6;4097:5;4091:12;4081:22;;4012:98;;;:::o;4116:168::-;4199:11;4233:6;4228:3;4221:19;4273:4;4268:3;4264:14;4249:29;;4116:168;;;;:::o;4290:139::-;4379:6;4374:3;4369;4363:23;4420:1;4411:6;4406:3;4402:16;4395:27;4290:139;;;:::o;4435:102::-;4476:6;4527:2;4523:7;4518:2;4511:5;4507:14;4503:28;4493:38;;4435:102;;;:::o;4543:373::-;4629:3;4657:38;4689:5;4657:38;:::i;:::-;4711:70;4774:6;4769:3;4711:70;:::i;:::-;4704:77;;4790:65;4848:6;4843:3;4836:4;4829:5;4825:16;4790:65;:::i;:::-;4880:29;4902:6;4880:29;:::i;:::-;4875:3;4871:39;4864:46;;4633:283;4543:373;;;;:::o;4922:309::-;5033:4;5071:2;5060:9;5056:18;5048:26;;5120:9;5114:4;5110:20;5106:1;5095:9;5091:17;5084:47;5148:76;5219:4;5210:6;5148:76;:::i;:::-;5140:84;;4922:309;;;;:::o;5237:553::-;5414:4;5452:3;5441:9;5437:19;5429:27;;5466:71;5534:1;5523:9;5519:17;5510:6;5466:71;:::i;:::-;5547:72;5615:2;5604:9;5600:18;5591:6;5547:72;:::i;:::-;5629;5697:2;5686:9;5682:18;5673:6;5629:72;:::i;:::-;5711;5779:2;5768:9;5764:18;5755:6;5711:72;:::i;:::-;5237:553;;;;;;;:::o;5796:122::-;5869:24;5887:5;5869:24;:::i;:::-;5862:5;5859:35;5849:63;;5908:1;5905;5898:12;5849:63;5796:122;:::o;5924:139::-;5970:5;6008:6;5995:20;5986:29;;6024:33;6051:5;6024:33;:::i;:::-;5924:139;;;;:::o;6069:329::-;6128:6;6177:2;6165:9;6156:7;6152:23;6148:32;6145:119;;;6183:79;;:::i;:::-;6145:119;6303:1;6328:53;6373:7;6364:6;6353:9;6349:22;6328:53;:::i;:::-;6318:63;;6274:117;6069:329;;;;:::o;6404:180::-;6452:77;6449:1;6442:88;6549:4;6546:1;6539:15;6573:4;6570:1;6563:15;6590:194;6630:4;6650:20;6668:1;6650:20;:::i;:::-;6645:25;;6684:20;6702:1;6684:20;:::i;:::-;6679:25;;6728:1;6725;6721:9;6713:17;;6752:1;6746:4;6743:11;6740:37;;;6757:18;;:::i;:::-;6740:37;6590:194;;;;:::o;6790:410::-;6830:7;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6942:1;6939;6935:9;6964:30;6982:11;6964:30;:::i;:::-;6953:41;;7143:1;7134:7;7130:15;7127:1;7124:22;7104:1;7097:9;7077:83;7054:139;;7173:18;;:::i;:::-;7054:139;6838:362;6790:410;;;;:::o;7206:180::-;7254:77;7251:1;7244:88;7351:4;7348:1;7341:15;7375:4;7372:1;7365:15;7392:185;7432:1;7449:20;7467:1;7449:20;:::i;:::-;7444:25;;7483:20;7501:1;7483:20;:::i;:::-;7478:25;;7522:1;7512:35;;7527:18;;:::i;:::-;7512:35;7569:1;7566;7562:9;7557:14;;7392:185;;;;:::o;7583:191::-;7623:3;7642:20;7660:1;7642:20;:::i;:::-;7637:25;;7676:20;7694:1;7676:20;:::i;:::-;7671:25;;7719:1;7716;7712:9;7705:16;;7740:3;7737:1;7734:10;7731:36;;;7747:18;;:::i;:::-;7731:36;7583:191;;;;:::o;7780:117::-;7889:1;7886;7879:12;7903:180;7951:77;7948:1;7941:88;8048:4;8045:1;8038:15;8072:4;8069:1;8062:15;8089:281;8172:27;8194:4;8172:27;:::i;:::-;8164:6;8160:40;8302:6;8290:10;8287:22;8266:18;8254:10;8251:34;8248:62;8245:88;;;8313:18;;:::i;:::-;8245:88;8353:10;8349:2;8342:22;8132:238;8089:281;;:::o;8376:129::-;8410:6;8437:20;;:::i;:::-;8427:30;;8466:33;8494:4;8486:6;8466:33;:::i;:::-;8376:129;;;:::o;8511:117::-;8620:1;8617;8610:12;8634:122;8707:24;8725:5;8707:24;:::i;:::-;8700:5;8697:35;8687:63;;8746:1;8743;8736:12;8687:63;8634:122;:::o;8762:139::-;8808:5;8846:6;8833:20;8824:29;;8862:33;8889:5;8862:33;:::i;:::-;8762:139;;;;:::o;8947:1094::-;9026:5;9070:4;9058:9;9053:3;9049:19;9045:30;9042:117;;;9078:79;;:::i;:::-;9042:117;9177:21;9193:4;9177:21;:::i;:::-;9168:30;;9258:1;9298:49;9343:3;9334:6;9323:9;9319:22;9298:49;:::i;:::-;9291:4;9284:5;9280:16;9273:75;9208:151;9427:2;9468:49;9513:3;9504:6;9493:9;9489:22;9468:49;:::i;:::-;9461:4;9454:5;9450:16;9443:75;9369:160;9595:2;9636:49;9681:3;9672:6;9661:9;9657:22;9636:49;:::i;:::-;9629:4;9622:5;9618:16;9611:75;9539:158;9763:2;9804:49;9849:3;9840:6;9829:9;9825:22;9804:49;:::i;:::-;9797:4;9790:5;9786:16;9779:75;9707:158;9931:3;9973:49;10018:3;10009:6;9998:9;9994:22;9973:49;:::i;:::-;9966:4;9959:5;9955:16;9948:75;9875:159;8947:1094;;;;:::o;10047:390::-;10136:6;10185:3;10173:9;10164:7;10160:23;10156:33;10153:120;;;10192:79;;:::i;:::-;10153:120;10312:1;10337:83;10412:7;10403:6;10392:9;10388:22;10337:83;:::i;:::-;10327:93;;10283:147;10047:390;;;;:::o;10443:442::-;10592:4;10630:2;10619:9;10615:18;10607:26;;10643:71;10711:1;10700:9;10696:17;10687:6;10643:71;:::i;:::-;10724:72;10792:2;10781:9;10777:18;10768:6;10724:72;:::i;:::-;10806;10874:2;10863:9;10859:18;10850:6;10806:72;:::i;:::-;10443:442;;;;;;:::o;10891:180::-;10939:77;10936:1;10929:88;11036:4;11033:1;11026:15;11060:4;11057:1;11050:15;11077:108;11154:24;11172:5;11154:24;:::i;:::-;11149:3;11142:37;11077:108;;:::o;11261:353::-;11426:4;11421:3;11417:14;11515:4;11508:5;11504:16;11498:23;11534:63;11591:4;11586:3;11582:14;11568:12;11534:63;:::i;:::-;11441:166;11395:219;11261:353;;:::o;11620:358::-;11781:4;11819:2;11808:9;11804:18;11796:26;;11832:139;11968:1;11957:9;11953:17;11944:6;11832:139;:::i;:::-;11620:358;;;;:::o;11984:120::-;12072:1;12065:5;12062:12;12052:46;;12078:18;;:::i;:::-;12052:46;11984:120;:::o;12110:141::-;12162:7;12191:5;12180:16;;12197:48;12239:5;12197:48;:::i;:::-;12110:141;;;:::o;12257:::-;12320:9;12353:39;12386:5;12353:39;:::i;:::-;12340:52;;12257:141;;;:::o;12404:147::-;12494:50;12538:5;12494:50;:::i;:::-;12489:3;12482:63;12404:147;;:::o;12557:108::-;12634:24;12652:5;12634:24;:::i;:::-;12629:3;12622:37;12557:108;;:::o;12671:158::-;12744:11;12778:6;12773:3;12766:19;12818:4;12813:3;12809:14;12794:29;;12671:158;;;;:::o;12835:353::-;12911:3;12939:38;12971:5;12939:38;:::i;:::-;12993:60;13046:6;13041:3;12993:60;:::i;:::-;12986:67;;13062:65;13120:6;13115:3;13108:4;13101:5;13097:16;13062:65;:::i;:::-;13152:29;13174:6;13152:29;:::i;:::-;13147:3;13143:39;13136:46;;12915:273;12835:353;;;;:::o;13250:977::-;13373:3;13409:4;13404:3;13400:14;13501:4;13494:5;13490:16;13484:23;13520:76;13590:4;13585:3;13581:14;13567:12;13520:76;:::i;:::-;13424:182;13689:4;13682:5;13678:16;13672:23;13708:63;13765:4;13760:3;13756:14;13742:12;13708:63;:::i;:::-;13616:165;13865:4;13858:5;13854:16;13848:23;13884:63;13941:4;13936:3;13932:14;13918:12;13884:63;:::i;:::-;13791:166;14039:4;14032:5;14028:16;14022:23;14092:3;14086:4;14082:14;14075:4;14070:3;14066:14;14059:38;14118:71;14184:4;14170:12;14118:71;:::i;:::-;14110:79;;13967:233;14217:4;14210:11;;13378:849;13250:977;;;;:::o;14233:381::-;14380:4;14418:2;14407:9;14403:18;14395:26;;14467:9;14461:4;14457:20;14453:1;14442:9;14438:17;14431:47;14495:112;14602:4;14593:6;14495:112;:::i;:::-;14487:120;;14233:381;;;;:::o;14620:117::-;14729:1;14726;14719:12;14743:307;14804:4;14894:18;14886:6;14883:30;14880:56;;;14916:18;;:::i;:::-;14880:56;14954:29;14976:6;14954:29;:::i;:::-;14946:37;;15038:4;15032;15028:15;15020:23;;14743:307;;;:::o;15056:148::-;15154:6;15149:3;15144;15131:30;15195:1;15186:6;15181:3;15177:16;15170:27;15056:148;;;:::o;15210:423::-;15287:5;15312:65;15328:48;15369:6;15328:48;:::i;:::-;15312:65;:::i;:::-;15303:74;;15400:6;15393:5;15386:21;15438:4;15431:5;15427:16;15476:3;15467:6;15462:3;15458:16;15455:25;15452:112;;;15483:79;;:::i;:::-;15452:112;15573:54;15620:6;15615:3;15610;15573:54;:::i;:::-;15293:340;15210:423;;;;;:::o;15652:338::-;15707:5;15756:3;15749:4;15741:6;15737:17;15733:27;15723:122;;15764:79;;:::i;:::-;15723:122;15881:6;15868:20;15906:78;15980:3;15972:6;15965:4;15957:6;15953:17;15906:78;:::i;:::-;15897:87;;15713:277;15652:338;;;;:::o;16033:751::-;16113:5;16157:4;16145:9;16140:3;16136:19;16132:30;16129:117;;;16165:79;;:::i;:::-;16129:117;16264:21;16280:4;16264:21;:::i;:::-;16255:30;;16346:1;16386:49;16431:3;16422:6;16411:9;16407:22;16386:49;:::i;:::-;16379:4;16372:5;16368:16;16361:75;16295:152;16534:2;16523:9;16519:18;16506:32;16565:18;16557:6;16554:30;16551:117;;;16587:79;;:::i;:::-;16551:117;16707:58;16761:3;16752:6;16741:9;16737:22;16707:58;:::i;:::-;16700:4;16693:5;16689:16;16682:84;16457:320;16033:751;;;;:::o;16790:551::-;16880:6;16929:2;16917:9;16908:7;16904:23;16900:32;16897:119;;;16935:79;;:::i;:::-;16897:119;17083:1;17072:9;17068:17;17055:31;17113:18;17105:6;17102:30;17099:117;;;17135:79;;:::i;:::-;17099:117;17240:84;17316:7;17307:6;17296:9;17292:22;17240:84;:::i;:::-;17230:94;;17026:308;16790:551;;;;:::o;17347:233::-;17386:3;17409:24;17427:5;17409:24;:::i;:::-;17400:33;;17455:66;17448:5;17445:77;17442:103;;17525:18;;:::i;:::-;17442:103;17572:1;17565:5;17561:13;17554:20;;17347:233;;;:::o;17586:94::-;17619:8;17667:5;17663:2;17659:14;17638:35;;17586:94;;;:::o;17686:::-;17725:7;17754:20;17768:5;17754:20;:::i;:::-;17743:31;;17686:94;;;:::o;17786:100::-;17825:7;17854:26;17874:5;17854:26;:::i;:::-;17843:37;;17786:100;;;:::o;17892:157::-;17997:45;18017:24;18035:5;18017:24;:::i;:::-;17997:45;:::i;:::-;17992:3;17985:58;17892:157;;:::o;18055:79::-;18094:7;18123:5;18112:16;;18055:79;;;:::o;18140:157::-;18245:45;18265:24;18283:5;18265:24;:::i;:::-;18245:45;:::i;:::-;18240:3;18233:58;18140:157;;:::o;18303:538::-;18471:3;18486:75;18557:3;18548:6;18486:75;:::i;:::-;18586:2;18581:3;18577:12;18570:19;;18599:75;18670:3;18661:6;18599:75;:::i;:::-;18699:2;18694:3;18690:12;18683:19;;18712:75;18783:3;18774:6;18712:75;:::i;:::-;18812:2;18807:3;18803:12;18796:19;;18832:3;18825:10;;18303:538;;;;;;:::o;18847:143::-;18904:5;18935:6;18929:13;18920:22;;18951:33;18978:5;18951:33;:::i;:::-;18847:143;;;;:::o;18996:351::-;19066:6;19115:2;19103:9;19094:7;19090:23;19086:32;19083:119;;;19121:79;;:::i;:::-;19083:119;19241:1;19266:64;19322:7;19313:6;19302:9;19298:22;19266:64;:::i;:::-;19256:74;;19212:128;18996:351;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","cgdaParams()":"75ef18d0","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","totalBudget()":"c78da39a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cgdaParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rewardDecay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardBoost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastClaimTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentReward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor.\"},\"currentReward()\":{\"details\":\"The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\",\"returns\":{\"_0\":\"The current reward\"}},\"initialize(bytes)\":{\"params\":{\"data_\":\"Initialization parameters.\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\"},\"returns\":{\"_0\":\"The amount of tokens required\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Continuous Gradual Dutch Auction Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The ERC20-like token used for the incentive\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new CGDAIncentive\"},\"currentReward()\":{\"notice\":\"Calculates the current reward based on the time since the last claim.\"},\"initialize(bytes)\":{\"notice\":\"Initialize the CGDA Incentive\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"preflight(bytes)\":{\"notice\":\"Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/CGDAIncentive.sol\":\"CGDAIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/CGDAIncentive.sol\":{\"keccak256\":\"0xd98d6810556d7431caa965e8ed9fe3c21dbb34f82b6cb45d72e9720b04b355a2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3fac6c8979086bc5fb618400fdcf8002b6e9f38554386c4e231be081f4c4e0cd\",\"dweb:/ipfs/QmQcc5CbmKKkZFqDgmPx3Ng5FtJYTS7EUtKFGNgzNy4GGd\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/ERC1155Incentive.sol":{"ERC1155Incentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"contract IERC1155","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"extraData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum ERC1155Incentive.Strategy","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_16165":{"entryPoint":null,"id":16165,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612506806101b45f395ff3fe608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212207ab1fe59a979b1152938e5ee797a972d121475f35cd2658624bf862c8dcca8b564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2506 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x134 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA8C62E76 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x428 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x4BC JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x32E JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x3A6 JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xFC JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0x609D3334 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x29E JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17D70F7C EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x19E JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D2 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x159 SWAP2 SWAP1 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x195 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A6 PUSH2 0x577 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x5C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C9 SWAP2 SWAP1 PUSH2 0x1507 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH2 0x973 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x272 PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x288 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x167C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B2 PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DC PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x325 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x354 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34F SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x390 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3BA PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C7 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD19 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x426 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x421 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x433 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x44E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x449 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x18F4 JUMP JUMPDEST PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4BA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xF90 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DD SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xFB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0xFD2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x580 PUSH2 0x104B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5F6 PUSH2 0x1055 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x628 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x64E JUMPI PUSH2 0x64D PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x69C JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71B SWAP3 SWAP2 SWAP1 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x736 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x75A SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD DUP2 LT ISZERO PUSH2 0x7B0 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x81C JUMPI PUSH2 0x81B PUSH2 0x1695 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84A SWAP2 SWAP1 PUSH2 0x1E90 JUMP JUMPDEST POP PUSH2 0x854 CALLER PUSH2 0x107E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x88B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x8A2 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x8C2 JUMPI PUSH2 0x8C1 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x939 SWAP2 SWAP1 PUSH2 0x2003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x95B SWAP2 SWAP1 PUSH2 0x20D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH2 0x9B9 SWAP1 PUSH2 0x1CCC 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 0x9E5 SWAP1 PUSH2 0x1CCC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA30 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA07 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA30 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA13 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0xA49 PUSH0 PUSH2 0x118B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAC PUSH2 0x1154 JUMP JUMPDEST PUSH0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xABF JUMPI PUSH2 0xABE PUSH2 0x1695 JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xAE1 JUMPI PUSH2 0xAE0 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xCED JUMPI PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAF6 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xB04 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B SWAP1 PUSH2 0x21D5 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC13 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCDB SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xCF1 JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD2A SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xD38 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1154 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD6F JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD7C DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xD88 PUSH2 0x1154 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD98 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xDB3 SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD DUP2 GT ISZERO PUSH2 0xE1D JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x23F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE14 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xE2E SWAP2 SWAP1 PUSH2 0x2445 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA0 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2478 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF4B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF98 PUSH2 0x1154 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xFAD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xFB6 DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1044 JUMPI POP PUSH2 0x1043 DUP3 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1086 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x10FE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x10C0 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1151 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1189 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1193 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x11F8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x124E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1324 JUMPI POP PUSH2 0x1323 DUP3 PUSH2 0x132F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13DD DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP2 EQ PUSH2 0x13E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13F8 DUP2 PUSH2 0x13D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1412 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1420 DUP5 DUP3 DUP6 ADD PUSH2 0x13EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x143D DUP2 PUSH2 0x1429 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1456 PUSH0 DUP4 ADD DUP5 PUSH2 0x1434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1487 PUSH0 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14CF PUSH2 0x14CA PUSH2 0x14C5 DUP5 PUSH2 0x148D JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14E0 DUP3 PUSH2 0x14B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14F1 DUP3 PUSH2 0x14D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1501 DUP2 PUSH2 0x14E7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x151A PUSH0 DUP4 ADD DUP5 PUSH2 0x14F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1541 JUMPI PUSH2 0x1540 PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x155E JUMPI PUSH2 0x155D PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x157A JUMPI PUSH2 0x1579 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1597 JUMPI PUSH2 0x1596 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15B4 JUMPI PUSH2 0x15B3 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x15C0 DUP6 DUP3 DUP7 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x160E DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1618 DUP2 DUP6 PUSH2 0x15D6 JUMP JUMPDEST SWAP4 POP PUSH2 0x1628 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1631 DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1654 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1666 DUP3 PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1676 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168F PUSH0 DUP4 ADD DUP5 PUSH2 0x166D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x16D3 JUMPI PUSH2 0x16D2 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x16E3 DUP3 PUSH2 0x16C2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x16F2 DUP3 PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1702 DUP2 PUSH2 0x16E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x171B PUSH0 DUP4 ADD DUP5 PUSH2 0x16F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x172A DUP2 PUSH2 0x165C JUMP JUMPDEST DUP2 EQ PUSH2 0x1734 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1745 DUP2 PUSH2 0x1721 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1760 JUMPI PUSH2 0x175F PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH2 0x177C PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1799 JUMPI PUSH2 0x1798 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x17BC JUMPI PUSH2 0x17BB PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x17C9 DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x17DA DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17FB JUMPI PUSH2 0x17FA PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1807 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x182A JUMPI PUSH2 0x1829 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1836 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1859 JUMPI PUSH2 0x1858 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1865 DUP12 DUP3 DUP13 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x1880 DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1899 PUSH0 DUP4 ADD DUP5 PUSH2 0x1877 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18B4 JUMPI PUSH2 0x18B3 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18C1 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18D3 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP2 EQ PUSH2 0x18DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18EE DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x190E JUMPI PUSH2 0x190D PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x191B DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x192C DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x193D DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x194E DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x196F JUMPI PUSH2 0x196E PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x197B DUP10 DUP3 DUP11 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x19C4 DUP3 PUSH2 0x15F4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x19E3 JUMPI PUSH2 0x19E2 PUSH2 0x198E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19F5 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A01 DUP3 DUP3 PUSH2 0x19BB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1A14 DUP3 PUSH2 0x165C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A24 DUP2 PUSH2 0x1A0A JUMP JUMPDEST DUP2 EQ PUSH2 0x1A2E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A3F DUP2 PUSH2 0x1A1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1A51 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A62 DUP2 PUSH2 0x1A45 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1A8F DUP3 PUSH2 0x15F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ABC PUSH2 0x1AB7 DUP5 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1AD8 JUMPI PUSH2 0x1AD7 PUSH2 0x1A68 JUMP JUMPDEST JUMPDEST PUSH2 0x1AE3 DUP5 DUP3 DUP6 PUSH2 0x1A9C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1AFF JUMPI PUSH2 0x1AFE PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B0F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1AAA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B2D JUMPI PUSH2 0x1B2C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x1B37 PUSH1 0xA0 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1B46 DUP5 DUP3 DUP6 ADD PUSH2 0x1A31 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1B59 DUP5 DUP3 DUP6 ADD PUSH2 0x1A54 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1B6D DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1B81 DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA5 JUMPI PUSH2 0x1BA4 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x1BB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BD2 JUMPI PUSH2 0x1BD1 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BEF JUMPI PUSH2 0x1BEE PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1BFB DUP5 DUP3 DUP6 ADD PUSH2 0x1B18 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C17 PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C39 DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C54 JUMPI PUSH2 0x1C53 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C61 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1C7D PUSH0 DUP4 ADD DUP7 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x1C97 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1CE3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1CF6 JUMPI PUSH2 0x1CF5 PUSH2 0x1C9F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1D58 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1D1D JUMP JUMPDEST PUSH2 0x1D62 DUP7 DUP4 PUSH2 0x1D1D 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 PUSH0 PUSH2 0x1D94 PUSH2 0x1D8F PUSH2 0x1D8A DUP5 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DAD DUP4 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x1DC1 PUSH2 0x1DB9 DUP3 PUSH2 0x1D9B JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1D29 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1DD5 PUSH2 0x1DC9 JUMP JUMPDEST PUSH2 0x1DE0 DUP2 DUP5 DUP5 PUSH2 0x1DA4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E03 JUMPI PUSH2 0x1DF8 PUSH0 DUP3 PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DE6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1E48 JUMPI PUSH2 0x1E19 DUP2 PUSH2 0x1CFC JUMP JUMPDEST PUSH2 0x1E22 DUP5 PUSH2 0x1D0E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1E31 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1E45 PUSH2 0x1E3D DUP6 PUSH2 0x1D0E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1DE5 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E68 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1E4D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E80 DUP4 DUP4 PUSH2 0x1E59 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E99 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EB2 JUMPI PUSH2 0x1EB1 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1EBC DUP3 SLOAD PUSH2 0x1CCC JUMP JUMPDEST PUSH2 0x1EC7 DUP3 DUP3 DUP6 PUSH2 0x1E07 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1EF8 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1EE6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1EF0 DUP6 DUP3 PUSH2 0x1E75 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1F57 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1F06 DUP7 PUSH2 0x1CFC JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1F2D 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 0x1F08 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1F4A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1F46 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1E59 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 0x1F68 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F88 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1F92 DUP2 DUP6 PUSH2 0x1F6E JUMP JUMPDEST SWAP4 POP PUSH2 0x1FA2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1FAB DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1FCB PUSH0 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1FDE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1FF6 DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x201B DUP2 DUP5 PUSH2 0x1FB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2034 JUMPI PUSH2 0x2033 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x2044 DUP3 PUSH2 0x2023 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2053 DUP3 PUSH2 0x2037 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2063 DUP2 PUSH2 0x2049 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2072 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x208D PUSH0 DUP7 ADD DUP3 PUSH2 0x205A JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x20A0 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x20B3 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x20CB DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20F0 DUP2 DUP5 PUSH2 0x2078 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x2117 PUSH1 0x40 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2126 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2149 JUMPI PUSH2 0x2148 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x2155 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2176 JUMPI PUSH2 0x2175 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2193 JUMPI PUSH2 0x2192 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x219F DUP5 DUP3 DUP6 ADD PUSH2 0x20F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x21DF DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x223F PUSH2 0x223A PUSH2 0x2235 DUP5 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2225 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2268 PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2275 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2282 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x228F PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2246 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x22A1 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C3 DUP3 PUSH2 0x22AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22D4 DUP3 PUSH2 0x22B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EC PUSH2 0x22E7 DUP3 PUSH2 0x14E7 JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2303 PUSH2 0x22FE DUP3 PUSH2 0x165C JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2323 PUSH2 0x231E DUP3 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x2309 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x233D DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x2347 DUP2 DUP6 PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP PUSH2 0x2357 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x236E DUP3 DUP9 PUSH2 0x22DB JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x237E DUP3 DUP8 PUSH2 0x22F2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x238E DUP3 DUP7 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x239E DUP3 DUP6 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x23AE DUP3 DUP5 PUSH2 0x2333 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x23D2 PUSH0 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x23EA DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x240F DUP2 DUP5 PUSH2 0x23BD JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x242A PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x243C DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x244F DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH2 0x245A DUP4 PUSH2 0x145C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2472 JUMPI PUSH2 0x2471 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x248B PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2498 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x24A5 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x24B2 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x24C4 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xB1FE59A979B1152938E5EE797A972D121475F35CD2658624BF862C DUP14 0xCC 0xA8 0xB5 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"603:6806:42:-:0;;;1913:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;1937:22:42;:20;;;:22;;:::i;:::-;603:6806;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;603:6806:42:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":4436,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":4907,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":4181,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":4222,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_16554":{"entryPoint":4689,"id":16554,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4171,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":4491,"id":6316,"parameterSlots":1,"returnSlots":0},"@asset_16144":{"entryPoint":1480,"id":16144,"parameterSlots":0,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":2419,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_16352":{"entryPoint":2723,"id":16352,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":3319,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":3348,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3393,"id":6396,"parameterSlots":1,"returnSlots":0},"@extraData_16157":{"entryPoint":2476,"id":16157,"parameterSlots":0,"returnSlots":0},"@initialize_16268":{"entryPoint":1517,"id":16268,"parameterSlots":2,"returnSlots":0},"@isClaimable_16512":{"entryPoint":3353,"id":16512,"parameterSlots":2,"returnSlots":1},"@limit_16151":{"entryPoint":2675,"id":16151,"parameterSlots":0,"returnSlots":0},"@onERC1155BatchReceived_16600":{"entryPoint":2700,"id":16600,"parameterSlots":8,"returnSlots":1},"@onERC1155Received_16576":{"entryPoint":3963,"id":16576,"parameterSlots":6,"returnSlots":1},"@owner_6404":{"entryPoint":2635,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4025,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_16487":{"entryPoint":2192,"id":16487,"parameterSlots":2,"returnSlots":1},"@reclaim_16436":{"entryPoint":3455,"id":16436,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":2616,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1399,"id":6376,"parameterSlots":0,"returnSlots":0},"@strategy_16148":{"entryPoint":2681,"id":16148,"parameterSlots":0,"returnSlots":0},"@supportsInterface_16536":{"entryPoint":1272,"id":16536,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17259":{"entryPoint":4050,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":4786,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":4911,"id":2844,"parameterSlots":1,"returnSlots":1},"@tokenId_16154":{"entryPoint":1393,"id":16154,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":3984,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6826,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5943,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":5963,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes4":{"entryPoint":5098,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":5420,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6891,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IERC1155_$1190":{"entryPoint":6705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_Strategy_$16126":{"entryPoint":6740,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8440,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$16140_memory_ptr":{"entryPoint":6936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6368,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":7211,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6303,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":6048,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr":{"entryPoint":6388,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_bytes4":{"entryPoint":5118,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":5505,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8545,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$16140_memory_ptr":{"entryPoint":7101,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":7231,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":8297,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5741,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":8946,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5172,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":6263,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":8062,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":5636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":9011,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack":{"entryPoint":5368,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":8923,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":8282,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack":{"entryPoint":5881,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack":{"entryPoint":8774,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack":{"entryPoint":9149,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack":{"entryPoint":8118,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack":{"entryPoint":8312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":8031,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5221,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":8978,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_contract$_IERC1155_$1190_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9059,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5756,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_rational_1_by_1_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8789,"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":9336,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9239,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":7172,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7274,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5187,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":6278,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5692,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC1155_$1190__to_t_address__fromStack_reversed":{"entryPoint":5383,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_Strategy_$16126__to_t_uint8__fromStack_reversed":{"entryPoint":5896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed":{"entryPoint":9207,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr__to_t_struct$_ERC1155Payload_$13494_memory_ptr__fromStack_reversed":{"entryPoint":8195,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed":{"entryPoint":8408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5236,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6636,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5016,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6764,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":7420,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":5580,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":8046,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":5590,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":9001,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":9285,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":7687,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":5724,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5161,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5033,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IERC1155_$1190":{"entryPoint":6666,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$13471":{"entryPoint":8247,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_Strategy_$16126":{"entryPoint":5846,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":8732,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5261,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5212,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":7653,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_IERC1155_$1190_to_t_address":{"entryPoint":5351,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":8265,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_Strategy_$16126_to_t_uint8":{"entryPoint":5864,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint256":{"entryPoint":8741,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":5334,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":5301,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":7546,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":7824,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6812,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5606,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":7438,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":7372,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":7797,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":6587,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":5292,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":8661,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":8906,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":8889,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":8969,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":7769,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":8616,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":5781,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":7327,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6542,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":7579,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":5412,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":5408,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":6538,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":6662,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":5416,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6760,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5029,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5025,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":5620,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":8877,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":7453,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":7757,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":7629,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":7465,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":7588,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_AssetType_$13471":{"entryPoint":8227,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_Strategy_$16126":{"entryPoint":5826,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5921,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5076,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IERC1155_$1190":{"entryPoint":6683,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_Strategy_$16126":{"entryPoint":6725,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6346,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":7625,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:34434:53","nodeType":"YulBlock","src":"0:34434:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"1998:81:53","nodeType":"YulBlock","src":"1998:81:53","statements":[{"nativeSrc":"2008:65:53","nodeType":"YulAssignment","src":"2008:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulIdentifier","src":"2023:5:53"},{"kind":"number","nativeSrc":"2030:42:53","nodeType":"YulLiteral","src":"2030:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2019:3:53","nodeType":"YulIdentifier","src":"2019:3:53"},"nativeSrc":"2019:54:53","nodeType":"YulFunctionCall","src":"2019:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2008:7:53","nodeType":"YulIdentifier","src":"2008:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1953:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1980:5:53","nodeType":"YulTypedName","src":"1980:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1990:7:53","nodeType":"YulTypedName","src":"1990:7:53","type":""}],"src":"1953:126:53"},{"body":{"nativeSrc":"2117:28:53","nodeType":"YulBlock","src":"2117:28:53","statements":[{"nativeSrc":"2127:12:53","nodeType":"YulAssignment","src":"2127:12:53","value":{"name":"value","nativeSrc":"2134:5:53","nodeType":"YulIdentifier","src":"2134:5:53"},"variableNames":[{"name":"ret","nativeSrc":"2127:3:53","nodeType":"YulIdentifier","src":"2127:3:53"}]}]},"name":"identity","nativeSrc":"2085:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:53","nodeType":"YulTypedName","src":"2103:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2113:3:53","nodeType":"YulTypedName","src":"2113:3:53","type":""}],"src":"2085:60:53"},{"body":{"nativeSrc":"2211:82:53","nodeType":"YulBlock","src":"2211:82:53","statements":[{"nativeSrc":"2221:66:53","nodeType":"YulAssignment","src":"2221:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2279:5:53","nodeType":"YulIdentifier","src":"2279:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2261:17:53","nodeType":"YulIdentifier","src":"2261:17:53"},"nativeSrc":"2261:24:53","nodeType":"YulFunctionCall","src":"2261:24:53"}],"functionName":{"name":"identity","nativeSrc":"2252:8:53","nodeType":"YulIdentifier","src":"2252:8:53"},"nativeSrc":"2252:34:53","nodeType":"YulFunctionCall","src":"2252:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2234:17:53","nodeType":"YulIdentifier","src":"2234:17:53"},"nativeSrc":"2234:53:53","nodeType":"YulFunctionCall","src":"2234:53:53"},"variableNames":[{"name":"converted","nativeSrc":"2221:9:53","nodeType":"YulIdentifier","src":"2221:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2151:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2191:5:53","nodeType":"YulTypedName","src":"2191:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2201:9:53","nodeType":"YulTypedName","src":"2201:9:53","type":""}],"src":"2151:142:53"},{"body":{"nativeSrc":"2359:66:53","nodeType":"YulBlock","src":"2359:66:53","statements":[{"nativeSrc":"2369:50:53","nodeType":"YulAssignment","src":"2369:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2413:5:53","nodeType":"YulIdentifier","src":"2413:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2382:30:53","nodeType":"YulIdentifier","src":"2382:30:53"},"nativeSrc":"2382:37:53","nodeType":"YulFunctionCall","src":"2382:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2369:9:53","nodeType":"YulIdentifier","src":"2369:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2299:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2339:5:53","nodeType":"YulTypedName","src":"2339:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2349:9:53","nodeType":"YulTypedName","src":"2349:9:53","type":""}],"src":"2299:126:53"},{"body":{"nativeSrc":"2508:66:53","nodeType":"YulBlock","src":"2508:66:53","statements":[{"nativeSrc":"2518:50:53","nodeType":"YulAssignment","src":"2518:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2562:5:53","nodeType":"YulIdentifier","src":"2562:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2531:30:53","nodeType":"YulIdentifier","src":"2531:30:53"},"nativeSrc":"2531:37:53","nodeType":"YulFunctionCall","src":"2531:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2518:9:53","nodeType":"YulIdentifier","src":"2518:9:53"}]}]},"name":"convert_t_contract$_IERC1155_$1190_to_t_address","nativeSrc":"2431:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2488:5:53","nodeType":"YulTypedName","src":"2488:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2498:9:53","nodeType":"YulTypedName","src":"2498:9:53","type":""}],"src":"2431:143:53"},{"body":{"nativeSrc":"2662:83:53","nodeType":"YulBlock","src":"2662:83:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2679:3:53","nodeType":"YulIdentifier","src":"2679:3:53"},{"arguments":[{"name":"value","nativeSrc":"2732:5:53","nodeType":"YulIdentifier","src":"2732:5:53"}],"functionName":{"name":"convert_t_contract$_IERC1155_$1190_to_t_address","nativeSrc":"2684:47:53","nodeType":"YulIdentifier","src":"2684:47:53"},"nativeSrc":"2684:54:53","nodeType":"YulFunctionCall","src":"2684:54:53"}],"functionName":{"name":"mstore","nativeSrc":"2672:6:53","nodeType":"YulIdentifier","src":"2672:6:53"},"nativeSrc":"2672:67:53","nodeType":"YulFunctionCall","src":"2672:67:53"},"nativeSrc":"2672:67:53","nodeType":"YulExpressionStatement","src":"2672:67:53"}]},"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack","nativeSrc":"2580:165:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2650:5:53","nodeType":"YulTypedName","src":"2650:5:53","type":""},{"name":"pos","nativeSrc":"2657:3:53","nodeType":"YulTypedName","src":"2657:3:53","type":""}],"src":"2580:165:53"},{"body":{"nativeSrc":"2866:141:53","nodeType":"YulBlock","src":"2866:141:53","statements":[{"nativeSrc":"2876:26:53","nodeType":"YulAssignment","src":"2876:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2888:9:53","nodeType":"YulIdentifier","src":"2888:9:53"},{"kind":"number","nativeSrc":"2899:2:53","nodeType":"YulLiteral","src":"2899:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2884:3:53","nodeType":"YulIdentifier","src":"2884:3:53"},"nativeSrc":"2884:18:53","nodeType":"YulFunctionCall","src":"2884:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2876:4:53","nodeType":"YulIdentifier","src":"2876:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2973:6:53","nodeType":"YulIdentifier","src":"2973:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2986:9:53","nodeType":"YulIdentifier","src":"2986:9:53"},{"kind":"number","nativeSrc":"2997:1:53","nodeType":"YulLiteral","src":"2997:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2982:3:53","nodeType":"YulIdentifier","src":"2982:3:53"},"nativeSrc":"2982:17:53","nodeType":"YulFunctionCall","src":"2982:17:53"}],"functionName":{"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack","nativeSrc":"2912:60:53","nodeType":"YulIdentifier","src":"2912:60:53"},"nativeSrc":"2912:88:53","nodeType":"YulFunctionCall","src":"2912:88:53"},"nativeSrc":"2912:88:53","nodeType":"YulExpressionStatement","src":"2912:88:53"}]},"name":"abi_encode_tuple_t_contract$_IERC1155_$1190__to_t_address__fromStack_reversed","nativeSrc":"2751:256:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2838:9:53","nodeType":"YulTypedName","src":"2838:9:53","type":""},{"name":"value0","nativeSrc":"2850:6:53","nodeType":"YulTypedName","src":"2850:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2861:4:53","nodeType":"YulTypedName","src":"2861:4:53","type":""}],"src":"2751:256:53"},{"body":{"nativeSrc":"3102:28:53","nodeType":"YulBlock","src":"3102:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3119:1:53","nodeType":"YulLiteral","src":"3119:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3122:1:53","nodeType":"YulLiteral","src":"3122:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3112:6:53","nodeType":"YulIdentifier","src":"3112:6:53"},"nativeSrc":"3112:12:53","nodeType":"YulFunctionCall","src":"3112:12:53"},"nativeSrc":"3112:12:53","nodeType":"YulExpressionStatement","src":"3112:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3013:117:53","nodeType":"YulFunctionDefinition","src":"3013:117:53"},{"body":{"nativeSrc":"3225:28:53","nodeType":"YulBlock","src":"3225:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3242:1:53","nodeType":"YulLiteral","src":"3242:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3245:1:53","nodeType":"YulLiteral","src":"3245:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3235:6:53","nodeType":"YulIdentifier","src":"3235:6:53"},"nativeSrc":"3235:12:53","nodeType":"YulFunctionCall","src":"3235:12:53"},"nativeSrc":"3235:12:53","nodeType":"YulExpressionStatement","src":"3235:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3136:117:53","nodeType":"YulFunctionDefinition","src":"3136:117:53"},{"body":{"nativeSrc":"3348:28:53","nodeType":"YulBlock","src":"3348:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3365:1:53","nodeType":"YulLiteral","src":"3365:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3368:1:53","nodeType":"YulLiteral","src":"3368:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"},"nativeSrc":"3358:12:53","nodeType":"YulFunctionCall","src":"3358:12:53"},"nativeSrc":"3358:12:53","nodeType":"YulExpressionStatement","src":"3358:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3259:117:53","nodeType":"YulFunctionDefinition","src":"3259:117:53"},{"body":{"nativeSrc":"3469:478:53","nodeType":"YulBlock","src":"3469:478:53","statements":[{"body":{"nativeSrc":"3518:83:53","nodeType":"YulBlock","src":"3518:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3520:77:53","nodeType":"YulIdentifier","src":"3520:77:53"},"nativeSrc":"3520:79:53","nodeType":"YulFunctionCall","src":"3520:79:53"},"nativeSrc":"3520:79:53","nodeType":"YulExpressionStatement","src":"3520:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3497:6:53","nodeType":"YulIdentifier","src":"3497:6:53"},{"kind":"number","nativeSrc":"3505:4:53","nodeType":"YulLiteral","src":"3505:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3493:3:53","nodeType":"YulIdentifier","src":"3493:3:53"},"nativeSrc":"3493:17:53","nodeType":"YulFunctionCall","src":"3493:17:53"},{"name":"end","nativeSrc":"3512:3:53","nodeType":"YulIdentifier","src":"3512:3:53"}],"functionName":{"name":"slt","nativeSrc":"3489:3:53","nodeType":"YulIdentifier","src":"3489:3:53"},"nativeSrc":"3489:27:53","nodeType":"YulFunctionCall","src":"3489:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3482:6:53","nodeType":"YulIdentifier","src":"3482:6:53"},"nativeSrc":"3482:35:53","nodeType":"YulFunctionCall","src":"3482:35:53"},"nativeSrc":"3479:122:53","nodeType":"YulIf","src":"3479:122:53"},{"nativeSrc":"3610:30:53","nodeType":"YulAssignment","src":"3610:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3633:6:53","nodeType":"YulIdentifier","src":"3633:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3620:12:53","nodeType":"YulIdentifier","src":"3620:12:53"},"nativeSrc":"3620:20:53","nodeType":"YulFunctionCall","src":"3620:20:53"},"variableNames":[{"name":"length","nativeSrc":"3610:6:53","nodeType":"YulIdentifier","src":"3610:6:53"}]},{"body":{"nativeSrc":"3683:83:53","nodeType":"YulBlock","src":"3683:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3685:77:53","nodeType":"YulIdentifier","src":"3685:77:53"},"nativeSrc":"3685:79:53","nodeType":"YulFunctionCall","src":"3685:79:53"},"nativeSrc":"3685:79:53","nodeType":"YulExpressionStatement","src":"3685:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3655:6:53","nodeType":"YulIdentifier","src":"3655:6:53"},{"kind":"number","nativeSrc":"3663:18:53","nodeType":"YulLiteral","src":"3663:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3652:2:53","nodeType":"YulIdentifier","src":"3652:2:53"},"nativeSrc":"3652:30:53","nodeType":"YulFunctionCall","src":"3652:30:53"},"nativeSrc":"3649:117:53","nodeType":"YulIf","src":"3649:117:53"},{"nativeSrc":"3775:29:53","nodeType":"YulAssignment","src":"3775:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3791:6:53","nodeType":"YulIdentifier","src":"3791:6:53"},{"kind":"number","nativeSrc":"3799:4:53","nodeType":"YulLiteral","src":"3799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3787:3:53","nodeType":"YulIdentifier","src":"3787:3:53"},"nativeSrc":"3787:17:53","nodeType":"YulFunctionCall","src":"3787:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3775:8:53","nodeType":"YulIdentifier","src":"3775:8:53"}]},{"body":{"nativeSrc":"3858:83:53","nodeType":"YulBlock","src":"3858:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3860:77:53","nodeType":"YulIdentifier","src":"3860:77:53"},"nativeSrc":"3860:79:53","nodeType":"YulFunctionCall","src":"3860:79:53"},"nativeSrc":"3860:79:53","nodeType":"YulExpressionStatement","src":"3860:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3823:8:53","nodeType":"YulIdentifier","src":"3823:8:53"},{"arguments":[{"name":"length","nativeSrc":"3837:6:53","nodeType":"YulIdentifier","src":"3837:6:53"},{"kind":"number","nativeSrc":"3845:4:53","nodeType":"YulLiteral","src":"3845:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3833:3:53","nodeType":"YulIdentifier","src":"3833:3:53"},"nativeSrc":"3833:17:53","nodeType":"YulFunctionCall","src":"3833:17:53"}],"functionName":{"name":"add","nativeSrc":"3819:3:53","nodeType":"YulIdentifier","src":"3819:3:53"},"nativeSrc":"3819:32:53","nodeType":"YulFunctionCall","src":"3819:32:53"},{"name":"end","nativeSrc":"3853:3:53","nodeType":"YulIdentifier","src":"3853:3:53"}],"functionName":{"name":"gt","nativeSrc":"3816:2:53","nodeType":"YulIdentifier","src":"3816:2:53"},"nativeSrc":"3816:41:53","nodeType":"YulFunctionCall","src":"3816:41:53"},"nativeSrc":"3813:128:53","nodeType":"YulIf","src":"3813:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3395:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3436:6:53","nodeType":"YulTypedName","src":"3436:6:53","type":""},{"name":"end","nativeSrc":"3444:3:53","nodeType":"YulTypedName","src":"3444:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3452:8:53","nodeType":"YulTypedName","src":"3452:8:53","type":""},{"name":"length","nativeSrc":"3462:6:53","nodeType":"YulTypedName","src":"3462:6:53","type":""}],"src":"3395:552:53"},{"body":{"nativeSrc":"4038:442:53","nodeType":"YulBlock","src":"4038:442:53","statements":[{"body":{"nativeSrc":"4084:83:53","nodeType":"YulBlock","src":"4084:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4086:77:53","nodeType":"YulIdentifier","src":"4086:77:53"},"nativeSrc":"4086:79:53","nodeType":"YulFunctionCall","src":"4086:79:53"},"nativeSrc":"4086:79:53","nodeType":"YulExpressionStatement","src":"4086:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4059:7:53","nodeType":"YulIdentifier","src":"4059:7:53"},{"name":"headStart","nativeSrc":"4068:9:53","nodeType":"YulIdentifier","src":"4068:9:53"}],"functionName":{"name":"sub","nativeSrc":"4055:3:53","nodeType":"YulIdentifier","src":"4055:3:53"},"nativeSrc":"4055:23:53","nodeType":"YulFunctionCall","src":"4055:23:53"},{"kind":"number","nativeSrc":"4080:2:53","nodeType":"YulLiteral","src":"4080:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4051:3:53","nodeType":"YulIdentifier","src":"4051:3:53"},"nativeSrc":"4051:32:53","nodeType":"YulFunctionCall","src":"4051:32:53"},"nativeSrc":"4048:119:53","nodeType":"YulIf","src":"4048:119:53"},{"nativeSrc":"4177:296:53","nodeType":"YulBlock","src":"4177:296:53","statements":[{"nativeSrc":"4192:45:53","nodeType":"YulVariableDeclaration","src":"4192:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4223:9:53","nodeType":"YulIdentifier","src":"4223:9:53"},{"kind":"number","nativeSrc":"4234:1:53","nodeType":"YulLiteral","src":"4234:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4219:3:53","nodeType":"YulIdentifier","src":"4219:3:53"},"nativeSrc":"4219:17:53","nodeType":"YulFunctionCall","src":"4219:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4206:12:53","nodeType":"YulIdentifier","src":"4206:12:53"},"nativeSrc":"4206:31:53","nodeType":"YulFunctionCall","src":"4206:31:53"},"variables":[{"name":"offset","nativeSrc":"4196:6:53","nodeType":"YulTypedName","src":"4196:6:53","type":""}]},{"body":{"nativeSrc":"4284:83:53","nodeType":"YulBlock","src":"4284:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4286:77:53","nodeType":"YulIdentifier","src":"4286:77:53"},"nativeSrc":"4286:79:53","nodeType":"YulFunctionCall","src":"4286:79:53"},"nativeSrc":"4286:79:53","nodeType":"YulExpressionStatement","src":"4286:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4256:6:53","nodeType":"YulIdentifier","src":"4256:6:53"},{"kind":"number","nativeSrc":"4264:18:53","nodeType":"YulLiteral","src":"4264:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4253:2:53","nodeType":"YulIdentifier","src":"4253:2:53"},"nativeSrc":"4253:30:53","nodeType":"YulFunctionCall","src":"4253:30:53"},"nativeSrc":"4250:117:53","nodeType":"YulIf","src":"4250:117:53"},{"nativeSrc":"4381:82:53","nodeType":"YulAssignment","src":"4381:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4435:9:53","nodeType":"YulIdentifier","src":"4435:9:53"},{"name":"offset","nativeSrc":"4446:6:53","nodeType":"YulIdentifier","src":"4446:6:53"}],"functionName":{"name":"add","nativeSrc":"4431:3:53","nodeType":"YulIdentifier","src":"4431:3:53"},"nativeSrc":"4431:22:53","nodeType":"YulFunctionCall","src":"4431:22:53"},{"name":"dataEnd","nativeSrc":"4455:7:53","nodeType":"YulIdentifier","src":"4455:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4399:31:53","nodeType":"YulIdentifier","src":"4399:31:53"},"nativeSrc":"4399:64:53","nodeType":"YulFunctionCall","src":"4399:64:53"},"variableNames":[{"name":"value0","nativeSrc":"4381:6:53","nodeType":"YulIdentifier","src":"4381:6:53"},{"name":"value1","nativeSrc":"4389:6:53","nodeType":"YulIdentifier","src":"4389:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3953:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4000:9:53","nodeType":"YulTypedName","src":"4000:9:53","type":""},{"name":"dataEnd","nativeSrc":"4011:7:53","nodeType":"YulTypedName","src":"4011:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4023:6:53","nodeType":"YulTypedName","src":"4023:6:53","type":""},{"name":"value1","nativeSrc":"4031:6:53","nodeType":"YulTypedName","src":"4031:6:53","type":""}],"src":"3953:527:53"},{"body":{"nativeSrc":"4544:40:53","nodeType":"YulBlock","src":"4544:40:53","statements":[{"nativeSrc":"4555:22:53","nodeType":"YulAssignment","src":"4555:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4571:5:53","nodeType":"YulIdentifier","src":"4571:5:53"}],"functionName":{"name":"mload","nativeSrc":"4565:5:53","nodeType":"YulIdentifier","src":"4565:5:53"},"nativeSrc":"4565:12:53","nodeType":"YulFunctionCall","src":"4565:12:53"},"variableNames":[{"name":"length","nativeSrc":"4555:6:53","nodeType":"YulIdentifier","src":"4555:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4486:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4527:5:53","nodeType":"YulTypedName","src":"4527:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4537:6:53","nodeType":"YulTypedName","src":"4537:6:53","type":""}],"src":"4486:98:53"},{"body":{"nativeSrc":"4685:73:53","nodeType":"YulBlock","src":"4685:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4702:3:53","nodeType":"YulIdentifier","src":"4702:3:53"},{"name":"length","nativeSrc":"4707:6:53","nodeType":"YulIdentifier","src":"4707:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4695:6:53","nodeType":"YulIdentifier","src":"4695:6:53"},"nativeSrc":"4695:19:53","nodeType":"YulFunctionCall","src":"4695:19:53"},"nativeSrc":"4695:19:53","nodeType":"YulExpressionStatement","src":"4695:19:53"},{"nativeSrc":"4723:29:53","nodeType":"YulAssignment","src":"4723:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4742:3:53","nodeType":"YulIdentifier","src":"4742:3:53"},{"kind":"number","nativeSrc":"4747:4:53","nodeType":"YulLiteral","src":"4747:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4738:3:53","nodeType":"YulIdentifier","src":"4738:3:53"},"nativeSrc":"4738:14:53","nodeType":"YulFunctionCall","src":"4738:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4723:11:53","nodeType":"YulIdentifier","src":"4723:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4590:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4657:3:53","nodeType":"YulTypedName","src":"4657:3:53","type":""},{"name":"length","nativeSrc":"4662:6:53","nodeType":"YulTypedName","src":"4662:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4673:11:53","nodeType":"YulTypedName","src":"4673:11:53","type":""}],"src":"4590:168:53"},{"body":{"nativeSrc":"4826:77:53","nodeType":"YulBlock","src":"4826:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4843:3:53","nodeType":"YulIdentifier","src":"4843:3:53"},{"name":"src","nativeSrc":"4848:3:53","nodeType":"YulIdentifier","src":"4848:3:53"},{"name":"length","nativeSrc":"4853:6:53","nodeType":"YulIdentifier","src":"4853:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4837:5:53","nodeType":"YulIdentifier","src":"4837:5:53"},"nativeSrc":"4837:23:53","nodeType":"YulFunctionCall","src":"4837:23:53"},"nativeSrc":"4837:23:53","nodeType":"YulExpressionStatement","src":"4837:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4880:3:53","nodeType":"YulIdentifier","src":"4880:3:53"},{"name":"length","nativeSrc":"4885:6:53","nodeType":"YulIdentifier","src":"4885:6:53"}],"functionName":{"name":"add","nativeSrc":"4876:3:53","nodeType":"YulIdentifier","src":"4876:3:53"},"nativeSrc":"4876:16:53","nodeType":"YulFunctionCall","src":"4876:16:53"},{"kind":"number","nativeSrc":"4894:1:53","nodeType":"YulLiteral","src":"4894:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4869:6:53","nodeType":"YulIdentifier","src":"4869:6:53"},"nativeSrc":"4869:27:53","nodeType":"YulFunctionCall","src":"4869:27:53"},"nativeSrc":"4869:27:53","nodeType":"YulExpressionStatement","src":"4869:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4764:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4808:3:53","nodeType":"YulTypedName","src":"4808:3:53","type":""},{"name":"dst","nativeSrc":"4813:3:53","nodeType":"YulTypedName","src":"4813:3:53","type":""},{"name":"length","nativeSrc":"4818:6:53","nodeType":"YulTypedName","src":"4818:6:53","type":""}],"src":"4764:139:53"},{"body":{"nativeSrc":"4957:54:53","nodeType":"YulBlock","src":"4957:54:53","statements":[{"nativeSrc":"4967:38:53","nodeType":"YulAssignment","src":"4967:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4985:5:53","nodeType":"YulIdentifier","src":"4985:5:53"},{"kind":"number","nativeSrc":"4992:2:53","nodeType":"YulLiteral","src":"4992:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4981:3:53","nodeType":"YulIdentifier","src":"4981:3:53"},"nativeSrc":"4981:14:53","nodeType":"YulFunctionCall","src":"4981:14:53"},{"arguments":[{"kind":"number","nativeSrc":"5001:2:53","nodeType":"YulLiteral","src":"5001:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4997:3:53","nodeType":"YulIdentifier","src":"4997:3:53"},"nativeSrc":"4997:7:53","nodeType":"YulFunctionCall","src":"4997:7:53"}],"functionName":{"name":"and","nativeSrc":"4977:3:53","nodeType":"YulIdentifier","src":"4977:3:53"},"nativeSrc":"4977:28:53","nodeType":"YulFunctionCall","src":"4977:28:53"},"variableNames":[{"name":"result","nativeSrc":"4967:6:53","nodeType":"YulIdentifier","src":"4967:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4909:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4940:5:53","nodeType":"YulTypedName","src":"4940:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4950:6:53","nodeType":"YulTypedName","src":"4950:6:53","type":""}],"src":"4909:102:53"},{"body":{"nativeSrc":"5107:283:53","nodeType":"YulBlock","src":"5107:283:53","statements":[{"nativeSrc":"5117:52:53","nodeType":"YulVariableDeclaration","src":"5117:52:53","value":{"arguments":[{"name":"value","nativeSrc":"5163:5:53","nodeType":"YulIdentifier","src":"5163:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5131:31:53","nodeType":"YulIdentifier","src":"5131:31:53"},"nativeSrc":"5131:38:53","nodeType":"YulFunctionCall","src":"5131:38:53"},"variables":[{"name":"length","nativeSrc":"5121:6:53","nodeType":"YulTypedName","src":"5121:6:53","type":""}]},{"nativeSrc":"5178:77:53","nodeType":"YulAssignment","src":"5178:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"5243:3:53","nodeType":"YulIdentifier","src":"5243:3:53"},{"name":"length","nativeSrc":"5248:6:53","nodeType":"YulIdentifier","src":"5248:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"5185:57:53","nodeType":"YulIdentifier","src":"5185:57:53"},"nativeSrc":"5185:70:53","nodeType":"YulFunctionCall","src":"5185:70:53"},"variableNames":[{"name":"pos","nativeSrc":"5178:3:53","nodeType":"YulIdentifier","src":"5178:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5303:5:53","nodeType":"YulIdentifier","src":"5303:5:53"},{"kind":"number","nativeSrc":"5310:4:53","nodeType":"YulLiteral","src":"5310:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5299:3:53","nodeType":"YulIdentifier","src":"5299:3:53"},"nativeSrc":"5299:16:53","nodeType":"YulFunctionCall","src":"5299:16:53"},{"name":"pos","nativeSrc":"5317:3:53","nodeType":"YulIdentifier","src":"5317:3:53"},{"name":"length","nativeSrc":"5322:6:53","nodeType":"YulIdentifier","src":"5322:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5264:34:53","nodeType":"YulIdentifier","src":"5264:34:53"},"nativeSrc":"5264:65:53","nodeType":"YulFunctionCall","src":"5264:65:53"},"nativeSrc":"5264:65:53","nodeType":"YulExpressionStatement","src":"5264:65:53"},{"nativeSrc":"5338:46:53","nodeType":"YulAssignment","src":"5338:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"5349:3:53","nodeType":"YulIdentifier","src":"5349:3:53"},{"arguments":[{"name":"length","nativeSrc":"5376:6:53","nodeType":"YulIdentifier","src":"5376:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5354:21:53","nodeType":"YulIdentifier","src":"5354:21:53"},"nativeSrc":"5354:29:53","nodeType":"YulFunctionCall","src":"5354:29:53"}],"functionName":{"name":"add","nativeSrc":"5345:3:53","nodeType":"YulIdentifier","src":"5345:3:53"},"nativeSrc":"5345:39:53","nodeType":"YulFunctionCall","src":"5345:39:53"},"variableNames":[{"name":"end","nativeSrc":"5338:3:53","nodeType":"YulIdentifier","src":"5338:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5017:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5088:5:53","nodeType":"YulTypedName","src":"5088:5:53","type":""},{"name":"pos","nativeSrc":"5095:3:53","nodeType":"YulTypedName","src":"5095:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5103:3:53","nodeType":"YulTypedName","src":"5103:3:53","type":""}],"src":"5017:373:53"},{"body":{"nativeSrc":"5512:193:53","nodeType":"YulBlock","src":"5512:193:53","statements":[{"nativeSrc":"5522:26:53","nodeType":"YulAssignment","src":"5522:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5534:9:53","nodeType":"YulIdentifier","src":"5534:9:53"},{"kind":"number","nativeSrc":"5545:2:53","nodeType":"YulLiteral","src":"5545:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5530:3:53","nodeType":"YulIdentifier","src":"5530:3:53"},"nativeSrc":"5530:18:53","nodeType":"YulFunctionCall","src":"5530:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5522:4:53","nodeType":"YulIdentifier","src":"5522:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5569:9:53","nodeType":"YulIdentifier","src":"5569:9:53"},{"kind":"number","nativeSrc":"5580:1:53","nodeType":"YulLiteral","src":"5580:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5565:3:53","nodeType":"YulIdentifier","src":"5565:3:53"},"nativeSrc":"5565:17:53","nodeType":"YulFunctionCall","src":"5565:17:53"},{"arguments":[{"name":"tail","nativeSrc":"5588:4:53","nodeType":"YulIdentifier","src":"5588:4:53"},{"name":"headStart","nativeSrc":"5594:9:53","nodeType":"YulIdentifier","src":"5594:9:53"}],"functionName":{"name":"sub","nativeSrc":"5584:3:53","nodeType":"YulIdentifier","src":"5584:3:53"},"nativeSrc":"5584:20:53","nodeType":"YulFunctionCall","src":"5584:20:53"}],"functionName":{"name":"mstore","nativeSrc":"5558:6:53","nodeType":"YulIdentifier","src":"5558:6:53"},"nativeSrc":"5558:47:53","nodeType":"YulFunctionCall","src":"5558:47:53"},"nativeSrc":"5558:47:53","nodeType":"YulExpressionStatement","src":"5558:47:53"},{"nativeSrc":"5614:84:53","nodeType":"YulAssignment","src":"5614:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"5684:6:53","nodeType":"YulIdentifier","src":"5684:6:53"},{"name":"tail","nativeSrc":"5693:4:53","nodeType":"YulIdentifier","src":"5693:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5622:61:53","nodeType":"YulIdentifier","src":"5622:61:53"},"nativeSrc":"5622:76:53","nodeType":"YulFunctionCall","src":"5622:76:53"},"variableNames":[{"name":"tail","nativeSrc":"5614:4:53","nodeType":"YulIdentifier","src":"5614:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5396:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5484:9:53","nodeType":"YulTypedName","src":"5484:9:53","type":""},{"name":"value0","nativeSrc":"5496:6:53","nodeType":"YulTypedName","src":"5496:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5507:4:53","nodeType":"YulTypedName","src":"5507:4:53","type":""}],"src":"5396:309:53"},{"body":{"nativeSrc":"5756:51:53","nodeType":"YulBlock","src":"5756:51:53","statements":[{"nativeSrc":"5766:35:53","nodeType":"YulAssignment","src":"5766:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5795:5:53","nodeType":"YulIdentifier","src":"5795:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5777:17:53","nodeType":"YulIdentifier","src":"5777:17:53"},"nativeSrc":"5777:24:53","nodeType":"YulFunctionCall","src":"5777:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5766:7:53","nodeType":"YulIdentifier","src":"5766:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5711:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5738:5:53","nodeType":"YulTypedName","src":"5738:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5748:7:53","nodeType":"YulTypedName","src":"5748:7:53","type":""}],"src":"5711:96:53"},{"body":{"nativeSrc":"5878:53:53","nodeType":"YulBlock","src":"5878:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5895:3:53","nodeType":"YulIdentifier","src":"5895:3:53"},{"arguments":[{"name":"value","nativeSrc":"5918:5:53","nodeType":"YulIdentifier","src":"5918:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5900:17:53","nodeType":"YulIdentifier","src":"5900:17:53"},"nativeSrc":"5900:24:53","nodeType":"YulFunctionCall","src":"5900:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5888:6:53","nodeType":"YulIdentifier","src":"5888:6:53"},"nativeSrc":"5888:37:53","nodeType":"YulFunctionCall","src":"5888:37:53"},"nativeSrc":"5888:37:53","nodeType":"YulExpressionStatement","src":"5888:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5813:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5866:5:53","nodeType":"YulTypedName","src":"5866:5:53","type":""},{"name":"pos","nativeSrc":"5873:3:53","nodeType":"YulTypedName","src":"5873:3:53","type":""}],"src":"5813:118:53"},{"body":{"nativeSrc":"6035:124:53","nodeType":"YulBlock","src":"6035:124:53","statements":[{"nativeSrc":"6045:26:53","nodeType":"YulAssignment","src":"6045:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6057:9:53","nodeType":"YulIdentifier","src":"6057:9:53"},{"kind":"number","nativeSrc":"6068:2:53","nodeType":"YulLiteral","src":"6068:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6053:3:53","nodeType":"YulIdentifier","src":"6053:3:53"},"nativeSrc":"6053:18:53","nodeType":"YulFunctionCall","src":"6053:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6045:4:53","nodeType":"YulIdentifier","src":"6045:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6125:6:53","nodeType":"YulIdentifier","src":"6125:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6138:9:53","nodeType":"YulIdentifier","src":"6138:9:53"},{"kind":"number","nativeSrc":"6149:1:53","nodeType":"YulLiteral","src":"6149:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6134:3:53","nodeType":"YulIdentifier","src":"6134:3:53"},"nativeSrc":"6134:17:53","nodeType":"YulFunctionCall","src":"6134:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6081:43:53","nodeType":"YulIdentifier","src":"6081:43:53"},"nativeSrc":"6081:71:53","nodeType":"YulFunctionCall","src":"6081:71:53"},"nativeSrc":"6081:71:53","nodeType":"YulExpressionStatement","src":"6081:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5937:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6007:9:53","nodeType":"YulTypedName","src":"6007:9:53","type":""},{"name":"value0","nativeSrc":"6019:6:53","nodeType":"YulTypedName","src":"6019:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6030:4:53","nodeType":"YulTypedName","src":"6030:4:53","type":""}],"src":"5937:222:53"},{"body":{"nativeSrc":"6193:152:53","nodeType":"YulBlock","src":"6193:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6210:1:53","nodeType":"YulLiteral","src":"6210:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6213:77:53","nodeType":"YulLiteral","src":"6213:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6203:6:53","nodeType":"YulIdentifier","src":"6203:6:53"},"nativeSrc":"6203:88:53","nodeType":"YulFunctionCall","src":"6203:88:53"},"nativeSrc":"6203:88:53","nodeType":"YulExpressionStatement","src":"6203:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6307:1:53","nodeType":"YulLiteral","src":"6307:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6310:4:53","nodeType":"YulLiteral","src":"6310:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"6300:6:53","nodeType":"YulIdentifier","src":"6300:6:53"},"nativeSrc":"6300:15:53","nodeType":"YulFunctionCall","src":"6300:15:53"},"nativeSrc":"6300:15:53","nodeType":"YulExpressionStatement","src":"6300:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6331:1:53","nodeType":"YulLiteral","src":"6331:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6334:4:53","nodeType":"YulLiteral","src":"6334:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6324:6:53","nodeType":"YulIdentifier","src":"6324:6:53"},"nativeSrc":"6324:15:53","nodeType":"YulFunctionCall","src":"6324:15:53"},"nativeSrc":"6324:15:53","nodeType":"YulExpressionStatement","src":"6324:15:53"}]},"name":"panic_error_0x21","nativeSrc":"6165:180:53","nodeType":"YulFunctionDefinition","src":"6165:180:53"},{"body":{"nativeSrc":"6408:62:53","nodeType":"YulBlock","src":"6408:62:53","statements":[{"body":{"nativeSrc":"6442:22:53","nodeType":"YulBlock","src":"6442:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"6444:16:53","nodeType":"YulIdentifier","src":"6444:16:53"},"nativeSrc":"6444:18:53","nodeType":"YulFunctionCall","src":"6444:18:53"},"nativeSrc":"6444:18:53","nodeType":"YulExpressionStatement","src":"6444:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6431:5:53","nodeType":"YulIdentifier","src":"6431:5:53"},{"kind":"number","nativeSrc":"6438:1:53","nodeType":"YulLiteral","src":"6438:1:53","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"6428:2:53","nodeType":"YulIdentifier","src":"6428:2:53"},"nativeSrc":"6428:12:53","nodeType":"YulFunctionCall","src":"6428:12:53"}],"functionName":{"name":"iszero","nativeSrc":"6421:6:53","nodeType":"YulIdentifier","src":"6421:6:53"},"nativeSrc":"6421:20:53","nodeType":"YulFunctionCall","src":"6421:20:53"},"nativeSrc":"6418:46:53","nodeType":"YulIf","src":"6418:46:53"}]},"name":"validator_assert_t_enum$_Strategy_$16126","nativeSrc":"6351:119:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6401:5:53","nodeType":"YulTypedName","src":"6401:5:53","type":""}],"src":"6351:119:53"},{"body":{"nativeSrc":"6535:80:53","nodeType":"YulBlock","src":"6535:80:53","statements":[{"nativeSrc":"6545:16:53","nodeType":"YulAssignment","src":"6545:16:53","value":{"name":"value","nativeSrc":"6556:5:53","nodeType":"YulIdentifier","src":"6556:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"6545:7:53","nodeType":"YulIdentifier","src":"6545:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6603:5:53","nodeType":"YulIdentifier","src":"6603:5:53"}],"functionName":{"name":"validator_assert_t_enum$_Strategy_$16126","nativeSrc":"6562:40:53","nodeType":"YulIdentifier","src":"6562:40:53"},"nativeSrc":"6562:47:53","nodeType":"YulFunctionCall","src":"6562:47:53"},"nativeSrc":"6562:47:53","nodeType":"YulExpressionStatement","src":"6562:47:53"}]},"name":"cleanup_t_enum$_Strategy_$16126","nativeSrc":"6476:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6517:5:53","nodeType":"YulTypedName","src":"6517:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6527:7:53","nodeType":"YulTypedName","src":"6527:7:53","type":""}],"src":"6476:139:53"},{"body":{"nativeSrc":"6693:67:53","nodeType":"YulBlock","src":"6693:67:53","statements":[{"nativeSrc":"6703:51:53","nodeType":"YulAssignment","src":"6703:51:53","value":{"arguments":[{"name":"value","nativeSrc":"6748:5:53","nodeType":"YulIdentifier","src":"6748:5:53"}],"functionName":{"name":"cleanup_t_enum$_Strategy_$16126","nativeSrc":"6716:31:53","nodeType":"YulIdentifier","src":"6716:31:53"},"nativeSrc":"6716:38:53","nodeType":"YulFunctionCall","src":"6716:38:53"},"variableNames":[{"name":"converted","nativeSrc":"6703:9:53","nodeType":"YulIdentifier","src":"6703:9:53"}]}]},"name":"convert_t_enum$_Strategy_$16126_to_t_uint8","nativeSrc":"6621:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6673:5:53","nodeType":"YulTypedName","src":"6673:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6683:9:53","nodeType":"YulTypedName","src":"6683:9:53","type":""}],"src":"6621:139:53"},{"body":{"nativeSrc":"6843:78:53","nodeType":"YulBlock","src":"6843:78:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6860:3:53","nodeType":"YulIdentifier","src":"6860:3:53"},{"arguments":[{"name":"value","nativeSrc":"6908:5:53","nodeType":"YulIdentifier","src":"6908:5:53"}],"functionName":{"name":"convert_t_enum$_Strategy_$16126_to_t_uint8","nativeSrc":"6865:42:53","nodeType":"YulIdentifier","src":"6865:42:53"},"nativeSrc":"6865:49:53","nodeType":"YulFunctionCall","src":"6865:49:53"}],"functionName":{"name":"mstore","nativeSrc":"6853:6:53","nodeType":"YulIdentifier","src":"6853:6:53"},"nativeSrc":"6853:62:53","nodeType":"YulFunctionCall","src":"6853:62:53"},"nativeSrc":"6853:62:53","nodeType":"YulExpressionStatement","src":"6853:62:53"}]},"name":"abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack","nativeSrc":"6766:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6831:5:53","nodeType":"YulTypedName","src":"6831:5:53","type":""},{"name":"pos","nativeSrc":"6838:3:53","nodeType":"YulTypedName","src":"6838:3:53","type":""}],"src":"6766:155:53"},{"body":{"nativeSrc":"7037:136:53","nodeType":"YulBlock","src":"7037:136:53","statements":[{"nativeSrc":"7047:26:53","nodeType":"YulAssignment","src":"7047:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7059:9:53","nodeType":"YulIdentifier","src":"7059:9:53"},{"kind":"number","nativeSrc":"7070:2:53","nodeType":"YulLiteral","src":"7070:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7055:3:53","nodeType":"YulIdentifier","src":"7055:3:53"},"nativeSrc":"7055:18:53","nodeType":"YulFunctionCall","src":"7055:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7047:4:53","nodeType":"YulIdentifier","src":"7047:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7139:6:53","nodeType":"YulIdentifier","src":"7139:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7152:9:53","nodeType":"YulIdentifier","src":"7152:9:53"},{"kind":"number","nativeSrc":"7163:1:53","nodeType":"YulLiteral","src":"7163:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7148:3:53","nodeType":"YulIdentifier","src":"7148:3:53"},"nativeSrc":"7148:17:53","nodeType":"YulFunctionCall","src":"7148:17:53"}],"functionName":{"name":"abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack","nativeSrc":"7083:55:53","nodeType":"YulIdentifier","src":"7083:55:53"},"nativeSrc":"7083:83:53","nodeType":"YulFunctionCall","src":"7083:83:53"},"nativeSrc":"7083:83:53","nodeType":"YulExpressionStatement","src":"7083:83:53"}]},"name":"abi_encode_tuple_t_enum$_Strategy_$16126__to_t_uint8__fromStack_reversed","nativeSrc":"6927:246:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7009:9:53","nodeType":"YulTypedName","src":"7009:9:53","type":""},{"name":"value0","nativeSrc":"7021:6:53","nodeType":"YulTypedName","src":"7021:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7032:4:53","nodeType":"YulTypedName","src":"7032:4:53","type":""}],"src":"6927:246:53"},{"body":{"nativeSrc":"7222:79:53","nodeType":"YulBlock","src":"7222:79:53","statements":[{"body":{"nativeSrc":"7279:16:53","nodeType":"YulBlock","src":"7279:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7288:1:53","nodeType":"YulLiteral","src":"7288:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7291:1:53","nodeType":"YulLiteral","src":"7291:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7281:6:53","nodeType":"YulIdentifier","src":"7281:6:53"},"nativeSrc":"7281:12:53","nodeType":"YulFunctionCall","src":"7281:12:53"},"nativeSrc":"7281:12:53","nodeType":"YulExpressionStatement","src":"7281:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7245:5:53","nodeType":"YulIdentifier","src":"7245:5:53"},{"arguments":[{"name":"value","nativeSrc":"7270:5:53","nodeType":"YulIdentifier","src":"7270:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7252:17:53","nodeType":"YulIdentifier","src":"7252:17:53"},"nativeSrc":"7252:24:53","nodeType":"YulFunctionCall","src":"7252:24:53"}],"functionName":{"name":"eq","nativeSrc":"7242:2:53","nodeType":"YulIdentifier","src":"7242:2:53"},"nativeSrc":"7242:35:53","nodeType":"YulFunctionCall","src":"7242:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7235:6:53","nodeType":"YulIdentifier","src":"7235:6:53"},"nativeSrc":"7235:43:53","nodeType":"YulFunctionCall","src":"7235:43:53"},"nativeSrc":"7232:63:53","nodeType":"YulIf","src":"7232:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"7179:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7215:5:53","nodeType":"YulTypedName","src":"7215:5:53","type":""}],"src":"7179:122:53"},{"body":{"nativeSrc":"7359:87:53","nodeType":"YulBlock","src":"7359:87:53","statements":[{"nativeSrc":"7369:29:53","nodeType":"YulAssignment","src":"7369:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7391:6:53","nodeType":"YulIdentifier","src":"7391:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7378:12:53","nodeType":"YulIdentifier","src":"7378:12:53"},"nativeSrc":"7378:20:53","nodeType":"YulFunctionCall","src":"7378:20:53"},"variableNames":[{"name":"value","nativeSrc":"7369:5:53","nodeType":"YulIdentifier","src":"7369:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7434:5:53","nodeType":"YulIdentifier","src":"7434:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7407:26:53","nodeType":"YulIdentifier","src":"7407:26:53"},"nativeSrc":"7407:33:53","nodeType":"YulFunctionCall","src":"7407:33:53"},"nativeSrc":"7407:33:53","nodeType":"YulExpressionStatement","src":"7407:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"7307:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7337:6:53","nodeType":"YulTypedName","src":"7337:6:53","type":""},{"name":"end","nativeSrc":"7345:3:53","nodeType":"YulTypedName","src":"7345:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7353:5:53","nodeType":"YulTypedName","src":"7353:5:53","type":""}],"src":"7307:139:53"},{"body":{"nativeSrc":"7559:478:53","nodeType":"YulBlock","src":"7559:478:53","statements":[{"body":{"nativeSrc":"7608:83:53","nodeType":"YulBlock","src":"7608:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7610:77:53","nodeType":"YulIdentifier","src":"7610:77:53"},"nativeSrc":"7610:79:53","nodeType":"YulFunctionCall","src":"7610:79:53"},"nativeSrc":"7610:79:53","nodeType":"YulExpressionStatement","src":"7610:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7587:6:53","nodeType":"YulIdentifier","src":"7587:6:53"},{"kind":"number","nativeSrc":"7595:4:53","nodeType":"YulLiteral","src":"7595:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7583:3:53","nodeType":"YulIdentifier","src":"7583:3:53"},"nativeSrc":"7583:17:53","nodeType":"YulFunctionCall","src":"7583:17:53"},{"name":"end","nativeSrc":"7602:3:53","nodeType":"YulIdentifier","src":"7602:3:53"}],"functionName":{"name":"slt","nativeSrc":"7579:3:53","nodeType":"YulIdentifier","src":"7579:3:53"},"nativeSrc":"7579:27:53","nodeType":"YulFunctionCall","src":"7579:27:53"}],"functionName":{"name":"iszero","nativeSrc":"7572:6:53","nodeType":"YulIdentifier","src":"7572:6:53"},"nativeSrc":"7572:35:53","nodeType":"YulFunctionCall","src":"7572:35:53"},"nativeSrc":"7569:122:53","nodeType":"YulIf","src":"7569:122:53"},{"nativeSrc":"7700:30:53","nodeType":"YulAssignment","src":"7700:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"7723:6:53","nodeType":"YulIdentifier","src":"7723:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7710:12:53","nodeType":"YulIdentifier","src":"7710:12:53"},"nativeSrc":"7710:20:53","nodeType":"YulFunctionCall","src":"7710:20:53"},"variableNames":[{"name":"length","nativeSrc":"7700:6:53","nodeType":"YulIdentifier","src":"7700:6:53"}]},{"body":{"nativeSrc":"7773:83:53","nodeType":"YulBlock","src":"7773:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7775:77:53","nodeType":"YulIdentifier","src":"7775:77:53"},"nativeSrc":"7775:79:53","nodeType":"YulFunctionCall","src":"7775:79:53"},"nativeSrc":"7775:79:53","nodeType":"YulExpressionStatement","src":"7775:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7745:6:53","nodeType":"YulIdentifier","src":"7745:6:53"},{"kind":"number","nativeSrc":"7753:18:53","nodeType":"YulLiteral","src":"7753:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7742:2:53","nodeType":"YulIdentifier","src":"7742:2:53"},"nativeSrc":"7742:30:53","nodeType":"YulFunctionCall","src":"7742:30:53"},"nativeSrc":"7739:117:53","nodeType":"YulIf","src":"7739:117:53"},{"nativeSrc":"7865:29:53","nodeType":"YulAssignment","src":"7865:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7881:6:53","nodeType":"YulIdentifier","src":"7881:6:53"},{"kind":"number","nativeSrc":"7889:4:53","nodeType":"YulLiteral","src":"7889:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7877:3:53","nodeType":"YulIdentifier","src":"7877:3:53"},"nativeSrc":"7877:17:53","nodeType":"YulFunctionCall","src":"7877:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"7865:8:53","nodeType":"YulIdentifier","src":"7865:8:53"}]},{"body":{"nativeSrc":"7948:83:53","nodeType":"YulBlock","src":"7948:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7950:77:53","nodeType":"YulIdentifier","src":"7950:77:53"},"nativeSrc":"7950:79:53","nodeType":"YulFunctionCall","src":"7950:79:53"},"nativeSrc":"7950:79:53","nodeType":"YulExpressionStatement","src":"7950:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7913:8:53","nodeType":"YulIdentifier","src":"7913:8:53"},{"arguments":[{"name":"length","nativeSrc":"7927:6:53","nodeType":"YulIdentifier","src":"7927:6:53"},{"kind":"number","nativeSrc":"7935:4:53","nodeType":"YulLiteral","src":"7935:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7923:3:53","nodeType":"YulIdentifier","src":"7923:3:53"},"nativeSrc":"7923:17:53","nodeType":"YulFunctionCall","src":"7923:17:53"}],"functionName":{"name":"add","nativeSrc":"7909:3:53","nodeType":"YulIdentifier","src":"7909:3:53"},"nativeSrc":"7909:32:53","nodeType":"YulFunctionCall","src":"7909:32:53"},{"name":"end","nativeSrc":"7943:3:53","nodeType":"YulIdentifier","src":"7943:3:53"}],"functionName":{"name":"gt","nativeSrc":"7906:2:53","nodeType":"YulIdentifier","src":"7906:2:53"},"nativeSrc":"7906:41:53","nodeType":"YulFunctionCall","src":"7906:41:53"},"nativeSrc":"7903:128:53","nodeType":"YulIf","src":"7903:128:53"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"7469:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7526:6:53","nodeType":"YulTypedName","src":"7526:6:53","type":""},{"name":"end","nativeSrc":"7534:3:53","nodeType":"YulTypedName","src":"7534:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7542:8:53","nodeType":"YulTypedName","src":"7542:8:53","type":""},{"name":"length","nativeSrc":"7552:6:53","nodeType":"YulTypedName","src":"7552:6:53","type":""}],"src":"7469:568:53"},{"body":{"nativeSrc":"8266:1346:53","nodeType":"YulBlock","src":"8266:1346:53","statements":[{"body":{"nativeSrc":"8313:83:53","nodeType":"YulBlock","src":"8313:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8315:77:53","nodeType":"YulIdentifier","src":"8315:77:53"},"nativeSrc":"8315:79:53","nodeType":"YulFunctionCall","src":"8315:79:53"},"nativeSrc":"8315:79:53","nodeType":"YulExpressionStatement","src":"8315:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8287:7:53","nodeType":"YulIdentifier","src":"8287:7:53"},{"name":"headStart","nativeSrc":"8296:9:53","nodeType":"YulIdentifier","src":"8296:9:53"}],"functionName":{"name":"sub","nativeSrc":"8283:3:53","nodeType":"YulIdentifier","src":"8283:3:53"},"nativeSrc":"8283:23:53","nodeType":"YulFunctionCall","src":"8283:23:53"},{"kind":"number","nativeSrc":"8308:3:53","nodeType":"YulLiteral","src":"8308:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"8279:3:53","nodeType":"YulIdentifier","src":"8279:3:53"},"nativeSrc":"8279:33:53","nodeType":"YulFunctionCall","src":"8279:33:53"},"nativeSrc":"8276:120:53","nodeType":"YulIf","src":"8276:120:53"},{"nativeSrc":"8406:117:53","nodeType":"YulBlock","src":"8406:117:53","statements":[{"nativeSrc":"8421:15:53","nodeType":"YulVariableDeclaration","src":"8421:15:53","value":{"kind":"number","nativeSrc":"8435:1:53","nodeType":"YulLiteral","src":"8435:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8425:6:53","nodeType":"YulTypedName","src":"8425:6:53","type":""}]},{"nativeSrc":"8450:63:53","nodeType":"YulAssignment","src":"8450:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8485:9:53","nodeType":"YulIdentifier","src":"8485:9:53"},{"name":"offset","nativeSrc":"8496:6:53","nodeType":"YulIdentifier","src":"8496:6:53"}],"functionName":{"name":"add","nativeSrc":"8481:3:53","nodeType":"YulIdentifier","src":"8481:3:53"},"nativeSrc":"8481:22:53","nodeType":"YulFunctionCall","src":"8481:22:53"},{"name":"dataEnd","nativeSrc":"8505:7:53","nodeType":"YulIdentifier","src":"8505:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8460:20:53","nodeType":"YulIdentifier","src":"8460:20:53"},"nativeSrc":"8460:53:53","nodeType":"YulFunctionCall","src":"8460:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8450:6:53","nodeType":"YulIdentifier","src":"8450:6:53"}]}]},{"nativeSrc":"8533:118:53","nodeType":"YulBlock","src":"8533:118:53","statements":[{"nativeSrc":"8548:16:53","nodeType":"YulVariableDeclaration","src":"8548:16:53","value":{"kind":"number","nativeSrc":"8562:2:53","nodeType":"YulLiteral","src":"8562:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8552:6:53","nodeType":"YulTypedName","src":"8552:6:53","type":""}]},{"nativeSrc":"8578:63:53","nodeType":"YulAssignment","src":"8578:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8613:9:53","nodeType":"YulIdentifier","src":"8613:9:53"},{"name":"offset","nativeSrc":"8624:6:53","nodeType":"YulIdentifier","src":"8624:6:53"}],"functionName":{"name":"add","nativeSrc":"8609:3:53","nodeType":"YulIdentifier","src":"8609:3:53"},"nativeSrc":"8609:22:53","nodeType":"YulFunctionCall","src":"8609:22:53"},{"name":"dataEnd","nativeSrc":"8633:7:53","nodeType":"YulIdentifier","src":"8633:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8588:20:53","nodeType":"YulIdentifier","src":"8588:20:53"},"nativeSrc":"8588:53:53","nodeType":"YulFunctionCall","src":"8588:53:53"},"variableNames":[{"name":"value1","nativeSrc":"8578:6:53","nodeType":"YulIdentifier","src":"8578:6:53"}]}]},{"nativeSrc":"8661:313:53","nodeType":"YulBlock","src":"8661:313:53","statements":[{"nativeSrc":"8676:46:53","nodeType":"YulVariableDeclaration","src":"8676:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8707:9:53","nodeType":"YulIdentifier","src":"8707:9:53"},{"kind":"number","nativeSrc":"8718:2:53","nodeType":"YulLiteral","src":"8718:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8703:3:53","nodeType":"YulIdentifier","src":"8703:3:53"},"nativeSrc":"8703:18:53","nodeType":"YulFunctionCall","src":"8703:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8690:12:53","nodeType":"YulIdentifier","src":"8690:12:53"},"nativeSrc":"8690:32:53","nodeType":"YulFunctionCall","src":"8690:32:53"},"variables":[{"name":"offset","nativeSrc":"8680:6:53","nodeType":"YulTypedName","src":"8680:6:53","type":""}]},{"body":{"nativeSrc":"8769:83:53","nodeType":"YulBlock","src":"8769:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8771:77:53","nodeType":"YulIdentifier","src":"8771:77:53"},"nativeSrc":"8771:79:53","nodeType":"YulFunctionCall","src":"8771:79:53"},"nativeSrc":"8771:79:53","nodeType":"YulExpressionStatement","src":"8771:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8741:6:53","nodeType":"YulIdentifier","src":"8741:6:53"},{"kind":"number","nativeSrc":"8749:18:53","nodeType":"YulLiteral","src":"8749:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8738:2:53","nodeType":"YulIdentifier","src":"8738:2:53"},"nativeSrc":"8738:30:53","nodeType":"YulFunctionCall","src":"8738:30:53"},"nativeSrc":"8735:117:53","nodeType":"YulIf","src":"8735:117:53"},{"nativeSrc":"8866:98:53","nodeType":"YulAssignment","src":"8866:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8936:9:53","nodeType":"YulIdentifier","src":"8936:9:53"},{"name":"offset","nativeSrc":"8947:6:53","nodeType":"YulIdentifier","src":"8947:6:53"}],"functionName":{"name":"add","nativeSrc":"8932:3:53","nodeType":"YulIdentifier","src":"8932:3:53"},"nativeSrc":"8932:22:53","nodeType":"YulFunctionCall","src":"8932:22:53"},{"name":"dataEnd","nativeSrc":"8956:7:53","nodeType":"YulIdentifier","src":"8956:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"8884:47:53","nodeType":"YulIdentifier","src":"8884:47:53"},"nativeSrc":"8884:80:53","nodeType":"YulFunctionCall","src":"8884:80:53"},"variableNames":[{"name":"value2","nativeSrc":"8866:6:53","nodeType":"YulIdentifier","src":"8866:6:53"},{"name":"value3","nativeSrc":"8874:6:53","nodeType":"YulIdentifier","src":"8874:6:53"}]}]},{"nativeSrc":"8984:313:53","nodeType":"YulBlock","src":"8984:313:53","statements":[{"nativeSrc":"8999:46:53","nodeType":"YulVariableDeclaration","src":"8999:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9030:9:53","nodeType":"YulIdentifier","src":"9030:9:53"},{"kind":"number","nativeSrc":"9041:2:53","nodeType":"YulLiteral","src":"9041:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9026:3:53","nodeType":"YulIdentifier","src":"9026:3:53"},"nativeSrc":"9026:18:53","nodeType":"YulFunctionCall","src":"9026:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9013:12:53","nodeType":"YulIdentifier","src":"9013:12:53"},"nativeSrc":"9013:32:53","nodeType":"YulFunctionCall","src":"9013:32:53"},"variables":[{"name":"offset","nativeSrc":"9003:6:53","nodeType":"YulTypedName","src":"9003:6:53","type":""}]},{"body":{"nativeSrc":"9092:83:53","nodeType":"YulBlock","src":"9092:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9094:77:53","nodeType":"YulIdentifier","src":"9094:77:53"},"nativeSrc":"9094:79:53","nodeType":"YulFunctionCall","src":"9094:79:53"},"nativeSrc":"9094:79:53","nodeType":"YulExpressionStatement","src":"9094:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9064:6:53","nodeType":"YulIdentifier","src":"9064:6:53"},{"kind":"number","nativeSrc":"9072:18:53","nodeType":"YulLiteral","src":"9072:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9061:2:53","nodeType":"YulIdentifier","src":"9061:2:53"},"nativeSrc":"9061:30:53","nodeType":"YulFunctionCall","src":"9061:30:53"},"nativeSrc":"9058:117:53","nodeType":"YulIf","src":"9058:117:53"},{"nativeSrc":"9189:98:53","nodeType":"YulAssignment","src":"9189:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9259:9:53","nodeType":"YulIdentifier","src":"9259:9:53"},{"name":"offset","nativeSrc":"9270:6:53","nodeType":"YulIdentifier","src":"9270:6:53"}],"functionName":{"name":"add","nativeSrc":"9255:3:53","nodeType":"YulIdentifier","src":"9255:3:53"},"nativeSrc":"9255:22:53","nodeType":"YulFunctionCall","src":"9255:22:53"},{"name":"dataEnd","nativeSrc":"9279:7:53","nodeType":"YulIdentifier","src":"9279:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"9207:47:53","nodeType":"YulIdentifier","src":"9207:47:53"},"nativeSrc":"9207:80:53","nodeType":"YulFunctionCall","src":"9207:80:53"},"variableNames":[{"name":"value4","nativeSrc":"9189:6:53","nodeType":"YulIdentifier","src":"9189:6:53"},{"name":"value5","nativeSrc":"9197:6:53","nodeType":"YulIdentifier","src":"9197:6:53"}]}]},{"nativeSrc":"9307:298:53","nodeType":"YulBlock","src":"9307:298:53","statements":[{"nativeSrc":"9322:47:53","nodeType":"YulVariableDeclaration","src":"9322:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9353:9:53","nodeType":"YulIdentifier","src":"9353:9:53"},{"kind":"number","nativeSrc":"9364:3:53","nodeType":"YulLiteral","src":"9364:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9349:3:53","nodeType":"YulIdentifier","src":"9349:3:53"},"nativeSrc":"9349:19:53","nodeType":"YulFunctionCall","src":"9349:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"9336:12:53","nodeType":"YulIdentifier","src":"9336:12:53"},"nativeSrc":"9336:33:53","nodeType":"YulFunctionCall","src":"9336:33:53"},"variables":[{"name":"offset","nativeSrc":"9326:6:53","nodeType":"YulTypedName","src":"9326:6:53","type":""}]},{"body":{"nativeSrc":"9416:83:53","nodeType":"YulBlock","src":"9416:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9418:77:53","nodeType":"YulIdentifier","src":"9418:77:53"},"nativeSrc":"9418:79:53","nodeType":"YulFunctionCall","src":"9418:79:53"},"nativeSrc":"9418:79:53","nodeType":"YulExpressionStatement","src":"9418:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9388:6:53","nodeType":"YulIdentifier","src":"9388:6:53"},{"kind":"number","nativeSrc":"9396:18:53","nodeType":"YulLiteral","src":"9396:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9385:2:53","nodeType":"YulIdentifier","src":"9385:2:53"},"nativeSrc":"9385:30:53","nodeType":"YulFunctionCall","src":"9385:30:53"},"nativeSrc":"9382:117:53","nodeType":"YulIf","src":"9382:117:53"},{"nativeSrc":"9513:82:53","nodeType":"YulAssignment","src":"9513:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9567:9:53","nodeType":"YulIdentifier","src":"9567:9:53"},{"name":"offset","nativeSrc":"9578:6:53","nodeType":"YulIdentifier","src":"9578:6:53"}],"functionName":{"name":"add","nativeSrc":"9563:3:53","nodeType":"YulIdentifier","src":"9563:3:53"},"nativeSrc":"9563:22:53","nodeType":"YulFunctionCall","src":"9563:22:53"},{"name":"dataEnd","nativeSrc":"9587:7:53","nodeType":"YulIdentifier","src":"9587:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"9531:31:53","nodeType":"YulIdentifier","src":"9531:31:53"},"nativeSrc":"9531:64:53","nodeType":"YulFunctionCall","src":"9531:64:53"},"variableNames":[{"name":"value6","nativeSrc":"9513:6:53","nodeType":"YulIdentifier","src":"9513:6:53"},{"name":"value7","nativeSrc":"9521:6:53","nodeType":"YulIdentifier","src":"9521:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"8043:1569:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8180:9:53","nodeType":"YulTypedName","src":"8180:9:53","type":""},{"name":"dataEnd","nativeSrc":"8191:7:53","nodeType":"YulTypedName","src":"8191:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8203:6:53","nodeType":"YulTypedName","src":"8203:6:53","type":""},{"name":"value1","nativeSrc":"8211:6:53","nodeType":"YulTypedName","src":"8211:6:53","type":""},{"name":"value2","nativeSrc":"8219:6:53","nodeType":"YulTypedName","src":"8219:6:53","type":""},{"name":"value3","nativeSrc":"8227:6:53","nodeType":"YulTypedName","src":"8227:6:53","type":""},{"name":"value4","nativeSrc":"8235:6:53","nodeType":"YulTypedName","src":"8235:6:53","type":""},{"name":"value5","nativeSrc":"8243:6:53","nodeType":"YulTypedName","src":"8243:6:53","type":""},{"name":"value6","nativeSrc":"8251:6:53","nodeType":"YulTypedName","src":"8251:6:53","type":""},{"name":"value7","nativeSrc":"8259:6:53","nodeType":"YulTypedName","src":"8259:6:53","type":""}],"src":"8043:1569:53"},{"body":{"nativeSrc":"9681:52:53","nodeType":"YulBlock","src":"9681:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9698:3:53","nodeType":"YulIdentifier","src":"9698:3:53"},{"arguments":[{"name":"value","nativeSrc":"9720:5:53","nodeType":"YulIdentifier","src":"9720:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"9703:16:53","nodeType":"YulIdentifier","src":"9703:16:53"},"nativeSrc":"9703:23:53","nodeType":"YulFunctionCall","src":"9703:23:53"}],"functionName":{"name":"mstore","nativeSrc":"9691:6:53","nodeType":"YulIdentifier","src":"9691:6:53"},"nativeSrc":"9691:36:53","nodeType":"YulFunctionCall","src":"9691:36:53"},"nativeSrc":"9691:36:53","nodeType":"YulExpressionStatement","src":"9691:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"9618:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9669:5:53","nodeType":"YulTypedName","src":"9669:5:53","type":""},{"name":"pos","nativeSrc":"9676:3:53","nodeType":"YulTypedName","src":"9676:3:53","type":""}],"src":"9618:115:53"},{"body":{"nativeSrc":"9835:122:53","nodeType":"YulBlock","src":"9835:122:53","statements":[{"nativeSrc":"9845:26:53","nodeType":"YulAssignment","src":"9845:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9857:9:53","nodeType":"YulIdentifier","src":"9857:9:53"},{"kind":"number","nativeSrc":"9868:2:53","nodeType":"YulLiteral","src":"9868:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9853:3:53","nodeType":"YulIdentifier","src":"9853:3:53"},"nativeSrc":"9853:18:53","nodeType":"YulFunctionCall","src":"9853:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9845:4:53","nodeType":"YulIdentifier","src":"9845:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9923:6:53","nodeType":"YulIdentifier","src":"9923:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9936:9:53","nodeType":"YulIdentifier","src":"9936:9:53"},{"kind":"number","nativeSrc":"9947:1:53","nodeType":"YulLiteral","src":"9947:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9932:3:53","nodeType":"YulIdentifier","src":"9932:3:53"},"nativeSrc":"9932:17:53","nodeType":"YulFunctionCall","src":"9932:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"9881:41:53","nodeType":"YulIdentifier","src":"9881:41:53"},"nativeSrc":"9881:69:53","nodeType":"YulFunctionCall","src":"9881:69:53"},"nativeSrc":"9881:69:53","nodeType":"YulExpressionStatement","src":"9881:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"9739:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9807:9:53","nodeType":"YulTypedName","src":"9807:9:53","type":""},{"name":"value0","nativeSrc":"9819:6:53","nodeType":"YulTypedName","src":"9819:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9830:4:53","nodeType":"YulTypedName","src":"9830:4:53","type":""}],"src":"9739:218:53"},{"body":{"nativeSrc":"10029:263:53","nodeType":"YulBlock","src":"10029:263:53","statements":[{"body":{"nativeSrc":"10075:83:53","nodeType":"YulBlock","src":"10075:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10077:77:53","nodeType":"YulIdentifier","src":"10077:77:53"},"nativeSrc":"10077:79:53","nodeType":"YulFunctionCall","src":"10077:79:53"},"nativeSrc":"10077:79:53","nodeType":"YulExpressionStatement","src":"10077:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10050:7:53","nodeType":"YulIdentifier","src":"10050:7:53"},{"name":"headStart","nativeSrc":"10059:9:53","nodeType":"YulIdentifier","src":"10059:9:53"}],"functionName":{"name":"sub","nativeSrc":"10046:3:53","nodeType":"YulIdentifier","src":"10046:3:53"},"nativeSrc":"10046:23:53","nodeType":"YulFunctionCall","src":"10046:23:53"},{"kind":"number","nativeSrc":"10071:2:53","nodeType":"YulLiteral","src":"10071:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10042:3:53","nodeType":"YulIdentifier","src":"10042:3:53"},"nativeSrc":"10042:32:53","nodeType":"YulFunctionCall","src":"10042:32:53"},"nativeSrc":"10039:119:53","nodeType":"YulIf","src":"10039:119:53"},{"nativeSrc":"10168:117:53","nodeType":"YulBlock","src":"10168:117:53","statements":[{"nativeSrc":"10183:15:53","nodeType":"YulVariableDeclaration","src":"10183:15:53","value":{"kind":"number","nativeSrc":"10197:1:53","nodeType":"YulLiteral","src":"10197:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10187:6:53","nodeType":"YulTypedName","src":"10187:6:53","type":""}]},{"nativeSrc":"10212:63:53","nodeType":"YulAssignment","src":"10212:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10247:9:53","nodeType":"YulIdentifier","src":"10247:9:53"},{"name":"offset","nativeSrc":"10258:6:53","nodeType":"YulIdentifier","src":"10258:6:53"}],"functionName":{"name":"add","nativeSrc":"10243:3:53","nodeType":"YulIdentifier","src":"10243:3:53"},"nativeSrc":"10243:22:53","nodeType":"YulFunctionCall","src":"10243:22:53"},{"name":"dataEnd","nativeSrc":"10267:7:53","nodeType":"YulIdentifier","src":"10267:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10222:20:53","nodeType":"YulIdentifier","src":"10222:20:53"},"nativeSrc":"10222:53:53","nodeType":"YulFunctionCall","src":"10222:53:53"},"variableNames":[{"name":"value0","nativeSrc":"10212:6:53","nodeType":"YulIdentifier","src":"10212:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"9963:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9999:9:53","nodeType":"YulTypedName","src":"9999:9:53","type":""},{"name":"dataEnd","nativeSrc":"10010:7:53","nodeType":"YulTypedName","src":"10010:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10022:6:53","nodeType":"YulTypedName","src":"10022:6:53","type":""}],"src":"9963:329:53"},{"body":{"nativeSrc":"10341:79:53","nodeType":"YulBlock","src":"10341:79:53","statements":[{"body":{"nativeSrc":"10398:16:53","nodeType":"YulBlock","src":"10398:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10407:1:53","nodeType":"YulLiteral","src":"10407:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10410:1:53","nodeType":"YulLiteral","src":"10410:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10400:6:53","nodeType":"YulIdentifier","src":"10400:6:53"},"nativeSrc":"10400:12:53","nodeType":"YulFunctionCall","src":"10400:12:53"},"nativeSrc":"10400:12:53","nodeType":"YulExpressionStatement","src":"10400:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10364:5:53","nodeType":"YulIdentifier","src":"10364:5:53"},{"arguments":[{"name":"value","nativeSrc":"10389:5:53","nodeType":"YulIdentifier","src":"10389:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10371:17:53","nodeType":"YulIdentifier","src":"10371:17:53"},"nativeSrc":"10371:24:53","nodeType":"YulFunctionCall","src":"10371:24:53"}],"functionName":{"name":"eq","nativeSrc":"10361:2:53","nodeType":"YulIdentifier","src":"10361:2:53"},"nativeSrc":"10361:35:53","nodeType":"YulFunctionCall","src":"10361:35:53"}],"functionName":{"name":"iszero","nativeSrc":"10354:6:53","nodeType":"YulIdentifier","src":"10354:6:53"},"nativeSrc":"10354:43:53","nodeType":"YulFunctionCall","src":"10354:43:53"},"nativeSrc":"10351:63:53","nodeType":"YulIf","src":"10351:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"10298:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10334:5:53","nodeType":"YulTypedName","src":"10334:5:53","type":""}],"src":"10298:122:53"},{"body":{"nativeSrc":"10478:87:53","nodeType":"YulBlock","src":"10478:87:53","statements":[{"nativeSrc":"10488:29:53","nodeType":"YulAssignment","src":"10488:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10510:6:53","nodeType":"YulIdentifier","src":"10510:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10497:12:53","nodeType":"YulIdentifier","src":"10497:12:53"},"nativeSrc":"10497:20:53","nodeType":"YulFunctionCall","src":"10497:20:53"},"variableNames":[{"name":"value","nativeSrc":"10488:5:53","nodeType":"YulIdentifier","src":"10488:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10553:5:53","nodeType":"YulIdentifier","src":"10553:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"10526:26:53","nodeType":"YulIdentifier","src":"10526:26:53"},"nativeSrc":"10526:33:53","nodeType":"YulFunctionCall","src":"10526:33:53"},"nativeSrc":"10526:33:53","nodeType":"YulExpressionStatement","src":"10526:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"10426:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10456:6:53","nodeType":"YulTypedName","src":"10456:6:53","type":""},{"name":"end","nativeSrc":"10464:3:53","nodeType":"YulTypedName","src":"10464:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10472:5:53","nodeType":"YulTypedName","src":"10472:5:53","type":""}],"src":"10426:139:53"},{"body":{"nativeSrc":"10724:956:53","nodeType":"YulBlock","src":"10724:956:53","statements":[{"body":{"nativeSrc":"10771:83:53","nodeType":"YulBlock","src":"10771:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10773:77:53","nodeType":"YulIdentifier","src":"10773:77:53"},"nativeSrc":"10773:79:53","nodeType":"YulFunctionCall","src":"10773:79:53"},"nativeSrc":"10773:79:53","nodeType":"YulExpressionStatement","src":"10773:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10745:7:53","nodeType":"YulIdentifier","src":"10745:7:53"},{"name":"headStart","nativeSrc":"10754:9:53","nodeType":"YulIdentifier","src":"10754:9:53"}],"functionName":{"name":"sub","nativeSrc":"10741:3:53","nodeType":"YulIdentifier","src":"10741:3:53"},"nativeSrc":"10741:23:53","nodeType":"YulFunctionCall","src":"10741:23:53"},{"kind":"number","nativeSrc":"10766:3:53","nodeType":"YulLiteral","src":"10766:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"10737:3:53","nodeType":"YulIdentifier","src":"10737:3:53"},"nativeSrc":"10737:33:53","nodeType":"YulFunctionCall","src":"10737:33:53"},"nativeSrc":"10734:120:53","nodeType":"YulIf","src":"10734:120:53"},{"nativeSrc":"10864:117:53","nodeType":"YulBlock","src":"10864:117:53","statements":[{"nativeSrc":"10879:15:53","nodeType":"YulVariableDeclaration","src":"10879:15:53","value":{"kind":"number","nativeSrc":"10893:1:53","nodeType":"YulLiteral","src":"10893:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10883:6:53","nodeType":"YulTypedName","src":"10883:6:53","type":""}]},{"nativeSrc":"10908:63:53","nodeType":"YulAssignment","src":"10908:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10943:9:53","nodeType":"YulIdentifier","src":"10943:9:53"},{"name":"offset","nativeSrc":"10954:6:53","nodeType":"YulIdentifier","src":"10954:6:53"}],"functionName":{"name":"add","nativeSrc":"10939:3:53","nodeType":"YulIdentifier","src":"10939:3:53"},"nativeSrc":"10939:22:53","nodeType":"YulFunctionCall","src":"10939:22:53"},{"name":"dataEnd","nativeSrc":"10963:7:53","nodeType":"YulIdentifier","src":"10963:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10918:20:53","nodeType":"YulIdentifier","src":"10918:20:53"},"nativeSrc":"10918:53:53","nodeType":"YulFunctionCall","src":"10918:53:53"},"variableNames":[{"name":"value0","nativeSrc":"10908:6:53","nodeType":"YulIdentifier","src":"10908:6:53"}]}]},{"nativeSrc":"10991:118:53","nodeType":"YulBlock","src":"10991:118:53","statements":[{"nativeSrc":"11006:16:53","nodeType":"YulVariableDeclaration","src":"11006:16:53","value":{"kind":"number","nativeSrc":"11020:2:53","nodeType":"YulLiteral","src":"11020:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11010:6:53","nodeType":"YulTypedName","src":"11010:6:53","type":""}]},{"nativeSrc":"11036:63:53","nodeType":"YulAssignment","src":"11036:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11071:9:53","nodeType":"YulIdentifier","src":"11071:9:53"},{"name":"offset","nativeSrc":"11082:6:53","nodeType":"YulIdentifier","src":"11082:6:53"}],"functionName":{"name":"add","nativeSrc":"11067:3:53","nodeType":"YulIdentifier","src":"11067:3:53"},"nativeSrc":"11067:22:53","nodeType":"YulFunctionCall","src":"11067:22:53"},{"name":"dataEnd","nativeSrc":"11091:7:53","nodeType":"YulIdentifier","src":"11091:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11046:20:53","nodeType":"YulIdentifier","src":"11046:20:53"},"nativeSrc":"11046:53:53","nodeType":"YulFunctionCall","src":"11046:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11036:6:53","nodeType":"YulIdentifier","src":"11036:6:53"}]}]},{"nativeSrc":"11119:118:53","nodeType":"YulBlock","src":"11119:118:53","statements":[{"nativeSrc":"11134:16:53","nodeType":"YulVariableDeclaration","src":"11134:16:53","value":{"kind":"number","nativeSrc":"11148:2:53","nodeType":"YulLiteral","src":"11148:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11138:6:53","nodeType":"YulTypedName","src":"11138:6:53","type":""}]},{"nativeSrc":"11164:63:53","nodeType":"YulAssignment","src":"11164:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11199:9:53","nodeType":"YulIdentifier","src":"11199:9:53"},{"name":"offset","nativeSrc":"11210:6:53","nodeType":"YulIdentifier","src":"11210:6:53"}],"functionName":{"name":"add","nativeSrc":"11195:3:53","nodeType":"YulIdentifier","src":"11195:3:53"},"nativeSrc":"11195:22:53","nodeType":"YulFunctionCall","src":"11195:22:53"},{"name":"dataEnd","nativeSrc":"11219:7:53","nodeType":"YulIdentifier","src":"11219:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11174:20:53","nodeType":"YulIdentifier","src":"11174:20:53"},"nativeSrc":"11174:53:53","nodeType":"YulFunctionCall","src":"11174:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11164:6:53","nodeType":"YulIdentifier","src":"11164:6:53"}]}]},{"nativeSrc":"11247:118:53","nodeType":"YulBlock","src":"11247:118:53","statements":[{"nativeSrc":"11262:16:53","nodeType":"YulVariableDeclaration","src":"11262:16:53","value":{"kind":"number","nativeSrc":"11276:2:53","nodeType":"YulLiteral","src":"11276:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11266:6:53","nodeType":"YulTypedName","src":"11266:6:53","type":""}]},{"nativeSrc":"11292:63:53","nodeType":"YulAssignment","src":"11292:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11327:9:53","nodeType":"YulIdentifier","src":"11327:9:53"},{"name":"offset","nativeSrc":"11338:6:53","nodeType":"YulIdentifier","src":"11338:6:53"}],"functionName":{"name":"add","nativeSrc":"11323:3:53","nodeType":"YulIdentifier","src":"11323:3:53"},"nativeSrc":"11323:22:53","nodeType":"YulFunctionCall","src":"11323:22:53"},{"name":"dataEnd","nativeSrc":"11347:7:53","nodeType":"YulIdentifier","src":"11347:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11302:20:53","nodeType":"YulIdentifier","src":"11302:20:53"},"nativeSrc":"11302:53:53","nodeType":"YulFunctionCall","src":"11302:53:53"},"variableNames":[{"name":"value3","nativeSrc":"11292:6:53","nodeType":"YulIdentifier","src":"11292:6:53"}]}]},{"nativeSrc":"11375:298:53","nodeType":"YulBlock","src":"11375:298:53","statements":[{"nativeSrc":"11390:47:53","nodeType":"YulVariableDeclaration","src":"11390:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11421:9:53","nodeType":"YulIdentifier","src":"11421:9:53"},{"kind":"number","nativeSrc":"11432:3:53","nodeType":"YulLiteral","src":"11432:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11417:3:53","nodeType":"YulIdentifier","src":"11417:3:53"},"nativeSrc":"11417:19:53","nodeType":"YulFunctionCall","src":"11417:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"11404:12:53","nodeType":"YulIdentifier","src":"11404:12:53"},"nativeSrc":"11404:33:53","nodeType":"YulFunctionCall","src":"11404:33:53"},"variables":[{"name":"offset","nativeSrc":"11394:6:53","nodeType":"YulTypedName","src":"11394:6:53","type":""}]},{"body":{"nativeSrc":"11484:83:53","nodeType":"YulBlock","src":"11484:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11486:77:53","nodeType":"YulIdentifier","src":"11486:77:53"},"nativeSrc":"11486:79:53","nodeType":"YulFunctionCall","src":"11486:79:53"},"nativeSrc":"11486:79:53","nodeType":"YulExpressionStatement","src":"11486:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11456:6:53","nodeType":"YulIdentifier","src":"11456:6:53"},{"kind":"number","nativeSrc":"11464:18:53","nodeType":"YulLiteral","src":"11464:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11453:2:53","nodeType":"YulIdentifier","src":"11453:2:53"},"nativeSrc":"11453:30:53","nodeType":"YulFunctionCall","src":"11453:30:53"},"nativeSrc":"11450:117:53","nodeType":"YulIf","src":"11450:117:53"},{"nativeSrc":"11581:82:53","nodeType":"YulAssignment","src":"11581:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11635:9:53","nodeType":"YulIdentifier","src":"11635:9:53"},{"name":"offset","nativeSrc":"11646:6:53","nodeType":"YulIdentifier","src":"11646:6:53"}],"functionName":{"name":"add","nativeSrc":"11631:3:53","nodeType":"YulIdentifier","src":"11631:3:53"},"nativeSrc":"11631:22:53","nodeType":"YulFunctionCall","src":"11631:22:53"},{"name":"dataEnd","nativeSrc":"11655:7:53","nodeType":"YulIdentifier","src":"11655:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"11599:31:53","nodeType":"YulIdentifier","src":"11599:31:53"},"nativeSrc":"11599:64:53","nodeType":"YulFunctionCall","src":"11599:64:53"},"variableNames":[{"name":"value4","nativeSrc":"11581:6:53","nodeType":"YulIdentifier","src":"11581:6:53"},{"name":"value5","nativeSrc":"11589:6:53","nodeType":"YulIdentifier","src":"11589:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr","nativeSrc":"10571:1109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10654:9:53","nodeType":"YulTypedName","src":"10654:9:53","type":""},{"name":"dataEnd","nativeSrc":"10665:7:53","nodeType":"YulTypedName","src":"10665:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10677:6:53","nodeType":"YulTypedName","src":"10677:6:53","type":""},{"name":"value1","nativeSrc":"10685:6:53","nodeType":"YulTypedName","src":"10685:6:53","type":""},{"name":"value2","nativeSrc":"10693:6:53","nodeType":"YulTypedName","src":"10693:6:53","type":""},{"name":"value3","nativeSrc":"10701:6:53","nodeType":"YulTypedName","src":"10701:6:53","type":""},{"name":"value4","nativeSrc":"10709:6:53","nodeType":"YulTypedName","src":"10709:6:53","type":""},{"name":"value5","nativeSrc":"10717:6:53","nodeType":"YulTypedName","src":"10717:6:53","type":""}],"src":"10571:1109:53"},{"body":{"nativeSrc":"11775:28:53","nodeType":"YulBlock","src":"11775:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11792:1:53","nodeType":"YulLiteral","src":"11792:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11795:1:53","nodeType":"YulLiteral","src":"11795:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11785:6:53","nodeType":"YulIdentifier","src":"11785:6:53"},"nativeSrc":"11785:12:53","nodeType":"YulFunctionCall","src":"11785:12:53"},"nativeSrc":"11785:12:53","nodeType":"YulExpressionStatement","src":"11785:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"11686:117:53","nodeType":"YulFunctionDefinition","src":"11686:117:53"},{"body":{"nativeSrc":"11837:152:53","nodeType":"YulBlock","src":"11837:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11854:1:53","nodeType":"YulLiteral","src":"11854:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11857:77:53","nodeType":"YulLiteral","src":"11857:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11847:6:53","nodeType":"YulIdentifier","src":"11847:6:53"},"nativeSrc":"11847:88:53","nodeType":"YulFunctionCall","src":"11847:88:53"},"nativeSrc":"11847:88:53","nodeType":"YulExpressionStatement","src":"11847:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11951:1:53","nodeType":"YulLiteral","src":"11951:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11954:4:53","nodeType":"YulLiteral","src":"11954:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"11944:6:53","nodeType":"YulIdentifier","src":"11944:6:53"},"nativeSrc":"11944:15:53","nodeType":"YulFunctionCall","src":"11944:15:53"},"nativeSrc":"11944:15:53","nodeType":"YulExpressionStatement","src":"11944:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11975:1:53","nodeType":"YulLiteral","src":"11975:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11978:4:53","nodeType":"YulLiteral","src":"11978:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11968:6:53","nodeType":"YulIdentifier","src":"11968:6:53"},"nativeSrc":"11968:15:53","nodeType":"YulFunctionCall","src":"11968:15:53"},"nativeSrc":"11968:15:53","nodeType":"YulExpressionStatement","src":"11968:15:53"}]},"name":"panic_error_0x41","nativeSrc":"11809:180:53","nodeType":"YulFunctionDefinition","src":"11809:180:53"},{"body":{"nativeSrc":"12038:238:53","nodeType":"YulBlock","src":"12038:238:53","statements":[{"nativeSrc":"12048:58:53","nodeType":"YulVariableDeclaration","src":"12048:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"12070:6:53","nodeType":"YulIdentifier","src":"12070:6:53"},{"arguments":[{"name":"size","nativeSrc":"12100:4:53","nodeType":"YulIdentifier","src":"12100:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"12078:21:53","nodeType":"YulIdentifier","src":"12078:21:53"},"nativeSrc":"12078:27:53","nodeType":"YulFunctionCall","src":"12078:27:53"}],"functionName":{"name":"add","nativeSrc":"12066:3:53","nodeType":"YulIdentifier","src":"12066:3:53"},"nativeSrc":"12066:40:53","nodeType":"YulFunctionCall","src":"12066:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"12052:10:53","nodeType":"YulTypedName","src":"12052:10:53","type":""}]},{"body":{"nativeSrc":"12217:22:53","nodeType":"YulBlock","src":"12217:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"12219:16:53","nodeType":"YulIdentifier","src":"12219:16:53"},"nativeSrc":"12219:18:53","nodeType":"YulFunctionCall","src":"12219:18:53"},"nativeSrc":"12219:18:53","nodeType":"YulExpressionStatement","src":"12219:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"12160:10:53","nodeType":"YulIdentifier","src":"12160:10:53"},{"kind":"number","nativeSrc":"12172:18:53","nodeType":"YulLiteral","src":"12172:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12157:2:53","nodeType":"YulIdentifier","src":"12157:2:53"},"nativeSrc":"12157:34:53","nodeType":"YulFunctionCall","src":"12157:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"12196:10:53","nodeType":"YulIdentifier","src":"12196:10:53"},{"name":"memPtr","nativeSrc":"12208:6:53","nodeType":"YulIdentifier","src":"12208:6:53"}],"functionName":{"name":"lt","nativeSrc":"12193:2:53","nodeType":"YulIdentifier","src":"12193:2:53"},"nativeSrc":"12193:22:53","nodeType":"YulFunctionCall","src":"12193:22:53"}],"functionName":{"name":"or","nativeSrc":"12154:2:53","nodeType":"YulIdentifier","src":"12154:2:53"},"nativeSrc":"12154:62:53","nodeType":"YulFunctionCall","src":"12154:62:53"},"nativeSrc":"12151:88:53","nodeType":"YulIf","src":"12151:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12255:2:53","nodeType":"YulLiteral","src":"12255:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"12259:10:53","nodeType":"YulIdentifier","src":"12259:10:53"}],"functionName":{"name":"mstore","nativeSrc":"12248:6:53","nodeType":"YulIdentifier","src":"12248:6:53"},"nativeSrc":"12248:22:53","nodeType":"YulFunctionCall","src":"12248:22:53"},"nativeSrc":"12248:22:53","nodeType":"YulExpressionStatement","src":"12248:22:53"}]},"name":"finalize_allocation","nativeSrc":"11995:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12024:6:53","nodeType":"YulTypedName","src":"12024:6:53","type":""},{"name":"size","nativeSrc":"12032:4:53","nodeType":"YulTypedName","src":"12032:4:53","type":""}],"src":"11995:281:53"},{"body":{"nativeSrc":"12323:88:53","nodeType":"YulBlock","src":"12323:88:53","statements":[{"nativeSrc":"12333:30:53","nodeType":"YulAssignment","src":"12333:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"12343:18:53","nodeType":"YulIdentifier","src":"12343:18:53"},"nativeSrc":"12343:20:53","nodeType":"YulFunctionCall","src":"12343:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"12333:6:53","nodeType":"YulIdentifier","src":"12333:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"12392:6:53","nodeType":"YulIdentifier","src":"12392:6:53"},{"name":"size","nativeSrc":"12400:4:53","nodeType":"YulIdentifier","src":"12400:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"12372:19:53","nodeType":"YulIdentifier","src":"12372:19:53"},"nativeSrc":"12372:33:53","nodeType":"YulFunctionCall","src":"12372:33:53"},"nativeSrc":"12372:33:53","nodeType":"YulExpressionStatement","src":"12372:33:53"}]},"name":"allocate_memory","nativeSrc":"12282:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"12307:4:53","nodeType":"YulTypedName","src":"12307:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"12316:6:53","nodeType":"YulTypedName","src":"12316:6:53","type":""}],"src":"12282:129:53"},{"body":{"nativeSrc":"12506:28:53","nodeType":"YulBlock","src":"12506:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12523:1:53","nodeType":"YulLiteral","src":"12523:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12526:1:53","nodeType":"YulLiteral","src":"12526:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12516:6:53","nodeType":"YulIdentifier","src":"12516:6:53"},"nativeSrc":"12516:12:53","nodeType":"YulFunctionCall","src":"12516:12:53"},"nativeSrc":"12516:12:53","nodeType":"YulExpressionStatement","src":"12516:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"12417:117:53","nodeType":"YulFunctionDefinition","src":"12417:117:53"},{"body":{"nativeSrc":"12602:51:53","nodeType":"YulBlock","src":"12602:51:53","statements":[{"nativeSrc":"12612:35:53","nodeType":"YulAssignment","src":"12612:35:53","value":{"arguments":[{"name":"value","nativeSrc":"12641:5:53","nodeType":"YulIdentifier","src":"12641:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"12623:17:53","nodeType":"YulIdentifier","src":"12623:17:53"},"nativeSrc":"12623:24:53","nodeType":"YulFunctionCall","src":"12623:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"12612:7:53","nodeType":"YulIdentifier","src":"12612:7:53"}]}]},"name":"cleanup_t_contract$_IERC1155_$1190","nativeSrc":"12540:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12584:5:53","nodeType":"YulTypedName","src":"12584:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12594:7:53","nodeType":"YulTypedName","src":"12594:7:53","type":""}],"src":"12540:113:53"},{"body":{"nativeSrc":"12719:96:53","nodeType":"YulBlock","src":"12719:96:53","statements":[{"body":{"nativeSrc":"12793:16:53","nodeType":"YulBlock","src":"12793:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12802:1:53","nodeType":"YulLiteral","src":"12802:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12805:1:53","nodeType":"YulLiteral","src":"12805:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12795:6:53","nodeType":"YulIdentifier","src":"12795:6:53"},"nativeSrc":"12795:12:53","nodeType":"YulFunctionCall","src":"12795:12:53"},"nativeSrc":"12795:12:53","nodeType":"YulExpressionStatement","src":"12795:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12742:5:53","nodeType":"YulIdentifier","src":"12742:5:53"},{"arguments":[{"name":"value","nativeSrc":"12784:5:53","nodeType":"YulIdentifier","src":"12784:5:53"}],"functionName":{"name":"cleanup_t_contract$_IERC1155_$1190","nativeSrc":"12749:34:53","nodeType":"YulIdentifier","src":"12749:34:53"},"nativeSrc":"12749:41:53","nodeType":"YulFunctionCall","src":"12749:41:53"}],"functionName":{"name":"eq","nativeSrc":"12739:2:53","nodeType":"YulIdentifier","src":"12739:2:53"},"nativeSrc":"12739:52:53","nodeType":"YulFunctionCall","src":"12739:52:53"}],"functionName":{"name":"iszero","nativeSrc":"12732:6:53","nodeType":"YulIdentifier","src":"12732:6:53"},"nativeSrc":"12732:60:53","nodeType":"YulFunctionCall","src":"12732:60:53"},"nativeSrc":"12729:80:53","nodeType":"YulIf","src":"12729:80:53"}]},"name":"validator_revert_t_contract$_IERC1155_$1190","nativeSrc":"12659:156:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12712:5:53","nodeType":"YulTypedName","src":"12712:5:53","type":""}],"src":"12659:156:53"},{"body":{"nativeSrc":"12890:104:53","nodeType":"YulBlock","src":"12890:104:53","statements":[{"nativeSrc":"12900:29:53","nodeType":"YulAssignment","src":"12900:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12922:6:53","nodeType":"YulIdentifier","src":"12922:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12909:12:53","nodeType":"YulIdentifier","src":"12909:12:53"},"nativeSrc":"12909:20:53","nodeType":"YulFunctionCall","src":"12909:20:53"},"variableNames":[{"name":"value","nativeSrc":"12900:5:53","nodeType":"YulIdentifier","src":"12900:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12982:5:53","nodeType":"YulIdentifier","src":"12982:5:53"}],"functionName":{"name":"validator_revert_t_contract$_IERC1155_$1190","nativeSrc":"12938:43:53","nodeType":"YulIdentifier","src":"12938:43:53"},"nativeSrc":"12938:50:53","nodeType":"YulFunctionCall","src":"12938:50:53"},"nativeSrc":"12938:50:53","nodeType":"YulExpressionStatement","src":"12938:50:53"}]},"name":"abi_decode_t_contract$_IERC1155_$1190","nativeSrc":"12821:173:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12868:6:53","nodeType":"YulTypedName","src":"12868:6:53","type":""},{"name":"end","nativeSrc":"12876:3:53","nodeType":"YulTypedName","src":"12876:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12884:5:53","nodeType":"YulTypedName","src":"12884:5:53","type":""}],"src":"12821:173:53"},{"body":{"nativeSrc":"13057:56:53","nodeType":"YulBlock","src":"13057:56:53","statements":[{"body":{"nativeSrc":"13091:16:53","nodeType":"YulBlock","src":"13091:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13100:1:53","nodeType":"YulLiteral","src":"13100:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13103:1:53","nodeType":"YulLiteral","src":"13103:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13093:6:53","nodeType":"YulIdentifier","src":"13093:6:53"},"nativeSrc":"13093:12:53","nodeType":"YulFunctionCall","src":"13093:12:53"},"nativeSrc":"13093:12:53","nodeType":"YulExpressionStatement","src":"13093:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13080:5:53","nodeType":"YulIdentifier","src":"13080:5:53"},{"kind":"number","nativeSrc":"13087:1:53","nodeType":"YulLiteral","src":"13087:1:53","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"13077:2:53","nodeType":"YulIdentifier","src":"13077:2:53"},"nativeSrc":"13077:12:53","nodeType":"YulFunctionCall","src":"13077:12:53"}],"functionName":{"name":"iszero","nativeSrc":"13070:6:53","nodeType":"YulIdentifier","src":"13070:6:53"},"nativeSrc":"13070:20:53","nodeType":"YulFunctionCall","src":"13070:20:53"},"nativeSrc":"13067:40:53","nodeType":"YulIf","src":"13067:40:53"}]},"name":"validator_revert_t_enum$_Strategy_$16126","nativeSrc":"13000:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13050:5:53","nodeType":"YulTypedName","src":"13050:5:53","type":""}],"src":"13000:113:53"},{"body":{"nativeSrc":"13185:101:53","nodeType":"YulBlock","src":"13185:101:53","statements":[{"nativeSrc":"13195:29:53","nodeType":"YulAssignment","src":"13195:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"13217:6:53","nodeType":"YulIdentifier","src":"13217:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"13204:12:53","nodeType":"YulIdentifier","src":"13204:12:53"},"nativeSrc":"13204:20:53","nodeType":"YulFunctionCall","src":"13204:20:53"},"variableNames":[{"name":"value","nativeSrc":"13195:5:53","nodeType":"YulIdentifier","src":"13195:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13274:5:53","nodeType":"YulIdentifier","src":"13274:5:53"}],"functionName":{"name":"validator_revert_t_enum$_Strategy_$16126","nativeSrc":"13233:40:53","nodeType":"YulIdentifier","src":"13233:40:53"},"nativeSrc":"13233:47:53","nodeType":"YulFunctionCall","src":"13233:47:53"},"nativeSrc":"13233:47:53","nodeType":"YulExpressionStatement","src":"13233:47:53"}]},"name":"abi_decode_t_enum$_Strategy_$16126","nativeSrc":"13119:167:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13163:6:53","nodeType":"YulTypedName","src":"13163:6:53","type":""},{"name":"end","nativeSrc":"13171:3:53","nodeType":"YulTypedName","src":"13171:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13179:5:53","nodeType":"YulTypedName","src":"13179:5:53","type":""}],"src":"13119:167:53"},{"body":{"nativeSrc":"13381:28:53","nodeType":"YulBlock","src":"13381:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13398:1:53","nodeType":"YulLiteral","src":"13398:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13401:1:53","nodeType":"YulLiteral","src":"13401:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13391:6:53","nodeType":"YulIdentifier","src":"13391:6:53"},"nativeSrc":"13391:12:53","nodeType":"YulFunctionCall","src":"13391:12:53"},"nativeSrc":"13391:12:53","nodeType":"YulExpressionStatement","src":"13391:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"13292:117:53","nodeType":"YulFunctionDefinition","src":"13292:117:53"},{"body":{"nativeSrc":"13481:241:53","nodeType":"YulBlock","src":"13481:241:53","statements":[{"body":{"nativeSrc":"13586:22:53","nodeType":"YulBlock","src":"13586:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"13588:16:53","nodeType":"YulIdentifier","src":"13588:16:53"},"nativeSrc":"13588:18:53","nodeType":"YulFunctionCall","src":"13588:18:53"},"nativeSrc":"13588:18:53","nodeType":"YulExpressionStatement","src":"13588:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13558:6:53","nodeType":"YulIdentifier","src":"13558:6:53"},{"kind":"number","nativeSrc":"13566:18:53","nodeType":"YulLiteral","src":"13566:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13555:2:53","nodeType":"YulIdentifier","src":"13555:2:53"},"nativeSrc":"13555:30:53","nodeType":"YulFunctionCall","src":"13555:30:53"},"nativeSrc":"13552:56:53","nodeType":"YulIf","src":"13552:56:53"},{"nativeSrc":"13618:37:53","nodeType":"YulAssignment","src":"13618:37:53","value":{"arguments":[{"name":"length","nativeSrc":"13648:6:53","nodeType":"YulIdentifier","src":"13648:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13626:21:53","nodeType":"YulIdentifier","src":"13626:21:53"},"nativeSrc":"13626:29:53","nodeType":"YulFunctionCall","src":"13626:29:53"},"variableNames":[{"name":"size","nativeSrc":"13618:4:53","nodeType":"YulIdentifier","src":"13618:4:53"}]},{"nativeSrc":"13692:23:53","nodeType":"YulAssignment","src":"13692:23:53","value":{"arguments":[{"name":"size","nativeSrc":"13704:4:53","nodeType":"YulIdentifier","src":"13704:4:53"},{"kind":"number","nativeSrc":"13710:4:53","nodeType":"YulLiteral","src":"13710:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13700:3:53","nodeType":"YulIdentifier","src":"13700:3:53"},"nativeSrc":"13700:15:53","nodeType":"YulFunctionCall","src":"13700:15:53"},"variableNames":[{"name":"size","nativeSrc":"13692:4:53","nodeType":"YulIdentifier","src":"13692:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"13415:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"13465:6:53","nodeType":"YulTypedName","src":"13465:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"13476:4:53","nodeType":"YulTypedName","src":"13476:4:53","type":""}],"src":"13415:307:53"},{"body":{"nativeSrc":"13792:84:53","nodeType":"YulBlock","src":"13792:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13816:3:53","nodeType":"YulIdentifier","src":"13816:3:53"},{"name":"src","nativeSrc":"13821:3:53","nodeType":"YulIdentifier","src":"13821:3:53"},{"name":"length","nativeSrc":"13826:6:53","nodeType":"YulIdentifier","src":"13826:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"13803:12:53","nodeType":"YulIdentifier","src":"13803:12:53"},"nativeSrc":"13803:30:53","nodeType":"YulFunctionCall","src":"13803:30:53"},"nativeSrc":"13803:30:53","nodeType":"YulExpressionStatement","src":"13803:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13853:3:53","nodeType":"YulIdentifier","src":"13853:3:53"},{"name":"length","nativeSrc":"13858:6:53","nodeType":"YulIdentifier","src":"13858:6:53"}],"functionName":{"name":"add","nativeSrc":"13849:3:53","nodeType":"YulIdentifier","src":"13849:3:53"},"nativeSrc":"13849:16:53","nodeType":"YulFunctionCall","src":"13849:16:53"},{"kind":"number","nativeSrc":"13867:1:53","nodeType":"YulLiteral","src":"13867:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13842:6:53","nodeType":"YulIdentifier","src":"13842:6:53"},"nativeSrc":"13842:27:53","nodeType":"YulFunctionCall","src":"13842:27:53"},"nativeSrc":"13842:27:53","nodeType":"YulExpressionStatement","src":"13842:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13728:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13774:3:53","nodeType":"YulTypedName","src":"13774:3:53","type":""},{"name":"dst","nativeSrc":"13779:3:53","nodeType":"YulTypedName","src":"13779:3:53","type":""},{"name":"length","nativeSrc":"13784:6:53","nodeType":"YulTypedName","src":"13784:6:53","type":""}],"src":"13728:148:53"},{"body":{"nativeSrc":"13965:340:53","nodeType":"YulBlock","src":"13965:340:53","statements":[{"nativeSrc":"13975:74:53","nodeType":"YulAssignment","src":"13975:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14041:6:53","nodeType":"YulIdentifier","src":"14041:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14000:40:53","nodeType":"YulIdentifier","src":"14000:40:53"},"nativeSrc":"14000:48:53","nodeType":"YulFunctionCall","src":"14000:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"13984:15:53","nodeType":"YulIdentifier","src":"13984:15:53"},"nativeSrc":"13984:65:53","nodeType":"YulFunctionCall","src":"13984:65:53"},"variableNames":[{"name":"array","nativeSrc":"13975:5:53","nodeType":"YulIdentifier","src":"13975:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"14065:5:53","nodeType":"YulIdentifier","src":"14065:5:53"},{"name":"length","nativeSrc":"14072:6:53","nodeType":"YulIdentifier","src":"14072:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14058:6:53","nodeType":"YulIdentifier","src":"14058:6:53"},"nativeSrc":"14058:21:53","nodeType":"YulFunctionCall","src":"14058:21:53"},"nativeSrc":"14058:21:53","nodeType":"YulExpressionStatement","src":"14058:21:53"},{"nativeSrc":"14088:27:53","nodeType":"YulVariableDeclaration","src":"14088:27:53","value":{"arguments":[{"name":"array","nativeSrc":"14103:5:53","nodeType":"YulIdentifier","src":"14103:5:53"},{"kind":"number","nativeSrc":"14110:4:53","nodeType":"YulLiteral","src":"14110:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14099:3:53","nodeType":"YulIdentifier","src":"14099:3:53"},"nativeSrc":"14099:16:53","nodeType":"YulFunctionCall","src":"14099:16:53"},"variables":[{"name":"dst","nativeSrc":"14092:3:53","nodeType":"YulTypedName","src":"14092:3:53","type":""}]},{"body":{"nativeSrc":"14153:83:53","nodeType":"YulBlock","src":"14153:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14155:77:53","nodeType":"YulIdentifier","src":"14155:77:53"},"nativeSrc":"14155:79:53","nodeType":"YulFunctionCall","src":"14155:79:53"},"nativeSrc":"14155:79:53","nodeType":"YulExpressionStatement","src":"14155:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"14134:3:53","nodeType":"YulIdentifier","src":"14134:3:53"},{"name":"length","nativeSrc":"14139:6:53","nodeType":"YulIdentifier","src":"14139:6:53"}],"functionName":{"name":"add","nativeSrc":"14130:3:53","nodeType":"YulIdentifier","src":"14130:3:53"},"nativeSrc":"14130:16:53","nodeType":"YulFunctionCall","src":"14130:16:53"},{"name":"end","nativeSrc":"14148:3:53","nodeType":"YulIdentifier","src":"14148:3:53"}],"functionName":{"name":"gt","nativeSrc":"14127:2:53","nodeType":"YulIdentifier","src":"14127:2:53"},"nativeSrc":"14127:25:53","nodeType":"YulFunctionCall","src":"14127:25:53"},"nativeSrc":"14124:112:53","nodeType":"YulIf","src":"14124:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"14282:3:53","nodeType":"YulIdentifier","src":"14282:3:53"},{"name":"dst","nativeSrc":"14287:3:53","nodeType":"YulIdentifier","src":"14287:3:53"},{"name":"length","nativeSrc":"14292:6:53","nodeType":"YulIdentifier","src":"14292:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"14245:36:53","nodeType":"YulIdentifier","src":"14245:36:53"},"nativeSrc":"14245:54:53","nodeType":"YulFunctionCall","src":"14245:54:53"},"nativeSrc":"14245:54:53","nodeType":"YulExpressionStatement","src":"14245:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"13882:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13938:3:53","nodeType":"YulTypedName","src":"13938:3:53","type":""},{"name":"length","nativeSrc":"13943:6:53","nodeType":"YulTypedName","src":"13943:6:53","type":""},{"name":"end","nativeSrc":"13951:3:53","nodeType":"YulTypedName","src":"13951:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"13959:5:53","nodeType":"YulTypedName","src":"13959:5:53","type":""}],"src":"13882:423:53"},{"body":{"nativeSrc":"14385:277:53","nodeType":"YulBlock","src":"14385:277:53","statements":[{"body":{"nativeSrc":"14434:83:53","nodeType":"YulBlock","src":"14434:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"14436:77:53","nodeType":"YulIdentifier","src":"14436:77:53"},"nativeSrc":"14436:79:53","nodeType":"YulFunctionCall","src":"14436:79:53"},"nativeSrc":"14436:79:53","nodeType":"YulExpressionStatement","src":"14436:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14413:6:53","nodeType":"YulIdentifier","src":"14413:6:53"},{"kind":"number","nativeSrc":"14421:4:53","nodeType":"YulLiteral","src":"14421:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"14409:3:53","nodeType":"YulIdentifier","src":"14409:3:53"},"nativeSrc":"14409:17:53","nodeType":"YulFunctionCall","src":"14409:17:53"},{"name":"end","nativeSrc":"14428:3:53","nodeType":"YulIdentifier","src":"14428:3:53"}],"functionName":{"name":"slt","nativeSrc":"14405:3:53","nodeType":"YulIdentifier","src":"14405:3:53"},"nativeSrc":"14405:27:53","nodeType":"YulFunctionCall","src":"14405:27:53"}],"functionName":{"name":"iszero","nativeSrc":"14398:6:53","nodeType":"YulIdentifier","src":"14398:6:53"},"nativeSrc":"14398:35:53","nodeType":"YulFunctionCall","src":"14398:35:53"},"nativeSrc":"14395:122:53","nodeType":"YulIf","src":"14395:122:53"},{"nativeSrc":"14526:34:53","nodeType":"YulVariableDeclaration","src":"14526:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"14553:6:53","nodeType":"YulIdentifier","src":"14553:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"14540:12:53","nodeType":"YulIdentifier","src":"14540:12:53"},"nativeSrc":"14540:20:53","nodeType":"YulFunctionCall","src":"14540:20:53"},"variables":[{"name":"length","nativeSrc":"14530:6:53","nodeType":"YulTypedName","src":"14530:6:53","type":""}]},{"nativeSrc":"14569:87:53","nodeType":"YulAssignment","src":"14569:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14629:6:53","nodeType":"YulIdentifier","src":"14629:6:53"},{"kind":"number","nativeSrc":"14637:4:53","nodeType":"YulLiteral","src":"14637:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14625:3:53","nodeType":"YulIdentifier","src":"14625:3:53"},"nativeSrc":"14625:17:53","nodeType":"YulFunctionCall","src":"14625:17:53"},{"name":"length","nativeSrc":"14644:6:53","nodeType":"YulIdentifier","src":"14644:6:53"},{"name":"end","nativeSrc":"14652:3:53","nodeType":"YulIdentifier","src":"14652:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"14578:46:53","nodeType":"YulIdentifier","src":"14578:46:53"},"nativeSrc":"14578:78:53","nodeType":"YulFunctionCall","src":"14578:78:53"},"variableNames":[{"name":"array","nativeSrc":"14569:5:53","nodeType":"YulIdentifier","src":"14569:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"14324:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14363:6:53","nodeType":"YulTypedName","src":"14363:6:53","type":""},{"name":"end","nativeSrc":"14371:3:53","nodeType":"YulTypedName","src":"14371:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"14379:5:53","nodeType":"YulTypedName","src":"14379:5:53","type":""}],"src":"14324:338:53"},{"body":{"nativeSrc":"14796:1192:53","nodeType":"YulBlock","src":"14796:1192:53","statements":[{"body":{"nativeSrc":"14840:83:53","nodeType":"YulBlock","src":"14840:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"14842:77:53","nodeType":"YulIdentifier","src":"14842:77:53"},"nativeSrc":"14842:79:53","nodeType":"YulFunctionCall","src":"14842:79:53"},"nativeSrc":"14842:79:53","nodeType":"YulExpressionStatement","src":"14842:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"14817:3:53","nodeType":"YulIdentifier","src":"14817:3:53"},{"name":"headStart","nativeSrc":"14822:9:53","nodeType":"YulIdentifier","src":"14822:9:53"}],"functionName":{"name":"sub","nativeSrc":"14813:3:53","nodeType":"YulIdentifier","src":"14813:3:53"},"nativeSrc":"14813:19:53","nodeType":"YulFunctionCall","src":"14813:19:53"},{"kind":"number","nativeSrc":"14834:4:53","nodeType":"YulLiteral","src":"14834:4:53","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"14809:3:53","nodeType":"YulIdentifier","src":"14809:3:53"},"nativeSrc":"14809:30:53","nodeType":"YulFunctionCall","src":"14809:30:53"},"nativeSrc":"14806:117:53","nodeType":"YulIf","src":"14806:117:53"},{"nativeSrc":"14932:30:53","nodeType":"YulAssignment","src":"14932:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"14957:4:53","nodeType":"YulLiteral","src":"14957:4:53","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"14941:15:53","nodeType":"YulIdentifier","src":"14941:15:53"},"nativeSrc":"14941:21:53","nodeType":"YulFunctionCall","src":"14941:21:53"},"variableNames":[{"name":"value","nativeSrc":"14932:5:53","nodeType":"YulIdentifier","src":"14932:5:53"}]},{"nativeSrc":"14972:168:53","nodeType":"YulBlock","src":"14972:168:53","statements":[{"nativeSrc":"15008:15:53","nodeType":"YulVariableDeclaration","src":"15008:15:53","value":{"kind":"number","nativeSrc":"15022:1:53","nodeType":"YulLiteral","src":"15022:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15012:6:53","nodeType":"YulTypedName","src":"15012:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15048:5:53","nodeType":"YulIdentifier","src":"15048:5:53"},{"kind":"number","nativeSrc":"15055:4:53","nodeType":"YulLiteral","src":"15055:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15044:3:53","nodeType":"YulIdentifier","src":"15044:3:53"},"nativeSrc":"15044:16:53","nodeType":"YulFunctionCall","src":"15044:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15104:9:53","nodeType":"YulIdentifier","src":"15104:9:53"},{"name":"offset","nativeSrc":"15115:6:53","nodeType":"YulIdentifier","src":"15115:6:53"}],"functionName":{"name":"add","nativeSrc":"15100:3:53","nodeType":"YulIdentifier","src":"15100:3:53"},"nativeSrc":"15100:22:53","nodeType":"YulFunctionCall","src":"15100:22:53"},{"name":"end","nativeSrc":"15124:3:53","nodeType":"YulIdentifier","src":"15124:3:53"}],"functionName":{"name":"abi_decode_t_contract$_IERC1155_$1190","nativeSrc":"15062:37:53","nodeType":"YulIdentifier","src":"15062:37:53"},"nativeSrc":"15062:66:53","nodeType":"YulFunctionCall","src":"15062:66:53"}],"functionName":{"name":"mstore","nativeSrc":"15037:6:53","nodeType":"YulIdentifier","src":"15037:6:53"},"nativeSrc":"15037:92:53","nodeType":"YulFunctionCall","src":"15037:92:53"},"nativeSrc":"15037:92:53","nodeType":"YulExpressionStatement","src":"15037:92:53"}]},{"nativeSrc":"15150:169:53","nodeType":"YulBlock","src":"15150:169:53","statements":[{"nativeSrc":"15189:16:53","nodeType":"YulVariableDeclaration","src":"15189:16:53","value":{"kind":"number","nativeSrc":"15203:2:53","nodeType":"YulLiteral","src":"15203:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15193:6:53","nodeType":"YulTypedName","src":"15193:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15230:5:53","nodeType":"YulIdentifier","src":"15230:5:53"},{"kind":"number","nativeSrc":"15237:4:53","nodeType":"YulLiteral","src":"15237:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15226:3:53","nodeType":"YulIdentifier","src":"15226:3:53"},"nativeSrc":"15226:16:53","nodeType":"YulFunctionCall","src":"15226:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15283:9:53","nodeType":"YulIdentifier","src":"15283:9:53"},{"name":"offset","nativeSrc":"15294:6:53","nodeType":"YulIdentifier","src":"15294:6:53"}],"functionName":{"name":"add","nativeSrc":"15279:3:53","nodeType":"YulIdentifier","src":"15279:3:53"},"nativeSrc":"15279:22:53","nodeType":"YulFunctionCall","src":"15279:22:53"},{"name":"end","nativeSrc":"15303:3:53","nodeType":"YulIdentifier","src":"15303:3:53"}],"functionName":{"name":"abi_decode_t_enum$_Strategy_$16126","nativeSrc":"15244:34:53","nodeType":"YulIdentifier","src":"15244:34:53"},"nativeSrc":"15244:63:53","nodeType":"YulFunctionCall","src":"15244:63:53"}],"functionName":{"name":"mstore","nativeSrc":"15219:6:53","nodeType":"YulIdentifier","src":"15219:6:53"},"nativeSrc":"15219:89:53","nodeType":"YulFunctionCall","src":"15219:89:53"},"nativeSrc":"15219:89:53","nodeType":"YulExpressionStatement","src":"15219:89:53"}]},{"nativeSrc":"15329:154:53","nodeType":"YulBlock","src":"15329:154:53","statements":[{"nativeSrc":"15367:16:53","nodeType":"YulVariableDeclaration","src":"15367:16:53","value":{"kind":"number","nativeSrc":"15381:2:53","nodeType":"YulLiteral","src":"15381:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"15371:6:53","nodeType":"YulTypedName","src":"15371:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15408:5:53","nodeType":"YulIdentifier","src":"15408:5:53"},{"kind":"number","nativeSrc":"15415:4:53","nodeType":"YulLiteral","src":"15415:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15404:3:53","nodeType":"YulIdentifier","src":"15404:3:53"},"nativeSrc":"15404:16:53","nodeType":"YulFunctionCall","src":"15404:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15447:9:53","nodeType":"YulIdentifier","src":"15447:9:53"},{"name":"offset","nativeSrc":"15458:6:53","nodeType":"YulIdentifier","src":"15458:6:53"}],"functionName":{"name":"add","nativeSrc":"15443:3:53","nodeType":"YulIdentifier","src":"15443:3:53"},"nativeSrc":"15443:22:53","nodeType":"YulFunctionCall","src":"15443:22:53"},{"name":"end","nativeSrc":"15467:3:53","nodeType":"YulIdentifier","src":"15467:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"15422:20:53","nodeType":"YulIdentifier","src":"15422:20:53"},"nativeSrc":"15422:49:53","nodeType":"YulFunctionCall","src":"15422:49:53"}],"functionName":{"name":"mstore","nativeSrc":"15397:6:53","nodeType":"YulIdentifier","src":"15397:6:53"},"nativeSrc":"15397:75:53","nodeType":"YulFunctionCall","src":"15397:75:53"},"nativeSrc":"15397:75:53","nodeType":"YulExpressionStatement","src":"15397:75:53"}]},{"nativeSrc":"15493:152:53","nodeType":"YulBlock","src":"15493:152:53","statements":[{"nativeSrc":"15529:16:53","nodeType":"YulVariableDeclaration","src":"15529:16:53","value":{"kind":"number","nativeSrc":"15543:2:53","nodeType":"YulLiteral","src":"15543:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"15533:6:53","nodeType":"YulTypedName","src":"15533:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15570:5:53","nodeType":"YulIdentifier","src":"15570:5:53"},{"kind":"number","nativeSrc":"15577:4:53","nodeType":"YulLiteral","src":"15577:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15566:3:53","nodeType":"YulIdentifier","src":"15566:3:53"},"nativeSrc":"15566:16:53","nodeType":"YulFunctionCall","src":"15566:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15609:9:53","nodeType":"YulIdentifier","src":"15609:9:53"},{"name":"offset","nativeSrc":"15620:6:53","nodeType":"YulIdentifier","src":"15620:6:53"}],"functionName":{"name":"add","nativeSrc":"15605:3:53","nodeType":"YulIdentifier","src":"15605:3:53"},"nativeSrc":"15605:22:53","nodeType":"YulFunctionCall","src":"15605:22:53"},{"name":"end","nativeSrc":"15629:3:53","nodeType":"YulIdentifier","src":"15629:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"15584:20:53","nodeType":"YulIdentifier","src":"15584:20:53"},"nativeSrc":"15584:49:53","nodeType":"YulFunctionCall","src":"15584:49:53"}],"functionName":{"name":"mstore","nativeSrc":"15559:6:53","nodeType":"YulIdentifier","src":"15559:6:53"},"nativeSrc":"15559:75:53","nodeType":"YulFunctionCall","src":"15559:75:53"},"nativeSrc":"15559:75:53","nodeType":"YulExpressionStatement","src":"15559:75:53"}]},{"nativeSrc":"15655:326:53","nodeType":"YulBlock","src":"15655:326:53","statements":[{"nativeSrc":"15695:47:53","nodeType":"YulVariableDeclaration","src":"15695:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15726:9:53","nodeType":"YulIdentifier","src":"15726:9:53"},{"kind":"number","nativeSrc":"15737:3:53","nodeType":"YulLiteral","src":"15737:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15722:3:53","nodeType":"YulIdentifier","src":"15722:3:53"},"nativeSrc":"15722:19:53","nodeType":"YulFunctionCall","src":"15722:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"15709:12:53","nodeType":"YulIdentifier","src":"15709:12:53"},"nativeSrc":"15709:33:53","nodeType":"YulFunctionCall","src":"15709:33:53"},"variables":[{"name":"offset","nativeSrc":"15699:6:53","nodeType":"YulTypedName","src":"15699:6:53","type":""}]},{"body":{"nativeSrc":"15789:83:53","nodeType":"YulBlock","src":"15789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"15791:77:53","nodeType":"YulIdentifier","src":"15791:77:53"},"nativeSrc":"15791:79:53","nodeType":"YulFunctionCall","src":"15791:79:53"},"nativeSrc":"15791:79:53","nodeType":"YulExpressionStatement","src":"15791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15761:6:53","nodeType":"YulIdentifier","src":"15761:6:53"},{"kind":"number","nativeSrc":"15769:18:53","nodeType":"YulLiteral","src":"15769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15758:2:53","nodeType":"YulIdentifier","src":"15758:2:53"},"nativeSrc":"15758:30:53","nodeType":"YulFunctionCall","src":"15758:30:53"},"nativeSrc":"15755:117:53","nodeType":"YulIf","src":"15755:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15897:5:53","nodeType":"YulIdentifier","src":"15897:5:53"},{"kind":"number","nativeSrc":"15904:4:53","nodeType":"YulLiteral","src":"15904:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15893:3:53","nodeType":"YulIdentifier","src":"15893:3:53"},"nativeSrc":"15893:16:53","nodeType":"YulFunctionCall","src":"15893:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15945:9:53","nodeType":"YulIdentifier","src":"15945:9:53"},{"name":"offset","nativeSrc":"15956:6:53","nodeType":"YulIdentifier","src":"15956:6:53"}],"functionName":{"name":"add","nativeSrc":"15941:3:53","nodeType":"YulIdentifier","src":"15941:3:53"},"nativeSrc":"15941:22:53","nodeType":"YulFunctionCall","src":"15941:22:53"},{"name":"end","nativeSrc":"15965:3:53","nodeType":"YulIdentifier","src":"15965:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15911:29:53","nodeType":"YulIdentifier","src":"15911:29:53"},"nativeSrc":"15911:58:53","nodeType":"YulFunctionCall","src":"15911:58:53"}],"functionName":{"name":"mstore","nativeSrc":"15886:6:53","nodeType":"YulIdentifier","src":"15886:6:53"},"nativeSrc":"15886:84:53","nodeType":"YulFunctionCall","src":"15886:84:53"},"nativeSrc":"15886:84:53","nodeType":"YulExpressionStatement","src":"15886:84:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$16140_memory_ptr","nativeSrc":"14711:1277:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14771:9:53","nodeType":"YulTypedName","src":"14771:9:53","type":""},{"name":"end","nativeSrc":"14782:3:53","nodeType":"YulTypedName","src":"14782:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14790:5:53","nodeType":"YulTypedName","src":"14790:5:53","type":""}],"src":"14711:1277:53"},{"body":{"nativeSrc":"16090:453:53","nodeType":"YulBlock","src":"16090:453:53","statements":[{"body":{"nativeSrc":"16136:83:53","nodeType":"YulBlock","src":"16136:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16138:77:53","nodeType":"YulIdentifier","src":"16138:77:53"},"nativeSrc":"16138:79:53","nodeType":"YulFunctionCall","src":"16138:79:53"},"nativeSrc":"16138:79:53","nodeType":"YulExpressionStatement","src":"16138:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16111:7:53","nodeType":"YulIdentifier","src":"16111:7:53"},{"name":"headStart","nativeSrc":"16120:9:53","nodeType":"YulIdentifier","src":"16120:9:53"}],"functionName":{"name":"sub","nativeSrc":"16107:3:53","nodeType":"YulIdentifier","src":"16107:3:53"},"nativeSrc":"16107:23:53","nodeType":"YulFunctionCall","src":"16107:23:53"},{"kind":"number","nativeSrc":"16132:2:53","nodeType":"YulLiteral","src":"16132:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16103:3:53","nodeType":"YulIdentifier","src":"16103:3:53"},"nativeSrc":"16103:32:53","nodeType":"YulFunctionCall","src":"16103:32:53"},"nativeSrc":"16100:119:53","nodeType":"YulIf","src":"16100:119:53"},{"nativeSrc":"16229:307:53","nodeType":"YulBlock","src":"16229:307:53","statements":[{"nativeSrc":"16244:45:53","nodeType":"YulVariableDeclaration","src":"16244:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16275:9:53","nodeType":"YulIdentifier","src":"16275:9:53"},{"kind":"number","nativeSrc":"16286:1:53","nodeType":"YulLiteral","src":"16286:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16271:3:53","nodeType":"YulIdentifier","src":"16271:3:53"},"nativeSrc":"16271:17:53","nodeType":"YulFunctionCall","src":"16271:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"16258:12:53","nodeType":"YulIdentifier","src":"16258:12:53"},"nativeSrc":"16258:31:53","nodeType":"YulFunctionCall","src":"16258:31:53"},"variables":[{"name":"offset","nativeSrc":"16248:6:53","nodeType":"YulTypedName","src":"16248:6:53","type":""}]},{"body":{"nativeSrc":"16336:83:53","nodeType":"YulBlock","src":"16336:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"16338:77:53","nodeType":"YulIdentifier","src":"16338:77:53"},"nativeSrc":"16338:79:53","nodeType":"YulFunctionCall","src":"16338:79:53"},"nativeSrc":"16338:79:53","nodeType":"YulExpressionStatement","src":"16338:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16308:6:53","nodeType":"YulIdentifier","src":"16308:6:53"},{"kind":"number","nativeSrc":"16316:18:53","nodeType":"YulLiteral","src":"16316:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16305:2:53","nodeType":"YulIdentifier","src":"16305:2:53"},"nativeSrc":"16305:30:53","nodeType":"YulFunctionCall","src":"16305:30:53"},"nativeSrc":"16302:117:53","nodeType":"YulIf","src":"16302:117:53"},{"nativeSrc":"16433:93:53","nodeType":"YulAssignment","src":"16433:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16498:9:53","nodeType":"YulIdentifier","src":"16498:9:53"},{"name":"offset","nativeSrc":"16509:6:53","nodeType":"YulIdentifier","src":"16509:6:53"}],"functionName":{"name":"add","nativeSrc":"16494:3:53","nodeType":"YulIdentifier","src":"16494:3:53"},"nativeSrc":"16494:22:53","nodeType":"YulFunctionCall","src":"16494:22:53"},{"name":"dataEnd","nativeSrc":"16518:7:53","nodeType":"YulIdentifier","src":"16518:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$16140_memory_ptr","nativeSrc":"16443:50:53","nodeType":"YulIdentifier","src":"16443:50:53"},"nativeSrc":"16443:83:53","nodeType":"YulFunctionCall","src":"16443:83:53"},"variableNames":[{"name":"value0","nativeSrc":"16433:6:53","nodeType":"YulIdentifier","src":"16433:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$16140_memory_ptr","nativeSrc":"15994:549:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16060:9:53","nodeType":"YulTypedName","src":"16060:9:53","type":""},{"name":"dataEnd","nativeSrc":"16071:7:53","nodeType":"YulTypedName","src":"16071:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16083:6:53","nodeType":"YulTypedName","src":"16083:6:53","type":""}],"src":"15994:549:53"},{"body":{"nativeSrc":"16675:206:53","nodeType":"YulBlock","src":"16675:206:53","statements":[{"nativeSrc":"16685:26:53","nodeType":"YulAssignment","src":"16685:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16697:9:53","nodeType":"YulIdentifier","src":"16697:9:53"},{"kind":"number","nativeSrc":"16708:2:53","nodeType":"YulLiteral","src":"16708:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16693:3:53","nodeType":"YulIdentifier","src":"16693:3:53"},"nativeSrc":"16693:18:53","nodeType":"YulFunctionCall","src":"16693:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16685:4:53","nodeType":"YulIdentifier","src":"16685:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16765:6:53","nodeType":"YulIdentifier","src":"16765:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"16778:9:53","nodeType":"YulIdentifier","src":"16778:9:53"},{"kind":"number","nativeSrc":"16789:1:53","nodeType":"YulLiteral","src":"16789:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16774:3:53","nodeType":"YulIdentifier","src":"16774:3:53"},"nativeSrc":"16774:17:53","nodeType":"YulFunctionCall","src":"16774:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"16721:43:53","nodeType":"YulIdentifier","src":"16721:43:53"},"nativeSrc":"16721:71:53","nodeType":"YulFunctionCall","src":"16721:71:53"},"nativeSrc":"16721:71:53","nodeType":"YulExpressionStatement","src":"16721:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"16846:6:53","nodeType":"YulIdentifier","src":"16846:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"16859:9:53","nodeType":"YulIdentifier","src":"16859:9:53"},{"kind":"number","nativeSrc":"16870:2:53","nodeType":"YulLiteral","src":"16870:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16855:3:53","nodeType":"YulIdentifier","src":"16855:3:53"},"nativeSrc":"16855:18:53","nodeType":"YulFunctionCall","src":"16855:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"16802:43:53","nodeType":"YulIdentifier","src":"16802:43:53"},"nativeSrc":"16802:72:53","nodeType":"YulFunctionCall","src":"16802:72:53"},"nativeSrc":"16802:72:53","nodeType":"YulExpressionStatement","src":"16802:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"16549:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16639:9:53","nodeType":"YulTypedName","src":"16639:9:53","type":""},{"name":"value1","nativeSrc":"16651:6:53","nodeType":"YulTypedName","src":"16651:6:53","type":""},{"name":"value0","nativeSrc":"16659:6:53","nodeType":"YulTypedName","src":"16659:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16670:4:53","nodeType":"YulTypedName","src":"16670:4:53","type":""}],"src":"16549:332:53"},{"body":{"nativeSrc":"16950:80:53","nodeType":"YulBlock","src":"16950:80:53","statements":[{"nativeSrc":"16960:22:53","nodeType":"YulAssignment","src":"16960:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"16975:6:53","nodeType":"YulIdentifier","src":"16975:6:53"}],"functionName":{"name":"mload","nativeSrc":"16969:5:53","nodeType":"YulIdentifier","src":"16969:5:53"},"nativeSrc":"16969:13:53","nodeType":"YulFunctionCall","src":"16969:13:53"},"variableNames":[{"name":"value","nativeSrc":"16960:5:53","nodeType":"YulIdentifier","src":"16960:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17018:5:53","nodeType":"YulIdentifier","src":"17018:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"16991:26:53","nodeType":"YulIdentifier","src":"16991:26:53"},"nativeSrc":"16991:33:53","nodeType":"YulFunctionCall","src":"16991:33:53"},"nativeSrc":"16991:33:53","nodeType":"YulExpressionStatement","src":"16991:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"16887:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"16928:6:53","nodeType":"YulTypedName","src":"16928:6:53","type":""},{"name":"end","nativeSrc":"16936:3:53","nodeType":"YulTypedName","src":"16936:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16944:5:53","nodeType":"YulTypedName","src":"16944:5:53","type":""}],"src":"16887:143:53"},{"body":{"nativeSrc":"17113:274:53","nodeType":"YulBlock","src":"17113:274:53","statements":[{"body":{"nativeSrc":"17159:83:53","nodeType":"YulBlock","src":"17159:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17161:77:53","nodeType":"YulIdentifier","src":"17161:77:53"},"nativeSrc":"17161:79:53","nodeType":"YulFunctionCall","src":"17161:79:53"},"nativeSrc":"17161:79:53","nodeType":"YulExpressionStatement","src":"17161:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17134:7:53","nodeType":"YulIdentifier","src":"17134:7:53"},{"name":"headStart","nativeSrc":"17143:9:53","nodeType":"YulIdentifier","src":"17143:9:53"}],"functionName":{"name":"sub","nativeSrc":"17130:3:53","nodeType":"YulIdentifier","src":"17130:3:53"},"nativeSrc":"17130:23:53","nodeType":"YulFunctionCall","src":"17130:23:53"},{"kind":"number","nativeSrc":"17155:2:53","nodeType":"YulLiteral","src":"17155:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17126:3:53","nodeType":"YulIdentifier","src":"17126:3:53"},"nativeSrc":"17126:32:53","nodeType":"YulFunctionCall","src":"17126:32:53"},"nativeSrc":"17123:119:53","nodeType":"YulIf","src":"17123:119:53"},{"nativeSrc":"17252:128:53","nodeType":"YulBlock","src":"17252:128:53","statements":[{"nativeSrc":"17267:15:53","nodeType":"YulVariableDeclaration","src":"17267:15:53","value":{"kind":"number","nativeSrc":"17281:1:53","nodeType":"YulLiteral","src":"17281:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17271:6:53","nodeType":"YulTypedName","src":"17271:6:53","type":""}]},{"nativeSrc":"17296:74:53","nodeType":"YulAssignment","src":"17296:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17342:9:53","nodeType":"YulIdentifier","src":"17342:9:53"},{"name":"offset","nativeSrc":"17353:6:53","nodeType":"YulIdentifier","src":"17353:6:53"}],"functionName":{"name":"add","nativeSrc":"17338:3:53","nodeType":"YulIdentifier","src":"17338:3:53"},"nativeSrc":"17338:22:53","nodeType":"YulFunctionCall","src":"17338:22:53"},{"name":"dataEnd","nativeSrc":"17362:7:53","nodeType":"YulIdentifier","src":"17362:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"17306:31:53","nodeType":"YulIdentifier","src":"17306:31:53"},"nativeSrc":"17306:64:53","nodeType":"YulFunctionCall","src":"17306:64:53"},"variableNames":[{"name":"value0","nativeSrc":"17296:6:53","nodeType":"YulIdentifier","src":"17296:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"17036:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17083:9:53","nodeType":"YulTypedName","src":"17083:9:53","type":""},{"name":"dataEnd","nativeSrc":"17094:7:53","nodeType":"YulTypedName","src":"17094:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17106:6:53","nodeType":"YulTypedName","src":"17106:6:53","type":""}],"src":"17036:351:53"},{"body":{"nativeSrc":"17547:288:53","nodeType":"YulBlock","src":"17547:288:53","statements":[{"nativeSrc":"17557:26:53","nodeType":"YulAssignment","src":"17557:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17569:9:53","nodeType":"YulIdentifier","src":"17569:9:53"},{"kind":"number","nativeSrc":"17580:2:53","nodeType":"YulLiteral","src":"17580:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17565:3:53","nodeType":"YulIdentifier","src":"17565:3:53"},"nativeSrc":"17565:18:53","nodeType":"YulFunctionCall","src":"17565:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17557:4:53","nodeType":"YulIdentifier","src":"17557:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17637:6:53","nodeType":"YulIdentifier","src":"17637:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17650:9:53","nodeType":"YulIdentifier","src":"17650:9:53"},{"kind":"number","nativeSrc":"17661:1:53","nodeType":"YulLiteral","src":"17661:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17646:3:53","nodeType":"YulIdentifier","src":"17646:3:53"},"nativeSrc":"17646:17:53","nodeType":"YulFunctionCall","src":"17646:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17593:43:53","nodeType":"YulIdentifier","src":"17593:43:53"},"nativeSrc":"17593:71:53","nodeType":"YulFunctionCall","src":"17593:71:53"},"nativeSrc":"17593:71:53","nodeType":"YulExpressionStatement","src":"17593:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"17718:6:53","nodeType":"YulIdentifier","src":"17718:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17731:9:53","nodeType":"YulIdentifier","src":"17731:9:53"},{"kind":"number","nativeSrc":"17742:2:53","nodeType":"YulLiteral","src":"17742:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17727:3:53","nodeType":"YulIdentifier","src":"17727:3:53"},"nativeSrc":"17727:18:53","nodeType":"YulFunctionCall","src":"17727:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"17674:43:53","nodeType":"YulIdentifier","src":"17674:43:53"},"nativeSrc":"17674:72:53","nodeType":"YulFunctionCall","src":"17674:72:53"},"nativeSrc":"17674:72:53","nodeType":"YulExpressionStatement","src":"17674:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"17800:6:53","nodeType":"YulIdentifier","src":"17800:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17813:9:53","nodeType":"YulIdentifier","src":"17813:9:53"},{"kind":"number","nativeSrc":"17824:2:53","nodeType":"YulLiteral","src":"17824:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17809:3:53","nodeType":"YulIdentifier","src":"17809:3:53"},"nativeSrc":"17809:18:53","nodeType":"YulFunctionCall","src":"17809:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"17756:43:53","nodeType":"YulIdentifier","src":"17756:43:53"},"nativeSrc":"17756:72:53","nodeType":"YulFunctionCall","src":"17756:72:53"},"nativeSrc":"17756:72:53","nodeType":"YulExpressionStatement","src":"17756:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"17393:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17503:9:53","nodeType":"YulTypedName","src":"17503:9:53","type":""},{"name":"value2","nativeSrc":"17515:6:53","nodeType":"YulTypedName","src":"17515:6:53","type":""},{"name":"value1","nativeSrc":"17523:6:53","nodeType":"YulTypedName","src":"17523:6:53","type":""},{"name":"value0","nativeSrc":"17531:6:53","nodeType":"YulTypedName","src":"17531:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17542:4:53","nodeType":"YulTypedName","src":"17542:4:53","type":""}],"src":"17393:442:53"},{"body":{"nativeSrc":"17869:152:53","nodeType":"YulBlock","src":"17869:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17886:1:53","nodeType":"YulLiteral","src":"17886:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17889:77:53","nodeType":"YulLiteral","src":"17889:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17879:6:53","nodeType":"YulIdentifier","src":"17879:6:53"},"nativeSrc":"17879:88:53","nodeType":"YulFunctionCall","src":"17879:88:53"},"nativeSrc":"17879:88:53","nodeType":"YulExpressionStatement","src":"17879:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17983:1:53","nodeType":"YulLiteral","src":"17983:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"17986:4:53","nodeType":"YulLiteral","src":"17986:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"17976:6:53","nodeType":"YulIdentifier","src":"17976:6:53"},"nativeSrc":"17976:15:53","nodeType":"YulFunctionCall","src":"17976:15:53"},"nativeSrc":"17976:15:53","nodeType":"YulExpressionStatement","src":"17976:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18007:1:53","nodeType":"YulLiteral","src":"18007:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18010:4:53","nodeType":"YulLiteral","src":"18010:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18000:6:53","nodeType":"YulIdentifier","src":"18000:6:53"},"nativeSrc":"18000:15:53","nodeType":"YulFunctionCall","src":"18000:15:53"},"nativeSrc":"18000:15:53","nodeType":"YulExpressionStatement","src":"18000:15:53"}]},"name":"panic_error_0x22","nativeSrc":"17841:180:53","nodeType":"YulFunctionDefinition","src":"17841:180:53"},{"body":{"nativeSrc":"18078:269:53","nodeType":"YulBlock","src":"18078:269:53","statements":[{"nativeSrc":"18088:22:53","nodeType":"YulAssignment","src":"18088:22:53","value":{"arguments":[{"name":"data","nativeSrc":"18102:4:53","nodeType":"YulIdentifier","src":"18102:4:53"},{"kind":"number","nativeSrc":"18108:1:53","nodeType":"YulLiteral","src":"18108:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"18098:3:53","nodeType":"YulIdentifier","src":"18098:3:53"},"nativeSrc":"18098:12:53","nodeType":"YulFunctionCall","src":"18098:12:53"},"variableNames":[{"name":"length","nativeSrc":"18088:6:53","nodeType":"YulIdentifier","src":"18088:6:53"}]},{"nativeSrc":"18119:38:53","nodeType":"YulVariableDeclaration","src":"18119:38:53","value":{"arguments":[{"name":"data","nativeSrc":"18149:4:53","nodeType":"YulIdentifier","src":"18149:4:53"},{"kind":"number","nativeSrc":"18155:1:53","nodeType":"YulLiteral","src":"18155:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"18145:3:53","nodeType":"YulIdentifier","src":"18145:3:53"},"nativeSrc":"18145:12:53","nodeType":"YulFunctionCall","src":"18145:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"18123:18:53","nodeType":"YulTypedName","src":"18123:18:53","type":""}]},{"body":{"nativeSrc":"18196:51:53","nodeType":"YulBlock","src":"18196:51:53","statements":[{"nativeSrc":"18210:27:53","nodeType":"YulAssignment","src":"18210:27:53","value":{"arguments":[{"name":"length","nativeSrc":"18224:6:53","nodeType":"YulIdentifier","src":"18224:6:53"},{"kind":"number","nativeSrc":"18232:4:53","nodeType":"YulLiteral","src":"18232:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"18220:3:53","nodeType":"YulIdentifier","src":"18220:3:53"},"nativeSrc":"18220:17:53","nodeType":"YulFunctionCall","src":"18220:17:53"},"variableNames":[{"name":"length","nativeSrc":"18210:6:53","nodeType":"YulIdentifier","src":"18210:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"18176:18:53","nodeType":"YulIdentifier","src":"18176:18:53"}],"functionName":{"name":"iszero","nativeSrc":"18169:6:53","nodeType":"YulIdentifier","src":"18169:6:53"},"nativeSrc":"18169:26:53","nodeType":"YulFunctionCall","src":"18169:26:53"},"nativeSrc":"18166:81:53","nodeType":"YulIf","src":"18166:81:53"},{"body":{"nativeSrc":"18299:42:53","nodeType":"YulBlock","src":"18299:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"18313:16:53","nodeType":"YulIdentifier","src":"18313:16:53"},"nativeSrc":"18313:18:53","nodeType":"YulFunctionCall","src":"18313:18:53"},"nativeSrc":"18313:18:53","nodeType":"YulExpressionStatement","src":"18313:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"18263:18:53","nodeType":"YulIdentifier","src":"18263:18:53"},{"arguments":[{"name":"length","nativeSrc":"18286:6:53","nodeType":"YulIdentifier","src":"18286:6:53"},{"kind":"number","nativeSrc":"18294:2:53","nodeType":"YulLiteral","src":"18294:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"18283:2:53","nodeType":"YulIdentifier","src":"18283:2:53"},"nativeSrc":"18283:14:53","nodeType":"YulFunctionCall","src":"18283:14:53"}],"functionName":{"name":"eq","nativeSrc":"18260:2:53","nodeType":"YulIdentifier","src":"18260:2:53"},"nativeSrc":"18260:38:53","nodeType":"YulFunctionCall","src":"18260:38:53"},"nativeSrc":"18257:84:53","nodeType":"YulIf","src":"18257:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"18027:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"18062:4:53","nodeType":"YulTypedName","src":"18062:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"18071:6:53","nodeType":"YulTypedName","src":"18071:6:53","type":""}],"src":"18027:320:53"},{"body":{"nativeSrc":"18406:87:53","nodeType":"YulBlock","src":"18406:87:53","statements":[{"nativeSrc":"18416:11:53","nodeType":"YulAssignment","src":"18416:11:53","value":{"name":"ptr","nativeSrc":"18424:3:53","nodeType":"YulIdentifier","src":"18424:3:53"},"variableNames":[{"name":"data","nativeSrc":"18416:4:53","nodeType":"YulIdentifier","src":"18416:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18444:1:53","nodeType":"YulLiteral","src":"18444:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"18447:3:53","nodeType":"YulIdentifier","src":"18447:3:53"}],"functionName":{"name":"mstore","nativeSrc":"18437:6:53","nodeType":"YulIdentifier","src":"18437:6:53"},"nativeSrc":"18437:14:53","nodeType":"YulFunctionCall","src":"18437:14:53"},"nativeSrc":"18437:14:53","nodeType":"YulExpressionStatement","src":"18437:14:53"},{"nativeSrc":"18460:26:53","nodeType":"YulAssignment","src":"18460:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"18478:1:53","nodeType":"YulLiteral","src":"18478:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18481:4:53","nodeType":"YulLiteral","src":"18481:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18468:9:53","nodeType":"YulIdentifier","src":"18468:9:53"},"nativeSrc":"18468:18:53","nodeType":"YulFunctionCall","src":"18468:18:53"},"variableNames":[{"name":"data","nativeSrc":"18460:4:53","nodeType":"YulIdentifier","src":"18460:4:53"}]}]},"name":"array_dataslot_t_bytes_storage","nativeSrc":"18353:140:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"18393:3:53","nodeType":"YulTypedName","src":"18393:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"18401:4:53","nodeType":"YulTypedName","src":"18401:4:53","type":""}],"src":"18353:140:53"},{"body":{"nativeSrc":"18543:49:53","nodeType":"YulBlock","src":"18543:49:53","statements":[{"nativeSrc":"18553:33:53","nodeType":"YulAssignment","src":"18553:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18571:5:53","nodeType":"YulIdentifier","src":"18571:5:53"},{"kind":"number","nativeSrc":"18578:2:53","nodeType":"YulLiteral","src":"18578:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"18567:3:53","nodeType":"YulIdentifier","src":"18567:3:53"},"nativeSrc":"18567:14:53","nodeType":"YulFunctionCall","src":"18567:14:53"},{"kind":"number","nativeSrc":"18583:2:53","nodeType":"YulLiteral","src":"18583:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"18563:3:53","nodeType":"YulIdentifier","src":"18563:3:53"},"nativeSrc":"18563:23:53","nodeType":"YulFunctionCall","src":"18563:23:53"},"variableNames":[{"name":"result","nativeSrc":"18553:6:53","nodeType":"YulIdentifier","src":"18553:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"18499:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18526:5:53","nodeType":"YulTypedName","src":"18526:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"18536:6:53","nodeType":"YulTypedName","src":"18536:6:53","type":""}],"src":"18499:93:53"},{"body":{"nativeSrc":"18651:54:53","nodeType":"YulBlock","src":"18651:54:53","statements":[{"nativeSrc":"18661:37:53","nodeType":"YulAssignment","src":"18661:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"18686:4:53","nodeType":"YulIdentifier","src":"18686:4:53"},{"name":"value","nativeSrc":"18692:5:53","nodeType":"YulIdentifier","src":"18692:5:53"}],"functionName":{"name":"shl","nativeSrc":"18682:3:53","nodeType":"YulIdentifier","src":"18682:3:53"},"nativeSrc":"18682:16:53","nodeType":"YulFunctionCall","src":"18682:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"18661:8:53","nodeType":"YulIdentifier","src":"18661:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"18598:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"18626:4:53","nodeType":"YulTypedName","src":"18626:4:53","type":""},{"name":"value","nativeSrc":"18632:5:53","nodeType":"YulTypedName","src":"18632:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"18642:8:53","nodeType":"YulTypedName","src":"18642:8:53","type":""}],"src":"18598:107:53"},{"body":{"nativeSrc":"18787:317:53","nodeType":"YulBlock","src":"18787:317:53","statements":[{"nativeSrc":"18797:35:53","nodeType":"YulVariableDeclaration","src":"18797:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"18818:10:53","nodeType":"YulIdentifier","src":"18818:10:53"},{"kind":"number","nativeSrc":"18830:1:53","nodeType":"YulLiteral","src":"18830:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"18814:3:53","nodeType":"YulIdentifier","src":"18814:3:53"},"nativeSrc":"18814:18:53","nodeType":"YulFunctionCall","src":"18814:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"18801:9:53","nodeType":"YulTypedName","src":"18801:9:53","type":""}]},{"nativeSrc":"18841:109:53","nodeType":"YulVariableDeclaration","src":"18841:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"18872:9:53","nodeType":"YulIdentifier","src":"18872:9:53"},{"kind":"number","nativeSrc":"18883:66:53","nodeType":"YulLiteral","src":"18883:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"18853:18:53","nodeType":"YulIdentifier","src":"18853:18:53"},"nativeSrc":"18853:97:53","nodeType":"YulFunctionCall","src":"18853:97:53"},"variables":[{"name":"mask","nativeSrc":"18845:4:53","nodeType":"YulTypedName","src":"18845:4:53","type":""}]},{"nativeSrc":"18959:51:53","nodeType":"YulAssignment","src":"18959:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"18990:9:53","nodeType":"YulIdentifier","src":"18990:9:53"},{"name":"toInsert","nativeSrc":"19001:8:53","nodeType":"YulIdentifier","src":"19001:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"18971:18:53","nodeType":"YulIdentifier","src":"18971:18:53"},"nativeSrc":"18971:39:53","nodeType":"YulFunctionCall","src":"18971:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"18959:8:53","nodeType":"YulIdentifier","src":"18959:8:53"}]},{"nativeSrc":"19019:30:53","nodeType":"YulAssignment","src":"19019:30:53","value":{"arguments":[{"name":"value","nativeSrc":"19032:5:53","nodeType":"YulIdentifier","src":"19032:5:53"},{"arguments":[{"name":"mask","nativeSrc":"19043:4:53","nodeType":"YulIdentifier","src":"19043:4:53"}],"functionName":{"name":"not","nativeSrc":"19039:3:53","nodeType":"YulIdentifier","src":"19039:3:53"},"nativeSrc":"19039:9:53","nodeType":"YulFunctionCall","src":"19039:9:53"}],"functionName":{"name":"and","nativeSrc":"19028:3:53","nodeType":"YulIdentifier","src":"19028:3:53"},"nativeSrc":"19028:21:53","nodeType":"YulFunctionCall","src":"19028:21:53"},"variableNames":[{"name":"value","nativeSrc":"19019:5:53","nodeType":"YulIdentifier","src":"19019:5:53"}]},{"nativeSrc":"19058:40:53","nodeType":"YulAssignment","src":"19058:40:53","value":{"arguments":[{"name":"value","nativeSrc":"19071:5:53","nodeType":"YulIdentifier","src":"19071:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"19082:8:53","nodeType":"YulIdentifier","src":"19082:8:53"},{"name":"mask","nativeSrc":"19092:4:53","nodeType":"YulIdentifier","src":"19092:4:53"}],"functionName":{"name":"and","nativeSrc":"19078:3:53","nodeType":"YulIdentifier","src":"19078:3:53"},"nativeSrc":"19078:19:53","nodeType":"YulFunctionCall","src":"19078:19:53"}],"functionName":{"name":"or","nativeSrc":"19068:2:53","nodeType":"YulIdentifier","src":"19068:2:53"},"nativeSrc":"19068:30:53","nodeType":"YulFunctionCall","src":"19068:30:53"},"variableNames":[{"name":"result","nativeSrc":"19058:6:53","nodeType":"YulIdentifier","src":"19058:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"18711:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18748:5:53","nodeType":"YulTypedName","src":"18748:5:53","type":""},{"name":"shiftBytes","nativeSrc":"18755:10:53","nodeType":"YulTypedName","src":"18755:10:53","type":""},{"name":"toInsert","nativeSrc":"18767:8:53","nodeType":"YulTypedName","src":"18767:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"18780:6:53","nodeType":"YulTypedName","src":"18780:6:53","type":""}],"src":"18711:393:53"},{"body":{"nativeSrc":"19170:82:53","nodeType":"YulBlock","src":"19170:82:53","statements":[{"nativeSrc":"19180:66:53","nodeType":"YulAssignment","src":"19180:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19238:5:53","nodeType":"YulIdentifier","src":"19238:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19220:17:53","nodeType":"YulIdentifier","src":"19220:17:53"},"nativeSrc":"19220:24:53","nodeType":"YulFunctionCall","src":"19220:24:53"}],"functionName":{"name":"identity","nativeSrc":"19211:8:53","nodeType":"YulIdentifier","src":"19211:8:53"},"nativeSrc":"19211:34:53","nodeType":"YulFunctionCall","src":"19211:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19193:17:53","nodeType":"YulIdentifier","src":"19193:17:53"},"nativeSrc":"19193:53:53","nodeType":"YulFunctionCall","src":"19193:53:53"},"variableNames":[{"name":"converted","nativeSrc":"19180:9:53","nodeType":"YulIdentifier","src":"19180:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"19110:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19150:5:53","nodeType":"YulTypedName","src":"19150:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"19160:9:53","nodeType":"YulTypedName","src":"19160:9:53","type":""}],"src":"19110:142:53"},{"body":{"nativeSrc":"19305:28:53","nodeType":"YulBlock","src":"19305:28:53","statements":[{"nativeSrc":"19315:12:53","nodeType":"YulAssignment","src":"19315:12:53","value":{"name":"value","nativeSrc":"19322:5:53","nodeType":"YulIdentifier","src":"19322:5:53"},"variableNames":[{"name":"ret","nativeSrc":"19315:3:53","nodeType":"YulIdentifier","src":"19315:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"19258:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19291:5:53","nodeType":"YulTypedName","src":"19291:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"19301:3:53","nodeType":"YulTypedName","src":"19301:3:53","type":""}],"src":"19258:75:53"},{"body":{"nativeSrc":"19415:193:53","nodeType":"YulBlock","src":"19415:193:53","statements":[{"nativeSrc":"19425:63:53","nodeType":"YulVariableDeclaration","src":"19425:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"19480:7:53","nodeType":"YulIdentifier","src":"19480:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"19449:30:53","nodeType":"YulIdentifier","src":"19449:30:53"},"nativeSrc":"19449:39:53","nodeType":"YulFunctionCall","src":"19449:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"19429:16:53","nodeType":"YulTypedName","src":"19429:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19504:4:53","nodeType":"YulIdentifier","src":"19504:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"19544:4:53","nodeType":"YulIdentifier","src":"19544:4:53"}],"functionName":{"name":"sload","nativeSrc":"19538:5:53","nodeType":"YulIdentifier","src":"19538:5:53"},"nativeSrc":"19538:11:53","nodeType":"YulFunctionCall","src":"19538:11:53"},{"name":"offset","nativeSrc":"19551:6:53","nodeType":"YulIdentifier","src":"19551:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"19583:16:53","nodeType":"YulIdentifier","src":"19583:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"19559:23:53","nodeType":"YulIdentifier","src":"19559:23:53"},"nativeSrc":"19559:41:53","nodeType":"YulFunctionCall","src":"19559:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"19510:27:53","nodeType":"YulIdentifier","src":"19510:27:53"},"nativeSrc":"19510:91:53","nodeType":"YulFunctionCall","src":"19510:91:53"}],"functionName":{"name":"sstore","nativeSrc":"19497:6:53","nodeType":"YulIdentifier","src":"19497:6:53"},"nativeSrc":"19497:105:53","nodeType":"YulFunctionCall","src":"19497:105:53"},"nativeSrc":"19497:105:53","nodeType":"YulExpressionStatement","src":"19497:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"19339:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19392:4:53","nodeType":"YulTypedName","src":"19392:4:53","type":""},{"name":"offset","nativeSrc":"19398:6:53","nodeType":"YulTypedName","src":"19398:6:53","type":""},{"name":"value_0","nativeSrc":"19406:7:53","nodeType":"YulTypedName","src":"19406:7:53","type":""}],"src":"19339:269:53"},{"body":{"nativeSrc":"19663:24:53","nodeType":"YulBlock","src":"19663:24:53","statements":[{"nativeSrc":"19673:8:53","nodeType":"YulAssignment","src":"19673:8:53","value":{"kind":"number","nativeSrc":"19680:1:53","nodeType":"YulLiteral","src":"19680:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"19673:3:53","nodeType":"YulIdentifier","src":"19673:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"19614:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"19659:3:53","nodeType":"YulTypedName","src":"19659:3:53","type":""}],"src":"19614:73:53"},{"body":{"nativeSrc":"19746:136:53","nodeType":"YulBlock","src":"19746:136:53","statements":[{"nativeSrc":"19756:46:53","nodeType":"YulVariableDeclaration","src":"19756:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"19770:30:53","nodeType":"YulIdentifier","src":"19770:30:53"},"nativeSrc":"19770:32:53","nodeType":"YulFunctionCall","src":"19770:32:53"},"variables":[{"name":"zero_0","nativeSrc":"19760:6:53","nodeType":"YulTypedName","src":"19760:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19855:4:53","nodeType":"YulIdentifier","src":"19855:4:53"},{"name":"offset","nativeSrc":"19861:6:53","nodeType":"YulIdentifier","src":"19861:6:53"},{"name":"zero_0","nativeSrc":"19869:6:53","nodeType":"YulIdentifier","src":"19869:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"19811:43:53","nodeType":"YulIdentifier","src":"19811:43:53"},"nativeSrc":"19811:65:53","nodeType":"YulFunctionCall","src":"19811:65:53"},"nativeSrc":"19811:65:53","nodeType":"YulExpressionStatement","src":"19811:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"19693:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19732:4:53","nodeType":"YulTypedName","src":"19732:4:53","type":""},{"name":"offset","nativeSrc":"19738:6:53","nodeType":"YulTypedName","src":"19738:6:53","type":""}],"src":"19693:189:53"},{"body":{"nativeSrc":"19938:136:53","nodeType":"YulBlock","src":"19938:136:53","statements":[{"body":{"nativeSrc":"20005:63:53","nodeType":"YulBlock","src":"20005:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"20049:5:53","nodeType":"YulIdentifier","src":"20049:5:53"},{"kind":"number","nativeSrc":"20056:1:53","nodeType":"YulLiteral","src":"20056:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"20019:29:53","nodeType":"YulIdentifier","src":"20019:29:53"},"nativeSrc":"20019:39:53","nodeType":"YulFunctionCall","src":"20019:39:53"},"nativeSrc":"20019:39:53","nodeType":"YulExpressionStatement","src":"20019:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"19958:5:53","nodeType":"YulIdentifier","src":"19958:5:53"},{"name":"end","nativeSrc":"19965:3:53","nodeType":"YulIdentifier","src":"19965:3:53"}],"functionName":{"name":"lt","nativeSrc":"19955:2:53","nodeType":"YulIdentifier","src":"19955:2:53"},"nativeSrc":"19955:14:53","nodeType":"YulFunctionCall","src":"19955:14:53"},"nativeSrc":"19948:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"19970:26:53","nodeType":"YulBlock","src":"19970:26:53","statements":[{"nativeSrc":"19972:22:53","nodeType":"YulAssignment","src":"19972:22:53","value":{"arguments":[{"name":"start","nativeSrc":"19985:5:53","nodeType":"YulIdentifier","src":"19985:5:53"},{"kind":"number","nativeSrc":"19992:1:53","nodeType":"YulLiteral","src":"19992:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19981:3:53","nodeType":"YulIdentifier","src":"19981:3:53"},"nativeSrc":"19981:13:53","nodeType":"YulFunctionCall","src":"19981:13:53"},"variableNames":[{"name":"start","nativeSrc":"19972:5:53","nodeType":"YulIdentifier","src":"19972:5:53"}]}]},"pre":{"nativeSrc":"19952:2:53","nodeType":"YulBlock","src":"19952:2:53","statements":[]},"src":"19948:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"19888:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"19926:5:53","nodeType":"YulTypedName","src":"19926:5:53","type":""},{"name":"end","nativeSrc":"19933:3:53","nodeType":"YulTypedName","src":"19933:3:53","type":""}],"src":"19888:186:53"},{"body":{"nativeSrc":"20158:463:53","nodeType":"YulBlock","src":"20158:463:53","statements":[{"body":{"nativeSrc":"20184:430:53","nodeType":"YulBlock","src":"20184:430:53","statements":[{"nativeSrc":"20198:53:53","nodeType":"YulVariableDeclaration","src":"20198:53:53","value":{"arguments":[{"name":"array","nativeSrc":"20245:5:53","nodeType":"YulIdentifier","src":"20245:5:53"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"20214:30:53","nodeType":"YulIdentifier","src":"20214:30:53"},"nativeSrc":"20214:37:53","nodeType":"YulFunctionCall","src":"20214:37:53"},"variables":[{"name":"dataArea","nativeSrc":"20202:8:53","nodeType":"YulTypedName","src":"20202:8:53","type":""}]},{"nativeSrc":"20264:63:53","nodeType":"YulVariableDeclaration","src":"20264:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"20287:8:53","nodeType":"YulIdentifier","src":"20287:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"20315:10:53","nodeType":"YulIdentifier","src":"20315:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"20297:17:53","nodeType":"YulIdentifier","src":"20297:17:53"},"nativeSrc":"20297:29:53","nodeType":"YulFunctionCall","src":"20297:29:53"}],"functionName":{"name":"add","nativeSrc":"20283:3:53","nodeType":"YulIdentifier","src":"20283:3:53"},"nativeSrc":"20283:44:53","nodeType":"YulFunctionCall","src":"20283:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"20268:11:53","nodeType":"YulTypedName","src":"20268:11:53","type":""}]},{"body":{"nativeSrc":"20484:27:53","nodeType":"YulBlock","src":"20484:27:53","statements":[{"nativeSrc":"20486:23:53","nodeType":"YulAssignment","src":"20486:23:53","value":{"name":"dataArea","nativeSrc":"20501:8:53","nodeType":"YulIdentifier","src":"20501:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"20486:11:53","nodeType":"YulIdentifier","src":"20486:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"20468:10:53","nodeType":"YulIdentifier","src":"20468:10:53"},{"kind":"number","nativeSrc":"20480:2:53","nodeType":"YulLiteral","src":"20480:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"20465:2:53","nodeType":"YulIdentifier","src":"20465:2:53"},"nativeSrc":"20465:18:53","nodeType":"YulFunctionCall","src":"20465:18:53"},"nativeSrc":"20462:49:53","nodeType":"YulIf","src":"20462:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"20553:11:53","nodeType":"YulIdentifier","src":"20553:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"20570:8:53","nodeType":"YulIdentifier","src":"20570:8:53"},{"arguments":[{"name":"len","nativeSrc":"20598:3:53","nodeType":"YulIdentifier","src":"20598:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"20580:17:53","nodeType":"YulIdentifier","src":"20580:17:53"},"nativeSrc":"20580:22:53","nodeType":"YulFunctionCall","src":"20580:22:53"}],"functionName":{"name":"add","nativeSrc":"20566:3:53","nodeType":"YulIdentifier","src":"20566:3:53"},"nativeSrc":"20566:37:53","nodeType":"YulFunctionCall","src":"20566:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"20524:28:53","nodeType":"YulIdentifier","src":"20524:28:53"},"nativeSrc":"20524:80:53","nodeType":"YulFunctionCall","src":"20524:80:53"},"nativeSrc":"20524:80:53","nodeType":"YulExpressionStatement","src":"20524:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"20175:3:53","nodeType":"YulIdentifier","src":"20175:3:53"},{"kind":"number","nativeSrc":"20180:2:53","nodeType":"YulLiteral","src":"20180:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"20172:2:53","nodeType":"YulIdentifier","src":"20172:2:53"},"nativeSrc":"20172:11:53","nodeType":"YulFunctionCall","src":"20172:11:53"},"nativeSrc":"20169:445:53","nodeType":"YulIf","src":"20169:445:53"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"20080:541:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"20134:5:53","nodeType":"YulTypedName","src":"20134:5:53","type":""},{"name":"len","nativeSrc":"20141:3:53","nodeType":"YulTypedName","src":"20141:3:53","type":""},{"name":"startIndex","nativeSrc":"20146:10:53","nodeType":"YulTypedName","src":"20146:10:53","type":""}],"src":"20080:541:53"},{"body":{"nativeSrc":"20690:54:53","nodeType":"YulBlock","src":"20690:54:53","statements":[{"nativeSrc":"20700:37:53","nodeType":"YulAssignment","src":"20700:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"20725:4:53","nodeType":"YulIdentifier","src":"20725:4:53"},{"name":"value","nativeSrc":"20731:5:53","nodeType":"YulIdentifier","src":"20731:5:53"}],"functionName":{"name":"shr","nativeSrc":"20721:3:53","nodeType":"YulIdentifier","src":"20721:3:53"},"nativeSrc":"20721:16:53","nodeType":"YulFunctionCall","src":"20721:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"20700:8:53","nodeType":"YulIdentifier","src":"20700:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"20627:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"20665:4:53","nodeType":"YulTypedName","src":"20665:4:53","type":""},{"name":"value","nativeSrc":"20671:5:53","nodeType":"YulTypedName","src":"20671:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"20681:8:53","nodeType":"YulTypedName","src":"20681:8:53","type":""}],"src":"20627:117:53"},{"body":{"nativeSrc":"20801:118:53","nodeType":"YulBlock","src":"20801:118:53","statements":[{"nativeSrc":"20811:68:53","nodeType":"YulVariableDeclaration","src":"20811:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20860:1:53","nodeType":"YulLiteral","src":"20860:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"20863:5:53","nodeType":"YulIdentifier","src":"20863:5:53"}],"functionName":{"name":"mul","nativeSrc":"20856:3:53","nodeType":"YulIdentifier","src":"20856:3:53"},"nativeSrc":"20856:13:53","nodeType":"YulFunctionCall","src":"20856:13:53"},{"arguments":[{"kind":"number","nativeSrc":"20875:1:53","nodeType":"YulLiteral","src":"20875:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"20871:3:53","nodeType":"YulIdentifier","src":"20871:3:53"},"nativeSrc":"20871:6:53","nodeType":"YulFunctionCall","src":"20871:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"20827:28:53","nodeType":"YulIdentifier","src":"20827:28:53"},"nativeSrc":"20827:51:53","nodeType":"YulFunctionCall","src":"20827:51:53"}],"functionName":{"name":"not","nativeSrc":"20823:3:53","nodeType":"YulIdentifier","src":"20823:3:53"},"nativeSrc":"20823:56:53","nodeType":"YulFunctionCall","src":"20823:56:53"},"variables":[{"name":"mask","nativeSrc":"20815:4:53","nodeType":"YulTypedName","src":"20815:4:53","type":""}]},{"nativeSrc":"20888:25:53","nodeType":"YulAssignment","src":"20888:25:53","value":{"arguments":[{"name":"data","nativeSrc":"20902:4:53","nodeType":"YulIdentifier","src":"20902:4:53"},{"name":"mask","nativeSrc":"20908:4:53","nodeType":"YulIdentifier","src":"20908:4:53"}],"functionName":{"name":"and","nativeSrc":"20898:3:53","nodeType":"YulIdentifier","src":"20898:3:53"},"nativeSrc":"20898:15:53","nodeType":"YulFunctionCall","src":"20898:15:53"},"variableNames":[{"name":"result","nativeSrc":"20888:6:53","nodeType":"YulIdentifier","src":"20888:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"20750:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"20778:4:53","nodeType":"YulTypedName","src":"20778:4:53","type":""},{"name":"bytes","nativeSrc":"20784:5:53","nodeType":"YulTypedName","src":"20784:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"20794:6:53","nodeType":"YulTypedName","src":"20794:6:53","type":""}],"src":"20750:169:53"},{"body":{"nativeSrc":"21005:214:53","nodeType":"YulBlock","src":"21005:214:53","statements":[{"nativeSrc":"21138:37:53","nodeType":"YulAssignment","src":"21138:37:53","value":{"arguments":[{"name":"data","nativeSrc":"21165:4:53","nodeType":"YulIdentifier","src":"21165:4:53"},{"name":"len","nativeSrc":"21171:3:53","nodeType":"YulIdentifier","src":"21171:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"21146:18:53","nodeType":"YulIdentifier","src":"21146:18:53"},"nativeSrc":"21146:29:53","nodeType":"YulFunctionCall","src":"21146:29:53"},"variableNames":[{"name":"data","nativeSrc":"21138:4:53","nodeType":"YulIdentifier","src":"21138:4:53"}]},{"nativeSrc":"21184:29:53","nodeType":"YulAssignment","src":"21184:29:53","value":{"arguments":[{"name":"data","nativeSrc":"21195:4:53","nodeType":"YulIdentifier","src":"21195:4:53"},{"arguments":[{"kind":"number","nativeSrc":"21205:1:53","nodeType":"YulLiteral","src":"21205:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"21208:3:53","nodeType":"YulIdentifier","src":"21208:3:53"}],"functionName":{"name":"mul","nativeSrc":"21201:3:53","nodeType":"YulIdentifier","src":"21201:3:53"},"nativeSrc":"21201:11:53","nodeType":"YulFunctionCall","src":"21201:11:53"}],"functionName":{"name":"or","nativeSrc":"21192:2:53","nodeType":"YulIdentifier","src":"21192:2:53"},"nativeSrc":"21192:21:53","nodeType":"YulFunctionCall","src":"21192:21:53"},"variableNames":[{"name":"used","nativeSrc":"21184:4:53","nodeType":"YulIdentifier","src":"21184:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"20924:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"20986:4:53","nodeType":"YulTypedName","src":"20986:4:53","type":""},{"name":"len","nativeSrc":"20992:3:53","nodeType":"YulTypedName","src":"20992:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"21000:4:53","nodeType":"YulTypedName","src":"21000:4:53","type":""}],"src":"20924:295:53"},{"body":{"nativeSrc":"21314:1300:53","nodeType":"YulBlock","src":"21314:1300:53","statements":[{"nativeSrc":"21325:50:53","nodeType":"YulVariableDeclaration","src":"21325:50:53","value":{"arguments":[{"name":"src","nativeSrc":"21371:3:53","nodeType":"YulIdentifier","src":"21371:3:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"21339:31:53","nodeType":"YulIdentifier","src":"21339:31:53"},"nativeSrc":"21339:36:53","nodeType":"YulFunctionCall","src":"21339:36:53"},"variables":[{"name":"newLen","nativeSrc":"21329:6:53","nodeType":"YulTypedName","src":"21329:6:53","type":""}]},{"body":{"nativeSrc":"21460:22:53","nodeType":"YulBlock","src":"21460:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"21462:16:53","nodeType":"YulIdentifier","src":"21462:16:53"},"nativeSrc":"21462:18:53","nodeType":"YulFunctionCall","src":"21462:18:53"},"nativeSrc":"21462:18:53","nodeType":"YulExpressionStatement","src":"21462:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"21432:6:53","nodeType":"YulIdentifier","src":"21432:6:53"},{"kind":"number","nativeSrc":"21440:18:53","nodeType":"YulLiteral","src":"21440:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21429:2:53","nodeType":"YulIdentifier","src":"21429:2:53"},"nativeSrc":"21429:30:53","nodeType":"YulFunctionCall","src":"21429:30:53"},"nativeSrc":"21426:56:53","nodeType":"YulIf","src":"21426:56:53"},{"nativeSrc":"21492:52:53","nodeType":"YulVariableDeclaration","src":"21492:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"21538:4:53","nodeType":"YulIdentifier","src":"21538:4:53"}],"functionName":{"name":"sload","nativeSrc":"21532:5:53","nodeType":"YulIdentifier","src":"21532:5:53"},"nativeSrc":"21532:11:53","nodeType":"YulFunctionCall","src":"21532:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"21506:25:53","nodeType":"YulIdentifier","src":"21506:25:53"},"nativeSrc":"21506:38:53","nodeType":"YulFunctionCall","src":"21506:38:53"},"variables":[{"name":"oldLen","nativeSrc":"21496:6:53","nodeType":"YulTypedName","src":"21496:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21636:4:53","nodeType":"YulIdentifier","src":"21636:4:53"},{"name":"oldLen","nativeSrc":"21642:6:53","nodeType":"YulIdentifier","src":"21642:6:53"},{"name":"newLen","nativeSrc":"21650:6:53","nodeType":"YulIdentifier","src":"21650:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"21591:44:53","nodeType":"YulIdentifier","src":"21591:44:53"},"nativeSrc":"21591:66:53","nodeType":"YulFunctionCall","src":"21591:66:53"},"nativeSrc":"21591:66:53","nodeType":"YulExpressionStatement","src":"21591:66:53"},{"nativeSrc":"21667:18:53","nodeType":"YulVariableDeclaration","src":"21667:18:53","value":{"kind":"number","nativeSrc":"21684:1:53","nodeType":"YulLiteral","src":"21684:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"21671:9:53","nodeType":"YulTypedName","src":"21671:9:53","type":""}]},{"nativeSrc":"21695:17:53","nodeType":"YulAssignment","src":"21695:17:53","value":{"kind":"number","nativeSrc":"21708:4:53","nodeType":"YulLiteral","src":"21708:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"21695:9:53","nodeType":"YulIdentifier","src":"21695:9:53"}]},{"cases":[{"body":{"nativeSrc":"21759:610:53","nodeType":"YulBlock","src":"21759:610:53","statements":[{"nativeSrc":"21773:37:53","nodeType":"YulVariableDeclaration","src":"21773:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"21792:6:53","nodeType":"YulIdentifier","src":"21792:6:53"},{"arguments":[{"kind":"number","nativeSrc":"21804:4:53","nodeType":"YulLiteral","src":"21804:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"21800:3:53","nodeType":"YulIdentifier","src":"21800:3:53"},"nativeSrc":"21800:9:53","nodeType":"YulFunctionCall","src":"21800:9:53"}],"functionName":{"name":"and","nativeSrc":"21788:3:53","nodeType":"YulIdentifier","src":"21788:3:53"},"nativeSrc":"21788:22:53","nodeType":"YulFunctionCall","src":"21788:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"21777:7:53","nodeType":"YulTypedName","src":"21777:7:53","type":""}]},{"nativeSrc":"21824:50:53","nodeType":"YulVariableDeclaration","src":"21824:50:53","value":{"arguments":[{"name":"slot","nativeSrc":"21869:4:53","nodeType":"YulIdentifier","src":"21869:4:53"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"21838:30:53","nodeType":"YulIdentifier","src":"21838:30:53"},"nativeSrc":"21838:36:53","nodeType":"YulFunctionCall","src":"21838:36:53"},"variables":[{"name":"dstPtr","nativeSrc":"21828:6:53","nodeType":"YulTypedName","src":"21828:6:53","type":""}]},{"nativeSrc":"21887:10:53","nodeType":"YulVariableDeclaration","src":"21887:10:53","value":{"kind":"number","nativeSrc":"21896:1:53","nodeType":"YulLiteral","src":"21896:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"21891:1:53","nodeType":"YulTypedName","src":"21891:1:53","type":""}]},{"body":{"nativeSrc":"21955:163:53","nodeType":"YulBlock","src":"21955:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"21980:6:53","nodeType":"YulIdentifier","src":"21980:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"21998:3:53","nodeType":"YulIdentifier","src":"21998:3:53"},{"name":"srcOffset","nativeSrc":"22003:9:53","nodeType":"YulIdentifier","src":"22003:9:53"}],"functionName":{"name":"add","nativeSrc":"21994:3:53","nodeType":"YulIdentifier","src":"21994:3:53"},"nativeSrc":"21994:19:53","nodeType":"YulFunctionCall","src":"21994:19:53"}],"functionName":{"name":"mload","nativeSrc":"21988:5:53","nodeType":"YulIdentifier","src":"21988:5:53"},"nativeSrc":"21988:26:53","nodeType":"YulFunctionCall","src":"21988:26:53"}],"functionName":{"name":"sstore","nativeSrc":"21973:6:53","nodeType":"YulIdentifier","src":"21973:6:53"},"nativeSrc":"21973:42:53","nodeType":"YulFunctionCall","src":"21973:42:53"},"nativeSrc":"21973:42:53","nodeType":"YulExpressionStatement","src":"21973:42:53"},{"nativeSrc":"22032:24:53","nodeType":"YulAssignment","src":"22032:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"22046:6:53","nodeType":"YulIdentifier","src":"22046:6:53"},{"kind":"number","nativeSrc":"22054:1:53","nodeType":"YulLiteral","src":"22054:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22042:3:53","nodeType":"YulIdentifier","src":"22042:3:53"},"nativeSrc":"22042:14:53","nodeType":"YulFunctionCall","src":"22042:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"22032:6:53","nodeType":"YulIdentifier","src":"22032:6:53"}]},{"nativeSrc":"22073:31:53","nodeType":"YulAssignment","src":"22073:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"22090:9:53","nodeType":"YulIdentifier","src":"22090:9:53"},{"kind":"number","nativeSrc":"22101:2:53","nodeType":"YulLiteral","src":"22101:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22086:3:53","nodeType":"YulIdentifier","src":"22086:3:53"},"nativeSrc":"22086:18:53","nodeType":"YulFunctionCall","src":"22086:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"22073:9:53","nodeType":"YulIdentifier","src":"22073:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"21921:1:53","nodeType":"YulIdentifier","src":"21921:1:53"},{"name":"loopEnd","nativeSrc":"21924:7:53","nodeType":"YulIdentifier","src":"21924:7:53"}],"functionName":{"name":"lt","nativeSrc":"21918:2:53","nodeType":"YulIdentifier","src":"21918:2:53"},"nativeSrc":"21918:14:53","nodeType":"YulFunctionCall","src":"21918:14:53"},"nativeSrc":"21910:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"21933:21:53","nodeType":"YulBlock","src":"21933:21:53","statements":[{"nativeSrc":"21935:17:53","nodeType":"YulAssignment","src":"21935:17:53","value":{"arguments":[{"name":"i","nativeSrc":"21944:1:53","nodeType":"YulIdentifier","src":"21944:1:53"},{"kind":"number","nativeSrc":"21947:4:53","nodeType":"YulLiteral","src":"21947:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21940:3:53","nodeType":"YulIdentifier","src":"21940:3:53"},"nativeSrc":"21940:12:53","nodeType":"YulFunctionCall","src":"21940:12:53"},"variableNames":[{"name":"i","nativeSrc":"21935:1:53","nodeType":"YulIdentifier","src":"21935:1:53"}]}]},"pre":{"nativeSrc":"21914:3:53","nodeType":"YulBlock","src":"21914:3:53","statements":[]},"src":"21910:208:53"},{"body":{"nativeSrc":"22154:156:53","nodeType":"YulBlock","src":"22154:156:53","statements":[{"nativeSrc":"22172:43:53","nodeType":"YulVariableDeclaration","src":"22172:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22199:3:53","nodeType":"YulIdentifier","src":"22199:3:53"},{"name":"srcOffset","nativeSrc":"22204:9:53","nodeType":"YulIdentifier","src":"22204:9:53"}],"functionName":{"name":"add","nativeSrc":"22195:3:53","nodeType":"YulIdentifier","src":"22195:3:53"},"nativeSrc":"22195:19:53","nodeType":"YulFunctionCall","src":"22195:19:53"}],"functionName":{"name":"mload","nativeSrc":"22189:5:53","nodeType":"YulIdentifier","src":"22189:5:53"},"nativeSrc":"22189:26:53","nodeType":"YulFunctionCall","src":"22189:26:53"},"variables":[{"name":"lastValue","nativeSrc":"22176:9:53","nodeType":"YulTypedName","src":"22176:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"22239:6:53","nodeType":"YulIdentifier","src":"22239:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"22266:9:53","nodeType":"YulIdentifier","src":"22266:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"22281:6:53","nodeType":"YulIdentifier","src":"22281:6:53"},{"kind":"number","nativeSrc":"22289:4:53","nodeType":"YulLiteral","src":"22289:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"22277:3:53","nodeType":"YulIdentifier","src":"22277:3:53"},"nativeSrc":"22277:17:53","nodeType":"YulFunctionCall","src":"22277:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"22247:18:53","nodeType":"YulIdentifier","src":"22247:18:53"},"nativeSrc":"22247:48:53","nodeType":"YulFunctionCall","src":"22247:48:53"}],"functionName":{"name":"sstore","nativeSrc":"22232:6:53","nodeType":"YulIdentifier","src":"22232:6:53"},"nativeSrc":"22232:64:53","nodeType":"YulFunctionCall","src":"22232:64:53"},"nativeSrc":"22232:64:53","nodeType":"YulExpressionStatement","src":"22232:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"22137:7:53","nodeType":"YulIdentifier","src":"22137:7:53"},{"name":"newLen","nativeSrc":"22146:6:53","nodeType":"YulIdentifier","src":"22146:6:53"}],"functionName":{"name":"lt","nativeSrc":"22134:2:53","nodeType":"YulIdentifier","src":"22134:2:53"},"nativeSrc":"22134:19:53","nodeType":"YulFunctionCall","src":"22134:19:53"},"nativeSrc":"22131:179:53","nodeType":"YulIf","src":"22131:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22330:4:53","nodeType":"YulIdentifier","src":"22330:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"22344:6:53","nodeType":"YulIdentifier","src":"22344:6:53"},{"kind":"number","nativeSrc":"22352:1:53","nodeType":"YulLiteral","src":"22352:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"22340:3:53","nodeType":"YulIdentifier","src":"22340:3:53"},"nativeSrc":"22340:14:53","nodeType":"YulFunctionCall","src":"22340:14:53"},{"kind":"number","nativeSrc":"22356:1:53","nodeType":"YulLiteral","src":"22356:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22336:3:53","nodeType":"YulIdentifier","src":"22336:3:53"},"nativeSrc":"22336:22:53","nodeType":"YulFunctionCall","src":"22336:22:53"}],"functionName":{"name":"sstore","nativeSrc":"22323:6:53","nodeType":"YulIdentifier","src":"22323:6:53"},"nativeSrc":"22323:36:53","nodeType":"YulFunctionCall","src":"22323:36:53"},"nativeSrc":"22323:36:53","nodeType":"YulExpressionStatement","src":"22323:36:53"}]},"nativeSrc":"21752:617:53","nodeType":"YulCase","src":"21752:617:53","value":{"kind":"number","nativeSrc":"21757:1:53","nodeType":"YulLiteral","src":"21757:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"22386:222:53","nodeType":"YulBlock","src":"22386:222:53","statements":[{"nativeSrc":"22400:14:53","nodeType":"YulVariableDeclaration","src":"22400:14:53","value":{"kind":"number","nativeSrc":"22413:1:53","nodeType":"YulLiteral","src":"22413:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"22404:5:53","nodeType":"YulTypedName","src":"22404:5:53","type":""}]},{"body":{"nativeSrc":"22437:67:53","nodeType":"YulBlock","src":"22437:67:53","statements":[{"nativeSrc":"22455:35:53","nodeType":"YulAssignment","src":"22455:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22474:3:53","nodeType":"YulIdentifier","src":"22474:3:53"},{"name":"srcOffset","nativeSrc":"22479:9:53","nodeType":"YulIdentifier","src":"22479:9:53"}],"functionName":{"name":"add","nativeSrc":"22470:3:53","nodeType":"YulIdentifier","src":"22470:3:53"},"nativeSrc":"22470:19:53","nodeType":"YulFunctionCall","src":"22470:19:53"}],"functionName":{"name":"mload","nativeSrc":"22464:5:53","nodeType":"YulIdentifier","src":"22464:5:53"},"nativeSrc":"22464:26:53","nodeType":"YulFunctionCall","src":"22464:26:53"},"variableNames":[{"name":"value","nativeSrc":"22455:5:53","nodeType":"YulIdentifier","src":"22455:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"22430:6:53","nodeType":"YulIdentifier","src":"22430:6:53"},"nativeSrc":"22427:77:53","nodeType":"YulIf","src":"22427:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22524:4:53","nodeType":"YulIdentifier","src":"22524:4:53"},{"arguments":[{"name":"value","nativeSrc":"22583:5:53","nodeType":"YulIdentifier","src":"22583:5:53"},{"name":"newLen","nativeSrc":"22590:6:53","nodeType":"YulIdentifier","src":"22590:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"22530:52:53","nodeType":"YulIdentifier","src":"22530:52:53"},"nativeSrc":"22530:67:53","nodeType":"YulFunctionCall","src":"22530:67:53"}],"functionName":{"name":"sstore","nativeSrc":"22517:6:53","nodeType":"YulIdentifier","src":"22517:6:53"},"nativeSrc":"22517:81:53","nodeType":"YulFunctionCall","src":"22517:81:53"},"nativeSrc":"22517:81:53","nodeType":"YulExpressionStatement","src":"22517:81:53"}]},"nativeSrc":"22378:230:53","nodeType":"YulCase","src":"22378:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"21732:6:53","nodeType":"YulIdentifier","src":"21732:6:53"},{"kind":"number","nativeSrc":"21740:2:53","nodeType":"YulLiteral","src":"21740:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"21729:2:53","nodeType":"YulIdentifier","src":"21729:2:53"},"nativeSrc":"21729:14:53","nodeType":"YulFunctionCall","src":"21729:14:53"},"nativeSrc":"21722:886:53","nodeType":"YulSwitch","src":"21722:886:53"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"21224:1390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21303:4:53","nodeType":"YulTypedName","src":"21303:4:53","type":""},{"name":"src","nativeSrc":"21309:3:53","nodeType":"YulTypedName","src":"21309:3:53","type":""}],"src":"21224:1390:53"},{"body":{"nativeSrc":"22675:53:53","nodeType":"YulBlock","src":"22675:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22692:3:53","nodeType":"YulIdentifier","src":"22692:3:53"},{"arguments":[{"name":"value","nativeSrc":"22715:5:53","nodeType":"YulIdentifier","src":"22715:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22697:17:53","nodeType":"YulIdentifier","src":"22697:17:53"},"nativeSrc":"22697:24:53","nodeType":"YulFunctionCall","src":"22697:24:53"}],"functionName":{"name":"mstore","nativeSrc":"22685:6:53","nodeType":"YulIdentifier","src":"22685:6:53"},"nativeSrc":"22685:37:53","nodeType":"YulFunctionCall","src":"22685:37:53"},"nativeSrc":"22685:37:53","nodeType":"YulExpressionStatement","src":"22685:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"22620:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22663:5:53","nodeType":"YulTypedName","src":"22663:5:53","type":""},{"name":"pos","nativeSrc":"22670:3:53","nodeType":"YulTypedName","src":"22670:3:53","type":""}],"src":"22620:108:53"},{"body":{"nativeSrc":"22819:73:53","nodeType":"YulBlock","src":"22819:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22836:3:53","nodeType":"YulIdentifier","src":"22836:3:53"},{"name":"length","nativeSrc":"22841:6:53","nodeType":"YulIdentifier","src":"22841:6:53"}],"functionName":{"name":"mstore","nativeSrc":"22829:6:53","nodeType":"YulIdentifier","src":"22829:6:53"},"nativeSrc":"22829:19:53","nodeType":"YulFunctionCall","src":"22829:19:53"},"nativeSrc":"22829:19:53","nodeType":"YulExpressionStatement","src":"22829:19:53"},{"nativeSrc":"22857:29:53","nodeType":"YulAssignment","src":"22857:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"22876:3:53","nodeType":"YulIdentifier","src":"22876:3:53"},{"kind":"number","nativeSrc":"22881:4:53","nodeType":"YulLiteral","src":"22881:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22872:3:53","nodeType":"YulIdentifier","src":"22872:3:53"},"nativeSrc":"22872:14:53","nodeType":"YulFunctionCall","src":"22872:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"22857:11:53","nodeType":"YulIdentifier","src":"22857:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"22734:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"22791:3:53","nodeType":"YulTypedName","src":"22791:3:53","type":""},{"name":"length","nativeSrc":"22796:6:53","nodeType":"YulTypedName","src":"22796:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"22807:11:53","nodeType":"YulTypedName","src":"22807:11:53","type":""}],"src":"22734:158:53"},{"body":{"nativeSrc":"22978:273:53","nodeType":"YulBlock","src":"22978:273:53","statements":[{"nativeSrc":"22988:52:53","nodeType":"YulVariableDeclaration","src":"22988:52:53","value":{"arguments":[{"name":"value","nativeSrc":"23034:5:53","nodeType":"YulIdentifier","src":"23034:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"23002:31:53","nodeType":"YulIdentifier","src":"23002:31:53"},"nativeSrc":"23002:38:53","nodeType":"YulFunctionCall","src":"23002:38:53"},"variables":[{"name":"length","nativeSrc":"22992:6:53","nodeType":"YulTypedName","src":"22992:6:53","type":""}]},{"nativeSrc":"23049:67:53","nodeType":"YulAssignment","src":"23049:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"23104:3:53","nodeType":"YulIdentifier","src":"23104:3:53"},{"name":"length","nativeSrc":"23109:6:53","nodeType":"YulIdentifier","src":"23109:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"23056:47:53","nodeType":"YulIdentifier","src":"23056:47:53"},"nativeSrc":"23056:60:53","nodeType":"YulFunctionCall","src":"23056:60:53"},"variableNames":[{"name":"pos","nativeSrc":"23049:3:53","nodeType":"YulIdentifier","src":"23049:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23164:5:53","nodeType":"YulIdentifier","src":"23164:5:53"},{"kind":"number","nativeSrc":"23171:4:53","nodeType":"YulLiteral","src":"23171:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23160:3:53","nodeType":"YulIdentifier","src":"23160:3:53"},"nativeSrc":"23160:16:53","nodeType":"YulFunctionCall","src":"23160:16:53"},{"name":"pos","nativeSrc":"23178:3:53","nodeType":"YulIdentifier","src":"23178:3:53"},{"name":"length","nativeSrc":"23183:6:53","nodeType":"YulIdentifier","src":"23183:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23125:34:53","nodeType":"YulIdentifier","src":"23125:34:53"},"nativeSrc":"23125:65:53","nodeType":"YulFunctionCall","src":"23125:65:53"},"nativeSrc":"23125:65:53","nodeType":"YulExpressionStatement","src":"23125:65:53"},{"nativeSrc":"23199:46:53","nodeType":"YulAssignment","src":"23199:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"23210:3:53","nodeType":"YulIdentifier","src":"23210:3:53"},{"arguments":[{"name":"length","nativeSrc":"23237:6:53","nodeType":"YulIdentifier","src":"23237:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"23215:21:53","nodeType":"YulIdentifier","src":"23215:21:53"},"nativeSrc":"23215:29:53","nodeType":"YulFunctionCall","src":"23215:29:53"}],"functionName":{"name":"add","nativeSrc":"23206:3:53","nodeType":"YulIdentifier","src":"23206:3:53"},"nativeSrc":"23206:39:53","nodeType":"YulFunctionCall","src":"23206:39:53"},"variableNames":[{"name":"end","nativeSrc":"23199:3:53","nodeType":"YulIdentifier","src":"23199:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"22898:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22959:5:53","nodeType":"YulTypedName","src":"22959:5:53","type":""},{"name":"pos","nativeSrc":"22966:3:53","nodeType":"YulTypedName","src":"22966:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22974:3:53","nodeType":"YulTypedName","src":"22974:3:53","type":""}],"src":"22898:353:53"},{"body":{"nativeSrc":"23465:659:53","nodeType":"YulBlock","src":"23465:659:53","statements":[{"nativeSrc":"23475:26:53","nodeType":"YulVariableDeclaration","src":"23475:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"23491:3:53","nodeType":"YulIdentifier","src":"23491:3:53"},{"kind":"number","nativeSrc":"23496:4:53","nodeType":"YulLiteral","src":"23496:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"23487:3:53","nodeType":"YulIdentifier","src":"23487:3:53"},"nativeSrc":"23487:14:53","nodeType":"YulFunctionCall","src":"23487:14:53"},"variables":[{"name":"tail","nativeSrc":"23479:4:53","nodeType":"YulTypedName","src":"23479:4:53","type":""}]},{"nativeSrc":"23511:167:53","nodeType":"YulBlock","src":"23511:167:53","statements":[{"nativeSrc":"23549:43:53","nodeType":"YulVariableDeclaration","src":"23549:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23579:5:53","nodeType":"YulIdentifier","src":"23579:5:53"},{"kind":"number","nativeSrc":"23586:4:53","nodeType":"YulLiteral","src":"23586:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23575:3:53","nodeType":"YulIdentifier","src":"23575:3:53"},"nativeSrc":"23575:16:53","nodeType":"YulFunctionCall","src":"23575:16:53"}],"functionName":{"name":"mload","nativeSrc":"23569:5:53","nodeType":"YulIdentifier","src":"23569:5:53"},"nativeSrc":"23569:23:53","nodeType":"YulFunctionCall","src":"23569:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"23553:12:53","nodeType":"YulTypedName","src":"23553:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"23639:12:53","nodeType":"YulIdentifier","src":"23639:12:53"},{"arguments":[{"name":"pos","nativeSrc":"23657:3:53","nodeType":"YulIdentifier","src":"23657:3:53"},{"kind":"number","nativeSrc":"23662:4:53","nodeType":"YulLiteral","src":"23662:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23653:3:53","nodeType":"YulIdentifier","src":"23653:3:53"},"nativeSrc":"23653:14:53","nodeType":"YulFunctionCall","src":"23653:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"23605:33:53","nodeType":"YulIdentifier","src":"23605:33:53"},"nativeSrc":"23605:63:53","nodeType":"YulFunctionCall","src":"23605:63:53"},"nativeSrc":"23605:63:53","nodeType":"YulExpressionStatement","src":"23605:63:53"}]},{"nativeSrc":"23688:166:53","nodeType":"YulBlock","src":"23688:166:53","statements":[{"nativeSrc":"23725:43:53","nodeType":"YulVariableDeclaration","src":"23725:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23755:5:53","nodeType":"YulIdentifier","src":"23755:5:53"},{"kind":"number","nativeSrc":"23762:4:53","nodeType":"YulLiteral","src":"23762:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23751:3:53","nodeType":"YulIdentifier","src":"23751:3:53"},"nativeSrc":"23751:16:53","nodeType":"YulFunctionCall","src":"23751:16:53"}],"functionName":{"name":"mload","nativeSrc":"23745:5:53","nodeType":"YulIdentifier","src":"23745:5:53"},"nativeSrc":"23745:23:53","nodeType":"YulFunctionCall","src":"23745:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"23729:12:53","nodeType":"YulTypedName","src":"23729:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"23815:12:53","nodeType":"YulIdentifier","src":"23815:12:53"},{"arguments":[{"name":"pos","nativeSrc":"23833:3:53","nodeType":"YulIdentifier","src":"23833:3:53"},{"kind":"number","nativeSrc":"23838:4:53","nodeType":"YulLiteral","src":"23838:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23829:3:53","nodeType":"YulIdentifier","src":"23829:3:53"},"nativeSrc":"23829:14:53","nodeType":"YulFunctionCall","src":"23829:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"23781:33:53","nodeType":"YulIdentifier","src":"23781:33:53"},"nativeSrc":"23781:63:53","nodeType":"YulFunctionCall","src":"23781:63:53"},"nativeSrc":"23781:63:53","nodeType":"YulExpressionStatement","src":"23781:63:53"}]},{"nativeSrc":"23864:233:53","nodeType":"YulBlock","src":"23864:233:53","statements":[{"nativeSrc":"23899:43:53","nodeType":"YulVariableDeclaration","src":"23899:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23929:5:53","nodeType":"YulIdentifier","src":"23929:5:53"},{"kind":"number","nativeSrc":"23936:4:53","nodeType":"YulLiteral","src":"23936:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23925:3:53","nodeType":"YulIdentifier","src":"23925:3:53"},"nativeSrc":"23925:16:53","nodeType":"YulFunctionCall","src":"23925:16:53"}],"functionName":{"name":"mload","nativeSrc":"23919:5:53","nodeType":"YulIdentifier","src":"23919:5:53"},"nativeSrc":"23919:23:53","nodeType":"YulFunctionCall","src":"23919:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"23903:12:53","nodeType":"YulTypedName","src":"23903:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23967:3:53","nodeType":"YulIdentifier","src":"23967:3:53"},{"kind":"number","nativeSrc":"23972:4:53","nodeType":"YulLiteral","src":"23972:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23963:3:53","nodeType":"YulIdentifier","src":"23963:3:53"},"nativeSrc":"23963:14:53","nodeType":"YulFunctionCall","src":"23963:14:53"},{"arguments":[{"name":"tail","nativeSrc":"23983:4:53","nodeType":"YulIdentifier","src":"23983:4:53"},{"name":"pos","nativeSrc":"23989:3:53","nodeType":"YulIdentifier","src":"23989:3:53"}],"functionName":{"name":"sub","nativeSrc":"23979:3:53","nodeType":"YulIdentifier","src":"23979:3:53"},"nativeSrc":"23979:14:53","nodeType":"YulFunctionCall","src":"23979:14:53"}],"functionName":{"name":"mstore","nativeSrc":"23956:6:53","nodeType":"YulIdentifier","src":"23956:6:53"},"nativeSrc":"23956:38:53","nodeType":"YulFunctionCall","src":"23956:38:53"},"nativeSrc":"23956:38:53","nodeType":"YulExpressionStatement","src":"23956:38:53"},{"nativeSrc":"24007:79:53","nodeType":"YulAssignment","src":"24007:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"24067:12:53","nodeType":"YulIdentifier","src":"24067:12:53"},{"name":"tail","nativeSrc":"24081:4:53","nodeType":"YulIdentifier","src":"24081:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"24015:51:53","nodeType":"YulIdentifier","src":"24015:51:53"},"nativeSrc":"24015:71:53","nodeType":"YulFunctionCall","src":"24015:71:53"},"variableNames":[{"name":"tail","nativeSrc":"24007:4:53","nodeType":"YulIdentifier","src":"24007:4:53"}]}]},{"nativeSrc":"24107:11:53","nodeType":"YulAssignment","src":"24107:11:53","value":{"name":"tail","nativeSrc":"24114:4:53","nodeType":"YulIdentifier","src":"24114:4:53"},"variableNames":[{"name":"end","nativeSrc":"24107:3:53","nodeType":"YulIdentifier","src":"24107:3:53"}]}]},"name":"abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack","nativeSrc":"23325:799:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23444:5:53","nodeType":"YulTypedName","src":"23444:5:53","type":""},{"name":"pos","nativeSrc":"23451:3:53","nodeType":"YulTypedName","src":"23451:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"23460:3:53","nodeType":"YulTypedName","src":"23460:3:53","type":""}],"src":"23325:799:53"},{"body":{"nativeSrc":"24294:241:53","nodeType":"YulBlock","src":"24294:241:53","statements":[{"nativeSrc":"24304:26:53","nodeType":"YulAssignment","src":"24304:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"24316:9:53","nodeType":"YulIdentifier","src":"24316:9:53"},{"kind":"number","nativeSrc":"24327:2:53","nodeType":"YulLiteral","src":"24327:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24312:3:53","nodeType":"YulIdentifier","src":"24312:3:53"},"nativeSrc":"24312:18:53","nodeType":"YulFunctionCall","src":"24312:18:53"},"variableNames":[{"name":"tail","nativeSrc":"24304:4:53","nodeType":"YulIdentifier","src":"24304:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24351:9:53","nodeType":"YulIdentifier","src":"24351:9:53"},{"kind":"number","nativeSrc":"24362:1:53","nodeType":"YulLiteral","src":"24362:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24347:3:53","nodeType":"YulIdentifier","src":"24347:3:53"},"nativeSrc":"24347:17:53","nodeType":"YulFunctionCall","src":"24347:17:53"},{"arguments":[{"name":"tail","nativeSrc":"24370:4:53","nodeType":"YulIdentifier","src":"24370:4:53"},{"name":"headStart","nativeSrc":"24376:9:53","nodeType":"YulIdentifier","src":"24376:9:53"}],"functionName":{"name":"sub","nativeSrc":"24366:3:53","nodeType":"YulIdentifier","src":"24366:3:53"},"nativeSrc":"24366:20:53","nodeType":"YulFunctionCall","src":"24366:20:53"}],"functionName":{"name":"mstore","nativeSrc":"24340:6:53","nodeType":"YulIdentifier","src":"24340:6:53"},"nativeSrc":"24340:47:53","nodeType":"YulFunctionCall","src":"24340:47:53"},"nativeSrc":"24340:47:53","nodeType":"YulExpressionStatement","src":"24340:47:53"},{"nativeSrc":"24396:132:53","nodeType":"YulAssignment","src":"24396:132:53","value":{"arguments":[{"name":"value0","nativeSrc":"24514:6:53","nodeType":"YulIdentifier","src":"24514:6:53"},{"name":"tail","nativeSrc":"24523:4:53","nodeType":"YulIdentifier","src":"24523:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack","nativeSrc":"24404:109:53","nodeType":"YulIdentifier","src":"24404:109:53"},"nativeSrc":"24404:124:53","nodeType":"YulFunctionCall","src":"24404:124:53"},"variableNames":[{"name":"tail","nativeSrc":"24396:4:53","nodeType":"YulIdentifier","src":"24396:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr__to_t_struct$_ERC1155Payload_$13494_memory_ptr__fromStack_reversed","nativeSrc":"24130:405:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24266:9:53","nodeType":"YulTypedName","src":"24266:9:53","type":""},{"name":"value0","nativeSrc":"24278:6:53","nodeType":"YulTypedName","src":"24278:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24289:4:53","nodeType":"YulTypedName","src":"24289:4:53","type":""}],"src":"24130:405:53"},{"body":{"nativeSrc":"24599:62:53","nodeType":"YulBlock","src":"24599:62:53","statements":[{"body":{"nativeSrc":"24633:22:53","nodeType":"YulBlock","src":"24633:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"24635:16:53","nodeType":"YulIdentifier","src":"24635:16:53"},"nativeSrc":"24635:18:53","nodeType":"YulFunctionCall","src":"24635:18:53"},"nativeSrc":"24635:18:53","nodeType":"YulExpressionStatement","src":"24635:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24622:5:53","nodeType":"YulIdentifier","src":"24622:5:53"},{"kind":"number","nativeSrc":"24629:1:53","nodeType":"YulLiteral","src":"24629:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"24619:2:53","nodeType":"YulIdentifier","src":"24619:2:53"},"nativeSrc":"24619:12:53","nodeType":"YulFunctionCall","src":"24619:12:53"}],"functionName":{"name":"iszero","nativeSrc":"24612:6:53","nodeType":"YulIdentifier","src":"24612:6:53"},"nativeSrc":"24612:20:53","nodeType":"YulFunctionCall","src":"24612:20:53"},"nativeSrc":"24609:46:53","nodeType":"YulIf","src":"24609:46:53"}]},"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"24541:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24592:5:53","nodeType":"YulTypedName","src":"24592:5:53","type":""}],"src":"24541:120:53"},{"body":{"nativeSrc":"24727:81:53","nodeType":"YulBlock","src":"24727:81:53","statements":[{"nativeSrc":"24737:16:53","nodeType":"YulAssignment","src":"24737:16:53","value":{"name":"value","nativeSrc":"24748:5:53","nodeType":"YulIdentifier","src":"24748:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"24737:7:53","nodeType":"YulIdentifier","src":"24737:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24796:5:53","nodeType":"YulIdentifier","src":"24796:5:53"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"24754:41:53","nodeType":"YulIdentifier","src":"24754:41:53"},"nativeSrc":"24754:48:53","nodeType":"YulFunctionCall","src":"24754:48:53"},"nativeSrc":"24754:48:53","nodeType":"YulExpressionStatement","src":"24754:48:53"}]},"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"24667:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24709:5:53","nodeType":"YulTypedName","src":"24709:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"24719:7:53","nodeType":"YulTypedName","src":"24719:7:53","type":""}],"src":"24667:141:53"},{"body":{"nativeSrc":"24887:68:53","nodeType":"YulBlock","src":"24887:68:53","statements":[{"nativeSrc":"24897:52:53","nodeType":"YulAssignment","src":"24897:52:53","value":{"arguments":[{"name":"value","nativeSrc":"24943:5:53","nodeType":"YulIdentifier","src":"24943:5:53"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"24910:32:53","nodeType":"YulIdentifier","src":"24910:32:53"},"nativeSrc":"24910:39:53","nodeType":"YulFunctionCall","src":"24910:39:53"},"variableNames":[{"name":"converted","nativeSrc":"24897:9:53","nodeType":"YulIdentifier","src":"24897:9:53"}]}]},"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"24814:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24867:5:53","nodeType":"YulTypedName","src":"24867:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"24877:9:53","nodeType":"YulTypedName","src":"24877:9:53","type":""}],"src":"24814:141:53"},{"body":{"nativeSrc":"25029:79:53","nodeType":"YulBlock","src":"25029:79:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25046:3:53","nodeType":"YulIdentifier","src":"25046:3:53"},{"arguments":[{"name":"value","nativeSrc":"25095:5:53","nodeType":"YulIdentifier","src":"25095:5:53"}],"functionName":{"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"25051:43:53","nodeType":"YulIdentifier","src":"25051:43:53"},"nativeSrc":"25051:50:53","nodeType":"YulFunctionCall","src":"25051:50:53"}],"functionName":{"name":"mstore","nativeSrc":"25039:6:53","nodeType":"YulIdentifier","src":"25039:6:53"},"nativeSrc":"25039:63:53","nodeType":"YulFunctionCall","src":"25039:63:53"},"nativeSrc":"25039:63:53","nodeType":"YulExpressionStatement","src":"25039:63:53"}]},"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"24961:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25017:5:53","nodeType":"YulTypedName","src":"25017:5:53","type":""},{"name":"pos","nativeSrc":"25024:3:53","nodeType":"YulTypedName","src":"25024:3:53","type":""}],"src":"24961:147:53"},{"body":{"nativeSrc":"25169:53:53","nodeType":"YulBlock","src":"25169:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25186:3:53","nodeType":"YulIdentifier","src":"25186:3:53"},{"arguments":[{"name":"value","nativeSrc":"25209:5:53","nodeType":"YulIdentifier","src":"25209:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"25191:17:53","nodeType":"YulIdentifier","src":"25191:17:53"},"nativeSrc":"25191:24:53","nodeType":"YulFunctionCall","src":"25191:24:53"}],"functionName":{"name":"mstore","nativeSrc":"25179:6:53","nodeType":"YulIdentifier","src":"25179:6:53"},"nativeSrc":"25179:37:53","nodeType":"YulFunctionCall","src":"25179:37:53"},"nativeSrc":"25179:37:53","nodeType":"YulExpressionStatement","src":"25179:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"25114:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25157:5:53","nodeType":"YulTypedName","src":"25157:5:53","type":""},{"name":"pos","nativeSrc":"25164:3:53","nodeType":"YulTypedName","src":"25164:3:53","type":""}],"src":"25114:108:53"},{"body":{"nativeSrc":"25412:849:53","nodeType":"YulBlock","src":"25412:849:53","statements":[{"nativeSrc":"25422:26:53","nodeType":"YulVariableDeclaration","src":"25422:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"25438:3:53","nodeType":"YulIdentifier","src":"25438:3:53"},{"kind":"number","nativeSrc":"25443:4:53","nodeType":"YulLiteral","src":"25443:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25434:3:53","nodeType":"YulIdentifier","src":"25434:3:53"},"nativeSrc":"25434:14:53","nodeType":"YulFunctionCall","src":"25434:14:53"},"variables":[{"name":"tail","nativeSrc":"25426:4:53","nodeType":"YulTypedName","src":"25426:4:53","type":""}]},{"nativeSrc":"25458:182:53","nodeType":"YulBlock","src":"25458:182:53","statements":[{"nativeSrc":"25498:43:53","nodeType":"YulVariableDeclaration","src":"25498:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25528:5:53","nodeType":"YulIdentifier","src":"25528:5:53"},{"kind":"number","nativeSrc":"25535:4:53","nodeType":"YulLiteral","src":"25535:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25524:3:53","nodeType":"YulIdentifier","src":"25524:3:53"},"nativeSrc":"25524:16:53","nodeType":"YulFunctionCall","src":"25524:16:53"}],"functionName":{"name":"mload","nativeSrc":"25518:5:53","nodeType":"YulIdentifier","src":"25518:5:53"},"nativeSrc":"25518:23:53","nodeType":"YulFunctionCall","src":"25518:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"25502:12:53","nodeType":"YulTypedName","src":"25502:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25601:12:53","nodeType":"YulIdentifier","src":"25601:12:53"},{"arguments":[{"name":"pos","nativeSrc":"25619:3:53","nodeType":"YulIdentifier","src":"25619:3:53"},{"kind":"number","nativeSrc":"25624:4:53","nodeType":"YulLiteral","src":"25624:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25615:3:53","nodeType":"YulIdentifier","src":"25615:3:53"},"nativeSrc":"25615:14:53","nodeType":"YulFunctionCall","src":"25615:14:53"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"25554:46:53","nodeType":"YulIdentifier","src":"25554:46:53"},"nativeSrc":"25554:76:53","nodeType":"YulFunctionCall","src":"25554:76:53"},"nativeSrc":"25554:76:53","nodeType":"YulExpressionStatement","src":"25554:76:53"}]},{"nativeSrc":"25650:165:53","nodeType":"YulBlock","src":"25650:165:53","statements":[{"nativeSrc":"25686:43:53","nodeType":"YulVariableDeclaration","src":"25686:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25716:5:53","nodeType":"YulIdentifier","src":"25716:5:53"},{"kind":"number","nativeSrc":"25723:4:53","nodeType":"YulLiteral","src":"25723:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25712:3:53","nodeType":"YulIdentifier","src":"25712:3:53"},"nativeSrc":"25712:16:53","nodeType":"YulFunctionCall","src":"25712:16:53"}],"functionName":{"name":"mload","nativeSrc":"25706:5:53","nodeType":"YulIdentifier","src":"25706:5:53"},"nativeSrc":"25706:23:53","nodeType":"YulFunctionCall","src":"25706:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"25690:12:53","nodeType":"YulTypedName","src":"25690:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25776:12:53","nodeType":"YulIdentifier","src":"25776:12:53"},{"arguments":[{"name":"pos","nativeSrc":"25794:3:53","nodeType":"YulIdentifier","src":"25794:3:53"},{"kind":"number","nativeSrc":"25799:4:53","nodeType":"YulLiteral","src":"25799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25790:3:53","nodeType":"YulIdentifier","src":"25790:3:53"},"nativeSrc":"25790:14:53","nodeType":"YulFunctionCall","src":"25790:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"25742:33:53","nodeType":"YulIdentifier","src":"25742:33:53"},"nativeSrc":"25742:63:53","nodeType":"YulFunctionCall","src":"25742:63:53"},"nativeSrc":"25742:63:53","nodeType":"YulExpressionStatement","src":"25742:63:53"}]},{"nativeSrc":"25825:166:53","nodeType":"YulBlock","src":"25825:166:53","statements":[{"nativeSrc":"25862:43:53","nodeType":"YulVariableDeclaration","src":"25862:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25892:5:53","nodeType":"YulIdentifier","src":"25892:5:53"},{"kind":"number","nativeSrc":"25899:4:53","nodeType":"YulLiteral","src":"25899:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25888:3:53","nodeType":"YulIdentifier","src":"25888:3:53"},"nativeSrc":"25888:16:53","nodeType":"YulFunctionCall","src":"25888:16:53"}],"functionName":{"name":"mload","nativeSrc":"25882:5:53","nodeType":"YulIdentifier","src":"25882:5:53"},"nativeSrc":"25882:23:53","nodeType":"YulFunctionCall","src":"25882:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"25866:12:53","nodeType":"YulTypedName","src":"25866:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25952:12:53","nodeType":"YulIdentifier","src":"25952:12:53"},{"arguments":[{"name":"pos","nativeSrc":"25970:3:53","nodeType":"YulIdentifier","src":"25970:3:53"},{"kind":"number","nativeSrc":"25975:4:53","nodeType":"YulLiteral","src":"25975:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25966:3:53","nodeType":"YulIdentifier","src":"25966:3:53"},"nativeSrc":"25966:14:53","nodeType":"YulFunctionCall","src":"25966:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"25918:33:53","nodeType":"YulIdentifier","src":"25918:33:53"},"nativeSrc":"25918:63:53","nodeType":"YulFunctionCall","src":"25918:63:53"},"nativeSrc":"25918:63:53","nodeType":"YulExpressionStatement","src":"25918:63:53"}]},{"nativeSrc":"26001:233:53","nodeType":"YulBlock","src":"26001:233:53","statements":[{"nativeSrc":"26036:43:53","nodeType":"YulVariableDeclaration","src":"26036:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26066:5:53","nodeType":"YulIdentifier","src":"26066:5:53"},{"kind":"number","nativeSrc":"26073:4:53","nodeType":"YulLiteral","src":"26073:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26062:3:53","nodeType":"YulIdentifier","src":"26062:3:53"},"nativeSrc":"26062:16:53","nodeType":"YulFunctionCall","src":"26062:16:53"}],"functionName":{"name":"mload","nativeSrc":"26056:5:53","nodeType":"YulIdentifier","src":"26056:5:53"},"nativeSrc":"26056:23:53","nodeType":"YulFunctionCall","src":"26056:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"26040:12:53","nodeType":"YulTypedName","src":"26040:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"26104:3:53","nodeType":"YulIdentifier","src":"26104:3:53"},{"kind":"number","nativeSrc":"26109:4:53","nodeType":"YulLiteral","src":"26109:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26100:3:53","nodeType":"YulIdentifier","src":"26100:3:53"},"nativeSrc":"26100:14:53","nodeType":"YulFunctionCall","src":"26100:14:53"},{"arguments":[{"name":"tail","nativeSrc":"26120:4:53","nodeType":"YulIdentifier","src":"26120:4:53"},{"name":"pos","nativeSrc":"26126:3:53","nodeType":"YulIdentifier","src":"26126:3:53"}],"functionName":{"name":"sub","nativeSrc":"26116:3:53","nodeType":"YulIdentifier","src":"26116:3:53"},"nativeSrc":"26116:14:53","nodeType":"YulFunctionCall","src":"26116:14:53"}],"functionName":{"name":"mstore","nativeSrc":"26093:6:53","nodeType":"YulIdentifier","src":"26093:6:53"},"nativeSrc":"26093:38:53","nodeType":"YulFunctionCall","src":"26093:38:53"},"nativeSrc":"26093:38:53","nodeType":"YulExpressionStatement","src":"26093:38:53"},{"nativeSrc":"26144:79:53","nodeType":"YulAssignment","src":"26144:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"26204:12:53","nodeType":"YulIdentifier","src":"26204:12:53"},{"name":"tail","nativeSrc":"26218:4:53","nodeType":"YulIdentifier","src":"26218:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"26152:51:53","nodeType":"YulIdentifier","src":"26152:51:53"},"nativeSrc":"26152:71:53","nodeType":"YulFunctionCall","src":"26152:71:53"},"variableNames":[{"name":"tail","nativeSrc":"26144:4:53","nodeType":"YulIdentifier","src":"26144:4:53"}]}]},{"nativeSrc":"26244:11:53","nodeType":"YulAssignment","src":"26244:11:53","value":{"name":"tail","nativeSrc":"26251:4:53","nodeType":"YulIdentifier","src":"26251:4:53"},"variableNames":[{"name":"end","nativeSrc":"26244:3:53","nodeType":"YulIdentifier","src":"26244:3:53"}]}]},"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"25284:977:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25391:5:53","nodeType":"YulTypedName","src":"25391:5:53","type":""},{"name":"pos","nativeSrc":"25398:3:53","nodeType":"YulTypedName","src":"25398:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25407:3:53","nodeType":"YulTypedName","src":"25407:3:53","type":""}],"src":"25284:977:53"},{"body":{"nativeSrc":"26419:229:53","nodeType":"YulBlock","src":"26419:229:53","statements":[{"nativeSrc":"26429:26:53","nodeType":"YulAssignment","src":"26429:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"26441:9:53","nodeType":"YulIdentifier","src":"26441:9:53"},{"kind":"number","nativeSrc":"26452:2:53","nodeType":"YulLiteral","src":"26452:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26437:3:53","nodeType":"YulIdentifier","src":"26437:3:53"},"nativeSrc":"26437:18:53","nodeType":"YulFunctionCall","src":"26437:18:53"},"variableNames":[{"name":"tail","nativeSrc":"26429:4:53","nodeType":"YulIdentifier","src":"26429:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26476:9:53","nodeType":"YulIdentifier","src":"26476:9:53"},{"kind":"number","nativeSrc":"26487:1:53","nodeType":"YulLiteral","src":"26487:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"26472:3:53","nodeType":"YulIdentifier","src":"26472:3:53"},"nativeSrc":"26472:17:53","nodeType":"YulFunctionCall","src":"26472:17:53"},{"arguments":[{"name":"tail","nativeSrc":"26495:4:53","nodeType":"YulIdentifier","src":"26495:4:53"},{"name":"headStart","nativeSrc":"26501:9:53","nodeType":"YulIdentifier","src":"26501:9:53"}],"functionName":{"name":"sub","nativeSrc":"26491:3:53","nodeType":"YulIdentifier","src":"26491:3:53"},"nativeSrc":"26491:20:53","nodeType":"YulFunctionCall","src":"26491:20:53"}],"functionName":{"name":"mstore","nativeSrc":"26465:6:53","nodeType":"YulIdentifier","src":"26465:6:53"},"nativeSrc":"26465:47:53","nodeType":"YulFunctionCall","src":"26465:47:53"},"nativeSrc":"26465:47:53","nodeType":"YulExpressionStatement","src":"26465:47:53"},{"nativeSrc":"26521:120:53","nodeType":"YulAssignment","src":"26521:120:53","value":{"arguments":[{"name":"value0","nativeSrc":"26627:6:53","nodeType":"YulIdentifier","src":"26627:6:53"},{"name":"tail","nativeSrc":"26636:4:53","nodeType":"YulIdentifier","src":"26636:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"26529:97:53","nodeType":"YulIdentifier","src":"26529:97:53"},"nativeSrc":"26529:112:53","nodeType":"YulFunctionCall","src":"26529:112:53"},"variableNames":[{"name":"tail","nativeSrc":"26521:4:53","nodeType":"YulIdentifier","src":"26521:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed","nativeSrc":"26267:381:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26391:9:53","nodeType":"YulTypedName","src":"26391:9:53","type":""},{"name":"value0","nativeSrc":"26403:6:53","nodeType":"YulTypedName","src":"26403:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26414:4:53","nodeType":"YulTypedName","src":"26414:4:53","type":""}],"src":"26267:381:53"},{"body":{"nativeSrc":"26777:665:53","nodeType":"YulBlock","src":"26777:665:53","statements":[{"body":{"nativeSrc":"26821:83:53","nodeType":"YulBlock","src":"26821:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"26823:77:53","nodeType":"YulIdentifier","src":"26823:77:53"},"nativeSrc":"26823:79:53","nodeType":"YulFunctionCall","src":"26823:79:53"},"nativeSrc":"26823:79:53","nodeType":"YulExpressionStatement","src":"26823:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"26798:3:53","nodeType":"YulIdentifier","src":"26798:3:53"},{"name":"headStart","nativeSrc":"26803:9:53","nodeType":"YulIdentifier","src":"26803:9:53"}],"functionName":{"name":"sub","nativeSrc":"26794:3:53","nodeType":"YulIdentifier","src":"26794:3:53"},"nativeSrc":"26794:19:53","nodeType":"YulFunctionCall","src":"26794:19:53"},{"kind":"number","nativeSrc":"26815:4:53","nodeType":"YulLiteral","src":"26815:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"26790:3:53","nodeType":"YulIdentifier","src":"26790:3:53"},"nativeSrc":"26790:30:53","nodeType":"YulFunctionCall","src":"26790:30:53"},"nativeSrc":"26787:117:53","nodeType":"YulIf","src":"26787:117:53"},{"nativeSrc":"26913:30:53","nodeType":"YulAssignment","src":"26913:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"26938:4:53","nodeType":"YulLiteral","src":"26938:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"26922:15:53","nodeType":"YulIdentifier","src":"26922:15:53"},"nativeSrc":"26922:21:53","nodeType":"YulFunctionCall","src":"26922:21:53"},"variableNames":[{"name":"value","nativeSrc":"26913:5:53","nodeType":"YulIdentifier","src":"26913:5:53"}]},{"nativeSrc":"26953:152:53","nodeType":"YulBlock","src":"26953:152:53","statements":[{"nativeSrc":"26990:15:53","nodeType":"YulVariableDeclaration","src":"26990:15:53","value":{"kind":"number","nativeSrc":"27004:1:53","nodeType":"YulLiteral","src":"27004:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"26994:6:53","nodeType":"YulTypedName","src":"26994:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27030:5:53","nodeType":"YulIdentifier","src":"27030:5:53"},{"kind":"number","nativeSrc":"27037:4:53","nodeType":"YulLiteral","src":"27037:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"27026:3:53","nodeType":"YulIdentifier","src":"27026:3:53"},"nativeSrc":"27026:16:53","nodeType":"YulFunctionCall","src":"27026:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27069:9:53","nodeType":"YulIdentifier","src":"27069:9:53"},{"name":"offset","nativeSrc":"27080:6:53","nodeType":"YulIdentifier","src":"27080:6:53"}],"functionName":{"name":"add","nativeSrc":"27065:3:53","nodeType":"YulIdentifier","src":"27065:3:53"},"nativeSrc":"27065:22:53","nodeType":"YulFunctionCall","src":"27065:22:53"},{"name":"end","nativeSrc":"27089:3:53","nodeType":"YulIdentifier","src":"27089:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"27044:20:53","nodeType":"YulIdentifier","src":"27044:20:53"},"nativeSrc":"27044:49:53","nodeType":"YulFunctionCall","src":"27044:49:53"}],"functionName":{"name":"mstore","nativeSrc":"27019:6:53","nodeType":"YulIdentifier","src":"27019:6:53"},"nativeSrc":"27019:75:53","nodeType":"YulFunctionCall","src":"27019:75:53"},"nativeSrc":"27019:75:53","nodeType":"YulExpressionStatement","src":"27019:75:53"}]},{"nativeSrc":"27115:320:53","nodeType":"YulBlock","src":"27115:320:53","statements":[{"nativeSrc":"27150:46:53","nodeType":"YulVariableDeclaration","src":"27150:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27181:9:53","nodeType":"YulIdentifier","src":"27181:9:53"},{"kind":"number","nativeSrc":"27192:2:53","nodeType":"YulLiteral","src":"27192:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27177:3:53","nodeType":"YulIdentifier","src":"27177:3:53"},"nativeSrc":"27177:18:53","nodeType":"YulFunctionCall","src":"27177:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"27164:12:53","nodeType":"YulIdentifier","src":"27164:12:53"},"nativeSrc":"27164:32:53","nodeType":"YulFunctionCall","src":"27164:32:53"},"variables":[{"name":"offset","nativeSrc":"27154:6:53","nodeType":"YulTypedName","src":"27154:6:53","type":""}]},{"body":{"nativeSrc":"27243:83:53","nodeType":"YulBlock","src":"27243:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"27245:77:53","nodeType":"YulIdentifier","src":"27245:77:53"},"nativeSrc":"27245:79:53","nodeType":"YulFunctionCall","src":"27245:79:53"},"nativeSrc":"27245:79:53","nodeType":"YulExpressionStatement","src":"27245:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27215:6:53","nodeType":"YulIdentifier","src":"27215:6:53"},{"kind":"number","nativeSrc":"27223:18:53","nodeType":"YulLiteral","src":"27223:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27212:2:53","nodeType":"YulIdentifier","src":"27212:2:53"},"nativeSrc":"27212:30:53","nodeType":"YulFunctionCall","src":"27212:30:53"},"nativeSrc":"27209:117:53","nodeType":"YulIf","src":"27209:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27351:5:53","nodeType":"YulIdentifier","src":"27351:5:53"},{"kind":"number","nativeSrc":"27358:4:53","nodeType":"YulLiteral","src":"27358:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27347:3:53","nodeType":"YulIdentifier","src":"27347:3:53"},"nativeSrc":"27347:16:53","nodeType":"YulFunctionCall","src":"27347:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27399:9:53","nodeType":"YulIdentifier","src":"27399:9:53"},{"name":"offset","nativeSrc":"27410:6:53","nodeType":"YulIdentifier","src":"27410:6:53"}],"functionName":{"name":"add","nativeSrc":"27395:3:53","nodeType":"YulIdentifier","src":"27395:3:53"},"nativeSrc":"27395:22:53","nodeType":"YulFunctionCall","src":"27395:22:53"},{"name":"end","nativeSrc":"27419:3:53","nodeType":"YulIdentifier","src":"27419:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"27365:29:53","nodeType":"YulIdentifier","src":"27365:29:53"},"nativeSrc":"27365:58:53","nodeType":"YulFunctionCall","src":"27365:58:53"}],"functionName":{"name":"mstore","nativeSrc":"27340:6:53","nodeType":"YulIdentifier","src":"27340:6:53"},"nativeSrc":"27340:84:53","nodeType":"YulFunctionCall","src":"27340:84:53"},"nativeSrc":"27340:84:53","nodeType":"YulExpressionStatement","src":"27340:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"26691:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26752:9:53","nodeType":"YulTypedName","src":"26752:9:53","type":""},{"name":"end","nativeSrc":"26763:3:53","nodeType":"YulTypedName","src":"26763:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"26771:5:53","nodeType":"YulTypedName","src":"26771:5:53","type":""}],"src":"26691:751:53"},{"body":{"nativeSrc":"27545:454:53","nodeType":"YulBlock","src":"27545:454:53","statements":[{"body":{"nativeSrc":"27591:83:53","nodeType":"YulBlock","src":"27591:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"27593:77:53","nodeType":"YulIdentifier","src":"27593:77:53"},"nativeSrc":"27593:79:53","nodeType":"YulFunctionCall","src":"27593:79:53"},"nativeSrc":"27593:79:53","nodeType":"YulExpressionStatement","src":"27593:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27566:7:53","nodeType":"YulIdentifier","src":"27566:7:53"},{"name":"headStart","nativeSrc":"27575:9:53","nodeType":"YulIdentifier","src":"27575:9:53"}],"functionName":{"name":"sub","nativeSrc":"27562:3:53","nodeType":"YulIdentifier","src":"27562:3:53"},"nativeSrc":"27562:23:53","nodeType":"YulFunctionCall","src":"27562:23:53"},{"kind":"number","nativeSrc":"27587:2:53","nodeType":"YulLiteral","src":"27587:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27558:3:53","nodeType":"YulIdentifier","src":"27558:3:53"},"nativeSrc":"27558:32:53","nodeType":"YulFunctionCall","src":"27558:32:53"},"nativeSrc":"27555:119:53","nodeType":"YulIf","src":"27555:119:53"},{"nativeSrc":"27684:308:53","nodeType":"YulBlock","src":"27684:308:53","statements":[{"nativeSrc":"27699:45:53","nodeType":"YulVariableDeclaration","src":"27699:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27730:9:53","nodeType":"YulIdentifier","src":"27730:9:53"},{"kind":"number","nativeSrc":"27741:1:53","nodeType":"YulLiteral","src":"27741:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27726:3:53","nodeType":"YulIdentifier","src":"27726:3:53"},"nativeSrc":"27726:17:53","nodeType":"YulFunctionCall","src":"27726:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"27713:12:53","nodeType":"YulIdentifier","src":"27713:12:53"},"nativeSrc":"27713:31:53","nodeType":"YulFunctionCall","src":"27713:31:53"},"variables":[{"name":"offset","nativeSrc":"27703:6:53","nodeType":"YulTypedName","src":"27703:6:53","type":""}]},{"body":{"nativeSrc":"27791:83:53","nodeType":"YulBlock","src":"27791:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27793:77:53","nodeType":"YulIdentifier","src":"27793:77:53"},"nativeSrc":"27793:79:53","nodeType":"YulFunctionCall","src":"27793:79:53"},"nativeSrc":"27793:79:53","nodeType":"YulExpressionStatement","src":"27793:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27763:6:53","nodeType":"YulIdentifier","src":"27763:6:53"},{"kind":"number","nativeSrc":"27771:18:53","nodeType":"YulLiteral","src":"27771:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27760:2:53","nodeType":"YulIdentifier","src":"27760:2:53"},"nativeSrc":"27760:30:53","nodeType":"YulFunctionCall","src":"27760:30:53"},"nativeSrc":"27757:117:53","nodeType":"YulIf","src":"27757:117:53"},{"nativeSrc":"27888:94:53","nodeType":"YulAssignment","src":"27888:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27954:9:53","nodeType":"YulIdentifier","src":"27954:9:53"},{"name":"offset","nativeSrc":"27965:6:53","nodeType":"YulIdentifier","src":"27965:6:53"}],"functionName":{"name":"add","nativeSrc":"27950:3:53","nodeType":"YulIdentifier","src":"27950:3:53"},"nativeSrc":"27950:22:53","nodeType":"YulFunctionCall","src":"27950:22:53"},{"name":"dataEnd","nativeSrc":"27974:7:53","nodeType":"YulIdentifier","src":"27974:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"27898:51:53","nodeType":"YulIdentifier","src":"27898:51:53"},"nativeSrc":"27898:84:53","nodeType":"YulFunctionCall","src":"27898:84:53"},"variableNames":[{"name":"value0","nativeSrc":"27888:6:53","nodeType":"YulIdentifier","src":"27888:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"27448:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27515:9:53","nodeType":"YulTypedName","src":"27515:9:53","type":""},{"name":"dataEnd","nativeSrc":"27526:7:53","nodeType":"YulTypedName","src":"27526:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27538:6:53","nodeType":"YulTypedName","src":"27538:6:53","type":""}],"src":"27448:551:53"},{"body":{"nativeSrc":"28033:152:53","nodeType":"YulBlock","src":"28033:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28050:1:53","nodeType":"YulLiteral","src":"28050:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28053:77:53","nodeType":"YulLiteral","src":"28053:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"28043:6:53","nodeType":"YulIdentifier","src":"28043:6:53"},"nativeSrc":"28043:88:53","nodeType":"YulFunctionCall","src":"28043:88:53"},"nativeSrc":"28043:88:53","nodeType":"YulExpressionStatement","src":"28043:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28147:1:53","nodeType":"YulLiteral","src":"28147:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"28150:4:53","nodeType":"YulLiteral","src":"28150:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"28140:6:53","nodeType":"YulIdentifier","src":"28140:6:53"},"nativeSrc":"28140:15:53","nodeType":"YulFunctionCall","src":"28140:15:53"},"nativeSrc":"28140:15:53","nodeType":"YulExpressionStatement","src":"28140:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28171:1:53","nodeType":"YulLiteral","src":"28171:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28174:4:53","nodeType":"YulLiteral","src":"28174:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28164:6:53","nodeType":"YulIdentifier","src":"28164:6:53"},"nativeSrc":"28164:15:53","nodeType":"YulFunctionCall","src":"28164:15:53"},"nativeSrc":"28164:15:53","nodeType":"YulExpressionStatement","src":"28164:15:53"}]},"name":"panic_error_0x11","nativeSrc":"28005:180:53","nodeType":"YulFunctionDefinition","src":"28005:180:53"},{"body":{"nativeSrc":"28234:190:53","nodeType":"YulBlock","src":"28234:190:53","statements":[{"nativeSrc":"28244:33:53","nodeType":"YulAssignment","src":"28244:33:53","value":{"arguments":[{"name":"value","nativeSrc":"28271:5:53","nodeType":"YulIdentifier","src":"28271:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28253:17:53","nodeType":"YulIdentifier","src":"28253:17:53"},"nativeSrc":"28253:24:53","nodeType":"YulFunctionCall","src":"28253:24:53"},"variableNames":[{"name":"value","nativeSrc":"28244:5:53","nodeType":"YulIdentifier","src":"28244:5:53"}]},{"body":{"nativeSrc":"28367:22:53","nodeType":"YulBlock","src":"28367:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28369:16:53","nodeType":"YulIdentifier","src":"28369:16:53"},"nativeSrc":"28369:18:53","nodeType":"YulFunctionCall","src":"28369:18:53"},"nativeSrc":"28369:18:53","nodeType":"YulExpressionStatement","src":"28369:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"28292:5:53","nodeType":"YulIdentifier","src":"28292:5:53"},{"kind":"number","nativeSrc":"28299:66:53","nodeType":"YulLiteral","src":"28299:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"28289:2:53","nodeType":"YulIdentifier","src":"28289:2:53"},"nativeSrc":"28289:77:53","nodeType":"YulFunctionCall","src":"28289:77:53"},"nativeSrc":"28286:103:53","nodeType":"YulIf","src":"28286:103:53"},{"nativeSrc":"28398:20:53","nodeType":"YulAssignment","src":"28398:20:53","value":{"arguments":[{"name":"value","nativeSrc":"28409:5:53","nodeType":"YulIdentifier","src":"28409:5:53"},{"kind":"number","nativeSrc":"28416:1:53","nodeType":"YulLiteral","src":"28416:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28405:3:53","nodeType":"YulIdentifier","src":"28405:3:53"},"nativeSrc":"28405:13:53","nodeType":"YulFunctionCall","src":"28405:13:53"},"variableNames":[{"name":"ret","nativeSrc":"28398:3:53","nodeType":"YulIdentifier","src":"28398:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"28191:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28220:5:53","nodeType":"YulTypedName","src":"28220:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"28230:3:53","nodeType":"YulTypedName","src":"28230:3:53","type":""}],"src":"28191:233:53"},{"body":{"nativeSrc":"28483:32:53","nodeType":"YulBlock","src":"28483:32:53","statements":[{"nativeSrc":"28493:16:53","nodeType":"YulAssignment","src":"28493:16:53","value":{"name":"value","nativeSrc":"28504:5:53","nodeType":"YulIdentifier","src":"28504:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"28493:7:53","nodeType":"YulIdentifier","src":"28493:7:53"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"28430:85:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28465:5:53","nodeType":"YulTypedName","src":"28465:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"28475:7:53","nodeType":"YulTypedName","src":"28475:7:53","type":""}],"src":"28430:85:53"},{"body":{"nativeSrc":"28589:90:53","nodeType":"YulBlock","src":"28589:90:53","statements":[{"nativeSrc":"28599:74:53","nodeType":"YulAssignment","src":"28599:74:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"28665:5:53","nodeType":"YulIdentifier","src":"28665:5:53"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"28639:25:53","nodeType":"YulIdentifier","src":"28639:25:53"},"nativeSrc":"28639:32:53","nodeType":"YulFunctionCall","src":"28639:32:53"}],"functionName":{"name":"identity","nativeSrc":"28630:8:53","nodeType":"YulIdentifier","src":"28630:8:53"},"nativeSrc":"28630:42:53","nodeType":"YulFunctionCall","src":"28630:42:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28612:17:53","nodeType":"YulIdentifier","src":"28612:17:53"},"nativeSrc":"28612:61:53","nodeType":"YulFunctionCall","src":"28612:61:53"},"variableNames":[{"name":"converted","nativeSrc":"28599:9:53","nodeType":"YulIdentifier","src":"28599:9:53"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint256","nativeSrc":"28521:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28569:5:53","nodeType":"YulTypedName","src":"28569:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"28579:9:53","nodeType":"YulTypedName","src":"28579:9:53","type":""}],"src":"28521:158:53"},{"body":{"nativeSrc":"28758:74:53","nodeType":"YulBlock","src":"28758:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"28775:3:53","nodeType":"YulIdentifier","src":"28775:3:53"},{"arguments":[{"name":"value","nativeSrc":"28819:5:53","nodeType":"YulIdentifier","src":"28819:5:53"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint256","nativeSrc":"28780:38:53","nodeType":"YulIdentifier","src":"28780:38:53"},"nativeSrc":"28780:45:53","nodeType":"YulFunctionCall","src":"28780:45:53"}],"functionName":{"name":"mstore","nativeSrc":"28768:6:53","nodeType":"YulIdentifier","src":"28768:6:53"},"nativeSrc":"28768:58:53","nodeType":"YulFunctionCall","src":"28768:58:53"},"nativeSrc":"28768:58:53","nodeType":"YulExpressionStatement","src":"28768:58:53"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack","nativeSrc":"28685:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28746:5:53","nodeType":"YulTypedName","src":"28746:5:53","type":""},{"name":"pos","nativeSrc":"28753:3:53","nodeType":"YulTypedName","src":"28753:3:53","type":""}],"src":"28685:147:53"},{"body":{"nativeSrc":"29074:531:53","nodeType":"YulBlock","src":"29074:531:53","statements":[{"nativeSrc":"29084:27:53","nodeType":"YulAssignment","src":"29084:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"29096:9:53","nodeType":"YulIdentifier","src":"29096:9:53"},{"kind":"number","nativeSrc":"29107:3:53","nodeType":"YulLiteral","src":"29107:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"29092:3:53","nodeType":"YulIdentifier","src":"29092:3:53"},"nativeSrc":"29092:19:53","nodeType":"YulFunctionCall","src":"29092:19:53"},"variableNames":[{"name":"tail","nativeSrc":"29084:4:53","nodeType":"YulIdentifier","src":"29084:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29165:6:53","nodeType":"YulIdentifier","src":"29165:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29178:9:53","nodeType":"YulIdentifier","src":"29178:9:53"},{"kind":"number","nativeSrc":"29189:1:53","nodeType":"YulLiteral","src":"29189:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29174:3:53","nodeType":"YulIdentifier","src":"29174:3:53"},"nativeSrc":"29174:17:53","nodeType":"YulFunctionCall","src":"29174:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29121:43:53","nodeType":"YulIdentifier","src":"29121:43:53"},"nativeSrc":"29121:71:53","nodeType":"YulFunctionCall","src":"29121:71:53"},"nativeSrc":"29121:71:53","nodeType":"YulExpressionStatement","src":"29121:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29246:6:53","nodeType":"YulIdentifier","src":"29246:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29259:9:53","nodeType":"YulIdentifier","src":"29259:9:53"},{"kind":"number","nativeSrc":"29270:2:53","nodeType":"YulLiteral","src":"29270:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29255:3:53","nodeType":"YulIdentifier","src":"29255:3:53"},"nativeSrc":"29255:18:53","nodeType":"YulFunctionCall","src":"29255:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29202:43:53","nodeType":"YulIdentifier","src":"29202:43:53"},"nativeSrc":"29202:72:53","nodeType":"YulFunctionCall","src":"29202:72:53"},"nativeSrc":"29202:72:53","nodeType":"YulExpressionStatement","src":"29202:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"29328:6:53","nodeType":"YulIdentifier","src":"29328:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29341:9:53","nodeType":"YulIdentifier","src":"29341:9:53"},{"kind":"number","nativeSrc":"29352:2:53","nodeType":"YulLiteral","src":"29352:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29337:3:53","nodeType":"YulIdentifier","src":"29337:3:53"},"nativeSrc":"29337:18:53","nodeType":"YulFunctionCall","src":"29337:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"29284:43:53","nodeType":"YulIdentifier","src":"29284:43:53"},"nativeSrc":"29284:72:53","nodeType":"YulFunctionCall","src":"29284:72:53"},"nativeSrc":"29284:72:53","nodeType":"YulExpressionStatement","src":"29284:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"29418:6:53","nodeType":"YulIdentifier","src":"29418:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29431:9:53","nodeType":"YulIdentifier","src":"29431:9:53"},{"kind":"number","nativeSrc":"29442:2:53","nodeType":"YulLiteral","src":"29442:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29427:3:53","nodeType":"YulIdentifier","src":"29427:3:53"},"nativeSrc":"29427:18:53","nodeType":"YulFunctionCall","src":"29427:18:53"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack","nativeSrc":"29366:51:53","nodeType":"YulIdentifier","src":"29366:51:53"},"nativeSrc":"29366:80:53","nodeType":"YulFunctionCall","src":"29366:80:53"},"nativeSrc":"29366:80:53","nodeType":"YulExpressionStatement","src":"29366:80:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29467:9:53","nodeType":"YulIdentifier","src":"29467:9:53"},{"kind":"number","nativeSrc":"29478:3:53","nodeType":"YulLiteral","src":"29478:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29463:3:53","nodeType":"YulIdentifier","src":"29463:3:53"},"nativeSrc":"29463:19:53","nodeType":"YulFunctionCall","src":"29463:19:53"},{"arguments":[{"name":"tail","nativeSrc":"29488:4:53","nodeType":"YulIdentifier","src":"29488:4:53"},{"name":"headStart","nativeSrc":"29494:9:53","nodeType":"YulIdentifier","src":"29494:9:53"}],"functionName":{"name":"sub","nativeSrc":"29484:3:53","nodeType":"YulIdentifier","src":"29484:3:53"},"nativeSrc":"29484:20:53","nodeType":"YulFunctionCall","src":"29484:20:53"}],"functionName":{"name":"mstore","nativeSrc":"29456:6:53","nodeType":"YulIdentifier","src":"29456:6:53"},"nativeSrc":"29456:49:53","nodeType":"YulFunctionCall","src":"29456:49:53"},"nativeSrc":"29456:49:53","nodeType":"YulExpressionStatement","src":"29456:49:53"},{"nativeSrc":"29514:84:53","nodeType":"YulAssignment","src":"29514:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"29584:6:53","nodeType":"YulIdentifier","src":"29584:6:53"},{"name":"tail","nativeSrc":"29593:4:53","nodeType":"YulIdentifier","src":"29593:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"29522:61:53","nodeType":"YulIdentifier","src":"29522:61:53"},"nativeSrc":"29522:76:53","nodeType":"YulFunctionCall","src":"29522:76:53"},"variableNames":[{"name":"tail","nativeSrc":"29514:4:53","nodeType":"YulIdentifier","src":"29514:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_rational_1_by_1_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"28838:767:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29014:9:53","nodeType":"YulTypedName","src":"29014:9:53","type":""},{"name":"value4","nativeSrc":"29026:6:53","nodeType":"YulTypedName","src":"29026:6:53","type":""},{"name":"value3","nativeSrc":"29034:6:53","nodeType":"YulTypedName","src":"29034:6:53","type":""},{"name":"value2","nativeSrc":"29042:6:53","nodeType":"YulTypedName","src":"29042:6:53","type":""},{"name":"value1","nativeSrc":"29050:6:53","nodeType":"YulTypedName","src":"29050:6:53","type":""},{"name":"value0","nativeSrc":"29058:6:53","nodeType":"YulTypedName","src":"29058:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29069:4:53","nodeType":"YulTypedName","src":"29069:4:53","type":""}],"src":"28838:767:53"},{"body":{"nativeSrc":"29653:52:53","nodeType":"YulBlock","src":"29653:52:53","statements":[{"nativeSrc":"29663:35:53","nodeType":"YulAssignment","src":"29663:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"29688:2:53","nodeType":"YulLiteral","src":"29688:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"29692:5:53","nodeType":"YulIdentifier","src":"29692:5:53"}],"functionName":{"name":"shl","nativeSrc":"29684:3:53","nodeType":"YulIdentifier","src":"29684:3:53"},"nativeSrc":"29684:14:53","nodeType":"YulFunctionCall","src":"29684:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"29663:8:53","nodeType":"YulIdentifier","src":"29663:8:53"}]}]},"name":"shift_left_96","nativeSrc":"29611:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29634:5:53","nodeType":"YulTypedName","src":"29634:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"29644:8:53","nodeType":"YulTypedName","src":"29644:8:53","type":""}],"src":"29611:94:53"},{"body":{"nativeSrc":"29758:47:53","nodeType":"YulBlock","src":"29758:47:53","statements":[{"nativeSrc":"29768:31:53","nodeType":"YulAssignment","src":"29768:31:53","value":{"arguments":[{"name":"value","nativeSrc":"29793:5:53","nodeType":"YulIdentifier","src":"29793:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"29779:13:53","nodeType":"YulIdentifier","src":"29779:13:53"},"nativeSrc":"29779:20:53","nodeType":"YulFunctionCall","src":"29779:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"29768:7:53","nodeType":"YulIdentifier","src":"29768:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"29711:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29740:5:53","nodeType":"YulTypedName","src":"29740:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"29750:7:53","nodeType":"YulTypedName","src":"29750:7:53","type":""}],"src":"29711:94:53"},{"body":{"nativeSrc":"29858:53:53","nodeType":"YulBlock","src":"29858:53:53","statements":[{"nativeSrc":"29868:37:53","nodeType":"YulAssignment","src":"29868:37:53","value":{"arguments":[{"name":"value","nativeSrc":"29899:5:53","nodeType":"YulIdentifier","src":"29899:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"29879:19:53","nodeType":"YulIdentifier","src":"29879:19:53"},"nativeSrc":"29879:26:53","nodeType":"YulFunctionCall","src":"29879:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"29868:7:53","nodeType":"YulIdentifier","src":"29868:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"29811:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29840:5:53","nodeType":"YulTypedName","src":"29840:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"29850:7:53","nodeType":"YulTypedName","src":"29850:7:53","type":""}],"src":"29811:100:53"},{"body":{"nativeSrc":"30017:104:53","nodeType":"YulBlock","src":"30017:104:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30034:3:53","nodeType":"YulIdentifier","src":"30034:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30107:5:53","nodeType":"YulIdentifier","src":"30107:5:53"}],"functionName":{"name":"convert_t_contract$_IERC1155_$1190_to_t_address","nativeSrc":"30059:47:53","nodeType":"YulIdentifier","src":"30059:47:53"},"nativeSrc":"30059:54:53","nodeType":"YulFunctionCall","src":"30059:54:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"30039:19:53","nodeType":"YulIdentifier","src":"30039:19:53"},"nativeSrc":"30039:75:53","nodeType":"YulFunctionCall","src":"30039:75:53"}],"functionName":{"name":"mstore","nativeSrc":"30027:6:53","nodeType":"YulIdentifier","src":"30027:6:53"},"nativeSrc":"30027:88:53","nodeType":"YulFunctionCall","src":"30027:88:53"},"nativeSrc":"30027:88:53","nodeType":"YulExpressionStatement","src":"30027:88:53"}]},"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"29917:204:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30005:5:53","nodeType":"YulTypedName","src":"30005:5:53","type":""},{"name":"pos","nativeSrc":"30012:3:53","nodeType":"YulTypedName","src":"30012:3:53","type":""}],"src":"29917:204:53"},{"body":{"nativeSrc":"30210:74:53","nodeType":"YulBlock","src":"30210:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30227:3:53","nodeType":"YulIdentifier","src":"30227:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30270:5:53","nodeType":"YulIdentifier","src":"30270:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"30252:17:53","nodeType":"YulIdentifier","src":"30252:17:53"},"nativeSrc":"30252:24:53","nodeType":"YulFunctionCall","src":"30252:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"30232:19:53","nodeType":"YulIdentifier","src":"30232:19:53"},"nativeSrc":"30232:45:53","nodeType":"YulFunctionCall","src":"30232:45:53"}],"functionName":{"name":"mstore","nativeSrc":"30220:6:53","nodeType":"YulIdentifier","src":"30220:6:53"},"nativeSrc":"30220:58:53","nodeType":"YulFunctionCall","src":"30220:58:53"},"nativeSrc":"30220:58:53","nodeType":"YulExpressionStatement","src":"30220:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"30127:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30198:5:53","nodeType":"YulTypedName","src":"30198:5:53","type":""},{"name":"pos","nativeSrc":"30205:3:53","nodeType":"YulTypedName","src":"30205:3:53","type":""}],"src":"30127:157:53"},{"body":{"nativeSrc":"30337:32:53","nodeType":"YulBlock","src":"30337:32:53","statements":[{"nativeSrc":"30347:16:53","nodeType":"YulAssignment","src":"30347:16:53","value":{"name":"value","nativeSrc":"30358:5:53","nodeType":"YulIdentifier","src":"30358:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"30347:7:53","nodeType":"YulIdentifier","src":"30347:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"30290:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30319:5:53","nodeType":"YulTypedName","src":"30319:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"30329:7:53","nodeType":"YulTypedName","src":"30329:7:53","type":""}],"src":"30290:79:53"},{"body":{"nativeSrc":"30458:74:53","nodeType":"YulBlock","src":"30458:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30475:3:53","nodeType":"YulIdentifier","src":"30475:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30518:5:53","nodeType":"YulIdentifier","src":"30518:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"30500:17:53","nodeType":"YulIdentifier","src":"30500:17:53"},"nativeSrc":"30500:24:53","nodeType":"YulFunctionCall","src":"30500:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"30480:19:53","nodeType":"YulIdentifier","src":"30480:19:53"},"nativeSrc":"30480:45:53","nodeType":"YulFunctionCall","src":"30480:45:53"}],"functionName":{"name":"mstore","nativeSrc":"30468:6:53","nodeType":"YulIdentifier","src":"30468:6:53"},"nativeSrc":"30468:58:53","nodeType":"YulFunctionCall","src":"30468:58:53"},"nativeSrc":"30468:58:53","nodeType":"YulExpressionStatement","src":"30468:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"30375:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30446:5:53","nodeType":"YulTypedName","src":"30446:5:53","type":""},{"name":"pos","nativeSrc":"30453:3:53","nodeType":"YulTypedName","src":"30453:3:53","type":""}],"src":"30375:157:53"},{"body":{"nativeSrc":"30651:34:53","nodeType":"YulBlock","src":"30651:34:53","statements":[{"nativeSrc":"30661:18:53","nodeType":"YulAssignment","src":"30661:18:53","value":{"name":"pos","nativeSrc":"30676:3:53","nodeType":"YulIdentifier","src":"30676:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"30661:11:53","nodeType":"YulIdentifier","src":"30661:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30538:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30623:3:53","nodeType":"YulTypedName","src":"30623:3:53","type":""},{"name":"length","nativeSrc":"30628:6:53","nodeType":"YulTypedName","src":"30628:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"30639:11:53","nodeType":"YulTypedName","src":"30639:11:53","type":""}],"src":"30538:147:53"},{"body":{"nativeSrc":"30799:278:53","nodeType":"YulBlock","src":"30799:278:53","statements":[{"nativeSrc":"30809:52:53","nodeType":"YulVariableDeclaration","src":"30809:52:53","value":{"arguments":[{"name":"value","nativeSrc":"30855:5:53","nodeType":"YulIdentifier","src":"30855:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"30823:31:53","nodeType":"YulIdentifier","src":"30823:31:53"},"nativeSrc":"30823:38:53","nodeType":"YulFunctionCall","src":"30823:38:53"},"variables":[{"name":"length","nativeSrc":"30813:6:53","nodeType":"YulTypedName","src":"30813:6:53","type":""}]},{"nativeSrc":"30870:95:53","nodeType":"YulAssignment","src":"30870:95:53","value":{"arguments":[{"name":"pos","nativeSrc":"30953:3:53","nodeType":"YulIdentifier","src":"30953:3:53"},{"name":"length","nativeSrc":"30958:6:53","nodeType":"YulIdentifier","src":"30958:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30877:75:53","nodeType":"YulIdentifier","src":"30877:75:53"},"nativeSrc":"30877:88:53","nodeType":"YulFunctionCall","src":"30877:88:53"},"variableNames":[{"name":"pos","nativeSrc":"30870:3:53","nodeType":"YulIdentifier","src":"30870:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31013:5:53","nodeType":"YulIdentifier","src":"31013:5:53"},{"kind":"number","nativeSrc":"31020:4:53","nodeType":"YulLiteral","src":"31020:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31009:3:53","nodeType":"YulIdentifier","src":"31009:3:53"},"nativeSrc":"31009:16:53","nodeType":"YulFunctionCall","src":"31009:16:53"},{"name":"pos","nativeSrc":"31027:3:53","nodeType":"YulIdentifier","src":"31027:3:53"},{"name":"length","nativeSrc":"31032:6:53","nodeType":"YulIdentifier","src":"31032:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"30974:34:53","nodeType":"YulIdentifier","src":"30974:34:53"},"nativeSrc":"30974:65:53","nodeType":"YulFunctionCall","src":"30974:65:53"},"nativeSrc":"30974:65:53","nodeType":"YulExpressionStatement","src":"30974:65:53"},{"nativeSrc":"31048:23:53","nodeType":"YulAssignment","src":"31048:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"31059:3:53","nodeType":"YulIdentifier","src":"31059:3:53"},{"name":"length","nativeSrc":"31064:6:53","nodeType":"YulIdentifier","src":"31064:6:53"}],"functionName":{"name":"add","nativeSrc":"31055:3:53","nodeType":"YulIdentifier","src":"31055:3:53"},"nativeSrc":"31055:16:53","nodeType":"YulFunctionCall","src":"31055:16:53"},"variableNames":[{"name":"end","nativeSrc":"31048:3:53","nodeType":"YulIdentifier","src":"31048:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30691:386:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30780:5:53","nodeType":"YulTypedName","src":"30780:5:53","type":""},{"name":"pos","nativeSrc":"30787:3:53","nodeType":"YulTypedName","src":"30787:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30795:3:53","nodeType":"YulTypedName","src":"30795:3:53","type":""}],"src":"30691:386:53"},{"body":{"nativeSrc":"31346:606:53","nodeType":"YulBlock","src":"31346:606:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"31436:6:53","nodeType":"YulIdentifier","src":"31436:6:53"},{"name":"pos","nativeSrc":"31445:3:53","nodeType":"YulIdentifier","src":"31445:3:53"}],"functionName":{"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"31357:78:53","nodeType":"YulIdentifier","src":"31357:78:53"},"nativeSrc":"31357:92:53","nodeType":"YulFunctionCall","src":"31357:92:53"},"nativeSrc":"31357:92:53","nodeType":"YulExpressionStatement","src":"31357:92:53"},{"nativeSrc":"31458:19:53","nodeType":"YulAssignment","src":"31458:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31469:3:53","nodeType":"YulIdentifier","src":"31469:3:53"},{"kind":"number","nativeSrc":"31474:2:53","nodeType":"YulLiteral","src":"31474:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"31465:3:53","nodeType":"YulIdentifier","src":"31465:3:53"},"nativeSrc":"31465:12:53","nodeType":"YulFunctionCall","src":"31465:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31458:3:53","nodeType":"YulIdentifier","src":"31458:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"31549:6:53","nodeType":"YulIdentifier","src":"31549:6:53"},{"name":"pos","nativeSrc":"31558:3:53","nodeType":"YulIdentifier","src":"31558:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"31487:61:53","nodeType":"YulIdentifier","src":"31487:61:53"},"nativeSrc":"31487:75:53","nodeType":"YulFunctionCall","src":"31487:75:53"},"nativeSrc":"31487:75:53","nodeType":"YulExpressionStatement","src":"31487:75:53"},{"nativeSrc":"31571:19:53","nodeType":"YulAssignment","src":"31571:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31582:3:53","nodeType":"YulIdentifier","src":"31582:3:53"},{"kind":"number","nativeSrc":"31587:2:53","nodeType":"YulLiteral","src":"31587:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"31578:3:53","nodeType":"YulIdentifier","src":"31578:3:53"},"nativeSrc":"31578:12:53","nodeType":"YulFunctionCall","src":"31578:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31571:3:53","nodeType":"YulIdentifier","src":"31571:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"31662:6:53","nodeType":"YulIdentifier","src":"31662:6:53"},{"name":"pos","nativeSrc":"31671:3:53","nodeType":"YulIdentifier","src":"31671:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"31600:61:53","nodeType":"YulIdentifier","src":"31600:61:53"},"nativeSrc":"31600:75:53","nodeType":"YulFunctionCall","src":"31600:75:53"},"nativeSrc":"31600:75:53","nodeType":"YulExpressionStatement","src":"31600:75:53"},{"nativeSrc":"31684:19:53","nodeType":"YulAssignment","src":"31684:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31695:3:53","nodeType":"YulIdentifier","src":"31695:3:53"},{"kind":"number","nativeSrc":"31700:2:53","nodeType":"YulLiteral","src":"31700:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31691:3:53","nodeType":"YulIdentifier","src":"31691:3:53"},"nativeSrc":"31691:12:53","nodeType":"YulFunctionCall","src":"31691:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31684:3:53","nodeType":"YulIdentifier","src":"31684:3:53"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"31775:6:53","nodeType":"YulIdentifier","src":"31775:6:53"},{"name":"pos","nativeSrc":"31784:3:53","nodeType":"YulIdentifier","src":"31784:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"31713:61:53","nodeType":"YulIdentifier","src":"31713:61:53"},"nativeSrc":"31713:75:53","nodeType":"YulFunctionCall","src":"31713:75:53"},"nativeSrc":"31713:75:53","nodeType":"YulExpressionStatement","src":"31713:75:53"},{"nativeSrc":"31797:19:53","nodeType":"YulAssignment","src":"31797:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31808:3:53","nodeType":"YulIdentifier","src":"31808:3:53"},{"kind":"number","nativeSrc":"31813:2:53","nodeType":"YulLiteral","src":"31813:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31804:3:53","nodeType":"YulIdentifier","src":"31804:3:53"},"nativeSrc":"31804:12:53","nodeType":"YulFunctionCall","src":"31804:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31797:3:53","nodeType":"YulIdentifier","src":"31797:3:53"}]},{"nativeSrc":"31826:100:53","nodeType":"YulAssignment","src":"31826:100:53","value":{"arguments":[{"name":"value4","nativeSrc":"31913:6:53","nodeType":"YulIdentifier","src":"31913:6:53"},{"name":"pos","nativeSrc":"31922:3:53","nodeType":"YulIdentifier","src":"31922:3:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31833:79:53","nodeType":"YulIdentifier","src":"31833:79:53"},"nativeSrc":"31833:93:53","nodeType":"YulFunctionCall","src":"31833:93:53"},"variableNames":[{"name":"pos","nativeSrc":"31826:3:53","nodeType":"YulIdentifier","src":"31826:3:53"}]},{"nativeSrc":"31936:10:53","nodeType":"YulAssignment","src":"31936:10:53","value":{"name":"pos","nativeSrc":"31943:3:53","nodeType":"YulIdentifier","src":"31943:3:53"},"variableNames":[{"name":"end","nativeSrc":"31936:3:53","nodeType":"YulIdentifier","src":"31936:3:53"}]}]},"name":"abi_encode_tuple_packed_t_contract$_IERC1155_$1190_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"31083:869:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31293:3:53","nodeType":"YulTypedName","src":"31293:3:53","type":""},{"name":"value4","nativeSrc":"31299:6:53","nodeType":"YulTypedName","src":"31299:6:53","type":""},{"name":"value3","nativeSrc":"31307:6:53","nodeType":"YulTypedName","src":"31307:6:53","type":""},{"name":"value2","nativeSrc":"31315:6:53","nodeType":"YulTypedName","src":"31315:6:53","type":""},{"name":"value1","nativeSrc":"31323:6:53","nodeType":"YulTypedName","src":"31323:6:53","type":""},{"name":"value0","nativeSrc":"31331:6:53","nodeType":"YulTypedName","src":"31331:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31342:3:53","nodeType":"YulTypedName","src":"31342:3:53","type":""}],"src":"31083:869:53"},{"body":{"nativeSrc":"32164:482:53","nodeType":"YulBlock","src":"32164:482:53","statements":[{"nativeSrc":"32174:26:53","nodeType":"YulVariableDeclaration","src":"32174:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"32190:3:53","nodeType":"YulIdentifier","src":"32190:3:53"},{"kind":"number","nativeSrc":"32195:4:53","nodeType":"YulLiteral","src":"32195:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"32186:3:53","nodeType":"YulIdentifier","src":"32186:3:53"},"nativeSrc":"32186:14:53","nodeType":"YulFunctionCall","src":"32186:14:53"},"variables":[{"name":"tail","nativeSrc":"32178:4:53","nodeType":"YulTypedName","src":"32178:4:53","type":""}]},{"nativeSrc":"32210:166:53","nodeType":"YulBlock","src":"32210:166:53","statements":[{"nativeSrc":"32247:43:53","nodeType":"YulVariableDeclaration","src":"32247:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32277:5:53","nodeType":"YulIdentifier","src":"32277:5:53"},{"kind":"number","nativeSrc":"32284:4:53","nodeType":"YulLiteral","src":"32284:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"32273:3:53","nodeType":"YulIdentifier","src":"32273:3:53"},"nativeSrc":"32273:16:53","nodeType":"YulFunctionCall","src":"32273:16:53"}],"functionName":{"name":"mload","nativeSrc":"32267:5:53","nodeType":"YulIdentifier","src":"32267:5:53"},"nativeSrc":"32267:23:53","nodeType":"YulFunctionCall","src":"32267:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"32251:12:53","nodeType":"YulTypedName","src":"32251:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"32337:12:53","nodeType":"YulIdentifier","src":"32337:12:53"},{"arguments":[{"name":"pos","nativeSrc":"32355:3:53","nodeType":"YulIdentifier","src":"32355:3:53"},{"kind":"number","nativeSrc":"32360:4:53","nodeType":"YulLiteral","src":"32360:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"32351:3:53","nodeType":"YulIdentifier","src":"32351:3:53"},"nativeSrc":"32351:14:53","nodeType":"YulFunctionCall","src":"32351:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"32303:33:53","nodeType":"YulIdentifier","src":"32303:33:53"},"nativeSrc":"32303:63:53","nodeType":"YulFunctionCall","src":"32303:63:53"},"nativeSrc":"32303:63:53","nodeType":"YulExpressionStatement","src":"32303:63:53"}]},{"nativeSrc":"32386:233:53","nodeType":"YulBlock","src":"32386:233:53","statements":[{"nativeSrc":"32421:43:53","nodeType":"YulVariableDeclaration","src":"32421:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32451:5:53","nodeType":"YulIdentifier","src":"32451:5:53"},{"kind":"number","nativeSrc":"32458:4:53","nodeType":"YulLiteral","src":"32458:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32447:3:53","nodeType":"YulIdentifier","src":"32447:3:53"},"nativeSrc":"32447:16:53","nodeType":"YulFunctionCall","src":"32447:16:53"}],"functionName":{"name":"mload","nativeSrc":"32441:5:53","nodeType":"YulIdentifier","src":"32441:5:53"},"nativeSrc":"32441:23:53","nodeType":"YulFunctionCall","src":"32441:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"32425:12:53","nodeType":"YulTypedName","src":"32425:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32489:3:53","nodeType":"YulIdentifier","src":"32489:3:53"},{"kind":"number","nativeSrc":"32494:4:53","nodeType":"YulLiteral","src":"32494:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32485:3:53","nodeType":"YulIdentifier","src":"32485:3:53"},"nativeSrc":"32485:14:53","nodeType":"YulFunctionCall","src":"32485:14:53"},{"arguments":[{"name":"tail","nativeSrc":"32505:4:53","nodeType":"YulIdentifier","src":"32505:4:53"},{"name":"pos","nativeSrc":"32511:3:53","nodeType":"YulIdentifier","src":"32511:3:53"}],"functionName":{"name":"sub","nativeSrc":"32501:3:53","nodeType":"YulIdentifier","src":"32501:3:53"},"nativeSrc":"32501:14:53","nodeType":"YulFunctionCall","src":"32501:14:53"}],"functionName":{"name":"mstore","nativeSrc":"32478:6:53","nodeType":"YulIdentifier","src":"32478:6:53"},"nativeSrc":"32478:38:53","nodeType":"YulFunctionCall","src":"32478:38:53"},"nativeSrc":"32478:38:53","nodeType":"YulExpressionStatement","src":"32478:38:53"},{"nativeSrc":"32529:79:53","nodeType":"YulAssignment","src":"32529:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"32589:12:53","nodeType":"YulIdentifier","src":"32589:12:53"},{"name":"tail","nativeSrc":"32603:4:53","nodeType":"YulIdentifier","src":"32603:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"32537:51:53","nodeType":"YulIdentifier","src":"32537:51:53"},"nativeSrc":"32537:71:53","nodeType":"YulFunctionCall","src":"32537:71:53"},"variableNames":[{"name":"tail","nativeSrc":"32529:4:53","nodeType":"YulIdentifier","src":"32529:4:53"}]}]},{"nativeSrc":"32629:11:53","nodeType":"YulAssignment","src":"32629:11:53","value":{"name":"tail","nativeSrc":"32636:4:53","nodeType":"YulIdentifier","src":"32636:4:53"},"variableNames":[{"name":"end","nativeSrc":"32629:3:53","nodeType":"YulIdentifier","src":"32629:3:53"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"32028:618:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"32143:5:53","nodeType":"YulTypedName","src":"32143:5:53","type":""},{"name":"pos","nativeSrc":"32150:3:53","nodeType":"YulTypedName","src":"32150:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32159:3:53","nodeType":"YulTypedName","src":"32159:3:53","type":""}],"src":"32028:618:53"},{"body":{"nativeSrc":"32812:237:53","nodeType":"YulBlock","src":"32812:237:53","statements":[{"nativeSrc":"32822:26:53","nodeType":"YulAssignment","src":"32822:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"32834:9:53","nodeType":"YulIdentifier","src":"32834:9:53"},{"kind":"number","nativeSrc":"32845:2:53","nodeType":"YulLiteral","src":"32845:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32830:3:53","nodeType":"YulIdentifier","src":"32830:3:53"},"nativeSrc":"32830:18:53","nodeType":"YulFunctionCall","src":"32830:18:53"},"variableNames":[{"name":"tail","nativeSrc":"32822:4:53","nodeType":"YulIdentifier","src":"32822:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32869:9:53","nodeType":"YulIdentifier","src":"32869:9:53"},{"kind":"number","nativeSrc":"32880:1:53","nodeType":"YulLiteral","src":"32880:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32865:3:53","nodeType":"YulIdentifier","src":"32865:3:53"},"nativeSrc":"32865:17:53","nodeType":"YulFunctionCall","src":"32865:17:53"},{"arguments":[{"name":"tail","nativeSrc":"32888:4:53","nodeType":"YulIdentifier","src":"32888:4:53"},{"name":"headStart","nativeSrc":"32894:9:53","nodeType":"YulIdentifier","src":"32894:9:53"}],"functionName":{"name":"sub","nativeSrc":"32884:3:53","nodeType":"YulIdentifier","src":"32884:3:53"},"nativeSrc":"32884:20:53","nodeType":"YulFunctionCall","src":"32884:20:53"}],"functionName":{"name":"mstore","nativeSrc":"32858:6:53","nodeType":"YulIdentifier","src":"32858:6:53"},"nativeSrc":"32858:47:53","nodeType":"YulFunctionCall","src":"32858:47:53"},"nativeSrc":"32858:47:53","nodeType":"YulExpressionStatement","src":"32858:47:53"},{"nativeSrc":"32914:128:53","nodeType":"YulAssignment","src":"32914:128:53","value":{"arguments":[{"name":"value0","nativeSrc":"33028:6:53","nodeType":"YulIdentifier","src":"33028:6:53"},{"name":"tail","nativeSrc":"33037:4:53","nodeType":"YulIdentifier","src":"33037:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"32922:105:53","nodeType":"YulIdentifier","src":"32922:105:53"},"nativeSrc":"32922:120:53","nodeType":"YulFunctionCall","src":"32922:120:53"},"variableNames":[{"name":"tail","nativeSrc":"32914:4:53","nodeType":"YulIdentifier","src":"32914:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed","nativeSrc":"32652:397:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32784:9:53","nodeType":"YulTypedName","src":"32784:9:53","type":""},{"name":"value0","nativeSrc":"32796:6:53","nodeType":"YulTypedName","src":"32796:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32807:4:53","nodeType":"YulTypedName","src":"32807:4:53","type":""}],"src":"32652:397:53"},{"body":{"nativeSrc":"33199:275:53","nodeType":"YulBlock","src":"33199:275:53","statements":[{"nativeSrc":"33209:26:53","nodeType":"YulAssignment","src":"33209:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33221:9:53","nodeType":"YulIdentifier","src":"33221:9:53"},{"kind":"number","nativeSrc":"33232:2:53","nodeType":"YulLiteral","src":"33232:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33217:3:53","nodeType":"YulIdentifier","src":"33217:3:53"},"nativeSrc":"33217:18:53","nodeType":"YulFunctionCall","src":"33217:18:53"},"variableNames":[{"name":"tail","nativeSrc":"33209:4:53","nodeType":"YulIdentifier","src":"33209:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"33289:6:53","nodeType":"YulIdentifier","src":"33289:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"33302:9:53","nodeType":"YulIdentifier","src":"33302:9:53"},{"kind":"number","nativeSrc":"33313:1:53","nodeType":"YulLiteral","src":"33313:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33298:3:53","nodeType":"YulIdentifier","src":"33298:3:53"},"nativeSrc":"33298:17:53","nodeType":"YulFunctionCall","src":"33298:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"33245:43:53","nodeType":"YulIdentifier","src":"33245:43:53"},"nativeSrc":"33245:71:53","nodeType":"YulFunctionCall","src":"33245:71:53"},"nativeSrc":"33245:71:53","nodeType":"YulExpressionStatement","src":"33245:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33337:9:53","nodeType":"YulIdentifier","src":"33337:9:53"},{"kind":"number","nativeSrc":"33348:2:53","nodeType":"YulLiteral","src":"33348:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33333:3:53","nodeType":"YulIdentifier","src":"33333:3:53"},"nativeSrc":"33333:18:53","nodeType":"YulFunctionCall","src":"33333:18:53"},{"arguments":[{"name":"tail","nativeSrc":"33357:4:53","nodeType":"YulIdentifier","src":"33357:4:53"},{"name":"headStart","nativeSrc":"33363:9:53","nodeType":"YulIdentifier","src":"33363:9:53"}],"functionName":{"name":"sub","nativeSrc":"33353:3:53","nodeType":"YulIdentifier","src":"33353:3:53"},"nativeSrc":"33353:20:53","nodeType":"YulFunctionCall","src":"33353:20:53"}],"functionName":{"name":"mstore","nativeSrc":"33326:6:53","nodeType":"YulIdentifier","src":"33326:6:53"},"nativeSrc":"33326:48:53","nodeType":"YulFunctionCall","src":"33326:48:53"},"nativeSrc":"33326:48:53","nodeType":"YulExpressionStatement","src":"33326:48:53"},{"nativeSrc":"33383:84:53","nodeType":"YulAssignment","src":"33383:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"33453:6:53","nodeType":"YulIdentifier","src":"33453:6:53"},{"name":"tail","nativeSrc":"33462:4:53","nodeType":"YulIdentifier","src":"33462:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"33391:61:53","nodeType":"YulIdentifier","src":"33391:61:53"},"nativeSrc":"33391:76:53","nodeType":"YulFunctionCall","src":"33391:76:53"},"variableNames":[{"name":"tail","nativeSrc":"33383:4:53","nodeType":"YulIdentifier","src":"33383:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"33055:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33163:9:53","nodeType":"YulTypedName","src":"33163:9:53","type":""},{"name":"value1","nativeSrc":"33175:6:53","nodeType":"YulTypedName","src":"33175:6:53","type":""},{"name":"value0","nativeSrc":"33183:6:53","nodeType":"YulTypedName","src":"33183:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33194:4:53","nodeType":"YulTypedName","src":"33194:4:53","type":""}],"src":"33055:419:53"},{"body":{"nativeSrc":"33525:149:53","nodeType":"YulBlock","src":"33525:149:53","statements":[{"nativeSrc":"33535:25:53","nodeType":"YulAssignment","src":"33535:25:53","value":{"arguments":[{"name":"x","nativeSrc":"33558:1:53","nodeType":"YulIdentifier","src":"33558:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33540:17:53","nodeType":"YulIdentifier","src":"33540:17:53"},"nativeSrc":"33540:20:53","nodeType":"YulFunctionCall","src":"33540:20:53"},"variableNames":[{"name":"x","nativeSrc":"33535:1:53","nodeType":"YulIdentifier","src":"33535:1:53"}]},{"nativeSrc":"33569:25:53","nodeType":"YulAssignment","src":"33569:25:53","value":{"arguments":[{"name":"y","nativeSrc":"33592:1:53","nodeType":"YulIdentifier","src":"33592:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33574:17:53","nodeType":"YulIdentifier","src":"33574:17:53"},"nativeSrc":"33574:20:53","nodeType":"YulFunctionCall","src":"33574:20:53"},"variableNames":[{"name":"y","nativeSrc":"33569:1:53","nodeType":"YulIdentifier","src":"33569:1:53"}]},{"nativeSrc":"33603:17:53","nodeType":"YulAssignment","src":"33603:17:53","value":{"arguments":[{"name":"x","nativeSrc":"33615:1:53","nodeType":"YulIdentifier","src":"33615:1:53"},{"name":"y","nativeSrc":"33618:1:53","nodeType":"YulIdentifier","src":"33618:1:53"}],"functionName":{"name":"sub","nativeSrc":"33611:3:53","nodeType":"YulIdentifier","src":"33611:3:53"},"nativeSrc":"33611:9:53","nodeType":"YulFunctionCall","src":"33611:9:53"},"variableNames":[{"name":"diff","nativeSrc":"33603:4:53","nodeType":"YulIdentifier","src":"33603:4:53"}]},{"body":{"nativeSrc":"33645:22:53","nodeType":"YulBlock","src":"33645:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33647:16:53","nodeType":"YulIdentifier","src":"33647:16:53"},"nativeSrc":"33647:18:53","nodeType":"YulFunctionCall","src":"33647:18:53"},"nativeSrc":"33647:18:53","nodeType":"YulExpressionStatement","src":"33647:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"33636:4:53","nodeType":"YulIdentifier","src":"33636:4:53"},{"name":"x","nativeSrc":"33642:1:53","nodeType":"YulIdentifier","src":"33642:1:53"}],"functionName":{"name":"gt","nativeSrc":"33633:2:53","nodeType":"YulIdentifier","src":"33633:2:53"},"nativeSrc":"33633:11:53","nodeType":"YulFunctionCall","src":"33633:11:53"},"nativeSrc":"33630:37:53","nodeType":"YulIf","src":"33630:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"33480:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"33511:1:53","nodeType":"YulTypedName","src":"33511:1:53","type":""},{"name":"y","nativeSrc":"33514:1:53","nodeType":"YulTypedName","src":"33514:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"33520:4:53","nodeType":"YulTypedName","src":"33520:4:53","type":""}],"src":"33480:194:53"},{"body":{"nativeSrc":"33908:523:53","nodeType":"YulBlock","src":"33908:523:53","statements":[{"nativeSrc":"33918:27:53","nodeType":"YulAssignment","src":"33918:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33930:9:53","nodeType":"YulIdentifier","src":"33930:9:53"},{"kind":"number","nativeSrc":"33941:3:53","nodeType":"YulLiteral","src":"33941:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"33926:3:53","nodeType":"YulIdentifier","src":"33926:3:53"},"nativeSrc":"33926:19:53","nodeType":"YulFunctionCall","src":"33926:19:53"},"variableNames":[{"name":"tail","nativeSrc":"33918:4:53","nodeType":"YulIdentifier","src":"33918:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"33999:6:53","nodeType":"YulIdentifier","src":"33999:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34012:9:53","nodeType":"YulIdentifier","src":"34012:9:53"},{"kind":"number","nativeSrc":"34023:1:53","nodeType":"YulLiteral","src":"34023:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34008:3:53","nodeType":"YulIdentifier","src":"34008:3:53"},"nativeSrc":"34008:17:53","nodeType":"YulFunctionCall","src":"34008:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"33955:43:53","nodeType":"YulIdentifier","src":"33955:43:53"},"nativeSrc":"33955:71:53","nodeType":"YulFunctionCall","src":"33955:71:53"},"nativeSrc":"33955:71:53","nodeType":"YulExpressionStatement","src":"33955:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"34080:6:53","nodeType":"YulIdentifier","src":"34080:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34093:9:53","nodeType":"YulIdentifier","src":"34093:9:53"},{"kind":"number","nativeSrc":"34104:2:53","nodeType":"YulLiteral","src":"34104:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34089:3:53","nodeType":"YulIdentifier","src":"34089:3:53"},"nativeSrc":"34089:18:53","nodeType":"YulFunctionCall","src":"34089:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"34036:43:53","nodeType":"YulIdentifier","src":"34036:43:53"},"nativeSrc":"34036:72:53","nodeType":"YulFunctionCall","src":"34036:72:53"},"nativeSrc":"34036:72:53","nodeType":"YulExpressionStatement","src":"34036:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"34162:6:53","nodeType":"YulIdentifier","src":"34162:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34175:9:53","nodeType":"YulIdentifier","src":"34175:9:53"},{"kind":"number","nativeSrc":"34186:2:53","nodeType":"YulLiteral","src":"34186:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34171:3:53","nodeType":"YulIdentifier","src":"34171:3:53"},"nativeSrc":"34171:18:53","nodeType":"YulFunctionCall","src":"34171:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"34118:43:53","nodeType":"YulIdentifier","src":"34118:43:53"},"nativeSrc":"34118:72:53","nodeType":"YulFunctionCall","src":"34118:72:53"},"nativeSrc":"34118:72:53","nodeType":"YulExpressionStatement","src":"34118:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"34244:6:53","nodeType":"YulIdentifier","src":"34244:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34257:9:53","nodeType":"YulIdentifier","src":"34257:9:53"},{"kind":"number","nativeSrc":"34268:2:53","nodeType":"YulLiteral","src":"34268:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34253:3:53","nodeType":"YulIdentifier","src":"34253:3:53"},"nativeSrc":"34253:18:53","nodeType":"YulFunctionCall","src":"34253:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"34200:43:53","nodeType":"YulIdentifier","src":"34200:43:53"},"nativeSrc":"34200:72:53","nodeType":"YulFunctionCall","src":"34200:72:53"},"nativeSrc":"34200:72:53","nodeType":"YulExpressionStatement","src":"34200:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34293:9:53","nodeType":"YulIdentifier","src":"34293:9:53"},{"kind":"number","nativeSrc":"34304:3:53","nodeType":"YulLiteral","src":"34304:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34289:3:53","nodeType":"YulIdentifier","src":"34289:3:53"},"nativeSrc":"34289:19:53","nodeType":"YulFunctionCall","src":"34289:19:53"},{"arguments":[{"name":"tail","nativeSrc":"34314:4:53","nodeType":"YulIdentifier","src":"34314:4:53"},{"name":"headStart","nativeSrc":"34320:9:53","nodeType":"YulIdentifier","src":"34320:9:53"}],"functionName":{"name":"sub","nativeSrc":"34310:3:53","nodeType":"YulIdentifier","src":"34310:3:53"},"nativeSrc":"34310:20:53","nodeType":"YulFunctionCall","src":"34310:20:53"}],"functionName":{"name":"mstore","nativeSrc":"34282:6:53","nodeType":"YulIdentifier","src":"34282:6:53"},"nativeSrc":"34282:49:53","nodeType":"YulFunctionCall","src":"34282:49:53"},"nativeSrc":"34282:49:53","nodeType":"YulExpressionStatement","src":"34282:49:53"},{"nativeSrc":"34340:84:53","nodeType":"YulAssignment","src":"34340:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"34410:6:53","nodeType":"YulIdentifier","src":"34410:6:53"},{"name":"tail","nativeSrc":"34419:4:53","nodeType":"YulIdentifier","src":"34419:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"34348:61:53","nodeType":"YulIdentifier","src":"34348:61:53"},"nativeSrc":"34348:76:53","nodeType":"YulFunctionCall","src":"34348:76:53"},"variableNames":[{"name":"tail","nativeSrc":"34340:4:53","nodeType":"YulIdentifier","src":"34340:4:53"}]}]},"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":"33680:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33848:9:53","nodeType":"YulTypedName","src":"33848:9:53","type":""},{"name":"value4","nativeSrc":"33860:6:53","nodeType":"YulTypedName","src":"33860:6:53","type":""},{"name":"value3","nativeSrc":"33868:6:53","nodeType":"YulTypedName","src":"33868:6:53","type":""},{"name":"value2","nativeSrc":"33876:6:53","nodeType":"YulTypedName","src":"33876:6:53","type":""},{"name":"value1","nativeSrc":"33884:6:53","nodeType":"YulTypedName","src":"33884:6:53","type":""},{"name":"value0","nativeSrc":"33892:6:53","nodeType":"YulTypedName","src":"33892:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33903:4:53","nodeType":"YulTypedName","src":"33903:4:53","type":""}],"src":"33680:751:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC1155_$1190_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC1155_$1190_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC1155_$1190__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_Strategy_$16126(value) {\n if iszero(lt(value, 2)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_Strategy_$16126(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Strategy_$16126(value)\n }\n\n function convert_t_enum$_Strategy_$16126_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Strategy_$16126(value)\n }\n\n function abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Strategy_$16126_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_Strategy_$16126__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\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, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value6, value7 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\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_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_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_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\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, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_IERC1155_$1190(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC1155_$1190(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC1155_$1190(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC1155_$1190(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC1155_$1190(value)\n }\n\n function validator_revert_t_enum$_Strategy_$16126(value) {\n if iszero(lt(value, 2)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_Strategy_$16126(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Strategy_$16126(value)\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 // struct ERC1155Incentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$16140_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_IERC1155_$1190(add(headStart, offset), end))\n\n }\n\n {\n // strategy\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_enum$_Strategy_$16126(add(headStart, offset), end))\n\n }\n\n {\n // tokenId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // extraData\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$16140_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$16140_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\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_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_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_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_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_bytes_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_bytes_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_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.ERC1155Payload -> struct Budget.ERC1155Payload\n function abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x60)\n\n {\n // tokenId\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr__to_t_struct$_ERC1155Payload_$13494_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_assert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$13471(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$13471(value)\n }\n\n function convert_t_enum$_AssetType_$13471_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$13471(value)\n }\n\n function abi_encode_t_enum$_AssetType_$13471_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$13471_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$13471_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value0, tail)\n\n }\n\n // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function 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 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_address_t_address_t_uint256_t_rational_1_by_1_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_rational_1_by_1_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 shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(convert_t_contract$_IERC1155_$1190_to_t_address(value)))\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_contract$_IERC1155_$1190_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value4, pos)\n\n end := pos\n }\n\n // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_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}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212207ab1fe59a979b1152938e5ee797a972d121475f35cd2658624bf862c8dcca8b564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x134 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA8C62E76 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x428 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x4BC JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x32E JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x3A6 JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xFC JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0x609D3334 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x29E JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17D70F7C EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x19E JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D2 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x159 SWAP2 SWAP1 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x195 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A6 PUSH2 0x577 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x5C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C9 SWAP2 SWAP1 PUSH2 0x1507 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH2 0x973 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x272 PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x288 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x167C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B2 PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DC PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x325 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x354 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34F SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x390 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3BA PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C7 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD19 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x426 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x421 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x433 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x44E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x449 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x18F4 JUMP JUMPDEST PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4BA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xF90 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DD SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xFB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0xFD2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x580 PUSH2 0x104B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5F6 PUSH2 0x1055 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x628 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x64E JUMPI PUSH2 0x64D PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x69C JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71B SWAP3 SWAP2 SWAP1 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x736 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x75A SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD DUP2 LT ISZERO PUSH2 0x7B0 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x81C JUMPI PUSH2 0x81B PUSH2 0x1695 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84A SWAP2 SWAP1 PUSH2 0x1E90 JUMP JUMPDEST POP PUSH2 0x854 CALLER PUSH2 0x107E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x88B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x8A2 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x8C2 JUMPI PUSH2 0x8C1 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x939 SWAP2 SWAP1 PUSH2 0x2003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x95B SWAP2 SWAP1 PUSH2 0x20D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH2 0x9B9 SWAP1 PUSH2 0x1CCC 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 0x9E5 SWAP1 PUSH2 0x1CCC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA30 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA07 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA30 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA13 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0xA49 PUSH0 PUSH2 0x118B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAC PUSH2 0x1154 JUMP JUMPDEST PUSH0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xABF JUMPI PUSH2 0xABE PUSH2 0x1695 JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xAE1 JUMPI PUSH2 0xAE0 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xCED JUMPI PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAF6 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xB04 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B SWAP1 PUSH2 0x21D5 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC13 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCDB SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xCF1 JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD2A SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xD38 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1154 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD6F JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD7C DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xD88 PUSH2 0x1154 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD98 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xDB3 SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD DUP2 GT ISZERO PUSH2 0xE1D JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x23F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE14 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xE2E SWAP2 SWAP1 PUSH2 0x2445 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA0 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2478 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF4B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF98 PUSH2 0x1154 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xFAD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xFB6 DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1044 JUMPI POP PUSH2 0x1043 DUP3 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1086 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x10FE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x10C0 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1151 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1189 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1193 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x11F8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x124E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1324 JUMPI POP PUSH2 0x1323 DUP3 PUSH2 0x132F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13DD DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP2 EQ PUSH2 0x13E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13F8 DUP2 PUSH2 0x13D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1412 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1420 DUP5 DUP3 DUP6 ADD PUSH2 0x13EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x143D DUP2 PUSH2 0x1429 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1456 PUSH0 DUP4 ADD DUP5 PUSH2 0x1434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1487 PUSH0 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14CF PUSH2 0x14CA PUSH2 0x14C5 DUP5 PUSH2 0x148D JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14E0 DUP3 PUSH2 0x14B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14F1 DUP3 PUSH2 0x14D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1501 DUP2 PUSH2 0x14E7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x151A PUSH0 DUP4 ADD DUP5 PUSH2 0x14F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1541 JUMPI PUSH2 0x1540 PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x155E JUMPI PUSH2 0x155D PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x157A JUMPI PUSH2 0x1579 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1597 JUMPI PUSH2 0x1596 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15B4 JUMPI PUSH2 0x15B3 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x15C0 DUP6 DUP3 DUP7 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x160E DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1618 DUP2 DUP6 PUSH2 0x15D6 JUMP JUMPDEST SWAP4 POP PUSH2 0x1628 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1631 DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1654 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1666 DUP3 PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1676 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168F PUSH0 DUP4 ADD DUP5 PUSH2 0x166D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x16D3 JUMPI PUSH2 0x16D2 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x16E3 DUP3 PUSH2 0x16C2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x16F2 DUP3 PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1702 DUP2 PUSH2 0x16E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x171B PUSH0 DUP4 ADD DUP5 PUSH2 0x16F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x172A DUP2 PUSH2 0x165C JUMP JUMPDEST DUP2 EQ PUSH2 0x1734 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1745 DUP2 PUSH2 0x1721 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1760 JUMPI PUSH2 0x175F PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH2 0x177C PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1799 JUMPI PUSH2 0x1798 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x17BC JUMPI PUSH2 0x17BB PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x17C9 DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x17DA DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17FB JUMPI PUSH2 0x17FA PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1807 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x182A JUMPI PUSH2 0x1829 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1836 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1859 JUMPI PUSH2 0x1858 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1865 DUP12 DUP3 DUP13 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x1880 DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1899 PUSH0 DUP4 ADD DUP5 PUSH2 0x1877 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18B4 JUMPI PUSH2 0x18B3 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18C1 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18D3 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP2 EQ PUSH2 0x18DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18EE DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x190E JUMPI PUSH2 0x190D PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x191B DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x192C DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x193D DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x194E DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x196F JUMPI PUSH2 0x196E PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x197B DUP10 DUP3 DUP11 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x19C4 DUP3 PUSH2 0x15F4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x19E3 JUMPI PUSH2 0x19E2 PUSH2 0x198E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19F5 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A01 DUP3 DUP3 PUSH2 0x19BB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1A14 DUP3 PUSH2 0x165C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A24 DUP2 PUSH2 0x1A0A JUMP JUMPDEST DUP2 EQ PUSH2 0x1A2E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A3F DUP2 PUSH2 0x1A1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1A51 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A62 DUP2 PUSH2 0x1A45 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1A8F DUP3 PUSH2 0x15F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ABC PUSH2 0x1AB7 DUP5 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1AD8 JUMPI PUSH2 0x1AD7 PUSH2 0x1A68 JUMP JUMPDEST JUMPDEST PUSH2 0x1AE3 DUP5 DUP3 DUP6 PUSH2 0x1A9C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1AFF JUMPI PUSH2 0x1AFE PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B0F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1AAA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B2D JUMPI PUSH2 0x1B2C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x1B37 PUSH1 0xA0 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1B46 DUP5 DUP3 DUP6 ADD PUSH2 0x1A31 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1B59 DUP5 DUP3 DUP6 ADD PUSH2 0x1A54 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1B6D DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1B81 DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA5 JUMPI PUSH2 0x1BA4 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x1BB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BD2 JUMPI PUSH2 0x1BD1 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BEF JUMPI PUSH2 0x1BEE PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1BFB DUP5 DUP3 DUP6 ADD PUSH2 0x1B18 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C17 PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C39 DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C54 JUMPI PUSH2 0x1C53 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C61 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1C7D PUSH0 DUP4 ADD DUP7 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x1C97 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1CE3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1CF6 JUMPI PUSH2 0x1CF5 PUSH2 0x1C9F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1D58 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1D1D JUMP JUMPDEST PUSH2 0x1D62 DUP7 DUP4 PUSH2 0x1D1D 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 PUSH0 PUSH2 0x1D94 PUSH2 0x1D8F PUSH2 0x1D8A DUP5 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DAD DUP4 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x1DC1 PUSH2 0x1DB9 DUP3 PUSH2 0x1D9B JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1D29 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1DD5 PUSH2 0x1DC9 JUMP JUMPDEST PUSH2 0x1DE0 DUP2 DUP5 DUP5 PUSH2 0x1DA4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E03 JUMPI PUSH2 0x1DF8 PUSH0 DUP3 PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DE6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1E48 JUMPI PUSH2 0x1E19 DUP2 PUSH2 0x1CFC JUMP JUMPDEST PUSH2 0x1E22 DUP5 PUSH2 0x1D0E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1E31 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1E45 PUSH2 0x1E3D DUP6 PUSH2 0x1D0E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1DE5 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E68 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1E4D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E80 DUP4 DUP4 PUSH2 0x1E59 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E99 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EB2 JUMPI PUSH2 0x1EB1 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1EBC DUP3 SLOAD PUSH2 0x1CCC JUMP JUMPDEST PUSH2 0x1EC7 DUP3 DUP3 DUP6 PUSH2 0x1E07 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1EF8 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1EE6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1EF0 DUP6 DUP3 PUSH2 0x1E75 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1F57 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1F06 DUP7 PUSH2 0x1CFC JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1F2D 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 0x1F08 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1F4A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1F46 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1E59 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 0x1F68 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F88 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1F92 DUP2 DUP6 PUSH2 0x1F6E JUMP JUMPDEST SWAP4 POP PUSH2 0x1FA2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1FAB DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1FCB PUSH0 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1FDE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1FF6 DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x201B DUP2 DUP5 PUSH2 0x1FB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2034 JUMPI PUSH2 0x2033 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x2044 DUP3 PUSH2 0x2023 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2053 DUP3 PUSH2 0x2037 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2063 DUP2 PUSH2 0x2049 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2072 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x208D PUSH0 DUP7 ADD DUP3 PUSH2 0x205A JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x20A0 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x20B3 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x20CB DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20F0 DUP2 DUP5 PUSH2 0x2078 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x2117 PUSH1 0x40 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2126 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2149 JUMPI PUSH2 0x2148 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x2155 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2176 JUMPI PUSH2 0x2175 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2193 JUMPI PUSH2 0x2192 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x219F DUP5 DUP3 DUP6 ADD PUSH2 0x20F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x21DF DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x223F PUSH2 0x223A PUSH2 0x2235 DUP5 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2225 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2268 PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2275 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2282 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x228F PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2246 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x22A1 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C3 DUP3 PUSH2 0x22AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22D4 DUP3 PUSH2 0x22B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EC PUSH2 0x22E7 DUP3 PUSH2 0x14E7 JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2303 PUSH2 0x22FE DUP3 PUSH2 0x165C JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2323 PUSH2 0x231E DUP3 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x2309 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x233D DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x2347 DUP2 DUP6 PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP PUSH2 0x2357 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x236E DUP3 DUP9 PUSH2 0x22DB JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x237E DUP3 DUP8 PUSH2 0x22F2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x238E DUP3 DUP7 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x239E DUP3 DUP6 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x23AE DUP3 DUP5 PUSH2 0x2333 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x23D2 PUSH0 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x23EA DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x240F DUP2 DUP5 PUSH2 0x23BD JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x242A PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x243C DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x244F DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH2 0x245A DUP4 PUSH2 0x145C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2472 JUMPI PUSH2 0x2471 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x248B PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2498 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x24A5 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x24B2 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x24C4 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xB1FE59A979B1152938E5EE797A972D121475F35CD2658624BF862C DUP14 0xCC 0xA8 0xB5 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"603:6806:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6141:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1549:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1266:21:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2101:860;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4960:562;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;1642:22:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1467:20:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1356:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7165:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3162:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5903:202:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3946:761:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6829:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6141:224:42;6246:4;6284:34;6269:49;;;:11;:49;;;;:89;;;;6322:36;6346:11;6322:23;:36::i;:::-;6269:89;6262:96;;6141:224;;;:::o;1549:22::-;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1266:21:42:-;;;;;;;;;;;;;:::o;2101:860::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2181:24:42::1;2219:5;;2208:32;;;;;;;:::i;:::-;2181:59;;2341:13;2323:31:::0;::::1;;;;;;;:::i;:::-;;:5;:14;;;:31;;;;;;;;:::i;:::-;;::::0;2319:71:::1;;2363:27;;;;;;;;;;;;;;2319:71;2419:1;2404:5;:11;;;:16:::0;2400:63:::1;;2429:34;;;;;;;;;;;;;;2400:63;2537:17;2557:5;:11;;;:21;;;2587:4;2594:5;:13;;;2557:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2537:71;;2634:5;:11;;;2622:9;:23;2618:135;;;2705:5;:11;;;2719:9;2730:5;:11;;;2668:74;;;;;;;;;;;;;:::i;:::-;;;;;;;;2618:135;2771:5;:11;;;2763:5;;:19;;;;;;;;;;;;;;;;;;2803:5;:14;;;2792:8;;:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2837:5;:13;;;2827:7;:23;;;;2868:5;:11;;;2860:5;:19;;;;2901:5;:15;;;2889:9;:27;;;;;;:::i;:::-;;2926:28;2943:10;2926:16;:28::i;:::-;2171:790;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2101:860:42;;:::o;4960:562::-;5033:23;5068:24;5106:5;;5095:32;;;;;;;:::i;:::-;5068:59;;5168:337;;;;;;;;5213:24;5168:337;;;;;;;;:::i;:::-;;;;;;5270:5;:11;;;5168:337;;;;;;5316:4;5168:337;;;;;;5377:91;;;;;;;;5409:5;:13;;;5377:91;;;;5432:5;:11;;;5377:91;;;;5451:5;:15;;;5377:91;;;5345:145;;;;;;;;:::i;:::-;;;;;;;;;;;;;5168:337;;;5144:371;;;;;;;;:::i;:::-;;;;;;;;;;;;;5137:378;;;4960:562;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;1642:22:42:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1467:20:42:-;;;;:::o;1356:24::-;;;;;;;;;;;;;:::o;7165:242::-;7335:6;7364:36;;;7357:43;;7165:242;;;;;;;;;;:::o;3162:748::-;3236:4;12517:13:17;:11;:13::i;:::-;3344::42::1;3332:25;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:25;;;;;;;;:::i;:::-;;::::0;3328:553:::1;;3373:26;3413:5;;3402:33;;;;;;;:::i;:::-;3373:62;;3454:27;3467:6;:13;;;3454:12;:27::i;:::-;3449:55;;3490:14;;;;;;;;;;;;;;3449:55;3519:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;3566:4;3541:7:::0;:22:::1;3549:6;:13;;;3541:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3652:5;;;;;;;;;;;:22;;;3683:4;3690:6;:13;;;3705:7;;3714:1;3717:6;:11;;;3652:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3756:6;:13;;;3748:96;;;3788:5;;;;;;;;;;;3795:6;:13;;;3810:7;;3827:1;3831:6;:11;;;3771:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3748:96;;;;;;:::i;:::-;;;;;;;;3866:4;3859:11;;;;;3328:553;3898:5;3891:12;;12540:1:17;3162:748:42::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;5903:202:42:-;5976:4;5992:26;6032:5;;6021:33;;;;;;;:::i;:::-;5992:62;;6071:27;6084:6;:13;;;6071:12;:27::i;:::-;6064:34;;;5903:202;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;3946:761:42:-;4022:4;12517:13:17;:11;:13::i;:::-;4038:26:42::1;4078:5;;4067:33;;;;;;;:::i;:::-;4038:62;;4111:14;4140:6;:11;;;4129:34;;;;;;;;;;;;:::i;:::-;4110:53;;4263:5;;4254:6;:14;4250:81;;;4300:10;4323:6;4312:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;4277:54;;;;;;;;;;;;:::i;:::-;;;;;;;;4250:81;4350:6;4341:5;;:15;;;;;;;:::i;:::-;;;;;;;;4489:5;;;;;;;;;;;:22;;;4520:4;4527:6;:13;;;4542:7;;4551:6;4559;:11;;;4489:82;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4594:6;:13;;;4586:92;;;4626:5;;;;;;;;;;;4633:6;:13;;;4648:7;;4657:6;4665;:11;;;4609:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4586:92;;;;;;:::i;:::-;;;;;;;;4696:4;4689:11;;;;3946:761:::0;;;;:::o;6829:210::-;6972:6;7001:31;;;6994:38;;6829:210;;;;;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;2955:208:44:-;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;6571:133:42:-;6636:4;6660:7;:19;6668:10;6660:19;;;;;;;;;;;;;;;;;;;;;;;;;6659:20;:38;;;;;6692:5;;6683:6;;:14;6659:38;6652:45;;6571:133;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:126::-;1990:7;2030:42;2023:5;2019:54;2008:65;;1953:126;;;:::o;2085:60::-;2113:3;2134:5;2127:12;;2085:60;;;:::o;2151:142::-;2201:9;2234:53;2252:34;2261:24;2279:5;2261:24;:::i;:::-;2252:34;:::i;:::-;2234:53;:::i;:::-;2221:66;;2151:142;;;:::o;2299:126::-;2349:9;2382:37;2413:5;2382:37;:::i;:::-;2369:50;;2299:126;;;:::o;2431:143::-;2498:9;2531:37;2562:5;2531:37;:::i;:::-;2518:50;;2431:143;;;:::o;2580:165::-;2684:54;2732:5;2684:54;:::i;:::-;2679:3;2672:67;2580:165;;:::o;2751:256::-;2861:4;2899:2;2888:9;2884:18;2876:26;;2912:88;2997:1;2986:9;2982:17;2973:6;2912:88;:::i;:::-;2751:256;;;;:::o;3013:117::-;3122:1;3119;3112:12;3136:117;3245:1;3242;3235:12;3259:117;3368:1;3365;3358:12;3395:552;3452:8;3462:6;3512:3;3505:4;3497:6;3493:17;3489:27;3479:122;;3520:79;;:::i;:::-;3479:122;3633:6;3620:20;3610:30;;3663:18;3655:6;3652:30;3649:117;;;3685:79;;:::i;:::-;3649:117;3799:4;3791:6;3787:17;3775:29;;3853:3;3845:4;3837:6;3833:17;3823:8;3819:32;3816:41;3813:128;;;3860:79;;:::i;:::-;3813:128;3395:552;;;;;:::o;3953:527::-;4023:6;4031;4080:2;4068:9;4059:7;4055:23;4051:32;4048:119;;;4086:79;;:::i;:::-;4048:119;4234:1;4223:9;4219:17;4206:31;4264:18;4256:6;4253:30;4250:117;;;4286:79;;:::i;:::-;4250:117;4399:64;4455:7;4446:6;4435:9;4431:22;4399:64;:::i;:::-;4381:82;;;;4177:296;3953:527;;;;;:::o;4486:98::-;4537:6;4571:5;4565:12;4555:22;;4486:98;;;:::o;4590:168::-;4673:11;4707:6;4702:3;4695:19;4747:4;4742:3;4738:14;4723:29;;4590:168;;;;:::o;4764:139::-;4853:6;4848:3;4843;4837:23;4894:1;4885:6;4880:3;4876:16;4869:27;4764:139;;;:::o;4909:102::-;4950:6;5001:2;4997:7;4992:2;4985:5;4981:14;4977:28;4967:38;;4909:102;;;:::o;5017:373::-;5103:3;5131:38;5163:5;5131:38;:::i;:::-;5185:70;5248:6;5243:3;5185:70;:::i;:::-;5178:77;;5264:65;5322:6;5317:3;5310:4;5303:5;5299:16;5264:65;:::i;:::-;5354:29;5376:6;5354:29;:::i;:::-;5349:3;5345:39;5338:46;;5107:283;5017:373;;;;:::o;5396:309::-;5507:4;5545:2;5534:9;5530:18;5522:26;;5594:9;5588:4;5584:20;5580:1;5569:9;5565:17;5558:47;5622:76;5693:4;5684:6;5622:76;:::i;:::-;5614:84;;5396:309;;;;:::o;5711:96::-;5748:7;5777:24;5795:5;5777:24;:::i;:::-;5766:35;;5711:96;;;:::o;5813:118::-;5900:24;5918:5;5900:24;:::i;:::-;5895:3;5888:37;5813:118;;:::o;5937:222::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:71;6149:1;6138:9;6134:17;6125:6;6081:71;:::i;:::-;5937:222;;;;:::o;6165:180::-;6213:77;6210:1;6203:88;6310:4;6307:1;6300:15;6334:4;6331:1;6324:15;6351:119;6438:1;6431:5;6428:12;6418:46;;6444:18;;:::i;:::-;6418:46;6351:119;:::o;6476:139::-;6527:7;6556:5;6545:16;;6562:47;6603:5;6562:47;:::i;:::-;6476:139;;;:::o;6621:::-;6683:9;6716:38;6748:5;6716:38;:::i;:::-;6703:51;;6621:139;;;:::o;6766:155::-;6865:49;6908:5;6865:49;:::i;:::-;6860:3;6853:62;6766:155;;:::o;6927:246::-;7032:4;7070:2;7059:9;7055:18;7047:26;;7083:83;7163:1;7152:9;7148:17;7139:6;7083:83;:::i;:::-;6927:246;;;;:::o;7179:122::-;7252:24;7270:5;7252:24;:::i;:::-;7245:5;7242:35;7232:63;;7291:1;7288;7281:12;7232:63;7179:122;:::o;7307:139::-;7353:5;7391:6;7378:20;7369:29;;7407:33;7434:5;7407:33;:::i;:::-;7307:139;;;;:::o;7469:568::-;7542:8;7552:6;7602:3;7595:4;7587:6;7583:17;7579:27;7569:122;;7610:79;;:::i;:::-;7569:122;7723:6;7710:20;7700:30;;7753:18;7745:6;7742:30;7739:117;;;7775:79;;:::i;:::-;7739:117;7889:4;7881:6;7877:17;7865:29;;7943:3;7935:4;7927:6;7923:17;7913:8;7909:32;7906:41;7903:128;;;7950:79;;:::i;:::-;7903:128;7469:568;;;;;:::o;8043:1569::-;8203:6;8211;8219;8227;8235;8243;8251;8259;8308:3;8296:9;8287:7;8283:23;8279:33;8276:120;;;8315:79;;:::i;:::-;8276:120;8435:1;8460:53;8505:7;8496:6;8485:9;8481:22;8460:53;:::i;:::-;8450:63;;8406:117;8562:2;8588:53;8633:7;8624:6;8613:9;8609:22;8588:53;:::i;:::-;8578:63;;8533:118;8718:2;8707:9;8703:18;8690:32;8749:18;8741:6;8738:30;8735:117;;;8771:79;;:::i;:::-;8735:117;8884:80;8956:7;8947:6;8936:9;8932:22;8884:80;:::i;:::-;8866:98;;;;8661:313;9041:2;9030:9;9026:18;9013:32;9072:18;9064:6;9061:30;9058:117;;;9094:79;;:::i;:::-;9058:117;9207:80;9279:7;9270:6;9259:9;9255:22;9207:80;:::i;:::-;9189:98;;;;8984:313;9364:3;9353:9;9349:19;9336:33;9396:18;9388:6;9385:30;9382:117;;;9418:79;;:::i;:::-;9382:117;9531:64;9587:7;9578:6;9567:9;9563:22;9531:64;:::i;:::-;9513:82;;;;9307:298;8043:1569;;;;;;;;;;;:::o;9618:115::-;9703:23;9720:5;9703:23;:::i;:::-;9698:3;9691:36;9618:115;;:::o;9739:218::-;9830:4;9868:2;9857:9;9853:18;9845:26;;9881:69;9947:1;9936:9;9932:17;9923:6;9881:69;:::i;:::-;9739:218;;;;:::o;9963:329::-;10022:6;10071:2;10059:9;10050:7;10046:23;10042:32;10039:119;;;10077:79;;:::i;:::-;10039:119;10197:1;10222:53;10267:7;10258:6;10247:9;10243:22;10222:53;:::i;:::-;10212:63;;10168:117;9963:329;;;;:::o;10298:122::-;10371:24;10389:5;10371:24;:::i;:::-;10364:5;10361:35;10351:63;;10410:1;10407;10400:12;10351:63;10298:122;:::o;10426:139::-;10472:5;10510:6;10497:20;10488:29;;10526:33;10553:5;10526:33;:::i;:::-;10426:139;;;;:::o;10571:1109::-;10677:6;10685;10693;10701;10709;10717;10766:3;10754:9;10745:7;10741:23;10737:33;10734:120;;;10773:79;;:::i;:::-;10734:120;10893:1;10918:53;10963:7;10954:6;10943:9;10939:22;10918:53;:::i;:::-;10908:63;;10864:117;11020:2;11046:53;11091:7;11082:6;11071:9;11067:22;11046:53;:::i;:::-;11036:63;;10991:118;11148:2;11174:53;11219:7;11210:6;11199:9;11195:22;11174:53;:::i;:::-;11164:63;;11119:118;11276:2;11302:53;11347:7;11338:6;11327:9;11323:22;11302:53;:::i;:::-;11292:63;;11247:118;11432:3;11421:9;11417:19;11404:33;11464:18;11456:6;11453:30;11450:117;;;11486:79;;:::i;:::-;11450:117;11599:64;11655:7;11646:6;11635:9;11631:22;11599:64;:::i;:::-;11581:82;;;;11375:298;10571:1109;;;;;;;;:::o;11686:117::-;11795:1;11792;11785:12;11809:180;11857:77;11854:1;11847:88;11954:4;11951:1;11944:15;11978:4;11975:1;11968:15;11995:281;12078:27;12100:4;12078:27;:::i;:::-;12070:6;12066:40;12208:6;12196:10;12193:22;12172:18;12160:10;12157:34;12154:62;12151:88;;;12219:18;;:::i;:::-;12151:88;12259:10;12255:2;12248:22;12038:238;11995:281;;:::o;12282:129::-;12316:6;12343:20;;:::i;:::-;12333:30;;12372:33;12400:4;12392:6;12372:33;:::i;:::-;12282:129;;;:::o;12417:117::-;12526:1;12523;12516:12;12540:113;12594:7;12623:24;12641:5;12623:24;:::i;:::-;12612:35;;12540:113;;;:::o;12659:156::-;12749:41;12784:5;12749:41;:::i;:::-;12742:5;12739:52;12729:80;;12805:1;12802;12795:12;12729:80;12659:156;:::o;12821:173::-;12884:5;12922:6;12909:20;12900:29;;12938:50;12982:5;12938:50;:::i;:::-;12821:173;;;;:::o;13000:113::-;13087:1;13080:5;13077:12;13067:40;;13103:1;13100;13093:12;13067:40;13000:113;:::o;13119:167::-;13179:5;13217:6;13204:20;13195:29;;13233:47;13274:5;13233:47;:::i;:::-;13119:167;;;;:::o;13292:117::-;13401:1;13398;13391:12;13415:307;13476:4;13566:18;13558:6;13555:30;13552:56;;;13588:18;;:::i;:::-;13552:56;13626:29;13648:6;13626:29;:::i;:::-;13618:37;;13710:4;13704;13700:15;13692:23;;13415:307;;;:::o;13728:148::-;13826:6;13821:3;13816;13803:30;13867:1;13858:6;13853:3;13849:16;13842:27;13728:148;;;:::o;13882:423::-;13959:5;13984:65;14000:48;14041:6;14000:48;:::i;:::-;13984:65;:::i;:::-;13975:74;;14072:6;14065:5;14058:21;14110:4;14103:5;14099:16;14148:3;14139:6;14134:3;14130:16;14127:25;14124:112;;;14155:79;;:::i;:::-;14124:112;14245:54;14292:6;14287:3;14282;14245:54;:::i;:::-;13965:340;13882:423;;;;;:::o;14324:338::-;14379:5;14428:3;14421:4;14413:6;14409:17;14405:27;14395:122;;14436:79;;:::i;:::-;14395:122;14553:6;14540:20;14578:78;14652:3;14644:6;14637:4;14629:6;14625:17;14578:78;:::i;:::-;14569:87;;14385:277;14324:338;;;;:::o;14711:1277::-;14790:5;14834:4;14822:9;14817:3;14813:19;14809:30;14806:117;;;14842:79;;:::i;:::-;14806:117;14941:21;14957:4;14941:21;:::i;:::-;14932:30;;15022:1;15062:66;15124:3;15115:6;15104:9;15100:22;15062:66;:::i;:::-;15055:4;15048:5;15044:16;15037:92;14972:168;15203:2;15244:63;15303:3;15294:6;15283:9;15279:22;15244:63;:::i;:::-;15237:4;15230:5;15226:16;15219:89;15150:169;15381:2;15422:49;15467:3;15458:6;15447:9;15443:22;15422:49;:::i;:::-;15415:4;15408:5;15404:16;15397:75;15329:154;15543:2;15584:49;15629:3;15620:6;15609:9;15605:22;15584:49;:::i;:::-;15577:4;15570:5;15566:16;15559:75;15493:152;15737:3;15726:9;15722:19;15709:33;15769:18;15761:6;15758:30;15755:117;;;15791:79;;:::i;:::-;15755:117;15911:58;15965:3;15956:6;15945:9;15941:22;15911:58;:::i;:::-;15904:4;15897:5;15893:16;15886:84;15655:326;14711:1277;;;;:::o;15994:549::-;16083:6;16132:2;16120:9;16111:7;16107:23;16103:32;16100:119;;;16138:79;;:::i;:::-;16100:119;16286:1;16275:9;16271:17;16258:31;16316:18;16308:6;16305:30;16302:117;;;16338:79;;:::i;:::-;16302:117;16443:83;16518:7;16509:6;16498:9;16494:22;16443:83;:::i;:::-;16433:93;;16229:307;15994:549;;;;:::o;16549:332::-;16670:4;16708:2;16697:9;16693:18;16685:26;;16721:71;16789:1;16778:9;16774:17;16765:6;16721:71;:::i;:::-;16802:72;16870:2;16859:9;16855:18;16846:6;16802:72;:::i;:::-;16549:332;;;;;:::o;16887:143::-;16944:5;16975:6;16969:13;16960:22;;16991:33;17018:5;16991:33;:::i;:::-;16887:143;;;;:::o;17036:351::-;17106:6;17155:2;17143:9;17134:7;17130:23;17126:32;17123:119;;;17161:79;;:::i;:::-;17123:119;17281:1;17306:64;17362:7;17353:6;17342:9;17338:22;17306:64;:::i;:::-;17296:74;;17252:128;17036:351;;;;:::o;17393:442::-;17542:4;17580:2;17569:9;17565:18;17557:26;;17593:71;17661:1;17650:9;17646:17;17637:6;17593:71;:::i;:::-;17674:72;17742:2;17731:9;17727:18;17718:6;17674:72;:::i;:::-;17756;17824:2;17813:9;17809:18;17800:6;17756:72;:::i;:::-;17393:442;;;;;;:::o;17841:180::-;17889:77;17886:1;17879:88;17986:4;17983:1;17976:15;18010:4;18007:1;18000:15;18027:320;18071:6;18108:1;18102:4;18098:12;18088:22;;18155:1;18149:4;18145:12;18176:18;18166:81;;18232:4;18224:6;18220:17;18210:27;;18166:81;18294:2;18286:6;18283:14;18263:18;18260:38;18257:84;;18313:18;;:::i;:::-;18257:84;18078:269;18027:320;;;:::o;18353:140::-;18401:4;18424:3;18416:11;;18447:3;18444:1;18437:14;18481:4;18478:1;18468:18;18460:26;;18353:140;;;:::o;18499:93::-;18536:6;18583:2;18578;18571:5;18567:14;18563:23;18553:33;;18499:93;;;:::o;18598:107::-;18642:8;18692:5;18686:4;18682:16;18661:37;;18598:107;;;;:::o;18711:393::-;18780:6;18830:1;18818:10;18814:18;18853:97;18883:66;18872:9;18853:97;:::i;:::-;18971:39;19001:8;18990:9;18971:39;:::i;:::-;18959:51;;19043:4;19039:9;19032:5;19028:21;19019:30;;19092:4;19082:8;19078:19;19071:5;19068:30;19058:40;;18787:317;;18711:393;;;;;:::o;19110:142::-;19160:9;19193:53;19211:34;19220:24;19238:5;19220:24;:::i;:::-;19211:34;:::i;:::-;19193:53;:::i;:::-;19180:66;;19110:142;;;:::o;19258:75::-;19301:3;19322:5;19315:12;;19258:75;;;:::o;19339:269::-;19449:39;19480:7;19449:39;:::i;:::-;19510:91;19559:41;19583:16;19559:41;:::i;:::-;19551:6;19544:4;19538:11;19510:91;:::i;:::-;19504:4;19497:105;19415:193;19339:269;;;:::o;19614:73::-;19659:3;19614:73;:::o;19693:189::-;19770:32;;:::i;:::-;19811:65;19869:6;19861;19855:4;19811:65;:::i;:::-;19746:136;19693:189;;:::o;19888:186::-;19948:120;19965:3;19958:5;19955:14;19948:120;;;20019:39;20056:1;20049:5;20019:39;:::i;:::-;19992:1;19985:5;19981:13;19972:22;;19948:120;;;19888:186;;:::o;20080:541::-;20180:2;20175:3;20172:11;20169:445;;;20214:37;20245:5;20214:37;:::i;:::-;20297:29;20315:10;20297:29;:::i;:::-;20287:8;20283:44;20480:2;20468:10;20465:18;20462:49;;;20501:8;20486:23;;20462:49;20524:80;20580:22;20598:3;20580:22;:::i;:::-;20570:8;20566:37;20553:11;20524:80;:::i;:::-;20184:430;;20169:445;20080:541;;;:::o;20627:117::-;20681:8;20731:5;20725:4;20721:16;20700:37;;20627:117;;;;:::o;20750:169::-;20794:6;20827:51;20875:1;20871:6;20863:5;20860:1;20856:13;20827:51;:::i;:::-;20823:56;20908:4;20902;20898:15;20888:25;;20801:118;20750:169;;;;:::o;20924:295::-;21000:4;21146:29;21171:3;21165:4;21146:29;:::i;:::-;21138:37;;21208:3;21205:1;21201:11;21195:4;21192:21;21184:29;;20924:295;;;;:::o;21224:1390::-;21339:36;21371:3;21339:36;:::i;:::-;21440:18;21432:6;21429:30;21426:56;;;21462:18;;:::i;:::-;21426:56;21506:38;21538:4;21532:11;21506:38;:::i;:::-;21591:66;21650:6;21642;21636:4;21591:66;:::i;:::-;21684:1;21708:4;21695:17;;21740:2;21732:6;21729:14;21757:1;21752:617;;;;22413:1;22430:6;22427:77;;;22479:9;22474:3;22470:19;22464:26;22455:35;;22427:77;22530:67;22590:6;22583:5;22530:67;:::i;:::-;22524:4;22517:81;22386:222;21722:886;;21752:617;21804:4;21800:9;21792:6;21788:22;21838:36;21869:4;21838:36;:::i;:::-;21896:1;21910:208;21924:7;21921:1;21918:14;21910:208;;;22003:9;21998:3;21994:19;21988:26;21980:6;21973:42;22054:1;22046:6;22042:14;22032:24;;22101:2;22090:9;22086:18;22073:31;;21947:4;21944:1;21940:12;21935:17;;21910:208;;;22146:6;22137:7;22134:19;22131:179;;;22204:9;22199:3;22195:19;22189:26;22247:48;22289:4;22281:6;22277:17;22266:9;22247:48;:::i;:::-;22239:6;22232:64;22154:156;22131:179;22356:1;22352;22344:6;22340:14;22336:22;22330:4;22323:36;21759:610;;;21722:886;;21314:1300;;;21224:1390;;:::o;22620:108::-;22697:24;22715:5;22697:24;:::i;:::-;22692:3;22685:37;22620:108;;:::o;22734:158::-;22807:11;22841:6;22836:3;22829:19;22881:4;22876:3;22872:14;22857:29;;22734:158;;;;:::o;22898:353::-;22974:3;23002:38;23034:5;23002:38;:::i;:::-;23056:60;23109:6;23104:3;23056:60;:::i;:::-;23049:67;;23125:65;23183:6;23178:3;23171:4;23164:5;23160:16;23125:65;:::i;:::-;23215:29;23237:6;23215:29;:::i;:::-;23210:3;23206:39;23199:46;;22978:273;22898:353;;;;:::o;23325:799::-;23460:3;23496:4;23491:3;23487:14;23586:4;23579:5;23575:16;23569:23;23605:63;23662:4;23657:3;23653:14;23639:12;23605:63;:::i;:::-;23511:167;23762:4;23755:5;23751:16;23745:23;23781:63;23838:4;23833:3;23829:14;23815:12;23781:63;:::i;:::-;23688:166;23936:4;23929:5;23925:16;23919:23;23989:3;23983:4;23979:14;23972:4;23967:3;23963:14;23956:38;24015:71;24081:4;24067:12;24015:71;:::i;:::-;24007:79;;23864:233;24114:4;24107:11;;23465:659;23325:799;;;;:::o;24130:405::-;24289:4;24327:2;24316:9;24312:18;24304:26;;24376:9;24370:4;24366:20;24362:1;24351:9;24347:17;24340:47;24404:124;24523:4;24514:6;24404:124;:::i;:::-;24396:132;;24130:405;;;;:::o;24541:120::-;24629:1;24622:5;24619:12;24609:46;;24635:18;;:::i;:::-;24609:46;24541:120;:::o;24667:141::-;24719:7;24748:5;24737:16;;24754:48;24796:5;24754:48;:::i;:::-;24667:141;;;:::o;24814:::-;24877:9;24910:39;24943:5;24910:39;:::i;:::-;24897:52;;24814:141;;;:::o;24961:147::-;25051:50;25095:5;25051:50;:::i;:::-;25046:3;25039:63;24961:147;;:::o;25114:108::-;25191:24;25209:5;25191:24;:::i;:::-;25186:3;25179:37;25114:108;;:::o;25284:977::-;25407:3;25443:4;25438:3;25434:14;25535:4;25528:5;25524:16;25518:23;25554:76;25624:4;25619:3;25615:14;25601:12;25554:76;:::i;:::-;25458:182;25723:4;25716:5;25712:16;25706:23;25742:63;25799:4;25794:3;25790:14;25776:12;25742:63;:::i;:::-;25650:165;25899:4;25892:5;25888:16;25882:23;25918:63;25975:4;25970:3;25966:14;25952:12;25918:63;:::i;:::-;25825:166;26073:4;26066:5;26062:16;26056:23;26126:3;26120:4;26116:14;26109:4;26104:3;26100:14;26093:38;26152:71;26218:4;26204:12;26152:71;:::i;:::-;26144:79;;26001:233;26251:4;26244:11;;25412:849;25284:977;;;;:::o;26267:381::-;26414:4;26452:2;26441:9;26437:18;26429:26;;26501:9;26495:4;26491:20;26487:1;26476:9;26472:17;26465:47;26529:112;26636:4;26627:6;26529:112;:::i;:::-;26521:120;;26267:381;;;;:::o;26691:751::-;26771:5;26815:4;26803:9;26798:3;26794:19;26790:30;26787:117;;;26823:79;;:::i;:::-;26787:117;26922:21;26938:4;26922:21;:::i;:::-;26913:30;;27004:1;27044:49;27089:3;27080:6;27069:9;27065:22;27044:49;:::i;:::-;27037:4;27030:5;27026:16;27019:75;26953:152;27192:2;27181:9;27177:18;27164:32;27223:18;27215:6;27212:30;27209:117;;;27245:79;;:::i;:::-;27209:117;27365:58;27419:3;27410:6;27399:9;27395:22;27365:58;:::i;:::-;27358:4;27351:5;27347:16;27340:84;27115:320;26691:751;;;;:::o;27448:551::-;27538:6;27587:2;27575:9;27566:7;27562:23;27558:32;27555:119;;;27593:79;;:::i;:::-;27555:119;27741:1;27730:9;27726:17;27713:31;27771:18;27763:6;27760:30;27757:117;;;27793:79;;:::i;:::-;27757:117;27898:84;27974:7;27965:6;27954:9;27950:22;27898:84;:::i;:::-;27888:94;;27684:308;27448:551;;;;:::o;28005:180::-;28053:77;28050:1;28043:88;28150:4;28147:1;28140:15;28174:4;28171:1;28164:15;28191:233;28230:3;28253:24;28271:5;28253:24;:::i;:::-;28244:33;;28299:66;28292:5;28289:77;28286:103;;28369:18;;:::i;:::-;28286:103;28416:1;28409:5;28405:13;28398:20;;28191:233;;;:::o;28430:85::-;28475:7;28504:5;28493:16;;28430:85;;;:::o;28521:158::-;28579:9;28612:61;28630:42;28639:32;28665:5;28639:32;:::i;:::-;28630:42;:::i;:::-;28612:61;:::i;:::-;28599:74;;28521:158;;;:::o;28685:147::-;28780:45;28819:5;28780:45;:::i;:::-;28775:3;28768:58;28685:147;;:::o;28838:767::-;29069:4;29107:3;29096:9;29092:19;29084:27;;29121:71;29189:1;29178:9;29174:17;29165:6;29121:71;:::i;:::-;29202:72;29270:2;29259:9;29255:18;29246:6;29202:72;:::i;:::-;29284;29352:2;29341:9;29337:18;29328:6;29284:72;:::i;:::-;29366:80;29442:2;29431:9;29427:18;29418:6;29366:80;:::i;:::-;29494:9;29488:4;29484:20;29478:3;29467:9;29463:19;29456:49;29522:76;29593:4;29584:6;29522:76;:::i;:::-;29514:84;;28838:767;;;;;;;;:::o;29611:94::-;29644:8;29692:5;29688:2;29684:14;29663:35;;29611:94;;;:::o;29711:::-;29750:7;29779:20;29793:5;29779:20;:::i;:::-;29768:31;;29711:94;;;:::o;29811:100::-;29850:7;29879:26;29899:5;29879:26;:::i;:::-;29868:37;;29811:100;;;:::o;29917:204::-;30039:75;30059:54;30107:5;30059:54;:::i;:::-;30039:75;:::i;:::-;30034:3;30027:88;29917:204;;:::o;30127:157::-;30232:45;30252:24;30270:5;30252:24;:::i;:::-;30232:45;:::i;:::-;30227:3;30220:58;30127:157;;:::o;30290:79::-;30329:7;30358:5;30347:16;;30290:79;;;:::o;30375:157::-;30480:45;30500:24;30518:5;30500:24;:::i;:::-;30480:45;:::i;:::-;30475:3;30468:58;30375:157;;:::o;30538:147::-;30639:11;30676:3;30661:18;;30538:147;;;;:::o;30691:386::-;30795:3;30823:38;30855:5;30823:38;:::i;:::-;30877:88;30958:6;30953:3;30877:88;:::i;:::-;30870:95;;30974:65;31032:6;31027:3;31020:4;31013:5;31009:16;30974:65;:::i;:::-;31064:6;31059:3;31055:16;31048:23;;30799:278;30691:386;;;;:::o;31083:869::-;31342:3;31357:92;31445:3;31436:6;31357:92;:::i;:::-;31474:2;31469:3;31465:12;31458:19;;31487:75;31558:3;31549:6;31487:75;:::i;:::-;31587:2;31582:3;31578:12;31571:19;;31600:75;31671:3;31662:6;31600:75;:::i;:::-;31700:2;31695:3;31691:12;31684:19;;31713:75;31784:3;31775:6;31713:75;:::i;:::-;31813:2;31808:3;31804:12;31797:19;;31833:93;31922:3;31913:6;31833:93;:::i;:::-;31826:100;;31943:3;31936:10;;31083:869;;;;;;;;:::o;32028:618::-;32159:3;32195:4;32190:3;32186:14;32284:4;32277:5;32273:16;32267:23;32303:63;32360:4;32355:3;32351:14;32337:12;32303:63;:::i;:::-;32210:166;32458:4;32451:5;32447:16;32441:23;32511:3;32505:4;32501:14;32494:4;32489:3;32485:14;32478:38;32537:71;32603:4;32589:12;32537:71;:::i;:::-;32529:79;;32386:233;32636:4;32629:11;;32164:482;32028:618;;;;:::o;32652:397::-;32807:4;32845:2;32834:9;32830:18;32822:26;;32894:9;32888:4;32884:20;32880:1;32869:9;32865:17;32858:47;32922:120;33037:4;33028:6;32922:120;:::i;:::-;32914:128;;32652:397;;;;:::o;33055:419::-;33194:4;33232:2;33221:9;33217:18;33209:26;;33245:71;33313:1;33302:9;33298:17;33289:6;33245:71;:::i;:::-;33363:9;33357:4;33353:20;33348:2;33337:9;33333:18;33326:48;33391:76;33462:4;33453:6;33391:76;:::i;:::-;33383:84;;33055:419;;;;;:::o;33480:194::-;33520:4;33540:20;33558:1;33540:20;:::i;:::-;33535:25;;33574:20;33592:1;33574:20;:::i;:::-;33569:25;;33618:1;33615;33611:9;33603:17;;33642:1;33636:4;33633:11;33630:37;;;33647:18;;:::i;:::-;33630:37;33480:194;;;;:::o;33680:751::-;33903:4;33941:3;33930:9;33926:19;33918:27;;33955:71;34023:1;34012:9;34008:17;33999:6;33955:71;:::i;:::-;34036:72;34104:2;34093:9;34089:18;34080:6;34036:72;:::i;:::-;34118;34186:2;34175:9;34171:18;34162:6;34118:72;:::i;:::-;34200;34268:2;34257:9;34253:18;34244:6;34200:72;:::i;:::-;34320:9;34314:4;34310:20;34304:3;34293:9;34289:19;34282:49;34348:76;34419:4;34410:6;34348:76;:::i;:::-;34340:84;;33680:751;;;;;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","extraData()":"609d3334","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","tokenId()":"17d70f7c","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract IERC1155\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum ERC1155Incentive.Strategy\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization payload\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not check the token ID and will accept all batches\",\"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\":\"This contract does not check the token ID and will accept all tokens\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"budgetData\":\"The data payload to be passed to the Budget for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC1155Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC1155-compliant contract\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new ERC1155Incentive\"},\"extraData()\":{\"notice\":\"Extra data to be passed to the ERC1155 contract\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"tokenId()\":{\"notice\":\"The ERC1155 token ID for the incentive\"}},\"notice\":\"A simple ERC1155 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/ERC1155Incentive.sol\":\"ERC1155Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/ERC1155Incentive.sol\":{\"keccak256\":\"0x587e0c1760a4d84a173cc6b4cee714a816906a667d405019d238cda29068bd98\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://040369996fd6cf7758de99b36a0b4ef37b6f35ebe14bff4d45e5cc15bf70e429\",\"dweb:/ipfs/QmYuHEzJPQzqzXUD7vYiVS8WTLZ9s13RVTZf2DenLqrE4i\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/ERC20Incentive.sol":{"ERC20Incentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"entry","type":"address"}],"name":"Entry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"drawRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"entries","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum ERC20Incentive.Strategy","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_16669":{"entryPoint":null,"id":16669,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6121be806101b45f395ff3fe608060405260043610610129575f3560e01c8063a4d66daf116100aa578063dcc59b6f1161006e578063dcc59b6f14610387578063e18e6508146103b1578063f04e283e146103ed578063f1c30ec014610409578063f2fde38b14610445578063fee81cf41461046157610129565b8063a4d66daf1461027f578063a8c62e76146102a9578063b30906d4146102d3578063c63ff8dd1461030f578063c884ef831461034b57610129565b8063439fab91116100f1578063439fab91146101dd5780634e7165a21461020557806354d1f13d14610241578063715018a61461024b5780638da5cb5b1461025557610129565b806301ffc9a71461012d5780632275aea914610169578063228cb7331461017f57806325692962146101a957806338d52e0f146101b3575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e91906116bb565b61049d565b6040516101609190611700565b60405180910390f35b348015610174575f80fd5b5061017d610516565b005b34801561018a575f80fd5b506101936106e3565b6040516101a09190611731565b60405180910390f35b6101b16106e9565b005b3480156101be575f80fd5b506101c761073a565b6040516101d49190611789565b60405180910390f35b3480156101e8575f80fd5b5061020360048036038101906101fe9190611803565b61075f565b005b348015610210575f80fd5b5061022b60048036038101906102269190611803565b6109f4565b60405161023891906118be565b60405180910390f35b610249610b12565b005b610253610b4b565b005b348015610260575f80fd5b50610269610b5e565b6040516102769190611789565b60405180910390f35b34801561028a575f80fd5b50610293610b86565b6040516102a09190611731565b60405180910390f35b3480156102b4575f80fd5b506102bd610b8c565b6040516102ca9190611951565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190611994565b610b9f565b6040516103069190611789565b60405180910390f35b34801561031a575f80fd5b5061033560048036038101906103309190611803565b610bda565b6040516103429190611700565b60405180910390f35b348015610356575f80fd5b50610371600480360381019061036c91906119e9565b610f38565b60405161037e9190611700565b60405180910390f35b348015610392575f80fd5b5061039b610f55565b6040516103a89190611731565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190611803565b610f5a565b6040516103e49190611700565b60405180910390f35b610407600480360381019061040291906119e9565b610f82565b005b348015610414575f80fd5b5061042f600480360381019061042a9190611803565b610fc0565b60405161043c9190611700565b60405180910390f35b61045f600480360381019061045a91906119e9565b61123b565b005b34801561046c575f80fd5b50610487600480360381019061048291906119e9565b611264565b6040516104949190611731565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050f575061050e8261127d565b5b9050919050565b61051e6112f6565b600280811115610531576105306118de565b5b600260149054906101000a900460ff166002811115610553576105526118de565b5b1461058a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446105a29190611a41565b81525090505f600580805490506105b88461132d565b6105c29190611aa1565b815481106105d3576105d2611ad1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061064b8160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003546040516020016106bb93929190611b63565b6040516020818303038152906040526040516106d791906118be565b60405180910390a25050565b60035481565b5f6106f2611385565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61076861138f565b9050805460038255801561079a5760018160011c14303b106107915763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107ab9190611cb7565b9050600160028111156107c1576107c06118de565b5b816020015160028111156107d8576107d76118de565b5b0361080f576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160400151148061082457505f8160600151145b1561085b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60028081111561086f5761086e6118de565b5b82602001516002811115610886576108856118de565b5b036108955781604001516108aa565b816060015182604001516108a99190611ce2565b5b90505f6108d930845f015173ffffffffffffffffffffffffffffffffffffffff166113b890919063ffffffff16565b90508181101561092757825f015181836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161091e93929190611d23565b60405180910390fd5b825f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260200151600260146101000a81548160ff02191690836002811115610993576109926118de565b5b0217905550826040015160038190555082606001516004819055506109b7336113eb565b50505080156109ef576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f8383810190610a069190611cb7565b90505f600280811115610a1c57610a1b6118de565b5b82602001516002811115610a3357610a326118de565b5b03610a42578160400151610a57565b81606001518260400151610a569190611ce2565b5b9050604051806080016040528060016002811115610a7857610a776118de565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610ad79190611d81565b604051602081830303815290604052815250604051602001610af99190611e97565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b536112f6565b610b5c5f6114c1565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600260149054906101000a900460ff1681565b60058181548110610bae575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610be36112f6565b5f8383810190610bf39190611fd0565b9050610c01815f0151611587565b610c37576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002811115610c4a57610c496118de565b5b600260149054906101000a900460ff166002811115610c6c57610c6b6118de565b5b03610dd3575f80815480929190610c8290612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610d2f815f015160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f0151600354604051602001610da593929190611b63565b604051602081830303815290604052604051610dc191906118be565b60405180910390a26001915050610f32565b600280811115610de657610de56118de565b5b600260149054906101000a900460ff166002811115610e0857610e076118de565b5b03610f2d575f80815480929190610e1e90612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506005815f0151908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015173ffffffffffffffffffffffffffffffffffffffff167ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f15360405160405180910390a26001915050610f32565b5f9150505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610f6b9190611fd0565b9050610f79815f0151611587565b91505092915050565b610f8a6112f6565b63389a75e1600c52805f526020600c208054421115610fb057636f5e88185f526004601cfd5b5f815550610fbd816114c1565b50565b5f610fc96112f6565b5f8383810190610fd99190611fd0565b90505f8160200151806020019051810190610ff49190612072565b9050600280811115611009576110086118de565b5b600260149054906101000a900460ff16600281111561102b5761102a6118de565b5b036110b0576003548114158061104157505f8054115b156110a457338260405160200161105891906120d7565b6040516020818303038152906040526040517f4139d81d00000000000000000000000000000000000000000000000000000000815260040161109b9291906120f7565b60405180910390fd5b5f600481905550611148565b5f600354826110bf9190611aa1565b146111225733826040516020016110d691906120d7565b6040516020818303038152906040526040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016111199291906120f7565b60405180910390fd5b600354816111309190612125565b60045f8282546111409190612155565b925050819055505b611197825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01518460405160200161120b93929190611b63565b60405160208183030381529060405260405161122791906118be565b60405180910390a260019250505092915050565b6112436112f6565b8060601b61125857637448fbae5f526004601cfd5b611261816114c1565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112ef57506112ee826115e8565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461132b576382b429005f526004601cfd5b565b5f602082209050808252919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661137c576390b8ec185f526004601cfd5b5f603452505050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113f3611651565b1561146b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561142d57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506114be565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6114c9611651565b1561152e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611584565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115e157506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61169a81611666565b81146116a4575f80fd5b50565b5f813590506116b581611691565b92915050565b5f602082840312156116d0576116cf61165e565b5b5f6116dd848285016116a7565b91505092915050565b5f8115159050919050565b6116fa816116e6565b82525050565b5f6020820190506117135f8301846116f1565b92915050565b5f819050919050565b61172b81611719565b82525050565b5f6020820190506117445f830184611722565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117738261174a565b9050919050565b61178381611769565b82525050565b5f60208201905061179c5f83018461177a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126117c3576117c26117a2565b5b8235905067ffffffffffffffff8111156117e0576117df6117a6565b5b6020830191508360018202830111156117fc576117fb6117aa565b5b9250929050565b5f80602083850312156118195761181861165e565b5b5f83013567ffffffffffffffff81111561183657611835611662565b5b611842858286016117ae565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118908261184e565b61189a8185611858565b93506118aa818560208601611868565b6118b381611876565b840191505092915050565b5f6020820190508181035f8301526118d68184611886565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061191c5761191b6118de565b5b50565b5f81905061192c8261190b565b919050565b5f61193b8261191f565b9050919050565b61194b81611931565b82525050565b5f6020820190506119645f830184611942565b92915050565b61197381611719565b811461197d575f80fd5b50565b5f8135905061198e8161196a565b92915050565b5f602082840312156119a9576119a861165e565b5b5f6119b684828501611980565b91505092915050565b6119c881611769565b81146119d2575f80fd5b50565b5f813590506119e3816119bf565b92915050565b5f602082840312156119fe576119fd61165e565b5b5f611a0b848285016119d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a4b82611719565b9150611a5683611719565b9250828201905080821115611a6e57611a6d611a14565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611aab82611719565b9150611ab683611719565b925082611ac657611ac5611a74565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160601b9050919050565b5f611b1482611afe565b9050919050565b5f611b2582611b0a565b9050919050565b611b3d611b3882611769565b611b1b565b82525050565b5f819050919050565b611b5d611b5882611719565b611b43565b82525050565b5f611b6e8286611b2c565b601482019150611b7e8285611b2c565b601482019150611b8e8284611b4c565b602082019150819050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611bd982611876565b810181811067ffffffffffffffff82111715611bf857611bf7611ba3565b5b80604052505050565b5f611c0a611655565b9050611c168282611bd0565b919050565b5f80fd5b60038110611c2b575f80fd5b50565b5f81359050611c3c81611c1f565b92915050565b5f60808284031215611c5757611c56611b9f565b5b611c616080611c01565b90505f611c70848285016119d5565b5f830152506020611c8384828501611c2e565b6020830152506040611c9784828501611980565b6040830152506060611cab84828501611980565b60608301525092915050565b5f60808284031215611ccc57611ccb61165e565b5b5f611cd984828501611c42565b91505092915050565b5f611cec82611719565b9150611cf783611719565b9250828202611d0581611719565b91508282048414831517611d1c57611d1b611a14565b5b5092915050565b5f606082019050611d365f83018661177a565b611d436020830185611722565b611d506040830184611722565b949350505050565b611d6181611719565b82525050565b602082015f820151611d7b5f850182611d58565b50505050565b5f602082019050611d945f830184611d67565b92915050565b60038110611dab57611daa6118de565b5b50565b5f819050611dbb82611d9a565b919050565b5f611dca82611dae565b9050919050565b611dda81611dc0565b82525050565b611de981611769565b82525050565b5f82825260208201905092915050565b5f611e098261184e565b611e138185611def565b9350611e23818560208601611868565b611e2c81611876565b840191505092915050565b5f608083015f830151611e4c5f860182611dd1565b506020830151611e5f6020860182611de0565b506040830151611e726040860182611de0565b5060608301518482036060860152611e8a8282611dff565b9150508091505092915050565b5f6020820190508181035f830152611eaf8184611e37565b905092915050565b5f80fd5b5f67ffffffffffffffff821115611ed557611ed4611ba3565b5b611ede82611876565b9050602081019050919050565b828183375f83830152505050565b5f611f0b611f0684611ebb565b611c01565b905082815260208101848484011115611f2757611f26611eb7565b5b611f32848285611eeb565b509392505050565b5f82601f830112611f4e57611f4d6117a2565b5b8135611f5e848260208601611ef9565b91505092915050565b5f60408284031215611f7c57611f7b611b9f565b5b611f866040611c01565b90505f611f95848285016119d5565b5f83015250602082013567ffffffffffffffff811115611fb857611fb7611c1b565b5b611fc484828501611f3a565b60208301525092915050565b5f60208284031215611fe557611fe461165e565b5b5f82013567ffffffffffffffff81111561200257612001611662565b5b61200e84828501611f67565b91505092915050565b5f61202182611719565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205357612052611a14565b5b600182019050919050565b5f8151905061206c8161196a565b92915050565b5f602082840312156120875761208661165e565b5b5f6120948482850161205e565b91505092915050565b5f604083015f8301516120b25f860182611de0565b50602083015184820360208601526120ca8282611dff565b9150508091505092915050565b5f6020820190508181035f8301526120ef818461209d565b905092915050565b5f60408201905061210a5f83018561177a565b818103602083015261211c8184611886565b90509392505050565b5f61212f82611719565b915061213a83611719565b92508261214a57612149611a74565b5b828204905092915050565b5f61215f82611719565b915061216a83611719565b925082820390508181111561218257612181611a14565b5b9291505056fea26469706673582212206b260b82ccfdd3dfc6734ad6c86b98c5513cc724565757ef54f08104f1af95bb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x21BE DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x445 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x461 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0xB30906D4 EQ PUSH2 0x2D3 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x34B JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x255 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x2275AEA9 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1B3 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C7 PUSH2 0x73A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x22B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x249 PUSH2 0xB12 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x253 PUSH2 0xB4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x293 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BD PUSH2 0xB8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CA SWAP2 SWAP1 PUSH2 0x1951 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x1994 JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x306 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x356 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xF55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xF5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x407 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x402 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x414 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x42F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42A SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x45F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45A SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x123B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x487 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x482 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x1264 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x494 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x50F JUMPI POP PUSH2 0x50E DUP3 PUSH2 0x127D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0x12F6 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH2 0x530 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x553 JUMPI PUSH2 0x552 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST EQ PUSH2 0x58A JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP PREVRANDAO PUSH2 0x5A2 SWAP2 SWAP1 PUSH2 0x1A41 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x5 DUP1 DUP1 SLOAD SWAP1 POP PUSH2 0x5B8 DUP5 PUSH2 0x132D JUMP JUMPDEST PUSH2 0x5C2 SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x5D3 JUMPI PUSH2 0x5D2 PUSH2 0x1AD1 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x64B DUP2 PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6D7 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0x1385 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x768 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x791 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7AB SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x80F JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x824 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x85B JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x86F JUMPI PUSH2 0x86E PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x895 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x8AA JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x8A9 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH0 PUSH2 0x8D9 ADDRESS DUP5 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x927 JUMPI DUP3 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x9B7 CALLER PUSH2 0x13EB JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x9EF JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA33 JUMPI PUSH2 0xA32 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA42 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0xA57 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA78 JUMPI PUSH2 0xA77 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD7 SWAP2 SWAP1 PUSH2 0x1D81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAF9 SWAP2 SWAP1 PUSH2 0x1E97 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 PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0xB53 PUSH2 0x12F6 JUMP JUMPDEST PUSH2 0xB5C PUSH0 PUSH2 0x14C1 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBAE JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0xBE3 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xC01 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST PUSH2 0xC37 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH2 0xC49 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC6C JUMPI PUSH2 0xC6B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xDD3 JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xC82 SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xD2F DUP2 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDC1 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xDE6 JUMPI PUSH2 0xDE5 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE08 JUMPI PUSH2 0xE07 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xF2D JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xE1E SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x5 DUP2 PUSH0 ADD MLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0ABE0F5C6F02112A9A4332E7B091BF49040FFDDEEDB73785A9B9A0A3CA7F153 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xF79 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF8A PUSH2 0x12F6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xFB0 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xFBD DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xFC9 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xFD9 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFF4 SWAP2 SWAP1 PUSH2 0x2072 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x1009 JUMPI PUSH2 0x1008 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10B0 JUMPI PUSH1 0x3 SLOAD DUP2 EQ ISZERO DUP1 PUSH2 0x1041 JUMPI POP PUSH0 DUP1 SLOAD GT JUMPDEST ISZERO PUSH2 0x10A4 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1058 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109B SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x1148 JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD DUP3 PUSH2 0x10BF SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST EQ PUSH2 0x1122 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10D6 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1119 SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD DUP2 PUSH2 0x1130 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1140 SWAP2 SWAP1 PUSH2 0x2155 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x1197 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x120B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1227 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1243 PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1258 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1261 DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x12EF JUMPI POP PUSH2 0x12EE DUP3 PUSH2 0x15E8 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x132B JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 KECCAK256 SWAP1 POP DUP1 DUP3 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x137C JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13F3 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x146B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x142D JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x14BE JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x152E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1584 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x15E1 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169A DUP2 PUSH2 0x1666 JUMP JUMPDEST DUP2 EQ PUSH2 0x16A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16B5 DUP2 PUSH2 0x1691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16D0 JUMPI PUSH2 0x16CF PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16DD DUP5 DUP3 DUP6 ADD PUSH2 0x16A7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16FA DUP2 PUSH2 0x16E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1713 PUSH0 DUP4 ADD DUP5 PUSH2 0x16F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x172B DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1744 PUSH0 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1773 DUP3 PUSH2 0x174A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1783 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x179C PUSH0 DUP4 ADD DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17E0 JUMPI PUSH2 0x17DF PUSH2 0x17A6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x17FC JUMPI PUSH2 0x17FB PUSH2 0x17AA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1819 JUMPI PUSH2 0x1818 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1836 JUMPI PUSH2 0x1835 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x1842 DUP6 DUP3 DUP7 ADD PUSH2 0x17AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1890 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x189A DUP2 DUP6 PUSH2 0x1858 JUMP JUMPDEST SWAP4 POP PUSH2 0x18AA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x18B3 DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x18D6 DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x191C JUMPI PUSH2 0x191B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x192C DUP3 PUSH2 0x190B JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x193B DUP3 PUSH2 0x191F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x194B DUP2 PUSH2 0x1931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1964 PUSH0 DUP4 ADD DUP5 PUSH2 0x1942 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1973 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP2 EQ PUSH2 0x197D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x198E DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19A9 JUMPI PUSH2 0x19A8 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x19C8 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP2 EQ PUSH2 0x19D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E3 DUP2 PUSH2 0x19BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A0B DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1A4B DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A56 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A6E JUMPI PUSH2 0x1A6D PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1AAB DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AB6 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1AC6 JUMPI PUSH2 0x1AC5 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B14 DUP3 PUSH2 0x1AFE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B25 DUP3 PUSH2 0x1B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B3D PUSH2 0x1B38 DUP3 PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x1B1B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5D PUSH2 0x1B58 DUP3 PUSH2 0x1719 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B6E DUP3 DUP7 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B7E DUP3 DUP6 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B8E DUP3 DUP5 PUSH2 0x1B4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1BD9 DUP3 PUSH2 0x1876 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1BF8 JUMPI PUSH2 0x1BF7 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0A PUSH2 0x1655 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C16 DUP3 DUP3 PUSH2 0x1BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1C2B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C3C DUP2 PUSH2 0x1C1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C57 JUMPI PUSH2 0x1C56 PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1C61 PUSH1 0x80 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C70 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1C83 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1C97 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1CAB DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCC JUMPI PUSH2 0x1CCB PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1CD9 DUP5 DUP3 DUP6 ADD PUSH2 0x1C42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1CEC DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CF7 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D05 DUP2 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D1C JUMPI PUSH2 0x1D1B PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1D36 PUSH0 DUP4 ADD DUP7 PUSH2 0x177A JUMP JUMPDEST PUSH2 0x1D43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1722 JUMP JUMPDEST PUSH2 0x1D50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1D61 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1D7B PUSH0 DUP6 ADD DUP3 PUSH2 0x1D58 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D94 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1DAB JUMPI PUSH2 0x1DAA PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1DBB DUP3 PUSH2 0x1D9A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1DCA DUP3 PUSH2 0x1DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DDA DUP2 PUSH2 0x1DC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DE9 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E09 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x1E13 DUP2 DUP6 PUSH2 0x1DEF JUMP JUMPDEST SWAP4 POP PUSH2 0x1E23 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x1E2C DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1E4C PUSH0 DUP7 ADD DUP3 PUSH2 0x1DD1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1E5F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1E72 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1E8A DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1EAF DUP2 DUP5 PUSH2 0x1E37 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH2 0x1ED4 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST PUSH2 0x1EDE DUP3 PUSH2 0x1876 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F0B PUSH2 0x1F06 DUP5 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x1EB7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 PUSH2 0x1EEB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F4E JUMPI PUSH2 0x1F4D PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F5E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1EF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7C JUMPI PUSH2 0x1F7B PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1F86 PUSH1 0x40 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F95 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FB8 JUMPI PUSH2 0x1FB7 PUSH2 0x1C1B JUMP JUMPDEST JUMPDEST PUSH2 0x1FC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1F3A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FE5 JUMPI PUSH2 0x1FE4 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x200E DUP5 DUP3 DUP6 ADD PUSH2 0x1F67 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2021 DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2053 JUMPI PUSH2 0x2052 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x206C DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2087 JUMPI PUSH2 0x2086 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2094 DUP5 DUP3 DUP6 ADD PUSH2 0x205E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x20B2 PUSH0 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x20CA DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20EF DUP2 DUP5 PUSH2 0x209D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x210A PUSH0 DUP4 ADD DUP6 PUSH2 0x177A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x211C DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x212F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x213A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x214A JUMPI PUSH2 0x2149 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x215F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x216A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x260B82CCFDD3DFC6734AD6C8 PUSH12 0x98C5513CC724565757EF54F0 DUP2 DIV CALL 0xAF SWAP6 0xBB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"448:7197:43:-:0;;;2159:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;2183:22:43;:20;;;:22;;:::i;:::-;448:7197;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;448:7197:43:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":4854,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":5713,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":5007,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":5099,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_17092":{"entryPoint":5511,"id":17092,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4997,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":5313,"id":6316,"parameterSlots":1,"returnSlots":0},"@asset_16647":{"entryPoint":1850,"id":16647,"parameterSlots":0,"returnSlots":0},"@balanceOf_11267":{"entryPoint":5048,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2834,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_16882":{"entryPoint":3034,"id":16882,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":3896,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":3925,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3970,"id":6396,"parameterSlots":1,"returnSlots":0},"@drawRaffle_17151":{"entryPoint":1302,"id":17151,"parameterSlots":0,"returnSlots":0},"@entries_16661":{"entryPoint":2975,"id":16661,"parameterSlots":0,"returnSlots":0},"@initialize_16781":{"entryPoint":1887,"id":16781,"parameterSlots":2,"returnSlots":0},"@isClaimable_17074":{"entryPoint":3930,"id":17074,"parameterSlots":2,"returnSlots":1},"@limit_16657":{"entryPoint":2950,"id":16657,"parameterSlots":0,"returnSlots":0},"@next_10147":{"entryPoint":4909,"id":10147,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":2910,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4708,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_17049":{"entryPoint":2548,"id":17049,"parameterSlots":2,"returnSlots":1},"@reclaim_16990":{"entryPoint":4032,"id":16990,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":2891,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1769,"id":6376,"parameterSlots":0,"returnSlots":0},"@reward_16654":{"entryPoint":1763,"id":16654,"parameterSlots":0,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":4924,"id":11219,"parameterSlots":3,"returnSlots":0},"@strategy_16651":{"entryPoint":2956,"id":16651,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":1181,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":4733,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":5608,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":4667,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":7929,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6613,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":5799,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":6062,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":7994,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_Strategy_$16633":{"entryPoint":7214,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8039,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$16644_memory_ptr":{"entryPoint":7234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6528,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8286,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6633,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":5819,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":6147,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8144,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$16644_memory_ptr":{"entryPoint":7351,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6548,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":8306,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":7648,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6010,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":6956,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5873,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":7679,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6278,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":7633,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack":{"entryPoint":6466,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack":{"entryPoint":8349,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack":{"entryPoint":7527,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack":{"entryPoint":7735,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":7512,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5922,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":6988,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":7011,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":6025,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8439,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7459,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5888,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6334,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_Strategy_$16633__to_t_uint8__fromStack_reversed":{"entryPoint":6481,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed":{"entryPoint":8407,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed":{"entryPoint":7553,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed":{"entryPoint":7831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5937,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":7169,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5717,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":7867,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":6222,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":7663,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":6232,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":6721,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":8485,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7394,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8533,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":5993,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5862,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5734,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$13471":{"entryPoint":7598,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_Strategy_$16633":{"entryPoint":6431,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5962,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5913,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":7616,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_Strategy_$16633_to_t_uint8":{"entryPoint":6449,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":7915,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6248,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":7120,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":8215,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":6939,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":6922,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":6979,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":6817,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":6676,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":6772,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":6366,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6865,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7075,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":6054,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6050,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":7071,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":7195,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":6058,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":7863,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5730,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5726,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":6262,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":6910,"id":null,"parameterSlots":1,"returnSlots":1},"validator_assert_t_enum$_AssetType_$13471":{"entryPoint":7578,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_Strategy_$16633":{"entryPoint":6411,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6591,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5777,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_Strategy_$16633":{"entryPoint":7199,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6506,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:21966:53","nodeType":"YulBlock","src":"0:21966:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"1998:81:53","nodeType":"YulBlock","src":"1998:81:53","statements":[{"nativeSrc":"2008:65:53","nodeType":"YulAssignment","src":"2008:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulIdentifier","src":"2023:5:53"},{"kind":"number","nativeSrc":"2030:42:53","nodeType":"YulLiteral","src":"2030:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2019:3:53","nodeType":"YulIdentifier","src":"2019:3:53"},"nativeSrc":"2019:54:53","nodeType":"YulFunctionCall","src":"2019:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2008:7:53","nodeType":"YulIdentifier","src":"2008:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1953:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1980:5:53","nodeType":"YulTypedName","src":"1980:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1990:7:53","nodeType":"YulTypedName","src":"1990:7:53","type":""}],"src":"1953:126:53"},{"body":{"nativeSrc":"2130:51:53","nodeType":"YulBlock","src":"2130:51:53","statements":[{"nativeSrc":"2140:35:53","nodeType":"YulAssignment","src":"2140:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2169:5:53","nodeType":"YulIdentifier","src":"2169:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2151:17:53","nodeType":"YulIdentifier","src":"2151:17:53"},"nativeSrc":"2151:24:53","nodeType":"YulFunctionCall","src":"2151:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2140:7:53","nodeType":"YulIdentifier","src":"2140:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2085:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2112:5:53","nodeType":"YulTypedName","src":"2112:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2122:7:53","nodeType":"YulTypedName","src":"2122:7:53","type":""}],"src":"2085:96:53"},{"body":{"nativeSrc":"2252:53:53","nodeType":"YulBlock","src":"2252:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2269:3:53","nodeType":"YulIdentifier","src":"2269:3:53"},{"arguments":[{"name":"value","nativeSrc":"2292:5:53","nodeType":"YulIdentifier","src":"2292:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2274:17:53","nodeType":"YulIdentifier","src":"2274:17:53"},"nativeSrc":"2274:24:53","nodeType":"YulFunctionCall","src":"2274:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2262:6:53","nodeType":"YulIdentifier","src":"2262:6:53"},"nativeSrc":"2262:37:53","nodeType":"YulFunctionCall","src":"2262:37:53"},"nativeSrc":"2262:37:53","nodeType":"YulExpressionStatement","src":"2262:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2187:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2240:5:53","nodeType":"YulTypedName","src":"2240:5:53","type":""},{"name":"pos","nativeSrc":"2247:3:53","nodeType":"YulTypedName","src":"2247:3:53","type":""}],"src":"2187:118:53"},{"body":{"nativeSrc":"2409:124:53","nodeType":"YulBlock","src":"2409:124:53","statements":[{"nativeSrc":"2419:26:53","nodeType":"YulAssignment","src":"2419:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2431:9:53","nodeType":"YulIdentifier","src":"2431:9:53"},{"kind":"number","nativeSrc":"2442:2:53","nodeType":"YulLiteral","src":"2442:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2427:3:53","nodeType":"YulIdentifier","src":"2427:3:53"},"nativeSrc":"2427:18:53","nodeType":"YulFunctionCall","src":"2427:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2419:4:53","nodeType":"YulIdentifier","src":"2419:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2499:6:53","nodeType":"YulIdentifier","src":"2499:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2512:9:53","nodeType":"YulIdentifier","src":"2512:9:53"},{"kind":"number","nativeSrc":"2523:1:53","nodeType":"YulLiteral","src":"2523:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2508:3:53","nodeType":"YulIdentifier","src":"2508:3:53"},"nativeSrc":"2508:17:53","nodeType":"YulFunctionCall","src":"2508:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2455:43:53","nodeType":"YulIdentifier","src":"2455:43:53"},"nativeSrc":"2455:71:53","nodeType":"YulFunctionCall","src":"2455:71:53"},"nativeSrc":"2455:71:53","nodeType":"YulExpressionStatement","src":"2455:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2311:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2381:9:53","nodeType":"YulTypedName","src":"2381:9:53","type":""},{"name":"value0","nativeSrc":"2393:6:53","nodeType":"YulTypedName","src":"2393:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2404:4:53","nodeType":"YulTypedName","src":"2404:4:53","type":""}],"src":"2311:222:53"},{"body":{"nativeSrc":"2628:28:53","nodeType":"YulBlock","src":"2628:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2645:1:53","nodeType":"YulLiteral","src":"2645:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2648:1:53","nodeType":"YulLiteral","src":"2648:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2638:6:53","nodeType":"YulIdentifier","src":"2638:6:53"},"nativeSrc":"2638:12:53","nodeType":"YulFunctionCall","src":"2638:12:53"},"nativeSrc":"2638:12:53","nodeType":"YulExpressionStatement","src":"2638:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2539:117:53","nodeType":"YulFunctionDefinition","src":"2539:117:53"},{"body":{"nativeSrc":"2751:28:53","nodeType":"YulBlock","src":"2751:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2768:1:53","nodeType":"YulLiteral","src":"2768:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2771:1:53","nodeType":"YulLiteral","src":"2771:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},"nativeSrc":"2761:12:53","nodeType":"YulFunctionCall","src":"2761:12:53"},"nativeSrc":"2761:12:53","nodeType":"YulExpressionStatement","src":"2761:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2662:117:53","nodeType":"YulFunctionDefinition","src":"2662:117:53"},{"body":{"nativeSrc":"2874:28:53","nodeType":"YulBlock","src":"2874:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2891:1:53","nodeType":"YulLiteral","src":"2891:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2894:1:53","nodeType":"YulLiteral","src":"2894:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2884:6:53","nodeType":"YulIdentifier","src":"2884:6:53"},"nativeSrc":"2884:12:53","nodeType":"YulFunctionCall","src":"2884:12:53"},"nativeSrc":"2884:12:53","nodeType":"YulExpressionStatement","src":"2884:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2785:117:53","nodeType":"YulFunctionDefinition","src":"2785:117:53"},{"body":{"nativeSrc":"2995:478:53","nodeType":"YulBlock","src":"2995:478:53","statements":[{"body":{"nativeSrc":"3044:83:53","nodeType":"YulBlock","src":"3044:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3046:77:53","nodeType":"YulIdentifier","src":"3046:77:53"},"nativeSrc":"3046:79:53","nodeType":"YulFunctionCall","src":"3046:79:53"},"nativeSrc":"3046:79:53","nodeType":"YulExpressionStatement","src":"3046:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3023:6:53","nodeType":"YulIdentifier","src":"3023:6:53"},{"kind":"number","nativeSrc":"3031:4:53","nodeType":"YulLiteral","src":"3031:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3019:3:53","nodeType":"YulIdentifier","src":"3019:3:53"},"nativeSrc":"3019:17:53","nodeType":"YulFunctionCall","src":"3019:17:53"},{"name":"end","nativeSrc":"3038:3:53","nodeType":"YulIdentifier","src":"3038:3:53"}],"functionName":{"name":"slt","nativeSrc":"3015:3:53","nodeType":"YulIdentifier","src":"3015:3:53"},"nativeSrc":"3015:27:53","nodeType":"YulFunctionCall","src":"3015:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3008:6:53","nodeType":"YulIdentifier","src":"3008:6:53"},"nativeSrc":"3008:35:53","nodeType":"YulFunctionCall","src":"3008:35:53"},"nativeSrc":"3005:122:53","nodeType":"YulIf","src":"3005:122:53"},{"nativeSrc":"3136:30:53","nodeType":"YulAssignment","src":"3136:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3159:6:53","nodeType":"YulIdentifier","src":"3159:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:53","nodeType":"YulIdentifier","src":"3146:12:53"},"nativeSrc":"3146:20:53","nodeType":"YulFunctionCall","src":"3146:20:53"},"variableNames":[{"name":"length","nativeSrc":"3136:6:53","nodeType":"YulIdentifier","src":"3136:6:53"}]},{"body":{"nativeSrc":"3209:83:53","nodeType":"YulBlock","src":"3209:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3211:77:53","nodeType":"YulIdentifier","src":"3211:77:53"},"nativeSrc":"3211:79:53","nodeType":"YulFunctionCall","src":"3211:79:53"},"nativeSrc":"3211:79:53","nodeType":"YulExpressionStatement","src":"3211:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3181:6:53","nodeType":"YulIdentifier","src":"3181:6:53"},{"kind":"number","nativeSrc":"3189:18:53","nodeType":"YulLiteral","src":"3189:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3178:2:53","nodeType":"YulIdentifier","src":"3178:2:53"},"nativeSrc":"3178:30:53","nodeType":"YulFunctionCall","src":"3178:30:53"},"nativeSrc":"3175:117:53","nodeType":"YulIf","src":"3175:117:53"},{"nativeSrc":"3301:29:53","nodeType":"YulAssignment","src":"3301:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3317:6:53","nodeType":"YulIdentifier","src":"3317:6:53"},{"kind":"number","nativeSrc":"3325:4:53","nodeType":"YulLiteral","src":"3325:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3313:3:53","nodeType":"YulIdentifier","src":"3313:3:53"},"nativeSrc":"3313:17:53","nodeType":"YulFunctionCall","src":"3313:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3301:8:53","nodeType":"YulIdentifier","src":"3301:8:53"}]},{"body":{"nativeSrc":"3384:83:53","nodeType":"YulBlock","src":"3384:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3386:77:53","nodeType":"YulIdentifier","src":"3386:77:53"},"nativeSrc":"3386:79:53","nodeType":"YulFunctionCall","src":"3386:79:53"},"nativeSrc":"3386:79:53","nodeType":"YulExpressionStatement","src":"3386:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3349:8:53","nodeType":"YulIdentifier","src":"3349:8:53"},{"arguments":[{"name":"length","nativeSrc":"3363:6:53","nodeType":"YulIdentifier","src":"3363:6:53"},{"kind":"number","nativeSrc":"3371:4:53","nodeType":"YulLiteral","src":"3371:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3359:3:53","nodeType":"YulIdentifier","src":"3359:3:53"},"nativeSrc":"3359:17:53","nodeType":"YulFunctionCall","src":"3359:17:53"}],"functionName":{"name":"add","nativeSrc":"3345:3:53","nodeType":"YulIdentifier","src":"3345:3:53"},"nativeSrc":"3345:32:53","nodeType":"YulFunctionCall","src":"3345:32:53"},{"name":"end","nativeSrc":"3379:3:53","nodeType":"YulIdentifier","src":"3379:3:53"}],"functionName":{"name":"gt","nativeSrc":"3342:2:53","nodeType":"YulIdentifier","src":"3342:2:53"},"nativeSrc":"3342:41:53","nodeType":"YulFunctionCall","src":"3342:41:53"},"nativeSrc":"3339:128:53","nodeType":"YulIf","src":"3339:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2921:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2962:6:53","nodeType":"YulTypedName","src":"2962:6:53","type":""},{"name":"end","nativeSrc":"2970:3:53","nodeType":"YulTypedName","src":"2970:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2978:8:53","nodeType":"YulTypedName","src":"2978:8:53","type":""},{"name":"length","nativeSrc":"2988:6:53","nodeType":"YulTypedName","src":"2988:6:53","type":""}],"src":"2921:552:53"},{"body":{"nativeSrc":"3564:442:53","nodeType":"YulBlock","src":"3564:442:53","statements":[{"body":{"nativeSrc":"3610:83:53","nodeType":"YulBlock","src":"3610:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3612:77:53","nodeType":"YulIdentifier","src":"3612:77:53"},"nativeSrc":"3612:79:53","nodeType":"YulFunctionCall","src":"3612:79:53"},"nativeSrc":"3612:79:53","nodeType":"YulExpressionStatement","src":"3612:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3585:7:53","nodeType":"YulIdentifier","src":"3585:7:53"},{"name":"headStart","nativeSrc":"3594:9:53","nodeType":"YulIdentifier","src":"3594:9:53"}],"functionName":{"name":"sub","nativeSrc":"3581:3:53","nodeType":"YulIdentifier","src":"3581:3:53"},"nativeSrc":"3581:23:53","nodeType":"YulFunctionCall","src":"3581:23:53"},{"kind":"number","nativeSrc":"3606:2:53","nodeType":"YulLiteral","src":"3606:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3577:3:53","nodeType":"YulIdentifier","src":"3577:3:53"},"nativeSrc":"3577:32:53","nodeType":"YulFunctionCall","src":"3577:32:53"},"nativeSrc":"3574:119:53","nodeType":"YulIf","src":"3574:119:53"},{"nativeSrc":"3703:296:53","nodeType":"YulBlock","src":"3703:296:53","statements":[{"nativeSrc":"3718:45:53","nodeType":"YulVariableDeclaration","src":"3718:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3749:9:53","nodeType":"YulIdentifier","src":"3749:9:53"},{"kind":"number","nativeSrc":"3760:1:53","nodeType":"YulLiteral","src":"3760:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3745:3:53","nodeType":"YulIdentifier","src":"3745:3:53"},"nativeSrc":"3745:17:53","nodeType":"YulFunctionCall","src":"3745:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3732:12:53","nodeType":"YulIdentifier","src":"3732:12:53"},"nativeSrc":"3732:31:53","nodeType":"YulFunctionCall","src":"3732:31:53"},"variables":[{"name":"offset","nativeSrc":"3722:6:53","nodeType":"YulTypedName","src":"3722:6:53","type":""}]},{"body":{"nativeSrc":"3810:83:53","nodeType":"YulBlock","src":"3810:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3812:77:53","nodeType":"YulIdentifier","src":"3812:77:53"},"nativeSrc":"3812:79:53","nodeType":"YulFunctionCall","src":"3812:79:53"},"nativeSrc":"3812:79:53","nodeType":"YulExpressionStatement","src":"3812:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3782:6:53","nodeType":"YulIdentifier","src":"3782:6:53"},{"kind":"number","nativeSrc":"3790:18:53","nodeType":"YulLiteral","src":"3790:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3779:2:53","nodeType":"YulIdentifier","src":"3779:2:53"},"nativeSrc":"3779:30:53","nodeType":"YulFunctionCall","src":"3779:30:53"},"nativeSrc":"3776:117:53","nodeType":"YulIf","src":"3776:117:53"},{"nativeSrc":"3907:82:53","nodeType":"YulAssignment","src":"3907:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3961:9:53","nodeType":"YulIdentifier","src":"3961:9:53"},{"name":"offset","nativeSrc":"3972:6:53","nodeType":"YulIdentifier","src":"3972:6:53"}],"functionName":{"name":"add","nativeSrc":"3957:3:53","nodeType":"YulIdentifier","src":"3957:3:53"},"nativeSrc":"3957:22:53","nodeType":"YulFunctionCall","src":"3957:22:53"},{"name":"dataEnd","nativeSrc":"3981:7:53","nodeType":"YulIdentifier","src":"3981:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3925:31:53","nodeType":"YulIdentifier","src":"3925:31:53"},"nativeSrc":"3925:64:53","nodeType":"YulFunctionCall","src":"3925:64:53"},"variableNames":[{"name":"value0","nativeSrc":"3907:6:53","nodeType":"YulIdentifier","src":"3907:6:53"},{"name":"value1","nativeSrc":"3915:6:53","nodeType":"YulIdentifier","src":"3915:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3479:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3526:9:53","nodeType":"YulTypedName","src":"3526:9:53","type":""},{"name":"dataEnd","nativeSrc":"3537:7:53","nodeType":"YulTypedName","src":"3537:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3549:6:53","nodeType":"YulTypedName","src":"3549:6:53","type":""},{"name":"value1","nativeSrc":"3557:6:53","nodeType":"YulTypedName","src":"3557:6:53","type":""}],"src":"3479:527:53"},{"body":{"nativeSrc":"4070:40:53","nodeType":"YulBlock","src":"4070:40:53","statements":[{"nativeSrc":"4081:22:53","nodeType":"YulAssignment","src":"4081:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4097:5:53","nodeType":"YulIdentifier","src":"4097:5:53"}],"functionName":{"name":"mload","nativeSrc":"4091:5:53","nodeType":"YulIdentifier","src":"4091:5:53"},"nativeSrc":"4091:12:53","nodeType":"YulFunctionCall","src":"4091:12:53"},"variableNames":[{"name":"length","nativeSrc":"4081:6:53","nodeType":"YulIdentifier","src":"4081:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4012:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4053:5:53","nodeType":"YulTypedName","src":"4053:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4063:6:53","nodeType":"YulTypedName","src":"4063:6:53","type":""}],"src":"4012:98:53"},{"body":{"nativeSrc":"4211:73:53","nodeType":"YulBlock","src":"4211:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4228:3:53","nodeType":"YulIdentifier","src":"4228:3:53"},{"name":"length","nativeSrc":"4233:6:53","nodeType":"YulIdentifier","src":"4233:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4221:6:53","nodeType":"YulIdentifier","src":"4221:6:53"},"nativeSrc":"4221:19:53","nodeType":"YulFunctionCall","src":"4221:19:53"},"nativeSrc":"4221:19:53","nodeType":"YulExpressionStatement","src":"4221:19:53"},{"nativeSrc":"4249:29:53","nodeType":"YulAssignment","src":"4249:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4268:3:53","nodeType":"YulIdentifier","src":"4268:3:53"},{"kind":"number","nativeSrc":"4273:4:53","nodeType":"YulLiteral","src":"4273:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4264:3:53","nodeType":"YulIdentifier","src":"4264:3:53"},"nativeSrc":"4264:14:53","nodeType":"YulFunctionCall","src":"4264:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4249:11:53","nodeType":"YulIdentifier","src":"4249:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4116:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4183:3:53","nodeType":"YulTypedName","src":"4183:3:53","type":""},{"name":"length","nativeSrc":"4188:6:53","nodeType":"YulTypedName","src":"4188:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4199:11:53","nodeType":"YulTypedName","src":"4199:11:53","type":""}],"src":"4116:168:53"},{"body":{"nativeSrc":"4352:77:53","nodeType":"YulBlock","src":"4352:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4369:3:53","nodeType":"YulIdentifier","src":"4369:3:53"},{"name":"src","nativeSrc":"4374:3:53","nodeType":"YulIdentifier","src":"4374:3:53"},{"name":"length","nativeSrc":"4379:6:53","nodeType":"YulIdentifier","src":"4379:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4363:5:53","nodeType":"YulIdentifier","src":"4363:5:53"},"nativeSrc":"4363:23:53","nodeType":"YulFunctionCall","src":"4363:23:53"},"nativeSrc":"4363:23:53","nodeType":"YulExpressionStatement","src":"4363:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4406:3:53","nodeType":"YulIdentifier","src":"4406:3:53"},{"name":"length","nativeSrc":"4411:6:53","nodeType":"YulIdentifier","src":"4411:6:53"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:16:53","nodeType":"YulFunctionCall","src":"4402:16:53"},{"kind":"number","nativeSrc":"4420:1:53","nodeType":"YulLiteral","src":"4420:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4395:6:53","nodeType":"YulIdentifier","src":"4395:6:53"},"nativeSrc":"4395:27:53","nodeType":"YulFunctionCall","src":"4395:27:53"},"nativeSrc":"4395:27:53","nodeType":"YulExpressionStatement","src":"4395:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4290:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4334:3:53","nodeType":"YulTypedName","src":"4334:3:53","type":""},{"name":"dst","nativeSrc":"4339:3:53","nodeType":"YulTypedName","src":"4339:3:53","type":""},{"name":"length","nativeSrc":"4344:6:53","nodeType":"YulTypedName","src":"4344:6:53","type":""}],"src":"4290:139:53"},{"body":{"nativeSrc":"4483:54:53","nodeType":"YulBlock","src":"4483:54:53","statements":[{"nativeSrc":"4493:38:53","nodeType":"YulAssignment","src":"4493:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4511:5:53","nodeType":"YulIdentifier","src":"4511:5:53"},{"kind":"number","nativeSrc":"4518:2:53","nodeType":"YulLiteral","src":"4518:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4507:3:53","nodeType":"YulIdentifier","src":"4507:3:53"},"nativeSrc":"4507:14:53","nodeType":"YulFunctionCall","src":"4507:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4527:2:53","nodeType":"YulLiteral","src":"4527:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4523:3:53","nodeType":"YulIdentifier","src":"4523:3:53"},"nativeSrc":"4523:7:53","nodeType":"YulFunctionCall","src":"4523:7:53"}],"functionName":{"name":"and","nativeSrc":"4503:3:53","nodeType":"YulIdentifier","src":"4503:3:53"},"nativeSrc":"4503:28:53","nodeType":"YulFunctionCall","src":"4503:28:53"},"variableNames":[{"name":"result","nativeSrc":"4493:6:53","nodeType":"YulIdentifier","src":"4493:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4435:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4466:5:53","nodeType":"YulTypedName","src":"4466:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4476:6:53","nodeType":"YulTypedName","src":"4476:6:53","type":""}],"src":"4435:102:53"},{"body":{"nativeSrc":"4633:283:53","nodeType":"YulBlock","src":"4633:283:53","statements":[{"nativeSrc":"4643:52:53","nodeType":"YulVariableDeclaration","src":"4643:52:53","value":{"arguments":[{"name":"value","nativeSrc":"4689:5:53","nodeType":"YulIdentifier","src":"4689:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4657:31:53","nodeType":"YulIdentifier","src":"4657:31:53"},"nativeSrc":"4657:38:53","nodeType":"YulFunctionCall","src":"4657:38:53"},"variables":[{"name":"length","nativeSrc":"4647:6:53","nodeType":"YulTypedName","src":"4647:6:53","type":""}]},{"nativeSrc":"4704:77:53","nodeType":"YulAssignment","src":"4704:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"4769:3:53","nodeType":"YulIdentifier","src":"4769:3:53"},{"name":"length","nativeSrc":"4774:6:53","nodeType":"YulIdentifier","src":"4774:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4711:57:53","nodeType":"YulIdentifier","src":"4711:57:53"},"nativeSrc":"4711:70:53","nodeType":"YulFunctionCall","src":"4711:70:53"},"variableNames":[{"name":"pos","nativeSrc":"4704:3:53","nodeType":"YulIdentifier","src":"4704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4829:5:53","nodeType":"YulIdentifier","src":"4829:5:53"},{"kind":"number","nativeSrc":"4836:4:53","nodeType":"YulLiteral","src":"4836:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4825:3:53","nodeType":"YulIdentifier","src":"4825:3:53"},"nativeSrc":"4825:16:53","nodeType":"YulFunctionCall","src":"4825:16:53"},{"name":"pos","nativeSrc":"4843:3:53","nodeType":"YulIdentifier","src":"4843:3:53"},{"name":"length","nativeSrc":"4848:6:53","nodeType":"YulIdentifier","src":"4848:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4790:34:53","nodeType":"YulIdentifier","src":"4790:34:53"},"nativeSrc":"4790:65:53","nodeType":"YulFunctionCall","src":"4790:65:53"},"nativeSrc":"4790:65:53","nodeType":"YulExpressionStatement","src":"4790:65:53"},{"nativeSrc":"4864:46:53","nodeType":"YulAssignment","src":"4864:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4875:3:53","nodeType":"YulIdentifier","src":"4875:3:53"},{"arguments":[{"name":"length","nativeSrc":"4902:6:53","nodeType":"YulIdentifier","src":"4902:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4880:21:53","nodeType":"YulIdentifier","src":"4880:21:53"},"nativeSrc":"4880:29:53","nodeType":"YulFunctionCall","src":"4880:29:53"}],"functionName":{"name":"add","nativeSrc":"4871:3:53","nodeType":"YulIdentifier","src":"4871:3:53"},"nativeSrc":"4871:39:53","nodeType":"YulFunctionCall","src":"4871:39:53"},"variableNames":[{"name":"end","nativeSrc":"4864:3:53","nodeType":"YulIdentifier","src":"4864:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4543:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4614:5:53","nodeType":"YulTypedName","src":"4614:5:53","type":""},{"name":"pos","nativeSrc":"4621:3:53","nodeType":"YulTypedName","src":"4621:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4629:3:53","nodeType":"YulTypedName","src":"4629:3:53","type":""}],"src":"4543:373:53"},{"body":{"nativeSrc":"5038:193:53","nodeType":"YulBlock","src":"5038:193:53","statements":[{"nativeSrc":"5048:26:53","nodeType":"YulAssignment","src":"5048:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5060:9:53","nodeType":"YulIdentifier","src":"5060:9:53"},{"kind":"number","nativeSrc":"5071:2:53","nodeType":"YulLiteral","src":"5071:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5056:3:53","nodeType":"YulIdentifier","src":"5056:3:53"},"nativeSrc":"5056:18:53","nodeType":"YulFunctionCall","src":"5056:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5048:4:53","nodeType":"YulIdentifier","src":"5048:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5095:9:53","nodeType":"YulIdentifier","src":"5095:9:53"},{"kind":"number","nativeSrc":"5106:1:53","nodeType":"YulLiteral","src":"5106:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5091:3:53","nodeType":"YulIdentifier","src":"5091:3:53"},"nativeSrc":"5091:17:53","nodeType":"YulFunctionCall","src":"5091:17:53"},{"arguments":[{"name":"tail","nativeSrc":"5114:4:53","nodeType":"YulIdentifier","src":"5114:4:53"},{"name":"headStart","nativeSrc":"5120:9:53","nodeType":"YulIdentifier","src":"5120:9:53"}],"functionName":{"name":"sub","nativeSrc":"5110:3:53","nodeType":"YulIdentifier","src":"5110:3:53"},"nativeSrc":"5110:20:53","nodeType":"YulFunctionCall","src":"5110:20:53"}],"functionName":{"name":"mstore","nativeSrc":"5084:6:53","nodeType":"YulIdentifier","src":"5084:6:53"},"nativeSrc":"5084:47:53","nodeType":"YulFunctionCall","src":"5084:47:53"},"nativeSrc":"5084:47:53","nodeType":"YulExpressionStatement","src":"5084:47:53"},{"nativeSrc":"5140:84:53","nodeType":"YulAssignment","src":"5140:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"5210:6:53","nodeType":"YulIdentifier","src":"5210:6:53"},{"name":"tail","nativeSrc":"5219:4:53","nodeType":"YulIdentifier","src":"5219:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5148:61:53","nodeType":"YulIdentifier","src":"5148:61:53"},"nativeSrc":"5148:76:53","nodeType":"YulFunctionCall","src":"5148:76:53"},"variableNames":[{"name":"tail","nativeSrc":"5140:4:53","nodeType":"YulIdentifier","src":"5140:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4922:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5010:9:53","nodeType":"YulTypedName","src":"5010:9:53","type":""},{"name":"value0","nativeSrc":"5022:6:53","nodeType":"YulTypedName","src":"5022:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5033:4:53","nodeType":"YulTypedName","src":"5033:4:53","type":""}],"src":"4922:309:53"},{"body":{"nativeSrc":"5265:152:53","nodeType":"YulBlock","src":"5265:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5282:1:53","nodeType":"YulLiteral","src":"5282:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5285:77:53","nodeType":"YulLiteral","src":"5285:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5275:6:53","nodeType":"YulIdentifier","src":"5275:6:53"},"nativeSrc":"5275:88:53","nodeType":"YulFunctionCall","src":"5275:88:53"},"nativeSrc":"5275:88:53","nodeType":"YulExpressionStatement","src":"5275:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5379:1:53","nodeType":"YulLiteral","src":"5379:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"5382:4:53","nodeType":"YulLiteral","src":"5382:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"5372:6:53","nodeType":"YulIdentifier","src":"5372:6:53"},"nativeSrc":"5372:15:53","nodeType":"YulFunctionCall","src":"5372:15:53"},"nativeSrc":"5372:15:53","nodeType":"YulExpressionStatement","src":"5372:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5403:1:53","nodeType":"YulLiteral","src":"5403:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5406:4:53","nodeType":"YulLiteral","src":"5406:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5396:6:53","nodeType":"YulIdentifier","src":"5396:6:53"},"nativeSrc":"5396:15:53","nodeType":"YulFunctionCall","src":"5396:15:53"},"nativeSrc":"5396:15:53","nodeType":"YulExpressionStatement","src":"5396:15:53"}]},"name":"panic_error_0x21","nativeSrc":"5237:180:53","nodeType":"YulFunctionDefinition","src":"5237:180:53"},{"body":{"nativeSrc":"5480:62:53","nodeType":"YulBlock","src":"5480:62:53","statements":[{"body":{"nativeSrc":"5514:22:53","nodeType":"YulBlock","src":"5514:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"5516:16:53","nodeType":"YulIdentifier","src":"5516:16:53"},"nativeSrc":"5516:18:53","nodeType":"YulFunctionCall","src":"5516:18:53"},"nativeSrc":"5516:18:53","nodeType":"YulExpressionStatement","src":"5516:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5503:5:53","nodeType":"YulIdentifier","src":"5503:5:53"},{"kind":"number","nativeSrc":"5510:1:53","nodeType":"YulLiteral","src":"5510:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"5500:2:53","nodeType":"YulIdentifier","src":"5500:2:53"},"nativeSrc":"5500:12:53","nodeType":"YulFunctionCall","src":"5500:12:53"}],"functionName":{"name":"iszero","nativeSrc":"5493:6:53","nodeType":"YulIdentifier","src":"5493:6:53"},"nativeSrc":"5493:20:53","nodeType":"YulFunctionCall","src":"5493:20:53"},"nativeSrc":"5490:46:53","nodeType":"YulIf","src":"5490:46:53"}]},"name":"validator_assert_t_enum$_Strategy_$16633","nativeSrc":"5423:119:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5473:5:53","nodeType":"YulTypedName","src":"5473:5:53","type":""}],"src":"5423:119:53"},{"body":{"nativeSrc":"5607:80:53","nodeType":"YulBlock","src":"5607:80:53","statements":[{"nativeSrc":"5617:16:53","nodeType":"YulAssignment","src":"5617:16:53","value":{"name":"value","nativeSrc":"5628:5:53","nodeType":"YulIdentifier","src":"5628:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5617:7:53","nodeType":"YulIdentifier","src":"5617:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5675:5:53","nodeType":"YulIdentifier","src":"5675:5:53"}],"functionName":{"name":"validator_assert_t_enum$_Strategy_$16633","nativeSrc":"5634:40:53","nodeType":"YulIdentifier","src":"5634:40:53"},"nativeSrc":"5634:47:53","nodeType":"YulFunctionCall","src":"5634:47:53"},"nativeSrc":"5634:47:53","nodeType":"YulExpressionStatement","src":"5634:47:53"}]},"name":"cleanup_t_enum$_Strategy_$16633","nativeSrc":"5548:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5589:5:53","nodeType":"YulTypedName","src":"5589:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5599:7:53","nodeType":"YulTypedName","src":"5599:7:53","type":""}],"src":"5548:139:53"},{"body":{"nativeSrc":"5765:67:53","nodeType":"YulBlock","src":"5765:67:53","statements":[{"nativeSrc":"5775:51:53","nodeType":"YulAssignment","src":"5775:51:53","value":{"arguments":[{"name":"value","nativeSrc":"5820:5:53","nodeType":"YulIdentifier","src":"5820:5:53"}],"functionName":{"name":"cleanup_t_enum$_Strategy_$16633","nativeSrc":"5788:31:53","nodeType":"YulIdentifier","src":"5788:31:53"},"nativeSrc":"5788:38:53","nodeType":"YulFunctionCall","src":"5788:38:53"},"variableNames":[{"name":"converted","nativeSrc":"5775:9:53","nodeType":"YulIdentifier","src":"5775:9:53"}]}]},"name":"convert_t_enum$_Strategy_$16633_to_t_uint8","nativeSrc":"5693:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5745:5:53","nodeType":"YulTypedName","src":"5745:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5755:9:53","nodeType":"YulTypedName","src":"5755:9:53","type":""}],"src":"5693:139:53"},{"body":{"nativeSrc":"5915:78:53","nodeType":"YulBlock","src":"5915:78:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5932:3:53","nodeType":"YulIdentifier","src":"5932:3:53"},{"arguments":[{"name":"value","nativeSrc":"5980:5:53","nodeType":"YulIdentifier","src":"5980:5:53"}],"functionName":{"name":"convert_t_enum$_Strategy_$16633_to_t_uint8","nativeSrc":"5937:42:53","nodeType":"YulIdentifier","src":"5937:42:53"},"nativeSrc":"5937:49:53","nodeType":"YulFunctionCall","src":"5937:49:53"}],"functionName":{"name":"mstore","nativeSrc":"5925:6:53","nodeType":"YulIdentifier","src":"5925:6:53"},"nativeSrc":"5925:62:53","nodeType":"YulFunctionCall","src":"5925:62:53"},"nativeSrc":"5925:62:53","nodeType":"YulExpressionStatement","src":"5925:62:53"}]},"name":"abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack","nativeSrc":"5838:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5903:5:53","nodeType":"YulTypedName","src":"5903:5:53","type":""},{"name":"pos","nativeSrc":"5910:3:53","nodeType":"YulTypedName","src":"5910:3:53","type":""}],"src":"5838:155:53"},{"body":{"nativeSrc":"6109:136:53","nodeType":"YulBlock","src":"6109:136:53","statements":[{"nativeSrc":"6119:26:53","nodeType":"YulAssignment","src":"6119:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6131:9:53","nodeType":"YulIdentifier","src":"6131:9:53"},{"kind":"number","nativeSrc":"6142:2:53","nodeType":"YulLiteral","src":"6142:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6127:3:53","nodeType":"YulIdentifier","src":"6127:3:53"},"nativeSrc":"6127:18:53","nodeType":"YulFunctionCall","src":"6127:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6119:4:53","nodeType":"YulIdentifier","src":"6119:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6211:6:53","nodeType":"YulIdentifier","src":"6211:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6224:9:53","nodeType":"YulIdentifier","src":"6224:9:53"},{"kind":"number","nativeSrc":"6235:1:53","nodeType":"YulLiteral","src":"6235:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6220:3:53","nodeType":"YulIdentifier","src":"6220:3:53"},"nativeSrc":"6220:17:53","nodeType":"YulFunctionCall","src":"6220:17:53"}],"functionName":{"name":"abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack","nativeSrc":"6155:55:53","nodeType":"YulIdentifier","src":"6155:55:53"},"nativeSrc":"6155:83:53","nodeType":"YulFunctionCall","src":"6155:83:53"},"nativeSrc":"6155:83:53","nodeType":"YulExpressionStatement","src":"6155:83:53"}]},"name":"abi_encode_tuple_t_enum$_Strategy_$16633__to_t_uint8__fromStack_reversed","nativeSrc":"5999:246:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6081:9:53","nodeType":"YulTypedName","src":"6081:9:53","type":""},{"name":"value0","nativeSrc":"6093:6:53","nodeType":"YulTypedName","src":"6093:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6104:4:53","nodeType":"YulTypedName","src":"6104:4:53","type":""}],"src":"5999:246:53"},{"body":{"nativeSrc":"6294:79:53","nodeType":"YulBlock","src":"6294:79:53","statements":[{"body":{"nativeSrc":"6351:16:53","nodeType":"YulBlock","src":"6351:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6360:1:53","nodeType":"YulLiteral","src":"6360:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6363:1:53","nodeType":"YulLiteral","src":"6363:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6353:6:53","nodeType":"YulIdentifier","src":"6353:6:53"},"nativeSrc":"6353:12:53","nodeType":"YulFunctionCall","src":"6353:12:53"},"nativeSrc":"6353:12:53","nodeType":"YulExpressionStatement","src":"6353:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6317:5:53","nodeType":"YulIdentifier","src":"6317:5:53"},{"arguments":[{"name":"value","nativeSrc":"6342:5:53","nodeType":"YulIdentifier","src":"6342:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6324:17:53","nodeType":"YulIdentifier","src":"6324:17:53"},"nativeSrc":"6324:24:53","nodeType":"YulFunctionCall","src":"6324:24:53"}],"functionName":{"name":"eq","nativeSrc":"6314:2:53","nodeType":"YulIdentifier","src":"6314:2:53"},"nativeSrc":"6314:35:53","nodeType":"YulFunctionCall","src":"6314:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6307:6:53","nodeType":"YulIdentifier","src":"6307:6:53"},"nativeSrc":"6307:43:53","nodeType":"YulFunctionCall","src":"6307:43:53"},"nativeSrc":"6304:63:53","nodeType":"YulIf","src":"6304:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"6251:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6287:5:53","nodeType":"YulTypedName","src":"6287:5:53","type":""}],"src":"6251:122:53"},{"body":{"nativeSrc":"6431:87:53","nodeType":"YulBlock","src":"6431:87:53","statements":[{"nativeSrc":"6441:29:53","nodeType":"YulAssignment","src":"6441:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6463:6:53","nodeType":"YulIdentifier","src":"6463:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6450:12:53","nodeType":"YulIdentifier","src":"6450:12:53"},"nativeSrc":"6450:20:53","nodeType":"YulFunctionCall","src":"6450:20:53"},"variableNames":[{"name":"value","nativeSrc":"6441:5:53","nodeType":"YulIdentifier","src":"6441:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6506:5:53","nodeType":"YulIdentifier","src":"6506:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6479:26:53","nodeType":"YulIdentifier","src":"6479:26:53"},"nativeSrc":"6479:33:53","nodeType":"YulFunctionCall","src":"6479:33:53"},"nativeSrc":"6479:33:53","nodeType":"YulExpressionStatement","src":"6479:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"6379:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6409:6:53","nodeType":"YulTypedName","src":"6409:6:53","type":""},{"name":"end","nativeSrc":"6417:3:53","nodeType":"YulTypedName","src":"6417:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6425:5:53","nodeType":"YulTypedName","src":"6425:5:53","type":""}],"src":"6379:139:53"},{"body":{"nativeSrc":"6590:263:53","nodeType":"YulBlock","src":"6590:263:53","statements":[{"body":{"nativeSrc":"6636:83:53","nodeType":"YulBlock","src":"6636:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6638:77:53","nodeType":"YulIdentifier","src":"6638:77:53"},"nativeSrc":"6638:79:53","nodeType":"YulFunctionCall","src":"6638:79:53"},"nativeSrc":"6638:79:53","nodeType":"YulExpressionStatement","src":"6638:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6611:7:53","nodeType":"YulIdentifier","src":"6611:7:53"},{"name":"headStart","nativeSrc":"6620:9:53","nodeType":"YulIdentifier","src":"6620:9:53"}],"functionName":{"name":"sub","nativeSrc":"6607:3:53","nodeType":"YulIdentifier","src":"6607:3:53"},"nativeSrc":"6607:23:53","nodeType":"YulFunctionCall","src":"6607:23:53"},{"kind":"number","nativeSrc":"6632:2:53","nodeType":"YulLiteral","src":"6632:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6603:3:53","nodeType":"YulIdentifier","src":"6603:3:53"},"nativeSrc":"6603:32:53","nodeType":"YulFunctionCall","src":"6603:32:53"},"nativeSrc":"6600:119:53","nodeType":"YulIf","src":"6600:119:53"},{"nativeSrc":"6729:117:53","nodeType":"YulBlock","src":"6729:117:53","statements":[{"nativeSrc":"6744:15:53","nodeType":"YulVariableDeclaration","src":"6744:15:53","value":{"kind":"number","nativeSrc":"6758:1:53","nodeType":"YulLiteral","src":"6758:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6748:6:53","nodeType":"YulTypedName","src":"6748:6:53","type":""}]},{"nativeSrc":"6773:63:53","nodeType":"YulAssignment","src":"6773:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6808:9:53","nodeType":"YulIdentifier","src":"6808:9:53"},{"name":"offset","nativeSrc":"6819:6:53","nodeType":"YulIdentifier","src":"6819:6:53"}],"functionName":{"name":"add","nativeSrc":"6804:3:53","nodeType":"YulIdentifier","src":"6804:3:53"},"nativeSrc":"6804:22:53","nodeType":"YulFunctionCall","src":"6804:22:53"},{"name":"dataEnd","nativeSrc":"6828:7:53","nodeType":"YulIdentifier","src":"6828:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6783:20:53","nodeType":"YulIdentifier","src":"6783:20:53"},"nativeSrc":"6783:53:53","nodeType":"YulFunctionCall","src":"6783:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6773:6:53","nodeType":"YulIdentifier","src":"6773:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6524:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6560:9:53","nodeType":"YulTypedName","src":"6560:9:53","type":""},{"name":"dataEnd","nativeSrc":"6571:7:53","nodeType":"YulTypedName","src":"6571:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6583:6:53","nodeType":"YulTypedName","src":"6583:6:53","type":""}],"src":"6524:329:53"},{"body":{"nativeSrc":"6902:79:53","nodeType":"YulBlock","src":"6902:79:53","statements":[{"body":{"nativeSrc":"6959:16:53","nodeType":"YulBlock","src":"6959:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6968:1:53","nodeType":"YulLiteral","src":"6968:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6971:1:53","nodeType":"YulLiteral","src":"6971:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6961:6:53","nodeType":"YulIdentifier","src":"6961:6:53"},"nativeSrc":"6961:12:53","nodeType":"YulFunctionCall","src":"6961:12:53"},"nativeSrc":"6961:12:53","nodeType":"YulExpressionStatement","src":"6961:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6925:5:53","nodeType":"YulIdentifier","src":"6925:5:53"},{"arguments":[{"name":"value","nativeSrc":"6950:5:53","nodeType":"YulIdentifier","src":"6950:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6932:17:53","nodeType":"YulIdentifier","src":"6932:17:53"},"nativeSrc":"6932:24:53","nodeType":"YulFunctionCall","src":"6932:24:53"}],"functionName":{"name":"eq","nativeSrc":"6922:2:53","nodeType":"YulIdentifier","src":"6922:2:53"},"nativeSrc":"6922:35:53","nodeType":"YulFunctionCall","src":"6922:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6915:6:53","nodeType":"YulIdentifier","src":"6915:6:53"},"nativeSrc":"6915:43:53","nodeType":"YulFunctionCall","src":"6915:43:53"},"nativeSrc":"6912:63:53","nodeType":"YulIf","src":"6912:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"6859:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6895:5:53","nodeType":"YulTypedName","src":"6895:5:53","type":""}],"src":"6859:122:53"},{"body":{"nativeSrc":"7039:87:53","nodeType":"YulBlock","src":"7039:87:53","statements":[{"nativeSrc":"7049:29:53","nodeType":"YulAssignment","src":"7049:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7071:6:53","nodeType":"YulIdentifier","src":"7071:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7058:12:53","nodeType":"YulIdentifier","src":"7058:12:53"},"nativeSrc":"7058:20:53","nodeType":"YulFunctionCall","src":"7058:20:53"},"variableNames":[{"name":"value","nativeSrc":"7049:5:53","nodeType":"YulIdentifier","src":"7049:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7114:5:53","nodeType":"YulIdentifier","src":"7114:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7087:26:53","nodeType":"YulIdentifier","src":"7087:26:53"},"nativeSrc":"7087:33:53","nodeType":"YulFunctionCall","src":"7087:33:53"},"nativeSrc":"7087:33:53","nodeType":"YulExpressionStatement","src":"7087:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"6987:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7017:6:53","nodeType":"YulTypedName","src":"7017:6:53","type":""},{"name":"end","nativeSrc":"7025:3:53","nodeType":"YulTypedName","src":"7025:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7033:5:53","nodeType":"YulTypedName","src":"7033:5:53","type":""}],"src":"6987:139:53"},{"body":{"nativeSrc":"7198:263:53","nodeType":"YulBlock","src":"7198:263:53","statements":[{"body":{"nativeSrc":"7244:83:53","nodeType":"YulBlock","src":"7244:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7246:77:53","nodeType":"YulIdentifier","src":"7246:77:53"},"nativeSrc":"7246:79:53","nodeType":"YulFunctionCall","src":"7246:79:53"},"nativeSrc":"7246:79:53","nodeType":"YulExpressionStatement","src":"7246:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7219:7:53","nodeType":"YulIdentifier","src":"7219:7:53"},{"name":"headStart","nativeSrc":"7228:9:53","nodeType":"YulIdentifier","src":"7228:9:53"}],"functionName":{"name":"sub","nativeSrc":"7215:3:53","nodeType":"YulIdentifier","src":"7215:3:53"},"nativeSrc":"7215:23:53","nodeType":"YulFunctionCall","src":"7215:23:53"},{"kind":"number","nativeSrc":"7240:2:53","nodeType":"YulLiteral","src":"7240:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7211:3:53","nodeType":"YulIdentifier","src":"7211:3:53"},"nativeSrc":"7211:32:53","nodeType":"YulFunctionCall","src":"7211:32:53"},"nativeSrc":"7208:119:53","nodeType":"YulIf","src":"7208:119:53"},{"nativeSrc":"7337:117:53","nodeType":"YulBlock","src":"7337:117:53","statements":[{"nativeSrc":"7352:15:53","nodeType":"YulVariableDeclaration","src":"7352:15:53","value":{"kind":"number","nativeSrc":"7366:1:53","nodeType":"YulLiteral","src":"7366:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7356:6:53","nodeType":"YulTypedName","src":"7356:6:53","type":""}]},{"nativeSrc":"7381:63:53","nodeType":"YulAssignment","src":"7381:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7416:9:53","nodeType":"YulIdentifier","src":"7416:9:53"},{"name":"offset","nativeSrc":"7427:6:53","nodeType":"YulIdentifier","src":"7427:6:53"}],"functionName":{"name":"add","nativeSrc":"7412:3:53","nodeType":"YulIdentifier","src":"7412:3:53"},"nativeSrc":"7412:22:53","nodeType":"YulFunctionCall","src":"7412:22:53"},{"name":"dataEnd","nativeSrc":"7436:7:53","nodeType":"YulIdentifier","src":"7436:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7391:20:53","nodeType":"YulIdentifier","src":"7391:20:53"},"nativeSrc":"7391:53:53","nodeType":"YulFunctionCall","src":"7391:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7381:6:53","nodeType":"YulIdentifier","src":"7381:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7132:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7168:9:53","nodeType":"YulTypedName","src":"7168:9:53","type":""},{"name":"dataEnd","nativeSrc":"7179:7:53","nodeType":"YulTypedName","src":"7179:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7191:6:53","nodeType":"YulTypedName","src":"7191:6:53","type":""}],"src":"7132:329:53"},{"body":{"nativeSrc":"7495:152:53","nodeType":"YulBlock","src":"7495:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7512:1:53","nodeType":"YulLiteral","src":"7512:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7515:77:53","nodeType":"YulLiteral","src":"7515:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7505:6:53","nodeType":"YulIdentifier","src":"7505:6:53"},"nativeSrc":"7505:88:53","nodeType":"YulFunctionCall","src":"7505:88:53"},"nativeSrc":"7505:88:53","nodeType":"YulExpressionStatement","src":"7505:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7609:1:53","nodeType":"YulLiteral","src":"7609:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7612:4:53","nodeType":"YulLiteral","src":"7612:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7602:6:53","nodeType":"YulIdentifier","src":"7602:6:53"},"nativeSrc":"7602:15:53","nodeType":"YulFunctionCall","src":"7602:15:53"},"nativeSrc":"7602:15:53","nodeType":"YulExpressionStatement","src":"7602:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7633:1:53","nodeType":"YulLiteral","src":"7633:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7636:4:53","nodeType":"YulLiteral","src":"7636:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7626:6:53","nodeType":"YulIdentifier","src":"7626:6:53"},"nativeSrc":"7626:15:53","nodeType":"YulFunctionCall","src":"7626:15:53"},"nativeSrc":"7626:15:53","nodeType":"YulExpressionStatement","src":"7626:15:53"}]},"name":"panic_error_0x11","nativeSrc":"7467:180:53","nodeType":"YulFunctionDefinition","src":"7467:180:53"},{"body":{"nativeSrc":"7697:147:53","nodeType":"YulBlock","src":"7697:147:53","statements":[{"nativeSrc":"7707:25:53","nodeType":"YulAssignment","src":"7707:25:53","value":{"arguments":[{"name":"x","nativeSrc":"7730:1:53","nodeType":"YulIdentifier","src":"7730:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7712:17:53","nodeType":"YulIdentifier","src":"7712:17:53"},"nativeSrc":"7712:20:53","nodeType":"YulFunctionCall","src":"7712:20:53"},"variableNames":[{"name":"x","nativeSrc":"7707:1:53","nodeType":"YulIdentifier","src":"7707:1:53"}]},{"nativeSrc":"7741:25:53","nodeType":"YulAssignment","src":"7741:25:53","value":{"arguments":[{"name":"y","nativeSrc":"7764:1:53","nodeType":"YulIdentifier","src":"7764:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7746:17:53","nodeType":"YulIdentifier","src":"7746:17:53"},"nativeSrc":"7746:20:53","nodeType":"YulFunctionCall","src":"7746:20:53"},"variableNames":[{"name":"y","nativeSrc":"7741:1:53","nodeType":"YulIdentifier","src":"7741:1:53"}]},{"nativeSrc":"7775:16:53","nodeType":"YulAssignment","src":"7775:16:53","value":{"arguments":[{"name":"x","nativeSrc":"7786:1:53","nodeType":"YulIdentifier","src":"7786:1:53"},{"name":"y","nativeSrc":"7789:1:53","nodeType":"YulIdentifier","src":"7789:1:53"}],"functionName":{"name":"add","nativeSrc":"7782:3:53","nodeType":"YulIdentifier","src":"7782:3:53"},"nativeSrc":"7782:9:53","nodeType":"YulFunctionCall","src":"7782:9:53"},"variableNames":[{"name":"sum","nativeSrc":"7775:3:53","nodeType":"YulIdentifier","src":"7775:3:53"}]},{"body":{"nativeSrc":"7815:22:53","nodeType":"YulBlock","src":"7815:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7817:16:53","nodeType":"YulIdentifier","src":"7817:16:53"},"nativeSrc":"7817:18:53","nodeType":"YulFunctionCall","src":"7817:18:53"},"nativeSrc":"7817:18:53","nodeType":"YulExpressionStatement","src":"7817:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7807:1:53","nodeType":"YulIdentifier","src":"7807:1:53"},{"name":"sum","nativeSrc":"7810:3:53","nodeType":"YulIdentifier","src":"7810:3:53"}],"functionName":{"name":"gt","nativeSrc":"7804:2:53","nodeType":"YulIdentifier","src":"7804:2:53"},"nativeSrc":"7804:10:53","nodeType":"YulFunctionCall","src":"7804:10:53"},"nativeSrc":"7801:36:53","nodeType":"YulIf","src":"7801:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"7653:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7684:1:53","nodeType":"YulTypedName","src":"7684:1:53","type":""},{"name":"y","nativeSrc":"7687:1:53","nodeType":"YulTypedName","src":"7687:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7693:3:53","nodeType":"YulTypedName","src":"7693:3:53","type":""}],"src":"7653:191:53"},{"body":{"nativeSrc":"7878:152:53","nodeType":"YulBlock","src":"7878:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7895:1:53","nodeType":"YulLiteral","src":"7895:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7898:77:53","nodeType":"YulLiteral","src":"7898:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7888:6:53","nodeType":"YulIdentifier","src":"7888:6:53"},"nativeSrc":"7888:88:53","nodeType":"YulFunctionCall","src":"7888:88:53"},"nativeSrc":"7888:88:53","nodeType":"YulExpressionStatement","src":"7888:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7992:1:53","nodeType":"YulLiteral","src":"7992:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7995:4:53","nodeType":"YulLiteral","src":"7995:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7985:6:53","nodeType":"YulIdentifier","src":"7985:6:53"},"nativeSrc":"7985:15:53","nodeType":"YulFunctionCall","src":"7985:15:53"},"nativeSrc":"7985:15:53","nodeType":"YulExpressionStatement","src":"7985:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8016:1:53","nodeType":"YulLiteral","src":"8016:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8019:4:53","nodeType":"YulLiteral","src":"8019:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8009:6:53","nodeType":"YulIdentifier","src":"8009:6:53"},"nativeSrc":"8009:15:53","nodeType":"YulFunctionCall","src":"8009:15:53"},"nativeSrc":"8009:15:53","nodeType":"YulExpressionStatement","src":"8009:15:53"}]},"name":"panic_error_0x12","nativeSrc":"7850:180:53","nodeType":"YulFunctionDefinition","src":"7850:180:53"},{"body":{"nativeSrc":"8070:142:53","nodeType":"YulBlock","src":"8070:142:53","statements":[{"nativeSrc":"8080:25:53","nodeType":"YulAssignment","src":"8080:25:53","value":{"arguments":[{"name":"x","nativeSrc":"8103:1:53","nodeType":"YulIdentifier","src":"8103:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8085:17:53","nodeType":"YulIdentifier","src":"8085:17:53"},"nativeSrc":"8085:20:53","nodeType":"YulFunctionCall","src":"8085:20:53"},"variableNames":[{"name":"x","nativeSrc":"8080:1:53","nodeType":"YulIdentifier","src":"8080:1:53"}]},{"nativeSrc":"8114:25:53","nodeType":"YulAssignment","src":"8114:25:53","value":{"arguments":[{"name":"y","nativeSrc":"8137:1:53","nodeType":"YulIdentifier","src":"8137:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8119:17:53","nodeType":"YulIdentifier","src":"8119:17:53"},"nativeSrc":"8119:20:53","nodeType":"YulFunctionCall","src":"8119:20:53"},"variableNames":[{"name":"y","nativeSrc":"8114:1:53","nodeType":"YulIdentifier","src":"8114:1:53"}]},{"body":{"nativeSrc":"8161:22:53","nodeType":"YulBlock","src":"8161:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8163:16:53","nodeType":"YulIdentifier","src":"8163:16:53"},"nativeSrc":"8163:18:53","nodeType":"YulFunctionCall","src":"8163:18:53"},"nativeSrc":"8163:18:53","nodeType":"YulExpressionStatement","src":"8163:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8158:1:53","nodeType":"YulIdentifier","src":"8158:1:53"}],"functionName":{"name":"iszero","nativeSrc":"8151:6:53","nodeType":"YulIdentifier","src":"8151:6:53"},"nativeSrc":"8151:9:53","nodeType":"YulFunctionCall","src":"8151:9:53"},"nativeSrc":"8148:35:53","nodeType":"YulIf","src":"8148:35:53"},{"nativeSrc":"8192:14:53","nodeType":"YulAssignment","src":"8192:14:53","value":{"arguments":[{"name":"x","nativeSrc":"8201:1:53","nodeType":"YulIdentifier","src":"8201:1:53"},{"name":"y","nativeSrc":"8204:1:53","nodeType":"YulIdentifier","src":"8204:1:53"}],"functionName":{"name":"mod","nativeSrc":"8197:3:53","nodeType":"YulIdentifier","src":"8197:3:53"},"nativeSrc":"8197:9:53","nodeType":"YulFunctionCall","src":"8197:9:53"},"variableNames":[{"name":"r","nativeSrc":"8192:1:53","nodeType":"YulIdentifier","src":"8192:1:53"}]}]},"name":"mod_t_uint256","nativeSrc":"8036:176:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8059:1:53","nodeType":"YulTypedName","src":"8059:1:53","type":""},{"name":"y","nativeSrc":"8062:1:53","nodeType":"YulTypedName","src":"8062:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8068:1:53","nodeType":"YulTypedName","src":"8068:1:53","type":""}],"src":"8036:176:53"},{"body":{"nativeSrc":"8246:152:53","nodeType":"YulBlock","src":"8246:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8263:1:53","nodeType":"YulLiteral","src":"8263:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8266:77:53","nodeType":"YulLiteral","src":"8266:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8256:6:53","nodeType":"YulIdentifier","src":"8256:6:53"},"nativeSrc":"8256:88:53","nodeType":"YulFunctionCall","src":"8256:88:53"},"nativeSrc":"8256:88:53","nodeType":"YulExpressionStatement","src":"8256:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8360:1:53","nodeType":"YulLiteral","src":"8360:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8363:4:53","nodeType":"YulLiteral","src":"8363:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8353:6:53","nodeType":"YulIdentifier","src":"8353:6:53"},"nativeSrc":"8353:15:53","nodeType":"YulFunctionCall","src":"8353:15:53"},"nativeSrc":"8353:15:53","nodeType":"YulExpressionStatement","src":"8353:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8384:1:53","nodeType":"YulLiteral","src":"8384:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8387:4:53","nodeType":"YulLiteral","src":"8387:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8377:6:53","nodeType":"YulIdentifier","src":"8377:6:53"},"nativeSrc":"8377:15:53","nodeType":"YulFunctionCall","src":"8377:15:53"},"nativeSrc":"8377:15:53","nodeType":"YulExpressionStatement","src":"8377:15:53"}]},"name":"panic_error_0x32","nativeSrc":"8218:180:53","nodeType":"YulFunctionDefinition","src":"8218:180:53"},{"body":{"nativeSrc":"8446:52:53","nodeType":"YulBlock","src":"8446:52:53","statements":[{"nativeSrc":"8456:35:53","nodeType":"YulAssignment","src":"8456:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"8481:2:53","nodeType":"YulLiteral","src":"8481:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"8485:5:53","nodeType":"YulIdentifier","src":"8485:5:53"}],"functionName":{"name":"shl","nativeSrc":"8477:3:53","nodeType":"YulIdentifier","src":"8477:3:53"},"nativeSrc":"8477:14:53","nodeType":"YulFunctionCall","src":"8477:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"8456:8:53","nodeType":"YulIdentifier","src":"8456:8:53"}]}]},"name":"shift_left_96","nativeSrc":"8404:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8427:5:53","nodeType":"YulTypedName","src":"8427:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8437:8:53","nodeType":"YulTypedName","src":"8437:8:53","type":""}],"src":"8404:94:53"},{"body":{"nativeSrc":"8551:47:53","nodeType":"YulBlock","src":"8551:47:53","statements":[{"nativeSrc":"8561:31:53","nodeType":"YulAssignment","src":"8561:31:53","value":{"arguments":[{"name":"value","nativeSrc":"8586:5:53","nodeType":"YulIdentifier","src":"8586:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"8572:13:53","nodeType":"YulIdentifier","src":"8572:13:53"},"nativeSrc":"8572:20:53","nodeType":"YulFunctionCall","src":"8572:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"8561:7:53","nodeType":"YulIdentifier","src":"8561:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"8504:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8533:5:53","nodeType":"YulTypedName","src":"8533:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8543:7:53","nodeType":"YulTypedName","src":"8543:7:53","type":""}],"src":"8504:94:53"},{"body":{"nativeSrc":"8651:53:53","nodeType":"YulBlock","src":"8651:53:53","statements":[{"nativeSrc":"8661:37:53","nodeType":"YulAssignment","src":"8661:37:53","value":{"arguments":[{"name":"value","nativeSrc":"8692:5:53","nodeType":"YulIdentifier","src":"8692:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"8672:19:53","nodeType":"YulIdentifier","src":"8672:19:53"},"nativeSrc":"8672:26:53","nodeType":"YulFunctionCall","src":"8672:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"8661:7:53","nodeType":"YulIdentifier","src":"8661:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"8604:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8633:5:53","nodeType":"YulTypedName","src":"8633:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8643:7:53","nodeType":"YulTypedName","src":"8643:7:53","type":""}],"src":"8604:100:53"},{"body":{"nativeSrc":"8793:74:53","nodeType":"YulBlock","src":"8793:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8810:3:53","nodeType":"YulIdentifier","src":"8810:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8853:5:53","nodeType":"YulIdentifier","src":"8853:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8835:17:53","nodeType":"YulIdentifier","src":"8835:17:53"},"nativeSrc":"8835:24:53","nodeType":"YulFunctionCall","src":"8835:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"8815:19:53","nodeType":"YulIdentifier","src":"8815:19:53"},"nativeSrc":"8815:45:53","nodeType":"YulFunctionCall","src":"8815:45:53"}],"functionName":{"name":"mstore","nativeSrc":"8803:6:53","nodeType":"YulIdentifier","src":"8803:6:53"},"nativeSrc":"8803:58:53","nodeType":"YulFunctionCall","src":"8803:58:53"},"nativeSrc":"8803:58:53","nodeType":"YulExpressionStatement","src":"8803:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"8710:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8781:5:53","nodeType":"YulTypedName","src":"8781:5:53","type":""},{"name":"pos","nativeSrc":"8788:3:53","nodeType":"YulTypedName","src":"8788:3:53","type":""}],"src":"8710:157:53"},{"body":{"nativeSrc":"8920:32:53","nodeType":"YulBlock","src":"8920:32:53","statements":[{"nativeSrc":"8930:16:53","nodeType":"YulAssignment","src":"8930:16:53","value":{"name":"value","nativeSrc":"8941:5:53","nodeType":"YulIdentifier","src":"8941:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"8930:7:53","nodeType":"YulIdentifier","src":"8930:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"8873:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8902:5:53","nodeType":"YulTypedName","src":"8902:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8912:7:53","nodeType":"YulTypedName","src":"8912:7:53","type":""}],"src":"8873:79:53"},{"body":{"nativeSrc":"9041:74:53","nodeType":"YulBlock","src":"9041:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9058:3:53","nodeType":"YulIdentifier","src":"9058:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9101:5:53","nodeType":"YulIdentifier","src":"9101:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9083:17:53","nodeType":"YulIdentifier","src":"9083:17:53"},"nativeSrc":"9083:24:53","nodeType":"YulFunctionCall","src":"9083:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"9063:19:53","nodeType":"YulIdentifier","src":"9063:19:53"},"nativeSrc":"9063:45:53","nodeType":"YulFunctionCall","src":"9063:45:53"}],"functionName":{"name":"mstore","nativeSrc":"9051:6:53","nodeType":"YulIdentifier","src":"9051:6:53"},"nativeSrc":"9051:58:53","nodeType":"YulFunctionCall","src":"9051:58:53"},"nativeSrc":"9051:58:53","nodeType":"YulExpressionStatement","src":"9051:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"8958:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9029:5:53","nodeType":"YulTypedName","src":"9029:5:53","type":""},{"name":"pos","nativeSrc":"9036:3:53","nodeType":"YulTypedName","src":"9036:3:53","type":""}],"src":"8958:157:53"},{"body":{"nativeSrc":"9293:366:53","nodeType":"YulBlock","src":"9293:366:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"9366:6:53","nodeType":"YulIdentifier","src":"9366:6:53"},{"name":"pos","nativeSrc":"9375:3:53","nodeType":"YulIdentifier","src":"9375:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"9304:61:53","nodeType":"YulIdentifier","src":"9304:61:53"},"nativeSrc":"9304:75:53","nodeType":"YulFunctionCall","src":"9304:75:53"},"nativeSrc":"9304:75:53","nodeType":"YulExpressionStatement","src":"9304:75:53"},{"nativeSrc":"9388:19:53","nodeType":"YulAssignment","src":"9388:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9399:3:53","nodeType":"YulIdentifier","src":"9399:3:53"},{"kind":"number","nativeSrc":"9404:2:53","nodeType":"YulLiteral","src":"9404:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"9395:3:53","nodeType":"YulIdentifier","src":"9395:3:53"},"nativeSrc":"9395:12:53","nodeType":"YulFunctionCall","src":"9395:12:53"},"variableNames":[{"name":"pos","nativeSrc":"9388:3:53","nodeType":"YulIdentifier","src":"9388:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9479:6:53","nodeType":"YulIdentifier","src":"9479:6:53"},{"name":"pos","nativeSrc":"9488:3:53","nodeType":"YulIdentifier","src":"9488:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"9417:61:53","nodeType":"YulIdentifier","src":"9417:61:53"},"nativeSrc":"9417:75:53","nodeType":"YulFunctionCall","src":"9417:75:53"},"nativeSrc":"9417:75:53","nodeType":"YulExpressionStatement","src":"9417:75:53"},{"nativeSrc":"9501:19:53","nodeType":"YulAssignment","src":"9501:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9512:3:53","nodeType":"YulIdentifier","src":"9512:3:53"},{"kind":"number","nativeSrc":"9517:2:53","nodeType":"YulLiteral","src":"9517:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"9508:3:53","nodeType":"YulIdentifier","src":"9508:3:53"},"nativeSrc":"9508:12:53","nodeType":"YulFunctionCall","src":"9508:12:53"},"variableNames":[{"name":"pos","nativeSrc":"9501:3:53","nodeType":"YulIdentifier","src":"9501:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"9592:6:53","nodeType":"YulIdentifier","src":"9592:6:53"},{"name":"pos","nativeSrc":"9601:3:53","nodeType":"YulIdentifier","src":"9601:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"9530:61:53","nodeType":"YulIdentifier","src":"9530:61:53"},"nativeSrc":"9530:75:53","nodeType":"YulFunctionCall","src":"9530:75:53"},"nativeSrc":"9530:75:53","nodeType":"YulExpressionStatement","src":"9530:75:53"},{"nativeSrc":"9614:19:53","nodeType":"YulAssignment","src":"9614:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9625:3:53","nodeType":"YulIdentifier","src":"9625:3:53"},{"kind":"number","nativeSrc":"9630:2:53","nodeType":"YulLiteral","src":"9630:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9621:3:53","nodeType":"YulIdentifier","src":"9621:3:53"},"nativeSrc":"9621:12:53","nodeType":"YulFunctionCall","src":"9621:12:53"},"variableNames":[{"name":"pos","nativeSrc":"9614:3:53","nodeType":"YulIdentifier","src":"9614:3:53"}]},{"nativeSrc":"9643:10:53","nodeType":"YulAssignment","src":"9643:10:53","value":{"name":"pos","nativeSrc":"9650:3:53","nodeType":"YulIdentifier","src":"9650:3:53"},"variableNames":[{"name":"end","nativeSrc":"9643:3:53","nodeType":"YulIdentifier","src":"9643:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"9121:538:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9256:3:53","nodeType":"YulTypedName","src":"9256:3:53","type":""},{"name":"value2","nativeSrc":"9262:6:53","nodeType":"YulTypedName","src":"9262:6:53","type":""},{"name":"value1","nativeSrc":"9270:6:53","nodeType":"YulTypedName","src":"9270:6:53","type":""},{"name":"value0","nativeSrc":"9278:6:53","nodeType":"YulTypedName","src":"9278:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9289:3:53","nodeType":"YulTypedName","src":"9289:3:53","type":""}],"src":"9121:538:53"},{"body":{"nativeSrc":"9754:28:53","nodeType":"YulBlock","src":"9754:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9771:1:53","nodeType":"YulLiteral","src":"9771:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9774:1:53","nodeType":"YulLiteral","src":"9774:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9764:6:53","nodeType":"YulIdentifier","src":"9764:6:53"},"nativeSrc":"9764:12:53","nodeType":"YulFunctionCall","src":"9764:12:53"},"nativeSrc":"9764:12:53","nodeType":"YulExpressionStatement","src":"9764:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9665:117:53","nodeType":"YulFunctionDefinition","src":"9665:117:53"},{"body":{"nativeSrc":"9816:152:53","nodeType":"YulBlock","src":"9816:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9833:1:53","nodeType":"YulLiteral","src":"9833:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9836:77:53","nodeType":"YulLiteral","src":"9836:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9826:6:53","nodeType":"YulIdentifier","src":"9826:6:53"},"nativeSrc":"9826:88:53","nodeType":"YulFunctionCall","src":"9826:88:53"},"nativeSrc":"9826:88:53","nodeType":"YulExpressionStatement","src":"9826:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9930:1:53","nodeType":"YulLiteral","src":"9930:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9933:4:53","nodeType":"YulLiteral","src":"9933:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9923:6:53","nodeType":"YulIdentifier","src":"9923:6:53"},"nativeSrc":"9923:15:53","nodeType":"YulFunctionCall","src":"9923:15:53"},"nativeSrc":"9923:15:53","nodeType":"YulExpressionStatement","src":"9923:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9954:1:53","nodeType":"YulLiteral","src":"9954:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9957:4:53","nodeType":"YulLiteral","src":"9957:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9947:6:53","nodeType":"YulIdentifier","src":"9947:6:53"},"nativeSrc":"9947:15:53","nodeType":"YulFunctionCall","src":"9947:15:53"},"nativeSrc":"9947:15:53","nodeType":"YulExpressionStatement","src":"9947:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9788:180:53","nodeType":"YulFunctionDefinition","src":"9788:180:53"},{"body":{"nativeSrc":"10017:238:53","nodeType":"YulBlock","src":"10017:238:53","statements":[{"nativeSrc":"10027:58:53","nodeType":"YulVariableDeclaration","src":"10027:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10049:6:53","nodeType":"YulIdentifier","src":"10049:6:53"},{"arguments":[{"name":"size","nativeSrc":"10079:4:53","nodeType":"YulIdentifier","src":"10079:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10057:21:53","nodeType":"YulIdentifier","src":"10057:21:53"},"nativeSrc":"10057:27:53","nodeType":"YulFunctionCall","src":"10057:27:53"}],"functionName":{"name":"add","nativeSrc":"10045:3:53","nodeType":"YulIdentifier","src":"10045:3:53"},"nativeSrc":"10045:40:53","nodeType":"YulFunctionCall","src":"10045:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10031:10:53","nodeType":"YulTypedName","src":"10031:10:53","type":""}]},{"body":{"nativeSrc":"10196:22:53","nodeType":"YulBlock","src":"10196:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10198:16:53","nodeType":"YulIdentifier","src":"10198:16:53"},"nativeSrc":"10198:18:53","nodeType":"YulFunctionCall","src":"10198:18:53"},"nativeSrc":"10198:18:53","nodeType":"YulExpressionStatement","src":"10198:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10139:10:53","nodeType":"YulIdentifier","src":"10139:10:53"},{"kind":"number","nativeSrc":"10151:18:53","nodeType":"YulLiteral","src":"10151:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10136:2:53","nodeType":"YulIdentifier","src":"10136:2:53"},"nativeSrc":"10136:34:53","nodeType":"YulFunctionCall","src":"10136:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10175:10:53","nodeType":"YulIdentifier","src":"10175:10:53"},{"name":"memPtr","nativeSrc":"10187:6:53","nodeType":"YulIdentifier","src":"10187:6:53"}],"functionName":{"name":"lt","nativeSrc":"10172:2:53","nodeType":"YulIdentifier","src":"10172:2:53"},"nativeSrc":"10172:22:53","nodeType":"YulFunctionCall","src":"10172:22:53"}],"functionName":{"name":"or","nativeSrc":"10133:2:53","nodeType":"YulIdentifier","src":"10133:2:53"},"nativeSrc":"10133:62:53","nodeType":"YulFunctionCall","src":"10133:62:53"},"nativeSrc":"10130:88:53","nodeType":"YulIf","src":"10130:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10234:2:53","nodeType":"YulLiteral","src":"10234:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10238:10:53","nodeType":"YulIdentifier","src":"10238:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10227:6:53","nodeType":"YulIdentifier","src":"10227:6:53"},"nativeSrc":"10227:22:53","nodeType":"YulFunctionCall","src":"10227:22:53"},"nativeSrc":"10227:22:53","nodeType":"YulExpressionStatement","src":"10227:22:53"}]},"name":"finalize_allocation","nativeSrc":"9974:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10003:6:53","nodeType":"YulTypedName","src":"10003:6:53","type":""},{"name":"size","nativeSrc":"10011:4:53","nodeType":"YulTypedName","src":"10011:4:53","type":""}],"src":"9974:281:53"},{"body":{"nativeSrc":"10302:88:53","nodeType":"YulBlock","src":"10302:88:53","statements":[{"nativeSrc":"10312:30:53","nodeType":"YulAssignment","src":"10312:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10322:18:53","nodeType":"YulIdentifier","src":"10322:18:53"},"nativeSrc":"10322:20:53","nodeType":"YulFunctionCall","src":"10322:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10312:6:53","nodeType":"YulIdentifier","src":"10312:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10371:6:53","nodeType":"YulIdentifier","src":"10371:6:53"},{"name":"size","nativeSrc":"10379:4:53","nodeType":"YulIdentifier","src":"10379:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10351:19:53","nodeType":"YulIdentifier","src":"10351:19:53"},"nativeSrc":"10351:33:53","nodeType":"YulFunctionCall","src":"10351:33:53"},"nativeSrc":"10351:33:53","nodeType":"YulExpressionStatement","src":"10351:33:53"}]},"name":"allocate_memory","nativeSrc":"10261:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10286:4:53","nodeType":"YulTypedName","src":"10286:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10295:6:53","nodeType":"YulTypedName","src":"10295:6:53","type":""}],"src":"10261:129:53"},{"body":{"nativeSrc":"10485:28:53","nodeType":"YulBlock","src":"10485:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10502:1:53","nodeType":"YulLiteral","src":"10502:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10505:1:53","nodeType":"YulLiteral","src":"10505:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10495:6:53","nodeType":"YulIdentifier","src":"10495:6:53"},"nativeSrc":"10495:12:53","nodeType":"YulFunctionCall","src":"10495:12:53"},"nativeSrc":"10495:12:53","nodeType":"YulExpressionStatement","src":"10495:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10396:117:53","nodeType":"YulFunctionDefinition","src":"10396:117:53"},{"body":{"nativeSrc":"10576:56:53","nodeType":"YulBlock","src":"10576:56:53","statements":[{"body":{"nativeSrc":"10610:16:53","nodeType":"YulBlock","src":"10610:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10619:1:53","nodeType":"YulLiteral","src":"10619:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10622:1:53","nodeType":"YulLiteral","src":"10622:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10612:6:53","nodeType":"YulIdentifier","src":"10612:6:53"},"nativeSrc":"10612:12:53","nodeType":"YulFunctionCall","src":"10612:12:53"},"nativeSrc":"10612:12:53","nodeType":"YulExpressionStatement","src":"10612:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10599:5:53","nodeType":"YulIdentifier","src":"10599:5:53"},{"kind":"number","nativeSrc":"10606:1:53","nodeType":"YulLiteral","src":"10606:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"10596:2:53","nodeType":"YulIdentifier","src":"10596:2:53"},"nativeSrc":"10596:12:53","nodeType":"YulFunctionCall","src":"10596:12:53"}],"functionName":{"name":"iszero","nativeSrc":"10589:6:53","nodeType":"YulIdentifier","src":"10589:6:53"},"nativeSrc":"10589:20:53","nodeType":"YulFunctionCall","src":"10589:20:53"},"nativeSrc":"10586:40:53","nodeType":"YulIf","src":"10586:40:53"}]},"name":"validator_revert_t_enum$_Strategy_$16633","nativeSrc":"10519:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10569:5:53","nodeType":"YulTypedName","src":"10569:5:53","type":""}],"src":"10519:113:53"},{"body":{"nativeSrc":"10704:101:53","nodeType":"YulBlock","src":"10704:101:53","statements":[{"nativeSrc":"10714:29:53","nodeType":"YulAssignment","src":"10714:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10736:6:53","nodeType":"YulIdentifier","src":"10736:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10723:12:53","nodeType":"YulIdentifier","src":"10723:12:53"},"nativeSrc":"10723:20:53","nodeType":"YulFunctionCall","src":"10723:20:53"},"variableNames":[{"name":"value","nativeSrc":"10714:5:53","nodeType":"YulIdentifier","src":"10714:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10793:5:53","nodeType":"YulIdentifier","src":"10793:5:53"}],"functionName":{"name":"validator_revert_t_enum$_Strategy_$16633","nativeSrc":"10752:40:53","nodeType":"YulIdentifier","src":"10752:40:53"},"nativeSrc":"10752:47:53","nodeType":"YulFunctionCall","src":"10752:47:53"},"nativeSrc":"10752:47:53","nodeType":"YulExpressionStatement","src":"10752:47:53"}]},"name":"abi_decode_t_enum$_Strategy_$16633","nativeSrc":"10638:167:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10682:6:53","nodeType":"YulTypedName","src":"10682:6:53","type":""},{"name":"end","nativeSrc":"10690:3:53","nodeType":"YulTypedName","src":"10690:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10698:5:53","nodeType":"YulTypedName","src":"10698:5:53","type":""}],"src":"10638:167:53"},{"body":{"nativeSrc":"10937:838:53","nodeType":"YulBlock","src":"10937:838:53","statements":[{"body":{"nativeSrc":"10981:83:53","nodeType":"YulBlock","src":"10981:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10983:77:53","nodeType":"YulIdentifier","src":"10983:77:53"},"nativeSrc":"10983:79:53","nodeType":"YulFunctionCall","src":"10983:79:53"},"nativeSrc":"10983:79:53","nodeType":"YulExpressionStatement","src":"10983:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"10958:3:53","nodeType":"YulIdentifier","src":"10958:3:53"},{"name":"headStart","nativeSrc":"10963:9:53","nodeType":"YulIdentifier","src":"10963:9:53"}],"functionName":{"name":"sub","nativeSrc":"10954:3:53","nodeType":"YulIdentifier","src":"10954:3:53"},"nativeSrc":"10954:19:53","nodeType":"YulFunctionCall","src":"10954:19:53"},{"kind":"number","nativeSrc":"10975:4:53","nodeType":"YulLiteral","src":"10975:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"10950:3:53","nodeType":"YulIdentifier","src":"10950:3:53"},"nativeSrc":"10950:30:53","nodeType":"YulFunctionCall","src":"10950:30:53"},"nativeSrc":"10947:117:53","nodeType":"YulIf","src":"10947:117:53"},{"nativeSrc":"11073:30:53","nodeType":"YulAssignment","src":"11073:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"11098:4:53","nodeType":"YulLiteral","src":"11098:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"11082:15:53","nodeType":"YulIdentifier","src":"11082:15:53"},"nativeSrc":"11082:21:53","nodeType":"YulFunctionCall","src":"11082:21:53"},"variableNames":[{"name":"value","nativeSrc":"11073:5:53","nodeType":"YulIdentifier","src":"11073:5:53"}]},{"nativeSrc":"11113:151:53","nodeType":"YulBlock","src":"11113:151:53","statements":[{"nativeSrc":"11149:15:53","nodeType":"YulVariableDeclaration","src":"11149:15:53","value":{"kind":"number","nativeSrc":"11163:1:53","nodeType":"YulLiteral","src":"11163:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11153:6:53","nodeType":"YulTypedName","src":"11153:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11189:5:53","nodeType":"YulIdentifier","src":"11189:5:53"},{"kind":"number","nativeSrc":"11196:4:53","nodeType":"YulLiteral","src":"11196:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11185:3:53","nodeType":"YulIdentifier","src":"11185:3:53"},"nativeSrc":"11185:16:53","nodeType":"YulFunctionCall","src":"11185:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11228:9:53","nodeType":"YulIdentifier","src":"11228:9:53"},{"name":"offset","nativeSrc":"11239:6:53","nodeType":"YulIdentifier","src":"11239:6:53"}],"functionName":{"name":"add","nativeSrc":"11224:3:53","nodeType":"YulIdentifier","src":"11224:3:53"},"nativeSrc":"11224:22:53","nodeType":"YulFunctionCall","src":"11224:22:53"},{"name":"end","nativeSrc":"11248:3:53","nodeType":"YulIdentifier","src":"11248:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11203:20:53","nodeType":"YulIdentifier","src":"11203:20:53"},"nativeSrc":"11203:49:53","nodeType":"YulFunctionCall","src":"11203:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11178:6:53","nodeType":"YulIdentifier","src":"11178:6:53"},"nativeSrc":"11178:75:53","nodeType":"YulFunctionCall","src":"11178:75:53"},"nativeSrc":"11178:75:53","nodeType":"YulExpressionStatement","src":"11178:75:53"}]},{"nativeSrc":"11274:169:53","nodeType":"YulBlock","src":"11274:169:53","statements":[{"nativeSrc":"11313:16:53","nodeType":"YulVariableDeclaration","src":"11313:16:53","value":{"kind":"number","nativeSrc":"11327:2:53","nodeType":"YulLiteral","src":"11327:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11317:6:53","nodeType":"YulTypedName","src":"11317:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11354:5:53","nodeType":"YulIdentifier","src":"11354:5:53"},{"kind":"number","nativeSrc":"11361:4:53","nodeType":"YulLiteral","src":"11361:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11350:3:53","nodeType":"YulIdentifier","src":"11350:3:53"},"nativeSrc":"11350:16:53","nodeType":"YulFunctionCall","src":"11350:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11407:9:53","nodeType":"YulIdentifier","src":"11407:9:53"},{"name":"offset","nativeSrc":"11418:6:53","nodeType":"YulIdentifier","src":"11418:6:53"}],"functionName":{"name":"add","nativeSrc":"11403:3:53","nodeType":"YulIdentifier","src":"11403:3:53"},"nativeSrc":"11403:22:53","nodeType":"YulFunctionCall","src":"11403:22:53"},{"name":"end","nativeSrc":"11427:3:53","nodeType":"YulIdentifier","src":"11427:3:53"}],"functionName":{"name":"abi_decode_t_enum$_Strategy_$16633","nativeSrc":"11368:34:53","nodeType":"YulIdentifier","src":"11368:34:53"},"nativeSrc":"11368:63:53","nodeType":"YulFunctionCall","src":"11368:63:53"}],"functionName":{"name":"mstore","nativeSrc":"11343:6:53","nodeType":"YulIdentifier","src":"11343:6:53"},"nativeSrc":"11343:89:53","nodeType":"YulFunctionCall","src":"11343:89:53"},"nativeSrc":"11343:89:53","nodeType":"YulExpressionStatement","src":"11343:89:53"}]},{"nativeSrc":"11453:153:53","nodeType":"YulBlock","src":"11453:153:53","statements":[{"nativeSrc":"11490:16:53","nodeType":"YulVariableDeclaration","src":"11490:16:53","value":{"kind":"number","nativeSrc":"11504:2:53","nodeType":"YulLiteral","src":"11504:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11494:6:53","nodeType":"YulTypedName","src":"11494:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11531:5:53","nodeType":"YulIdentifier","src":"11531:5:53"},{"kind":"number","nativeSrc":"11538:4:53","nodeType":"YulLiteral","src":"11538:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11527:3:53","nodeType":"YulIdentifier","src":"11527:3:53"},"nativeSrc":"11527:16:53","nodeType":"YulFunctionCall","src":"11527:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11570:9:53","nodeType":"YulIdentifier","src":"11570:9:53"},{"name":"offset","nativeSrc":"11581:6:53","nodeType":"YulIdentifier","src":"11581:6:53"}],"functionName":{"name":"add","nativeSrc":"11566:3:53","nodeType":"YulIdentifier","src":"11566:3:53"},"nativeSrc":"11566:22:53","nodeType":"YulFunctionCall","src":"11566:22:53"},{"name":"end","nativeSrc":"11590:3:53","nodeType":"YulIdentifier","src":"11590:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11545:20:53","nodeType":"YulIdentifier","src":"11545:20:53"},"nativeSrc":"11545:49:53","nodeType":"YulFunctionCall","src":"11545:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11520:6:53","nodeType":"YulIdentifier","src":"11520:6:53"},"nativeSrc":"11520:75:53","nodeType":"YulFunctionCall","src":"11520:75:53"},"nativeSrc":"11520:75:53","nodeType":"YulExpressionStatement","src":"11520:75:53"}]},{"nativeSrc":"11616:152:53","nodeType":"YulBlock","src":"11616:152:53","statements":[{"nativeSrc":"11652:16:53","nodeType":"YulVariableDeclaration","src":"11652:16:53","value":{"kind":"number","nativeSrc":"11666:2:53","nodeType":"YulLiteral","src":"11666:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11656:6:53","nodeType":"YulTypedName","src":"11656:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11693:5:53","nodeType":"YulIdentifier","src":"11693:5:53"},{"kind":"number","nativeSrc":"11700:4:53","nodeType":"YulLiteral","src":"11700:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11689:3:53","nodeType":"YulIdentifier","src":"11689:3:53"},"nativeSrc":"11689:16:53","nodeType":"YulFunctionCall","src":"11689:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11732:9:53","nodeType":"YulIdentifier","src":"11732:9:53"},{"name":"offset","nativeSrc":"11743:6:53","nodeType":"YulIdentifier","src":"11743:6:53"}],"functionName":{"name":"add","nativeSrc":"11728:3:53","nodeType":"YulIdentifier","src":"11728:3:53"},"nativeSrc":"11728:22:53","nodeType":"YulFunctionCall","src":"11728:22:53"},{"name":"end","nativeSrc":"11752:3:53","nodeType":"YulIdentifier","src":"11752:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11707:20:53","nodeType":"YulIdentifier","src":"11707:20:53"},"nativeSrc":"11707:49:53","nodeType":"YulFunctionCall","src":"11707:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11682:6:53","nodeType":"YulIdentifier","src":"11682:6:53"},"nativeSrc":"11682:75:53","nodeType":"YulFunctionCall","src":"11682:75:53"},"nativeSrc":"11682:75:53","nodeType":"YulExpressionStatement","src":"11682:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$16644_memory_ptr","nativeSrc":"10852:923:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10912:9:53","nodeType":"YulTypedName","src":"10912:9:53","type":""},{"name":"end","nativeSrc":"10923:3:53","nodeType":"YulTypedName","src":"10923:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10931:5:53","nodeType":"YulTypedName","src":"10931:5:53","type":""}],"src":"10852:923:53"},{"body":{"nativeSrc":"11877:294:53","nodeType":"YulBlock","src":"11877:294:53","statements":[{"body":{"nativeSrc":"11924:83:53","nodeType":"YulBlock","src":"11924:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11926:77:53","nodeType":"YulIdentifier","src":"11926:77:53"},"nativeSrc":"11926:79:53","nodeType":"YulFunctionCall","src":"11926:79:53"},"nativeSrc":"11926:79:53","nodeType":"YulExpressionStatement","src":"11926:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11898:7:53","nodeType":"YulIdentifier","src":"11898:7:53"},{"name":"headStart","nativeSrc":"11907:9:53","nodeType":"YulIdentifier","src":"11907:9:53"}],"functionName":{"name":"sub","nativeSrc":"11894:3:53","nodeType":"YulIdentifier","src":"11894:3:53"},"nativeSrc":"11894:23:53","nodeType":"YulFunctionCall","src":"11894:23:53"},{"kind":"number","nativeSrc":"11919:3:53","nodeType":"YulLiteral","src":"11919:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11890:3:53","nodeType":"YulIdentifier","src":"11890:3:53"},"nativeSrc":"11890:33:53","nodeType":"YulFunctionCall","src":"11890:33:53"},"nativeSrc":"11887:120:53","nodeType":"YulIf","src":"11887:120:53"},{"nativeSrc":"12017:147:53","nodeType":"YulBlock","src":"12017:147:53","statements":[{"nativeSrc":"12032:15:53","nodeType":"YulVariableDeclaration","src":"12032:15:53","value":{"kind":"number","nativeSrc":"12046:1:53","nodeType":"YulLiteral","src":"12046:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12036:6:53","nodeType":"YulTypedName","src":"12036:6:53","type":""}]},{"nativeSrc":"12061:93:53","nodeType":"YulAssignment","src":"12061:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12126:9:53","nodeType":"YulIdentifier","src":"12126:9:53"},{"name":"offset","nativeSrc":"12137:6:53","nodeType":"YulIdentifier","src":"12137:6:53"}],"functionName":{"name":"add","nativeSrc":"12122:3:53","nodeType":"YulIdentifier","src":"12122:3:53"},"nativeSrc":"12122:22:53","nodeType":"YulFunctionCall","src":"12122:22:53"},{"name":"dataEnd","nativeSrc":"12146:7:53","nodeType":"YulIdentifier","src":"12146:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$16644_memory_ptr","nativeSrc":"12071:50:53","nodeType":"YulIdentifier","src":"12071:50:53"},"nativeSrc":"12071:83:53","nodeType":"YulFunctionCall","src":"12071:83:53"},"variableNames":[{"name":"value0","nativeSrc":"12061:6:53","nodeType":"YulIdentifier","src":"12061:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$16644_memory_ptr","nativeSrc":"11781:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11847:9:53","nodeType":"YulTypedName","src":"11847:9:53","type":""},{"name":"dataEnd","nativeSrc":"11858:7:53","nodeType":"YulTypedName","src":"11858:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11870:6:53","nodeType":"YulTypedName","src":"11870:6:53","type":""}],"src":"11781:390:53"},{"body":{"nativeSrc":"12225:362:53","nodeType":"YulBlock","src":"12225:362:53","statements":[{"nativeSrc":"12235:25:53","nodeType":"YulAssignment","src":"12235:25:53","value":{"arguments":[{"name":"x","nativeSrc":"12258:1:53","nodeType":"YulIdentifier","src":"12258:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12240:17:53","nodeType":"YulIdentifier","src":"12240:17:53"},"nativeSrc":"12240:20:53","nodeType":"YulFunctionCall","src":"12240:20:53"},"variableNames":[{"name":"x","nativeSrc":"12235:1:53","nodeType":"YulIdentifier","src":"12235:1:53"}]},{"nativeSrc":"12269:25:53","nodeType":"YulAssignment","src":"12269:25:53","value":{"arguments":[{"name":"y","nativeSrc":"12292:1:53","nodeType":"YulIdentifier","src":"12292:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12274:17:53","nodeType":"YulIdentifier","src":"12274:17:53"},"nativeSrc":"12274:20:53","nodeType":"YulFunctionCall","src":"12274:20:53"},"variableNames":[{"name":"y","nativeSrc":"12269:1:53","nodeType":"YulIdentifier","src":"12269:1:53"}]},{"nativeSrc":"12303:28:53","nodeType":"YulVariableDeclaration","src":"12303:28:53","value":{"arguments":[{"name":"x","nativeSrc":"12326:1:53","nodeType":"YulIdentifier","src":"12326:1:53"},{"name":"y","nativeSrc":"12329:1:53","nodeType":"YulIdentifier","src":"12329:1:53"}],"functionName":{"name":"mul","nativeSrc":"12322:3:53","nodeType":"YulIdentifier","src":"12322:3:53"},"nativeSrc":"12322:9:53","nodeType":"YulFunctionCall","src":"12322:9:53"},"variables":[{"name":"product_raw","nativeSrc":"12307:11:53","nodeType":"YulTypedName","src":"12307:11:53","type":""}]},{"nativeSrc":"12340:41:53","nodeType":"YulAssignment","src":"12340:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"12369:11:53","nodeType":"YulIdentifier","src":"12369:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12351:17:53","nodeType":"YulIdentifier","src":"12351:17:53"},"nativeSrc":"12351:30:53","nodeType":"YulFunctionCall","src":"12351:30:53"},"variableNames":[{"name":"product","nativeSrc":"12340:7:53","nodeType":"YulIdentifier","src":"12340:7:53"}]},{"body":{"nativeSrc":"12558:22:53","nodeType":"YulBlock","src":"12558:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12560:16:53","nodeType":"YulIdentifier","src":"12560:16:53"},"nativeSrc":"12560:18:53","nodeType":"YulFunctionCall","src":"12560:18:53"},"nativeSrc":"12560:18:53","nodeType":"YulExpressionStatement","src":"12560:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12491:1:53","nodeType":"YulIdentifier","src":"12491:1:53"}],"functionName":{"name":"iszero","nativeSrc":"12484:6:53","nodeType":"YulIdentifier","src":"12484:6:53"},"nativeSrc":"12484:9:53","nodeType":"YulFunctionCall","src":"12484:9:53"},{"arguments":[{"name":"y","nativeSrc":"12514:1:53","nodeType":"YulIdentifier","src":"12514:1:53"},{"arguments":[{"name":"product","nativeSrc":"12521:7:53","nodeType":"YulIdentifier","src":"12521:7:53"},{"name":"x","nativeSrc":"12530:1:53","nodeType":"YulIdentifier","src":"12530:1:53"}],"functionName":{"name":"div","nativeSrc":"12517:3:53","nodeType":"YulIdentifier","src":"12517:3:53"},"nativeSrc":"12517:15:53","nodeType":"YulFunctionCall","src":"12517:15:53"}],"functionName":{"name":"eq","nativeSrc":"12511:2:53","nodeType":"YulIdentifier","src":"12511:2:53"},"nativeSrc":"12511:22:53","nodeType":"YulFunctionCall","src":"12511:22:53"}],"functionName":{"name":"or","nativeSrc":"12464:2:53","nodeType":"YulIdentifier","src":"12464:2:53"},"nativeSrc":"12464:83:53","nodeType":"YulFunctionCall","src":"12464:83:53"}],"functionName":{"name":"iszero","nativeSrc":"12444:6:53","nodeType":"YulIdentifier","src":"12444:6:53"},"nativeSrc":"12444:113:53","nodeType":"YulFunctionCall","src":"12444:113:53"},"nativeSrc":"12441:139:53","nodeType":"YulIf","src":"12441:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"12177:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12208:1:53","nodeType":"YulTypedName","src":"12208:1:53","type":""},{"name":"y","nativeSrc":"12211:1:53","nodeType":"YulTypedName","src":"12211:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"12217:7:53","nodeType":"YulTypedName","src":"12217:7:53","type":""}],"src":"12177:410:53"},{"body":{"nativeSrc":"12747:288:53","nodeType":"YulBlock","src":"12747:288:53","statements":[{"nativeSrc":"12757:26:53","nodeType":"YulAssignment","src":"12757:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12769:9:53","nodeType":"YulIdentifier","src":"12769:9:53"},{"kind":"number","nativeSrc":"12780:2:53","nodeType":"YulLiteral","src":"12780:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12765:3:53","nodeType":"YulIdentifier","src":"12765:3:53"},"nativeSrc":"12765:18:53","nodeType":"YulFunctionCall","src":"12765:18:53"},"variableNames":[{"name":"tail","nativeSrc":"12757:4:53","nodeType":"YulIdentifier","src":"12757:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12837:6:53","nodeType":"YulIdentifier","src":"12837:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12850:9:53","nodeType":"YulIdentifier","src":"12850:9:53"},{"kind":"number","nativeSrc":"12861:1:53","nodeType":"YulLiteral","src":"12861:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12846:3:53","nodeType":"YulIdentifier","src":"12846:3:53"},"nativeSrc":"12846:17:53","nodeType":"YulFunctionCall","src":"12846:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12793:43:53","nodeType":"YulIdentifier","src":"12793:43:53"},"nativeSrc":"12793:71:53","nodeType":"YulFunctionCall","src":"12793:71:53"},"nativeSrc":"12793:71:53","nodeType":"YulExpressionStatement","src":"12793:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12918:6:53","nodeType":"YulIdentifier","src":"12918:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12931:9:53","nodeType":"YulIdentifier","src":"12931:9:53"},{"kind":"number","nativeSrc":"12942:2:53","nodeType":"YulLiteral","src":"12942:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12927:3:53","nodeType":"YulIdentifier","src":"12927:3:53"},"nativeSrc":"12927:18:53","nodeType":"YulFunctionCall","src":"12927:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12874:43:53","nodeType":"YulIdentifier","src":"12874:43:53"},"nativeSrc":"12874:72:53","nodeType":"YulFunctionCall","src":"12874:72:53"},"nativeSrc":"12874:72:53","nodeType":"YulExpressionStatement","src":"12874:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"13000:6:53","nodeType":"YulIdentifier","src":"13000:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13013:9:53","nodeType":"YulIdentifier","src":"13013:9:53"},{"kind":"number","nativeSrc":"13024:2:53","nodeType":"YulLiteral","src":"13024:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13009:3:53","nodeType":"YulIdentifier","src":"13009:3:53"},"nativeSrc":"13009:18:53","nodeType":"YulFunctionCall","src":"13009:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12956:43:53","nodeType":"YulIdentifier","src":"12956:43:53"},"nativeSrc":"12956:72:53","nodeType":"YulFunctionCall","src":"12956:72:53"},"nativeSrc":"12956:72:53","nodeType":"YulExpressionStatement","src":"12956:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12593:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12703:9:53","nodeType":"YulTypedName","src":"12703:9:53","type":""},{"name":"value2","nativeSrc":"12715:6:53","nodeType":"YulTypedName","src":"12715:6:53","type":""},{"name":"value1","nativeSrc":"12723:6:53","nodeType":"YulTypedName","src":"12723:6:53","type":""},{"name":"value0","nativeSrc":"12731:6:53","nodeType":"YulTypedName","src":"12731:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12742:4:53","nodeType":"YulTypedName","src":"12742:4:53","type":""}],"src":"12593:442:53"},{"body":{"nativeSrc":"13096:53:53","nodeType":"YulBlock","src":"13096:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13113:3:53","nodeType":"YulIdentifier","src":"13113:3:53"},{"arguments":[{"name":"value","nativeSrc":"13136:5:53","nodeType":"YulIdentifier","src":"13136:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13118:17:53","nodeType":"YulIdentifier","src":"13118:17:53"},"nativeSrc":"13118:24:53","nodeType":"YulFunctionCall","src":"13118:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13106:6:53","nodeType":"YulIdentifier","src":"13106:6:53"},"nativeSrc":"13106:37:53","nodeType":"YulFunctionCall","src":"13106:37:53"},"nativeSrc":"13106:37:53","nodeType":"YulExpressionStatement","src":"13106:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13041:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13084:5:53","nodeType":"YulTypedName","src":"13084:5:53","type":""},{"name":"pos","nativeSrc":"13091:3:53","nodeType":"YulTypedName","src":"13091:3:53","type":""}],"src":"13041:108:53"},{"body":{"nativeSrc":"13359:219:53","nodeType":"YulBlock","src":"13359:219:53","statements":[{"nativeSrc":"13369:26:53","nodeType":"YulVariableDeclaration","src":"13369:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"13385:3:53","nodeType":"YulIdentifier","src":"13385:3:53"},{"kind":"number","nativeSrc":"13390:4:53","nodeType":"YulLiteral","src":"13390:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13381:3:53","nodeType":"YulIdentifier","src":"13381:3:53"},"nativeSrc":"13381:14:53","nodeType":"YulFunctionCall","src":"13381:14:53"},"variables":[{"name":"tail","nativeSrc":"13373:4:53","nodeType":"YulTypedName","src":"13373:4:53","type":""}]},{"nativeSrc":"13405:166:53","nodeType":"YulBlock","src":"13405:166:53","statements":[{"nativeSrc":"13442:43:53","nodeType":"YulVariableDeclaration","src":"13442:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13472:5:53","nodeType":"YulIdentifier","src":"13472:5:53"},{"kind":"number","nativeSrc":"13479:4:53","nodeType":"YulLiteral","src":"13479:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13468:3:53","nodeType":"YulIdentifier","src":"13468:3:53"},"nativeSrc":"13468:16:53","nodeType":"YulFunctionCall","src":"13468:16:53"}],"functionName":{"name":"mload","nativeSrc":"13462:5:53","nodeType":"YulIdentifier","src":"13462:5:53"},"nativeSrc":"13462:23:53","nodeType":"YulFunctionCall","src":"13462:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13446:12:53","nodeType":"YulTypedName","src":"13446:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13532:12:53","nodeType":"YulIdentifier","src":"13532:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13550:3:53","nodeType":"YulIdentifier","src":"13550:3:53"},{"kind":"number","nativeSrc":"13555:4:53","nodeType":"YulLiteral","src":"13555:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13546:3:53","nodeType":"YulIdentifier","src":"13546:3:53"},"nativeSrc":"13546:14:53","nodeType":"YulFunctionCall","src":"13546:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13498:33:53","nodeType":"YulIdentifier","src":"13498:33:53"},"nativeSrc":"13498:63:53","nodeType":"YulFunctionCall","src":"13498:63:53"},"nativeSrc":"13498:63:53","nodeType":"YulExpressionStatement","src":"13498:63:53"}]}]},"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"13225:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13346:5:53","nodeType":"YulTypedName","src":"13346:5:53","type":""},{"name":"pos","nativeSrc":"13353:3:53","nodeType":"YulTypedName","src":"13353:3:53","type":""}],"src":"13225:353:53"},{"body":{"nativeSrc":"13750:192:53","nodeType":"YulBlock","src":"13750:192:53","statements":[{"nativeSrc":"13760:26:53","nodeType":"YulAssignment","src":"13760:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13772:9:53","nodeType":"YulIdentifier","src":"13772:9:53"},{"kind":"number","nativeSrc":"13783:2:53","nodeType":"YulLiteral","src":"13783:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13768:3:53","nodeType":"YulIdentifier","src":"13768:3:53"},"nativeSrc":"13768:18:53","nodeType":"YulFunctionCall","src":"13768:18:53"},"variableNames":[{"name":"tail","nativeSrc":"13760:4:53","nodeType":"YulIdentifier","src":"13760:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13908:6:53","nodeType":"YulIdentifier","src":"13908:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13921:9:53","nodeType":"YulIdentifier","src":"13921:9:53"},{"kind":"number","nativeSrc":"13932:1:53","nodeType":"YulLiteral","src":"13932:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13917:3:53","nodeType":"YulIdentifier","src":"13917:3:53"},"nativeSrc":"13917:17:53","nodeType":"YulFunctionCall","src":"13917:17:53"}],"functionName":{"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"13796:111:53","nodeType":"YulIdentifier","src":"13796:111:53"},"nativeSrc":"13796:139:53","nodeType":"YulFunctionCall","src":"13796:139:53"},"nativeSrc":"13796:139:53","nodeType":"YulExpressionStatement","src":"13796:139:53"}]},"name":"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed","nativeSrc":"13584:358:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13722:9:53","nodeType":"YulTypedName","src":"13722:9:53","type":""},{"name":"value0","nativeSrc":"13734:6:53","nodeType":"YulTypedName","src":"13734:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13745:4:53","nodeType":"YulTypedName","src":"13745:4:53","type":""}],"src":"13584:358:53"},{"body":{"nativeSrc":"14006:62:53","nodeType":"YulBlock","src":"14006:62:53","statements":[{"body":{"nativeSrc":"14040:22:53","nodeType":"YulBlock","src":"14040:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"14042:16:53","nodeType":"YulIdentifier","src":"14042:16:53"},"nativeSrc":"14042:18:53","nodeType":"YulFunctionCall","src":"14042:18:53"},"nativeSrc":"14042:18:53","nodeType":"YulExpressionStatement","src":"14042:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14029:5:53","nodeType":"YulIdentifier","src":"14029:5:53"},{"kind":"number","nativeSrc":"14036:1:53","nodeType":"YulLiteral","src":"14036:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"14026:2:53","nodeType":"YulIdentifier","src":"14026:2:53"},"nativeSrc":"14026:12:53","nodeType":"YulFunctionCall","src":"14026:12:53"}],"functionName":{"name":"iszero","nativeSrc":"14019:6:53","nodeType":"YulIdentifier","src":"14019:6:53"},"nativeSrc":"14019:20:53","nodeType":"YulFunctionCall","src":"14019:20:53"},"nativeSrc":"14016:46:53","nodeType":"YulIf","src":"14016:46:53"}]},"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"13948:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13999:5:53","nodeType":"YulTypedName","src":"13999:5:53","type":""}],"src":"13948:120:53"},{"body":{"nativeSrc":"14134:81:53","nodeType":"YulBlock","src":"14134:81:53","statements":[{"nativeSrc":"14144:16:53","nodeType":"YulAssignment","src":"14144:16:53","value":{"name":"value","nativeSrc":"14155:5:53","nodeType":"YulIdentifier","src":"14155:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"14144:7:53","nodeType":"YulIdentifier","src":"14144:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14203:5:53","nodeType":"YulIdentifier","src":"14203:5:53"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"14161:41:53","nodeType":"YulIdentifier","src":"14161:41:53"},"nativeSrc":"14161:48:53","nodeType":"YulFunctionCall","src":"14161:48:53"},"nativeSrc":"14161:48:53","nodeType":"YulExpressionStatement","src":"14161:48:53"}]},"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"14074:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14116:5:53","nodeType":"YulTypedName","src":"14116:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14126:7:53","nodeType":"YulTypedName","src":"14126:7:53","type":""}],"src":"14074:141:53"},{"body":{"nativeSrc":"14294:68:53","nodeType":"YulBlock","src":"14294:68:53","statements":[{"nativeSrc":"14304:52:53","nodeType":"YulAssignment","src":"14304:52:53","value":{"arguments":[{"name":"value","nativeSrc":"14350:5:53","nodeType":"YulIdentifier","src":"14350:5:53"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"14317:32:53","nodeType":"YulIdentifier","src":"14317:32:53"},"nativeSrc":"14317:39:53","nodeType":"YulFunctionCall","src":"14317:39:53"},"variableNames":[{"name":"converted","nativeSrc":"14304:9:53","nodeType":"YulIdentifier","src":"14304:9:53"}]}]},"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"14221:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14274:5:53","nodeType":"YulTypedName","src":"14274:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"14284:9:53","nodeType":"YulTypedName","src":"14284:9:53","type":""}],"src":"14221:141:53"},{"body":{"nativeSrc":"14436:79:53","nodeType":"YulBlock","src":"14436:79:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14453:3:53","nodeType":"YulIdentifier","src":"14453:3:53"},{"arguments":[{"name":"value","nativeSrc":"14502:5:53","nodeType":"YulIdentifier","src":"14502:5:53"}],"functionName":{"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"14458:43:53","nodeType":"YulIdentifier","src":"14458:43:53"},"nativeSrc":"14458:50:53","nodeType":"YulFunctionCall","src":"14458:50:53"}],"functionName":{"name":"mstore","nativeSrc":"14446:6:53","nodeType":"YulIdentifier","src":"14446:6:53"},"nativeSrc":"14446:63:53","nodeType":"YulFunctionCall","src":"14446:63:53"},"nativeSrc":"14446:63:53","nodeType":"YulExpressionStatement","src":"14446:63:53"}]},"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"14368:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14424:5:53","nodeType":"YulTypedName","src":"14424:5:53","type":""},{"name":"pos","nativeSrc":"14431:3:53","nodeType":"YulTypedName","src":"14431:3:53","type":""}],"src":"14368:147:53"},{"body":{"nativeSrc":"14576:53:53","nodeType":"YulBlock","src":"14576:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14593:3:53","nodeType":"YulIdentifier","src":"14593:3:53"},{"arguments":[{"name":"value","nativeSrc":"14616:5:53","nodeType":"YulIdentifier","src":"14616:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"14598:17:53","nodeType":"YulIdentifier","src":"14598:17:53"},"nativeSrc":"14598:24:53","nodeType":"YulFunctionCall","src":"14598:24:53"}],"functionName":{"name":"mstore","nativeSrc":"14586:6:53","nodeType":"YulIdentifier","src":"14586:6:53"},"nativeSrc":"14586:37:53","nodeType":"YulFunctionCall","src":"14586:37:53"},"nativeSrc":"14586:37:53","nodeType":"YulExpressionStatement","src":"14586:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"14521:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14564:5:53","nodeType":"YulTypedName","src":"14564:5:53","type":""},{"name":"pos","nativeSrc":"14571:3:53","nodeType":"YulTypedName","src":"14571:3:53","type":""}],"src":"14521:108:53"},{"body":{"nativeSrc":"14720:73:53","nodeType":"YulBlock","src":"14720:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14737:3:53","nodeType":"YulIdentifier","src":"14737:3:53"},{"name":"length","nativeSrc":"14742:6:53","nodeType":"YulIdentifier","src":"14742:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14730:6:53","nodeType":"YulIdentifier","src":"14730:6:53"},"nativeSrc":"14730:19:53","nodeType":"YulFunctionCall","src":"14730:19:53"},"nativeSrc":"14730:19:53","nodeType":"YulExpressionStatement","src":"14730:19:53"},{"nativeSrc":"14758:29:53","nodeType":"YulAssignment","src":"14758:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"14777:3:53","nodeType":"YulIdentifier","src":"14777:3:53"},{"kind":"number","nativeSrc":"14782:4:53","nodeType":"YulLiteral","src":"14782:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14773:3:53","nodeType":"YulIdentifier","src":"14773:3:53"},"nativeSrc":"14773:14:53","nodeType":"YulFunctionCall","src":"14773:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"14758:11:53","nodeType":"YulIdentifier","src":"14758:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"14635:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14692:3:53","nodeType":"YulTypedName","src":"14692:3:53","type":""},{"name":"length","nativeSrc":"14697:6:53","nodeType":"YulTypedName","src":"14697:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14708:11:53","nodeType":"YulTypedName","src":"14708:11:53","type":""}],"src":"14635:158:53"},{"body":{"nativeSrc":"14879:273:53","nodeType":"YulBlock","src":"14879:273:53","statements":[{"nativeSrc":"14889:52:53","nodeType":"YulVariableDeclaration","src":"14889:52:53","value":{"arguments":[{"name":"value","nativeSrc":"14935:5:53","nodeType":"YulIdentifier","src":"14935:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"14903:31:53","nodeType":"YulIdentifier","src":"14903:31:53"},"nativeSrc":"14903:38:53","nodeType":"YulFunctionCall","src":"14903:38:53"},"variables":[{"name":"length","nativeSrc":"14893:6:53","nodeType":"YulTypedName","src":"14893:6:53","type":""}]},{"nativeSrc":"14950:67:53","nodeType":"YulAssignment","src":"14950:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"15005:3:53","nodeType":"YulIdentifier","src":"15005:3:53"},{"name":"length","nativeSrc":"15010:6:53","nodeType":"YulIdentifier","src":"15010:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"14957:47:53","nodeType":"YulIdentifier","src":"14957:47:53"},"nativeSrc":"14957:60:53","nodeType":"YulFunctionCall","src":"14957:60:53"},"variableNames":[{"name":"pos","nativeSrc":"14950:3:53","nodeType":"YulIdentifier","src":"14950:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15065:5:53","nodeType":"YulIdentifier","src":"15065:5:53"},{"kind":"number","nativeSrc":"15072:4:53","nodeType":"YulLiteral","src":"15072:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15061:3:53","nodeType":"YulIdentifier","src":"15061:3:53"},"nativeSrc":"15061:16:53","nodeType":"YulFunctionCall","src":"15061:16:53"},{"name":"pos","nativeSrc":"15079:3:53","nodeType":"YulIdentifier","src":"15079:3:53"},{"name":"length","nativeSrc":"15084:6:53","nodeType":"YulIdentifier","src":"15084:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15026:34:53","nodeType":"YulIdentifier","src":"15026:34:53"},"nativeSrc":"15026:65:53","nodeType":"YulFunctionCall","src":"15026:65:53"},"nativeSrc":"15026:65:53","nodeType":"YulExpressionStatement","src":"15026:65:53"},{"nativeSrc":"15100:46:53","nodeType":"YulAssignment","src":"15100:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"15111:3:53","nodeType":"YulIdentifier","src":"15111:3:53"},{"arguments":[{"name":"length","nativeSrc":"15138:6:53","nodeType":"YulIdentifier","src":"15138:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15116:21:53","nodeType":"YulIdentifier","src":"15116:21:53"},"nativeSrc":"15116:29:53","nodeType":"YulFunctionCall","src":"15116:29:53"}],"functionName":{"name":"add","nativeSrc":"15107:3:53","nodeType":"YulIdentifier","src":"15107:3:53"},"nativeSrc":"15107:39:53","nodeType":"YulFunctionCall","src":"15107:39:53"},"variableNames":[{"name":"end","nativeSrc":"15100:3:53","nodeType":"YulIdentifier","src":"15100:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"14799:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14860:5:53","nodeType":"YulTypedName","src":"14860:5:53","type":""},{"name":"pos","nativeSrc":"14867:3:53","nodeType":"YulTypedName","src":"14867:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14875:3:53","nodeType":"YulTypedName","src":"14875:3:53","type":""}],"src":"14799:353:53"},{"body":{"nativeSrc":"15342:849:53","nodeType":"YulBlock","src":"15342:849:53","statements":[{"nativeSrc":"15352:26:53","nodeType":"YulVariableDeclaration","src":"15352:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"15368:3:53","nodeType":"YulIdentifier","src":"15368:3:53"},{"kind":"number","nativeSrc":"15373:4:53","nodeType":"YulLiteral","src":"15373:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15364:3:53","nodeType":"YulIdentifier","src":"15364:3:53"},"nativeSrc":"15364:14:53","nodeType":"YulFunctionCall","src":"15364:14:53"},"variables":[{"name":"tail","nativeSrc":"15356:4:53","nodeType":"YulTypedName","src":"15356:4:53","type":""}]},{"nativeSrc":"15388:182:53","nodeType":"YulBlock","src":"15388:182:53","statements":[{"nativeSrc":"15428:43:53","nodeType":"YulVariableDeclaration","src":"15428:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15458:5:53","nodeType":"YulIdentifier","src":"15458:5:53"},{"kind":"number","nativeSrc":"15465:4:53","nodeType":"YulLiteral","src":"15465:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15454:3:53","nodeType":"YulIdentifier","src":"15454:3:53"},"nativeSrc":"15454:16:53","nodeType":"YulFunctionCall","src":"15454:16:53"}],"functionName":{"name":"mload","nativeSrc":"15448:5:53","nodeType":"YulIdentifier","src":"15448:5:53"},"nativeSrc":"15448:23:53","nodeType":"YulFunctionCall","src":"15448:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15432:12:53","nodeType":"YulTypedName","src":"15432:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"15531:12:53","nodeType":"YulIdentifier","src":"15531:12:53"},{"arguments":[{"name":"pos","nativeSrc":"15549:3:53","nodeType":"YulIdentifier","src":"15549:3:53"},{"kind":"number","nativeSrc":"15554:4:53","nodeType":"YulLiteral","src":"15554:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15545:3:53","nodeType":"YulIdentifier","src":"15545:3:53"},"nativeSrc":"15545:14:53","nodeType":"YulFunctionCall","src":"15545:14:53"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"15484:46:53","nodeType":"YulIdentifier","src":"15484:46:53"},"nativeSrc":"15484:76:53","nodeType":"YulFunctionCall","src":"15484:76:53"},"nativeSrc":"15484:76:53","nodeType":"YulExpressionStatement","src":"15484:76:53"}]},{"nativeSrc":"15580:165:53","nodeType":"YulBlock","src":"15580:165:53","statements":[{"nativeSrc":"15616:43:53","nodeType":"YulVariableDeclaration","src":"15616:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15646:5:53","nodeType":"YulIdentifier","src":"15646:5:53"},{"kind":"number","nativeSrc":"15653:4:53","nodeType":"YulLiteral","src":"15653:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15642:3:53","nodeType":"YulIdentifier","src":"15642:3:53"},"nativeSrc":"15642:16:53","nodeType":"YulFunctionCall","src":"15642:16:53"}],"functionName":{"name":"mload","nativeSrc":"15636:5:53","nodeType":"YulIdentifier","src":"15636:5:53"},"nativeSrc":"15636:23:53","nodeType":"YulFunctionCall","src":"15636:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15620:12:53","nodeType":"YulTypedName","src":"15620:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"15706:12:53","nodeType":"YulIdentifier","src":"15706:12:53"},{"arguments":[{"name":"pos","nativeSrc":"15724:3:53","nodeType":"YulIdentifier","src":"15724:3:53"},{"kind":"number","nativeSrc":"15729:4:53","nodeType":"YulLiteral","src":"15729:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15720:3:53","nodeType":"YulIdentifier","src":"15720:3:53"},"nativeSrc":"15720:14:53","nodeType":"YulFunctionCall","src":"15720:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"15672:33:53","nodeType":"YulIdentifier","src":"15672:33:53"},"nativeSrc":"15672:63:53","nodeType":"YulFunctionCall","src":"15672:63:53"},"nativeSrc":"15672:63:53","nodeType":"YulExpressionStatement","src":"15672:63:53"}]},{"nativeSrc":"15755:166:53","nodeType":"YulBlock","src":"15755:166:53","statements":[{"nativeSrc":"15792:43:53","nodeType":"YulVariableDeclaration","src":"15792:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15822:5:53","nodeType":"YulIdentifier","src":"15822:5:53"},{"kind":"number","nativeSrc":"15829:4:53","nodeType":"YulLiteral","src":"15829:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15818:3:53","nodeType":"YulIdentifier","src":"15818:3:53"},"nativeSrc":"15818:16:53","nodeType":"YulFunctionCall","src":"15818:16:53"}],"functionName":{"name":"mload","nativeSrc":"15812:5:53","nodeType":"YulIdentifier","src":"15812:5:53"},"nativeSrc":"15812:23:53","nodeType":"YulFunctionCall","src":"15812:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15796:12:53","nodeType":"YulTypedName","src":"15796:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"15882:12:53","nodeType":"YulIdentifier","src":"15882:12:53"},{"arguments":[{"name":"pos","nativeSrc":"15900:3:53","nodeType":"YulIdentifier","src":"15900:3:53"},{"kind":"number","nativeSrc":"15905:4:53","nodeType":"YulLiteral","src":"15905:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15896:3:53","nodeType":"YulIdentifier","src":"15896:3:53"},"nativeSrc":"15896:14:53","nodeType":"YulFunctionCall","src":"15896:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"15848:33:53","nodeType":"YulIdentifier","src":"15848:33:53"},"nativeSrc":"15848:63:53","nodeType":"YulFunctionCall","src":"15848:63:53"},"nativeSrc":"15848:63:53","nodeType":"YulExpressionStatement","src":"15848:63:53"}]},{"nativeSrc":"15931:233:53","nodeType":"YulBlock","src":"15931:233:53","statements":[{"nativeSrc":"15966:43:53","nodeType":"YulVariableDeclaration","src":"15966:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15996:5:53","nodeType":"YulIdentifier","src":"15996:5:53"},{"kind":"number","nativeSrc":"16003:4:53","nodeType":"YulLiteral","src":"16003:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15992:3:53","nodeType":"YulIdentifier","src":"15992:3:53"},"nativeSrc":"15992:16:53","nodeType":"YulFunctionCall","src":"15992:16:53"}],"functionName":{"name":"mload","nativeSrc":"15986:5:53","nodeType":"YulIdentifier","src":"15986:5:53"},"nativeSrc":"15986:23:53","nodeType":"YulFunctionCall","src":"15986:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15970:12:53","nodeType":"YulTypedName","src":"15970:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16034:3:53","nodeType":"YulIdentifier","src":"16034:3:53"},{"kind":"number","nativeSrc":"16039:4:53","nodeType":"YulLiteral","src":"16039:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16030:3:53","nodeType":"YulIdentifier","src":"16030:3:53"},"nativeSrc":"16030:14:53","nodeType":"YulFunctionCall","src":"16030:14:53"},{"arguments":[{"name":"tail","nativeSrc":"16050:4:53","nodeType":"YulIdentifier","src":"16050:4:53"},{"name":"pos","nativeSrc":"16056:3:53","nodeType":"YulIdentifier","src":"16056:3:53"}],"functionName":{"name":"sub","nativeSrc":"16046:3:53","nodeType":"YulIdentifier","src":"16046:3:53"},"nativeSrc":"16046:14:53","nodeType":"YulFunctionCall","src":"16046:14:53"}],"functionName":{"name":"mstore","nativeSrc":"16023:6:53","nodeType":"YulIdentifier","src":"16023:6:53"},"nativeSrc":"16023:38:53","nodeType":"YulFunctionCall","src":"16023:38:53"},"nativeSrc":"16023:38:53","nodeType":"YulExpressionStatement","src":"16023:38:53"},{"nativeSrc":"16074:79:53","nodeType":"YulAssignment","src":"16074:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"16134:12:53","nodeType":"YulIdentifier","src":"16134:12:53"},{"name":"tail","nativeSrc":"16148:4:53","nodeType":"YulIdentifier","src":"16148:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"16082:51:53","nodeType":"YulIdentifier","src":"16082:51:53"},"nativeSrc":"16082:71:53","nodeType":"YulFunctionCall","src":"16082:71:53"},"variableNames":[{"name":"tail","nativeSrc":"16074:4:53","nodeType":"YulIdentifier","src":"16074:4:53"}]}]},{"nativeSrc":"16174:11:53","nodeType":"YulAssignment","src":"16174:11:53","value":{"name":"tail","nativeSrc":"16181:4:53","nodeType":"YulIdentifier","src":"16181:4:53"},"variableNames":[{"name":"end","nativeSrc":"16174:3:53","nodeType":"YulIdentifier","src":"16174:3:53"}]}]},"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"15214:977:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15321:5:53","nodeType":"YulTypedName","src":"15321:5:53","type":""},{"name":"pos","nativeSrc":"15328:3:53","nodeType":"YulTypedName","src":"15328:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15337:3:53","nodeType":"YulTypedName","src":"15337:3:53","type":""}],"src":"15214:977:53"},{"body":{"nativeSrc":"16349:229:53","nodeType":"YulBlock","src":"16349:229:53","statements":[{"nativeSrc":"16359:26:53","nodeType":"YulAssignment","src":"16359:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16371:9:53","nodeType":"YulIdentifier","src":"16371:9:53"},{"kind":"number","nativeSrc":"16382:2:53","nodeType":"YulLiteral","src":"16382:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16367:3:53","nodeType":"YulIdentifier","src":"16367:3:53"},"nativeSrc":"16367:18:53","nodeType":"YulFunctionCall","src":"16367:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16359:4:53","nodeType":"YulIdentifier","src":"16359:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16406:9:53","nodeType":"YulIdentifier","src":"16406:9:53"},{"kind":"number","nativeSrc":"16417:1:53","nodeType":"YulLiteral","src":"16417:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16402:3:53","nodeType":"YulIdentifier","src":"16402:3:53"},"nativeSrc":"16402:17:53","nodeType":"YulFunctionCall","src":"16402:17:53"},{"arguments":[{"name":"tail","nativeSrc":"16425:4:53","nodeType":"YulIdentifier","src":"16425:4:53"},{"name":"headStart","nativeSrc":"16431:9:53","nodeType":"YulIdentifier","src":"16431:9:53"}],"functionName":{"name":"sub","nativeSrc":"16421:3:53","nodeType":"YulIdentifier","src":"16421:3:53"},"nativeSrc":"16421:20:53","nodeType":"YulFunctionCall","src":"16421:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16395:6:53","nodeType":"YulIdentifier","src":"16395:6:53"},"nativeSrc":"16395:47:53","nodeType":"YulFunctionCall","src":"16395:47:53"},"nativeSrc":"16395:47:53","nodeType":"YulExpressionStatement","src":"16395:47:53"},{"nativeSrc":"16451:120:53","nodeType":"YulAssignment","src":"16451:120:53","value":{"arguments":[{"name":"value0","nativeSrc":"16557:6:53","nodeType":"YulIdentifier","src":"16557:6:53"},{"name":"tail","nativeSrc":"16566:4:53","nodeType":"YulIdentifier","src":"16566:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"16459:97:53","nodeType":"YulIdentifier","src":"16459:97:53"},"nativeSrc":"16459:112:53","nodeType":"YulFunctionCall","src":"16459:112:53"},"variableNames":[{"name":"tail","nativeSrc":"16451:4:53","nodeType":"YulIdentifier","src":"16451:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed","nativeSrc":"16197:381:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16321:9:53","nodeType":"YulTypedName","src":"16321:9:53","type":""},{"name":"value0","nativeSrc":"16333:6:53","nodeType":"YulTypedName","src":"16333:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16344:4:53","nodeType":"YulTypedName","src":"16344:4:53","type":""}],"src":"16197:381:53"},{"body":{"nativeSrc":"16673:28:53","nodeType":"YulBlock","src":"16673:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16690:1:53","nodeType":"YulLiteral","src":"16690:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"16693:1:53","nodeType":"YulLiteral","src":"16693:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16683:6:53","nodeType":"YulIdentifier","src":"16683:6:53"},"nativeSrc":"16683:12:53","nodeType":"YulFunctionCall","src":"16683:12:53"},"nativeSrc":"16683:12:53","nodeType":"YulExpressionStatement","src":"16683:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"16584:117:53","nodeType":"YulFunctionDefinition","src":"16584:117:53"},{"body":{"nativeSrc":"16773:241:53","nodeType":"YulBlock","src":"16773:241:53","statements":[{"body":{"nativeSrc":"16878:22:53","nodeType":"YulBlock","src":"16878:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"16880:16:53","nodeType":"YulIdentifier","src":"16880:16:53"},"nativeSrc":"16880:18:53","nodeType":"YulFunctionCall","src":"16880:18:53"},"nativeSrc":"16880:18:53","nodeType":"YulExpressionStatement","src":"16880:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"16850:6:53","nodeType":"YulIdentifier","src":"16850:6:53"},{"kind":"number","nativeSrc":"16858:18:53","nodeType":"YulLiteral","src":"16858:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16847:2:53","nodeType":"YulIdentifier","src":"16847:2:53"},"nativeSrc":"16847:30:53","nodeType":"YulFunctionCall","src":"16847:30:53"},"nativeSrc":"16844:56:53","nodeType":"YulIf","src":"16844:56:53"},{"nativeSrc":"16910:37:53","nodeType":"YulAssignment","src":"16910:37:53","value":{"arguments":[{"name":"length","nativeSrc":"16940:6:53","nodeType":"YulIdentifier","src":"16940:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"16918:21:53","nodeType":"YulIdentifier","src":"16918:21:53"},"nativeSrc":"16918:29:53","nodeType":"YulFunctionCall","src":"16918:29:53"},"variableNames":[{"name":"size","nativeSrc":"16910:4:53","nodeType":"YulIdentifier","src":"16910:4:53"}]},{"nativeSrc":"16984:23:53","nodeType":"YulAssignment","src":"16984:23:53","value":{"arguments":[{"name":"size","nativeSrc":"16996:4:53","nodeType":"YulIdentifier","src":"16996:4:53"},{"kind":"number","nativeSrc":"17002:4:53","nodeType":"YulLiteral","src":"17002:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16992:3:53","nodeType":"YulIdentifier","src":"16992:3:53"},"nativeSrc":"16992:15:53","nodeType":"YulFunctionCall","src":"16992:15:53"},"variableNames":[{"name":"size","nativeSrc":"16984:4:53","nodeType":"YulIdentifier","src":"16984:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"16707:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"16757:6:53","nodeType":"YulTypedName","src":"16757:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"16768:4:53","nodeType":"YulTypedName","src":"16768:4:53","type":""}],"src":"16707:307:53"},{"body":{"nativeSrc":"17084:84:53","nodeType":"YulBlock","src":"17084:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"17108:3:53","nodeType":"YulIdentifier","src":"17108:3:53"},{"name":"src","nativeSrc":"17113:3:53","nodeType":"YulIdentifier","src":"17113:3:53"},{"name":"length","nativeSrc":"17118:6:53","nodeType":"YulIdentifier","src":"17118:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"17095:12:53","nodeType":"YulIdentifier","src":"17095:12:53"},"nativeSrc":"17095:30:53","nodeType":"YulFunctionCall","src":"17095:30:53"},"nativeSrc":"17095:30:53","nodeType":"YulExpressionStatement","src":"17095:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17145:3:53","nodeType":"YulIdentifier","src":"17145:3:53"},{"name":"length","nativeSrc":"17150:6:53","nodeType":"YulIdentifier","src":"17150:6:53"}],"functionName":{"name":"add","nativeSrc":"17141:3:53","nodeType":"YulIdentifier","src":"17141:3:53"},"nativeSrc":"17141:16:53","nodeType":"YulFunctionCall","src":"17141:16:53"},{"kind":"number","nativeSrc":"17159:1:53","nodeType":"YulLiteral","src":"17159:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17134:6:53","nodeType":"YulIdentifier","src":"17134:6:53"},"nativeSrc":"17134:27:53","nodeType":"YulFunctionCall","src":"17134:27:53"},"nativeSrc":"17134:27:53","nodeType":"YulExpressionStatement","src":"17134:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17020:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17066:3:53","nodeType":"YulTypedName","src":"17066:3:53","type":""},{"name":"dst","nativeSrc":"17071:3:53","nodeType":"YulTypedName","src":"17071:3:53","type":""},{"name":"length","nativeSrc":"17076:6:53","nodeType":"YulTypedName","src":"17076:6:53","type":""}],"src":"17020:148:53"},{"body":{"nativeSrc":"17257:340:53","nodeType":"YulBlock","src":"17257:340:53","statements":[{"nativeSrc":"17267:74:53","nodeType":"YulAssignment","src":"17267:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17333:6:53","nodeType":"YulIdentifier","src":"17333:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17292:40:53","nodeType":"YulIdentifier","src":"17292:40:53"},"nativeSrc":"17292:48:53","nodeType":"YulFunctionCall","src":"17292:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"17276:15:53","nodeType":"YulIdentifier","src":"17276:15:53"},"nativeSrc":"17276:65:53","nodeType":"YulFunctionCall","src":"17276:65:53"},"variableNames":[{"name":"array","nativeSrc":"17267:5:53","nodeType":"YulIdentifier","src":"17267:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"17357:5:53","nodeType":"YulIdentifier","src":"17357:5:53"},{"name":"length","nativeSrc":"17364:6:53","nodeType":"YulIdentifier","src":"17364:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17350:6:53","nodeType":"YulIdentifier","src":"17350:6:53"},"nativeSrc":"17350:21:53","nodeType":"YulFunctionCall","src":"17350:21:53"},"nativeSrc":"17350:21:53","nodeType":"YulExpressionStatement","src":"17350:21:53"},{"nativeSrc":"17380:27:53","nodeType":"YulVariableDeclaration","src":"17380:27:53","value":{"arguments":[{"name":"array","nativeSrc":"17395:5:53","nodeType":"YulIdentifier","src":"17395:5:53"},{"kind":"number","nativeSrc":"17402:4:53","nodeType":"YulLiteral","src":"17402:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17391:3:53","nodeType":"YulIdentifier","src":"17391:3:53"},"nativeSrc":"17391:16:53","nodeType":"YulFunctionCall","src":"17391:16:53"},"variables":[{"name":"dst","nativeSrc":"17384:3:53","nodeType":"YulTypedName","src":"17384:3:53","type":""}]},{"body":{"nativeSrc":"17445:83:53","nodeType":"YulBlock","src":"17445:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"17447:77:53","nodeType":"YulIdentifier","src":"17447:77:53"},"nativeSrc":"17447:79:53","nodeType":"YulFunctionCall","src":"17447:79:53"},"nativeSrc":"17447:79:53","nodeType":"YulExpressionStatement","src":"17447:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17426:3:53","nodeType":"YulIdentifier","src":"17426:3:53"},{"name":"length","nativeSrc":"17431:6:53","nodeType":"YulIdentifier","src":"17431:6:53"}],"functionName":{"name":"add","nativeSrc":"17422:3:53","nodeType":"YulIdentifier","src":"17422:3:53"},"nativeSrc":"17422:16:53","nodeType":"YulFunctionCall","src":"17422:16:53"},{"name":"end","nativeSrc":"17440:3:53","nodeType":"YulIdentifier","src":"17440:3:53"}],"functionName":{"name":"gt","nativeSrc":"17419:2:53","nodeType":"YulIdentifier","src":"17419:2:53"},"nativeSrc":"17419:25:53","nodeType":"YulFunctionCall","src":"17419:25:53"},"nativeSrc":"17416:112:53","nodeType":"YulIf","src":"17416:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"17574:3:53","nodeType":"YulIdentifier","src":"17574:3:53"},{"name":"dst","nativeSrc":"17579:3:53","nodeType":"YulIdentifier","src":"17579:3:53"},{"name":"length","nativeSrc":"17584:6:53","nodeType":"YulIdentifier","src":"17584:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17537:36:53","nodeType":"YulIdentifier","src":"17537:36:53"},"nativeSrc":"17537:54:53","nodeType":"YulFunctionCall","src":"17537:54:53"},"nativeSrc":"17537:54:53","nodeType":"YulExpressionStatement","src":"17537:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17174:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17230:3:53","nodeType":"YulTypedName","src":"17230:3:53","type":""},{"name":"length","nativeSrc":"17235:6:53","nodeType":"YulTypedName","src":"17235:6:53","type":""},{"name":"end","nativeSrc":"17243:3:53","nodeType":"YulTypedName","src":"17243:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17251:5:53","nodeType":"YulTypedName","src":"17251:5:53","type":""}],"src":"17174:423:53"},{"body":{"nativeSrc":"17677:277:53","nodeType":"YulBlock","src":"17677:277:53","statements":[{"body":{"nativeSrc":"17726:83:53","nodeType":"YulBlock","src":"17726:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"17728:77:53","nodeType":"YulIdentifier","src":"17728:77:53"},"nativeSrc":"17728:79:53","nodeType":"YulFunctionCall","src":"17728:79:53"},"nativeSrc":"17728:79:53","nodeType":"YulExpressionStatement","src":"17728:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"17705:6:53","nodeType":"YulIdentifier","src":"17705:6:53"},{"kind":"number","nativeSrc":"17713:4:53","nodeType":"YulLiteral","src":"17713:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"17701:3:53","nodeType":"YulIdentifier","src":"17701:3:53"},"nativeSrc":"17701:17:53","nodeType":"YulFunctionCall","src":"17701:17:53"},{"name":"end","nativeSrc":"17720:3:53","nodeType":"YulIdentifier","src":"17720:3:53"}],"functionName":{"name":"slt","nativeSrc":"17697:3:53","nodeType":"YulIdentifier","src":"17697:3:53"},"nativeSrc":"17697:27:53","nodeType":"YulFunctionCall","src":"17697:27:53"}],"functionName":{"name":"iszero","nativeSrc":"17690:6:53","nodeType":"YulIdentifier","src":"17690:6:53"},"nativeSrc":"17690:35:53","nodeType":"YulFunctionCall","src":"17690:35:53"},"nativeSrc":"17687:122:53","nodeType":"YulIf","src":"17687:122:53"},{"nativeSrc":"17818:34:53","nodeType":"YulVariableDeclaration","src":"17818:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"17845:6:53","nodeType":"YulIdentifier","src":"17845:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"17832:12:53","nodeType":"YulIdentifier","src":"17832:12:53"},"nativeSrc":"17832:20:53","nodeType":"YulFunctionCall","src":"17832:20:53"},"variables":[{"name":"length","nativeSrc":"17822:6:53","nodeType":"YulTypedName","src":"17822:6:53","type":""}]},{"nativeSrc":"17861:87:53","nodeType":"YulAssignment","src":"17861:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"17921:6:53","nodeType":"YulIdentifier","src":"17921:6:53"},{"kind":"number","nativeSrc":"17929:4:53","nodeType":"YulLiteral","src":"17929:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17917:3:53","nodeType":"YulIdentifier","src":"17917:3:53"},"nativeSrc":"17917:17:53","nodeType":"YulFunctionCall","src":"17917:17:53"},{"name":"length","nativeSrc":"17936:6:53","nodeType":"YulIdentifier","src":"17936:6:53"},{"name":"end","nativeSrc":"17944:3:53","nodeType":"YulIdentifier","src":"17944:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17870:46:53","nodeType":"YulIdentifier","src":"17870:46:53"},"nativeSrc":"17870:78:53","nodeType":"YulFunctionCall","src":"17870:78:53"},"variableNames":[{"name":"array","nativeSrc":"17861:5:53","nodeType":"YulIdentifier","src":"17861:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17616:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17655:6:53","nodeType":"YulTypedName","src":"17655:6:53","type":""},{"name":"end","nativeSrc":"17663:3:53","nodeType":"YulTypedName","src":"17663:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17671:5:53","nodeType":"YulTypedName","src":"17671:5:53","type":""}],"src":"17616:338:53"},{"body":{"nativeSrc":"18083:665:53","nodeType":"YulBlock","src":"18083:665:53","statements":[{"body":{"nativeSrc":"18127:83:53","nodeType":"YulBlock","src":"18127:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18129:77:53","nodeType":"YulIdentifier","src":"18129:77:53"},"nativeSrc":"18129:79:53","nodeType":"YulFunctionCall","src":"18129:79:53"},"nativeSrc":"18129:79:53","nodeType":"YulExpressionStatement","src":"18129:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18104:3:53","nodeType":"YulIdentifier","src":"18104:3:53"},{"name":"headStart","nativeSrc":"18109:9:53","nodeType":"YulIdentifier","src":"18109:9:53"}],"functionName":{"name":"sub","nativeSrc":"18100:3:53","nodeType":"YulIdentifier","src":"18100:3:53"},"nativeSrc":"18100:19:53","nodeType":"YulFunctionCall","src":"18100:19:53"},{"kind":"number","nativeSrc":"18121:4:53","nodeType":"YulLiteral","src":"18121:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"18096:3:53","nodeType":"YulIdentifier","src":"18096:3:53"},"nativeSrc":"18096:30:53","nodeType":"YulFunctionCall","src":"18096:30:53"},"nativeSrc":"18093:117:53","nodeType":"YulIf","src":"18093:117:53"},{"nativeSrc":"18219:30:53","nodeType":"YulAssignment","src":"18219:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"18244:4:53","nodeType":"YulLiteral","src":"18244:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"18228:15:53","nodeType":"YulIdentifier","src":"18228:15:53"},"nativeSrc":"18228:21:53","nodeType":"YulFunctionCall","src":"18228:21:53"},"variableNames":[{"name":"value","nativeSrc":"18219:5:53","nodeType":"YulIdentifier","src":"18219:5:53"}]},{"nativeSrc":"18259:152:53","nodeType":"YulBlock","src":"18259:152:53","statements":[{"nativeSrc":"18296:15:53","nodeType":"YulVariableDeclaration","src":"18296:15:53","value":{"kind":"number","nativeSrc":"18310:1:53","nodeType":"YulLiteral","src":"18310:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18300:6:53","nodeType":"YulTypedName","src":"18300:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18336:5:53","nodeType":"YulIdentifier","src":"18336:5:53"},{"kind":"number","nativeSrc":"18343:4:53","nodeType":"YulLiteral","src":"18343:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18332:3:53","nodeType":"YulIdentifier","src":"18332:3:53"},"nativeSrc":"18332:16:53","nodeType":"YulFunctionCall","src":"18332:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18375:9:53","nodeType":"YulIdentifier","src":"18375:9:53"},{"name":"offset","nativeSrc":"18386:6:53","nodeType":"YulIdentifier","src":"18386:6:53"}],"functionName":{"name":"add","nativeSrc":"18371:3:53","nodeType":"YulIdentifier","src":"18371:3:53"},"nativeSrc":"18371:22:53","nodeType":"YulFunctionCall","src":"18371:22:53"},{"name":"end","nativeSrc":"18395:3:53","nodeType":"YulIdentifier","src":"18395:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"18350:20:53","nodeType":"YulIdentifier","src":"18350:20:53"},"nativeSrc":"18350:49:53","nodeType":"YulFunctionCall","src":"18350:49:53"}],"functionName":{"name":"mstore","nativeSrc":"18325:6:53","nodeType":"YulIdentifier","src":"18325:6:53"},"nativeSrc":"18325:75:53","nodeType":"YulFunctionCall","src":"18325:75:53"},"nativeSrc":"18325:75:53","nodeType":"YulExpressionStatement","src":"18325:75:53"}]},{"nativeSrc":"18421:320:53","nodeType":"YulBlock","src":"18421:320:53","statements":[{"nativeSrc":"18456:46:53","nodeType":"YulVariableDeclaration","src":"18456:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18487:9:53","nodeType":"YulIdentifier","src":"18487:9:53"},{"kind":"number","nativeSrc":"18498:2:53","nodeType":"YulLiteral","src":"18498:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18483:3:53","nodeType":"YulIdentifier","src":"18483:3:53"},"nativeSrc":"18483:18:53","nodeType":"YulFunctionCall","src":"18483:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"18470:12:53","nodeType":"YulIdentifier","src":"18470:12:53"},"nativeSrc":"18470:32:53","nodeType":"YulFunctionCall","src":"18470:32:53"},"variables":[{"name":"offset","nativeSrc":"18460:6:53","nodeType":"YulTypedName","src":"18460:6:53","type":""}]},{"body":{"nativeSrc":"18549:83:53","nodeType":"YulBlock","src":"18549:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"18551:77:53","nodeType":"YulIdentifier","src":"18551:77:53"},"nativeSrc":"18551:79:53","nodeType":"YulFunctionCall","src":"18551:79:53"},"nativeSrc":"18551:79:53","nodeType":"YulExpressionStatement","src":"18551:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"18521:6:53","nodeType":"YulIdentifier","src":"18521:6:53"},{"kind":"number","nativeSrc":"18529:18:53","nodeType":"YulLiteral","src":"18529:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"18518:2:53","nodeType":"YulIdentifier","src":"18518:2:53"},"nativeSrc":"18518:30:53","nodeType":"YulFunctionCall","src":"18518:30:53"},"nativeSrc":"18515:117:53","nodeType":"YulIf","src":"18515:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18657:5:53","nodeType":"YulIdentifier","src":"18657:5:53"},{"kind":"number","nativeSrc":"18664:4:53","nodeType":"YulLiteral","src":"18664:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18653:3:53","nodeType":"YulIdentifier","src":"18653:3:53"},"nativeSrc":"18653:16:53","nodeType":"YulFunctionCall","src":"18653:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18705:9:53","nodeType":"YulIdentifier","src":"18705:9:53"},{"name":"offset","nativeSrc":"18716:6:53","nodeType":"YulIdentifier","src":"18716:6:53"}],"functionName":{"name":"add","nativeSrc":"18701:3:53","nodeType":"YulIdentifier","src":"18701:3:53"},"nativeSrc":"18701:22:53","nodeType":"YulFunctionCall","src":"18701:22:53"},{"name":"end","nativeSrc":"18725:3:53","nodeType":"YulIdentifier","src":"18725:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"18671:29:53","nodeType":"YulIdentifier","src":"18671:29:53"},"nativeSrc":"18671:58:53","nodeType":"YulFunctionCall","src":"18671:58:53"}],"functionName":{"name":"mstore","nativeSrc":"18646:6:53","nodeType":"YulIdentifier","src":"18646:6:53"},"nativeSrc":"18646:84:53","nodeType":"YulFunctionCall","src":"18646:84:53"},"nativeSrc":"18646:84:53","nodeType":"YulExpressionStatement","src":"18646:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"17997:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18058:9:53","nodeType":"YulTypedName","src":"18058:9:53","type":""},{"name":"end","nativeSrc":"18069:3:53","nodeType":"YulTypedName","src":"18069:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18077:5:53","nodeType":"YulTypedName","src":"18077:5:53","type":""}],"src":"17997:751:53"},{"body":{"nativeSrc":"18851:454:53","nodeType":"YulBlock","src":"18851:454:53","statements":[{"body":{"nativeSrc":"18897:83:53","nodeType":"YulBlock","src":"18897:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18899:77:53","nodeType":"YulIdentifier","src":"18899:77:53"},"nativeSrc":"18899:79:53","nodeType":"YulFunctionCall","src":"18899:79:53"},"nativeSrc":"18899:79:53","nodeType":"YulExpressionStatement","src":"18899:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18872:7:53","nodeType":"YulIdentifier","src":"18872:7:53"},{"name":"headStart","nativeSrc":"18881:9:53","nodeType":"YulIdentifier","src":"18881:9:53"}],"functionName":{"name":"sub","nativeSrc":"18868:3:53","nodeType":"YulIdentifier","src":"18868:3:53"},"nativeSrc":"18868:23:53","nodeType":"YulFunctionCall","src":"18868:23:53"},{"kind":"number","nativeSrc":"18893:2:53","nodeType":"YulLiteral","src":"18893:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18864:3:53","nodeType":"YulIdentifier","src":"18864:3:53"},"nativeSrc":"18864:32:53","nodeType":"YulFunctionCall","src":"18864:32:53"},"nativeSrc":"18861:119:53","nodeType":"YulIf","src":"18861:119:53"},{"nativeSrc":"18990:308:53","nodeType":"YulBlock","src":"18990:308:53","statements":[{"nativeSrc":"19005:45:53","nodeType":"YulVariableDeclaration","src":"19005:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19036:9:53","nodeType":"YulIdentifier","src":"19036:9:53"},{"kind":"number","nativeSrc":"19047:1:53","nodeType":"YulLiteral","src":"19047:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19032:3:53","nodeType":"YulIdentifier","src":"19032:3:53"},"nativeSrc":"19032:17:53","nodeType":"YulFunctionCall","src":"19032:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"19019:12:53","nodeType":"YulIdentifier","src":"19019:12:53"},"nativeSrc":"19019:31:53","nodeType":"YulFunctionCall","src":"19019:31:53"},"variables":[{"name":"offset","nativeSrc":"19009:6:53","nodeType":"YulTypedName","src":"19009:6:53","type":""}]},{"body":{"nativeSrc":"19097:83:53","nodeType":"YulBlock","src":"19097:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19099:77:53","nodeType":"YulIdentifier","src":"19099:77:53"},"nativeSrc":"19099:79:53","nodeType":"YulFunctionCall","src":"19099:79:53"},"nativeSrc":"19099:79:53","nodeType":"YulExpressionStatement","src":"19099:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19069:6:53","nodeType":"YulIdentifier","src":"19069:6:53"},{"kind":"number","nativeSrc":"19077:18:53","nodeType":"YulLiteral","src":"19077:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19066:2:53","nodeType":"YulIdentifier","src":"19066:2:53"},"nativeSrc":"19066:30:53","nodeType":"YulFunctionCall","src":"19066:30:53"},"nativeSrc":"19063:117:53","nodeType":"YulIf","src":"19063:117:53"},{"nativeSrc":"19194:94:53","nodeType":"YulAssignment","src":"19194:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19260:9:53","nodeType":"YulIdentifier","src":"19260:9:53"},{"name":"offset","nativeSrc":"19271:6:53","nodeType":"YulIdentifier","src":"19271:6:53"}],"functionName":{"name":"add","nativeSrc":"19256:3:53","nodeType":"YulIdentifier","src":"19256:3:53"},"nativeSrc":"19256:22:53","nodeType":"YulFunctionCall","src":"19256:22:53"},{"name":"dataEnd","nativeSrc":"19280:7:53","nodeType":"YulIdentifier","src":"19280:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"19204:51:53","nodeType":"YulIdentifier","src":"19204:51:53"},"nativeSrc":"19204:84:53","nodeType":"YulFunctionCall","src":"19204:84:53"},"variableNames":[{"name":"value0","nativeSrc":"19194:6:53","nodeType":"YulIdentifier","src":"19194:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"18754:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18821:9:53","nodeType":"YulTypedName","src":"18821:9:53","type":""},{"name":"dataEnd","nativeSrc":"18832:7:53","nodeType":"YulTypedName","src":"18832:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18844:6:53","nodeType":"YulTypedName","src":"18844:6:53","type":""}],"src":"18754:551:53"},{"body":{"nativeSrc":"19354:190:53","nodeType":"YulBlock","src":"19354:190:53","statements":[{"nativeSrc":"19364:33:53","nodeType":"YulAssignment","src":"19364:33:53","value":{"arguments":[{"name":"value","nativeSrc":"19391:5:53","nodeType":"YulIdentifier","src":"19391:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19373:17:53","nodeType":"YulIdentifier","src":"19373:17:53"},"nativeSrc":"19373:24:53","nodeType":"YulFunctionCall","src":"19373:24:53"},"variableNames":[{"name":"value","nativeSrc":"19364:5:53","nodeType":"YulIdentifier","src":"19364:5:53"}]},{"body":{"nativeSrc":"19487:22:53","nodeType":"YulBlock","src":"19487:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19489:16:53","nodeType":"YulIdentifier","src":"19489:16:53"},"nativeSrc":"19489:18:53","nodeType":"YulFunctionCall","src":"19489:18:53"},"nativeSrc":"19489:18:53","nodeType":"YulExpressionStatement","src":"19489:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"19412:5:53","nodeType":"YulIdentifier","src":"19412:5:53"},{"kind":"number","nativeSrc":"19419:66:53","nodeType":"YulLiteral","src":"19419:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"19409:2:53","nodeType":"YulIdentifier","src":"19409:2:53"},"nativeSrc":"19409:77:53","nodeType":"YulFunctionCall","src":"19409:77:53"},"nativeSrc":"19406:103:53","nodeType":"YulIf","src":"19406:103:53"},{"nativeSrc":"19518:20:53","nodeType":"YulAssignment","src":"19518:20:53","value":{"arguments":[{"name":"value","nativeSrc":"19529:5:53","nodeType":"YulIdentifier","src":"19529:5:53"},{"kind":"number","nativeSrc":"19536:1:53","nodeType":"YulLiteral","src":"19536:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19525:3:53","nodeType":"YulIdentifier","src":"19525:3:53"},"nativeSrc":"19525:13:53","nodeType":"YulFunctionCall","src":"19525:13:53"},"variableNames":[{"name":"ret","nativeSrc":"19518:3:53","nodeType":"YulIdentifier","src":"19518:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"19311:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19340:5:53","nodeType":"YulTypedName","src":"19340:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"19350:3:53","nodeType":"YulTypedName","src":"19350:3:53","type":""}],"src":"19311:233:53"},{"body":{"nativeSrc":"19613:80:53","nodeType":"YulBlock","src":"19613:80:53","statements":[{"nativeSrc":"19623:22:53","nodeType":"YulAssignment","src":"19623:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"19638:6:53","nodeType":"YulIdentifier","src":"19638:6:53"}],"functionName":{"name":"mload","nativeSrc":"19632:5:53","nodeType":"YulIdentifier","src":"19632:5:53"},"nativeSrc":"19632:13:53","nodeType":"YulFunctionCall","src":"19632:13:53"},"variableNames":[{"name":"value","nativeSrc":"19623:5:53","nodeType":"YulIdentifier","src":"19623:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19681:5:53","nodeType":"YulIdentifier","src":"19681:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"19654:26:53","nodeType":"YulIdentifier","src":"19654:26:53"},"nativeSrc":"19654:33:53","nodeType":"YulFunctionCall","src":"19654:33:53"},"nativeSrc":"19654:33:53","nodeType":"YulExpressionStatement","src":"19654:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19550:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19591:6:53","nodeType":"YulTypedName","src":"19591:6:53","type":""},{"name":"end","nativeSrc":"19599:3:53","nodeType":"YulTypedName","src":"19599:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19607:5:53","nodeType":"YulTypedName","src":"19607:5:53","type":""}],"src":"19550:143:53"},{"body":{"nativeSrc":"19776:274:53","nodeType":"YulBlock","src":"19776:274:53","statements":[{"body":{"nativeSrc":"19822:83:53","nodeType":"YulBlock","src":"19822:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19824:77:53","nodeType":"YulIdentifier","src":"19824:77:53"},"nativeSrc":"19824:79:53","nodeType":"YulFunctionCall","src":"19824:79:53"},"nativeSrc":"19824:79:53","nodeType":"YulExpressionStatement","src":"19824:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19797:7:53","nodeType":"YulIdentifier","src":"19797:7:53"},{"name":"headStart","nativeSrc":"19806:9:53","nodeType":"YulIdentifier","src":"19806:9:53"}],"functionName":{"name":"sub","nativeSrc":"19793:3:53","nodeType":"YulIdentifier","src":"19793:3:53"},"nativeSrc":"19793:23:53","nodeType":"YulFunctionCall","src":"19793:23:53"},{"kind":"number","nativeSrc":"19818:2:53","nodeType":"YulLiteral","src":"19818:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19789:3:53","nodeType":"YulIdentifier","src":"19789:3:53"},"nativeSrc":"19789:32:53","nodeType":"YulFunctionCall","src":"19789:32:53"},"nativeSrc":"19786:119:53","nodeType":"YulIf","src":"19786:119:53"},{"nativeSrc":"19915:128:53","nodeType":"YulBlock","src":"19915:128:53","statements":[{"nativeSrc":"19930:15:53","nodeType":"YulVariableDeclaration","src":"19930:15:53","value":{"kind":"number","nativeSrc":"19944:1:53","nodeType":"YulLiteral","src":"19944:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19934:6:53","nodeType":"YulTypedName","src":"19934:6:53","type":""}]},{"nativeSrc":"19959:74:53","nodeType":"YulAssignment","src":"19959:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20005:9:53","nodeType":"YulIdentifier","src":"20005:9:53"},{"name":"offset","nativeSrc":"20016:6:53","nodeType":"YulIdentifier","src":"20016:6:53"}],"functionName":{"name":"add","nativeSrc":"20001:3:53","nodeType":"YulIdentifier","src":"20001:3:53"},"nativeSrc":"20001:22:53","nodeType":"YulFunctionCall","src":"20001:22:53"},{"name":"dataEnd","nativeSrc":"20025:7:53","nodeType":"YulIdentifier","src":"20025:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19969:31:53","nodeType":"YulIdentifier","src":"19969:31:53"},"nativeSrc":"19969:64:53","nodeType":"YulFunctionCall","src":"19969:64:53"},"variableNames":[{"name":"value0","nativeSrc":"19959:6:53","nodeType":"YulIdentifier","src":"19959:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"19699:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19746:9:53","nodeType":"YulTypedName","src":"19746:9:53","type":""},{"name":"dataEnd","nativeSrc":"19757:7:53","nodeType":"YulTypedName","src":"19757:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19769:6:53","nodeType":"YulTypedName","src":"19769:6:53","type":""}],"src":"19699:351:53"},{"body":{"nativeSrc":"20262:482:53","nodeType":"YulBlock","src":"20262:482:53","statements":[{"nativeSrc":"20272:26:53","nodeType":"YulVariableDeclaration","src":"20272:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"20288:3:53","nodeType":"YulIdentifier","src":"20288:3:53"},{"kind":"number","nativeSrc":"20293:4:53","nodeType":"YulLiteral","src":"20293:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20284:3:53","nodeType":"YulIdentifier","src":"20284:3:53"},"nativeSrc":"20284:14:53","nodeType":"YulFunctionCall","src":"20284:14:53"},"variables":[{"name":"tail","nativeSrc":"20276:4:53","nodeType":"YulTypedName","src":"20276:4:53","type":""}]},{"nativeSrc":"20308:166:53","nodeType":"YulBlock","src":"20308:166:53","statements":[{"nativeSrc":"20345:43:53","nodeType":"YulVariableDeclaration","src":"20345:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20375:5:53","nodeType":"YulIdentifier","src":"20375:5:53"},{"kind":"number","nativeSrc":"20382:4:53","nodeType":"YulLiteral","src":"20382:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20371:3:53","nodeType":"YulIdentifier","src":"20371:3:53"},"nativeSrc":"20371:16:53","nodeType":"YulFunctionCall","src":"20371:16:53"}],"functionName":{"name":"mload","nativeSrc":"20365:5:53","nodeType":"YulIdentifier","src":"20365:5:53"},"nativeSrc":"20365:23:53","nodeType":"YulFunctionCall","src":"20365:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"20349:12:53","nodeType":"YulTypedName","src":"20349:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"20435:12:53","nodeType":"YulIdentifier","src":"20435:12:53"},{"arguments":[{"name":"pos","nativeSrc":"20453:3:53","nodeType":"YulIdentifier","src":"20453:3:53"},{"kind":"number","nativeSrc":"20458:4:53","nodeType":"YulLiteral","src":"20458:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20449:3:53","nodeType":"YulIdentifier","src":"20449:3:53"},"nativeSrc":"20449:14:53","nodeType":"YulFunctionCall","src":"20449:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"20401:33:53","nodeType":"YulIdentifier","src":"20401:33:53"},"nativeSrc":"20401:63:53","nodeType":"YulFunctionCall","src":"20401:63:53"},"nativeSrc":"20401:63:53","nodeType":"YulExpressionStatement","src":"20401:63:53"}]},{"nativeSrc":"20484:233:53","nodeType":"YulBlock","src":"20484:233:53","statements":[{"nativeSrc":"20519:43:53","nodeType":"YulVariableDeclaration","src":"20519:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20549:5:53","nodeType":"YulIdentifier","src":"20549:5:53"},{"kind":"number","nativeSrc":"20556:4:53","nodeType":"YulLiteral","src":"20556:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20545:3:53","nodeType":"YulIdentifier","src":"20545:3:53"},"nativeSrc":"20545:16:53","nodeType":"YulFunctionCall","src":"20545:16:53"}],"functionName":{"name":"mload","nativeSrc":"20539:5:53","nodeType":"YulIdentifier","src":"20539:5:53"},"nativeSrc":"20539:23:53","nodeType":"YulFunctionCall","src":"20539:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"20523:12:53","nodeType":"YulTypedName","src":"20523:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20587:3:53","nodeType":"YulIdentifier","src":"20587:3:53"},{"kind":"number","nativeSrc":"20592:4:53","nodeType":"YulLiteral","src":"20592:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20583:3:53","nodeType":"YulIdentifier","src":"20583:3:53"},"nativeSrc":"20583:14:53","nodeType":"YulFunctionCall","src":"20583:14:53"},{"arguments":[{"name":"tail","nativeSrc":"20603:4:53","nodeType":"YulIdentifier","src":"20603:4:53"},{"name":"pos","nativeSrc":"20609:3:53","nodeType":"YulIdentifier","src":"20609:3:53"}],"functionName":{"name":"sub","nativeSrc":"20599:3:53","nodeType":"YulIdentifier","src":"20599:3:53"},"nativeSrc":"20599:14:53","nodeType":"YulFunctionCall","src":"20599:14:53"}],"functionName":{"name":"mstore","nativeSrc":"20576:6:53","nodeType":"YulIdentifier","src":"20576:6:53"},"nativeSrc":"20576:38:53","nodeType":"YulFunctionCall","src":"20576:38:53"},"nativeSrc":"20576:38:53","nodeType":"YulExpressionStatement","src":"20576:38:53"},{"nativeSrc":"20627:79:53","nodeType":"YulAssignment","src":"20627:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"20687:12:53","nodeType":"YulIdentifier","src":"20687:12:53"},{"name":"tail","nativeSrc":"20701:4:53","nodeType":"YulIdentifier","src":"20701:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"20635:51:53","nodeType":"YulIdentifier","src":"20635:51:53"},"nativeSrc":"20635:71:53","nodeType":"YulFunctionCall","src":"20635:71:53"},"variableNames":[{"name":"tail","nativeSrc":"20627:4:53","nodeType":"YulIdentifier","src":"20627:4:53"}]}]},{"nativeSrc":"20727:11:53","nodeType":"YulAssignment","src":"20727:11:53","value":{"name":"tail","nativeSrc":"20734:4:53","nodeType":"YulIdentifier","src":"20734:4:53"},"variableNames":[{"name":"end","nativeSrc":"20727:3:53","nodeType":"YulIdentifier","src":"20727:3:53"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"20126:618:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20241:5:53","nodeType":"YulTypedName","src":"20241:5:53","type":""},{"name":"pos","nativeSrc":"20248:3:53","nodeType":"YulTypedName","src":"20248:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20257:3:53","nodeType":"YulTypedName","src":"20257:3:53","type":""}],"src":"20126:618:53"},{"body":{"nativeSrc":"20910:237:53","nodeType":"YulBlock","src":"20910:237:53","statements":[{"nativeSrc":"20920:26:53","nodeType":"YulAssignment","src":"20920:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"20932:9:53","nodeType":"YulIdentifier","src":"20932:9:53"},{"kind":"number","nativeSrc":"20943:2:53","nodeType":"YulLiteral","src":"20943:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20928:3:53","nodeType":"YulIdentifier","src":"20928:3:53"},"nativeSrc":"20928:18:53","nodeType":"YulFunctionCall","src":"20928:18:53"},"variableNames":[{"name":"tail","nativeSrc":"20920:4:53","nodeType":"YulIdentifier","src":"20920:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20967:9:53","nodeType":"YulIdentifier","src":"20967:9:53"},{"kind":"number","nativeSrc":"20978:1:53","nodeType":"YulLiteral","src":"20978:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20963:3:53","nodeType":"YulIdentifier","src":"20963:3:53"},"nativeSrc":"20963:17:53","nodeType":"YulFunctionCall","src":"20963:17:53"},{"arguments":[{"name":"tail","nativeSrc":"20986:4:53","nodeType":"YulIdentifier","src":"20986:4:53"},{"name":"headStart","nativeSrc":"20992:9:53","nodeType":"YulIdentifier","src":"20992:9:53"}],"functionName":{"name":"sub","nativeSrc":"20982:3:53","nodeType":"YulIdentifier","src":"20982:3:53"},"nativeSrc":"20982:20:53","nodeType":"YulFunctionCall","src":"20982:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20956:6:53","nodeType":"YulIdentifier","src":"20956:6:53"},"nativeSrc":"20956:47:53","nodeType":"YulFunctionCall","src":"20956:47:53"},"nativeSrc":"20956:47:53","nodeType":"YulExpressionStatement","src":"20956:47:53"},{"nativeSrc":"21012:128:53","nodeType":"YulAssignment","src":"21012:128:53","value":{"arguments":[{"name":"value0","nativeSrc":"21126:6:53","nodeType":"YulIdentifier","src":"21126:6:53"},{"name":"tail","nativeSrc":"21135:4:53","nodeType":"YulIdentifier","src":"21135:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"21020:105:53","nodeType":"YulIdentifier","src":"21020:105:53"},"nativeSrc":"21020:120:53","nodeType":"YulFunctionCall","src":"21020:120:53"},"variableNames":[{"name":"tail","nativeSrc":"21012:4:53","nodeType":"YulIdentifier","src":"21012:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed","nativeSrc":"20750:397:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20882:9:53","nodeType":"YulTypedName","src":"20882:9:53","type":""},{"name":"value0","nativeSrc":"20894:6:53","nodeType":"YulTypedName","src":"20894:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20905:4:53","nodeType":"YulTypedName","src":"20905:4:53","type":""}],"src":"20750:397:53"},{"body":{"nativeSrc":"21297:275:53","nodeType":"YulBlock","src":"21297:275:53","statements":[{"nativeSrc":"21307:26:53","nodeType":"YulAssignment","src":"21307:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21319:9:53","nodeType":"YulIdentifier","src":"21319:9:53"},{"kind":"number","nativeSrc":"21330:2:53","nodeType":"YulLiteral","src":"21330:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21315:3:53","nodeType":"YulIdentifier","src":"21315:3:53"},"nativeSrc":"21315:18:53","nodeType":"YulFunctionCall","src":"21315:18:53"},"variableNames":[{"name":"tail","nativeSrc":"21307:4:53","nodeType":"YulIdentifier","src":"21307:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21387:6:53","nodeType":"YulIdentifier","src":"21387:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21400:9:53","nodeType":"YulIdentifier","src":"21400:9:53"},{"kind":"number","nativeSrc":"21411:1:53","nodeType":"YulLiteral","src":"21411:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21396:3:53","nodeType":"YulIdentifier","src":"21396:3:53"},"nativeSrc":"21396:17:53","nodeType":"YulFunctionCall","src":"21396:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21343:43:53","nodeType":"YulIdentifier","src":"21343:43:53"},"nativeSrc":"21343:71:53","nodeType":"YulFunctionCall","src":"21343:71:53"},"nativeSrc":"21343:71:53","nodeType":"YulExpressionStatement","src":"21343:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21435:9:53","nodeType":"YulIdentifier","src":"21435:9:53"},{"kind":"number","nativeSrc":"21446:2:53","nodeType":"YulLiteral","src":"21446:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21431:3:53","nodeType":"YulIdentifier","src":"21431:3:53"},"nativeSrc":"21431:18:53","nodeType":"YulFunctionCall","src":"21431:18:53"},{"arguments":[{"name":"tail","nativeSrc":"21455:4:53","nodeType":"YulIdentifier","src":"21455:4:53"},{"name":"headStart","nativeSrc":"21461:9:53","nodeType":"YulIdentifier","src":"21461:9:53"}],"functionName":{"name":"sub","nativeSrc":"21451:3:53","nodeType":"YulIdentifier","src":"21451:3:53"},"nativeSrc":"21451:20:53","nodeType":"YulFunctionCall","src":"21451:20:53"}],"functionName":{"name":"mstore","nativeSrc":"21424:6:53","nodeType":"YulIdentifier","src":"21424:6:53"},"nativeSrc":"21424:48:53","nodeType":"YulFunctionCall","src":"21424:48:53"},"nativeSrc":"21424:48:53","nodeType":"YulExpressionStatement","src":"21424:48:53"},{"nativeSrc":"21481:84:53","nodeType":"YulAssignment","src":"21481:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"21551:6:53","nodeType":"YulIdentifier","src":"21551:6:53"},{"name":"tail","nativeSrc":"21560:4:53","nodeType":"YulIdentifier","src":"21560:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"21489:61:53","nodeType":"YulIdentifier","src":"21489:61:53"},"nativeSrc":"21489:76:53","nodeType":"YulFunctionCall","src":"21489:76:53"},"variableNames":[{"name":"tail","nativeSrc":"21481:4:53","nodeType":"YulIdentifier","src":"21481:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"21153:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21261:9:53","nodeType":"YulTypedName","src":"21261:9:53","type":""},{"name":"value1","nativeSrc":"21273:6:53","nodeType":"YulTypedName","src":"21273:6:53","type":""},{"name":"value0","nativeSrc":"21281:6:53","nodeType":"YulTypedName","src":"21281:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21292:4:53","nodeType":"YulTypedName","src":"21292:4:53","type":""}],"src":"21153:419:53"},{"body":{"nativeSrc":"21620:143:53","nodeType":"YulBlock","src":"21620:143:53","statements":[{"nativeSrc":"21630:25:53","nodeType":"YulAssignment","src":"21630:25:53","value":{"arguments":[{"name":"x","nativeSrc":"21653:1:53","nodeType":"YulIdentifier","src":"21653:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21635:17:53","nodeType":"YulIdentifier","src":"21635:17:53"},"nativeSrc":"21635:20:53","nodeType":"YulFunctionCall","src":"21635:20:53"},"variableNames":[{"name":"x","nativeSrc":"21630:1:53","nodeType":"YulIdentifier","src":"21630:1:53"}]},{"nativeSrc":"21664:25:53","nodeType":"YulAssignment","src":"21664:25:53","value":{"arguments":[{"name":"y","nativeSrc":"21687:1:53","nodeType":"YulIdentifier","src":"21687:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21669:17:53","nodeType":"YulIdentifier","src":"21669:17:53"},"nativeSrc":"21669:20:53","nodeType":"YulFunctionCall","src":"21669:20:53"},"variableNames":[{"name":"y","nativeSrc":"21664:1:53","nodeType":"YulIdentifier","src":"21664:1:53"}]},{"body":{"nativeSrc":"21711:22:53","nodeType":"YulBlock","src":"21711:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"21713:16:53","nodeType":"YulIdentifier","src":"21713:16:53"},"nativeSrc":"21713:18:53","nodeType":"YulFunctionCall","src":"21713:18:53"},"nativeSrc":"21713:18:53","nodeType":"YulExpressionStatement","src":"21713:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"21708:1:53","nodeType":"YulIdentifier","src":"21708:1:53"}],"functionName":{"name":"iszero","nativeSrc":"21701:6:53","nodeType":"YulIdentifier","src":"21701:6:53"},"nativeSrc":"21701:9:53","nodeType":"YulFunctionCall","src":"21701:9:53"},"nativeSrc":"21698:35:53","nodeType":"YulIf","src":"21698:35:53"},{"nativeSrc":"21743:14:53","nodeType":"YulAssignment","src":"21743:14:53","value":{"arguments":[{"name":"x","nativeSrc":"21752:1:53","nodeType":"YulIdentifier","src":"21752:1:53"},{"name":"y","nativeSrc":"21755:1:53","nodeType":"YulIdentifier","src":"21755:1:53"}],"functionName":{"name":"div","nativeSrc":"21748:3:53","nodeType":"YulIdentifier","src":"21748:3:53"},"nativeSrc":"21748:9:53","nodeType":"YulFunctionCall","src":"21748:9:53"},"variableNames":[{"name":"r","nativeSrc":"21743:1:53","nodeType":"YulIdentifier","src":"21743:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"21578:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21609:1:53","nodeType":"YulTypedName","src":"21609:1:53","type":""},{"name":"y","nativeSrc":"21612:1:53","nodeType":"YulTypedName","src":"21612:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"21618:1:53","nodeType":"YulTypedName","src":"21618:1:53","type":""}],"src":"21578:185:53"},{"body":{"nativeSrc":"21814:149:53","nodeType":"YulBlock","src":"21814:149:53","statements":[{"nativeSrc":"21824:25:53","nodeType":"YulAssignment","src":"21824:25:53","value":{"arguments":[{"name":"x","nativeSrc":"21847:1:53","nodeType":"YulIdentifier","src":"21847:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21829:17:53","nodeType":"YulIdentifier","src":"21829:17:53"},"nativeSrc":"21829:20:53","nodeType":"YulFunctionCall","src":"21829:20:53"},"variableNames":[{"name":"x","nativeSrc":"21824:1:53","nodeType":"YulIdentifier","src":"21824:1:53"}]},{"nativeSrc":"21858:25:53","nodeType":"YulAssignment","src":"21858:25:53","value":{"arguments":[{"name":"y","nativeSrc":"21881:1:53","nodeType":"YulIdentifier","src":"21881:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21863:17:53","nodeType":"YulIdentifier","src":"21863:17:53"},"nativeSrc":"21863:20:53","nodeType":"YulFunctionCall","src":"21863:20:53"},"variableNames":[{"name":"y","nativeSrc":"21858:1:53","nodeType":"YulIdentifier","src":"21858:1:53"}]},{"nativeSrc":"21892:17:53","nodeType":"YulAssignment","src":"21892:17:53","value":{"arguments":[{"name":"x","nativeSrc":"21904:1:53","nodeType":"YulIdentifier","src":"21904:1:53"},{"name":"y","nativeSrc":"21907:1:53","nodeType":"YulIdentifier","src":"21907:1:53"}],"functionName":{"name":"sub","nativeSrc":"21900:3:53","nodeType":"YulIdentifier","src":"21900:3:53"},"nativeSrc":"21900:9:53","nodeType":"YulFunctionCall","src":"21900:9:53"},"variableNames":[{"name":"diff","nativeSrc":"21892:4:53","nodeType":"YulIdentifier","src":"21892:4:53"}]},{"body":{"nativeSrc":"21934:22:53","nodeType":"YulBlock","src":"21934:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21936:16:53","nodeType":"YulIdentifier","src":"21936:16:53"},"nativeSrc":"21936:18:53","nodeType":"YulFunctionCall","src":"21936:18:53"},"nativeSrc":"21936:18:53","nodeType":"YulExpressionStatement","src":"21936:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21925:4:53","nodeType":"YulIdentifier","src":"21925:4:53"},{"name":"x","nativeSrc":"21931:1:53","nodeType":"YulIdentifier","src":"21931:1:53"}],"functionName":{"name":"gt","nativeSrc":"21922:2:53","nodeType":"YulIdentifier","src":"21922:2:53"},"nativeSrc":"21922:11:53","nodeType":"YulFunctionCall","src":"21922:11:53"},"nativeSrc":"21919:37:53","nodeType":"YulIf","src":"21919:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"21769:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21800:1:53","nodeType":"YulTypedName","src":"21800:1:53","type":""},{"name":"y","nativeSrc":"21803:1:53","nodeType":"YulTypedName","src":"21803:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21809:4:53","nodeType":"YulTypedName","src":"21809:4:53","type":""}],"src":"21769:194:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_Strategy_$16633(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_Strategy_$16633(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Strategy_$16633(value)\n }\n\n function convert_t_enum$_Strategy_$16633_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Strategy_$16633(value)\n }\n\n function abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Strategy_$16633_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_Strategy_$16633__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function mod_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_enum$_Strategy_$16633(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_Strategy_$16633(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Strategy_$16633(value)\n }\n\n // struct ERC20Incentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$16644_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // strategy\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_enum$_Strategy_$16633(add(headStart, offset), end))\n\n }\n\n {\n // reward\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$16644_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$16644_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct Budget.FungiblePayload -> struct Budget.FungiblePayload\n function abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x20)\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_assert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$13471(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$13471(value)\n }\n\n function convert_t_enum$_AssetType_$13471_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$13471(value)\n }\n\n function abi_encode_t_enum$_AssetType_$13471_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$13471_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$13471_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value0, tail)\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function 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 // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610129575f3560e01c8063a4d66daf116100aa578063dcc59b6f1161006e578063dcc59b6f14610387578063e18e6508146103b1578063f04e283e146103ed578063f1c30ec014610409578063f2fde38b14610445578063fee81cf41461046157610129565b8063a4d66daf1461027f578063a8c62e76146102a9578063b30906d4146102d3578063c63ff8dd1461030f578063c884ef831461034b57610129565b8063439fab91116100f1578063439fab91146101dd5780634e7165a21461020557806354d1f13d14610241578063715018a61461024b5780638da5cb5b1461025557610129565b806301ffc9a71461012d5780632275aea914610169578063228cb7331461017f57806325692962146101a957806338d52e0f146101b3575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e91906116bb565b61049d565b6040516101609190611700565b60405180910390f35b348015610174575f80fd5b5061017d610516565b005b34801561018a575f80fd5b506101936106e3565b6040516101a09190611731565b60405180910390f35b6101b16106e9565b005b3480156101be575f80fd5b506101c761073a565b6040516101d49190611789565b60405180910390f35b3480156101e8575f80fd5b5061020360048036038101906101fe9190611803565b61075f565b005b348015610210575f80fd5b5061022b60048036038101906102269190611803565b6109f4565b60405161023891906118be565b60405180910390f35b610249610b12565b005b610253610b4b565b005b348015610260575f80fd5b50610269610b5e565b6040516102769190611789565b60405180910390f35b34801561028a575f80fd5b50610293610b86565b6040516102a09190611731565b60405180910390f35b3480156102b4575f80fd5b506102bd610b8c565b6040516102ca9190611951565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190611994565b610b9f565b6040516103069190611789565b60405180910390f35b34801561031a575f80fd5b5061033560048036038101906103309190611803565b610bda565b6040516103429190611700565b60405180910390f35b348015610356575f80fd5b50610371600480360381019061036c91906119e9565b610f38565b60405161037e9190611700565b60405180910390f35b348015610392575f80fd5b5061039b610f55565b6040516103a89190611731565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190611803565b610f5a565b6040516103e49190611700565b60405180910390f35b610407600480360381019061040291906119e9565b610f82565b005b348015610414575f80fd5b5061042f600480360381019061042a9190611803565b610fc0565b60405161043c9190611700565b60405180910390f35b61045f600480360381019061045a91906119e9565b61123b565b005b34801561046c575f80fd5b50610487600480360381019061048291906119e9565b611264565b6040516104949190611731565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050f575061050e8261127d565b5b9050919050565b61051e6112f6565b600280811115610531576105306118de565b5b600260149054906101000a900460ff166002811115610553576105526118de565b5b1461058a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446105a29190611a41565b81525090505f600580805490506105b88461132d565b6105c29190611aa1565b815481106105d3576105d2611ad1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061064b8160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003546040516020016106bb93929190611b63565b6040516020818303038152906040526040516106d791906118be565b60405180910390a25050565b60035481565b5f6106f2611385565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61076861138f565b9050805460038255801561079a5760018160011c14303b106107915763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107ab9190611cb7565b9050600160028111156107c1576107c06118de565b5b816020015160028111156107d8576107d76118de565b5b0361080f576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160400151148061082457505f8160600151145b1561085b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60028081111561086f5761086e6118de565b5b82602001516002811115610886576108856118de565b5b036108955781604001516108aa565b816060015182604001516108a99190611ce2565b5b90505f6108d930845f015173ffffffffffffffffffffffffffffffffffffffff166113b890919063ffffffff16565b90508181101561092757825f015181836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161091e93929190611d23565b60405180910390fd5b825f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260200151600260146101000a81548160ff02191690836002811115610993576109926118de565b5b0217905550826040015160038190555082606001516004819055506109b7336113eb565b50505080156109ef576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f8383810190610a069190611cb7565b90505f600280811115610a1c57610a1b6118de565b5b82602001516002811115610a3357610a326118de565b5b03610a42578160400151610a57565b81606001518260400151610a569190611ce2565b5b9050604051806080016040528060016002811115610a7857610a776118de565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610ad79190611d81565b604051602081830303815290604052815250604051602001610af99190611e97565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b536112f6565b610b5c5f6114c1565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600260149054906101000a900460ff1681565b60058181548110610bae575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610be36112f6565b5f8383810190610bf39190611fd0565b9050610c01815f0151611587565b610c37576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002811115610c4a57610c496118de565b5b600260149054906101000a900460ff166002811115610c6c57610c6b6118de565b5b03610dd3575f80815480929190610c8290612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610d2f815f015160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f0151600354604051602001610da593929190611b63565b604051602081830303815290604052604051610dc191906118be565b60405180910390a26001915050610f32565b600280811115610de657610de56118de565b5b600260149054906101000a900460ff166002811115610e0857610e076118de565b5b03610f2d575f80815480929190610e1e90612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506005815f0151908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015173ffffffffffffffffffffffffffffffffffffffff167ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f15360405160405180910390a26001915050610f32565b5f9150505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610f6b9190611fd0565b9050610f79815f0151611587565b91505092915050565b610f8a6112f6565b63389a75e1600c52805f526020600c208054421115610fb057636f5e88185f526004601cfd5b5f815550610fbd816114c1565b50565b5f610fc96112f6565b5f8383810190610fd99190611fd0565b90505f8160200151806020019051810190610ff49190612072565b9050600280811115611009576110086118de565b5b600260149054906101000a900460ff16600281111561102b5761102a6118de565b5b036110b0576003548114158061104157505f8054115b156110a457338260405160200161105891906120d7565b6040516020818303038152906040526040517f4139d81d00000000000000000000000000000000000000000000000000000000815260040161109b9291906120f7565b60405180910390fd5b5f600481905550611148565b5f600354826110bf9190611aa1565b146111225733826040516020016110d691906120d7565b6040516020818303038152906040526040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016111199291906120f7565b60405180910390fd5b600354816111309190612125565b60045f8282546111409190612155565b925050819055505b611197825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01518460405160200161120b93929190611b63565b60405160208183030381529060405260405161122791906118be565b60405180910390a260019250505092915050565b6112436112f6565b8060601b61125857637448fbae5f526004601cfd5b611261816114c1565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112ef57506112ee826115e8565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461132b576382b429005f526004601cfd5b565b5f602082209050808252919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661137c576390b8ec185f526004601cfd5b5f603452505050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113f3611651565b1561146b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561142d57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506114be565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6114c9611651565b1561152e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611584565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115e157506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61169a81611666565b81146116a4575f80fd5b50565b5f813590506116b581611691565b92915050565b5f602082840312156116d0576116cf61165e565b5b5f6116dd848285016116a7565b91505092915050565b5f8115159050919050565b6116fa816116e6565b82525050565b5f6020820190506117135f8301846116f1565b92915050565b5f819050919050565b61172b81611719565b82525050565b5f6020820190506117445f830184611722565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117738261174a565b9050919050565b61178381611769565b82525050565b5f60208201905061179c5f83018461177a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126117c3576117c26117a2565b5b8235905067ffffffffffffffff8111156117e0576117df6117a6565b5b6020830191508360018202830111156117fc576117fb6117aa565b5b9250929050565b5f80602083850312156118195761181861165e565b5b5f83013567ffffffffffffffff81111561183657611835611662565b5b611842858286016117ae565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118908261184e565b61189a8185611858565b93506118aa818560208601611868565b6118b381611876565b840191505092915050565b5f6020820190508181035f8301526118d68184611886565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061191c5761191b6118de565b5b50565b5f81905061192c8261190b565b919050565b5f61193b8261191f565b9050919050565b61194b81611931565b82525050565b5f6020820190506119645f830184611942565b92915050565b61197381611719565b811461197d575f80fd5b50565b5f8135905061198e8161196a565b92915050565b5f602082840312156119a9576119a861165e565b5b5f6119b684828501611980565b91505092915050565b6119c881611769565b81146119d2575f80fd5b50565b5f813590506119e3816119bf565b92915050565b5f602082840312156119fe576119fd61165e565b5b5f611a0b848285016119d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a4b82611719565b9150611a5683611719565b9250828201905080821115611a6e57611a6d611a14565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611aab82611719565b9150611ab683611719565b925082611ac657611ac5611a74565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160601b9050919050565b5f611b1482611afe565b9050919050565b5f611b2582611b0a565b9050919050565b611b3d611b3882611769565b611b1b565b82525050565b5f819050919050565b611b5d611b5882611719565b611b43565b82525050565b5f611b6e8286611b2c565b601482019150611b7e8285611b2c565b601482019150611b8e8284611b4c565b602082019150819050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611bd982611876565b810181811067ffffffffffffffff82111715611bf857611bf7611ba3565b5b80604052505050565b5f611c0a611655565b9050611c168282611bd0565b919050565b5f80fd5b60038110611c2b575f80fd5b50565b5f81359050611c3c81611c1f565b92915050565b5f60808284031215611c5757611c56611b9f565b5b611c616080611c01565b90505f611c70848285016119d5565b5f830152506020611c8384828501611c2e565b6020830152506040611c9784828501611980565b6040830152506060611cab84828501611980565b60608301525092915050565b5f60808284031215611ccc57611ccb61165e565b5b5f611cd984828501611c42565b91505092915050565b5f611cec82611719565b9150611cf783611719565b9250828202611d0581611719565b91508282048414831517611d1c57611d1b611a14565b5b5092915050565b5f606082019050611d365f83018661177a565b611d436020830185611722565b611d506040830184611722565b949350505050565b611d6181611719565b82525050565b602082015f820151611d7b5f850182611d58565b50505050565b5f602082019050611d945f830184611d67565b92915050565b60038110611dab57611daa6118de565b5b50565b5f819050611dbb82611d9a565b919050565b5f611dca82611dae565b9050919050565b611dda81611dc0565b82525050565b611de981611769565b82525050565b5f82825260208201905092915050565b5f611e098261184e565b611e138185611def565b9350611e23818560208601611868565b611e2c81611876565b840191505092915050565b5f608083015f830151611e4c5f860182611dd1565b506020830151611e5f6020860182611de0565b506040830151611e726040860182611de0565b5060608301518482036060860152611e8a8282611dff565b9150508091505092915050565b5f6020820190508181035f830152611eaf8184611e37565b905092915050565b5f80fd5b5f67ffffffffffffffff821115611ed557611ed4611ba3565b5b611ede82611876565b9050602081019050919050565b828183375f83830152505050565b5f611f0b611f0684611ebb565b611c01565b905082815260208101848484011115611f2757611f26611eb7565b5b611f32848285611eeb565b509392505050565b5f82601f830112611f4e57611f4d6117a2565b5b8135611f5e848260208601611ef9565b91505092915050565b5f60408284031215611f7c57611f7b611b9f565b5b611f866040611c01565b90505f611f95848285016119d5565b5f83015250602082013567ffffffffffffffff811115611fb857611fb7611c1b565b5b611fc484828501611f3a565b60208301525092915050565b5f60208284031215611fe557611fe461165e565b5b5f82013567ffffffffffffffff81111561200257612001611662565b5b61200e84828501611f67565b91505092915050565b5f61202182611719565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205357612052611a14565b5b600182019050919050565b5f8151905061206c8161196a565b92915050565b5f602082840312156120875761208661165e565b5b5f6120948482850161205e565b91505092915050565b5f604083015f8301516120b25f860182611de0565b50602083015184820360208601526120ca8282611dff565b9150508091505092915050565b5f6020820190508181035f8301526120ef818461209d565b905092915050565b5f60408201905061210a5f83018561177a565b818103602083015261211c8184611886565b90509392505050565b5f61212f82611719565b915061213a83611719565b92508261214a57612149611a74565b5b828204905092915050565b5f61215f82611719565b915061216a83611719565b925082820390508181111561218257612181611a14565b5b9291505056fea26469706673582212206b260b82ccfdd3dfc6734ad6c86b98c5513cc724565757ef54f08104f1af95bb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x445 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x461 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0xB30906D4 EQ PUSH2 0x2D3 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x34B JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x255 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x2275AEA9 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1B3 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C7 PUSH2 0x73A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x22B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x249 PUSH2 0xB12 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x253 PUSH2 0xB4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x293 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BD PUSH2 0xB8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CA SWAP2 SWAP1 PUSH2 0x1951 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x1994 JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x306 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x356 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xF55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xF5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x407 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x402 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x414 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x42F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42A SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x45F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45A SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x123B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x487 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x482 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x1264 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x494 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x50F JUMPI POP PUSH2 0x50E DUP3 PUSH2 0x127D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0x12F6 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH2 0x530 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x553 JUMPI PUSH2 0x552 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST EQ PUSH2 0x58A JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP PREVRANDAO PUSH2 0x5A2 SWAP2 SWAP1 PUSH2 0x1A41 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x5 DUP1 DUP1 SLOAD SWAP1 POP PUSH2 0x5B8 DUP5 PUSH2 0x132D JUMP JUMPDEST PUSH2 0x5C2 SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x5D3 JUMPI PUSH2 0x5D2 PUSH2 0x1AD1 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x64B DUP2 PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6D7 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0x1385 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x768 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x791 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7AB SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x80F JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x824 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x85B JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x86F JUMPI PUSH2 0x86E PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x895 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x8AA JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x8A9 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH0 PUSH2 0x8D9 ADDRESS DUP5 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x927 JUMPI DUP3 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x9B7 CALLER PUSH2 0x13EB JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x9EF JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA33 JUMPI PUSH2 0xA32 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA42 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0xA57 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA78 JUMPI PUSH2 0xA77 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD7 SWAP2 SWAP1 PUSH2 0x1D81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAF9 SWAP2 SWAP1 PUSH2 0x1E97 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 PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0xB53 PUSH2 0x12F6 JUMP JUMPDEST PUSH2 0xB5C PUSH0 PUSH2 0x14C1 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBAE JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0xBE3 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xC01 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST PUSH2 0xC37 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH2 0xC49 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC6C JUMPI PUSH2 0xC6B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xDD3 JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xC82 SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xD2F DUP2 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDC1 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xDE6 JUMPI PUSH2 0xDE5 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE08 JUMPI PUSH2 0xE07 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xF2D JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xE1E SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x5 DUP2 PUSH0 ADD MLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0ABE0F5C6F02112A9A4332E7B091BF49040FFDDEEDB73785A9B9A0A3CA7F153 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xF79 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF8A PUSH2 0x12F6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xFB0 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xFBD DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xFC9 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xFD9 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFF4 SWAP2 SWAP1 PUSH2 0x2072 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x1009 JUMPI PUSH2 0x1008 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10B0 JUMPI PUSH1 0x3 SLOAD DUP2 EQ ISZERO DUP1 PUSH2 0x1041 JUMPI POP PUSH0 DUP1 SLOAD GT JUMPDEST ISZERO PUSH2 0x10A4 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1058 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109B SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x1148 JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD DUP3 PUSH2 0x10BF SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST EQ PUSH2 0x1122 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10D6 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1119 SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD DUP2 PUSH2 0x1130 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1140 SWAP2 SWAP1 PUSH2 0x2155 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x1197 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x120B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1227 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1243 PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1258 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1261 DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x12EF JUMPI POP PUSH2 0x12EE DUP3 PUSH2 0x15E8 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x132B JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 KECCAK256 SWAP1 POP DUP1 DUP3 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x137C JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13F3 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x146B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x142D JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x14BE JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x152E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1584 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x15E1 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169A DUP2 PUSH2 0x1666 JUMP JUMPDEST DUP2 EQ PUSH2 0x16A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16B5 DUP2 PUSH2 0x1691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16D0 JUMPI PUSH2 0x16CF PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16DD DUP5 DUP3 DUP6 ADD PUSH2 0x16A7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16FA DUP2 PUSH2 0x16E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1713 PUSH0 DUP4 ADD DUP5 PUSH2 0x16F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x172B DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1744 PUSH0 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1773 DUP3 PUSH2 0x174A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1783 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x179C PUSH0 DUP4 ADD DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17E0 JUMPI PUSH2 0x17DF PUSH2 0x17A6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x17FC JUMPI PUSH2 0x17FB PUSH2 0x17AA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1819 JUMPI PUSH2 0x1818 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1836 JUMPI PUSH2 0x1835 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x1842 DUP6 DUP3 DUP7 ADD PUSH2 0x17AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1890 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x189A DUP2 DUP6 PUSH2 0x1858 JUMP JUMPDEST SWAP4 POP PUSH2 0x18AA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x18B3 DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x18D6 DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x191C JUMPI PUSH2 0x191B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x192C DUP3 PUSH2 0x190B JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x193B DUP3 PUSH2 0x191F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x194B DUP2 PUSH2 0x1931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1964 PUSH0 DUP4 ADD DUP5 PUSH2 0x1942 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1973 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP2 EQ PUSH2 0x197D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x198E DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19A9 JUMPI PUSH2 0x19A8 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x19C8 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP2 EQ PUSH2 0x19D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E3 DUP2 PUSH2 0x19BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A0B DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1A4B DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A56 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A6E JUMPI PUSH2 0x1A6D PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1AAB DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AB6 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1AC6 JUMPI PUSH2 0x1AC5 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B14 DUP3 PUSH2 0x1AFE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B25 DUP3 PUSH2 0x1B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B3D PUSH2 0x1B38 DUP3 PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x1B1B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5D PUSH2 0x1B58 DUP3 PUSH2 0x1719 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B6E DUP3 DUP7 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B7E DUP3 DUP6 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B8E DUP3 DUP5 PUSH2 0x1B4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1BD9 DUP3 PUSH2 0x1876 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1BF8 JUMPI PUSH2 0x1BF7 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0A PUSH2 0x1655 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C16 DUP3 DUP3 PUSH2 0x1BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1C2B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C3C DUP2 PUSH2 0x1C1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C57 JUMPI PUSH2 0x1C56 PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1C61 PUSH1 0x80 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C70 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1C83 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1C97 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1CAB DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCC JUMPI PUSH2 0x1CCB PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1CD9 DUP5 DUP3 DUP6 ADD PUSH2 0x1C42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1CEC DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CF7 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D05 DUP2 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D1C JUMPI PUSH2 0x1D1B PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1D36 PUSH0 DUP4 ADD DUP7 PUSH2 0x177A JUMP JUMPDEST PUSH2 0x1D43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1722 JUMP JUMPDEST PUSH2 0x1D50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1D61 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1D7B PUSH0 DUP6 ADD DUP3 PUSH2 0x1D58 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D94 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1DAB JUMPI PUSH2 0x1DAA PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1DBB DUP3 PUSH2 0x1D9A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1DCA DUP3 PUSH2 0x1DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DDA DUP2 PUSH2 0x1DC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DE9 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E09 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x1E13 DUP2 DUP6 PUSH2 0x1DEF JUMP JUMPDEST SWAP4 POP PUSH2 0x1E23 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x1E2C DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1E4C PUSH0 DUP7 ADD DUP3 PUSH2 0x1DD1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1E5F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1E72 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1E8A DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1EAF DUP2 DUP5 PUSH2 0x1E37 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH2 0x1ED4 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST PUSH2 0x1EDE DUP3 PUSH2 0x1876 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F0B PUSH2 0x1F06 DUP5 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x1EB7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 PUSH2 0x1EEB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F4E JUMPI PUSH2 0x1F4D PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F5E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1EF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7C JUMPI PUSH2 0x1F7B PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1F86 PUSH1 0x40 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F95 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FB8 JUMPI PUSH2 0x1FB7 PUSH2 0x1C1B JUMP JUMPDEST JUMPDEST PUSH2 0x1FC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1F3A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FE5 JUMPI PUSH2 0x1FE4 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x200E DUP5 DUP3 DUP6 ADD PUSH2 0x1F67 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2021 DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2053 JUMPI PUSH2 0x2052 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x206C DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2087 JUMPI PUSH2 0x2086 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2094 DUP5 DUP3 DUP6 ADD PUSH2 0x205E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x20B2 PUSH0 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x20CA DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20EF DUP2 DUP5 PUSH2 0x209D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x210A PUSH0 DUP4 ADD DUP6 PUSH2 0x177A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x211C DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x212F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x213A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x214A JUMPI PUSH2 0x2149 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x215F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x216A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x260B82CCFDD3DFC6734AD6C8 PUSH12 0x98C5513CC724565757EF54F0 DUP2 DIV CALL 0xAF SWAP6 0xBB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"448:7197:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7214:429:43;;;;;;;;;;;;;:::i;:::-;;1680:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1504:20:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2413:936;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5607:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1775:20:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1593:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1888;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3550:756;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:202:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4342:994:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;7214:429:43:-;12517:13:17;:11;:13::i;:::-;7281:15:43::1;7269:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;;7265:65;;7305:25;;;;;;;;;;;;;;7265:65;7341:25;7369:57;;;;;;;;7409:15;7390:16;:34;;;;:::i;:::-;7369:57;;::::0;7341:85:::1;;7437:21;7461:7;7484::::0;:14:::1;;;;7469:12;:5;:10;:12::i;:::-;:29;;;;:::i;:::-;7461:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7437:62;;7510:41;7529:13;7544:6;;7510:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;7574:13;7566:70;;;7606:5;;;;;;;;;;;7613:13;7628:6;;7589:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7566:70;;;;;;:::i;:::-;;;;;;;;7255:388;;7214:429::o:0;1680:21::-;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1504:20:43:-;;;;;;;;;;;;;:::o;2413:936::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2493:24:43::1;2531:5;;2520:32;;;;;;;:::i;:::-;2493:59;;2653:13;2635:31;;;;;;;;:::i;:::-;;:5;:14;;;:31;;;;;;;;:::i;:::-;;::::0;2631:71:::1;;2675:27;;;;;;;;;;;;;;2631:71;2732:1;2716:5;:12;;;:17;:37;;;;2752:1;2737:5;:11;;;:16;2716:37;2712:84;;;2762:34;;;;;;;;;;;;;;2712:84;2870:22;2913:15;2895:33:::0;::::1;;;;;;;:::i;:::-;;:5;:14;;;:33;;;;;;;;:::i;:::-;;::::0;:77:::1;;2960:5;:12;;;2895:77;;;2946:5;:11;;;2931:5;:12;;;:26;;;;:::i;:::-;2895:77;2870:102;;2982:17;3002:36;3032:4;3002:5;:11;;;:21;;;;:36;;;;:::i;:::-;2982:56;;3064:14;3052:9;:26;3048:132;;;3130:5;:11;;;3143:9;3154:14;3101:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;3048:132;3198:5;:11;;;3190:5;;:19;;;;;;;;;;;;;;;;;;3230:5;:14;;;3219:8;;:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;3263:5;:12;;;3254:6;:21;;;;3293:5;:11;;;3285:5;:19;;;;3314:28;3331:10;3314:16;:28::i;:::-;2483:866;;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2413:936:43;;:::o;5607:563::-;5680:23;5715:24;5753:5;;5742:32;;;;;;;:::i;:::-;5715:59;;5784:14;5819:15;5801:33;;;;;;;;:::i;:::-;;:5;:14;;;:33;;;;;;;;:::i;:::-;;;:77;;5866:5;:12;;;5801:77;;;5852:5;:11;;;5837:5;:12;;;:26;;;;:::i;:::-;5801:77;5784:94;;5920:233;;;;;;;;5965:22;5920:233;;;;;;;;:::i;:::-;;;;;;6012:5;:11;;;5920:233;;;;;;6057:4;5920:233;;;;;;6097:40;;;;;;;;6129:6;6097:40;;;6086:52;;;;;;;;:::i;:::-;;;;;;;;;;;;;5920:233;;;5896:267;;;;;;;;:::i;:::-;;;;;;;;;;;;;5889:274;;;;5607:563;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1775:20:43:-;;;;:::o;1593:24::-;;;;;;;;;;;;;:::o;1888:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3550:756::-;3624:4;12517:13:17;:11;:13::i;:::-;3640:26:43::1;3680:5;;3669:33;;;;;;;:::i;:::-;3640:62;;3717:27;3730:6;:13;;;3717:12;:27::i;:::-;3712:55;;3753:14;;;;;;;;;;;;;;3712:55;3794:13;3782:25;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:25;;;;;;;;:::i;:::-;;::::0;3778:499:::1;;3823:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;3870:4;3845:7:::0;:22:::1;3853:6;:13;;;3845:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3889:41;3908:6;:13;;;3923:6;;3889:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;3958:6;:13;;;3950:70;;;3990:5;;;;;;;;;;;3997:6;:13;;;4012:6;;3973:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3950:70;;;;;;:::i;:::-;;;;;;;;4041:4;4034:11;;;;;3778:499;4078:15;4066:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;::::0;4062:215:::1;;4109:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;4156:4;4131:7:::0;:22:::1;4139:6;:13;;;4131:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4174:7;4187:6;:13;;;4174:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4227:6;:13;;;4221:20;;;;;;;;;;;;4262:4;4255:11;;;;;4062:215;4294:5;4287:12;;;12540:1:17;3550:756:43::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;6551:202:43:-;6624:4;6640:26;6680:5;;6669:33;;;;;;;:::i;:::-;6640:62;;6719:27;6732:6;:13;;;6719:12;:27::i;:::-;6712:34;;;6551:202;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;4342:994:43:-;4418:4;12517:13:17;:11;:13::i;:::-;4434:26:43::1;4474:5;;4463:33;;;;;;;:::i;:::-;4434:62;;4507:14;4536:6;:11;;;4525:34;;;;;;;;;;;;:::i;:::-;4506:53;;4586:15;4574:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;::::0;4570:539:::1;;4737:6;;4727;:16;;:30;;;;4756:1;4747:6:::0;::::1;:10;4727:30;4723:97;;;4789:10;4812:6;4801:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;4766:54;;;;;;;;;;;;:::i;:::-;;;;;;;;4723:97;4842:1;4834:5;:9;;;;4570:539;;;4996:1;4986:6;;4977;:15;;;;:::i;:::-;:20;4973:87;;5029:10;5052:6;5041:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;5006:54;;;;;;;;;;;;:::i;:::-;;;;;;;;4973:87;5092:6;;5083;:15;;;;:::i;:::-;5074:5;;:24;;;;;;;:::i;:::-;;;;;;;;4570:539;5181:41;5200:6;:13;;;5215:6;5181:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;5245:6;:13;;;5237:70;;;5277:5;;;;;;;;;;;5284:6;:13;;;5299:6;5260:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5237:70;;;;;;:::i;:::-;;;;;;;;5325:4;5318:11;;;;4342:994:::0;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2955:756:23:-;3010:14;3657:4;3651;3641:21;3631:31;;3688:6;3682:4;3675:20;2955:756;;;:::o;13466:939:27:-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;19260:739:27:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;6959:133:43:-;7024:4;7048:7;:19;7056:10;7048:19;;;;;;;;;;;;;;;;;;;;;;;;;7047:20;:38;;;;;7080:5;;7071:6;;:14;7047:38;7040:45;;6959:133;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:126::-;1990:7;2030:42;2023:5;2019:54;2008:65;;1953:126;;;:::o;2085:96::-;2122:7;2151:24;2169:5;2151:24;:::i;:::-;2140:35;;2085:96;;;:::o;2187:118::-;2274:24;2292:5;2274:24;:::i;:::-;2269:3;2262:37;2187:118;;:::o;2311:222::-;2404:4;2442:2;2431:9;2427:18;2419:26;;2455:71;2523:1;2512:9;2508:17;2499:6;2455:71;:::i;:::-;2311:222;;;;:::o;2539:117::-;2648:1;2645;2638:12;2662:117;2771:1;2768;2761:12;2785:117;2894:1;2891;2884:12;2921:552;2978:8;2988:6;3038:3;3031:4;3023:6;3019:17;3015:27;3005:122;;3046:79;;:::i;:::-;3005:122;3159:6;3146:20;3136:30;;3189:18;3181:6;3178:30;3175:117;;;3211:79;;:::i;:::-;3175:117;3325:4;3317:6;3313:17;3301:29;;3379:3;3371:4;3363:6;3359:17;3349:8;3345:32;3342:41;3339:128;;;3386:79;;:::i;:::-;3339:128;2921:552;;;;;:::o;3479:527::-;3549:6;3557;3606:2;3594:9;3585:7;3581:23;3577:32;3574:119;;;3612:79;;:::i;:::-;3574:119;3760:1;3749:9;3745:17;3732:31;3790:18;3782:6;3779:30;3776:117;;;3812:79;;:::i;:::-;3776:117;3925:64;3981:7;3972:6;3961:9;3957:22;3925:64;:::i;:::-;3907:82;;;;3703:296;3479:527;;;;;:::o;4012:98::-;4063:6;4097:5;4091:12;4081:22;;4012:98;;;:::o;4116:168::-;4199:11;4233:6;4228:3;4221:19;4273:4;4268:3;4264:14;4249:29;;4116:168;;;;:::o;4290:139::-;4379:6;4374:3;4369;4363:23;4420:1;4411:6;4406:3;4402:16;4395:27;4290:139;;;:::o;4435:102::-;4476:6;4527:2;4523:7;4518:2;4511:5;4507:14;4503:28;4493:38;;4435:102;;;:::o;4543:373::-;4629:3;4657:38;4689:5;4657:38;:::i;:::-;4711:70;4774:6;4769:3;4711:70;:::i;:::-;4704:77;;4790:65;4848:6;4843:3;4836:4;4829:5;4825:16;4790:65;:::i;:::-;4880:29;4902:6;4880:29;:::i;:::-;4875:3;4871:39;4864:46;;4633:283;4543:373;;;;:::o;4922:309::-;5033:4;5071:2;5060:9;5056:18;5048:26;;5120:9;5114:4;5110:20;5106:1;5095:9;5091:17;5084:47;5148:76;5219:4;5210:6;5148:76;:::i;:::-;5140:84;;4922:309;;;;:::o;5237:180::-;5285:77;5282:1;5275:88;5382:4;5379:1;5372:15;5406:4;5403:1;5396:15;5423:119;5510:1;5503:5;5500:12;5490:46;;5516:18;;:::i;:::-;5490:46;5423:119;:::o;5548:139::-;5599:7;5628:5;5617:16;;5634:47;5675:5;5634:47;:::i;:::-;5548:139;;;:::o;5693:::-;5755:9;5788:38;5820:5;5788:38;:::i;:::-;5775:51;;5693:139;;;:::o;5838:155::-;5937:49;5980:5;5937:49;:::i;:::-;5932:3;5925:62;5838:155;;:::o;5999:246::-;6104:4;6142:2;6131:9;6127:18;6119:26;;6155:83;6235:1;6224:9;6220:17;6211:6;6155:83;:::i;:::-;5999:246;;;;:::o;6251:122::-;6324:24;6342:5;6324:24;:::i;:::-;6317:5;6314:35;6304:63;;6363:1;6360;6353:12;6304:63;6251:122;:::o;6379:139::-;6425:5;6463:6;6450:20;6441:29;;6479:33;6506:5;6479:33;:::i;:::-;6379:139;;;;:::o;6524:329::-;6583:6;6632:2;6620:9;6611:7;6607:23;6603:32;6600:119;;;6638:79;;:::i;:::-;6600:119;6758:1;6783:53;6828:7;6819:6;6808:9;6804:22;6783:53;:::i;:::-;6773:63;;6729:117;6524:329;;;;:::o;6859:122::-;6932:24;6950:5;6932:24;:::i;:::-;6925:5;6922:35;6912:63;;6971:1;6968;6961:12;6912:63;6859:122;:::o;6987:139::-;7033:5;7071:6;7058:20;7049:29;;7087:33;7114:5;7087:33;:::i;:::-;6987:139;;;;:::o;7132:329::-;7191:6;7240:2;7228:9;7219:7;7215:23;7211:32;7208:119;;;7246:79;;:::i;:::-;7208:119;7366:1;7391:53;7436:7;7427:6;7416:9;7412:22;7391:53;:::i;:::-;7381:63;;7337:117;7132:329;;;;:::o;7467:180::-;7515:77;7512:1;7505:88;7612:4;7609:1;7602:15;7636:4;7633:1;7626:15;7653:191;7693:3;7712:20;7730:1;7712:20;:::i;:::-;7707:25;;7746:20;7764:1;7746:20;:::i;:::-;7741:25;;7789:1;7786;7782:9;7775:16;;7810:3;7807:1;7804:10;7801:36;;;7817:18;;:::i;:::-;7801:36;7653:191;;;;:::o;7850:180::-;7898:77;7895:1;7888:88;7995:4;7992:1;7985:15;8019:4;8016:1;8009:15;8036:176;8068:1;8085:20;8103:1;8085:20;:::i;:::-;8080:25;;8119:20;8137:1;8119:20;:::i;:::-;8114:25;;8158:1;8148:35;;8163:18;;:::i;:::-;8148:35;8204:1;8201;8197:9;8192:14;;8036:176;;;;:::o;8218:180::-;8266:77;8263:1;8256:88;8363:4;8360:1;8353:15;8387:4;8384:1;8377:15;8404:94;8437:8;8485:5;8481:2;8477:14;8456:35;;8404:94;;;:::o;8504:::-;8543:7;8572:20;8586:5;8572:20;:::i;:::-;8561:31;;8504:94;;;:::o;8604:100::-;8643:7;8672:26;8692:5;8672:26;:::i;:::-;8661:37;;8604:100;;;:::o;8710:157::-;8815:45;8835:24;8853:5;8835:24;:::i;:::-;8815:45;:::i;:::-;8810:3;8803:58;8710:157;;:::o;8873:79::-;8912:7;8941:5;8930:16;;8873:79;;;:::o;8958:157::-;9063:45;9083:24;9101:5;9083:24;:::i;:::-;9063:45;:::i;:::-;9058:3;9051:58;8958:157;;:::o;9121:538::-;9289:3;9304:75;9375:3;9366:6;9304:75;:::i;:::-;9404:2;9399:3;9395:12;9388:19;;9417:75;9488:3;9479:6;9417:75;:::i;:::-;9517:2;9512:3;9508:12;9501:19;;9530:75;9601:3;9592:6;9530:75;:::i;:::-;9630:2;9625:3;9621:12;9614:19;;9650:3;9643:10;;9121:538;;;;;;:::o;9665:117::-;9774:1;9771;9764:12;9788:180;9836:77;9833:1;9826:88;9933:4;9930:1;9923:15;9957:4;9954:1;9947:15;9974:281;10057:27;10079:4;10057:27;:::i;:::-;10049:6;10045:40;10187:6;10175:10;10172:22;10151:18;10139:10;10136:34;10133:62;10130:88;;;10198:18;;:::i;:::-;10130:88;10238:10;10234:2;10227:22;10017:238;9974:281;;:::o;10261:129::-;10295:6;10322:20;;:::i;:::-;10312:30;;10351:33;10379:4;10371:6;10351:33;:::i;:::-;10261:129;;;:::o;10396:117::-;10505:1;10502;10495:12;10519:113;10606:1;10599:5;10596:12;10586:40;;10622:1;10619;10612:12;10586:40;10519:113;:::o;10638:167::-;10698:5;10736:6;10723:20;10714:29;;10752:47;10793:5;10752:47;:::i;:::-;10638:167;;;;:::o;10852:923::-;10931:5;10975:4;10963:9;10958:3;10954:19;10950:30;10947:117;;;10983:79;;:::i;:::-;10947:117;11082:21;11098:4;11082:21;:::i;:::-;11073:30;;11163:1;11203:49;11248:3;11239:6;11228:9;11224:22;11203:49;:::i;:::-;11196:4;11189:5;11185:16;11178:75;11113:151;11327:2;11368:63;11427:3;11418:6;11407:9;11403:22;11368:63;:::i;:::-;11361:4;11354:5;11350:16;11343:89;11274:169;11504:2;11545:49;11590:3;11581:6;11570:9;11566:22;11545:49;:::i;:::-;11538:4;11531:5;11527:16;11520:75;11453:153;11666:2;11707:49;11752:3;11743:6;11732:9;11728:22;11707:49;:::i;:::-;11700:4;11693:5;11689:16;11682:75;11616:152;10852:923;;;;:::o;11781:390::-;11870:6;11919:3;11907:9;11898:7;11894:23;11890:33;11887:120;;;11926:79;;:::i;:::-;11887:120;12046:1;12071:83;12146:7;12137:6;12126:9;12122:22;12071:83;:::i;:::-;12061:93;;12017:147;11781:390;;;;:::o;12177:410::-;12217:7;12240:20;12258:1;12240:20;:::i;:::-;12235:25;;12274:20;12292:1;12274:20;:::i;:::-;12269:25;;12329:1;12326;12322:9;12351:30;12369:11;12351:30;:::i;:::-;12340:41;;12530:1;12521:7;12517:15;12514:1;12511:22;12491:1;12484:9;12464:83;12441:139;;12560:18;;:::i;:::-;12441:139;12225:362;12177:410;;;;:::o;12593:442::-;12742:4;12780:2;12769:9;12765:18;12757:26;;12793:71;12861:1;12850:9;12846:17;12837:6;12793:71;:::i;:::-;12874:72;12942:2;12931:9;12927:18;12918:6;12874:72;:::i;:::-;12956;13024:2;13013:9;13009:18;13000:6;12956:72;:::i;:::-;12593:442;;;;;;:::o;13041:108::-;13118:24;13136:5;13118:24;:::i;:::-;13113:3;13106:37;13041:108;;:::o;13225:353::-;13390:4;13385:3;13381:14;13479:4;13472:5;13468:16;13462:23;13498:63;13555:4;13550:3;13546:14;13532:12;13498:63;:::i;:::-;13405:166;13359:219;13225:353;;:::o;13584:358::-;13745:4;13783:2;13772:9;13768:18;13760:26;;13796:139;13932:1;13921:9;13917:17;13908:6;13796:139;:::i;:::-;13584:358;;;;:::o;13948:120::-;14036:1;14029:5;14026:12;14016:46;;14042:18;;:::i;:::-;14016:46;13948:120;:::o;14074:141::-;14126:7;14155:5;14144:16;;14161:48;14203:5;14161:48;:::i;:::-;14074:141;;;:::o;14221:::-;14284:9;14317:39;14350:5;14317:39;:::i;:::-;14304:52;;14221:141;;;:::o;14368:147::-;14458:50;14502:5;14458:50;:::i;:::-;14453:3;14446:63;14368:147;;:::o;14521:108::-;14598:24;14616:5;14598:24;:::i;:::-;14593:3;14586:37;14521:108;;:::o;14635:158::-;14708:11;14742:6;14737:3;14730:19;14782:4;14777:3;14773:14;14758:29;;14635:158;;;;:::o;14799:353::-;14875:3;14903:38;14935:5;14903:38;:::i;:::-;14957:60;15010:6;15005:3;14957:60;:::i;:::-;14950:67;;15026:65;15084:6;15079:3;15072:4;15065:5;15061:16;15026:65;:::i;:::-;15116:29;15138:6;15116:29;:::i;:::-;15111:3;15107:39;15100:46;;14879:273;14799:353;;;;:::o;15214:977::-;15337:3;15373:4;15368:3;15364:14;15465:4;15458:5;15454:16;15448:23;15484:76;15554:4;15549:3;15545:14;15531:12;15484:76;:::i;:::-;15388:182;15653:4;15646:5;15642:16;15636:23;15672:63;15729:4;15724:3;15720:14;15706:12;15672:63;:::i;:::-;15580:165;15829:4;15822:5;15818:16;15812:23;15848:63;15905:4;15900:3;15896:14;15882:12;15848:63;:::i;:::-;15755:166;16003:4;15996:5;15992:16;15986:23;16056:3;16050:4;16046:14;16039:4;16034:3;16030:14;16023:38;16082:71;16148:4;16134:12;16082:71;:::i;:::-;16074:79;;15931:233;16181:4;16174:11;;15342:849;15214:977;;;;:::o;16197:381::-;16344:4;16382:2;16371:9;16367:18;16359:26;;16431:9;16425:4;16421:20;16417:1;16406:9;16402:17;16395:47;16459:112;16566:4;16557:6;16459:112;:::i;:::-;16451:120;;16197:381;;;;:::o;16584:117::-;16693:1;16690;16683:12;16707:307;16768:4;16858:18;16850:6;16847:30;16844:56;;;16880:18;;:::i;:::-;16844:56;16918:29;16940:6;16918:29;:::i;:::-;16910:37;;17002:4;16996;16992:15;16984:23;;16707:307;;;:::o;17020:148::-;17118:6;17113:3;17108;17095:30;17159:1;17150:6;17145:3;17141:16;17134:27;17020:148;;;:::o;17174:423::-;17251:5;17276:65;17292:48;17333:6;17292:48;:::i;:::-;17276:65;:::i;:::-;17267:74;;17364:6;17357:5;17350:21;17402:4;17395:5;17391:16;17440:3;17431:6;17426:3;17422:16;17419:25;17416:112;;;17447:79;;:::i;:::-;17416:112;17537:54;17584:6;17579:3;17574;17537:54;:::i;:::-;17257:340;17174:423;;;;;:::o;17616:338::-;17671:5;17720:3;17713:4;17705:6;17701:17;17697:27;17687:122;;17728:79;;:::i;:::-;17687:122;17845:6;17832:20;17870:78;17944:3;17936:6;17929:4;17921:6;17917:17;17870:78;:::i;:::-;17861:87;;17677:277;17616:338;;;;:::o;17997:751::-;18077:5;18121:4;18109:9;18104:3;18100:19;18096:30;18093:117;;;18129:79;;:::i;:::-;18093:117;18228:21;18244:4;18228:21;:::i;:::-;18219:30;;18310:1;18350:49;18395:3;18386:6;18375:9;18371:22;18350:49;:::i;:::-;18343:4;18336:5;18332:16;18325:75;18259:152;18498:2;18487:9;18483:18;18470:32;18529:18;18521:6;18518:30;18515:117;;;18551:79;;:::i;:::-;18515:117;18671:58;18725:3;18716:6;18705:9;18701:22;18671:58;:::i;:::-;18664:4;18657:5;18653:16;18646:84;18421:320;17997:751;;;;:::o;18754:551::-;18844:6;18893:2;18881:9;18872:7;18868:23;18864:32;18861:119;;;18899:79;;:::i;:::-;18861:119;19047:1;19036:9;19032:17;19019:31;19077:18;19069:6;19066:30;19063:117;;;19099:79;;:::i;:::-;19063:117;19204:84;19280:7;19271:6;19260:9;19256:22;19204:84;:::i;:::-;19194:94;;18990:308;18754:551;;;;:::o;19311:233::-;19350:3;19373:24;19391:5;19373:24;:::i;:::-;19364:33;;19419:66;19412:5;19409:77;19406:103;;19489:18;;:::i;:::-;19406:103;19536:1;19529:5;19525:13;19518:20;;19311:233;;;:::o;19550:143::-;19607:5;19638:6;19632:13;19623:22;;19654:33;19681:5;19654:33;:::i;:::-;19550:143;;;;:::o;19699:351::-;19769:6;19818:2;19806:9;19797:7;19793:23;19789:32;19786:119;;;19824:79;;:::i;:::-;19786:119;19944:1;19969:64;20025:7;20016:6;20005:9;20001:22;19969:64;:::i;:::-;19959:74;;19915:128;19699:351;;;;:::o;20126:618::-;20257:3;20293:4;20288:3;20284:14;20382:4;20375:5;20371:16;20365:23;20401:63;20458:4;20453:3;20449:14;20435:12;20401:63;:::i;:::-;20308:166;20556:4;20549:5;20545:16;20539:23;20609:3;20603:4;20599:14;20592:4;20587:3;20583:14;20576:38;20635:71;20701:4;20687:12;20635:71;:::i;:::-;20627:79;;20484:233;20734:4;20727:11;;20262:482;20126:618;;;;:::o;20750:397::-;20905:4;20943:2;20932:9;20928:18;20920:26;;20992:9;20986:4;20982:20;20978:1;20967:9;20963:17;20956:47;21020:120;21135:4;21126:6;21020:120;:::i;:::-;21012:128;;20750:397;;;;:::o;21153:419::-;21292:4;21330:2;21319:9;21315:18;21307:26;;21343:71;21411:1;21400:9;21396:17;21387:6;21343:71;:::i;:::-;21461:9;21455:4;21451:20;21446:2;21435:9;21431:18;21424:48;21489:76;21560:4;21551:6;21489:76;:::i;:::-;21481:84;;21153:419;;;;;:::o;21578:185::-;21618:1;21635:20;21653:1;21635:20;:::i;:::-;21630:25;;21669:20;21687:1;21669:20;:::i;:::-;21664:25;;21708:1;21698:35;;21713:18;;:::i;:::-;21698:35;21755:1;21752;21748:9;21743:14;;21578:185;;;;:::o;21769:194::-;21809:4;21829:20;21847:1;21829:20;:::i;:::-;21824:25;;21863:20;21881:1;21863:20;:::i;:::-;21858:25;;21907:1;21904;21900:9;21892:17;;21931:1;21925:4;21922:11;21919:37;;;21936:18;;:::i;:::-;21919:37;21769:194;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","drawRaffle()":"2275aea9","entries(uint256)":"b30906d4","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entry\",\"type\":\"address\"}],\"name\":\"Entry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"drawRaffle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"entries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum ERC20Incentive.Strategy\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"drawRaffle()\":{\"details\":\"Only valid when the strategy is set to `Strategy.RAFFLE`\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The {InitPayload} for the incentive\"},\"returns\":{\"budgetData\":\"The {Transfer} payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC20 Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"},\"Entry(address)\":{\"notice\":\"Emitted when an entry is added to the raffle\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC20-like token\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new ERC20Incentive\"},\"drawRaffle()\":{\"notice\":\"Draw a winner from the raffle\"},\"entries(uint256)\":{\"notice\":\"The set of addresses that have claimed a slot in the incentive raffle\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The limit (max claims, or max entries for raffles)\"},\"preflight(bytes)\":{\"notice\":\"Preflight the incentive to determine the required budget action\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple ERC20 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/ERC20Incentive.sol\":\"ERC20Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibPRNG.sol\":{\"keccak256\":\"0xdcb71f8dc72bb7384776154ca24d34c23e3c9bcf124bc75f0d2e379f9ebd021d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64e23b9ccfd1a5842268d36fe2798a13b063fe7821d0e952ea4758df5cc386f\",\"dweb:/ipfs/QmVTtkbUuEMi4gryE6NW2BGg5WGwRt1LX4KXNfH87BBZQk\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/ERC20Incentive.sol\":{\"keccak256\":\"0x87648999e2f823567683bfd1857c7498f5eedb461bcd783ca99faef2a3a8c1bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f32508ad32eb54bfccd04a30dee729b50d14f8041f5deac9d903931f09613831\",\"dweb:/ipfs/QmPpoyHzQAVX5FTXj99Qdx1N9Sstj1ZN4AgH5VZtpKKVgk\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/Incentive.sol":{"Incentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Initialize the contract and set the owner\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Incentive within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/Incentive.sol\":\"Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/PointsIncentive.sol":{"PointsIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"quantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"venue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_17301":{"entryPoint":null,"id":17301,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6115d4806101b45f395ff3fe608060405260043610610113575f3560e01c8063a4d66daf1161009f578063ea3d508a11610063578063ea3d508a1461035b578063f04e283e14610385578063f1c30ec0146103a1578063f2fde38b146103dd578063fee81cf4146103f957610113565b8063a4d66daf14610253578063c63ff8dd1461027d578063c884ef83146102b9578063dcc59b6f146102f5578063e18e65081461031f57610113565b80634e7165a2116100e65780634e7165a2146101af57806354d1f13d146101eb578063715018a6146101f55780638da5cb5b146101ff578063a270a7371461022957610113565b806301ffc9a71461011757806317fc45e214610153578063256929621461017d578063439fab9114610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610ec8565b610435565b60405161014a9190610f0d565b60405180910390f35b34801561015e575f80fd5b506101676104ae565b6040516101749190610f3e565b60405180910390f35b6101856104b4565b005b348015610192575f80fd5b506101ad60048036038101906101a89190610fb8565b610505565b005b3480156101ba575f80fd5b506101d560048036038101906101d09190610fb8565b61065d565b6040516101e29190611073565b60405180910390f35b6101f36106b4565b005b6101fd6106ed565b005b34801561020a575f80fd5b50610213610700565b60405161022091906110d2565b60405180910390f35b348015610234575f80fd5b5061023d610728565b60405161024a91906110d2565b60405180910390f35b34801561025e575f80fd5b5061026761074d565b6040516102749190610f3e565b60405180910390f35b348015610288575f80fd5b506102a3600480360381019061029e9190610fb8565b610753565b6040516102b09190610f0d565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190611115565b610a06565b6040516102ec9190610f0d565b60405180910390f35b348015610300575f80fd5b50610309610a23565b6040516103169190610f3e565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190610fb8565b610a28565b6040516103529190610f0d565b60405180910390f35b348015610366575f80fd5b5061036f610a50565b60405161037c919061114f565b60405180910390f35b61039f600480360381019061039a9190611115565b610a62565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190610fb8565b610aa0565b6040516103d49190610f0d565b60405180910390f35b6103f760048036038101906103f29190611115565b610ad3565b005b348015610404575f80fd5b5061041f600480360381019061041a9190611115565b610afc565b60405161042c9190610f3e565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104a757506104a682610b15565b5b9050919050565b60035481565b5f6104bd610b8e565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61050e610b98565b905080546003825580156105405760018160011c14303b106105375763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105519190611287565b90505f8160400151148061056857505f8160600151145b1561059f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015160055f6101000a81548163ffffffff021916908360e01c02179055508060400151600381905550806060015160048190555061062233610bc1565b508015610658576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156106795761067861116c565b5b6040519080825280601f01601f1916602001820160405280156106ab5781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6106f5610c97565b6106fe5f610cce565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b5f61075c610c97565b5f838381019061076c91906113cb565b905061077a815f0151610d94565b6107b0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906107c19061143f565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900460e01b835f015160035460405160240161087d929190611486565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108e791906114e7565b5f604051808303815f865af19150503d805f8114610920576040519150601f19603f3d011682016040523d82523d5f602084013e610925565b606091505b5050905080610960576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01516003546040516020016109d693929190611562565b6040516020818303038152906040526040516109f29190611073565b60405180910390a260019250505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610a3991906113cb565b9050610a47815f0151610d94565b91505092915050565b60055f9054906101000a900460e01b81565b610a6a610c97565b63389a75e1600c52805f526020600c208054421115610a9057636f5e88185f526004601cfd5b5f815550610a9d81610cce565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610adb610c97565b8060601b610af057637448fbae5f526004601cfd5b610af981610cce565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b875750610b8682610df5565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bc9610e5e565b15610c41577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c94565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ccc576382b429005f526004601cfd5b565b610cd6610e5e565b15610d3b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d91565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610dee57506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ea781610e73565b8114610eb1575f80fd5b50565b5f81359050610ec281610e9e565b92915050565b5f60208284031215610edd57610edc610e6b565b5b5f610eea84828501610eb4565b91505092915050565b5f8115159050919050565b610f0781610ef3565b82525050565b5f602082019050610f205f830184610efe565b92915050565b5f819050919050565b610f3881610f26565b82525050565b5f602082019050610f515f830184610f2f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f7857610f77610f57565b5b8235905067ffffffffffffffff811115610f9557610f94610f5b565b5b602083019150836001820283011115610fb157610fb0610f5f565b5b9250929050565b5f8060208385031215610fce57610fcd610e6b565b5b5f83013567ffffffffffffffff811115610feb57610fea610e6f565b5b610ff785828601610f63565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61104582611003565b61104f818561100d565b935061105f81856020860161101d565b6110688161102b565b840191505092915050565b5f6020820190508181035f83015261108b818461103b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110bc82611093565b9050919050565b6110cc816110b2565b82525050565b5f6020820190506110e55f8301846110c3565b92915050565b6110f4816110b2565b81146110fe575f80fd5b50565b5f8135905061110f816110eb565b92915050565b5f6020828403121561112a57611129610e6b565b5b5f61113784828501611101565b91505092915050565b61114981610e73565b82525050565b5f6020820190506111625f830184611140565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111a28261102b565b810181811067ffffffffffffffff821117156111c1576111c061116c565b5b80604052505050565b5f6111d3610e62565b90506111df8282611199565b919050565b5f80fd5b6111f181610f26565b81146111fb575f80fd5b50565b5f8135905061120c816111e8565b92915050565b5f6080828403121561122757611226611168565b5b61123160806111ca565b90505f61124084828501611101565b5f83015250602061125384828501610eb4565b6020830152506040611267848285016111fe565b604083015250606061127b848285016111fe565b60608301525092915050565b5f6080828403121561129c5761129b610e6b565b5b5f6112a984828501611212565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112d0576112cf61116c565b5b6112d98261102b565b9050602081019050919050565b828183375f83830152505050565b5f611306611301846112b6565b6111ca565b905082815260208101848484011115611322576113216112b2565b5b61132d8482856112e6565b509392505050565b5f82601f83011261134957611348610f57565b5b81356113598482602086016112f4565b91505092915050565b5f6040828403121561137757611376611168565b5b61138160406111ca565b90505f61139084828501611101565b5f83015250602082013567ffffffffffffffff8111156113b3576113b26111e4565b5b6113bf84828501611335565b60208301525092915050565b5f602082840312156113e0576113df610e6b565b5b5f82013567ffffffffffffffff8111156113fd576113fc610e6f565b5b61140984828501611362565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61144982610f26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361147b5761147a611412565b5b600182019050919050565b5f6040820190506114995f8301856110c3565b6114a66020830184610f2f565b9392505050565b5f81905092915050565b5f6114c182611003565b6114cb81856114ad565b93506114db81856020860161101d565b80840191505092915050565b5f6114f282846114b7565b915081905092915050565b5f8160601b9050919050565b5f611513826114fd565b9050919050565b5f61152482611509565b9050919050565b61153c611537826110b2565b61151a565b82525050565b5f819050919050565b61155c61155782610f26565b611542565b82525050565b5f61156d828661152b565b60148201915061157d828561152b565b60148201915061158d828461154b565b60208201915081905094935050505056fea264697066735822122044670bf79133237915832c922e2e0a39e868512253a569f3922fb3609fd6e1a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x15D4 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA3D508A GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3F9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2B9 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2F5 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x31F JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xA270A737 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x17FC45E2 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xEC8 JUMP JUMPDEST PUSH2 0x435 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x4B4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x505 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F3 PUSH2 0x6B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x6ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x728 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x267 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA06 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EC SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x309 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x316 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x345 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x36F PUSH2 0xA50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x114F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA62 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4A7 JUMPI POP PUSH2 0x4A6 DUP3 PUSH2 0xB15 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0xB8E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x50E PUSH2 0xB98 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x540 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x537 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x1287 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x568 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x5 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x622 CALLER PUSH2 0xBC1 JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x679 JUMPI PUSH2 0x678 PUSH2 0x116C 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 0x6AB 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x6F5 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0x6FE PUSH0 PUSH2 0xCCE JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x75C PUSH2 0xC97 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x76C SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0x77A DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x7C1 SWAP1 PUSH2 0x143F JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x87D SWAP3 SWAP2 SWAP1 PUSH2 0x1486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x14E7 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x920 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x925 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH32 0x360E42E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x9F2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA39 SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xA6A PUSH2 0xC97 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xA90 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xA9D DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xADB PUSH2 0xC97 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xAF0 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xAF9 DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB87 JUMPI POP PUSH2 0xB86 DUP3 PUSH2 0xDF5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBC9 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xC41 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xC03 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC94 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xCCC JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xCD6 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xD3B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xD91 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0xDEE JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA7 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xEB1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEC2 DUP2 PUSH2 0xE9E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEDD JUMPI PUSH2 0xEDC PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEEA DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF07 DUP2 PUSH2 0xEF3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF20 PUSH0 DUP4 ADD DUP5 PUSH2 0xEFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF38 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF51 PUSH0 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF78 JUMPI PUSH2 0xF77 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF95 JUMPI PUSH2 0xF94 PUSH2 0xF5B JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFB1 JUMPI PUSH2 0xFB0 PUSH2 0xF5F JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCE JUMPI PUSH2 0xFCD PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFEB JUMPI PUSH2 0xFEA PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0xFF7 DUP6 DUP3 DUP7 ADD PUSH2 0xF63 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1045 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x104F DUP2 DUP6 PUSH2 0x100D JUMP JUMPDEST SWAP4 POP PUSH2 0x105F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST PUSH2 0x1068 DUP2 PUSH2 0x102B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x108B DUP2 DUP5 PUSH2 0x103B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BC DUP3 PUSH2 0x1093 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10CC DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10E5 PUSH0 DUP4 ADD DUP5 PUSH2 0x10C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10F4 DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x10FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x110F DUP2 PUSH2 0x10EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x112A JUMPI PUSH2 0x1129 PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1137 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1149 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1162 PUSH0 DUP4 ADD DUP5 PUSH2 0x1140 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11A2 DUP3 PUSH2 0x102B JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11C1 JUMPI PUSH2 0x11C0 PUSH2 0x116C JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11D3 PUSH2 0xE62 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DF DUP3 DUP3 PUSH2 0x1199 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11F1 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP2 EQ PUSH2 0x11FB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x120C DUP2 PUSH2 0x11E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1227 JUMPI PUSH2 0x1226 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1231 PUSH1 0x80 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1240 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1253 DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1267 DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x127B DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x129C JUMPI PUSH2 0x129B PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12CF PUSH2 0x116C JUMP JUMPDEST JUMPDEST PUSH2 0x12D9 DUP3 PUSH2 0x102B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1306 PUSH2 0x1301 DUP5 PUSH2 0x12B6 JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1322 JUMPI PUSH2 0x1321 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST PUSH2 0x132D DUP5 DUP3 DUP6 PUSH2 0x12E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1359 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1377 JUMPI PUSH2 0x1376 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1381 PUSH1 0x40 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1390 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13B3 JUMPI PUSH2 0x13B2 PUSH2 0x11E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13BF DUP5 DUP3 DUP6 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13DF PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13FD JUMPI PUSH2 0x13FC PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0x1409 DUP5 DUP3 DUP6 ADD PUSH2 0x1362 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1449 DUP3 PUSH2 0xF26 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x147B JUMPI PUSH2 0x147A PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1499 PUSH0 DUP4 ADD DUP6 PUSH2 0x10C3 JUMP JUMPDEST PUSH2 0x14A6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14C1 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x14CB DUP2 DUP6 PUSH2 0x14AD JUMP JUMPDEST SWAP4 POP PUSH2 0x14DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14F2 DUP3 DUP5 PUSH2 0x14B7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1513 DUP3 PUSH2 0x14FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1524 DUP3 PUSH2 0x1509 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153C PUSH2 0x1537 DUP3 PUSH2 0x10B2 JUMP JUMPDEST PUSH2 0x151A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x155C PUSH2 0x1557 DUP3 PUSH2 0xF26 JUMP JUMPDEST PUSH2 0x1542 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x156D DUP3 DUP7 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x157D DUP3 DUP6 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x158D DUP3 DUP5 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO PUSH8 0xBF7913323791583 0x2C SWAP3 0x2E 0x2E EXP CODECOPY 0xE8 PUSH9 0x512253A569F3922FB3 PUSH1 0x9F 0xD6 0xE1 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"636:3613:45:-:0;;;1493:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;1517:22:45;:20;;;:22;;:::i;:::-;636:3613;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;636:3613:45:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":3223,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3678,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2968,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":3009,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_17508":{"entryPoint":3476,"id":17508,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":2958,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":3278,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1716,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_17435":{"entryPoint":1875,"id":17435,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":2566,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":2595,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2658,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_17361":{"entryPoint":1285,"id":17361,"parameterSlots":2,"returnSlots":0},"@isClaimable_17490":{"entryPoint":2600,"id":17490,"parameterSlots":2,"returnSlots":1},"@limit_17290":{"entryPoint":1869,"id":17290,"parameterSlots":0,"returnSlots":0},"@owner_6404":{"entryPoint":1792,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2812,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_17465":{"entryPoint":1629,"id":17465,"parameterSlots":2,"returnSlots":1},"@quantity_17287":{"entryPoint":1198,"id":17287,"parameterSlots":0,"returnSlots":0},"@reclaim_17450":{"entryPoint":2720,"id":17450,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1773,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1204,"id":6376,"parameterSlots":0,"returnSlots":0},"@selector_17293":{"entryPoint":2640,"id":17293,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":1077,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":2837,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":3573,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":2771,"id":6347,"parameterSlots":1,"returnSlots":0},"@venue_17284":{"entryPoint":1832,"id":17284,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4852,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4353,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3764,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3939,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4917,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":4962,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$17281_memory_ptr":{"entryPoint":4626,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4606,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4373,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3784,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4024,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":5067,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$17281_memory_ptr":{"entryPoint":4743,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4291,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":5419,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3838,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4416,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5303,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3887,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":5451,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":5474,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5351,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4306,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":5254,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3853,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4431,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4211,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3902,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4554,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3682,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4790,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4099,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4109,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5293,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4274,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3827,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3699,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4243,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3878,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4838,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4125,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4505,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":5183,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":5402,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":5385,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":5442,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5138,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4460,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3931,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3927,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4456,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":4580,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3935,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4786,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3695,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3691,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4139,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":5373,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":4331,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3742,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4584,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14241:53","nodeType":"YulBlock","src":"0:14241:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"2042:28:53","nodeType":"YulBlock","src":"2042:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2059:1:53","nodeType":"YulLiteral","src":"2059:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2062:1:53","nodeType":"YulLiteral","src":"2062:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2052:6:53","nodeType":"YulIdentifier","src":"2052:6:53"},"nativeSrc":"2052:12:53","nodeType":"YulFunctionCall","src":"2052:12:53"},"nativeSrc":"2052:12:53","nodeType":"YulExpressionStatement","src":"2052:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1953:117:53","nodeType":"YulFunctionDefinition","src":"1953:117:53"},{"body":{"nativeSrc":"2165:28:53","nodeType":"YulBlock","src":"2165:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2182:1:53","nodeType":"YulLiteral","src":"2182:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2185:1:53","nodeType":"YulLiteral","src":"2185:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2175:6:53","nodeType":"YulIdentifier","src":"2175:6:53"},"nativeSrc":"2175:12:53","nodeType":"YulFunctionCall","src":"2175:12:53"},"nativeSrc":"2175:12:53","nodeType":"YulExpressionStatement","src":"2175:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2076:117:53","nodeType":"YulFunctionDefinition","src":"2076:117:53"},{"body":{"nativeSrc":"2288:28:53","nodeType":"YulBlock","src":"2288:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2305:1:53","nodeType":"YulLiteral","src":"2305:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2308:1:53","nodeType":"YulLiteral","src":"2308:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2298:6:53","nodeType":"YulIdentifier","src":"2298:6:53"},"nativeSrc":"2298:12:53","nodeType":"YulFunctionCall","src":"2298:12:53"},"nativeSrc":"2298:12:53","nodeType":"YulExpressionStatement","src":"2298:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2199:117:53","nodeType":"YulFunctionDefinition","src":"2199:117:53"},{"body":{"nativeSrc":"2409:478:53","nodeType":"YulBlock","src":"2409:478:53","statements":[{"body":{"nativeSrc":"2458:83:53","nodeType":"YulBlock","src":"2458:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2460:77:53","nodeType":"YulIdentifier","src":"2460:77:53"},"nativeSrc":"2460:79:53","nodeType":"YulFunctionCall","src":"2460:79:53"},"nativeSrc":"2460:79:53","nodeType":"YulExpressionStatement","src":"2460:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2437:6:53","nodeType":"YulIdentifier","src":"2437:6:53"},{"kind":"number","nativeSrc":"2445:4:53","nodeType":"YulLiteral","src":"2445:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2433:3:53","nodeType":"YulIdentifier","src":"2433:3:53"},"nativeSrc":"2433:17:53","nodeType":"YulFunctionCall","src":"2433:17:53"},{"name":"end","nativeSrc":"2452:3:53","nodeType":"YulIdentifier","src":"2452:3:53"}],"functionName":{"name":"slt","nativeSrc":"2429:3:53","nodeType":"YulIdentifier","src":"2429:3:53"},"nativeSrc":"2429:27:53","nodeType":"YulFunctionCall","src":"2429:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2422:6:53","nodeType":"YulIdentifier","src":"2422:6:53"},"nativeSrc":"2422:35:53","nodeType":"YulFunctionCall","src":"2422:35:53"},"nativeSrc":"2419:122:53","nodeType":"YulIf","src":"2419:122:53"},{"nativeSrc":"2550:30:53","nodeType":"YulAssignment","src":"2550:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2573:6:53","nodeType":"YulIdentifier","src":"2573:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2560:12:53","nodeType":"YulIdentifier","src":"2560:12:53"},"nativeSrc":"2560:20:53","nodeType":"YulFunctionCall","src":"2560:20:53"},"variableNames":[{"name":"length","nativeSrc":"2550:6:53","nodeType":"YulIdentifier","src":"2550:6:53"}]},{"body":{"nativeSrc":"2623:83:53","nodeType":"YulBlock","src":"2623:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2625:77:53","nodeType":"YulIdentifier","src":"2625:77:53"},"nativeSrc":"2625:79:53","nodeType":"YulFunctionCall","src":"2625:79:53"},"nativeSrc":"2625:79:53","nodeType":"YulExpressionStatement","src":"2625:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2595:6:53","nodeType":"YulIdentifier","src":"2595:6:53"},{"kind":"number","nativeSrc":"2603:18:53","nodeType":"YulLiteral","src":"2603:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2592:2:53","nodeType":"YulIdentifier","src":"2592:2:53"},"nativeSrc":"2592:30:53","nodeType":"YulFunctionCall","src":"2592:30:53"},"nativeSrc":"2589:117:53","nodeType":"YulIf","src":"2589:117:53"},{"nativeSrc":"2715:29:53","nodeType":"YulAssignment","src":"2715:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2731:6:53","nodeType":"YulIdentifier","src":"2731:6:53"},{"kind":"number","nativeSrc":"2739:4:53","nodeType":"YulLiteral","src":"2739:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2727:3:53","nodeType":"YulIdentifier","src":"2727:3:53"},"nativeSrc":"2727:17:53","nodeType":"YulFunctionCall","src":"2727:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2715:8:53","nodeType":"YulIdentifier","src":"2715:8:53"}]},{"body":{"nativeSrc":"2798:83:53","nodeType":"YulBlock","src":"2798:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2800:77:53","nodeType":"YulIdentifier","src":"2800:77:53"},"nativeSrc":"2800:79:53","nodeType":"YulFunctionCall","src":"2800:79:53"},"nativeSrc":"2800:79:53","nodeType":"YulExpressionStatement","src":"2800:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2763:8:53","nodeType":"YulIdentifier","src":"2763:8:53"},{"arguments":[{"name":"length","nativeSrc":"2777:6:53","nodeType":"YulIdentifier","src":"2777:6:53"},{"kind":"number","nativeSrc":"2785:4:53","nodeType":"YulLiteral","src":"2785:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2773:3:53","nodeType":"YulIdentifier","src":"2773:3:53"},"nativeSrc":"2773:17:53","nodeType":"YulFunctionCall","src":"2773:17:53"}],"functionName":{"name":"add","nativeSrc":"2759:3:53","nodeType":"YulIdentifier","src":"2759:3:53"},"nativeSrc":"2759:32:53","nodeType":"YulFunctionCall","src":"2759:32:53"},{"name":"end","nativeSrc":"2793:3:53","nodeType":"YulIdentifier","src":"2793:3:53"}],"functionName":{"name":"gt","nativeSrc":"2756:2:53","nodeType":"YulIdentifier","src":"2756:2:53"},"nativeSrc":"2756:41:53","nodeType":"YulFunctionCall","src":"2756:41:53"},"nativeSrc":"2753:128:53","nodeType":"YulIf","src":"2753:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2335:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2376:6:53","nodeType":"YulTypedName","src":"2376:6:53","type":""},{"name":"end","nativeSrc":"2384:3:53","nodeType":"YulTypedName","src":"2384:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2392:8:53","nodeType":"YulTypedName","src":"2392:8:53","type":""},{"name":"length","nativeSrc":"2402:6:53","nodeType":"YulTypedName","src":"2402:6:53","type":""}],"src":"2335:552:53"},{"body":{"nativeSrc":"2978:442:53","nodeType":"YulBlock","src":"2978:442:53","statements":[{"body":{"nativeSrc":"3024:83:53","nodeType":"YulBlock","src":"3024:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3026:77:53","nodeType":"YulIdentifier","src":"3026:77:53"},"nativeSrc":"3026:79:53","nodeType":"YulFunctionCall","src":"3026:79:53"},"nativeSrc":"3026:79:53","nodeType":"YulExpressionStatement","src":"3026:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2999:7:53","nodeType":"YulIdentifier","src":"2999:7:53"},{"name":"headStart","nativeSrc":"3008:9:53","nodeType":"YulIdentifier","src":"3008:9:53"}],"functionName":{"name":"sub","nativeSrc":"2995:3:53","nodeType":"YulIdentifier","src":"2995:3:53"},"nativeSrc":"2995:23:53","nodeType":"YulFunctionCall","src":"2995:23:53"},{"kind":"number","nativeSrc":"3020:2:53","nodeType":"YulLiteral","src":"3020:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2991:3:53","nodeType":"YulIdentifier","src":"2991:3:53"},"nativeSrc":"2991:32:53","nodeType":"YulFunctionCall","src":"2991:32:53"},"nativeSrc":"2988:119:53","nodeType":"YulIf","src":"2988:119:53"},{"nativeSrc":"3117:296:53","nodeType":"YulBlock","src":"3117:296:53","statements":[{"nativeSrc":"3132:45:53","nodeType":"YulVariableDeclaration","src":"3132:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3163:9:53","nodeType":"YulIdentifier","src":"3163:9:53"},{"kind":"number","nativeSrc":"3174:1:53","nodeType":"YulLiteral","src":"3174:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3159:3:53","nodeType":"YulIdentifier","src":"3159:3:53"},"nativeSrc":"3159:17:53","nodeType":"YulFunctionCall","src":"3159:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:53","nodeType":"YulIdentifier","src":"3146:12:53"},"nativeSrc":"3146:31:53","nodeType":"YulFunctionCall","src":"3146:31:53"},"variables":[{"name":"offset","nativeSrc":"3136:6:53","nodeType":"YulTypedName","src":"3136:6:53","type":""}]},{"body":{"nativeSrc":"3224:83:53","nodeType":"YulBlock","src":"3224:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3226:77:53","nodeType":"YulIdentifier","src":"3226:77:53"},"nativeSrc":"3226:79:53","nodeType":"YulFunctionCall","src":"3226:79:53"},"nativeSrc":"3226:79:53","nodeType":"YulExpressionStatement","src":"3226:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3196:6:53","nodeType":"YulIdentifier","src":"3196:6:53"},{"kind":"number","nativeSrc":"3204:18:53","nodeType":"YulLiteral","src":"3204:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3193:2:53","nodeType":"YulIdentifier","src":"3193:2:53"},"nativeSrc":"3193:30:53","nodeType":"YulFunctionCall","src":"3193:30:53"},"nativeSrc":"3190:117:53","nodeType":"YulIf","src":"3190:117:53"},{"nativeSrc":"3321:82:53","nodeType":"YulAssignment","src":"3321:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3375:9:53","nodeType":"YulIdentifier","src":"3375:9:53"},{"name":"offset","nativeSrc":"3386:6:53","nodeType":"YulIdentifier","src":"3386:6:53"}],"functionName":{"name":"add","nativeSrc":"3371:3:53","nodeType":"YulIdentifier","src":"3371:3:53"},"nativeSrc":"3371:22:53","nodeType":"YulFunctionCall","src":"3371:22:53"},{"name":"dataEnd","nativeSrc":"3395:7:53","nodeType":"YulIdentifier","src":"3395:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3339:31:53","nodeType":"YulIdentifier","src":"3339:31:53"},"nativeSrc":"3339:64:53","nodeType":"YulFunctionCall","src":"3339:64:53"},"variableNames":[{"name":"value0","nativeSrc":"3321:6:53","nodeType":"YulIdentifier","src":"3321:6:53"},{"name":"value1","nativeSrc":"3329:6:53","nodeType":"YulIdentifier","src":"3329:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2893:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulTypedName","src":"2940:9:53","type":""},{"name":"dataEnd","nativeSrc":"2951:7:53","nodeType":"YulTypedName","src":"2951:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2963:6:53","nodeType":"YulTypedName","src":"2963:6:53","type":""},{"name":"value1","nativeSrc":"2971:6:53","nodeType":"YulTypedName","src":"2971:6:53","type":""}],"src":"2893:527:53"},{"body":{"nativeSrc":"3484:40:53","nodeType":"YulBlock","src":"3484:40:53","statements":[{"nativeSrc":"3495:22:53","nodeType":"YulAssignment","src":"3495:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3511:5:53","nodeType":"YulIdentifier","src":"3511:5:53"}],"functionName":{"name":"mload","nativeSrc":"3505:5:53","nodeType":"YulIdentifier","src":"3505:5:53"},"nativeSrc":"3505:12:53","nodeType":"YulFunctionCall","src":"3505:12:53"},"variableNames":[{"name":"length","nativeSrc":"3495:6:53","nodeType":"YulIdentifier","src":"3495:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3426:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3467:5:53","nodeType":"YulTypedName","src":"3467:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3477:6:53","nodeType":"YulTypedName","src":"3477:6:53","type":""}],"src":"3426:98:53"},{"body":{"nativeSrc":"3625:73:53","nodeType":"YulBlock","src":"3625:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3642:3:53","nodeType":"YulIdentifier","src":"3642:3:53"},{"name":"length","nativeSrc":"3647:6:53","nodeType":"YulIdentifier","src":"3647:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3635:6:53","nodeType":"YulIdentifier","src":"3635:6:53"},"nativeSrc":"3635:19:53","nodeType":"YulFunctionCall","src":"3635:19:53"},"nativeSrc":"3635:19:53","nodeType":"YulExpressionStatement","src":"3635:19:53"},{"nativeSrc":"3663:29:53","nodeType":"YulAssignment","src":"3663:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3682:3:53","nodeType":"YulIdentifier","src":"3682:3:53"},{"kind":"number","nativeSrc":"3687:4:53","nodeType":"YulLiteral","src":"3687:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3678:3:53","nodeType":"YulIdentifier","src":"3678:3:53"},"nativeSrc":"3678:14:53","nodeType":"YulFunctionCall","src":"3678:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3663:11:53","nodeType":"YulIdentifier","src":"3663:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3530:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3597:3:53","nodeType":"YulTypedName","src":"3597:3:53","type":""},{"name":"length","nativeSrc":"3602:6:53","nodeType":"YulTypedName","src":"3602:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3613:11:53","nodeType":"YulTypedName","src":"3613:11:53","type":""}],"src":"3530:168:53"},{"body":{"nativeSrc":"3766:77:53","nodeType":"YulBlock","src":"3766:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3783:3:53","nodeType":"YulIdentifier","src":"3783:3:53"},{"name":"src","nativeSrc":"3788:3:53","nodeType":"YulIdentifier","src":"3788:3:53"},{"name":"length","nativeSrc":"3793:6:53","nodeType":"YulIdentifier","src":"3793:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3777:5:53","nodeType":"YulIdentifier","src":"3777:5:53"},"nativeSrc":"3777:23:53","nodeType":"YulFunctionCall","src":"3777:23:53"},"nativeSrc":"3777:23:53","nodeType":"YulExpressionStatement","src":"3777:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3820:3:53","nodeType":"YulIdentifier","src":"3820:3:53"},{"name":"length","nativeSrc":"3825:6:53","nodeType":"YulIdentifier","src":"3825:6:53"}],"functionName":{"name":"add","nativeSrc":"3816:3:53","nodeType":"YulIdentifier","src":"3816:3:53"},"nativeSrc":"3816:16:53","nodeType":"YulFunctionCall","src":"3816:16:53"},{"kind":"number","nativeSrc":"3834:1:53","nodeType":"YulLiteral","src":"3834:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3809:6:53","nodeType":"YulIdentifier","src":"3809:6:53"},"nativeSrc":"3809:27:53","nodeType":"YulFunctionCall","src":"3809:27:53"},"nativeSrc":"3809:27:53","nodeType":"YulExpressionStatement","src":"3809:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3704:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3748:3:53","nodeType":"YulTypedName","src":"3748:3:53","type":""},{"name":"dst","nativeSrc":"3753:3:53","nodeType":"YulTypedName","src":"3753:3:53","type":""},{"name":"length","nativeSrc":"3758:6:53","nodeType":"YulTypedName","src":"3758:6:53","type":""}],"src":"3704:139:53"},{"body":{"nativeSrc":"3897:54:53","nodeType":"YulBlock","src":"3897:54:53","statements":[{"nativeSrc":"3907:38:53","nodeType":"YulAssignment","src":"3907:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3925:5:53","nodeType":"YulIdentifier","src":"3925:5:53"},{"kind":"number","nativeSrc":"3932:2:53","nodeType":"YulLiteral","src":"3932:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3921:3:53","nodeType":"YulIdentifier","src":"3921:3:53"},"nativeSrc":"3921:14:53","nodeType":"YulFunctionCall","src":"3921:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3941:2:53","nodeType":"YulLiteral","src":"3941:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3937:3:53","nodeType":"YulIdentifier","src":"3937:3:53"},"nativeSrc":"3937:7:53","nodeType":"YulFunctionCall","src":"3937:7:53"}],"functionName":{"name":"and","nativeSrc":"3917:3:53","nodeType":"YulIdentifier","src":"3917:3:53"},"nativeSrc":"3917:28:53","nodeType":"YulFunctionCall","src":"3917:28:53"},"variableNames":[{"name":"result","nativeSrc":"3907:6:53","nodeType":"YulIdentifier","src":"3907:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3849:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3880:5:53","nodeType":"YulTypedName","src":"3880:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3890:6:53","nodeType":"YulTypedName","src":"3890:6:53","type":""}],"src":"3849:102:53"},{"body":{"nativeSrc":"4047:283:53","nodeType":"YulBlock","src":"4047:283:53","statements":[{"nativeSrc":"4057:52:53","nodeType":"YulVariableDeclaration","src":"4057:52:53","value":{"arguments":[{"name":"value","nativeSrc":"4103:5:53","nodeType":"YulIdentifier","src":"4103:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4071:31:53","nodeType":"YulIdentifier","src":"4071:31:53"},"nativeSrc":"4071:38:53","nodeType":"YulFunctionCall","src":"4071:38:53"},"variables":[{"name":"length","nativeSrc":"4061:6:53","nodeType":"YulTypedName","src":"4061:6:53","type":""}]},{"nativeSrc":"4118:77:53","nodeType":"YulAssignment","src":"4118:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"4183:3:53","nodeType":"YulIdentifier","src":"4183:3:53"},{"name":"length","nativeSrc":"4188:6:53","nodeType":"YulIdentifier","src":"4188:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4125:57:53","nodeType":"YulIdentifier","src":"4125:57:53"},"nativeSrc":"4125:70:53","nodeType":"YulFunctionCall","src":"4125:70:53"},"variableNames":[{"name":"pos","nativeSrc":"4118:3:53","nodeType":"YulIdentifier","src":"4118:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4243:5:53","nodeType":"YulIdentifier","src":"4243:5:53"},{"kind":"number","nativeSrc":"4250:4:53","nodeType":"YulLiteral","src":"4250:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4239:3:53","nodeType":"YulIdentifier","src":"4239:3:53"},"nativeSrc":"4239:16:53","nodeType":"YulFunctionCall","src":"4239:16:53"},{"name":"pos","nativeSrc":"4257:3:53","nodeType":"YulIdentifier","src":"4257:3:53"},{"name":"length","nativeSrc":"4262:6:53","nodeType":"YulIdentifier","src":"4262:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4204:34:53","nodeType":"YulIdentifier","src":"4204:34:53"},"nativeSrc":"4204:65:53","nodeType":"YulFunctionCall","src":"4204:65:53"},"nativeSrc":"4204:65:53","nodeType":"YulExpressionStatement","src":"4204:65:53"},{"nativeSrc":"4278:46:53","nodeType":"YulAssignment","src":"4278:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4289:3:53","nodeType":"YulIdentifier","src":"4289:3:53"},{"arguments":[{"name":"length","nativeSrc":"4316:6:53","nodeType":"YulIdentifier","src":"4316:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4294:21:53","nodeType":"YulIdentifier","src":"4294:21:53"},"nativeSrc":"4294:29:53","nodeType":"YulFunctionCall","src":"4294:29:53"}],"functionName":{"name":"add","nativeSrc":"4285:3:53","nodeType":"YulIdentifier","src":"4285:3:53"},"nativeSrc":"4285:39:53","nodeType":"YulFunctionCall","src":"4285:39:53"},"variableNames":[{"name":"end","nativeSrc":"4278:3:53","nodeType":"YulIdentifier","src":"4278:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3957:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4028:5:53","nodeType":"YulTypedName","src":"4028:5:53","type":""},{"name":"pos","nativeSrc":"4035:3:53","nodeType":"YulTypedName","src":"4035:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4043:3:53","nodeType":"YulTypedName","src":"4043:3:53","type":""}],"src":"3957:373:53"},{"body":{"nativeSrc":"4452:193:53","nodeType":"YulBlock","src":"4452:193:53","statements":[{"nativeSrc":"4462:26:53","nodeType":"YulAssignment","src":"4462:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4474:9:53","nodeType":"YulIdentifier","src":"4474:9:53"},{"kind":"number","nativeSrc":"4485:2:53","nodeType":"YulLiteral","src":"4485:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4470:3:53","nodeType":"YulIdentifier","src":"4470:3:53"},"nativeSrc":"4470:18:53","nodeType":"YulFunctionCall","src":"4470:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4462:4:53","nodeType":"YulIdentifier","src":"4462:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4509:9:53","nodeType":"YulIdentifier","src":"4509:9:53"},{"kind":"number","nativeSrc":"4520:1:53","nodeType":"YulLiteral","src":"4520:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4505:3:53","nodeType":"YulIdentifier","src":"4505:3:53"},"nativeSrc":"4505:17:53","nodeType":"YulFunctionCall","src":"4505:17:53"},{"arguments":[{"name":"tail","nativeSrc":"4528:4:53","nodeType":"YulIdentifier","src":"4528:4:53"},{"name":"headStart","nativeSrc":"4534:9:53","nodeType":"YulIdentifier","src":"4534:9:53"}],"functionName":{"name":"sub","nativeSrc":"4524:3:53","nodeType":"YulIdentifier","src":"4524:3:53"},"nativeSrc":"4524:20:53","nodeType":"YulFunctionCall","src":"4524:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4498:6:53","nodeType":"YulIdentifier","src":"4498:6:53"},"nativeSrc":"4498:47:53","nodeType":"YulFunctionCall","src":"4498:47:53"},"nativeSrc":"4498:47:53","nodeType":"YulExpressionStatement","src":"4498:47:53"},{"nativeSrc":"4554:84:53","nodeType":"YulAssignment","src":"4554:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"4624:6:53","nodeType":"YulIdentifier","src":"4624:6:53"},{"name":"tail","nativeSrc":"4633:4:53","nodeType":"YulIdentifier","src":"4633:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4562:61:53","nodeType":"YulIdentifier","src":"4562:61:53"},"nativeSrc":"4562:76:53","nodeType":"YulFunctionCall","src":"4562:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4554:4:53","nodeType":"YulIdentifier","src":"4554:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4336:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4424:9:53","nodeType":"YulTypedName","src":"4424:9:53","type":""},{"name":"value0","nativeSrc":"4436:6:53","nodeType":"YulTypedName","src":"4436:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4447:4:53","nodeType":"YulTypedName","src":"4447:4:53","type":""}],"src":"4336:309:53"},{"body":{"nativeSrc":"4696:81:53","nodeType":"YulBlock","src":"4696:81:53","statements":[{"nativeSrc":"4706:65:53","nodeType":"YulAssignment","src":"4706:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4721:5:53","nodeType":"YulIdentifier","src":"4721:5:53"},{"kind":"number","nativeSrc":"4728:42:53","nodeType":"YulLiteral","src":"4728:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4717:3:53","nodeType":"YulIdentifier","src":"4717:3:53"},"nativeSrc":"4717:54:53","nodeType":"YulFunctionCall","src":"4717:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4706:7:53","nodeType":"YulIdentifier","src":"4706:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4651:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4678:5:53","nodeType":"YulTypedName","src":"4678:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4688:7:53","nodeType":"YulTypedName","src":"4688:7:53","type":""}],"src":"4651:126:53"},{"body":{"nativeSrc":"4828:51:53","nodeType":"YulBlock","src":"4828:51:53","statements":[{"nativeSrc":"4838:35:53","nodeType":"YulAssignment","src":"4838:35:53","value":{"arguments":[{"name":"value","nativeSrc":"4867:5:53","nodeType":"YulIdentifier","src":"4867:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4849:17:53","nodeType":"YulIdentifier","src":"4849:17:53"},"nativeSrc":"4849:24:53","nodeType":"YulFunctionCall","src":"4849:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4838:7:53","nodeType":"YulIdentifier","src":"4838:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"4783:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4810:5:53","nodeType":"YulTypedName","src":"4810:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4820:7:53","nodeType":"YulTypedName","src":"4820:7:53","type":""}],"src":"4783:96:53"},{"body":{"nativeSrc":"4950:53:53","nodeType":"YulBlock","src":"4950:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4967:3:53","nodeType":"YulIdentifier","src":"4967:3:53"},{"arguments":[{"name":"value","nativeSrc":"4990:5:53","nodeType":"YulIdentifier","src":"4990:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4972:17:53","nodeType":"YulIdentifier","src":"4972:17:53"},"nativeSrc":"4972:24:53","nodeType":"YulFunctionCall","src":"4972:24:53"}],"functionName":{"name":"mstore","nativeSrc":"4960:6:53","nodeType":"YulIdentifier","src":"4960:6:53"},"nativeSrc":"4960:37:53","nodeType":"YulFunctionCall","src":"4960:37:53"},"nativeSrc":"4960:37:53","nodeType":"YulExpressionStatement","src":"4960:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4885:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4938:5:53","nodeType":"YulTypedName","src":"4938:5:53","type":""},{"name":"pos","nativeSrc":"4945:3:53","nodeType":"YulTypedName","src":"4945:3:53","type":""}],"src":"4885:118:53"},{"body":{"nativeSrc":"5107:124:53","nodeType":"YulBlock","src":"5107:124:53","statements":[{"nativeSrc":"5117:26:53","nodeType":"YulAssignment","src":"5117:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5129:9:53","nodeType":"YulIdentifier","src":"5129:9:53"},{"kind":"number","nativeSrc":"5140:2:53","nodeType":"YulLiteral","src":"5140:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5125:3:53","nodeType":"YulIdentifier","src":"5125:3:53"},"nativeSrc":"5125:18:53","nodeType":"YulFunctionCall","src":"5125:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5117:4:53","nodeType":"YulIdentifier","src":"5117:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5197:6:53","nodeType":"YulIdentifier","src":"5197:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5210:9:53","nodeType":"YulIdentifier","src":"5210:9:53"},{"kind":"number","nativeSrc":"5221:1:53","nodeType":"YulLiteral","src":"5221:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5206:3:53","nodeType":"YulIdentifier","src":"5206:3:53"},"nativeSrc":"5206:17:53","nodeType":"YulFunctionCall","src":"5206:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5153:43:53","nodeType":"YulIdentifier","src":"5153:43:53"},"nativeSrc":"5153:71:53","nodeType":"YulFunctionCall","src":"5153:71:53"},"nativeSrc":"5153:71:53","nodeType":"YulExpressionStatement","src":"5153:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5009:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5079:9:53","nodeType":"YulTypedName","src":"5079:9:53","type":""},{"name":"value0","nativeSrc":"5091:6:53","nodeType":"YulTypedName","src":"5091:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5102:4:53","nodeType":"YulTypedName","src":"5102:4:53","type":""}],"src":"5009:222:53"},{"body":{"nativeSrc":"5280:79:53","nodeType":"YulBlock","src":"5280:79:53","statements":[{"body":{"nativeSrc":"5337:16:53","nodeType":"YulBlock","src":"5337:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5346:1:53","nodeType":"YulLiteral","src":"5346:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5349:1:53","nodeType":"YulLiteral","src":"5349:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5339:6:53","nodeType":"YulIdentifier","src":"5339:6:53"},"nativeSrc":"5339:12:53","nodeType":"YulFunctionCall","src":"5339:12:53"},"nativeSrc":"5339:12:53","nodeType":"YulExpressionStatement","src":"5339:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5303:5:53","nodeType":"YulIdentifier","src":"5303:5:53"},{"arguments":[{"name":"value","nativeSrc":"5328:5:53","nodeType":"YulIdentifier","src":"5328:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5310:17:53","nodeType":"YulIdentifier","src":"5310:17:53"},"nativeSrc":"5310:24:53","nodeType":"YulFunctionCall","src":"5310:24:53"}],"functionName":{"name":"eq","nativeSrc":"5300:2:53","nodeType":"YulIdentifier","src":"5300:2:53"},"nativeSrc":"5300:35:53","nodeType":"YulFunctionCall","src":"5300:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5293:6:53","nodeType":"YulIdentifier","src":"5293:6:53"},"nativeSrc":"5293:43:53","nodeType":"YulFunctionCall","src":"5293:43:53"},"nativeSrc":"5290:63:53","nodeType":"YulIf","src":"5290:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5237:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5273:5:53","nodeType":"YulTypedName","src":"5273:5:53","type":""}],"src":"5237:122:53"},{"body":{"nativeSrc":"5417:87:53","nodeType":"YulBlock","src":"5417:87:53","statements":[{"nativeSrc":"5427:29:53","nodeType":"YulAssignment","src":"5427:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5449:6:53","nodeType":"YulIdentifier","src":"5449:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5436:12:53","nodeType":"YulIdentifier","src":"5436:12:53"},"nativeSrc":"5436:20:53","nodeType":"YulFunctionCall","src":"5436:20:53"},"variableNames":[{"name":"value","nativeSrc":"5427:5:53","nodeType":"YulIdentifier","src":"5427:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5492:5:53","nodeType":"YulIdentifier","src":"5492:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5465:26:53","nodeType":"YulIdentifier","src":"5465:26:53"},"nativeSrc":"5465:33:53","nodeType":"YulFunctionCall","src":"5465:33:53"},"nativeSrc":"5465:33:53","nodeType":"YulExpressionStatement","src":"5465:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5365:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5395:6:53","nodeType":"YulTypedName","src":"5395:6:53","type":""},{"name":"end","nativeSrc":"5403:3:53","nodeType":"YulTypedName","src":"5403:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5411:5:53","nodeType":"YulTypedName","src":"5411:5:53","type":""}],"src":"5365:139:53"},{"body":{"nativeSrc":"5576:263:53","nodeType":"YulBlock","src":"5576:263:53","statements":[{"body":{"nativeSrc":"5622:83:53","nodeType":"YulBlock","src":"5622:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5624:77:53","nodeType":"YulIdentifier","src":"5624:77:53"},"nativeSrc":"5624:79:53","nodeType":"YulFunctionCall","src":"5624:79:53"},"nativeSrc":"5624:79:53","nodeType":"YulExpressionStatement","src":"5624:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5597:7:53","nodeType":"YulIdentifier","src":"5597:7:53"},{"name":"headStart","nativeSrc":"5606:9:53","nodeType":"YulIdentifier","src":"5606:9:53"}],"functionName":{"name":"sub","nativeSrc":"5593:3:53","nodeType":"YulIdentifier","src":"5593:3:53"},"nativeSrc":"5593:23:53","nodeType":"YulFunctionCall","src":"5593:23:53"},{"kind":"number","nativeSrc":"5618:2:53","nodeType":"YulLiteral","src":"5618:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5589:3:53","nodeType":"YulIdentifier","src":"5589:3:53"},"nativeSrc":"5589:32:53","nodeType":"YulFunctionCall","src":"5589:32:53"},"nativeSrc":"5586:119:53","nodeType":"YulIf","src":"5586:119:53"},{"nativeSrc":"5715:117:53","nodeType":"YulBlock","src":"5715:117:53","statements":[{"nativeSrc":"5730:15:53","nodeType":"YulVariableDeclaration","src":"5730:15:53","value":{"kind":"number","nativeSrc":"5744:1:53","nodeType":"YulLiteral","src":"5744:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5734:6:53","nodeType":"YulTypedName","src":"5734:6:53","type":""}]},{"nativeSrc":"5759:63:53","nodeType":"YulAssignment","src":"5759:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5794:9:53","nodeType":"YulIdentifier","src":"5794:9:53"},{"name":"offset","nativeSrc":"5805:6:53","nodeType":"YulIdentifier","src":"5805:6:53"}],"functionName":{"name":"add","nativeSrc":"5790:3:53","nodeType":"YulIdentifier","src":"5790:3:53"},"nativeSrc":"5790:22:53","nodeType":"YulFunctionCall","src":"5790:22:53"},{"name":"dataEnd","nativeSrc":"5814:7:53","nodeType":"YulIdentifier","src":"5814:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5769:20:53","nodeType":"YulIdentifier","src":"5769:20:53"},"nativeSrc":"5769:53:53","nodeType":"YulFunctionCall","src":"5769:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5759:6:53","nodeType":"YulIdentifier","src":"5759:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5510:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5546:9:53","nodeType":"YulTypedName","src":"5546:9:53","type":""},{"name":"dataEnd","nativeSrc":"5557:7:53","nodeType":"YulTypedName","src":"5557:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5569:6:53","nodeType":"YulTypedName","src":"5569:6:53","type":""}],"src":"5510:329:53"},{"body":{"nativeSrc":"5908:52:53","nodeType":"YulBlock","src":"5908:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5925:3:53","nodeType":"YulIdentifier","src":"5925:3:53"},{"arguments":[{"name":"value","nativeSrc":"5947:5:53","nodeType":"YulIdentifier","src":"5947:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"5930:16:53","nodeType":"YulIdentifier","src":"5930:16:53"},"nativeSrc":"5930:23:53","nodeType":"YulFunctionCall","src":"5930:23:53"}],"functionName":{"name":"mstore","nativeSrc":"5918:6:53","nodeType":"YulIdentifier","src":"5918:6:53"},"nativeSrc":"5918:36:53","nodeType":"YulFunctionCall","src":"5918:36:53"},"nativeSrc":"5918:36:53","nodeType":"YulExpressionStatement","src":"5918:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"5845:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5896:5:53","nodeType":"YulTypedName","src":"5896:5:53","type":""},{"name":"pos","nativeSrc":"5903:3:53","nodeType":"YulTypedName","src":"5903:3:53","type":""}],"src":"5845:115:53"},{"body":{"nativeSrc":"6062:122:53","nodeType":"YulBlock","src":"6062:122:53","statements":[{"nativeSrc":"6072:26:53","nodeType":"YulAssignment","src":"6072:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6084:9:53","nodeType":"YulIdentifier","src":"6084:9:53"},{"kind":"number","nativeSrc":"6095:2:53","nodeType":"YulLiteral","src":"6095:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6080:3:53","nodeType":"YulIdentifier","src":"6080:3:53"},"nativeSrc":"6080:18:53","nodeType":"YulFunctionCall","src":"6080:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6072:4:53","nodeType":"YulIdentifier","src":"6072:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6150:6:53","nodeType":"YulIdentifier","src":"6150:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6163:9:53","nodeType":"YulIdentifier","src":"6163:9:53"},{"kind":"number","nativeSrc":"6174:1:53","nodeType":"YulLiteral","src":"6174:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6159:3:53","nodeType":"YulIdentifier","src":"6159:3:53"},"nativeSrc":"6159:17:53","nodeType":"YulFunctionCall","src":"6159:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"6108:41:53","nodeType":"YulIdentifier","src":"6108:41:53"},"nativeSrc":"6108:69:53","nodeType":"YulFunctionCall","src":"6108:69:53"},"nativeSrc":"6108:69:53","nodeType":"YulExpressionStatement","src":"6108:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"5966:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6034:9:53","nodeType":"YulTypedName","src":"6034:9:53","type":""},{"name":"value0","nativeSrc":"6046:6:53","nodeType":"YulTypedName","src":"6046:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6057:4:53","nodeType":"YulTypedName","src":"6057:4:53","type":""}],"src":"5966:218:53"},{"body":{"nativeSrc":"6279:28:53","nodeType":"YulBlock","src":"6279:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6296:1:53","nodeType":"YulLiteral","src":"6296:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6299:1:53","nodeType":"YulLiteral","src":"6299:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6289:6:53","nodeType":"YulIdentifier","src":"6289:6:53"},"nativeSrc":"6289:12:53","nodeType":"YulFunctionCall","src":"6289:12:53"},"nativeSrc":"6289:12:53","nodeType":"YulExpressionStatement","src":"6289:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"6190:117:53","nodeType":"YulFunctionDefinition","src":"6190:117:53"},{"body":{"nativeSrc":"6341:152:53","nodeType":"YulBlock","src":"6341:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6358:1:53","nodeType":"YulLiteral","src":"6358:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6361:77:53","nodeType":"YulLiteral","src":"6361:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6351:6:53","nodeType":"YulIdentifier","src":"6351:6:53"},"nativeSrc":"6351:88:53","nodeType":"YulFunctionCall","src":"6351:88:53"},"nativeSrc":"6351:88:53","nodeType":"YulExpressionStatement","src":"6351:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6455:1:53","nodeType":"YulLiteral","src":"6455:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6458:4:53","nodeType":"YulLiteral","src":"6458:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"6448:6:53","nodeType":"YulIdentifier","src":"6448:6:53"},"nativeSrc":"6448:15:53","nodeType":"YulFunctionCall","src":"6448:15:53"},"nativeSrc":"6448:15:53","nodeType":"YulExpressionStatement","src":"6448:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6479:1:53","nodeType":"YulLiteral","src":"6479:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6482:4:53","nodeType":"YulLiteral","src":"6482:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6472:6:53","nodeType":"YulIdentifier","src":"6472:6:53"},"nativeSrc":"6472:15:53","nodeType":"YulFunctionCall","src":"6472:15:53"},"nativeSrc":"6472:15:53","nodeType":"YulExpressionStatement","src":"6472:15:53"}]},"name":"panic_error_0x41","nativeSrc":"6313:180:53","nodeType":"YulFunctionDefinition","src":"6313:180:53"},{"body":{"nativeSrc":"6542:238:53","nodeType":"YulBlock","src":"6542:238:53","statements":[{"nativeSrc":"6552:58:53","nodeType":"YulVariableDeclaration","src":"6552:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"6574:6:53","nodeType":"YulIdentifier","src":"6574:6:53"},{"arguments":[{"name":"size","nativeSrc":"6604:4:53","nodeType":"YulIdentifier","src":"6604:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"6582:21:53","nodeType":"YulIdentifier","src":"6582:21:53"},"nativeSrc":"6582:27:53","nodeType":"YulFunctionCall","src":"6582:27:53"}],"functionName":{"name":"add","nativeSrc":"6570:3:53","nodeType":"YulIdentifier","src":"6570:3:53"},"nativeSrc":"6570:40:53","nodeType":"YulFunctionCall","src":"6570:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"6556:10:53","nodeType":"YulTypedName","src":"6556:10:53","type":""}]},{"body":{"nativeSrc":"6721:22:53","nodeType":"YulBlock","src":"6721:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6723:16:53","nodeType":"YulIdentifier","src":"6723:16:53"},"nativeSrc":"6723:18:53","nodeType":"YulFunctionCall","src":"6723:18:53"},"nativeSrc":"6723:18:53","nodeType":"YulExpressionStatement","src":"6723:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"6664:10:53","nodeType":"YulIdentifier","src":"6664:10:53"},{"kind":"number","nativeSrc":"6676:18:53","nodeType":"YulLiteral","src":"6676:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6661:2:53","nodeType":"YulIdentifier","src":"6661:2:53"},"nativeSrc":"6661:34:53","nodeType":"YulFunctionCall","src":"6661:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"6700:10:53","nodeType":"YulIdentifier","src":"6700:10:53"},{"name":"memPtr","nativeSrc":"6712:6:53","nodeType":"YulIdentifier","src":"6712:6:53"}],"functionName":{"name":"lt","nativeSrc":"6697:2:53","nodeType":"YulIdentifier","src":"6697:2:53"},"nativeSrc":"6697:22:53","nodeType":"YulFunctionCall","src":"6697:22:53"}],"functionName":{"name":"or","nativeSrc":"6658:2:53","nodeType":"YulIdentifier","src":"6658:2:53"},"nativeSrc":"6658:62:53","nodeType":"YulFunctionCall","src":"6658:62:53"},"nativeSrc":"6655:88:53","nodeType":"YulIf","src":"6655:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6759:2:53","nodeType":"YulLiteral","src":"6759:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"6763:10:53","nodeType":"YulIdentifier","src":"6763:10:53"}],"functionName":{"name":"mstore","nativeSrc":"6752:6:53","nodeType":"YulIdentifier","src":"6752:6:53"},"nativeSrc":"6752:22:53","nodeType":"YulFunctionCall","src":"6752:22:53"},"nativeSrc":"6752:22:53","nodeType":"YulExpressionStatement","src":"6752:22:53"}]},"name":"finalize_allocation","nativeSrc":"6499:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6528:6:53","nodeType":"YulTypedName","src":"6528:6:53","type":""},{"name":"size","nativeSrc":"6536:4:53","nodeType":"YulTypedName","src":"6536:4:53","type":""}],"src":"6499:281:53"},{"body":{"nativeSrc":"6827:88:53","nodeType":"YulBlock","src":"6827:88:53","statements":[{"nativeSrc":"6837:30:53","nodeType":"YulAssignment","src":"6837:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"6847:18:53","nodeType":"YulIdentifier","src":"6847:18:53"},"nativeSrc":"6847:20:53","nodeType":"YulFunctionCall","src":"6847:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"6837:6:53","nodeType":"YulIdentifier","src":"6837:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"6896:6:53","nodeType":"YulIdentifier","src":"6896:6:53"},{"name":"size","nativeSrc":"6904:4:53","nodeType":"YulIdentifier","src":"6904:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"6876:19:53","nodeType":"YulIdentifier","src":"6876:19:53"},"nativeSrc":"6876:33:53","nodeType":"YulFunctionCall","src":"6876:33:53"},"nativeSrc":"6876:33:53","nodeType":"YulExpressionStatement","src":"6876:33:53"}]},"name":"allocate_memory","nativeSrc":"6786:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6811:4:53","nodeType":"YulTypedName","src":"6811:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6820:6:53","nodeType":"YulTypedName","src":"6820:6:53","type":""}],"src":"6786:129:53"},{"body":{"nativeSrc":"7010:28:53","nodeType":"YulBlock","src":"7010:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7027:1:53","nodeType":"YulLiteral","src":"7027:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7030:1:53","nodeType":"YulLiteral","src":"7030:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7020:6:53","nodeType":"YulIdentifier","src":"7020:6:53"},"nativeSrc":"7020:12:53","nodeType":"YulFunctionCall","src":"7020:12:53"},"nativeSrc":"7020:12:53","nodeType":"YulExpressionStatement","src":"7020:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"6921:117:53","nodeType":"YulFunctionDefinition","src":"6921:117:53"},{"body":{"nativeSrc":"7087:79:53","nodeType":"YulBlock","src":"7087:79:53","statements":[{"body":{"nativeSrc":"7144:16:53","nodeType":"YulBlock","src":"7144:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7153:1:53","nodeType":"YulLiteral","src":"7153:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7156:1:53","nodeType":"YulLiteral","src":"7156:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7146:6:53","nodeType":"YulIdentifier","src":"7146:6:53"},"nativeSrc":"7146:12:53","nodeType":"YulFunctionCall","src":"7146:12:53"},"nativeSrc":"7146:12:53","nodeType":"YulExpressionStatement","src":"7146:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7110:5:53","nodeType":"YulIdentifier","src":"7110:5:53"},{"arguments":[{"name":"value","nativeSrc":"7135:5:53","nodeType":"YulIdentifier","src":"7135:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7117:17:53","nodeType":"YulIdentifier","src":"7117:17:53"},"nativeSrc":"7117:24:53","nodeType":"YulFunctionCall","src":"7117:24:53"}],"functionName":{"name":"eq","nativeSrc":"7107:2:53","nodeType":"YulIdentifier","src":"7107:2:53"},"nativeSrc":"7107:35:53","nodeType":"YulFunctionCall","src":"7107:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7100:6:53","nodeType":"YulIdentifier","src":"7100:6:53"},"nativeSrc":"7100:43:53","nodeType":"YulFunctionCall","src":"7100:43:53"},"nativeSrc":"7097:63:53","nodeType":"YulIf","src":"7097:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"7044:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7080:5:53","nodeType":"YulTypedName","src":"7080:5:53","type":""}],"src":"7044:122:53"},{"body":{"nativeSrc":"7224:87:53","nodeType":"YulBlock","src":"7224:87:53","statements":[{"nativeSrc":"7234:29:53","nodeType":"YulAssignment","src":"7234:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7256:6:53","nodeType":"YulIdentifier","src":"7256:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7243:12:53","nodeType":"YulIdentifier","src":"7243:12:53"},"nativeSrc":"7243:20:53","nodeType":"YulFunctionCall","src":"7243:20:53"},"variableNames":[{"name":"value","nativeSrc":"7234:5:53","nodeType":"YulIdentifier","src":"7234:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7299:5:53","nodeType":"YulIdentifier","src":"7299:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7272:26:53","nodeType":"YulIdentifier","src":"7272:26:53"},"nativeSrc":"7272:33:53","nodeType":"YulFunctionCall","src":"7272:33:53"},"nativeSrc":"7272:33:53","nodeType":"YulExpressionStatement","src":"7272:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"7172:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7202:6:53","nodeType":"YulTypedName","src":"7202:6:53","type":""},{"name":"end","nativeSrc":"7210:3:53","nodeType":"YulTypedName","src":"7210:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7218:5:53","nodeType":"YulTypedName","src":"7218:5:53","type":""}],"src":"7172:139:53"},{"body":{"nativeSrc":"7444:825:53","nodeType":"YulBlock","src":"7444:825:53","statements":[{"body":{"nativeSrc":"7488:83:53","nodeType":"YulBlock","src":"7488:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7490:77:53","nodeType":"YulIdentifier","src":"7490:77:53"},"nativeSrc":"7490:79:53","nodeType":"YulFunctionCall","src":"7490:79:53"},"nativeSrc":"7490:79:53","nodeType":"YulExpressionStatement","src":"7490:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"7465:3:53","nodeType":"YulIdentifier","src":"7465:3:53"},{"name":"headStart","nativeSrc":"7470:9:53","nodeType":"YulIdentifier","src":"7470:9:53"}],"functionName":{"name":"sub","nativeSrc":"7461:3:53","nodeType":"YulIdentifier","src":"7461:3:53"},"nativeSrc":"7461:19:53","nodeType":"YulFunctionCall","src":"7461:19:53"},{"kind":"number","nativeSrc":"7482:4:53","nodeType":"YulLiteral","src":"7482:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"7457:3:53","nodeType":"YulIdentifier","src":"7457:3:53"},"nativeSrc":"7457:30:53","nodeType":"YulFunctionCall","src":"7457:30:53"},"nativeSrc":"7454:117:53","nodeType":"YulIf","src":"7454:117:53"},{"nativeSrc":"7580:30:53","nodeType":"YulAssignment","src":"7580:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"7605:4:53","nodeType":"YulLiteral","src":"7605:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"7589:15:53","nodeType":"YulIdentifier","src":"7589:15:53"},"nativeSrc":"7589:21:53","nodeType":"YulFunctionCall","src":"7589:21:53"},"variableNames":[{"name":"value","nativeSrc":"7580:5:53","nodeType":"YulIdentifier","src":"7580:5:53"}]},{"nativeSrc":"7620:151:53","nodeType":"YulBlock","src":"7620:151:53","statements":[{"nativeSrc":"7656:15:53","nodeType":"YulVariableDeclaration","src":"7656:15:53","value":{"kind":"number","nativeSrc":"7670:1:53","nodeType":"YulLiteral","src":"7670:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7660:6:53","nodeType":"YulTypedName","src":"7660:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7696:5:53","nodeType":"YulIdentifier","src":"7696:5:53"},{"kind":"number","nativeSrc":"7703:4:53","nodeType":"YulLiteral","src":"7703:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"7692:3:53","nodeType":"YulIdentifier","src":"7692:3:53"},"nativeSrc":"7692:16:53","nodeType":"YulFunctionCall","src":"7692:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7735:9:53","nodeType":"YulIdentifier","src":"7735:9:53"},{"name":"offset","nativeSrc":"7746:6:53","nodeType":"YulIdentifier","src":"7746:6:53"}],"functionName":{"name":"add","nativeSrc":"7731:3:53","nodeType":"YulIdentifier","src":"7731:3:53"},"nativeSrc":"7731:22:53","nodeType":"YulFunctionCall","src":"7731:22:53"},{"name":"end","nativeSrc":"7755:3:53","nodeType":"YulIdentifier","src":"7755:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7710:20:53","nodeType":"YulIdentifier","src":"7710:20:53"},"nativeSrc":"7710:49:53","nodeType":"YulFunctionCall","src":"7710:49:53"}],"functionName":{"name":"mstore","nativeSrc":"7685:6:53","nodeType":"YulIdentifier","src":"7685:6:53"},"nativeSrc":"7685:75:53","nodeType":"YulFunctionCall","src":"7685:75:53"},"nativeSrc":"7685:75:53","nodeType":"YulExpressionStatement","src":"7685:75:53"}]},{"nativeSrc":"7781:154:53","nodeType":"YulBlock","src":"7781:154:53","statements":[{"nativeSrc":"7820:16:53","nodeType":"YulVariableDeclaration","src":"7820:16:53","value":{"kind":"number","nativeSrc":"7834:2:53","nodeType":"YulLiteral","src":"7834:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7824:6:53","nodeType":"YulTypedName","src":"7824:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7861:5:53","nodeType":"YulIdentifier","src":"7861:5:53"},{"kind":"number","nativeSrc":"7868:4:53","nodeType":"YulLiteral","src":"7868:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7857:3:53","nodeType":"YulIdentifier","src":"7857:3:53"},"nativeSrc":"7857:16:53","nodeType":"YulFunctionCall","src":"7857:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7899:9:53","nodeType":"YulIdentifier","src":"7899:9:53"},{"name":"offset","nativeSrc":"7910:6:53","nodeType":"YulIdentifier","src":"7910:6:53"}],"functionName":{"name":"add","nativeSrc":"7895:3:53","nodeType":"YulIdentifier","src":"7895:3:53"},"nativeSrc":"7895:22:53","nodeType":"YulFunctionCall","src":"7895:22:53"},{"name":"end","nativeSrc":"7919:3:53","nodeType":"YulIdentifier","src":"7919:3:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"7875:19:53","nodeType":"YulIdentifier","src":"7875:19:53"},"nativeSrc":"7875:48:53","nodeType":"YulFunctionCall","src":"7875:48:53"}],"functionName":{"name":"mstore","nativeSrc":"7850:6:53","nodeType":"YulIdentifier","src":"7850:6:53"},"nativeSrc":"7850:74:53","nodeType":"YulFunctionCall","src":"7850:74:53"},"nativeSrc":"7850:74:53","nodeType":"YulExpressionStatement","src":"7850:74:53"}]},{"nativeSrc":"7945:155:53","nodeType":"YulBlock","src":"7945:155:53","statements":[{"nativeSrc":"7984:16:53","nodeType":"YulVariableDeclaration","src":"7984:16:53","value":{"kind":"number","nativeSrc":"7998:2:53","nodeType":"YulLiteral","src":"7998:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"7988:6:53","nodeType":"YulTypedName","src":"7988:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8025:5:53","nodeType":"YulIdentifier","src":"8025:5:53"},{"kind":"number","nativeSrc":"8032:4:53","nodeType":"YulLiteral","src":"8032:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8021:3:53","nodeType":"YulIdentifier","src":"8021:3:53"},"nativeSrc":"8021:16:53","nodeType":"YulFunctionCall","src":"8021:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8064:9:53","nodeType":"YulIdentifier","src":"8064:9:53"},{"name":"offset","nativeSrc":"8075:6:53","nodeType":"YulIdentifier","src":"8075:6:53"}],"functionName":{"name":"add","nativeSrc":"8060:3:53","nodeType":"YulIdentifier","src":"8060:3:53"},"nativeSrc":"8060:22:53","nodeType":"YulFunctionCall","src":"8060:22:53"},{"name":"end","nativeSrc":"8084:3:53","nodeType":"YulIdentifier","src":"8084:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8039:20:53","nodeType":"YulIdentifier","src":"8039:20:53"},"nativeSrc":"8039:49:53","nodeType":"YulFunctionCall","src":"8039:49:53"}],"functionName":{"name":"mstore","nativeSrc":"8014:6:53","nodeType":"YulIdentifier","src":"8014:6:53"},"nativeSrc":"8014:75:53","nodeType":"YulFunctionCall","src":"8014:75:53"},"nativeSrc":"8014:75:53","nodeType":"YulExpressionStatement","src":"8014:75:53"}]},{"nativeSrc":"8110:152:53","nodeType":"YulBlock","src":"8110:152:53","statements":[{"nativeSrc":"8146:16:53","nodeType":"YulVariableDeclaration","src":"8146:16:53","value":{"kind":"number","nativeSrc":"8160:2:53","nodeType":"YulLiteral","src":"8160:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"8150:6:53","nodeType":"YulTypedName","src":"8150:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8187:5:53","nodeType":"YulIdentifier","src":"8187:5:53"},{"kind":"number","nativeSrc":"8194:4:53","nodeType":"YulLiteral","src":"8194:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"8183:3:53","nodeType":"YulIdentifier","src":"8183:3:53"},"nativeSrc":"8183:16:53","nodeType":"YulFunctionCall","src":"8183:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8226:9:53","nodeType":"YulIdentifier","src":"8226:9:53"},{"name":"offset","nativeSrc":"8237:6:53","nodeType":"YulIdentifier","src":"8237:6:53"}],"functionName":{"name":"add","nativeSrc":"8222:3:53","nodeType":"YulIdentifier","src":"8222:3:53"},"nativeSrc":"8222:22:53","nodeType":"YulFunctionCall","src":"8222:22:53"},{"name":"end","nativeSrc":"8246:3:53","nodeType":"YulIdentifier","src":"8246:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8201:20:53","nodeType":"YulIdentifier","src":"8201:20:53"},"nativeSrc":"8201:49:53","nodeType":"YulFunctionCall","src":"8201:49:53"}],"functionName":{"name":"mstore","nativeSrc":"8176:6:53","nodeType":"YulIdentifier","src":"8176:6:53"},"nativeSrc":"8176:75:53","nodeType":"YulFunctionCall","src":"8176:75:53"},"nativeSrc":"8176:75:53","nodeType":"YulExpressionStatement","src":"8176:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$17281_memory_ptr","nativeSrc":"7359:910:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7419:9:53","nodeType":"YulTypedName","src":"7419:9:53","type":""},{"name":"end","nativeSrc":"7430:3:53","nodeType":"YulTypedName","src":"7430:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7438:5:53","nodeType":"YulTypedName","src":"7438:5:53","type":""}],"src":"7359:910:53"},{"body":{"nativeSrc":"8371:294:53","nodeType":"YulBlock","src":"8371:294:53","statements":[{"body":{"nativeSrc":"8418:83:53","nodeType":"YulBlock","src":"8418:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8420:77:53","nodeType":"YulIdentifier","src":"8420:77:53"},"nativeSrc":"8420:79:53","nodeType":"YulFunctionCall","src":"8420:79:53"},"nativeSrc":"8420:79:53","nodeType":"YulExpressionStatement","src":"8420:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8392:7:53","nodeType":"YulIdentifier","src":"8392:7:53"},{"name":"headStart","nativeSrc":"8401:9:53","nodeType":"YulIdentifier","src":"8401:9:53"}],"functionName":{"name":"sub","nativeSrc":"8388:3:53","nodeType":"YulIdentifier","src":"8388:3:53"},"nativeSrc":"8388:23:53","nodeType":"YulFunctionCall","src":"8388:23:53"},{"kind":"number","nativeSrc":"8413:3:53","nodeType":"YulLiteral","src":"8413:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"8384:3:53","nodeType":"YulIdentifier","src":"8384:3:53"},"nativeSrc":"8384:33:53","nodeType":"YulFunctionCall","src":"8384:33:53"},"nativeSrc":"8381:120:53","nodeType":"YulIf","src":"8381:120:53"},{"nativeSrc":"8511:147:53","nodeType":"YulBlock","src":"8511:147:53","statements":[{"nativeSrc":"8526:15:53","nodeType":"YulVariableDeclaration","src":"8526:15:53","value":{"kind":"number","nativeSrc":"8540:1:53","nodeType":"YulLiteral","src":"8540:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8530:6:53","nodeType":"YulTypedName","src":"8530:6:53","type":""}]},{"nativeSrc":"8555:93:53","nodeType":"YulAssignment","src":"8555:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8620:9:53","nodeType":"YulIdentifier","src":"8620:9:53"},{"name":"offset","nativeSrc":"8631:6:53","nodeType":"YulIdentifier","src":"8631:6:53"}],"functionName":{"name":"add","nativeSrc":"8616:3:53","nodeType":"YulIdentifier","src":"8616:3:53"},"nativeSrc":"8616:22:53","nodeType":"YulFunctionCall","src":"8616:22:53"},{"name":"dataEnd","nativeSrc":"8640:7:53","nodeType":"YulIdentifier","src":"8640:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$17281_memory_ptr","nativeSrc":"8565:50:53","nodeType":"YulIdentifier","src":"8565:50:53"},"nativeSrc":"8565:83:53","nodeType":"YulFunctionCall","src":"8565:83:53"},"variableNames":[{"name":"value0","nativeSrc":"8555:6:53","nodeType":"YulIdentifier","src":"8555:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$17281_memory_ptr","nativeSrc":"8275:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8341:9:53","nodeType":"YulTypedName","src":"8341:9:53","type":""},{"name":"dataEnd","nativeSrc":"8352:7:53","nodeType":"YulTypedName","src":"8352:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8364:6:53","nodeType":"YulTypedName","src":"8364:6:53","type":""}],"src":"8275:390:53"},{"body":{"nativeSrc":"8760:28:53","nodeType":"YulBlock","src":"8760:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8777:1:53","nodeType":"YulLiteral","src":"8777:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8780:1:53","nodeType":"YulLiteral","src":"8780:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8770:6:53","nodeType":"YulIdentifier","src":"8770:6:53"},"nativeSrc":"8770:12:53","nodeType":"YulFunctionCall","src":"8770:12:53"},"nativeSrc":"8770:12:53","nodeType":"YulExpressionStatement","src":"8770:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"8671:117:53","nodeType":"YulFunctionDefinition","src":"8671:117:53"},{"body":{"nativeSrc":"8860:241:53","nodeType":"YulBlock","src":"8860:241:53","statements":[{"body":{"nativeSrc":"8965:22:53","nodeType":"YulBlock","src":"8965:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8967:16:53","nodeType":"YulIdentifier","src":"8967:16:53"},"nativeSrc":"8967:18:53","nodeType":"YulFunctionCall","src":"8967:18:53"},"nativeSrc":"8967:18:53","nodeType":"YulExpressionStatement","src":"8967:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8937:6:53","nodeType":"YulIdentifier","src":"8937:6:53"},{"kind":"number","nativeSrc":"8945:18:53","nodeType":"YulLiteral","src":"8945:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8934:2:53","nodeType":"YulIdentifier","src":"8934:2:53"},"nativeSrc":"8934:30:53","nodeType":"YulFunctionCall","src":"8934:30:53"},"nativeSrc":"8931:56:53","nodeType":"YulIf","src":"8931:56:53"},{"nativeSrc":"8997:37:53","nodeType":"YulAssignment","src":"8997:37:53","value":{"arguments":[{"name":"length","nativeSrc":"9027:6:53","nodeType":"YulIdentifier","src":"9027:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9005:21:53","nodeType":"YulIdentifier","src":"9005:21:53"},"nativeSrc":"9005:29:53","nodeType":"YulFunctionCall","src":"9005:29:53"},"variableNames":[{"name":"size","nativeSrc":"8997:4:53","nodeType":"YulIdentifier","src":"8997:4:53"}]},{"nativeSrc":"9071:23:53","nodeType":"YulAssignment","src":"9071:23:53","value":{"arguments":[{"name":"size","nativeSrc":"9083:4:53","nodeType":"YulIdentifier","src":"9083:4:53"},{"kind":"number","nativeSrc":"9089:4:53","nodeType":"YulLiteral","src":"9089:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9079:3:53","nodeType":"YulIdentifier","src":"9079:3:53"},"nativeSrc":"9079:15:53","nodeType":"YulFunctionCall","src":"9079:15:53"},"variableNames":[{"name":"size","nativeSrc":"9071:4:53","nodeType":"YulIdentifier","src":"9071:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"8794:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"8844:6:53","nodeType":"YulTypedName","src":"8844:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"8855:4:53","nodeType":"YulTypedName","src":"8855:4:53","type":""}],"src":"8794:307:53"},{"body":{"nativeSrc":"9171:84:53","nodeType":"YulBlock","src":"9171:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"9195:3:53","nodeType":"YulIdentifier","src":"9195:3:53"},{"name":"src","nativeSrc":"9200:3:53","nodeType":"YulIdentifier","src":"9200:3:53"},{"name":"length","nativeSrc":"9205:6:53","nodeType":"YulIdentifier","src":"9205:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"9182:12:53","nodeType":"YulIdentifier","src":"9182:12:53"},"nativeSrc":"9182:30:53","nodeType":"YulFunctionCall","src":"9182:30:53"},"nativeSrc":"9182:30:53","nodeType":"YulExpressionStatement","src":"9182:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9232:3:53","nodeType":"YulIdentifier","src":"9232:3:53"},{"name":"length","nativeSrc":"9237:6:53","nodeType":"YulIdentifier","src":"9237:6:53"}],"functionName":{"name":"add","nativeSrc":"9228:3:53","nodeType":"YulIdentifier","src":"9228:3:53"},"nativeSrc":"9228:16:53","nodeType":"YulFunctionCall","src":"9228:16:53"},{"kind":"number","nativeSrc":"9246:1:53","nodeType":"YulLiteral","src":"9246:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9221:6:53","nodeType":"YulIdentifier","src":"9221:6:53"},"nativeSrc":"9221:27:53","nodeType":"YulFunctionCall","src":"9221:27:53"},"nativeSrc":"9221:27:53","nodeType":"YulExpressionStatement","src":"9221:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9107:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9153:3:53","nodeType":"YulTypedName","src":"9153:3:53","type":""},{"name":"dst","nativeSrc":"9158:3:53","nodeType":"YulTypedName","src":"9158:3:53","type":""},{"name":"length","nativeSrc":"9163:6:53","nodeType":"YulTypedName","src":"9163:6:53","type":""}],"src":"9107:148:53"},{"body":{"nativeSrc":"9344:340:53","nodeType":"YulBlock","src":"9344:340:53","statements":[{"nativeSrc":"9354:74:53","nodeType":"YulAssignment","src":"9354:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9420:6:53","nodeType":"YulIdentifier","src":"9420:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"9379:40:53","nodeType":"YulIdentifier","src":"9379:40:53"},"nativeSrc":"9379:48:53","nodeType":"YulFunctionCall","src":"9379:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"9363:15:53","nodeType":"YulIdentifier","src":"9363:15:53"},"nativeSrc":"9363:65:53","nodeType":"YulFunctionCall","src":"9363:65:53"},"variableNames":[{"name":"array","nativeSrc":"9354:5:53","nodeType":"YulIdentifier","src":"9354:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"9444:5:53","nodeType":"YulIdentifier","src":"9444:5:53"},{"name":"length","nativeSrc":"9451:6:53","nodeType":"YulIdentifier","src":"9451:6:53"}],"functionName":{"name":"mstore","nativeSrc":"9437:6:53","nodeType":"YulIdentifier","src":"9437:6:53"},"nativeSrc":"9437:21:53","nodeType":"YulFunctionCall","src":"9437:21:53"},"nativeSrc":"9437:21:53","nodeType":"YulExpressionStatement","src":"9437:21:53"},{"nativeSrc":"9467:27:53","nodeType":"YulVariableDeclaration","src":"9467:27:53","value":{"arguments":[{"name":"array","nativeSrc":"9482:5:53","nodeType":"YulIdentifier","src":"9482:5:53"},{"kind":"number","nativeSrc":"9489:4:53","nodeType":"YulLiteral","src":"9489:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9478:3:53","nodeType":"YulIdentifier","src":"9478:3:53"},"nativeSrc":"9478:16:53","nodeType":"YulFunctionCall","src":"9478:16:53"},"variables":[{"name":"dst","nativeSrc":"9471:3:53","nodeType":"YulTypedName","src":"9471:3:53","type":""}]},{"body":{"nativeSrc":"9532:83:53","nodeType":"YulBlock","src":"9532:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"9534:77:53","nodeType":"YulIdentifier","src":"9534:77:53"},"nativeSrc":"9534:79:53","nodeType":"YulFunctionCall","src":"9534:79:53"},"nativeSrc":"9534:79:53","nodeType":"YulExpressionStatement","src":"9534:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9513:3:53","nodeType":"YulIdentifier","src":"9513:3:53"},{"name":"length","nativeSrc":"9518:6:53","nodeType":"YulIdentifier","src":"9518:6:53"}],"functionName":{"name":"add","nativeSrc":"9509:3:53","nodeType":"YulIdentifier","src":"9509:3:53"},"nativeSrc":"9509:16:53","nodeType":"YulFunctionCall","src":"9509:16:53"},{"name":"end","nativeSrc":"9527:3:53","nodeType":"YulIdentifier","src":"9527:3:53"}],"functionName":{"name":"gt","nativeSrc":"9506:2:53","nodeType":"YulIdentifier","src":"9506:2:53"},"nativeSrc":"9506:25:53","nodeType":"YulFunctionCall","src":"9506:25:53"},"nativeSrc":"9503:112:53","nodeType":"YulIf","src":"9503:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"9661:3:53","nodeType":"YulIdentifier","src":"9661:3:53"},{"name":"dst","nativeSrc":"9666:3:53","nodeType":"YulIdentifier","src":"9666:3:53"},{"name":"length","nativeSrc":"9671:6:53","nodeType":"YulIdentifier","src":"9671:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9624:36:53","nodeType":"YulIdentifier","src":"9624:36:53"},"nativeSrc":"9624:54:53","nodeType":"YulFunctionCall","src":"9624:54:53"},"nativeSrc":"9624:54:53","nodeType":"YulExpressionStatement","src":"9624:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"9261:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9317:3:53","nodeType":"YulTypedName","src":"9317:3:53","type":""},{"name":"length","nativeSrc":"9322:6:53","nodeType":"YulTypedName","src":"9322:6:53","type":""},{"name":"end","nativeSrc":"9330:3:53","nodeType":"YulTypedName","src":"9330:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9338:5:53","nodeType":"YulTypedName","src":"9338:5:53","type":""}],"src":"9261:423:53"},{"body":{"nativeSrc":"9764:277:53","nodeType":"YulBlock","src":"9764:277:53","statements":[{"body":{"nativeSrc":"9813:83:53","nodeType":"YulBlock","src":"9813:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9815:77:53","nodeType":"YulIdentifier","src":"9815:77:53"},"nativeSrc":"9815:79:53","nodeType":"YulFunctionCall","src":"9815:79:53"},"nativeSrc":"9815:79:53","nodeType":"YulExpressionStatement","src":"9815:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9792:6:53","nodeType":"YulIdentifier","src":"9792:6:53"},{"kind":"number","nativeSrc":"9800:4:53","nodeType":"YulLiteral","src":"9800:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9788:3:53","nodeType":"YulIdentifier","src":"9788:3:53"},"nativeSrc":"9788:17:53","nodeType":"YulFunctionCall","src":"9788:17:53"},{"name":"end","nativeSrc":"9807:3:53","nodeType":"YulIdentifier","src":"9807:3:53"}],"functionName":{"name":"slt","nativeSrc":"9784:3:53","nodeType":"YulIdentifier","src":"9784:3:53"},"nativeSrc":"9784:27:53","nodeType":"YulFunctionCall","src":"9784:27:53"}],"functionName":{"name":"iszero","nativeSrc":"9777:6:53","nodeType":"YulIdentifier","src":"9777:6:53"},"nativeSrc":"9777:35:53","nodeType":"YulFunctionCall","src":"9777:35:53"},"nativeSrc":"9774:122:53","nodeType":"YulIf","src":"9774:122:53"},{"nativeSrc":"9905:34:53","nodeType":"YulVariableDeclaration","src":"9905:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"9932:6:53","nodeType":"YulIdentifier","src":"9932:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9919:12:53","nodeType":"YulIdentifier","src":"9919:12:53"},"nativeSrc":"9919:20:53","nodeType":"YulFunctionCall","src":"9919:20:53"},"variables":[{"name":"length","nativeSrc":"9909:6:53","nodeType":"YulTypedName","src":"9909:6:53","type":""}]},{"nativeSrc":"9948:87:53","nodeType":"YulAssignment","src":"9948:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10008:6:53","nodeType":"YulIdentifier","src":"10008:6:53"},{"kind":"number","nativeSrc":"10016:4:53","nodeType":"YulLiteral","src":"10016:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10004:3:53","nodeType":"YulIdentifier","src":"10004:3:53"},"nativeSrc":"10004:17:53","nodeType":"YulFunctionCall","src":"10004:17:53"},{"name":"length","nativeSrc":"10023:6:53","nodeType":"YulIdentifier","src":"10023:6:53"},{"name":"end","nativeSrc":"10031:3:53","nodeType":"YulIdentifier","src":"10031:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"9957:46:53","nodeType":"YulIdentifier","src":"9957:46:53"},"nativeSrc":"9957:78:53","nodeType":"YulFunctionCall","src":"9957:78:53"},"variableNames":[{"name":"array","nativeSrc":"9948:5:53","nodeType":"YulIdentifier","src":"9948:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"9703:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9742:6:53","nodeType":"YulTypedName","src":"9742:6:53","type":""},{"name":"end","nativeSrc":"9750:3:53","nodeType":"YulTypedName","src":"9750:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9758:5:53","nodeType":"YulTypedName","src":"9758:5:53","type":""}],"src":"9703:338:53"},{"body":{"nativeSrc":"10170:665:53","nodeType":"YulBlock","src":"10170:665:53","statements":[{"body":{"nativeSrc":"10214:83:53","nodeType":"YulBlock","src":"10214:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10216:77:53","nodeType":"YulIdentifier","src":"10216:77:53"},"nativeSrc":"10216:79:53","nodeType":"YulFunctionCall","src":"10216:79:53"},"nativeSrc":"10216:79:53","nodeType":"YulExpressionStatement","src":"10216:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"10191:3:53","nodeType":"YulIdentifier","src":"10191:3:53"},{"name":"headStart","nativeSrc":"10196:9:53","nodeType":"YulIdentifier","src":"10196:9:53"}],"functionName":{"name":"sub","nativeSrc":"10187:3:53","nodeType":"YulIdentifier","src":"10187:3:53"},"nativeSrc":"10187:19:53","nodeType":"YulFunctionCall","src":"10187:19:53"},{"kind":"number","nativeSrc":"10208:4:53","nodeType":"YulLiteral","src":"10208:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"10183:3:53","nodeType":"YulIdentifier","src":"10183:3:53"},"nativeSrc":"10183:30:53","nodeType":"YulFunctionCall","src":"10183:30:53"},"nativeSrc":"10180:117:53","nodeType":"YulIf","src":"10180:117:53"},{"nativeSrc":"10306:30:53","nodeType":"YulAssignment","src":"10306:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"10331:4:53","nodeType":"YulLiteral","src":"10331:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"10315:15:53","nodeType":"YulIdentifier","src":"10315:15:53"},"nativeSrc":"10315:21:53","nodeType":"YulFunctionCall","src":"10315:21:53"},"variableNames":[{"name":"value","nativeSrc":"10306:5:53","nodeType":"YulIdentifier","src":"10306:5:53"}]},{"nativeSrc":"10346:152:53","nodeType":"YulBlock","src":"10346:152:53","statements":[{"nativeSrc":"10383:15:53","nodeType":"YulVariableDeclaration","src":"10383:15:53","value":{"kind":"number","nativeSrc":"10397:1:53","nodeType":"YulLiteral","src":"10397:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10387:6:53","nodeType":"YulTypedName","src":"10387:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10423:5:53","nodeType":"YulIdentifier","src":"10423:5:53"},{"kind":"number","nativeSrc":"10430:4:53","nodeType":"YulLiteral","src":"10430:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"10419:3:53","nodeType":"YulIdentifier","src":"10419:3:53"},"nativeSrc":"10419:16:53","nodeType":"YulFunctionCall","src":"10419:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10462:9:53","nodeType":"YulIdentifier","src":"10462:9:53"},{"name":"offset","nativeSrc":"10473:6:53","nodeType":"YulIdentifier","src":"10473:6:53"}],"functionName":{"name":"add","nativeSrc":"10458:3:53","nodeType":"YulIdentifier","src":"10458:3:53"},"nativeSrc":"10458:22:53","nodeType":"YulFunctionCall","src":"10458:22:53"},{"name":"end","nativeSrc":"10482:3:53","nodeType":"YulIdentifier","src":"10482:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10437:20:53","nodeType":"YulIdentifier","src":"10437:20:53"},"nativeSrc":"10437:49:53","nodeType":"YulFunctionCall","src":"10437:49:53"}],"functionName":{"name":"mstore","nativeSrc":"10412:6:53","nodeType":"YulIdentifier","src":"10412:6:53"},"nativeSrc":"10412:75:53","nodeType":"YulFunctionCall","src":"10412:75:53"},"nativeSrc":"10412:75:53","nodeType":"YulExpressionStatement","src":"10412:75:53"}]},{"nativeSrc":"10508:320:53","nodeType":"YulBlock","src":"10508:320:53","statements":[{"nativeSrc":"10543:46:53","nodeType":"YulVariableDeclaration","src":"10543:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10574:9:53","nodeType":"YulIdentifier","src":"10574:9:53"},{"kind":"number","nativeSrc":"10585:2:53","nodeType":"YulLiteral","src":"10585:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10570:3:53","nodeType":"YulIdentifier","src":"10570:3:53"},"nativeSrc":"10570:18:53","nodeType":"YulFunctionCall","src":"10570:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"10557:12:53","nodeType":"YulIdentifier","src":"10557:12:53"},"nativeSrc":"10557:32:53","nodeType":"YulFunctionCall","src":"10557:32:53"},"variables":[{"name":"offset","nativeSrc":"10547:6:53","nodeType":"YulTypedName","src":"10547:6:53","type":""}]},{"body":{"nativeSrc":"10636:83:53","nodeType":"YulBlock","src":"10636:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10638:77:53","nodeType":"YulIdentifier","src":"10638:77:53"},"nativeSrc":"10638:79:53","nodeType":"YulFunctionCall","src":"10638:79:53"},"nativeSrc":"10638:79:53","nodeType":"YulExpressionStatement","src":"10638:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10608:6:53","nodeType":"YulIdentifier","src":"10608:6:53"},{"kind":"number","nativeSrc":"10616:18:53","nodeType":"YulLiteral","src":"10616:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10605:2:53","nodeType":"YulIdentifier","src":"10605:2:53"},"nativeSrc":"10605:30:53","nodeType":"YulFunctionCall","src":"10605:30:53"},"nativeSrc":"10602:117:53","nodeType":"YulIf","src":"10602:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10744:5:53","nodeType":"YulIdentifier","src":"10744:5:53"},{"kind":"number","nativeSrc":"10751:4:53","nodeType":"YulLiteral","src":"10751:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10740:3:53","nodeType":"YulIdentifier","src":"10740:3:53"},"nativeSrc":"10740:16:53","nodeType":"YulFunctionCall","src":"10740:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10792:9:53","nodeType":"YulIdentifier","src":"10792:9:53"},{"name":"offset","nativeSrc":"10803:6:53","nodeType":"YulIdentifier","src":"10803:6:53"}],"functionName":{"name":"add","nativeSrc":"10788:3:53","nodeType":"YulIdentifier","src":"10788:3:53"},"nativeSrc":"10788:22:53","nodeType":"YulFunctionCall","src":"10788:22:53"},{"name":"end","nativeSrc":"10812:3:53","nodeType":"YulIdentifier","src":"10812:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10758:29:53","nodeType":"YulIdentifier","src":"10758:29:53"},"nativeSrc":"10758:58:53","nodeType":"YulFunctionCall","src":"10758:58:53"}],"functionName":{"name":"mstore","nativeSrc":"10733:6:53","nodeType":"YulIdentifier","src":"10733:6:53"},"nativeSrc":"10733:84:53","nodeType":"YulFunctionCall","src":"10733:84:53"},"nativeSrc":"10733:84:53","nodeType":"YulExpressionStatement","src":"10733:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"10084:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10145:9:53","nodeType":"YulTypedName","src":"10145:9:53","type":""},{"name":"end","nativeSrc":"10156:3:53","nodeType":"YulTypedName","src":"10156:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10164:5:53","nodeType":"YulTypedName","src":"10164:5:53","type":""}],"src":"10084:751:53"},{"body":{"nativeSrc":"10938:454:53","nodeType":"YulBlock","src":"10938:454:53","statements":[{"body":{"nativeSrc":"10984:83:53","nodeType":"YulBlock","src":"10984:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10986:77:53","nodeType":"YulIdentifier","src":"10986:77:53"},"nativeSrc":"10986:79:53","nodeType":"YulFunctionCall","src":"10986:79:53"},"nativeSrc":"10986:79:53","nodeType":"YulExpressionStatement","src":"10986:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10959:7:53","nodeType":"YulIdentifier","src":"10959:7:53"},{"name":"headStart","nativeSrc":"10968:9:53","nodeType":"YulIdentifier","src":"10968:9:53"}],"functionName":{"name":"sub","nativeSrc":"10955:3:53","nodeType":"YulIdentifier","src":"10955:3:53"},"nativeSrc":"10955:23:53","nodeType":"YulFunctionCall","src":"10955:23:53"},{"kind":"number","nativeSrc":"10980:2:53","nodeType":"YulLiteral","src":"10980:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10951:3:53","nodeType":"YulIdentifier","src":"10951:3:53"},"nativeSrc":"10951:32:53","nodeType":"YulFunctionCall","src":"10951:32:53"},"nativeSrc":"10948:119:53","nodeType":"YulIf","src":"10948:119:53"},{"nativeSrc":"11077:308:53","nodeType":"YulBlock","src":"11077:308:53","statements":[{"nativeSrc":"11092:45:53","nodeType":"YulVariableDeclaration","src":"11092:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11123:9:53","nodeType":"YulIdentifier","src":"11123:9:53"},{"kind":"number","nativeSrc":"11134:1:53","nodeType":"YulLiteral","src":"11134:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11119:3:53","nodeType":"YulIdentifier","src":"11119:3:53"},"nativeSrc":"11119:17:53","nodeType":"YulFunctionCall","src":"11119:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"11106:12:53","nodeType":"YulIdentifier","src":"11106:12:53"},"nativeSrc":"11106:31:53","nodeType":"YulFunctionCall","src":"11106:31:53"},"variables":[{"name":"offset","nativeSrc":"11096:6:53","nodeType":"YulTypedName","src":"11096:6:53","type":""}]},{"body":{"nativeSrc":"11184:83:53","nodeType":"YulBlock","src":"11184:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11186:77:53","nodeType":"YulIdentifier","src":"11186:77:53"},"nativeSrc":"11186:79:53","nodeType":"YulFunctionCall","src":"11186:79:53"},"nativeSrc":"11186:79:53","nodeType":"YulExpressionStatement","src":"11186:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11156:6:53","nodeType":"YulIdentifier","src":"11156:6:53"},{"kind":"number","nativeSrc":"11164:18:53","nodeType":"YulLiteral","src":"11164:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11153:2:53","nodeType":"YulIdentifier","src":"11153:2:53"},"nativeSrc":"11153:30:53","nodeType":"YulFunctionCall","src":"11153:30:53"},"nativeSrc":"11150:117:53","nodeType":"YulIf","src":"11150:117:53"},{"nativeSrc":"11281:94:53","nodeType":"YulAssignment","src":"11281:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11347:9:53","nodeType":"YulIdentifier","src":"11347:9:53"},{"name":"offset","nativeSrc":"11358:6:53","nodeType":"YulIdentifier","src":"11358:6:53"}],"functionName":{"name":"add","nativeSrc":"11343:3:53","nodeType":"YulIdentifier","src":"11343:3:53"},"nativeSrc":"11343:22:53","nodeType":"YulFunctionCall","src":"11343:22:53"},{"name":"dataEnd","nativeSrc":"11367:7:53","nodeType":"YulIdentifier","src":"11367:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"11291:51:53","nodeType":"YulIdentifier","src":"11291:51:53"},"nativeSrc":"11291:84:53","nodeType":"YulFunctionCall","src":"11291:84:53"},"variableNames":[{"name":"value0","nativeSrc":"11281:6:53","nodeType":"YulIdentifier","src":"11281:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"10841:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10908:9:53","nodeType":"YulTypedName","src":"10908:9:53","type":""},{"name":"dataEnd","nativeSrc":"10919:7:53","nodeType":"YulTypedName","src":"10919:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10931:6:53","nodeType":"YulTypedName","src":"10931:6:53","type":""}],"src":"10841:551:53"},{"body":{"nativeSrc":"11426:152:53","nodeType":"YulBlock","src":"11426:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11443:1:53","nodeType":"YulLiteral","src":"11443:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11446:77:53","nodeType":"YulLiteral","src":"11446:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11436:6:53","nodeType":"YulIdentifier","src":"11436:6:53"},"nativeSrc":"11436:88:53","nodeType":"YulFunctionCall","src":"11436:88:53"},"nativeSrc":"11436:88:53","nodeType":"YulExpressionStatement","src":"11436:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11540:1:53","nodeType":"YulLiteral","src":"11540:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11543:4:53","nodeType":"YulLiteral","src":"11543:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"11533:6:53","nodeType":"YulIdentifier","src":"11533:6:53"},"nativeSrc":"11533:15:53","nodeType":"YulFunctionCall","src":"11533:15:53"},"nativeSrc":"11533:15:53","nodeType":"YulExpressionStatement","src":"11533:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11564:1:53","nodeType":"YulLiteral","src":"11564:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11567:4:53","nodeType":"YulLiteral","src":"11567:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11557:6:53","nodeType":"YulIdentifier","src":"11557:6:53"},"nativeSrc":"11557:15:53","nodeType":"YulFunctionCall","src":"11557:15:53"},"nativeSrc":"11557:15:53","nodeType":"YulExpressionStatement","src":"11557:15:53"}]},"name":"panic_error_0x11","nativeSrc":"11398:180:53","nodeType":"YulFunctionDefinition","src":"11398:180:53"},{"body":{"nativeSrc":"11627:190:53","nodeType":"YulBlock","src":"11627:190:53","statements":[{"nativeSrc":"11637:33:53","nodeType":"YulAssignment","src":"11637:33:53","value":{"arguments":[{"name":"value","nativeSrc":"11664:5:53","nodeType":"YulIdentifier","src":"11664:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11646:17:53","nodeType":"YulIdentifier","src":"11646:17:53"},"nativeSrc":"11646:24:53","nodeType":"YulFunctionCall","src":"11646:24:53"},"variableNames":[{"name":"value","nativeSrc":"11637:5:53","nodeType":"YulIdentifier","src":"11637:5:53"}]},{"body":{"nativeSrc":"11760:22:53","nodeType":"YulBlock","src":"11760:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11762:16:53","nodeType":"YulIdentifier","src":"11762:16:53"},"nativeSrc":"11762:18:53","nodeType":"YulFunctionCall","src":"11762:18:53"},"nativeSrc":"11762:18:53","nodeType":"YulExpressionStatement","src":"11762:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"11685:5:53","nodeType":"YulIdentifier","src":"11685:5:53"},{"kind":"number","nativeSrc":"11692:66:53","nodeType":"YulLiteral","src":"11692:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"11682:2:53","nodeType":"YulIdentifier","src":"11682:2:53"},"nativeSrc":"11682:77:53","nodeType":"YulFunctionCall","src":"11682:77:53"},"nativeSrc":"11679:103:53","nodeType":"YulIf","src":"11679:103:53"},{"nativeSrc":"11791:20:53","nodeType":"YulAssignment","src":"11791:20:53","value":{"arguments":[{"name":"value","nativeSrc":"11802:5:53","nodeType":"YulIdentifier","src":"11802:5:53"},{"kind":"number","nativeSrc":"11809:1:53","nodeType":"YulLiteral","src":"11809:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11798:3:53","nodeType":"YulIdentifier","src":"11798:3:53"},"nativeSrc":"11798:13:53","nodeType":"YulFunctionCall","src":"11798:13:53"},"variableNames":[{"name":"ret","nativeSrc":"11791:3:53","nodeType":"YulIdentifier","src":"11791:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"11584:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11613:5:53","nodeType":"YulTypedName","src":"11613:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"11623:3:53","nodeType":"YulTypedName","src":"11623:3:53","type":""}],"src":"11584:233:53"},{"body":{"nativeSrc":"11949:206:53","nodeType":"YulBlock","src":"11949:206:53","statements":[{"nativeSrc":"11959:26:53","nodeType":"YulAssignment","src":"11959:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11971:9:53","nodeType":"YulIdentifier","src":"11971:9:53"},{"kind":"number","nativeSrc":"11982:2:53","nodeType":"YulLiteral","src":"11982:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11967:3:53","nodeType":"YulIdentifier","src":"11967:3:53"},"nativeSrc":"11967:18:53","nodeType":"YulFunctionCall","src":"11967:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11959:4:53","nodeType":"YulIdentifier","src":"11959:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12039:6:53","nodeType":"YulIdentifier","src":"12039:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12052:9:53","nodeType":"YulIdentifier","src":"12052:9:53"},{"kind":"number","nativeSrc":"12063:1:53","nodeType":"YulLiteral","src":"12063:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12048:3:53","nodeType":"YulIdentifier","src":"12048:3:53"},"nativeSrc":"12048:17:53","nodeType":"YulFunctionCall","src":"12048:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11995:43:53","nodeType":"YulIdentifier","src":"11995:43:53"},"nativeSrc":"11995:71:53","nodeType":"YulFunctionCall","src":"11995:71:53"},"nativeSrc":"11995:71:53","nodeType":"YulExpressionStatement","src":"11995:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12120:6:53","nodeType":"YulIdentifier","src":"12120:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12133:9:53","nodeType":"YulIdentifier","src":"12133:9:53"},{"kind":"number","nativeSrc":"12144:2:53","nodeType":"YulLiteral","src":"12144:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12129:3:53","nodeType":"YulIdentifier","src":"12129:3:53"},"nativeSrc":"12129:18:53","nodeType":"YulFunctionCall","src":"12129:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12076:43:53","nodeType":"YulIdentifier","src":"12076:43:53"},"nativeSrc":"12076:72:53","nodeType":"YulFunctionCall","src":"12076:72:53"},"nativeSrc":"12076:72:53","nodeType":"YulExpressionStatement","src":"12076:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"11823:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11913:9:53","nodeType":"YulTypedName","src":"11913:9:53","type":""},{"name":"value1","nativeSrc":"11925:6:53","nodeType":"YulTypedName","src":"11925:6:53","type":""},{"name":"value0","nativeSrc":"11933:6:53","nodeType":"YulTypedName","src":"11933:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11944:4:53","nodeType":"YulTypedName","src":"11944:4:53","type":""}],"src":"11823:332:53"},{"body":{"nativeSrc":"12274:34:53","nodeType":"YulBlock","src":"12274:34:53","statements":[{"nativeSrc":"12284:18:53","nodeType":"YulAssignment","src":"12284:18:53","value":{"name":"pos","nativeSrc":"12299:3:53","nodeType":"YulIdentifier","src":"12299:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"12284:11:53","nodeType":"YulIdentifier","src":"12284:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12161:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12246:3:53","nodeType":"YulTypedName","src":"12246:3:53","type":""},{"name":"length","nativeSrc":"12251:6:53","nodeType":"YulTypedName","src":"12251:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12262:11:53","nodeType":"YulTypedName","src":"12262:11:53","type":""}],"src":"12161:147:53"},{"body":{"nativeSrc":"12422:278:53","nodeType":"YulBlock","src":"12422:278:53","statements":[{"nativeSrc":"12432:52:53","nodeType":"YulVariableDeclaration","src":"12432:52:53","value":{"arguments":[{"name":"value","nativeSrc":"12478:5:53","nodeType":"YulIdentifier","src":"12478:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"12446:31:53","nodeType":"YulIdentifier","src":"12446:31:53"},"nativeSrc":"12446:38:53","nodeType":"YulFunctionCall","src":"12446:38:53"},"variables":[{"name":"length","nativeSrc":"12436:6:53","nodeType":"YulTypedName","src":"12436:6:53","type":""}]},{"nativeSrc":"12493:95:53","nodeType":"YulAssignment","src":"12493:95:53","value":{"arguments":[{"name":"pos","nativeSrc":"12576:3:53","nodeType":"YulIdentifier","src":"12576:3:53"},{"name":"length","nativeSrc":"12581:6:53","nodeType":"YulIdentifier","src":"12581:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12500:75:53","nodeType":"YulIdentifier","src":"12500:75:53"},"nativeSrc":"12500:88:53","nodeType":"YulFunctionCall","src":"12500:88:53"},"variableNames":[{"name":"pos","nativeSrc":"12493:3:53","nodeType":"YulIdentifier","src":"12493:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12636:5:53","nodeType":"YulIdentifier","src":"12636:5:53"},{"kind":"number","nativeSrc":"12643:4:53","nodeType":"YulLiteral","src":"12643:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12632:3:53","nodeType":"YulIdentifier","src":"12632:3:53"},"nativeSrc":"12632:16:53","nodeType":"YulFunctionCall","src":"12632:16:53"},{"name":"pos","nativeSrc":"12650:3:53","nodeType":"YulIdentifier","src":"12650:3:53"},{"name":"length","nativeSrc":"12655:6:53","nodeType":"YulIdentifier","src":"12655:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12597:34:53","nodeType":"YulIdentifier","src":"12597:34:53"},"nativeSrc":"12597:65:53","nodeType":"YulFunctionCall","src":"12597:65:53"},"nativeSrc":"12597:65:53","nodeType":"YulExpressionStatement","src":"12597:65:53"},{"nativeSrc":"12671:23:53","nodeType":"YulAssignment","src":"12671:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"12682:3:53","nodeType":"YulIdentifier","src":"12682:3:53"},{"name":"length","nativeSrc":"12687:6:53","nodeType":"YulIdentifier","src":"12687:6:53"}],"functionName":{"name":"add","nativeSrc":"12678:3:53","nodeType":"YulIdentifier","src":"12678:3:53"},"nativeSrc":"12678:16:53","nodeType":"YulFunctionCall","src":"12678:16:53"},"variableNames":[{"name":"end","nativeSrc":"12671:3:53","nodeType":"YulIdentifier","src":"12671:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12314:386:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12403:5:53","nodeType":"YulTypedName","src":"12403:5:53","type":""},{"name":"pos","nativeSrc":"12410:3:53","nodeType":"YulTypedName","src":"12410:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12418:3:53","nodeType":"YulTypedName","src":"12418:3:53","type":""}],"src":"12314:386:53"},{"body":{"nativeSrc":"12840:137:53","nodeType":"YulBlock","src":"12840:137:53","statements":[{"nativeSrc":"12851:100:53","nodeType":"YulAssignment","src":"12851:100:53","value":{"arguments":[{"name":"value0","nativeSrc":"12938:6:53","nodeType":"YulIdentifier","src":"12938:6:53"},{"name":"pos","nativeSrc":"12947:3:53","nodeType":"YulIdentifier","src":"12947:3:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12858:79:53","nodeType":"YulIdentifier","src":"12858:79:53"},"nativeSrc":"12858:93:53","nodeType":"YulFunctionCall","src":"12858:93:53"},"variableNames":[{"name":"pos","nativeSrc":"12851:3:53","nodeType":"YulIdentifier","src":"12851:3:53"}]},{"nativeSrc":"12961:10:53","nodeType":"YulAssignment","src":"12961:10:53","value":{"name":"pos","nativeSrc":"12968:3:53","nodeType":"YulIdentifier","src":"12968:3:53"},"variableNames":[{"name":"end","nativeSrc":"12961:3:53","nodeType":"YulIdentifier","src":"12961:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12706:271:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12819:3:53","nodeType":"YulTypedName","src":"12819:3:53","type":""},{"name":"value0","nativeSrc":"12825:6:53","nodeType":"YulTypedName","src":"12825:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12836:3:53","nodeType":"YulTypedName","src":"12836:3:53","type":""}],"src":"12706:271:53"},{"body":{"nativeSrc":"13025:52:53","nodeType":"YulBlock","src":"13025:52:53","statements":[{"nativeSrc":"13035:35:53","nodeType":"YulAssignment","src":"13035:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"13060:2:53","nodeType":"YulLiteral","src":"13060:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"13064:5:53","nodeType":"YulIdentifier","src":"13064:5:53"}],"functionName":{"name":"shl","nativeSrc":"13056:3:53","nodeType":"YulIdentifier","src":"13056:3:53"},"nativeSrc":"13056:14:53","nodeType":"YulFunctionCall","src":"13056:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"13035:8:53","nodeType":"YulIdentifier","src":"13035:8:53"}]}]},"name":"shift_left_96","nativeSrc":"12983:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13006:5:53","nodeType":"YulTypedName","src":"13006:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"13016:8:53","nodeType":"YulTypedName","src":"13016:8:53","type":""}],"src":"12983:94:53"},{"body":{"nativeSrc":"13130:47:53","nodeType":"YulBlock","src":"13130:47:53","statements":[{"nativeSrc":"13140:31:53","nodeType":"YulAssignment","src":"13140:31:53","value":{"arguments":[{"name":"value","nativeSrc":"13165:5:53","nodeType":"YulIdentifier","src":"13165:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"13151:13:53","nodeType":"YulIdentifier","src":"13151:13:53"},"nativeSrc":"13151:20:53","nodeType":"YulFunctionCall","src":"13151:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"13140:7:53","nodeType":"YulIdentifier","src":"13140:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"13083:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13112:5:53","nodeType":"YulTypedName","src":"13112:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13122:7:53","nodeType":"YulTypedName","src":"13122:7:53","type":""}],"src":"13083:94:53"},{"body":{"nativeSrc":"13230:53:53","nodeType":"YulBlock","src":"13230:53:53","statements":[{"nativeSrc":"13240:37:53","nodeType":"YulAssignment","src":"13240:37:53","value":{"arguments":[{"name":"value","nativeSrc":"13271:5:53","nodeType":"YulIdentifier","src":"13271:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"13251:19:53","nodeType":"YulIdentifier","src":"13251:19:53"},"nativeSrc":"13251:26:53","nodeType":"YulFunctionCall","src":"13251:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"13240:7:53","nodeType":"YulIdentifier","src":"13240:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"13183:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13212:5:53","nodeType":"YulTypedName","src":"13212:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13222:7:53","nodeType":"YulTypedName","src":"13222:7:53","type":""}],"src":"13183:100:53"},{"body":{"nativeSrc":"13372:74:53","nodeType":"YulBlock","src":"13372:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13389:3:53","nodeType":"YulIdentifier","src":"13389:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13432:5:53","nodeType":"YulIdentifier","src":"13432:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"13414:17:53","nodeType":"YulIdentifier","src":"13414:17:53"},"nativeSrc":"13414:24:53","nodeType":"YulFunctionCall","src":"13414:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"13394:19:53","nodeType":"YulIdentifier","src":"13394:19:53"},"nativeSrc":"13394:45:53","nodeType":"YulFunctionCall","src":"13394:45:53"}],"functionName":{"name":"mstore","nativeSrc":"13382:6:53","nodeType":"YulIdentifier","src":"13382:6:53"},"nativeSrc":"13382:58:53","nodeType":"YulFunctionCall","src":"13382:58:53"},"nativeSrc":"13382:58:53","nodeType":"YulExpressionStatement","src":"13382:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13289:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13360:5:53","nodeType":"YulTypedName","src":"13360:5:53","type":""},{"name":"pos","nativeSrc":"13367:3:53","nodeType":"YulTypedName","src":"13367:3:53","type":""}],"src":"13289:157:53"},{"body":{"nativeSrc":"13499:32:53","nodeType":"YulBlock","src":"13499:32:53","statements":[{"nativeSrc":"13509:16:53","nodeType":"YulAssignment","src":"13509:16:53","value":{"name":"value","nativeSrc":"13520:5:53","nodeType":"YulIdentifier","src":"13520:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"13509:7:53","nodeType":"YulIdentifier","src":"13509:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"13452:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13481:5:53","nodeType":"YulTypedName","src":"13481:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13491:7:53","nodeType":"YulTypedName","src":"13491:7:53","type":""}],"src":"13452:79:53"},{"body":{"nativeSrc":"13620:74:53","nodeType":"YulBlock","src":"13620:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13637:3:53","nodeType":"YulIdentifier","src":"13637:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13680:5:53","nodeType":"YulIdentifier","src":"13680:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13662:17:53","nodeType":"YulIdentifier","src":"13662:17:53"},"nativeSrc":"13662:24:53","nodeType":"YulFunctionCall","src":"13662:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"13642:19:53","nodeType":"YulIdentifier","src":"13642:19:53"},"nativeSrc":"13642:45:53","nodeType":"YulFunctionCall","src":"13642:45:53"}],"functionName":{"name":"mstore","nativeSrc":"13630:6:53","nodeType":"YulIdentifier","src":"13630:6:53"},"nativeSrc":"13630:58:53","nodeType":"YulFunctionCall","src":"13630:58:53"},"nativeSrc":"13630:58:53","nodeType":"YulExpressionStatement","src":"13630:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"13537:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13608:5:53","nodeType":"YulTypedName","src":"13608:5:53","type":""},{"name":"pos","nativeSrc":"13615:3:53","nodeType":"YulTypedName","src":"13615:3:53","type":""}],"src":"13537:157:53"},{"body":{"nativeSrc":"13872:366:53","nodeType":"YulBlock","src":"13872:366:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13945:6:53","nodeType":"YulIdentifier","src":"13945:6:53"},{"name":"pos","nativeSrc":"13954:3:53","nodeType":"YulIdentifier","src":"13954:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13883:61:53","nodeType":"YulIdentifier","src":"13883:61:53"},"nativeSrc":"13883:75:53","nodeType":"YulFunctionCall","src":"13883:75:53"},"nativeSrc":"13883:75:53","nodeType":"YulExpressionStatement","src":"13883:75:53"},{"nativeSrc":"13967:19:53","nodeType":"YulAssignment","src":"13967:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"13978:3:53","nodeType":"YulIdentifier","src":"13978:3:53"},{"kind":"number","nativeSrc":"13983:2:53","nodeType":"YulLiteral","src":"13983:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"13974:3:53","nodeType":"YulIdentifier","src":"13974:3:53"},"nativeSrc":"13974:12:53","nodeType":"YulFunctionCall","src":"13974:12:53"},"variableNames":[{"name":"pos","nativeSrc":"13967:3:53","nodeType":"YulIdentifier","src":"13967:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14058:6:53","nodeType":"YulIdentifier","src":"14058:6:53"},{"name":"pos","nativeSrc":"14067:3:53","nodeType":"YulIdentifier","src":"14067:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13996:61:53","nodeType":"YulIdentifier","src":"13996:61:53"},"nativeSrc":"13996:75:53","nodeType":"YulFunctionCall","src":"13996:75:53"},"nativeSrc":"13996:75:53","nodeType":"YulExpressionStatement","src":"13996:75:53"},{"nativeSrc":"14080:19:53","nodeType":"YulAssignment","src":"14080:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"14091:3:53","nodeType":"YulIdentifier","src":"14091:3:53"},{"kind":"number","nativeSrc":"14096:2:53","nodeType":"YulLiteral","src":"14096:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"14087:3:53","nodeType":"YulIdentifier","src":"14087:3:53"},"nativeSrc":"14087:12:53","nodeType":"YulFunctionCall","src":"14087:12:53"},"variableNames":[{"name":"pos","nativeSrc":"14080:3:53","nodeType":"YulIdentifier","src":"14080:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"14171:6:53","nodeType":"YulIdentifier","src":"14171:6:53"},{"name":"pos","nativeSrc":"14180:3:53","nodeType":"YulIdentifier","src":"14180:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"14109:61:53","nodeType":"YulIdentifier","src":"14109:61:53"},"nativeSrc":"14109:75:53","nodeType":"YulFunctionCall","src":"14109:75:53"},"nativeSrc":"14109:75:53","nodeType":"YulExpressionStatement","src":"14109:75:53"},{"nativeSrc":"14193:19:53","nodeType":"YulAssignment","src":"14193:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"14204:3:53","nodeType":"YulIdentifier","src":"14204:3:53"},{"kind":"number","nativeSrc":"14209:2:53","nodeType":"YulLiteral","src":"14209:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14200:3:53","nodeType":"YulIdentifier","src":"14200:3:53"},"nativeSrc":"14200:12:53","nodeType":"YulFunctionCall","src":"14200:12:53"},"variableNames":[{"name":"pos","nativeSrc":"14193:3:53","nodeType":"YulIdentifier","src":"14193:3:53"}]},{"nativeSrc":"14222:10:53","nodeType":"YulAssignment","src":"14222:10:53","value":{"name":"pos","nativeSrc":"14229:3:53","nodeType":"YulIdentifier","src":"14229:3:53"},"variableNames":[{"name":"end","nativeSrc":"14222:3:53","nodeType":"YulIdentifier","src":"14222:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"13700:538:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13835:3:53","nodeType":"YulTypedName","src":"13835:3:53","type":""},{"name":"value2","nativeSrc":"13841:6:53","nodeType":"YulTypedName","src":"13841:6:53","type":""},{"name":"value1","nativeSrc":"13849:6:53","nodeType":"YulTypedName","src":"13849:6:53","type":""},{"name":"value0","nativeSrc":"13857:6:53","nodeType":"YulTypedName","src":"13857:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13868:3:53","nodeType":"YulTypedName","src":"13868:3:53","type":""}],"src":"13700:538:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_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 revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct PointsIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$17281_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // venue\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // quantity\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$17281_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$17281_memory_ptr(add(headStart, offset), dataEnd)\n }\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function 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_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 array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c8063a4d66daf1161009f578063ea3d508a11610063578063ea3d508a1461035b578063f04e283e14610385578063f1c30ec0146103a1578063f2fde38b146103dd578063fee81cf4146103f957610113565b8063a4d66daf14610253578063c63ff8dd1461027d578063c884ef83146102b9578063dcc59b6f146102f5578063e18e65081461031f57610113565b80634e7165a2116100e65780634e7165a2146101af57806354d1f13d146101eb578063715018a6146101f55780638da5cb5b146101ff578063a270a7371461022957610113565b806301ffc9a71461011757806317fc45e214610153578063256929621461017d578063439fab9114610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610ec8565b610435565b60405161014a9190610f0d565b60405180910390f35b34801561015e575f80fd5b506101676104ae565b6040516101749190610f3e565b60405180910390f35b6101856104b4565b005b348015610192575f80fd5b506101ad60048036038101906101a89190610fb8565b610505565b005b3480156101ba575f80fd5b506101d560048036038101906101d09190610fb8565b61065d565b6040516101e29190611073565b60405180910390f35b6101f36106b4565b005b6101fd6106ed565b005b34801561020a575f80fd5b50610213610700565b60405161022091906110d2565b60405180910390f35b348015610234575f80fd5b5061023d610728565b60405161024a91906110d2565b60405180910390f35b34801561025e575f80fd5b5061026761074d565b6040516102749190610f3e565b60405180910390f35b348015610288575f80fd5b506102a3600480360381019061029e9190610fb8565b610753565b6040516102b09190610f0d565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190611115565b610a06565b6040516102ec9190610f0d565b60405180910390f35b348015610300575f80fd5b50610309610a23565b6040516103169190610f3e565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190610fb8565b610a28565b6040516103529190610f0d565b60405180910390f35b348015610366575f80fd5b5061036f610a50565b60405161037c919061114f565b60405180910390f35b61039f600480360381019061039a9190611115565b610a62565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190610fb8565b610aa0565b6040516103d49190610f0d565b60405180910390f35b6103f760048036038101906103f29190611115565b610ad3565b005b348015610404575f80fd5b5061041f600480360381019061041a9190611115565b610afc565b60405161042c9190610f3e565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104a757506104a682610b15565b5b9050919050565b60035481565b5f6104bd610b8e565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61050e610b98565b905080546003825580156105405760018160011c14303b106105375763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105519190611287565b90505f8160400151148061056857505f8160600151145b1561059f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015160055f6101000a81548163ffffffff021916908360e01c02179055508060400151600381905550806060015160048190555061062233610bc1565b508015610658576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156106795761067861116c565b5b6040519080825280601f01601f1916602001820160405280156106ab5781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6106f5610c97565b6106fe5f610cce565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b5f61075c610c97565b5f838381019061076c91906113cb565b905061077a815f0151610d94565b6107b0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906107c19061143f565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900460e01b835f015160035460405160240161087d929190611486565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108e791906114e7565b5f604051808303815f865af19150503d805f8114610920576040519150601f19603f3d011682016040523d82523d5f602084013e610925565b606091505b5050905080610960576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01516003546040516020016109d693929190611562565b6040516020818303038152906040526040516109f29190611073565b60405180910390a260019250505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610a3991906113cb565b9050610a47815f0151610d94565b91505092915050565b60055f9054906101000a900460e01b81565b610a6a610c97565b63389a75e1600c52805f526020600c208054421115610a9057636f5e88185f526004601cfd5b5f815550610a9d81610cce565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610adb610c97565b8060601b610af057637448fbae5f526004601cfd5b610af981610cce565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b875750610b8682610df5565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bc9610e5e565b15610c41577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c94565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ccc576382b429005f526004601cfd5b565b610cd6610e5e565b15610d3b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d91565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610dee57506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ea781610e73565b8114610eb1575f80fd5b50565b5f81359050610ec281610e9e565b92915050565b5f60208284031215610edd57610edc610e6b565b5b5f610eea84828501610eb4565b91505092915050565b5f8115159050919050565b610f0781610ef3565b82525050565b5f602082019050610f205f830184610efe565b92915050565b5f819050919050565b610f3881610f26565b82525050565b5f602082019050610f515f830184610f2f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f7857610f77610f57565b5b8235905067ffffffffffffffff811115610f9557610f94610f5b565b5b602083019150836001820283011115610fb157610fb0610f5f565b5b9250929050565b5f8060208385031215610fce57610fcd610e6b565b5b5f83013567ffffffffffffffff811115610feb57610fea610e6f565b5b610ff785828601610f63565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61104582611003565b61104f818561100d565b935061105f81856020860161101d565b6110688161102b565b840191505092915050565b5f6020820190508181035f83015261108b818461103b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110bc82611093565b9050919050565b6110cc816110b2565b82525050565b5f6020820190506110e55f8301846110c3565b92915050565b6110f4816110b2565b81146110fe575f80fd5b50565b5f8135905061110f816110eb565b92915050565b5f6020828403121561112a57611129610e6b565b5b5f61113784828501611101565b91505092915050565b61114981610e73565b82525050565b5f6020820190506111625f830184611140565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111a28261102b565b810181811067ffffffffffffffff821117156111c1576111c061116c565b5b80604052505050565b5f6111d3610e62565b90506111df8282611199565b919050565b5f80fd5b6111f181610f26565b81146111fb575f80fd5b50565b5f8135905061120c816111e8565b92915050565b5f6080828403121561122757611226611168565b5b61123160806111ca565b90505f61124084828501611101565b5f83015250602061125384828501610eb4565b6020830152506040611267848285016111fe565b604083015250606061127b848285016111fe565b60608301525092915050565b5f6080828403121561129c5761129b610e6b565b5b5f6112a984828501611212565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112d0576112cf61116c565b5b6112d98261102b565b9050602081019050919050565b828183375f83830152505050565b5f611306611301846112b6565b6111ca565b905082815260208101848484011115611322576113216112b2565b5b61132d8482856112e6565b509392505050565b5f82601f83011261134957611348610f57565b5b81356113598482602086016112f4565b91505092915050565b5f6040828403121561137757611376611168565b5b61138160406111ca565b90505f61139084828501611101565b5f83015250602082013567ffffffffffffffff8111156113b3576113b26111e4565b5b6113bf84828501611335565b60208301525092915050565b5f602082840312156113e0576113df610e6b565b5b5f82013567ffffffffffffffff8111156113fd576113fc610e6f565b5b61140984828501611362565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61144982610f26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361147b5761147a611412565b5b600182019050919050565b5f6040820190506114995f8301856110c3565b6114a66020830184610f2f565b9392505050565b5f81905092915050565b5f6114c182611003565b6114cb81856114ad565b93506114db81856020860161101d565b80840191505092915050565b5f6114f282846114b7565b915081905092915050565b5f8160601b9050919050565b5f611513826114fd565b9050919050565b5f61152482611509565b9050919050565b61153c611537826110b2565b61151a565b82525050565b5f819050919050565b61155c61155782610f26565b611542565b82525050565b5f61156d828661152b565b60148201915061157d828561152b565b60148201915061158d828461154b565b60208201915081905094935050505056fea264697066735822122044670bf79133237915832c922e2e0a39e868512253a569f3922fb3609fd6e1a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA3D508A GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3F9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2B9 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2F5 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x31F JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xA270A737 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x17FC45E2 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xEC8 JUMP JUMPDEST PUSH2 0x435 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x4B4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x505 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F3 PUSH2 0x6B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x6ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x728 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x267 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA06 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EC SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x309 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x316 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x345 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x36F PUSH2 0xA50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x114F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA62 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4A7 JUMPI POP PUSH2 0x4A6 DUP3 PUSH2 0xB15 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0xB8E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x50E PUSH2 0xB98 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x540 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x537 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x1287 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x568 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x5 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x622 CALLER PUSH2 0xBC1 JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x679 JUMPI PUSH2 0x678 PUSH2 0x116C 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 0x6AB 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x6F5 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0x6FE PUSH0 PUSH2 0xCCE JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x75C PUSH2 0xC97 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x76C SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0x77A DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x7C1 SWAP1 PUSH2 0x143F JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x87D SWAP3 SWAP2 SWAP1 PUSH2 0x1486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x14E7 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x920 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x925 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH32 0x360E42E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x9F2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA39 SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xA6A PUSH2 0xC97 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xA90 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xA9D DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xADB PUSH2 0xC97 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xAF0 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xAF9 DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB87 JUMPI POP PUSH2 0xB86 DUP3 PUSH2 0xDF5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBC9 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xC41 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xC03 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC94 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xCCC JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xCD6 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xD3B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xD91 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0xDEE JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA7 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xEB1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEC2 DUP2 PUSH2 0xE9E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEDD JUMPI PUSH2 0xEDC PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEEA DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF07 DUP2 PUSH2 0xEF3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF20 PUSH0 DUP4 ADD DUP5 PUSH2 0xEFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF38 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF51 PUSH0 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF78 JUMPI PUSH2 0xF77 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF95 JUMPI PUSH2 0xF94 PUSH2 0xF5B JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFB1 JUMPI PUSH2 0xFB0 PUSH2 0xF5F JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCE JUMPI PUSH2 0xFCD PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFEB JUMPI PUSH2 0xFEA PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0xFF7 DUP6 DUP3 DUP7 ADD PUSH2 0xF63 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1045 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x104F DUP2 DUP6 PUSH2 0x100D JUMP JUMPDEST SWAP4 POP PUSH2 0x105F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST PUSH2 0x1068 DUP2 PUSH2 0x102B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x108B DUP2 DUP5 PUSH2 0x103B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BC DUP3 PUSH2 0x1093 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10CC DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10E5 PUSH0 DUP4 ADD DUP5 PUSH2 0x10C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10F4 DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x10FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x110F DUP2 PUSH2 0x10EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x112A JUMPI PUSH2 0x1129 PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1137 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1149 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1162 PUSH0 DUP4 ADD DUP5 PUSH2 0x1140 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11A2 DUP3 PUSH2 0x102B JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11C1 JUMPI PUSH2 0x11C0 PUSH2 0x116C JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11D3 PUSH2 0xE62 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DF DUP3 DUP3 PUSH2 0x1199 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11F1 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP2 EQ PUSH2 0x11FB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x120C DUP2 PUSH2 0x11E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1227 JUMPI PUSH2 0x1226 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1231 PUSH1 0x80 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1240 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1253 DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1267 DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x127B DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x129C JUMPI PUSH2 0x129B PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12CF PUSH2 0x116C JUMP JUMPDEST JUMPDEST PUSH2 0x12D9 DUP3 PUSH2 0x102B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1306 PUSH2 0x1301 DUP5 PUSH2 0x12B6 JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1322 JUMPI PUSH2 0x1321 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST PUSH2 0x132D DUP5 DUP3 DUP6 PUSH2 0x12E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1359 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1377 JUMPI PUSH2 0x1376 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1381 PUSH1 0x40 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1390 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13B3 JUMPI PUSH2 0x13B2 PUSH2 0x11E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13BF DUP5 DUP3 DUP6 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13DF PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13FD JUMPI PUSH2 0x13FC PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0x1409 DUP5 DUP3 DUP6 ADD PUSH2 0x1362 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1449 DUP3 PUSH2 0xF26 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x147B JUMPI PUSH2 0x147A PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1499 PUSH0 DUP4 ADD DUP6 PUSH2 0x10C3 JUMP JUMPDEST PUSH2 0x14A6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14C1 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x14CB DUP2 DUP6 PUSH2 0x14AD JUMP JUMPDEST SWAP4 POP PUSH2 0x14DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14F2 DUP3 DUP5 PUSH2 0x14B7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1513 DUP3 PUSH2 0x14FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1524 DUP3 PUSH2 0x1509 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153C PUSH2 0x1537 DUP3 PUSH2 0x10B2 JUMP JUMPDEST PUSH2 0x151A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x155C PUSH2 0x1557 DUP3 PUSH2 0xF26 JUMP JUMPDEST PUSH2 0x1542 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x156D DUP3 DUP7 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x157D DUP3 DUP6 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x158D DUP3 DUP5 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO PUSH8 0xBF7913323791583 0x2C SWAP3 0x2E 0x2E EXP CODECOPY 0xE8 PUSH9 0x512253A569F3922FB3 PUSH1 0x9F 0xD6 0xE1 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"636:3613:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1008:23:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1731:409:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3197:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;923:20:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1118;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2341:533;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3706:202:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1223:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2972:122:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;1008:23:45:-;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1731:409:45:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1811:24:45::1;1849:5;;1838:32;;;;;;;:::i;:::-;1811:59;;1902:1;1884:5;:14;;;:19;:39;;;;1922:1;1907:5;:11;;;:16;1884:39;1880:86;;;1932:34;;;;;;;;;;;;;;1880:86;1985:5;:11;;;1977:5;;:19;;;;;;;;;;;;;;;;;;2017:5;:14;;;2006:8;;:25;;;;;;;;;;;;;;;;;;2052:5;:14;;;2041:8;:25;;;;2084:5;:11;;;2076:5;:19;;;;2105:28;2122:10;2105:16;:28::i;:::-;1801:339;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1731:409:45;;:::o;3197:128::-;3264:23;3316:1;3306:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3299:19;;3197:128;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;923:20:45:-;;;;;;;;;;;;;:::o;1118:::-;;;;:::o;2341:533::-;2415:4;12517:13:17;:11;:13::i;:::-;2431:26:45::1;2471:5;;2460:33;;;;;;;:::i;:::-;2431:62;;2508:27;2521:6;:13;;;2508:12;:27::i;:::-;2503:55;;2544:14;;;;;;;;;;;;;;2503:55;2569:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;2612:4;2587:7:::0;:22:::1;2595:6;:13;;;2587:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2628:12;2645:5;;;;;;;;;;;:10;;2679:8;;;;;;;;;;;2689:6;:13;;;2704:8;;2656:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2645:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2627:87;;;2729:7;2724:34;;2745:13;;;;;;;;;;;;;;2724:34;2782:6;:13;;;2774:72;;;2814:5;;;;;;;;;;;2821:6;:13;;;2836:8;;2797:48;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2774:72;;;;;;:::i;:::-;;;;;;;;2863:4;2856:11;;;;2341:533:::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;3706:202:45:-;3779:4;3795:26;3835:5;;3824:33;;;;;;;:::i;:::-;3795:62;;3874:27;3887:6;:13;;;3874:12;:27::i;:::-;3867:34;;;3706:202;;;;:::o;1223:22::-;;;;;;;;;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2972:122:45:-;3037:4;3060:27;;;;;;;;;;;;;;8348:349:17;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;4114:133:45:-;4179:4;4203:7;:19;4211:10;4203:19;;;;;;;;;;;;;;;;;;;;;;;;;4202:20;:38;;;;;4235:5;;4226:6;;:14;4202:38;4195:45;;4114:133;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:117::-;2062:1;2059;2052:12;2076:117;2185:1;2182;2175:12;2199:117;2308:1;2305;2298:12;2335:552;2392:8;2402:6;2452:3;2445:4;2437:6;2433:17;2429:27;2419:122;;2460:79;;:::i;:::-;2419:122;2573:6;2560:20;2550:30;;2603:18;2595:6;2592:30;2589:117;;;2625:79;;:::i;:::-;2589:117;2739:4;2731:6;2727:17;2715:29;;2793:3;2785:4;2777:6;2773:17;2763:8;2759:32;2756:41;2753:128;;;2800:79;;:::i;:::-;2753:128;2335:552;;;;;:::o;2893:527::-;2963:6;2971;3020:2;3008:9;2999:7;2995:23;2991:32;2988:119;;;3026:79;;:::i;:::-;2988:119;3174:1;3163:9;3159:17;3146:31;3204:18;3196:6;3193:30;3190:117;;;3226:79;;:::i;:::-;3190:117;3339:64;3395:7;3386:6;3375:9;3371:22;3339:64;:::i;:::-;3321:82;;;;3117:296;2893:527;;;;;:::o;3426:98::-;3477:6;3511:5;3505:12;3495:22;;3426:98;;;:::o;3530:168::-;3613:11;3647:6;3642:3;3635:19;3687:4;3682:3;3678:14;3663:29;;3530:168;;;;:::o;3704:139::-;3793:6;3788:3;3783;3777:23;3834:1;3825:6;3820:3;3816:16;3809:27;3704:139;;;:::o;3849:102::-;3890:6;3941:2;3937:7;3932:2;3925:5;3921:14;3917:28;3907:38;;3849:102;;;:::o;3957:373::-;4043:3;4071:38;4103:5;4071:38;:::i;:::-;4125:70;4188:6;4183:3;4125:70;:::i;:::-;4118:77;;4204:65;4262:6;4257:3;4250:4;4243:5;4239:16;4204:65;:::i;:::-;4294:29;4316:6;4294:29;:::i;:::-;4289:3;4285:39;4278:46;;4047:283;3957:373;;;;:::o;4336:309::-;4447:4;4485:2;4474:9;4470:18;4462:26;;4534:9;4528:4;4524:20;4520:1;4509:9;4505:17;4498:47;4562:76;4633:4;4624:6;4562:76;:::i;:::-;4554:84;;4336:309;;;;:::o;4651:126::-;4688:7;4728:42;4721:5;4717:54;4706:65;;4651:126;;;:::o;4783:96::-;4820:7;4849:24;4867:5;4849:24;:::i;:::-;4838:35;;4783:96;;;:::o;4885:118::-;4972:24;4990:5;4972:24;:::i;:::-;4967:3;4960:37;4885:118;;:::o;5009:222::-;5102:4;5140:2;5129:9;5125:18;5117:26;;5153:71;5221:1;5210:9;5206:17;5197:6;5153:71;:::i;:::-;5009:222;;;;:::o;5237:122::-;5310:24;5328:5;5310:24;:::i;:::-;5303:5;5300:35;5290:63;;5349:1;5346;5339:12;5290:63;5237:122;:::o;5365:139::-;5411:5;5449:6;5436:20;5427:29;;5465:33;5492:5;5465:33;:::i;:::-;5365:139;;;;:::o;5510:329::-;5569:6;5618:2;5606:9;5597:7;5593:23;5589:32;5586:119;;;5624:79;;:::i;:::-;5586:119;5744:1;5769:53;5814:7;5805:6;5794:9;5790:22;5769:53;:::i;:::-;5759:63;;5715:117;5510:329;;;;:::o;5845:115::-;5930:23;5947:5;5930:23;:::i;:::-;5925:3;5918:36;5845:115;;:::o;5966:218::-;6057:4;6095:2;6084:9;6080:18;6072:26;;6108:69;6174:1;6163:9;6159:17;6150:6;6108:69;:::i;:::-;5966:218;;;;:::o;6190:117::-;6299:1;6296;6289:12;6313:180;6361:77;6358:1;6351:88;6458:4;6455:1;6448:15;6482:4;6479:1;6472:15;6499:281;6582:27;6604:4;6582:27;:::i;:::-;6574:6;6570:40;6712:6;6700:10;6697:22;6676:18;6664:10;6661:34;6658:62;6655:88;;;6723:18;;:::i;:::-;6655:88;6763:10;6759:2;6752:22;6542:238;6499:281;;:::o;6786:129::-;6820:6;6847:20;;:::i;:::-;6837:30;;6876:33;6904:4;6896:6;6876:33;:::i;:::-;6786:129;;;:::o;6921:117::-;7030:1;7027;7020:12;7044:122;7117:24;7135:5;7117:24;:::i;:::-;7110:5;7107:35;7097:63;;7156:1;7153;7146:12;7097:63;7044:122;:::o;7172:139::-;7218:5;7256:6;7243:20;7234:29;;7272:33;7299:5;7272:33;:::i;:::-;7172:139;;;;:::o;7359:910::-;7438:5;7482:4;7470:9;7465:3;7461:19;7457:30;7454:117;;;7490:79;;:::i;:::-;7454:117;7589:21;7605:4;7589:21;:::i;:::-;7580:30;;7670:1;7710:49;7755:3;7746:6;7735:9;7731:22;7710:49;:::i;:::-;7703:4;7696:5;7692:16;7685:75;7620:151;7834:2;7875:48;7919:3;7910:6;7899:9;7895:22;7875:48;:::i;:::-;7868:4;7861:5;7857:16;7850:74;7781:154;7998:2;8039:49;8084:3;8075:6;8064:9;8060:22;8039:49;:::i;:::-;8032:4;8025:5;8021:16;8014:75;7945:155;8160:2;8201:49;8246:3;8237:6;8226:9;8222:22;8201:49;:::i;:::-;8194:4;8187:5;8183:16;8176:75;8110:152;7359:910;;;;:::o;8275:390::-;8364:6;8413:3;8401:9;8392:7;8388:23;8384:33;8381:120;;;8420:79;;:::i;:::-;8381:120;8540:1;8565:83;8640:7;8631:6;8620:9;8616:22;8565:83;:::i;:::-;8555:93;;8511:147;8275:390;;;;:::o;8671:117::-;8780:1;8777;8770:12;8794:307;8855:4;8945:18;8937:6;8934:30;8931:56;;;8967:18;;:::i;:::-;8931:56;9005:29;9027:6;9005:29;:::i;:::-;8997:37;;9089:4;9083;9079:15;9071:23;;8794:307;;;:::o;9107:148::-;9205:6;9200:3;9195;9182:30;9246:1;9237:6;9232:3;9228:16;9221:27;9107:148;;;:::o;9261:423::-;9338:5;9363:65;9379:48;9420:6;9379:48;:::i;:::-;9363:65;:::i;:::-;9354:74;;9451:6;9444:5;9437:21;9489:4;9482:5;9478:16;9527:3;9518:6;9513:3;9509:16;9506:25;9503:112;;;9534:79;;:::i;:::-;9503:112;9624:54;9671:6;9666:3;9661;9624:54;:::i;:::-;9344:340;9261:423;;;;;:::o;9703:338::-;9758:5;9807:3;9800:4;9792:6;9788:17;9784:27;9774:122;;9815:79;;:::i;:::-;9774:122;9932:6;9919:20;9957:78;10031:3;10023:6;10016:4;10008:6;10004:17;9957:78;:::i;:::-;9948:87;;9764:277;9703:338;;;;:::o;10084:751::-;10164:5;10208:4;10196:9;10191:3;10187:19;10183:30;10180:117;;;10216:79;;:::i;:::-;10180:117;10315:21;10331:4;10315:21;:::i;:::-;10306:30;;10397:1;10437:49;10482:3;10473:6;10462:9;10458:22;10437:49;:::i;:::-;10430:4;10423:5;10419:16;10412:75;10346:152;10585:2;10574:9;10570:18;10557:32;10616:18;10608:6;10605:30;10602:117;;;10638:79;;:::i;:::-;10602:117;10758:58;10812:3;10803:6;10792:9;10788:22;10758:58;:::i;:::-;10751:4;10744:5;10740:16;10733:84;10508:320;10084:751;;;;:::o;10841:551::-;10931:6;10980:2;10968:9;10959:7;10955:23;10951:32;10948:119;;;10986:79;;:::i;:::-;10948:119;11134:1;11123:9;11119:17;11106:31;11164:18;11156:6;11153:30;11150:117;;;11186:79;;:::i;:::-;11150:117;11291:84;11367:7;11358:6;11347:9;11343:22;11291:84;:::i;:::-;11281:94;;11077:308;10841:551;;;;:::o;11398:180::-;11446:77;11443:1;11436:88;11543:4;11540:1;11533:15;11567:4;11564:1;11557:15;11584:233;11623:3;11646:24;11664:5;11646:24;:::i;:::-;11637:33;;11692:66;11685:5;11682:77;11679:103;;11762:18;;:::i;:::-;11679:103;11809:1;11802:5;11798:13;11791:20;;11584:233;;;:::o;11823:332::-;11944:4;11982:2;11971:9;11967:18;11959:26;;11995:71;12063:1;12052:9;12048:17;12039:6;11995:71;:::i;:::-;12076:72;12144:2;12133:9;12129:18;12120:6;12076:72;:::i;:::-;11823:332;;;;;:::o;12161:147::-;12262:11;12299:3;12284:18;;12161:147;;;;:::o;12314:386::-;12418:3;12446:38;12478:5;12446:38;:::i;:::-;12500:88;12581:6;12576:3;12500:88;:::i;:::-;12493:95;;12597:65;12655:6;12650:3;12643:4;12636:5;12632:16;12597:65;:::i;:::-;12687:6;12682:3;12678:16;12671:23;;12422:278;12314:386;;;;:::o;12706:271::-;12836:3;12858:93;12947:3;12938:6;12858:93;:::i;:::-;12851:100;;12968:3;12961:10;;12706:271;;;;:::o;12983:94::-;13016:8;13064:5;13060:2;13056:14;13035:35;;12983:94;;;:::o;13083:::-;13122:7;13151:20;13165:5;13151:20;:::i;:::-;13140:31;;13083:94;;;:::o;13183:100::-;13222:7;13251:26;13271:5;13251:26;:::i;:::-;13240:37;;13183:100;;;:::o;13289:157::-;13394:45;13414:24;13432:5;13414:24;:::i;:::-;13394:45;:::i;:::-;13389:3;13382:58;13289:157;;:::o;13452:79::-;13491:7;13520:5;13509:16;;13452:79;;;:::o;13537:157::-;13642:45;13662:24;13680:5;13662:24;:::i;:::-;13642:45;:::i;:::-;13637:3;13630:58;13537:157;;:::o;13700:538::-;13868:3;13883:75;13954:3;13945:6;13883:75;:::i;:::-;13983:2;13978:3;13974:12;13967:19;;13996:75;14067:3;14058:6;13996:75;:::i;:::-;14096:2;14091:3;14087:12;14080:19;;14109:75;14180:3;14171:6;14109:75;:::i;:::-;14209:2;14204:3;14200:12;14193:19;;14229:3;14222:10;;13700:538;;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","quantity()":"17fc45e2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","venue()":"a270a737"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quantity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"venue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not have already claimed the incentive; and - The maximum number of claims must not have been reached; and - This contract must be authorized to operate the points contract's issuance function\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed incentive parameters `(address points, uint256 quantity, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"budgetData\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Points Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new PointsIncentive\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"No token approvals are required for this incentive\"},\"quantity()\":{\"notice\":\"The quantity amount issued for each claim\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"selector()\":{\"notice\":\"The selector for the issuance function on the points contract\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"venue()\":{\"notice\":\"The address of the points contract\"}},\"notice\":\"A simple on-chain points incentive implementation that allows claiming of soulbound tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/PointsIncentive.sol\":\"PointsIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/incentives/PointsIncentive.sol\":{\"keccak256\":\"0x855fc567c7e53c28941f56e832836d20191b90a33823b6486a526294704b0021\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f7264eb62a7a3a0bbcbd6ce73c561ef04da6335b6062178efb8735bb403c75ed\",\"dweb:/ipfs/QmZnZ5Kg6mTvUThZ3rsFKHMQZNsGNUkqCKCvgRsHLR3BbR\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/shared/BoostError.sol":{"BoostError":{"abi":[{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"bytes4","name":"expectedInterface","type":"bytes4"},{"internalType":"address","name":"instance","type":"address"}],"name":"InvalidInstance","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Replayed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203a227a8cf7160fdc5e38b474be06acfea3185142e49dad6cb39fbcd8c3fc921f64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE 0x22 PUSH27 0x8CF7160FDC5E38B474BE06ACFEA3185142E49DAD6CB39FBCD8C3FC SWAP3 0x1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"301:1086:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203a227a8cf7160fdc5e38b474be06acfea3185142e49dad6cb39fbcd8c3fc921f64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE 0x22 PUSH27 0x8CF7160FDC5E38B474BE06ACFEA3185142E49DAD6CB39FBCD8C3FC SWAP3 0x1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"301:1086:46:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"expectedInterface\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"InvalidInstance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Replayed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"BoostError\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInstance(bytes4,address)\":[{\"notice\":\"Thrown when a non-conforming instance for a given type is encountered\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"Replayed(address,bytes32,bytes)\":[{\"notice\":\"Thrown when a previously used signature is replayed\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Standardized errors for the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/BoostError.sol\":\"BoostError\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]}},\"version\":1}"}},"contracts/shared/BoostLib.sol":{"BoostLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e27d8083a7d8974c7ad085df29284bd9369e7c0268f2844c220d20b82e00e65364736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PUSH30 0x8083A7D8974C7AD085DF29284BD9369E7C0268F2844C220D20B82E00E653 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"516:1288:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e27d8083a7d8974c7ad085df29284bd9369e7c0268f2844c220d20b82e00e65364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PUSH30 0x8083A7D8974C7AD085DF29284BD9369E7C0268F2844C220D20B82E00E653 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"516:1288:47:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/BoostLib.sol\":\"BoostLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/shared/Cloneable.sol":{"Cloneable":{"abi":[{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"initialize(bytes)":"439fab91","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"title\":\"Cloneable\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A contract that can be cloned and initialized only once\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Cloneable.sol\":\"Cloneable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/shared/Mocks.sol":{"MockERC1155":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","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":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17866":{"entryPoint":null,"id":17866,"parameterSlots":0,"returnSlots":0},"@_211":{"entryPoint":null,"id":211,"parameterSlots":1,"returnSlots":0},"@_setURI_828":{"entryPoint":91,"id":828,"parameterSlots":1,"returnSlots":0},"array_dataslot_t_string_storage":{"entryPoint":258,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":110,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":543,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":384,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":509,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":680,"id":null,"parameterSlots":2,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":276,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":210,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":653,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":393,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":625,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":165,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":120,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":435,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":291,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":613,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":485,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":303,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":444,"id":null,"parameterSlots":3,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":481,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:5231:53","nodeType":"YulBlock","src":"0:5231:53","statements":[{"body":{"nativeSrc":"66:40:53","nodeType":"YulBlock","src":"66:40:53","statements":[{"nativeSrc":"77:22:53","nodeType":"YulAssignment","src":"77:22:53","value":{"arguments":[{"name":"value","nativeSrc":"93:5:53","nodeType":"YulIdentifier","src":"93:5:53"}],"functionName":{"name":"mload","nativeSrc":"87:5:53","nodeType":"YulIdentifier","src":"87:5:53"},"nativeSrc":"87:12:53","nodeType":"YulFunctionCall","src":"87:12:53"},"variableNames":[{"name":"length","nativeSrc":"77:6:53","nodeType":"YulIdentifier","src":"77:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:53","nodeType":"YulTypedName","src":"49:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:53","nodeType":"YulTypedName","src":"59:6:53","type":""}],"src":"7:99:53"},{"body":{"nativeSrc":"140:152:53","nodeType":"YulBlock","src":"140:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"157:1:53","nodeType":"YulLiteral","src":"157:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"160:77:53","nodeType":"YulLiteral","src":"160:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"150:6:53","nodeType":"YulIdentifier","src":"150:6:53"},"nativeSrc":"150:88:53","nodeType":"YulFunctionCall","src":"150:88:53"},"nativeSrc":"150:88:53","nodeType":"YulExpressionStatement","src":"150:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254:1:53","nodeType":"YulLiteral","src":"254:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"257:4:53","nodeType":"YulLiteral","src":"257:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"247:6:53","nodeType":"YulIdentifier","src":"247:6:53"},"nativeSrc":"247:15:53","nodeType":"YulFunctionCall","src":"247:15:53"},"nativeSrc":"247:15:53","nodeType":"YulExpressionStatement","src":"247:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"278:1:53","nodeType":"YulLiteral","src":"278:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"281:4:53","nodeType":"YulLiteral","src":"281:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"271:6:53","nodeType":"YulIdentifier","src":"271:6:53"},"nativeSrc":"271:15:53","nodeType":"YulFunctionCall","src":"271:15:53"},"nativeSrc":"271:15:53","nodeType":"YulExpressionStatement","src":"271:15:53"}]},"name":"panic_error_0x41","nativeSrc":"112:180:53","nodeType":"YulFunctionDefinition","src":"112:180:53"},{"body":{"nativeSrc":"326:152:53","nodeType":"YulBlock","src":"326:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"343:1:53","nodeType":"YulLiteral","src":"343:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"346:77:53","nodeType":"YulLiteral","src":"346:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"336:6:53","nodeType":"YulIdentifier","src":"336:6:53"},"nativeSrc":"336:88:53","nodeType":"YulFunctionCall","src":"336:88:53"},"nativeSrc":"336:88:53","nodeType":"YulExpressionStatement","src":"336:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:53","nodeType":"YulLiteral","src":"440:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"443:4:53","nodeType":"YulLiteral","src":"443:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"433:6:53","nodeType":"YulIdentifier","src":"433:6:53"},"nativeSrc":"433:15:53","nodeType":"YulFunctionCall","src":"433:15:53"},"nativeSrc":"433:15:53","nodeType":"YulExpressionStatement","src":"433:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"464:1:53","nodeType":"YulLiteral","src":"464:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"467:4:53","nodeType":"YulLiteral","src":"467:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"457:6:53","nodeType":"YulIdentifier","src":"457:6:53"},"nativeSrc":"457:15:53","nodeType":"YulFunctionCall","src":"457:15:53"},"nativeSrc":"457:15:53","nodeType":"YulExpressionStatement","src":"457:15:53"}]},"name":"panic_error_0x22","nativeSrc":"298:180:53","nodeType":"YulFunctionDefinition","src":"298:180:53"},{"body":{"nativeSrc":"535:269:53","nodeType":"YulBlock","src":"535:269:53","statements":[{"nativeSrc":"545:22:53","nodeType":"YulAssignment","src":"545:22:53","value":{"arguments":[{"name":"data","nativeSrc":"559:4:53","nodeType":"YulIdentifier","src":"559:4:53"},{"kind":"number","nativeSrc":"565:1:53","nodeType":"YulLiteral","src":"565:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"555:3:53","nodeType":"YulIdentifier","src":"555:3:53"},"nativeSrc":"555:12:53","nodeType":"YulFunctionCall","src":"555:12:53"},"variableNames":[{"name":"length","nativeSrc":"545:6:53","nodeType":"YulIdentifier","src":"545:6:53"}]},{"nativeSrc":"576:38:53","nodeType":"YulVariableDeclaration","src":"576:38:53","value":{"arguments":[{"name":"data","nativeSrc":"606:4:53","nodeType":"YulIdentifier","src":"606:4:53"},{"kind":"number","nativeSrc":"612:1:53","nodeType":"YulLiteral","src":"612:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"602:3:53","nodeType":"YulIdentifier","src":"602:3:53"},"nativeSrc":"602:12:53","nodeType":"YulFunctionCall","src":"602:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"580:18:53","nodeType":"YulTypedName","src":"580:18:53","type":""}]},{"body":{"nativeSrc":"653:51:53","nodeType":"YulBlock","src":"653:51:53","statements":[{"nativeSrc":"667:27:53","nodeType":"YulAssignment","src":"667:27:53","value":{"arguments":[{"name":"length","nativeSrc":"681:6:53","nodeType":"YulIdentifier","src":"681:6:53"},{"kind":"number","nativeSrc":"689:4:53","nodeType":"YulLiteral","src":"689:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"677:3:53","nodeType":"YulIdentifier","src":"677:3:53"},"nativeSrc":"677:17:53","nodeType":"YulFunctionCall","src":"677:17:53"},"variableNames":[{"name":"length","nativeSrc":"667:6:53","nodeType":"YulIdentifier","src":"667:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"633:18:53","nodeType":"YulIdentifier","src":"633:18:53"}],"functionName":{"name":"iszero","nativeSrc":"626:6:53","nodeType":"YulIdentifier","src":"626:6:53"},"nativeSrc":"626:26:53","nodeType":"YulFunctionCall","src":"626:26:53"},"nativeSrc":"623:81:53","nodeType":"YulIf","src":"623:81:53"},{"body":{"nativeSrc":"756:42:53","nodeType":"YulBlock","src":"756:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"770:16:53","nodeType":"YulIdentifier","src":"770:16:53"},"nativeSrc":"770:18:53","nodeType":"YulFunctionCall","src":"770:18:53"},"nativeSrc":"770:18:53","nodeType":"YulExpressionStatement","src":"770:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"720:18:53","nodeType":"YulIdentifier","src":"720:18:53"},{"arguments":[{"name":"length","nativeSrc":"743:6:53","nodeType":"YulIdentifier","src":"743:6:53"},{"kind":"number","nativeSrc":"751:2:53","nodeType":"YulLiteral","src":"751:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"740:2:53","nodeType":"YulIdentifier","src":"740:2:53"},"nativeSrc":"740:14:53","nodeType":"YulFunctionCall","src":"740:14:53"}],"functionName":{"name":"eq","nativeSrc":"717:2:53","nodeType":"YulIdentifier","src":"717:2:53"},"nativeSrc":"717:38:53","nodeType":"YulFunctionCall","src":"717:38:53"},"nativeSrc":"714:84:53","nodeType":"YulIf","src":"714:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"484:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"519:4:53","nodeType":"YulTypedName","src":"519:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"528:6:53","nodeType":"YulTypedName","src":"528:6:53","type":""}],"src":"484:320:53"},{"body":{"nativeSrc":"864:87:53","nodeType":"YulBlock","src":"864:87:53","statements":[{"nativeSrc":"874:11:53","nodeType":"YulAssignment","src":"874:11:53","value":{"name":"ptr","nativeSrc":"882:3:53","nodeType":"YulIdentifier","src":"882:3:53"},"variableNames":[{"name":"data","nativeSrc":"874:4:53","nodeType":"YulIdentifier","src":"874:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"902:1:53","nodeType":"YulLiteral","src":"902:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"905:3:53","nodeType":"YulIdentifier","src":"905:3:53"}],"functionName":{"name":"mstore","nativeSrc":"895:6:53","nodeType":"YulIdentifier","src":"895:6:53"},"nativeSrc":"895:14:53","nodeType":"YulFunctionCall","src":"895:14:53"},"nativeSrc":"895:14:53","nodeType":"YulExpressionStatement","src":"895:14:53"},{"nativeSrc":"918:26:53","nodeType":"YulAssignment","src":"918:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"936:1:53","nodeType":"YulLiteral","src":"936:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"939:4:53","nodeType":"YulLiteral","src":"939:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"926:9:53","nodeType":"YulIdentifier","src":"926:9:53"},"nativeSrc":"926:18:53","nodeType":"YulFunctionCall","src":"926:18:53"},"variableNames":[{"name":"data","nativeSrc":"918:4:53","nodeType":"YulIdentifier","src":"918:4:53"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"810:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"851:3:53","nodeType":"YulTypedName","src":"851:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"859:4:53","nodeType":"YulTypedName","src":"859:4:53","type":""}],"src":"810:141:53"},{"body":{"nativeSrc":"1001:49:53","nodeType":"YulBlock","src":"1001:49:53","statements":[{"nativeSrc":"1011:33:53","nodeType":"YulAssignment","src":"1011:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1029:5:53","nodeType":"YulIdentifier","src":"1029:5:53"},{"kind":"number","nativeSrc":"1036:2:53","nodeType":"YulLiteral","src":"1036:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1025:3:53","nodeType":"YulIdentifier","src":"1025:3:53"},"nativeSrc":"1025:14:53","nodeType":"YulFunctionCall","src":"1025:14:53"},{"kind":"number","nativeSrc":"1041:2:53","nodeType":"YulLiteral","src":"1041:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"1021:3:53","nodeType":"YulIdentifier","src":"1021:3:53"},"nativeSrc":"1021:23:53","nodeType":"YulFunctionCall","src":"1021:23:53"},"variableNames":[{"name":"result","nativeSrc":"1011:6:53","nodeType":"YulIdentifier","src":"1011:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"957:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"984:5:53","nodeType":"YulTypedName","src":"984:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"994:6:53","nodeType":"YulTypedName","src":"994:6:53","type":""}],"src":"957:93:53"},{"body":{"nativeSrc":"1109:54:53","nodeType":"YulBlock","src":"1109:54:53","statements":[{"nativeSrc":"1119:37:53","nodeType":"YulAssignment","src":"1119:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"1144:4:53","nodeType":"YulIdentifier","src":"1144:4:53"},{"name":"value","nativeSrc":"1150:5:53","nodeType":"YulIdentifier","src":"1150:5:53"}],"functionName":{"name":"shl","nativeSrc":"1140:3:53","nodeType":"YulIdentifier","src":"1140:3:53"},"nativeSrc":"1140:16:53","nodeType":"YulFunctionCall","src":"1140:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"1119:8:53","nodeType":"YulIdentifier","src":"1119:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"1056:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"1084:4:53","nodeType":"YulTypedName","src":"1084:4:53","type":""},{"name":"value","nativeSrc":"1090:5:53","nodeType":"YulTypedName","src":"1090:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"1100:8:53","nodeType":"YulTypedName","src":"1100:8:53","type":""}],"src":"1056:107:53"},{"body":{"nativeSrc":"1245:317:53","nodeType":"YulBlock","src":"1245:317:53","statements":[{"nativeSrc":"1255:35:53","nodeType":"YulVariableDeclaration","src":"1255:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"1276:10:53","nodeType":"YulIdentifier","src":"1276:10:53"},{"kind":"number","nativeSrc":"1288:1:53","nodeType":"YulLiteral","src":"1288:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"1272:3:53","nodeType":"YulIdentifier","src":"1272:3:53"},"nativeSrc":"1272:18:53","nodeType":"YulFunctionCall","src":"1272:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"1259:9:53","nodeType":"YulTypedName","src":"1259:9:53","type":""}]},{"nativeSrc":"1299:109:53","nodeType":"YulVariableDeclaration","src":"1299:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"1330:9:53","nodeType":"YulIdentifier","src":"1330:9:53"},{"kind":"number","nativeSrc":"1341:66:53","nodeType":"YulLiteral","src":"1341:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"1311:18:53","nodeType":"YulIdentifier","src":"1311:18:53"},"nativeSrc":"1311:97:53","nodeType":"YulFunctionCall","src":"1311:97:53"},"variables":[{"name":"mask","nativeSrc":"1303:4:53","nodeType":"YulTypedName","src":"1303:4:53","type":""}]},{"nativeSrc":"1417:51:53","nodeType":"YulAssignment","src":"1417:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"1448:9:53","nodeType":"YulIdentifier","src":"1448:9:53"},{"name":"toInsert","nativeSrc":"1459:8:53","nodeType":"YulIdentifier","src":"1459:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"1429:18:53","nodeType":"YulIdentifier","src":"1429:18:53"},"nativeSrc":"1429:39:53","nodeType":"YulFunctionCall","src":"1429:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"1417:8:53","nodeType":"YulIdentifier","src":"1417:8:53"}]},{"nativeSrc":"1477:30:53","nodeType":"YulAssignment","src":"1477:30:53","value":{"arguments":[{"name":"value","nativeSrc":"1490:5:53","nodeType":"YulIdentifier","src":"1490:5:53"},{"arguments":[{"name":"mask","nativeSrc":"1501:4:53","nodeType":"YulIdentifier","src":"1501:4:53"}],"functionName":{"name":"not","nativeSrc":"1497:3:53","nodeType":"YulIdentifier","src":"1497:3:53"},"nativeSrc":"1497:9:53","nodeType":"YulFunctionCall","src":"1497:9:53"}],"functionName":{"name":"and","nativeSrc":"1486:3:53","nodeType":"YulIdentifier","src":"1486:3:53"},"nativeSrc":"1486:21:53","nodeType":"YulFunctionCall","src":"1486:21:53"},"variableNames":[{"name":"value","nativeSrc":"1477:5:53","nodeType":"YulIdentifier","src":"1477:5:53"}]},{"nativeSrc":"1516:40:53","nodeType":"YulAssignment","src":"1516:40:53","value":{"arguments":[{"name":"value","nativeSrc":"1529:5:53","nodeType":"YulIdentifier","src":"1529:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"1540:8:53","nodeType":"YulIdentifier","src":"1540:8:53"},{"name":"mask","nativeSrc":"1550:4:53","nodeType":"YulIdentifier","src":"1550:4:53"}],"functionName":{"name":"and","nativeSrc":"1536:3:53","nodeType":"YulIdentifier","src":"1536:3:53"},"nativeSrc":"1536:19:53","nodeType":"YulFunctionCall","src":"1536:19:53"}],"functionName":{"name":"or","nativeSrc":"1526:2:53","nodeType":"YulIdentifier","src":"1526:2:53"},"nativeSrc":"1526:30:53","nodeType":"YulFunctionCall","src":"1526:30:53"},"variableNames":[{"name":"result","nativeSrc":"1516:6:53","nodeType":"YulIdentifier","src":"1516:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"1169:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1206:5:53","nodeType":"YulTypedName","src":"1206:5:53","type":""},{"name":"shiftBytes","nativeSrc":"1213:10:53","nodeType":"YulTypedName","src":"1213:10:53","type":""},{"name":"toInsert","nativeSrc":"1225:8:53","nodeType":"YulTypedName","src":"1225:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1238:6:53","nodeType":"YulTypedName","src":"1238:6:53","type":""}],"src":"1169:393:53"},{"body":{"nativeSrc":"1613:32:53","nodeType":"YulBlock","src":"1613:32:53","statements":[{"nativeSrc":"1623:16:53","nodeType":"YulAssignment","src":"1623:16:53","value":{"name":"value","nativeSrc":"1634:5:53","nodeType":"YulIdentifier","src":"1634:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1623:7:53","nodeType":"YulIdentifier","src":"1623:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1568:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1595:5:53","nodeType":"YulTypedName","src":"1595:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1605:7:53","nodeType":"YulTypedName","src":"1605:7:53","type":""}],"src":"1568:77:53"},{"body":{"nativeSrc":"1683:28:53","nodeType":"YulBlock","src":"1683:28:53","statements":[{"nativeSrc":"1693:12:53","nodeType":"YulAssignment","src":"1693:12:53","value":{"name":"value","nativeSrc":"1700:5:53","nodeType":"YulIdentifier","src":"1700:5:53"},"variableNames":[{"name":"ret","nativeSrc":"1693:3:53","nodeType":"YulIdentifier","src":"1693:3:53"}]}]},"name":"identity","nativeSrc":"1651:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1669:5:53","nodeType":"YulTypedName","src":"1669:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1679:3:53","nodeType":"YulTypedName","src":"1679:3:53","type":""}],"src":"1651:60:53"},{"body":{"nativeSrc":"1777:82:53","nodeType":"YulBlock","src":"1777:82:53","statements":[{"nativeSrc":"1787:66:53","nodeType":"YulAssignment","src":"1787:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1845:5:53","nodeType":"YulIdentifier","src":"1845:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1827:17:53","nodeType":"YulIdentifier","src":"1827:17:53"},"nativeSrc":"1827:24:53","nodeType":"YulFunctionCall","src":"1827:24:53"}],"functionName":{"name":"identity","nativeSrc":"1818:8:53","nodeType":"YulIdentifier","src":"1818:8:53"},"nativeSrc":"1818:34:53","nodeType":"YulFunctionCall","src":"1818:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1800:17:53","nodeType":"YulIdentifier","src":"1800:17:53"},"nativeSrc":"1800:53:53","nodeType":"YulFunctionCall","src":"1800:53:53"},"variableNames":[{"name":"converted","nativeSrc":"1787:9:53","nodeType":"YulIdentifier","src":"1787:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"1717:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1757:5:53","nodeType":"YulTypedName","src":"1757:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1767:9:53","nodeType":"YulTypedName","src":"1767:9:53","type":""}],"src":"1717:142:53"},{"body":{"nativeSrc":"1912:28:53","nodeType":"YulBlock","src":"1912:28:53","statements":[{"nativeSrc":"1922:12:53","nodeType":"YulAssignment","src":"1922:12:53","value":{"name":"value","nativeSrc":"1929:5:53","nodeType":"YulIdentifier","src":"1929:5:53"},"variableNames":[{"name":"ret","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"1865:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1898:5:53","nodeType":"YulTypedName","src":"1898:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1908:3:53","nodeType":"YulTypedName","src":"1908:3:53","type":""}],"src":"1865:75:53"},{"body":{"nativeSrc":"2022:193:53","nodeType":"YulBlock","src":"2022:193:53","statements":[{"nativeSrc":"2032:63:53","nodeType":"YulVariableDeclaration","src":"2032:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"2087:7:53","nodeType":"YulIdentifier","src":"2087:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"2056:30:53","nodeType":"YulIdentifier","src":"2056:30:53"},"nativeSrc":"2056:39:53","nodeType":"YulFunctionCall","src":"2056:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"2036:16:53","nodeType":"YulTypedName","src":"2036:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2111:4:53","nodeType":"YulIdentifier","src":"2111:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"2151:4:53","nodeType":"YulIdentifier","src":"2151:4:53"}],"functionName":{"name":"sload","nativeSrc":"2145:5:53","nodeType":"YulIdentifier","src":"2145:5:53"},"nativeSrc":"2145:11:53","nodeType":"YulFunctionCall","src":"2145:11:53"},{"name":"offset","nativeSrc":"2158:6:53","nodeType":"YulIdentifier","src":"2158:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"2190:16:53","nodeType":"YulIdentifier","src":"2190:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"2166:23:53","nodeType":"YulIdentifier","src":"2166:23:53"},"nativeSrc":"2166:41:53","nodeType":"YulFunctionCall","src":"2166:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"2117:27:53","nodeType":"YulIdentifier","src":"2117:27:53"},"nativeSrc":"2117:91:53","nodeType":"YulFunctionCall","src":"2117:91:53"}],"functionName":{"name":"sstore","nativeSrc":"2104:6:53","nodeType":"YulIdentifier","src":"2104:6:53"},"nativeSrc":"2104:105:53","nodeType":"YulFunctionCall","src":"2104:105:53"},"nativeSrc":"2104:105:53","nodeType":"YulExpressionStatement","src":"2104:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"1946:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"1999:4:53","nodeType":"YulTypedName","src":"1999:4:53","type":""},{"name":"offset","nativeSrc":"2005:6:53","nodeType":"YulTypedName","src":"2005:6:53","type":""},{"name":"value_0","nativeSrc":"2013:7:53","nodeType":"YulTypedName","src":"2013:7:53","type":""}],"src":"1946:269:53"},{"body":{"nativeSrc":"2270:24:53","nodeType":"YulBlock","src":"2270:24:53","statements":[{"nativeSrc":"2280:8:53","nodeType":"YulAssignment","src":"2280:8:53","value":{"kind":"number","nativeSrc":"2287:1:53","nodeType":"YulLiteral","src":"2287:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"2280:3:53","nodeType":"YulIdentifier","src":"2280:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"2221:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"2266:3:53","nodeType":"YulTypedName","src":"2266:3:53","type":""}],"src":"2221:73:53"},{"body":{"nativeSrc":"2353:136:53","nodeType":"YulBlock","src":"2353:136:53","statements":[{"nativeSrc":"2363:46:53","nodeType":"YulVariableDeclaration","src":"2363:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"2377:30:53","nodeType":"YulIdentifier","src":"2377:30:53"},"nativeSrc":"2377:32:53","nodeType":"YulFunctionCall","src":"2377:32:53"},"variables":[{"name":"zero_0","nativeSrc":"2367:6:53","nodeType":"YulTypedName","src":"2367:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2462:4:53","nodeType":"YulIdentifier","src":"2462:4:53"},{"name":"offset","nativeSrc":"2468:6:53","nodeType":"YulIdentifier","src":"2468:6:53"},{"name":"zero_0","nativeSrc":"2476:6:53","nodeType":"YulIdentifier","src":"2476:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"2418:43:53","nodeType":"YulIdentifier","src":"2418:43:53"},"nativeSrc":"2418:65:53","nodeType":"YulFunctionCall","src":"2418:65:53"},"nativeSrc":"2418:65:53","nodeType":"YulExpressionStatement","src":"2418:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"2300:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"2339:4:53","nodeType":"YulTypedName","src":"2339:4:53","type":""},{"name":"offset","nativeSrc":"2345:6:53","nodeType":"YulTypedName","src":"2345:6:53","type":""}],"src":"2300:189:53"},{"body":{"nativeSrc":"2545:136:53","nodeType":"YulBlock","src":"2545:136:53","statements":[{"body":{"nativeSrc":"2612:63:53","nodeType":"YulBlock","src":"2612:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2656:5:53","nodeType":"YulIdentifier","src":"2656:5:53"},{"kind":"number","nativeSrc":"2663:1:53","nodeType":"YulLiteral","src":"2663:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"2626:29:53","nodeType":"YulIdentifier","src":"2626:29:53"},"nativeSrc":"2626:39:53","nodeType":"YulFunctionCall","src":"2626:39:53"},"nativeSrc":"2626:39:53","nodeType":"YulExpressionStatement","src":"2626:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2565:5:53","nodeType":"YulIdentifier","src":"2565:5:53"},{"name":"end","nativeSrc":"2572:3:53","nodeType":"YulIdentifier","src":"2572:3:53"}],"functionName":{"name":"lt","nativeSrc":"2562:2:53","nodeType":"YulIdentifier","src":"2562:2:53"},"nativeSrc":"2562:14:53","nodeType":"YulFunctionCall","src":"2562:14:53"},"nativeSrc":"2555:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"2577:26:53","nodeType":"YulBlock","src":"2577:26:53","statements":[{"nativeSrc":"2579:22:53","nodeType":"YulAssignment","src":"2579:22:53","value":{"arguments":[{"name":"start","nativeSrc":"2592:5:53","nodeType":"YulIdentifier","src":"2592:5:53"},{"kind":"number","nativeSrc":"2599:1:53","nodeType":"YulLiteral","src":"2599:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2588:3:53","nodeType":"YulIdentifier","src":"2588:3:53"},"nativeSrc":"2588:13:53","nodeType":"YulFunctionCall","src":"2588:13:53"},"variableNames":[{"name":"start","nativeSrc":"2579:5:53","nodeType":"YulIdentifier","src":"2579:5:53"}]}]},"pre":{"nativeSrc":"2559:2:53","nodeType":"YulBlock","src":"2559:2:53","statements":[]},"src":"2555:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"2495:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"2533:5:53","nodeType":"YulTypedName","src":"2533:5:53","type":""},{"name":"end","nativeSrc":"2540:3:53","nodeType":"YulTypedName","src":"2540:3:53","type":""}],"src":"2495:186:53"},{"body":{"nativeSrc":"2766:464:53","nodeType":"YulBlock","src":"2766:464:53","statements":[{"body":{"nativeSrc":"2792:431:53","nodeType":"YulBlock","src":"2792:431:53","statements":[{"nativeSrc":"2806:54:53","nodeType":"YulVariableDeclaration","src":"2806:54:53","value":{"arguments":[{"name":"array","nativeSrc":"2854:5:53","nodeType":"YulIdentifier","src":"2854:5:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"2822:31:53","nodeType":"YulIdentifier","src":"2822:31:53"},"nativeSrc":"2822:38:53","nodeType":"YulFunctionCall","src":"2822:38:53"},"variables":[{"name":"dataArea","nativeSrc":"2810:8:53","nodeType":"YulTypedName","src":"2810:8:53","type":""}]},{"nativeSrc":"2873:63:53","nodeType":"YulVariableDeclaration","src":"2873:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"2896:8:53","nodeType":"YulIdentifier","src":"2896:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"2924:10:53","nodeType":"YulIdentifier","src":"2924:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"2906:17:53","nodeType":"YulIdentifier","src":"2906:17:53"},"nativeSrc":"2906:29:53","nodeType":"YulFunctionCall","src":"2906:29:53"}],"functionName":{"name":"add","nativeSrc":"2892:3:53","nodeType":"YulIdentifier","src":"2892:3:53"},"nativeSrc":"2892:44:53","nodeType":"YulFunctionCall","src":"2892:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"2877:11:53","nodeType":"YulTypedName","src":"2877:11:53","type":""}]},{"body":{"nativeSrc":"3093:27:53","nodeType":"YulBlock","src":"3093:27:53","statements":[{"nativeSrc":"3095:23:53","nodeType":"YulAssignment","src":"3095:23:53","value":{"name":"dataArea","nativeSrc":"3110:8:53","nodeType":"YulIdentifier","src":"3110:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"3095:11:53","nodeType":"YulIdentifier","src":"3095:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"3077:10:53","nodeType":"YulIdentifier","src":"3077:10:53"},{"kind":"number","nativeSrc":"3089:2:53","nodeType":"YulLiteral","src":"3089:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"3074:2:53","nodeType":"YulIdentifier","src":"3074:2:53"},"nativeSrc":"3074:18:53","nodeType":"YulFunctionCall","src":"3074:18:53"},"nativeSrc":"3071:49:53","nodeType":"YulIf","src":"3071:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"3162:11:53","nodeType":"YulIdentifier","src":"3162:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"3179:8:53","nodeType":"YulIdentifier","src":"3179:8:53"},{"arguments":[{"name":"len","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"3189:17:53","nodeType":"YulIdentifier","src":"3189:17:53"},"nativeSrc":"3189:22:53","nodeType":"YulFunctionCall","src":"3189:22:53"}],"functionName":{"name":"add","nativeSrc":"3175:3:53","nodeType":"YulIdentifier","src":"3175:3:53"},"nativeSrc":"3175:37:53","nodeType":"YulFunctionCall","src":"3175:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"3133:28:53","nodeType":"YulIdentifier","src":"3133:28:53"},"nativeSrc":"3133:80:53","nodeType":"YulFunctionCall","src":"3133:80:53"},"nativeSrc":"3133:80:53","nodeType":"YulExpressionStatement","src":"3133:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2783:3:53","nodeType":"YulIdentifier","src":"2783:3:53"},{"kind":"number","nativeSrc":"2788:2:53","nodeType":"YulLiteral","src":"2788:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2780:2:53","nodeType":"YulIdentifier","src":"2780:2:53"},"nativeSrc":"2780:11:53","nodeType":"YulFunctionCall","src":"2780:11:53"},"nativeSrc":"2777:446:53","nodeType":"YulIf","src":"2777:446:53"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"2687:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2742:5:53","nodeType":"YulTypedName","src":"2742:5:53","type":""},{"name":"len","nativeSrc":"2749:3:53","nodeType":"YulTypedName","src":"2749:3:53","type":""},{"name":"startIndex","nativeSrc":"2754:10:53","nodeType":"YulTypedName","src":"2754:10:53","type":""}],"src":"2687:543:53"},{"body":{"nativeSrc":"3299:54:53","nodeType":"YulBlock","src":"3299:54:53","statements":[{"nativeSrc":"3309:37:53","nodeType":"YulAssignment","src":"3309:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"3334:4:53","nodeType":"YulIdentifier","src":"3334:4:53"},{"name":"value","nativeSrc":"3340:5:53","nodeType":"YulIdentifier","src":"3340:5:53"}],"functionName":{"name":"shr","nativeSrc":"3330:3:53","nodeType":"YulIdentifier","src":"3330:3:53"},"nativeSrc":"3330:16:53","nodeType":"YulFunctionCall","src":"3330:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"3309:8:53","nodeType":"YulIdentifier","src":"3309:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"3236:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"3274:4:53","nodeType":"YulTypedName","src":"3274:4:53","type":""},{"name":"value","nativeSrc":"3280:5:53","nodeType":"YulTypedName","src":"3280:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"3290:8:53","nodeType":"YulTypedName","src":"3290:8:53","type":""}],"src":"3236:117:53"},{"body":{"nativeSrc":"3410:118:53","nodeType":"YulBlock","src":"3410:118:53","statements":[{"nativeSrc":"3420:68:53","nodeType":"YulVariableDeclaration","src":"3420:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3469:1:53","nodeType":"YulLiteral","src":"3469:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"3472:5:53","nodeType":"YulIdentifier","src":"3472:5:53"}],"functionName":{"name":"mul","nativeSrc":"3465:3:53","nodeType":"YulIdentifier","src":"3465:3:53"},"nativeSrc":"3465:13:53","nodeType":"YulFunctionCall","src":"3465:13:53"},{"arguments":[{"kind":"number","nativeSrc":"3484:1:53","nodeType":"YulLiteral","src":"3484:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3480:3:53","nodeType":"YulIdentifier","src":"3480:3:53"},"nativeSrc":"3480:6:53","nodeType":"YulFunctionCall","src":"3480:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"3436:28:53","nodeType":"YulIdentifier","src":"3436:28:53"},"nativeSrc":"3436:51:53","nodeType":"YulFunctionCall","src":"3436:51:53"}],"functionName":{"name":"not","nativeSrc":"3432:3:53","nodeType":"YulIdentifier","src":"3432:3:53"},"nativeSrc":"3432:56:53","nodeType":"YulFunctionCall","src":"3432:56:53"},"variables":[{"name":"mask","nativeSrc":"3424:4:53","nodeType":"YulTypedName","src":"3424:4:53","type":""}]},{"nativeSrc":"3497:25:53","nodeType":"YulAssignment","src":"3497:25:53","value":{"arguments":[{"name":"data","nativeSrc":"3511:4:53","nodeType":"YulIdentifier","src":"3511:4:53"},{"name":"mask","nativeSrc":"3517:4:53","nodeType":"YulIdentifier","src":"3517:4:53"}],"functionName":{"name":"and","nativeSrc":"3507:3:53","nodeType":"YulIdentifier","src":"3507:3:53"},"nativeSrc":"3507:15:53","nodeType":"YulFunctionCall","src":"3507:15:53"},"variableNames":[{"name":"result","nativeSrc":"3497:6:53","nodeType":"YulIdentifier","src":"3497:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"3359:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3387:4:53","nodeType":"YulTypedName","src":"3387:4:53","type":""},{"name":"bytes","nativeSrc":"3393:5:53","nodeType":"YulTypedName","src":"3393:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3403:6:53","nodeType":"YulTypedName","src":"3403:6:53","type":""}],"src":"3359:169:53"},{"body":{"nativeSrc":"3614:214:53","nodeType":"YulBlock","src":"3614:214:53","statements":[{"nativeSrc":"3747:37:53","nodeType":"YulAssignment","src":"3747:37:53","value":{"arguments":[{"name":"data","nativeSrc":"3774:4:53","nodeType":"YulIdentifier","src":"3774:4:53"},{"name":"len","nativeSrc":"3780:3:53","nodeType":"YulIdentifier","src":"3780:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"3755:18:53","nodeType":"YulIdentifier","src":"3755:18:53"},"nativeSrc":"3755:29:53","nodeType":"YulFunctionCall","src":"3755:29:53"},"variableNames":[{"name":"data","nativeSrc":"3747:4:53","nodeType":"YulIdentifier","src":"3747:4:53"}]},{"nativeSrc":"3793:29:53","nodeType":"YulAssignment","src":"3793:29:53","value":{"arguments":[{"name":"data","nativeSrc":"3804:4:53","nodeType":"YulIdentifier","src":"3804:4:53"},{"arguments":[{"kind":"number","nativeSrc":"3814:1:53","nodeType":"YulLiteral","src":"3814:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"3817:3:53","nodeType":"YulIdentifier","src":"3817:3:53"}],"functionName":{"name":"mul","nativeSrc":"3810:3:53","nodeType":"YulIdentifier","src":"3810:3:53"},"nativeSrc":"3810:11:53","nodeType":"YulFunctionCall","src":"3810:11:53"}],"functionName":{"name":"or","nativeSrc":"3801:2:53","nodeType":"YulIdentifier","src":"3801:2:53"},"nativeSrc":"3801:21:53","nodeType":"YulFunctionCall","src":"3801:21:53"},"variableNames":[{"name":"used","nativeSrc":"3793:4:53","nodeType":"YulIdentifier","src":"3793:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3533:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3595:4:53","nodeType":"YulTypedName","src":"3595:4:53","type":""},{"name":"len","nativeSrc":"3601:3:53","nodeType":"YulTypedName","src":"3601:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"3609:4:53","nodeType":"YulTypedName","src":"3609:4:53","type":""}],"src":"3533:295:53"},{"body":{"nativeSrc":"3925:1303:53","nodeType":"YulBlock","src":"3925:1303:53","statements":[{"nativeSrc":"3936:51:53","nodeType":"YulVariableDeclaration","src":"3936:51:53","value":{"arguments":[{"name":"src","nativeSrc":"3983:3:53","nodeType":"YulIdentifier","src":"3983:3:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"3950:32:53","nodeType":"YulIdentifier","src":"3950:32:53"},"nativeSrc":"3950:37:53","nodeType":"YulFunctionCall","src":"3950:37:53"},"variables":[{"name":"newLen","nativeSrc":"3940:6:53","nodeType":"YulTypedName","src":"3940:6:53","type":""}]},{"body":{"nativeSrc":"4072:22:53","nodeType":"YulBlock","src":"4072:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4074:16:53","nodeType":"YulIdentifier","src":"4074:16:53"},"nativeSrc":"4074:18:53","nodeType":"YulFunctionCall","src":"4074:18:53"},"nativeSrc":"4074:18:53","nodeType":"YulExpressionStatement","src":"4074:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"4044:6:53","nodeType":"YulIdentifier","src":"4044:6:53"},{"kind":"number","nativeSrc":"4052:18:53","nodeType":"YulLiteral","src":"4052:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4041:2:53","nodeType":"YulIdentifier","src":"4041:2:53"},"nativeSrc":"4041:30:53","nodeType":"YulFunctionCall","src":"4041:30:53"},"nativeSrc":"4038:56:53","nodeType":"YulIf","src":"4038:56:53"},{"nativeSrc":"4104:52:53","nodeType":"YulVariableDeclaration","src":"4104:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"4150:4:53","nodeType":"YulIdentifier","src":"4150:4:53"}],"functionName":{"name":"sload","nativeSrc":"4144:5:53","nodeType":"YulIdentifier","src":"4144:5:53"},"nativeSrc":"4144:11:53","nodeType":"YulFunctionCall","src":"4144:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"4118:25:53","nodeType":"YulIdentifier","src":"4118:25:53"},"nativeSrc":"4118:38:53","nodeType":"YulFunctionCall","src":"4118:38:53"},"variables":[{"name":"oldLen","nativeSrc":"4108:6:53","nodeType":"YulTypedName","src":"4108:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4249:4:53","nodeType":"YulIdentifier","src":"4249:4:53"},{"name":"oldLen","nativeSrc":"4255:6:53","nodeType":"YulIdentifier","src":"4255:6:53"},{"name":"newLen","nativeSrc":"4263:6:53","nodeType":"YulIdentifier","src":"4263:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"4203:45:53","nodeType":"YulIdentifier","src":"4203:45:53"},"nativeSrc":"4203:67:53","nodeType":"YulFunctionCall","src":"4203:67:53"},"nativeSrc":"4203:67:53","nodeType":"YulExpressionStatement","src":"4203:67:53"},{"nativeSrc":"4280:18:53","nodeType":"YulVariableDeclaration","src":"4280:18:53","value":{"kind":"number","nativeSrc":"4297:1:53","nodeType":"YulLiteral","src":"4297:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"4284:9:53","nodeType":"YulTypedName","src":"4284:9:53","type":""}]},{"nativeSrc":"4308:17:53","nodeType":"YulAssignment","src":"4308:17:53","value":{"kind":"number","nativeSrc":"4321:4:53","nodeType":"YulLiteral","src":"4321:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"4308:9:53","nodeType":"YulIdentifier","src":"4308:9:53"}]},{"cases":[{"body":{"nativeSrc":"4372:611:53","nodeType":"YulBlock","src":"4372:611:53","statements":[{"nativeSrc":"4386:37:53","nodeType":"YulVariableDeclaration","src":"4386:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"4405:6:53","nodeType":"YulIdentifier","src":"4405:6:53"},{"arguments":[{"kind":"number","nativeSrc":"4417:4:53","nodeType":"YulLiteral","src":"4417:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"4413:3:53","nodeType":"YulIdentifier","src":"4413:3:53"},"nativeSrc":"4413:9:53","nodeType":"YulFunctionCall","src":"4413:9:53"}],"functionName":{"name":"and","nativeSrc":"4401:3:53","nodeType":"YulIdentifier","src":"4401:3:53"},"nativeSrc":"4401:22:53","nodeType":"YulFunctionCall","src":"4401:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"4390:7:53","nodeType":"YulTypedName","src":"4390:7:53","type":""}]},{"nativeSrc":"4437:51:53","nodeType":"YulVariableDeclaration","src":"4437:51:53","value":{"arguments":[{"name":"slot","nativeSrc":"4483:4:53","nodeType":"YulIdentifier","src":"4483:4:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"4451:31:53","nodeType":"YulIdentifier","src":"4451:31:53"},"nativeSrc":"4451:37:53","nodeType":"YulFunctionCall","src":"4451:37:53"},"variables":[{"name":"dstPtr","nativeSrc":"4441:6:53","nodeType":"YulTypedName","src":"4441:6:53","type":""}]},{"nativeSrc":"4501:10:53","nodeType":"YulVariableDeclaration","src":"4501:10:53","value":{"kind":"number","nativeSrc":"4510:1:53","nodeType":"YulLiteral","src":"4510:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4505:1:53","nodeType":"YulTypedName","src":"4505:1:53","type":""}]},{"body":{"nativeSrc":"4569:163:53","nodeType":"YulBlock","src":"4569:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4594:6:53","nodeType":"YulIdentifier","src":"4594:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4612:3:53","nodeType":"YulIdentifier","src":"4612:3:53"},{"name":"srcOffset","nativeSrc":"4617:9:53","nodeType":"YulIdentifier","src":"4617:9:53"}],"functionName":{"name":"add","nativeSrc":"4608:3:53","nodeType":"YulIdentifier","src":"4608:3:53"},"nativeSrc":"4608:19:53","nodeType":"YulFunctionCall","src":"4608:19:53"}],"functionName":{"name":"mload","nativeSrc":"4602:5:53","nodeType":"YulIdentifier","src":"4602:5:53"},"nativeSrc":"4602:26:53","nodeType":"YulFunctionCall","src":"4602:26:53"}],"functionName":{"name":"sstore","nativeSrc":"4587:6:53","nodeType":"YulIdentifier","src":"4587:6:53"},"nativeSrc":"4587:42:53","nodeType":"YulFunctionCall","src":"4587:42:53"},"nativeSrc":"4587:42:53","nodeType":"YulExpressionStatement","src":"4587:42:53"},{"nativeSrc":"4646:24:53","nodeType":"YulAssignment","src":"4646:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"4660:6:53","nodeType":"YulIdentifier","src":"4660:6:53"},{"kind":"number","nativeSrc":"4668:1:53","nodeType":"YulLiteral","src":"4668:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4656:3:53","nodeType":"YulIdentifier","src":"4656:3:53"},"nativeSrc":"4656:14:53","nodeType":"YulFunctionCall","src":"4656:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"4646:6:53","nodeType":"YulIdentifier","src":"4646:6:53"}]},{"nativeSrc":"4687:31:53","nodeType":"YulAssignment","src":"4687:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"4704:9:53","nodeType":"YulIdentifier","src":"4704:9:53"},{"kind":"number","nativeSrc":"4715:2:53","nodeType":"YulLiteral","src":"4715:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4700:3:53","nodeType":"YulIdentifier","src":"4700:3:53"},"nativeSrc":"4700:18:53","nodeType":"YulFunctionCall","src":"4700:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"4687:9:53","nodeType":"YulIdentifier","src":"4687:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4535:1:53","nodeType":"YulIdentifier","src":"4535:1:53"},{"name":"loopEnd","nativeSrc":"4538:7:53","nodeType":"YulIdentifier","src":"4538:7:53"}],"functionName":{"name":"lt","nativeSrc":"4532:2:53","nodeType":"YulIdentifier","src":"4532:2:53"},"nativeSrc":"4532:14:53","nodeType":"YulFunctionCall","src":"4532:14:53"},"nativeSrc":"4524:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"4547:21:53","nodeType":"YulBlock","src":"4547:21:53","statements":[{"nativeSrc":"4549:17:53","nodeType":"YulAssignment","src":"4549:17:53","value":{"arguments":[{"name":"i","nativeSrc":"4558:1:53","nodeType":"YulIdentifier","src":"4558:1:53"},{"kind":"number","nativeSrc":"4561:4:53","nodeType":"YulLiteral","src":"4561:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4554:3:53","nodeType":"YulIdentifier","src":"4554:3:53"},"nativeSrc":"4554:12:53","nodeType":"YulFunctionCall","src":"4554:12:53"},"variableNames":[{"name":"i","nativeSrc":"4549:1:53","nodeType":"YulIdentifier","src":"4549:1:53"}]}]},"pre":{"nativeSrc":"4528:3:53","nodeType":"YulBlock","src":"4528:3:53","statements":[]},"src":"4524:208:53"},{"body":{"nativeSrc":"4768:156:53","nodeType":"YulBlock","src":"4768:156:53","statements":[{"nativeSrc":"4786:43:53","nodeType":"YulVariableDeclaration","src":"4786:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4813:3:53","nodeType":"YulIdentifier","src":"4813:3:53"},{"name":"srcOffset","nativeSrc":"4818:9:53","nodeType":"YulIdentifier","src":"4818:9:53"}],"functionName":{"name":"add","nativeSrc":"4809:3:53","nodeType":"YulIdentifier","src":"4809:3:53"},"nativeSrc":"4809:19:53","nodeType":"YulFunctionCall","src":"4809:19:53"}],"functionName":{"name":"mload","nativeSrc":"4803:5:53","nodeType":"YulIdentifier","src":"4803:5:53"},"nativeSrc":"4803:26:53","nodeType":"YulFunctionCall","src":"4803:26:53"},"variables":[{"name":"lastValue","nativeSrc":"4790:9:53","nodeType":"YulTypedName","src":"4790:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4853:6:53","nodeType":"YulIdentifier","src":"4853:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"4880:9:53","nodeType":"YulIdentifier","src":"4880:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"4895:6:53","nodeType":"YulIdentifier","src":"4895:6:53"},{"kind":"number","nativeSrc":"4903:4:53","nodeType":"YulLiteral","src":"4903:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"4891:3:53","nodeType":"YulIdentifier","src":"4891:3:53"},"nativeSrc":"4891:17:53","nodeType":"YulFunctionCall","src":"4891:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"4861:18:53","nodeType":"YulIdentifier","src":"4861:18:53"},"nativeSrc":"4861:48:53","nodeType":"YulFunctionCall","src":"4861:48:53"}],"functionName":{"name":"sstore","nativeSrc":"4846:6:53","nodeType":"YulIdentifier","src":"4846:6:53"},"nativeSrc":"4846:64:53","nodeType":"YulFunctionCall","src":"4846:64:53"},"nativeSrc":"4846:64:53","nodeType":"YulExpressionStatement","src":"4846:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"4751:7:53","nodeType":"YulIdentifier","src":"4751:7:53"},{"name":"newLen","nativeSrc":"4760:6:53","nodeType":"YulIdentifier","src":"4760:6:53"}],"functionName":{"name":"lt","nativeSrc":"4748:2:53","nodeType":"YulIdentifier","src":"4748:2:53"},"nativeSrc":"4748:19:53","nodeType":"YulFunctionCall","src":"4748:19:53"},"nativeSrc":"4745:179:53","nodeType":"YulIf","src":"4745:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4944:4:53","nodeType":"YulIdentifier","src":"4944:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"4958:6:53","nodeType":"YulIdentifier","src":"4958:6:53"},{"kind":"number","nativeSrc":"4966:1:53","nodeType":"YulLiteral","src":"4966:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"4954:3:53","nodeType":"YulIdentifier","src":"4954:3:53"},"nativeSrc":"4954:14:53","nodeType":"YulFunctionCall","src":"4954:14:53"},{"kind":"number","nativeSrc":"4970:1:53","nodeType":"YulLiteral","src":"4970:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4950:3:53","nodeType":"YulIdentifier","src":"4950:3:53"},"nativeSrc":"4950:22:53","nodeType":"YulFunctionCall","src":"4950:22:53"}],"functionName":{"name":"sstore","nativeSrc":"4937:6:53","nodeType":"YulIdentifier","src":"4937:6:53"},"nativeSrc":"4937:36:53","nodeType":"YulFunctionCall","src":"4937:36:53"},"nativeSrc":"4937:36:53","nodeType":"YulExpressionStatement","src":"4937:36:53"}]},"nativeSrc":"4365:618:53","nodeType":"YulCase","src":"4365:618:53","value":{"kind":"number","nativeSrc":"4370:1:53","nodeType":"YulLiteral","src":"4370:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"5000:222:53","nodeType":"YulBlock","src":"5000:222:53","statements":[{"nativeSrc":"5014:14:53","nodeType":"YulVariableDeclaration","src":"5014:14:53","value":{"kind":"number","nativeSrc":"5027:1:53","nodeType":"YulLiteral","src":"5027:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5018:5:53","nodeType":"YulTypedName","src":"5018:5:53","type":""}]},{"body":{"nativeSrc":"5051:67:53","nodeType":"YulBlock","src":"5051:67:53","statements":[{"nativeSrc":"5069:35:53","nodeType":"YulAssignment","src":"5069:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5088:3:53","nodeType":"YulIdentifier","src":"5088:3:53"},{"name":"srcOffset","nativeSrc":"5093:9:53","nodeType":"YulIdentifier","src":"5093:9:53"}],"functionName":{"name":"add","nativeSrc":"5084:3:53","nodeType":"YulIdentifier","src":"5084:3:53"},"nativeSrc":"5084:19:53","nodeType":"YulFunctionCall","src":"5084:19:53"}],"functionName":{"name":"mload","nativeSrc":"5078:5:53","nodeType":"YulIdentifier","src":"5078:5:53"},"nativeSrc":"5078:26:53","nodeType":"YulFunctionCall","src":"5078:26:53"},"variableNames":[{"name":"value","nativeSrc":"5069:5:53","nodeType":"YulIdentifier","src":"5069:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"5044:6:53","nodeType":"YulIdentifier","src":"5044:6:53"},"nativeSrc":"5041:77:53","nodeType":"YulIf","src":"5041:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5138:4:53","nodeType":"YulIdentifier","src":"5138:4:53"},{"arguments":[{"name":"value","nativeSrc":"5197:5:53","nodeType":"YulIdentifier","src":"5197:5:53"},{"name":"newLen","nativeSrc":"5204:6:53","nodeType":"YulIdentifier","src":"5204:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"5144:52:53","nodeType":"YulIdentifier","src":"5144:52:53"},"nativeSrc":"5144:67:53","nodeType":"YulFunctionCall","src":"5144:67:53"}],"functionName":{"name":"sstore","nativeSrc":"5131:6:53","nodeType":"YulIdentifier","src":"5131:6:53"},"nativeSrc":"5131:81:53","nodeType":"YulFunctionCall","src":"5131:81:53"},"nativeSrc":"5131:81:53","nodeType":"YulExpressionStatement","src":"5131:81:53"}]},"nativeSrc":"4992:230:53","nodeType":"YulCase","src":"4992:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"4345:6:53","nodeType":"YulIdentifier","src":"4345:6:53"},{"kind":"number","nativeSrc":"4353:2:53","nodeType":"YulLiteral","src":"4353:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"4342:2:53","nodeType":"YulIdentifier","src":"4342:2:53"},"nativeSrc":"4342:14:53","nodeType":"YulFunctionCall","src":"4342:14:53"},"nativeSrc":"4335:887:53","nodeType":"YulSwitch","src":"4335:887:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"3833:1395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3914:4:53","nodeType":"YulTypedName","src":"3914:4:53","type":""},{"name":"src","nativeSrc":"3920:3:53","nodeType":"YulTypedName","src":"3920:3:53","type":""}],"src":"3833:1395:53"}]},"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":53,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b506040518060400160405280601e81526020017f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f7b69647d00008152506100558161005b60201b60201c565b50610377565b806002908161006a91906102a8565b5050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100e957607f821691505b6020821081036100fc576100fb6100a5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261015e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610123565b6101688683610123565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101ac6101a76101a284610180565b610189565b610180565b9050919050565b5f819050919050565b6101c583610192565b6101d96101d1826101b3565b84845461012f565b825550505050565b5f90565b6101ed6101e1565b6101f88184846101bc565b505050565b5b8181101561021b576102105f826101e5565b6001810190506101fe565b5050565b601f8211156102605761023181610102565b61023a84610114565b81016020851015610249578190505b61025d61025585610114565b8301826101fd565b50505b505050565b5f82821c905092915050565b5f6102805f1984600802610265565b1980831691505092915050565b5f6102988383610271565b9150826002028217905092915050565b6102b18261006e565b67ffffffffffffffff8111156102ca576102c9610078565b5b6102d482546100d2565b6102df82828561021f565b5f60209050601f831160018114610310575f84156102fe578287015190505b610308858261028d565b86555061036f565b601f19841661031e86610102565b5f5b8281101561034557848901518255600182019150602085019450602081019050610320565b86831015610362578489015161035e601f891682610271565b8355505b6001600288020188555050505b505050505050565b612025806103845f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f414610167578063a22cb46514610197578063e985e9c5146101b3578063f242432a146101e3578063f5298aca146101ff5761009b565b8062fdd58e1461009f57806301ffc9a7146100cf5780630e89341c146100ff578063156e29f61461012f5780632eb2c2d61461014b575b5f80fd5b6100b960048036038101906100b491906114a3565b61021b565b6040516100c691906114f0565b60405180910390f35b6100e960048036038101906100e4919061155e565b610270565b6040516100f691906115a3565b60405180910390f35b610119600480360381019061011491906115bc565b610351565b6040516101269190611657565b60405180910390f35b61014960048036038101906101449190611677565b6103e3565b005b610165600480360381019061016091906118b7565b610402565b005b610181600480360381019061017c9190611a42565b6104a9565b60405161018e9190611b6f565b60405180910390f35b6101b160048036038101906101ac9190611bb9565b6105b0565b005b6101cd60048036038101906101c89190611bf7565b6105c6565b6040516101da91906115a3565b60405180910390f35b6101fd60048036038101906101f89190611c35565b610654565b005b61021960048036038101906102149190611677565b6106fb565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061034a57506103498261070b565b5b9050919050565b60606002805461036090611cf5565b80601f016020809104026020016040519081016040528092919081815260200182805461038c90611cf5565b80156103d75780601f106103ae576101008083540402835291602001916103d7565b820191905f5260205f20905b8154815290600101906020018083116103ba57829003601f168201915b50505050509050919050565b6103fd83838360405180602001604052805f815250610774565b505050565b5f61040b610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610450575061044e86826105c6565b155b156104945780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161048b929190611d34565b60405180910390fd5b6104a18686868686610810565b505050505050565b606081518351146104f557815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016104ec929190611d5b565b60405180910390fd5b5f835167ffffffffffffffff811115610511576105106116cb565b5b60405190808252806020026020018201604052801561053f5781602001602082028036833780820191505090505b5090505f5b84518110156105a55761057b610563828761090490919063ffffffff16565b610576838761091790919063ffffffff16565b61021b565b82828151811061058e5761058d611d82565b5b602002602001018181525050806001019050610544565b508091505092915050565b6105c26105bb610809565b838361092a565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61065d610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156106a257506106a086826105c6565b155b156106e65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016106dd929190611d34565b60405180910390fd5b6106f38686868686610a93565b505050505050565b610706838383610b99565b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107e4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107db9190611daf565b60405180910390fd5b5f806107f08585610c3b565b915091506108015f87848487610c6b565b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610880575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108779190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036108f0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016108e79190611daf565b60405180910390fd5b6108fd8585858585610c6b565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361099a575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016109919190611daf565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a8691906115a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b03575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610afa9190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b73575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b6a9190611daf565b60405180910390fd5b5f80610b7f8585610c3b565b91509150610b908787848487610c6b565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c09575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c009190611daf565b60405180910390fd5b5f80610c158484610c3b565b91509150610c34855f848460405180602001604052805f815250610c6b565b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b610c7785858585610d17565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d10575f610cb3610809565b90506001845103610cff575f610cd25f8661091790919063ffffffff16565b90505f610ce85f8661091790919063ffffffff16565b9050610cf88389898585896110a7565b5050610d0e565b610d0d818787878787611256565b5b505b5050505050565b8051825114610d6157815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610d58929190611d5b565b60405180910390fd5b5f610d6a610809565b90505f5b8351811015610f66575f610d8b828661091790919063ffffffff16565b90505f610da1838661091790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610ec4575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610e679493929190611dc8565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610f5957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f519190611e38565b925050819055505b5050806001019050610d6e565b506001835103611021575f610f845f8561091790919063ffffffff16565b90505f610f9a5f8561091790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611012929190611d5b565b60405180910390a450506110a0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611097929190611e6b565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561124e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611107959493929190611ef2565b6020604051808303815f875af192505050801561114257506040513d601f19601f8201168201806040525081019061113f9190611f5e565b60015b6111c3573d805f8114611170576040519150601f19603f3d011682016040523d82523d5f602084013e611175565b606091505b505f8151036111bb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111b29190611daf565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124c57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112439190611daf565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156113fd578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112b6959493929190611f89565b6020604051808303815f875af19250505080156112f157506040513d601f19601f820116820180604052508101906112ee9190611f5e565b60015b611372573d805f811461131f576040519150601f19603f3d011682016040523d82523d5f602084013e611324565b606091505b505f81510361136a57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113619190611daf565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113fb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f29190611daf565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61143f82611416565b9050919050565b61144f81611435565b8114611459575f80fd5b50565b5f8135905061146a81611446565b92915050565b5f819050919050565b61148281611470565b811461148c575f80fd5b50565b5f8135905061149d81611479565b92915050565b5f80604083850312156114b9576114b861140e565b5b5f6114c68582860161145c565b92505060206114d78582860161148f565b9150509250929050565b6114ea81611470565b82525050565b5f6020820190506115035f8301846114e1565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61153d81611509565b8114611547575f80fd5b50565b5f8135905061155881611534565b92915050565b5f602082840312156115735761157261140e565b5b5f6115808482850161154a565b91505092915050565b5f8115159050919050565b61159d81611589565b82525050565b5f6020820190506115b65f830184611594565b92915050565b5f602082840312156115d1576115d061140e565b5b5f6115de8482850161148f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611629826115e7565b61163381856115f1565b9350611643818560208601611601565b61164c8161160f565b840191505092915050565b5f6020820190508181035f83015261166f818461161f565b905092915050565b5f805f6060848603121561168e5761168d61140e565b5b5f61169b8682870161145c565b93505060206116ac8682870161148f565b92505060406116bd8682870161148f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6117018261160f565b810181811067ffffffffffffffff821117156117205761171f6116cb565b5b80604052505050565b5f611732611405565b905061173e82826116f8565b919050565b5f67ffffffffffffffff82111561175d5761175c6116cb565b5b602082029050602081019050919050565b5f80fd5b5f61178461177f84611743565b611729565b905080838252602082019050602084028301858111156117a7576117a661176e565b5b835b818110156117d057806117bc888261148f565b8452602084019350506020810190506117a9565b5050509392505050565b5f82601f8301126117ee576117ed6116c7565b5b81356117fe848260208601611772565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611825576118246116cb565b5b61182e8261160f565b9050602081019050919050565b828183375f83830152505050565b5f61185b6118568461180b565b611729565b90508281526020810184848401111561187757611876611807565b5b61188284828561183b565b509392505050565b5f82601f83011261189e5761189d6116c7565b5b81356118ae848260208601611849565b91505092915050565b5f805f805f60a086880312156118d0576118cf61140e565b5b5f6118dd8882890161145c565b95505060206118ee8882890161145c565b945050604086013567ffffffffffffffff81111561190f5761190e611412565b5b61191b888289016117da565b935050606086013567ffffffffffffffff81111561193c5761193b611412565b5b611948888289016117da565b925050608086013567ffffffffffffffff81111561196957611968611412565b5b6119758882890161188a565b9150509295509295909350565b5f67ffffffffffffffff82111561199c5761199b6116cb565b5b602082029050602081019050919050565b5f6119bf6119ba84611982565b611729565b905080838252602082019050602084028301858111156119e2576119e161176e565b5b835b81811015611a0b57806119f7888261145c565b8452602084019350506020810190506119e4565b5050509392505050565b5f82601f830112611a2957611a286116c7565b5b8135611a398482602086016119ad565b91505092915050565b5f8060408385031215611a5857611a5761140e565b5b5f83013567ffffffffffffffff811115611a7557611a74611412565b5b611a8185828601611a15565b925050602083013567ffffffffffffffff811115611aa257611aa1611412565b5b611aae858286016117da565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611aea81611470565b82525050565b5f611afb8383611ae1565b60208301905092915050565b5f602082019050919050565b5f611b1d82611ab8565b611b278185611ac2565b9350611b3283611ad2565b805f5b83811015611b62578151611b498882611af0565b9750611b5483611b07565b925050600181019050611b35565b5085935050505092915050565b5f6020820190508181035f830152611b878184611b13565b905092915050565b611b9881611589565b8114611ba2575f80fd5b50565b5f81359050611bb381611b8f565b92915050565b5f8060408385031215611bcf57611bce61140e565b5b5f611bdc8582860161145c565b9250506020611bed85828601611ba5565b9150509250929050565b5f8060408385031215611c0d57611c0c61140e565b5b5f611c1a8582860161145c565b9250506020611c2b8582860161145c565b9150509250929050565b5f805f805f60a08688031215611c4e57611c4d61140e565b5b5f611c5b8882890161145c565b9550506020611c6c8882890161145c565b9450506040611c7d8882890161148f565b9350506060611c8e8882890161148f565b925050608086013567ffffffffffffffff811115611caf57611cae611412565b5b611cbb8882890161188a565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0c57607f821691505b602082108103611d1f57611d1e611cc8565b5b50919050565b611d2e81611435565b82525050565b5f604082019050611d475f830185611d25565b611d546020830184611d25565b9392505050565b5f604082019050611d6e5f8301856114e1565b611d7b60208301846114e1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082019050611dc25f830184611d25565b92915050565b5f608082019050611ddb5f830187611d25565b611de860208301866114e1565b611df560408301856114e1565b611e0260608301846114e1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e4282611470565b9150611e4d83611470565b9250828201905080821115611e6557611e64611e0b565b5b92915050565b5f6040820190508181035f830152611e838185611b13565b90508181036020830152611e978184611b13565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec482611ea0565b611ece8185611eaa565b9350611ede818560208601611601565b611ee78161160f565b840191505092915050565b5f60a082019050611f055f830188611d25565b611f126020830187611d25565b611f1f60408301866114e1565b611f2c60608301856114e1565b8181036080830152611f3e8184611eba565b90509695505050505050565b5f81519050611f5881611534565b92915050565b5f60208284031215611f7357611f7261140e565b5b5f611f8084828501611f4a565b91505092915050565b5f60a082019050611f9c5f830188611d25565b611fa96020830187611d25565b8181036040830152611fbb8186611b13565b90508181036060830152611fcf8185611b13565b90508181036080830152611fe38184611eba565b9050969550505050505056fea2646970667358221220e87db9d6338f9a6a136721a55bdc335876ac06f2dee3b3dac72665bca32a6b1f64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F7B69647D0000 DUP2 MSTORE POP PUSH2 0x55 DUP2 PUSH2 0x5B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x377 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x2A8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0xA5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x15E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x123 JUMP JUMPDEST PUSH2 0x168 DUP7 DUP4 PUSH2 0x123 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1AC PUSH2 0x1A7 PUSH2 0x1A2 DUP5 PUSH2 0x180 JUMP JUMPDEST PUSH2 0x189 JUMP JUMPDEST PUSH2 0x180 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C5 DUP4 PUSH2 0x192 JUMP JUMPDEST PUSH2 0x1D9 PUSH2 0x1D1 DUP3 PUSH2 0x1B3 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x12F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1ED PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1F8 DUP2 DUP5 DUP5 PUSH2 0x1BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x21B JUMPI PUSH2 0x210 PUSH0 DUP3 PUSH2 0x1E5 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1FE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x260 JUMPI PUSH2 0x231 DUP2 PUSH2 0x102 JUMP JUMPDEST PUSH2 0x23A DUP5 PUSH2 0x114 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x249 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x25D PUSH2 0x255 DUP6 PUSH2 0x114 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1FD JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x280 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x265 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x298 DUP4 DUP4 PUSH2 0x271 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B1 DUP3 PUSH2 0x6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CA JUMPI PUSH2 0x2C9 PUSH2 0x78 JUMP JUMPDEST JUMPDEST PUSH2 0x2D4 DUP3 SLOAD PUSH2 0xD2 JUMP JUMPDEST PUSH2 0x2DF DUP3 DUP3 DUP6 PUSH2 0x21F JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x310 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x2FE JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x308 DUP6 DUP3 PUSH2 0x28D JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x31E DUP7 PUSH2 0x102 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x345 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 0x320 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x362 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x35E PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x271 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 0x2025 DUP1 PUSH2 0x384 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x1FF JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x14B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x155E JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x149 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x144 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x181 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x1B6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x5B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0x5C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x33A JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x34A JUMPI POP PUSH2 0x349 DUP3 PUSH2 0x70B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x360 SWAP1 PUSH2 0x1CF5 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 0x38C SWAP1 PUSH2 0x1CF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3BA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x774 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x450 JUMPI POP PUSH2 0x44E DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x494 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A1 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x4F5 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x511 JUMPI PUSH2 0x510 PUSH2 0x16CB 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 0x53F 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 PUSH0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x5A5 JUMPI PUSH2 0x57B PUSH2 0x563 DUP3 DUP8 PUSH2 0x904 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x576 DUP4 DUP8 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0x1D82 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x544 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0x5BB PUSH2 0x809 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x92A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x65D PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x6A2 JUMPI POP PUSH2 0x6A0 DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x6E6 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6DD SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xA93 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x706 DUP4 DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7E4 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0x7F0 DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x801 PUSH0 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x880 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8F0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8FD DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 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 0xA86 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB03 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFA SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB73 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xB7F DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xB90 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC09 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xC15 DUP5 DUP5 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xC34 DUP6 PUSH0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0xC6B JUMP 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 PUSH2 0xC77 DUP6 DUP6 DUP6 DUP6 PUSH2 0xD17 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD10 JUMPI PUSH0 PUSH2 0xCB3 PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0xCFF JUMPI PUSH0 PUSH2 0xCD2 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xCE8 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0xCF8 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x10A7 JUMP JUMPDEST POP POP PUSH2 0xD0E JUMP JUMPDEST PUSH2 0xD0D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1256 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0xD61 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0xD6A PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xF66 JUMPI PUSH0 PUSH2 0xD8B DUP3 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDA1 DUP4 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEC4 JUMPI PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xE70 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE67 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF59 JUMPI DUP1 PUSH0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x1E38 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xD6E JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1021 JUMPI PUSH0 PUSH2 0xF84 PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xF9A PUSH0 DUP6 PUSH2 0x917 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 0x1012 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x10A0 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1097 SWAP3 SWAP2 SWAP1 PUSH2 0x1E6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x124E 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 0x1107 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1142 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 0x113F SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11C3 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1170 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x11BB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x124C JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x13FD 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 0x12B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12F1 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 0x12EE SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1372 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x131F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1324 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x136A JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1361 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x13FB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x143F DUP3 PUSH2 0x1416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x144F DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP2 EQ PUSH2 0x1459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x146A DUP2 PUSH2 0x1446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1482 DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP2 EQ PUSH2 0x148C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x149D DUP2 PUSH2 0x1479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14B9 JUMPI PUSH2 0x14B8 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x14C6 DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D7 DUP6 DUP3 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1503 PUSH0 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153D DUP2 PUSH2 0x1509 JUMP JUMPDEST DUP2 EQ PUSH2 0x1547 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1558 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1573 JUMPI PUSH2 0x1572 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1580 DUP5 DUP3 DUP6 ADD PUSH2 0x154A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x159D DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B6 PUSH0 DUP4 ADD DUP5 PUSH2 0x1594 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D1 JUMPI PUSH2 0x15D0 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DE DUP5 DUP3 DUP6 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1629 DUP3 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x1633 DUP2 DUP6 PUSH2 0x15F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1643 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x164C DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x166F DUP2 DUP5 PUSH2 0x161F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x168E JUMPI PUSH2 0x168D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169B DUP7 DUP3 DUP8 ADD PUSH2 0x145C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x16AC DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x16BD DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1701 DUP3 PUSH2 0x160F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1720 JUMPI PUSH2 0x171F PUSH2 0x16CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 PUSH2 0x1405 JUMP JUMPDEST SWAP1 POP PUSH2 0x173E DUP3 DUP3 PUSH2 0x16F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x175D JUMPI PUSH2 0x175C PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1784 PUSH2 0x177F DUP5 PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x1729 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 0x17A7 JUMPI PUSH2 0x17A6 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D0 JUMPI DUP1 PUSH2 0x17BC DUP9 DUP3 PUSH2 0x148F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17A9 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17FE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1772 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1825 JUMPI PUSH2 0x1824 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH2 0x182E DUP3 PUSH2 0x160F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x185B PUSH2 0x1856 DUP5 PUSH2 0x180B JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1877 JUMPI PUSH2 0x1876 PUSH2 0x1807 JUMP JUMPDEST JUMPDEST PUSH2 0x1882 DUP5 DUP3 DUP6 PUSH2 0x183B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x189E JUMPI PUSH2 0x189D PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x18AE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1849 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18D0 JUMPI PUSH2 0x18CF PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18DD DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x18EE DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x191B DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x193C JUMPI PUSH2 0x193B PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1948 DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1969 JUMPI PUSH2 0x1968 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1975 DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x199C JUMPI PUSH2 0x199B PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19BF PUSH2 0x19BA DUP5 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1729 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 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A0B JUMPI DUP1 PUSH2 0x19F7 DUP9 DUP3 PUSH2 0x145C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19E4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A29 JUMPI PUSH2 0x1A28 PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A39 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A58 JUMPI PUSH2 0x1A57 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A75 JUMPI PUSH2 0x1A74 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1A81 DUP6 DUP3 DUP7 ADD PUSH2 0x1A15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH2 0x1AA1 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1AAE DUP6 DUP3 DUP7 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AEA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AFB DUP4 DUP4 PUSH2 0x1AE1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B1D DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x1B27 DUP2 DUP6 PUSH2 0x1AC2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B32 DUP4 PUSH2 0x1AD2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B62 JUMPI DUP2 MLOAD PUSH2 0x1B49 DUP9 DUP3 PUSH2 0x1AF0 JUMP JUMPDEST SWAP8 POP PUSH2 0x1B54 DUP4 PUSH2 0x1B07 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1B35 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B87 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B98 DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BA2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB3 DUP2 PUSH2 0x1B8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BCF JUMPI PUSH2 0x1BCE PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1BDC DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1BED DUP6 DUP3 DUP7 ADD PUSH2 0x1BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0D JUMPI PUSH2 0x1C0C PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C1A DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C2B DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C4E JUMPI PUSH2 0x1C4D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C5B DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C6C DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1C7D DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1C8E DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1CAE PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1CBB DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1D0C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1D1F JUMPI PUSH2 0x1D1E PUSH2 0x1CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2E DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D47 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1D54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D6E PUSH0 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1D7B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DC2 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1DDB PUSH0 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1DE8 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1DF5 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1E02 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1E42 DUP3 PUSH2 0x1470 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E4D DUP4 PUSH2 0x1470 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1E65 JUMPI PUSH2 0x1E64 PUSH2 0x1E0B JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1E83 DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E97 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EC4 DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x1ECE DUP2 DUP6 PUSH2 0x1EAA JUMP JUMPDEST SWAP4 POP PUSH2 0x1EDE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x1EE7 DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F05 PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F12 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F1F PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1F2C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1F3E DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1F58 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F73 JUMPI PUSH2 0x1F72 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F80 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9C PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1FA9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1FBB DUP2 DUP7 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1FCF DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FE3 DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH30 0xB9D6338F9A6A136721A55BDC335876AC06F2DEE3B3DAC72665BCA32A6B1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"2054:316:49:-:0;;;2092:58;;;;;;;;;;1249:62:2;;;;;;;;;;;;;;;;;1291:13;1299:4;1291:7;;;:13;;:::i;:::-;1249:62;2054:316:49;;10290:86:2;10363:6;10356:4;:13;;;;;;:::i;:::-;;10290:86;:::o;7:99:53:-;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;2054:316:49:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_asSingletonArrays_1066":{"entryPoint":3131,"id":1066,"parameterSlots":2,"returnSlots":2},"@_burn_971":{"entryPoint":2969,"id":971,"parameterSlots":3,"returnSlots":0},"@_mint_880":{"entryPoint":1908,"id":880,"parameterSlots":4,"returnSlots":0},"@_msgSender_2302":{"entryPoint":2057,"id":2302,"parameterSlots":0,"returnSlots":1},"@_safeBatchTransferFrom_817":{"entryPoint":2064,"id":817,"parameterSlots":5,"returnSlots":0},"@_safeTransferFrom_762":{"entryPoint":2707,"id":762,"parameterSlots":5,"returnSlots":0},"@_setApprovalForAll_1050":{"entryPoint":2346,"id":1050,"parameterSlots":3,"returnSlots":0},"@_updateWithAcceptanceCheck_696":{"entryPoint":3179,"id":696,"parameterSlots":5,"returnSlots":0},"@_update_616":{"entryPoint":3351,"id":616,"parameterSlots":4,"returnSlots":0},"@balanceOfBatch_340":{"entryPoint":1193,"id":340,"parameterSlots":2,"returnSlots":1},"@balanceOf_270":{"entryPoint":539,"id":270,"parameterSlots":2,"returnSlots":1},"@burn_17899":{"entryPoint":1787,"id":17899,"parameterSlots":3,"returnSlots":0},"@checkOnERC1155BatchReceived_1401":{"entryPoint":4694,"id":1401,"parameterSlots":6,"returnSlots":0},"@checkOnERC1155Received_1327":{"entryPoint":4263,"id":1327,"parameterSlots":6,"returnSlots":0},"@isApprovedForAll_373":{"entryPoint":1478,"id":373,"parameterSlots":2,"returnSlots":1},"@mint_17883":{"entryPoint":995,"id":17883,"parameterSlots":3,"returnSlots":0},"@safeBatchTransferFrom_463":{"entryPoint":1026,"id":463,"parameterSlots":5,"returnSlots":0},"@safeTransferFrom_417":{"entryPoint":1620,"id":417,"parameterSlots":5,"returnSlots":0},"@setApprovalForAll_356":{"entryPoint":1456,"id":356,"parameterSlots":2,"returnSlots":0},"@supportsInterface_242":{"entryPoint":624,"id":242,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":1803,"id":2844,"parameterSlots":1,"returnSlots":1},"@unsafeMemoryAccess_2230":{"entryPoint":2308,"id":2230,"parameterSlots":2,"returnSlots":1},"@unsafeMemoryAccess_2256":{"entryPoint":2327,"id":2256,"parameterSlots":2,"returnSlots":1},"@uri_253":{"entryPoint":849,"id":253,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6573,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6002,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6217,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5212,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6677,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6106,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":7077,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":5450,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4_fromMemory":{"entryPoint":8010,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5263,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":7159,"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":6327,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr":{"entryPoint":7221,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bool":{"entryPoint":7097,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":5283,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":5751,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6722,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5470,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":8030,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_uint256_to_t_uint256":{"entryPoint":6896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7461,"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":6931,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5524,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":7866,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":5663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":6881,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5345,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":7476,"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":8073,"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":7922,"id":null,"parameterSlots":6,"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":7624,"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":7023,"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":7787,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5539,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5719,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5360,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7515,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":5929,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5125,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6530,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":5955,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6155,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6866,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6840,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":7840,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":5607,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6919,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":6850,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":7850,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":5617,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7736,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":5173,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5513,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5385,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5142,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5232,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6203,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5633,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":7413,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":5880,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":7691,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":7368,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7554,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5835,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":5831,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":5998,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6151,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5138,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5134,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":5647,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":5190,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7055,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5428,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5241,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:23542:53","nodeType":"YulBlock","src":"0:23542:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"379:81:53","nodeType":"YulBlock","src":"379:81:53","statements":[{"nativeSrc":"389:65:53","nodeType":"YulAssignment","src":"389:65:53","value":{"arguments":[{"name":"value","nativeSrc":"404:5:53","nodeType":"YulIdentifier","src":"404:5:53"},{"kind":"number","nativeSrc":"411:42:53","nodeType":"YulLiteral","src":"411:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:53","nodeType":"YulIdentifier","src":"400:3:53"},"nativeSrc":"400:54:53","nodeType":"YulFunctionCall","src":"400:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:53","nodeType":"YulIdentifier","src":"389:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:53","nodeType":"YulTypedName","src":"361:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:53","nodeType":"YulTypedName","src":"371:7:53","type":""}],"src":"334:126:53"},{"body":{"nativeSrc":"511:51:53","nodeType":"YulBlock","src":"511:51:53","statements":[{"nativeSrc":"521:35:53","nodeType":"YulAssignment","src":"521:35:53","value":{"arguments":[{"name":"value","nativeSrc":"550:5:53","nodeType":"YulIdentifier","src":"550:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:53","nodeType":"YulIdentifier","src":"532:17:53"},"nativeSrc":"532:24:53","nodeType":"YulFunctionCall","src":"532:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:53","nodeType":"YulIdentifier","src":"521:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:53","nodeType":"YulTypedName","src":"493:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:53","nodeType":"YulTypedName","src":"503:7:53","type":""}],"src":"466:96:53"},{"body":{"nativeSrc":"611:79:53","nodeType":"YulBlock","src":"611:79:53","statements":[{"body":{"nativeSrc":"668:16:53","nodeType":"YulBlock","src":"668:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:53","nodeType":"YulLiteral","src":"677:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:53","nodeType":"YulLiteral","src":"680:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:53","nodeType":"YulIdentifier","src":"670:6:53"},"nativeSrc":"670:12:53","nodeType":"YulFunctionCall","src":"670:12:53"},"nativeSrc":"670:12:53","nodeType":"YulExpressionStatement","src":"670:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:53","nodeType":"YulIdentifier","src":"634:5:53"},{"arguments":[{"name":"value","nativeSrc":"659:5:53","nodeType":"YulIdentifier","src":"659:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:53","nodeType":"YulIdentifier","src":"641:17:53"},"nativeSrc":"641:24:53","nodeType":"YulFunctionCall","src":"641:24:53"}],"functionName":{"name":"eq","nativeSrc":"631:2:53","nodeType":"YulIdentifier","src":"631:2:53"},"nativeSrc":"631:35:53","nodeType":"YulFunctionCall","src":"631:35:53"}],"functionName":{"name":"iszero","nativeSrc":"624:6:53","nodeType":"YulIdentifier","src":"624:6:53"},"nativeSrc":"624:43:53","nodeType":"YulFunctionCall","src":"624:43:53"},"nativeSrc":"621:63:53","nodeType":"YulIf","src":"621:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:53","nodeType":"YulTypedName","src":"604:5:53","type":""}],"src":"568:122:53"},{"body":{"nativeSrc":"748:87:53","nodeType":"YulBlock","src":"748:87:53","statements":[{"nativeSrc":"758:29:53","nodeType":"YulAssignment","src":"758:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:53","nodeType":"YulIdentifier","src":"780:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:53","nodeType":"YulIdentifier","src":"767:12:53"},"nativeSrc":"767:20:53","nodeType":"YulFunctionCall","src":"767:20:53"},"variableNames":[{"name":"value","nativeSrc":"758:5:53","nodeType":"YulIdentifier","src":"758:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:53","nodeType":"YulIdentifier","src":"823:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:53","nodeType":"YulIdentifier","src":"796:26:53"},"nativeSrc":"796:33:53","nodeType":"YulFunctionCall","src":"796:33:53"},"nativeSrc":"796:33:53","nodeType":"YulExpressionStatement","src":"796:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:53","nodeType":"YulTypedName","src":"726:6:53","type":""},{"name":"end","nativeSrc":"734:3:53","nodeType":"YulTypedName","src":"734:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:53","nodeType":"YulTypedName","src":"742:5:53","type":""}],"src":"696:139:53"},{"body":{"nativeSrc":"886:32:53","nodeType":"YulBlock","src":"886:32:53","statements":[{"nativeSrc":"896:16:53","nodeType":"YulAssignment","src":"896:16:53","value":{"name":"value","nativeSrc":"907:5:53","nodeType":"YulIdentifier","src":"907:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:53","nodeType":"YulIdentifier","src":"896:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:53","nodeType":"YulTypedName","src":"868:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:53","nodeType":"YulTypedName","src":"878:7:53","type":""}],"src":"841:77:53"},{"body":{"nativeSrc":"967:79:53","nodeType":"YulBlock","src":"967:79:53","statements":[{"body":{"nativeSrc":"1024:16:53","nodeType":"YulBlock","src":"1024:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:53","nodeType":"YulLiteral","src":"1033:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:53","nodeType":"YulLiteral","src":"1036:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:53","nodeType":"YulIdentifier","src":"1026:6:53"},"nativeSrc":"1026:12:53","nodeType":"YulFunctionCall","src":"1026:12:53"},"nativeSrc":"1026:12:53","nodeType":"YulExpressionStatement","src":"1026:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:53","nodeType":"YulIdentifier","src":"990:5:53"},{"arguments":[{"name":"value","nativeSrc":"1015:5:53","nodeType":"YulIdentifier","src":"1015:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:53","nodeType":"YulIdentifier","src":"997:17:53"},"nativeSrc":"997:24:53","nodeType":"YulFunctionCall","src":"997:24:53"}],"functionName":{"name":"eq","nativeSrc":"987:2:53","nodeType":"YulIdentifier","src":"987:2:53"},"nativeSrc":"987:35:53","nodeType":"YulFunctionCall","src":"987:35:53"}],"functionName":{"name":"iszero","nativeSrc":"980:6:53","nodeType":"YulIdentifier","src":"980:6:53"},"nativeSrc":"980:43:53","nodeType":"YulFunctionCall","src":"980:43:53"},"nativeSrc":"977:63:53","nodeType":"YulIf","src":"977:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:53","nodeType":"YulTypedName","src":"960:5:53","type":""}],"src":"924:122:53"},{"body":{"nativeSrc":"1104:87:53","nodeType":"YulBlock","src":"1104:87:53","statements":[{"nativeSrc":"1114:29:53","nodeType":"YulAssignment","src":"1114:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:53","nodeType":"YulIdentifier","src":"1136:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:53","nodeType":"YulIdentifier","src":"1123:12:53"},"nativeSrc":"1123:20:53","nodeType":"YulFunctionCall","src":"1123:20:53"},"variableNames":[{"name":"value","nativeSrc":"1114:5:53","nodeType":"YulIdentifier","src":"1114:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:53","nodeType":"YulIdentifier","src":"1179:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:53","nodeType":"YulIdentifier","src":"1152:26:53"},"nativeSrc":"1152:33:53","nodeType":"YulFunctionCall","src":"1152:33:53"},"nativeSrc":"1152:33:53","nodeType":"YulExpressionStatement","src":"1152:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:53","nodeType":"YulTypedName","src":"1082:6:53","type":""},{"name":"end","nativeSrc":"1090:3:53","nodeType":"YulTypedName","src":"1090:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:53","nodeType":"YulTypedName","src":"1098:5:53","type":""}],"src":"1052:139:53"},{"body":{"nativeSrc":"1280:391:53","nodeType":"YulBlock","src":"1280:391:53","statements":[{"body":{"nativeSrc":"1326:83:53","nodeType":"YulBlock","src":"1326:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1328:77:53","nodeType":"YulIdentifier","src":"1328:77:53"},"nativeSrc":"1328:79:53","nodeType":"YulFunctionCall","src":"1328:79:53"},"nativeSrc":"1328:79:53","nodeType":"YulExpressionStatement","src":"1328:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1301:7:53","nodeType":"YulIdentifier","src":"1301:7:53"},{"name":"headStart","nativeSrc":"1310:9:53","nodeType":"YulIdentifier","src":"1310:9:53"}],"functionName":{"name":"sub","nativeSrc":"1297:3:53","nodeType":"YulIdentifier","src":"1297:3:53"},"nativeSrc":"1297:23:53","nodeType":"YulFunctionCall","src":"1297:23:53"},{"kind":"number","nativeSrc":"1322:2:53","nodeType":"YulLiteral","src":"1322:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1293:3:53","nodeType":"YulIdentifier","src":"1293:3:53"},"nativeSrc":"1293:32:53","nodeType":"YulFunctionCall","src":"1293:32:53"},"nativeSrc":"1290:119:53","nodeType":"YulIf","src":"1290:119:53"},{"nativeSrc":"1419:117:53","nodeType":"YulBlock","src":"1419:117:53","statements":[{"nativeSrc":"1434:15:53","nodeType":"YulVariableDeclaration","src":"1434:15:53","value":{"kind":"number","nativeSrc":"1448:1:53","nodeType":"YulLiteral","src":"1448:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1438:6:53","nodeType":"YulTypedName","src":"1438:6:53","type":""}]},{"nativeSrc":"1463:63:53","nodeType":"YulAssignment","src":"1463:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1498:9:53","nodeType":"YulIdentifier","src":"1498:9:53"},{"name":"offset","nativeSrc":"1509:6:53","nodeType":"YulIdentifier","src":"1509:6:53"}],"functionName":{"name":"add","nativeSrc":"1494:3:53","nodeType":"YulIdentifier","src":"1494:3:53"},"nativeSrc":"1494:22:53","nodeType":"YulFunctionCall","src":"1494:22:53"},{"name":"dataEnd","nativeSrc":"1518:7:53","nodeType":"YulIdentifier","src":"1518:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1473:20:53","nodeType":"YulIdentifier","src":"1473:20:53"},"nativeSrc":"1473:53:53","nodeType":"YulFunctionCall","src":"1473:53:53"},"variableNames":[{"name":"value0","nativeSrc":"1463:6:53","nodeType":"YulIdentifier","src":"1463:6:53"}]}]},{"nativeSrc":"1546:118:53","nodeType":"YulBlock","src":"1546:118:53","statements":[{"nativeSrc":"1561:16:53","nodeType":"YulVariableDeclaration","src":"1561:16:53","value":{"kind":"number","nativeSrc":"1575:2:53","nodeType":"YulLiteral","src":"1575:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1565:6:53","nodeType":"YulTypedName","src":"1565:6:53","type":""}]},{"nativeSrc":"1591:63:53","nodeType":"YulAssignment","src":"1591:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:53","nodeType":"YulIdentifier","src":"1626:9:53"},{"name":"offset","nativeSrc":"1637:6:53","nodeType":"YulIdentifier","src":"1637:6:53"}],"functionName":{"name":"add","nativeSrc":"1622:3:53","nodeType":"YulIdentifier","src":"1622:3:53"},"nativeSrc":"1622:22:53","nodeType":"YulFunctionCall","src":"1622:22:53"},{"name":"dataEnd","nativeSrc":"1646:7:53","nodeType":"YulIdentifier","src":"1646:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1601:20:53","nodeType":"YulIdentifier","src":"1601:20:53"},"nativeSrc":"1601:53:53","nodeType":"YulFunctionCall","src":"1601:53:53"},"variableNames":[{"name":"value1","nativeSrc":"1591:6:53","nodeType":"YulIdentifier","src":"1591:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1197:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1242:9:53","nodeType":"YulTypedName","src":"1242:9:53","type":""},{"name":"dataEnd","nativeSrc":"1253:7:53","nodeType":"YulTypedName","src":"1253:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1265:6:53","nodeType":"YulTypedName","src":"1265:6:53","type":""},{"name":"value1","nativeSrc":"1273:6:53","nodeType":"YulTypedName","src":"1273:6:53","type":""}],"src":"1197:474:53"},{"body":{"nativeSrc":"1742:53:53","nodeType":"YulBlock","src":"1742:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1759:3:53","nodeType":"YulIdentifier","src":"1759:3:53"},{"arguments":[{"name":"value","nativeSrc":"1782:5:53","nodeType":"YulIdentifier","src":"1782:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1764:17:53","nodeType":"YulIdentifier","src":"1764:17:53"},"nativeSrc":"1764:24:53","nodeType":"YulFunctionCall","src":"1764:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1752:6:53","nodeType":"YulIdentifier","src":"1752:6:53"},"nativeSrc":"1752:37:53","nodeType":"YulFunctionCall","src":"1752:37:53"},"nativeSrc":"1752:37:53","nodeType":"YulExpressionStatement","src":"1752:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1677:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1730:5:53","nodeType":"YulTypedName","src":"1730:5:53","type":""},{"name":"pos","nativeSrc":"1737:3:53","nodeType":"YulTypedName","src":"1737:3:53","type":""}],"src":"1677:118:53"},{"body":{"nativeSrc":"1899:124:53","nodeType":"YulBlock","src":"1899:124:53","statements":[{"nativeSrc":"1909:26:53","nodeType":"YulAssignment","src":"1909:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1921:9:53","nodeType":"YulIdentifier","src":"1921:9:53"},{"kind":"number","nativeSrc":"1932:2:53","nodeType":"YulLiteral","src":"1932:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1917:3:53","nodeType":"YulIdentifier","src":"1917:3:53"},"nativeSrc":"1917:18:53","nodeType":"YulFunctionCall","src":"1917:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1909:4:53","nodeType":"YulIdentifier","src":"1909:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1989:6:53","nodeType":"YulIdentifier","src":"1989:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2002:9:53","nodeType":"YulIdentifier","src":"2002:9:53"},{"kind":"number","nativeSrc":"2013:1:53","nodeType":"YulLiteral","src":"2013:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1945:43:53","nodeType":"YulIdentifier","src":"1945:43:53"},"nativeSrc":"1945:71:53","nodeType":"YulFunctionCall","src":"1945:71:53"},"nativeSrc":"1945:71:53","nodeType":"YulExpressionStatement","src":"1945:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1801:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1871:9:53","nodeType":"YulTypedName","src":"1871:9:53","type":""},{"name":"value0","nativeSrc":"1883:6:53","nodeType":"YulTypedName","src":"1883:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1894:4:53","nodeType":"YulTypedName","src":"1894:4:53","type":""}],"src":"1801:222:53"},{"body":{"nativeSrc":"2073:105:53","nodeType":"YulBlock","src":"2073:105:53","statements":[{"nativeSrc":"2083:89:53","nodeType":"YulAssignment","src":"2083:89:53","value":{"arguments":[{"name":"value","nativeSrc":"2098:5:53","nodeType":"YulIdentifier","src":"2098:5:53"},{"kind":"number","nativeSrc":"2105:66:53","nodeType":"YulLiteral","src":"2105:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"2094:3:53","nodeType":"YulIdentifier","src":"2094:3:53"},"nativeSrc":"2094:78:53","nodeType":"YulFunctionCall","src":"2094:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2083:7:53","nodeType":"YulIdentifier","src":"2083:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"2029:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2055:5:53","nodeType":"YulTypedName","src":"2055:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2065:7:53","nodeType":"YulTypedName","src":"2065:7:53","type":""}],"src":"2029:149:53"},{"body":{"nativeSrc":"2226:78:53","nodeType":"YulBlock","src":"2226:78:53","statements":[{"body":{"nativeSrc":"2282:16:53","nodeType":"YulBlock","src":"2282:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2291:1:53","nodeType":"YulLiteral","src":"2291:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2294:1:53","nodeType":"YulLiteral","src":"2294:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2284:6:53","nodeType":"YulIdentifier","src":"2284:6:53"},"nativeSrc":"2284:12:53","nodeType":"YulFunctionCall","src":"2284:12:53"},"nativeSrc":"2284:12:53","nodeType":"YulExpressionStatement","src":"2284:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2249:5:53","nodeType":"YulIdentifier","src":"2249:5:53"},{"arguments":[{"name":"value","nativeSrc":"2273:5:53","nodeType":"YulIdentifier","src":"2273:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2256:16:53","nodeType":"YulIdentifier","src":"2256:16:53"},"nativeSrc":"2256:23:53","nodeType":"YulFunctionCall","src":"2256:23:53"}],"functionName":{"name":"eq","nativeSrc":"2246:2:53","nodeType":"YulIdentifier","src":"2246:2:53"},"nativeSrc":"2246:34:53","nodeType":"YulFunctionCall","src":"2246:34:53"}],"functionName":{"name":"iszero","nativeSrc":"2239:6:53","nodeType":"YulIdentifier","src":"2239:6:53"},"nativeSrc":"2239:42:53","nodeType":"YulFunctionCall","src":"2239:42:53"},"nativeSrc":"2236:62:53","nodeType":"YulIf","src":"2236:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"2184:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2219:5:53","nodeType":"YulTypedName","src":"2219:5:53","type":""}],"src":"2184:120:53"},{"body":{"nativeSrc":"2361:86:53","nodeType":"YulBlock","src":"2361:86:53","statements":[{"nativeSrc":"2371:29:53","nodeType":"YulAssignment","src":"2371:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2393:6:53","nodeType":"YulIdentifier","src":"2393:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2380:12:53","nodeType":"YulIdentifier","src":"2380:12:53"},"nativeSrc":"2380:20:53","nodeType":"YulFunctionCall","src":"2380:20:53"},"variableNames":[{"name":"value","nativeSrc":"2371:5:53","nodeType":"YulIdentifier","src":"2371:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2435:5:53","nodeType":"YulIdentifier","src":"2435:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"2409:25:53","nodeType":"YulIdentifier","src":"2409:25:53"},"nativeSrc":"2409:32:53","nodeType":"YulFunctionCall","src":"2409:32:53"},"nativeSrc":"2409:32:53","nodeType":"YulExpressionStatement","src":"2409:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"2310:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2339:6:53","nodeType":"YulTypedName","src":"2339:6:53","type":""},{"name":"end","nativeSrc":"2347:3:53","nodeType":"YulTypedName","src":"2347:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2355:5:53","nodeType":"YulTypedName","src":"2355:5:53","type":""}],"src":"2310:137:53"},{"body":{"nativeSrc":"2518:262:53","nodeType":"YulBlock","src":"2518:262:53","statements":[{"body":{"nativeSrc":"2564:83:53","nodeType":"YulBlock","src":"2564:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2566:77:53","nodeType":"YulIdentifier","src":"2566:77:53"},"nativeSrc":"2566:79:53","nodeType":"YulFunctionCall","src":"2566:79:53"},"nativeSrc":"2566:79:53","nodeType":"YulExpressionStatement","src":"2566:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2539:7:53","nodeType":"YulIdentifier","src":"2539:7:53"},{"name":"headStart","nativeSrc":"2548:9:53","nodeType":"YulIdentifier","src":"2548:9:53"}],"functionName":{"name":"sub","nativeSrc":"2535:3:53","nodeType":"YulIdentifier","src":"2535:3:53"},"nativeSrc":"2535:23:53","nodeType":"YulFunctionCall","src":"2535:23:53"},{"kind":"number","nativeSrc":"2560:2:53","nodeType":"YulLiteral","src":"2560:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2531:3:53","nodeType":"YulIdentifier","src":"2531:3:53"},"nativeSrc":"2531:32:53","nodeType":"YulFunctionCall","src":"2531:32:53"},"nativeSrc":"2528:119:53","nodeType":"YulIf","src":"2528:119:53"},{"nativeSrc":"2657:116:53","nodeType":"YulBlock","src":"2657:116:53","statements":[{"nativeSrc":"2672:15:53","nodeType":"YulVariableDeclaration","src":"2672:15:53","value":{"kind":"number","nativeSrc":"2686:1:53","nodeType":"YulLiteral","src":"2686:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2676:6:53","nodeType":"YulTypedName","src":"2676:6:53","type":""}]},{"nativeSrc":"2701:62:53","nodeType":"YulAssignment","src":"2701:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2735:9:53","nodeType":"YulIdentifier","src":"2735:9:53"},{"name":"offset","nativeSrc":"2746:6:53","nodeType":"YulIdentifier","src":"2746:6:53"}],"functionName":{"name":"add","nativeSrc":"2731:3:53","nodeType":"YulIdentifier","src":"2731:3:53"},"nativeSrc":"2731:22:53","nodeType":"YulFunctionCall","src":"2731:22:53"},{"name":"dataEnd","nativeSrc":"2755:7:53","nodeType":"YulIdentifier","src":"2755:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"2711:19:53","nodeType":"YulIdentifier","src":"2711:19:53"},"nativeSrc":"2711:52:53","nodeType":"YulFunctionCall","src":"2711:52:53"},"variableNames":[{"name":"value0","nativeSrc":"2701:6:53","nodeType":"YulIdentifier","src":"2701:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"2453:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2488:9:53","nodeType":"YulTypedName","src":"2488:9:53","type":""},{"name":"dataEnd","nativeSrc":"2499:7:53","nodeType":"YulTypedName","src":"2499:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2511:6:53","nodeType":"YulTypedName","src":"2511:6:53","type":""}],"src":"2453:327:53"},{"body":{"nativeSrc":"2828:48:53","nodeType":"YulBlock","src":"2828:48:53","statements":[{"nativeSrc":"2838:32:53","nodeType":"YulAssignment","src":"2838:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2863:5:53","nodeType":"YulIdentifier","src":"2863:5:53"}],"functionName":{"name":"iszero","nativeSrc":"2856:6:53","nodeType":"YulIdentifier","src":"2856:6:53"},"nativeSrc":"2856:13:53","nodeType":"YulFunctionCall","src":"2856:13:53"}],"functionName":{"name":"iszero","nativeSrc":"2849:6:53","nodeType":"YulIdentifier","src":"2849:6:53"},"nativeSrc":"2849:21:53","nodeType":"YulFunctionCall","src":"2849:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2838:7:53","nodeType":"YulIdentifier","src":"2838:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"2786:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2810:5:53","nodeType":"YulTypedName","src":"2810:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2820:7:53","nodeType":"YulTypedName","src":"2820:7:53","type":""}],"src":"2786:90:53"},{"body":{"nativeSrc":"2941:50:53","nodeType":"YulBlock","src":"2941:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2958:3:53","nodeType":"YulIdentifier","src":"2958:3:53"},{"arguments":[{"name":"value","nativeSrc":"2978:5:53","nodeType":"YulIdentifier","src":"2978:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2963:14:53","nodeType":"YulIdentifier","src":"2963:14:53"},"nativeSrc":"2963:21:53","nodeType":"YulFunctionCall","src":"2963:21:53"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"},"nativeSrc":"2951:34:53","nodeType":"YulFunctionCall","src":"2951:34:53"},"nativeSrc":"2951:34:53","nodeType":"YulExpressionStatement","src":"2951:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2882:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2929:5:53","nodeType":"YulTypedName","src":"2929:5:53","type":""},{"name":"pos","nativeSrc":"2936:3:53","nodeType":"YulTypedName","src":"2936:3:53","type":""}],"src":"2882:109:53"},{"body":{"nativeSrc":"3089:118:53","nodeType":"YulBlock","src":"3089:118:53","statements":[{"nativeSrc":"3099:26:53","nodeType":"YulAssignment","src":"3099:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3111:9:53","nodeType":"YulIdentifier","src":"3111:9:53"},{"kind":"number","nativeSrc":"3122:2:53","nodeType":"YulLiteral","src":"3122:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3107:3:53","nodeType":"YulIdentifier","src":"3107:3:53"},"nativeSrc":"3107:18:53","nodeType":"YulFunctionCall","src":"3107:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3099:4:53","nodeType":"YulIdentifier","src":"3099:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3173:6:53","nodeType":"YulIdentifier","src":"3173:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3186:9:53","nodeType":"YulIdentifier","src":"3186:9:53"},{"kind":"number","nativeSrc":"3197:1:53","nodeType":"YulLiteral","src":"3197:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3182:3:53","nodeType":"YulIdentifier","src":"3182:3:53"},"nativeSrc":"3182:17:53","nodeType":"YulFunctionCall","src":"3182:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3135:37:53","nodeType":"YulIdentifier","src":"3135:37:53"},"nativeSrc":"3135:65:53","nodeType":"YulFunctionCall","src":"3135:65:53"},"nativeSrc":"3135:65:53","nodeType":"YulExpressionStatement","src":"3135:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2997:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3061:9:53","nodeType":"YulTypedName","src":"3061:9:53","type":""},{"name":"value0","nativeSrc":"3073:6:53","nodeType":"YulTypedName","src":"3073:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3084:4:53","nodeType":"YulTypedName","src":"3084:4:53","type":""}],"src":"2997:210:53"},{"body":{"nativeSrc":"3279:263:53","nodeType":"YulBlock","src":"3279:263:53","statements":[{"body":{"nativeSrc":"3325:83:53","nodeType":"YulBlock","src":"3325:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3327:77:53","nodeType":"YulIdentifier","src":"3327:77:53"},"nativeSrc":"3327:79:53","nodeType":"YulFunctionCall","src":"3327:79:53"},"nativeSrc":"3327:79:53","nodeType":"YulExpressionStatement","src":"3327:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3300:7:53","nodeType":"YulIdentifier","src":"3300:7:53"},{"name":"headStart","nativeSrc":"3309:9:53","nodeType":"YulIdentifier","src":"3309:9:53"}],"functionName":{"name":"sub","nativeSrc":"3296:3:53","nodeType":"YulIdentifier","src":"3296:3:53"},"nativeSrc":"3296:23:53","nodeType":"YulFunctionCall","src":"3296:23:53"},{"kind":"number","nativeSrc":"3321:2:53","nodeType":"YulLiteral","src":"3321:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3292:3:53","nodeType":"YulIdentifier","src":"3292:3:53"},"nativeSrc":"3292:32:53","nodeType":"YulFunctionCall","src":"3292:32:53"},"nativeSrc":"3289:119:53","nodeType":"YulIf","src":"3289:119:53"},{"nativeSrc":"3418:117:53","nodeType":"YulBlock","src":"3418:117:53","statements":[{"nativeSrc":"3433:15:53","nodeType":"YulVariableDeclaration","src":"3433:15:53","value":{"kind":"number","nativeSrc":"3447:1:53","nodeType":"YulLiteral","src":"3447:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3437:6:53","nodeType":"YulTypedName","src":"3437:6:53","type":""}]},{"nativeSrc":"3462:63:53","nodeType":"YulAssignment","src":"3462:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3497:9:53","nodeType":"YulIdentifier","src":"3497:9:53"},{"name":"offset","nativeSrc":"3508:6:53","nodeType":"YulIdentifier","src":"3508:6:53"}],"functionName":{"name":"add","nativeSrc":"3493:3:53","nodeType":"YulIdentifier","src":"3493:3:53"},"nativeSrc":"3493:22:53","nodeType":"YulFunctionCall","src":"3493:22:53"},{"name":"dataEnd","nativeSrc":"3517:7:53","nodeType":"YulIdentifier","src":"3517:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3472:20:53","nodeType":"YulIdentifier","src":"3472:20:53"},"nativeSrc":"3472:53:53","nodeType":"YulFunctionCall","src":"3472:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3462:6:53","nodeType":"YulIdentifier","src":"3462:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3213:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3249:9:53","nodeType":"YulTypedName","src":"3249:9:53","type":""},{"name":"dataEnd","nativeSrc":"3260:7:53","nodeType":"YulTypedName","src":"3260:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3272:6:53","nodeType":"YulTypedName","src":"3272:6:53","type":""}],"src":"3213:329:53"},{"body":{"nativeSrc":"3607:40:53","nodeType":"YulBlock","src":"3607:40:53","statements":[{"nativeSrc":"3618:22:53","nodeType":"YulAssignment","src":"3618:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3634:5:53","nodeType":"YulIdentifier","src":"3634:5:53"}],"functionName":{"name":"mload","nativeSrc":"3628:5:53","nodeType":"YulIdentifier","src":"3628:5:53"},"nativeSrc":"3628:12:53","nodeType":"YulFunctionCall","src":"3628:12:53"},"variableNames":[{"name":"length","nativeSrc":"3618:6:53","nodeType":"YulIdentifier","src":"3618:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3548:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3590:5:53","nodeType":"YulTypedName","src":"3590:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3600:6:53","nodeType":"YulTypedName","src":"3600:6:53","type":""}],"src":"3548:99:53"},{"body":{"nativeSrc":"3749:73:53","nodeType":"YulBlock","src":"3749:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3766:3:53","nodeType":"YulIdentifier","src":"3766:3:53"},{"name":"length","nativeSrc":"3771:6:53","nodeType":"YulIdentifier","src":"3771:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3759:6:53","nodeType":"YulIdentifier","src":"3759:6:53"},"nativeSrc":"3759:19:53","nodeType":"YulFunctionCall","src":"3759:19:53"},"nativeSrc":"3759:19:53","nodeType":"YulExpressionStatement","src":"3759:19:53"},{"nativeSrc":"3787:29:53","nodeType":"YulAssignment","src":"3787:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3806:3:53","nodeType":"YulIdentifier","src":"3806:3:53"},{"kind":"number","nativeSrc":"3811:4:53","nodeType":"YulLiteral","src":"3811:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3802:3:53","nodeType":"YulIdentifier","src":"3802:3:53"},"nativeSrc":"3802:14:53","nodeType":"YulFunctionCall","src":"3802:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3787:11:53","nodeType":"YulIdentifier","src":"3787:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3653:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3721:3:53","nodeType":"YulTypedName","src":"3721:3:53","type":""},{"name":"length","nativeSrc":"3726:6:53","nodeType":"YulTypedName","src":"3726:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3737:11:53","nodeType":"YulTypedName","src":"3737:11:53","type":""}],"src":"3653:169:53"},{"body":{"nativeSrc":"3890:77:53","nodeType":"YulBlock","src":"3890:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3907:3:53","nodeType":"YulIdentifier","src":"3907:3:53"},{"name":"src","nativeSrc":"3912:3:53","nodeType":"YulIdentifier","src":"3912:3:53"},{"name":"length","nativeSrc":"3917:6:53","nodeType":"YulIdentifier","src":"3917:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3901:5:53","nodeType":"YulIdentifier","src":"3901:5:53"},"nativeSrc":"3901:23:53","nodeType":"YulFunctionCall","src":"3901:23:53"},"nativeSrc":"3901:23:53","nodeType":"YulExpressionStatement","src":"3901:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3944:3:53","nodeType":"YulIdentifier","src":"3944:3:53"},{"name":"length","nativeSrc":"3949:6:53","nodeType":"YulIdentifier","src":"3949:6:53"}],"functionName":{"name":"add","nativeSrc":"3940:3:53","nodeType":"YulIdentifier","src":"3940:3:53"},"nativeSrc":"3940:16:53","nodeType":"YulFunctionCall","src":"3940:16:53"},{"kind":"number","nativeSrc":"3958:1:53","nodeType":"YulLiteral","src":"3958:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3933:6:53","nodeType":"YulIdentifier","src":"3933:6:53"},"nativeSrc":"3933:27:53","nodeType":"YulFunctionCall","src":"3933:27:53"},"nativeSrc":"3933:27:53","nodeType":"YulExpressionStatement","src":"3933:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3828:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3872:3:53","nodeType":"YulTypedName","src":"3872:3:53","type":""},{"name":"dst","nativeSrc":"3877:3:53","nodeType":"YulTypedName","src":"3877:3:53","type":""},{"name":"length","nativeSrc":"3882:6:53","nodeType":"YulTypedName","src":"3882:6:53","type":""}],"src":"3828:139:53"},{"body":{"nativeSrc":"4021:54:53","nodeType":"YulBlock","src":"4021:54:53","statements":[{"nativeSrc":"4031:38:53","nodeType":"YulAssignment","src":"4031:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4049:5:53","nodeType":"YulIdentifier","src":"4049:5:53"},{"kind":"number","nativeSrc":"4056:2:53","nodeType":"YulLiteral","src":"4056:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4045:3:53","nodeType":"YulIdentifier","src":"4045:3:53"},"nativeSrc":"4045:14:53","nodeType":"YulFunctionCall","src":"4045:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4065:2:53","nodeType":"YulLiteral","src":"4065:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4061:3:53","nodeType":"YulIdentifier","src":"4061:3:53"},"nativeSrc":"4061:7:53","nodeType":"YulFunctionCall","src":"4061:7:53"}],"functionName":{"name":"and","nativeSrc":"4041:3:53","nodeType":"YulIdentifier","src":"4041:3:53"},"nativeSrc":"4041:28:53","nodeType":"YulFunctionCall","src":"4041:28:53"},"variableNames":[{"name":"result","nativeSrc":"4031:6:53","nodeType":"YulIdentifier","src":"4031:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3973:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4004:5:53","nodeType":"YulTypedName","src":"4004:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4014:6:53","nodeType":"YulTypedName","src":"4014:6:53","type":""}],"src":"3973:102:53"},{"body":{"nativeSrc":"4173:285:53","nodeType":"YulBlock","src":"4173:285:53","statements":[{"nativeSrc":"4183:53:53","nodeType":"YulVariableDeclaration","src":"4183:53:53","value":{"arguments":[{"name":"value","nativeSrc":"4230:5:53","nodeType":"YulIdentifier","src":"4230:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"4197:32:53","nodeType":"YulIdentifier","src":"4197:32:53"},"nativeSrc":"4197:39:53","nodeType":"YulFunctionCall","src":"4197:39:53"},"variables":[{"name":"length","nativeSrc":"4187:6:53","nodeType":"YulTypedName","src":"4187:6:53","type":""}]},{"nativeSrc":"4245:78:53","nodeType":"YulAssignment","src":"4245:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"4311:3:53","nodeType":"YulIdentifier","src":"4311:3:53"},{"name":"length","nativeSrc":"4316:6:53","nodeType":"YulIdentifier","src":"4316:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4252:58:53","nodeType":"YulIdentifier","src":"4252:58:53"},"nativeSrc":"4252:71:53","nodeType":"YulFunctionCall","src":"4252:71:53"},"variableNames":[{"name":"pos","nativeSrc":"4245:3:53","nodeType":"YulIdentifier","src":"4245:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4371:5:53","nodeType":"YulIdentifier","src":"4371:5:53"},{"kind":"number","nativeSrc":"4378:4:53","nodeType":"YulLiteral","src":"4378:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4367:3:53","nodeType":"YulIdentifier","src":"4367:3:53"},"nativeSrc":"4367:16:53","nodeType":"YulFunctionCall","src":"4367:16:53"},{"name":"pos","nativeSrc":"4385:3:53","nodeType":"YulIdentifier","src":"4385:3:53"},{"name":"length","nativeSrc":"4390:6:53","nodeType":"YulIdentifier","src":"4390:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4332:34:53","nodeType":"YulIdentifier","src":"4332:34:53"},"nativeSrc":"4332:65:53","nodeType":"YulFunctionCall","src":"4332:65:53"},"nativeSrc":"4332:65:53","nodeType":"YulExpressionStatement","src":"4332:65:53"},{"nativeSrc":"4406:46:53","nodeType":"YulAssignment","src":"4406:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4417:3:53","nodeType":"YulIdentifier","src":"4417:3:53"},{"arguments":[{"name":"length","nativeSrc":"4444:6:53","nodeType":"YulIdentifier","src":"4444:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4422:21:53","nodeType":"YulIdentifier","src":"4422:21:53"},"nativeSrc":"4422:29:53","nodeType":"YulFunctionCall","src":"4422:29:53"}],"functionName":{"name":"add","nativeSrc":"4413:3:53","nodeType":"YulIdentifier","src":"4413:3:53"},"nativeSrc":"4413:39:53","nodeType":"YulFunctionCall","src":"4413:39:53"},"variableNames":[{"name":"end","nativeSrc":"4406:3:53","nodeType":"YulIdentifier","src":"4406:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4081:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4154:5:53","nodeType":"YulTypedName","src":"4154:5:53","type":""},{"name":"pos","nativeSrc":"4161:3:53","nodeType":"YulTypedName","src":"4161:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4169:3:53","nodeType":"YulTypedName","src":"4169:3:53","type":""}],"src":"4081:377:53"},{"body":{"nativeSrc":"4582:195:53","nodeType":"YulBlock","src":"4582:195:53","statements":[{"nativeSrc":"4592:26:53","nodeType":"YulAssignment","src":"4592:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4604:9:53","nodeType":"YulIdentifier","src":"4604:9:53"},{"kind":"number","nativeSrc":"4615:2:53","nodeType":"YulLiteral","src":"4615:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4600:3:53","nodeType":"YulIdentifier","src":"4600:3:53"},"nativeSrc":"4600:18:53","nodeType":"YulFunctionCall","src":"4600:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4592:4:53","nodeType":"YulIdentifier","src":"4592:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4639:9:53","nodeType":"YulIdentifier","src":"4639:9:53"},{"kind":"number","nativeSrc":"4650:1:53","nodeType":"YulLiteral","src":"4650:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4635:3:53","nodeType":"YulIdentifier","src":"4635:3:53"},"nativeSrc":"4635:17:53","nodeType":"YulFunctionCall","src":"4635:17:53"},{"arguments":[{"name":"tail","nativeSrc":"4658:4:53","nodeType":"YulIdentifier","src":"4658:4:53"},{"name":"headStart","nativeSrc":"4664:9:53","nodeType":"YulIdentifier","src":"4664:9:53"}],"functionName":{"name":"sub","nativeSrc":"4654:3:53","nodeType":"YulIdentifier","src":"4654:3:53"},"nativeSrc":"4654:20:53","nodeType":"YulFunctionCall","src":"4654:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4628:6:53","nodeType":"YulIdentifier","src":"4628:6:53"},"nativeSrc":"4628:47:53","nodeType":"YulFunctionCall","src":"4628:47:53"},"nativeSrc":"4628:47:53","nodeType":"YulExpressionStatement","src":"4628:47:53"},{"nativeSrc":"4684:86:53","nodeType":"YulAssignment","src":"4684:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"4756:6:53","nodeType":"YulIdentifier","src":"4756:6:53"},{"name":"tail","nativeSrc":"4765:4:53","nodeType":"YulIdentifier","src":"4765:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4692:63:53","nodeType":"YulIdentifier","src":"4692:63:53"},"nativeSrc":"4692:78:53","nodeType":"YulFunctionCall","src":"4692:78:53"},"variableNames":[{"name":"tail","nativeSrc":"4684:4:53","nodeType":"YulIdentifier","src":"4684:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4464:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4554:9:53","nodeType":"YulTypedName","src":"4554:9:53","type":""},{"name":"value0","nativeSrc":"4566:6:53","nodeType":"YulTypedName","src":"4566:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4577:4:53","nodeType":"YulTypedName","src":"4577:4:53","type":""}],"src":"4464:313:53"},{"body":{"nativeSrc":"4883:519:53","nodeType":"YulBlock","src":"4883:519:53","statements":[{"body":{"nativeSrc":"4929:83:53","nodeType":"YulBlock","src":"4929:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4931:77:53","nodeType":"YulIdentifier","src":"4931:77:53"},"nativeSrc":"4931:79:53","nodeType":"YulFunctionCall","src":"4931:79:53"},"nativeSrc":"4931:79:53","nodeType":"YulExpressionStatement","src":"4931:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4904:7:53","nodeType":"YulIdentifier","src":"4904:7:53"},{"name":"headStart","nativeSrc":"4913:9:53","nodeType":"YulIdentifier","src":"4913:9:53"}],"functionName":{"name":"sub","nativeSrc":"4900:3:53","nodeType":"YulIdentifier","src":"4900:3:53"},"nativeSrc":"4900:23:53","nodeType":"YulFunctionCall","src":"4900:23:53"},{"kind":"number","nativeSrc":"4925:2:53","nodeType":"YulLiteral","src":"4925:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4896:3:53","nodeType":"YulIdentifier","src":"4896:3:53"},"nativeSrc":"4896:32:53","nodeType":"YulFunctionCall","src":"4896:32:53"},"nativeSrc":"4893:119:53","nodeType":"YulIf","src":"4893:119:53"},{"nativeSrc":"5022:117:53","nodeType":"YulBlock","src":"5022:117:53","statements":[{"nativeSrc":"5037:15:53","nodeType":"YulVariableDeclaration","src":"5037:15:53","value":{"kind":"number","nativeSrc":"5051:1:53","nodeType":"YulLiteral","src":"5051:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5041:6:53","nodeType":"YulTypedName","src":"5041:6:53","type":""}]},{"nativeSrc":"5066:63:53","nodeType":"YulAssignment","src":"5066:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5101:9:53","nodeType":"YulIdentifier","src":"5101:9:53"},{"name":"offset","nativeSrc":"5112:6:53","nodeType":"YulIdentifier","src":"5112:6:53"}],"functionName":{"name":"add","nativeSrc":"5097:3:53","nodeType":"YulIdentifier","src":"5097:3:53"},"nativeSrc":"5097:22:53","nodeType":"YulFunctionCall","src":"5097:22:53"},{"name":"dataEnd","nativeSrc":"5121:7:53","nodeType":"YulIdentifier","src":"5121:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5076:20:53","nodeType":"YulIdentifier","src":"5076:20:53"},"nativeSrc":"5076:53:53","nodeType":"YulFunctionCall","src":"5076:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5066:6:53","nodeType":"YulIdentifier","src":"5066:6:53"}]}]},{"nativeSrc":"5149:118:53","nodeType":"YulBlock","src":"5149:118:53","statements":[{"nativeSrc":"5164:16:53","nodeType":"YulVariableDeclaration","src":"5164:16:53","value":{"kind":"number","nativeSrc":"5178:2:53","nodeType":"YulLiteral","src":"5178:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5168:6:53","nodeType":"YulTypedName","src":"5168:6:53","type":""}]},{"nativeSrc":"5194:63:53","nodeType":"YulAssignment","src":"5194:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5229:9:53","nodeType":"YulIdentifier","src":"5229:9:53"},{"name":"offset","nativeSrc":"5240:6:53","nodeType":"YulIdentifier","src":"5240:6:53"}],"functionName":{"name":"add","nativeSrc":"5225:3:53","nodeType":"YulIdentifier","src":"5225:3:53"},"nativeSrc":"5225:22:53","nodeType":"YulFunctionCall","src":"5225:22:53"},{"name":"dataEnd","nativeSrc":"5249:7:53","nodeType":"YulIdentifier","src":"5249:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5204:20:53","nodeType":"YulIdentifier","src":"5204:20:53"},"nativeSrc":"5204:53:53","nodeType":"YulFunctionCall","src":"5204:53:53"},"variableNames":[{"name":"value1","nativeSrc":"5194:6:53","nodeType":"YulIdentifier","src":"5194:6:53"}]}]},{"nativeSrc":"5277:118:53","nodeType":"YulBlock","src":"5277:118:53","statements":[{"nativeSrc":"5292:16:53","nodeType":"YulVariableDeclaration","src":"5292:16:53","value":{"kind":"number","nativeSrc":"5306:2:53","nodeType":"YulLiteral","src":"5306:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5296:6:53","nodeType":"YulTypedName","src":"5296:6:53","type":""}]},{"nativeSrc":"5322:63:53","nodeType":"YulAssignment","src":"5322:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5357:9:53","nodeType":"YulIdentifier","src":"5357:9:53"},{"name":"offset","nativeSrc":"5368:6:53","nodeType":"YulIdentifier","src":"5368:6:53"}],"functionName":{"name":"add","nativeSrc":"5353:3:53","nodeType":"YulIdentifier","src":"5353:3:53"},"nativeSrc":"5353:22:53","nodeType":"YulFunctionCall","src":"5353:22:53"},{"name":"dataEnd","nativeSrc":"5377:7:53","nodeType":"YulIdentifier","src":"5377:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5332:20:53","nodeType":"YulIdentifier","src":"5332:20:53"},"nativeSrc":"5332:53:53","nodeType":"YulFunctionCall","src":"5332:53:53"},"variableNames":[{"name":"value2","nativeSrc":"5322:6:53","nodeType":"YulIdentifier","src":"5322:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nativeSrc":"4783:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4837:9:53","nodeType":"YulTypedName","src":"4837:9:53","type":""},{"name":"dataEnd","nativeSrc":"4848:7:53","nodeType":"YulTypedName","src":"4848:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4860:6:53","nodeType":"YulTypedName","src":"4860:6:53","type":""},{"name":"value1","nativeSrc":"4868:6:53","nodeType":"YulTypedName","src":"4868:6:53","type":""},{"name":"value2","nativeSrc":"4876:6:53","nodeType":"YulTypedName","src":"4876:6:53","type":""}],"src":"4783:619:53"},{"body":{"nativeSrc":"5497:28:53","nodeType":"YulBlock","src":"5497:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5514:1:53","nodeType":"YulLiteral","src":"5514:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5517:1:53","nodeType":"YulLiteral","src":"5517:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5507:6:53","nodeType":"YulIdentifier","src":"5507:6:53"},"nativeSrc":"5507:12:53","nodeType":"YulFunctionCall","src":"5507:12:53"},"nativeSrc":"5507:12:53","nodeType":"YulExpressionStatement","src":"5507:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5408:117:53","nodeType":"YulFunctionDefinition","src":"5408:117:53"},{"body":{"nativeSrc":"5559:152:53","nodeType":"YulBlock","src":"5559:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5576:1:53","nodeType":"YulLiteral","src":"5576:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5579:77:53","nodeType":"YulLiteral","src":"5579:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5569:6:53","nodeType":"YulIdentifier","src":"5569:6:53"},"nativeSrc":"5569:88:53","nodeType":"YulFunctionCall","src":"5569:88:53"},"nativeSrc":"5569:88:53","nodeType":"YulExpressionStatement","src":"5569:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5673:1:53","nodeType":"YulLiteral","src":"5673:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"5676:4:53","nodeType":"YulLiteral","src":"5676:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5666:6:53","nodeType":"YulIdentifier","src":"5666:6:53"},"nativeSrc":"5666:15:53","nodeType":"YulFunctionCall","src":"5666:15:53"},"nativeSrc":"5666:15:53","nodeType":"YulExpressionStatement","src":"5666:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5697:1:53","nodeType":"YulLiteral","src":"5697:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5700:4:53","nodeType":"YulLiteral","src":"5700:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5690:6:53","nodeType":"YulIdentifier","src":"5690:6:53"},"nativeSrc":"5690:15:53","nodeType":"YulFunctionCall","src":"5690:15:53"},"nativeSrc":"5690:15:53","nodeType":"YulExpressionStatement","src":"5690:15:53"}]},"name":"panic_error_0x41","nativeSrc":"5531:180:53","nodeType":"YulFunctionDefinition","src":"5531:180:53"},{"body":{"nativeSrc":"5760:238:53","nodeType":"YulBlock","src":"5760:238:53","statements":[{"nativeSrc":"5770:58:53","nodeType":"YulVariableDeclaration","src":"5770:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"5792:6:53","nodeType":"YulIdentifier","src":"5792:6:53"},{"arguments":[{"name":"size","nativeSrc":"5822:4:53","nodeType":"YulIdentifier","src":"5822:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5800:21:53","nodeType":"YulIdentifier","src":"5800:21:53"},"nativeSrc":"5800:27:53","nodeType":"YulFunctionCall","src":"5800:27:53"}],"functionName":{"name":"add","nativeSrc":"5788:3:53","nodeType":"YulIdentifier","src":"5788:3:53"},"nativeSrc":"5788:40:53","nodeType":"YulFunctionCall","src":"5788:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"5774:10:53","nodeType":"YulTypedName","src":"5774:10:53","type":""}]},{"body":{"nativeSrc":"5939:22:53","nodeType":"YulBlock","src":"5939:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5941:16:53","nodeType":"YulIdentifier","src":"5941:16:53"},"nativeSrc":"5941:18:53","nodeType":"YulFunctionCall","src":"5941:18:53"},"nativeSrc":"5941:18:53","nodeType":"YulExpressionStatement","src":"5941:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5882:10:53","nodeType":"YulIdentifier","src":"5882:10:53"},{"kind":"number","nativeSrc":"5894:18:53","nodeType":"YulLiteral","src":"5894:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5879:2:53","nodeType":"YulIdentifier","src":"5879:2:53"},"nativeSrc":"5879:34:53","nodeType":"YulFunctionCall","src":"5879:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5918:10:53","nodeType":"YulIdentifier","src":"5918:10:53"},{"name":"memPtr","nativeSrc":"5930:6:53","nodeType":"YulIdentifier","src":"5930:6:53"}],"functionName":{"name":"lt","nativeSrc":"5915:2:53","nodeType":"YulIdentifier","src":"5915:2:53"},"nativeSrc":"5915:22:53","nodeType":"YulFunctionCall","src":"5915:22:53"}],"functionName":{"name":"or","nativeSrc":"5876:2:53","nodeType":"YulIdentifier","src":"5876:2:53"},"nativeSrc":"5876:62:53","nodeType":"YulFunctionCall","src":"5876:62:53"},"nativeSrc":"5873:88:53","nodeType":"YulIf","src":"5873:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5977:2:53","nodeType":"YulLiteral","src":"5977:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5981:10:53","nodeType":"YulIdentifier","src":"5981:10:53"}],"functionName":{"name":"mstore","nativeSrc":"5970:6:53","nodeType":"YulIdentifier","src":"5970:6:53"},"nativeSrc":"5970:22:53","nodeType":"YulFunctionCall","src":"5970:22:53"},"nativeSrc":"5970:22:53","nodeType":"YulExpressionStatement","src":"5970:22:53"}]},"name":"finalize_allocation","nativeSrc":"5717:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5746:6:53","nodeType":"YulTypedName","src":"5746:6:53","type":""},{"name":"size","nativeSrc":"5754:4:53","nodeType":"YulTypedName","src":"5754:4:53","type":""}],"src":"5717:281:53"},{"body":{"nativeSrc":"6045:88:53","nodeType":"YulBlock","src":"6045:88:53","statements":[{"nativeSrc":"6055:30:53","nodeType":"YulAssignment","src":"6055:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"6065:18:53","nodeType":"YulIdentifier","src":"6065:18:53"},"nativeSrc":"6065:20:53","nodeType":"YulFunctionCall","src":"6065:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"6055:6:53","nodeType":"YulIdentifier","src":"6055:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"6114:6:53","nodeType":"YulIdentifier","src":"6114:6:53"},{"name":"size","nativeSrc":"6122:4:53","nodeType":"YulIdentifier","src":"6122:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"6094:19:53","nodeType":"YulIdentifier","src":"6094:19:53"},"nativeSrc":"6094:33:53","nodeType":"YulFunctionCall","src":"6094:33:53"},"nativeSrc":"6094:33:53","nodeType":"YulExpressionStatement","src":"6094:33:53"}]},"name":"allocate_memory","nativeSrc":"6004:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6029:4:53","nodeType":"YulTypedName","src":"6029:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6038:6:53","nodeType":"YulTypedName","src":"6038:6:53","type":""}],"src":"6004:129:53"},{"body":{"nativeSrc":"6221:229:53","nodeType":"YulBlock","src":"6221:229:53","statements":[{"body":{"nativeSrc":"6326:22:53","nodeType":"YulBlock","src":"6326:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6328:16:53","nodeType":"YulIdentifier","src":"6328:16:53"},"nativeSrc":"6328:18:53","nodeType":"YulFunctionCall","src":"6328:18:53"},"nativeSrc":"6328:18:53","nodeType":"YulExpressionStatement","src":"6328:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6298:6:53","nodeType":"YulIdentifier","src":"6298:6:53"},{"kind":"number","nativeSrc":"6306:18:53","nodeType":"YulLiteral","src":"6306:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6295:2:53","nodeType":"YulIdentifier","src":"6295:2:53"},"nativeSrc":"6295:30:53","nodeType":"YulFunctionCall","src":"6295:30:53"},"nativeSrc":"6292:56:53","nodeType":"YulIf","src":"6292:56:53"},{"nativeSrc":"6358:25:53","nodeType":"YulAssignment","src":"6358:25:53","value":{"arguments":[{"name":"length","nativeSrc":"6370:6:53","nodeType":"YulIdentifier","src":"6370:6:53"},{"kind":"number","nativeSrc":"6378:4:53","nodeType":"YulLiteral","src":"6378:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6366:3:53","nodeType":"YulIdentifier","src":"6366:3:53"},"nativeSrc":"6366:17:53","nodeType":"YulFunctionCall","src":"6366:17:53"},"variableNames":[{"name":"size","nativeSrc":"6358:4:53","nodeType":"YulIdentifier","src":"6358:4:53"}]},{"nativeSrc":"6420:23:53","nodeType":"YulAssignment","src":"6420:23:53","value":{"arguments":[{"name":"size","nativeSrc":"6432:4:53","nodeType":"YulIdentifier","src":"6432:4:53"},{"kind":"number","nativeSrc":"6438:4:53","nodeType":"YulLiteral","src":"6438:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6428:3:53","nodeType":"YulIdentifier","src":"6428:3:53"},"nativeSrc":"6428:15:53","nodeType":"YulFunctionCall","src":"6428:15:53"},"variableNames":[{"name":"size","nativeSrc":"6420:4:53","nodeType":"YulIdentifier","src":"6420:4:53"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6139:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"6205:6:53","nodeType":"YulTypedName","src":"6205:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"6216:4:53","nodeType":"YulTypedName","src":"6216:4:53","type":""}],"src":"6139:311:53"},{"body":{"nativeSrc":"6545:28:53","nodeType":"YulBlock","src":"6545:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6562:1:53","nodeType":"YulLiteral","src":"6562:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6565:1:53","nodeType":"YulLiteral","src":"6565:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6555:6:53","nodeType":"YulIdentifier","src":"6555:6:53"},"nativeSrc":"6555:12:53","nodeType":"YulFunctionCall","src":"6555:12:53"},"nativeSrc":"6555:12:53","nodeType":"YulExpressionStatement","src":"6555:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6456:117:53","nodeType":"YulFunctionDefinition","src":"6456:117:53"},{"body":{"nativeSrc":"6698:608:53","nodeType":"YulBlock","src":"6698:608:53","statements":[{"nativeSrc":"6708:90:53","nodeType":"YulAssignment","src":"6708:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6790:6:53","nodeType":"YulIdentifier","src":"6790:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6733:56:53","nodeType":"YulIdentifier","src":"6733:56:53"},"nativeSrc":"6733:64:53","nodeType":"YulFunctionCall","src":"6733:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"6717:15:53","nodeType":"YulIdentifier","src":"6717:15:53"},"nativeSrc":"6717:81:53","nodeType":"YulFunctionCall","src":"6717:81:53"},"variableNames":[{"name":"array","nativeSrc":"6708:5:53","nodeType":"YulIdentifier","src":"6708:5:53"}]},{"nativeSrc":"6807:16:53","nodeType":"YulVariableDeclaration","src":"6807:16:53","value":{"name":"array","nativeSrc":"6818:5:53","nodeType":"YulIdentifier","src":"6818:5:53"},"variables":[{"name":"dst","nativeSrc":"6811:3:53","nodeType":"YulTypedName","src":"6811:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6840:5:53","nodeType":"YulIdentifier","src":"6840:5:53"},{"name":"length","nativeSrc":"6847:6:53","nodeType":"YulIdentifier","src":"6847:6:53"}],"functionName":{"name":"mstore","nativeSrc":"6833:6:53","nodeType":"YulIdentifier","src":"6833:6:53"},"nativeSrc":"6833:21:53","nodeType":"YulFunctionCall","src":"6833:21:53"},"nativeSrc":"6833:21:53","nodeType":"YulExpressionStatement","src":"6833:21:53"},{"nativeSrc":"6863:23:53","nodeType":"YulAssignment","src":"6863:23:53","value":{"arguments":[{"name":"array","nativeSrc":"6874:5:53","nodeType":"YulIdentifier","src":"6874:5:53"},{"kind":"number","nativeSrc":"6881:4:53","nodeType":"YulLiteral","src":"6881:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6870:3:53","nodeType":"YulIdentifier","src":"6870:3:53"},"nativeSrc":"6870:16:53","nodeType":"YulFunctionCall","src":"6870:16:53"},"variableNames":[{"name":"dst","nativeSrc":"6863:3:53","nodeType":"YulIdentifier","src":"6863:3:53"}]},{"nativeSrc":"6896:44:53","nodeType":"YulVariableDeclaration","src":"6896:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"6914:6:53","nodeType":"YulIdentifier","src":"6914:6:53"},{"arguments":[{"name":"length","nativeSrc":"6926:6:53","nodeType":"YulIdentifier","src":"6926:6:53"},{"kind":"number","nativeSrc":"6934:4:53","nodeType":"YulLiteral","src":"6934:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6922:3:53","nodeType":"YulIdentifier","src":"6922:3:53"},"nativeSrc":"6922:17:53","nodeType":"YulFunctionCall","src":"6922:17:53"}],"functionName":{"name":"add","nativeSrc":"6910:3:53","nodeType":"YulIdentifier","src":"6910:3:53"},"nativeSrc":"6910:30:53","nodeType":"YulFunctionCall","src":"6910:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"6900:6:53","nodeType":"YulTypedName","src":"6900:6:53","type":""}]},{"body":{"nativeSrc":"6968:103:53","nodeType":"YulBlock","src":"6968:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6982:77:53","nodeType":"YulIdentifier","src":"6982:77:53"},"nativeSrc":"6982:79:53","nodeType":"YulFunctionCall","src":"6982:79:53"},"nativeSrc":"6982:79:53","nodeType":"YulExpressionStatement","src":"6982:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"6955:6:53","nodeType":"YulIdentifier","src":"6955:6:53"},{"name":"end","nativeSrc":"6963:3:53","nodeType":"YulIdentifier","src":"6963:3:53"}],"functionName":{"name":"gt","nativeSrc":"6952:2:53","nodeType":"YulIdentifier","src":"6952:2:53"},"nativeSrc":"6952:15:53","nodeType":"YulFunctionCall","src":"6952:15:53"},"nativeSrc":"6949:122:53","nodeType":"YulIf","src":"6949:122:53"},{"body":{"nativeSrc":"7156:144:53","nodeType":"YulBlock","src":"7156:144:53","statements":[{"nativeSrc":"7171:21:53","nodeType":"YulVariableDeclaration","src":"7171:21:53","value":{"name":"src","nativeSrc":"7189:3:53","nodeType":"YulIdentifier","src":"7189:3:53"},"variables":[{"name":"elementPos","nativeSrc":"7175:10:53","nodeType":"YulTypedName","src":"7175:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"7213:3:53","nodeType":"YulIdentifier","src":"7213:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"7239:10:53","nodeType":"YulIdentifier","src":"7239:10:53"},{"name":"end","nativeSrc":"7251:3:53","nodeType":"YulIdentifier","src":"7251:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7218:20:53","nodeType":"YulIdentifier","src":"7218:20:53"},"nativeSrc":"7218:37:53","nodeType":"YulFunctionCall","src":"7218:37:53"}],"functionName":{"name":"mstore","nativeSrc":"7206:6:53","nodeType":"YulIdentifier","src":"7206:6:53"},"nativeSrc":"7206:50:53","nodeType":"YulFunctionCall","src":"7206:50:53"},"nativeSrc":"7206:50:53","nodeType":"YulExpressionStatement","src":"7206:50:53"},{"nativeSrc":"7269:21:53","nodeType":"YulAssignment","src":"7269:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"7280:3:53","nodeType":"YulIdentifier","src":"7280:3:53"},{"kind":"number","nativeSrc":"7285:4:53","nodeType":"YulLiteral","src":"7285:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7276:3:53","nodeType":"YulIdentifier","src":"7276:3:53"},"nativeSrc":"7276:14:53","nodeType":"YulFunctionCall","src":"7276:14:53"},"variableNames":[{"name":"dst","nativeSrc":"7269:3:53","nodeType":"YulIdentifier","src":"7269:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"7109:3:53","nodeType":"YulIdentifier","src":"7109:3:53"},{"name":"srcEnd","nativeSrc":"7114:6:53","nodeType":"YulIdentifier","src":"7114:6:53"}],"functionName":{"name":"lt","nativeSrc":"7106:2:53","nodeType":"YulIdentifier","src":"7106:2:53"},"nativeSrc":"7106:15:53","nodeType":"YulFunctionCall","src":"7106:15:53"},"nativeSrc":"7080:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"7122:25:53","nodeType":"YulBlock","src":"7122:25:53","statements":[{"nativeSrc":"7124:21:53","nodeType":"YulAssignment","src":"7124:21:53","value":{"arguments":[{"name":"src","nativeSrc":"7135:3:53","nodeType":"YulIdentifier","src":"7135:3:53"},{"kind":"number","nativeSrc":"7140:4:53","nodeType":"YulLiteral","src":"7140:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7131:3:53","nodeType":"YulIdentifier","src":"7131:3:53"},"nativeSrc":"7131:14:53","nodeType":"YulFunctionCall","src":"7131:14:53"},"variableNames":[{"name":"src","nativeSrc":"7124:3:53","nodeType":"YulIdentifier","src":"7124:3:53"}]}]},"pre":{"nativeSrc":"7084:21:53","nodeType":"YulBlock","src":"7084:21:53","statements":[{"nativeSrc":"7086:17:53","nodeType":"YulVariableDeclaration","src":"7086:17:53","value":{"name":"offset","nativeSrc":"7097:6:53","nodeType":"YulIdentifier","src":"7097:6:53"},"variables":[{"name":"src","nativeSrc":"7090:3:53","nodeType":"YulTypedName","src":"7090:3:53","type":""}]}]},"src":"7080:220:53"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6596:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6668:6:53","nodeType":"YulTypedName","src":"6668:6:53","type":""},{"name":"length","nativeSrc":"6676:6:53","nodeType":"YulTypedName","src":"6676:6:53","type":""},{"name":"end","nativeSrc":"6684:3:53","nodeType":"YulTypedName","src":"6684:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6692:5:53","nodeType":"YulTypedName","src":"6692:5:53","type":""}],"src":"6596:710:53"},{"body":{"nativeSrc":"7406:293:53","nodeType":"YulBlock","src":"7406:293:53","statements":[{"body":{"nativeSrc":"7455:83:53","nodeType":"YulBlock","src":"7455:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7457:77:53","nodeType":"YulIdentifier","src":"7457:77:53"},"nativeSrc":"7457:79:53","nodeType":"YulFunctionCall","src":"7457:79:53"},"nativeSrc":"7457:79:53","nodeType":"YulExpressionStatement","src":"7457:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7434:6:53","nodeType":"YulIdentifier","src":"7434:6:53"},{"kind":"number","nativeSrc":"7442:4:53","nodeType":"YulLiteral","src":"7442:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7430:3:53","nodeType":"YulIdentifier","src":"7430:3:53"},"nativeSrc":"7430:17:53","nodeType":"YulFunctionCall","src":"7430:17:53"},{"name":"end","nativeSrc":"7449:3:53","nodeType":"YulIdentifier","src":"7449:3:53"}],"functionName":{"name":"slt","nativeSrc":"7426:3:53","nodeType":"YulIdentifier","src":"7426:3:53"},"nativeSrc":"7426:27:53","nodeType":"YulFunctionCall","src":"7426:27:53"}],"functionName":{"name":"iszero","nativeSrc":"7419:6:53","nodeType":"YulIdentifier","src":"7419:6:53"},"nativeSrc":"7419:35:53","nodeType":"YulFunctionCall","src":"7419:35:53"},"nativeSrc":"7416:122:53","nodeType":"YulIf","src":"7416:122:53"},{"nativeSrc":"7547:34:53","nodeType":"YulVariableDeclaration","src":"7547:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"7574:6:53","nodeType":"YulIdentifier","src":"7574:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7561:12:53","nodeType":"YulIdentifier","src":"7561:12:53"},"nativeSrc":"7561:20:53","nodeType":"YulFunctionCall","src":"7561:20:53"},"variables":[{"name":"length","nativeSrc":"7551:6:53","nodeType":"YulTypedName","src":"7551:6:53","type":""}]},{"nativeSrc":"7590:103:53","nodeType":"YulAssignment","src":"7590:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7666:6:53","nodeType":"YulIdentifier","src":"7666:6:53"},{"kind":"number","nativeSrc":"7674:4:53","nodeType":"YulLiteral","src":"7674:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7662:3:53","nodeType":"YulIdentifier","src":"7662:3:53"},"nativeSrc":"7662:17:53","nodeType":"YulFunctionCall","src":"7662:17:53"},{"name":"length","nativeSrc":"7681:6:53","nodeType":"YulIdentifier","src":"7681:6:53"},{"name":"end","nativeSrc":"7689:3:53","nodeType":"YulIdentifier","src":"7689:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"7599:62:53","nodeType":"YulIdentifier","src":"7599:62:53"},"nativeSrc":"7599:94:53","nodeType":"YulFunctionCall","src":"7599:94:53"},"variableNames":[{"name":"array","nativeSrc":"7590:5:53","nodeType":"YulIdentifier","src":"7590:5:53"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"7329:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7384:6:53","nodeType":"YulTypedName","src":"7384:6:53","type":""},{"name":"end","nativeSrc":"7392:3:53","nodeType":"YulTypedName","src":"7392:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7400:5:53","nodeType":"YulTypedName","src":"7400:5:53","type":""}],"src":"7329:370:53"},{"body":{"nativeSrc":"7794:28:53","nodeType":"YulBlock","src":"7794:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7811:1:53","nodeType":"YulLiteral","src":"7811:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7814:1:53","nodeType":"YulLiteral","src":"7814:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7804:6:53","nodeType":"YulIdentifier","src":"7804:6:53"},"nativeSrc":"7804:12:53","nodeType":"YulFunctionCall","src":"7804:12:53"},"nativeSrc":"7804:12:53","nodeType":"YulExpressionStatement","src":"7804:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"7705:117:53","nodeType":"YulFunctionDefinition","src":"7705:117:53"},{"body":{"nativeSrc":"7894:241:53","nodeType":"YulBlock","src":"7894:241:53","statements":[{"body":{"nativeSrc":"7999:22:53","nodeType":"YulBlock","src":"7999:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8001:16:53","nodeType":"YulIdentifier","src":"8001:16:53"},"nativeSrc":"8001:18:53","nodeType":"YulFunctionCall","src":"8001:18:53"},"nativeSrc":"8001:18:53","nodeType":"YulExpressionStatement","src":"8001:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7971:6:53","nodeType":"YulIdentifier","src":"7971:6:53"},{"kind":"number","nativeSrc":"7979:18:53","nodeType":"YulLiteral","src":"7979:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7968:2:53","nodeType":"YulIdentifier","src":"7968:2:53"},"nativeSrc":"7968:30:53","nodeType":"YulFunctionCall","src":"7968:30:53"},"nativeSrc":"7965:56:53","nodeType":"YulIf","src":"7965:56:53"},{"nativeSrc":"8031:37:53","nodeType":"YulAssignment","src":"8031:37:53","value":{"arguments":[{"name":"length","nativeSrc":"8061:6:53","nodeType":"YulIdentifier","src":"8061:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8039:21:53","nodeType":"YulIdentifier","src":"8039:21:53"},"nativeSrc":"8039:29:53","nodeType":"YulFunctionCall","src":"8039:29:53"},"variableNames":[{"name":"size","nativeSrc":"8031:4:53","nodeType":"YulIdentifier","src":"8031:4:53"}]},{"nativeSrc":"8105:23:53","nodeType":"YulAssignment","src":"8105:23:53","value":{"arguments":[{"name":"size","nativeSrc":"8117:4:53","nodeType":"YulIdentifier","src":"8117:4:53"},{"kind":"number","nativeSrc":"8123:4:53","nodeType":"YulLiteral","src":"8123:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8113:3:53","nodeType":"YulIdentifier","src":"8113:3:53"},"nativeSrc":"8113:15:53","nodeType":"YulFunctionCall","src":"8113:15:53"},"variableNames":[{"name":"size","nativeSrc":"8105:4:53","nodeType":"YulIdentifier","src":"8105:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"7828:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"7878:6:53","nodeType":"YulTypedName","src":"7878:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"7889:4:53","nodeType":"YulTypedName","src":"7889:4:53","type":""}],"src":"7828:307:53"},{"body":{"nativeSrc":"8205:84:53","nodeType":"YulBlock","src":"8205:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"8229:3:53","nodeType":"YulIdentifier","src":"8229:3:53"},{"name":"src","nativeSrc":"8234:3:53","nodeType":"YulIdentifier","src":"8234:3:53"},{"name":"length","nativeSrc":"8239:6:53","nodeType":"YulIdentifier","src":"8239:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"8216:12:53","nodeType":"YulIdentifier","src":"8216:12:53"},"nativeSrc":"8216:30:53","nodeType":"YulFunctionCall","src":"8216:30:53"},"nativeSrc":"8216:30:53","nodeType":"YulExpressionStatement","src":"8216:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8266:3:53","nodeType":"YulIdentifier","src":"8266:3:53"},{"name":"length","nativeSrc":"8271:6:53","nodeType":"YulIdentifier","src":"8271:6:53"}],"functionName":{"name":"add","nativeSrc":"8262:3:53","nodeType":"YulIdentifier","src":"8262:3:53"},"nativeSrc":"8262:16:53","nodeType":"YulFunctionCall","src":"8262:16:53"},{"kind":"number","nativeSrc":"8280:1:53","nodeType":"YulLiteral","src":"8280:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8255:6:53","nodeType":"YulIdentifier","src":"8255:6:53"},"nativeSrc":"8255:27:53","nodeType":"YulFunctionCall","src":"8255:27:53"},"nativeSrc":"8255:27:53","nodeType":"YulExpressionStatement","src":"8255:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"8141:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8187:3:53","nodeType":"YulTypedName","src":"8187:3:53","type":""},{"name":"dst","nativeSrc":"8192:3:53","nodeType":"YulTypedName","src":"8192:3:53","type":""},{"name":"length","nativeSrc":"8197:6:53","nodeType":"YulTypedName","src":"8197:6:53","type":""}],"src":"8141:148:53"},{"body":{"nativeSrc":"8378:340:53","nodeType":"YulBlock","src":"8378:340:53","statements":[{"nativeSrc":"8388:74:53","nodeType":"YulAssignment","src":"8388:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"8454:6:53","nodeType":"YulIdentifier","src":"8454:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"8413:40:53","nodeType":"YulIdentifier","src":"8413:40:53"},"nativeSrc":"8413:48:53","nodeType":"YulFunctionCall","src":"8413:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"8397:15:53","nodeType":"YulIdentifier","src":"8397:15:53"},"nativeSrc":"8397:65:53","nodeType":"YulFunctionCall","src":"8397:65:53"},"variableNames":[{"name":"array","nativeSrc":"8388:5:53","nodeType":"YulIdentifier","src":"8388:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"8478:5:53","nodeType":"YulIdentifier","src":"8478:5:53"},{"name":"length","nativeSrc":"8485:6:53","nodeType":"YulIdentifier","src":"8485:6:53"}],"functionName":{"name":"mstore","nativeSrc":"8471:6:53","nodeType":"YulIdentifier","src":"8471:6:53"},"nativeSrc":"8471:21:53","nodeType":"YulFunctionCall","src":"8471:21:53"},"nativeSrc":"8471:21:53","nodeType":"YulExpressionStatement","src":"8471:21:53"},{"nativeSrc":"8501:27:53","nodeType":"YulVariableDeclaration","src":"8501:27:53","value":{"arguments":[{"name":"array","nativeSrc":"8516:5:53","nodeType":"YulIdentifier","src":"8516:5:53"},{"kind":"number","nativeSrc":"8523:4:53","nodeType":"YulLiteral","src":"8523:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8512:3:53","nodeType":"YulIdentifier","src":"8512:3:53"},"nativeSrc":"8512:16:53","nodeType":"YulFunctionCall","src":"8512:16:53"},"variables":[{"name":"dst","nativeSrc":"8505:3:53","nodeType":"YulTypedName","src":"8505:3:53","type":""}]},{"body":{"nativeSrc":"8566:83:53","nodeType":"YulBlock","src":"8566:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"8568:77:53","nodeType":"YulIdentifier","src":"8568:77:53"},"nativeSrc":"8568:79:53","nodeType":"YulFunctionCall","src":"8568:79:53"},"nativeSrc":"8568:79:53","nodeType":"YulExpressionStatement","src":"8568:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8547:3:53","nodeType":"YulIdentifier","src":"8547:3:53"},{"name":"length","nativeSrc":"8552:6:53","nodeType":"YulIdentifier","src":"8552:6:53"}],"functionName":{"name":"add","nativeSrc":"8543:3:53","nodeType":"YulIdentifier","src":"8543:3:53"},"nativeSrc":"8543:16:53","nodeType":"YulFunctionCall","src":"8543:16:53"},{"name":"end","nativeSrc":"8561:3:53","nodeType":"YulIdentifier","src":"8561:3:53"}],"functionName":{"name":"gt","nativeSrc":"8540:2:53","nodeType":"YulIdentifier","src":"8540:2:53"},"nativeSrc":"8540:25:53","nodeType":"YulFunctionCall","src":"8540:25:53"},"nativeSrc":"8537:112:53","nodeType":"YulIf","src":"8537:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"8695:3:53","nodeType":"YulIdentifier","src":"8695:3:53"},{"name":"dst","nativeSrc":"8700:3:53","nodeType":"YulIdentifier","src":"8700:3:53"},{"name":"length","nativeSrc":"8705:6:53","nodeType":"YulIdentifier","src":"8705:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"8658:36:53","nodeType":"YulIdentifier","src":"8658:36:53"},"nativeSrc":"8658:54:53","nodeType":"YulFunctionCall","src":"8658:54:53"},"nativeSrc":"8658:54:53","nodeType":"YulExpressionStatement","src":"8658:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"8295:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8351:3:53","nodeType":"YulTypedName","src":"8351:3:53","type":""},{"name":"length","nativeSrc":"8356:6:53","nodeType":"YulTypedName","src":"8356:6:53","type":""},{"name":"end","nativeSrc":"8364:3:53","nodeType":"YulTypedName","src":"8364:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8372:5:53","nodeType":"YulTypedName","src":"8372:5:53","type":""}],"src":"8295:423:53"},{"body":{"nativeSrc":"8798:277:53","nodeType":"YulBlock","src":"8798:277:53","statements":[{"body":{"nativeSrc":"8847:83:53","nodeType":"YulBlock","src":"8847:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"8849:77:53","nodeType":"YulIdentifier","src":"8849:77:53"},"nativeSrc":"8849:79:53","nodeType":"YulFunctionCall","src":"8849:79:53"},"nativeSrc":"8849:79:53","nodeType":"YulExpressionStatement","src":"8849:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8826:6:53","nodeType":"YulIdentifier","src":"8826:6:53"},{"kind":"number","nativeSrc":"8834:4:53","nodeType":"YulLiteral","src":"8834:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"8822:3:53","nodeType":"YulIdentifier","src":"8822:3:53"},"nativeSrc":"8822:17:53","nodeType":"YulFunctionCall","src":"8822:17:53"},{"name":"end","nativeSrc":"8841:3:53","nodeType":"YulIdentifier","src":"8841:3:53"}],"functionName":{"name":"slt","nativeSrc":"8818:3:53","nodeType":"YulIdentifier","src":"8818:3:53"},"nativeSrc":"8818:27:53","nodeType":"YulFunctionCall","src":"8818:27:53"}],"functionName":{"name":"iszero","nativeSrc":"8811:6:53","nodeType":"YulIdentifier","src":"8811:6:53"},"nativeSrc":"8811:35:53","nodeType":"YulFunctionCall","src":"8811:35:53"},"nativeSrc":"8808:122:53","nodeType":"YulIf","src":"8808:122:53"},{"nativeSrc":"8939:34:53","nodeType":"YulVariableDeclaration","src":"8939:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"8966:6:53","nodeType":"YulIdentifier","src":"8966:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8953:12:53","nodeType":"YulIdentifier","src":"8953:12:53"},"nativeSrc":"8953:20:53","nodeType":"YulFunctionCall","src":"8953:20:53"},"variables":[{"name":"length","nativeSrc":"8943:6:53","nodeType":"YulTypedName","src":"8943:6:53","type":""}]},{"nativeSrc":"8982:87:53","nodeType":"YulAssignment","src":"8982:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9042:6:53","nodeType":"YulIdentifier","src":"9042:6:53"},{"kind":"number","nativeSrc":"9050:4:53","nodeType":"YulLiteral","src":"9050:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9038:3:53","nodeType":"YulIdentifier","src":"9038:3:53"},"nativeSrc":"9038:17:53","nodeType":"YulFunctionCall","src":"9038:17:53"},{"name":"length","nativeSrc":"9057:6:53","nodeType":"YulIdentifier","src":"9057:6:53"},{"name":"end","nativeSrc":"9065:3:53","nodeType":"YulIdentifier","src":"9065:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"8991:46:53","nodeType":"YulIdentifier","src":"8991:46:53"},"nativeSrc":"8991:78:53","nodeType":"YulFunctionCall","src":"8991:78:53"},"variableNames":[{"name":"array","nativeSrc":"8982:5:53","nodeType":"YulIdentifier","src":"8982:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"8737:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8776:6:53","nodeType":"YulTypedName","src":"8776:6:53","type":""},{"name":"end","nativeSrc":"8784:3:53","nodeType":"YulTypedName","src":"8784:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8792:5:53","nodeType":"YulTypedName","src":"8792:5:53","type":""}],"src":"8737:338:53"},{"body":{"nativeSrc":"9274:1316:53","nodeType":"YulBlock","src":"9274:1316:53","statements":[{"body":{"nativeSrc":"9321:83:53","nodeType":"YulBlock","src":"9321:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9323:77:53","nodeType":"YulIdentifier","src":"9323:77:53"},"nativeSrc":"9323:79:53","nodeType":"YulFunctionCall","src":"9323:79:53"},"nativeSrc":"9323:79:53","nodeType":"YulExpressionStatement","src":"9323:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9295:7:53","nodeType":"YulIdentifier","src":"9295:7:53"},{"name":"headStart","nativeSrc":"9304:9:53","nodeType":"YulIdentifier","src":"9304:9:53"}],"functionName":{"name":"sub","nativeSrc":"9291:3:53","nodeType":"YulIdentifier","src":"9291:3:53"},"nativeSrc":"9291:23:53","nodeType":"YulFunctionCall","src":"9291:23:53"},{"kind":"number","nativeSrc":"9316:3:53","nodeType":"YulLiteral","src":"9316:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"9287:3:53","nodeType":"YulIdentifier","src":"9287:3:53"},"nativeSrc":"9287:33:53","nodeType":"YulFunctionCall","src":"9287:33:53"},"nativeSrc":"9284:120:53","nodeType":"YulIf","src":"9284:120:53"},{"nativeSrc":"9414:117:53","nodeType":"YulBlock","src":"9414:117:53","statements":[{"nativeSrc":"9429:15:53","nodeType":"YulVariableDeclaration","src":"9429:15:53","value":{"kind":"number","nativeSrc":"9443:1:53","nodeType":"YulLiteral","src":"9443:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9433:6:53","nodeType":"YulTypedName","src":"9433:6:53","type":""}]},{"nativeSrc":"9458:63:53","nodeType":"YulAssignment","src":"9458:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9493:9:53","nodeType":"YulIdentifier","src":"9493:9:53"},{"name":"offset","nativeSrc":"9504:6:53","nodeType":"YulIdentifier","src":"9504:6:53"}],"functionName":{"name":"add","nativeSrc":"9489:3:53","nodeType":"YulIdentifier","src":"9489:3:53"},"nativeSrc":"9489:22:53","nodeType":"YulFunctionCall","src":"9489:22:53"},{"name":"dataEnd","nativeSrc":"9513:7:53","nodeType":"YulIdentifier","src":"9513:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9468:20:53","nodeType":"YulIdentifier","src":"9468:20:53"},"nativeSrc":"9468:53:53","nodeType":"YulFunctionCall","src":"9468:53:53"},"variableNames":[{"name":"value0","nativeSrc":"9458:6:53","nodeType":"YulIdentifier","src":"9458:6:53"}]}]},{"nativeSrc":"9541:118:53","nodeType":"YulBlock","src":"9541:118:53","statements":[{"nativeSrc":"9556:16:53","nodeType":"YulVariableDeclaration","src":"9556:16:53","value":{"kind":"number","nativeSrc":"9570:2:53","nodeType":"YulLiteral","src":"9570:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9560:6:53","nodeType":"YulTypedName","src":"9560:6:53","type":""}]},{"nativeSrc":"9586:63:53","nodeType":"YulAssignment","src":"9586:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9621:9:53","nodeType":"YulIdentifier","src":"9621:9:53"},{"name":"offset","nativeSrc":"9632:6:53","nodeType":"YulIdentifier","src":"9632:6:53"}],"functionName":{"name":"add","nativeSrc":"9617:3:53","nodeType":"YulIdentifier","src":"9617:3:53"},"nativeSrc":"9617:22:53","nodeType":"YulFunctionCall","src":"9617:22:53"},{"name":"dataEnd","nativeSrc":"9641:7:53","nodeType":"YulIdentifier","src":"9641:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9596:20:53","nodeType":"YulIdentifier","src":"9596:20:53"},"nativeSrc":"9596:53:53","nodeType":"YulFunctionCall","src":"9596:53:53"},"variableNames":[{"name":"value1","nativeSrc":"9586:6:53","nodeType":"YulIdentifier","src":"9586:6:53"}]}]},{"nativeSrc":"9669:303:53","nodeType":"YulBlock","src":"9669:303:53","statements":[{"nativeSrc":"9684:46:53","nodeType":"YulVariableDeclaration","src":"9684:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9715:9:53","nodeType":"YulIdentifier","src":"9715:9:53"},{"kind":"number","nativeSrc":"9726:2:53","nodeType":"YulLiteral","src":"9726:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9711:3:53","nodeType":"YulIdentifier","src":"9711:3:53"},"nativeSrc":"9711:18:53","nodeType":"YulFunctionCall","src":"9711:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9698:12:53","nodeType":"YulIdentifier","src":"9698:12:53"},"nativeSrc":"9698:32:53","nodeType":"YulFunctionCall","src":"9698:32:53"},"variables":[{"name":"offset","nativeSrc":"9688:6:53","nodeType":"YulTypedName","src":"9688:6:53","type":""}]},{"body":{"nativeSrc":"9777:83:53","nodeType":"YulBlock","src":"9777:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9779:77:53","nodeType":"YulIdentifier","src":"9779:77:53"},"nativeSrc":"9779:79:53","nodeType":"YulFunctionCall","src":"9779:79:53"},"nativeSrc":"9779:79:53","nodeType":"YulExpressionStatement","src":"9779:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9749:6:53","nodeType":"YulIdentifier","src":"9749:6:53"},{"kind":"number","nativeSrc":"9757:18:53","nodeType":"YulLiteral","src":"9757:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9746:2:53","nodeType":"YulIdentifier","src":"9746:2:53"},"nativeSrc":"9746:30:53","nodeType":"YulFunctionCall","src":"9746:30:53"},"nativeSrc":"9743:117:53","nodeType":"YulIf","src":"9743:117:53"},{"nativeSrc":"9874:88:53","nodeType":"YulAssignment","src":"9874:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9934:9:53","nodeType":"YulIdentifier","src":"9934:9:53"},{"name":"offset","nativeSrc":"9945:6:53","nodeType":"YulIdentifier","src":"9945:6:53"}],"functionName":{"name":"add","nativeSrc":"9930:3:53","nodeType":"YulIdentifier","src":"9930:3:53"},"nativeSrc":"9930:22:53","nodeType":"YulFunctionCall","src":"9930:22:53"},{"name":"dataEnd","nativeSrc":"9954:7:53","nodeType":"YulIdentifier","src":"9954:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"9884:45:53","nodeType":"YulIdentifier","src":"9884:45:53"},"nativeSrc":"9884:78:53","nodeType":"YulFunctionCall","src":"9884:78:53"},"variableNames":[{"name":"value2","nativeSrc":"9874:6:53","nodeType":"YulIdentifier","src":"9874:6:53"}]}]},{"nativeSrc":"9982:303:53","nodeType":"YulBlock","src":"9982:303:53","statements":[{"nativeSrc":"9997:46:53","nodeType":"YulVariableDeclaration","src":"9997:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10028:9:53","nodeType":"YulIdentifier","src":"10028:9:53"},{"kind":"number","nativeSrc":"10039:2:53","nodeType":"YulLiteral","src":"10039:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10024:3:53","nodeType":"YulIdentifier","src":"10024:3:53"},"nativeSrc":"10024:18:53","nodeType":"YulFunctionCall","src":"10024:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"10011:12:53","nodeType":"YulIdentifier","src":"10011:12:53"},"nativeSrc":"10011:32:53","nodeType":"YulFunctionCall","src":"10011:32:53"},"variables":[{"name":"offset","nativeSrc":"10001:6:53","nodeType":"YulTypedName","src":"10001:6:53","type":""}]},{"body":{"nativeSrc":"10090:83:53","nodeType":"YulBlock","src":"10090:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10092:77:53","nodeType":"YulIdentifier","src":"10092:77:53"},"nativeSrc":"10092:79:53","nodeType":"YulFunctionCall","src":"10092:79:53"},"nativeSrc":"10092:79:53","nodeType":"YulExpressionStatement","src":"10092:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10062:6:53","nodeType":"YulIdentifier","src":"10062:6:53"},{"kind":"number","nativeSrc":"10070:18:53","nodeType":"YulLiteral","src":"10070:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10059:2:53","nodeType":"YulIdentifier","src":"10059:2:53"},"nativeSrc":"10059:30:53","nodeType":"YulFunctionCall","src":"10059:30:53"},"nativeSrc":"10056:117:53","nodeType":"YulIf","src":"10056:117:53"},{"nativeSrc":"10187:88:53","nodeType":"YulAssignment","src":"10187:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10247:9:53","nodeType":"YulIdentifier","src":"10247:9:53"},{"name":"offset","nativeSrc":"10258:6:53","nodeType":"YulIdentifier","src":"10258:6:53"}],"functionName":{"name":"add","nativeSrc":"10243:3:53","nodeType":"YulIdentifier","src":"10243:3:53"},"nativeSrc":"10243:22:53","nodeType":"YulFunctionCall","src":"10243:22:53"},{"name":"dataEnd","nativeSrc":"10267:7:53","nodeType":"YulIdentifier","src":"10267:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"10197:45:53","nodeType":"YulIdentifier","src":"10197:45:53"},"nativeSrc":"10197:78:53","nodeType":"YulFunctionCall","src":"10197:78:53"},"variableNames":[{"name":"value3","nativeSrc":"10187:6:53","nodeType":"YulIdentifier","src":"10187:6:53"}]}]},{"nativeSrc":"10295:288:53","nodeType":"YulBlock","src":"10295:288:53","statements":[{"nativeSrc":"10310:47:53","nodeType":"YulVariableDeclaration","src":"10310:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10341:9:53","nodeType":"YulIdentifier","src":"10341:9:53"},{"kind":"number","nativeSrc":"10352:3:53","nodeType":"YulLiteral","src":"10352:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10337:3:53","nodeType":"YulIdentifier","src":"10337:3:53"},"nativeSrc":"10337:19:53","nodeType":"YulFunctionCall","src":"10337:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"10324:12:53","nodeType":"YulIdentifier","src":"10324:12:53"},"nativeSrc":"10324:33:53","nodeType":"YulFunctionCall","src":"10324:33:53"},"variables":[{"name":"offset","nativeSrc":"10314:6:53","nodeType":"YulTypedName","src":"10314:6:53","type":""}]},{"body":{"nativeSrc":"10404:83:53","nodeType":"YulBlock","src":"10404:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10406:77:53","nodeType":"YulIdentifier","src":"10406:77:53"},"nativeSrc":"10406:79:53","nodeType":"YulFunctionCall","src":"10406:79:53"},"nativeSrc":"10406:79:53","nodeType":"YulExpressionStatement","src":"10406:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10376:6:53","nodeType":"YulIdentifier","src":"10376:6:53"},{"kind":"number","nativeSrc":"10384:18:53","nodeType":"YulLiteral","src":"10384:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10373:2:53","nodeType":"YulIdentifier","src":"10373:2:53"},"nativeSrc":"10373:30:53","nodeType":"YulFunctionCall","src":"10373:30:53"},"nativeSrc":"10370:117:53","nodeType":"YulIf","src":"10370:117:53"},{"nativeSrc":"10501:72:53","nodeType":"YulAssignment","src":"10501:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10545:9:53","nodeType":"YulIdentifier","src":"10545:9:53"},{"name":"offset","nativeSrc":"10556:6:53","nodeType":"YulIdentifier","src":"10556:6:53"}],"functionName":{"name":"add","nativeSrc":"10541:3:53","nodeType":"YulIdentifier","src":"10541:3:53"},"nativeSrc":"10541:22:53","nodeType":"YulFunctionCall","src":"10541:22:53"},{"name":"dataEnd","nativeSrc":"10565:7:53","nodeType":"YulIdentifier","src":"10565:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10511:29:53","nodeType":"YulIdentifier","src":"10511:29:53"},"nativeSrc":"10511:62:53","nodeType":"YulFunctionCall","src":"10511:62:53"},"variableNames":[{"name":"value4","nativeSrc":"10501:6:53","nodeType":"YulIdentifier","src":"10501:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nativeSrc":"9081:1509:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9212:9:53","nodeType":"YulTypedName","src":"9212:9:53","type":""},{"name":"dataEnd","nativeSrc":"9223:7:53","nodeType":"YulTypedName","src":"9223:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9235:6:53","nodeType":"YulTypedName","src":"9235:6:53","type":""},{"name":"value1","nativeSrc":"9243:6:53","nodeType":"YulTypedName","src":"9243:6:53","type":""},{"name":"value2","nativeSrc":"9251:6:53","nodeType":"YulTypedName","src":"9251:6:53","type":""},{"name":"value3","nativeSrc":"9259:6:53","nodeType":"YulTypedName","src":"9259:6:53","type":""},{"name":"value4","nativeSrc":"9267:6:53","nodeType":"YulTypedName","src":"9267:6:53","type":""}],"src":"9081:1509:53"},{"body":{"nativeSrc":"10678:229:53","nodeType":"YulBlock","src":"10678:229:53","statements":[{"body":{"nativeSrc":"10783:22:53","nodeType":"YulBlock","src":"10783:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10785:16:53","nodeType":"YulIdentifier","src":"10785:16:53"},"nativeSrc":"10785:18:53","nodeType":"YulFunctionCall","src":"10785:18:53"},"nativeSrc":"10785:18:53","nodeType":"YulExpressionStatement","src":"10785:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10755:6:53","nodeType":"YulIdentifier","src":"10755:6:53"},{"kind":"number","nativeSrc":"10763:18:53","nodeType":"YulLiteral","src":"10763:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10752:2:53","nodeType":"YulIdentifier","src":"10752:2:53"},"nativeSrc":"10752:30:53","nodeType":"YulFunctionCall","src":"10752:30:53"},"nativeSrc":"10749:56:53","nodeType":"YulIf","src":"10749:56:53"},{"nativeSrc":"10815:25:53","nodeType":"YulAssignment","src":"10815:25:53","value":{"arguments":[{"name":"length","nativeSrc":"10827:6:53","nodeType":"YulIdentifier","src":"10827:6:53"},{"kind":"number","nativeSrc":"10835:4:53","nodeType":"YulLiteral","src":"10835:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10823:3:53","nodeType":"YulIdentifier","src":"10823:3:53"},"nativeSrc":"10823:17:53","nodeType":"YulFunctionCall","src":"10823:17:53"},"variableNames":[{"name":"size","nativeSrc":"10815:4:53","nodeType":"YulIdentifier","src":"10815:4:53"}]},{"nativeSrc":"10877:23:53","nodeType":"YulAssignment","src":"10877:23:53","value":{"arguments":[{"name":"size","nativeSrc":"10889:4:53","nodeType":"YulIdentifier","src":"10889:4:53"},{"kind":"number","nativeSrc":"10895:4:53","nodeType":"YulLiteral","src":"10895:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10885:3:53","nodeType":"YulIdentifier","src":"10885:3:53"},"nativeSrc":"10885:15:53","nodeType":"YulFunctionCall","src":"10885:15:53"},"variableNames":[{"name":"size","nativeSrc":"10877:4:53","nodeType":"YulIdentifier","src":"10877:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10596:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10662:6:53","nodeType":"YulTypedName","src":"10662:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10673:4:53","nodeType":"YulTypedName","src":"10673:4:53","type":""}],"src":"10596:311:53"},{"body":{"nativeSrc":"11032:608:53","nodeType":"YulBlock","src":"11032:608:53","statements":[{"nativeSrc":"11042:90:53","nodeType":"YulAssignment","src":"11042:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11124:6:53","nodeType":"YulIdentifier","src":"11124:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11067:56:53","nodeType":"YulIdentifier","src":"11067:56:53"},"nativeSrc":"11067:64:53","nodeType":"YulFunctionCall","src":"11067:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"11051:15:53","nodeType":"YulIdentifier","src":"11051:15:53"},"nativeSrc":"11051:81:53","nodeType":"YulFunctionCall","src":"11051:81:53"},"variableNames":[{"name":"array","nativeSrc":"11042:5:53","nodeType":"YulIdentifier","src":"11042:5:53"}]},{"nativeSrc":"11141:16:53","nodeType":"YulVariableDeclaration","src":"11141:16:53","value":{"name":"array","nativeSrc":"11152:5:53","nodeType":"YulIdentifier","src":"11152:5:53"},"variables":[{"name":"dst","nativeSrc":"11145:3:53","nodeType":"YulTypedName","src":"11145:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11174:5:53","nodeType":"YulIdentifier","src":"11174:5:53"},{"name":"length","nativeSrc":"11181:6:53","nodeType":"YulIdentifier","src":"11181:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11167:6:53","nodeType":"YulIdentifier","src":"11167:6:53"},"nativeSrc":"11167:21:53","nodeType":"YulFunctionCall","src":"11167:21:53"},"nativeSrc":"11167:21:53","nodeType":"YulExpressionStatement","src":"11167:21:53"},{"nativeSrc":"11197:23:53","nodeType":"YulAssignment","src":"11197:23:53","value":{"arguments":[{"name":"array","nativeSrc":"11208:5:53","nodeType":"YulIdentifier","src":"11208:5:53"},{"kind":"number","nativeSrc":"11215:4:53","nodeType":"YulLiteral","src":"11215:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11204:3:53","nodeType":"YulIdentifier","src":"11204:3:53"},"nativeSrc":"11204:16:53","nodeType":"YulFunctionCall","src":"11204:16:53"},"variableNames":[{"name":"dst","nativeSrc":"11197:3:53","nodeType":"YulIdentifier","src":"11197:3:53"}]},{"nativeSrc":"11230:44:53","nodeType":"YulVariableDeclaration","src":"11230:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"11248:6:53","nodeType":"YulIdentifier","src":"11248:6:53"},{"arguments":[{"name":"length","nativeSrc":"11260:6:53","nodeType":"YulIdentifier","src":"11260:6:53"},{"kind":"number","nativeSrc":"11268:4:53","nodeType":"YulLiteral","src":"11268:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11256:3:53","nodeType":"YulIdentifier","src":"11256:3:53"},"nativeSrc":"11256:17:53","nodeType":"YulFunctionCall","src":"11256:17:53"}],"functionName":{"name":"add","nativeSrc":"11244:3:53","nodeType":"YulIdentifier","src":"11244:3:53"},"nativeSrc":"11244:30:53","nodeType":"YulFunctionCall","src":"11244:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"11234:6:53","nodeType":"YulTypedName","src":"11234:6:53","type":""}]},{"body":{"nativeSrc":"11302:103:53","nodeType":"YulBlock","src":"11302:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11316:77:53","nodeType":"YulIdentifier","src":"11316:77:53"},"nativeSrc":"11316:79:53","nodeType":"YulFunctionCall","src":"11316:79:53"},"nativeSrc":"11316:79:53","nodeType":"YulExpressionStatement","src":"11316:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11289:6:53","nodeType":"YulIdentifier","src":"11289:6:53"},{"name":"end","nativeSrc":"11297:3:53","nodeType":"YulIdentifier","src":"11297:3:53"}],"functionName":{"name":"gt","nativeSrc":"11286:2:53","nodeType":"YulIdentifier","src":"11286:2:53"},"nativeSrc":"11286:15:53","nodeType":"YulFunctionCall","src":"11286:15:53"},"nativeSrc":"11283:122:53","nodeType":"YulIf","src":"11283:122:53"},{"body":{"nativeSrc":"11490:144:53","nodeType":"YulBlock","src":"11490:144:53","statements":[{"nativeSrc":"11505:21:53","nodeType":"YulVariableDeclaration","src":"11505:21:53","value":{"name":"src","nativeSrc":"11523:3:53","nodeType":"YulIdentifier","src":"11523:3:53"},"variables":[{"name":"elementPos","nativeSrc":"11509:10:53","nodeType":"YulTypedName","src":"11509:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11547:3:53","nodeType":"YulIdentifier","src":"11547:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"11573:10:53","nodeType":"YulIdentifier","src":"11573:10:53"},{"name":"end","nativeSrc":"11585:3:53","nodeType":"YulIdentifier","src":"11585:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11552:20:53","nodeType":"YulIdentifier","src":"11552:20:53"},"nativeSrc":"11552:37:53","nodeType":"YulFunctionCall","src":"11552:37:53"}],"functionName":{"name":"mstore","nativeSrc":"11540:6:53","nodeType":"YulIdentifier","src":"11540:6:53"},"nativeSrc":"11540:50:53","nodeType":"YulFunctionCall","src":"11540:50:53"},"nativeSrc":"11540:50:53","nodeType":"YulExpressionStatement","src":"11540:50:53"},{"nativeSrc":"11603:21:53","nodeType":"YulAssignment","src":"11603:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"11614:3:53","nodeType":"YulIdentifier","src":"11614:3:53"},{"kind":"number","nativeSrc":"11619:4:53","nodeType":"YulLiteral","src":"11619:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11610:3:53","nodeType":"YulIdentifier","src":"11610:3:53"},"nativeSrc":"11610:14:53","nodeType":"YulFunctionCall","src":"11610:14:53"},"variableNames":[{"name":"dst","nativeSrc":"11603:3:53","nodeType":"YulIdentifier","src":"11603:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11443:3:53","nodeType":"YulIdentifier","src":"11443:3:53"},{"name":"srcEnd","nativeSrc":"11448:6:53","nodeType":"YulIdentifier","src":"11448:6:53"}],"functionName":{"name":"lt","nativeSrc":"11440:2:53","nodeType":"YulIdentifier","src":"11440:2:53"},"nativeSrc":"11440:15:53","nodeType":"YulFunctionCall","src":"11440:15:53"},"nativeSrc":"11414:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"11456:25:53","nodeType":"YulBlock","src":"11456:25:53","statements":[{"nativeSrc":"11458:21:53","nodeType":"YulAssignment","src":"11458:21:53","value":{"arguments":[{"name":"src","nativeSrc":"11469:3:53","nodeType":"YulIdentifier","src":"11469:3:53"},{"kind":"number","nativeSrc":"11474:4:53","nodeType":"YulLiteral","src":"11474:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11465:3:53","nodeType":"YulIdentifier","src":"11465:3:53"},"nativeSrc":"11465:14:53","nodeType":"YulFunctionCall","src":"11465:14:53"},"variableNames":[{"name":"src","nativeSrc":"11458:3:53","nodeType":"YulIdentifier","src":"11458:3:53"}]}]},"pre":{"nativeSrc":"11418:21:53","nodeType":"YulBlock","src":"11418:21:53","statements":[{"nativeSrc":"11420:17:53","nodeType":"YulVariableDeclaration","src":"11420:17:53","value":{"name":"offset","nativeSrc":"11431:6:53","nodeType":"YulIdentifier","src":"11431:6:53"},"variables":[{"name":"src","nativeSrc":"11424:3:53","nodeType":"YulTypedName","src":"11424:3:53","type":""}]}]},"src":"11414:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10930:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11002:6:53","nodeType":"YulTypedName","src":"11002:6:53","type":""},{"name":"length","nativeSrc":"11010:6:53","nodeType":"YulTypedName","src":"11010:6:53","type":""},{"name":"end","nativeSrc":"11018:3:53","nodeType":"YulTypedName","src":"11018:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11026:5:53","nodeType":"YulTypedName","src":"11026:5:53","type":""}],"src":"10930:710:53"},{"body":{"nativeSrc":"11740:293:53","nodeType":"YulBlock","src":"11740:293:53","statements":[{"body":{"nativeSrc":"11789:83:53","nodeType":"YulBlock","src":"11789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11791:77:53","nodeType":"YulIdentifier","src":"11791:77:53"},"nativeSrc":"11791:79:53","nodeType":"YulFunctionCall","src":"11791:79:53"},"nativeSrc":"11791:79:53","nodeType":"YulExpressionStatement","src":"11791:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11768:6:53","nodeType":"YulIdentifier","src":"11768:6:53"},{"kind":"number","nativeSrc":"11776:4:53","nodeType":"YulLiteral","src":"11776:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11764:3:53","nodeType":"YulIdentifier","src":"11764:3:53"},"nativeSrc":"11764:17:53","nodeType":"YulFunctionCall","src":"11764:17:53"},{"name":"end","nativeSrc":"11783:3:53","nodeType":"YulIdentifier","src":"11783:3:53"}],"functionName":{"name":"slt","nativeSrc":"11760:3:53","nodeType":"YulIdentifier","src":"11760:3:53"},"nativeSrc":"11760:27:53","nodeType":"YulFunctionCall","src":"11760:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11753:6:53","nodeType":"YulIdentifier","src":"11753:6:53"},"nativeSrc":"11753:35:53","nodeType":"YulFunctionCall","src":"11753:35:53"},"nativeSrc":"11750:122:53","nodeType":"YulIf","src":"11750:122:53"},{"nativeSrc":"11881:34:53","nodeType":"YulVariableDeclaration","src":"11881:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"11908:6:53","nodeType":"YulIdentifier","src":"11908:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"11895:12:53","nodeType":"YulIdentifier","src":"11895:12:53"},"nativeSrc":"11895:20:53","nodeType":"YulFunctionCall","src":"11895:20:53"},"variables":[{"name":"length","nativeSrc":"11885:6:53","nodeType":"YulTypedName","src":"11885:6:53","type":""}]},{"nativeSrc":"11924:103:53","nodeType":"YulAssignment","src":"11924:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12000:6:53","nodeType":"YulIdentifier","src":"12000:6:53"},{"kind":"number","nativeSrc":"12008:4:53","nodeType":"YulLiteral","src":"12008:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11996:3:53","nodeType":"YulIdentifier","src":"11996:3:53"},"nativeSrc":"11996:17:53","nodeType":"YulFunctionCall","src":"11996:17:53"},{"name":"length","nativeSrc":"12015:6:53","nodeType":"YulIdentifier","src":"12015:6:53"},{"name":"end","nativeSrc":"12023:3:53","nodeType":"YulIdentifier","src":"12023:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11933:62:53","nodeType":"YulIdentifier","src":"11933:62:53"},"nativeSrc":"11933:94:53","nodeType":"YulFunctionCall","src":"11933:94:53"},"variableNames":[{"name":"array","nativeSrc":"11924:5:53","nodeType":"YulIdentifier","src":"11924:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11663:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11718:6:53","nodeType":"YulTypedName","src":"11718:6:53","type":""},{"name":"end","nativeSrc":"11726:3:53","nodeType":"YulTypedName","src":"11726:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11734:5:53","nodeType":"YulTypedName","src":"11734:5:53","type":""}],"src":"11663:370:53"},{"body":{"nativeSrc":"12172:761:53","nodeType":"YulBlock","src":"12172:761:53","statements":[{"body":{"nativeSrc":"12218:83:53","nodeType":"YulBlock","src":"12218:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12220:77:53","nodeType":"YulIdentifier","src":"12220:77:53"},"nativeSrc":"12220:79:53","nodeType":"YulFunctionCall","src":"12220:79:53"},"nativeSrc":"12220:79:53","nodeType":"YulExpressionStatement","src":"12220:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12193:7:53","nodeType":"YulIdentifier","src":"12193:7:53"},{"name":"headStart","nativeSrc":"12202:9:53","nodeType":"YulIdentifier","src":"12202:9:53"}],"functionName":{"name":"sub","nativeSrc":"12189:3:53","nodeType":"YulIdentifier","src":"12189:3:53"},"nativeSrc":"12189:23:53","nodeType":"YulFunctionCall","src":"12189:23:53"},{"kind":"number","nativeSrc":"12214:2:53","nodeType":"YulLiteral","src":"12214:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12185:3:53","nodeType":"YulIdentifier","src":"12185:3:53"},"nativeSrc":"12185:32:53","nodeType":"YulFunctionCall","src":"12185:32:53"},"nativeSrc":"12182:119:53","nodeType":"YulIf","src":"12182:119:53"},{"nativeSrc":"12311:302:53","nodeType":"YulBlock","src":"12311:302:53","statements":[{"nativeSrc":"12326:45:53","nodeType":"YulVariableDeclaration","src":"12326:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12357:9:53","nodeType":"YulIdentifier","src":"12357:9:53"},{"kind":"number","nativeSrc":"12368:1:53","nodeType":"YulLiteral","src":"12368:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12353:3:53","nodeType":"YulIdentifier","src":"12353:3:53"},"nativeSrc":"12353:17:53","nodeType":"YulFunctionCall","src":"12353:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"12340:12:53","nodeType":"YulIdentifier","src":"12340:12:53"},"nativeSrc":"12340:31:53","nodeType":"YulFunctionCall","src":"12340:31:53"},"variables":[{"name":"offset","nativeSrc":"12330:6:53","nodeType":"YulTypedName","src":"12330:6:53","type":""}]},{"body":{"nativeSrc":"12418:83:53","nodeType":"YulBlock","src":"12418:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12420:77:53","nodeType":"YulIdentifier","src":"12420:77:53"},"nativeSrc":"12420:79:53","nodeType":"YulFunctionCall","src":"12420:79:53"},"nativeSrc":"12420:79:53","nodeType":"YulExpressionStatement","src":"12420:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12390:6:53","nodeType":"YulIdentifier","src":"12390:6:53"},{"kind":"number","nativeSrc":"12398:18:53","nodeType":"YulLiteral","src":"12398:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12387:2:53","nodeType":"YulIdentifier","src":"12387:2:53"},"nativeSrc":"12387:30:53","nodeType":"YulFunctionCall","src":"12387:30:53"},"nativeSrc":"12384:117:53","nodeType":"YulIf","src":"12384:117:53"},{"nativeSrc":"12515:88:53","nodeType":"YulAssignment","src":"12515:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12575:9:53","nodeType":"YulIdentifier","src":"12575:9:53"},{"name":"offset","nativeSrc":"12586:6:53","nodeType":"YulIdentifier","src":"12586:6:53"}],"functionName":{"name":"add","nativeSrc":"12571:3:53","nodeType":"YulIdentifier","src":"12571:3:53"},"nativeSrc":"12571:22:53","nodeType":"YulFunctionCall","src":"12571:22:53"},{"name":"dataEnd","nativeSrc":"12595:7:53","nodeType":"YulIdentifier","src":"12595:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12525:45:53","nodeType":"YulIdentifier","src":"12525:45:53"},"nativeSrc":"12525:78:53","nodeType":"YulFunctionCall","src":"12525:78:53"},"variableNames":[{"name":"value0","nativeSrc":"12515:6:53","nodeType":"YulIdentifier","src":"12515:6:53"}]}]},{"nativeSrc":"12623:303:53","nodeType":"YulBlock","src":"12623:303:53","statements":[{"nativeSrc":"12638:46:53","nodeType":"YulVariableDeclaration","src":"12638:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12669:9:53","nodeType":"YulIdentifier","src":"12669:9:53"},{"kind":"number","nativeSrc":"12680:2:53","nodeType":"YulLiteral","src":"12680:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12665:3:53","nodeType":"YulIdentifier","src":"12665:3:53"},"nativeSrc":"12665:18:53","nodeType":"YulFunctionCall","src":"12665:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12652:12:53","nodeType":"YulIdentifier","src":"12652:12:53"},"nativeSrc":"12652:32:53","nodeType":"YulFunctionCall","src":"12652:32:53"},"variables":[{"name":"offset","nativeSrc":"12642:6:53","nodeType":"YulTypedName","src":"12642:6:53","type":""}]},{"body":{"nativeSrc":"12731:83:53","nodeType":"YulBlock","src":"12731:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12733:77:53","nodeType":"YulIdentifier","src":"12733:77:53"},"nativeSrc":"12733:79:53","nodeType":"YulFunctionCall","src":"12733:79:53"},"nativeSrc":"12733:79:53","nodeType":"YulExpressionStatement","src":"12733:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12703:6:53","nodeType":"YulIdentifier","src":"12703:6:53"},{"kind":"number","nativeSrc":"12711:18:53","nodeType":"YulLiteral","src":"12711:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12700:2:53","nodeType":"YulIdentifier","src":"12700:2:53"},"nativeSrc":"12700:30:53","nodeType":"YulFunctionCall","src":"12700:30:53"},"nativeSrc":"12697:117:53","nodeType":"YulIf","src":"12697:117:53"},{"nativeSrc":"12828:88:53","nodeType":"YulAssignment","src":"12828:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12888:9:53","nodeType":"YulIdentifier","src":"12888:9:53"},{"name":"offset","nativeSrc":"12899:6:53","nodeType":"YulIdentifier","src":"12899:6:53"}],"functionName":{"name":"add","nativeSrc":"12884:3:53","nodeType":"YulIdentifier","src":"12884:3:53"},"nativeSrc":"12884:22:53","nodeType":"YulFunctionCall","src":"12884:22:53"},{"name":"dataEnd","nativeSrc":"12908:7:53","nodeType":"YulIdentifier","src":"12908:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12838:45:53","nodeType":"YulIdentifier","src":"12838:45:53"},"nativeSrc":"12838:78:53","nodeType":"YulFunctionCall","src":"12838:78:53"},"variableNames":[{"name":"value1","nativeSrc":"12828:6:53","nodeType":"YulIdentifier","src":"12828:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12039:894:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12134:9:53","nodeType":"YulTypedName","src":"12134:9:53","type":""},{"name":"dataEnd","nativeSrc":"12145:7:53","nodeType":"YulTypedName","src":"12145:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12157:6:53","nodeType":"YulTypedName","src":"12157:6:53","type":""},{"name":"value1","nativeSrc":"12165:6:53","nodeType":"YulTypedName","src":"12165:6:53","type":""}],"src":"12039:894:53"},{"body":{"nativeSrc":"13013:40:53","nodeType":"YulBlock","src":"13013:40:53","statements":[{"nativeSrc":"13024:22:53","nodeType":"YulAssignment","src":"13024:22:53","value":{"arguments":[{"name":"value","nativeSrc":"13040:5:53","nodeType":"YulIdentifier","src":"13040:5:53"}],"functionName":{"name":"mload","nativeSrc":"13034:5:53","nodeType":"YulIdentifier","src":"13034:5:53"},"nativeSrc":"13034:12:53","nodeType":"YulFunctionCall","src":"13034:12:53"},"variableNames":[{"name":"length","nativeSrc":"13024:6:53","nodeType":"YulIdentifier","src":"13024:6:53"}]}]},"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12939:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12996:5:53","nodeType":"YulTypedName","src":"12996:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13006:6:53","nodeType":"YulTypedName","src":"13006:6:53","type":""}],"src":"12939:114:53"},{"body":{"nativeSrc":"13170:73:53","nodeType":"YulBlock","src":"13170:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13187:3:53","nodeType":"YulIdentifier","src":"13187:3:53"},{"name":"length","nativeSrc":"13192:6:53","nodeType":"YulIdentifier","src":"13192:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13180:6:53","nodeType":"YulIdentifier","src":"13180:6:53"},"nativeSrc":"13180:19:53","nodeType":"YulFunctionCall","src":"13180:19:53"},"nativeSrc":"13180:19:53","nodeType":"YulExpressionStatement","src":"13180:19:53"},{"nativeSrc":"13208:29:53","nodeType":"YulAssignment","src":"13208:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"13227:3:53","nodeType":"YulIdentifier","src":"13227:3:53"},{"kind":"number","nativeSrc":"13232:4:53","nodeType":"YulLiteral","src":"13232:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13223:3:53","nodeType":"YulIdentifier","src":"13223:3:53"},"nativeSrc":"13223:14:53","nodeType":"YulFunctionCall","src":"13223:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"13208:11:53","nodeType":"YulIdentifier","src":"13208:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"13059:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13142:3:53","nodeType":"YulTypedName","src":"13142:3:53","type":""},{"name":"length","nativeSrc":"13147:6:53","nodeType":"YulTypedName","src":"13147:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13158:11:53","nodeType":"YulTypedName","src":"13158:11:53","type":""}],"src":"13059:184:53"},{"body":{"nativeSrc":"13321:60:53","nodeType":"YulBlock","src":"13321:60:53","statements":[{"nativeSrc":"13331:11:53","nodeType":"YulAssignment","src":"13331:11:53","value":{"name":"ptr","nativeSrc":"13339:3:53","nodeType":"YulIdentifier","src":"13339:3:53"},"variableNames":[{"name":"data","nativeSrc":"13331:4:53","nodeType":"YulIdentifier","src":"13331:4:53"}]},{"nativeSrc":"13352:22:53","nodeType":"YulAssignment","src":"13352:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13364:3:53","nodeType":"YulIdentifier","src":"13364:3:53"},{"kind":"number","nativeSrc":"13369:4:53","nodeType":"YulLiteral","src":"13369:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13360:3:53","nodeType":"YulIdentifier","src":"13360:3:53"},"nativeSrc":"13360:14:53","nodeType":"YulFunctionCall","src":"13360:14:53"},"variableNames":[{"name":"data","nativeSrc":"13352:4:53","nodeType":"YulIdentifier","src":"13352:4:53"}]}]},"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13249:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13308:3:53","nodeType":"YulTypedName","src":"13308:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"13316:4:53","nodeType":"YulTypedName","src":"13316:4:53","type":""}],"src":"13249:132:53"},{"body":{"nativeSrc":"13442:53:53","nodeType":"YulBlock","src":"13442:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13459:3:53","nodeType":"YulIdentifier","src":"13459:3:53"},{"arguments":[{"name":"value","nativeSrc":"13482:5:53","nodeType":"YulIdentifier","src":"13482:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13464:17:53","nodeType":"YulIdentifier","src":"13464:17:53"},"nativeSrc":"13464:24:53","nodeType":"YulFunctionCall","src":"13464:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13452:6:53","nodeType":"YulIdentifier","src":"13452:6:53"},"nativeSrc":"13452:37:53","nodeType":"YulFunctionCall","src":"13452:37:53"},"nativeSrc":"13452:37:53","nodeType":"YulExpressionStatement","src":"13452:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13387:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13430:5:53","nodeType":"YulTypedName","src":"13430:5:53","type":""},{"name":"pos","nativeSrc":"13437:3:53","nodeType":"YulTypedName","src":"13437:3:53","type":""}],"src":"13387:108:53"},{"body":{"nativeSrc":"13581:99:53","nodeType":"YulBlock","src":"13581:99:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13625:6:53","nodeType":"YulIdentifier","src":"13625:6:53"},{"name":"pos","nativeSrc":"13633:3:53","nodeType":"YulIdentifier","src":"13633:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13591:33:53","nodeType":"YulIdentifier","src":"13591:33:53"},"nativeSrc":"13591:46:53","nodeType":"YulFunctionCall","src":"13591:46:53"},"nativeSrc":"13591:46:53","nodeType":"YulExpressionStatement","src":"13591:46:53"},{"nativeSrc":"13646:28:53","nodeType":"YulAssignment","src":"13646:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"13664:3:53","nodeType":"YulIdentifier","src":"13664:3:53"},{"kind":"number","nativeSrc":"13669:4:53","nodeType":"YulLiteral","src":"13669:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13660:3:53","nodeType":"YulIdentifier","src":"13660:3:53"},"nativeSrc":"13660:14:53","nodeType":"YulFunctionCall","src":"13660:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"13646:10:53","nodeType":"YulIdentifier","src":"13646:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"13501:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"13554:6:53","nodeType":"YulTypedName","src":"13554:6:53","type":""},{"name":"pos","nativeSrc":"13562:3:53","nodeType":"YulTypedName","src":"13562:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"13570:10:53","nodeType":"YulTypedName","src":"13570:10:53","type":""}],"src":"13501:179:53"},{"body":{"nativeSrc":"13761:38:53","nodeType":"YulBlock","src":"13761:38:53","statements":[{"nativeSrc":"13771:22:53","nodeType":"YulAssignment","src":"13771:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13783:3:53","nodeType":"YulIdentifier","src":"13783:3:53"},{"kind":"number","nativeSrc":"13788:4:53","nodeType":"YulLiteral","src":"13788:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13779:3:53","nodeType":"YulIdentifier","src":"13779:3:53"},"nativeSrc":"13779:14:53","nodeType":"YulFunctionCall","src":"13779:14:53"},"variableNames":[{"name":"next","nativeSrc":"13771:4:53","nodeType":"YulIdentifier","src":"13771:4:53"}]}]},"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13686:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13748:3:53","nodeType":"YulTypedName","src":"13748:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"13756:4:53","nodeType":"YulTypedName","src":"13756:4:53","type":""}],"src":"13686:113:53"},{"body":{"nativeSrc":"13959:608:53","nodeType":"YulBlock","src":"13959:608:53","statements":[{"nativeSrc":"13969:68:53","nodeType":"YulVariableDeclaration","src":"13969:68:53","value":{"arguments":[{"name":"value","nativeSrc":"14031:5:53","nodeType":"YulIdentifier","src":"14031:5:53"}],"functionName":{"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13983:47:53","nodeType":"YulIdentifier","src":"13983:47:53"},"nativeSrc":"13983:54:53","nodeType":"YulFunctionCall","src":"13983:54:53"},"variables":[{"name":"length","nativeSrc":"13973:6:53","nodeType":"YulTypedName","src":"13973:6:53","type":""}]},{"nativeSrc":"14046:93:53","nodeType":"YulAssignment","src":"14046:93:53","value":{"arguments":[{"name":"pos","nativeSrc":"14127:3:53","nodeType":"YulIdentifier","src":"14127:3:53"},{"name":"length","nativeSrc":"14132:6:53","nodeType":"YulIdentifier","src":"14132:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"14053:73:53","nodeType":"YulIdentifier","src":"14053:73:53"},"nativeSrc":"14053:86:53","nodeType":"YulFunctionCall","src":"14053:86:53"},"variableNames":[{"name":"pos","nativeSrc":"14046:3:53","nodeType":"YulIdentifier","src":"14046:3:53"}]},{"nativeSrc":"14148:71:53","nodeType":"YulVariableDeclaration","src":"14148:71:53","value":{"arguments":[{"name":"value","nativeSrc":"14213:5:53","nodeType":"YulIdentifier","src":"14213:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"14163:49:53","nodeType":"YulIdentifier","src":"14163:49:53"},"nativeSrc":"14163:56:53","nodeType":"YulFunctionCall","src":"14163:56:53"},"variables":[{"name":"baseRef","nativeSrc":"14152:7:53","nodeType":"YulTypedName","src":"14152:7:53","type":""}]},{"nativeSrc":"14228:21:53","nodeType":"YulVariableDeclaration","src":"14228:21:53","value":{"name":"baseRef","nativeSrc":"14242:7:53","nodeType":"YulIdentifier","src":"14242:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"14232:6:53","nodeType":"YulTypedName","src":"14232:6:53","type":""}]},{"body":{"nativeSrc":"14318:224:53","nodeType":"YulBlock","src":"14318:224:53","statements":[{"nativeSrc":"14332:34:53","nodeType":"YulVariableDeclaration","src":"14332:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14359:6:53","nodeType":"YulIdentifier","src":"14359:6:53"}],"functionName":{"name":"mload","nativeSrc":"14353:5:53","nodeType":"YulIdentifier","src":"14353:5:53"},"nativeSrc":"14353:13:53","nodeType":"YulFunctionCall","src":"14353:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"14336:13:53","nodeType":"YulTypedName","src":"14336:13:53","type":""}]},{"nativeSrc":"14379:70:53","nodeType":"YulAssignment","src":"14379:70:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"14430:13:53","nodeType":"YulIdentifier","src":"14430:13:53"},{"name":"pos","nativeSrc":"14445:3:53","nodeType":"YulIdentifier","src":"14445:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"14386:43:53","nodeType":"YulIdentifier","src":"14386:43:53"},"nativeSrc":"14386:63:53","nodeType":"YulFunctionCall","src":"14386:63:53"},"variableNames":[{"name":"pos","nativeSrc":"14379:3:53","nodeType":"YulIdentifier","src":"14379:3:53"}]},{"nativeSrc":"14462:70:53","nodeType":"YulAssignment","src":"14462:70:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14525:6:53","nodeType":"YulIdentifier","src":"14525:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"14472:52:53","nodeType":"YulIdentifier","src":"14472:52:53"},"nativeSrc":"14472:60:53","nodeType":"YulFunctionCall","src":"14472:60:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"14462:6:53","nodeType":"YulIdentifier","src":"14462:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14280:1:53","nodeType":"YulIdentifier","src":"14280:1:53"},{"name":"length","nativeSrc":"14283:6:53","nodeType":"YulIdentifier","src":"14283:6:53"}],"functionName":{"name":"lt","nativeSrc":"14277:2:53","nodeType":"YulIdentifier","src":"14277:2:53"},"nativeSrc":"14277:13:53","nodeType":"YulFunctionCall","src":"14277:13:53"},"nativeSrc":"14258:284:53","nodeType":"YulForLoop","post":{"nativeSrc":"14291:18:53","nodeType":"YulBlock","src":"14291:18:53","statements":[{"nativeSrc":"14293:14:53","nodeType":"YulAssignment","src":"14293:14:53","value":{"arguments":[{"name":"i","nativeSrc":"14302:1:53","nodeType":"YulIdentifier","src":"14302:1:53"},{"kind":"number","nativeSrc":"14305:1:53","nodeType":"YulLiteral","src":"14305:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14298:3:53","nodeType":"YulIdentifier","src":"14298:3:53"},"nativeSrc":"14298:9:53","nodeType":"YulFunctionCall","src":"14298:9:53"},"variableNames":[{"name":"i","nativeSrc":"14293:1:53","nodeType":"YulIdentifier","src":"14293:1:53"}]}]},"pre":{"nativeSrc":"14262:14:53","nodeType":"YulBlock","src":"14262:14:53","statements":[{"nativeSrc":"14264:10:53","nodeType":"YulVariableDeclaration","src":"14264:10:53","value":{"kind":"number","nativeSrc":"14273:1:53","nodeType":"YulLiteral","src":"14273:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14268:1:53","nodeType":"YulTypedName","src":"14268:1:53","type":""}]}]},"src":"14258:284:53"},{"nativeSrc":"14551:10:53","nodeType":"YulAssignment","src":"14551:10:53","value":{"name":"pos","nativeSrc":"14558:3:53","nodeType":"YulIdentifier","src":"14558:3:53"},"variableNames":[{"name":"end","nativeSrc":"14551:3:53","nodeType":"YulIdentifier","src":"14551:3:53"}]}]},"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"13835:732:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13938:5:53","nodeType":"YulTypedName","src":"13938:5:53","type":""},{"name":"pos","nativeSrc":"13945:3:53","nodeType":"YulTypedName","src":"13945:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13954:3:53","nodeType":"YulTypedName","src":"13954:3:53","type":""}],"src":"13835:732:53"},{"body":{"nativeSrc":"14721:225:53","nodeType":"YulBlock","src":"14721:225:53","statements":[{"nativeSrc":"14731:26:53","nodeType":"YulAssignment","src":"14731:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14743:9:53","nodeType":"YulIdentifier","src":"14743:9:53"},{"kind":"number","nativeSrc":"14754:2:53","nodeType":"YulLiteral","src":"14754:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14739:3:53","nodeType":"YulIdentifier","src":"14739:3:53"},"nativeSrc":"14739:18:53","nodeType":"YulFunctionCall","src":"14739:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14731:4:53","nodeType":"YulIdentifier","src":"14731:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14778:9:53","nodeType":"YulIdentifier","src":"14778:9:53"},{"kind":"number","nativeSrc":"14789:1:53","nodeType":"YulLiteral","src":"14789:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14774:3:53","nodeType":"YulIdentifier","src":"14774:3:53"},"nativeSrc":"14774:17:53","nodeType":"YulFunctionCall","src":"14774:17:53"},{"arguments":[{"name":"tail","nativeSrc":"14797:4:53","nodeType":"YulIdentifier","src":"14797:4:53"},{"name":"headStart","nativeSrc":"14803:9:53","nodeType":"YulIdentifier","src":"14803:9:53"}],"functionName":{"name":"sub","nativeSrc":"14793:3:53","nodeType":"YulIdentifier","src":"14793:3:53"},"nativeSrc":"14793:20:53","nodeType":"YulFunctionCall","src":"14793:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14767:6:53","nodeType":"YulIdentifier","src":"14767:6:53"},"nativeSrc":"14767:47:53","nodeType":"YulFunctionCall","src":"14767:47:53"},"nativeSrc":"14767:47:53","nodeType":"YulExpressionStatement","src":"14767:47:53"},{"nativeSrc":"14823:116:53","nodeType":"YulAssignment","src":"14823:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"14925:6:53","nodeType":"YulIdentifier","src":"14925:6:53"},{"name":"tail","nativeSrc":"14934:4:53","nodeType":"YulIdentifier","src":"14934:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"14831:93:53","nodeType":"YulIdentifier","src":"14831:93:53"},"nativeSrc":"14831:108:53","nodeType":"YulFunctionCall","src":"14831:108:53"},"variableNames":[{"name":"tail","nativeSrc":"14823:4:53","nodeType":"YulIdentifier","src":"14823:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"14573:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14693:9:53","nodeType":"YulTypedName","src":"14693:9:53","type":""},{"name":"value0","nativeSrc":"14705:6:53","nodeType":"YulTypedName","src":"14705:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14716:4:53","nodeType":"YulTypedName","src":"14716:4:53","type":""}],"src":"14573:373:53"},{"body":{"nativeSrc":"14992:76:53","nodeType":"YulBlock","src":"14992:76:53","statements":[{"body":{"nativeSrc":"15046:16:53","nodeType":"YulBlock","src":"15046:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15055:1:53","nodeType":"YulLiteral","src":"15055:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15058:1:53","nodeType":"YulLiteral","src":"15058:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15048:6:53","nodeType":"YulIdentifier","src":"15048:6:53"},"nativeSrc":"15048:12:53","nodeType":"YulFunctionCall","src":"15048:12:53"},"nativeSrc":"15048:12:53","nodeType":"YulExpressionStatement","src":"15048:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15015:5:53","nodeType":"YulIdentifier","src":"15015:5:53"},{"arguments":[{"name":"value","nativeSrc":"15037:5:53","nodeType":"YulIdentifier","src":"15037:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"15022:14:53","nodeType":"YulIdentifier","src":"15022:14:53"},"nativeSrc":"15022:21:53","nodeType":"YulFunctionCall","src":"15022:21:53"}],"functionName":{"name":"eq","nativeSrc":"15012:2:53","nodeType":"YulIdentifier","src":"15012:2:53"},"nativeSrc":"15012:32:53","nodeType":"YulFunctionCall","src":"15012:32:53"}],"functionName":{"name":"iszero","nativeSrc":"15005:6:53","nodeType":"YulIdentifier","src":"15005:6:53"},"nativeSrc":"15005:40:53","nodeType":"YulFunctionCall","src":"15005:40:53"},"nativeSrc":"15002:60:53","nodeType":"YulIf","src":"15002:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"14952:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14985:5:53","nodeType":"YulTypedName","src":"14985:5:53","type":""}],"src":"14952:116:53"},{"body":{"nativeSrc":"15123:84:53","nodeType":"YulBlock","src":"15123:84:53","statements":[{"nativeSrc":"15133:29:53","nodeType":"YulAssignment","src":"15133:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"15155:6:53","nodeType":"YulIdentifier","src":"15155:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15142:12:53","nodeType":"YulIdentifier","src":"15142:12:53"},"nativeSrc":"15142:20:53","nodeType":"YulFunctionCall","src":"15142:20:53"},"variableNames":[{"name":"value","nativeSrc":"15133:5:53","nodeType":"YulIdentifier","src":"15133:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15195:5:53","nodeType":"YulIdentifier","src":"15195:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"15171:23:53","nodeType":"YulIdentifier","src":"15171:23:53"},"nativeSrc":"15171:30:53","nodeType":"YulFunctionCall","src":"15171:30:53"},"nativeSrc":"15171:30:53","nodeType":"YulExpressionStatement","src":"15171:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"15074:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15101:6:53","nodeType":"YulTypedName","src":"15101:6:53","type":""},{"name":"end","nativeSrc":"15109:3:53","nodeType":"YulTypedName","src":"15109:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15117:5:53","nodeType":"YulTypedName","src":"15117:5:53","type":""}],"src":"15074:133:53"},{"body":{"nativeSrc":"15293:388:53","nodeType":"YulBlock","src":"15293:388:53","statements":[{"body":{"nativeSrc":"15339:83:53","nodeType":"YulBlock","src":"15339:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15341:77:53","nodeType":"YulIdentifier","src":"15341:77:53"},"nativeSrc":"15341:79:53","nodeType":"YulFunctionCall","src":"15341:79:53"},"nativeSrc":"15341:79:53","nodeType":"YulExpressionStatement","src":"15341:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15314:7:53","nodeType":"YulIdentifier","src":"15314:7:53"},{"name":"headStart","nativeSrc":"15323:9:53","nodeType":"YulIdentifier","src":"15323:9:53"}],"functionName":{"name":"sub","nativeSrc":"15310:3:53","nodeType":"YulIdentifier","src":"15310:3:53"},"nativeSrc":"15310:23:53","nodeType":"YulFunctionCall","src":"15310:23:53"},{"kind":"number","nativeSrc":"15335:2:53","nodeType":"YulLiteral","src":"15335:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15306:3:53","nodeType":"YulIdentifier","src":"15306:3:53"},"nativeSrc":"15306:32:53","nodeType":"YulFunctionCall","src":"15306:32:53"},"nativeSrc":"15303:119:53","nodeType":"YulIf","src":"15303:119:53"},{"nativeSrc":"15432:117:53","nodeType":"YulBlock","src":"15432:117:53","statements":[{"nativeSrc":"15447:15:53","nodeType":"YulVariableDeclaration","src":"15447:15:53","value":{"kind":"number","nativeSrc":"15461:1:53","nodeType":"YulLiteral","src":"15461:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15451:6:53","nodeType":"YulTypedName","src":"15451:6:53","type":""}]},{"nativeSrc":"15476:63:53","nodeType":"YulAssignment","src":"15476:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15511:9:53","nodeType":"YulIdentifier","src":"15511:9:53"},{"name":"offset","nativeSrc":"15522:6:53","nodeType":"YulIdentifier","src":"15522:6:53"}],"functionName":{"name":"add","nativeSrc":"15507:3:53","nodeType":"YulIdentifier","src":"15507:3:53"},"nativeSrc":"15507:22:53","nodeType":"YulFunctionCall","src":"15507:22:53"},{"name":"dataEnd","nativeSrc":"15531:7:53","nodeType":"YulIdentifier","src":"15531:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15486:20:53","nodeType":"YulIdentifier","src":"15486:20:53"},"nativeSrc":"15486:53:53","nodeType":"YulFunctionCall","src":"15486:53:53"},"variableNames":[{"name":"value0","nativeSrc":"15476:6:53","nodeType":"YulIdentifier","src":"15476:6:53"}]}]},{"nativeSrc":"15559:115:53","nodeType":"YulBlock","src":"15559:115:53","statements":[{"nativeSrc":"15574:16:53","nodeType":"YulVariableDeclaration","src":"15574:16:53","value":{"kind":"number","nativeSrc":"15588:2:53","nodeType":"YulLiteral","src":"15588:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15578:6:53","nodeType":"YulTypedName","src":"15578:6:53","type":""}]},{"nativeSrc":"15604:60:53","nodeType":"YulAssignment","src":"15604:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15636:9:53","nodeType":"YulIdentifier","src":"15636:9:53"},{"name":"offset","nativeSrc":"15647:6:53","nodeType":"YulIdentifier","src":"15647:6:53"}],"functionName":{"name":"add","nativeSrc":"15632:3:53","nodeType":"YulIdentifier","src":"15632:3:53"},"nativeSrc":"15632:22:53","nodeType":"YulFunctionCall","src":"15632:22:53"},{"name":"dataEnd","nativeSrc":"15656:7:53","nodeType":"YulIdentifier","src":"15656:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"15614:17:53","nodeType":"YulIdentifier","src":"15614:17:53"},"nativeSrc":"15614:50:53","nodeType":"YulFunctionCall","src":"15614:50:53"},"variableNames":[{"name":"value1","nativeSrc":"15604:6:53","nodeType":"YulIdentifier","src":"15604:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"15213:468:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15255:9:53","nodeType":"YulTypedName","src":"15255:9:53","type":""},{"name":"dataEnd","nativeSrc":"15266:7:53","nodeType":"YulTypedName","src":"15266:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15278:6:53","nodeType":"YulTypedName","src":"15278:6:53","type":""},{"name":"value1","nativeSrc":"15286:6:53","nodeType":"YulTypedName","src":"15286:6:53","type":""}],"src":"15213:468:53"},{"body":{"nativeSrc":"15770:391:53","nodeType":"YulBlock","src":"15770:391:53","statements":[{"body":{"nativeSrc":"15816:83:53","nodeType":"YulBlock","src":"15816:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15818:77:53","nodeType":"YulIdentifier","src":"15818:77:53"},"nativeSrc":"15818:79:53","nodeType":"YulFunctionCall","src":"15818:79:53"},"nativeSrc":"15818:79:53","nodeType":"YulExpressionStatement","src":"15818:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15791:7:53","nodeType":"YulIdentifier","src":"15791:7:53"},{"name":"headStart","nativeSrc":"15800:9:53","nodeType":"YulIdentifier","src":"15800:9:53"}],"functionName":{"name":"sub","nativeSrc":"15787:3:53","nodeType":"YulIdentifier","src":"15787:3:53"},"nativeSrc":"15787:23:53","nodeType":"YulFunctionCall","src":"15787:23:53"},{"kind":"number","nativeSrc":"15812:2:53","nodeType":"YulLiteral","src":"15812:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15783:3:53","nodeType":"YulIdentifier","src":"15783:3:53"},"nativeSrc":"15783:32:53","nodeType":"YulFunctionCall","src":"15783:32:53"},"nativeSrc":"15780:119:53","nodeType":"YulIf","src":"15780:119:53"},{"nativeSrc":"15909:117:53","nodeType":"YulBlock","src":"15909:117:53","statements":[{"nativeSrc":"15924:15:53","nodeType":"YulVariableDeclaration","src":"15924:15:53","value":{"kind":"number","nativeSrc":"15938:1:53","nodeType":"YulLiteral","src":"15938:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15928:6:53","nodeType":"YulTypedName","src":"15928:6:53","type":""}]},{"nativeSrc":"15953:63:53","nodeType":"YulAssignment","src":"15953:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15988:9:53","nodeType":"YulIdentifier","src":"15988:9:53"},{"name":"offset","nativeSrc":"15999:6:53","nodeType":"YulIdentifier","src":"15999:6:53"}],"functionName":{"name":"add","nativeSrc":"15984:3:53","nodeType":"YulIdentifier","src":"15984:3:53"},"nativeSrc":"15984:22:53","nodeType":"YulFunctionCall","src":"15984:22:53"},{"name":"dataEnd","nativeSrc":"16008:7:53","nodeType":"YulIdentifier","src":"16008:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15963:20:53","nodeType":"YulIdentifier","src":"15963:20:53"},"nativeSrc":"15963:53:53","nodeType":"YulFunctionCall","src":"15963:53:53"},"variableNames":[{"name":"value0","nativeSrc":"15953:6:53","nodeType":"YulIdentifier","src":"15953:6:53"}]}]},{"nativeSrc":"16036:118:53","nodeType":"YulBlock","src":"16036:118:53","statements":[{"nativeSrc":"16051:16:53","nodeType":"YulVariableDeclaration","src":"16051:16:53","value":{"kind":"number","nativeSrc":"16065:2:53","nodeType":"YulLiteral","src":"16065:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16055:6:53","nodeType":"YulTypedName","src":"16055:6:53","type":""}]},{"nativeSrc":"16081:63:53","nodeType":"YulAssignment","src":"16081:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16116:9:53","nodeType":"YulIdentifier","src":"16116:9:53"},{"name":"offset","nativeSrc":"16127:6:53","nodeType":"YulIdentifier","src":"16127:6:53"}],"functionName":{"name":"add","nativeSrc":"16112:3:53","nodeType":"YulIdentifier","src":"16112:3:53"},"nativeSrc":"16112:22:53","nodeType":"YulFunctionCall","src":"16112:22:53"},{"name":"dataEnd","nativeSrc":"16136:7:53","nodeType":"YulIdentifier","src":"16136:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16091:20:53","nodeType":"YulIdentifier","src":"16091:20:53"},"nativeSrc":"16091:53:53","nodeType":"YulFunctionCall","src":"16091:53:53"},"variableNames":[{"name":"value1","nativeSrc":"16081:6:53","nodeType":"YulIdentifier","src":"16081:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"15687:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15732:9:53","nodeType":"YulTypedName","src":"15732:9:53","type":""},{"name":"dataEnd","nativeSrc":"15743:7:53","nodeType":"YulTypedName","src":"15743:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15755:6:53","nodeType":"YulTypedName","src":"15755:6:53","type":""},{"name":"value1","nativeSrc":"15763:6:53","nodeType":"YulTypedName","src":"15763:6:53","type":""}],"src":"15687:474:53"},{"body":{"nativeSrc":"16310:946:53","nodeType":"YulBlock","src":"16310:946:53","statements":[{"body":{"nativeSrc":"16357:83:53","nodeType":"YulBlock","src":"16357:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16359:77:53","nodeType":"YulIdentifier","src":"16359:77:53"},"nativeSrc":"16359:79:53","nodeType":"YulFunctionCall","src":"16359:79:53"},"nativeSrc":"16359:79:53","nodeType":"YulExpressionStatement","src":"16359:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16331:7:53","nodeType":"YulIdentifier","src":"16331:7:53"},{"name":"headStart","nativeSrc":"16340:9:53","nodeType":"YulIdentifier","src":"16340:9:53"}],"functionName":{"name":"sub","nativeSrc":"16327:3:53","nodeType":"YulIdentifier","src":"16327:3:53"},"nativeSrc":"16327:23:53","nodeType":"YulFunctionCall","src":"16327:23:53"},{"kind":"number","nativeSrc":"16352:3:53","nodeType":"YulLiteral","src":"16352:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"16323:3:53","nodeType":"YulIdentifier","src":"16323:3:53"},"nativeSrc":"16323:33:53","nodeType":"YulFunctionCall","src":"16323:33:53"},"nativeSrc":"16320:120:53","nodeType":"YulIf","src":"16320:120:53"},{"nativeSrc":"16450:117:53","nodeType":"YulBlock","src":"16450:117:53","statements":[{"nativeSrc":"16465:15:53","nodeType":"YulVariableDeclaration","src":"16465:15:53","value":{"kind":"number","nativeSrc":"16479:1:53","nodeType":"YulLiteral","src":"16479:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16469:6:53","nodeType":"YulTypedName","src":"16469:6:53","type":""}]},{"nativeSrc":"16494:63:53","nodeType":"YulAssignment","src":"16494:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16529:9:53","nodeType":"YulIdentifier","src":"16529:9:53"},{"name":"offset","nativeSrc":"16540:6:53","nodeType":"YulIdentifier","src":"16540:6:53"}],"functionName":{"name":"add","nativeSrc":"16525:3:53","nodeType":"YulIdentifier","src":"16525:3:53"},"nativeSrc":"16525:22:53","nodeType":"YulFunctionCall","src":"16525:22:53"},{"name":"dataEnd","nativeSrc":"16549:7:53","nodeType":"YulIdentifier","src":"16549:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16504:20:53","nodeType":"YulIdentifier","src":"16504:20:53"},"nativeSrc":"16504:53:53","nodeType":"YulFunctionCall","src":"16504:53:53"},"variableNames":[{"name":"value0","nativeSrc":"16494:6:53","nodeType":"YulIdentifier","src":"16494:6:53"}]}]},{"nativeSrc":"16577:118:53","nodeType":"YulBlock","src":"16577:118:53","statements":[{"nativeSrc":"16592:16:53","nodeType":"YulVariableDeclaration","src":"16592:16:53","value":{"kind":"number","nativeSrc":"16606:2:53","nodeType":"YulLiteral","src":"16606:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16596:6:53","nodeType":"YulTypedName","src":"16596:6:53","type":""}]},{"nativeSrc":"16622:63:53","nodeType":"YulAssignment","src":"16622:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16657:9:53","nodeType":"YulIdentifier","src":"16657:9:53"},{"name":"offset","nativeSrc":"16668:6:53","nodeType":"YulIdentifier","src":"16668:6:53"}],"functionName":{"name":"add","nativeSrc":"16653:3:53","nodeType":"YulIdentifier","src":"16653:3:53"},"nativeSrc":"16653:22:53","nodeType":"YulFunctionCall","src":"16653:22:53"},{"name":"dataEnd","nativeSrc":"16677:7:53","nodeType":"YulIdentifier","src":"16677:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16632:20:53","nodeType":"YulIdentifier","src":"16632:20:53"},"nativeSrc":"16632:53:53","nodeType":"YulFunctionCall","src":"16632:53:53"},"variableNames":[{"name":"value1","nativeSrc":"16622:6:53","nodeType":"YulIdentifier","src":"16622:6:53"}]}]},{"nativeSrc":"16705:118:53","nodeType":"YulBlock","src":"16705:118:53","statements":[{"nativeSrc":"16720:16:53","nodeType":"YulVariableDeclaration","src":"16720:16:53","value":{"kind":"number","nativeSrc":"16734:2:53","nodeType":"YulLiteral","src":"16734:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16724:6:53","nodeType":"YulTypedName","src":"16724:6:53","type":""}]},{"nativeSrc":"16750:63:53","nodeType":"YulAssignment","src":"16750:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16785:9:53","nodeType":"YulIdentifier","src":"16785:9:53"},{"name":"offset","nativeSrc":"16796:6:53","nodeType":"YulIdentifier","src":"16796:6:53"}],"functionName":{"name":"add","nativeSrc":"16781:3:53","nodeType":"YulIdentifier","src":"16781:3:53"},"nativeSrc":"16781:22:53","nodeType":"YulFunctionCall","src":"16781:22:53"},{"name":"dataEnd","nativeSrc":"16805:7:53","nodeType":"YulIdentifier","src":"16805:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16760:20:53","nodeType":"YulIdentifier","src":"16760:20:53"},"nativeSrc":"16760:53:53","nodeType":"YulFunctionCall","src":"16760:53:53"},"variableNames":[{"name":"value2","nativeSrc":"16750:6:53","nodeType":"YulIdentifier","src":"16750:6:53"}]}]},{"nativeSrc":"16833:118:53","nodeType":"YulBlock","src":"16833:118:53","statements":[{"nativeSrc":"16848:16:53","nodeType":"YulVariableDeclaration","src":"16848:16:53","value":{"kind":"number","nativeSrc":"16862:2:53","nodeType":"YulLiteral","src":"16862:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"16852:6:53","nodeType":"YulTypedName","src":"16852:6:53","type":""}]},{"nativeSrc":"16878:63:53","nodeType":"YulAssignment","src":"16878:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16913:9:53","nodeType":"YulIdentifier","src":"16913:9:53"},{"name":"offset","nativeSrc":"16924:6:53","nodeType":"YulIdentifier","src":"16924:6:53"}],"functionName":{"name":"add","nativeSrc":"16909:3:53","nodeType":"YulIdentifier","src":"16909:3:53"},"nativeSrc":"16909:22:53","nodeType":"YulFunctionCall","src":"16909:22:53"},{"name":"dataEnd","nativeSrc":"16933:7:53","nodeType":"YulIdentifier","src":"16933:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16888:20:53","nodeType":"YulIdentifier","src":"16888:20:53"},"nativeSrc":"16888:53:53","nodeType":"YulFunctionCall","src":"16888:53:53"},"variableNames":[{"name":"value3","nativeSrc":"16878:6:53","nodeType":"YulIdentifier","src":"16878:6:53"}]}]},{"nativeSrc":"16961:288:53","nodeType":"YulBlock","src":"16961:288:53","statements":[{"nativeSrc":"16976:47:53","nodeType":"YulVariableDeclaration","src":"16976:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17007:9:53","nodeType":"YulIdentifier","src":"17007:9:53"},{"kind":"number","nativeSrc":"17018:3:53","nodeType":"YulLiteral","src":"17018:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17003:3:53","nodeType":"YulIdentifier","src":"17003:3:53"},"nativeSrc":"17003:19:53","nodeType":"YulFunctionCall","src":"17003:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"16990:12:53","nodeType":"YulIdentifier","src":"16990:12:53"},"nativeSrc":"16990:33:53","nodeType":"YulFunctionCall","src":"16990:33:53"},"variables":[{"name":"offset","nativeSrc":"16980:6:53","nodeType":"YulTypedName","src":"16980:6:53","type":""}]},{"body":{"nativeSrc":"17070:83:53","nodeType":"YulBlock","src":"17070:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17072:77:53","nodeType":"YulIdentifier","src":"17072:77:53"},"nativeSrc":"17072:79:53","nodeType":"YulFunctionCall","src":"17072:79:53"},"nativeSrc":"17072:79:53","nodeType":"YulExpressionStatement","src":"17072:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17042:6:53","nodeType":"YulIdentifier","src":"17042:6:53"},{"kind":"number","nativeSrc":"17050:18:53","nodeType":"YulLiteral","src":"17050:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17039:2:53","nodeType":"YulIdentifier","src":"17039:2:53"},"nativeSrc":"17039:30:53","nodeType":"YulFunctionCall","src":"17039:30:53"},"nativeSrc":"17036:117:53","nodeType":"YulIf","src":"17036:117:53"},{"nativeSrc":"17167:72:53","nodeType":"YulAssignment","src":"17167:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17211:9:53","nodeType":"YulIdentifier","src":"17211:9:53"},{"name":"offset","nativeSrc":"17222:6:53","nodeType":"YulIdentifier","src":"17222:6:53"}],"functionName":{"name":"add","nativeSrc":"17207:3:53","nodeType":"YulIdentifier","src":"17207:3:53"},"nativeSrc":"17207:22:53","nodeType":"YulFunctionCall","src":"17207:22:53"},{"name":"dataEnd","nativeSrc":"17231:7:53","nodeType":"YulIdentifier","src":"17231:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17177:29:53","nodeType":"YulIdentifier","src":"17177:29:53"},"nativeSrc":"17177:62:53","nodeType":"YulFunctionCall","src":"17177:62:53"},"variableNames":[{"name":"value4","nativeSrc":"17167:6:53","nodeType":"YulIdentifier","src":"17167:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nativeSrc":"16167:1089:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16248:9:53","nodeType":"YulTypedName","src":"16248:9:53","type":""},{"name":"dataEnd","nativeSrc":"16259:7:53","nodeType":"YulTypedName","src":"16259:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16271:6:53","nodeType":"YulTypedName","src":"16271:6:53","type":""},{"name":"value1","nativeSrc":"16279:6:53","nodeType":"YulTypedName","src":"16279:6:53","type":""},{"name":"value2","nativeSrc":"16287:6:53","nodeType":"YulTypedName","src":"16287:6:53","type":""},{"name":"value3","nativeSrc":"16295:6:53","nodeType":"YulTypedName","src":"16295:6:53","type":""},{"name":"value4","nativeSrc":"16303:6:53","nodeType":"YulTypedName","src":"16303:6:53","type":""}],"src":"16167:1089:53"},{"body":{"nativeSrc":"17290:152:53","nodeType":"YulBlock","src":"17290:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17307:1:53","nodeType":"YulLiteral","src":"17307:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17310:77:53","nodeType":"YulLiteral","src":"17310:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17300:6:53","nodeType":"YulIdentifier","src":"17300:6:53"},"nativeSrc":"17300:88:53","nodeType":"YulFunctionCall","src":"17300:88:53"},"nativeSrc":"17300:88:53","nodeType":"YulExpressionStatement","src":"17300:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17404:1:53","nodeType":"YulLiteral","src":"17404:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"17407:4:53","nodeType":"YulLiteral","src":"17407:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"17397:6:53","nodeType":"YulIdentifier","src":"17397:6:53"},"nativeSrc":"17397:15:53","nodeType":"YulFunctionCall","src":"17397:15:53"},"nativeSrc":"17397:15:53","nodeType":"YulExpressionStatement","src":"17397:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17428:1:53","nodeType":"YulLiteral","src":"17428:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17431:4:53","nodeType":"YulLiteral","src":"17431:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17421:6:53","nodeType":"YulIdentifier","src":"17421:6:53"},"nativeSrc":"17421:15:53","nodeType":"YulFunctionCall","src":"17421:15:53"},"nativeSrc":"17421:15:53","nodeType":"YulExpressionStatement","src":"17421:15:53"}]},"name":"panic_error_0x22","nativeSrc":"17262:180:53","nodeType":"YulFunctionDefinition","src":"17262:180:53"},{"body":{"nativeSrc":"17499:269:53","nodeType":"YulBlock","src":"17499:269:53","statements":[{"nativeSrc":"17509:22:53","nodeType":"YulAssignment","src":"17509:22:53","value":{"arguments":[{"name":"data","nativeSrc":"17523:4:53","nodeType":"YulIdentifier","src":"17523:4:53"},{"kind":"number","nativeSrc":"17529:1:53","nodeType":"YulLiteral","src":"17529:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"17519:3:53","nodeType":"YulIdentifier","src":"17519:3:53"},"nativeSrc":"17519:12:53","nodeType":"YulFunctionCall","src":"17519:12:53"},"variableNames":[{"name":"length","nativeSrc":"17509:6:53","nodeType":"YulIdentifier","src":"17509:6:53"}]},{"nativeSrc":"17540:38:53","nodeType":"YulVariableDeclaration","src":"17540:38:53","value":{"arguments":[{"name":"data","nativeSrc":"17570:4:53","nodeType":"YulIdentifier","src":"17570:4:53"},{"kind":"number","nativeSrc":"17576:1:53","nodeType":"YulLiteral","src":"17576:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"17566:3:53","nodeType":"YulIdentifier","src":"17566:3:53"},"nativeSrc":"17566:12:53","nodeType":"YulFunctionCall","src":"17566:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"17544:18:53","nodeType":"YulTypedName","src":"17544:18:53","type":""}]},{"body":{"nativeSrc":"17617:51:53","nodeType":"YulBlock","src":"17617:51:53","statements":[{"nativeSrc":"17631:27:53","nodeType":"YulAssignment","src":"17631:27:53","value":{"arguments":[{"name":"length","nativeSrc":"17645:6:53","nodeType":"YulIdentifier","src":"17645:6:53"},{"kind":"number","nativeSrc":"17653:4:53","nodeType":"YulLiteral","src":"17653:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"17641:3:53","nodeType":"YulIdentifier","src":"17641:3:53"},"nativeSrc":"17641:17:53","nodeType":"YulFunctionCall","src":"17641:17:53"},"variableNames":[{"name":"length","nativeSrc":"17631:6:53","nodeType":"YulIdentifier","src":"17631:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17597:18:53","nodeType":"YulIdentifier","src":"17597:18:53"}],"functionName":{"name":"iszero","nativeSrc":"17590:6:53","nodeType":"YulIdentifier","src":"17590:6:53"},"nativeSrc":"17590:26:53","nodeType":"YulFunctionCall","src":"17590:26:53"},"nativeSrc":"17587:81:53","nodeType":"YulIf","src":"17587:81:53"},{"body":{"nativeSrc":"17720:42:53","nodeType":"YulBlock","src":"17720:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"17734:16:53","nodeType":"YulIdentifier","src":"17734:16:53"},"nativeSrc":"17734:18:53","nodeType":"YulFunctionCall","src":"17734:18:53"},"nativeSrc":"17734:18:53","nodeType":"YulExpressionStatement","src":"17734:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17684:18:53","nodeType":"YulIdentifier","src":"17684:18:53"},{"arguments":[{"name":"length","nativeSrc":"17707:6:53","nodeType":"YulIdentifier","src":"17707:6:53"},{"kind":"number","nativeSrc":"17715:2:53","nodeType":"YulLiteral","src":"17715:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17704:2:53","nodeType":"YulIdentifier","src":"17704:2:53"},"nativeSrc":"17704:14:53","nodeType":"YulFunctionCall","src":"17704:14:53"}],"functionName":{"name":"eq","nativeSrc":"17681:2:53","nodeType":"YulIdentifier","src":"17681:2:53"},"nativeSrc":"17681:38:53","nodeType":"YulFunctionCall","src":"17681:38:53"},"nativeSrc":"17678:84:53","nodeType":"YulIf","src":"17678:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"17448:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"17483:4:53","nodeType":"YulTypedName","src":"17483:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"17492:6:53","nodeType":"YulTypedName","src":"17492:6:53","type":""}],"src":"17448:320:53"},{"body":{"nativeSrc":"17839:53:53","nodeType":"YulBlock","src":"17839:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17856:3:53","nodeType":"YulIdentifier","src":"17856:3:53"},{"arguments":[{"name":"value","nativeSrc":"17879:5:53","nodeType":"YulIdentifier","src":"17879:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"17861:17:53","nodeType":"YulIdentifier","src":"17861:17:53"},"nativeSrc":"17861:24:53","nodeType":"YulFunctionCall","src":"17861:24:53"}],"functionName":{"name":"mstore","nativeSrc":"17849:6:53","nodeType":"YulIdentifier","src":"17849:6:53"},"nativeSrc":"17849:37:53","nodeType":"YulFunctionCall","src":"17849:37:53"},"nativeSrc":"17849:37:53","nodeType":"YulExpressionStatement","src":"17849:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17774:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17827:5:53","nodeType":"YulTypedName","src":"17827:5:53","type":""},{"name":"pos","nativeSrc":"17834:3:53","nodeType":"YulTypedName","src":"17834:3:53","type":""}],"src":"17774:118:53"},{"body":{"nativeSrc":"18024:206:53","nodeType":"YulBlock","src":"18024:206:53","statements":[{"nativeSrc":"18034:26:53","nodeType":"YulAssignment","src":"18034:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18046:9:53","nodeType":"YulIdentifier","src":"18046:9:53"},{"kind":"number","nativeSrc":"18057:2:53","nodeType":"YulLiteral","src":"18057:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18042:3:53","nodeType":"YulIdentifier","src":"18042:3:53"},"nativeSrc":"18042:18:53","nodeType":"YulFunctionCall","src":"18042:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18034:4:53","nodeType":"YulIdentifier","src":"18034:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18114:6:53","nodeType":"YulIdentifier","src":"18114:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18127:9:53","nodeType":"YulIdentifier","src":"18127:9:53"},{"kind":"number","nativeSrc":"18138:1:53","nodeType":"YulLiteral","src":"18138:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18123:3:53","nodeType":"YulIdentifier","src":"18123:3:53"},"nativeSrc":"18123:17:53","nodeType":"YulFunctionCall","src":"18123:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18070:43:53","nodeType":"YulIdentifier","src":"18070:43:53"},"nativeSrc":"18070:71:53","nodeType":"YulFunctionCall","src":"18070:71:53"},"nativeSrc":"18070:71:53","nodeType":"YulExpressionStatement","src":"18070:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18195:6:53","nodeType":"YulIdentifier","src":"18195:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18208:9:53","nodeType":"YulIdentifier","src":"18208:9:53"},{"kind":"number","nativeSrc":"18219:2:53","nodeType":"YulLiteral","src":"18219:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18204:3:53","nodeType":"YulIdentifier","src":"18204:3:53"},"nativeSrc":"18204:18:53","nodeType":"YulFunctionCall","src":"18204:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18151:43:53","nodeType":"YulIdentifier","src":"18151:43:53"},"nativeSrc":"18151:72:53","nodeType":"YulFunctionCall","src":"18151:72:53"},"nativeSrc":"18151:72:53","nodeType":"YulExpressionStatement","src":"18151:72:53"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"17898:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17988:9:53","nodeType":"YulTypedName","src":"17988:9:53","type":""},{"name":"value1","nativeSrc":"18000:6:53","nodeType":"YulTypedName","src":"18000:6:53","type":""},{"name":"value0","nativeSrc":"18008:6:53","nodeType":"YulTypedName","src":"18008:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18019:4:53","nodeType":"YulTypedName","src":"18019:4:53","type":""}],"src":"17898:332:53"},{"body":{"nativeSrc":"18362:206:53","nodeType":"YulBlock","src":"18362:206:53","statements":[{"nativeSrc":"18372:26:53","nodeType":"YulAssignment","src":"18372:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18384:9:53","nodeType":"YulIdentifier","src":"18384:9:53"},{"kind":"number","nativeSrc":"18395:2:53","nodeType":"YulLiteral","src":"18395:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18380:3:53","nodeType":"YulIdentifier","src":"18380:3:53"},"nativeSrc":"18380:18:53","nodeType":"YulFunctionCall","src":"18380:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18372:4:53","nodeType":"YulIdentifier","src":"18372:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18452:6:53","nodeType":"YulIdentifier","src":"18452:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18465:9:53","nodeType":"YulIdentifier","src":"18465:9:53"},{"kind":"number","nativeSrc":"18476:1:53","nodeType":"YulLiteral","src":"18476:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18461:3:53","nodeType":"YulIdentifier","src":"18461:3:53"},"nativeSrc":"18461:17:53","nodeType":"YulFunctionCall","src":"18461:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"18408:43:53","nodeType":"YulIdentifier","src":"18408:43:53"},"nativeSrc":"18408:71:53","nodeType":"YulFunctionCall","src":"18408:71:53"},"nativeSrc":"18408:71:53","nodeType":"YulExpressionStatement","src":"18408:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18533:6:53","nodeType":"YulIdentifier","src":"18533:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18546:9:53","nodeType":"YulIdentifier","src":"18546:9:53"},{"kind":"number","nativeSrc":"18557:2:53","nodeType":"YulLiteral","src":"18557:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18542:3:53","nodeType":"YulIdentifier","src":"18542:3:53"},"nativeSrc":"18542:18:53","nodeType":"YulFunctionCall","src":"18542:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"18489:43:53","nodeType":"YulIdentifier","src":"18489:43:53"},"nativeSrc":"18489:72:53","nodeType":"YulFunctionCall","src":"18489:72:53"},"nativeSrc":"18489:72:53","nodeType":"YulExpressionStatement","src":"18489:72:53"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"18236:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18326:9:53","nodeType":"YulTypedName","src":"18326:9:53","type":""},{"name":"value1","nativeSrc":"18338:6:53","nodeType":"YulTypedName","src":"18338:6:53","type":""},{"name":"value0","nativeSrc":"18346:6:53","nodeType":"YulTypedName","src":"18346:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18357:4:53","nodeType":"YulTypedName","src":"18357:4:53","type":""}],"src":"18236:332:53"},{"body":{"nativeSrc":"18602:152:53","nodeType":"YulBlock","src":"18602:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18619:1:53","nodeType":"YulLiteral","src":"18619:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18622:77:53","nodeType":"YulLiteral","src":"18622:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18612:6:53","nodeType":"YulIdentifier","src":"18612:6:53"},"nativeSrc":"18612:88:53","nodeType":"YulFunctionCall","src":"18612:88:53"},"nativeSrc":"18612:88:53","nodeType":"YulExpressionStatement","src":"18612:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18716:1:53","nodeType":"YulLiteral","src":"18716:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"18719:4:53","nodeType":"YulLiteral","src":"18719:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"18709:6:53","nodeType":"YulIdentifier","src":"18709:6:53"},"nativeSrc":"18709:15:53","nodeType":"YulFunctionCall","src":"18709:15:53"},"nativeSrc":"18709:15:53","nodeType":"YulExpressionStatement","src":"18709:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18740:1:53","nodeType":"YulLiteral","src":"18740:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18743:4:53","nodeType":"YulLiteral","src":"18743:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18733:6:53","nodeType":"YulIdentifier","src":"18733:6:53"},"nativeSrc":"18733:15:53","nodeType":"YulFunctionCall","src":"18733:15:53"},"nativeSrc":"18733:15:53","nodeType":"YulExpressionStatement","src":"18733:15:53"}]},"name":"panic_error_0x32","nativeSrc":"18574:180:53","nodeType":"YulFunctionDefinition","src":"18574:180:53"},{"body":{"nativeSrc":"18858:124:53","nodeType":"YulBlock","src":"18858:124:53","statements":[{"nativeSrc":"18868:26:53","nodeType":"YulAssignment","src":"18868:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18880:9:53","nodeType":"YulIdentifier","src":"18880:9:53"},{"kind":"number","nativeSrc":"18891:2:53","nodeType":"YulLiteral","src":"18891:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18876:3:53","nodeType":"YulIdentifier","src":"18876:3:53"},"nativeSrc":"18876:18:53","nodeType":"YulFunctionCall","src":"18876:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18868:4:53","nodeType":"YulIdentifier","src":"18868:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18948:6:53","nodeType":"YulIdentifier","src":"18948:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18961:9:53","nodeType":"YulIdentifier","src":"18961:9:53"},{"kind":"number","nativeSrc":"18972:1:53","nodeType":"YulLiteral","src":"18972:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18957:3:53","nodeType":"YulIdentifier","src":"18957:3:53"},"nativeSrc":"18957:17:53","nodeType":"YulFunctionCall","src":"18957:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18904:43:53","nodeType":"YulIdentifier","src":"18904:43:53"},"nativeSrc":"18904:71:53","nodeType":"YulFunctionCall","src":"18904:71:53"},"nativeSrc":"18904:71:53","nodeType":"YulExpressionStatement","src":"18904:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"18760:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18830:9:53","nodeType":"YulTypedName","src":"18830:9:53","type":""},{"name":"value0","nativeSrc":"18842:6:53","nodeType":"YulTypedName","src":"18842:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18853:4:53","nodeType":"YulTypedName","src":"18853:4:53","type":""}],"src":"18760:222:53"},{"body":{"nativeSrc":"19170:371:53","nodeType":"YulBlock","src":"19170:371:53","statements":[{"nativeSrc":"19180:27:53","nodeType":"YulAssignment","src":"19180:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"19192:9:53","nodeType":"YulIdentifier","src":"19192:9:53"},{"kind":"number","nativeSrc":"19203:3:53","nodeType":"YulLiteral","src":"19203:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19188:3:53","nodeType":"YulIdentifier","src":"19188:3:53"},"nativeSrc":"19188:19:53","nodeType":"YulFunctionCall","src":"19188:19:53"},"variableNames":[{"name":"tail","nativeSrc":"19180:4:53","nodeType":"YulIdentifier","src":"19180:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19261:6:53","nodeType":"YulIdentifier","src":"19261:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19274:9:53","nodeType":"YulIdentifier","src":"19274:9:53"},{"kind":"number","nativeSrc":"19285:1:53","nodeType":"YulLiteral","src":"19285:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19270:3:53","nodeType":"YulIdentifier","src":"19270:3:53"},"nativeSrc":"19270:17:53","nodeType":"YulFunctionCall","src":"19270:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"19217:43:53","nodeType":"YulIdentifier","src":"19217:43:53"},"nativeSrc":"19217:71:53","nodeType":"YulFunctionCall","src":"19217:71:53"},"nativeSrc":"19217:71:53","nodeType":"YulExpressionStatement","src":"19217:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19342:6:53","nodeType":"YulIdentifier","src":"19342:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19355:9:53","nodeType":"YulIdentifier","src":"19355:9:53"},{"kind":"number","nativeSrc":"19366:2:53","nodeType":"YulLiteral","src":"19366:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19351:3:53","nodeType":"YulIdentifier","src":"19351:3:53"},"nativeSrc":"19351:18:53","nodeType":"YulFunctionCall","src":"19351:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19298:43:53","nodeType":"YulIdentifier","src":"19298:43:53"},"nativeSrc":"19298:72:53","nodeType":"YulFunctionCall","src":"19298:72:53"},"nativeSrc":"19298:72:53","nodeType":"YulExpressionStatement","src":"19298:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"19424:6:53","nodeType":"YulIdentifier","src":"19424:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19437:9:53","nodeType":"YulIdentifier","src":"19437:9:53"},{"kind":"number","nativeSrc":"19448:2:53","nodeType":"YulLiteral","src":"19448:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19433:3:53","nodeType":"YulIdentifier","src":"19433:3:53"},"nativeSrc":"19433:18:53","nodeType":"YulFunctionCall","src":"19433:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19380:43:53","nodeType":"YulIdentifier","src":"19380:43:53"},"nativeSrc":"19380:72:53","nodeType":"YulFunctionCall","src":"19380:72:53"},"nativeSrc":"19380:72:53","nodeType":"YulExpressionStatement","src":"19380:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"19506:6:53","nodeType":"YulIdentifier","src":"19506:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19519:9:53","nodeType":"YulIdentifier","src":"19519:9:53"},{"kind":"number","nativeSrc":"19530:2:53","nodeType":"YulLiteral","src":"19530:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19515:3:53","nodeType":"YulIdentifier","src":"19515:3:53"},"nativeSrc":"19515:18:53","nodeType":"YulFunctionCall","src":"19515:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19462:43:53","nodeType":"YulIdentifier","src":"19462:43:53"},"nativeSrc":"19462:72:53","nodeType":"YulFunctionCall","src":"19462:72:53"},"nativeSrc":"19462:72:53","nodeType":"YulExpressionStatement","src":"19462:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"18988:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19118:9:53","nodeType":"YulTypedName","src":"19118:9:53","type":""},{"name":"value3","nativeSrc":"19130:6:53","nodeType":"YulTypedName","src":"19130:6:53","type":""},{"name":"value2","nativeSrc":"19138:6:53","nodeType":"YulTypedName","src":"19138:6:53","type":""},{"name":"value1","nativeSrc":"19146:6:53","nodeType":"YulTypedName","src":"19146:6:53","type":""},{"name":"value0","nativeSrc":"19154:6:53","nodeType":"YulTypedName","src":"19154:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19165:4:53","nodeType":"YulTypedName","src":"19165:4:53","type":""}],"src":"18988:553:53"},{"body":{"nativeSrc":"19575:152:53","nodeType":"YulBlock","src":"19575:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19592:1:53","nodeType":"YulLiteral","src":"19592:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19595:77:53","nodeType":"YulLiteral","src":"19595:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"19585:6:53","nodeType":"YulIdentifier","src":"19585:6:53"},"nativeSrc":"19585:88:53","nodeType":"YulFunctionCall","src":"19585:88:53"},"nativeSrc":"19585:88:53","nodeType":"YulExpressionStatement","src":"19585:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19689:1:53","nodeType":"YulLiteral","src":"19689:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"19692:4:53","nodeType":"YulLiteral","src":"19692:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"19682:6:53","nodeType":"YulIdentifier","src":"19682:6:53"},"nativeSrc":"19682:15:53","nodeType":"YulFunctionCall","src":"19682:15:53"},"nativeSrc":"19682:15:53","nodeType":"YulExpressionStatement","src":"19682:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19713:1:53","nodeType":"YulLiteral","src":"19713:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19716:4:53","nodeType":"YulLiteral","src":"19716:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19706:6:53","nodeType":"YulIdentifier","src":"19706:6:53"},"nativeSrc":"19706:15:53","nodeType":"YulFunctionCall","src":"19706:15:53"},"nativeSrc":"19706:15:53","nodeType":"YulExpressionStatement","src":"19706:15:53"}]},"name":"panic_error_0x11","nativeSrc":"19547:180:53","nodeType":"YulFunctionDefinition","src":"19547:180:53"},{"body":{"nativeSrc":"19777:147:53","nodeType":"YulBlock","src":"19777:147:53","statements":[{"nativeSrc":"19787:25:53","nodeType":"YulAssignment","src":"19787:25:53","value":{"arguments":[{"name":"x","nativeSrc":"19810:1:53","nodeType":"YulIdentifier","src":"19810:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19792:17:53","nodeType":"YulIdentifier","src":"19792:17:53"},"nativeSrc":"19792:20:53","nodeType":"YulFunctionCall","src":"19792:20:53"},"variableNames":[{"name":"x","nativeSrc":"19787:1:53","nodeType":"YulIdentifier","src":"19787:1:53"}]},{"nativeSrc":"19821:25:53","nodeType":"YulAssignment","src":"19821:25:53","value":{"arguments":[{"name":"y","nativeSrc":"19844:1:53","nodeType":"YulIdentifier","src":"19844:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19826:17:53","nodeType":"YulIdentifier","src":"19826:17:53"},"nativeSrc":"19826:20:53","nodeType":"YulFunctionCall","src":"19826:20:53"},"variableNames":[{"name":"y","nativeSrc":"19821:1:53","nodeType":"YulIdentifier","src":"19821:1:53"}]},{"nativeSrc":"19855:16:53","nodeType":"YulAssignment","src":"19855:16:53","value":{"arguments":[{"name":"x","nativeSrc":"19866:1:53","nodeType":"YulIdentifier","src":"19866:1:53"},{"name":"y","nativeSrc":"19869:1:53","nodeType":"YulIdentifier","src":"19869:1:53"}],"functionName":{"name":"add","nativeSrc":"19862:3:53","nodeType":"YulIdentifier","src":"19862:3:53"},"nativeSrc":"19862:9:53","nodeType":"YulFunctionCall","src":"19862:9:53"},"variableNames":[{"name":"sum","nativeSrc":"19855:3:53","nodeType":"YulIdentifier","src":"19855:3:53"}]},{"body":{"nativeSrc":"19895:22:53","nodeType":"YulBlock","src":"19895:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19897:16:53","nodeType":"YulIdentifier","src":"19897:16:53"},"nativeSrc":"19897:18:53","nodeType":"YulFunctionCall","src":"19897:18:53"},"nativeSrc":"19897:18:53","nodeType":"YulExpressionStatement","src":"19897:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"19887:1:53","nodeType":"YulIdentifier","src":"19887:1:53"},{"name":"sum","nativeSrc":"19890:3:53","nodeType":"YulIdentifier","src":"19890:3:53"}],"functionName":{"name":"gt","nativeSrc":"19884:2:53","nodeType":"YulIdentifier","src":"19884:2:53"},"nativeSrc":"19884:10:53","nodeType":"YulFunctionCall","src":"19884:10:53"},"nativeSrc":"19881:36:53","nodeType":"YulIf","src":"19881:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"19733:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"19764:1:53","nodeType":"YulTypedName","src":"19764:1:53","type":""},{"name":"y","nativeSrc":"19767:1:53","nodeType":"YulTypedName","src":"19767:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"19773:3:53","nodeType":"YulTypedName","src":"19773:3:53","type":""}],"src":"19733:191:53"},{"body":{"nativeSrc":"20156:408:53","nodeType":"YulBlock","src":"20156:408:53","statements":[{"nativeSrc":"20166:26:53","nodeType":"YulAssignment","src":"20166:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"20178:9:53","nodeType":"YulIdentifier","src":"20178:9:53"},{"kind":"number","nativeSrc":"20189:2:53","nodeType":"YulLiteral","src":"20189:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20174:3:53","nodeType":"YulIdentifier","src":"20174:3:53"},"nativeSrc":"20174:18:53","nodeType":"YulFunctionCall","src":"20174:18:53"},"variableNames":[{"name":"tail","nativeSrc":"20166:4:53","nodeType":"YulIdentifier","src":"20166:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20213:9:53","nodeType":"YulIdentifier","src":"20213:9:53"},{"kind":"number","nativeSrc":"20224:1:53","nodeType":"YulLiteral","src":"20224:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20209:3:53","nodeType":"YulIdentifier","src":"20209:3:53"},"nativeSrc":"20209:17:53","nodeType":"YulFunctionCall","src":"20209:17:53"},{"arguments":[{"name":"tail","nativeSrc":"20232:4:53","nodeType":"YulIdentifier","src":"20232:4:53"},{"name":"headStart","nativeSrc":"20238:9:53","nodeType":"YulIdentifier","src":"20238:9:53"}],"functionName":{"name":"sub","nativeSrc":"20228:3:53","nodeType":"YulIdentifier","src":"20228:3:53"},"nativeSrc":"20228:20:53","nodeType":"YulFunctionCall","src":"20228:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20202:6:53","nodeType":"YulIdentifier","src":"20202:6:53"},"nativeSrc":"20202:47:53","nodeType":"YulFunctionCall","src":"20202:47:53"},"nativeSrc":"20202:47:53","nodeType":"YulExpressionStatement","src":"20202:47:53"},{"nativeSrc":"20258:116:53","nodeType":"YulAssignment","src":"20258:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"20360:6:53","nodeType":"YulIdentifier","src":"20360:6:53"},{"name":"tail","nativeSrc":"20369:4:53","nodeType":"YulIdentifier","src":"20369:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"20266:93:53","nodeType":"YulIdentifier","src":"20266:93:53"},"nativeSrc":"20266:108:53","nodeType":"YulFunctionCall","src":"20266:108:53"},"variableNames":[{"name":"tail","nativeSrc":"20258:4:53","nodeType":"YulIdentifier","src":"20258:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20395:9:53","nodeType":"YulIdentifier","src":"20395:9:53"},{"kind":"number","nativeSrc":"20406:2:53","nodeType":"YulLiteral","src":"20406:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20391:3:53","nodeType":"YulIdentifier","src":"20391:3:53"},"nativeSrc":"20391:18:53","nodeType":"YulFunctionCall","src":"20391:18:53"},{"arguments":[{"name":"tail","nativeSrc":"20415:4:53","nodeType":"YulIdentifier","src":"20415:4:53"},{"name":"headStart","nativeSrc":"20421:9:53","nodeType":"YulIdentifier","src":"20421:9:53"}],"functionName":{"name":"sub","nativeSrc":"20411:3:53","nodeType":"YulIdentifier","src":"20411:3:53"},"nativeSrc":"20411:20:53","nodeType":"YulFunctionCall","src":"20411:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20384:6:53","nodeType":"YulIdentifier","src":"20384:6:53"},"nativeSrc":"20384:48:53","nodeType":"YulFunctionCall","src":"20384:48:53"},"nativeSrc":"20384:48:53","nodeType":"YulExpressionStatement","src":"20384:48:53"},{"nativeSrc":"20441:116:53","nodeType":"YulAssignment","src":"20441:116:53","value":{"arguments":[{"name":"value1","nativeSrc":"20543:6:53","nodeType":"YulIdentifier","src":"20543:6:53"},{"name":"tail","nativeSrc":"20552:4:53","nodeType":"YulIdentifier","src":"20552:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"20449:93:53","nodeType":"YulIdentifier","src":"20449:93:53"},"nativeSrc":"20449:108:53","nodeType":"YulFunctionCall","src":"20449:108:53"},"variableNames":[{"name":"tail","nativeSrc":"20441:4:53","nodeType":"YulIdentifier","src":"20441:4:53"}]}]},"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":"19930:634:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20120:9:53","nodeType":"YulTypedName","src":"20120:9:53","type":""},{"name":"value1","nativeSrc":"20132:6:53","nodeType":"YulTypedName","src":"20132:6:53","type":""},{"name":"value0","nativeSrc":"20140:6:53","nodeType":"YulTypedName","src":"20140:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20151:4:53","nodeType":"YulTypedName","src":"20151:4:53","type":""}],"src":"19930:634:53"},{"body":{"nativeSrc":"20628:40:53","nodeType":"YulBlock","src":"20628:40:53","statements":[{"nativeSrc":"20639:22:53","nodeType":"YulAssignment","src":"20639:22:53","value":{"arguments":[{"name":"value","nativeSrc":"20655:5:53","nodeType":"YulIdentifier","src":"20655:5:53"}],"functionName":{"name":"mload","nativeSrc":"20649:5:53","nodeType":"YulIdentifier","src":"20649:5:53"},"nativeSrc":"20649:12:53","nodeType":"YulFunctionCall","src":"20649:12:53"},"variableNames":[{"name":"length","nativeSrc":"20639:6:53","nodeType":"YulIdentifier","src":"20639:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"20570:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20611:5:53","nodeType":"YulTypedName","src":"20611:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"20621:6:53","nodeType":"YulTypedName","src":"20621:6:53","type":""}],"src":"20570:98:53"},{"body":{"nativeSrc":"20769:73:53","nodeType":"YulBlock","src":"20769:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20786:3:53","nodeType":"YulIdentifier","src":"20786:3:53"},{"name":"length","nativeSrc":"20791:6:53","nodeType":"YulIdentifier","src":"20791:6:53"}],"functionName":{"name":"mstore","nativeSrc":"20779:6:53","nodeType":"YulIdentifier","src":"20779:6:53"},"nativeSrc":"20779:19:53","nodeType":"YulFunctionCall","src":"20779:19:53"},"nativeSrc":"20779:19:53","nodeType":"YulExpressionStatement","src":"20779:19:53"},{"nativeSrc":"20807:29:53","nodeType":"YulAssignment","src":"20807:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"20826:3:53","nodeType":"YulIdentifier","src":"20826:3:53"},{"kind":"number","nativeSrc":"20831:4:53","nodeType":"YulLiteral","src":"20831:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20822:3:53","nodeType":"YulIdentifier","src":"20822:3:53"},"nativeSrc":"20822:14:53","nodeType":"YulFunctionCall","src":"20822:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"20807:11:53","nodeType":"YulIdentifier","src":"20807:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"20674:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20741:3:53","nodeType":"YulTypedName","src":"20741:3:53","type":""},{"name":"length","nativeSrc":"20746:6:53","nodeType":"YulTypedName","src":"20746:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"20757:11:53","nodeType":"YulTypedName","src":"20757:11:53","type":""}],"src":"20674:168:53"},{"body":{"nativeSrc":"20938:283:53","nodeType":"YulBlock","src":"20938:283:53","statements":[{"nativeSrc":"20948:52:53","nodeType":"YulVariableDeclaration","src":"20948:52:53","value":{"arguments":[{"name":"value","nativeSrc":"20994:5:53","nodeType":"YulIdentifier","src":"20994:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"20962:31:53","nodeType":"YulIdentifier","src":"20962:31:53"},"nativeSrc":"20962:38:53","nodeType":"YulFunctionCall","src":"20962:38:53"},"variables":[{"name":"length","nativeSrc":"20952:6:53","nodeType":"YulTypedName","src":"20952:6:53","type":""}]},{"nativeSrc":"21009:77:53","nodeType":"YulAssignment","src":"21009:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"21074:3:53","nodeType":"YulIdentifier","src":"21074:3:53"},{"name":"length","nativeSrc":"21079:6:53","nodeType":"YulIdentifier","src":"21079:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"21016:57:53","nodeType":"YulIdentifier","src":"21016:57:53"},"nativeSrc":"21016:70:53","nodeType":"YulFunctionCall","src":"21016:70:53"},"variableNames":[{"name":"pos","nativeSrc":"21009:3:53","nodeType":"YulIdentifier","src":"21009:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21134:5:53","nodeType":"YulIdentifier","src":"21134:5:53"},{"kind":"number","nativeSrc":"21141:4:53","nodeType":"YulLiteral","src":"21141:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21130:3:53","nodeType":"YulIdentifier","src":"21130:3:53"},"nativeSrc":"21130:16:53","nodeType":"YulFunctionCall","src":"21130:16:53"},{"name":"pos","nativeSrc":"21148:3:53","nodeType":"YulIdentifier","src":"21148:3:53"},{"name":"length","nativeSrc":"21153:6:53","nodeType":"YulIdentifier","src":"21153:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"21095:34:53","nodeType":"YulIdentifier","src":"21095:34:53"},"nativeSrc":"21095:65:53","nodeType":"YulFunctionCall","src":"21095:65:53"},"nativeSrc":"21095:65:53","nodeType":"YulExpressionStatement","src":"21095:65:53"},{"nativeSrc":"21169:46:53","nodeType":"YulAssignment","src":"21169:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"21180:3:53","nodeType":"YulIdentifier","src":"21180:3:53"},{"arguments":[{"name":"length","nativeSrc":"21207:6:53","nodeType":"YulIdentifier","src":"21207:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"21185:21:53","nodeType":"YulIdentifier","src":"21185:21:53"},"nativeSrc":"21185:29:53","nodeType":"YulFunctionCall","src":"21185:29:53"}],"functionName":{"name":"add","nativeSrc":"21176:3:53","nodeType":"YulIdentifier","src":"21176:3:53"},"nativeSrc":"21176:39:53","nodeType":"YulFunctionCall","src":"21176:39:53"},"variableNames":[{"name":"end","nativeSrc":"21169:3:53","nodeType":"YulIdentifier","src":"21169:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"20848:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20919:5:53","nodeType":"YulTypedName","src":"20919:5:53","type":""},{"name":"pos","nativeSrc":"20926:3:53","nodeType":"YulTypedName","src":"20926:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20934:3:53","nodeType":"YulTypedName","src":"20934:3:53","type":""}],"src":"20848:373:53"},{"body":{"nativeSrc":"21455:523:53","nodeType":"YulBlock","src":"21455:523:53","statements":[{"nativeSrc":"21465:27:53","nodeType":"YulAssignment","src":"21465:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21477:9:53","nodeType":"YulIdentifier","src":"21477:9:53"},{"kind":"number","nativeSrc":"21488:3:53","nodeType":"YulLiteral","src":"21488:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"21473:3:53","nodeType":"YulIdentifier","src":"21473:3:53"},"nativeSrc":"21473:19:53","nodeType":"YulFunctionCall","src":"21473:19:53"},"variableNames":[{"name":"tail","nativeSrc":"21465:4:53","nodeType":"YulIdentifier","src":"21465:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21546:6:53","nodeType":"YulIdentifier","src":"21546:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21559:9:53","nodeType":"YulIdentifier","src":"21559:9:53"},{"kind":"number","nativeSrc":"21570:1:53","nodeType":"YulLiteral","src":"21570:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21555:3:53","nodeType":"YulIdentifier","src":"21555:3:53"},"nativeSrc":"21555:17:53","nodeType":"YulFunctionCall","src":"21555:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21502:43:53","nodeType":"YulIdentifier","src":"21502:43:53"},"nativeSrc":"21502:71:53","nodeType":"YulFunctionCall","src":"21502:71:53"},"nativeSrc":"21502:71:53","nodeType":"YulExpressionStatement","src":"21502:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21627:6:53","nodeType":"YulIdentifier","src":"21627:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21640:9:53","nodeType":"YulIdentifier","src":"21640:9:53"},{"kind":"number","nativeSrc":"21651:2:53","nodeType":"YulLiteral","src":"21651:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21636:3:53","nodeType":"YulIdentifier","src":"21636:3:53"},"nativeSrc":"21636:18:53","nodeType":"YulFunctionCall","src":"21636:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21583:43:53","nodeType":"YulIdentifier","src":"21583:43:53"},"nativeSrc":"21583:72:53","nodeType":"YulFunctionCall","src":"21583:72:53"},"nativeSrc":"21583:72:53","nodeType":"YulExpressionStatement","src":"21583:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21709:6:53","nodeType":"YulIdentifier","src":"21709:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21722:9:53","nodeType":"YulIdentifier","src":"21722:9:53"},{"kind":"number","nativeSrc":"21733:2:53","nodeType":"YulLiteral","src":"21733:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21718:3:53","nodeType":"YulIdentifier","src":"21718:3:53"},"nativeSrc":"21718:18:53","nodeType":"YulFunctionCall","src":"21718:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21665:43:53","nodeType":"YulIdentifier","src":"21665:43:53"},"nativeSrc":"21665:72:53","nodeType":"YulFunctionCall","src":"21665:72:53"},"nativeSrc":"21665:72:53","nodeType":"YulExpressionStatement","src":"21665:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"21791:6:53","nodeType":"YulIdentifier","src":"21791:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21804:9:53","nodeType":"YulIdentifier","src":"21804:9:53"},{"kind":"number","nativeSrc":"21815:2:53","nodeType":"YulLiteral","src":"21815:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21800:3:53","nodeType":"YulIdentifier","src":"21800:3:53"},"nativeSrc":"21800:18:53","nodeType":"YulFunctionCall","src":"21800:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21747:43:53","nodeType":"YulIdentifier","src":"21747:43:53"},"nativeSrc":"21747:72:53","nodeType":"YulFunctionCall","src":"21747:72:53"},"nativeSrc":"21747:72:53","nodeType":"YulExpressionStatement","src":"21747:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21840:9:53","nodeType":"YulIdentifier","src":"21840:9:53"},{"kind":"number","nativeSrc":"21851:3:53","nodeType":"YulLiteral","src":"21851:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21836:3:53","nodeType":"YulIdentifier","src":"21836:3:53"},"nativeSrc":"21836:19:53","nodeType":"YulFunctionCall","src":"21836:19:53"},{"arguments":[{"name":"tail","nativeSrc":"21861:4:53","nodeType":"YulIdentifier","src":"21861:4:53"},{"name":"headStart","nativeSrc":"21867:9:53","nodeType":"YulIdentifier","src":"21867:9:53"}],"functionName":{"name":"sub","nativeSrc":"21857:3:53","nodeType":"YulIdentifier","src":"21857:3:53"},"nativeSrc":"21857:20:53","nodeType":"YulFunctionCall","src":"21857:20:53"}],"functionName":{"name":"mstore","nativeSrc":"21829:6:53","nodeType":"YulIdentifier","src":"21829:6:53"},"nativeSrc":"21829:49:53","nodeType":"YulFunctionCall","src":"21829:49:53"},"nativeSrc":"21829:49:53","nodeType":"YulExpressionStatement","src":"21829:49:53"},{"nativeSrc":"21887:84:53","nodeType":"YulAssignment","src":"21887:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"21957:6:53","nodeType":"YulIdentifier","src":"21957:6:53"},{"name":"tail","nativeSrc":"21966:4:53","nodeType":"YulIdentifier","src":"21966:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"21895:61:53","nodeType":"YulIdentifier","src":"21895:61:53"},"nativeSrc":"21895:76:53","nodeType":"YulFunctionCall","src":"21895:76:53"},"variableNames":[{"name":"tail","nativeSrc":"21887:4:53","nodeType":"YulIdentifier","src":"21887:4:53"}]}]},"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":"21227:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21395:9:53","nodeType":"YulTypedName","src":"21395:9:53","type":""},{"name":"value4","nativeSrc":"21407:6:53","nodeType":"YulTypedName","src":"21407:6:53","type":""},{"name":"value3","nativeSrc":"21415:6:53","nodeType":"YulTypedName","src":"21415:6:53","type":""},{"name":"value2","nativeSrc":"21423:6:53","nodeType":"YulTypedName","src":"21423:6:53","type":""},{"name":"value1","nativeSrc":"21431:6:53","nodeType":"YulTypedName","src":"21431:6:53","type":""},{"name":"value0","nativeSrc":"21439:6:53","nodeType":"YulTypedName","src":"21439:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21450:4:53","nodeType":"YulTypedName","src":"21450:4:53","type":""}],"src":"21227:751:53"},{"body":{"nativeSrc":"22046:79:53","nodeType":"YulBlock","src":"22046:79:53","statements":[{"nativeSrc":"22056:22:53","nodeType":"YulAssignment","src":"22056:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"22071:6:53","nodeType":"YulIdentifier","src":"22071:6:53"}],"functionName":{"name":"mload","nativeSrc":"22065:5:53","nodeType":"YulIdentifier","src":"22065:5:53"},"nativeSrc":"22065:13:53","nodeType":"YulFunctionCall","src":"22065:13:53"},"variableNames":[{"name":"value","nativeSrc":"22056:5:53","nodeType":"YulIdentifier","src":"22056:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22113:5:53","nodeType":"YulIdentifier","src":"22113:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"22087:25:53","nodeType":"YulIdentifier","src":"22087:25:53"},"nativeSrc":"22087:32:53","nodeType":"YulFunctionCall","src":"22087:32:53"},"nativeSrc":"22087:32:53","nodeType":"YulExpressionStatement","src":"22087:32:53"}]},"name":"abi_decode_t_bytes4_fromMemory","nativeSrc":"21984:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22024:6:53","nodeType":"YulTypedName","src":"22024:6:53","type":""},{"name":"end","nativeSrc":"22032:3:53","nodeType":"YulTypedName","src":"22032:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22040:5:53","nodeType":"YulTypedName","src":"22040:5:53","type":""}],"src":"21984:141:53"},{"body":{"nativeSrc":"22207:273:53","nodeType":"YulBlock","src":"22207:273:53","statements":[{"body":{"nativeSrc":"22253:83:53","nodeType":"YulBlock","src":"22253:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"22255:77:53","nodeType":"YulIdentifier","src":"22255:77:53"},"nativeSrc":"22255:79:53","nodeType":"YulFunctionCall","src":"22255:79:53"},"nativeSrc":"22255:79:53","nodeType":"YulExpressionStatement","src":"22255:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22228:7:53","nodeType":"YulIdentifier","src":"22228:7:53"},{"name":"headStart","nativeSrc":"22237:9:53","nodeType":"YulIdentifier","src":"22237:9:53"}],"functionName":{"name":"sub","nativeSrc":"22224:3:53","nodeType":"YulIdentifier","src":"22224:3:53"},"nativeSrc":"22224:23:53","nodeType":"YulFunctionCall","src":"22224:23:53"},{"kind":"number","nativeSrc":"22249:2:53","nodeType":"YulLiteral","src":"22249:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22220:3:53","nodeType":"YulIdentifier","src":"22220:3:53"},"nativeSrc":"22220:32:53","nodeType":"YulFunctionCall","src":"22220:32:53"},"nativeSrc":"22217:119:53","nodeType":"YulIf","src":"22217:119:53"},{"nativeSrc":"22346:127:53","nodeType":"YulBlock","src":"22346:127:53","statements":[{"nativeSrc":"22361:15:53","nodeType":"YulVariableDeclaration","src":"22361:15:53","value":{"kind":"number","nativeSrc":"22375:1:53","nodeType":"YulLiteral","src":"22375:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"22365:6:53","nodeType":"YulTypedName","src":"22365:6:53","type":""}]},{"nativeSrc":"22390:73:53","nodeType":"YulAssignment","src":"22390:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22435:9:53","nodeType":"YulIdentifier","src":"22435:9:53"},{"name":"offset","nativeSrc":"22446:6:53","nodeType":"YulIdentifier","src":"22446:6:53"}],"functionName":{"name":"add","nativeSrc":"22431:3:53","nodeType":"YulIdentifier","src":"22431:3:53"},"nativeSrc":"22431:22:53","nodeType":"YulFunctionCall","src":"22431:22:53"},{"name":"dataEnd","nativeSrc":"22455:7:53","nodeType":"YulIdentifier","src":"22455:7:53"}],"functionName":{"name":"abi_decode_t_bytes4_fromMemory","nativeSrc":"22400:30:53","nodeType":"YulIdentifier","src":"22400:30:53"},"nativeSrc":"22400:63:53","nodeType":"YulFunctionCall","src":"22400:63:53"},"variableNames":[{"name":"value0","nativeSrc":"22390:6:53","nodeType":"YulIdentifier","src":"22390:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"22131:349:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22177:9:53","nodeType":"YulTypedName","src":"22177:9:53","type":""},{"name":"dataEnd","nativeSrc":"22188:7:53","nodeType":"YulTypedName","src":"22188:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22200:6:53","nodeType":"YulTypedName","src":"22200:6:53","type":""}],"src":"22131:349:53"},{"body":{"nativeSrc":"22814:725:53","nodeType":"YulBlock","src":"22814:725:53","statements":[{"nativeSrc":"22824:27:53","nodeType":"YulAssignment","src":"22824:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"22836:9:53","nodeType":"YulIdentifier","src":"22836:9:53"},{"kind":"number","nativeSrc":"22847:3:53","nodeType":"YulLiteral","src":"22847:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"22832:3:53","nodeType":"YulIdentifier","src":"22832:3:53"},"nativeSrc":"22832:19:53","nodeType":"YulFunctionCall","src":"22832:19:53"},"variableNames":[{"name":"tail","nativeSrc":"22824:4:53","nodeType":"YulIdentifier","src":"22824:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22905:6:53","nodeType":"YulIdentifier","src":"22905:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"22918:9:53","nodeType":"YulIdentifier","src":"22918:9:53"},{"kind":"number","nativeSrc":"22929:1:53","nodeType":"YulLiteral","src":"22929:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22914:3:53","nodeType":"YulIdentifier","src":"22914:3:53"},"nativeSrc":"22914:17:53","nodeType":"YulFunctionCall","src":"22914:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22861:43:53","nodeType":"YulIdentifier","src":"22861:43:53"},"nativeSrc":"22861:71:53","nodeType":"YulFunctionCall","src":"22861:71:53"},"nativeSrc":"22861:71:53","nodeType":"YulExpressionStatement","src":"22861:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"22986:6:53","nodeType":"YulIdentifier","src":"22986:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"22999:9:53","nodeType":"YulIdentifier","src":"22999:9:53"},{"kind":"number","nativeSrc":"23010:2:53","nodeType":"YulLiteral","src":"23010:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22995:3:53","nodeType":"YulIdentifier","src":"22995:3:53"},"nativeSrc":"22995:18:53","nodeType":"YulFunctionCall","src":"22995:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22942:43:53","nodeType":"YulIdentifier","src":"22942:43:53"},"nativeSrc":"22942:72:53","nodeType":"YulFunctionCall","src":"22942:72:53"},"nativeSrc":"22942:72:53","nodeType":"YulExpressionStatement","src":"22942:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23035:9:53","nodeType":"YulIdentifier","src":"23035:9:53"},{"kind":"number","nativeSrc":"23046:2:53","nodeType":"YulLiteral","src":"23046:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23031:3:53","nodeType":"YulIdentifier","src":"23031:3:53"},"nativeSrc":"23031:18:53","nodeType":"YulFunctionCall","src":"23031:18:53"},{"arguments":[{"name":"tail","nativeSrc":"23055:4:53","nodeType":"YulIdentifier","src":"23055:4:53"},{"name":"headStart","nativeSrc":"23061:9:53","nodeType":"YulIdentifier","src":"23061:9:53"}],"functionName":{"name":"sub","nativeSrc":"23051:3:53","nodeType":"YulIdentifier","src":"23051:3:53"},"nativeSrc":"23051:20:53","nodeType":"YulFunctionCall","src":"23051:20:53"}],"functionName":{"name":"mstore","nativeSrc":"23024:6:53","nodeType":"YulIdentifier","src":"23024:6:53"},"nativeSrc":"23024:48:53","nodeType":"YulFunctionCall","src":"23024:48:53"},"nativeSrc":"23024:48:53","nodeType":"YulExpressionStatement","src":"23024:48:53"},{"nativeSrc":"23081:116:53","nodeType":"YulAssignment","src":"23081:116:53","value":{"arguments":[{"name":"value2","nativeSrc":"23183:6:53","nodeType":"YulIdentifier","src":"23183:6:53"},{"name":"tail","nativeSrc":"23192:4:53","nodeType":"YulIdentifier","src":"23192:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"23089:93:53","nodeType":"YulIdentifier","src":"23089:93:53"},"nativeSrc":"23089:108:53","nodeType":"YulFunctionCall","src":"23089:108:53"},"variableNames":[{"name":"tail","nativeSrc":"23081:4:53","nodeType":"YulIdentifier","src":"23081:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23218:9:53","nodeType":"YulIdentifier","src":"23218:9:53"},{"kind":"number","nativeSrc":"23229:2:53","nodeType":"YulLiteral","src":"23229:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23214:3:53","nodeType":"YulIdentifier","src":"23214:3:53"},"nativeSrc":"23214:18:53","nodeType":"YulFunctionCall","src":"23214:18:53"},{"arguments":[{"name":"tail","nativeSrc":"23238:4:53","nodeType":"YulIdentifier","src":"23238:4:53"},{"name":"headStart","nativeSrc":"23244:9:53","nodeType":"YulIdentifier","src":"23244:9:53"}],"functionName":{"name":"sub","nativeSrc":"23234:3:53","nodeType":"YulIdentifier","src":"23234:3:53"},"nativeSrc":"23234:20:53","nodeType":"YulFunctionCall","src":"23234:20:53"}],"functionName":{"name":"mstore","nativeSrc":"23207:6:53","nodeType":"YulIdentifier","src":"23207:6:53"},"nativeSrc":"23207:48:53","nodeType":"YulFunctionCall","src":"23207:48:53"},"nativeSrc":"23207:48:53","nodeType":"YulExpressionStatement","src":"23207:48:53"},{"nativeSrc":"23264:116:53","nodeType":"YulAssignment","src":"23264:116:53","value":{"arguments":[{"name":"value3","nativeSrc":"23366:6:53","nodeType":"YulIdentifier","src":"23366:6:53"},{"name":"tail","nativeSrc":"23375:4:53","nodeType":"YulIdentifier","src":"23375:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"23272:93:53","nodeType":"YulIdentifier","src":"23272:93:53"},"nativeSrc":"23272:108:53","nodeType":"YulFunctionCall","src":"23272:108:53"},"variableNames":[{"name":"tail","nativeSrc":"23264:4:53","nodeType":"YulIdentifier","src":"23264:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23401:9:53","nodeType":"YulIdentifier","src":"23401:9:53"},{"kind":"number","nativeSrc":"23412:3:53","nodeType":"YulLiteral","src":"23412:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23397:3:53","nodeType":"YulIdentifier","src":"23397:3:53"},"nativeSrc":"23397:19:53","nodeType":"YulFunctionCall","src":"23397:19:53"},{"arguments":[{"name":"tail","nativeSrc":"23422:4:53","nodeType":"YulIdentifier","src":"23422:4:53"},{"name":"headStart","nativeSrc":"23428:9:53","nodeType":"YulIdentifier","src":"23428:9:53"}],"functionName":{"name":"sub","nativeSrc":"23418:3:53","nodeType":"YulIdentifier","src":"23418:3:53"},"nativeSrc":"23418:20:53","nodeType":"YulFunctionCall","src":"23418:20:53"}],"functionName":{"name":"mstore","nativeSrc":"23390:6:53","nodeType":"YulIdentifier","src":"23390:6:53"},"nativeSrc":"23390:49:53","nodeType":"YulFunctionCall","src":"23390:49:53"},"nativeSrc":"23390:49:53","nodeType":"YulExpressionStatement","src":"23390:49:53"},{"nativeSrc":"23448:84:53","nodeType":"YulAssignment","src":"23448:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"23518:6:53","nodeType":"YulIdentifier","src":"23518:6:53"},{"name":"tail","nativeSrc":"23527:4:53","nodeType":"YulIdentifier","src":"23527:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"23456:61:53","nodeType":"YulIdentifier","src":"23456:61:53"},"nativeSrc":"23456:76:53","nodeType":"YulFunctionCall","src":"23456:76:53"},"variableNames":[{"name":"tail","nativeSrc":"23448:4:53","nodeType":"YulIdentifier","src":"23448:4:53"}]}]},"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":"22486:1053:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22754:9:53","nodeType":"YulTypedName","src":"22754:9:53","type":""},{"name":"value4","nativeSrc":"22766:6:53","nodeType":"YulTypedName","src":"22766:6:53","type":""},{"name":"value3","nativeSrc":"22774:6:53","nodeType":"YulTypedName","src":"22774:6:53","type":""},{"name":"value2","nativeSrc":"22782:6:53","nodeType":"YulTypedName","src":"22782:6:53","type":""},{"name":"value1","nativeSrc":"22790:6:53","nodeType":"YulTypedName","src":"22790:6:53","type":""},{"name":"value0","nativeSrc":"22798:6:53","nodeType":"YulTypedName","src":"22798:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22809:4:53","nodeType":"YulTypedName","src":"22809:4:53","type":""}],"src":"22486:1053:53"}]},"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 mcopy(dst, src, length)\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 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 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 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 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 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__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_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 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_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":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f414610167578063a22cb46514610197578063e985e9c5146101b3578063f242432a146101e3578063f5298aca146101ff5761009b565b8062fdd58e1461009f57806301ffc9a7146100cf5780630e89341c146100ff578063156e29f61461012f5780632eb2c2d61461014b575b5f80fd5b6100b960048036038101906100b491906114a3565b61021b565b6040516100c691906114f0565b60405180910390f35b6100e960048036038101906100e4919061155e565b610270565b6040516100f691906115a3565b60405180910390f35b610119600480360381019061011491906115bc565b610351565b6040516101269190611657565b60405180910390f35b61014960048036038101906101449190611677565b6103e3565b005b610165600480360381019061016091906118b7565b610402565b005b610181600480360381019061017c9190611a42565b6104a9565b60405161018e9190611b6f565b60405180910390f35b6101b160048036038101906101ac9190611bb9565b6105b0565b005b6101cd60048036038101906101c89190611bf7565b6105c6565b6040516101da91906115a3565b60405180910390f35b6101fd60048036038101906101f89190611c35565b610654565b005b61021960048036038101906102149190611677565b6106fb565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061034a57506103498261070b565b5b9050919050565b60606002805461036090611cf5565b80601f016020809104026020016040519081016040528092919081815260200182805461038c90611cf5565b80156103d75780601f106103ae576101008083540402835291602001916103d7565b820191905f5260205f20905b8154815290600101906020018083116103ba57829003601f168201915b50505050509050919050565b6103fd83838360405180602001604052805f815250610774565b505050565b5f61040b610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610450575061044e86826105c6565b155b156104945780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161048b929190611d34565b60405180910390fd5b6104a18686868686610810565b505050505050565b606081518351146104f557815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016104ec929190611d5b565b60405180910390fd5b5f835167ffffffffffffffff811115610511576105106116cb565b5b60405190808252806020026020018201604052801561053f5781602001602082028036833780820191505090505b5090505f5b84518110156105a55761057b610563828761090490919063ffffffff16565b610576838761091790919063ffffffff16565b61021b565b82828151811061058e5761058d611d82565b5b602002602001018181525050806001019050610544565b508091505092915050565b6105c26105bb610809565b838361092a565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61065d610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156106a257506106a086826105c6565b155b156106e65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016106dd929190611d34565b60405180910390fd5b6106f38686868686610a93565b505050505050565b610706838383610b99565b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107e4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107db9190611daf565b60405180910390fd5b5f806107f08585610c3b565b915091506108015f87848487610c6b565b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610880575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108779190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036108f0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016108e79190611daf565b60405180910390fd5b6108fd8585858585610c6b565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361099a575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016109919190611daf565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a8691906115a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b03575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610afa9190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b73575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b6a9190611daf565b60405180910390fd5b5f80610b7f8585610c3b565b91509150610b908787848487610c6b565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c09575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c009190611daf565b60405180910390fd5b5f80610c158484610c3b565b91509150610c34855f848460405180602001604052805f815250610c6b565b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b610c7785858585610d17565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d10575f610cb3610809565b90506001845103610cff575f610cd25f8661091790919063ffffffff16565b90505f610ce85f8661091790919063ffffffff16565b9050610cf88389898585896110a7565b5050610d0e565b610d0d818787878787611256565b5b505b5050505050565b8051825114610d6157815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610d58929190611d5b565b60405180910390fd5b5f610d6a610809565b90505f5b8351811015610f66575f610d8b828661091790919063ffffffff16565b90505f610da1838661091790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610ec4575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610e679493929190611dc8565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610f5957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f519190611e38565b925050819055505b5050806001019050610d6e565b506001835103611021575f610f845f8561091790919063ffffffff16565b90505f610f9a5f8561091790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611012929190611d5b565b60405180910390a450506110a0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611097929190611e6b565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561124e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611107959493929190611ef2565b6020604051808303815f875af192505050801561114257506040513d601f19601f8201168201806040525081019061113f9190611f5e565b60015b6111c3573d805f8114611170576040519150601f19603f3d011682016040523d82523d5f602084013e611175565b606091505b505f8151036111bb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111b29190611daf565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124c57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112439190611daf565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156113fd578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112b6959493929190611f89565b6020604051808303815f875af19250505080156112f157506040513d601f19601f820116820180604052508101906112ee9190611f5e565b60015b611372573d805f811461131f576040519150601f19603f3d011682016040523d82523d5f602084013e611324565b606091505b505f81510361136a57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113619190611daf565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113fb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f29190611daf565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61143f82611416565b9050919050565b61144f81611435565b8114611459575f80fd5b50565b5f8135905061146a81611446565b92915050565b5f819050919050565b61148281611470565b811461148c575f80fd5b50565b5f8135905061149d81611479565b92915050565b5f80604083850312156114b9576114b861140e565b5b5f6114c68582860161145c565b92505060206114d78582860161148f565b9150509250929050565b6114ea81611470565b82525050565b5f6020820190506115035f8301846114e1565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61153d81611509565b8114611547575f80fd5b50565b5f8135905061155881611534565b92915050565b5f602082840312156115735761157261140e565b5b5f6115808482850161154a565b91505092915050565b5f8115159050919050565b61159d81611589565b82525050565b5f6020820190506115b65f830184611594565b92915050565b5f602082840312156115d1576115d061140e565b5b5f6115de8482850161148f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611629826115e7565b61163381856115f1565b9350611643818560208601611601565b61164c8161160f565b840191505092915050565b5f6020820190508181035f83015261166f818461161f565b905092915050565b5f805f6060848603121561168e5761168d61140e565b5b5f61169b8682870161145c565b93505060206116ac8682870161148f565b92505060406116bd8682870161148f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6117018261160f565b810181811067ffffffffffffffff821117156117205761171f6116cb565b5b80604052505050565b5f611732611405565b905061173e82826116f8565b919050565b5f67ffffffffffffffff82111561175d5761175c6116cb565b5b602082029050602081019050919050565b5f80fd5b5f61178461177f84611743565b611729565b905080838252602082019050602084028301858111156117a7576117a661176e565b5b835b818110156117d057806117bc888261148f565b8452602084019350506020810190506117a9565b5050509392505050565b5f82601f8301126117ee576117ed6116c7565b5b81356117fe848260208601611772565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611825576118246116cb565b5b61182e8261160f565b9050602081019050919050565b828183375f83830152505050565b5f61185b6118568461180b565b611729565b90508281526020810184848401111561187757611876611807565b5b61188284828561183b565b509392505050565b5f82601f83011261189e5761189d6116c7565b5b81356118ae848260208601611849565b91505092915050565b5f805f805f60a086880312156118d0576118cf61140e565b5b5f6118dd8882890161145c565b95505060206118ee8882890161145c565b945050604086013567ffffffffffffffff81111561190f5761190e611412565b5b61191b888289016117da565b935050606086013567ffffffffffffffff81111561193c5761193b611412565b5b611948888289016117da565b925050608086013567ffffffffffffffff81111561196957611968611412565b5b6119758882890161188a565b9150509295509295909350565b5f67ffffffffffffffff82111561199c5761199b6116cb565b5b602082029050602081019050919050565b5f6119bf6119ba84611982565b611729565b905080838252602082019050602084028301858111156119e2576119e161176e565b5b835b81811015611a0b57806119f7888261145c565b8452602084019350506020810190506119e4565b5050509392505050565b5f82601f830112611a2957611a286116c7565b5b8135611a398482602086016119ad565b91505092915050565b5f8060408385031215611a5857611a5761140e565b5b5f83013567ffffffffffffffff811115611a7557611a74611412565b5b611a8185828601611a15565b925050602083013567ffffffffffffffff811115611aa257611aa1611412565b5b611aae858286016117da565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611aea81611470565b82525050565b5f611afb8383611ae1565b60208301905092915050565b5f602082019050919050565b5f611b1d82611ab8565b611b278185611ac2565b9350611b3283611ad2565b805f5b83811015611b62578151611b498882611af0565b9750611b5483611b07565b925050600181019050611b35565b5085935050505092915050565b5f6020820190508181035f830152611b878184611b13565b905092915050565b611b9881611589565b8114611ba2575f80fd5b50565b5f81359050611bb381611b8f565b92915050565b5f8060408385031215611bcf57611bce61140e565b5b5f611bdc8582860161145c565b9250506020611bed85828601611ba5565b9150509250929050565b5f8060408385031215611c0d57611c0c61140e565b5b5f611c1a8582860161145c565b9250506020611c2b8582860161145c565b9150509250929050565b5f805f805f60a08688031215611c4e57611c4d61140e565b5b5f611c5b8882890161145c565b9550506020611c6c8882890161145c565b9450506040611c7d8882890161148f565b9350506060611c8e8882890161148f565b925050608086013567ffffffffffffffff811115611caf57611cae611412565b5b611cbb8882890161188a565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0c57607f821691505b602082108103611d1f57611d1e611cc8565b5b50919050565b611d2e81611435565b82525050565b5f604082019050611d475f830185611d25565b611d546020830184611d25565b9392505050565b5f604082019050611d6e5f8301856114e1565b611d7b60208301846114e1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082019050611dc25f830184611d25565b92915050565b5f608082019050611ddb5f830187611d25565b611de860208301866114e1565b611df560408301856114e1565b611e0260608301846114e1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e4282611470565b9150611e4d83611470565b9250828201905080821115611e6557611e64611e0b565b5b92915050565b5f6040820190508181035f830152611e838185611b13565b90508181036020830152611e978184611b13565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec482611ea0565b611ece8185611eaa565b9350611ede818560208601611601565b611ee78161160f565b840191505092915050565b5f60a082019050611f055f830188611d25565b611f126020830187611d25565b611f1f60408301866114e1565b611f2c60608301856114e1565b8181036080830152611f3e8184611eba565b90509695505050505050565b5f81519050611f5881611534565b92915050565b5f60208284031215611f7357611f7261140e565b5b5f611f8084828501611f4a565b91505092915050565b5f60a082019050611f9c5f830188611d25565b611fa96020830187611d25565b8181036040830152611fbb8186611b13565b90508181036060830152611fcf8185611b13565b90508181036080830152611fe38184611eba565b9050969550505050505056fea2646970667358221220e87db9d6338f9a6a136721a55bdc335876ac06f2dee3b3dac72665bca32a6b1f64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x1FF JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x14B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x155E JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x149 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x144 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x181 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x1B6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x5B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0x5C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x33A JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x34A JUMPI POP PUSH2 0x349 DUP3 PUSH2 0x70B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x360 SWAP1 PUSH2 0x1CF5 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 0x38C SWAP1 PUSH2 0x1CF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3BA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x774 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x450 JUMPI POP PUSH2 0x44E DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x494 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A1 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x4F5 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x511 JUMPI PUSH2 0x510 PUSH2 0x16CB 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 0x53F 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 PUSH0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x5A5 JUMPI PUSH2 0x57B PUSH2 0x563 DUP3 DUP8 PUSH2 0x904 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x576 DUP4 DUP8 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0x1D82 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x544 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0x5BB PUSH2 0x809 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x92A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x65D PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x6A2 JUMPI POP PUSH2 0x6A0 DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x6E6 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6DD SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xA93 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x706 DUP4 DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7E4 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0x7F0 DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x801 PUSH0 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x880 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8F0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8FD DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 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 0xA86 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB03 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFA SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB73 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xB7F DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xB90 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC09 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xC15 DUP5 DUP5 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xC34 DUP6 PUSH0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0xC6B JUMP 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 PUSH2 0xC77 DUP6 DUP6 DUP6 DUP6 PUSH2 0xD17 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD10 JUMPI PUSH0 PUSH2 0xCB3 PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0xCFF JUMPI PUSH0 PUSH2 0xCD2 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xCE8 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0xCF8 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x10A7 JUMP JUMPDEST POP POP PUSH2 0xD0E JUMP JUMPDEST PUSH2 0xD0D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1256 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0xD61 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0xD6A PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xF66 JUMPI PUSH0 PUSH2 0xD8B DUP3 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDA1 DUP4 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEC4 JUMPI PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xE70 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE67 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF59 JUMPI DUP1 PUSH0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x1E38 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xD6E JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1021 JUMPI PUSH0 PUSH2 0xF84 PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xF9A PUSH0 DUP6 PUSH2 0x917 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 0x1012 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x10A0 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1097 SWAP3 SWAP2 SWAP1 PUSH2 0x1E6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x124E 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 0x1107 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1142 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 0x113F SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11C3 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1170 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x11BB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x124C JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x13FD 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 0x12B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12F1 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 0x12EE SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1372 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x131F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1324 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x136A JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1361 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x13FB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x143F DUP3 PUSH2 0x1416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x144F DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP2 EQ PUSH2 0x1459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x146A DUP2 PUSH2 0x1446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1482 DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP2 EQ PUSH2 0x148C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x149D DUP2 PUSH2 0x1479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14B9 JUMPI PUSH2 0x14B8 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x14C6 DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D7 DUP6 DUP3 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1503 PUSH0 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153D DUP2 PUSH2 0x1509 JUMP JUMPDEST DUP2 EQ PUSH2 0x1547 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1558 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1573 JUMPI PUSH2 0x1572 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1580 DUP5 DUP3 DUP6 ADD PUSH2 0x154A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x159D DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B6 PUSH0 DUP4 ADD DUP5 PUSH2 0x1594 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D1 JUMPI PUSH2 0x15D0 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DE DUP5 DUP3 DUP6 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1629 DUP3 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x1633 DUP2 DUP6 PUSH2 0x15F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1643 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x164C DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x166F DUP2 DUP5 PUSH2 0x161F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x168E JUMPI PUSH2 0x168D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169B DUP7 DUP3 DUP8 ADD PUSH2 0x145C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x16AC DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x16BD DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1701 DUP3 PUSH2 0x160F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1720 JUMPI PUSH2 0x171F PUSH2 0x16CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 PUSH2 0x1405 JUMP JUMPDEST SWAP1 POP PUSH2 0x173E DUP3 DUP3 PUSH2 0x16F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x175D JUMPI PUSH2 0x175C PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1784 PUSH2 0x177F DUP5 PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x1729 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 0x17A7 JUMPI PUSH2 0x17A6 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D0 JUMPI DUP1 PUSH2 0x17BC DUP9 DUP3 PUSH2 0x148F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17A9 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17FE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1772 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1825 JUMPI PUSH2 0x1824 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH2 0x182E DUP3 PUSH2 0x160F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x185B PUSH2 0x1856 DUP5 PUSH2 0x180B JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1877 JUMPI PUSH2 0x1876 PUSH2 0x1807 JUMP JUMPDEST JUMPDEST PUSH2 0x1882 DUP5 DUP3 DUP6 PUSH2 0x183B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x189E JUMPI PUSH2 0x189D PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x18AE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1849 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18D0 JUMPI PUSH2 0x18CF PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18DD DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x18EE DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x191B DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x193C JUMPI PUSH2 0x193B PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1948 DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1969 JUMPI PUSH2 0x1968 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1975 DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x199C JUMPI PUSH2 0x199B PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19BF PUSH2 0x19BA DUP5 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1729 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 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A0B JUMPI DUP1 PUSH2 0x19F7 DUP9 DUP3 PUSH2 0x145C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19E4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A29 JUMPI PUSH2 0x1A28 PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A39 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A58 JUMPI PUSH2 0x1A57 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A75 JUMPI PUSH2 0x1A74 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1A81 DUP6 DUP3 DUP7 ADD PUSH2 0x1A15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH2 0x1AA1 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1AAE DUP6 DUP3 DUP7 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AEA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AFB DUP4 DUP4 PUSH2 0x1AE1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B1D DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x1B27 DUP2 DUP6 PUSH2 0x1AC2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B32 DUP4 PUSH2 0x1AD2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B62 JUMPI DUP2 MLOAD PUSH2 0x1B49 DUP9 DUP3 PUSH2 0x1AF0 JUMP JUMPDEST SWAP8 POP PUSH2 0x1B54 DUP4 PUSH2 0x1B07 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1B35 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B87 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B98 DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BA2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB3 DUP2 PUSH2 0x1B8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BCF JUMPI PUSH2 0x1BCE PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1BDC DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1BED DUP6 DUP3 DUP7 ADD PUSH2 0x1BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0D JUMPI PUSH2 0x1C0C PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C1A DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C2B DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C4E JUMPI PUSH2 0x1C4D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C5B DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C6C DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1C7D DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1C8E DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1CAE PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1CBB DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1D0C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1D1F JUMPI PUSH2 0x1D1E PUSH2 0x1CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2E DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D47 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1D54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D6E PUSH0 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1D7B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DC2 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1DDB PUSH0 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1DE8 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1DF5 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1E02 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1E42 DUP3 PUSH2 0x1470 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E4D DUP4 PUSH2 0x1470 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1E65 JUMPI PUSH2 0x1E64 PUSH2 0x1E0B JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1E83 DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E97 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EC4 DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x1ECE DUP2 DUP6 PUSH2 0x1EAA JUMP JUMPDEST SWAP4 POP PUSH2 0x1EDE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x1EE7 DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F05 PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F12 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F1F PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1F2C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1F3E DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1F58 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F73 JUMPI PUSH2 0x1F72 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F80 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9C PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1FA9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1FBB DUP2 DUP7 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1FCF DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FE3 DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH30 0xB9D6338F9A6A136721A55BDC335876AC06F2DEE3B3DAC72665BCA32A6B1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"2054:316:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:132:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1378:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2082:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2156::49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4012:429:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2534:552;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3154:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3365:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3589:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2265:103:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2245:132:2;2322:7;2348:9;:13;2358:2;2348:13;;;;;;;;;;;:22;2362:7;2348:22;;;;;;;;;;;;;;;;2341:29;;2245:132;;;;:::o;1378:305::-;1480:4;1530:26;1515:41;;;:11;:41;;;;:109;;;;1587:37;1572:52;;;:11;:52;;;;1515:109;:161;;;;1640:36;1664:11;1640:23;:36::i;:::-;1515:161;1496:180;;1378:305;;;:::o;2082:103::-;2142:13;2174:4;2167:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2082:103;;;:::o;2156::49:-;2227:25;2233:2;2237;2241:6;2227:25;;;;;;;;;;;;:5;:25::i;:::-;2156:103;;;:::o;4012:429:2:-;4206:14;4223:12;:10;:12::i;:::-;4206:29;;4257:6;4249:14;;:4;:14;;;;:49;;;;;4268:30;4285:4;4291:6;4268:16;:30::i;:::-;4267:31;4249:49;4245:129;;;4350:6;4358:4;4321:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4245:129;4383:51;4406:4;4412:2;4416:3;4421:6;4429:4;4383:22;:51::i;:::-;4196:245;4012:429;;;;;:::o;2534:552::-;2658:16;2709:3;:10;2690:8;:15;:29;2686:121;;2768:3;:10;2780:8;:15;2742:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2686:121;2817:30;2864:8;:15;2850:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2817:63;;2896:9;2891:158;2915:8;:15;2911:1;:19;2891:158;;;2970:68;2980:30;3008:1;2980:8;:27;;:30;;;;:::i;:::-;3012:25;3035:1;3012:3;:22;;:25;;;;:::i;:::-;2970:9;:68::i;:::-;2951:13;2965:1;2951:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2932:3;;;;;2891:158;;;;3066:13;3059:20;;;2534:552;;;;:::o;3154:144::-;3239:52;3258:12;:10;:12::i;:::-;3272:8;3282;3239:18;:52::i;:::-;3154:144;;:::o;3365:157::-;3455:4;3478:18;:27;3497:7;3478:27;;;;;;;;;;;;;;;:37;3506:8;3478:37;;;;;;;;;;;;;;;;;;;;;;;;;3471:44;;3365:157;;;;:::o;3589:351::-;3712:14;3729:12;:10;:12::i;:::-;3712:29;;3763:6;3755:14;;:4;:14;;;;:49;;;;;3774:30;3791:4;3797:6;3774:16;:30::i;:::-;3773:31;3755:49;3751:129;;;3856:6;3864:4;3827:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3751:129;3889:44;3907:4;3913:2;3917;3921:5;3928:4;3889:17;:44::i;:::-;3702:238;3589:351;;;;;:::o;2265:103:49:-;2338:23;2344:4;2350:2;2354:6;2338:5;:23::i;:::-;2265:103;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;10754:346:2:-;10864:1;10850:16;;:2;:16;;;10846:88;;10920:1;10889:34;;;;;;;;;;;:::i;:::-;;;;;;;;10846:88;10944:20;10966:23;10993:29;11012:2;11016:5;10993:18;:29::i;:::-;10943:79;;;;11032:61;11067:1;11071:2;11075:3;11080:6;11088:4;11032:26;:61::i;:::-;10836:264;;10754:346;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9023:445:2:-;9230:1;9216:16;;:2;:16;;;9212:88;;9286:1;9255:34;;;;;;;;;;;:::i;:::-;;;;;;;;9212:88;9329:1;9313:18;;:4;:18;;;9309:88;;9383:1;9354:32;;;;;;;;;;;:::i;:::-;;;;;;;;9309:88;9406:55;9433:4;9439:2;9443:3;9448:6;9456:4;9406:26;:55::i;:::-;9023:445;;;;;:::o;15964:197:7:-;16050:11;16138:4;16133:3;16129:14;16122:4;16117:3;16113:14;16109:35;16103:42;16096:49;;15964:197;;;;:::o;16762:::-;16848:11;16936:4;16931:3;16927:14;16920:4;16915:3;16911:14;16907:35;16901:42;16894:49;;16762:197;;;;:::o;13276:315:2:-;13403:1;13383:22;;:8;:22;;;13379:94;;13459:1;13428:34;;;;;;;;;;;:::i;:::-;;;;;;;;13379:94;13520:8;13482:18;:25;13501:5;13482:25;;;;;;;;;;;;;;;:35;13508:8;13482:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13565:8;13543:41;;13558:5;13543:41;;;13575:8;13543:41;;;;;;:::i;:::-;;;;;;;;13276:315;;;:::o;8159:463::-;8295:1;8281:16;;:2;:16;;;8277:88;;8351:1;8320:34;;;;;;;;;;;:::i;:::-;;;;;;;;8277:88;8394:1;8378:18;;:4;:18;;;8374:88;;8448:1;8419:32;;;;;;;;;;;:::i;:::-;;;;;;;;8374:88;8472:20;8494:23;8521:29;8540:2;8544:5;8521:18;:29::i;:::-;8471:79;;;;8560:55;8587:4;8593:2;8597:3;8602:6;8610:4;8560:26;:55::i;:::-;8267:355;;8159:463;;;;;:::o;12107:329::-;12202:1;12186:18;;:4;:18;;;12182:88;;12256:1;12227:32;;;;;;;;;;;:::i;:::-;;;;;;;;12182:88;12280:20;12302:23;12329:29;12348:2;12352:5;12329:18;:29::i;:::-;12279:79;;;;12368:61;12395:4;12409:1;12413:3;12418:6;12368:61;;;;;;;;;;;;:26;:61::i;:::-;12172:264;;12107:329;;;:::o;13707:849::-;13815:23;13840;14001:4;13995:11;13985:21;;14071:1;14063:6;14056:17;14209:8;14202:4;14194:6;14190:17;14183:35;14331:4;14323:6;14319:17;14309:27;;14364:1;14356:6;14349:17;14405:8;14398:4;14390:6;14386:17;14379:35;14534:4;14526:6;14522:17;14516:4;14509:31;13707:849;;;;;:::o;7002:700::-;7203:30;7211:4;7217:2;7221:3;7226:6;7203:7;:30::i;:::-;7261:1;7247:16;;:2;:16;;;7243:453;;7279:16;7298:12;:10;:12::i;:::-;7279:31;;7342:1;7328:3;:10;:15;7324:362;;7363:10;7376:25;7399:1;7376:3;:22;;:25;;;;:::i;:::-;7363:38;;7419:13;7435:28;7461:1;7435:6;:25;;:28;;;;:::i;:::-;7419:44;;7481:72;7517:8;7527:4;7533:2;7537;7541:5;7548:4;7481:35;:72::i;:::-;7345:223;;7324:362;;;7592:79;7633:8;7643:4;7649:2;7653:3;7658:6;7666:4;7592:40;:79::i;:::-;7324:362;7265:431;7243:453;7002:700;;;;;:::o;5142:1281::-;5277:6;:13;5263:3;:10;:27;5259:117;;5339:3;:10;5351:6;:13;5313:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5259:117;5386:16;5405:12;:10;:12::i;:::-;5386:31;;5433:9;5428:691;5452:3;:10;5448:1;:14;5428:691;;;5483:10;5496:25;5519:1;5496:3;:22;;:25;;;;:::i;:::-;5483:38;;5535:13;5551:28;5577:1;5551:6;:25;;:28;;;;:::i;:::-;5535:44;;5614:1;5598:18;;:4;:18;;;5594:420;;5636:19;5658:9;:13;5668:2;5658:13;;;;;;;;;;;:19;5672:4;5658:19;;;;;;;;;;;;;;;;5636:41;;5713:5;5699:11;:19;5695:129;;;5776:4;5782:11;5795:5;5802:2;5749:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5695:129;5976:5;5962:11;:19;5940:9;:13;5950:2;5940:13;;;;;;;;;;;:19;5954:4;5940:19;;;;;;;;;;;;;;;:41;;;;5618:396;5594:420;6046:1;6032:16;;:2;:16;;;6028:81;;6089:5;6068:9;:13;6078:2;6068:13;;;;;;;;;;;:17;6082:2;6068:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6028:81;5469:650;;5464:3;;;;;5428:691;;;;6147:1;6133:3;:10;:15;6129:288;;6164:10;6177:25;6200:1;6177:3;:22;;:25;;;;:::i;:::-;6164:38;;6216:13;6232:28;6258:1;6232:6;:25;;:28;;;;:::i;:::-;6216:44;;6310:2;6279:45;;6304:4;6279:45;;6294:8;6279:45;;;6314:2;6318:5;6279:45;;;;;;;:::i;:::-;;;;;;;;6150:185;;6129:288;;;6390:2;6360:46;;6384:4;6360:46;;6374:8;6360:46;;;6394:3;6399:6;6360:46;;;;;;;:::i;:::-;;;;;;;;6129:288;5249:1174;5142:1281;;;;:::o;884:998:6:-;1100:1;1083:2;:14;;;:18;1079:797;;;1138:2;1121:38;;;1160:8;1170:4;1176:2;1180:5;1187:4;1121:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1117:749;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:1;1491:6;:13;:18;1487:365;;1634:2;1596:41;;;;;;;;;;;:::i;:::-;;;;;;;;1487:365;1804:6;1798:13;1789:6;1785:2;1781:15;1774:38;1117:749;1253:43;;;1241:55;;;:8;:55;;;;1237:189;;1404:2;1366:41;;;;;;;;;;;:::i;:::-;;;;;;;;1237:189;1193:247;1079:797;884:998;;;;;;:::o;2433:1065::-;2674:1;2657:2;:14;;;:18;2653:839;;;2712:2;2695:43;;;2739:8;2749:4;2755:3;2760:6;2768:4;2695:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2691:791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:1;3107:6;:13;:18;3103:365;;3250:2;3212:41;;;;;;;;;;;:::i;:::-;;;;;;;;3103:365;3420:6;3414:13;3405:6;3401:2;3397:15;3390:38;2691:791;2864:48;;;2852:60;;;:8;:60;;;;2848:194;;3020:2;2982:41;;;;;;;;;;;:::i;:::-;;;;;;;;2848:194;2774:282;2653:839;2433:1065;;;;;;:::o;7:75:53:-;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:139::-;3917:6;3912:3;3907;3901:23;3958:1;3949:6;3944:3;3940:16;3933:27;3828:139;;;:::o;3973:102::-;4014:6;4065:2;4061:7;4056:2;4049:5;4045:14;4041:28;4031:38;;3973:102;;;:::o;4081:377::-;4169:3;4197:39;4230:5;4197:39;:::i;:::-;4252:71;4316:6;4311:3;4252:71;:::i;:::-;4245:78;;4332:65;4390:6;4385:3;4378:4;4371:5;4367:16;4332:65;:::i;:::-;4422:29;4444:6;4422:29;:::i;:::-;4417:3;4413:39;4406:46;;4173:285;4081:377;;;;:::o;4464:313::-;4577:4;4615:2;4604:9;4600:18;4592:26;;4664:9;4658:4;4654:20;4650:1;4639:9;4635:17;4628:47;4692:78;4765:4;4756:6;4692:78;:::i;:::-;4684:86;;4464:313;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:117::-;5517:1;5514;5507:12;5531:180;5579:77;5576:1;5569:88;5676:4;5673:1;5666:15;5700:4;5697:1;5690:15;5717:281;5800:27;5822:4;5800:27;:::i;:::-;5792:6;5788:40;5930:6;5918:10;5915:22;5894:18;5882:10;5879:34;5876:62;5873:88;;;5941:18;;:::i;:::-;5873:88;5981:10;5977:2;5970:22;5760:238;5717:281;;:::o;6004:129::-;6038:6;6065:20;;:::i;:::-;6055:30;;6094:33;6122:4;6114:6;6094:33;:::i;:::-;6004:129;;;:::o;6139:311::-;6216:4;6306:18;6298:6;6295:30;6292:56;;;6328:18;;:::i;:::-;6292:56;6378:4;6370:6;6366:17;6358:25;;6438:4;6432;6428:15;6420:23;;6139:311;;;:::o;6456:117::-;6565:1;6562;6555:12;6596:710;6692:5;6717:81;6733:64;6790:6;6733:64;:::i;:::-;6717:81;:::i;:::-;6708:90;;6818:5;6847:6;6840:5;6833:21;6881:4;6874:5;6870:16;6863:23;;6934:4;6926:6;6922:17;6914:6;6910:30;6963:3;6955:6;6952:15;6949:122;;;6982:79;;:::i;:::-;6949:122;7097:6;7080:220;7114:6;7109:3;7106:15;7080:220;;;7189:3;7218:37;7251:3;7239:10;7218:37;:::i;:::-;7213:3;7206:50;7285:4;7280:3;7276:14;7269:21;;7156:144;7140:4;7135:3;7131:14;7124:21;;7080:220;;;7084:21;6698:608;;6596:710;;;;;:::o;7329:370::-;7400:5;7449:3;7442:4;7434:6;7430:17;7426:27;7416:122;;7457:79;;:::i;:::-;7416:122;7574:6;7561:20;7599:94;7689:3;7681:6;7674:4;7666:6;7662:17;7599:94;:::i;:::-;7590:103;;7406:293;7329:370;;;;:::o;7705:117::-;7814:1;7811;7804:12;7828:307;7889:4;7979:18;7971:6;7968:30;7965:56;;;8001:18;;:::i;:::-;7965:56;8039:29;8061:6;8039:29;:::i;:::-;8031:37;;8123:4;8117;8113:15;8105:23;;7828:307;;;:::o;8141:148::-;8239:6;8234:3;8229;8216:30;8280:1;8271:6;8266:3;8262:16;8255:27;8141:148;;;:::o;8295:423::-;8372:5;8397:65;8413:48;8454:6;8413:48;:::i;:::-;8397:65;:::i;:::-;8388:74;;8485:6;8478:5;8471:21;8523:4;8516:5;8512:16;8561:3;8552:6;8547:3;8543:16;8540:25;8537:112;;;8568:79;;:::i;:::-;8537:112;8658:54;8705:6;8700:3;8695;8658:54;:::i;:::-;8378:340;8295:423;;;;;:::o;8737:338::-;8792:5;8841:3;8834:4;8826:6;8822:17;8818:27;8808:122;;8849:79;;:::i;:::-;8808:122;8966:6;8953:20;8991:78;9065:3;9057:6;9050:4;9042:6;9038:17;8991:78;:::i;:::-;8982:87;;8798:277;8737:338;;;;:::o;9081:1509::-;9235:6;9243;9251;9259;9267;9316:3;9304:9;9295:7;9291:23;9287:33;9284:120;;;9323:79;;:::i;:::-;9284:120;9443:1;9468:53;9513:7;9504:6;9493:9;9489:22;9468:53;:::i;:::-;9458:63;;9414:117;9570:2;9596:53;9641:7;9632:6;9621:9;9617:22;9596:53;:::i;:::-;9586:63;;9541:118;9726:2;9715:9;9711:18;9698:32;9757:18;9749:6;9746:30;9743:117;;;9779:79;;:::i;:::-;9743:117;9884:78;9954:7;9945:6;9934:9;9930:22;9884:78;:::i;:::-;9874:88;;9669:303;10039:2;10028:9;10024:18;10011:32;10070:18;10062:6;10059:30;10056:117;;;10092:79;;:::i;:::-;10056:117;10197:78;10267:7;10258:6;10247:9;10243:22;10197:78;:::i;:::-;10187:88;;9982:303;10352:3;10341:9;10337:19;10324:33;10384:18;10376:6;10373:30;10370:117;;;10406:79;;:::i;:::-;10370:117;10511:62;10565:7;10556:6;10545:9;10541:22;10511:62;:::i;:::-;10501:72;;10295:288;9081:1509;;;;;;;;:::o;10596:311::-;10673:4;10763:18;10755:6;10752:30;10749:56;;;10785:18;;:::i;:::-;10749:56;10835:4;10827:6;10823:17;10815:25;;10895:4;10889;10885:15;10877:23;;10596:311;;;:::o;10930:710::-;11026:5;11051:81;11067:64;11124:6;11067:64;:::i;:::-;11051:81;:::i;:::-;11042:90;;11152:5;11181:6;11174:5;11167:21;11215:4;11208:5;11204:16;11197:23;;11268:4;11260:6;11256:17;11248:6;11244:30;11297:3;11289:6;11286:15;11283:122;;;11316:79;;:::i;:::-;11283:122;11431:6;11414:220;11448:6;11443:3;11440:15;11414:220;;;11523:3;11552:37;11585:3;11573:10;11552:37;:::i;:::-;11547:3;11540:50;11619:4;11614:3;11610:14;11603:21;;11490:144;11474:4;11469:3;11465:14;11458:21;;11414:220;;;11418:21;11032:608;;10930:710;;;;;:::o;11663:370::-;11734:5;11783:3;11776:4;11768:6;11764:17;11760:27;11750:122;;11791:79;;:::i;:::-;11750:122;11908:6;11895:20;11933:94;12023:3;12015:6;12008:4;12000:6;11996:17;11933:94;:::i;:::-;11924:103;;11740:293;11663:370;;;;:::o;12039:894::-;12157:6;12165;12214:2;12202:9;12193:7;12189:23;12185:32;12182:119;;;12220:79;;:::i;:::-;12182:119;12368:1;12357:9;12353:17;12340:31;12398:18;12390:6;12387:30;12384:117;;;12420:79;;:::i;:::-;12384:117;12525:78;12595:7;12586:6;12575:9;12571:22;12525:78;:::i;:::-;12515:88;;12311:302;12680:2;12669:9;12665:18;12652:32;12711:18;12703:6;12700:30;12697:117;;;12733:79;;:::i;:::-;12697:117;12838:78;12908:7;12899:6;12888:9;12884:22;12838:78;:::i;:::-;12828:88;;12623:303;12039:894;;;;;:::o;12939:114::-;13006:6;13040:5;13034:12;13024:22;;12939:114;;;:::o;13059:184::-;13158:11;13192:6;13187:3;13180:19;13232:4;13227:3;13223:14;13208:29;;13059:184;;;;:::o;13249:132::-;13316:4;13339:3;13331:11;;13369:4;13364:3;13360:14;13352:22;;13249:132;;;:::o;13387:108::-;13464:24;13482:5;13464:24;:::i;:::-;13459:3;13452:37;13387:108;;:::o;13501:179::-;13570:10;13591:46;13633:3;13625:6;13591:46;:::i;:::-;13669:4;13664:3;13660:14;13646:28;;13501:179;;;;:::o;13686:113::-;13756:4;13788;13783:3;13779:14;13771:22;;13686:113;;;:::o;13835:732::-;13954:3;13983:54;14031:5;13983:54;:::i;:::-;14053:86;14132:6;14127:3;14053:86;:::i;:::-;14046:93;;14163:56;14213:5;14163:56;:::i;:::-;14242:7;14273:1;14258:284;14283:6;14280:1;14277:13;14258:284;;;14359:6;14353:13;14386:63;14445:3;14430:13;14386:63;:::i;:::-;14379:70;;14472:60;14525:6;14472:60;:::i;:::-;14462:70;;14318:224;14305:1;14302;14298:9;14293:14;;14258:284;;;14262:14;14558:3;14551:10;;13959:608;;;13835:732;;;;:::o;14573:373::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:108;14934:4;14925:6;14831:108;:::i;:::-;14823:116;;14573:373;;;;:::o;14952:116::-;15022:21;15037:5;15022:21;:::i;:::-;15015:5;15012:32;15002:60;;15058:1;15055;15048:12;15002:60;14952:116;:::o;15074:133::-;15117:5;15155:6;15142:20;15133:29;;15171:30;15195:5;15171:30;:::i;:::-;15074:133;;;;:::o;15213:468::-;15278:6;15286;15335:2;15323:9;15314:7;15310:23;15306:32;15303:119;;;15341:79;;:::i;:::-;15303:119;15461:1;15486:53;15531:7;15522:6;15511:9;15507:22;15486:53;:::i;:::-;15476:63;;15432:117;15588:2;15614:50;15656:7;15647:6;15636:9;15632:22;15614:50;:::i;:::-;15604:60;;15559:115;15213:468;;;;;:::o;15687:474::-;15755:6;15763;15812:2;15800:9;15791:7;15787:23;15783:32;15780:119;;;15818:79;;:::i;:::-;15780:119;15938:1;15963:53;16008:7;15999:6;15988:9;15984:22;15963:53;:::i;:::-;15953:63;;15909:117;16065:2;16091:53;16136:7;16127:6;16116:9;16112:22;16091:53;:::i;:::-;16081:63;;16036:118;15687:474;;;;;:::o;16167:1089::-;16271:6;16279;16287;16295;16303;16352:3;16340:9;16331:7;16327:23;16323:33;16320:120;;;16359:79;;:::i;:::-;16320:120;16479:1;16504:53;16549:7;16540:6;16529:9;16525:22;16504:53;:::i;:::-;16494:63;;16450:117;16606:2;16632:53;16677:7;16668:6;16657:9;16653:22;16632:53;:::i;:::-;16622:63;;16577:118;16734:2;16760:53;16805:7;16796:6;16785:9;16781:22;16760:53;:::i;:::-;16750:63;;16705:118;16862:2;16888:53;16933:7;16924:6;16913:9;16909:22;16888:53;:::i;:::-;16878:63;;16833:118;17018:3;17007:9;17003:19;16990:33;17050:18;17042:6;17039:30;17036:117;;;17072:79;;:::i;:::-;17036:117;17177:62;17231:7;17222:6;17211:9;17207:22;17177:62;:::i;:::-;17167:72;;16961:288;16167:1089;;;;;;;;:::o;17262:180::-;17310:77;17307:1;17300:88;17407:4;17404:1;17397:15;17431:4;17428:1;17421:15;17448:320;17492:6;17529:1;17523:4;17519:12;17509:22;;17576:1;17570:4;17566:12;17597:18;17587:81;;17653:4;17645:6;17641:17;17631:27;;17587:81;17715:2;17707:6;17704:14;17684:18;17681:38;17678:84;;17734:18;;:::i;:::-;17678:84;17499:269;17448:320;;;:::o;17774:118::-;17861:24;17879:5;17861:24;:::i;:::-;17856:3;17849:37;17774:118;;:::o;17898:332::-;18019:4;18057:2;18046:9;18042:18;18034:26;;18070:71;18138:1;18127:9;18123:17;18114:6;18070:71;:::i;:::-;18151:72;18219:2;18208:9;18204:18;18195:6;18151:72;:::i;:::-;17898:332;;;;;:::o;18236:::-;18357:4;18395:2;18384:9;18380:18;18372:26;;18408:71;18476:1;18465:9;18461:17;18452:6;18408:71;:::i;:::-;18489:72;18557:2;18546:9;18542:18;18533:6;18489:72;:::i;:::-;18236:332;;;;;:::o;18574:180::-;18622:77;18619:1;18612:88;18719:4;18716:1;18709:15;18743:4;18740:1;18733:15;18760:222;18853:4;18891:2;18880:9;18876:18;18868:26;;18904:71;18972:1;18961:9;18957:17;18948:6;18904:71;:::i;:::-;18760:222;;;;:::o;18988:553::-;19165:4;19203:3;19192:9;19188:19;19180:27;;19217:71;19285:1;19274:9;19270:17;19261:6;19217:71;:::i;:::-;19298:72;19366:2;19355:9;19351:18;19342:6;19298:72;:::i;:::-;19380;19448:2;19437:9;19433:18;19424:6;19380:72;:::i;:::-;19462;19530:2;19519:9;19515:18;19506:6;19462:72;:::i;:::-;18988:553;;;;;;;:::o;19547:180::-;19595:77;19592:1;19585:88;19692:4;19689:1;19682:15;19716:4;19713:1;19706:15;19733:191;19773:3;19792:20;19810:1;19792:20;:::i;:::-;19787:25;;19826:20;19844:1;19826:20;:::i;:::-;19821:25;;19869:1;19866;19862:9;19855:16;;19890:3;19887:1;19884:10;19881:36;;;19897:18;;:::i;:::-;19881:36;19733:191;;;;:::o;19930:634::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20238:9;20232:4;20228:20;20224:1;20213:9;20209:17;20202:47;20266:108;20369:4;20360:6;20266:108;:::i;:::-;20258:116;;20421:9;20415:4;20411:20;20406:2;20395:9;20391:18;20384:48;20449:108;20552:4;20543:6;20449:108;:::i;:::-;20441:116;;19930:634;;;;;:::o;20570:98::-;20621:6;20655:5;20649:12;20639:22;;20570:98;;;:::o;20674:168::-;20757:11;20791:6;20786:3;20779:19;20831:4;20826:3;20822:14;20807:29;;20674:168;;;;:::o;20848:373::-;20934:3;20962:38;20994:5;20962:38;:::i;:::-;21016:70;21079:6;21074:3;21016:70;:::i;:::-;21009:77;;21095:65;21153:6;21148:3;21141:4;21134:5;21130:16;21095:65;:::i;:::-;21185:29;21207:6;21185:29;:::i;:::-;21180:3;21176:39;21169:46;;20938:283;20848:373;;;;:::o;21227:751::-;21450:4;21488:3;21477:9;21473:19;21465:27;;21502:71;21570:1;21559:9;21555:17;21546:6;21502:71;:::i;:::-;21583:72;21651:2;21640:9;21636:18;21627:6;21583:72;:::i;:::-;21665;21733:2;21722:9;21718:18;21709:6;21665:72;:::i;:::-;21747;21815:2;21804:9;21800:18;21791:6;21747:72;:::i;:::-;21867:9;21861:4;21857:20;21851:3;21840:9;21836:19;21829:49;21895:76;21966:4;21957:6;21895:76;:::i;:::-;21887:84;;21227:751;;;;;;;;:::o;21984:141::-;22040:5;22071:6;22065:13;22056:22;;22087:32;22113:5;22087:32;:::i;:::-;21984:141;;;;:::o;22131:349::-;22200:6;22249:2;22237:9;22228:7;22224:23;22220:32;22217:119;;;22255:79;;:::i;:::-;22217:119;22375:1;22400:63;22455:7;22446:6;22435:9;22431:22;22400:63;:::i;:::-;22390:73;;22346:127;22131:349;;;;:::o;22486:1053::-;22809:4;22847:3;22836:9;22832:19;22824:27;;22861:71;22929:1;22918:9;22914:17;22905:6;22861:71;:::i;:::-;22942:72;23010:2;22999:9;22995:18;22986:6;22942:72;:::i;:::-;23061:9;23055:4;23051:20;23046:2;23035:9;23031:18;23024:48;23089:108;23192:4;23183:6;23089:108;:::i;:::-;23081:116;;23244:9;23238:4;23234:20;23229:2;23218:9;23214:18;23207:48;23272:108;23375:4;23366:6;23272:108;:::i;:::-;23264:116;;23428:9;23422:4;23418:20;23412:3;23401:9;23397:19;23390:49;23456:76;23527:4;23518:6;23456:76;:::i;:::-;23448:84;;22486:1053;;;;;;;;:::o"},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","burn(address,uint256,uint256)":"f5298aca","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,uint256)":"156e29f6","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"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\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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.\"},\"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 ERC]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"title\":\"MockERC1155\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC1155 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC1155\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"},"MockERC20":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintPayable","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50610e138061001c5f395ff3fe6080604052600436106100dc575f3560e01c806340c10f191161007e57806395d89b411161005857806395d89b41146102bc578063a9059cbb146102e6578063d505accf14610322578063dd62ed3e1461034a576100dc565b806340c10f191461021c57806370a08231146102445780637ecebe0014610280576100dc565b806318160ddd116100ba57806318160ddd1461016257806323b872dd1461018c578063313ce567146101c85780633644e515146101f2576100dc565b806306fdde03146100e0578063095ea7b31461010a57806317d304b014610146575b5f80fd5b3480156100eb575f80fd5b506100f4610386565b60405161010191906109bf565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190610a70565b6103c3565b60405161013d9190610ac8565b60405180910390f35b610160600480360381019061015b9190610a70565b610413565b005b34801561016d575f80fd5b50610176610470565b6040516101839190610af0565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad9190610b09565b610481565b6040516101bf9190610ac8565b60405180910390f35b3480156101d3575f80fd5b506101dc610552565b6040516101e99190610b74565b60405180910390f35b3480156101fd575f80fd5b5061020661055a565b6040516102139190610ba5565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d9190610a70565b6105ea565b005b34801561024f575f80fd5b5061026a60048036038101906102659190610bbe565b6105f8565b6040516102779190610af0565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190610bbe565b610611565b6040516102b39190610af0565b60405180910390f35b3480156102c7575f80fd5b506102d061062a565b6040516102dd91906109bf565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190610a70565b610667565b6040516103199190610ac8565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190610c3d565b6106f5565b005b348015610355575f80fd5b50610370600480360381019061036b9190610cda565b610891565b60405161037d9190610af0565b60405180910390f35b60606040518060400160405280600a81526020017f4d6f636b20455243323000000000000000000000000000000000000000000000815250905090565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b6064816104209190610d45565b341015610462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045990610dbf565b60405180910390fd5b61046c82826108af565b5050565b5f6805345cdf77eb68f44c54905090565b5f61048d848484610941565b8360601b33602052637f5e9f208117600c526034600c20805460018101156104ca57808511156104c4576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c208054808711156104f05763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050505050610547848484610946565b600190509392505050565b5f6012905090565b5f8061056461094b565b90505f801b810361058157610577610386565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6105f482826108af565b5050565b5f6387a211a2600c52815f526020600c20549050919050565b5f6338377508600c52815f526020600c20549050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b5f610673338484610941565b6387a211a2600c52335f526020600c2080548084111561069a5763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506106eb338484610946565b6001905092915050565b5f6106fe61094b565b90505f801b810361071b57610711610386565b8051906020012090505b8442111561073057631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d51146108385763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b6108ba5f8383610941565b6805345cdf77eb68f44c54818101818110156108dd5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505061093d5f8383610946565b5050565b505050565b505050565b5f90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109918261094f565b61099b8185610959565b93506109ab818560208601610969565b6109b481610977565b840191505092915050565b5f6020820190508181035f8301526109d78184610987565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a0c826109e3565b9050919050565b610a1c81610a02565b8114610a26575f80fd5b50565b5f81359050610a3781610a13565b92915050565b5f819050919050565b610a4f81610a3d565b8114610a59575f80fd5b50565b5f81359050610a6a81610a46565b92915050565b5f8060408385031215610a8657610a856109df565b5b5f610a9385828601610a29565b9250506020610aa485828601610a5c565b9150509250929050565b5f8115159050919050565b610ac281610aae565b82525050565b5f602082019050610adb5f830184610ab9565b92915050565b610aea81610a3d565b82525050565b5f602082019050610b035f830184610ae1565b92915050565b5f805f60608486031215610b2057610b1f6109df565b5b5f610b2d86828701610a29565b9350506020610b3e86828701610a29565b9250506040610b4f86828701610a5c565b9150509250925092565b5f60ff82169050919050565b610b6e81610b59565b82525050565b5f602082019050610b875f830184610b65565b92915050565b5f819050919050565b610b9f81610b8d565b82525050565b5f602082019050610bb85f830184610b96565b92915050565b5f60208284031215610bd357610bd26109df565b5b5f610be084828501610a29565b91505092915050565b610bf281610b59565b8114610bfc575f80fd5b50565b5f81359050610c0d81610be9565b92915050565b610c1c81610b8d565b8114610c26575f80fd5b50565b5f81359050610c3781610c13565b92915050565b5f805f805f805f60e0888a031215610c5857610c576109df565b5b5f610c658a828b01610a29565b9750506020610c768a828b01610a29565b9650506040610c878a828b01610a5c565b9550506060610c988a828b01610a5c565b9450506080610ca98a828b01610bff565b93505060a0610cba8a828b01610c29565b92505060c0610ccb8a828b01610c29565b91505092959891949750929550565b5f8060408385031215610cf057610cef6109df565b5b5f610cfd85828601610a29565b9250506020610d0e85828601610a29565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d4f82610a3d565b9150610d5a83610a3d565b925082610d6a57610d69610d18565b5b828204905092915050565b7f4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921000000005f82015250565b5f610da9601c83610959565b9150610db482610d75565b602082019050919050565b5f6020820190508181035f830152610dd681610d9d565b905091905056fea26469706673582212206dfa065afeadb670793b85c903684a7900b7a0f5a22e73698eccec3175ab4c7a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xE13 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDC JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x34A JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x280 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xBA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1F2 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x17D304B0 EQ PUSH2 0x146 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x115 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x197 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x611 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0x62A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x667 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x343 SWAP2 SWAP1 PUSH2 0xC3D JUMP JUMPDEST PUSH2 0x6F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH2 0x891 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243323000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x64 DUP2 PUSH2 0x420 SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST CALLVALUE LT ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x46C DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48D DUP5 DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x4CA JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x4C4 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x4F0 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x547 DUP5 DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x564 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x581 JUMPI PUSH2 0x577 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x5F4 DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x673 CALLER DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0x69A JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x6EB CALLER DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FE PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x71B JUMPI PUSH2 0x711 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0x730 JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0x838 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8BA PUSH0 DUP4 DUP4 PUSH2 0x941 JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x8DD JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x93D PUSH0 DUP4 DUP4 PUSH2 0x946 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x991 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH2 0x99B DUP2 DUP6 PUSH2 0x959 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x969 JUMP JUMPDEST PUSH2 0x9B4 DUP2 PUSH2 0x977 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9D7 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4F DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP2 EQ PUSH2 0xA59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA6A DUP2 PUSH2 0xA46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH2 0xA85 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA93 DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA4 DUP6 DUP3 DUP7 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC2 DUP2 PUSH2 0xAAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADB PUSH0 DUP4 ADD DUP5 PUSH2 0xAB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEA DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB03 PUSH0 DUP4 ADD DUP5 PUSH2 0xAE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH2 0xB1F PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB2D DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB3E DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB4F DUP7 DUP3 DUP8 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB87 PUSH0 DUP4 ADD DUP5 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB8 PUSH0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBD3 JUMPI PUSH2 0xBD2 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBE0 DUP5 DUP3 DUP6 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF2 DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP2 EQ PUSH2 0xBFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC0D DUP2 PUSH2 0xBE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP2 EQ PUSH2 0xC26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC37 DUP2 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC57 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC65 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0xC76 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0xC87 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0xC98 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0xCA9 DUP11 DUP3 DUP12 ADD PUSH2 0xBFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0xCBA DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0xCCB DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCEF PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCFD DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0E DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD4F DUP3 PUSH2 0xA3D JUMP JUMPDEST SWAP2 POP PUSH2 0xD5A DUP4 PUSH2 0xA3D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD6A JUMPI PUSH2 0xD69 PUSH2 0xD18 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6F636B45524332303A2067696D6D65206D6F7265206D6F6E65792100000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA9 PUSH1 0x1C DUP4 PUSH2 0x959 JUMP JUMPDEST SWAP2 POP PUSH2 0xDB4 DUP3 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDD6 DUP2 PUSH2 0xD9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xFA065AFEADB670793B85C903684A PUSH26 0xB7A0F5A22E73698ECCEC3175AB4C7A64736F6C634300081900 CALLER ","sourceMap":"1467:501:49:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_8242":{"entryPoint":1370,"id":8242,"parameterSlots":0,"returnSlots":1},"@_afterTokenTransfer_8368":{"entryPoint":2374,"id":8368,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_8357":{"entryPoint":2369,"id":8357,"parameterSlots":3,"returnSlots":0},"@_constantNameHash_8160":{"entryPoint":2379,"id":8160,"parameterSlots":0,"returnSlots":1},"@_mint_8270":{"entryPoint":2223,"id":8270,"parameterSlots":2,"returnSlots":0},"@allowance_8083":{"entryPoint":2193,"id":8083,"parameterSlots":2,"returnSlots":1},"@approve_8097":{"entryPoint":963,"id":8097,"parameterSlots":2,"returnSlots":1},"@balanceOf_8071":{"entryPoint":1528,"id":8071,"parameterSlots":1,"returnSlots":1},"@decimals_8053":{"entryPoint":1362,"id":8053,"parameterSlots":0,"returnSlots":1},"@mintPayable_17855":{"entryPoint":1043,"id":17855,"parameterSlots":2,"returnSlots":0},"@mint_17832":{"entryPoint":1514,"id":17832,"parameterSlots":2,"returnSlots":0},"@name_17810":{"entryPoint":902,"id":17810,"parameterSlots":0,"returnSlots":1},"@nonces_8170":{"entryPoint":1553,"id":8170,"parameterSlots":1,"returnSlots":1},"@permit_8212":{"entryPoint":1781,"id":8212,"parameterSlots":7,"returnSlots":0},"@symbol_17819":{"entryPoint":1578,"id":17819,"parameterSlots":0,"returnSlots":1},"@totalSupply_8061":{"entryPoint":1136,"id":8061,"parameterSlots":0,"returnSlots":1},"@transferFrom_8153":{"entryPoint":1153,"id":8153,"parameterSlots":3,"returnSlots":1},"@transfer_8125":{"entryPoint":1639,"id":8125,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2601,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3113,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8":{"entryPoint":3071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3006,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3290,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2825,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":3133,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2672,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2745,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2439,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack":{"entryPoint":3485,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2785,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":2917,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2760,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":2981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3519,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2800,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":2932,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2383,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2393,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":3397,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2562,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2734,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":2957,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2531,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2621,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":2905,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2409,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":3352,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2527,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2423,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417":{"entryPoint":3445,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2579,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3091,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2630,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":3049,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9280:53","nodeType":"YulBlock","src":"0:9280:53","statements":[{"body":{"nativeSrc":"66:40:53","nodeType":"YulBlock","src":"66:40:53","statements":[{"nativeSrc":"77:22:53","nodeType":"YulAssignment","src":"77:22:53","value":{"arguments":[{"name":"value","nativeSrc":"93:5:53","nodeType":"YulIdentifier","src":"93:5:53"}],"functionName":{"name":"mload","nativeSrc":"87:5:53","nodeType":"YulIdentifier","src":"87:5:53"},"nativeSrc":"87:12:53","nodeType":"YulFunctionCall","src":"87:12:53"},"variableNames":[{"name":"length","nativeSrc":"77:6:53","nodeType":"YulIdentifier","src":"77:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:53","nodeType":"YulTypedName","src":"49:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:53","nodeType":"YulTypedName","src":"59:6:53","type":""}],"src":"7:99:53"},{"body":{"nativeSrc":"208:73:53","nodeType":"YulBlock","src":"208:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:53","nodeType":"YulIdentifier","src":"225:3:53"},{"name":"length","nativeSrc":"230:6:53","nodeType":"YulIdentifier","src":"230:6:53"}],"functionName":{"name":"mstore","nativeSrc":"218:6:53","nodeType":"YulIdentifier","src":"218:6:53"},"nativeSrc":"218:19:53","nodeType":"YulFunctionCall","src":"218:19:53"},"nativeSrc":"218:19:53","nodeType":"YulExpressionStatement","src":"218:19:53"},{"nativeSrc":"246:29:53","nodeType":"YulAssignment","src":"246:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:53","nodeType":"YulIdentifier","src":"265:3:53"},{"kind":"number","nativeSrc":"270:4:53","nodeType":"YulLiteral","src":"270:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:53","nodeType":"YulIdentifier","src":"261:3:53"},"nativeSrc":"261:14:53","nodeType":"YulFunctionCall","src":"261:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:53","nodeType":"YulIdentifier","src":"246:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:53","nodeType":"YulTypedName","src":"180:3:53","type":""},{"name":"length","nativeSrc":"185:6:53","nodeType":"YulTypedName","src":"185:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:53","nodeType":"YulTypedName","src":"196:11:53","type":""}],"src":"112:169:53"},{"body":{"nativeSrc":"349:77:53","nodeType":"YulBlock","src":"349:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:53","nodeType":"YulIdentifier","src":"366:3:53"},{"name":"src","nativeSrc":"371:3:53","nodeType":"YulIdentifier","src":"371:3:53"},{"name":"length","nativeSrc":"376:6:53","nodeType":"YulIdentifier","src":"376:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:53","nodeType":"YulIdentifier","src":"360:5:53"},"nativeSrc":"360:23:53","nodeType":"YulFunctionCall","src":"360:23:53"},"nativeSrc":"360:23:53","nodeType":"YulExpressionStatement","src":"360:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:53","nodeType":"YulIdentifier","src":"403:3:53"},{"name":"length","nativeSrc":"408:6:53","nodeType":"YulIdentifier","src":"408:6:53"}],"functionName":{"name":"add","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:16:53","nodeType":"YulFunctionCall","src":"399:16:53"},{"kind":"number","nativeSrc":"417:1:53","nodeType":"YulLiteral","src":"417:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:53","nodeType":"YulIdentifier","src":"392:6:53"},"nativeSrc":"392:27:53","nodeType":"YulFunctionCall","src":"392:27:53"},"nativeSrc":"392:27:53","nodeType":"YulExpressionStatement","src":"392:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:53","nodeType":"YulTypedName","src":"331:3:53","type":""},{"name":"dst","nativeSrc":"336:3:53","nodeType":"YulTypedName","src":"336:3:53","type":""},{"name":"length","nativeSrc":"341:6:53","nodeType":"YulTypedName","src":"341:6:53","type":""}],"src":"287:139:53"},{"body":{"nativeSrc":"480:54:53","nodeType":"YulBlock","src":"480:54:53","statements":[{"nativeSrc":"490:38:53","nodeType":"YulAssignment","src":"490:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:53","nodeType":"YulIdentifier","src":"508:5:53"},{"kind":"number","nativeSrc":"515:2:53","nodeType":"YulLiteral","src":"515:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:53","nodeType":"YulIdentifier","src":"504:3:53"},"nativeSrc":"504:14:53","nodeType":"YulFunctionCall","src":"504:14:53"},{"arguments":[{"kind":"number","nativeSrc":"524:2:53","nodeType":"YulLiteral","src":"524:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:53","nodeType":"YulIdentifier","src":"520:3:53"},"nativeSrc":"520:7:53","nodeType":"YulFunctionCall","src":"520:7:53"}],"functionName":{"name":"and","nativeSrc":"500:3:53","nodeType":"YulIdentifier","src":"500:3:53"},"nativeSrc":"500:28:53","nodeType":"YulFunctionCall","src":"500:28:53"},"variableNames":[{"name":"result","nativeSrc":"490:6:53","nodeType":"YulIdentifier","src":"490:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:53","nodeType":"YulTypedName","src":"463:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:53","nodeType":"YulTypedName","src":"473:6:53","type":""}],"src":"432:102:53"},{"body":{"nativeSrc":"632:285:53","nodeType":"YulBlock","src":"632:285:53","statements":[{"nativeSrc":"642:53:53","nodeType":"YulVariableDeclaration","src":"642:53:53","value":{"arguments":[{"name":"value","nativeSrc":"689:5:53","nodeType":"YulIdentifier","src":"689:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:53","nodeType":"YulIdentifier","src":"656:32:53"},"nativeSrc":"656:39:53","nodeType":"YulFunctionCall","src":"656:39:53"},"variables":[{"name":"length","nativeSrc":"646:6:53","nodeType":"YulTypedName","src":"646:6:53","type":""}]},{"nativeSrc":"704:78:53","nodeType":"YulAssignment","src":"704:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:53","nodeType":"YulIdentifier","src":"770:3:53"},{"name":"length","nativeSrc":"775:6:53","nodeType":"YulIdentifier","src":"775:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:53","nodeType":"YulIdentifier","src":"711:58:53"},"nativeSrc":"711:71:53","nodeType":"YulFunctionCall","src":"711:71:53"},"variableNames":[{"name":"pos","nativeSrc":"704:3:53","nodeType":"YulIdentifier","src":"704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:53","nodeType":"YulIdentifier","src":"830:5:53"},{"kind":"number","nativeSrc":"837:4:53","nodeType":"YulLiteral","src":"837:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:53","nodeType":"YulIdentifier","src":"826:3:53"},"nativeSrc":"826:16:53","nodeType":"YulFunctionCall","src":"826:16:53"},{"name":"pos","nativeSrc":"844:3:53","nodeType":"YulIdentifier","src":"844:3:53"},{"name":"length","nativeSrc":"849:6:53","nodeType":"YulIdentifier","src":"849:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:53","nodeType":"YulIdentifier","src":"791:34:53"},"nativeSrc":"791:65:53","nodeType":"YulFunctionCall","src":"791:65:53"},"nativeSrc":"791:65:53","nodeType":"YulExpressionStatement","src":"791:65:53"},{"nativeSrc":"865:46:53","nodeType":"YulAssignment","src":"865:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:53","nodeType":"YulIdentifier","src":"876:3:53"},{"arguments":[{"name":"length","nativeSrc":"903:6:53","nodeType":"YulIdentifier","src":"903:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:53","nodeType":"YulIdentifier","src":"881:21:53"},"nativeSrc":"881:29:53","nodeType":"YulFunctionCall","src":"881:29:53"}],"functionName":{"name":"add","nativeSrc":"872:3:53","nodeType":"YulIdentifier","src":"872:3:53"},"nativeSrc":"872:39:53","nodeType":"YulFunctionCall","src":"872:39:53"},"variableNames":[{"name":"end","nativeSrc":"865:3:53","nodeType":"YulIdentifier","src":"865:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:53","nodeType":"YulTypedName","src":"613:5:53","type":""},{"name":"pos","nativeSrc":"620:3:53","nodeType":"YulTypedName","src":"620:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:53","nodeType":"YulTypedName","src":"628:3:53","type":""}],"src":"540:377:53"},{"body":{"nativeSrc":"1041:195:53","nodeType":"YulBlock","src":"1041:195:53","statements":[{"nativeSrc":"1051:26:53","nodeType":"YulAssignment","src":"1051:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:53","nodeType":"YulIdentifier","src":"1063:9:53"},{"kind":"number","nativeSrc":"1074:2:53","nodeType":"YulLiteral","src":"1074:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:53","nodeType":"YulIdentifier","src":"1059:3:53"},"nativeSrc":"1059:18:53","nodeType":"YulFunctionCall","src":"1059:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:53","nodeType":"YulIdentifier","src":"1051:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:53","nodeType":"YulIdentifier","src":"1098:9:53"},{"kind":"number","nativeSrc":"1109:1:53","nodeType":"YulLiteral","src":"1109:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:53","nodeType":"YulIdentifier","src":"1094:3:53"},"nativeSrc":"1094:17:53","nodeType":"YulFunctionCall","src":"1094:17:53"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:53","nodeType":"YulIdentifier","src":"1117:4:53"},{"name":"headStart","nativeSrc":"1123:9:53","nodeType":"YulIdentifier","src":"1123:9:53"}],"functionName":{"name":"sub","nativeSrc":"1113:3:53","nodeType":"YulIdentifier","src":"1113:3:53"},"nativeSrc":"1113:20:53","nodeType":"YulFunctionCall","src":"1113:20:53"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:53","nodeType":"YulIdentifier","src":"1087:6:53"},"nativeSrc":"1087:47:53","nodeType":"YulFunctionCall","src":"1087:47:53"},"nativeSrc":"1087:47:53","nodeType":"YulExpressionStatement","src":"1087:47:53"},{"nativeSrc":"1143:86:53","nodeType":"YulAssignment","src":"1143:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:53","nodeType":"YulIdentifier","src":"1215:6:53"},{"name":"tail","nativeSrc":"1224:4:53","nodeType":"YulIdentifier","src":"1224:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:53","nodeType":"YulIdentifier","src":"1151:63:53"},"nativeSrc":"1151:78:53","nodeType":"YulFunctionCall","src":"1151:78:53"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:53","nodeType":"YulIdentifier","src":"1143:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:53","nodeType":"YulTypedName","src":"1013:9:53","type":""},{"name":"value0","nativeSrc":"1025:6:53","nodeType":"YulTypedName","src":"1025:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:53","nodeType":"YulTypedName","src":"1036:4:53","type":""}],"src":"923:313:53"},{"body":{"nativeSrc":"1282:35:53","nodeType":"YulBlock","src":"1282:35:53","statements":[{"nativeSrc":"1292:19:53","nodeType":"YulAssignment","src":"1292:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:53","nodeType":"YulLiteral","src":"1308:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:53","nodeType":"YulIdentifier","src":"1302:5:53"},"nativeSrc":"1302:9:53","nodeType":"YulFunctionCall","src":"1302:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:53","nodeType":"YulIdentifier","src":"1292:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:53","nodeType":"YulTypedName","src":"1275:6:53","type":""}],"src":"1242:75:53"},{"body":{"nativeSrc":"1412:28:53","nodeType":"YulBlock","src":"1412:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:53","nodeType":"YulLiteral","src":"1429:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:53","nodeType":"YulLiteral","src":"1432:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:53","nodeType":"YulIdentifier","src":"1422:6:53"},"nativeSrc":"1422:12:53","nodeType":"YulFunctionCall","src":"1422:12:53"},"nativeSrc":"1422:12:53","nodeType":"YulExpressionStatement","src":"1422:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:53","nodeType":"YulFunctionDefinition","src":"1323:117:53"},{"body":{"nativeSrc":"1535:28:53","nodeType":"YulBlock","src":"1535:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:53","nodeType":"YulLiteral","src":"1552:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:53","nodeType":"YulLiteral","src":"1555:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:53","nodeType":"YulIdentifier","src":"1545:6:53"},"nativeSrc":"1545:12:53","nodeType":"YulFunctionCall","src":"1545:12:53"},"nativeSrc":"1545:12:53","nodeType":"YulExpressionStatement","src":"1545:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:53","nodeType":"YulFunctionDefinition","src":"1446:117:53"},{"body":{"nativeSrc":"1614:81:53","nodeType":"YulBlock","src":"1614:81:53","statements":[{"nativeSrc":"1624:65:53","nodeType":"YulAssignment","src":"1624:65:53","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:53","nodeType":"YulIdentifier","src":"1639:5:53"},{"kind":"number","nativeSrc":"1646:42:53","nodeType":"YulLiteral","src":"1646:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:53","nodeType":"YulIdentifier","src":"1635:3:53"},"nativeSrc":"1635:54:53","nodeType":"YulFunctionCall","src":"1635:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:53","nodeType":"YulIdentifier","src":"1624:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:53","nodeType":"YulTypedName","src":"1596:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:53","nodeType":"YulTypedName","src":"1606:7:53","type":""}],"src":"1569:126:53"},{"body":{"nativeSrc":"1746:51:53","nodeType":"YulBlock","src":"1746:51:53","statements":[{"nativeSrc":"1756:35:53","nodeType":"YulAssignment","src":"1756:35:53","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:53","nodeType":"YulIdentifier","src":"1785:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:53","nodeType":"YulIdentifier","src":"1767:17:53"},"nativeSrc":"1767:24:53","nodeType":"YulFunctionCall","src":"1767:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:53","nodeType":"YulIdentifier","src":"1756:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:53","nodeType":"YulTypedName","src":"1728:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:53","nodeType":"YulTypedName","src":"1738:7:53","type":""}],"src":"1701:96:53"},{"body":{"nativeSrc":"1846:79:53","nodeType":"YulBlock","src":"1846:79:53","statements":[{"body":{"nativeSrc":"1903:16:53","nodeType":"YulBlock","src":"1903:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:53","nodeType":"YulLiteral","src":"1912:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:53","nodeType":"YulLiteral","src":"1915:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:53","nodeType":"YulIdentifier","src":"1905:6:53"},"nativeSrc":"1905:12:53","nodeType":"YulFunctionCall","src":"1905:12:53"},"nativeSrc":"1905:12:53","nodeType":"YulExpressionStatement","src":"1905:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:53","nodeType":"YulIdentifier","src":"1869:5:53"},{"arguments":[{"name":"value","nativeSrc":"1894:5:53","nodeType":"YulIdentifier","src":"1894:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:53","nodeType":"YulIdentifier","src":"1876:17:53"},"nativeSrc":"1876:24:53","nodeType":"YulFunctionCall","src":"1876:24:53"}],"functionName":{"name":"eq","nativeSrc":"1866:2:53","nodeType":"YulIdentifier","src":"1866:2:53"},"nativeSrc":"1866:35:53","nodeType":"YulFunctionCall","src":"1866:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:53","nodeType":"YulIdentifier","src":"1859:6:53"},"nativeSrc":"1859:43:53","nodeType":"YulFunctionCall","src":"1859:43:53"},"nativeSrc":"1856:63:53","nodeType":"YulIf","src":"1856:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:53","nodeType":"YulTypedName","src":"1839:5:53","type":""}],"src":"1803:122:53"},{"body":{"nativeSrc":"1983:87:53","nodeType":"YulBlock","src":"1983:87:53","statements":[{"nativeSrc":"1993:29:53","nodeType":"YulAssignment","src":"1993:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:53","nodeType":"YulIdentifier","src":"2015:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:53","nodeType":"YulIdentifier","src":"2002:12:53"},"nativeSrc":"2002:20:53","nodeType":"YulFunctionCall","src":"2002:20:53"},"variableNames":[{"name":"value","nativeSrc":"1993:5:53","nodeType":"YulIdentifier","src":"1993:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:53","nodeType":"YulIdentifier","src":"2058:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:53","nodeType":"YulIdentifier","src":"2031:26:53"},"nativeSrc":"2031:33:53","nodeType":"YulFunctionCall","src":"2031:33:53"},"nativeSrc":"2031:33:53","nodeType":"YulExpressionStatement","src":"2031:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:53","nodeType":"YulTypedName","src":"1961:6:53","type":""},{"name":"end","nativeSrc":"1969:3:53","nodeType":"YulTypedName","src":"1969:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:53","nodeType":"YulTypedName","src":"1977:5:53","type":""}],"src":"1931:139:53"},{"body":{"nativeSrc":"2121:32:53","nodeType":"YulBlock","src":"2121:32:53","statements":[{"nativeSrc":"2131:16:53","nodeType":"YulAssignment","src":"2131:16:53","value":{"name":"value","nativeSrc":"2142:5:53","nodeType":"YulIdentifier","src":"2142:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:53","nodeType":"YulIdentifier","src":"2131:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:53","nodeType":"YulTypedName","src":"2103:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:53","nodeType":"YulTypedName","src":"2113:7:53","type":""}],"src":"2076:77:53"},{"body":{"nativeSrc":"2202:79:53","nodeType":"YulBlock","src":"2202:79:53","statements":[{"body":{"nativeSrc":"2259:16:53","nodeType":"YulBlock","src":"2259:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:53","nodeType":"YulLiteral","src":"2268:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:53","nodeType":"YulLiteral","src":"2271:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:53","nodeType":"YulIdentifier","src":"2261:6:53"},"nativeSrc":"2261:12:53","nodeType":"YulFunctionCall","src":"2261:12:53"},"nativeSrc":"2261:12:53","nodeType":"YulExpressionStatement","src":"2261:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:53","nodeType":"YulIdentifier","src":"2225:5:53"},{"arguments":[{"name":"value","nativeSrc":"2250:5:53","nodeType":"YulIdentifier","src":"2250:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:53","nodeType":"YulIdentifier","src":"2232:17:53"},"nativeSrc":"2232:24:53","nodeType":"YulFunctionCall","src":"2232:24:53"}],"functionName":{"name":"eq","nativeSrc":"2222:2:53","nodeType":"YulIdentifier","src":"2222:2:53"},"nativeSrc":"2222:35:53","nodeType":"YulFunctionCall","src":"2222:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:53","nodeType":"YulIdentifier","src":"2215:6:53"},"nativeSrc":"2215:43:53","nodeType":"YulFunctionCall","src":"2215:43:53"},"nativeSrc":"2212:63:53","nodeType":"YulIf","src":"2212:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:53","nodeType":"YulTypedName","src":"2195:5:53","type":""}],"src":"2159:122:53"},{"body":{"nativeSrc":"2339:87:53","nodeType":"YulBlock","src":"2339:87:53","statements":[{"nativeSrc":"2349:29:53","nodeType":"YulAssignment","src":"2349:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:53","nodeType":"YulIdentifier","src":"2371:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:53","nodeType":"YulIdentifier","src":"2358:12:53"},"nativeSrc":"2358:20:53","nodeType":"YulFunctionCall","src":"2358:20:53"},"variableNames":[{"name":"value","nativeSrc":"2349:5:53","nodeType":"YulIdentifier","src":"2349:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:53","nodeType":"YulIdentifier","src":"2414:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:53","nodeType":"YulIdentifier","src":"2387:26:53"},"nativeSrc":"2387:33:53","nodeType":"YulFunctionCall","src":"2387:33:53"},"nativeSrc":"2387:33:53","nodeType":"YulExpressionStatement","src":"2387:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:53","nodeType":"YulTypedName","src":"2317:6:53","type":""},{"name":"end","nativeSrc":"2325:3:53","nodeType":"YulTypedName","src":"2325:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:53","nodeType":"YulTypedName","src":"2333:5:53","type":""}],"src":"2287:139:53"},{"body":{"nativeSrc":"2515:391:53","nodeType":"YulBlock","src":"2515:391:53","statements":[{"body":{"nativeSrc":"2561:83:53","nodeType":"YulBlock","src":"2561:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:53","nodeType":"YulIdentifier","src":"2563:77:53"},"nativeSrc":"2563:79:53","nodeType":"YulFunctionCall","src":"2563:79:53"},"nativeSrc":"2563:79:53","nodeType":"YulExpressionStatement","src":"2563:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:53","nodeType":"YulIdentifier","src":"2536:7:53"},{"name":"headStart","nativeSrc":"2545:9:53","nodeType":"YulIdentifier","src":"2545:9:53"}],"functionName":{"name":"sub","nativeSrc":"2532:3:53","nodeType":"YulIdentifier","src":"2532:3:53"},"nativeSrc":"2532:23:53","nodeType":"YulFunctionCall","src":"2532:23:53"},{"kind":"number","nativeSrc":"2557:2:53","nodeType":"YulLiteral","src":"2557:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:53","nodeType":"YulIdentifier","src":"2528:3:53"},"nativeSrc":"2528:32:53","nodeType":"YulFunctionCall","src":"2528:32:53"},"nativeSrc":"2525:119:53","nodeType":"YulIf","src":"2525:119:53"},{"nativeSrc":"2654:117:53","nodeType":"YulBlock","src":"2654:117:53","statements":[{"nativeSrc":"2669:15:53","nodeType":"YulVariableDeclaration","src":"2669:15:53","value":{"kind":"number","nativeSrc":"2683:1:53","nodeType":"YulLiteral","src":"2683:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:53","nodeType":"YulTypedName","src":"2673:6:53","type":""}]},{"nativeSrc":"2698:63:53","nodeType":"YulAssignment","src":"2698:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:53","nodeType":"YulIdentifier","src":"2733:9:53"},{"name":"offset","nativeSrc":"2744:6:53","nodeType":"YulIdentifier","src":"2744:6:53"}],"functionName":{"name":"add","nativeSrc":"2729:3:53","nodeType":"YulIdentifier","src":"2729:3:53"},"nativeSrc":"2729:22:53","nodeType":"YulFunctionCall","src":"2729:22:53"},{"name":"dataEnd","nativeSrc":"2753:7:53","nodeType":"YulIdentifier","src":"2753:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:53","nodeType":"YulIdentifier","src":"2708:20:53"},"nativeSrc":"2708:53:53","nodeType":"YulFunctionCall","src":"2708:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:53","nodeType":"YulIdentifier","src":"2698:6:53"}]}]},{"nativeSrc":"2781:118:53","nodeType":"YulBlock","src":"2781:118:53","statements":[{"nativeSrc":"2796:16:53","nodeType":"YulVariableDeclaration","src":"2796:16:53","value":{"kind":"number","nativeSrc":"2810:2:53","nodeType":"YulLiteral","src":"2810:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:53","nodeType":"YulTypedName","src":"2800:6:53","type":""}]},{"nativeSrc":"2826:63:53","nodeType":"YulAssignment","src":"2826:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:53","nodeType":"YulIdentifier","src":"2861:9:53"},{"name":"offset","nativeSrc":"2872:6:53","nodeType":"YulIdentifier","src":"2872:6:53"}],"functionName":{"name":"add","nativeSrc":"2857:3:53","nodeType":"YulIdentifier","src":"2857:3:53"},"nativeSrc":"2857:22:53","nodeType":"YulFunctionCall","src":"2857:22:53"},{"name":"dataEnd","nativeSrc":"2881:7:53","nodeType":"YulIdentifier","src":"2881:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:53","nodeType":"YulIdentifier","src":"2836:20:53"},"nativeSrc":"2836:53:53","nodeType":"YulFunctionCall","src":"2836:53:53"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:53","nodeType":"YulIdentifier","src":"2826:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:53","nodeType":"YulTypedName","src":"2477:9:53","type":""},{"name":"dataEnd","nativeSrc":"2488:7:53","nodeType":"YulTypedName","src":"2488:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:53","nodeType":"YulTypedName","src":"2500:6:53","type":""},{"name":"value1","nativeSrc":"2508:6:53","nodeType":"YulTypedName","src":"2508:6:53","type":""}],"src":"2432:474:53"},{"body":{"nativeSrc":"2954:48:53","nodeType":"YulBlock","src":"2954:48:53","statements":[{"nativeSrc":"2964:32:53","nodeType":"YulAssignment","src":"2964:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:53","nodeType":"YulIdentifier","src":"2989:5:53"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:53","nodeType":"YulIdentifier","src":"2982:6:53"},"nativeSrc":"2982:13:53","nodeType":"YulFunctionCall","src":"2982:13:53"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:53","nodeType":"YulIdentifier","src":"2975:6:53"},"nativeSrc":"2975:21:53","nodeType":"YulFunctionCall","src":"2975:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:53","nodeType":"YulIdentifier","src":"2964:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:53","nodeType":"YulTypedName","src":"2936:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:53","nodeType":"YulTypedName","src":"2946:7:53","type":""}],"src":"2912:90:53"},{"body":{"nativeSrc":"3067:50:53","nodeType":"YulBlock","src":"3067:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:53","nodeType":"YulIdentifier","src":"3084:3:53"},{"arguments":[{"name":"value","nativeSrc":"3104:5:53","nodeType":"YulIdentifier","src":"3104:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:53","nodeType":"YulIdentifier","src":"3089:14:53"},"nativeSrc":"3089:21:53","nodeType":"YulFunctionCall","src":"3089:21:53"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:53","nodeType":"YulIdentifier","src":"3077:6:53"},"nativeSrc":"3077:34:53","nodeType":"YulFunctionCall","src":"3077:34:53"},"nativeSrc":"3077:34:53","nodeType":"YulExpressionStatement","src":"3077:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:53","nodeType":"YulTypedName","src":"3055:5:53","type":""},{"name":"pos","nativeSrc":"3062:3:53","nodeType":"YulTypedName","src":"3062:3:53","type":""}],"src":"3008:109:53"},{"body":{"nativeSrc":"3215:118:53","nodeType":"YulBlock","src":"3215:118:53","statements":[{"nativeSrc":"3225:26:53","nodeType":"YulAssignment","src":"3225:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:53","nodeType":"YulIdentifier","src":"3237:9:53"},{"kind":"number","nativeSrc":"3248:2:53","nodeType":"YulLiteral","src":"3248:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:53","nodeType":"YulIdentifier","src":"3233:3:53"},"nativeSrc":"3233:18:53","nodeType":"YulFunctionCall","src":"3233:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:53","nodeType":"YulIdentifier","src":"3225:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:53","nodeType":"YulIdentifier","src":"3299:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:53","nodeType":"YulIdentifier","src":"3312:9:53"},{"kind":"number","nativeSrc":"3323:1:53","nodeType":"YulLiteral","src":"3323:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:53","nodeType":"YulIdentifier","src":"3308:3:53"},"nativeSrc":"3308:17:53","nodeType":"YulFunctionCall","src":"3308:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:53","nodeType":"YulIdentifier","src":"3261:37:53"},"nativeSrc":"3261:65:53","nodeType":"YulFunctionCall","src":"3261:65:53"},"nativeSrc":"3261:65:53","nodeType":"YulExpressionStatement","src":"3261:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:53","nodeType":"YulTypedName","src":"3187:9:53","type":""},{"name":"value0","nativeSrc":"3199:6:53","nodeType":"YulTypedName","src":"3199:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:53","nodeType":"YulTypedName","src":"3210:4:53","type":""}],"src":"3123:210:53"},{"body":{"nativeSrc":"3404:53:53","nodeType":"YulBlock","src":"3404:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:53","nodeType":"YulIdentifier","src":"3421:3:53"},{"arguments":[{"name":"value","nativeSrc":"3444:5:53","nodeType":"YulIdentifier","src":"3444:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:53","nodeType":"YulIdentifier","src":"3426:17:53"},"nativeSrc":"3426:24:53","nodeType":"YulFunctionCall","src":"3426:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:53","nodeType":"YulIdentifier","src":"3414:6:53"},"nativeSrc":"3414:37:53","nodeType":"YulFunctionCall","src":"3414:37:53"},"nativeSrc":"3414:37:53","nodeType":"YulExpressionStatement","src":"3414:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:53","nodeType":"YulTypedName","src":"3392:5:53","type":""},{"name":"pos","nativeSrc":"3399:3:53","nodeType":"YulTypedName","src":"3399:3:53","type":""}],"src":"3339:118:53"},{"body":{"nativeSrc":"3561:124:53","nodeType":"YulBlock","src":"3561:124:53","statements":[{"nativeSrc":"3571:26:53","nodeType":"YulAssignment","src":"3571:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:53","nodeType":"YulIdentifier","src":"3583:9:53"},{"kind":"number","nativeSrc":"3594:2:53","nodeType":"YulLiteral","src":"3594:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:53","nodeType":"YulIdentifier","src":"3579:3:53"},"nativeSrc":"3579:18:53","nodeType":"YulFunctionCall","src":"3579:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:53","nodeType":"YulIdentifier","src":"3571:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:53","nodeType":"YulIdentifier","src":"3651:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:53","nodeType":"YulIdentifier","src":"3664:9:53"},{"kind":"number","nativeSrc":"3675:1:53","nodeType":"YulLiteral","src":"3675:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:53","nodeType":"YulIdentifier","src":"3660:3:53"},"nativeSrc":"3660:17:53","nodeType":"YulFunctionCall","src":"3660:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:53","nodeType":"YulIdentifier","src":"3607:43:53"},"nativeSrc":"3607:71:53","nodeType":"YulFunctionCall","src":"3607:71:53"},"nativeSrc":"3607:71:53","nodeType":"YulExpressionStatement","src":"3607:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:53","nodeType":"YulTypedName","src":"3533:9:53","type":""},{"name":"value0","nativeSrc":"3545:6:53","nodeType":"YulTypedName","src":"3545:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:53","nodeType":"YulTypedName","src":"3556:4:53","type":""}],"src":"3463:222:53"},{"body":{"nativeSrc":"3791:519:53","nodeType":"YulBlock","src":"3791:519:53","statements":[{"body":{"nativeSrc":"3837:83:53","nodeType":"YulBlock","src":"3837:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:53","nodeType":"YulIdentifier","src":"3839:77:53"},"nativeSrc":"3839:79:53","nodeType":"YulFunctionCall","src":"3839:79:53"},"nativeSrc":"3839:79:53","nodeType":"YulExpressionStatement","src":"3839:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:53","nodeType":"YulIdentifier","src":"3812:7:53"},{"name":"headStart","nativeSrc":"3821:9:53","nodeType":"YulIdentifier","src":"3821:9:53"}],"functionName":{"name":"sub","nativeSrc":"3808:3:53","nodeType":"YulIdentifier","src":"3808:3:53"},"nativeSrc":"3808:23:53","nodeType":"YulFunctionCall","src":"3808:23:53"},{"kind":"number","nativeSrc":"3833:2:53","nodeType":"YulLiteral","src":"3833:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:32:53","nodeType":"YulFunctionCall","src":"3804:32:53"},"nativeSrc":"3801:119:53","nodeType":"YulIf","src":"3801:119:53"},{"nativeSrc":"3930:117:53","nodeType":"YulBlock","src":"3930:117:53","statements":[{"nativeSrc":"3945:15:53","nodeType":"YulVariableDeclaration","src":"3945:15:53","value":{"kind":"number","nativeSrc":"3959:1:53","nodeType":"YulLiteral","src":"3959:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:53","nodeType":"YulTypedName","src":"3949:6:53","type":""}]},{"nativeSrc":"3974:63:53","nodeType":"YulAssignment","src":"3974:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:53","nodeType":"YulIdentifier","src":"4009:9:53"},{"name":"offset","nativeSrc":"4020:6:53","nodeType":"YulIdentifier","src":"4020:6:53"}],"functionName":{"name":"add","nativeSrc":"4005:3:53","nodeType":"YulIdentifier","src":"4005:3:53"},"nativeSrc":"4005:22:53","nodeType":"YulFunctionCall","src":"4005:22:53"},{"name":"dataEnd","nativeSrc":"4029:7:53","nodeType":"YulIdentifier","src":"4029:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:53","nodeType":"YulIdentifier","src":"3984:20:53"},"nativeSrc":"3984:53:53","nodeType":"YulFunctionCall","src":"3984:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:53","nodeType":"YulIdentifier","src":"3974:6:53"}]}]},{"nativeSrc":"4057:118:53","nodeType":"YulBlock","src":"4057:118:53","statements":[{"nativeSrc":"4072:16:53","nodeType":"YulVariableDeclaration","src":"4072:16:53","value":{"kind":"number","nativeSrc":"4086:2:53","nodeType":"YulLiteral","src":"4086:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:53","nodeType":"YulTypedName","src":"4076:6:53","type":""}]},{"nativeSrc":"4102:63:53","nodeType":"YulAssignment","src":"4102:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:53","nodeType":"YulIdentifier","src":"4137:9:53"},{"name":"offset","nativeSrc":"4148:6:53","nodeType":"YulIdentifier","src":"4148:6:53"}],"functionName":{"name":"add","nativeSrc":"4133:3:53","nodeType":"YulIdentifier","src":"4133:3:53"},"nativeSrc":"4133:22:53","nodeType":"YulFunctionCall","src":"4133:22:53"},{"name":"dataEnd","nativeSrc":"4157:7:53","nodeType":"YulIdentifier","src":"4157:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:53","nodeType":"YulIdentifier","src":"4112:20:53"},"nativeSrc":"4112:53:53","nodeType":"YulFunctionCall","src":"4112:53:53"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:53","nodeType":"YulIdentifier","src":"4102:6:53"}]}]},{"nativeSrc":"4185:118:53","nodeType":"YulBlock","src":"4185:118:53","statements":[{"nativeSrc":"4200:16:53","nodeType":"YulVariableDeclaration","src":"4200:16:53","value":{"kind":"number","nativeSrc":"4214:2:53","nodeType":"YulLiteral","src":"4214:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:53","nodeType":"YulTypedName","src":"4204:6:53","type":""}]},{"nativeSrc":"4230:63:53","nodeType":"YulAssignment","src":"4230:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:53","nodeType":"YulIdentifier","src":"4265:9:53"},{"name":"offset","nativeSrc":"4276:6:53","nodeType":"YulIdentifier","src":"4276:6:53"}],"functionName":{"name":"add","nativeSrc":"4261:3:53","nodeType":"YulIdentifier","src":"4261:3:53"},"nativeSrc":"4261:22:53","nodeType":"YulFunctionCall","src":"4261:22:53"},{"name":"dataEnd","nativeSrc":"4285:7:53","nodeType":"YulIdentifier","src":"4285:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:53","nodeType":"YulIdentifier","src":"4240:20:53"},"nativeSrc":"4240:53:53","nodeType":"YulFunctionCall","src":"4240:53:53"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:53","nodeType":"YulIdentifier","src":"4230:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:53","nodeType":"YulTypedName","src":"3745:9:53","type":""},{"name":"dataEnd","nativeSrc":"3756:7:53","nodeType":"YulTypedName","src":"3756:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:53","nodeType":"YulTypedName","src":"3768:6:53","type":""},{"name":"value1","nativeSrc":"3776:6:53","nodeType":"YulTypedName","src":"3776:6:53","type":""},{"name":"value2","nativeSrc":"3784:6:53","nodeType":"YulTypedName","src":"3784:6:53","type":""}],"src":"3691:619:53"},{"body":{"nativeSrc":"4359:43:53","nodeType":"YulBlock","src":"4359:43:53","statements":[{"nativeSrc":"4369:27:53","nodeType":"YulAssignment","src":"4369:27:53","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:53","nodeType":"YulIdentifier","src":"4384:5:53"},{"kind":"number","nativeSrc":"4391:4:53","nodeType":"YulLiteral","src":"4391:4:53","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:53","nodeType":"YulIdentifier","src":"4380:3:53"},"nativeSrc":"4380:16:53","nodeType":"YulFunctionCall","src":"4380:16:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:53","nodeType":"YulIdentifier","src":"4369:7:53"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:53","nodeType":"YulTypedName","src":"4341:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:53","nodeType":"YulTypedName","src":"4351:7:53","type":""}],"src":"4316:86:53"},{"body":{"nativeSrc":"4469:51:53","nodeType":"YulBlock","src":"4469:51:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:53","nodeType":"YulIdentifier","src":"4486:3:53"},{"arguments":[{"name":"value","nativeSrc":"4507:5:53","nodeType":"YulIdentifier","src":"4507:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:53","nodeType":"YulIdentifier","src":"4491:15:53"},"nativeSrc":"4491:22:53","nodeType":"YulFunctionCall","src":"4491:22:53"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:53","nodeType":"YulIdentifier","src":"4479:6:53"},"nativeSrc":"4479:35:53","nodeType":"YulFunctionCall","src":"4479:35:53"},"nativeSrc":"4479:35:53","nodeType":"YulExpressionStatement","src":"4479:35:53"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:53","nodeType":"YulTypedName","src":"4457:5:53","type":""},{"name":"pos","nativeSrc":"4464:3:53","nodeType":"YulTypedName","src":"4464:3:53","type":""}],"src":"4408:112:53"},{"body":{"nativeSrc":"4620:120:53","nodeType":"YulBlock","src":"4620:120:53","statements":[{"nativeSrc":"4630:26:53","nodeType":"YulAssignment","src":"4630:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:53","nodeType":"YulIdentifier","src":"4642:9:53"},{"kind":"number","nativeSrc":"4653:2:53","nodeType":"YulLiteral","src":"4653:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:53","nodeType":"YulIdentifier","src":"4638:3:53"},"nativeSrc":"4638:18:53","nodeType":"YulFunctionCall","src":"4638:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:53","nodeType":"YulIdentifier","src":"4630:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:53","nodeType":"YulIdentifier","src":"4706:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:53","nodeType":"YulIdentifier","src":"4719:9:53"},{"kind":"number","nativeSrc":"4730:1:53","nodeType":"YulLiteral","src":"4730:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:53","nodeType":"YulIdentifier","src":"4715:3:53"},"nativeSrc":"4715:17:53","nodeType":"YulFunctionCall","src":"4715:17:53"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:53","nodeType":"YulIdentifier","src":"4666:39:53"},"nativeSrc":"4666:67:53","nodeType":"YulFunctionCall","src":"4666:67:53"},"nativeSrc":"4666:67:53","nodeType":"YulExpressionStatement","src":"4666:67:53"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:53","nodeType":"YulTypedName","src":"4592:9:53","type":""},{"name":"value0","nativeSrc":"4604:6:53","nodeType":"YulTypedName","src":"4604:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:53","nodeType":"YulTypedName","src":"4615:4:53","type":""}],"src":"4526:214:53"},{"body":{"nativeSrc":"4791:32:53","nodeType":"YulBlock","src":"4791:32:53","statements":[{"nativeSrc":"4801:16:53","nodeType":"YulAssignment","src":"4801:16:53","value":{"name":"value","nativeSrc":"4812:5:53","nodeType":"YulIdentifier","src":"4812:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4801:7:53","nodeType":"YulIdentifier","src":"4801:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"4746:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4773:5:53","nodeType":"YulTypedName","src":"4773:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4783:7:53","nodeType":"YulTypedName","src":"4783:7:53","type":""}],"src":"4746:77:53"},{"body":{"nativeSrc":"4894:53:53","nodeType":"YulBlock","src":"4894:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4911:3:53","nodeType":"YulIdentifier","src":"4911:3:53"},{"arguments":[{"name":"value","nativeSrc":"4934:5:53","nodeType":"YulIdentifier","src":"4934:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"4916:17:53","nodeType":"YulIdentifier","src":"4916:17:53"},"nativeSrc":"4916:24:53","nodeType":"YulFunctionCall","src":"4916:24:53"}],"functionName":{"name":"mstore","nativeSrc":"4904:6:53","nodeType":"YulIdentifier","src":"4904:6:53"},"nativeSrc":"4904:37:53","nodeType":"YulFunctionCall","src":"4904:37:53"},"nativeSrc":"4904:37:53","nodeType":"YulExpressionStatement","src":"4904:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4829:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4882:5:53","nodeType":"YulTypedName","src":"4882:5:53","type":""},{"name":"pos","nativeSrc":"4889:3:53","nodeType":"YulTypedName","src":"4889:3:53","type":""}],"src":"4829:118:53"},{"body":{"nativeSrc":"5051:124:53","nodeType":"YulBlock","src":"5051:124:53","statements":[{"nativeSrc":"5061:26:53","nodeType":"YulAssignment","src":"5061:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5073:9:53","nodeType":"YulIdentifier","src":"5073:9:53"},{"kind":"number","nativeSrc":"5084:2:53","nodeType":"YulLiteral","src":"5084:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5069:3:53","nodeType":"YulIdentifier","src":"5069:3:53"},"nativeSrc":"5069:18:53","nodeType":"YulFunctionCall","src":"5069:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5061:4:53","nodeType":"YulIdentifier","src":"5061:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5141:6:53","nodeType":"YulIdentifier","src":"5141:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5154:9:53","nodeType":"YulIdentifier","src":"5154:9:53"},{"kind":"number","nativeSrc":"5165:1:53","nodeType":"YulLiteral","src":"5165:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5150:3:53","nodeType":"YulIdentifier","src":"5150:3:53"},"nativeSrc":"5150:17:53","nodeType":"YulFunctionCall","src":"5150:17:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"5097:43:53","nodeType":"YulIdentifier","src":"5097:43:53"},"nativeSrc":"5097:71:53","nodeType":"YulFunctionCall","src":"5097:71:53"},"nativeSrc":"5097:71:53","nodeType":"YulExpressionStatement","src":"5097:71:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"4953:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5023:9:53","nodeType":"YulTypedName","src":"5023:9:53","type":""},{"name":"value0","nativeSrc":"5035:6:53","nodeType":"YulTypedName","src":"5035:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5046:4:53","nodeType":"YulTypedName","src":"5046:4:53","type":""}],"src":"4953:222:53"},{"body":{"nativeSrc":"5247:263:53","nodeType":"YulBlock","src":"5247:263:53","statements":[{"body":{"nativeSrc":"5293:83:53","nodeType":"YulBlock","src":"5293:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5295:77:53","nodeType":"YulIdentifier","src":"5295:77:53"},"nativeSrc":"5295:79:53","nodeType":"YulFunctionCall","src":"5295:79:53"},"nativeSrc":"5295:79:53","nodeType":"YulExpressionStatement","src":"5295:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5268:7:53","nodeType":"YulIdentifier","src":"5268:7:53"},{"name":"headStart","nativeSrc":"5277:9:53","nodeType":"YulIdentifier","src":"5277:9:53"}],"functionName":{"name":"sub","nativeSrc":"5264:3:53","nodeType":"YulIdentifier","src":"5264:3:53"},"nativeSrc":"5264:23:53","nodeType":"YulFunctionCall","src":"5264:23:53"},{"kind":"number","nativeSrc":"5289:2:53","nodeType":"YulLiteral","src":"5289:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5260:3:53","nodeType":"YulIdentifier","src":"5260:3:53"},"nativeSrc":"5260:32:53","nodeType":"YulFunctionCall","src":"5260:32:53"},"nativeSrc":"5257:119:53","nodeType":"YulIf","src":"5257:119:53"},{"nativeSrc":"5386:117:53","nodeType":"YulBlock","src":"5386:117:53","statements":[{"nativeSrc":"5401:15:53","nodeType":"YulVariableDeclaration","src":"5401:15:53","value":{"kind":"number","nativeSrc":"5415:1:53","nodeType":"YulLiteral","src":"5415:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5405:6:53","nodeType":"YulTypedName","src":"5405:6:53","type":""}]},{"nativeSrc":"5430:63:53","nodeType":"YulAssignment","src":"5430:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5465:9:53","nodeType":"YulIdentifier","src":"5465:9:53"},{"name":"offset","nativeSrc":"5476:6:53","nodeType":"YulIdentifier","src":"5476:6:53"}],"functionName":{"name":"add","nativeSrc":"5461:3:53","nodeType":"YulIdentifier","src":"5461:3:53"},"nativeSrc":"5461:22:53","nodeType":"YulFunctionCall","src":"5461:22:53"},{"name":"dataEnd","nativeSrc":"5485:7:53","nodeType":"YulIdentifier","src":"5485:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5440:20:53","nodeType":"YulIdentifier","src":"5440:20:53"},"nativeSrc":"5440:53:53","nodeType":"YulFunctionCall","src":"5440:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5430:6:53","nodeType":"YulIdentifier","src":"5430:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5181:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5217:9:53","nodeType":"YulTypedName","src":"5217:9:53","type":""},{"name":"dataEnd","nativeSrc":"5228:7:53","nodeType":"YulTypedName","src":"5228:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5240:6:53","nodeType":"YulTypedName","src":"5240:6:53","type":""}],"src":"5181:329:53"},{"body":{"nativeSrc":"5557:77:53","nodeType":"YulBlock","src":"5557:77:53","statements":[{"body":{"nativeSrc":"5612:16:53","nodeType":"YulBlock","src":"5612:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5621:1:53","nodeType":"YulLiteral","src":"5621:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5624:1:53","nodeType":"YulLiteral","src":"5624:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5614:6:53","nodeType":"YulIdentifier","src":"5614:6:53"},"nativeSrc":"5614:12:53","nodeType":"YulFunctionCall","src":"5614:12:53"},"nativeSrc":"5614:12:53","nodeType":"YulExpressionStatement","src":"5614:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5580:5:53","nodeType":"YulIdentifier","src":"5580:5:53"},{"arguments":[{"name":"value","nativeSrc":"5603:5:53","nodeType":"YulIdentifier","src":"5603:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"5587:15:53","nodeType":"YulIdentifier","src":"5587:15:53"},"nativeSrc":"5587:22:53","nodeType":"YulFunctionCall","src":"5587:22:53"}],"functionName":{"name":"eq","nativeSrc":"5577:2:53","nodeType":"YulIdentifier","src":"5577:2:53"},"nativeSrc":"5577:33:53","nodeType":"YulFunctionCall","src":"5577:33:53"}],"functionName":{"name":"iszero","nativeSrc":"5570:6:53","nodeType":"YulIdentifier","src":"5570:6:53"},"nativeSrc":"5570:41:53","nodeType":"YulFunctionCall","src":"5570:41:53"},"nativeSrc":"5567:61:53","nodeType":"YulIf","src":"5567:61:53"}]},"name":"validator_revert_t_uint8","nativeSrc":"5516:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5550:5:53","nodeType":"YulTypedName","src":"5550:5:53","type":""}],"src":"5516:118:53"},{"body":{"nativeSrc":"5690:85:53","nodeType":"YulBlock","src":"5690:85:53","statements":[{"nativeSrc":"5700:29:53","nodeType":"YulAssignment","src":"5700:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5722:6:53","nodeType":"YulIdentifier","src":"5722:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5709:12:53","nodeType":"YulIdentifier","src":"5709:12:53"},"nativeSrc":"5709:20:53","nodeType":"YulFunctionCall","src":"5709:20:53"},"variableNames":[{"name":"value","nativeSrc":"5700:5:53","nodeType":"YulIdentifier","src":"5700:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5763:5:53","nodeType":"YulIdentifier","src":"5763:5:53"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"5738:24:53","nodeType":"YulIdentifier","src":"5738:24:53"},"nativeSrc":"5738:31:53","nodeType":"YulFunctionCall","src":"5738:31:53"},"nativeSrc":"5738:31:53","nodeType":"YulExpressionStatement","src":"5738:31:53"}]},"name":"abi_decode_t_uint8","nativeSrc":"5640:135:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5668:6:53","nodeType":"YulTypedName","src":"5668:6:53","type":""},{"name":"end","nativeSrc":"5676:3:53","nodeType":"YulTypedName","src":"5676:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5684:5:53","nodeType":"YulTypedName","src":"5684:5:53","type":""}],"src":"5640:135:53"},{"body":{"nativeSrc":"5824:79:53","nodeType":"YulBlock","src":"5824:79:53","statements":[{"body":{"nativeSrc":"5881:16:53","nodeType":"YulBlock","src":"5881:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5890:1:53","nodeType":"YulLiteral","src":"5890:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5893:1:53","nodeType":"YulLiteral","src":"5893:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5883:6:53","nodeType":"YulIdentifier","src":"5883:6:53"},"nativeSrc":"5883:12:53","nodeType":"YulFunctionCall","src":"5883:12:53"},"nativeSrc":"5883:12:53","nodeType":"YulExpressionStatement","src":"5883:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5847:5:53","nodeType":"YulIdentifier","src":"5847:5:53"},{"arguments":[{"name":"value","nativeSrc":"5872:5:53","nodeType":"YulIdentifier","src":"5872:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"5854:17:53","nodeType":"YulIdentifier","src":"5854:17:53"},"nativeSrc":"5854:24:53","nodeType":"YulFunctionCall","src":"5854:24:53"}],"functionName":{"name":"eq","nativeSrc":"5844:2:53","nodeType":"YulIdentifier","src":"5844:2:53"},"nativeSrc":"5844:35:53","nodeType":"YulFunctionCall","src":"5844:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5837:6:53","nodeType":"YulIdentifier","src":"5837:6:53"},"nativeSrc":"5837:43:53","nodeType":"YulFunctionCall","src":"5837:43:53"},"nativeSrc":"5834:63:53","nodeType":"YulIf","src":"5834:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"5781:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5817:5:53","nodeType":"YulTypedName","src":"5817:5:53","type":""}],"src":"5781:122:53"},{"body":{"nativeSrc":"5961:87:53","nodeType":"YulBlock","src":"5961:87:53","statements":[{"nativeSrc":"5971:29:53","nodeType":"YulAssignment","src":"5971:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5993:6:53","nodeType":"YulIdentifier","src":"5993:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5980:12:53","nodeType":"YulIdentifier","src":"5980:12:53"},"nativeSrc":"5980:20:53","nodeType":"YulFunctionCall","src":"5980:20:53"},"variableNames":[{"name":"value","nativeSrc":"5971:5:53","nodeType":"YulIdentifier","src":"5971:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6036:5:53","nodeType":"YulIdentifier","src":"6036:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"6009:26:53","nodeType":"YulIdentifier","src":"6009:26:53"},"nativeSrc":"6009:33:53","nodeType":"YulFunctionCall","src":"6009:33:53"},"nativeSrc":"6009:33:53","nodeType":"YulExpressionStatement","src":"6009:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"5909:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5939:6:53","nodeType":"YulTypedName","src":"5939:6:53","type":""},{"name":"end","nativeSrc":"5947:3:53","nodeType":"YulTypedName","src":"5947:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5955:5:53","nodeType":"YulTypedName","src":"5955:5:53","type":""}],"src":"5909:139:53"},{"body":{"nativeSrc":"6220:1033:53","nodeType":"YulBlock","src":"6220:1033:53","statements":[{"body":{"nativeSrc":"6267:83:53","nodeType":"YulBlock","src":"6267:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6269:77:53","nodeType":"YulIdentifier","src":"6269:77:53"},"nativeSrc":"6269:79:53","nodeType":"YulFunctionCall","src":"6269:79:53"},"nativeSrc":"6269:79:53","nodeType":"YulExpressionStatement","src":"6269:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6241:7:53","nodeType":"YulIdentifier","src":"6241:7:53"},{"name":"headStart","nativeSrc":"6250:9:53","nodeType":"YulIdentifier","src":"6250:9:53"}],"functionName":{"name":"sub","nativeSrc":"6237:3:53","nodeType":"YulIdentifier","src":"6237:3:53"},"nativeSrc":"6237:23:53","nodeType":"YulFunctionCall","src":"6237:23:53"},{"kind":"number","nativeSrc":"6262:3:53","nodeType":"YulLiteral","src":"6262:3:53","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"6233:3:53","nodeType":"YulIdentifier","src":"6233:3:53"},"nativeSrc":"6233:33:53","nodeType":"YulFunctionCall","src":"6233:33:53"},"nativeSrc":"6230:120:53","nodeType":"YulIf","src":"6230:120:53"},{"nativeSrc":"6360:117:53","nodeType":"YulBlock","src":"6360:117:53","statements":[{"nativeSrc":"6375:15:53","nodeType":"YulVariableDeclaration","src":"6375:15:53","value":{"kind":"number","nativeSrc":"6389:1:53","nodeType":"YulLiteral","src":"6389:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6379:6:53","nodeType":"YulTypedName","src":"6379:6:53","type":""}]},{"nativeSrc":"6404:63:53","nodeType":"YulAssignment","src":"6404:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6439:9:53","nodeType":"YulIdentifier","src":"6439:9:53"},{"name":"offset","nativeSrc":"6450:6:53","nodeType":"YulIdentifier","src":"6450:6:53"}],"functionName":{"name":"add","nativeSrc":"6435:3:53","nodeType":"YulIdentifier","src":"6435:3:53"},"nativeSrc":"6435:22:53","nodeType":"YulFunctionCall","src":"6435:22:53"},{"name":"dataEnd","nativeSrc":"6459:7:53","nodeType":"YulIdentifier","src":"6459:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6414:20:53","nodeType":"YulIdentifier","src":"6414:20:53"},"nativeSrc":"6414:53:53","nodeType":"YulFunctionCall","src":"6414:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6404:6:53","nodeType":"YulIdentifier","src":"6404:6:53"}]}]},{"nativeSrc":"6487:118:53","nodeType":"YulBlock","src":"6487:118:53","statements":[{"nativeSrc":"6502:16:53","nodeType":"YulVariableDeclaration","src":"6502:16:53","value":{"kind":"number","nativeSrc":"6516:2:53","nodeType":"YulLiteral","src":"6516:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6506:6:53","nodeType":"YulTypedName","src":"6506:6:53","type":""}]},{"nativeSrc":"6532:63:53","nodeType":"YulAssignment","src":"6532:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6567:9:53","nodeType":"YulIdentifier","src":"6567:9:53"},{"name":"offset","nativeSrc":"6578:6:53","nodeType":"YulIdentifier","src":"6578:6:53"}],"functionName":{"name":"add","nativeSrc":"6563:3:53","nodeType":"YulIdentifier","src":"6563:3:53"},"nativeSrc":"6563:22:53","nodeType":"YulFunctionCall","src":"6563:22:53"},{"name":"dataEnd","nativeSrc":"6587:7:53","nodeType":"YulIdentifier","src":"6587:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6542:20:53","nodeType":"YulIdentifier","src":"6542:20:53"},"nativeSrc":"6542:53:53","nodeType":"YulFunctionCall","src":"6542:53:53"},"variableNames":[{"name":"value1","nativeSrc":"6532:6:53","nodeType":"YulIdentifier","src":"6532:6:53"}]}]},{"nativeSrc":"6615:118:53","nodeType":"YulBlock","src":"6615:118:53","statements":[{"nativeSrc":"6630:16:53","nodeType":"YulVariableDeclaration","src":"6630:16:53","value":{"kind":"number","nativeSrc":"6644:2:53","nodeType":"YulLiteral","src":"6644:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"6634:6:53","nodeType":"YulTypedName","src":"6634:6:53","type":""}]},{"nativeSrc":"6660:63:53","nodeType":"YulAssignment","src":"6660:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6695:9:53","nodeType":"YulIdentifier","src":"6695:9:53"},{"name":"offset","nativeSrc":"6706:6:53","nodeType":"YulIdentifier","src":"6706:6:53"}],"functionName":{"name":"add","nativeSrc":"6691:3:53","nodeType":"YulIdentifier","src":"6691:3:53"},"nativeSrc":"6691:22:53","nodeType":"YulFunctionCall","src":"6691:22:53"},{"name":"dataEnd","nativeSrc":"6715:7:53","nodeType":"YulIdentifier","src":"6715:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6670:20:53","nodeType":"YulIdentifier","src":"6670:20:53"},"nativeSrc":"6670:53:53","nodeType":"YulFunctionCall","src":"6670:53:53"},"variableNames":[{"name":"value2","nativeSrc":"6660:6:53","nodeType":"YulIdentifier","src":"6660:6:53"}]}]},{"nativeSrc":"6743:118:53","nodeType":"YulBlock","src":"6743:118:53","statements":[{"nativeSrc":"6758:16:53","nodeType":"YulVariableDeclaration","src":"6758:16:53","value":{"kind":"number","nativeSrc":"6772:2:53","nodeType":"YulLiteral","src":"6772:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"6762:6:53","nodeType":"YulTypedName","src":"6762:6:53","type":""}]},{"nativeSrc":"6788:63:53","nodeType":"YulAssignment","src":"6788:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6823:9:53","nodeType":"YulIdentifier","src":"6823:9:53"},{"name":"offset","nativeSrc":"6834:6:53","nodeType":"YulIdentifier","src":"6834:6:53"}],"functionName":{"name":"add","nativeSrc":"6819:3:53","nodeType":"YulIdentifier","src":"6819:3:53"},"nativeSrc":"6819:22:53","nodeType":"YulFunctionCall","src":"6819:22:53"},{"name":"dataEnd","nativeSrc":"6843:7:53","nodeType":"YulIdentifier","src":"6843:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6798:20:53","nodeType":"YulIdentifier","src":"6798:20:53"},"nativeSrc":"6798:53:53","nodeType":"YulFunctionCall","src":"6798:53:53"},"variableNames":[{"name":"value3","nativeSrc":"6788:6:53","nodeType":"YulIdentifier","src":"6788:6:53"}]}]},{"nativeSrc":"6871:117:53","nodeType":"YulBlock","src":"6871:117:53","statements":[{"nativeSrc":"6886:17:53","nodeType":"YulVariableDeclaration","src":"6886:17:53","value":{"kind":"number","nativeSrc":"6900:3:53","nodeType":"YulLiteral","src":"6900:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"6890:6:53","nodeType":"YulTypedName","src":"6890:6:53","type":""}]},{"nativeSrc":"6917:61:53","nodeType":"YulAssignment","src":"6917:61:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6950:9:53","nodeType":"YulIdentifier","src":"6950:9:53"},{"name":"offset","nativeSrc":"6961:6:53","nodeType":"YulIdentifier","src":"6961:6:53"}],"functionName":{"name":"add","nativeSrc":"6946:3:53","nodeType":"YulIdentifier","src":"6946:3:53"},"nativeSrc":"6946:22:53","nodeType":"YulFunctionCall","src":"6946:22:53"},{"name":"dataEnd","nativeSrc":"6970:7:53","nodeType":"YulIdentifier","src":"6970:7:53"}],"functionName":{"name":"abi_decode_t_uint8","nativeSrc":"6927:18:53","nodeType":"YulIdentifier","src":"6927:18:53"},"nativeSrc":"6927:51:53","nodeType":"YulFunctionCall","src":"6927:51:53"},"variableNames":[{"name":"value4","nativeSrc":"6917:6:53","nodeType":"YulIdentifier","src":"6917:6:53"}]}]},{"nativeSrc":"6998:119:53","nodeType":"YulBlock","src":"6998:119:53","statements":[{"nativeSrc":"7013:17:53","nodeType":"YulVariableDeclaration","src":"7013:17:53","value":{"kind":"number","nativeSrc":"7027:3:53","nodeType":"YulLiteral","src":"7027:3:53","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"7017:6:53","nodeType":"YulTypedName","src":"7017:6:53","type":""}]},{"nativeSrc":"7044:63:53","nodeType":"YulAssignment","src":"7044:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7079:9:53","nodeType":"YulIdentifier","src":"7079:9:53"},{"name":"offset","nativeSrc":"7090:6:53","nodeType":"YulIdentifier","src":"7090:6:53"}],"functionName":{"name":"add","nativeSrc":"7075:3:53","nodeType":"YulIdentifier","src":"7075:3:53"},"nativeSrc":"7075:22:53","nodeType":"YulFunctionCall","src":"7075:22:53"},{"name":"dataEnd","nativeSrc":"7099:7:53","nodeType":"YulIdentifier","src":"7099:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7054:20:53","nodeType":"YulIdentifier","src":"7054:20:53"},"nativeSrc":"7054:53:53","nodeType":"YulFunctionCall","src":"7054:53:53"},"variableNames":[{"name":"value5","nativeSrc":"7044:6:53","nodeType":"YulIdentifier","src":"7044:6:53"}]}]},{"nativeSrc":"7127:119:53","nodeType":"YulBlock","src":"7127:119:53","statements":[{"nativeSrc":"7142:17:53","nodeType":"YulVariableDeclaration","src":"7142:17:53","value":{"kind":"number","nativeSrc":"7156:3:53","nodeType":"YulLiteral","src":"7156:3:53","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"7146:6:53","nodeType":"YulTypedName","src":"7146:6:53","type":""}]},{"nativeSrc":"7173:63:53","nodeType":"YulAssignment","src":"7173:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7208:9:53","nodeType":"YulIdentifier","src":"7208:9:53"},{"name":"offset","nativeSrc":"7219:6:53","nodeType":"YulIdentifier","src":"7219:6:53"}],"functionName":{"name":"add","nativeSrc":"7204:3:53","nodeType":"YulIdentifier","src":"7204:3:53"},"nativeSrc":"7204:22:53","nodeType":"YulFunctionCall","src":"7204:22:53"},{"name":"dataEnd","nativeSrc":"7228:7:53","nodeType":"YulIdentifier","src":"7228:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7183:20:53","nodeType":"YulIdentifier","src":"7183:20:53"},"nativeSrc":"7183:53:53","nodeType":"YulFunctionCall","src":"7183:53:53"},"variableNames":[{"name":"value6","nativeSrc":"7173:6:53","nodeType":"YulIdentifier","src":"7173:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nativeSrc":"6054:1199:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6142:9:53","nodeType":"YulTypedName","src":"6142:9:53","type":""},{"name":"dataEnd","nativeSrc":"6153:7:53","nodeType":"YulTypedName","src":"6153:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6165:6:53","nodeType":"YulTypedName","src":"6165:6:53","type":""},{"name":"value1","nativeSrc":"6173:6:53","nodeType":"YulTypedName","src":"6173:6:53","type":""},{"name":"value2","nativeSrc":"6181:6:53","nodeType":"YulTypedName","src":"6181:6:53","type":""},{"name":"value3","nativeSrc":"6189:6:53","nodeType":"YulTypedName","src":"6189:6:53","type":""},{"name":"value4","nativeSrc":"6197:6:53","nodeType":"YulTypedName","src":"6197:6:53","type":""},{"name":"value5","nativeSrc":"6205:6:53","nodeType":"YulTypedName","src":"6205:6:53","type":""},{"name":"value6","nativeSrc":"6213:6:53","nodeType":"YulTypedName","src":"6213:6:53","type":""}],"src":"6054:1199:53"},{"body":{"nativeSrc":"7342:391:53","nodeType":"YulBlock","src":"7342:391:53","statements":[{"body":{"nativeSrc":"7388:83:53","nodeType":"YulBlock","src":"7388:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7390:77:53","nodeType":"YulIdentifier","src":"7390:77:53"},"nativeSrc":"7390:79:53","nodeType":"YulFunctionCall","src":"7390:79:53"},"nativeSrc":"7390:79:53","nodeType":"YulExpressionStatement","src":"7390:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7363:7:53","nodeType":"YulIdentifier","src":"7363:7:53"},{"name":"headStart","nativeSrc":"7372:9:53","nodeType":"YulIdentifier","src":"7372:9:53"}],"functionName":{"name":"sub","nativeSrc":"7359:3:53","nodeType":"YulIdentifier","src":"7359:3:53"},"nativeSrc":"7359:23:53","nodeType":"YulFunctionCall","src":"7359:23:53"},{"kind":"number","nativeSrc":"7384:2:53","nodeType":"YulLiteral","src":"7384:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7355:3:53","nodeType":"YulIdentifier","src":"7355:3:53"},"nativeSrc":"7355:32:53","nodeType":"YulFunctionCall","src":"7355:32:53"},"nativeSrc":"7352:119:53","nodeType":"YulIf","src":"7352:119:53"},{"nativeSrc":"7481:117:53","nodeType":"YulBlock","src":"7481:117:53","statements":[{"nativeSrc":"7496:15:53","nodeType":"YulVariableDeclaration","src":"7496:15:53","value":{"kind":"number","nativeSrc":"7510:1:53","nodeType":"YulLiteral","src":"7510:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7500:6:53","nodeType":"YulTypedName","src":"7500:6:53","type":""}]},{"nativeSrc":"7525:63:53","nodeType":"YulAssignment","src":"7525:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7560:9:53","nodeType":"YulIdentifier","src":"7560:9:53"},{"name":"offset","nativeSrc":"7571:6:53","nodeType":"YulIdentifier","src":"7571:6:53"}],"functionName":{"name":"add","nativeSrc":"7556:3:53","nodeType":"YulIdentifier","src":"7556:3:53"},"nativeSrc":"7556:22:53","nodeType":"YulFunctionCall","src":"7556:22:53"},{"name":"dataEnd","nativeSrc":"7580:7:53","nodeType":"YulIdentifier","src":"7580:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7535:20:53","nodeType":"YulIdentifier","src":"7535:20:53"},"nativeSrc":"7535:53:53","nodeType":"YulFunctionCall","src":"7535:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7525:6:53","nodeType":"YulIdentifier","src":"7525:6:53"}]}]},{"nativeSrc":"7608:118:53","nodeType":"YulBlock","src":"7608:118:53","statements":[{"nativeSrc":"7623:16:53","nodeType":"YulVariableDeclaration","src":"7623:16:53","value":{"kind":"number","nativeSrc":"7637:2:53","nodeType":"YulLiteral","src":"7637:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7627:6:53","nodeType":"YulTypedName","src":"7627:6:53","type":""}]},{"nativeSrc":"7653:63:53","nodeType":"YulAssignment","src":"7653:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:53","nodeType":"YulIdentifier","src":"7688:9:53"},{"name":"offset","nativeSrc":"7699:6:53","nodeType":"YulIdentifier","src":"7699:6:53"}],"functionName":{"name":"add","nativeSrc":"7684:3:53","nodeType":"YulIdentifier","src":"7684:3:53"},"nativeSrc":"7684:22:53","nodeType":"YulFunctionCall","src":"7684:22:53"},{"name":"dataEnd","nativeSrc":"7708:7:53","nodeType":"YulIdentifier","src":"7708:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7663:20:53","nodeType":"YulIdentifier","src":"7663:20:53"},"nativeSrc":"7663:53:53","nodeType":"YulFunctionCall","src":"7663:53:53"},"variableNames":[{"name":"value1","nativeSrc":"7653:6:53","nodeType":"YulIdentifier","src":"7653:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"7259:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7304:9:53","nodeType":"YulTypedName","src":"7304:9:53","type":""},{"name":"dataEnd","nativeSrc":"7315:7:53","nodeType":"YulTypedName","src":"7315:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7327:6:53","nodeType":"YulTypedName","src":"7327:6:53","type":""},{"name":"value1","nativeSrc":"7335:6:53","nodeType":"YulTypedName","src":"7335:6:53","type":""}],"src":"7259:474:53"},{"body":{"nativeSrc":"7767:152:53","nodeType":"YulBlock","src":"7767:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7784:1:53","nodeType":"YulLiteral","src":"7784:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7787:77:53","nodeType":"YulLiteral","src":"7787:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7777:6:53","nodeType":"YulIdentifier","src":"7777:6:53"},"nativeSrc":"7777:88:53","nodeType":"YulFunctionCall","src":"7777:88:53"},"nativeSrc":"7777:88:53","nodeType":"YulExpressionStatement","src":"7777:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7881:1:53","nodeType":"YulLiteral","src":"7881:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7884:4:53","nodeType":"YulLiteral","src":"7884:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7874:6:53","nodeType":"YulIdentifier","src":"7874:6:53"},"nativeSrc":"7874:15:53","nodeType":"YulFunctionCall","src":"7874:15:53"},"nativeSrc":"7874:15:53","nodeType":"YulExpressionStatement","src":"7874:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7905:1:53","nodeType":"YulLiteral","src":"7905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7908:4:53","nodeType":"YulLiteral","src":"7908:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7898:6:53","nodeType":"YulIdentifier","src":"7898:6:53"},"nativeSrc":"7898:15:53","nodeType":"YulFunctionCall","src":"7898:15:53"},"nativeSrc":"7898:15:53","nodeType":"YulExpressionStatement","src":"7898:15:53"}]},"name":"panic_error_0x12","nativeSrc":"7739:180:53","nodeType":"YulFunctionDefinition","src":"7739:180:53"},{"body":{"nativeSrc":"7953:152:53","nodeType":"YulBlock","src":"7953:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7970:1:53","nodeType":"YulLiteral","src":"7970:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7973:77:53","nodeType":"YulLiteral","src":"7973:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7963:6:53","nodeType":"YulIdentifier","src":"7963:6:53"},"nativeSrc":"7963:88:53","nodeType":"YulFunctionCall","src":"7963:88:53"},"nativeSrc":"7963:88:53","nodeType":"YulExpressionStatement","src":"7963:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8067:1:53","nodeType":"YulLiteral","src":"8067:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8070:4:53","nodeType":"YulLiteral","src":"8070:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8060:6:53","nodeType":"YulIdentifier","src":"8060:6:53"},"nativeSrc":"8060:15:53","nodeType":"YulFunctionCall","src":"8060:15:53"},"nativeSrc":"8060:15:53","nodeType":"YulExpressionStatement","src":"8060:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8091:1:53","nodeType":"YulLiteral","src":"8091:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8094:4:53","nodeType":"YulLiteral","src":"8094:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8084:6:53","nodeType":"YulIdentifier","src":"8084:6:53"},"nativeSrc":"8084:15:53","nodeType":"YulFunctionCall","src":"8084:15:53"},"nativeSrc":"8084:15:53","nodeType":"YulExpressionStatement","src":"8084:15:53"}]},"name":"panic_error_0x11","nativeSrc":"7925:180:53","nodeType":"YulFunctionDefinition","src":"7925:180:53"},{"body":{"nativeSrc":"8153:143:53","nodeType":"YulBlock","src":"8153:143:53","statements":[{"nativeSrc":"8163:25:53","nodeType":"YulAssignment","src":"8163:25:53","value":{"arguments":[{"name":"x","nativeSrc":"8186:1:53","nodeType":"YulIdentifier","src":"8186:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8168:17:53","nodeType":"YulIdentifier","src":"8168:17:53"},"nativeSrc":"8168:20:53","nodeType":"YulFunctionCall","src":"8168:20:53"},"variableNames":[{"name":"x","nativeSrc":"8163:1:53","nodeType":"YulIdentifier","src":"8163:1:53"}]},{"nativeSrc":"8197:25:53","nodeType":"YulAssignment","src":"8197:25:53","value":{"arguments":[{"name":"y","nativeSrc":"8220:1:53","nodeType":"YulIdentifier","src":"8220:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8202:17:53","nodeType":"YulIdentifier","src":"8202:17:53"},"nativeSrc":"8202:20:53","nodeType":"YulFunctionCall","src":"8202:20:53"},"variableNames":[{"name":"y","nativeSrc":"8197:1:53","nodeType":"YulIdentifier","src":"8197:1:53"}]},{"body":{"nativeSrc":"8244:22:53","nodeType":"YulBlock","src":"8244:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8246:16:53","nodeType":"YulIdentifier","src":"8246:16:53"},"nativeSrc":"8246:18:53","nodeType":"YulFunctionCall","src":"8246:18:53"},"nativeSrc":"8246:18:53","nodeType":"YulExpressionStatement","src":"8246:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8241:1:53","nodeType":"YulIdentifier","src":"8241:1:53"}],"functionName":{"name":"iszero","nativeSrc":"8234:6:53","nodeType":"YulIdentifier","src":"8234:6:53"},"nativeSrc":"8234:9:53","nodeType":"YulFunctionCall","src":"8234:9:53"},"nativeSrc":"8231:35:53","nodeType":"YulIf","src":"8231:35:53"},{"nativeSrc":"8276:14:53","nodeType":"YulAssignment","src":"8276:14:53","value":{"arguments":[{"name":"x","nativeSrc":"8285:1:53","nodeType":"YulIdentifier","src":"8285:1:53"},{"name":"y","nativeSrc":"8288:1:53","nodeType":"YulIdentifier","src":"8288:1:53"}],"functionName":{"name":"div","nativeSrc":"8281:3:53","nodeType":"YulIdentifier","src":"8281:3:53"},"nativeSrc":"8281:9:53","nodeType":"YulFunctionCall","src":"8281:9:53"},"variableNames":[{"name":"r","nativeSrc":"8276:1:53","nodeType":"YulIdentifier","src":"8276:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"8111:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8142:1:53","nodeType":"YulTypedName","src":"8142:1:53","type":""},{"name":"y","nativeSrc":"8145:1:53","nodeType":"YulTypedName","src":"8145:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8151:1:53","nodeType":"YulTypedName","src":"8151:1:53","type":""}],"src":"8111:185:53"},{"body":{"nativeSrc":"8408:72:53","nodeType":"YulBlock","src":"8408:72:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8430:6:53","nodeType":"YulIdentifier","src":"8430:6:53"},{"kind":"number","nativeSrc":"8438:1:53","nodeType":"YulLiteral","src":"8438:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8426:3:53","nodeType":"YulIdentifier","src":"8426:3:53"},"nativeSrc":"8426:14:53","nodeType":"YulFunctionCall","src":"8426:14:53"},{"hexValue":"4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921","kind":"string","nativeSrc":"8442:30:53","nodeType":"YulLiteral","src":"8442:30:53","type":"","value":"MockERC20: gimme more money!"}],"functionName":{"name":"mstore","nativeSrc":"8419:6:53","nodeType":"YulIdentifier","src":"8419:6:53"},"nativeSrc":"8419:54:53","nodeType":"YulFunctionCall","src":"8419:54:53"},"nativeSrc":"8419:54:53","nodeType":"YulExpressionStatement","src":"8419:54:53"}]},"name":"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","nativeSrc":"8302:178:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8400:6:53","nodeType":"YulTypedName","src":"8400:6:53","type":""}],"src":"8302:178:53"},{"body":{"nativeSrc":"8632:220:53","nodeType":"YulBlock","src":"8632:220:53","statements":[{"nativeSrc":"8642:74:53","nodeType":"YulAssignment","src":"8642:74:53","value":{"arguments":[{"name":"pos","nativeSrc":"8708:3:53","nodeType":"YulIdentifier","src":"8708:3:53"},{"kind":"number","nativeSrc":"8713:2:53","nodeType":"YulLiteral","src":"8713:2:53","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8649:58:53","nodeType":"YulIdentifier","src":"8649:58:53"},"nativeSrc":"8649:67:53","nodeType":"YulFunctionCall","src":"8649:67:53"},"variableNames":[{"name":"pos","nativeSrc":"8642:3:53","nodeType":"YulIdentifier","src":"8642:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8814:3:53","nodeType":"YulIdentifier","src":"8814:3:53"}],"functionName":{"name":"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","nativeSrc":"8725:88:53","nodeType":"YulIdentifier","src":"8725:88:53"},"nativeSrc":"8725:93:53","nodeType":"YulFunctionCall","src":"8725:93:53"},"nativeSrc":"8725:93:53","nodeType":"YulExpressionStatement","src":"8725:93:53"},{"nativeSrc":"8827:19:53","nodeType":"YulAssignment","src":"8827:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"8838:3:53","nodeType":"YulIdentifier","src":"8838:3:53"},{"kind":"number","nativeSrc":"8843:2:53","nodeType":"YulLiteral","src":"8843:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8834:3:53","nodeType":"YulIdentifier","src":"8834:3:53"},"nativeSrc":"8834:12:53","nodeType":"YulFunctionCall","src":"8834:12:53"},"variableNames":[{"name":"end","nativeSrc":"8827:3:53","nodeType":"YulIdentifier","src":"8827:3:53"}]}]},"name":"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack","nativeSrc":"8486:366:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8620:3:53","nodeType":"YulTypedName","src":"8620:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8628:3:53","nodeType":"YulTypedName","src":"8628:3:53","type":""}],"src":"8486:366:53"},{"body":{"nativeSrc":"9029:248:53","nodeType":"YulBlock","src":"9029:248:53","statements":[{"nativeSrc":"9039:26:53","nodeType":"YulAssignment","src":"9039:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9051:9:53","nodeType":"YulIdentifier","src":"9051:9:53"},{"kind":"number","nativeSrc":"9062:2:53","nodeType":"YulLiteral","src":"9062:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9047:3:53","nodeType":"YulIdentifier","src":"9047:3:53"},"nativeSrc":"9047:18:53","nodeType":"YulFunctionCall","src":"9047:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9039:4:53","nodeType":"YulIdentifier","src":"9039:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9086:9:53","nodeType":"YulIdentifier","src":"9086:9:53"},{"kind":"number","nativeSrc":"9097:1:53","nodeType":"YulLiteral","src":"9097:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9082:3:53","nodeType":"YulIdentifier","src":"9082:3:53"},"nativeSrc":"9082:17:53","nodeType":"YulFunctionCall","src":"9082:17:53"},{"arguments":[{"name":"tail","nativeSrc":"9105:4:53","nodeType":"YulIdentifier","src":"9105:4:53"},{"name":"headStart","nativeSrc":"9111:9:53","nodeType":"YulIdentifier","src":"9111:9:53"}],"functionName":{"name":"sub","nativeSrc":"9101:3:53","nodeType":"YulIdentifier","src":"9101:3:53"},"nativeSrc":"9101:20:53","nodeType":"YulFunctionCall","src":"9101:20:53"}],"functionName":{"name":"mstore","nativeSrc":"9075:6:53","nodeType":"YulIdentifier","src":"9075:6:53"},"nativeSrc":"9075:47:53","nodeType":"YulFunctionCall","src":"9075:47:53"},"nativeSrc":"9075:47:53","nodeType":"YulExpressionStatement","src":"9075:47:53"},{"nativeSrc":"9131:139:53","nodeType":"YulAssignment","src":"9131:139:53","value":{"arguments":[{"name":"tail","nativeSrc":"9265:4:53","nodeType":"YulIdentifier","src":"9265:4:53"}],"functionName":{"name":"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack","nativeSrc":"9139:124:53","nodeType":"YulIdentifier","src":"9139:124:53"},"nativeSrc":"9139:131:53","nodeType":"YulFunctionCall","src":"9139:131:53"},"variableNames":[{"name":"tail","nativeSrc":"9131:4:53","nodeType":"YulIdentifier","src":"9131:4:53"}]}]},"name":"abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8858:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9009:9:53","nodeType":"YulTypedName","src":"9009:9:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9024:4:53","nodeType":"YulTypedName","src":"9024:4:53","type":""}],"src":"8858:419:53"}]},"contents":"{\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 mcopy(dst, src, length)\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 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 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_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(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_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { 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 := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417(memPtr) {\n\n mstore(add(memPtr, 0), \"MockERC20: gimme more money!\")\n\n }\n\n function abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__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_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100dc575f3560e01c806340c10f191161007e57806395d89b411161005857806395d89b41146102bc578063a9059cbb146102e6578063d505accf14610322578063dd62ed3e1461034a576100dc565b806340c10f191461021c57806370a08231146102445780637ecebe0014610280576100dc565b806318160ddd116100ba57806318160ddd1461016257806323b872dd1461018c578063313ce567146101c85780633644e515146101f2576100dc565b806306fdde03146100e0578063095ea7b31461010a57806317d304b014610146575b5f80fd5b3480156100eb575f80fd5b506100f4610386565b60405161010191906109bf565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190610a70565b6103c3565b60405161013d9190610ac8565b60405180910390f35b610160600480360381019061015b9190610a70565b610413565b005b34801561016d575f80fd5b50610176610470565b6040516101839190610af0565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad9190610b09565b610481565b6040516101bf9190610ac8565b60405180910390f35b3480156101d3575f80fd5b506101dc610552565b6040516101e99190610b74565b60405180910390f35b3480156101fd575f80fd5b5061020661055a565b6040516102139190610ba5565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d9190610a70565b6105ea565b005b34801561024f575f80fd5b5061026a60048036038101906102659190610bbe565b6105f8565b6040516102779190610af0565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190610bbe565b610611565b6040516102b39190610af0565b60405180910390f35b3480156102c7575f80fd5b506102d061062a565b6040516102dd91906109bf565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190610a70565b610667565b6040516103199190610ac8565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190610c3d565b6106f5565b005b348015610355575f80fd5b50610370600480360381019061036b9190610cda565b610891565b60405161037d9190610af0565b60405180910390f35b60606040518060400160405280600a81526020017f4d6f636b20455243323000000000000000000000000000000000000000000000815250905090565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b6064816104209190610d45565b341015610462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045990610dbf565b60405180910390fd5b61046c82826108af565b5050565b5f6805345cdf77eb68f44c54905090565b5f61048d848484610941565b8360601b33602052637f5e9f208117600c526034600c20805460018101156104ca57808511156104c4576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c208054808711156104f05763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050505050610547848484610946565b600190509392505050565b5f6012905090565b5f8061056461094b565b90505f801b810361058157610577610386565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6105f482826108af565b5050565b5f6387a211a2600c52815f526020600c20549050919050565b5f6338377508600c52815f526020600c20549050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b5f610673338484610941565b6387a211a2600c52335f526020600c2080548084111561069a5763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506106eb338484610946565b6001905092915050565b5f6106fe61094b565b90505f801b810361071b57610711610386565b8051906020012090505b8442111561073057631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d51146108385763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b6108ba5f8383610941565b6805345cdf77eb68f44c54818101818110156108dd5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505061093d5f8383610946565b5050565b505050565b505050565b5f90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109918261094f565b61099b8185610959565b93506109ab818560208601610969565b6109b481610977565b840191505092915050565b5f6020820190508181035f8301526109d78184610987565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a0c826109e3565b9050919050565b610a1c81610a02565b8114610a26575f80fd5b50565b5f81359050610a3781610a13565b92915050565b5f819050919050565b610a4f81610a3d565b8114610a59575f80fd5b50565b5f81359050610a6a81610a46565b92915050565b5f8060408385031215610a8657610a856109df565b5b5f610a9385828601610a29565b9250506020610aa485828601610a5c565b9150509250929050565b5f8115159050919050565b610ac281610aae565b82525050565b5f602082019050610adb5f830184610ab9565b92915050565b610aea81610a3d565b82525050565b5f602082019050610b035f830184610ae1565b92915050565b5f805f60608486031215610b2057610b1f6109df565b5b5f610b2d86828701610a29565b9350506020610b3e86828701610a29565b9250506040610b4f86828701610a5c565b9150509250925092565b5f60ff82169050919050565b610b6e81610b59565b82525050565b5f602082019050610b875f830184610b65565b92915050565b5f819050919050565b610b9f81610b8d565b82525050565b5f602082019050610bb85f830184610b96565b92915050565b5f60208284031215610bd357610bd26109df565b5b5f610be084828501610a29565b91505092915050565b610bf281610b59565b8114610bfc575f80fd5b50565b5f81359050610c0d81610be9565b92915050565b610c1c81610b8d565b8114610c26575f80fd5b50565b5f81359050610c3781610c13565b92915050565b5f805f805f805f60e0888a031215610c5857610c576109df565b5b5f610c658a828b01610a29565b9750506020610c768a828b01610a29565b9650506040610c878a828b01610a5c565b9550506060610c988a828b01610a5c565b9450506080610ca98a828b01610bff565b93505060a0610cba8a828b01610c29565b92505060c0610ccb8a828b01610c29565b91505092959891949750929550565b5f8060408385031215610cf057610cef6109df565b5b5f610cfd85828601610a29565b9250506020610d0e85828601610a29565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d4f82610a3d565b9150610d5a83610a3d565b925082610d6a57610d69610d18565b5b828204905092915050565b7f4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921000000005f82015250565b5f610da9601c83610959565b9150610db482610d75565b602082019050919050565b5f6020820190508181035f830152610dd681610d9d565b905091905056fea26469706673582212206dfa065afeadb670793b85c903684a7900b7a0f5a22e73698eccec3175ab4c7a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDC JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x34A JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x280 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xBA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1F2 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x17D304B0 EQ PUSH2 0x146 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x115 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x197 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x611 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0x62A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x667 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x343 SWAP2 SWAP1 PUSH2 0xC3D JUMP JUMPDEST PUSH2 0x6F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH2 0x891 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243323000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x64 DUP2 PUSH2 0x420 SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST CALLVALUE LT ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x46C DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48D DUP5 DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x4CA JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x4C4 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x4F0 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x547 DUP5 DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x564 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x581 JUMPI PUSH2 0x577 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x5F4 DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x673 CALLER DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0x69A JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x6EB CALLER DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FE PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x71B JUMPI PUSH2 0x711 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0x730 JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0x838 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8BA PUSH0 DUP4 DUP4 PUSH2 0x941 JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x8DD JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x93D PUSH0 DUP4 DUP4 PUSH2 0x946 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x991 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH2 0x99B DUP2 DUP6 PUSH2 0x959 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x969 JUMP JUMPDEST PUSH2 0x9B4 DUP2 PUSH2 0x977 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9D7 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4F DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP2 EQ PUSH2 0xA59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA6A DUP2 PUSH2 0xA46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH2 0xA85 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA93 DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA4 DUP6 DUP3 DUP7 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC2 DUP2 PUSH2 0xAAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADB PUSH0 DUP4 ADD DUP5 PUSH2 0xAB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEA DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB03 PUSH0 DUP4 ADD DUP5 PUSH2 0xAE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH2 0xB1F PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB2D DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB3E DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB4F DUP7 DUP3 DUP8 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB87 PUSH0 DUP4 ADD DUP5 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB8 PUSH0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBD3 JUMPI PUSH2 0xBD2 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBE0 DUP5 DUP3 DUP6 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF2 DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP2 EQ PUSH2 0xBFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC0D DUP2 PUSH2 0xBE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP2 EQ PUSH2 0xC26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC37 DUP2 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC57 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC65 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0xC76 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0xC87 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0xC98 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0xCA9 DUP11 DUP3 DUP12 ADD PUSH2 0xBFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0xCBA DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0xCCB DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCEF PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCFD DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0E DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD4F DUP3 PUSH2 0xA3D JUMP JUMPDEST SWAP2 POP PUSH2 0xD5A DUP4 PUSH2 0xA3D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD6A JUMPI PUSH2 0xD69 PUSH2 0xD18 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6F636B45524332303A2067696D6D65206D6F7265206D6F6E65792100000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA9 PUSH1 0x1C DUP4 PUSH2 0x959 JUMP JUMPDEST SWAP2 POP PUSH2 0xDB4 DUP3 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDD6 DUP2 PUSH2 0xD9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xFA065AFEADB670793B85C903684A PUSH26 0xB7A0F5A22E73698ECCEC3175AB4C7A64736F6C634300081900 CALLER ","sourceMap":"1467:501:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1501:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7435:573:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1792:174:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6287:195:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9969:2191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:693;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1703:83:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6548:286:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12800:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1604:93:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8195:1406:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13324:3215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6929:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1501:97:49;1547:13;1572:19;;;;;;;;;;;;;;;;;;;1501:97;:::o;7435:573:19:-;7509:4;7668:7;7662:4;7655:21;7702:20;7696:4;7689:34;7749:8;7743:4;7736:22;7801:6;7794:4;7788;7778:21;7771:37;7876:6;7870:4;7863:20;7964:4;7958:11;7954:2;7950:20;7940:8;7913:25;7907:4;7901;7896:75;7997:4;7990:11;;7435:573;;;;:::o;1792:174:49:-;1896:3;1887:6;:12;;;;:::i;:::-;1874:9;:25;;1866:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1942:17;1948:2;1952:6;1942:5;:17::i;:::-;1792:174;;:::o;6287:195:19:-;6339:14;6447:18;6441:25;6431:35;;6287:195;:::o;9969:2191::-;10057:4;10073:38;10094:4;10100:2;10104:6;10073:20;:38::i;:::-;10208:4;10204:2;10200:13;10301:8;10295:4;10288:22;10346:20;10339:5;10336:31;10330:4;10323:45;10418:4;10412;10402:21;10460:13;10454:20;10572:1;10560:10;10556:18;10553:418;;;10688:10;10680:6;10677:22;10674:159;;;10735:10;10729:4;10722:24;10810:4;10804;10797:18;10674:159;10949:6;10937:10;10933:23;10918:13;10911:46;10553:418;11067:18;11060:5;11057:29;11051:4;11044:43;11139:4;11133;11123:21;11182:15;11176:22;11272:11;11264:6;11261:23;11258:146;;;11316:10;11310:4;11303:24;11385:4;11379;11372:18;11258:146;11513:6;11500:11;11496:24;11479:15;11472:49;11596:2;11590:4;11583:16;11649:4;11643;11633:21;11899:6;11883:13;11877:20;11873:33;11858:13;11851:56;11975:6;11969:4;11962:20;12069:4;12063:11;12059:2;12055:20;12047:5;12043:2;12039:14;12012:25;12006:4;12000;11995:81;10173:1913;;;;;;12095:37;12115:4;12121:2;12125:6;12095:19;:37::i;:::-;12149:4;12142:11;;9969:2191;;;;;:::o;5860:82::-;5909:5;5933:2;5926:9;;5860:82;:::o;16620:693::-;16677:14;16703:16;16722:19;:17;:19::i;:::-;16703:38;;16869:1;16861:10;;16849:8;:22;16845:63;;16900:6;:4;:6::i;:::-;16884:24;;;;;;16873:35;;16845:63;16999:4;16993:11;17060:16;17057:1;17050:27;17111:8;17104:4;17101:1;17097:12;17090:30;17154:13;17147:4;17144:1;17140:12;17133:35;17202:9;17195:4;17192:1;17188:12;17181:31;17246:9;17239:4;17236:1;17232:12;17225:31;17292:4;17289:1;17279:18;17269:28;;16970:337;;16620:693;:::o;1703:83:49:-;1762:17;1768:2;1772:6;1762:5;:17::i;:::-;1703:83;;:::o;6548:286:19:-;6611:14;6716:18;6710:4;6703:32;6761:5;6755:4;6748:19;6812:4;6806;6796:21;6790:28;6780:38;;6548:286;;;:::o;12800:340::-;12860:14;13023:17;13017:4;13010:31;13067:5;13061:4;13054:19;13118:4;13112;13102:21;13096:28;13086:38;;12800:340;;;:::o;1604:93:49:-;1652:13;1677;;;;;;;;;;;;;;;;;;;1604:93;:::o;8195:1406:19:-;8265:4;8281:44;8302:10;8314:2;8318:6;8281:20;:44::i;:::-;8474:18;8468:4;8461:32;8519:8;8513:4;8506:22;8580:4;8574;8564:21;8623:15;8617:22;8713:11;8705:6;8702:23;8699:146;;;8757:10;8751:4;8744:24;8826:4;8820;8813:18;8699:146;8954:6;8941:11;8937:24;8920:15;8913:49;9037:2;9031:4;9024:16;9090:4;9084;9074:21;9340:6;9324:13;9318:20;9314:33;9299:13;9292:56;9416:6;9410:4;9403:20;9504:4;9498:11;9494:2;9490:20;9480:8;9453:25;9447:4;9441;9436:75;8387:1134;;;9530:43;9550:10;9562:2;9566:6;9530:19;:43::i;:::-;9590:4;9583:11;;8195:1406;;;;:::o;13324:3215::-;13523:16;13542:19;:17;:19::i;:::-;13523:38;;13689:1;13681:10;;13669:8;:22;13665:63;;13720:6;:4;:6::i;:::-;13704:24;;;;;;13693:35;;13665:63;13896:8;13883:11;13880:25;13877:142;;;13937:10;13931:4;13924:24;14000:4;13994;13987:18;13877:142;14047:4;14041:11;14163:5;14159:2;14155:14;14151:2;14147:23;14138:32;;14210:7;14206:2;14202:16;14198:2;14194:25;14183:36;;14303:39;14297:4;14290:53;14369:5;14363:4;14356:19;14421:4;14415;14405:21;14463:9;14457:16;14541;14538:1;14531:27;14592:8;14585:4;14582:1;14578:12;14571:30;14635:13;14628:4;14625:1;14621:12;14614:35;14683:9;14676:4;14673:1;14669:12;14662:31;14727:9;14720:4;14717:1;14713:12;14706:31;14776:4;14773:1;14763:18;14757:4;14750:32;14845:16;14842:1;14835:27;14896:5;14889:4;14886:1;14882:12;14875:27;14936:7;14929:4;14926:1;14922:12;14915:29;14978:5;14971:4;14968:1;14964:12;14957:27;15018:10;15011:4;15008:1;15004:12;14997:32;15063:8;15056:4;15053:1;15049:12;15042:30;15111:4;15108:1;15098:18;15092:4;15085:32;15206:4;15200;15190:21;15184:4;15177:35;15248:1;15242:4;15238:12;15232:4;15225:26;15277:1;15271:4;15264:15;15305:1;15299:4;15292:15;15365:4;15359;15353;15350:1;15347;15340:5;15329:41;15786:5;15767:16;15761:23;15758:34;15748:159;;15825:10;15819:4;15812:24;15888:4;15882;15875:18;15748:159;16008:1;15996:10;15992:18;15981:9;15974:37;16222:7;16199:20;16194:3;16190:30;16187:43;16181:4;16174:57;16274:5;16267:4;16261;16251:21;16244:36;16394:7;16387:5;16360:25;16354:4;16347;16344:1;16340:12;16335:67;16428:1;16422:4;16415:15;16492:1;16486:4;16479:15;13790:2743;;;;;13324:3215;;;;;;;:::o;6929:375::-;7041:14;7150:7;7144:4;7137:21;7184:20;7178:4;7171:34;7231:5;7225:4;7218:19;7282:4;7276;7266:21;7260:28;7250:38;;6929:375;;;;:::o;17717:1172::-;17787:44;17816:1;17820:2;17824:6;17787:20;:44::i;:::-;17938:18;17932:25;18017:6;17998:17;17994:30;18114:17;18096:16;18093:39;18090:162;;;18164:10;18158:4;18151:24;18233:4;18227;18220:18;18090:162;18339:16;18319:18;18312:44;18442:18;18436:4;18429:32;18487:2;18481:4;18474:16;18540:4;18534;18524:21;18656:6;18640:13;18634:20;18630:33;18615:13;18608:56;18732:6;18726:4;18719:20;18813:4;18807:11;18803:2;18799:20;18796:1;18769:25;18763:4;18757;18752:68;17893:937;;;18839:43;18867:1;18871:2;18875:6;18839:19;:43::i;:::-;17717:1172;;:::o;24588:91::-;;;;:::o;24791:90::-;;;;:::o;12591:78::-;12651:14;12591:78;:::o;7:99:53:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:77::-;4783:7;4812:5;4801:16;;4746:77;;;:::o;4829:118::-;4916:24;4934:5;4916:24;:::i;:::-;4911:3;4904:37;4829:118;;:::o;4953:222::-;5046:4;5084:2;5073:9;5069:18;5061:26;;5097:71;5165:1;5154:9;5150:17;5141:6;5097:71;:::i;:::-;4953:222;;;;:::o;5181:329::-;5240:6;5289:2;5277:9;5268:7;5264:23;5260:32;5257:119;;;5295:79;;:::i;:::-;5257:119;5415:1;5440:53;5485:7;5476:6;5465:9;5461:22;5440:53;:::i;:::-;5430:63;;5386:117;5181:329;;;;:::o;5516:118::-;5587:22;5603:5;5587:22;:::i;:::-;5580:5;5577:33;5567:61;;5624:1;5621;5614:12;5567:61;5516:118;:::o;5640:135::-;5684:5;5722:6;5709:20;5700:29;;5738:31;5763:5;5738:31;:::i;:::-;5640:135;;;;:::o;5781:122::-;5854:24;5872:5;5854:24;:::i;:::-;5847:5;5844:35;5834:63;;5893:1;5890;5883:12;5834:63;5781:122;:::o;5909:139::-;5955:5;5993:6;5980:20;5971:29;;6009:33;6036:5;6009:33;:::i;:::-;5909:139;;;;:::o;6054:1199::-;6165:6;6173;6181;6189;6197;6205;6213;6262:3;6250:9;6241:7;6237:23;6233:33;6230:120;;;6269:79;;:::i;:::-;6230:120;6389:1;6414:53;6459:7;6450:6;6439:9;6435:22;6414:53;:::i;:::-;6404:63;;6360:117;6516:2;6542:53;6587:7;6578:6;6567:9;6563:22;6542:53;:::i;:::-;6532:63;;6487:118;6644:2;6670:53;6715:7;6706:6;6695:9;6691:22;6670:53;:::i;:::-;6660:63;;6615:118;6772:2;6798:53;6843:7;6834:6;6823:9;6819:22;6798:53;:::i;:::-;6788:63;;6743:118;6900:3;6927:51;6970:7;6961:6;6950:9;6946:22;6927:51;:::i;:::-;6917:61;;6871:117;7027:3;7054:53;7099:7;7090:6;7079:9;7075:22;7054:53;:::i;:::-;7044:63;;6998:119;7156:3;7183:53;7228:7;7219:6;7208:9;7204:22;7183:53;:::i;:::-;7173:63;;7127:119;6054:1199;;;;;;;;;;:::o;7259:474::-;7327:6;7335;7384:2;7372:9;7363:7;7359:23;7355:32;7352:119;;;7390:79;;:::i;:::-;7352:119;7510:1;7535:53;7580:7;7571:6;7560:9;7556:22;7535:53;:::i;:::-;7525:63;;7481:117;7637:2;7663:53;7708:7;7699:6;7688:9;7684:22;7663:53;:::i;:::-;7653:63;;7608:118;7259:474;;;;;:::o;7739:180::-;7787:77;7784:1;7777:88;7884:4;7881:1;7874:15;7908:4;7905:1;7898:15;8111:185;8151:1;8168:20;8186:1;8168:20;:::i;:::-;8163:25;;8202:20;8220:1;8202:20;:::i;:::-;8197:25;;8241:1;8231:35;;8246:18;;:::i;:::-;8231:35;8288:1;8285;8281:9;8276:14;;8111:185;;;;:::o;8302:178::-;8442:30;8438:1;8430:6;8426:14;8419:54;8302:178;:::o;8486:366::-;8628:3;8649:67;8713:2;8708:3;8649:67;:::i;:::-;8642:74;;8725:93;8814:3;8725:93;:::i;:::-;8843:2;8838:3;8834:12;8827:19;;8486:366;;;:::o;8858:419::-;9024:4;9062:2;9051:9;9047:18;9039:26;;9111:9;9105:4;9101:20;9097:1;9086:9;9082:17;9075:47;9139:131;9265:4;9139:131;:::i;:::-;9131:139;;8858:419;;;:::o"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","mintPayable(address,uint256)":"17d304b0","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mintPayable\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"title\":\"MockERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC20 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"},"MockERC721":{"abi":[{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TokenAlreadyExists","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"isApproved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405267016345785d8a0000600155348015601a575f80fd5b50611107806100285f395ff3fe6080604052600436106100f2575f3560e01c80636817c76c11610089578063a22cb46511610058578063a22cb465146102fe578063b88d4fde14610326578063c87b56dd14610342578063e985e9c51461037e576100f2565b80636817c76c146102525780636a6278421461027c57806370a082311461029857806395d89b41146102d4576100f2565b806318160ddd116100c557806318160ddd146101b457806323b872dd146101de57806342842e0e146101fa5780636352211e14610216576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610b16565b6103ba565b6040516101299190610b5b565b60405180910390f35b34801561013d575f80fd5b506101466103de565b6040516101539190610be4565b60405180910390f35b348015610167575f80fd5b50610182600480360381019061017d9190610c37565b61041b565b60405161018f9190610ca1565b60405180910390f35b6101b260048036038101906101ad9190610ce4565b61046e565b005b3480156101bf575f80fd5b506101c861047d565b6040516101d59190610d31565b60405180910390f35b6101f860048036038101906101f39190610d4a565b610482565b005b610214600480360381019061020f9190610d4a565b6105ac565b005b348015610221575f80fd5b5061023c60048036038101906102379190610c37565b6105e5565b6040516102499190610ca1565b60405180910390f35b34801561025d575f80fd5b50610266610608565b6040516102739190610d31565b60405180910390f35b61029660048036038101906102919190610d9a565b61060e565b005b3480156102a3575f80fd5b506102be60048036038101906102b99190610d9a565b610672565b6040516102cb9190610d31565b60405180910390f35b3480156102df575f80fd5b506102e86106bf565b6040516102f59190610be4565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f9190610def565b6106fc565b005b610340600480360381019061033b9190610e8e565b61074f565b005b34801561034d575f80fd5b5061036860048036038101906103639190610c37565b6107bf565b6040516103759190610be4565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f9190610f12565b6107f0565b6040516103b19190610b5b565b60405180910390f35b5f8160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b60606040518060400160405280600b81526020017f4d6f636b20455243373231000000000000000000000000000000000000000000815250905090565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b6104615763ceea21b65f526004601cfd5b8060010154915050919050565b610479338383610812565b5050565b5f5481565b61048d8383836108c2565b5f1960601c83811693508281169250815f52337f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f2082018201805480831686811481026104f05767ceea21b6a1148100811560021b526004601cfd5b865f5282600101548033148833141761051b576030600c205461051a57634b6e7f185f526004601cfd5b5b8015610528575f84600101555b5085871882188355601c600c206001815403815550855f52601c600c20600181540163ffffffff8116880261056c5767ea553b3401336cea881560021b526004601cfd5b80825550508486887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a4505050506105a78383836108c7565b505050565b6105b7838383610482565b6105c0826108cc565b156105e0576105df83838360405180602001604052805f8152506108d6565b5b505050565b5f6105ef82610960565b9050806106035763ceea21b65f526004601cfd5b919050565b60015481565b600154341015610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a90610f9a565b60405180910390fd5b61066f815f80815461066490610fe5565b91905081905561099e565b50565b5f8161068557638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b61075a858585610482565b610763846108cc565b156107b8576107b785858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506108d6565b5b5050505050565b60606107ca82610a6a565b6040516020016107da91906110b0565b6040516020818303038152906040529050919050565b5f81601c52670a5a2e7a00000000600852825f526030600c2054905092915050565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216806108685763ceea21b65f526004601cfd5b80861486151761088d57805f526030600c205461088c57634b6e7f185f526004601cfd5b5b8482600101558385827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a4505050505050565b505050565b505050565b5f813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a0840152801561091d578060c08401826020870160045afa505b60208360a48301601c86015f8a5af161093f573d1561093e573d5f843e3d83fd5b5b8160e01b8351146109575763d1a57ed65f526004601cfd5b50505050505050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f20820182015460601b60601c9050919050565b6109a95f83836108c2565b8160601b60601c9150805f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208101810180548060601b156109f95763c991cbb15f526004601cfd5b8381178255835f52601c600c20600181540163ffffffff81168602610a2d5767ea553b3401336cea861560021b526004601cfd5b808255505082845f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45050610a665f83836108c7565b5050565b60606080604051019050602081016040525f8152805f19835b600115610aa4578184019350600a81066030018453600a8104905080610a83575b50828203602084039350808452505050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610af581610ac1565b8114610aff575f80fd5b50565b5f81359050610b1081610aec565b92915050565b5f60208284031215610b2b57610b2a610ab9565b5b5f610b3884828501610b02565b91505092915050565b5f8115159050919050565b610b5581610b41565b82525050565b5f602082019050610b6e5f830184610b4c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610bb682610b74565b610bc08185610b7e565b9350610bd0818560208601610b8e565b610bd981610b9c565b840191505092915050565b5f6020820190508181035f830152610bfc8184610bac565b905092915050565b5f819050919050565b610c1681610c04565b8114610c20575f80fd5b50565b5f81359050610c3181610c0d565b92915050565b5f60208284031215610c4c57610c4b610ab9565b5b5f610c5984828501610c23565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8b82610c62565b9050919050565b610c9b81610c81565b82525050565b5f602082019050610cb45f830184610c92565b92915050565b610cc381610c81565b8114610ccd575f80fd5b50565b5f81359050610cde81610cba565b92915050565b5f8060408385031215610cfa57610cf9610ab9565b5b5f610d0785828601610cd0565b9250506020610d1885828601610c23565b9150509250929050565b610d2b81610c04565b82525050565b5f602082019050610d445f830184610d22565b92915050565b5f805f60608486031215610d6157610d60610ab9565b5b5f610d6e86828701610cd0565b9350506020610d7f86828701610cd0565b9250506040610d9086828701610c23565b9150509250925092565b5f60208284031215610daf57610dae610ab9565b5b5f610dbc84828501610cd0565b91505092915050565b610dce81610b41565b8114610dd8575f80fd5b50565b5f81359050610de981610dc5565b92915050565b5f8060408385031215610e0557610e04610ab9565b5b5f610e1285828601610cd0565b9250506020610e2385828601610ddb565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4e57610e4d610e2d565b5b8235905067ffffffffffffffff811115610e6b57610e6a610e31565b5b602083019150836001820283011115610e8757610e86610e35565b5b9250929050565b5f805f805f60808688031215610ea757610ea6610ab9565b5b5f610eb488828901610cd0565b9550506020610ec588828901610cd0565b9450506040610ed688828901610c23565b935050606086013567ffffffffffffffff811115610ef757610ef6610abd565b5b610f0388828901610e39565b92509250509295509295909350565b5f8060408385031215610f2857610f27610ab9565b5b5f610f3585828601610cd0565b9250506020610f4685828601610cd0565b9150509250929050565b7f4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e6579210000005f82015250565b5f610f84601d83610b7e565b9150610f8f82610f50565b602082019050919050565b5f6020820190508181035f830152610fb181610f78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fef82610c04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361102157611020610fb8565b5b600182019050919050565b5f81905092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f0000000000005f82015250565b5f61106a601a8361102c565b915061107582611036565b601a82019050919050565b5f61108a82610b74565b611094818561102c565b93506110a4818560208601610b8e565b80840191505092915050565b5f6110ba8261105e565b91506110c68284611080565b91508190509291505056fea26469706673582212206a79f5a0e467f48b674391deaeadba3209007079faabfaab6ff555ea1ad6b8d964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0x16345785D8A0000 PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x1A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1107 DUP1 PUSH2 0x28 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF2 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6817C76C GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37E JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x6817C76C EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2D4 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x216 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x198 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x117 SWAP2 SWAP1 PUSH2 0xB16 JUMP JUMPDEST PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x146 PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C8 PUSH2 0x47D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x237 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x296 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x291 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x60E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E8 PUSH2 0x6BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x340 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33B SWAP2 SWAP1 PUSH2 0xE8E JUMP JUMPDEST PUSH2 0x74F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHR PUSH4 0x5B5E139F DUP2 EQ PUSH4 0x80AC58CD DUP3 EQ PUSH4 0x1FFC9A7 DUP4 EQ OR OR SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243373231000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD PUSH1 0x60 SHL PUSH2 0x461 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x479 CALLER DUP4 DUP4 PUSH2 0x812 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x48D DUP4 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP4 DUP2 AND SWAP4 POP DUP3 DUP2 AND SWAP3 POP DUP2 PUSH0 MSTORE CALLER PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP1 DUP4 AND DUP7 DUP2 EQ DUP2 MUL PUSH2 0x4F0 JUMPI PUSH8 0xCEEA21B6A1148100 DUP2 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 PUSH0 MSTORE DUP3 PUSH1 0x1 ADD SLOAD DUP1 CALLER EQ DUP9 CALLER EQ OR PUSH2 0x51B JUMPI PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x51A JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x528 JUMPI PUSH0 DUP5 PUSH1 0x1 ADD SSTORE JUMPDEST POP DUP6 DUP8 XOR DUP3 XOR DUP4 SSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD SUB DUP2 SSTORE POP DUP6 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP9 MUL PUSH2 0x56C JUMPI PUSH8 0xEA553B3401336CEA DUP9 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP5 DUP7 DUP9 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP POP POP PUSH2 0x5A7 DUP4 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP4 DUP4 DUP4 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x5C0 DUP3 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5EF DUP3 PUSH2 0x960 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x603 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x66F DUP2 PUSH0 DUP1 DUP2 SLOAD PUSH2 0x664 SWAP1 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE PUSH2 0x99E JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x685 JUMPI PUSH4 0x8F4EB604 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE DUP2 PUSH0 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1C PUSH1 0xC KECCAK256 SLOAD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO SWAP1 POP DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x30 PUSH1 0xC KECCAK256 SSTORE DUP1 PUSH0 MSTORE DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR CALLER PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 PUSH0 LOG3 POP POP JUMP JUMPDEST PUSH2 0x75A DUP6 DUP6 DUP6 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x763 DUP5 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x7B8 JUMPI PUSH2 0x7B7 DUP6 DUP6 DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7CA DUP3 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7DA SWAP2 SWAP1 PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE DUP3 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP3 DUP2 AND SWAP3 POP DUP4 DUP2 AND SWAP4 POP DUP2 PUSH0 MSTORE DUP4 PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP3 AND DUP1 PUSH2 0x868 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP7 EQ DUP7 ISZERO OR PUSH2 0x88D JUMPI DUP1 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x88C JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP5 DUP3 PUSH1 0x1 ADD SSTORE DUP4 DUP6 DUP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH0 CODESIZE LOG4 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 EXTCODESIZE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x150B7A02 DUP1 DUP3 MSTORE CALLER PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x60 SHL PUSH1 0x60 SHR PUSH1 0x40 DUP4 ADD MSTORE DUP4 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0xA0 DUP5 ADD MSTORE DUP1 ISZERO PUSH2 0x91D JUMPI DUP1 PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x20 DUP8 ADD PUSH1 0x4 GAS STATICCALL POP JUMPDEST PUSH1 0x20 DUP4 PUSH1 0xA4 DUP4 ADD PUSH1 0x1C DUP7 ADD PUSH0 DUP11 GAS CALL PUSH2 0x93F JUMPI RETURNDATASIZE ISZERO PUSH2 0x93E JUMPI RETURNDATASIZE PUSH0 DUP5 RETURNDATACOPY RETURNDATASIZE DUP4 REVERT JUMPDEST JUMPDEST DUP2 PUSH1 0xE0 SHL DUP4 MLOAD EQ PUSH2 0x957 JUMPI PUSH4 0xD1A57ED6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD SLOAD PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9A9 PUSH0 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP1 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP2 ADD DUP2 ADD DUP1 SLOAD DUP1 PUSH1 0x60 SHL ISZERO PUSH2 0x9F9 JUMPI PUSH4 0xC991CBB1 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 OR DUP3 SSTORE DUP4 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP7 MUL PUSH2 0xA2D JUMPI PUSH8 0xEA553B3401336CEA DUP7 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP3 DUP5 PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP PUSH2 0xA66 PUSH0 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x80 PUSH1 0x40 MLOAD ADD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE PUSH0 DUP2 MSTORE DUP1 PUSH0 NOT DUP4 JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP5 ADD SWAP4 POP PUSH1 0xA DUP2 MOD PUSH1 0x30 ADD DUP5 MSTORE8 PUSH1 0xA DUP2 DIV SWAP1 POP DUP1 PUSH2 0xA83 JUMPI JUMPDEST POP DUP3 DUP3 SUB PUSH1 0x20 DUP5 SUB SWAP4 POP DUP1 DUP5 MSTORE POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF5 DUP2 PUSH2 0xAC1 JUMP JUMPDEST DUP2 EQ PUSH2 0xAFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB10 DUP2 PUSH2 0xAEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2B JUMPI PUSH2 0xB2A PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB38 DUP5 DUP3 DUP6 ADD PUSH2 0xB02 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6E PUSH0 DUP4 ADD DUP5 PUSH2 0xB4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBB6 DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0xBC0 DUP2 DUP6 PUSH2 0xB7E JUMP JUMPDEST SWAP4 POP PUSH2 0xBD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH2 0xBD9 DUP2 PUSH2 0xB9C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xBFC DUP2 DUP5 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC16 DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP2 EQ PUSH2 0xC20 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC31 DUP2 PUSH2 0xC0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC59 DUP5 DUP3 DUP6 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC8B DUP3 PUSH2 0xC62 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC9B DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH0 DUP4 ADD DUP5 PUSH2 0xC92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC3 DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP2 EQ PUSH2 0xCCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCDE DUP2 PUSH2 0xCBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF9 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD07 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD18 DUP6 DUP3 DUP7 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD44 PUSH0 DUP4 ADD DUP5 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD7F DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD90 DUP7 DUP3 DUP8 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAE PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDBC DUP5 DUP3 DUP6 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP2 EQ PUSH2 0xDD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDE9 DUP2 PUSH2 0xDC5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH2 0xE04 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE12 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE23 DUP6 DUP3 DUP7 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE4E JUMPI PUSH2 0xE4D PUSH2 0xE2D JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xE31 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE87 JUMPI PUSH2 0xE86 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEB4 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0xEC5 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xED6 DUP9 DUP3 DUP10 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEF7 JUMPI PUSH2 0xEF6 PUSH2 0xABD JUMP JUMPDEST JUMPDEST PUSH2 0xF03 DUP9 DUP3 DUP10 ADD PUSH2 0xE39 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF28 JUMPI PUSH2 0xF27 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF35 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF46 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6F636B4552433732313A2067696D6D65206D6F7265206D6F6E657921000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF84 PUSH1 0x1D DUP4 PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP PUSH2 0xF8F DUP3 PUSH2 0xF50 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFB1 DUP2 PUSH2 0xF78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xFEF DUP3 PUSH2 0xC04 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1021 JUMPI PUSH2 0x1020 PUSH2 0xFB8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x106A PUSH1 0x1A DUP4 PUSH2 0x102C JUMP JUMPDEST SWAP2 POP PUSH2 0x1075 DUP3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x1A DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108A DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0x1094 DUP2 DUP6 PUSH2 0x102C JUMP JUMPDEST SWAP4 POP PUSH2 0x10A4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10BA DUP3 PUSH2 0x105E JUMP JUMPDEST SWAP2 POP PUSH2 0x10C6 DUP3 DUP5 PUSH2 0x1080 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0x79F5A0E467F48B674391DE 0xAE 0xAD 0xBA ORIGIN MULMOD STOP PUSH17 0x79FAABFAAB6FF555EA1AD6B8D964736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"679:706:49:-:0;;;774:9;747:36;;679:706;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_9086":{"entryPoint":2247,"id":9086,"parameterSlots":3,"returnSlots":0},"@_approve_8899":{"entryPoint":2066,"id":8899,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9075":{"entryPoint":2242,"id":9075,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_9110":{"entryPoint":2262,"id":9110,"parameterSlots":4,"returnSlots":0},"@_hasCode_9096":{"entryPoint":2252,"id":9096,"parameterSlots":1,"returnSlots":1},"@_mint_8723":{"entryPoint":2462,"id":8723,"parameterSlots":2,"returnSlots":0},"@_ownerOf_8655":{"entryPoint":2400,"id":8655,"parameterSlots":1,"returnSlots":1},"@approve_8521":{"entryPoint":1134,"id":8521,"parameterSlots":2,"returnSlots":0},"@balanceOf_8495":{"entryPoint":1650,"id":8495,"parameterSlots":1,"returnSlots":1},"@getApproved_8505":{"entryPoint":1051,"id":8505,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_8533":{"entryPoint":2032,"id":8533,"parameterSlots":2,"returnSlots":1},"@mintPrice_17738":{"entryPoint":1544,"id":17738,"parameterSlots":0,"returnSlots":0},"@mint_17776":{"entryPoint":1550,"id":17776,"parameterSlots":1,"returnSlots":0},"@name_17747":{"entryPoint":990,"id":17747,"parameterSlots":0,"returnSlots":1},"@ownerOf_8485":{"entryPoint":1509,"id":8485,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_8595":{"entryPoint":1452,"id":8595,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_8625":{"entryPoint":1871,"id":8625,"parameterSlots":5,"returnSlots":0},"@setApprovalForAll_8543":{"entryPoint":1788,"id":8543,"parameterSlots":2,"returnSlots":0},"@supportsInterface_8635":{"entryPoint":954,"id":8635,"parameterSlots":1,"returnSlots":1},"@symbol_17756":{"entryPoint":1727,"id":17756,"parameterSlots":0,"returnSlots":1},"@toString_10334":{"entryPoint":2666,"id":10334,"parameterSlots":1,"returnSlots":1},"@tokenURI_17797":{"entryPoint":1983,"id":17797,"parameterSlots":1,"returnSlots":1},"@totalSupply_17735":{"entryPoint":1149,"id":17735,"parameterSlots":0,"returnSlots":0},"@transferFrom_8567":{"entryPoint":1154,"id":8567,"parameterSlots":3,"returnSlots":0},"abi_decode_t_address":{"entryPoint":3280,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":3547,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":2818,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3641,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":3107,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3858,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3402,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":3726,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3567,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3300,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":2838,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3127,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3218,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2892,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2988,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4224,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack":{"entryPoint":3960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4190,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3362,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4272,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3233,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2907,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3044,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3994,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3377,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2932,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2942,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4140,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3201,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2881,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":2753,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3170,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3076,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2958,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":4069,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4024,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3633,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3629,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3637,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":2749,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2745,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2972,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb":{"entryPoint":3920,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f":{"entryPoint":4150,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3258,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3525,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":2796,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3085,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12382:53","nodeType":"YulBlock","src":"0:12382:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1577:40:53","nodeType":"YulBlock","src":"1577:40:53","statements":[{"nativeSrc":"1588:22:53","nodeType":"YulAssignment","src":"1588:22:53","value":{"arguments":[{"name":"value","nativeSrc":"1604:5:53","nodeType":"YulIdentifier","src":"1604:5:53"}],"functionName":{"name":"mload","nativeSrc":"1598:5:53","nodeType":"YulIdentifier","src":"1598:5:53"},"nativeSrc":"1598:12:53","nodeType":"YulFunctionCall","src":"1598:12:53"},"variableNames":[{"name":"length","nativeSrc":"1588:6:53","nodeType":"YulIdentifier","src":"1588:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"1518:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1560:5:53","nodeType":"YulTypedName","src":"1560:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1570:6:53","nodeType":"YulTypedName","src":"1570:6:53","type":""}],"src":"1518:99:53"},{"body":{"nativeSrc":"1719:73:53","nodeType":"YulBlock","src":"1719:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1736:3:53","nodeType":"YulIdentifier","src":"1736:3:53"},{"name":"length","nativeSrc":"1741:6:53","nodeType":"YulIdentifier","src":"1741:6:53"}],"functionName":{"name":"mstore","nativeSrc":"1729:6:53","nodeType":"YulIdentifier","src":"1729:6:53"},"nativeSrc":"1729:19:53","nodeType":"YulFunctionCall","src":"1729:19:53"},"nativeSrc":"1729:19:53","nodeType":"YulExpressionStatement","src":"1729:19:53"},{"nativeSrc":"1757:29:53","nodeType":"YulAssignment","src":"1757:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"1776:3:53","nodeType":"YulIdentifier","src":"1776:3:53"},{"kind":"number","nativeSrc":"1781:4:53","nodeType":"YulLiteral","src":"1781:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1772:3:53","nodeType":"YulIdentifier","src":"1772:3:53"},"nativeSrc":"1772:14:53","nodeType":"YulFunctionCall","src":"1772:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"1757:11:53","nodeType":"YulIdentifier","src":"1757:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1623:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1691:3:53","nodeType":"YulTypedName","src":"1691:3:53","type":""},{"name":"length","nativeSrc":"1696:6:53","nodeType":"YulTypedName","src":"1696:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1707:11:53","nodeType":"YulTypedName","src":"1707:11:53","type":""}],"src":"1623:169:53"},{"body":{"nativeSrc":"1860:77:53","nodeType":"YulBlock","src":"1860:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1877:3:53","nodeType":"YulIdentifier","src":"1877:3:53"},{"name":"src","nativeSrc":"1882:3:53","nodeType":"YulIdentifier","src":"1882:3:53"},{"name":"length","nativeSrc":"1887:6:53","nodeType":"YulIdentifier","src":"1887:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"1871:5:53","nodeType":"YulIdentifier","src":"1871:5:53"},"nativeSrc":"1871:23:53","nodeType":"YulFunctionCall","src":"1871:23:53"},"nativeSrc":"1871:23:53","nodeType":"YulExpressionStatement","src":"1871:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1914:3:53","nodeType":"YulIdentifier","src":"1914:3:53"},{"name":"length","nativeSrc":"1919:6:53","nodeType":"YulIdentifier","src":"1919:6:53"}],"functionName":{"name":"add","nativeSrc":"1910:3:53","nodeType":"YulIdentifier","src":"1910:3:53"},"nativeSrc":"1910:16:53","nodeType":"YulFunctionCall","src":"1910:16:53"},{"kind":"number","nativeSrc":"1928:1:53","nodeType":"YulLiteral","src":"1928:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1903:6:53","nodeType":"YulIdentifier","src":"1903:6:53"},"nativeSrc":"1903:27:53","nodeType":"YulFunctionCall","src":"1903:27:53"},"nativeSrc":"1903:27:53","nodeType":"YulExpressionStatement","src":"1903:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1798:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1842:3:53","nodeType":"YulTypedName","src":"1842:3:53","type":""},{"name":"dst","nativeSrc":"1847:3:53","nodeType":"YulTypedName","src":"1847:3:53","type":""},{"name":"length","nativeSrc":"1852:6:53","nodeType":"YulTypedName","src":"1852:6:53","type":""}],"src":"1798:139:53"},{"body":{"nativeSrc":"1991:54:53","nodeType":"YulBlock","src":"1991:54:53","statements":[{"nativeSrc":"2001:38:53","nodeType":"YulAssignment","src":"2001:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2019:5:53","nodeType":"YulIdentifier","src":"2019:5:53"},{"kind":"number","nativeSrc":"2026:2:53","nodeType":"YulLiteral","src":"2026:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2015:3:53","nodeType":"YulIdentifier","src":"2015:3:53"},"nativeSrc":"2015:14:53","nodeType":"YulFunctionCall","src":"2015:14:53"},{"arguments":[{"kind":"number","nativeSrc":"2035:2:53","nodeType":"YulLiteral","src":"2035:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2031:3:53","nodeType":"YulIdentifier","src":"2031:3:53"},"nativeSrc":"2031:7:53","nodeType":"YulFunctionCall","src":"2031:7:53"}],"functionName":{"name":"and","nativeSrc":"2011:3:53","nodeType":"YulIdentifier","src":"2011:3:53"},"nativeSrc":"2011:28:53","nodeType":"YulFunctionCall","src":"2011:28:53"},"variableNames":[{"name":"result","nativeSrc":"2001:6:53","nodeType":"YulIdentifier","src":"2001:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1943:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1974:5:53","nodeType":"YulTypedName","src":"1974:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1984:6:53","nodeType":"YulTypedName","src":"1984:6:53","type":""}],"src":"1943:102:53"},{"body":{"nativeSrc":"2143:285:53","nodeType":"YulBlock","src":"2143:285:53","statements":[{"nativeSrc":"2153:53:53","nodeType":"YulVariableDeclaration","src":"2153:53:53","value":{"arguments":[{"name":"value","nativeSrc":"2200:5:53","nodeType":"YulIdentifier","src":"2200:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"2167:32:53","nodeType":"YulIdentifier","src":"2167:32:53"},"nativeSrc":"2167:39:53","nodeType":"YulFunctionCall","src":"2167:39:53"},"variables":[{"name":"length","nativeSrc":"2157:6:53","nodeType":"YulTypedName","src":"2157:6:53","type":""}]},{"nativeSrc":"2215:78:53","nodeType":"YulAssignment","src":"2215:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"2281:3:53","nodeType":"YulIdentifier","src":"2281:3:53"},{"name":"length","nativeSrc":"2286:6:53","nodeType":"YulIdentifier","src":"2286:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2222:58:53","nodeType":"YulIdentifier","src":"2222:58:53"},"nativeSrc":"2222:71:53","nodeType":"YulFunctionCall","src":"2222:71:53"},"variableNames":[{"name":"pos","nativeSrc":"2215:3:53","nodeType":"YulIdentifier","src":"2215:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2341:5:53","nodeType":"YulIdentifier","src":"2341:5:53"},{"kind":"number","nativeSrc":"2348:4:53","nodeType":"YulLiteral","src":"2348:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2337:3:53","nodeType":"YulIdentifier","src":"2337:3:53"},"nativeSrc":"2337:16:53","nodeType":"YulFunctionCall","src":"2337:16:53"},{"name":"pos","nativeSrc":"2355:3:53","nodeType":"YulIdentifier","src":"2355:3:53"},{"name":"length","nativeSrc":"2360:6:53","nodeType":"YulIdentifier","src":"2360:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2302:34:53","nodeType":"YulIdentifier","src":"2302:34:53"},"nativeSrc":"2302:65:53","nodeType":"YulFunctionCall","src":"2302:65:53"},"nativeSrc":"2302:65:53","nodeType":"YulExpressionStatement","src":"2302:65:53"},{"nativeSrc":"2376:46:53","nodeType":"YulAssignment","src":"2376:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"2387:3:53","nodeType":"YulIdentifier","src":"2387:3:53"},{"arguments":[{"name":"length","nativeSrc":"2414:6:53","nodeType":"YulIdentifier","src":"2414:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2392:21:53","nodeType":"YulIdentifier","src":"2392:21:53"},"nativeSrc":"2392:29:53","nodeType":"YulFunctionCall","src":"2392:29:53"}],"functionName":{"name":"add","nativeSrc":"2383:3:53","nodeType":"YulIdentifier","src":"2383:3:53"},"nativeSrc":"2383:39:53","nodeType":"YulFunctionCall","src":"2383:39:53"},"variableNames":[{"name":"end","nativeSrc":"2376:3:53","nodeType":"YulIdentifier","src":"2376:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"2051:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2124:5:53","nodeType":"YulTypedName","src":"2124:5:53","type":""},{"name":"pos","nativeSrc":"2131:3:53","nodeType":"YulTypedName","src":"2131:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2139:3:53","nodeType":"YulTypedName","src":"2139:3:53","type":""}],"src":"2051:377:53"},{"body":{"nativeSrc":"2552:195:53","nodeType":"YulBlock","src":"2552:195:53","statements":[{"nativeSrc":"2562:26:53","nodeType":"YulAssignment","src":"2562:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2574:9:53","nodeType":"YulIdentifier","src":"2574:9:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2570:3:53","nodeType":"YulIdentifier","src":"2570:3:53"},"nativeSrc":"2570:18:53","nodeType":"YulFunctionCall","src":"2570:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2562:4:53","nodeType":"YulIdentifier","src":"2562:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2609:9:53","nodeType":"YulIdentifier","src":"2609:9:53"},{"kind":"number","nativeSrc":"2620:1:53","nodeType":"YulLiteral","src":"2620:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2605:3:53","nodeType":"YulIdentifier","src":"2605:3:53"},"nativeSrc":"2605:17:53","nodeType":"YulFunctionCall","src":"2605:17:53"},{"arguments":[{"name":"tail","nativeSrc":"2628:4:53","nodeType":"YulIdentifier","src":"2628:4:53"},{"name":"headStart","nativeSrc":"2634:9:53","nodeType":"YulIdentifier","src":"2634:9:53"}],"functionName":{"name":"sub","nativeSrc":"2624:3:53","nodeType":"YulIdentifier","src":"2624:3:53"},"nativeSrc":"2624:20:53","nodeType":"YulFunctionCall","src":"2624:20:53"}],"functionName":{"name":"mstore","nativeSrc":"2598:6:53","nodeType":"YulIdentifier","src":"2598:6:53"},"nativeSrc":"2598:47:53","nodeType":"YulFunctionCall","src":"2598:47:53"},"nativeSrc":"2598:47:53","nodeType":"YulExpressionStatement","src":"2598:47:53"},{"nativeSrc":"2654:86:53","nodeType":"YulAssignment","src":"2654:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"2726:6:53","nodeType":"YulIdentifier","src":"2726:6:53"},{"name":"tail","nativeSrc":"2735:4:53","nodeType":"YulIdentifier","src":"2735:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"2662:63:53","nodeType":"YulIdentifier","src":"2662:63:53"},"nativeSrc":"2662:78:53","nodeType":"YulFunctionCall","src":"2662:78:53"},"variableNames":[{"name":"tail","nativeSrc":"2654:4:53","nodeType":"YulIdentifier","src":"2654:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2434:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2524:9:53","nodeType":"YulTypedName","src":"2524:9:53","type":""},{"name":"value0","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2547:4:53","nodeType":"YulTypedName","src":"2547:4:53","type":""}],"src":"2434:313:53"},{"body":{"nativeSrc":"2798:32:53","nodeType":"YulBlock","src":"2798:32:53","statements":[{"nativeSrc":"2808:16:53","nodeType":"YulAssignment","src":"2808:16:53","value":{"name":"value","nativeSrc":"2819:5:53","nodeType":"YulIdentifier","src":"2819:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2808:7:53","nodeType":"YulIdentifier","src":"2808:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2753:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2780:5:53","nodeType":"YulTypedName","src":"2780:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2790:7:53","nodeType":"YulTypedName","src":"2790:7:53","type":""}],"src":"2753:77:53"},{"body":{"nativeSrc":"2879:79:53","nodeType":"YulBlock","src":"2879:79:53","statements":[{"body":{"nativeSrc":"2936:16:53","nodeType":"YulBlock","src":"2936:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2945:1:53","nodeType":"YulLiteral","src":"2945:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2948:1:53","nodeType":"YulLiteral","src":"2948:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2938:6:53","nodeType":"YulIdentifier","src":"2938:6:53"},"nativeSrc":"2938:12:53","nodeType":"YulFunctionCall","src":"2938:12:53"},"nativeSrc":"2938:12:53","nodeType":"YulExpressionStatement","src":"2938:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2902:5:53","nodeType":"YulIdentifier","src":"2902:5:53"},{"arguments":[{"name":"value","nativeSrc":"2927:5:53","nodeType":"YulIdentifier","src":"2927:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2909:17:53","nodeType":"YulIdentifier","src":"2909:17:53"},"nativeSrc":"2909:24:53","nodeType":"YulFunctionCall","src":"2909:24:53"}],"functionName":{"name":"eq","nativeSrc":"2899:2:53","nodeType":"YulIdentifier","src":"2899:2:53"},"nativeSrc":"2899:35:53","nodeType":"YulFunctionCall","src":"2899:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2892:6:53","nodeType":"YulIdentifier","src":"2892:6:53"},"nativeSrc":"2892:43:53","nodeType":"YulFunctionCall","src":"2892:43:53"},"nativeSrc":"2889:63:53","nodeType":"YulIf","src":"2889:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"2836:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2872:5:53","nodeType":"YulTypedName","src":"2872:5:53","type":""}],"src":"2836:122:53"},{"body":{"nativeSrc":"3016:87:53","nodeType":"YulBlock","src":"3016:87:53","statements":[{"nativeSrc":"3026:29:53","nodeType":"YulAssignment","src":"3026:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3048:6:53","nodeType":"YulIdentifier","src":"3048:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3035:12:53","nodeType":"YulIdentifier","src":"3035:12:53"},"nativeSrc":"3035:20:53","nodeType":"YulFunctionCall","src":"3035:20:53"},"variableNames":[{"name":"value","nativeSrc":"3026:5:53","nodeType":"YulIdentifier","src":"3026:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3091:5:53","nodeType":"YulIdentifier","src":"3091:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3064:26:53","nodeType":"YulIdentifier","src":"3064:26:53"},"nativeSrc":"3064:33:53","nodeType":"YulFunctionCall","src":"3064:33:53"},"nativeSrc":"3064:33:53","nodeType":"YulExpressionStatement","src":"3064:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"2964:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2994:6:53","nodeType":"YulTypedName","src":"2994:6:53","type":""},{"name":"end","nativeSrc":"3002:3:53","nodeType":"YulTypedName","src":"3002:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3010:5:53","nodeType":"YulTypedName","src":"3010:5:53","type":""}],"src":"2964:139:53"},{"body":{"nativeSrc":"3175:263:53","nodeType":"YulBlock","src":"3175:263:53","statements":[{"body":{"nativeSrc":"3221:83:53","nodeType":"YulBlock","src":"3221:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3223:77:53","nodeType":"YulIdentifier","src":"3223:77:53"},"nativeSrc":"3223:79:53","nodeType":"YulFunctionCall","src":"3223:79:53"},"nativeSrc":"3223:79:53","nodeType":"YulExpressionStatement","src":"3223:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3196:7:53","nodeType":"YulIdentifier","src":"3196:7:53"},{"name":"headStart","nativeSrc":"3205:9:53","nodeType":"YulIdentifier","src":"3205:9:53"}],"functionName":{"name":"sub","nativeSrc":"3192:3:53","nodeType":"YulIdentifier","src":"3192:3:53"},"nativeSrc":"3192:23:53","nodeType":"YulFunctionCall","src":"3192:23:53"},{"kind":"number","nativeSrc":"3217:2:53","nodeType":"YulLiteral","src":"3217:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3188:3:53","nodeType":"YulIdentifier","src":"3188:3:53"},"nativeSrc":"3188:32:53","nodeType":"YulFunctionCall","src":"3188:32:53"},"nativeSrc":"3185:119:53","nodeType":"YulIf","src":"3185:119:53"},{"nativeSrc":"3314:117:53","nodeType":"YulBlock","src":"3314:117:53","statements":[{"nativeSrc":"3329:15:53","nodeType":"YulVariableDeclaration","src":"3329:15:53","value":{"kind":"number","nativeSrc":"3343:1:53","nodeType":"YulLiteral","src":"3343:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3333:6:53","nodeType":"YulTypedName","src":"3333:6:53","type":""}]},{"nativeSrc":"3358:63:53","nodeType":"YulAssignment","src":"3358:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3393:9:53","nodeType":"YulIdentifier","src":"3393:9:53"},{"name":"offset","nativeSrc":"3404:6:53","nodeType":"YulIdentifier","src":"3404:6:53"}],"functionName":{"name":"add","nativeSrc":"3389:3:53","nodeType":"YulIdentifier","src":"3389:3:53"},"nativeSrc":"3389:22:53","nodeType":"YulFunctionCall","src":"3389:22:53"},{"name":"dataEnd","nativeSrc":"3413:7:53","nodeType":"YulIdentifier","src":"3413:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3368:20:53","nodeType":"YulIdentifier","src":"3368:20:53"},"nativeSrc":"3368:53:53","nodeType":"YulFunctionCall","src":"3368:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3109:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3145:9:53","nodeType":"YulTypedName","src":"3145:9:53","type":""},{"name":"dataEnd","nativeSrc":"3156:7:53","nodeType":"YulTypedName","src":"3156:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3168:6:53","nodeType":"YulTypedName","src":"3168:6:53","type":""}],"src":"3109:329:53"},{"body":{"nativeSrc":"3489:81:53","nodeType":"YulBlock","src":"3489:81:53","statements":[{"nativeSrc":"3499:65:53","nodeType":"YulAssignment","src":"3499:65:53","value":{"arguments":[{"name":"value","nativeSrc":"3514:5:53","nodeType":"YulIdentifier","src":"3514:5:53"},{"kind":"number","nativeSrc":"3521:42:53","nodeType":"YulLiteral","src":"3521:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3510:3:53","nodeType":"YulIdentifier","src":"3510:3:53"},"nativeSrc":"3510:54:53","nodeType":"YulFunctionCall","src":"3510:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3499:7:53","nodeType":"YulIdentifier","src":"3499:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3444:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3471:5:53","nodeType":"YulTypedName","src":"3471:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3481:7:53","nodeType":"YulTypedName","src":"3481:7:53","type":""}],"src":"3444:126:53"},{"body":{"nativeSrc":"3621:51:53","nodeType":"YulBlock","src":"3621:51:53","statements":[{"nativeSrc":"3631:35:53","nodeType":"YulAssignment","src":"3631:35:53","value":{"arguments":[{"name":"value","nativeSrc":"3660:5:53","nodeType":"YulIdentifier","src":"3660:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3642:17:53","nodeType":"YulIdentifier","src":"3642:17:53"},"nativeSrc":"3642:24:53","nodeType":"YulFunctionCall","src":"3642:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3631:7:53","nodeType":"YulIdentifier","src":"3631:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"3576:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3603:5:53","nodeType":"YulTypedName","src":"3603:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3613:7:53","nodeType":"YulTypedName","src":"3613:7:53","type":""}],"src":"3576:96:53"},{"body":{"nativeSrc":"3743:53:53","nodeType":"YulBlock","src":"3743:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3760:3:53","nodeType":"YulIdentifier","src":"3760:3:53"},{"arguments":[{"name":"value","nativeSrc":"3783:5:53","nodeType":"YulIdentifier","src":"3783:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3765:17:53","nodeType":"YulIdentifier","src":"3765:17:53"},"nativeSrc":"3765:24:53","nodeType":"YulFunctionCall","src":"3765:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"},"nativeSrc":"3753:37:53","nodeType":"YulFunctionCall","src":"3753:37:53"},"nativeSrc":"3753:37:53","nodeType":"YulExpressionStatement","src":"3753:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3678:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3731:5:53","nodeType":"YulTypedName","src":"3731:5:53","type":""},{"name":"pos","nativeSrc":"3738:3:53","nodeType":"YulTypedName","src":"3738:3:53","type":""}],"src":"3678:118:53"},{"body":{"nativeSrc":"3900:124:53","nodeType":"YulBlock","src":"3900:124:53","statements":[{"nativeSrc":"3910:26:53","nodeType":"YulAssignment","src":"3910:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3922:9:53","nodeType":"YulIdentifier","src":"3922:9:53"},{"kind":"number","nativeSrc":"3933:2:53","nodeType":"YulLiteral","src":"3933:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3918:3:53","nodeType":"YulIdentifier","src":"3918:3:53"},"nativeSrc":"3918:18:53","nodeType":"YulFunctionCall","src":"3918:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3910:4:53","nodeType":"YulIdentifier","src":"3910:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3990:6:53","nodeType":"YulIdentifier","src":"3990:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4003:9:53","nodeType":"YulIdentifier","src":"4003:9:53"},{"kind":"number","nativeSrc":"4014:1:53","nodeType":"YulLiteral","src":"4014:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3999:3:53","nodeType":"YulIdentifier","src":"3999:3:53"},"nativeSrc":"3999:17:53","nodeType":"YulFunctionCall","src":"3999:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3946:43:53","nodeType":"YulIdentifier","src":"3946:43:53"},"nativeSrc":"3946:71:53","nodeType":"YulFunctionCall","src":"3946:71:53"},"nativeSrc":"3946:71:53","nodeType":"YulExpressionStatement","src":"3946:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3802:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3872:9:53","nodeType":"YulTypedName","src":"3872:9:53","type":""},{"name":"value0","nativeSrc":"3884:6:53","nodeType":"YulTypedName","src":"3884:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3895:4:53","nodeType":"YulTypedName","src":"3895:4:53","type":""}],"src":"3802:222:53"},{"body":{"nativeSrc":"4073:79:53","nodeType":"YulBlock","src":"4073:79:53","statements":[{"body":{"nativeSrc":"4130:16:53","nodeType":"YulBlock","src":"4130:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4139:1:53","nodeType":"YulLiteral","src":"4139:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4142:1:53","nodeType":"YulLiteral","src":"4142:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4132:6:53","nodeType":"YulIdentifier","src":"4132:6:53"},"nativeSrc":"4132:12:53","nodeType":"YulFunctionCall","src":"4132:12:53"},"nativeSrc":"4132:12:53","nodeType":"YulExpressionStatement","src":"4132:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4096:5:53","nodeType":"YulIdentifier","src":"4096:5:53"},{"arguments":[{"name":"value","nativeSrc":"4121:5:53","nodeType":"YulIdentifier","src":"4121:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4103:17:53","nodeType":"YulIdentifier","src":"4103:17:53"},"nativeSrc":"4103:24:53","nodeType":"YulFunctionCall","src":"4103:24:53"}],"functionName":{"name":"eq","nativeSrc":"4093:2:53","nodeType":"YulIdentifier","src":"4093:2:53"},"nativeSrc":"4093:35:53","nodeType":"YulFunctionCall","src":"4093:35:53"}],"functionName":{"name":"iszero","nativeSrc":"4086:6:53","nodeType":"YulIdentifier","src":"4086:6:53"},"nativeSrc":"4086:43:53","nodeType":"YulFunctionCall","src":"4086:43:53"},"nativeSrc":"4083:63:53","nodeType":"YulIf","src":"4083:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"4030:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4066:5:53","nodeType":"YulTypedName","src":"4066:5:53","type":""}],"src":"4030:122:53"},{"body":{"nativeSrc":"4210:87:53","nodeType":"YulBlock","src":"4210:87:53","statements":[{"nativeSrc":"4220:29:53","nodeType":"YulAssignment","src":"4220:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4242:6:53","nodeType":"YulIdentifier","src":"4242:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4229:12:53","nodeType":"YulIdentifier","src":"4229:12:53"},"nativeSrc":"4229:20:53","nodeType":"YulFunctionCall","src":"4229:20:53"},"variableNames":[{"name":"value","nativeSrc":"4220:5:53","nodeType":"YulIdentifier","src":"4220:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4285:5:53","nodeType":"YulIdentifier","src":"4285:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4258:26:53","nodeType":"YulIdentifier","src":"4258:26:53"},"nativeSrc":"4258:33:53","nodeType":"YulFunctionCall","src":"4258:33:53"},"nativeSrc":"4258:33:53","nodeType":"YulExpressionStatement","src":"4258:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"4158:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4188:6:53","nodeType":"YulTypedName","src":"4188:6:53","type":""},{"name":"end","nativeSrc":"4196:3:53","nodeType":"YulTypedName","src":"4196:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4204:5:53","nodeType":"YulTypedName","src":"4204:5:53","type":""}],"src":"4158:139:53"},{"body":{"nativeSrc":"4386:391:53","nodeType":"YulBlock","src":"4386:391:53","statements":[{"body":{"nativeSrc":"4432:83:53","nodeType":"YulBlock","src":"4432:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4434:77:53","nodeType":"YulIdentifier","src":"4434:77:53"},"nativeSrc":"4434:79:53","nodeType":"YulFunctionCall","src":"4434:79:53"},"nativeSrc":"4434:79:53","nodeType":"YulExpressionStatement","src":"4434:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4407:7:53","nodeType":"YulIdentifier","src":"4407:7:53"},{"name":"headStart","nativeSrc":"4416:9:53","nodeType":"YulIdentifier","src":"4416:9:53"}],"functionName":{"name":"sub","nativeSrc":"4403:3:53","nodeType":"YulIdentifier","src":"4403:3:53"},"nativeSrc":"4403:23:53","nodeType":"YulFunctionCall","src":"4403:23:53"},{"kind":"number","nativeSrc":"4428:2:53","nodeType":"YulLiteral","src":"4428:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4399:3:53","nodeType":"YulIdentifier","src":"4399:3:53"},"nativeSrc":"4399:32:53","nodeType":"YulFunctionCall","src":"4399:32:53"},"nativeSrc":"4396:119:53","nodeType":"YulIf","src":"4396:119:53"},{"nativeSrc":"4525:117:53","nodeType":"YulBlock","src":"4525:117:53","statements":[{"nativeSrc":"4540:15:53","nodeType":"YulVariableDeclaration","src":"4540:15:53","value":{"kind":"number","nativeSrc":"4554:1:53","nodeType":"YulLiteral","src":"4554:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4544:6:53","nodeType":"YulTypedName","src":"4544:6:53","type":""}]},{"nativeSrc":"4569:63:53","nodeType":"YulAssignment","src":"4569:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4604:9:53","nodeType":"YulIdentifier","src":"4604:9:53"},{"name":"offset","nativeSrc":"4615:6:53","nodeType":"YulIdentifier","src":"4615:6:53"}],"functionName":{"name":"add","nativeSrc":"4600:3:53","nodeType":"YulIdentifier","src":"4600:3:53"},"nativeSrc":"4600:22:53","nodeType":"YulFunctionCall","src":"4600:22:53"},{"name":"dataEnd","nativeSrc":"4624:7:53","nodeType":"YulIdentifier","src":"4624:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4579:20:53","nodeType":"YulIdentifier","src":"4579:20:53"},"nativeSrc":"4579:53:53","nodeType":"YulFunctionCall","src":"4579:53:53"},"variableNames":[{"name":"value0","nativeSrc":"4569:6:53","nodeType":"YulIdentifier","src":"4569:6:53"}]}]},{"nativeSrc":"4652:118:53","nodeType":"YulBlock","src":"4652:118:53","statements":[{"nativeSrc":"4667:16:53","nodeType":"YulVariableDeclaration","src":"4667:16:53","value":{"kind":"number","nativeSrc":"4681:2:53","nodeType":"YulLiteral","src":"4681:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4671:6:53","nodeType":"YulTypedName","src":"4671:6:53","type":""}]},{"nativeSrc":"4697:63:53","nodeType":"YulAssignment","src":"4697:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4732:9:53","nodeType":"YulIdentifier","src":"4732:9:53"},{"name":"offset","nativeSrc":"4743:6:53","nodeType":"YulIdentifier","src":"4743:6:53"}],"functionName":{"name":"add","nativeSrc":"4728:3:53","nodeType":"YulIdentifier","src":"4728:3:53"},"nativeSrc":"4728:22:53","nodeType":"YulFunctionCall","src":"4728:22:53"},{"name":"dataEnd","nativeSrc":"4752:7:53","nodeType":"YulIdentifier","src":"4752:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4707:20:53","nodeType":"YulIdentifier","src":"4707:20:53"},"nativeSrc":"4707:53:53","nodeType":"YulFunctionCall","src":"4707:53:53"},"variableNames":[{"name":"value1","nativeSrc":"4697:6:53","nodeType":"YulIdentifier","src":"4697:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"4303:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4348:9:53","nodeType":"YulTypedName","src":"4348:9:53","type":""},{"name":"dataEnd","nativeSrc":"4359:7:53","nodeType":"YulTypedName","src":"4359:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4371:6:53","nodeType":"YulTypedName","src":"4371:6:53","type":""},{"name":"value1","nativeSrc":"4379:6:53","nodeType":"YulTypedName","src":"4379:6:53","type":""}],"src":"4303:474:53"},{"body":{"nativeSrc":"4848:53:53","nodeType":"YulBlock","src":"4848:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4865:3:53","nodeType":"YulIdentifier","src":"4865:3:53"},{"arguments":[{"name":"value","nativeSrc":"4888:5:53","nodeType":"YulIdentifier","src":"4888:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4870:17:53","nodeType":"YulIdentifier","src":"4870:17:53"},"nativeSrc":"4870:24:53","nodeType":"YulFunctionCall","src":"4870:24:53"}],"functionName":{"name":"mstore","nativeSrc":"4858:6:53","nodeType":"YulIdentifier","src":"4858:6:53"},"nativeSrc":"4858:37:53","nodeType":"YulFunctionCall","src":"4858:37:53"},"nativeSrc":"4858:37:53","nodeType":"YulExpressionStatement","src":"4858:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"4783:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4836:5:53","nodeType":"YulTypedName","src":"4836:5:53","type":""},{"name":"pos","nativeSrc":"4843:3:53","nodeType":"YulTypedName","src":"4843:3:53","type":""}],"src":"4783:118:53"},{"body":{"nativeSrc":"5005:124:53","nodeType":"YulBlock","src":"5005:124:53","statements":[{"nativeSrc":"5015:26:53","nodeType":"YulAssignment","src":"5015:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5027:9:53","nodeType":"YulIdentifier","src":"5027:9:53"},{"kind":"number","nativeSrc":"5038:2:53","nodeType":"YulLiteral","src":"5038:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5023:3:53","nodeType":"YulIdentifier","src":"5023:3:53"},"nativeSrc":"5023:18:53","nodeType":"YulFunctionCall","src":"5023:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5015:4:53","nodeType":"YulIdentifier","src":"5015:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5095:6:53","nodeType":"YulIdentifier","src":"5095:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5108:9:53","nodeType":"YulIdentifier","src":"5108:9:53"},{"kind":"number","nativeSrc":"5119:1:53","nodeType":"YulLiteral","src":"5119:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5104:3:53","nodeType":"YulIdentifier","src":"5104:3:53"},"nativeSrc":"5104:17:53","nodeType":"YulFunctionCall","src":"5104:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5051:43:53","nodeType":"YulIdentifier","src":"5051:43:53"},"nativeSrc":"5051:71:53","nodeType":"YulFunctionCall","src":"5051:71:53"},"nativeSrc":"5051:71:53","nodeType":"YulExpressionStatement","src":"5051:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4907:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4977:9:53","nodeType":"YulTypedName","src":"4977:9:53","type":""},{"name":"value0","nativeSrc":"4989:6:53","nodeType":"YulTypedName","src":"4989:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5000:4:53","nodeType":"YulTypedName","src":"5000:4:53","type":""}],"src":"4907:222:53"},{"body":{"nativeSrc":"5235:519:53","nodeType":"YulBlock","src":"5235:519:53","statements":[{"body":{"nativeSrc":"5281:83:53","nodeType":"YulBlock","src":"5281:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5283:77:53","nodeType":"YulIdentifier","src":"5283:77:53"},"nativeSrc":"5283:79:53","nodeType":"YulFunctionCall","src":"5283:79:53"},"nativeSrc":"5283:79:53","nodeType":"YulExpressionStatement","src":"5283:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5256:7:53","nodeType":"YulIdentifier","src":"5256:7:53"},{"name":"headStart","nativeSrc":"5265:9:53","nodeType":"YulIdentifier","src":"5265:9:53"}],"functionName":{"name":"sub","nativeSrc":"5252:3:53","nodeType":"YulIdentifier","src":"5252:3:53"},"nativeSrc":"5252:23:53","nodeType":"YulFunctionCall","src":"5252:23:53"},{"kind":"number","nativeSrc":"5277:2:53","nodeType":"YulLiteral","src":"5277:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5248:3:53","nodeType":"YulIdentifier","src":"5248:3:53"},"nativeSrc":"5248:32:53","nodeType":"YulFunctionCall","src":"5248:32:53"},"nativeSrc":"5245:119:53","nodeType":"YulIf","src":"5245:119:53"},{"nativeSrc":"5374:117:53","nodeType":"YulBlock","src":"5374:117:53","statements":[{"nativeSrc":"5389:15:53","nodeType":"YulVariableDeclaration","src":"5389:15:53","value":{"kind":"number","nativeSrc":"5403:1:53","nodeType":"YulLiteral","src":"5403:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5393:6:53","nodeType":"YulTypedName","src":"5393:6:53","type":""}]},{"nativeSrc":"5418:63:53","nodeType":"YulAssignment","src":"5418:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5453:9:53","nodeType":"YulIdentifier","src":"5453:9:53"},{"name":"offset","nativeSrc":"5464:6:53","nodeType":"YulIdentifier","src":"5464:6:53"}],"functionName":{"name":"add","nativeSrc":"5449:3:53","nodeType":"YulIdentifier","src":"5449:3:53"},"nativeSrc":"5449:22:53","nodeType":"YulFunctionCall","src":"5449:22:53"},{"name":"dataEnd","nativeSrc":"5473:7:53","nodeType":"YulIdentifier","src":"5473:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5428:20:53","nodeType":"YulIdentifier","src":"5428:20:53"},"nativeSrc":"5428:53:53","nodeType":"YulFunctionCall","src":"5428:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5418:6:53","nodeType":"YulIdentifier","src":"5418:6:53"}]}]},{"nativeSrc":"5501:118:53","nodeType":"YulBlock","src":"5501:118:53","statements":[{"nativeSrc":"5516:16:53","nodeType":"YulVariableDeclaration","src":"5516:16:53","value":{"kind":"number","nativeSrc":"5530:2:53","nodeType":"YulLiteral","src":"5530:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5520:6:53","nodeType":"YulTypedName","src":"5520:6:53","type":""}]},{"nativeSrc":"5546:63:53","nodeType":"YulAssignment","src":"5546:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5581:9:53","nodeType":"YulIdentifier","src":"5581:9:53"},{"name":"offset","nativeSrc":"5592:6:53","nodeType":"YulIdentifier","src":"5592:6:53"}],"functionName":{"name":"add","nativeSrc":"5577:3:53","nodeType":"YulIdentifier","src":"5577:3:53"},"nativeSrc":"5577:22:53","nodeType":"YulFunctionCall","src":"5577:22:53"},{"name":"dataEnd","nativeSrc":"5601:7:53","nodeType":"YulIdentifier","src":"5601:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5556:20:53","nodeType":"YulIdentifier","src":"5556:20:53"},"nativeSrc":"5556:53:53","nodeType":"YulFunctionCall","src":"5556:53:53"},"variableNames":[{"name":"value1","nativeSrc":"5546:6:53","nodeType":"YulIdentifier","src":"5546:6:53"}]}]},{"nativeSrc":"5629:118:53","nodeType":"YulBlock","src":"5629:118:53","statements":[{"nativeSrc":"5644:16:53","nodeType":"YulVariableDeclaration","src":"5644:16:53","value":{"kind":"number","nativeSrc":"5658:2:53","nodeType":"YulLiteral","src":"5658:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5648:6:53","nodeType":"YulTypedName","src":"5648:6:53","type":""}]},{"nativeSrc":"5674:63:53","nodeType":"YulAssignment","src":"5674:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5709:9:53","nodeType":"YulIdentifier","src":"5709:9:53"},{"name":"offset","nativeSrc":"5720:6:53","nodeType":"YulIdentifier","src":"5720:6:53"}],"functionName":{"name":"add","nativeSrc":"5705:3:53","nodeType":"YulIdentifier","src":"5705:3:53"},"nativeSrc":"5705:22:53","nodeType":"YulFunctionCall","src":"5705:22:53"},{"name":"dataEnd","nativeSrc":"5729:7:53","nodeType":"YulIdentifier","src":"5729:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5684:20:53","nodeType":"YulIdentifier","src":"5684:20:53"},"nativeSrc":"5684:53:53","nodeType":"YulFunctionCall","src":"5684:53:53"},"variableNames":[{"name":"value2","nativeSrc":"5674:6:53","nodeType":"YulIdentifier","src":"5674:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"5135:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5189:9:53","nodeType":"YulTypedName","src":"5189:9:53","type":""},{"name":"dataEnd","nativeSrc":"5200:7:53","nodeType":"YulTypedName","src":"5200:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5212:6:53","nodeType":"YulTypedName","src":"5212:6:53","type":""},{"name":"value1","nativeSrc":"5220:6:53","nodeType":"YulTypedName","src":"5220:6:53","type":""},{"name":"value2","nativeSrc":"5228:6:53","nodeType":"YulTypedName","src":"5228:6:53","type":""}],"src":"5135:619:53"},{"body":{"nativeSrc":"5826:263:53","nodeType":"YulBlock","src":"5826:263:53","statements":[{"body":{"nativeSrc":"5872:83:53","nodeType":"YulBlock","src":"5872:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5874:77:53","nodeType":"YulIdentifier","src":"5874:77:53"},"nativeSrc":"5874:79:53","nodeType":"YulFunctionCall","src":"5874:79:53"},"nativeSrc":"5874:79:53","nodeType":"YulExpressionStatement","src":"5874:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5847:7:53","nodeType":"YulIdentifier","src":"5847:7:53"},{"name":"headStart","nativeSrc":"5856:9:53","nodeType":"YulIdentifier","src":"5856:9:53"}],"functionName":{"name":"sub","nativeSrc":"5843:3:53","nodeType":"YulIdentifier","src":"5843:3:53"},"nativeSrc":"5843:23:53","nodeType":"YulFunctionCall","src":"5843:23:53"},{"kind":"number","nativeSrc":"5868:2:53","nodeType":"YulLiteral","src":"5868:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5839:3:53","nodeType":"YulIdentifier","src":"5839:3:53"},"nativeSrc":"5839:32:53","nodeType":"YulFunctionCall","src":"5839:32:53"},"nativeSrc":"5836:119:53","nodeType":"YulIf","src":"5836:119:53"},{"nativeSrc":"5965:117:53","nodeType":"YulBlock","src":"5965:117:53","statements":[{"nativeSrc":"5980:15:53","nodeType":"YulVariableDeclaration","src":"5980:15:53","value":{"kind":"number","nativeSrc":"5994:1:53","nodeType":"YulLiteral","src":"5994:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5984:6:53","nodeType":"YulTypedName","src":"5984:6:53","type":""}]},{"nativeSrc":"6009:63:53","nodeType":"YulAssignment","src":"6009:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6044:9:53","nodeType":"YulIdentifier","src":"6044:9:53"},{"name":"offset","nativeSrc":"6055:6:53","nodeType":"YulIdentifier","src":"6055:6:53"}],"functionName":{"name":"add","nativeSrc":"6040:3:53","nodeType":"YulIdentifier","src":"6040:3:53"},"nativeSrc":"6040:22:53","nodeType":"YulFunctionCall","src":"6040:22:53"},{"name":"dataEnd","nativeSrc":"6064:7:53","nodeType":"YulIdentifier","src":"6064:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6019:20:53","nodeType":"YulIdentifier","src":"6019:20:53"},"nativeSrc":"6019:53:53","nodeType":"YulFunctionCall","src":"6019:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6009:6:53","nodeType":"YulIdentifier","src":"6009:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5760:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5796:9:53","nodeType":"YulTypedName","src":"5796:9:53","type":""},{"name":"dataEnd","nativeSrc":"5807:7:53","nodeType":"YulTypedName","src":"5807:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5819:6:53","nodeType":"YulTypedName","src":"5819:6:53","type":""}],"src":"5760:329:53"},{"body":{"nativeSrc":"6135:76:53","nodeType":"YulBlock","src":"6135:76:53","statements":[{"body":{"nativeSrc":"6189:16:53","nodeType":"YulBlock","src":"6189:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6198:1:53","nodeType":"YulLiteral","src":"6198:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6201:1:53","nodeType":"YulLiteral","src":"6201:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6191:6:53","nodeType":"YulIdentifier","src":"6191:6:53"},"nativeSrc":"6191:12:53","nodeType":"YulFunctionCall","src":"6191:12:53"},"nativeSrc":"6191:12:53","nodeType":"YulExpressionStatement","src":"6191:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6158:5:53","nodeType":"YulIdentifier","src":"6158:5:53"},{"arguments":[{"name":"value","nativeSrc":"6180:5:53","nodeType":"YulIdentifier","src":"6180:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6165:14:53","nodeType":"YulIdentifier","src":"6165:14:53"},"nativeSrc":"6165:21:53","nodeType":"YulFunctionCall","src":"6165:21:53"}],"functionName":{"name":"eq","nativeSrc":"6155:2:53","nodeType":"YulIdentifier","src":"6155:2:53"},"nativeSrc":"6155:32:53","nodeType":"YulFunctionCall","src":"6155:32:53"}],"functionName":{"name":"iszero","nativeSrc":"6148:6:53","nodeType":"YulIdentifier","src":"6148:6:53"},"nativeSrc":"6148:40:53","nodeType":"YulFunctionCall","src":"6148:40:53"},"nativeSrc":"6145:60:53","nodeType":"YulIf","src":"6145:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"6095:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6128:5:53","nodeType":"YulTypedName","src":"6128:5:53","type":""}],"src":"6095:116:53"},{"body":{"nativeSrc":"6266:84:53","nodeType":"YulBlock","src":"6266:84:53","statements":[{"nativeSrc":"6276:29:53","nodeType":"YulAssignment","src":"6276:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6298:6:53","nodeType":"YulIdentifier","src":"6298:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6285:12:53","nodeType":"YulIdentifier","src":"6285:12:53"},"nativeSrc":"6285:20:53","nodeType":"YulFunctionCall","src":"6285:20:53"},"variableNames":[{"name":"value","nativeSrc":"6276:5:53","nodeType":"YulIdentifier","src":"6276:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6338:5:53","nodeType":"YulIdentifier","src":"6338:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"6314:23:53","nodeType":"YulIdentifier","src":"6314:23:53"},"nativeSrc":"6314:30:53","nodeType":"YulFunctionCall","src":"6314:30:53"},"nativeSrc":"6314:30:53","nodeType":"YulExpressionStatement","src":"6314:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"6217:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6244:6:53","nodeType":"YulTypedName","src":"6244:6:53","type":""},{"name":"end","nativeSrc":"6252:3:53","nodeType":"YulTypedName","src":"6252:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6260:5:53","nodeType":"YulTypedName","src":"6260:5:53","type":""}],"src":"6217:133:53"},{"body":{"nativeSrc":"6436:388:53","nodeType":"YulBlock","src":"6436:388:53","statements":[{"body":{"nativeSrc":"6482:83:53","nodeType":"YulBlock","src":"6482:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6484:77:53","nodeType":"YulIdentifier","src":"6484:77:53"},"nativeSrc":"6484:79:53","nodeType":"YulFunctionCall","src":"6484:79:53"},"nativeSrc":"6484:79:53","nodeType":"YulExpressionStatement","src":"6484:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6457:7:53","nodeType":"YulIdentifier","src":"6457:7:53"},{"name":"headStart","nativeSrc":"6466:9:53","nodeType":"YulIdentifier","src":"6466:9:53"}],"functionName":{"name":"sub","nativeSrc":"6453:3:53","nodeType":"YulIdentifier","src":"6453:3:53"},"nativeSrc":"6453:23:53","nodeType":"YulFunctionCall","src":"6453:23:53"},{"kind":"number","nativeSrc":"6478:2:53","nodeType":"YulLiteral","src":"6478:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6449:3:53","nodeType":"YulIdentifier","src":"6449:3:53"},"nativeSrc":"6449:32:53","nodeType":"YulFunctionCall","src":"6449:32:53"},"nativeSrc":"6446:119:53","nodeType":"YulIf","src":"6446:119:53"},{"nativeSrc":"6575:117:53","nodeType":"YulBlock","src":"6575:117:53","statements":[{"nativeSrc":"6590:15:53","nodeType":"YulVariableDeclaration","src":"6590:15:53","value":{"kind":"number","nativeSrc":"6604:1:53","nodeType":"YulLiteral","src":"6604:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6594:6:53","nodeType":"YulTypedName","src":"6594:6:53","type":""}]},{"nativeSrc":"6619:63:53","nodeType":"YulAssignment","src":"6619:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6654:9:53","nodeType":"YulIdentifier","src":"6654:9:53"},{"name":"offset","nativeSrc":"6665:6:53","nodeType":"YulIdentifier","src":"6665:6:53"}],"functionName":{"name":"add","nativeSrc":"6650:3:53","nodeType":"YulIdentifier","src":"6650:3:53"},"nativeSrc":"6650:22:53","nodeType":"YulFunctionCall","src":"6650:22:53"},{"name":"dataEnd","nativeSrc":"6674:7:53","nodeType":"YulIdentifier","src":"6674:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6629:20:53","nodeType":"YulIdentifier","src":"6629:20:53"},"nativeSrc":"6629:53:53","nodeType":"YulFunctionCall","src":"6629:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6619:6:53","nodeType":"YulIdentifier","src":"6619:6:53"}]}]},{"nativeSrc":"6702:115:53","nodeType":"YulBlock","src":"6702:115:53","statements":[{"nativeSrc":"6717:16:53","nodeType":"YulVariableDeclaration","src":"6717:16:53","value":{"kind":"number","nativeSrc":"6731:2:53","nodeType":"YulLiteral","src":"6731:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6721:6:53","nodeType":"YulTypedName","src":"6721:6:53","type":""}]},{"nativeSrc":"6747:60:53","nodeType":"YulAssignment","src":"6747:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6779:9:53","nodeType":"YulIdentifier","src":"6779:9:53"},{"name":"offset","nativeSrc":"6790:6:53","nodeType":"YulIdentifier","src":"6790:6:53"}],"functionName":{"name":"add","nativeSrc":"6775:3:53","nodeType":"YulIdentifier","src":"6775:3:53"},"nativeSrc":"6775:22:53","nodeType":"YulFunctionCall","src":"6775:22:53"},{"name":"dataEnd","nativeSrc":"6799:7:53","nodeType":"YulIdentifier","src":"6799:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"6757:17:53","nodeType":"YulIdentifier","src":"6757:17:53"},"nativeSrc":"6757:50:53","nodeType":"YulFunctionCall","src":"6757:50:53"},"variableNames":[{"name":"value1","nativeSrc":"6747:6:53","nodeType":"YulIdentifier","src":"6747:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"6356:468:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6398:9:53","nodeType":"YulTypedName","src":"6398:9:53","type":""},{"name":"dataEnd","nativeSrc":"6409:7:53","nodeType":"YulTypedName","src":"6409:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6421:6:53","nodeType":"YulTypedName","src":"6421:6:53","type":""},{"name":"value1","nativeSrc":"6429:6:53","nodeType":"YulTypedName","src":"6429:6:53","type":""}],"src":"6356:468:53"},{"body":{"nativeSrc":"6919:28:53","nodeType":"YulBlock","src":"6919:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6936:1:53","nodeType":"YulLiteral","src":"6936:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6939:1:53","nodeType":"YulLiteral","src":"6939:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6929:6:53","nodeType":"YulIdentifier","src":"6929:6:53"},"nativeSrc":"6929:12:53","nodeType":"YulFunctionCall","src":"6929:12:53"},"nativeSrc":"6929:12:53","nodeType":"YulExpressionStatement","src":"6929:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6830:117:53","nodeType":"YulFunctionDefinition","src":"6830:117:53"},{"body":{"nativeSrc":"7042:28:53","nodeType":"YulBlock","src":"7042:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7059:1:53","nodeType":"YulLiteral","src":"7059:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7062:1:53","nodeType":"YulLiteral","src":"7062:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7052:6:53","nodeType":"YulIdentifier","src":"7052:6:53"},"nativeSrc":"7052:12:53","nodeType":"YulFunctionCall","src":"7052:12:53"},"nativeSrc":"7052:12:53","nodeType":"YulExpressionStatement","src":"7052:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6953:117:53","nodeType":"YulFunctionDefinition","src":"6953:117:53"},{"body":{"nativeSrc":"7165:28:53","nodeType":"YulBlock","src":"7165:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7182:1:53","nodeType":"YulLiteral","src":"7182:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7185:1:53","nodeType":"YulLiteral","src":"7185:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7175:6:53","nodeType":"YulIdentifier","src":"7175:6:53"},"nativeSrc":"7175:12:53","nodeType":"YulFunctionCall","src":"7175:12:53"},"nativeSrc":"7175:12:53","nodeType":"YulExpressionStatement","src":"7175:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7076:117:53","nodeType":"YulFunctionDefinition","src":"7076:117:53"},{"body":{"nativeSrc":"7286:478:53","nodeType":"YulBlock","src":"7286:478:53","statements":[{"body":{"nativeSrc":"7335:83:53","nodeType":"YulBlock","src":"7335:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7337:77:53","nodeType":"YulIdentifier","src":"7337:77:53"},"nativeSrc":"7337:79:53","nodeType":"YulFunctionCall","src":"7337:79:53"},"nativeSrc":"7337:79:53","nodeType":"YulExpressionStatement","src":"7337:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7314:6:53","nodeType":"YulIdentifier","src":"7314:6:53"},{"kind":"number","nativeSrc":"7322:4:53","nodeType":"YulLiteral","src":"7322:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7310:3:53","nodeType":"YulIdentifier","src":"7310:3:53"},"nativeSrc":"7310:17:53","nodeType":"YulFunctionCall","src":"7310:17:53"},{"name":"end","nativeSrc":"7329:3:53","nodeType":"YulIdentifier","src":"7329:3:53"}],"functionName":{"name":"slt","nativeSrc":"7306:3:53","nodeType":"YulIdentifier","src":"7306:3:53"},"nativeSrc":"7306:27:53","nodeType":"YulFunctionCall","src":"7306:27:53"}],"functionName":{"name":"iszero","nativeSrc":"7299:6:53","nodeType":"YulIdentifier","src":"7299:6:53"},"nativeSrc":"7299:35:53","nodeType":"YulFunctionCall","src":"7299:35:53"},"nativeSrc":"7296:122:53","nodeType":"YulIf","src":"7296:122:53"},{"nativeSrc":"7427:30:53","nodeType":"YulAssignment","src":"7427:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"7450:6:53","nodeType":"YulIdentifier","src":"7450:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7437:12:53","nodeType":"YulIdentifier","src":"7437:12:53"},"nativeSrc":"7437:20:53","nodeType":"YulFunctionCall","src":"7437:20:53"},"variableNames":[{"name":"length","nativeSrc":"7427:6:53","nodeType":"YulIdentifier","src":"7427:6:53"}]},{"body":{"nativeSrc":"7500:83:53","nodeType":"YulBlock","src":"7500:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7502:77:53","nodeType":"YulIdentifier","src":"7502:77:53"},"nativeSrc":"7502:79:53","nodeType":"YulFunctionCall","src":"7502:79:53"},"nativeSrc":"7502:79:53","nodeType":"YulExpressionStatement","src":"7502:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7472:6:53","nodeType":"YulIdentifier","src":"7472:6:53"},{"kind":"number","nativeSrc":"7480:18:53","nodeType":"YulLiteral","src":"7480:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7469:2:53","nodeType":"YulIdentifier","src":"7469:2:53"},"nativeSrc":"7469:30:53","nodeType":"YulFunctionCall","src":"7469:30:53"},"nativeSrc":"7466:117:53","nodeType":"YulIf","src":"7466:117:53"},{"nativeSrc":"7592:29:53","nodeType":"YulAssignment","src":"7592:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7608:6:53","nodeType":"YulIdentifier","src":"7608:6:53"},{"kind":"number","nativeSrc":"7616:4:53","nodeType":"YulLiteral","src":"7616:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7604:3:53","nodeType":"YulIdentifier","src":"7604:3:53"},"nativeSrc":"7604:17:53","nodeType":"YulFunctionCall","src":"7604:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"7592:8:53","nodeType":"YulIdentifier","src":"7592:8:53"}]},{"body":{"nativeSrc":"7675:83:53","nodeType":"YulBlock","src":"7675:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7677:77:53","nodeType":"YulIdentifier","src":"7677:77:53"},"nativeSrc":"7677:79:53","nodeType":"YulFunctionCall","src":"7677:79:53"},"nativeSrc":"7677:79:53","nodeType":"YulExpressionStatement","src":"7677:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7640:8:53","nodeType":"YulIdentifier","src":"7640:8:53"},{"arguments":[{"name":"length","nativeSrc":"7654:6:53","nodeType":"YulIdentifier","src":"7654:6:53"},{"kind":"number","nativeSrc":"7662:4:53","nodeType":"YulLiteral","src":"7662:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"7650:3:53","nodeType":"YulIdentifier","src":"7650:3:53"},"nativeSrc":"7650:17:53","nodeType":"YulFunctionCall","src":"7650:17:53"}],"functionName":{"name":"add","nativeSrc":"7636:3:53","nodeType":"YulIdentifier","src":"7636:3:53"},"nativeSrc":"7636:32:53","nodeType":"YulFunctionCall","src":"7636:32:53"},{"name":"end","nativeSrc":"7670:3:53","nodeType":"YulIdentifier","src":"7670:3:53"}],"functionName":{"name":"gt","nativeSrc":"7633:2:53","nodeType":"YulIdentifier","src":"7633:2:53"},"nativeSrc":"7633:41:53","nodeType":"YulFunctionCall","src":"7633:41:53"},"nativeSrc":"7630:128:53","nodeType":"YulIf","src":"7630:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7212:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7253:6:53","nodeType":"YulTypedName","src":"7253:6:53","type":""},{"name":"end","nativeSrc":"7261:3:53","nodeType":"YulTypedName","src":"7261:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7269:8:53","nodeType":"YulTypedName","src":"7269:8:53","type":""},{"name":"length","nativeSrc":"7279:6:53","nodeType":"YulTypedName","src":"7279:6:53","type":""}],"src":"7212:552:53"},{"body":{"nativeSrc":"7906:827:53","nodeType":"YulBlock","src":"7906:827:53","statements":[{"body":{"nativeSrc":"7953:83:53","nodeType":"YulBlock","src":"7953:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7955:77:53","nodeType":"YulIdentifier","src":"7955:77:53"},"nativeSrc":"7955:79:53","nodeType":"YulFunctionCall","src":"7955:79:53"},"nativeSrc":"7955:79:53","nodeType":"YulExpressionStatement","src":"7955:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7927:7:53","nodeType":"YulIdentifier","src":"7927:7:53"},{"name":"headStart","nativeSrc":"7936:9:53","nodeType":"YulIdentifier","src":"7936:9:53"}],"functionName":{"name":"sub","nativeSrc":"7923:3:53","nodeType":"YulIdentifier","src":"7923:3:53"},"nativeSrc":"7923:23:53","nodeType":"YulFunctionCall","src":"7923:23:53"},{"kind":"number","nativeSrc":"7948:3:53","nodeType":"YulLiteral","src":"7948:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"7919:3:53","nodeType":"YulIdentifier","src":"7919:3:53"},"nativeSrc":"7919:33:53","nodeType":"YulFunctionCall","src":"7919:33:53"},"nativeSrc":"7916:120:53","nodeType":"YulIf","src":"7916:120:53"},{"nativeSrc":"8046:117:53","nodeType":"YulBlock","src":"8046:117:53","statements":[{"nativeSrc":"8061:15:53","nodeType":"YulVariableDeclaration","src":"8061:15:53","value":{"kind":"number","nativeSrc":"8075:1:53","nodeType":"YulLiteral","src":"8075:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8065:6:53","nodeType":"YulTypedName","src":"8065:6:53","type":""}]},{"nativeSrc":"8090:63:53","nodeType":"YulAssignment","src":"8090:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8125:9:53","nodeType":"YulIdentifier","src":"8125:9:53"},{"name":"offset","nativeSrc":"8136:6:53","nodeType":"YulIdentifier","src":"8136:6:53"}],"functionName":{"name":"add","nativeSrc":"8121:3:53","nodeType":"YulIdentifier","src":"8121:3:53"},"nativeSrc":"8121:22:53","nodeType":"YulFunctionCall","src":"8121:22:53"},{"name":"dataEnd","nativeSrc":"8145:7:53","nodeType":"YulIdentifier","src":"8145:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8100:20:53","nodeType":"YulIdentifier","src":"8100:20:53"},"nativeSrc":"8100:53:53","nodeType":"YulFunctionCall","src":"8100:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8090:6:53","nodeType":"YulIdentifier","src":"8090:6:53"}]}]},{"nativeSrc":"8173:118:53","nodeType":"YulBlock","src":"8173:118:53","statements":[{"nativeSrc":"8188:16:53","nodeType":"YulVariableDeclaration","src":"8188:16:53","value":{"kind":"number","nativeSrc":"8202:2:53","nodeType":"YulLiteral","src":"8202:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8192:6:53","nodeType":"YulTypedName","src":"8192:6:53","type":""}]},{"nativeSrc":"8218:63:53","nodeType":"YulAssignment","src":"8218:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8253:9:53","nodeType":"YulIdentifier","src":"8253:9:53"},{"name":"offset","nativeSrc":"8264:6:53","nodeType":"YulIdentifier","src":"8264:6:53"}],"functionName":{"name":"add","nativeSrc":"8249:3:53","nodeType":"YulIdentifier","src":"8249:3:53"},"nativeSrc":"8249:22:53","nodeType":"YulFunctionCall","src":"8249:22:53"},{"name":"dataEnd","nativeSrc":"8273:7:53","nodeType":"YulIdentifier","src":"8273:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8228:20:53","nodeType":"YulIdentifier","src":"8228:20:53"},"nativeSrc":"8228:53:53","nodeType":"YulFunctionCall","src":"8228:53:53"},"variableNames":[{"name":"value1","nativeSrc":"8218:6:53","nodeType":"YulIdentifier","src":"8218:6:53"}]}]},{"nativeSrc":"8301:118:53","nodeType":"YulBlock","src":"8301:118:53","statements":[{"nativeSrc":"8316:16:53","nodeType":"YulVariableDeclaration","src":"8316:16:53","value":{"kind":"number","nativeSrc":"8330:2:53","nodeType":"YulLiteral","src":"8330:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8320:6:53","nodeType":"YulTypedName","src":"8320:6:53","type":""}]},{"nativeSrc":"8346:63:53","nodeType":"YulAssignment","src":"8346:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8381:9:53","nodeType":"YulIdentifier","src":"8381:9:53"},{"name":"offset","nativeSrc":"8392:6:53","nodeType":"YulIdentifier","src":"8392:6:53"}],"functionName":{"name":"add","nativeSrc":"8377:3:53","nodeType":"YulIdentifier","src":"8377:3:53"},"nativeSrc":"8377:22:53","nodeType":"YulFunctionCall","src":"8377:22:53"},{"name":"dataEnd","nativeSrc":"8401:7:53","nodeType":"YulIdentifier","src":"8401:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8356:20:53","nodeType":"YulIdentifier","src":"8356:20:53"},"nativeSrc":"8356:53:53","nodeType":"YulFunctionCall","src":"8356:53:53"},"variableNames":[{"name":"value2","nativeSrc":"8346:6:53","nodeType":"YulIdentifier","src":"8346:6:53"}]}]},{"nativeSrc":"8429:297:53","nodeType":"YulBlock","src":"8429:297:53","statements":[{"nativeSrc":"8444:46:53","nodeType":"YulVariableDeclaration","src":"8444:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8475:9:53","nodeType":"YulIdentifier","src":"8475:9:53"},{"kind":"number","nativeSrc":"8486:2:53","nodeType":"YulLiteral","src":"8486:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8471:3:53","nodeType":"YulIdentifier","src":"8471:3:53"},"nativeSrc":"8471:18:53","nodeType":"YulFunctionCall","src":"8471:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8458:12:53","nodeType":"YulIdentifier","src":"8458:12:53"},"nativeSrc":"8458:32:53","nodeType":"YulFunctionCall","src":"8458:32:53"},"variables":[{"name":"offset","nativeSrc":"8448:6:53","nodeType":"YulTypedName","src":"8448:6:53","type":""}]},{"body":{"nativeSrc":"8537:83:53","nodeType":"YulBlock","src":"8537:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8539:77:53","nodeType":"YulIdentifier","src":"8539:77:53"},"nativeSrc":"8539:79:53","nodeType":"YulFunctionCall","src":"8539:79:53"},"nativeSrc":"8539:79:53","nodeType":"YulExpressionStatement","src":"8539:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8509:6:53","nodeType":"YulIdentifier","src":"8509:6:53"},{"kind":"number","nativeSrc":"8517:18:53","nodeType":"YulLiteral","src":"8517:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8506:2:53","nodeType":"YulIdentifier","src":"8506:2:53"},"nativeSrc":"8506:30:53","nodeType":"YulFunctionCall","src":"8506:30:53"},"nativeSrc":"8503:117:53","nodeType":"YulIf","src":"8503:117:53"},{"nativeSrc":"8634:82:53","nodeType":"YulAssignment","src":"8634:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8688:9:53","nodeType":"YulIdentifier","src":"8688:9:53"},{"name":"offset","nativeSrc":"8699:6:53","nodeType":"YulIdentifier","src":"8699:6:53"}],"functionName":{"name":"add","nativeSrc":"8684:3:53","nodeType":"YulIdentifier","src":"8684:3:53"},"nativeSrc":"8684:22:53","nodeType":"YulFunctionCall","src":"8684:22:53"},{"name":"dataEnd","nativeSrc":"8708:7:53","nodeType":"YulIdentifier","src":"8708:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"8652:31:53","nodeType":"YulIdentifier","src":"8652:31:53"},"nativeSrc":"8652:64:53","nodeType":"YulFunctionCall","src":"8652:64:53"},"variableNames":[{"name":"value3","nativeSrc":"8634:6:53","nodeType":"YulIdentifier","src":"8634:6:53"},{"name":"value4","nativeSrc":"8642:6:53","nodeType":"YulIdentifier","src":"8642:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"7770:963:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7844:9:53","nodeType":"YulTypedName","src":"7844:9:53","type":""},{"name":"dataEnd","nativeSrc":"7855:7:53","nodeType":"YulTypedName","src":"7855:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7867:6:53","nodeType":"YulTypedName","src":"7867:6:53","type":""},{"name":"value1","nativeSrc":"7875:6:53","nodeType":"YulTypedName","src":"7875:6:53","type":""},{"name":"value2","nativeSrc":"7883:6:53","nodeType":"YulTypedName","src":"7883:6:53","type":""},{"name":"value3","nativeSrc":"7891:6:53","nodeType":"YulTypedName","src":"7891:6:53","type":""},{"name":"value4","nativeSrc":"7899:6:53","nodeType":"YulTypedName","src":"7899:6:53","type":""}],"src":"7770:963:53"},{"body":{"nativeSrc":"8822:391:53","nodeType":"YulBlock","src":"8822:391:53","statements":[{"body":{"nativeSrc":"8868:83:53","nodeType":"YulBlock","src":"8868:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8870:77:53","nodeType":"YulIdentifier","src":"8870:77:53"},"nativeSrc":"8870:79:53","nodeType":"YulFunctionCall","src":"8870:79:53"},"nativeSrc":"8870:79:53","nodeType":"YulExpressionStatement","src":"8870:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8843:7:53","nodeType":"YulIdentifier","src":"8843:7:53"},{"name":"headStart","nativeSrc":"8852:9:53","nodeType":"YulIdentifier","src":"8852:9:53"}],"functionName":{"name":"sub","nativeSrc":"8839:3:53","nodeType":"YulIdentifier","src":"8839:3:53"},"nativeSrc":"8839:23:53","nodeType":"YulFunctionCall","src":"8839:23:53"},{"kind":"number","nativeSrc":"8864:2:53","nodeType":"YulLiteral","src":"8864:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8835:3:53","nodeType":"YulIdentifier","src":"8835:3:53"},"nativeSrc":"8835:32:53","nodeType":"YulFunctionCall","src":"8835:32:53"},"nativeSrc":"8832:119:53","nodeType":"YulIf","src":"8832:119:53"},{"nativeSrc":"8961:117:53","nodeType":"YulBlock","src":"8961:117:53","statements":[{"nativeSrc":"8976:15:53","nodeType":"YulVariableDeclaration","src":"8976:15:53","value":{"kind":"number","nativeSrc":"8990:1:53","nodeType":"YulLiteral","src":"8990:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8980:6:53","nodeType":"YulTypedName","src":"8980:6:53","type":""}]},{"nativeSrc":"9005:63:53","nodeType":"YulAssignment","src":"9005:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9040:9:53","nodeType":"YulIdentifier","src":"9040:9:53"},{"name":"offset","nativeSrc":"9051:6:53","nodeType":"YulIdentifier","src":"9051:6:53"}],"functionName":{"name":"add","nativeSrc":"9036:3:53","nodeType":"YulIdentifier","src":"9036:3:53"},"nativeSrc":"9036:22:53","nodeType":"YulFunctionCall","src":"9036:22:53"},{"name":"dataEnd","nativeSrc":"9060:7:53","nodeType":"YulIdentifier","src":"9060:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9015:20:53","nodeType":"YulIdentifier","src":"9015:20:53"},"nativeSrc":"9015:53:53","nodeType":"YulFunctionCall","src":"9015:53:53"},"variableNames":[{"name":"value0","nativeSrc":"9005:6:53","nodeType":"YulIdentifier","src":"9005:6:53"}]}]},{"nativeSrc":"9088:118:53","nodeType":"YulBlock","src":"9088:118:53","statements":[{"nativeSrc":"9103:16:53","nodeType":"YulVariableDeclaration","src":"9103:16:53","value":{"kind":"number","nativeSrc":"9117:2:53","nodeType":"YulLiteral","src":"9117:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9107:6:53","nodeType":"YulTypedName","src":"9107:6:53","type":""}]},{"nativeSrc":"9133:63:53","nodeType":"YulAssignment","src":"9133:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9168:9:53","nodeType":"YulIdentifier","src":"9168:9:53"},{"name":"offset","nativeSrc":"9179:6:53","nodeType":"YulIdentifier","src":"9179:6:53"}],"functionName":{"name":"add","nativeSrc":"9164:3:53","nodeType":"YulIdentifier","src":"9164:3:53"},"nativeSrc":"9164:22:53","nodeType":"YulFunctionCall","src":"9164:22:53"},{"name":"dataEnd","nativeSrc":"9188:7:53","nodeType":"YulIdentifier","src":"9188:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9143:20:53","nodeType":"YulIdentifier","src":"9143:20:53"},"nativeSrc":"9143:53:53","nodeType":"YulFunctionCall","src":"9143:53:53"},"variableNames":[{"name":"value1","nativeSrc":"9133:6:53","nodeType":"YulIdentifier","src":"9133:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"8739:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8784:9:53","nodeType":"YulTypedName","src":"8784:9:53","type":""},{"name":"dataEnd","nativeSrc":"8795:7:53","nodeType":"YulTypedName","src":"8795:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8807:6:53","nodeType":"YulTypedName","src":"8807:6:53","type":""},{"name":"value1","nativeSrc":"8815:6:53","nodeType":"YulTypedName","src":"8815:6:53","type":""}],"src":"8739:474:53"},{"body":{"nativeSrc":"9325:73:53","nodeType":"YulBlock","src":"9325:73:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9347:6:53","nodeType":"YulIdentifier","src":"9347:6:53"},{"kind":"number","nativeSrc":"9355:1:53","nodeType":"YulLiteral","src":"9355:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9343:3:53","nodeType":"YulIdentifier","src":"9343:3:53"},"nativeSrc":"9343:14:53","nodeType":"YulFunctionCall","src":"9343:14:53"},{"hexValue":"4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e657921","kind":"string","nativeSrc":"9359:31:53","nodeType":"YulLiteral","src":"9359:31:53","type":"","value":"MockERC721: gimme more money!"}],"functionName":{"name":"mstore","nativeSrc":"9336:6:53","nodeType":"YulIdentifier","src":"9336:6:53"},"nativeSrc":"9336:55:53","nodeType":"YulFunctionCall","src":"9336:55:53"},"nativeSrc":"9336:55:53","nodeType":"YulExpressionStatement","src":"9336:55:53"}]},"name":"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","nativeSrc":"9219:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9317:6:53","nodeType":"YulTypedName","src":"9317:6:53","type":""}],"src":"9219:179:53"},{"body":{"nativeSrc":"9550:220:53","nodeType":"YulBlock","src":"9550:220:53","statements":[{"nativeSrc":"9560:74:53","nodeType":"YulAssignment","src":"9560:74:53","value":{"arguments":[{"name":"pos","nativeSrc":"9626:3:53","nodeType":"YulIdentifier","src":"9626:3:53"},{"kind":"number","nativeSrc":"9631:2:53","nodeType":"YulLiteral","src":"9631:2:53","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9567:58:53","nodeType":"YulIdentifier","src":"9567:58:53"},"nativeSrc":"9567:67:53","nodeType":"YulFunctionCall","src":"9567:67:53"},"variableNames":[{"name":"pos","nativeSrc":"9560:3:53","nodeType":"YulIdentifier","src":"9560:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9732:3:53","nodeType":"YulIdentifier","src":"9732:3:53"}],"functionName":{"name":"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","nativeSrc":"9643:88:53","nodeType":"YulIdentifier","src":"9643:88:53"},"nativeSrc":"9643:93:53","nodeType":"YulFunctionCall","src":"9643:93:53"},"nativeSrc":"9643:93:53","nodeType":"YulExpressionStatement","src":"9643:93:53"},{"nativeSrc":"9745:19:53","nodeType":"YulAssignment","src":"9745:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9756:3:53","nodeType":"YulIdentifier","src":"9756:3:53"},{"kind":"number","nativeSrc":"9761:2:53","nodeType":"YulLiteral","src":"9761:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9752:3:53","nodeType":"YulIdentifier","src":"9752:3:53"},"nativeSrc":"9752:12:53","nodeType":"YulFunctionCall","src":"9752:12:53"},"variableNames":[{"name":"end","nativeSrc":"9745:3:53","nodeType":"YulIdentifier","src":"9745:3:53"}]}]},"name":"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack","nativeSrc":"9404:366:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9538:3:53","nodeType":"YulTypedName","src":"9538:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9546:3:53","nodeType":"YulTypedName","src":"9546:3:53","type":""}],"src":"9404:366:53"},{"body":{"nativeSrc":"9947:248:53","nodeType":"YulBlock","src":"9947:248:53","statements":[{"nativeSrc":"9957:26:53","nodeType":"YulAssignment","src":"9957:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9969:9:53","nodeType":"YulIdentifier","src":"9969:9:53"},{"kind":"number","nativeSrc":"9980:2:53","nodeType":"YulLiteral","src":"9980:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9965:3:53","nodeType":"YulIdentifier","src":"9965:3:53"},"nativeSrc":"9965:18:53","nodeType":"YulFunctionCall","src":"9965:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9957:4:53","nodeType":"YulIdentifier","src":"9957:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10004:9:53","nodeType":"YulIdentifier","src":"10004:9:53"},{"kind":"number","nativeSrc":"10015:1:53","nodeType":"YulLiteral","src":"10015:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10000:3:53","nodeType":"YulIdentifier","src":"10000:3:53"},"nativeSrc":"10000:17:53","nodeType":"YulFunctionCall","src":"10000:17:53"},{"arguments":[{"name":"tail","nativeSrc":"10023:4:53","nodeType":"YulIdentifier","src":"10023:4:53"},{"name":"headStart","nativeSrc":"10029:9:53","nodeType":"YulIdentifier","src":"10029:9:53"}],"functionName":{"name":"sub","nativeSrc":"10019:3:53","nodeType":"YulIdentifier","src":"10019:3:53"},"nativeSrc":"10019:20:53","nodeType":"YulFunctionCall","src":"10019:20:53"}],"functionName":{"name":"mstore","nativeSrc":"9993:6:53","nodeType":"YulIdentifier","src":"9993:6:53"},"nativeSrc":"9993:47:53","nodeType":"YulFunctionCall","src":"9993:47:53"},"nativeSrc":"9993:47:53","nodeType":"YulExpressionStatement","src":"9993:47:53"},{"nativeSrc":"10049:139:53","nodeType":"YulAssignment","src":"10049:139:53","value":{"arguments":[{"name":"tail","nativeSrc":"10183:4:53","nodeType":"YulIdentifier","src":"10183:4:53"}],"functionName":{"name":"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack","nativeSrc":"10057:124:53","nodeType":"YulIdentifier","src":"10057:124:53"},"nativeSrc":"10057:131:53","nodeType":"YulFunctionCall","src":"10057:131:53"},"variableNames":[{"name":"tail","nativeSrc":"10049:4:53","nodeType":"YulIdentifier","src":"10049:4:53"}]}]},"name":"abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9776:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9927:9:53","nodeType":"YulTypedName","src":"9927:9:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9942:4:53","nodeType":"YulTypedName","src":"9942:4:53","type":""}],"src":"9776:419:53"},{"body":{"nativeSrc":"10229:152:53","nodeType":"YulBlock","src":"10229:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10246:1:53","nodeType":"YulLiteral","src":"10246:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10249:77:53","nodeType":"YulLiteral","src":"10249:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10239:6:53","nodeType":"YulIdentifier","src":"10239:6:53"},"nativeSrc":"10239:88:53","nodeType":"YulFunctionCall","src":"10239:88:53"},"nativeSrc":"10239:88:53","nodeType":"YulExpressionStatement","src":"10239:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10343:1:53","nodeType":"YulLiteral","src":"10343:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"10346:4:53","nodeType":"YulLiteral","src":"10346:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"10336:6:53","nodeType":"YulIdentifier","src":"10336:6:53"},"nativeSrc":"10336:15:53","nodeType":"YulFunctionCall","src":"10336:15:53"},"nativeSrc":"10336:15:53","nodeType":"YulExpressionStatement","src":"10336:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10367:1:53","nodeType":"YulLiteral","src":"10367:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10370:4:53","nodeType":"YulLiteral","src":"10370:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10360:6:53","nodeType":"YulIdentifier","src":"10360:6:53"},"nativeSrc":"10360:15:53","nodeType":"YulFunctionCall","src":"10360:15:53"},"nativeSrc":"10360:15:53","nodeType":"YulExpressionStatement","src":"10360:15:53"}]},"name":"panic_error_0x11","nativeSrc":"10201:180:53","nodeType":"YulFunctionDefinition","src":"10201:180:53"},{"body":{"nativeSrc":"10430:190:53","nodeType":"YulBlock","src":"10430:190:53","statements":[{"nativeSrc":"10440:33:53","nodeType":"YulAssignment","src":"10440:33:53","value":{"arguments":[{"name":"value","nativeSrc":"10467:5:53","nodeType":"YulIdentifier","src":"10467:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10449:17:53","nodeType":"YulIdentifier","src":"10449:17:53"},"nativeSrc":"10449:24:53","nodeType":"YulFunctionCall","src":"10449:24:53"},"variableNames":[{"name":"value","nativeSrc":"10440:5:53","nodeType":"YulIdentifier","src":"10440:5:53"}]},{"body":{"nativeSrc":"10563:22:53","nodeType":"YulBlock","src":"10563:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10565:16:53","nodeType":"YulIdentifier","src":"10565:16:53"},"nativeSrc":"10565:18:53","nodeType":"YulFunctionCall","src":"10565:18:53"},"nativeSrc":"10565:18:53","nodeType":"YulExpressionStatement","src":"10565:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"10488:5:53","nodeType":"YulIdentifier","src":"10488:5:53"},{"kind":"number","nativeSrc":"10495:66:53","nodeType":"YulLiteral","src":"10495:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"10485:2:53","nodeType":"YulIdentifier","src":"10485:2:53"},"nativeSrc":"10485:77:53","nodeType":"YulFunctionCall","src":"10485:77:53"},"nativeSrc":"10482:103:53","nodeType":"YulIf","src":"10482:103:53"},{"nativeSrc":"10594:20:53","nodeType":"YulAssignment","src":"10594:20:53","value":{"arguments":[{"name":"value","nativeSrc":"10605:5:53","nodeType":"YulIdentifier","src":"10605:5:53"},{"kind":"number","nativeSrc":"10612:1:53","nodeType":"YulLiteral","src":"10612:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10601:3:53","nodeType":"YulIdentifier","src":"10601:3:53"},"nativeSrc":"10601:13:53","nodeType":"YulFunctionCall","src":"10601:13:53"},"variableNames":[{"name":"ret","nativeSrc":"10594:3:53","nodeType":"YulIdentifier","src":"10594:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"10387:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10416:5:53","nodeType":"YulTypedName","src":"10416:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"10426:3:53","nodeType":"YulTypedName","src":"10426:3:53","type":""}],"src":"10387:233:53"},{"body":{"nativeSrc":"10740:34:53","nodeType":"YulBlock","src":"10740:34:53","statements":[{"nativeSrc":"10750:18:53","nodeType":"YulAssignment","src":"10750:18:53","value":{"name":"pos","nativeSrc":"10765:3:53","nodeType":"YulIdentifier","src":"10765:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"10750:11:53","nodeType":"YulIdentifier","src":"10750:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"10626:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10712:3:53","nodeType":"YulTypedName","src":"10712:3:53","type":""},{"name":"length","nativeSrc":"10717:6:53","nodeType":"YulTypedName","src":"10717:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10728:11:53","nodeType":"YulTypedName","src":"10728:11:53","type":""}],"src":"10626:148:53"},{"body":{"nativeSrc":"10886:74:53","nodeType":"YulBlock","src":"10886:74:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10908:6:53","nodeType":"YulIdentifier","src":"10908:6:53"},{"kind":"number","nativeSrc":"10916:1:53","nodeType":"YulLiteral","src":"10916:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10904:3:53","nodeType":"YulIdentifier","src":"10904:3:53"},"nativeSrc":"10904:14:53","nodeType":"YulFunctionCall","src":"10904:14:53"},{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f","kind":"string","nativeSrc":"10920:28:53","nodeType":"YulLiteral","src":"10920:28:53","type":"","value":"https://example.com/token/"}],"functionName":{"name":"mstore","nativeSrc":"10897:6:53","nodeType":"YulIdentifier","src":"10897:6:53"},"nativeSrc":"10897:52:53","nodeType":"YulFunctionCall","src":"10897:52:53"},"nativeSrc":"10897:52:53","nodeType":"YulExpressionStatement","src":"10897:52:53"}]},"name":"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","nativeSrc":"10780:180:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10878:6:53","nodeType":"YulTypedName","src":"10878:6:53","type":""}],"src":"10780:180:53"},{"body":{"nativeSrc":"11134:254:53","nodeType":"YulBlock","src":"11134:254:53","statements":[{"nativeSrc":"11148:92:53","nodeType":"YulAssignment","src":"11148:92:53","value":{"arguments":[{"name":"pos","nativeSrc":"11232:3:53","nodeType":"YulIdentifier","src":"11232:3:53"},{"kind":"number","nativeSrc":"11237:2:53","nodeType":"YulLiteral","src":"11237:2:53","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11155:76:53","nodeType":"YulIdentifier","src":"11155:76:53"},"nativeSrc":"11155:85:53","nodeType":"YulFunctionCall","src":"11155:85:53"},"variableNames":[{"name":"pos","nativeSrc":"11148:3:53","nodeType":"YulIdentifier","src":"11148:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11342:3:53","nodeType":"YulIdentifier","src":"11342:3:53"}],"functionName":{"name":"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","nativeSrc":"11253:88:53","nodeType":"YulIdentifier","src":"11253:88:53"},"nativeSrc":"11253:93:53","nodeType":"YulFunctionCall","src":"11253:93:53"},"nativeSrc":"11253:93:53","nodeType":"YulExpressionStatement","src":"11253:93:53"},{"nativeSrc":"11359:19:53","nodeType":"YulAssignment","src":"11359:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"11370:3:53","nodeType":"YulIdentifier","src":"11370:3:53"},{"kind":"number","nativeSrc":"11375:2:53","nodeType":"YulLiteral","src":"11375:2:53","type":"","value":"26"}],"functionName":{"name":"add","nativeSrc":"11366:3:53","nodeType":"YulIdentifier","src":"11366:3:53"},"nativeSrc":"11366:12:53","nodeType":"YulFunctionCall","src":"11366:12:53"},"variableNames":[{"name":"end","nativeSrc":"11359:3:53","nodeType":"YulIdentifier","src":"11359:3:53"}]}]},"name":"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"10970:418:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11122:3:53","nodeType":"YulTypedName","src":"11122:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11130:3:53","nodeType":"YulTypedName","src":"11130:3:53","type":""}],"src":"10970:418:53"},{"body":{"nativeSrc":"11508:300:53","nodeType":"YulBlock","src":"11508:300:53","statements":[{"nativeSrc":"11522:53:53","nodeType":"YulVariableDeclaration","src":"11522:53:53","value":{"arguments":[{"name":"value","nativeSrc":"11569:5:53","nodeType":"YulIdentifier","src":"11569:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11536:32:53","nodeType":"YulIdentifier","src":"11536:32:53"},"nativeSrc":"11536:39:53","nodeType":"YulFunctionCall","src":"11536:39:53"},"variables":[{"name":"length","nativeSrc":"11526:6:53","nodeType":"YulTypedName","src":"11526:6:53","type":""}]},{"nativeSrc":"11588:96:53","nodeType":"YulAssignment","src":"11588:96:53","value":{"arguments":[{"name":"pos","nativeSrc":"11672:3:53","nodeType":"YulIdentifier","src":"11672:3:53"},{"name":"length","nativeSrc":"11677:6:53","nodeType":"YulIdentifier","src":"11677:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11595:76:53","nodeType":"YulIdentifier","src":"11595:76:53"},"nativeSrc":"11595:89:53","nodeType":"YulFunctionCall","src":"11595:89:53"},"variableNames":[{"name":"pos","nativeSrc":"11588:3:53","nodeType":"YulIdentifier","src":"11588:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11736:5:53","nodeType":"YulIdentifier","src":"11736:5:53"},{"kind":"number","nativeSrc":"11743:4:53","nodeType":"YulLiteral","src":"11743:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11732:3:53","nodeType":"YulIdentifier","src":"11732:3:53"},"nativeSrc":"11732:16:53","nodeType":"YulFunctionCall","src":"11732:16:53"},{"name":"pos","nativeSrc":"11750:3:53","nodeType":"YulIdentifier","src":"11750:3:53"},{"name":"length","nativeSrc":"11755:6:53","nodeType":"YulIdentifier","src":"11755:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11697:34:53","nodeType":"YulIdentifier","src":"11697:34:53"},"nativeSrc":"11697:65:53","nodeType":"YulFunctionCall","src":"11697:65:53"},"nativeSrc":"11697:65:53","nodeType":"YulExpressionStatement","src":"11697:65:53"},{"nativeSrc":"11775:23:53","nodeType":"YulAssignment","src":"11775:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"11786:3:53","nodeType":"YulIdentifier","src":"11786:3:53"},{"name":"length","nativeSrc":"11791:6:53","nodeType":"YulIdentifier","src":"11791:6:53"}],"functionName":{"name":"add","nativeSrc":"11782:3:53","nodeType":"YulIdentifier","src":"11782:3:53"},"nativeSrc":"11782:16:53","nodeType":"YulFunctionCall","src":"11782:16:53"},"variableNames":[{"name":"end","nativeSrc":"11775:3:53","nodeType":"YulIdentifier","src":"11775:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11398:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11489:5:53","nodeType":"YulTypedName","src":"11489:5:53","type":""},{"name":"pos","nativeSrc":"11496:3:53","nodeType":"YulTypedName","src":"11496:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11504:3:53","nodeType":"YulTypedName","src":"11504:3:53","type":""}],"src":"11398:410:53"},{"body":{"nativeSrc":"12055:320:53","nodeType":"YulBlock","src":"12055:320:53","statements":[{"nativeSrc":"12070:155:53","nodeType":"YulAssignment","src":"12070:155:53","value":{"arguments":[{"name":"pos","nativeSrc":"12221:3:53","nodeType":"YulIdentifier","src":"12221:3:53"}],"functionName":{"name":"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12077:142:53","nodeType":"YulIdentifier","src":"12077:142:53"},"nativeSrc":"12077:148:53","nodeType":"YulFunctionCall","src":"12077:148:53"},"variableNames":[{"name":"pos","nativeSrc":"12070:3:53","nodeType":"YulIdentifier","src":"12070:3:53"}]},{"nativeSrc":"12239:102:53","nodeType":"YulAssignment","src":"12239:102:53","value":{"arguments":[{"name":"value0","nativeSrc":"12328:6:53","nodeType":"YulIdentifier","src":"12328:6:53"},{"name":"pos","nativeSrc":"12337:3:53","nodeType":"YulIdentifier","src":"12337:3:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12246:81:53","nodeType":"YulIdentifier","src":"12246:81:53"},"nativeSrc":"12246:95:53","nodeType":"YulFunctionCall","src":"12246:95:53"},"variableNames":[{"name":"pos","nativeSrc":"12239:3:53","nodeType":"YulIdentifier","src":"12239:3:53"}]},{"nativeSrc":"12355:10:53","nodeType":"YulAssignment","src":"12355:10:53","value":{"name":"pos","nativeSrc":"12362:3:53","nodeType":"YulIdentifier","src":"12362:3:53"},"variableNames":[{"name":"end","nativeSrc":"12355:3:53","nodeType":"YulIdentifier","src":"12355:3:53"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"11818:557:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12034:3:53","nodeType":"YulTypedName","src":"12034:3:53","type":""},{"name":"value0","nativeSrc":"12040:6:53","nodeType":"YulTypedName","src":"12040:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12051:3:53","nodeType":"YulTypedName","src":"12051:3:53","type":""}],"src":"11818:557:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_bytes_calldata_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 store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb(memPtr) {\n\n mstore(add(memPtr, 0), \"MockERC721: gimme more money!\")\n\n }\n\n function abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__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_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f(memPtr) {\n\n mstore(add(memPtr, 0), \"https://example.com/token/\")\n\n }\n\n function abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 26)\n store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f(pos)\n end := add(pos, 26)\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_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_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(value0, pos)\n\n end := pos\n }\n\n }\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100f2575f3560e01c80636817c76c11610089578063a22cb46511610058578063a22cb465146102fe578063b88d4fde14610326578063c87b56dd14610342578063e985e9c51461037e576100f2565b80636817c76c146102525780636a6278421461027c57806370a082311461029857806395d89b41146102d4576100f2565b806318160ddd116100c557806318160ddd146101b457806323b872dd146101de57806342842e0e146101fa5780636352211e14610216576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610b16565b6103ba565b6040516101299190610b5b565b60405180910390f35b34801561013d575f80fd5b506101466103de565b6040516101539190610be4565b60405180910390f35b348015610167575f80fd5b50610182600480360381019061017d9190610c37565b61041b565b60405161018f9190610ca1565b60405180910390f35b6101b260048036038101906101ad9190610ce4565b61046e565b005b3480156101bf575f80fd5b506101c861047d565b6040516101d59190610d31565b60405180910390f35b6101f860048036038101906101f39190610d4a565b610482565b005b610214600480360381019061020f9190610d4a565b6105ac565b005b348015610221575f80fd5b5061023c60048036038101906102379190610c37565b6105e5565b6040516102499190610ca1565b60405180910390f35b34801561025d575f80fd5b50610266610608565b6040516102739190610d31565b60405180910390f35b61029660048036038101906102919190610d9a565b61060e565b005b3480156102a3575f80fd5b506102be60048036038101906102b99190610d9a565b610672565b6040516102cb9190610d31565b60405180910390f35b3480156102df575f80fd5b506102e86106bf565b6040516102f59190610be4565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f9190610def565b6106fc565b005b610340600480360381019061033b9190610e8e565b61074f565b005b34801561034d575f80fd5b5061036860048036038101906103639190610c37565b6107bf565b6040516103759190610be4565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f9190610f12565b6107f0565b6040516103b19190610b5b565b60405180910390f35b5f8160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b60606040518060400160405280600b81526020017f4d6f636b20455243373231000000000000000000000000000000000000000000815250905090565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b6104615763ceea21b65f526004601cfd5b8060010154915050919050565b610479338383610812565b5050565b5f5481565b61048d8383836108c2565b5f1960601c83811693508281169250815f52337f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f2082018201805480831686811481026104f05767ceea21b6a1148100811560021b526004601cfd5b865f5282600101548033148833141761051b576030600c205461051a57634b6e7f185f526004601cfd5b5b8015610528575f84600101555b5085871882188355601c600c206001815403815550855f52601c600c20600181540163ffffffff8116880261056c5767ea553b3401336cea881560021b526004601cfd5b80825550508486887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a4505050506105a78383836108c7565b505050565b6105b7838383610482565b6105c0826108cc565b156105e0576105df83838360405180602001604052805f8152506108d6565b5b505050565b5f6105ef82610960565b9050806106035763ceea21b65f526004601cfd5b919050565b60015481565b600154341015610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a90610f9a565b60405180910390fd5b61066f815f80815461066490610fe5565b91905081905561099e565b50565b5f8161068557638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b61075a858585610482565b610763846108cc565b156107b8576107b785858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506108d6565b5b5050505050565b60606107ca82610a6a565b6040516020016107da91906110b0565b6040516020818303038152906040529050919050565b5f81601c52670a5a2e7a00000000600852825f526030600c2054905092915050565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216806108685763ceea21b65f526004601cfd5b80861486151761088d57805f526030600c205461088c57634b6e7f185f526004601cfd5b5b8482600101558385827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a4505050505050565b505050565b505050565b5f813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a0840152801561091d578060c08401826020870160045afa505b60208360a48301601c86015f8a5af161093f573d1561093e573d5f843e3d83fd5b5b8160e01b8351146109575763d1a57ed65f526004601cfd5b50505050505050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f20820182015460601b60601c9050919050565b6109a95f83836108c2565b8160601b60601c9150805f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208101810180548060601b156109f95763c991cbb15f526004601cfd5b8381178255835f52601c600c20600181540163ffffffff81168602610a2d5767ea553b3401336cea861560021b526004601cfd5b808255505082845f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45050610a665f83836108c7565b5050565b60606080604051019050602081016040525f8152805f19835b600115610aa4578184019350600a81066030018453600a8104905080610a83575b50828203602084039350808452505050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610af581610ac1565b8114610aff575f80fd5b50565b5f81359050610b1081610aec565b92915050565b5f60208284031215610b2b57610b2a610ab9565b5b5f610b3884828501610b02565b91505092915050565b5f8115159050919050565b610b5581610b41565b82525050565b5f602082019050610b6e5f830184610b4c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610bb682610b74565b610bc08185610b7e565b9350610bd0818560208601610b8e565b610bd981610b9c565b840191505092915050565b5f6020820190508181035f830152610bfc8184610bac565b905092915050565b5f819050919050565b610c1681610c04565b8114610c20575f80fd5b50565b5f81359050610c3181610c0d565b92915050565b5f60208284031215610c4c57610c4b610ab9565b5b5f610c5984828501610c23565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8b82610c62565b9050919050565b610c9b81610c81565b82525050565b5f602082019050610cb45f830184610c92565b92915050565b610cc381610c81565b8114610ccd575f80fd5b50565b5f81359050610cde81610cba565b92915050565b5f8060408385031215610cfa57610cf9610ab9565b5b5f610d0785828601610cd0565b9250506020610d1885828601610c23565b9150509250929050565b610d2b81610c04565b82525050565b5f602082019050610d445f830184610d22565b92915050565b5f805f60608486031215610d6157610d60610ab9565b5b5f610d6e86828701610cd0565b9350506020610d7f86828701610cd0565b9250506040610d9086828701610c23565b9150509250925092565b5f60208284031215610daf57610dae610ab9565b5b5f610dbc84828501610cd0565b91505092915050565b610dce81610b41565b8114610dd8575f80fd5b50565b5f81359050610de981610dc5565b92915050565b5f8060408385031215610e0557610e04610ab9565b5b5f610e1285828601610cd0565b9250506020610e2385828601610ddb565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4e57610e4d610e2d565b5b8235905067ffffffffffffffff811115610e6b57610e6a610e31565b5b602083019150836001820283011115610e8757610e86610e35565b5b9250929050565b5f805f805f60808688031215610ea757610ea6610ab9565b5b5f610eb488828901610cd0565b9550506020610ec588828901610cd0565b9450506040610ed688828901610c23565b935050606086013567ffffffffffffffff811115610ef757610ef6610abd565b5b610f0388828901610e39565b92509250509295509295909350565b5f8060408385031215610f2857610f27610ab9565b5b5f610f3585828601610cd0565b9250506020610f4685828601610cd0565b9150509250929050565b7f4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e6579210000005f82015250565b5f610f84601d83610b7e565b9150610f8f82610f50565b602082019050919050565b5f6020820190508181035f830152610fb181610f78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fef82610c04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361102157611020610fb8565b5b600182019050919050565b5f81905092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f0000000000005f82015250565b5f61106a601a8361102c565b915061107582611036565b601a82019050919050565b5f61108a82610b74565b611094818561102c565b93506110a4818560208601610b8e565b80840191505092915050565b5f6110ba8261105e565b91506110c68284611080565b91508190509291505056fea26469706673582212206a79f5a0e467f48b674391deaeadba3209007079faabfaab6ff555ea1ad6b8d964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF2 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6817C76C GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37E JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x6817C76C EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2D4 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x216 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x198 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x117 SWAP2 SWAP1 PUSH2 0xB16 JUMP JUMPDEST PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x146 PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C8 PUSH2 0x47D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x237 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x296 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x291 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x60E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E8 PUSH2 0x6BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x340 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33B SWAP2 SWAP1 PUSH2 0xE8E JUMP JUMPDEST PUSH2 0x74F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHR PUSH4 0x5B5E139F DUP2 EQ PUSH4 0x80AC58CD DUP3 EQ PUSH4 0x1FFC9A7 DUP4 EQ OR OR SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243373231000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD PUSH1 0x60 SHL PUSH2 0x461 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x479 CALLER DUP4 DUP4 PUSH2 0x812 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x48D DUP4 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP4 DUP2 AND SWAP4 POP DUP3 DUP2 AND SWAP3 POP DUP2 PUSH0 MSTORE CALLER PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP1 DUP4 AND DUP7 DUP2 EQ DUP2 MUL PUSH2 0x4F0 JUMPI PUSH8 0xCEEA21B6A1148100 DUP2 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 PUSH0 MSTORE DUP3 PUSH1 0x1 ADD SLOAD DUP1 CALLER EQ DUP9 CALLER EQ OR PUSH2 0x51B JUMPI PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x51A JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x528 JUMPI PUSH0 DUP5 PUSH1 0x1 ADD SSTORE JUMPDEST POP DUP6 DUP8 XOR DUP3 XOR DUP4 SSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD SUB DUP2 SSTORE POP DUP6 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP9 MUL PUSH2 0x56C JUMPI PUSH8 0xEA553B3401336CEA DUP9 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP5 DUP7 DUP9 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP POP POP PUSH2 0x5A7 DUP4 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP4 DUP4 DUP4 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x5C0 DUP3 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5EF DUP3 PUSH2 0x960 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x603 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x66F DUP2 PUSH0 DUP1 DUP2 SLOAD PUSH2 0x664 SWAP1 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE PUSH2 0x99E JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x685 JUMPI PUSH4 0x8F4EB604 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE DUP2 PUSH0 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1C PUSH1 0xC KECCAK256 SLOAD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO SWAP1 POP DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x30 PUSH1 0xC KECCAK256 SSTORE DUP1 PUSH0 MSTORE DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR CALLER PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 PUSH0 LOG3 POP POP JUMP JUMPDEST PUSH2 0x75A DUP6 DUP6 DUP6 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x763 DUP5 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x7B8 JUMPI PUSH2 0x7B7 DUP6 DUP6 DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7CA DUP3 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7DA SWAP2 SWAP1 PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE DUP3 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP3 DUP2 AND SWAP3 POP DUP4 DUP2 AND SWAP4 POP DUP2 PUSH0 MSTORE DUP4 PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP3 AND DUP1 PUSH2 0x868 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP7 EQ DUP7 ISZERO OR PUSH2 0x88D JUMPI DUP1 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x88C JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP5 DUP3 PUSH1 0x1 ADD SSTORE DUP4 DUP6 DUP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH0 CODESIZE LOG4 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 EXTCODESIZE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x150B7A02 DUP1 DUP3 MSTORE CALLER PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x60 SHL PUSH1 0x60 SHR PUSH1 0x40 DUP4 ADD MSTORE DUP4 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0xA0 DUP5 ADD MSTORE DUP1 ISZERO PUSH2 0x91D JUMPI DUP1 PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x20 DUP8 ADD PUSH1 0x4 GAS STATICCALL POP JUMPDEST PUSH1 0x20 DUP4 PUSH1 0xA4 DUP4 ADD PUSH1 0x1C DUP7 ADD PUSH0 DUP11 GAS CALL PUSH2 0x93F JUMPI RETURNDATASIZE ISZERO PUSH2 0x93E JUMPI RETURNDATASIZE PUSH0 DUP5 RETURNDATACOPY RETURNDATASIZE DUP4 REVERT JUMPDEST JUMPDEST DUP2 PUSH1 0xE0 SHL DUP4 MLOAD EQ PUSH2 0x957 JUMPI PUSH4 0xD1A57ED6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD SLOAD PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9A9 PUSH0 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP1 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP2 ADD DUP2 ADD DUP1 SLOAD DUP1 PUSH1 0x60 SHL ISZERO PUSH2 0x9F9 JUMPI PUSH4 0xC991CBB1 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 OR DUP3 SSTORE DUP4 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP7 MUL PUSH2 0xA2D JUMPI PUSH8 0xEA553B3401336CEA DUP7 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP3 DUP5 PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP PUSH2 0xA66 PUSH0 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x80 PUSH1 0x40 MLOAD ADD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE PUSH0 DUP2 MSTORE DUP1 PUSH0 NOT DUP4 JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP5 ADD SWAP4 POP PUSH1 0xA DUP2 MOD PUSH1 0x30 ADD DUP5 MSTORE8 PUSH1 0xA DUP2 DIV SWAP1 POP DUP1 PUSH2 0xA83 JUMPI JUMPDEST POP DUP3 DUP3 SUB PUSH1 0x20 DUP5 SUB SWAP4 POP DUP1 DUP5 MSTORE POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF5 DUP2 PUSH2 0xAC1 JUMP JUMPDEST DUP2 EQ PUSH2 0xAFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB10 DUP2 PUSH2 0xAEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2B JUMPI PUSH2 0xB2A PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB38 DUP5 DUP3 DUP6 ADD PUSH2 0xB02 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6E PUSH0 DUP4 ADD DUP5 PUSH2 0xB4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBB6 DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0xBC0 DUP2 DUP6 PUSH2 0xB7E JUMP JUMPDEST SWAP4 POP PUSH2 0xBD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH2 0xBD9 DUP2 PUSH2 0xB9C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xBFC DUP2 DUP5 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC16 DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP2 EQ PUSH2 0xC20 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC31 DUP2 PUSH2 0xC0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC59 DUP5 DUP3 DUP6 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC8B DUP3 PUSH2 0xC62 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC9B DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH0 DUP4 ADD DUP5 PUSH2 0xC92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC3 DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP2 EQ PUSH2 0xCCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCDE DUP2 PUSH2 0xCBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF9 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD07 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD18 DUP6 DUP3 DUP7 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD44 PUSH0 DUP4 ADD DUP5 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD7F DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD90 DUP7 DUP3 DUP8 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAE PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDBC DUP5 DUP3 DUP6 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP2 EQ PUSH2 0xDD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDE9 DUP2 PUSH2 0xDC5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH2 0xE04 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE12 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE23 DUP6 DUP3 DUP7 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE4E JUMPI PUSH2 0xE4D PUSH2 0xE2D JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xE31 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE87 JUMPI PUSH2 0xE86 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEB4 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0xEC5 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xED6 DUP9 DUP3 DUP10 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEF7 JUMPI PUSH2 0xEF6 PUSH2 0xABD JUMP JUMPDEST JUMPDEST PUSH2 0xF03 DUP9 DUP3 DUP10 ADD PUSH2 0xE39 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF28 JUMPI PUSH2 0xF27 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF35 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF46 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6F636B4552433732313A2067696D6D65206D6F7265206D6F6E657921000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF84 PUSH1 0x1D DUP4 PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP PUSH2 0xF8F DUP3 PUSH2 0xF50 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFB1 DUP2 PUSH2 0xF78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xFEF DUP3 PUSH2 0xC04 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1021 JUMPI PUSH2 0x1020 PUSH2 0xFB8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x106A PUSH1 0x1A DUP4 PUSH2 0x102C JUMP JUMPDEST SWAP2 POP PUSH2 0x1075 DUP3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x1A DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108A DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0x1094 DUP2 DUP6 PUSH2 0x102C JUMP JUMPDEST SWAP4 POP PUSH2 0x10A4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10BA DUP3 PUSH2 0x105E JUMP JUMPDEST SWAP2 POP PUSH2 0x10C6 DUP3 DUP5 PUSH2 0x1080 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0x79F5A0E467F48B674391DE 0xAE 0xAD 0xBA ORIGIN MULMOD STOP PUSH17 0x79FAABFAAB6FF555EA1AD6B8D964736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"679:706:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14864:380:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;790:98:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8099:532:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8925:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;715:26:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10748:2886:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13705:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6957:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;747:36:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;993:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7433:533:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;894:93:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9667:726:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14406:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1198:185:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9135:392:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14864:380;14940:11;15047;15042:3;15038:21;15216:10;15213:1;15210:17;15196:10;15193:1;15190:17;15177:10;15174:1;15171:17;15168:40;15165:63;15155:73;;15015:223;14864:380;;;:::o;790:98:49:-;836:13;861:20;;;;;;;;;;;;;;;;;;;790:98;:::o;8099:532:20:-;8161:14;8266:2;8260:4;8253:16;8295:24;8289:4;8282:38;8386:4;8380;8370:21;8366:2;8362:30;8358:2;8354:39;8430:13;8424:20;8420:2;8416:29;8406:158;;8478:10;8472:4;8465:24;8545:4;8539;8532:18;8406:158;8600:13;8597:1;8593:21;8587:28;8577:38;;8239:386;8099:532;;;:::o;8925:119::-;9004:33;9013:10;9025:7;9034:2;9004:8;:33::i;:::-;8925:119;;:::o;715:26:49:-;;;;:::o;10748:2886:20:-;10841:34;10862:4;10868:2;10872;10841:20;:34::i;:::-;11025:1;11021:6;11017:2;11013:15;11069:4;11053:14;11049:25;11041:33;;11113:2;11097:14;11093:23;11087:29;;11182:2;11176:4;11169:16;11240:8;11214:24;11211:38;11205:4;11198:52;11316:4;11310;11300:21;11296:2;11292:30;11288:2;11284:39;11365:13;11359:20;11425:15;11409:14;11405:36;11567:4;11560:5;11557:15;11550:5;11546:27;11536:229;;11697:18;11688:5;11681:13;11678:1;11674:21;11667:49;11746:4;11740;11733:18;11536:229;11868:4;11862;11855:18;11926:13;11923:1;11919:21;11913:28;12076:15;12066:8;12063:29;12056:4;12046:8;12043:18;12040:53;12030:288;;12149:4;12143;12133:21;12127:28;12117:183;;12196:10;12190:4;12183:24;12273:4;12267;12260:18;12117:183;12030:288;12393:15;12390:55;;;12441:1;12425:13;12422:1;12418:21;12411:32;12390:55;11837:622;12567:2;12561:4;12557:13;12540:15;12536:35;12521:13;12514:58;12690:4;12684;12674:21;12764:1;12746:15;12740:22;12736:30;12719:15;12712:55;12633:148;12871:2;12865:4;12858:16;12928:4;12922;12912:21;13003:1;12987:13;12981:20;12977:28;13157:20;13136:19;13132:46;13128:2;13124:55;13114:270;;13308:18;13302:2;13295:10;13292:1;13288:18;13281:46;13361:4;13355;13348:18;13114:270;13423:19;13408:13;13401:42;12840:617;;13572:2;13568;13562:4;13535:25;13529:4;13517:10;13512:63;10937:2648;;;;13594:33;13614:4;13620:2;13624;13594:19;:33::i;:::-;10748:2886;;;:::o;13705:198::-;13802:26;13815:4;13821:2;13825;13802:12;:26::i;:::-;13842:12;13851:2;13842:8;:12::i;:::-;13838:58;;;13856:40;13879:4;13885:2;13889;13856:40;;;;;;;;;;;;:22;:40::i;:::-;13838:58;13705:198;;;:::o;6957:332::-;7015:14;7050:12;7059:2;7050:8;:12::i;:::-;7041:21;;7148:6;7138:135;;7187:10;7181:4;7174:24;7254:4;7248;7241:18;7138:135;6957:332;;;:::o;747:36:49:-;;;;:::o;993:199::-;1065:9;;1052;:22;;1044:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1161:24;1167:2;1173:11;;1171:13;;;;;:::i;:::-;;;;;;;1161:5;:24::i;:::-;993:199;:::o;7433:533:20:-;7496:14;7656:5;7646:143;;7694:10;7688:4;7681:24;7770:4;7764;7757:18;7646:143;7815:24;7809:4;7802:38;7866:5;7860:4;7853:19;7929:20;7921:4;7915;7905:21;7899:28;7895:55;7885:65;;7433:533;;;:::o;894:93:49:-;942:13;967;;;;;;;;;;;;;;;;;;;894:93;:::o;9667:726:20:-;9882:10;9875:18;9868:26;9854:40;;9991:8;9985:4;9978:22;10026:31;10020:4;10013:45;10084:8;10078:4;10071:22;10136:10;10129:4;10123;10113:21;10106:41;10221:10;10215:4;10208:24;10366:8;10362:2;10358:17;10354:2;10350:26;10340:8;10305:33;10299:4;10293;10288:89;9667:726;;:::o;14406:249::-;14552:26;14565:4;14571:2;14575;14552:12;:26::i;:::-;14592:12;14601:2;14592:8;:12::i;:::-;14588:60;;;14606:42;14629:4;14635:2;14639;14643:4;;14606:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:22;:42::i;:::-;14588:60;14406:249;;;;;:::o;1198:185:49:-;1266:13;1352:22;1371:2;1352:18;:22::i;:::-;1305:70;;;;;;;;:::i;:::-;;;;;;;;;;;;;1291:85;;1198:185;;;:::o;9135:392:20:-;9255:11;9361:8;9355:4;9348:22;9396:31;9390:4;9383:45;9454:5;9448:4;9441:19;9505:4;9499;9489:21;9483:28;9473:38;;9135:392;;;;:::o;29039:1442::-;29222:1;29218:6;29214:2;29210:15;29269:7;29253:14;29249:28;29238:39;;29316:2;29300:14;29296:23;29290:29;;29389:2;29383:4;29376:16;29447:2;29421:24;29418:32;29412:4;29405:46;29517:4;29511;29501:21;29497:2;29493:30;29489:2;29485:39;29576:13;29570:20;29554:14;29550:41;29665:5;29655:134;;29703:10;29697:4;29690:24;29770:4;29764;29757:18;29655:134;29972:5;29968:2;29965:13;29960:2;29953:10;29950:29;29940:280;;30012:5;30006:4;29999:19;30067:4;30061;30051:21;30045:28;30035:171;;30110:10;30104:4;30097:24;30183:4;30177;30170:18;30035:171;29940:280;30333:7;30317:13;30314:1;30310:21;30303:38;30462:2;30453:7;30446:5;30419:25;30413:4;30401:10;30396:69;29134:1341;;;29039:1442;;;:::o;37597:87::-;;;;:::o;37781:86::-;;;;:::o;38217:212::-;38268:11;38379:1;38367:14;38357:24;;38217:212;;;:::o;38588:1370::-;38825:4;38819:11;38875:10;38908:24;38905:1;38898:35;38967:8;38960:4;38957:1;38953:12;38946:30;39075:4;39071:2;39067:13;39063:2;39059:22;39052:4;39049:1;39045:12;39038:44;39116:2;39109:4;39106:1;39102:12;39095:24;39153:4;39146;39143:1;39139:12;39132:26;39186:4;39180:11;39225:1;39218:4;39215:1;39211:12;39204:23;39243:1;39240:71;;;39306:1;39299:4;39296:1;39292:12;39289:1;39282:4;39276;39272:15;39269:1;39262:5;39251:57;39247:62;39240:71;39427:4;39424:1;39417:4;39414:1;39410:12;39403:4;39400:1;39396:12;39393:1;39389:2;39382:5;39377:55;39367:313;;39455:16;39452:214;;;39583:16;39577:4;39574:1;39559:41;39631:16;39628:1;39621:27;39452:214;39367:313;39776:24;39771:3;39767:34;39763:1;39757:8;39754:48;39744:198;;39835:10;39829:4;39822:24;39923:4;39917;39910:18;39744:198;38759:1193;;;38588:1370;;;;:::o;16037:323::-;16098:14;16203:2;16197:4;16190:16;16232:24;16226:4;16219:38;16334:4;16328;16318:21;16314:2;16310:30;16306:2;16302:39;16296:46;16292:2;16288:55;16284:2;16280:64;16270:74;;16037:323;;;:::o;19609:1653::-;19675:40;19704:1;19708:2;19712;19675:20;:40::i;:::-;19853:2;19849;19845:11;19841:2;19837:20;19831:26;;19923:2;19917:4;19910:16;19952:24;19946:4;19939:38;20043:4;20037;20027:21;20023:2;20019:30;20015:2;20011:39;20092:13;20086:20;20181:15;20177:2;20173:24;20170:146;;;20229:10;20223:4;20216:24;20297:4;20291;20284:18;20170:146;20409:2;20392:15;20389:23;20374:13;20367:46;20508:2;20502:4;20495:16;20563:4;20557;20547:21;20634:1;20620:11;20614:18;20610:26;20786:20;20767:17;20763:44;20759:2;20755:53;20745:268;;20937:18;20931:2;20924:10;20921:1;20917:18;20910:46;20990:4;20984;20977:18;20745:268;21050:17;21037:11;21030:38;20477:605;;21194:2;21190;21187:1;21160:25;21154:4;21142:10;21137:60;19777:1430;;21216:39;21244:1;21248:2;21252;21216:19;:39::i;:::-;19609:1653;;:::o;1946:1641:24:-;2002:17;2447:4;2440;2434:11;2430:22;2423:29;;2546:4;2541:3;2537:14;2531:4;2524:28;2627:1;2622:3;2615:14;2728:3;2758:1;2754:6;2967:5;2949:402;2975:1;2949:402;;;3014:1;3009:3;3005:11;2998:18;;3200:2;3194:4;3190:13;3186:2;3182:22;3177:3;3169:36;3292:2;3286:4;3282:13;3274:21;;3322:4;2949:402;3312:25;2949:402;2953:21;3388:3;3383;3379:13;3501:4;3496:3;3492:14;3485:21;;3564:6;3559:3;3552:19;2083:1498;;;1946:1641;;;:::o;88:117:53:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:118::-;4870:24;4888:5;4870:24;:::i;:::-;4865:3;4858:37;4783:118;;:::o;4907:222::-;5000:4;5038:2;5027:9;5023:18;5015:26;;5051:71;5119:1;5108:9;5104:17;5095:6;5051:71;:::i;:::-;4907:222;;;;:::o;5135:619::-;5212:6;5220;5228;5277:2;5265:9;5256:7;5252:23;5248:32;5245:119;;;5283:79;;:::i;:::-;5245:119;5403:1;5428:53;5473:7;5464:6;5453:9;5449:22;5428:53;:::i;:::-;5418:63;;5374:117;5530:2;5556:53;5601:7;5592:6;5581:9;5577:22;5556:53;:::i;:::-;5546:63;;5501:118;5658:2;5684:53;5729:7;5720:6;5709:9;5705:22;5684:53;:::i;:::-;5674:63;;5629:118;5135:619;;;;;:::o;5760:329::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:119;;;5874:79;;:::i;:::-;5836:119;5994:1;6019:53;6064:7;6055:6;6044:9;6040:22;6019:53;:::i;:::-;6009:63;;5965:117;5760:329;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:117;7185:1;7182;7175:12;7212:552;7269:8;7279:6;7329:3;7322:4;7314:6;7310:17;7306:27;7296:122;;7337:79;;:::i;:::-;7296:122;7450:6;7437:20;7427:30;;7480:18;7472:6;7469:30;7466:117;;;7502:79;;:::i;:::-;7466:117;7616:4;7608:6;7604:17;7592:29;;7670:3;7662:4;7654:6;7650:17;7640:8;7636:32;7633:41;7630:128;;;7677:79;;:::i;:::-;7630:128;7212:552;;;;;:::o;7770:963::-;7867:6;7875;7883;7891;7899;7948:3;7936:9;7927:7;7923:23;7919:33;7916:120;;;7955:79;;:::i;:::-;7916:120;8075:1;8100:53;8145:7;8136:6;8125:9;8121:22;8100:53;:::i;:::-;8090:63;;8046:117;8202:2;8228:53;8273:7;8264:6;8253:9;8249:22;8228:53;:::i;:::-;8218:63;;8173:118;8330:2;8356:53;8401:7;8392:6;8381:9;8377:22;8356:53;:::i;:::-;8346:63;;8301:118;8486:2;8475:9;8471:18;8458:32;8517:18;8509:6;8506:30;8503:117;;;8539:79;;:::i;:::-;8503:117;8652:64;8708:7;8699:6;8688:9;8684:22;8652:64;:::i;:::-;8634:82;;;;8429:297;7770:963;;;;;;;;:::o;8739:474::-;8807:6;8815;8864:2;8852:9;8843:7;8839:23;8835:32;8832:119;;;8870:79;;:::i;:::-;8832:119;8990:1;9015:53;9060:7;9051:6;9040:9;9036:22;9015:53;:::i;:::-;9005:63;;8961:117;9117:2;9143:53;9188:7;9179:6;9168:9;9164:22;9143:53;:::i;:::-;9133:63;;9088:118;8739:474;;;;;:::o;9219:179::-;9359:31;9355:1;9347:6;9343:14;9336:55;9219:179;:::o;9404:366::-;9546:3;9567:67;9631:2;9626:3;9567:67;:::i;:::-;9560:74;;9643:93;9732:3;9643:93;:::i;:::-;9761:2;9756:3;9752:12;9745:19;;9404:366;;;:::o;9776:419::-;9942:4;9980:2;9969:9;9965:18;9957:26;;10029:9;10023:4;10019:20;10015:1;10004:9;10000:17;9993:47;10057:131;10183:4;10057:131;:::i;:::-;10049:139;;9776:419;;;:::o;10201:180::-;10249:77;10246:1;10239:88;10346:4;10343:1;10336:15;10370:4;10367:1;10360:15;10387:233;10426:3;10449:24;10467:5;10449:24;:::i;:::-;10440:33;;10495:66;10488:5;10485:77;10482:103;;10565:18;;:::i;:::-;10482:103;10612:1;10605:5;10601:13;10594:20;;10387:233;;;:::o;10626:148::-;10728:11;10765:3;10750:18;;10626:148;;;;:::o;10780:180::-;10920:28;10916:1;10908:6;10904:14;10897:52;10780:180;:::o;10970:418::-;11130:3;11155:85;11237:2;11232:3;11155:85;:::i;:::-;11148:92;;11253:93;11342:3;11253:93;:::i;:::-;11375:2;11370:3;11366:12;11359:19;;10970:418;;;:::o;11398:410::-;11504:3;11536:39;11569:5;11536:39;:::i;:::-;11595:89;11677:6;11672:3;11595:89;:::i;:::-;11588:96;;11697:65;11755:6;11750:3;11743:4;11736:5;11732:16;11697:65;:::i;:::-;11791:6;11786:3;11782:16;11775:23;;11508:300;11398:410;;;;:::o;11818:557::-;12051:3;12077:148;12221:3;12077:148;:::i;:::-;12070:155;;12246:95;12337:3;12328:6;12246:95;:::i;:::-;12239:102;;12362:3;12355:10;;11818:557;;;;:::o"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address)":"6a627842","mintPrice()":"6817c76c","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccountBalanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccountBalanceOverflow()\":[{\"details\":\"The recipient's balance has overflowed.\"}],\"BalanceQueryForZeroAddress()\":[{\"details\":\"Cannot query the balance for the zero address.\"}],\"NotOwnerNorApproved()\":[{\"details\":\"Only the token owner or an approved account can manage the token.\"}],\"TokenAlreadyExists()\":[{\"details\":\"The token already exists.\"}],\"TokenDoesNotExist()\":[{\"details\":\"The token does not exist.\"}],\"TransferFromIncorrectOwner()\":[{\"details\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"details\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"details\":\"Cannot mint or transfer to the zero address.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `account` to manage the `id` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when token `id` is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Sets `account` as the approved account to manage token `id`. Requirements: - Token `id` must exist. - The caller must be the owner of the token, or an approved operator for the token owner. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens owned by `owner`. Requirements: - `owner` must not be the zero address.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved to manage token `id`. Requirements: - Token `id` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns whether `operator` is approved to manage the tokens of `owner`.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of token `id`. Requirements: - Token `id` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, id, \\\"\\\")`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See: https://eips.ethereum.org/EIPS/eip-165 This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. Emits a {Transfer} event.\"}},\"title\":\"MockERC721\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC721 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"}},"contracts/tokens/Points.sol":{"Points":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NonTransferable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ISSUER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"minter_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"issue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50611b1b8061001c5f395ff3fe6080604052600436106101b6575f3560e01c806354d1f13d116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146105aa578063f04e283e146105e6578063f2fde38b14610602578063fee81cf41461061e576101b6565b806395d89b411461051c578063a9059cbb14610546578063d505accf14610582576101b6565b80637ecebe00116100c55780637ecebe001461046457806382aefa24146104a0578063867904b4146104ca5780638da5cb5b146104f2576101b6565b806354d1f13d1461041457806370a082311461041e578063715018a61461045a576101b6565b806323b872dd11610158578063313ce56711610132578063313ce567146103685780633644e515146103925780634a4ee7b1146103bc578063514e62fc146103d8576101b6565b806323b872dd146102e657806325692962146103225780632de948071461032c576101b6565b806318160ddd1161019457806318160ddd14610248578063183a4f6e146102725780631c10893f1461028e5780631cd64df4146102aa576101b6565b806306fdde03146101ba578063077f224a146101e4578063095ea7b31461020c575b5f80fd5b3480156101c5575f80fd5b506101ce61065a565b6040516101db91906112af565b60405180910390f35b3480156101ef575f80fd5b5061020a60048036038101906102059190611466565b6106e9565b005b348015610217575f80fd5b50610232600480360381019061022d9190611521565b610793565b60405161023f9190611579565b60405180910390f35b348015610253575f80fd5b5061025c6107e3565b60405161026991906115a1565b60405180910390f35b61028c600480360381019061028791906115ba565b6107f4565b005b6102a860048036038101906102a39190611521565b610801565b005b3480156102b5575f80fd5b506102d060048036038101906102cb9190611521565b610817565b6040516102dd9190611579565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906115e5565b61082d565b6040516103199190611579565b60405180910390f35b61032a6108fe565b005b348015610337575f80fd5b50610352600480360381019061034d9190611635565b61094f565b60405161035f91906115a1565b60405180910390f35b348015610373575f80fd5b5061037c610968565b604051610389919061167b565b60405180910390f35b34801561039d575f80fd5b506103a6610970565b6040516103b391906116ac565b60405180910390f35b6103d660048036038101906103d19190611521565b610a00565b005b3480156103e3575f80fd5b506103fe60048036038101906103f99190611521565b610a16565b60405161040b9190611579565b60405180910390f35b61041c610a2d565b005b348015610429575f80fd5b50610444600480360381019061043f9190611635565b610a66565b60405161045191906115a1565b60405180910390f35b610462610a7f565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611635565b610a92565b60405161049791906115a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610aab565b6040516104c191906115a1565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190611521565b610ab0565b005b3480156104fd575f80fd5b50610506610aca565b60405161051391906116d4565b60405180910390f35b348015610527575f80fd5b50610530610af2565b60405161053d91906112af565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190611521565b610b82565b6040516105799190611579565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190611741565b610c10565b005b3480156105b5575f80fd5b506105d060048036038101906105cb91906117de565b610dac565b6040516105dd91906115a1565b60405180910390f35b61060060048036038101906105fb9190611635565b610dca565b005b61061c60048036038101906106179190611635565b610e08565b005b348015610629575f80fd5b50610644600480360381019061063f9190611635565b610e31565b60405161065191906115a1565b60405180910390f35b60605f805461066890611849565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611849565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b5f6106f2610e4a565b905080546003825580156107245760018160011c14303b1061071b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061072e33610e73565b835f908161073c9190611a16565b50826001908161074c9190611a16565b50610758826002610f49565b801561078d576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b50505050565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b5f6805345cdf77eb68f44c54905090565b6107fe3382610f59565b50565b610809610f68565b6108138282610f49565b5050565b5f81826108238561094f565b1614905092915050565b5f610839848484610f9f565b8360601b33602052637f5e9f208117600c526034600c20805460018101156108765780851115610870576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c2080548087111561089c5763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050505050506108f3848484611043565b600190509392505050565b5f610907611048565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b5f6012905090565b5f8061097a611052565b90505f801b81036109975761098d61065a565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b610a08610f68565b610a128282610f59565b5050565b5f8082610a228561094f565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6387a211a2600c52815f526020600c20549050919050565b610a87610f68565b610a905f611056565b565b5f6338377508600c52815f526020600c20549050919050565b600281565b6002610abb8161111c565b610ac58383611151565b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b606060018054610b0190611849565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2d90611849565b8015610b785780601f10610b4f57610100808354040283529160200191610b78565b820191905f5260205f20905b815481529060010190602001808311610b5b57829003601f168201915b5050505050905090565b5f610b8e338484610f9f565b6387a211a2600c52335f526020600c20805480841115610bb55763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050610c06338484611043565b6001905092915050565b5f610c19611052565b90505f801b8103610c3657610c2c61065a565b8051906020012090505b84421115610c4b57631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d5114610d535763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b610dd2610f68565b63389a75e1600c52805f526020600c208054421115610df857636f5e88185f526004601cfd5b5f815550610e0581611056565b50565b610e10610f68565b8060601b610e2557637448fbae5f526004601cfd5b610e2e81611056565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111e3565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610f55828260016111e7565b5050565b610f6482825f6111e7565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f9d576382b429005f526004601cfd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561100757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561103e576040517f9cbe235700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b505050565b5f6202a300905090565b5f90565b61105e6111e3565b156110c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611119565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b638b78c6d81954331461114e57638b78c6d8600c52335f52806020600c20541661114d576382b429005f526004601cfd5b5b50565b61115c5f8383610f9f565b6805345cdf77eb68f44c548181018181101561117f5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506111df5f8383611043565b5050565b5f90565b638b78c6d8600c52825f526020600c2080548381178361120957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112818261123f565b61128b8185611249565b935061129b818560208601611259565b6112a481611267565b840191505092915050565b5f6020820190508181035f8301526112c78184611277565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61131e82611267565b810181811067ffffffffffffffff8211171561133d5761133c6112e8565b5b80604052505050565b5f61134f6112cf565b905061135b8282611315565b919050565b5f67ffffffffffffffff82111561137a576113796112e8565b5b61138382611267565b9050602081019050919050565b828183375f83830152505050565b5f6113b06113ab84611360565b611346565b9050828152602081018484840111156113cc576113cb6112e4565b5b6113d7848285611390565b509392505050565b5f82601f8301126113f3576113f26112e0565b5b813561140384826020860161139e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114358261140c565b9050919050565b6114458161142b565b811461144f575f80fd5b50565b5f813590506114608161143c565b92915050565b5f805f6060848603121561147d5761147c6112d8565b5b5f84013567ffffffffffffffff81111561149a576114996112dc565b5b6114a6868287016113df565b935050602084013567ffffffffffffffff8111156114c7576114c66112dc565b5b6114d3868287016113df565b92505060406114e486828701611452565b9150509250925092565b5f819050919050565b611500816114ee565b811461150a575f80fd5b50565b5f8135905061151b816114f7565b92915050565b5f8060408385031215611537576115366112d8565b5b5f61154485828601611452565b92505060206115558582860161150d565b9150509250929050565b5f8115159050919050565b6115738161155f565b82525050565b5f60208201905061158c5f83018461156a565b92915050565b61159b816114ee565b82525050565b5f6020820190506115b45f830184611592565b92915050565b5f602082840312156115cf576115ce6112d8565b5b5f6115dc8482850161150d565b91505092915050565b5f805f606084860312156115fc576115fb6112d8565b5b5f61160986828701611452565b935050602061161a86828701611452565b925050604061162b8682870161150d565b9150509250925092565b5f6020828403121561164a576116496112d8565b5b5f61165784828501611452565b91505092915050565b5f60ff82169050919050565b61167581611660565b82525050565b5f60208201905061168e5f83018461166c565b92915050565b5f819050919050565b6116a681611694565b82525050565b5f6020820190506116bf5f83018461169d565b92915050565b6116ce8161142b565b82525050565b5f6020820190506116e75f8301846116c5565b92915050565b6116f681611660565b8114611700575f80fd5b50565b5f81359050611711816116ed565b92915050565b61172081611694565b811461172a575f80fd5b50565b5f8135905061173b81611717565b92915050565b5f805f805f805f60e0888a03121561175c5761175b6112d8565b5b5f6117698a828b01611452565b975050602061177a8a828b01611452565b965050604061178b8a828b0161150d565b955050606061179c8a828b0161150d565b94505060806117ad8a828b01611703565b93505060a06117be8a828b0161172d565b92505060c06117cf8a828b0161172d565b91505092959891949750929550565b5f80604083850312156117f4576117f36112d8565b5b5f61180185828601611452565b925050602061181285828601611452565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061186057607f821691505b6020821081036118735761187261181c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261189a565b6118df868361189a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61191a611915611910846114ee565b6118f7565b6114ee565b9050919050565b5f819050919050565b61193383611900565b61194761193f82611921565b8484546118a6565b825550505050565b5f90565b61195b61194f565b61196681848461192a565b505050565b5b818110156119895761197e5f82611953565b60018101905061196c565b5050565b601f8211156119ce5761199f81611879565b6119a88461188b565b810160208510156119b7578190505b6119cb6119c38561188b565b83018261196b565b50505b505050565b5f82821c905092915050565b5f6119ee5f19846008026119d3565b1980831691505092915050565b5f611a0683836119df565b9150826002028217905092915050565b611a1f8261123f565b67ffffffffffffffff811115611a3857611a376112e8565b5b611a428254611849565b611a4d82828561198d565b5f60209050601f831160018114611a7e575f8415611a6c578287015190505b611a7685826119fb565b865550611add565b601f198416611a8c86611879565b5f5b82811015611ab357848901518255600182019150602085019450602081019050611a8e565b86831015611ad05784890151611acc601f8916826119df565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220058c997ad2d7b7ff6bf8e85fa7c09e225fbb4b0c690fc6dc2b59b30b7cb704d164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1B DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54D1F13D GT PUSH2 0xEB JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x61E JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x582 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x82AEFA24 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4F2 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x45A JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x158 JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x132 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x3D8 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x32C JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x194 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x2AA JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x20C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x793 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x7F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A3 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x15E5 JUMP JUMPDEST PUSH2 0x82D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x32A PUSH2 0x8FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x389 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x16AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D1 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH2 0xA2D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x462 PUSH2 0xA7F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B4 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x513 SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x530 PUSH2 0xAF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53D SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x551 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x567 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x579 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1741 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5CB SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DD SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x600 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x61C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE08 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x63F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x651 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 DUP1 SLOAD PUSH2 0x668 SWAP1 PUSH2 0x1849 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 0x694 SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6DF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x71B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x72E CALLER PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH0 SWAP1 DUP2 PUSH2 0x73C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP DUP3 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP PUSH2 0x758 DUP3 PUSH1 0x2 PUSH2 0xF49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FE CALLER DUP3 PUSH2 0xF59 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x809 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0x813 DUP3 DUP3 PUSH2 0xF49 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x823 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x839 DUP5 DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x876 JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x870 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x89C JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x8F3 DUP5 DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x907 PUSH2 0x1048 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x97A PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x997 JUMPI PUSH2 0x98D PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA12 DUP3 DUP3 PUSH2 0xF59 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0xA22 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA87 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA90 PUSH0 PUSH2 0x1056 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH2 0xABB DUP2 PUSH2 0x111C JUMP JUMPDEST PUSH2 0xAC5 DUP4 DUP4 PUSH2 0x1151 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xB01 SWAP1 PUSH2 0x1849 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 0xB2D SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB78 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB78 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB5B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB8E CALLER DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0xBB5 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0xC06 CALLER DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC19 PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0xC36 JUMPI PUSH2 0xC2C PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0xC4B JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0xD53 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDD2 PUSH2 0xF68 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDF8 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xE05 DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE10 PUSH2 0xF68 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE25 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xE2E DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xF55 DUP3 DUP3 PUSH1 0x1 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xF64 DUP3 DUP3 PUSH0 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF9D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x9CBE235700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x105E PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0x10C3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1119 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH4 0x8B78C6D8 NOT SLOAD CALLER EQ PUSH2 0x114E JUMPI PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x114D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x115C PUSH0 DUP4 DUP4 PUSH2 0xF9F JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x117F JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x11DF PUSH0 DUP4 DUP4 PUSH2 0x1043 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0x1209 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1281 DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x128B DUP2 DUP6 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP PUSH2 0x129B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1267 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH2 0x1267 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x133D JUMPI PUSH2 0x133C PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x134F PUSH2 0x12CF JUMP JUMPDEST SWAP1 POP PUSH2 0x135B DUP3 DUP3 PUSH2 0x1315 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x137A JUMPI PUSH2 0x1379 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1383 DUP3 PUSH2 0x1267 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13B0 PUSH2 0x13AB DUP5 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x1346 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x12E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13D7 DUP5 DUP3 DUP6 PUSH2 0x1390 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH2 0x13F2 PUSH2 0x12E0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1403 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x139E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1435 DUP3 PUSH2 0x140C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1445 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP2 EQ PUSH2 0x144F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1460 DUP2 PUSH2 0x143C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x147D JUMPI PUSH2 0x147C PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x149A JUMPI PUSH2 0x1499 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14A6 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x14E4 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1500 DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP2 EQ PUSH2 0x150A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x151B DUP2 PUSH2 0x14F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1537 JUMPI PUSH2 0x1536 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1544 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1555 DUP6 DUP3 DUP7 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1573 DUP2 PUSH2 0x155F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x158C PUSH0 DUP4 ADD DUP5 PUSH2 0x156A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15CF JUMPI PUSH2 0x15CE PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DC DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15FC JUMPI PUSH2 0x15FB PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1609 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x161A DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x162B DUP7 DUP3 DUP8 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164A JUMPI PUSH2 0x1649 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1657 DUP5 DUP3 DUP6 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1675 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168E PUSH0 DUP4 ADD DUP5 PUSH2 0x166C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A6 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16BF PUSH0 DUP4 ADD DUP5 PUSH2 0x169D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16CE DUP2 PUSH2 0x142B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16E7 PUSH0 DUP4 ADD DUP5 PUSH2 0x16C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16F6 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP2 EQ PUSH2 0x1700 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1711 DUP2 PUSH2 0x16ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1720 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP2 EQ PUSH2 0x172A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x173B DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x175C JUMPI PUSH2 0x175B PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1769 DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x177A DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x178B DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x179C DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x17AD DUP11 DUP3 DUP12 ADD PUSH2 0x1703 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x17BE DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x17CF DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F4 JUMPI PUSH2 0x17F3 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1801 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1812 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1860 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1873 JUMPI PUSH2 0x1872 PUSH2 0x181C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x18D5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x189A JUMP JUMPDEST PUSH2 0x18DF DUP7 DUP4 PUSH2 0x189A 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x191A PUSH2 0x1915 PUSH2 0x1910 DUP5 PUSH2 0x14EE JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x14EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1933 DUP4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x193F DUP3 PUSH2 0x1921 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x18A6 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x195B PUSH2 0x194F JUMP JUMPDEST PUSH2 0x1966 DUP2 DUP5 DUP5 PUSH2 0x192A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH2 0x197E PUSH0 DUP3 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x196C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x19CE JUMPI PUSH2 0x199F DUP2 PUSH2 0x1879 JUMP JUMPDEST PUSH2 0x19A8 DUP5 PUSH2 0x188B JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x19B7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x19CB PUSH2 0x19C3 DUP6 PUSH2 0x188B JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x196B JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19EE PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x19D3 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A06 DUP4 DUP4 PUSH2 0x19DF JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A1F DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A38 JUMPI PUSH2 0x1A37 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1A42 DUP3 SLOAD PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x1A4D DUP3 DUP3 DUP6 PUSH2 0x198D JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1A7E JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1A6C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1A76 DUP6 DUP3 PUSH2 0x19FB JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1ADD JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1A8C DUP7 PUSH2 0x1879 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AB3 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 0x1A8E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1AD0 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1ACC PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x19DF 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 INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV DUP13 SWAP10 PUSH27 0xD2D7B7FF6BF8E85FA7C09E225FBB4B0C690FC6DC2B59B30B7CB704 0xD1 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"394:1770:50:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_8242":{"entryPoint":2416,"id":8242,"parameterSlots":0,"returnSlots":1},"@ISSUER_ROLE_17925":{"entryPoint":2731,"id":17925,"parameterSlots":0,"returnSlots":0},"@_afterTokenTransfer_8368":{"entryPoint":4163,"id":8368,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_18025":{"entryPoint":3999,"id":18025,"parameterSlots":3,"returnSlots":0},"@_checkOwnerOrRoles_6513":{"entryPoint":4380,"id":6513,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":3944,"id":6322,"parameterSlots":0,"returnSlots":0},"@_constantNameHash_8160":{"entryPoint":4178,"id":8160,"parameterSlots":0,"returnSlots":1},"@_grantRoles_6482":{"entryPoint":3913,"id":6482,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":4579,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":3658,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":3699,"id":6302,"parameterSlots":1,"returnSlots":0},"@_mint_8270":{"entryPoint":4433,"id":8270,"parameterSlots":2,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":4168,"id":6333,"parameterSlots":0,"returnSlots":1},"@_removeRoles_6497":{"entryPoint":3929,"id":6497,"parameterSlots":2,"returnSlots":0},"@_setOwner_6316":{"entryPoint":4182,"id":6316,"parameterSlots":1,"returnSlots":0},"@_updateRoles_6467":{"entryPoint":4583,"id":6467,"parameterSlots":3,"returnSlots":0},"@allowance_8083":{"entryPoint":3500,"id":8083,"parameterSlots":2,"returnSlots":1},"@approve_8097":{"entryPoint":1939,"id":8097,"parameterSlots":2,"returnSlots":1},"@balanceOf_8071":{"entryPoint":2662,"id":8071,"parameterSlots":1,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2605,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3530,"id":6396,"parameterSlots":1,"returnSlots":0},"@decimals_8053":{"entryPoint":2408,"id":8053,"parameterSlots":0,"returnSlots":1},"@grantRoles_6559":{"entryPoint":2049,"id":6559,"parameterSlots":2,"returnSlots":0},"@hasAllRoles_6636":{"entryPoint":2071,"id":6636,"parameterSlots":2,"returnSlots":1},"@hasAnyRole_6617":{"entryPoint":2582,"id":6617,"parameterSlots":2,"returnSlots":1},"@initialize_17959":{"entryPoint":1769,"id":17959,"parameterSlots":3,"returnSlots":0},"@issue_17976":{"entryPoint":2736,"id":17976,"parameterSlots":2,"returnSlots":0},"@name_17986":{"entryPoint":1626,"id":17986,"parameterSlots":0,"returnSlots":1},"@nonces_8170":{"entryPoint":2706,"id":8170,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":2762,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":3633,"id":6414,"parameterSlots":1,"returnSlots":1},"@permit_8212":{"entryPoint":3088,"id":8212,"parameterSlots":7,"returnSlots":0},"@renounceOwnership_6361":{"entryPoint":2687,"id":6361,"parameterSlots":0,"returnSlots":0},"@renounceRoles_6588":{"entryPoint":2036,"id":6588,"parameterSlots":1,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":2302,"id":6376,"parameterSlots":0,"returnSlots":0},"@revokeRoles_6575":{"entryPoint":2560,"id":6575,"parameterSlots":2,"returnSlots":0},"@rolesOf_6598":{"entryPoint":2383,"id":6598,"parameterSlots":1,"returnSlots":1},"@symbol_17996":{"entryPoint":2802,"id":17996,"parameterSlots":0,"returnSlots":1},"@totalSupply_8061":{"entryPoint":2019,"id":8061,"parameterSlots":0,"returnSlots":1},"@transferFrom_8153":{"entryPoint":2093,"id":8153,"parameterSlots":3,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":3592,"id":6347,"parameterSlots":1,"returnSlots":0},"@transfer_8125":{"entryPoint":2946,"id":8125,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":5022,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5202,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":5933,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":5087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8":{"entryPoint":5891,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5685,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":6110,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":5605,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":5953,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":5409,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address":{"entryPoint":5222,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":5562,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5829,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5482,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":5789,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4727,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5522,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":5740,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5844,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5497,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":5804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4783,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5537,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":5755,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4934,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":4815,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":4960,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":6265,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":4671,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":4681,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":6541,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":5163,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5471,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":5780,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5132,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5358,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":5728,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":6507,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":6400,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":6678,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5008,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4697,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":6283,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":6217,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":6651,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":4885,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":6391,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":6623,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":6172,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4840,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":6433,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4832,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4836,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":4828,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":4824,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4711,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":6298,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":6611,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":6483,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":6310,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":6442,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5180,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":5911,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5367,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":5869,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":6479,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:16374:53","nodeType":"YulBlock","src":"0:16374:53","statements":[{"body":{"nativeSrc":"66:40:53","nodeType":"YulBlock","src":"66:40:53","statements":[{"nativeSrc":"77:22:53","nodeType":"YulAssignment","src":"77:22:53","value":{"arguments":[{"name":"value","nativeSrc":"93:5:53","nodeType":"YulIdentifier","src":"93:5:53"}],"functionName":{"name":"mload","nativeSrc":"87:5:53","nodeType":"YulIdentifier","src":"87:5:53"},"nativeSrc":"87:12:53","nodeType":"YulFunctionCall","src":"87:12:53"},"variableNames":[{"name":"length","nativeSrc":"77:6:53","nodeType":"YulIdentifier","src":"77:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:53","nodeType":"YulTypedName","src":"49:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:53","nodeType":"YulTypedName","src":"59:6:53","type":""}],"src":"7:99:53"},{"body":{"nativeSrc":"208:73:53","nodeType":"YulBlock","src":"208:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:53","nodeType":"YulIdentifier","src":"225:3:53"},{"name":"length","nativeSrc":"230:6:53","nodeType":"YulIdentifier","src":"230:6:53"}],"functionName":{"name":"mstore","nativeSrc":"218:6:53","nodeType":"YulIdentifier","src":"218:6:53"},"nativeSrc":"218:19:53","nodeType":"YulFunctionCall","src":"218:19:53"},"nativeSrc":"218:19:53","nodeType":"YulExpressionStatement","src":"218:19:53"},{"nativeSrc":"246:29:53","nodeType":"YulAssignment","src":"246:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:53","nodeType":"YulIdentifier","src":"265:3:53"},{"kind":"number","nativeSrc":"270:4:53","nodeType":"YulLiteral","src":"270:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:53","nodeType":"YulIdentifier","src":"261:3:53"},"nativeSrc":"261:14:53","nodeType":"YulFunctionCall","src":"261:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:53","nodeType":"YulIdentifier","src":"246:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:53","nodeType":"YulTypedName","src":"180:3:53","type":""},{"name":"length","nativeSrc":"185:6:53","nodeType":"YulTypedName","src":"185:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:53","nodeType":"YulTypedName","src":"196:11:53","type":""}],"src":"112:169:53"},{"body":{"nativeSrc":"349:77:53","nodeType":"YulBlock","src":"349:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:53","nodeType":"YulIdentifier","src":"366:3:53"},{"name":"src","nativeSrc":"371:3:53","nodeType":"YulIdentifier","src":"371:3:53"},{"name":"length","nativeSrc":"376:6:53","nodeType":"YulIdentifier","src":"376:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:53","nodeType":"YulIdentifier","src":"360:5:53"},"nativeSrc":"360:23:53","nodeType":"YulFunctionCall","src":"360:23:53"},"nativeSrc":"360:23:53","nodeType":"YulExpressionStatement","src":"360:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:53","nodeType":"YulIdentifier","src":"403:3:53"},{"name":"length","nativeSrc":"408:6:53","nodeType":"YulIdentifier","src":"408:6:53"}],"functionName":{"name":"add","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:16:53","nodeType":"YulFunctionCall","src":"399:16:53"},{"kind":"number","nativeSrc":"417:1:53","nodeType":"YulLiteral","src":"417:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:53","nodeType":"YulIdentifier","src":"392:6:53"},"nativeSrc":"392:27:53","nodeType":"YulFunctionCall","src":"392:27:53"},"nativeSrc":"392:27:53","nodeType":"YulExpressionStatement","src":"392:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:53","nodeType":"YulTypedName","src":"331:3:53","type":""},{"name":"dst","nativeSrc":"336:3:53","nodeType":"YulTypedName","src":"336:3:53","type":""},{"name":"length","nativeSrc":"341:6:53","nodeType":"YulTypedName","src":"341:6:53","type":""}],"src":"287:139:53"},{"body":{"nativeSrc":"480:54:53","nodeType":"YulBlock","src":"480:54:53","statements":[{"nativeSrc":"490:38:53","nodeType":"YulAssignment","src":"490:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:53","nodeType":"YulIdentifier","src":"508:5:53"},{"kind":"number","nativeSrc":"515:2:53","nodeType":"YulLiteral","src":"515:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:53","nodeType":"YulIdentifier","src":"504:3:53"},"nativeSrc":"504:14:53","nodeType":"YulFunctionCall","src":"504:14:53"},{"arguments":[{"kind":"number","nativeSrc":"524:2:53","nodeType":"YulLiteral","src":"524:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:53","nodeType":"YulIdentifier","src":"520:3:53"},"nativeSrc":"520:7:53","nodeType":"YulFunctionCall","src":"520:7:53"}],"functionName":{"name":"and","nativeSrc":"500:3:53","nodeType":"YulIdentifier","src":"500:3:53"},"nativeSrc":"500:28:53","nodeType":"YulFunctionCall","src":"500:28:53"},"variableNames":[{"name":"result","nativeSrc":"490:6:53","nodeType":"YulIdentifier","src":"490:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:53","nodeType":"YulTypedName","src":"463:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:53","nodeType":"YulTypedName","src":"473:6:53","type":""}],"src":"432:102:53"},{"body":{"nativeSrc":"632:285:53","nodeType":"YulBlock","src":"632:285:53","statements":[{"nativeSrc":"642:53:53","nodeType":"YulVariableDeclaration","src":"642:53:53","value":{"arguments":[{"name":"value","nativeSrc":"689:5:53","nodeType":"YulIdentifier","src":"689:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:53","nodeType":"YulIdentifier","src":"656:32:53"},"nativeSrc":"656:39:53","nodeType":"YulFunctionCall","src":"656:39:53"},"variables":[{"name":"length","nativeSrc":"646:6:53","nodeType":"YulTypedName","src":"646:6:53","type":""}]},{"nativeSrc":"704:78:53","nodeType":"YulAssignment","src":"704:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:53","nodeType":"YulIdentifier","src":"770:3:53"},{"name":"length","nativeSrc":"775:6:53","nodeType":"YulIdentifier","src":"775:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:53","nodeType":"YulIdentifier","src":"711:58:53"},"nativeSrc":"711:71:53","nodeType":"YulFunctionCall","src":"711:71:53"},"variableNames":[{"name":"pos","nativeSrc":"704:3:53","nodeType":"YulIdentifier","src":"704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:53","nodeType":"YulIdentifier","src":"830:5:53"},{"kind":"number","nativeSrc":"837:4:53","nodeType":"YulLiteral","src":"837:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:53","nodeType":"YulIdentifier","src":"826:3:53"},"nativeSrc":"826:16:53","nodeType":"YulFunctionCall","src":"826:16:53"},{"name":"pos","nativeSrc":"844:3:53","nodeType":"YulIdentifier","src":"844:3:53"},{"name":"length","nativeSrc":"849:6:53","nodeType":"YulIdentifier","src":"849:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:53","nodeType":"YulIdentifier","src":"791:34:53"},"nativeSrc":"791:65:53","nodeType":"YulFunctionCall","src":"791:65:53"},"nativeSrc":"791:65:53","nodeType":"YulExpressionStatement","src":"791:65:53"},{"nativeSrc":"865:46:53","nodeType":"YulAssignment","src":"865:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:53","nodeType":"YulIdentifier","src":"876:3:53"},{"arguments":[{"name":"length","nativeSrc":"903:6:53","nodeType":"YulIdentifier","src":"903:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:53","nodeType":"YulIdentifier","src":"881:21:53"},"nativeSrc":"881:29:53","nodeType":"YulFunctionCall","src":"881:29:53"}],"functionName":{"name":"add","nativeSrc":"872:3:53","nodeType":"YulIdentifier","src":"872:3:53"},"nativeSrc":"872:39:53","nodeType":"YulFunctionCall","src":"872:39:53"},"variableNames":[{"name":"end","nativeSrc":"865:3:53","nodeType":"YulIdentifier","src":"865:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:53","nodeType":"YulTypedName","src":"613:5:53","type":""},{"name":"pos","nativeSrc":"620:3:53","nodeType":"YulTypedName","src":"620:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:53","nodeType":"YulTypedName","src":"628:3:53","type":""}],"src":"540:377:53"},{"body":{"nativeSrc":"1041:195:53","nodeType":"YulBlock","src":"1041:195:53","statements":[{"nativeSrc":"1051:26:53","nodeType":"YulAssignment","src":"1051:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:53","nodeType":"YulIdentifier","src":"1063:9:53"},{"kind":"number","nativeSrc":"1074:2:53","nodeType":"YulLiteral","src":"1074:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:53","nodeType":"YulIdentifier","src":"1059:3:53"},"nativeSrc":"1059:18:53","nodeType":"YulFunctionCall","src":"1059:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:53","nodeType":"YulIdentifier","src":"1051:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:53","nodeType":"YulIdentifier","src":"1098:9:53"},{"kind":"number","nativeSrc":"1109:1:53","nodeType":"YulLiteral","src":"1109:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:53","nodeType":"YulIdentifier","src":"1094:3:53"},"nativeSrc":"1094:17:53","nodeType":"YulFunctionCall","src":"1094:17:53"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:53","nodeType":"YulIdentifier","src":"1117:4:53"},{"name":"headStart","nativeSrc":"1123:9:53","nodeType":"YulIdentifier","src":"1123:9:53"}],"functionName":{"name":"sub","nativeSrc":"1113:3:53","nodeType":"YulIdentifier","src":"1113:3:53"},"nativeSrc":"1113:20:53","nodeType":"YulFunctionCall","src":"1113:20:53"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:53","nodeType":"YulIdentifier","src":"1087:6:53"},"nativeSrc":"1087:47:53","nodeType":"YulFunctionCall","src":"1087:47:53"},"nativeSrc":"1087:47:53","nodeType":"YulExpressionStatement","src":"1087:47:53"},{"nativeSrc":"1143:86:53","nodeType":"YulAssignment","src":"1143:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:53","nodeType":"YulIdentifier","src":"1215:6:53"},{"name":"tail","nativeSrc":"1224:4:53","nodeType":"YulIdentifier","src":"1224:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:53","nodeType":"YulIdentifier","src":"1151:63:53"},"nativeSrc":"1151:78:53","nodeType":"YulFunctionCall","src":"1151:78:53"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:53","nodeType":"YulIdentifier","src":"1143:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:53","nodeType":"YulTypedName","src":"1013:9:53","type":""},{"name":"value0","nativeSrc":"1025:6:53","nodeType":"YulTypedName","src":"1025:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:53","nodeType":"YulTypedName","src":"1036:4:53","type":""}],"src":"923:313:53"},{"body":{"nativeSrc":"1282:35:53","nodeType":"YulBlock","src":"1282:35:53","statements":[{"nativeSrc":"1292:19:53","nodeType":"YulAssignment","src":"1292:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:53","nodeType":"YulLiteral","src":"1308:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:53","nodeType":"YulIdentifier","src":"1302:5:53"},"nativeSrc":"1302:9:53","nodeType":"YulFunctionCall","src":"1302:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:53","nodeType":"YulIdentifier","src":"1292:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:53","nodeType":"YulTypedName","src":"1275:6:53","type":""}],"src":"1242:75:53"},{"body":{"nativeSrc":"1412:28:53","nodeType":"YulBlock","src":"1412:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:53","nodeType":"YulLiteral","src":"1429:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:53","nodeType":"YulLiteral","src":"1432:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:53","nodeType":"YulIdentifier","src":"1422:6:53"},"nativeSrc":"1422:12:53","nodeType":"YulFunctionCall","src":"1422:12:53"},"nativeSrc":"1422:12:53","nodeType":"YulExpressionStatement","src":"1422:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:53","nodeType":"YulFunctionDefinition","src":"1323:117:53"},{"body":{"nativeSrc":"1535:28:53","nodeType":"YulBlock","src":"1535:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:53","nodeType":"YulLiteral","src":"1552:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:53","nodeType":"YulLiteral","src":"1555:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:53","nodeType":"YulIdentifier","src":"1545:6:53"},"nativeSrc":"1545:12:53","nodeType":"YulFunctionCall","src":"1545:12:53"},"nativeSrc":"1545:12:53","nodeType":"YulExpressionStatement","src":"1545:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:53","nodeType":"YulFunctionDefinition","src":"1446:117:53"},{"body":{"nativeSrc":"1658:28:53","nodeType":"YulBlock","src":"1658:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1675:1:53","nodeType":"YulLiteral","src":"1675:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1678:1:53","nodeType":"YulLiteral","src":"1678:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1668:6:53","nodeType":"YulIdentifier","src":"1668:6:53"},"nativeSrc":"1668:12:53","nodeType":"YulFunctionCall","src":"1668:12:53"},"nativeSrc":"1668:12:53","nodeType":"YulExpressionStatement","src":"1668:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1569:117:53","nodeType":"YulFunctionDefinition","src":"1569:117:53"},{"body":{"nativeSrc":"1781:28:53","nodeType":"YulBlock","src":"1781:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:53","nodeType":"YulLiteral","src":"1798:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1801:1:53","nodeType":"YulLiteral","src":"1801:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1791:6:53","nodeType":"YulIdentifier","src":"1791:6:53"},"nativeSrc":"1791:12:53","nodeType":"YulFunctionCall","src":"1791:12:53"},"nativeSrc":"1791:12:53","nodeType":"YulExpressionStatement","src":"1791:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1692:117:53","nodeType":"YulFunctionDefinition","src":"1692:117:53"},{"body":{"nativeSrc":"1843:152:53","nodeType":"YulBlock","src":"1843:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1860:1:53","nodeType":"YulLiteral","src":"1860:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1863:77:53","nodeType":"YulLiteral","src":"1863:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1853:6:53","nodeType":"YulIdentifier","src":"1853:6:53"},"nativeSrc":"1853:88:53","nodeType":"YulFunctionCall","src":"1853:88:53"},"nativeSrc":"1853:88:53","nodeType":"YulExpressionStatement","src":"1853:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1957:1:53","nodeType":"YulLiteral","src":"1957:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"1960:4:53","nodeType":"YulLiteral","src":"1960:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1950:6:53","nodeType":"YulIdentifier","src":"1950:6:53"},"nativeSrc":"1950:15:53","nodeType":"YulFunctionCall","src":"1950:15:53"},"nativeSrc":"1950:15:53","nodeType":"YulExpressionStatement","src":"1950:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1981:1:53","nodeType":"YulLiteral","src":"1981:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1984:4:53","nodeType":"YulLiteral","src":"1984:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1974:6:53","nodeType":"YulIdentifier","src":"1974:6:53"},"nativeSrc":"1974:15:53","nodeType":"YulFunctionCall","src":"1974:15:53"},"nativeSrc":"1974:15:53","nodeType":"YulExpressionStatement","src":"1974:15:53"}]},"name":"panic_error_0x41","nativeSrc":"1815:180:53","nodeType":"YulFunctionDefinition","src":"1815:180:53"},{"body":{"nativeSrc":"2044:238:53","nodeType":"YulBlock","src":"2044:238:53","statements":[{"nativeSrc":"2054:58:53","nodeType":"YulVariableDeclaration","src":"2054:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"2076:6:53","nodeType":"YulIdentifier","src":"2076:6:53"},{"arguments":[{"name":"size","nativeSrc":"2106:4:53","nodeType":"YulIdentifier","src":"2106:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2084:21:53","nodeType":"YulIdentifier","src":"2084:21:53"},"nativeSrc":"2084:27:53","nodeType":"YulFunctionCall","src":"2084:27:53"}],"functionName":{"name":"add","nativeSrc":"2072:3:53","nodeType":"YulIdentifier","src":"2072:3:53"},"nativeSrc":"2072:40:53","nodeType":"YulFunctionCall","src":"2072:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"2058:10:53","nodeType":"YulTypedName","src":"2058:10:53","type":""}]},{"body":{"nativeSrc":"2223:22:53","nodeType":"YulBlock","src":"2223:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2225:16:53","nodeType":"YulIdentifier","src":"2225:16:53"},"nativeSrc":"2225:18:53","nodeType":"YulFunctionCall","src":"2225:18:53"},"nativeSrc":"2225:18:53","nodeType":"YulExpressionStatement","src":"2225:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2166:10:53","nodeType":"YulIdentifier","src":"2166:10:53"},{"kind":"number","nativeSrc":"2178:18:53","nodeType":"YulLiteral","src":"2178:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2163:2:53","nodeType":"YulIdentifier","src":"2163:2:53"},"nativeSrc":"2163:34:53","nodeType":"YulFunctionCall","src":"2163:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2202:10:53","nodeType":"YulIdentifier","src":"2202:10:53"},{"name":"memPtr","nativeSrc":"2214:6:53","nodeType":"YulIdentifier","src":"2214:6:53"}],"functionName":{"name":"lt","nativeSrc":"2199:2:53","nodeType":"YulIdentifier","src":"2199:2:53"},"nativeSrc":"2199:22:53","nodeType":"YulFunctionCall","src":"2199:22:53"}],"functionName":{"name":"or","nativeSrc":"2160:2:53","nodeType":"YulIdentifier","src":"2160:2:53"},"nativeSrc":"2160:62:53","nodeType":"YulFunctionCall","src":"2160:62:53"},"nativeSrc":"2157:88:53","nodeType":"YulIf","src":"2157:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2261:2:53","nodeType":"YulLiteral","src":"2261:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2265:10:53","nodeType":"YulIdentifier","src":"2265:10:53"}],"functionName":{"name":"mstore","nativeSrc":"2254:6:53","nodeType":"YulIdentifier","src":"2254:6:53"},"nativeSrc":"2254:22:53","nodeType":"YulFunctionCall","src":"2254:22:53"},"nativeSrc":"2254:22:53","nodeType":"YulExpressionStatement","src":"2254:22:53"}]},"name":"finalize_allocation","nativeSrc":"2001:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2030:6:53","nodeType":"YulTypedName","src":"2030:6:53","type":""},{"name":"size","nativeSrc":"2038:4:53","nodeType":"YulTypedName","src":"2038:4:53","type":""}],"src":"2001:281:53"},{"body":{"nativeSrc":"2329:88:53","nodeType":"YulBlock","src":"2329:88:53","statements":[{"nativeSrc":"2339:30:53","nodeType":"YulAssignment","src":"2339:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2349:18:53","nodeType":"YulIdentifier","src":"2349:18:53"},"nativeSrc":"2349:20:53","nodeType":"YulFunctionCall","src":"2349:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"2339:6:53","nodeType":"YulIdentifier","src":"2339:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2398:6:53","nodeType":"YulIdentifier","src":"2398:6:53"},{"name":"size","nativeSrc":"2406:4:53","nodeType":"YulIdentifier","src":"2406:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2378:19:53","nodeType":"YulIdentifier","src":"2378:19:53"},"nativeSrc":"2378:33:53","nodeType":"YulFunctionCall","src":"2378:33:53"},"nativeSrc":"2378:33:53","nodeType":"YulExpressionStatement","src":"2378:33:53"}]},"name":"allocate_memory","nativeSrc":"2288:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2313:4:53","nodeType":"YulTypedName","src":"2313:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2322:6:53","nodeType":"YulTypedName","src":"2322:6:53","type":""}],"src":"2288:129:53"},{"body":{"nativeSrc":"2490:241:53","nodeType":"YulBlock","src":"2490:241:53","statements":[{"body":{"nativeSrc":"2595:22:53","nodeType":"YulBlock","src":"2595:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2597:16:53","nodeType":"YulIdentifier","src":"2597:16:53"},"nativeSrc":"2597:18:53","nodeType":"YulFunctionCall","src":"2597:18:53"},"nativeSrc":"2597:18:53","nodeType":"YulExpressionStatement","src":"2597:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2567:6:53","nodeType":"YulIdentifier","src":"2567:6:53"},{"kind":"number","nativeSrc":"2575:18:53","nodeType":"YulLiteral","src":"2575:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2564:2:53","nodeType":"YulIdentifier","src":"2564:2:53"},"nativeSrc":"2564:30:53","nodeType":"YulFunctionCall","src":"2564:30:53"},"nativeSrc":"2561:56:53","nodeType":"YulIf","src":"2561:56:53"},{"nativeSrc":"2627:37:53","nodeType":"YulAssignment","src":"2627:37:53","value":{"arguments":[{"name":"length","nativeSrc":"2657:6:53","nodeType":"YulIdentifier","src":"2657:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2635:21:53","nodeType":"YulIdentifier","src":"2635:21:53"},"nativeSrc":"2635:29:53","nodeType":"YulFunctionCall","src":"2635:29:53"},"variableNames":[{"name":"size","nativeSrc":"2627:4:53","nodeType":"YulIdentifier","src":"2627:4:53"}]},{"nativeSrc":"2701:23:53","nodeType":"YulAssignment","src":"2701:23:53","value":{"arguments":[{"name":"size","nativeSrc":"2713:4:53","nodeType":"YulIdentifier","src":"2713:4:53"},{"kind":"number","nativeSrc":"2719:4:53","nodeType":"YulLiteral","src":"2719:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2709:3:53","nodeType":"YulIdentifier","src":"2709:3:53"},"nativeSrc":"2709:15:53","nodeType":"YulFunctionCall","src":"2709:15:53"},"variableNames":[{"name":"size","nativeSrc":"2701:4:53","nodeType":"YulIdentifier","src":"2701:4:53"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"2423:308:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2474:6:53","nodeType":"YulTypedName","src":"2474:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2485:4:53","nodeType":"YulTypedName","src":"2485:4:53","type":""}],"src":"2423:308:53"},{"body":{"nativeSrc":"2801:84:53","nodeType":"YulBlock","src":"2801:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2825:3:53","nodeType":"YulIdentifier","src":"2825:3:53"},{"name":"src","nativeSrc":"2830:3:53","nodeType":"YulIdentifier","src":"2830:3:53"},{"name":"length","nativeSrc":"2835:6:53","nodeType":"YulIdentifier","src":"2835:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"2812:12:53","nodeType":"YulIdentifier","src":"2812:12:53"},"nativeSrc":"2812:30:53","nodeType":"YulFunctionCall","src":"2812:30:53"},"nativeSrc":"2812:30:53","nodeType":"YulExpressionStatement","src":"2812:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2862:3:53","nodeType":"YulIdentifier","src":"2862:3:53"},{"name":"length","nativeSrc":"2867:6:53","nodeType":"YulIdentifier","src":"2867:6:53"}],"functionName":{"name":"add","nativeSrc":"2858:3:53","nodeType":"YulIdentifier","src":"2858:3:53"},"nativeSrc":"2858:16:53","nodeType":"YulFunctionCall","src":"2858:16:53"},{"kind":"number","nativeSrc":"2876:1:53","nodeType":"YulLiteral","src":"2876:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2851:6:53","nodeType":"YulIdentifier","src":"2851:6:53"},"nativeSrc":"2851:27:53","nodeType":"YulFunctionCall","src":"2851:27:53"},"nativeSrc":"2851:27:53","nodeType":"YulExpressionStatement","src":"2851:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2737:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2783:3:53","nodeType":"YulTypedName","src":"2783:3:53","type":""},{"name":"dst","nativeSrc":"2788:3:53","nodeType":"YulTypedName","src":"2788:3:53","type":""},{"name":"length","nativeSrc":"2793:6:53","nodeType":"YulTypedName","src":"2793:6:53","type":""}],"src":"2737:148:53"},{"body":{"nativeSrc":"2975:341:53","nodeType":"YulBlock","src":"2975:341:53","statements":[{"nativeSrc":"2985:75:53","nodeType":"YulAssignment","src":"2985:75:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3052:6:53","nodeType":"YulIdentifier","src":"3052:6:53"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"3010:41:53","nodeType":"YulIdentifier","src":"3010:41:53"},"nativeSrc":"3010:49:53","nodeType":"YulFunctionCall","src":"3010:49:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"2994:15:53","nodeType":"YulIdentifier","src":"2994:15:53"},"nativeSrc":"2994:66:53","nodeType":"YulFunctionCall","src":"2994:66:53"},"variableNames":[{"name":"array","nativeSrc":"2985:5:53","nodeType":"YulIdentifier","src":"2985:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"},{"name":"length","nativeSrc":"3083:6:53","nodeType":"YulIdentifier","src":"3083:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3069:6:53","nodeType":"YulIdentifier","src":"3069:6:53"},"nativeSrc":"3069:21:53","nodeType":"YulFunctionCall","src":"3069:21:53"},"nativeSrc":"3069:21:53","nodeType":"YulExpressionStatement","src":"3069:21:53"},{"nativeSrc":"3099:27:53","nodeType":"YulVariableDeclaration","src":"3099:27:53","value":{"arguments":[{"name":"array","nativeSrc":"3114:5:53","nodeType":"YulIdentifier","src":"3114:5:53"},{"kind":"number","nativeSrc":"3121:4:53","nodeType":"YulLiteral","src":"3121:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3110:3:53","nodeType":"YulIdentifier","src":"3110:3:53"},"nativeSrc":"3110:16:53","nodeType":"YulFunctionCall","src":"3110:16:53"},"variables":[{"name":"dst","nativeSrc":"3103:3:53","nodeType":"YulTypedName","src":"3103:3:53","type":""}]},{"body":{"nativeSrc":"3164:83:53","nodeType":"YulBlock","src":"3164:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3166:77:53","nodeType":"YulIdentifier","src":"3166:77:53"},"nativeSrc":"3166:79:53","nodeType":"YulFunctionCall","src":"3166:79:53"},"nativeSrc":"3166:79:53","nodeType":"YulExpressionStatement","src":"3166:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3145:3:53","nodeType":"YulIdentifier","src":"3145:3:53"},{"name":"length","nativeSrc":"3150:6:53","nodeType":"YulIdentifier","src":"3150:6:53"}],"functionName":{"name":"add","nativeSrc":"3141:3:53","nodeType":"YulIdentifier","src":"3141:3:53"},"nativeSrc":"3141:16:53","nodeType":"YulFunctionCall","src":"3141:16:53"},{"name":"end","nativeSrc":"3159:3:53","nodeType":"YulIdentifier","src":"3159:3:53"}],"functionName":{"name":"gt","nativeSrc":"3138:2:53","nodeType":"YulIdentifier","src":"3138:2:53"},"nativeSrc":"3138:25:53","nodeType":"YulFunctionCall","src":"3138:25:53"},"nativeSrc":"3135:112:53","nodeType":"YulIf","src":"3135:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3293:3:53","nodeType":"YulIdentifier","src":"3293:3:53"},{"name":"dst","nativeSrc":"3298:3:53","nodeType":"YulIdentifier","src":"3298:3:53"},{"name":"length","nativeSrc":"3303:6:53","nodeType":"YulIdentifier","src":"3303:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3256:36:53","nodeType":"YulIdentifier","src":"3256:36:53"},"nativeSrc":"3256:54:53","nodeType":"YulFunctionCall","src":"3256:54:53"},"nativeSrc":"3256:54:53","nodeType":"YulExpressionStatement","src":"3256:54:53"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"2891:425:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2948:3:53","nodeType":"YulTypedName","src":"2948:3:53","type":""},{"name":"length","nativeSrc":"2953:6:53","nodeType":"YulTypedName","src":"2953:6:53","type":""},{"name":"end","nativeSrc":"2961:3:53","nodeType":"YulTypedName","src":"2961:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2969:5:53","nodeType":"YulTypedName","src":"2969:5:53","type":""}],"src":"2891:425:53"},{"body":{"nativeSrc":"3398:278:53","nodeType":"YulBlock","src":"3398:278:53","statements":[{"body":{"nativeSrc":"3447:83:53","nodeType":"YulBlock","src":"3447:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3449:77:53","nodeType":"YulIdentifier","src":"3449:77:53"},"nativeSrc":"3449:79:53","nodeType":"YulFunctionCall","src":"3449:79:53"},"nativeSrc":"3449:79:53","nodeType":"YulExpressionStatement","src":"3449:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3426:6:53","nodeType":"YulIdentifier","src":"3426:6:53"},{"kind":"number","nativeSrc":"3434:4:53","nodeType":"YulLiteral","src":"3434:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3422:3:53","nodeType":"YulIdentifier","src":"3422:3:53"},"nativeSrc":"3422:17:53","nodeType":"YulFunctionCall","src":"3422:17:53"},{"name":"end","nativeSrc":"3441:3:53","nodeType":"YulIdentifier","src":"3441:3:53"}],"functionName":{"name":"slt","nativeSrc":"3418:3:53","nodeType":"YulIdentifier","src":"3418:3:53"},"nativeSrc":"3418:27:53","nodeType":"YulFunctionCall","src":"3418:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3411:6:53","nodeType":"YulIdentifier","src":"3411:6:53"},"nativeSrc":"3411:35:53","nodeType":"YulFunctionCall","src":"3411:35:53"},"nativeSrc":"3408:122:53","nodeType":"YulIf","src":"3408:122:53"},{"nativeSrc":"3539:34:53","nodeType":"YulVariableDeclaration","src":"3539:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"3566:6:53","nodeType":"YulIdentifier","src":"3566:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3553:12:53","nodeType":"YulIdentifier","src":"3553:12:53"},"nativeSrc":"3553:20:53","nodeType":"YulFunctionCall","src":"3553:20:53"},"variables":[{"name":"length","nativeSrc":"3543:6:53","nodeType":"YulTypedName","src":"3543:6:53","type":""}]},{"nativeSrc":"3582:88:53","nodeType":"YulAssignment","src":"3582:88:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3643:6:53","nodeType":"YulIdentifier","src":"3643:6:53"},{"kind":"number","nativeSrc":"3651:4:53","nodeType":"YulLiteral","src":"3651:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3639:3:53","nodeType":"YulIdentifier","src":"3639:3:53"},"nativeSrc":"3639:17:53","nodeType":"YulFunctionCall","src":"3639:17:53"},{"name":"length","nativeSrc":"3658:6:53","nodeType":"YulIdentifier","src":"3658:6:53"},{"name":"end","nativeSrc":"3666:3:53","nodeType":"YulIdentifier","src":"3666:3:53"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"3591:47:53","nodeType":"YulIdentifier","src":"3591:47:53"},"nativeSrc":"3591:79:53","nodeType":"YulFunctionCall","src":"3591:79:53"},"variableNames":[{"name":"array","nativeSrc":"3582:5:53","nodeType":"YulIdentifier","src":"3582:5:53"}]}]},"name":"abi_decode_t_string_memory_ptr","nativeSrc":"3336:340:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3376:6:53","nodeType":"YulTypedName","src":"3376:6:53","type":""},{"name":"end","nativeSrc":"3384:3:53","nodeType":"YulTypedName","src":"3384:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3392:5:53","nodeType":"YulTypedName","src":"3392:5:53","type":""}],"src":"3336:340:53"},{"body":{"nativeSrc":"3727:81:53","nodeType":"YulBlock","src":"3727:81:53","statements":[{"nativeSrc":"3737:65:53","nodeType":"YulAssignment","src":"3737:65:53","value":{"arguments":[{"name":"value","nativeSrc":"3752:5:53","nodeType":"YulIdentifier","src":"3752:5:53"},{"kind":"number","nativeSrc":"3759:42:53","nodeType":"YulLiteral","src":"3759:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},"nativeSrc":"3748:54:53","nodeType":"YulFunctionCall","src":"3748:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3737:7:53","nodeType":"YulIdentifier","src":"3737:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3682:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3709:5:53","nodeType":"YulTypedName","src":"3709:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3719:7:53","nodeType":"YulTypedName","src":"3719:7:53","type":""}],"src":"3682:126:53"},{"body":{"nativeSrc":"3859:51:53","nodeType":"YulBlock","src":"3859:51:53","statements":[{"nativeSrc":"3869:35:53","nodeType":"YulAssignment","src":"3869:35:53","value":{"arguments":[{"name":"value","nativeSrc":"3898:5:53","nodeType":"YulIdentifier","src":"3898:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3880:17:53","nodeType":"YulIdentifier","src":"3880:17:53"},"nativeSrc":"3880:24:53","nodeType":"YulFunctionCall","src":"3880:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3869:7:53","nodeType":"YulIdentifier","src":"3869:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"3814:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3841:5:53","nodeType":"YulTypedName","src":"3841:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3851:7:53","nodeType":"YulTypedName","src":"3851:7:53","type":""}],"src":"3814:96:53"},{"body":{"nativeSrc":"3959:79:53","nodeType":"YulBlock","src":"3959:79:53","statements":[{"body":{"nativeSrc":"4016:16:53","nodeType":"YulBlock","src":"4016:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4025:1:53","nodeType":"YulLiteral","src":"4025:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4028:1:53","nodeType":"YulLiteral","src":"4028:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4018:6:53","nodeType":"YulIdentifier","src":"4018:6:53"},"nativeSrc":"4018:12:53","nodeType":"YulFunctionCall","src":"4018:12:53"},"nativeSrc":"4018:12:53","nodeType":"YulExpressionStatement","src":"4018:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3982:5:53","nodeType":"YulIdentifier","src":"3982:5:53"},{"arguments":[{"name":"value","nativeSrc":"4007:5:53","nodeType":"YulIdentifier","src":"4007:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3989:17:53","nodeType":"YulIdentifier","src":"3989:17:53"},"nativeSrc":"3989:24:53","nodeType":"YulFunctionCall","src":"3989:24:53"}],"functionName":{"name":"eq","nativeSrc":"3979:2:53","nodeType":"YulIdentifier","src":"3979:2:53"},"nativeSrc":"3979:35:53","nodeType":"YulFunctionCall","src":"3979:35:53"}],"functionName":{"name":"iszero","nativeSrc":"3972:6:53","nodeType":"YulIdentifier","src":"3972:6:53"},"nativeSrc":"3972:43:53","nodeType":"YulFunctionCall","src":"3972:43:53"},"nativeSrc":"3969:63:53","nodeType":"YulIf","src":"3969:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"3916:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3952:5:53","nodeType":"YulTypedName","src":"3952:5:53","type":""}],"src":"3916:122:53"},{"body":{"nativeSrc":"4096:87:53","nodeType":"YulBlock","src":"4096:87:53","statements":[{"nativeSrc":"4106:29:53","nodeType":"YulAssignment","src":"4106:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4128:6:53","nodeType":"YulIdentifier","src":"4128:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4115:12:53","nodeType":"YulIdentifier","src":"4115:12:53"},"nativeSrc":"4115:20:53","nodeType":"YulFunctionCall","src":"4115:20:53"},"variableNames":[{"name":"value","nativeSrc":"4106:5:53","nodeType":"YulIdentifier","src":"4106:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4171:5:53","nodeType":"YulIdentifier","src":"4171:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4144:26:53","nodeType":"YulIdentifier","src":"4144:26:53"},"nativeSrc":"4144:33:53","nodeType":"YulFunctionCall","src":"4144:33:53"},"nativeSrc":"4144:33:53","nodeType":"YulExpressionStatement","src":"4144:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"4044:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4074:6:53","nodeType":"YulTypedName","src":"4074:6:53","type":""},{"name":"end","nativeSrc":"4082:3:53","nodeType":"YulTypedName","src":"4082:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4090:5:53","nodeType":"YulTypedName","src":"4090:5:53","type":""}],"src":"4044:139:53"},{"body":{"nativeSrc":"4309:859:53","nodeType":"YulBlock","src":"4309:859:53","statements":[{"body":{"nativeSrc":"4355:83:53","nodeType":"YulBlock","src":"4355:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4357:77:53","nodeType":"YulIdentifier","src":"4357:77:53"},"nativeSrc":"4357:79:53","nodeType":"YulFunctionCall","src":"4357:79:53"},"nativeSrc":"4357:79:53","nodeType":"YulExpressionStatement","src":"4357:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4330:7:53","nodeType":"YulIdentifier","src":"4330:7:53"},{"name":"headStart","nativeSrc":"4339:9:53","nodeType":"YulIdentifier","src":"4339:9:53"}],"functionName":{"name":"sub","nativeSrc":"4326:3:53","nodeType":"YulIdentifier","src":"4326:3:53"},"nativeSrc":"4326:23:53","nodeType":"YulFunctionCall","src":"4326:23:53"},{"kind":"number","nativeSrc":"4351:2:53","nodeType":"YulLiteral","src":"4351:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4322:3:53","nodeType":"YulIdentifier","src":"4322:3:53"},"nativeSrc":"4322:32:53","nodeType":"YulFunctionCall","src":"4322:32:53"},"nativeSrc":"4319:119:53","nodeType":"YulIf","src":"4319:119:53"},{"nativeSrc":"4448:287:53","nodeType":"YulBlock","src":"4448:287:53","statements":[{"nativeSrc":"4463:45:53","nodeType":"YulVariableDeclaration","src":"4463:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4494:9:53","nodeType":"YulIdentifier","src":"4494:9:53"},{"kind":"number","nativeSrc":"4505:1:53","nodeType":"YulLiteral","src":"4505:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4490:3:53","nodeType":"YulIdentifier","src":"4490:3:53"},"nativeSrc":"4490:17:53","nodeType":"YulFunctionCall","src":"4490:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4477:12:53","nodeType":"YulIdentifier","src":"4477:12:53"},"nativeSrc":"4477:31:53","nodeType":"YulFunctionCall","src":"4477:31:53"},"variables":[{"name":"offset","nativeSrc":"4467:6:53","nodeType":"YulTypedName","src":"4467:6:53","type":""}]},{"body":{"nativeSrc":"4555:83:53","nodeType":"YulBlock","src":"4555:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4557:77:53","nodeType":"YulIdentifier","src":"4557:77:53"},"nativeSrc":"4557:79:53","nodeType":"YulFunctionCall","src":"4557:79:53"},"nativeSrc":"4557:79:53","nodeType":"YulExpressionStatement","src":"4557:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4527:6:53","nodeType":"YulIdentifier","src":"4527:6:53"},{"kind":"number","nativeSrc":"4535:18:53","nodeType":"YulLiteral","src":"4535:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4524:2:53","nodeType":"YulIdentifier","src":"4524:2:53"},"nativeSrc":"4524:30:53","nodeType":"YulFunctionCall","src":"4524:30:53"},"nativeSrc":"4521:117:53","nodeType":"YulIf","src":"4521:117:53"},{"nativeSrc":"4652:73:53","nodeType":"YulAssignment","src":"4652:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4697:9:53","nodeType":"YulIdentifier","src":"4697:9:53"},{"name":"offset","nativeSrc":"4708:6:53","nodeType":"YulIdentifier","src":"4708:6:53"}],"functionName":{"name":"add","nativeSrc":"4693:3:53","nodeType":"YulIdentifier","src":"4693:3:53"},"nativeSrc":"4693:22:53","nodeType":"YulFunctionCall","src":"4693:22:53"},{"name":"dataEnd","nativeSrc":"4717:7:53","nodeType":"YulIdentifier","src":"4717:7:53"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4662:30:53","nodeType":"YulIdentifier","src":"4662:30:53"},"nativeSrc":"4662:63:53","nodeType":"YulFunctionCall","src":"4662:63:53"},"variableNames":[{"name":"value0","nativeSrc":"4652:6:53","nodeType":"YulIdentifier","src":"4652:6:53"}]}]},{"nativeSrc":"4745:288:53","nodeType":"YulBlock","src":"4745:288:53","statements":[{"nativeSrc":"4760:46:53","nodeType":"YulVariableDeclaration","src":"4760:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4791:9:53","nodeType":"YulIdentifier","src":"4791:9:53"},{"kind":"number","nativeSrc":"4802:2:53","nodeType":"YulLiteral","src":"4802:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4787:3:53","nodeType":"YulIdentifier","src":"4787:3:53"},"nativeSrc":"4787:18:53","nodeType":"YulFunctionCall","src":"4787:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"4774:12:53","nodeType":"YulIdentifier","src":"4774:12:53"},"nativeSrc":"4774:32:53","nodeType":"YulFunctionCall","src":"4774:32:53"},"variables":[{"name":"offset","nativeSrc":"4764:6:53","nodeType":"YulTypedName","src":"4764:6:53","type":""}]},{"body":{"nativeSrc":"4853:83:53","nodeType":"YulBlock","src":"4853:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4855:77:53","nodeType":"YulIdentifier","src":"4855:77:53"},"nativeSrc":"4855:79:53","nodeType":"YulFunctionCall","src":"4855:79:53"},"nativeSrc":"4855:79:53","nodeType":"YulExpressionStatement","src":"4855:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4825:6:53","nodeType":"YulIdentifier","src":"4825:6:53"},{"kind":"number","nativeSrc":"4833:18:53","nodeType":"YulLiteral","src":"4833:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4822:2:53","nodeType":"YulIdentifier","src":"4822:2:53"},"nativeSrc":"4822:30:53","nodeType":"YulFunctionCall","src":"4822:30:53"},"nativeSrc":"4819:117:53","nodeType":"YulIf","src":"4819:117:53"},{"nativeSrc":"4950:73:53","nodeType":"YulAssignment","src":"4950:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4995:9:53","nodeType":"YulIdentifier","src":"4995:9:53"},{"name":"offset","nativeSrc":"5006:6:53","nodeType":"YulIdentifier","src":"5006:6:53"}],"functionName":{"name":"add","nativeSrc":"4991:3:53","nodeType":"YulIdentifier","src":"4991:3:53"},"nativeSrc":"4991:22:53","nodeType":"YulFunctionCall","src":"4991:22:53"},{"name":"dataEnd","nativeSrc":"5015:7:53","nodeType":"YulIdentifier","src":"5015:7:53"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4960:30:53","nodeType":"YulIdentifier","src":"4960:30:53"},"nativeSrc":"4960:63:53","nodeType":"YulFunctionCall","src":"4960:63:53"},"variableNames":[{"name":"value1","nativeSrc":"4950:6:53","nodeType":"YulIdentifier","src":"4950:6:53"}]}]},{"nativeSrc":"5043:118:53","nodeType":"YulBlock","src":"5043:118:53","statements":[{"nativeSrc":"5058:16:53","nodeType":"YulVariableDeclaration","src":"5058:16:53","value":{"kind":"number","nativeSrc":"5072:2:53","nodeType":"YulLiteral","src":"5072:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5062:6:53","nodeType":"YulTypedName","src":"5062:6:53","type":""}]},{"nativeSrc":"5088:63:53","nodeType":"YulAssignment","src":"5088:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5123:9:53","nodeType":"YulIdentifier","src":"5123:9:53"},{"name":"offset","nativeSrc":"5134:6:53","nodeType":"YulIdentifier","src":"5134:6:53"}],"functionName":{"name":"add","nativeSrc":"5119:3:53","nodeType":"YulIdentifier","src":"5119:3:53"},"nativeSrc":"5119:22:53","nodeType":"YulFunctionCall","src":"5119:22:53"},{"name":"dataEnd","nativeSrc":"5143:7:53","nodeType":"YulIdentifier","src":"5143:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5098:20:53","nodeType":"YulIdentifier","src":"5098:20:53"},"nativeSrc":"5098:53:53","nodeType":"YulFunctionCall","src":"5098:53:53"},"variableNames":[{"name":"value2","nativeSrc":"5088:6:53","nodeType":"YulIdentifier","src":"5088:6:53"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address","nativeSrc":"4189:979:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4263:9:53","nodeType":"YulTypedName","src":"4263:9:53","type":""},{"name":"dataEnd","nativeSrc":"4274:7:53","nodeType":"YulTypedName","src":"4274:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4286:6:53","nodeType":"YulTypedName","src":"4286:6:53","type":""},{"name":"value1","nativeSrc":"4294:6:53","nodeType":"YulTypedName","src":"4294:6:53","type":""},{"name":"value2","nativeSrc":"4302:6:53","nodeType":"YulTypedName","src":"4302:6:53","type":""}],"src":"4189:979:53"},{"body":{"nativeSrc":"5219:32:53","nodeType":"YulBlock","src":"5219:32:53","statements":[{"nativeSrc":"5229:16:53","nodeType":"YulAssignment","src":"5229:16:53","value":{"name":"value","nativeSrc":"5240:5:53","nodeType":"YulIdentifier","src":"5240:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5229:7:53","nodeType":"YulIdentifier","src":"5229:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5174:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5201:5:53","nodeType":"YulTypedName","src":"5201:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5211:7:53","nodeType":"YulTypedName","src":"5211:7:53","type":""}],"src":"5174:77:53"},{"body":{"nativeSrc":"5300:79:53","nodeType":"YulBlock","src":"5300:79:53","statements":[{"body":{"nativeSrc":"5357:16:53","nodeType":"YulBlock","src":"5357:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5366:1:53","nodeType":"YulLiteral","src":"5366:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5369:1:53","nodeType":"YulLiteral","src":"5369:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5359:6:53","nodeType":"YulIdentifier","src":"5359:6:53"},"nativeSrc":"5359:12:53","nodeType":"YulFunctionCall","src":"5359:12:53"},"nativeSrc":"5359:12:53","nodeType":"YulExpressionStatement","src":"5359:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5323:5:53","nodeType":"YulIdentifier","src":"5323:5:53"},{"arguments":[{"name":"value","nativeSrc":"5348:5:53","nodeType":"YulIdentifier","src":"5348:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5330:17:53","nodeType":"YulIdentifier","src":"5330:17:53"},"nativeSrc":"5330:24:53","nodeType":"YulFunctionCall","src":"5330:24:53"}],"functionName":{"name":"eq","nativeSrc":"5320:2:53","nodeType":"YulIdentifier","src":"5320:2:53"},"nativeSrc":"5320:35:53","nodeType":"YulFunctionCall","src":"5320:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5313:6:53","nodeType":"YulIdentifier","src":"5313:6:53"},"nativeSrc":"5313:43:53","nodeType":"YulFunctionCall","src":"5313:43:53"},"nativeSrc":"5310:63:53","nodeType":"YulIf","src":"5310:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"5257:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5293:5:53","nodeType":"YulTypedName","src":"5293:5:53","type":""}],"src":"5257:122:53"},{"body":{"nativeSrc":"5437:87:53","nodeType":"YulBlock","src":"5437:87:53","statements":[{"nativeSrc":"5447:29:53","nodeType":"YulAssignment","src":"5447:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5469:6:53","nodeType":"YulIdentifier","src":"5469:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5456:12:53","nodeType":"YulIdentifier","src":"5456:12:53"},"nativeSrc":"5456:20:53","nodeType":"YulFunctionCall","src":"5456:20:53"},"variableNames":[{"name":"value","nativeSrc":"5447:5:53","nodeType":"YulIdentifier","src":"5447:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5512:5:53","nodeType":"YulIdentifier","src":"5512:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"5485:26:53","nodeType":"YulIdentifier","src":"5485:26:53"},"nativeSrc":"5485:33:53","nodeType":"YulFunctionCall","src":"5485:33:53"},"nativeSrc":"5485:33:53","nodeType":"YulExpressionStatement","src":"5485:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"5385:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5415:6:53","nodeType":"YulTypedName","src":"5415:6:53","type":""},{"name":"end","nativeSrc":"5423:3:53","nodeType":"YulTypedName","src":"5423:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5431:5:53","nodeType":"YulTypedName","src":"5431:5:53","type":""}],"src":"5385:139:53"},{"body":{"nativeSrc":"5613:391:53","nodeType":"YulBlock","src":"5613:391:53","statements":[{"body":{"nativeSrc":"5659:83:53","nodeType":"YulBlock","src":"5659:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5661:77:53","nodeType":"YulIdentifier","src":"5661:77:53"},"nativeSrc":"5661:79:53","nodeType":"YulFunctionCall","src":"5661:79:53"},"nativeSrc":"5661:79:53","nodeType":"YulExpressionStatement","src":"5661:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5634:7:53","nodeType":"YulIdentifier","src":"5634:7:53"},{"name":"headStart","nativeSrc":"5643:9:53","nodeType":"YulIdentifier","src":"5643:9:53"}],"functionName":{"name":"sub","nativeSrc":"5630:3:53","nodeType":"YulIdentifier","src":"5630:3:53"},"nativeSrc":"5630:23:53","nodeType":"YulFunctionCall","src":"5630:23:53"},{"kind":"number","nativeSrc":"5655:2:53","nodeType":"YulLiteral","src":"5655:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5626:3:53","nodeType":"YulIdentifier","src":"5626:3:53"},"nativeSrc":"5626:32:53","nodeType":"YulFunctionCall","src":"5626:32:53"},"nativeSrc":"5623:119:53","nodeType":"YulIf","src":"5623:119:53"},{"nativeSrc":"5752:117:53","nodeType":"YulBlock","src":"5752:117:53","statements":[{"nativeSrc":"5767:15:53","nodeType":"YulVariableDeclaration","src":"5767:15:53","value":{"kind":"number","nativeSrc":"5781:1:53","nodeType":"YulLiteral","src":"5781:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5771:6:53","nodeType":"YulTypedName","src":"5771:6:53","type":""}]},{"nativeSrc":"5796:63:53","nodeType":"YulAssignment","src":"5796:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5831:9:53","nodeType":"YulIdentifier","src":"5831:9:53"},{"name":"offset","nativeSrc":"5842:6:53","nodeType":"YulIdentifier","src":"5842:6:53"}],"functionName":{"name":"add","nativeSrc":"5827:3:53","nodeType":"YulIdentifier","src":"5827:3:53"},"nativeSrc":"5827:22:53","nodeType":"YulFunctionCall","src":"5827:22:53"},{"name":"dataEnd","nativeSrc":"5851:7:53","nodeType":"YulIdentifier","src":"5851:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5806:20:53","nodeType":"YulIdentifier","src":"5806:20:53"},"nativeSrc":"5806:53:53","nodeType":"YulFunctionCall","src":"5806:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5796:6:53","nodeType":"YulIdentifier","src":"5796:6:53"}]}]},{"nativeSrc":"5879:118:53","nodeType":"YulBlock","src":"5879:118:53","statements":[{"nativeSrc":"5894:16:53","nodeType":"YulVariableDeclaration","src":"5894:16:53","value":{"kind":"number","nativeSrc":"5908:2:53","nodeType":"YulLiteral","src":"5908:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5898:6:53","nodeType":"YulTypedName","src":"5898:6:53","type":""}]},{"nativeSrc":"5924:63:53","nodeType":"YulAssignment","src":"5924:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5959:9:53","nodeType":"YulIdentifier","src":"5959:9:53"},{"name":"offset","nativeSrc":"5970:6:53","nodeType":"YulIdentifier","src":"5970:6:53"}],"functionName":{"name":"add","nativeSrc":"5955:3:53","nodeType":"YulIdentifier","src":"5955:3:53"},"nativeSrc":"5955:22:53","nodeType":"YulFunctionCall","src":"5955:22:53"},{"name":"dataEnd","nativeSrc":"5979:7:53","nodeType":"YulIdentifier","src":"5979:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5934:20:53","nodeType":"YulIdentifier","src":"5934:20:53"},"nativeSrc":"5934:53:53","nodeType":"YulFunctionCall","src":"5934:53:53"},"variableNames":[{"name":"value1","nativeSrc":"5924:6:53","nodeType":"YulIdentifier","src":"5924:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"5530:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5575:9:53","nodeType":"YulTypedName","src":"5575:9:53","type":""},{"name":"dataEnd","nativeSrc":"5586:7:53","nodeType":"YulTypedName","src":"5586:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5598:6:53","nodeType":"YulTypedName","src":"5598:6:53","type":""},{"name":"value1","nativeSrc":"5606:6:53","nodeType":"YulTypedName","src":"5606:6:53","type":""}],"src":"5530:474:53"},{"body":{"nativeSrc":"6052:48:53","nodeType":"YulBlock","src":"6052:48:53","statements":[{"nativeSrc":"6062:32:53","nodeType":"YulAssignment","src":"6062:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6087:5:53","nodeType":"YulIdentifier","src":"6087:5:53"}],"functionName":{"name":"iszero","nativeSrc":"6080:6:53","nodeType":"YulIdentifier","src":"6080:6:53"},"nativeSrc":"6080:13:53","nodeType":"YulFunctionCall","src":"6080:13:53"}],"functionName":{"name":"iszero","nativeSrc":"6073:6:53","nodeType":"YulIdentifier","src":"6073:6:53"},"nativeSrc":"6073:21:53","nodeType":"YulFunctionCall","src":"6073:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"6062:7:53","nodeType":"YulIdentifier","src":"6062:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"6010:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6034:5:53","nodeType":"YulTypedName","src":"6034:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6044:7:53","nodeType":"YulTypedName","src":"6044:7:53","type":""}],"src":"6010:90:53"},{"body":{"nativeSrc":"6165:50:53","nodeType":"YulBlock","src":"6165:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6182:3:53","nodeType":"YulIdentifier","src":"6182:3:53"},{"arguments":[{"name":"value","nativeSrc":"6202:5:53","nodeType":"YulIdentifier","src":"6202:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6187:14:53","nodeType":"YulIdentifier","src":"6187:14:53"},"nativeSrc":"6187:21:53","nodeType":"YulFunctionCall","src":"6187:21:53"}],"functionName":{"name":"mstore","nativeSrc":"6175:6:53","nodeType":"YulIdentifier","src":"6175:6:53"},"nativeSrc":"6175:34:53","nodeType":"YulFunctionCall","src":"6175:34:53"},"nativeSrc":"6175:34:53","nodeType":"YulExpressionStatement","src":"6175:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"6106:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6153:5:53","nodeType":"YulTypedName","src":"6153:5:53","type":""},{"name":"pos","nativeSrc":"6160:3:53","nodeType":"YulTypedName","src":"6160:3:53","type":""}],"src":"6106:109:53"},{"body":{"nativeSrc":"6313:118:53","nodeType":"YulBlock","src":"6313:118:53","statements":[{"nativeSrc":"6323:26:53","nodeType":"YulAssignment","src":"6323:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6335:9:53","nodeType":"YulIdentifier","src":"6335:9:53"},{"kind":"number","nativeSrc":"6346:2:53","nodeType":"YulLiteral","src":"6346:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6331:3:53","nodeType":"YulIdentifier","src":"6331:3:53"},"nativeSrc":"6331:18:53","nodeType":"YulFunctionCall","src":"6331:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6323:4:53","nodeType":"YulIdentifier","src":"6323:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6397:6:53","nodeType":"YulIdentifier","src":"6397:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6410:9:53","nodeType":"YulIdentifier","src":"6410:9:53"},{"kind":"number","nativeSrc":"6421:1:53","nodeType":"YulLiteral","src":"6421:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6406:3:53","nodeType":"YulIdentifier","src":"6406:3:53"},"nativeSrc":"6406:17:53","nodeType":"YulFunctionCall","src":"6406:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"6359:37:53","nodeType":"YulIdentifier","src":"6359:37:53"},"nativeSrc":"6359:65:53","nodeType":"YulFunctionCall","src":"6359:65:53"},"nativeSrc":"6359:65:53","nodeType":"YulExpressionStatement","src":"6359:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"6221:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6285:9:53","nodeType":"YulTypedName","src":"6285:9:53","type":""},{"name":"value0","nativeSrc":"6297:6:53","nodeType":"YulTypedName","src":"6297:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6308:4:53","nodeType":"YulTypedName","src":"6308:4:53","type":""}],"src":"6221:210:53"},{"body":{"nativeSrc":"6502:53:53","nodeType":"YulBlock","src":"6502:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6519:3:53","nodeType":"YulIdentifier","src":"6519:3:53"},{"arguments":[{"name":"value","nativeSrc":"6542:5:53","nodeType":"YulIdentifier","src":"6542:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6524:17:53","nodeType":"YulIdentifier","src":"6524:17:53"},"nativeSrc":"6524:24:53","nodeType":"YulFunctionCall","src":"6524:24:53"}],"functionName":{"name":"mstore","nativeSrc":"6512:6:53","nodeType":"YulIdentifier","src":"6512:6:53"},"nativeSrc":"6512:37:53","nodeType":"YulFunctionCall","src":"6512:37:53"},"nativeSrc":"6512:37:53","nodeType":"YulExpressionStatement","src":"6512:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6437:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6490:5:53","nodeType":"YulTypedName","src":"6490:5:53","type":""},{"name":"pos","nativeSrc":"6497:3:53","nodeType":"YulTypedName","src":"6497:3:53","type":""}],"src":"6437:118:53"},{"body":{"nativeSrc":"6659:124:53","nodeType":"YulBlock","src":"6659:124:53","statements":[{"nativeSrc":"6669:26:53","nodeType":"YulAssignment","src":"6669:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6681:9:53","nodeType":"YulIdentifier","src":"6681:9:53"},{"kind":"number","nativeSrc":"6692:2:53","nodeType":"YulLiteral","src":"6692:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6677:3:53","nodeType":"YulIdentifier","src":"6677:3:53"},"nativeSrc":"6677:18:53","nodeType":"YulFunctionCall","src":"6677:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6669:4:53","nodeType":"YulIdentifier","src":"6669:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6749:6:53","nodeType":"YulIdentifier","src":"6749:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6762:9:53","nodeType":"YulIdentifier","src":"6762:9:53"},{"kind":"number","nativeSrc":"6773:1:53","nodeType":"YulLiteral","src":"6773:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6758:3:53","nodeType":"YulIdentifier","src":"6758:3:53"},"nativeSrc":"6758:17:53","nodeType":"YulFunctionCall","src":"6758:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6705:43:53","nodeType":"YulIdentifier","src":"6705:43:53"},"nativeSrc":"6705:71:53","nodeType":"YulFunctionCall","src":"6705:71:53"},"nativeSrc":"6705:71:53","nodeType":"YulExpressionStatement","src":"6705:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6561:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6631:9:53","nodeType":"YulTypedName","src":"6631:9:53","type":""},{"name":"value0","nativeSrc":"6643:6:53","nodeType":"YulTypedName","src":"6643:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6654:4:53","nodeType":"YulTypedName","src":"6654:4:53","type":""}],"src":"6561:222:53"},{"body":{"nativeSrc":"6855:263:53","nodeType":"YulBlock","src":"6855:263:53","statements":[{"body":{"nativeSrc":"6901:83:53","nodeType":"YulBlock","src":"6901:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6903:77:53","nodeType":"YulIdentifier","src":"6903:77:53"},"nativeSrc":"6903:79:53","nodeType":"YulFunctionCall","src":"6903:79:53"},"nativeSrc":"6903:79:53","nodeType":"YulExpressionStatement","src":"6903:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6876:7:53","nodeType":"YulIdentifier","src":"6876:7:53"},{"name":"headStart","nativeSrc":"6885:9:53","nodeType":"YulIdentifier","src":"6885:9:53"}],"functionName":{"name":"sub","nativeSrc":"6872:3:53","nodeType":"YulIdentifier","src":"6872:3:53"},"nativeSrc":"6872:23:53","nodeType":"YulFunctionCall","src":"6872:23:53"},{"kind":"number","nativeSrc":"6897:2:53","nodeType":"YulLiteral","src":"6897:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6868:3:53","nodeType":"YulIdentifier","src":"6868:3:53"},"nativeSrc":"6868:32:53","nodeType":"YulFunctionCall","src":"6868:32:53"},"nativeSrc":"6865:119:53","nodeType":"YulIf","src":"6865:119:53"},{"nativeSrc":"6994:117:53","nodeType":"YulBlock","src":"6994:117:53","statements":[{"nativeSrc":"7009:15:53","nodeType":"YulVariableDeclaration","src":"7009:15:53","value":{"kind":"number","nativeSrc":"7023:1:53","nodeType":"YulLiteral","src":"7023:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7013:6:53","nodeType":"YulTypedName","src":"7013:6:53","type":""}]},{"nativeSrc":"7038:63:53","nodeType":"YulAssignment","src":"7038:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7073:9:53","nodeType":"YulIdentifier","src":"7073:9:53"},{"name":"offset","nativeSrc":"7084:6:53","nodeType":"YulIdentifier","src":"7084:6:53"}],"functionName":{"name":"add","nativeSrc":"7069:3:53","nodeType":"YulIdentifier","src":"7069:3:53"},"nativeSrc":"7069:22:53","nodeType":"YulFunctionCall","src":"7069:22:53"},{"name":"dataEnd","nativeSrc":"7093:7:53","nodeType":"YulIdentifier","src":"7093:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7048:20:53","nodeType":"YulIdentifier","src":"7048:20:53"},"nativeSrc":"7048:53:53","nodeType":"YulFunctionCall","src":"7048:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7038:6:53","nodeType":"YulIdentifier","src":"7038:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6789:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6825:9:53","nodeType":"YulTypedName","src":"6825:9:53","type":""},{"name":"dataEnd","nativeSrc":"6836:7:53","nodeType":"YulTypedName","src":"6836:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6848:6:53","nodeType":"YulTypedName","src":"6848:6:53","type":""}],"src":"6789:329:53"},{"body":{"nativeSrc":"7224:519:53","nodeType":"YulBlock","src":"7224:519:53","statements":[{"body":{"nativeSrc":"7270:83:53","nodeType":"YulBlock","src":"7270:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7272:77:53","nodeType":"YulIdentifier","src":"7272:77:53"},"nativeSrc":"7272:79:53","nodeType":"YulFunctionCall","src":"7272:79:53"},"nativeSrc":"7272:79:53","nodeType":"YulExpressionStatement","src":"7272:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7245:7:53","nodeType":"YulIdentifier","src":"7245:7:53"},{"name":"headStart","nativeSrc":"7254:9:53","nodeType":"YulIdentifier","src":"7254:9:53"}],"functionName":{"name":"sub","nativeSrc":"7241:3:53","nodeType":"YulIdentifier","src":"7241:3:53"},"nativeSrc":"7241:23:53","nodeType":"YulFunctionCall","src":"7241:23:53"},{"kind":"number","nativeSrc":"7266:2:53","nodeType":"YulLiteral","src":"7266:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7237:3:53","nodeType":"YulIdentifier","src":"7237:3:53"},"nativeSrc":"7237:32:53","nodeType":"YulFunctionCall","src":"7237:32:53"},"nativeSrc":"7234:119:53","nodeType":"YulIf","src":"7234:119:53"},{"nativeSrc":"7363:117:53","nodeType":"YulBlock","src":"7363:117:53","statements":[{"nativeSrc":"7378:15:53","nodeType":"YulVariableDeclaration","src":"7378:15:53","value":{"kind":"number","nativeSrc":"7392:1:53","nodeType":"YulLiteral","src":"7392:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7382:6:53","nodeType":"YulTypedName","src":"7382:6:53","type":""}]},{"nativeSrc":"7407:63:53","nodeType":"YulAssignment","src":"7407:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7442:9:53","nodeType":"YulIdentifier","src":"7442:9:53"},{"name":"offset","nativeSrc":"7453:6:53","nodeType":"YulIdentifier","src":"7453:6:53"}],"functionName":{"name":"add","nativeSrc":"7438:3:53","nodeType":"YulIdentifier","src":"7438:3:53"},"nativeSrc":"7438:22:53","nodeType":"YulFunctionCall","src":"7438:22:53"},{"name":"dataEnd","nativeSrc":"7462:7:53","nodeType":"YulIdentifier","src":"7462:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7417:20:53","nodeType":"YulIdentifier","src":"7417:20:53"},"nativeSrc":"7417:53:53","nodeType":"YulFunctionCall","src":"7417:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7407:6:53","nodeType":"YulIdentifier","src":"7407:6:53"}]}]},{"nativeSrc":"7490:118:53","nodeType":"YulBlock","src":"7490:118:53","statements":[{"nativeSrc":"7505:16:53","nodeType":"YulVariableDeclaration","src":"7505:16:53","value":{"kind":"number","nativeSrc":"7519:2:53","nodeType":"YulLiteral","src":"7519:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7509:6:53","nodeType":"YulTypedName","src":"7509:6:53","type":""}]},{"nativeSrc":"7535:63:53","nodeType":"YulAssignment","src":"7535:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7570:9:53","nodeType":"YulIdentifier","src":"7570:9:53"},{"name":"offset","nativeSrc":"7581:6:53","nodeType":"YulIdentifier","src":"7581:6:53"}],"functionName":{"name":"add","nativeSrc":"7566:3:53","nodeType":"YulIdentifier","src":"7566:3:53"},"nativeSrc":"7566:22:53","nodeType":"YulFunctionCall","src":"7566:22:53"},{"name":"dataEnd","nativeSrc":"7590:7:53","nodeType":"YulIdentifier","src":"7590:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7545:20:53","nodeType":"YulIdentifier","src":"7545:20:53"},"nativeSrc":"7545:53:53","nodeType":"YulFunctionCall","src":"7545:53:53"},"variableNames":[{"name":"value1","nativeSrc":"7535:6:53","nodeType":"YulIdentifier","src":"7535:6:53"}]}]},{"nativeSrc":"7618:118:53","nodeType":"YulBlock","src":"7618:118:53","statements":[{"nativeSrc":"7633:16:53","nodeType":"YulVariableDeclaration","src":"7633:16:53","value":{"kind":"number","nativeSrc":"7647:2:53","nodeType":"YulLiteral","src":"7647:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"7637:6:53","nodeType":"YulTypedName","src":"7637:6:53","type":""}]},{"nativeSrc":"7663:63:53","nodeType":"YulAssignment","src":"7663:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7698:9:53","nodeType":"YulIdentifier","src":"7698:9:53"},{"name":"offset","nativeSrc":"7709:6:53","nodeType":"YulIdentifier","src":"7709:6:53"}],"functionName":{"name":"add","nativeSrc":"7694:3:53","nodeType":"YulIdentifier","src":"7694:3:53"},"nativeSrc":"7694:22:53","nodeType":"YulFunctionCall","src":"7694:22:53"},{"name":"dataEnd","nativeSrc":"7718:7:53","nodeType":"YulIdentifier","src":"7718:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7673:20:53","nodeType":"YulIdentifier","src":"7673:20:53"},"nativeSrc":"7673:53:53","nodeType":"YulFunctionCall","src":"7673:53:53"},"variableNames":[{"name":"value2","nativeSrc":"7663:6:53","nodeType":"YulIdentifier","src":"7663:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"7124:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7178:9:53","nodeType":"YulTypedName","src":"7178:9:53","type":""},{"name":"dataEnd","nativeSrc":"7189:7:53","nodeType":"YulTypedName","src":"7189:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7201:6:53","nodeType":"YulTypedName","src":"7201:6:53","type":""},{"name":"value1","nativeSrc":"7209:6:53","nodeType":"YulTypedName","src":"7209:6:53","type":""},{"name":"value2","nativeSrc":"7217:6:53","nodeType":"YulTypedName","src":"7217:6:53","type":""}],"src":"7124:619:53"},{"body":{"nativeSrc":"7815:263:53","nodeType":"YulBlock","src":"7815:263:53","statements":[{"body":{"nativeSrc":"7861:83:53","nodeType":"YulBlock","src":"7861:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7863:77:53","nodeType":"YulIdentifier","src":"7863:77:53"},"nativeSrc":"7863:79:53","nodeType":"YulFunctionCall","src":"7863:79:53"},"nativeSrc":"7863:79:53","nodeType":"YulExpressionStatement","src":"7863:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7836:7:53","nodeType":"YulIdentifier","src":"7836:7:53"},{"name":"headStart","nativeSrc":"7845:9:53","nodeType":"YulIdentifier","src":"7845:9:53"}],"functionName":{"name":"sub","nativeSrc":"7832:3:53","nodeType":"YulIdentifier","src":"7832:3:53"},"nativeSrc":"7832:23:53","nodeType":"YulFunctionCall","src":"7832:23:53"},{"kind":"number","nativeSrc":"7857:2:53","nodeType":"YulLiteral","src":"7857:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7828:3:53","nodeType":"YulIdentifier","src":"7828:3:53"},"nativeSrc":"7828:32:53","nodeType":"YulFunctionCall","src":"7828:32:53"},"nativeSrc":"7825:119:53","nodeType":"YulIf","src":"7825:119:53"},{"nativeSrc":"7954:117:53","nodeType":"YulBlock","src":"7954:117:53","statements":[{"nativeSrc":"7969:15:53","nodeType":"YulVariableDeclaration","src":"7969:15:53","value":{"kind":"number","nativeSrc":"7983:1:53","nodeType":"YulLiteral","src":"7983:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7973:6:53","nodeType":"YulTypedName","src":"7973:6:53","type":""}]},{"nativeSrc":"7998:63:53","nodeType":"YulAssignment","src":"7998:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8033:9:53","nodeType":"YulIdentifier","src":"8033:9:53"},{"name":"offset","nativeSrc":"8044:6:53","nodeType":"YulIdentifier","src":"8044:6:53"}],"functionName":{"name":"add","nativeSrc":"8029:3:53","nodeType":"YulIdentifier","src":"8029:3:53"},"nativeSrc":"8029:22:53","nodeType":"YulFunctionCall","src":"8029:22:53"},{"name":"dataEnd","nativeSrc":"8053:7:53","nodeType":"YulIdentifier","src":"8053:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8008:20:53","nodeType":"YulIdentifier","src":"8008:20:53"},"nativeSrc":"8008:53:53","nodeType":"YulFunctionCall","src":"8008:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7998:6:53","nodeType":"YulIdentifier","src":"7998:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7749:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7785:9:53","nodeType":"YulTypedName","src":"7785:9:53","type":""},{"name":"dataEnd","nativeSrc":"7796:7:53","nodeType":"YulTypedName","src":"7796:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7808:6:53","nodeType":"YulTypedName","src":"7808:6:53","type":""}],"src":"7749:329:53"},{"body":{"nativeSrc":"8127:43:53","nodeType":"YulBlock","src":"8127:43:53","statements":[{"nativeSrc":"8137:27:53","nodeType":"YulAssignment","src":"8137:27:53","value":{"arguments":[{"name":"value","nativeSrc":"8152:5:53","nodeType":"YulIdentifier","src":"8152:5:53"},{"kind":"number","nativeSrc":"8159:4:53","nodeType":"YulLiteral","src":"8159:4:53","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"8148:3:53","nodeType":"YulIdentifier","src":"8148:3:53"},"nativeSrc":"8148:16:53","nodeType":"YulFunctionCall","src":"8148:16:53"},"variableNames":[{"name":"cleaned","nativeSrc":"8137:7:53","nodeType":"YulIdentifier","src":"8137:7:53"}]}]},"name":"cleanup_t_uint8","nativeSrc":"8084:86:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8109:5:53","nodeType":"YulTypedName","src":"8109:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8119:7:53","nodeType":"YulTypedName","src":"8119:7:53","type":""}],"src":"8084:86:53"},{"body":{"nativeSrc":"8237:51:53","nodeType":"YulBlock","src":"8237:51:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8254:3:53","nodeType":"YulIdentifier","src":"8254:3:53"},{"arguments":[{"name":"value","nativeSrc":"8275:5:53","nodeType":"YulIdentifier","src":"8275:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"8259:15:53","nodeType":"YulIdentifier","src":"8259:15:53"},"nativeSrc":"8259:22:53","nodeType":"YulFunctionCall","src":"8259:22:53"}],"functionName":{"name":"mstore","nativeSrc":"8247:6:53","nodeType":"YulIdentifier","src":"8247:6:53"},"nativeSrc":"8247:35:53","nodeType":"YulFunctionCall","src":"8247:35:53"},"nativeSrc":"8247:35:53","nodeType":"YulExpressionStatement","src":"8247:35:53"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"8176:112:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8225:5:53","nodeType":"YulTypedName","src":"8225:5:53","type":""},{"name":"pos","nativeSrc":"8232:3:53","nodeType":"YulTypedName","src":"8232:3:53","type":""}],"src":"8176:112:53"},{"body":{"nativeSrc":"8388:120:53","nodeType":"YulBlock","src":"8388:120:53","statements":[{"nativeSrc":"8398:26:53","nodeType":"YulAssignment","src":"8398:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8410:9:53","nodeType":"YulIdentifier","src":"8410:9:53"},{"kind":"number","nativeSrc":"8421:2:53","nodeType":"YulLiteral","src":"8421:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8406:3:53","nodeType":"YulIdentifier","src":"8406:3:53"},"nativeSrc":"8406:18:53","nodeType":"YulFunctionCall","src":"8406:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8398:4:53","nodeType":"YulIdentifier","src":"8398:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8474:6:53","nodeType":"YulIdentifier","src":"8474:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8487:9:53","nodeType":"YulIdentifier","src":"8487:9:53"},{"kind":"number","nativeSrc":"8498:1:53","nodeType":"YulLiteral","src":"8498:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8483:3:53","nodeType":"YulIdentifier","src":"8483:3:53"},"nativeSrc":"8483:17:53","nodeType":"YulFunctionCall","src":"8483:17:53"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"8434:39:53","nodeType":"YulIdentifier","src":"8434:39:53"},"nativeSrc":"8434:67:53","nodeType":"YulFunctionCall","src":"8434:67:53"},"nativeSrc":"8434:67:53","nodeType":"YulExpressionStatement","src":"8434:67:53"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"8294:214:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8360:9:53","nodeType":"YulTypedName","src":"8360:9:53","type":""},{"name":"value0","nativeSrc":"8372:6:53","nodeType":"YulTypedName","src":"8372:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8383:4:53","nodeType":"YulTypedName","src":"8383:4:53","type":""}],"src":"8294:214:53"},{"body":{"nativeSrc":"8559:32:53","nodeType":"YulBlock","src":"8559:32:53","statements":[{"nativeSrc":"8569:16:53","nodeType":"YulAssignment","src":"8569:16:53","value":{"name":"value","nativeSrc":"8580:5:53","nodeType":"YulIdentifier","src":"8580:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"8569:7:53","nodeType":"YulIdentifier","src":"8569:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"8514:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8541:5:53","nodeType":"YulTypedName","src":"8541:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8551:7:53","nodeType":"YulTypedName","src":"8551:7:53","type":""}],"src":"8514:77:53"},{"body":{"nativeSrc":"8662:53:53","nodeType":"YulBlock","src":"8662:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8679:3:53","nodeType":"YulIdentifier","src":"8679:3:53"},{"arguments":[{"name":"value","nativeSrc":"8702:5:53","nodeType":"YulIdentifier","src":"8702:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"8684:17:53","nodeType":"YulIdentifier","src":"8684:17:53"},"nativeSrc":"8684:24:53","nodeType":"YulFunctionCall","src":"8684:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8672:6:53","nodeType":"YulIdentifier","src":"8672:6:53"},"nativeSrc":"8672:37:53","nodeType":"YulFunctionCall","src":"8672:37:53"},"nativeSrc":"8672:37:53","nodeType":"YulExpressionStatement","src":"8672:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8597:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8650:5:53","nodeType":"YulTypedName","src":"8650:5:53","type":""},{"name":"pos","nativeSrc":"8657:3:53","nodeType":"YulTypedName","src":"8657:3:53","type":""}],"src":"8597:118:53"},{"body":{"nativeSrc":"8819:124:53","nodeType":"YulBlock","src":"8819:124:53","statements":[{"nativeSrc":"8829:26:53","nodeType":"YulAssignment","src":"8829:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8841:9:53","nodeType":"YulIdentifier","src":"8841:9:53"},{"kind":"number","nativeSrc":"8852:2:53","nodeType":"YulLiteral","src":"8852:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8837:3:53","nodeType":"YulIdentifier","src":"8837:3:53"},"nativeSrc":"8837:18:53","nodeType":"YulFunctionCall","src":"8837:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8829:4:53","nodeType":"YulIdentifier","src":"8829:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8909:6:53","nodeType":"YulIdentifier","src":"8909:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8922:9:53","nodeType":"YulIdentifier","src":"8922:9:53"},{"kind":"number","nativeSrc":"8933:1:53","nodeType":"YulLiteral","src":"8933:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8918:3:53","nodeType":"YulIdentifier","src":"8918:3:53"},"nativeSrc":"8918:17:53","nodeType":"YulFunctionCall","src":"8918:17:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8865:43:53","nodeType":"YulIdentifier","src":"8865:43:53"},"nativeSrc":"8865:71:53","nodeType":"YulFunctionCall","src":"8865:71:53"},"nativeSrc":"8865:71:53","nodeType":"YulExpressionStatement","src":"8865:71:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"8721:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8791:9:53","nodeType":"YulTypedName","src":"8791:9:53","type":""},{"name":"value0","nativeSrc":"8803:6:53","nodeType":"YulTypedName","src":"8803:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8814:4:53","nodeType":"YulTypedName","src":"8814:4:53","type":""}],"src":"8721:222:53"},{"body":{"nativeSrc":"9014:53:53","nodeType":"YulBlock","src":"9014:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9031:3:53","nodeType":"YulIdentifier","src":"9031:3:53"},{"arguments":[{"name":"value","nativeSrc":"9054:5:53","nodeType":"YulIdentifier","src":"9054:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"9036:17:53","nodeType":"YulIdentifier","src":"9036:17:53"},"nativeSrc":"9036:24:53","nodeType":"YulFunctionCall","src":"9036:24:53"}],"functionName":{"name":"mstore","nativeSrc":"9024:6:53","nodeType":"YulIdentifier","src":"9024:6:53"},"nativeSrc":"9024:37:53","nodeType":"YulFunctionCall","src":"9024:37:53"},"nativeSrc":"9024:37:53","nodeType":"YulExpressionStatement","src":"9024:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8949:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9002:5:53","nodeType":"YulTypedName","src":"9002:5:53","type":""},{"name":"pos","nativeSrc":"9009:3:53","nodeType":"YulTypedName","src":"9009:3:53","type":""}],"src":"8949:118:53"},{"body":{"nativeSrc":"9171:124:53","nodeType":"YulBlock","src":"9171:124:53","statements":[{"nativeSrc":"9181:26:53","nodeType":"YulAssignment","src":"9181:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9193:9:53","nodeType":"YulIdentifier","src":"9193:9:53"},{"kind":"number","nativeSrc":"9204:2:53","nodeType":"YulLiteral","src":"9204:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9189:3:53","nodeType":"YulIdentifier","src":"9189:3:53"},"nativeSrc":"9189:18:53","nodeType":"YulFunctionCall","src":"9189:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9181:4:53","nodeType":"YulIdentifier","src":"9181:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9261:6:53","nodeType":"YulIdentifier","src":"9261:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9274:9:53","nodeType":"YulIdentifier","src":"9274:9:53"},{"kind":"number","nativeSrc":"9285:1:53","nodeType":"YulLiteral","src":"9285:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9270:3:53","nodeType":"YulIdentifier","src":"9270:3:53"},"nativeSrc":"9270:17:53","nodeType":"YulFunctionCall","src":"9270:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9217:43:53","nodeType":"YulIdentifier","src":"9217:43:53"},"nativeSrc":"9217:71:53","nodeType":"YulFunctionCall","src":"9217:71:53"},"nativeSrc":"9217:71:53","nodeType":"YulExpressionStatement","src":"9217:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"9073:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9143:9:53","nodeType":"YulTypedName","src":"9143:9:53","type":""},{"name":"value0","nativeSrc":"9155:6:53","nodeType":"YulTypedName","src":"9155:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9166:4:53","nodeType":"YulTypedName","src":"9166:4:53","type":""}],"src":"9073:222:53"},{"body":{"nativeSrc":"9342:77:53","nodeType":"YulBlock","src":"9342:77:53","statements":[{"body":{"nativeSrc":"9397:16:53","nodeType":"YulBlock","src":"9397:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9406:1:53","nodeType":"YulLiteral","src":"9406:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9409:1:53","nodeType":"YulLiteral","src":"9409:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9399:6:53","nodeType":"YulIdentifier","src":"9399:6:53"},"nativeSrc":"9399:12:53","nodeType":"YulFunctionCall","src":"9399:12:53"},"nativeSrc":"9399:12:53","nodeType":"YulExpressionStatement","src":"9399:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9365:5:53","nodeType":"YulIdentifier","src":"9365:5:53"},{"arguments":[{"name":"value","nativeSrc":"9388:5:53","nodeType":"YulIdentifier","src":"9388:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"9372:15:53","nodeType":"YulIdentifier","src":"9372:15:53"},"nativeSrc":"9372:22:53","nodeType":"YulFunctionCall","src":"9372:22:53"}],"functionName":{"name":"eq","nativeSrc":"9362:2:53","nodeType":"YulIdentifier","src":"9362:2:53"},"nativeSrc":"9362:33:53","nodeType":"YulFunctionCall","src":"9362:33:53"}],"functionName":{"name":"iszero","nativeSrc":"9355:6:53","nodeType":"YulIdentifier","src":"9355:6:53"},"nativeSrc":"9355:41:53","nodeType":"YulFunctionCall","src":"9355:41:53"},"nativeSrc":"9352:61:53","nodeType":"YulIf","src":"9352:61:53"}]},"name":"validator_revert_t_uint8","nativeSrc":"9301:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9335:5:53","nodeType":"YulTypedName","src":"9335:5:53","type":""}],"src":"9301:118:53"},{"body":{"nativeSrc":"9475:85:53","nodeType":"YulBlock","src":"9475:85:53","statements":[{"nativeSrc":"9485:29:53","nodeType":"YulAssignment","src":"9485:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9507:6:53","nodeType":"YulIdentifier","src":"9507:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9494:12:53","nodeType":"YulIdentifier","src":"9494:12:53"},"nativeSrc":"9494:20:53","nodeType":"YulFunctionCall","src":"9494:20:53"},"variableNames":[{"name":"value","nativeSrc":"9485:5:53","nodeType":"YulIdentifier","src":"9485:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9548:5:53","nodeType":"YulIdentifier","src":"9548:5:53"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"9523:24:53","nodeType":"YulIdentifier","src":"9523:24:53"},"nativeSrc":"9523:31:53","nodeType":"YulFunctionCall","src":"9523:31:53"},"nativeSrc":"9523:31:53","nodeType":"YulExpressionStatement","src":"9523:31:53"}]},"name":"abi_decode_t_uint8","nativeSrc":"9425:135:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9453:6:53","nodeType":"YulTypedName","src":"9453:6:53","type":""},{"name":"end","nativeSrc":"9461:3:53","nodeType":"YulTypedName","src":"9461:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9469:5:53","nodeType":"YulTypedName","src":"9469:5:53","type":""}],"src":"9425:135:53"},{"body":{"nativeSrc":"9609:79:53","nodeType":"YulBlock","src":"9609:79:53","statements":[{"body":{"nativeSrc":"9666:16:53","nodeType":"YulBlock","src":"9666:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9675:1:53","nodeType":"YulLiteral","src":"9675:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9678:1:53","nodeType":"YulLiteral","src":"9678:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9668:6:53","nodeType":"YulIdentifier","src":"9668:6:53"},"nativeSrc":"9668:12:53","nodeType":"YulFunctionCall","src":"9668:12:53"},"nativeSrc":"9668:12:53","nodeType":"YulExpressionStatement","src":"9668:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9632:5:53","nodeType":"YulIdentifier","src":"9632:5:53"},{"arguments":[{"name":"value","nativeSrc":"9657:5:53","nodeType":"YulIdentifier","src":"9657:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"9639:17:53","nodeType":"YulIdentifier","src":"9639:17:53"},"nativeSrc":"9639:24:53","nodeType":"YulFunctionCall","src":"9639:24:53"}],"functionName":{"name":"eq","nativeSrc":"9629:2:53","nodeType":"YulIdentifier","src":"9629:2:53"},"nativeSrc":"9629:35:53","nodeType":"YulFunctionCall","src":"9629:35:53"}],"functionName":{"name":"iszero","nativeSrc":"9622:6:53","nodeType":"YulIdentifier","src":"9622:6:53"},"nativeSrc":"9622:43:53","nodeType":"YulFunctionCall","src":"9622:43:53"},"nativeSrc":"9619:63:53","nodeType":"YulIf","src":"9619:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"9566:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9602:5:53","nodeType":"YulTypedName","src":"9602:5:53","type":""}],"src":"9566:122:53"},{"body":{"nativeSrc":"9746:87:53","nodeType":"YulBlock","src":"9746:87:53","statements":[{"nativeSrc":"9756:29:53","nodeType":"YulAssignment","src":"9756:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9778:6:53","nodeType":"YulIdentifier","src":"9778:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9765:12:53","nodeType":"YulIdentifier","src":"9765:12:53"},"nativeSrc":"9765:20:53","nodeType":"YulFunctionCall","src":"9765:20:53"},"variableNames":[{"name":"value","nativeSrc":"9756:5:53","nodeType":"YulIdentifier","src":"9756:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9821:5:53","nodeType":"YulIdentifier","src":"9821:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"9794:26:53","nodeType":"YulIdentifier","src":"9794:26:53"},"nativeSrc":"9794:33:53","nodeType":"YulFunctionCall","src":"9794:33:53"},"nativeSrc":"9794:33:53","nodeType":"YulExpressionStatement","src":"9794:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"9694:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9724:6:53","nodeType":"YulTypedName","src":"9724:6:53","type":""},{"name":"end","nativeSrc":"9732:3:53","nodeType":"YulTypedName","src":"9732:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9740:5:53","nodeType":"YulTypedName","src":"9740:5:53","type":""}],"src":"9694:139:53"},{"body":{"nativeSrc":"10005:1033:53","nodeType":"YulBlock","src":"10005:1033:53","statements":[{"body":{"nativeSrc":"10052:83:53","nodeType":"YulBlock","src":"10052:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10054:77:53","nodeType":"YulIdentifier","src":"10054:77:53"},"nativeSrc":"10054:79:53","nodeType":"YulFunctionCall","src":"10054:79:53"},"nativeSrc":"10054:79:53","nodeType":"YulExpressionStatement","src":"10054:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10026:7:53","nodeType":"YulIdentifier","src":"10026:7:53"},{"name":"headStart","nativeSrc":"10035:9:53","nodeType":"YulIdentifier","src":"10035:9:53"}],"functionName":{"name":"sub","nativeSrc":"10022:3:53","nodeType":"YulIdentifier","src":"10022:3:53"},"nativeSrc":"10022:23:53","nodeType":"YulFunctionCall","src":"10022:23:53"},{"kind":"number","nativeSrc":"10047:3:53","nodeType":"YulLiteral","src":"10047:3:53","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"10018:3:53","nodeType":"YulIdentifier","src":"10018:3:53"},"nativeSrc":"10018:33:53","nodeType":"YulFunctionCall","src":"10018:33:53"},"nativeSrc":"10015:120:53","nodeType":"YulIf","src":"10015:120:53"},{"nativeSrc":"10145:117:53","nodeType":"YulBlock","src":"10145:117:53","statements":[{"nativeSrc":"10160:15:53","nodeType":"YulVariableDeclaration","src":"10160:15:53","value":{"kind":"number","nativeSrc":"10174:1:53","nodeType":"YulLiteral","src":"10174:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10164:6:53","nodeType":"YulTypedName","src":"10164:6:53","type":""}]},{"nativeSrc":"10189:63:53","nodeType":"YulAssignment","src":"10189:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10224:9:53","nodeType":"YulIdentifier","src":"10224:9:53"},{"name":"offset","nativeSrc":"10235:6:53","nodeType":"YulIdentifier","src":"10235:6:53"}],"functionName":{"name":"add","nativeSrc":"10220:3:53","nodeType":"YulIdentifier","src":"10220:3:53"},"nativeSrc":"10220:22:53","nodeType":"YulFunctionCall","src":"10220:22:53"},{"name":"dataEnd","nativeSrc":"10244:7:53","nodeType":"YulIdentifier","src":"10244:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10199:20:53","nodeType":"YulIdentifier","src":"10199:20:53"},"nativeSrc":"10199:53:53","nodeType":"YulFunctionCall","src":"10199:53:53"},"variableNames":[{"name":"value0","nativeSrc":"10189:6:53","nodeType":"YulIdentifier","src":"10189:6:53"}]}]},{"nativeSrc":"10272:118:53","nodeType":"YulBlock","src":"10272:118:53","statements":[{"nativeSrc":"10287:16:53","nodeType":"YulVariableDeclaration","src":"10287:16:53","value":{"kind":"number","nativeSrc":"10301:2:53","nodeType":"YulLiteral","src":"10301:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"10291:6:53","nodeType":"YulTypedName","src":"10291:6:53","type":""}]},{"nativeSrc":"10317:63:53","nodeType":"YulAssignment","src":"10317:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10352:9:53","nodeType":"YulIdentifier","src":"10352:9:53"},{"name":"offset","nativeSrc":"10363:6:53","nodeType":"YulIdentifier","src":"10363:6:53"}],"functionName":{"name":"add","nativeSrc":"10348:3:53","nodeType":"YulIdentifier","src":"10348:3:53"},"nativeSrc":"10348:22:53","nodeType":"YulFunctionCall","src":"10348:22:53"},{"name":"dataEnd","nativeSrc":"10372:7:53","nodeType":"YulIdentifier","src":"10372:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10327:20:53","nodeType":"YulIdentifier","src":"10327:20:53"},"nativeSrc":"10327:53:53","nodeType":"YulFunctionCall","src":"10327:53:53"},"variableNames":[{"name":"value1","nativeSrc":"10317:6:53","nodeType":"YulIdentifier","src":"10317:6:53"}]}]},{"nativeSrc":"10400:118:53","nodeType":"YulBlock","src":"10400:118:53","statements":[{"nativeSrc":"10415:16:53","nodeType":"YulVariableDeclaration","src":"10415:16:53","value":{"kind":"number","nativeSrc":"10429:2:53","nodeType":"YulLiteral","src":"10429:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"10419:6:53","nodeType":"YulTypedName","src":"10419:6:53","type":""}]},{"nativeSrc":"10445:63:53","nodeType":"YulAssignment","src":"10445:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10480:9:53","nodeType":"YulIdentifier","src":"10480:9:53"},{"name":"offset","nativeSrc":"10491:6:53","nodeType":"YulIdentifier","src":"10491:6:53"}],"functionName":{"name":"add","nativeSrc":"10476:3:53","nodeType":"YulIdentifier","src":"10476:3:53"},"nativeSrc":"10476:22:53","nodeType":"YulFunctionCall","src":"10476:22:53"},{"name":"dataEnd","nativeSrc":"10500:7:53","nodeType":"YulIdentifier","src":"10500:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10455:20:53","nodeType":"YulIdentifier","src":"10455:20:53"},"nativeSrc":"10455:53:53","nodeType":"YulFunctionCall","src":"10455:53:53"},"variableNames":[{"name":"value2","nativeSrc":"10445:6:53","nodeType":"YulIdentifier","src":"10445:6:53"}]}]},{"nativeSrc":"10528:118:53","nodeType":"YulBlock","src":"10528:118:53","statements":[{"nativeSrc":"10543:16:53","nodeType":"YulVariableDeclaration","src":"10543:16:53","value":{"kind":"number","nativeSrc":"10557:2:53","nodeType":"YulLiteral","src":"10557:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"10547:6:53","nodeType":"YulTypedName","src":"10547:6:53","type":""}]},{"nativeSrc":"10573:63:53","nodeType":"YulAssignment","src":"10573:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10608:9:53","nodeType":"YulIdentifier","src":"10608:9:53"},{"name":"offset","nativeSrc":"10619:6:53","nodeType":"YulIdentifier","src":"10619:6:53"}],"functionName":{"name":"add","nativeSrc":"10604:3:53","nodeType":"YulIdentifier","src":"10604:3:53"},"nativeSrc":"10604:22:53","nodeType":"YulFunctionCall","src":"10604:22:53"},{"name":"dataEnd","nativeSrc":"10628:7:53","nodeType":"YulIdentifier","src":"10628:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10583:20:53","nodeType":"YulIdentifier","src":"10583:20:53"},"nativeSrc":"10583:53:53","nodeType":"YulFunctionCall","src":"10583:53:53"},"variableNames":[{"name":"value3","nativeSrc":"10573:6:53","nodeType":"YulIdentifier","src":"10573:6:53"}]}]},{"nativeSrc":"10656:117:53","nodeType":"YulBlock","src":"10656:117:53","statements":[{"nativeSrc":"10671:17:53","nodeType":"YulVariableDeclaration","src":"10671:17:53","value":{"kind":"number","nativeSrc":"10685:3:53","nodeType":"YulLiteral","src":"10685:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"10675:6:53","nodeType":"YulTypedName","src":"10675:6:53","type":""}]},{"nativeSrc":"10702:61:53","nodeType":"YulAssignment","src":"10702:61:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10735:9:53","nodeType":"YulIdentifier","src":"10735:9:53"},{"name":"offset","nativeSrc":"10746:6:53","nodeType":"YulIdentifier","src":"10746:6:53"}],"functionName":{"name":"add","nativeSrc":"10731:3:53","nodeType":"YulIdentifier","src":"10731:3:53"},"nativeSrc":"10731:22:53","nodeType":"YulFunctionCall","src":"10731:22:53"},{"name":"dataEnd","nativeSrc":"10755:7:53","nodeType":"YulIdentifier","src":"10755:7:53"}],"functionName":{"name":"abi_decode_t_uint8","nativeSrc":"10712:18:53","nodeType":"YulIdentifier","src":"10712:18:53"},"nativeSrc":"10712:51:53","nodeType":"YulFunctionCall","src":"10712:51:53"},"variableNames":[{"name":"value4","nativeSrc":"10702:6:53","nodeType":"YulIdentifier","src":"10702:6:53"}]}]},{"nativeSrc":"10783:119:53","nodeType":"YulBlock","src":"10783:119:53","statements":[{"nativeSrc":"10798:17:53","nodeType":"YulVariableDeclaration","src":"10798:17:53","value":{"kind":"number","nativeSrc":"10812:3:53","nodeType":"YulLiteral","src":"10812:3:53","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"10802:6:53","nodeType":"YulTypedName","src":"10802:6:53","type":""}]},{"nativeSrc":"10829:63:53","nodeType":"YulAssignment","src":"10829:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10864:9:53","nodeType":"YulIdentifier","src":"10864:9:53"},{"name":"offset","nativeSrc":"10875:6:53","nodeType":"YulIdentifier","src":"10875:6:53"}],"functionName":{"name":"add","nativeSrc":"10860:3:53","nodeType":"YulIdentifier","src":"10860:3:53"},"nativeSrc":"10860:22:53","nodeType":"YulFunctionCall","src":"10860:22:53"},{"name":"dataEnd","nativeSrc":"10884:7:53","nodeType":"YulIdentifier","src":"10884:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"10839:20:53","nodeType":"YulIdentifier","src":"10839:20:53"},"nativeSrc":"10839:53:53","nodeType":"YulFunctionCall","src":"10839:53:53"},"variableNames":[{"name":"value5","nativeSrc":"10829:6:53","nodeType":"YulIdentifier","src":"10829:6:53"}]}]},{"nativeSrc":"10912:119:53","nodeType":"YulBlock","src":"10912:119:53","statements":[{"nativeSrc":"10927:17:53","nodeType":"YulVariableDeclaration","src":"10927:17:53","value":{"kind":"number","nativeSrc":"10941:3:53","nodeType":"YulLiteral","src":"10941:3:53","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"10931:6:53","nodeType":"YulTypedName","src":"10931:6:53","type":""}]},{"nativeSrc":"10958:63:53","nodeType":"YulAssignment","src":"10958:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10993:9:53","nodeType":"YulIdentifier","src":"10993:9:53"},{"name":"offset","nativeSrc":"11004:6:53","nodeType":"YulIdentifier","src":"11004:6:53"}],"functionName":{"name":"add","nativeSrc":"10989:3:53","nodeType":"YulIdentifier","src":"10989:3:53"},"nativeSrc":"10989:22:53","nodeType":"YulFunctionCall","src":"10989:22:53"},{"name":"dataEnd","nativeSrc":"11013:7:53","nodeType":"YulIdentifier","src":"11013:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"10968:20:53","nodeType":"YulIdentifier","src":"10968:20:53"},"nativeSrc":"10968:53:53","nodeType":"YulFunctionCall","src":"10968:53:53"},"variableNames":[{"name":"value6","nativeSrc":"10958:6:53","nodeType":"YulIdentifier","src":"10958:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nativeSrc":"9839:1199:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9927:9:53","nodeType":"YulTypedName","src":"9927:9:53","type":""},{"name":"dataEnd","nativeSrc":"9938:7:53","nodeType":"YulTypedName","src":"9938:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9950:6:53","nodeType":"YulTypedName","src":"9950:6:53","type":""},{"name":"value1","nativeSrc":"9958:6:53","nodeType":"YulTypedName","src":"9958:6:53","type":""},{"name":"value2","nativeSrc":"9966:6:53","nodeType":"YulTypedName","src":"9966:6:53","type":""},{"name":"value3","nativeSrc":"9974:6:53","nodeType":"YulTypedName","src":"9974:6:53","type":""},{"name":"value4","nativeSrc":"9982:6:53","nodeType":"YulTypedName","src":"9982:6:53","type":""},{"name":"value5","nativeSrc":"9990:6:53","nodeType":"YulTypedName","src":"9990:6:53","type":""},{"name":"value6","nativeSrc":"9998:6:53","nodeType":"YulTypedName","src":"9998:6:53","type":""}],"src":"9839:1199:53"},{"body":{"nativeSrc":"11127:391:53","nodeType":"YulBlock","src":"11127:391:53","statements":[{"body":{"nativeSrc":"11173:83:53","nodeType":"YulBlock","src":"11173:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11175:77:53","nodeType":"YulIdentifier","src":"11175:77:53"},"nativeSrc":"11175:79:53","nodeType":"YulFunctionCall","src":"11175:79:53"},"nativeSrc":"11175:79:53","nodeType":"YulExpressionStatement","src":"11175:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11148:7:53","nodeType":"YulIdentifier","src":"11148:7:53"},{"name":"headStart","nativeSrc":"11157:9:53","nodeType":"YulIdentifier","src":"11157:9:53"}],"functionName":{"name":"sub","nativeSrc":"11144:3:53","nodeType":"YulIdentifier","src":"11144:3:53"},"nativeSrc":"11144:23:53","nodeType":"YulFunctionCall","src":"11144:23:53"},{"kind":"number","nativeSrc":"11169:2:53","nodeType":"YulLiteral","src":"11169:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11140:3:53","nodeType":"YulIdentifier","src":"11140:3:53"},"nativeSrc":"11140:32:53","nodeType":"YulFunctionCall","src":"11140:32:53"},"nativeSrc":"11137:119:53","nodeType":"YulIf","src":"11137:119:53"},{"nativeSrc":"11266:117:53","nodeType":"YulBlock","src":"11266:117:53","statements":[{"nativeSrc":"11281:15:53","nodeType":"YulVariableDeclaration","src":"11281:15:53","value":{"kind":"number","nativeSrc":"11295:1:53","nodeType":"YulLiteral","src":"11295:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11285:6:53","nodeType":"YulTypedName","src":"11285:6:53","type":""}]},{"nativeSrc":"11310:63:53","nodeType":"YulAssignment","src":"11310:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11345:9:53","nodeType":"YulIdentifier","src":"11345:9:53"},{"name":"offset","nativeSrc":"11356:6:53","nodeType":"YulIdentifier","src":"11356:6:53"}],"functionName":{"name":"add","nativeSrc":"11341:3:53","nodeType":"YulIdentifier","src":"11341:3:53"},"nativeSrc":"11341:22:53","nodeType":"YulFunctionCall","src":"11341:22:53"},{"name":"dataEnd","nativeSrc":"11365:7:53","nodeType":"YulIdentifier","src":"11365:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11320:20:53","nodeType":"YulIdentifier","src":"11320:20:53"},"nativeSrc":"11320:53:53","nodeType":"YulFunctionCall","src":"11320:53:53"},"variableNames":[{"name":"value0","nativeSrc":"11310:6:53","nodeType":"YulIdentifier","src":"11310:6:53"}]}]},{"nativeSrc":"11393:118:53","nodeType":"YulBlock","src":"11393:118:53","statements":[{"nativeSrc":"11408:16:53","nodeType":"YulVariableDeclaration","src":"11408:16:53","value":{"kind":"number","nativeSrc":"11422:2:53","nodeType":"YulLiteral","src":"11422:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11412:6:53","nodeType":"YulTypedName","src":"11412:6:53","type":""}]},{"nativeSrc":"11438:63:53","nodeType":"YulAssignment","src":"11438:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11473:9:53","nodeType":"YulIdentifier","src":"11473:9:53"},{"name":"offset","nativeSrc":"11484:6:53","nodeType":"YulIdentifier","src":"11484:6:53"}],"functionName":{"name":"add","nativeSrc":"11469:3:53","nodeType":"YulIdentifier","src":"11469:3:53"},"nativeSrc":"11469:22:53","nodeType":"YulFunctionCall","src":"11469:22:53"},{"name":"dataEnd","nativeSrc":"11493:7:53","nodeType":"YulIdentifier","src":"11493:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11448:20:53","nodeType":"YulIdentifier","src":"11448:20:53"},"nativeSrc":"11448:53:53","nodeType":"YulFunctionCall","src":"11448:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11438:6:53","nodeType":"YulIdentifier","src":"11438:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"11044:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11089:9:53","nodeType":"YulTypedName","src":"11089:9:53","type":""},{"name":"dataEnd","nativeSrc":"11100:7:53","nodeType":"YulTypedName","src":"11100:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11112:6:53","nodeType":"YulTypedName","src":"11112:6:53","type":""},{"name":"value1","nativeSrc":"11120:6:53","nodeType":"YulTypedName","src":"11120:6:53","type":""}],"src":"11044:474:53"},{"body":{"nativeSrc":"11552:152:53","nodeType":"YulBlock","src":"11552:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11569:1:53","nodeType":"YulLiteral","src":"11569:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11572:77:53","nodeType":"YulLiteral","src":"11572:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11562:6:53","nodeType":"YulIdentifier","src":"11562:6:53"},"nativeSrc":"11562:88:53","nodeType":"YulFunctionCall","src":"11562:88:53"},"nativeSrc":"11562:88:53","nodeType":"YulExpressionStatement","src":"11562:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11666:1:53","nodeType":"YulLiteral","src":"11666:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11669:4:53","nodeType":"YulLiteral","src":"11669:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11659:6:53","nodeType":"YulIdentifier","src":"11659:6:53"},"nativeSrc":"11659:15:53","nodeType":"YulFunctionCall","src":"11659:15:53"},"nativeSrc":"11659:15:53","nodeType":"YulExpressionStatement","src":"11659:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11690:1:53","nodeType":"YulLiteral","src":"11690:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11693:4:53","nodeType":"YulLiteral","src":"11693:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11683:6:53","nodeType":"YulIdentifier","src":"11683:6:53"},"nativeSrc":"11683:15:53","nodeType":"YulFunctionCall","src":"11683:15:53"},"nativeSrc":"11683:15:53","nodeType":"YulExpressionStatement","src":"11683:15:53"}]},"name":"panic_error_0x22","nativeSrc":"11524:180:53","nodeType":"YulFunctionDefinition","src":"11524:180:53"},{"body":{"nativeSrc":"11761:269:53","nodeType":"YulBlock","src":"11761:269:53","statements":[{"nativeSrc":"11771:22:53","nodeType":"YulAssignment","src":"11771:22:53","value":{"arguments":[{"name":"data","nativeSrc":"11785:4:53","nodeType":"YulIdentifier","src":"11785:4:53"},{"kind":"number","nativeSrc":"11791:1:53","nodeType":"YulLiteral","src":"11791:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"11781:3:53","nodeType":"YulIdentifier","src":"11781:3:53"},"nativeSrc":"11781:12:53","nodeType":"YulFunctionCall","src":"11781:12:53"},"variableNames":[{"name":"length","nativeSrc":"11771:6:53","nodeType":"YulIdentifier","src":"11771:6:53"}]},{"nativeSrc":"11802:38:53","nodeType":"YulVariableDeclaration","src":"11802:38:53","value":{"arguments":[{"name":"data","nativeSrc":"11832:4:53","nodeType":"YulIdentifier","src":"11832:4:53"},{"kind":"number","nativeSrc":"11838:1:53","nodeType":"YulLiteral","src":"11838:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"11828:3:53","nodeType":"YulIdentifier","src":"11828:3:53"},"nativeSrc":"11828:12:53","nodeType":"YulFunctionCall","src":"11828:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"11806:18:53","nodeType":"YulTypedName","src":"11806:18:53","type":""}]},{"body":{"nativeSrc":"11879:51:53","nodeType":"YulBlock","src":"11879:51:53","statements":[{"nativeSrc":"11893:27:53","nodeType":"YulAssignment","src":"11893:27:53","value":{"arguments":[{"name":"length","nativeSrc":"11907:6:53","nodeType":"YulIdentifier","src":"11907:6:53"},{"kind":"number","nativeSrc":"11915:4:53","nodeType":"YulLiteral","src":"11915:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11903:3:53","nodeType":"YulIdentifier","src":"11903:3:53"},"nativeSrc":"11903:17:53","nodeType":"YulFunctionCall","src":"11903:17:53"},"variableNames":[{"name":"length","nativeSrc":"11893:6:53","nodeType":"YulIdentifier","src":"11893:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11859:18:53","nodeType":"YulIdentifier","src":"11859:18:53"}],"functionName":{"name":"iszero","nativeSrc":"11852:6:53","nodeType":"YulIdentifier","src":"11852:6:53"},"nativeSrc":"11852:26:53","nodeType":"YulFunctionCall","src":"11852:26:53"},"nativeSrc":"11849:81:53","nodeType":"YulIf","src":"11849:81:53"},{"body":{"nativeSrc":"11982:42:53","nodeType":"YulBlock","src":"11982:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"11996:16:53","nodeType":"YulIdentifier","src":"11996:16:53"},"nativeSrc":"11996:18:53","nodeType":"YulFunctionCall","src":"11996:18:53"},"nativeSrc":"11996:18:53","nodeType":"YulExpressionStatement","src":"11996:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11946:18:53","nodeType":"YulIdentifier","src":"11946:18:53"},{"arguments":[{"name":"length","nativeSrc":"11969:6:53","nodeType":"YulIdentifier","src":"11969:6:53"},{"kind":"number","nativeSrc":"11977:2:53","nodeType":"YulLiteral","src":"11977:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"11966:2:53","nodeType":"YulIdentifier","src":"11966:2:53"},"nativeSrc":"11966:14:53","nodeType":"YulFunctionCall","src":"11966:14:53"}],"functionName":{"name":"eq","nativeSrc":"11943:2:53","nodeType":"YulIdentifier","src":"11943:2:53"},"nativeSrc":"11943:38:53","nodeType":"YulFunctionCall","src":"11943:38:53"},"nativeSrc":"11940:84:53","nodeType":"YulIf","src":"11940:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"11710:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"11745:4:53","nodeType":"YulTypedName","src":"11745:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11754:6:53","nodeType":"YulTypedName","src":"11754:6:53","type":""}],"src":"11710:320:53"},{"body":{"nativeSrc":"12090:87:53","nodeType":"YulBlock","src":"12090:87:53","statements":[{"nativeSrc":"12100:11:53","nodeType":"YulAssignment","src":"12100:11:53","value":{"name":"ptr","nativeSrc":"12108:3:53","nodeType":"YulIdentifier","src":"12108:3:53"},"variableNames":[{"name":"data","nativeSrc":"12100:4:53","nodeType":"YulIdentifier","src":"12100:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12128:1:53","nodeType":"YulLiteral","src":"12128:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"12131:3:53","nodeType":"YulIdentifier","src":"12131:3:53"}],"functionName":{"name":"mstore","nativeSrc":"12121:6:53","nodeType":"YulIdentifier","src":"12121:6:53"},"nativeSrc":"12121:14:53","nodeType":"YulFunctionCall","src":"12121:14:53"},"nativeSrc":"12121:14:53","nodeType":"YulExpressionStatement","src":"12121:14:53"},{"nativeSrc":"12144:26:53","nodeType":"YulAssignment","src":"12144:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"12162:1:53","nodeType":"YulLiteral","src":"12162:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12165:4:53","nodeType":"YulLiteral","src":"12165:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"12152:9:53","nodeType":"YulIdentifier","src":"12152:9:53"},"nativeSrc":"12152:18:53","nodeType":"YulFunctionCall","src":"12152:18:53"},"variableNames":[{"name":"data","nativeSrc":"12144:4:53","nodeType":"YulIdentifier","src":"12144:4:53"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"12036:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"12077:3:53","nodeType":"YulTypedName","src":"12077:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"12085:4:53","nodeType":"YulTypedName","src":"12085:4:53","type":""}],"src":"12036:141:53"},{"body":{"nativeSrc":"12227:49:53","nodeType":"YulBlock","src":"12227:49:53","statements":[{"nativeSrc":"12237:33:53","nodeType":"YulAssignment","src":"12237:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12255:5:53","nodeType":"YulIdentifier","src":"12255:5:53"},{"kind":"number","nativeSrc":"12262:2:53","nodeType":"YulLiteral","src":"12262:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"12251:3:53","nodeType":"YulIdentifier","src":"12251:3:53"},"nativeSrc":"12251:14:53","nodeType":"YulFunctionCall","src":"12251:14:53"},{"kind":"number","nativeSrc":"12267:2:53","nodeType":"YulLiteral","src":"12267:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"12247:3:53","nodeType":"YulIdentifier","src":"12247:3:53"},"nativeSrc":"12247:23:53","nodeType":"YulFunctionCall","src":"12247:23:53"},"variableNames":[{"name":"result","nativeSrc":"12237:6:53","nodeType":"YulIdentifier","src":"12237:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"12183:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12210:5:53","nodeType":"YulTypedName","src":"12210:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12220:6:53","nodeType":"YulTypedName","src":"12220:6:53","type":""}],"src":"12183:93:53"},{"body":{"nativeSrc":"12335:54:53","nodeType":"YulBlock","src":"12335:54:53","statements":[{"nativeSrc":"12345:37:53","nodeType":"YulAssignment","src":"12345:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"12370:4:53","nodeType":"YulIdentifier","src":"12370:4:53"},{"name":"value","nativeSrc":"12376:5:53","nodeType":"YulIdentifier","src":"12376:5:53"}],"functionName":{"name":"shl","nativeSrc":"12366:3:53","nodeType":"YulIdentifier","src":"12366:3:53"},"nativeSrc":"12366:16:53","nodeType":"YulFunctionCall","src":"12366:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"12345:8:53","nodeType":"YulIdentifier","src":"12345:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"12282:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"12310:4:53","nodeType":"YulTypedName","src":"12310:4:53","type":""},{"name":"value","nativeSrc":"12316:5:53","nodeType":"YulTypedName","src":"12316:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"12326:8:53","nodeType":"YulTypedName","src":"12326:8:53","type":""}],"src":"12282:107:53"},{"body":{"nativeSrc":"12471:317:53","nodeType":"YulBlock","src":"12471:317:53","statements":[{"nativeSrc":"12481:35:53","nodeType":"YulVariableDeclaration","src":"12481:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"12502:10:53","nodeType":"YulIdentifier","src":"12502:10:53"},{"kind":"number","nativeSrc":"12514:1:53","nodeType":"YulLiteral","src":"12514:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"12498:3:53","nodeType":"YulIdentifier","src":"12498:3:53"},"nativeSrc":"12498:18:53","nodeType":"YulFunctionCall","src":"12498:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"12485:9:53","nodeType":"YulTypedName","src":"12485:9:53","type":""}]},{"nativeSrc":"12525:109:53","nodeType":"YulVariableDeclaration","src":"12525:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"12556:9:53","nodeType":"YulIdentifier","src":"12556:9:53"},{"kind":"number","nativeSrc":"12567:66:53","nodeType":"YulLiteral","src":"12567:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"12537:18:53","nodeType":"YulIdentifier","src":"12537:18:53"},"nativeSrc":"12537:97:53","nodeType":"YulFunctionCall","src":"12537:97:53"},"variables":[{"name":"mask","nativeSrc":"12529:4:53","nodeType":"YulTypedName","src":"12529:4:53","type":""}]},{"nativeSrc":"12643:51:53","nodeType":"YulAssignment","src":"12643:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"12674:9:53","nodeType":"YulIdentifier","src":"12674:9:53"},{"name":"toInsert","nativeSrc":"12685:8:53","nodeType":"YulIdentifier","src":"12685:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"12655:18:53","nodeType":"YulIdentifier","src":"12655:18:53"},"nativeSrc":"12655:39:53","nodeType":"YulFunctionCall","src":"12655:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"12643:8:53","nodeType":"YulIdentifier","src":"12643:8:53"}]},{"nativeSrc":"12703:30:53","nodeType":"YulAssignment","src":"12703:30:53","value":{"arguments":[{"name":"value","nativeSrc":"12716:5:53","nodeType":"YulIdentifier","src":"12716:5:53"},{"arguments":[{"name":"mask","nativeSrc":"12727:4:53","nodeType":"YulIdentifier","src":"12727:4:53"}],"functionName":{"name":"not","nativeSrc":"12723:3:53","nodeType":"YulIdentifier","src":"12723:3:53"},"nativeSrc":"12723:9:53","nodeType":"YulFunctionCall","src":"12723:9:53"}],"functionName":{"name":"and","nativeSrc":"12712:3:53","nodeType":"YulIdentifier","src":"12712:3:53"},"nativeSrc":"12712:21:53","nodeType":"YulFunctionCall","src":"12712:21:53"},"variableNames":[{"name":"value","nativeSrc":"12703:5:53","nodeType":"YulIdentifier","src":"12703:5:53"}]},{"nativeSrc":"12742:40:53","nodeType":"YulAssignment","src":"12742:40:53","value":{"arguments":[{"name":"value","nativeSrc":"12755:5:53","nodeType":"YulIdentifier","src":"12755:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"12766:8:53","nodeType":"YulIdentifier","src":"12766:8:53"},{"name":"mask","nativeSrc":"12776:4:53","nodeType":"YulIdentifier","src":"12776:4:53"}],"functionName":{"name":"and","nativeSrc":"12762:3:53","nodeType":"YulIdentifier","src":"12762:3:53"},"nativeSrc":"12762:19:53","nodeType":"YulFunctionCall","src":"12762:19:53"}],"functionName":{"name":"or","nativeSrc":"12752:2:53","nodeType":"YulIdentifier","src":"12752:2:53"},"nativeSrc":"12752:30:53","nodeType":"YulFunctionCall","src":"12752:30:53"},"variableNames":[{"name":"result","nativeSrc":"12742:6:53","nodeType":"YulIdentifier","src":"12742:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"12395:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12432:5:53","nodeType":"YulTypedName","src":"12432:5:53","type":""},{"name":"shiftBytes","nativeSrc":"12439:10:53","nodeType":"YulTypedName","src":"12439:10:53","type":""},{"name":"toInsert","nativeSrc":"12451:8:53","nodeType":"YulTypedName","src":"12451:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12464:6:53","nodeType":"YulTypedName","src":"12464:6:53","type":""}],"src":"12395:393:53"},{"body":{"nativeSrc":"12826:28:53","nodeType":"YulBlock","src":"12826:28:53","statements":[{"nativeSrc":"12836:12:53","nodeType":"YulAssignment","src":"12836:12:53","value":{"name":"value","nativeSrc":"12843:5:53","nodeType":"YulIdentifier","src":"12843:5:53"},"variableNames":[{"name":"ret","nativeSrc":"12836:3:53","nodeType":"YulIdentifier","src":"12836:3:53"}]}]},"name":"identity","nativeSrc":"12794:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12812:5:53","nodeType":"YulTypedName","src":"12812:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"12822:3:53","nodeType":"YulTypedName","src":"12822:3:53","type":""}],"src":"12794:60:53"},{"body":{"nativeSrc":"12920:82:53","nodeType":"YulBlock","src":"12920:82:53","statements":[{"nativeSrc":"12930:66:53","nodeType":"YulAssignment","src":"12930:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12988:5:53","nodeType":"YulIdentifier","src":"12988:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12970:17:53","nodeType":"YulIdentifier","src":"12970:17:53"},"nativeSrc":"12970:24:53","nodeType":"YulFunctionCall","src":"12970:24:53"}],"functionName":{"name":"identity","nativeSrc":"12961:8:53","nodeType":"YulIdentifier","src":"12961:8:53"},"nativeSrc":"12961:34:53","nodeType":"YulFunctionCall","src":"12961:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12943:17:53","nodeType":"YulIdentifier","src":"12943:17:53"},"nativeSrc":"12943:53:53","nodeType":"YulFunctionCall","src":"12943:53:53"},"variableNames":[{"name":"converted","nativeSrc":"12930:9:53","nodeType":"YulIdentifier","src":"12930:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"12860:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12900:5:53","nodeType":"YulTypedName","src":"12900:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12910:9:53","nodeType":"YulTypedName","src":"12910:9:53","type":""}],"src":"12860:142:53"},{"body":{"nativeSrc":"13055:28:53","nodeType":"YulBlock","src":"13055:28:53","statements":[{"nativeSrc":"13065:12:53","nodeType":"YulAssignment","src":"13065:12:53","value":{"name":"value","nativeSrc":"13072:5:53","nodeType":"YulIdentifier","src":"13072:5:53"},"variableNames":[{"name":"ret","nativeSrc":"13065:3:53","nodeType":"YulIdentifier","src":"13065:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"13008:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13041:5:53","nodeType":"YulTypedName","src":"13041:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"13051:3:53","nodeType":"YulTypedName","src":"13051:3:53","type":""}],"src":"13008:75:53"},{"body":{"nativeSrc":"13165:193:53","nodeType":"YulBlock","src":"13165:193:53","statements":[{"nativeSrc":"13175:63:53","nodeType":"YulVariableDeclaration","src":"13175:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"13230:7:53","nodeType":"YulIdentifier","src":"13230:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"13199:30:53","nodeType":"YulIdentifier","src":"13199:30:53"},"nativeSrc":"13199:39:53","nodeType":"YulFunctionCall","src":"13199:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"13179:16:53","nodeType":"YulTypedName","src":"13179:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"13254:4:53","nodeType":"YulIdentifier","src":"13254:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"13294:4:53","nodeType":"YulIdentifier","src":"13294:4:53"}],"functionName":{"name":"sload","nativeSrc":"13288:5:53","nodeType":"YulIdentifier","src":"13288:5:53"},"nativeSrc":"13288:11:53","nodeType":"YulFunctionCall","src":"13288:11:53"},{"name":"offset","nativeSrc":"13301:6:53","nodeType":"YulIdentifier","src":"13301:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"13333:16:53","nodeType":"YulIdentifier","src":"13333:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"13309:23:53","nodeType":"YulIdentifier","src":"13309:23:53"},"nativeSrc":"13309:41:53","nodeType":"YulFunctionCall","src":"13309:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"13260:27:53","nodeType":"YulIdentifier","src":"13260:27:53"},"nativeSrc":"13260:91:53","nodeType":"YulFunctionCall","src":"13260:91:53"}],"functionName":{"name":"sstore","nativeSrc":"13247:6:53","nodeType":"YulIdentifier","src":"13247:6:53"},"nativeSrc":"13247:105:53","nodeType":"YulFunctionCall","src":"13247:105:53"},"nativeSrc":"13247:105:53","nodeType":"YulExpressionStatement","src":"13247:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"13089:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"13142:4:53","nodeType":"YulTypedName","src":"13142:4:53","type":""},{"name":"offset","nativeSrc":"13148:6:53","nodeType":"YulTypedName","src":"13148:6:53","type":""},{"name":"value_0","nativeSrc":"13156:7:53","nodeType":"YulTypedName","src":"13156:7:53","type":""}],"src":"13089:269:53"},{"body":{"nativeSrc":"13413:24:53","nodeType":"YulBlock","src":"13413:24:53","statements":[{"nativeSrc":"13423:8:53","nodeType":"YulAssignment","src":"13423:8:53","value":{"kind":"number","nativeSrc":"13430:1:53","nodeType":"YulLiteral","src":"13430:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"13423:3:53","nodeType":"YulIdentifier","src":"13423:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"13364:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"13409:3:53","nodeType":"YulTypedName","src":"13409:3:53","type":""}],"src":"13364:73:53"},{"body":{"nativeSrc":"13496:136:53","nodeType":"YulBlock","src":"13496:136:53","statements":[{"nativeSrc":"13506:46:53","nodeType":"YulVariableDeclaration","src":"13506:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"13520:30:53","nodeType":"YulIdentifier","src":"13520:30:53"},"nativeSrc":"13520:32:53","nodeType":"YulFunctionCall","src":"13520:32:53"},"variables":[{"name":"zero_0","nativeSrc":"13510:6:53","nodeType":"YulTypedName","src":"13510:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"13605:4:53","nodeType":"YulIdentifier","src":"13605:4:53"},{"name":"offset","nativeSrc":"13611:6:53","nodeType":"YulIdentifier","src":"13611:6:53"},{"name":"zero_0","nativeSrc":"13619:6:53","nodeType":"YulIdentifier","src":"13619:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"13561:43:53","nodeType":"YulIdentifier","src":"13561:43:53"},"nativeSrc":"13561:65:53","nodeType":"YulFunctionCall","src":"13561:65:53"},"nativeSrc":"13561:65:53","nodeType":"YulExpressionStatement","src":"13561:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"13443:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"13482:4:53","nodeType":"YulTypedName","src":"13482:4:53","type":""},{"name":"offset","nativeSrc":"13488:6:53","nodeType":"YulTypedName","src":"13488:6:53","type":""}],"src":"13443:189:53"},{"body":{"nativeSrc":"13688:136:53","nodeType":"YulBlock","src":"13688:136:53","statements":[{"body":{"nativeSrc":"13755:63:53","nodeType":"YulBlock","src":"13755:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"13799:5:53","nodeType":"YulIdentifier","src":"13799:5:53"},{"kind":"number","nativeSrc":"13806:1:53","nodeType":"YulLiteral","src":"13806:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"13769:29:53","nodeType":"YulIdentifier","src":"13769:29:53"},"nativeSrc":"13769:39:53","nodeType":"YulFunctionCall","src":"13769:39:53"},"nativeSrc":"13769:39:53","nodeType":"YulExpressionStatement","src":"13769:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"13708:5:53","nodeType":"YulIdentifier","src":"13708:5:53"},{"name":"end","nativeSrc":"13715:3:53","nodeType":"YulIdentifier","src":"13715:3:53"}],"functionName":{"name":"lt","nativeSrc":"13705:2:53","nodeType":"YulIdentifier","src":"13705:2:53"},"nativeSrc":"13705:14:53","nodeType":"YulFunctionCall","src":"13705:14:53"},"nativeSrc":"13698:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"13720:26:53","nodeType":"YulBlock","src":"13720:26:53","statements":[{"nativeSrc":"13722:22:53","nodeType":"YulAssignment","src":"13722:22:53","value":{"arguments":[{"name":"start","nativeSrc":"13735:5:53","nodeType":"YulIdentifier","src":"13735:5:53"},{"kind":"number","nativeSrc":"13742:1:53","nodeType":"YulLiteral","src":"13742:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"13731:3:53","nodeType":"YulIdentifier","src":"13731:3:53"},"nativeSrc":"13731:13:53","nodeType":"YulFunctionCall","src":"13731:13:53"},"variableNames":[{"name":"start","nativeSrc":"13722:5:53","nodeType":"YulIdentifier","src":"13722:5:53"}]}]},"pre":{"nativeSrc":"13702:2:53","nodeType":"YulBlock","src":"13702:2:53","statements":[]},"src":"13698:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"13638:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"13676:5:53","nodeType":"YulTypedName","src":"13676:5:53","type":""},{"name":"end","nativeSrc":"13683:3:53","nodeType":"YulTypedName","src":"13683:3:53","type":""}],"src":"13638:186:53"},{"body":{"nativeSrc":"13909:464:53","nodeType":"YulBlock","src":"13909:464:53","statements":[{"body":{"nativeSrc":"13935:431:53","nodeType":"YulBlock","src":"13935:431:53","statements":[{"nativeSrc":"13949:54:53","nodeType":"YulVariableDeclaration","src":"13949:54:53","value":{"arguments":[{"name":"array","nativeSrc":"13997:5:53","nodeType":"YulIdentifier","src":"13997:5:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"13965:31:53","nodeType":"YulIdentifier","src":"13965:31:53"},"nativeSrc":"13965:38:53","nodeType":"YulFunctionCall","src":"13965:38:53"},"variables":[{"name":"dataArea","nativeSrc":"13953:8:53","nodeType":"YulTypedName","src":"13953:8:53","type":""}]},{"nativeSrc":"14016:63:53","nodeType":"YulVariableDeclaration","src":"14016:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"14039:8:53","nodeType":"YulIdentifier","src":"14039:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"14067:10:53","nodeType":"YulIdentifier","src":"14067:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"14049:17:53","nodeType":"YulIdentifier","src":"14049:17:53"},"nativeSrc":"14049:29:53","nodeType":"YulFunctionCall","src":"14049:29:53"}],"functionName":{"name":"add","nativeSrc":"14035:3:53","nodeType":"YulIdentifier","src":"14035:3:53"},"nativeSrc":"14035:44:53","nodeType":"YulFunctionCall","src":"14035:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"14020:11:53","nodeType":"YulTypedName","src":"14020:11:53","type":""}]},{"body":{"nativeSrc":"14236:27:53","nodeType":"YulBlock","src":"14236:27:53","statements":[{"nativeSrc":"14238:23:53","nodeType":"YulAssignment","src":"14238:23:53","value":{"name":"dataArea","nativeSrc":"14253:8:53","nodeType":"YulIdentifier","src":"14253:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"14238:11:53","nodeType":"YulIdentifier","src":"14238:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"14220:10:53","nodeType":"YulIdentifier","src":"14220:10:53"},{"kind":"number","nativeSrc":"14232:2:53","nodeType":"YulLiteral","src":"14232:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"14217:2:53","nodeType":"YulIdentifier","src":"14217:2:53"},"nativeSrc":"14217:18:53","nodeType":"YulFunctionCall","src":"14217:18:53"},"nativeSrc":"14214:49:53","nodeType":"YulIf","src":"14214:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"14305:11:53","nodeType":"YulIdentifier","src":"14305:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"14322:8:53","nodeType":"YulIdentifier","src":"14322:8:53"},{"arguments":[{"name":"len","nativeSrc":"14350:3:53","nodeType":"YulIdentifier","src":"14350:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"14332:17:53","nodeType":"YulIdentifier","src":"14332:17:53"},"nativeSrc":"14332:22:53","nodeType":"YulFunctionCall","src":"14332:22:53"}],"functionName":{"name":"add","nativeSrc":"14318:3:53","nodeType":"YulIdentifier","src":"14318:3:53"},"nativeSrc":"14318:37:53","nodeType":"YulFunctionCall","src":"14318:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"14276:28:53","nodeType":"YulIdentifier","src":"14276:28:53"},"nativeSrc":"14276:80:53","nodeType":"YulFunctionCall","src":"14276:80:53"},"nativeSrc":"14276:80:53","nodeType":"YulExpressionStatement","src":"14276:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"13926:3:53","nodeType":"YulIdentifier","src":"13926:3:53"},{"kind":"number","nativeSrc":"13931:2:53","nodeType":"YulLiteral","src":"13931:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"13923:2:53","nodeType":"YulIdentifier","src":"13923:2:53"},"nativeSrc":"13923:11:53","nodeType":"YulFunctionCall","src":"13923:11:53"},"nativeSrc":"13920:446:53","nodeType":"YulIf","src":"13920:446:53"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"13830:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"13885:5:53","nodeType":"YulTypedName","src":"13885:5:53","type":""},{"name":"len","nativeSrc":"13892:3:53","nodeType":"YulTypedName","src":"13892:3:53","type":""},{"name":"startIndex","nativeSrc":"13897:10:53","nodeType":"YulTypedName","src":"13897:10:53","type":""}],"src":"13830:543:53"},{"body":{"nativeSrc":"14442:54:53","nodeType":"YulBlock","src":"14442:54:53","statements":[{"nativeSrc":"14452:37:53","nodeType":"YulAssignment","src":"14452:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"14477:4:53","nodeType":"YulIdentifier","src":"14477:4:53"},{"name":"value","nativeSrc":"14483:5:53","nodeType":"YulIdentifier","src":"14483:5:53"}],"functionName":{"name":"shr","nativeSrc":"14473:3:53","nodeType":"YulIdentifier","src":"14473:3:53"},"nativeSrc":"14473:16:53","nodeType":"YulFunctionCall","src":"14473:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"14452:8:53","nodeType":"YulIdentifier","src":"14452:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"14379:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"14417:4:53","nodeType":"YulTypedName","src":"14417:4:53","type":""},{"name":"value","nativeSrc":"14423:5:53","nodeType":"YulTypedName","src":"14423:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"14433:8:53","nodeType":"YulTypedName","src":"14433:8:53","type":""}],"src":"14379:117:53"},{"body":{"nativeSrc":"14553:118:53","nodeType":"YulBlock","src":"14553:118:53","statements":[{"nativeSrc":"14563:68:53","nodeType":"YulVariableDeclaration","src":"14563:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14612:1:53","nodeType":"YulLiteral","src":"14612:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"14615:5:53","nodeType":"YulIdentifier","src":"14615:5:53"}],"functionName":{"name":"mul","nativeSrc":"14608:3:53","nodeType":"YulIdentifier","src":"14608:3:53"},"nativeSrc":"14608:13:53","nodeType":"YulFunctionCall","src":"14608:13:53"},{"arguments":[{"kind":"number","nativeSrc":"14627:1:53","nodeType":"YulLiteral","src":"14627:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"14623:3:53","nodeType":"YulIdentifier","src":"14623:3:53"},"nativeSrc":"14623:6:53","nodeType":"YulFunctionCall","src":"14623:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"14579:28:53","nodeType":"YulIdentifier","src":"14579:28:53"},"nativeSrc":"14579:51:53","nodeType":"YulFunctionCall","src":"14579:51:53"}],"functionName":{"name":"not","nativeSrc":"14575:3:53","nodeType":"YulIdentifier","src":"14575:3:53"},"nativeSrc":"14575:56:53","nodeType":"YulFunctionCall","src":"14575:56:53"},"variables":[{"name":"mask","nativeSrc":"14567:4:53","nodeType":"YulTypedName","src":"14567:4:53","type":""}]},{"nativeSrc":"14640:25:53","nodeType":"YulAssignment","src":"14640:25:53","value":{"arguments":[{"name":"data","nativeSrc":"14654:4:53","nodeType":"YulIdentifier","src":"14654:4:53"},{"name":"mask","nativeSrc":"14660:4:53","nodeType":"YulIdentifier","src":"14660:4:53"}],"functionName":{"name":"and","nativeSrc":"14650:3:53","nodeType":"YulIdentifier","src":"14650:3:53"},"nativeSrc":"14650:15:53","nodeType":"YulFunctionCall","src":"14650:15:53"},"variableNames":[{"name":"result","nativeSrc":"14640:6:53","nodeType":"YulIdentifier","src":"14640:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"14502:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14530:4:53","nodeType":"YulTypedName","src":"14530:4:53","type":""},{"name":"bytes","nativeSrc":"14536:5:53","nodeType":"YulTypedName","src":"14536:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"14546:6:53","nodeType":"YulTypedName","src":"14546:6:53","type":""}],"src":"14502:169:53"},{"body":{"nativeSrc":"14757:214:53","nodeType":"YulBlock","src":"14757:214:53","statements":[{"nativeSrc":"14890:37:53","nodeType":"YulAssignment","src":"14890:37:53","value":{"arguments":[{"name":"data","nativeSrc":"14917:4:53","nodeType":"YulIdentifier","src":"14917:4:53"},{"name":"len","nativeSrc":"14923:3:53","nodeType":"YulIdentifier","src":"14923:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"14898:18:53","nodeType":"YulIdentifier","src":"14898:18:53"},"nativeSrc":"14898:29:53","nodeType":"YulFunctionCall","src":"14898:29:53"},"variableNames":[{"name":"data","nativeSrc":"14890:4:53","nodeType":"YulIdentifier","src":"14890:4:53"}]},{"nativeSrc":"14936:29:53","nodeType":"YulAssignment","src":"14936:29:53","value":{"arguments":[{"name":"data","nativeSrc":"14947:4:53","nodeType":"YulIdentifier","src":"14947:4:53"},{"arguments":[{"kind":"number","nativeSrc":"14957:1:53","nodeType":"YulLiteral","src":"14957:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"14960:3:53","nodeType":"YulIdentifier","src":"14960:3:53"}],"functionName":{"name":"mul","nativeSrc":"14953:3:53","nodeType":"YulIdentifier","src":"14953:3:53"},"nativeSrc":"14953:11:53","nodeType":"YulFunctionCall","src":"14953:11:53"}],"functionName":{"name":"or","nativeSrc":"14944:2:53","nodeType":"YulIdentifier","src":"14944:2:53"},"nativeSrc":"14944:21:53","nodeType":"YulFunctionCall","src":"14944:21:53"},"variableNames":[{"name":"used","nativeSrc":"14936:4:53","nodeType":"YulIdentifier","src":"14936:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"14676:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14738:4:53","nodeType":"YulTypedName","src":"14738:4:53","type":""},{"name":"len","nativeSrc":"14744:3:53","nodeType":"YulTypedName","src":"14744:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"14752:4:53","nodeType":"YulTypedName","src":"14752:4:53","type":""}],"src":"14676:295:53"},{"body":{"nativeSrc":"15068:1303:53","nodeType":"YulBlock","src":"15068:1303:53","statements":[{"nativeSrc":"15079:51:53","nodeType":"YulVariableDeclaration","src":"15079:51:53","value":{"arguments":[{"name":"src","nativeSrc":"15126:3:53","nodeType":"YulIdentifier","src":"15126:3:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"15093:32:53","nodeType":"YulIdentifier","src":"15093:32:53"},"nativeSrc":"15093:37:53","nodeType":"YulFunctionCall","src":"15093:37:53"},"variables":[{"name":"newLen","nativeSrc":"15083:6:53","nodeType":"YulTypedName","src":"15083:6:53","type":""}]},{"body":{"nativeSrc":"15215:22:53","nodeType":"YulBlock","src":"15215:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"15217:16:53","nodeType":"YulIdentifier","src":"15217:16:53"},"nativeSrc":"15217:18:53","nodeType":"YulFunctionCall","src":"15217:18:53"},"nativeSrc":"15217:18:53","nodeType":"YulExpressionStatement","src":"15217:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"15187:6:53","nodeType":"YulIdentifier","src":"15187:6:53"},{"kind":"number","nativeSrc":"15195:18:53","nodeType":"YulLiteral","src":"15195:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15184:2:53","nodeType":"YulIdentifier","src":"15184:2:53"},"nativeSrc":"15184:30:53","nodeType":"YulFunctionCall","src":"15184:30:53"},"nativeSrc":"15181:56:53","nodeType":"YulIf","src":"15181:56:53"},{"nativeSrc":"15247:52:53","nodeType":"YulVariableDeclaration","src":"15247:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"15293:4:53","nodeType":"YulIdentifier","src":"15293:4:53"}],"functionName":{"name":"sload","nativeSrc":"15287:5:53","nodeType":"YulIdentifier","src":"15287:5:53"},"nativeSrc":"15287:11:53","nodeType":"YulFunctionCall","src":"15287:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"15261:25:53","nodeType":"YulIdentifier","src":"15261:25:53"},"nativeSrc":"15261:38:53","nodeType":"YulFunctionCall","src":"15261:38:53"},"variables":[{"name":"oldLen","nativeSrc":"15251:6:53","nodeType":"YulTypedName","src":"15251:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"15392:4:53","nodeType":"YulIdentifier","src":"15392:4:53"},{"name":"oldLen","nativeSrc":"15398:6:53","nodeType":"YulIdentifier","src":"15398:6:53"},{"name":"newLen","nativeSrc":"15406:6:53","nodeType":"YulIdentifier","src":"15406:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"15346:45:53","nodeType":"YulIdentifier","src":"15346:45:53"},"nativeSrc":"15346:67:53","nodeType":"YulFunctionCall","src":"15346:67:53"},"nativeSrc":"15346:67:53","nodeType":"YulExpressionStatement","src":"15346:67:53"},{"nativeSrc":"15423:18:53","nodeType":"YulVariableDeclaration","src":"15423:18:53","value":{"kind":"number","nativeSrc":"15440:1:53","nodeType":"YulLiteral","src":"15440:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"15427:9:53","nodeType":"YulTypedName","src":"15427:9:53","type":""}]},{"nativeSrc":"15451:17:53","nodeType":"YulAssignment","src":"15451:17:53","value":{"kind":"number","nativeSrc":"15464:4:53","nodeType":"YulLiteral","src":"15464:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"15451:9:53","nodeType":"YulIdentifier","src":"15451:9:53"}]},{"cases":[{"body":{"nativeSrc":"15515:611:53","nodeType":"YulBlock","src":"15515:611:53","statements":[{"nativeSrc":"15529:37:53","nodeType":"YulVariableDeclaration","src":"15529:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"15548:6:53","nodeType":"YulIdentifier","src":"15548:6:53"},{"arguments":[{"kind":"number","nativeSrc":"15560:4:53","nodeType":"YulLiteral","src":"15560:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"15556:3:53","nodeType":"YulIdentifier","src":"15556:3:53"},"nativeSrc":"15556:9:53","nodeType":"YulFunctionCall","src":"15556:9:53"}],"functionName":{"name":"and","nativeSrc":"15544:3:53","nodeType":"YulIdentifier","src":"15544:3:53"},"nativeSrc":"15544:22:53","nodeType":"YulFunctionCall","src":"15544:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"15533:7:53","nodeType":"YulTypedName","src":"15533:7:53","type":""}]},{"nativeSrc":"15580:51:53","nodeType":"YulVariableDeclaration","src":"15580:51:53","value":{"arguments":[{"name":"slot","nativeSrc":"15626:4:53","nodeType":"YulIdentifier","src":"15626:4:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"15594:31:53","nodeType":"YulIdentifier","src":"15594:31:53"},"nativeSrc":"15594:37:53","nodeType":"YulFunctionCall","src":"15594:37:53"},"variables":[{"name":"dstPtr","nativeSrc":"15584:6:53","nodeType":"YulTypedName","src":"15584:6:53","type":""}]},{"nativeSrc":"15644:10:53","nodeType":"YulVariableDeclaration","src":"15644:10:53","value":{"kind":"number","nativeSrc":"15653:1:53","nodeType":"YulLiteral","src":"15653:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15648:1:53","nodeType":"YulTypedName","src":"15648:1:53","type":""}]},{"body":{"nativeSrc":"15712:163:53","nodeType":"YulBlock","src":"15712:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"15737:6:53","nodeType":"YulIdentifier","src":"15737:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15755:3:53","nodeType":"YulIdentifier","src":"15755:3:53"},{"name":"srcOffset","nativeSrc":"15760:9:53","nodeType":"YulIdentifier","src":"15760:9:53"}],"functionName":{"name":"add","nativeSrc":"15751:3:53","nodeType":"YulIdentifier","src":"15751:3:53"},"nativeSrc":"15751:19:53","nodeType":"YulFunctionCall","src":"15751:19:53"}],"functionName":{"name":"mload","nativeSrc":"15745:5:53","nodeType":"YulIdentifier","src":"15745:5:53"},"nativeSrc":"15745:26:53","nodeType":"YulFunctionCall","src":"15745:26:53"}],"functionName":{"name":"sstore","nativeSrc":"15730:6:53","nodeType":"YulIdentifier","src":"15730:6:53"},"nativeSrc":"15730:42:53","nodeType":"YulFunctionCall","src":"15730:42:53"},"nativeSrc":"15730:42:53","nodeType":"YulExpressionStatement","src":"15730:42:53"},{"nativeSrc":"15789:24:53","nodeType":"YulAssignment","src":"15789:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"15803:6:53","nodeType":"YulIdentifier","src":"15803:6:53"},{"kind":"number","nativeSrc":"15811:1:53","nodeType":"YulLiteral","src":"15811:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15799:3:53","nodeType":"YulIdentifier","src":"15799:3:53"},"nativeSrc":"15799:14:53","nodeType":"YulFunctionCall","src":"15799:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"15789:6:53","nodeType":"YulIdentifier","src":"15789:6:53"}]},{"nativeSrc":"15830:31:53","nodeType":"YulAssignment","src":"15830:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"15847:9:53","nodeType":"YulIdentifier","src":"15847:9:53"},{"kind":"number","nativeSrc":"15858:2:53","nodeType":"YulLiteral","src":"15858:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15843:3:53","nodeType":"YulIdentifier","src":"15843:3:53"},"nativeSrc":"15843:18:53","nodeType":"YulFunctionCall","src":"15843:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"15830:9:53","nodeType":"YulIdentifier","src":"15830:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15678:1:53","nodeType":"YulIdentifier","src":"15678:1:53"},{"name":"loopEnd","nativeSrc":"15681:7:53","nodeType":"YulIdentifier","src":"15681:7:53"}],"functionName":{"name":"lt","nativeSrc":"15675:2:53","nodeType":"YulIdentifier","src":"15675:2:53"},"nativeSrc":"15675:14:53","nodeType":"YulFunctionCall","src":"15675:14:53"},"nativeSrc":"15667:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"15690:21:53","nodeType":"YulBlock","src":"15690:21:53","statements":[{"nativeSrc":"15692:17:53","nodeType":"YulAssignment","src":"15692:17:53","value":{"arguments":[{"name":"i","nativeSrc":"15701:1:53","nodeType":"YulIdentifier","src":"15701:1:53"},{"kind":"number","nativeSrc":"15704:4:53","nodeType":"YulLiteral","src":"15704:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15697:3:53","nodeType":"YulIdentifier","src":"15697:3:53"},"nativeSrc":"15697:12:53","nodeType":"YulFunctionCall","src":"15697:12:53"},"variableNames":[{"name":"i","nativeSrc":"15692:1:53","nodeType":"YulIdentifier","src":"15692:1:53"}]}]},"pre":{"nativeSrc":"15671:3:53","nodeType":"YulBlock","src":"15671:3:53","statements":[]},"src":"15667:208:53"},{"body":{"nativeSrc":"15911:156:53","nodeType":"YulBlock","src":"15911:156:53","statements":[{"nativeSrc":"15929:43:53","nodeType":"YulVariableDeclaration","src":"15929:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15956:3:53","nodeType":"YulIdentifier","src":"15956:3:53"},{"name":"srcOffset","nativeSrc":"15961:9:53","nodeType":"YulIdentifier","src":"15961:9:53"}],"functionName":{"name":"add","nativeSrc":"15952:3:53","nodeType":"YulIdentifier","src":"15952:3:53"},"nativeSrc":"15952:19:53","nodeType":"YulFunctionCall","src":"15952:19:53"}],"functionName":{"name":"mload","nativeSrc":"15946:5:53","nodeType":"YulIdentifier","src":"15946:5:53"},"nativeSrc":"15946:26:53","nodeType":"YulFunctionCall","src":"15946:26:53"},"variables":[{"name":"lastValue","nativeSrc":"15933:9:53","nodeType":"YulTypedName","src":"15933:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"15996:6:53","nodeType":"YulIdentifier","src":"15996:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"16023:9:53","nodeType":"YulIdentifier","src":"16023:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"16038:6:53","nodeType":"YulIdentifier","src":"16038:6:53"},{"kind":"number","nativeSrc":"16046:4:53","nodeType":"YulLiteral","src":"16046:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"16034:3:53","nodeType":"YulIdentifier","src":"16034:3:53"},"nativeSrc":"16034:17:53","nodeType":"YulFunctionCall","src":"16034:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"16004:18:53","nodeType":"YulIdentifier","src":"16004:18:53"},"nativeSrc":"16004:48:53","nodeType":"YulFunctionCall","src":"16004:48:53"}],"functionName":{"name":"sstore","nativeSrc":"15989:6:53","nodeType":"YulIdentifier","src":"15989:6:53"},"nativeSrc":"15989:64:53","nodeType":"YulFunctionCall","src":"15989:64:53"},"nativeSrc":"15989:64:53","nodeType":"YulExpressionStatement","src":"15989:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"15894:7:53","nodeType":"YulIdentifier","src":"15894:7:53"},{"name":"newLen","nativeSrc":"15903:6:53","nodeType":"YulIdentifier","src":"15903:6:53"}],"functionName":{"name":"lt","nativeSrc":"15891:2:53","nodeType":"YulIdentifier","src":"15891:2:53"},"nativeSrc":"15891:19:53","nodeType":"YulFunctionCall","src":"15891:19:53"},"nativeSrc":"15888:179:53","nodeType":"YulIf","src":"15888:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16087:4:53","nodeType":"YulIdentifier","src":"16087:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"16101:6:53","nodeType":"YulIdentifier","src":"16101:6:53"},{"kind":"number","nativeSrc":"16109:1:53","nodeType":"YulLiteral","src":"16109:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"16097:3:53","nodeType":"YulIdentifier","src":"16097:3:53"},"nativeSrc":"16097:14:53","nodeType":"YulFunctionCall","src":"16097:14:53"},{"kind":"number","nativeSrc":"16113:1:53","nodeType":"YulLiteral","src":"16113:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16093:3:53","nodeType":"YulIdentifier","src":"16093:3:53"},"nativeSrc":"16093:22:53","nodeType":"YulFunctionCall","src":"16093:22:53"}],"functionName":{"name":"sstore","nativeSrc":"16080:6:53","nodeType":"YulIdentifier","src":"16080:6:53"},"nativeSrc":"16080:36:53","nodeType":"YulFunctionCall","src":"16080:36:53"},"nativeSrc":"16080:36:53","nodeType":"YulExpressionStatement","src":"16080:36:53"}]},"nativeSrc":"15508:618:53","nodeType":"YulCase","src":"15508:618:53","value":{"kind":"number","nativeSrc":"15513:1:53","nodeType":"YulLiteral","src":"15513:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"16143:222:53","nodeType":"YulBlock","src":"16143:222:53","statements":[{"nativeSrc":"16157:14:53","nodeType":"YulVariableDeclaration","src":"16157:14:53","value":{"kind":"number","nativeSrc":"16170:1:53","nodeType":"YulLiteral","src":"16170:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"16161:5:53","nodeType":"YulTypedName","src":"16161:5:53","type":""}]},{"body":{"nativeSrc":"16194:67:53","nodeType":"YulBlock","src":"16194:67:53","statements":[{"nativeSrc":"16212:35:53","nodeType":"YulAssignment","src":"16212:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"16231:3:53","nodeType":"YulIdentifier","src":"16231:3:53"},{"name":"srcOffset","nativeSrc":"16236:9:53","nodeType":"YulIdentifier","src":"16236:9:53"}],"functionName":{"name":"add","nativeSrc":"16227:3:53","nodeType":"YulIdentifier","src":"16227:3:53"},"nativeSrc":"16227:19:53","nodeType":"YulFunctionCall","src":"16227:19:53"}],"functionName":{"name":"mload","nativeSrc":"16221:5:53","nodeType":"YulIdentifier","src":"16221:5:53"},"nativeSrc":"16221:26:53","nodeType":"YulFunctionCall","src":"16221:26:53"},"variableNames":[{"name":"value","nativeSrc":"16212:5:53","nodeType":"YulIdentifier","src":"16212:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"16187:6:53","nodeType":"YulIdentifier","src":"16187:6:53"},"nativeSrc":"16184:77:53","nodeType":"YulIf","src":"16184:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16281:4:53","nodeType":"YulIdentifier","src":"16281:4:53"},{"arguments":[{"name":"value","nativeSrc":"16340:5:53","nodeType":"YulIdentifier","src":"16340:5:53"},{"name":"newLen","nativeSrc":"16347:6:53","nodeType":"YulIdentifier","src":"16347:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"16287:52:53","nodeType":"YulIdentifier","src":"16287:52:53"},"nativeSrc":"16287:67:53","nodeType":"YulFunctionCall","src":"16287:67:53"}],"functionName":{"name":"sstore","nativeSrc":"16274:6:53","nodeType":"YulIdentifier","src":"16274:6:53"},"nativeSrc":"16274:81:53","nodeType":"YulFunctionCall","src":"16274:81:53"},"nativeSrc":"16274:81:53","nodeType":"YulExpressionStatement","src":"16274:81:53"}]},"nativeSrc":"16135:230:53","nodeType":"YulCase","src":"16135:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"15488:6:53","nodeType":"YulIdentifier","src":"15488:6:53"},{"kind":"number","nativeSrc":"15496:2:53","nodeType":"YulLiteral","src":"15496:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"15485:2:53","nodeType":"YulIdentifier","src":"15485:2:53"},"nativeSrc":"15485:14:53","nodeType":"YulFunctionCall","src":"15485:14:53"},"nativeSrc":"15478:887:53","nodeType":"YulSwitch","src":"15478:887:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"14976:1395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"15057:4:53","nodeType":"YulTypedName","src":"15057:4:53","type":""},{"name":"src","nativeSrc":"15063:3:53","nodeType":"YulTypedName","src":"15063:3:53","type":""}],"src":"14976:1395:53"}]},"contents":"{\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 mcopy(dst, src, length)\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 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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_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_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 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_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_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 abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(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_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { 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 := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101b6575f3560e01c806354d1f13d116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146105aa578063f04e283e146105e6578063f2fde38b14610602578063fee81cf41461061e576101b6565b806395d89b411461051c578063a9059cbb14610546578063d505accf14610582576101b6565b80637ecebe00116100c55780637ecebe001461046457806382aefa24146104a0578063867904b4146104ca5780638da5cb5b146104f2576101b6565b806354d1f13d1461041457806370a082311461041e578063715018a61461045a576101b6565b806323b872dd11610158578063313ce56711610132578063313ce567146103685780633644e515146103925780634a4ee7b1146103bc578063514e62fc146103d8576101b6565b806323b872dd146102e657806325692962146103225780632de948071461032c576101b6565b806318160ddd1161019457806318160ddd14610248578063183a4f6e146102725780631c10893f1461028e5780631cd64df4146102aa576101b6565b806306fdde03146101ba578063077f224a146101e4578063095ea7b31461020c575b5f80fd5b3480156101c5575f80fd5b506101ce61065a565b6040516101db91906112af565b60405180910390f35b3480156101ef575f80fd5b5061020a60048036038101906102059190611466565b6106e9565b005b348015610217575f80fd5b50610232600480360381019061022d9190611521565b610793565b60405161023f9190611579565b60405180910390f35b348015610253575f80fd5b5061025c6107e3565b60405161026991906115a1565b60405180910390f35b61028c600480360381019061028791906115ba565b6107f4565b005b6102a860048036038101906102a39190611521565b610801565b005b3480156102b5575f80fd5b506102d060048036038101906102cb9190611521565b610817565b6040516102dd9190611579565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906115e5565b61082d565b6040516103199190611579565b60405180910390f35b61032a6108fe565b005b348015610337575f80fd5b50610352600480360381019061034d9190611635565b61094f565b60405161035f91906115a1565b60405180910390f35b348015610373575f80fd5b5061037c610968565b604051610389919061167b565b60405180910390f35b34801561039d575f80fd5b506103a6610970565b6040516103b391906116ac565b60405180910390f35b6103d660048036038101906103d19190611521565b610a00565b005b3480156103e3575f80fd5b506103fe60048036038101906103f99190611521565b610a16565b60405161040b9190611579565b60405180910390f35b61041c610a2d565b005b348015610429575f80fd5b50610444600480360381019061043f9190611635565b610a66565b60405161045191906115a1565b60405180910390f35b610462610a7f565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611635565b610a92565b60405161049791906115a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610aab565b6040516104c191906115a1565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190611521565b610ab0565b005b3480156104fd575f80fd5b50610506610aca565b60405161051391906116d4565b60405180910390f35b348015610527575f80fd5b50610530610af2565b60405161053d91906112af565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190611521565b610b82565b6040516105799190611579565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190611741565b610c10565b005b3480156105b5575f80fd5b506105d060048036038101906105cb91906117de565b610dac565b6040516105dd91906115a1565b60405180910390f35b61060060048036038101906105fb9190611635565b610dca565b005b61061c60048036038101906106179190611635565b610e08565b005b348015610629575f80fd5b50610644600480360381019061063f9190611635565b610e31565b60405161065191906115a1565b60405180910390f35b60605f805461066890611849565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611849565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b5f6106f2610e4a565b905080546003825580156107245760018160011c14303b1061071b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061072e33610e73565b835f908161073c9190611a16565b50826001908161074c9190611a16565b50610758826002610f49565b801561078d576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b50505050565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b5f6805345cdf77eb68f44c54905090565b6107fe3382610f59565b50565b610809610f68565b6108138282610f49565b5050565b5f81826108238561094f565b1614905092915050565b5f610839848484610f9f565b8360601b33602052637f5e9f208117600c526034600c20805460018101156108765780851115610870576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c2080548087111561089c5763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050505050506108f3848484611043565b600190509392505050565b5f610907611048565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b5f6012905090565b5f8061097a611052565b90505f801b81036109975761098d61065a565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b610a08610f68565b610a128282610f59565b5050565b5f8082610a228561094f565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6387a211a2600c52815f526020600c20549050919050565b610a87610f68565b610a905f611056565b565b5f6338377508600c52815f526020600c20549050919050565b600281565b6002610abb8161111c565b610ac58383611151565b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b606060018054610b0190611849565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2d90611849565b8015610b785780601f10610b4f57610100808354040283529160200191610b78565b820191905f5260205f20905b815481529060010190602001808311610b5b57829003601f168201915b5050505050905090565b5f610b8e338484610f9f565b6387a211a2600c52335f526020600c20805480841115610bb55763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050610c06338484611043565b6001905092915050565b5f610c19611052565b90505f801b8103610c3657610c2c61065a565b8051906020012090505b84421115610c4b57631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d5114610d535763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b610dd2610f68565b63389a75e1600c52805f526020600c208054421115610df857636f5e88185f526004601cfd5b5f815550610e0581611056565b50565b610e10610f68565b8060601b610e2557637448fbae5f526004601cfd5b610e2e81611056565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111e3565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610f55828260016111e7565b5050565b610f6482825f6111e7565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f9d576382b429005f526004601cfd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561100757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561103e576040517f9cbe235700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b505050565b5f6202a300905090565b5f90565b61105e6111e3565b156110c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611119565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b638b78c6d81954331461114e57638b78c6d8600c52335f52806020600c20541661114d576382b429005f526004601cfd5b5b50565b61115c5f8383610f9f565b6805345cdf77eb68f44c548181018181101561117f5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506111df5f8383611043565b5050565b5f90565b638b78c6d8600c52825f526020600c2080548381178361120957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112818261123f565b61128b8185611249565b935061129b818560208601611259565b6112a481611267565b840191505092915050565b5f6020820190508181035f8301526112c78184611277565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61131e82611267565b810181811067ffffffffffffffff8211171561133d5761133c6112e8565b5b80604052505050565b5f61134f6112cf565b905061135b8282611315565b919050565b5f67ffffffffffffffff82111561137a576113796112e8565b5b61138382611267565b9050602081019050919050565b828183375f83830152505050565b5f6113b06113ab84611360565b611346565b9050828152602081018484840111156113cc576113cb6112e4565b5b6113d7848285611390565b509392505050565b5f82601f8301126113f3576113f26112e0565b5b813561140384826020860161139e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114358261140c565b9050919050565b6114458161142b565b811461144f575f80fd5b50565b5f813590506114608161143c565b92915050565b5f805f6060848603121561147d5761147c6112d8565b5b5f84013567ffffffffffffffff81111561149a576114996112dc565b5b6114a6868287016113df565b935050602084013567ffffffffffffffff8111156114c7576114c66112dc565b5b6114d3868287016113df565b92505060406114e486828701611452565b9150509250925092565b5f819050919050565b611500816114ee565b811461150a575f80fd5b50565b5f8135905061151b816114f7565b92915050565b5f8060408385031215611537576115366112d8565b5b5f61154485828601611452565b92505060206115558582860161150d565b9150509250929050565b5f8115159050919050565b6115738161155f565b82525050565b5f60208201905061158c5f83018461156a565b92915050565b61159b816114ee565b82525050565b5f6020820190506115b45f830184611592565b92915050565b5f602082840312156115cf576115ce6112d8565b5b5f6115dc8482850161150d565b91505092915050565b5f805f606084860312156115fc576115fb6112d8565b5b5f61160986828701611452565b935050602061161a86828701611452565b925050604061162b8682870161150d565b9150509250925092565b5f6020828403121561164a576116496112d8565b5b5f61165784828501611452565b91505092915050565b5f60ff82169050919050565b61167581611660565b82525050565b5f60208201905061168e5f83018461166c565b92915050565b5f819050919050565b6116a681611694565b82525050565b5f6020820190506116bf5f83018461169d565b92915050565b6116ce8161142b565b82525050565b5f6020820190506116e75f8301846116c5565b92915050565b6116f681611660565b8114611700575f80fd5b50565b5f81359050611711816116ed565b92915050565b61172081611694565b811461172a575f80fd5b50565b5f8135905061173b81611717565b92915050565b5f805f805f805f60e0888a03121561175c5761175b6112d8565b5b5f6117698a828b01611452565b975050602061177a8a828b01611452565b965050604061178b8a828b0161150d565b955050606061179c8a828b0161150d565b94505060806117ad8a828b01611703565b93505060a06117be8a828b0161172d565b92505060c06117cf8a828b0161172d565b91505092959891949750929550565b5f80604083850312156117f4576117f36112d8565b5b5f61180185828601611452565b925050602061181285828601611452565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061186057607f821691505b6020821081036118735761187261181c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261189a565b6118df868361189a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61191a611915611910846114ee565b6118f7565b6114ee565b9050919050565b5f819050919050565b61193383611900565b61194761193f82611921565b8484546118a6565b825550505050565b5f90565b61195b61194f565b61196681848461192a565b505050565b5b818110156119895761197e5f82611953565b60018101905061196c565b5050565b601f8211156119ce5761199f81611879565b6119a88461188b565b810160208510156119b7578190505b6119cb6119c38561188b565b83018261196b565b50505b505050565b5f82821c905092915050565b5f6119ee5f19846008026119d3565b1980831691505092915050565b5f611a0683836119df565b9150826002028217905092915050565b611a1f8261123f565b67ffffffffffffffff811115611a3857611a376112e8565b5b611a428254611849565b611a4d82828561198d565b5f60209050601f831160018114611a7e575f8415611a6c578287015190505b611a7685826119fb565b865550611add565b601f198416611a8c86611879565b5f5b82811015611ab357848901518255600182019150602085019450602081019050611a8e565b86831015611ad05784890151611acc601f8916826119df565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220058c997ad2d7b7ff6bf8e85fa7c09e225fbb4b0c690fc6dc2b59b30b7cb704d164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54D1F13D GT PUSH2 0xEB JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x61E JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x582 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x82AEFA24 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4F2 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x45A JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x158 JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x132 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x3D8 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x32C JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x194 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x2AA JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x20C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x793 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x7F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A3 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x15E5 JUMP JUMPDEST PUSH2 0x82D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x32A PUSH2 0x8FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x389 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x16AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D1 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH2 0xA2D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x462 PUSH2 0xA7F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B4 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x513 SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x530 PUSH2 0xAF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53D SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x551 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x567 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x579 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1741 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5CB SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DD SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x600 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x61C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE08 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x63F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x651 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 DUP1 SLOAD PUSH2 0x668 SWAP1 PUSH2 0x1849 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 0x694 SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6DF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x71B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x72E CALLER PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH0 SWAP1 DUP2 PUSH2 0x73C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP DUP3 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP PUSH2 0x758 DUP3 PUSH1 0x2 PUSH2 0xF49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FE CALLER DUP3 PUSH2 0xF59 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x809 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0x813 DUP3 DUP3 PUSH2 0xF49 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x823 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x839 DUP5 DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x876 JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x870 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x89C JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x8F3 DUP5 DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x907 PUSH2 0x1048 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x97A PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x997 JUMPI PUSH2 0x98D PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA12 DUP3 DUP3 PUSH2 0xF59 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0xA22 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA87 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA90 PUSH0 PUSH2 0x1056 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH2 0xABB DUP2 PUSH2 0x111C JUMP JUMPDEST PUSH2 0xAC5 DUP4 DUP4 PUSH2 0x1151 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xB01 SWAP1 PUSH2 0x1849 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 0xB2D SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB78 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB78 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB5B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB8E CALLER DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0xBB5 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0xC06 CALLER DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC19 PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0xC36 JUMPI PUSH2 0xC2C PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0xC4B JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0xD53 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDD2 PUSH2 0xF68 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDF8 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xE05 DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE10 PUSH2 0xF68 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE25 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xE2E DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xF55 DUP3 DUP3 PUSH1 0x1 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xF64 DUP3 DUP3 PUSH0 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF9D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x9CBE235700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x105E PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0x10C3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1119 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH4 0x8B78C6D8 NOT SLOAD CALLER EQ PUSH2 0x114E JUMPI PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x114D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x115C PUSH0 DUP4 DUP4 PUSH2 0xF9F JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x117F JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x11DF PUSH0 DUP4 DUP4 PUSH2 0x1043 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0x1209 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1281 DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x128B DUP2 DUP6 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP PUSH2 0x129B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1267 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH2 0x1267 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x133D JUMPI PUSH2 0x133C PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x134F PUSH2 0x12CF JUMP JUMPDEST SWAP1 POP PUSH2 0x135B DUP3 DUP3 PUSH2 0x1315 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x137A JUMPI PUSH2 0x1379 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1383 DUP3 PUSH2 0x1267 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13B0 PUSH2 0x13AB DUP5 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x1346 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x12E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13D7 DUP5 DUP3 DUP6 PUSH2 0x1390 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH2 0x13F2 PUSH2 0x12E0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1403 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x139E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1435 DUP3 PUSH2 0x140C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1445 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP2 EQ PUSH2 0x144F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1460 DUP2 PUSH2 0x143C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x147D JUMPI PUSH2 0x147C PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x149A JUMPI PUSH2 0x1499 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14A6 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x14E4 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1500 DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP2 EQ PUSH2 0x150A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x151B DUP2 PUSH2 0x14F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1537 JUMPI PUSH2 0x1536 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1544 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1555 DUP6 DUP3 DUP7 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1573 DUP2 PUSH2 0x155F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x158C PUSH0 DUP4 ADD DUP5 PUSH2 0x156A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15CF JUMPI PUSH2 0x15CE PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DC DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15FC JUMPI PUSH2 0x15FB PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1609 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x161A DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x162B DUP7 DUP3 DUP8 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164A JUMPI PUSH2 0x1649 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1657 DUP5 DUP3 DUP6 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1675 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168E PUSH0 DUP4 ADD DUP5 PUSH2 0x166C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A6 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16BF PUSH0 DUP4 ADD DUP5 PUSH2 0x169D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16CE DUP2 PUSH2 0x142B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16E7 PUSH0 DUP4 ADD DUP5 PUSH2 0x16C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16F6 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP2 EQ PUSH2 0x1700 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1711 DUP2 PUSH2 0x16ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1720 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP2 EQ PUSH2 0x172A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x173B DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x175C JUMPI PUSH2 0x175B PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1769 DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x177A DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x178B DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x179C DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x17AD DUP11 DUP3 DUP12 ADD PUSH2 0x1703 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x17BE DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x17CF DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F4 JUMPI PUSH2 0x17F3 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1801 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1812 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1860 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1873 JUMPI PUSH2 0x1872 PUSH2 0x181C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x18D5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x189A JUMP JUMPDEST PUSH2 0x18DF DUP7 DUP4 PUSH2 0x189A 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x191A PUSH2 0x1915 PUSH2 0x1910 DUP5 PUSH2 0x14EE JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x14EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1933 DUP4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x193F DUP3 PUSH2 0x1921 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x18A6 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x195B PUSH2 0x194F JUMP JUMPDEST PUSH2 0x1966 DUP2 DUP5 DUP5 PUSH2 0x192A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH2 0x197E PUSH0 DUP3 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x196C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x19CE JUMPI PUSH2 0x199F DUP2 PUSH2 0x1879 JUMP JUMPDEST PUSH2 0x19A8 DUP5 PUSH2 0x188B JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x19B7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x19CB PUSH2 0x19C3 DUP6 PUSH2 0x188B JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x196B JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19EE PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x19D3 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A06 DUP4 DUP4 PUSH2 0x19DF JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A1F DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A38 JUMPI PUSH2 0x1A37 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1A42 DUP3 SLOAD PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x1A4D DUP3 DUP3 DUP6 PUSH2 0x198D JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1A7E JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1A6C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1A76 DUP6 DUP3 PUSH2 0x19FB JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1ADD JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1A8C DUP7 PUSH2 0x1879 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AB3 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 0x1A8E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1AD0 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1ACC PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x19DF 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 INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV DUP13 SWAP10 PUSH27 0xD2D7B7FF6BF8E85FA7C09E225FBB4B0C690FC6DC2B59B30B7CB704 0xD1 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"394:1770:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;898:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7435:573:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6287:195;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:109:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9588:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11178:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9969:2191:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;10567:353:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:82:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:693;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9856:125:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10982:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;6548:286:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;12800:340:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;553:44:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1314:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1670:102:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8195:1406:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13324:3215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6929:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1500:98:50;1554:13;1586:5;1579:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:98;:::o;898:242::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1010:28:50::1;1027:10;1010:16;:28::i;:::-;1057:5;1049;:13;;;;;;:::i;:::-;;1082:7;1072;:17;;;;;;:::i;:::-;;1100:33;1112:7;591:6;1100:11;:33::i;:::-;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;898:242:50;;;:::o;7435:573:19:-;7509:4;7668:7;7662:4;7655:21;7702:20;7696:4;7689:34;7749:8;7743:4;7736:22;7801:6;7794:4;7788;7778:21;7771:37;7876:6;7870:4;7863:20;7964:4;7958:11;7954:2;7950:20;7940:8;7913:25;7907:4;7901;7896:75;7997:4;7990:11;;7435:573;;;;:::o;6287:195::-;6339:14;6447:18;6441:25;6431:35;;6287:195;:::o;10127:109:18:-;10198:31;10211:10;10223:5;10198:12;:31::i;:::-;10127:109;:::o;9588:123::-;12517:13:17;:11;:13::i;:::-;9680:24:18::1;9692:4;9698:5;9680:11;:24::i;:::-;9588:123:::0;;:::o;11178:139::-;11257:4;11305:5;11296;11280:13;11288:4;11280:7;:13::i;:::-;:21;:30;11273:37;;11178:139;;;;:::o;9969:2191:19:-;10057:4;10073:38;10094:4;10100:2;10104:6;10073:20;:38::i;:::-;10208:4;10204:2;10200:13;10301:8;10295:4;10288:22;10346:20;10339:5;10336:31;10330:4;10323:45;10418:4;10412;10402:21;10460:13;10454:20;10572:1;10560:10;10556:18;10553:418;;;10688:10;10680:6;10677:22;10674:159;;;10735:10;10729:4;10722:24;10810:4;10804;10797:18;10674:159;10949:6;10937:10;10933:23;10918:13;10911:46;10553:418;11067:18;11060:5;11057:29;11051:4;11044:43;11139:4;11133;11123:21;11182:15;11176:22;11272:11;11264:6;11261:23;11258:146;;;11316:10;11310:4;11303:24;11385:4;11379;11372:18;11258:146;11513:6;11500:11;11496:24;11479:15;11472:49;11596:2;11590:4;11583:16;11649:4;11643;11633:21;11899:6;11883:13;11877:20;11873:33;11858:13;11851:56;11975:6;11969:4;11962:20;12069:4;12063:11;12059:2;12055:20;12047:5;12043:2;12039:14;12012:25;12006:4;12000;11995:81;10173:1913;;;;;;12095:37;12115:4;12121:2;12125:6;12095:19;:37::i;:::-;12149:4;12142:11;;9969:2191;;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;10567:353:18:-;10627:13;10769:15;10763:4;10756:29;10811:4;10805;10798:18;10898:4;10892;10882:21;10876:28;10867:37;;10567:353;;;:::o;5860:82:19:-;5909:5;5933:2;5926:9;;5860:82;:::o;16620:693::-;16677:14;16703:16;16722:19;:17;:19::i;:::-;16703:38;;16869:1;16861:10;;16849:8;:22;16845:63;;16900:6;:4;:6::i;:::-;16884:24;;;;;;16873:35;;16845:63;16999:4;16993:11;17060:16;17057:1;17050:27;17111:8;17104:4;17101:1;17097:12;17090:30;17154:13;17147:4;17144:1;17140:12;17133:35;17202:9;17195:4;17192:1;17188:12;17181:31;17246:9;17239:4;17236:1;17232:12;17225:31;17292:4;17289:1;17279:18;17269:28;;16970:337;;16620:693;:::o;9856:125:18:-;12517:13:17;:11;:13::i;:::-;9949:25:18::1;9962:4;9968:5;9949:12;:25::i;:::-;9856:125:::0;;:::o;10982:134::-;11060:4;11108:1;11099:5;11083:13;11091:4;11083:7;:13::i;:::-;:21;:26;;11076:33;;10982:134;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;6548:286:19:-;6611:14;6716:18;6710:4;6703:32;6761:5;6755:4;6748:19;6812:4;6806;6796:21;6790:28;6780:38;;6548:286;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;12800:340:19:-;12860:14;13023:17;13017:4;13010:31;13067:5;13061:4;13054:19;13118:4;13112;13102:21;13096:28;13086:38;;12800:340;;;:::o;553:44:50:-;591:6;553:44;:::o;1314:116::-;591:6;11991:25:18;12010:5;11991:18;:25::i;:::-;1406:17:50::1;1412:2;1416:6;1406:5;:17::i;:::-;1314:116:::0;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1670:102:50:-;1726:13;1758:7;1751:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1670:102;:::o;8195:1406:19:-;8265:4;8281:44;8302:10;8314:2;8318:6;8281:20;:44::i;:::-;8474:18;8468:4;8461:32;8519:8;8513:4;8506:22;8580:4;8574;8564:21;8623:15;8617:22;8713:11;8705:6;8702:23;8699:146;;;8757:10;8751:4;8744:24;8826:4;8820;8813:18;8699:146;8954:6;8941:11;8937:24;8920:15;8913:49;9037:2;9031:4;9024:16;9090:4;9084;9074:21;9340:6;9324:13;9318:20;9314:33;9299:13;9292:56;9416:6;9410:4;9403:20;9504:4;9498:11;9494:2;9490:20;9480:8;9453:25;9447:4;9441;9436:75;8387:1134;;;9530:43;9550:10;9562:2;9566:6;9530:19;:43::i;:::-;9590:4;9583:11;;8195:1406;;;;:::o;13324:3215::-;13523:16;13542:19;:17;:19::i;:::-;13523:38;;13689:1;13681:10;;13669:8;:22;13665:63;;13720:6;:4;:6::i;:::-;13704:24;;;;;;13693:35;;13665:63;13896:8;13883:11;13880:25;13877:142;;;13937:10;13931:4;13924:24;14000:4;13994;13987:18;13877:142;14047:4;14041:11;14163:5;14159:2;14155:14;14151:2;14147:23;14138:32;;14210:7;14206:2;14202:16;14198:2;14194:25;14183:36;;14303:39;14297:4;14290:53;14369:5;14363:4;14356:19;14421:4;14415;14405:21;14463:9;14457:16;14541;14538:1;14531:27;14592:8;14585:4;14582:1;14578:12;14571:30;14635:13;14628:4;14625:1;14621:12;14614:35;14683:9;14676:4;14673:1;14669:12;14662:31;14727:9;14720:4;14717:1;14713:12;14706:31;14776:4;14773:1;14763:18;14757:4;14750:32;14845:16;14842:1;14835:27;14896:5;14889:4;14886:1;14882:12;14875:27;14936:7;14929:4;14926:1;14922:12;14915:29;14978:5;14971:4;14968:1;14964:12;14957:27;15018:10;15011:4;15008:1;15004:12;14997:32;15063:8;15056:4;15053:1;15049:12;15042:30;15111:4;15108:1;15098:18;15092:4;15085:32;15206:4;15200;15190:21;15184:4;15177:35;15248:1;15242:4;15238:12;15232:4;15225:26;15277:1;15271:4;15264:15;15305:1;15299:4;15292:15;15365:4;15359;15353;15350:1;15347;15340:5;15329:41;15786:5;15767:16;15761:23;15758:34;15748:159;;15825:10;15819:4;15812:24;15888:4;15882;15875:18;15748:159;16008:1;15996:10;15992:18;15981:9;15974:37;16222:7;16199:20;16194:3;16190:30;16187:43;16181:4;16174:57;16274:5;16267:4;16261;16251:21;16244:36;16394:7;16387:5;16360:25;16354:4;16347;16344:1;16340:12;16335:67;16428:1;16422:4;16415:15;16492:1;16486:4;16479:15;13790:2743;;;;;13324:3215;;;;;;;:::o;6929:375::-;7041:14;7150:7;7144:4;7137:21;7184:20;7178:4;7171:34;7231:5;7225:4;7218:19;7282:4;7276;7266:21;7260:28;7250:38;;6929:375;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4053:115:18:-;4130:31;4143:4;4149:5;4156:4;4130:12;:31::i;:::-;4053:115;;:::o;4304:117::-;4382:32;4395:4;4401:5;4408;4382:12;:32::i;:::-;4304:117;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;1986:176:50:-;2107:1;2091:18;;:4;:18;;;;:38;;;;;2127:1;2113:16;;:2;:16;;;;2091:38;2087:68;;;2138:17;;;;;;;;;;;;;;2087:68;1986:176;;;:::o;24791:90:19:-;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;12591:78:19:-;12651:14;12591:78;:::o;6145:1089:17:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;5219:802:18:-;5517:15;5513:20;5507:27;5497:8;5494:41;5484:521;;5610:15;5604:4;5597:29;5656:8;5650:4;5643:22;5859:5;5851:4;5845;5835:21;5829:28;5825:40;5815:176;;5902:10;5896:4;5889:24;5968:4;5962;5955:18;5815:176;5484:521;5219:802;:::o;17717:1172:19:-;17787:44;17816:1;17820:2;17824:6;17787:20;:44::i;:::-;17938:18;17932:25;18017:6;17998:17;17994:30;18114:17;18096:16;18093:39;18090:162;;;18164:10;18158:4;18151:24;18233:4;18227;18220:18;18090:162;18339:16;18319:18;18312:44;18442:18;18436:4;18429:32;18487:2;18481:4;18474:16;18540:4;18534;18524:21;18656:6;18640:13;18634:20;18630:33;18615:13;18608:56;18732:6;18726:4;18719:20;18813:4;18807:11;18803:2;18799:20;18796:1;18769:25;18763:4;18757;18752:68;17893:937;;;18839:43;18867:1;18871:2;18875:6;18839:19;:43::i;:::-;17717:1172;;:::o;4348:78:17:-;4412:10;4348:78;:::o;2952:967:18:-;3118:15;3112:4;3105:29;3160:4;3154;3147:18;3210:4;3204;3194:21;3288:8;3282:15;3395:5;3386:7;3383:18;3639:2;3629:62;;3682:5;3673:7;3669:19;3660:7;3656:33;3645:44;;3629:62;3763:7;3753:8;3746:25;3895:7;3887:4;3881:11;3877:2;3873:20;3841:30;3838:1;3835;3830:73;3091:822;;;2952:967;;;:::o;7:99:53:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:117;1678:1;1675;1668:12;1692:117;1801:1;1798;1791:12;1815:180;1863:77;1860:1;1853:88;1960:4;1957:1;1950:15;1984:4;1981:1;1974:15;2001:281;2084:27;2106:4;2084:27;:::i;:::-;2076:6;2072:40;2214:6;2202:10;2199:22;2178:18;2166:10;2163:34;2160:62;2157:88;;;2225:18;;:::i;:::-;2157:88;2265:10;2261:2;2254:22;2044:238;2001:281;;:::o;2288:129::-;2322:6;2349:20;;:::i;:::-;2339:30;;2378:33;2406:4;2398:6;2378:33;:::i;:::-;2288:129;;;:::o;2423:308::-;2485:4;2575:18;2567:6;2564:30;2561:56;;;2597:18;;:::i;:::-;2561:56;2635:29;2657:6;2635:29;:::i;:::-;2627:37;;2719:4;2713;2709:15;2701:23;;2423:308;;;:::o;2737:148::-;2835:6;2830:3;2825;2812:30;2876:1;2867:6;2862:3;2858:16;2851:27;2737:148;;;:::o;2891:425::-;2969:5;2994:66;3010:49;3052:6;3010:49;:::i;:::-;2994:66;:::i;:::-;2985:75;;3083:6;3076:5;3069:21;3121:4;3114:5;3110:16;3159:3;3150:6;3145:3;3141:16;3138:25;3135:112;;;3166:79;;:::i;:::-;3135:112;3256:54;3303:6;3298:3;3293;3256:54;:::i;:::-;2975:341;2891:425;;;;;:::o;3336:340::-;3392:5;3441:3;3434:4;3426:6;3422:17;3418:27;3408:122;;3449:79;;:::i;:::-;3408:122;3566:6;3553:20;3591:79;3666:3;3658:6;3651:4;3643:6;3639:17;3591:79;:::i;:::-;3582:88;;3398:278;3336:340;;;;:::o;3682:126::-;3719:7;3759:42;3752:5;3748:54;3737:65;;3682:126;;;:::o;3814:96::-;3851:7;3880:24;3898:5;3880:24;:::i;:::-;3869:35;;3814:96;;;:::o;3916:122::-;3989:24;4007:5;3989:24;:::i;:::-;3982:5;3979:35;3969:63;;4028:1;4025;4018:12;3969:63;3916:122;:::o;4044:139::-;4090:5;4128:6;4115:20;4106:29;;4144:33;4171:5;4144:33;:::i;:::-;4044:139;;;;:::o;4189:979::-;4286:6;4294;4302;4351:2;4339:9;4330:7;4326:23;4322:32;4319:119;;;4357:79;;:::i;:::-;4319:119;4505:1;4494:9;4490:17;4477:31;4535:18;4527:6;4524:30;4521:117;;;4557:79;;:::i;:::-;4521:117;4662:63;4717:7;4708:6;4697:9;4693:22;4662:63;:::i;:::-;4652:73;;4448:287;4802:2;4791:9;4787:18;4774:32;4833:18;4825:6;4822:30;4819:117;;;4855:79;;:::i;:::-;4819:117;4960:63;5015:7;5006:6;4995:9;4991:22;4960:63;:::i;:::-;4950:73;;4745:288;5072:2;5098:53;5143:7;5134:6;5123:9;5119:22;5098:53;:::i;:::-;5088:63;;5043:118;4189:979;;;;;:::o;5174:77::-;5211:7;5240:5;5229:16;;5174:77;;;:::o;5257:122::-;5330:24;5348:5;5330:24;:::i;:::-;5323:5;5320:35;5310:63;;5369:1;5366;5359:12;5310:63;5257:122;:::o;5385:139::-;5431:5;5469:6;5456:20;5447:29;;5485:33;5512:5;5485:33;:::i;:::-;5385:139;;;;:::o;5530:474::-;5598:6;5606;5655:2;5643:9;5634:7;5630:23;5626:32;5623:119;;;5661:79;;:::i;:::-;5623:119;5781:1;5806:53;5851:7;5842:6;5831:9;5827:22;5806:53;:::i;:::-;5796:63;;5752:117;5908:2;5934:53;5979:7;5970:6;5959:9;5955:22;5934:53;:::i;:::-;5924:63;;5879:118;5530:474;;;;;:::o;6010:90::-;6044:7;6087:5;6080:13;6073:21;6062:32;;6010:90;;;:::o;6106:109::-;6187:21;6202:5;6187:21;:::i;:::-;6182:3;6175:34;6106:109;;:::o;6221:210::-;6308:4;6346:2;6335:9;6331:18;6323:26;;6359:65;6421:1;6410:9;6406:17;6397:6;6359:65;:::i;:::-;6221:210;;;;:::o;6437:118::-;6524:24;6542:5;6524:24;:::i;:::-;6519:3;6512:37;6437:118;;:::o;6561:222::-;6654:4;6692:2;6681:9;6677:18;6669:26;;6705:71;6773:1;6762:9;6758:17;6749:6;6705:71;:::i;:::-;6561:222;;;;:::o;6789:329::-;6848:6;6897:2;6885:9;6876:7;6872:23;6868:32;6865:119;;;6903:79;;:::i;:::-;6865:119;7023:1;7048:53;7093:7;7084:6;7073:9;7069:22;7048:53;:::i;:::-;7038:63;;6994:117;6789:329;;;;:::o;7124:619::-;7201:6;7209;7217;7266:2;7254:9;7245:7;7241:23;7237:32;7234:119;;;7272:79;;:::i;:::-;7234:119;7392:1;7417:53;7462:7;7453:6;7442:9;7438:22;7417:53;:::i;:::-;7407:63;;7363:117;7519:2;7545:53;7590:7;7581:6;7570:9;7566:22;7545:53;:::i;:::-;7535:63;;7490:118;7647:2;7673:53;7718:7;7709:6;7698:9;7694:22;7673:53;:::i;:::-;7663:63;;7618:118;7124:619;;;;;:::o;7749:329::-;7808:6;7857:2;7845:9;7836:7;7832:23;7828:32;7825:119;;;7863:79;;:::i;:::-;7825:119;7983:1;8008:53;8053:7;8044:6;8033:9;8029:22;8008:53;:::i;:::-;7998:63;;7954:117;7749:329;;;;:::o;8084:86::-;8119:7;8159:4;8152:5;8148:16;8137:27;;8084:86;;;:::o;8176:112::-;8259:22;8275:5;8259:22;:::i;:::-;8254:3;8247:35;8176:112;;:::o;8294:214::-;8383:4;8421:2;8410:9;8406:18;8398:26;;8434:67;8498:1;8487:9;8483:17;8474:6;8434:67;:::i;:::-;8294:214;;;;:::o;8514:77::-;8551:7;8580:5;8569:16;;8514:77;;;:::o;8597:118::-;8684:24;8702:5;8684:24;:::i;:::-;8679:3;8672:37;8597:118;;:::o;8721:222::-;8814:4;8852:2;8841:9;8837:18;8829:26;;8865:71;8933:1;8922:9;8918:17;8909:6;8865:71;:::i;:::-;8721:222;;;;:::o;8949:118::-;9036:24;9054:5;9036:24;:::i;:::-;9031:3;9024:37;8949:118;;:::o;9073:222::-;9166:4;9204:2;9193:9;9189:18;9181:26;;9217:71;9285:1;9274:9;9270:17;9261:6;9217:71;:::i;:::-;9073:222;;;;:::o;9301:118::-;9372:22;9388:5;9372:22;:::i;:::-;9365:5;9362:33;9352:61;;9409:1;9406;9399:12;9352:61;9301:118;:::o;9425:135::-;9469:5;9507:6;9494:20;9485:29;;9523:31;9548:5;9523:31;:::i;:::-;9425:135;;;;:::o;9566:122::-;9639:24;9657:5;9639:24;:::i;:::-;9632:5;9629:35;9619:63;;9678:1;9675;9668:12;9619:63;9566:122;:::o;9694:139::-;9740:5;9778:6;9765:20;9756:29;;9794:33;9821:5;9794:33;:::i;:::-;9694:139;;;;:::o;9839:1199::-;9950:6;9958;9966;9974;9982;9990;9998;10047:3;10035:9;10026:7;10022:23;10018:33;10015:120;;;10054:79;;:::i;:::-;10015:120;10174:1;10199:53;10244:7;10235:6;10224:9;10220:22;10199:53;:::i;:::-;10189:63;;10145:117;10301:2;10327:53;10372:7;10363:6;10352:9;10348:22;10327:53;:::i;:::-;10317:63;;10272:118;10429:2;10455:53;10500:7;10491:6;10480:9;10476:22;10455:53;:::i;:::-;10445:63;;10400:118;10557:2;10583:53;10628:7;10619:6;10608:9;10604:22;10583:53;:::i;:::-;10573:63;;10528:118;10685:3;10712:51;10755:7;10746:6;10735:9;10731:22;10712:51;:::i;:::-;10702:61;;10656:117;10812:3;10839:53;10884:7;10875:6;10864:9;10860:22;10839:53;:::i;:::-;10829:63;;10783:119;10941:3;10968:53;11013:7;11004:6;10993:9;10989:22;10968:53;:::i;:::-;10958:63;;10912:119;9839:1199;;;;;;;;;;:::o;11044:474::-;11112:6;11120;11169:2;11157:9;11148:7;11144:23;11140:32;11137:119;;;11175:79;;:::i;:::-;11137:119;11295:1;11320:53;11365:7;11356:6;11345:9;11341:22;11320:53;:::i;:::-;11310:63;;11266:117;11422:2;11448:53;11493:7;11484:6;11473:9;11469:22;11448:53;:::i;:::-;11438:63;;11393:118;11044:474;;;;;:::o;11524:180::-;11572:77;11569:1;11562:88;11669:4;11666:1;11659:15;11693:4;11690:1;11683:15;11710:320;11754:6;11791:1;11785:4;11781:12;11771:22;;11838:1;11832:4;11828:12;11859:18;11849:81;;11915:4;11907:6;11903:17;11893:27;;11849:81;11977:2;11969:6;11966:14;11946:18;11943:38;11940:84;;11996:18;;:::i;:::-;11940:84;11761:269;11710:320;;;:::o;12036:141::-;12085:4;12108:3;12100:11;;12131:3;12128:1;12121:14;12165:4;12162:1;12152:18;12144:26;;12036:141;;;:::o;12183:93::-;12220:6;12267:2;12262;12255:5;12251:14;12247:23;12237:33;;12183:93;;;:::o;12282:107::-;12326:8;12376:5;12370:4;12366:16;12345:37;;12282:107;;;;:::o;12395:393::-;12464:6;12514:1;12502:10;12498:18;12537:97;12567:66;12556:9;12537:97;:::i;:::-;12655:39;12685:8;12674:9;12655:39;:::i;:::-;12643:51;;12727:4;12723:9;12716:5;12712:21;12703:30;;12776:4;12766:8;12762:19;12755:5;12752:30;12742:40;;12471:317;;12395:393;;;;;:::o;12794:60::-;12822:3;12843:5;12836:12;;12794:60;;;:::o;12860:142::-;12910:9;12943:53;12961:34;12970:24;12988:5;12970:24;:::i;:::-;12961:34;:::i;:::-;12943:53;:::i;:::-;12930:66;;12860:142;;;:::o;13008:75::-;13051:3;13072:5;13065:12;;13008:75;;;:::o;13089:269::-;13199:39;13230:7;13199:39;:::i;:::-;13260:91;13309:41;13333:16;13309:41;:::i;:::-;13301:6;13294:4;13288:11;13260:91;:::i;:::-;13254:4;13247:105;13165:193;13089:269;;;:::o;13364:73::-;13409:3;13364:73;:::o;13443:189::-;13520:32;;:::i;:::-;13561:65;13619:6;13611;13605:4;13561:65;:::i;:::-;13496:136;13443:189;;:::o;13638:186::-;13698:120;13715:3;13708:5;13705:14;13698:120;;;13769:39;13806:1;13799:5;13769:39;:::i;:::-;13742:1;13735:5;13731:13;13722:22;;13698:120;;;13638:186;;:::o;13830:543::-;13931:2;13926:3;13923:11;13920:446;;;13965:38;13997:5;13965:38;:::i;:::-;14049:29;14067:10;14049:29;:::i;:::-;14039:8;14035:44;14232:2;14220:10;14217:18;14214:49;;;14253:8;14238:23;;14214:49;14276:80;14332:22;14350:3;14332:22;:::i;:::-;14322:8;14318:37;14305:11;14276:80;:::i;:::-;13935:431;;13920:446;13830:543;;;:::o;14379:117::-;14433:8;14483:5;14477:4;14473:16;14452:37;;14379:117;;;;:::o;14502:169::-;14546:6;14579:51;14627:1;14623:6;14615:5;14612:1;14608:13;14579:51;:::i;:::-;14575:56;14660:4;14654;14650:15;14640:25;;14553:118;14502:169;;;;:::o;14676:295::-;14752:4;14898:29;14923:3;14917:4;14898:29;:::i;:::-;14890:37;;14960:3;14957:1;14953:11;14947:4;14944:21;14936:29;;14676:295;;;;:::o;14976:1395::-;15093:37;15126:3;15093:37;:::i;:::-;15195:18;15187:6;15184:30;15181:56;;;15217:18;;:::i;:::-;15181:56;15261:38;15293:4;15287:11;15261:38;:::i;:::-;15346:67;15406:6;15398;15392:4;15346:67;:::i;:::-;15440:1;15464:4;15451:17;;15496:2;15488:6;15485:14;15513:1;15508:618;;;;16170:1;16187:6;16184:77;;;16236:9;16231:3;16227:19;16221:26;16212:35;;16184:77;16287:67;16347:6;16340:5;16287:67;:::i;:::-;16281:4;16274:81;16143:222;15478:887;;15508:618;15560:4;15556:9;15548:6;15544:22;15594:37;15626:4;15594:37;:::i;:::-;15653:1;15667:208;15681:7;15678:1;15675:14;15667:208;;;15760:9;15755:3;15751:19;15745:26;15737:6;15730:42;15811:1;15803:6;15799:14;15789:24;;15858:2;15847:9;15843:18;15830:31;;15704:4;15701:1;15697:12;15692:17;;15667:208;;;15903:6;15894:7;15891:19;15888:179;;;15961:9;15956:3;15952:19;15946:26;16004:48;16046:4;16038:6;16034:17;16023:9;16004:48;:::i;:::-;15996:6;15989:64;15911:156;15888:179;16113:1;16109;16101:6;16097:14;16093:22;16087:4;16080:36;15515:611;;;15478:887;;15068:1303;;;14976:1395;;:::o"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","ISSUER_ROLE()":"82aefa24","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","decimals()":"313ce567","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","initialize(string,string,address)":"077f224a","issue(address,uint256)":"867904b4","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ISSUER_ROLE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"initialize(string,string,address)\":{\"params\":{\"minter_\":\"The initial holder of the minter role\",\"name_\":\"The name of the token\",\"symbol_\":\"The symbol of the token\"}},\"issue(address,uint256)\":{\"params\":{\"amount\":\"The amount of points to issue\",\"to\":\"The address to assign the points to\"}},\"name()\":{\"details\":\"Returns the name of the token.\",\"returns\":{\"_0\":\"The name of the token\"}},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\",\"returns\":{\"_0\":\"The symbol of the token\"}},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Points\",\"version\":1},\"userdoc\":{\"errors\":{\"NonTransferable()\":[{\"notice\":\"Thrown when an attempt is made to transfer points\"}]},\"kind\":\"user\",\"methods\":{\"ISSUER_ROLE()\":{\"notice\":\"The role for issuing points\"},\"initialize(string,string,address)\":{\"notice\":\"Initialize the Points contract\"},\"issue(address,uint256)\":{\"notice\":\"Issue `amount` points and assign them to `to`\"}},\"notice\":\"A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/tokens/Points.sol\":\"Points\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/tokens/Points.sol\":{\"keccak256\":\"0xcc98ecdde8946dc7233d8c5177b387f72b5ec8c401faebd3db23e95822c08895\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fdbae50eda5684f34bbcc248a7877c23ac4eadc91349ed09ad368ba0ac9dcdf\",\"dweb:/ipfs/QmZbqpDEdW2d9r2fPzF8fdT42Vi6GJpRFdNv47qoB6U5F8\"]}},\"version\":1}"}},"contracts/validators/SignerValidator.sol":{"SignerValidator":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Replayed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"signers_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_18060":{"entryPoint":null,"id":18060,"parameterSlots":0,"returnSlots":0},"@_18250":{"entryPoint":null,"id":18250,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6113f3806101b45f395ff3fe6080604052600436106100a6575f3560e01c8063736c0d5b11610063578063736c0d5b146101545780638da5cb5b14610190578063c16e50ef146101ba578063f04e283e146101f6578063f2fde38b14610212578063fee81cf41461022e576100a6565b806301ffc9a7146100aa57806325692962146100e65780634359d28a146100f0578063439fab911461011857806354d1f13d14610140578063715018a61461014a575b5f80fd5b3480156100b5575f80fd5b506100d060048036038101906100cb9190610c67565b61026a565b6040516100dd9190610cac565b60405180910390f35b6100ee6102e3565b005b3480156100fb575f80fd5b5061011660048036038101906101119190610d7b565b610334565b005b348015610123575f80fd5b5061013e60048036038101906101399190610e4e565b61043d565b005b610148610570565b005b6101526105a9565b005b34801561015f575f80fd5b5061017a60048036038101906101759190610ef3565b6105bc565b6040516101879190610cac565b60405180910390f35b34801561019b575f80fd5b506101a46105d8565b6040516101b19190610f2d565b60405180910390f35b3480156101c5575f80fd5b506101e060048036038101906101db9190610e4e565b610600565b6040516101ed9190610cac565b60405180910390f35b610210600480360381019061020b9190610ef3565b610762565b005b61022c60048036038101906102279190610ef3565b6107a0565b005b348015610239575f80fd5b50610254600480360381019061024f9190610ef3565b6107c9565b6040516102619190610f5e565b60405180910390f35b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102dc57506102db826107e2565b5b9050919050565b5f6102ec61085b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61033c610865565b81819050848490501461037b576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156104365782828281811061039b5761039a610f77565b5b90506020020160208101906103b09190610fce565b5f808787858181106103c5576103c4610f77565b5b90506020020160208101906103da9190610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061037d565b5050505050565b5f61044661089c565b905080546003825580156104785760018160011c14303b1061046f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104899190611141565b90506104ae815f815181106104a1576104a0610f77565b5b60200260200101516108c5565b5f5b81518110156105345760015f808484815181106104d0576104cf610f77565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104b0565b5050801561056b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105b1610865565b6105ba5f61099b565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f80858581019061061391906112a6565b9250925092505f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610698576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015f8381526020019081526020015f205f9054906101000a900460ff16156106fc578282826040517fcde6ac870000000000000000000000000000000000000000000000000000000081526004016106f393929190611381565b60405180910390fd5b6001805f8481526020019081526020015f205f6101000a81548160ff02191690831515021790555061075761073083610a61565b828573ffffffffffffffffffffffffffffffffffffffff16610a919092919063ffffffff16565b935050505092915050565b61076a610865565b63389a75e1600c52805f526020600c20805442111561079057636f5e88185f526004601cfd5b5f81555061079d8161099b565b50565b6107a8610865565b8060601b6107bd57637448fbae5f526004601cfd5b6107c68161099b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610854575061085382610b94565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461089a576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108cd610bfd565b15610945577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561090757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610998565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6109a3610bfd565b15610a08577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610a5e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f816020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c6004209050919050565b5f8360601b60601c93508315610b8d57604051835f5260208301516040526040835103610afe576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610afb57600193505f60605282604052505050610b8d565b50505b6041835103610b445760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610b4257600192505f606052816040525050610b8d565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4681610c12565b8114610c50575f80fd5b50565b5f81359050610c6181610c3d565b92915050565b5f60208284031215610c7c57610c7b610c0a565b5b5f610c8984828501610c53565b91505092915050565b5f8115159050919050565b610ca681610c92565b82525050565b5f602082019050610cbf5f830184610c9d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610ce657610ce5610cc5565b5b8235905067ffffffffffffffff811115610d0357610d02610cc9565b5b602083019150836020820283011115610d1f57610d1e610ccd565b5b9250929050565b5f8083601f840112610d3b57610d3a610cc5565b5b8235905067ffffffffffffffff811115610d5857610d57610cc9565b5b602083019150836020820283011115610d7457610d73610ccd565b5b9250929050565b5f805f8060408587031215610d9357610d92610c0a565b5b5f85013567ffffffffffffffff811115610db057610daf610c0e565b5b610dbc87828801610cd1565b9450945050602085013567ffffffffffffffff811115610ddf57610dde610c0e565b5b610deb87828801610d26565b925092505092959194509250565b5f8083601f840112610e0e57610e0d610cc5565b5b8235905067ffffffffffffffff811115610e2b57610e2a610cc9565b5b602083019150836001820283011115610e4757610e46610ccd565b5b9250929050565b5f8060208385031215610e6457610e63610c0a565b5b5f83013567ffffffffffffffff811115610e8157610e80610c0e565b5b610e8d85828601610df9565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ec282610e99565b9050919050565b610ed281610eb8565b8114610edc575f80fd5b50565b5f81359050610eed81610ec9565b92915050565b5f60208284031215610f0857610f07610c0a565b5b5f610f1584828501610edf565b91505092915050565b610f2781610eb8565b82525050565b5f602082019050610f405f830184610f1e565b92915050565b5f819050919050565b610f5881610f46565b82525050565b5f602082019050610f715f830184610f4f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610fad81610c92565b8114610fb7575f80fd5b50565b5f81359050610fc881610fa4565b92915050565b5f60208284031215610fe357610fe2610c0a565b5b5f610ff084828501610fba565b91505092915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61103f82610ff9565b810181811067ffffffffffffffff8211171561105e5761105d611009565b5b80604052505050565b5f611070610c01565b905061107c8282611036565b919050565b5f67ffffffffffffffff82111561109b5761109a611009565b5b602082029050602081019050919050565b5f6110be6110b984611081565b611067565b905080838252602082019050602084028301858111156110e1576110e0610ccd565b5b835b8181101561110a57806110f68882610edf565b8452602084019350506020810190506110e3565b5050509392505050565b5f82601f83011261112857611127610cc5565b5b81356111388482602086016110ac565b91505092915050565b5f6020828403121561115657611155610c0a565b5b5f82013567ffffffffffffffff81111561117357611172610c0e565b5b61117f84828501611114565b91505092915050565b5f61119282610e99565b9050919050565b6111a281611188565b81146111ac575f80fd5b50565b5f813590506111bd81611199565b92915050565b5f819050919050565b6111d5816111c3565b81146111df575f80fd5b50565b5f813590506111f0816111cc565b92915050565b5f80fd5b5f67ffffffffffffffff82111561121457611213611009565b5b61121d82610ff9565b9050602081019050919050565b828183375f83830152505050565b5f61124a611245846111fa565b611067565b905082815260208101848484011115611266576112656111f6565b5b61127184828561122a565b509392505050565b5f82601f83011261128d5761128c610cc5565b5b813561129d848260208601611238565b91505092915050565b5f805f606084860312156112bd576112bc610c0a565b5b5f6112ca868287016111af565b93505060206112db868287016111e2565b925050604084013567ffffffffffffffff8111156112fc576112fb610c0e565b5b61130886828701611279565b9150509250925092565b61131b816111c3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61135382611321565b61135d818561132b565b935061136d81856020860161133b565b61137681610ff9565b840191505092915050565b5f6060820190506113945f830186610f1e565b6113a16020830185611312565b81810360408301526113b38184611349565b905094935050505056fea2646970667358221220fb96b8bbaa716ab5834801787dcb38454cf3f296d0e18168b53e83467fc8812c64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x13F3 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x736C0D5B GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x22E JUMPI PUSH2 0xA6 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEE PUSH2 0x2E3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x123 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x43D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x148 PUSH2 0x570 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x152 PUSH2 0x5A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A4 PUSH2 0x5D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0xF2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x600 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x210 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20B SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x762 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x22C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x227 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7A0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24F SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2DC JUMPI POP PUSH2 0x2DB DUP3 PUSH2 0x7E2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2EC PUSH2 0x85B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x33C PUSH2 0x865 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x436 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x39B JUMPI PUSH2 0x39A PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0xFCE JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x3C5 JUMPI PUSH2 0x3C4 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x446 PUSH2 0x89C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x478 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x46F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x489 SWAP2 SWAP1 PUSH2 0x1141 JUMP JUMPDEST SWAP1 POP PUSH2 0x4AE DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x4A1 JUMPI PUSH2 0x4A0 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8C5 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x534 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x4D0 JUMPI PUSH2 0x4CF PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x4B0 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x56B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x5B1 PUSH2 0x865 JUMP JUMPDEST PUSH2 0x5BA PUSH0 PUSH2 0x99B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 DUP6 DUP6 DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x698 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6FC JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xCDE6AC8700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1381 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x757 PUSH2 0x730 DUP4 PUSH2 0xA61 JUMP JUMPDEST DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA91 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x76A PUSH2 0x865 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x790 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x79D DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7A8 PUSH2 0x865 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7BD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7C6 DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x854 JUMPI POP PUSH2 0x853 DUP3 PUSH2 0xB94 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x89A JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8CD PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0x945 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x907 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x998 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A3 PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0xA08 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xA5E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH28 0x19457468657265756D205369676E6564204D6573736167653A0A3332 PUSH0 MSTORE PUSH1 0x3C PUSH1 0x4 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP4 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP4 POP DUP4 ISZERO PUSH2 0xB8D JUMPI PUSH1 0x40 MLOAD DUP4 PUSH0 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MSTORE PUSH1 0x40 DUP4 MLOAD SUB PUSH2 0xAFE JUMPI PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x1B DUP2 PUSH1 0xFF SHR ADD PUSH1 0x20 MSTORE DUP1 PUSH1 0x1 SHL PUSH1 0x1 SHR PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP8 XOR RETURNDATASIZE ISZERO OR PUSH2 0xAFB JUMPI PUSH1 0x1 SWAP4 POP PUSH0 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE POP POP POP PUSH2 0xB8D JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x41 DUP4 MLOAD SUB PUSH2 0xB44 JUMPI PUSH1 0x60 DUP4 ADD MLOAD PUSH0 BYTE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP7 XOR RETURNDATASIZE ISZERO OR PUSH2 0xB42 JUMPI PUSH1 0x1 SWAP3 POP PUSH0 PUSH1 0x60 MSTORE DUP2 PUSH1 0x40 MSTORE POP POP PUSH2 0xB8D JUMP JUMPDEST POP JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP1 DUP3 MSTORE DUP5 PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD PUSH1 0x40 DUP2 MSTORE DUP5 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x44 DUP6 ADD DUP3 DUP9 PUSH1 0x4 GAS STATICCALL POP PUSH1 0x20 DUP3 PUSH1 0x44 RETURNDATASIZE ADD DUP7 DUP12 GAS STATICCALL DUP4 DUP4 MLOAD EQ AND SWAP5 POP POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xC12 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC61 DUP2 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7C JUMPI PUSH2 0xC7B PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC89 DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA6 DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCBF PUSH0 DUP4 ADD DUP5 PUSH2 0xC9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xCE6 JUMPI PUSH2 0xCE5 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD03 JUMPI PUSH2 0xD02 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD1F JUMPI PUSH2 0xD1E PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD57 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD74 JUMPI PUSH2 0xD73 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDB0 JUMPI PUSH2 0xDAF PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDBC DUP8 DUP3 DUP9 ADD PUSH2 0xCD1 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDDF JUMPI PUSH2 0xDDE PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDEB DUP8 DUP3 DUP9 ADD PUSH2 0xD26 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE0E JUMPI PUSH2 0xE0D PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2B JUMPI PUSH2 0xE2A PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE47 JUMPI PUSH2 0xE46 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE64 JUMPI PUSH2 0xE63 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xE8D DUP6 DUP3 DUP7 ADD PUSH2 0xDF9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xEC2 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xED2 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0xEDC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEED DUP2 PUSH2 0xEC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF15 DUP5 DUP3 DUP6 ADD PUSH2 0xEDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF27 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF40 PUSH0 DUP4 ADD DUP5 PUSH2 0xF1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF58 DUP2 PUSH2 0xF46 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF71 PUSH0 DUP4 ADD DUP5 PUSH2 0xF4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFAD DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP2 EQ PUSH2 0xFB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFC8 DUP2 PUSH2 0xFA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE3 JUMPI PUSH2 0xFE2 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFF0 DUP5 DUP3 DUP6 ADD PUSH2 0xFBA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x103F DUP3 PUSH2 0xFF9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x105E JUMPI PUSH2 0x105D PUSH2 0x1009 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1070 PUSH2 0xC01 JUMP JUMPDEST SWAP1 POP PUSH2 0x107C DUP3 DUP3 PUSH2 0x1036 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x109B JUMPI PUSH2 0x109A PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BE PUSH2 0x10B9 DUP5 PUSH2 0x1081 JUMP JUMPDEST PUSH2 0x1067 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 0x10E1 JUMPI PUSH2 0x10E0 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x110A JUMPI DUP1 PUSH2 0x10F6 DUP9 DUP3 PUSH2 0xEDF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x10E3 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1128 JUMPI PUSH2 0x1127 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1138 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x10AC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1156 JUMPI PUSH2 0x1155 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1173 JUMPI PUSH2 0x1172 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x117F DUP5 DUP3 DUP6 ADD PUSH2 0x1114 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1192 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11A2 DUP2 PUSH2 0x1188 JUMP JUMPDEST DUP2 EQ PUSH2 0x11AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11BD DUP2 PUSH2 0x1199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP2 EQ PUSH2 0x11DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11F0 DUP2 PUSH2 0x11CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1214 JUMPI PUSH2 0x1213 PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH2 0x121D DUP3 PUSH2 0xFF9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x124A PUSH2 0x1245 DUP5 PUSH2 0x11FA JUMP JUMPDEST PUSH2 0x1067 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1266 JUMPI PUSH2 0x1265 PUSH2 0x11F6 JUMP JUMPDEST JUMPDEST PUSH2 0x1271 DUP5 DUP3 DUP6 PUSH2 0x122A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x128D JUMPI PUSH2 0x128C PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x129D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1238 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x12BD JUMPI PUSH2 0x12BC PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CA DUP7 DUP3 DUP8 ADD PUSH2 0x11AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x12DB DUP7 DUP3 DUP8 ADD PUSH2 0x11E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12FC JUMPI PUSH2 0x12FB PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x1308 DUP7 DUP3 DUP8 ADD PUSH2 0x1279 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x131B DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1353 DUP3 PUSH2 0x1321 JUMP JUMPDEST PUSH2 0x135D DUP2 DUP6 PUSH2 0x132B JUMP JUMPDEST SWAP4 POP PUSH2 0x136D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x133B JUMP JUMPDEST PUSH2 0x1376 DUP2 PUSH2 0xFF9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1394 PUSH0 DUP4 ADD DUP7 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x13A1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1312 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13B3 DUP2 DUP5 PUSH2 0x1349 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SWAP7 0xB8 0xBB 0xAA PUSH18 0x6AB5834801787DCB38454CF3F296D0E18168 0xB5 RETURNDATACOPY DUP4 CHAINID PUSH32 0xC8812C64736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"515:2634:51:-:0;;;1038:53;;;;;;;;;;703:28:52;720:10;703:16;;;:28;;:::i;:::-;1062:22:51;:20;;;:22;;:::i;:::-;515:2634;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;515:2634:51:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":2149,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3069,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2204,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2245,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":2139,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":2459,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1392,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":1890,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_18111":{"entryPoint":1085,"id":18111,"parameterSlots":2,"returnSlots":0},"@isValidSignatureNow_11389":{"entryPoint":2705,"id":11389,"parameterSlots":3,"returnSlots":1},"@owner_6404":{"entryPoint":1496,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":1993,"id":6414,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1449,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":739,"id":6376,"parameterSlots":0,"returnSlots":0},"@setAuthorized_18223":{"entryPoint":820,"id":18223,"parameterSlots":4,"returnSlots":0},"@signers_18047":{"entryPoint":1468,"id":18047,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17719":{"entryPoint":2018,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18281":{"entryPoint":618,"id":18281,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":2964,"id":2844,"parameterSlots":1,"returnSlots":1},"@toEthSignedMessageHash_11509":{"entryPoint":2657,"id":11509,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":1952,"id":6347,"parameterSlots":1,"returnSlots":0},"@validate_18176":{"entryPoint":1536,"id":18176,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4268,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4664,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3807,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4527,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":3281,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4372,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3366,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":4026,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":4578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3577,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4729,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3827,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr":{"entryPoint":4774,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3451,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4417,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool":{"entryPoint":4046,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3175,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3662,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3870,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3229,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":4882,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4937,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3919,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4993,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3244,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3934,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4199,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3073,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4225,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4602,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4897,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4907,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3768,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4488,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3218,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":4547,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3090,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3737,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3910,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4650,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4923,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4150,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":3959,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4105,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3273,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3269,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3277,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4598,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3086,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3082,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4089,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3785,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4505,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4004,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":4556,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3133,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14634:53","nodeType":"YulBlock","src":"0:14634:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1994:478:53","nodeType":"YulBlock","src":"1994:478:53","statements":[{"body":{"nativeSrc":"2043:83:53","nodeType":"YulBlock","src":"2043:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2045:77:53","nodeType":"YulIdentifier","src":"2045:77:53"},"nativeSrc":"2045:79:53","nodeType":"YulFunctionCall","src":"2045:79:53"},"nativeSrc":"2045:79:53","nodeType":"YulExpressionStatement","src":"2045:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2022:6:53","nodeType":"YulIdentifier","src":"2022:6:53"},{"kind":"number","nativeSrc":"2030:4:53","nodeType":"YulLiteral","src":"2030:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2018:3:53","nodeType":"YulIdentifier","src":"2018:3:53"},"nativeSrc":"2018:17:53","nodeType":"YulFunctionCall","src":"2018:17:53"},{"name":"end","nativeSrc":"2037:3:53","nodeType":"YulIdentifier","src":"2037:3:53"}],"functionName":{"name":"slt","nativeSrc":"2014:3:53","nodeType":"YulIdentifier","src":"2014:3:53"},"nativeSrc":"2014:27:53","nodeType":"YulFunctionCall","src":"2014:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2007:6:53","nodeType":"YulIdentifier","src":"2007:6:53"},"nativeSrc":"2007:35:53","nodeType":"YulFunctionCall","src":"2007:35:53"},"nativeSrc":"2004:122:53","nodeType":"YulIf","src":"2004:122:53"},{"nativeSrc":"2135:30:53","nodeType":"YulAssignment","src":"2135:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2158:6:53","nodeType":"YulIdentifier","src":"2158:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2145:12:53","nodeType":"YulIdentifier","src":"2145:12:53"},"nativeSrc":"2145:20:53","nodeType":"YulFunctionCall","src":"2145:20:53"},"variableNames":[{"name":"length","nativeSrc":"2135:6:53","nodeType":"YulIdentifier","src":"2135:6:53"}]},{"body":{"nativeSrc":"2208:83:53","nodeType":"YulBlock","src":"2208:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2210:77:53","nodeType":"YulIdentifier","src":"2210:77:53"},"nativeSrc":"2210:79:53","nodeType":"YulFunctionCall","src":"2210:79:53"},"nativeSrc":"2210:79:53","nodeType":"YulExpressionStatement","src":"2210:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2180:6:53","nodeType":"YulIdentifier","src":"2180:6:53"},{"kind":"number","nativeSrc":"2188:18:53","nodeType":"YulLiteral","src":"2188:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2177:2:53","nodeType":"YulIdentifier","src":"2177:2:53"},"nativeSrc":"2177:30:53","nodeType":"YulFunctionCall","src":"2177:30:53"},"nativeSrc":"2174:117:53","nodeType":"YulIf","src":"2174:117:53"},{"nativeSrc":"2300:29:53","nodeType":"YulAssignment","src":"2300:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2316:6:53","nodeType":"YulIdentifier","src":"2316:6:53"},{"kind":"number","nativeSrc":"2324:4:53","nodeType":"YulLiteral","src":"2324:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2312:3:53","nodeType":"YulIdentifier","src":"2312:3:53"},"nativeSrc":"2312:17:53","nodeType":"YulFunctionCall","src":"2312:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2300:8:53","nodeType":"YulIdentifier","src":"2300:8:53"}]},{"body":{"nativeSrc":"2383:83:53","nodeType":"YulBlock","src":"2383:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2385:77:53","nodeType":"YulIdentifier","src":"2385:77:53"},"nativeSrc":"2385:79:53","nodeType":"YulFunctionCall","src":"2385:79:53"},"nativeSrc":"2385:79:53","nodeType":"YulExpressionStatement","src":"2385:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2348:8:53","nodeType":"YulIdentifier","src":"2348:8:53"},{"arguments":[{"name":"length","nativeSrc":"2362:6:53","nodeType":"YulIdentifier","src":"2362:6:53"},{"kind":"number","nativeSrc":"2370:4:53","nodeType":"YulLiteral","src":"2370:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"},"nativeSrc":"2358:17:53","nodeType":"YulFunctionCall","src":"2358:17:53"}],"functionName":{"name":"add","nativeSrc":"2344:3:53","nodeType":"YulIdentifier","src":"2344:3:53"},"nativeSrc":"2344:32:53","nodeType":"YulFunctionCall","src":"2344:32:53"},{"name":"end","nativeSrc":"2378:3:53","nodeType":"YulIdentifier","src":"2378:3:53"}],"functionName":{"name":"gt","nativeSrc":"2341:2:53","nodeType":"YulIdentifier","src":"2341:2:53"},"nativeSrc":"2341:41:53","nodeType":"YulFunctionCall","src":"2341:41:53"},"nativeSrc":"2338:128:53","nodeType":"YulIf","src":"2338:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"1904:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:53","nodeType":"YulTypedName","src":"1961:6:53","type":""},{"name":"end","nativeSrc":"1969:3:53","nodeType":"YulTypedName","src":"1969:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1977:8:53","nodeType":"YulTypedName","src":"1977:8:53","type":""},{"name":"length","nativeSrc":"1987:6:53","nodeType":"YulTypedName","src":"1987:6:53","type":""}],"src":"1904:568:53"},{"body":{"nativeSrc":"2579:478:53","nodeType":"YulBlock","src":"2579:478:53","statements":[{"body":{"nativeSrc":"2628:83:53","nodeType":"YulBlock","src":"2628:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2630:77:53","nodeType":"YulIdentifier","src":"2630:77:53"},"nativeSrc":"2630:79:53","nodeType":"YulFunctionCall","src":"2630:79:53"},"nativeSrc":"2630:79:53","nodeType":"YulExpressionStatement","src":"2630:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2607:6:53","nodeType":"YulIdentifier","src":"2607:6:53"},{"kind":"number","nativeSrc":"2615:4:53","nodeType":"YulLiteral","src":"2615:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2603:3:53","nodeType":"YulIdentifier","src":"2603:3:53"},"nativeSrc":"2603:17:53","nodeType":"YulFunctionCall","src":"2603:17:53"},{"name":"end","nativeSrc":"2622:3:53","nodeType":"YulIdentifier","src":"2622:3:53"}],"functionName":{"name":"slt","nativeSrc":"2599:3:53","nodeType":"YulIdentifier","src":"2599:3:53"},"nativeSrc":"2599:27:53","nodeType":"YulFunctionCall","src":"2599:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2592:6:53","nodeType":"YulIdentifier","src":"2592:6:53"},"nativeSrc":"2592:35:53","nodeType":"YulFunctionCall","src":"2592:35:53"},"nativeSrc":"2589:122:53","nodeType":"YulIf","src":"2589:122:53"},{"nativeSrc":"2720:30:53","nodeType":"YulAssignment","src":"2720:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2743:6:53","nodeType":"YulIdentifier","src":"2743:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2730:12:53","nodeType":"YulIdentifier","src":"2730:12:53"},"nativeSrc":"2730:20:53","nodeType":"YulFunctionCall","src":"2730:20:53"},"variableNames":[{"name":"length","nativeSrc":"2720:6:53","nodeType":"YulIdentifier","src":"2720:6:53"}]},{"body":{"nativeSrc":"2793:83:53","nodeType":"YulBlock","src":"2793:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2795:77:53","nodeType":"YulIdentifier","src":"2795:77:53"},"nativeSrc":"2795:79:53","nodeType":"YulFunctionCall","src":"2795:79:53"},"nativeSrc":"2795:79:53","nodeType":"YulExpressionStatement","src":"2795:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2765:6:53","nodeType":"YulIdentifier","src":"2765:6:53"},{"kind":"number","nativeSrc":"2773:18:53","nodeType":"YulLiteral","src":"2773:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2762:2:53","nodeType":"YulIdentifier","src":"2762:2:53"},"nativeSrc":"2762:30:53","nodeType":"YulFunctionCall","src":"2762:30:53"},"nativeSrc":"2759:117:53","nodeType":"YulIf","src":"2759:117:53"},{"nativeSrc":"2885:29:53","nodeType":"YulAssignment","src":"2885:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2901:6:53","nodeType":"YulIdentifier","src":"2901:6:53"},{"kind":"number","nativeSrc":"2909:4:53","nodeType":"YulLiteral","src":"2909:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2897:3:53","nodeType":"YulIdentifier","src":"2897:3:53"},"nativeSrc":"2897:17:53","nodeType":"YulFunctionCall","src":"2897:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2885:8:53","nodeType":"YulIdentifier","src":"2885:8:53"}]},{"body":{"nativeSrc":"2968:83:53","nodeType":"YulBlock","src":"2968:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2970:77:53","nodeType":"YulIdentifier","src":"2970:77:53"},"nativeSrc":"2970:79:53","nodeType":"YulFunctionCall","src":"2970:79:53"},"nativeSrc":"2970:79:53","nodeType":"YulExpressionStatement","src":"2970:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2933:8:53","nodeType":"YulIdentifier","src":"2933:8:53"},{"arguments":[{"name":"length","nativeSrc":"2947:6:53","nodeType":"YulIdentifier","src":"2947:6:53"},{"kind":"number","nativeSrc":"2955:4:53","nodeType":"YulLiteral","src":"2955:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2943:3:53","nodeType":"YulIdentifier","src":"2943:3:53"},"nativeSrc":"2943:17:53","nodeType":"YulFunctionCall","src":"2943:17:53"}],"functionName":{"name":"add","nativeSrc":"2929:3:53","nodeType":"YulIdentifier","src":"2929:3:53"},"nativeSrc":"2929:32:53","nodeType":"YulFunctionCall","src":"2929:32:53"},{"name":"end","nativeSrc":"2963:3:53","nodeType":"YulIdentifier","src":"2963:3:53"}],"functionName":{"name":"gt","nativeSrc":"2926:2:53","nodeType":"YulIdentifier","src":"2926:2:53"},"nativeSrc":"2926:41:53","nodeType":"YulFunctionCall","src":"2926:41:53"},"nativeSrc":"2923:128:53","nodeType":"YulIf","src":"2923:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"2492:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2546:6:53","nodeType":"YulTypedName","src":"2546:6:53","type":""},{"name":"end","nativeSrc":"2554:3:53","nodeType":"YulTypedName","src":"2554:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2562:8:53","nodeType":"YulTypedName","src":"2562:8:53","type":""},{"name":"length","nativeSrc":"2572:6:53","nodeType":"YulTypedName","src":"2572:6:53","type":""}],"src":"2492:565:53"},{"body":{"nativeSrc":"3213:778:53","nodeType":"YulBlock","src":"3213:778:53","statements":[{"body":{"nativeSrc":"3259:83:53","nodeType":"YulBlock","src":"3259:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3261:77:53","nodeType":"YulIdentifier","src":"3261:77:53"},"nativeSrc":"3261:79:53","nodeType":"YulFunctionCall","src":"3261:79:53"},"nativeSrc":"3261:79:53","nodeType":"YulExpressionStatement","src":"3261:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3234:7:53","nodeType":"YulIdentifier","src":"3234:7:53"},{"name":"headStart","nativeSrc":"3243:9:53","nodeType":"YulIdentifier","src":"3243:9:53"}],"functionName":{"name":"sub","nativeSrc":"3230:3:53","nodeType":"YulIdentifier","src":"3230:3:53"},"nativeSrc":"3230:23:53","nodeType":"YulFunctionCall","src":"3230:23:53"},{"kind":"number","nativeSrc":"3255:2:53","nodeType":"YulLiteral","src":"3255:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3226:3:53","nodeType":"YulIdentifier","src":"3226:3:53"},"nativeSrc":"3226:32:53","nodeType":"YulFunctionCall","src":"3226:32:53"},"nativeSrc":"3223:119:53","nodeType":"YulIf","src":"3223:119:53"},{"nativeSrc":"3352:312:53","nodeType":"YulBlock","src":"3352:312:53","statements":[{"nativeSrc":"3367:45:53","nodeType":"YulVariableDeclaration","src":"3367:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3398:9:53","nodeType":"YulIdentifier","src":"3398:9:53"},{"kind":"number","nativeSrc":"3409:1:53","nodeType":"YulLiteral","src":"3409:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3394:3:53","nodeType":"YulIdentifier","src":"3394:3:53"},"nativeSrc":"3394:17:53","nodeType":"YulFunctionCall","src":"3394:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3381:12:53","nodeType":"YulIdentifier","src":"3381:12:53"},"nativeSrc":"3381:31:53","nodeType":"YulFunctionCall","src":"3381:31:53"},"variables":[{"name":"offset","nativeSrc":"3371:6:53","nodeType":"YulTypedName","src":"3371:6:53","type":""}]},{"body":{"nativeSrc":"3459:83:53","nodeType":"YulBlock","src":"3459:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3461:77:53","nodeType":"YulIdentifier","src":"3461:77:53"},"nativeSrc":"3461:79:53","nodeType":"YulFunctionCall","src":"3461:79:53"},"nativeSrc":"3461:79:53","nodeType":"YulExpressionStatement","src":"3461:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3431:6:53","nodeType":"YulIdentifier","src":"3431:6:53"},{"kind":"number","nativeSrc":"3439:18:53","nodeType":"YulLiteral","src":"3439:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3428:2:53","nodeType":"YulIdentifier","src":"3428:2:53"},"nativeSrc":"3428:30:53","nodeType":"YulFunctionCall","src":"3428:30:53"},"nativeSrc":"3425:117:53","nodeType":"YulIf","src":"3425:117:53"},{"nativeSrc":"3556:98:53","nodeType":"YulAssignment","src":"3556:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3626:9:53","nodeType":"YulIdentifier","src":"3626:9:53"},{"name":"offset","nativeSrc":"3637:6:53","nodeType":"YulIdentifier","src":"3637:6:53"}],"functionName":{"name":"add","nativeSrc":"3622:3:53","nodeType":"YulIdentifier","src":"3622:3:53"},"nativeSrc":"3622:22:53","nodeType":"YulFunctionCall","src":"3622:22:53"},{"name":"dataEnd","nativeSrc":"3646:7:53","nodeType":"YulIdentifier","src":"3646:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3574:47:53","nodeType":"YulIdentifier","src":"3574:47:53"},"nativeSrc":"3574:80:53","nodeType":"YulFunctionCall","src":"3574:80:53"},"variableNames":[{"name":"value0","nativeSrc":"3556:6:53","nodeType":"YulIdentifier","src":"3556:6:53"},{"name":"value1","nativeSrc":"3564:6:53","nodeType":"YulIdentifier","src":"3564:6:53"}]}]},{"nativeSrc":"3674:310:53","nodeType":"YulBlock","src":"3674:310:53","statements":[{"nativeSrc":"3689:46:53","nodeType":"YulVariableDeclaration","src":"3689:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3720:9:53","nodeType":"YulIdentifier","src":"3720:9:53"},{"kind":"number","nativeSrc":"3731:2:53","nodeType":"YulLiteral","src":"3731:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3716:3:53","nodeType":"YulIdentifier","src":"3716:3:53"},"nativeSrc":"3716:18:53","nodeType":"YulFunctionCall","src":"3716:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"3703:12:53","nodeType":"YulIdentifier","src":"3703:12:53"},"nativeSrc":"3703:32:53","nodeType":"YulFunctionCall","src":"3703:32:53"},"variables":[{"name":"offset","nativeSrc":"3693:6:53","nodeType":"YulTypedName","src":"3693:6:53","type":""}]},{"body":{"nativeSrc":"3782:83:53","nodeType":"YulBlock","src":"3782:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3784:77:53","nodeType":"YulIdentifier","src":"3784:77:53"},"nativeSrc":"3784:79:53","nodeType":"YulFunctionCall","src":"3784:79:53"},"nativeSrc":"3784:79:53","nodeType":"YulExpressionStatement","src":"3784:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3754:6:53","nodeType":"YulIdentifier","src":"3754:6:53"},{"kind":"number","nativeSrc":"3762:18:53","nodeType":"YulLiteral","src":"3762:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3751:2:53","nodeType":"YulIdentifier","src":"3751:2:53"},"nativeSrc":"3751:30:53","nodeType":"YulFunctionCall","src":"3751:30:53"},"nativeSrc":"3748:117:53","nodeType":"YulIf","src":"3748:117:53"},{"nativeSrc":"3879:95:53","nodeType":"YulAssignment","src":"3879:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3946:9:53","nodeType":"YulIdentifier","src":"3946:9:53"},{"name":"offset","nativeSrc":"3957:6:53","nodeType":"YulIdentifier","src":"3957:6:53"}],"functionName":{"name":"add","nativeSrc":"3942:3:53","nodeType":"YulIdentifier","src":"3942:3:53"},"nativeSrc":"3942:22:53","nodeType":"YulFunctionCall","src":"3942:22:53"},{"name":"dataEnd","nativeSrc":"3966:7:53","nodeType":"YulIdentifier","src":"3966:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3897:44:53","nodeType":"YulIdentifier","src":"3897:44:53"},"nativeSrc":"3897:77:53","nodeType":"YulFunctionCall","src":"3897:77:53"},"variableNames":[{"name":"value2","nativeSrc":"3879:6:53","nodeType":"YulIdentifier","src":"3879:6:53"},{"name":"value3","nativeSrc":"3887:6:53","nodeType":"YulIdentifier","src":"3887:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3063:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3159:9:53","nodeType":"YulTypedName","src":"3159:9:53","type":""},{"name":"dataEnd","nativeSrc":"3170:7:53","nodeType":"YulTypedName","src":"3170:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3182:6:53","nodeType":"YulTypedName","src":"3182:6:53","type":""},{"name":"value1","nativeSrc":"3190:6:53","nodeType":"YulTypedName","src":"3190:6:53","type":""},{"name":"value2","nativeSrc":"3198:6:53","nodeType":"YulTypedName","src":"3198:6:53","type":""},{"name":"value3","nativeSrc":"3206:6:53","nodeType":"YulTypedName","src":"3206:6:53","type":""}],"src":"3063:928:53"},{"body":{"nativeSrc":"4084:478:53","nodeType":"YulBlock","src":"4084:478:53","statements":[{"body":{"nativeSrc":"4133:83:53","nodeType":"YulBlock","src":"4133:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4135:77:53","nodeType":"YulIdentifier","src":"4135:77:53"},"nativeSrc":"4135:79:53","nodeType":"YulFunctionCall","src":"4135:79:53"},"nativeSrc":"4135:79:53","nodeType":"YulExpressionStatement","src":"4135:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4112:6:53","nodeType":"YulIdentifier","src":"4112:6:53"},{"kind":"number","nativeSrc":"4120:4:53","nodeType":"YulLiteral","src":"4120:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4108:3:53","nodeType":"YulIdentifier","src":"4108:3:53"},"nativeSrc":"4108:17:53","nodeType":"YulFunctionCall","src":"4108:17:53"},{"name":"end","nativeSrc":"4127:3:53","nodeType":"YulIdentifier","src":"4127:3:53"}],"functionName":{"name":"slt","nativeSrc":"4104:3:53","nodeType":"YulIdentifier","src":"4104:3:53"},"nativeSrc":"4104:27:53","nodeType":"YulFunctionCall","src":"4104:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4097:6:53","nodeType":"YulIdentifier","src":"4097:6:53"},"nativeSrc":"4097:35:53","nodeType":"YulFunctionCall","src":"4097:35:53"},"nativeSrc":"4094:122:53","nodeType":"YulIf","src":"4094:122:53"},{"nativeSrc":"4225:30:53","nodeType":"YulAssignment","src":"4225:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4248:6:53","nodeType":"YulIdentifier","src":"4248:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4235:12:53","nodeType":"YulIdentifier","src":"4235:12:53"},"nativeSrc":"4235:20:53","nodeType":"YulFunctionCall","src":"4235:20:53"},"variableNames":[{"name":"length","nativeSrc":"4225:6:53","nodeType":"YulIdentifier","src":"4225:6:53"}]},{"body":{"nativeSrc":"4298:83:53","nodeType":"YulBlock","src":"4298:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4300:77:53","nodeType":"YulIdentifier","src":"4300:77:53"},"nativeSrc":"4300:79:53","nodeType":"YulFunctionCall","src":"4300:79:53"},"nativeSrc":"4300:79:53","nodeType":"YulExpressionStatement","src":"4300:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4270:6:53","nodeType":"YulIdentifier","src":"4270:6:53"},{"kind":"number","nativeSrc":"4278:18:53","nodeType":"YulLiteral","src":"4278:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4267:2:53","nodeType":"YulIdentifier","src":"4267:2:53"},"nativeSrc":"4267:30:53","nodeType":"YulFunctionCall","src":"4267:30:53"},"nativeSrc":"4264:117:53","nodeType":"YulIf","src":"4264:117:53"},{"nativeSrc":"4390:29:53","nodeType":"YulAssignment","src":"4390:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4406:6:53","nodeType":"YulIdentifier","src":"4406:6:53"},{"kind":"number","nativeSrc":"4414:4:53","nodeType":"YulLiteral","src":"4414:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:17:53","nodeType":"YulFunctionCall","src":"4402:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4390:8:53","nodeType":"YulIdentifier","src":"4390:8:53"}]},{"body":{"nativeSrc":"4473:83:53","nodeType":"YulBlock","src":"4473:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4475:77:53","nodeType":"YulIdentifier","src":"4475:77:53"},"nativeSrc":"4475:79:53","nodeType":"YulFunctionCall","src":"4475:79:53"},"nativeSrc":"4475:79:53","nodeType":"YulExpressionStatement","src":"4475:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4438:8:53","nodeType":"YulIdentifier","src":"4438:8:53"},{"arguments":[{"name":"length","nativeSrc":"4452:6:53","nodeType":"YulIdentifier","src":"4452:6:53"},{"kind":"number","nativeSrc":"4460:4:53","nodeType":"YulLiteral","src":"4460:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"4448:3:53","nodeType":"YulIdentifier","src":"4448:3:53"},"nativeSrc":"4448:17:53","nodeType":"YulFunctionCall","src":"4448:17:53"}],"functionName":{"name":"add","nativeSrc":"4434:3:53","nodeType":"YulIdentifier","src":"4434:3:53"},"nativeSrc":"4434:32:53","nodeType":"YulFunctionCall","src":"4434:32:53"},{"name":"end","nativeSrc":"4468:3:53","nodeType":"YulIdentifier","src":"4468:3:53"}],"functionName":{"name":"gt","nativeSrc":"4431:2:53","nodeType":"YulIdentifier","src":"4431:2:53"},"nativeSrc":"4431:41:53","nodeType":"YulFunctionCall","src":"4431:41:53"},"nativeSrc":"4428:128:53","nodeType":"YulIf","src":"4428:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4010:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4051:6:53","nodeType":"YulTypedName","src":"4051:6:53","type":""},{"name":"end","nativeSrc":"4059:3:53","nodeType":"YulTypedName","src":"4059:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4067:8:53","nodeType":"YulTypedName","src":"4067:8:53","type":""},{"name":"length","nativeSrc":"4077:6:53","nodeType":"YulTypedName","src":"4077:6:53","type":""}],"src":"4010:552:53"},{"body":{"nativeSrc":"4653:442:53","nodeType":"YulBlock","src":"4653:442:53","statements":[{"body":{"nativeSrc":"4699:83:53","nodeType":"YulBlock","src":"4699:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4701:77:53","nodeType":"YulIdentifier","src":"4701:77:53"},"nativeSrc":"4701:79:53","nodeType":"YulFunctionCall","src":"4701:79:53"},"nativeSrc":"4701:79:53","nodeType":"YulExpressionStatement","src":"4701:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4674:7:53","nodeType":"YulIdentifier","src":"4674:7:53"},{"name":"headStart","nativeSrc":"4683:9:53","nodeType":"YulIdentifier","src":"4683:9:53"}],"functionName":{"name":"sub","nativeSrc":"4670:3:53","nodeType":"YulIdentifier","src":"4670:3:53"},"nativeSrc":"4670:23:53","nodeType":"YulFunctionCall","src":"4670:23:53"},{"kind":"number","nativeSrc":"4695:2:53","nodeType":"YulLiteral","src":"4695:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4666:3:53","nodeType":"YulIdentifier","src":"4666:3:53"},"nativeSrc":"4666:32:53","nodeType":"YulFunctionCall","src":"4666:32:53"},"nativeSrc":"4663:119:53","nodeType":"YulIf","src":"4663:119:53"},{"nativeSrc":"4792:296:53","nodeType":"YulBlock","src":"4792:296:53","statements":[{"nativeSrc":"4807:45:53","nodeType":"YulVariableDeclaration","src":"4807:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4838:9:53","nodeType":"YulIdentifier","src":"4838:9:53"},{"kind":"number","nativeSrc":"4849:1:53","nodeType":"YulLiteral","src":"4849:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4834:3:53","nodeType":"YulIdentifier","src":"4834:3:53"},"nativeSrc":"4834:17:53","nodeType":"YulFunctionCall","src":"4834:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4821:12:53","nodeType":"YulIdentifier","src":"4821:12:53"},"nativeSrc":"4821:31:53","nodeType":"YulFunctionCall","src":"4821:31:53"},"variables":[{"name":"offset","nativeSrc":"4811:6:53","nodeType":"YulTypedName","src":"4811:6:53","type":""}]},{"body":{"nativeSrc":"4899:83:53","nodeType":"YulBlock","src":"4899:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4901:77:53","nodeType":"YulIdentifier","src":"4901:77:53"},"nativeSrc":"4901:79:53","nodeType":"YulFunctionCall","src":"4901:79:53"},"nativeSrc":"4901:79:53","nodeType":"YulExpressionStatement","src":"4901:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4871:6:53","nodeType":"YulIdentifier","src":"4871:6:53"},{"kind":"number","nativeSrc":"4879:18:53","nodeType":"YulLiteral","src":"4879:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4868:2:53","nodeType":"YulIdentifier","src":"4868:2:53"},"nativeSrc":"4868:30:53","nodeType":"YulFunctionCall","src":"4868:30:53"},"nativeSrc":"4865:117:53","nodeType":"YulIf","src":"4865:117:53"},{"nativeSrc":"4996:82:53","nodeType":"YulAssignment","src":"4996:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5050:9:53","nodeType":"YulIdentifier","src":"5050:9:53"},{"name":"offset","nativeSrc":"5061:6:53","nodeType":"YulIdentifier","src":"5061:6:53"}],"functionName":{"name":"add","nativeSrc":"5046:3:53","nodeType":"YulIdentifier","src":"5046:3:53"},"nativeSrc":"5046:22:53","nodeType":"YulFunctionCall","src":"5046:22:53"},{"name":"dataEnd","nativeSrc":"5070:7:53","nodeType":"YulIdentifier","src":"5070:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5014:31:53","nodeType":"YulIdentifier","src":"5014:31:53"},"nativeSrc":"5014:64:53","nodeType":"YulFunctionCall","src":"5014:64:53"},"variableNames":[{"name":"value0","nativeSrc":"4996:6:53","nodeType":"YulIdentifier","src":"4996:6:53"},{"name":"value1","nativeSrc":"5004:6:53","nodeType":"YulIdentifier","src":"5004:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"4568:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4615:9:53","nodeType":"YulTypedName","src":"4615:9:53","type":""},{"name":"dataEnd","nativeSrc":"4626:7:53","nodeType":"YulTypedName","src":"4626:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4638:6:53","nodeType":"YulTypedName","src":"4638:6:53","type":""},{"name":"value1","nativeSrc":"4646:6:53","nodeType":"YulTypedName","src":"4646:6:53","type":""}],"src":"4568:527:53"},{"body":{"nativeSrc":"5146:81:53","nodeType":"YulBlock","src":"5146:81:53","statements":[{"nativeSrc":"5156:65:53","nodeType":"YulAssignment","src":"5156:65:53","value":{"arguments":[{"name":"value","nativeSrc":"5171:5:53","nodeType":"YulIdentifier","src":"5171:5:53"},{"kind":"number","nativeSrc":"5178:42:53","nodeType":"YulLiteral","src":"5178:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5167:3:53","nodeType":"YulIdentifier","src":"5167:3:53"},"nativeSrc":"5167:54:53","nodeType":"YulFunctionCall","src":"5167:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5156:7:53","nodeType":"YulIdentifier","src":"5156:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5101:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5128:5:53","nodeType":"YulTypedName","src":"5128:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5138:7:53","nodeType":"YulTypedName","src":"5138:7:53","type":""}],"src":"5101:126:53"},{"body":{"nativeSrc":"5278:51:53","nodeType":"YulBlock","src":"5278:51:53","statements":[{"nativeSrc":"5288:35:53","nodeType":"YulAssignment","src":"5288:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5317:5:53","nodeType":"YulIdentifier","src":"5317:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5299:17:53","nodeType":"YulIdentifier","src":"5299:17:53"},"nativeSrc":"5299:24:53","nodeType":"YulFunctionCall","src":"5299:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5288:7:53","nodeType":"YulIdentifier","src":"5288:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5233:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5260:5:53","nodeType":"YulTypedName","src":"5260:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5270:7:53","nodeType":"YulTypedName","src":"5270:7:53","type":""}],"src":"5233:96:53"},{"body":{"nativeSrc":"5378:79:53","nodeType":"YulBlock","src":"5378:79:53","statements":[{"body":{"nativeSrc":"5435:16:53","nodeType":"YulBlock","src":"5435:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5444:1:53","nodeType":"YulLiteral","src":"5444:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5447:1:53","nodeType":"YulLiteral","src":"5447:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5437:6:53","nodeType":"YulIdentifier","src":"5437:6:53"},"nativeSrc":"5437:12:53","nodeType":"YulFunctionCall","src":"5437:12:53"},"nativeSrc":"5437:12:53","nodeType":"YulExpressionStatement","src":"5437:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5401:5:53","nodeType":"YulIdentifier","src":"5401:5:53"},{"arguments":[{"name":"value","nativeSrc":"5426:5:53","nodeType":"YulIdentifier","src":"5426:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5408:17:53","nodeType":"YulIdentifier","src":"5408:17:53"},"nativeSrc":"5408:24:53","nodeType":"YulFunctionCall","src":"5408:24:53"}],"functionName":{"name":"eq","nativeSrc":"5398:2:53","nodeType":"YulIdentifier","src":"5398:2:53"},"nativeSrc":"5398:35:53","nodeType":"YulFunctionCall","src":"5398:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5391:6:53","nodeType":"YulIdentifier","src":"5391:6:53"},"nativeSrc":"5391:43:53","nodeType":"YulFunctionCall","src":"5391:43:53"},"nativeSrc":"5388:63:53","nodeType":"YulIf","src":"5388:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5335:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5371:5:53","nodeType":"YulTypedName","src":"5371:5:53","type":""}],"src":"5335:122:53"},{"body":{"nativeSrc":"5515:87:53","nodeType":"YulBlock","src":"5515:87:53","statements":[{"nativeSrc":"5525:29:53","nodeType":"YulAssignment","src":"5525:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5547:6:53","nodeType":"YulIdentifier","src":"5547:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5534:12:53","nodeType":"YulIdentifier","src":"5534:12:53"},"nativeSrc":"5534:20:53","nodeType":"YulFunctionCall","src":"5534:20:53"},"variableNames":[{"name":"value","nativeSrc":"5525:5:53","nodeType":"YulIdentifier","src":"5525:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5590:5:53","nodeType":"YulIdentifier","src":"5590:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5563:26:53","nodeType":"YulIdentifier","src":"5563:26:53"},"nativeSrc":"5563:33:53","nodeType":"YulFunctionCall","src":"5563:33:53"},"nativeSrc":"5563:33:53","nodeType":"YulExpressionStatement","src":"5563:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5463:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5493:6:53","nodeType":"YulTypedName","src":"5493:6:53","type":""},{"name":"end","nativeSrc":"5501:3:53","nodeType":"YulTypedName","src":"5501:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5509:5:53","nodeType":"YulTypedName","src":"5509:5:53","type":""}],"src":"5463:139:53"},{"body":{"nativeSrc":"5674:263:53","nodeType":"YulBlock","src":"5674:263:53","statements":[{"body":{"nativeSrc":"5720:83:53","nodeType":"YulBlock","src":"5720:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5722:77:53","nodeType":"YulIdentifier","src":"5722:77:53"},"nativeSrc":"5722:79:53","nodeType":"YulFunctionCall","src":"5722:79:53"},"nativeSrc":"5722:79:53","nodeType":"YulExpressionStatement","src":"5722:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5695:7:53","nodeType":"YulIdentifier","src":"5695:7:53"},{"name":"headStart","nativeSrc":"5704:9:53","nodeType":"YulIdentifier","src":"5704:9:53"}],"functionName":{"name":"sub","nativeSrc":"5691:3:53","nodeType":"YulIdentifier","src":"5691:3:53"},"nativeSrc":"5691:23:53","nodeType":"YulFunctionCall","src":"5691:23:53"},{"kind":"number","nativeSrc":"5716:2:53","nodeType":"YulLiteral","src":"5716:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5687:3:53","nodeType":"YulIdentifier","src":"5687:3:53"},"nativeSrc":"5687:32:53","nodeType":"YulFunctionCall","src":"5687:32:53"},"nativeSrc":"5684:119:53","nodeType":"YulIf","src":"5684:119:53"},{"nativeSrc":"5813:117:53","nodeType":"YulBlock","src":"5813:117:53","statements":[{"nativeSrc":"5828:15:53","nodeType":"YulVariableDeclaration","src":"5828:15:53","value":{"kind":"number","nativeSrc":"5842:1:53","nodeType":"YulLiteral","src":"5842:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5832:6:53","nodeType":"YulTypedName","src":"5832:6:53","type":""}]},{"nativeSrc":"5857:63:53","nodeType":"YulAssignment","src":"5857:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5892:9:53","nodeType":"YulIdentifier","src":"5892:9:53"},{"name":"offset","nativeSrc":"5903:6:53","nodeType":"YulIdentifier","src":"5903:6:53"}],"functionName":{"name":"add","nativeSrc":"5888:3:53","nodeType":"YulIdentifier","src":"5888:3:53"},"nativeSrc":"5888:22:53","nodeType":"YulFunctionCall","src":"5888:22:53"},{"name":"dataEnd","nativeSrc":"5912:7:53","nodeType":"YulIdentifier","src":"5912:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5867:20:53","nodeType":"YulIdentifier","src":"5867:20:53"},"nativeSrc":"5867:53:53","nodeType":"YulFunctionCall","src":"5867:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5857:6:53","nodeType":"YulIdentifier","src":"5857:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5608:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5644:9:53","nodeType":"YulTypedName","src":"5644:9:53","type":""},{"name":"dataEnd","nativeSrc":"5655:7:53","nodeType":"YulTypedName","src":"5655:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5667:6:53","nodeType":"YulTypedName","src":"5667:6:53","type":""}],"src":"5608:329:53"},{"body":{"nativeSrc":"6008:53:53","nodeType":"YulBlock","src":"6008:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6025:3:53","nodeType":"YulIdentifier","src":"6025:3:53"},{"arguments":[{"name":"value","nativeSrc":"6048:5:53","nodeType":"YulIdentifier","src":"6048:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6030:17:53","nodeType":"YulIdentifier","src":"6030:17:53"},"nativeSrc":"6030:24:53","nodeType":"YulFunctionCall","src":"6030:24:53"}],"functionName":{"name":"mstore","nativeSrc":"6018:6:53","nodeType":"YulIdentifier","src":"6018:6:53"},"nativeSrc":"6018:37:53","nodeType":"YulFunctionCall","src":"6018:37:53"},"nativeSrc":"6018:37:53","nodeType":"YulExpressionStatement","src":"6018:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5943:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5996:5:53","nodeType":"YulTypedName","src":"5996:5:53","type":""},{"name":"pos","nativeSrc":"6003:3:53","nodeType":"YulTypedName","src":"6003:3:53","type":""}],"src":"5943:118:53"},{"body":{"nativeSrc":"6165:124:53","nodeType":"YulBlock","src":"6165:124:53","statements":[{"nativeSrc":"6175:26:53","nodeType":"YulAssignment","src":"6175:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6187:9:53","nodeType":"YulIdentifier","src":"6187:9:53"},{"kind":"number","nativeSrc":"6198:2:53","nodeType":"YulLiteral","src":"6198:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6183:3:53","nodeType":"YulIdentifier","src":"6183:3:53"},"nativeSrc":"6183:18:53","nodeType":"YulFunctionCall","src":"6183:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6175:4:53","nodeType":"YulIdentifier","src":"6175:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6255:6:53","nodeType":"YulIdentifier","src":"6255:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6268:9:53","nodeType":"YulIdentifier","src":"6268:9:53"},{"kind":"number","nativeSrc":"6279:1:53","nodeType":"YulLiteral","src":"6279:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6264:3:53","nodeType":"YulIdentifier","src":"6264:3:53"},"nativeSrc":"6264:17:53","nodeType":"YulFunctionCall","src":"6264:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6211:43:53","nodeType":"YulIdentifier","src":"6211:43:53"},"nativeSrc":"6211:71:53","nodeType":"YulFunctionCall","src":"6211:71:53"},"nativeSrc":"6211:71:53","nodeType":"YulExpressionStatement","src":"6211:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6067:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6137:9:53","nodeType":"YulTypedName","src":"6137:9:53","type":""},{"name":"value0","nativeSrc":"6149:6:53","nodeType":"YulTypedName","src":"6149:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6160:4:53","nodeType":"YulTypedName","src":"6160:4:53","type":""}],"src":"6067:222:53"},{"body":{"nativeSrc":"6340:32:53","nodeType":"YulBlock","src":"6340:32:53","statements":[{"nativeSrc":"6350:16:53","nodeType":"YulAssignment","src":"6350:16:53","value":{"name":"value","nativeSrc":"6361:5:53","nodeType":"YulIdentifier","src":"6361:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"6350:7:53","nodeType":"YulIdentifier","src":"6350:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"6295:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6322:5:53","nodeType":"YulTypedName","src":"6322:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6332:7:53","nodeType":"YulTypedName","src":"6332:7:53","type":""}],"src":"6295:77:53"},{"body":{"nativeSrc":"6443:53:53","nodeType":"YulBlock","src":"6443:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6460:3:53","nodeType":"YulIdentifier","src":"6460:3:53"},{"arguments":[{"name":"value","nativeSrc":"6483:5:53","nodeType":"YulIdentifier","src":"6483:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6465:17:53","nodeType":"YulIdentifier","src":"6465:17:53"},"nativeSrc":"6465:24:53","nodeType":"YulFunctionCall","src":"6465:24:53"}],"functionName":{"name":"mstore","nativeSrc":"6453:6:53","nodeType":"YulIdentifier","src":"6453:6:53"},"nativeSrc":"6453:37:53","nodeType":"YulFunctionCall","src":"6453:37:53"},"nativeSrc":"6453:37:53","nodeType":"YulExpressionStatement","src":"6453:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6378:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6431:5:53","nodeType":"YulTypedName","src":"6431:5:53","type":""},{"name":"pos","nativeSrc":"6438:3:53","nodeType":"YulTypedName","src":"6438:3:53","type":""}],"src":"6378:118:53"},{"body":{"nativeSrc":"6600:124:53","nodeType":"YulBlock","src":"6600:124:53","statements":[{"nativeSrc":"6610:26:53","nodeType":"YulAssignment","src":"6610:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6622:9:53","nodeType":"YulIdentifier","src":"6622:9:53"},{"kind":"number","nativeSrc":"6633:2:53","nodeType":"YulLiteral","src":"6633:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6618:3:53","nodeType":"YulIdentifier","src":"6618:3:53"},"nativeSrc":"6618:18:53","nodeType":"YulFunctionCall","src":"6618:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6610:4:53","nodeType":"YulIdentifier","src":"6610:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6690:6:53","nodeType":"YulIdentifier","src":"6690:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6703:9:53","nodeType":"YulIdentifier","src":"6703:9:53"},{"kind":"number","nativeSrc":"6714:1:53","nodeType":"YulLiteral","src":"6714:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6699:3:53","nodeType":"YulIdentifier","src":"6699:3:53"},"nativeSrc":"6699:17:53","nodeType":"YulFunctionCall","src":"6699:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6646:43:53","nodeType":"YulIdentifier","src":"6646:43:53"},"nativeSrc":"6646:71:53","nodeType":"YulFunctionCall","src":"6646:71:53"},"nativeSrc":"6646:71:53","nodeType":"YulExpressionStatement","src":"6646:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6502:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6572:9:53","nodeType":"YulTypedName","src":"6572:9:53","type":""},{"name":"value0","nativeSrc":"6584:6:53","nodeType":"YulTypedName","src":"6584:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6595:4:53","nodeType":"YulTypedName","src":"6595:4:53","type":""}],"src":"6502:222:53"},{"body":{"nativeSrc":"6758:152:53","nodeType":"YulBlock","src":"6758:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6775:1:53","nodeType":"YulLiteral","src":"6775:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6778:77:53","nodeType":"YulLiteral","src":"6778:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6768:6:53","nodeType":"YulIdentifier","src":"6768:6:53"},"nativeSrc":"6768:88:53","nodeType":"YulFunctionCall","src":"6768:88:53"},"nativeSrc":"6768:88:53","nodeType":"YulExpressionStatement","src":"6768:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6872:1:53","nodeType":"YulLiteral","src":"6872:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6875:4:53","nodeType":"YulLiteral","src":"6875:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"6865:6:53","nodeType":"YulIdentifier","src":"6865:6:53"},"nativeSrc":"6865:15:53","nodeType":"YulFunctionCall","src":"6865:15:53"},"nativeSrc":"6865:15:53","nodeType":"YulExpressionStatement","src":"6865:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6896:1:53","nodeType":"YulLiteral","src":"6896:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6899:4:53","nodeType":"YulLiteral","src":"6899:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6889:6:53","nodeType":"YulIdentifier","src":"6889:6:53"},"nativeSrc":"6889:15:53","nodeType":"YulFunctionCall","src":"6889:15:53"},"nativeSrc":"6889:15:53","nodeType":"YulExpressionStatement","src":"6889:15:53"}]},"name":"panic_error_0x32","nativeSrc":"6730:180:53","nodeType":"YulFunctionDefinition","src":"6730:180:53"},{"body":{"nativeSrc":"6956:76:53","nodeType":"YulBlock","src":"6956:76:53","statements":[{"body":{"nativeSrc":"7010:16:53","nodeType":"YulBlock","src":"7010:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7019:1:53","nodeType":"YulLiteral","src":"7019:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7022:1:53","nodeType":"YulLiteral","src":"7022:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7012:6:53","nodeType":"YulIdentifier","src":"7012:6:53"},"nativeSrc":"7012:12:53","nodeType":"YulFunctionCall","src":"7012:12:53"},"nativeSrc":"7012:12:53","nodeType":"YulExpressionStatement","src":"7012:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6979:5:53","nodeType":"YulIdentifier","src":"6979:5:53"},{"arguments":[{"name":"value","nativeSrc":"7001:5:53","nodeType":"YulIdentifier","src":"7001:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6986:14:53","nodeType":"YulIdentifier","src":"6986:14:53"},"nativeSrc":"6986:21:53","nodeType":"YulFunctionCall","src":"6986:21:53"}],"functionName":{"name":"eq","nativeSrc":"6976:2:53","nodeType":"YulIdentifier","src":"6976:2:53"},"nativeSrc":"6976:32:53","nodeType":"YulFunctionCall","src":"6976:32:53"}],"functionName":{"name":"iszero","nativeSrc":"6969:6:53","nodeType":"YulIdentifier","src":"6969:6:53"},"nativeSrc":"6969:40:53","nodeType":"YulFunctionCall","src":"6969:40:53"},"nativeSrc":"6966:60:53","nodeType":"YulIf","src":"6966:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"6916:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6949:5:53","nodeType":"YulTypedName","src":"6949:5:53","type":""}],"src":"6916:116:53"},{"body":{"nativeSrc":"7087:84:53","nodeType":"YulBlock","src":"7087:84:53","statements":[{"nativeSrc":"7097:29:53","nodeType":"YulAssignment","src":"7097:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7119:6:53","nodeType":"YulIdentifier","src":"7119:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7106:12:53","nodeType":"YulIdentifier","src":"7106:12:53"},"nativeSrc":"7106:20:53","nodeType":"YulFunctionCall","src":"7106:20:53"},"variableNames":[{"name":"value","nativeSrc":"7097:5:53","nodeType":"YulIdentifier","src":"7097:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7159:5:53","nodeType":"YulIdentifier","src":"7159:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"7135:23:53","nodeType":"YulIdentifier","src":"7135:23:53"},"nativeSrc":"7135:30:53","nodeType":"YulFunctionCall","src":"7135:30:53"},"nativeSrc":"7135:30:53","nodeType":"YulExpressionStatement","src":"7135:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"7038:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7065:6:53","nodeType":"YulTypedName","src":"7065:6:53","type":""},{"name":"end","nativeSrc":"7073:3:53","nodeType":"YulTypedName","src":"7073:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7081:5:53","nodeType":"YulTypedName","src":"7081:5:53","type":""}],"src":"7038:133:53"},{"body":{"nativeSrc":"7240:260:53","nodeType":"YulBlock","src":"7240:260:53","statements":[{"body":{"nativeSrc":"7286:83:53","nodeType":"YulBlock","src":"7286:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7288:77:53","nodeType":"YulIdentifier","src":"7288:77:53"},"nativeSrc":"7288:79:53","nodeType":"YulFunctionCall","src":"7288:79:53"},"nativeSrc":"7288:79:53","nodeType":"YulExpressionStatement","src":"7288:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7261:7:53","nodeType":"YulIdentifier","src":"7261:7:53"},{"name":"headStart","nativeSrc":"7270:9:53","nodeType":"YulIdentifier","src":"7270:9:53"}],"functionName":{"name":"sub","nativeSrc":"7257:3:53","nodeType":"YulIdentifier","src":"7257:3:53"},"nativeSrc":"7257:23:53","nodeType":"YulFunctionCall","src":"7257:23:53"},{"kind":"number","nativeSrc":"7282:2:53","nodeType":"YulLiteral","src":"7282:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7253:3:53","nodeType":"YulIdentifier","src":"7253:3:53"},"nativeSrc":"7253:32:53","nodeType":"YulFunctionCall","src":"7253:32:53"},"nativeSrc":"7250:119:53","nodeType":"YulIf","src":"7250:119:53"},{"nativeSrc":"7379:114:53","nodeType":"YulBlock","src":"7379:114:53","statements":[{"nativeSrc":"7394:15:53","nodeType":"YulVariableDeclaration","src":"7394:15:53","value":{"kind":"number","nativeSrc":"7408:1:53","nodeType":"YulLiteral","src":"7408:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7398:6:53","nodeType":"YulTypedName","src":"7398:6:53","type":""}]},{"nativeSrc":"7423:60:53","nodeType":"YulAssignment","src":"7423:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7455:9:53","nodeType":"YulIdentifier","src":"7455:9:53"},{"name":"offset","nativeSrc":"7466:6:53","nodeType":"YulIdentifier","src":"7466:6:53"}],"functionName":{"name":"add","nativeSrc":"7451:3:53","nodeType":"YulIdentifier","src":"7451:3:53"},"nativeSrc":"7451:22:53","nodeType":"YulFunctionCall","src":"7451:22:53"},{"name":"dataEnd","nativeSrc":"7475:7:53","nodeType":"YulIdentifier","src":"7475:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"7433:17:53","nodeType":"YulIdentifier","src":"7433:17:53"},"nativeSrc":"7433:50:53","nodeType":"YulFunctionCall","src":"7433:50:53"},"variableNames":[{"name":"value0","nativeSrc":"7423:6:53","nodeType":"YulIdentifier","src":"7423:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"7177:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7210:9:53","nodeType":"YulTypedName","src":"7210:9:53","type":""},{"name":"dataEnd","nativeSrc":"7221:7:53","nodeType":"YulTypedName","src":"7221:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7233:6:53","nodeType":"YulTypedName","src":"7233:6:53","type":""}],"src":"7177:323:53"},{"body":{"nativeSrc":"7554:54:53","nodeType":"YulBlock","src":"7554:54:53","statements":[{"nativeSrc":"7564:38:53","nodeType":"YulAssignment","src":"7564:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7582:5:53","nodeType":"YulIdentifier","src":"7582:5:53"},{"kind":"number","nativeSrc":"7589:2:53","nodeType":"YulLiteral","src":"7589:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7578:3:53","nodeType":"YulIdentifier","src":"7578:3:53"},"nativeSrc":"7578:14:53","nodeType":"YulFunctionCall","src":"7578:14:53"},{"arguments":[{"kind":"number","nativeSrc":"7598:2:53","nodeType":"YulLiteral","src":"7598:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7594:3:53","nodeType":"YulIdentifier","src":"7594:3:53"},"nativeSrc":"7594:7:53","nodeType":"YulFunctionCall","src":"7594:7:53"}],"functionName":{"name":"and","nativeSrc":"7574:3:53","nodeType":"YulIdentifier","src":"7574:3:53"},"nativeSrc":"7574:28:53","nodeType":"YulFunctionCall","src":"7574:28:53"},"variableNames":[{"name":"result","nativeSrc":"7564:6:53","nodeType":"YulIdentifier","src":"7564:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7506:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7537:5:53","nodeType":"YulTypedName","src":"7537:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7547:6:53","nodeType":"YulTypedName","src":"7547:6:53","type":""}],"src":"7506:102:53"},{"body":{"nativeSrc":"7642:152:53","nodeType":"YulBlock","src":"7642:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7659:1:53","nodeType":"YulLiteral","src":"7659:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7662:77:53","nodeType":"YulLiteral","src":"7662:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7652:6:53","nodeType":"YulIdentifier","src":"7652:6:53"},"nativeSrc":"7652:88:53","nodeType":"YulFunctionCall","src":"7652:88:53"},"nativeSrc":"7652:88:53","nodeType":"YulExpressionStatement","src":"7652:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7756:1:53","nodeType":"YulLiteral","src":"7756:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7759:4:53","nodeType":"YulLiteral","src":"7759:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7749:6:53","nodeType":"YulIdentifier","src":"7749:6:53"},"nativeSrc":"7749:15:53","nodeType":"YulFunctionCall","src":"7749:15:53"},"nativeSrc":"7749:15:53","nodeType":"YulExpressionStatement","src":"7749:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7780:1:53","nodeType":"YulLiteral","src":"7780:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7783:4:53","nodeType":"YulLiteral","src":"7783:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7773:6:53","nodeType":"YulIdentifier","src":"7773:6:53"},"nativeSrc":"7773:15:53","nodeType":"YulFunctionCall","src":"7773:15:53"},"nativeSrc":"7773:15:53","nodeType":"YulExpressionStatement","src":"7773:15:53"}]},"name":"panic_error_0x41","nativeSrc":"7614:180:53","nodeType":"YulFunctionDefinition","src":"7614:180:53"},{"body":{"nativeSrc":"7843:238:53","nodeType":"YulBlock","src":"7843:238:53","statements":[{"nativeSrc":"7853:58:53","nodeType":"YulVariableDeclaration","src":"7853:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"7875:6:53","nodeType":"YulIdentifier","src":"7875:6:53"},{"arguments":[{"name":"size","nativeSrc":"7905:4:53","nodeType":"YulIdentifier","src":"7905:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7883:21:53","nodeType":"YulIdentifier","src":"7883:21:53"},"nativeSrc":"7883:27:53","nodeType":"YulFunctionCall","src":"7883:27:53"}],"functionName":{"name":"add","nativeSrc":"7871:3:53","nodeType":"YulIdentifier","src":"7871:3:53"},"nativeSrc":"7871:40:53","nodeType":"YulFunctionCall","src":"7871:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"7857:10:53","nodeType":"YulTypedName","src":"7857:10:53","type":""}]},{"body":{"nativeSrc":"8022:22:53","nodeType":"YulBlock","src":"8022:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8024:16:53","nodeType":"YulIdentifier","src":"8024:16:53"},"nativeSrc":"8024:18:53","nodeType":"YulFunctionCall","src":"8024:18:53"},"nativeSrc":"8024:18:53","nodeType":"YulExpressionStatement","src":"8024:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"7965:10:53","nodeType":"YulIdentifier","src":"7965:10:53"},{"kind":"number","nativeSrc":"7977:18:53","nodeType":"YulLiteral","src":"7977:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7962:2:53","nodeType":"YulIdentifier","src":"7962:2:53"},"nativeSrc":"7962:34:53","nodeType":"YulFunctionCall","src":"7962:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8001:10:53","nodeType":"YulIdentifier","src":"8001:10:53"},{"name":"memPtr","nativeSrc":"8013:6:53","nodeType":"YulIdentifier","src":"8013:6:53"}],"functionName":{"name":"lt","nativeSrc":"7998:2:53","nodeType":"YulIdentifier","src":"7998:2:53"},"nativeSrc":"7998:22:53","nodeType":"YulFunctionCall","src":"7998:22:53"}],"functionName":{"name":"or","nativeSrc":"7959:2:53","nodeType":"YulIdentifier","src":"7959:2:53"},"nativeSrc":"7959:62:53","nodeType":"YulFunctionCall","src":"7959:62:53"},"nativeSrc":"7956:88:53","nodeType":"YulIf","src":"7956:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8060:2:53","nodeType":"YulLiteral","src":"8060:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8064:10:53","nodeType":"YulIdentifier","src":"8064:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8053:6:53","nodeType":"YulIdentifier","src":"8053:6:53"},"nativeSrc":"8053:22:53","nodeType":"YulFunctionCall","src":"8053:22:53"},"nativeSrc":"8053:22:53","nodeType":"YulExpressionStatement","src":"8053:22:53"}]},"name":"finalize_allocation","nativeSrc":"7800:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7829:6:53","nodeType":"YulTypedName","src":"7829:6:53","type":""},{"name":"size","nativeSrc":"7837:4:53","nodeType":"YulTypedName","src":"7837:4:53","type":""}],"src":"7800:281:53"},{"body":{"nativeSrc":"8128:88:53","nodeType":"YulBlock","src":"8128:88:53","statements":[{"nativeSrc":"8138:30:53","nodeType":"YulAssignment","src":"8138:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8148:18:53","nodeType":"YulIdentifier","src":"8148:18:53"},"nativeSrc":"8148:20:53","nodeType":"YulFunctionCall","src":"8148:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8138:6:53","nodeType":"YulIdentifier","src":"8138:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8197:6:53","nodeType":"YulIdentifier","src":"8197:6:53"},{"name":"size","nativeSrc":"8205:4:53","nodeType":"YulIdentifier","src":"8205:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8177:19:53","nodeType":"YulIdentifier","src":"8177:19:53"},"nativeSrc":"8177:33:53","nodeType":"YulFunctionCall","src":"8177:33:53"},"nativeSrc":"8177:33:53","nodeType":"YulExpressionStatement","src":"8177:33:53"}]},"name":"allocate_memory","nativeSrc":"8087:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8112:4:53","nodeType":"YulTypedName","src":"8112:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8121:6:53","nodeType":"YulTypedName","src":"8121:6:53","type":""}],"src":"8087:129:53"},{"body":{"nativeSrc":"8304:229:53","nodeType":"YulBlock","src":"8304:229:53","statements":[{"body":{"nativeSrc":"8409:22:53","nodeType":"YulBlock","src":"8409:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8411:16:53","nodeType":"YulIdentifier","src":"8411:16:53"},"nativeSrc":"8411:18:53","nodeType":"YulFunctionCall","src":"8411:18:53"},"nativeSrc":"8411:18:53","nodeType":"YulExpressionStatement","src":"8411:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8381:6:53","nodeType":"YulIdentifier","src":"8381:6:53"},{"kind":"number","nativeSrc":"8389:18:53","nodeType":"YulLiteral","src":"8389:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8378:2:53","nodeType":"YulIdentifier","src":"8378:2:53"},"nativeSrc":"8378:30:53","nodeType":"YulFunctionCall","src":"8378:30:53"},"nativeSrc":"8375:56:53","nodeType":"YulIf","src":"8375:56:53"},{"nativeSrc":"8441:25:53","nodeType":"YulAssignment","src":"8441:25:53","value":{"arguments":[{"name":"length","nativeSrc":"8453:6:53","nodeType":"YulIdentifier","src":"8453:6:53"},{"kind":"number","nativeSrc":"8461:4:53","nodeType":"YulLiteral","src":"8461:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"8449:3:53","nodeType":"YulIdentifier","src":"8449:3:53"},"nativeSrc":"8449:17:53","nodeType":"YulFunctionCall","src":"8449:17:53"},"variableNames":[{"name":"size","nativeSrc":"8441:4:53","nodeType":"YulIdentifier","src":"8441:4:53"}]},{"nativeSrc":"8503:23:53","nodeType":"YulAssignment","src":"8503:23:53","value":{"arguments":[{"name":"size","nativeSrc":"8515:4:53","nodeType":"YulIdentifier","src":"8515:4:53"},{"kind":"number","nativeSrc":"8521:4:53","nodeType":"YulLiteral","src":"8521:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8511:3:53","nodeType":"YulIdentifier","src":"8511:3:53"},"nativeSrc":"8511:15:53","nodeType":"YulFunctionCall","src":"8511:15:53"},"variableNames":[{"name":"size","nativeSrc":"8503:4:53","nodeType":"YulIdentifier","src":"8503:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8222:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"8288:6:53","nodeType":"YulTypedName","src":"8288:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"8299:4:53","nodeType":"YulTypedName","src":"8299:4:53","type":""}],"src":"8222:311:53"},{"body":{"nativeSrc":"8658:608:53","nodeType":"YulBlock","src":"8658:608:53","statements":[{"nativeSrc":"8668:90:53","nodeType":"YulAssignment","src":"8668:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"8750:6:53","nodeType":"YulIdentifier","src":"8750:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8693:56:53","nodeType":"YulIdentifier","src":"8693:56:53"},"nativeSrc":"8693:64:53","nodeType":"YulFunctionCall","src":"8693:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"8677:15:53","nodeType":"YulIdentifier","src":"8677:15:53"},"nativeSrc":"8677:81:53","nodeType":"YulFunctionCall","src":"8677:81:53"},"variableNames":[{"name":"array","nativeSrc":"8668:5:53","nodeType":"YulIdentifier","src":"8668:5:53"}]},{"nativeSrc":"8767:16:53","nodeType":"YulVariableDeclaration","src":"8767:16:53","value":{"name":"array","nativeSrc":"8778:5:53","nodeType":"YulIdentifier","src":"8778:5:53"},"variables":[{"name":"dst","nativeSrc":"8771:3:53","nodeType":"YulTypedName","src":"8771:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"8800:5:53","nodeType":"YulIdentifier","src":"8800:5:53"},{"name":"length","nativeSrc":"8807:6:53","nodeType":"YulIdentifier","src":"8807:6:53"}],"functionName":{"name":"mstore","nativeSrc":"8793:6:53","nodeType":"YulIdentifier","src":"8793:6:53"},"nativeSrc":"8793:21:53","nodeType":"YulFunctionCall","src":"8793:21:53"},"nativeSrc":"8793:21:53","nodeType":"YulExpressionStatement","src":"8793:21:53"},{"nativeSrc":"8823:23:53","nodeType":"YulAssignment","src":"8823:23:53","value":{"arguments":[{"name":"array","nativeSrc":"8834:5:53","nodeType":"YulIdentifier","src":"8834:5:53"},{"kind":"number","nativeSrc":"8841:4:53","nodeType":"YulLiteral","src":"8841:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8830:3:53","nodeType":"YulIdentifier","src":"8830:3:53"},"nativeSrc":"8830:16:53","nodeType":"YulFunctionCall","src":"8830:16:53"},"variableNames":[{"name":"dst","nativeSrc":"8823:3:53","nodeType":"YulIdentifier","src":"8823:3:53"}]},{"nativeSrc":"8856:44:53","nodeType":"YulVariableDeclaration","src":"8856:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"8874:6:53","nodeType":"YulIdentifier","src":"8874:6:53"},{"arguments":[{"name":"length","nativeSrc":"8886:6:53","nodeType":"YulIdentifier","src":"8886:6:53"},{"kind":"number","nativeSrc":"8894:4:53","nodeType":"YulLiteral","src":"8894:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"8882:3:53","nodeType":"YulIdentifier","src":"8882:3:53"},"nativeSrc":"8882:17:53","nodeType":"YulFunctionCall","src":"8882:17:53"}],"functionName":{"name":"add","nativeSrc":"8870:3:53","nodeType":"YulIdentifier","src":"8870:3:53"},"nativeSrc":"8870:30:53","nodeType":"YulFunctionCall","src":"8870:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"8860:6:53","nodeType":"YulTypedName","src":"8860:6:53","type":""}]},{"body":{"nativeSrc":"8928:103:53","nodeType":"YulBlock","src":"8928:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"8942:77:53","nodeType":"YulIdentifier","src":"8942:77:53"},"nativeSrc":"8942:79:53","nodeType":"YulFunctionCall","src":"8942:79:53"},"nativeSrc":"8942:79:53","nodeType":"YulExpressionStatement","src":"8942:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"8915:6:53","nodeType":"YulIdentifier","src":"8915:6:53"},{"name":"end","nativeSrc":"8923:3:53","nodeType":"YulIdentifier","src":"8923:3:53"}],"functionName":{"name":"gt","nativeSrc":"8912:2:53","nodeType":"YulIdentifier","src":"8912:2:53"},"nativeSrc":"8912:15:53","nodeType":"YulFunctionCall","src":"8912:15:53"},"nativeSrc":"8909:122:53","nodeType":"YulIf","src":"8909:122:53"},{"body":{"nativeSrc":"9116:144:53","nodeType":"YulBlock","src":"9116:144:53","statements":[{"nativeSrc":"9131:21:53","nodeType":"YulVariableDeclaration","src":"9131:21:53","value":{"name":"src","nativeSrc":"9149:3:53","nodeType":"YulIdentifier","src":"9149:3:53"},"variables":[{"name":"elementPos","nativeSrc":"9135:10:53","nodeType":"YulTypedName","src":"9135:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"9173:3:53","nodeType":"YulIdentifier","src":"9173:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"9199:10:53","nodeType":"YulIdentifier","src":"9199:10:53"},{"name":"end","nativeSrc":"9211:3:53","nodeType":"YulIdentifier","src":"9211:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9178:20:53","nodeType":"YulIdentifier","src":"9178:20:53"},"nativeSrc":"9178:37:53","nodeType":"YulFunctionCall","src":"9178:37:53"}],"functionName":{"name":"mstore","nativeSrc":"9166:6:53","nodeType":"YulIdentifier","src":"9166:6:53"},"nativeSrc":"9166:50:53","nodeType":"YulFunctionCall","src":"9166:50:53"},"nativeSrc":"9166:50:53","nodeType":"YulExpressionStatement","src":"9166:50:53"},{"nativeSrc":"9229:21:53","nodeType":"YulAssignment","src":"9229:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"9240:3:53","nodeType":"YulIdentifier","src":"9240:3:53"},{"kind":"number","nativeSrc":"9245:4:53","nodeType":"YulLiteral","src":"9245:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9236:3:53","nodeType":"YulIdentifier","src":"9236:3:53"},"nativeSrc":"9236:14:53","nodeType":"YulFunctionCall","src":"9236:14:53"},"variableNames":[{"name":"dst","nativeSrc":"9229:3:53","nodeType":"YulIdentifier","src":"9229:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"9069:3:53","nodeType":"YulIdentifier","src":"9069:3:53"},{"name":"srcEnd","nativeSrc":"9074:6:53","nodeType":"YulIdentifier","src":"9074:6:53"}],"functionName":{"name":"lt","nativeSrc":"9066:2:53","nodeType":"YulIdentifier","src":"9066:2:53"},"nativeSrc":"9066:15:53","nodeType":"YulFunctionCall","src":"9066:15:53"},"nativeSrc":"9040:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"9082:25:53","nodeType":"YulBlock","src":"9082:25:53","statements":[{"nativeSrc":"9084:21:53","nodeType":"YulAssignment","src":"9084:21:53","value":{"arguments":[{"name":"src","nativeSrc":"9095:3:53","nodeType":"YulIdentifier","src":"9095:3:53"},{"kind":"number","nativeSrc":"9100:4:53","nodeType":"YulLiteral","src":"9100:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9091:3:53","nodeType":"YulIdentifier","src":"9091:3:53"},"nativeSrc":"9091:14:53","nodeType":"YulFunctionCall","src":"9091:14:53"},"variableNames":[{"name":"src","nativeSrc":"9084:3:53","nodeType":"YulIdentifier","src":"9084:3:53"}]}]},"pre":{"nativeSrc":"9044:21:53","nodeType":"YulBlock","src":"9044:21:53","statements":[{"nativeSrc":"9046:17:53","nodeType":"YulVariableDeclaration","src":"9046:17:53","value":{"name":"offset","nativeSrc":"9057:6:53","nodeType":"YulIdentifier","src":"9057:6:53"},"variables":[{"name":"src","nativeSrc":"9050:3:53","nodeType":"YulTypedName","src":"9050:3:53","type":""}]}]},"src":"9040:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8556:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8628:6:53","nodeType":"YulTypedName","src":"8628:6:53","type":""},{"name":"length","nativeSrc":"8636:6:53","nodeType":"YulTypedName","src":"8636:6:53","type":""},{"name":"end","nativeSrc":"8644:3:53","nodeType":"YulTypedName","src":"8644:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8652:5:53","nodeType":"YulTypedName","src":"8652:5:53","type":""}],"src":"8556:710:53"},{"body":{"nativeSrc":"9366:293:53","nodeType":"YulBlock","src":"9366:293:53","statements":[{"body":{"nativeSrc":"9415:83:53","nodeType":"YulBlock","src":"9415:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9417:77:53","nodeType":"YulIdentifier","src":"9417:77:53"},"nativeSrc":"9417:79:53","nodeType":"YulFunctionCall","src":"9417:79:53"},"nativeSrc":"9417:79:53","nodeType":"YulExpressionStatement","src":"9417:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9394:6:53","nodeType":"YulIdentifier","src":"9394:6:53"},{"kind":"number","nativeSrc":"9402:4:53","nodeType":"YulLiteral","src":"9402:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9390:3:53","nodeType":"YulIdentifier","src":"9390:3:53"},"nativeSrc":"9390:17:53","nodeType":"YulFunctionCall","src":"9390:17:53"},{"name":"end","nativeSrc":"9409:3:53","nodeType":"YulIdentifier","src":"9409:3:53"}],"functionName":{"name":"slt","nativeSrc":"9386:3:53","nodeType":"YulIdentifier","src":"9386:3:53"},"nativeSrc":"9386:27:53","nodeType":"YulFunctionCall","src":"9386:27:53"}],"functionName":{"name":"iszero","nativeSrc":"9379:6:53","nodeType":"YulIdentifier","src":"9379:6:53"},"nativeSrc":"9379:35:53","nodeType":"YulFunctionCall","src":"9379:35:53"},"nativeSrc":"9376:122:53","nodeType":"YulIf","src":"9376:122:53"},{"nativeSrc":"9507:34:53","nodeType":"YulVariableDeclaration","src":"9507:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"9534:6:53","nodeType":"YulIdentifier","src":"9534:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9521:12:53","nodeType":"YulIdentifier","src":"9521:12:53"},"nativeSrc":"9521:20:53","nodeType":"YulFunctionCall","src":"9521:20:53"},"variables":[{"name":"length","nativeSrc":"9511:6:53","nodeType":"YulTypedName","src":"9511:6:53","type":""}]},{"nativeSrc":"9550:103:53","nodeType":"YulAssignment","src":"9550:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9626:6:53","nodeType":"YulIdentifier","src":"9626:6:53"},{"kind":"number","nativeSrc":"9634:4:53","nodeType":"YulLiteral","src":"9634:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9622:3:53","nodeType":"YulIdentifier","src":"9622:3:53"},"nativeSrc":"9622:17:53","nodeType":"YulFunctionCall","src":"9622:17:53"},{"name":"length","nativeSrc":"9641:6:53","nodeType":"YulIdentifier","src":"9641:6:53"},{"name":"end","nativeSrc":"9649:3:53","nodeType":"YulIdentifier","src":"9649:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9559:62:53","nodeType":"YulIdentifier","src":"9559:62:53"},"nativeSrc":"9559:94:53","nodeType":"YulFunctionCall","src":"9559:94:53"},"variableNames":[{"name":"array","nativeSrc":"9550:5:53","nodeType":"YulIdentifier","src":"9550:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9289:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9344:6:53","nodeType":"YulTypedName","src":"9344:6:53","type":""},{"name":"end","nativeSrc":"9352:3:53","nodeType":"YulTypedName","src":"9352:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9360:5:53","nodeType":"YulTypedName","src":"9360:5:53","type":""}],"src":"9289:370:53"},{"body":{"nativeSrc":"9756:448:53","nodeType":"YulBlock","src":"9756:448:53","statements":[{"body":{"nativeSrc":"9802:83:53","nodeType":"YulBlock","src":"9802:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9804:77:53","nodeType":"YulIdentifier","src":"9804:77:53"},"nativeSrc":"9804:79:53","nodeType":"YulFunctionCall","src":"9804:79:53"},"nativeSrc":"9804:79:53","nodeType":"YulExpressionStatement","src":"9804:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9777:7:53","nodeType":"YulIdentifier","src":"9777:7:53"},{"name":"headStart","nativeSrc":"9786:9:53","nodeType":"YulIdentifier","src":"9786:9:53"}],"functionName":{"name":"sub","nativeSrc":"9773:3:53","nodeType":"YulIdentifier","src":"9773:3:53"},"nativeSrc":"9773:23:53","nodeType":"YulFunctionCall","src":"9773:23:53"},{"kind":"number","nativeSrc":"9798:2:53","nodeType":"YulLiteral","src":"9798:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9769:3:53","nodeType":"YulIdentifier","src":"9769:3:53"},"nativeSrc":"9769:32:53","nodeType":"YulFunctionCall","src":"9769:32:53"},"nativeSrc":"9766:119:53","nodeType":"YulIf","src":"9766:119:53"},{"nativeSrc":"9895:302:53","nodeType":"YulBlock","src":"9895:302:53","statements":[{"nativeSrc":"9910:45:53","nodeType":"YulVariableDeclaration","src":"9910:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9941:9:53","nodeType":"YulIdentifier","src":"9941:9:53"},{"kind":"number","nativeSrc":"9952:1:53","nodeType":"YulLiteral","src":"9952:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9937:3:53","nodeType":"YulIdentifier","src":"9937:3:53"},"nativeSrc":"9937:17:53","nodeType":"YulFunctionCall","src":"9937:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"9924:12:53","nodeType":"YulIdentifier","src":"9924:12:53"},"nativeSrc":"9924:31:53","nodeType":"YulFunctionCall","src":"9924:31:53"},"variables":[{"name":"offset","nativeSrc":"9914:6:53","nodeType":"YulTypedName","src":"9914:6:53","type":""}]},{"body":{"nativeSrc":"10002:83:53","nodeType":"YulBlock","src":"10002:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10004:77:53","nodeType":"YulIdentifier","src":"10004:77:53"},"nativeSrc":"10004:79:53","nodeType":"YulFunctionCall","src":"10004:79:53"},"nativeSrc":"10004:79:53","nodeType":"YulExpressionStatement","src":"10004:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9974:6:53","nodeType":"YulIdentifier","src":"9974:6:53"},{"kind":"number","nativeSrc":"9982:18:53","nodeType":"YulLiteral","src":"9982:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9971:2:53","nodeType":"YulIdentifier","src":"9971:2:53"},"nativeSrc":"9971:30:53","nodeType":"YulFunctionCall","src":"9971:30:53"},"nativeSrc":"9968:117:53","nodeType":"YulIf","src":"9968:117:53"},{"nativeSrc":"10099:88:53","nodeType":"YulAssignment","src":"10099:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10159:9:53","nodeType":"YulIdentifier","src":"10159:9:53"},{"name":"offset","nativeSrc":"10170:6:53","nodeType":"YulIdentifier","src":"10170:6:53"}],"functionName":{"name":"add","nativeSrc":"10155:3:53","nodeType":"YulIdentifier","src":"10155:3:53"},"nativeSrc":"10155:22:53","nodeType":"YulFunctionCall","src":"10155:22:53"},{"name":"dataEnd","nativeSrc":"10179:7:53","nodeType":"YulIdentifier","src":"10179:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10109:45:53","nodeType":"YulIdentifier","src":"10109:45:53"},"nativeSrc":"10109:78:53","nodeType":"YulFunctionCall","src":"10109:78:53"},"variableNames":[{"name":"value0","nativeSrc":"10099:6:53","nodeType":"YulIdentifier","src":"10099:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9665:539:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9726:9:53","nodeType":"YulTypedName","src":"9726:9:53","type":""},{"name":"dataEnd","nativeSrc":"9737:7:53","nodeType":"YulTypedName","src":"9737:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9749:6:53","nodeType":"YulTypedName","src":"9749:6:53","type":""}],"src":"9665:539:53"},{"body":{"nativeSrc":"10263:51:53","nodeType":"YulBlock","src":"10263:51:53","statements":[{"nativeSrc":"10273:35:53","nodeType":"YulAssignment","src":"10273:35:53","value":{"arguments":[{"name":"value","nativeSrc":"10302:5:53","nodeType":"YulIdentifier","src":"10302:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"10284:17:53","nodeType":"YulIdentifier","src":"10284:17:53"},"nativeSrc":"10284:24:53","nodeType":"YulFunctionCall","src":"10284:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"10273:7:53","nodeType":"YulIdentifier","src":"10273:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"10210:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10245:5:53","nodeType":"YulTypedName","src":"10245:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10255:7:53","nodeType":"YulTypedName","src":"10255:7:53","type":""}],"src":"10210:104:53"},{"body":{"nativeSrc":"10371:87:53","nodeType":"YulBlock","src":"10371:87:53","statements":[{"body":{"nativeSrc":"10436:16:53","nodeType":"YulBlock","src":"10436:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10445:1:53","nodeType":"YulLiteral","src":"10445:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10448:1:53","nodeType":"YulLiteral","src":"10448:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10438:6:53","nodeType":"YulIdentifier","src":"10438:6:53"},"nativeSrc":"10438:12:53","nodeType":"YulFunctionCall","src":"10438:12:53"},"nativeSrc":"10438:12:53","nodeType":"YulExpressionStatement","src":"10438:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10394:5:53","nodeType":"YulIdentifier","src":"10394:5:53"},{"arguments":[{"name":"value","nativeSrc":"10427:5:53","nodeType":"YulIdentifier","src":"10427:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"10401:25:53","nodeType":"YulIdentifier","src":"10401:25:53"},"nativeSrc":"10401:32:53","nodeType":"YulFunctionCall","src":"10401:32:53"}],"functionName":{"name":"eq","nativeSrc":"10391:2:53","nodeType":"YulIdentifier","src":"10391:2:53"},"nativeSrc":"10391:43:53","nodeType":"YulFunctionCall","src":"10391:43:53"}],"functionName":{"name":"iszero","nativeSrc":"10384:6:53","nodeType":"YulIdentifier","src":"10384:6:53"},"nativeSrc":"10384:51:53","nodeType":"YulFunctionCall","src":"10384:51:53"},"nativeSrc":"10381:71:53","nodeType":"YulIf","src":"10381:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"10320:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10364:5:53","nodeType":"YulTypedName","src":"10364:5:53","type":""}],"src":"10320:138:53"},{"body":{"nativeSrc":"10524:95:53","nodeType":"YulBlock","src":"10524:95:53","statements":[{"nativeSrc":"10534:29:53","nodeType":"YulAssignment","src":"10534:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10556:6:53","nodeType":"YulIdentifier","src":"10556:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10543:12:53","nodeType":"YulIdentifier","src":"10543:12:53"},"nativeSrc":"10543:20:53","nodeType":"YulFunctionCall","src":"10543:20:53"},"variableNames":[{"name":"value","nativeSrc":"10534:5:53","nodeType":"YulIdentifier","src":"10534:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10607:5:53","nodeType":"YulIdentifier","src":"10607:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"10572:34:53","nodeType":"YulIdentifier","src":"10572:34:53"},"nativeSrc":"10572:41:53","nodeType":"YulFunctionCall","src":"10572:41:53"},"nativeSrc":"10572:41:53","nodeType":"YulExpressionStatement","src":"10572:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"10464:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10502:6:53","nodeType":"YulTypedName","src":"10502:6:53","type":""},{"name":"end","nativeSrc":"10510:3:53","nodeType":"YulTypedName","src":"10510:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10518:5:53","nodeType":"YulTypedName","src":"10518:5:53","type":""}],"src":"10464:155:53"},{"body":{"nativeSrc":"10670:32:53","nodeType":"YulBlock","src":"10670:32:53","statements":[{"nativeSrc":"10680:16:53","nodeType":"YulAssignment","src":"10680:16:53","value":{"name":"value","nativeSrc":"10691:5:53","nodeType":"YulIdentifier","src":"10691:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"10680:7:53","nodeType":"YulIdentifier","src":"10680:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"10625:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10652:5:53","nodeType":"YulTypedName","src":"10652:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10662:7:53","nodeType":"YulTypedName","src":"10662:7:53","type":""}],"src":"10625:77:53"},{"body":{"nativeSrc":"10751:79:53","nodeType":"YulBlock","src":"10751:79:53","statements":[{"body":{"nativeSrc":"10808:16:53","nodeType":"YulBlock","src":"10808:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10817:1:53","nodeType":"YulLiteral","src":"10817:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10820:1:53","nodeType":"YulLiteral","src":"10820:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10810:6:53","nodeType":"YulIdentifier","src":"10810:6:53"},"nativeSrc":"10810:12:53","nodeType":"YulFunctionCall","src":"10810:12:53"},"nativeSrc":"10810:12:53","nodeType":"YulExpressionStatement","src":"10810:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10774:5:53","nodeType":"YulIdentifier","src":"10774:5:53"},{"arguments":[{"name":"value","nativeSrc":"10799:5:53","nodeType":"YulIdentifier","src":"10799:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"10781:17:53","nodeType":"YulIdentifier","src":"10781:17:53"},"nativeSrc":"10781:24:53","nodeType":"YulFunctionCall","src":"10781:24:53"}],"functionName":{"name":"eq","nativeSrc":"10771:2:53","nodeType":"YulIdentifier","src":"10771:2:53"},"nativeSrc":"10771:35:53","nodeType":"YulFunctionCall","src":"10771:35:53"}],"functionName":{"name":"iszero","nativeSrc":"10764:6:53","nodeType":"YulIdentifier","src":"10764:6:53"},"nativeSrc":"10764:43:53","nodeType":"YulFunctionCall","src":"10764:43:53"},"nativeSrc":"10761:63:53","nodeType":"YulIf","src":"10761:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"10708:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10744:5:53","nodeType":"YulTypedName","src":"10744:5:53","type":""}],"src":"10708:122:53"},{"body":{"nativeSrc":"10888:87:53","nodeType":"YulBlock","src":"10888:87:53","statements":[{"nativeSrc":"10898:29:53","nodeType":"YulAssignment","src":"10898:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10920:6:53","nodeType":"YulIdentifier","src":"10920:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10907:12:53","nodeType":"YulIdentifier","src":"10907:12:53"},"nativeSrc":"10907:20:53","nodeType":"YulFunctionCall","src":"10907:20:53"},"variableNames":[{"name":"value","nativeSrc":"10898:5:53","nodeType":"YulIdentifier","src":"10898:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10963:5:53","nodeType":"YulIdentifier","src":"10963:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"10936:26:53","nodeType":"YulIdentifier","src":"10936:26:53"},"nativeSrc":"10936:33:53","nodeType":"YulFunctionCall","src":"10936:33:53"},"nativeSrc":"10936:33:53","nodeType":"YulExpressionStatement","src":"10936:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"10836:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10866:6:53","nodeType":"YulTypedName","src":"10866:6:53","type":""},{"name":"end","nativeSrc":"10874:3:53","nodeType":"YulTypedName","src":"10874:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10882:5:53","nodeType":"YulTypedName","src":"10882:5:53","type":""}],"src":"10836:139:53"},{"body":{"nativeSrc":"11070:28:53","nodeType":"YulBlock","src":"11070:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11087:1:53","nodeType":"YulLiteral","src":"11087:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11090:1:53","nodeType":"YulLiteral","src":"11090:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11080:6:53","nodeType":"YulIdentifier","src":"11080:6:53"},"nativeSrc":"11080:12:53","nodeType":"YulFunctionCall","src":"11080:12:53"},"nativeSrc":"11080:12:53","nodeType":"YulExpressionStatement","src":"11080:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10981:117:53","nodeType":"YulFunctionDefinition","src":"10981:117:53"},{"body":{"nativeSrc":"11170:241:53","nodeType":"YulBlock","src":"11170:241:53","statements":[{"body":{"nativeSrc":"11275:22:53","nodeType":"YulBlock","src":"11275:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11277:16:53","nodeType":"YulIdentifier","src":"11277:16:53"},"nativeSrc":"11277:18:53","nodeType":"YulFunctionCall","src":"11277:18:53"},"nativeSrc":"11277:18:53","nodeType":"YulExpressionStatement","src":"11277:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"11247:6:53","nodeType":"YulIdentifier","src":"11247:6:53"},{"kind":"number","nativeSrc":"11255:18:53","nodeType":"YulLiteral","src":"11255:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11244:2:53","nodeType":"YulIdentifier","src":"11244:2:53"},"nativeSrc":"11244:30:53","nodeType":"YulFunctionCall","src":"11244:30:53"},"nativeSrc":"11241:56:53","nodeType":"YulIf","src":"11241:56:53"},{"nativeSrc":"11307:37:53","nodeType":"YulAssignment","src":"11307:37:53","value":{"arguments":[{"name":"length","nativeSrc":"11337:6:53","nodeType":"YulIdentifier","src":"11337:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11315:21:53","nodeType":"YulIdentifier","src":"11315:21:53"},"nativeSrc":"11315:29:53","nodeType":"YulFunctionCall","src":"11315:29:53"},"variableNames":[{"name":"size","nativeSrc":"11307:4:53","nodeType":"YulIdentifier","src":"11307:4:53"}]},{"nativeSrc":"11381:23:53","nodeType":"YulAssignment","src":"11381:23:53","value":{"arguments":[{"name":"size","nativeSrc":"11393:4:53","nodeType":"YulIdentifier","src":"11393:4:53"},{"kind":"number","nativeSrc":"11399:4:53","nodeType":"YulLiteral","src":"11399:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11389:3:53","nodeType":"YulIdentifier","src":"11389:3:53"},"nativeSrc":"11389:15:53","nodeType":"YulFunctionCall","src":"11389:15:53"},"variableNames":[{"name":"size","nativeSrc":"11381:4:53","nodeType":"YulIdentifier","src":"11381:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11104:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"11154:6:53","nodeType":"YulTypedName","src":"11154:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"11165:4:53","nodeType":"YulTypedName","src":"11165:4:53","type":""}],"src":"11104:307:53"},{"body":{"nativeSrc":"11481:84:53","nodeType":"YulBlock","src":"11481:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11505:3:53","nodeType":"YulIdentifier","src":"11505:3:53"},{"name":"src","nativeSrc":"11510:3:53","nodeType":"YulIdentifier","src":"11510:3:53"},{"name":"length","nativeSrc":"11515:6:53","nodeType":"YulIdentifier","src":"11515:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"11492:12:53","nodeType":"YulIdentifier","src":"11492:12:53"},"nativeSrc":"11492:30:53","nodeType":"YulFunctionCall","src":"11492:30:53"},"nativeSrc":"11492:30:53","nodeType":"YulExpressionStatement","src":"11492:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11542:3:53","nodeType":"YulIdentifier","src":"11542:3:53"},{"name":"length","nativeSrc":"11547:6:53","nodeType":"YulIdentifier","src":"11547:6:53"}],"functionName":{"name":"add","nativeSrc":"11538:3:53","nodeType":"YulIdentifier","src":"11538:3:53"},"nativeSrc":"11538:16:53","nodeType":"YulFunctionCall","src":"11538:16:53"},{"kind":"number","nativeSrc":"11556:1:53","nodeType":"YulLiteral","src":"11556:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11531:6:53","nodeType":"YulIdentifier","src":"11531:6:53"},"nativeSrc":"11531:27:53","nodeType":"YulFunctionCall","src":"11531:27:53"},"nativeSrc":"11531:27:53","nodeType":"YulExpressionStatement","src":"11531:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11417:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11463:3:53","nodeType":"YulTypedName","src":"11463:3:53","type":""},{"name":"dst","nativeSrc":"11468:3:53","nodeType":"YulTypedName","src":"11468:3:53","type":""},{"name":"length","nativeSrc":"11473:6:53","nodeType":"YulTypedName","src":"11473:6:53","type":""}],"src":"11417:148:53"},{"body":{"nativeSrc":"11654:340:53","nodeType":"YulBlock","src":"11654:340:53","statements":[{"nativeSrc":"11664:74:53","nodeType":"YulAssignment","src":"11664:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11730:6:53","nodeType":"YulIdentifier","src":"11730:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11689:40:53","nodeType":"YulIdentifier","src":"11689:40:53"},"nativeSrc":"11689:48:53","nodeType":"YulFunctionCall","src":"11689:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"11673:15:53","nodeType":"YulIdentifier","src":"11673:15:53"},"nativeSrc":"11673:65:53","nodeType":"YulFunctionCall","src":"11673:65:53"},"variableNames":[{"name":"array","nativeSrc":"11664:5:53","nodeType":"YulIdentifier","src":"11664:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11754:5:53","nodeType":"YulIdentifier","src":"11754:5:53"},{"name":"length","nativeSrc":"11761:6:53","nodeType":"YulIdentifier","src":"11761:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11747:6:53","nodeType":"YulIdentifier","src":"11747:6:53"},"nativeSrc":"11747:21:53","nodeType":"YulFunctionCall","src":"11747:21:53"},"nativeSrc":"11747:21:53","nodeType":"YulExpressionStatement","src":"11747:21:53"},{"nativeSrc":"11777:27:53","nodeType":"YulVariableDeclaration","src":"11777:27:53","value":{"arguments":[{"name":"array","nativeSrc":"11792:5:53","nodeType":"YulIdentifier","src":"11792:5:53"},{"kind":"number","nativeSrc":"11799:4:53","nodeType":"YulLiteral","src":"11799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11788:3:53","nodeType":"YulIdentifier","src":"11788:3:53"},"nativeSrc":"11788:16:53","nodeType":"YulFunctionCall","src":"11788:16:53"},"variables":[{"name":"dst","nativeSrc":"11781:3:53","nodeType":"YulTypedName","src":"11781:3:53","type":""}]},{"body":{"nativeSrc":"11842:83:53","nodeType":"YulBlock","src":"11842:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"11844:77:53","nodeType":"YulIdentifier","src":"11844:77:53"},"nativeSrc":"11844:79:53","nodeType":"YulFunctionCall","src":"11844:79:53"},"nativeSrc":"11844:79:53","nodeType":"YulExpressionStatement","src":"11844:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11823:3:53","nodeType":"YulIdentifier","src":"11823:3:53"},{"name":"length","nativeSrc":"11828:6:53","nodeType":"YulIdentifier","src":"11828:6:53"}],"functionName":{"name":"add","nativeSrc":"11819:3:53","nodeType":"YulIdentifier","src":"11819:3:53"},"nativeSrc":"11819:16:53","nodeType":"YulFunctionCall","src":"11819:16:53"},{"name":"end","nativeSrc":"11837:3:53","nodeType":"YulIdentifier","src":"11837:3:53"}],"functionName":{"name":"gt","nativeSrc":"11816:2:53","nodeType":"YulIdentifier","src":"11816:2:53"},"nativeSrc":"11816:25:53","nodeType":"YulFunctionCall","src":"11816:25:53"},"nativeSrc":"11813:112:53","nodeType":"YulIf","src":"11813:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"11971:3:53","nodeType":"YulIdentifier","src":"11971:3:53"},{"name":"dst","nativeSrc":"11976:3:53","nodeType":"YulIdentifier","src":"11976:3:53"},{"name":"length","nativeSrc":"11981:6:53","nodeType":"YulIdentifier","src":"11981:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11934:36:53","nodeType":"YulIdentifier","src":"11934:36:53"},"nativeSrc":"11934:54:53","nodeType":"YulFunctionCall","src":"11934:54:53"},"nativeSrc":"11934:54:53","nodeType":"YulExpressionStatement","src":"11934:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"11571:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11627:3:53","nodeType":"YulTypedName","src":"11627:3:53","type":""},{"name":"length","nativeSrc":"11632:6:53","nodeType":"YulTypedName","src":"11632:6:53","type":""},{"name":"end","nativeSrc":"11640:3:53","nodeType":"YulTypedName","src":"11640:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11648:5:53","nodeType":"YulTypedName","src":"11648:5:53","type":""}],"src":"11571:423:53"},{"body":{"nativeSrc":"12074:277:53","nodeType":"YulBlock","src":"12074:277:53","statements":[{"body":{"nativeSrc":"12123:83:53","nodeType":"YulBlock","src":"12123:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"12125:77:53","nodeType":"YulIdentifier","src":"12125:77:53"},"nativeSrc":"12125:79:53","nodeType":"YulFunctionCall","src":"12125:79:53"},"nativeSrc":"12125:79:53","nodeType":"YulExpressionStatement","src":"12125:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12102:6:53","nodeType":"YulIdentifier","src":"12102:6:53"},{"kind":"number","nativeSrc":"12110:4:53","nodeType":"YulLiteral","src":"12110:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12098:3:53","nodeType":"YulIdentifier","src":"12098:3:53"},"nativeSrc":"12098:17:53","nodeType":"YulFunctionCall","src":"12098:17:53"},{"name":"end","nativeSrc":"12117:3:53","nodeType":"YulIdentifier","src":"12117:3:53"}],"functionName":{"name":"slt","nativeSrc":"12094:3:53","nodeType":"YulIdentifier","src":"12094:3:53"},"nativeSrc":"12094:27:53","nodeType":"YulFunctionCall","src":"12094:27:53"}],"functionName":{"name":"iszero","nativeSrc":"12087:6:53","nodeType":"YulIdentifier","src":"12087:6:53"},"nativeSrc":"12087:35:53","nodeType":"YulFunctionCall","src":"12087:35:53"},"nativeSrc":"12084:122:53","nodeType":"YulIf","src":"12084:122:53"},{"nativeSrc":"12215:34:53","nodeType":"YulVariableDeclaration","src":"12215:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"12242:6:53","nodeType":"YulIdentifier","src":"12242:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12229:12:53","nodeType":"YulIdentifier","src":"12229:12:53"},"nativeSrc":"12229:20:53","nodeType":"YulFunctionCall","src":"12229:20:53"},"variables":[{"name":"length","nativeSrc":"12219:6:53","nodeType":"YulTypedName","src":"12219:6:53","type":""}]},{"nativeSrc":"12258:87:53","nodeType":"YulAssignment","src":"12258:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12318:6:53","nodeType":"YulIdentifier","src":"12318:6:53"},{"kind":"number","nativeSrc":"12326:4:53","nodeType":"YulLiteral","src":"12326:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12314:3:53","nodeType":"YulIdentifier","src":"12314:3:53"},"nativeSrc":"12314:17:53","nodeType":"YulFunctionCall","src":"12314:17:53"},{"name":"length","nativeSrc":"12333:6:53","nodeType":"YulIdentifier","src":"12333:6:53"},{"name":"end","nativeSrc":"12341:3:53","nodeType":"YulIdentifier","src":"12341:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"12267:46:53","nodeType":"YulIdentifier","src":"12267:46:53"},"nativeSrc":"12267:78:53","nodeType":"YulFunctionCall","src":"12267:78:53"},"variableNames":[{"name":"array","nativeSrc":"12258:5:53","nodeType":"YulIdentifier","src":"12258:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"12013:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12052:6:53","nodeType":"YulTypedName","src":"12052:6:53","type":""},{"name":"end","nativeSrc":"12060:3:53","nodeType":"YulTypedName","src":"12060:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"12068:5:53","nodeType":"YulTypedName","src":"12068:5:53","type":""}],"src":"12013:338:53"},{"body":{"nativeSrc":"12474:696:53","nodeType":"YulBlock","src":"12474:696:53","statements":[{"body":{"nativeSrc":"12520:83:53","nodeType":"YulBlock","src":"12520:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12522:77:53","nodeType":"YulIdentifier","src":"12522:77:53"},"nativeSrc":"12522:79:53","nodeType":"YulFunctionCall","src":"12522:79:53"},"nativeSrc":"12522:79:53","nodeType":"YulExpressionStatement","src":"12522:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12495:7:53","nodeType":"YulIdentifier","src":"12495:7:53"},{"name":"headStart","nativeSrc":"12504:9:53","nodeType":"YulIdentifier","src":"12504:9:53"}],"functionName":{"name":"sub","nativeSrc":"12491:3:53","nodeType":"YulIdentifier","src":"12491:3:53"},"nativeSrc":"12491:23:53","nodeType":"YulFunctionCall","src":"12491:23:53"},{"kind":"number","nativeSrc":"12516:2:53","nodeType":"YulLiteral","src":"12516:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"12487:3:53","nodeType":"YulIdentifier","src":"12487:3:53"},"nativeSrc":"12487:32:53","nodeType":"YulFunctionCall","src":"12487:32:53"},"nativeSrc":"12484:119:53","nodeType":"YulIf","src":"12484:119:53"},{"nativeSrc":"12613:125:53","nodeType":"YulBlock","src":"12613:125:53","statements":[{"nativeSrc":"12628:15:53","nodeType":"YulVariableDeclaration","src":"12628:15:53","value":{"kind":"number","nativeSrc":"12642:1:53","nodeType":"YulLiteral","src":"12642:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12632:6:53","nodeType":"YulTypedName","src":"12632:6:53","type":""}]},{"nativeSrc":"12657:71:53","nodeType":"YulAssignment","src":"12657:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12700:9:53","nodeType":"YulIdentifier","src":"12700:9:53"},{"name":"offset","nativeSrc":"12711:6:53","nodeType":"YulIdentifier","src":"12711:6:53"}],"functionName":{"name":"add","nativeSrc":"12696:3:53","nodeType":"YulIdentifier","src":"12696:3:53"},"nativeSrc":"12696:22:53","nodeType":"YulFunctionCall","src":"12696:22:53"},{"name":"dataEnd","nativeSrc":"12720:7:53","nodeType":"YulIdentifier","src":"12720:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12667:28:53","nodeType":"YulIdentifier","src":"12667:28:53"},"nativeSrc":"12667:61:53","nodeType":"YulFunctionCall","src":"12667:61:53"},"variableNames":[{"name":"value0","nativeSrc":"12657:6:53","nodeType":"YulIdentifier","src":"12657:6:53"}]}]},{"nativeSrc":"12748:118:53","nodeType":"YulBlock","src":"12748:118:53","statements":[{"nativeSrc":"12763:16:53","nodeType":"YulVariableDeclaration","src":"12763:16:53","value":{"kind":"number","nativeSrc":"12777:2:53","nodeType":"YulLiteral","src":"12777:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"12767:6:53","nodeType":"YulTypedName","src":"12767:6:53","type":""}]},{"nativeSrc":"12793:63:53","nodeType":"YulAssignment","src":"12793:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12828:9:53","nodeType":"YulIdentifier","src":"12828:9:53"},{"name":"offset","nativeSrc":"12839:6:53","nodeType":"YulIdentifier","src":"12839:6:53"}],"functionName":{"name":"add","nativeSrc":"12824:3:53","nodeType":"YulIdentifier","src":"12824:3:53"},"nativeSrc":"12824:22:53","nodeType":"YulFunctionCall","src":"12824:22:53"},{"name":"dataEnd","nativeSrc":"12848:7:53","nodeType":"YulIdentifier","src":"12848:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"12803:20:53","nodeType":"YulIdentifier","src":"12803:20:53"},"nativeSrc":"12803:53:53","nodeType":"YulFunctionCall","src":"12803:53:53"},"variableNames":[{"name":"value1","nativeSrc":"12793:6:53","nodeType":"YulIdentifier","src":"12793:6:53"}]}]},{"nativeSrc":"12876:287:53","nodeType":"YulBlock","src":"12876:287:53","statements":[{"nativeSrc":"12891:46:53","nodeType":"YulVariableDeclaration","src":"12891:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12922:9:53","nodeType":"YulIdentifier","src":"12922:9:53"},{"kind":"number","nativeSrc":"12933:2:53","nodeType":"YulLiteral","src":"12933:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12918:3:53","nodeType":"YulIdentifier","src":"12918:3:53"},"nativeSrc":"12918:18:53","nodeType":"YulFunctionCall","src":"12918:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12905:12:53","nodeType":"YulIdentifier","src":"12905:12:53"},"nativeSrc":"12905:32:53","nodeType":"YulFunctionCall","src":"12905:32:53"},"variables":[{"name":"offset","nativeSrc":"12895:6:53","nodeType":"YulTypedName","src":"12895:6:53","type":""}]},{"body":{"nativeSrc":"12984:83:53","nodeType":"YulBlock","src":"12984:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12986:77:53","nodeType":"YulIdentifier","src":"12986:77:53"},"nativeSrc":"12986:79:53","nodeType":"YulFunctionCall","src":"12986:79:53"},"nativeSrc":"12986:79:53","nodeType":"YulExpressionStatement","src":"12986:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12956:6:53","nodeType":"YulIdentifier","src":"12956:6:53"},{"kind":"number","nativeSrc":"12964:18:53","nodeType":"YulLiteral","src":"12964:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12953:2:53","nodeType":"YulIdentifier","src":"12953:2:53"},"nativeSrc":"12953:30:53","nodeType":"YulFunctionCall","src":"12953:30:53"},"nativeSrc":"12950:117:53","nodeType":"YulIf","src":"12950:117:53"},{"nativeSrc":"13081:72:53","nodeType":"YulAssignment","src":"13081:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13125:9:53","nodeType":"YulIdentifier","src":"13125:9:53"},{"name":"offset","nativeSrc":"13136:6:53","nodeType":"YulIdentifier","src":"13136:6:53"}],"functionName":{"name":"add","nativeSrc":"13121:3:53","nodeType":"YulIdentifier","src":"13121:3:53"},"nativeSrc":"13121:22:53","nodeType":"YulFunctionCall","src":"13121:22:53"},{"name":"dataEnd","nativeSrc":"13145:7:53","nodeType":"YulIdentifier","src":"13145:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"13091:29:53","nodeType":"YulIdentifier","src":"13091:29:53"},"nativeSrc":"13091:62:53","nodeType":"YulFunctionCall","src":"13091:62:53"},"variableNames":[{"name":"value2","nativeSrc":"13081:6:53","nodeType":"YulIdentifier","src":"13081:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr","nativeSrc":"12357:813:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12428:9:53","nodeType":"YulTypedName","src":"12428:9:53","type":""},{"name":"dataEnd","nativeSrc":"12439:7:53","nodeType":"YulTypedName","src":"12439:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12451:6:53","nodeType":"YulTypedName","src":"12451:6:53","type":""},{"name":"value1","nativeSrc":"12459:6:53","nodeType":"YulTypedName","src":"12459:6:53","type":""},{"name":"value2","nativeSrc":"12467:6:53","nodeType":"YulTypedName","src":"12467:6:53","type":""}],"src":"12357:813:53"},{"body":{"nativeSrc":"13241:53:53","nodeType":"YulBlock","src":"13241:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13258:3:53","nodeType":"YulIdentifier","src":"13258:3:53"},{"arguments":[{"name":"value","nativeSrc":"13281:5:53","nodeType":"YulIdentifier","src":"13281:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"13263:17:53","nodeType":"YulIdentifier","src":"13263:17:53"},"nativeSrc":"13263:24:53","nodeType":"YulFunctionCall","src":"13263:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13251:6:53","nodeType":"YulIdentifier","src":"13251:6:53"},"nativeSrc":"13251:37:53","nodeType":"YulFunctionCall","src":"13251:37:53"},"nativeSrc":"13251:37:53","nodeType":"YulExpressionStatement","src":"13251:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"13176:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13229:5:53","nodeType":"YulTypedName","src":"13229:5:53","type":""},{"name":"pos","nativeSrc":"13236:3:53","nodeType":"YulTypedName","src":"13236:3:53","type":""}],"src":"13176:118:53"},{"body":{"nativeSrc":"13358:40:53","nodeType":"YulBlock","src":"13358:40:53","statements":[{"nativeSrc":"13369:22:53","nodeType":"YulAssignment","src":"13369:22:53","value":{"arguments":[{"name":"value","nativeSrc":"13385:5:53","nodeType":"YulIdentifier","src":"13385:5:53"}],"functionName":{"name":"mload","nativeSrc":"13379:5:53","nodeType":"YulIdentifier","src":"13379:5:53"},"nativeSrc":"13379:12:53","nodeType":"YulFunctionCall","src":"13379:12:53"},"variableNames":[{"name":"length","nativeSrc":"13369:6:53","nodeType":"YulIdentifier","src":"13369:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13300:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13341:5:53","nodeType":"YulTypedName","src":"13341:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13351:6:53","nodeType":"YulTypedName","src":"13351:6:53","type":""}],"src":"13300:98:53"},{"body":{"nativeSrc":"13499:73:53","nodeType":"YulBlock","src":"13499:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13516:3:53","nodeType":"YulIdentifier","src":"13516:3:53"},{"name":"length","nativeSrc":"13521:6:53","nodeType":"YulIdentifier","src":"13521:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13509:6:53","nodeType":"YulIdentifier","src":"13509:6:53"},"nativeSrc":"13509:19:53","nodeType":"YulFunctionCall","src":"13509:19:53"},"nativeSrc":"13509:19:53","nodeType":"YulExpressionStatement","src":"13509:19:53"},{"nativeSrc":"13537:29:53","nodeType":"YulAssignment","src":"13537:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"13556:3:53","nodeType":"YulIdentifier","src":"13556:3:53"},{"kind":"number","nativeSrc":"13561:4:53","nodeType":"YulLiteral","src":"13561:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13552:3:53","nodeType":"YulIdentifier","src":"13552:3:53"},"nativeSrc":"13552:14:53","nodeType":"YulFunctionCall","src":"13552:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"13537:11:53","nodeType":"YulIdentifier","src":"13537:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13404:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13471:3:53","nodeType":"YulTypedName","src":"13471:3:53","type":""},{"name":"length","nativeSrc":"13476:6:53","nodeType":"YulTypedName","src":"13476:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13487:11:53","nodeType":"YulTypedName","src":"13487:11:53","type":""}],"src":"13404:168:53"},{"body":{"nativeSrc":"13640:77:53","nodeType":"YulBlock","src":"13640:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13657:3:53","nodeType":"YulIdentifier","src":"13657:3:53"},{"name":"src","nativeSrc":"13662:3:53","nodeType":"YulIdentifier","src":"13662:3:53"},{"name":"length","nativeSrc":"13667:6:53","nodeType":"YulIdentifier","src":"13667:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"13651:5:53","nodeType":"YulIdentifier","src":"13651:5:53"},"nativeSrc":"13651:23:53","nodeType":"YulFunctionCall","src":"13651:23:53"},"nativeSrc":"13651:23:53","nodeType":"YulExpressionStatement","src":"13651:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13694:3:53","nodeType":"YulIdentifier","src":"13694:3:53"},{"name":"length","nativeSrc":"13699:6:53","nodeType":"YulIdentifier","src":"13699:6:53"}],"functionName":{"name":"add","nativeSrc":"13690:3:53","nodeType":"YulIdentifier","src":"13690:3:53"},"nativeSrc":"13690:16:53","nodeType":"YulFunctionCall","src":"13690:16:53"},{"kind":"number","nativeSrc":"13708:1:53","nodeType":"YulLiteral","src":"13708:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13683:6:53","nodeType":"YulIdentifier","src":"13683:6:53"},"nativeSrc":"13683:27:53","nodeType":"YulFunctionCall","src":"13683:27:53"},"nativeSrc":"13683:27:53","nodeType":"YulExpressionStatement","src":"13683:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13578:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13622:3:53","nodeType":"YulTypedName","src":"13622:3:53","type":""},{"name":"dst","nativeSrc":"13627:3:53","nodeType":"YulTypedName","src":"13627:3:53","type":""},{"name":"length","nativeSrc":"13632:6:53","nodeType":"YulTypedName","src":"13632:6:53","type":""}],"src":"13578:139:53"},{"body":{"nativeSrc":"13813:283:53","nodeType":"YulBlock","src":"13813:283:53","statements":[{"nativeSrc":"13823:52:53","nodeType":"YulVariableDeclaration","src":"13823:52:53","value":{"arguments":[{"name":"value","nativeSrc":"13869:5:53","nodeType":"YulIdentifier","src":"13869:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13837:31:53","nodeType":"YulIdentifier","src":"13837:31:53"},"nativeSrc":"13837:38:53","nodeType":"YulFunctionCall","src":"13837:38:53"},"variables":[{"name":"length","nativeSrc":"13827:6:53","nodeType":"YulTypedName","src":"13827:6:53","type":""}]},{"nativeSrc":"13884:77:53","nodeType":"YulAssignment","src":"13884:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"13949:3:53","nodeType":"YulIdentifier","src":"13949:3:53"},{"name":"length","nativeSrc":"13954:6:53","nodeType":"YulIdentifier","src":"13954:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13891:57:53","nodeType":"YulIdentifier","src":"13891:57:53"},"nativeSrc":"13891:70:53","nodeType":"YulFunctionCall","src":"13891:70:53"},"variableNames":[{"name":"pos","nativeSrc":"13884:3:53","nodeType":"YulIdentifier","src":"13884:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14009:5:53","nodeType":"YulIdentifier","src":"14009:5:53"},{"kind":"number","nativeSrc":"14016:4:53","nodeType":"YulLiteral","src":"14016:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14005:3:53","nodeType":"YulIdentifier","src":"14005:3:53"},"nativeSrc":"14005:16:53","nodeType":"YulFunctionCall","src":"14005:16:53"},{"name":"pos","nativeSrc":"14023:3:53","nodeType":"YulIdentifier","src":"14023:3:53"},{"name":"length","nativeSrc":"14028:6:53","nodeType":"YulIdentifier","src":"14028:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13970:34:53","nodeType":"YulIdentifier","src":"13970:34:53"},"nativeSrc":"13970:65:53","nodeType":"YulFunctionCall","src":"13970:65:53"},"nativeSrc":"13970:65:53","nodeType":"YulExpressionStatement","src":"13970:65:53"},{"nativeSrc":"14044:46:53","nodeType":"YulAssignment","src":"14044:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"14055:3:53","nodeType":"YulIdentifier","src":"14055:3:53"},{"arguments":[{"name":"length","nativeSrc":"14082:6:53","nodeType":"YulIdentifier","src":"14082:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"14060:21:53","nodeType":"YulIdentifier","src":"14060:21:53"},"nativeSrc":"14060:29:53","nodeType":"YulFunctionCall","src":"14060:29:53"}],"functionName":{"name":"add","nativeSrc":"14051:3:53","nodeType":"YulIdentifier","src":"14051:3:53"},"nativeSrc":"14051:39:53","nodeType":"YulFunctionCall","src":"14051:39:53"},"variableNames":[{"name":"end","nativeSrc":"14044:3:53","nodeType":"YulIdentifier","src":"14044:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"13723:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13794:5:53","nodeType":"YulTypedName","src":"13794:5:53","type":""},{"name":"pos","nativeSrc":"13801:3:53","nodeType":"YulTypedName","src":"13801:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13809:3:53","nodeType":"YulTypedName","src":"13809:3:53","type":""}],"src":"13723:373:53"},{"body":{"nativeSrc":"14274:357:53","nodeType":"YulBlock","src":"14274:357:53","statements":[{"nativeSrc":"14284:26:53","nodeType":"YulAssignment","src":"14284:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14296:9:53","nodeType":"YulIdentifier","src":"14296:9:53"},{"kind":"number","nativeSrc":"14307:2:53","nodeType":"YulLiteral","src":"14307:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14292:3:53","nodeType":"YulIdentifier","src":"14292:3:53"},"nativeSrc":"14292:18:53","nodeType":"YulFunctionCall","src":"14292:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14284:4:53","nodeType":"YulIdentifier","src":"14284:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14364:6:53","nodeType":"YulIdentifier","src":"14364:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"14377:9:53","nodeType":"YulIdentifier","src":"14377:9:53"},{"kind":"number","nativeSrc":"14388:1:53","nodeType":"YulLiteral","src":"14388:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14373:3:53","nodeType":"YulIdentifier","src":"14373:3:53"},"nativeSrc":"14373:17:53","nodeType":"YulFunctionCall","src":"14373:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14320:43:53","nodeType":"YulIdentifier","src":"14320:43:53"},"nativeSrc":"14320:71:53","nodeType":"YulFunctionCall","src":"14320:71:53"},"nativeSrc":"14320:71:53","nodeType":"YulExpressionStatement","src":"14320:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14445:6:53","nodeType":"YulIdentifier","src":"14445:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"14458:9:53","nodeType":"YulIdentifier","src":"14458:9:53"},{"kind":"number","nativeSrc":"14469:2:53","nodeType":"YulLiteral","src":"14469:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14454:3:53","nodeType":"YulIdentifier","src":"14454:3:53"},"nativeSrc":"14454:18:53","nodeType":"YulFunctionCall","src":"14454:18:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"14401:43:53","nodeType":"YulIdentifier","src":"14401:43:53"},"nativeSrc":"14401:72:53","nodeType":"YulFunctionCall","src":"14401:72:53"},"nativeSrc":"14401:72:53","nodeType":"YulExpressionStatement","src":"14401:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14494:9:53","nodeType":"YulIdentifier","src":"14494:9:53"},{"kind":"number","nativeSrc":"14505:2:53","nodeType":"YulLiteral","src":"14505:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14490:3:53","nodeType":"YulIdentifier","src":"14490:3:53"},"nativeSrc":"14490:18:53","nodeType":"YulFunctionCall","src":"14490:18:53"},{"arguments":[{"name":"tail","nativeSrc":"14514:4:53","nodeType":"YulIdentifier","src":"14514:4:53"},{"name":"headStart","nativeSrc":"14520:9:53","nodeType":"YulIdentifier","src":"14520:9:53"}],"functionName":{"name":"sub","nativeSrc":"14510:3:53","nodeType":"YulIdentifier","src":"14510:3:53"},"nativeSrc":"14510:20:53","nodeType":"YulFunctionCall","src":"14510:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14483:6:53","nodeType":"YulIdentifier","src":"14483:6:53"},"nativeSrc":"14483:48:53","nodeType":"YulFunctionCall","src":"14483:48:53"},"nativeSrc":"14483:48:53","nodeType":"YulExpressionStatement","src":"14483:48:53"},{"nativeSrc":"14540:84:53","nodeType":"YulAssignment","src":"14540:84:53","value":{"arguments":[{"name":"value2","nativeSrc":"14610:6:53","nodeType":"YulIdentifier","src":"14610:6:53"},{"name":"tail","nativeSrc":"14619:4:53","nodeType":"YulIdentifier","src":"14619:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"14548:61:53","nodeType":"YulIdentifier","src":"14548:61:53"},"nativeSrc":"14548:76:53","nodeType":"YulFunctionCall","src":"14548:76:53"},"variableNames":[{"name":"tail","nativeSrc":"14540:4:53","nodeType":"YulIdentifier","src":"14540:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"14102:529:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14230:9:53","nodeType":"YulTypedName","src":"14230:9:53","type":""},{"name":"value2","nativeSrc":"14242:6:53","nodeType":"YulTypedName","src":"14242:6:53","type":""},{"name":"value1","nativeSrc":"14250:6:53","nodeType":"YulTypedName","src":"14250:6:53","type":""},{"name":"value0","nativeSrc":"14258:6:53","nodeType":"YulTypedName","src":"14258:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14269:4:53","nodeType":"YulTypedName","src":"14269:4:53","type":""}],"src":"14102:529:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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 panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_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_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_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function 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 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_address_payablet_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\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_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100a6575f3560e01c8063736c0d5b11610063578063736c0d5b146101545780638da5cb5b14610190578063c16e50ef146101ba578063f04e283e146101f6578063f2fde38b14610212578063fee81cf41461022e576100a6565b806301ffc9a7146100aa57806325692962146100e65780634359d28a146100f0578063439fab911461011857806354d1f13d14610140578063715018a61461014a575b5f80fd5b3480156100b5575f80fd5b506100d060048036038101906100cb9190610c67565b61026a565b6040516100dd9190610cac565b60405180910390f35b6100ee6102e3565b005b3480156100fb575f80fd5b5061011660048036038101906101119190610d7b565b610334565b005b348015610123575f80fd5b5061013e60048036038101906101399190610e4e565b61043d565b005b610148610570565b005b6101526105a9565b005b34801561015f575f80fd5b5061017a60048036038101906101759190610ef3565b6105bc565b6040516101879190610cac565b60405180910390f35b34801561019b575f80fd5b506101a46105d8565b6040516101b19190610f2d565b60405180910390f35b3480156101c5575f80fd5b506101e060048036038101906101db9190610e4e565b610600565b6040516101ed9190610cac565b60405180910390f35b610210600480360381019061020b9190610ef3565b610762565b005b61022c60048036038101906102279190610ef3565b6107a0565b005b348015610239575f80fd5b50610254600480360381019061024f9190610ef3565b6107c9565b6040516102619190610f5e565b60405180910390f35b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102dc57506102db826107e2565b5b9050919050565b5f6102ec61085b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61033c610865565b81819050848490501461037b576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156104365782828281811061039b5761039a610f77565b5b90506020020160208101906103b09190610fce565b5f808787858181106103c5576103c4610f77565b5b90506020020160208101906103da9190610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061037d565b5050505050565b5f61044661089c565b905080546003825580156104785760018160011c14303b1061046f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104899190611141565b90506104ae815f815181106104a1576104a0610f77565b5b60200260200101516108c5565b5f5b81518110156105345760015f808484815181106104d0576104cf610f77565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104b0565b5050801561056b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105b1610865565b6105ba5f61099b565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f80858581019061061391906112a6565b9250925092505f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610698576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015f8381526020019081526020015f205f9054906101000a900460ff16156106fc578282826040517fcde6ac870000000000000000000000000000000000000000000000000000000081526004016106f393929190611381565b60405180910390fd5b6001805f8481526020019081526020015f205f6101000a81548160ff02191690831515021790555061075761073083610a61565b828573ffffffffffffffffffffffffffffffffffffffff16610a919092919063ffffffff16565b935050505092915050565b61076a610865565b63389a75e1600c52805f526020600c20805442111561079057636f5e88185f526004601cfd5b5f81555061079d8161099b565b50565b6107a8610865565b8060601b6107bd57637448fbae5f526004601cfd5b6107c68161099b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610854575061085382610b94565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461089a576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108cd610bfd565b15610945577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561090757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610998565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6109a3610bfd565b15610a08577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610a5e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f816020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c6004209050919050565b5f8360601b60601c93508315610b8d57604051835f5260208301516040526040835103610afe576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610afb57600193505f60605282604052505050610b8d565b50505b6041835103610b445760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610b4257600192505f606052816040525050610b8d565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4681610c12565b8114610c50575f80fd5b50565b5f81359050610c6181610c3d565b92915050565b5f60208284031215610c7c57610c7b610c0a565b5b5f610c8984828501610c53565b91505092915050565b5f8115159050919050565b610ca681610c92565b82525050565b5f602082019050610cbf5f830184610c9d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610ce657610ce5610cc5565b5b8235905067ffffffffffffffff811115610d0357610d02610cc9565b5b602083019150836020820283011115610d1f57610d1e610ccd565b5b9250929050565b5f8083601f840112610d3b57610d3a610cc5565b5b8235905067ffffffffffffffff811115610d5857610d57610cc9565b5b602083019150836020820283011115610d7457610d73610ccd565b5b9250929050565b5f805f8060408587031215610d9357610d92610c0a565b5b5f85013567ffffffffffffffff811115610db057610daf610c0e565b5b610dbc87828801610cd1565b9450945050602085013567ffffffffffffffff811115610ddf57610dde610c0e565b5b610deb87828801610d26565b925092505092959194509250565b5f8083601f840112610e0e57610e0d610cc5565b5b8235905067ffffffffffffffff811115610e2b57610e2a610cc9565b5b602083019150836001820283011115610e4757610e46610ccd565b5b9250929050565b5f8060208385031215610e6457610e63610c0a565b5b5f83013567ffffffffffffffff811115610e8157610e80610c0e565b5b610e8d85828601610df9565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ec282610e99565b9050919050565b610ed281610eb8565b8114610edc575f80fd5b50565b5f81359050610eed81610ec9565b92915050565b5f60208284031215610f0857610f07610c0a565b5b5f610f1584828501610edf565b91505092915050565b610f2781610eb8565b82525050565b5f602082019050610f405f830184610f1e565b92915050565b5f819050919050565b610f5881610f46565b82525050565b5f602082019050610f715f830184610f4f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610fad81610c92565b8114610fb7575f80fd5b50565b5f81359050610fc881610fa4565b92915050565b5f60208284031215610fe357610fe2610c0a565b5b5f610ff084828501610fba565b91505092915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61103f82610ff9565b810181811067ffffffffffffffff8211171561105e5761105d611009565b5b80604052505050565b5f611070610c01565b905061107c8282611036565b919050565b5f67ffffffffffffffff82111561109b5761109a611009565b5b602082029050602081019050919050565b5f6110be6110b984611081565b611067565b905080838252602082019050602084028301858111156110e1576110e0610ccd565b5b835b8181101561110a57806110f68882610edf565b8452602084019350506020810190506110e3565b5050509392505050565b5f82601f83011261112857611127610cc5565b5b81356111388482602086016110ac565b91505092915050565b5f6020828403121561115657611155610c0a565b5b5f82013567ffffffffffffffff81111561117357611172610c0e565b5b61117f84828501611114565b91505092915050565b5f61119282610e99565b9050919050565b6111a281611188565b81146111ac575f80fd5b50565b5f813590506111bd81611199565b92915050565b5f819050919050565b6111d5816111c3565b81146111df575f80fd5b50565b5f813590506111f0816111cc565b92915050565b5f80fd5b5f67ffffffffffffffff82111561121457611213611009565b5b61121d82610ff9565b9050602081019050919050565b828183375f83830152505050565b5f61124a611245846111fa565b611067565b905082815260208101848484011115611266576112656111f6565b5b61127184828561122a565b509392505050565b5f82601f83011261128d5761128c610cc5565b5b813561129d848260208601611238565b91505092915050565b5f805f606084860312156112bd576112bc610c0a565b5b5f6112ca868287016111af565b93505060206112db868287016111e2565b925050604084013567ffffffffffffffff8111156112fc576112fb610c0e565b5b61130886828701611279565b9150509250925092565b61131b816111c3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61135382611321565b61135d818561132b565b935061136d81856020860161133b565b61137681610ff9565b840191505092915050565b5f6060820190506113945f830186610f1e565b6113a16020830185611312565b81810360408301526113b38184611349565b905094935050505056fea2646970667358221220fb96b8bbaa716ab5834801787dcb38454cf3f296d0e18168b53e83467fc8812c64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x736C0D5B GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x22E JUMPI PUSH2 0xA6 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEE PUSH2 0x2E3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x123 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x43D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x148 PUSH2 0x570 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x152 PUSH2 0x5A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A4 PUSH2 0x5D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0xF2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x600 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x210 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20B SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x762 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x22C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x227 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7A0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24F SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2DC JUMPI POP PUSH2 0x2DB DUP3 PUSH2 0x7E2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2EC PUSH2 0x85B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x33C PUSH2 0x865 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x436 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x39B JUMPI PUSH2 0x39A PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0xFCE JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x3C5 JUMPI PUSH2 0x3C4 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x446 PUSH2 0x89C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x478 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x46F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x489 SWAP2 SWAP1 PUSH2 0x1141 JUMP JUMPDEST SWAP1 POP PUSH2 0x4AE DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x4A1 JUMPI PUSH2 0x4A0 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8C5 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x534 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x4D0 JUMPI PUSH2 0x4CF PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x4B0 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x56B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x5B1 PUSH2 0x865 JUMP JUMPDEST PUSH2 0x5BA PUSH0 PUSH2 0x99B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 DUP6 DUP6 DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x698 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6FC JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xCDE6AC8700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1381 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x757 PUSH2 0x730 DUP4 PUSH2 0xA61 JUMP JUMPDEST DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA91 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x76A PUSH2 0x865 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x790 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x79D DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7A8 PUSH2 0x865 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7BD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7C6 DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x854 JUMPI POP PUSH2 0x853 DUP3 PUSH2 0xB94 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x89A JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8CD PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0x945 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x907 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x998 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A3 PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0xA08 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xA5E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH28 0x19457468657265756D205369676E6564204D6573736167653A0A3332 PUSH0 MSTORE PUSH1 0x3C PUSH1 0x4 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP4 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP4 POP DUP4 ISZERO PUSH2 0xB8D JUMPI PUSH1 0x40 MLOAD DUP4 PUSH0 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MSTORE PUSH1 0x40 DUP4 MLOAD SUB PUSH2 0xAFE JUMPI PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x1B DUP2 PUSH1 0xFF SHR ADD PUSH1 0x20 MSTORE DUP1 PUSH1 0x1 SHL PUSH1 0x1 SHR PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP8 XOR RETURNDATASIZE ISZERO OR PUSH2 0xAFB JUMPI PUSH1 0x1 SWAP4 POP PUSH0 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE POP POP POP PUSH2 0xB8D JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x41 DUP4 MLOAD SUB PUSH2 0xB44 JUMPI PUSH1 0x60 DUP4 ADD MLOAD PUSH0 BYTE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP7 XOR RETURNDATASIZE ISZERO OR PUSH2 0xB42 JUMPI PUSH1 0x1 SWAP3 POP PUSH0 PUSH1 0x60 MSTORE DUP2 PUSH1 0x40 MSTORE POP POP PUSH2 0xB8D JUMP JUMPDEST POP JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP1 DUP3 MSTORE DUP5 PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD PUSH1 0x40 DUP2 MSTORE DUP5 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x44 DUP6 ADD DUP3 DUP9 PUSH1 0x4 GAS STATICCALL POP PUSH1 0x20 DUP3 PUSH1 0x44 RETURNDATASIZE ADD DUP7 DUP12 GAS STATICCALL DUP4 DUP4 MLOAD EQ AND SWAP5 POP POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xC12 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC61 DUP2 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7C JUMPI PUSH2 0xC7B PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC89 DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA6 DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCBF PUSH0 DUP4 ADD DUP5 PUSH2 0xC9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xCE6 JUMPI PUSH2 0xCE5 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD03 JUMPI PUSH2 0xD02 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD1F JUMPI PUSH2 0xD1E PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD57 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD74 JUMPI PUSH2 0xD73 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDB0 JUMPI PUSH2 0xDAF PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDBC DUP8 DUP3 DUP9 ADD PUSH2 0xCD1 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDDF JUMPI PUSH2 0xDDE PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDEB DUP8 DUP3 DUP9 ADD PUSH2 0xD26 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE0E JUMPI PUSH2 0xE0D PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2B JUMPI PUSH2 0xE2A PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE47 JUMPI PUSH2 0xE46 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE64 JUMPI PUSH2 0xE63 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xE8D DUP6 DUP3 DUP7 ADD PUSH2 0xDF9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xEC2 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xED2 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0xEDC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEED DUP2 PUSH2 0xEC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF15 DUP5 DUP3 DUP6 ADD PUSH2 0xEDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF27 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF40 PUSH0 DUP4 ADD DUP5 PUSH2 0xF1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF58 DUP2 PUSH2 0xF46 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF71 PUSH0 DUP4 ADD DUP5 PUSH2 0xF4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFAD DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP2 EQ PUSH2 0xFB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFC8 DUP2 PUSH2 0xFA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE3 JUMPI PUSH2 0xFE2 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFF0 DUP5 DUP3 DUP6 ADD PUSH2 0xFBA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x103F DUP3 PUSH2 0xFF9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x105E JUMPI PUSH2 0x105D PUSH2 0x1009 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1070 PUSH2 0xC01 JUMP JUMPDEST SWAP1 POP PUSH2 0x107C DUP3 DUP3 PUSH2 0x1036 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x109B JUMPI PUSH2 0x109A PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BE PUSH2 0x10B9 DUP5 PUSH2 0x1081 JUMP JUMPDEST PUSH2 0x1067 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 0x10E1 JUMPI PUSH2 0x10E0 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x110A JUMPI DUP1 PUSH2 0x10F6 DUP9 DUP3 PUSH2 0xEDF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x10E3 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1128 JUMPI PUSH2 0x1127 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1138 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x10AC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1156 JUMPI PUSH2 0x1155 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1173 JUMPI PUSH2 0x1172 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x117F DUP5 DUP3 DUP6 ADD PUSH2 0x1114 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1192 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11A2 DUP2 PUSH2 0x1188 JUMP JUMPDEST DUP2 EQ PUSH2 0x11AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11BD DUP2 PUSH2 0x1199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP2 EQ PUSH2 0x11DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11F0 DUP2 PUSH2 0x11CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1214 JUMPI PUSH2 0x1213 PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH2 0x121D DUP3 PUSH2 0xFF9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x124A PUSH2 0x1245 DUP5 PUSH2 0x11FA JUMP JUMPDEST PUSH2 0x1067 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1266 JUMPI PUSH2 0x1265 PUSH2 0x11F6 JUMP JUMPDEST JUMPDEST PUSH2 0x1271 DUP5 DUP3 DUP6 PUSH2 0x122A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x128D JUMPI PUSH2 0x128C PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x129D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1238 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x12BD JUMPI PUSH2 0x12BC PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CA DUP7 DUP3 DUP8 ADD PUSH2 0x11AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x12DB DUP7 DUP3 DUP8 ADD PUSH2 0x11E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12FC JUMPI PUSH2 0x12FB PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x1308 DUP7 DUP3 DUP8 ADD PUSH2 0x1279 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x131B DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1353 DUP3 PUSH2 0x1321 JUMP JUMPDEST PUSH2 0x135D DUP2 DUP6 PUSH2 0x132B JUMP JUMPDEST SWAP4 POP PUSH2 0x136D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x133B JUMP JUMPDEST PUSH2 0x1376 DUP2 PUSH2 0xFF9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1394 PUSH0 DUP4 ADD DUP7 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x13A1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1312 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13B3 DUP2 DUP5 PUSH2 0x1349 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SWAP7 0xB8 0xBB 0xAA PUSH18 0x6AB5834801787DCB38454CF3F296D0E18168 0xB5 RETURNDATACOPY DUP4 CHAINID PUSH32 0xC8812C64736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"515:2634:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:208:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;2835:312:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1321:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;646:39:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2073:584:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1512:208:52;1608:4;1646:27;1631:42;;;:11;:42;;;;:82;;;;1677:36;1701:11;1677:23;:36::i;:::-;1631:82;1624:89;;1512:208;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;2835:312:51:-;12517:13:17;:11;:13::i;:::-;2968:11:51::1;;:18;;2949:8;;:15;;:37;2945:77;;2995:27;;;;;;;;;;;;;;2945:77;3038:9;3033:108;3057:8;;:15;;3053:1;:19;3033:108;;;3116:11;;3128:1;3116:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3093:7;:20:::0;3101:8:::1;;3110:1;3101:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3093:20;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;3074:3;;;;;;;3033:108;;;;2835:312:::0;;;;:::o;1321:301::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1410:25:51::1;1450:5;;1439:30;;;;;;;:::i;:::-;1409:60;;1479:29;1496:8;1505:1;1496:11;;;;;;;;:::i;:::-;;;;;;;;1479:16;:29::i;:::-;1523:9;1518:98;1542:8;:15;1538:1;:19;1518:98;;;1601:4;1578:7;:20:::0;1586:8:::1;1595:1;1586:11;;;;;;;;:::i;:::-;;;;;;;;1578:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1559:3;;;;;;;1518:98;;;;1399:223;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1321:301:51;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;646:39:51:-;;;;;;;;;;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;2073:584:51:-;2140:4;2157:15;2174:13;2189:23;2227:5;;2216:44;;;;;;;:::i;:::-;2156:104;;;;;;2276:7;:16;2284:7;2276:16;;;;;;;;;;;;;;;;;;;;;;;;;2271:55;;2301:25;;;;;;;;;;;;;;2271:55;2340:5;:12;2346:5;2340:12;;;;;;;;;;;;;;;;;;;;;2336:72;;;2381:7;2390:5;2397:10;2361:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;2336:72;2486:4;2471:5;:12;2477:5;2471:12;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2560:90;2588:49;2631:5;2588:42;:49::i;:::-;2639:10;2560:7;:27;;;;:90;;;;;:::i;:::-;2553:97;;;;;2073:584;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;24226:409:28:-;24295:14;24400:4;24394;24387:18;24474:50;24468:4;24461:64;24577:4;24571;24561:21;24551:31;;24226:409;;;:::o;1980:4154::-;2110:12;2311:6;2307:2;2303:15;2299:2;2295:24;2285:34;;2322:6;2279:3839;;;2365:4;2359:11;2400:4;2394;2387:18;2456:4;2445:9;2441:20;2435:27;2429:4;2422:41;2512:2;2500:9;2494:16;2491:24;2488:1077;;2569:4;2558:9;2554:20;2548:27;2627:2;2622;2617:3;2613:12;2609:21;2603:4;2596:35;2687:2;2684:1;2680:10;2677:1;2673:18;2667:4;2660:32;3089:4;3035;2983;2930;2872:1;2794:5;2754:384;3309:1;3303:8;3295:6;3291:21;3272:16;3265:24;3262:51;3252:295;;3352:1;3341:12;;3391:1;3385:4;3378:15;3457:1;3451:4;3444:15;3520:5;;;;;3252:295;2516:1049;;2488:1077;3606:2;3594:9;3588:16;3585:24;3582:1043;;3674:4;3663:9;3659:20;3653:27;3650:1;3645:36;3639:4;3632:50;3745:4;3734:9;3730:20;3724:27;3718:4;3711:41;4149:4;4095;4043;3990;3932:1;3854:5;3814:384;4369:1;4363:8;4355:6;4351:21;4332:16;4325:24;4322:51;4312:295;;4412:1;4401:12;;4451:1;4445:4;4438:15;4517:1;4511:4;4504:15;4580:5;;;;4312:295;3610:1015;3582:1043;4655:1;4649:4;4642:15;4713:1;4707:4;4700:15;4787:10;4782:3;4778:20;4825:1;4822;4815:12;4924:4;4917;4914:1;4910:12;4903:26;4962:4;4959:1;4955:12;4994:4;4991:1;4984:15;5137:9;5131:16;5125:4;5121:27;5218:1;5211:4;5208:1;5204:12;5201:1;5190:9;5187:1;5180:5;5169:51;5165:56;6004:4;5952:1;5888:4;5870:16;5866:27;5806:1;5749:6;5700:5;5664:400;5428:1;5424;5418:8;5415:15;5296:786;5285:797;;6099:5;;;;2279:3839;1980:4154;;;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1904:568;1977:8;1987:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:122;;2045:79;;:::i;:::-;2004:122;2158:6;2145:20;2135:30;;2188:18;2180:6;2177:30;2174:117;;;2210:79;;:::i;:::-;2174:117;2324:4;2316:6;2312:17;2300:29;;2378:3;2370:4;2362:6;2358:17;2348:8;2344:32;2341:41;2338:128;;;2385:79;;:::i;:::-;2338:128;1904:568;;;;;:::o;2492:565::-;2562:8;2572:6;2622:3;2615:4;2607:6;2603:17;2599:27;2589:122;;2630:79;;:::i;:::-;2589:122;2743:6;2730:20;2720:30;;2773:18;2765:6;2762:30;2759:117;;;2795:79;;:::i;:::-;2759:117;2909:4;2901:6;2897:17;2885:29;;2963:3;2955:4;2947:6;2943:17;2933:8;2929:32;2926:41;2923:128;;;2970:79;;:::i;:::-;2923:128;2492:565;;;;;:::o;3063:928::-;3182:6;3190;3198;3206;3255:2;3243:9;3234:7;3230:23;3226:32;3223:119;;;3261:79;;:::i;:::-;3223:119;3409:1;3398:9;3394:17;3381:31;3439:18;3431:6;3428:30;3425:117;;;3461:79;;:::i;:::-;3425:117;3574:80;3646:7;3637:6;3626:9;3622:22;3574:80;:::i;:::-;3556:98;;;;3352:312;3731:2;3720:9;3716:18;3703:32;3762:18;3754:6;3751:30;3748:117;;;3784:79;;:::i;:::-;3748:117;3897:77;3966:7;3957:6;3946:9;3942:22;3897:77;:::i;:::-;3879:95;;;;3674:310;3063:928;;;;;;;:::o;4010:552::-;4067:8;4077:6;4127:3;4120:4;4112:6;4108:17;4104:27;4094:122;;4135:79;;:::i;:::-;4094:122;4248:6;4235:20;4225:30;;4278:18;4270:6;4267:30;4264:117;;;4300:79;;:::i;:::-;4264:117;4414:4;4406:6;4402:17;4390:29;;4468:3;4460:4;4452:6;4448:17;4438:8;4434:32;4431:41;4428:128;;;4475:79;;:::i;:::-;4428:128;4010:552;;;;;:::o;4568:527::-;4638:6;4646;4695:2;4683:9;4674:7;4670:23;4666:32;4663:119;;;4701:79;;:::i;:::-;4663:119;4849:1;4838:9;4834:17;4821:31;4879:18;4871:6;4868:30;4865:117;;;4901:79;;:::i;:::-;4865:117;5014:64;5070:7;5061:6;5050:9;5046:22;5014:64;:::i;:::-;4996:82;;;;4792:296;4568:527;;;;;:::o;5101:126::-;5138:7;5178:42;5171:5;5167:54;5156:65;;5101:126;;;:::o;5233:96::-;5270:7;5299:24;5317:5;5299:24;:::i;:::-;5288:35;;5233:96;;;:::o;5335:122::-;5408:24;5426:5;5408:24;:::i;:::-;5401:5;5398:35;5388:63;;5447:1;5444;5437:12;5388:63;5335:122;:::o;5463:139::-;5509:5;5547:6;5534:20;5525:29;;5563:33;5590:5;5563:33;:::i;:::-;5463:139;;;;:::o;5608:329::-;5667:6;5716:2;5704:9;5695:7;5691:23;5687:32;5684:119;;;5722:79;;:::i;:::-;5684:119;5842:1;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5813:117;5608:329;;;;:::o;5943:118::-;6030:24;6048:5;6030:24;:::i;:::-;6025:3;6018:37;5943:118;;:::o;6067:222::-;6160:4;6198:2;6187:9;6183:18;6175:26;;6211:71;6279:1;6268:9;6264:17;6255:6;6211:71;:::i;:::-;6067:222;;;;:::o;6295:77::-;6332:7;6361:5;6350:16;;6295:77;;;:::o;6378:118::-;6465:24;6483:5;6465:24;:::i;:::-;6460:3;6453:37;6378:118;;:::o;6502:222::-;6595:4;6633:2;6622:9;6618:18;6610:26;;6646:71;6714:1;6703:9;6699:17;6690:6;6646:71;:::i;:::-;6502:222;;;;:::o;6730:180::-;6778:77;6775:1;6768:88;6875:4;6872:1;6865:15;6899:4;6896:1;6889:15;6916:116;6986:21;7001:5;6986:21;:::i;:::-;6979:5;6976:32;6966:60;;7022:1;7019;7012:12;6966:60;6916:116;:::o;7038:133::-;7081:5;7119:6;7106:20;7097:29;;7135:30;7159:5;7135:30;:::i;:::-;7038:133;;;;:::o;7177:323::-;7233:6;7282:2;7270:9;7261:7;7257:23;7253:32;7250:119;;;7288:79;;:::i;:::-;7250:119;7408:1;7433:50;7475:7;7466:6;7455:9;7451:22;7433:50;:::i;:::-;7423:60;;7379:114;7177:323;;;;:::o;7506:102::-;7547:6;7598:2;7594:7;7589:2;7582:5;7578:14;7574:28;7564:38;;7506:102;;;:::o;7614:180::-;7662:77;7659:1;7652:88;7759:4;7756:1;7749:15;7783:4;7780:1;7773:15;7800:281;7883:27;7905:4;7883:27;:::i;:::-;7875:6;7871:40;8013:6;8001:10;7998:22;7977:18;7965:10;7962:34;7959:62;7956:88;;;8024:18;;:::i;:::-;7956:88;8064:10;8060:2;8053:22;7843:238;7800:281;;:::o;8087:129::-;8121:6;8148:20;;:::i;:::-;8138:30;;8177:33;8205:4;8197:6;8177:33;:::i;:::-;8087:129;;;:::o;8222:311::-;8299:4;8389:18;8381:6;8378:30;8375:56;;;8411:18;;:::i;:::-;8375:56;8461:4;8453:6;8449:17;8441:25;;8521:4;8515;8511:15;8503:23;;8222:311;;;:::o;8556:710::-;8652:5;8677:81;8693:64;8750:6;8693:64;:::i;:::-;8677:81;:::i;:::-;8668:90;;8778:5;8807:6;8800:5;8793:21;8841:4;8834:5;8830:16;8823:23;;8894:4;8886:6;8882:17;8874:6;8870:30;8923:3;8915:6;8912:15;8909:122;;;8942:79;;:::i;:::-;8909:122;9057:6;9040:220;9074:6;9069:3;9066:15;9040:220;;;9149:3;9178:37;9211:3;9199:10;9178:37;:::i;:::-;9173:3;9166:50;9245:4;9240:3;9236:14;9229:21;;9116:144;9100:4;9095:3;9091:14;9084:21;;9040:220;;;9044:21;8658:608;;8556:710;;;;;:::o;9289:370::-;9360:5;9409:3;9402:4;9394:6;9390:17;9386:27;9376:122;;9417:79;;:::i;:::-;9376:122;9534:6;9521:20;9559:94;9649:3;9641:6;9634:4;9626:6;9622:17;9559:94;:::i;:::-;9550:103;;9366:293;9289:370;;;;:::o;9665:539::-;9749:6;9798:2;9786:9;9777:7;9773:23;9769:32;9766:119;;;9804:79;;:::i;:::-;9766:119;9952:1;9941:9;9937:17;9924:31;9982:18;9974:6;9971:30;9968:117;;;10004:79;;:::i;:::-;9968:117;10109:78;10179:7;10170:6;10159:9;10155:22;10109:78;:::i;:::-;10099:88;;9895:302;9665:539;;;;:::o;10210:104::-;10255:7;10284:24;10302:5;10284:24;:::i;:::-;10273:35;;10210:104;;;:::o;10320:138::-;10401:32;10427:5;10401:32;:::i;:::-;10394:5;10391:43;10381:71;;10448:1;10445;10438:12;10381:71;10320:138;:::o;10464:155::-;10518:5;10556:6;10543:20;10534:29;;10572:41;10607:5;10572:41;:::i;:::-;10464:155;;;;:::o;10625:77::-;10662:7;10691:5;10680:16;;10625:77;;;:::o;10708:122::-;10781:24;10799:5;10781:24;:::i;:::-;10774:5;10771:35;10761:63;;10820:1;10817;10810:12;10761:63;10708:122;:::o;10836:139::-;10882:5;10920:6;10907:20;10898:29;;10936:33;10963:5;10936:33;:::i;:::-;10836:139;;;;:::o;10981:117::-;11090:1;11087;11080:12;11104:307;11165:4;11255:18;11247:6;11244:30;11241:56;;;11277:18;;:::i;:::-;11241:56;11315:29;11337:6;11315:29;:::i;:::-;11307:37;;11399:4;11393;11389:15;11381:23;;11104:307;;;:::o;11417:148::-;11515:6;11510:3;11505;11492:30;11556:1;11547:6;11542:3;11538:16;11531:27;11417:148;;;:::o;11571:423::-;11648:5;11673:65;11689:48;11730:6;11689:48;:::i;:::-;11673:65;:::i;:::-;11664:74;;11761:6;11754:5;11747:21;11799:4;11792:5;11788:16;11837:3;11828:6;11823:3;11819:16;11816:25;11813:112;;;11844:79;;:::i;:::-;11813:112;11934:54;11981:6;11976:3;11971;11934:54;:::i;:::-;11654:340;11571:423;;;;;:::o;12013:338::-;12068:5;12117:3;12110:4;12102:6;12098:17;12094:27;12084:122;;12125:79;;:::i;:::-;12084:122;12242:6;12229:20;12267:78;12341:3;12333:6;12326:4;12318:6;12314:17;12267:78;:::i;:::-;12258:87;;12074:277;12013:338;;;;:::o;12357:813::-;12451:6;12459;12467;12516:2;12504:9;12495:7;12491:23;12487:32;12484:119;;;12522:79;;:::i;:::-;12484:119;12642:1;12667:61;12720:7;12711:6;12700:9;12696:22;12667:61;:::i;:::-;12657:71;;12613:125;12777:2;12803:53;12848:7;12839:6;12828:9;12824:22;12803:53;:::i;:::-;12793:63;;12748:118;12933:2;12922:9;12918:18;12905:32;12964:18;12956:6;12953:30;12950:117;;;12986:79;;:::i;:::-;12950:117;13091:62;13145:7;13136:6;13125:9;13121:22;13091:62;:::i;:::-;13081:72;;12876:287;12357:813;;;;;:::o;13176:118::-;13263:24;13281:5;13263:24;:::i;:::-;13258:3;13251:37;13176:118;;:::o;13300:98::-;13351:6;13385:5;13379:12;13369:22;;13300:98;;;:::o;13404:168::-;13487:11;13521:6;13516:3;13509:19;13561:4;13556:3;13552:14;13537:29;;13404:168;;;;:::o;13578:139::-;13667:6;13662:3;13657;13651:23;13708:1;13699:6;13694:3;13690:16;13683:27;13578:139;;;:::o;13723:373::-;13809:3;13837:38;13869:5;13837:38;:::i;:::-;13891:70;13954:6;13949:3;13891:70;:::i;:::-;13884:77;;13970:65;14028:6;14023:3;14016:4;14009:5;14005:16;13970:65;:::i;:::-;14060:29;14082:6;14060:29;:::i;:::-;14055:3;14051:39;14044:46;;13813:283;13723:373;;;;:::o;14102:529::-;14269:4;14307:2;14296:9;14292:18;14284:26;;14320:71;14388:1;14377:9;14373:17;14364:6;14320:71;:::i;:::-;14401:72;14469:2;14458:9;14454:18;14445:6;14401:72;:::i;:::-;14520:9;14514:4;14510:20;14505:2;14494:9;14490:18;14483:48;14548:76;14619:4;14610:6;14548:76;:::i;:::-;14540:84;;14102:529;;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","signers(address)":"736c0d5b","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Replayed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signers_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"details\":\"The first address in the list will be the initial owner of the contract\",\"params\":{\"data_\":\"The compressed list of authorized signers\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"params\":{\"authorized_\":\"The authorized status of each signer\",\"signers_\":\"The list of signers to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer\",\"params\":{\"data_\":\"The data payload for the validation check\"},\"returns\":{\"_0\":\"True if the action has been validated based on the data payload\"}}},\"stateVariables\":{\"_used\":{\"details\":\"The set of used hashes (for replay protection)\"},\"signers\":{\"details\":\"The set of authorized signers\"}},\"title\":\"Signer Validator\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"Replayed(address,bytes32,bytes)\":[{\"notice\":\"Thrown when a previously used signature is replayed\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Construct a new SignerValidator\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the list of authorized signers\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of a signer\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"}},\"notice\":\"A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/validators/SignerValidator.sol\":\"SignerValidator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0a7e89ffa57127a2e75931be926a11094b6ee2955632a5dce0228f3d8e98eb02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca02052cca6c00d760253f74519e6d7460dfaaf4efb3c004bf9c811ad7791d40\",\"dweb:/ipfs/QmSfzCXbsALfzo6Joqte5oyJxi7h27VqhDmcMJhmNGX2GJ\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x7a7acc59723ed291f24d9a2ed019109c8be69f32701f35f8a61dc7fff6652379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bab15a03dfca0567d7472933ee4e776fc21f9dfb6c4dbc06934fa75eceeff5e\",\"dweb:/ipfs/QmPUuKsRwpZXz15DpsoJMMPN9DtZiRvMfwjqJScxkppNsP\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/SignerValidator.sol\":{\"keccak256\":\"0x19605be169cad5f7cc28b25f09b315d34d92b4827513627f18d60bcac951bd96\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d86d3f538a1ada4f7ba65b74cb95bc9b40feb8a7ec3c4903fa4306d872b816\",\"dweb:/ipfs/QmaTwJT7v6KTipx2VxQdWK8dENbeqLroEN5qdy958qv7kB\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/validators/Validator.sol":{"Validator":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specificFor example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}\",\"params\":{\"data_\":\"The compressed {ValidatePayload} to be validated\"},\"returns\":{\"_0\":\"True if the action has been validated based on the data payload\"}}},\"title\":\"Boost Validator\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initialize the contract and set the owner\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"validate(bytes)\":{\"notice\":\"Validate that a given user has completed an acction successfully\"}},\"notice\":\"Abstract contract for a generic Validator within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/validators/Validator.sol\":\"Validator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}}}}} \ No newline at end of file +{"id":"0ab469e910ae3035995ca09344e77bdd","_format":"hh-sol-build-info-1","solcVersion":"0.8.25","solcLongVersion":"0.8.25+commit.b61c2a91","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/interfaces/IERC1271.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1271.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-1271 standard signature validation method for\n * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n */\ninterface IERC1271 {\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param hash Hash of the data to be signed\n * @param signature Signature byte array associated with _data\n */\n function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue);\n}\n"},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/ERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"./IERC1155.sol\";\nimport {IERC1155MetadataURI} from \"./extensions/IERC1155MetadataURI.sol\";\nimport {ERC1155Utils} from \"./utils/ERC1155Utils.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {Arrays} from \"../../utils/Arrays.sol\";\nimport {IERC1155Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the basic standard multi-token.\n * See https://eips.ethereum.org/EIPS/eip-1155\n * Originally based on code by Enjin: https://github.com/enjin/erc-1155\n */\nabstract contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI, IERC1155Errors {\n using Arrays for uint256[];\n using Arrays for address[];\n\n mapping(uint256 id => mapping(address account => uint256)) private _balances;\n\n mapping(address account => mapping(address operator => bool)) private _operatorApprovals;\n\n // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json\n string private _uri;\n\n /**\n * @dev See {_setURI}.\n */\n constructor(string memory uri_) {\n _setURI(uri_);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC1155).interfaceId ||\n interfaceId == type(IERC1155MetadataURI).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC1155MetadataURI-uri}.\n *\n * This implementation returns the same URI for *all* token types. It relies\n * on the token type ID substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n *\n * Clients calling this function must replace the `\\{id\\}` substring with the\n * actual token type ID.\n */\n function uri(uint256 /* id */) public view virtual returns (string memory) {\n return _uri;\n }\n\n /**\n * @dev See {IERC1155-balanceOf}.\n */\n function balanceOf(address account, uint256 id) public view virtual returns (uint256) {\n return _balances[id][account];\n }\n\n /**\n * @dev See {IERC1155-balanceOfBatch}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] memory accounts,\n uint256[] memory ids\n ) public view virtual returns (uint256[] memory) {\n if (accounts.length != ids.length) {\n revert ERC1155InvalidArrayLength(ids.length, accounts.length);\n }\n\n uint256[] memory batchBalances = new uint256[](accounts.length);\n\n for (uint256 i = 0; i < accounts.length; ++i) {\n batchBalances[i] = balanceOf(accounts.unsafeMemoryAccess(i), ids.unsafeMemoryAccess(i));\n }\n\n return batchBalances;\n }\n\n /**\n * @dev See {IERC1155-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC1155-isApprovedForAll}.\n */\n function isApprovedForAll(address account, address operator) public view virtual returns (bool) {\n return _operatorApprovals[account][operator];\n }\n\n /**\n * @dev See {IERC1155-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeTransferFrom(from, to, id, value, data);\n }\n\n /**\n * @dev See {IERC1155-safeBatchTransferFrom}.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeBatchTransferFrom(from, to, ids, values, data);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n * (or `to`) is the zero address.\n *\n * Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n * or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n * - `ids` and `values` must have the same length.\n *\n * NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead.\n */\n function _update(address from, address to, uint256[] memory ids, uint256[] memory values) internal virtual {\n if (ids.length != values.length) {\n revert ERC1155InvalidArrayLength(ids.length, values.length);\n }\n\n address operator = _msgSender();\n\n for (uint256 i = 0; i < ids.length; ++i) {\n uint256 id = ids.unsafeMemoryAccess(i);\n uint256 value = values.unsafeMemoryAccess(i);\n\n if (from != address(0)) {\n uint256 fromBalance = _balances[id][from];\n if (fromBalance < value) {\n revert ERC1155InsufficientBalance(from, fromBalance, value, id);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance\n _balances[id][from] = fromBalance - value;\n }\n }\n\n if (to != address(0)) {\n _balances[id][to] += value;\n }\n }\n\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n emit TransferSingle(operator, from, to, id, value);\n } else {\n emit TransferBatch(operator, from, to, ids, values);\n }\n }\n\n /**\n * @dev Version of {_update} that performs the token acceptance check by calling\n * {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n * contains code (eg. is a smart contract at the moment of execution).\n *\n * IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n * update to the contract state after this function would break the check-effect-interaction pattern. Consider\n * overriding {_update} instead.\n */\n function _updateWithAcceptanceCheck(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal virtual {\n _update(from, to, ids, values);\n if (to != address(0)) {\n address operator = _msgSender();\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n ERC1155Utils.checkOnERC1155Received(operator, from, to, id, value, data);\n } else {\n ERC1155Utils.checkOnERC1155BatchReceived(operator, from, to, ids, values, data);\n }\n }\n }\n\n /**\n * @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n * - `ids` and `values` must have the same length.\n */\n function _safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev Sets a new URI for all token types, by relying on the token type ID\n * substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n *\n * By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n * URI or any of the values in the JSON file at said URI will be replaced by\n * clients with the token type ID.\n *\n * For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n * interpreted by clients as\n * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n * for token type ID 0x4cce0.\n *\n * See {uri}.\n *\n * Because these URIs cannot be meaningfully represented by the {URI} event,\n * this function emits no events.\n */\n function _setURI(string memory newuri) internal virtual {\n _uri = newuri;\n }\n\n /**\n * @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _mint(address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function _mintBatch(address to, uint256[] memory ids, uint256[] memory values, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens of type `id` from `from`\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n */\n function _burn(address from, uint256 id, uint256 value) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n * - `ids` and `values` must have the same length.\n */\n function _burnBatch(address from, uint256[] memory ids, uint256[] memory values) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC1155InvalidOperator(address(0));\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Creates an array in memory with only one value for each of the elements provided.\n */\n function _asSingletonArrays(\n uint256 element1,\n uint256 element2\n ) private pure returns (uint256[] memory array1, uint256[] memory array2) {\n /// @solidity memory-safe-assembly\n assembly {\n // Load the free memory pointer\n array1 := mload(0x40)\n // Set array length to 1\n mstore(array1, 1)\n // Store the single element at the next word after the length (where content starts)\n mstore(add(array1, 0x20), element1)\n\n // Repeat for next array locating it right after the first array\n array2 := add(array1, 0x40)\n mstore(array2, 1)\n mstore(add(array2, 0x20), element2)\n\n // Update the free memory pointer by pointing after the second array\n mstore(0x40, add(array2, 0x40))\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/extensions/IERC1155MetadataURI.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"../IERC1155.sol\";\n\n/**\n * @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[ERC].\n */\ninterface IERC1155MetadataURI is IERC1155 {\n /**\n * @dev Returns the URI for token type `id`.\n *\n * If the `\\{id\\}` substring is present in the URI, it must be replaced by\n * clients with the actual token type ID.\n */\n function uri(uint256 id) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (token/ERC1155/IERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC-1155 compliant contract, as defined in the\n * https://eips.ethereum.org/EIPS/eip-1155[ERC].\n */\ninterface IERC1155 is IERC165 {\n /**\n * @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\n */\n event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);\n\n /**\n * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n * transfers.\n */\n event TransferBatch(\n address indexed operator,\n address indexed from,\n address indexed to,\n uint256[] ids,\n uint256[] values\n );\n\n /**\n * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n * `approved`.\n */\n event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n\n /**\n * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n *\n * If an {URI} event was emitted for `id`, the standard\n * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n * returned by {IERC1155MetadataURI-uri}.\n */\n event URI(string value, uint256 indexed id);\n\n /**\n * @dev Returns the value of tokens of token type `id` owned by `account`.\n */\n function balanceOf(address account, uint256 id) external view returns (uint256);\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] calldata accounts,\n uint256[] calldata ids\n ) external view returns (uint256[] memory);\n\n /**\n * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n *\n * See {setApprovalForAll}.\n */\n function isApprovedForAll(address account, address operator) external view returns (bool);\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes calldata data) external;\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external;\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/IERC1155Receiver.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface that must be implemented by smart contracts in order to receive\n * ERC-1155 token transfers.\n */\ninterface IERC1155Receiver is IERC165 {\n /**\n * @dev Handles the receipt of a single ERC-1155 token type. This function is\n * called at the end of a `safeTransferFrom` after the balance has been updated.\n *\n * NOTE: To accept the transfer, this must return\n * `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n * (i.e. 0xf23a6e61, or its own function selector).\n *\n * @param operator The address which initiated the transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param id The ID of the token being transferred\n * @param value The amount of tokens being transferred\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n */\n function onERC1155Received(\n address operator,\n address from,\n uint256 id,\n uint256 value,\n bytes calldata data\n ) external returns (bytes4);\n\n /**\n * @dev Handles the receipt of a multiple ERC-1155 token types. This function\n * is called at the end of a `safeBatchTransferFrom` after the balances have\n * been updated.\n *\n * NOTE: To accept the transfer(s), this must return\n * `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n * (i.e. 0xbc197c81, or its own function selector).\n *\n * @param operator The address which initiated the batch transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param ids An array containing ids of each token being transferred (order and length must match values array)\n * @param values An array containing amounts of each token being transferred (order and length must match ids array)\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n */\n function onERC1155BatchReceived(\n address operator,\n address from,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport {IERC1155Receiver} from \"../IERC1155Receiver.sol\";\nimport {IERC1155Errors} from \"../../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Library that provide common ERC-1155 utility functions.\n *\n * See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155].\n */\nlibrary ERC1155Utils {\n /**\n * @dev Performs an acceptance check for the provided `operator` by calling {IERC1155-onERC1155Received}\n * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n *\n * The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n * Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n * the transfer.\n */\n function checkOnERC1155Received(\n address operator,\n address from,\n address to,\n uint256 id,\n uint256 value,\n bytes memory data\n ) internal {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155Received(operator, from, id, value, data) returns (bytes4 response) {\n if (response != IERC1155Receiver.onERC1155Received.selector) {\n // Tokens rejected\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-IERC1155Receiver implementer\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n\n /**\n * @dev Performs a batch acceptance check for the provided `operator` by calling {IERC1155-onERC1155BatchReceived}\n * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n *\n * The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n * Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n * the transfer.\n */\n function checkOnERC1155BatchReceived(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, values, data) returns (\n bytes4 response\n ) {\n if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {\n // Tokens rejected\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-IERC1155Receiver implementer\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Arrays.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Arrays.sol)\n// This file was procedurally generated from scripts/generate/templates/Arrays.js.\n\npragma solidity ^0.8.20;\n\nimport {SlotDerivation} from \"./SlotDerivation.sol\";\nimport {StorageSlot} from \"./StorageSlot.sol\";\nimport {Math} from \"./math/Math.sol\";\n\n/**\n * @dev Collection of functions related to array types.\n */\nlibrary Arrays {\n using SlotDerivation for bytes32;\n using StorageSlot for bytes32;\n\n /**\n * @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n bytes32[] memory array,\n function(bytes32, bytes32) pure returns (bool) comp\n ) internal pure returns (bytes32[] memory) {\n _quickSort(_begin(array), _end(array), comp);\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of bytes32 in increasing order.\n */\n function sort(bytes32[] memory array) internal pure returns (bytes32[] memory) {\n sort(array, _defaultComp);\n return array;\n }\n\n /**\n * @dev Sort an array of address (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n address[] memory array,\n function(address, address) pure returns (bool) comp\n ) internal pure returns (address[] memory) {\n sort(_castToBytes32Array(array), _castToBytes32Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of address in increasing order.\n */\n function sort(address[] memory array) internal pure returns (address[] memory) {\n sort(_castToBytes32Array(array), _defaultComp);\n return array;\n }\n\n /**\n * @dev Sort an array of uint256 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n uint256[] memory array,\n function(uint256, uint256) pure returns (bool) comp\n ) internal pure returns (uint256[] memory) {\n sort(_castToBytes32Array(array), _castToBytes32Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of uint256 in increasing order.\n */\n function sort(uint256[] memory array) internal pure returns (uint256[] memory) {\n sort(_castToBytes32Array(array), _defaultComp);\n return array;\n }\n\n /**\n * @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n * at end (exclusive). Sorting follows the `comp` comparator.\n *\n * Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n *\n * IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n * be used only if the limits are within a memory array.\n */\n function _quickSort(uint256 begin, uint256 end, function(bytes32, bytes32) pure returns (bool) comp) private pure {\n unchecked {\n if (end - begin < 0x40) return;\n\n // Use first element as pivot\n bytes32 pivot = _mload(begin);\n // Position where the pivot should be at the end of the loop\n uint256 pos = begin;\n\n for (uint256 it = begin + 0x20; it < end; it += 0x20) {\n if (comp(_mload(it), pivot)) {\n // If the value stored at the iterator's position comes before the pivot, we increment the\n // position of the pivot and move the value there.\n pos += 0x20;\n _swap(pos, it);\n }\n }\n\n _swap(begin, pos); // Swap pivot into place\n _quickSort(begin, pos, comp); // Sort the left side of the pivot\n _quickSort(pos + 0x20, end, comp); // Sort the right side of the pivot\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first element of `array`.\n */\n function _begin(bytes32[] memory array) private pure returns (uint256 ptr) {\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(array, 0x20)\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n * that comes just after the last element of the array.\n */\n function _end(bytes32[] memory array) private pure returns (uint256 ptr) {\n unchecked {\n return _begin(array) + array.length * 0x20;\n }\n }\n\n /**\n * @dev Load memory word (as a bytes32) at location `ptr`.\n */\n function _mload(uint256 ptr) private pure returns (bytes32 value) {\n assembly {\n value := mload(ptr)\n }\n }\n\n /**\n * @dev Swaps the elements memory location `ptr1` and `ptr2`.\n */\n function _swap(uint256 ptr1, uint256 ptr2) private pure {\n assembly {\n let value1 := mload(ptr1)\n let value2 := mload(ptr2)\n mstore(ptr1, value2)\n mstore(ptr2, value1)\n }\n }\n\n /// @dev Comparator for sorting arrays in increasing order.\n function _defaultComp(bytes32 a, bytes32 b) private pure returns (bool) {\n return a < b;\n }\n\n /// @dev Helper: low level cast address memory array to uint256 memory array\n function _castToBytes32Array(address[] memory input) private pure returns (bytes32[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast uint256 memory array to uint256 memory array\n function _castToBytes32Array(uint256[] memory input) private pure returns (bytes32[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast address comp function to bytes32 comp function\n function _castToBytes32Comp(\n function(address, address) pure returns (bool) input\n ) private pure returns (function(bytes32, bytes32) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast uint256 comp function to bytes32 comp function\n function _castToBytes32Comp(\n function(uint256, uint256) pure returns (bool) input\n ) private pure returns (function(bytes32, bytes32) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /**\n * @dev Searches a sorted `array` and returns the first index that contains\n * a value greater or equal to `element`. If no such index exists (i.e. all\n * values in the array are strictly less than `element`), the array length is\n * returned. Time complexity O(log n).\n *\n * NOTE: The `array` is expected to be sorted in ascending order, and to\n * contain no repeated elements.\n *\n * IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n * support for repeated elements in the array. The {lowerBound} function should\n * be used instead.\n */\n function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n low = mid + 1;\n }\n }\n\n // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound.\n if (low > 0 && unsafeAccess(array, low - 1).value == element) {\n return low - 1;\n } else {\n return low;\n }\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value greater or equal than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound].\n */\n function lowerBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value strictly greater than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound].\n */\n function upperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {lowerBound}, but with an array in memory.\n */\n function lowerBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {upperBound}, but with an array in memory.\n */\n function upperBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getAddressSlot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getBytes32Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getUint256Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(address[] memory arr, uint256 pos) internal pure returns (address res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(bytes32[] memory arr, uint256 pos) internal pure returns (bytes32 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(uint256[] memory arr, uint256 pos) internal pure returns (uint256 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(address[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(bytes32[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(uint256[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"},"@openzeppelin/contracts/utils/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 ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a > b, a, b);\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a < b, a, b);\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2²⁵⁶ and mod 2²⁵⁶ - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2²⁵⁶ + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2²⁵⁶. Also prevents denominator == 0.\n if (denominator <= prod1) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2²⁵⁶ / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @dev Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, expect 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Ferma's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked has failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n /// @solidity memory-safe-assembly\n assembly {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n uint256 exp;\n unchecked {\n exp = 128 * SafeCast.toUint(value > (1 << 128) - 1);\n value >>= exp;\n result += exp;\n\n exp = 64 * SafeCast.toUint(value > (1 << 64) - 1);\n value >>= exp;\n result += exp;\n\n exp = 32 * SafeCast.toUint(value > (1 << 32) - 1);\n value >>= exp;\n result += exp;\n\n exp = 16 * SafeCast.toUint(value > (1 << 16) - 1);\n value >>= exp;\n result += exp;\n\n exp = 8 * SafeCast.toUint(value > (1 << 8) - 1);\n value >>= exp;\n result += exp;\n\n exp = 4 * SafeCast.toUint(value > (1 << 4) - 1);\n value >>= exp;\n result += exp;\n\n exp = 2 * SafeCast.toUint(value > (1 << 2) - 1);\n value >>= exp;\n result += exp;\n\n result += SafeCast.toUint(value > 1);\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n uint256 isGt;\n unchecked {\n isGt = SafeCast.toUint(value > (1 << 128) - 1);\n value >>= isGt * 128;\n result += isGt * 16;\n\n isGt = SafeCast.toUint(value > (1 << 64) - 1);\n value >>= isGt * 64;\n result += isGt * 8;\n\n isGt = SafeCast.toUint(value > (1 << 32) - 1);\n value >>= isGt * 32;\n result += isGt * 4;\n\n isGt = SafeCast.toUint(value > (1 << 16) - 1);\n value >>= isGt * 16;\n result += isGt * 2;\n\n result += SafeCast.toUint(value > (1 << 8) - 1);\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\n /**\n * @dev Returns the downcasted uint248 from uint256, reverting on\n * overflow (when the input is greater than largest uint248).\n *\n * Counterpart to Solidity's `uint248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\n return uint248(value);\n }\n\n /**\n * @dev Returns the downcasted uint240 from uint256, reverting on\n * overflow (when the input is greater than largest uint240).\n *\n * Counterpart to Solidity's `uint240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\n return uint240(value);\n }\n\n /**\n * @dev Returns the downcasted uint232 from uint256, reverting on\n * overflow (when the input is greater than largest uint232).\n *\n * Counterpart to Solidity's `uint232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\n return uint232(value);\n }\n\n /**\n * @dev Returns the downcasted uint224 from uint256, reverting on\n * overflow (when the input is greater than largest uint224).\n *\n * Counterpart to Solidity's `uint224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\n return uint224(value);\n }\n\n /**\n * @dev Returns the downcasted uint216 from uint256, reverting on\n * overflow (when the input is greater than largest uint216).\n *\n * Counterpart to Solidity's `uint216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\n return uint216(value);\n }\n\n /**\n * @dev Returns the downcasted uint208 from uint256, reverting on\n * overflow (when the input is greater than largest uint208).\n *\n * Counterpart to Solidity's `uint208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\n return uint208(value);\n }\n\n /**\n * @dev Returns the downcasted uint200 from uint256, reverting on\n * overflow (when the input is greater than largest uint200).\n *\n * Counterpart to Solidity's `uint200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\n return uint200(value);\n }\n\n /**\n * @dev Returns the downcasted uint192 from uint256, reverting on\n * overflow (when the input is greater than largest uint192).\n *\n * Counterpart to Solidity's `uint192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\n return uint192(value);\n }\n\n /**\n * @dev Returns the downcasted uint184 from uint256, reverting on\n * overflow (when the input is greater than largest uint184).\n *\n * Counterpart to Solidity's `uint184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\n return uint184(value);\n }\n\n /**\n * @dev Returns the downcasted uint176 from uint256, reverting on\n * overflow (when the input is greater than largest uint176).\n *\n * Counterpart to Solidity's `uint176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\n return uint176(value);\n }\n\n /**\n * @dev Returns the downcasted uint168 from uint256, reverting on\n * overflow (when the input is greater than largest uint168).\n *\n * Counterpart to Solidity's `uint168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\n return uint168(value);\n }\n\n /**\n * @dev Returns the downcasted uint160 from uint256, reverting on\n * overflow (when the input is greater than largest uint160).\n *\n * Counterpart to Solidity's `uint160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\n return uint160(value);\n }\n\n /**\n * @dev Returns the downcasted uint152 from uint256, reverting on\n * overflow (when the input is greater than largest uint152).\n *\n * Counterpart to Solidity's `uint152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\n return uint152(value);\n }\n\n /**\n * @dev Returns the downcasted uint144 from uint256, reverting on\n * overflow (when the input is greater than largest uint144).\n *\n * Counterpart to Solidity's `uint144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\n return uint144(value);\n }\n\n /**\n * @dev Returns the downcasted uint136 from uint256, reverting on\n * overflow (when the input is greater than largest uint136).\n *\n * Counterpart to Solidity's `uint136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\n return uint136(value);\n }\n\n /**\n * @dev Returns the downcasted uint128 from uint256, reverting on\n * overflow (when the input is greater than largest uint128).\n *\n * Counterpart to Solidity's `uint128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\n return uint128(value);\n }\n\n /**\n * @dev Returns the downcasted uint120 from uint256, reverting on\n * overflow (when the input is greater than largest uint120).\n *\n * Counterpart to Solidity's `uint120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\n return uint120(value);\n }\n\n /**\n * @dev Returns the downcasted uint112 from uint256, reverting on\n * overflow (when the input is greater than largest uint112).\n *\n * Counterpart to Solidity's `uint112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\n return uint112(value);\n }\n\n /**\n * @dev Returns the downcasted uint104 from uint256, reverting on\n * overflow (when the input is greater than largest uint104).\n *\n * Counterpart to Solidity's `uint104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\n return uint104(value);\n }\n\n /**\n * @dev Returns the downcasted uint96 from uint256, reverting on\n * overflow (when the input is greater than largest uint96).\n *\n * Counterpart to Solidity's `uint96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\n return uint96(value);\n }\n\n /**\n * @dev Returns the downcasted uint88 from uint256, reverting on\n * overflow (when the input is greater than largest uint88).\n *\n * Counterpart to Solidity's `uint88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\n return uint88(value);\n }\n\n /**\n * @dev Returns the downcasted uint80 from uint256, reverting on\n * overflow (when the input is greater than largest uint80).\n *\n * Counterpart to Solidity's `uint80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\n return uint80(value);\n }\n\n /**\n * @dev Returns the downcasted uint72 from uint256, reverting on\n * overflow (when the input is greater than largest uint72).\n *\n * Counterpart to Solidity's `uint72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\n return uint72(value);\n }\n\n /**\n * @dev Returns the downcasted uint64 from uint256, reverting on\n * overflow (when the input is greater than largest uint64).\n *\n * Counterpart to Solidity's `uint64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\n return uint64(value);\n }\n\n /**\n * @dev Returns the downcasted uint56 from uint256, reverting on\n * overflow (when the input is greater than largest uint56).\n *\n * Counterpart to Solidity's `uint56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\n return uint56(value);\n }\n\n /**\n * @dev Returns the downcasted uint48 from uint256, reverting on\n * overflow (when the input is greater than largest uint48).\n *\n * Counterpart to Solidity's `uint48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\n return uint48(value);\n }\n\n /**\n * @dev Returns the downcasted uint40 from uint256, reverting on\n * overflow (when the input is greater than largest uint40).\n *\n * Counterpart to Solidity's `uint40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\n return uint40(value);\n }\n\n /**\n * @dev Returns the downcasted uint32 from uint256, reverting on\n * overflow (when the input is greater than largest uint32).\n *\n * Counterpart to Solidity's `uint32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\n return uint32(value);\n }\n\n /**\n * @dev Returns the downcasted uint24 from uint256, reverting on\n * overflow (when the input is greater than largest uint24).\n *\n * Counterpart to Solidity's `uint24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\n return uint24(value);\n }\n\n /**\n * @dev Returns the downcasted uint16 from uint256, reverting on\n * overflow (when the input is greater than largest uint16).\n *\n * Counterpart to Solidity's `uint16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\n return uint16(value);\n }\n\n /**\n * @dev Returns the downcasted uint8 from uint256, reverting on\n * overflow (when the input is greater than largest uint8).\n *\n * Counterpart to Solidity's `uint8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\n return uint8(value);\n }\n\n /**\n * @dev Converts a signed int256 into an unsigned uint256.\n *\n * Requirements:\n *\n * - input must be greater than or equal to 0.\n */\n function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\n return uint256(value);\n }\n\n /**\n * @dev Returns the downcasted int248 from int256, reverting on\n * overflow (when the input is less than smallest int248 or\n * greater than largest int248).\n *\n * Counterpart to Solidity's `int248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int240 from int256, reverting on\n * overflow (when the input is less than smallest int240 or\n * greater than largest int240).\n *\n * Counterpart to Solidity's `int240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int232 from int256, reverting on\n * overflow (when the input is less than smallest int232 or\n * greater than largest int232).\n *\n * Counterpart to Solidity's `int232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int224 from int256, reverting on\n * overflow (when the input is less than smallest int224 or\n * greater than largest int224).\n *\n * Counterpart to Solidity's `int224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int216 from int256, reverting on\n * overflow (when the input is less than smallest int216 or\n * greater than largest int216).\n *\n * Counterpart to Solidity's `int216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int208 from int256, reverting on\n * overflow (when the input is less than smallest int208 or\n * greater than largest int208).\n *\n * Counterpart to Solidity's `int208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int200 from int256, reverting on\n * overflow (when the input is less than smallest int200 or\n * greater than largest int200).\n *\n * Counterpart to Solidity's `int200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int192 from int256, reverting on\n * overflow (when the input is less than smallest int192 or\n * greater than largest int192).\n *\n * Counterpart to Solidity's `int192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int184 from int256, reverting on\n * overflow (when the input is less than smallest int184 or\n * greater than largest int184).\n *\n * Counterpart to Solidity's `int184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int176 from int256, reverting on\n * overflow (when the input is less than smallest int176 or\n * greater than largest int176).\n *\n * Counterpart to Solidity's `int176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int168 from int256, reverting on\n * overflow (when the input is less than smallest int168 or\n * greater than largest int168).\n *\n * Counterpart to Solidity's `int168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int160 from int256, reverting on\n * overflow (when the input is less than smallest int160 or\n * greater than largest int160).\n *\n * Counterpart to Solidity's `int160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int152 from int256, reverting on\n * overflow (when the input is less than smallest int152 or\n * greater than largest int152).\n *\n * Counterpart to Solidity's `int152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int144 from int256, reverting on\n * overflow (when the input is less than smallest int144 or\n * greater than largest int144).\n *\n * Counterpart to Solidity's `int144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int136 from int256, reverting on\n * overflow (when the input is less than smallest int136 or\n * greater than largest int136).\n *\n * Counterpart to Solidity's `int136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int128 from int256, reverting on\n * overflow (when the input is less than smallest int128 or\n * greater than largest int128).\n *\n * Counterpart to Solidity's `int128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int120 from int256, reverting on\n * overflow (when the input is less than smallest int120 or\n * greater than largest int120).\n *\n * Counterpart to Solidity's `int120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int112 from int256, reverting on\n * overflow (when the input is less than smallest int112 or\n * greater than largest int112).\n *\n * Counterpart to Solidity's `int112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int104 from int256, reverting on\n * overflow (when the input is less than smallest int104 or\n * greater than largest int104).\n *\n * Counterpart to Solidity's `int104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int96 from int256, reverting on\n * overflow (when the input is less than smallest int96 or\n * greater than largest int96).\n *\n * Counterpart to Solidity's `int96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int88 from int256, reverting on\n * overflow (when the input is less than smallest int88 or\n * greater than largest int88).\n *\n * Counterpart to Solidity's `int88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int80 from int256, reverting on\n * overflow (when the input is less than smallest int80 or\n * greater than largest int80).\n *\n * Counterpart to Solidity's `int80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int72 from int256, reverting on\n * overflow (when the input is less than smallest int72 or\n * greater than largest int72).\n *\n * Counterpart to Solidity's `int72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int64 from int256, reverting on\n * overflow (when the input is less than smallest int64 or\n * greater than largest int64).\n *\n * Counterpart to Solidity's `int64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int56 from int256, reverting on\n * overflow (when the input is less than smallest int56 or\n * greater than largest int56).\n *\n * Counterpart to Solidity's `int56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int48 from int256, reverting on\n * overflow (when the input is less than smallest int48 or\n * greater than largest int48).\n *\n * Counterpart to Solidity's `int48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int40 from int256, reverting on\n * overflow (when the input is less than smallest int40 or\n * greater than largest int40).\n *\n * Counterpart to Solidity's `int40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int32 from int256, reverting on\n * overflow (when the input is less than smallest int32 or\n * greater than largest int32).\n *\n * Counterpart to Solidity's `int32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int24 from int256, reverting on\n * overflow (when the input is less than smallest int24 or\n * greater than largest int24).\n *\n * Counterpart to Solidity's `int24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int16 from int256, reverting on\n * overflow (when the input is less than smallest int16 or\n * greater than largest int16).\n *\n * Counterpart to Solidity's `int16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int8 from int256, reverting on\n * overflow (when the input is less than smallest int8 or\n * greater than largest int8).\n *\n * Counterpart to Solidity's `int8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\n }\n\n /**\n * @dev Converts an unsigned uint256 into a signed int256.\n *\n * Requirements:\n *\n * - input must be less than or equal to maxInt256.\n */\n function toInt256(uint256 value) internal pure returns (int256) {\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n\n /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n /// @solidity memory-safe-assembly\n assembly {\n u := iszero(iszero(b))\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Panic.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"content":"// SPDX-License-Identifier: MIT\n// This file was procedurally generated from scripts/generate/templates/SlotDerivation.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n * corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n * the solidity language / compiler.\n *\n * See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n *\n * Example usage:\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using StorageSlot for bytes32;\n * using SlotDerivation for bytes32;\n *\n * // Declare a namespace\n * string private constant _NAMESPACE = \"\" // eg. OpenZeppelin.Slot\n *\n * function setValueInNamespace(uint256 key, address newValue) internal {\n * _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n * }\n *\n * function getValueInNamespace(uint256 key) internal view returns (address) {\n * return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {StorageSlot}.\n *\n * NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n * upgrade safety will ignore the slots accessed through this library.\n */\nlibrary SlotDerivation {\n /**\n * @dev Derive an ERC-7201 slot from a string (namespace).\n */\n function erc7201Slot(string memory namespace) internal pure returns (bytes32 slot) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, sub(keccak256(add(namespace, 0x20), mload(namespace)), 1))\n slot := and(keccak256(0x00, 0x20), not(0xff))\n }\n }\n\n /**\n * @dev Add an offset to a slot to get the n-th element of a structure or an array.\n */\n function offset(bytes32 slot, uint256 pos) internal pure returns (bytes32 result) {\n unchecked {\n return bytes32(uint256(slot) + pos);\n }\n }\n\n /**\n * @dev Derive the location of the first element in an array from the slot where the length is stored.\n */\n function deriveArray(bytes32 slot) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, slot)\n result := keccak256(0x00, 0x20)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, address key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bool key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes32 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, uint256 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, int256 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, string memory key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes memory key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.24;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * Since version 5.1, this library also support writing and reading value types to and from transient storage.\n *\n * * Example using transient storage:\n * ```solidity\n * contract Lock {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;\n *\n * modifier locked() {\n * require(!_LOCK_SLOT.asBoolean().tload());\n *\n * _LOCK_SLOT.asBoolean().tstore(true);\n * _;\n * _LOCK_SLOT.asBoolean().tstore(false);\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct Int256Slot {\n int256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev UDVT that represent a slot holding a address.\n */\n type AddressSlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a AddressSlotType.\n */\n function asAddress(bytes32 slot) internal pure returns (AddressSlotType) {\n return AddressSlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a bool.\n */\n type BooleanSlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a BooleanSlotType.\n */\n function asBoolean(bytes32 slot) internal pure returns (BooleanSlotType) {\n return BooleanSlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a bytes32.\n */\n type Bytes32SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Bytes32SlotType.\n */\n function asBytes32(bytes32 slot) internal pure returns (Bytes32SlotType) {\n return Bytes32SlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a uint256.\n */\n type Uint256SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Uint256SlotType.\n */\n function asUint256(bytes32 slot) internal pure returns (Uint256SlotType) {\n return Uint256SlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a int256.\n */\n type Int256SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Int256SlotType.\n */\n function asInt256(bytes32 slot) internal pure returns (Int256SlotType) {\n return Int256SlotType.wrap(slot);\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(AddressSlotType slot) internal view returns (address value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(AddressSlotType slot, address value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(BooleanSlotType slot) internal view returns (bool value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(BooleanSlotType slot, bool value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Bytes32SlotType slot) internal view returns (bytes32 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Bytes32SlotType slot, bytes32 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Uint256SlotType slot) internal view returns (uint256 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Uint256SlotType slot, uint256 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Int256SlotType slot) internal view returns (int256 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Int256SlotType slot, int256 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n}\n"},"@solady/accounts/Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\n/// @author Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\n///\n/// @dev Note:\n/// - Handles all ERC721 and ERC1155 token safety callbacks.\n/// - Collapses function table gas overhead and code size.\n/// - Utilizes fallback so unknown calldata will pass on.\nabstract contract Receiver {\n /// @dev For receiving ETH.\n receive() external payable virtual {}\n\n /// @dev Fallback function with the `receiverFallback` modifier.\n fallback() external payable virtual receiverFallback {}\n\n /// @dev Modifier for the fallback function to handle token callbacks.\n modifier receiverFallback() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n let s := shr(224, calldataload(0))\n // 0x150b7a02: `onERC721Received(address,address,uint256,bytes)`.\n // 0xf23a6e61: `onERC1155Received(address,address,uint256,uint256,bytes)`.\n // 0xbc197c81: `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)`.\n if or(eq(s, 0x150b7a02), or(eq(s, 0xf23a6e61), eq(s, 0xbc197c81))) {\n mstore(0x20, s) // Store `msg.sig`.\n return(0x3c, 0x20) // Return `msg.sig`.\n }\n }\n _;\n }\n}\n"},"@solady/auth/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple single owner authorization mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n///\n/// @dev Note:\n/// This implementation does NOT auto-initialize the owner to `msg.sender`.\n/// You MUST call the `_initializeOwner` in the constructor / initializer.\n///\n/// While the ownable portion follows\n/// [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,\n/// the nomenclature for the 2-step ownership handover may be unique to this codebase.\nabstract contract Ownable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The caller is not authorized to call the function.\n error Unauthorized();\n\n /// @dev The `newOwner` cannot be the zero address.\n error NewOwnerIsZeroAddress();\n\n /// @dev The `pendingOwner` does not have a valid handover request.\n error NoHandoverRequest();\n\n /// @dev Cannot double-initialize.\n error AlreadyInitialized();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ownership is transferred from `oldOwner` to `newOwner`.\n /// This event is intentionally kept the same as OpenZeppelin's Ownable to be\n /// compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173),\n /// despite it not being as lightweight as a single argument event.\n event OwnershipTransferred(address indexed oldOwner, address indexed newOwner);\n\n /// @dev An ownership handover to `pendingOwner` has been requested.\n event OwnershipHandoverRequested(address indexed pendingOwner);\n\n /// @dev The ownership handover to `pendingOwner` has been canceled.\n event OwnershipHandoverCanceled(address indexed pendingOwner);\n\n /// @dev `keccak256(bytes(\"OwnershipTransferred(address,address)\"))`.\n uint256 private constant _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE =\n 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0;\n\n /// @dev `keccak256(bytes(\"OwnershipHandoverRequested(address)\"))`.\n uint256 private constant _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE =\n 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d;\n\n /// @dev `keccak256(bytes(\"OwnershipHandoverCanceled(address)\"))`.\n uint256 private constant _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE =\n 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The owner slot is given by:\n /// `bytes32(~uint256(uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))))`.\n /// It is intentionally chosen to be a high value\n /// to avoid collision with lower slots.\n /// The choice of manual storage layout is to enable compatibility\n /// with both regular and upgradeable contracts.\n bytes32 internal constant _OWNER_SLOT =\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927;\n\n /// The ownership handover slot of `newOwner` is given by:\n /// ```\n /// mstore(0x00, or(shl(96, user), _HANDOVER_SLOT_SEED))\n /// let handoverSlot := keccak256(0x00, 0x20)\n /// ```\n /// It stores the expiry timestamp of the two-step ownership handover.\n uint256 private constant _HANDOVER_SLOT_SEED = 0x389a75e1;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Override to return true to make `_initializeOwner` prevent double-initialization.\n function _guardInitializeOwner() internal pure virtual returns (bool guard) {}\n\n /// @dev Initializes the owner directly without authorization guard.\n /// This function must be called upon initialization,\n /// regardless of whether the contract is upgradeable or not.\n /// This is to enable generalization to both regular and upgradeable contracts,\n /// and to save gas in case the initial owner is not the caller.\n /// For performance reasons, this function will not check if there\n /// is an existing owner.\n function _initializeOwner(address newOwner) internal virtual {\n if (_guardInitializeOwner()) {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n if sload(ownerSlot) {\n mstore(0x00, 0x0dc149f0) // `AlreadyInitialized()`.\n revert(0x1c, 0x04)\n }\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Store the new value.\n sstore(ownerSlot, or(newOwner, shl(255, iszero(newOwner))))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, 0, newOwner)\n }\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Store the new value.\n sstore(_OWNER_SLOT, newOwner)\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, 0, newOwner)\n }\n }\n }\n\n /// @dev Sets the owner directly without authorization guard.\n function _setOwner(address newOwner) internal virtual {\n if (_guardInitializeOwner()) {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, sload(ownerSlot), newOwner)\n // Store the new value.\n sstore(ownerSlot, or(newOwner, shl(255, iszero(newOwner))))\n }\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, sload(ownerSlot), newOwner)\n // Store the new value.\n sstore(ownerSlot, newOwner)\n }\n }\n }\n\n /// @dev Throws if the sender is not the owner.\n function _checkOwner() internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // If the caller is not the stored owner, revert.\n if iszero(eq(caller(), sload(_OWNER_SLOT))) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Returns how long a two-step ownership handover is valid for in seconds.\n /// Override to return a different value if needed.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _ownershipHandoverValidFor() internal view virtual returns (uint64) {\n return 48 * 3600;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC UPDATE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Allows the owner to transfer the ownership to `newOwner`.\n function transferOwnership(address newOwner) public payable virtual onlyOwner {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(shl(96, newOwner)) {\n mstore(0x00, 0x7448fbae) // `NewOwnerIsZeroAddress()`.\n revert(0x1c, 0x04)\n }\n }\n _setOwner(newOwner);\n }\n\n /// @dev Allows the owner to renounce their ownership.\n function renounceOwnership() public payable virtual onlyOwner {\n _setOwner(address(0));\n }\n\n /// @dev Request a two-step ownership handover to the caller.\n /// The request will automatically expire in 48 hours (172800 seconds) by default.\n function requestOwnershipHandover() public payable virtual {\n unchecked {\n uint256 expires = block.timestamp + _ownershipHandoverValidFor();\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to `expires`.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x20), expires)\n // Emit the {OwnershipHandoverRequested} event.\n log2(0, 0, _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE, caller())\n }\n }\n }\n\n /// @dev Cancels the two-step ownership handover to the caller, if any.\n function cancelOwnershipHandover() public payable virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to 0.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x20), 0)\n // Emit the {OwnershipHandoverCanceled} event.\n log2(0, 0, _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE, caller())\n }\n }\n\n /// @dev Allows the owner to complete the two-step ownership handover to `pendingOwner`.\n /// Reverts if there is no existing ownership handover requested by `pendingOwner`.\n function completeOwnershipHandover(address pendingOwner) public payable virtual onlyOwner {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to 0.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, pendingOwner)\n let handoverSlot := keccak256(0x0c, 0x20)\n // If the handover does not exist, or has expired.\n if gt(timestamp(), sload(handoverSlot)) {\n mstore(0x00, 0x6f5e8818) // `NoHandoverRequest()`.\n revert(0x1c, 0x04)\n }\n // Set the handover slot to 0.\n sstore(handoverSlot, 0)\n }\n _setOwner(pendingOwner);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC READ FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the owner of the contract.\n function owner() public view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := sload(_OWNER_SLOT)\n }\n }\n\n /// @dev Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\n function ownershipHandoverExpiresAt(address pendingOwner)\n public\n view\n virtual\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the handover slot.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, pendingOwner)\n // Load the handover slot.\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MODIFIERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Marks a function as only callable by the owner.\n modifier onlyOwner() virtual {\n _checkOwner();\n _;\n }\n}\n"},"@solady/auth/OwnableRoles.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\nimport {Ownable} from \"./Ownable.sol\";\n\n/// @notice Simple single owner and multiroles authorization mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n/// @dev While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173)\n/// for compatibility, the nomenclature for the 2-step ownership handover and roles\n/// may be unique to this codebase.\nabstract contract OwnableRoles is Ownable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The `user`'s roles is updated to `roles`.\n /// Each bit of `roles` represents whether the role is set.\n event RolesUpdated(address indexed user, uint256 indexed roles);\n\n /// @dev `keccak256(bytes(\"RolesUpdated(address,uint256)\"))`.\n uint256 private constant _ROLES_UPDATED_EVENT_SIGNATURE =\n 0x715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The role slot of `user` is given by:\n /// ```\n /// mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED))\n /// let roleSlot := keccak256(0x00, 0x20)\n /// ```\n /// This automatically ignores the upper bits of the `user` in case\n /// they are not clean, as well as keep the `keccak256` under 32-bytes.\n ///\n /// Note: This is equivalent to `uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))`.\n uint256 private constant _ROLE_SLOT_SEED = 0x8b78c6d8;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Overwrite the roles directly without authorization guard.\n function _setRoles(address user, uint256 roles) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n // Store the new value.\n sstore(keccak256(0x0c, 0x20), roles)\n // Emit the {RolesUpdated} event.\n log3(0, 0, _ROLES_UPDATED_EVENT_SIGNATURE, shr(96, mload(0x0c)), roles)\n }\n }\n\n /// @dev Updates the roles directly without authorization guard.\n /// If `on` is true, each set bit of `roles` will be turned on,\n /// otherwise, each set bit of `roles` will be turned off.\n function _updateRoles(address user, uint256 roles, bool on) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n let roleSlot := keccak256(0x0c, 0x20)\n // Load the current value.\n let current := sload(roleSlot)\n // Compute the updated roles if `on` is true.\n let updated := or(current, roles)\n // Compute the updated roles if `on` is false.\n // Use `and` to compute the intersection of `current` and `roles`,\n // `xor` it with `current` to flip the bits in the intersection.\n if iszero(on) { updated := xor(current, and(current, roles)) }\n // Then, store the new value.\n sstore(roleSlot, updated)\n // Emit the {RolesUpdated} event.\n log3(0, 0, _ROLES_UPDATED_EVENT_SIGNATURE, shr(96, mload(0x0c)), updated)\n }\n }\n\n /// @dev Grants the roles directly without authorization guard.\n /// Each bit of `roles` represents the role to turn on.\n function _grantRoles(address user, uint256 roles) internal virtual {\n _updateRoles(user, roles, true);\n }\n\n /// @dev Removes the roles directly without authorization guard.\n /// Each bit of `roles` represents the role to turn off.\n function _removeRoles(address user, uint256 roles) internal virtual {\n _updateRoles(user, roles, false);\n }\n\n /// @dev Throws if the sender does not have any of the `roles`.\n function _checkRoles(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Throws if the sender is not the owner,\n /// and does not have any of the `roles`.\n /// Checks for ownership first, then lazily checks for roles.\n function _checkOwnerOrRoles(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // If the caller is not the stored owner.\n // Note: `_ROLE_SLOT_SEED` is equal to `_OWNER_SLOT_NOT`.\n if iszero(eq(caller(), sload(not(_ROLE_SLOT_SEED)))) {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Throws if the sender does not have any of the `roles`,\n /// and is not the owner.\n /// Checks for roles first, then lazily checks for ownership.\n function _checkRolesOrOwner(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n // If the caller is not the stored owner.\n // Note: `_ROLE_SLOT_SEED` is equal to `_OWNER_SLOT_NOT`.\n if iszero(eq(caller(), sload(not(_ROLE_SLOT_SEED)))) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Convenience function to return a `roles` bitmap from an array of `ordinals`.\n /// This is meant for frontends like Etherscan, and is therefore not fully optimized.\n /// Not recommended to be called on-chain.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _rolesFromOrdinals(uint8[] memory ordinals) internal pure returns (uint256 roles) {\n /// @solidity memory-safe-assembly\n assembly {\n for { let i := shl(5, mload(ordinals)) } i { i := sub(i, 0x20) } {\n // We don't need to mask the values of `ordinals`, as Solidity\n // cleans dirty upper bits when storing variables into memory.\n roles := or(shl(mload(add(ordinals, i)), 1), roles)\n }\n }\n }\n\n /// @dev Convenience function to return an array of `ordinals` from the `roles` bitmap.\n /// This is meant for frontends like Etherscan, and is therefore not fully optimized.\n /// Not recommended to be called on-chain.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _ordinalsFromRoles(uint256 roles) internal pure returns (uint8[] memory ordinals) {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the pointer to the free memory.\n ordinals := mload(0x40)\n let ptr := add(ordinals, 0x20)\n let o := 0\n // The absence of lookup tables, De Bruijn, etc., here is intentional for\n // smaller bytecode, as this function is not meant to be called on-chain.\n for { let t := roles } 1 {} {\n mstore(ptr, o)\n // `shr` 5 is equivalent to multiplying by 0x20.\n // Push back into the ordinals array if the bit is set.\n ptr := add(ptr, shl(5, and(t, 1)))\n o := add(o, 1)\n t := shr(o, roles)\n if iszero(t) { break }\n }\n // Store the length of `ordinals`.\n mstore(ordinals, shr(5, sub(ptr, add(ordinals, 0x20))))\n // Allocate the memory.\n mstore(0x40, ptr)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC UPDATE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Allows the owner to grant `user` `roles`.\n /// If the `user` already has a role, then it will be an no-op for the role.\n function grantRoles(address user, uint256 roles) public payable virtual onlyOwner {\n _grantRoles(user, roles);\n }\n\n /// @dev Allows the owner to remove `user` `roles`.\n /// If the `user` does not have a role, then it will be an no-op for the role.\n function revokeRoles(address user, uint256 roles) public payable virtual onlyOwner {\n _removeRoles(user, roles);\n }\n\n /// @dev Allow the caller to remove their own roles.\n /// If the caller does not have a role, then it will be an no-op for the role.\n function renounceRoles(uint256 roles) public payable virtual {\n _removeRoles(msg.sender, roles);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC READ FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the roles of `user`.\n function rolesOf(address user) public view virtual returns (uint256 roles) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n // Load the stored value.\n roles := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Returns whether `user` has any of `roles`.\n function hasAnyRole(address user, uint256 roles) public view virtual returns (bool) {\n return rolesOf(user) & roles != 0;\n }\n\n /// @dev Returns whether `user` has all of `roles`.\n function hasAllRoles(address user, uint256 roles) public view virtual returns (bool) {\n return rolesOf(user) & roles == roles;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MODIFIERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Marks a function as only callable by an account with `roles`.\n modifier onlyRoles(uint256 roles) virtual {\n _checkRoles(roles);\n _;\n }\n\n /// @dev Marks a function as only callable by the owner or by an account\n /// with `roles`. Checks for ownership first, then lazily checks for roles.\n modifier onlyOwnerOrRoles(uint256 roles) virtual {\n _checkOwnerOrRoles(roles);\n _;\n }\n\n /// @dev Marks a function as only callable by an account with `roles`\n /// or the owner. Checks for roles first, then lazily checks for ownership.\n modifier onlyRolesOrOwner(uint256 roles) virtual {\n _checkRolesOrOwner(roles);\n _;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ROLE CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // IYKYK\n\n uint256 internal constant _ROLE_0 = 1 << 0;\n uint256 internal constant _ROLE_1 = 1 << 1;\n uint256 internal constant _ROLE_2 = 1 << 2;\n uint256 internal constant _ROLE_3 = 1 << 3;\n uint256 internal constant _ROLE_4 = 1 << 4;\n uint256 internal constant _ROLE_5 = 1 << 5;\n uint256 internal constant _ROLE_6 = 1 << 6;\n uint256 internal constant _ROLE_7 = 1 << 7;\n uint256 internal constant _ROLE_8 = 1 << 8;\n uint256 internal constant _ROLE_9 = 1 << 9;\n uint256 internal constant _ROLE_10 = 1 << 10;\n uint256 internal constant _ROLE_11 = 1 << 11;\n uint256 internal constant _ROLE_12 = 1 << 12;\n uint256 internal constant _ROLE_13 = 1 << 13;\n uint256 internal constant _ROLE_14 = 1 << 14;\n uint256 internal constant _ROLE_15 = 1 << 15;\n uint256 internal constant _ROLE_16 = 1 << 16;\n uint256 internal constant _ROLE_17 = 1 << 17;\n uint256 internal constant _ROLE_18 = 1 << 18;\n uint256 internal constant _ROLE_19 = 1 << 19;\n uint256 internal constant _ROLE_20 = 1 << 20;\n uint256 internal constant _ROLE_21 = 1 << 21;\n uint256 internal constant _ROLE_22 = 1 << 22;\n uint256 internal constant _ROLE_23 = 1 << 23;\n uint256 internal constant _ROLE_24 = 1 << 24;\n uint256 internal constant _ROLE_25 = 1 << 25;\n uint256 internal constant _ROLE_26 = 1 << 26;\n uint256 internal constant _ROLE_27 = 1 << 27;\n uint256 internal constant _ROLE_28 = 1 << 28;\n uint256 internal constant _ROLE_29 = 1 << 29;\n uint256 internal constant _ROLE_30 = 1 << 30;\n uint256 internal constant _ROLE_31 = 1 << 31;\n uint256 internal constant _ROLE_32 = 1 << 32;\n uint256 internal constant _ROLE_33 = 1 << 33;\n uint256 internal constant _ROLE_34 = 1 << 34;\n uint256 internal constant _ROLE_35 = 1 << 35;\n uint256 internal constant _ROLE_36 = 1 << 36;\n uint256 internal constant _ROLE_37 = 1 << 37;\n uint256 internal constant _ROLE_38 = 1 << 38;\n uint256 internal constant _ROLE_39 = 1 << 39;\n uint256 internal constant _ROLE_40 = 1 << 40;\n uint256 internal constant _ROLE_41 = 1 << 41;\n uint256 internal constant _ROLE_42 = 1 << 42;\n uint256 internal constant _ROLE_43 = 1 << 43;\n uint256 internal constant _ROLE_44 = 1 << 44;\n uint256 internal constant _ROLE_45 = 1 << 45;\n uint256 internal constant _ROLE_46 = 1 << 46;\n uint256 internal constant _ROLE_47 = 1 << 47;\n uint256 internal constant _ROLE_48 = 1 << 48;\n uint256 internal constant _ROLE_49 = 1 << 49;\n uint256 internal constant _ROLE_50 = 1 << 50;\n uint256 internal constant _ROLE_51 = 1 << 51;\n uint256 internal constant _ROLE_52 = 1 << 52;\n uint256 internal constant _ROLE_53 = 1 << 53;\n uint256 internal constant _ROLE_54 = 1 << 54;\n uint256 internal constant _ROLE_55 = 1 << 55;\n uint256 internal constant _ROLE_56 = 1 << 56;\n uint256 internal constant _ROLE_57 = 1 << 57;\n uint256 internal constant _ROLE_58 = 1 << 58;\n uint256 internal constant _ROLE_59 = 1 << 59;\n uint256 internal constant _ROLE_60 = 1 << 60;\n uint256 internal constant _ROLE_61 = 1 << 61;\n uint256 internal constant _ROLE_62 = 1 << 62;\n uint256 internal constant _ROLE_63 = 1 << 63;\n uint256 internal constant _ROLE_64 = 1 << 64;\n uint256 internal constant _ROLE_65 = 1 << 65;\n uint256 internal constant _ROLE_66 = 1 << 66;\n uint256 internal constant _ROLE_67 = 1 << 67;\n uint256 internal constant _ROLE_68 = 1 << 68;\n uint256 internal constant _ROLE_69 = 1 << 69;\n uint256 internal constant _ROLE_70 = 1 << 70;\n uint256 internal constant _ROLE_71 = 1 << 71;\n uint256 internal constant _ROLE_72 = 1 << 72;\n uint256 internal constant _ROLE_73 = 1 << 73;\n uint256 internal constant _ROLE_74 = 1 << 74;\n uint256 internal constant _ROLE_75 = 1 << 75;\n uint256 internal constant _ROLE_76 = 1 << 76;\n uint256 internal constant _ROLE_77 = 1 << 77;\n uint256 internal constant _ROLE_78 = 1 << 78;\n uint256 internal constant _ROLE_79 = 1 << 79;\n uint256 internal constant _ROLE_80 = 1 << 80;\n uint256 internal constant _ROLE_81 = 1 << 81;\n uint256 internal constant _ROLE_82 = 1 << 82;\n uint256 internal constant _ROLE_83 = 1 << 83;\n uint256 internal constant _ROLE_84 = 1 << 84;\n uint256 internal constant _ROLE_85 = 1 << 85;\n uint256 internal constant _ROLE_86 = 1 << 86;\n uint256 internal constant _ROLE_87 = 1 << 87;\n uint256 internal constant _ROLE_88 = 1 << 88;\n uint256 internal constant _ROLE_89 = 1 << 89;\n uint256 internal constant _ROLE_90 = 1 << 90;\n uint256 internal constant _ROLE_91 = 1 << 91;\n uint256 internal constant _ROLE_92 = 1 << 92;\n uint256 internal constant _ROLE_93 = 1 << 93;\n uint256 internal constant _ROLE_94 = 1 << 94;\n uint256 internal constant _ROLE_95 = 1 << 95;\n uint256 internal constant _ROLE_96 = 1 << 96;\n uint256 internal constant _ROLE_97 = 1 << 97;\n uint256 internal constant _ROLE_98 = 1 << 98;\n uint256 internal constant _ROLE_99 = 1 << 99;\n uint256 internal constant _ROLE_100 = 1 << 100;\n uint256 internal constant _ROLE_101 = 1 << 101;\n uint256 internal constant _ROLE_102 = 1 << 102;\n uint256 internal constant _ROLE_103 = 1 << 103;\n uint256 internal constant _ROLE_104 = 1 << 104;\n uint256 internal constant _ROLE_105 = 1 << 105;\n uint256 internal constant _ROLE_106 = 1 << 106;\n uint256 internal constant _ROLE_107 = 1 << 107;\n uint256 internal constant _ROLE_108 = 1 << 108;\n uint256 internal constant _ROLE_109 = 1 << 109;\n uint256 internal constant _ROLE_110 = 1 << 110;\n uint256 internal constant _ROLE_111 = 1 << 111;\n uint256 internal constant _ROLE_112 = 1 << 112;\n uint256 internal constant _ROLE_113 = 1 << 113;\n uint256 internal constant _ROLE_114 = 1 << 114;\n uint256 internal constant _ROLE_115 = 1 << 115;\n uint256 internal constant _ROLE_116 = 1 << 116;\n uint256 internal constant _ROLE_117 = 1 << 117;\n uint256 internal constant _ROLE_118 = 1 << 118;\n uint256 internal constant _ROLE_119 = 1 << 119;\n uint256 internal constant _ROLE_120 = 1 << 120;\n uint256 internal constant _ROLE_121 = 1 << 121;\n uint256 internal constant _ROLE_122 = 1 << 122;\n uint256 internal constant _ROLE_123 = 1 << 123;\n uint256 internal constant _ROLE_124 = 1 << 124;\n uint256 internal constant _ROLE_125 = 1 << 125;\n uint256 internal constant _ROLE_126 = 1 << 126;\n uint256 internal constant _ROLE_127 = 1 << 127;\n uint256 internal constant _ROLE_128 = 1 << 128;\n uint256 internal constant _ROLE_129 = 1 << 129;\n uint256 internal constant _ROLE_130 = 1 << 130;\n uint256 internal constant _ROLE_131 = 1 << 131;\n uint256 internal constant _ROLE_132 = 1 << 132;\n uint256 internal constant _ROLE_133 = 1 << 133;\n uint256 internal constant _ROLE_134 = 1 << 134;\n uint256 internal constant _ROLE_135 = 1 << 135;\n uint256 internal constant _ROLE_136 = 1 << 136;\n uint256 internal constant _ROLE_137 = 1 << 137;\n uint256 internal constant _ROLE_138 = 1 << 138;\n uint256 internal constant _ROLE_139 = 1 << 139;\n uint256 internal constant _ROLE_140 = 1 << 140;\n uint256 internal constant _ROLE_141 = 1 << 141;\n uint256 internal constant _ROLE_142 = 1 << 142;\n uint256 internal constant _ROLE_143 = 1 << 143;\n uint256 internal constant _ROLE_144 = 1 << 144;\n uint256 internal constant _ROLE_145 = 1 << 145;\n uint256 internal constant _ROLE_146 = 1 << 146;\n uint256 internal constant _ROLE_147 = 1 << 147;\n uint256 internal constant _ROLE_148 = 1 << 148;\n uint256 internal constant _ROLE_149 = 1 << 149;\n uint256 internal constant _ROLE_150 = 1 << 150;\n uint256 internal constant _ROLE_151 = 1 << 151;\n uint256 internal constant _ROLE_152 = 1 << 152;\n uint256 internal constant _ROLE_153 = 1 << 153;\n uint256 internal constant _ROLE_154 = 1 << 154;\n uint256 internal constant _ROLE_155 = 1 << 155;\n uint256 internal constant _ROLE_156 = 1 << 156;\n uint256 internal constant _ROLE_157 = 1 << 157;\n uint256 internal constant _ROLE_158 = 1 << 158;\n uint256 internal constant _ROLE_159 = 1 << 159;\n uint256 internal constant _ROLE_160 = 1 << 160;\n uint256 internal constant _ROLE_161 = 1 << 161;\n uint256 internal constant _ROLE_162 = 1 << 162;\n uint256 internal constant _ROLE_163 = 1 << 163;\n uint256 internal constant _ROLE_164 = 1 << 164;\n uint256 internal constant _ROLE_165 = 1 << 165;\n uint256 internal constant _ROLE_166 = 1 << 166;\n uint256 internal constant _ROLE_167 = 1 << 167;\n uint256 internal constant _ROLE_168 = 1 << 168;\n uint256 internal constant _ROLE_169 = 1 << 169;\n uint256 internal constant _ROLE_170 = 1 << 170;\n uint256 internal constant _ROLE_171 = 1 << 171;\n uint256 internal constant _ROLE_172 = 1 << 172;\n uint256 internal constant _ROLE_173 = 1 << 173;\n uint256 internal constant _ROLE_174 = 1 << 174;\n uint256 internal constant _ROLE_175 = 1 << 175;\n uint256 internal constant _ROLE_176 = 1 << 176;\n uint256 internal constant _ROLE_177 = 1 << 177;\n uint256 internal constant _ROLE_178 = 1 << 178;\n uint256 internal constant _ROLE_179 = 1 << 179;\n uint256 internal constant _ROLE_180 = 1 << 180;\n uint256 internal constant _ROLE_181 = 1 << 181;\n uint256 internal constant _ROLE_182 = 1 << 182;\n uint256 internal constant _ROLE_183 = 1 << 183;\n uint256 internal constant _ROLE_184 = 1 << 184;\n uint256 internal constant _ROLE_185 = 1 << 185;\n uint256 internal constant _ROLE_186 = 1 << 186;\n uint256 internal constant _ROLE_187 = 1 << 187;\n uint256 internal constant _ROLE_188 = 1 << 188;\n uint256 internal constant _ROLE_189 = 1 << 189;\n uint256 internal constant _ROLE_190 = 1 << 190;\n uint256 internal constant _ROLE_191 = 1 << 191;\n uint256 internal constant _ROLE_192 = 1 << 192;\n uint256 internal constant _ROLE_193 = 1 << 193;\n uint256 internal constant _ROLE_194 = 1 << 194;\n uint256 internal constant _ROLE_195 = 1 << 195;\n uint256 internal constant _ROLE_196 = 1 << 196;\n uint256 internal constant _ROLE_197 = 1 << 197;\n uint256 internal constant _ROLE_198 = 1 << 198;\n uint256 internal constant _ROLE_199 = 1 << 199;\n uint256 internal constant _ROLE_200 = 1 << 200;\n uint256 internal constant _ROLE_201 = 1 << 201;\n uint256 internal constant _ROLE_202 = 1 << 202;\n uint256 internal constant _ROLE_203 = 1 << 203;\n uint256 internal constant _ROLE_204 = 1 << 204;\n uint256 internal constant _ROLE_205 = 1 << 205;\n uint256 internal constant _ROLE_206 = 1 << 206;\n uint256 internal constant _ROLE_207 = 1 << 207;\n uint256 internal constant _ROLE_208 = 1 << 208;\n uint256 internal constant _ROLE_209 = 1 << 209;\n uint256 internal constant _ROLE_210 = 1 << 210;\n uint256 internal constant _ROLE_211 = 1 << 211;\n uint256 internal constant _ROLE_212 = 1 << 212;\n uint256 internal constant _ROLE_213 = 1 << 213;\n uint256 internal constant _ROLE_214 = 1 << 214;\n uint256 internal constant _ROLE_215 = 1 << 215;\n uint256 internal constant _ROLE_216 = 1 << 216;\n uint256 internal constant _ROLE_217 = 1 << 217;\n uint256 internal constant _ROLE_218 = 1 << 218;\n uint256 internal constant _ROLE_219 = 1 << 219;\n uint256 internal constant _ROLE_220 = 1 << 220;\n uint256 internal constant _ROLE_221 = 1 << 221;\n uint256 internal constant _ROLE_222 = 1 << 222;\n uint256 internal constant _ROLE_223 = 1 << 223;\n uint256 internal constant _ROLE_224 = 1 << 224;\n uint256 internal constant _ROLE_225 = 1 << 225;\n uint256 internal constant _ROLE_226 = 1 << 226;\n uint256 internal constant _ROLE_227 = 1 << 227;\n uint256 internal constant _ROLE_228 = 1 << 228;\n uint256 internal constant _ROLE_229 = 1 << 229;\n uint256 internal constant _ROLE_230 = 1 << 230;\n uint256 internal constant _ROLE_231 = 1 << 231;\n uint256 internal constant _ROLE_232 = 1 << 232;\n uint256 internal constant _ROLE_233 = 1 << 233;\n uint256 internal constant _ROLE_234 = 1 << 234;\n uint256 internal constant _ROLE_235 = 1 << 235;\n uint256 internal constant _ROLE_236 = 1 << 236;\n uint256 internal constant _ROLE_237 = 1 << 237;\n uint256 internal constant _ROLE_238 = 1 << 238;\n uint256 internal constant _ROLE_239 = 1 << 239;\n uint256 internal constant _ROLE_240 = 1 << 240;\n uint256 internal constant _ROLE_241 = 1 << 241;\n uint256 internal constant _ROLE_242 = 1 << 242;\n uint256 internal constant _ROLE_243 = 1 << 243;\n uint256 internal constant _ROLE_244 = 1 << 244;\n uint256 internal constant _ROLE_245 = 1 << 245;\n uint256 internal constant _ROLE_246 = 1 << 246;\n uint256 internal constant _ROLE_247 = 1 << 247;\n uint256 internal constant _ROLE_248 = 1 << 248;\n uint256 internal constant _ROLE_249 = 1 << 249;\n uint256 internal constant _ROLE_250 = 1 << 250;\n uint256 internal constant _ROLE_251 = 1 << 251;\n uint256 internal constant _ROLE_252 = 1 << 252;\n uint256 internal constant _ROLE_253 = 1 << 253;\n uint256 internal constant _ROLE_254 = 1 << 254;\n uint256 internal constant _ROLE_255 = 1 << 255;\n}\n"},"@solady/tokens/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple ERC20 + EIP-2612 implementation.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\n///\n/// @dev Note:\n/// - The ERC20 standard allows minting and transferring to and from the zero address,\n/// minting and transferring zero tokens, as well as self-approvals.\n/// For performance, this implementation WILL NOT revert for such actions.\n/// Please add any checks with overrides if desired.\n/// - The `permit` function uses the ecrecover precompile (0x1).\n///\n/// If you are overriding:\n/// - NEVER violate the ERC20 invariant:\n/// the total sum of all balances must be equal to `totalSupply()`.\n/// - Check that the overridden function is actually used in the function you want to\n/// change the behavior of. Much of the code has been manually inlined for performance.\nabstract contract ERC20 {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The total supply has overflowed.\n error TotalSupplyOverflow();\n\n /// @dev The allowance has overflowed.\n error AllowanceOverflow();\n\n /// @dev The allowance has underflowed.\n error AllowanceUnderflow();\n\n /// @dev Insufficient balance.\n error InsufficientBalance();\n\n /// @dev Insufficient allowance.\n error InsufficientAllowance();\n\n /// @dev The permit is invalid.\n error InvalidPermit();\n\n /// @dev The permit has expired.\n error PermitExpired();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Emitted when `amount` tokens is transferred from `from` to `to`.\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n /// @dev Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n /// @dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`.\n uint256 private constant _TRANSFER_EVENT_SIGNATURE =\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;\n\n /// @dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`.\n uint256 private constant _APPROVAL_EVENT_SIGNATURE =\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The storage slot for the total supply.\n uint256 private constant _TOTAL_SUPPLY_SLOT = 0x05345cdf77eb68f44c;\n\n /// @dev The balance slot of `owner` is given by:\n /// ```\n /// mstore(0x0c, _BALANCE_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let balanceSlot := keccak256(0x0c, 0x20)\n /// ```\n uint256 private constant _BALANCE_SLOT_SEED = 0x87a211a2;\n\n /// @dev The allowance slot of (`owner`, `spender`) is given by:\n /// ```\n /// mstore(0x20, spender)\n /// mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let allowanceSlot := keccak256(0x0c, 0x34)\n /// ```\n uint256 private constant _ALLOWANCE_SLOT_SEED = 0x7f5e9f20;\n\n /// @dev The nonce slot of `owner` is given by:\n /// ```\n /// mstore(0x0c, _NONCES_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let nonceSlot := keccak256(0x0c, 0x20)\n /// ```\n uint256 private constant _NONCES_SLOT_SEED = 0x38377508;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev `(_NONCES_SLOT_SEED << 16) | 0x1901`.\n uint256 private constant _NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX = 0x383775081901;\n\n /// @dev `keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")`.\n bytes32 private constant _DOMAIN_TYPEHASH =\n 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;\n\n /// @dev `keccak256(\"1\")`.\n bytes32 private constant _VERSION_HASH =\n 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6;\n\n /// @dev `keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\")`.\n bytes32 private constant _PERMIT_TYPEHASH =\n 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 METADATA */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the name of the token.\n function name() public view virtual returns (string memory);\n\n /// @dev Returns the symbol of the token.\n function symbol() public view virtual returns (string memory);\n\n /// @dev Returns the decimals places of the token.\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the amount of tokens in existence.\n function totalSupply() public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := sload(_TOTAL_SUPPLY_SLOT)\n }\n }\n\n /// @dev Returns the amount of tokens owned by `owner`.\n function balanceOf(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Returns the amount of tokens that `spender` can spend on behalf of `owner`.\n function allowance(address owner, address spender)\n public\n view\n virtual\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x34))\n }\n }\n\n /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n ///\n /// Emits a {Approval} event.\n function approve(address spender, uint256 amount) public virtual returns (bool) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the allowance slot and store the amount.\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x34), amount)\n // Emit the {Approval} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, caller(), shr(96, mload(0x2c)))\n }\n return true;\n }\n\n /// @dev Transfer `amount` tokens from the caller to `to`.\n ///\n /// Requirements:\n /// - `from` must at least have `amount`.\n ///\n /// Emits a {Transfer} event.\n function transfer(address to, uint256 amount) public virtual returns (bool) {\n _beforeTokenTransfer(msg.sender, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, caller())\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, caller(), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(msg.sender, to, amount);\n return true;\n }\n\n /// @dev Transfers `amount` tokens from `from` to `to`.\n ///\n /// Note: Does not update the allowance if it is the maximum uint256 value.\n ///\n /// Requirements:\n /// - `from` must at least have `amount`.\n /// - The caller must have at least `amount` of allowance to transfer the tokens of `from`.\n ///\n /// Emits a {Transfer} event.\n function transferFrom(address from, address to, uint256 amount) public virtual returns (bool) {\n _beforeTokenTransfer(from, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let from_ := shl(96, from)\n // Compute the allowance slot and load its value.\n mstore(0x20, caller())\n mstore(0x0c, or(from_, _ALLOWANCE_SLOT_SEED))\n let allowanceSlot := keccak256(0x0c, 0x34)\n let allowance_ := sload(allowanceSlot)\n // If the allowance is not the maximum uint256 value.\n if add(allowance_, 1) {\n // Revert if the amount to be transferred exceeds the allowance.\n if gt(amount, allowance_) {\n mstore(0x00, 0x13be252b) // `InsufficientAllowance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated allowance.\n sstore(allowanceSlot, sub(allowance_, amount))\n }\n // Compute the balance slot and load its value.\n mstore(0x0c, or(from_, _BALANCE_SLOT_SEED))\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(from, to, amount);\n return true;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EIP-2612 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev For more performance, override to return the constant value\n /// of `keccak256(bytes(name()))` if `name()` will never change.\n function _constantNameHash() internal view virtual returns (bytes32 result) {}\n\n /// @dev Returns the current nonce for `owner`.\n /// This value is used to compute the signature for EIP-2612 permit.\n function nonces(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the nonce slot and load its value.\n mstore(0x0c, _NONCES_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Sets `value` as the allowance of `spender` over the tokens of `owner`,\n /// authorized by a signed approval by `owner`.\n ///\n /// Emits a {Approval} event.\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) public virtual {\n bytes32 nameHash = _constantNameHash();\n // We simply calculate it on-the-fly to allow for cases where the `name` may change.\n if (nameHash == bytes32(0)) nameHash = keccak256(bytes(name()));\n /// @solidity memory-safe-assembly\n assembly {\n // Revert if the block timestamp is greater than `deadline`.\n if gt(timestamp(), deadline) {\n mstore(0x00, 0x1a15a3cc) // `PermitExpired()`.\n revert(0x1c, 0x04)\n }\n let m := mload(0x40) // Grab the free memory pointer.\n // Clean the upper 96 bits.\n owner := shr(96, shl(96, owner))\n spender := shr(96, shl(96, spender))\n // Compute the nonce slot and load its value.\n mstore(0x0e, _NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX)\n mstore(0x00, owner)\n let nonceSlot := keccak256(0x0c, 0x20)\n let nonceValue := sload(nonceSlot)\n // Prepare the domain separator.\n mstore(m, _DOMAIN_TYPEHASH)\n mstore(add(m, 0x20), nameHash)\n mstore(add(m, 0x40), _VERSION_HASH)\n mstore(add(m, 0x60), chainid())\n mstore(add(m, 0x80), address())\n mstore(0x2e, keccak256(m, 0xa0))\n // Prepare the struct hash.\n mstore(m, _PERMIT_TYPEHASH)\n mstore(add(m, 0x20), owner)\n mstore(add(m, 0x40), spender)\n mstore(add(m, 0x60), value)\n mstore(add(m, 0x80), nonceValue)\n mstore(add(m, 0xa0), deadline)\n mstore(0x4e, keccak256(m, 0xc0))\n // Prepare the ecrecover calldata.\n mstore(0x00, keccak256(0x2c, 0x42))\n mstore(0x20, and(0xff, v))\n mstore(0x40, r)\n mstore(0x60, s)\n let t := staticcall(gas(), 1, 0, 0x80, 0x20, 0x20)\n // If the ecrecover fails, the returndatasize will be 0x00,\n // `owner` will be checked if it equals the hash at 0x00,\n // which evaluates to false (i.e. 0), and we will revert.\n // If the ecrecover succeeds, the returndatasize will be 0x20,\n // `owner` will be compared against the returned address at 0x20.\n if iszero(eq(mload(returndatasize()), owner)) {\n mstore(0x00, 0xddafbaef) // `InvalidPermit()`.\n revert(0x1c, 0x04)\n }\n // Increment and store the updated nonce.\n sstore(nonceSlot, add(nonceValue, t)) // `t` is 1 if ecrecover succeeds.\n // Compute the allowance slot and store the value.\n // The `owner` is already at slot 0x20.\n mstore(0x40, or(shl(160, _ALLOWANCE_SLOT_SEED), spender))\n sstore(keccak256(0x2c, 0x34), value)\n // Emit the {Approval} event.\n log3(add(m, 0x60), 0x20, _APPROVAL_EVENT_SIGNATURE, owner, spender)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero pointer.\n }\n }\n\n /// @dev Returns the EIP-712 domain separator for the EIP-2612 permit.\n function DOMAIN_SEPARATOR() public view virtual returns (bytes32 result) {\n bytes32 nameHash = _constantNameHash();\n // We simply calculate it on-the-fly to allow for cases where the `name` may change.\n if (nameHash == bytes32(0)) nameHash = keccak256(bytes(name()));\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Grab the free memory pointer.\n mstore(m, _DOMAIN_TYPEHASH)\n mstore(add(m, 0x20), nameHash)\n mstore(add(m, 0x40), _VERSION_HASH)\n mstore(add(m, 0x60), chainid())\n mstore(add(m, 0x80), address())\n result := keccak256(m, 0xa0)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL MINT FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Mints `amount` tokens to `to`, increasing the total supply.\n ///\n /// Emits a {Transfer} event.\n function _mint(address to, uint256 amount) internal virtual {\n _beforeTokenTransfer(address(0), to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let totalSupplyBefore := sload(_TOTAL_SUPPLY_SLOT)\n let totalSupplyAfter := add(totalSupplyBefore, amount)\n // Revert if the total supply overflows.\n if lt(totalSupplyAfter, totalSupplyBefore) {\n mstore(0x00, 0xe5cfe957) // `TotalSupplyOverflow()`.\n revert(0x1c, 0x04)\n }\n // Store the updated total supply.\n sstore(_TOTAL_SUPPLY_SLOT, totalSupplyAfter)\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, 0, shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(address(0), to, amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL BURN FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Burns `amount` tokens from `from`, reducing the total supply.\n ///\n /// Emits a {Transfer} event.\n function _burn(address from, uint256 amount) internal virtual {\n _beforeTokenTransfer(from, address(0), amount);\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, from)\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Subtract and store the updated total supply.\n sstore(_TOTAL_SUPPLY_SLOT, sub(sload(_TOTAL_SUPPLY_SLOT), amount))\n // Emit the {Transfer} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, shl(96, from)), 0)\n }\n _afterTokenTransfer(from, address(0), amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL TRANSFER FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Moves `amount` of tokens from `from` to `to`.\n function _transfer(address from, address to, uint256 amount) internal virtual {\n _beforeTokenTransfer(from, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let from_ := shl(96, from)\n // Compute the balance slot and load its value.\n mstore(0x0c, or(from_, _BALANCE_SLOT_SEED))\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(from, to, amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL ALLOWANCE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Updates the allowance of `owner` for `spender` based on spent `amount`.\n function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the allowance slot and load its value.\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n let allowanceSlot := keccak256(0x0c, 0x34)\n let allowance_ := sload(allowanceSlot)\n // If the allowance is not the maximum uint256 value.\n if add(allowance_, 1) {\n // Revert if the amount to be transferred exceeds the allowance.\n if gt(amount, allowance_) {\n mstore(0x00, 0x13be252b) // `InsufficientAllowance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated allowance.\n sstore(allowanceSlot, sub(allowance_, amount))\n }\n }\n }\n\n /// @dev Sets `amount` as the allowance of `spender` over the tokens of `owner`.\n ///\n /// Emits a {Approval} event.\n function _approve(address owner, address spender, uint256 amount) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n let owner_ := shl(96, owner)\n // Compute the allowance slot and store the amount.\n mstore(0x20, spender)\n mstore(0x0c, or(owner_, _ALLOWANCE_SLOT_SEED))\n sstore(keccak256(0x0c, 0x34), amount)\n // Emit the {Approval} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, shr(96, owner_), shr(96, mload(0x2c)))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HOOKS TO OVERRIDE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Hook that is called before any transfer of tokens.\n /// This includes minting and burning.\n function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n\n /// @dev Hook that is called after any transfer of tokens.\n /// This includes minting and burning.\n function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n}\n"},"@solady/tokens/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple ERC721 implementation with storage hitchhiking.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC721.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/token/ERC721/ERC721.sol)\n///\n/// @dev Note:\n/// - The ERC721 standard allows for self-approvals.\n/// For performance, this implementation WILL NOT revert for such actions.\n/// Please add any checks with overrides if desired.\n/// - For performance, methods are made payable where permitted by the ERC721 standard.\n/// - The `safeTransfer` functions use the identity precompile (0x4)\n/// to copy memory internally.\n///\n/// If you are overriding:\n/// - NEVER violate the ERC721 invariant:\n/// the balance of an owner MUST always be equal to their number of ownership slots.\n/// The transfer functions do not have an underflow guard for user token balances.\n/// - Make sure all variables written to storage are properly cleaned\n// (e.g. the bool value for `isApprovedForAll` MUST be either 1 or 0 under the hood).\n/// - Check that the overridden function is actually used in the function you want to\n/// change the behavior of. Much of the code has been manually inlined for performance.\nabstract contract ERC721 {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev An account can hold up to 4294967295 tokens.\n uint256 internal constant _MAX_ACCOUNT_BALANCE = 0xffffffff;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Only the token owner or an approved account can manage the token.\n error NotOwnerNorApproved();\n\n /// @dev The token does not exist.\n error TokenDoesNotExist();\n\n /// @dev The token already exists.\n error TokenAlreadyExists();\n\n /// @dev Cannot query the balance for the zero address.\n error BalanceQueryForZeroAddress();\n\n /// @dev Cannot mint or transfer to the zero address.\n error TransferToZeroAddress();\n\n /// @dev The token must be owned by `from`.\n error TransferFromIncorrectOwner();\n\n /// @dev The recipient's balance has overflowed.\n error AccountBalanceOverflow();\n\n /// @dev Cannot safely transfer to a contract that does not implement\n /// the ERC721Receiver interface.\n error TransferToNonERC721ReceiverImplementer();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Emitted when token `id` is transferred from `from` to `to`.\n event Transfer(address indexed from, address indexed to, uint256 indexed id);\n\n /// @dev Emitted when `owner` enables `account` to manage the `id` token.\n event Approval(address indexed owner, address indexed account, uint256 indexed id);\n\n /// @dev Emitted when `owner` enables or disables `operator` to manage all of their tokens.\n event ApprovalForAll(address indexed owner, address indexed operator, bool isApproved);\n\n /// @dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`.\n uint256 private constant _TRANSFER_EVENT_SIGNATURE =\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;\n\n /// @dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`.\n uint256 private constant _APPROVAL_EVENT_SIGNATURE =\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925;\n\n /// @dev `keccak256(bytes(\"ApprovalForAll(address,address,bool)\"))`.\n uint256 private constant _APPROVAL_FOR_ALL_EVENT_SIGNATURE =\n 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ownership data slot of `id` is given by:\n /// ```\n /// mstore(0x00, id)\n /// mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n /// let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n /// ```\n /// Bits Layout:\n /// - [0..159] `addr`\n /// - [160..255] `extraData`\n ///\n /// The approved address slot is given by: `add(1, ownershipSlot)`.\n ///\n /// See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip\n ///\n /// The balance slot of `owner` is given by:\n /// ```\n /// mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let balanceSlot := keccak256(0x0c, 0x1c)\n /// ```\n /// Bits Layout:\n /// - [0..31] `balance`\n /// - [32..255] `aux`\n ///\n /// The `operator` approval slot of `owner` is given by:\n /// ```\n /// mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n /// mstore(0x00, owner)\n /// let operatorApprovalSlot := keccak256(0x0c, 0x30)\n /// ```\n uint256 private constant _ERC721_MASTER_SLOT_SEED = 0x7d8825530a5a2e7a << 192;\n\n /// @dev Pre-shifted and pre-masked constant.\n uint256 private constant _ERC721_MASTER_SLOT_SEED_MASKED = 0x0a5a2e7a00000000;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC721 METADATA */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the token collection name.\n function name() public view virtual returns (string memory);\n\n /// @dev Returns the token collection symbol.\n function symbol() public view virtual returns (string memory);\n\n /// @dev Returns the Uniform Resource Identifier (URI) for token `id`.\n function tokenURI(uint256 id) public view virtual returns (string memory);\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC721 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the owner of token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function ownerOf(uint256 id) public view virtual returns (address result) {\n result = _ownerOf(id);\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(result) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Returns the number of tokens owned by `owner`.\n ///\n /// Requirements:\n /// - `owner` must not be the zero address.\n function balanceOf(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Revert if the `owner` is the zero address.\n if iszero(owner) {\n mstore(0x00, 0x8f4eb604) // `BalanceQueryForZeroAddress()`.\n revert(0x1c, 0x04)\n }\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n result := and(sload(keccak256(0x0c, 0x1c)), _MAX_ACCOUNT_BALANCE)\n }\n }\n\n /// @dev Returns the account approved to manage token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function getApproved(uint256 id) public view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n if iszero(shl(96, sload(ownershipSlot))) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n result := sload(add(1, ownershipSlot))\n }\n }\n\n /// @dev Sets `account` as the approved account to manage token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n /// - The caller must be the owner of the token,\n /// or an approved operator for the token owner.\n ///\n /// Emits an {Approval} event.\n function approve(address account, uint256 id) public payable virtual {\n _approve(msg.sender, account, id);\n }\n\n /// @dev Returns whether `operator` is approved to manage the tokens of `owner`.\n function isApprovedForAll(address owner, address operator)\n public\n view\n virtual\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, operator)\n mstore(0x08, _ERC721_MASTER_SLOT_SEED_MASKED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x30))\n }\n }\n\n /// @dev Sets whether `operator` is approved to manage the tokens of the caller.\n ///\n /// Emits an {ApprovalForAll} event.\n function setApprovalForAll(address operator, bool isApproved) public virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Convert to 0 or 1.\n isApproved := iszero(iszero(isApproved))\n // Update the `isApproved` for (`msg.sender`, `operator`).\n mstore(0x1c, operator)\n mstore(0x08, _ERC721_MASTER_SLOT_SEED_MASKED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x30), isApproved)\n // Emit the {ApprovalForAll} event.\n mstore(0x00, isApproved)\n // forgefmt: disable-next-item\n log3(0x00, 0x20, _APPROVAL_FOR_ALL_EVENT_SIGNATURE, caller(), shr(96, shl(96, operator)))\n }\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function transferFrom(address from, address to, uint256 id) public payable virtual {\n _beforeTokenTransfer(from, to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n from := and(bitmaskAddress, from)\n to := and(bitmaskAddress, to)\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, caller()))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n let owner := and(bitmaskAddress, ownershipPacked)\n // Revert if the token does not exist, or if `from` is not the owner.\n if iszero(mul(owner, eq(owner, from))) {\n // `TokenDoesNotExist()`, `TransferFromIncorrectOwner()`.\n mstore(shl(2, iszero(owner)), 0xceea21b6a1148100)\n revert(0x1c, 0x04)\n }\n // Load, check, and update the token approval.\n {\n mstore(0x00, from)\n let approvedAddress := sload(add(1, ownershipSlot))\n // Revert if the caller is not the owner, nor approved.\n if iszero(or(eq(caller(), from), eq(caller(), approvedAddress))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Update with the new owner.\n sstore(ownershipSlot, xor(ownershipPacked, xor(from, to)))\n // Decrement the balance of `from`.\n {\n let fromBalanceSlot := keccak256(0x0c, 0x1c)\n sstore(fromBalanceSlot, sub(sload(fromBalanceSlot), 1))\n }\n // Increment the balance of `to`.\n {\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x1c)\n let toBalanceSlotPacked := add(sload(toBalanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(toBalanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(toBalanceSlot, toBalanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, from, to, id)\n }\n _afterTokenTransfer(from, to, id);\n }\n\n /// @dev Equivalent to `safeTransferFrom(from, to, id, \"\")`.\n function safeTransferFrom(address from, address to, uint256 id) public payable virtual {\n transferFrom(from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function safeTransferFrom(address from, address to, uint256 id, bytes calldata data)\n public\n payable\n virtual\n {\n transferFrom(from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /// @dev Returns true if this contract implements the interface defined by `interfaceId`.\n /// See: https://eips.ethereum.org/EIPS/eip-165\n /// This function call must use less than 30000 gas.\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let s := shr(224, interfaceId)\n // ERC165: 0x01ffc9a7, ERC721: 0x80ac58cd, ERC721Metadata: 0x5b5e139f.\n result := or(or(eq(s, 0x01ffc9a7), eq(s, 0x80ac58cd)), eq(s, 0x5b5e139f))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL QUERY FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns if token `id` exists.\n function _exists(uint256 id) internal view virtual returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := iszero(iszero(shl(96, sload(add(id, add(id, keccak256(0x00, 0x20)))))))\n }\n }\n\n /// @dev Returns the owner of token `id`.\n /// Returns the zero address instead of reverting if the token does not exist.\n function _ownerOf(uint256 id) internal view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := shr(96, shl(96, sload(add(id, add(id, keccak256(0x00, 0x20))))))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL DATA HITCHHIKING FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // For performance, no events are emitted for the hitchhiking setters.\n // Please emit your own events if required.\n\n /// @dev Returns the auxiliary data for `owner`.\n /// Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n /// Auxiliary data can be set for any address, even if it does not have any tokens.\n function _getAux(address owner) internal view virtual returns (uint224 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n result := shr(32, sload(keccak256(0x0c, 0x1c)))\n }\n }\n\n /// @dev Set the auxiliary data for `owner` to `value`.\n /// Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n /// Auxiliary data can be set for any address, even if it does not have any tokens.\n function _setAux(address owner, uint224 value) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let packed := sload(balanceSlot)\n sstore(balanceSlot, xor(packed, shl(32, xor(value, shr(32, packed)))))\n }\n }\n\n /// @dev Returns the extra data for token `id`.\n /// Minting, transferring, burning a token will not change the extra data.\n /// The extra data can be set on a non-existent token.\n function _getExtraData(uint256 id) internal view virtual returns (uint96 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := shr(160, sload(add(id, add(id, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Sets the extra data for token `id` to `value`.\n /// Minting, transferring, burning a token will not change the extra data.\n /// The extra data can be set on a non-existent token.\n function _setExtraData(uint256 id, uint96 value) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let packed := sload(ownershipSlot)\n sstore(ownershipSlot, xor(packed, shl(160, xor(value, shr(160, packed)))))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL MINT FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Mints token `id` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must not exist.\n /// - `to` cannot be the zero address.\n ///\n /// Emits a {Transfer} event.\n function _mint(address to, uint256 id) internal virtual {\n _beforeTokenTransfer(address(0), to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n to := shr(96, shl(96, to))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n // Revert if the token already exists.\n if shl(96, ownershipPacked) {\n mstore(0x00, 0xc991cbb1) // `TokenAlreadyExists()`.\n revert(0x1c, 0x04)\n }\n // Update with the owner.\n sstore(ownershipSlot, or(ownershipPacked, to))\n // Increment the balance of the owner.\n {\n mstore(0x00, to)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let balanceSlotPacked := add(sload(balanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(balanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(balanceSlot, balanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, 0, to, id)\n }\n _afterTokenTransfer(address(0), to, id);\n }\n\n /// @dev Mints token `id` to `to`, and updates the extra data for token `id` to `value`.\n /// Does NOT check if token `id` already exists (assumes `id` is auto-incrementing).\n ///\n /// Requirements:\n ///\n /// - `to` cannot be the zero address.\n ///\n /// Emits a {Transfer} event.\n function _mintAndSetExtraDataUnchecked(address to, uint256 id, uint96 value) internal virtual {\n _beforeTokenTransfer(address(0), to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n to := shr(96, shl(96, to))\n // Update with the owner and extra data.\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n sstore(add(id, add(id, keccak256(0x00, 0x20))), or(shl(160, value), to))\n // Increment the balance of the owner.\n {\n mstore(0x00, to)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let balanceSlotPacked := add(sload(balanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(balanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(balanceSlot, balanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, 0, to, id)\n }\n _afterTokenTransfer(address(0), to, id);\n }\n\n /// @dev Equivalent to `_safeMint(to, id, \"\")`.\n function _safeMint(address to, uint256 id) internal virtual {\n _safeMint(to, id, \"\");\n }\n\n /// @dev Mints token `id` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must not exist.\n /// - `to` cannot be the zero address.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeMint(address to, uint256 id, bytes memory data) internal virtual {\n _mint(to, id);\n if (_hasCode(to)) _checkOnERC721Received(address(0), to, id, data);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL BURN FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to `_burn(address(0), id)`.\n function _burn(uint256 id) internal virtual {\n _burn(address(0), id);\n }\n\n /// @dev Destroys token `id`, using `by`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function _burn(address by, uint256 id) internal virtual {\n address owner = ownerOf(id);\n _beforeTokenTransfer(owner, address(0), id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n by := shr(96, shl(96, by))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n // Reload the owner in case it is changed in `_beforeTokenTransfer`.\n owner := shr(96, shl(96, ownershipPacked))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // Load and check the token approval.\n {\n mstore(0x00, owner)\n let approvedAddress := sload(add(1, ownershipSlot))\n // If `by` is not the zero address, do the authorization check.\n // Revert if the `by` is not the owner, nor approved.\n if iszero(or(iszero(by), or(eq(by, owner), eq(by, approvedAddress)))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Clear the owner.\n sstore(ownershipSlot, xor(ownershipPacked, owner))\n // Decrement the balance of `owner`.\n {\n let balanceSlot := keccak256(0x0c, 0x1c)\n sstore(balanceSlot, sub(sload(balanceSlot), 1))\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, owner, 0, id)\n }\n _afterTokenTransfer(owner, address(0), id);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL APPROVAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `account` is the owner of token `id`, or is approved to manage it.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function _isApprovedOrOwner(address account, uint256 id)\n internal\n view\n virtual\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := 1\n // Clear the upper 96 bits.\n account := shr(96, shl(96, account))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, account))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let owner := shr(96, shl(96, sload(ownershipSlot)))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // Check if `account` is the `owner`.\n if iszero(eq(account, owner)) {\n mstore(0x00, owner)\n // Check if `account` is approved to manage the token.\n if iszero(sload(keccak256(0x0c, 0x30))) {\n result := eq(account, sload(add(1, ownershipSlot)))\n }\n }\n }\n }\n\n /// @dev Returns the account approved to manage token `id`.\n /// Returns the zero address instead of reverting if the token does not exist.\n function _getApproved(uint256 id) internal view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := sload(add(1, add(id, add(id, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Equivalent to `_approve(address(0), account, id)`.\n function _approve(address account, uint256 id) internal virtual {\n _approve(address(0), account, id);\n }\n\n /// @dev Sets `account` as the approved account to manage token `id`, using `by`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n /// - If `by` is not the zero address, `by` must be the owner\n /// or an approved operator for the token owner.\n ///\n /// Emits a {Approval} event.\n function _approve(address by, address account, uint256 id) internal virtual {\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n account := and(bitmaskAddress, account)\n by := and(bitmaskAddress, by)\n // Load the owner of the token.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let owner := and(bitmaskAddress, sload(ownershipSlot))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // If `by` is not the zero address, do the authorization check.\n // Revert if `by` is not the owner, nor approved.\n if iszero(or(iszero(by), eq(by, owner))) {\n mstore(0x00, owner)\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Sets `account` as the approved account to manage `id`.\n sstore(add(1, ownershipSlot), account)\n // Emit the {Approval} event.\n log4(codesize(), 0x00, _APPROVAL_EVENT_SIGNATURE, owner, account, id)\n }\n }\n\n /// @dev Approve or remove the `operator` as an operator for `by`,\n /// without authorization checks.\n ///\n /// Emits an {ApprovalForAll} event.\n function _setApprovalForAll(address by, address operator, bool isApproved) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n by := shr(96, shl(96, by))\n operator := shr(96, shl(96, operator))\n // Convert to 0 or 1.\n isApproved := iszero(iszero(isApproved))\n // Update the `isApproved` for (`by`, `operator`).\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n mstore(0x00, by)\n sstore(keccak256(0x0c, 0x30), isApproved)\n // Emit the {ApprovalForAll} event.\n mstore(0x00, isApproved)\n log3(0x00, 0x20, _APPROVAL_FOR_ALL_EVENT_SIGNATURE, by, operator)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL TRANSFER FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to `_transfer(address(0), from, to, id)`.\n function _transfer(address from, address to, uint256 id) internal virtual {\n _transfer(address(0), from, to, id);\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function _transfer(address by, address from, address to, uint256 id) internal virtual {\n _beforeTokenTransfer(from, to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n from := and(bitmaskAddress, from)\n to := and(bitmaskAddress, to)\n by := and(bitmaskAddress, by)\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n let owner := and(bitmaskAddress, ownershipPacked)\n // Revert if the token does not exist, or if `from` is not the owner.\n if iszero(mul(owner, eq(owner, from))) {\n // `TokenDoesNotExist()`, `TransferFromIncorrectOwner()`.\n mstore(shl(2, iszero(owner)), 0xceea21b6a1148100)\n revert(0x1c, 0x04)\n }\n // Load, check, and update the token approval.\n {\n mstore(0x00, from)\n let approvedAddress := sload(add(1, ownershipSlot))\n // If `by` is not the zero address, do the authorization check.\n // Revert if the `by` is not the owner, nor approved.\n if iszero(or(iszero(by), or(eq(by, from), eq(by, approvedAddress)))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Update with the new owner.\n sstore(ownershipSlot, xor(ownershipPacked, xor(from, to)))\n // Decrement the balance of `from`.\n {\n let fromBalanceSlot := keccak256(0x0c, 0x1c)\n sstore(fromBalanceSlot, sub(sload(fromBalanceSlot), 1))\n }\n // Increment the balance of `to`.\n {\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x1c)\n let toBalanceSlotPacked := add(sload(toBalanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(toBalanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(toBalanceSlot, toBalanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, from, to, id)\n }\n _afterTokenTransfer(from, to, id);\n }\n\n /// @dev Equivalent to `_safeTransfer(from, to, id, \"\")`.\n function _safeTransfer(address from, address to, uint256 id) internal virtual {\n _safeTransfer(from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeTransfer(address from, address to, uint256 id, bytes memory data)\n internal\n virtual\n {\n _transfer(address(0), from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /// @dev Equivalent to `_safeTransfer(by, from, to, id, \"\")`.\n function _safeTransfer(address by, address from, address to, uint256 id) internal virtual {\n _safeTransfer(by, from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeTransfer(address by, address from, address to, uint256 id, bytes memory data)\n internal\n virtual\n {\n _transfer(by, from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HOOKS FOR OVERRIDING */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Hook that is called before any token transfers, including minting and burning.\n function _beforeTokenTransfer(address from, address to, uint256 id) internal virtual {}\n\n /// @dev Hook that is called after any token transfers, including minting and burning.\n function _afterTokenTransfer(address from, address to, uint256 id) internal virtual {}\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PRIVATE HELPERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns if `a` has bytecode of non-zero length.\n function _hasCode(address a) private view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := extcodesize(a) // Can handle dirty upper bits.\n }\n }\n\n /// @dev Perform a call to invoke {IERC721Receiver-onERC721Received} on `to`.\n /// Reverts if the target does not support the function correctly.\n function _checkOnERC721Received(address from, address to, uint256 id, bytes memory data)\n private\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Prepare the calldata.\n let m := mload(0x40)\n let onERC721ReceivedSelector := 0x150b7a02\n mstore(m, onERC721ReceivedSelector)\n mstore(add(m, 0x20), caller()) // The `operator`, which is always `msg.sender`.\n mstore(add(m, 0x40), shr(96, shl(96, from)))\n mstore(add(m, 0x60), id)\n mstore(add(m, 0x80), 0x80)\n let n := mload(data)\n mstore(add(m, 0xa0), n)\n if n { pop(staticcall(gas(), 4, add(data, 0x20), n, add(m, 0xc0), n)) }\n // Revert if the call reverts.\n if iszero(call(gas(), to, 0, add(m, 0x1c), add(n, 0xa4), m, 0x20)) {\n if returndatasize() {\n // Bubble up the revert if the call reverts.\n returndatacopy(m, 0x00, returndatasize())\n revert(m, returndatasize())\n }\n }\n // Load the returndata and compare it.\n if iszero(eq(mload(m), shl(224, onERC721ReceivedSelector))) {\n mstore(0x00, 0xd1a57ed6) // `TransferToNonERC721ReceiverImplementer()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Initializable mixin for the upgradeable contracts.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)\nabstract contract Initializable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The contract is already initialized.\n error InvalidInitialization();\n\n /// @dev The contract is not initializing.\n error NotInitializing();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Triggered when the contract has been initialized.\n event Initialized(uint64 version);\n\n /// @dev `keccak256(bytes(\"Initialized(uint64)\"))`.\n bytes32 private constant _INTIALIZED_EVENT_SIGNATURE =\n 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The default initializable slot is given by:\n /// `bytes32(~uint256(uint32(bytes4(keccak256(\"_INITIALIZABLE_SLOT\")))))`.\n ///\n /// Bits Layout:\n /// - [0] `initializing`\n /// - [1..64] `initializedVersion`\n bytes32 private constant _INITIALIZABLE_SLOT =\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Override to return a custom storage slot if required.\n function _initializableSlot() internal pure virtual returns (bytes32) {\n return _INITIALIZABLE_SLOT;\n }\n\n /// @dev Guards an initializer function so that it can be invoked at most once.\n ///\n /// You can guard a function with `onlyInitializing` such that it can be called\n /// through a function guarded with `initializer`.\n ///\n /// This is similar to `reinitializer(1)`, except that in the context of a constructor,\n /// an `initializer` guarded function can be invoked multiple times.\n /// This can be useful during testing and is not expected to be used in production.\n ///\n /// Emits an {Initialized} event.\n modifier initializer() virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n let i := sload(s)\n // Set `initializing` to 1, `initializedVersion` to 1.\n sstore(s, 3)\n // If `!(initializing == 0 && initializedVersion == 0)`.\n if i {\n // If `!(address(this).code.length == 0 && initializedVersion == 1)`.\n if iszero(lt(extcodesize(address()), eq(shr(1, i), 1))) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n s := shl(shl(255, i), s) // Skip initializing if `initializing == 1`.\n }\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n if s {\n // Set `initializing` to 0, `initializedVersion` to 1.\n sstore(s, 2)\n // Emit the {Initialized} event.\n mstore(0x20, 1)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n }\n\n /// @dev Guards an reinitialzer function so that it can be invoked at most once.\n ///\n /// You can guard a function with `onlyInitializing` such that it can be called\n /// through a function guarded with `reinitializer`.\n ///\n /// Emits an {Initialized} event.\n modifier reinitializer(uint64 version) virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n version := and(version, 0xffffffffffffffff) // Clean upper bits.\n let i := sload(s)\n // If `initializing == 1 || initializedVersion >= version`.\n if iszero(lt(and(i, 1), lt(shr(1, i), version))) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n // Set `initializing` to 1, `initializedVersion` to `version`.\n sstore(s, or(1, shl(1, version)))\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n // Set `initializing` to 0, `initializedVersion` to `version`.\n sstore(s, shl(1, version))\n // Emit the {Initialized} event.\n mstore(0x20, version)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n\n /// @dev Guards a function such that it can only be called in the scope\n /// of a function guarded with `initializer` or `reinitializer`.\n modifier onlyInitializing() virtual {\n _checkInitializing();\n _;\n }\n\n /// @dev Reverts if the contract is not initializing.\n function _checkInitializing() internal view virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(and(1, sload(s))) {\n mstore(0x00, 0xd7e6bcf8) // `NotInitializing()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Locks any future initializations by setting the initialized version to `2**64 - 1`.\n ///\n /// Calling this in the constructor will prevent the contract from being initialized\n /// or reinitialized. It is recommended to use this to lock implementation contracts\n /// that are designed to be called through proxies.\n ///\n /// Emits an {Initialized} event the first time it is successfully called.\n function _disableInitializers() internal virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n let i := sload(s)\n if and(i, 1) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n let uint64max := shr(192, s) // Computed to save bytecode.\n if iszero(eq(shr(1, i), uint64max)) {\n // Set `initializing` to 0, `initializedVersion` to `2**64 - 1`.\n sstore(s, shl(1, uint64max))\n // Emit the {Initialized} event.\n mstore(0x20, uint64max)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n }\n\n /// @dev Returns the highest version that has been initialized.\n function _getInitializedVersion() internal view virtual returns (uint64 version) {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n version := shr(1, sload(s))\n }\n }\n\n /// @dev Returns whether the contract is currently initializing.\n function _isInitializing() internal view virtual returns (bool result) {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n result := and(1, sload(s))\n }\n }\n}\n"},"@solady/utils/LibClone.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Minimal proxy library.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)\n/// @author Minimal proxy by 0age (https://github.com/0age)\n/// @author Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie\n/// (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)\n/// @author Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\n///\n/// @dev Minimal proxy:\n/// Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime,\n/// it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern,\n/// which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.\n///\n/// @dev Minimal proxy (PUSH0 variant):\n/// This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai.\n/// It is optimized first for minimal runtime gas, then for minimal bytecode.\n/// The PUSH0 clone functions are intentionally postfixed with a jarring \"_PUSH0\" as\n/// many EVM chains may not support the PUSH0 opcode in the early months after Shanghai.\n/// Please use with caution.\n///\n/// @dev Clones with immutable args (CWIA):\n/// The implementation of CWIA here implements a `receive()` method that emits the\n/// `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata,\n/// enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards\n/// composability. The minimal proxy implementation does not offer this feature.\n///\n/// @dev Minimal ERC1967 proxy:\n/// An minimal ERC1967 proxy, intended to be upgraded with UUPS.\n/// This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n/// This proxy is automatically verified on Etherscan.\n///\n/// @dev ERC1967I proxy:\n/// An variant of the minimal ERC1967 proxy, with a special code path that activates\n/// if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the\n/// `implementation` address. The returned implementation is guaranteed to be valid if the\n/// keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.\nlibrary LibClone {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The keccak256 of the deployed code for the ERC1967 proxy.\n bytes32 internal constant ERC1967_CODE_HASH =\n 0xaaa52c8cc8a0e3fd27ce756cc6b4e70c51423e9b597b11f32d3e49f8b1fc890d;\n\n /// @dev The keccak256 of the deployed code for the ERC1967I proxy.\n bytes32 internal constant ERC1967I_CODE_HASH =\n 0xce700223c0d4cea4583409accfc45adac4a093b3519998a9cbbe1504dadba6f7;\n\n /// @dev The keccak256 of the deployed code for the ERC1967 beacon proxy.\n bytes32 internal constant ERC1967_BEACON_PROXY_CODE_HASH =\n 0x14044459af17bc4f0f5aa2f658cb692add77d1302c29fe2aebab005eea9d1162;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Unable to deploy the clone.\n error DeploymentFailed();\n\n /// @dev The salt must start with either the zero address or `by`.\n error SaltDoesNotStartWith();\n\n /// @dev The ETH transfer has failed.\n error ETHTransferFailed();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Deploys a clone of `implementation`.\n function clone(address implementation) internal returns (address instance) {\n instance = clone(0, implementation);\n }\n\n /// @dev Deploys a clone of `implementation`.\n /// Deposits `value` ETH during deployment.\n function clone(uint256 value, address implementation) internal returns (address instance) {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * --------------------------------------------------------------------------+\n * CREATION (9 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * --------------------------------------------------------------------------|\n * RUNTIME (44 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * |\n * ::: keep some values in stack ::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 0 0 | |\n * |\n * ::: copy calldata to memory ::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 cds 0 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 cds 0 0 0 0 | |\n * 37 | CALLDATACOPY | 0 0 0 0 | [0..cds): calldata |\n * |\n * ::: delegate call to the implementation contract :::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 0 0 | [0..cds): calldata |\n * 73 addr | PUSH20 addr | addr 0 cds 0 0 0 0 | [0..cds): calldata |\n * 5a | GAS | gas addr 0 cds 0 0 0 0 | [0..cds): calldata |\n * f4 | DELEGATECALL | success 0 0 | [0..cds): calldata |\n * |\n * ::: copy return data to memory :::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | rds rds success 0 0 | [0..cds): calldata |\n * 93 | SWAP4 | 0 rds success 0 rds | [0..cds): calldata |\n * 80 | DUP1 | 0 0 rds success 0 rds | [0..cds): calldata |\n * 3e | RETURNDATACOPY | success 0 rds | [0..rds): returndata |\n * |\n * 60 0x2a | PUSH1 0x2a | 0x2a success 0 rds | [0..rds): returndata |\n * 57 | JUMPI | 0 rds | [0..rds): returndata |\n * |\n * ::: revert :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * --------------------------------------------------------------------------+\n */\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n instance := create(value, 0x0c, 0x35)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Deploys a deterministic clone of `implementation` with `salt`.\n function cloneDeterministic(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic clone of `implementation` with `salt`.\n /// Deposits `value` ETH during deployment.\n function cloneDeterministic(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n instance := create2(value, 0x0c, 0x35, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the initialization code of the clone of `implementation`.\n function initCode(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(add(result, 0x40), 0x5af43d3d93803e602a57fd5bf30000000000000000000000)\n mstore(add(result, 0x28), implementation)\n mstore(add(result, 0x14), 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n mstore(result, 0x35) // Store the length.\n mstore(0x40, add(result, 0x60)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n hash := keccak256(0x0c, 0x35)\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the address of the deterministic clone of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(address implementation, bytes32 salt, address deployer)\n internal\n pure\n returns (address predicted)\n {\n bytes32 hash = initCodeHash(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL PROXY OPERATIONS (PUSH0 VARIANT) */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Deploys a PUSH0 clone of `implementation`.\n function clone_PUSH0(address implementation) internal returns (address instance) {\n instance = clone_PUSH0(0, implementation);\n }\n\n /// @dev Deploys a PUSH0 clone of `implementation`.\n /// Deposits `value` ETH during deployment.\n function clone_PUSH0(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * --------------------------------------------------------------------------+\n * CREATION (9 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 5f | PUSH0 | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 5f | PUSH0 | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * --------------------------------------------------------------------------|\n * RUNTIME (45 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * |\n * ::: keep some values in stack ::::::::::::::::::::::::::::::::::::::::::: |\n * 5f | PUSH0 | 0 | |\n * 5f | PUSH0 | 0 0 | |\n * |\n * ::: copy calldata to memory ::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 | |\n * 5f | PUSH0 | 0 cds 0 0 | |\n * 5f | PUSH0 | 0 0 cds 0 0 | |\n * 37 | CALLDATACOPY | 0 0 | [0..cds): calldata |\n * |\n * ::: delegate call to the implementation contract :::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 | [0..cds): calldata |\n * 5f | PUSH0 | 0 cds 0 0 | [0..cds): calldata |\n * 73 addr | PUSH20 addr | addr 0 cds 0 0 | [0..cds): calldata |\n * 5a | GAS | gas addr 0 cds 0 0 | [0..cds): calldata |\n * f4 | DELEGATECALL | success | [0..cds): calldata |\n * |\n * ::: copy return data to memory :::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success | [0..cds): calldata |\n * 5f | PUSH0 | 0 rds success | [0..cds): calldata |\n * 5f | PUSH0 | 0 0 rds success | [0..cds): calldata |\n * 3e | RETURNDATACOPY | success | [0..rds): returndata |\n * |\n * 60 0x29 | PUSH1 0x29 | 0x29 success | [0..rds): returndata |\n * 57 | JUMPI | | [0..rds): returndata |\n * |\n * ::: revert :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..rds): returndata |\n * 5f | PUSH0 | 0 rds | [0..rds): returndata |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..rds): returndata |\n * 3d | RETURNDATASIZE | rds | [0..rds): returndata |\n * 5f | PUSH0 | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * --------------------------------------------------------------------------+\n */\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n instance := create(value, 0x0e, 0x36)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n function cloneDeterministic_PUSH0(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic_PUSH0(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n /// Deposits `value` ETH during deployment.\n function cloneDeterministic_PUSH0(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n instance := create2(value, 0x0e, 0x36, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the initialization code of the PUSH0 clone of `implementation`.\n function initCode_PUSH0(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(add(result, 0x40), 0x5af43d5f5f3e6029573d5ffd5b3d5ff300000000000000000000) // 16\n mstore(add(result, 0x26), implementation) // 20\n mstore(add(result, 0x12), 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n mstore(result, 0x36) // Store the length.\n mstore(0x40, add(result, 0x60)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the PUSH0 clone of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash_PUSH0(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n hash := keccak256(0x0e, 0x36)\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the address of the deterministic PUSH0 clone of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress_PUSH0(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHash_PUSH0(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CLONES WITH IMMUTABLE ARGS OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This implementation of CWIA differs from the original implementation.\n // If the calldata is empty, it will emit a `ReceiveETH(uint256)` event and skip the `DELEGATECALL`.\n\n /// @dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n function clone(address implementation, bytes memory data) internal returns (address instance) {\n instance = clone(0, implementation, data);\n }\n\n /// @dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n /// Deposits `value` ETH during deployment.\n function clone(uint256 value, address implementation, bytes memory data)\n internal\n returns (address instance)\n {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n // The `creationSize` is `extraLength + 108`\n // The `runSize` is `creationSize - 10`.\n\n /**\n * ---------------------------------------------------------------------------------------------------+\n * CREATION (10 bytes) |\n * ---------------------------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------------------------|\n * 61 runSize | PUSH2 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------------------------|\n * RUNTIME (98 bytes + extraLength) |\n * ---------------------------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------------------------|\n * |\n * ::: if no calldata, emit event & return w/o `DELEGATECALL` ::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 60 0x2c | PUSH1 0x2c | 0x2c cds | |\n * 57 | JUMPI | | |\n * 34 | CALLVALUE | cv | |\n * 3d | RETURNDATASIZE | 0 cv | |\n * 52 | MSTORE | | [0..0x20): callvalue |\n * 7f sig | PUSH32 0x9e.. | sig | [0..0x20): callvalue |\n * 59 | MSIZE | 0x20 sig | [0..0x20): callvalue |\n * 3d | RETURNDATASIZE | 0 0x20 sig | [0..0x20): callvalue |\n * a1 | LOG1 | | [0..0x20): callvalue |\n * 00 | STOP | | [0..0x20): callvalue |\n * 5b | JUMPDEST | | |\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..cds): calldata |\n * |\n * ::: keep some values in stack :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 0 0 | [0..cds): calldata |\n * 61 extra | PUSH2 extra | e 0 0 0 0 | [0..cds): calldata |\n * |\n * ::: copy extra data to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 80 | DUP1 | e e 0 0 0 0 | [0..cds): calldata |\n * 60 0x62 | PUSH1 0x62 | 0x62 e e 0 0 0 0 | [0..cds): calldata |\n * 36 | CALLDATASIZE | cds 0x62 e e 0 0 0 0 | [0..cds): calldata |\n * 39 | CODECOPY | e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * |\n * ::: delegate call to the implementation contract ::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 01 | ADD | cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 3d | RETURNDATASIZE | 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 73 addr | PUSH20 addr | addr 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 5a | GAS | gas addr 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * f4 | DELEGATECALL | success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * |\n * ::: copy return data to memory ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 3d | RETURNDATASIZE | rds rds success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 93 | SWAP4 | 0 rds success 0 rds | [0..cds): calldata, [cds..cds+e): extraData |\n * 80 | DUP1 | 0 0 rds success 0 rds | [0..cds): calldata, [cds..cds+e): extraData |\n * 3e | RETURNDATACOPY | success 0 rds | [0..rds): returndata |\n * |\n * 60 0x60 | PUSH1 0x60 | 0x60 success 0 rds | [0..rds): returndata |\n * 57 | JUMPI | 0 rds | [0..rds): returndata |\n * |\n * ::: revert ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * ---------------------------------------------------------------------------------------------------+\n */\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n // Do a out-of-gas revert if `extraLength` is too big. 0xffff - 0x62 + 0x01 = 0xff9e.\n // The actual EVM limit may be smaller and may change over time.\n sub(data, add(0x59, lt(extraLength, 0xff9e))),\n or(shl(0x78, add(extraLength, 0x62)), 0xfd6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n instance := create(value, sub(data, 0x4c), add(extraLength, 0x6c))\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Deploys a deterministic clone of `implementation`\n /// with immutable arguments encoded in `data` and `salt`.\n function cloneDeterministic(address implementation, bytes memory data, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic(0, implementation, data, salt);\n }\n\n /// @dev Deploys a deterministic clone of `implementation`\n /// with immutable arguments encoded in `data` and `salt`.\n function cloneDeterministic(\n uint256 value,\n address implementation,\n bytes memory data,\n bytes32 salt\n ) internal returns (address instance) {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n // Do a out-of-gas revert if `extraLength` is too big. 0xffff - 0x62 + 0x01 = 0xff9e.\n // The actual EVM limit may be smaller and may change over time.\n sub(data, add(0x59, lt(extraLength, 0xff9e))),\n or(shl(0x78, add(extraLength, 0x62)), 0xfd6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n instance := create2(value, sub(data, 0x4c), add(extraLength, 0x6c), salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`\n /// using immutable arguments encoded in `data`.\n function initCode(address implementation, bytes memory data)\n internal\n pure\n returns (bytes memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let dataLength := mload(data)\n\n // Do a out-of-gas revert if `dataLength` is too big. 0xffff - 0x02 - 0x62 = 0xff9b.\n // The actual EVM limit may be smaller and may change over time.\n returndatacopy(returndatasize(), returndatasize(), gt(dataLength, 0xff9b))\n\n let o := add(result, 0x8c)\n let end := add(o, dataLength)\n\n // Copy the `data` into `result`.\n for { let d := sub(add(data, 0x20), o) } 1 {} {\n mstore(o, mload(add(o, d)))\n o := add(o, 0x20)\n if iszero(lt(o, end)) { break }\n }\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(add(result, 0x6c), 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(add(result, 0x5f), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n add(result, 0x4b),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n add(result, 0x32),\n 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n add(result, 0x12),\n or(shl(0x78, add(extraLength, 0x62)), 0x6100003d81600a3d39f336602c57343d527f)\n )\n mstore(end, shl(0xf0, extraLength))\n mstore(add(end, 0x02), 0) // Zeroize the slot after the result.\n mstore(result, add(extraLength, 0x6c)) // Store the length.\n mstore(0x40, add(0x22, end)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`\n /// using immutable arguments encoded in `data`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash(address implementation, bytes memory data)\n internal\n pure\n returns (bytes32 hash)\n {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // Do a out-of-gas revert if `dataLength` is too big. 0xffff - 0x02 - 0x62 = 0xff9b.\n // The actual EVM limit may be smaller and may change over time.\n returndatacopy(returndatasize(), returndatasize(), gt(dataLength, 0xff9b))\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n sub(data, 0x5a),\n or(shl(0x78, add(extraLength, 0x62)), 0x6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n hash := keccak256(sub(data, 0x4c), add(extraLength, 0x6c))\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Returns the address of the deterministic clone of\n /// `implementation` using immutable arguments encoded in `data`, with `salt`, by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(\n address implementation,\n bytes memory data,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHash(implementation, data);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL ERC1967 PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: The ERC1967 proxy here is intended to be upgraded with UUPS.\n // This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n\n /// @dev Deploys a minimal ERC1967 proxy with `implementation`.\n function deployERC1967(address implementation) internal returns (address instance) {\n instance = deployERC1967(0, implementation);\n }\n\n /// @dev Deploys a minimal ERC1967 proxy with `implementation`.\n /// Deposits `value` ETH during deployment.\n function deployERC1967(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 impl | PUSH20 impl | impl 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos impl 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot impl 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (61 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * 7f slot | PUSH32 slot | s 0 cds 0 0 | [0..calldatasize): calldata |\n * 54 | SLOAD | i 0 cds 0 0 | [0..calldatasize): calldata |\n * 5a | GAS | g i 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x38 | PUSH1 0x38 | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n instance := create(value, 0x21, 0x5f)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n function deployDeterministicERC1967(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n instance := create2(value, 0x21, 0x5f, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967(address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967(0, implementation, salt);\n }\n\n /// @dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967(uint256 value, address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x21, 0x5f))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x21, 0x5f, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`.\n function initCodeERC1967(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x60),\n 0x3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f300\n )\n mstore(\n add(result, 0x40),\n 0x55f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc\n )\n mstore(add(result, 0x20), or(shl(24, implementation), 0x600951))\n mstore(add(result, 0x09), 0x603d3d8160223d3973)\n mstore(result, 0x5f) // Store the length.\n mstore(0x40, add(result, 0x80)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n hash := keccak256(0x21, 0x5f)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967 proxy of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC1967I PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This proxy has a special code path that activates if `calldatasize() == 1`.\n // This code path skips the delegatecall and directly returns the `implementation` address.\n // The returned implementation is guaranteed to be valid if the keccak256 of the\n // proxy's code is equal to `ERC1967I_CODE_HASH`.\n\n /// @dev Deploys a minimal ERC1967I proxy with `implementation`.\n function deployERC1967I(address implementation) internal returns (address instance) {\n instance = deployERC1967I(0, implementation);\n }\n\n /// @dev Deploys a ERC1967I proxy with `implementation`.\n /// Deposits `value` ETH during deployment.\n function deployERC1967I(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 impl | PUSH20 impl | impl 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos impl 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot impl 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (82 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: check calldatasize ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 58 | PC | 1 cds | |\n * 14 | EQ | eqs | |\n * 60 0x43 | PUSH1 0x43 | dest eqs | |\n * 57 | JUMPI | | |\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * 7f slot | PUSH32 slot | s 0 cds 0 0 | [0..calldatasize): calldata |\n * 54 | SLOAD | i 0 cds 0 0 | [0..calldatasize): calldata |\n * 5a | GAS | g i 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x3E | PUSH1 0x3E | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * |\n * ::: implementation , return :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | |\n * 60 0x20 | PUSH1 0x20 | 32 | |\n * 60 0x0F | PUSH1 0x0F | o 32 | |\n * 3d | RETURNDATASIZE | 0 o 32 | |\n * 39 | CODECOPY | | [0..32): implementation slot |\n * 3d | RETURNDATASIZE | 0 | [0..32): implementation slot |\n * 51 | MLOAD | slot | [0..32): implementation slot |\n * 54 | SLOAD | impl | [0..32): implementation slot |\n * 3d | RETURNDATASIZE | 0 impl | [0..32): implementation slot |\n * 52 | MSTORE | | [0..32): implementation address |\n * 59 | MSIZE | 32 | [0..32): implementation address |\n * 3d | RETURNDATASIZE | 0 32 | [0..32): implementation address |\n * f3 | RETURN | | [0..32): implementation address |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n instance := create(value, 0x0c, 0x74)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n function deployDeterministicERC1967I(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967I(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967I(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967I(address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967I(0, implementation, salt);\n }\n\n /// @dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967I(uint256 value, address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x0c, 0x74))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`.\n function initCodeERC1967I(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x74),\n 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3\n )\n mstore(\n add(result, 0x54),\n 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4\n )\n mstore(add(result, 0x34), 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(add(result, 0x1d), implementation)\n mstore(add(result, 0x09), 0x60523d8160223d3973)\n mstore(add(result, 0x94), 0)\n mstore(result, 0x74) // Store the length.\n mstore(0x40, add(result, 0xa0)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967I(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n hash := keccak256(0x0c, 0x74)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967I proxy of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967I(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967I(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANT ERC1967 BOOTSTRAP OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This enables an ERC1967 proxy to be deployed at a deterministic address\n // independent of the implementation:\n // ```\n // address bootstrap = LibClone.constantERC1967Bootstrap();\n // address instance = LibClone.deployDeterministicERC1967(0, bootstrap, salt);\n // LibClone.bootstrapConstantERC1967(bootstrap, implementation);\n // ```\n\n /// @dev Deploys the constant ERC1967 bootstrap if it has not been deployed.\n function constantERC1967Bootstrap() internal returns (address bootstrap) {\n bootstrap = constantERC1967BootstrapAddress();\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(extcodesize(bootstrap)) {\n mstore(0x20, 0x0894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55)\n mstore(0x00, 0x60258060093d393df358357f36)\n if iszero(create2(0, 0x13, 0x2e, 0)) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Returns the implementation address of the ERC1967 bootstrap for this contract.\n function constantERC1967BootstrapAddress() internal view returns (address bootstrap) {\n bytes32 hash = 0xfe1a42b9c571a6a8c083c94ac67b9cfd74e2582923426aa3b762e3431d717cd1;\n bootstrap = predictDeterministicAddress(hash, bytes32(0), address(this));\n }\n\n /// @dev Replaces the implementation at `instance`.\n function bootstrapERC1967(address instance, address implementation) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, shr(96, shl(96, implementation)))\n if iszero(call(gas(), instance, 0, 0x00, 0x20, codesize(), 0x00)) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL ERC1967 BEACON PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: If you use this proxy, you MUST make sure that the beacon is a\n // valid ERC1967 beacon. This means that the beacon must always return a valid\n // address upon a staticcall to `implementation()`, given sufficient gas.\n // For performance, the deployment operations and the proxy assumes that the\n // beacon is always valid and will NOT validate it.\n\n /// @dev Deploys a minimal ERC1967 beacon proxy.\n function deployERC1967BeaconProxy(address beacon) internal returns (address instance) {\n instance = deployERC1967BeaconProxy(0, beacon);\n }\n\n /// @dev Deploys a minimal ERC1967 beacon proxy.\n /// Deposits `value` ETH during deployment.\n function deployERC1967BeaconProxy(uint256 value, address beacon)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 beac | PUSH20 beac | beac 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos beac 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot beac 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (82 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * |\n * ~~~~~~~ beacon staticcall sub procedure ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |\n * 60 0x20 | PUSH1 0x20 | 32 | |\n * 36 | CALLDATASIZE | cds 32 | |\n * 60 0x04 | PUSH1 0x04 | 4 cds 32 | |\n * 36 | CALLDATASIZE | cds 4 cds 32 | |\n * 63 0x5c60da1b | PUSH4 0x5c60da1b | 0x5c60da1b cds 4 cds 32 | |\n * 60 0xe0 | PUSH1 0xe0 | 224 0x5c60da1b cds 4 cds 32 | |\n * 1b | SHL | sel cds 4 cds 32 | |\n * 36 | CALLDATASIZE | cds sel cds 4 cds 32 | |\n * 52 | MSTORE | cds 4 cds 32 | sel |\n * 7f slot | PUSH32 slot | s cds 4 cds 32 | sel |\n * 54 | SLOAD | beac cds 4 cds 32 | sel |\n * 5a | GAS | g beac cds 4 cds 32 | sel |\n * fa | STATICCALL | succ | impl |\n * 50 | POP | | impl |\n * 36 | CALLDATASIZE | cds | impl |\n * 51 | MLOAD | impl | impl |\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |\n * 5a | GAS | g impl 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x4d | PUSH1 0x4d | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n instance := create(value, 0x0c, 0x74)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n function deployDeterministicERC1967BeaconProxy(address beacon, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967BeaconProxy(0, beacon, salt);\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967BeaconProxy(uint256 value, address beacon, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967BeaconProxy(address beacon, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967BeaconProxy(0, beacon, salt);\n }\n\n /// @dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967BeaconProxy(uint256 value, address beacon, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x0c, 0x74))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 beacon proxy.\n function initCodeERC1967BeaconProxy(address beacon)\n internal\n pure\n returns (bytes memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x74),\n 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3\n )\n mstore(\n add(result, 0x54),\n 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c\n )\n mstore(add(result, 0x34), 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(add(result, 0x1d), beacon)\n mstore(add(result, 0x09), 0x60523d8160223d3973)\n mstore(add(result, 0x94), 0)\n mstore(result, 0x74) // Store the length.\n mstore(0x40, add(result, 0xa0)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 beacon proxy.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967BeaconProxy(address beacon) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n hash := keccak256(0x0c, 0x74)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967 beacon proxy,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967BeaconProxy(\n address beacon,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967BeaconProxy(beacon);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OTHER OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the address when a contract with initialization code hash,\n /// `hash`, is deployed with `salt`, by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(bytes32 hash, bytes32 salt, address deployer)\n internal\n pure\n returns (address predicted)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and store the bytecode hash.\n mstore8(0x00, 0xff) // Write the prefix.\n mstore(0x35, hash)\n mstore(0x01, shl(96, deployer))\n mstore(0x15, salt)\n predicted := keccak256(0x00, 0x55)\n mstore(0x35, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Requires that `salt` starts with either the zero address or `by`.\n function checkStartsWith(bytes32 salt, address by) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n // If the salt does not start with the zero address or `by`.\n if iszero(or(iszero(shr(96, salt)), eq(shr(96, shl(96, by)), shr(96, salt)))) {\n mstore(0x00, 0x0c4549ef) // `SaltDoesNotStartWith()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/LibPRNG.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for generating pseudorandom numbers.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)\n/// @author LazyShuffler based on NextShuffler by aschlosberg (divergencearran)\n/// (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)\nlibrary LibPRNG {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The initial length must be greater than zero and less than `2**32 - 1`.\n error InvalidInitialLazyShufflerLength();\n\n /// @dev The new length must not be less than the current length.\n error InvalidNewLazyShufflerLength();\n\n /// @dev The lazy shuffler has not been initialized.\n error LazyShufflerNotInitialized();\n\n /// @dev Cannot double initialize the lazy shuffler.\n error LazyShufflerAlreadyInitialized();\n\n /// @dev The lazy shuffle has finished.\n error LazyShuffleFinished();\n\n /// @dev The queried index is out of bounds.\n error LazyShufflerGetOutOfBounds();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The scalar of ETH and most ERC20s.\n uint256 internal constant WAD = 1e18;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STRUCTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev A pseudorandom number state in memory.\n struct PRNG {\n uint256 state;\n }\n\n /// @dev A lazy Fisher-Yates shuffler for a range `[0..n)` in storage.\n struct LazyShuffler {\n // Bits Layout:\n // - [0..31] `numShuffled`\n // - [32..223] `permutationSlot`\n // - [224..255] `length`\n uint256 _state;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Seeds the `prng` with `state`.\n function seed(PRNG memory prng, uint256 state) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(prng, state)\n }\n }\n\n /// @dev Returns the next pseudorandom uint256.\n /// All bits of the returned uint256 pass the NIST Statistical Test Suite.\n function next(PRNG memory prng) internal pure returns (uint256 result) {\n // We simply use `keccak256` for a great balance between\n // runtime gas costs, bytecode size, and statistical properties.\n //\n // A high-quality LCG with a 32-byte state\n // is only about 30% more gas efficient during runtime,\n // but requires a 32-byte multiplier, which can cause bytecode bloat\n // when this function is inlined.\n //\n // Using this method is about 2x more efficient than\n // `nextRandomness = uint256(keccak256(abi.encode(randomness)))`.\n /// @solidity memory-safe-assembly\n assembly {\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n }\n }\n\n /// @dev Returns a pseudorandom uint256, uniformly distributed\n /// between 0 (inclusive) and `upper` (exclusive).\n /// If your modulus is big, this method is recommended\n /// for uniform sampling to avoid modulo bias.\n /// For uniform sampling across all uint256 values,\n /// or for small enough moduli such that the bias is neligible,\n /// use {next} instead.\n function uniform(PRNG memory prng, uint256 upper) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n for {} 1 {} {\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n if iszero(lt(result, mod(sub(0, upper), upper))) { break }\n }\n result := mod(result, upper)\n }\n }\n\n /// @dev Shuffles the array in-place with Fisher-Yates shuffle.\n function shuffle(PRNG memory prng, uint256[] memory a) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n let n := mload(a)\n let w := not(0)\n let mask := shr(128, w)\n if n {\n for { a := add(a, 0x20) } 1 {} {\n // We can just directly use `keccak256`, cuz\n // the other approaches don't save much.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n\n // Note that there will be a very tiny modulo bias\n // if the length of the array is not a power of 2.\n // For all practical purposes, it is negligible\n // and will not be a fairness or security concern.\n {\n let j := add(a, shl(5, mod(shr(128, r), n)))\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let i := add(a, shl(5, n))\n let t := mload(i)\n mstore(i, mload(j))\n mstore(j, t)\n }\n\n {\n let j := add(a, shl(5, mod(and(r, mask), n)))\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let i := add(a, shl(5, n))\n let t := mload(i)\n mstore(i, mload(j))\n mstore(j, t)\n }\n }\n }\n }\n }\n\n /// @dev Shuffles the bytes in-place with Fisher-Yates shuffle.\n function shuffle(PRNG memory prng, bytes memory a) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n let n := mload(a)\n let w := not(0)\n let mask := shr(128, w)\n if n {\n let b := add(a, 0x01)\n for { a := add(a, 0x20) } 1 {} {\n // We can just directly use `keccak256`, cuz\n // the other approaches don't save much.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n\n // Note that there will be a very tiny modulo bias\n // if the length of the array is not a power of 2.\n // For all practical purposes, it is negligible\n // and will not be a fairness or security concern.\n {\n let o := mod(shr(128, r), n)\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let t := mload(add(b, n))\n mstore8(add(a, n), mload(add(b, o)))\n mstore8(add(a, o), t)\n }\n\n {\n let o := mod(and(r, mask), n)\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let t := mload(add(b, n))\n mstore8(add(a, n), mload(add(b, o)))\n mstore8(add(a, o), t)\n }\n }\n }\n }\n }\n\n /// @dev Returns a sample from the standard normal distribution denominated in `WAD`.\n function standardNormalWad(PRNG memory prng) internal pure returns (int256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Technically, this is the Irwin-Hall distribution with 20 samples.\n // The chance of drawing a sample outside 10 σ from the standard normal distribution\n // is ≈ 0.000000000000000000000015, which is insignificant for most practical purposes.\n // Passes the Kolmogorov-Smirnov test for 200k samples. Uses about 322 gas.\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n let n := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43 // Prime.\n let a := 0x100000000000000000000000000000051 // Prime and a primitive root of `n`.\n let m := 0x1fffffffffffffff1fffffffffffffff1fffffffffffffff1fffffffffffffff\n let s := 0x1000000000000000100000000000000010000000000000001\n let r1 := mulmod(result, a, n)\n let r2 := mulmod(r1, a, n)\n let r3 := mulmod(r2, a, n)\n // forgefmt: disable-next-item\n result := sub(sar(96, mul(26614938895861601847173011183,\n add(add(shr(192, mul(s, add(and(m, result), and(m, r1)))),\n shr(192, mul(s, add(and(m, r2), and(m, r3))))),\n shr(192, mul(s, and(m, mulmod(r3, a, n))))))), 7745966692414833770)\n }\n }\n\n /// @dev Returns a sample from the unit exponential distribution denominated in `WAD`.\n function exponentialWad(PRNG memory prng) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Passes the Kolmogorov-Smirnov test for 200k samples.\n // Gas usage varies, starting from about 172+ gas.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n let p := shl(129, r)\n let w := shl(1, r)\n if iszero(gt(w, p)) {\n let n := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43 // Prime.\n let a := 0x100000000000000000000000000000051 // Prime and a primitive root of `n`.\n for {} 1 {} {\n r := mulmod(r, a, n)\n if iszero(lt(shl(129, r), w)) {\n r := mulmod(r, a, n)\n result := add(1000000000000000000, result)\n w := shl(1, r)\n p := shl(129, r)\n if iszero(lt(w, p)) { break }\n continue\n }\n w := shl(1, r)\n if iszero(lt(w, shl(129, r))) { break }\n }\n }\n result := add(div(p, shl(129, 170141183460469231732)), result)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE-BASED RANGE LAZY SHUFFLING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Initializes the state for lazy-shuffling the range `[0..n)`.\n /// Reverts if `n == 0 || n >= 2**32 - 1`.\n /// Reverts if `$` has already been initialized.\n /// If you need to reduce the length after initialization, just use a fresh new `$`.\n function initialize(LazyShuffler storage $, uint256 n) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(lt(sub(n, 1), 0xfffffffe)) {\n mstore(0x00, 0x83b53941) // `InvalidInitialLazyShufflerLength()`.\n revert(0x1c, 0x04)\n }\n if sload($.slot) {\n mstore(0x00, 0x0c9f11f2) // `LazyShufflerAlreadyInitialized()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, $.slot)\n sstore($.slot, or(shl(224, n), shl(32, shr(64, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Increases the length of `$`.\n /// Reverts if `$` has not been initialized.\n function grow(LazyShuffler storage $, uint256 n) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n // If the new length is smaller than the old length, revert.\n if lt(n, shr(224, state)) {\n mstore(0x00, 0xbed37c6e) // `InvalidNewLazyShufflerLength()`.\n revert(0x1c, 0x04)\n }\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n sstore($.slot, or(shl(224, n), shr(32, shl(32, state))))\n }\n }\n\n /// @dev Restarts the shuffler by setting `numShuffled` to zero,\n /// such that all elements can be drawn again.\n /// Restarting does NOT clear the internal permutation, nor changes the length.\n /// Even with the same sequence of randomness, reshuffling can yield different results.\n function restart(LazyShuffler storage $) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot)\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n sstore($.slot, shl(32, shr(32, state)))\n }\n }\n\n /// @dev Returns the number of elements that have been shuffled.\n function numShuffled(LazyShuffler storage $) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := and(0xffffffff, sload($.slot))\n }\n }\n\n /// @dev Returns the length of `$`.\n /// Returns zero if `$` is not initialized, else a non-zero value less than `2**32 - 1`.\n function length(LazyShuffler storage $) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := shr(224, sload($.slot))\n }\n }\n\n /// @dev Returns if `$` has been initialized.\n function initialized(LazyShuffler storage $) internal view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := iszero(iszero(sload($.slot)))\n }\n }\n\n /// @dev Returns if there are any more elements left to shuffle.\n /// Reverts if `$` is not initialized.\n function finished(LazyShuffler storage $) internal view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n result := eq(shr(224, state), and(0xffffffff, state))\n }\n }\n\n /// @dev Returns the current value stored at `index`, accounting for all historical shuffling.\n /// Reverts if `index` is greater than or equal to the `length` of `$`.\n function get(LazyShuffler storage $, uint256 index) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n let n := shr(224, state) // Length of `$`.\n if iszero(lt(index, n)) {\n mstore(0x00, 0x61367cc4) // `LazyShufflerGetOutOfBounds()`.\n revert(0x1c, 0x04)\n }\n let u32 := gt(n, 0xfffe)\n let s := add(shr(sub(4, u32), index), shr(64, shl(32, state))) // Bucket slot.\n let o := shl(add(4, u32), and(index, shr(u32, 15))) // Bucket slot offset (bits).\n let m := sub(shl(shl(u32, 16), 1), 1) // Value mask.\n result := and(m, shr(o, sload(s)))\n result := xor(index, mul(xor(index, sub(result, 1)), iszero(iszero(result))))\n }\n }\n\n /// @dev Does a single Fisher-Yates shuffle step, increments the `numShuffled` in `$`,\n /// and returns the next value in the shuffled range.\n /// `randomness` can be taken from a good-enough source, or a higher quality source like VRF.\n /// Reverts if there are no more values to shuffle, which includes the case if `$` is not initialized.\n function next(LazyShuffler storage $, uint256 randomness) internal returns (uint256 chosen) {\n /// @solidity memory-safe-assembly\n assembly {\n function _get(u32_, state_, i_) -> _value {\n let s_ := add(shr(sub(4, u32_), i_), shr(64, shl(32, state_))) // Bucket slot.\n let o_ := shl(add(4, u32_), and(i_, shr(u32_, 15))) // Bucket slot offset (bits).\n let m_ := sub(shl(shl(u32_, 16), 1), 1) // Value mask.\n _value := and(m_, shr(o_, sload(s_)))\n _value := xor(i_, mul(xor(i_, sub(_value, 1)), iszero(iszero(_value))))\n }\n function _set(u32_, state_, i_, value_) {\n let s_ := add(shr(sub(4, u32_), i_), shr(64, shl(32, state_))) // Bucket slot.\n let o_ := shl(add(4, u32_), and(i_, shr(u32_, 15))) // Bucket slot offset (bits).\n let m_ := sub(shl(shl(u32_, 16), 1), 1) // Value mask.\n let v_ := sload(s_) // Bucket slot value.\n value_ := mul(iszero(eq(i_, value_)), add(value_, 1))\n sstore(s_, xor(v_, shl(o_, and(m_, xor(shr(o_, v_), value_)))))\n }\n let state := sload($.slot) // The packed value at `$`.\n let shuffled := and(0xffffffff, state) // Number of elements shuffled.\n let n := shr(224, state) // Length of `$`.\n let remainder := sub(n, shuffled) // Number of elements left to shuffle.\n if iszero(remainder) {\n mstore(0x00, 0x51065f79) // `LazyShuffleFinished()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, randomness) // (Re)hash the randomness so that we don't\n mstore(0x20, shuffled) // need to expect guarantees on its distribution.\n let index := add(mod(keccak256(0x00, 0x40), remainder), shuffled)\n chosen := _get(gt(n, 0xfffe), state, index)\n _set(gt(n, 0xfffe), state, index, _get(gt(n, 0xfffe), state, shuffled))\n _set(gt(n, 0xfffe), state, shuffled, chosen)\n sstore($.slot, add(1, state)) // Increment the `numShuffled` by 1, and store it.\n }\n }\n}\n"},"@solady/utils/LibString.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for converting numbers into strings and other string operations.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\n///\n/// @dev Note:\n/// For performance and bytecode compactness, most of the string operations are restricted to\n/// byte strings (7-bit ASCII), except where otherwise specified.\n/// Usage of byte string operations on charsets with runes spanning two or more bytes\n/// can lead to undefined behavior.\nlibrary LibString {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The length of the output is too small to contain all the hex digits.\n error HexLengthInsufficient();\n\n /// @dev The length of the string is more than 32 bytes.\n error TooBigForSmallString();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The constant returned when the `search` is not found in the string.\n uint256 internal constant NOT_FOUND = type(uint256).max;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* DECIMAL OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the base 10 decimal representation of `value`.\n function toString(uint256 value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n // The maximum value of a uint256 contains 78 digits (1 byte per digit), but\n // we allocate 0xa0 bytes to keep the free memory pointer 32-byte word aligned.\n // We will need 1 word for the trailing zeros padding, 1 word for the length,\n // and 3 words for a maximum of 78 digits.\n str := add(mload(0x40), 0x80)\n // Update the free memory pointer to allocate.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end of the memory to calculate the length later.\n let end := str\n\n let w := not(0) // Tsk.\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let temp := value } 1 {} {\n str := add(str, w) // `sub(str, 1)`.\n // Write the character to the pointer.\n // The ASCII index of the '0' character is 48.\n mstore8(str, add(48, mod(temp, 10)))\n // Keep dividing `temp` until zero.\n temp := div(temp, 10)\n if iszero(temp) { break }\n }\n\n let length := sub(end, str)\n // Move the pointer 32 bytes leftwards to make room for the length.\n str := sub(str, 0x20)\n // Store the length.\n mstore(str, length)\n }\n }\n\n /// @dev Returns the base 10 decimal representation of `value`.\n function toString(int256 value) internal pure returns (string memory str) {\n if (value >= 0) {\n return toString(uint256(value));\n }\n unchecked {\n str = toString(~uint256(value) + 1);\n }\n /// @solidity memory-safe-assembly\n assembly {\n // We still have some spare memory space on the left,\n // as we have allocated 3 words (96 bytes) for up to 78 digits.\n let length := mload(str) // Load the string length.\n mstore(str, 0x2d) // Store the '-' character.\n str := sub(str, 1) // Move back the string pointer by a byte.\n mstore(str, add(length, 1)) // Update the string length.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HEXADECIMAL OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the hexadecimal representation of `value`,\n /// left-padded to an input length of `length` bytes.\n /// The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n /// giving a total length of `length * 2 + 2` bytes.\n /// Reverts if `length` is too small for the output to contain all the digits.\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value, length);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`,\n /// left-padded to an input length of `length` bytes.\n /// The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n /// giving a total length of `length * 2` bytes.\n /// Reverts if `length` is too small for the output to contain all the digits.\n function toHexStringNoPrefix(uint256 value, uint256 length)\n internal\n pure\n returns (string memory str)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // We need 0x20 bytes for the trailing zeros padding, `length * 2` bytes\n // for the digits, 0x02 bytes for the prefix, and 0x20 bytes for the length.\n // We add 0x20 to the total and round down to a multiple of 0x20.\n // (0x20 + 0x20 + 0x02 + 0x20) = 0x62.\n str := add(mload(0x40), and(add(shl(1, length), 0x42), not(0x1f)))\n // Allocate the memory.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end to calculate the length later.\n let end := str\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let start := sub(str, add(length, length))\n let w := not(1) // Tsk.\n let temp := value\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for {} 1 {} {\n str := add(str, w) // `sub(str, 2)`.\n mstore8(add(str, 1), mload(and(temp, 15)))\n mstore8(str, mload(and(shr(4, temp), 15)))\n temp := shr(8, temp)\n if iszero(xor(str, start)) { break }\n }\n\n if temp {\n mstore(0x00, 0x2194895a) // `HexLengthInsufficient()`.\n revert(0x1c, 0x04)\n }\n\n // Compute the string's length.\n let strLength := sub(end, str)\n // Move the pointer and write the length.\n str := sub(str, 0x20)\n mstore(str, strLength)\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n /// As address are 20 bytes long, the output will left-padded to have\n /// a length of `20 * 2 + 2` bytes.\n function toHexString(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\".\n /// The output excludes leading \"0\" from the `toHexString` output.\n /// `0x00: \"0x0\", 0x01: \"0x1\", 0x12: \"0x12\", 0x123: \"0x123\"`.\n function toMinimalHexString(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let o := eq(byte(0, mload(add(str, 0x20))), 0x30) // Whether leading zero is present.\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(add(str, o), 0x3078) // Write the \"0x\" prefix, accounting for leading zero.\n str := sub(add(str, o), 2) // Move the pointer, accounting for leading zero.\n mstore(str, sub(strLength, o)) // Write the length, accounting for leading zero.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output excludes leading \"0\" from the `toHexStringNoPrefix` output.\n /// `0x00: \"0\", 0x01: \"1\", 0x12: \"12\", 0x123: \"123\"`.\n function toMinimalHexStringNoPrefix(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let o := eq(byte(0, mload(add(str, 0x20))), 0x30) // Whether leading zero is present.\n let strLength := mload(str) // Get the length.\n str := add(str, o) // Move the pointer, accounting for leading zero.\n mstore(str, sub(strLength, o)) // Write the length, accounting for leading zero.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is encoded using 2 hexadecimal digits per byte.\n /// As address are 20 bytes long, the output will left-padded to have\n /// a length of `20 * 2` bytes.\n function toHexStringNoPrefix(uint256 value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n // We need 0x20 bytes for the trailing zeros padding, 0x20 bytes for the length,\n // 0x02 bytes for the prefix, and 0x40 bytes for the digits.\n // The next multiple of 0x20 above (0x20 + 0x20 + 0x02 + 0x40) is 0xa0.\n str := add(mload(0x40), 0x80)\n // Allocate the memory.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end to calculate the length later.\n let end := str\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let w := not(1) // Tsk.\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let temp := value } 1 {} {\n str := add(str, w) // `sub(str, 2)`.\n mstore8(add(str, 1), mload(and(temp, 15)))\n mstore8(str, mload(and(shr(4, temp), 15)))\n temp := shr(8, temp)\n if iszero(temp) { break }\n }\n\n // Compute the string's length.\n let strLength := sub(end, str)\n // Move the pointer and write the length.\n str := sub(str, 0x20)\n mstore(str, strLength)\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\", encoded using 2 hexadecimal digits per byte,\n /// and the alphabets are capitalized conditionally according to\n /// https://eips.ethereum.org/EIPS/eip-55\n function toHexStringChecksummed(address value) internal pure returns (string memory str) {\n str = toHexString(value);\n /// @solidity memory-safe-assembly\n assembly {\n let mask := shl(6, div(not(0), 255)) // `0b010000000100000000 ...`\n let o := add(str, 0x22)\n let hashed := and(keccak256(o, 40), mul(34, mask)) // `0b10001000 ... `\n let t := shl(240, 136) // `0b10001000 << 240`\n for { let i := 0 } 1 {} {\n mstore(add(i, i), mul(t, byte(i, hashed)))\n i := add(i, 1)\n if eq(i, 20) { break }\n }\n mstore(o, xor(mload(o), shr(1, and(mload(0x00), and(mload(o), mask)))))\n o := add(o, 0x20)\n mstore(o, xor(mload(o), shr(1, and(mload(0x20), and(mload(o), mask)))))\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n function toHexString(address value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexStringNoPrefix(address value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n str := mload(0x40)\n\n // Allocate the memory.\n // We need 0x20 bytes for the trailing zeros padding, 0x20 bytes for the length,\n // 0x02 bytes for the prefix, and 0x28 bytes for the digits.\n // The next multiple of 0x20 above (0x20 + 0x20 + 0x02 + 0x28) is 0x80.\n mstore(0x40, add(str, 0x80))\n\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n str := add(str, 2)\n mstore(str, 40)\n\n let o := add(str, 0x20)\n mstore(add(o, 40), 0)\n\n value := shl(96, value)\n\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let i := 0 } 1 {} {\n let p := add(o, add(i, i))\n let temp := byte(i, value)\n mstore8(add(p, 1), mload(and(temp, 15)))\n mstore8(p, mload(shr(4, temp)))\n i := add(i, 1)\n if eq(i, 20) { break }\n }\n }\n }\n\n /// @dev Returns the hex encoded string from the raw bytes.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexString(bytes memory raw) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(raw);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hex encoded string from the raw bytes.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexStringNoPrefix(bytes memory raw) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(raw)\n str := add(mload(0x40), 2) // Skip 2 bytes for the optional prefix.\n mstore(str, add(length, length)) // Store the length of the output.\n\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let o := add(str, 0x20)\n let end := add(raw, length)\n\n for {} iszero(eq(raw, end)) {} {\n raw := add(raw, 1)\n mstore8(add(o, 1), mload(and(mload(raw), 15)))\n mstore8(o, mload(and(shr(4, mload(raw)), 15)))\n o := add(o, 2)\n }\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* RUNE STRING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the number of UTF characters in the string.\n function runeCount(string memory s) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n if mload(s) {\n mstore(0x00, div(not(0), 255))\n mstore(0x20, 0x0202020202020202020202020202020202020202020202020303030304040506)\n let o := add(s, 0x20)\n let end := add(o, mload(s))\n for { result := 1 } 1 { result := add(result, 1) } {\n o := add(o, byte(0, mload(shr(250, mload(o)))))\n if iszero(lt(o, end)) { break }\n }\n }\n }\n }\n\n /// @dev Returns if this string is a 7-bit ASCII string.\n /// (i.e. all characters codes are in [0..127])\n function is7BitASCII(string memory s) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let mask := shl(7, div(not(0), 255))\n result := 1\n let n := mload(s)\n if n {\n let o := add(s, 0x20)\n let end := add(o, n)\n let last := mload(end)\n mstore(end, 0)\n for {} 1 {} {\n if and(mask, mload(o)) {\n result := 0\n break\n }\n o := add(o, 0x20)\n if iszero(lt(o, end)) { break }\n }\n mstore(end, last)\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* BYTE STRING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // For performance and bytecode compactness, byte string operations are restricted\n // to 7-bit ASCII strings. All offsets are byte offsets, not UTF character offsets.\n // Usage of byte string operations on charsets with runes spanning two or more bytes\n // can lead to undefined behavior.\n\n /// @dev Returns `subject` all occurrences of `search` replaced with `replacement`.\n function replace(string memory subject, string memory search, string memory replacement)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n let searchLength := mload(search)\n let replacementLength := mload(replacement)\n\n subject := add(subject, 0x20)\n search := add(search, 0x20)\n replacement := add(replacement, 0x20)\n result := add(mload(0x40), 0x20)\n\n let subjectEnd := add(subject, subjectLength)\n if iszero(gt(searchLength, subjectLength)) {\n let subjectSearchEnd := add(sub(subjectEnd, searchLength), 1)\n let h := 0\n if iszero(lt(searchLength, 0x20)) { h := keccak256(search, searchLength) }\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(search)\n for {} 1 {} {\n let t := mload(subject)\n // Whether the first `searchLength % 32` bytes of\n // `subject` and `search` matches.\n if iszero(shr(m, xor(t, s))) {\n if h {\n if iszero(eq(keccak256(subject, searchLength), h)) {\n mstore(result, t)\n result := add(result, 1)\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n // Copy the `replacement` one word at a time.\n for { let o := 0 } 1 {} {\n mstore(add(result, o), mload(add(replacement, o)))\n o := add(o, 0x20)\n if iszero(lt(o, replacementLength)) { break }\n }\n result := add(result, replacementLength)\n subject := add(subject, searchLength)\n if searchLength {\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n mstore(result, t)\n result := add(result, 1)\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n }\n }\n\n let resultRemainder := result\n result := add(mload(0x40), 0x20)\n let k := add(sub(resultRemainder, result), sub(subjectEnd, subject))\n // Copy the rest of the string one word at a time.\n for {} lt(subject, subjectEnd) {} {\n mstore(resultRemainder, mload(subject))\n resultRemainder := add(resultRemainder, 0x20)\n subject := add(subject, 0x20)\n }\n result := sub(result, 0x20)\n let last := add(add(result, 0x20), k) // Zeroize the slot after the string.\n mstore(last, 0)\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n mstore(result, k) // Store the length.\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from left to right, starting from `from`.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function indexOf(string memory subject, string memory search, uint256 from)\n internal\n pure\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n for { let subjectLength := mload(subject) } 1 {} {\n if iszero(mload(search)) {\n if iszero(gt(from, subjectLength)) {\n result := from\n break\n }\n result := subjectLength\n break\n }\n let searchLength := mload(search)\n let subjectStart := add(subject, 0x20)\n\n result := not(0) // Initialize to `NOT_FOUND`.\n\n subject := add(subjectStart, from)\n let end := add(sub(add(subjectStart, subjectLength), searchLength), 1)\n\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(add(search, 0x20))\n\n if iszero(and(lt(subject, end), lt(from, subjectLength))) { break }\n\n if iszero(lt(searchLength, 0x20)) {\n for { let h := keccak256(add(search, 0x20), searchLength) } 1 {} {\n if iszero(shr(m, xor(mload(subject), s))) {\n if eq(keccak256(subject, searchLength), h) {\n result := sub(subject, subjectStart)\n break\n }\n }\n subject := add(subject, 1)\n if iszero(lt(subject, end)) { break }\n }\n break\n }\n for {} 1 {} {\n if iszero(shr(m, xor(mload(subject), s))) {\n result := sub(subject, subjectStart)\n break\n }\n subject := add(subject, 1)\n if iszero(lt(subject, end)) { break }\n }\n break\n }\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from left to right.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function indexOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256 result)\n {\n result = indexOf(subject, search, 0);\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from right to left, starting from `from`.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function lastIndexOf(string memory subject, string memory search, uint256 from)\n internal\n pure\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n for {} 1 {} {\n result := not(0) // Initialize to `NOT_FOUND`.\n let searchLength := mload(search)\n if gt(searchLength, mload(subject)) { break }\n let w := result\n\n let fromMax := sub(mload(subject), searchLength)\n if iszero(gt(fromMax, from)) { from := fromMax }\n\n let end := add(add(subject, 0x20), w)\n subject := add(add(subject, 0x20), from)\n if iszero(gt(subject, end)) { break }\n // As this function is not too often used,\n // we shall simply use keccak256 for smaller bytecode size.\n for { let h := keccak256(add(search, 0x20), searchLength) } 1 {} {\n if eq(keccak256(subject, searchLength), h) {\n result := sub(subject, add(end, 1))\n break\n }\n subject := add(subject, w) // `sub(subject, 1)`.\n if iszero(gt(subject, end)) { break }\n }\n break\n }\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from right to left.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function lastIndexOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256 result)\n {\n result = lastIndexOf(subject, search, uint256(int256(-1)));\n }\n\n /// @dev Returns true if `search` is found in `subject`, false otherwise.\n function contains(string memory subject, string memory search) internal pure returns (bool) {\n return indexOf(subject, search) != NOT_FOUND;\n }\n\n /// @dev Returns whether `subject` starts with `search`.\n function startsWith(string memory subject, string memory search)\n internal\n pure\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let searchLength := mload(search)\n // Just using keccak256 directly is actually cheaper.\n // forgefmt: disable-next-item\n result := and(\n iszero(gt(searchLength, mload(subject))),\n eq(\n keccak256(add(subject, 0x20), searchLength),\n keccak256(add(search, 0x20), searchLength)\n )\n )\n }\n }\n\n /// @dev Returns whether `subject` ends with `search`.\n function endsWith(string memory subject, string memory search)\n internal\n pure\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let searchLength := mload(search)\n let subjectLength := mload(subject)\n // Whether `search` is not longer than `subject`.\n let withinRange := iszero(gt(searchLength, subjectLength))\n // Just using keccak256 directly is actually cheaper.\n // forgefmt: disable-next-item\n result := and(\n withinRange,\n eq(\n keccak256(\n // `subject + 0x20 + max(subjectLength - searchLength, 0)`.\n add(add(subject, 0x20), mul(withinRange, sub(subjectLength, searchLength))),\n searchLength\n ),\n keccak256(add(search, 0x20), searchLength)\n )\n )\n }\n }\n\n /// @dev Returns `subject` repeated `times`.\n function repeat(string memory subject, uint256 times)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n if iszero(or(iszero(times), iszero(subjectLength))) {\n subject := add(subject, 0x20)\n result := mload(0x40)\n let output := add(result, 0x20)\n for {} 1 {} {\n // Copy the `subject` one word at a time.\n for { let o := 0 } 1 {} {\n mstore(add(output, o), mload(add(subject, o)))\n o := add(o, 0x20)\n if iszero(lt(o, subjectLength)) { break }\n }\n output := add(output, subjectLength)\n times := sub(times, 1)\n if iszero(times) { break }\n }\n mstore(output, 0) // Zeroize the slot after the string.\n let resultLength := sub(output, add(result, 0x20))\n mstore(result, resultLength) // Store the length.\n // Allocate the memory.\n mstore(0x40, add(result, add(resultLength, 0x20)))\n }\n }\n }\n\n /// @dev Returns a copy of `subject` sliced from `start` to `end` (exclusive).\n /// `start` and `end` are byte offsets.\n function slice(string memory subject, uint256 start, uint256 end)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n if iszero(gt(subjectLength, end)) { end := subjectLength }\n if iszero(gt(subjectLength, start)) { start := subjectLength }\n if lt(start, end) {\n result := mload(0x40)\n let resultLength := sub(end, start)\n mstore(result, resultLength)\n subject := add(subject, start)\n let w := not(0x1f)\n // Copy the `subject` one word at a time, backwards.\n for { let o := and(add(resultLength, 0x1f), w) } 1 {} {\n mstore(add(result, o), mload(add(subject, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n // Zeroize the slot after the string.\n mstore(add(add(result, 0x20), resultLength), 0)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, add(result, and(add(resultLength, 0x3f), w)))\n }\n }\n }\n\n /// @dev Returns a copy of `subject` sliced from `start` to the end of the string.\n /// `start` is a byte offset.\n function slice(string memory subject, uint256 start)\n internal\n pure\n returns (string memory result)\n {\n result = slice(subject, start, uint256(int256(-1)));\n }\n\n /// @dev Returns all the indices of `search` in `subject`.\n /// The indices are byte offsets.\n function indicesOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256[] memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n let searchLength := mload(search)\n\n if iszero(gt(searchLength, subjectLength)) {\n subject := add(subject, 0x20)\n search := add(search, 0x20)\n result := add(mload(0x40), 0x20)\n\n let subjectStart := subject\n let subjectSearchEnd := add(sub(add(subject, subjectLength), searchLength), 1)\n let h := 0\n if iszero(lt(searchLength, 0x20)) { h := keccak256(search, searchLength) }\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(search)\n for {} 1 {} {\n let t := mload(subject)\n // Whether the first `searchLength % 32` bytes of\n // `subject` and `search` matches.\n if iszero(shr(m, xor(t, s))) {\n if h {\n if iszero(eq(keccak256(subject, searchLength), h)) {\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n // Append to `result`.\n mstore(result, sub(subject, subjectStart))\n result := add(result, 0x20)\n // Advance `subject` by `searchLength`.\n subject := add(subject, searchLength)\n if searchLength {\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n }\n let resultEnd := result\n // Assign `result` to the free memory pointer.\n result := mload(0x40)\n // Store the length of `result`.\n mstore(result, shr(5, sub(resultEnd, add(result, 0x20))))\n // Allocate memory for result.\n // We allocate one more word, so this array can be recycled for {split}.\n mstore(0x40, add(resultEnd, 0x20))\n }\n }\n }\n\n /// @dev Returns a arrays of strings based on the `delimiter` inside of the `subject` string.\n function split(string memory subject, string memory delimiter)\n internal\n pure\n returns (string[] memory result)\n {\n uint256[] memory indices = indicesOf(subject, delimiter);\n /// @solidity memory-safe-assembly\n assembly {\n let w := not(0x1f)\n let indexPtr := add(indices, 0x20)\n let indicesEnd := add(indexPtr, shl(5, add(mload(indices), 1)))\n mstore(add(indicesEnd, w), mload(subject))\n mstore(indices, add(mload(indices), 1))\n let prevIndex := 0\n for {} 1 {} {\n let index := mload(indexPtr)\n mstore(indexPtr, 0x60)\n if iszero(eq(index, prevIndex)) {\n let element := mload(0x40)\n let elementLength := sub(index, prevIndex)\n mstore(element, elementLength)\n // Copy the `subject` one word at a time, backwards.\n for { let o := and(add(elementLength, 0x1f), w) } 1 {} {\n mstore(add(element, o), mload(add(add(subject, prevIndex), o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n // Zeroize the slot after the string.\n mstore(add(add(element, 0x20), elementLength), 0)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, add(element, and(add(elementLength, 0x3f), w)))\n // Store the `element` into the array.\n mstore(indexPtr, element)\n }\n prevIndex := add(index, mload(delimiter))\n indexPtr := add(indexPtr, 0x20)\n if iszero(lt(indexPtr, indicesEnd)) { break }\n }\n result := indices\n if iszero(mload(delimiter)) {\n result := add(indices, 0x20)\n mstore(result, sub(mload(indices), 2))\n }\n }\n }\n\n /// @dev Returns a concatenated string of `a` and `b`.\n /// Cheaper than `string.concat()` and does not de-align the free memory pointer.\n function concat(string memory a, string memory b)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let w := not(0x1f)\n result := mload(0x40)\n let aLength := mload(a)\n // Copy `a` one word at a time, backwards.\n for { let o := and(add(aLength, 0x20), w) } 1 {} {\n mstore(add(result, o), mload(add(a, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n let bLength := mload(b)\n let output := add(result, aLength)\n // Copy `b` one word at a time, backwards.\n for { let o := and(add(bLength, 0x20), w) } 1 {} {\n mstore(add(output, o), mload(add(b, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n let totalLength := add(aLength, bLength)\n let last := add(add(result, 0x20), totalLength)\n // Zeroize the slot after the string.\n mstore(last, 0)\n // Stores the length.\n mstore(result, totalLength)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, and(add(last, 0x1f), w))\n }\n }\n\n /// @dev Returns a copy of the string in either lowercase or UPPERCASE.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function toCase(string memory subject, bool toUpper)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(subject)\n if length {\n result := add(mload(0x40), 0x20)\n subject := add(subject, 1)\n let flags := shl(add(70, shl(5, toUpper)), 0x3ffffff)\n let w := not(0)\n for { let o := length } 1 {} {\n o := add(o, w)\n let b := and(0xff, mload(add(subject, o)))\n mstore8(add(result, o), xor(b, and(shr(b, flags), 0x20)))\n if iszero(o) { break }\n }\n result := mload(0x40)\n mstore(result, length) // Store the length.\n let last := add(add(result, 0x20), length)\n mstore(last, 0) // Zeroize the slot after the string.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n }\n\n /// @dev Returns a string from a small bytes32 string.\n /// `s` must be null-terminated, or behavior will be undefined.\n function fromSmallString(bytes32 s) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let n := 0\n for {} byte(n, s) { n := add(n, 1) } {} // Scan for '\\0'.\n mstore(result, n)\n let o := add(result, 0x20)\n mstore(o, s)\n mstore(add(o, n), 0)\n mstore(0x40, add(result, 0x40))\n }\n }\n\n /// @dev Returns the small string, with all bytes after the first null byte zeroized.\n function normalizeSmallString(bytes32 s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n for {} byte(result, s) { result := add(result, 1) } {} // Scan for '\\0'.\n mstore(0x00, s)\n mstore(result, 0x00)\n result := mload(0x00)\n }\n }\n\n /// @dev Returns the string as a normalized null-terminated small string.\n function toSmallString(string memory s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(s)\n if iszero(lt(result, 33)) {\n mstore(0x00, 0xec92f9a3) // `TooBigForSmallString()`.\n revert(0x1c, 0x04)\n }\n result := shl(shl(3, sub(32, result)), mload(add(s, result)))\n }\n }\n\n /// @dev Returns a lowercased copy of the string.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function lower(string memory subject) internal pure returns (string memory result) {\n result = toCase(subject, false);\n }\n\n /// @dev Returns an UPPERCASED copy of the string.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function upper(string memory subject) internal pure returns (string memory result) {\n result = toCase(subject, true);\n }\n\n /// @dev Escapes the string to be used within HTML tags.\n function escapeHTML(string memory s) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n let end := add(s, mload(s))\n result := add(mload(0x40), 0x20)\n // Store the bytes of the packed offsets and strides into the scratch space.\n // `packed = (stride << 5) | offset`. Max offset is 20. Max stride is 6.\n mstore(0x1f, 0x900094)\n mstore(0x08, 0xc0000000a6ab)\n // Store \""&'<>\" into the scratch space.\n mstore(0x00, shl(64, 0x2671756f743b26616d703b262333393b266c743b2667743b))\n for {} iszero(eq(s, end)) {} {\n s := add(s, 1)\n let c := and(mload(s), 0xff)\n // Not in `[\"\\\"\",\"'\",\"&\",\"<\",\">\"]`.\n if iszero(and(shl(c, 1), 0x500000c400000000)) {\n mstore8(result, c)\n result := add(result, 1)\n continue\n }\n let t := shr(248, mload(c))\n mstore(result, mload(and(t, 0x1f)))\n result := add(result, shr(5, t))\n }\n let last := result\n mstore(last, 0) // Zeroize the slot after the string.\n result := mload(0x40)\n mstore(result, sub(last, add(result, 0x20))) // Store the length.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Escapes the string to be used within double-quotes in a JSON.\n /// If `addDoubleQuotes` is true, the result will be enclosed in double-quotes.\n function escapeJSON(string memory s, bool addDoubleQuotes)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let end := add(s, mload(s))\n result := add(mload(0x40), 0x20)\n if addDoubleQuotes {\n mstore8(result, 34)\n result := add(1, result)\n }\n // Store \"\\\\u0000\" in scratch space.\n // Store \"0123456789abcdef\" in scratch space.\n // Also, store `{0x08:\"b\", 0x09:\"t\", 0x0a:\"n\", 0x0c:\"f\", 0x0d:\"r\"}`.\n // into the scratch space.\n mstore(0x15, 0x5c75303030303031323334353637383961626364656662746e006672)\n // Bitmask for detecting `[\"\\\"\",\"\\\\\"]`.\n let e := or(shl(0x22, 1), shl(0x5c, 1))\n for {} iszero(eq(s, end)) {} {\n s := add(s, 1)\n let c := and(mload(s), 0xff)\n if iszero(lt(c, 0x20)) {\n if iszero(and(shl(c, 1), e)) {\n // Not in `[\"\\\"\",\"\\\\\"]`.\n mstore8(result, c)\n result := add(result, 1)\n continue\n }\n mstore8(result, 0x5c) // \"\\\\\".\n mstore8(add(result, 1), c)\n result := add(result, 2)\n continue\n }\n if iszero(and(shl(c, 1), 0x3700)) {\n // Not in `[\"\\b\",\"\\t\",\"\\n\",\"\\f\",\"\\d\"]`.\n mstore8(0x1d, mload(shr(4, c))) // Hex value.\n mstore8(0x1e, mload(and(c, 15))) // Hex value.\n mstore(result, mload(0x19)) // \"\\\\u00XX\".\n result := add(result, 6)\n continue\n }\n mstore8(result, 0x5c) // \"\\\\\".\n mstore8(add(result, 1), mload(add(c, 8)))\n result := add(result, 2)\n }\n if addDoubleQuotes {\n mstore8(result, 34)\n result := add(1, result)\n }\n let last := result\n mstore(last, 0) // Zeroize the slot after the string.\n result := mload(0x40)\n mstore(result, sub(last, add(result, 0x20))) // Store the length.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Escapes the string to be used within double-quotes in a JSON.\n function escapeJSON(string memory s) internal pure returns (string memory result) {\n result = escapeJSON(s, false);\n }\n\n /// @dev Returns whether `a` equals `b`.\n function eq(string memory a, string memory b) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := eq(keccak256(add(a, 0x20), mload(a)), keccak256(add(b, 0x20), mload(b)))\n }\n }\n\n /// @dev Returns whether `a` equals `b`, where `b` is a null-terminated small string.\n function eqs(string memory a, bytes32 b) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n // These should be evaluated on compile time, as far as possible.\n let m := not(shl(7, div(not(iszero(b)), 255))) // `0x7f7f ...`.\n let x := not(or(m, or(b, add(m, and(b, m)))))\n let r := shl(7, iszero(iszero(shr(128, x))))\n r := or(r, shl(6, iszero(iszero(shr(64, shr(r, x))))))\n r := or(r, shl(5, lt(0xffffffff, shr(r, x))))\n r := or(r, shl(4, lt(0xffff, shr(r, x))))\n r := or(r, shl(3, lt(0xff, shr(r, x))))\n // forgefmt: disable-next-item\n result := gt(eq(mload(a), add(iszero(x), xor(31, shr(3, r)))),\n xor(shr(add(8, r), b), shr(add(8, r), mload(add(a, 0x20)))))\n }\n }\n\n /// @dev Packs a single string with its length into a single word.\n /// Returns `bytes32(0)` if the length is zero or greater than 31.\n function packOne(string memory a) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // We don't need to zero right pad the string,\n // since this is our own custom non-standard packing scheme.\n result :=\n mul(\n // Load the length and the bytes.\n mload(add(a, 0x1f)),\n // `length != 0 && length < 32`. Abuses underflow.\n // Assumes that the length is valid and within the block gas limit.\n lt(sub(mload(a), 1), 0x1f)\n )\n }\n }\n\n /// @dev Unpacks a string packed using {packOne}.\n /// Returns the empty string if `packed` is `bytes32(0)`.\n /// If `packed` is not an output of {packOne}, the output behavior is undefined.\n function unpackOne(bytes32 packed) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the free memory pointer.\n result := mload(0x40)\n // Allocate 2 words (1 for the length, 1 for the bytes).\n mstore(0x40, add(result, 0x40))\n // Zeroize the length slot.\n mstore(result, 0)\n // Store the length and bytes.\n mstore(add(result, 0x1f), packed)\n // Right pad with zeroes.\n mstore(add(add(result, 0x20), mload(result)), 0)\n }\n }\n\n /// @dev Packs two strings with their lengths into a single word.\n /// Returns `bytes32(0)` if combined length is zero or greater than 30.\n function packTwo(string memory a, string memory b) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let aLength := mload(a)\n // We don't need to zero right pad the strings,\n // since this is our own custom non-standard packing scheme.\n result :=\n mul(\n // Load the length and the bytes of `a` and `b`.\n or(\n shl(shl(3, sub(0x1f, aLength)), mload(add(a, aLength))),\n mload(sub(add(b, 0x1e), aLength))\n ),\n // `totalLength != 0 && totalLength < 31`. Abuses underflow.\n // Assumes that the lengths are valid and within the block gas limit.\n lt(sub(add(aLength, mload(b)), 1), 0x1e)\n )\n }\n }\n\n /// @dev Unpacks strings packed using {packTwo}.\n /// Returns the empty strings if `packed` is `bytes32(0)`.\n /// If `packed` is not an output of {packTwo}, the output behavior is undefined.\n function unpackTwo(bytes32 packed)\n internal\n pure\n returns (string memory resultA, string memory resultB)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the free memory pointer.\n resultA := mload(0x40)\n resultB := add(resultA, 0x40)\n // Allocate 2 words for each string (1 for the length, 1 for the byte). Total 4 words.\n mstore(0x40, add(resultB, 0x40))\n // Zeroize the length slots.\n mstore(resultA, 0)\n mstore(resultB, 0)\n // Store the lengths and bytes.\n mstore(add(resultA, 0x1f), packed)\n mstore(add(resultB, 0x1f), mload(add(add(resultA, 0x20), mload(resultA))))\n // Right pad with zeroes.\n mstore(add(add(resultA, 0x20), mload(resultA)), 0)\n mstore(add(add(resultB, 0x20), mload(resultB)), 0)\n }\n }\n\n /// @dev Directly returns `a` without copying.\n function directReturn(string memory a) internal pure {\n assembly {\n // Assumes that the string does not start from the scratch space.\n let retStart := sub(a, 0x20)\n let retUnpaddedSize := add(mload(a), 0x40)\n // Right pad with zeroes. Just in case the string is produced\n // by a method that doesn't zero right pad.\n mstore(add(retStart, retUnpaddedSize), 0)\n // Store the return offset.\n mstore(retStart, 0x20)\n // End the transaction, returning the string.\n return(retStart, and(not(0x1f), add(0x1f, retUnpaddedSize)))\n }\n }\n}\n"},"@solady/utils/LibZip.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for compressing and decompressing bytes.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)\n/// @author Calldata compression by clabby (https://github.com/clabby/op-kompressor)\n/// @author FastLZ by ariya (https://github.com/ariya/FastLZ)\n///\n/// @dev Note:\n/// The accompanying solady.js library includes implementations of\n/// FastLZ and calldata operations for convenience.\nlibrary LibZip {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* FAST LZ OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // LZ77 implementation based on FastLZ.\n // Equivalent to level 1 compression and decompression at the following commit:\n // https://github.com/ariya/FastLZ/commit/344eb4025f9ae866ebf7a2ec48850f7113a97a42\n // Decompression is backwards compatible.\n\n /// @dev Returns the compressed `data`.\n function flzCompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n function ms8(d_, v_) -> _d {\n mstore8(d_, v_)\n _d := add(d_, 1)\n }\n function u24(p_) -> _u {\n _u := mload(p_)\n _u := or(shl(16, byte(2, _u)), or(shl(8, byte(1, _u)), byte(0, _u)))\n }\n function cmp(p_, q_, e_) -> _l {\n for { e_ := sub(e_, q_) } lt(_l, e_) { _l := add(_l, 1) } {\n e_ := mul(iszero(byte(0, xor(mload(add(p_, _l)), mload(add(q_, _l))))), e_)\n }\n }\n function literals(runs_, src_, dest_) -> _o {\n for { _o := dest_ } iszero(lt(runs_, 0x20)) { runs_ := sub(runs_, 0x20) } {\n mstore(ms8(_o, 31), mload(src_))\n _o := add(_o, 0x21)\n src_ := add(src_, 0x20)\n }\n if iszero(runs_) { leave }\n mstore(ms8(_o, sub(runs_, 1)), mload(src_))\n _o := add(1, add(_o, runs_))\n }\n function mt(l_, d_, o_) -> _o {\n for { d_ := sub(d_, 1) } iszero(lt(l_, 263)) { l_ := sub(l_, 262) } {\n o_ := ms8(ms8(ms8(o_, add(224, shr(8, d_))), 253), and(0xff, d_))\n }\n if iszero(lt(l_, 7)) {\n _o := ms8(ms8(ms8(o_, add(224, shr(8, d_))), sub(l_, 7)), and(0xff, d_))\n leave\n }\n _o := ms8(ms8(o_, add(shl(5, l_), shr(8, d_))), and(0xff, d_))\n }\n function setHash(i_, v_) {\n let p_ := add(mload(0x40), shl(2, i_))\n mstore(p_, xor(mload(p_), shl(224, xor(shr(224, mload(p_)), v_))))\n }\n function getHash(i_) -> _h {\n _h := shr(224, mload(add(mload(0x40), shl(2, i_))))\n }\n function hash(v_) -> _r {\n _r := and(shr(19, mul(2654435769, v_)), 0x1fff)\n }\n function setNextHash(ip_, ipStart_) -> _ip {\n setHash(hash(u24(ip_)), sub(ip_, ipStart_))\n _ip := add(ip_, 1)\n }\n result := mload(0x40)\n codecopy(result, codesize(), 0x8000) // Zeroize the hashmap.\n let op := add(result, 0x8000)\n let a := add(data, 0x20)\n let ipStart := a\n let ipLimit := sub(add(ipStart, mload(data)), 13)\n for { let ip := add(2, a) } lt(ip, ipLimit) {} {\n let r := 0\n let d := 0\n for {} 1 {} {\n let s := u24(ip)\n let h := hash(s)\n r := add(ipStart, getHash(h))\n setHash(h, sub(ip, ipStart))\n d := sub(ip, r)\n if iszero(lt(ip, ipLimit)) { break }\n ip := add(ip, 1)\n if iszero(gt(d, 0x1fff)) { if eq(s, u24(r)) { break } }\n }\n if iszero(lt(ip, ipLimit)) { break }\n ip := sub(ip, 1)\n if gt(ip, a) { op := literals(sub(ip, a), a, op) }\n let l := cmp(add(r, 3), add(ip, 3), add(ipLimit, 9))\n op := mt(l, d, op)\n ip := setNextHash(setNextHash(add(ip, l), ipStart), ipStart)\n a := ip\n }\n // Copy the result to compact the memory, overwriting the hashmap.\n let end := sub(literals(sub(add(ipStart, mload(data)), a), a, op), 0x7fe0)\n let o := add(result, 0x20)\n mstore(result, sub(end, o)) // Store the length.\n for {} iszero(gt(o, end)) { o := add(o, 0x20) } { mstore(o, mload(add(o, 0x7fe0))) }\n mstore(end, 0) // Zeroize the slot after the string.\n mstore(0x40, add(end, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Returns the decompressed `data`.\n function flzDecompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let op := add(result, 0x20)\n let end := add(add(data, 0x20), mload(data))\n for { data := add(data, 0x20) } lt(data, end) {} {\n let w := mload(data)\n let c := byte(0, w)\n let t := shr(5, c)\n if iszero(t) {\n mstore(op, mload(add(data, 1)))\n data := add(data, add(2, c))\n op := add(op, add(1, c))\n continue\n }\n for {\n let g := eq(t, 7)\n let l := add(2, xor(t, mul(g, xor(t, add(7, byte(1, w)))))) // M\n let s := add(add(shl(8, and(0x1f, c)), byte(add(1, g), w)), 1) // R\n let r := sub(op, s)\n let f := xor(s, mul(gt(s, 0x20), xor(s, 0x20)))\n let j := 0\n } 1 {} {\n mstore(add(op, j), mload(add(r, j)))\n j := add(j, f)\n if lt(j, l) { continue }\n data := add(data, add(2, g))\n op := add(op, l)\n break\n }\n }\n mstore(result, sub(op, add(result, 0x20))) // Store the length.\n mstore(op, 0) // Zeroize the slot after the string.\n mstore(0x40, add(op, 0x20)) // Allocate the memory.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CALLDATA OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Calldata compression and decompression using selective run length encoding:\n // - Sequences of 0x00 (up to 128 consecutive).\n // - Sequences of 0xff (up to 32 consecutive).\n //\n // A run length encoded block consists of two bytes:\n // (0) 0x00\n // (1) A control byte with the following bit layout:\n // - [7] `0: 0x00, 1: 0xff`.\n // - [0..6] `runLength - 1`.\n //\n // The first 4 bytes are bitwise negated so that the compressed calldata\n // can be dispatched into the `fallback` and `receive` functions.\n\n /// @dev Returns the compressed `data`.\n function cdCompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n function rle(v_, o_, d_) -> _o, _d {\n mstore(o_, shl(240, or(and(0xff, add(d_, 0xff)), and(0x80, v_))))\n _o := add(o_, 2)\n }\n result := mload(0x40)\n let o := add(result, 0x20)\n let z := 0 // Number of consecutive 0x00.\n let y := 0 // Number of consecutive 0xff.\n for { let end := add(data, mload(data)) } iszero(eq(data, end)) {} {\n data := add(data, 1)\n let c := byte(31, mload(data))\n if iszero(c) {\n if y { o, y := rle(0xff, o, y) }\n z := add(z, 1)\n if eq(z, 0x80) { o, z := rle(0x00, o, 0x80) }\n continue\n }\n if eq(c, 0xff) {\n if z { o, z := rle(0x00, o, z) }\n y := add(y, 1)\n if eq(y, 0x20) { o, y := rle(0xff, o, 0x20) }\n continue\n }\n if y { o, y := rle(0xff, o, y) }\n if z { o, z := rle(0x00, o, z) }\n mstore8(o, c)\n o := add(o, 1)\n }\n if y { o, y := rle(0xff, o, y) }\n if z { o, z := rle(0x00, o, z) }\n // Bitwise negate the first 4 bytes.\n mstore(add(result, 4), not(mload(add(result, 4))))\n mstore(result, sub(o, add(result, 0x20))) // Store the length.\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Returns the decompressed `data`.\n function cdDecompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n if mload(data) {\n result := mload(0x40)\n let o := add(result, 0x20)\n let s := add(data, 4)\n let v := mload(s)\n let end := add(data, mload(data))\n mstore(s, not(v)) // Bitwise negate the first 4 bytes.\n for {} lt(data, end) {} {\n data := add(data, 1)\n let c := byte(31, mload(data))\n if iszero(c) {\n data := add(data, 1)\n let d := byte(31, mload(data))\n // Fill with either 0xff or 0x00.\n mstore(o, not(0))\n if iszero(gt(d, 0x7f)) { codecopy(o, codesize(), add(d, 1)) }\n o := add(o, add(and(d, 0x7f), 1))\n continue\n }\n mstore8(o, c)\n o := add(o, 1)\n }\n mstore(s, v) // Restore the first 4 bytes.\n mstore(result, sub(o, add(result, 0x20))) // Store the length.\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n }\n\n /// @dev To be called in the `fallback` function.\n /// ```\n /// fallback() external payable { LibZip.cdFallback(); }\n /// receive() external payable {} // Silence compiler warning to add a `receive` function.\n /// ```\n /// For efficiency, this function will directly return the results, terminating the context.\n /// If called internally, it must be called at the end of the function.\n function cdFallback() internal {\n assembly {\n if iszero(calldatasize()) { return(calldatasize(), calldatasize()) }\n let o := 0\n let f := not(3) // For negating the first 4 bytes.\n for { let i := 0 } lt(i, calldatasize()) {} {\n let c := byte(0, xor(add(i, f), calldataload(i)))\n i := add(i, 1)\n if iszero(c) {\n let d := byte(0, xor(add(i, f), calldataload(i)))\n i := add(i, 1)\n // Fill with either 0xff or 0x00.\n mstore(o, not(0))\n if iszero(gt(d, 0x7f)) { codecopy(o, codesize(), add(d, 1)) }\n o := add(o, add(and(d, 0x7f), 1))\n continue\n }\n mstore8(o, c)\n o := add(o, 1)\n }\n let success := delegatecall(gas(), address(), 0x00, o, codesize(), 0x00)\n returndatacopy(0x00, 0x00, returndatasize())\n if iszero(success) { revert(0x00, returndatasize()) }\n return(0x00, returndatasize())\n }\n }\n}\n"},"@solady/utils/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Reentrancy guard mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)\nabstract contract ReentrancyGuard {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Unauthorized reentrant call.\n error Reentrancy();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to: `uint72(bytes9(keccak256(\"_REENTRANCY_GUARD_SLOT\")))`.\n /// 9 bytes is large enough to avoid collisions with lower slots,\n /// but not too large to result in excessive bytecode bloat.\n uint256 private constant _REENTRANCY_GUARD_SLOT = 0x929eee149b4bd21268;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* REENTRANCY GUARD */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Guards a function from reentrancy.\n modifier nonReentrant() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n if eq(sload(_REENTRANCY_GUARD_SLOT), address()) {\n mstore(0x00, 0xab143c06) // `Reentrancy()`.\n revert(0x1c, 0x04)\n }\n sstore(_REENTRANCY_GUARD_SLOT, address())\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n sstore(_REENTRANCY_GUARD_SLOT, codesize())\n }\n }\n\n /// @dev Guards a view function from read-only reentrancy.\n modifier nonReadReentrant() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n if eq(sload(_REENTRANCY_GUARD_SLOT), address()) {\n mstore(0x00, 0xab143c06) // `Reentrancy()`.\n revert(0x1c, 0x04)\n }\n }\n _;\n }\n}\n"},"@solady/utils/SafeTransferLib.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)\n/// @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\n///\n/// @dev Note:\n/// - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.\n/// - For ERC20s, this implementation won't check that a token has code,\n/// responsibility is delegated to the caller.\nlibrary SafeTransferLib {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ETH transfer has failed.\n error ETHTransferFailed();\n\n /// @dev The ERC20 `transferFrom` has failed.\n error TransferFromFailed();\n\n /// @dev The ERC20 `transfer` has failed.\n error TransferFailed();\n\n /// @dev The ERC20 `approve` has failed.\n error ApproveFailed();\n\n /// @dev The Permit2 operation has failed.\n error Permit2Failed();\n\n /// @dev The Permit2 amount must be less than `2**160 - 1`.\n error Permit2AmountOverflow();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Suggested gas stipend for contract receiving ETH that disallows any storage writes.\n uint256 internal constant GAS_STIPEND_NO_STORAGE_WRITES = 2300;\n\n /// @dev Suggested gas stipend for contract receiving ETH to perform a few\n /// storage reads and writes, but low enough to prevent griefing.\n uint256 internal constant GAS_STIPEND_NO_GRIEF = 100000;\n\n /// @dev The unique EIP-712 domain domain separator for the DAI token contract.\n bytes32 internal constant DAI_DOMAIN_SEPARATOR =\n 0xdbb8cf42e1ecb028be3f3dbc922e1d878b963f411dc388ced501601c60f7c6f7;\n\n /// @dev The address for the WETH9 contract on Ethereum mainnet.\n address internal constant WETH9 = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n /// @dev The canonical Permit2 address.\n /// [Github](https://github.com/Uniswap/permit2)\n /// [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n address internal constant PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ETH OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // If the ETH transfer MUST succeed with a reasonable gas budget, use the force variants.\n //\n // The regular variants:\n // - Forwards all remaining gas to the target.\n // - Reverts if the target reverts.\n // - Reverts if the current contract has insufficient balance.\n //\n // The force variants:\n // - Forwards with an optional gas stipend\n // (defaults to `GAS_STIPEND_NO_GRIEF`, which is sufficient for most cases).\n // - If the target reverts, or if the gas stipend is exhausted,\n // creates a temporary contract to force send the ETH via `SELFDESTRUCT`.\n // Future compatible with `SENDALL`: https://eips.ethereum.org/EIPS/eip-4758.\n // - Reverts if the current contract has insufficient balance.\n //\n // The try variants:\n // - Forwards with a mandatory gas stipend.\n // - Instead of reverting, returns whether the transfer succeeded.\n\n /// @dev Sends `amount` (in wei) ETH to `to`.\n function safeTransferETH(address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(call(gas(), to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Sends all the ETH in the current contract to `to`.\n function safeTransferAllETH(address to) internal {\n /// @solidity memory-safe-assembly\n assembly {\n // Transfer all the ETH and check if it succeeded or not.\n if iszero(call(gas(), to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Force sends `amount` (in wei) ETH to `to`, with a `gasStipend`.\n function forceSafeTransferETH(address to, uint256 amount, uint256 gasStipend) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if lt(selfbalance(), amount) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n if iszero(call(gasStipend, to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(amount, 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends all the ETH in the current contract to `to`, with a `gasStipend`.\n function forceSafeTransferAllETH(address to, uint256 gasStipend) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(call(gasStipend, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(selfbalance(), 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends `amount` (in wei) ETH to `to`, with `GAS_STIPEND_NO_GRIEF`.\n function forceSafeTransferETH(address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if lt(selfbalance(), amount) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n if iszero(call(GAS_STIPEND_NO_GRIEF, to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(amount, 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends all the ETH in the current contract to `to`, with `GAS_STIPEND_NO_GRIEF`.\n function forceSafeTransferAllETH(address to) internal {\n /// @solidity memory-safe-assembly\n assembly {\n // forgefmt: disable-next-item\n if iszero(call(GAS_STIPEND_NO_GRIEF, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(selfbalance(), 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Sends `amount` (in wei) ETH to `to`, with a `gasStipend`.\n function trySafeTransferETH(address to, uint256 amount, uint256 gasStipend)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n success := call(gasStipend, to, amount, codesize(), 0x00, codesize(), 0x00)\n }\n }\n\n /// @dev Sends all the ETH in the current contract to `to`, with a `gasStipend`.\n function trySafeTransferAllETH(address to, uint256 gasStipend)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n success := call(gasStipend, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n /// Reverts upon failure.\n ///\n /// The `from` account must have at least `amount` approved for\n /// the current contract to manage.\n function safeTransferFrom(address token, address from, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, amount) // Store the `amount` argument.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x23b872dd000000000000000000000000) // `transferFrom(address,address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n ///\n /// The `from` account must have at least `amount` approved for the current contract to manage.\n function trySafeTransferFrom(address token, address from, address to, uint256 amount)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, amount) // Store the `amount` argument.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x23b872dd000000000000000000000000) // `transferFrom(address,address,uint256)`.\n success :=\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends all of ERC20 `token` from `from` to `to`.\n /// Reverts upon failure.\n ///\n /// The `from` account must have their entire balance approved for the current contract to manage.\n function safeTransferAllFrom(address token, address from, address to)\n internal\n returns (uint256 amount)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x70a08231000000000000000000000000) // `balanceOf(address)`.\n // Read the balance, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x1c, 0x24, 0x60, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, 0x23b872dd) // `transferFrom(address,address,uint256)`.\n amount := mload(0x60) // The `amount` is already at 0x60. We'll need to return it.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from the current contract to `to`.\n /// Reverts upon failure.\n function safeTransfer(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0xa9059cbb000000000000000000000000) // `transfer(address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sends all of ERC20 `token` from the current contract to `to`.\n /// Reverts upon failure.\n function safeTransferAll(address token, address to) internal returns (uint256 amount) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, 0x70a08231) // Store the function selector of `balanceOf(address)`.\n mstore(0x20, address()) // Store the address of the current contract.\n // Read the balance, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x1c, 0x24, 0x34, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x14, to) // Store the `to` argument.\n amount := mload(0x34) // The `amount` is already at 0x34. We'll need to return it.\n mstore(0x00, 0xa9059cbb000000000000000000000000) // `transfer(address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n /// Reverts upon failure.\n function safeApprove(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n // Perform the approval, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x3e3f8f73) // `ApproveFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n /// If the initial attempt to approve fails, attempts to reset the approved amount to zero,\n /// then retries the approval again (some tokens, e.g. USDT, requires this).\n /// Reverts upon failure.\n function safeApproveWithRetry(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n // Perform the approval, retrying upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x34, 0) // Store 0 for the `amount`.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n pop(call(gas(), token, 0, 0x10, 0x44, codesize(), 0x00)) // Reset the approval.\n mstore(0x34, amount) // Store back the original `amount`.\n // Retry the approval, reverting upon failure.\n if iszero(\n and(\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x3e3f8f73) // `ApproveFailed()`.\n revert(0x1c, 0x04)\n }\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Returns the amount of ERC20 `token` owned by `account`.\n /// Returns zero if the `token` does not exist.\n function balanceOf(address token, address account) internal view returns (uint256 amount) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, account) // Store the `account` argument.\n mstore(0x00, 0x70a08231000000000000000000000000) // `balanceOf(address)`.\n amount :=\n mul( // The arguments of `mul` are evaluated from right to left.\n mload(0x20),\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x10, 0x24, 0x20, 0x20)\n )\n )\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n /// If the initial attempt fails, try to use Permit2 to transfer the token.\n /// Reverts upon failure.\n ///\n /// The `from` account must have at least `amount` approved for the current contract to manage.\n function safeTransferFrom2(address token, address from, address to, uint256 amount) internal {\n if (!trySafeTransferFrom(token, from, to, amount)) {\n permit2TransferFrom(token, from, to, amount);\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to` via Permit2.\n /// Reverts upon failure.\n function permit2TransferFrom(address token, address from, address to, uint256 amount)\n internal\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n mstore(add(m, 0x74), shr(96, shl(96, token)))\n mstore(add(m, 0x54), amount)\n mstore(add(m, 0x34), to)\n mstore(add(m, 0x20), shl(96, from))\n // `transferFrom(address,address,uint160,address)`.\n mstore(m, 0x36c78516000000000000000000000000)\n let p := PERMIT2\n let exists := eq(chainid(), 1)\n if iszero(exists) { exists := iszero(iszero(extcodesize(p))) }\n if iszero(and(call(gas(), p, 0, add(m, 0x10), 0x84, codesize(), 0x00), exists)) {\n mstore(0x00, 0x7939f4248757f0fd) // `TransferFromFailed()` or `Permit2AmountOverflow()`.\n revert(add(0x18, shl(2, iszero(iszero(shr(160, amount))))), 0x04)\n }\n }\n }\n\n /// @dev Permit a user to spend a given amount of\n /// another user's tokens via native EIP-2612 permit if possible, falling\n /// back to Permit2 if native permit fails or is not implemented on the token.\n function permit2(\n address token,\n address owner,\n address spender,\n uint256 amount,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n bool success;\n /// @solidity memory-safe-assembly\n assembly {\n for {} shl(96, xor(token, WETH9)) {} {\n mstore(0x00, 0x3644e515) // `DOMAIN_SEPARATOR()`.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n lt(iszero(mload(0x00)), eq(returndatasize(), 0x20)), // Returns 1 non-zero word.\n // Gas stipend to limit gas burn for tokens that don't refund gas when\n // an non-existing function is called. 5K should be enough for a SLOAD.\n staticcall(5000, token, 0x1c, 0x04, 0x00, 0x20)\n )\n ) { break }\n // After here, we can be sure that token is a contract.\n let m := mload(0x40)\n mstore(add(m, 0x34), spender)\n mstore(add(m, 0x20), shl(96, owner))\n mstore(add(m, 0x74), deadline)\n if eq(mload(0x00), DAI_DOMAIN_SEPARATOR) {\n mstore(0x14, owner)\n mstore(0x00, 0x7ecebe00000000000000000000000000) // `nonces(address)`.\n mstore(add(m, 0x94), staticcall(gas(), token, 0x10, 0x24, add(m, 0x54), 0x20))\n mstore(m, 0x8fcbaf0c000000000000000000000000) // `IDAIPermit.permit`.\n // `nonces` is already at `add(m, 0x54)`.\n // `1` is already stored at `add(m, 0x94)`.\n mstore(add(m, 0xb4), and(0xff, v))\n mstore(add(m, 0xd4), r)\n mstore(add(m, 0xf4), s)\n success := call(gas(), token, 0, add(m, 0x10), 0x104, codesize(), 0x00)\n break\n }\n mstore(m, 0xd505accf000000000000000000000000) // `IERC20Permit.permit`.\n mstore(add(m, 0x54), amount)\n mstore(add(m, 0x94), and(0xff, v))\n mstore(add(m, 0xb4), r)\n mstore(add(m, 0xd4), s)\n success := call(gas(), token, 0, add(m, 0x10), 0xe4, codesize(), 0x00)\n break\n }\n }\n if (!success) simplePermit2(token, owner, spender, amount, deadline, v, r, s);\n }\n\n /// @dev Simple permit on the Permit2 contract.\n function simplePermit2(\n address token,\n address owner,\n address spender,\n uint256 amount,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n mstore(m, 0x927da105) // `allowance(address,address,address)`.\n {\n let addressMask := shr(96, not(0))\n mstore(add(m, 0x20), and(addressMask, owner))\n mstore(add(m, 0x40), and(addressMask, token))\n mstore(add(m, 0x60), and(addressMask, spender))\n mstore(add(m, 0xc0), and(addressMask, spender))\n }\n let p := mul(PERMIT2, iszero(shr(160, amount)))\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x5f), // Returns 3 words: `amount`, `expiration`, `nonce`.\n staticcall(gas(), p, add(m, 0x1c), 0x64, add(m, 0x60), 0x60)\n )\n ) {\n mstore(0x00, 0x6b836e6b8757f0fd) // `Permit2Failed()` or `Permit2AmountOverflow()`.\n revert(add(0x18, shl(2, iszero(p))), 0x04)\n }\n mstore(m, 0x2b67b570) // `Permit2.permit` (PermitSingle variant).\n // `owner` is already `add(m, 0x20)`.\n // `token` is already at `add(m, 0x40)`.\n mstore(add(m, 0x60), amount)\n mstore(add(m, 0x80), 0xffffffffffff) // `expiration = type(uint48).max`.\n // `nonce` is already at `add(m, 0xa0)`.\n // `spender` is already at `add(m, 0xc0)`.\n mstore(add(m, 0xe0), deadline)\n mstore(add(m, 0x100), 0x100) // `signature` offset.\n mstore(add(m, 0x120), 0x41) // `signature` length.\n mstore(add(m, 0x140), r)\n mstore(add(m, 0x160), s)\n mstore(add(m, 0x180), shl(248, v))\n if iszero(call(gas(), p, 0, add(m, 0x1c), 0x184, codesize(), 0x00)) {\n mstore(0x00, 0x6b836e6b) // `Permit2Failed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/SignatureCheckerLib.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Signature verification helper that supports both ECDSA signatures from EOAs\n/// and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\n///\n/// @dev Note:\n/// - The signature checking functions use the ecrecover precompile (0x1).\n/// - The `bytes memory signature` variants use the identity precompile (0x4)\n/// to copy memory internally.\n/// - Unlike ECDSA signatures, contract signatures are revocable.\n/// - As of Solady version 0.0.134, all `bytes signature` variants accept both\n/// regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.\n/// See: https://eips.ethereum.org/EIPS/eip-2098\n/// This is for calldata efficiency on smart accounts prevalent on L2s.\n///\n/// WARNING! Do NOT use signatures as unique identifiers:\n/// - Use a nonce in the digest to prevent replay attacks on the same contract.\n/// - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.\n/// EIP-712 also enables readable signing of typed data for better user safety.\n/// This implementation does NOT check if a signature is non-malleable.\nlibrary SignatureCheckerLib {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* SIGNATURE CHECKING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `signature` is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x40, mload(add(signature, 0x20))) // `r`.\n if eq(mload(signature), 64) {\n let vs := mload(add(signature, 0x40))\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n if eq(mload(signature), 65) {\n mstore(0x20, byte(0, mload(add(signature, 0x60)))) // `v`.\n mstore(0x60, mload(add(signature, 0x40))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n // Copy the `signature` over.\n let n := add(0x20, mload(signature))\n pop(staticcall(gas(), 4, signature, n, add(m, 0x44), n))\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(returndatasize(), 0x44), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n break\n }\n }\n }\n\n /// @dev Returns whether `signature` is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNowCalldata(address signer, bytes32 hash, bytes calldata signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n if eq(signature.length, 64) {\n let vs := calldataload(add(signature.offset, 0x20))\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x40, calldataload(signature.offset)) // `r`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n if eq(signature.length, 65) {\n mstore(0x20, byte(0, calldataload(add(signature.offset, 0x40)))) // `v`.\n calldatacopy(0x40, signature.offset, 0x40) // `r`, `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), signature.length)\n // Copy the `signature` over.\n calldatacopy(add(m, 0x64), signature.offset, signature.length)\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(signature.length, 0x64), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n break\n }\n }\n }\n\n /// @dev Returns whether the signature (`r`, `vs`) is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, bytes32 r, bytes32 vs)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x40, r) // `r`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), mload(0x60)) // `s`.\n mstore8(add(m, 0xa4), mload(0x20)) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n }\n\n /// @dev Returns whether the signature (`v`, `r`, `s`) is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, uint8 v, bytes32 r, bytes32 s)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x20, and(v, 0xff)) // `v`.\n mstore(0x40, r) // `r`.\n mstore(0x60, s) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), s) // `s`.\n mstore8(add(m, 0xa4), v) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC1271 OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, bytes memory signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n // Copy the `signature` over.\n let n := add(0x20, mload(signature))\n pop(staticcall(gas(), 4, signature, n, add(m, 0x44), n))\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(returndatasize(), 0x44), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNowCalldata(\n address signer,\n bytes32 hash,\n bytes calldata signature\n ) internal view returns (bool isValid) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), signature.length)\n // Copy the `signature` over.\n calldatacopy(add(m, 0x64), signature.offset, signature.length)\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(signature.length, 0x64), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether the signature (`r`, `vs`) is valid for `hash`\n /// for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, bytes32 r, bytes32 vs)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), shr(1, shl(1, vs))) // `s`.\n mstore8(add(m, 0xa4), add(shr(255, vs), 27)) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether the signature (`v`, `r`, `s`) is valid for `hash`\n /// for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, uint8 v, bytes32 r, bytes32 s)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), s) // `s`.\n mstore8(add(m, 0xa4), v) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HASHING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns an Ethereum Signed Message, created from a `hash`.\n /// This produces a hash corresponding to the one signed with the\n /// [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n /// JSON-RPC method as part of EIP-191.\n function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x20, hash) // Store into scratch space for keccak256.\n mstore(0x00, \"\\x00\\x00\\x00\\x00\\x19Ethereum Signed Message:\\n32\") // 28 bytes.\n result := keccak256(0x04, 0x3c) // `32 * 2 - (32 - 28) = 60 = 0x3c`.\n }\n }\n\n /// @dev Returns an Ethereum Signed Message, created from `s`.\n /// This produces a hash corresponding to the one signed with the\n /// [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n /// JSON-RPC method as part of EIP-191.\n /// Note: Supports lengths of `s` up to 999999 bytes.\n function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let sLength := mload(s)\n let o := 0x20\n mstore(o, \"\\x19Ethereum Signed Message:\\n\") // 26 bytes, zero-right-padded.\n mstore(0x00, 0x00)\n // Convert the `s.length` to ASCII decimal representation: `base10(s.length)`.\n for { let temp := sLength } 1 {} {\n o := sub(o, 1)\n mstore8(o, add(48, mod(temp, 10)))\n temp := div(temp, 10)\n if iszero(temp) { break }\n }\n let n := sub(0x3a, o) // Header length: `26 + 32 - o`.\n // Throw an out-of-offset error (consumes all gas) if the header exceeds 32 bytes.\n returndatacopy(returndatasize(), returndatasize(), gt(n, 0x20))\n mstore(s, or(mload(0x00), mload(n))) // Temporarily store the header.\n result := keccak256(add(s, sub(0x20, n)), add(n, sLength))\n mstore(s, sLength) // Restore the length.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EMPTY CALLDATA HELPERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns an empty calldata bytes.\n function emptySignature() internal pure returns (bytes calldata signature) {\n /// @solidity memory-safe-assembly\n assembly {\n signature.length := 0\n }\n }\n}\n"},"contracts/actions/Action.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Boost Action\n/// @notice Abstract contract for a generic Action within the Boost protocol\n/// @dev Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Action is Cloneable {\n /// @notice Emitted when the action is executed by a proxy.\n /// @dev The `data` field should contain the return data from the action, if any.\n event ActionExecuted(address indexed executor, address caller, bool success, bytes data);\n\n /// @notice Thrown when the `execute` function is not implemented\n error ExecuteNotImplemented();\n\n /// @notice Emitted when the action is validated\n /// @dev The `data` field should contain implementation-specific context, if applicable.\n event ActionValidated(address indexed user, bool isValidated, bytes data);\n\n /// @notice The validator for the action (which may be the action itself where appropriate)\n Validator public immutable VALIDATOR;\n\n /// @notice Execute the action\n /// @param data_ The data payload for the action\n /// @return (success, data) A tuple of the success status and the returned data\n function execute(bytes calldata data_) external payable virtual returns (bool, bytes memory);\n\n /// @notice Prepare the action for execution and return the expected payload\n /// @param data_ The data payload for the action\n /// @return The prepared payload\n function prepare(bytes calldata data_) external virtual returns (bytes memory);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Action).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/actions/ContractAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Action} from \"contracts/actions/Action.sol\";\n\ncontract ContractAction is Action {\n /// @notice Thrown when execution on a given chain is not supported\n error TargetChainUnsupported(uint256 targetChainId);\n\n /// @notice The payload for initializing a ContractAction\n /// @param target The target contract address\n /// @param selector The selector for the function to be called\n /// @param value The native token value to send with the function call\n struct InitPayload {\n uint256 chainId;\n address target;\n bytes4 selector;\n uint256 value;\n }\n\n /// @notice The target chain ID\n uint256 public chainId;\n\n /// @notice The target contract\n address public target;\n\n /// @notice The selector for the function to be called\n bytes4 public selector;\n\n /// @notice The native token value to send with the function call\n uint256 public value;\n\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @notice Initialize the contract with the owner and the required data\n function initialize(bytes calldata data_) public virtual override initializer {\n _initialize(abi.decode(data_, (InitPayload)));\n }\n\n function execute(bytes calldata data_) external payable virtual override returns (bool, bytes memory) {\n if (chainId != block.chainid) revert TargetChainUnsupported(chainId);\n (bool success, bytes memory returnData) = target.call{value: value}(_buildPayload(selector, data_));\n return (success, returnData);\n }\n\n function prepare(bytes calldata data_) public view virtual override returns (bytes memory bytes_) {\n return _buildPayload(selector, data_);\n }\n\n function _initialize(InitPayload memory init_) internal virtual onlyInitializing {\n chainId = init_.chainId;\n target = init_.target;\n selector = init_.selector;\n value = init_.value;\n }\n\n function _buildPayload(bytes4 selector_, bytes calldata calldata_) internal pure returns (bytes memory payload) {\n assembly {\n // Allocate space for the payload\n let size := add(4, calldata_.length)\n payload := mload(0x40)\n mstore(payload, size)\n mstore(0x40, add(payload, add(size, 0x20)))\n\n // Place the selector and calldata in the payload buffer\n mstore(add(payload, 0x20), selector_)\n calldatacopy(add(payload, 0x24), calldata_.offset, calldata_.length)\n }\n }\n}\n"},"contracts/actions/ERC721MintAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {ContractAction} from \"contracts/actions/ContractAction.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title ERC721 Mint Action\n/// @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n/// @dev The action is expected to be prepared with the data payload for the minting of the token\n/// @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n/// @dev It is expected that the target contract has an externally accessible mint function whose selector\ncontract ERC721MintAction is ContractAction, Validator {\n /// @notice The set of validated tokens\n /// @dev This is intended to prevent multiple validations against the same token ID\n mapping(uint256 => bool) public validated;\n\n /// @notice Construct the ERC721 Mint Action\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @notice Initialize the contract with the owner and the required mint data\n /// @param data_ The data payload for the mint action `(address target, bytes4 selector, uint256 value)`\n function initialize(bytes calldata data_) public virtual override(Cloneable, ContractAction) initializer {\n _initialize(abi.decode(data_, (InitPayload)));\n }\n\n /// @notice Execute the action (not yet implemented)\n /// @param data_ The data payload for the call (not used in this implementation)\n /// @return success The success status of the call\n /// @return returnData The return data from the call\n function execute(bytes calldata data_) external payable override returns (bool success, bytes memory returnData) {\n (data_, success, returnData);\n revert ExecuteNotImplemented();\n }\n\n /// @notice Prepare the action for execution and return the expected payload\n /// @param data_ The ABI-encoded payload for the target contract call\n /// @return The encoded payload to be sent to the target contract\n /// @dev Note that the mint value is NOT included in the prepared payload but must be sent with the call\n function prepare(bytes calldata data_) public view override returns (bytes memory) {\n return super.prepare(data_);\n }\n\n /// @inheritdoc Validator\n /// @notice Validate that the action has been completed successfully\n /// @param data_ The data payload for the action `(address holder, (uint256 tokenId))`\n /// @return success True if the action has been validated for the user\n /// @dev The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)\n /// @dev Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`\n function validate(bytes calldata data_) external virtual override returns (bool success) {\n (address holder, bytes memory payload) = abi.decode(data_, (address, bytes));\n uint256 tokenId = uint256(bytes32(payload));\n\n if (ERC721(target).ownerOf(tokenId) == holder && !validated[tokenId]) {\n validated[tokenId] = true;\n return true;\n } else {\n return false;\n }\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Action, Validator) returns (bool) {\n return super.supportsInterface(interfaceId);\n }\n\n function _initialize(InitPayload memory init_) internal override onlyInitializing {\n super._initialize(init_);\n _initializeOwner(msg.sender);\n }\n}\n"},"contracts/allowlists/AllowList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost AllowList\n/// @notice Abstract contract for a generic Allow List within the Boost protocol\n/// @dev Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty.\nabstract contract AllowList is Ownable, Cloneable {\n /// @notice Constructor to initialize the owner\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Check if a user is authorized\n /// @param user_ The address of the user\n /// @param data_ The data payload for the authorization check, if applicable\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata data_) external view virtual returns (bool);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(AllowList).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/allowlists/SimpleAllowList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {OwnableRoles} from \"@solady/auth/OwnableRoles.sol\";\n\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\n/// @title Simple AllowList\n/// @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\ncontract SimpleAllowList is AllowList, OwnableRoles {\n /// @notice The role for managing the allow list\n uint256 public constant LIST_MANAGER_ROLE = 1 << 1;\n\n /// @dev An internal mapping of allowed statuses\n mapping(address => bool) private _allowed;\n\n /// @notice Construct a new SimpleAllowList\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the list of allowed addresses\n /// @param data_ The compressed initialization data `(address owner, address[] allowList)`\n function initialize(bytes calldata data_) public virtual override initializer {\n (address owner_, address[] memory allowList_) = abi.decode(data_, (address, address[]));\n _initializeOwner(owner_);\n _grantRoles(owner_, LIST_MANAGER_ROLE);\n for (uint256 i = 0; i < allowList_.length; i++) {\n _allowed[allowList_[i]] = true;\n }\n }\n\n /// @notice Check if a user is authorized\n /// @param user_ The address of the user\n /// @param - The data payload for the authorization check, not used in this implementation\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata /* data_ - unused */ ) external view override returns (bool) {\n return _allowed[user_];\n }\n\n /// @notice Set the allowed status of a user\n /// @param users_ The list of users to update\n /// @param allowed_ The allowed status of each user\n /// @dev The length of the `users_` and `allowed_` arrays must be the same\n /// @dev This function can only be called by the owner\n function setAllowed(address[] calldata users_, bool[] calldata allowed_) external onlyRoles(LIST_MANAGER_ROLE) {\n if (users_.length != allowed_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < users_.length; i++) {\n _allowed[users_[i]] = allowed_[i];\n }\n }\n}\n"},"contracts/allowlists/SimpleDenyList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\n/// @title SimpleDenyList\n/// @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\ncontract SimpleDenyList is AllowList {\n /// @dev An internal mapping of denied statuses\n mapping(address => bool) private _denied;\n\n /// @notice Construct a new SimpleDenyList\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the initial list of denied addresses\n /// @param data_ The compressed initialization data `(address owner, address[] denyList)`\n function initialize(bytes calldata data_) public virtual override initializer {\n (address owner_, address[] memory denyList_) = abi.decode(data_, (address, address[]));\n\n _initializeOwner(owner_);\n for (uint256 i = 0; i < denyList_.length; i++) {\n _denied[denyList_[i]] = true;\n }\n }\n\n /// @notice Check if a user is authorized (i.e. not denied)\n /// @param user_ The address of the user\n /// @param - The data payload for the authorization check, not used in this implementation\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata /* data_ - unused */ ) external view override returns (bool) {\n return !_denied[user_];\n }\n\n /// @notice Set the denied status of a user\n /// @param users_ The list of users to update\n /// @param denied_ The denied status of each user\n /// @dev The length of the `users_` and `denied_` arrays must be the same\n /// @dev This function can only be called by the owner\n function setDenied(address[] calldata users_, bool[] calldata denied_) external onlyOwner {\n if (users_.length != denied_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < users_.length; i++) {\n _denied[users_[i]] = denied_[i];\n }\n }\n}\n"},"contracts/BoostCore.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {LibZip} from \"@solady/utils/LibZip.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {BoostLib} from \"contracts/shared/BoostLib.sol\";\nimport {BoostRegistry} from \"contracts/BoostRegistry.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Boost Core\n/// @notice The core contract for the Boost protocol\n/// @dev This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA\ncontract BoostCore is Ownable, ReentrancyGuard {\n using LibClone for address;\n using LibZip for bytes;\n using SafeTransferLib for address;\n\n struct InitPayload {\n Budget budget;\n BoostLib.Target action;\n BoostLib.Target validator;\n BoostLib.Target allowList;\n BoostLib.Target[] incentives;\n uint64 protocolFee;\n uint64 referralFee;\n uint256 maxParticipants;\n address owner;\n }\n\n /// @notice The list of boosts\n BoostLib.Boost[] private _boosts;\n\n /// @notice The BoostRegistry contract\n BoostRegistry public registry;\n\n /// @notice The protocol fee receiver\n address public protocolFeeReceiver;\n\n /// @notice The claim fee (in wei)\n uint256 public claimFee = 0.000075 ether;\n\n /// @notice The base protocol fee (in bps)\n uint64 public protocolFee = 1_000; // 10%\n\n /// @notice The base referral fee (in bps)\n uint64 public referralFee = 1_000; // 10%\n\n /// @notice The fee denominator (basis points, i.e. 10000 == 100%)\n uint64 public constant FEE_DENOMINATOR = 10_000;\n\n /// @notice Constructor to initialize the owner\n constructor(BoostRegistry registry_, address protocolFeeReceiver_) {\n _initializeOwner(msg.sender);\n registry = registry_;\n protocolFeeReceiver = protocolFeeReceiver_;\n }\n\n /// @notice Create a new Boost\n /// @param data_ The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\n /// @dev The data is expected to:\n /// - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol)\n /// - properly decode to the following types (in order):\n /// - `Budget` to be used for the Boost\n /// - `Target` for the action\n /// - `Target` for the validator which is expected to be one of the following:\n /// - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\"SignerValidator\")`), along with the parameters for its initializer;\n /// - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size);\n /// - The zero address along with no parameter data if validation is implemented by the action;\n /// - `Target` for the allowList\n /// - `Target[]` for the incentives\n /// - `uint256` for the protocolFee (added to the base protocol fee)\n /// - `uint256` for the referralFee (added to the base referral fee)\n /// - `uint256` for the maxParticipants\n /// - `address` for the owner of the Boost\n function createBoost(bytes calldata data_) external onlyOwner nonReentrant returns (BoostLib.Boost memory) {\n InitPayload memory payload_ = abi.decode(data_.cdDecompress(), (InitPayload));\n\n // Validate the Budget\n _checkBudget(payload_.budget);\n\n // Initialize the Boost\n BoostLib.Boost storage boost = _boosts.push();\n boost.owner = payload_.owner;\n boost.budget = payload_.budget;\n boost.protocolFee = protocolFee + payload_.protocolFee;\n boost.referralFee = referralFee + payload_.referralFee;\n boost.maxParticipants = payload_.maxParticipants;\n\n // Setup the Boost components\n boost.action = Action(_makeTarget(type(Action).interfaceId, payload_.action, true));\n boost.allowList = AllowList(_makeTarget(type(AllowList).interfaceId, payload_.allowList, true));\n boost.incentives = _makeIncentives(payload_.incentives, payload_.budget);\n boost.validator = Validator(\n payload_.validator.instance == address(0)\n ? boost.action.supportsInterface(type(Validator).interfaceId) ? address(boost.action) : address(0)\n : _makeTarget(type(Validator).interfaceId, payload_.validator, true)\n );\n\n return boost;\n }\n\n /// @notice Claim an incentive for a Boost\n /// @param boostId_ The ID of the Boost\n /// @param incentiveId_ The ID of the Incentive\n /// @param referrer_ The address of the referrer (if any)\n /// @param data_ The data for the claim\n function claimIncentive(uint256 boostId_, uint256 incentiveId_, address referrer_, bytes calldata data_)\n external\n payable\n nonReentrant\n {\n BoostLib.Boost storage boost = _boosts[boostId_];\n if (msg.value < claimFee) revert BoostError.InsufficientFunds(address(0), msg.value, claimFee);\n _routeClaimFee(boost, referrer_);\n\n // wake-disable-next-line reentrancy (false positive, function is nonReentrant)\n if (!boost.validator.validate(data_)) revert BoostError.Unauthorized();\n if (\n !boost.incentives[incentiveId_].claim(abi.encode(Incentive.ClaimPayload({target: msg.sender, data: data_})))\n ) revert BoostError.ClaimFailed(msg.sender, data_);\n }\n\n /// @notice Get a Boost by index\n /// @param index The index of the Boost\n /// @return The Boost at the specified index\n function getBoost(uint256 index) external view returns (BoostLib.Boost memory) {\n return _boosts[index];\n }\n\n /// @notice Get the number of Boosts\n /// @return The number of Boosts\n function getBoostCount() external view returns (uint256) {\n return _boosts.length;\n }\n\n /// @notice Set the protocol fee receiver address\n /// @param protocolFeeReceiver_ The new protocol fee receiver address\n /// @dev This function is only callable by the owner\n function setProtocolFeeReceiver(address protocolFeeReceiver_) external onlyOwner {\n protocolFeeReceiver = protocolFeeReceiver_;\n }\n\n /// @notice Set the claim fee\n /// @param claimFee_ The new claim fee (in wei)\n /// @dev This function is only callable by the owner\n function setClaimFee(uint256 claimFee_) external onlyOwner {\n claimFee = claimFee_;\n }\n\n /// @notice Check that the provided Budget is valid and that the caller is authorized to use it\n /// @param budget_ The Budget to check\n /// @dev This function will revert if the Budget is invalid or the caller is unauthorized\n function _checkBudget(Budget budget_) internal view {\n _checkTarget(type(Budget).interfaceId, address(budget_));\n if (!budget_.isAuthorized(msg.sender)) revert BoostError.Unauthorized();\n }\n\n /// @notice Check that the provided Target is valid for the specified interface\n /// @param interfaceId The interface ID for the target\n /// @param instance The instance to check\n /// @dev This function will revert if the Target does not implement the expected interface\n /// @dev This check costs ~376 gas, which is worth it to validate the target\n function _checkTarget(bytes4 interfaceId, address instance) internal view {\n if (instance == address(0) || !Cloneable(instance).supportsInterface(interfaceId)) {\n revert BoostError.InvalidInstance(interfaceId, instance);\n }\n }\n\n /// @notice Create a target instance and optionally initialize it\n /// @param interfaceId The interface ID for the target\n /// @param target The target to create\n /// @param shouldInitialize Whether or not to initialize the target\n /// @return instance The target instance\n /// @dev This function will revert if the target does not implement the expected interface\n function _makeTarget(bytes4 interfaceId, BoostLib.Target memory target, bool shouldInitialize)\n internal\n returns (address instance)\n {\n _checkTarget(interfaceId, target.instance);\n instance = _maybeClone(target, shouldInitialize);\n }\n\n /// @notice Configure a set of incentives for a Boost using the given Budget\n /// @param targets_ The set of incentives {Target[]}\n /// @param budget_ The Budget from which to allocate the incentives\n /// @return incentives The set of initialized incentives {Incentive[]}\n function _makeIncentives(BoostLib.Target[] memory targets_, Budget budget_)\n internal\n returns (Incentive[] memory incentives)\n {\n incentives = new Incentive[](targets_.length);\n for (uint256 i = 0; i < targets_.length; i++) {\n // Deploy the clone, but don't initialize until it we've preflighted\n _checkTarget(type(Incentive).interfaceId, targets_[i].instance);\n\n // Ensure the target is a base implementation (incentive clones are not reusable)\n if (!targets_[i].isBase) {\n revert BoostError.InvalidInstance(type(Incentive).interfaceId, targets_[i].instance);\n }\n\n incentives[i] = Incentive(_makeTarget(type(Incentive).interfaceId, targets_[i], false));\n\n bytes memory preflight = incentives[i].preflight(targets_[i].parameters);\n if (preflight.length != 0) {\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n assert(budget_.disburse(preflight));\n }\n\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n incentives[i].initialize(targets_[i].parameters);\n }\n }\n\n /// @notice Get the target instance, optionally cloning and initializing from a base implementation\n function _maybeClone(BoostLib.Target memory target_, bool shouldInitialize_) internal returns (address instance) {\n instance = target_.isBase ? target_.instance.clone() : target_.instance;\n if (target_.isBase && shouldInitialize_) {\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n Cloneable(instance).initialize(target_.parameters);\n }\n }\n\n /// @notice Route the claim fee to the creator, referrer, and protocol fee receiver\n /// @param boost The Boost for which to route the claim fee\n /// @param referrer_ The address of the referrer (if any)\n function _routeClaimFee(BoostLib.Boost storage boost, address referrer_) internal {\n if (claimFee == 0) return;\n uint256 netFee = claimFee;\n\n // If a referrer is provided, transfer the revshare and reduce the net fee\n if (referrer_ != address(0)) {\n uint256 referralShare = claimFee * boost.referralFee / FEE_DENOMINATOR;\n netFee -= referralShare;\n referrer_.safeTransferETH(referralShare);\n }\n\n // The remaining fee is split between the owner and the protocol\n boost.owner.safeTransferETH(netFee / 2);\n protocolFeeReceiver.safeTransferETH(address(this).balance);\n }\n}\n"},"contracts/BoostRegistry.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {BoostLib} from \"contracts/shared/BoostLib.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\n\n/// @title Boost Registry\n/// @notice A registry for base implementations and cloned instances\n/// @dev This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol\ncontract BoostRegistry is ERC165, ReentrancyGuard {\n using BoostLib for address;\n\n /// @notice The types of bases that can be registered\n enum RegistryType {\n ACTION,\n ALLOW_LIST,\n BUDGET,\n INCENTIVE,\n VALIDATOR\n }\n\n /// @notice The data structure for a deployed clone\n /// @param baseType The type of base implementation\n /// @param name The display name for the clone\n /// @param instance The address of the clone\n /// @param deployer The address of the deployer\n struct Clone {\n RegistryType baseType;\n Cloneable instance;\n address deployer;\n string name;\n }\n\n /// @notice Emitted when a new base implementation is registered\n event Registered(RegistryType indexed registryType, bytes32 indexed identifier, address implementation);\n\n /// @notice Emitted when a new instance of a base implementation is deployed\n event Deployed(\n RegistryType indexed registryType,\n bytes32 indexed identifier,\n address baseImplementation,\n Cloneable deployedInstance\n );\n\n /// @notice Thrown when a base implementation is already registered\n error AlreadyRegistered(RegistryType registryType, bytes32 identifier);\n\n /// @notice Thrown when no match is found for the given identifier\n error NotRegistered(bytes32 identifier);\n\n /// @notice Thrown when the implementation is not a valid {Cloneable} base\n error NotCloneable(address implementation);\n\n /// @notice The registry of base implementations\n mapping(bytes32 => Cloneable) private _bases;\n\n /// @notice The registry of deployed clones\n mapping(bytes32 => Clone) private _clones;\n\n /// @notice The registry of clones created by a given deployer\n mapping(address => bytes32[]) private _deployedClones;\n\n /// @notice A modifier to ensure the given address holds a valid {Cloneable} base\n /// @param implementation_ The address of the implementation to check\n modifier onlyCloneables(address implementation_) {\n if (!Cloneable(implementation_).supportsInterface(type(Cloneable).interfaceId)) {\n revert NotCloneable(implementation_);\n }\n _;\n }\n\n /// @notice Register a new base implementation of a given type\n /// @param type_ The base type for the implementation\n /// @param name_ A name for the implementation (must be unique within the given type)\n /// @param implementation_ The address of the implementation contract\n /// @dev This function will either emit a `Registered` event or revert if the identifier has already been registered\n /// @dev The given address must implement the given type interface (See {ERC165-supportsInterface})\n function register(RegistryType type_, string calldata name_, address implementation_)\n external\n onlyCloneables(implementation_)\n {\n bytes32 identifier = getIdentifier(type_, name_);\n\n if (address(_bases[identifier]) != address(0)) revert AlreadyRegistered(type_, identifier);\n _bases[identifier] = Cloneable(implementation_);\n\n emit Registered(type_, identifier, implementation_);\n }\n\n /// @notice Deploy a new instance of a registered base implementation\n /// @param type_ The type of base implementation to be cloned\n /// @param base_ The address of the base implementation to clone\n /// @param name_ The display name for the clone\n /// @param data_ The data payload for the cloned instance's initializer\n /// @return instance The address of the deployed instance\n /// @dev This function will either emit a `Deployed` event and return the clone or revert\n function deployClone(RegistryType type_, address base_, string calldata name_, bytes calldata data_)\n external\n nonReentrant\n returns (Cloneable instance)\n {\n // Deploy and initialize the clone\n instance =\n Cloneable(base_.cloneAndInitialize(keccak256(abi.encodePacked(type_, base_, name_, msg.sender)), data_));\n\n // Ensure the clone's identifier is unique\n bytes32 identifier = getCloneIdentifier(type_, base_, msg.sender, name_);\n if (address(_clones[identifier].instance) != address(0)) revert AlreadyRegistered(type_, identifier);\n\n // Register and report the newly deployed clone\n _deployedClones[msg.sender].push(identifier);\n _clones[identifier] = Clone({baseType: type_, instance: instance, deployer: msg.sender, name: name_});\n\n emit Deployed(type_, identifier, base_, instance);\n }\n\n /// @notice Get the address of a registered base implementation\n /// @param identifier_ The unique identifier for the implementation (see {getIdentifier})\n /// @return implementation The address of the implementation\n /// @dev This function will revert if the implementation is not registered\n function getBaseImplementation(bytes32 identifier_) public view returns (Cloneable implementation) {\n implementation = _bases[identifier_];\n if (address(implementation) == address(0)) revert NotRegistered(identifier_);\n }\n\n /// @notice Get the address of a deployed clone by its identifier\n /// @param identifier_ The unique identifier for the deployed clone (see {getCloneIdentifier})\n /// @return clone The address of the deployed clone\n function getClone(bytes32 identifier_) external view returns (Clone memory clone) {\n clone = _clones[identifier_];\n if (address(clone.instance) == address(0)) revert NotRegistered(identifier_);\n }\n\n /// @notice Get the list of identifiers of deployed clones for a given deployer\n /// @param deployer_ The address of the deployer\n /// @return clones The list of deployed clones for the given deployer\n /// @dev WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic.\n function getClones(address deployer_) external view returns (bytes32[] memory) {\n return _deployedClones[deployer_];\n }\n\n /// @notice Build the identifier for a clone of a base implementation\n /// @param type_ The base type for the implementation\n /// @param base_ The address of the base implementation\n /// @param deployer_ The address of the deployer\n /// @param name_ The display name of the clone\n /// @return identifier The unique identifier for the clone\n function getCloneIdentifier(RegistryType type_, address base_, address deployer_, string calldata name_)\n public\n pure\n returns (bytes32 identifier)\n {\n return _getIdentifier(type_, keccak256(abi.encodePacked(base_, deployer_, name_)));\n }\n\n /// @notice Build the identifier for a base implementation\n /// @param type_ The base type for the implementation\n /// @param name_ The name of the implementation\n /// @return identifier The unique identifier for the implementation\n function getIdentifier(RegistryType type_, string calldata name_) public pure returns (bytes32 identifier) {\n return _getIdentifier(type_, keccak256(abi.encodePacked(name_)));\n }\n\n /// @notice Build a unique identifier for a given type and hash\n /// @param type_ The base type for the implementation\n /// @param hash_ The unique hash for the implementation\n /// @return identifier The unique identifier for the implementation\n function _getIdentifier(RegistryType type_, bytes32 hash_) internal pure returns (bytes32 identifier) {\n return keccak256(abi.encodePacked(type_, hash_));\n }\n}\n"},"contracts/budgets/Budget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {Receiver} from \"@solady/accounts/Receiver.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Budget\n/// @notice Abstract contract for a generic Budget within the Boost protocol\n/// @dev Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.\n/// @dev WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future.\nabstract contract Budget is Ownable, Cloneable, Receiver {\n using SafeTransferLib for address;\n\n enum AssetType {\n ETH,\n ERC20,\n ERC1155\n }\n\n /// @notice A struct representing the inputs for an allocation\n /// @param assetType The type of asset to allocate\n /// @param asset The address of the asset to allocate\n /// @param target The address of the payee or payer (from or to, depending on the operation)\n /// @param data The implementation-specific data for the allocation (amount, token ID, etc.)\n struct Transfer {\n AssetType assetType;\n address asset;\n address target;\n bytes data;\n }\n\n /// @notice The payload for an ETH or ERC20 transfer\n /// @param amount The amount of the asset to transfer\n struct FungiblePayload {\n uint256 amount;\n }\n\n /// @notice The payload for an ERC1155 transfer\n /// @param tokenId The ID of the token to transfer\n /// @param amount The amount of the token to transfer\n /// @param data Any additional data to forward to the ERC1155 contract\n struct ERC1155Payload {\n uint256 tokenId;\n uint256 amount;\n bytes data;\n }\n\n /// @notice Emitted when an address's authorization status changes\n event Authorized(address indexed account, bool isAuthorized);\n\n /// @notice Emitted when assets are distributed from the budget\n event Distributed(address indexed asset, address to, uint256 amount);\n\n /// @notice Thrown when the allocation is invalid\n error InvalidAllocation(address asset, uint256 amount);\n\n /// @notice Thrown when there are insufficient funds for an operation\n error InsufficientFunds(address asset, uint256 available, uint256 required);\n\n /// @notice Thrown when the length of two arrays are not equal\n error LengthMismatch();\n\n /// @notice Thrown when a transfer fails for an unknown reason\n error TransferFailed(address asset, address to, uint256 amount);\n\n /// @notice Initialize the budget and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Allocate assets to the budget\n /// @param data_ The compressed data for the allocation (amount, token address, token ID, etc.)\n /// @return True if the allocation was successful\n function allocate(bytes calldata data_) external payable virtual returns (bool);\n\n /// @notice Reclaim assets from the budget\n /// @param data_ The compressed data for the reclamation (amount, token address, token ID, etc.)\n /// @return True if the reclamation was successful\n function reclaim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Disburse assets from the budget to a single recipient\n /// @param data_ The compressed {Transfer} request\n /// @return True if the disbursement was successful\n function disburse(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Disburse assets from the budget to multiple recipients\n /// @param data_ The array of compressed {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual returns (bool);\n\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n function total(address asset_) external view virtual returns (uint256);\n\n /// @notice Get the amount of assets available for distribution from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets available\n function available(address asset_) external view virtual returns (uint256);\n\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual returns (uint256);\n\n /// @notice Reconcile the budget to ensure the known state matches the actual state\n /// @param data_ The compressed data for the reconciliation (amount, token address, token ID, etc.)\n /// @return The amount of assets reconciled\n function reconcile(bytes calldata data_) external virtual returns (uint256);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Budget).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @notice Set the authorized status of the given accounts\n /// @param accounts_ The accounts to authorize or deauthorize\n /// @param isAuthorized_ The authorization status for the given accounts\n /// @dev The mechanism for managing authorization is left to the implementing contract\n function setAuthorized(address[] calldata accounts_, bool[] calldata isAuthorized_) external virtual;\n\n /// @notice Check if the given account is authorized to use the budget\n /// @param account_ The account to check\n /// @return True if the account is authorized\n /// @dev The mechanism for checking authorization is left to the implementing contract\n function isAuthorized(address account_) external view virtual returns (bool);\n\n /// @inheritdoc Receiver\n receive() external payable virtual override {\n return;\n }\n\n /// @inheritdoc Receiver\n fallback() external payable virtual override {\n return;\n }\n}\n"},"contracts/budgets/SimpleBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Simple Budget\n/// @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n/// @dev This type of budget supports ETH, ERC20, and ERC1155 assets only\ncontract SimpleBudget is Budget, IERC1155Receiver, ReentrancyGuard {\n using SafeTransferLib for address;\n\n /// @notice The payload for initializing a SimpleBudget\n struct InitPayload {\n address owner;\n address[] authorized;\n }\n\n /// @dev The total amount of each fungible asset distributed from the budget\n mapping(address => uint256) private _distributedFungible;\n\n /// @dev The total amount of each ERC1155 asset and token ID distributed from the budget\n mapping(address => mapping(uint256 => uint256)) private _distributedERC1155;\n\n /// @dev The mapping of authorized addresses\n mapping(address => bool) private _isAuthorized;\n\n /// @notice A modifier that allows only authorized addresses to call the function\n modifier onlyAuthorized() {\n if (!isAuthorized(msg.sender)) revert Unauthorized();\n _;\n }\n\n /// @notice Construct a new SimpleBudget\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n _initializeOwner(init_.owner);\n for (uint256 i = 0; i < init_.authorized.length; i++) {\n _isAuthorized[init_.authorized[i]] = true;\n }\n }\n\n /// @inheritdoc Budget\n /// @notice Allocates assets to the budget\n /// @param data_ The packed data for the {Transfer} request\n /// @return True if the allocation was successful\n /// @dev The caller must have already approved the contract to transfer the asset\n /// @dev If the asset transfer fails, the allocation will revert\n function allocate(bytes calldata data_) external payable virtual override returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Ensure the value received is equal to the `payload.amount`\n if (msg.value != payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Transfer `payload.amount` of the token to this contract\n request.asset.safeTransferFrom(request.target, address(this), payload.amount);\n if (request.asset.balanceOf(address(this)) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n\n // Transfer `payload.amount` of `payload.tokenId` to this contract\n IERC1155(request.asset).safeTransferFrom(\n request.target, address(this), payload.tokenId, payload.amount, payload.data\n );\n if (IERC1155(request.asset).balanceOf(address(this), payload.tokenId) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else {\n // Unsupported asset type\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Reclaims assets from the budget\n /// @param data_ The packed {Transfer} request\n /// @return True if the request was successful\n /// @dev Only the owner can directly reclaim assets from the budget\n /// @dev If the amount is zero, the entire balance of the asset will be transferred to the receiver\n /// @dev If the asset transfer fails, the reclamation will revert\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH || request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(\n request.asset, request.target, payload.amount == 0 ? available(request.asset) : payload.amount\n );\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n _transferERC1155(\n request.asset,\n request.target,\n payload.tokenId,\n payload.amount == 0 ? IERC1155(request.asset).balanceOf(address(this), payload.tokenId) : payload.amount,\n payload.data\n );\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to a single recipient\n /// @param data_ The packed {Transfer} request\n /// @return True if the disbursement was successful\n /// @dev If the asset transfer fails, the disbursement will revert\n function disburse(bytes calldata data_) public virtual override onlyAuthorized returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ERC20 || request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n uint256 avail = available(request.asset);\n if (payload.amount > avail) {\n revert InsufficientFunds(request.asset, avail, payload.amount);\n }\n\n _transferFungible(request.asset, request.target, payload.amount);\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n\n uint256 avail = IERC1155(request.asset).balanceOf(address(this), payload.tokenId);\n if (payload.amount > avail) {\n revert InsufficientFunds(request.asset, avail, payload.amount);\n }\n\n _transferERC1155(request.asset, request.target, payload.tokenId, payload.amount, payload.data);\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to multiple recipients\n /// @param data_ The packed array of {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual override returns (bool) {\n for (uint256 i = 0; i < data_.length; i++) {\n if (!disburse(data_[i])) return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n function setAuthorized(address[] calldata account_, bool[] calldata authorized_)\n external\n virtual\n override\n onlyOwner\n {\n if (account_.length != authorized_.length) revert LengthMismatch();\n for (uint256 i = 0; i < account_.length; i++) {\n _isAuthorized[account_[i]] = authorized_[i];\n }\n }\n\n /// @inheritdoc Budget\n function isAuthorized(address account_) public view virtual override returns (bool) {\n return _isAuthorized[account_] || account_ == owner();\n }\n\n /// @inheritdoc Budget\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n /// @dev This is simply the sum of the current balance and the distributed amount\n function total(address asset_) external view virtual override returns (uint256) {\n return available(asset_) + _distributedFungible[asset_];\n }\n\n /// @notice Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The total amount of assets\n function total(address asset_, uint256 tokenId_) external view virtual returns (uint256) {\n return IERC1155(asset_).balanceOf(address(this), tokenId_) + _distributedERC1155[asset_][tokenId_];\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets available for distribution from the budget\n /// @param asset_ The address of the asset (or the zero address for native assets)\n /// @return The amount of assets available\n /// @dev This is simply the current balance held by the budget\n /// @dev If the zero address is passed, this function will return the native balance\n function available(address asset_) public view virtual override returns (uint256) {\n return asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n }\n\n /// @notice Get the amount of ERC1155 assets available for distribution from the budget\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The amount of assets available\n function available(address asset_, uint256 tokenId_) public view virtual returns (uint256) {\n return IERC1155(asset_).balanceOf(address(this), tokenId_);\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual override returns (uint256) {\n return _distributedFungible[asset_];\n }\n\n /// @notice Get the amount of ERC1155 assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The amount of assets distributed\n function distributed(address asset_, uint256 tokenId_) external view virtual returns (uint256) {\n return _distributedERC1155[asset_][tokenId_];\n }\n\n /// @inheritdoc Budget\n /// @dev This is a no-op as there is no local balance to reconcile\n function reconcile(bytes calldata) external virtual override returns (uint256) {\n return 0;\n }\n\n /// @notice Transfer assets to the recipient\n /// @param asset_ The address of the asset\n /// @param to_ The address of the recipient\n /// @param amount_ The amount of the asset to transfer\n /// @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n /// @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert\n function _transferFungible(address asset_, address to_, uint256 amount_) internal virtual nonReentrant {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_)) {\n revert InsufficientFunds(asset_, available(asset_), amount_);\n }\n\n _distributedFungible[asset_] += amount_;\n\n // Transfer the asset to the recipient\n if (asset_ == address(0)) {\n SafeTransferLib.safeTransferETH(to_, amount_);\n } else {\n asset_.safeTransfer(to_, amount_);\n }\n\n emit Distributed(asset_, to_, amount_);\n }\n\n function _transferERC1155(address asset_, address to_, uint256 tokenId_, uint256 amount_, bytes memory data_)\n internal\n virtual\n nonReentrant\n {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_, tokenId_)) {\n revert InsufficientFunds(asset_, available(asset_, tokenId_), amount_);\n }\n\n _distributedERC1155[asset_][tokenId_] += amount_;\n\n // Transfer the asset to the recipient\n // wake-disable-next-line reentrancy (`nonReentrant` modifier is applied to the function)\n IERC1155(asset_).safeTransferFrom(address(this), to_, tokenId_, amount_, data_);\n\n emit Distributed(asset_, to_, amount_);\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\n function onERC1155Received(address, address, uint256, uint256, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n // We don't need to do anything here\n return IERC1155Receiver.onERC1155Received.selector;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\n function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n // We don't need to do anything here\n return IERC1155Receiver.onERC1155BatchReceived.selector;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Budget, IERC165) returns (bool) {\n return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/budgets/VestingBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Vesting Budget\n/// @notice A vesting-based budget implementation that allows for the distribution of assets over time\n/// @dev Take note of the following when making use of this budget type:\n/// - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n/// - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n/// - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n/// - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\ncontract VestingBudget is Budget, ReentrancyGuard {\n using SafeTransferLib for address;\n\n /// @notice The payload for initializing a VestingBudget\n struct InitPayload {\n address owner;\n address[] authorized;\n uint64 start;\n uint64 duration;\n uint64 cliff;\n }\n\n /// @dev The total amount of each fungible asset distributed from the budget\n mapping(address => uint256) private _distributedFungible;\n\n /// @dev The mapping of authorized addresses\n mapping(address => bool) private _isAuthorized;\n\n /// @notice The timestamp at which the vesting schedule begins\n uint64 public start;\n\n /// @notice The duration of the vesting schedule (in seconds)\n uint64 public duration;\n\n /// @notice The duration of the cliff period (in seconds)\n uint64 public cliff;\n\n /// @notice A modifier that allows only authorized addresses to call the function\n modifier onlyAuthorized() {\n if (!isAuthorized(msg.sender)) revert Unauthorized();\n _;\n }\n\n /// @notice Construct a new VestingBudget\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget (see {InitPayload})\n function initialize(bytes calldata data_) public virtual override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n start = init_.start;\n duration = init_.duration;\n cliff = init_.cliff;\n\n _initializeOwner(init_.owner);\n for (uint256 i = 0; i < init_.authorized.length; i++) {\n _isAuthorized[init_.authorized[i]] = true;\n }\n }\n\n /// @inheritdoc Budget\n /// @notice Allocates assets to the budget\n /// @param data_ The packed data for the {Transfer} request\n /// @return True if the allocation was successful\n /// @dev The caller must have already approved the contract to transfer the asset\n /// @dev If the asset transfer fails, the allocation will revert\n function allocate(bytes calldata data_) external payable virtual override returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Ensure the value received is equal to the `payload.amount`\n if (msg.value != payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Transfer `payload.amount` of the token to this contract\n request.asset.safeTransferFrom(request.target, address(this), payload.amount);\n if (request.asset.balanceOf(address(this)) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else {\n // Unsupported asset type\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Reclaims assets from the budget\n /// @param data_ The packed {Transfer} request\n /// @return True if the request was successful\n /// @dev Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting schedule\n /// @dev If the amount is zero, the entire available balance of the asset will be transferred to the receiver\n /// @dev If the asset transfer fails for any reason, the function will revert\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH || request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(\n request.asset, request.target, payload.amount == 0 ? available(request.asset) : payload.amount\n );\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to a single recipient\n /// @param data_ The packed {Transfer} request\n /// @return True if the disbursement was successful\n /// @dev The maximum amount that can be disbursed is the {available} amount\n function disburse(bytes calldata data_) public virtual override onlyAuthorized returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ERC20 || request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(request.asset, request.target, payload.amount);\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to multiple recipients\n /// @param data_ The packed array of {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual override returns (bool) {\n for (uint256 i = 0; i < data_.length; i++) {\n if (!disburse(data_[i])) return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n function setAuthorized(address[] calldata account_, bool[] calldata authorized_)\n external\n virtual\n override\n onlyOwner\n {\n if (account_.length != authorized_.length) revert LengthMismatch();\n for (uint256 i = 0; i < account_.length; i++) {\n _isAuthorized[account_[i]] = authorized_[i];\n }\n }\n\n /// @inheritdoc Budget\n function isAuthorized(address account_) public view virtual override returns (bool) {\n return _isAuthorized[account_] || account_ == owner();\n }\n\n /// @notice Get the end time of the vesting schedule\n /// @return The end time of the vesting schedule\n function end() external view virtual returns (uint256) {\n return start + duration;\n }\n\n /// @inheritdoc Budget\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n /// @dev This is equal to the sum of the total current balance and the total distributed amount\n function total(address asset_) external view virtual override returns (uint256) {\n uint256 balance = asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n return _distributedFungible[asset_] + balance;\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets available for distribution from the budget as of the current block timestamp\n /// @param asset_ The address of the asset (or the zero address for native assets)\n /// @return The amount of assets currently available for distribution\n /// @dev This is equal to the total vested amount minus any already distributed\n function available(address asset_) public view virtual override returns (uint256) {\n return _vestedAllocation(asset_, uint64(block.timestamp)) - _distributedFungible[asset_];\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual override returns (uint256) {\n return _distributedFungible[asset_];\n }\n\n /// @inheritdoc Budget\n /// @dev This is a no-op as there is no local balance to reconcile\n function reconcile(bytes calldata) external virtual override returns (uint256) {\n return 0;\n }\n\n /// @notice Transfer assets to the recipient\n /// @param asset_ The address of the asset\n /// @param to_ The address of the recipient\n /// @param amount_ The amount of the asset to transfer\n /// @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n /// @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert\n function _transferFungible(address asset_, address to_, uint256 amount_) internal virtual nonReentrant {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_)) {\n revert InsufficientFunds(asset_, available(asset_), amount_);\n }\n\n _distributedFungible[asset_] += amount_;\n\n // Transfer the asset to the recipient\n if (asset_ == address(0)) {\n SafeTransferLib.safeTransferETH(to_, amount_);\n } else {\n asset_.safeTransfer(to_, amount_);\n }\n\n emit Distributed(asset_, to_, amount_);\n }\n\n /// @notice Calculate the portion of allocated assets vested at a given timestamp\n /// @param asset_ The address of the asset\n /// @param timestamp_ The timestamp used to calculate the vested amount\n /// @return The amount of assets vested at that point in time\n function _vestedAllocation(address asset_, uint64 timestamp_) internal view virtual returns (uint256) {\n uint256 balance = asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n return _linearVestedAmount(balance + _distributedFungible[asset_], timestamp_);\n }\n\n /// @notice Calculate the amount of assets vested at a given timestamp using a linear vesting schedule\n /// @param totalAllocation The total amount of the asset allocated to the budget (including prior distributions)\n /// @param timestamp The timestamp used to calculate the vested amount\n /// @return The amount of assets vested at that point in time\n function _linearVestedAmount(uint256 totalAllocation, uint64 timestamp) internal view virtual returns (uint256) {\n if (timestamp < start + cliff) {\n return 0;\n } else if (timestamp >= start + duration) {\n return totalAllocation;\n } else {\n return totalAllocation * (timestamp - start) / duration;\n }\n }\n}\n"},"contracts/incentives/AllowListIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {SimpleAllowList} from \"contracts/allowlists/SimpleAllowList.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title SimpleAllowList Incentive\n/// @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n/// @dev In order for any claim to be successful:\n/// - The claimer must not already be on the allow list; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to modify the allow list\ncontract AllowListIncentive is Incentive {\n /// @notice The payload for initializing an AllowListIncentive\n struct InitPayload {\n SimpleAllowList allowList;\n uint256 limit;\n }\n\n /// @notice The SimpleAllowList contract\n SimpleAllowList public allowList;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice Construct a new AllowListIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The packed initialization data `(SimpleAllowList allowList, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n _initializeOwner(msg.sender);\n allowList = init_.allowList;\n limit = init_.limit;\n }\n\n /// @inheritdoc Incentive\n /// @notice Claim a slot on the {SimpleAllowList}\n /// @param data_ The claim data\n function claim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (claims++ >= limit || claimed[claim_.target]) revert NotClaimable();\n claimed[claim_.target] = true;\n\n (address[] memory users, bool[] memory allowed) = _makeAllowListPayload(claim_.target);\n\n allowList.setAllowed(users, allowed);\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @dev Not a valid operation for this type of incentive\n function reclaim(bytes calldata) external pure override returns (bool) {\n revert BoostError.NotImplemented();\n }\n\n /// @inheritdoc Incentive\n function isClaimable(bytes calldata data_) external view virtual override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return claims < limit && !claimed[claim_.target] && !allowList.isAllowed(claim_.target, \"\");\n }\n\n /// @inheritdoc Incentive\n /// @dev No preflight approval is required for this incentive (no tokens are handled)\n function preflight(bytes calldata) external pure override returns (bytes memory) {\n return new bytes(0);\n }\n\n /// @notice Create the payload for the SimpleAllowList\n /// @param target_ The target address to add to the allow list\n /// @return A tuple of users and allowed statuses\n function _makeAllowListPayload(address target_) internal pure returns (address[] memory, bool[] memory) {\n address[] memory users = new address[](1);\n bool[] memory allowed = new bool[](1);\n users[0] = target_;\n allowed[0] = true;\n return (users, allowed);\n }\n}\n"},"contracts/incentives/CGDAIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\n\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title Continuous Gradual Dutch Auction Incentive\n/// @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\ncontract CGDAIncentive is Incentive {\n using SafeTransferLib for address;\n\n /// @notice The ERC20-like token used for the incentive\n address public asset;\n\n /// @notice The payload for initializing a CGDAIncentive\n /// @param asset The address of the ERC20-like token\n /// @param initialReward The initial reward amount\n /// @param rewardDecay The amount to subtract from the current reward after each claim\n /// @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n /// @param totalBudget The total budget for the incentive\n struct InitPayload {\n address asset;\n uint256 initialReward;\n uint256 rewardDecay;\n uint256 rewardBoost;\n uint256 totalBudget;\n }\n\n /// @notice The configuration parameters for the CGDAIncentive\n /// @param rewardDecay The amount to subtract from the current reward after each claim\n /// @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n /// @param lastClaimTime The timestamp of the last claim\n /// @param currentReward The current reward amount\n struct CGDAParameters {\n uint256 rewardDecay;\n uint256 rewardBoost;\n uint256 lastClaimTime;\n uint256 currentReward;\n }\n\n CGDAParameters public cgdaParams;\n uint256 public totalBudget;\n\n /// @notice Construct a new CGDAIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the CGDA Incentive\n /// @param data_ Initialization parameters.\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n uint256 available = init_.asset.balanceOf(address(this));\n if (available < init_.totalBudget) {\n revert BoostError.InsufficientFunds(init_.asset, available, init_.totalBudget);\n }\n\n if (\n init_.initialReward == 0 || init_.rewardDecay == 0 || init_.rewardBoost == 0\n || init_.totalBudget < init_.initialReward\n ) revert BoostError.InvalidInitialization();\n\n asset = init_.asset;\n cgdaParams = CGDAParameters({\n rewardDecay: init_.rewardDecay,\n rewardBoost: init_.rewardBoost,\n lastClaimTime: block.timestamp,\n currentReward: init_.initialReward\n });\n\n totalBudget = init_.totalBudget;\n _initializeOwner(msg.sender);\n }\n\n /// @inheritdoc Incentive\n /// @notice Claim the incentive\n function claim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n claims++;\n\n // Calculate the current reward and update the state\n uint256 reward = currentReward();\n cgdaParams.lastClaimTime = block.timestamp;\n cgdaParams.currentReward =\n reward > cgdaParams.rewardDecay ? reward - cgdaParams.rewardDecay : cgdaParams.rewardDecay;\n\n // Transfer the reward to the recipient\n asset.safeTransfer(claim_.target, reward);\n\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, reward));\n return true;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n // Transfer the tokens back to the intended recipient\n asset.safeTransfer(claim_.target, amount);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, amount));\n\n return true;\n }\n\n /// @inheritdoc Incentive\n function isClaimable(bytes calldata data_) external view virtual override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @inheritdoc Incentive\n /// @notice Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\n /// @param data_ The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\n /// @return The amount of tokens required\n function preflight(bytes calldata data_) external view virtual override returns (bytes memory) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC20,\n asset: init_.asset,\n target: address(this),\n data: abi.encode(Budget.FungiblePayload({amount: init_.totalBudget}))\n })\n );\n }\n\n /// @notice Calculates the current reward based on the time since the last claim.\n /// @return The current reward\n /// @dev The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.\n /// @dev For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\n function currentReward() public view returns (uint256) {\n uint256 timeSinceLastClaim = block.timestamp - cgdaParams.lastClaimTime;\n uint256 available = asset.balanceOf(address(this));\n\n // Calculate the current reward based on the time elapsed since the last claim\n // on a linear scale, with `1 * rewardBoost` added for each hour without a claim\n uint256 projectedReward = cgdaParams.currentReward + (timeSinceLastClaim * cgdaParams.rewardBoost) / 3600;\n return projectedReward > available ? available : projectedReward;\n }\n\n function _isClaimable(address recipient_) internal view returns (bool) {\n uint256 reward = currentReward();\n return reward > 0 && asset.balanceOf(address(this)) >= reward && !claimed[recipient_];\n }\n}\n"},"contracts/incentives/ERC1155Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title ERC1155Incentive\n/// @notice A simple ERC1155 incentive implementation that allows claiming of tokens\ncontract ERC1155Incentive is Incentive, IERC1155Receiver {\n /// @notice The strategy for the incentive\n /// @dev The strategy determines how the incentive is disbursed:\n /// - POOL: Transfer tokens from the pool to the recipient\n /// - MINT: Mint tokens to the recipient directly (not yet implemented)\n enum Strategy {\n POOL,\n MINT\n }\n\n /// @notice The payload for initializing an ERC1155Incentive\n struct InitPayload {\n IERC1155 asset;\n Strategy strategy;\n uint256 tokenId;\n uint256 limit;\n bytes extraData;\n }\n\n /// @notice The address of the ERC1155-compliant contract\n IERC1155 public asset;\n\n /// @notice The strategy for the incentive (MINT or POOL)\n Strategy public strategy;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice The ERC1155 token ID for the incentive\n uint256 public tokenId;\n\n /// @notice Extra data to be passed to the ERC1155 contract\n bytes public extraData;\n\n /// @notice Construct a new ERC1155Incentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed initialization payload\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n // Ensure the strategy is valid (MINT is not yet supported)\n if (init_.strategy == Strategy.MINT) revert BoostError.NotImplemented();\n if (init_.limit == 0) revert BoostError.InvalidInitialization();\n\n // Ensure the maximum reward amount has been allocated\n uint256 available = init_.asset.balanceOf(address(this), init_.tokenId);\n if (available < init_.limit) {\n revert BoostError.InsufficientFunds(address(init_.asset), available, init_.limit);\n }\n\n asset = init_.asset;\n strategy = init_.strategy;\n tokenId = init_.tokenId;\n limit = init_.limit;\n extraData = init_.extraData;\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n // Disburse the incentive based on the strategy (POOL only for now)\n if (strategy == Strategy.POOL) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n claims++;\n claimed[claim_.target] = true;\n\n // wake-disable-next-line reentrancy (not a risk here)\n asset.safeTransferFrom(address(this), claim_.target, tokenId, 1, claim_.data);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, tokenId, uint256(1), claim_.data));\n\n return true;\n }\n\n return false;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n // Ensure the amount is valid and reduce the max claims accordingly\n if (amount > limit) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit -= amount;\n\n // Reclaim the incentive to the intended recipient\n // wake-disable-next-line reentrancy (not a risk here)\n asset.safeTransferFrom(address(this), claim_.target, tokenId, amount, claim_.data);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, tokenId, amount, claim_.data));\n\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @notice Get the required allowance for the incentive\n /// @param data_ The initialization payload for the incentive\n /// @return budgetData The data payload to be passed to the Budget for interpretation\n function preflight(bytes calldata data_) external view override returns (bytes memory budgetData) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC1155,\n asset: address(init_.asset),\n target: address(this),\n data: abi.encode(\n Budget.ERC1155Payload({tokenId: init_.tokenId, amount: init_.limit, data: init_.extraData})\n )\n })\n );\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @inheritdoc Incentive\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Incentive) returns (bool) {\n return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not check the token ID and will accept all tokens\n function onERC1155Received(address, address, uint256, uint256, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n return this.onERC1155Received.selector;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not check the token ID and will accept all batches\n function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n return this.onERC1155BatchReceived.selector;\n }\n}\n"},"contracts/incentives/ERC20Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibPRNG} from \"@solady/utils/LibPRNG.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title ERC20 Incentive\n/// @notice A simple ERC20 incentive implementation that allows claiming of tokens\ncontract ERC20Incentive is Incentive {\n using LibPRNG for LibPRNG.PRNG;\n using SafeTransferLib for address;\n\n /// @notice Emitted when an entry is added to the raffle\n event Entry(address indexed entry);\n\n /// @notice The strategy for the incentive\n /// @dev The strategy determines how the incentive is disbursed:\n /// - POOL: Users claim from a pool of rewards until the limit is reached, with each claim receiving an equal share of the total;\n /// - MINT: New tokens are minted and distributed to the recipient, with each claim receiving an equal amount of newly issued tokens;\n /// - RAFFLE: Users claim a slot in a raffle, and a single winner is randomly drawn to receive the entire reward amount;\n enum Strategy {\n POOL,\n MINT,\n RAFFLE\n }\n\n /// @notice The payload for initializing the incentive\n struct InitPayload {\n address asset;\n Strategy strategy;\n uint256 reward;\n uint256 limit;\n }\n\n /// @notice The address of the ERC20-like token\n address public asset;\n\n /// @notice The strategy for the incentive (MINT or POOL)\n Strategy public strategy;\n\n /// @notice The reward amount issued for each claim\n uint256 public reward;\n\n /// @notice The limit (max claims, or max entries for raffles)\n uint256 public limit;\n\n /// @notice The set of addresses that have claimed a slot in the incentive raffle\n address[] public entries;\n\n /// @notice Construct a new ERC20Incentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n // Ensure the strategy is valid (MINT is not yet supported)\n if (init_.strategy == Strategy.MINT) revert BoostError.NotImplemented();\n if (init_.reward == 0 || init_.limit == 0) revert BoostError.InvalidInitialization();\n\n // Ensure the maximum reward amount has been allocated\n uint256 maxTotalReward = init_.strategy != Strategy.RAFFLE ? init_.reward * init_.limit : init_.reward;\n uint256 available = init_.asset.balanceOf(address(this));\n if (available < maxTotalReward) {\n revert BoostError.InsufficientFunds(init_.asset, available, maxTotalReward);\n }\n\n asset = init_.asset;\n strategy = init_.strategy;\n reward = init_.reward;\n limit = init_.limit;\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n if (strategy == Strategy.POOL) {\n claims++;\n claimed[claim_.target] = true;\n\n asset.safeTransfer(claim_.target, reward);\n\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, reward));\n return true;\n } else if (strategy == Strategy.RAFFLE) {\n claims++;\n claimed[claim_.target] = true;\n entries.push(claim_.target);\n\n emit Entry(claim_.target);\n return true;\n }\n\n return false;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n if (strategy == Strategy.RAFFLE) {\n // Ensure the amount is the full reward and there are no raffle entries, then reset the limit\n if (amount != reward || claims > 0) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit = 0;\n } else {\n // Ensure the amount is a multiple of the reward and reduce the max claims accordingly\n if (amount % reward != 0) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit -= amount / reward;\n }\n\n // Transfer the tokens back to the intended recipient\n asset.safeTransfer(claim_.target, amount);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, amount));\n\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @notice Preflight the incentive to determine the required budget action\n /// @param data_ The {InitPayload} for the incentive\n /// @return budgetData The {Transfer} payload to be passed to the {Budget} for interpretation\n function preflight(bytes calldata data_) external view override returns (bytes memory budgetData) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n uint256 amount = init_.strategy != Strategy.RAFFLE ? init_.reward * init_.limit : init_.reward;\n\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC20,\n asset: init_.asset,\n target: address(this),\n data: abi.encode(Budget.FungiblePayload({amount: amount}))\n })\n );\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n\n /// @notice Draw a winner from the raffle\n /// @dev Only valid when the strategy is set to `Strategy.RAFFLE`\n function drawRaffle() external onlyOwner {\n if (strategy != Strategy.RAFFLE) revert BoostError.Unauthorized();\n\n LibPRNG.PRNG memory _prng = LibPRNG.PRNG({state: block.prevrandao + block.timestamp});\n\n address winnerAddress = entries[_prng.next() % entries.length];\n\n asset.safeTransfer(winnerAddress, reward);\n emit Claimed(winnerAddress, abi.encodePacked(asset, winnerAddress, reward));\n }\n}\n"},"contracts/incentives/Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Incentive\n/// @notice Abstract contract for a generic Incentive within the Boost protocol\n/// @dev Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Incentive is Ownable, Cloneable, ReentrancyGuard {\n /// @notice Emitted when an incentive is claimed\n /// @dev The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\n event Claimed(address indexed recipient, bytes data);\n\n /// @notice Thrown when a claim fails\n error ClaimFailed();\n\n /// @notice Thrown when the incentive is not claimable\n error NotClaimable();\n\n /// @notice A struct representing the payload for an incentive claim\n /// @param target The address of the recipient\n /// @param data The implementation-specific data for the claim, if needed\n struct ClaimPayload {\n address target;\n bytes data;\n }\n\n /// @notice The number of claims that have been made\n uint256 public claims;\n\n /// @notice A mapping of address to claim status\n mapping(address => bool) public claimed;\n\n /// @notice Initialize the contract and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Reclaim assets from the incentive\n /// @param data_ The data payload for the reclaim\n /// @return True if the assets were successfully reclaimed\n function reclaim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check (data, signature, etc.)\n /// @return True if the incentive is claimable based on the data payload\n function isClaimable(bytes calldata data_) external view virtual returns (bool);\n\n /// @notice Get the required allowance for the incentive\n /// @param data_ The initialization payload for the incentive\n /// @return The data payload to be passed to the {Budget} for interpretation\n /// @dev This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\n function preflight(bytes calldata data_) external view virtual returns (bytes memory);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Incentive).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/incentives/PointsIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title Points Incentive\n/// @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n/// @dev In order for any claim to be successful:\n/// - The claimer must not have already claimed the incentive; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to operate the points contract's issuance function\ncontract PointsIncentive is Incentive {\n /// @notice The payload for initializing a PointsIncentive\n struct InitPayload {\n address venue;\n bytes4 selector;\n uint256 quantity;\n uint256 limit;\n }\n\n /// @notice The address of the points contract\n address public venue;\n\n /// @notice The quantity amount issued for each claim\n uint256 public quantity;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice The selector for the issuance function on the points contract\n bytes4 public selector;\n\n /// @notice Construct a new PointsIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed incentive parameters `(address points, uint256 quantity, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n if (init_.quantity == 0 || init_.limit == 0) revert BoostError.InvalidInitialization();\n\n venue = init_.venue;\n selector = init_.selector;\n quantity = init_.quantity;\n limit = init_.limit;\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n claims++;\n claimed[claim_.target] = true;\n\n (bool success,) = venue.call(abi.encodeWithSelector(selector, claim_.target, quantity));\n if (!success) revert ClaimFailed();\n\n emit Claimed(claim_.target, abi.encodePacked(venue, claim_.target, quantity));\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @dev Not a valid operation for this type of incentive\n function reclaim(bytes calldata) external pure override returns (bool) {\n revert BoostError.NotImplemented();\n }\n\n /// @inheritdoc Incentive\n /// @notice No token approvals are required for this incentive\n function preflight(bytes calldata) external pure override returns (bytes memory budgetData) {\n return new bytes(0);\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n}\n"},"contracts/shared/BoostError.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\n/// @title BoostError\n/// @notice Standardized errors for the Boost protocol\n/// @dev Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing.\nlibrary BoostError {\n /// @notice Thrown when a claim attempt fails\n error ClaimFailed(address caller, bytes data);\n\n /// @notice Thrown when there are insufficient funds for an operation\n error InsufficientFunds(address asset, uint256 available, uint256 required);\n\n /// @notice Thrown when a non-conforming instance for a given type is encountered\n error InvalidInstance(bytes4 expectedInterface, address instance);\n\n /// @notice Thrown when an invalid initialization is attempted\n error InvalidInitialization();\n\n /// @notice Thrown when the length of two arrays are not equal\n error LengthMismatch();\n\n /// @notice Thrown when a method is not implemented\n error NotImplemented();\n\n /// @notice Thrown when a previously used signature is replayed\n error Replayed(address signer, bytes32 hash, bytes signature);\n\n /// @notice Thrown when a transfer fails for an unknown reason\n error TransferFailed(address asset, address to, uint256 amount);\n\n /// @notice Thrown when the requested action is unauthorized\n error Unauthorized();\n}\n"},"contracts/shared/BoostLib.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {LibZip} from \"@solady/utils/LibZip.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\nlibrary BoostLib {\n using LibClone for address;\n using LibZip for bytes;\n\n /// @notice A struct representing a single Boost\n struct Boost {\n Action action;\n Validator validator;\n AllowList allowList;\n Budget budget;\n Incentive[] incentives;\n uint64 protocolFee;\n uint64 referralFee;\n uint256 maxParticipants;\n address owner;\n }\n\n /// @notice A base struct for a contract and its initialization parameters\n /// @dev This is used to pass the base contract and its initialization parameters in an efficient manner\n struct Target {\n bool isBase;\n address instance;\n bytes parameters;\n }\n\n /// @notice Clone and initialize a contract with a deterministic salt\n /// @param $ The contract to clone and initialize\n /// @param salt_ The salt for the deterministic clone\n /// @param initData_ The initialization data for the contract\n /// @return _clone The cloned and initialized contract\n function cloneAndInitialize(address $, bytes32 salt_, bytes memory initData_) internal returns (address _clone) {\n _clone = $.cloneDeterministic(salt_);\n // wake-disable-next-line reentrancy (false positive)\n Cloneable(_clone).initialize(initData_);\n }\n}\n"},"contracts/shared/Cloneable.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Initializable} from \"@solady/utils/Initializable.sol\";\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\n\n/// @title Cloneable\n/// @notice A contract that can be cloned and initialized only once\nabstract contract Cloneable is Initializable, ERC165 {\n /// @notice Thrown when an inheriting contract does not implement the initializer function\n error InitializerNotImplemented();\n\n /// @notice Thrown when the provided initialization data is invalid\n /// @dev This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\n error InvalidInitializationData();\n\n /// @notice Thrown when the contract has already been initialized\n error CloneAlreadyInitialized();\n\n /// @notice A modifier to restrict a function to only be called before initialization\n /// @dev This is intended to enforce that a function can only be called before the contract has been initialized\n modifier onlyBeforeInitialization() {\n if (_getInitializedVersion() != 0) revert CloneAlreadyInitialized();\n _;\n }\n\n /// @notice Initialize the clone with the given arbitrary data\n /// @param - The compressed initialization data (if required)\n /// @dev The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}\n /// @dev All implementations must override this function to initialize the contract\n function initialize(bytes calldata) public virtual initializer {\n revert InitializerNotImplemented();\n }\n\n /// @inheritdoc ERC165\n /// @notice Check if the contract supports the given interface\n /// @param interfaceId The interface identifier\n /// @return True if the contract supports the interface\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(Cloneable).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/shared/Mocks.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibString} from \"@solady/utils/LibString.sol\";\nimport {ERC20} from \"@solady/tokens/ERC20.sol\";\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\nimport {ERC1155} from \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\n\n/**\n * 🚨 WARNING: The mocks in this file are for testing purposes only. DO NOT use\n * ANY of this code in production, ever, or you will lose all of your money,\n * friends, and credibility. Also, your cat might run away for fear of being\n * associated with someone who makes such poor life choices.\n */\n\n/// @title MockERC721\n/// @notice A mock ERC721 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC721 is ERC721 {\n uint256 public totalSupply;\n uint256 public mintPrice = 0.1 ether;\n\n function name() public pure override returns (string memory) {\n return \"Mock ERC721\";\n }\n\n function symbol() public pure override returns (string memory) {\n return \"MOCK\";\n }\n\n function mint(address to) public payable {\n require(msg.value >= mintPrice, \"MockERC721: gimme more money!\");\n // pre-increment so IDs start at 1\n _mint(to, ++totalSupply);\n }\n\n function tokenURI(uint256 id) public view virtual override returns (string memory) {\n return string(abi.encodePacked(\"https://example.com/token/\", LibString.toString(id)));\n }\n}\n\n/// @title MockERC20\n/// @notice A mock ERC20 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC20 is ERC20 {\n function name() public pure override returns (string memory) {\n return \"Mock ERC20\";\n }\n\n function symbol() public pure override returns (string memory) {\n return \"MOCK\";\n }\n\n function mint(address to, uint256 amount) public {\n _mint(to, amount);\n }\n\n function mintPayable(address to, uint256 amount) public payable {\n require(msg.value >= amount / 100, \"MockERC20: gimme more money!\");\n _mint(to, amount);\n }\n}\n\n/// @title MockERC1155\n/// @notice A mock ERC1155 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC1155 is ERC1155 {\n constructor() ERC1155(\"https://example.com/token/{id}\") {}\n\n function mint(address to, uint256 id, uint256 amount) public {\n _mint(to, id, amount, \"\");\n }\n\n function burn(address from, uint256 id, uint256 amount) public {\n _burn(from, id, amount);\n }\n}\n"},"contracts/tokens/Points.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {ERC20} from \"@solady/tokens/ERC20.sol\";\nimport {Initializable} from \"@solady/utils/Initializable.sol\";\nimport {OwnableRoles} from \"@solady/auth/OwnableRoles.sol\";\n\n/// @title Points\n/// @notice A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred.\ncontract Points is ERC20, Initializable, OwnableRoles {\n string private _name;\n string private _symbol;\n\n /// @notice The role for issuing points\n uint256 public constant ISSUER_ROLE = 1 << 1;\n\n /// @notice Thrown when an attempt is made to transfer points\n error NonTransferable();\n\n /// @notice Initialize the Points contract\n /// @param name_ The name of the token\n /// @param symbol_ The symbol of the token\n /// @param minter_ The initial holder of the minter role\n function initialize(string memory name_, string memory symbol_, address minter_) external initializer {\n _initializeOwner(msg.sender);\n\n _name = name_;\n _symbol = symbol_;\n\n _grantRoles(minter_, ISSUER_ROLE);\n }\n\n /// @notice Issue `amount` points and assign them to `to`\n /// @param to The address to assign the points to\n /// @param amount The amount of points to issue\n function issue(address to, uint256 amount) external onlyOwnerOrRoles(ISSUER_ROLE) {\n _mint(to, amount);\n }\n\n /// @inheritdoc ERC20\n /// @return The name of the token\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /// @inheritdoc ERC20\n /// @return The symbol of the token\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /// @inheritdoc ERC20\n /// @notice A hook that is called before any transfer of points\n /// @dev Reverts if the transfer is not a mint or burn (i.e. if neither `from` nor `to` are the zero address)\n function _beforeTokenTransfer(address from, address to, uint256) internal virtual override {\n if (from != address(0) && to != address(0)) revert NonTransferable();\n }\n}\n"},"contracts/validators/SignerValidator.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SignatureCheckerLib} from \"@solady/utils/SignatureCheckerLib.sol\";\nimport {IERC1271} from \"@openzeppelin/contracts/interfaces/IERC1271.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Signer Validator\n/// @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\ncontract SignerValidator is Validator {\n using SignatureCheckerLib for address;\n\n /// @dev The set of authorized signers\n mapping(address => bool) public signers;\n\n /// @dev The set of used hashes (for replay protection)\n mapping(bytes32 => bool) private _used;\n\n /// @notice Construct a new SignerValidator\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the list of authorized signers\n /// @param data_ The compressed list of authorized signers\n /// @dev The first address in the list will be the initial owner of the contract\n function initialize(bytes calldata data_) public virtual override initializer {\n (address[] memory signers_) = abi.decode(data_, (address[]));\n _initializeOwner(signers_[0]);\n for (uint256 i = 0; i < signers_.length; i++) {\n signers[signers_[i]] = true;\n }\n }\n\n /// @notice Validate that the action has been completed successfully\n /// @param data_ The data payload for the validation check\n /// @return True if the action has been validated based on the data payload\n /// @dev The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)\n /// @dev The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer\n function validate(bytes calldata data_) external override returns (bool) {\n (address signer_, bytes32 hash_, bytes memory signature_) = abi.decode(data_, (address, bytes32, bytes));\n\n if (!signers[signer_]) revert BoostError.Unauthorized();\n if (_used[hash_]) revert BoostError.Replayed(signer_, hash_, signature_);\n\n // Mark the hash as used to prevent replays\n _used[hash_] = true;\n\n // Return the result of the signature check\n return signer_.isValidSignatureNow(SignatureCheckerLib.toEthSignedMessageHash(hash_), signature_);\n }\n\n /// @notice Set the authorized status of a signer\n /// @param signers_ The list of signers to update\n /// @param authorized_ The authorized status of each signer\n function setAuthorized(address[] calldata signers_, bool[] calldata authorized_) external onlyOwner {\n if (signers_.length != authorized_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < signers_.length; i++) {\n signers[signers_[i]] = authorized_[i];\n }\n }\n}\n"},"contracts/validators/Validator.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Validator\n/// @notice Abstract contract for a generic Validator within the Boost protocol\n/// @dev Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Validator is Ownable, Cloneable {\n struct ValidatePayload {\n address target;\n bytes data;\n }\n\n /// @notice Initialize the contract and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Validate that a given user has completed an acction successfully\n /// @param data_ The compressed {ValidatePayload} to be validated\n /// @return True if the action has been validated based on the data payload\n /// @dev The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specific\n /// @dev For example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}\n function validate(bytes calldata data_) external virtual returns (bool);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Validator).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"}},"settings":{"evmVersion":"cancun","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"2394","formattedMessage":"Warning: Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.\n --> @openzeppelin/contracts/utils/StorageSlot.sol:247:13:\n |\n247 | tstore(slot, value)\n | ^^^^^^\n\n","message":"Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.","severity":"warning","sourceLocation":{"end":7119,"file":"@openzeppelin/contracts/utils/StorageSlot.sol","start":7113},"type":"Warning"},{"component":"general","errorCode":"5740","formattedMessage":"Warning: Unreachable code.\n --> @solady/utils/Initializable.sol:81:13:\n |\n81 | if s {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Unreachable code.","severity":"warning","sourceLocation":{"end":4178,"file":"@solady/utils/Initializable.sol","start":3915},"type":"Warning"}],"sources":{"@openzeppelin/contracts/interfaces/IERC1271.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1271.sol","exportedSymbols":{"IERC1271":[13]},"id":14,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1271","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"133:160:0","text":" @dev Interface of the ERC-1271 standard signature validation method for\n contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]."},"fullyImplemented":false,"id":13,"linearizedBaseContracts":[13],"name":"IERC1271","nameLocation":"304:8:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"319:220:0","text":" @dev Should return whether the signature provided is valid for the provided data\n @param hash Hash of the data to be signed\n @param signature Signature byte array associated with _data"},"functionSelector":"1626ba7e","id":12,"implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"553:16:0","nodeType":"FunctionDefinition","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5,"mutability":"mutable","name":"hash","nameLocation":"578:4:0","nodeType":"VariableDeclaration","scope":12,"src":"570:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4,"name":"bytes32","nodeType":"ElementaryTypeName","src":"570:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"signature","nameLocation":"597:9:0","nodeType":"VariableDeclaration","scope":12,"src":"584:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6,"name":"bytes","nodeType":"ElementaryTypeName","src":"584:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"569:38:0"},"returnParameters":{"id":11,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"mutability":"mutable","name":"magicValue","nameLocation":"638:10:0","nodeType":"VariableDeclaration","scope":12,"src":"631:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9,"name":"bytes4","nodeType":"ElementaryTypeName","src":"631:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"630:19:0"},"scope":13,"src":"544:106:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":14,"src":"294:358:0","usedErrors":[],"usedEvents":[]}],"src":"107:546:0"},"id":0},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[150],"IERC20Errors":[55],"IERC721Errors":[103]},"id":151,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":16,"nodeType":"StructuredDocumentation","src":"138:141:1","text":" @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."},"fullyImplemented":true,"id":55,"linearizedBaseContracts":[55],"name":"IERC20Errors","nameLocation":"290:12:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17,"nodeType":"StructuredDocumentation","src":"309:309:1","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":25,"name":"ERC20InsufficientBalance","nameLocation":"629:24:1","nodeType":"ErrorDefinition","parameters":{"id":24,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"mutability":"mutable","name":"sender","nameLocation":"662:6:1","nodeType":"VariableDeclaration","scope":25,"src":"654:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"balance","nameLocation":"678:7:1","nodeType":"VariableDeclaration","scope":25,"src":"670:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"needed","nameLocation":"695:6:1","nodeType":"VariableDeclaration","scope":25,"src":"687:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"653:49:1"},"src":"623:80:1"},{"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"709:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":30,"name":"ERC20InvalidSender","nameLocation":"872:18:1","nodeType":"ErrorDefinition","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"sender","nameLocation":"899:6:1","nodeType":"VariableDeclaration","scope":30,"src":"891:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"891:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"890:16:1"},"src":"866:41:1"},{"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"913:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":35,"name":"ERC20InvalidReceiver","nameLocation":"1083:20:1","nodeType":"ErrorDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"receiver","nameLocation":"1112:8:1","nodeType":"VariableDeclaration","scope":35,"src":"1104:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1103:18:1"},"src":"1077:45:1"},{"documentation":{"id":36,"nodeType":"StructuredDocumentation","src":"1128:345:1","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":44,"name":"ERC20InsufficientAllowance","nameLocation":"1484:26:1","nodeType":"ErrorDefinition","parameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"spender","nameLocation":"1519:7:1","nodeType":"VariableDeclaration","scope":44,"src":"1511:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40,"mutability":"mutable","name":"allowance","nameLocation":"1536:9:1","nodeType":"VariableDeclaration","scope":44,"src":"1528:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42,"mutability":"mutable","name":"needed","nameLocation":"1555:6:1","nodeType":"VariableDeclaration","scope":44,"src":"1547:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1510:52:1"},"src":"1478:85:1"},{"documentation":{"id":45,"nodeType":"StructuredDocumentation","src":"1569:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":49,"name":"ERC20InvalidApprover","nameLocation":"1754:20:1","nodeType":"ErrorDefinition","parameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"mutability":"mutable","name":"approver","nameLocation":"1783:8:1","nodeType":"VariableDeclaration","scope":49,"src":"1775:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46,"name":"address","nodeType":"ElementaryTypeName","src":"1775:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1774:18:1"},"src":"1748:45:1"},{"documentation":{"id":50,"nodeType":"StructuredDocumentation","src":"1799:195:1","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":54,"name":"ERC20InvalidSpender","nameLocation":"2005:19:1","nodeType":"ErrorDefinition","parameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52,"mutability":"mutable","name":"spender","nameLocation":"2033:7:1","nodeType":"VariableDeclaration","scope":54,"src":"2025:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2024:17:1"},"src":"1999:43:1"}],"scope":151,"src":"280:1764:1","usedErrors":[25,30,35,44,49,54],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":56,"nodeType":"StructuredDocumentation","src":"2046:143:1","text":" @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."},"fullyImplemented":true,"id":103,"linearizedBaseContracts":[103],"name":"IERC721Errors","nameLocation":"2200:13:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":57,"nodeType":"StructuredDocumentation","src":"2220:219:1","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":61,"name":"ERC721InvalidOwner","nameLocation":"2450:18:1","nodeType":"ErrorDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59,"mutability":"mutable","name":"owner","nameLocation":"2477:5:1","nodeType":"VariableDeclaration","scope":61,"src":"2469:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58,"name":"address","nodeType":"ElementaryTypeName","src":"2469:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2468:15:1"},"src":"2444:40:1"},{"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"2490:132:1","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":66,"name":"ERC721NonexistentToken","nameLocation":"2633:22:1","nodeType":"ErrorDefinition","parameters":{"id":65,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64,"mutability":"mutable","name":"tokenId","nameLocation":"2664:7:1","nodeType":"VariableDeclaration","scope":66,"src":"2656:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63,"name":"uint256","nodeType":"ElementaryTypeName","src":"2656:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2655:17:1"},"src":"2627:46:1"},{"documentation":{"id":67,"nodeType":"StructuredDocumentation","src":"2679:289:1","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":75,"name":"ERC721IncorrectOwner","nameLocation":"2979:20:1","nodeType":"ErrorDefinition","parameters":{"id":74,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"sender","nameLocation":"3008:6:1","nodeType":"VariableDeclaration","scope":75,"src":"3000:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"3000:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":71,"mutability":"mutable","name":"tokenId","nameLocation":"3024:7:1","nodeType":"VariableDeclaration","scope":75,"src":"3016:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70,"name":"uint256","nodeType":"ElementaryTypeName","src":"3016:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73,"mutability":"mutable","name":"owner","nameLocation":"3041:5:1","nodeType":"VariableDeclaration","scope":75,"src":"3033:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72,"name":"address","nodeType":"ElementaryTypeName","src":"3033:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2999:48:1"},"src":"2973:75:1"},{"documentation":{"id":76,"nodeType":"StructuredDocumentation","src":"3054:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":80,"name":"ERC721InvalidSender","nameLocation":"3217:19:1","nodeType":"ErrorDefinition","parameters":{"id":79,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78,"mutability":"mutable","name":"sender","nameLocation":"3245:6:1","nodeType":"VariableDeclaration","scope":80,"src":"3237:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"3237:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3236:16:1"},"src":"3211:42:1"},{"documentation":{"id":81,"nodeType":"StructuredDocumentation","src":"3259:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":85,"name":"ERC721InvalidReceiver","nameLocation":"3429:21:1","nodeType":"ErrorDefinition","parameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83,"mutability":"mutable","name":"receiver","nameLocation":"3459:8:1","nodeType":"VariableDeclaration","scope":85,"src":"3451:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82,"name":"address","nodeType":"ElementaryTypeName","src":"3451:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3450:18:1"},"src":"3423:46:1"},{"documentation":{"id":86,"nodeType":"StructuredDocumentation","src":"3475:247:1","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":92,"name":"ERC721InsufficientApproval","nameLocation":"3733:26:1","nodeType":"ErrorDefinition","parameters":{"id":91,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88,"mutability":"mutable","name":"operator","nameLocation":"3768:8:1","nodeType":"VariableDeclaration","scope":92,"src":"3760:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87,"name":"address","nodeType":"ElementaryTypeName","src":"3760:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90,"mutability":"mutable","name":"tokenId","nameLocation":"3786:7:1","nodeType":"VariableDeclaration","scope":92,"src":"3778:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3759:35:1"},"src":"3727:68:1"},{"documentation":{"id":93,"nodeType":"StructuredDocumentation","src":"3801:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":97,"name":"ERC721InvalidApprover","nameLocation":"3986:21:1","nodeType":"ErrorDefinition","parameters":{"id":96,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"approver","nameLocation":"4016:8:1","nodeType":"VariableDeclaration","scope":97,"src":"4008:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4007:18:1"},"src":"3980:46:1"},{"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"4032:197:1","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":102,"name":"ERC721InvalidOperator","nameLocation":"4240:21:1","nodeType":"ErrorDefinition","parameters":{"id":101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100,"mutability":"mutable","name":"operator","nameLocation":"4270:8:1","nodeType":"VariableDeclaration","scope":102,"src":"4262:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99,"name":"address","nodeType":"ElementaryTypeName","src":"4262:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4261:18:1"},"src":"4234:46:1"}],"scope":151,"src":"2190:2092:1","usedErrors":[61,66,75,80,85,92,97,102],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":104,"nodeType":"StructuredDocumentation","src":"4284:145:1","text":" @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."},"fullyImplemented":true,"id":150,"linearizedBaseContracts":[150],"name":"IERC1155Errors","nameLocation":"4440:14:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":105,"nodeType":"StructuredDocumentation","src":"4461:361:1","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":115,"name":"ERC1155InsufficientBalance","nameLocation":"4833:26:1","nodeType":"ErrorDefinition","parameters":{"id":114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"sender","nameLocation":"4868:6:1","nodeType":"VariableDeclaration","scope":115,"src":"4860:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":106,"name":"address","nodeType":"ElementaryTypeName","src":"4860:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109,"mutability":"mutable","name":"balance","nameLocation":"4884:7:1","nodeType":"VariableDeclaration","scope":115,"src":"4876:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108,"name":"uint256","nodeType":"ElementaryTypeName","src":"4876:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":111,"mutability":"mutable","name":"needed","nameLocation":"4901:6:1","nodeType":"VariableDeclaration","scope":115,"src":"4893:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110,"name":"uint256","nodeType":"ElementaryTypeName","src":"4893:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":113,"mutability":"mutable","name":"tokenId","nameLocation":"4917:7:1","nodeType":"VariableDeclaration","scope":115,"src":"4909:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112,"name":"uint256","nodeType":"ElementaryTypeName","src":"4909:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4859:66:1"},"src":"4827:99:1"},{"documentation":{"id":116,"nodeType":"StructuredDocumentation","src":"4932:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":120,"name":"ERC1155InvalidSender","nameLocation":"5095:20:1","nodeType":"ErrorDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"sender","nameLocation":"5124:6:1","nodeType":"VariableDeclaration","scope":120,"src":"5116:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":117,"name":"address","nodeType":"ElementaryTypeName","src":"5116:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5115:16:1"},"src":"5089:43:1"},{"documentation":{"id":121,"nodeType":"StructuredDocumentation","src":"5138:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":125,"name":"ERC1155InvalidReceiver","nameLocation":"5308:22:1","nodeType":"ErrorDefinition","parameters":{"id":124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":123,"mutability":"mutable","name":"receiver","nameLocation":"5339:8:1","nodeType":"VariableDeclaration","scope":125,"src":"5331:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122,"name":"address","nodeType":"ElementaryTypeName","src":"5331:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5330:18:1"},"src":"5302:47:1"},{"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"5355:256:1","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":132,"name":"ERC1155MissingApprovalForAll","nameLocation":"5622:28:1","nodeType":"ErrorDefinition","parameters":{"id":131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"mutability":"mutable","name":"operator","nameLocation":"5659:8:1","nodeType":"VariableDeclaration","scope":132,"src":"5651:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"5651:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"owner","nameLocation":"5677:5:1","nodeType":"VariableDeclaration","scope":132,"src":"5669:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":129,"name":"address","nodeType":"ElementaryTypeName","src":"5669:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5650:33:1"},"src":"5616:68:1"},{"documentation":{"id":133,"nodeType":"StructuredDocumentation","src":"5690:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":137,"name":"ERC1155InvalidApprover","nameLocation":"5875:22:1","nodeType":"ErrorDefinition","parameters":{"id":136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":135,"mutability":"mutable","name":"approver","nameLocation":"5906:8:1","nodeType":"VariableDeclaration","scope":137,"src":"5898:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":134,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5897:18:1"},"src":"5869:47:1"},{"documentation":{"id":138,"nodeType":"StructuredDocumentation","src":"5922:197:1","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":142,"name":"ERC1155InvalidOperator","nameLocation":"6130:22:1","nodeType":"ErrorDefinition","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":140,"mutability":"mutable","name":"operator","nameLocation":"6161:8:1","nodeType":"VariableDeclaration","scope":142,"src":"6153:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":139,"name":"address","nodeType":"ElementaryTypeName","src":"6153:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6152:18:1"},"src":"6124:47:1"},{"documentation":{"id":143,"nodeType":"StructuredDocumentation","src":"6177:280:1","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":149,"name":"ERC1155InvalidArrayLength","nameLocation":"6468:25:1","nodeType":"ErrorDefinition","parameters":{"id":148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":145,"mutability":"mutable","name":"idsLength","nameLocation":"6502:9:1","nodeType":"VariableDeclaration","scope":149,"src":"6494:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":144,"name":"uint256","nodeType":"ElementaryTypeName","src":"6494:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":147,"mutability":"mutable","name":"valuesLength","nameLocation":"6521:12:1","nodeType":"VariableDeclaration","scope":149,"src":"6513:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":146,"name":"uint256","nodeType":"ElementaryTypeName","src":"6513:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6493:41:1"},"src":"6462:73:1"}],"scope":151,"src":"4430:2107:1","usedErrors":[115,120,125,132,137,142,149],"usedEvents":[]}],"src":"112:6426:1"},"id":1},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","exportedSymbols":{"Arrays":[2290],"Context":[2320],"ERC1155":[1067],"ERC1155Utils":[1402],"ERC165":[2845],"IERC1155":[1190],"IERC1155Errors":[150],"IERC1155MetadataURI":[1248],"IERC165":[2857]},"id":1068,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":152,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:2"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"./IERC1155.sol","id":154,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":1191,"src":"135:40:2","symbolAliases":[{"foreign":{"id":153,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"143:8:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol","file":"./extensions/IERC1155MetadataURI.sol","id":156,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":1249,"src":"176:73:2","symbolAliases":[{"foreign":{"id":155,"name":"IERC1155MetadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"184:19:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol","file":"./utils/ERC1155Utils.sol","id":158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":1403,"src":"250:54:2","symbolAliases":[{"foreign":{"id":157,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"258:12:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":2321,"src":"305:48:2","symbolAliases":[{"foreign":{"id":159,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2320,"src":"313:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":163,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":2846,"src":"354:69:2","symbolAliases":[{"foreign":{"id":161,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"362:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":162,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"371:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Arrays.sol","file":"../../utils/Arrays.sol","id":165,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":2291,"src":"424:46:2","symbolAliases":[{"foreign":{"id":164,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2290,"src":"432:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":167,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1068,"sourceUnit":151,"src":"471:67:2","symbolAliases":[{"foreign":{"id":166,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"479:14:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":169,"name":"Context","nameLocations":["754:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2320,"src":"754:7:2"},"id":170,"nodeType":"InheritanceSpecifier","src":"754:7:2"},{"baseName":{"id":171,"name":"ERC165","nameLocations":["763:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"763:6:2"},"id":172,"nodeType":"InheritanceSpecifier","src":"763:6:2"},{"baseName":{"id":173,"name":"IERC1155","nameLocations":["771:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"771:8:2"},"id":174,"nodeType":"InheritanceSpecifier","src":"771:8:2"},{"baseName":{"id":175,"name":"IERC1155MetadataURI","nameLocations":["781:19:2"],"nodeType":"IdentifierPath","referencedDeclaration":1248,"src":"781:19:2"},"id":176,"nodeType":"InheritanceSpecifier","src":"781:19:2"},{"baseName":{"id":177,"name":"IERC1155Errors","nameLocations":["802:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":150,"src":"802:14:2"},"id":178,"nodeType":"InheritanceSpecifier","src":"802:14:2"}],"canonicalName":"ERC1155","contractDependencies":[],"contractKind":"contract","documentation":{"id":168,"nodeType":"StructuredDocumentation","src":"540:184:2","text":" @dev Implementation of the basic standard multi-token.\n See https://eips.ethereum.org/EIPS/eip-1155\n Originally based on code by Enjin: https://github.com/enjin/erc-1155"},"fullyImplemented":true,"id":1067,"linearizedBaseContracts":[1067,150,1248,1190,2845,2857,2320],"name":"ERC1155","nameLocation":"743:7:2","nodeType":"ContractDefinition","nodes":[{"global":false,"id":182,"libraryName":{"id":179,"name":"Arrays","nameLocations":["829:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2290,"src":"829:6:2"},"nodeType":"UsingForDirective","src":"823:27:2","typeName":{"baseType":{"id":180,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":181,"nodeType":"ArrayTypeName","src":"840:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},{"global":false,"id":186,"libraryName":{"id":183,"name":"Arrays","nameLocations":["861:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2290,"src":"861:6:2"},"nodeType":"UsingForDirective","src":"855:27:2","typeName":{"baseType":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":185,"nodeType":"ArrayTypeName","src":"872:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},{"constant":false,"id":192,"mutability":"mutable","name":"_balances","nameLocation":"955:9:2","nodeType":"VariableDeclaration","scope":1067,"src":"888:76:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"},"typeName":{"id":191,"keyName":"id","keyNameLocation":"904:2:2","keyType":{"id":187,"name":"uint256","nodeType":"ElementaryTypeName","src":"896:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"888:58:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":190,"keyName":"account","keyNameLocation":"926:7:2","keyType":{"id":188,"name":"address","nodeType":"ElementaryTypeName","src":"918:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"910:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":189,"name":"uint256","nodeType":"ElementaryTypeName","src":"937:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":198,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1041:18:2","nodeType":"VariableDeclaration","scope":1067,"src":"971:88:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":197,"keyName":"account","keyNameLocation":"987:7:2","keyType":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"979:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"971:61:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":196,"keyName":"operator","keyNameLocation":"1014:8:2","keyType":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"998:33:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":195,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"constant":false,"id":200,"mutability":"mutable","name":"_uri","nameLocation":"1195:4:2","nodeType":"VariableDeclaration","scope":1067,"src":"1180:19:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":199,"name":"string","nodeType":"ElementaryTypeName","src":"1180:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":210,"nodeType":"Block","src":"1281:30:2","statements":[{"expression":{"arguments":[{"id":207,"name":"uri_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"1299:4:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":206,"name":"_setURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":828,"src":"1291:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1291:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":209,"nodeType":"ExpressionStatement","src":"1291:13:2"}]},"documentation":{"id":201,"nodeType":"StructuredDocumentation","src":"1206:38:2","text":" @dev See {_setURI}."},"id":211,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":203,"mutability":"mutable","name":"uri_","nameLocation":"1275:4:2","nodeType":"VariableDeclaration","scope":211,"src":"1261:18:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":202,"name":"string","nodeType":"ElementaryTypeName","src":"1261:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1260:20:2"},"returnParameters":{"id":205,"nodeType":"ParameterList","parameters":[],"src":"1281:0:2"},"scope":1067,"src":"1249:62:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2844,2856],"body":{"id":241,"nodeType":"Block","src":"1486:197:2","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"1515:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":224,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"1535:8:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}],"id":223,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1530:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155_$1190","typeString":"type(contract IERC1155)"}},"id":226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1545:11:2","memberName":"interfaceId","nodeType":"MemberAccess","src":"1530:26:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1515:41:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":228,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"1572:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":230,"name":"IERC1155MetadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1592:19:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155MetadataURI_$1248_$","typeString":"type(contract IERC1155MetadataURI)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155MetadataURI_$1248_$","typeString":"type(contract IERC1155MetadataURI)"}],"id":229,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1587:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1587:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155MetadataURI_$1248","typeString":"type(contract IERC1155MetadataURI)"}},"id":232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1613:11:2","memberName":"interfaceId","nodeType":"MemberAccess","src":"1587:37:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1572:52:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1515:109:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":237,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"1664:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":235,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1640:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC1155_$1067_$","typeString":"type(contract super ERC1155)"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1646:17:2","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2844,"src":"1640:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1640:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1515:161:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":221,"id":240,"nodeType":"Return","src":"1496:180:2"}]},"documentation":{"id":212,"nodeType":"StructuredDocumentation","src":"1317:56:2","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":242,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1387:17:2","nodeType":"FunctionDefinition","overrides":{"id":218,"nodeType":"OverrideSpecifier","overrides":[{"id":216,"name":"ERC165","nameLocations":["1454:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"1454:6:2"},{"id":217,"name":"IERC165","nameLocations":["1462:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"1462:7:2"}],"src":"1445:25:2"},"parameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":214,"mutability":"mutable","name":"interfaceId","nameLocation":"1412:11:2","nodeType":"VariableDeclaration","scope":242,"src":"1405:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":213,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1405:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1404:20:2"},"returnParameters":{"id":221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":242,"src":"1480:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":219,"name":"bool","nodeType":"ElementaryTypeName","src":"1480:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1479:6:2"},"scope":1067,"src":"1378:305:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1247],"body":{"id":252,"nodeType":"Block","src":"2157:28:2","statements":[{"expression":{"id":250,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"2174:4:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":249,"id":251,"nodeType":"Return","src":"2167:11:2"}]},"documentation":{"id":243,"nodeType":"StructuredDocumentation","src":"1689:388:2","text":" @dev See {IERC1155MetadataURI-uri}.\n This implementation returns the same URI for *all* token types. It relies\n on the token type ID substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n Clients calling this function must replace the `\\{id\\}` substring with the\n actual token type ID."},"functionSelector":"0e89341c","id":253,"implemented":true,"kind":"function","modifiers":[],"name":"uri","nameLocation":"2091:3:2","nodeType":"FunctionDefinition","parameters":{"id":246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":253,"src":"2095:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":244,"name":"uint256","nodeType":"ElementaryTypeName","src":"2095:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2094:18:2"},"returnParameters":{"id":249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":253,"src":"2142:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":247,"name":"string","nodeType":"ElementaryTypeName","src":"2142:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2141:15:2"},"scope":1067,"src":"2082:103:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1128],"body":{"id":269,"nodeType":"Block","src":"2331:46:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":263,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"2348:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":265,"indexExpression":{"id":264,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"2358:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":267,"indexExpression":{"id":266,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"2362:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:22:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":262,"id":268,"nodeType":"Return","src":"2341:29:2"}]},"documentation":{"id":254,"nodeType":"StructuredDocumentation","src":"2191:49:2","text":" @dev See {IERC1155-balanceOf}."},"functionSelector":"00fdd58e","id":270,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2254:9:2","nodeType":"FunctionDefinition","parameters":{"id":259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":256,"mutability":"mutable","name":"account","nameLocation":"2272:7:2","nodeType":"VariableDeclaration","scope":270,"src":"2264:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":255,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":258,"mutability":"mutable","name":"id","nameLocation":"2289:2:2","nodeType":"VariableDeclaration","scope":270,"src":"2281:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":257,"name":"uint256","nodeType":"ElementaryTypeName","src":"2281:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2263:29:2"},"returnParameters":{"id":262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":270,"src":"2322:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":260,"name":"uint256","nodeType":"ElementaryTypeName","src":"2322:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2321:9:2"},"scope":1067,"src":"2245:132:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1141],"body":{"id":339,"nodeType":"Block","src":"2676:410:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":283,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2690:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2699:6:2","memberName":"length","nodeType":"MemberAccess","src":"2690:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":285,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"2709:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2713:6:2","memberName":"length","nodeType":"MemberAccess","src":"2709:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2690:29:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":296,"nodeType":"IfStatement","src":"2686:121:2","trueBody":{"id":295,"nodeType":"Block","src":"2721:86:2","statements":[{"errorCall":{"arguments":[{"expression":{"id":289,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"2768:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2772:6:2","memberName":"length","nodeType":"MemberAccess","src":"2768:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":291,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2780:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2789:6:2","memberName":"length","nodeType":"MemberAccess","src":"2780:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":288,"name":"ERC1155InvalidArrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"2742:25:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2742:54:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":294,"nodeType":"RevertStatement","src":"2735:61:2"}]}},{"assignments":[301],"declarations":[{"constant":false,"id":301,"mutability":"mutable","name":"batchBalances","nameLocation":"2834:13:2","nodeType":"VariableDeclaration","scope":339,"src":"2817:30:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":299,"name":"uint256","nodeType":"ElementaryTypeName","src":"2817:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":300,"nodeType":"ArrayTypeName","src":"2817:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":308,"initialValue":{"arguments":[{"expression":{"id":305,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2864:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2873:6:2","memberName":"length","nodeType":"MemberAccess","src":"2864:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2850:13:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2854:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":303,"nodeType":"ArrayTypeName","src":"2854:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2817:63:2"},{"body":{"id":335,"nodeType":"Block","src":"2937:112:2","statements":[{"expression":{"id":333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":320,"name":"batchBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"2951:13:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":322,"indexExpression":{"id":321,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"2965:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2951:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":326,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"3008:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":324,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2980:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2989:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2230,"src":"2980:27:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address[] memory,uint256) pure returns (address)"}},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":330,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"3035:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":328,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"3012:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3016:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"3012:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3012:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":323,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"2970:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2970:68:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2951:87:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":334,"nodeType":"ExpressionStatement","src":"2951:87:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":313,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"2911:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":314,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"2915:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2924:6:2","memberName":"length","nodeType":"MemberAccess","src":"2915:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":336,"initializationExpression":{"assignments":[310],"declarations":[{"constant":false,"id":310,"mutability":"mutable","name":"i","nameLocation":"2904:1:2","nodeType":"VariableDeclaration","scope":336,"src":"2896:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":312,"initialValue":{"hexValue":"30","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2908:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2896:13:2"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2932:3:2","subExpression":{"id":317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"2934:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":319,"nodeType":"ExpressionStatement","src":"2932:3:2"},"nodeType":"ForStatement","src":"2891:158:2"},{"expression":{"id":337,"name":"batchBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"3066:13:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":282,"id":338,"nodeType":"Return","src":"3059:20:2"}]},"documentation":{"id":271,"nodeType":"StructuredDocumentation","src":"2383:146:2","text":" @dev See {IERC1155-balanceOfBatch}.\n Requirements:\n - `accounts` and `ids` must have the same length."},"functionSelector":"4e1273f4","id":340,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfBatch","nameLocation":"2543:14:2","nodeType":"FunctionDefinition","parameters":{"id":278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":274,"mutability":"mutable","name":"accounts","nameLocation":"2584:8:2","nodeType":"VariableDeclaration","scope":340,"src":"2567:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":272,"name":"address","nodeType":"ElementaryTypeName","src":"2567:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":273,"nodeType":"ArrayTypeName","src":"2567:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":277,"mutability":"mutable","name":"ids","nameLocation":"2619:3:2","nodeType":"VariableDeclaration","scope":340,"src":"2602:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":275,"name":"uint256","nodeType":"ElementaryTypeName","src":"2602:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":276,"nodeType":"ArrayTypeName","src":"2602:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2557:71:2"},"returnParameters":{"id":282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":340,"src":"2658:16:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":279,"name":"uint256","nodeType":"ElementaryTypeName","src":"2658:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":280,"nodeType":"ArrayTypeName","src":"2658:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2657:18:2"},"scope":1067,"src":"2534:552:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1149],"body":{"id":355,"nodeType":"Block","src":"3229:69:2","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":349,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"3258:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3258:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":351,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"3272:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":352,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"3282:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":348,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1050,"src":"3239:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3239:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":354,"nodeType":"ExpressionStatement","src":"3239:52:2"}]},"documentation":{"id":341,"nodeType":"StructuredDocumentation","src":"3092:57:2","text":" @dev See {IERC1155-setApprovalForAll}."},"functionSelector":"a22cb465","id":356,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3163:17:2","nodeType":"FunctionDefinition","parameters":{"id":346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":343,"mutability":"mutable","name":"operator","nameLocation":"3189:8:2","nodeType":"VariableDeclaration","scope":356,"src":"3181:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":342,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":345,"mutability":"mutable","name":"approved","nameLocation":"3204:8:2","nodeType":"VariableDeclaration","scope":356,"src":"3199:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":344,"name":"bool","nodeType":"ElementaryTypeName","src":"3199:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3180:33:2"},"returnParameters":{"id":347,"nodeType":"ParameterList","parameters":[],"src":"3229:0:2"},"scope":1067,"src":"3154:144:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1159],"body":{"id":372,"nodeType":"Block","src":"3461:61:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":366,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"3478:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":368,"indexExpression":{"id":367,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":359,"src":"3497:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3478:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":370,"indexExpression":{"id":369,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"3506:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3478:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":365,"id":371,"nodeType":"Return","src":"3471:44:2"}]},"documentation":{"id":357,"nodeType":"StructuredDocumentation","src":"3304:56:2","text":" @dev See {IERC1155-isApprovedForAll}."},"functionSelector":"e985e9c5","id":373,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"3374:16:2","nodeType":"FunctionDefinition","parameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":359,"mutability":"mutable","name":"account","nameLocation":"3399:7:2","nodeType":"VariableDeclaration","scope":373,"src":"3391:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":358,"name":"address","nodeType":"ElementaryTypeName","src":"3391:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":361,"mutability":"mutable","name":"operator","nameLocation":"3416:8:2","nodeType":"VariableDeclaration","scope":373,"src":"3408:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":360,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3390:35:2"},"returnParameters":{"id":365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"3455:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":363,"name":"bool","nodeType":"ElementaryTypeName","src":"3455:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3454:6:2"},"scope":1067,"src":"3365:157:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1173],"body":{"id":416,"nodeType":"Block","src":"3702:238:2","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"sender","nameLocation":"3720:6:2","nodeType":"VariableDeclaration","scope":416,"src":"3712:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":387,"name":"address","nodeType":"ElementaryTypeName","src":"3712:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":391,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":389,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"3729:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3729:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3712:29:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":392,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3755:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":393,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3763:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3755:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3773:31:2","subExpression":{"arguments":[{"id":396,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3791:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3797:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":395,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"3774:16:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3755:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":407,"nodeType":"IfStatement","src":"3751:129:2","trueBody":{"id":406,"nodeType":"Block","src":"3806:74:2","statements":[{"errorCall":{"arguments":[{"id":402,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3856:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":403,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3864:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":401,"name":"ERC1155MissingApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"3827:28:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:42:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":405,"nodeType":"RevertStatement","src":"3820:49:2"}]}},{"expression":{"arguments":[{"id":409,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"3907:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":410,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"3913:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":411,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":380,"src":"3917:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":412,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"3921:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":413,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":384,"src":"3928:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":408,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"3889:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":415,"nodeType":"ExpressionStatement","src":"3889:44:2"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"3528:56:2","text":" @dev See {IERC1155-safeTransferFrom}."},"functionSelector":"f242432a","id":417,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3598:16:2","nodeType":"FunctionDefinition","parameters":{"id":385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"from","nameLocation":"3623:4:2","nodeType":"VariableDeclaration","scope":417,"src":"3615:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":375,"name":"address","nodeType":"ElementaryTypeName","src":"3615:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"to","nameLocation":"3637:2:2","nodeType":"VariableDeclaration","scope":417,"src":"3629:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":377,"name":"address","nodeType":"ElementaryTypeName","src":"3629:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":380,"mutability":"mutable","name":"id","nameLocation":"3649:2:2","nodeType":"VariableDeclaration","scope":417,"src":"3641:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":379,"name":"uint256","nodeType":"ElementaryTypeName","src":"3641:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":382,"mutability":"mutable","name":"value","nameLocation":"3661:5:2","nodeType":"VariableDeclaration","scope":417,"src":"3653:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":381,"name":"uint256","nodeType":"ElementaryTypeName","src":"3653:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":384,"mutability":"mutable","name":"data","nameLocation":"3681:4:2","nodeType":"VariableDeclaration","scope":417,"src":"3668:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":383,"name":"bytes","nodeType":"ElementaryTypeName","src":"3668:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3614:72:2"},"returnParameters":{"id":386,"nodeType":"ParameterList","parameters":[],"src":"3702:0:2"},"scope":1067,"src":"3589:351:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1189],"body":{"id":462,"nodeType":"Block","src":"4196:245:2","statements":[{"assignments":[434],"declarations":[{"constant":false,"id":434,"mutability":"mutable","name":"sender","nameLocation":"4214:6:2","nodeType":"VariableDeclaration","scope":462,"src":"4206:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":433,"name":"address","nodeType":"ElementaryTypeName","src":"4206:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":437,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":435,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"4223:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4223:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4206:29:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":438,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4249:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":439,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":434,"src":"4257:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4249:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4267:31:2","subExpression":{"arguments":[{"id":442,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4285:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":443,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":434,"src":"4291:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":441,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"4268:16:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4268:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4249:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":453,"nodeType":"IfStatement","src":"4245:129:2","trueBody":{"id":452,"nodeType":"Block","src":"4300:74:2","statements":[{"errorCall":{"arguments":[{"id":448,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":434,"src":"4350:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":449,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4358:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":447,"name":"ERC1155MissingApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"4321:28:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:42:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":451,"nodeType":"RevertStatement","src":"4314:49:2"}]}},{"expression":{"arguments":[{"id":455,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4406:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":456,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"4412:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":457,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4416:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":458,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4421:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":459,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4429:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":454,"name":"_safeBatchTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"4383:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:51:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":461,"nodeType":"ExpressionStatement","src":"4383:51:2"}]},"documentation":{"id":418,"nodeType":"StructuredDocumentation","src":"3946:61:2","text":" @dev See {IERC1155-safeBatchTransferFrom}."},"functionSelector":"2eb2c2d6","id":463,"implemented":true,"kind":"function","modifiers":[],"name":"safeBatchTransferFrom","nameLocation":"4021:21:2","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":420,"mutability":"mutable","name":"from","nameLocation":"4060:4:2","nodeType":"VariableDeclaration","scope":463,"src":"4052:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"4052:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":422,"mutability":"mutable","name":"to","nameLocation":"4082:2:2","nodeType":"VariableDeclaration","scope":463,"src":"4074:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":421,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":425,"mutability":"mutable","name":"ids","nameLocation":"4111:3:2","nodeType":"VariableDeclaration","scope":463,"src":"4094:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":423,"name":"uint256","nodeType":"ElementaryTypeName","src":"4094:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":424,"nodeType":"ArrayTypeName","src":"4094:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"values","nameLocation":"4141:6:2","nodeType":"VariableDeclaration","scope":463,"src":"4124:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":426,"name":"uint256","nodeType":"ElementaryTypeName","src":"4124:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":427,"nodeType":"ArrayTypeName","src":"4124:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"data","nameLocation":"4170:4:2","nodeType":"VariableDeclaration","scope":463,"src":"4157:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":429,"name":"bytes","nodeType":"ElementaryTypeName","src":"4157:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4042:138:2"},"returnParameters":{"id":432,"nodeType":"ParameterList","parameters":[],"src":"4196:0:2"},"scope":1067,"src":"4012:429:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":615,"nodeType":"Block","src":"5249:1174:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":477,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5263:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5267:6:2","memberName":"length","nodeType":"MemberAccess","src":"5263:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":479,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"5277:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5284:6:2","memberName":"length","nodeType":"MemberAccess","src":"5277:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5263:27:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":490,"nodeType":"IfStatement","src":"5259:117:2","trueBody":{"id":489,"nodeType":"Block","src":"5292:84:2","statements":[{"errorCall":{"arguments":[{"expression":{"id":483,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5339:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5343:6:2","memberName":"length","nodeType":"MemberAccess","src":"5339:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":485,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"5351:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5358:6:2","memberName":"length","nodeType":"MemberAccess","src":"5351:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":482,"name":"ERC1155InvalidArrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"5313:25:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5313:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":488,"nodeType":"RevertStatement","src":"5306:59:2"}]}},{"assignments":[492],"declarations":[{"constant":false,"id":492,"mutability":"mutable","name":"operator","nameLocation":"5394:8:2","nodeType":"VariableDeclaration","scope":615,"src":"5386:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":491,"name":"address","nodeType":"ElementaryTypeName","src":"5386:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":495,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":493,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"5405:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5405:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5386:31:2"},{"body":{"id":576,"nodeType":"Block","src":"5469:650:2","statements":[{"assignments":[508],"declarations":[{"constant":false,"id":508,"mutability":"mutable","name":"id","nameLocation":"5491:2:2","nodeType":"VariableDeclaration","scope":576,"src":"5483:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":507,"name":"uint256","nodeType":"ElementaryTypeName","src":"5483:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":513,"initialValue":{"arguments":[{"id":511,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5519:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":509,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5496:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5500:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"5496:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5496:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5483:38:2"},{"assignments":[515],"declarations":[{"constant":false,"id":515,"mutability":"mutable","name":"value","nameLocation":"5543:5:2","nodeType":"VariableDeclaration","scope":576,"src":"5535:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":514,"name":"uint256","nodeType":"ElementaryTypeName","src":"5535:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":520,"initialValue":{"arguments":[{"id":518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5577:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":516,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"5551:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5558:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"5551:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5551:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5535:44:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":521,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5598:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5614:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5606:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":522,"name":"address","nodeType":"ElementaryTypeName","src":"5606:7:2","typeDescriptions":{}}},"id":525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5606:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5598:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":559,"nodeType":"IfStatement","src":"5594:420:2","trueBody":{"id":558,"nodeType":"Block","src":"5618:396:2","statements":[{"assignments":[528],"declarations":[{"constant":false,"id":528,"mutability":"mutable","name":"fromBalance","nameLocation":"5644:11:2","nodeType":"VariableDeclaration","scope":558,"src":"5636:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint256","nodeType":"ElementaryTypeName","src":"5636:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":534,"initialValue":{"baseExpression":{"baseExpression":{"id":529,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"5658:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":531,"indexExpression":{"id":530,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5668:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":533,"indexExpression":{"id":532,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5672:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5636:41:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":535,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5699:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"5713:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5699:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":546,"nodeType":"IfStatement","src":"5695:129:2","trueBody":{"id":545,"nodeType":"Block","src":"5720:104:2","statements":[{"errorCall":{"arguments":[{"id":539,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5776:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":540,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5782:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":541,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"5795:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":542,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5802:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":538,"name":"ERC1155InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"5749:26:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256) pure"}},"id":543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5749:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":544,"nodeType":"RevertStatement","src":"5742:63:2"}]}},{"id":557,"nodeType":"UncheckedBlock","src":"5841:159:2","statements":[{"expression":{"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":547,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"5940:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":550,"indexExpression":{"id":548,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5950:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5940:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":551,"indexExpression":{"id":549,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"5954:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5940:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":552,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"5962:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"5976:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5962:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5940:41:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":556,"nodeType":"ExpressionStatement","src":"5940:41:2"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":560,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6032:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6046:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6038:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":561,"name":"address","nodeType":"ElementaryTypeName","src":"6038:7:2","typeDescriptions":{}}},"id":564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6032:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":575,"nodeType":"IfStatement","src":"6028:81:2","trueBody":{"id":574,"nodeType":"Block","src":"6050:59:2","statements":[{"expression":{"id":572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":566,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"6068:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":569,"indexExpression":{"id":567,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"6078:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6068:13:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":570,"indexExpression":{"id":568,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6082:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6068:17:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"6089:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6068:26:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":573,"nodeType":"ExpressionStatement","src":"6068:26:2"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":500,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5448:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":501,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"5452:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5456:6:2","memberName":"length","nodeType":"MemberAccess","src":"5452:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5448:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":577,"initializationExpression":{"assignments":[497],"declarations":[{"constant":false,"id":497,"mutability":"mutable","name":"i","nameLocation":"5441:1:2","nodeType":"VariableDeclaration","scope":577,"src":"5433:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":496,"name":"uint256","nodeType":"ElementaryTypeName","src":"5433:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":499,"initialValue":{"hexValue":"30","id":498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5445:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5433:13:2"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5464:3:2","subExpression":{"id":504,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":497,"src":"5466:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":506,"nodeType":"ExpressionStatement","src":"5464:3:2"},"nodeType":"ForStatement","src":"5428:691:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":578,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"6133:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6137:6:2","memberName":"length","nodeType":"MemberAccess","src":"6133:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6147:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6133:15:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":613,"nodeType":"Block","src":"6341:76:2","statements":[{"eventCall":{"arguments":[{"id":606,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"6374:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":607,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"6384:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":608,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6390:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":609,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"6394:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":610,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"6399:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":605,"name":"TransferBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"6360:13:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256[] memory,uint256[] memory)"}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6360:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":612,"nodeType":"EmitStatement","src":"6355:51:2"}]},"id":614,"nodeType":"IfStatement","src":"6129:288:2","trueBody":{"id":604,"nodeType":"Block","src":"6150:185:2","statements":[{"assignments":[583],"declarations":[{"constant":false,"id":583,"mutability":"mutable","name":"id","nameLocation":"6172:2:2","nodeType":"VariableDeclaration","scope":604,"src":"6164:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":582,"name":"uint256","nodeType":"ElementaryTypeName","src":"6164:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":588,"initialValue":{"arguments":[{"hexValue":"30","id":586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6200:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":584,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"6177:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6181:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"6177:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6177:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6164:38:2"},{"assignments":[590],"declarations":[{"constant":false,"id":590,"mutability":"mutable","name":"value","nameLocation":"6224:5:2","nodeType":"VariableDeclaration","scope":604,"src":"6216:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":589,"name":"uint256","nodeType":"ElementaryTypeName","src":"6216:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":595,"initialValue":{"arguments":[{"hexValue":"30","id":593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6258:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":591,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"6232:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6239:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"6232:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6232:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6216:44:2"},{"eventCall":{"arguments":[{"id":597,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"6294:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":598,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"6304:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":599,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"6310:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":600,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"6314:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":601,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":590,"src":"6318:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":596,"name":"TransferSingle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"6279:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6279:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":603,"nodeType":"EmitStatement","src":"6274:50:2"}]}}]},"documentation":{"id":464,"nodeType":"StructuredDocumentation","src":"4447:690:2","text":" @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n (or `to`) is the zero address.\n Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n Requirements:\n - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n - `ids` and `values` must have the same length.\n NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead."},"id":616,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"5151:7:2","nodeType":"FunctionDefinition","parameters":{"id":475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":466,"mutability":"mutable","name":"from","nameLocation":"5167:4:2","nodeType":"VariableDeclaration","scope":616,"src":"5159:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":465,"name":"address","nodeType":"ElementaryTypeName","src":"5159:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":468,"mutability":"mutable","name":"to","nameLocation":"5181:2:2","nodeType":"VariableDeclaration","scope":616,"src":"5173:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":467,"name":"address","nodeType":"ElementaryTypeName","src":"5173:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":471,"mutability":"mutable","name":"ids","nameLocation":"5202:3:2","nodeType":"VariableDeclaration","scope":616,"src":"5185:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":469,"name":"uint256","nodeType":"ElementaryTypeName","src":"5185:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":470,"nodeType":"ArrayTypeName","src":"5185:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":474,"mutability":"mutable","name":"values","nameLocation":"5224:6:2","nodeType":"VariableDeclaration","scope":616,"src":"5207:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5207:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":473,"nodeType":"ArrayTypeName","src":"5207:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5158:73:2"},"returnParameters":{"id":476,"nodeType":"ParameterList","parameters":[],"src":"5249:0:2"},"scope":1067,"src":"5142:1281:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":695,"nodeType":"Block","src":"7193:509:2","statements":[{"expression":{"arguments":[{"id":633,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7211:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":634,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7217:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":635,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7221:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":636,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"7226:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":632,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"7203:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory)"}},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":638,"nodeType":"ExpressionStatement","src":"7203:30:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":639,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7247:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7261:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7253:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":640,"name":"address","nodeType":"ElementaryTypeName","src":"7253:7:2","typeDescriptions":{}}},"id":643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7253:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7247:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":694,"nodeType":"IfStatement","src":"7243:453:2","trueBody":{"id":693,"nodeType":"Block","src":"7265:431:2","statements":[{"assignments":[646],"declarations":[{"constant":false,"id":646,"mutability":"mutable","name":"operator","nameLocation":"7287:8:2","nodeType":"VariableDeclaration","scope":693,"src":"7279:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"7279:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":649,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":647,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"7298:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7298:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7279:31:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":650,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7328:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7332:6:2","memberName":"length","nodeType":"MemberAccess","src":"7328:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7342:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7328:15:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":691,"nodeType":"Block","src":"7574:112:2","statements":[{"expression":{"arguments":[{"id":683,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"7633:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":684,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7643:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":685,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7649:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":686,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7653:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":687,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"7658:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":688,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":629,"src":"7666:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":680,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"7592:12:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1155Utils_$1402_$","typeString":"type(library ERC1155Utils)"}},"id":682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7605:27:2","memberName":"checkOnERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"7592:40:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7592:79:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":690,"nodeType":"ExpressionStatement","src":"7592:79:2"}]},"id":692,"nodeType":"IfStatement","src":"7324:362:2","trueBody":{"id":679,"nodeType":"Block","src":"7345:223:2","statements":[{"assignments":[655],"declarations":[{"constant":false,"id":655,"mutability":"mutable","name":"id","nameLocation":"7371:2:2","nodeType":"VariableDeclaration","scope":679,"src":"7363:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":654,"name":"uint256","nodeType":"ElementaryTypeName","src":"7363:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":660,"initialValue":{"arguments":[{"hexValue":"30","id":658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7399:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":656,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"7376:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7380:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"7376:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7376:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7363:38:2"},{"assignments":[662],"declarations":[{"constant":false,"id":662,"mutability":"mutable","name":"value","nameLocation":"7427:5:2","nodeType":"VariableDeclaration","scope":679,"src":"7419:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":661,"name":"uint256","nodeType":"ElementaryTypeName","src":"7419:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":667,"initialValue":{"arguments":[{"hexValue":"30","id":665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7461:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":663,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"7435:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7442:18:2","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"7435:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7435:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7419:44:2"},{"expression":{"arguments":[{"id":671,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"7517:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":672,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7527:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":673,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":621,"src":"7533:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":674,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":655,"src":"7537:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":662,"src":"7541:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":676,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":629,"src":"7548:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":668,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"7481:12:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1155Utils_$1402_$","typeString":"type(library ERC1155Utils)"}},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7494:22:2","memberName":"checkOnERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1327,"src":"7481:35:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,uint256,bytes memory)"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7481:72:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":678,"nodeType":"ExpressionStatement","src":"7481:72:2"}]}}]}}]},"documentation":{"id":617,"nodeType":"StructuredDocumentation","src":"6429:568:2","text":" @dev Version of {_update} that performs the token acceptance check by calling\n {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n contains code (eg. is a smart contract at the moment of execution).\n IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n update to the contract state after this function would break the check-effect-interaction pattern. Consider\n overriding {_update} instead."},"id":696,"implemented":true,"kind":"function","modifiers":[],"name":"_updateWithAcceptanceCheck","nameLocation":"7011:26:2","nodeType":"FunctionDefinition","parameters":{"id":630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":619,"mutability":"mutable","name":"from","nameLocation":"7055:4:2","nodeType":"VariableDeclaration","scope":696,"src":"7047:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":618,"name":"address","nodeType":"ElementaryTypeName","src":"7047:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":621,"mutability":"mutable","name":"to","nameLocation":"7077:2:2","nodeType":"VariableDeclaration","scope":696,"src":"7069:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":620,"name":"address","nodeType":"ElementaryTypeName","src":"7069:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":624,"mutability":"mutable","name":"ids","nameLocation":"7106:3:2","nodeType":"VariableDeclaration","scope":696,"src":"7089:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":622,"name":"uint256","nodeType":"ElementaryTypeName","src":"7089:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":623,"nodeType":"ArrayTypeName","src":"7089:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":627,"mutability":"mutable","name":"values","nameLocation":"7136:6:2","nodeType":"VariableDeclaration","scope":696,"src":"7119:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":625,"name":"uint256","nodeType":"ElementaryTypeName","src":"7119:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":626,"nodeType":"ArrayTypeName","src":"7119:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":629,"mutability":"mutable","name":"data","nameLocation":"7165:4:2","nodeType":"VariableDeclaration","scope":696,"src":"7152:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":628,"name":"bytes","nodeType":"ElementaryTypeName","src":"7152:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7037:138:2"},"returnParameters":{"id":631,"nodeType":"ParameterList","parameters":[],"src":"7193:0:2"},"scope":1067,"src":"7002:700:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":761,"nodeType":"Block","src":"8267:355:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"8281:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8295:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8287:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":711,"name":"address","nodeType":"ElementaryTypeName","src":"8287:7:2","typeDescriptions":{}}},"id":714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8287:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8281:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":724,"nodeType":"IfStatement","src":"8277:88:2","trueBody":{"id":723,"nodeType":"Block","src":"8299:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8351:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8343:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":717,"name":"address","nodeType":"ElementaryTypeName","src":"8343:7:2","typeDescriptions":{}}},"id":720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8343:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":716,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"8320:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8320:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":722,"nodeType":"RevertStatement","src":"8313:41:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":725,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"8378:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8394:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8386:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"8386:7:2","typeDescriptions":{}}},"id":729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8386:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8378:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":739,"nodeType":"IfStatement","src":"8374:88:2","trueBody":{"id":738,"nodeType":"Block","src":"8398:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8448:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8440:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":732,"name":"address","nodeType":"ElementaryTypeName","src":"8440:7:2","typeDescriptions":{}}},"id":735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8440:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":731,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"8419:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8419:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":737,"nodeType":"RevertStatement","src":"8412:39:2"}]}},{"assignments":[744,747],"declarations":[{"constant":false,"id":744,"mutability":"mutable","name":"ids","nameLocation":"8489:3:2","nodeType":"VariableDeclaration","scope":761,"src":"8472:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":742,"name":"uint256","nodeType":"ElementaryTypeName","src":"8472:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":743,"nodeType":"ArrayTypeName","src":"8472:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":747,"mutability":"mutable","name":"values","nameLocation":"8511:6:2","nodeType":"VariableDeclaration","scope":761,"src":"8494:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8494:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":746,"nodeType":"ArrayTypeName","src":"8494:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":752,"initialValue":{"arguments":[{"id":749,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":703,"src":"8540:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":705,"src":"8544:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":748,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1066,"src":"8521:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8521:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"8471:79:2"},{"expression":{"arguments":[{"id":754,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"8587:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":755,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"8593:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":756,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":744,"src":"8597:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":757,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"8602:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":758,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":707,"src":"8610:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":753,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"8560:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":760,"nodeType":"ExpressionStatement","src":"8560:55:2"}]},"documentation":{"id":697,"nodeType":"StructuredDocumentation","src":"7708:446:2","text":" @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"id":762,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"8168:17:2","nodeType":"FunctionDefinition","parameters":{"id":708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":699,"mutability":"mutable","name":"from","nameLocation":"8194:4:2","nodeType":"VariableDeclaration","scope":762,"src":"8186:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":698,"name":"address","nodeType":"ElementaryTypeName","src":"8186:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":701,"mutability":"mutable","name":"to","nameLocation":"8208:2:2","nodeType":"VariableDeclaration","scope":762,"src":"8200:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"8200:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":703,"mutability":"mutable","name":"id","nameLocation":"8220:2:2","nodeType":"VariableDeclaration","scope":762,"src":"8212:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":702,"name":"uint256","nodeType":"ElementaryTypeName","src":"8212:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":705,"mutability":"mutable","name":"value","nameLocation":"8232:5:2","nodeType":"VariableDeclaration","scope":762,"src":"8224:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":704,"name":"uint256","nodeType":"ElementaryTypeName","src":"8224:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":707,"mutability":"mutable","name":"data","nameLocation":"8252:4:2","nodeType":"VariableDeclaration","scope":762,"src":"8239:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":706,"name":"bytes","nodeType":"ElementaryTypeName","src":"8239:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:72:2"},"returnParameters":{"id":709,"nodeType":"ParameterList","parameters":[],"src":"8267:0:2"},"scope":1067,"src":"8159:463:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":816,"nodeType":"Block","src":"9202:266:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":778,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"9216:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9230:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9222:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":779,"name":"address","nodeType":"ElementaryTypeName","src":"9222:7:2","typeDescriptions":{}}},"id":782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9222:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9216:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":792,"nodeType":"IfStatement","src":"9212:88:2","trueBody":{"id":791,"nodeType":"Block","src":"9234:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9286:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9278:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":785,"name":"address","nodeType":"ElementaryTypeName","src":"9278:7:2","typeDescriptions":{}}},"id":788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9278:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":784,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"9255:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":790,"nodeType":"RevertStatement","src":"9248:41:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":793,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"9313:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9329:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9321:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":794,"name":"address","nodeType":"ElementaryTypeName","src":"9321:7:2","typeDescriptions":{}}},"id":797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9321:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9313:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":807,"nodeType":"IfStatement","src":"9309:88:2","trueBody":{"id":806,"nodeType":"Block","src":"9333:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9383:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9375:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":800,"name":"address","nodeType":"ElementaryTypeName","src":"9375:7:2","typeDescriptions":{}}},"id":803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9375:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":799,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"9354:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9354:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":805,"nodeType":"RevertStatement","src":"9347:39:2"}]}},{"expression":{"arguments":[{"id":809,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"9433:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":810,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"9439:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":811,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":770,"src":"9443:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":812,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"9448:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":813,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"9456:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":808,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"9406:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9406:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":815,"nodeType":"ExpressionStatement","src":"9406:55:2"}]},"documentation":{"id":763,"nodeType":"StructuredDocumentation","src":"8628:390:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n Emits a {TransferBatch} event.\n Requirements:\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value.\n - `ids` and `values` must have the same length."},"id":817,"implemented":true,"kind":"function","modifiers":[],"name":"_safeBatchTransferFrom","nameLocation":"9032:22:2","nodeType":"FunctionDefinition","parameters":{"id":776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"mutability":"mutable","name":"from","nameLocation":"9072:4:2","nodeType":"VariableDeclaration","scope":817,"src":"9064:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":764,"name":"address","nodeType":"ElementaryTypeName","src":"9064:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"to","nameLocation":"9094:2:2","nodeType":"VariableDeclaration","scope":817,"src":"9086:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":766,"name":"address","nodeType":"ElementaryTypeName","src":"9086:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":770,"mutability":"mutable","name":"ids","nameLocation":"9123:3:2","nodeType":"VariableDeclaration","scope":817,"src":"9106:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":768,"name":"uint256","nodeType":"ElementaryTypeName","src":"9106:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":769,"nodeType":"ArrayTypeName","src":"9106:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":773,"mutability":"mutable","name":"values","nameLocation":"9153:6:2","nodeType":"VariableDeclaration","scope":817,"src":"9136:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":771,"name":"uint256","nodeType":"ElementaryTypeName","src":"9136:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":772,"nodeType":"ArrayTypeName","src":"9136:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":775,"mutability":"mutable","name":"data","nameLocation":"9182:4:2","nodeType":"VariableDeclaration","scope":817,"src":"9169:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":774,"name":"bytes","nodeType":"ElementaryTypeName","src":"9169:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9054:138:2"},"returnParameters":{"id":777,"nodeType":"ParameterList","parameters":[],"src":"9202:0:2"},"scope":1067,"src":"9023:445:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":827,"nodeType":"Block","src":"10346:30:2","statements":[{"expression":{"id":825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":823,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"10356:4:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":824,"name":"newuri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"10363:6:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"10356:13:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":826,"nodeType":"ExpressionStatement","src":"10356:13:2"}]},"documentation":{"id":818,"nodeType":"StructuredDocumentation","src":"9474:811:2","text":" @dev Sets a new URI for all token types, by relying on the token type ID\n substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n URI or any of the values in the JSON file at said URI will be replaced by\n clients with the token type ID.\n For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n interpreted by clients as\n `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n for token type ID 0x4cce0.\n See {uri}.\n Because these URIs cannot be meaningfully represented by the {URI} event,\n this function emits no events."},"id":828,"implemented":true,"kind":"function","modifiers":[],"name":"_setURI","nameLocation":"10299:7:2","nodeType":"FunctionDefinition","parameters":{"id":821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":820,"mutability":"mutable","name":"newuri","nameLocation":"10321:6:2","nodeType":"VariableDeclaration","scope":828,"src":"10307:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":819,"name":"string","nodeType":"ElementaryTypeName","src":"10307:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10306:22:2"},"returnParameters":{"id":822,"nodeType":"ParameterList","parameters":[],"src":"10346:0:2"},"scope":1067,"src":"10290:86:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":879,"nodeType":"Block","src":"10836:264:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":840,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":831,"src":"10850:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10864:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10856:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":841,"name":"address","nodeType":"ElementaryTypeName","src":"10856:7:2","typeDescriptions":{}}},"id":844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10856:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10850:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":854,"nodeType":"IfStatement","src":"10846:88:2","trueBody":{"id":853,"nodeType":"Block","src":"10868:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10920:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10912:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":847,"name":"address","nodeType":"ElementaryTypeName","src":"10912:7:2","typeDescriptions":{}}},"id":850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10912:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":846,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"10889:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10889:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":852,"nodeType":"RevertStatement","src":"10882:41:2"}]}},{"assignments":[859,862],"declarations":[{"constant":false,"id":859,"mutability":"mutable","name":"ids","nameLocation":"10961:3:2","nodeType":"VariableDeclaration","scope":879,"src":"10944:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":857,"name":"uint256","nodeType":"ElementaryTypeName","src":"10944:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":858,"nodeType":"ArrayTypeName","src":"10944:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":862,"mutability":"mutable","name":"values","nameLocation":"10983:6:2","nodeType":"VariableDeclaration","scope":879,"src":"10966:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10966:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":861,"nodeType":"ArrayTypeName","src":"10966:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":867,"initialValue":{"arguments":[{"id":864,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":833,"src":"11012:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"11016:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":863,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1066,"src":"10993:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10993:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"10943:79:2"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11067:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11059:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":869,"name":"address","nodeType":"ElementaryTypeName","src":"11059:7:2","typeDescriptions":{}}},"id":872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11059:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":873,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":831,"src":"11071:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":874,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"11075:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":875,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":862,"src":"11080:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":876,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"11088:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":868,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"11032:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11032:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":878,"nodeType":"ExpressionStatement","src":"11032:61:2"}]},"documentation":{"id":829,"nodeType":"StructuredDocumentation","src":"10382:367:2","text":" @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"id":880,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"10763:5:2","nodeType":"FunctionDefinition","parameters":{"id":838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":831,"mutability":"mutable","name":"to","nameLocation":"10777:2:2","nodeType":"VariableDeclaration","scope":880,"src":"10769:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":830,"name":"address","nodeType":"ElementaryTypeName","src":"10769:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":833,"mutability":"mutable","name":"id","nameLocation":"10789:2:2","nodeType":"VariableDeclaration","scope":880,"src":"10781:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":832,"name":"uint256","nodeType":"ElementaryTypeName","src":"10781:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":835,"mutability":"mutable","name":"value","nameLocation":"10801:5:2","nodeType":"VariableDeclaration","scope":880,"src":"10793:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":834,"name":"uint256","nodeType":"ElementaryTypeName","src":"10793:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":837,"mutability":"mutable","name":"data","nameLocation":"10821:4:2","nodeType":"VariableDeclaration","scope":880,"src":"10808:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":836,"name":"bytes","nodeType":"ElementaryTypeName","src":"10808:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10768:58:2"},"returnParameters":{"id":839,"nodeType":"ParameterList","parameters":[],"src":"10836:0:2"},"scope":1067,"src":"10754:346:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":920,"nodeType":"Block","src":"11638:175:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":894,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"11652:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11666:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11658:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":895,"name":"address","nodeType":"ElementaryTypeName","src":"11658:7:2","typeDescriptions":{}}},"id":898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11658:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11652:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":908,"nodeType":"IfStatement","src":"11648:88:2","trueBody":{"id":907,"nodeType":"Block","src":"11670:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11722:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11714:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":901,"name":"address","nodeType":"ElementaryTypeName","src":"11714:7:2","typeDescriptions":{}}},"id":904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11714:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":900,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"11691:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11691:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":906,"nodeType":"RevertStatement","src":"11684:41:2"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11780:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11772:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":910,"name":"address","nodeType":"ElementaryTypeName","src":"11772:7:2","typeDescriptions":{}}},"id":913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11772:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":914,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"11784:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":915,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"11788:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":916,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"11793:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":917,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"11801:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":909,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"11745:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11745:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":919,"nodeType":"ExpressionStatement","src":"11745:61:2"}]},"documentation":{"id":881,"nodeType":"StructuredDocumentation","src":"11106:420:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n Emits a {TransferBatch} event.\n Requirements:\n - `ids` and `values` must have the same length.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value."},"id":921,"implemented":true,"kind":"function","modifiers":[],"name":"_mintBatch","nameLocation":"11540:10:2","nodeType":"FunctionDefinition","parameters":{"id":892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":883,"mutability":"mutable","name":"to","nameLocation":"11559:2:2","nodeType":"VariableDeclaration","scope":921,"src":"11551:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":882,"name":"address","nodeType":"ElementaryTypeName","src":"11551:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":886,"mutability":"mutable","name":"ids","nameLocation":"11580:3:2","nodeType":"VariableDeclaration","scope":921,"src":"11563:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":884,"name":"uint256","nodeType":"ElementaryTypeName","src":"11563:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":885,"nodeType":"ArrayTypeName","src":"11563:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":889,"mutability":"mutable","name":"values","nameLocation":"11602:6:2","nodeType":"VariableDeclaration","scope":921,"src":"11585:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":887,"name":"uint256","nodeType":"ElementaryTypeName","src":"11585:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":888,"nodeType":"ArrayTypeName","src":"11585:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":891,"mutability":"mutable","name":"data","nameLocation":"11623:4:2","nodeType":"VariableDeclaration","scope":921,"src":"11610:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":890,"name":"bytes","nodeType":"ElementaryTypeName","src":"11610:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11550:78:2"},"returnParameters":{"id":893,"nodeType":"ParameterList","parameters":[],"src":"11638:0:2"},"scope":1067,"src":"11531:282:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":970,"nodeType":"Block","src":"12172:264:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":931,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"12186:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12202:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12194:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":932,"name":"address","nodeType":"ElementaryTypeName","src":"12194:7:2","typeDescriptions":{}}},"id":935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12194:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12186:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":945,"nodeType":"IfStatement","src":"12182:88:2","trueBody":{"id":944,"nodeType":"Block","src":"12206:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12256:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12248:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":938,"name":"address","nodeType":"ElementaryTypeName","src":"12248:7:2","typeDescriptions":{}}},"id":941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12248:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":937,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"12227:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12227:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":943,"nodeType":"RevertStatement","src":"12220:39:2"}]}},{"assignments":[950,953],"declarations":[{"constant":false,"id":950,"mutability":"mutable","name":"ids","nameLocation":"12297:3:2","nodeType":"VariableDeclaration","scope":970,"src":"12280:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":948,"name":"uint256","nodeType":"ElementaryTypeName","src":"12280:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":949,"nodeType":"ArrayTypeName","src":"12280:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":953,"mutability":"mutable","name":"values","nameLocation":"12319:6:2","nodeType":"VariableDeclaration","scope":970,"src":"12302:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":951,"name":"uint256","nodeType":"ElementaryTypeName","src":"12302:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":952,"nodeType":"ArrayTypeName","src":"12302:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":958,"initialValue":{"arguments":[{"id":955,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"12348:2:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":956,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"12352:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":954,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1066,"src":"12329:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12329:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12279:79:2"},{"expression":{"arguments":[{"id":960,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"12395:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12409:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12401:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":961,"name":"address","nodeType":"ElementaryTypeName","src":"12401:7:2","typeDescriptions":{}}},"id":964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":965,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"12413:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":966,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":953,"src":"12418:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"hexValue":"","id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12426:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":959,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"12368:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12368:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":969,"nodeType":"ExpressionStatement","src":"12368:61:2"}]},"documentation":{"id":922,"nodeType":"StructuredDocumentation","src":"11819:283:2","text":" @dev Destroys a `value` amount of tokens of type `id` from `from`\n Emits a {TransferSingle} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`."},"id":971,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"12116:5:2","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":924,"mutability":"mutable","name":"from","nameLocation":"12130:4:2","nodeType":"VariableDeclaration","scope":971,"src":"12122:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":923,"name":"address","nodeType":"ElementaryTypeName","src":"12122:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"id","nameLocation":"12144:2:2","nodeType":"VariableDeclaration","scope":971,"src":"12136:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":925,"name":"uint256","nodeType":"ElementaryTypeName","src":"12136:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":928,"mutability":"mutable","name":"value","nameLocation":"12156:5:2","nodeType":"VariableDeclaration","scope":971,"src":"12148:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":927,"name":"uint256","nodeType":"ElementaryTypeName","src":"12148:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12121:41:2"},"returnParameters":{"id":930,"nodeType":"ParameterList","parameters":[],"src":"12172:0:2"},"scope":1067,"src":"12107:329:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1009,"nodeType":"Block","src":"12882:175:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":983,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"12896:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12912:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12904:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":984,"name":"address","nodeType":"ElementaryTypeName","src":"12904:7:2","typeDescriptions":{}}},"id":987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12904:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12896:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":997,"nodeType":"IfStatement","src":"12892:88:2","trueBody":{"id":996,"nodeType":"Block","src":"12916:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12966:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12958:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":990,"name":"address","nodeType":"ElementaryTypeName","src":"12958:7:2","typeDescriptions":{}}},"id":993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12958:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":989,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"12937:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12937:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":995,"nodeType":"RevertStatement","src":"12930:39:2"}]}},{"expression":{"arguments":[{"id":999,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"13016:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13030:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13022:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1000,"name":"address","nodeType":"ElementaryTypeName","src":"13022:7:2","typeDescriptions":{}}},"id":1003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13022:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1004,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":977,"src":"13034:3:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1005,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"13039:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"hexValue":"","id":1006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13047:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":998,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"12989:26:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1008,"nodeType":"ExpressionStatement","src":"12989:61:2"}]},"documentation":{"id":972,"nodeType":"StructuredDocumentation","src":"12442:345:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n Emits a {TransferBatch} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`.\n - `ids` and `values` must have the same length."},"id":1010,"implemented":true,"kind":"function","modifiers":[],"name":"_burnBatch","nameLocation":"12801:10:2","nodeType":"FunctionDefinition","parameters":{"id":981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":974,"mutability":"mutable","name":"from","nameLocation":"12820:4:2","nodeType":"VariableDeclaration","scope":1010,"src":"12812:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":973,"name":"address","nodeType":"ElementaryTypeName","src":"12812:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":977,"mutability":"mutable","name":"ids","nameLocation":"12843:3:2","nodeType":"VariableDeclaration","scope":1010,"src":"12826:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":975,"name":"uint256","nodeType":"ElementaryTypeName","src":"12826:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":976,"nodeType":"ArrayTypeName","src":"12826:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"values","nameLocation":"12865:6:2","nodeType":"VariableDeclaration","scope":1010,"src":"12848:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":978,"name":"uint256","nodeType":"ElementaryTypeName","src":"12848:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":979,"nodeType":"ArrayTypeName","src":"12848:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12811:61:2"},"returnParameters":{"id":982,"nodeType":"ParameterList","parameters":[],"src":"12882:0:2"},"scope":1067,"src":"12792:265:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1049,"nodeType":"Block","src":"13369:222:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1020,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"13383:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13403:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13395:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1021,"name":"address","nodeType":"ElementaryTypeName","src":"13395:7:2","typeDescriptions":{}}},"id":1024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13395:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13383:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1034,"nodeType":"IfStatement","src":"13379:94:2","trueBody":{"id":1033,"nodeType":"Block","src":"13407:66:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13459:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13451:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1027,"name":"address","nodeType":"ElementaryTypeName","src":"13451:7:2","typeDescriptions":{}}},"id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13451:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1026,"name":"ERC1155InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"13428:22:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13428:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"RevertStatement","src":"13421:41:2"}]}},{"expression":{"id":1041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1035,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"13482:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1038,"indexExpression":{"id":1036,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"13501:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13482:25:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1039,"indexExpression":{"id":1037,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"13508:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13482:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1040,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"13520:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13482:46:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1042,"nodeType":"ExpressionStatement","src":"13482:46:2"},{"eventCall":{"arguments":[{"id":1044,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"13558:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1045,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"13565:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1046,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"13575:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1043,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1111,"src":"13543:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1048,"nodeType":"EmitStatement","src":"13538:46:2"}]},"documentation":{"id":1011,"nodeType":"StructuredDocumentation","src":"13063:208:2","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address."},"id":1050,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"13285:18:2","nodeType":"FunctionDefinition","parameters":{"id":1018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"owner","nameLocation":"13312:5:2","nodeType":"VariableDeclaration","scope":1050,"src":"13304:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1012,"name":"address","nodeType":"ElementaryTypeName","src":"13304:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1015,"mutability":"mutable","name":"operator","nameLocation":"13327:8:2","nodeType":"VariableDeclaration","scope":1050,"src":"13319:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1014,"name":"address","nodeType":"ElementaryTypeName","src":"13319:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1017,"mutability":"mutable","name":"approved","nameLocation":"13342:8:2","nodeType":"VariableDeclaration","scope":1050,"src":"13337:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1016,"name":"bool","nodeType":"ElementaryTypeName","src":"13337:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13303:48:2"},"returnParameters":{"id":1019,"nodeType":"ParameterList","parameters":[],"src":"13369:0:2"},"scope":1067,"src":"13276:315:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1065,"nodeType":"Block","src":"13865:691:2","statements":[{"AST":{"nativeSrc":"13927:623:2","nodeType":"YulBlock","src":"13927:623:2","statements":[{"nativeSrc":"13985:21:2","nodeType":"YulAssignment","src":"13985:21:2","value":{"arguments":[{"kind":"number","nativeSrc":"14001:4:2","nodeType":"YulLiteral","src":"14001:4:2","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13995:5:2","nodeType":"YulIdentifier","src":"13995:5:2"},"nativeSrc":"13995:11:2","nodeType":"YulFunctionCall","src":"13995:11:2"},"variableNames":[{"name":"array1","nativeSrc":"13985:6:2","nodeType":"YulIdentifier","src":"13985:6:2"}]},{"expression":{"arguments":[{"name":"array1","nativeSrc":"14063:6:2","nodeType":"YulIdentifier","src":"14063:6:2"},{"kind":"number","nativeSrc":"14071:1:2","nodeType":"YulLiteral","src":"14071:1:2","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"14056:6:2","nodeType":"YulIdentifier","src":"14056:6:2"},"nativeSrc":"14056:17:2","nodeType":"YulFunctionCall","src":"14056:17:2"},"nativeSrc":"14056:17:2","nodeType":"YulExpressionStatement","src":"14056:17:2"},{"expression":{"arguments":[{"arguments":[{"name":"array1","nativeSrc":"14194:6:2","nodeType":"YulIdentifier","src":"14194:6:2"},{"kind":"number","nativeSrc":"14202:4:2","nodeType":"YulLiteral","src":"14202:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14190:3:2","nodeType":"YulIdentifier","src":"14190:3:2"},"nativeSrc":"14190:17:2","nodeType":"YulFunctionCall","src":"14190:17:2"},{"name":"element1","nativeSrc":"14209:8:2","nodeType":"YulIdentifier","src":"14209:8:2"}],"functionName":{"name":"mstore","nativeSrc":"14183:6:2","nodeType":"YulIdentifier","src":"14183:6:2"},"nativeSrc":"14183:35:2","nodeType":"YulFunctionCall","src":"14183:35:2"},"nativeSrc":"14183:35:2","nodeType":"YulExpressionStatement","src":"14183:35:2"},{"nativeSrc":"14309:27:2","nodeType":"YulAssignment","src":"14309:27:2","value":{"arguments":[{"name":"array1","nativeSrc":"14323:6:2","nodeType":"YulIdentifier","src":"14323:6:2"},{"kind":"number","nativeSrc":"14331:4:2","nodeType":"YulLiteral","src":"14331:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14319:3:2","nodeType":"YulIdentifier","src":"14319:3:2"},"nativeSrc":"14319:17:2","nodeType":"YulFunctionCall","src":"14319:17:2"},"variableNames":[{"name":"array2","nativeSrc":"14309:6:2","nodeType":"YulIdentifier","src":"14309:6:2"}]},{"expression":{"arguments":[{"name":"array2","nativeSrc":"14356:6:2","nodeType":"YulIdentifier","src":"14356:6:2"},{"kind":"number","nativeSrc":"14364:1:2","nodeType":"YulLiteral","src":"14364:1:2","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"14349:6:2","nodeType":"YulIdentifier","src":"14349:6:2"},"nativeSrc":"14349:17:2","nodeType":"YulFunctionCall","src":"14349:17:2"},"nativeSrc":"14349:17:2","nodeType":"YulExpressionStatement","src":"14349:17:2"},{"expression":{"arguments":[{"arguments":[{"name":"array2","nativeSrc":"14390:6:2","nodeType":"YulIdentifier","src":"14390:6:2"},{"kind":"number","nativeSrc":"14398:4:2","nodeType":"YulLiteral","src":"14398:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14386:3:2","nodeType":"YulIdentifier","src":"14386:3:2"},"nativeSrc":"14386:17:2","nodeType":"YulFunctionCall","src":"14386:17:2"},{"name":"element2","nativeSrc":"14405:8:2","nodeType":"YulIdentifier","src":"14405:8:2"}],"functionName":{"name":"mstore","nativeSrc":"14379:6:2","nodeType":"YulIdentifier","src":"14379:6:2"},"nativeSrc":"14379:35:2","nodeType":"YulFunctionCall","src":"14379:35:2"},"nativeSrc":"14379:35:2","nodeType":"YulExpressionStatement","src":"14379:35:2"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14516:4:2","nodeType":"YulLiteral","src":"14516:4:2","type":"","value":"0x40"},{"arguments":[{"name":"array2","nativeSrc":"14526:6:2","nodeType":"YulIdentifier","src":"14526:6:2"},{"kind":"number","nativeSrc":"14534:4:2","nodeType":"YulLiteral","src":"14534:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14522:3:2","nodeType":"YulIdentifier","src":"14522:3:2"},"nativeSrc":"14522:17:2","nodeType":"YulFunctionCall","src":"14522:17:2"}],"functionName":{"name":"mstore","nativeSrc":"14509:6:2","nodeType":"YulIdentifier","src":"14509:6:2"},"nativeSrc":"14509:31:2","nodeType":"YulFunctionCall","src":"14509:31:2"},"nativeSrc":"14509:31:2","nodeType":"YulExpressionStatement","src":"14509:31:2"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1059,"isOffset":false,"isSlot":false,"src":"13985:6:2","valueSize":1},{"declaration":1059,"isOffset":false,"isSlot":false,"src":"14063:6:2","valueSize":1},{"declaration":1059,"isOffset":false,"isSlot":false,"src":"14194:6:2","valueSize":1},{"declaration":1059,"isOffset":false,"isSlot":false,"src":"14323:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14309:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14356:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14390:6:2","valueSize":1},{"declaration":1062,"isOffset":false,"isSlot":false,"src":"14526:6:2","valueSize":1},{"declaration":1053,"isOffset":false,"isSlot":false,"src":"14209:8:2","valueSize":1},{"declaration":1055,"isOffset":false,"isSlot":false,"src":"14405:8:2","valueSize":1}],"id":1064,"nodeType":"InlineAssembly","src":"13918:632:2"}]},"documentation":{"id":1051,"nodeType":"StructuredDocumentation","src":"13597:105:2","text":" @dev Creates an array in memory with only one value for each of the elements provided."},"id":1066,"implemented":true,"kind":"function","modifiers":[],"name":"_asSingletonArrays","nameLocation":"13716:18:2","nodeType":"FunctionDefinition","parameters":{"id":1056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1053,"mutability":"mutable","name":"element1","nameLocation":"13752:8:2","nodeType":"VariableDeclaration","scope":1066,"src":"13744:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1052,"name":"uint256","nodeType":"ElementaryTypeName","src":"13744:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1055,"mutability":"mutable","name":"element2","nameLocation":"13778:8:2","nodeType":"VariableDeclaration","scope":1066,"src":"13770:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1054,"name":"uint256","nodeType":"ElementaryTypeName","src":"13770:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13734:58:2"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1059,"mutability":"mutable","name":"array1","nameLocation":"13832:6:2","nodeType":"VariableDeclaration","scope":1066,"src":"13815:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1057,"name":"uint256","nodeType":"ElementaryTypeName","src":"13815:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1058,"nodeType":"ArrayTypeName","src":"13815:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1062,"mutability":"mutable","name":"array2","nameLocation":"13857:6:2","nodeType":"VariableDeclaration","scope":1066,"src":"13840:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1060,"name":"uint256","nodeType":"ElementaryTypeName","src":"13840:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1061,"nodeType":"ArrayTypeName","src":"13840:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"13814:50:2"},"scope":1067,"src":"13707:849:2","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1068,"src":"725:13833:2","usedErrors":[115,120,125,132,137,142,149],"usedEvents":[1087,1102,1111,1118]}],"src":"109:14450:2"},"id":2},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","exportedSymbols":{"IERC1155":[1190],"IERC165":[2857]},"id":1191,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1069,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"110:24:3"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1071,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1191,"sourceUnit":2858,"src":"136:62:3","symbolAliases":[{"foreign":{"id":1070,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"144:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1073,"name":"IERC165","nameLocations":["359:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"359:7:3"},"id":1074,"nodeType":"InheritanceSpecifier","src":"359:7:3"}],"canonicalName":"IERC1155","contractDependencies":[],"contractKind":"interface","documentation":{"id":1072,"nodeType":"StructuredDocumentation","src":"200:136:3","text":" @dev Required interface of an ERC-1155 compliant contract, as defined in the\n https://eips.ethereum.org/EIPS/eip-1155[ERC]."},"fullyImplemented":false,"id":1190,"linearizedBaseContracts":[1190,2857],"name":"IERC1155","nameLocation":"347:8:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1075,"nodeType":"StructuredDocumentation","src":"373:125:3","text":" @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`."},"eventSelector":"c3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62","id":1087,"name":"TransferSingle","nameLocation":"509:14:3","nodeType":"EventDefinition","parameters":{"id":1086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1077,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"540:8:3","nodeType":"VariableDeclaration","scope":1087,"src":"524:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1076,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1079,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"566:4:3","nodeType":"VariableDeclaration","scope":1087,"src":"550:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1078,"name":"address","nodeType":"ElementaryTypeName","src":"550:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1081,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"588:2:3","nodeType":"VariableDeclaration","scope":1087,"src":"572:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1080,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1083,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"600:2:3","nodeType":"VariableDeclaration","scope":1087,"src":"592:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1082,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1085,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"612:5:3","nodeType":"VariableDeclaration","scope":1087,"src":"604:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1084,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:95:3"},"src":"503:116:3"},{"anonymous":false,"documentation":{"id":1088,"nodeType":"StructuredDocumentation","src":"625:144:3","text":" @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n transfers."},"eventSelector":"4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb","id":1102,"name":"TransferBatch","nameLocation":"780:13:3","nodeType":"EventDefinition","parameters":{"id":1101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1090,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"819:8:3","nodeType":"VariableDeclaration","scope":1102,"src":"803:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1092,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"853:4:3","nodeType":"VariableDeclaration","scope":1102,"src":"837:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1091,"name":"address","nodeType":"ElementaryTypeName","src":"837:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1094,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"883:2:3","nodeType":"VariableDeclaration","scope":1102,"src":"867:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1093,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1097,"indexed":false,"mutability":"mutable","name":"ids","nameLocation":"905:3:3","nodeType":"VariableDeclaration","scope":1102,"src":"895:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1095,"name":"uint256","nodeType":"ElementaryTypeName","src":"895:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1096,"nodeType":"ArrayTypeName","src":"895:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1100,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"928:6:3","nodeType":"VariableDeclaration","scope":1102,"src":"918:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1098,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1099,"nodeType":"ArrayTypeName","src":"918:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"793:147:3"},"src":"774:167:3"},{"anonymous":false,"documentation":{"id":1103,"nodeType":"StructuredDocumentation","src":"947:147:3","text":" @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n `approved`."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":1111,"name":"ApprovalForAll","nameLocation":"1105:14:3","nodeType":"EventDefinition","parameters":{"id":1110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1105,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1136:7:3","nodeType":"VariableDeclaration","scope":1111,"src":"1120:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1104,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1107,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"1161:8:3","nodeType":"VariableDeclaration","scope":1111,"src":"1145:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1106,"name":"address","nodeType":"ElementaryTypeName","src":"1145:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1109,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"1176:8:3","nodeType":"VariableDeclaration","scope":1111,"src":"1171:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1108,"name":"bool","nodeType":"ElementaryTypeName","src":"1171:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1119:66:3"},"src":"1099:87:3"},{"anonymous":false,"documentation":{"id":1112,"nodeType":"StructuredDocumentation","src":"1192:343:3","text":" @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n If an {URI} event was emitted for `id`, the standard\n https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n returned by {IERC1155MetadataURI-uri}."},"eventSelector":"6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b","id":1118,"name":"URI","nameLocation":"1546:3:3","nodeType":"EventDefinition","parameters":{"id":1117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1114,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1557:5:3","nodeType":"VariableDeclaration","scope":1118,"src":"1550:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1113,"name":"string","nodeType":"ElementaryTypeName","src":"1550:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1116,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1580:2:3","nodeType":"VariableDeclaration","scope":1118,"src":"1564:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1115,"name":"uint256","nodeType":"ElementaryTypeName","src":"1564:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1549:34:3"},"src":"1540:44:3"},{"documentation":{"id":1119,"nodeType":"StructuredDocumentation","src":"1590:90:3","text":" @dev Returns the value of tokens of token type `id` owned by `account`."},"functionSelector":"00fdd58e","id":1128,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1694:9:3","nodeType":"FunctionDefinition","parameters":{"id":1124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1121,"mutability":"mutable","name":"account","nameLocation":"1712:7:3","nodeType":"VariableDeclaration","scope":1128,"src":"1704:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1120,"name":"address","nodeType":"ElementaryTypeName","src":"1704:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1123,"mutability":"mutable","name":"id","nameLocation":"1729:2:3","nodeType":"VariableDeclaration","scope":1128,"src":"1721:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1721:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1703:29:3"},"returnParameters":{"id":1127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1128,"src":"1756:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1756:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1755:9:3"},"scope":1190,"src":"1685:80:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1129,"nodeType":"StructuredDocumentation","src":"1771:188:3","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n Requirements:\n - `accounts` and `ids` must have the same length."},"functionSelector":"4e1273f4","id":1141,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfBatch","nameLocation":"1973:14:3","nodeType":"FunctionDefinition","parameters":{"id":1136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1132,"mutability":"mutable","name":"accounts","nameLocation":"2016:8:3","nodeType":"VariableDeclaration","scope":1141,"src":"1997:27:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1130,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1131,"nodeType":"ArrayTypeName","src":"1997:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1135,"mutability":"mutable","name":"ids","nameLocation":"2053:3:3","nodeType":"VariableDeclaration","scope":1141,"src":"2034:22:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1133,"name":"uint256","nodeType":"ElementaryTypeName","src":"2034:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1134,"nodeType":"ArrayTypeName","src":"2034:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1987:75:3"},"returnParameters":{"id":1140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1141,"src":"2086:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"2086:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1138,"nodeType":"ArrayTypeName","src":"2086:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2085:18:3"},"scope":1190,"src":"1964:140:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1142,"nodeType":"StructuredDocumentation","src":"2110:254:3","text":" @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address."},"functionSelector":"a22cb465","id":1149,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"2378:17:3","nodeType":"FunctionDefinition","parameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1144,"mutability":"mutable","name":"operator","nameLocation":"2404:8:3","nodeType":"VariableDeclaration","scope":1149,"src":"2396:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1143,"name":"address","nodeType":"ElementaryTypeName","src":"2396:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1146,"mutability":"mutable","name":"approved","nameLocation":"2419:8:3","nodeType":"VariableDeclaration","scope":1149,"src":"2414:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1145,"name":"bool","nodeType":"ElementaryTypeName","src":"2414:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2395:33:3"},"returnParameters":{"id":1148,"nodeType":"ParameterList","parameters":[],"src":"2437:0:3"},"scope":1190,"src":"2369:69:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1150,"nodeType":"StructuredDocumentation","src":"2444:135:3","text":" @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n See {setApprovalForAll}."},"functionSelector":"e985e9c5","id":1159,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2593:16:3","nodeType":"FunctionDefinition","parameters":{"id":1155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1152,"mutability":"mutable","name":"account","nameLocation":"2618:7:3","nodeType":"VariableDeclaration","scope":1159,"src":"2610:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1151,"name":"address","nodeType":"ElementaryTypeName","src":"2610:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1154,"mutability":"mutable","name":"operator","nameLocation":"2635:8:3","nodeType":"VariableDeclaration","scope":1159,"src":"2627:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1153,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2609:35:3"},"returnParameters":{"id":1158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1159,"src":"2668:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1156,"name":"bool","nodeType":"ElementaryTypeName","src":"2668:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2667:6:3"},"scope":1190,"src":"2584:90:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1160,"nodeType":"StructuredDocumentation","src":"2680:910:3","text":" @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"functionSelector":"f242432a","id":1173,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3604:16:3","nodeType":"FunctionDefinition","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1162,"mutability":"mutable","name":"from","nameLocation":"3629:4:3","nodeType":"VariableDeclaration","scope":1173,"src":"3621:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"3621:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1164,"mutability":"mutable","name":"to","nameLocation":"3643:2:3","nodeType":"VariableDeclaration","scope":1173,"src":"3635:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1163,"name":"address","nodeType":"ElementaryTypeName","src":"3635:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1166,"mutability":"mutable","name":"id","nameLocation":"3655:2:3","nodeType":"VariableDeclaration","scope":1173,"src":"3647:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1165,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1168,"mutability":"mutable","name":"value","nameLocation":"3667:5:3","nodeType":"VariableDeclaration","scope":1173,"src":"3659:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1167,"name":"uint256","nodeType":"ElementaryTypeName","src":"3659:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"data","nameLocation":"3689:4:3","nodeType":"VariableDeclaration","scope":1173,"src":"3674:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1169,"name":"bytes","nodeType":"ElementaryTypeName","src":"3674:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3620:74:3"},"returnParameters":{"id":1172,"nodeType":"ParameterList","parameters":[],"src":"3703:0:3"},"scope":1190,"src":"3595:109:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1174,"nodeType":"StructuredDocumentation","src":"3710:814:3","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n Requirements:\n - `ids` and `values` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value."},"functionSelector":"2eb2c2d6","id":1189,"implemented":false,"kind":"function","modifiers":[],"name":"safeBatchTransferFrom","nameLocation":"4538:21:3","nodeType":"FunctionDefinition","parameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1176,"mutability":"mutable","name":"from","nameLocation":"4577:4:3","nodeType":"VariableDeclaration","scope":1189,"src":"4569:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1175,"name":"address","nodeType":"ElementaryTypeName","src":"4569:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1178,"mutability":"mutable","name":"to","nameLocation":"4599:2:3","nodeType":"VariableDeclaration","scope":1189,"src":"4591:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"4591:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1181,"mutability":"mutable","name":"ids","nameLocation":"4630:3:3","nodeType":"VariableDeclaration","scope":1189,"src":"4611:22:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1179,"name":"uint256","nodeType":"ElementaryTypeName","src":"4611:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1180,"nodeType":"ArrayTypeName","src":"4611:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1184,"mutability":"mutable","name":"values","nameLocation":"4662:6:3","nodeType":"VariableDeclaration","scope":1189,"src":"4643:25:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1182,"name":"uint256","nodeType":"ElementaryTypeName","src":"4643:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1183,"nodeType":"ArrayTypeName","src":"4643:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1186,"mutability":"mutable","name":"data","nameLocation":"4693:4:3","nodeType":"VariableDeclaration","scope":1189,"src":"4678:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1185,"name":"bytes","nodeType":"ElementaryTypeName","src":"4678:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4559:144:3"},"returnParameters":{"id":1188,"nodeType":"ParameterList","parameters":[],"src":"4712:0:3"},"scope":1190,"src":"4529:184:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1191,"src":"337:4378:3","usedErrors":[],"usedEvents":[1087,1102,1111,1118]}],"src":"110:4606:3"},"id":3},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","exportedSymbols":{"IERC1155Receiver":[1232],"IERC165":[2857]},"id":1233,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1192,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"118:24:4"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1194,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1233,"sourceUnit":2858,"src":"144:62:4","symbolAliases":[{"foreign":{"id":1193,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"152:7:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1196,"name":"IERC165","nameLocations":["357:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"357:7:4"},"id":1197,"nodeType":"InheritanceSpecifier","src":"357:7:4"}],"canonicalName":"IERC1155Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":1195,"nodeType":"StructuredDocumentation","src":"208:118:4","text":" @dev Interface that must be implemented by smart contracts in order to receive\n ERC-1155 token transfers."},"fullyImplemented":false,"id":1232,"linearizedBaseContracts":[1232,2857],"name":"IERC1155Receiver","nameLocation":"337:16:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1198,"nodeType":"StructuredDocumentation","src":"371:827:4","text":" @dev Handles the receipt of a single ERC-1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n NOTE: To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed"},"functionSelector":"f23a6e61","id":1213,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"1212:17:4","nodeType":"FunctionDefinition","parameters":{"id":1209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1200,"mutability":"mutable","name":"operator","nameLocation":"1247:8:4","nodeType":"VariableDeclaration","scope":1213,"src":"1239:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"1239:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1202,"mutability":"mutable","name":"from","nameLocation":"1273:4:4","nodeType":"VariableDeclaration","scope":1213,"src":"1265:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1201,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1204,"mutability":"mutable","name":"id","nameLocation":"1295:2:4","nodeType":"VariableDeclaration","scope":1213,"src":"1287:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1287:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1206,"mutability":"mutable","name":"value","nameLocation":"1315:5:4","nodeType":"VariableDeclaration","scope":1213,"src":"1307:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1307:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1208,"mutability":"mutable","name":"data","nameLocation":"1345:4:4","nodeType":"VariableDeclaration","scope":1213,"src":"1330:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1207,"name":"bytes","nodeType":"ElementaryTypeName","src":"1330:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1229:126:4"},"returnParameters":{"id":1212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1213,"src":"1374:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1210,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1374:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1373:8:4"},"scope":1232,"src":"1203:179:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1214,"nodeType":"StructuredDocumentation","src":"1388:995:4","text":" @dev Handles the receipt of a multiple ERC-1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated.\n NOTE: To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed"},"functionSelector":"bc197c81","id":1231,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"2397:22:4","nodeType":"FunctionDefinition","parameters":{"id":1227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1216,"mutability":"mutable","name":"operator","nameLocation":"2437:8:4","nodeType":"VariableDeclaration","scope":1231,"src":"2429:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1215,"name":"address","nodeType":"ElementaryTypeName","src":"2429:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1218,"mutability":"mutable","name":"from","nameLocation":"2463:4:4","nodeType":"VariableDeclaration","scope":1231,"src":"2455:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1217,"name":"address","nodeType":"ElementaryTypeName","src":"2455:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1221,"mutability":"mutable","name":"ids","nameLocation":"2496:3:4","nodeType":"VariableDeclaration","scope":1231,"src":"2477:22:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1219,"name":"uint256","nodeType":"ElementaryTypeName","src":"2477:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1220,"nodeType":"ArrayTypeName","src":"2477:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1224,"mutability":"mutable","name":"values","nameLocation":"2528:6:4","nodeType":"VariableDeclaration","scope":1231,"src":"2509:25:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1222,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1223,"nodeType":"ArrayTypeName","src":"2509:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1226,"mutability":"mutable","name":"data","nameLocation":"2559:4:4","nodeType":"VariableDeclaration","scope":1231,"src":"2544:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1225,"name":"bytes","nodeType":"ElementaryTypeName","src":"2544:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2419:150:4"},"returnParameters":{"id":1230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1231,"src":"2588:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1228,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2588:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2587:8:4"},"scope":1232,"src":"2388:208:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1233,"src":"327:2271:4","usedErrors":[],"usedEvents":[]}],"src":"118:2481:4"},"id":4},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol","exportedSymbols":{"IERC1155":[1190],"IERC1155MetadataURI":[1248]},"id":1249,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1234,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"132:24:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"../IERC1155.sol","id":1236,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1249,"sourceUnit":1191,"src":"158:41:5","symbolAliases":[{"foreign":{"id":1235,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"166:8:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1238,"name":"IERC1155","nameLocations":["399:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"399:8:5"},"id":1239,"nodeType":"InheritanceSpecifier","src":"399:8:5"}],"canonicalName":"IERC1155MetadataURI","contractDependencies":[],"contractKind":"interface","documentation":{"id":1237,"nodeType":"StructuredDocumentation","src":"201:164:5","text":" @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[ERC]."},"fullyImplemented":false,"id":1248,"linearizedBaseContracts":[1248,1190,2857],"name":"IERC1155MetadataURI","nameLocation":"376:19:5","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1240,"nodeType":"StructuredDocumentation","src":"414:192:5","text":" @dev Returns the URI for token type `id`.\n If the `\\{id\\}` substring is present in the URI, it must be replaced by\n clients with the actual token type ID."},"functionSelector":"0e89341c","id":1247,"implemented":false,"kind":"function","modifiers":[],"name":"uri","nameLocation":"620:3:5","nodeType":"FunctionDefinition","parameters":{"id":1243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1242,"mutability":"mutable","name":"id","nameLocation":"632:2:5","nodeType":"VariableDeclaration","scope":1247,"src":"624:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1241,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:12:5"},"returnParameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1247,"src":"659:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1244,"name":"string","nodeType":"ElementaryTypeName","src":"659:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"658:15:5"},"scope":1248,"src":"611:63:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1249,"src":"366:310:5","usedErrors":[],"usedEvents":[1087,1102,1111,1118]}],"src":"132:545:5"},"id":5},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol","exportedSymbols":{"ERC1155Utils":[1402],"IERC1155Errors":[150],"IERC1155Receiver":[1232]},"id":1403,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1250,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:6"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"../IERC1155Receiver.sol","id":1252,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1403,"sourceUnit":1233,"src":"59:57:6","symbolAliases":[{"foreign":{"id":1251,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"67:16:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../../interfaces/draft-IERC6093.sol","id":1254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1403,"sourceUnit":151,"src":"117:70:6","symbolAliases":[{"foreign":{"id":1253,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"125:14:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ERC1155Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":1255,"nodeType":"StructuredDocumentation","src":"189:132:6","text":" @dev Library that provide common ERC-1155 utility functions.\n See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155]."},"fullyImplemented":true,"id":1402,"linearizedBaseContracts":[1402],"name":"ERC1155Utils","nameLocation":"330:12:6","nodeType":"ContractDefinition","nodes":[{"body":{"id":1326,"nodeType":"Block","src":"1069:813:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1271,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1083:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1086:4:6","memberName":"code","nodeType":"MemberAccess","src":"1083:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1091:6:6","memberName":"length","nodeType":"MemberAccess","src":"1083:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1100:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1083:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1325,"nodeType":"IfStatement","src":"1079:797:6","trueBody":{"id":1324,"nodeType":"Block","src":"1103:773:6","statements":[{"clauses":[{"block":{"id":1302,"nodeType":"Block","src":"1219:221:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1289,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1287,"src":"1241:8:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1290,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"1253:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1270:17:6","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"1253:34:6","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1288:8:6","memberName":"selector","nodeType":"MemberAccess","src":"1253:43:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1241:55:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1301,"nodeType":"IfStatement","src":"1237:189:6","trueBody":{"id":1300,"nodeType":"Block","src":"1298:128:6","statements":[{"errorCall":{"arguments":[{"id":1297,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1404:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1294,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"1366:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1381:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"1366:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1299,"nodeType":"RevertStatement","src":"1359:48:6"}]}}]},"errorName":"","id":1303,"nodeType":"TryCatchClause","parameters":{"id":1288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1287,"mutability":"mutable","name":"response","nameLocation":"1209:8:6","nodeType":"VariableDeclaration","scope":1303,"src":"1202:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1286,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1202:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1201:17:6"},"src":"1193:247:6"},{"block":{"id":1321,"nodeType":"Block","src":"1469:397:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1307,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"1491:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1498:6:6","memberName":"length","nodeType":"MemberAccess","src":"1491:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1508:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1491:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1319,"nodeType":"Block","src":"1662:190:6","statements":[{"AST":{"nativeSrc":"1748:86:6","nodeType":"YulBlock","src":"1748:86:6","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1785:2:6","nodeType":"YulLiteral","src":"1785:2:6","type":"","value":"32"},{"name":"reason","nativeSrc":"1789:6:6","nodeType":"YulIdentifier","src":"1789:6:6"}],"functionName":{"name":"add","nativeSrc":"1781:3:6","nodeType":"YulIdentifier","src":"1781:3:6"},"nativeSrc":"1781:15:6","nodeType":"YulFunctionCall","src":"1781:15:6"},{"arguments":[{"name":"reason","nativeSrc":"1804:6:6","nodeType":"YulIdentifier","src":"1804:6:6"}],"functionName":{"name":"mload","nativeSrc":"1798:5:6","nodeType":"YulIdentifier","src":"1798:5:6"},"nativeSrc":"1798:13:6","nodeType":"YulFunctionCall","src":"1798:13:6"}],"functionName":{"name":"revert","nativeSrc":"1774:6:6","nodeType":"YulIdentifier","src":"1774:6:6"},"nativeSrc":"1774:38:6","nodeType":"YulFunctionCall","src":"1774:38:6"},"nativeSrc":"1774:38:6","nodeType":"YulExpressionStatement","src":"1774:38:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1305,"isOffset":false,"isSlot":false,"src":"1789:6:6","valueSize":1},{"declaration":1305,"isOffset":false,"isSlot":false,"src":"1804:6:6","valueSize":1}],"id":1318,"nodeType":"InlineAssembly","src":"1739:95:6"}]},"id":1320,"nodeType":"IfStatement","src":"1487:365:6","trueBody":{"id":1317,"nodeType":"Block","src":"1511:145:6","statements":[{"errorCall":{"arguments":[{"id":1314,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1634:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1311,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"1596:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1611:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"1596:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1316,"nodeType":"RevertStatement","src":"1589:48:6"}]}}]},"errorName":"","id":1322,"nodeType":"TryCatchClause","parameters":{"id":1306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1305,"mutability":"mutable","name":"reason","nameLocation":"1461:6:6","nodeType":"VariableDeclaration","scope":1322,"src":"1448:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1304,"name":"bytes","nodeType":"ElementaryTypeName","src":"1448:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1447:21:6"},"src":"1441:425:6"}],"externalCall":{"arguments":[{"id":1280,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"1160:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1281,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1260,"src":"1170:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1282,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"1176:2:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1266,"src":"1180:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1284,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1268,"src":"1187:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1277,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1138:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1276,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"1121:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155Receiver_$1232","typeString":"contract IERC1155Receiver"}},"id":1279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1142:17:6","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"1121:38:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":1285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:71:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1323,"nodeType":"TryStatement","src":"1117:749:6"}]}}]},"documentation":{"id":1256,"nodeType":"StructuredDocumentation","src":"349:530:6","text":" @dev Performs an acceptance check for the provided `operator` by calling {IERC1155-onERC1155Received}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n the transfer."},"id":1327,"implemented":true,"kind":"function","modifiers":[],"name":"checkOnERC1155Received","nameLocation":"893:22:6","nodeType":"FunctionDefinition","parameters":{"id":1269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"mutability":"mutable","name":"operator","nameLocation":"933:8:6","nodeType":"VariableDeclaration","scope":1327,"src":"925:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1257,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1260,"mutability":"mutable","name":"from","nameLocation":"959:4:6","nodeType":"VariableDeclaration","scope":1327,"src":"951:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1259,"name":"address","nodeType":"ElementaryTypeName","src":"951:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1262,"mutability":"mutable","name":"to","nameLocation":"981:2:6","nodeType":"VariableDeclaration","scope":1327,"src":"973:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1261,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1264,"mutability":"mutable","name":"id","nameLocation":"1001:2:6","nodeType":"VariableDeclaration","scope":1327,"src":"993:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1263,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1266,"mutability":"mutable","name":"value","nameLocation":"1021:5:6","nodeType":"VariableDeclaration","scope":1327,"src":"1013:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1265,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1268,"mutability":"mutable","name":"data","nameLocation":"1049:4:6","nodeType":"VariableDeclaration","scope":1327,"src":"1036:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1267,"name":"bytes","nodeType":"ElementaryTypeName","src":"1036:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"915:144:6"},"returnParameters":{"id":1270,"nodeType":"ParameterList","parameters":[],"src":"1069:0:6"},"scope":1402,"src":"884:998:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1400,"nodeType":"Block","src":"2643:855:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1345,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2657:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2660:4:6","memberName":"code","nodeType":"MemberAccess","src":"2657:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2665:6:6","memberName":"length","nodeType":"MemberAccess","src":"2657:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2674:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1399,"nodeType":"IfStatement","src":"2653:839:6","trueBody":{"id":1398,"nodeType":"Block","src":"2677:815:6","statements":[{"clauses":[{"block":{"id":1376,"nodeType":"Block","src":"2830:226:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1363,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1361,"src":"2852:8:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1364,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"2864:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2881:22:6","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1231,"src":"2864:39:6","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)"}},"id":1366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2904:8:6","memberName":"selector","nodeType":"MemberAccess","src":"2864:48:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2852:60:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1375,"nodeType":"IfStatement","src":"2848:194:6","trueBody":{"id":1374,"nodeType":"Block","src":"2914:128:6","statements":[{"errorCall":{"arguments":[{"id":1371,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"3020:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1368,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"2982:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2997:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2982:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1373,"nodeType":"RevertStatement","src":"2975:48:6"}]}}]},"errorName":"","id":1377,"nodeType":"TryCatchClause","parameters":{"id":1362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1361,"mutability":"mutable","name":"response","nameLocation":"2807:8:6","nodeType":"VariableDeclaration","scope":1377,"src":"2800:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1360,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2800:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2782:47:6"},"src":"2774:282:6"},{"block":{"id":1395,"nodeType":"Block","src":"3085:397:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1381,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1379,"src":"3107:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3114:6:6","memberName":"length","nodeType":"MemberAccess","src":"3107:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3124:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3107:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1393,"nodeType":"Block","src":"3278:190:6","statements":[{"AST":{"nativeSrc":"3364:86:6","nodeType":"YulBlock","src":"3364:86:6","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3401:2:6","nodeType":"YulLiteral","src":"3401:2:6","type":"","value":"32"},{"name":"reason","nativeSrc":"3405:6:6","nodeType":"YulIdentifier","src":"3405:6:6"}],"functionName":{"name":"add","nativeSrc":"3397:3:6","nodeType":"YulIdentifier","src":"3397:3:6"},"nativeSrc":"3397:15:6","nodeType":"YulFunctionCall","src":"3397:15:6"},{"arguments":[{"name":"reason","nativeSrc":"3420:6:6","nodeType":"YulIdentifier","src":"3420:6:6"}],"functionName":{"name":"mload","nativeSrc":"3414:5:6","nodeType":"YulIdentifier","src":"3414:5:6"},"nativeSrc":"3414:13:6","nodeType":"YulFunctionCall","src":"3414:13:6"}],"functionName":{"name":"revert","nativeSrc":"3390:6:6","nodeType":"YulIdentifier","src":"3390:6:6"},"nativeSrc":"3390:38:6","nodeType":"YulFunctionCall","src":"3390:38:6"},"nativeSrc":"3390:38:6","nodeType":"YulExpressionStatement","src":"3390:38:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1379,"isOffset":false,"isSlot":false,"src":"3405:6:6","valueSize":1},{"declaration":1379,"isOffset":false,"isSlot":false,"src":"3420:6:6","valueSize":1}],"id":1392,"nodeType":"InlineAssembly","src":"3355:95:6"}]},"id":1394,"nodeType":"IfStatement","src":"3103:365:6","trueBody":{"id":1391,"nodeType":"Block","src":"3127:145:6","statements":[{"errorCall":{"arguments":[{"id":1388,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"3250:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1385,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"3212:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$150_$","typeString":"type(contract IERC1155Errors)"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3227:22:6","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":125,"src":"3212:37:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1390,"nodeType":"RevertStatement","src":"3205:48:6"}]}}]},"errorName":"","id":1396,"nodeType":"TryCatchClause","parameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"reason","nameLocation":"3077:6:6","nodeType":"VariableDeclaration","scope":1396,"src":"3064:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1378,"name":"bytes","nodeType":"ElementaryTypeName","src":"3064:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3063:21:6"},"src":"3057:425:6"}],"externalCall":{"arguments":[{"id":1354,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"2739:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1355,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2749:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1356,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1337,"src":"2755:3:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1357,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1340,"src":"2760:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1358,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1342,"src":"2768:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1351,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2712:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1350,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"2695:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155Receiver_$1232","typeString":"contract IERC1155Receiver"}},"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2716:22:6","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1231,"src":"2695:43:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":1359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:78:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1397,"nodeType":"TryStatement","src":"2691:791:6"}]}}]},"documentation":{"id":1328,"nodeType":"StructuredDocumentation","src":"1888:540:6","text":" @dev Performs a batch acceptance check for the provided `operator` by calling {IERC1155-onERC1155BatchReceived}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n the transfer."},"id":1401,"implemented":true,"kind":"function","modifiers":[],"name":"checkOnERC1155BatchReceived","nameLocation":"2442:27:6","nodeType":"FunctionDefinition","parameters":{"id":1343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1330,"mutability":"mutable","name":"operator","nameLocation":"2487:8:6","nodeType":"VariableDeclaration","scope":1401,"src":"2479:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1329,"name":"address","nodeType":"ElementaryTypeName","src":"2479:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1332,"mutability":"mutable","name":"from","nameLocation":"2513:4:6","nodeType":"VariableDeclaration","scope":1401,"src":"2505:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1331,"name":"address","nodeType":"ElementaryTypeName","src":"2505:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1334,"mutability":"mutable","name":"to","nameLocation":"2535:2:6","nodeType":"VariableDeclaration","scope":1401,"src":"2527:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1333,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"ids","nameLocation":"2564:3:6","nodeType":"VariableDeclaration","scope":1401,"src":"2547:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1335,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1336,"nodeType":"ArrayTypeName","src":"2547:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1340,"mutability":"mutable","name":"values","nameLocation":"2594:6:6","nodeType":"VariableDeclaration","scope":1401,"src":"2577:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2577:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1339,"nodeType":"ArrayTypeName","src":"2577:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1342,"mutability":"mutable","name":"data","nameLocation":"2623:4:6","nodeType":"VariableDeclaration","scope":1401,"src":"2610:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1341,"name":"bytes","nodeType":"ElementaryTypeName","src":"2610:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2469:164:6"},"returnParameters":{"id":1344,"nodeType":"ParameterList","parameters":[],"src":"2643:0:6"},"scope":1402,"src":"2433:1065:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":1403,"src":"322:3178:6","usedErrors":[],"usedEvents":[]}],"src":"33:3468:6"},"id":6},"@openzeppelin/contracts/utils/Arrays.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Arrays.sol","exportedSymbols":{"Arrays":[2290],"Math":[4442],"SlotDerivation":[2502],"StorageSlot":[2821]},"id":2291,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1404,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"183:24:7"},{"absolutePath":"@openzeppelin/contracts/utils/SlotDerivation.sol","file":"./SlotDerivation.sol","id":1406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2291,"sourceUnit":2503,"src":"209:52:7","symbolAliases":[{"foreign":{"id":1405,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2502,"src":"217:14:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"./StorageSlot.sol","id":1408,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2291,"sourceUnit":2822,"src":"262:46:7","symbolAliases":[{"foreign":{"id":1407,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2821,"src":"270:11:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1410,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2291,"sourceUnit":4443,"src":"309:37:7","symbolAliases":[{"foreign":{"id":1409,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"317:4:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Arrays","contractDependencies":[],"contractKind":"library","documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"348:63:7","text":" @dev Collection of functions related to array types."},"fullyImplemented":true,"id":2290,"linearizedBaseContracts":[2290],"name":"Arrays","nameLocation":"420:6:7","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1414,"libraryName":{"id":1412,"name":"SlotDerivation","nameLocations":["439:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":2502,"src":"439:14:7"},"nodeType":"UsingForDirective","src":"433:33:7","typeName":{"id":1413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"458:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":1417,"libraryName":{"id":1415,"name":"StorageSlot","nameLocations":["477:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2821,"src":"477:11:7"},"nodeType":"UsingForDirective","src":"471:30:7","typeName":{"id":1416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":1449,"nodeType":"Block","src":"1451:83:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1439,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1421,"src":"1479:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1438,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"1472:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1472:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1442,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1421,"src":"1492:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1441,"name":"_end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"1487:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1487:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1444,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"1500:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1437,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"1461:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1446,"nodeType":"ExpressionStatement","src":"1461:44:7"},{"expression":{"id":1447,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1421,"src":"1522:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":1436,"id":1448,"nodeType":"Return","src":"1515:12:7"}]},"documentation":{"id":1418,"nodeType":"StructuredDocumentation","src":"507:785:7","text":" @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1450,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1306:4:7","nodeType":"FunctionDefinition","parameters":{"id":1432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1421,"mutability":"mutable","name":"array","nameLocation":"1337:5:7","nodeType":"VariableDeclaration","scope":1450,"src":"1320:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1320:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1420,"nodeType":"ArrayTypeName","src":"1320:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":1431,"mutability":"mutable","name":"comp","nameLocation":"1399:4:7","nodeType":"VariableDeclaration","scope":1450,"src":"1352:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1430,"nodeType":"FunctionTypeName","parameterTypes":{"id":1426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1430,"src":"1361:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1361:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1430,"src":"1370:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1370:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1360:18:7"},"returnParameterTypes":{"id":1429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1430,"src":"1393:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1427,"name":"bool","nodeType":"ElementaryTypeName","src":"1393:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1392:6:7"},"src":"1352:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"1310:99:7"},"returnParameters":{"id":1436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1450,"src":"1433:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1433:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1434,"nodeType":"ArrayTypeName","src":"1433:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1432:18:7"},"scope":2290,"src":"1297:237:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1467,"nodeType":"Block","src":"1717:64:7","statements":[{"expression":{"arguments":[{"id":1461,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"1732:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1462,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"1739:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1460,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"1727:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1727:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1464,"nodeType":"ExpressionStatement","src":"1727:25:7"},{"expression":{"id":1465,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"1769:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":1459,"id":1466,"nodeType":"Return","src":"1762:12:7"}]},"documentation":{"id":1451,"nodeType":"StructuredDocumentation","src":"1540:93:7","text":" @dev Variant of {sort} that sorts an array of bytes32 in increasing order."},"id":1468,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1647:4:7","nodeType":"FunctionDefinition","parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"array","nameLocation":"1669:5:7","nodeType":"VariableDeclaration","scope":1468,"src":"1652:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1652:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1453,"nodeType":"ArrayTypeName","src":"1652:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1651:24:7"},"returnParameters":{"id":1459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1468,"src":"1699:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1699:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1457,"nodeType":"ArrayTypeName","src":"1699:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1698:18:7"},"scope":2290,"src":"1638:143:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1499,"nodeType":"Block","src":"2731:97:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1490,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"2766:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":1489,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1738,"src":"2746:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (bytes32[] memory)"}},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"arguments":[{"id":1493,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"2793:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}],"id":1492,"name":"_castToBytes32Comp","nodeType":"Identifier","overloadedDeclarations":[1776,1802],"referencedDeclaration":1776,"src":"2774:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$","typeString":"function (function (address,address) pure returns (bool)) pure returns (function (bytes32,bytes32) pure returns (bool))"}},"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2774:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1488,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"2741:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1496,"nodeType":"ExpressionStatement","src":"2741:58:7"},{"expression":{"id":1497,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"2816:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":1487,"id":1498,"nodeType":"Return","src":"2809:12:7"}]},"documentation":{"id":1469,"nodeType":"StructuredDocumentation","src":"1787:785:7","text":" @dev Sort an array of address (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1500,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"2586:4:7","nodeType":"FunctionDefinition","parameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"array","nameLocation":"2617:5:7","nodeType":"VariableDeclaration","scope":1500,"src":"2600:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"2600:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1471,"nodeType":"ArrayTypeName","src":"2600:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1482,"mutability":"mutable","name":"comp","nameLocation":"2679:4:7","nodeType":"VariableDeclaration","scope":1500,"src":"2632:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":1481,"nodeType":"FunctionTypeName","parameterTypes":{"id":1477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1481,"src":"2641:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1473,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1481,"src":"2650:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1475,"name":"address","nodeType":"ElementaryTypeName","src":"2650:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2640:18:7"},"returnParameterTypes":{"id":1480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1481,"src":"2673:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1478,"name":"bool","nodeType":"ElementaryTypeName","src":"2673:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2672:6:7"},"src":"2632:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"2590:99:7"},"returnParameters":{"id":1487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1500,"src":"2713:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1484,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1485,"nodeType":"ArrayTypeName","src":"2713:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2712:18:7"},"scope":2290,"src":"2577:251:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1519,"nodeType":"Block","src":"3011:85:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1512,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3046:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":1511,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1738,"src":"3026:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (bytes32[] memory)"}},"id":1513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3026:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1514,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"3054:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1510,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"3021:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1516,"nodeType":"ExpressionStatement","src":"3021:46:7"},{"expression":{"id":1517,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3084:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":1509,"id":1518,"nodeType":"Return","src":"3077:12:7"}]},"documentation":{"id":1501,"nodeType":"StructuredDocumentation","src":"2834:93:7","text":" @dev Variant of {sort} that sorts an array of address in increasing order."},"id":1520,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"2941:4:7","nodeType":"FunctionDefinition","parameters":{"id":1505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"array","nameLocation":"2963:5:7","nodeType":"VariableDeclaration","scope":1520,"src":"2946:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1502,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1503,"nodeType":"ArrayTypeName","src":"2946:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2945:24:7"},"returnParameters":{"id":1509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1520,"src":"2993:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1506,"name":"address","nodeType":"ElementaryTypeName","src":"2993:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1507,"nodeType":"ArrayTypeName","src":"2993:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2992:18:7"},"scope":2290,"src":"2932:164:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1551,"nodeType":"Block","src":"4046:97:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1542,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"4081:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":1541,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1750,"src":"4061:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256[] memory) pure returns (bytes32[] memory)"}},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"arguments":[{"id":1545,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"4108:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":1544,"name":"_castToBytes32Comp","nodeType":"Identifier","overloadedDeclarations":[1776,1802],"referencedDeclaration":1802,"src":"4089:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$","typeString":"function (function (uint256,uint256) pure returns (bool)) pure returns (function (bytes32,bytes32) pure returns (bool))"}},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4089:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1540,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"4056:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1548,"nodeType":"ExpressionStatement","src":"4056:58:7"},{"expression":{"id":1549,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"4131:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1539,"id":1550,"nodeType":"Return","src":"4124:12:7"}]},"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"3102:785:7","text":" @dev Sort an array of uint256 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1552,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"3901:4:7","nodeType":"FunctionDefinition","parameters":{"id":1535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1524,"mutability":"mutable","name":"array","nameLocation":"3932:5:7","nodeType":"VariableDeclaration","scope":1552,"src":"3915:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3915:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1523,"nodeType":"ArrayTypeName","src":"3915:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1534,"mutability":"mutable","name":"comp","nameLocation":"3994:4:7","nodeType":"VariableDeclaration","scope":1552,"src":"3947:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":1533,"nodeType":"FunctionTypeName","parameterTypes":{"id":1529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1533,"src":"3956:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1525,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1533,"src":"3965:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1527,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:18:7"},"returnParameterTypes":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1533,"src":"3988:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1530,"name":"bool","nodeType":"ElementaryTypeName","src":"3988:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3987:6:7"},"src":"3947:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"3905:99:7"},"returnParameters":{"id":1539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1552,"src":"4028:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1536,"name":"uint256","nodeType":"ElementaryTypeName","src":"4028:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1537,"nodeType":"ArrayTypeName","src":"4028:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4027:18:7"},"scope":2290,"src":"3892:251:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1571,"nodeType":"Block","src":"4326:85:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":1564,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"4361:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":1563,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1738,1750],"referencedDeclaration":1750,"src":"4341:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256[] memory) pure returns (bytes32[] memory)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4341:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1566,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"4369:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1562,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1450,1468,1500,1520,1552,1572],"referencedDeclaration":1450,"src":"4336:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1568,"nodeType":"ExpressionStatement","src":"4336:46:7"},{"expression":{"id":1569,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"4399:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1561,"id":1570,"nodeType":"Return","src":"4392:12:7"}]},"documentation":{"id":1553,"nodeType":"StructuredDocumentation","src":"4149:93:7","text":" @dev Variant of {sort} that sorts an array of uint256 in increasing order."},"id":1572,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"4256:4:7","nodeType":"FunctionDefinition","parameters":{"id":1557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"array","nameLocation":"4278:5:7","nodeType":"VariableDeclaration","scope":1572,"src":"4261:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"4261:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1555,"nodeType":"ArrayTypeName","src":"4261:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4260:24:7"},"returnParameters":{"id":1561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1572,"src":"4308:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1558,"name":"uint256","nodeType":"ElementaryTypeName","src":"4308:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1559,"nodeType":"ArrayTypeName","src":"4308:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4307:18:7"},"scope":2290,"src":"4247:164:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1659,"nodeType":"Block","src":"5027:889:7","statements":[{"id":1658,"nodeType":"UncheckedBlock","src":"5037:873:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1590,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5065:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1591,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5071:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783430","id":1593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5079:4:7","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"0x40"},"src":"5065:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1596,"nodeType":"IfStatement","src":"5061:31:7","trueBody":{"functionReturnParameters":1589,"id":1595,"nodeType":"Return","src":"5085:7:7"}},{"assignments":[1598],"declarations":[{"constant":false,"id":1598,"mutability":"mutable","name":"pivot","nameLocation":"5156:5:7","nodeType":"VariableDeclaration","scope":1658,"src":"5148:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5148:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1602,"initialValue":{"arguments":[{"id":1600,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5171:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1599,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"5164:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5164:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5148:29:7"},{"assignments":[1604],"declarations":[{"constant":false,"id":1604,"mutability":"mutable","name":"pos","nameLocation":"5272:3:7","nodeType":"VariableDeclaration","scope":1658,"src":"5264:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1603,"name":"uint256","nodeType":"ElementaryTypeName","src":"5264:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1606,"initialValue":{"id":1605,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5278:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5264:19:7"},{"body":{"id":1637,"nodeType":"Block","src":"5352:331:7","statements":[{"condition":{"arguments":[{"arguments":[{"id":1622,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5386:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1621,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"5379:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":1623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5379:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1624,"name":"pivot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"5391:5:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1620,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"5374:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}},"id":1625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1636,"nodeType":"IfStatement","src":"5370:299:7","trueBody":{"id":1635,"nodeType":"Block","src":"5399:270:7","statements":[{"expression":{"id":1628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1626,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5603:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":1627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5610:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5603:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1629,"nodeType":"ExpressionStatement","src":"5603:11:7"},{"expression":{"arguments":[{"id":1631,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5642:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1632,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5647:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1630,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1711,"src":"5636:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5636:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1634,"nodeType":"ExpressionStatement","src":"5636:14:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1613,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5330:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1614,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5335:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5330:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1638,"initializationExpression":{"assignments":[1608],"declarations":[{"constant":false,"id":1608,"mutability":"mutable","name":"it","nameLocation":"5311:2:7","nodeType":"VariableDeclaration","scope":1638,"src":"5303:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1607,"name":"uint256","nodeType":"ElementaryTypeName","src":"5303:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1612,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1609,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5316:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":1610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5324:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5316:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5303:25:7"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":1618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1616,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"5340:2:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":1617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5346:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5340:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1619,"nodeType":"ExpressionStatement","src":"5340:10:7"},"nodeType":"ForStatement","src":"5298:385:7"},{"expression":{"arguments":[{"id":1640,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5703:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1641,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5710:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1639,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1711,"src":"5697:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5697:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1643,"nodeType":"ExpressionStatement","src":"5697:17:7"},{"expression":{"arguments":[{"id":1645,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"5764:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1646,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5771:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1647,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"5776:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1644,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"5753:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1649,"nodeType":"ExpressionStatement","src":"5753:28:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1651,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"5841:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":1652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5847:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5841:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1654,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5853:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1655,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"5858:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1650,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"5830:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1657,"nodeType":"ExpressionStatement","src":"5830:33:7"}]}]},"documentation":{"id":1573,"nodeType":"StructuredDocumentation","src":"4417:491:7","text":" @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n at end (exclusive). Sorting follows the `comp` comparator.\n Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n be used only if the limits are within a memory array."},"id":1660,"implemented":true,"kind":"function","modifiers":[],"name":"_quickSort","nameLocation":"4922:10:7","nodeType":"FunctionDefinition","parameters":{"id":1588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1575,"mutability":"mutable","name":"begin","nameLocation":"4941:5:7","nodeType":"VariableDeclaration","scope":1660,"src":"4933:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1574,"name":"uint256","nodeType":"ElementaryTypeName","src":"4933:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1577,"mutability":"mutable","name":"end","nameLocation":"4956:3:7","nodeType":"VariableDeclaration","scope":1660,"src":"4948:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"4948:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1587,"mutability":"mutable","name":"comp","nameLocation":"5008:4:7","nodeType":"VariableDeclaration","scope":1660,"src":"4961:51:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1586,"nodeType":"FunctionTypeName","parameterTypes":{"id":1582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1586,"src":"4970:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4970:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1586,"src":"4979:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4979:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4969:18:7"},"returnParameterTypes":{"id":1585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1586,"src":"5002:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1583,"name":"bool","nodeType":"ElementaryTypeName","src":"5002:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5001:6:7"},"src":"4961:51:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"4932:81:7"},"returnParameters":{"id":1589,"nodeType":"ParameterList","parameters":[],"src":"5027:0:7"},"scope":2290,"src":"4913:1003:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1670,"nodeType":"Block","src":"6089:115:7","statements":[{"AST":{"nativeSrc":"6151:47:7","nodeType":"YulBlock","src":"6151:47:7","statements":[{"nativeSrc":"6165:23:7","nodeType":"YulAssignment","src":"6165:23:7","value":{"arguments":[{"name":"array","nativeSrc":"6176:5:7","nodeType":"YulIdentifier","src":"6176:5:7"},{"kind":"number","nativeSrc":"6183:4:7","nodeType":"YulLiteral","src":"6183:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6172:3:7","nodeType":"YulIdentifier","src":"6172:3:7"},"nativeSrc":"6172:16:7","nodeType":"YulFunctionCall","src":"6172:16:7"},"variableNames":[{"name":"ptr","nativeSrc":"6165:3:7","nodeType":"YulIdentifier","src":"6165:3:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1664,"isOffset":false,"isSlot":false,"src":"6176:5:7","valueSize":1},{"declaration":1667,"isOffset":false,"isSlot":false,"src":"6165:3:7","valueSize":1}],"id":1669,"nodeType":"InlineAssembly","src":"6142:56:7"}]},"documentation":{"id":1661,"nodeType":"StructuredDocumentation","src":"5922:87:7","text":" @dev Pointer to the memory location of the first element of `array`."},"id":1671,"implemented":true,"kind":"function","modifiers":[],"name":"_begin","nameLocation":"6023:6:7","nodeType":"FunctionDefinition","parameters":{"id":1665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1664,"mutability":"mutable","name":"array","nameLocation":"6047:5:7","nodeType":"VariableDeclaration","scope":1671,"src":"6030:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6030:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1663,"nodeType":"ArrayTypeName","src":"6030:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6029:24:7"},"returnParameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1667,"mutability":"mutable","name":"ptr","nameLocation":"6084:3:7","nodeType":"VariableDeclaration","scope":1671,"src":"6076:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1666,"name":"uint256","nodeType":"ElementaryTypeName","src":"6076:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6075:13:7"},"scope":2290,"src":"6014:190:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1690,"nodeType":"Block","src":"6476:93:7","statements":[{"id":1689,"nodeType":"UncheckedBlock","src":"6486:77:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1681,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1675,"src":"6524:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1680,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"6517:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6517:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1683,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1675,"src":"6533:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6539:6:7","memberName":"length","nodeType":"MemberAccess","src":"6533:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30783230","id":1685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6548:4:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"6533:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6517:35:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1679,"id":1688,"nodeType":"Return","src":"6510:42:7"}]}]},"documentation":{"id":1672,"nodeType":"StructuredDocumentation","src":"6210:188:7","text":" @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n that comes just after the last element of the array."},"id":1691,"implemented":true,"kind":"function","modifiers":[],"name":"_end","nameLocation":"6412:4:7","nodeType":"FunctionDefinition","parameters":{"id":1676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1675,"mutability":"mutable","name":"array","nameLocation":"6434:5:7","nodeType":"VariableDeclaration","scope":1691,"src":"6417:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6417:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1674,"nodeType":"ArrayTypeName","src":"6417:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6416:24:7"},"returnParameters":{"id":1679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1678,"mutability":"mutable","name":"ptr","nameLocation":"6471:3:7","nodeType":"VariableDeclaration","scope":1691,"src":"6463:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1677,"name":"uint256","nodeType":"ElementaryTypeName","src":"6463:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6462:13:7"},"scope":2290,"src":"6403:166:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1700,"nodeType":"Block","src":"6720:68:7","statements":[{"AST":{"nativeSrc":"6739:43:7","nodeType":"YulBlock","src":"6739:43:7","statements":[{"nativeSrc":"6753:19:7","nodeType":"YulAssignment","src":"6753:19:7","value":{"arguments":[{"name":"ptr","nativeSrc":"6768:3:7","nodeType":"YulIdentifier","src":"6768:3:7"}],"functionName":{"name":"mload","nativeSrc":"6762:5:7","nodeType":"YulIdentifier","src":"6762:5:7"},"nativeSrc":"6762:10:7","nodeType":"YulFunctionCall","src":"6762:10:7"},"variableNames":[{"name":"value","nativeSrc":"6753:5:7","nodeType":"YulIdentifier","src":"6753:5:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1694,"isOffset":false,"isSlot":false,"src":"6768:3:7","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"6753:5:7","valueSize":1}],"id":1699,"nodeType":"InlineAssembly","src":"6730:52:7"}]},"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"6575:74:7","text":" @dev Load memory word (as a bytes32) at location `ptr`."},"id":1701,"implemented":true,"kind":"function","modifiers":[],"name":"_mload","nameLocation":"6663:6:7","nodeType":"FunctionDefinition","parameters":{"id":1695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1694,"mutability":"mutable","name":"ptr","nameLocation":"6678:3:7","nodeType":"VariableDeclaration","scope":1701,"src":"6670:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1693,"name":"uint256","nodeType":"ElementaryTypeName","src":"6670:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6669:13:7"},"returnParameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1697,"mutability":"mutable","name":"value","nameLocation":"6713:5:7","nodeType":"VariableDeclaration","scope":1701,"src":"6705:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6705:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6704:15:7"},"scope":2290,"src":"6654:134:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1710,"nodeType":"Block","src":"6932:178:7","statements":[{"AST":{"nativeSrc":"6951:153:7","nodeType":"YulBlock","src":"6951:153:7","statements":[{"nativeSrc":"6965:25:7","nodeType":"YulVariableDeclaration","src":"6965:25:7","value":{"arguments":[{"name":"ptr1","nativeSrc":"6985:4:7","nodeType":"YulIdentifier","src":"6985:4:7"}],"functionName":{"name":"mload","nativeSrc":"6979:5:7","nodeType":"YulIdentifier","src":"6979:5:7"},"nativeSrc":"6979:11:7","nodeType":"YulFunctionCall","src":"6979:11:7"},"variables":[{"name":"value1","nativeSrc":"6969:6:7","nodeType":"YulTypedName","src":"6969:6:7","type":""}]},{"nativeSrc":"7003:25:7","nodeType":"YulVariableDeclaration","src":"7003:25:7","value":{"arguments":[{"name":"ptr2","nativeSrc":"7023:4:7","nodeType":"YulIdentifier","src":"7023:4:7"}],"functionName":{"name":"mload","nativeSrc":"7017:5:7","nodeType":"YulIdentifier","src":"7017:5:7"},"nativeSrc":"7017:11:7","nodeType":"YulFunctionCall","src":"7017:11:7"},"variables":[{"name":"value2","nativeSrc":"7007:6:7","nodeType":"YulTypedName","src":"7007:6:7","type":""}]},{"expression":{"arguments":[{"name":"ptr1","nativeSrc":"7048:4:7","nodeType":"YulIdentifier","src":"7048:4:7"},{"name":"value2","nativeSrc":"7054:6:7","nodeType":"YulIdentifier","src":"7054:6:7"}],"functionName":{"name":"mstore","nativeSrc":"7041:6:7","nodeType":"YulIdentifier","src":"7041:6:7"},"nativeSrc":"7041:20:7","nodeType":"YulFunctionCall","src":"7041:20:7"},"nativeSrc":"7041:20:7","nodeType":"YulExpressionStatement","src":"7041:20:7"},{"expression":{"arguments":[{"name":"ptr2","nativeSrc":"7081:4:7","nodeType":"YulIdentifier","src":"7081:4:7"},{"name":"value1","nativeSrc":"7087:6:7","nodeType":"YulIdentifier","src":"7087:6:7"}],"functionName":{"name":"mstore","nativeSrc":"7074:6:7","nodeType":"YulIdentifier","src":"7074:6:7"},"nativeSrc":"7074:20:7","nodeType":"YulFunctionCall","src":"7074:20:7"},"nativeSrc":"7074:20:7","nodeType":"YulExpressionStatement","src":"7074:20:7"}]},"evmVersion":"cancun","externalReferences":[{"declaration":1704,"isOffset":false,"isSlot":false,"src":"6985:4:7","valueSize":1},{"declaration":1704,"isOffset":false,"isSlot":false,"src":"7048:4:7","valueSize":1},{"declaration":1706,"isOffset":false,"isSlot":false,"src":"7023:4:7","valueSize":1},{"declaration":1706,"isOffset":false,"isSlot":false,"src":"7081:4:7","valueSize":1}],"id":1709,"nodeType":"InlineAssembly","src":"6942:162:7"}]},"documentation":{"id":1702,"nodeType":"StructuredDocumentation","src":"6794:77:7","text":" @dev Swaps the elements memory location `ptr1` and `ptr2`."},"id":1711,"implemented":true,"kind":"function","modifiers":[],"name":"_swap","nameLocation":"6885:5:7","nodeType":"FunctionDefinition","parameters":{"id":1707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1704,"mutability":"mutable","name":"ptr1","nameLocation":"6899:4:7","nodeType":"VariableDeclaration","scope":1711,"src":"6891:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1703,"name":"uint256","nodeType":"ElementaryTypeName","src":"6891:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1706,"mutability":"mutable","name":"ptr2","nameLocation":"6913:4:7","nodeType":"VariableDeclaration","scope":1711,"src":"6905:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1705,"name":"uint256","nodeType":"ElementaryTypeName","src":"6905:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6890:28:7"},"returnParameters":{"id":1708,"nodeType":"ParameterList","parameters":[],"src":"6932:0:7"},"scope":2290,"src":"6876:234:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1725,"nodeType":"Block","src":"7252:29:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1721,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"7269:1:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1722,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"7273:1:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7269:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1720,"id":1724,"nodeType":"Return","src":"7262:12:7"}]},"documentation":{"id":1712,"nodeType":"StructuredDocumentation","src":"7116:59:7","text":"@dev Comparator for sorting arrays in increasing order."},"id":1726,"implemented":true,"kind":"function","modifiers":[],"name":"_defaultComp","nameLocation":"7189:12:7","nodeType":"FunctionDefinition","parameters":{"id":1717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1714,"mutability":"mutable","name":"a","nameLocation":"7210:1:7","nodeType":"VariableDeclaration","scope":1726,"src":"7202:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7202:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1716,"mutability":"mutable","name":"b","nameLocation":"7221:1:7","nodeType":"VariableDeclaration","scope":1726,"src":"7213:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7213:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7201:22:7"},"returnParameters":{"id":1720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1726,"src":"7246:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1718,"name":"bool","nodeType":"ElementaryTypeName","src":"7246:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7245:6:7"},"scope":2290,"src":"7180:101:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1737,"nodeType":"Block","src":"7468:64:7","statements":[{"AST":{"nativeSrc":"7487:39:7","nodeType":"YulBlock","src":"7487:39:7","statements":[{"nativeSrc":"7501:15:7","nodeType":"YulAssignment","src":"7501:15:7","value":{"name":"input","nativeSrc":"7511:5:7","nodeType":"YulIdentifier","src":"7511:5:7"},"variableNames":[{"name":"output","nativeSrc":"7501:6:7","nodeType":"YulIdentifier","src":"7501:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1730,"isOffset":false,"isSlot":false,"src":"7511:5:7","valueSize":1},{"declaration":1734,"isOffset":false,"isSlot":false,"src":"7501:6:7","valueSize":1}],"id":1736,"nodeType":"InlineAssembly","src":"7478:48:7"}]},"documentation":{"id":1727,"nodeType":"StructuredDocumentation","src":"7287:76:7","text":"@dev Helper: low level cast address memory array to uint256 memory array"},"id":1738,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Array","nameLocation":"7377:19:7","nodeType":"FunctionDefinition","parameters":{"id":1731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1730,"mutability":"mutable","name":"input","nameLocation":"7414:5:7","nodeType":"VariableDeclaration","scope":1738,"src":"7397:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1728,"name":"address","nodeType":"ElementaryTypeName","src":"7397:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1729,"nodeType":"ArrayTypeName","src":"7397:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7396:24:7"},"returnParameters":{"id":1735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1734,"mutability":"mutable","name":"output","nameLocation":"7460:6:7","nodeType":"VariableDeclaration","scope":1738,"src":"7443:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7443:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1733,"nodeType":"ArrayTypeName","src":"7443:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7442:25:7"},"scope":2290,"src":"7368:164:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1749,"nodeType":"Block","src":"7719:64:7","statements":[{"AST":{"nativeSrc":"7738:39:7","nodeType":"YulBlock","src":"7738:39:7","statements":[{"nativeSrc":"7752:15:7","nodeType":"YulAssignment","src":"7752:15:7","value":{"name":"input","nativeSrc":"7762:5:7","nodeType":"YulIdentifier","src":"7762:5:7"},"variableNames":[{"name":"output","nativeSrc":"7752:6:7","nodeType":"YulIdentifier","src":"7752:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1742,"isOffset":false,"isSlot":false,"src":"7762:5:7","valueSize":1},{"declaration":1746,"isOffset":false,"isSlot":false,"src":"7752:6:7","valueSize":1}],"id":1748,"nodeType":"InlineAssembly","src":"7729:48:7"}]},"documentation":{"id":1739,"nodeType":"StructuredDocumentation","src":"7538:76:7","text":"@dev Helper: low level cast uint256 memory array to uint256 memory array"},"id":1750,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Array","nameLocation":"7628:19:7","nodeType":"FunctionDefinition","parameters":{"id":1743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1742,"mutability":"mutable","name":"input","nameLocation":"7665:5:7","nodeType":"VariableDeclaration","scope":1750,"src":"7648:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1740,"name":"uint256","nodeType":"ElementaryTypeName","src":"7648:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1741,"nodeType":"ArrayTypeName","src":"7648:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7647:24:7"},"returnParameters":{"id":1747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1746,"mutability":"mutable","name":"output","nameLocation":"7711:6:7","nodeType":"VariableDeclaration","scope":1750,"src":"7694:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7694:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1745,"nodeType":"ArrayTypeName","src":"7694:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7693:25:7"},"scope":2290,"src":"7619:164:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1775,"nodeType":"Block","src":"8045:64:7","statements":[{"AST":{"nativeSrc":"8064:39:7","nodeType":"YulBlock","src":"8064:39:7","statements":[{"nativeSrc":"8078:15:7","nodeType":"YulAssignment","src":"8078:15:7","value":{"name":"input","nativeSrc":"8088:5:7","nodeType":"YulIdentifier","src":"8088:5:7"},"variableNames":[{"name":"output","nativeSrc":"8078:6:7","nodeType":"YulIdentifier","src":"8078:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1761,"isOffset":false,"isSlot":false,"src":"8088:5:7","valueSize":1},{"declaration":1772,"isOffset":false,"isSlot":false,"src":"8078:6:7","valueSize":1}],"id":1774,"nodeType":"InlineAssembly","src":"8055:48:7"}]},"documentation":{"id":1751,"nodeType":"StructuredDocumentation","src":"7789:78:7","text":"@dev Helper: low level cast address comp function to bytes32 comp function"},"id":1776,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Comp","nameLocation":"7881:18:7","nodeType":"FunctionDefinition","parameters":{"id":1762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1761,"mutability":"mutable","name":"input","nameLocation":"7956:5:7","nodeType":"VariableDeclaration","scope":1776,"src":"7909:52:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":1760,"nodeType":"FunctionTypeName","parameterTypes":{"id":1756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"7918:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1752,"name":"address","nodeType":"ElementaryTypeName","src":"7918:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"7927:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1754,"name":"address","nodeType":"ElementaryTypeName","src":"7927:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7917:18:7"},"returnParameterTypes":{"id":1759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"7950:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1757,"name":"bool","nodeType":"ElementaryTypeName","src":"7950:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7949:6:7"},"src":"7909:52:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"7899:68:7"},"returnParameters":{"id":1773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1772,"mutability":"mutable","name":"output","nameLocation":"8037:6:7","nodeType":"VariableDeclaration","scope":1776,"src":"7990:53:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1771,"nodeType":"FunctionTypeName","parameterTypes":{"id":1767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1771,"src":"7999:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7999:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1771,"src":"8008:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8008:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7998:18:7"},"returnParameterTypes":{"id":1770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1771,"src":"8031:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1768,"name":"bool","nodeType":"ElementaryTypeName","src":"8031:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8030:6:7"},"src":"7990:53:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"7989:55:7"},"scope":2290,"src":"7872:237:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1801,"nodeType":"Block","src":"8371:64:7","statements":[{"AST":{"nativeSrc":"8390:39:7","nodeType":"YulBlock","src":"8390:39:7","statements":[{"nativeSrc":"8404:15:7","nodeType":"YulAssignment","src":"8404:15:7","value":{"name":"input","nativeSrc":"8414:5:7","nodeType":"YulIdentifier","src":"8414:5:7"},"variableNames":[{"name":"output","nativeSrc":"8404:6:7","nodeType":"YulIdentifier","src":"8404:6:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1787,"isOffset":false,"isSlot":false,"src":"8414:5:7","valueSize":1},{"declaration":1798,"isOffset":false,"isSlot":false,"src":"8404:6:7","valueSize":1}],"id":1800,"nodeType":"InlineAssembly","src":"8381:48:7"}]},"documentation":{"id":1777,"nodeType":"StructuredDocumentation","src":"8115:78:7","text":"@dev Helper: low level cast uint256 comp function to bytes32 comp function"},"id":1802,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Comp","nameLocation":"8207:18:7","nodeType":"FunctionDefinition","parameters":{"id":1788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1787,"mutability":"mutable","name":"input","nameLocation":"8282:5:7","nodeType":"VariableDeclaration","scope":1802,"src":"8235:52:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":1786,"nodeType":"FunctionTypeName","parameterTypes":{"id":1782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1786,"src":"8244:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1778,"name":"uint256","nodeType":"ElementaryTypeName","src":"8244:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1786,"src":"8253:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1780,"name":"uint256","nodeType":"ElementaryTypeName","src":"8253:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8243:18:7"},"returnParameterTypes":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1786,"src":"8276:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1783,"name":"bool","nodeType":"ElementaryTypeName","src":"8276:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8275:6:7"},"src":"8235:52:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8225:68:7"},"returnParameters":{"id":1799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1798,"mutability":"mutable","name":"output","nameLocation":"8363:6:7","nodeType":"VariableDeclaration","scope":1802,"src":"8316:53:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1797,"nodeType":"FunctionTypeName","parameterTypes":{"id":1793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"8325:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8325:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"8334:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8334:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8324:18:7"},"returnParameterTypes":{"id":1796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"8357:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1794,"name":"bool","nodeType":"ElementaryTypeName","src":"8357:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8356:6:7"},"src":"8316:53:7","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8315:55:7"},"scope":2290,"src":"8198:237:7","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1884,"nodeType":"Block","src":"9160:834:7","statements":[{"assignments":[1814],"declarations":[{"constant":false,"id":1814,"mutability":"mutable","name":"low","nameLocation":"9178:3:7","nodeType":"VariableDeclaration","scope":1884,"src":"9170:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1813,"name":"uint256","nodeType":"ElementaryTypeName","src":"9170:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1816,"initialValue":{"hexValue":"30","id":1815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9184:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9170:15:7"},{"assignments":[1818],"declarations":[{"constant":false,"id":1818,"mutability":"mutable","name":"high","nameLocation":"9203:4:7","nodeType":"VariableDeclaration","scope":1884,"src":"9195:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1817,"name":"uint256","nodeType":"ElementaryTypeName","src":"9195:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1821,"initialValue":{"expression":{"id":1819,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"9210:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9216:6:7","memberName":"length","nodeType":"MemberAccess","src":"9210:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9195:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1822,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9237:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9245:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9237:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1828,"nodeType":"IfStatement","src":"9233:48:7","trueBody":{"id":1827,"nodeType":"Block","src":"9248:33:7","statements":[{"expression":{"hexValue":"30","id":1825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9269:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1812,"id":1826,"nodeType":"Return","src":"9262:8:7"}]}},{"body":{"id":1860,"nodeType":"Block","src":"9310:423:7","statements":[{"assignments":[1833],"declarations":[{"constant":false,"id":1833,"mutability":"mutable","name":"mid","nameLocation":"9332:3:7","nodeType":"VariableDeclaration","scope":1860,"src":"9324:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1832,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1839,"initialValue":{"arguments":[{"id":1836,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9351:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1837,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9356:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1834,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"9338:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":1835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9343:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"9338:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9338:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1841,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"9599:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1842,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"9606:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1840,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"9586:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9586:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9611:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"9586:30:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1845,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1808,"src":"9619:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9586:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1858,"nodeType":"Block","src":"9677:46:7","statements":[{"expression":{"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1852,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9695:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1853,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"9701:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9707:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9701:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9695:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1857,"nodeType":"ExpressionStatement","src":"9695:13:7"}]},"id":1859,"nodeType":"IfStatement","src":"9582:141:7","trueBody":{"id":1851,"nodeType":"Block","src":"9628:43:7","statements":[{"expression":{"id":1849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1847,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9646:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1848,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"9653:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9646:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1850,"nodeType":"ExpressionStatement","src":"9646:10:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1829,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9298:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1830,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9304:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9298:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1861,"nodeType":"WhileStatement","src":"9291:442:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1862,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9850:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9856:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9850:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1866,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"9874:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1867,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9881:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9887:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9881:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1865,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"9861:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9890:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"9861:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1872,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1808,"src":"9899:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9861:45:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9850:56:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1882,"nodeType":"Block","src":"9953:35:7","statements":[{"expression":{"id":1880,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9974:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1812,"id":1881,"nodeType":"Return","src":"9967:10:7"}]},"id":1883,"nodeType":"IfStatement","src":"9846:142:7","trueBody":{"id":1879,"nodeType":"Block","src":"9908:39:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1875,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"9929:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9935:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9929:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1812,"id":1878,"nodeType":"Return","src":"9922:14:7"}]}}]},"documentation":{"id":1803,"nodeType":"StructuredDocumentation","src":"8441:616:7","text":" @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n NOTE: The `array` is expected to be sorted in ascending order, and to\n contain no repeated elements.\n IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n support for repeated elements in the array. The {lowerBound} function should\n be used instead."},"id":1885,"implemented":true,"kind":"function","modifiers":[],"name":"findUpperBound","nameLocation":"9071:14:7","nodeType":"FunctionDefinition","parameters":{"id":1809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1806,"mutability":"mutable","name":"array","nameLocation":"9104:5:7","nodeType":"VariableDeclaration","scope":1885,"src":"9086:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1804,"name":"uint256","nodeType":"ElementaryTypeName","src":"9086:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1805,"nodeType":"ArrayTypeName","src":"9086:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1808,"mutability":"mutable","name":"element","nameLocation":"9119:7:7","nodeType":"VariableDeclaration","scope":1885,"src":"9111:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1807,"name":"uint256","nodeType":"ElementaryTypeName","src":"9111:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9085:42:7"},"returnParameters":{"id":1812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1885,"src":"9151:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1810,"name":"uint256","nodeType":"ElementaryTypeName","src":"9151:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9150:9:7"},"scope":2290,"src":"9062:932:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1948,"nodeType":"Block","src":"10511:709:7","statements":[{"assignments":[1897],"declarations":[{"constant":false,"id":1897,"mutability":"mutable","name":"low","nameLocation":"10529:3:7","nodeType":"VariableDeclaration","scope":1948,"src":"10521:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1896,"name":"uint256","nodeType":"ElementaryTypeName","src":"10521:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1899,"initialValue":{"hexValue":"30","id":1898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10535:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10521:15:7"},{"assignments":[1901],"declarations":[{"constant":false,"id":1901,"mutability":"mutable","name":"high","nameLocation":"10554:4:7","nodeType":"VariableDeclaration","scope":1948,"src":"10546:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1900,"name":"uint256","nodeType":"ElementaryTypeName","src":"10546:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1904,"initialValue":{"expression":{"id":1902,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"10561:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10567:6:7","memberName":"length","nodeType":"MemberAccess","src":"10561:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10546:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1905,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"10588:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10596:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10588:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1911,"nodeType":"IfStatement","src":"10584:48:7","trueBody":{"id":1910,"nodeType":"Block","src":"10599:33:7","statements":[{"expression":{"hexValue":"30","id":1908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10620:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1895,"id":1909,"nodeType":"Return","src":"10613:8:7"}]}},{"body":{"id":1944,"nodeType":"Block","src":"10661:532:7","statements":[{"assignments":[1916],"declarations":[{"constant":false,"id":1916,"mutability":"mutable","name":"mid","nameLocation":"10683:3:7","nodeType":"VariableDeclaration","scope":1944,"src":"10675:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1915,"name":"uint256","nodeType":"ElementaryTypeName","src":"10675:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1922,"initialValue":{"arguments":[{"id":1919,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10702:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1920,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"10707:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1917,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"10689:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"10689:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10689:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10675:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1924,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"10950:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1925,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"10957:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1923,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"10937:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10937:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10962:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"10937:30:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1928,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"10970:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10937:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1942,"nodeType":"Block","src":"11140:43:7","statements":[{"expression":{"id":1940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1938,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"11158:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1939,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"11165:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11158:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1941,"nodeType":"ExpressionStatement","src":"11158:10:7"}]},"id":1943,"nodeType":"IfStatement","src":"10933:250:7","trueBody":{"id":1937,"nodeType":"Block","src":"10979:155:7","statements":[{"id":1936,"nodeType":"UncheckedBlock","src":"11056:64:7","statements":[{"expression":{"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1930,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"11088:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1931,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1916,"src":"11094:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11100:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11094:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11088:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1935,"nodeType":"ExpressionStatement","src":"11088:13:7"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1912,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"10649:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1913,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"10655:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10649:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1945,"nodeType":"WhileStatement","src":"10642:551:7"},{"expression":{"id":1946,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1897,"src":"11210:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1895,"id":1947,"nodeType":"Return","src":"11203:10:7"}]},"documentation":{"id":1886,"nodeType":"StructuredDocumentation","src":"10000:412:7","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value greater or equal than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound]."},"id":1949,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBound","nameLocation":"10426:10:7","nodeType":"FunctionDefinition","parameters":{"id":1892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1889,"mutability":"mutable","name":"array","nameLocation":"10455:5:7","nodeType":"VariableDeclaration","scope":1949,"src":"10437:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1887,"name":"uint256","nodeType":"ElementaryTypeName","src":"10437:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1888,"nodeType":"ArrayTypeName","src":"10437:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1891,"mutability":"mutable","name":"element","nameLocation":"10470:7:7","nodeType":"VariableDeclaration","scope":1949,"src":"10462:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1890,"name":"uint256","nodeType":"ElementaryTypeName","src":"10462:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10436:42:7"},"returnParameters":{"id":1895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1949,"src":"10502:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1893,"name":"uint256","nodeType":"ElementaryTypeName","src":"10502:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10501:9:7"},"scope":2290,"src":"10417:803:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2012,"nodeType":"Block","src":"11737:709:7","statements":[{"assignments":[1961],"declarations":[{"constant":false,"id":1961,"mutability":"mutable","name":"low","nameLocation":"11755:3:7","nodeType":"VariableDeclaration","scope":2012,"src":"11747:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1960,"name":"uint256","nodeType":"ElementaryTypeName","src":"11747:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1963,"initialValue":{"hexValue":"30","id":1962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11761:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11747:15:7"},{"assignments":[1965],"declarations":[{"constant":false,"id":1965,"mutability":"mutable","name":"high","nameLocation":"11780:4:7","nodeType":"VariableDeclaration","scope":2012,"src":"11772:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1964,"name":"uint256","nodeType":"ElementaryTypeName","src":"11772:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1968,"initialValue":{"expression":{"id":1966,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"11787:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11793:6:7","memberName":"length","nodeType":"MemberAccess","src":"11787:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11772:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1969,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"11814:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11822:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11814:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1975,"nodeType":"IfStatement","src":"11810:48:7","trueBody":{"id":1974,"nodeType":"Block","src":"11825:33:7","statements":[{"expression":{"hexValue":"30","id":1972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1959,"id":1973,"nodeType":"Return","src":"11839:8:7"}]}},{"body":{"id":2008,"nodeType":"Block","src":"11887:532:7","statements":[{"assignments":[1980],"declarations":[{"constant":false,"id":1980,"mutability":"mutable","name":"mid","nameLocation":"11909:3:7","nodeType":"VariableDeclaration","scope":2008,"src":"11901:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1979,"name":"uint256","nodeType":"ElementaryTypeName","src":"11901:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1986,"initialValue":{"arguments":[{"id":1983,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"11928:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1984,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"11933:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1981,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"11915:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":1982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11920:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"11915:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11915:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11901:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1988,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"12176:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1989,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"12183:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1987,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2165,2191,2217],"referencedDeclaration":2217,"src":"12163:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12163:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12188:5:7","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"12163:30:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1992,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"12196:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12163:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2006,"nodeType":"Block","src":"12254:155:7","statements":[{"id":2005,"nodeType":"UncheckedBlock","src":"12331:64:7","statements":[{"expression":{"id":2003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1999,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"12363:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2000,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"12369:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12375:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12369:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12363:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2004,"nodeType":"ExpressionStatement","src":"12363:13:7"}]}]},"id":2007,"nodeType":"IfStatement","src":"12159:250:7","trueBody":{"id":1998,"nodeType":"Block","src":"12205:43:7","statements":[{"expression":{"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1994,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"12223:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1995,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"12230:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12223:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1997,"nodeType":"ExpressionStatement","src":"12223:10:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1976,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"11875:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1977,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"11881:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11875:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2009,"nodeType":"WhileStatement","src":"11868:551:7"},{"expression":{"id":2010,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"12436:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1959,"id":2011,"nodeType":"Return","src":"12429:10:7"}]},"documentation":{"id":1950,"nodeType":"StructuredDocumentation","src":"11226:412:7","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value strictly greater than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound]."},"id":2013,"implemented":true,"kind":"function","modifiers":[],"name":"upperBound","nameLocation":"11652:10:7","nodeType":"FunctionDefinition","parameters":{"id":1956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1953,"mutability":"mutable","name":"array","nameLocation":"11681:5:7","nodeType":"VariableDeclaration","scope":2013,"src":"11663:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1951,"name":"uint256","nodeType":"ElementaryTypeName","src":"11663:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1952,"nodeType":"ArrayTypeName","src":"11663:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1955,"mutability":"mutable","name":"element","nameLocation":"11696:7:7","nodeType":"VariableDeclaration","scope":2013,"src":"11688:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1954,"name":"uint256","nodeType":"ElementaryTypeName","src":"11688:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11662:42:7"},"returnParameters":{"id":1959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2013,"src":"11728:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1957,"name":"uint256","nodeType":"ElementaryTypeName","src":"11728:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11727:9:7"},"scope":2290,"src":"11643:803:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2075,"nodeType":"Block","src":"12630:709:7","statements":[{"assignments":[2025],"declarations":[{"constant":false,"id":2025,"mutability":"mutable","name":"low","nameLocation":"12648:3:7","nodeType":"VariableDeclaration","scope":2075,"src":"12640:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2024,"name":"uint256","nodeType":"ElementaryTypeName","src":"12640:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2027,"initialValue":{"hexValue":"30","id":2026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12654:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12640:15:7"},{"assignments":[2029],"declarations":[{"constant":false,"id":2029,"mutability":"mutable","name":"high","nameLocation":"12673:4:7","nodeType":"VariableDeclaration","scope":2075,"src":"12665:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2028,"name":"uint256","nodeType":"ElementaryTypeName","src":"12665:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2032,"initialValue":{"expression":{"id":2030,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"12680:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12686:6:7","memberName":"length","nodeType":"MemberAccess","src":"12680:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12665:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2033,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"12707:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12715:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12707:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2039,"nodeType":"IfStatement","src":"12703:48:7","trueBody":{"id":2038,"nodeType":"Block","src":"12718:33:7","statements":[{"expression":{"hexValue":"30","id":2036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12739:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2023,"id":2037,"nodeType":"Return","src":"12732:8:7"}]}},{"body":{"id":2071,"nodeType":"Block","src":"12780:532:7","statements":[{"assignments":[2044],"declarations":[{"constant":false,"id":2044,"mutability":"mutable","name":"mid","nameLocation":"12802:3:7","nodeType":"VariableDeclaration","scope":2071,"src":"12794:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2043,"name":"uint256","nodeType":"ElementaryTypeName","src":"12794:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2050,"initialValue":{"arguments":[{"id":2047,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"12821:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2048,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"12826:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2045,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"12808:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12813:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"12808:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12808:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12794:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2052,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"13075:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":2053,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2044,"src":"13082:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2051,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[2230,2243,2256],"referencedDeclaration":2256,"src":"13056:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2055,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2019,"src":"13089:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13056:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2069,"nodeType":"Block","src":"13259:43:7","statements":[{"expression":{"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2065,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"13277:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2066,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2044,"src":"13284:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13277:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2068,"nodeType":"ExpressionStatement","src":"13277:10:7"}]},"id":2070,"nodeType":"IfStatement","src":"13052:250:7","trueBody":{"id":2064,"nodeType":"Block","src":"13098:155:7","statements":[{"id":2063,"nodeType":"UncheckedBlock","src":"13175:64:7","statements":[{"expression":{"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2057,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"13207:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2058,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2044,"src":"13213:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13219:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13213:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13207:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2062,"nodeType":"ExpressionStatement","src":"13207:13:7"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2040,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"12768:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2041,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"12774:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12768:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2072,"nodeType":"WhileStatement","src":"12761:551:7"},{"expression":{"id":2073,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"13329:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2023,"id":2074,"nodeType":"Return","src":"13322:10:7"}]},"documentation":{"id":2014,"nodeType":"StructuredDocumentation","src":"12452:74:7","text":" @dev Same as {lowerBound}, but with an array in memory."},"id":2076,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBoundMemory","nameLocation":"12540:16:7","nodeType":"FunctionDefinition","parameters":{"id":2020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2017,"mutability":"mutable","name":"array","nameLocation":"12574:5:7","nodeType":"VariableDeclaration","scope":2076,"src":"12557:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2015,"name":"uint256","nodeType":"ElementaryTypeName","src":"12557:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2016,"nodeType":"ArrayTypeName","src":"12557:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2019,"mutability":"mutable","name":"element","nameLocation":"12589:7:7","nodeType":"VariableDeclaration","scope":2076,"src":"12581:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2018,"name":"uint256","nodeType":"ElementaryTypeName","src":"12581:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12556:41:7"},"returnParameters":{"id":2023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2022,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2076,"src":"12621:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2021,"name":"uint256","nodeType":"ElementaryTypeName","src":"12621:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12620:9:7"},"scope":2290,"src":"12531:808:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2138,"nodeType":"Block","src":"13523:709:7","statements":[{"assignments":[2088],"declarations":[{"constant":false,"id":2088,"mutability":"mutable","name":"low","nameLocation":"13541:3:7","nodeType":"VariableDeclaration","scope":2138,"src":"13533:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2087,"name":"uint256","nodeType":"ElementaryTypeName","src":"13533:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2090,"initialValue":{"hexValue":"30","id":2089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13547:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13533:15:7"},{"assignments":[2092],"declarations":[{"constant":false,"id":2092,"mutability":"mutable","name":"high","nameLocation":"13566:4:7","nodeType":"VariableDeclaration","scope":2138,"src":"13558:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2091,"name":"uint256","nodeType":"ElementaryTypeName","src":"13558:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2095,"initialValue":{"expression":{"id":2093,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"13573:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13579:6:7","memberName":"length","nodeType":"MemberAccess","src":"13573:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13558:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2096,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"13600:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13608:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13600:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2102,"nodeType":"IfStatement","src":"13596:48:7","trueBody":{"id":2101,"nodeType":"Block","src":"13611:33:7","statements":[{"expression":{"hexValue":"30","id":2099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13632:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2086,"id":2100,"nodeType":"Return","src":"13625:8:7"}]}},{"body":{"id":2134,"nodeType":"Block","src":"13673:532:7","statements":[{"assignments":[2107],"declarations":[{"constant":false,"id":2107,"mutability":"mutable","name":"mid","nameLocation":"13695:3:7","nodeType":"VariableDeclaration","scope":2134,"src":"13687:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2106,"name":"uint256","nodeType":"ElementaryTypeName","src":"13687:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2113,"initialValue":{"arguments":[{"id":2110,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"13714:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2111,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"13719:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2108,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4442,"src":"13701:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4442_$","typeString":"type(library Math)"}},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13706:7:7","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3115,"src":"13701:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13701:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13687:37:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2115,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"13968:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":2116,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"13975:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2114,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[2230,2243,2256],"referencedDeclaration":2256,"src":"13949:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13949:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2118,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"13982:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13949:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2132,"nodeType":"Block","src":"14040:155:7","statements":[{"id":2131,"nodeType":"UncheckedBlock","src":"14117:64:7","statements":[{"expression":{"id":2129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2125,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"14149:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2126,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"14155:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14161:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14155:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14149:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2130,"nodeType":"ExpressionStatement","src":"14149:13:7"}]}]},"id":2133,"nodeType":"IfStatement","src":"13945:250:7","trueBody":{"id":2124,"nodeType":"Block","src":"13991:43:7","statements":[{"expression":{"id":2122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2120,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"14009:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2121,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"14016:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14009:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2123,"nodeType":"ExpressionStatement","src":"14009:10:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2103,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"13661:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2104,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"13667:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13661:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2135,"nodeType":"WhileStatement","src":"13654:551:7"},{"expression":{"id":2136,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"14222:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2086,"id":2137,"nodeType":"Return","src":"14215:10:7"}]},"documentation":{"id":2077,"nodeType":"StructuredDocumentation","src":"13345:74:7","text":" @dev Same as {upperBound}, but with an array in memory."},"id":2139,"implemented":true,"kind":"function","modifiers":[],"name":"upperBoundMemory","nameLocation":"13433:16:7","nodeType":"FunctionDefinition","parameters":{"id":2083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2080,"mutability":"mutable","name":"array","nameLocation":"13467:5:7","nodeType":"VariableDeclaration","scope":2139,"src":"13450:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2078,"name":"uint256","nodeType":"ElementaryTypeName","src":"13450:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2079,"nodeType":"ArrayTypeName","src":"13450:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2082,"mutability":"mutable","name":"element","nameLocation":"13482:7:7","nodeType":"VariableDeclaration","scope":2139,"src":"13474:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2081,"name":"uint256","nodeType":"ElementaryTypeName","src":"13474:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13449:41:7"},"returnParameters":{"id":2086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2139,"src":"13514:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2084,"name":"uint256","nodeType":"ElementaryTypeName","src":"13514:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13513:9:7"},"scope":2290,"src":"13424:808:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2164,"nodeType":"Block","src":"14548:194:7","statements":[{"assignments":[2152],"declarations":[{"constant":false,"id":2152,"mutability":"mutable","name":"slot","nameLocation":"14566:4:7","nodeType":"VariableDeclaration","scope":2164,"src":"14558:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14558:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2153,"nodeType":"VariableDeclarationStatement","src":"14558:12:7"},{"AST":{"nativeSrc":"14632:40:7","nodeType":"YulBlock","src":"14632:40:7","statements":[{"nativeSrc":"14646:16:7","nodeType":"YulAssignment","src":"14646:16:7","value":{"name":"arr.slot","nativeSrc":"14654:8:7","nodeType":"YulIdentifier","src":"14654:8:7"},"variableNames":[{"name":"slot","nativeSrc":"14646:4:7","nodeType":"YulIdentifier","src":"14646:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2143,"isOffset":false,"isSlot":true,"src":"14654:8:7","suffix":"slot","valueSize":1},{"declaration":2152,"isOffset":false,"isSlot":false,"src":"14646:4:7","valueSize":1}],"id":2154,"nodeType":"InlineAssembly","src":"14623:49:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2159,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"14714:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2155,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"14688:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14693:11:7","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2417,"src":"14688:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14707:6:7","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2407,"src":"14688:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14719:14:7","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2537,"src":"14688:45:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2508_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"functionReturnParameters":2150,"id":2163,"nodeType":"Return","src":"14681:54:7"}]},"documentation":{"id":2140,"nodeType":"StructuredDocumentation","src":"14238:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2165,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"14443:12:7","nodeType":"FunctionDefinition","parameters":{"id":2146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2143,"mutability":"mutable","name":"arr","nameLocation":"14474:3:7","nodeType":"VariableDeclaration","scope":2165,"src":"14456:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2141,"name":"address","nodeType":"ElementaryTypeName","src":"14456:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2142,"nodeType":"ArrayTypeName","src":"14456:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2145,"mutability":"mutable","name":"pos","nameLocation":"14487:3:7","nodeType":"VariableDeclaration","scope":2165,"src":"14479:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2144,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14455:36:7"},"returnParameters":{"id":2150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2165,"src":"14515:31:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":2148,"nodeType":"UserDefinedTypeName","pathNode":{"id":2147,"name":"StorageSlot.AddressSlot","nameLocations":["14515:11:7","14527:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2508,"src":"14515:23:7"},"referencedDeclaration":2508,"src":"14515:23:7","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"14514:33:7"},"scope":2290,"src":"14434:308:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2190,"nodeType":"Block","src":"15058:194:7","statements":[{"assignments":[2178],"declarations":[{"constant":false,"id":2178,"mutability":"mutable","name":"slot","nameLocation":"15076:4:7","nodeType":"VariableDeclaration","scope":2190,"src":"15068:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15068:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2179,"nodeType":"VariableDeclarationStatement","src":"15068:12:7"},{"AST":{"nativeSrc":"15142:40:7","nodeType":"YulBlock","src":"15142:40:7","statements":[{"nativeSrc":"15156:16:7","nodeType":"YulAssignment","src":"15156:16:7","value":{"name":"arr.slot","nativeSrc":"15164:8:7","nodeType":"YulIdentifier","src":"15164:8:7"},"variableNames":[{"name":"slot","nativeSrc":"15156:4:7","nodeType":"YulIdentifier","src":"15156:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2169,"isOffset":false,"isSlot":true,"src":"15164:8:7","suffix":"slot","valueSize":1},{"declaration":2178,"isOffset":false,"isSlot":false,"src":"15156:4:7","valueSize":1}],"id":2180,"nodeType":"InlineAssembly","src":"15133:49:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2185,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2171,"src":"15224:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2181,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2178,"src":"15198:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15203:11:7","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2417,"src":"15198:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15217:6:7","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2407,"src":"15198:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15229:14:7","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":2559,"src":"15198:45:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$2514_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"functionReturnParameters":2176,"id":2189,"nodeType":"Return","src":"15191:54:7"}]},"documentation":{"id":2166,"nodeType":"StructuredDocumentation","src":"14748:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2191,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"14953:12:7","nodeType":"FunctionDefinition","parameters":{"id":2172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2169,"mutability":"mutable","name":"arr","nameLocation":"14984:3:7","nodeType":"VariableDeclaration","scope":2191,"src":"14966:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14966:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2168,"nodeType":"ArrayTypeName","src":"14966:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2171,"mutability":"mutable","name":"pos","nameLocation":"14997:3:7","nodeType":"VariableDeclaration","scope":2191,"src":"14989:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2170,"name":"uint256","nodeType":"ElementaryTypeName","src":"14989:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14965:36:7"},"returnParameters":{"id":2176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2191,"src":"15025:31:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":2174,"nodeType":"UserDefinedTypeName","pathNode":{"id":2173,"name":"StorageSlot.Bytes32Slot","nameLocations":["15025:11:7","15037:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2514,"src":"15025:23:7"},"referencedDeclaration":2514,"src":"15025:23:7","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"15024:33:7"},"scope":2290,"src":"14944:308:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2216,"nodeType":"Block","src":"15568:194:7","statements":[{"assignments":[2204],"declarations":[{"constant":false,"id":2204,"mutability":"mutable","name":"slot","nameLocation":"15586:4:7","nodeType":"VariableDeclaration","scope":2216,"src":"15578:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15578:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2205,"nodeType":"VariableDeclarationStatement","src":"15578:12:7"},{"AST":{"nativeSrc":"15652:40:7","nodeType":"YulBlock","src":"15652:40:7","statements":[{"nativeSrc":"15666:16:7","nodeType":"YulAssignment","src":"15666:16:7","value":{"name":"arr.slot","nativeSrc":"15674:8:7","nodeType":"YulIdentifier","src":"15674:8:7"},"variableNames":[{"name":"slot","nativeSrc":"15666:4:7","nodeType":"YulIdentifier","src":"15666:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2195,"isOffset":false,"isSlot":true,"src":"15674:8:7","suffix":"slot","valueSize":1},{"declaration":2204,"isOffset":false,"isSlot":false,"src":"15666:4:7","valueSize":1}],"id":2206,"nodeType":"InlineAssembly","src":"15643:49:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2211,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"15734:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2207,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2204,"src":"15708:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15713:11:7","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2417,"src":"15708:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15727:6:7","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2407,"src":"15708:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15739:14:7","memberName":"getUint256Slot","nodeType":"MemberAccess","referencedDeclaration":2570,"src":"15708:45:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$2517_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"functionReturnParameters":2202,"id":2215,"nodeType":"Return","src":"15701:54:7"}]},"documentation":{"id":2192,"nodeType":"StructuredDocumentation","src":"15258:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2217,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"15463:12:7","nodeType":"FunctionDefinition","parameters":{"id":2198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2195,"mutability":"mutable","name":"arr","nameLocation":"15494:3:7","nodeType":"VariableDeclaration","scope":2217,"src":"15476:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2193,"name":"uint256","nodeType":"ElementaryTypeName","src":"15476:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2194,"nodeType":"ArrayTypeName","src":"15476:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"pos","nameLocation":"15507:3:7","nodeType":"VariableDeclaration","scope":2217,"src":"15499:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2196,"name":"uint256","nodeType":"ElementaryTypeName","src":"15499:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15475:36:7"},"returnParameters":{"id":2202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2201,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2217,"src":"15535:31:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":2200,"nodeType":"UserDefinedTypeName","pathNode":{"id":2199,"name":"StorageSlot.Uint256Slot","nameLocations":["15535:11:7","15547:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"15535:23:7"},"referencedDeclaration":2517,"src":"15535:23:7","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"15534:33:7"},"scope":2290,"src":"15454:308:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2229,"nodeType":"Block","src":"16063:98:7","statements":[{"AST":{"nativeSrc":"16082:73:7","nodeType":"YulBlock","src":"16082:73:7","statements":[{"nativeSrc":"16096:49:7","nodeType":"YulAssignment","src":"16096:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16117:3:7","nodeType":"YulIdentifier","src":"16117:3:7"},{"kind":"number","nativeSrc":"16122:4:7","nodeType":"YulLiteral","src":"16122:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16113:3:7","nodeType":"YulIdentifier","src":"16113:3:7"},"nativeSrc":"16113:14:7","nodeType":"YulFunctionCall","src":"16113:14:7"},{"arguments":[{"name":"pos","nativeSrc":"16133:3:7","nodeType":"YulIdentifier","src":"16133:3:7"},{"kind":"number","nativeSrc":"16138:4:7","nodeType":"YulLiteral","src":"16138:4:7","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16129:3:7","nodeType":"YulIdentifier","src":"16129:3:7"},"nativeSrc":"16129:14:7","nodeType":"YulFunctionCall","src":"16129:14:7"}],"functionName":{"name":"add","nativeSrc":"16109:3:7","nodeType":"YulIdentifier","src":"16109:3:7"},"nativeSrc":"16109:35:7","nodeType":"YulFunctionCall","src":"16109:35:7"}],"functionName":{"name":"mload","nativeSrc":"16103:5:7","nodeType":"YulIdentifier","src":"16103:5:7"},"nativeSrc":"16103:42:7","nodeType":"YulFunctionCall","src":"16103:42:7"},"variableNames":[{"name":"res","nativeSrc":"16096:3:7","nodeType":"YulIdentifier","src":"16096:3:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2221,"isOffset":false,"isSlot":false,"src":"16117:3:7","valueSize":1},{"declaration":2223,"isOffset":false,"isSlot":false,"src":"16133:3:7","valueSize":1},{"declaration":2226,"isOffset":false,"isSlot":false,"src":"16096:3:7","valueSize":1}],"id":2228,"nodeType":"InlineAssembly","src":"16073:82:7"}]},"documentation":{"id":2218,"nodeType":"StructuredDocumentation","src":"15768:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2230,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"15973:18:7","nodeType":"FunctionDefinition","parameters":{"id":2224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2221,"mutability":"mutable","name":"arr","nameLocation":"16009:3:7","nodeType":"VariableDeclaration","scope":2230,"src":"15992:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2219,"name":"address","nodeType":"ElementaryTypeName","src":"15992:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2220,"nodeType":"ArrayTypeName","src":"15992:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2223,"mutability":"mutable","name":"pos","nameLocation":"16022:3:7","nodeType":"VariableDeclaration","scope":2230,"src":"16014:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2222,"name":"uint256","nodeType":"ElementaryTypeName","src":"16014:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15991:35:7"},"returnParameters":{"id":2227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2226,"mutability":"mutable","name":"res","nameLocation":"16058:3:7","nodeType":"VariableDeclaration","scope":2230,"src":"16050:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2225,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16049:13:7"},"scope":2290,"src":"15964:197:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2242,"nodeType":"Block","src":"16462:98:7","statements":[{"AST":{"nativeSrc":"16481:73:7","nodeType":"YulBlock","src":"16481:73:7","statements":[{"nativeSrc":"16495:49:7","nodeType":"YulAssignment","src":"16495:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16516:3:7","nodeType":"YulIdentifier","src":"16516:3:7"},{"kind":"number","nativeSrc":"16521:4:7","nodeType":"YulLiteral","src":"16521:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16512:3:7","nodeType":"YulIdentifier","src":"16512:3:7"},"nativeSrc":"16512:14:7","nodeType":"YulFunctionCall","src":"16512:14:7"},{"arguments":[{"name":"pos","nativeSrc":"16532:3:7","nodeType":"YulIdentifier","src":"16532:3:7"},{"kind":"number","nativeSrc":"16537:4:7","nodeType":"YulLiteral","src":"16537:4:7","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16528:3:7","nodeType":"YulIdentifier","src":"16528:3:7"},"nativeSrc":"16528:14:7","nodeType":"YulFunctionCall","src":"16528:14:7"}],"functionName":{"name":"add","nativeSrc":"16508:3:7","nodeType":"YulIdentifier","src":"16508:3:7"},"nativeSrc":"16508:35:7","nodeType":"YulFunctionCall","src":"16508:35:7"}],"functionName":{"name":"mload","nativeSrc":"16502:5:7","nodeType":"YulIdentifier","src":"16502:5:7"},"nativeSrc":"16502:42:7","nodeType":"YulFunctionCall","src":"16502:42:7"},"variableNames":[{"name":"res","nativeSrc":"16495:3:7","nodeType":"YulIdentifier","src":"16495:3:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2234,"isOffset":false,"isSlot":false,"src":"16516:3:7","valueSize":1},{"declaration":2236,"isOffset":false,"isSlot":false,"src":"16532:3:7","valueSize":1},{"declaration":2239,"isOffset":false,"isSlot":false,"src":"16495:3:7","valueSize":1}],"id":2241,"nodeType":"InlineAssembly","src":"16472:82:7"}]},"documentation":{"id":2231,"nodeType":"StructuredDocumentation","src":"16167:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2243,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"16372:18:7","nodeType":"FunctionDefinition","parameters":{"id":2237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2234,"mutability":"mutable","name":"arr","nameLocation":"16408:3:7","nodeType":"VariableDeclaration","scope":2243,"src":"16391:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16391:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2233,"nodeType":"ArrayTypeName","src":"16391:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2236,"mutability":"mutable","name":"pos","nameLocation":"16421:3:7","nodeType":"VariableDeclaration","scope":2243,"src":"16413:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2235,"name":"uint256","nodeType":"ElementaryTypeName","src":"16413:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16390:35:7"},"returnParameters":{"id":2240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2239,"mutability":"mutable","name":"res","nameLocation":"16457:3:7","nodeType":"VariableDeclaration","scope":2243,"src":"16449:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16449:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16448:13:7"},"scope":2290,"src":"16363:197:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2255,"nodeType":"Block","src":"16861:98:7","statements":[{"AST":{"nativeSrc":"16880:73:7","nodeType":"YulBlock","src":"16880:73:7","statements":[{"nativeSrc":"16894:49:7","nodeType":"YulAssignment","src":"16894:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16915:3:7","nodeType":"YulIdentifier","src":"16915:3:7"},{"kind":"number","nativeSrc":"16920:4:7","nodeType":"YulLiteral","src":"16920:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16911:3:7","nodeType":"YulIdentifier","src":"16911:3:7"},"nativeSrc":"16911:14:7","nodeType":"YulFunctionCall","src":"16911:14:7"},{"arguments":[{"name":"pos","nativeSrc":"16931:3:7","nodeType":"YulIdentifier","src":"16931:3:7"},{"kind":"number","nativeSrc":"16936:4:7","nodeType":"YulLiteral","src":"16936:4:7","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16927:3:7","nodeType":"YulIdentifier","src":"16927:3:7"},"nativeSrc":"16927:14:7","nodeType":"YulFunctionCall","src":"16927:14:7"}],"functionName":{"name":"add","nativeSrc":"16907:3:7","nodeType":"YulIdentifier","src":"16907:3:7"},"nativeSrc":"16907:35:7","nodeType":"YulFunctionCall","src":"16907:35:7"}],"functionName":{"name":"mload","nativeSrc":"16901:5:7","nodeType":"YulIdentifier","src":"16901:5:7"},"nativeSrc":"16901:42:7","nodeType":"YulFunctionCall","src":"16901:42:7"},"variableNames":[{"name":"res","nativeSrc":"16894:3:7","nodeType":"YulIdentifier","src":"16894:3:7"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2247,"isOffset":false,"isSlot":false,"src":"16915:3:7","valueSize":1},{"declaration":2249,"isOffset":false,"isSlot":false,"src":"16931:3:7","valueSize":1},{"declaration":2252,"isOffset":false,"isSlot":false,"src":"16894:3:7","valueSize":1}],"id":2254,"nodeType":"InlineAssembly","src":"16871:82:7"}]},"documentation":{"id":2244,"nodeType":"StructuredDocumentation","src":"16566:191:7","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2256,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"16771:18:7","nodeType":"FunctionDefinition","parameters":{"id":2250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2247,"mutability":"mutable","name":"arr","nameLocation":"16807:3:7","nodeType":"VariableDeclaration","scope":2256,"src":"16790:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2245,"name":"uint256","nodeType":"ElementaryTypeName","src":"16790:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2246,"nodeType":"ArrayTypeName","src":"16790:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2249,"mutability":"mutable","name":"pos","nameLocation":"16820:3:7","nodeType":"VariableDeclaration","scope":2256,"src":"16812:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2248,"name":"uint256","nodeType":"ElementaryTypeName","src":"16812:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16789:35:7"},"returnParameters":{"id":2253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2252,"mutability":"mutable","name":"res","nameLocation":"16856:3:7","nodeType":"VariableDeclaration","scope":2256,"src":"16848:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2251,"name":"uint256","nodeType":"ElementaryTypeName","src":"16848:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16847:13:7"},"scope":2290,"src":"16762:197:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2266,"nodeType":"Block","src":"17276:115:7","statements":[{"AST":{"nativeSrc":"17338:47:7","nodeType":"YulBlock","src":"17338:47:7","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"17359:10:7","nodeType":"YulIdentifier","src":"17359:10:7"},{"name":"len","nativeSrc":"17371:3:7","nodeType":"YulIdentifier","src":"17371:3:7"}],"functionName":{"name":"sstore","nativeSrc":"17352:6:7","nodeType":"YulIdentifier","src":"17352:6:7"},"nativeSrc":"17352:23:7","nodeType":"YulFunctionCall","src":"17352:23:7"},"nativeSrc":"17352:23:7","nodeType":"YulExpressionStatement","src":"17352:23:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2260,"isOffset":false,"isSlot":true,"src":"17359:10:7","suffix":"slot","valueSize":1},{"declaration":2262,"isOffset":false,"isSlot":false,"src":"17371:3:7","valueSize":1}],"id":2265,"nodeType":"InlineAssembly","src":"17329:56:7"}]},"documentation":{"id":2257,"nodeType":"StructuredDocumentation","src":"16965:234:7","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2267,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"17213:15:7","nodeType":"FunctionDefinition","parameters":{"id":2263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2260,"mutability":"mutable","name":"array","nameLocation":"17247:5:7","nodeType":"VariableDeclaration","scope":2267,"src":"17229:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2258,"name":"address","nodeType":"ElementaryTypeName","src":"17229:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2259,"nodeType":"ArrayTypeName","src":"17229:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2262,"mutability":"mutable","name":"len","nameLocation":"17262:3:7","nodeType":"VariableDeclaration","scope":2267,"src":"17254:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2261,"name":"uint256","nodeType":"ElementaryTypeName","src":"17254:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17228:38:7"},"returnParameters":{"id":2264,"nodeType":"ParameterList","parameters":[],"src":"17276:0:7"},"scope":2290,"src":"17204:187:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2277,"nodeType":"Block","src":"17708:115:7","statements":[{"AST":{"nativeSrc":"17770:47:7","nodeType":"YulBlock","src":"17770:47:7","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"17791:10:7","nodeType":"YulIdentifier","src":"17791:10:7"},{"name":"len","nativeSrc":"17803:3:7","nodeType":"YulIdentifier","src":"17803:3:7"}],"functionName":{"name":"sstore","nativeSrc":"17784:6:7","nodeType":"YulIdentifier","src":"17784:6:7"},"nativeSrc":"17784:23:7","nodeType":"YulFunctionCall","src":"17784:23:7"},"nativeSrc":"17784:23:7","nodeType":"YulExpressionStatement","src":"17784:23:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2271,"isOffset":false,"isSlot":true,"src":"17791:10:7","suffix":"slot","valueSize":1},{"declaration":2273,"isOffset":false,"isSlot":false,"src":"17803:3:7","valueSize":1}],"id":2276,"nodeType":"InlineAssembly","src":"17761:56:7"}]},"documentation":{"id":2268,"nodeType":"StructuredDocumentation","src":"17397:234:7","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2278,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"17645:15:7","nodeType":"FunctionDefinition","parameters":{"id":2274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2271,"mutability":"mutable","name":"array","nameLocation":"17679:5:7","nodeType":"VariableDeclaration","scope":2278,"src":"17661:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17661:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2270,"nodeType":"ArrayTypeName","src":"17661:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2273,"mutability":"mutable","name":"len","nameLocation":"17694:3:7","nodeType":"VariableDeclaration","scope":2278,"src":"17686:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2272,"name":"uint256","nodeType":"ElementaryTypeName","src":"17686:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17660:38:7"},"returnParameters":{"id":2275,"nodeType":"ParameterList","parameters":[],"src":"17708:0:7"},"scope":2290,"src":"17636:187:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2288,"nodeType":"Block","src":"18140:115:7","statements":[{"AST":{"nativeSrc":"18202:47:7","nodeType":"YulBlock","src":"18202:47:7","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"18223:10:7","nodeType":"YulIdentifier","src":"18223:10:7"},{"name":"len","nativeSrc":"18235:3:7","nodeType":"YulIdentifier","src":"18235:3:7"}],"functionName":{"name":"sstore","nativeSrc":"18216:6:7","nodeType":"YulIdentifier","src":"18216:6:7"},"nativeSrc":"18216:23:7","nodeType":"YulFunctionCall","src":"18216:23:7"},"nativeSrc":"18216:23:7","nodeType":"YulExpressionStatement","src":"18216:23:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2282,"isOffset":false,"isSlot":true,"src":"18223:10:7","suffix":"slot","valueSize":1},{"declaration":2284,"isOffset":false,"isSlot":false,"src":"18235:3:7","valueSize":1}],"id":2287,"nodeType":"InlineAssembly","src":"18193:56:7"}]},"documentation":{"id":2279,"nodeType":"StructuredDocumentation","src":"17829:234:7","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2289,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"18077:15:7","nodeType":"FunctionDefinition","parameters":{"id":2285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2282,"mutability":"mutable","name":"array","nameLocation":"18111:5:7","nodeType":"VariableDeclaration","scope":2289,"src":"18093:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2280,"name":"uint256","nodeType":"ElementaryTypeName","src":"18093:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2281,"nodeType":"ArrayTypeName","src":"18093:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2284,"mutability":"mutable","name":"len","nameLocation":"18126:3:7","nodeType":"VariableDeclaration","scope":2289,"src":"18118:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2283,"name":"uint256","nodeType":"ElementaryTypeName","src":"18118:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18092:38:7"},"returnParameters":{"id":2286,"nodeType":"ParameterList","parameters":[],"src":"18140:0:7"},"scope":2290,"src":"18068:187:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2291,"src":"412:17845:7","usedErrors":[],"usedEvents":[]}],"src":"183:18075:7"},"id":7},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[2320]},"id":2321,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2292,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:8"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":2293,"nodeType":"StructuredDocumentation","src":"127:496:8","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":2320,"linearizedBaseContracts":[2320],"name":"Context","nameLocation":"642:7:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":2301,"nodeType":"Block","src":"718:34:8","statements":[{"expression":{"expression":{"id":2298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:8","memberName":"sender","nodeType":"MemberAccess","src":"735:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2297,"id":2300,"nodeType":"Return","src":"728:17:8"}]},"id":2302,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:8","nodeType":"FunctionDefinition","parameters":{"id":2294,"nodeType":"ParameterList","parameters":[],"src":"675:2:8"},"returnParameters":{"id":2297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2302,"src":"709:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2295,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:8"},"scope":2320,"src":"656:96:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2310,"nodeType":"Block","src":"825:32:8","statements":[{"expression":{"expression":{"id":2307,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:8","memberName":"data","nodeType":"MemberAccess","src":"842:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2306,"id":2309,"nodeType":"Return","src":"835:15:8"}]},"id":2311,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:8","nodeType":"FunctionDefinition","parameters":{"id":2303,"nodeType":"ParameterList","parameters":[],"src":"775:2:8"},"returnParameters":{"id":2306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2311,"src":"809:14:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2304,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:8"},"scope":2320,"src":"758:99:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2318,"nodeType":"Block","src":"935:25:8","statements":[{"expression":{"hexValue":"30","id":2316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2315,"id":2317,"nodeType":"Return","src":"945:8:8"}]},"id":2319,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:8","nodeType":"FunctionDefinition","parameters":{"id":2312,"nodeType":"ParameterList","parameters":[],"src":"892:2:8"},"returnParameters":{"id":2315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2319,"src":"926:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2313,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:8"},"scope":2320,"src":"863:97:8","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2321,"src":"624:338:8","usedErrors":[],"usedEvents":[]}],"src":"101:862:8"},"id":8},"@openzeppelin/contracts/utils/Panic.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","exportedSymbols":{"Panic":[2372]},"id":2373,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2322,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:9"},{"abstract":false,"baseContracts":[],"canonicalName":"Panic","contractDependencies":[],"contractKind":"library","documentation":{"id":2323,"nodeType":"StructuredDocumentation","src":"59:459:9","text":" @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]."},"fullyImplemented":true,"id":2372,"linearizedBaseContracts":[2372],"name":"Panic","nameLocation":"569:5:9","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":2324,"nodeType":"StructuredDocumentation","src":"581:36:9","text":"@dev generic / unspecified error"},"id":2327,"mutability":"constant","name":"GENERIC","nameLocation":"648:7:9","nodeType":"VariableDeclaration","scope":2372,"src":"622:40:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2325,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783030","id":2326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"658:4:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"constant":true,"documentation":{"id":2328,"nodeType":"StructuredDocumentation","src":"668:37:9","text":"@dev used by the assert() builtin"},"id":2331,"mutability":"constant","name":"ASSERT","nameLocation":"736:6:9","nodeType":"VariableDeclaration","scope":2372,"src":"710:39:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint256","nodeType":"ElementaryTypeName","src":"710:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":2330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"745:4:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"documentation":{"id":2332,"nodeType":"StructuredDocumentation","src":"755:41:9","text":"@dev arithmetic underflow or overflow"},"id":2335,"mutability":"constant","name":"UNDER_OVERFLOW","nameLocation":"827:14:9","nodeType":"VariableDeclaration","scope":2372,"src":"801:47:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2333,"name":"uint256","nodeType":"ElementaryTypeName","src":"801:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783131","id":2334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"844:4:9","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"},"visibility":"internal"},{"constant":true,"documentation":{"id":2336,"nodeType":"StructuredDocumentation","src":"854:35:9","text":"@dev division or modulo by zero"},"id":2339,"mutability":"constant","name":"DIVISION_BY_ZERO","nameLocation":"920:16:9","nodeType":"VariableDeclaration","scope":2372,"src":"894:49:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2337,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783132","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"939:4:9","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"},"visibility":"internal"},{"constant":true,"documentation":{"id":2340,"nodeType":"StructuredDocumentation","src":"949:30:9","text":"@dev enum conversion error"},"id":2343,"mutability":"constant","name":"ENUM_CONVERSION_ERROR","nameLocation":"1010:21:9","nodeType":"VariableDeclaration","scope":2372,"src":"984:54:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2341,"name":"uint256","nodeType":"ElementaryTypeName","src":"984:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783231","id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1034:4:9","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"},"visibility":"internal"},{"constant":true,"documentation":{"id":2344,"nodeType":"StructuredDocumentation","src":"1044:36:9","text":"@dev invalid encoding in storage"},"id":2347,"mutability":"constant","name":"STORAGE_ENCODING_ERROR","nameLocation":"1111:22:9","nodeType":"VariableDeclaration","scope":2372,"src":"1085:55:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2345,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783232","id":2346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1136:4:9","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"},"visibility":"internal"},{"constant":true,"documentation":{"id":2348,"nodeType":"StructuredDocumentation","src":"1146:24:9","text":"@dev empty array pop"},"id":2351,"mutability":"constant","name":"EMPTY_ARRAY_POP","nameLocation":"1201:15:9","nodeType":"VariableDeclaration","scope":2372,"src":"1175:48:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2349,"name":"uint256","nodeType":"ElementaryTypeName","src":"1175:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783331","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1219:4:9","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"},"visibility":"internal"},{"constant":true,"documentation":{"id":2352,"nodeType":"StructuredDocumentation","src":"1229:35:9","text":"@dev array out of bounds access"},"id":2355,"mutability":"constant","name":"ARRAY_OUT_OF_BOUNDS","nameLocation":"1295:19:9","nodeType":"VariableDeclaration","scope":2372,"src":"1269:52:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2353,"name":"uint256","nodeType":"ElementaryTypeName","src":"1269:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783332","id":2354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1317:4:9","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"},"visibility":"internal"},{"constant":true,"documentation":{"id":2356,"nodeType":"StructuredDocumentation","src":"1327:65:9","text":"@dev resource error (too large allocation or too large array)"},"id":2359,"mutability":"constant","name":"RESOURCE_ERROR","nameLocation":"1423:14:9","nodeType":"VariableDeclaration","scope":2372,"src":"1397:47:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1397:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783431","id":2358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1440:4:9","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"},"visibility":"internal"},{"constant":true,"documentation":{"id":2360,"nodeType":"StructuredDocumentation","src":"1450:42:9","text":"@dev calling invalid internal function"},"id":2363,"mutability":"constant","name":"INVALID_INTERNAL_FUNCTION","nameLocation":"1523:25:9","nodeType":"VariableDeclaration","scope":2372,"src":"1497:58:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2361,"name":"uint256","nodeType":"ElementaryTypeName","src":"1497:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783531","id":2362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1551:4:9","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"},"visibility":"internal"},{"body":{"id":2370,"nodeType":"Block","src":"1723:178:9","statements":[{"AST":{"nativeSrc":"1785:110:9","nodeType":"YulBlock","src":"1785:110:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1806:4:9","nodeType":"YulLiteral","src":"1806:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1812:10:9","nodeType":"YulLiteral","src":"1812:10:9","type":"","value":"0x4e487b71"}],"functionName":{"name":"mstore","nativeSrc":"1799:6:9","nodeType":"YulIdentifier","src":"1799:6:9"},"nativeSrc":"1799:24:9","nodeType":"YulFunctionCall","src":"1799:24:9"},"nativeSrc":"1799:24:9","nodeType":"YulExpressionStatement","src":"1799:24:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1843:4:9","nodeType":"YulLiteral","src":"1843:4:9","type":"","value":"0x20"},{"name":"code","nativeSrc":"1849:4:9","nodeType":"YulIdentifier","src":"1849:4:9"}],"functionName":{"name":"mstore","nativeSrc":"1836:6:9","nodeType":"YulIdentifier","src":"1836:6:9"},"nativeSrc":"1836:18:9","nodeType":"YulFunctionCall","src":"1836:18:9"},"nativeSrc":"1836:18:9","nodeType":"YulExpressionStatement","src":"1836:18:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1874:4:9","nodeType":"YulLiteral","src":"1874:4:9","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1880:4:9","nodeType":"YulLiteral","src":"1880:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1867:6:9","nodeType":"YulIdentifier","src":"1867:6:9"},"nativeSrc":"1867:18:9","nodeType":"YulFunctionCall","src":"1867:18:9"},"nativeSrc":"1867:18:9","nodeType":"YulExpressionStatement","src":"1867:18:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2366,"isOffset":false,"isSlot":false,"src":"1849:4:9","valueSize":1}],"id":2369,"nodeType":"InlineAssembly","src":"1776:119:9"}]},"documentation":{"id":2364,"nodeType":"StructuredDocumentation","src":"1562:113:9","text":"@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."},"id":2371,"implemented":true,"kind":"function","modifiers":[],"name":"panic","nameLocation":"1689:5:9","nodeType":"FunctionDefinition","parameters":{"id":2367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2366,"mutability":"mutable","name":"code","nameLocation":"1703:4:9","nodeType":"VariableDeclaration","scope":2371,"src":"1695:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2365,"name":"uint256","nodeType":"ElementaryTypeName","src":"1695:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1694:14:9"},"returnParameters":{"id":2368,"nodeType":"ParameterList","parameters":[],"src":"1723:0:9"},"scope":2372,"src":"1680:221:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2373,"src":"561:1342:9","usedErrors":[],"usedEvents":[]}],"src":"33:1871:9"},"id":9},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/SlotDerivation.sol","exportedSymbols":{"SlotDerivation":[2502]},"id":2503,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2374,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"124:24:10"},{"abstract":false,"baseContracts":[],"canonicalName":"SlotDerivation","contractDependencies":[],"contractKind":"library","documentation":{"id":2375,"nodeType":"StructuredDocumentation","src":"150:1342:10","text":" @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n the solidity language / compiler.\n See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n Example usage:\n ```solidity\n contract Example {\n // Add the library methods\n using StorageSlot for bytes32;\n using SlotDerivation for bytes32;\n // Declare a namespace\n string private constant _NAMESPACE = \"\" // eg. OpenZeppelin.Slot\n function setValueInNamespace(uint256 key, address newValue) internal {\n _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n }\n function getValueInNamespace(uint256 key) internal view returns (address) {\n return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n }\n }\n ```\n TIP: Consider using this library along with {StorageSlot}.\n NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n upgrade safety will ignore the slots accessed through this library."},"fullyImplemented":true,"id":2502,"linearizedBaseContracts":[2502],"name":"SlotDerivation","nameLocation":"1501:14:10","nodeType":"ContractDefinition","nodes":[{"body":{"id":2384,"nodeType":"Block","src":"1684:221:10","statements":[{"AST":{"nativeSrc":"1746:153:10","nodeType":"YulBlock","src":"1746:153:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1767:4:10","nodeType":"YulLiteral","src":"1767:4:10","type":"","value":"0x00"},{"arguments":[{"arguments":[{"arguments":[{"name":"namespace","nativeSrc":"1791:9:10","nodeType":"YulIdentifier","src":"1791:9:10"},{"kind":"number","nativeSrc":"1802:4:10","nodeType":"YulLiteral","src":"1802:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1787:3:10","nodeType":"YulIdentifier","src":"1787:3:10"},"nativeSrc":"1787:20:10","nodeType":"YulFunctionCall","src":"1787:20:10"},{"arguments":[{"name":"namespace","nativeSrc":"1815:9:10","nodeType":"YulIdentifier","src":"1815:9:10"}],"functionName":{"name":"mload","nativeSrc":"1809:5:10","nodeType":"YulIdentifier","src":"1809:5:10"},"nativeSrc":"1809:16:10","nodeType":"YulFunctionCall","src":"1809:16:10"}],"functionName":{"name":"keccak256","nativeSrc":"1777:9:10","nodeType":"YulIdentifier","src":"1777:9:10"},"nativeSrc":"1777:49:10","nodeType":"YulFunctionCall","src":"1777:49:10"},{"kind":"number","nativeSrc":"1828:1:10","nodeType":"YulLiteral","src":"1828:1:10","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1773:3:10","nodeType":"YulIdentifier","src":"1773:3:10"},"nativeSrc":"1773:57:10","nodeType":"YulFunctionCall","src":"1773:57:10"}],"functionName":{"name":"mstore","nativeSrc":"1760:6:10","nodeType":"YulIdentifier","src":"1760:6:10"},"nativeSrc":"1760:71:10","nodeType":"YulFunctionCall","src":"1760:71:10"},"nativeSrc":"1760:71:10","nodeType":"YulExpressionStatement","src":"1760:71:10"},{"nativeSrc":"1844:45:10","nodeType":"YulAssignment","src":"1844:45:10","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1866:4:10","nodeType":"YulLiteral","src":"1866:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1872:4:10","nodeType":"YulLiteral","src":"1872:4:10","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1856:9:10","nodeType":"YulIdentifier","src":"1856:9:10"},"nativeSrc":"1856:21:10","nodeType":"YulFunctionCall","src":"1856:21:10"},{"arguments":[{"kind":"number","nativeSrc":"1883:4:10","nodeType":"YulLiteral","src":"1883:4:10","type":"","value":"0xff"}],"functionName":{"name":"not","nativeSrc":"1879:3:10","nodeType":"YulIdentifier","src":"1879:3:10"},"nativeSrc":"1879:9:10","nodeType":"YulFunctionCall","src":"1879:9:10"}],"functionName":{"name":"and","nativeSrc":"1852:3:10","nodeType":"YulIdentifier","src":"1852:3:10"},"nativeSrc":"1852:37:10","nodeType":"YulFunctionCall","src":"1852:37:10"},"variableNames":[{"name":"slot","nativeSrc":"1844:4:10","nodeType":"YulIdentifier","src":"1844:4:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2378,"isOffset":false,"isSlot":false,"src":"1791:9:10","valueSize":1},{"declaration":2378,"isOffset":false,"isSlot":false,"src":"1815:9:10","valueSize":1},{"declaration":2381,"isOffset":false,"isSlot":false,"src":"1844:4:10","valueSize":1}],"id":2383,"nodeType":"InlineAssembly","src":"1737:162:10"}]},"documentation":{"id":2376,"nodeType":"StructuredDocumentation","src":"1522:74:10","text":" @dev Derive an ERC-7201 slot from a string (namespace)."},"id":2385,"implemented":true,"kind":"function","modifiers":[],"name":"erc7201Slot","nameLocation":"1610:11:10","nodeType":"FunctionDefinition","parameters":{"id":2379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2378,"mutability":"mutable","name":"namespace","nameLocation":"1636:9:10","nodeType":"VariableDeclaration","scope":2385,"src":"1622:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2377,"name":"string","nodeType":"ElementaryTypeName","src":"1622:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1621:25:10"},"returnParameters":{"id":2382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2381,"mutability":"mutable","name":"slot","nameLocation":"1678:4:10","nodeType":"VariableDeclaration","scope":2385,"src":"1670:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1670:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1669:14:10"},"scope":2502,"src":"1601:304:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2406,"nodeType":"Block","src":"2097:86:10","statements":[{"id":2405,"nodeType":"UncheckedBlock","src":"2107:70:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2399,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2388,"src":"2154:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2397,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:10","typeDescriptions":{}}},"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2401,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"2162:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2146:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:10","typeDescriptions":{}}},"id":2403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2394,"id":2404,"nodeType":"Return","src":"2131:35:10"}]}]},"documentation":{"id":2386,"nodeType":"StructuredDocumentation","src":"1911:99:10","text":" @dev Add an offset to a slot to get the n-th element of a structure or an array."},"id":2407,"implemented":true,"kind":"function","modifiers":[],"name":"offset","nameLocation":"2024:6:10","nodeType":"FunctionDefinition","parameters":{"id":2391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2388,"mutability":"mutable","name":"slot","nameLocation":"2039:4:10","nodeType":"VariableDeclaration","scope":2407,"src":"2031:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2031:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2390,"mutability":"mutable","name":"pos","nameLocation":"2053:3:10","nodeType":"VariableDeclaration","scope":2407,"src":"2045:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2389,"name":"uint256","nodeType":"ElementaryTypeName","src":"2045:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2030:27:10"},"returnParameters":{"id":2394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2393,"mutability":"mutable","name":"result","nameLocation":"2089:6:10","nodeType":"VariableDeclaration","scope":2407,"src":"2081:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2081:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2080:16:10"},"scope":2502,"src":"2015:168:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2416,"nodeType":"Block","src":"2386:154:10","statements":[{"AST":{"nativeSrc":"2448:86:10","nodeType":"YulBlock","src":"2448:86:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2469:4:10","nodeType":"YulLiteral","src":"2469:4:10","type":"","value":"0x00"},{"name":"slot","nativeSrc":"2475:4:10","nodeType":"YulIdentifier","src":"2475:4:10"}],"functionName":{"name":"mstore","nativeSrc":"2462:6:10","nodeType":"YulIdentifier","src":"2462:6:10"},"nativeSrc":"2462:18:10","nodeType":"YulFunctionCall","src":"2462:18:10"},"nativeSrc":"2462:18:10","nodeType":"YulExpressionStatement","src":"2462:18:10"},{"nativeSrc":"2493:31:10","nodeType":"YulAssignment","src":"2493:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"2513:4:10","nodeType":"YulLiteral","src":"2513:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2519:4:10","nodeType":"YulLiteral","src":"2519:4:10","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2503:9:10","nodeType":"YulIdentifier","src":"2503:9:10"},"nativeSrc":"2503:21:10","nodeType":"YulFunctionCall","src":"2503:21:10"},"variableNames":[{"name":"result","nativeSrc":"2493:6:10","nodeType":"YulIdentifier","src":"2493:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2413,"isOffset":false,"isSlot":false,"src":"2493:6:10","valueSize":1},{"declaration":2410,"isOffset":false,"isSlot":false,"src":"2475:4:10","valueSize":1}],"id":2415,"nodeType":"InlineAssembly","src":"2439:95:10"}]},"documentation":{"id":2408,"nodeType":"StructuredDocumentation","src":"2189:118:10","text":" @dev Derive the location of the first element in an array from the slot where the length is stored."},"id":2417,"implemented":true,"kind":"function","modifiers":[],"name":"deriveArray","nameLocation":"2321:11:10","nodeType":"FunctionDefinition","parameters":{"id":2411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2410,"mutability":"mutable","name":"slot","nameLocation":"2341:4:10","nodeType":"VariableDeclaration","scope":2417,"src":"2333:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2333:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2332:14:10"},"returnParameters":{"id":2414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2413,"mutability":"mutable","name":"result","nameLocation":"2378:6:10","nodeType":"VariableDeclaration","scope":2417,"src":"2370:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2370:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2369:16:10"},"scope":2502,"src":"2312:228:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2428,"nodeType":"Block","src":"2718:184:10","statements":[{"AST":{"nativeSrc":"2780:116:10","nodeType":"YulBlock","src":"2780:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2801:4:10","nodeType":"YulLiteral","src":"2801:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"2807:3:10","nodeType":"YulIdentifier","src":"2807:3:10"}],"functionName":{"name":"mstore","nativeSrc":"2794:6:10","nodeType":"YulIdentifier","src":"2794:6:10"},"nativeSrc":"2794:17:10","nodeType":"YulFunctionCall","src":"2794:17:10"},"nativeSrc":"2794:17:10","nodeType":"YulExpressionStatement","src":"2794:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2831:4:10","nodeType":"YulLiteral","src":"2831:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"2837:4:10","nodeType":"YulIdentifier","src":"2837:4:10"}],"functionName":{"name":"mstore","nativeSrc":"2824:6:10","nodeType":"YulIdentifier","src":"2824:6:10"},"nativeSrc":"2824:18:10","nodeType":"YulFunctionCall","src":"2824:18:10"},"nativeSrc":"2824:18:10","nodeType":"YulExpressionStatement","src":"2824:18:10"},{"nativeSrc":"2855:31:10","nodeType":"YulAssignment","src":"2855:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"2875:4:10","nodeType":"YulLiteral","src":"2875:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2881:4:10","nodeType":"YulLiteral","src":"2881:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"2865:9:10","nodeType":"YulIdentifier","src":"2865:9:10"},"nativeSrc":"2865:21:10","nodeType":"YulFunctionCall","src":"2865:21:10"},"variableNames":[{"name":"result","nativeSrc":"2855:6:10","nodeType":"YulIdentifier","src":"2855:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2422,"isOffset":false,"isSlot":false,"src":"2807:3:10","valueSize":1},{"declaration":2425,"isOffset":false,"isSlot":false,"src":"2855:6:10","valueSize":1},{"declaration":2420,"isOffset":false,"isSlot":false,"src":"2837:4:10","valueSize":1}],"id":2427,"nodeType":"InlineAssembly","src":"2771:125:10"}]},"documentation":{"id":2418,"nodeType":"StructuredDocumentation","src":"2546:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2429,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"2638:13:10","nodeType":"FunctionDefinition","parameters":{"id":2423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2420,"mutability":"mutable","name":"slot","nameLocation":"2660:4:10","nodeType":"VariableDeclaration","scope":2429,"src":"2652:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2652:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2422,"mutability":"mutable","name":"key","nameLocation":"2674:3:10","nodeType":"VariableDeclaration","scope":2429,"src":"2666:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2421,"name":"address","nodeType":"ElementaryTypeName","src":"2666:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2651:27:10"},"returnParameters":{"id":2426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2425,"mutability":"mutable","name":"result","nameLocation":"2710:6:10","nodeType":"VariableDeclaration","scope":2429,"src":"2702:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2702:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2701:16:10"},"scope":2502,"src":"2629:273:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2440,"nodeType":"Block","src":"3077:184:10","statements":[{"AST":{"nativeSrc":"3139:116:10","nodeType":"YulBlock","src":"3139:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3160:4:10","nodeType":"YulLiteral","src":"3160:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"3166:3:10","nodeType":"YulIdentifier","src":"3166:3:10"}],"functionName":{"name":"mstore","nativeSrc":"3153:6:10","nodeType":"YulIdentifier","src":"3153:6:10"},"nativeSrc":"3153:17:10","nodeType":"YulFunctionCall","src":"3153:17:10"},"nativeSrc":"3153:17:10","nodeType":"YulExpressionStatement","src":"3153:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3190:4:10","nodeType":"YulLiteral","src":"3190:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3196:4:10","nodeType":"YulIdentifier","src":"3196:4:10"}],"functionName":{"name":"mstore","nativeSrc":"3183:6:10","nodeType":"YulIdentifier","src":"3183:6:10"},"nativeSrc":"3183:18:10","nodeType":"YulFunctionCall","src":"3183:18:10"},"nativeSrc":"3183:18:10","nodeType":"YulExpressionStatement","src":"3183:18:10"},{"nativeSrc":"3214:31:10","nodeType":"YulAssignment","src":"3214:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"3234:4:10","nodeType":"YulLiteral","src":"3234:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3240:4:10","nodeType":"YulLiteral","src":"3240:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3224:9:10","nodeType":"YulIdentifier","src":"3224:9:10"},"nativeSrc":"3224:21:10","nodeType":"YulFunctionCall","src":"3224:21:10"},"variableNames":[{"name":"result","nativeSrc":"3214:6:10","nodeType":"YulIdentifier","src":"3214:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2434,"isOffset":false,"isSlot":false,"src":"3166:3:10","valueSize":1},{"declaration":2437,"isOffset":false,"isSlot":false,"src":"3214:6:10","valueSize":1},{"declaration":2432,"isOffset":false,"isSlot":false,"src":"3196:4:10","valueSize":1}],"id":2439,"nodeType":"InlineAssembly","src":"3130:125:10"}]},"documentation":{"id":2430,"nodeType":"StructuredDocumentation","src":"2908:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2441,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3000:13:10","nodeType":"FunctionDefinition","parameters":{"id":2435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2432,"mutability":"mutable","name":"slot","nameLocation":"3022:4:10","nodeType":"VariableDeclaration","scope":2441,"src":"3014:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3014:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2434,"mutability":"mutable","name":"key","nameLocation":"3033:3:10","nodeType":"VariableDeclaration","scope":2441,"src":"3028:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2433,"name":"bool","nodeType":"ElementaryTypeName","src":"3028:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3013:24:10"},"returnParameters":{"id":2438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2437,"mutability":"mutable","name":"result","nameLocation":"3069:6:10","nodeType":"VariableDeclaration","scope":2441,"src":"3061:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3061:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3060:16:10"},"scope":2502,"src":"2991:270:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2452,"nodeType":"Block","src":"3439:184:10","statements":[{"AST":{"nativeSrc":"3501:116:10","nodeType":"YulBlock","src":"3501:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3522:4:10","nodeType":"YulLiteral","src":"3522:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"3528:3:10","nodeType":"YulIdentifier","src":"3528:3:10"}],"functionName":{"name":"mstore","nativeSrc":"3515:6:10","nodeType":"YulIdentifier","src":"3515:6:10"},"nativeSrc":"3515:17:10","nodeType":"YulFunctionCall","src":"3515:17:10"},"nativeSrc":"3515:17:10","nodeType":"YulExpressionStatement","src":"3515:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3552:4:10","nodeType":"YulLiteral","src":"3552:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3558:4:10","nodeType":"YulIdentifier","src":"3558:4:10"}],"functionName":{"name":"mstore","nativeSrc":"3545:6:10","nodeType":"YulIdentifier","src":"3545:6:10"},"nativeSrc":"3545:18:10","nodeType":"YulFunctionCall","src":"3545:18:10"},"nativeSrc":"3545:18:10","nodeType":"YulExpressionStatement","src":"3545:18:10"},{"nativeSrc":"3576:31:10","nodeType":"YulAssignment","src":"3576:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"3596:4:10","nodeType":"YulLiteral","src":"3596:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3602:4:10","nodeType":"YulLiteral","src":"3602:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3586:9:10","nodeType":"YulIdentifier","src":"3586:9:10"},"nativeSrc":"3586:21:10","nodeType":"YulFunctionCall","src":"3586:21:10"},"variableNames":[{"name":"result","nativeSrc":"3576:6:10","nodeType":"YulIdentifier","src":"3576:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2446,"isOffset":false,"isSlot":false,"src":"3528:3:10","valueSize":1},{"declaration":2449,"isOffset":false,"isSlot":false,"src":"3576:6:10","valueSize":1},{"declaration":2444,"isOffset":false,"isSlot":false,"src":"3558:4:10","valueSize":1}],"id":2451,"nodeType":"InlineAssembly","src":"3492:125:10"}]},"documentation":{"id":2442,"nodeType":"StructuredDocumentation","src":"3267:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2453,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3359:13:10","nodeType":"FunctionDefinition","parameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2444,"mutability":"mutable","name":"slot","nameLocation":"3381:4:10","nodeType":"VariableDeclaration","scope":2453,"src":"3373:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3373:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2446,"mutability":"mutable","name":"key","nameLocation":"3395:3:10","nodeType":"VariableDeclaration","scope":2453,"src":"3387:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3387:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3372:27:10"},"returnParameters":{"id":2450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2449,"mutability":"mutable","name":"result","nameLocation":"3431:6:10","nodeType":"VariableDeclaration","scope":2453,"src":"3423:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3423:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3422:16:10"},"scope":2502,"src":"3350:273:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2464,"nodeType":"Block","src":"3801:184:10","statements":[{"AST":{"nativeSrc":"3863:116:10","nodeType":"YulBlock","src":"3863:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3884:4:10","nodeType":"YulLiteral","src":"3884:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"3890:3:10","nodeType":"YulIdentifier","src":"3890:3:10"}],"functionName":{"name":"mstore","nativeSrc":"3877:6:10","nodeType":"YulIdentifier","src":"3877:6:10"},"nativeSrc":"3877:17:10","nodeType":"YulFunctionCall","src":"3877:17:10"},"nativeSrc":"3877:17:10","nodeType":"YulExpressionStatement","src":"3877:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3914:4:10","nodeType":"YulLiteral","src":"3914:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3920:4:10","nodeType":"YulIdentifier","src":"3920:4:10"}],"functionName":{"name":"mstore","nativeSrc":"3907:6:10","nodeType":"YulIdentifier","src":"3907:6:10"},"nativeSrc":"3907:18:10","nodeType":"YulFunctionCall","src":"3907:18:10"},"nativeSrc":"3907:18:10","nodeType":"YulExpressionStatement","src":"3907:18:10"},{"nativeSrc":"3938:31:10","nodeType":"YulAssignment","src":"3938:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"3958:4:10","nodeType":"YulLiteral","src":"3958:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3964:4:10","nodeType":"YulLiteral","src":"3964:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3948:9:10","nodeType":"YulIdentifier","src":"3948:9:10"},"nativeSrc":"3948:21:10","nodeType":"YulFunctionCall","src":"3948:21:10"},"variableNames":[{"name":"result","nativeSrc":"3938:6:10","nodeType":"YulIdentifier","src":"3938:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2458,"isOffset":false,"isSlot":false,"src":"3890:3:10","valueSize":1},{"declaration":2461,"isOffset":false,"isSlot":false,"src":"3938:6:10","valueSize":1},{"declaration":2456,"isOffset":false,"isSlot":false,"src":"3920:4:10","valueSize":1}],"id":2463,"nodeType":"InlineAssembly","src":"3854:125:10"}]},"documentation":{"id":2454,"nodeType":"StructuredDocumentation","src":"3629:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2465,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3721:13:10","nodeType":"FunctionDefinition","parameters":{"id":2459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2456,"mutability":"mutable","name":"slot","nameLocation":"3743:4:10","nodeType":"VariableDeclaration","scope":2465,"src":"3735:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3735:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2458,"mutability":"mutable","name":"key","nameLocation":"3757:3:10","nodeType":"VariableDeclaration","scope":2465,"src":"3749:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2457,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3734:27:10"},"returnParameters":{"id":2462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2461,"mutability":"mutable","name":"result","nameLocation":"3793:6:10","nodeType":"VariableDeclaration","scope":2465,"src":"3785:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3785:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3784:16:10"},"scope":2502,"src":"3712:273:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2476,"nodeType":"Block","src":"4162:184:10","statements":[{"AST":{"nativeSrc":"4224:116:10","nodeType":"YulBlock","src":"4224:116:10","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4245:4:10","nodeType":"YulLiteral","src":"4245:4:10","type":"","value":"0x00"},{"name":"key","nativeSrc":"4251:3:10","nodeType":"YulIdentifier","src":"4251:3:10"}],"functionName":{"name":"mstore","nativeSrc":"4238:6:10","nodeType":"YulIdentifier","src":"4238:6:10"},"nativeSrc":"4238:17:10","nodeType":"YulFunctionCall","src":"4238:17:10"},"nativeSrc":"4238:17:10","nodeType":"YulExpressionStatement","src":"4238:17:10"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4275:4:10","nodeType":"YulLiteral","src":"4275:4:10","type":"","value":"0x20"},{"name":"slot","nativeSrc":"4281:4:10","nodeType":"YulIdentifier","src":"4281:4:10"}],"functionName":{"name":"mstore","nativeSrc":"4268:6:10","nodeType":"YulIdentifier","src":"4268:6:10"},"nativeSrc":"4268:18:10","nodeType":"YulFunctionCall","src":"4268:18:10"},"nativeSrc":"4268:18:10","nodeType":"YulExpressionStatement","src":"4268:18:10"},{"nativeSrc":"4299:31:10","nodeType":"YulAssignment","src":"4299:31:10","value":{"arguments":[{"kind":"number","nativeSrc":"4319:4:10","nodeType":"YulLiteral","src":"4319:4:10","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4325:4:10","nodeType":"YulLiteral","src":"4325:4:10","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"4309:9:10","nodeType":"YulIdentifier","src":"4309:9:10"},"nativeSrc":"4309:21:10","nodeType":"YulFunctionCall","src":"4309:21:10"},"variableNames":[{"name":"result","nativeSrc":"4299:6:10","nodeType":"YulIdentifier","src":"4299:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2470,"isOffset":false,"isSlot":false,"src":"4251:3:10","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":false,"src":"4299:6:10","valueSize":1},{"declaration":2468,"isOffset":false,"isSlot":false,"src":"4281:4:10","valueSize":1}],"id":2475,"nodeType":"InlineAssembly","src":"4215:125:10"}]},"documentation":{"id":2466,"nodeType":"StructuredDocumentation","src":"3991:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2477,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4083:13:10","nodeType":"FunctionDefinition","parameters":{"id":2471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2468,"mutability":"mutable","name":"slot","nameLocation":"4105:4:10","nodeType":"VariableDeclaration","scope":2477,"src":"4097:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4097:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2470,"mutability":"mutable","name":"key","nameLocation":"4118:3:10","nodeType":"VariableDeclaration","scope":2477,"src":"4111:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2469,"name":"int256","nodeType":"ElementaryTypeName","src":"4111:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4096:26:10"},"returnParameters":{"id":2474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"result","nameLocation":"4154:6:10","nodeType":"VariableDeclaration","scope":2477,"src":"4146:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4146:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4145:16:10"},"scope":2502,"src":"4074:272:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2488,"nodeType":"Block","src":"4530:353:10","statements":[{"AST":{"nativeSrc":"4592:285:10","nodeType":"YulBlock","src":"4592:285:10","statements":[{"nativeSrc":"4606:24:10","nodeType":"YulVariableDeclaration","src":"4606:24:10","value":{"arguments":[{"name":"key","nativeSrc":"4626:3:10","nodeType":"YulIdentifier","src":"4626:3:10"}],"functionName":{"name":"mload","nativeSrc":"4620:5:10","nodeType":"YulIdentifier","src":"4620:5:10"},"nativeSrc":"4620:10:10","nodeType":"YulFunctionCall","src":"4620:10:10"},"variables":[{"name":"length","nativeSrc":"4610:6:10","nodeType":"YulTypedName","src":"4610:6:10","type":""}]},{"nativeSrc":"4643:27:10","nodeType":"YulVariableDeclaration","src":"4643:27:10","value":{"arguments":[{"name":"key","nativeSrc":"4660:3:10","nodeType":"YulIdentifier","src":"4660:3:10"},{"kind":"number","nativeSrc":"4665:4:10","nodeType":"YulLiteral","src":"4665:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4656:3:10","nodeType":"YulIdentifier","src":"4656:3:10"},"nativeSrc":"4656:14:10","nodeType":"YulFunctionCall","src":"4656:14:10"},"variables":[{"name":"begin","nativeSrc":"4647:5:10","nodeType":"YulTypedName","src":"4647:5:10","type":""}]},{"nativeSrc":"4683:29:10","nodeType":"YulVariableDeclaration","src":"4683:29:10","value":{"arguments":[{"name":"begin","nativeSrc":"4698:5:10","nodeType":"YulIdentifier","src":"4698:5:10"},{"name":"length","nativeSrc":"4705:6:10","nodeType":"YulIdentifier","src":"4705:6:10"}],"functionName":{"name":"add","nativeSrc":"4694:3:10","nodeType":"YulIdentifier","src":"4694:3:10"},"nativeSrc":"4694:18:10","nodeType":"YulFunctionCall","src":"4694:18:10"},"variables":[{"name":"end","nativeSrc":"4687:3:10","nodeType":"YulTypedName","src":"4687:3:10","type":""}]},{"nativeSrc":"4725:23:10","nodeType":"YulVariableDeclaration","src":"4725:23:10","value":{"arguments":[{"name":"end","nativeSrc":"4744:3:10","nodeType":"YulIdentifier","src":"4744:3:10"}],"functionName":{"name":"mload","nativeSrc":"4738:5:10","nodeType":"YulIdentifier","src":"4738:5:10"},"nativeSrc":"4738:10:10","nodeType":"YulFunctionCall","src":"4738:10:10"},"variables":[{"name":"cache","nativeSrc":"4729:5:10","nodeType":"YulTypedName","src":"4729:5:10","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4768:3:10","nodeType":"YulIdentifier","src":"4768:3:10"},{"name":"slot","nativeSrc":"4773:4:10","nodeType":"YulIdentifier","src":"4773:4:10"}],"functionName":{"name":"mstore","nativeSrc":"4761:6:10","nodeType":"YulIdentifier","src":"4761:6:10"},"nativeSrc":"4761:17:10","nodeType":"YulFunctionCall","src":"4761:17:10"},"nativeSrc":"4761:17:10","nodeType":"YulExpressionStatement","src":"4761:17:10"},{"nativeSrc":"4791:45:10","nodeType":"YulAssignment","src":"4791:45:10","value":{"arguments":[{"name":"begin","nativeSrc":"4811:5:10","nodeType":"YulIdentifier","src":"4811:5:10"},{"arguments":[{"name":"length","nativeSrc":"4822:6:10","nodeType":"YulIdentifier","src":"4822:6:10"},{"kind":"number","nativeSrc":"4830:4:10","nodeType":"YulLiteral","src":"4830:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4818:3:10","nodeType":"YulIdentifier","src":"4818:3:10"},"nativeSrc":"4818:17:10","nodeType":"YulFunctionCall","src":"4818:17:10"}],"functionName":{"name":"keccak256","nativeSrc":"4801:9:10","nodeType":"YulIdentifier","src":"4801:9:10"},"nativeSrc":"4801:35:10","nodeType":"YulFunctionCall","src":"4801:35:10"},"variableNames":[{"name":"result","nativeSrc":"4791:6:10","nodeType":"YulIdentifier","src":"4791:6:10"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4856:3:10","nodeType":"YulIdentifier","src":"4856:3:10"},{"name":"cache","nativeSrc":"4861:5:10","nodeType":"YulIdentifier","src":"4861:5:10"}],"functionName":{"name":"mstore","nativeSrc":"4849:6:10","nodeType":"YulIdentifier","src":"4849:6:10"},"nativeSrc":"4849:18:10","nodeType":"YulFunctionCall","src":"4849:18:10"},"nativeSrc":"4849:18:10","nodeType":"YulExpressionStatement","src":"4849:18:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2482,"isOffset":false,"isSlot":false,"src":"4626:3:10","valueSize":1},{"declaration":2482,"isOffset":false,"isSlot":false,"src":"4660:3:10","valueSize":1},{"declaration":2485,"isOffset":false,"isSlot":false,"src":"4791:6:10","valueSize":1},{"declaration":2480,"isOffset":false,"isSlot":false,"src":"4773:4:10","valueSize":1}],"id":2487,"nodeType":"InlineAssembly","src":"4583:294:10"}]},"documentation":{"id":2478,"nodeType":"StructuredDocumentation","src":"4352:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2489,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4444:13:10","nodeType":"FunctionDefinition","parameters":{"id":2483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2480,"mutability":"mutable","name":"slot","nameLocation":"4466:4:10","nodeType":"VariableDeclaration","scope":2489,"src":"4458:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4458:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2482,"mutability":"mutable","name":"key","nameLocation":"4486:3:10","nodeType":"VariableDeclaration","scope":2489,"src":"4472:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2481,"name":"string","nodeType":"ElementaryTypeName","src":"4472:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4457:33:10"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"mutability":"mutable","name":"result","nameLocation":"4522:6:10","nodeType":"VariableDeclaration","scope":2489,"src":"4514:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4514:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4513:16:10"},"scope":2502,"src":"4435:448:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2500,"nodeType":"Block","src":"5066:353:10","statements":[{"AST":{"nativeSrc":"5128:285:10","nodeType":"YulBlock","src":"5128:285:10","statements":[{"nativeSrc":"5142:24:10","nodeType":"YulVariableDeclaration","src":"5142:24:10","value":{"arguments":[{"name":"key","nativeSrc":"5162:3:10","nodeType":"YulIdentifier","src":"5162:3:10"}],"functionName":{"name":"mload","nativeSrc":"5156:5:10","nodeType":"YulIdentifier","src":"5156:5:10"},"nativeSrc":"5156:10:10","nodeType":"YulFunctionCall","src":"5156:10:10"},"variables":[{"name":"length","nativeSrc":"5146:6:10","nodeType":"YulTypedName","src":"5146:6:10","type":""}]},{"nativeSrc":"5179:27:10","nodeType":"YulVariableDeclaration","src":"5179:27:10","value":{"arguments":[{"name":"key","nativeSrc":"5196:3:10","nodeType":"YulIdentifier","src":"5196:3:10"},{"kind":"number","nativeSrc":"5201:4:10","nodeType":"YulLiteral","src":"5201:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5192:3:10","nodeType":"YulIdentifier","src":"5192:3:10"},"nativeSrc":"5192:14:10","nodeType":"YulFunctionCall","src":"5192:14:10"},"variables":[{"name":"begin","nativeSrc":"5183:5:10","nodeType":"YulTypedName","src":"5183:5:10","type":""}]},{"nativeSrc":"5219:29:10","nodeType":"YulVariableDeclaration","src":"5219:29:10","value":{"arguments":[{"name":"begin","nativeSrc":"5234:5:10","nodeType":"YulIdentifier","src":"5234:5:10"},{"name":"length","nativeSrc":"5241:6:10","nodeType":"YulIdentifier","src":"5241:6:10"}],"functionName":{"name":"add","nativeSrc":"5230:3:10","nodeType":"YulIdentifier","src":"5230:3:10"},"nativeSrc":"5230:18:10","nodeType":"YulFunctionCall","src":"5230:18:10"},"variables":[{"name":"end","nativeSrc":"5223:3:10","nodeType":"YulTypedName","src":"5223:3:10","type":""}]},{"nativeSrc":"5261:23:10","nodeType":"YulVariableDeclaration","src":"5261:23:10","value":{"arguments":[{"name":"end","nativeSrc":"5280:3:10","nodeType":"YulIdentifier","src":"5280:3:10"}],"functionName":{"name":"mload","nativeSrc":"5274:5:10","nodeType":"YulIdentifier","src":"5274:5:10"},"nativeSrc":"5274:10:10","nodeType":"YulFunctionCall","src":"5274:10:10"},"variables":[{"name":"cache","nativeSrc":"5265:5:10","nodeType":"YulTypedName","src":"5265:5:10","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5304:3:10","nodeType":"YulIdentifier","src":"5304:3:10"},{"name":"slot","nativeSrc":"5309:4:10","nodeType":"YulIdentifier","src":"5309:4:10"}],"functionName":{"name":"mstore","nativeSrc":"5297:6:10","nodeType":"YulIdentifier","src":"5297:6:10"},"nativeSrc":"5297:17:10","nodeType":"YulFunctionCall","src":"5297:17:10"},"nativeSrc":"5297:17:10","nodeType":"YulExpressionStatement","src":"5297:17:10"},{"nativeSrc":"5327:45:10","nodeType":"YulAssignment","src":"5327:45:10","value":{"arguments":[{"name":"begin","nativeSrc":"5347:5:10","nodeType":"YulIdentifier","src":"5347:5:10"},{"arguments":[{"name":"length","nativeSrc":"5358:6:10","nodeType":"YulIdentifier","src":"5358:6:10"},{"kind":"number","nativeSrc":"5366:4:10","nodeType":"YulLiteral","src":"5366:4:10","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5354:3:10","nodeType":"YulIdentifier","src":"5354:3:10"},"nativeSrc":"5354:17:10","nodeType":"YulFunctionCall","src":"5354:17:10"}],"functionName":{"name":"keccak256","nativeSrc":"5337:9:10","nodeType":"YulIdentifier","src":"5337:9:10"},"nativeSrc":"5337:35:10","nodeType":"YulFunctionCall","src":"5337:35:10"},"variableNames":[{"name":"result","nativeSrc":"5327:6:10","nodeType":"YulIdentifier","src":"5327:6:10"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5392:3:10","nodeType":"YulIdentifier","src":"5392:3:10"},{"name":"cache","nativeSrc":"5397:5:10","nodeType":"YulIdentifier","src":"5397:5:10"}],"functionName":{"name":"mstore","nativeSrc":"5385:6:10","nodeType":"YulIdentifier","src":"5385:6:10"},"nativeSrc":"5385:18:10","nodeType":"YulFunctionCall","src":"5385:18:10"},"nativeSrc":"5385:18:10","nodeType":"YulExpressionStatement","src":"5385:18:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2494,"isOffset":false,"isSlot":false,"src":"5162:3:10","valueSize":1},{"declaration":2494,"isOffset":false,"isSlot":false,"src":"5196:3:10","valueSize":1},{"declaration":2497,"isOffset":false,"isSlot":false,"src":"5327:6:10","valueSize":1},{"declaration":2492,"isOffset":false,"isSlot":false,"src":"5309:4:10","valueSize":1}],"id":2499,"nodeType":"InlineAssembly","src":"5119:294:10"}]},"documentation":{"id":2490,"nodeType":"StructuredDocumentation","src":"4889:78:10","text":" @dev Derive the location of a mapping element from the key."},"id":2501,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4981:13:10","nodeType":"FunctionDefinition","parameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2492,"mutability":"mutable","name":"slot","nameLocation":"5003:4:10","nodeType":"VariableDeclaration","scope":2501,"src":"4995:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4995:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2494,"mutability":"mutable","name":"key","nameLocation":"5022:3:10","nodeType":"VariableDeclaration","scope":2501,"src":"5009:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2493,"name":"bytes","nodeType":"ElementaryTypeName","src":"5009:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4994:32:10"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"result","nameLocation":"5058:6:10","nodeType":"VariableDeclaration","scope":2501,"src":"5050:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5050:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5049:16:10"},"scope":2502,"src":"4972:447:10","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2503,"src":"1493:3928:10","usedErrors":[],"usedEvents":[]}],"src":"124:5298:10"},"id":10},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[2821]},"id":2822,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2504,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"193:24:11"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":2505,"nodeType":"StructuredDocumentation","src":"219:1802:11","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n Since version 5.1, this library also support writing and reading value types to and from transient storage.\n * Example using transient storage:\n ```solidity\n contract Lock {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;\n modifier locked() {\n require(!_LOCK_SLOT.asBoolean().tload());\n _LOCK_SLOT.asBoolean().tstore(true);\n _;\n _LOCK_SLOT.asBoolean().tstore(false);\n }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."},"fullyImplemented":true,"id":2821,"linearizedBaseContracts":[2821],"name":"StorageSlot","nameLocation":"2030:11:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":2508,"members":[{"constant":false,"id":2507,"mutability":"mutable","name":"value","nameLocation":"2085:5:11","nodeType":"VariableDeclaration","scope":2508,"src":"2077:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2506,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"2055:11:11","nodeType":"StructDefinition","scope":2821,"src":"2048:49:11","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":2511,"members":[{"constant":false,"id":2510,"mutability":"mutable","name":"value","nameLocation":"2137:5:11","nodeType":"VariableDeclaration","scope":2511,"src":"2132:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2509,"name":"bool","nodeType":"ElementaryTypeName","src":"2132:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"2110:11:11","nodeType":"StructDefinition","scope":2821,"src":"2103:46:11","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":2514,"members":[{"constant":false,"id":2513,"mutability":"mutable","name":"value","nameLocation":"2192:5:11","nodeType":"VariableDeclaration","scope":2514,"src":"2184:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2184:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"2162:11:11","nodeType":"StructDefinition","scope":2821,"src":"2155:49:11","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":2517,"members":[{"constant":false,"id":2516,"mutability":"mutable","name":"value","nameLocation":"2247:5:11","nodeType":"VariableDeclaration","scope":2517,"src":"2239:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2515,"name":"uint256","nodeType":"ElementaryTypeName","src":"2239:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"2217:11:11","nodeType":"StructDefinition","scope":2821,"src":"2210:49:11","visibility":"public"},{"canonicalName":"StorageSlot.Int256Slot","id":2520,"members":[{"constant":false,"id":2519,"mutability":"mutable","name":"value","nameLocation":"2300:5:11","nodeType":"VariableDeclaration","scope":2520,"src":"2293:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2518,"name":"int256","nodeType":"ElementaryTypeName","src":"2293:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"Int256Slot","nameLocation":"2272:10:11","nodeType":"StructDefinition","scope":2821,"src":"2265:47:11","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":2523,"members":[{"constant":false,"id":2522,"mutability":"mutable","name":"value","nameLocation":"2353:5:11","nodeType":"VariableDeclaration","scope":2523,"src":"2346:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2521,"name":"string","nodeType":"ElementaryTypeName","src":"2346:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"2325:10:11","nodeType":"StructDefinition","scope":2821,"src":"2318:47:11","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":2526,"members":[{"constant":false,"id":2525,"mutability":"mutable","name":"value","nameLocation":"2404:5:11","nodeType":"VariableDeclaration","scope":2526,"src":"2398:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2524,"name":"bytes","nodeType":"ElementaryTypeName","src":"2398:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"2378:9:11","nodeType":"StructDefinition","scope":2821,"src":"2371:45:11","visibility":"public"},{"body":{"id":2536,"nodeType":"Block","src":"2598:106:11","statements":[{"AST":{"nativeSrc":"2660:38:11","nodeType":"YulBlock","src":"2660:38:11","statements":[{"nativeSrc":"2674:14:11","nodeType":"YulAssignment","src":"2674:14:11","value":{"name":"slot","nativeSrc":"2684:4:11","nodeType":"YulIdentifier","src":"2684:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"2674:6:11","nodeType":"YulIdentifier","src":"2674:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2533,"isOffset":false,"isSlot":true,"src":"2674:6:11","suffix":"slot","valueSize":1},{"declaration":2529,"isOffset":false,"isSlot":false,"src":"2684:4:11","valueSize":1}],"id":2535,"nodeType":"InlineAssembly","src":"2651:47:11"}]},"documentation":{"id":2527,"nodeType":"StructuredDocumentation","src":"2422:87:11","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":2537,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"2523:14:11","nodeType":"FunctionDefinition","parameters":{"id":2530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2529,"mutability":"mutable","name":"slot","nameLocation":"2546:4:11","nodeType":"VariableDeclaration","scope":2537,"src":"2538:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2538:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2537:14:11"},"returnParameters":{"id":2534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2533,"mutability":"mutable","name":"r","nameLocation":"2595:1:11","nodeType":"VariableDeclaration","scope":2537,"src":"2575:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":2532,"nodeType":"UserDefinedTypeName","pathNode":{"id":2531,"name":"AddressSlot","nameLocations":["2575:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2508,"src":"2575:11:11"},"referencedDeclaration":2508,"src":"2575:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2508_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"2574:23:11"},"scope":2821,"src":"2514:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2547,"nodeType":"Block","src":"2886:106:11","statements":[{"AST":{"nativeSrc":"2948:38:11","nodeType":"YulBlock","src":"2948:38:11","statements":[{"nativeSrc":"2962:14:11","nodeType":"YulAssignment","src":"2962:14:11","value":{"name":"slot","nativeSrc":"2972:4:11","nodeType":"YulIdentifier","src":"2972:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"2962:6:11","nodeType":"YulIdentifier","src":"2962:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2544,"isOffset":false,"isSlot":true,"src":"2962:6:11","suffix":"slot","valueSize":1},{"declaration":2540,"isOffset":false,"isSlot":false,"src":"2972:4:11","valueSize":1}],"id":2546,"nodeType":"InlineAssembly","src":"2939:47:11"}]},"documentation":{"id":2538,"nodeType":"StructuredDocumentation","src":"2710:87:11","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":2548,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2811:14:11","nodeType":"FunctionDefinition","parameters":{"id":2541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2540,"mutability":"mutable","name":"slot","nameLocation":"2834:4:11","nodeType":"VariableDeclaration","scope":2548,"src":"2826:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2826:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2825:14:11"},"returnParameters":{"id":2545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2544,"mutability":"mutable","name":"r","nameLocation":"2883:1:11","nodeType":"VariableDeclaration","scope":2548,"src":"2863:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2511_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":2543,"nodeType":"UserDefinedTypeName","pathNode":{"id":2542,"name":"BooleanSlot","nameLocations":["2863:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2511,"src":"2863:11:11"},"referencedDeclaration":2511,"src":"2863:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2511_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2862:23:11"},"scope":2821,"src":"2802:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2558,"nodeType":"Block","src":"3174:106:11","statements":[{"AST":{"nativeSrc":"3236:38:11","nodeType":"YulBlock","src":"3236:38:11","statements":[{"nativeSrc":"3250:14:11","nodeType":"YulAssignment","src":"3250:14:11","value":{"name":"slot","nativeSrc":"3260:4:11","nodeType":"YulIdentifier","src":"3260:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"3250:6:11","nodeType":"YulIdentifier","src":"3250:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2555,"isOffset":false,"isSlot":true,"src":"3250:6:11","suffix":"slot","valueSize":1},{"declaration":2551,"isOffset":false,"isSlot":false,"src":"3260:4:11","valueSize":1}],"id":2557,"nodeType":"InlineAssembly","src":"3227:47:11"}]},"documentation":{"id":2549,"nodeType":"StructuredDocumentation","src":"2998:87:11","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":2559,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"3099:14:11","nodeType":"FunctionDefinition","parameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2551,"mutability":"mutable","name":"slot","nameLocation":"3122:4:11","nodeType":"VariableDeclaration","scope":2559,"src":"3114:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3114:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3113:14:11"},"returnParameters":{"id":2556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2555,"mutability":"mutable","name":"r","nameLocation":"3171:1:11","nodeType":"VariableDeclaration","scope":2559,"src":"3151:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":2554,"nodeType":"UserDefinedTypeName","pathNode":{"id":2553,"name":"Bytes32Slot","nameLocations":["3151:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2514,"src":"3151:11:11"},"referencedDeclaration":2514,"src":"3151:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2514_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"3150:23:11"},"scope":2821,"src":"3090:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2569,"nodeType":"Block","src":"3462:106:11","statements":[{"AST":{"nativeSrc":"3524:38:11","nodeType":"YulBlock","src":"3524:38:11","statements":[{"nativeSrc":"3538:14:11","nodeType":"YulAssignment","src":"3538:14:11","value":{"name":"slot","nativeSrc":"3548:4:11","nodeType":"YulIdentifier","src":"3548:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"3538:6:11","nodeType":"YulIdentifier","src":"3538:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2566,"isOffset":false,"isSlot":true,"src":"3538:6:11","suffix":"slot","valueSize":1},{"declaration":2562,"isOffset":false,"isSlot":false,"src":"3548:4:11","valueSize":1}],"id":2568,"nodeType":"InlineAssembly","src":"3515:47:11"}]},"documentation":{"id":2560,"nodeType":"StructuredDocumentation","src":"3286:87:11","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":2570,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"3387:14:11","nodeType":"FunctionDefinition","parameters":{"id":2563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2562,"mutability":"mutable","name":"slot","nameLocation":"3410:4:11","nodeType":"VariableDeclaration","scope":2570,"src":"3402:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3402:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3401:14:11"},"returnParameters":{"id":2567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2566,"mutability":"mutable","name":"r","nameLocation":"3459:1:11","nodeType":"VariableDeclaration","scope":2570,"src":"3439:21:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":2565,"nodeType":"UserDefinedTypeName","pathNode":{"id":2564,"name":"Uint256Slot","nameLocations":["3439:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"3439:11:11"},"referencedDeclaration":2517,"src":"3439:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2517_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"3438:23:11"},"scope":2821,"src":"3378:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2580,"nodeType":"Block","src":"3747:106:11","statements":[{"AST":{"nativeSrc":"3809:38:11","nodeType":"YulBlock","src":"3809:38:11","statements":[{"nativeSrc":"3823:14:11","nodeType":"YulAssignment","src":"3823:14:11","value":{"name":"slot","nativeSrc":"3833:4:11","nodeType":"YulIdentifier","src":"3833:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"3823:6:11","nodeType":"YulIdentifier","src":"3823:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2577,"isOffset":false,"isSlot":true,"src":"3823:6:11","suffix":"slot","valueSize":1},{"declaration":2573,"isOffset":false,"isSlot":false,"src":"3833:4:11","valueSize":1}],"id":2579,"nodeType":"InlineAssembly","src":"3800:47:11"}]},"documentation":{"id":2571,"nodeType":"StructuredDocumentation","src":"3574:86:11","text":" @dev Returns an `Int256Slot` with member `value` located at `slot`."},"id":2581,"implemented":true,"kind":"function","modifiers":[],"name":"getInt256Slot","nameLocation":"3674:13:11","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2573,"mutability":"mutable","name":"slot","nameLocation":"3696:4:11","nodeType":"VariableDeclaration","scope":2581,"src":"3688:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3688:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3687:14:11"},"returnParameters":{"id":2578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2577,"mutability":"mutable","name":"r","nameLocation":"3744:1:11","nodeType":"VariableDeclaration","scope":2581,"src":"3725:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$2520_storage_ptr","typeString":"struct StorageSlot.Int256Slot"},"typeName":{"id":2576,"nodeType":"UserDefinedTypeName","pathNode":{"id":2575,"name":"Int256Slot","nameLocations":["3725:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":2520,"src":"3725:10:11"},"referencedDeclaration":2520,"src":"3725:10:11","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$2520_storage_ptr","typeString":"struct StorageSlot.Int256Slot"}},"visibility":"internal"}],"src":"3724:22:11"},"scope":2821,"src":"3665:188:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2591,"nodeType":"Block","src":"4032:106:11","statements":[{"AST":{"nativeSrc":"4094:38:11","nodeType":"YulBlock","src":"4094:38:11","statements":[{"nativeSrc":"4108:14:11","nodeType":"YulAssignment","src":"4108:14:11","value":{"name":"slot","nativeSrc":"4118:4:11","nodeType":"YulIdentifier","src":"4118:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"4108:6:11","nodeType":"YulIdentifier","src":"4108:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2588,"isOffset":false,"isSlot":true,"src":"4108:6:11","suffix":"slot","valueSize":1},{"declaration":2584,"isOffset":false,"isSlot":false,"src":"4118:4:11","valueSize":1}],"id":2590,"nodeType":"InlineAssembly","src":"4085:47:11"}]},"documentation":{"id":2582,"nodeType":"StructuredDocumentation","src":"3859:86:11","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":2592,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3959:13:11","nodeType":"FunctionDefinition","parameters":{"id":2585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2584,"mutability":"mutable","name":"slot","nameLocation":"3981:4:11","nodeType":"VariableDeclaration","scope":2592,"src":"3973:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3973:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3972:14:11"},"returnParameters":{"id":2589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2588,"mutability":"mutable","name":"r","nameLocation":"4029:1:11","nodeType":"VariableDeclaration","scope":2592,"src":"4010:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2587,"nodeType":"UserDefinedTypeName","pathNode":{"id":2586,"name":"StringSlot","nameLocations":["4010:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":2523,"src":"4010:10:11"},"referencedDeclaration":2523,"src":"4010:10:11","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"4009:22:11"},"scope":2821,"src":"3950:188:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2602,"nodeType":"Block","src":"4340:112:11","statements":[{"AST":{"nativeSrc":"4402:44:11","nodeType":"YulBlock","src":"4402:44:11","statements":[{"nativeSrc":"4416:20:11","nodeType":"YulAssignment","src":"4416:20:11","value":{"name":"store.slot","nativeSrc":"4426:10:11","nodeType":"YulIdentifier","src":"4426:10:11"},"variableNames":[{"name":"r.slot","nativeSrc":"4416:6:11","nodeType":"YulIdentifier","src":"4416:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2599,"isOffset":false,"isSlot":true,"src":"4416:6:11","suffix":"slot","valueSize":1},{"declaration":2595,"isOffset":false,"isSlot":true,"src":"4426:10:11","suffix":"slot","valueSize":1}],"id":2601,"nodeType":"InlineAssembly","src":"4393:53:11"}]},"documentation":{"id":2593,"nodeType":"StructuredDocumentation","src":"4144:101:11","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":2603,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"4259:13:11","nodeType":"FunctionDefinition","parameters":{"id":2596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2595,"mutability":"mutable","name":"store","nameLocation":"4288:5:11","nodeType":"VariableDeclaration","scope":2603,"src":"4273:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2594,"name":"string","nodeType":"ElementaryTypeName","src":"4273:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4272:22:11"},"returnParameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2599,"mutability":"mutable","name":"r","nameLocation":"4337:1:11","nodeType":"VariableDeclaration","scope":2603,"src":"4318:20:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2598,"nodeType":"UserDefinedTypeName","pathNode":{"id":2597,"name":"StringSlot","nameLocations":["4318:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":2523,"src":"4318:10:11"},"referencedDeclaration":2523,"src":"4318:10:11","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2523_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"4317:22:11"},"scope":2821,"src":"4250:202:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2613,"nodeType":"Block","src":"4628:106:11","statements":[{"AST":{"nativeSrc":"4690:38:11","nodeType":"YulBlock","src":"4690:38:11","statements":[{"nativeSrc":"4704:14:11","nodeType":"YulAssignment","src":"4704:14:11","value":{"name":"slot","nativeSrc":"4714:4:11","nodeType":"YulIdentifier","src":"4714:4:11"},"variableNames":[{"name":"r.slot","nativeSrc":"4704:6:11","nodeType":"YulIdentifier","src":"4704:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2610,"isOffset":false,"isSlot":true,"src":"4704:6:11","suffix":"slot","valueSize":1},{"declaration":2606,"isOffset":false,"isSlot":false,"src":"4714:4:11","valueSize":1}],"id":2612,"nodeType":"InlineAssembly","src":"4681:47:11"}]},"documentation":{"id":2604,"nodeType":"StructuredDocumentation","src":"4458:85:11","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":2614,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4557:12:11","nodeType":"FunctionDefinition","parameters":{"id":2607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2606,"mutability":"mutable","name":"slot","nameLocation":"4578:4:11","nodeType":"VariableDeclaration","scope":2614,"src":"4570:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2605,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4570:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4569:14:11"},"returnParameters":{"id":2611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2610,"mutability":"mutable","name":"r","nameLocation":"4625:1:11","nodeType":"VariableDeclaration","scope":2614,"src":"4607:19:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2609,"nodeType":"UserDefinedTypeName","pathNode":{"id":2608,"name":"BytesSlot","nameLocations":["4607:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"4607:9:11"},"referencedDeclaration":2526,"src":"4607:9:11","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4606:21:11"},"scope":2821,"src":"4548:186:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2624,"nodeType":"Block","src":"4931:112:11","statements":[{"AST":{"nativeSrc":"4993:44:11","nodeType":"YulBlock","src":"4993:44:11","statements":[{"nativeSrc":"5007:20:11","nodeType":"YulAssignment","src":"5007:20:11","value":{"name":"store.slot","nativeSrc":"5017:10:11","nodeType":"YulIdentifier","src":"5017:10:11"},"variableNames":[{"name":"r.slot","nativeSrc":"5007:6:11","nodeType":"YulIdentifier","src":"5007:6:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2621,"isOffset":false,"isSlot":true,"src":"5007:6:11","suffix":"slot","valueSize":1},{"declaration":2617,"isOffset":false,"isSlot":true,"src":"5017:10:11","suffix":"slot","valueSize":1}],"id":2623,"nodeType":"InlineAssembly","src":"4984:53:11"}]},"documentation":{"id":2615,"nodeType":"StructuredDocumentation","src":"4740:99:11","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":2625,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4853:12:11","nodeType":"FunctionDefinition","parameters":{"id":2618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2617,"mutability":"mutable","name":"store","nameLocation":"4880:5:11","nodeType":"VariableDeclaration","scope":2625,"src":"4866:19:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2616,"name":"bytes","nodeType":"ElementaryTypeName","src":"4866:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4865:21:11"},"returnParameters":{"id":2622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2621,"mutability":"mutable","name":"r","nameLocation":"4928:1:11","nodeType":"VariableDeclaration","scope":2625,"src":"4910:19:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2620,"nodeType":"UserDefinedTypeName","pathNode":{"id":2619,"name":"BytesSlot","nameLocations":["4910:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"4910:9:11"},"referencedDeclaration":2526,"src":"4910:9:11","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2526_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4909:21:11"},"scope":2821,"src":"4844:199:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.AddressSlotType","id":2627,"name":"AddressSlotType","nameLocation":"5128:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"5123:32:11","underlyingType":{"id":2626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5147:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2641,"nodeType":"Block","src":"5307:50:11","statements":[{"expression":{"arguments":[{"id":2638,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"5345:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2636,"name":"AddressSlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2627,"src":"5324:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_AddressSlotType_$2627_$","typeString":"type(StorageSlot.AddressSlotType)"}},"id":2637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5340:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"5324:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_AddressSlotType_$2627_$","typeString":"function (bytes32) pure returns (StorageSlot.AddressSlotType)"}},"id":2639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5324:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"functionReturnParameters":2635,"id":2640,"nodeType":"Return","src":"5317:33:11"}]},"documentation":{"id":2628,"nodeType":"StructuredDocumentation","src":"5161:68:11","text":" @dev Cast an arbitrary slot to a AddressSlotType."},"id":2642,"implemented":true,"kind":"function","modifiers":[],"name":"asAddress","nameLocation":"5243:9:11","nodeType":"FunctionDefinition","parameters":{"id":2631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2630,"mutability":"mutable","name":"slot","nameLocation":"5261:4:11","nodeType":"VariableDeclaration","scope":2642,"src":"5253:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5253:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5252:14:11"},"returnParameters":{"id":2635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2642,"src":"5290:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2633,"nodeType":"UserDefinedTypeName","pathNode":{"id":2632,"name":"AddressSlotType","nameLocations":["5290:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2627,"src":"5290:15:11"},"referencedDeclaration":2627,"src":"5290:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"}],"src":"5289:17:11"},"scope":2821,"src":"5234:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.BooleanSlotType","id":2644,"name":"BooleanSlotType","nameLocation":"5439:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"5434:32:11","underlyingType":{"id":2643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5458:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2658,"nodeType":"Block","src":"5618:50:11","statements":[{"expression":{"arguments":[{"id":2655,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2647,"src":"5656:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2653,"name":"BooleanSlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2644,"src":"5635:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BooleanSlotType_$2644_$","typeString":"type(StorageSlot.BooleanSlotType)"}},"id":2654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5651:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"5635:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlotType_$2644_$","typeString":"function (bytes32) pure returns (StorageSlot.BooleanSlotType)"}},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5635:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"functionReturnParameters":2652,"id":2657,"nodeType":"Return","src":"5628:33:11"}]},"documentation":{"id":2645,"nodeType":"StructuredDocumentation","src":"5472:68:11","text":" @dev Cast an arbitrary slot to a BooleanSlotType."},"id":2659,"implemented":true,"kind":"function","modifiers":[],"name":"asBoolean","nameLocation":"5554:9:11","nodeType":"FunctionDefinition","parameters":{"id":2648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2647,"mutability":"mutable","name":"slot","nameLocation":"5572:4:11","nodeType":"VariableDeclaration","scope":2659,"src":"5564:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5564:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5563:14:11"},"returnParameters":{"id":2652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2659,"src":"5601:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2650,"nodeType":"UserDefinedTypeName","pathNode":{"id":2649,"name":"BooleanSlotType","nameLocations":["5601:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2644,"src":"5601:15:11"},"referencedDeclaration":2644,"src":"5601:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"}],"src":"5600:17:11"},"scope":2821,"src":"5545:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Bytes32SlotType","id":2661,"name":"Bytes32SlotType","nameLocation":"5753:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"5748:32:11","underlyingType":{"id":2660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5772:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2675,"nodeType":"Block","src":"5932:50:11","statements":[{"expression":{"arguments":[{"id":2672,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"5970:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2670,"name":"Bytes32SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"5949:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Bytes32SlotType_$2661_$","typeString":"type(StorageSlot.Bytes32SlotType)"}},"id":2671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5965:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"5949:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Bytes32SlotType_$2661_$","typeString":"function (bytes32) pure returns (StorageSlot.Bytes32SlotType)"}},"id":2673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5949:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"functionReturnParameters":2669,"id":2674,"nodeType":"Return","src":"5942:33:11"}]},"documentation":{"id":2662,"nodeType":"StructuredDocumentation","src":"5786:68:11","text":" @dev Cast an arbitrary slot to a Bytes32SlotType."},"id":2676,"implemented":true,"kind":"function","modifiers":[],"name":"asBytes32","nameLocation":"5868:9:11","nodeType":"FunctionDefinition","parameters":{"id":2665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2664,"mutability":"mutable","name":"slot","nameLocation":"5886:4:11","nodeType":"VariableDeclaration","scope":2676,"src":"5878:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5878:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5877:14:11"},"returnParameters":{"id":2669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2676,"src":"5915:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2667,"nodeType":"UserDefinedTypeName","pathNode":{"id":2666,"name":"Bytes32SlotType","nameLocations":["5915:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2661,"src":"5915:15:11"},"referencedDeclaration":2661,"src":"5915:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"}],"src":"5914:17:11"},"scope":2821,"src":"5859:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Uint256SlotType","id":2678,"name":"Uint256SlotType","nameLocation":"6067:15:11","nodeType":"UserDefinedValueTypeDefinition","src":"6062:32:11","underlyingType":{"id":2677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6086:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2692,"nodeType":"Block","src":"6246:50:11","statements":[{"expression":{"arguments":[{"id":2689,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6284:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2687,"name":"Uint256SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"6263:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Uint256SlotType_$2678_$","typeString":"type(StorageSlot.Uint256SlotType)"}},"id":2688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6279:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"6263:20:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Uint256SlotType_$2678_$","typeString":"function (bytes32) pure returns (StorageSlot.Uint256SlotType)"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6263:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"functionReturnParameters":2686,"id":2691,"nodeType":"Return","src":"6256:33:11"}]},"documentation":{"id":2679,"nodeType":"StructuredDocumentation","src":"6100:68:11","text":" @dev Cast an arbitrary slot to a Uint256SlotType."},"id":2693,"implemented":true,"kind":"function","modifiers":[],"name":"asUint256","nameLocation":"6182:9:11","nodeType":"FunctionDefinition","parameters":{"id":2682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2681,"mutability":"mutable","name":"slot","nameLocation":"6200:4:11","nodeType":"VariableDeclaration","scope":2693,"src":"6192:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6192:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6191:14:11"},"returnParameters":{"id":2686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2693,"src":"6229:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2684,"nodeType":"UserDefinedTypeName","pathNode":{"id":2683,"name":"Uint256SlotType","nameLocations":["6229:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2678,"src":"6229:15:11"},"referencedDeclaration":2678,"src":"6229:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"}],"src":"6228:17:11"},"scope":2821,"src":"6173:123:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Int256SlotType","id":2695,"name":"Int256SlotType","nameLocation":"6380:14:11","nodeType":"UserDefinedValueTypeDefinition","src":"6375:31:11","underlyingType":{"id":2694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6398:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2709,"nodeType":"Block","src":"6555:49:11","statements":[{"expression":{"arguments":[{"id":2706,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"6592:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2704,"name":"Int256SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"6572:14:11","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Int256SlotType_$2695_$","typeString":"type(StorageSlot.Int256SlotType)"}},"id":2705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6587:4:11","memberName":"wrap","nodeType":"MemberAccess","src":"6572:19:11","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Int256SlotType_$2695_$","typeString":"function (bytes32) pure returns (StorageSlot.Int256SlotType)"}},"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6572:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"functionReturnParameters":2703,"id":2708,"nodeType":"Return","src":"6565:32:11"}]},"documentation":{"id":2696,"nodeType":"StructuredDocumentation","src":"6412:67:11","text":" @dev Cast an arbitrary slot to a Int256SlotType."},"id":2710,"implemented":true,"kind":"function","modifiers":[],"name":"asInt256","nameLocation":"6493:8:11","nodeType":"FunctionDefinition","parameters":{"id":2699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2698,"mutability":"mutable","name":"slot","nameLocation":"6510:4:11","nodeType":"VariableDeclaration","scope":2710,"src":"6502:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6502:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6501:14:11"},"returnParameters":{"id":2703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2710,"src":"6539:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2701,"nodeType":"UserDefinedTypeName","pathNode":{"id":2700,"name":"Int256SlotType","nameLocations":["6539:14:11"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"6539:14:11"},"referencedDeclaration":2695,"src":"6539:14:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"}],"src":"6538:16:11"},"scope":2821,"src":"6484:120:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2720,"nodeType":"Block","src":"6774:112:11","statements":[{"AST":{"nativeSrc":"6836:44:11","nodeType":"YulBlock","src":"6836:44:11","statements":[{"nativeSrc":"6850:20:11","nodeType":"YulAssignment","src":"6850:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"6865:4:11","nodeType":"YulIdentifier","src":"6865:4:11"}],"functionName":{"name":"tload","nativeSrc":"6859:5:11","nodeType":"YulIdentifier","src":"6859:5:11"},"nativeSrc":"6859:11:11","nodeType":"YulFunctionCall","src":"6859:11:11"},"variableNames":[{"name":"value","nativeSrc":"6850:5:11","nodeType":"YulIdentifier","src":"6850:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2714,"isOffset":false,"isSlot":false,"src":"6865:4:11","valueSize":1},{"declaration":2717,"isOffset":false,"isSlot":false,"src":"6850:5:11","valueSize":1}],"id":2719,"nodeType":"InlineAssembly","src":"6827:53:11"}]},"documentation":{"id":2711,"nodeType":"StructuredDocumentation","src":"6610:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2721,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"6708:5:11","nodeType":"FunctionDefinition","parameters":{"id":2715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2714,"mutability":"mutable","name":"slot","nameLocation":"6730:4:11","nodeType":"VariableDeclaration","scope":2721,"src":"6714:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2713,"nodeType":"UserDefinedTypeName","pathNode":{"id":2712,"name":"AddressSlotType","nameLocations":["6714:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2627,"src":"6714:15:11"},"referencedDeclaration":2627,"src":"6714:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"}],"src":"6713:22:11"},"returnParameters":{"id":2718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2717,"mutability":"mutable","name":"value","nameLocation":"6767:5:11","nodeType":"VariableDeclaration","scope":2721,"src":"6759:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2716,"name":"address","nodeType":"ElementaryTypeName","src":"6759:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6758:15:11"},"scope":2821,"src":"6699:187:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2731,"nodeType":"Block","src":"7037:111:11","statements":[{"AST":{"nativeSrc":"7099:43:11","nodeType":"YulBlock","src":"7099:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"7120:4:11","nodeType":"YulIdentifier","src":"7120:4:11"},{"name":"value","nativeSrc":"7126:5:11","nodeType":"YulIdentifier","src":"7126:5:11"}],"functionName":{"name":"tstore","nativeSrc":"7113:6:11","nodeType":"YulIdentifier","src":"7113:6:11"},"nativeSrc":"7113:19:11","nodeType":"YulFunctionCall","src":"7113:19:11"},"nativeSrc":"7113:19:11","nodeType":"YulExpressionStatement","src":"7113:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2725,"isOffset":false,"isSlot":false,"src":"7120:4:11","valueSize":1},{"declaration":2727,"isOffset":false,"isSlot":false,"src":"7126:5:11","valueSize":1}],"id":2730,"nodeType":"InlineAssembly","src":"7090:52:11"}]},"documentation":{"id":2722,"nodeType":"StructuredDocumentation","src":"6892:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2732,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"6984:6:11","nodeType":"FunctionDefinition","parameters":{"id":2728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2725,"mutability":"mutable","name":"slot","nameLocation":"7007:4:11","nodeType":"VariableDeclaration","scope":2732,"src":"6991:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2724,"nodeType":"UserDefinedTypeName","pathNode":{"id":2723,"name":"AddressSlotType","nameLocations":["6991:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2627,"src":"6991:15:11"},"referencedDeclaration":2627,"src":"6991:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2627","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"},{"constant":false,"id":2727,"mutability":"mutable","name":"value","nameLocation":"7021:5:11","nodeType":"VariableDeclaration","scope":2732,"src":"7013:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2726,"name":"address","nodeType":"ElementaryTypeName","src":"7013:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6990:37:11"},"returnParameters":{"id":2729,"nodeType":"ParameterList","parameters":[],"src":"7037:0:11"},"scope":2821,"src":"6975:173:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2742,"nodeType":"Block","src":"7315:112:11","statements":[{"AST":{"nativeSrc":"7377:44:11","nodeType":"YulBlock","src":"7377:44:11","statements":[{"nativeSrc":"7391:20:11","nodeType":"YulAssignment","src":"7391:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"7406:4:11","nodeType":"YulIdentifier","src":"7406:4:11"}],"functionName":{"name":"tload","nativeSrc":"7400:5:11","nodeType":"YulIdentifier","src":"7400:5:11"},"nativeSrc":"7400:11:11","nodeType":"YulFunctionCall","src":"7400:11:11"},"variableNames":[{"name":"value","nativeSrc":"7391:5:11","nodeType":"YulIdentifier","src":"7391:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2736,"isOffset":false,"isSlot":false,"src":"7406:4:11","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"7391:5:11","valueSize":1}],"id":2741,"nodeType":"InlineAssembly","src":"7368:53:11"}]},"documentation":{"id":2733,"nodeType":"StructuredDocumentation","src":"7154:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2743,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"7252:5:11","nodeType":"FunctionDefinition","parameters":{"id":2737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2736,"mutability":"mutable","name":"slot","nameLocation":"7274:4:11","nodeType":"VariableDeclaration","scope":2743,"src":"7258:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2735,"nodeType":"UserDefinedTypeName","pathNode":{"id":2734,"name":"BooleanSlotType","nameLocations":["7258:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2644,"src":"7258:15:11"},"referencedDeclaration":2644,"src":"7258:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"}],"src":"7257:22:11"},"returnParameters":{"id":2740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2739,"mutability":"mutable","name":"value","nameLocation":"7308:5:11","nodeType":"VariableDeclaration","scope":2743,"src":"7303:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2738,"name":"bool","nodeType":"ElementaryTypeName","src":"7303:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7302:12:11"},"scope":2821,"src":"7243:184:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2753,"nodeType":"Block","src":"7575:111:11","statements":[{"AST":{"nativeSrc":"7637:43:11","nodeType":"YulBlock","src":"7637:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"7658:4:11","nodeType":"YulIdentifier","src":"7658:4:11"},{"name":"value","nativeSrc":"7664:5:11","nodeType":"YulIdentifier","src":"7664:5:11"}],"functionName":{"name":"tstore","nativeSrc":"7651:6:11","nodeType":"YulIdentifier","src":"7651:6:11"},"nativeSrc":"7651:19:11","nodeType":"YulFunctionCall","src":"7651:19:11"},"nativeSrc":"7651:19:11","nodeType":"YulExpressionStatement","src":"7651:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2747,"isOffset":false,"isSlot":false,"src":"7658:4:11","valueSize":1},{"declaration":2749,"isOffset":false,"isSlot":false,"src":"7664:5:11","valueSize":1}],"id":2752,"nodeType":"InlineAssembly","src":"7628:52:11"}]},"documentation":{"id":2744,"nodeType":"StructuredDocumentation","src":"7433:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2754,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"7525:6:11","nodeType":"FunctionDefinition","parameters":{"id":2750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2747,"mutability":"mutable","name":"slot","nameLocation":"7548:4:11","nodeType":"VariableDeclaration","scope":2754,"src":"7532:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2746,"nodeType":"UserDefinedTypeName","pathNode":{"id":2745,"name":"BooleanSlotType","nameLocations":["7532:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2644,"src":"7532:15:11"},"referencedDeclaration":2644,"src":"7532:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2644","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"},{"constant":false,"id":2749,"mutability":"mutable","name":"value","nameLocation":"7559:5:11","nodeType":"VariableDeclaration","scope":2754,"src":"7554:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2748,"name":"bool","nodeType":"ElementaryTypeName","src":"7554:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7531:34:11"},"returnParameters":{"id":2751,"nodeType":"ParameterList","parameters":[],"src":"7575:0:11"},"scope":2821,"src":"7516:170:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2764,"nodeType":"Block","src":"7856:112:11","statements":[{"AST":{"nativeSrc":"7918:44:11","nodeType":"YulBlock","src":"7918:44:11","statements":[{"nativeSrc":"7932:20:11","nodeType":"YulAssignment","src":"7932:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"7947:4:11","nodeType":"YulIdentifier","src":"7947:4:11"}],"functionName":{"name":"tload","nativeSrc":"7941:5:11","nodeType":"YulIdentifier","src":"7941:5:11"},"nativeSrc":"7941:11:11","nodeType":"YulFunctionCall","src":"7941:11:11"},"variableNames":[{"name":"value","nativeSrc":"7932:5:11","nodeType":"YulIdentifier","src":"7932:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2758,"isOffset":false,"isSlot":false,"src":"7947:4:11","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"7932:5:11","valueSize":1}],"id":2763,"nodeType":"InlineAssembly","src":"7909:53:11"}]},"documentation":{"id":2755,"nodeType":"StructuredDocumentation","src":"7692:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2765,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"7790:5:11","nodeType":"FunctionDefinition","parameters":{"id":2759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2758,"mutability":"mutable","name":"slot","nameLocation":"7812:4:11","nodeType":"VariableDeclaration","scope":2765,"src":"7796:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2757,"nodeType":"UserDefinedTypeName","pathNode":{"id":2756,"name":"Bytes32SlotType","nameLocations":["7796:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2661,"src":"7796:15:11"},"referencedDeclaration":2661,"src":"7796:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"}],"src":"7795:22:11"},"returnParameters":{"id":2762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2761,"mutability":"mutable","name":"value","nameLocation":"7849:5:11","nodeType":"VariableDeclaration","scope":2765,"src":"7841:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7841:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7840:15:11"},"scope":2821,"src":"7781:187:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2775,"nodeType":"Block","src":"8119:111:11","statements":[{"AST":{"nativeSrc":"8181:43:11","nodeType":"YulBlock","src":"8181:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"8202:4:11","nodeType":"YulIdentifier","src":"8202:4:11"},{"name":"value","nativeSrc":"8208:5:11","nodeType":"YulIdentifier","src":"8208:5:11"}],"functionName":{"name":"tstore","nativeSrc":"8195:6:11","nodeType":"YulIdentifier","src":"8195:6:11"},"nativeSrc":"8195:19:11","nodeType":"YulFunctionCall","src":"8195:19:11"},"nativeSrc":"8195:19:11","nodeType":"YulExpressionStatement","src":"8195:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2769,"isOffset":false,"isSlot":false,"src":"8202:4:11","valueSize":1},{"declaration":2771,"isOffset":false,"isSlot":false,"src":"8208:5:11","valueSize":1}],"id":2774,"nodeType":"InlineAssembly","src":"8172:52:11"}]},"documentation":{"id":2766,"nodeType":"StructuredDocumentation","src":"7974:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2776,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"8066:6:11","nodeType":"FunctionDefinition","parameters":{"id":2772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2769,"mutability":"mutable","name":"slot","nameLocation":"8089:4:11","nodeType":"VariableDeclaration","scope":2776,"src":"8073:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2768,"nodeType":"UserDefinedTypeName","pathNode":{"id":2767,"name":"Bytes32SlotType","nameLocations":["8073:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2661,"src":"8073:15:11"},"referencedDeclaration":2661,"src":"8073:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2661","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"},{"constant":false,"id":2771,"mutability":"mutable","name":"value","nameLocation":"8103:5:11","nodeType":"VariableDeclaration","scope":2776,"src":"8095:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8095:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8072:37:11"},"returnParameters":{"id":2773,"nodeType":"ParameterList","parameters":[],"src":"8119:0:11"},"scope":2821,"src":"8057:173:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2786,"nodeType":"Block","src":"8400:112:11","statements":[{"AST":{"nativeSrc":"8462:44:11","nodeType":"YulBlock","src":"8462:44:11","statements":[{"nativeSrc":"8476:20:11","nodeType":"YulAssignment","src":"8476:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"8491:4:11","nodeType":"YulIdentifier","src":"8491:4:11"}],"functionName":{"name":"tload","nativeSrc":"8485:5:11","nodeType":"YulIdentifier","src":"8485:5:11"},"nativeSrc":"8485:11:11","nodeType":"YulFunctionCall","src":"8485:11:11"},"variableNames":[{"name":"value","nativeSrc":"8476:5:11","nodeType":"YulIdentifier","src":"8476:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2780,"isOffset":false,"isSlot":false,"src":"8491:4:11","valueSize":1},{"declaration":2783,"isOffset":false,"isSlot":false,"src":"8476:5:11","valueSize":1}],"id":2785,"nodeType":"InlineAssembly","src":"8453:53:11"}]},"documentation":{"id":2777,"nodeType":"StructuredDocumentation","src":"8236:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2787,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"8334:5:11","nodeType":"FunctionDefinition","parameters":{"id":2781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2780,"mutability":"mutable","name":"slot","nameLocation":"8356:4:11","nodeType":"VariableDeclaration","scope":2787,"src":"8340:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2779,"nodeType":"UserDefinedTypeName","pathNode":{"id":2778,"name":"Uint256SlotType","nameLocations":["8340:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2678,"src":"8340:15:11"},"referencedDeclaration":2678,"src":"8340:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"}],"src":"8339:22:11"},"returnParameters":{"id":2784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2783,"mutability":"mutable","name":"value","nameLocation":"8393:5:11","nodeType":"VariableDeclaration","scope":2787,"src":"8385:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2782,"name":"uint256","nodeType":"ElementaryTypeName","src":"8385:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8384:15:11"},"scope":2821,"src":"8325:187:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2797,"nodeType":"Block","src":"8663:111:11","statements":[{"AST":{"nativeSrc":"8725:43:11","nodeType":"YulBlock","src":"8725:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"8746:4:11","nodeType":"YulIdentifier","src":"8746:4:11"},{"name":"value","nativeSrc":"8752:5:11","nodeType":"YulIdentifier","src":"8752:5:11"}],"functionName":{"name":"tstore","nativeSrc":"8739:6:11","nodeType":"YulIdentifier","src":"8739:6:11"},"nativeSrc":"8739:19:11","nodeType":"YulFunctionCall","src":"8739:19:11"},"nativeSrc":"8739:19:11","nodeType":"YulExpressionStatement","src":"8739:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2791,"isOffset":false,"isSlot":false,"src":"8746:4:11","valueSize":1},{"declaration":2793,"isOffset":false,"isSlot":false,"src":"8752:5:11","valueSize":1}],"id":2796,"nodeType":"InlineAssembly","src":"8716:52:11"}]},"documentation":{"id":2788,"nodeType":"StructuredDocumentation","src":"8518:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2798,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"8610:6:11","nodeType":"FunctionDefinition","parameters":{"id":2794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2791,"mutability":"mutable","name":"slot","nameLocation":"8633:4:11","nodeType":"VariableDeclaration","scope":2798,"src":"8617:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2790,"nodeType":"UserDefinedTypeName","pathNode":{"id":2789,"name":"Uint256SlotType","nameLocations":["8617:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":2678,"src":"8617:15:11"},"referencedDeclaration":2678,"src":"8617:15:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2678","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"},{"constant":false,"id":2793,"mutability":"mutable","name":"value","nameLocation":"8647:5:11","nodeType":"VariableDeclaration","scope":2798,"src":"8639:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2792,"name":"uint256","nodeType":"ElementaryTypeName","src":"8639:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8616:37:11"},"returnParameters":{"id":2795,"nodeType":"ParameterList","parameters":[],"src":"8663:0:11"},"scope":2821,"src":"8601:173:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2808,"nodeType":"Block","src":"8942:112:11","statements":[{"AST":{"nativeSrc":"9004:44:11","nodeType":"YulBlock","src":"9004:44:11","statements":[{"nativeSrc":"9018:20:11","nodeType":"YulAssignment","src":"9018:20:11","value":{"arguments":[{"name":"slot","nativeSrc":"9033:4:11","nodeType":"YulIdentifier","src":"9033:4:11"}],"functionName":{"name":"tload","nativeSrc":"9027:5:11","nodeType":"YulIdentifier","src":"9027:5:11"},"nativeSrc":"9027:11:11","nodeType":"YulFunctionCall","src":"9027:11:11"},"variableNames":[{"name":"value","nativeSrc":"9018:5:11","nodeType":"YulIdentifier","src":"9018:5:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2802,"isOffset":false,"isSlot":false,"src":"9033:4:11","valueSize":1},{"declaration":2805,"isOffset":false,"isSlot":false,"src":"9018:5:11","valueSize":1}],"id":2807,"nodeType":"InlineAssembly","src":"8995:53:11"}]},"documentation":{"id":2799,"nodeType":"StructuredDocumentation","src":"8780:84:11","text":" @dev Load the value held at location `slot` in transient storage."},"id":2809,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"8878:5:11","nodeType":"FunctionDefinition","parameters":{"id":2803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"slot","nameLocation":"8899:4:11","nodeType":"VariableDeclaration","scope":2809,"src":"8884:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2801,"nodeType":"UserDefinedTypeName","pathNode":{"id":2800,"name":"Int256SlotType","nameLocations":["8884:14:11"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"8884:14:11"},"referencedDeclaration":2695,"src":"8884:14:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"}],"src":"8883:21:11"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2805,"mutability":"mutable","name":"value","nameLocation":"8935:5:11","nodeType":"VariableDeclaration","scope":2809,"src":"8928:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2804,"name":"int256","nodeType":"ElementaryTypeName","src":"8928:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8927:14:11"},"scope":2821,"src":"8869:185:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2819,"nodeType":"Block","src":"9203:111:11","statements":[{"AST":{"nativeSrc":"9265:43:11","nodeType":"YulBlock","src":"9265:43:11","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"9286:4:11","nodeType":"YulIdentifier","src":"9286:4:11"},{"name":"value","nativeSrc":"9292:5:11","nodeType":"YulIdentifier","src":"9292:5:11"}],"functionName":{"name":"tstore","nativeSrc":"9279:6:11","nodeType":"YulIdentifier","src":"9279:6:11"},"nativeSrc":"9279:19:11","nodeType":"YulFunctionCall","src":"9279:19:11"},"nativeSrc":"9279:19:11","nodeType":"YulExpressionStatement","src":"9279:19:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2813,"isOffset":false,"isSlot":false,"src":"9286:4:11","valueSize":1},{"declaration":2815,"isOffset":false,"isSlot":false,"src":"9292:5:11","valueSize":1}],"id":2818,"nodeType":"InlineAssembly","src":"9256:52:11"}]},"documentation":{"id":2810,"nodeType":"StructuredDocumentation","src":"9060:78:11","text":" @dev Store `value` at location `slot` in transient storage."},"id":2820,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"9152:6:11","nodeType":"FunctionDefinition","parameters":{"id":2816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2813,"mutability":"mutable","name":"slot","nameLocation":"9174:4:11","nodeType":"VariableDeclaration","scope":2820,"src":"9159:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2812,"nodeType":"UserDefinedTypeName","pathNode":{"id":2811,"name":"Int256SlotType","nameLocations":["9159:14:11"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"9159:14:11"},"referencedDeclaration":2695,"src":"9159:14:11","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2695","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"},{"constant":false,"id":2815,"mutability":"mutable","name":"value","nameLocation":"9187:5:11","nodeType":"VariableDeclaration","scope":2820,"src":"9180:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2814,"name":"int256","nodeType":"ElementaryTypeName","src":"9180:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9158:35:11"},"returnParameters":{"id":2817,"nodeType":"ParameterList","parameters":[],"src":"9203:0:11"},"scope":2821,"src":"9143:171:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2822,"src":"2022:7294:11","usedErrors":[],"usedEvents":[]}],"src":"193:9124:11"},"id":11},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[2845],"IERC165":[2857]},"id":2846,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2823,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:12"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":2825,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2846,"sourceUnit":2858,"src":"140:38:12","symbolAliases":[{"foreign":{"id":2824,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"148:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2827,"name":"IERC165","nameLocations":["688:7:12"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"688:7:12"},"id":2828,"nodeType":"InheritanceSpecifier","src":"688:7:12"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":2826,"nodeType":"StructuredDocumentation","src":"180:479:12","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":2845,"linearizedBaseContracts":[2845,2857],"name":"ERC165","nameLocation":"678:6:12","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[2856],"body":{"id":2843,"nodeType":"Block","src":"845:64:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2836,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"862:11:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2838,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"882:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$2857_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$2857_$","typeString":"type(contract IERC165)"}],"id":2837,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"877:4:12","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"877:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$2857","typeString":"type(contract IERC165)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"891:11:12","memberName":"interfaceId","nodeType":"MemberAccess","src":"877:25:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"862:40:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2835,"id":2842,"nodeType":"Return","src":"855:47:12"}]},"documentation":{"id":2829,"nodeType":"StructuredDocumentation","src":"702:56:12","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2844,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"772:17:12","nodeType":"FunctionDefinition","parameters":{"id":2832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2831,"mutability":"mutable","name":"interfaceId","nameLocation":"797:11:12","nodeType":"VariableDeclaration","scope":2844,"src":"790:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2830,"name":"bytes4","nodeType":"ElementaryTypeName","src":"790:6:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"789:20:12"},"returnParameters":{"id":2835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2844,"src":"839:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2833,"name":"bool","nodeType":"ElementaryTypeName","src":"839:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"838:6:12"},"scope":2845,"src":"763:146:12","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2846,"src":"660:251:12","usedErrors":[],"usedEvents":[]}],"src":"114:798:12"},"id":12},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[2857]},"id":2858,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2847,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:13"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":2848,"nodeType":"StructuredDocumentation","src":"141:280:13","text":" @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":2857,"linearizedBaseContracts":[2857],"name":"IERC165","nameLocation":"432:7:13","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2849,"nodeType":"StructuredDocumentation","src":"446: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[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":2856,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"800:17:13","nodeType":"FunctionDefinition","parameters":{"id":2852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2851,"mutability":"mutable","name":"interfaceId","nameLocation":"825:11:13","nodeType":"VariableDeclaration","scope":2856,"src":"818:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2850,"name":"bytes4","nodeType":"ElementaryTypeName","src":"818:6:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"817:20:13"},"returnParameters":{"id":2855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2856,"src":"861:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2853,"name":"bool","nodeType":"ElementaryTypeName","src":"861:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"860:6:13"},"scope":2857,"src":"791:76:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2858,"src":"422:447:13","usedErrors":[],"usedEvents":[]}],"src":"115:755:13"},"id":13},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[4442],"Panic":[2372],"SafeCast":[6207]},"id":4443,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2859,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:14"},{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","file":"../Panic.sol","id":2861,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4443,"sourceUnit":2373,"src":"129:35:14","symbolAliases":[{"foreign":{"id":2860,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"137:5:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./SafeCast.sol","id":2863,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4443,"sourceUnit":6208,"src":"165:40:14","symbolAliases":[{"foreign":{"id":2862,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"173:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2864,"nodeType":"StructuredDocumentation","src":"207:73:14","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4442,"linearizedBaseContracts":[4442],"name":"Math","nameLocation":"289:4:14","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":2869,"members":[{"id":2865,"name":"Floor","nameLocation":"324:5:14","nodeType":"EnumValue","src":"324:5:14"},{"id":2866,"name":"Ceil","nameLocation":"367:4:14","nodeType":"EnumValue","src":"367:4:14"},{"id":2867,"name":"Trunc","nameLocation":"409:5:14","nodeType":"EnumValue","src":"409:5:14"},{"id":2868,"name":"Expand","nameLocation":"439:6:14","nodeType":"EnumValue","src":"439:6:14"}],"name":"Rounding","nameLocation":"305:8:14","nodeType":"EnumDefinition","src":"300:169:14"},{"body":{"id":2900,"nodeType":"Block","src":"677:140:14","statements":[{"id":2899,"nodeType":"UncheckedBlock","src":"687:124:14","statements":[{"assignments":[2882],"declarations":[{"constant":false,"id":2882,"mutability":"mutable","name":"c","nameLocation":"719:1:14","nodeType":"VariableDeclaration","scope":2899,"src":"711:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2881,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2886,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2883,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"723:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2884,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"727:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"723:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:17:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2887,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"746:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2888,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"750:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"746:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2894,"nodeType":"IfStatement","src":"742:28:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"761:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"768:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2892,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"760:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2880,"id":2893,"nodeType":"Return","src":"753:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"792:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2896,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"798:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2897,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"791:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2880,"id":2898,"nodeType":"Return","src":"784:16:14"}]}]},"documentation":{"id":2870,"nodeType":"StructuredDocumentation","src":"475:106:14","text":" @dev Returns the addition of two unsigned integers, with an success flag (no overflow)."},"id":2901,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"595:6:14","nodeType":"FunctionDefinition","parameters":{"id":2875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2872,"mutability":"mutable","name":"a","nameLocation":"610:1:14","nodeType":"VariableDeclaration","scope":2901,"src":"602:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2871,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2874,"mutability":"mutable","name":"b","nameLocation":"621:1:14","nodeType":"VariableDeclaration","scope":2901,"src":"613:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2873,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:22:14"},"returnParameters":{"id":2880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2877,"mutability":"mutable","name":"success","nameLocation":"652:7:14","nodeType":"VariableDeclaration","scope":2901,"src":"647:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2876,"name":"bool","nodeType":"ElementaryTypeName","src":"647:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2879,"mutability":"mutable","name":"result","nameLocation":"669:6:14","nodeType":"VariableDeclaration","scope":2901,"src":"661:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2878,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:30:14"},"scope":4442,"src":"586:231:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2928,"nodeType":"Block","src":"1028:113:14","statements":[{"id":2927,"nodeType":"UncheckedBlock","src":"1038:97:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2913,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2906,"src":"1066:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2914,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"1070:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1066:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2920,"nodeType":"IfStatement","src":"1062:28:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1081:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2918,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1080:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2912,"id":2919,"nodeType":"Return","src":"1073:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1112:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2922,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"1118:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2923,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2906,"src":"1122:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1118:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2925,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1111:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2912,"id":2926,"nodeType":"Return","src":"1104:20:14"}]}]},"documentation":{"id":2902,"nodeType":"StructuredDocumentation","src":"823:109:14","text":" @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow)."},"id":2929,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:14","nodeType":"FunctionDefinition","parameters":{"id":2907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2904,"mutability":"mutable","name":"a","nameLocation":"961:1:14","nodeType":"VariableDeclaration","scope":2929,"src":"953:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2903,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2906,"mutability":"mutable","name":"b","nameLocation":"972:1:14","nodeType":"VariableDeclaration","scope":2929,"src":"964:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2905,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:14"},"returnParameters":{"id":2912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2909,"mutability":"mutable","name":"success","nameLocation":"1003:7:14","nodeType":"VariableDeclaration","scope":2929,"src":"998:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2908,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2911,"mutability":"mutable","name":"result","nameLocation":"1020:6:14","nodeType":"VariableDeclaration","scope":2929,"src":"1012:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2910,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:30:14"},"scope":4442,"src":"937:204:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2970,"nodeType":"Block","src":"1355:417:14","statements":[{"id":2969,"nodeType":"UncheckedBlock","src":"1365:401:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2941,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"1623:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1623:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2948,"nodeType":"IfStatement","src":"1619:28:14","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":2944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1639:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":2945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2946,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1638:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2940,"id":2947,"nodeType":"Return","src":"1631:16:14"}},{"assignments":[2950],"declarations":[{"constant":false,"id":2950,"mutability":"mutable","name":"c","nameLocation":"1669:1:14","nodeType":"VariableDeclaration","scope":2969,"src":"1661:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2949,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2954,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2951,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"1673:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2952,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2934,"src":"1677:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1673:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1661:17:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2955,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2950,"src":"1696:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2956,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"1700:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2958,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2934,"src":"1705:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2964,"nodeType":"IfStatement","src":"1692:33:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1716:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1723:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1715:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2940,"id":2963,"nodeType":"Return","src":"1708:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1747:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2966,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2950,"src":"1753:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2967,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1746:9:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2940,"id":2968,"nodeType":"Return","src":"1739:16:14"}]}]},"documentation":{"id":2930,"nodeType":"StructuredDocumentation","src":"1147:112:14","text":" @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow)."},"id":2971,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1273:6:14","nodeType":"FunctionDefinition","parameters":{"id":2935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2932,"mutability":"mutable","name":"a","nameLocation":"1288:1:14","nodeType":"VariableDeclaration","scope":2971,"src":"1280:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2931,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2934,"mutability":"mutable","name":"b","nameLocation":"1299:1:14","nodeType":"VariableDeclaration","scope":2971,"src":"1291:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1279:22:14"},"returnParameters":{"id":2940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2937,"mutability":"mutable","name":"success","nameLocation":"1330:7:14","nodeType":"VariableDeclaration","scope":2971,"src":"1325:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2936,"name":"bool","nodeType":"ElementaryTypeName","src":"1325:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2939,"mutability":"mutable","name":"result","nameLocation":"1347:6:14","nodeType":"VariableDeclaration","scope":2971,"src":"1339:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2938,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1324:30:14"},"scope":4442,"src":"1264:508:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2998,"nodeType":"Block","src":"1987:114:14","statements":[{"id":2997,"nodeType":"UncheckedBlock","src":"1997:98:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2983,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"2025:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2030:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2025:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2990,"nodeType":"IfStatement","src":"2021:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2041:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2048:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2988,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2040:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2982,"id":2989,"nodeType":"Return","src":"2033:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":2991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2072:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2992,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2974,"src":"2078:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2993,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"2082:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2078:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2995,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2071:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2982,"id":2996,"nodeType":"Return","src":"2064:20:14"}]}]},"documentation":{"id":2972,"nodeType":"StructuredDocumentation","src":"1778:113:14","text":" @dev Returns the division of two unsigned integers, with a success flag (no division by zero)."},"id":2999,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1905:6:14","nodeType":"FunctionDefinition","parameters":{"id":2977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2974,"mutability":"mutable","name":"a","nameLocation":"1920:1:14","nodeType":"VariableDeclaration","scope":2999,"src":"1912:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2976,"mutability":"mutable","name":"b","nameLocation":"1931:1:14","nodeType":"VariableDeclaration","scope":2999,"src":"1923:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2975,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1911:22:14"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2979,"mutability":"mutable","name":"success","nameLocation":"1962:7:14","nodeType":"VariableDeclaration","scope":2999,"src":"1957:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2978,"name":"bool","nodeType":"ElementaryTypeName","src":"1957:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2981,"mutability":"mutable","name":"result","nameLocation":"1979:6:14","nodeType":"VariableDeclaration","scope":2999,"src":"1971:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2980,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1956:30:14"},"scope":4442,"src":"1896:205:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3026,"nodeType":"Block","src":"2326:114:14","statements":[{"id":3025,"nodeType":"UncheckedBlock","src":"2336:98:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3011,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3004,"src":"2364:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2369:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3018,"nodeType":"IfStatement","src":"2360:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2380:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2387:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3016,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2379:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3010,"id":3017,"nodeType":"Return","src":"2372:17:14"}},{"expression":{"components":[{"hexValue":"74727565","id":3019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2411:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3020,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"2417:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3021,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3004,"src":"2421:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2417:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2410:13:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3010,"id":3024,"nodeType":"Return","src":"2403:20:14"}]}]},"documentation":{"id":3000,"nodeType":"StructuredDocumentation","src":"2107:123:14","text":" @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)."},"id":3027,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2244:6:14","nodeType":"FunctionDefinition","parameters":{"id":3005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3002,"mutability":"mutable","name":"a","nameLocation":"2259:1:14","nodeType":"VariableDeclaration","scope":3027,"src":"2251:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3001,"name":"uint256","nodeType":"ElementaryTypeName","src":"2251:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3004,"mutability":"mutable","name":"b","nameLocation":"2270:1:14","nodeType":"VariableDeclaration","scope":3027,"src":"2262:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3003,"name":"uint256","nodeType":"ElementaryTypeName","src":"2262:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2250:22:14"},"returnParameters":{"id":3010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3007,"mutability":"mutable","name":"success","nameLocation":"2301:7:14","nodeType":"VariableDeclaration","scope":3027,"src":"2296:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3006,"name":"bool","nodeType":"ElementaryTypeName","src":"2296:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3009,"mutability":"mutable","name":"result","nameLocation":"2318:6:14","nodeType":"VariableDeclaration","scope":3027,"src":"2310:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3008,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2295:30:14"},"scope":4442,"src":"2235:205:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3053,"nodeType":"Block","src":"2912:207:14","statements":[{"id":3052,"nodeType":"UncheckedBlock","src":"2922:191:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3039,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3034,"src":"3060:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3040,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"3066:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3041,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3034,"src":"3070:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3066:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3065:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":3046,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"3091:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3044,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"3075:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3084:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"3075:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3075:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3065:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3064:38:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:42:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3038,"id":3051,"nodeType":"Return","src":"3053:49:14"}]}]},"documentation":{"id":3028,"nodeType":"StructuredDocumentation","src":"2446:374:14","text":" @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."},"id":3054,"implemented":true,"kind":"function","modifiers":[],"name":"ternary","nameLocation":"2834:7:14","nodeType":"FunctionDefinition","parameters":{"id":3035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3030,"mutability":"mutable","name":"condition","nameLocation":"2847:9:14","nodeType":"VariableDeclaration","scope":3054,"src":"2842:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3029,"name":"bool","nodeType":"ElementaryTypeName","src":"2842:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3032,"mutability":"mutable","name":"a","nameLocation":"2866:1:14","nodeType":"VariableDeclaration","scope":3054,"src":"2858:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3031,"name":"uint256","nodeType":"ElementaryTypeName","src":"2858:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3034,"mutability":"mutable","name":"b","nameLocation":"2877:1:14","nodeType":"VariableDeclaration","scope":3054,"src":"2869:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3033,"name":"uint256","nodeType":"ElementaryTypeName","src":"2869:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:38:14"},"returnParameters":{"id":3038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3054,"src":"2903:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3036,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2902:9:14"},"scope":4442,"src":"2825:294:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3072,"nodeType":"Block","src":"3256:44:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3065,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3057,"src":"3281:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3066,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3059,"src":"3285:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3281:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3068,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3057,"src":"3288:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3069,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3059,"src":"3291:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3064,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"3273:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3273:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3063,"id":3071,"nodeType":"Return","src":"3266:27:14"}]},"documentation":{"id":3055,"nodeType":"StructuredDocumentation","src":"3125:59:14","text":" @dev Returns the largest of two numbers."},"id":3073,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3198:3:14","nodeType":"FunctionDefinition","parameters":{"id":3060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3057,"mutability":"mutable","name":"a","nameLocation":"3210:1:14","nodeType":"VariableDeclaration","scope":3073,"src":"3202:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3056,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3059,"mutability":"mutable","name":"b","nameLocation":"3221:1:14","nodeType":"VariableDeclaration","scope":3073,"src":"3213:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3058,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3201:22:14"},"returnParameters":{"id":3063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3073,"src":"3247:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3061,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3246:9:14"},"scope":4442,"src":"3189:111:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3091,"nodeType":"Block","src":"3438:44:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3084,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3076,"src":"3463:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3085,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3078,"src":"3467:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3463:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3076,"src":"3470:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3088,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3078,"src":"3473:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3083,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"3455:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3082,"id":3090,"nodeType":"Return","src":"3448:27:14"}]},"documentation":{"id":3074,"nodeType":"StructuredDocumentation","src":"3306:60:14","text":" @dev Returns the smallest of two numbers."},"id":3092,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3380:3:14","nodeType":"FunctionDefinition","parameters":{"id":3079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3076,"mutability":"mutable","name":"a","nameLocation":"3392:1:14","nodeType":"VariableDeclaration","scope":3092,"src":"3384:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3078,"mutability":"mutable","name":"b","nameLocation":"3403:1:14","nodeType":"VariableDeclaration","scope":3092,"src":"3395:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3077,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3383:22:14"},"returnParameters":{"id":3082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3092,"src":"3429:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3080,"name":"uint256","nodeType":"ElementaryTypeName","src":"3429:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3428:9:14"},"scope":4442,"src":"3371:111:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3114,"nodeType":"Block","src":"3666:82:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3102,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"3721:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3103,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3725:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3721:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3105,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3720:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3106,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"3731:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3107,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3735:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3731:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3730:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":3110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3740:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3730:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3720:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3101,"id":3113,"nodeType":"Return","src":"3713:28:14"}]},"documentation":{"id":3093,"nodeType":"StructuredDocumentation","src":"3488:102:14","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":3115,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"3604:7:14","nodeType":"FunctionDefinition","parameters":{"id":3098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3095,"mutability":"mutable","name":"a","nameLocation":"3620:1:14","nodeType":"VariableDeclaration","scope":3115,"src":"3612:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3094,"name":"uint256","nodeType":"ElementaryTypeName","src":"3612:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3097,"mutability":"mutable","name":"b","nameLocation":"3631:1:14","nodeType":"VariableDeclaration","scope":3115,"src":"3623:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3623:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3611:22:14"},"returnParameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3115,"src":"3657:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3656:9:14"},"scope":4442,"src":"3595:153:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3155,"nodeType":"Block","src":"4040:633:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3125,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"4054:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4059:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4054:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3136,"nodeType":"IfStatement","src":"4050:150:14","trueBody":{"id":3135,"nodeType":"Block","src":"4062:138:14","statements":[{"expression":{"arguments":[{"expression":{"id":3131,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4166:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4172:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"4166:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3128,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"4154:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4160:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"4154:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3134,"nodeType":"ExpressionStatement","src":"4154:35:14"}]}},{"id":3154,"nodeType":"UncheckedBlock","src":"4583:84:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3139,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"4630:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4634:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4630:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3137,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"4614:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"4614:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4614:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3143,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"4641:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4645:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4641:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3146,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4640:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3147,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"4650:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4640:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4654:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4640:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4639:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4614:42:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3124,"id":3153,"nodeType":"Return","src":"4607:49:14"}]}]},"documentation":{"id":3116,"nodeType":"StructuredDocumentation","src":"3754: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":3156,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3978:7:14","nodeType":"FunctionDefinition","parameters":{"id":3121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3118,"mutability":"mutable","name":"a","nameLocation":"3994:1:14","nodeType":"VariableDeclaration","scope":3156,"src":"3986:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3120,"mutability":"mutable","name":"b","nameLocation":"4005:1:14","nodeType":"VariableDeclaration","scope":3156,"src":"3997:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3119,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3985:22:14"},"returnParameters":{"id":3124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3156,"src":"4031:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3122,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4030:9:14"},"scope":4442,"src":"3969:704:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3292,"nodeType":"Block","src":"5094:4132:14","statements":[{"id":3291,"nodeType":"UncheckedBlock","src":"5104:4116:14","statements":[{"assignments":[3169],"declarations":[{"constant":false,"id":3169,"mutability":"mutable","name":"prod0","nameLocation":"5445:5:14","nodeType":"VariableDeclaration","scope":3291,"src":"5437:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3168,"name":"uint256","nodeType":"ElementaryTypeName","src":"5437:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3173,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3170,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3159,"src":"5453:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3171,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"5457:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5453:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5437:21:14"},{"assignments":[3175],"declarations":[{"constant":false,"id":3175,"mutability":"mutable","name":"prod1","nameLocation":"5525:5:14","nodeType":"VariableDeclaration","scope":3291,"src":"5517:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3174,"name":"uint256","nodeType":"ElementaryTypeName","src":"5517:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3176,"nodeType":"VariableDeclarationStatement","src":"5517:13:14"},{"AST":{"nativeSrc":"5597:122:14","nodeType":"YulBlock","src":"5597:122:14","statements":[{"nativeSrc":"5615:30:14","nodeType":"YulVariableDeclaration","src":"5615:30:14","value":{"arguments":[{"name":"x","nativeSrc":"5632:1:14","nodeType":"YulIdentifier","src":"5632:1:14"},{"name":"y","nativeSrc":"5635:1:14","nodeType":"YulIdentifier","src":"5635:1:14"},{"arguments":[{"kind":"number","nativeSrc":"5642:1:14","nodeType":"YulLiteral","src":"5642:1:14","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"5638:3:14","nodeType":"YulIdentifier","src":"5638:3:14"},"nativeSrc":"5638:6:14","nodeType":"YulFunctionCall","src":"5638:6:14"}],"functionName":{"name":"mulmod","nativeSrc":"5625:6:14","nodeType":"YulIdentifier","src":"5625:6:14"},"nativeSrc":"5625:20:14","nodeType":"YulFunctionCall","src":"5625:20:14"},"variables":[{"name":"mm","nativeSrc":"5619:2:14","nodeType":"YulTypedName","src":"5619:2:14","type":""}]},{"nativeSrc":"5662:43:14","nodeType":"YulAssignment","src":"5662:43:14","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"5679:2:14","nodeType":"YulIdentifier","src":"5679:2:14"},{"name":"prod0","nativeSrc":"5683:5:14","nodeType":"YulIdentifier","src":"5683:5:14"}],"functionName":{"name":"sub","nativeSrc":"5675:3:14","nodeType":"YulIdentifier","src":"5675:3:14"},"nativeSrc":"5675:14:14","nodeType":"YulFunctionCall","src":"5675:14:14"},{"arguments":[{"name":"mm","nativeSrc":"5694:2:14","nodeType":"YulIdentifier","src":"5694:2:14"},{"name":"prod0","nativeSrc":"5698:5:14","nodeType":"YulIdentifier","src":"5698:5:14"}],"functionName":{"name":"lt","nativeSrc":"5691:2:14","nodeType":"YulIdentifier","src":"5691:2:14"},"nativeSrc":"5691:13:14","nodeType":"YulFunctionCall","src":"5691:13:14"}],"functionName":{"name":"sub","nativeSrc":"5671:3:14","nodeType":"YulIdentifier","src":"5671:3:14"},"nativeSrc":"5671:34:14","nodeType":"YulFunctionCall","src":"5671:34:14"},"variableNames":[{"name":"prod1","nativeSrc":"5662:5:14","nodeType":"YulIdentifier","src":"5662:5:14"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3169,"isOffset":false,"isSlot":false,"src":"5683:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"5698:5:14","valueSize":1},{"declaration":3175,"isOffset":false,"isSlot":false,"src":"5662:5:14","valueSize":1},{"declaration":3159,"isOffset":false,"isSlot":false,"src":"5632:1:14","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"5635:1:14","valueSize":1}],"id":3177,"nodeType":"InlineAssembly","src":"5588:131:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3178,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3175,"src":"5800:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5809:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5800:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3186,"nodeType":"IfStatement","src":"5796:368:14","trueBody":{"id":3185,"nodeType":"Block","src":"5812:352:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3181,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"6130:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3182,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"6138:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6130:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3167,"id":3184,"nodeType":"Return","src":"6123:26:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3187,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"6274:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3188,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3175,"src":"6289:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6274:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3205,"nodeType":"IfStatement","src":"6270:143:14","trueBody":{"id":3204,"nodeType":"Block","src":"6296:117:14","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3194,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"6334:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6349:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6334:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":3197,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"6352:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6358:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"6352:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3199,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"6376:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6382:14:14","memberName":"UNDER_OVERFLOW","nodeType":"MemberAccess","referencedDeclaration":2335,"src":"6376:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3193,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"6326:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6326:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3190,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"6314:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6320:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"6314:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6314:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3203,"nodeType":"ExpressionStatement","src":"6314:84:14"}]}},{"assignments":[3207],"declarations":[{"constant":false,"id":3207,"mutability":"mutable","name":"remainder","nameLocation":"6676:9:14","nodeType":"VariableDeclaration","scope":3291,"src":"6668:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3206,"name":"uint256","nodeType":"ElementaryTypeName","src":"6668:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3208,"nodeType":"VariableDeclarationStatement","src":"6668:17:14"},{"AST":{"nativeSrc":"6708:291:14","nodeType":"YulBlock","src":"6708:291:14","statements":[{"nativeSrc":"6777:38:14","nodeType":"YulAssignment","src":"6777:38:14","value":{"arguments":[{"name":"x","nativeSrc":"6797:1:14","nodeType":"YulIdentifier","src":"6797:1:14"},{"name":"y","nativeSrc":"6800:1:14","nodeType":"YulIdentifier","src":"6800:1:14"},{"name":"denominator","nativeSrc":"6803:11:14","nodeType":"YulIdentifier","src":"6803:11:14"}],"functionName":{"name":"mulmod","nativeSrc":"6790:6:14","nodeType":"YulIdentifier","src":"6790:6:14"},"nativeSrc":"6790:25:14","nodeType":"YulFunctionCall","src":"6790:25:14"},"variableNames":[{"name":"remainder","nativeSrc":"6777:9:14","nodeType":"YulIdentifier","src":"6777:9:14"}]},{"nativeSrc":"6897:41:14","nodeType":"YulAssignment","src":"6897:41:14","value":{"arguments":[{"name":"prod1","nativeSrc":"6910:5:14","nodeType":"YulIdentifier","src":"6910:5:14"},{"arguments":[{"name":"remainder","nativeSrc":"6920:9:14","nodeType":"YulIdentifier","src":"6920:9:14"},{"name":"prod0","nativeSrc":"6931:5:14","nodeType":"YulIdentifier","src":"6931:5:14"}],"functionName":{"name":"gt","nativeSrc":"6917:2:14","nodeType":"YulIdentifier","src":"6917:2:14"},"nativeSrc":"6917:20:14","nodeType":"YulFunctionCall","src":"6917:20:14"}],"functionName":{"name":"sub","nativeSrc":"6906:3:14","nodeType":"YulIdentifier","src":"6906:3:14"},"nativeSrc":"6906:32:14","nodeType":"YulFunctionCall","src":"6906:32:14"},"variableNames":[{"name":"prod1","nativeSrc":"6897:5:14","nodeType":"YulIdentifier","src":"6897:5:14"}]},{"nativeSrc":"6955:30:14","nodeType":"YulAssignment","src":"6955:30:14","value":{"arguments":[{"name":"prod0","nativeSrc":"6968:5:14","nodeType":"YulIdentifier","src":"6968:5:14"},{"name":"remainder","nativeSrc":"6975:9:14","nodeType":"YulIdentifier","src":"6975:9:14"}],"functionName":{"name":"sub","nativeSrc":"6964:3:14","nodeType":"YulIdentifier","src":"6964:3:14"},"nativeSrc":"6964:21:14","nodeType":"YulFunctionCall","src":"6964:21:14"},"variableNames":[{"name":"prod0","nativeSrc":"6955:5:14","nodeType":"YulIdentifier","src":"6955:5:14"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3163,"isOffset":false,"isSlot":false,"src":"6803:11:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"6931:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"6955:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"6968:5:14","valueSize":1},{"declaration":3175,"isOffset":false,"isSlot":false,"src":"6897:5:14","valueSize":1},{"declaration":3175,"isOffset":false,"isSlot":false,"src":"6910:5:14","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"6777:9:14","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"6920:9:14","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"6975:9:14","valueSize":1},{"declaration":3159,"isOffset":false,"isSlot":false,"src":"6797:1:14","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"6800:1:14","valueSize":1}],"id":3209,"nodeType":"InlineAssembly","src":"6699:300:14"},{"assignments":[3211],"declarations":[{"constant":false,"id":3211,"mutability":"mutable","name":"twos","nameLocation":"7211:4:14","nodeType":"VariableDeclaration","scope":3291,"src":"7203:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3210,"name":"uint256","nodeType":"ElementaryTypeName","src":"7203:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3218,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3212,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"7218:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":3213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7233:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3214,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"7237:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7233:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7232:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7218:31:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7203:46:14"},{"AST":{"nativeSrc":"7272:366:14","nodeType":"YulBlock","src":"7272:366:14","statements":[{"nativeSrc":"7337:37:14","nodeType":"YulAssignment","src":"7337:37:14","value":{"arguments":[{"name":"denominator","nativeSrc":"7356:11:14","nodeType":"YulIdentifier","src":"7356:11:14"},{"name":"twos","nativeSrc":"7369:4:14","nodeType":"YulIdentifier","src":"7369:4:14"}],"functionName":{"name":"div","nativeSrc":"7352:3:14","nodeType":"YulIdentifier","src":"7352:3:14"},"nativeSrc":"7352:22:14","nodeType":"YulFunctionCall","src":"7352:22:14"},"variableNames":[{"name":"denominator","nativeSrc":"7337:11:14","nodeType":"YulIdentifier","src":"7337:11:14"}]},{"nativeSrc":"7441:25:14","nodeType":"YulAssignment","src":"7441:25:14","value":{"arguments":[{"name":"prod0","nativeSrc":"7454:5:14","nodeType":"YulIdentifier","src":"7454:5:14"},{"name":"twos","nativeSrc":"7461:4:14","nodeType":"YulIdentifier","src":"7461:4:14"}],"functionName":{"name":"div","nativeSrc":"7450:3:14","nodeType":"YulIdentifier","src":"7450:3:14"},"nativeSrc":"7450:16:14","nodeType":"YulFunctionCall","src":"7450:16:14"},"variableNames":[{"name":"prod0","nativeSrc":"7441:5:14","nodeType":"YulIdentifier","src":"7441:5:14"}]},{"nativeSrc":"7585:39:14","nodeType":"YulAssignment","src":"7585:39:14","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7605:1:14","nodeType":"YulLiteral","src":"7605:1:14","type":"","value":"0"},{"name":"twos","nativeSrc":"7608:4:14","nodeType":"YulIdentifier","src":"7608:4:14"}],"functionName":{"name":"sub","nativeSrc":"7601:3:14","nodeType":"YulIdentifier","src":"7601:3:14"},"nativeSrc":"7601:12:14","nodeType":"YulFunctionCall","src":"7601:12:14"},{"name":"twos","nativeSrc":"7615:4:14","nodeType":"YulIdentifier","src":"7615:4:14"}],"functionName":{"name":"div","nativeSrc":"7597:3:14","nodeType":"YulIdentifier","src":"7597:3:14"},"nativeSrc":"7597:23:14","nodeType":"YulFunctionCall","src":"7597:23:14"},{"kind":"number","nativeSrc":"7622:1:14","nodeType":"YulLiteral","src":"7622:1:14","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7593:3:14","nodeType":"YulIdentifier","src":"7593:3:14"},"nativeSrc":"7593:31:14","nodeType":"YulFunctionCall","src":"7593:31:14"},"variableNames":[{"name":"twos","nativeSrc":"7585:4:14","nodeType":"YulIdentifier","src":"7585:4:14"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3163,"isOffset":false,"isSlot":false,"src":"7337:11:14","valueSize":1},{"declaration":3163,"isOffset":false,"isSlot":false,"src":"7356:11:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"7441:5:14","valueSize":1},{"declaration":3169,"isOffset":false,"isSlot":false,"src":"7454:5:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7369:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7461:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7585:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7608:4:14","valueSize":1},{"declaration":3211,"isOffset":false,"isSlot":false,"src":"7615:4:14","valueSize":1}],"id":3219,"nodeType":"InlineAssembly","src":"7263:375:14"},{"expression":{"id":3224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3220,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"7704:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3221,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3175,"src":"7713:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3222,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"7721:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7713:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7704:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3225,"nodeType":"ExpressionStatement","src":"7704:21:14"},{"assignments":[3227],"declarations":[{"constant":false,"id":3227,"mutability":"mutable","name":"inverse","nameLocation":"8068:7:14","nodeType":"VariableDeclaration","scope":3291,"src":"8060:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3226,"name":"uint256","nodeType":"ElementaryTypeName","src":"8060:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3234,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8079:1:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3229,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8083:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8079:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8078:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8098:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"8078:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8060:39:14"},{"expression":{"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3235,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8316:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8327: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":3239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3237,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8331:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3238,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8345:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8331:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8327:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8316:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3242,"nodeType":"ExpressionStatement","src":"8316:36:14"},{"expression":{"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3243,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8386:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8397: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":3247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3245,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8401:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3246,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8415:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8401:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8397:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8386:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3250,"nodeType":"ExpressionStatement","src":"8386:36:14"},{"expression":{"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3251,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8458:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8469: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":3255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3253,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8473:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3254,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8487:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8473:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8469:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8458:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3258,"nodeType":"ExpressionStatement","src":"8458:36:14"},{"expression":{"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3259,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8529:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8540: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":3263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3261,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8544:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3262,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8558:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8544:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8540:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8529:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3266,"nodeType":"ExpressionStatement","src":"8529:36:14"},{"expression":{"id":3273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3267,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8613: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":3271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3269,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8617:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3270,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8631:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8617:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8602:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3274,"nodeType":"ExpressionStatement","src":"8602:36:14"},{"expression":{"id":3281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3275,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8676:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687: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":3279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3277,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3163,"src":"8691:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3278,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"8705:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8691:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8687:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8676:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3282,"nodeType":"ExpressionStatement","src":"8676:36:14"},{"expression":{"id":3287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3283,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"9158:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3284,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"9167:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3285,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"9175:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9167:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9158:24:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3288,"nodeType":"ExpressionStatement","src":"9158:24:14"},{"expression":{"id":3289,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"9203:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3167,"id":3290,"nodeType":"Return","src":"9196:13:14"}]}]},"documentation":{"id":3157,"nodeType":"StructuredDocumentation","src":"4679:312:14","text":" @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":3293,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5005:6:14","nodeType":"FunctionDefinition","parameters":{"id":3164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3159,"mutability":"mutable","name":"x","nameLocation":"5020:1:14","nodeType":"VariableDeclaration","scope":3293,"src":"5012:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3158,"name":"uint256","nodeType":"ElementaryTypeName","src":"5012:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3161,"mutability":"mutable","name":"y","nameLocation":"5031:1:14","nodeType":"VariableDeclaration","scope":3293,"src":"5023:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3160,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3163,"mutability":"mutable","name":"denominator","nameLocation":"5042:11:14","nodeType":"VariableDeclaration","scope":3293,"src":"5034:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3162,"name":"uint256","nodeType":"ElementaryTypeName","src":"5034:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:43:14"},"returnParameters":{"id":3167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3166,"mutability":"mutable","name":"result","nameLocation":"5086:6:14","nodeType":"VariableDeclaration","scope":3293,"src":"5078:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3165,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5077:16:14"},"scope":4442,"src":"4996:4230:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3329,"nodeType":"Block","src":"9465:128:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3309,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"9489:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3310,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"9492:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3311,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3300,"src":"9495:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3308,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[3293,3330],"referencedDeclaration":3293,"src":"9482: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":3312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9482:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3316,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"9543:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":3315,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"9526:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9526:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3319,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"9563:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3320,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"9566:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3321,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3300,"src":"9569:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3318,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"9556: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":3322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9556:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9584:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9556:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9526:59:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3313,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"9510:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9519:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"9510:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9510:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9482:104:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3307,"id":3328,"nodeType":"Return","src":"9475:111:14"}]},"documentation":{"id":3294,"nodeType":"StructuredDocumentation","src":"9232:118:14","text":" @dev Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":3330,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"9364:6:14","nodeType":"FunctionDefinition","parameters":{"id":3304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3296,"mutability":"mutable","name":"x","nameLocation":"9379:1:14","nodeType":"VariableDeclaration","scope":3330,"src":"9371:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3295,"name":"uint256","nodeType":"ElementaryTypeName","src":"9371:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3298,"mutability":"mutable","name":"y","nameLocation":"9390:1:14","nodeType":"VariableDeclaration","scope":3330,"src":"9382:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3297,"name":"uint256","nodeType":"ElementaryTypeName","src":"9382:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3300,"mutability":"mutable","name":"denominator","nameLocation":"9401:11:14","nodeType":"VariableDeclaration","scope":3330,"src":"9393:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3299,"name":"uint256","nodeType":"ElementaryTypeName","src":"9393:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3303,"mutability":"mutable","name":"rounding","nameLocation":"9423:8:14","nodeType":"VariableDeclaration","scope":3330,"src":"9414:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":3302,"nodeType":"UserDefinedTypeName","pathNode":{"id":3301,"name":"Rounding","nameLocations":["9414:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"9414:8:14"},"referencedDeclaration":2869,"src":"9414:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9370:62:14"},"returnParameters":{"id":3307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3330,"src":"9456:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3305,"name":"uint256","nodeType":"ElementaryTypeName","src":"9456:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9455:9:14"},"scope":4442,"src":"9355:238:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3426,"nodeType":"Block","src":"10207:1849:14","statements":[{"id":3425,"nodeType":"UncheckedBlock","src":"10217:1833:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3340,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"10245:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10250:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10245:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3345,"nodeType":"IfStatement","src":"10241:20:14","trueBody":{"expression":{"hexValue":"30","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10260:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3339,"id":3344,"nodeType":"Return","src":"10253:8:14"}},{"assignments":[3347],"declarations":[{"constant":false,"id":3347,"mutability":"mutable","name":"remainder","nameLocation":"10740:9:14","nodeType":"VariableDeclaration","scope":3425,"src":"10732:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"10732:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3351,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"10752:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3349,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"10756:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10752:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10732:25:14"},{"assignments":[3353],"declarations":[{"constant":false,"id":3353,"mutability":"mutable","name":"gcd","nameLocation":"10779:3:14","nodeType":"VariableDeclaration","scope":3425,"src":"10771:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3352,"name":"uint256","nodeType":"ElementaryTypeName","src":"10771:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3355,"initialValue":{"id":3354,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"10785:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10771:15:14"},{"assignments":[3357],"declarations":[{"constant":false,"id":3357,"mutability":"mutable","name":"x","nameLocation":"10929:1:14","nodeType":"VariableDeclaration","scope":3425,"src":"10922:8:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3356,"name":"int256","nodeType":"ElementaryTypeName","src":"10922:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3359,"initialValue":{"hexValue":"30","id":3358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10933:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10922:12:14"},{"assignments":[3361],"declarations":[{"constant":false,"id":3361,"mutability":"mutable","name":"y","nameLocation":"10955:1:14","nodeType":"VariableDeclaration","scope":3425,"src":"10948:8:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3360,"name":"int256","nodeType":"ElementaryTypeName","src":"10948:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3363,"initialValue":{"hexValue":"31","id":3362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10959:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"10948:12:14"},{"body":{"id":3400,"nodeType":"Block","src":"10998:882:14","statements":[{"assignments":[3368],"declarations":[{"constant":false,"id":3368,"mutability":"mutable","name":"quotient","nameLocation":"11024:8:14","nodeType":"VariableDeclaration","scope":3400,"src":"11016:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3367,"name":"uint256","nodeType":"ElementaryTypeName","src":"11016:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3372,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3369,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11035:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3370,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11041:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11035:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11016:34:14"},{"expression":{"id":3383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3373,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11070:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3374,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11075:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3375,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11069:16:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":3376,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11175:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3377,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11420:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3378,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11426:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3379,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"11438:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11426:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11420:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11088:376:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11069:395:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3384,"nodeType":"ExpressionStatement","src":"11069:395:14"},{"expression":{"id":3398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3385,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11484:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":3386,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"11487:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3387,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11483:6:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":3388,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"11569:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3389,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11823:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3390,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"11827:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":3393,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"11838:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11831:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3391,"name":"int256","nodeType":"ElementaryTypeName","src":"11831:6:14","typeDescriptions":{}}},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11831:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11827:20:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11823:24:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3397,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11492:373:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"src":"11483:382:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3399,"nodeType":"ExpressionStatement","src":"11483:382:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3364,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"10982:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10995:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10982:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3401,"nodeType":"WhileStatement","src":"10975:905:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3402,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"11898:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":3403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11905:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11898:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3407,"nodeType":"IfStatement","src":"11894:22:14","trueBody":{"expression":{"hexValue":"30","id":3405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11915:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3339,"id":3406,"nodeType":"Return","src":"11908:8:14"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3409,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11967:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":3410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11967:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3412,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"11974:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"11986:2:14","subExpression":{"id":3415,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11987:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11978:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3413,"name":"uint256","nodeType":"ElementaryTypeName","src":"11978:7:14","typeDescriptions":{}}},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11978:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11974:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3421,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"11999:1:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11991:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3419,"name":"uint256","nodeType":"ElementaryTypeName","src":"11991:7:14","typeDescriptions":{}}},"id":3422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3408,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3054,"src":"11959:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11959:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3339,"id":3424,"nodeType":"Return","src":"11952:50:14"}]}]},"documentation":{"id":3331,"nodeType":"StructuredDocumentation","src":"9599:533:14","text":" @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, expect 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Ferma's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`."},"id":3427,"implemented":true,"kind":"function","modifiers":[],"name":"invMod","nameLocation":"10146:6:14","nodeType":"FunctionDefinition","parameters":{"id":3336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3333,"mutability":"mutable","name":"a","nameLocation":"10161:1:14","nodeType":"VariableDeclaration","scope":3427,"src":"10153:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3332,"name":"uint256","nodeType":"ElementaryTypeName","src":"10153:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3335,"mutability":"mutable","name":"n","nameLocation":"10172:1:14","nodeType":"VariableDeclaration","scope":3427,"src":"10164:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3334,"name":"uint256","nodeType":"ElementaryTypeName","src":"10164:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10152:22:14"},"returnParameters":{"id":3339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3427,"src":"10198:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3337,"name":"uint256","nodeType":"ElementaryTypeName","src":"10198:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10197:9:14"},"scope":4442,"src":"10137:1919:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3462,"nodeType":"Block","src":"12826:174:14","statements":[{"assignments":[3440,3442],"declarations":[{"constant":false,"id":3440,"mutability":"mutable","name":"success","nameLocation":"12842:7:14","nodeType":"VariableDeclaration","scope":3462,"src":"12837:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3439,"name":"bool","nodeType":"ElementaryTypeName","src":"12837:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3442,"mutability":"mutable","name":"result","nameLocation":"12859:6:14","nodeType":"VariableDeclaration","scope":3462,"src":"12851:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3441,"name":"uint256","nodeType":"ElementaryTypeName","src":"12851:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3448,"initialValue":{"arguments":[{"id":3444,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3430,"src":"12879:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3445,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3432,"src":"12882:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3446,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"12885:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3443,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[3487,3569],"referencedDeclaration":3487,"src":"12869:9:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (bool,uint256)"}},"id":3447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12869:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12836:51:14"},{"condition":{"id":3450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12901:8:14","subExpression":{"id":3449,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3440,"src":"12902:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3459,"nodeType":"IfStatement","src":"12897:74:14","trueBody":{"id":3458,"nodeType":"Block","src":"12911:60:14","statements":[{"expression":{"arguments":[{"expression":{"id":3454,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"12937:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12943:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"12937:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3451,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"12925:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12931:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"12925:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12925:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3457,"nodeType":"ExpressionStatement","src":"12925:35:14"}]}},{"expression":{"id":3460,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"12987:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3438,"id":3461,"nodeType":"Return","src":"12980:13:14"}]},"documentation":{"id":3428,"nodeType":"StructuredDocumentation","src":"12062:678:14","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0."},"id":3463,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"12754:6:14","nodeType":"FunctionDefinition","parameters":{"id":3435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3430,"mutability":"mutable","name":"b","nameLocation":"12769:1:14","nodeType":"VariableDeclaration","scope":3463,"src":"12761:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3429,"name":"uint256","nodeType":"ElementaryTypeName","src":"12761:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3432,"mutability":"mutable","name":"e","nameLocation":"12780:1:14","nodeType":"VariableDeclaration","scope":3463,"src":"12772:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3431,"name":"uint256","nodeType":"ElementaryTypeName","src":"12772:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3434,"mutability":"mutable","name":"m","nameLocation":"12791:1:14","nodeType":"VariableDeclaration","scope":3463,"src":"12783:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3433,"name":"uint256","nodeType":"ElementaryTypeName","src":"12783:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12760:33:14"},"returnParameters":{"id":3438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3463,"src":"12817:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3436,"name":"uint256","nodeType":"ElementaryTypeName","src":"12817:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12816:9:14"},"scope":4442,"src":"12745:255:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3486,"nodeType":"Block","src":"13855:1520:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3477,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3470,"src":"13869:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13874:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13869:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3484,"nodeType":"IfStatement","src":"13865:29:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13885:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13892:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3482,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13884:10:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3476,"id":3483,"nodeType":"Return","src":"13877:17:14"}},{"AST":{"nativeSrc":"13956:1413:14","nodeType":"YulBlock","src":"13956:1413:14","statements":[{"nativeSrc":"13970:22:14","nodeType":"YulVariableDeclaration","src":"13970:22:14","value":{"arguments":[{"kind":"number","nativeSrc":"13987:4:14","nodeType":"YulLiteral","src":"13987:4:14","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13981:5:14","nodeType":"YulIdentifier","src":"13981:5:14"},"nativeSrc":"13981:11:14","nodeType":"YulFunctionCall","src":"13981:11:14"},"variables":[{"name":"ptr","nativeSrc":"13974:3:14","nodeType":"YulTypedName","src":"13974:3:14","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"14900:3:14","nodeType":"YulIdentifier","src":"14900:3:14"},{"kind":"number","nativeSrc":"14905:4:14","nodeType":"YulLiteral","src":"14905:4:14","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14893:6:14","nodeType":"YulIdentifier","src":"14893:6:14"},"nativeSrc":"14893:17:14","nodeType":"YulFunctionCall","src":"14893:17:14"},"nativeSrc":"14893:17:14","nodeType":"YulExpressionStatement","src":"14893:17:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"14934:3:14","nodeType":"YulIdentifier","src":"14934:3:14"},{"kind":"number","nativeSrc":"14939:4:14","nodeType":"YulLiteral","src":"14939:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14930:3:14","nodeType":"YulIdentifier","src":"14930:3:14"},"nativeSrc":"14930:14:14","nodeType":"YulFunctionCall","src":"14930:14:14"},{"kind":"number","nativeSrc":"14946:4:14","nodeType":"YulLiteral","src":"14946:4:14","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14923:6:14","nodeType":"YulIdentifier","src":"14923:6:14"},"nativeSrc":"14923:28:14","nodeType":"YulFunctionCall","src":"14923:28:14"},"nativeSrc":"14923:28:14","nodeType":"YulExpressionStatement","src":"14923:28:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"14975:3:14","nodeType":"YulIdentifier","src":"14975:3:14"},{"kind":"number","nativeSrc":"14980:4:14","nodeType":"YulLiteral","src":"14980:4:14","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14971:3:14","nodeType":"YulIdentifier","src":"14971:3:14"},"nativeSrc":"14971:14:14","nodeType":"YulFunctionCall","src":"14971:14:14"},{"kind":"number","nativeSrc":"14987:4:14","nodeType":"YulLiteral","src":"14987:4:14","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14964:6:14","nodeType":"YulIdentifier","src":"14964:6:14"},"nativeSrc":"14964:28:14","nodeType":"YulFunctionCall","src":"14964:28:14"},"nativeSrc":"14964:28:14","nodeType":"YulExpressionStatement","src":"14964:28:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15016:3:14","nodeType":"YulIdentifier","src":"15016:3:14"},{"kind":"number","nativeSrc":"15021:4:14","nodeType":"YulLiteral","src":"15021:4:14","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15012:3:14","nodeType":"YulIdentifier","src":"15012:3:14"},"nativeSrc":"15012:14:14","nodeType":"YulFunctionCall","src":"15012:14:14"},{"name":"b","nativeSrc":"15028:1:14","nodeType":"YulIdentifier","src":"15028:1:14"}],"functionName":{"name":"mstore","nativeSrc":"15005:6:14","nodeType":"YulIdentifier","src":"15005:6:14"},"nativeSrc":"15005:25:14","nodeType":"YulFunctionCall","src":"15005:25:14"},"nativeSrc":"15005:25:14","nodeType":"YulExpressionStatement","src":"15005:25:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15054:3:14","nodeType":"YulIdentifier","src":"15054:3:14"},{"kind":"number","nativeSrc":"15059:4:14","nodeType":"YulLiteral","src":"15059:4:14","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15050:3:14","nodeType":"YulIdentifier","src":"15050:3:14"},"nativeSrc":"15050:14:14","nodeType":"YulFunctionCall","src":"15050:14:14"},{"name":"e","nativeSrc":"15066:1:14","nodeType":"YulIdentifier","src":"15066:1:14"}],"functionName":{"name":"mstore","nativeSrc":"15043:6:14","nodeType":"YulIdentifier","src":"15043:6:14"},"nativeSrc":"15043:25:14","nodeType":"YulFunctionCall","src":"15043:25:14"},"nativeSrc":"15043:25:14","nodeType":"YulExpressionStatement","src":"15043:25:14"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15092:3:14","nodeType":"YulIdentifier","src":"15092:3:14"},{"kind":"number","nativeSrc":"15097:4:14","nodeType":"YulLiteral","src":"15097:4:14","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15088:3:14","nodeType":"YulIdentifier","src":"15088:3:14"},"nativeSrc":"15088:14:14","nodeType":"YulFunctionCall","src":"15088:14:14"},{"name":"m","nativeSrc":"15104:1:14","nodeType":"YulIdentifier","src":"15104:1:14"}],"functionName":{"name":"mstore","nativeSrc":"15081:6:14","nodeType":"YulIdentifier","src":"15081:6:14"},"nativeSrc":"15081:25:14","nodeType":"YulFunctionCall","src":"15081:25:14"},"nativeSrc":"15081:25:14","nodeType":"YulExpressionStatement","src":"15081:25:14"},{"nativeSrc":"15268:57:14","nodeType":"YulAssignment","src":"15268:57:14","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15290:3:14","nodeType":"YulIdentifier","src":"15290:3:14"},"nativeSrc":"15290:5:14","nodeType":"YulFunctionCall","src":"15290:5:14"},{"kind":"number","nativeSrc":"15297:4:14","nodeType":"YulLiteral","src":"15297:4:14","type":"","value":"0x05"},{"name":"ptr","nativeSrc":"15303:3:14","nodeType":"YulIdentifier","src":"15303:3:14"},{"kind":"number","nativeSrc":"15308:4:14","nodeType":"YulLiteral","src":"15308:4:14","type":"","value":"0xc0"},{"kind":"number","nativeSrc":"15314:4:14","nodeType":"YulLiteral","src":"15314:4:14","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15320:4:14","nodeType":"YulLiteral","src":"15320:4:14","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15279:10:14","nodeType":"YulIdentifier","src":"15279:10:14"},"nativeSrc":"15279:46:14","nodeType":"YulFunctionCall","src":"15279:46:14"},"variableNames":[{"name":"success","nativeSrc":"15268:7:14","nodeType":"YulIdentifier","src":"15268:7:14"}]},{"nativeSrc":"15338:21:14","nodeType":"YulAssignment","src":"15338:21:14","value":{"arguments":[{"kind":"number","nativeSrc":"15354:4:14","nodeType":"YulLiteral","src":"15354:4:14","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"15348:5:14","nodeType":"YulIdentifier","src":"15348:5:14"},"nativeSrc":"15348:11:14","nodeType":"YulFunctionCall","src":"15348:11:14"},"variableNames":[{"name":"result","nativeSrc":"15338:6:14","nodeType":"YulIdentifier","src":"15338:6:14"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":3466,"isOffset":false,"isSlot":false,"src":"15028:1:14","valueSize":1},{"declaration":3468,"isOffset":false,"isSlot":false,"src":"15066:1:14","valueSize":1},{"declaration":3470,"isOffset":false,"isSlot":false,"src":"15104:1:14","valueSize":1},{"declaration":3475,"isOffset":false,"isSlot":false,"src":"15338:6:14","valueSize":1},{"declaration":3473,"isOffset":false,"isSlot":false,"src":"15268:7:14","valueSize":1}],"id":3485,"nodeType":"InlineAssembly","src":"13947:1422:14"}]},"documentation":{"id":3464,"nodeType":"StructuredDocumentation","src":"13006:739:14","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked has failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0."},"id":3487,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"13759:9:14","nodeType":"FunctionDefinition","parameters":{"id":3471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3466,"mutability":"mutable","name":"b","nameLocation":"13777:1:14","nodeType":"VariableDeclaration","scope":3487,"src":"13769:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3465,"name":"uint256","nodeType":"ElementaryTypeName","src":"13769:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3468,"mutability":"mutable","name":"e","nameLocation":"13788:1:14","nodeType":"VariableDeclaration","scope":3487,"src":"13780:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3467,"name":"uint256","nodeType":"ElementaryTypeName","src":"13780:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3470,"mutability":"mutable","name":"m","nameLocation":"13799:1:14","nodeType":"VariableDeclaration","scope":3487,"src":"13791:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3469,"name":"uint256","nodeType":"ElementaryTypeName","src":"13791:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13768:33:14"},"returnParameters":{"id":3476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3473,"mutability":"mutable","name":"success","nameLocation":"13830:7:14","nodeType":"VariableDeclaration","scope":3487,"src":"13825:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3472,"name":"bool","nodeType":"ElementaryTypeName","src":"13825:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3475,"mutability":"mutable","name":"result","nameLocation":"13847:6:14","nodeType":"VariableDeclaration","scope":3487,"src":"13839:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3474,"name":"uint256","nodeType":"ElementaryTypeName","src":"13839:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13824:30:14"},"scope":4442,"src":"13750:1625:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3522,"nodeType":"Block","src":"15572:179:14","statements":[{"assignments":[3500,3502],"declarations":[{"constant":false,"id":3500,"mutability":"mutable","name":"success","nameLocation":"15588:7:14","nodeType":"VariableDeclaration","scope":3522,"src":"15583:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3499,"name":"bool","nodeType":"ElementaryTypeName","src":"15583:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3502,"mutability":"mutable","name":"result","nameLocation":"15610:6:14","nodeType":"VariableDeclaration","scope":3522,"src":"15597:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3501,"name":"bytes","nodeType":"ElementaryTypeName","src":"15597:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3508,"initialValue":{"arguments":[{"id":3504,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3490,"src":"15630:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3505,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3492,"src":"15633:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3506,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"15636:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3503,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[3487,3569],"referencedDeclaration":3569,"src":"15620:9:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)"}},"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15620:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"15582:56:14"},{"condition":{"id":3510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15652:8:14","subExpression":{"id":3509,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3500,"src":"15653:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3519,"nodeType":"IfStatement","src":"15648:74:14","trueBody":{"id":3518,"nodeType":"Block","src":"15662:60:14","statements":[{"expression":{"arguments":[{"expression":{"id":3514,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"15688:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15694:16:14","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2339,"src":"15688:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3511,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"15676:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2372_$","typeString":"type(library Panic)"}},"id":3513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15682:5:14","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2371,"src":"15676:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15676:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3517,"nodeType":"ExpressionStatement","src":"15676:35:14"}]}},{"expression":{"id":3520,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3502,"src":"15738:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3498,"id":3521,"nodeType":"Return","src":"15731:13:14"}]},"documentation":{"id":3488,"nodeType":"StructuredDocumentation","src":"15381:85:14","text":" @dev Variant of {modExp} that supports inputs of arbitrary length."},"id":3523,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"15480:6:14","nodeType":"FunctionDefinition","parameters":{"id":3495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3490,"mutability":"mutable","name":"b","nameLocation":"15500:1:14","nodeType":"VariableDeclaration","scope":3523,"src":"15487:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3489,"name":"bytes","nodeType":"ElementaryTypeName","src":"15487:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3492,"mutability":"mutable","name":"e","nameLocation":"15516:1:14","nodeType":"VariableDeclaration","scope":3523,"src":"15503:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3491,"name":"bytes","nodeType":"ElementaryTypeName","src":"15503:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3494,"mutability":"mutable","name":"m","nameLocation":"15532:1:14","nodeType":"VariableDeclaration","scope":3523,"src":"15519:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3493,"name":"bytes","nodeType":"ElementaryTypeName","src":"15519:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15486:48:14"},"returnParameters":{"id":3498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3523,"src":"15558:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3496,"name":"bytes","nodeType":"ElementaryTypeName","src":"15558:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15557:14:14"},"scope":4442,"src":"15471:280:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3568,"nodeType":"Block","src":"16005:798:14","statements":[{"condition":{"arguments":[{"id":3538,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"16030:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3537,"name":"_zeroBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3602,"src":"16019:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) pure returns (bool)"}},"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16019:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3547,"nodeType":"IfStatement","src":"16015:47:14","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16042:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"30","id":3543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16059:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16049:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3541,"name":"bytes","nodeType":"ElementaryTypeName","src":"16053:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16049:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16041:21:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":3536,"id":3546,"nodeType":"Return","src":"16034:28:14"}},{"assignments":[3549],"declarations":[{"constant":false,"id":3549,"mutability":"mutable","name":"mLen","nameLocation":"16081:4:14","nodeType":"VariableDeclaration","scope":3568,"src":"16073:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3548,"name":"uint256","nodeType":"ElementaryTypeName","src":"16073:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3552,"initialValue":{"expression":{"id":3550,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"16088:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16090:6:14","memberName":"length","nodeType":"MemberAccess","src":"16088:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16073:23:14"},{"expression":{"id":3565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3553,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3535,"src":"16178:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3556,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"16204:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16206:6:14","memberName":"length","nodeType":"MemberAccess","src":"16204:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3558,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"16214:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16216:6:14","memberName":"length","nodeType":"MemberAccess","src":"16214:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3560,"name":"mLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3549,"src":"16224:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3561,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"16230:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3562,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"16233:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3563,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"16236:1:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16187:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16191:12:14","memberName":"encodePacked","nodeType":"MemberAccess","src":"16187:16:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16187:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"16178:60:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3566,"nodeType":"ExpressionStatement","src":"16178:60:14"},{"AST":{"nativeSrc":"16301:496:14","nodeType":"YulBlock","src":"16301:496:14","statements":[{"nativeSrc":"16315:32:14","nodeType":"YulVariableDeclaration","src":"16315:32:14","value":{"arguments":[{"name":"result","nativeSrc":"16334:6:14","nodeType":"YulIdentifier","src":"16334:6:14"},{"kind":"number","nativeSrc":"16342:4:14","nodeType":"YulLiteral","src":"16342:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16330:3:14","nodeType":"YulIdentifier","src":"16330:3:14"},"nativeSrc":"16330:17:14","nodeType":"YulFunctionCall","src":"16330:17:14"},"variables":[{"name":"dataPtr","nativeSrc":"16319:7:14","nodeType":"YulTypedName","src":"16319:7:14","type":""}]},{"nativeSrc":"16437:73:14","nodeType":"YulAssignment","src":"16437:73:14","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16459:3:14","nodeType":"YulIdentifier","src":"16459:3:14"},"nativeSrc":"16459:5:14","nodeType":"YulFunctionCall","src":"16459:5:14"},{"kind":"number","nativeSrc":"16466:4:14","nodeType":"YulLiteral","src":"16466:4:14","type":"","value":"0x05"},{"name":"dataPtr","nativeSrc":"16472:7:14","nodeType":"YulIdentifier","src":"16472:7:14"},{"arguments":[{"name":"result","nativeSrc":"16487:6:14","nodeType":"YulIdentifier","src":"16487:6:14"}],"functionName":{"name":"mload","nativeSrc":"16481:5:14","nodeType":"YulIdentifier","src":"16481:5:14"},"nativeSrc":"16481:13:14","nodeType":"YulFunctionCall","src":"16481:13:14"},{"name":"dataPtr","nativeSrc":"16496:7:14","nodeType":"YulIdentifier","src":"16496:7:14"},{"name":"mLen","nativeSrc":"16505:4:14","nodeType":"YulIdentifier","src":"16505:4:14"}],"functionName":{"name":"staticcall","nativeSrc":"16448:10:14","nodeType":"YulIdentifier","src":"16448:10:14"},"nativeSrc":"16448:62:14","nodeType":"YulFunctionCall","src":"16448:62:14"},"variableNames":[{"name":"success","nativeSrc":"16437:7:14","nodeType":"YulIdentifier","src":"16437:7:14"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"16666:6:14","nodeType":"YulIdentifier","src":"16666:6:14"},{"name":"mLen","nativeSrc":"16674:4:14","nodeType":"YulIdentifier","src":"16674:4:14"}],"functionName":{"name":"mstore","nativeSrc":"16659:6:14","nodeType":"YulIdentifier","src":"16659:6:14"},"nativeSrc":"16659:20:14","nodeType":"YulFunctionCall","src":"16659:20:14"},"nativeSrc":"16659:20:14","nodeType":"YulExpressionStatement","src":"16659:20:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16762:4:14","nodeType":"YulLiteral","src":"16762:4:14","type":"","value":"0x40"},{"arguments":[{"name":"dataPtr","nativeSrc":"16772:7:14","nodeType":"YulIdentifier","src":"16772:7:14"},{"name":"mLen","nativeSrc":"16781:4:14","nodeType":"YulIdentifier","src":"16781:4:14"}],"functionName":{"name":"add","nativeSrc":"16768:3:14","nodeType":"YulIdentifier","src":"16768:3:14"},"nativeSrc":"16768:18:14","nodeType":"YulFunctionCall","src":"16768:18:14"}],"functionName":{"name":"mstore","nativeSrc":"16755:6:14","nodeType":"YulIdentifier","src":"16755:6:14"},"nativeSrc":"16755:32:14","nodeType":"YulFunctionCall","src":"16755:32:14"},"nativeSrc":"16755:32:14","nodeType":"YulExpressionStatement","src":"16755:32:14"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":3549,"isOffset":false,"isSlot":false,"src":"16505:4:14","valueSize":1},{"declaration":3549,"isOffset":false,"isSlot":false,"src":"16674:4:14","valueSize":1},{"declaration":3549,"isOffset":false,"isSlot":false,"src":"16781:4:14","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16334:6:14","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16487:6:14","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16666:6:14","valueSize":1},{"declaration":3533,"isOffset":false,"isSlot":false,"src":"16437:7:14","valueSize":1}],"id":3567,"nodeType":"InlineAssembly","src":"16292:505:14"}]},"documentation":{"id":3524,"nodeType":"StructuredDocumentation","src":"15757:88:14","text":" @dev Variant of {tryModExp} that supports inputs of arbitrary length."},"id":3569,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"15859:9:14","nodeType":"FunctionDefinition","parameters":{"id":3531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3526,"mutability":"mutable","name":"b","nameLocation":"15891:1:14","nodeType":"VariableDeclaration","scope":3569,"src":"15878:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3525,"name":"bytes","nodeType":"ElementaryTypeName","src":"15878:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3528,"mutability":"mutable","name":"e","nameLocation":"15915:1:14","nodeType":"VariableDeclaration","scope":3569,"src":"15902:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3527,"name":"bytes","nodeType":"ElementaryTypeName","src":"15902:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3530,"mutability":"mutable","name":"m","nameLocation":"15939:1:14","nodeType":"VariableDeclaration","scope":3569,"src":"15926:14:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3529,"name":"bytes","nodeType":"ElementaryTypeName","src":"15926:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15868:78:14"},"returnParameters":{"id":3536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3533,"mutability":"mutable","name":"success","nameLocation":"15975:7:14","nodeType":"VariableDeclaration","scope":3569,"src":"15970:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3532,"name":"bool","nodeType":"ElementaryTypeName","src":"15970:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3535,"mutability":"mutable","name":"result","nameLocation":"15997:6:14","nodeType":"VariableDeclaration","scope":3569,"src":"15984:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3534,"name":"bytes","nodeType":"ElementaryTypeName","src":"15984:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15969:35:14"},"scope":4442,"src":"15850:953:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3601,"nodeType":"Block","src":"16958:176:14","statements":[{"body":{"id":3597,"nodeType":"Block","src":"17015:92:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3588,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"17033:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3590,"indexExpression":{"id":3589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"17043:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17033:12:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17049:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17033:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3596,"nodeType":"IfStatement","src":"17029:68:14","trueBody":{"id":3595,"nodeType":"Block","src":"17052:45:14","statements":[{"expression":{"hexValue":"66616c7365","id":3593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17077:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":3576,"id":3594,"nodeType":"Return","src":"17070:12:14"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3581,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"16988:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3582,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"16992:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17002:6:14","memberName":"length","nodeType":"MemberAccess","src":"16992:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16988:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3598,"initializationExpression":{"assignments":[3578],"declarations":[{"constant":false,"id":3578,"mutability":"mutable","name":"i","nameLocation":"16981:1:14","nodeType":"VariableDeclaration","scope":3598,"src":"16973:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"16973:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3580,"initialValue":{"hexValue":"30","id":3579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16985:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16973:13:14"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17010:3:14","subExpression":{"id":3585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3578,"src":"17012:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3587,"nodeType":"ExpressionStatement","src":"17010:3:14"},"nodeType":"ForStatement","src":"16968:139:14"},{"expression":{"hexValue":"74727565","id":3599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17123:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3576,"id":3600,"nodeType":"Return","src":"17116:11:14"}]},"documentation":{"id":3570,"nodeType":"StructuredDocumentation","src":"16809:72:14","text":" @dev Returns whether the provided byte array is zero."},"id":3602,"implemented":true,"kind":"function","modifiers":[],"name":"_zeroBytes","nameLocation":"16895:10:14","nodeType":"FunctionDefinition","parameters":{"id":3573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3572,"mutability":"mutable","name":"byteArray","nameLocation":"16919:9:14","nodeType":"VariableDeclaration","scope":3602,"src":"16906:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3571,"name":"bytes","nodeType":"ElementaryTypeName","src":"16906:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16905:24:14"},"returnParameters":{"id":3576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3602,"src":"16952:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3574,"name":"bool","nodeType":"ElementaryTypeName","src":"16952:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16951:6:14"},"scope":4442,"src":"16886:248:14","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3820,"nodeType":"Block","src":"17494:5124:14","statements":[{"id":3819,"nodeType":"UncheckedBlock","src":"17504:5108:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3610,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"17598:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":3611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17603:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17598:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3616,"nodeType":"IfStatement","src":"17594:53:14","trueBody":{"id":3615,"nodeType":"Block","src":"17606:41:14","statements":[{"expression":{"id":3613,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"17631:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3609,"id":3614,"nodeType":"Return","src":"17624:8:14"}]}},{"assignments":[3618],"declarations":[{"constant":false,"id":3618,"mutability":"mutable","name":"aa","nameLocation":"18582:2:14","nodeType":"VariableDeclaration","scope":3819,"src":"18574:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3617,"name":"uint256","nodeType":"ElementaryTypeName","src":"18574:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3620,"initialValue":{"id":3619,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"18587:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18574:14:14"},{"assignments":[3622],"declarations":[{"constant":false,"id":3622,"mutability":"mutable","name":"xn","nameLocation":"18610:2:14","nodeType":"VariableDeclaration","scope":3819,"src":"18602:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3621,"name":"uint256","nodeType":"ElementaryTypeName","src":"18602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3624,"initialValue":{"hexValue":"31","id":3623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18615:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"18602:14:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3625,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18635:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18642:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18647:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18642:8:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":3629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18641:10:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"src":"18635:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3640,"nodeType":"IfStatement","src":"18631:92:14","trueBody":{"id":3639,"nodeType":"Block","src":"18653:70:14","statements":[{"expression":{"id":3633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3631,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18671:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18678:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18671:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3634,"nodeType":"ExpressionStatement","src":"18671:10:14"},{"expression":{"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3635,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"18699:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":3636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18706:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18699:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3638,"nodeType":"ExpressionStatement","src":"18699:9:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3641,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18740:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":3644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18747:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18752:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18747:7:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":3645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18746:9:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"18740:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3656,"nodeType":"IfStatement","src":"18736:90:14","trueBody":{"id":3655,"nodeType":"Block","src":"18757:69:14","statements":[{"expression":{"id":3649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3647,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18775:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18782:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18775:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3650,"nodeType":"ExpressionStatement","src":"18775:9:14"},{"expression":{"id":3653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3651,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"18802:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":3652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18809:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18802:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3654,"nodeType":"ExpressionStatement","src":"18802:9:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3657,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18843:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":3660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18850:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18855:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18850:7:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":3661,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18849:9:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"18843:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3672,"nodeType":"IfStatement","src":"18839:90:14","trueBody":{"id":3671,"nodeType":"Block","src":"18860:69:14","statements":[{"expression":{"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3663,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18878:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18885:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18878:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3666,"nodeType":"ExpressionStatement","src":"18878:9:14"},{"expression":{"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3667,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"18905:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":3668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18912:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18905:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3670,"nodeType":"ExpressionStatement","src":"18905:9:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3673,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18946:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18953:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18958:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18953:7:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18952:9:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"18946:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3688,"nodeType":"IfStatement","src":"18942:89:14","trueBody":{"id":3687,"nodeType":"Block","src":"18963:68:14","statements":[{"expression":{"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3679,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"18981:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18988:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18981:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3682,"nodeType":"ExpressionStatement","src":"18981:9:14"},{"expression":{"id":3685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3683,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19008:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":3684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19015:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19008:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3686,"nodeType":"ExpressionStatement","src":"19008:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3689,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19048:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":3692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19055:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":3691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19060:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19055:6:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":3693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19054:8:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"src":"19048:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3704,"nodeType":"IfStatement","src":"19044:87:14","trueBody":{"id":3703,"nodeType":"Block","src":"19064:67:14","statements":[{"expression":{"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3695,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19082:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19089:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19082:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3698,"nodeType":"ExpressionStatement","src":"19082:8:14"},{"expression":{"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3699,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19108:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":3700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19115:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19108:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3702,"nodeType":"ExpressionStatement","src":"19108:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3705,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19148:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":3708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19155:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":3707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19160:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19155:6:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":3709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19154:8:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"src":"19148:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3720,"nodeType":"IfStatement","src":"19144:87:14","trueBody":{"id":3719,"nodeType":"Block","src":"19164:67:14","statements":[{"expression":{"id":3713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3711,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19182:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19189:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19182:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3714,"nodeType":"ExpressionStatement","src":"19182:8:14"},{"expression":{"id":3717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3715,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19208:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":3716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19215:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19208:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3718,"nodeType":"ExpressionStatement","src":"19208:8:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3721,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"19248:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":3724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19255:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":3723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19260:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19255:6:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":3725,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19254:8:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"src":"19248:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3732,"nodeType":"IfStatement","src":"19244:61:14","trueBody":{"id":3731,"nodeType":"Block","src":"19264:41:14","statements":[{"expression":{"id":3729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3727,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19282:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":3728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19289:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19282:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3730,"nodeType":"ExpressionStatement","src":"19282:8:14"}]}},{"expression":{"id":3740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3733,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19725:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19731:1:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3735,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"19735:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19731:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19730:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19742:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19730:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3741,"nodeType":"ExpressionStatement","src":"19725:18:14"},{"expression":{"id":3751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3742,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21630:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3743,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21636:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3744,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21641:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3745,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21645:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21641:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21636:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21635:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21652:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21635:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21630:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3752,"nodeType":"ExpressionStatement","src":"21630:23:14"},{"expression":{"id":3762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3753,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21739:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3754,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21745:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3755,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21750:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3756,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21754:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21750:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21745:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3759,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21744:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21761:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21744:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21739:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3763,"nodeType":"ExpressionStatement","src":"21739:23:14"},{"expression":{"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3764,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21850:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3765,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21856:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3766,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21861:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3767,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21865:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21861:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21856:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3770,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21855:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21872:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21855:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21850:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3774,"nodeType":"ExpressionStatement","src":"21850:23:14"},{"expression":{"id":3784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3775,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21959:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3776,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21965:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3777,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"21970:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3778,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"21974:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21970:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21965:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3781,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21964:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21981:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21964:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21959:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3785,"nodeType":"ExpressionStatement","src":"21959:23:14"},{"expression":{"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3786,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22069:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3787,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22075:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3788,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"22080:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3789,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22084:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22080:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22075:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22074:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22091:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22074:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22069:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3796,"nodeType":"ExpressionStatement","src":"22069:23:14"},{"expression":{"id":3806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3797,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22179:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3798,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22185:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3799,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"22190:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3800,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22194:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22190:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22185:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3803,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22184:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22201:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22184:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22179:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3807,"nodeType":"ExpressionStatement","src":"22179:23:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3808,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22568:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3811,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22589:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3812,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"22594:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3813,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"22598:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22594:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22589:11:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3809,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"22573:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22582:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"22573:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22568:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3609,"id":3818,"nodeType":"Return","src":"22561:40:14"}]}]},"documentation":{"id":3603,"nodeType":"StructuredDocumentation","src":"17140:292: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 This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations."},"id":3821,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"17446:4:14","nodeType":"FunctionDefinition","parameters":{"id":3606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3605,"mutability":"mutable","name":"a","nameLocation":"17459:1:14","nodeType":"VariableDeclaration","scope":3821,"src":"17451:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"17451:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17450:11:14"},"returnParameters":{"id":3609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3821,"src":"17485:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3607,"name":"uint256","nodeType":"ElementaryTypeName","src":"17485:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17484:9:14"},"scope":4442,"src":"17437:5181:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3854,"nodeType":"Block","src":"22791:171:14","statements":[{"id":3853,"nodeType":"UncheckedBlock","src":"22801:155:14","statements":[{"assignments":[3833],"declarations":[{"constant":false,"id":3833,"mutability":"mutable","name":"result","nameLocation":"22833:6:14","nodeType":"VariableDeclaration","scope":3853,"src":"22825:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3832,"name":"uint256","nodeType":"ElementaryTypeName","src":"22825:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3837,"initialValue":{"arguments":[{"id":3835,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"22847:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3834,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[3821,3855],"referencedDeclaration":3821,"src":"22842:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:7:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22825:24:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3838,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"22870:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3842,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3827,"src":"22912:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":3841,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"22895:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22895:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3844,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"22925:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3845,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"22934:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22925:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3847,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"22943:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22925:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22895:49:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3839,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"22879:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22888:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"22879:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22879:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22870:75:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3831,"id":3852,"nodeType":"Return","src":"22863:82:14"}]}]},"documentation":{"id":3822,"nodeType":"StructuredDocumentation","src":"22624:86:14","text":" @dev Calculates sqrt(a), following the selected rounding direction."},"id":3855,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"22724:4:14","nodeType":"FunctionDefinition","parameters":{"id":3828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3824,"mutability":"mutable","name":"a","nameLocation":"22737:1:14","nodeType":"VariableDeclaration","scope":3855,"src":"22729:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3823,"name":"uint256","nodeType":"ElementaryTypeName","src":"22729:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3827,"mutability":"mutable","name":"rounding","nameLocation":"22749:8:14","nodeType":"VariableDeclaration","scope":3855,"src":"22740:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":3826,"nodeType":"UserDefinedTypeName","pathNode":{"id":3825,"name":"Rounding","nameLocations":["22740:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"22740:8:14"},"referencedDeclaration":2869,"src":"22740:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"22728:30:14"},"returnParameters":{"id":3831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3855,"src":"22782:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22782:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22781:9:14"},"scope":4442,"src":"22715:247:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4050,"nodeType":"Block","src":"23153:981:14","statements":[{"assignments":[3864],"declarations":[{"constant":false,"id":3864,"mutability":"mutable","name":"result","nameLocation":"23171:6:14","nodeType":"VariableDeclaration","scope":4050,"src":"23163:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3863,"name":"uint256","nodeType":"ElementaryTypeName","src":"23163:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3866,"initialValue":{"hexValue":"30","id":3865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23180:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23163:18:14"},{"assignments":[3868],"declarations":[{"constant":false,"id":3868,"mutability":"mutable","name":"exp","nameLocation":"23199:3:14","nodeType":"VariableDeclaration","scope":4050,"src":"23191:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3867,"name":"uint256","nodeType":"ElementaryTypeName","src":"23191:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3869,"nodeType":"VariableDeclarationStatement","src":"23191:11:14"},{"id":4047,"nodeType":"UncheckedBlock","src":"23212:893:14","statements":[{"expression":{"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3870,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23236:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313238","id":3871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23242:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3874,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23264:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":3880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23273:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23278:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"23273:8:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":3878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23272:10:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23285:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23272:14:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"23264:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3872,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23248:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23257:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23248:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23248:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23242:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23236:51:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3885,"nodeType":"ExpressionStatement","src":"23236:51:14"},{"expression":{"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23301:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3887,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23311:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23301:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3889,"nodeType":"ExpressionStatement","src":"23301:13:14"},{"expression":{"id":3892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3890,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23328:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3891,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23338:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23328:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3893,"nodeType":"ExpressionStatement","src":"23328:13:14"},{"expression":{"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3894,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23356:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3634","id":3895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23362:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23383:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":3904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":3901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23392:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23397:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"23392:7:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":3902,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23391:9:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23403:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23391:13:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"23383:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3896,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23367:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23376:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23367:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23367:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23362:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23356:49:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3909,"nodeType":"ExpressionStatement","src":"23356:49:14"},{"expression":{"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3910,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23419:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3911,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23429:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23419:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3913,"nodeType":"ExpressionStatement","src":"23419:13:14"},{"expression":{"id":3916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3914,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23446:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3915,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23456:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23446:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3917,"nodeType":"ExpressionStatement","src":"23446:13:14"},{"expression":{"id":3932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3918,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23474:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":3919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23480:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23501:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":3928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":3925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23510:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"23510:7:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":3926,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23509:9:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23521:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23509:13:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"23501:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3920,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23485:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23485:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23485:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23480:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23474:49:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3933,"nodeType":"ExpressionStatement","src":"23474:49:14"},{"expression":{"id":3936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23537:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3935,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23547:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23537:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3937,"nodeType":"ExpressionStatement","src":"23537:13:14"},{"expression":{"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3938,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23564:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3939,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23574:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23564:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3941,"nodeType":"ExpressionStatement","src":"23564:13:14"},{"expression":{"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3942,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23592:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3136","id":3943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23598:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23619:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":3952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23628:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23633:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"23628:7:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23627:9:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23639:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23627:13:14","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"23619:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3944,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23603:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23612:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23603:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23598:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23592:49:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3957,"nodeType":"ExpressionStatement","src":"23592:49:14"},{"expression":{"id":3960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3958,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23655:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3959,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23665:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23655:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3961,"nodeType":"ExpressionStatement","src":"23655:13:14"},{"expression":{"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3962,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23682:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3963,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23692:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23682:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3965,"nodeType":"ExpressionStatement","src":"23682:13:14"},{"expression":{"id":3980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3966,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23710:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":3967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23716:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3970,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23736:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":3976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":3973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23745:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":3972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23750:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"23745:6:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":3974,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23744:8:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23755:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23744:12:14","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"23736:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3968,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23720:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23729:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23720:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23720:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23716:41:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23710:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3981,"nodeType":"ExpressionStatement","src":"23710:47:14"},{"expression":{"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23771:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3983,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23781:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23771:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3985,"nodeType":"ExpressionStatement","src":"23771:13:14"},{"expression":{"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3986,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23798:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3987,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23808:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23798:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3989,"nodeType":"ExpressionStatement","src":"23798:13:14"},{"expression":{"id":4004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3990,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23826:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":3991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23832:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3994,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23852:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"id":4000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":3997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23861:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":3996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23866:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"23861:6:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":3998,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23860:8:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23871:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23860:12:14","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"}},"src":"23852:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3992,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23836:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":3993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23845:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23836:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23836:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23832:41:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23826:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4005,"nodeType":"ExpressionStatement","src":"23826:47:14"},{"expression":{"id":4008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4006,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23887:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4007,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23897:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23887:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4009,"nodeType":"ExpressionStatement","src":"23887:13:14"},{"expression":{"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4010,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"23914:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4011,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23924:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23914:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4013,"nodeType":"ExpressionStatement","src":"23914:13:14"},{"expression":{"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4014,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"23942:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23948:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4018,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"23968:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"id":4024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":4021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23977:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":4020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23982:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"23977:6:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":4022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23976:8:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23987:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23976:12:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}},"src":"23968:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4016,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"23952:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23961:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"23952:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23952:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23948:41:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23942:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4029,"nodeType":"ExpressionStatement","src":"23942:47:14"},{"expression":{"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4030,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"24003:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4031,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"24013:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24003:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4033,"nodeType":"ExpressionStatement","src":"24003:13:14"},{"expression":{"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4034,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"24030:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4035,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"24040:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24030:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4037,"nodeType":"ExpressionStatement","src":"24030:13:14"},{"expression":{"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4038,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"24058:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4041,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"24084:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":4042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24092:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24084:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4039,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"24068:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24077:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"24068:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24068:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24058:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4046,"nodeType":"ExpressionStatement","src":"24058:36:14"}]},{"expression":{"id":4048,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"24121:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3862,"id":4049,"nodeType":"Return","src":"24114:13:14"}]},"documentation":{"id":3856,"nodeType":"StructuredDocumentation","src":"22968:119:14","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":4051,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"23101:4:14","nodeType":"FunctionDefinition","parameters":{"id":3859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3858,"mutability":"mutable","name":"value","nameLocation":"23114:5:14","nodeType":"VariableDeclaration","scope":4051,"src":"23106:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3857,"name":"uint256","nodeType":"ElementaryTypeName","src":"23106:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23105:15:14"},"returnParameters":{"id":3862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4051,"src":"23144:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3860,"name":"uint256","nodeType":"ElementaryTypeName","src":"23144:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23143:9:14"},"scope":4442,"src":"23092:1042:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4084,"nodeType":"Block","src":"24367:175:14","statements":[{"id":4083,"nodeType":"UncheckedBlock","src":"24377:159:14","statements":[{"assignments":[4063],"declarations":[{"constant":false,"id":4063,"mutability":"mutable","name":"result","nameLocation":"24409:6:14","nodeType":"VariableDeclaration","scope":4083,"src":"24401:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4062,"name":"uint256","nodeType":"ElementaryTypeName","src":"24401:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4067,"initialValue":{"arguments":[{"id":4065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4054,"src":"24423:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4064,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4051,4085],"referencedDeclaration":4051,"src":"24418:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24418:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24401:28:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4068,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"24450:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4072,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4057,"src":"24492:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4071,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"24475:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24475:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24505:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":4075,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"24510:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24505:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4054,"src":"24519:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24505:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24475:49:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4069,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"24459:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24468:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"24459:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24459:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24450:75:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4061,"id":4082,"nodeType":"Return","src":"24443:82:14"}]}]},"documentation":{"id":4052,"nodeType":"StructuredDocumentation","src":"24140: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":4085,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"24296:4:14","nodeType":"FunctionDefinition","parameters":{"id":4058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4054,"mutability":"mutable","name":"value","nameLocation":"24309:5:14","nodeType":"VariableDeclaration","scope":4085,"src":"24301:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4053,"name":"uint256","nodeType":"ElementaryTypeName","src":"24301:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4057,"mutability":"mutable","name":"rounding","nameLocation":"24325:8:14","nodeType":"VariableDeclaration","scope":4085,"src":"24316:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4056,"nodeType":"UserDefinedTypeName","pathNode":{"id":4055,"name":"Rounding","nameLocations":["24316:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"24316:8:14"},"referencedDeclaration":2869,"src":"24316:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"24300:34:14"},"returnParameters":{"id":4061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4060,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4085,"src":"24358:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4059,"name":"uint256","nodeType":"ElementaryTypeName","src":"24358:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24357:9:14"},"scope":4442,"src":"24287:255:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4213,"nodeType":"Block","src":"24735:854:14","statements":[{"assignments":[4094],"declarations":[{"constant":false,"id":4094,"mutability":"mutable","name":"result","nameLocation":"24753:6:14","nodeType":"VariableDeclaration","scope":4213,"src":"24745:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4093,"name":"uint256","nodeType":"ElementaryTypeName","src":"24745:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4096,"initialValue":{"hexValue":"30","id":4095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24762:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24745:18:14"},{"id":4210,"nodeType":"UncheckedBlock","src":"24773:787:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4097,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24801:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":4100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24810:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24816:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24810:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"24801:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4113,"nodeType":"IfStatement","src":"24797:103:14","trueBody":{"id":4112,"nodeType":"Block","src":"24820:80:14","statements":[{"expression":{"id":4106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4102,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24838:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":4105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24847:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24853:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24847:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"24838:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4107,"nodeType":"ExpressionStatement","src":"24838:17:14"},{"expression":{"id":4110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4108,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"24873:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":4109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24883:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24873:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4111,"nodeType":"ExpressionStatement","src":"24873:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4114,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24917:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":4117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24926:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24932:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24926:8:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"24917:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4130,"nodeType":"IfStatement","src":"24913:103:14","trueBody":{"id":4129,"nodeType":"Block","src":"24936:80:14","statements":[{"expression":{"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"24954:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":4122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24963:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24969:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24963:8:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"24954:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4124,"nodeType":"ExpressionStatement","src":"24954:17:14"},{"expression":{"id":4127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4125,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"24989:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24999:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24989:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4128,"nodeType":"ExpressionStatement","src":"24989:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25033:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25042:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25048:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25042:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25033:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4147,"nodeType":"IfStatement","src":"25029:103:14","trueBody":{"id":4146,"nodeType":"Block","src":"25052:80:14","statements":[{"expression":{"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4136,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25070:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25079:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25085:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25079:8:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25070:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4141,"nodeType":"ExpressionStatement","src":"25070:17:14"},{"expression":{"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4142,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25105:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25115:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25105:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4145,"nodeType":"ExpressionStatement","src":"25105:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4148,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25149:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25158:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25164:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25158:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25149:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4164,"nodeType":"IfStatement","src":"25145:100:14","trueBody":{"id":4163,"nodeType":"Block","src":"25167:78:14","statements":[{"expression":{"id":4157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4153,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25185:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25194:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25200:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25194:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25185:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4158,"nodeType":"ExpressionStatement","src":"25185:16:14"},{"expression":{"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4159,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25219:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25229:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25219:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4162,"nodeType":"ExpressionStatement","src":"25219:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25262:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25271:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25277:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25271:7:14","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25262:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4181,"nodeType":"IfStatement","src":"25258:100:14","trueBody":{"id":4180,"nodeType":"Block","src":"25280:78:14","statements":[{"expression":{"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4170,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25298:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25307:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25313:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25307:7:14","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25298:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4175,"nodeType":"ExpressionStatement","src":"25298:16:14"},{"expression":{"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4176,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25332:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25342:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25332:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4179,"nodeType":"ExpressionStatement","src":"25332:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4182,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25375:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25384:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25390:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25384:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"25375:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4198,"nodeType":"IfStatement","src":"25371:100:14","trueBody":{"id":4197,"nodeType":"Block","src":"25393:78:14","statements":[{"expression":{"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4187,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25411:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25420:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25426:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25420:7:14","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"25411:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4192,"nodeType":"ExpressionStatement","src":"25411:16:14"},{"expression":{"id":4195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4193,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25445:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25455:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25445:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4196,"nodeType":"ExpressionStatement","src":"25445:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4199,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"25488:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":4202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25497:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":4201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25503:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25497:7:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"25488:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4209,"nodeType":"IfStatement","src":"25484:66:14","trueBody":{"id":4208,"nodeType":"Block","src":"25506:44:14","statements":[{"expression":{"id":4206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4204,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25524:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25534:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25524:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4207,"nodeType":"ExpressionStatement","src":"25524:11:14"}]}}]},{"expression":{"id":4211,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4094,"src":"25576:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4092,"id":4212,"nodeType":"Return","src":"25569:13:14"}]},"documentation":{"id":4086,"nodeType":"StructuredDocumentation","src":"24548:120:14","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":4214,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"24682:5:14","nodeType":"FunctionDefinition","parameters":{"id":4089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4088,"mutability":"mutable","name":"value","nameLocation":"24696:5:14","nodeType":"VariableDeclaration","scope":4214,"src":"24688:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4087,"name":"uint256","nodeType":"ElementaryTypeName","src":"24688:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24687:15:14"},"returnParameters":{"id":4092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4214,"src":"24726:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4090,"name":"uint256","nodeType":"ElementaryTypeName","src":"24726:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24725:9:14"},"scope":4442,"src":"24673:916:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4247,"nodeType":"Block","src":"25824:177:14","statements":[{"id":4246,"nodeType":"UncheckedBlock","src":"25834:161:14","statements":[{"assignments":[4226],"declarations":[{"constant":false,"id":4226,"mutability":"mutable","name":"result","nameLocation":"25866:6:14","nodeType":"VariableDeclaration","scope":4246,"src":"25858:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4225,"name":"uint256","nodeType":"ElementaryTypeName","src":"25858:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4230,"initialValue":{"arguments":[{"id":4228,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"25881:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4227,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[4214,4248],"referencedDeclaration":4214,"src":"25875:5:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25875:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25858:29:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4231,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4226,"src":"25908:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4235,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4220,"src":"25950:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4234,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"25933:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25933:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25963:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":4238,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4226,"src":"25969:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25963:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"25978:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25963:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25933:50:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4232,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"25917:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25926:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"25917:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25917:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25908:76:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4224,"id":4245,"nodeType":"Return","src":"25901:83:14"}]}]},"documentation":{"id":4215,"nodeType":"StructuredDocumentation","src":"25595: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":4248,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"25752:5:14","nodeType":"FunctionDefinition","parameters":{"id":4221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4217,"mutability":"mutable","name":"value","nameLocation":"25766:5:14","nodeType":"VariableDeclaration","scope":4248,"src":"25758:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4216,"name":"uint256","nodeType":"ElementaryTypeName","src":"25758:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4220,"mutability":"mutable","name":"rounding","nameLocation":"25782:8:14","nodeType":"VariableDeclaration","scope":4248,"src":"25773:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4219,"nodeType":"UserDefinedTypeName","pathNode":{"id":4218,"name":"Rounding","nameLocations":["25773:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"25773:8:14"},"referencedDeclaration":2869,"src":"25773:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"25757:34:14"},"returnParameters":{"id":4224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4248,"src":"25815:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4222,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25814:9:14"},"scope":4442,"src":"25743:258:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4384,"nodeType":"Block","src":"26321:674:14","statements":[{"assignments":[4257],"declarations":[{"constant":false,"id":4257,"mutability":"mutable","name":"result","nameLocation":"26339:6:14","nodeType":"VariableDeclaration","scope":4384,"src":"26331:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4256,"name":"uint256","nodeType":"ElementaryTypeName","src":"26331:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4259,"initialValue":{"hexValue":"30","id":4258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26348:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26331:18:14"},{"assignments":[4261],"declarations":[{"constant":false,"id":4261,"mutability":"mutable","name":"isGt","nameLocation":"26367:4:14","nodeType":"VariableDeclaration","scope":4384,"src":"26359:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4260,"name":"uint256","nodeType":"ElementaryTypeName","src":"26359:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4262,"nodeType":"VariableDeclarationStatement","src":"26359:12:14"},{"id":4381,"nodeType":"UncheckedBlock","src":"26381:585:14","statements":[{"expression":{"id":4275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4263,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26405:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4266,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26428:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":4272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26437:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26442:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26437:8:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":4270,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26436:10:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26449:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26436:14:14","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"26428:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4264,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26412:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26421:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26412:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26412:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26405:46:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4276,"nodeType":"ExpressionStatement","src":"26405:46:14"},{"expression":{"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26465:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4278,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26475:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"313238","id":4279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26482:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26475:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26465:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4282,"nodeType":"ExpressionStatement","src":"26465:20:14"},{"expression":{"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4283,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26499:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4284,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26509:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":4285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26516:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26509:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26499:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4288,"nodeType":"ExpressionStatement","src":"26499:19:14"},{"expression":{"id":4301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4289,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26533:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4292,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26556:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":4298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":4295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":4294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26570:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"26565:7:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":4296,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26564:9:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26576:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26564:13:14","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"26556:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4290,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26540:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26549:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26540:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26540:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26533:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4302,"nodeType":"ExpressionStatement","src":"26533:45:14"},{"expression":{"id":4307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4303,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26592:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4304,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26602:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":4305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26609:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"26602:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26592:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4308,"nodeType":"ExpressionStatement","src":"26592:19:14"},{"expression":{"id":4313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4309,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26625:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4310,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26635:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":4311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26642:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"26635:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26625:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4314,"nodeType":"ExpressionStatement","src":"26625:18:14"},{"expression":{"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4315,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26658:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26681:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":4324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":4321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26690:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":4320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26695:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"26690:7:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":4322,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26689:9:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26701:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26689:13:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"26681:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4316,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26665:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26674:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26665:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26665:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26658:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4328,"nodeType":"ExpressionStatement","src":"26658:45:14"},{"expression":{"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26717:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4330,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26727:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":4331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26734:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"26727:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26717:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4334,"nodeType":"ExpressionStatement","src":"26717:19:14"},{"expression":{"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26750:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4336,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26760:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"34","id":4337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26767:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"26760:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26750:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4340,"nodeType":"ExpressionStatement","src":"26750:18:14"},{"expression":{"id":4353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4341,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26783:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4344,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26806:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":4350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":4347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26815:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":4346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26820:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26815:7:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":4348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26814:9:14","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26826:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26814:13:14","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"26806:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4342,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26790:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26799:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26790:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26790:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26783:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4354,"nodeType":"ExpressionStatement","src":"26783:45:14"},{"expression":{"id":4359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4355,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26842:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4356,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26852:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":4357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26859:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26852:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26842:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4360,"nodeType":"ExpressionStatement","src":"26842:19:14"},{"expression":{"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4361,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26875:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4362,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"26885:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":4363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26892:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26885:8:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26875:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4366,"nodeType":"ExpressionStatement","src":"26875:18:14"},{"expression":{"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4367,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26908:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4370,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"26934:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":4376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":4373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26943:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":4372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26948:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"26943:6:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":4374,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26942:8:14","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26953:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26942:12:14","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"26934:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4368,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"26918:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26927:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"26918:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26918:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26908:47:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4380,"nodeType":"ExpressionStatement","src":"26908:47:14"}]},{"expression":{"id":4382,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"26982:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4255,"id":4383,"nodeType":"Return","src":"26975:13:14"}]},"documentation":{"id":4249,"nodeType":"StructuredDocumentation","src":"26007: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":4385,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"26267:6:14","nodeType":"FunctionDefinition","parameters":{"id":4252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4251,"mutability":"mutable","name":"value","nameLocation":"26282:5:14","nodeType":"VariableDeclaration","scope":4385,"src":"26274:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4250,"name":"uint256","nodeType":"ElementaryTypeName","src":"26274:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26273:15:14"},"returnParameters":{"id":4255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4385,"src":"26312:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4253,"name":"uint256","nodeType":"ElementaryTypeName","src":"26312:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26311:9:14"},"scope":4442,"src":"26258:737:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4421,"nodeType":"Block","src":"27232:184:14","statements":[{"id":4420,"nodeType":"UncheckedBlock","src":"27242:168:14","statements":[{"assignments":[4397],"declarations":[{"constant":false,"id":4397,"mutability":"mutable","name":"result","nameLocation":"27274:6:14","nodeType":"VariableDeclaration","scope":4420,"src":"27266:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4396,"name":"uint256","nodeType":"ElementaryTypeName","src":"27266:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4401,"initialValue":{"arguments":[{"id":4399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4388,"src":"27290:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4398,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[4385,4422],"referencedDeclaration":4385,"src":"27283:6:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27283:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27266:30:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4402,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"27317:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4406,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4391,"src":"27359:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4405,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"27342:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2869_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27342:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27372:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4409,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"27378:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":4410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27388:1:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"27378:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4412,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27377:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27372:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4414,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4388,"src":"27393:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27372:26:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27342:56:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4403,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6207,"src":"27326:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6207_$","typeString":"type(library SafeCast)"}},"id":4404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27335:6:14","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"27326:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27326:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27317:82:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4395,"id":4419,"nodeType":"Return","src":"27310:89:14"}]}]},"documentation":{"id":4386,"nodeType":"StructuredDocumentation","src":"27001: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":4422,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"27159:6:14","nodeType":"FunctionDefinition","parameters":{"id":4392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4388,"mutability":"mutable","name":"value","nameLocation":"27174:5:14","nodeType":"VariableDeclaration","scope":4422,"src":"27166:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4387,"name":"uint256","nodeType":"ElementaryTypeName","src":"27166:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4391,"mutability":"mutable","name":"rounding","nameLocation":"27190:8:14","nodeType":"VariableDeclaration","scope":4422,"src":"27181:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4390,"nodeType":"UserDefinedTypeName","pathNode":{"id":4389,"name":"Rounding","nameLocations":["27181:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"27181:8:14"},"referencedDeclaration":2869,"src":"27181:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27165:34:14"},"returnParameters":{"id":4395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4422,"src":"27223:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4393,"name":"uint256","nodeType":"ElementaryTypeName","src":"27223:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27222:9:14"},"scope":4442,"src":"27150:266:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4440,"nodeType":"Block","src":"27614:48:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4433,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"27637:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}],"id":4432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27631:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4431,"name":"uint8","nodeType":"ElementaryTypeName","src":"27631:5:14","typeDescriptions":{}}},"id":4434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27631:15:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":4435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27649:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"27631:19:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27654:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27631:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4430,"id":4439,"nodeType":"Return","src":"27624:31:14"}]},"documentation":{"id":4423,"nodeType":"StructuredDocumentation","src":"27422:113:14","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":4441,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"27549:16:14","nodeType":"FunctionDefinition","parameters":{"id":4427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4426,"mutability":"mutable","name":"rounding","nameLocation":"27575:8:14","nodeType":"VariableDeclaration","scope":4441,"src":"27566:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"},"typeName":{"id":4425,"nodeType":"UserDefinedTypeName","pathNode":{"id":4424,"name":"Rounding","nameLocations":["27566:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2869,"src":"27566:8:14"},"referencedDeclaration":2869,"src":"27566:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2869","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27565:19:14"},"returnParameters":{"id":4430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4441,"src":"27608:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4428,"name":"bool","nodeType":"ElementaryTypeName","src":"27608:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27607:6:14"},"scope":4442,"src":"27540:122:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4443,"src":"281:27383:14","usedErrors":[],"usedEvents":[]}],"src":"103:27562:14"},"id":14},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[6207]},"id":6208,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4444,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"192:24:15"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":4445,"nodeType":"StructuredDocumentation","src":"218:550:15","text":" @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"id":6207,"linearizedBaseContracts":[6207],"name":"SafeCast","nameLocation":"777:8:15","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4446,"nodeType":"StructuredDocumentation","src":"792:68:15","text":" @dev Value doesn't fit in an uint of `bits` size."},"errorSelector":"6dfcc650","id":4452,"name":"SafeCastOverflowedUintDowncast","nameLocation":"871:30:15","nodeType":"ErrorDefinition","parameters":{"id":4451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4448,"mutability":"mutable","name":"bits","nameLocation":"908:4:15","nodeType":"VariableDeclaration","scope":4452,"src":"902:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4447,"name":"uint8","nodeType":"ElementaryTypeName","src":"902:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4450,"mutability":"mutable","name":"value","nameLocation":"922:5:15","nodeType":"VariableDeclaration","scope":4452,"src":"914:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4449,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"901:27:15"},"src":"865:64:15"},{"documentation":{"id":4453,"nodeType":"StructuredDocumentation","src":"935:75:15","text":" @dev An int value doesn't fit in an uint of `bits` size."},"errorSelector":"a8ce4432","id":4457,"name":"SafeCastOverflowedIntToUint","nameLocation":"1021:27:15","nodeType":"ErrorDefinition","parameters":{"id":4456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"value","nameLocation":"1056:5:15","nodeType":"VariableDeclaration","scope":4457,"src":"1049:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4454,"name":"int256","nodeType":"ElementaryTypeName","src":"1049:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1048:14:15"},"src":"1015:48:15"},{"documentation":{"id":4458,"nodeType":"StructuredDocumentation","src":"1069:67:15","text":" @dev Value doesn't fit in an int of `bits` size."},"errorSelector":"327269a7","id":4464,"name":"SafeCastOverflowedIntDowncast","nameLocation":"1147:29:15","nodeType":"ErrorDefinition","parameters":{"id":4463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4460,"mutability":"mutable","name":"bits","nameLocation":"1183:4:15","nodeType":"VariableDeclaration","scope":4464,"src":"1177:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4459,"name":"uint8","nodeType":"ElementaryTypeName","src":"1177:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4462,"mutability":"mutable","name":"value","nameLocation":"1196:5:15","nodeType":"VariableDeclaration","scope":4464,"src":"1189:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4461,"name":"int256","nodeType":"ElementaryTypeName","src":"1189:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1176:26:15"},"src":"1141:62:15"},{"documentation":{"id":4465,"nodeType":"StructuredDocumentation","src":"1209:75:15","text":" @dev An uint value doesn't fit in an int of `bits` size."},"errorSelector":"24775e06","id":4469,"name":"SafeCastOverflowedUintToInt","nameLocation":"1295:27:15","nodeType":"ErrorDefinition","parameters":{"id":4468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4467,"mutability":"mutable","name":"value","nameLocation":"1331:5:15","nodeType":"VariableDeclaration","scope":4469,"src":"1323:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4466,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1322:15:15"},"src":"1289:49:15"},{"body":{"id":4496,"nodeType":"Block","src":"1695:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4472,"src":"1709:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1722:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":4479,"name":"uint248","nodeType":"ElementaryTypeName","src":"1722:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":4478,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1717:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1717:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":4482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1731:3:15","memberName":"max","nodeType":"MemberAccess","src":"1717:17:15","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1709:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4490,"nodeType":"IfStatement","src":"1705:105:15","trueBody":{"id":4489,"nodeType":"Block","src":"1736:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":4485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1788:3:15","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":4486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4472,"src":"1793:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4484,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"1757:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4488,"nodeType":"RevertStatement","src":"1750:49:15"}]}},{"expression":{"arguments":[{"id":4493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4472,"src":"1834:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1826:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":4491,"name":"uint248","nodeType":"ElementaryTypeName","src":"1826:7:15","typeDescriptions":{}}},"id":4494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":4476,"id":4495,"nodeType":"Return","src":"1819:21:15"}]},"documentation":{"id":4470,"nodeType":"StructuredDocumentation","src":"1344:280:15","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":4497,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1638:9:15","nodeType":"FunctionDefinition","parameters":{"id":4473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4472,"mutability":"mutable","name":"value","nameLocation":"1656:5:15","nodeType":"VariableDeclaration","scope":4497,"src":"1648:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4471,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1647:15:15"},"returnParameters":{"id":4476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4497,"src":"1686:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":4474,"name":"uint248","nodeType":"ElementaryTypeName","src":"1686:7:15","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1685:9:15"},"scope":6207,"src":"1629:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4524,"nodeType":"Block","src":"2204:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4505,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"2218:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2231:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":4507,"name":"uint240","nodeType":"ElementaryTypeName","src":"2231:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":4506,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2226:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2240:3:15","memberName":"max","nodeType":"MemberAccess","src":"2226:17:15","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"2218:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4518,"nodeType":"IfStatement","src":"2214:105:15","trueBody":{"id":4517,"nodeType":"Block","src":"2245:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":4513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:3:15","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":4514,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"2302:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4512,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"2266:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4516,"nodeType":"RevertStatement","src":"2259:49:15"}]}},{"expression":{"arguments":[{"id":4521,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"2343:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2335:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":4519,"name":"uint240","nodeType":"ElementaryTypeName","src":"2335:7:15","typeDescriptions":{}}},"id":4522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":4504,"id":4523,"nodeType":"Return","src":"2328:21:15"}]},"documentation":{"id":4498,"nodeType":"StructuredDocumentation","src":"1853:280:15","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":4525,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"2147:9:15","nodeType":"FunctionDefinition","parameters":{"id":4501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4500,"mutability":"mutable","name":"value","nameLocation":"2165:5:15","nodeType":"VariableDeclaration","scope":4525,"src":"2157:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2156:15:15"},"returnParameters":{"id":4504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4525,"src":"2195:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":4502,"name":"uint240","nodeType":"ElementaryTypeName","src":"2195:7:15","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"2194:9:15"},"scope":6207,"src":"2138:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4552,"nodeType":"Block","src":"2713:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"2727:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":4535,"name":"uint232","nodeType":"ElementaryTypeName","src":"2740:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":4534,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2735:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":4538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2749:3:15","memberName":"max","nodeType":"MemberAccess","src":"2735:17:15","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2727:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4546,"nodeType":"IfStatement","src":"2723:105:15","trueBody":{"id":4545,"nodeType":"Block","src":"2754:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":4541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:3:15","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":4542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"2811:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4540,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"2775:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4544,"nodeType":"RevertStatement","src":"2768:49:15"}]}},{"expression":{"arguments":[{"id":4549,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"2852:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":4547,"name":"uint232","nodeType":"ElementaryTypeName","src":"2844:7:15","typeDescriptions":{}}},"id":4550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":4532,"id":4551,"nodeType":"Return","src":"2837:21:15"}]},"documentation":{"id":4526,"nodeType":"StructuredDocumentation","src":"2362:280:15","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":4553,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2656:9:15","nodeType":"FunctionDefinition","parameters":{"id":4529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4528,"mutability":"mutable","name":"value","nameLocation":"2674:5:15","nodeType":"VariableDeclaration","scope":4553,"src":"2666:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4527,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:15:15"},"returnParameters":{"id":4532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4553,"src":"2704:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":4530,"name":"uint232","nodeType":"ElementaryTypeName","src":"2704:7:15","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2703:9:15"},"scope":6207,"src":"2647:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4580,"nodeType":"Block","src":"3222:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4561,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"3236:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3249:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":4563,"name":"uint224","nodeType":"ElementaryTypeName","src":"3249:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":4562,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3244:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":4566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:3:15","memberName":"max","nodeType":"MemberAccess","src":"3244:17:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3236:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4574,"nodeType":"IfStatement","src":"3232:105:15","trueBody":{"id":4573,"nodeType":"Block","src":"3263:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":4569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3315:3:15","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":4570,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"3320:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4568,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"3284:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3284:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4572,"nodeType":"RevertStatement","src":"3277:49:15"}]}},{"expression":{"arguments":[{"id":4577,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"3361:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3353:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":4575,"name":"uint224","nodeType":"ElementaryTypeName","src":"3353:7:15","typeDescriptions":{}}},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":4560,"id":4579,"nodeType":"Return","src":"3346:21:15"}]},"documentation":{"id":4554,"nodeType":"StructuredDocumentation","src":"2871:280:15","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":4581,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"3165:9:15","nodeType":"FunctionDefinition","parameters":{"id":4557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4556,"mutability":"mutable","name":"value","nameLocation":"3183:5:15","nodeType":"VariableDeclaration","scope":4581,"src":"3175:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4555,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:15:15"},"returnParameters":{"id":4560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4581,"src":"3213:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":4558,"name":"uint224","nodeType":"ElementaryTypeName","src":"3213:7:15","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3212:9:15"},"scope":6207,"src":"3156:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4608,"nodeType":"Block","src":"3731:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4589,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"3745:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3758:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":4591,"name":"uint216","nodeType":"ElementaryTypeName","src":"3758:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":4590,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3753:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":4594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3767:3:15","memberName":"max","nodeType":"MemberAccess","src":"3753:17:15","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3745:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4602,"nodeType":"IfStatement","src":"3741:105:15","trueBody":{"id":4601,"nodeType":"Block","src":"3772:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3824:3:15","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":4598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"3829:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4596,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"3793:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4600,"nodeType":"RevertStatement","src":"3786:49:15"}]}},{"expression":{"arguments":[{"id":4605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"3870:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3862:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":4603,"name":"uint216","nodeType":"ElementaryTypeName","src":"3862:7:15","typeDescriptions":{}}},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":4588,"id":4607,"nodeType":"Return","src":"3855:21:15"}]},"documentation":{"id":4582,"nodeType":"StructuredDocumentation","src":"3380:280:15","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":4609,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3674:9:15","nodeType":"FunctionDefinition","parameters":{"id":4585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4584,"mutability":"mutable","name":"value","nameLocation":"3692:5:15","nodeType":"VariableDeclaration","scope":4609,"src":"3684:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4583,"name":"uint256","nodeType":"ElementaryTypeName","src":"3684:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3683:15:15"},"returnParameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4609,"src":"3722:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":4586,"name":"uint216","nodeType":"ElementaryTypeName","src":"3722:7:15","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3721:9:15"},"scope":6207,"src":"3665:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4636,"nodeType":"Block","src":"4240:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4617,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"4254:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4267:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":4619,"name":"uint208","nodeType":"ElementaryTypeName","src":"4267:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":4618,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4262:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":4622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4276:3:15","memberName":"max","nodeType":"MemberAccess","src":"4262:17:15","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"4254:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4630,"nodeType":"IfStatement","src":"4250:105:15","trueBody":{"id":4629,"nodeType":"Block","src":"4281:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":4625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:3:15","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":4626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"4338:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4624,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4302:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4628,"nodeType":"RevertStatement","src":"4295:49:15"}]}},{"expression":{"arguments":[{"id":4633,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"4379:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4371:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":4631,"name":"uint208","nodeType":"ElementaryTypeName","src":"4371:7:15","typeDescriptions":{}}},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4371:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":4616,"id":4635,"nodeType":"Return","src":"4364:21:15"}]},"documentation":{"id":4610,"nodeType":"StructuredDocumentation","src":"3889:280:15","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":4637,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"4183:9:15","nodeType":"FunctionDefinition","parameters":{"id":4613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4612,"mutability":"mutable","name":"value","nameLocation":"4201:5:15","nodeType":"VariableDeclaration","scope":4637,"src":"4193:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4611,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4192:15:15"},"returnParameters":{"id":4616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4637,"src":"4231:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":4614,"name":"uint208","nodeType":"ElementaryTypeName","src":"4231:7:15","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"4230:9:15"},"scope":6207,"src":"4174:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4664,"nodeType":"Block","src":"4749:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4645,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4640,"src":"4763:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4776:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":4647,"name":"uint200","nodeType":"ElementaryTypeName","src":"4776:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":4646,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4771:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":4650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4785:3:15","memberName":"max","nodeType":"MemberAccess","src":"4771:17:15","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4763:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4658,"nodeType":"IfStatement","src":"4759:105:15","trueBody":{"id":4657,"nodeType":"Block","src":"4790:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":4653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:3:15","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":4654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4640,"src":"4847:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4652,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4811:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4656,"nodeType":"RevertStatement","src":"4804:49:15"}]}},{"expression":{"arguments":[{"id":4661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4640,"src":"4888:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4880:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":4659,"name":"uint200","nodeType":"ElementaryTypeName","src":"4880:7:15","typeDescriptions":{}}},"id":4662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":4644,"id":4663,"nodeType":"Return","src":"4873:21:15"}]},"documentation":{"id":4638,"nodeType":"StructuredDocumentation","src":"4398:280:15","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":4665,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4692:9:15","nodeType":"FunctionDefinition","parameters":{"id":4641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4640,"mutability":"mutable","name":"value","nameLocation":"4710:5:15","nodeType":"VariableDeclaration","scope":4665,"src":"4702:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4639,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4701:15:15"},"returnParameters":{"id":4644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4665,"src":"4740:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":4642,"name":"uint200","nodeType":"ElementaryTypeName","src":"4740:7:15","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4739:9:15"},"scope":6207,"src":"4683:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4692,"nodeType":"Block","src":"5258:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4673,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4668,"src":"5272:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5285:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":4675,"name":"uint192","nodeType":"ElementaryTypeName","src":"5285:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":4674,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5280:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":4678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5294:3:15","memberName":"max","nodeType":"MemberAccess","src":"5280:17:15","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5272:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4686,"nodeType":"IfStatement","src":"5268:105:15","trueBody":{"id":4685,"nodeType":"Block","src":"5299:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":4681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5351:3:15","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":4682,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4668,"src":"5356:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4680,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"5320:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4684,"nodeType":"RevertStatement","src":"5313:49:15"}]}},{"expression":{"arguments":[{"id":4689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4668,"src":"5397:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":4687,"name":"uint192","nodeType":"ElementaryTypeName","src":"5389:7:15","typeDescriptions":{}}},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":4672,"id":4691,"nodeType":"Return","src":"5382:21:15"}]},"documentation":{"id":4666,"nodeType":"StructuredDocumentation","src":"4907:280:15","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":4693,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"5201:9:15","nodeType":"FunctionDefinition","parameters":{"id":4669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4668,"mutability":"mutable","name":"value","nameLocation":"5219:5:15","nodeType":"VariableDeclaration","scope":4693,"src":"5211:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4667,"name":"uint256","nodeType":"ElementaryTypeName","src":"5211:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5210:15:15"},"returnParameters":{"id":4672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4693,"src":"5249:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":4670,"name":"uint192","nodeType":"ElementaryTypeName","src":"5249:7:15","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"5248:9:15"},"scope":6207,"src":"5192:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4720,"nodeType":"Block","src":"5767:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4701,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4696,"src":"5781:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":4703,"name":"uint184","nodeType":"ElementaryTypeName","src":"5794:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":4702,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5789:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5803:3:15","memberName":"max","nodeType":"MemberAccess","src":"5789:17:15","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5781:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4714,"nodeType":"IfStatement","src":"5777:105:15","trueBody":{"id":4713,"nodeType":"Block","src":"5808:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":4709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5860:3:15","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":4710,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4696,"src":"5865:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4708,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"5829:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4712,"nodeType":"RevertStatement","src":"5822:49:15"}]}},{"expression":{"arguments":[{"id":4717,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4696,"src":"5906:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5898:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":4715,"name":"uint184","nodeType":"ElementaryTypeName","src":"5898:7:15","typeDescriptions":{}}},"id":4718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5898:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":4700,"id":4719,"nodeType":"Return","src":"5891:21:15"}]},"documentation":{"id":4694,"nodeType":"StructuredDocumentation","src":"5416:280:15","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":4721,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5710:9:15","nodeType":"FunctionDefinition","parameters":{"id":4697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4696,"mutability":"mutable","name":"value","nameLocation":"5728:5:15","nodeType":"VariableDeclaration","scope":4721,"src":"5720:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4695,"name":"uint256","nodeType":"ElementaryTypeName","src":"5720:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5719:15:15"},"returnParameters":{"id":4700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4721,"src":"5758:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":4698,"name":"uint184","nodeType":"ElementaryTypeName","src":"5758:7:15","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5757:9:15"},"scope":6207,"src":"5701:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4748,"nodeType":"Block","src":"6276:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4729,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"6290:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6303:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":4731,"name":"uint176","nodeType":"ElementaryTypeName","src":"6303:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":4730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6298:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":4734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6312:3:15","memberName":"max","nodeType":"MemberAccess","src":"6298:17:15","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6290:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4742,"nodeType":"IfStatement","src":"6286:105:15","trueBody":{"id":4741,"nodeType":"Block","src":"6317:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":4737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:3:15","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":4738,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"6374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4736,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"6338:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4740,"nodeType":"RevertStatement","src":"6331:49:15"}]}},{"expression":{"arguments":[{"id":4745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"6415:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6407:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":4743,"name":"uint176","nodeType":"ElementaryTypeName","src":"6407:7:15","typeDescriptions":{}}},"id":4746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":4728,"id":4747,"nodeType":"Return","src":"6400:21:15"}]},"documentation":{"id":4722,"nodeType":"StructuredDocumentation","src":"5925:280:15","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":4749,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"6219:9:15","nodeType":"FunctionDefinition","parameters":{"id":4725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4724,"mutability":"mutable","name":"value","nameLocation":"6237:5:15","nodeType":"VariableDeclaration","scope":4749,"src":"6229:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4723,"name":"uint256","nodeType":"ElementaryTypeName","src":"6229:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6228:15:15"},"returnParameters":{"id":4728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4749,"src":"6267:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":4726,"name":"uint176","nodeType":"ElementaryTypeName","src":"6267:7:15","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6266:9:15"},"scope":6207,"src":"6210:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4776,"nodeType":"Block","src":"6785:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4757,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"6799:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6812:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":4759,"name":"uint168","nodeType":"ElementaryTypeName","src":"6812:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":4758,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6807:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":4762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6821:3:15","memberName":"max","nodeType":"MemberAccess","src":"6807:17:15","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6799:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4770,"nodeType":"IfStatement","src":"6795:105:15","trueBody":{"id":4769,"nodeType":"Block","src":"6826:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":4765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6878:3:15","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":4766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"6883:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4764,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"6847:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6847:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4768,"nodeType":"RevertStatement","src":"6840:49:15"}]}},{"expression":{"arguments":[{"id":4773,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"6924:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":4771,"name":"uint168","nodeType":"ElementaryTypeName","src":"6916:7:15","typeDescriptions":{}}},"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":4756,"id":4775,"nodeType":"Return","src":"6909:21:15"}]},"documentation":{"id":4750,"nodeType":"StructuredDocumentation","src":"6434:280:15","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":4777,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6728:9:15","nodeType":"FunctionDefinition","parameters":{"id":4753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"value","nameLocation":"6746:5:15","nodeType":"VariableDeclaration","scope":4777,"src":"6738:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4751,"name":"uint256","nodeType":"ElementaryTypeName","src":"6738:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6737:15:15"},"returnParameters":{"id":4756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4777,"src":"6776:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":4754,"name":"uint168","nodeType":"ElementaryTypeName","src":"6776:7:15","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6775:9:15"},"scope":6207,"src":"6719:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4804,"nodeType":"Block","src":"7294:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4785,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"7308:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7321:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4787,"name":"uint160","nodeType":"ElementaryTypeName","src":"7321:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":4786,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7316:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7316:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":4790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7330:3:15","memberName":"max","nodeType":"MemberAccess","src":"7316:17:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7308:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4798,"nodeType":"IfStatement","src":"7304:105:15","trueBody":{"id":4797,"nodeType":"Block","src":"7335:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":4793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7387:3:15","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":4794,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"7392:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4792,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"7356:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4796,"nodeType":"RevertStatement","src":"7349:49:15"}]}},{"expression":{"arguments":[{"id":4801,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"7433:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7425:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4799,"name":"uint160","nodeType":"ElementaryTypeName","src":"7425:7:15","typeDescriptions":{}}},"id":4802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7425:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":4784,"id":4803,"nodeType":"Return","src":"7418:21:15"}]},"documentation":{"id":4778,"nodeType":"StructuredDocumentation","src":"6943:280:15","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":4805,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7237:9:15","nodeType":"FunctionDefinition","parameters":{"id":4781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4780,"mutability":"mutable","name":"value","nameLocation":"7255:5:15","nodeType":"VariableDeclaration","scope":4805,"src":"7247:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4779,"name":"uint256","nodeType":"ElementaryTypeName","src":"7247:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7246:15:15"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4805,"src":"7285:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":4782,"name":"uint160","nodeType":"ElementaryTypeName","src":"7285:7:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7284:9:15"},"scope":6207,"src":"7228:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4832,"nodeType":"Block","src":"7803:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"7817:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7830:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":4815,"name":"uint152","nodeType":"ElementaryTypeName","src":"7830:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":4814,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7825:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":4818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7839:3:15","memberName":"max","nodeType":"MemberAccess","src":"7825:17:15","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7817:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4826,"nodeType":"IfStatement","src":"7813:105:15","trueBody":{"id":4825,"nodeType":"Block","src":"7844:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":4821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:3:15","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":4822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"7901:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4820,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"7865:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7865:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4824,"nodeType":"RevertStatement","src":"7858:49:15"}]}},{"expression":{"arguments":[{"id":4829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"7942:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7934:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":4827,"name":"uint152","nodeType":"ElementaryTypeName","src":"7934:7:15","typeDescriptions":{}}},"id":4830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7934:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":4812,"id":4831,"nodeType":"Return","src":"7927:21:15"}]},"documentation":{"id":4806,"nodeType":"StructuredDocumentation","src":"7452:280:15","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":4833,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7746:9:15","nodeType":"FunctionDefinition","parameters":{"id":4809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4808,"mutability":"mutable","name":"value","nameLocation":"7764:5:15","nodeType":"VariableDeclaration","scope":4833,"src":"7756:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4807,"name":"uint256","nodeType":"ElementaryTypeName","src":"7756:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7755:15:15"},"returnParameters":{"id":4812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4833,"src":"7794:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":4810,"name":"uint152","nodeType":"ElementaryTypeName","src":"7794:7:15","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7793:9:15"},"scope":6207,"src":"7737:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4860,"nodeType":"Block","src":"8312:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4841,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"8326:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8339:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":4843,"name":"uint144","nodeType":"ElementaryTypeName","src":"8339:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":4842,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8334:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8334:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":4846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8348:3:15","memberName":"max","nodeType":"MemberAccess","src":"8334:17:15","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8326:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4854,"nodeType":"IfStatement","src":"8322:105:15","trueBody":{"id":4853,"nodeType":"Block","src":"8353:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":4849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8405:3:15","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":4850,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"8410:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4848,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"8374:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8374:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4852,"nodeType":"RevertStatement","src":"8367:49:15"}]}},{"expression":{"arguments":[{"id":4857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"8451:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8443:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":4855,"name":"uint144","nodeType":"ElementaryTypeName","src":"8443:7:15","typeDescriptions":{}}},"id":4858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8443:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":4840,"id":4859,"nodeType":"Return","src":"8436:21:15"}]},"documentation":{"id":4834,"nodeType":"StructuredDocumentation","src":"7961:280:15","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":4861,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8255:9:15","nodeType":"FunctionDefinition","parameters":{"id":4837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4836,"mutability":"mutable","name":"value","nameLocation":"8273:5:15","nodeType":"VariableDeclaration","scope":4861,"src":"8265:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4835,"name":"uint256","nodeType":"ElementaryTypeName","src":"8265:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8264:15:15"},"returnParameters":{"id":4840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4861,"src":"8303:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":4838,"name":"uint144","nodeType":"ElementaryTypeName","src":"8303:7:15","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8302:9:15"},"scope":6207,"src":"8246:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4888,"nodeType":"Block","src":"8821:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4869,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4864,"src":"8835:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":4871,"name":"uint136","nodeType":"ElementaryTypeName","src":"8848:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":4870,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8843:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8843:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":4874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8857:3:15","memberName":"max","nodeType":"MemberAccess","src":"8843:17:15","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8835:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4882,"nodeType":"IfStatement","src":"8831:105:15","trueBody":{"id":4881,"nodeType":"Block","src":"8862:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":4877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8914:3:15","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":4878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4864,"src":"8919:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4876,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"8883:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4880,"nodeType":"RevertStatement","src":"8876:49:15"}]}},{"expression":{"arguments":[{"id":4885,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4864,"src":"8960:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8952:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":4883,"name":"uint136","nodeType":"ElementaryTypeName","src":"8952:7:15","typeDescriptions":{}}},"id":4886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":4868,"id":4887,"nodeType":"Return","src":"8945:21:15"}]},"documentation":{"id":4862,"nodeType":"StructuredDocumentation","src":"8470:280:15","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":4889,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8764:9:15","nodeType":"FunctionDefinition","parameters":{"id":4865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4864,"mutability":"mutable","name":"value","nameLocation":"8782:5:15","nodeType":"VariableDeclaration","scope":4889,"src":"8774:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4863,"name":"uint256","nodeType":"ElementaryTypeName","src":"8774:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8773:15:15"},"returnParameters":{"id":4868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4889,"src":"8812:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":4866,"name":"uint136","nodeType":"ElementaryTypeName","src":"8812:7:15","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8811:9:15"},"scope":6207,"src":"8755:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4916,"nodeType":"Block","src":"9330:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4897,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"9344:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9357:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4899,"name":"uint128","nodeType":"ElementaryTypeName","src":"9357:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":4898,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9352:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9352:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":4902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9366:3:15","memberName":"max","nodeType":"MemberAccess","src":"9352:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9344:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4910,"nodeType":"IfStatement","src":"9340:105:15","trueBody":{"id":4909,"nodeType":"Block","src":"9371:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":4905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9423:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":4906,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"9428:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4904,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"9392:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4908,"nodeType":"RevertStatement","src":"9385:49:15"}]}},{"expression":{"arguments":[{"id":4913,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"9469:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9461:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4911,"name":"uint128","nodeType":"ElementaryTypeName","src":"9461:7:15","typeDescriptions":{}}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9461:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":4896,"id":4915,"nodeType":"Return","src":"9454:21:15"}]},"documentation":{"id":4890,"nodeType":"StructuredDocumentation","src":"8979:280:15","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":4917,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9273:9:15","nodeType":"FunctionDefinition","parameters":{"id":4893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4892,"mutability":"mutable","name":"value","nameLocation":"9291:5:15","nodeType":"VariableDeclaration","scope":4917,"src":"9283:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4891,"name":"uint256","nodeType":"ElementaryTypeName","src":"9283:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:15:15"},"returnParameters":{"id":4896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4917,"src":"9321:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4894,"name":"uint128","nodeType":"ElementaryTypeName","src":"9321:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9320:9:15"},"scope":6207,"src":"9264:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4944,"nodeType":"Block","src":"9839:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4925,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"9853:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9866:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":4927,"name":"uint120","nodeType":"ElementaryTypeName","src":"9866:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":4926,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9861:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":4930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9875:3:15","memberName":"max","nodeType":"MemberAccess","src":"9861:17:15","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9853:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4938,"nodeType":"IfStatement","src":"9849:105:15","trueBody":{"id":4937,"nodeType":"Block","src":"9880:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":4933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9932:3:15","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":4934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"9937:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4932,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"9901:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9901:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4936,"nodeType":"RevertStatement","src":"9894:49:15"}]}},{"expression":{"arguments":[{"id":4941,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"9978:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9970:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":4939,"name":"uint120","nodeType":"ElementaryTypeName","src":"9970:7:15","typeDescriptions":{}}},"id":4942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9970:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":4924,"id":4943,"nodeType":"Return","src":"9963:21:15"}]},"documentation":{"id":4918,"nodeType":"StructuredDocumentation","src":"9488:280:15","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":4945,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9782:9:15","nodeType":"FunctionDefinition","parameters":{"id":4921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4920,"mutability":"mutable","name":"value","nameLocation":"9800:5:15","nodeType":"VariableDeclaration","scope":4945,"src":"9792:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4919,"name":"uint256","nodeType":"ElementaryTypeName","src":"9792:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9791:15:15"},"returnParameters":{"id":4924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4945,"src":"9830:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":4922,"name":"uint120","nodeType":"ElementaryTypeName","src":"9830:7:15","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9829:9:15"},"scope":6207,"src":"9773:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4972,"nodeType":"Block","src":"10348:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4953,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"10362:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10375:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":4955,"name":"uint112","nodeType":"ElementaryTypeName","src":"10375:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":4954,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10370:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":4958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10384:3:15","memberName":"max","nodeType":"MemberAccess","src":"10370:17:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10362:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4966,"nodeType":"IfStatement","src":"10358:105:15","trueBody":{"id":4965,"nodeType":"Block","src":"10389:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":4961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10441:3:15","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":4962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"10446:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4960,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"10410:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4964,"nodeType":"RevertStatement","src":"10403:49:15"}]}},{"expression":{"arguments":[{"id":4969,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"10487:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10479:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":4967,"name":"uint112","nodeType":"ElementaryTypeName","src":"10479:7:15","typeDescriptions":{}}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10479:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":4952,"id":4971,"nodeType":"Return","src":"10472:21:15"}]},"documentation":{"id":4946,"nodeType":"StructuredDocumentation","src":"9997:280:15","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":4973,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10291:9:15","nodeType":"FunctionDefinition","parameters":{"id":4949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4948,"mutability":"mutable","name":"value","nameLocation":"10309:5:15","nodeType":"VariableDeclaration","scope":4973,"src":"10301:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4947,"name":"uint256","nodeType":"ElementaryTypeName","src":"10301:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10300:15:15"},"returnParameters":{"id":4952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4973,"src":"10339:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":4950,"name":"uint112","nodeType":"ElementaryTypeName","src":"10339:7:15","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10338:9:15"},"scope":6207,"src":"10282:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5000,"nodeType":"Block","src":"10857:152:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4981,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"10871:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10884:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":4983,"name":"uint104","nodeType":"ElementaryTypeName","src":"10884:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":4982,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10879:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10879:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":4986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10893:3:15","memberName":"max","nodeType":"MemberAccess","src":"10879:17:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10871:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4994,"nodeType":"IfStatement","src":"10867:105:15","trueBody":{"id":4993,"nodeType":"Block","src":"10898:74:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":4989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10950:3:15","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":4990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"10955:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4988,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"10919:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10919:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4992,"nodeType":"RevertStatement","src":"10912:49:15"}]}},{"expression":{"arguments":[{"id":4997,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"10996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10988:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":4995,"name":"uint104","nodeType":"ElementaryTypeName","src":"10988:7:15","typeDescriptions":{}}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10988:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":4980,"id":4999,"nodeType":"Return","src":"10981:21:15"}]},"documentation":{"id":4974,"nodeType":"StructuredDocumentation","src":"10506:280:15","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":5001,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10800:9:15","nodeType":"FunctionDefinition","parameters":{"id":4977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4976,"mutability":"mutable","name":"value","nameLocation":"10818:5:15","nodeType":"VariableDeclaration","scope":5001,"src":"10810:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4975,"name":"uint256","nodeType":"ElementaryTypeName","src":"10810:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10809:15:15"},"returnParameters":{"id":4980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5001,"src":"10848:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":4978,"name":"uint104","nodeType":"ElementaryTypeName","src":"10848:7:15","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10847:9:15"},"scope":6207,"src":"10791:218:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5028,"nodeType":"Block","src":"11360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5009,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5004,"src":"11374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":5011,"name":"uint96","nodeType":"ElementaryTypeName","src":"11387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":5010,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":5014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11395:3:15","memberName":"max","nodeType":"MemberAccess","src":"11382:16:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5022,"nodeType":"IfStatement","src":"11370:103:15","trueBody":{"id":5021,"nodeType":"Block","src":"11400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":5017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":5018,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5004,"src":"11456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5016,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"11421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5020,"nodeType":"RevertStatement","src":"11414:48:15"}]}},{"expression":{"arguments":[{"id":5025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5004,"src":"11496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":5023,"name":"uint96","nodeType":"ElementaryTypeName","src":"11489:6:15","typeDescriptions":{}}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":5008,"id":5027,"nodeType":"Return","src":"11482:20:15"}]},"documentation":{"id":5002,"nodeType":"StructuredDocumentation","src":"11015:276:15","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":5029,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5004,"mutability":"mutable","name":"value","nameLocation":"11322:5:15","nodeType":"VariableDeclaration","scope":5029,"src":"11314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5003,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:15:15"},"returnParameters":{"id":5008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5029,"src":"11352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":5006,"name":"uint96","nodeType":"ElementaryTypeName","src":"11352:6:15","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11351:8:15"},"scope":6207,"src":"11296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5056,"nodeType":"Block","src":"11860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5037,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"11874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5039,"name":"uint88","nodeType":"ElementaryTypeName","src":"11887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":5038,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":5042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11895:3:15","memberName":"max","nodeType":"MemberAccess","src":"11882:16:15","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5050,"nodeType":"IfStatement","src":"11870:103:15","trueBody":{"id":5049,"nodeType":"Block","src":"11900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":5045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":5046,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"11956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5044,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"11921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5048,"nodeType":"RevertStatement","src":"11914:48:15"}]}},{"expression":{"arguments":[{"id":5053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"11996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5051,"name":"uint88","nodeType":"ElementaryTypeName","src":"11989:6:15","typeDescriptions":{}}},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":5036,"id":5055,"nodeType":"Return","src":"11982:20:15"}]},"documentation":{"id":5030,"nodeType":"StructuredDocumentation","src":"11515:276:15","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":5057,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5032,"mutability":"mutable","name":"value","nameLocation":"11822:5:15","nodeType":"VariableDeclaration","scope":5057,"src":"11814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5031,"name":"uint256","nodeType":"ElementaryTypeName","src":"11814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11813:15:15"},"returnParameters":{"id":5036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5057,"src":"11852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":5034,"name":"uint88","nodeType":"ElementaryTypeName","src":"11852:6:15","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11851:8:15"},"scope":6207,"src":"11796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5084,"nodeType":"Block","src":"12360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"12374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":5067,"name":"uint80","nodeType":"ElementaryTypeName","src":"12387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":5066,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":5070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12395:3:15","memberName":"max","nodeType":"MemberAccess","src":"12382:16:15","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5078,"nodeType":"IfStatement","src":"12370:103:15","trueBody":{"id":5077,"nodeType":"Block","src":"12400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":5073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":5074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"12456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5072,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"12421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5076,"nodeType":"RevertStatement","src":"12414:48:15"}]}},{"expression":{"arguments":[{"id":5081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"12496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":5079,"name":"uint80","nodeType":"ElementaryTypeName","src":"12489:6:15","typeDescriptions":{}}},"id":5082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":5064,"id":5083,"nodeType":"Return","src":"12482:20:15"}]},"documentation":{"id":5058,"nodeType":"StructuredDocumentation","src":"12015:276:15","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":5085,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5060,"mutability":"mutable","name":"value","nameLocation":"12322:5:15","nodeType":"VariableDeclaration","scope":5085,"src":"12314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5059,"name":"uint256","nodeType":"ElementaryTypeName","src":"12314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12313:15:15"},"returnParameters":{"id":5064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5085,"src":"12352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":5062,"name":"uint80","nodeType":"ElementaryTypeName","src":"12352:6:15","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12351:8:15"},"scope":6207,"src":"12296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5112,"nodeType":"Block","src":"12860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5093,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":5095,"name":"uint72","nodeType":"ElementaryTypeName","src":"12887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":5094,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":5098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12895:3:15","memberName":"max","nodeType":"MemberAccess","src":"12882:16:15","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5106,"nodeType":"IfStatement","src":"12870:103:15","trueBody":{"id":5105,"nodeType":"Block","src":"12900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":5101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":5102,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5100,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"12921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5104,"nodeType":"RevertStatement","src":"12914:48:15"}]}},{"expression":{"arguments":[{"id":5109,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":5107,"name":"uint72","nodeType":"ElementaryTypeName","src":"12989:6:15","typeDescriptions":{}}},"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":5092,"id":5111,"nodeType":"Return","src":"12982:20:15"}]},"documentation":{"id":5086,"nodeType":"StructuredDocumentation","src":"12515:276:15","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":5113,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5088,"mutability":"mutable","name":"value","nameLocation":"12822:5:15","nodeType":"VariableDeclaration","scope":5113,"src":"12814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5087,"name":"uint256","nodeType":"ElementaryTypeName","src":"12814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12813:15:15"},"returnParameters":{"id":5092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5113,"src":"12852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":5090,"name":"uint72","nodeType":"ElementaryTypeName","src":"12852:6:15","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12851:8:15"},"scope":6207,"src":"12796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5140,"nodeType":"Block","src":"13360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"13374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5123,"name":"uint64","nodeType":"ElementaryTypeName","src":"13387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":5122,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13395:3:15","memberName":"max","nodeType":"MemberAccess","src":"13382:16:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5134,"nodeType":"IfStatement","src":"13370:103:15","trueBody":{"id":5133,"nodeType":"Block","src":"13400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":5129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":5130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"13456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5128,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5132,"nodeType":"RevertStatement","src":"13414:48:15"}]}},{"expression":{"arguments":[{"id":5137,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"13496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5135,"name":"uint64","nodeType":"ElementaryTypeName","src":"13489:6:15","typeDescriptions":{}}},"id":5138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5120,"id":5139,"nodeType":"Return","src":"13482:20:15"}]},"documentation":{"id":5114,"nodeType":"StructuredDocumentation","src":"13015:276:15","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":5141,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5116,"mutability":"mutable","name":"value","nameLocation":"13322:5:15","nodeType":"VariableDeclaration","scope":5141,"src":"13314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5115,"name":"uint256","nodeType":"ElementaryTypeName","src":"13314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13313:15:15"},"returnParameters":{"id":5120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5141,"src":"13352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5118,"name":"uint64","nodeType":"ElementaryTypeName","src":"13352:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13351:8:15"},"scope":6207,"src":"13296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5168,"nodeType":"Block","src":"13860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5144,"src":"13874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":5151,"name":"uint56","nodeType":"ElementaryTypeName","src":"13887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":5150,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":5154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13895:3:15","memberName":"max","nodeType":"MemberAccess","src":"13882:16:15","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5162,"nodeType":"IfStatement","src":"13870:103:15","trueBody":{"id":5161,"nodeType":"Block","src":"13900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":5157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":5158,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5144,"src":"13956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5156,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5160,"nodeType":"RevertStatement","src":"13914:48:15"}]}},{"expression":{"arguments":[{"id":5165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5144,"src":"13996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":5163,"name":"uint56","nodeType":"ElementaryTypeName","src":"13989:6:15","typeDescriptions":{}}},"id":5166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":5148,"id":5167,"nodeType":"Return","src":"13982:20:15"}]},"documentation":{"id":5142,"nodeType":"StructuredDocumentation","src":"13515:276:15","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":5169,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5144,"mutability":"mutable","name":"value","nameLocation":"13822:5:15","nodeType":"VariableDeclaration","scope":5169,"src":"13814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5143,"name":"uint256","nodeType":"ElementaryTypeName","src":"13814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13813:15:15"},"returnParameters":{"id":5148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5169,"src":"13852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":5146,"name":"uint56","nodeType":"ElementaryTypeName","src":"13852:6:15","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13851:8:15"},"scope":6207,"src":"13796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5196,"nodeType":"Block","src":"14360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"14374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":5179,"name":"uint48","nodeType":"ElementaryTypeName","src":"14387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":5178,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":5182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14395:3:15","memberName":"max","nodeType":"MemberAccess","src":"14382:16:15","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5190,"nodeType":"IfStatement","src":"14370:103:15","trueBody":{"id":5189,"nodeType":"Block","src":"14400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":5185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":5186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"14456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5184,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"14421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5188,"nodeType":"RevertStatement","src":"14414:48:15"}]}},{"expression":{"arguments":[{"id":5193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"14496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":5191,"name":"uint48","nodeType":"ElementaryTypeName","src":"14489:6:15","typeDescriptions":{}}},"id":5194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":5176,"id":5195,"nodeType":"Return","src":"14482:20:15"}]},"documentation":{"id":5170,"nodeType":"StructuredDocumentation","src":"14015:276:15","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":5197,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5172,"mutability":"mutable","name":"value","nameLocation":"14322:5:15","nodeType":"VariableDeclaration","scope":5197,"src":"14314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5171,"name":"uint256","nodeType":"ElementaryTypeName","src":"14314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14313:15:15"},"returnParameters":{"id":5176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5197,"src":"14352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":5174,"name":"uint48","nodeType":"ElementaryTypeName","src":"14352:6:15","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14351:8:15"},"scope":6207,"src":"14296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5224,"nodeType":"Block","src":"14860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"14874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":5207,"name":"uint40","nodeType":"ElementaryTypeName","src":"14887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":5206,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":5210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14895:3:15","memberName":"max","nodeType":"MemberAccess","src":"14882:16:15","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5218,"nodeType":"IfStatement","src":"14870:103:15","trueBody":{"id":5217,"nodeType":"Block","src":"14900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":5213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":5214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"14956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5212,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"14921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5216,"nodeType":"RevertStatement","src":"14914:48:15"}]}},{"expression":{"arguments":[{"id":5221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"14996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":5219,"name":"uint40","nodeType":"ElementaryTypeName","src":"14989:6:15","typeDescriptions":{}}},"id":5222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":5204,"id":5223,"nodeType":"Return","src":"14982:20:15"}]},"documentation":{"id":5198,"nodeType":"StructuredDocumentation","src":"14515:276:15","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":5225,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5200,"mutability":"mutable","name":"value","nameLocation":"14822:5:15","nodeType":"VariableDeclaration","scope":5225,"src":"14814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5199,"name":"uint256","nodeType":"ElementaryTypeName","src":"14814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14813:15:15"},"returnParameters":{"id":5204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5225,"src":"14852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":5202,"name":"uint40","nodeType":"ElementaryTypeName","src":"14852:6:15","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14851:8:15"},"scope":6207,"src":"14796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5252,"nodeType":"Block","src":"15360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5233,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"15374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":5235,"name":"uint32","nodeType":"ElementaryTypeName","src":"15387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":5234,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":5238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15395:3:15","memberName":"max","nodeType":"MemberAccess","src":"15382:16:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5246,"nodeType":"IfStatement","src":"15370:103:15","trueBody":{"id":5245,"nodeType":"Block","src":"15400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":5241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":5242,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"15456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5240,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"15421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5244,"nodeType":"RevertStatement","src":"15414:48:15"}]}},{"expression":{"arguments":[{"id":5249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"15496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":5247,"name":"uint32","nodeType":"ElementaryTypeName","src":"15489:6:15","typeDescriptions":{}}},"id":5250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":5232,"id":5251,"nodeType":"Return","src":"15482:20:15"}]},"documentation":{"id":5226,"nodeType":"StructuredDocumentation","src":"15015:276:15","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":5253,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5228,"mutability":"mutable","name":"value","nameLocation":"15322:5:15","nodeType":"VariableDeclaration","scope":5253,"src":"15314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5227,"name":"uint256","nodeType":"ElementaryTypeName","src":"15314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15313:15:15"},"returnParameters":{"id":5232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5253,"src":"15352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5230,"name":"uint32","nodeType":"ElementaryTypeName","src":"15352:6:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15351:8:15"},"scope":6207,"src":"15296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5280,"nodeType":"Block","src":"15860:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"15874:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15887:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":5263,"name":"uint24","nodeType":"ElementaryTypeName","src":"15887:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":5262,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15882:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15882:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":5266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15895:3:15","memberName":"max","nodeType":"MemberAccess","src":"15882:16:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15874:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5274,"nodeType":"IfStatement","src":"15870:103:15","trueBody":{"id":5273,"nodeType":"Block","src":"15900:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":5269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15952:2:15","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":5270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"15956:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5268,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"15921:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15921:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5272,"nodeType":"RevertStatement","src":"15914:48:15"}]}},{"expression":{"arguments":[{"id":5277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"15996:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":5275,"name":"uint24","nodeType":"ElementaryTypeName","src":"15989:6:15","typeDescriptions":{}}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":5260,"id":5279,"nodeType":"Return","src":"15982:20:15"}]},"documentation":{"id":5254,"nodeType":"StructuredDocumentation","src":"15515:276:15","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":5281,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15805:8:15","nodeType":"FunctionDefinition","parameters":{"id":5257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5256,"mutability":"mutable","name":"value","nameLocation":"15822:5:15","nodeType":"VariableDeclaration","scope":5281,"src":"15814:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5255,"name":"uint256","nodeType":"ElementaryTypeName","src":"15814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15813:15:15"},"returnParameters":{"id":5260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5281,"src":"15852:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5258,"name":"uint24","nodeType":"ElementaryTypeName","src":"15852:6:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15851:8:15"},"scope":6207,"src":"15796:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5308,"nodeType":"Block","src":"16360:149:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"16374:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":5291,"name":"uint16","nodeType":"ElementaryTypeName","src":"16387:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":5290,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16382:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":5294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16395:3:15","memberName":"max","nodeType":"MemberAccess","src":"16382:16:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16374:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5302,"nodeType":"IfStatement","src":"16370:103:15","trueBody":{"id":5301,"nodeType":"Block","src":"16400:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":5297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16452:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":5298,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"16456:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5296,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"16421:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16421:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5300,"nodeType":"RevertStatement","src":"16414:48:15"}]}},{"expression":{"arguments":[{"id":5305,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"16496:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16489:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":5303,"name":"uint16","nodeType":"ElementaryTypeName","src":"16489:6:15","typeDescriptions":{}}},"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16489:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":5288,"id":5307,"nodeType":"Return","src":"16482:20:15"}]},"documentation":{"id":5282,"nodeType":"StructuredDocumentation","src":"16015:276:15","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":5309,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16305:8:15","nodeType":"FunctionDefinition","parameters":{"id":5285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5284,"mutability":"mutable","name":"value","nameLocation":"16322:5:15","nodeType":"VariableDeclaration","scope":5309,"src":"16314:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5283,"name":"uint256","nodeType":"ElementaryTypeName","src":"16314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16313:15:15"},"returnParameters":{"id":5288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5309,"src":"16352:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5286,"name":"uint16","nodeType":"ElementaryTypeName","src":"16352:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16351:8:15"},"scope":6207,"src":"16296:213:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5336,"nodeType":"Block","src":"16854:146:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"16868:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16881:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5319,"name":"uint8","nodeType":"ElementaryTypeName","src":"16881:5:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":5318,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16876:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16876:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":5322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16888:3:15","memberName":"max","nodeType":"MemberAccess","src":"16876:15:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16868:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5330,"nodeType":"IfStatement","src":"16864:101:15","trueBody":{"id":5329,"nodeType":"Block","src":"16893:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":5325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16945:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":5326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"16948:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5324,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"16914:30:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5328,"nodeType":"RevertStatement","src":"16907:47:15"}]}},{"expression":{"arguments":[{"id":5333,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"16987:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5331,"name":"uint8","nodeType":"ElementaryTypeName","src":"16981:5:15","typeDescriptions":{}}},"id":5334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16981:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":5316,"id":5335,"nodeType":"Return","src":"16974:19:15"}]},"documentation":{"id":5310,"nodeType":"StructuredDocumentation","src":"16515:272:15","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":5337,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16801:7:15","nodeType":"FunctionDefinition","parameters":{"id":5313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5312,"mutability":"mutable","name":"value","nameLocation":"16817:5:15","nodeType":"VariableDeclaration","scope":5337,"src":"16809:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5311,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16808:15:15"},"returnParameters":{"id":5316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5337,"src":"16847:5:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5314,"name":"uint8","nodeType":"ElementaryTypeName","src":"16847:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16846:7:15"},"scope":6207,"src":"16792:208:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5359,"nodeType":"Block","src":"17236:128:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5345,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5340,"src":"17250:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":5346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17258:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17250:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5353,"nodeType":"IfStatement","src":"17246:81:15","trueBody":{"id":5352,"nodeType":"Block","src":"17261:66:15","statements":[{"errorCall":{"arguments":[{"id":5349,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5340,"src":"17310:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5348,"name":"SafeCastOverflowedIntToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4457,"src":"17282:27:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$returns$__$","typeString":"function (int256) pure"}},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17282:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5351,"nodeType":"RevertStatement","src":"17275:41:15"}]}},{"expression":{"arguments":[{"id":5356,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5340,"src":"17351:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17343:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5354,"name":"uint256","nodeType":"ElementaryTypeName","src":"17343:7:15","typeDescriptions":{}}},"id":5357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17343:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5344,"id":5358,"nodeType":"Return","src":"17336:21:15"}]},"documentation":{"id":5338,"nodeType":"StructuredDocumentation","src":"17006:160:15","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."},"id":5360,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17180:9:15","nodeType":"FunctionDefinition","parameters":{"id":5341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5340,"mutability":"mutable","name":"value","nameLocation":"17197:5:15","nodeType":"VariableDeclaration","scope":5360,"src":"17190:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5339,"name":"int256","nodeType":"ElementaryTypeName","src":"17190:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17189:14:15"},"returnParameters":{"id":5344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5360,"src":"17227:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5342,"name":"uint256","nodeType":"ElementaryTypeName","src":"17227:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17226:9:15"},"scope":6207,"src":"17171:193:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5385,"nodeType":"Block","src":"17761:150:15","statements":[{"expression":{"id":5373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5368,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5366,"src":"17771:10:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5371,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5363,"src":"17791:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17784:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":5369,"name":"int248","nodeType":"ElementaryTypeName","src":"17784:6:15","typeDescriptions":{}}},"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17771:26:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":5374,"nodeType":"ExpressionStatement","src":"17771:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5375,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5366,"src":"17811:10:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5376,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5363,"src":"17825:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17811:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5384,"nodeType":"IfStatement","src":"17807:98:15","trueBody":{"id":5383,"nodeType":"Block","src":"17832:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":5379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17883:3:15","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":5380,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5363,"src":"17888:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5378,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"17853:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17853:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5382,"nodeType":"RevertStatement","src":"17846:48:15"}]}}]},"documentation":{"id":5361,"nodeType":"StructuredDocumentation","src":"17370:312:15","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":5386,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17696:8:15","nodeType":"FunctionDefinition","parameters":{"id":5364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5363,"mutability":"mutable","name":"value","nameLocation":"17712:5:15","nodeType":"VariableDeclaration","scope":5386,"src":"17705:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5362,"name":"int256","nodeType":"ElementaryTypeName","src":"17705:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17704:14:15"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5366,"mutability":"mutable","name":"downcasted","nameLocation":"17749:10:15","nodeType":"VariableDeclaration","scope":5386,"src":"17742:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":5365,"name":"int248","nodeType":"ElementaryTypeName","src":"17742:6:15","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17741:19:15"},"scope":6207,"src":"17687:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5411,"nodeType":"Block","src":"18308:150:15","statements":[{"expression":{"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5394,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"18318:10:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5397,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"18338:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18331:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":5395,"name":"int240","nodeType":"ElementaryTypeName","src":"18331:6:15","typeDescriptions":{}}},"id":5398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18318:26:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":5400,"nodeType":"ExpressionStatement","src":"18318:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5401,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"18358:10:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"18372:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18358:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5410,"nodeType":"IfStatement","src":"18354:98:15","trueBody":{"id":5409,"nodeType":"Block","src":"18379:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":5405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:3:15","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":5406,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"18435:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5404,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"18400:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18400:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5408,"nodeType":"RevertStatement","src":"18393:48:15"}]}}]},"documentation":{"id":5387,"nodeType":"StructuredDocumentation","src":"17917:312:15","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":5412,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18243:8:15","nodeType":"FunctionDefinition","parameters":{"id":5390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5389,"mutability":"mutable","name":"value","nameLocation":"18259:5:15","nodeType":"VariableDeclaration","scope":5412,"src":"18252:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5388,"name":"int256","nodeType":"ElementaryTypeName","src":"18252:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18251:14:15"},"returnParameters":{"id":5393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5392,"mutability":"mutable","name":"downcasted","nameLocation":"18296:10:15","nodeType":"VariableDeclaration","scope":5412,"src":"18289:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":5391,"name":"int240","nodeType":"ElementaryTypeName","src":"18289:6:15","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18288:19:15"},"scope":6207,"src":"18234:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5437,"nodeType":"Block","src":"18855:150:15","statements":[{"expression":{"id":5425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5420,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5418,"src":"18865:10:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5423,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5415,"src":"18885:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":5421,"name":"int232","nodeType":"ElementaryTypeName","src":"18878:6:15","typeDescriptions":{}}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18865:26:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":5426,"nodeType":"ExpressionStatement","src":"18865:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5427,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5418,"src":"18905:10:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5428,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5415,"src":"18919:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18905:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5436,"nodeType":"IfStatement","src":"18901:98:15","trueBody":{"id":5435,"nodeType":"Block","src":"18926:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":5431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18977:3:15","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":5432,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5415,"src":"18982:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5430,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"18947:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18947:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5434,"nodeType":"RevertStatement","src":"18940:48:15"}]}}]},"documentation":{"id":5413,"nodeType":"StructuredDocumentation","src":"18464:312:15","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":5438,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18790:8:15","nodeType":"FunctionDefinition","parameters":{"id":5416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5415,"mutability":"mutable","name":"value","nameLocation":"18806:5:15","nodeType":"VariableDeclaration","scope":5438,"src":"18799:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5414,"name":"int256","nodeType":"ElementaryTypeName","src":"18799:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18798:14:15"},"returnParameters":{"id":5419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5418,"mutability":"mutable","name":"downcasted","nameLocation":"18843:10:15","nodeType":"VariableDeclaration","scope":5438,"src":"18836:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":5417,"name":"int232","nodeType":"ElementaryTypeName","src":"18836:6:15","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18835:19:15"},"scope":6207,"src":"18781:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5463,"nodeType":"Block","src":"19402:150:15","statements":[{"expression":{"id":5451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5446,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5444,"src":"19412:10:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5449,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"19432:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19425:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":5447,"name":"int224","nodeType":"ElementaryTypeName","src":"19425:6:15","typeDescriptions":{}}},"id":5450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19425:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19412:26:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":5452,"nodeType":"ExpressionStatement","src":"19412:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5453,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5444,"src":"19452:10:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5454,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"19466:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19452:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5462,"nodeType":"IfStatement","src":"19448:98:15","trueBody":{"id":5461,"nodeType":"Block","src":"19473:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":5457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19524:3:15","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":5458,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"19529:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5456,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"19494:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19494:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5460,"nodeType":"RevertStatement","src":"19487:48:15"}]}}]},"documentation":{"id":5439,"nodeType":"StructuredDocumentation","src":"19011:312:15","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":5464,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19337:8:15","nodeType":"FunctionDefinition","parameters":{"id":5442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5441,"mutability":"mutable","name":"value","nameLocation":"19353:5:15","nodeType":"VariableDeclaration","scope":5464,"src":"19346:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5440,"name":"int256","nodeType":"ElementaryTypeName","src":"19346:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19345:14:15"},"returnParameters":{"id":5445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5444,"mutability":"mutable","name":"downcasted","nameLocation":"19390:10:15","nodeType":"VariableDeclaration","scope":5464,"src":"19383:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":5443,"name":"int224","nodeType":"ElementaryTypeName","src":"19383:6:15","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19382:19:15"},"scope":6207,"src":"19328:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5489,"nodeType":"Block","src":"19949:150:15","statements":[{"expression":{"id":5477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5472,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"19959:10:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5475,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"19979:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19972:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":5473,"name":"int216","nodeType":"ElementaryTypeName","src":"19972:6:15","typeDescriptions":{}}},"id":5476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19972:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"19959:26:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":5478,"nodeType":"ExpressionStatement","src":"19959:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5479,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"19999:10:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5480,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"20013:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19999:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5488,"nodeType":"IfStatement","src":"19995:98:15","trueBody":{"id":5487,"nodeType":"Block","src":"20020:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":5483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20071:3:15","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":5484,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"20076:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5482,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"20041:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5486,"nodeType":"RevertStatement","src":"20034:48:15"}]}}]},"documentation":{"id":5465,"nodeType":"StructuredDocumentation","src":"19558:312:15","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":5490,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19884:8:15","nodeType":"FunctionDefinition","parameters":{"id":5468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5467,"mutability":"mutable","name":"value","nameLocation":"19900:5:15","nodeType":"VariableDeclaration","scope":5490,"src":"19893:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5466,"name":"int256","nodeType":"ElementaryTypeName","src":"19893:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19892:14:15"},"returnParameters":{"id":5471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5470,"mutability":"mutable","name":"downcasted","nameLocation":"19937:10:15","nodeType":"VariableDeclaration","scope":5490,"src":"19930:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":5469,"name":"int216","nodeType":"ElementaryTypeName","src":"19930:6:15","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19929:19:15"},"scope":6207,"src":"19875:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5515,"nodeType":"Block","src":"20496:150:15","statements":[{"expression":{"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5498,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5496,"src":"20506:10:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5501,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"20526:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20519:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":5499,"name":"int208","nodeType":"ElementaryTypeName","src":"20519:6:15","typeDescriptions":{}}},"id":5502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20519:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20506:26:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":5504,"nodeType":"ExpressionStatement","src":"20506:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5505,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5496,"src":"20546:10:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5506,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"20560:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20546:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5514,"nodeType":"IfStatement","src":"20542:98:15","trueBody":{"id":5513,"nodeType":"Block","src":"20567:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":5509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20618:3:15","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":5510,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"20623:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5508,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"20588:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20588:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5512,"nodeType":"RevertStatement","src":"20581:48:15"}]}}]},"documentation":{"id":5491,"nodeType":"StructuredDocumentation","src":"20105:312:15","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":5516,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20431:8:15","nodeType":"FunctionDefinition","parameters":{"id":5494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5493,"mutability":"mutable","name":"value","nameLocation":"20447:5:15","nodeType":"VariableDeclaration","scope":5516,"src":"20440:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5492,"name":"int256","nodeType":"ElementaryTypeName","src":"20440:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20439:14:15"},"returnParameters":{"id":5497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5496,"mutability":"mutable","name":"downcasted","nameLocation":"20484:10:15","nodeType":"VariableDeclaration","scope":5516,"src":"20477:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":5495,"name":"int208","nodeType":"ElementaryTypeName","src":"20477:6:15","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20476:19:15"},"scope":6207,"src":"20422:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5541,"nodeType":"Block","src":"21043:150:15","statements":[{"expression":{"id":5529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5524,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5522,"src":"21053:10:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"21073:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21066:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":5525,"name":"int200","nodeType":"ElementaryTypeName","src":"21066:6:15","typeDescriptions":{}}},"id":5528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21066:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21053:26:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":5530,"nodeType":"ExpressionStatement","src":"21053:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5531,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5522,"src":"21093:10:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5532,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"21107:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21093:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5540,"nodeType":"IfStatement","src":"21089:98:15","trueBody":{"id":5539,"nodeType":"Block","src":"21114:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":5535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21165:3:15","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":5536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"21170:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5534,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"21135:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21135:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5538,"nodeType":"RevertStatement","src":"21128:48:15"}]}}]},"documentation":{"id":5517,"nodeType":"StructuredDocumentation","src":"20652:312:15","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":5542,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"20978:8:15","nodeType":"FunctionDefinition","parameters":{"id":5520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5519,"mutability":"mutable","name":"value","nameLocation":"20994:5:15","nodeType":"VariableDeclaration","scope":5542,"src":"20987:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5518,"name":"int256","nodeType":"ElementaryTypeName","src":"20987:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20986:14:15"},"returnParameters":{"id":5523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5522,"mutability":"mutable","name":"downcasted","nameLocation":"21031:10:15","nodeType":"VariableDeclaration","scope":5542,"src":"21024:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":5521,"name":"int200","nodeType":"ElementaryTypeName","src":"21024:6:15","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21023:19:15"},"scope":6207,"src":"20969:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5567,"nodeType":"Block","src":"21590:150:15","statements":[{"expression":{"id":5555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5550,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5548,"src":"21600:10:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"21620:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21613:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":5551,"name":"int192","nodeType":"ElementaryTypeName","src":"21613:6:15","typeDescriptions":{}}},"id":5554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21613:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21600:26:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":5556,"nodeType":"ExpressionStatement","src":"21600:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5557,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5548,"src":"21640:10:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5558,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"21654:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21640:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5566,"nodeType":"IfStatement","src":"21636:98:15","trueBody":{"id":5565,"nodeType":"Block","src":"21661:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":5561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21712:3:15","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":5562,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"21717:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5560,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"21682:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21682:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5564,"nodeType":"RevertStatement","src":"21675:48:15"}]}}]},"documentation":{"id":5543,"nodeType":"StructuredDocumentation","src":"21199:312:15","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":5568,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21525:8:15","nodeType":"FunctionDefinition","parameters":{"id":5546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5545,"mutability":"mutable","name":"value","nameLocation":"21541:5:15","nodeType":"VariableDeclaration","scope":5568,"src":"21534:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5544,"name":"int256","nodeType":"ElementaryTypeName","src":"21534:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21533:14:15"},"returnParameters":{"id":5549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5548,"mutability":"mutable","name":"downcasted","nameLocation":"21578:10:15","nodeType":"VariableDeclaration","scope":5568,"src":"21571:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":5547,"name":"int192","nodeType":"ElementaryTypeName","src":"21571:6:15","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21570:19:15"},"scope":6207,"src":"21516:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5593,"nodeType":"Block","src":"22137:150:15","statements":[{"expression":{"id":5581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5576,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"22147:10:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5579,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"22167:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22160:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":5577,"name":"int184","nodeType":"ElementaryTypeName","src":"22160:6:15","typeDescriptions":{}}},"id":5580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22160:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22147:26:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":5582,"nodeType":"ExpressionStatement","src":"22147:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5583,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"22187:10:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5584,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"22201:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22187:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5592,"nodeType":"IfStatement","src":"22183:98:15","trueBody":{"id":5591,"nodeType":"Block","src":"22208:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":5587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22259:3:15","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":5588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"22264:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5586,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"22229:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5590,"nodeType":"RevertStatement","src":"22222:48:15"}]}}]},"documentation":{"id":5569,"nodeType":"StructuredDocumentation","src":"21746:312:15","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":5594,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22072:8:15","nodeType":"FunctionDefinition","parameters":{"id":5572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5571,"mutability":"mutable","name":"value","nameLocation":"22088:5:15","nodeType":"VariableDeclaration","scope":5594,"src":"22081:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5570,"name":"int256","nodeType":"ElementaryTypeName","src":"22081:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22080:14:15"},"returnParameters":{"id":5575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5574,"mutability":"mutable","name":"downcasted","nameLocation":"22125:10:15","nodeType":"VariableDeclaration","scope":5594,"src":"22118:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":5573,"name":"int184","nodeType":"ElementaryTypeName","src":"22118:6:15","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22117:19:15"},"scope":6207,"src":"22063:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5619,"nodeType":"Block","src":"22684:150:15","statements":[{"expression":{"id":5607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5602,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"22694:10:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"22714:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22707:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":5603,"name":"int176","nodeType":"ElementaryTypeName","src":"22707:6:15","typeDescriptions":{}}},"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22707:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22694:26:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":5608,"nodeType":"ExpressionStatement","src":"22694:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5609,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"22734:10:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5610,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"22748:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22734:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5618,"nodeType":"IfStatement","src":"22730:98:15","trueBody":{"id":5617,"nodeType":"Block","src":"22755:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":5613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22806:3:15","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":5614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"22811:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5612,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"22776:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22776:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5616,"nodeType":"RevertStatement","src":"22769:48:15"}]}}]},"documentation":{"id":5595,"nodeType":"StructuredDocumentation","src":"22293:312:15","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":5620,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22619:8:15","nodeType":"FunctionDefinition","parameters":{"id":5598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5597,"mutability":"mutable","name":"value","nameLocation":"22635:5:15","nodeType":"VariableDeclaration","scope":5620,"src":"22628:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5596,"name":"int256","nodeType":"ElementaryTypeName","src":"22628:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22627:14:15"},"returnParameters":{"id":5601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5600,"mutability":"mutable","name":"downcasted","nameLocation":"22672:10:15","nodeType":"VariableDeclaration","scope":5620,"src":"22665:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":5599,"name":"int176","nodeType":"ElementaryTypeName","src":"22665:6:15","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22664:19:15"},"scope":6207,"src":"22610:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5645,"nodeType":"Block","src":"23231:150:15","statements":[{"expression":{"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5628,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"23241:10:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"23261:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23254:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":5629,"name":"int168","nodeType":"ElementaryTypeName","src":"23254:6:15","typeDescriptions":{}}},"id":5632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23254:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23241:26:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":5634,"nodeType":"ExpressionStatement","src":"23241:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5635,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"23281:10:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5636,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"23295:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23281:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5644,"nodeType":"IfStatement","src":"23277:98:15","trueBody":{"id":5643,"nodeType":"Block","src":"23302:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":5639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23353:3:15","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":5640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"23358:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5638,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"23323:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23323:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5642,"nodeType":"RevertStatement","src":"23316:48:15"}]}}]},"documentation":{"id":5621,"nodeType":"StructuredDocumentation","src":"22840:312:15","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":5646,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23166:8:15","nodeType":"FunctionDefinition","parameters":{"id":5624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5623,"mutability":"mutable","name":"value","nameLocation":"23182:5:15","nodeType":"VariableDeclaration","scope":5646,"src":"23175:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5622,"name":"int256","nodeType":"ElementaryTypeName","src":"23175:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23174:14:15"},"returnParameters":{"id":5627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5626,"mutability":"mutable","name":"downcasted","nameLocation":"23219:10:15","nodeType":"VariableDeclaration","scope":5646,"src":"23212:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":5625,"name":"int168","nodeType":"ElementaryTypeName","src":"23212:6:15","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23211:19:15"},"scope":6207,"src":"23157:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5671,"nodeType":"Block","src":"23778:150:15","statements":[{"expression":{"id":5659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5654,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"23788:10:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5657,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"23808:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23801:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":5655,"name":"int160","nodeType":"ElementaryTypeName","src":"23801:6:15","typeDescriptions":{}}},"id":5658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23801:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23788:26:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":5660,"nodeType":"ExpressionStatement","src":"23788:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5661,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"23828:10:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5662,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"23842:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23828:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5670,"nodeType":"IfStatement","src":"23824:98:15","trueBody":{"id":5669,"nodeType":"Block","src":"23849:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":5665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23900:3:15","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":5666,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"23905:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5664,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"23870:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23870:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5668,"nodeType":"RevertStatement","src":"23863:48:15"}]}}]},"documentation":{"id":5647,"nodeType":"StructuredDocumentation","src":"23387:312:15","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":5672,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23713:8:15","nodeType":"FunctionDefinition","parameters":{"id":5650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5649,"mutability":"mutable","name":"value","nameLocation":"23729:5:15","nodeType":"VariableDeclaration","scope":5672,"src":"23722:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5648,"name":"int256","nodeType":"ElementaryTypeName","src":"23722:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23721:14:15"},"returnParameters":{"id":5653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5652,"mutability":"mutable","name":"downcasted","nameLocation":"23766:10:15","nodeType":"VariableDeclaration","scope":5672,"src":"23759:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":5651,"name":"int160","nodeType":"ElementaryTypeName","src":"23759:6:15","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23758:19:15"},"scope":6207,"src":"23704:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5697,"nodeType":"Block","src":"24325:150:15","statements":[{"expression":{"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5680,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"24335:10:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5683,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5675,"src":"24355:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24348:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":5681,"name":"int152","nodeType":"ElementaryTypeName","src":"24348:6:15","typeDescriptions":{}}},"id":5684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24335:26:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":5686,"nodeType":"ExpressionStatement","src":"24335:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5687,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"24375:10:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5688,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5675,"src":"24389:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24375:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5696,"nodeType":"IfStatement","src":"24371:98:15","trueBody":{"id":5695,"nodeType":"Block","src":"24396:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":5691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24447:3:15","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":5692,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5675,"src":"24452:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5690,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"24417:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24417:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5694,"nodeType":"RevertStatement","src":"24410:48:15"}]}}]},"documentation":{"id":5673,"nodeType":"StructuredDocumentation","src":"23934:312:15","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":5698,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24260:8:15","nodeType":"FunctionDefinition","parameters":{"id":5676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5675,"mutability":"mutable","name":"value","nameLocation":"24276:5:15","nodeType":"VariableDeclaration","scope":5698,"src":"24269:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5674,"name":"int256","nodeType":"ElementaryTypeName","src":"24269:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24268:14:15"},"returnParameters":{"id":5679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5678,"mutability":"mutable","name":"downcasted","nameLocation":"24313:10:15","nodeType":"VariableDeclaration","scope":5698,"src":"24306:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":5677,"name":"int152","nodeType":"ElementaryTypeName","src":"24306:6:15","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24305:19:15"},"scope":6207,"src":"24251:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5723,"nodeType":"Block","src":"24872:150:15","statements":[{"expression":{"id":5711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5706,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5704,"src":"24882:10:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"24902:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24895:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":5707,"name":"int144","nodeType":"ElementaryTypeName","src":"24895:6:15","typeDescriptions":{}}},"id":5710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24895:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"24882:26:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":5712,"nodeType":"ExpressionStatement","src":"24882:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5713,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5704,"src":"24922:10:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5714,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"24936:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24922:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5722,"nodeType":"IfStatement","src":"24918:98:15","trueBody":{"id":5721,"nodeType":"Block","src":"24943:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":5717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24994:3:15","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":5718,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"24999:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5716,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"24964:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24964:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5720,"nodeType":"RevertStatement","src":"24957:48:15"}]}}]},"documentation":{"id":5699,"nodeType":"StructuredDocumentation","src":"24481:312:15","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":5724,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24807:8:15","nodeType":"FunctionDefinition","parameters":{"id":5702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5701,"mutability":"mutable","name":"value","nameLocation":"24823:5:15","nodeType":"VariableDeclaration","scope":5724,"src":"24816:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5700,"name":"int256","nodeType":"ElementaryTypeName","src":"24816:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24815:14:15"},"returnParameters":{"id":5705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5704,"mutability":"mutable","name":"downcasted","nameLocation":"24860:10:15","nodeType":"VariableDeclaration","scope":5724,"src":"24853:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":5703,"name":"int144","nodeType":"ElementaryTypeName","src":"24853:6:15","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"24852:19:15"},"scope":6207,"src":"24798:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5749,"nodeType":"Block","src":"25419:150:15","statements":[{"expression":{"id":5737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5732,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"25429:10:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5735,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"25449:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25442:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":5733,"name":"int136","nodeType":"ElementaryTypeName","src":"25442:6:15","typeDescriptions":{}}},"id":5736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25442:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25429:26:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":5738,"nodeType":"ExpressionStatement","src":"25429:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5739,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"25469:10:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5740,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"25483:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25469:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5748,"nodeType":"IfStatement","src":"25465:98:15","trueBody":{"id":5747,"nodeType":"Block","src":"25490:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":5743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25541:3:15","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":5744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5727,"src":"25546:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5742,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"25511:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25511:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5746,"nodeType":"RevertStatement","src":"25504:48:15"}]}}]},"documentation":{"id":5725,"nodeType":"StructuredDocumentation","src":"25028:312:15","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":5750,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25354:8:15","nodeType":"FunctionDefinition","parameters":{"id":5728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5727,"mutability":"mutable","name":"value","nameLocation":"25370:5:15","nodeType":"VariableDeclaration","scope":5750,"src":"25363:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5726,"name":"int256","nodeType":"ElementaryTypeName","src":"25363:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25362:14:15"},"returnParameters":{"id":5731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5730,"mutability":"mutable","name":"downcasted","nameLocation":"25407:10:15","nodeType":"VariableDeclaration","scope":5750,"src":"25400:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":5729,"name":"int136","nodeType":"ElementaryTypeName","src":"25400:6:15","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25399:19:15"},"scope":6207,"src":"25345:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5775,"nodeType":"Block","src":"25966:150:15","statements":[{"expression":{"id":5763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5758,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5756,"src":"25976:10:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"25996:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25989:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":5759,"name":"int128","nodeType":"ElementaryTypeName","src":"25989:6:15","typeDescriptions":{}}},"id":5762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25989:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"25976:26:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":5764,"nodeType":"ExpressionStatement","src":"25976:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5765,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5756,"src":"26016:10:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"26030:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26016:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5774,"nodeType":"IfStatement","src":"26012:98:15","trueBody":{"id":5773,"nodeType":"Block","src":"26037:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":5769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26088:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":5770,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"26093:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5768,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"26058:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26058:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5772,"nodeType":"RevertStatement","src":"26051:48:15"}]}}]},"documentation":{"id":5751,"nodeType":"StructuredDocumentation","src":"25575:312:15","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":5776,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"25901:8:15","nodeType":"FunctionDefinition","parameters":{"id":5754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5753,"mutability":"mutable","name":"value","nameLocation":"25917:5:15","nodeType":"VariableDeclaration","scope":5776,"src":"25910:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5752,"name":"int256","nodeType":"ElementaryTypeName","src":"25910:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25909:14:15"},"returnParameters":{"id":5757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5756,"mutability":"mutable","name":"downcasted","nameLocation":"25954:10:15","nodeType":"VariableDeclaration","scope":5776,"src":"25947:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":5755,"name":"int128","nodeType":"ElementaryTypeName","src":"25947:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"25946:19:15"},"scope":6207,"src":"25892:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5801,"nodeType":"Block","src":"26513:150:15","statements":[{"expression":{"id":5789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5784,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"26523:10:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5787,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"26543:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26536:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":5785,"name":"int120","nodeType":"ElementaryTypeName","src":"26536:6:15","typeDescriptions":{}}},"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26536:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26523:26:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":5790,"nodeType":"ExpressionStatement","src":"26523:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5791,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"26563:10:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5792,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"26577:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26563:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5800,"nodeType":"IfStatement","src":"26559:98:15","trueBody":{"id":5799,"nodeType":"Block","src":"26584:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":5795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26635:3:15","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":5796,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"26640:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5794,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"26605:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5798,"nodeType":"RevertStatement","src":"26598:48:15"}]}}]},"documentation":{"id":5777,"nodeType":"StructuredDocumentation","src":"26122:312:15","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":5802,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26448:8:15","nodeType":"FunctionDefinition","parameters":{"id":5780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5779,"mutability":"mutable","name":"value","nameLocation":"26464:5:15","nodeType":"VariableDeclaration","scope":5802,"src":"26457:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5778,"name":"int256","nodeType":"ElementaryTypeName","src":"26457:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26456:14:15"},"returnParameters":{"id":5783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5782,"mutability":"mutable","name":"downcasted","nameLocation":"26501:10:15","nodeType":"VariableDeclaration","scope":5802,"src":"26494:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":5781,"name":"int120","nodeType":"ElementaryTypeName","src":"26494:6:15","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26493:19:15"},"scope":6207,"src":"26439:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5827,"nodeType":"Block","src":"27060:150:15","statements":[{"expression":{"id":5815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5810,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5808,"src":"27070:10:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5805,"src":"27090:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27083:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":5811,"name":"int112","nodeType":"ElementaryTypeName","src":"27083:6:15","typeDescriptions":{}}},"id":5814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27083:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27070:26:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":5816,"nodeType":"ExpressionStatement","src":"27070:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5817,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5808,"src":"27110:10:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5818,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5805,"src":"27124:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27110:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5826,"nodeType":"IfStatement","src":"27106:98:15","trueBody":{"id":5825,"nodeType":"Block","src":"27131:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":5821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27182:3:15","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":5822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5805,"src":"27187:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5820,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"27152:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27152:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5824,"nodeType":"RevertStatement","src":"27145:48:15"}]}}]},"documentation":{"id":5803,"nodeType":"StructuredDocumentation","src":"26669:312:15","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":5828,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"26995:8:15","nodeType":"FunctionDefinition","parameters":{"id":5806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5805,"mutability":"mutable","name":"value","nameLocation":"27011:5:15","nodeType":"VariableDeclaration","scope":5828,"src":"27004:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5804,"name":"int256","nodeType":"ElementaryTypeName","src":"27004:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27003:14:15"},"returnParameters":{"id":5809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5808,"mutability":"mutable","name":"downcasted","nameLocation":"27048:10:15","nodeType":"VariableDeclaration","scope":5828,"src":"27041:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":5807,"name":"int112","nodeType":"ElementaryTypeName","src":"27041:6:15","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27040:19:15"},"scope":6207,"src":"26986:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5853,"nodeType":"Block","src":"27607:150:15","statements":[{"expression":{"id":5841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5836,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5834,"src":"27617:10:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5831,"src":"27637:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27630:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":5837,"name":"int104","nodeType":"ElementaryTypeName","src":"27630:6:15","typeDescriptions":{}}},"id":5840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27630:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27617:26:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":5842,"nodeType":"ExpressionStatement","src":"27617:26:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5843,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5834,"src":"27657:10:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5844,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5831,"src":"27671:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27657:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5852,"nodeType":"IfStatement","src":"27653:98:15","trueBody":{"id":5851,"nodeType":"Block","src":"27678:73:15","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":5847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27729:3:15","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":5848,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5831,"src":"27734:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5846,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"27699:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27699:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5850,"nodeType":"RevertStatement","src":"27692:48:15"}]}}]},"documentation":{"id":5829,"nodeType":"StructuredDocumentation","src":"27216:312:15","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":5854,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27542:8:15","nodeType":"FunctionDefinition","parameters":{"id":5832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5831,"mutability":"mutable","name":"value","nameLocation":"27558:5:15","nodeType":"VariableDeclaration","scope":5854,"src":"27551:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5830,"name":"int256","nodeType":"ElementaryTypeName","src":"27551:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27550:14:15"},"returnParameters":{"id":5835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5834,"mutability":"mutable","name":"downcasted","nameLocation":"27595:10:15","nodeType":"VariableDeclaration","scope":5854,"src":"27588:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5833,"name":"int104","nodeType":"ElementaryTypeName","src":"27588:6:15","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27587:19:15"},"scope":6207,"src":"27533:224:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5879,"nodeType":"Block","src":"28147:148:15","statements":[{"expression":{"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5862,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5860,"src":"28157:10:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"28176:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28170:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":5863,"name":"int96","nodeType":"ElementaryTypeName","src":"28170:5:15","typeDescriptions":{}}},"id":5866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28170:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28157:25:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":5868,"nodeType":"ExpressionStatement","src":"28157:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5869,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5860,"src":"28196:10:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5870,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"28210:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28196:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5878,"nodeType":"IfStatement","src":"28192:97:15","trueBody":{"id":5877,"nodeType":"Block","src":"28217:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":5873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28268:2:15","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":5874,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"28272:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5872,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"28238:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28238:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5876,"nodeType":"RevertStatement","src":"28231:47:15"}]}}]},"documentation":{"id":5855,"nodeType":"StructuredDocumentation","src":"27763:307:15","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":5880,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28084:7:15","nodeType":"FunctionDefinition","parameters":{"id":5858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5857,"mutability":"mutable","name":"value","nameLocation":"28099:5:15","nodeType":"VariableDeclaration","scope":5880,"src":"28092:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5856,"name":"int256","nodeType":"ElementaryTypeName","src":"28092:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28091:14:15"},"returnParameters":{"id":5861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5860,"mutability":"mutable","name":"downcasted","nameLocation":"28135:10:15","nodeType":"VariableDeclaration","scope":5880,"src":"28129:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":5859,"name":"int96","nodeType":"ElementaryTypeName","src":"28129:5:15","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28128:18:15"},"scope":6207,"src":"28075:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5905,"nodeType":"Block","src":"28685:148:15","statements":[{"expression":{"id":5893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5888,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"28695:10:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5891,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5883,"src":"28714:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28708:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":5889,"name":"int88","nodeType":"ElementaryTypeName","src":"28708:5:15","typeDescriptions":{}}},"id":5892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28708:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28695:25:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":5894,"nodeType":"ExpressionStatement","src":"28695:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5895,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"28734:10:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5896,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5883,"src":"28748:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28734:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5904,"nodeType":"IfStatement","src":"28730:97:15","trueBody":{"id":5903,"nodeType":"Block","src":"28755:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":5899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28806:2:15","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":5900,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5883,"src":"28810:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5898,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"28776:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28776:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5902,"nodeType":"RevertStatement","src":"28769:47:15"}]}}]},"documentation":{"id":5881,"nodeType":"StructuredDocumentation","src":"28301:307:15","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":5906,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28622:7:15","nodeType":"FunctionDefinition","parameters":{"id":5884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5883,"mutability":"mutable","name":"value","nameLocation":"28637:5:15","nodeType":"VariableDeclaration","scope":5906,"src":"28630:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5882,"name":"int256","nodeType":"ElementaryTypeName","src":"28630:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28629:14:15"},"returnParameters":{"id":5887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5886,"mutability":"mutable","name":"downcasted","nameLocation":"28673:10:15","nodeType":"VariableDeclaration","scope":5906,"src":"28667:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":5885,"name":"int88","nodeType":"ElementaryTypeName","src":"28667:5:15","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28666:18:15"},"scope":6207,"src":"28613:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5931,"nodeType":"Block","src":"29223:148:15","statements":[{"expression":{"id":5919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5914,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5912,"src":"29233:10:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5917,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"29252:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29246:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":5915,"name":"int80","nodeType":"ElementaryTypeName","src":"29246:5:15","typeDescriptions":{}}},"id":5918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29246:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29233:25:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":5920,"nodeType":"ExpressionStatement","src":"29233:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5921,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5912,"src":"29272:10:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"29286:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29272:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5930,"nodeType":"IfStatement","src":"29268:97:15","trueBody":{"id":5929,"nodeType":"Block","src":"29293:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":5925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29344:2:15","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":5926,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"29348:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5924,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"29314:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29314:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5928,"nodeType":"RevertStatement","src":"29307:47:15"}]}}]},"documentation":{"id":5907,"nodeType":"StructuredDocumentation","src":"28839:307:15","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":5932,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29160:7:15","nodeType":"FunctionDefinition","parameters":{"id":5910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5909,"mutability":"mutable","name":"value","nameLocation":"29175:5:15","nodeType":"VariableDeclaration","scope":5932,"src":"29168:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5908,"name":"int256","nodeType":"ElementaryTypeName","src":"29168:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29167:14:15"},"returnParameters":{"id":5913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5912,"mutability":"mutable","name":"downcasted","nameLocation":"29211:10:15","nodeType":"VariableDeclaration","scope":5932,"src":"29205:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":5911,"name":"int80","nodeType":"ElementaryTypeName","src":"29205:5:15","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29204:18:15"},"scope":6207,"src":"29151:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5957,"nodeType":"Block","src":"29761:148:15","statements":[{"expression":{"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5940,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5938,"src":"29771:10:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5943,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"29790:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29784:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":5941,"name":"int72","nodeType":"ElementaryTypeName","src":"29784:5:15","typeDescriptions":{}}},"id":5944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29784:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"29771:25:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":5946,"nodeType":"ExpressionStatement","src":"29771:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5947,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5938,"src":"29810:10:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5948,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"29824:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29810:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5956,"nodeType":"IfStatement","src":"29806:97:15","trueBody":{"id":5955,"nodeType":"Block","src":"29831:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":5951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29882:2:15","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":5952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"29886:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5950,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"29852:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29852:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5954,"nodeType":"RevertStatement","src":"29845:47:15"}]}}]},"documentation":{"id":5933,"nodeType":"StructuredDocumentation","src":"29377:307:15","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":5958,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29698:7:15","nodeType":"FunctionDefinition","parameters":{"id":5936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5935,"mutability":"mutable","name":"value","nameLocation":"29713:5:15","nodeType":"VariableDeclaration","scope":5958,"src":"29706:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5934,"name":"int256","nodeType":"ElementaryTypeName","src":"29706:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29705:14:15"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5938,"mutability":"mutable","name":"downcasted","nameLocation":"29749:10:15","nodeType":"VariableDeclaration","scope":5958,"src":"29743:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":5937,"name":"int72","nodeType":"ElementaryTypeName","src":"29743:5:15","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"29742:18:15"},"scope":6207,"src":"29689:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5983,"nodeType":"Block","src":"30299:148:15","statements":[{"expression":{"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5966,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"30309:10:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5969,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"30328:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30322:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":5967,"name":"int64","nodeType":"ElementaryTypeName","src":"30322:5:15","typeDescriptions":{}}},"id":5970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30322:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30309:25:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":5972,"nodeType":"ExpressionStatement","src":"30309:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5973,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"30348:10:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5974,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"30362:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30348:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5982,"nodeType":"IfStatement","src":"30344:97:15","trueBody":{"id":5981,"nodeType":"Block","src":"30369:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":5977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30420:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":5978,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"30424:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5976,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"30390:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":5979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30390:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5980,"nodeType":"RevertStatement","src":"30383:47:15"}]}}]},"documentation":{"id":5959,"nodeType":"StructuredDocumentation","src":"29915:307:15","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":5984,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30236:7:15","nodeType":"FunctionDefinition","parameters":{"id":5962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5961,"mutability":"mutable","name":"value","nameLocation":"30251:5:15","nodeType":"VariableDeclaration","scope":5984,"src":"30244:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5960,"name":"int256","nodeType":"ElementaryTypeName","src":"30244:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30243:14:15"},"returnParameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"downcasted","nameLocation":"30287:10:15","nodeType":"VariableDeclaration","scope":5984,"src":"30281:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":5963,"name":"int64","nodeType":"ElementaryTypeName","src":"30281:5:15","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30280:18:15"},"scope":6207,"src":"30227:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6009,"nodeType":"Block","src":"30837:148:15","statements":[{"expression":{"id":5997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5992,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"30847:10:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5995,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5987,"src":"30866:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30860:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":5993,"name":"int56","nodeType":"ElementaryTypeName","src":"30860:5:15","typeDescriptions":{}}},"id":5996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30860:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"30847:25:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":5998,"nodeType":"ExpressionStatement","src":"30847:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5999,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"30886:10:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6000,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5987,"src":"30900:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30886:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6008,"nodeType":"IfStatement","src":"30882:97:15","trueBody":{"id":6007,"nodeType":"Block","src":"30907:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":6003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30958:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":6004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5987,"src":"30962:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6002,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"30928:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6006,"nodeType":"RevertStatement","src":"30921:47:15"}]}}]},"documentation":{"id":5985,"nodeType":"StructuredDocumentation","src":"30453:307:15","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":6010,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"30774:7:15","nodeType":"FunctionDefinition","parameters":{"id":5988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5987,"mutability":"mutable","name":"value","nameLocation":"30789:5:15","nodeType":"VariableDeclaration","scope":6010,"src":"30782:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5986,"name":"int256","nodeType":"ElementaryTypeName","src":"30782:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30781:14:15"},"returnParameters":{"id":5991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5990,"mutability":"mutable","name":"downcasted","nameLocation":"30825:10:15","nodeType":"VariableDeclaration","scope":6010,"src":"30819:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":5989,"name":"int56","nodeType":"ElementaryTypeName","src":"30819:5:15","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"30818:18:15"},"scope":6207,"src":"30765:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6035,"nodeType":"Block","src":"31375:148:15","statements":[{"expression":{"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6018,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"31385:10:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6021,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"31404:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":6019,"name":"int48","nodeType":"ElementaryTypeName","src":"31398:5:15","typeDescriptions":{}}},"id":6022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31385:25:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":6024,"nodeType":"ExpressionStatement","src":"31385:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6025,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"31424:10:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6026,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"31438:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31424:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6034,"nodeType":"IfStatement","src":"31420:97:15","trueBody":{"id":6033,"nodeType":"Block","src":"31445:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":6029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31496:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":6030,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"31500:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6028,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"31466:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31466:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6032,"nodeType":"RevertStatement","src":"31459:47:15"}]}}]},"documentation":{"id":6011,"nodeType":"StructuredDocumentation","src":"30991:307:15","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":6036,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31312:7:15","nodeType":"FunctionDefinition","parameters":{"id":6014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6013,"mutability":"mutable","name":"value","nameLocation":"31327:5:15","nodeType":"VariableDeclaration","scope":6036,"src":"31320:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6012,"name":"int256","nodeType":"ElementaryTypeName","src":"31320:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31319:14:15"},"returnParameters":{"id":6017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6016,"mutability":"mutable","name":"downcasted","nameLocation":"31363:10:15","nodeType":"VariableDeclaration","scope":6036,"src":"31357:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":6015,"name":"int48","nodeType":"ElementaryTypeName","src":"31357:5:15","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31356:18:15"},"scope":6207,"src":"31303:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6061,"nodeType":"Block","src":"31913:148:15","statements":[{"expression":{"id":6049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6044,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6042,"src":"31923:10:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6047,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6039,"src":"31942:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31936:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":6045,"name":"int40","nodeType":"ElementaryTypeName","src":"31936:5:15","typeDescriptions":{}}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31936:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"31923:25:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":6050,"nodeType":"ExpressionStatement","src":"31923:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6051,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6042,"src":"31962:10:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6039,"src":"31976:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31962:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6060,"nodeType":"IfStatement","src":"31958:97:15","trueBody":{"id":6059,"nodeType":"Block","src":"31983:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":6055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32034:2:15","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":6056,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6039,"src":"32038:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6054,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"32004:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32004:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6058,"nodeType":"RevertStatement","src":"31997:47:15"}]}}]},"documentation":{"id":6037,"nodeType":"StructuredDocumentation","src":"31529:307:15","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":6062,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"31850:7:15","nodeType":"FunctionDefinition","parameters":{"id":6040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6039,"mutability":"mutable","name":"value","nameLocation":"31865:5:15","nodeType":"VariableDeclaration","scope":6062,"src":"31858:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6038,"name":"int256","nodeType":"ElementaryTypeName","src":"31858:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31857:14:15"},"returnParameters":{"id":6043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6042,"mutability":"mutable","name":"downcasted","nameLocation":"31901:10:15","nodeType":"VariableDeclaration","scope":6062,"src":"31895:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":6041,"name":"int40","nodeType":"ElementaryTypeName","src":"31895:5:15","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"31894:18:15"},"scope":6207,"src":"31841:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6087,"nodeType":"Block","src":"32451:148:15","statements":[{"expression":{"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6070,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6068,"src":"32461:10:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6073,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"32480:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32474:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":6071,"name":"int32","nodeType":"ElementaryTypeName","src":"32474:5:15","typeDescriptions":{}}},"id":6074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32474:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32461:25:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":6076,"nodeType":"ExpressionStatement","src":"32461:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6077,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6068,"src":"32500:10:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6078,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"32514:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32500:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6086,"nodeType":"IfStatement","src":"32496:97:15","trueBody":{"id":6085,"nodeType":"Block","src":"32521:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":6081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32572:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":6082,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"32576:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6080,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"32542:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32542:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6084,"nodeType":"RevertStatement","src":"32535:47:15"}]}}]},"documentation":{"id":6063,"nodeType":"StructuredDocumentation","src":"32067:307:15","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":6088,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32388:7:15","nodeType":"FunctionDefinition","parameters":{"id":6066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6065,"mutability":"mutable","name":"value","nameLocation":"32403:5:15","nodeType":"VariableDeclaration","scope":6088,"src":"32396:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6064,"name":"int256","nodeType":"ElementaryTypeName","src":"32396:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32395:14:15"},"returnParameters":{"id":6069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6068,"mutability":"mutable","name":"downcasted","nameLocation":"32439:10:15","nodeType":"VariableDeclaration","scope":6088,"src":"32433:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":6067,"name":"int32","nodeType":"ElementaryTypeName","src":"32433:5:15","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32432:18:15"},"scope":6207,"src":"32379:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6113,"nodeType":"Block","src":"32989:148:15","statements":[{"expression":{"id":6101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6096,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"32999:10:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6099,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"33018:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33012:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":6097,"name":"int24","nodeType":"ElementaryTypeName","src":"33012:5:15","typeDescriptions":{}}},"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33012:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"32999:25:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":6102,"nodeType":"ExpressionStatement","src":"32999:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6103,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"33038:10:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6104,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"33052:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33038:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6112,"nodeType":"IfStatement","src":"33034:97:15","trueBody":{"id":6111,"nodeType":"Block","src":"33059:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":6107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33110:2:15","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":6108,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6091,"src":"33114:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6106,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"33080:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33080:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6110,"nodeType":"RevertStatement","src":"33073:47:15"}]}}]},"documentation":{"id":6089,"nodeType":"StructuredDocumentation","src":"32605:307:15","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":6114,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"32926:7:15","nodeType":"FunctionDefinition","parameters":{"id":6092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6091,"mutability":"mutable","name":"value","nameLocation":"32941:5:15","nodeType":"VariableDeclaration","scope":6114,"src":"32934:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6090,"name":"int256","nodeType":"ElementaryTypeName","src":"32934:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32933:14:15"},"returnParameters":{"id":6095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6094,"mutability":"mutable","name":"downcasted","nameLocation":"32977:10:15","nodeType":"VariableDeclaration","scope":6114,"src":"32971:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":6093,"name":"int24","nodeType":"ElementaryTypeName","src":"32971:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"32970:18:15"},"scope":6207,"src":"32917:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6139,"nodeType":"Block","src":"33527:148:15","statements":[{"expression":{"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6122,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"33537:10:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"33556:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33550:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":6123,"name":"int16","nodeType":"ElementaryTypeName","src":"33550:5:15","typeDescriptions":{}}},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33550:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33537:25:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":6128,"nodeType":"ExpressionStatement","src":"33537:25:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6129,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"33576:10:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"33590:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33576:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6138,"nodeType":"IfStatement","src":"33572:97:15","trueBody":{"id":6137,"nodeType":"Block","src":"33597:72:15","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":6133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33648:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":6134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"33652:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6132,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"33618:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33618:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6136,"nodeType":"RevertStatement","src":"33611:47:15"}]}}]},"documentation":{"id":6115,"nodeType":"StructuredDocumentation","src":"33143:307:15","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":6140,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33464:7:15","nodeType":"FunctionDefinition","parameters":{"id":6118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6117,"mutability":"mutable","name":"value","nameLocation":"33479:5:15","nodeType":"VariableDeclaration","scope":6140,"src":"33472:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6116,"name":"int256","nodeType":"ElementaryTypeName","src":"33472:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33471:14:15"},"returnParameters":{"id":6121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6120,"mutability":"mutable","name":"downcasted","nameLocation":"33515:10:15","nodeType":"VariableDeclaration","scope":6140,"src":"33509:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":6119,"name":"int16","nodeType":"ElementaryTypeName","src":"33509:5:15","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33508:18:15"},"scope":6207,"src":"33455:220:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6165,"nodeType":"Block","src":"34058:146:15","statements":[{"expression":{"id":6153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6148,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6146,"src":"34068:10:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"34086:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34081:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":6149,"name":"int8","nodeType":"ElementaryTypeName","src":"34081:4:15","typeDescriptions":{}}},"id":6152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34068:24:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":6154,"nodeType":"ExpressionStatement","src":"34068:24:15"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6155,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6146,"src":"34106:10:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6156,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"34120:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34106:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6164,"nodeType":"IfStatement","src":"34102:96:15","trueBody":{"id":6163,"nodeType":"Block","src":"34127:71:15","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":6159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34178:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":6160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"34181:5:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6158,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"34148:29:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34148:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6162,"nodeType":"RevertStatement","src":"34141:46:15"}]}}]},"documentation":{"id":6141,"nodeType":"StructuredDocumentation","src":"33681:302:15","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":6166,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"33997:6:15","nodeType":"FunctionDefinition","parameters":{"id":6144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6143,"mutability":"mutable","name":"value","nameLocation":"34011:5:15","nodeType":"VariableDeclaration","scope":6166,"src":"34004:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6142,"name":"int256","nodeType":"ElementaryTypeName","src":"34004:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34003:14:15"},"returnParameters":{"id":6147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6146,"mutability":"mutable","name":"downcasted","nameLocation":"34046:10:15","nodeType":"VariableDeclaration","scope":6166,"src":"34041:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":6145,"name":"int8","nodeType":"ElementaryTypeName","src":"34041:4:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34040:17:15"},"scope":6207,"src":"33988:216:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6195,"nodeType":"Block","src":"34444:250:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"34557:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":6179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34578:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6178,"name":"int256","nodeType":"ElementaryTypeName","src":"34578:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":6177,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34573:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34573:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":6181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34586:3:15","memberName":"max","nodeType":"MemberAccess","src":"34573:16:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34565:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6175,"name":"uint256","nodeType":"ElementaryTypeName","src":"34565:7:15","typeDescriptions":{}}},"id":6182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34565:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34557:33:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6189,"nodeType":"IfStatement","src":"34553:105:15","trueBody":{"id":6188,"nodeType":"Block","src":"34592:66:15","statements":[{"errorCall":{"arguments":[{"id":6185,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"34641:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6184,"name":"SafeCastOverflowedUintToInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4469,"src":"34613:27:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":6186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34613:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6187,"nodeType":"RevertStatement","src":"34606:41:15"}]}},{"expression":{"arguments":[{"id":6192,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6169,"src":"34681:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34674:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6190,"name":"int256","nodeType":"ElementaryTypeName","src":"34674:6:15","typeDescriptions":{}}},"id":6193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34674:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6173,"id":6194,"nodeType":"Return","src":"34667:20:15"}]},"documentation":{"id":6167,"nodeType":"StructuredDocumentation","src":"34210:165:15","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."},"id":6196,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34389:8:15","nodeType":"FunctionDefinition","parameters":{"id":6170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6169,"mutability":"mutable","name":"value","nameLocation":"34406:5:15","nodeType":"VariableDeclaration","scope":6196,"src":"34398:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6168,"name":"uint256","nodeType":"ElementaryTypeName","src":"34398:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34397:15:15"},"returnParameters":{"id":6173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6196,"src":"34436:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6171,"name":"int256","nodeType":"ElementaryTypeName","src":"34436:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34435:8:15"},"scope":6207,"src":"34380:314:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6205,"nodeType":"Block","src":"34853:114:15","statements":[{"AST":{"nativeSrc":"34915:46:15","nodeType":"YulBlock","src":"34915:46:15","statements":[{"nativeSrc":"34929:22:15","nodeType":"YulAssignment","src":"34929:22:15","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"34948:1:15","nodeType":"YulIdentifier","src":"34948:1:15"}],"functionName":{"name":"iszero","nativeSrc":"34941:6:15","nodeType":"YulIdentifier","src":"34941:6:15"},"nativeSrc":"34941:9:15","nodeType":"YulFunctionCall","src":"34941:9:15"}],"functionName":{"name":"iszero","nativeSrc":"34934:6:15","nodeType":"YulIdentifier","src":"34934:6:15"},"nativeSrc":"34934:17:15","nodeType":"YulFunctionCall","src":"34934:17:15"},"variableNames":[{"name":"u","nativeSrc":"34929:1:15","nodeType":"YulIdentifier","src":"34929:1:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6199,"isOffset":false,"isSlot":false,"src":"34948:1:15","valueSize":1},{"declaration":6202,"isOffset":false,"isSlot":false,"src":"34929:1:15","valueSize":1}],"id":6204,"nodeType":"InlineAssembly","src":"34906:55:15"}]},"documentation":{"id":6197,"nodeType":"StructuredDocumentation","src":"34700:90:15","text":" @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump."},"id":6206,"implemented":true,"kind":"function","modifiers":[],"name":"toUint","nameLocation":"34804:6:15","nodeType":"FunctionDefinition","parameters":{"id":6200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6199,"mutability":"mutable","name":"b","nameLocation":"34816:1:15","nodeType":"VariableDeclaration","scope":6206,"src":"34811:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6198,"name":"bool","nodeType":"ElementaryTypeName","src":"34811:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34810:8:15"},"returnParameters":{"id":6203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6202,"mutability":"mutable","name":"u","nameLocation":"34850:1:15","nodeType":"VariableDeclaration","scope":6206,"src":"34842:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6201,"name":"uint256","nodeType":"ElementaryTypeName","src":"34842:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34841:11:15"},"scope":6207,"src":"34795:172:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":6208,"src":"769:34200:15","usedErrors":[4452,4457,4464,4469],"usedEvents":[]}],"src":"192:34778:15"},"id":15},"@solady/accounts/Receiver.sol":{"ast":{"absolutePath":"@solady/accounts/Receiver.sol","exportedSymbols":{"Receiver":[6229]},"id":6230,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6209,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:16"},{"abstract":true,"baseContracts":[],"canonicalName":"Receiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":6210,"nodeType":"StructuredDocumentation","src":"57:374:16","text":"@notice Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\n @author Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\n @dev Note:\n - Handles all ERC721 and ERC1155 token safety callbacks.\n - Collapses function table gas overhead and code size.\n - Utilizes fallback so unknown calldata will pass on."},"fullyImplemented":true,"id":6229,"linearizedBaseContracts":[6229],"name":"Receiver","nameLocation":"449:8:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":6214,"nodeType":"Block","src":"531:2:16","statements":[]},"documentation":{"id":6211,"nodeType":"StructuredDocumentation","src":"464:27:16","text":"@dev For receiving ETH."},"id":6215,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6212,"nodeType":"ParameterList","parameters":[],"src":"503:2:16"},"returnParameters":{"id":6213,"nodeType":"ParameterList","parameters":[],"src":"531:0:16"},"scope":6229,"src":"496:37:16","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":6221,"nodeType":"Block","src":"661:2:16","statements":[]},"documentation":{"id":6216,"nodeType":"StructuredDocumentation","src":"539:64:16","text":"@dev Fallback function with the `receiverFallback` modifier."},"id":6222,"implemented":true,"kind":"fallback","modifiers":[{"id":6219,"kind":"modifierInvocation","modifierName":{"id":6218,"name":"receiverFallback","nameLocations":["644:16:16"],"nodeType":"IdentifierPath","referencedDeclaration":6228,"src":"644:16:16"},"nodeType":"ModifierInvocation","src":"644:16:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6217,"nodeType":"ParameterList","parameters":[],"src":"616:2:16"},"returnParameters":{"id":6220,"nodeType":"ParameterList","parameters":[],"src":"661:0:16"},"scope":6229,"src":"608:55:16","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":6227,"nodeType":"Block","src":"780:601:16","statements":[{"AST":{"nativeSrc":"842:522:16","nodeType":"YulBlock","src":"842:522:16","statements":[{"nativeSrc":"856:34:16","nodeType":"YulVariableDeclaration","src":"856:34:16","value":{"arguments":[{"kind":"number","nativeSrc":"869:3:16","nodeType":"YulLiteral","src":"869:3:16","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"887:1:16","nodeType":"YulLiteral","src":"887:1:16","type":"","value":"0"}],"functionName":{"name":"calldataload","nativeSrc":"874:12:16","nodeType":"YulIdentifier","src":"874:12:16"},"nativeSrc":"874:15:16","nodeType":"YulFunctionCall","src":"874:15:16"}],"functionName":{"name":"shr","nativeSrc":"865:3:16","nodeType":"YulIdentifier","src":"865:3:16"},"nativeSrc":"865:25:16","nodeType":"YulFunctionCall","src":"865:25:16"},"variables":[{"name":"s","nativeSrc":"860:1:16","nodeType":"YulTypedName","src":"860:1:16","type":""}]},{"body":{"nativeSrc":"1231:123:16","nodeType":"YulBlock","src":"1231:123:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1256:4:16","nodeType":"YulLiteral","src":"1256:4:16","type":"","value":"0x20"},{"name":"s","nativeSrc":"1262:1:16","nodeType":"YulIdentifier","src":"1262:1:16"}],"functionName":{"name":"mstore","nativeSrc":"1249:6:16","nodeType":"YulIdentifier","src":"1249:6:16"},"nativeSrc":"1249:15:16","nodeType":"YulFunctionCall","src":"1249:15:16"},"nativeSrc":"1249:15:16","nodeType":"YulExpressionStatement","src":"1249:15:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1308:4:16","nodeType":"YulLiteral","src":"1308:4:16","type":"","value":"0x3c"},{"kind":"number","nativeSrc":"1314:4:16","nodeType":"YulLiteral","src":"1314:4:16","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"1301:6:16","nodeType":"YulIdentifier","src":"1301:6:16"},"nativeSrc":"1301:18:16","nodeType":"YulFunctionCall","src":"1301:18:16"},"nativeSrc":"1301:18:16","nodeType":"YulExpressionStatement","src":"1301:18:16"}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"1173:1:16","nodeType":"YulIdentifier","src":"1173:1:16"},{"kind":"number","nativeSrc":"1176:10:16","nodeType":"YulLiteral","src":"1176:10:16","type":"","value":"0x150b7a02"}],"functionName":{"name":"eq","nativeSrc":"1170:2:16","nodeType":"YulIdentifier","src":"1170:2:16"},"nativeSrc":"1170:17:16","nodeType":"YulFunctionCall","src":"1170:17:16"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"1195:1:16","nodeType":"YulIdentifier","src":"1195:1:16"},{"kind":"number","nativeSrc":"1198:10:16","nodeType":"YulLiteral","src":"1198:10:16","type":"","value":"0xf23a6e61"}],"functionName":{"name":"eq","nativeSrc":"1192:2:16","nodeType":"YulIdentifier","src":"1192:2:16"},"nativeSrc":"1192:17:16","nodeType":"YulFunctionCall","src":"1192:17:16"},{"arguments":[{"name":"s","nativeSrc":"1214:1:16","nodeType":"YulIdentifier","src":"1214:1:16"},{"kind":"number","nativeSrc":"1217:10:16","nodeType":"YulLiteral","src":"1217:10:16","type":"","value":"0xbc197c81"}],"functionName":{"name":"eq","nativeSrc":"1211:2:16","nodeType":"YulIdentifier","src":"1211:2:16"},"nativeSrc":"1211:17:16","nodeType":"YulFunctionCall","src":"1211:17:16"}],"functionName":{"name":"or","nativeSrc":"1189:2:16","nodeType":"YulIdentifier","src":"1189:2:16"},"nativeSrc":"1189:40:16","nodeType":"YulFunctionCall","src":"1189:40:16"}],"functionName":{"name":"or","nativeSrc":"1167:2:16","nodeType":"YulIdentifier","src":"1167:2:16"},"nativeSrc":"1167:63:16","nodeType":"YulFunctionCall","src":"1167:63:16"},"nativeSrc":"1164:190:16","nodeType":"YulIf","src":"1164:190:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[],"id":6225,"nodeType":"InlineAssembly","src":"833:531:16"},{"id":6226,"nodeType":"PlaceholderStatement","src":"1373:1:16"}]},"documentation":{"id":6223,"nodeType":"StructuredDocumentation","src":"669:70:16","text":"@dev Modifier for the fallback function to handle token callbacks."},"id":6228,"name":"receiverFallback","nameLocation":"753:16:16","nodeType":"ModifierDefinition","parameters":{"id":6224,"nodeType":"ParameterList","parameters":[],"src":"769:2:16"},"src":"744:637:16","virtual":true,"visibility":"internal"}],"scope":6230,"src":"431:952:16","usedErrors":[],"usedEvents":[]}],"src":"32:1352:16"},"id":16},"@solady/auth/Ownable.sol":{"ast":{"absolutePath":"@solady/auth/Ownable.sol","exportedSymbols":{"Ownable":[6423]},"id":6424,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6231,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:17"},{"abstract":true,"baseContracts":[],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":6232,"nodeType":"StructuredDocumentation","src":"57:514:17","text":"@notice Simple single owner authorization mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n @dev Note:\n This implementation does NOT auto-initialize the owner to `msg.sender`.\n You MUST call the `_initializeOwner` in the constructor / initializer.\n While the ownable portion follows\n [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,\n the nomenclature for the 2-step ownership handover may be unique to this codebase."},"fullyImplemented":true,"id":6423,"linearizedBaseContracts":[6423],"name":"Ownable","nameLocation":"589:7:17","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6233,"nodeType":"StructuredDocumentation","src":"886:59:17","text":"@dev The caller is not authorized to call the function."},"errorSelector":"82b42900","id":6235,"name":"Unauthorized","nameLocation":"956:12:17","nodeType":"ErrorDefinition","parameters":{"id":6234,"nodeType":"ParameterList","parameters":[],"src":"968:2:17"},"src":"950:21:17"},{"documentation":{"id":6236,"nodeType":"StructuredDocumentation","src":"977:51:17","text":"@dev The `newOwner` cannot be the zero address."},"errorSelector":"7448fbae","id":6238,"name":"NewOwnerIsZeroAddress","nameLocation":"1039:21:17","nodeType":"ErrorDefinition","parameters":{"id":6237,"nodeType":"ParameterList","parameters":[],"src":"1060:2:17"},"src":"1033:30:17"},{"documentation":{"id":6239,"nodeType":"StructuredDocumentation","src":"1069:67:17","text":"@dev The `pendingOwner` does not have a valid handover request."},"errorSelector":"6f5e8818","id":6241,"name":"NoHandoverRequest","nameLocation":"1147:17:17","nodeType":"ErrorDefinition","parameters":{"id":6240,"nodeType":"ParameterList","parameters":[],"src":"1164:2:17"},"src":"1141:26:17"},{"documentation":{"id":6242,"nodeType":"StructuredDocumentation","src":"1173:34:17","text":"@dev Cannot double-initialize."},"errorSelector":"0dc149f0","id":6244,"name":"AlreadyInitialized","nameLocation":"1218:18:17","nodeType":"ErrorDefinition","parameters":{"id":6243,"nodeType":"ParameterList","parameters":[],"src":"1236:2:17"},"src":"1212:27:17"},{"anonymous":false,"documentation":{"id":6245,"nodeType":"StructuredDocumentation","src":"1528:310:17","text":"@dev The ownership is transferred from `oldOwner` to `newOwner`.\n This event is intentionally kept the same as OpenZeppelin's Ownable to be\n compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173),\n despite it not being as lightweight as a single argument event."},"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":6251,"name":"OwnershipTransferred","nameLocation":"1849:20:17","nodeType":"EventDefinition","parameters":{"id":6250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6247,"indexed":true,"mutability":"mutable","name":"oldOwner","nameLocation":"1886:8:17","nodeType":"VariableDeclaration","scope":6251,"src":"1870:24:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6246,"name":"address","nodeType":"ElementaryTypeName","src":"1870:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6249,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1912:8:17","nodeType":"VariableDeclaration","scope":6251,"src":"1896:24:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6248,"name":"address","nodeType":"ElementaryTypeName","src":"1896:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1869:52:17"},"src":"1843:79:17"},{"anonymous":false,"documentation":{"id":6252,"nodeType":"StructuredDocumentation","src":"1928:68:17","text":"@dev An ownership handover to `pendingOwner` has been requested."},"eventSelector":"dbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d","id":6256,"name":"OwnershipHandoverRequested","nameLocation":"2007:26:17","nodeType":"EventDefinition","parameters":{"id":6255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6254,"indexed":true,"mutability":"mutable","name":"pendingOwner","nameLocation":"2050:12:17","nodeType":"VariableDeclaration","scope":6256,"src":"2034:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6253,"name":"address","nodeType":"ElementaryTypeName","src":"2034:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2033:30:17"},"src":"2001:63:17"},{"anonymous":false,"documentation":{"id":6257,"nodeType":"StructuredDocumentation","src":"2070:68:17","text":"@dev The ownership handover to `pendingOwner` has been canceled."},"eventSelector":"fa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92","id":6261,"name":"OwnershipHandoverCanceled","nameLocation":"2149:25:17","nodeType":"EventDefinition","parameters":{"id":6260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6259,"indexed":true,"mutability":"mutable","name":"pendingOwner","nameLocation":"2191:12:17","nodeType":"VariableDeclaration","scope":6261,"src":"2175:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6258,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2174:30:17"},"src":"2143:62:17"},{"constant":true,"documentation":{"id":6262,"nodeType":"StructuredDocumentation","src":"2211:69:17","text":"@dev `keccak256(bytes(\"OwnershipTransferred(address,address)\"))`."},"id":6265,"mutability":"constant","name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nameLocation":"2310:38:17","nodeType":"VariableDeclaration","scope":6423,"src":"2285:140:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6263,"name":"uint256","nodeType":"ElementaryTypeName","src":"2285:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838626530303739633533313635393134313334346364316664306134663238343139343937663937323261336461616665336234313836663662363435376530","id":6264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2359:66:17","typeDescriptions":{"typeIdentifier":"t_rational_63267312222310607310220992301550539520881909915348243260808268974908359596000_by_1","typeString":"int_const 6326...(69 digits omitted)...6000"},"value":"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"},"visibility":"private"},{"constant":true,"documentation":{"id":6266,"nodeType":"StructuredDocumentation","src":"2432:67:17","text":"@dev `keccak256(bytes(\"OwnershipHandoverRequested(address)\"))`."},"id":6269,"mutability":"constant","name":"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE","nameLocation":"2529:45:17","nodeType":"VariableDeclaration","scope":6423,"src":"2504:147:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6267,"name":"uint256","nodeType":"ElementaryTypeName","src":"2504:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864626633366131303764613139653439353237613731373661316261626639363362346230666638636465333565653335643663643866316639616337653164","id":6268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2585:66:17","typeDescriptions":{"typeIdentifier":"t_rational_99486589706178915293482045537067896628184784474209892898124391061398315892253_by_1","typeString":"int_const 9948...(69 digits omitted)...2253"},"value":"0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d"},"visibility":"private"},{"constant":true,"documentation":{"id":6270,"nodeType":"StructuredDocumentation","src":"2658:66:17","text":"@dev `keccak256(bytes(\"OwnershipHandoverCanceled(address)\"))`."},"id":6273,"mutability":"constant","name":"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE","nameLocation":"2754:44:17","nodeType":"VariableDeclaration","scope":6423,"src":"2729:146:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6271,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307866613762386561623764613637663431326363393537356564343334363434363866396266626165383964313637353931373334366361366438666533633932","id":6272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2809:66:17","typeDescriptions":{"typeIdentifier":"t_rational_113296519006148992096626879868577423813870114622160551413976512868841544367250_by_1","typeString":"int_const 1132...(70 digits omitted)...7250"},"value":"0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92"},"visibility":"private"},{"constant":true,"documentation":{"id":6274,"nodeType":"StructuredDocumentation","src":"3165:334:17","text":"@dev The owner slot is given by:\n `bytes32(~uint256(uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))))`.\n It is intentionally chosen to be a high value\n to avoid collision with lower slots.\n The choice of manual storage layout is to enable compatibility\n with both regular and upgradeable contracts."},"id":6277,"mutability":"constant","name":"_OWNER_SLOT","nameLocation":"3530:11:17","nodeType":"VariableDeclaration","scope":6423,"src":"3504:114:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3504:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666663734383733393237","id":6276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3552:66:17","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007910789691687_by_1","typeString":"int_const 1157...(70 digits omitted)...1687"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927"},"visibility":"internal"},{"constant":true,"documentation":{"id":6278,"nodeType":"StructuredDocumentation","src":"3625:276:17","text":"The ownership handover slot of `newOwner` is given by:\n ```\n mstore(0x00, or(shl(96, user), _HANDOVER_SLOT_SEED))\n let handoverSlot := keccak256(0x00, 0x20)\n ```\n It stores the expiry timestamp of the two-step ownership handover."},"id":6281,"mutability":"constant","name":"_HANDOVER_SLOT_SEED","nameLocation":"3931:19:17","nodeType":"VariableDeclaration","scope":6423,"src":"3906:57:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6279,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783338396137356531","id":6280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3953:10:17","typeDescriptions":{"typeIdentifier":"t_rational_949646817_by_1","typeString":"int_const 949646817"},"value":"0x389a75e1"},"visibility":"private"},{"body":{"id":6287,"nodeType":"Block","src":"4424:2:17","statements":[]},"documentation":{"id":6282,"nodeType":"StructuredDocumentation","src":"4253:90:17","text":"@dev Override to return true to make `_initializeOwner` prevent double-initialization."},"id":6288,"implemented":true,"kind":"function","modifiers":[],"name":"_guardInitializeOwner","nameLocation":"4357:21:17","nodeType":"FunctionDefinition","parameters":{"id":6283,"nodeType":"ParameterList","parameters":[],"src":"4378:2:17"},"returnParameters":{"id":6286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6285,"mutability":"mutable","name":"guard","nameLocation":"4417:5:17","nodeType":"VariableDeclaration","scope":6288,"src":"4412:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6284,"name":"bool","nodeType":"ElementaryTypeName","src":"4412:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4411:12:17"},"scope":6423,"src":"4348:78:17","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":6301,"nodeType":"Block","src":"4944:1129:17","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":6294,"name":"_guardInitializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"4958:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bool_$","typeString":"function () pure returns (bool)"}},"id":6295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4958:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6299,"nodeType":"Block","src":"5649:418:17","statements":[{"AST":{"nativeSrc":"5719:338:17","nodeType":"YulBlock","src":"5719:338:17","statements":[{"nativeSrc":"5781:38:17","nodeType":"YulAssignment","src":"5781:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"5797:2:17","nodeType":"YulLiteral","src":"5797:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"5805:2:17","nodeType":"YulLiteral","src":"5805:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"5809:8:17","nodeType":"YulIdentifier","src":"5809:8:17"}],"functionName":{"name":"shl","nativeSrc":"5801:3:17","nodeType":"YulIdentifier","src":"5801:3:17"},"nativeSrc":"5801:17:17","nodeType":"YulFunctionCall","src":"5801:17:17"}],"functionName":{"name":"shr","nativeSrc":"5793:3:17","nodeType":"YulIdentifier","src":"5793:3:17"},"nativeSrc":"5793:26:17","nodeType":"YulFunctionCall","src":"5793:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"5781:8:17","nodeType":"YulIdentifier","src":"5781:8:17"}]},{"expression":{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"5883:11:17","nodeType":"YulIdentifier","src":"5883:11:17"},{"name":"newOwner","nativeSrc":"5896:8:17","nodeType":"YulIdentifier","src":"5896:8:17"}],"functionName":{"name":"sstore","nativeSrc":"5876:6:17","nodeType":"YulIdentifier","src":"5876:6:17"},"nativeSrc":"5876:29:17","nodeType":"YulFunctionCall","src":"5876:29:17"},"nativeSrc":"5876:29:17","nodeType":"YulExpressionStatement","src":"5876:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5985:1:17","nodeType":"YulLiteral","src":"5985:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"5988:1:17","nodeType":"YulLiteral","src":"5988:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"5991:38:17","nodeType":"YulIdentifier","src":"5991:38:17"},{"kind":"number","nativeSrc":"6031:1:17","nodeType":"YulLiteral","src":"6031:1:17","type":"","value":"0"},{"name":"newOwner","nativeSrc":"6034:8:17","nodeType":"YulIdentifier","src":"6034:8:17"}],"functionName":{"name":"log3","nativeSrc":"5980:4:17","nodeType":"YulIdentifier","src":"5980:4:17"},"nativeSrc":"5980:63:17","nodeType":"YulFunctionCall","src":"5980:63:17"},"nativeSrc":"5980:63:17","nodeType":"YulExpressionStatement","src":"5980:63:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"5991:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5883:11:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5781:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5809:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5896:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6034:8:17","valueSize":1}],"id":6298,"nodeType":"InlineAssembly","src":"5710:347:17"}]},"id":6300,"nodeType":"IfStatement","src":"4954:1113:17","trueBody":{"id":6297,"nodeType":"Block","src":"4983:660:17","statements":[{"AST":{"nativeSrc":"5053:580:17","nodeType":"YulBlock","src":"5053:580:17","statements":[{"nativeSrc":"5071:28:17","nodeType":"YulVariableDeclaration","src":"5071:28:17","value":{"name":"_OWNER_SLOT","nativeSrc":"5088:11:17","nodeType":"YulIdentifier","src":"5088:11:17"},"variables":[{"name":"ownerSlot","nativeSrc":"5075:9:17","nodeType":"YulTypedName","src":"5075:9:17","type":""}]},{"body":{"nativeSrc":"5136:130:17","nodeType":"YulBlock","src":"5136:130:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5165:4:17","nodeType":"YulLiteral","src":"5165:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5171:10:17","nodeType":"YulLiteral","src":"5171:10:17","type":"","value":"0x0dc149f0"}],"functionName":{"name":"mstore","nativeSrc":"5158:6:17","nodeType":"YulIdentifier","src":"5158:6:17"},"nativeSrc":"5158:24:17","nodeType":"YulFunctionCall","src":"5158:24:17"},"nativeSrc":"5158:24:17","nodeType":"YulExpressionStatement","src":"5158:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5237:4:17","nodeType":"YulLiteral","src":"5237:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5243:4:17","nodeType":"YulLiteral","src":"5243:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5230:6:17","nodeType":"YulIdentifier","src":"5230:6:17"},"nativeSrc":"5230:18:17","nodeType":"YulFunctionCall","src":"5230:18:17"},"nativeSrc":"5230:18:17","nodeType":"YulExpressionStatement","src":"5230:18:17"}]},"condition":{"arguments":[{"name":"ownerSlot","nativeSrc":"5125:9:17","nodeType":"YulIdentifier","src":"5125:9:17"}],"functionName":{"name":"sload","nativeSrc":"5119:5:17","nodeType":"YulIdentifier","src":"5119:5:17"},"nativeSrc":"5119:16:17","nodeType":"YulFunctionCall","src":"5119:16:17"},"nativeSrc":"5116:150:17","nodeType":"YulIf","src":"5116:150:17"},{"nativeSrc":"5327:38:17","nodeType":"YulAssignment","src":"5327:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"5343:2:17","nodeType":"YulLiteral","src":"5343:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"5351:2:17","nodeType":"YulLiteral","src":"5351:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"5355:8:17","nodeType":"YulIdentifier","src":"5355:8:17"}],"functionName":{"name":"shl","nativeSrc":"5347:3:17","nodeType":"YulIdentifier","src":"5347:3:17"},"nativeSrc":"5347:17:17","nodeType":"YulFunctionCall","src":"5347:17:17"}],"functionName":{"name":"shr","nativeSrc":"5339:3:17","nodeType":"YulIdentifier","src":"5339:3:17"},"nativeSrc":"5339:26:17","nodeType":"YulFunctionCall","src":"5339:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"5327:8:17","nodeType":"YulIdentifier","src":"5327:8:17"}]},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"5429:9:17","nodeType":"YulIdentifier","src":"5429:9:17"},{"arguments":[{"name":"newOwner","nativeSrc":"5443:8:17","nodeType":"YulIdentifier","src":"5443:8:17"},{"arguments":[{"kind":"number","nativeSrc":"5457:3:17","nodeType":"YulLiteral","src":"5457:3:17","type":"","value":"255"},{"arguments":[{"name":"newOwner","nativeSrc":"5469:8:17","nodeType":"YulIdentifier","src":"5469:8:17"}],"functionName":{"name":"iszero","nativeSrc":"5462:6:17","nodeType":"YulIdentifier","src":"5462:6:17"},"nativeSrc":"5462:16:17","nodeType":"YulFunctionCall","src":"5462:16:17"}],"functionName":{"name":"shl","nativeSrc":"5453:3:17","nodeType":"YulIdentifier","src":"5453:3:17"},"nativeSrc":"5453:26:17","nodeType":"YulFunctionCall","src":"5453:26:17"}],"functionName":{"name":"or","nativeSrc":"5440:2:17","nodeType":"YulIdentifier","src":"5440:2:17"},"nativeSrc":"5440:40:17","nodeType":"YulFunctionCall","src":"5440:40:17"}],"functionName":{"name":"sstore","nativeSrc":"5422:6:17","nodeType":"YulIdentifier","src":"5422:6:17"},"nativeSrc":"5422:59:17","nodeType":"YulFunctionCall","src":"5422:59:17"},"nativeSrc":"5422:59:17","nodeType":"YulExpressionStatement","src":"5422:59:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5561:1:17","nodeType":"YulLiteral","src":"5561:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"5564:1:17","nodeType":"YulLiteral","src":"5564:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"5567:38:17","nodeType":"YulIdentifier","src":"5567:38:17"},{"kind":"number","nativeSrc":"5607:1:17","nodeType":"YulLiteral","src":"5607:1:17","type":"","value":"0"},{"name":"newOwner","nativeSrc":"5610:8:17","nodeType":"YulIdentifier","src":"5610:8:17"}],"functionName":{"name":"log3","nativeSrc":"5556:4:17","nodeType":"YulIdentifier","src":"5556:4:17"},"nativeSrc":"5556:63:17","nodeType":"YulFunctionCall","src":"5556:63:17"},"nativeSrc":"5556:63:17","nodeType":"YulExpressionStatement","src":"5556:63:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"5567:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5088:11:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5327:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5355:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5443:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5469:8:17","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"5610:8:17","valueSize":1}],"id":6296,"nodeType":"InlineAssembly","src":"5044:589:17"}]}}]},"documentation":{"id":6289,"nodeType":"StructuredDocumentation","src":"4432:446:17","text":"@dev Initializes the owner directly without authorization guard.\n This function must be called upon initialization,\n regardless of whether the contract is upgradeable or not.\n This is to enable generalization to both regular and upgradeable contracts,\n and to save gas in case the initial owner is not the caller.\n For performance reasons, this function will not check if there\n is an existing owner."},"id":6302,"implemented":true,"kind":"function","modifiers":[],"name":"_initializeOwner","nameLocation":"4892:16:17","nodeType":"FunctionDefinition","parameters":{"id":6292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6291,"mutability":"mutable","name":"newOwner","nameLocation":"4917:8:17","nodeType":"VariableDeclaration","scope":6302,"src":"4909:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6290,"name":"address","nodeType":"ElementaryTypeName","src":"4909:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4908:18:17"},"returnParameters":{"id":6293,"nodeType":"ParameterList","parameters":[],"src":"4944:0:17"},"scope":6423,"src":"4883:1190:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6315,"nodeType":"Block","src":"6199:1035:17","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":6308,"name":"_guardInitializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"6213:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bool_$","typeString":"function () pure returns (bool)"}},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6213:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6313,"nodeType":"Block","src":"6752:476:17","statements":[{"AST":{"nativeSrc":"6822:396:17","nodeType":"YulBlock","src":"6822:396:17","statements":[{"nativeSrc":"6840:28:17","nodeType":"YulVariableDeclaration","src":"6840:28:17","value":{"name":"_OWNER_SLOT","nativeSrc":"6857:11:17","nodeType":"YulIdentifier","src":"6857:11:17"},"variables":[{"name":"ownerSlot","nativeSrc":"6844:9:17","nodeType":"YulTypedName","src":"6844:9:17","type":""}]},{"nativeSrc":"6929:38:17","nodeType":"YulAssignment","src":"6929:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"6945:2:17","nodeType":"YulLiteral","src":"6945:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6953:2:17","nodeType":"YulLiteral","src":"6953:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"6957:8:17","nodeType":"YulIdentifier","src":"6957:8:17"}],"functionName":{"name":"shl","nativeSrc":"6949:3:17","nodeType":"YulIdentifier","src":"6949:3:17"},"nativeSrc":"6949:17:17","nodeType":"YulFunctionCall","src":"6949:17:17"}],"functionName":{"name":"shr","nativeSrc":"6941:3:17","nodeType":"YulIdentifier","src":"6941:3:17"},"nativeSrc":"6941:26:17","nodeType":"YulFunctionCall","src":"6941:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"6929:8:17","nodeType":"YulIdentifier","src":"6929:8:17"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7047:1:17","nodeType":"YulLiteral","src":"7047:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"7050:1:17","nodeType":"YulLiteral","src":"7050:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"7053:38:17","nodeType":"YulIdentifier","src":"7053:38:17"},{"arguments":[{"name":"ownerSlot","nativeSrc":"7099:9:17","nodeType":"YulIdentifier","src":"7099:9:17"}],"functionName":{"name":"sload","nativeSrc":"7093:5:17","nodeType":"YulIdentifier","src":"7093:5:17"},"nativeSrc":"7093:16:17","nodeType":"YulFunctionCall","src":"7093:16:17"},{"name":"newOwner","nativeSrc":"7111:8:17","nodeType":"YulIdentifier","src":"7111:8:17"}],"functionName":{"name":"log3","nativeSrc":"7042:4:17","nodeType":"YulIdentifier","src":"7042:4:17"},"nativeSrc":"7042:78:17","nodeType":"YulFunctionCall","src":"7042:78:17"},"nativeSrc":"7042:78:17","nodeType":"YulExpressionStatement","src":"7042:78:17"},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"7184:9:17","nodeType":"YulIdentifier","src":"7184:9:17"},{"name":"newOwner","nativeSrc":"7195:8:17","nodeType":"YulIdentifier","src":"7195:8:17"}],"functionName":{"name":"sstore","nativeSrc":"7177:6:17","nodeType":"YulIdentifier","src":"7177:6:17"},"nativeSrc":"7177:27:17","nodeType":"YulFunctionCall","src":"7177:27:17"},"nativeSrc":"7177:27:17","nodeType":"YulExpressionStatement","src":"7177:27:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"7053:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"6857:11:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6929:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6957:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"7111:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"7195:8:17","valueSize":1}],"id":6312,"nodeType":"InlineAssembly","src":"6813:405:17"}]},"id":6314,"nodeType":"IfStatement","src":"6209:1019:17","trueBody":{"id":6311,"nodeType":"Block","src":"6238:508:17","statements":[{"AST":{"nativeSrc":"6308:428:17","nodeType":"YulBlock","src":"6308:428:17","statements":[{"nativeSrc":"6326:28:17","nodeType":"YulVariableDeclaration","src":"6326:28:17","value":{"name":"_OWNER_SLOT","nativeSrc":"6343:11:17","nodeType":"YulIdentifier","src":"6343:11:17"},"variables":[{"name":"ownerSlot","nativeSrc":"6330:9:17","nodeType":"YulTypedName","src":"6330:9:17","type":""}]},{"nativeSrc":"6415:38:17","nodeType":"YulAssignment","src":"6415:38:17","value":{"arguments":[{"kind":"number","nativeSrc":"6431:2:17","nodeType":"YulLiteral","src":"6431:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6439:2:17","nodeType":"YulLiteral","src":"6439:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"6443:8:17","nodeType":"YulIdentifier","src":"6443:8:17"}],"functionName":{"name":"shl","nativeSrc":"6435:3:17","nodeType":"YulIdentifier","src":"6435:3:17"},"nativeSrc":"6435:17:17","nodeType":"YulFunctionCall","src":"6435:17:17"}],"functionName":{"name":"shr","nativeSrc":"6427:3:17","nodeType":"YulIdentifier","src":"6427:3:17"},"nativeSrc":"6427:26:17","nodeType":"YulFunctionCall","src":"6427:26:17"},"variableNames":[{"name":"newOwner","nativeSrc":"6415:8:17","nodeType":"YulIdentifier","src":"6415:8:17"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6533:1:17","nodeType":"YulLiteral","src":"6533:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"6536:1:17","nodeType":"YulLiteral","src":"6536:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"6539:38:17","nodeType":"YulIdentifier","src":"6539:38:17"},{"arguments":[{"name":"ownerSlot","nativeSrc":"6585:9:17","nodeType":"YulIdentifier","src":"6585:9:17"}],"functionName":{"name":"sload","nativeSrc":"6579:5:17","nodeType":"YulIdentifier","src":"6579:5:17"},"nativeSrc":"6579:16:17","nodeType":"YulFunctionCall","src":"6579:16:17"},{"name":"newOwner","nativeSrc":"6597:8:17","nodeType":"YulIdentifier","src":"6597:8:17"}],"functionName":{"name":"log3","nativeSrc":"6528:4:17","nodeType":"YulIdentifier","src":"6528:4:17"},"nativeSrc":"6528:78:17","nodeType":"YulFunctionCall","src":"6528:78:17"},"nativeSrc":"6528:78:17","nodeType":"YulExpressionStatement","src":"6528:78:17"},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"6670:9:17","nodeType":"YulIdentifier","src":"6670:9:17"},{"arguments":[{"name":"newOwner","nativeSrc":"6684:8:17","nodeType":"YulIdentifier","src":"6684:8:17"},{"arguments":[{"kind":"number","nativeSrc":"6698:3:17","nodeType":"YulLiteral","src":"6698:3:17","type":"","value":"255"},{"arguments":[{"name":"newOwner","nativeSrc":"6710:8:17","nodeType":"YulIdentifier","src":"6710:8:17"}],"functionName":{"name":"iszero","nativeSrc":"6703:6:17","nodeType":"YulIdentifier","src":"6703:6:17"},"nativeSrc":"6703:16:17","nodeType":"YulFunctionCall","src":"6703:16:17"}],"functionName":{"name":"shl","nativeSrc":"6694:3:17","nodeType":"YulIdentifier","src":"6694:3:17"},"nativeSrc":"6694:26:17","nodeType":"YulFunctionCall","src":"6694:26:17"}],"functionName":{"name":"or","nativeSrc":"6681:2:17","nodeType":"YulIdentifier","src":"6681:2:17"},"nativeSrc":"6681:40:17","nodeType":"YulFunctionCall","src":"6681:40:17"}],"functionName":{"name":"sstore","nativeSrc":"6663:6:17","nodeType":"YulIdentifier","src":"6663:6:17"},"nativeSrc":"6663:59:17","nodeType":"YulFunctionCall","src":"6663:59:17"},"nativeSrc":"6663:59:17","nodeType":"YulExpressionStatement","src":"6663:59:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6265,"isOffset":false,"isSlot":false,"src":"6539:38:17","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"6343:11:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6415:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6443:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6597:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6684:8:17","valueSize":1},{"declaration":6305,"isOffset":false,"isSlot":false,"src":"6710:8:17","valueSize":1}],"id":6310,"nodeType":"InlineAssembly","src":"6299:437:17"}]}}]},"documentation":{"id":6303,"nodeType":"StructuredDocumentation","src":"6079:61:17","text":"@dev Sets the owner directly without authorization guard."},"id":6316,"implemented":true,"kind":"function","modifiers":[],"name":"_setOwner","nameLocation":"6154:9:17","nodeType":"FunctionDefinition","parameters":{"id":6306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6305,"mutability":"mutable","name":"newOwner","nameLocation":"6172:8:17","nodeType":"VariableDeclaration","scope":6316,"src":"6164:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6304,"name":"address","nodeType":"ElementaryTypeName","src":"6164:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6163:18:17"},"returnParameters":{"id":6307,"nodeType":"ParameterList","parameters":[],"src":"6199:0:17"},"scope":6423,"src":"6145:1089:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6321,"nodeType":"Block","src":"7337:310:17","statements":[{"AST":{"nativeSrc":"7399:242:17","nodeType":"YulBlock","src":"7399:242:17","statements":[{"body":{"nativeSrc":"7519:112:17","nodeType":"YulBlock","src":"7519:112:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7544:4:17","nodeType":"YulLiteral","src":"7544:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7550:10:17","nodeType":"YulLiteral","src":"7550:10:17","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"7537:6:17","nodeType":"YulIdentifier","src":"7537:6:17"},"nativeSrc":"7537:24:17","nodeType":"YulFunctionCall","src":"7537:24:17"},"nativeSrc":"7537:24:17","nodeType":"YulExpressionStatement","src":"7537:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7606:4:17","nodeType":"YulLiteral","src":"7606:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7612:4:17","nodeType":"YulLiteral","src":"7612:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7599:6:17","nodeType":"YulIdentifier","src":"7599:6:17"},"nativeSrc":"7599:18:17","nodeType":"YulFunctionCall","src":"7599:18:17"},"nativeSrc":"7599:18:17","nodeType":"YulExpressionStatement","src":"7599:18:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7488:6:17","nodeType":"YulIdentifier","src":"7488:6:17"},"nativeSrc":"7488:8:17","nodeType":"YulFunctionCall","src":"7488:8:17"},{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"7504:11:17","nodeType":"YulIdentifier","src":"7504:11:17"}],"functionName":{"name":"sload","nativeSrc":"7498:5:17","nodeType":"YulIdentifier","src":"7498:5:17"},"nativeSrc":"7498:18:17","nodeType":"YulFunctionCall","src":"7498:18:17"}],"functionName":{"name":"eq","nativeSrc":"7485:2:17","nodeType":"YulIdentifier","src":"7485:2:17"},"nativeSrc":"7485:32:17","nodeType":"YulFunctionCall","src":"7485:32:17"}],"functionName":{"name":"iszero","nativeSrc":"7478:6:17","nodeType":"YulIdentifier","src":"7478:6:17"},"nativeSrc":"7478:40:17","nodeType":"YulFunctionCall","src":"7478:40:17"},"nativeSrc":"7475:156:17","nodeType":"YulIf","src":"7475:156:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6277,"isOffset":false,"isSlot":false,"src":"7504:11:17","valueSize":1}],"id":6320,"nodeType":"InlineAssembly","src":"7390:251:17"}]},"documentation":{"id":6317,"nodeType":"StructuredDocumentation","src":"7240:47:17","text":"@dev Throws if the sender is not the owner."},"id":6322,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"7301:11:17","nodeType":"FunctionDefinition","parameters":{"id":6318,"nodeType":"ParameterList","parameters":[],"src":"7312:2:17"},"returnParameters":{"id":6319,"nodeType":"ParameterList","parameters":[],"src":"7337:0:17"},"scope":6423,"src":"7292:355:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6332,"nodeType":"Block","src":"7955:33:17","statements":[{"expression":{"commonType":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"},"id":6330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":6328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7972:2:17","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"33363030","id":6329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7977:4:17","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"7972:9:17","typeDescriptions":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"}},"functionReturnParameters":6327,"id":6331,"nodeType":"Return","src":"7965:16:17"}]},"documentation":{"id":6323,"nodeType":"StructuredDocumentation","src":"7653:220:17","text":"@dev Returns how long a two-step ownership handover is valid for in seconds.\n Override to return a different value if needed.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6333,"implemented":true,"kind":"function","modifiers":[],"name":"_ownershipHandoverValidFor","nameLocation":"7887:26:17","nodeType":"FunctionDefinition","parameters":{"id":6324,"nodeType":"ParameterList","parameters":[],"src":"7913:2:17"},"returnParameters":{"id":6327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6333,"src":"7947:6:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6325,"name":"uint64","nodeType":"ElementaryTypeName","src":"7947:6:17","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7946:8:17"},"scope":6423,"src":"7878:110:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6346,"nodeType":"Block","src":"8426:271:17","statements":[{"AST":{"nativeSrc":"8488:174:17","nodeType":"YulBlock","src":"8488:174:17","statements":[{"body":{"nativeSrc":"8531:121:17","nodeType":"YulBlock","src":"8531:121:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8556:4:17","nodeType":"YulLiteral","src":"8556:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8562:10:17","nodeType":"YulLiteral","src":"8562:10:17","type":"","value":"0x7448fbae"}],"functionName":{"name":"mstore","nativeSrc":"8549:6:17","nodeType":"YulIdentifier","src":"8549:6:17"},"nativeSrc":"8549:24:17","nodeType":"YulFunctionCall","src":"8549:24:17"},"nativeSrc":"8549:24:17","nodeType":"YulExpressionStatement","src":"8549:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8627:4:17","nodeType":"YulLiteral","src":"8627:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8633:4:17","nodeType":"YulLiteral","src":"8633:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8620:6:17","nodeType":"YulIdentifier","src":"8620:6:17"},"nativeSrc":"8620:18:17","nodeType":"YulFunctionCall","src":"8620:18:17"},"nativeSrc":"8620:18:17","nodeType":"YulExpressionStatement","src":"8620:18:17"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8516:2:17","nodeType":"YulLiteral","src":"8516:2:17","type":"","value":"96"},{"name":"newOwner","nativeSrc":"8520:8:17","nodeType":"YulIdentifier","src":"8520:8:17"}],"functionName":{"name":"shl","nativeSrc":"8512:3:17","nodeType":"YulIdentifier","src":"8512:3:17"},"nativeSrc":"8512:17:17","nodeType":"YulFunctionCall","src":"8512:17:17"}],"functionName":{"name":"iszero","nativeSrc":"8505:6:17","nodeType":"YulIdentifier","src":"8505:6:17"},"nativeSrc":"8505:25:17","nodeType":"YulFunctionCall","src":"8505:25:17"},"nativeSrc":"8502:150:17","nodeType":"YulIf","src":"8502:150:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6336,"isOffset":false,"isSlot":false,"src":"8520:8:17","valueSize":1}],"id":6341,"nodeType":"InlineAssembly","src":"8479:183:17"},{"expression":{"arguments":[{"id":6343,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"8681:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6342,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"8671:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6345,"nodeType":"ExpressionStatement","src":"8671:19:17"}]},"documentation":{"id":6334,"nodeType":"StructuredDocumentation","src":"8277:66:17","text":"@dev Allows the owner to transfer the ownership to `newOwner`."},"functionSelector":"f2fde38b","id":6347,"implemented":true,"kind":"function","modifiers":[{"id":6339,"kind":"modifierInvocation","modifierName":{"id":6338,"name":"onlyOwner","nameLocations":["8416:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"8416:9:17"},"nodeType":"ModifierInvocation","src":"8416:9:17"}],"name":"transferOwnership","nameLocation":"8357:17:17","nodeType":"FunctionDefinition","parameters":{"id":6337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6336,"mutability":"mutable","name":"newOwner","nameLocation":"8383:8:17","nodeType":"VariableDeclaration","scope":6347,"src":"8375:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6335,"name":"address","nodeType":"ElementaryTypeName","src":"8375:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8374:18:17"},"returnParameters":{"id":6340,"nodeType":"ParameterList","parameters":[],"src":"8426:0:17"},"scope":6423,"src":"8348:349:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6360,"nodeType":"Block","src":"8824:38:17","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8852:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8844:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6354,"name":"address","nodeType":"ElementaryTypeName","src":"8844:7:17","typeDescriptions":{}}},"id":6357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8844:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6353,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"8834:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8834:21:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6359,"nodeType":"ExpressionStatement","src":"8834:21:17"}]},"documentation":{"id":6348,"nodeType":"StructuredDocumentation","src":"8703:54:17","text":"@dev Allows the owner to renounce their ownership."},"functionSelector":"715018a6","id":6361,"implemented":true,"kind":"function","modifiers":[{"id":6351,"kind":"modifierInvocation","modifierName":{"id":6350,"name":"onlyOwner","nameLocations":["8814:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"8814:9:17"},"nodeType":"ModifierInvocation","src":"8814:9:17"}],"name":"renounceOwnership","nameLocation":"8771:17:17","nodeType":"FunctionDefinition","parameters":{"id":6349,"nodeType":"ParameterList","parameters":[],"src":"8788:2:17"},"returnParameters":{"id":6352,"nodeType":"ParameterList","parameters":[],"src":"8824:0:17"},"scope":6423,"src":"8762:100:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6375,"nodeType":"Block","src":"9080:558:17","statements":[{"id":6374,"nodeType":"UncheckedBlock","src":"9090:542:17","statements":[{"assignments":[6366],"declarations":[{"constant":false,"id":6366,"mutability":"mutable","name":"expires","nameLocation":"9122:7:17","nodeType":"VariableDeclaration","scope":6374,"src":"9114:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6365,"name":"uint256","nodeType":"ElementaryTypeName","src":"9114:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6372,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6367,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9132:5:17","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9138:9:17","memberName":"timestamp","nodeType":"MemberAccess","src":"9132:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6369,"name":"_ownershipHandoverValidFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"9150:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":6370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9132:46:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9114:64:17"},{"AST":{"nativeSrc":"9248:374:17","nodeType":"YulBlock","src":"9248:374:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9340:4:17","nodeType":"YulLiteral","src":"9340:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"9346:19:17","nodeType":"YulIdentifier","src":"9346:19:17"}],"functionName":{"name":"mstore","nativeSrc":"9333:6:17","nodeType":"YulIdentifier","src":"9333:6:17"},"nativeSrc":"9333:33:17","nodeType":"YulFunctionCall","src":"9333:33:17"},"nativeSrc":"9333:33:17","nodeType":"YulExpressionStatement","src":"9333:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9390:4:17","nodeType":"YulLiteral","src":"9390:4:17","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9396:6:17","nodeType":"YulIdentifier","src":"9396:6:17"},"nativeSrc":"9396:8:17","nodeType":"YulFunctionCall","src":"9396:8:17"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:17","nodeType":"YulIdentifier","src":"9383:6:17"},"nativeSrc":"9383:22:17","nodeType":"YulFunctionCall","src":"9383:22:17"},"nativeSrc":"9383:22:17","nodeType":"YulExpressionStatement","src":"9383:22:17"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9439:4:17","nodeType":"YulLiteral","src":"9439:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9445:4:17","nodeType":"YulLiteral","src":"9445:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9429:9:17","nodeType":"YulIdentifier","src":"9429:9:17"},"nativeSrc":"9429:21:17","nodeType":"YulFunctionCall","src":"9429:21:17"},{"name":"expires","nativeSrc":"9452:7:17","nodeType":"YulIdentifier","src":"9452:7:17"}],"functionName":{"name":"sstore","nativeSrc":"9422:6:17","nodeType":"YulIdentifier","src":"9422:6:17"},"nativeSrc":"9422:38:17","nodeType":"YulFunctionCall","src":"9422:38:17"},"nativeSrc":"9422:38:17","nodeType":"YulExpressionStatement","src":"9422:38:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9546:1:17","nodeType":"YulLiteral","src":"9546:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"9549:1:17","nodeType":"YulLiteral","src":"9549:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE","nativeSrc":"9552:45:17","nodeType":"YulIdentifier","src":"9552:45:17"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9599:6:17","nodeType":"YulIdentifier","src":"9599:6:17"},"nativeSrc":"9599:8:17","nodeType":"YulFunctionCall","src":"9599:8:17"}],"functionName":{"name":"log2","nativeSrc":"9541:4:17","nodeType":"YulIdentifier","src":"9541:4:17"},"nativeSrc":"9541:67:17","nodeType":"YulFunctionCall","src":"9541:67:17"},"nativeSrc":"9541:67:17","nodeType":"YulExpressionStatement","src":"9541:67:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"9346:19:17","valueSize":1},{"declaration":6269,"isOffset":false,"isSlot":false,"src":"9552:45:17","valueSize":1},{"declaration":6366,"isOffset":false,"isSlot":false,"src":"9452:7:17","valueSize":1}],"id":6373,"nodeType":"InlineAssembly","src":"9239:383:17"}]}]},"documentation":{"id":6362,"nodeType":"StructuredDocumentation","src":"8868:148:17","text":"@dev Request a two-step ownership handover to the caller.\n The request will automatically expire in 48 hours (172800 seconds) by default."},"functionSelector":"25692962","id":6376,"implemented":true,"kind":"function","modifiers":[],"name":"requestOwnershipHandover","nameLocation":"9030:24:17","nodeType":"FunctionDefinition","parameters":{"id":6363,"nodeType":"ParameterList","parameters":[],"src":"9054:2:17"},"returnParameters":{"id":6364,"nodeType":"ParameterList","parameters":[],"src":"9080:0:17"},"scope":6423,"src":"9021:617:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6381,"nodeType":"Block","src":"9778:398:17","statements":[{"AST":{"nativeSrc":"9840:330:17","nodeType":"YulBlock","src":"9840:330:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9916:4:17","nodeType":"YulLiteral","src":"9916:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"9922:19:17","nodeType":"YulIdentifier","src":"9922:19:17"}],"functionName":{"name":"mstore","nativeSrc":"9909:6:17","nodeType":"YulIdentifier","src":"9909:6:17"},"nativeSrc":"9909:33:17","nodeType":"YulFunctionCall","src":"9909:33:17"},"nativeSrc":"9909:33:17","nodeType":"YulExpressionStatement","src":"9909:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9962:4:17","nodeType":"YulLiteral","src":"9962:4:17","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9968:6:17","nodeType":"YulIdentifier","src":"9968:6:17"},"nativeSrc":"9968:8:17","nodeType":"YulFunctionCall","src":"9968:8:17"}],"functionName":{"name":"mstore","nativeSrc":"9955:6:17","nodeType":"YulIdentifier","src":"9955:6:17"},"nativeSrc":"9955:22:17","nodeType":"YulFunctionCall","src":"9955:22:17"},"nativeSrc":"9955:22:17","nodeType":"YulExpressionStatement","src":"9955:22:17"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10007:4:17","nodeType":"YulLiteral","src":"10007:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10013:4:17","nodeType":"YulLiteral","src":"10013:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9997:9:17","nodeType":"YulIdentifier","src":"9997:9:17"},"nativeSrc":"9997:21:17","nodeType":"YulFunctionCall","src":"9997:21:17"},{"kind":"number","nativeSrc":"10020:1:17","nodeType":"YulLiteral","src":"10020:1:17","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"9990:6:17","nodeType":"YulIdentifier","src":"9990:6:17"},"nativeSrc":"9990:32:17","nodeType":"YulFunctionCall","src":"9990:32:17"},"nativeSrc":"9990:32:17","nodeType":"YulExpressionStatement","src":"9990:32:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10099:1:17","nodeType":"YulLiteral","src":"10099:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"10102:1:17","nodeType":"YulLiteral","src":"10102:1:17","type":"","value":"0"},{"name":"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE","nativeSrc":"10105:44:17","nodeType":"YulIdentifier","src":"10105:44:17"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10151:6:17","nodeType":"YulIdentifier","src":"10151:6:17"},"nativeSrc":"10151:8:17","nodeType":"YulFunctionCall","src":"10151:8:17"}],"functionName":{"name":"log2","nativeSrc":"10094:4:17","nodeType":"YulIdentifier","src":"10094:4:17"},"nativeSrc":"10094:66:17","nodeType":"YulFunctionCall","src":"10094:66:17"},"nativeSrc":"10094:66:17","nodeType":"YulExpressionStatement","src":"10094:66:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"9922:19:17","valueSize":1},{"declaration":6273,"isOffset":false,"isSlot":false,"src":"10105:44:17","valueSize":1}],"id":6380,"nodeType":"InlineAssembly","src":"9831:339:17"}]},"documentation":{"id":6377,"nodeType":"StructuredDocumentation","src":"9644:71:17","text":"@dev Cancels the two-step ownership handover to the caller, if any."},"functionSelector":"54d1f13d","id":6382,"implemented":true,"kind":"function","modifiers":[],"name":"cancelOwnershipHandover","nameLocation":"9729:23:17","nodeType":"FunctionDefinition","parameters":{"id":6378,"nodeType":"ParameterList","parameters":[],"src":"9752:2:17"},"returnParameters":{"id":6379,"nodeType":"ParameterList","parameters":[],"src":"9778:0:17"},"scope":6423,"src":"9720:456:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6395,"nodeType":"Block","src":"10453:618:17","statements":[{"AST":{"nativeSrc":"10515:517:17","nodeType":"YulBlock","src":"10515:517:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10591:4:17","nodeType":"YulLiteral","src":"10591:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"10597:19:17","nodeType":"YulIdentifier","src":"10597:19:17"}],"functionName":{"name":"mstore","nativeSrc":"10584:6:17","nodeType":"YulIdentifier","src":"10584:6:17"},"nativeSrc":"10584:33:17","nodeType":"YulFunctionCall","src":"10584:33:17"},"nativeSrc":"10584:33:17","nodeType":"YulExpressionStatement","src":"10584:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10637:4:17","nodeType":"YulLiteral","src":"10637:4:17","type":"","value":"0x00"},{"name":"pendingOwner","nativeSrc":"10643:12:17","nodeType":"YulIdentifier","src":"10643:12:17"}],"functionName":{"name":"mstore","nativeSrc":"10630:6:17","nodeType":"YulIdentifier","src":"10630:6:17"},"nativeSrc":"10630:26:17","nodeType":"YulFunctionCall","src":"10630:26:17"},"nativeSrc":"10630:26:17","nodeType":"YulExpressionStatement","src":"10630:26:17"},{"nativeSrc":"10669:41:17","nodeType":"YulVariableDeclaration","src":"10669:41:17","value":{"arguments":[{"kind":"number","nativeSrc":"10699:4:17","nodeType":"YulLiteral","src":"10699:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10705:4:17","nodeType":"YulLiteral","src":"10705:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10689:9:17","nodeType":"YulIdentifier","src":"10689:9:17"},"nativeSrc":"10689:21:17","nodeType":"YulFunctionCall","src":"10689:21:17"},"variables":[{"name":"handoverSlot","nativeSrc":"10673:12:17","nodeType":"YulTypedName","src":"10673:12:17","type":""}]},{"body":{"nativeSrc":"10826:117:17","nodeType":"YulBlock","src":"10826:117:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10851:4:17","nodeType":"YulLiteral","src":"10851:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10857:10:17","nodeType":"YulLiteral","src":"10857:10:17","type":"","value":"0x6f5e8818"}],"functionName":{"name":"mstore","nativeSrc":"10844:6:17","nodeType":"YulIdentifier","src":"10844:6:17"},"nativeSrc":"10844:24:17","nodeType":"YulFunctionCall","src":"10844:24:17"},"nativeSrc":"10844:24:17","nodeType":"YulExpressionStatement","src":"10844:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10918:4:17","nodeType":"YulLiteral","src":"10918:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10924:4:17","nodeType":"YulLiteral","src":"10924:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10911:6:17","nodeType":"YulIdentifier","src":"10911:6:17"},"nativeSrc":"10911:18:17","nodeType":"YulFunctionCall","src":"10911:18:17"},"nativeSrc":"10911:18:17","nodeType":"YulExpressionStatement","src":"10911:18:17"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"timestamp","nativeSrc":"10792:9:17","nodeType":"YulIdentifier","src":"10792:9:17"},"nativeSrc":"10792:11:17","nodeType":"YulFunctionCall","src":"10792:11:17"},{"arguments":[{"name":"handoverSlot","nativeSrc":"10811:12:17","nodeType":"YulIdentifier","src":"10811:12:17"}],"functionName":{"name":"sload","nativeSrc":"10805:5:17","nodeType":"YulIdentifier","src":"10805:5:17"},"nativeSrc":"10805:19:17","nodeType":"YulFunctionCall","src":"10805:19:17"}],"functionName":{"name":"gt","nativeSrc":"10789:2:17","nodeType":"YulIdentifier","src":"10789:2:17"},"nativeSrc":"10789:36:17","nodeType":"YulFunctionCall","src":"10789:36:17"},"nativeSrc":"10786:157:17","nodeType":"YulIf","src":"10786:157:17"},{"expression":{"arguments":[{"name":"handoverSlot","nativeSrc":"11006:12:17","nodeType":"YulIdentifier","src":"11006:12:17"},{"kind":"number","nativeSrc":"11020:1:17","nodeType":"YulLiteral","src":"11020:1:17","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"10999:6:17","nodeType":"YulIdentifier","src":"10999:6:17"},"nativeSrc":"10999:23:17","nodeType":"YulFunctionCall","src":"10999:23:17"},"nativeSrc":"10999:23:17","nodeType":"YulExpressionStatement","src":"10999:23:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"10597:19:17","valueSize":1},{"declaration":6385,"isOffset":false,"isSlot":false,"src":"10643:12:17","valueSize":1}],"id":6390,"nodeType":"InlineAssembly","src":"10506:526:17"},{"expression":{"arguments":[{"id":6392,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6385,"src":"11051:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6391,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"11041:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11041:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6394,"nodeType":"ExpressionStatement","src":"11041:23:17"}]},"documentation":{"id":6383,"nodeType":"StructuredDocumentation","src":"10182:176:17","text":"@dev Allows the owner to complete the two-step ownership handover to `pendingOwner`.\n Reverts if there is no existing ownership handover requested by `pendingOwner`."},"functionSelector":"f04e283e","id":6396,"implemented":true,"kind":"function","modifiers":[{"id":6388,"kind":"modifierInvocation","modifierName":{"id":6387,"name":"onlyOwner","nameLocations":["10443:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"10443:9:17"},"nodeType":"ModifierInvocation","src":"10443:9:17"}],"name":"completeOwnershipHandover","nameLocation":"10372:25:17","nodeType":"FunctionDefinition","parameters":{"id":6386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6385,"mutability":"mutable","name":"pendingOwner","nameLocation":"10406:12:17","nodeType":"VariableDeclaration","scope":6396,"src":"10398:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6384,"name":"address","nodeType":"ElementaryTypeName","src":"10398:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10397:22:17"},"returnParameters":{"id":6389,"nodeType":"ParameterList","parameters":[],"src":"10453:0:17"},"scope":6423,"src":"10363:708:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6403,"nodeType":"Block","src":"11470:120:17","statements":[{"AST":{"nativeSrc":"11532:52:17","nodeType":"YulBlock","src":"11532:52:17","statements":[{"nativeSrc":"11546:28:17","nodeType":"YulAssignment","src":"11546:28:17","value":{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"11562:11:17","nodeType":"YulIdentifier","src":"11562:11:17"}],"functionName":{"name":"sload","nativeSrc":"11556:5:17","nodeType":"YulIdentifier","src":"11556:5:17"},"nativeSrc":"11556:18:17","nodeType":"YulFunctionCall","src":"11556:18:17"},"variableNames":[{"name":"result","nativeSrc":"11546:6:17","nodeType":"YulIdentifier","src":"11546:6:17"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6277,"isOffset":false,"isSlot":false,"src":"11562:11:17","valueSize":1},{"declaration":6400,"isOffset":false,"isSlot":false,"src":"11546:6:17","valueSize":1}],"id":6402,"nodeType":"InlineAssembly","src":"11523:61:17"}]},"documentation":{"id":6397,"nodeType":"StructuredDocumentation","src":"11360:43:17","text":"@dev Returns the owner of the contract."},"functionSelector":"8da5cb5b","id":6404,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"11417:5:17","nodeType":"FunctionDefinition","parameters":{"id":6398,"nodeType":"ParameterList","parameters":[],"src":"11422:2:17"},"returnParameters":{"id":6401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6400,"mutability":"mutable","name":"result","nameLocation":"11462:6:17","nodeType":"VariableDeclaration","scope":6404,"src":"11454:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6399,"name":"address","nodeType":"ElementaryTypeName","src":"11454:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11453:16:17"},"scope":6423,"src":"11408:182:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6413,"nodeType":"Block","src":"11832:296:17","statements":[{"AST":{"nativeSrc":"11894:228:17","nodeType":"YulBlock","src":"11894:228:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11957:4:17","nodeType":"YulLiteral","src":"11957:4:17","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"11963:19:17","nodeType":"YulIdentifier","src":"11963:19:17"}],"functionName":{"name":"mstore","nativeSrc":"11950:6:17","nodeType":"YulIdentifier","src":"11950:6:17"},"nativeSrc":"11950:33:17","nodeType":"YulFunctionCall","src":"11950:33:17"},"nativeSrc":"11950:33:17","nodeType":"YulExpressionStatement","src":"11950:33:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12003:4:17","nodeType":"YulLiteral","src":"12003:4:17","type":"","value":"0x00"},{"name":"pendingOwner","nativeSrc":"12009:12:17","nodeType":"YulIdentifier","src":"12009:12:17"}],"functionName":{"name":"mstore","nativeSrc":"11996:6:17","nodeType":"YulIdentifier","src":"11996:6:17"},"nativeSrc":"11996:26:17","nodeType":"YulFunctionCall","src":"11996:26:17"},"nativeSrc":"11996:26:17","nodeType":"YulExpressionStatement","src":"11996:26:17"},{"nativeSrc":"12074:38:17","nodeType":"YulAssignment","src":"12074:38:17","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12100:4:17","nodeType":"YulLiteral","src":"12100:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12106:4:17","nodeType":"YulLiteral","src":"12106:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"12090:9:17","nodeType":"YulIdentifier","src":"12090:9:17"},"nativeSrc":"12090:21:17","nodeType":"YulFunctionCall","src":"12090:21:17"}],"functionName":{"name":"sload","nativeSrc":"12084:5:17","nodeType":"YulIdentifier","src":"12084:5:17"},"nativeSrc":"12084:28:17","nodeType":"YulFunctionCall","src":"12084:28:17"},"variableNames":[{"name":"result","nativeSrc":"12074:6:17","nodeType":"YulIdentifier","src":"12074:6:17"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6281,"isOffset":false,"isSlot":false,"src":"11963:19:17","valueSize":1},{"declaration":6407,"isOffset":false,"isSlot":false,"src":"12009:12:17","valueSize":1},{"declaration":6410,"isOffset":false,"isSlot":false,"src":"12074:6:17","valueSize":1}],"id":6412,"nodeType":"InlineAssembly","src":"11885:237:17"}]},"documentation":{"id":6405,"nodeType":"StructuredDocumentation","src":"11596:92:17","text":"@dev Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"functionSelector":"fee81cf4","id":6414,"implemented":true,"kind":"function","modifiers":[],"name":"ownershipHandoverExpiresAt","nameLocation":"11702:26:17","nodeType":"FunctionDefinition","parameters":{"id":6408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6407,"mutability":"mutable","name":"pendingOwner","nameLocation":"11737:12:17","nodeType":"VariableDeclaration","scope":6414,"src":"11729:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6406,"name":"address","nodeType":"ElementaryTypeName","src":"11729:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11728:22:17"},"returnParameters":{"id":6411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6410,"mutability":"mutable","name":"result","nameLocation":"11820:6:17","nodeType":"VariableDeclaration","scope":6414,"src":"11812:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6409,"name":"uint256","nodeType":"ElementaryTypeName","src":"11812:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11811:16:17"},"scope":6423,"src":"11693:435:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6421,"nodeType":"Block","src":"12507:41:17","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6417,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6322,"src":"12517:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":6418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6419,"nodeType":"ExpressionStatement","src":"12517:13:17"},{"id":6420,"nodeType":"PlaceholderStatement","src":"12540:1:17"}]},"documentation":{"id":6415,"nodeType":"StructuredDocumentation","src":"12417:56:17","text":"@dev Marks a function as only callable by the owner."},"id":6422,"name":"onlyOwner","nameLocation":"12487:9:17","nodeType":"ModifierDefinition","parameters":{"id":6416,"nodeType":"ParameterList","parameters":[],"src":"12496:2:17"},"src":"12478:70:17","virtual":true,"visibility":"internal"}],"scope":6424,"src":"571:11979:17","usedErrors":[6235,6238,6241,6244],"usedEvents":[6251,6256,6261]}],"src":"32:12519:17"},"id":17},"@solady/auth/OwnableRoles.sol":{"ast":{"absolutePath":"@solady/auth/OwnableRoles.sol","exportedSymbols":{"Ownable":[6423],"OwnableRoles":[7950]},"id":7951,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6425,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:18"},{"absolutePath":"@solady/auth/Ownable.sol","file":"./Ownable.sol","id":6427,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7951,"sourceUnit":6424,"src":"57:38:18","symbolAliases":[{"foreign":{"id":6426,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"65:7:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6429,"name":"Ownable","nameLocations":["501:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"501:7:18"},"id":6430,"nodeType":"InheritanceSpecifier","src":"501:7:18"}],"canonicalName":"OwnableRoles","contractDependencies":[],"contractKind":"contract","documentation":{"id":6428,"nodeType":"StructuredDocumentation","src":"97:370:18","text":"@notice Simple single owner and multiroles authorization mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n @dev While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173)\n for compatibility, the nomenclature for the 2-step ownership handover and roles\n may be unique to this codebase."},"fullyImplemented":true,"id":7950,"linearizedBaseContracts":[7950,6423],"name":"OwnableRoles","nameLocation":"485:12:18","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6431,"nodeType":"StructuredDocumentation","src":"798:114:18","text":"@dev The `user`'s roles is updated to `roles`.\n Each bit of `roles` represents whether the role is set."},"eventSelector":"715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26","id":6437,"name":"RolesUpdated","nameLocation":"923:12:18","nodeType":"EventDefinition","parameters":{"id":6436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6433,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"952:4:18","nodeType":"VariableDeclaration","scope":6437,"src":"936:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6432,"name":"address","nodeType":"ElementaryTypeName","src":"936:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6435,"indexed":true,"mutability":"mutable","name":"roles","nameLocation":"974:5:18","nodeType":"VariableDeclaration","scope":6437,"src":"958:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6434,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"935:45:18"},"src":"917:64:18"},{"constant":true,"documentation":{"id":6438,"nodeType":"StructuredDocumentation","src":"987:61:18","text":"@dev `keccak256(bytes(\"RolesUpdated(address,uint256)\"))`."},"id":6441,"mutability":"constant","name":"_ROLES_UPDATED_EVENT_SIGNATURE","nameLocation":"1078:30:18","nodeType":"VariableDeclaration","scope":7950,"src":"1053:132:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6439,"name":"uint256","nodeType":"ElementaryTypeName","src":"1053:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837313561643563653631666339353935633762343135323839643539636632303366323361393466613036663034616637653438396130613736653166653236","id":6440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:66:18","typeDescriptions":{"typeIdentifier":"t_rational_51271843761779235751881398726824997251846621987341107132597768407806770282022_by_1","typeString":"int_const 5127...(69 digits omitted)...2022"},"value":"0x715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26"},"visibility":"private"},{"constant":true,"documentation":{"id":6442,"nodeType":"StructuredDocumentation","src":"1475:420:18","text":"@dev The role slot of `user` is given by:\n ```\n mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED))\n let roleSlot := keccak256(0x00, 0x20)\n ```\n This automatically ignores the upper bits of the `user` in case\n they are not clean, as well as keep the `keccak256` under 32-bytes.\n Note: This is equivalent to `uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))`."},"id":6445,"mutability":"constant","name":"_ROLE_SLOT_SEED","nameLocation":"1925:15:18","nodeType":"VariableDeclaration","scope":7950,"src":"1900:53:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1900:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783862373863366438","id":6444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1943:10:18","typeDescriptions":{"typeIdentifier":"t_rational_2339948248_by_1","typeString":"int_const 2339948248"},"value":"0x8b78c6d8"},"visibility":"private"},{"body":{"id":6454,"nodeType":"Block","src":"2379:367:18","statements":[{"AST":{"nativeSrc":"2441:299:18","nodeType":"YulBlock","src":"2441:299:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2462:4:18","nodeType":"YulLiteral","src":"2462:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"2468:15:18","nodeType":"YulIdentifier","src":"2468:15:18"}],"functionName":{"name":"mstore","nativeSrc":"2455:6:18","nodeType":"YulIdentifier","src":"2455:6:18"},"nativeSrc":"2455:29:18","nodeType":"YulFunctionCall","src":"2455:29:18"},"nativeSrc":"2455:29:18","nodeType":"YulExpressionStatement","src":"2455:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2504:4:18","nodeType":"YulLiteral","src":"2504:4:18","type":"","value":"0x00"},{"name":"user","nativeSrc":"2510:4:18","nodeType":"YulIdentifier","src":"2510:4:18"}],"functionName":{"name":"mstore","nativeSrc":"2497:6:18","nodeType":"YulIdentifier","src":"2497:6:18"},"nativeSrc":"2497:18:18","nodeType":"YulFunctionCall","src":"2497:18:18"},"nativeSrc":"2497:18:18","nodeType":"YulExpressionStatement","src":"2497:18:18"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2581:4:18","nodeType":"YulLiteral","src":"2581:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"2587:4:18","nodeType":"YulLiteral","src":"2587:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2571:9:18","nodeType":"YulIdentifier","src":"2571:9:18"},"nativeSrc":"2571:21:18","nodeType":"YulFunctionCall","src":"2571:21:18"},{"name":"roles","nativeSrc":"2594:5:18","nodeType":"YulIdentifier","src":"2594:5:18"}],"functionName":{"name":"sstore","nativeSrc":"2564:6:18","nodeType":"YulIdentifier","src":"2564:6:18"},"nativeSrc":"2564:36:18","nodeType":"YulFunctionCall","src":"2564:36:18"},"nativeSrc":"2564:36:18","nodeType":"YulExpressionStatement","src":"2564:36:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2664:1:18","nodeType":"YulLiteral","src":"2664:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"2667:1:18","nodeType":"YulLiteral","src":"2667:1:18","type":"","value":"0"},{"name":"_ROLES_UPDATED_EVENT_SIGNATURE","nativeSrc":"2670:30:18","nodeType":"YulIdentifier","src":"2670:30:18"},{"arguments":[{"kind":"number","nativeSrc":"2706:2:18","nodeType":"YulLiteral","src":"2706:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"2716:4:18","nodeType":"YulLiteral","src":"2716:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"2710:5:18","nodeType":"YulIdentifier","src":"2710:5:18"},"nativeSrc":"2710:11:18","nodeType":"YulFunctionCall","src":"2710:11:18"}],"functionName":{"name":"shr","nativeSrc":"2702:3:18","nodeType":"YulIdentifier","src":"2702:3:18"},"nativeSrc":"2702:20:18","nodeType":"YulFunctionCall","src":"2702:20:18"},{"name":"roles","nativeSrc":"2724:5:18","nodeType":"YulIdentifier","src":"2724:5:18"}],"functionName":{"name":"log3","nativeSrc":"2659:4:18","nodeType":"YulIdentifier","src":"2659:4:18"},"nativeSrc":"2659:71:18","nodeType":"YulFunctionCall","src":"2659:71:18"},"nativeSrc":"2659:71:18","nodeType":"YulExpressionStatement","src":"2659:71:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6441,"isOffset":false,"isSlot":false,"src":"2670:30:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"2468:15:18","valueSize":1},{"declaration":6450,"isOffset":false,"isSlot":false,"src":"2594:5:18","valueSize":1},{"declaration":6450,"isOffset":false,"isSlot":false,"src":"2724:5:18","valueSize":1},{"declaration":6448,"isOffset":false,"isSlot":false,"src":"2510:4:18","valueSize":1}],"id":6453,"nodeType":"InlineAssembly","src":"2432:308:18"}]},"documentation":{"id":6446,"nodeType":"StructuredDocumentation","src":"2243:66:18","text":"@dev Overwrite the roles directly without authorization guard."},"id":6455,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoles","nameLocation":"2323:9:18","nodeType":"FunctionDefinition","parameters":{"id":6451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6448,"mutability":"mutable","name":"user","nameLocation":"2341:4:18","nodeType":"VariableDeclaration","scope":6455,"src":"2333:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6447,"name":"address","nodeType":"ElementaryTypeName","src":"2333:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6450,"mutability":"mutable","name":"roles","nameLocation":"2355:5:18","nodeType":"VariableDeclaration","scope":6455,"src":"2347:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6449,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2332:29:18"},"returnParameters":{"id":6452,"nodeType":"ParameterList","parameters":[],"src":"2379:0:18"},"scope":7950,"src":"2314:432:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6466,"nodeType":"Block","src":"3029:890:18","statements":[{"AST":{"nativeSrc":"3091:822:18","nodeType":"YulBlock","src":"3091:822:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3112:4:18","nodeType":"YulLiteral","src":"3112:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"3118:15:18","nodeType":"YulIdentifier","src":"3118:15:18"}],"functionName":{"name":"mstore","nativeSrc":"3105:6:18","nodeType":"YulIdentifier","src":"3105:6:18"},"nativeSrc":"3105:29:18","nodeType":"YulFunctionCall","src":"3105:29:18"},"nativeSrc":"3105:29:18","nodeType":"YulExpressionStatement","src":"3105:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3154:4:18","nodeType":"YulLiteral","src":"3154:4:18","type":"","value":"0x00"},{"name":"user","nativeSrc":"3160:4:18","nodeType":"YulIdentifier","src":"3160:4:18"}],"functionName":{"name":"mstore","nativeSrc":"3147:6:18","nodeType":"YulIdentifier","src":"3147:6:18"},"nativeSrc":"3147:18:18","nodeType":"YulFunctionCall","src":"3147:18:18"},"nativeSrc":"3147:18:18","nodeType":"YulExpressionStatement","src":"3147:18:18"},{"nativeSrc":"3178:37:18","nodeType":"YulVariableDeclaration","src":"3178:37:18","value":{"arguments":[{"kind":"number","nativeSrc":"3204:4:18","nodeType":"YulLiteral","src":"3204:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"3210:4:18","nodeType":"YulLiteral","src":"3210:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"3194:9:18","nodeType":"YulIdentifier","src":"3194:9:18"},"nativeSrc":"3194:21:18","nodeType":"YulFunctionCall","src":"3194:21:18"},"variables":[{"name":"roleSlot","nativeSrc":"3182:8:18","nodeType":"YulTypedName","src":"3182:8:18","type":""}]},{"nativeSrc":"3267:30:18","nodeType":"YulVariableDeclaration","src":"3267:30:18","value":{"arguments":[{"name":"roleSlot","nativeSrc":"3288:8:18","nodeType":"YulIdentifier","src":"3288:8:18"}],"functionName":{"name":"sload","nativeSrc":"3282:5:18","nodeType":"YulIdentifier","src":"3282:5:18"},"nativeSrc":"3282:15:18","nodeType":"YulFunctionCall","src":"3282:15:18"},"variables":[{"name":"current","nativeSrc":"3271:7:18","nodeType":"YulTypedName","src":"3271:7:18","type":""}]},{"nativeSrc":"3368:33:18","nodeType":"YulVariableDeclaration","src":"3368:33:18","value":{"arguments":[{"name":"current","nativeSrc":"3386:7:18","nodeType":"YulIdentifier","src":"3386:7:18"},{"name":"roles","nativeSrc":"3395:5:18","nodeType":"YulIdentifier","src":"3395:5:18"}],"functionName":{"name":"or","nativeSrc":"3383:2:18","nodeType":"YulIdentifier","src":"3383:2:18"},"nativeSrc":"3383:18:18","nodeType":"YulFunctionCall","src":"3383:18:18"},"variables":[{"name":"updated","nativeSrc":"3372:7:18","nodeType":"YulTypedName","src":"3372:7:18","type":""}]},{"body":{"nativeSrc":"3643:48:18","nodeType":"YulBlock","src":"3643:48:18","statements":[{"nativeSrc":"3645:44:18","nodeType":"YulAssignment","src":"3645:44:18","value":{"arguments":[{"name":"current","nativeSrc":"3660:7:18","nodeType":"YulIdentifier","src":"3660:7:18"},{"arguments":[{"name":"current","nativeSrc":"3673:7:18","nodeType":"YulIdentifier","src":"3673:7:18"},{"name":"roles","nativeSrc":"3682:5:18","nodeType":"YulIdentifier","src":"3682:5:18"}],"functionName":{"name":"and","nativeSrc":"3669:3:18","nodeType":"YulIdentifier","src":"3669:3:18"},"nativeSrc":"3669:19:18","nodeType":"YulFunctionCall","src":"3669:19:18"}],"functionName":{"name":"xor","nativeSrc":"3656:3:18","nodeType":"YulIdentifier","src":"3656:3:18"},"nativeSrc":"3656:33:18","nodeType":"YulFunctionCall","src":"3656:33:18"},"variableNames":[{"name":"updated","nativeSrc":"3645:7:18","nodeType":"YulIdentifier","src":"3645:7:18"}]}]},"condition":{"arguments":[{"name":"on","nativeSrc":"3639:2:18","nodeType":"YulIdentifier","src":"3639:2:18"}],"functionName":{"name":"iszero","nativeSrc":"3632:6:18","nodeType":"YulIdentifier","src":"3632:6:18"},"nativeSrc":"3632:10:18","nodeType":"YulFunctionCall","src":"3632:10:18"},"nativeSrc":"3629:62:18","nodeType":"YulIf","src":"3629:62:18"},{"expression":{"arguments":[{"name":"roleSlot","nativeSrc":"3753:8:18","nodeType":"YulIdentifier","src":"3753:8:18"},{"name":"updated","nativeSrc":"3763:7:18","nodeType":"YulIdentifier","src":"3763:7:18"}],"functionName":{"name":"sstore","nativeSrc":"3746:6:18","nodeType":"YulIdentifier","src":"3746:6:18"},"nativeSrc":"3746:25:18","nodeType":"YulFunctionCall","src":"3746:25:18"},"nativeSrc":"3746:25:18","nodeType":"YulExpressionStatement","src":"3746:25:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3835:1:18","nodeType":"YulLiteral","src":"3835:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"3838:1:18","nodeType":"YulLiteral","src":"3838:1:18","type":"","value":"0"},{"name":"_ROLES_UPDATED_EVENT_SIGNATURE","nativeSrc":"3841:30:18","nodeType":"YulIdentifier","src":"3841:30:18"},{"arguments":[{"kind":"number","nativeSrc":"3877:2:18","nodeType":"YulLiteral","src":"3877:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"3887:4:18","nodeType":"YulLiteral","src":"3887:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"3881:5:18","nodeType":"YulIdentifier","src":"3881:5:18"},"nativeSrc":"3881:11:18","nodeType":"YulFunctionCall","src":"3881:11:18"}],"functionName":{"name":"shr","nativeSrc":"3873:3:18","nodeType":"YulIdentifier","src":"3873:3:18"},"nativeSrc":"3873:20:18","nodeType":"YulFunctionCall","src":"3873:20:18"},{"name":"updated","nativeSrc":"3895:7:18","nodeType":"YulIdentifier","src":"3895:7:18"}],"functionName":{"name":"log3","nativeSrc":"3830:4:18","nodeType":"YulIdentifier","src":"3830:4:18"},"nativeSrc":"3830:73:18","nodeType":"YulFunctionCall","src":"3830:73:18"},"nativeSrc":"3830:73:18","nodeType":"YulExpressionStatement","src":"3830:73:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6441,"isOffset":false,"isSlot":false,"src":"3841:30:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"3118:15:18","valueSize":1},{"declaration":6462,"isOffset":false,"isSlot":false,"src":"3639:2:18","valueSize":1},{"declaration":6460,"isOffset":false,"isSlot":false,"src":"3395:5:18","valueSize":1},{"declaration":6460,"isOffset":false,"isSlot":false,"src":"3682:5:18","valueSize":1},{"declaration":6458,"isOffset":false,"isSlot":false,"src":"3160:4:18","valueSize":1}],"id":6465,"nodeType":"InlineAssembly","src":"3082:831:18"}]},"documentation":{"id":6456,"nodeType":"StructuredDocumentation","src":"2752:195:18","text":"@dev Updates the roles directly without authorization guard.\n If `on` is true, each set bit of `roles` will be turned on,\n otherwise, each set bit of `roles` will be turned off."},"id":6467,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRoles","nameLocation":"2961:12:18","nodeType":"FunctionDefinition","parameters":{"id":6463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6458,"mutability":"mutable","name":"user","nameLocation":"2982:4:18","nodeType":"VariableDeclaration","scope":6467,"src":"2974:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6457,"name":"address","nodeType":"ElementaryTypeName","src":"2974:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6460,"mutability":"mutable","name":"roles","nameLocation":"2996:5:18","nodeType":"VariableDeclaration","scope":6467,"src":"2988:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6459,"name":"uint256","nodeType":"ElementaryTypeName","src":"2988:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6462,"mutability":"mutable","name":"on","nameLocation":"3008:2:18","nodeType":"VariableDeclaration","scope":6467,"src":"3003:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6461,"name":"bool","nodeType":"ElementaryTypeName","src":"3003:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2973:38:18"},"returnParameters":{"id":6464,"nodeType":"ParameterList","parameters":[],"src":"3029:0:18"},"scope":7950,"src":"2952:967:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6481,"nodeType":"Block","src":"4120:48:18","statements":[{"expression":{"arguments":[{"id":6476,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6470,"src":"4143:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6477,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6472,"src":"4149:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":6478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4156:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6475,"name":"_updateRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"4130:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":6479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4130:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6480,"nodeType":"ExpressionStatement","src":"4130:31:18"}]},"documentation":{"id":6468,"nodeType":"StructuredDocumentation","src":"3925:123:18","text":"@dev Grants the roles directly without authorization guard.\n Each bit of `roles` represents the role to turn on."},"id":6482,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRoles","nameLocation":"4062:11:18","nodeType":"FunctionDefinition","parameters":{"id":6473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6470,"mutability":"mutable","name":"user","nameLocation":"4082:4:18","nodeType":"VariableDeclaration","scope":6482,"src":"4074:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6469,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6472,"mutability":"mutable","name":"roles","nameLocation":"4096:5:18","nodeType":"VariableDeclaration","scope":6482,"src":"4088:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6471,"name":"uint256","nodeType":"ElementaryTypeName","src":"4088:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4073:29:18"},"returnParameters":{"id":6474,"nodeType":"ParameterList","parameters":[],"src":"4120:0:18"},"scope":7950,"src":"4053:115:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6496,"nodeType":"Block","src":"4372:49:18","statements":[{"expression":{"arguments":[{"id":6491,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6485,"src":"4395:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6492,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6487,"src":"4401:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":6493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4408:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6490,"name":"_updateRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"4382:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":6494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6495,"nodeType":"ExpressionStatement","src":"4382:32:18"}]},"documentation":{"id":6483,"nodeType":"StructuredDocumentation","src":"4174:125:18","text":"@dev Removes the roles directly without authorization guard.\n Each bit of `roles` represents the role to turn off."},"id":6497,"implemented":true,"kind":"function","modifiers":[],"name":"_removeRoles","nameLocation":"4313:12:18","nodeType":"FunctionDefinition","parameters":{"id":6488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6485,"mutability":"mutable","name":"user","nameLocation":"4334:4:18","nodeType":"VariableDeclaration","scope":6497,"src":"4326:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6484,"name":"address","nodeType":"ElementaryTypeName","src":"4326:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6487,"mutability":"mutable","name":"roles","nameLocation":"4348:5:18","nodeType":"VariableDeclaration","scope":6497,"src":"4340:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6486,"name":"uint256","nodeType":"ElementaryTypeName","src":"4340:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4325:29:18"},"returnParameters":{"id":6489,"nodeType":"ParameterList","parameters":[],"src":"4372:0:18"},"scope":7950,"src":"4304:117:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6504,"nodeType":"Block","src":"4553:496:18","statements":[{"AST":{"nativeSrc":"4615:428:18","nodeType":"YulBlock","src":"4615:428:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4674:4:18","nodeType":"YulLiteral","src":"4674:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"4680:15:18","nodeType":"YulIdentifier","src":"4680:15:18"}],"functionName":{"name":"mstore","nativeSrc":"4667:6:18","nodeType":"YulIdentifier","src":"4667:6:18"},"nativeSrc":"4667:29:18","nodeType":"YulFunctionCall","src":"4667:29:18"},"nativeSrc":"4667:29:18","nodeType":"YulExpressionStatement","src":"4667:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4716:4:18","nodeType":"YulLiteral","src":"4716:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"4722:6:18","nodeType":"YulIdentifier","src":"4722:6:18"},"nativeSrc":"4722:8:18","nodeType":"YulFunctionCall","src":"4722:8:18"}],"functionName":{"name":"mstore","nativeSrc":"4709:6:18","nodeType":"YulIdentifier","src":"4709:6:18"},"nativeSrc":"4709:22:18","nodeType":"YulFunctionCall","src":"4709:22:18"},"nativeSrc":"4709:22:18","nodeType":"YulExpressionStatement","src":"4709:22:18"},{"body":{"nativeSrc":"4921:112:18","nodeType":"YulBlock","src":"4921:112:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4946:4:18","nodeType":"YulLiteral","src":"4946:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4952:10:18","nodeType":"YulLiteral","src":"4952:10:18","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"4939:6:18","nodeType":"YulIdentifier","src":"4939:6:18"},"nativeSrc":"4939:24:18","nodeType":"YulFunctionCall","src":"4939:24:18"},"nativeSrc":"4939:24:18","nodeType":"YulExpressionStatement","src":"4939:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5008:4:18","nodeType":"YulLiteral","src":"5008:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5014:4:18","nodeType":"YulLiteral","src":"5014:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5001:6:18","nodeType":"YulIdentifier","src":"5001:6:18"},"nativeSrc":"5001:18:18","nodeType":"YulFunctionCall","src":"5001:18:18"},"nativeSrc":"5001:18:18","nodeType":"YulExpressionStatement","src":"5001:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4899:4:18","nodeType":"YulLiteral","src":"4899:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"4905:4:18","nodeType":"YulLiteral","src":"4905:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4889:9:18","nodeType":"YulIdentifier","src":"4889:9:18"},"nativeSrc":"4889:21:18","nodeType":"YulFunctionCall","src":"4889:21:18"}],"functionName":{"name":"sload","nativeSrc":"4883:5:18","nodeType":"YulIdentifier","src":"4883:5:18"},"nativeSrc":"4883:28:18","nodeType":"YulFunctionCall","src":"4883:28:18"},{"name":"roles","nativeSrc":"4913:5:18","nodeType":"YulIdentifier","src":"4913:5:18"}],"functionName":{"name":"and","nativeSrc":"4879:3:18","nodeType":"YulIdentifier","src":"4879:3:18"},"nativeSrc":"4879:40:18","nodeType":"YulFunctionCall","src":"4879:40:18"}],"functionName":{"name":"iszero","nativeSrc":"4872:6:18","nodeType":"YulIdentifier","src":"4872:6:18"},"nativeSrc":"4872:48:18","nodeType":"YulFunctionCall","src":"4872:48:18"},"nativeSrc":"4869:164:18","nodeType":"YulIf","src":"4869:164:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"4680:15:18","valueSize":1},{"declaration":6500,"isOffset":false,"isSlot":false,"src":"4913:5:18","valueSize":1}],"id":6503,"nodeType":"InlineAssembly","src":"4606:437:18"}]},"documentation":{"id":6498,"nodeType":"StructuredDocumentation","src":"4427:63:18","text":"@dev Throws if the sender does not have any of the `roles`."},"id":6505,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRoles","nameLocation":"4504:11:18","nodeType":"FunctionDefinition","parameters":{"id":6501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6500,"mutability":"mutable","name":"roles","nameLocation":"4524:5:18","nodeType":"VariableDeclaration","scope":6505,"src":"4516:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6499,"name":"uint256","nodeType":"ElementaryTypeName","src":"4516:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4515:15:18"},"returnParameters":{"id":6502,"nodeType":"ParameterList","parameters":[],"src":"4553:0:18"},"scope":7950,"src":"4495:554:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6512,"nodeType":"Block","src":"5284:737:18","statements":[{"AST":{"nativeSrc":"5346:669:18","nodeType":"YulBlock","src":"5346:669:18","statements":[{"body":{"nativeSrc":"5537:468:18","nodeType":"YulBlock","src":"5537:468:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5604:4:18","nodeType":"YulLiteral","src":"5604:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"5610:15:18","nodeType":"YulIdentifier","src":"5610:15:18"}],"functionName":{"name":"mstore","nativeSrc":"5597:6:18","nodeType":"YulIdentifier","src":"5597:6:18"},"nativeSrc":"5597:29:18","nodeType":"YulFunctionCall","src":"5597:29:18"},"nativeSrc":"5597:29:18","nodeType":"YulExpressionStatement","src":"5597:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5650:4:18","nodeType":"YulLiteral","src":"5650:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"5656:6:18","nodeType":"YulIdentifier","src":"5656:6:18"},"nativeSrc":"5656:8:18","nodeType":"YulFunctionCall","src":"5656:8:18"}],"functionName":{"name":"mstore","nativeSrc":"5643:6:18","nodeType":"YulIdentifier","src":"5643:6:18"},"nativeSrc":"5643:22:18","nodeType":"YulFunctionCall","src":"5643:22:18"},"nativeSrc":"5643:22:18","nodeType":"YulExpressionStatement","src":"5643:22:18"},{"body":{"nativeSrc":"5867:124:18","nodeType":"YulBlock","src":"5867:124:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5896:4:18","nodeType":"YulLiteral","src":"5896:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5902:10:18","nodeType":"YulLiteral","src":"5902:10:18","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"5889:6:18","nodeType":"YulIdentifier","src":"5889:6:18"},"nativeSrc":"5889:24:18","nodeType":"YulFunctionCall","src":"5889:24:18"},"nativeSrc":"5889:24:18","nodeType":"YulExpressionStatement","src":"5889:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5962:4:18","nodeType":"YulLiteral","src":"5962:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5968:4:18","nodeType":"YulLiteral","src":"5968:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5955:6:18","nodeType":"YulIdentifier","src":"5955:6:18"},"nativeSrc":"5955:18:18","nodeType":"YulFunctionCall","src":"5955:18:18"},"nativeSrc":"5955:18:18","nodeType":"YulExpressionStatement","src":"5955:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5845:4:18","nodeType":"YulLiteral","src":"5845:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"5851:4:18","nodeType":"YulLiteral","src":"5851:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5835:9:18","nodeType":"YulIdentifier","src":"5835:9:18"},"nativeSrc":"5835:21:18","nodeType":"YulFunctionCall","src":"5835:21:18"}],"functionName":{"name":"sload","nativeSrc":"5829:5:18","nodeType":"YulIdentifier","src":"5829:5:18"},"nativeSrc":"5829:28:18","nodeType":"YulFunctionCall","src":"5829:28:18"},{"name":"roles","nativeSrc":"5859:5:18","nodeType":"YulIdentifier","src":"5859:5:18"}],"functionName":{"name":"and","nativeSrc":"5825:3:18","nodeType":"YulIdentifier","src":"5825:3:18"},"nativeSrc":"5825:40:18","nodeType":"YulFunctionCall","src":"5825:40:18"}],"functionName":{"name":"iszero","nativeSrc":"5818:6:18","nodeType":"YulIdentifier","src":"5818:6:18"},"nativeSrc":"5818:48:18","nodeType":"YulFunctionCall","src":"5818:48:18"},"nativeSrc":"5815:176:18","nodeType":"YulIf","src":"5815:176:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"5497:6:18","nodeType":"YulIdentifier","src":"5497:6:18"},"nativeSrc":"5497:8:18","nodeType":"YulFunctionCall","src":"5497:8:18"},{"arguments":[{"arguments":[{"name":"_ROLE_SLOT_SEED","nativeSrc":"5517:15:18","nodeType":"YulIdentifier","src":"5517:15:18"}],"functionName":{"name":"not","nativeSrc":"5513:3:18","nodeType":"YulIdentifier","src":"5513:3:18"},"nativeSrc":"5513:20:18","nodeType":"YulFunctionCall","src":"5513:20:18"}],"functionName":{"name":"sload","nativeSrc":"5507:5:18","nodeType":"YulIdentifier","src":"5507:5:18"},"nativeSrc":"5507:27:18","nodeType":"YulFunctionCall","src":"5507:27:18"}],"functionName":{"name":"eq","nativeSrc":"5494:2:18","nodeType":"YulIdentifier","src":"5494:2:18"},"nativeSrc":"5494:41:18","nodeType":"YulFunctionCall","src":"5494:41:18"}],"functionName":{"name":"iszero","nativeSrc":"5487:6:18","nodeType":"YulIdentifier","src":"5487:6:18"},"nativeSrc":"5487:49:18","nodeType":"YulFunctionCall","src":"5487:49:18"},"nativeSrc":"5484:521:18","nodeType":"YulIf","src":"5484:521:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"5517:15:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"5610:15:18","valueSize":1},{"declaration":6508,"isOffset":false,"isSlot":false,"src":"5859:5:18","valueSize":1}],"id":6511,"nodeType":"InlineAssembly","src":"5337:678:18"}]},"documentation":{"id":6506,"nodeType":"StructuredDocumentation","src":"5055:159:18","text":"@dev Throws if the sender is not the owner,\n and does not have any of the `roles`.\n Checks for ownership first, then lazily checks for roles."},"id":6513,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwnerOrRoles","nameLocation":"5228:18:18","nodeType":"FunctionDefinition","parameters":{"id":6509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6508,"mutability":"mutable","name":"roles","nameLocation":"5255:5:18","nodeType":"VariableDeclaration","scope":6513,"src":"5247:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6507,"name":"uint256","nodeType":"ElementaryTypeName","src":"5247:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5246:15:18"},"returnParameters":{"id":6510,"nodeType":"ParameterList","parameters":[],"src":"5284:0:18"},"scope":7950,"src":"5219:802:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6520,"nodeType":"Block","src":"6256:725:18","statements":[{"AST":{"nativeSrc":"6318:657:18","nodeType":"YulBlock","src":"6318:657:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6377:4:18","nodeType":"YulLiteral","src":"6377:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"6383:15:18","nodeType":"YulIdentifier","src":"6383:15:18"}],"functionName":{"name":"mstore","nativeSrc":"6370:6:18","nodeType":"YulIdentifier","src":"6370:6:18"},"nativeSrc":"6370:29:18","nodeType":"YulFunctionCall","src":"6370:29:18"},"nativeSrc":"6370:29:18","nodeType":"YulExpressionStatement","src":"6370:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6419:4:18","nodeType":"YulLiteral","src":"6419:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"6425:6:18","nodeType":"YulIdentifier","src":"6425:6:18"},"nativeSrc":"6425:8:18","nodeType":"YulFunctionCall","src":"6425:8:18"}],"functionName":{"name":"mstore","nativeSrc":"6412:6:18","nodeType":"YulIdentifier","src":"6412:6:18"},"nativeSrc":"6412:22:18","nodeType":"YulFunctionCall","src":"6412:22:18"},"nativeSrc":"6412:22:18","nodeType":"YulExpressionStatement","src":"6412:22:18"},{"body":{"nativeSrc":"6624:341:18","nodeType":"YulBlock","src":"6624:341:18","statements":[{"body":{"nativeSrc":"6827:124:18","nodeType":"YulBlock","src":"6827:124:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6856:4:18","nodeType":"YulLiteral","src":"6856:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6862:10:18","nodeType":"YulLiteral","src":"6862:10:18","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"6849:6:18","nodeType":"YulIdentifier","src":"6849:6:18"},"nativeSrc":"6849:24:18","nodeType":"YulFunctionCall","src":"6849:24:18"},"nativeSrc":"6849:24:18","nodeType":"YulExpressionStatement","src":"6849:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6922:4:18","nodeType":"YulLiteral","src":"6922:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6928:4:18","nodeType":"YulLiteral","src":"6928:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6915:6:18","nodeType":"YulIdentifier","src":"6915:6:18"},"nativeSrc":"6915:18:18","nodeType":"YulFunctionCall","src":"6915:18:18"},"nativeSrc":"6915:18:18","nodeType":"YulExpressionStatement","src":"6915:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"6787:6:18","nodeType":"YulIdentifier","src":"6787:6:18"},"nativeSrc":"6787:8:18","nodeType":"YulFunctionCall","src":"6787:8:18"},{"arguments":[{"arguments":[{"name":"_ROLE_SLOT_SEED","nativeSrc":"6807:15:18","nodeType":"YulIdentifier","src":"6807:15:18"}],"functionName":{"name":"not","nativeSrc":"6803:3:18","nodeType":"YulIdentifier","src":"6803:3:18"},"nativeSrc":"6803:20:18","nodeType":"YulFunctionCall","src":"6803:20:18"}],"functionName":{"name":"sload","nativeSrc":"6797:5:18","nodeType":"YulIdentifier","src":"6797:5:18"},"nativeSrc":"6797:27:18","nodeType":"YulFunctionCall","src":"6797:27:18"}],"functionName":{"name":"eq","nativeSrc":"6784:2:18","nodeType":"YulIdentifier","src":"6784:2:18"},"nativeSrc":"6784:41:18","nodeType":"YulFunctionCall","src":"6784:41:18"}],"functionName":{"name":"iszero","nativeSrc":"6777:6:18","nodeType":"YulIdentifier","src":"6777:6:18"},"nativeSrc":"6777:49:18","nodeType":"YulFunctionCall","src":"6777:49:18"},"nativeSrc":"6774:177:18","nodeType":"YulIf","src":"6774:177:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6602:4:18","nodeType":"YulLiteral","src":"6602:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"6608:4:18","nodeType":"YulLiteral","src":"6608:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6592:9:18","nodeType":"YulIdentifier","src":"6592:9:18"},"nativeSrc":"6592:21:18","nodeType":"YulFunctionCall","src":"6592:21:18"}],"functionName":{"name":"sload","nativeSrc":"6586:5:18","nodeType":"YulIdentifier","src":"6586:5:18"},"nativeSrc":"6586:28:18","nodeType":"YulFunctionCall","src":"6586:28:18"},{"name":"roles","nativeSrc":"6616:5:18","nodeType":"YulIdentifier","src":"6616:5:18"}],"functionName":{"name":"and","nativeSrc":"6582:3:18","nodeType":"YulIdentifier","src":"6582:3:18"},"nativeSrc":"6582:40:18","nodeType":"YulFunctionCall","src":"6582:40:18"}],"functionName":{"name":"iszero","nativeSrc":"6575:6:18","nodeType":"YulIdentifier","src":"6575:6:18"},"nativeSrc":"6575:48:18","nodeType":"YulFunctionCall","src":"6575:48:18"},"nativeSrc":"6572:393:18","nodeType":"YulIf","src":"6572:393:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"6383:15:18","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"6807:15:18","valueSize":1},{"declaration":6516,"isOffset":false,"isSlot":false,"src":"6616:5:18","valueSize":1}],"id":6519,"nodeType":"InlineAssembly","src":"6309:666:18"}]},"documentation":{"id":6514,"nodeType":"StructuredDocumentation","src":"6027:159:18","text":"@dev Throws if the sender does not have any of the `roles`,\n and is not the owner.\n Checks for roles first, then lazily checks for ownership."},"id":6521,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRolesOrOwner","nameLocation":"6200:18:18","nodeType":"FunctionDefinition","parameters":{"id":6517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6516,"mutability":"mutable","name":"roles","nameLocation":"6227:5:18","nodeType":"VariableDeclaration","scope":6521,"src":"6219:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6515,"name":"uint256","nodeType":"ElementaryTypeName","src":"6219:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6218:15:18"},"returnParameters":{"id":6518,"nodeType":"ParameterList","parameters":[],"src":"6256:0:18"},"scope":7950,"src":"6191:790:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6531,"nodeType":"Block","src":"7389:398:18","statements":[{"AST":{"nativeSrc":"7451:330:18","nodeType":"YulBlock","src":"7451:330:18","statements":[{"body":{"nativeSrc":"7530:241:18","nodeType":"YulBlock","src":"7530:241:18","statements":[{"nativeSrc":"7706:51:18","nodeType":"YulAssignment","src":"7706:51:18","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"ordinals","nativeSrc":"7732:8:18","nodeType":"YulIdentifier","src":"7732:8:18"},{"name":"i","nativeSrc":"7742:1:18","nodeType":"YulIdentifier","src":"7742:1:18"}],"functionName":{"name":"add","nativeSrc":"7728:3:18","nodeType":"YulIdentifier","src":"7728:3:18"},"nativeSrc":"7728:16:18","nodeType":"YulFunctionCall","src":"7728:16:18"}],"functionName":{"name":"mload","nativeSrc":"7722:5:18","nodeType":"YulIdentifier","src":"7722:5:18"},"nativeSrc":"7722:23:18","nodeType":"YulFunctionCall","src":"7722:23:18"},{"kind":"number","nativeSrc":"7747:1:18","nodeType":"YulLiteral","src":"7747:1:18","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7718:3:18","nodeType":"YulIdentifier","src":"7718:3:18"},"nativeSrc":"7718:31:18","nodeType":"YulFunctionCall","src":"7718:31:18"},{"name":"roles","nativeSrc":"7751:5:18","nodeType":"YulIdentifier","src":"7751:5:18"}],"functionName":{"name":"or","nativeSrc":"7715:2:18","nodeType":"YulIdentifier","src":"7715:2:18"},"nativeSrc":"7715:42:18","nodeType":"YulFunctionCall","src":"7715:42:18"},"variableNames":[{"name":"roles","nativeSrc":"7706:5:18","nodeType":"YulIdentifier","src":"7706:5:18"}]}]},"condition":{"name":"i","nativeSrc":"7506:1:18","nodeType":"YulIdentifier","src":"7506:1:18"},"nativeSrc":"7465:306:18","nodeType":"YulForLoop","post":{"nativeSrc":"7508:21:18","nodeType":"YulBlock","src":"7508:21:18","statements":[{"nativeSrc":"7510:17:18","nodeType":"YulAssignment","src":"7510:17:18","value":{"arguments":[{"name":"i","nativeSrc":"7519:1:18","nodeType":"YulIdentifier","src":"7519:1:18"},{"kind":"number","nativeSrc":"7522:4:18","nodeType":"YulLiteral","src":"7522:4:18","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"7515:3:18","nodeType":"YulIdentifier","src":"7515:3:18"},"nativeSrc":"7515:12:18","nodeType":"YulFunctionCall","src":"7515:12:18"},"variableNames":[{"name":"i","nativeSrc":"7510:1:18","nodeType":"YulIdentifier","src":"7510:1:18"}]}]},"pre":{"nativeSrc":"7469:36:18","nodeType":"YulBlock","src":"7469:36:18","statements":[{"nativeSrc":"7471:32:18","nodeType":"YulVariableDeclaration","src":"7471:32:18","value":{"arguments":[{"kind":"number","nativeSrc":"7484:1:18","nodeType":"YulLiteral","src":"7484:1:18","type":"","value":"5"},{"arguments":[{"name":"ordinals","nativeSrc":"7493:8:18","nodeType":"YulIdentifier","src":"7493:8:18"}],"functionName":{"name":"mload","nativeSrc":"7487:5:18","nodeType":"YulIdentifier","src":"7487:5:18"},"nativeSrc":"7487:15:18","nodeType":"YulFunctionCall","src":"7487:15:18"}],"functionName":{"name":"shl","nativeSrc":"7480:3:18","nodeType":"YulIdentifier","src":"7480:3:18"},"nativeSrc":"7480:23:18","nodeType":"YulFunctionCall","src":"7480:23:18"},"variables":[{"name":"i","nativeSrc":"7475:1:18","nodeType":"YulTypedName","src":"7475:1:18","type":""}]}]},"src":"7465:306:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6525,"isOffset":false,"isSlot":false,"src":"7493:8:18","valueSize":1},{"declaration":6525,"isOffset":false,"isSlot":false,"src":"7732:8:18","valueSize":1},{"declaration":6528,"isOffset":false,"isSlot":false,"src":"7706:5:18","valueSize":1},{"declaration":6528,"isOffset":false,"isSlot":false,"src":"7751:5:18","valueSize":1}],"id":6530,"nodeType":"InlineAssembly","src":"7442:339:18"}]},"documentation":{"id":6522,"nodeType":"StructuredDocumentation","src":"6987:306:18","text":"@dev Convenience function to return a `roles` bitmap from an array of `ordinals`.\n This is meant for frontends like Etherscan, and is therefore not fully optimized.\n Not recommended to be called on-chain.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6532,"implemented":true,"kind":"function","modifiers":[],"name":"_rolesFromOrdinals","nameLocation":"7307:18:18","nodeType":"FunctionDefinition","parameters":{"id":6526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6525,"mutability":"mutable","name":"ordinals","nameLocation":"7341:8:18","nodeType":"VariableDeclaration","scope":6532,"src":"7326:23:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6523,"name":"uint8","nodeType":"ElementaryTypeName","src":"7326:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6524,"nodeType":"ArrayTypeName","src":"7326:7:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"7325:25:18"},"returnParameters":{"id":6529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6528,"mutability":"mutable","name":"roles","nameLocation":"7382:5:18","nodeType":"VariableDeclaration","scope":6532,"src":"7374:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6527,"name":"uint256","nodeType":"ElementaryTypeName","src":"7374:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7373:15:18"},"scope":7950,"src":"7298:489:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6542,"nodeType":"Block","src":"8197:966:18","statements":[{"AST":{"nativeSrc":"8259:898:18","nodeType":"YulBlock","src":"8259:898:18","statements":[{"nativeSrc":"8325:23:18","nodeType":"YulAssignment","src":"8325:23:18","value":{"arguments":[{"kind":"number","nativeSrc":"8343:4:18","nodeType":"YulLiteral","src":"8343:4:18","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8337:5:18","nodeType":"YulIdentifier","src":"8337:5:18"},"nativeSrc":"8337:11:18","nodeType":"YulFunctionCall","src":"8337:11:18"},"variableNames":[{"name":"ordinals","nativeSrc":"8325:8:18","nodeType":"YulIdentifier","src":"8325:8:18"}]},{"nativeSrc":"8361:30:18","nodeType":"YulVariableDeclaration","src":"8361:30:18","value":{"arguments":[{"name":"ordinals","nativeSrc":"8376:8:18","nodeType":"YulIdentifier","src":"8376:8:18"},{"kind":"number","nativeSrc":"8386:4:18","nodeType":"YulLiteral","src":"8386:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8372:3:18","nodeType":"YulIdentifier","src":"8372:3:18"},"nativeSrc":"8372:19:18","nodeType":"YulFunctionCall","src":"8372:19:18"},"variables":[{"name":"ptr","nativeSrc":"8365:3:18","nodeType":"YulTypedName","src":"8365:3:18","type":""}]},{"nativeSrc":"8404:10:18","nodeType":"YulVariableDeclaration","src":"8404:10:18","value":{"kind":"number","nativeSrc":"8413:1:18","nodeType":"YulLiteral","src":"8413:1:18","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"8408:1:18","nodeType":"YulTypedName","src":"8408:1:18","type":""}]},{"body":{"nativeSrc":"8627:339:18","nodeType":"YulBlock","src":"8627:339:18","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"8652:3:18","nodeType":"YulIdentifier","src":"8652:3:18"},{"name":"o","nativeSrc":"8657:1:18","nodeType":"YulIdentifier","src":"8657:1:18"}],"functionName":{"name":"mstore","nativeSrc":"8645:6:18","nodeType":"YulIdentifier","src":"8645:6:18"},"nativeSrc":"8645:14:18","nodeType":"YulFunctionCall","src":"8645:14:18"},"nativeSrc":"8645:14:18","nodeType":"YulExpressionStatement","src":"8645:14:18"},{"nativeSrc":"8813:34:18","nodeType":"YulAssignment","src":"8813:34:18","value":{"arguments":[{"name":"ptr","nativeSrc":"8824:3:18","nodeType":"YulIdentifier","src":"8824:3:18"},{"arguments":[{"kind":"number","nativeSrc":"8833:1:18","nodeType":"YulLiteral","src":"8833:1:18","type":"","value":"5"},{"arguments":[{"name":"t","nativeSrc":"8840:1:18","nodeType":"YulIdentifier","src":"8840:1:18"},{"kind":"number","nativeSrc":"8843:1:18","nodeType":"YulLiteral","src":"8843:1:18","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8836:3:18","nodeType":"YulIdentifier","src":"8836:3:18"},"nativeSrc":"8836:9:18","nodeType":"YulFunctionCall","src":"8836:9:18"}],"functionName":{"name":"shl","nativeSrc":"8829:3:18","nodeType":"YulIdentifier","src":"8829:3:18"},"nativeSrc":"8829:17:18","nodeType":"YulFunctionCall","src":"8829:17:18"}],"functionName":{"name":"add","nativeSrc":"8820:3:18","nodeType":"YulIdentifier","src":"8820:3:18"},"nativeSrc":"8820:27:18","nodeType":"YulFunctionCall","src":"8820:27:18"},"variableNames":[{"name":"ptr","nativeSrc":"8813:3:18","nodeType":"YulIdentifier","src":"8813:3:18"}]},{"nativeSrc":"8864:14:18","nodeType":"YulAssignment","src":"8864:14:18","value":{"arguments":[{"name":"o","nativeSrc":"8873:1:18","nodeType":"YulIdentifier","src":"8873:1:18"},{"kind":"number","nativeSrc":"8876:1:18","nodeType":"YulLiteral","src":"8876:1:18","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8869:3:18","nodeType":"YulIdentifier","src":"8869:3:18"},"nativeSrc":"8869:9:18","nodeType":"YulFunctionCall","src":"8869:9:18"},"variableNames":[{"name":"o","nativeSrc":"8864:1:18","nodeType":"YulIdentifier","src":"8864:1:18"}]},{"nativeSrc":"8895:18:18","nodeType":"YulAssignment","src":"8895:18:18","value":{"arguments":[{"name":"o","nativeSrc":"8904:1:18","nodeType":"YulIdentifier","src":"8904:1:18"},{"name":"roles","nativeSrc":"8907:5:18","nodeType":"YulIdentifier","src":"8907:5:18"}],"functionName":{"name":"shr","nativeSrc":"8900:3:18","nodeType":"YulIdentifier","src":"8900:3:18"},"nativeSrc":"8900:13:18","nodeType":"YulFunctionCall","src":"8900:13:18"},"variableNames":[{"name":"t","nativeSrc":"8895:1:18","nodeType":"YulIdentifier","src":"8895:1:18"}]},{"body":{"nativeSrc":"8943:9:18","nodeType":"YulBlock","src":"8943:9:18","statements":[{"nativeSrc":"8945:5:18","nodeType":"YulBreak","src":"8945:5:18"}]},"condition":{"arguments":[{"name":"t","nativeSrc":"8940:1:18","nodeType":"YulIdentifier","src":"8940:1:18"}],"functionName":{"name":"iszero","nativeSrc":"8933:6:18","nodeType":"YulIdentifier","src":"8933:6:18"},"nativeSrc":"8933:9:18","nodeType":"YulFunctionCall","src":"8933:9:18"},"nativeSrc":"8930:22:18","nodeType":"YulIf","src":"8930:22:18"}]},"condition":{"kind":"number","nativeSrc":"8622:1:18","nodeType":"YulLiteral","src":"8622:1:18","type":"","value":"1"},"nativeSrc":"8599:367:18","nodeType":"YulForLoop","post":{"nativeSrc":"8624:2:18","nodeType":"YulBlock","src":"8624:2:18","statements":[]},"pre":{"nativeSrc":"8603:18:18","nodeType":"YulBlock","src":"8603:18:18","statements":[{"nativeSrc":"8605:14:18","nodeType":"YulVariableDeclaration","src":"8605:14:18","value":{"name":"roles","nativeSrc":"8614:5:18","nodeType":"YulIdentifier","src":"8614:5:18"},"variables":[{"name":"t","nativeSrc":"8609:1:18","nodeType":"YulTypedName","src":"8609:1:18","type":""}]}]},"src":"8599:367:18"},{"expression":{"arguments":[{"name":"ordinals","nativeSrc":"9033:8:18","nodeType":"YulIdentifier","src":"9033:8:18"},{"arguments":[{"kind":"number","nativeSrc":"9047:1:18","nodeType":"YulLiteral","src":"9047:1:18","type":"","value":"5"},{"arguments":[{"name":"ptr","nativeSrc":"9054:3:18","nodeType":"YulIdentifier","src":"9054:3:18"},{"arguments":[{"name":"ordinals","nativeSrc":"9063:8:18","nodeType":"YulIdentifier","src":"9063:8:18"},{"kind":"number","nativeSrc":"9073:4:18","nodeType":"YulLiteral","src":"9073:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9059:3:18","nodeType":"YulIdentifier","src":"9059:3:18"},"nativeSrc":"9059:19:18","nodeType":"YulFunctionCall","src":"9059:19:18"}],"functionName":{"name":"sub","nativeSrc":"9050:3:18","nodeType":"YulIdentifier","src":"9050:3:18"},"nativeSrc":"9050:29:18","nodeType":"YulFunctionCall","src":"9050:29:18"}],"functionName":{"name":"shr","nativeSrc":"9043:3:18","nodeType":"YulIdentifier","src":"9043:3:18"},"nativeSrc":"9043:37:18","nodeType":"YulFunctionCall","src":"9043:37:18"}],"functionName":{"name":"mstore","nativeSrc":"9026:6:18","nodeType":"YulIdentifier","src":"9026:6:18"},"nativeSrc":"9026:55:18","nodeType":"YulFunctionCall","src":"9026:55:18"},"nativeSrc":"9026:55:18","nodeType":"YulExpressionStatement","src":"9026:55:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9137:4:18","nodeType":"YulLiteral","src":"9137:4:18","type":"","value":"0x40"},{"name":"ptr","nativeSrc":"9143:3:18","nodeType":"YulIdentifier","src":"9143:3:18"}],"functionName":{"name":"mstore","nativeSrc":"9130:6:18","nodeType":"YulIdentifier","src":"9130:6:18"},"nativeSrc":"9130:17:18","nodeType":"YulFunctionCall","src":"9130:17:18"},"nativeSrc":"9130:17:18","nodeType":"YulExpressionStatement","src":"9130:17:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6539,"isOffset":false,"isSlot":false,"src":"8325:8:18","valueSize":1},{"declaration":6539,"isOffset":false,"isSlot":false,"src":"8376:8:18","valueSize":1},{"declaration":6539,"isOffset":false,"isSlot":false,"src":"9033:8:18","valueSize":1},{"declaration":6539,"isOffset":false,"isSlot":false,"src":"9063:8:18","valueSize":1},{"declaration":6535,"isOffset":false,"isSlot":false,"src":"8614:5:18","valueSize":1},{"declaration":6535,"isOffset":false,"isSlot":false,"src":"8907:5:18","valueSize":1}],"id":6541,"nodeType":"InlineAssembly","src":"8250:907:18"}]},"documentation":{"id":6533,"nodeType":"StructuredDocumentation","src":"7793:308:18","text":"@dev Convenience function to return an array of `ordinals` from the `roles` bitmap.\n This is meant for frontends like Etherscan, and is therefore not fully optimized.\n Not recommended to be called on-chain.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6543,"implemented":true,"kind":"function","modifiers":[],"name":"_ordinalsFromRoles","nameLocation":"8115:18:18","nodeType":"FunctionDefinition","parameters":{"id":6536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6535,"mutability":"mutable","name":"roles","nameLocation":"8142:5:18","nodeType":"VariableDeclaration","scope":6543,"src":"8134:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6534,"name":"uint256","nodeType":"ElementaryTypeName","src":"8134:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8133:15:18"},"returnParameters":{"id":6540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6539,"mutability":"mutable","name":"ordinals","nameLocation":"8187:8:18","nodeType":"VariableDeclaration","scope":6543,"src":"8172:23:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6537,"name":"uint8","nodeType":"ElementaryTypeName","src":"8172:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6538,"nodeType":"ArrayTypeName","src":"8172:7:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"8171:25:18"},"scope":7950,"src":"8106:1057:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6558,"nodeType":"Block","src":"9670:41:18","statements":[{"expression":{"arguments":[{"id":6554,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6546,"src":"9692:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6555,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6548,"src":"9698:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6553,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6482,"src":"9680:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9680:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6557,"nodeType":"ExpressionStatement","src":"9680:24:18"}]},"documentation":{"id":6544,"nodeType":"StructuredDocumentation","src":"9452:131:18","text":"@dev Allows the owner to grant `user` `roles`.\n If the `user` already has a role, then it will be an no-op for the role."},"functionSelector":"1c10893f","id":6559,"implemented":true,"kind":"function","modifiers":[{"id":6551,"kind":"modifierInvocation","modifierName":{"id":6550,"name":"onlyOwner","nameLocations":["9660:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"9660:9:18"},"nodeType":"ModifierInvocation","src":"9660:9:18"}],"name":"grantRoles","nameLocation":"9597:10:18","nodeType":"FunctionDefinition","parameters":{"id":6549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6546,"mutability":"mutable","name":"user","nameLocation":"9616:4:18","nodeType":"VariableDeclaration","scope":6559,"src":"9608:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6545,"name":"address","nodeType":"ElementaryTypeName","src":"9608:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6548,"mutability":"mutable","name":"roles","nameLocation":"9630:5:18","nodeType":"VariableDeclaration","scope":6559,"src":"9622:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6547,"name":"uint256","nodeType":"ElementaryTypeName","src":"9622:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9607:29:18"},"returnParameters":{"id":6552,"nodeType":"ParameterList","parameters":[],"src":"9670:0:18"},"scope":7950,"src":"9588:123:18","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6574,"nodeType":"Block","src":"9939:42:18","statements":[{"expression":{"arguments":[{"id":6570,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6562,"src":"9962:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6571,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"9968:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6569,"name":"_removeRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6497,"src":"9949:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6573,"nodeType":"ExpressionStatement","src":"9949:25:18"}]},"documentation":{"id":6560,"nodeType":"StructuredDocumentation","src":"9717:134:18","text":"@dev Allows the owner to remove `user` `roles`.\n If the `user` does not have a role, then it will be an no-op for the role."},"functionSelector":"4a4ee7b1","id":6575,"implemented":true,"kind":"function","modifiers":[{"id":6567,"kind":"modifierInvocation","modifierName":{"id":6566,"name":"onlyOwner","nameLocations":["9929:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"9929:9:18"},"nodeType":"ModifierInvocation","src":"9929:9:18"}],"name":"revokeRoles","nameLocation":"9865:11:18","nodeType":"FunctionDefinition","parameters":{"id":6565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6562,"mutability":"mutable","name":"user","nameLocation":"9885:4:18","nodeType":"VariableDeclaration","scope":6575,"src":"9877:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6561,"name":"address","nodeType":"ElementaryTypeName","src":"9877:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6564,"mutability":"mutable","name":"roles","nameLocation":"9899:5:18","nodeType":"VariableDeclaration","scope":6575,"src":"9891:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6563,"name":"uint256","nodeType":"ElementaryTypeName","src":"9891:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9876:29:18"},"returnParameters":{"id":6568,"nodeType":"ParameterList","parameters":[],"src":"9939:0:18"},"scope":7950,"src":"9856:125:18","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6587,"nodeType":"Block","src":"10188:48:18","statements":[{"expression":{"arguments":[{"expression":{"id":6582,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10211:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10215:6:18","memberName":"sender","nodeType":"MemberAccess","src":"10211:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6584,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6578,"src":"10223:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6581,"name":"_removeRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6497,"src":"10198:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10198:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6586,"nodeType":"ExpressionStatement","src":"10198:31:18"}]},"documentation":{"id":6576,"nodeType":"StructuredDocumentation","src":"9987:135:18","text":"@dev Allow the caller to remove their own roles.\n If the caller does not have a role, then it will be an no-op for the role."},"functionSelector":"183a4f6e","id":6588,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRoles","nameLocation":"10136:13:18","nodeType":"FunctionDefinition","parameters":{"id":6579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6578,"mutability":"mutable","name":"roles","nameLocation":"10158:5:18","nodeType":"VariableDeclaration","scope":6588,"src":"10150:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6577,"name":"uint256","nodeType":"ElementaryTypeName","src":"10150:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10149:15:18"},"returnParameters":{"id":6580,"nodeType":"ParameterList","parameters":[],"src":"10188:0:18"},"scope":7950,"src":"10127:109:18","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6597,"nodeType":"Block","src":"10642:278:18","statements":[{"AST":{"nativeSrc":"10704:210:18","nodeType":"YulBlock","src":"10704:210:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10763:4:18","nodeType":"YulLiteral","src":"10763:4:18","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"10769:15:18","nodeType":"YulIdentifier","src":"10769:15:18"}],"functionName":{"name":"mstore","nativeSrc":"10756:6:18","nodeType":"YulIdentifier","src":"10756:6:18"},"nativeSrc":"10756:29:18","nodeType":"YulFunctionCall","src":"10756:29:18"},"nativeSrc":"10756:29:18","nodeType":"YulExpressionStatement","src":"10756:29:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10805:4:18","nodeType":"YulLiteral","src":"10805:4:18","type":"","value":"0x00"},{"name":"user","nativeSrc":"10811:4:18","nodeType":"YulIdentifier","src":"10811:4:18"}],"functionName":{"name":"mstore","nativeSrc":"10798:6:18","nodeType":"YulIdentifier","src":"10798:6:18"},"nativeSrc":"10798:18:18","nodeType":"YulFunctionCall","src":"10798:18:18"},"nativeSrc":"10798:18:18","nodeType":"YulExpressionStatement","src":"10798:18:18"},{"nativeSrc":"10867:37:18","nodeType":"YulAssignment","src":"10867:37:18","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10892:4:18","nodeType":"YulLiteral","src":"10892:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10898:4:18","nodeType":"YulLiteral","src":"10898:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10882:9:18","nodeType":"YulIdentifier","src":"10882:9:18"},"nativeSrc":"10882:21:18","nodeType":"YulFunctionCall","src":"10882:21:18"}],"functionName":{"name":"sload","nativeSrc":"10876:5:18","nodeType":"YulIdentifier","src":"10876:5:18"},"nativeSrc":"10876:28:18","nodeType":"YulFunctionCall","src":"10876:28:18"},"variableNames":[{"name":"roles","nativeSrc":"10867:5:18","nodeType":"YulIdentifier","src":"10867:5:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6445,"isOffset":false,"isSlot":false,"src":"10769:15:18","valueSize":1},{"declaration":6594,"isOffset":false,"isSlot":false,"src":"10867:5:18","valueSize":1},{"declaration":6591,"isOffset":false,"isSlot":false,"src":"10811:4:18","valueSize":1}],"id":6596,"nodeType":"InlineAssembly","src":"10695:219:18"}]},"documentation":{"id":6589,"nodeType":"StructuredDocumentation","src":"10525:37:18","text":"@dev Returns the roles of `user`."},"functionSelector":"2de94807","id":6598,"implemented":true,"kind":"function","modifiers":[],"name":"rolesOf","nameLocation":"10576:7:18","nodeType":"FunctionDefinition","parameters":{"id":6592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6591,"mutability":"mutable","name":"user","nameLocation":"10592:4:18","nodeType":"VariableDeclaration","scope":6598,"src":"10584:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6590,"name":"address","nodeType":"ElementaryTypeName","src":"10584:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10583:14:18"},"returnParameters":{"id":6595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6594,"mutability":"mutable","name":"roles","nameLocation":"10635:5:18","nodeType":"VariableDeclaration","scope":6598,"src":"10627:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6593,"name":"uint256","nodeType":"ElementaryTypeName","src":"10627:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10626:15:18"},"scope":7950,"src":"10567:353:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6616,"nodeType":"Block","src":"11066:50:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6609,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6601,"src":"11091:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6608,"name":"rolesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6598,"src":"11083:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":6610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11083:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":6611,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6603,"src":"11099:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11083:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11108:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11083:26:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6607,"id":6615,"nodeType":"Return","src":"11076:33:18"}]},"documentation":{"id":6599,"nodeType":"StructuredDocumentation","src":"10926:51:18","text":"@dev Returns whether `user` has any of `roles`."},"functionSelector":"514e62fc","id":6617,"implemented":true,"kind":"function","modifiers":[],"name":"hasAnyRole","nameLocation":"10991:10:18","nodeType":"FunctionDefinition","parameters":{"id":6604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6601,"mutability":"mutable","name":"user","nameLocation":"11010:4:18","nodeType":"VariableDeclaration","scope":6617,"src":"11002:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6600,"name":"address","nodeType":"ElementaryTypeName","src":"11002:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6603,"mutability":"mutable","name":"roles","nameLocation":"11024:5:18","nodeType":"VariableDeclaration","scope":6617,"src":"11016:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6602,"name":"uint256","nodeType":"ElementaryTypeName","src":"11016:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11001:29:18"},"returnParameters":{"id":6607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6617,"src":"11060:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6605,"name":"bool","nodeType":"ElementaryTypeName","src":"11060:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11059:6:18"},"scope":7950,"src":"10982:134:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6635,"nodeType":"Block","src":"11263:54:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6628,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6620,"src":"11288:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6627,"name":"rolesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6598,"src":"11280:7:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":6629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11280:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":6630,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"11296:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11280:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6632,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"11305:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11280:30:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6626,"id":6634,"nodeType":"Return","src":"11273:37:18"}]},"documentation":{"id":6618,"nodeType":"StructuredDocumentation","src":"11122:51:18","text":"@dev Returns whether `user` has all of `roles`."},"functionSelector":"1cd64df4","id":6636,"implemented":true,"kind":"function","modifiers":[],"name":"hasAllRoles","nameLocation":"11187:11:18","nodeType":"FunctionDefinition","parameters":{"id":6623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6620,"mutability":"mutable","name":"user","nameLocation":"11207:4:18","nodeType":"VariableDeclaration","scope":6636,"src":"11199:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6619,"name":"address","nodeType":"ElementaryTypeName","src":"11199:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6622,"mutability":"mutable","name":"roles","nameLocation":"11221:5:18","nodeType":"VariableDeclaration","scope":6636,"src":"11213:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6621,"name":"uint256","nodeType":"ElementaryTypeName","src":"11213:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11198:29:18"},"returnParameters":{"id":6626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6636,"src":"11257:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6624,"name":"bool","nodeType":"ElementaryTypeName","src":"11257:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11256:6:18"},"scope":7950,"src":"11178:139:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6646,"nodeType":"Block","src":"11723:46:18","statements":[{"expression":{"arguments":[{"id":6642,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6639,"src":"11745:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6641,"name":"_checkRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"11733:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11733:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6644,"nodeType":"ExpressionStatement","src":"11733:18:18"},{"id":6645,"nodeType":"PlaceholderStatement","src":"11761:1:18"}]},"documentation":{"id":6637,"nodeType":"StructuredDocumentation","src":"11606:70:18","text":"@dev Marks a function as only callable by an account with `roles`."},"id":6647,"name":"onlyRoles","nameLocation":"11690:9:18","nodeType":"ModifierDefinition","parameters":{"id":6640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6639,"mutability":"mutable","name":"roles","nameLocation":"11708:5:18","nodeType":"VariableDeclaration","scope":6647,"src":"11700:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6638,"name":"uint256","nodeType":"ElementaryTypeName","src":"11700:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11699:15:18"},"src":"11681:88:18","virtual":true,"visibility":"internal"},{"body":{"id":6657,"nodeType":"Block","src":"11981:53:18","statements":[{"expression":{"arguments":[{"id":6653,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6650,"src":"12010:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6652,"name":"_checkOwnerOrRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"11991:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6655,"nodeType":"ExpressionStatement","src":"11991:25:18"},{"id":6656,"nodeType":"PlaceholderStatement","src":"12026:1:18"}]},"documentation":{"id":6648,"nodeType":"StructuredDocumentation","src":"11775:152:18","text":"@dev Marks a function as only callable by the owner or by an account\n with `roles`. Checks for ownership first, then lazily checks for roles."},"id":6658,"name":"onlyOwnerOrRoles","nameLocation":"11941:16:18","nodeType":"ModifierDefinition","parameters":{"id":6651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6650,"mutability":"mutable","name":"roles","nameLocation":"11966:5:18","nodeType":"VariableDeclaration","scope":6658,"src":"11958:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6649,"name":"uint256","nodeType":"ElementaryTypeName","src":"11958:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11957:15:18"},"src":"11932:102:18","virtual":true,"visibility":"internal"},{"body":{"id":6668,"nodeType":"Block","src":"12243:53:18","statements":[{"expression":{"arguments":[{"id":6664,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"12272:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6663,"name":"_checkRolesOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6521,"src":"12253:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12253:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6666,"nodeType":"ExpressionStatement","src":"12253:25:18"},{"id":6667,"nodeType":"PlaceholderStatement","src":"12288:1:18"}]},"documentation":{"id":6659,"nodeType":"StructuredDocumentation","src":"12040:149:18","text":"@dev Marks a function as only callable by an account with `roles`\n or the owner. Checks for roles first, then lazily checks for ownership."},"id":6669,"name":"onlyRolesOrOwner","nameLocation":"12203:16:18","nodeType":"ModifierDefinition","parameters":{"id":6662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6661,"mutability":"mutable","name":"roles","nameLocation":"12228:5:18","nodeType":"VariableDeclaration","scope":6669,"src":"12220:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6660,"name":"uint256","nodeType":"ElementaryTypeName","src":"12220:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12219:15:18"},"src":"12194:102:18","virtual":true,"visibility":"internal"},{"constant":true,"id":6674,"mutability":"constant","name":"_ROLE_0","nameLocation":"12625:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12599:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6670,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"id":6673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12635:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"30","id":6672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12640:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12635:6:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}},"visibility":"internal"},{"constant":true,"id":6679,"mutability":"constant","name":"_ROLE_1","nameLocation":"12673:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12647:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6675,"name":"uint256","nodeType":"ElementaryTypeName","src":"12647:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":6678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12683:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":6677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12688:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12683:6:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"internal"},{"constant":true,"id":6684,"mutability":"constant","name":"_ROLE_2","nameLocation":"12721:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12695:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6680,"name":"uint256","nodeType":"ElementaryTypeName","src":"12695:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":6683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12731:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":6682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12736:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12731:6:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"visibility":"internal"},{"constant":true,"id":6689,"mutability":"constant","name":"_ROLE_3","nameLocation":"12769:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12743:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6685,"name":"uint256","nodeType":"ElementaryTypeName","src":"12743:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"id":6688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12779:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":6687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12784:1:18","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12779:6:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}},"visibility":"internal"},{"constant":true,"id":6694,"mutability":"constant","name":"_ROLE_4","nameLocation":"12817:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12791:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6690,"name":"uint256","nodeType":"ElementaryTypeName","src":"12791:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":6693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12827:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":6692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12832:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12827:6:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"visibility":"internal"},{"constant":true,"id":6699,"mutability":"constant","name":"_ROLE_5","nameLocation":"12865:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12839:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6695,"name":"uint256","nodeType":"ElementaryTypeName","src":"12839:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"id":6698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12875:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":6697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12880:1:18","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"12875:6:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}},"visibility":"internal"},{"constant":true,"id":6704,"mutability":"constant","name":"_ROLE_6","nameLocation":"12913:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12887:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6700,"name":"uint256","nodeType":"ElementaryTypeName","src":"12887:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"id":6703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12923:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"36","id":6702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12928:1:18","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"12923:6:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}},"visibility":"internal"},{"constant":true,"id":6709,"mutability":"constant","name":"_ROLE_7","nameLocation":"12961:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12935:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6705,"name":"uint256","nodeType":"ElementaryTypeName","src":"12935:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"id":6708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12971:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"37","id":6707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12976:1:18","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"12971:6:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}},"visibility":"internal"},{"constant":true,"id":6714,"mutability":"constant","name":"_ROLE_8","nameLocation":"13009:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"12983:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6710,"name":"uint256","nodeType":"ElementaryTypeName","src":"12983:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":6713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13019:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13024:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13019:6:18","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"visibility":"internal"},{"constant":true,"id":6719,"mutability":"constant","name":"_ROLE_9","nameLocation":"13057:7:18","nodeType":"VariableDeclaration","scope":7950,"src":"13031:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6715,"name":"uint256","nodeType":"ElementaryTypeName","src":"13031:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_512_by_1","typeString":"int_const 512"},"id":6718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13067:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"39","id":6717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13072:1:18","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"13067:6:18","typeDescriptions":{"typeIdentifier":"t_rational_512_by_1","typeString":"int_const 512"}},"visibility":"internal"},{"constant":true,"id":6724,"mutability":"constant","name":"_ROLE_10","nameLocation":"13105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6720,"name":"uint256","nodeType":"ElementaryTypeName","src":"13079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"id":6723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3130","id":6722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"13116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}},"visibility":"internal"},{"constant":true,"id":6729,"mutability":"constant","name":"_ROLE_11","nameLocation":"13155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6725,"name":"uint256","nodeType":"ElementaryTypeName","src":"13129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2048_by_1","typeString":"int_const 2048"},"id":6728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3131","id":6727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"13166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2048_by_1","typeString":"int_const 2048"}},"visibility":"internal"},{"constant":true,"id":6734,"mutability":"constant","name":"_ROLE_12","nameLocation":"13205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6730,"name":"uint256","nodeType":"ElementaryTypeName","src":"13179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"},"id":6733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3132","id":6732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"}},"visibility":"internal"},{"constant":true,"id":6739,"mutability":"constant","name":"_ROLE_13","nameLocation":"13255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6735,"name":"uint256","nodeType":"ElementaryTypeName","src":"13229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8192_by_1","typeString":"int_const 8192"},"id":6738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3133","id":6737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"src":"13266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8192_by_1","typeString":"int_const 8192"}},"visibility":"internal"},{"constant":true,"id":6744,"mutability":"constant","name":"_ROLE_14","nameLocation":"13305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6740,"name":"uint256","nodeType":"ElementaryTypeName","src":"13279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16384_by_1","typeString":"int_const 16384"},"id":6743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3134","id":6742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"13316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_16384_by_1","typeString":"int_const 16384"}},"visibility":"internal"},{"constant":true,"id":6749,"mutability":"constant","name":"_ROLE_15","nameLocation":"13355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6745,"name":"uint256","nodeType":"ElementaryTypeName","src":"13329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"id":6748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3135","id":6747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"13366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"}},"visibility":"internal"},{"constant":true,"id":6754,"mutability":"constant","name":"_ROLE_16","nameLocation":"13405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6750,"name":"uint256","nodeType":"ElementaryTypeName","src":"13379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":6753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":6752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"visibility":"internal"},{"constant":true,"id":6759,"mutability":"constant","name":"_ROLE_17","nameLocation":"13455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6755,"name":"uint256","nodeType":"ElementaryTypeName","src":"13429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_131072_by_1","typeString":"int_const 131072"},"id":6758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3137","id":6757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"17"},"src":"13466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_131072_by_1","typeString":"int_const 131072"}},"visibility":"internal"},{"constant":true,"id":6764,"mutability":"constant","name":"_ROLE_18","nameLocation":"13505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6760,"name":"uint256","nodeType":"ElementaryTypeName","src":"13479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_262144_by_1","typeString":"int_const 262144"},"id":6763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3138","id":6762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"13516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_262144_by_1","typeString":"int_const 262144"}},"visibility":"internal"},{"constant":true,"id":6769,"mutability":"constant","name":"_ROLE_19","nameLocation":"13555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6765,"name":"uint256","nodeType":"ElementaryTypeName","src":"13529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_524288_by_1","typeString":"int_const 524288"},"id":6768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3139","id":6767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"src":"13566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_524288_by_1","typeString":"int_const 524288"}},"visibility":"internal"},{"constant":true,"id":6774,"mutability":"constant","name":"_ROLE_20","nameLocation":"13605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6770,"name":"uint256","nodeType":"ElementaryTypeName","src":"13579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1048576_by_1","typeString":"int_const 1048576"},"id":6773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3230","id":6772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"13616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1048576_by_1","typeString":"int_const 1048576"}},"visibility":"internal"},{"constant":true,"id":6779,"mutability":"constant","name":"_ROLE_21","nameLocation":"13655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6775,"name":"uint256","nodeType":"ElementaryTypeName","src":"13629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2097152_by_1","typeString":"int_const 2097152"},"id":6778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3231","id":6777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"21"},"src":"13666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2097152_by_1","typeString":"int_const 2097152"}},"visibility":"internal"},{"constant":true,"id":6784,"mutability":"constant","name":"_ROLE_22","nameLocation":"13705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6780,"name":"uint256","nodeType":"ElementaryTypeName","src":"13679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4194304_by_1","typeString":"int_const 4194304"},"id":6783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3232","id":6782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_22_by_1","typeString":"int_const 22"},"value":"22"},"src":"13716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4194304_by_1","typeString":"int_const 4194304"}},"visibility":"internal"},{"constant":true,"id":6789,"mutability":"constant","name":"_ROLE_23","nameLocation":"13755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6785,"name":"uint256","nodeType":"ElementaryTypeName","src":"13729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8388608_by_1","typeString":"int_const 8388608"},"id":6788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3233","id":6787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"13766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8388608_by_1","typeString":"int_const 8388608"}},"visibility":"internal"},{"constant":true,"id":6794,"mutability":"constant","name":"_ROLE_24","nameLocation":"13805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6790,"name":"uint256","nodeType":"ElementaryTypeName","src":"13779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"},"id":6793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3234","id":6792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"13816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"}},"visibility":"internal"},{"constant":true,"id":6799,"mutability":"constant","name":"_ROLE_25","nameLocation":"13855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6795,"name":"uint256","nodeType":"ElementaryTypeName","src":"13829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_33554432_by_1","typeString":"int_const 33554432"},"id":6798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3235","id":6797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"13866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_33554432_by_1","typeString":"int_const 33554432"}},"visibility":"internal"},{"constant":true,"id":6804,"mutability":"constant","name":"_ROLE_26","nameLocation":"13905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6800,"name":"uint256","nodeType":"ElementaryTypeName","src":"13879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_67108864_by_1","typeString":"int_const 67108864"},"id":6803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3236","id":6802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"13916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_67108864_by_1","typeString":"int_const 67108864"}},"visibility":"internal"},{"constant":true,"id":6809,"mutability":"constant","name":"_ROLE_27","nameLocation":"13955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6805,"name":"uint256","nodeType":"ElementaryTypeName","src":"13929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_134217728_by_1","typeString":"int_const 134217728"},"id":6808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3237","id":6807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"13966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_134217728_by_1","typeString":"int_const 134217728"}},"visibility":"internal"},{"constant":true,"id":6814,"mutability":"constant","name":"_ROLE_28","nameLocation":"14005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"13979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6810,"name":"uint256","nodeType":"ElementaryTypeName","src":"13979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_268435456_by_1","typeString":"int_const 268435456"},"id":6813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3238","id":6812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"14016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_268435456_by_1","typeString":"int_const 268435456"}},"visibility":"internal"},{"constant":true,"id":6819,"mutability":"constant","name":"_ROLE_29","nameLocation":"14055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6815,"name":"uint256","nodeType":"ElementaryTypeName","src":"14029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_536870912_by_1","typeString":"int_const 536870912"},"id":6818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3239","id":6817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_29_by_1","typeString":"int_const 29"},"value":"29"},"src":"14066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_536870912_by_1","typeString":"int_const 536870912"}},"visibility":"internal"},{"constant":true,"id":6824,"mutability":"constant","name":"_ROLE_30","nameLocation":"14105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6820,"name":"uint256","nodeType":"ElementaryTypeName","src":"14079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1073741824_by_1","typeString":"int_const 1073741824"},"id":6823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3330","id":6822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"14116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1073741824_by_1","typeString":"int_const 1073741824"}},"visibility":"internal"},{"constant":true,"id":6829,"mutability":"constant","name":"_ROLE_31","nameLocation":"14155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6825,"name":"uint256","nodeType":"ElementaryTypeName","src":"14129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2147483648_by_1","typeString":"int_const 2147483648"},"id":6828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3331","id":6827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"14166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2147483648_by_1","typeString":"int_const 2147483648"}},"visibility":"internal"},{"constant":true,"id":6834,"mutability":"constant","name":"_ROLE_32","nameLocation":"14205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6830,"name":"uint256","nodeType":"ElementaryTypeName","src":"14179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":6833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":6832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"visibility":"internal"},{"constant":true,"id":6839,"mutability":"constant","name":"_ROLE_33","nameLocation":"14255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6835,"name":"uint256","nodeType":"ElementaryTypeName","src":"14229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8589934592_by_1","typeString":"int_const 8589934592"},"id":6838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3333","id":6837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"33"},"src":"14266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8589934592_by_1","typeString":"int_const 8589934592"}},"visibility":"internal"},{"constant":true,"id":6844,"mutability":"constant","name":"_ROLE_34","nameLocation":"14305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6840,"name":"uint256","nodeType":"ElementaryTypeName","src":"14279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_17179869184_by_1","typeString":"int_const 17179869184"},"id":6843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3334","id":6842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"14316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_17179869184_by_1","typeString":"int_const 17179869184"}},"visibility":"internal"},{"constant":true,"id":6849,"mutability":"constant","name":"_ROLE_35","nameLocation":"14355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6845,"name":"uint256","nodeType":"ElementaryTypeName","src":"14329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_34359738368_by_1","typeString":"int_const 34359738368"},"id":6848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3335","id":6847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_35_by_1","typeString":"int_const 35"},"value":"35"},"src":"14366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_34359738368_by_1","typeString":"int_const 34359738368"}},"visibility":"internal"},{"constant":true,"id":6854,"mutability":"constant","name":"_ROLE_36","nameLocation":"14405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6850,"name":"uint256","nodeType":"ElementaryTypeName","src":"14379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_68719476736_by_1","typeString":"int_const 68719476736"},"id":6853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3336","id":6852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"src":"14416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_68719476736_by_1","typeString":"int_const 68719476736"}},"visibility":"internal"},{"constant":true,"id":6859,"mutability":"constant","name":"_ROLE_37","nameLocation":"14455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6855,"name":"uint256","nodeType":"ElementaryTypeName","src":"14429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_137438953472_by_1","typeString":"int_const 137438953472"},"id":6858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3337","id":6857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_37_by_1","typeString":"int_const 37"},"value":"37"},"src":"14466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_137438953472_by_1","typeString":"int_const 137438953472"}},"visibility":"internal"},{"constant":true,"id":6864,"mutability":"constant","name":"_ROLE_38","nameLocation":"14505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6860,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_274877906944_by_1","typeString":"int_const 274877906944"},"id":6863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3338","id":6862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_38_by_1","typeString":"int_const 38"},"value":"38"},"src":"14516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_274877906944_by_1","typeString":"int_const 274877906944"}},"visibility":"internal"},{"constant":true,"id":6869,"mutability":"constant","name":"_ROLE_39","nameLocation":"14555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6865,"name":"uint256","nodeType":"ElementaryTypeName","src":"14529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_549755813888_by_1","typeString":"int_const 549755813888"},"id":6868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3339","id":6867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_39_by_1","typeString":"int_const 39"},"value":"39"},"src":"14566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_549755813888_by_1","typeString":"int_const 549755813888"}},"visibility":"internal"},{"constant":true,"id":6874,"mutability":"constant","name":"_ROLE_40","nameLocation":"14605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6870,"name":"uint256","nodeType":"ElementaryTypeName","src":"14579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1099511627776_by_1","typeString":"int_const 1099511627776"},"id":6873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3430","id":6872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"14616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1099511627776_by_1","typeString":"int_const 1099511627776"}},"visibility":"internal"},{"constant":true,"id":6879,"mutability":"constant","name":"_ROLE_41","nameLocation":"14655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6875,"name":"uint256","nodeType":"ElementaryTypeName","src":"14629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2199023255552_by_1","typeString":"int_const 2199023255552"},"id":6878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3431","id":6877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"},"src":"14666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2199023255552_by_1","typeString":"int_const 2199023255552"}},"visibility":"internal"},{"constant":true,"id":6884,"mutability":"constant","name":"_ROLE_42","nameLocation":"14705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6880,"name":"uint256","nodeType":"ElementaryTypeName","src":"14679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4398046511104_by_1","typeString":"int_const 4398046511104"},"id":6883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3432","id":6882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"value":"42"},"src":"14716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4398046511104_by_1","typeString":"int_const 4398046511104"}},"visibility":"internal"},{"constant":true,"id":6889,"mutability":"constant","name":"_ROLE_43","nameLocation":"14755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6885,"name":"uint256","nodeType":"ElementaryTypeName","src":"14729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8796093022208_by_1","typeString":"int_const 8796093022208"},"id":6888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3433","id":6887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"},"value":"43"},"src":"14766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_8796093022208_by_1","typeString":"int_const 8796093022208"}},"visibility":"internal"},{"constant":true,"id":6894,"mutability":"constant","name":"_ROLE_44","nameLocation":"14805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6890,"name":"uint256","nodeType":"ElementaryTypeName","src":"14779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_17592186044416_by_1","typeString":"int_const 17592186044416"},"id":6893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3434","id":6892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"src":"14816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_17592186044416_by_1","typeString":"int_const 17592186044416"}},"visibility":"internal"},{"constant":true,"id":6899,"mutability":"constant","name":"_ROLE_45","nameLocation":"14855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6895,"name":"uint256","nodeType":"ElementaryTypeName","src":"14829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_35184372088832_by_1","typeString":"int_const 35184372088832"},"id":6898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3435","id":6897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"},"value":"45"},"src":"14866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_35184372088832_by_1","typeString":"int_const 35184372088832"}},"visibility":"internal"},{"constant":true,"id":6904,"mutability":"constant","name":"_ROLE_46","nameLocation":"14905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6900,"name":"uint256","nodeType":"ElementaryTypeName","src":"14879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_70368744177664_by_1","typeString":"int_const 70368744177664"},"id":6903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3436","id":6902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"},"value":"46"},"src":"14916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_70368744177664_by_1","typeString":"int_const 70368744177664"}},"visibility":"internal"},{"constant":true,"id":6909,"mutability":"constant","name":"_ROLE_47","nameLocation":"14955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6905,"name":"uint256","nodeType":"ElementaryTypeName","src":"14929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_140737488355328_by_1","typeString":"int_const 140737488355328"},"id":6908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3437","id":6907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_47_by_1","typeString":"int_const 47"},"value":"47"},"src":"14966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_140737488355328_by_1","typeString":"int_const 140737488355328"}},"visibility":"internal"},{"constant":true,"id":6914,"mutability":"constant","name":"_ROLE_48","nameLocation":"15005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"14979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6910,"name":"uint256","nodeType":"ElementaryTypeName","src":"14979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_281474976710656_by_1","typeString":"int_const 281474976710656"},"id":6913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3438","id":6912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"src":"15016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_281474976710656_by_1","typeString":"int_const 281474976710656"}},"visibility":"internal"},{"constant":true,"id":6919,"mutability":"constant","name":"_ROLE_49","nameLocation":"15055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6915,"name":"uint256","nodeType":"ElementaryTypeName","src":"15029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_562949953421312_by_1","typeString":"int_const 562949953421312"},"id":6918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3439","id":6917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"src":"15066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_562949953421312_by_1","typeString":"int_const 562949953421312"}},"visibility":"internal"},{"constant":true,"id":6924,"mutability":"constant","name":"_ROLE_50","nameLocation":"15105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6920,"name":"uint256","nodeType":"ElementaryTypeName","src":"15079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1125899906842624_by_1","typeString":"int_const 1125899906842624"},"id":6923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3530","id":6922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"15116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1125899906842624_by_1","typeString":"int_const 1125899906842624"}},"visibility":"internal"},{"constant":true,"id":6929,"mutability":"constant","name":"_ROLE_51","nameLocation":"15155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6925,"name":"uint256","nodeType":"ElementaryTypeName","src":"15129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2251799813685248_by_1","typeString":"int_const 2251799813685248"},"id":6928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3531","id":6927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"15166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2251799813685248_by_1","typeString":"int_const 2251799813685248"}},"visibility":"internal"},{"constant":true,"id":6934,"mutability":"constant","name":"_ROLE_52","nameLocation":"15205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6930,"name":"uint256","nodeType":"ElementaryTypeName","src":"15179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4503599627370496_by_1","typeString":"int_const 4503599627370496"},"id":6933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3532","id":6932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_52_by_1","typeString":"int_const 52"},"value":"52"},"src":"15216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4503599627370496_by_1","typeString":"int_const 4503599627370496"}},"visibility":"internal"},{"constant":true,"id":6939,"mutability":"constant","name":"_ROLE_53","nameLocation":"15255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6935,"name":"uint256","nodeType":"ElementaryTypeName","src":"15229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9007199254740992_by_1","typeString":"int_const 9007199254740992"},"id":6938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3533","id":6937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_53_by_1","typeString":"int_const 53"},"value":"53"},"src":"15266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9007199254740992_by_1","typeString":"int_const 9007199254740992"}},"visibility":"internal"},{"constant":true,"id":6944,"mutability":"constant","name":"_ROLE_54","nameLocation":"15305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6940,"name":"uint256","nodeType":"ElementaryTypeName","src":"15279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18014398509481984_by_1","typeString":"int_const 18014398509481984"},"id":6943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3534","id":6942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_54_by_1","typeString":"int_const 54"},"value":"54"},"src":"15316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_18014398509481984_by_1","typeString":"int_const 18014398509481984"}},"visibility":"internal"},{"constant":true,"id":6949,"mutability":"constant","name":"_ROLE_55","nameLocation":"15355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6945,"name":"uint256","nodeType":"ElementaryTypeName","src":"15329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_36028797018963968_by_1","typeString":"int_const 36028797018963968"},"id":6948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3535","id":6947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_55_by_1","typeString":"int_const 55"},"value":"55"},"src":"15366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_36028797018963968_by_1","typeString":"int_const 36028797018963968"}},"visibility":"internal"},{"constant":true,"id":6954,"mutability":"constant","name":"_ROLE_56","nameLocation":"15405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6950,"name":"uint256","nodeType":"ElementaryTypeName","src":"15379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_72057594037927936_by_1","typeString":"int_const 72057594037927936"},"id":6953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3536","id":6952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"15416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_72057594037927936_by_1","typeString":"int_const 72057594037927936"}},"visibility":"internal"},{"constant":true,"id":6959,"mutability":"constant","name":"_ROLE_57","nameLocation":"15455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6955,"name":"uint256","nodeType":"ElementaryTypeName","src":"15429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_144115188075855872_by_1","typeString":"int_const 144115188075855872"},"id":6958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3537","id":6957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"},"value":"57"},"src":"15466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_144115188075855872_by_1","typeString":"int_const 144115188075855872"}},"visibility":"internal"},{"constant":true,"id":6964,"mutability":"constant","name":"_ROLE_58","nameLocation":"15505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6960,"name":"uint256","nodeType":"ElementaryTypeName","src":"15479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_288230376151711744_by_1","typeString":"int_const 288230376151711744"},"id":6963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3538","id":6962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_58_by_1","typeString":"int_const 58"},"value":"58"},"src":"15516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_288230376151711744_by_1","typeString":"int_const 288230376151711744"}},"visibility":"internal"},{"constant":true,"id":6969,"mutability":"constant","name":"_ROLE_59","nameLocation":"15555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6965,"name":"uint256","nodeType":"ElementaryTypeName","src":"15529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_576460752303423488_by_1","typeString":"int_const 576460752303423488"},"id":6968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3539","id":6967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_59_by_1","typeString":"int_const 59"},"value":"59"},"src":"15566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_576460752303423488_by_1","typeString":"int_const 576460752303423488"}},"visibility":"internal"},{"constant":true,"id":6974,"mutability":"constant","name":"_ROLE_60","nameLocation":"15605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6970,"name":"uint256","nodeType":"ElementaryTypeName","src":"15579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1152921504606846976_by_1","typeString":"int_const 1152921504606846976"},"id":6973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3630","id":6972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"15616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1152921504606846976_by_1","typeString":"int_const 1152921504606846976"}},"visibility":"internal"},{"constant":true,"id":6979,"mutability":"constant","name":"_ROLE_61","nameLocation":"15655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6975,"name":"uint256","nodeType":"ElementaryTypeName","src":"15629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2305843009213693952_by_1","typeString":"int_const 2305843009213693952"},"id":6978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3631","id":6977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_61_by_1","typeString":"int_const 61"},"value":"61"},"src":"15666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2305843009213693952_by_1","typeString":"int_const 2305843009213693952"}},"visibility":"internal"},{"constant":true,"id":6984,"mutability":"constant","name":"_ROLE_62","nameLocation":"15705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6980,"name":"uint256","nodeType":"ElementaryTypeName","src":"15679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4611686018427387904_by_1","typeString":"int_const 4611686018427387904"},"id":6983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3632","id":6982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_62_by_1","typeString":"int_const 62"},"value":"62"},"src":"15716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4611686018427387904_by_1","typeString":"int_const 4611686018427387904"}},"visibility":"internal"},{"constant":true,"id":6989,"mutability":"constant","name":"_ROLE_63","nameLocation":"15755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6985,"name":"uint256","nodeType":"ElementaryTypeName","src":"15729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9223372036854775808_by_1","typeString":"int_const 9223372036854775808"},"id":6988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3633","id":6987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"63"},"src":"15766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9223372036854775808_by_1","typeString":"int_const 9223372036854775808"}},"visibility":"internal"},{"constant":true,"id":6994,"mutability":"constant","name":"_ROLE_64","nameLocation":"15805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6990,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":6993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":6992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"15816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"visibility":"internal"},{"constant":true,"id":6999,"mutability":"constant","name":"_ROLE_65","nameLocation":"15855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6995,"name":"uint256","nodeType":"ElementaryTypeName","src":"15829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_36893488147419103232_by_1","typeString":"int_const 36893488147419103232"},"id":6998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3635","id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"15866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_36893488147419103232_by_1","typeString":"int_const 36893488147419103232"}},"visibility":"internal"},{"constant":true,"id":7004,"mutability":"constant","name":"_ROLE_66","nameLocation":"15905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7000,"name":"uint256","nodeType":"ElementaryTypeName","src":"15879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_73786976294838206464_by_1","typeString":"int_const 73786976294838206464"},"id":7003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3636","id":7002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"15916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_73786976294838206464_by_1","typeString":"int_const 73786976294838206464"}},"visibility":"internal"},{"constant":true,"id":7009,"mutability":"constant","name":"_ROLE_67","nameLocation":"15955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7005,"name":"uint256","nodeType":"ElementaryTypeName","src":"15929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_147573952589676412928_by_1","typeString":"int_const 147573952589676412928"},"id":7008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3637","id":7007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_67_by_1","typeString":"int_const 67"},"value":"67"},"src":"15966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_147573952589676412928_by_1","typeString":"int_const 147573952589676412928"}},"visibility":"internal"},{"constant":true,"id":7014,"mutability":"constant","name":"_ROLE_68","nameLocation":"16005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"15979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7010,"name":"uint256","nodeType":"ElementaryTypeName","src":"15979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_295147905179352825856_by_1","typeString":"int_const 295147905179352825856"},"id":7013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3638","id":7012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"16016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_295147905179352825856_by_1","typeString":"int_const 295147905179352825856"}},"visibility":"internal"},{"constant":true,"id":7019,"mutability":"constant","name":"_ROLE_69","nameLocation":"16055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7015,"name":"uint256","nodeType":"ElementaryTypeName","src":"16029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_590295810358705651712_by_1","typeString":"int_const 590295810358705651712"},"id":7018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3639","id":7017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"value":"69"},"src":"16066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_590295810358705651712_by_1","typeString":"int_const 590295810358705651712"}},"visibility":"internal"},{"constant":true,"id":7024,"mutability":"constant","name":"_ROLE_70","nameLocation":"16105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7020,"name":"uint256","nodeType":"ElementaryTypeName","src":"16079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1180591620717411303424_by_1","typeString":"int_const 1180591620717411303424"},"id":7023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3730","id":7022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"src":"16116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1180591620717411303424_by_1","typeString":"int_const 1180591620717411303424"}},"visibility":"internal"},{"constant":true,"id":7029,"mutability":"constant","name":"_ROLE_71","nameLocation":"16155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7025,"name":"uint256","nodeType":"ElementaryTypeName","src":"16129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2361183241434822606848_by_1","typeString":"int_const 2361183241434822606848"},"id":7028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3731","id":7027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_71_by_1","typeString":"int_const 71"},"value":"71"},"src":"16166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2361183241434822606848_by_1","typeString":"int_const 2361183241434822606848"}},"visibility":"internal"},{"constant":true,"id":7034,"mutability":"constant","name":"_ROLE_72","nameLocation":"16205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7030,"name":"uint256","nodeType":"ElementaryTypeName","src":"16179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4722366482869645213696_by_1","typeString":"int_const 4722366482869645213696"},"id":7033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3732","id":7032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},"src":"16216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4722366482869645213696_by_1","typeString":"int_const 4722366482869645213696"}},"visibility":"internal"},{"constant":true,"id":7039,"mutability":"constant","name":"_ROLE_73","nameLocation":"16255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7035,"name":"uint256","nodeType":"ElementaryTypeName","src":"16229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9444732965739290427392_by_1","typeString":"int_const 9444732965739290427392"},"id":7038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3733","id":7037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"value":"73"},"src":"16266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9444732965739290427392_by_1","typeString":"int_const 9444732965739290427392"}},"visibility":"internal"},{"constant":true,"id":7044,"mutability":"constant","name":"_ROLE_74","nameLocation":"16305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7040,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18889465931478580854784_by_1","typeString":"int_const 18889465931478580854784"},"id":7043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3734","id":7042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_74_by_1","typeString":"int_const 74"},"value":"74"},"src":"16316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_18889465931478580854784_by_1","typeString":"int_const 18889465931478580854784"}},"visibility":"internal"},{"constant":true,"id":7049,"mutability":"constant","name":"_ROLE_75","nameLocation":"16355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7045,"name":"uint256","nodeType":"ElementaryTypeName","src":"16329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_37778931862957161709568_by_1","typeString":"int_const 37778931862957161709568"},"id":7048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3735","id":7047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_75_by_1","typeString":"int_const 75"},"value":"75"},"src":"16366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_37778931862957161709568_by_1","typeString":"int_const 37778931862957161709568"}},"visibility":"internal"},{"constant":true,"id":7054,"mutability":"constant","name":"_ROLE_76","nameLocation":"16405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7050,"name":"uint256","nodeType":"ElementaryTypeName","src":"16379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_75557863725914323419136_by_1","typeString":"int_const 75557863725914323419136"},"id":7053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3736","id":7052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_76_by_1","typeString":"int_const 76"},"value":"76"},"src":"16416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_75557863725914323419136_by_1","typeString":"int_const 75557863725914323419136"}},"visibility":"internal"},{"constant":true,"id":7059,"mutability":"constant","name":"_ROLE_77","nameLocation":"16455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7055,"name":"uint256","nodeType":"ElementaryTypeName","src":"16429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_151115727451828646838272_by_1","typeString":"int_const 151115727451828646838272"},"id":7058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3737","id":7057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_77_by_1","typeString":"int_const 77"},"value":"77"},"src":"16466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_151115727451828646838272_by_1","typeString":"int_const 151115727451828646838272"}},"visibility":"internal"},{"constant":true,"id":7064,"mutability":"constant","name":"_ROLE_78","nameLocation":"16505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7060,"name":"uint256","nodeType":"ElementaryTypeName","src":"16479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_302231454903657293676544_by_1","typeString":"int_const 302231454903657293676544"},"id":7063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3738","id":7062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_78_by_1","typeString":"int_const 78"},"value":"78"},"src":"16516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_302231454903657293676544_by_1","typeString":"int_const 302231454903657293676544"}},"visibility":"internal"},{"constant":true,"id":7069,"mutability":"constant","name":"_ROLE_79","nameLocation":"16555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7065,"name":"uint256","nodeType":"ElementaryTypeName","src":"16529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_604462909807314587353088_by_1","typeString":"int_const 604462909807314587353088"},"id":7068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3739","id":7067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_79_by_1","typeString":"int_const 79"},"value":"79"},"src":"16566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_604462909807314587353088_by_1","typeString":"int_const 604462909807314587353088"}},"visibility":"internal"},{"constant":true,"id":7074,"mutability":"constant","name":"_ROLE_80","nameLocation":"16605:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16579:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7070,"name":"uint256","nodeType":"ElementaryTypeName","src":"16579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1208925819614629174706176_by_1","typeString":"int_const 1208925819614629174706176"},"id":7073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16616:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3830","id":7072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16621:2:18","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},"src":"16616:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1208925819614629174706176_by_1","typeString":"int_const 1208925819614629174706176"}},"visibility":"internal"},{"constant":true,"id":7079,"mutability":"constant","name":"_ROLE_81","nameLocation":"16655:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16629:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7075,"name":"uint256","nodeType":"ElementaryTypeName","src":"16629:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2417851639229258349412352_by_1","typeString":"int_const 2417851639229258349412352"},"id":7078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16666:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3831","id":7077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16671:2:18","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"81"},"src":"16666:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2417851639229258349412352_by_1","typeString":"int_const 2417851639229258349412352"}},"visibility":"internal"},{"constant":true,"id":7084,"mutability":"constant","name":"_ROLE_82","nameLocation":"16705:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16679:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7080,"name":"uint256","nodeType":"ElementaryTypeName","src":"16679:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4835703278458516698824704_by_1","typeString":"int_const 4835703278458516698824704"},"id":7083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3832","id":7082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16721:2:18","typeDescriptions":{"typeIdentifier":"t_rational_82_by_1","typeString":"int_const 82"},"value":"82"},"src":"16716:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4835703278458516698824704_by_1","typeString":"int_const 4835703278458516698824704"}},"visibility":"internal"},{"constant":true,"id":7089,"mutability":"constant","name":"_ROLE_83","nameLocation":"16755:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16729:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7085,"name":"uint256","nodeType":"ElementaryTypeName","src":"16729:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9671406556917033397649408_by_1","typeString":"int_const 9671406556917033397649408"},"id":7088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3833","id":7087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16771:2:18","typeDescriptions":{"typeIdentifier":"t_rational_83_by_1","typeString":"int_const 83"},"value":"83"},"src":"16766:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9671406556917033397649408_by_1","typeString":"int_const 9671406556917033397649408"}},"visibility":"internal"},{"constant":true,"id":7094,"mutability":"constant","name":"_ROLE_84","nameLocation":"16805:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16779:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7090,"name":"uint256","nodeType":"ElementaryTypeName","src":"16779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_19342813113834066795298816_by_1","typeString":"int_const 19342813113834066795298816"},"id":7093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3834","id":7092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16821:2:18","typeDescriptions":{"typeIdentifier":"t_rational_84_by_1","typeString":"int_const 84"},"value":"84"},"src":"16816:7:18","typeDescriptions":{"typeIdentifier":"t_rational_19342813113834066795298816_by_1","typeString":"int_const 19342813113834066795298816"}},"visibility":"internal"},{"constant":true,"id":7099,"mutability":"constant","name":"_ROLE_85","nameLocation":"16855:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16829:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7095,"name":"uint256","nodeType":"ElementaryTypeName","src":"16829:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_38685626227668133590597632_by_1","typeString":"int_const 38685626227668133590597632"},"id":7098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16866:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3835","id":7097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16871:2:18","typeDescriptions":{"typeIdentifier":"t_rational_85_by_1","typeString":"int_const 85"},"value":"85"},"src":"16866:7:18","typeDescriptions":{"typeIdentifier":"t_rational_38685626227668133590597632_by_1","typeString":"int_const 38685626227668133590597632"}},"visibility":"internal"},{"constant":true,"id":7104,"mutability":"constant","name":"_ROLE_86","nameLocation":"16905:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16879:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7100,"name":"uint256","nodeType":"ElementaryTypeName","src":"16879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_77371252455336267181195264_by_1","typeString":"int_const 77371252455336267181195264"},"id":7103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16916:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3836","id":7102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16921:2:18","typeDescriptions":{"typeIdentifier":"t_rational_86_by_1","typeString":"int_const 86"},"value":"86"},"src":"16916:7:18","typeDescriptions":{"typeIdentifier":"t_rational_77371252455336267181195264_by_1","typeString":"int_const 77371252455336267181195264"}},"visibility":"internal"},{"constant":true,"id":7109,"mutability":"constant","name":"_ROLE_87","nameLocation":"16955:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16929:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7105,"name":"uint256","nodeType":"ElementaryTypeName","src":"16929:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_154742504910672534362390528_by_1","typeString":"int_const 154742504910672534362390528"},"id":7108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16966:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3837","id":7107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16971:2:18","typeDescriptions":{"typeIdentifier":"t_rational_87_by_1","typeString":"int_const 87"},"value":"87"},"src":"16966:7:18","typeDescriptions":{"typeIdentifier":"t_rational_154742504910672534362390528_by_1","typeString":"int_const 154742504910672534362390528"}},"visibility":"internal"},{"constant":true,"id":7114,"mutability":"constant","name":"_ROLE_88","nameLocation":"17005:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"16979:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"16979:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_309485009821345068724781056_by_1","typeString":"int_const 309485009821345068724781056"},"id":7113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17016:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3838","id":7112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17021:2:18","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},"src":"17016:7:18","typeDescriptions":{"typeIdentifier":"t_rational_309485009821345068724781056_by_1","typeString":"int_const 309485009821345068724781056"}},"visibility":"internal"},{"constant":true,"id":7119,"mutability":"constant","name":"_ROLE_89","nameLocation":"17055:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17029:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7115,"name":"uint256","nodeType":"ElementaryTypeName","src":"17029:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_618970019642690137449562112_by_1","typeString":"int_const 618970019642690137449562112"},"id":7118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3839","id":7117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17071:2:18","typeDescriptions":{"typeIdentifier":"t_rational_89_by_1","typeString":"int_const 89"},"value":"89"},"src":"17066:7:18","typeDescriptions":{"typeIdentifier":"t_rational_618970019642690137449562112_by_1","typeString":"int_const 618970019642690137449562112"}},"visibility":"internal"},{"constant":true,"id":7124,"mutability":"constant","name":"_ROLE_90","nameLocation":"17105:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17079:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7120,"name":"uint256","nodeType":"ElementaryTypeName","src":"17079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1237940039285380274899124224_by_1","typeString":"int_const 1237940039285380274899124224"},"id":7123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17116:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3930","id":7122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17121:2:18","typeDescriptions":{"typeIdentifier":"t_rational_90_by_1","typeString":"int_const 90"},"value":"90"},"src":"17116:7:18","typeDescriptions":{"typeIdentifier":"t_rational_1237940039285380274899124224_by_1","typeString":"int_const 1237940039285380274899124224"}},"visibility":"internal"},{"constant":true,"id":7129,"mutability":"constant","name":"_ROLE_91","nameLocation":"17155:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17129:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7125,"name":"uint256","nodeType":"ElementaryTypeName","src":"17129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2475880078570760549798248448_by_1","typeString":"int_const 2475880078570760549798248448"},"id":7128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17166:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3931","id":7127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17171:2:18","typeDescriptions":{"typeIdentifier":"t_rational_91_by_1","typeString":"int_const 91"},"value":"91"},"src":"17166:7:18","typeDescriptions":{"typeIdentifier":"t_rational_2475880078570760549798248448_by_1","typeString":"int_const 2475880078570760549798248448"}},"visibility":"internal"},{"constant":true,"id":7134,"mutability":"constant","name":"_ROLE_92","nameLocation":"17205:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17179:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7130,"name":"uint256","nodeType":"ElementaryTypeName","src":"17179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4951760157141521099596496896_by_1","typeString":"int_const 4951760157141521099596496896"},"id":7133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17216:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3932","id":7132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17221:2:18","typeDescriptions":{"typeIdentifier":"t_rational_92_by_1","typeString":"int_const 92"},"value":"92"},"src":"17216:7:18","typeDescriptions":{"typeIdentifier":"t_rational_4951760157141521099596496896_by_1","typeString":"int_const 4951760157141521099596496896"}},"visibility":"internal"},{"constant":true,"id":7139,"mutability":"constant","name":"_ROLE_93","nameLocation":"17255:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17229:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7135,"name":"uint256","nodeType":"ElementaryTypeName","src":"17229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9903520314283042199192993792_by_1","typeString":"int_const 9903520314283042199192993792"},"id":7138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3933","id":7137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17271:2:18","typeDescriptions":{"typeIdentifier":"t_rational_93_by_1","typeString":"int_const 93"},"value":"93"},"src":"17266:7:18","typeDescriptions":{"typeIdentifier":"t_rational_9903520314283042199192993792_by_1","typeString":"int_const 9903520314283042199192993792"}},"visibility":"internal"},{"constant":true,"id":7144,"mutability":"constant","name":"_ROLE_94","nameLocation":"17305:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17279:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7140,"name":"uint256","nodeType":"ElementaryTypeName","src":"17279:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_19807040628566084398385987584_by_1","typeString":"int_const 19807040628566084398385987584"},"id":7143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17316:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3934","id":7142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17321:2:18","typeDescriptions":{"typeIdentifier":"t_rational_94_by_1","typeString":"int_const 94"},"value":"94"},"src":"17316:7:18","typeDescriptions":{"typeIdentifier":"t_rational_19807040628566084398385987584_by_1","typeString":"int_const 19807040628566084398385987584"}},"visibility":"internal"},{"constant":true,"id":7149,"mutability":"constant","name":"_ROLE_95","nameLocation":"17355:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17329:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7145,"name":"uint256","nodeType":"ElementaryTypeName","src":"17329:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"},"id":7148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17366:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3935","id":7147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17371:2:18","typeDescriptions":{"typeIdentifier":"t_rational_95_by_1","typeString":"int_const 95"},"value":"95"},"src":"17366:7:18","typeDescriptions":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"}},"visibility":"internal"},{"constant":true,"id":7154,"mutability":"constant","name":"_ROLE_96","nameLocation":"17405:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17379:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7150,"name":"uint256","nodeType":"ElementaryTypeName","src":"17379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"},"id":7153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17416:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":7152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17421:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"17416:7:18","typeDescriptions":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"}},"visibility":"internal"},{"constant":true,"id":7159,"mutability":"constant","name":"_ROLE_97","nameLocation":"17455:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17429:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7155,"name":"uint256","nodeType":"ElementaryTypeName","src":"17429:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_158456325028528675187087900672_by_1","typeString":"int_const 158456325028528675187087900672"},"id":7158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17466:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3937","id":7157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17471:2:18","typeDescriptions":{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},"value":"97"},"src":"17466:7:18","typeDescriptions":{"typeIdentifier":"t_rational_158456325028528675187087900672_by_1","typeString":"int_const 158456325028528675187087900672"}},"visibility":"internal"},{"constant":true,"id":7164,"mutability":"constant","name":"_ROLE_98","nameLocation":"17505:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17479:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7160,"name":"uint256","nodeType":"ElementaryTypeName","src":"17479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_316912650057057350374175801344_by_1","typeString":"int_const 316912650057057350374175801344"},"id":7163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3938","id":7162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17521:2:18","typeDescriptions":{"typeIdentifier":"t_rational_98_by_1","typeString":"int_const 98"},"value":"98"},"src":"17516:7:18","typeDescriptions":{"typeIdentifier":"t_rational_316912650057057350374175801344_by_1","typeString":"int_const 316912650057057350374175801344"}},"visibility":"internal"},{"constant":true,"id":7169,"mutability":"constant","name":"_ROLE_99","nameLocation":"17555:8:18","nodeType":"VariableDeclaration","scope":7950,"src":"17529:44:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7165,"name":"uint256","nodeType":"ElementaryTypeName","src":"17529:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_633825300114114700748351602688_by_1","typeString":"int_const 633825300114114700748351602688"},"id":7168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17566:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3939","id":7167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17571:2:18","typeDescriptions":{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"},"value":"99"},"src":"17566:7:18","typeDescriptions":{"typeIdentifier":"t_rational_633825300114114700748351602688_by_1","typeString":"int_const 633825300114114700748351602688"}},"visibility":"internal"},{"constant":true,"id":7174,"mutability":"constant","name":"_ROLE_100","nameLocation":"17605:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17579:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7170,"name":"uint256","nodeType":"ElementaryTypeName","src":"17579:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1267650600228229401496703205376_by_1","typeString":"int_const 1267650600228229401496703205376"},"id":7173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17617:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313030","id":7172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17622:3:18","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"17617:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1267650600228229401496703205376_by_1","typeString":"int_const 1267650600228229401496703205376"}},"visibility":"internal"},{"constant":true,"id":7179,"mutability":"constant","name":"_ROLE_101","nameLocation":"17657:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17631:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7175,"name":"uint256","nodeType":"ElementaryTypeName","src":"17631:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2535301200456458802993406410752_by_1","typeString":"int_const 2535301200456458802993406410752"},"id":7178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17669:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313031","id":7177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17674:3:18","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"17669:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2535301200456458802993406410752_by_1","typeString":"int_const 2535301200456458802993406410752"}},"visibility":"internal"},{"constant":true,"id":7184,"mutability":"constant","name":"_ROLE_102","nameLocation":"17709:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17683:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7180,"name":"uint256","nodeType":"ElementaryTypeName","src":"17683:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5070602400912917605986812821504_by_1","typeString":"int_const 5070602400912917605986812821504"},"id":7183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17721:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313032","id":7182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17726:3:18","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"17721:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5070602400912917605986812821504_by_1","typeString":"int_const 5070602400912917605986812821504"}},"visibility":"internal"},{"constant":true,"id":7189,"mutability":"constant","name":"_ROLE_103","nameLocation":"17761:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17735:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7185,"name":"uint256","nodeType":"ElementaryTypeName","src":"17735:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10141204801825835211973625643008_by_1","typeString":"int_const 10141204801825835211973625643008"},"id":7188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17773:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313033","id":7187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17778:3:18","typeDescriptions":{"typeIdentifier":"t_rational_103_by_1","typeString":"int_const 103"},"value":"103"},"src":"17773:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10141204801825835211973625643008_by_1","typeString":"int_const 10141204801825835211973625643008"}},"visibility":"internal"},{"constant":true,"id":7194,"mutability":"constant","name":"_ROLE_104","nameLocation":"17813:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17787:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7190,"name":"uint256","nodeType":"ElementaryTypeName","src":"17787:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_20282409603651670423947251286016_by_1","typeString":"int_const 20282409603651670423947251286016"},"id":7193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17825:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313034","id":7192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17830:3:18","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},"src":"17825:8:18","typeDescriptions":{"typeIdentifier":"t_rational_20282409603651670423947251286016_by_1","typeString":"int_const 20282409603651670423947251286016"}},"visibility":"internal"},{"constant":true,"id":7199,"mutability":"constant","name":"_ROLE_105","nameLocation":"17865:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17839:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7195,"name":"uint256","nodeType":"ElementaryTypeName","src":"17839:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_40564819207303340847894502572032_by_1","typeString":"int_const 40564819207303340847894502572032"},"id":7198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17877:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313035","id":7197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17882:3:18","typeDescriptions":{"typeIdentifier":"t_rational_105_by_1","typeString":"int_const 105"},"value":"105"},"src":"17877:8:18","typeDescriptions":{"typeIdentifier":"t_rational_40564819207303340847894502572032_by_1","typeString":"int_const 40564819207303340847894502572032"}},"visibility":"internal"},{"constant":true,"id":7204,"mutability":"constant","name":"_ROLE_106","nameLocation":"17917:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17891:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7200,"name":"uint256","nodeType":"ElementaryTypeName","src":"17891:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_81129638414606681695789005144064_by_1","typeString":"int_const 81129638414606681695789005144064"},"id":7203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17929:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313036","id":7202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17934:3:18","typeDescriptions":{"typeIdentifier":"t_rational_106_by_1","typeString":"int_const 106"},"value":"106"},"src":"17929:8:18","typeDescriptions":{"typeIdentifier":"t_rational_81129638414606681695789005144064_by_1","typeString":"int_const 81129638414606681695789005144064"}},"visibility":"internal"},{"constant":true,"id":7209,"mutability":"constant","name":"_ROLE_107","nameLocation":"17969:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17943:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7205,"name":"uint256","nodeType":"ElementaryTypeName","src":"17943:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_162259276829213363391578010288128_by_1","typeString":"int_const 1622...(25 digits omitted)...8128"},"id":7208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17981:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313037","id":7207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17986:3:18","typeDescriptions":{"typeIdentifier":"t_rational_107_by_1","typeString":"int_const 107"},"value":"107"},"src":"17981:8:18","typeDescriptions":{"typeIdentifier":"t_rational_162259276829213363391578010288128_by_1","typeString":"int_const 1622...(25 digits omitted)...8128"}},"visibility":"internal"},{"constant":true,"id":7214,"mutability":"constant","name":"_ROLE_108","nameLocation":"18021:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"17995:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7210,"name":"uint256","nodeType":"ElementaryTypeName","src":"17995:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_324518553658426726783156020576256_by_1","typeString":"int_const 3245...(25 digits omitted)...6256"},"id":7213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18033:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313038","id":7212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18038:3:18","typeDescriptions":{"typeIdentifier":"t_rational_108_by_1","typeString":"int_const 108"},"value":"108"},"src":"18033:8:18","typeDescriptions":{"typeIdentifier":"t_rational_324518553658426726783156020576256_by_1","typeString":"int_const 3245...(25 digits omitted)...6256"}},"visibility":"internal"},{"constant":true,"id":7219,"mutability":"constant","name":"_ROLE_109","nameLocation":"18073:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18047:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7215,"name":"uint256","nodeType":"ElementaryTypeName","src":"18047:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_649037107316853453566312041152512_by_1","typeString":"int_const 6490...(25 digits omitted)...2512"},"id":7218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18085:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313039","id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18090:3:18","typeDescriptions":{"typeIdentifier":"t_rational_109_by_1","typeString":"int_const 109"},"value":"109"},"src":"18085:8:18","typeDescriptions":{"typeIdentifier":"t_rational_649037107316853453566312041152512_by_1","typeString":"int_const 6490...(25 digits omitted)...2512"}},"visibility":"internal"},{"constant":true,"id":7224,"mutability":"constant","name":"_ROLE_110","nameLocation":"18125:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18099:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7220,"name":"uint256","nodeType":"ElementaryTypeName","src":"18099:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1298074214633706907132624082305024_by_1","typeString":"int_const 1298...(26 digits omitted)...5024"},"id":7223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18137:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313130","id":7222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18142:3:18","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"},"src":"18137:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1298074214633706907132624082305024_by_1","typeString":"int_const 1298...(26 digits omitted)...5024"}},"visibility":"internal"},{"constant":true,"id":7229,"mutability":"constant","name":"_ROLE_111","nameLocation":"18177:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18151:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7225,"name":"uint256","nodeType":"ElementaryTypeName","src":"18151:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2596148429267413814265248164610048_by_1","typeString":"int_const 2596...(26 digits omitted)...0048"},"id":7228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18189:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313131","id":7227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18194:3:18","typeDescriptions":{"typeIdentifier":"t_rational_111_by_1","typeString":"int_const 111"},"value":"111"},"src":"18189:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2596148429267413814265248164610048_by_1","typeString":"int_const 2596...(26 digits omitted)...0048"}},"visibility":"internal"},{"constant":true,"id":7234,"mutability":"constant","name":"_ROLE_112","nameLocation":"18229:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18203:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7230,"name":"uint256","nodeType":"ElementaryTypeName","src":"18203:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"},"id":7233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18241:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313132","id":7232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18246:3:18","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},"src":"18241:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"}},"visibility":"internal"},{"constant":true,"id":7239,"mutability":"constant","name":"_ROLE_113","nameLocation":"18281:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18255:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7235,"name":"uint256","nodeType":"ElementaryTypeName","src":"18255:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10384593717069655257060992658440192_by_1","typeString":"int_const 1038...(27 digits omitted)...0192"},"id":7238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18293:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313133","id":7237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18298:3:18","typeDescriptions":{"typeIdentifier":"t_rational_113_by_1","typeString":"int_const 113"},"value":"113"},"src":"18293:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10384593717069655257060992658440192_by_1","typeString":"int_const 1038...(27 digits omitted)...0192"}},"visibility":"internal"},{"constant":true,"id":7244,"mutability":"constant","name":"_ROLE_114","nameLocation":"18333:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18307:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7240,"name":"uint256","nodeType":"ElementaryTypeName","src":"18307:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_20769187434139310514121985316880384_by_1","typeString":"int_const 2076...(27 digits omitted)...0384"},"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18345:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313134","id":7242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18350:3:18","typeDescriptions":{"typeIdentifier":"t_rational_114_by_1","typeString":"int_const 114"},"value":"114"},"src":"18345:8:18","typeDescriptions":{"typeIdentifier":"t_rational_20769187434139310514121985316880384_by_1","typeString":"int_const 2076...(27 digits omitted)...0384"}},"visibility":"internal"},{"constant":true,"id":7249,"mutability":"constant","name":"_ROLE_115","nameLocation":"18385:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18359:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7245,"name":"uint256","nodeType":"ElementaryTypeName","src":"18359:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_41538374868278621028243970633760768_by_1","typeString":"int_const 4153...(27 digits omitted)...0768"},"id":7248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18397:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313135","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18402:3:18","typeDescriptions":{"typeIdentifier":"t_rational_115_by_1","typeString":"int_const 115"},"value":"115"},"src":"18397:8:18","typeDescriptions":{"typeIdentifier":"t_rational_41538374868278621028243970633760768_by_1","typeString":"int_const 4153...(27 digits omitted)...0768"}},"visibility":"internal"},{"constant":true,"id":7254,"mutability":"constant","name":"_ROLE_116","nameLocation":"18437:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18411:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7250,"name":"uint256","nodeType":"ElementaryTypeName","src":"18411:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_83076749736557242056487941267521536_by_1","typeString":"int_const 8307...(27 digits omitted)...1536"},"id":7253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18449:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313136","id":7252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18454:3:18","typeDescriptions":{"typeIdentifier":"t_rational_116_by_1","typeString":"int_const 116"},"value":"116"},"src":"18449:8:18","typeDescriptions":{"typeIdentifier":"t_rational_83076749736557242056487941267521536_by_1","typeString":"int_const 8307...(27 digits omitted)...1536"}},"visibility":"internal"},{"constant":true,"id":7259,"mutability":"constant","name":"_ROLE_117","nameLocation":"18489:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18463:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7255,"name":"uint256","nodeType":"ElementaryTypeName","src":"18463:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_166153499473114484112975882535043072_by_1","typeString":"int_const 1661...(28 digits omitted)...3072"},"id":7258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18501:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313137","id":7257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18506:3:18","typeDescriptions":{"typeIdentifier":"t_rational_117_by_1","typeString":"int_const 117"},"value":"117"},"src":"18501:8:18","typeDescriptions":{"typeIdentifier":"t_rational_166153499473114484112975882535043072_by_1","typeString":"int_const 1661...(28 digits omitted)...3072"}},"visibility":"internal"},{"constant":true,"id":7264,"mutability":"constant","name":"_ROLE_118","nameLocation":"18541:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18515:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7260,"name":"uint256","nodeType":"ElementaryTypeName","src":"18515:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_332306998946228968225951765070086144_by_1","typeString":"int_const 3323...(28 digits omitted)...6144"},"id":7263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18553:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313138","id":7262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18558:3:18","typeDescriptions":{"typeIdentifier":"t_rational_118_by_1","typeString":"int_const 118"},"value":"118"},"src":"18553:8:18","typeDescriptions":{"typeIdentifier":"t_rational_332306998946228968225951765070086144_by_1","typeString":"int_const 3323...(28 digits omitted)...6144"}},"visibility":"internal"},{"constant":true,"id":7269,"mutability":"constant","name":"_ROLE_119","nameLocation":"18593:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18567:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7265,"name":"uint256","nodeType":"ElementaryTypeName","src":"18567:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_664613997892457936451903530140172288_by_1","typeString":"int_const 6646...(28 digits omitted)...2288"},"id":7268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18605:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313139","id":7267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18610:3:18","typeDescriptions":{"typeIdentifier":"t_rational_119_by_1","typeString":"int_const 119"},"value":"119"},"src":"18605:8:18","typeDescriptions":{"typeIdentifier":"t_rational_664613997892457936451903530140172288_by_1","typeString":"int_const 6646...(28 digits omitted)...2288"}},"visibility":"internal"},{"constant":true,"id":7274,"mutability":"constant","name":"_ROLE_120","nameLocation":"18645:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18619:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7270,"name":"uint256","nodeType":"ElementaryTypeName","src":"18619:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1329227995784915872903807060280344576_by_1","typeString":"int_const 1329...(29 digits omitted)...4576"},"id":7273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18657:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313230","id":7272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18662:3:18","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"18657:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1329227995784915872903807060280344576_by_1","typeString":"int_const 1329...(29 digits omitted)...4576"}},"visibility":"internal"},{"constant":true,"id":7279,"mutability":"constant","name":"_ROLE_121","nameLocation":"18697:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18671:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7275,"name":"uint256","nodeType":"ElementaryTypeName","src":"18671:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2658455991569831745807614120560689152_by_1","typeString":"int_const 2658...(29 digits omitted)...9152"},"id":7278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18709:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313231","id":7277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18714:3:18","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"src":"18709:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2658455991569831745807614120560689152_by_1","typeString":"int_const 2658...(29 digits omitted)...9152"}},"visibility":"internal"},{"constant":true,"id":7284,"mutability":"constant","name":"_ROLE_122","nameLocation":"18749:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18723:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7280,"name":"uint256","nodeType":"ElementaryTypeName","src":"18723:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5316911983139663491615228241121378304_by_1","typeString":"int_const 5316...(29 digits omitted)...8304"},"id":7283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18761:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313232","id":7282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18766:3:18","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"},"src":"18761:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5316911983139663491615228241121378304_by_1","typeString":"int_const 5316...(29 digits omitted)...8304"}},"visibility":"internal"},{"constant":true,"id":7289,"mutability":"constant","name":"_ROLE_123","nameLocation":"18801:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18775:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7285,"name":"uint256","nodeType":"ElementaryTypeName","src":"18775:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10633823966279326983230456482242756608_by_1","typeString":"int_const 1063...(30 digits omitted)...6608"},"id":7288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18813:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313233","id":7287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18818:3:18","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"src":"18813:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10633823966279326983230456482242756608_by_1","typeString":"int_const 1063...(30 digits omitted)...6608"}},"visibility":"internal"},{"constant":true,"id":7294,"mutability":"constant","name":"_ROLE_124","nameLocation":"18853:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18827:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7290,"name":"uint256","nodeType":"ElementaryTypeName","src":"18827:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_21267647932558653966460912964485513216_by_1","typeString":"int_const 2126...(30 digits omitted)...3216"},"id":7293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18865:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313234","id":7292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18870:3:18","typeDescriptions":{"typeIdentifier":"t_rational_124_by_1","typeString":"int_const 124"},"value":"124"},"src":"18865:8:18","typeDescriptions":{"typeIdentifier":"t_rational_21267647932558653966460912964485513216_by_1","typeString":"int_const 2126...(30 digits omitted)...3216"}},"visibility":"internal"},{"constant":true,"id":7299,"mutability":"constant","name":"_ROLE_125","nameLocation":"18905:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18879:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7295,"name":"uint256","nodeType":"ElementaryTypeName","src":"18879:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_42535295865117307932921825928971026432_by_1","typeString":"int_const 4253...(30 digits omitted)...6432"},"id":7298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18917:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313235","id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18922:3:18","typeDescriptions":{"typeIdentifier":"t_rational_125_by_1","typeString":"int_const 125"},"value":"125"},"src":"18917:8:18","typeDescriptions":{"typeIdentifier":"t_rational_42535295865117307932921825928971026432_by_1","typeString":"int_const 4253...(30 digits omitted)...6432"}},"visibility":"internal"},{"constant":true,"id":7304,"mutability":"constant","name":"_ROLE_126","nameLocation":"18957:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18931:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7300,"name":"uint256","nodeType":"ElementaryTypeName","src":"18931:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_85070591730234615865843651857942052864_by_1","typeString":"int_const 8507...(30 digits omitted)...2864"},"id":7303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18969:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313236","id":7302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18974:3:18","typeDescriptions":{"typeIdentifier":"t_rational_126_by_1","typeString":"int_const 126"},"value":"126"},"src":"18969:8:18","typeDescriptions":{"typeIdentifier":"t_rational_85070591730234615865843651857942052864_by_1","typeString":"int_const 8507...(30 digits omitted)...2864"}},"visibility":"internal"},{"constant":true,"id":7309,"mutability":"constant","name":"_ROLE_127","nameLocation":"19009:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"18983:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7305,"name":"uint256","nodeType":"ElementaryTypeName","src":"18983:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"id":7308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19021:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313237","id":7307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19026:3:18","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"src":"19021:8:18","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"}},"visibility":"internal"},{"constant":true,"id":7314,"mutability":"constant","name":"_ROLE_128","nameLocation":"19061:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19035:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7310,"name":"uint256","nodeType":"ElementaryTypeName","src":"19035:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":7313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19073:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":7312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19078:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"19073:8:18","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"internal"},{"constant":true,"id":7319,"mutability":"constant","name":"_ROLE_129","nameLocation":"19113:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19087:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7315,"name":"uint256","nodeType":"ElementaryTypeName","src":"19087:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_680564733841876926926749214863536422912_by_1","typeString":"int_const 6805...(31 digits omitted)...2912"},"id":7318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19125:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313239","id":7317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19130:3:18","typeDescriptions":{"typeIdentifier":"t_rational_129_by_1","typeString":"int_const 129"},"value":"129"},"src":"19125:8:18","typeDescriptions":{"typeIdentifier":"t_rational_680564733841876926926749214863536422912_by_1","typeString":"int_const 6805...(31 digits omitted)...2912"}},"visibility":"internal"},{"constant":true,"id":7324,"mutability":"constant","name":"_ROLE_130","nameLocation":"19165:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19139:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7320,"name":"uint256","nodeType":"ElementaryTypeName","src":"19139:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1361129467683753853853498429727072845824_by_1","typeString":"int_const 1361...(32 digits omitted)...5824"},"id":7323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19177:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313330","id":7322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19182:3:18","typeDescriptions":{"typeIdentifier":"t_rational_130_by_1","typeString":"int_const 130"},"value":"130"},"src":"19177:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1361129467683753853853498429727072845824_by_1","typeString":"int_const 1361...(32 digits omitted)...5824"}},"visibility":"internal"},{"constant":true,"id":7329,"mutability":"constant","name":"_ROLE_131","nameLocation":"19217:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19191:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7325,"name":"uint256","nodeType":"ElementaryTypeName","src":"19191:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2722258935367507707706996859454145691648_by_1","typeString":"int_const 2722...(32 digits omitted)...1648"},"id":7328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19229:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313331","id":7327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19234:3:18","typeDescriptions":{"typeIdentifier":"t_rational_131_by_1","typeString":"int_const 131"},"value":"131"},"src":"19229:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2722258935367507707706996859454145691648_by_1","typeString":"int_const 2722...(32 digits omitted)...1648"}},"visibility":"internal"},{"constant":true,"id":7334,"mutability":"constant","name":"_ROLE_132","nameLocation":"19269:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19243:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7330,"name":"uint256","nodeType":"ElementaryTypeName","src":"19243:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5444517870735015415413993718908291383296_by_1","typeString":"int_const 5444...(32 digits omitted)...3296"},"id":7333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19281:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313332","id":7332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19286:3:18","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"132"},"src":"19281:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5444517870735015415413993718908291383296_by_1","typeString":"int_const 5444...(32 digits omitted)...3296"}},"visibility":"internal"},{"constant":true,"id":7339,"mutability":"constant","name":"_ROLE_133","nameLocation":"19321:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19295:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7335,"name":"uint256","nodeType":"ElementaryTypeName","src":"19295:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10889035741470030830827987437816582766592_by_1","typeString":"int_const 1088...(33 digits omitted)...6592"},"id":7338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19333:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313333","id":7337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19338:3:18","typeDescriptions":{"typeIdentifier":"t_rational_133_by_1","typeString":"int_const 133"},"value":"133"},"src":"19333:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10889035741470030830827987437816582766592_by_1","typeString":"int_const 1088...(33 digits omitted)...6592"}},"visibility":"internal"},{"constant":true,"id":7344,"mutability":"constant","name":"_ROLE_134","nameLocation":"19373:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19347:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7340,"name":"uint256","nodeType":"ElementaryTypeName","src":"19347:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_21778071482940061661655974875633165533184_by_1","typeString":"int_const 2177...(33 digits omitted)...3184"},"id":7343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19385:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313334","id":7342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19390:3:18","typeDescriptions":{"typeIdentifier":"t_rational_134_by_1","typeString":"int_const 134"},"value":"134"},"src":"19385:8:18","typeDescriptions":{"typeIdentifier":"t_rational_21778071482940061661655974875633165533184_by_1","typeString":"int_const 2177...(33 digits omitted)...3184"}},"visibility":"internal"},{"constant":true,"id":7349,"mutability":"constant","name":"_ROLE_135","nameLocation":"19425:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19399:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7345,"name":"uint256","nodeType":"ElementaryTypeName","src":"19399:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_43556142965880123323311949751266331066368_by_1","typeString":"int_const 4355...(33 digits omitted)...6368"},"id":7348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19437:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313335","id":7347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19442:3:18","typeDescriptions":{"typeIdentifier":"t_rational_135_by_1","typeString":"int_const 135"},"value":"135"},"src":"19437:8:18","typeDescriptions":{"typeIdentifier":"t_rational_43556142965880123323311949751266331066368_by_1","typeString":"int_const 4355...(33 digits omitted)...6368"}},"visibility":"internal"},{"constant":true,"id":7354,"mutability":"constant","name":"_ROLE_136","nameLocation":"19477:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19451:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7350,"name":"uint256","nodeType":"ElementaryTypeName","src":"19451:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_87112285931760246646623899502532662132736_by_1","typeString":"int_const 8711...(33 digits omitted)...2736"},"id":7353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19489:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313336","id":7352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19494:3:18","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},"src":"19489:8:18","typeDescriptions":{"typeIdentifier":"t_rational_87112285931760246646623899502532662132736_by_1","typeString":"int_const 8711...(33 digits omitted)...2736"}},"visibility":"internal"},{"constant":true,"id":7359,"mutability":"constant","name":"_ROLE_137","nameLocation":"19529:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19503:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7355,"name":"uint256","nodeType":"ElementaryTypeName","src":"19503:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_174224571863520493293247799005065324265472_by_1","typeString":"int_const 1742...(34 digits omitted)...5472"},"id":7358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19541:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313337","id":7357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19546:3:18","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},"src":"19541:8:18","typeDescriptions":{"typeIdentifier":"t_rational_174224571863520493293247799005065324265472_by_1","typeString":"int_const 1742...(34 digits omitted)...5472"}},"visibility":"internal"},{"constant":true,"id":7364,"mutability":"constant","name":"_ROLE_138","nameLocation":"19581:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19555:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7360,"name":"uint256","nodeType":"ElementaryTypeName","src":"19555:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_348449143727040986586495598010130648530944_by_1","typeString":"int_const 3484...(34 digits omitted)...0944"},"id":7363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19593:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313338","id":7362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19598:3:18","typeDescriptions":{"typeIdentifier":"t_rational_138_by_1","typeString":"int_const 138"},"value":"138"},"src":"19593:8:18","typeDescriptions":{"typeIdentifier":"t_rational_348449143727040986586495598010130648530944_by_1","typeString":"int_const 3484...(34 digits omitted)...0944"}},"visibility":"internal"},{"constant":true,"id":7369,"mutability":"constant","name":"_ROLE_139","nameLocation":"19633:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19607:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7365,"name":"uint256","nodeType":"ElementaryTypeName","src":"19607:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_696898287454081973172991196020261297061888_by_1","typeString":"int_const 6968...(34 digits omitted)...1888"},"id":7368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19645:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313339","id":7367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19650:3:18","typeDescriptions":{"typeIdentifier":"t_rational_139_by_1","typeString":"int_const 139"},"value":"139"},"src":"19645:8:18","typeDescriptions":{"typeIdentifier":"t_rational_696898287454081973172991196020261297061888_by_1","typeString":"int_const 6968...(34 digits omitted)...1888"}},"visibility":"internal"},{"constant":true,"id":7374,"mutability":"constant","name":"_ROLE_140","nameLocation":"19685:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19659:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7370,"name":"uint256","nodeType":"ElementaryTypeName","src":"19659:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1393796574908163946345982392040522594123776_by_1","typeString":"int_const 1393...(35 digits omitted)...3776"},"id":7373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313430","id":7372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19702:3:18","typeDescriptions":{"typeIdentifier":"t_rational_140_by_1","typeString":"int_const 140"},"value":"140"},"src":"19697:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1393796574908163946345982392040522594123776_by_1","typeString":"int_const 1393...(35 digits omitted)...3776"}},"visibility":"internal"},{"constant":true,"id":7379,"mutability":"constant","name":"_ROLE_141","nameLocation":"19737:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19711:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7375,"name":"uint256","nodeType":"ElementaryTypeName","src":"19711:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2787593149816327892691964784081045188247552_by_1","typeString":"int_const 2787...(35 digits omitted)...7552"},"id":7378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19749:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313431","id":7377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19754:3:18","typeDescriptions":{"typeIdentifier":"t_rational_141_by_1","typeString":"int_const 141"},"value":"141"},"src":"19749:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2787593149816327892691964784081045188247552_by_1","typeString":"int_const 2787...(35 digits omitted)...7552"}},"visibility":"internal"},{"constant":true,"id":7384,"mutability":"constant","name":"_ROLE_142","nameLocation":"19789:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19763:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7380,"name":"uint256","nodeType":"ElementaryTypeName","src":"19763:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5575186299632655785383929568162090376495104_by_1","typeString":"int_const 5575...(35 digits omitted)...5104"},"id":7383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19801:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313432","id":7382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19806:3:18","typeDescriptions":{"typeIdentifier":"t_rational_142_by_1","typeString":"int_const 142"},"value":"142"},"src":"19801:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5575186299632655785383929568162090376495104_by_1","typeString":"int_const 5575...(35 digits omitted)...5104"}},"visibility":"internal"},{"constant":true,"id":7389,"mutability":"constant","name":"_ROLE_143","nameLocation":"19841:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19815:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7385,"name":"uint256","nodeType":"ElementaryTypeName","src":"19815:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11150372599265311570767859136324180752990208_by_1","typeString":"int_const 1115...(36 digits omitted)...0208"},"id":7388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19853:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313433","id":7387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19858:3:18","typeDescriptions":{"typeIdentifier":"t_rational_143_by_1","typeString":"int_const 143"},"value":"143"},"src":"19853:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11150372599265311570767859136324180752990208_by_1","typeString":"int_const 1115...(36 digits omitted)...0208"}},"visibility":"internal"},{"constant":true,"id":7394,"mutability":"constant","name":"_ROLE_144","nameLocation":"19893:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19867:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7390,"name":"uint256","nodeType":"ElementaryTypeName","src":"19867:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_22300745198530623141535718272648361505980416_by_1","typeString":"int_const 2230...(36 digits omitted)...0416"},"id":7393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19905:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313434","id":7392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19910:3:18","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},"src":"19905:8:18","typeDescriptions":{"typeIdentifier":"t_rational_22300745198530623141535718272648361505980416_by_1","typeString":"int_const 2230...(36 digits omitted)...0416"}},"visibility":"internal"},{"constant":true,"id":7399,"mutability":"constant","name":"_ROLE_145","nameLocation":"19945:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19919:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7395,"name":"uint256","nodeType":"ElementaryTypeName","src":"19919:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_44601490397061246283071436545296723011960832_by_1","typeString":"int_const 4460...(36 digits omitted)...0832"},"id":7398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19957:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313435","id":7397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19962:3:18","typeDescriptions":{"typeIdentifier":"t_rational_145_by_1","typeString":"int_const 145"},"value":"145"},"src":"19957:8:18","typeDescriptions":{"typeIdentifier":"t_rational_44601490397061246283071436545296723011960832_by_1","typeString":"int_const 4460...(36 digits omitted)...0832"}},"visibility":"internal"},{"constant":true,"id":7404,"mutability":"constant","name":"_ROLE_146","nameLocation":"19997:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"19971:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7400,"name":"uint256","nodeType":"ElementaryTypeName","src":"19971:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_89202980794122492566142873090593446023921664_by_1","typeString":"int_const 8920...(36 digits omitted)...1664"},"id":7403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20009:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313436","id":7402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20014:3:18","typeDescriptions":{"typeIdentifier":"t_rational_146_by_1","typeString":"int_const 146"},"value":"146"},"src":"20009:8:18","typeDescriptions":{"typeIdentifier":"t_rational_89202980794122492566142873090593446023921664_by_1","typeString":"int_const 8920...(36 digits omitted)...1664"}},"visibility":"internal"},{"constant":true,"id":7409,"mutability":"constant","name":"_ROLE_147","nameLocation":"20049:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20023:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7405,"name":"uint256","nodeType":"ElementaryTypeName","src":"20023:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_178405961588244985132285746181186892047843328_by_1","typeString":"int_const 1784...(37 digits omitted)...3328"},"id":7408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20061:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313437","id":7407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20066:3:18","typeDescriptions":{"typeIdentifier":"t_rational_147_by_1","typeString":"int_const 147"},"value":"147"},"src":"20061:8:18","typeDescriptions":{"typeIdentifier":"t_rational_178405961588244985132285746181186892047843328_by_1","typeString":"int_const 1784...(37 digits omitted)...3328"}},"visibility":"internal"},{"constant":true,"id":7414,"mutability":"constant","name":"_ROLE_148","nameLocation":"20101:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20075:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7410,"name":"uint256","nodeType":"ElementaryTypeName","src":"20075:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_356811923176489970264571492362373784095686656_by_1","typeString":"int_const 3568...(37 digits omitted)...6656"},"id":7413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20113:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313438","id":7412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20118:3:18","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"148"},"src":"20113:8:18","typeDescriptions":{"typeIdentifier":"t_rational_356811923176489970264571492362373784095686656_by_1","typeString":"int_const 3568...(37 digits omitted)...6656"}},"visibility":"internal"},{"constant":true,"id":7419,"mutability":"constant","name":"_ROLE_149","nameLocation":"20153:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20127:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7415,"name":"uint256","nodeType":"ElementaryTypeName","src":"20127:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_713623846352979940529142984724747568191373312_by_1","typeString":"int_const 7136...(37 digits omitted)...3312"},"id":7418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20165:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313439","id":7417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20170:3:18","typeDescriptions":{"typeIdentifier":"t_rational_149_by_1","typeString":"int_const 149"},"value":"149"},"src":"20165:8:18","typeDescriptions":{"typeIdentifier":"t_rational_713623846352979940529142984724747568191373312_by_1","typeString":"int_const 7136...(37 digits omitted)...3312"}},"visibility":"internal"},{"constant":true,"id":7424,"mutability":"constant","name":"_ROLE_150","nameLocation":"20205:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20179:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7420,"name":"uint256","nodeType":"ElementaryTypeName","src":"20179:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1427247692705959881058285969449495136382746624_by_1","typeString":"int_const 1427...(38 digits omitted)...6624"},"id":7423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20217:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313530","id":7422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20222:3:18","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},"src":"20217:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1427247692705959881058285969449495136382746624_by_1","typeString":"int_const 1427...(38 digits omitted)...6624"}},"visibility":"internal"},{"constant":true,"id":7429,"mutability":"constant","name":"_ROLE_151","nameLocation":"20257:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20231:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7425,"name":"uint256","nodeType":"ElementaryTypeName","src":"20231:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2854495385411919762116571938898990272765493248_by_1","typeString":"int_const 2854...(38 digits omitted)...3248"},"id":7428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20269:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313531","id":7427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20274:3:18","typeDescriptions":{"typeIdentifier":"t_rational_151_by_1","typeString":"int_const 151"},"value":"151"},"src":"20269:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2854495385411919762116571938898990272765493248_by_1","typeString":"int_const 2854...(38 digits omitted)...3248"}},"visibility":"internal"},{"constant":true,"id":7434,"mutability":"constant","name":"_ROLE_152","nameLocation":"20309:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20283:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7430,"name":"uint256","nodeType":"ElementaryTypeName","src":"20283:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5708990770823839524233143877797980545530986496_by_1","typeString":"int_const 5708...(38 digits omitted)...6496"},"id":7433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20321:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313532","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20326:3:18","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},"src":"20321:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5708990770823839524233143877797980545530986496_by_1","typeString":"int_const 5708...(38 digits omitted)...6496"}},"visibility":"internal"},{"constant":true,"id":7439,"mutability":"constant","name":"_ROLE_153","nameLocation":"20361:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20335:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7435,"name":"uint256","nodeType":"ElementaryTypeName","src":"20335:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11417981541647679048466287755595961091061972992_by_1","typeString":"int_const 1141...(39 digits omitted)...2992"},"id":7438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20373:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313533","id":7437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20378:3:18","typeDescriptions":{"typeIdentifier":"t_rational_153_by_1","typeString":"int_const 153"},"value":"153"},"src":"20373:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11417981541647679048466287755595961091061972992_by_1","typeString":"int_const 1141...(39 digits omitted)...2992"}},"visibility":"internal"},{"constant":true,"id":7444,"mutability":"constant","name":"_ROLE_154","nameLocation":"20413:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20387:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7440,"name":"uint256","nodeType":"ElementaryTypeName","src":"20387:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_22835963083295358096932575511191922182123945984_by_1","typeString":"int_const 2283...(39 digits omitted)...5984"},"id":7443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20425:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313534","id":7442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20430:3:18","typeDescriptions":{"typeIdentifier":"t_rational_154_by_1","typeString":"int_const 154"},"value":"154"},"src":"20425:8:18","typeDescriptions":{"typeIdentifier":"t_rational_22835963083295358096932575511191922182123945984_by_1","typeString":"int_const 2283...(39 digits omitted)...5984"}},"visibility":"internal"},{"constant":true,"id":7449,"mutability":"constant","name":"_ROLE_155","nameLocation":"20465:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20439:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7445,"name":"uint256","nodeType":"ElementaryTypeName","src":"20439:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_45671926166590716193865151022383844364247891968_by_1","typeString":"int_const 4567...(39 digits omitted)...1968"},"id":7448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20477:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313535","id":7447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20482:3:18","typeDescriptions":{"typeIdentifier":"t_rational_155_by_1","typeString":"int_const 155"},"value":"155"},"src":"20477:8:18","typeDescriptions":{"typeIdentifier":"t_rational_45671926166590716193865151022383844364247891968_by_1","typeString":"int_const 4567...(39 digits omitted)...1968"}},"visibility":"internal"},{"constant":true,"id":7454,"mutability":"constant","name":"_ROLE_156","nameLocation":"20517:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20491:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7450,"name":"uint256","nodeType":"ElementaryTypeName","src":"20491:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_91343852333181432387730302044767688728495783936_by_1","typeString":"int_const 9134...(39 digits omitted)...3936"},"id":7453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20529:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313536","id":7452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20534:3:18","typeDescriptions":{"typeIdentifier":"t_rational_156_by_1","typeString":"int_const 156"},"value":"156"},"src":"20529:8:18","typeDescriptions":{"typeIdentifier":"t_rational_91343852333181432387730302044767688728495783936_by_1","typeString":"int_const 9134...(39 digits omitted)...3936"}},"visibility":"internal"},{"constant":true,"id":7459,"mutability":"constant","name":"_ROLE_157","nameLocation":"20569:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20543:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7455,"name":"uint256","nodeType":"ElementaryTypeName","src":"20543:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_182687704666362864775460604089535377456991567872_by_1","typeString":"int_const 1826...(40 digits omitted)...7872"},"id":7458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20581:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313537","id":7457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20586:3:18","typeDescriptions":{"typeIdentifier":"t_rational_157_by_1","typeString":"int_const 157"},"value":"157"},"src":"20581:8:18","typeDescriptions":{"typeIdentifier":"t_rational_182687704666362864775460604089535377456991567872_by_1","typeString":"int_const 1826...(40 digits omitted)...7872"}},"visibility":"internal"},{"constant":true,"id":7464,"mutability":"constant","name":"_ROLE_158","nameLocation":"20621:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20595:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7460,"name":"uint256","nodeType":"ElementaryTypeName","src":"20595:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_365375409332725729550921208179070754913983135744_by_1","typeString":"int_const 3653...(40 digits omitted)...5744"},"id":7463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20633:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313538","id":7462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20638:3:18","typeDescriptions":{"typeIdentifier":"t_rational_158_by_1","typeString":"int_const 158"},"value":"158"},"src":"20633:8:18","typeDescriptions":{"typeIdentifier":"t_rational_365375409332725729550921208179070754913983135744_by_1","typeString":"int_const 3653...(40 digits omitted)...5744"}},"visibility":"internal"},{"constant":true,"id":7469,"mutability":"constant","name":"_ROLE_159","nameLocation":"20673:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20647:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7465,"name":"uint256","nodeType":"ElementaryTypeName","src":"20647:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_730750818665451459101842416358141509827966271488_by_1","typeString":"int_const 7307...(40 digits omitted)...1488"},"id":7468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20685:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313539","id":7467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20690:3:18","typeDescriptions":{"typeIdentifier":"t_rational_159_by_1","typeString":"int_const 159"},"value":"159"},"src":"20685:8:18","typeDescriptions":{"typeIdentifier":"t_rational_730750818665451459101842416358141509827966271488_by_1","typeString":"int_const 7307...(40 digits omitted)...1488"}},"visibility":"internal"},{"constant":true,"id":7474,"mutability":"constant","name":"_ROLE_160","nameLocation":"20725:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20699:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7470,"name":"uint256","nodeType":"ElementaryTypeName","src":"20699:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542976_by_1","typeString":"int_const 1461...(41 digits omitted)...2976"},"id":7473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20737:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313630","id":7472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20742:3:18","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"src":"20737:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542976_by_1","typeString":"int_const 1461...(41 digits omitted)...2976"}},"visibility":"internal"},{"constant":true,"id":7479,"mutability":"constant","name":"_ROLE_161","nameLocation":"20777:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20751:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7475,"name":"uint256","nodeType":"ElementaryTypeName","src":"20751:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2923003274661805836407369665432566039311865085952_by_1","typeString":"int_const 2923...(41 digits omitted)...5952"},"id":7478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20789:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313631","id":7477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20794:3:18","typeDescriptions":{"typeIdentifier":"t_rational_161_by_1","typeString":"int_const 161"},"value":"161"},"src":"20789:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2923003274661805836407369665432566039311865085952_by_1","typeString":"int_const 2923...(41 digits omitted)...5952"}},"visibility":"internal"},{"constant":true,"id":7484,"mutability":"constant","name":"_ROLE_162","nameLocation":"20829:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20803:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7480,"name":"uint256","nodeType":"ElementaryTypeName","src":"20803:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5846006549323611672814739330865132078623730171904_by_1","typeString":"int_const 5846...(41 digits omitted)...1904"},"id":7483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20841:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313632","id":7482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20846:3:18","typeDescriptions":{"typeIdentifier":"t_rational_162_by_1","typeString":"int_const 162"},"value":"162"},"src":"20841:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5846006549323611672814739330865132078623730171904_by_1","typeString":"int_const 5846...(41 digits omitted)...1904"}},"visibility":"internal"},{"constant":true,"id":7489,"mutability":"constant","name":"_ROLE_163","nameLocation":"20881:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20855:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7485,"name":"uint256","nodeType":"ElementaryTypeName","src":"20855:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11692013098647223345629478661730264157247460343808_by_1","typeString":"int_const 1169...(42 digits omitted)...3808"},"id":7488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20893:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313633","id":7487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20898:3:18","typeDescriptions":{"typeIdentifier":"t_rational_163_by_1","typeString":"int_const 163"},"value":"163"},"src":"20893:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11692013098647223345629478661730264157247460343808_by_1","typeString":"int_const 1169...(42 digits omitted)...3808"}},"visibility":"internal"},{"constant":true,"id":7494,"mutability":"constant","name":"_ROLE_164","nameLocation":"20933:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20907:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7490,"name":"uint256","nodeType":"ElementaryTypeName","src":"20907:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_23384026197294446691258957323460528314494920687616_by_1","typeString":"int_const 2338...(42 digits omitted)...7616"},"id":7493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20945:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313634","id":7492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20950:3:18","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"164"},"src":"20945:8:18","typeDescriptions":{"typeIdentifier":"t_rational_23384026197294446691258957323460528314494920687616_by_1","typeString":"int_const 2338...(42 digits omitted)...7616"}},"visibility":"internal"},{"constant":true,"id":7499,"mutability":"constant","name":"_ROLE_165","nameLocation":"20985:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"20959:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7495,"name":"uint256","nodeType":"ElementaryTypeName","src":"20959:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_46768052394588893382517914646921056628989841375232_by_1","typeString":"int_const 4676...(42 digits omitted)...5232"},"id":7498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20997:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313635","id":7497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21002:3:18","typeDescriptions":{"typeIdentifier":"t_rational_165_by_1","typeString":"int_const 165"},"value":"165"},"src":"20997:8:18","typeDescriptions":{"typeIdentifier":"t_rational_46768052394588893382517914646921056628989841375232_by_1","typeString":"int_const 4676...(42 digits omitted)...5232"}},"visibility":"internal"},{"constant":true,"id":7504,"mutability":"constant","name":"_ROLE_166","nameLocation":"21037:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21011:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7500,"name":"uint256","nodeType":"ElementaryTypeName","src":"21011:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_93536104789177786765035829293842113257979682750464_by_1","typeString":"int_const 9353...(42 digits omitted)...0464"},"id":7503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21049:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313636","id":7502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21054:3:18","typeDescriptions":{"typeIdentifier":"t_rational_166_by_1","typeString":"int_const 166"},"value":"166"},"src":"21049:8:18","typeDescriptions":{"typeIdentifier":"t_rational_93536104789177786765035829293842113257979682750464_by_1","typeString":"int_const 9353...(42 digits omitted)...0464"}},"visibility":"internal"},{"constant":true,"id":7509,"mutability":"constant","name":"_ROLE_167","nameLocation":"21089:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21063:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7505,"name":"uint256","nodeType":"ElementaryTypeName","src":"21063:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_187072209578355573530071658587684226515959365500928_by_1","typeString":"int_const 1870...(43 digits omitted)...0928"},"id":7508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21101:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313637","id":7507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21106:3:18","typeDescriptions":{"typeIdentifier":"t_rational_167_by_1","typeString":"int_const 167"},"value":"167"},"src":"21101:8:18","typeDescriptions":{"typeIdentifier":"t_rational_187072209578355573530071658587684226515959365500928_by_1","typeString":"int_const 1870...(43 digits omitted)...0928"}},"visibility":"internal"},{"constant":true,"id":7514,"mutability":"constant","name":"_ROLE_168","nameLocation":"21141:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21115:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7510,"name":"uint256","nodeType":"ElementaryTypeName","src":"21115:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_374144419156711147060143317175368453031918731001856_by_1","typeString":"int_const 3741...(43 digits omitted)...1856"},"id":7513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21153:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313638","id":7512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21158:3:18","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},"src":"21153:8:18","typeDescriptions":{"typeIdentifier":"t_rational_374144419156711147060143317175368453031918731001856_by_1","typeString":"int_const 3741...(43 digits omitted)...1856"}},"visibility":"internal"},{"constant":true,"id":7519,"mutability":"constant","name":"_ROLE_169","nameLocation":"21193:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21167:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7515,"name":"uint256","nodeType":"ElementaryTypeName","src":"21167:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_748288838313422294120286634350736906063837462003712_by_1","typeString":"int_const 7482...(43 digits omitted)...3712"},"id":7518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21205:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313639","id":7517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21210:3:18","typeDescriptions":{"typeIdentifier":"t_rational_169_by_1","typeString":"int_const 169"},"value":"169"},"src":"21205:8:18","typeDescriptions":{"typeIdentifier":"t_rational_748288838313422294120286634350736906063837462003712_by_1","typeString":"int_const 7482...(43 digits omitted)...3712"}},"visibility":"internal"},{"constant":true,"id":7524,"mutability":"constant","name":"_ROLE_170","nameLocation":"21245:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21219:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7520,"name":"uint256","nodeType":"ElementaryTypeName","src":"21219:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1496577676626844588240573268701473812127674924007424_by_1","typeString":"int_const 1496...(44 digits omitted)...7424"},"id":7523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21257:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313730","id":7522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21262:3:18","typeDescriptions":{"typeIdentifier":"t_rational_170_by_1","typeString":"int_const 170"},"value":"170"},"src":"21257:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1496577676626844588240573268701473812127674924007424_by_1","typeString":"int_const 1496...(44 digits omitted)...7424"}},"visibility":"internal"},{"constant":true,"id":7529,"mutability":"constant","name":"_ROLE_171","nameLocation":"21297:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21271:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7525,"name":"uint256","nodeType":"ElementaryTypeName","src":"21271:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2993155353253689176481146537402947624255349848014848_by_1","typeString":"int_const 2993...(44 digits omitted)...4848"},"id":7528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21309:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313731","id":7527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21314:3:18","typeDescriptions":{"typeIdentifier":"t_rational_171_by_1","typeString":"int_const 171"},"value":"171"},"src":"21309:8:18","typeDescriptions":{"typeIdentifier":"t_rational_2993155353253689176481146537402947624255349848014848_by_1","typeString":"int_const 2993...(44 digits omitted)...4848"}},"visibility":"internal"},{"constant":true,"id":7534,"mutability":"constant","name":"_ROLE_172","nameLocation":"21349:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21323:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7530,"name":"uint256","nodeType":"ElementaryTypeName","src":"21323:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5986310706507378352962293074805895248510699696029696_by_1","typeString":"int_const 5986...(44 digits omitted)...9696"},"id":7533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21361:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313732","id":7532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21366:3:18","typeDescriptions":{"typeIdentifier":"t_rational_172_by_1","typeString":"int_const 172"},"value":"172"},"src":"21361:8:18","typeDescriptions":{"typeIdentifier":"t_rational_5986310706507378352962293074805895248510699696029696_by_1","typeString":"int_const 5986...(44 digits omitted)...9696"}},"visibility":"internal"},{"constant":true,"id":7539,"mutability":"constant","name":"_ROLE_173","nameLocation":"21401:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21375:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7535,"name":"uint256","nodeType":"ElementaryTypeName","src":"21375:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11972621413014756705924586149611790497021399392059392_by_1","typeString":"int_const 1197...(45 digits omitted)...9392"},"id":7538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21413:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313733","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21418:3:18","typeDescriptions":{"typeIdentifier":"t_rational_173_by_1","typeString":"int_const 173"},"value":"173"},"src":"21413:8:18","typeDescriptions":{"typeIdentifier":"t_rational_11972621413014756705924586149611790497021399392059392_by_1","typeString":"int_const 1197...(45 digits omitted)...9392"}},"visibility":"internal"},{"constant":true,"id":7544,"mutability":"constant","name":"_ROLE_174","nameLocation":"21453:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21427:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7540,"name":"uint256","nodeType":"ElementaryTypeName","src":"21427:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_23945242826029513411849172299223580994042798784118784_by_1","typeString":"int_const 2394...(45 digits omitted)...8784"},"id":7543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21465:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313734","id":7542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21470:3:18","typeDescriptions":{"typeIdentifier":"t_rational_174_by_1","typeString":"int_const 174"},"value":"174"},"src":"21465:8:18","typeDescriptions":{"typeIdentifier":"t_rational_23945242826029513411849172299223580994042798784118784_by_1","typeString":"int_const 2394...(45 digits omitted)...8784"}},"visibility":"internal"},{"constant":true,"id":7549,"mutability":"constant","name":"_ROLE_175","nameLocation":"21505:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21479:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7545,"name":"uint256","nodeType":"ElementaryTypeName","src":"21479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_47890485652059026823698344598447161988085597568237568_by_1","typeString":"int_const 4789...(45 digits omitted)...7568"},"id":7548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21517:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313735","id":7547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21522:3:18","typeDescriptions":{"typeIdentifier":"t_rational_175_by_1","typeString":"int_const 175"},"value":"175"},"src":"21517:8:18","typeDescriptions":{"typeIdentifier":"t_rational_47890485652059026823698344598447161988085597568237568_by_1","typeString":"int_const 4789...(45 digits omitted)...7568"}},"visibility":"internal"},{"constant":true,"id":7554,"mutability":"constant","name":"_ROLE_176","nameLocation":"21557:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21531:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7550,"name":"uint256","nodeType":"ElementaryTypeName","src":"21531:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_95780971304118053647396689196894323976171195136475136_by_1","typeString":"int_const 9578...(45 digits omitted)...5136"},"id":7553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21569:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313736","id":7552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21574:3:18","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},"src":"21569:8:18","typeDescriptions":{"typeIdentifier":"t_rational_95780971304118053647396689196894323976171195136475136_by_1","typeString":"int_const 9578...(45 digits omitted)...5136"}},"visibility":"internal"},{"constant":true,"id":7559,"mutability":"constant","name":"_ROLE_177","nameLocation":"21609:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21583:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7555,"name":"uint256","nodeType":"ElementaryTypeName","src":"21583:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_191561942608236107294793378393788647952342390272950272_by_1","typeString":"int_const 1915...(46 digits omitted)...0272"},"id":7558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21621:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313737","id":7557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21626:3:18","typeDescriptions":{"typeIdentifier":"t_rational_177_by_1","typeString":"int_const 177"},"value":"177"},"src":"21621:8:18","typeDescriptions":{"typeIdentifier":"t_rational_191561942608236107294793378393788647952342390272950272_by_1","typeString":"int_const 1915...(46 digits omitted)...0272"}},"visibility":"internal"},{"constant":true,"id":7564,"mutability":"constant","name":"_ROLE_178","nameLocation":"21661:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21635:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7560,"name":"uint256","nodeType":"ElementaryTypeName","src":"21635:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_383123885216472214589586756787577295904684780545900544_by_1","typeString":"int_const 3831...(46 digits omitted)...0544"},"id":7563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21673:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313738","id":7562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21678:3:18","typeDescriptions":{"typeIdentifier":"t_rational_178_by_1","typeString":"int_const 178"},"value":"178"},"src":"21673:8:18","typeDescriptions":{"typeIdentifier":"t_rational_383123885216472214589586756787577295904684780545900544_by_1","typeString":"int_const 3831...(46 digits omitted)...0544"}},"visibility":"internal"},{"constant":true,"id":7569,"mutability":"constant","name":"_ROLE_179","nameLocation":"21713:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21687:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7565,"name":"uint256","nodeType":"ElementaryTypeName","src":"21687:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_766247770432944429179173513575154591809369561091801088_by_1","typeString":"int_const 7662...(46 digits omitted)...1088"},"id":7568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21725:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313739","id":7567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21730:3:18","typeDescriptions":{"typeIdentifier":"t_rational_179_by_1","typeString":"int_const 179"},"value":"179"},"src":"21725:8:18","typeDescriptions":{"typeIdentifier":"t_rational_766247770432944429179173513575154591809369561091801088_by_1","typeString":"int_const 7662...(46 digits omitted)...1088"}},"visibility":"internal"},{"constant":true,"id":7574,"mutability":"constant","name":"_ROLE_180","nameLocation":"21765:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21739:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7570,"name":"uint256","nodeType":"ElementaryTypeName","src":"21739:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1532495540865888858358347027150309183618739122183602176_by_1","typeString":"int_const 1532...(47 digits omitted)...2176"},"id":7573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21777:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313830","id":7572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21782:3:18","typeDescriptions":{"typeIdentifier":"t_rational_180_by_1","typeString":"int_const 180"},"value":"180"},"src":"21777:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1532495540865888858358347027150309183618739122183602176_by_1","typeString":"int_const 1532...(47 digits omitted)...2176"}},"visibility":"internal"},{"constant":true,"id":7579,"mutability":"constant","name":"_ROLE_181","nameLocation":"21817:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21791:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7575,"name":"uint256","nodeType":"ElementaryTypeName","src":"21791:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3064991081731777716716694054300618367237478244367204352_by_1","typeString":"int_const 3064...(47 digits omitted)...4352"},"id":7578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21829:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313831","id":7577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21834:3:18","typeDescriptions":{"typeIdentifier":"t_rational_181_by_1","typeString":"int_const 181"},"value":"181"},"src":"21829:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3064991081731777716716694054300618367237478244367204352_by_1","typeString":"int_const 3064...(47 digits omitted)...4352"}},"visibility":"internal"},{"constant":true,"id":7584,"mutability":"constant","name":"_ROLE_182","nameLocation":"21869:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21843:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7580,"name":"uint256","nodeType":"ElementaryTypeName","src":"21843:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6129982163463555433433388108601236734474956488734408704_by_1","typeString":"int_const 6129...(47 digits omitted)...8704"},"id":7583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21881:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313832","id":7582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21886:3:18","typeDescriptions":{"typeIdentifier":"t_rational_182_by_1","typeString":"int_const 182"},"value":"182"},"src":"21881:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6129982163463555433433388108601236734474956488734408704_by_1","typeString":"int_const 6129...(47 digits omitted)...8704"}},"visibility":"internal"},{"constant":true,"id":7589,"mutability":"constant","name":"_ROLE_183","nameLocation":"21921:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21895:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7585,"name":"uint256","nodeType":"ElementaryTypeName","src":"21895:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12259964326927110866866776217202473468949912977468817408_by_1","typeString":"int_const 1225...(48 digits omitted)...7408"},"id":7588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21933:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313833","id":7587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21938:3:18","typeDescriptions":{"typeIdentifier":"t_rational_183_by_1","typeString":"int_const 183"},"value":"183"},"src":"21933:8:18","typeDescriptions":{"typeIdentifier":"t_rational_12259964326927110866866776217202473468949912977468817408_by_1","typeString":"int_const 1225...(48 digits omitted)...7408"}},"visibility":"internal"},{"constant":true,"id":7594,"mutability":"constant","name":"_ROLE_184","nameLocation":"21973:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21947:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7590,"name":"uint256","nodeType":"ElementaryTypeName","src":"21947:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_24519928653854221733733552434404946937899825954937634816_by_1","typeString":"int_const 2451...(48 digits omitted)...4816"},"id":7593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21985:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313834","id":7592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21990:3:18","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},"src":"21985:8:18","typeDescriptions":{"typeIdentifier":"t_rational_24519928653854221733733552434404946937899825954937634816_by_1","typeString":"int_const 2451...(48 digits omitted)...4816"}},"visibility":"internal"},{"constant":true,"id":7599,"mutability":"constant","name":"_ROLE_185","nameLocation":"22025:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"21999:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7595,"name":"uint256","nodeType":"ElementaryTypeName","src":"21999:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_49039857307708443467467104868809893875799651909875269632_by_1","typeString":"int_const 4903...(48 digits omitted)...9632"},"id":7598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22037:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313835","id":7597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22042:3:18","typeDescriptions":{"typeIdentifier":"t_rational_185_by_1","typeString":"int_const 185"},"value":"185"},"src":"22037:8:18","typeDescriptions":{"typeIdentifier":"t_rational_49039857307708443467467104868809893875799651909875269632_by_1","typeString":"int_const 4903...(48 digits omitted)...9632"}},"visibility":"internal"},{"constant":true,"id":7604,"mutability":"constant","name":"_ROLE_186","nameLocation":"22077:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22051:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7600,"name":"uint256","nodeType":"ElementaryTypeName","src":"22051:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_98079714615416886934934209737619787751599303819750539264_by_1","typeString":"int_const 9807...(48 digits omitted)...9264"},"id":7603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22089:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313836","id":7602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22094:3:18","typeDescriptions":{"typeIdentifier":"t_rational_186_by_1","typeString":"int_const 186"},"value":"186"},"src":"22089:8:18","typeDescriptions":{"typeIdentifier":"t_rational_98079714615416886934934209737619787751599303819750539264_by_1","typeString":"int_const 9807...(48 digits omitted)...9264"}},"visibility":"internal"},{"constant":true,"id":7609,"mutability":"constant","name":"_ROLE_187","nameLocation":"22129:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22103:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7605,"name":"uint256","nodeType":"ElementaryTypeName","src":"22103:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_196159429230833773869868419475239575503198607639501078528_by_1","typeString":"int_const 1961...(49 digits omitted)...8528"},"id":7608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22141:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313837","id":7607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22146:3:18","typeDescriptions":{"typeIdentifier":"t_rational_187_by_1","typeString":"int_const 187"},"value":"187"},"src":"22141:8:18","typeDescriptions":{"typeIdentifier":"t_rational_196159429230833773869868419475239575503198607639501078528_by_1","typeString":"int_const 1961...(49 digits omitted)...8528"}},"visibility":"internal"},{"constant":true,"id":7614,"mutability":"constant","name":"_ROLE_188","nameLocation":"22181:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22155:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7610,"name":"uint256","nodeType":"ElementaryTypeName","src":"22155:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_392318858461667547739736838950479151006397215279002157056_by_1","typeString":"int_const 3923...(49 digits omitted)...7056"},"id":7613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22193:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313838","id":7612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:3:18","typeDescriptions":{"typeIdentifier":"t_rational_188_by_1","typeString":"int_const 188"},"value":"188"},"src":"22193:8:18","typeDescriptions":{"typeIdentifier":"t_rational_392318858461667547739736838950479151006397215279002157056_by_1","typeString":"int_const 3923...(49 digits omitted)...7056"}},"visibility":"internal"},{"constant":true,"id":7619,"mutability":"constant","name":"_ROLE_189","nameLocation":"22233:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22207:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7615,"name":"uint256","nodeType":"ElementaryTypeName","src":"22207:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_784637716923335095479473677900958302012794430558004314112_by_1","typeString":"int_const 7846...(49 digits omitted)...4112"},"id":7618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313839","id":7617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22250:3:18","typeDescriptions":{"typeIdentifier":"t_rational_189_by_1","typeString":"int_const 189"},"value":"189"},"src":"22245:8:18","typeDescriptions":{"typeIdentifier":"t_rational_784637716923335095479473677900958302012794430558004314112_by_1","typeString":"int_const 7846...(49 digits omitted)...4112"}},"visibility":"internal"},{"constant":true,"id":7624,"mutability":"constant","name":"_ROLE_190","nameLocation":"22285:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22259:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7620,"name":"uint256","nodeType":"ElementaryTypeName","src":"22259:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1569275433846670190958947355801916604025588861116008628224_by_1","typeString":"int_const 1569...(50 digits omitted)...8224"},"id":7623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22297:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313930","id":7622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22302:3:18","typeDescriptions":{"typeIdentifier":"t_rational_190_by_1","typeString":"int_const 190"},"value":"190"},"src":"22297:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1569275433846670190958947355801916604025588861116008628224_by_1","typeString":"int_const 1569...(50 digits omitted)...8224"}},"visibility":"internal"},{"constant":true,"id":7629,"mutability":"constant","name":"_ROLE_191","nameLocation":"22337:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22311:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7625,"name":"uint256","nodeType":"ElementaryTypeName","src":"22311:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3138550867693340381917894711603833208051177722232017256448_by_1","typeString":"int_const 3138...(50 digits omitted)...6448"},"id":7628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22349:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313931","id":7627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22354:3:18","typeDescriptions":{"typeIdentifier":"t_rational_191_by_1","typeString":"int_const 191"},"value":"191"},"src":"22349:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3138550867693340381917894711603833208051177722232017256448_by_1","typeString":"int_const 3138...(50 digits omitted)...6448"}},"visibility":"internal"},{"constant":true,"id":7634,"mutability":"constant","name":"_ROLE_192","nameLocation":"22389:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22363:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7630,"name":"uint256","nodeType":"ElementaryTypeName","src":"22363:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"},"id":7633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22401:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":7632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22406:3:18","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"22401:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"}},"visibility":"internal"},{"constant":true,"id":7639,"mutability":"constant","name":"_ROLE_193","nameLocation":"22441:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22415:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7635,"name":"uint256","nodeType":"ElementaryTypeName","src":"22415:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12554203470773361527671578846415332832204710888928069025792_by_1","typeString":"int_const 1255...(51 digits omitted)...5792"},"id":7638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22453:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313933","id":7637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:3:18","typeDescriptions":{"typeIdentifier":"t_rational_193_by_1","typeString":"int_const 193"},"value":"193"},"src":"22453:8:18","typeDescriptions":{"typeIdentifier":"t_rational_12554203470773361527671578846415332832204710888928069025792_by_1","typeString":"int_const 1255...(51 digits omitted)...5792"}},"visibility":"internal"},{"constant":true,"id":7644,"mutability":"constant","name":"_ROLE_194","nameLocation":"22493:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22467:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7640,"name":"uint256","nodeType":"ElementaryTypeName","src":"22467:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_25108406941546723055343157692830665664409421777856138051584_by_1","typeString":"int_const 2510...(51 digits omitted)...1584"},"id":7643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22505:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313934","id":7642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22510:3:18","typeDescriptions":{"typeIdentifier":"t_rational_194_by_1","typeString":"int_const 194"},"value":"194"},"src":"22505:8:18","typeDescriptions":{"typeIdentifier":"t_rational_25108406941546723055343157692830665664409421777856138051584_by_1","typeString":"int_const 2510...(51 digits omitted)...1584"}},"visibility":"internal"},{"constant":true,"id":7649,"mutability":"constant","name":"_ROLE_195","nameLocation":"22545:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22519:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7645,"name":"uint256","nodeType":"ElementaryTypeName","src":"22519:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_50216813883093446110686315385661331328818843555712276103168_by_1","typeString":"int_const 5021...(51 digits omitted)...3168"},"id":7648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22557:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313935","id":7647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22562:3:18","typeDescriptions":{"typeIdentifier":"t_rational_195_by_1","typeString":"int_const 195"},"value":"195"},"src":"22557:8:18","typeDescriptions":{"typeIdentifier":"t_rational_50216813883093446110686315385661331328818843555712276103168_by_1","typeString":"int_const 5021...(51 digits omitted)...3168"}},"visibility":"internal"},{"constant":true,"id":7654,"mutability":"constant","name":"_ROLE_196","nameLocation":"22597:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22571:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7650,"name":"uint256","nodeType":"ElementaryTypeName","src":"22571:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_100433627766186892221372630771322662657637687111424552206336_by_1","typeString":"int_const 1004...(52 digits omitted)...6336"},"id":7653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22609:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313936","id":7652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22614:3:18","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"196"},"src":"22609:8:18","typeDescriptions":{"typeIdentifier":"t_rational_100433627766186892221372630771322662657637687111424552206336_by_1","typeString":"int_const 1004...(52 digits omitted)...6336"}},"visibility":"internal"},{"constant":true,"id":7659,"mutability":"constant","name":"_ROLE_197","nameLocation":"22649:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22623:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7655,"name":"uint256","nodeType":"ElementaryTypeName","src":"22623:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_200867255532373784442745261542645325315275374222849104412672_by_1","typeString":"int_const 2008...(52 digits omitted)...2672"},"id":7658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22661:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313937","id":7657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22666:3:18","typeDescriptions":{"typeIdentifier":"t_rational_197_by_1","typeString":"int_const 197"},"value":"197"},"src":"22661:8:18","typeDescriptions":{"typeIdentifier":"t_rational_200867255532373784442745261542645325315275374222849104412672_by_1","typeString":"int_const 2008...(52 digits omitted)...2672"}},"visibility":"internal"},{"constant":true,"id":7664,"mutability":"constant","name":"_ROLE_198","nameLocation":"22701:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22675:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7660,"name":"uint256","nodeType":"ElementaryTypeName","src":"22675:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_401734511064747568885490523085290650630550748445698208825344_by_1","typeString":"int_const 4017...(52 digits omitted)...5344"},"id":7663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22713:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313938","id":7662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22718:3:18","typeDescriptions":{"typeIdentifier":"t_rational_198_by_1","typeString":"int_const 198"},"value":"198"},"src":"22713:8:18","typeDescriptions":{"typeIdentifier":"t_rational_401734511064747568885490523085290650630550748445698208825344_by_1","typeString":"int_const 4017...(52 digits omitted)...5344"}},"visibility":"internal"},{"constant":true,"id":7669,"mutability":"constant","name":"_ROLE_199","nameLocation":"22753:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22727:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7665,"name":"uint256","nodeType":"ElementaryTypeName","src":"22727:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_803469022129495137770981046170581301261101496891396417650688_by_1","typeString":"int_const 8034...(52 digits omitted)...0688"},"id":7668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22765:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313939","id":7667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22770:3:18","typeDescriptions":{"typeIdentifier":"t_rational_199_by_1","typeString":"int_const 199"},"value":"199"},"src":"22765:8:18","typeDescriptions":{"typeIdentifier":"t_rational_803469022129495137770981046170581301261101496891396417650688_by_1","typeString":"int_const 8034...(52 digits omitted)...0688"}},"visibility":"internal"},{"constant":true,"id":7674,"mutability":"constant","name":"_ROLE_200","nameLocation":"22805:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22779:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7670,"name":"uint256","nodeType":"ElementaryTypeName","src":"22779:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1606938044258990275541962092341162602522202993782792835301376_by_1","typeString":"int_const 1606...(53 digits omitted)...1376"},"id":7673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22817:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323030","id":7672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22822:3:18","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"22817:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1606938044258990275541962092341162602522202993782792835301376_by_1","typeString":"int_const 1606...(53 digits omitted)...1376"}},"visibility":"internal"},{"constant":true,"id":7679,"mutability":"constant","name":"_ROLE_201","nameLocation":"22857:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22831:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7675,"name":"uint256","nodeType":"ElementaryTypeName","src":"22831:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3213876088517980551083924184682325205044405987565585670602752_by_1","typeString":"int_const 3213...(53 digits omitted)...2752"},"id":7678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22869:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323031","id":7677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22874:3:18","typeDescriptions":{"typeIdentifier":"t_rational_201_by_1","typeString":"int_const 201"},"value":"201"},"src":"22869:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3213876088517980551083924184682325205044405987565585670602752_by_1","typeString":"int_const 3213...(53 digits omitted)...2752"}},"visibility":"internal"},{"constant":true,"id":7684,"mutability":"constant","name":"_ROLE_202","nameLocation":"22909:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22883:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7680,"name":"uint256","nodeType":"ElementaryTypeName","src":"22883:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6427752177035961102167848369364650410088811975131171341205504_by_1","typeString":"int_const 6427...(53 digits omitted)...5504"},"id":7683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22921:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323032","id":7682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:3:18","typeDescriptions":{"typeIdentifier":"t_rational_202_by_1","typeString":"int_const 202"},"value":"202"},"src":"22921:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6427752177035961102167848369364650410088811975131171341205504_by_1","typeString":"int_const 6427...(53 digits omitted)...5504"}},"visibility":"internal"},{"constant":true,"id":7689,"mutability":"constant","name":"_ROLE_203","nameLocation":"22961:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22935:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7685,"name":"uint256","nodeType":"ElementaryTypeName","src":"22935:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12855504354071922204335696738729300820177623950262342682411008_by_1","typeString":"int_const 1285...(54 digits omitted)...1008"},"id":7688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22973:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323033","id":7687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22978:3:18","typeDescriptions":{"typeIdentifier":"t_rational_203_by_1","typeString":"int_const 203"},"value":"203"},"src":"22973:8:18","typeDescriptions":{"typeIdentifier":"t_rational_12855504354071922204335696738729300820177623950262342682411008_by_1","typeString":"int_const 1285...(54 digits omitted)...1008"}},"visibility":"internal"},{"constant":true,"id":7694,"mutability":"constant","name":"_ROLE_204","nameLocation":"23013:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"22987:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7690,"name":"uint256","nodeType":"ElementaryTypeName","src":"22987:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_25711008708143844408671393477458601640355247900524685364822016_by_1","typeString":"int_const 2571...(54 digits omitted)...2016"},"id":7693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23025:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323034","id":7692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23030:3:18","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},"src":"23025:8:18","typeDescriptions":{"typeIdentifier":"t_rational_25711008708143844408671393477458601640355247900524685364822016_by_1","typeString":"int_const 2571...(54 digits omitted)...2016"}},"visibility":"internal"},{"constant":true,"id":7699,"mutability":"constant","name":"_ROLE_205","nameLocation":"23065:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23039:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7695,"name":"uint256","nodeType":"ElementaryTypeName","src":"23039:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_51422017416287688817342786954917203280710495801049370729644032_by_1","typeString":"int_const 5142...(54 digits omitted)...4032"},"id":7698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23077:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323035","id":7697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23082:3:18","typeDescriptions":{"typeIdentifier":"t_rational_205_by_1","typeString":"int_const 205"},"value":"205"},"src":"23077:8:18","typeDescriptions":{"typeIdentifier":"t_rational_51422017416287688817342786954917203280710495801049370729644032_by_1","typeString":"int_const 5142...(54 digits omitted)...4032"}},"visibility":"internal"},{"constant":true,"id":7704,"mutability":"constant","name":"_ROLE_206","nameLocation":"23117:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23091:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7700,"name":"uint256","nodeType":"ElementaryTypeName","src":"23091:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_102844034832575377634685573909834406561420991602098741459288064_by_1","typeString":"int_const 1028...(55 digits omitted)...8064"},"id":7703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23129:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323036","id":7702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23134:3:18","typeDescriptions":{"typeIdentifier":"t_rational_206_by_1","typeString":"int_const 206"},"value":"206"},"src":"23129:8:18","typeDescriptions":{"typeIdentifier":"t_rational_102844034832575377634685573909834406561420991602098741459288064_by_1","typeString":"int_const 1028...(55 digits omitted)...8064"}},"visibility":"internal"},{"constant":true,"id":7709,"mutability":"constant","name":"_ROLE_207","nameLocation":"23169:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23143:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7705,"name":"uint256","nodeType":"ElementaryTypeName","src":"23143:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_205688069665150755269371147819668813122841983204197482918576128_by_1","typeString":"int_const 2056...(55 digits omitted)...6128"},"id":7708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23181:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323037","id":7707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23186:3:18","typeDescriptions":{"typeIdentifier":"t_rational_207_by_1","typeString":"int_const 207"},"value":"207"},"src":"23181:8:18","typeDescriptions":{"typeIdentifier":"t_rational_205688069665150755269371147819668813122841983204197482918576128_by_1","typeString":"int_const 2056...(55 digits omitted)...6128"}},"visibility":"internal"},{"constant":true,"id":7714,"mutability":"constant","name":"_ROLE_208","nameLocation":"23221:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23195:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7710,"name":"uint256","nodeType":"ElementaryTypeName","src":"23195:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_411376139330301510538742295639337626245683966408394965837152256_by_1","typeString":"int_const 4113...(55 digits omitted)...2256"},"id":7713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323038","id":7712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23238:3:18","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},"src":"23233:8:18","typeDescriptions":{"typeIdentifier":"t_rational_411376139330301510538742295639337626245683966408394965837152256_by_1","typeString":"int_const 4113...(55 digits omitted)...2256"}},"visibility":"internal"},{"constant":true,"id":7719,"mutability":"constant","name":"_ROLE_209","nameLocation":"23273:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23247:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7715,"name":"uint256","nodeType":"ElementaryTypeName","src":"23247:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_822752278660603021077484591278675252491367932816789931674304512_by_1","typeString":"int_const 8227...(55 digits omitted)...4512"},"id":7718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23285:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323039","id":7717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23290:3:18","typeDescriptions":{"typeIdentifier":"t_rational_209_by_1","typeString":"int_const 209"},"value":"209"},"src":"23285:8:18","typeDescriptions":{"typeIdentifier":"t_rational_822752278660603021077484591278675252491367932816789931674304512_by_1","typeString":"int_const 8227...(55 digits omitted)...4512"}},"visibility":"internal"},{"constant":true,"id":7724,"mutability":"constant","name":"_ROLE_210","nameLocation":"23325:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23299:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7720,"name":"uint256","nodeType":"ElementaryTypeName","src":"23299:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1645504557321206042154969182557350504982735865633579863348609024_by_1","typeString":"int_const 1645...(56 digits omitted)...9024"},"id":7723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23337:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323130","id":7722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23342:3:18","typeDescriptions":{"typeIdentifier":"t_rational_210_by_1","typeString":"int_const 210"},"value":"210"},"src":"23337:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1645504557321206042154969182557350504982735865633579863348609024_by_1","typeString":"int_const 1645...(56 digits omitted)...9024"}},"visibility":"internal"},{"constant":true,"id":7729,"mutability":"constant","name":"_ROLE_211","nameLocation":"23377:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23351:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7725,"name":"uint256","nodeType":"ElementaryTypeName","src":"23351:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3291009114642412084309938365114701009965471731267159726697218048_by_1","typeString":"int_const 3291...(56 digits omitted)...8048"},"id":7728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23389:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323131","id":7727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23394:3:18","typeDescriptions":{"typeIdentifier":"t_rational_211_by_1","typeString":"int_const 211"},"value":"211"},"src":"23389:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3291009114642412084309938365114701009965471731267159726697218048_by_1","typeString":"int_const 3291...(56 digits omitted)...8048"}},"visibility":"internal"},{"constant":true,"id":7734,"mutability":"constant","name":"_ROLE_212","nameLocation":"23429:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23403:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7730,"name":"uint256","nodeType":"ElementaryTypeName","src":"23403:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6582018229284824168619876730229402019930943462534319453394436096_by_1","typeString":"int_const 6582...(56 digits omitted)...6096"},"id":7733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23441:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323132","id":7732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23446:3:18","typeDescriptions":{"typeIdentifier":"t_rational_212_by_1","typeString":"int_const 212"},"value":"212"},"src":"23441:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6582018229284824168619876730229402019930943462534319453394436096_by_1","typeString":"int_const 6582...(56 digits omitted)...6096"}},"visibility":"internal"},{"constant":true,"id":7739,"mutability":"constant","name":"_ROLE_213","nameLocation":"23481:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23455:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7735,"name":"uint256","nodeType":"ElementaryTypeName","src":"23455:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13164036458569648337239753460458804039861886925068638906788872192_by_1","typeString":"int_const 1316...(57 digits omitted)...2192"},"id":7738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23493:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323133","id":7737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23498:3:18","typeDescriptions":{"typeIdentifier":"t_rational_213_by_1","typeString":"int_const 213"},"value":"213"},"src":"23493:8:18","typeDescriptions":{"typeIdentifier":"t_rational_13164036458569648337239753460458804039861886925068638906788872192_by_1","typeString":"int_const 1316...(57 digits omitted)...2192"}},"visibility":"internal"},{"constant":true,"id":7744,"mutability":"constant","name":"_ROLE_214","nameLocation":"23533:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23507:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7740,"name":"uint256","nodeType":"ElementaryTypeName","src":"23507:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_26328072917139296674479506920917608079723773850137277813577744384_by_1","typeString":"int_const 2632...(57 digits omitted)...4384"},"id":7743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23545:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323134","id":7742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23550:3:18","typeDescriptions":{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"},"value":"214"},"src":"23545:8:18","typeDescriptions":{"typeIdentifier":"t_rational_26328072917139296674479506920917608079723773850137277813577744384_by_1","typeString":"int_const 2632...(57 digits omitted)...4384"}},"visibility":"internal"},{"constant":true,"id":7749,"mutability":"constant","name":"_ROLE_215","nameLocation":"23585:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23559:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7745,"name":"uint256","nodeType":"ElementaryTypeName","src":"23559:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_52656145834278593348959013841835216159447547700274555627155488768_by_1","typeString":"int_const 5265...(57 digits omitted)...8768"},"id":7748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23597:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323135","id":7747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23602:3:18","typeDescriptions":{"typeIdentifier":"t_rational_215_by_1","typeString":"int_const 215"},"value":"215"},"src":"23597:8:18","typeDescriptions":{"typeIdentifier":"t_rational_52656145834278593348959013841835216159447547700274555627155488768_by_1","typeString":"int_const 5265...(57 digits omitted)...8768"}},"visibility":"internal"},{"constant":true,"id":7754,"mutability":"constant","name":"_ROLE_216","nameLocation":"23637:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23611:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7750,"name":"uint256","nodeType":"ElementaryTypeName","src":"23611:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_105312291668557186697918027683670432318895095400549111254310977536_by_1","typeString":"int_const 1053...(58 digits omitted)...7536"},"id":7753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23649:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323136","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23654:3:18","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},"src":"23649:8:18","typeDescriptions":{"typeIdentifier":"t_rational_105312291668557186697918027683670432318895095400549111254310977536_by_1","typeString":"int_const 1053...(58 digits omitted)...7536"}},"visibility":"internal"},{"constant":true,"id":7759,"mutability":"constant","name":"_ROLE_217","nameLocation":"23689:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23663:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7755,"name":"uint256","nodeType":"ElementaryTypeName","src":"23663:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_210624583337114373395836055367340864637790190801098222508621955072_by_1","typeString":"int_const 2106...(58 digits omitted)...5072"},"id":7758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23701:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323137","id":7757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23706:3:18","typeDescriptions":{"typeIdentifier":"t_rational_217_by_1","typeString":"int_const 217"},"value":"217"},"src":"23701:8:18","typeDescriptions":{"typeIdentifier":"t_rational_210624583337114373395836055367340864637790190801098222508621955072_by_1","typeString":"int_const 2106...(58 digits omitted)...5072"}},"visibility":"internal"},{"constant":true,"id":7764,"mutability":"constant","name":"_ROLE_218","nameLocation":"23741:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23715:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7760,"name":"uint256","nodeType":"ElementaryTypeName","src":"23715:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_421249166674228746791672110734681729275580381602196445017243910144_by_1","typeString":"int_const 4212...(58 digits omitted)...0144"},"id":7763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23753:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323138","id":7762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23758:3:18","typeDescriptions":{"typeIdentifier":"t_rational_218_by_1","typeString":"int_const 218"},"value":"218"},"src":"23753:8:18","typeDescriptions":{"typeIdentifier":"t_rational_421249166674228746791672110734681729275580381602196445017243910144_by_1","typeString":"int_const 4212...(58 digits omitted)...0144"}},"visibility":"internal"},{"constant":true,"id":7769,"mutability":"constant","name":"_ROLE_219","nameLocation":"23793:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23767:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7765,"name":"uint256","nodeType":"ElementaryTypeName","src":"23767:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_842498333348457493583344221469363458551160763204392890034487820288_by_1","typeString":"int_const 8424...(58 digits omitted)...0288"},"id":7768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23805:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323139","id":7767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23810:3:18","typeDescriptions":{"typeIdentifier":"t_rational_219_by_1","typeString":"int_const 219"},"value":"219"},"src":"23805:8:18","typeDescriptions":{"typeIdentifier":"t_rational_842498333348457493583344221469363458551160763204392890034487820288_by_1","typeString":"int_const 8424...(58 digits omitted)...0288"}},"visibility":"internal"},{"constant":true,"id":7774,"mutability":"constant","name":"_ROLE_220","nameLocation":"23845:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23819:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7770,"name":"uint256","nodeType":"ElementaryTypeName","src":"23819:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1684996666696914987166688442938726917102321526408785780068975640576_by_1","typeString":"int_const 1684...(59 digits omitted)...0576"},"id":7773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23857:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323230","id":7772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23862:3:18","typeDescriptions":{"typeIdentifier":"t_rational_220_by_1","typeString":"int_const 220"},"value":"220"},"src":"23857:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1684996666696914987166688442938726917102321526408785780068975640576_by_1","typeString":"int_const 1684...(59 digits omitted)...0576"}},"visibility":"internal"},{"constant":true,"id":7779,"mutability":"constant","name":"_ROLE_221","nameLocation":"23897:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23871:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7775,"name":"uint256","nodeType":"ElementaryTypeName","src":"23871:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3369993333393829974333376885877453834204643052817571560137951281152_by_1","typeString":"int_const 3369...(59 digits omitted)...1152"},"id":7778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23909:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323231","id":7777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23914:3:18","typeDescriptions":{"typeIdentifier":"t_rational_221_by_1","typeString":"int_const 221"},"value":"221"},"src":"23909:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3369993333393829974333376885877453834204643052817571560137951281152_by_1","typeString":"int_const 3369...(59 digits omitted)...1152"}},"visibility":"internal"},{"constant":true,"id":7784,"mutability":"constant","name":"_ROLE_222","nameLocation":"23949:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23923:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7780,"name":"uint256","nodeType":"ElementaryTypeName","src":"23923:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6739986666787659948666753771754907668409286105635143120275902562304_by_1","typeString":"int_const 6739...(59 digits omitted)...2304"},"id":7783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23961:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323232","id":7782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23966:3:18","typeDescriptions":{"typeIdentifier":"t_rational_222_by_1","typeString":"int_const 222"},"value":"222"},"src":"23961:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6739986666787659948666753771754907668409286105635143120275902562304_by_1","typeString":"int_const 6739...(59 digits omitted)...2304"}},"visibility":"internal"},{"constant":true,"id":7789,"mutability":"constant","name":"_ROLE_223","nameLocation":"24001:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"23975:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7785,"name":"uint256","nodeType":"ElementaryTypeName","src":"23975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13479973333575319897333507543509815336818572211270286240551805124608_by_1","typeString":"int_const 1347...(60 digits omitted)...4608"},"id":7788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24013:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323233","id":7787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24018:3:18","typeDescriptions":{"typeIdentifier":"t_rational_223_by_1","typeString":"int_const 223"},"value":"223"},"src":"24013:8:18","typeDescriptions":{"typeIdentifier":"t_rational_13479973333575319897333507543509815336818572211270286240551805124608_by_1","typeString":"int_const 1347...(60 digits omitted)...4608"}},"visibility":"internal"},{"constant":true,"id":7794,"mutability":"constant","name":"_ROLE_224","nameLocation":"24053:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24027:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7790,"name":"uint256","nodeType":"ElementaryTypeName","src":"24027:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1","typeString":"int_const 2695...(60 digits omitted)...9216"},"id":7793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24065:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":7792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24070:3:18","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"24065:8:18","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1","typeString":"int_const 2695...(60 digits omitted)...9216"}},"visibility":"internal"},{"constant":true,"id":7799,"mutability":"constant","name":"_ROLE_225","nameLocation":"24105:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24079:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7795,"name":"uint256","nodeType":"ElementaryTypeName","src":"24079:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_53919893334301279589334030174039261347274288845081144962207220498432_by_1","typeString":"int_const 5391...(60 digits omitted)...8432"},"id":7798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24117:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323235","id":7797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24122:3:18","typeDescriptions":{"typeIdentifier":"t_rational_225_by_1","typeString":"int_const 225"},"value":"225"},"src":"24117:8:18","typeDescriptions":{"typeIdentifier":"t_rational_53919893334301279589334030174039261347274288845081144962207220498432_by_1","typeString":"int_const 5391...(60 digits omitted)...8432"}},"visibility":"internal"},{"constant":true,"id":7804,"mutability":"constant","name":"_ROLE_226","nameLocation":"24157:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24131:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7800,"name":"uint256","nodeType":"ElementaryTypeName","src":"24131:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_107839786668602559178668060348078522694548577690162289924414440996864_by_1","typeString":"int_const 1078...(61 digits omitted)...6864"},"id":7803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24169:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323236","id":7802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24174:3:18","typeDescriptions":{"typeIdentifier":"t_rational_226_by_1","typeString":"int_const 226"},"value":"226"},"src":"24169:8:18","typeDescriptions":{"typeIdentifier":"t_rational_107839786668602559178668060348078522694548577690162289924414440996864_by_1","typeString":"int_const 1078...(61 digits omitted)...6864"}},"visibility":"internal"},{"constant":true,"id":7809,"mutability":"constant","name":"_ROLE_227","nameLocation":"24209:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24183:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7805,"name":"uint256","nodeType":"ElementaryTypeName","src":"24183:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_215679573337205118357336120696157045389097155380324579848828881993728_by_1","typeString":"int_const 2156...(61 digits omitted)...3728"},"id":7808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24221:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323237","id":7807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24226:3:18","typeDescriptions":{"typeIdentifier":"t_rational_227_by_1","typeString":"int_const 227"},"value":"227"},"src":"24221:8:18","typeDescriptions":{"typeIdentifier":"t_rational_215679573337205118357336120696157045389097155380324579848828881993728_by_1","typeString":"int_const 2156...(61 digits omitted)...3728"}},"visibility":"internal"},{"constant":true,"id":7814,"mutability":"constant","name":"_ROLE_228","nameLocation":"24261:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24235:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7810,"name":"uint256","nodeType":"ElementaryTypeName","src":"24235:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_431359146674410236714672241392314090778194310760649159697657763987456_by_1","typeString":"int_const 4313...(61 digits omitted)...7456"},"id":7813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24273:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323238","id":7812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24278:3:18","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"228"},"src":"24273:8:18","typeDescriptions":{"typeIdentifier":"t_rational_431359146674410236714672241392314090778194310760649159697657763987456_by_1","typeString":"int_const 4313...(61 digits omitted)...7456"}},"visibility":"internal"},{"constant":true,"id":7819,"mutability":"constant","name":"_ROLE_229","nameLocation":"24313:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24287:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7815,"name":"uint256","nodeType":"ElementaryTypeName","src":"24287:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_862718293348820473429344482784628181556388621521298319395315527974912_by_1","typeString":"int_const 8627...(61 digits omitted)...4912"},"id":7818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24325:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323239","id":7817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24330:3:18","typeDescriptions":{"typeIdentifier":"t_rational_229_by_1","typeString":"int_const 229"},"value":"229"},"src":"24325:8:18","typeDescriptions":{"typeIdentifier":"t_rational_862718293348820473429344482784628181556388621521298319395315527974912_by_1","typeString":"int_const 8627...(61 digits omitted)...4912"}},"visibility":"internal"},{"constant":true,"id":7824,"mutability":"constant","name":"_ROLE_230","nameLocation":"24365:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24339:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7820,"name":"uint256","nodeType":"ElementaryTypeName","src":"24339:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1725436586697640946858688965569256363112777243042596638790631055949824_by_1","typeString":"int_const 1725...(62 digits omitted)...9824"},"id":7823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24377:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323330","id":7822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24382:3:18","typeDescriptions":{"typeIdentifier":"t_rational_230_by_1","typeString":"int_const 230"},"value":"230"},"src":"24377:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1725436586697640946858688965569256363112777243042596638790631055949824_by_1","typeString":"int_const 1725...(62 digits omitted)...9824"}},"visibility":"internal"},{"constant":true,"id":7829,"mutability":"constant","name":"_ROLE_231","nameLocation":"24417:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24391:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7825,"name":"uint256","nodeType":"ElementaryTypeName","src":"24391:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3450873173395281893717377931138512726225554486085193277581262111899648_by_1","typeString":"int_const 3450...(62 digits omitted)...9648"},"id":7828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24429:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323331","id":7827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24434:3:18","typeDescriptions":{"typeIdentifier":"t_rational_231_by_1","typeString":"int_const 231"},"value":"231"},"src":"24429:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3450873173395281893717377931138512726225554486085193277581262111899648_by_1","typeString":"int_const 3450...(62 digits omitted)...9648"}},"visibility":"internal"},{"constant":true,"id":7834,"mutability":"constant","name":"_ROLE_232","nameLocation":"24469:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24443:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7830,"name":"uint256","nodeType":"ElementaryTypeName","src":"24443:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6901746346790563787434755862277025452451108972170386555162524223799296_by_1","typeString":"int_const 6901...(62 digits omitted)...9296"},"id":7833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24481:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323332","id":7832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24486:3:18","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},"src":"24481:8:18","typeDescriptions":{"typeIdentifier":"t_rational_6901746346790563787434755862277025452451108972170386555162524223799296_by_1","typeString":"int_const 6901...(62 digits omitted)...9296"}},"visibility":"internal"},{"constant":true,"id":7839,"mutability":"constant","name":"_ROLE_233","nameLocation":"24521:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24495:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7835,"name":"uint256","nodeType":"ElementaryTypeName","src":"24495:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13803492693581127574869511724554050904902217944340773110325048447598592_by_1","typeString":"int_const 1380...(63 digits omitted)...8592"},"id":7838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24533:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323333","id":7837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24538:3:18","typeDescriptions":{"typeIdentifier":"t_rational_233_by_1","typeString":"int_const 233"},"value":"233"},"src":"24533:8:18","typeDescriptions":{"typeIdentifier":"t_rational_13803492693581127574869511724554050904902217944340773110325048447598592_by_1","typeString":"int_const 1380...(63 digits omitted)...8592"}},"visibility":"internal"},{"constant":true,"id":7844,"mutability":"constant","name":"_ROLE_234","nameLocation":"24573:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24547:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7840,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_27606985387162255149739023449108101809804435888681546220650096895197184_by_1","typeString":"int_const 2760...(63 digits omitted)...7184"},"id":7843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24585:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323334","id":7842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24590:3:18","typeDescriptions":{"typeIdentifier":"t_rational_234_by_1","typeString":"int_const 234"},"value":"234"},"src":"24585:8:18","typeDescriptions":{"typeIdentifier":"t_rational_27606985387162255149739023449108101809804435888681546220650096895197184_by_1","typeString":"int_const 2760...(63 digits omitted)...7184"}},"visibility":"internal"},{"constant":true,"id":7849,"mutability":"constant","name":"_ROLE_235","nameLocation":"24625:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24599:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7845,"name":"uint256","nodeType":"ElementaryTypeName","src":"24599:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_55213970774324510299478046898216203619608871777363092441300193790394368_by_1","typeString":"int_const 5521...(63 digits omitted)...4368"},"id":7848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24637:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323335","id":7847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24642:3:18","typeDescriptions":{"typeIdentifier":"t_rational_235_by_1","typeString":"int_const 235"},"value":"235"},"src":"24637:8:18","typeDescriptions":{"typeIdentifier":"t_rational_55213970774324510299478046898216203619608871777363092441300193790394368_by_1","typeString":"int_const 5521...(63 digits omitted)...4368"}},"visibility":"internal"},{"constant":true,"id":7854,"mutability":"constant","name":"_ROLE_236","nameLocation":"24677:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24651:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7850,"name":"uint256","nodeType":"ElementaryTypeName","src":"24651:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_110427941548649020598956093796432407239217743554726184882600387580788736_by_1","typeString":"int_const 1104...(64 digits omitted)...8736"},"id":7853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24689:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323336","id":7852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24694:3:18","typeDescriptions":{"typeIdentifier":"t_rational_236_by_1","typeString":"int_const 236"},"value":"236"},"src":"24689:8:18","typeDescriptions":{"typeIdentifier":"t_rational_110427941548649020598956093796432407239217743554726184882600387580788736_by_1","typeString":"int_const 1104...(64 digits omitted)...8736"}},"visibility":"internal"},{"constant":true,"id":7859,"mutability":"constant","name":"_ROLE_237","nameLocation":"24729:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24703:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7855,"name":"uint256","nodeType":"ElementaryTypeName","src":"24703:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_220855883097298041197912187592864814478435487109452369765200775161577472_by_1","typeString":"int_const 2208...(64 digits omitted)...7472"},"id":7858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24741:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323337","id":7857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24746:3:18","typeDescriptions":{"typeIdentifier":"t_rational_237_by_1","typeString":"int_const 237"},"value":"237"},"src":"24741:8:18","typeDescriptions":{"typeIdentifier":"t_rational_220855883097298041197912187592864814478435487109452369765200775161577472_by_1","typeString":"int_const 2208...(64 digits omitted)...7472"}},"visibility":"internal"},{"constant":true,"id":7864,"mutability":"constant","name":"_ROLE_238","nameLocation":"24781:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24755:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7860,"name":"uint256","nodeType":"ElementaryTypeName","src":"24755:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_441711766194596082395824375185729628956870974218904739530401550323154944_by_1","typeString":"int_const 4417...(64 digits omitted)...4944"},"id":7863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24793:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323338","id":7862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24798:3:18","typeDescriptions":{"typeIdentifier":"t_rational_238_by_1","typeString":"int_const 238"},"value":"238"},"src":"24793:8:18","typeDescriptions":{"typeIdentifier":"t_rational_441711766194596082395824375185729628956870974218904739530401550323154944_by_1","typeString":"int_const 4417...(64 digits omitted)...4944"}},"visibility":"internal"},{"constant":true,"id":7869,"mutability":"constant","name":"_ROLE_239","nameLocation":"24833:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24807:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7865,"name":"uint256","nodeType":"ElementaryTypeName","src":"24807:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_883423532389192164791648750371459257913741948437809479060803100646309888_by_1","typeString":"int_const 8834...(64 digits omitted)...9888"},"id":7868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24845:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323339","id":7867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24850:3:18","typeDescriptions":{"typeIdentifier":"t_rational_239_by_1","typeString":"int_const 239"},"value":"239"},"src":"24845:8:18","typeDescriptions":{"typeIdentifier":"t_rational_883423532389192164791648750371459257913741948437809479060803100646309888_by_1","typeString":"int_const 8834...(64 digits omitted)...9888"}},"visibility":"internal"},{"constant":true,"id":7874,"mutability":"constant","name":"_ROLE_240","nameLocation":"24885:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24859:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7870,"name":"uint256","nodeType":"ElementaryTypeName","src":"24859:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"},"id":7873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24897:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323430","id":7872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24902:3:18","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},"src":"24897:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"}},"visibility":"internal"},{"constant":true,"id":7879,"mutability":"constant","name":"_ROLE_241","nameLocation":"24937:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24911:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7875,"name":"uint256","nodeType":"ElementaryTypeName","src":"24911:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3533694129556768659166595001485837031654967793751237916243212402585239552_by_1","typeString":"int_const 3533...(65 digits omitted)...9552"},"id":7878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24949:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323431","id":7877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24954:3:18","typeDescriptions":{"typeIdentifier":"t_rational_241_by_1","typeString":"int_const 241"},"value":"241"},"src":"24949:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3533694129556768659166595001485837031654967793751237916243212402585239552_by_1","typeString":"int_const 3533...(65 digits omitted)...9552"}},"visibility":"internal"},{"constant":true,"id":7884,"mutability":"constant","name":"_ROLE_242","nameLocation":"24989:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"24963:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7880,"name":"uint256","nodeType":"ElementaryTypeName","src":"24963:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_7067388259113537318333190002971674063309935587502475832486424805170479104_by_1","typeString":"int_const 7067...(65 digits omitted)...9104"},"id":7883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25001:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323432","id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25006:3:18","typeDescriptions":{"typeIdentifier":"t_rational_242_by_1","typeString":"int_const 242"},"value":"242"},"src":"25001:8:18","typeDescriptions":{"typeIdentifier":"t_rational_7067388259113537318333190002971674063309935587502475832486424805170479104_by_1","typeString":"int_const 7067...(65 digits omitted)...9104"}},"visibility":"internal"},{"constant":true,"id":7889,"mutability":"constant","name":"_ROLE_243","nameLocation":"25041:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25015:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7885,"name":"uint256","nodeType":"ElementaryTypeName","src":"25015:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_14134776518227074636666380005943348126619871175004951664972849610340958208_by_1","typeString":"int_const 1413...(66 digits omitted)...8208"},"id":7888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25053:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323433","id":7887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25058:3:18","typeDescriptions":{"typeIdentifier":"t_rational_243_by_1","typeString":"int_const 243"},"value":"243"},"src":"25053:8:18","typeDescriptions":{"typeIdentifier":"t_rational_14134776518227074636666380005943348126619871175004951664972849610340958208_by_1","typeString":"int_const 1413...(66 digits omitted)...8208"}},"visibility":"internal"},{"constant":true,"id":7894,"mutability":"constant","name":"_ROLE_244","nameLocation":"25093:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25067:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7890,"name":"uint256","nodeType":"ElementaryTypeName","src":"25067:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_28269553036454149273332760011886696253239742350009903329945699220681916416_by_1","typeString":"int_const 2826...(66 digits omitted)...6416"},"id":7893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25105:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323434","id":7892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25110:3:18","typeDescriptions":{"typeIdentifier":"t_rational_244_by_1","typeString":"int_const 244"},"value":"244"},"src":"25105:8:18","typeDescriptions":{"typeIdentifier":"t_rational_28269553036454149273332760011886696253239742350009903329945699220681916416_by_1","typeString":"int_const 2826...(66 digits omitted)...6416"}},"visibility":"internal"},{"constant":true,"id":7899,"mutability":"constant","name":"_ROLE_245","nameLocation":"25145:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25119:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7895,"name":"uint256","nodeType":"ElementaryTypeName","src":"25119:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_56539106072908298546665520023773392506479484700019806659891398441363832832_by_1","typeString":"int_const 5653...(66 digits omitted)...2832"},"id":7898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25157:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323435","id":7897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25162:3:18","typeDescriptions":{"typeIdentifier":"t_rational_245_by_1","typeString":"int_const 245"},"value":"245"},"src":"25157:8:18","typeDescriptions":{"typeIdentifier":"t_rational_56539106072908298546665520023773392506479484700019806659891398441363832832_by_1","typeString":"int_const 5653...(66 digits omitted)...2832"}},"visibility":"internal"},{"constant":true,"id":7904,"mutability":"constant","name":"_ROLE_246","nameLocation":"25197:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25171:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7900,"name":"uint256","nodeType":"ElementaryTypeName","src":"25171:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_113078212145816597093331040047546785012958969400039613319782796882727665664_by_1","typeString":"int_const 1130...(67 digits omitted)...5664"},"id":7903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25209:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323436","id":7902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25214:3:18","typeDescriptions":{"typeIdentifier":"t_rational_246_by_1","typeString":"int_const 246"},"value":"246"},"src":"25209:8:18","typeDescriptions":{"typeIdentifier":"t_rational_113078212145816597093331040047546785012958969400039613319782796882727665664_by_1","typeString":"int_const 1130...(67 digits omitted)...5664"}},"visibility":"internal"},{"constant":true,"id":7909,"mutability":"constant","name":"_ROLE_247","nameLocation":"25249:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25223:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7905,"name":"uint256","nodeType":"ElementaryTypeName","src":"25223:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_226156424291633194186662080095093570025917938800079226639565593765455331328_by_1","typeString":"int_const 2261...(67 digits omitted)...1328"},"id":7908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25261:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323437","id":7907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25266:3:18","typeDescriptions":{"typeIdentifier":"t_rational_247_by_1","typeString":"int_const 247"},"value":"247"},"src":"25261:8:18","typeDescriptions":{"typeIdentifier":"t_rational_226156424291633194186662080095093570025917938800079226639565593765455331328_by_1","typeString":"int_const 2261...(67 digits omitted)...1328"}},"visibility":"internal"},{"constant":true,"id":7914,"mutability":"constant","name":"_ROLE_248","nameLocation":"25301:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25275:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7910,"name":"uint256","nodeType":"ElementaryTypeName","src":"25275:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":7913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25313:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323438","id":7912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25318:3:18","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"25313:8:18","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}},"visibility":"internal"},{"constant":true,"id":7919,"mutability":"constant","name":"_ROLE_249","nameLocation":"25353:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25327:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7915,"name":"uint256","nodeType":"ElementaryTypeName","src":"25327:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_904625697166532776746648320380374280103671755200316906558262375061821325312_by_1","typeString":"int_const 9046...(67 digits omitted)...5312"},"id":7918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25365:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323439","id":7917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25370:3:18","typeDescriptions":{"typeIdentifier":"t_rational_249_by_1","typeString":"int_const 249"},"value":"249"},"src":"25365:8:18","typeDescriptions":{"typeIdentifier":"t_rational_904625697166532776746648320380374280103671755200316906558262375061821325312_by_1","typeString":"int_const 9046...(67 digits omitted)...5312"}},"visibility":"internal"},{"constant":true,"id":7924,"mutability":"constant","name":"_ROLE_250","nameLocation":"25405:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25379:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7920,"name":"uint256","nodeType":"ElementaryTypeName","src":"25379:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1809251394333065553493296640760748560207343510400633813116524750123642650624_by_1","typeString":"int_const 1809...(68 digits omitted)...0624"},"id":7923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25417:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323530","id":7922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25422:3:18","typeDescriptions":{"typeIdentifier":"t_rational_250_by_1","typeString":"int_const 250"},"value":"250"},"src":"25417:8:18","typeDescriptions":{"typeIdentifier":"t_rational_1809251394333065553493296640760748560207343510400633813116524750123642650624_by_1","typeString":"int_const 1809...(68 digits omitted)...0624"}},"visibility":"internal"},{"constant":true,"id":7929,"mutability":"constant","name":"_ROLE_251","nameLocation":"25457:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25431:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7925,"name":"uint256","nodeType":"ElementaryTypeName","src":"25431:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3618502788666131106986593281521497120414687020801267626233049500247285301248_by_1","typeString":"int_const 3618...(68 digits omitted)...1248"},"id":7928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25469:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323531","id":7927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25474:3:18","typeDescriptions":{"typeIdentifier":"t_rational_251_by_1","typeString":"int_const 251"},"value":"251"},"src":"25469:8:18","typeDescriptions":{"typeIdentifier":"t_rational_3618502788666131106986593281521497120414687020801267626233049500247285301248_by_1","typeString":"int_const 3618...(68 digits omitted)...1248"}},"visibility":"internal"},{"constant":true,"id":7934,"mutability":"constant","name":"_ROLE_252","nameLocation":"25509:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25483:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7930,"name":"uint256","nodeType":"ElementaryTypeName","src":"25483:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_7237005577332262213973186563042994240829374041602535252466099000494570602496_by_1","typeString":"int_const 7237...(68 digits omitted)...2496"},"id":7933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25521:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323532","id":7932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25526:3:18","typeDescriptions":{"typeIdentifier":"t_rational_252_by_1","typeString":"int_const 252"},"value":"252"},"src":"25521:8:18","typeDescriptions":{"typeIdentifier":"t_rational_7237005577332262213973186563042994240829374041602535252466099000494570602496_by_1","typeString":"int_const 7237...(68 digits omitted)...2496"}},"visibility":"internal"},{"constant":true,"id":7939,"mutability":"constant","name":"_ROLE_253","nameLocation":"25561:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25535:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7935,"name":"uint256","nodeType":"ElementaryTypeName","src":"25535:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_14474011154664524427946373126085988481658748083205070504932198000989141204992_by_1","typeString":"int_const 1447...(69 digits omitted)...4992"},"id":7938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25573:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323533","id":7937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25578:3:18","typeDescriptions":{"typeIdentifier":"t_rational_253_by_1","typeString":"int_const 253"},"value":"253"},"src":"25573:8:18","typeDescriptions":{"typeIdentifier":"t_rational_14474011154664524427946373126085988481658748083205070504932198000989141204992_by_1","typeString":"int_const 1447...(69 digits omitted)...4992"}},"visibility":"internal"},{"constant":true,"id":7944,"mutability":"constant","name":"_ROLE_254","nameLocation":"25613:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25587:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7940,"name":"uint256","nodeType":"ElementaryTypeName","src":"25587:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1","typeString":"int_const 2894...(69 digits omitted)...9984"},"id":7943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25625:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323534","id":7942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25630:3:18","typeDescriptions":{"typeIdentifier":"t_rational_254_by_1","typeString":"int_const 254"},"value":"254"},"src":"25625:8:18","typeDescriptions":{"typeIdentifier":"t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1","typeString":"int_const 2894...(69 digits omitted)...9984"}},"visibility":"internal"},{"constant":true,"id":7949,"mutability":"constant","name":"_ROLE_255","nameLocation":"25665:9:18","nodeType":"VariableDeclaration","scope":7950,"src":"25639:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7945,"name":"uint256","nodeType":"ElementaryTypeName","src":"25639:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"id":7948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25677:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323535","id":7947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25682:3:18","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"25677:8:18","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}},"visibility":"internal"}],"scope":7951,"src":"467:25221:18","usedErrors":[6235,6238,6241,6244],"usedEvents":[6251,6256,6261,6437]}],"src":"32:25657:18"},"id":18},"@solady/tokens/ERC20.sol":{"ast":{"absolutePath":"@solady/tokens/ERC20.sol","exportedSymbols":{"ERC20":[8369]},"id":8370,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7952,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:19"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":7953,"nodeType":"StructuredDocumentation","src":"57:1083:19","text":"@notice Simple ERC20 + EIP-2612 implementation.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\n @dev Note:\n - The ERC20 standard allows minting and transferring to and from the zero address,\n minting and transferring zero tokens, as well as self-approvals.\n For performance, this implementation WILL NOT revert for such actions.\n Please add any checks with overrides if desired.\n - The `permit` function uses the ecrecover precompile (0x1).\n If you are overriding:\n - NEVER violate the ERC20 invariant:\n the total sum of all balances must be equal to `totalSupply()`.\n - Check that the overridden function is actually used in the function you want to\n change the behavior of. Much of the code has been manually inlined for performance."},"fullyImplemented":false,"id":8369,"linearizedBaseContracts":[8369],"name":"ERC20","nameLocation":"1158:5:19","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7954,"nodeType":"StructuredDocumentation","src":"1453:41:19","text":"@dev The total supply has overflowed."},"errorSelector":"e5cfe957","id":7956,"name":"TotalSupplyOverflow","nameLocation":"1505:19:19","nodeType":"ErrorDefinition","parameters":{"id":7955,"nodeType":"ParameterList","parameters":[],"src":"1524:2:19"},"src":"1499:28:19"},{"documentation":{"id":7957,"nodeType":"StructuredDocumentation","src":"1533:38:19","text":"@dev The allowance has overflowed."},"errorSelector":"f9067066","id":7959,"name":"AllowanceOverflow","nameLocation":"1582:17:19","nodeType":"ErrorDefinition","parameters":{"id":7958,"nodeType":"ParameterList","parameters":[],"src":"1599:2:19"},"src":"1576:26:19"},{"documentation":{"id":7960,"nodeType":"StructuredDocumentation","src":"1608:39:19","text":"@dev The allowance has underflowed."},"errorSelector":"8301ab38","id":7962,"name":"AllowanceUnderflow","nameLocation":"1658:18:19","nodeType":"ErrorDefinition","parameters":{"id":7961,"nodeType":"ParameterList","parameters":[],"src":"1676:2:19"},"src":"1652:27:19"},{"documentation":{"id":7963,"nodeType":"StructuredDocumentation","src":"1685:30:19","text":"@dev Insufficient balance."},"errorSelector":"f4d678b8","id":7965,"name":"InsufficientBalance","nameLocation":"1726:19:19","nodeType":"ErrorDefinition","parameters":{"id":7964,"nodeType":"ParameterList","parameters":[],"src":"1745:2:19"},"src":"1720:28:19"},{"documentation":{"id":7966,"nodeType":"StructuredDocumentation","src":"1754:32:19","text":"@dev Insufficient allowance."},"errorSelector":"13be252b","id":7968,"name":"InsufficientAllowance","nameLocation":"1797:21:19","nodeType":"ErrorDefinition","parameters":{"id":7967,"nodeType":"ParameterList","parameters":[],"src":"1818:2:19"},"src":"1791:30:19"},{"documentation":{"id":7969,"nodeType":"StructuredDocumentation","src":"1827:31:19","text":"@dev The permit is invalid."},"errorSelector":"ddafbaef","id":7971,"name":"InvalidPermit","nameLocation":"1869:13:19","nodeType":"ErrorDefinition","parameters":{"id":7970,"nodeType":"ParameterList","parameters":[],"src":"1882:2:19"},"src":"1863:22:19"},{"documentation":{"id":7972,"nodeType":"StructuredDocumentation","src":"1891:32:19","text":"@dev The permit has expired."},"errorSelector":"1a15a3cc","id":7974,"name":"PermitExpired","nameLocation":"1934:13:19","nodeType":"ErrorDefinition","parameters":{"id":7973,"nodeType":"ParameterList","parameters":[],"src":"1947:2:19"},"src":"1928:22:19"},{"anonymous":false,"documentation":{"id":7975,"nodeType":"StructuredDocumentation","src":"2239:73:19","text":"@dev Emitted when `amount` tokens is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":7983,"name":"Transfer","nameLocation":"2323:8:19","nodeType":"EventDefinition","parameters":{"id":7982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7977,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2348:4:19","nodeType":"VariableDeclaration","scope":7983,"src":"2332:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7976,"name":"address","nodeType":"ElementaryTypeName","src":"2332:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7979,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"2370:2:19","nodeType":"VariableDeclaration","scope":7983,"src":"2354:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7978,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7981,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2382:6:19","nodeType":"VariableDeclaration","scope":7983,"src":"2374:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7980,"name":"uint256","nodeType":"ElementaryTypeName","src":"2374:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2331:58:19"},"src":"2317:73:19"},{"anonymous":false,"documentation":{"id":7984,"nodeType":"StructuredDocumentation","src":"2396:85:19","text":"@dev Emitted when `amount` tokens is approved by `owner` to be used by `spender`."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":7992,"name":"Approval","nameLocation":"2492:8:19","nodeType":"EventDefinition","parameters":{"id":7991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7986,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"2517:5:19","nodeType":"VariableDeclaration","scope":7992,"src":"2501:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7985,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7988,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"2540:7:19","nodeType":"VariableDeclaration","scope":7992,"src":"2524:23:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7987,"name":"address","nodeType":"ElementaryTypeName","src":"2524:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7990,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2557:6:19","nodeType":"VariableDeclaration","scope":7992,"src":"2549:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2500:64:19"},"src":"2486:79:19"},{"constant":true,"documentation":{"id":7993,"nodeType":"StructuredDocumentation","src":"2571:65:19","text":"@dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`."},"id":7996,"mutability":"constant","name":"_TRANSFER_EVENT_SIGNATURE","nameLocation":"2666:25:19","nodeType":"VariableDeclaration","scope":8369,"src":"2641:127:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2641:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864646632353261643162653263383962363963326230363866633337386461613935326261376631363363346131313632386635356134646635323362336566","id":7995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2702:66:19","typeDescriptions":{"typeIdentifier":"t_rational_100389287136786176327247604509743168900146139575972864366142685224231313322991_by_1","typeString":"int_const 1003...(70 digits omitted)...2991"},"value":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},"visibility":"private"},{"constant":true,"documentation":{"id":7997,"nodeType":"StructuredDocumentation","src":"2775:65:19","text":"@dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`."},"id":8000,"mutability":"constant","name":"_APPROVAL_EVENT_SIGNATURE","nameLocation":"2870:25:19","nodeType":"VariableDeclaration","scope":8369,"src":"2845:127:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7998,"name":"uint256","nodeType":"ElementaryTypeName","src":"2845:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838633562653165356562656337643562643134663731343237643165383466336464303331346330663762323239316535623230306163386337633362393235","id":7999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2906:66:19","typeDescriptions":{"typeIdentifier":"t_rational_63486140976153616755203102783360879283472101686154884697241723088393386309925_by_1","typeString":"int_const 6348...(69 digits omitted)...9925"},"value":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},"visibility":"private"},{"constant":true,"documentation":{"id":8001,"nodeType":"StructuredDocumentation","src":"3262:47:19","text":"@dev The storage slot for the total supply."},"id":8004,"mutability":"constant","name":"_TOTAL_SUPPLY_SLOT","nameLocation":"3339:18:19","nodeType":"VariableDeclaration","scope":8369,"src":"3314:66:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8002,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078303533343563646637376562363866343463","id":8003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3360:20:19","typeDescriptions":{"typeIdentifier":"t_rational_96006856662521017420_by_1","typeString":"int_const 96006856662521017420"},"value":"0x05345cdf77eb68f44c"},"visibility":"private"},{"constant":true,"documentation":{"id":8005,"nodeType":"StructuredDocumentation","src":"3387:203:19","text":"@dev The balance slot of `owner` is given by:\n ```\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x20)\n ```"},"id":8008,"mutability":"constant","name":"_BALANCE_SLOT_SEED","nameLocation":"3620:18:19","nodeType":"VariableDeclaration","scope":8369,"src":"3595:56:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8006,"name":"uint256","nodeType":"ElementaryTypeName","src":"3595:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783837613231316132","id":8007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3641:10:19","typeDescriptions":{"typeIdentifier":"t_rational_2275545506_by_1","typeString":"int_const 2275545506"},"value":"0x87a211a2"},"visibility":"private"},{"constant":true,"documentation":{"id":8009,"nodeType":"StructuredDocumentation","src":"3658:256:19","text":"@dev The allowance slot of (`owner`, `spender`) is given by:\n ```\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n let allowanceSlot := keccak256(0x0c, 0x34)\n ```"},"id":8012,"mutability":"constant","name":"_ALLOWANCE_SLOT_SEED","nameLocation":"3944:20:19","nodeType":"VariableDeclaration","scope":8369,"src":"3919:58:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8010,"name":"uint256","nodeType":"ElementaryTypeName","src":"3919:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783766356539663230","id":8011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3967:10:19","typeDescriptions":{"typeIdentifier":"t_rational_2136907552_by_1","typeString":"int_const 2136907552"},"value":"0x7f5e9f20"},"visibility":"private"},{"constant":true,"documentation":{"id":8013,"nodeType":"StructuredDocumentation","src":"3984:198:19","text":"@dev The nonce slot of `owner` is given by:\n ```\n mstore(0x0c, _NONCES_SLOT_SEED)\n mstore(0x00, owner)\n let nonceSlot := keccak256(0x0c, 0x20)\n ```"},"id":8016,"mutability":"constant","name":"_NONCES_SLOT_SEED","nameLocation":"4212:17:19","nodeType":"VariableDeclaration","scope":8369,"src":"4187:55:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8014,"name":"uint256","nodeType":"ElementaryTypeName","src":"4187:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783338333737353038","id":8015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4232:10:19","typeDescriptions":{"typeIdentifier":"t_rational_943158536_by_1","typeString":"int_const 943158536"},"value":"0x38377508"},"visibility":"private"},{"constant":true,"documentation":{"id":8017,"nodeType":"StructuredDocumentation","src":"4532:46:19","text":"@dev `(_NONCES_SLOT_SEED << 16) | 0x1901`."},"id":8020,"mutability":"constant","name":"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX","nameLocation":"4608:39:19","nodeType":"VariableDeclaration","scope":8369,"src":"4583:81:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8018,"name":"uint256","nodeType":"ElementaryTypeName","src":"4583:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078333833373735303831393031","id":8019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4650:14:19","typeDescriptions":{"typeIdentifier":"t_rational_61810837821697_by_1","typeString":"int_const 61810837821697"},"value":"0x383775081901"},"visibility":"private"},{"constant":true,"documentation":{"id":8021,"nodeType":"StructuredDocumentation","src":"4671:107:19","text":"@dev `keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")`."},"id":8024,"mutability":"constant","name":"_DOMAIN_TYPEHASH","nameLocation":"4808:16:19","nodeType":"VariableDeclaration","scope":8369,"src":"4783:118:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4783:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838623733633363363962623866653364353132656363346366373539636337393233396637623137396230666661636161396137356435323262333934303066","id":8023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:66:19","typeDescriptions":{"typeIdentifier":"t_rational_63076024560530113402979550242307453568063438748328787417531900361828837441551_by_1","typeString":"int_const 6307...(69 digits omitted)...1551"},"value":"0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f"},"visibility":"private"},{"constant":true,"documentation":{"id":8025,"nodeType":"StructuredDocumentation","src":"4908:26:19","text":"@dev `keccak256(\"1\")`."},"id":8028,"mutability":"constant","name":"_VERSION_HASH","nameLocation":"4964:13:19","nodeType":"VariableDeclaration","scope":8369,"src":"4939:115:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4939:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863383965666461613534633066323063376164663631323838326466303935306635613935313633376530333037636463623463363732663239386238626336","id":8027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4988:66:19","typeDescriptions":{"typeIdentifier":"t_rational_90743482286830539503240959006302832933333810038750515972785732718729991261126_by_1","typeString":"int_const 9074...(69 digits omitted)...1126"},"value":"0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6"},"visibility":"private"},{"constant":true,"documentation":{"id":8029,"nodeType":"StructuredDocumentation","src":"5061:107:19","text":"@dev `keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\")`."},"id":8032,"mutability":"constant","name":"_PERMIT_TYPEHASH","nameLocation":"5198:16:19","nodeType":"VariableDeclaration","scope":8369,"src":"5173:118:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5173:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339","id":8031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5225:66:19","typeDescriptions":{"typeIdentifier":"t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1","typeString":"int_const 4995...(69 digits omitted)...3241"},"value":"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"},"visibility":"private"},{"documentation":{"id":8033,"nodeType":"StructuredDocumentation","src":"5581:39:19","text":"@dev Returns the name of the token."},"functionSelector":"06fdde03","id":8038,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"5634:4:19","nodeType":"FunctionDefinition","parameters":{"id":8034,"nodeType":"ParameterList","parameters":[],"src":"5638:2:19"},"returnParameters":{"id":8037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8038,"src":"5670:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8035,"name":"string","nodeType":"ElementaryTypeName","src":"5670:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5669:15:19"},"scope":8369,"src":"5625:60:19","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8039,"nodeType":"StructuredDocumentation","src":"5691:41:19","text":"@dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":8044,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"5746:6:19","nodeType":"FunctionDefinition","parameters":{"id":8040,"nodeType":"ParameterList","parameters":[],"src":"5752:2:19"},"returnParameters":{"id":8043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8044,"src":"5784:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8041,"name":"string","nodeType":"ElementaryTypeName","src":"5784:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5783:15:19"},"scope":8369,"src":"5737:62:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8052,"nodeType":"Block","src":"5916:26:19","statements":[{"expression":{"hexValue":"3138","id":8050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5933:2:19","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":8049,"id":8051,"nodeType":"Return","src":"5926:9:19"}]},"documentation":{"id":8045,"nodeType":"StructuredDocumentation","src":"5805:50:19","text":"@dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":8053,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"5869:8:19","nodeType":"FunctionDefinition","parameters":{"id":8046,"nodeType":"ParameterList","parameters":[],"src":"5877:2:19"},"returnParameters":{"id":8049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8053,"src":"5909:5:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8047,"name":"uint8","nodeType":"ElementaryTypeName","src":"5909:5:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5908:7:19"},"scope":8369,"src":"5860:82:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8060,"nodeType":"Block","src":"6355:127:19","statements":[{"AST":{"nativeSrc":"6417:59:19","nodeType":"YulBlock","src":"6417:59:19","statements":[{"nativeSrc":"6431:35:19","nodeType":"YulAssignment","src":"6431:35:19","value":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"6447:18:19","nodeType":"YulIdentifier","src":"6447:18:19"}],"functionName":{"name":"sload","nativeSrc":"6441:5:19","nodeType":"YulIdentifier","src":"6441:5:19"},"nativeSrc":"6441:25:19","nodeType":"YulFunctionCall","src":"6441:25:19"},"variableNames":[{"name":"result","nativeSrc":"6431:6:19","nodeType":"YulIdentifier","src":"6431:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8004,"isOffset":false,"isSlot":false,"src":"6447:18:19","valueSize":1},{"declaration":8057,"isOffset":false,"isSlot":false,"src":"6431:6:19","valueSize":1}],"id":8059,"nodeType":"InlineAssembly","src":"6408:68:19"}]},"documentation":{"id":8054,"nodeType":"StructuredDocumentation","src":"6231:51:19","text":"@dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":8061,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"6296:11:19","nodeType":"FunctionDefinition","parameters":{"id":8055,"nodeType":"ParameterList","parameters":[],"src":"6307:2:19"},"returnParameters":{"id":8058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8057,"mutability":"mutable","name":"result","nameLocation":"6347:6:19","nodeType":"VariableDeclaration","scope":8061,"src":"6339:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8056,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6338:16:19"},"scope":8369,"src":"6287:195:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8070,"nodeType":"Block","src":"6627:207:19","statements":[{"AST":{"nativeSrc":"6689:139:19","nodeType":"YulBlock","src":"6689:139:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6710:4:19","nodeType":"YulLiteral","src":"6710:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"6716:18:19","nodeType":"YulIdentifier","src":"6716:18:19"}],"functionName":{"name":"mstore","nativeSrc":"6703:6:19","nodeType":"YulIdentifier","src":"6703:6:19"},"nativeSrc":"6703:32:19","nodeType":"YulFunctionCall","src":"6703:32:19"},"nativeSrc":"6703:32:19","nodeType":"YulExpressionStatement","src":"6703:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6755:4:19","nodeType":"YulLiteral","src":"6755:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"6761:5:19","nodeType":"YulIdentifier","src":"6761:5:19"}],"functionName":{"name":"mstore","nativeSrc":"6748:6:19","nodeType":"YulIdentifier","src":"6748:6:19"},"nativeSrc":"6748:19:19","nodeType":"YulFunctionCall","src":"6748:19:19"},"nativeSrc":"6748:19:19","nodeType":"YulExpressionStatement","src":"6748:19:19"},{"nativeSrc":"6780:38:19","nodeType":"YulAssignment","src":"6780:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6806:4:19","nodeType":"YulLiteral","src":"6806:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"6812:4:19","nodeType":"YulLiteral","src":"6812:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6796:9:19","nodeType":"YulIdentifier","src":"6796:9:19"},"nativeSrc":"6796:21:19","nodeType":"YulFunctionCall","src":"6796:21:19"}],"functionName":{"name":"sload","nativeSrc":"6790:5:19","nodeType":"YulIdentifier","src":"6790:5:19"},"nativeSrc":"6790:28:19","nodeType":"YulFunctionCall","src":"6790:28:19"},"variableNames":[{"name":"result","nativeSrc":"6780:6:19","nodeType":"YulIdentifier","src":"6780:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"6716:18:19","valueSize":1},{"declaration":8064,"isOffset":false,"isSlot":false,"src":"6761:5:19","valueSize":1},{"declaration":8067,"isOffset":false,"isSlot":false,"src":"6780:6:19","valueSize":1}],"id":8069,"nodeType":"InlineAssembly","src":"6680:148:19"}]},"documentation":{"id":8062,"nodeType":"StructuredDocumentation","src":"6488:55:19","text":"@dev Returns the amount of tokens owned by `owner`."},"functionSelector":"70a08231","id":8071,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"6557:9:19","nodeType":"FunctionDefinition","parameters":{"id":8065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8064,"mutability":"mutable","name":"owner","nameLocation":"6575:5:19","nodeType":"VariableDeclaration","scope":8071,"src":"6567:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8063,"name":"address","nodeType":"ElementaryTypeName","src":"6567:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6566:15:19"},"returnParameters":{"id":8068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8067,"mutability":"mutable","name":"result","nameLocation":"6619:6:19","nodeType":"VariableDeclaration","scope":8071,"src":"6611:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8066,"name":"uint256","nodeType":"ElementaryTypeName","src":"6611:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6610:16:19"},"scope":8369,"src":"6548:286:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8082,"nodeType":"Block","src":"7061:243:19","statements":[{"AST":{"nativeSrc":"7123:175:19","nodeType":"YulBlock","src":"7123:175:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7144:4:19","nodeType":"YulLiteral","src":"7144:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"7150:7:19","nodeType":"YulIdentifier","src":"7150:7:19"}],"functionName":{"name":"mstore","nativeSrc":"7137:6:19","nodeType":"YulIdentifier","src":"7137:6:19"},"nativeSrc":"7137:21:19","nodeType":"YulFunctionCall","src":"7137:21:19"},"nativeSrc":"7137:21:19","nodeType":"YulExpressionStatement","src":"7137:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7178:4:19","nodeType":"YulLiteral","src":"7178:4:19","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"7184:20:19","nodeType":"YulIdentifier","src":"7184:20:19"}],"functionName":{"name":"mstore","nativeSrc":"7171:6:19","nodeType":"YulIdentifier","src":"7171:6:19"},"nativeSrc":"7171:34:19","nodeType":"YulFunctionCall","src":"7171:34:19"},"nativeSrc":"7171:34:19","nodeType":"YulExpressionStatement","src":"7171:34:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7225:4:19","nodeType":"YulLiteral","src":"7225:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"7231:5:19","nodeType":"YulIdentifier","src":"7231:5:19"}],"functionName":{"name":"mstore","nativeSrc":"7218:6:19","nodeType":"YulIdentifier","src":"7218:6:19"},"nativeSrc":"7218:19:19","nodeType":"YulFunctionCall","src":"7218:19:19"},"nativeSrc":"7218:19:19","nodeType":"YulExpressionStatement","src":"7218:19:19"},{"nativeSrc":"7250:38:19","nodeType":"YulAssignment","src":"7250:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7276:4:19","nodeType":"YulLiteral","src":"7276:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7282:4:19","nodeType":"YulLiteral","src":"7282:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"7266:9:19","nodeType":"YulIdentifier","src":"7266:9:19"},"nativeSrc":"7266:21:19","nodeType":"YulFunctionCall","src":"7266:21:19"}],"functionName":{"name":"sload","nativeSrc":"7260:5:19","nodeType":"YulIdentifier","src":"7260:5:19"},"nativeSrc":"7260:28:19","nodeType":"YulFunctionCall","src":"7260:28:19"},"variableNames":[{"name":"result","nativeSrc":"7250:6:19","nodeType":"YulIdentifier","src":"7250:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"7184:20:19","valueSize":1},{"declaration":8074,"isOffset":false,"isSlot":false,"src":"7231:5:19","valueSize":1},{"declaration":8079,"isOffset":false,"isSlot":false,"src":"7250:6:19","valueSize":1},{"declaration":8076,"isOffset":false,"isSlot":false,"src":"7150:7:19","valueSize":1}],"id":8081,"nodeType":"InlineAssembly","src":"7114:184:19"}]},"documentation":{"id":8072,"nodeType":"StructuredDocumentation","src":"6840:84:19","text":"@dev Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"functionSelector":"dd62ed3e","id":8083,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"6938:9:19","nodeType":"FunctionDefinition","parameters":{"id":8077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8074,"mutability":"mutable","name":"owner","nameLocation":"6956:5:19","nodeType":"VariableDeclaration","scope":8083,"src":"6948:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8073,"name":"address","nodeType":"ElementaryTypeName","src":"6948:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8076,"mutability":"mutable","name":"spender","nameLocation":"6971:7:19","nodeType":"VariableDeclaration","scope":8083,"src":"6963:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8075,"name":"address","nodeType":"ElementaryTypeName","src":"6963:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6947:32:19"},"returnParameters":{"id":8080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8079,"mutability":"mutable","name":"result","nameLocation":"7049:6:19","nodeType":"VariableDeclaration","scope":8083,"src":"7041:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8078,"name":"uint256","nodeType":"ElementaryTypeName","src":"7041:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7040:16:19"},"scope":8369,"src":"6929:375:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8096,"nodeType":"Block","src":"7515:493:19","statements":[{"AST":{"nativeSrc":"7577:404:19","nodeType":"YulBlock","src":"7577:404:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7662:4:19","nodeType":"YulLiteral","src":"7662:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"7668:7:19","nodeType":"YulIdentifier","src":"7668:7:19"}],"functionName":{"name":"mstore","nativeSrc":"7655:6:19","nodeType":"YulIdentifier","src":"7655:6:19"},"nativeSrc":"7655:21:19","nodeType":"YulFunctionCall","src":"7655:21:19"},"nativeSrc":"7655:21:19","nodeType":"YulExpressionStatement","src":"7655:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7696:4:19","nodeType":"YulLiteral","src":"7696:4:19","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"7702:20:19","nodeType":"YulIdentifier","src":"7702:20:19"}],"functionName":{"name":"mstore","nativeSrc":"7689:6:19","nodeType":"YulIdentifier","src":"7689:6:19"},"nativeSrc":"7689:34:19","nodeType":"YulFunctionCall","src":"7689:34:19"},"nativeSrc":"7689:34:19","nodeType":"YulExpressionStatement","src":"7689:34:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7743:4:19","nodeType":"YulLiteral","src":"7743:4:19","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7749:6:19","nodeType":"YulIdentifier","src":"7749:6:19"},"nativeSrc":"7749:8:19","nodeType":"YulFunctionCall","src":"7749:8:19"}],"functionName":{"name":"mstore","nativeSrc":"7736:6:19","nodeType":"YulIdentifier","src":"7736:6:19"},"nativeSrc":"7736:22:19","nodeType":"YulFunctionCall","src":"7736:22:19"},"nativeSrc":"7736:22:19","nodeType":"YulExpressionStatement","src":"7736:22:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7788:4:19","nodeType":"YulLiteral","src":"7788:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7794:4:19","nodeType":"YulLiteral","src":"7794:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"7778:9:19","nodeType":"YulIdentifier","src":"7778:9:19"},"nativeSrc":"7778:21:19","nodeType":"YulFunctionCall","src":"7778:21:19"},{"name":"amount","nativeSrc":"7801:6:19","nodeType":"YulIdentifier","src":"7801:6:19"}],"functionName":{"name":"sstore","nativeSrc":"7771:6:19","nodeType":"YulIdentifier","src":"7771:6:19"},"nativeSrc":"7771:37:19","nodeType":"YulFunctionCall","src":"7771:37:19"},"nativeSrc":"7771:37:19","nodeType":"YulExpressionStatement","src":"7771:37:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7870:4:19","nodeType":"YulLiteral","src":"7870:4:19","type":"","value":"0x00"},{"name":"amount","nativeSrc":"7876:6:19","nodeType":"YulIdentifier","src":"7876:6:19"}],"functionName":{"name":"mstore","nativeSrc":"7863:6:19","nodeType":"YulIdentifier","src":"7863:6:19"},"nativeSrc":"7863:20:19","nodeType":"YulFunctionCall","src":"7863:20:19"},"nativeSrc":"7863:20:19","nodeType":"YulExpressionStatement","src":"7863:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7901:4:19","nodeType":"YulLiteral","src":"7901:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7907:4:19","nodeType":"YulLiteral","src":"7907:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"7913:25:19","nodeType":"YulIdentifier","src":"7913:25:19"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7940:6:19","nodeType":"YulIdentifier","src":"7940:6:19"},"nativeSrc":"7940:8:19","nodeType":"YulFunctionCall","src":"7940:8:19"},{"arguments":[{"kind":"number","nativeSrc":"7954:2:19","nodeType":"YulLiteral","src":"7954:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"7964:4:19","nodeType":"YulLiteral","src":"7964:4:19","type":"","value":"0x2c"}],"functionName":{"name":"mload","nativeSrc":"7958:5:19","nodeType":"YulIdentifier","src":"7958:5:19"},"nativeSrc":"7958:11:19","nodeType":"YulFunctionCall","src":"7958:11:19"}],"functionName":{"name":"shr","nativeSrc":"7950:3:19","nodeType":"YulIdentifier","src":"7950:3:19"},"nativeSrc":"7950:20:19","nodeType":"YulFunctionCall","src":"7950:20:19"}],"functionName":{"name":"log3","nativeSrc":"7896:4:19","nodeType":"YulIdentifier","src":"7896:4:19"},"nativeSrc":"7896:75:19","nodeType":"YulFunctionCall","src":"7896:75:19"},"nativeSrc":"7896:75:19","nodeType":"YulExpressionStatement","src":"7896:75:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"7702:20:19","valueSize":1},{"declaration":8000,"isOffset":false,"isSlot":false,"src":"7913:25:19","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"7801:6:19","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"7876:6:19","valueSize":1},{"declaration":8086,"isOffset":false,"isSlot":false,"src":"7668:7:19","valueSize":1}],"id":8093,"nodeType":"InlineAssembly","src":"7568:413:19"},{"expression":{"hexValue":"74727565","id":8094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7997:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8092,"id":8095,"nodeType":"Return","src":"7990:11:19"}]},"documentation":{"id":8084,"nodeType":"StructuredDocumentation","src":"7310:120:19","text":"@dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Emits a {Approval} event."},"functionSelector":"095ea7b3","id":8097,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"7444:7:19","nodeType":"FunctionDefinition","parameters":{"id":8089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8086,"mutability":"mutable","name":"spender","nameLocation":"7460:7:19","nodeType":"VariableDeclaration","scope":8097,"src":"7452:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8085,"name":"address","nodeType":"ElementaryTypeName","src":"7452:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8088,"mutability":"mutable","name":"amount","nameLocation":"7477:6:19","nodeType":"VariableDeclaration","scope":8097,"src":"7469:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8087,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7451:33:19"},"returnParameters":{"id":8092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8097,"src":"7509:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8090,"name":"bool","nodeType":"ElementaryTypeName","src":"7509:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7508:6:19"},"scope":8369,"src":"7435:573:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8124,"nodeType":"Block","src":"8271:1330:19","statements":[{"expression":{"arguments":[{"expression":{"id":8108,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8302:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8306:6:19","memberName":"sender","nodeType":"MemberAccess","src":"8302:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8110,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"8314:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8111,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"8318:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8107,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"8281:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8281:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8113,"nodeType":"ExpressionStatement","src":"8281:44:19"},{"AST":{"nativeSrc":"8387:1134:19","nodeType":"YulBlock","src":"8387:1134:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8468:4:19","nodeType":"YulLiteral","src":"8468:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"8474:18:19","nodeType":"YulIdentifier","src":"8474:18:19"}],"functionName":{"name":"mstore","nativeSrc":"8461:6:19","nodeType":"YulIdentifier","src":"8461:6:19"},"nativeSrc":"8461:32:19","nodeType":"YulFunctionCall","src":"8461:32:19"},"nativeSrc":"8461:32:19","nodeType":"YulExpressionStatement","src":"8461:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8513:4:19","nodeType":"YulLiteral","src":"8513:4:19","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"8519:6:19","nodeType":"YulIdentifier","src":"8519:6:19"},"nativeSrc":"8519:8:19","nodeType":"YulFunctionCall","src":"8519:8:19"}],"functionName":{"name":"mstore","nativeSrc":"8506:6:19","nodeType":"YulIdentifier","src":"8506:6:19"},"nativeSrc":"8506:22:19","nodeType":"YulFunctionCall","src":"8506:22:19"},"nativeSrc":"8506:22:19","nodeType":"YulExpressionStatement","src":"8506:22:19"},{"nativeSrc":"8541:44:19","nodeType":"YulVariableDeclaration","src":"8541:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"8574:4:19","nodeType":"YulLiteral","src":"8574:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"8580:4:19","nodeType":"YulLiteral","src":"8580:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8564:9:19","nodeType":"YulIdentifier","src":"8564:9:19"},"nativeSrc":"8564:21:19","nodeType":"YulFunctionCall","src":"8564:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"8545:15:19","nodeType":"YulTypedName","src":"8545:15:19","type":""}]},{"nativeSrc":"8598:41:19","nodeType":"YulVariableDeclaration","src":"8598:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"8623:15:19","nodeType":"YulIdentifier","src":"8623:15:19"}],"functionName":{"name":"sload","nativeSrc":"8617:5:19","nodeType":"YulIdentifier","src":"8617:5:19"},"nativeSrc":"8617:22:19","nodeType":"YulFunctionCall","src":"8617:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"8602:11:19","nodeType":"YulTypedName","src":"8602:11:19","type":""}]},{"body":{"nativeSrc":"8726:119:19","nodeType":"YulBlock","src":"8726:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8751:4:19","nodeType":"YulLiteral","src":"8751:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8757:10:19","nodeType":"YulLiteral","src":"8757:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"8744:6:19","nodeType":"YulIdentifier","src":"8744:6:19"},"nativeSrc":"8744:24:19","nodeType":"YulFunctionCall","src":"8744:24:19"},"nativeSrc":"8744:24:19","nodeType":"YulExpressionStatement","src":"8744:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8820:4:19","nodeType":"YulLiteral","src":"8820:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8826:4:19","nodeType":"YulLiteral","src":"8826:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8813:6:19","nodeType":"YulIdentifier","src":"8813:6:19"},"nativeSrc":"8813:18:19","nodeType":"YulFunctionCall","src":"8813:18:19"},"nativeSrc":"8813:18:19","nodeType":"YulExpressionStatement","src":"8813:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"8705:6:19","nodeType":"YulIdentifier","src":"8705:6:19"},{"name":"fromBalance","nativeSrc":"8713:11:19","nodeType":"YulIdentifier","src":"8713:11:19"}],"functionName":{"name":"gt","nativeSrc":"8702:2:19","nodeType":"YulIdentifier","src":"8702:2:19"},"nativeSrc":"8702:23:19","nodeType":"YulFunctionCall","src":"8702:23:19"},"nativeSrc":"8699:146:19","nodeType":"YulIf","src":"8699:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"8920:15:19","nodeType":"YulIdentifier","src":"8920:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"8941:11:19","nodeType":"YulIdentifier","src":"8941:11:19"},{"name":"amount","nativeSrc":"8954:6:19","nodeType":"YulIdentifier","src":"8954:6:19"}],"functionName":{"name":"sub","nativeSrc":"8937:3:19","nodeType":"YulIdentifier","src":"8937:3:19"},"nativeSrc":"8937:24:19","nodeType":"YulFunctionCall","src":"8937:24:19"}],"functionName":{"name":"sstore","nativeSrc":"8913:6:19","nodeType":"YulIdentifier","src":"8913:6:19"},"nativeSrc":"8913:49:19","nodeType":"YulFunctionCall","src":"8913:49:19"},"nativeSrc":"8913:49:19","nodeType":"YulExpressionStatement","src":"8913:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9031:4:19","nodeType":"YulLiteral","src":"9031:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"9037:2:19","nodeType":"YulIdentifier","src":"9037:2:19"}],"functionName":{"name":"mstore","nativeSrc":"9024:6:19","nodeType":"YulIdentifier","src":"9024:6:19"},"nativeSrc":"9024:16:19","nodeType":"YulFunctionCall","src":"9024:16:19"},"nativeSrc":"9024:16:19","nodeType":"YulExpressionStatement","src":"9024:16:19"},{"nativeSrc":"9053:42:19","nodeType":"YulVariableDeclaration","src":"9053:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"9084:4:19","nodeType":"YulLiteral","src":"9084:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9090:4:19","nodeType":"YulLiteral","src":"9090:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9074:9:19","nodeType":"YulIdentifier","src":"9074:9:19"},"nativeSrc":"9074:21:19","nodeType":"YulFunctionCall","src":"9074:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"9057:13:19","nodeType":"YulTypedName","src":"9057:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"9299:13:19","nodeType":"YulIdentifier","src":"9299:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"9324:13:19","nodeType":"YulIdentifier","src":"9324:13:19"}],"functionName":{"name":"sload","nativeSrc":"9318:5:19","nodeType":"YulIdentifier","src":"9318:5:19"},"nativeSrc":"9318:20:19","nodeType":"YulFunctionCall","src":"9318:20:19"},{"name":"amount","nativeSrc":"9340:6:19","nodeType":"YulIdentifier","src":"9340:6:19"}],"functionName":{"name":"add","nativeSrc":"9314:3:19","nodeType":"YulIdentifier","src":"9314:3:19"},"nativeSrc":"9314:33:19","nodeType":"YulFunctionCall","src":"9314:33:19"}],"functionName":{"name":"sstore","nativeSrc":"9292:6:19","nodeType":"YulIdentifier","src":"9292:6:19"},"nativeSrc":"9292:56:19","nodeType":"YulFunctionCall","src":"9292:56:19"},"nativeSrc":"9292:56:19","nodeType":"YulExpressionStatement","src":"9292:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9410:4:19","nodeType":"YulLiteral","src":"9410:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"9416:6:19","nodeType":"YulIdentifier","src":"9416:6:19"}],"functionName":{"name":"mstore","nativeSrc":"9403:6:19","nodeType":"YulIdentifier","src":"9403:6:19"},"nativeSrc":"9403:20:19","nodeType":"YulFunctionCall","src":"9403:20:19"},"nativeSrc":"9403:20:19","nodeType":"YulExpressionStatement","src":"9403:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9441:4:19","nodeType":"YulLiteral","src":"9441:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"9447:4:19","nodeType":"YulLiteral","src":"9447:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"9453:25:19","nodeType":"YulIdentifier","src":"9453:25:19"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9480:6:19","nodeType":"YulIdentifier","src":"9480:6:19"},"nativeSrc":"9480:8:19","nodeType":"YulFunctionCall","src":"9480:8:19"},{"arguments":[{"kind":"number","nativeSrc":"9494:2:19","nodeType":"YulLiteral","src":"9494:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"9504:4:19","nodeType":"YulLiteral","src":"9504:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"9498:5:19","nodeType":"YulIdentifier","src":"9498:5:19"},"nativeSrc":"9498:11:19","nodeType":"YulFunctionCall","src":"9498:11:19"}],"functionName":{"name":"shr","nativeSrc":"9490:3:19","nodeType":"YulIdentifier","src":"9490:3:19"},"nativeSrc":"9490:20:19","nodeType":"YulFunctionCall","src":"9490:20:19"}],"functionName":{"name":"log3","nativeSrc":"9436:4:19","nodeType":"YulIdentifier","src":"9436:4:19"},"nativeSrc":"9436:75:19","nodeType":"YulFunctionCall","src":"9436:75:19"},"nativeSrc":"9436:75:19","nodeType":"YulExpressionStatement","src":"9436:75:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"8474:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"9453:25:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"8705:6:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"8954:6:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"9340:6:19","valueSize":1},{"declaration":8102,"isOffset":false,"isSlot":false,"src":"9416:6:19","valueSize":1},{"declaration":8100,"isOffset":false,"isSlot":false,"src":"9037:2:19","valueSize":1}],"id":8114,"nodeType":"InlineAssembly","src":"8378:1143:19"},{"expression":{"arguments":[{"expression":{"id":8116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9550:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9554:6:19","memberName":"sender","nodeType":"MemberAccess","src":"9550:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8118,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"9562:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8119,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"9566:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8115,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"9530:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9530:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8121,"nodeType":"ExpressionStatement","src":"9530:43:19"},{"expression":{"hexValue":"74727565","id":8122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9590:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8106,"id":8123,"nodeType":"Return","src":"9583:11:19"}]},"documentation":{"id":8098,"nodeType":"StructuredDocumentation","src":"8014:176:19","text":"@dev Transfer `amount` tokens from the caller to `to`.\n Requirements:\n - `from` must at least have `amount`.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":8125,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"8204:8:19","nodeType":"FunctionDefinition","parameters":{"id":8103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"to","nameLocation":"8221:2:19","nodeType":"VariableDeclaration","scope":8125,"src":"8213:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8099,"name":"address","nodeType":"ElementaryTypeName","src":"8213:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8102,"mutability":"mutable","name":"amount","nameLocation":"8233:6:19","nodeType":"VariableDeclaration","scope":8125,"src":"8225:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8101,"name":"uint256","nodeType":"ElementaryTypeName","src":"8225:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8212:28:19"},"returnParameters":{"id":8106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8125,"src":"8265:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8104,"name":"bool","nodeType":"ElementaryTypeName","src":"8265:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8264:6:19"},"scope":8369,"src":"8195:1406:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8152,"nodeType":"Block","src":"10063:2097:19","statements":[{"expression":{"arguments":[{"id":8138,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8128,"src":"10094:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8139,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8130,"src":"10100:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8140,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8132,"src":"10104:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8137,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"10073:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10073:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8142,"nodeType":"ExpressionStatement","src":"10073:38:19"},{"AST":{"nativeSrc":"10173:1913:19","nodeType":"YulBlock","src":"10173:1913:19","statements":[{"nativeSrc":"10187:26:19","nodeType":"YulVariableDeclaration","src":"10187:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"10204:2:19","nodeType":"YulLiteral","src":"10204:2:19","type":"","value":"96"},{"name":"from","nativeSrc":"10208:4:19","nodeType":"YulIdentifier","src":"10208:4:19"}],"functionName":{"name":"shl","nativeSrc":"10200:3:19","nodeType":"YulIdentifier","src":"10200:3:19"},"nativeSrc":"10200:13:19","nodeType":"YulFunctionCall","src":"10200:13:19"},"variables":[{"name":"from_","nativeSrc":"10191:5:19","nodeType":"YulTypedName","src":"10191:5:19","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10295:4:19","nodeType":"YulLiteral","src":"10295:4:19","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10301:6:19","nodeType":"YulIdentifier","src":"10301:6:19"},"nativeSrc":"10301:8:19","nodeType":"YulFunctionCall","src":"10301:8:19"}],"functionName":{"name":"mstore","nativeSrc":"10288:6:19","nodeType":"YulIdentifier","src":"10288:6:19"},"nativeSrc":"10288:22:19","nodeType":"YulFunctionCall","src":"10288:22:19"},"nativeSrc":"10288:22:19","nodeType":"YulExpressionStatement","src":"10288:22:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10330:4:19","nodeType":"YulLiteral","src":"10330:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"10339:5:19","nodeType":"YulIdentifier","src":"10339:5:19"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"10346:20:19","nodeType":"YulIdentifier","src":"10346:20:19"}],"functionName":{"name":"or","nativeSrc":"10336:2:19","nodeType":"YulIdentifier","src":"10336:2:19"},"nativeSrc":"10336:31:19","nodeType":"YulFunctionCall","src":"10336:31:19"}],"functionName":{"name":"mstore","nativeSrc":"10323:6:19","nodeType":"YulIdentifier","src":"10323:6:19"},"nativeSrc":"10323:45:19","nodeType":"YulFunctionCall","src":"10323:45:19"},"nativeSrc":"10323:45:19","nodeType":"YulExpressionStatement","src":"10323:45:19"},{"nativeSrc":"10381:42:19","nodeType":"YulVariableDeclaration","src":"10381:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"10412:4:19","nodeType":"YulLiteral","src":"10412:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10418:4:19","nodeType":"YulLiteral","src":"10418:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"10402:9:19","nodeType":"YulIdentifier","src":"10402:9:19"},"nativeSrc":"10402:21:19","nodeType":"YulFunctionCall","src":"10402:21:19"},"variables":[{"name":"allowanceSlot","nativeSrc":"10385:13:19","nodeType":"YulTypedName","src":"10385:13:19","type":""}]},{"nativeSrc":"10436:38:19","nodeType":"YulVariableDeclaration","src":"10436:38:19","value":{"arguments":[{"name":"allowanceSlot","nativeSrc":"10460:13:19","nodeType":"YulIdentifier","src":"10460:13:19"}],"functionName":{"name":"sload","nativeSrc":"10454:5:19","nodeType":"YulIdentifier","src":"10454:5:19"},"nativeSrc":"10454:20:19","nodeType":"YulFunctionCall","src":"10454:20:19"},"variables":[{"name":"allowance_","nativeSrc":"10440:10:19","nodeType":"YulTypedName","src":"10440:10:19","type":""}]},{"body":{"nativeSrc":"10575:396:19","nodeType":"YulBlock","src":"10575:396:19","statements":[{"body":{"nativeSrc":"10700:133:19","nodeType":"YulBlock","src":"10700:133:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10729:4:19","nodeType":"YulLiteral","src":"10729:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10735:10:19","nodeType":"YulLiteral","src":"10735:10:19","type":"","value":"0x13be252b"}],"functionName":{"name":"mstore","nativeSrc":"10722:6:19","nodeType":"YulIdentifier","src":"10722:6:19"},"nativeSrc":"10722:24:19","nodeType":"YulFunctionCall","src":"10722:24:19"},"nativeSrc":"10722:24:19","nodeType":"YulExpressionStatement","src":"10722:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10804:4:19","nodeType":"YulLiteral","src":"10804:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10810:4:19","nodeType":"YulLiteral","src":"10810:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10797:6:19","nodeType":"YulIdentifier","src":"10797:6:19"},"nativeSrc":"10797:18:19","nodeType":"YulFunctionCall","src":"10797:18:19"},"nativeSrc":"10797:18:19","nodeType":"YulExpressionStatement","src":"10797:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"10680:6:19","nodeType":"YulIdentifier","src":"10680:6:19"},{"name":"allowance_","nativeSrc":"10688:10:19","nodeType":"YulIdentifier","src":"10688:10:19"}],"functionName":{"name":"gt","nativeSrc":"10677:2:19","nodeType":"YulIdentifier","src":"10677:2:19"},"nativeSrc":"10677:22:19","nodeType":"YulFunctionCall","src":"10677:22:19"},"nativeSrc":"10674:159:19","nodeType":"YulIf","src":"10674:159:19"},{"expression":{"arguments":[{"name":"allowanceSlot","nativeSrc":"10918:13:19","nodeType":"YulIdentifier","src":"10918:13:19"},{"arguments":[{"name":"allowance_","nativeSrc":"10937:10:19","nodeType":"YulIdentifier","src":"10937:10:19"},{"name":"amount","nativeSrc":"10949:6:19","nodeType":"YulIdentifier","src":"10949:6:19"}],"functionName":{"name":"sub","nativeSrc":"10933:3:19","nodeType":"YulIdentifier","src":"10933:3:19"},"nativeSrc":"10933:23:19","nodeType":"YulFunctionCall","src":"10933:23:19"}],"functionName":{"name":"sstore","nativeSrc":"10911:6:19","nodeType":"YulIdentifier","src":"10911:6:19"},"nativeSrc":"10911:46:19","nodeType":"YulFunctionCall","src":"10911:46:19"},"nativeSrc":"10911:46:19","nodeType":"YulExpressionStatement","src":"10911:46:19"}]},"condition":{"arguments":[{"name":"allowance_","nativeSrc":"10560:10:19","nodeType":"YulIdentifier","src":"10560:10:19"},{"kind":"number","nativeSrc":"10572:1:19","nodeType":"YulLiteral","src":"10572:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10556:3:19","nodeType":"YulIdentifier","src":"10556:3:19"},"nativeSrc":"10556:18:19","nodeType":"YulFunctionCall","src":"10556:18:19"},"nativeSrc":"10553:418:19","nodeType":"YulIf","src":"10553:418:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11051:4:19","nodeType":"YulLiteral","src":"11051:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"11060:5:19","nodeType":"YulIdentifier","src":"11060:5:19"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"11067:18:19","nodeType":"YulIdentifier","src":"11067:18:19"}],"functionName":{"name":"or","nativeSrc":"11057:2:19","nodeType":"YulIdentifier","src":"11057:2:19"},"nativeSrc":"11057:29:19","nodeType":"YulFunctionCall","src":"11057:29:19"}],"functionName":{"name":"mstore","nativeSrc":"11044:6:19","nodeType":"YulIdentifier","src":"11044:6:19"},"nativeSrc":"11044:43:19","nodeType":"YulFunctionCall","src":"11044:43:19"},"nativeSrc":"11044:43:19","nodeType":"YulExpressionStatement","src":"11044:43:19"},{"nativeSrc":"11100:44:19","nodeType":"YulVariableDeclaration","src":"11100:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"11133:4:19","nodeType":"YulLiteral","src":"11133:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"11139:4:19","nodeType":"YulLiteral","src":"11139:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11123:9:19","nodeType":"YulIdentifier","src":"11123:9:19"},"nativeSrc":"11123:21:19","nodeType":"YulFunctionCall","src":"11123:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"11104:15:19","nodeType":"YulTypedName","src":"11104:15:19","type":""}]},{"nativeSrc":"11157:41:19","nodeType":"YulVariableDeclaration","src":"11157:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"11182:15:19","nodeType":"YulIdentifier","src":"11182:15:19"}],"functionName":{"name":"sload","nativeSrc":"11176:5:19","nodeType":"YulIdentifier","src":"11176:5:19"},"nativeSrc":"11176:22:19","nodeType":"YulFunctionCall","src":"11176:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"11161:11:19","nodeType":"YulTypedName","src":"11161:11:19","type":""}]},{"body":{"nativeSrc":"11285:119:19","nodeType":"YulBlock","src":"11285:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11310:4:19","nodeType":"YulLiteral","src":"11310:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11316:10:19","nodeType":"YulLiteral","src":"11316:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"11303:6:19","nodeType":"YulIdentifier","src":"11303:6:19"},"nativeSrc":"11303:24:19","nodeType":"YulFunctionCall","src":"11303:24:19"},"nativeSrc":"11303:24:19","nodeType":"YulExpressionStatement","src":"11303:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11379:4:19","nodeType":"YulLiteral","src":"11379:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11385:4:19","nodeType":"YulLiteral","src":"11385:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11372:6:19","nodeType":"YulIdentifier","src":"11372:6:19"},"nativeSrc":"11372:18:19","nodeType":"YulFunctionCall","src":"11372:18:19"},"nativeSrc":"11372:18:19","nodeType":"YulExpressionStatement","src":"11372:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"11264:6:19","nodeType":"YulIdentifier","src":"11264:6:19"},{"name":"fromBalance","nativeSrc":"11272:11:19","nodeType":"YulIdentifier","src":"11272:11:19"}],"functionName":{"name":"gt","nativeSrc":"11261:2:19","nodeType":"YulIdentifier","src":"11261:2:19"},"nativeSrc":"11261:23:19","nodeType":"YulFunctionCall","src":"11261:23:19"},"nativeSrc":"11258:146:19","nodeType":"YulIf","src":"11258:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"11479:15:19","nodeType":"YulIdentifier","src":"11479:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"11500:11:19","nodeType":"YulIdentifier","src":"11500:11:19"},{"name":"amount","nativeSrc":"11513:6:19","nodeType":"YulIdentifier","src":"11513:6:19"}],"functionName":{"name":"sub","nativeSrc":"11496:3:19","nodeType":"YulIdentifier","src":"11496:3:19"},"nativeSrc":"11496:24:19","nodeType":"YulFunctionCall","src":"11496:24:19"}],"functionName":{"name":"sstore","nativeSrc":"11472:6:19","nodeType":"YulIdentifier","src":"11472:6:19"},"nativeSrc":"11472:49:19","nodeType":"YulFunctionCall","src":"11472:49:19"},"nativeSrc":"11472:49:19","nodeType":"YulExpressionStatement","src":"11472:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11590:4:19","nodeType":"YulLiteral","src":"11590:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"11596:2:19","nodeType":"YulIdentifier","src":"11596:2:19"}],"functionName":{"name":"mstore","nativeSrc":"11583:6:19","nodeType":"YulIdentifier","src":"11583:6:19"},"nativeSrc":"11583:16:19","nodeType":"YulFunctionCall","src":"11583:16:19"},"nativeSrc":"11583:16:19","nodeType":"YulExpressionStatement","src":"11583:16:19"},{"nativeSrc":"11612:42:19","nodeType":"YulVariableDeclaration","src":"11612:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"11643:4:19","nodeType":"YulLiteral","src":"11643:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"11649:4:19","nodeType":"YulLiteral","src":"11649:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11633:9:19","nodeType":"YulIdentifier","src":"11633:9:19"},"nativeSrc":"11633:21:19","nodeType":"YulFunctionCall","src":"11633:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"11616:13:19","nodeType":"YulTypedName","src":"11616:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"11858:13:19","nodeType":"YulIdentifier","src":"11858:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"11883:13:19","nodeType":"YulIdentifier","src":"11883:13:19"}],"functionName":{"name":"sload","nativeSrc":"11877:5:19","nodeType":"YulIdentifier","src":"11877:5:19"},"nativeSrc":"11877:20:19","nodeType":"YulFunctionCall","src":"11877:20:19"},{"name":"amount","nativeSrc":"11899:6:19","nodeType":"YulIdentifier","src":"11899:6:19"}],"functionName":{"name":"add","nativeSrc":"11873:3:19","nodeType":"YulIdentifier","src":"11873:3:19"},"nativeSrc":"11873:33:19","nodeType":"YulFunctionCall","src":"11873:33:19"}],"functionName":{"name":"sstore","nativeSrc":"11851:6:19","nodeType":"YulIdentifier","src":"11851:6:19"},"nativeSrc":"11851:56:19","nodeType":"YulFunctionCall","src":"11851:56:19"},"nativeSrc":"11851:56:19","nodeType":"YulExpressionStatement","src":"11851:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11969:4:19","nodeType":"YulLiteral","src":"11969:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"11975:6:19","nodeType":"YulIdentifier","src":"11975:6:19"}],"functionName":{"name":"mstore","nativeSrc":"11962:6:19","nodeType":"YulIdentifier","src":"11962:6:19"},"nativeSrc":"11962:20:19","nodeType":"YulFunctionCall","src":"11962:20:19"},"nativeSrc":"11962:20:19","nodeType":"YulExpressionStatement","src":"11962:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12000:4:19","nodeType":"YulLiteral","src":"12000:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"12006:4:19","nodeType":"YulLiteral","src":"12006:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"12012:25:19","nodeType":"YulIdentifier","src":"12012:25:19"},{"arguments":[{"kind":"number","nativeSrc":"12043:2:19","nodeType":"YulLiteral","src":"12043:2:19","type":"","value":"96"},{"name":"from_","nativeSrc":"12047:5:19","nodeType":"YulIdentifier","src":"12047:5:19"}],"functionName":{"name":"shr","nativeSrc":"12039:3:19","nodeType":"YulIdentifier","src":"12039:3:19"},"nativeSrc":"12039:14:19","nodeType":"YulFunctionCall","src":"12039:14:19"},{"arguments":[{"kind":"number","nativeSrc":"12059:2:19","nodeType":"YulLiteral","src":"12059:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"12069:4:19","nodeType":"YulLiteral","src":"12069:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"12063:5:19","nodeType":"YulIdentifier","src":"12063:5:19"},"nativeSrc":"12063:11:19","nodeType":"YulFunctionCall","src":"12063:11:19"}],"functionName":{"name":"shr","nativeSrc":"12055:3:19","nodeType":"YulIdentifier","src":"12055:3:19"},"nativeSrc":"12055:20:19","nodeType":"YulFunctionCall","src":"12055:20:19"}],"functionName":{"name":"log3","nativeSrc":"11995:4:19","nodeType":"YulIdentifier","src":"11995:4:19"},"nativeSrc":"11995:81:19","nodeType":"YulFunctionCall","src":"11995:81:19"},"nativeSrc":"11995:81:19","nodeType":"YulExpressionStatement","src":"11995:81:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"10346:20:19","valueSize":1},{"declaration":8008,"isOffset":false,"isSlot":false,"src":"11067:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"12012:25:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"10680:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"10949:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11264:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11513:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11899:6:19","valueSize":1},{"declaration":8132,"isOffset":false,"isSlot":false,"src":"11975:6:19","valueSize":1},{"declaration":8128,"isOffset":false,"isSlot":false,"src":"10208:4:19","valueSize":1},{"declaration":8130,"isOffset":false,"isSlot":false,"src":"11596:2:19","valueSize":1}],"id":8143,"nodeType":"InlineAssembly","src":"10164:1922:19"},{"expression":{"arguments":[{"id":8145,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8128,"src":"12115:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8146,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8130,"src":"12121:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8147,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8132,"src":"12125:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8144,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"12095:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12095:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8149,"nodeType":"ExpressionStatement","src":"12095:37:19"},{"expression":{"hexValue":"74727565","id":8150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12149:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8136,"id":8151,"nodeType":"Return","src":"12142:11:19"}]},"documentation":{"id":8126,"nodeType":"StructuredDocumentation","src":"9607:357:19","text":"@dev Transfers `amount` tokens from `from` to `to`.\n Note: Does not update the allowance if it is the maximum uint256 value.\n Requirements:\n - `from` must at least have `amount`.\n - The caller must have at least `amount` of allowance to transfer the tokens of `from`.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8153,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"9978:12:19","nodeType":"FunctionDefinition","parameters":{"id":8133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8128,"mutability":"mutable","name":"from","nameLocation":"9999:4:19","nodeType":"VariableDeclaration","scope":8153,"src":"9991:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8127,"name":"address","nodeType":"ElementaryTypeName","src":"9991:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8130,"mutability":"mutable","name":"to","nameLocation":"10013:2:19","nodeType":"VariableDeclaration","scope":8153,"src":"10005:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8129,"name":"address","nodeType":"ElementaryTypeName","src":"10005:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8132,"mutability":"mutable","name":"amount","nameLocation":"10025:6:19","nodeType":"VariableDeclaration","scope":8153,"src":"10017:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8131,"name":"uint256","nodeType":"ElementaryTypeName","src":"10017:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9990:42:19"},"returnParameters":{"id":8136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8153,"src":"10057:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8134,"name":"bool","nodeType":"ElementaryTypeName","src":"10057:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10056:6:19"},"scope":8369,"src":"9969:2191:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8159,"nodeType":"Block","src":"12667:2:19","statements":[]},"documentation":{"id":8154,"nodeType":"StructuredDocumentation","src":"12449:137:19","text":"@dev For more performance, override to return the constant value\n of `keccak256(bytes(name()))` if `name()` will never change."},"id":8160,"implemented":true,"kind":"function","modifiers":[],"name":"_constantNameHash","nameLocation":"12600:17:19","nodeType":"FunctionDefinition","parameters":{"id":8155,"nodeType":"ParameterList","parameters":[],"src":"12617:2:19"},"returnParameters":{"id":8158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8157,"mutability":"mutable","name":"result","nameLocation":"12659:6:19","nodeType":"VariableDeclaration","scope":8160,"src":"12651:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12651:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12650:16:19"},"scope":8369,"src":"12591:78:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8169,"nodeType":"Block","src":"12876:264:19","statements":[{"AST":{"nativeSrc":"12938:196:19","nodeType":"YulBlock","src":"12938:196:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13017:4:19","nodeType":"YulLiteral","src":"13017:4:19","type":"","value":"0x0c"},{"name":"_NONCES_SLOT_SEED","nativeSrc":"13023:17:19","nodeType":"YulIdentifier","src":"13023:17:19"}],"functionName":{"name":"mstore","nativeSrc":"13010:6:19","nodeType":"YulIdentifier","src":"13010:6:19"},"nativeSrc":"13010:31:19","nodeType":"YulFunctionCall","src":"13010:31:19"},"nativeSrc":"13010:31:19","nodeType":"YulExpressionStatement","src":"13010:31:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13061:4:19","nodeType":"YulLiteral","src":"13061:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"13067:5:19","nodeType":"YulIdentifier","src":"13067:5:19"}],"functionName":{"name":"mstore","nativeSrc":"13054:6:19","nodeType":"YulIdentifier","src":"13054:6:19"},"nativeSrc":"13054:19:19","nodeType":"YulFunctionCall","src":"13054:19:19"},"nativeSrc":"13054:19:19","nodeType":"YulExpressionStatement","src":"13054:19:19"},{"nativeSrc":"13086:38:19","nodeType":"YulAssignment","src":"13086:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13112:4:19","nodeType":"YulLiteral","src":"13112:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"13118:4:19","nodeType":"YulLiteral","src":"13118:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"13102:9:19","nodeType":"YulIdentifier","src":"13102:9:19"},"nativeSrc":"13102:21:19","nodeType":"YulFunctionCall","src":"13102:21:19"}],"functionName":{"name":"sload","nativeSrc":"13096:5:19","nodeType":"YulIdentifier","src":"13096:5:19"},"nativeSrc":"13096:28:19","nodeType":"YulFunctionCall","src":"13096:28:19"},"variableNames":[{"name":"result","nativeSrc":"13086:6:19","nodeType":"YulIdentifier","src":"13086:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8016,"isOffset":false,"isSlot":false,"src":"13023:17:19","valueSize":1},{"declaration":8163,"isOffset":false,"isSlot":false,"src":"13067:5:19","valueSize":1},{"declaration":8166,"isOffset":false,"isSlot":false,"src":"13086:6:19","valueSize":1}],"id":8168,"nodeType":"InlineAssembly","src":"12929:205:19"}]},"documentation":{"id":8161,"nodeType":"StructuredDocumentation","src":"12675:120:19","text":"@dev Returns the current nonce for `owner`.\n This value is used to compute the signature for EIP-2612 permit."},"functionSelector":"7ecebe00","id":8170,"implemented":true,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"12809:6:19","nodeType":"FunctionDefinition","parameters":{"id":8164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8163,"mutability":"mutable","name":"owner","nameLocation":"12824:5:19","nodeType":"VariableDeclaration","scope":8170,"src":"12816:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8162,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12815:15:19"},"returnParameters":{"id":8167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8166,"mutability":"mutable","name":"result","nameLocation":"12868:6:19","nodeType":"VariableDeclaration","scope":8170,"src":"12860:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8165,"name":"uint256","nodeType":"ElementaryTypeName","src":"12860:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12859:16:19"},"scope":8369,"src":"12800:340:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8211,"nodeType":"Block","src":"13513:3026:19","statements":[{"assignments":[8189],"declarations":[{"constant":false,"id":8189,"mutability":"mutable","name":"nameHash","nameLocation":"13531:8:19","nodeType":"VariableDeclaration","scope":8211,"src":"13523:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13523:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8192,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8190,"name":"_constantNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"13542:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":8191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13542:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13523:38:19"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8193,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"13669:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13689:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13681:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13681:7:19","typeDescriptions":{}}},"id":8197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13681:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13669:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8209,"nodeType":"IfStatement","src":"13665:63:19","trueBody":{"expression":{"id":8207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8199,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"13693:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8203,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8038,"src":"13720:4:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":8204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13720:6:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13714:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8201,"name":"bytes","nodeType":"ElementaryTypeName","src":"13714:5:19","typeDescriptions":{}}},"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13714:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8200,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13704:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13693:35:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8208,"nodeType":"ExpressionStatement","src":"13693:35:19"}},{"AST":{"nativeSrc":"13790:2743:19","nodeType":"YulBlock","src":"13790:2743:19","statements":[{"body":{"nativeSrc":"13906:113:19","nodeType":"YulBlock","src":"13906:113:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13931:4:19","nodeType":"YulLiteral","src":"13931:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13937:10:19","nodeType":"YulLiteral","src":"13937:10:19","type":"","value":"0x1a15a3cc"}],"functionName":{"name":"mstore","nativeSrc":"13924:6:19","nodeType":"YulIdentifier","src":"13924:6:19"},"nativeSrc":"13924:24:19","nodeType":"YulFunctionCall","src":"13924:24:19"},"nativeSrc":"13924:24:19","nodeType":"YulExpressionStatement","src":"13924:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13994:4:19","nodeType":"YulLiteral","src":"13994:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14000:4:19","nodeType":"YulLiteral","src":"14000:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13987:6:19","nodeType":"YulIdentifier","src":"13987:6:19"},"nativeSrc":"13987:18:19","nodeType":"YulFunctionCall","src":"13987:18:19"},"nativeSrc":"13987:18:19","nodeType":"YulExpressionStatement","src":"13987:18:19"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"timestamp","nativeSrc":"13883:9:19","nodeType":"YulIdentifier","src":"13883:9:19"},"nativeSrc":"13883:11:19","nodeType":"YulFunctionCall","src":"13883:11:19"},{"name":"deadline","nativeSrc":"13896:8:19","nodeType":"YulIdentifier","src":"13896:8:19"}],"functionName":{"name":"gt","nativeSrc":"13880:2:19","nodeType":"YulIdentifier","src":"13880:2:19"},"nativeSrc":"13880:25:19","nodeType":"YulFunctionCall","src":"13880:25:19"},"nativeSrc":"13877:142:19","nodeType":"YulIf","src":"13877:142:19"},{"nativeSrc":"14032:20:19","nodeType":"YulVariableDeclaration","src":"14032:20:19","value":{"arguments":[{"kind":"number","nativeSrc":"14047:4:19","nodeType":"YulLiteral","src":"14047:4:19","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14041:5:19","nodeType":"YulIdentifier","src":"14041:5:19"},"nativeSrc":"14041:11:19","nodeType":"YulFunctionCall","src":"14041:11:19"},"variables":[{"name":"m","nativeSrc":"14036:1:19","nodeType":"YulTypedName","src":"14036:1:19","type":""}]},{"nativeSrc":"14138:32:19","nodeType":"YulAssignment","src":"14138:32:19","value":{"arguments":[{"kind":"number","nativeSrc":"14151:2:19","nodeType":"YulLiteral","src":"14151:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14159:2:19","nodeType":"YulLiteral","src":"14159:2:19","type":"","value":"96"},{"name":"owner","nativeSrc":"14163:5:19","nodeType":"YulIdentifier","src":"14163:5:19"}],"functionName":{"name":"shl","nativeSrc":"14155:3:19","nodeType":"YulIdentifier","src":"14155:3:19"},"nativeSrc":"14155:14:19","nodeType":"YulFunctionCall","src":"14155:14:19"}],"functionName":{"name":"shr","nativeSrc":"14147:3:19","nodeType":"YulIdentifier","src":"14147:3:19"},"nativeSrc":"14147:23:19","nodeType":"YulFunctionCall","src":"14147:23:19"},"variableNames":[{"name":"owner","nativeSrc":"14138:5:19","nodeType":"YulIdentifier","src":"14138:5:19"}]},{"nativeSrc":"14183:36:19","nodeType":"YulAssignment","src":"14183:36:19","value":{"arguments":[{"kind":"number","nativeSrc":"14198:2:19","nodeType":"YulLiteral","src":"14198:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14206:2:19","nodeType":"YulLiteral","src":"14206:2:19","type":"","value":"96"},{"name":"spender","nativeSrc":"14210:7:19","nodeType":"YulIdentifier","src":"14210:7:19"}],"functionName":{"name":"shl","nativeSrc":"14202:3:19","nodeType":"YulIdentifier","src":"14202:3:19"},"nativeSrc":"14202:16:19","nodeType":"YulFunctionCall","src":"14202:16:19"}],"functionName":{"name":"shr","nativeSrc":"14194:3:19","nodeType":"YulIdentifier","src":"14194:3:19"},"nativeSrc":"14194:25:19","nodeType":"YulFunctionCall","src":"14194:25:19"},"variableNames":[{"name":"spender","nativeSrc":"14183:7:19","nodeType":"YulIdentifier","src":"14183:7:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14297:4:19","nodeType":"YulLiteral","src":"14297:4:19","type":"","value":"0x0e"},{"name":"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX","nativeSrc":"14303:39:19","nodeType":"YulIdentifier","src":"14303:39:19"}],"functionName":{"name":"mstore","nativeSrc":"14290:6:19","nodeType":"YulIdentifier","src":"14290:6:19"},"nativeSrc":"14290:53:19","nodeType":"YulFunctionCall","src":"14290:53:19"},"nativeSrc":"14290:53:19","nodeType":"YulExpressionStatement","src":"14290:53:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14363:4:19","nodeType":"YulLiteral","src":"14363:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"14369:5:19","nodeType":"YulIdentifier","src":"14369:5:19"}],"functionName":{"name":"mstore","nativeSrc":"14356:6:19","nodeType":"YulIdentifier","src":"14356:6:19"},"nativeSrc":"14356:19:19","nodeType":"YulFunctionCall","src":"14356:19:19"},"nativeSrc":"14356:19:19","nodeType":"YulExpressionStatement","src":"14356:19:19"},{"nativeSrc":"14388:38:19","nodeType":"YulVariableDeclaration","src":"14388:38:19","value":{"arguments":[{"kind":"number","nativeSrc":"14415:4:19","nodeType":"YulLiteral","src":"14415:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"14421:4:19","nodeType":"YulLiteral","src":"14421:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"14405:9:19","nodeType":"YulIdentifier","src":"14405:9:19"},"nativeSrc":"14405:21:19","nodeType":"YulFunctionCall","src":"14405:21:19"},"variables":[{"name":"nonceSlot","nativeSrc":"14392:9:19","nodeType":"YulTypedName","src":"14392:9:19","type":""}]},{"nativeSrc":"14439:34:19","nodeType":"YulVariableDeclaration","src":"14439:34:19","value":{"arguments":[{"name":"nonceSlot","nativeSrc":"14463:9:19","nodeType":"YulIdentifier","src":"14463:9:19"}],"functionName":{"name":"sload","nativeSrc":"14457:5:19","nodeType":"YulIdentifier","src":"14457:5:19"},"nativeSrc":"14457:16:19","nodeType":"YulFunctionCall","src":"14457:16:19"},"variables":[{"name":"nonceValue","nativeSrc":"14443:10:19","nodeType":"YulTypedName","src":"14443:10:19","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"14538:1:19","nodeType":"YulIdentifier","src":"14538:1:19"},{"name":"_DOMAIN_TYPEHASH","nativeSrc":"14541:16:19","nodeType":"YulIdentifier","src":"14541:16:19"}],"functionName":{"name":"mstore","nativeSrc":"14531:6:19","nodeType":"YulIdentifier","src":"14531:6:19"},"nativeSrc":"14531:27:19","nodeType":"YulFunctionCall","src":"14531:27:19"},"nativeSrc":"14531:27:19","nodeType":"YulExpressionStatement","src":"14531:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14582:1:19","nodeType":"YulIdentifier","src":"14582:1:19"},{"kind":"number","nativeSrc":"14585:4:19","nodeType":"YulLiteral","src":"14585:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14578:3:19","nodeType":"YulIdentifier","src":"14578:3:19"},"nativeSrc":"14578:12:19","nodeType":"YulFunctionCall","src":"14578:12:19"},{"name":"nameHash","nativeSrc":"14592:8:19","nodeType":"YulIdentifier","src":"14592:8:19"}],"functionName":{"name":"mstore","nativeSrc":"14571:6:19","nodeType":"YulIdentifier","src":"14571:6:19"},"nativeSrc":"14571:30:19","nodeType":"YulFunctionCall","src":"14571:30:19"},"nativeSrc":"14571:30:19","nodeType":"YulExpressionStatement","src":"14571:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14625:1:19","nodeType":"YulIdentifier","src":"14625:1:19"},{"kind":"number","nativeSrc":"14628:4:19","nodeType":"YulLiteral","src":"14628:4:19","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14621:3:19","nodeType":"YulIdentifier","src":"14621:3:19"},"nativeSrc":"14621:12:19","nodeType":"YulFunctionCall","src":"14621:12:19"},{"name":"_VERSION_HASH","nativeSrc":"14635:13:19","nodeType":"YulIdentifier","src":"14635:13:19"}],"functionName":{"name":"mstore","nativeSrc":"14614:6:19","nodeType":"YulIdentifier","src":"14614:6:19"},"nativeSrc":"14614:35:19","nodeType":"YulFunctionCall","src":"14614:35:19"},"nativeSrc":"14614:35:19","nodeType":"YulExpressionStatement","src":"14614:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14673:1:19","nodeType":"YulIdentifier","src":"14673:1:19"},{"kind":"number","nativeSrc":"14676:4:19","nodeType":"YulLiteral","src":"14676:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14669:3:19","nodeType":"YulIdentifier","src":"14669:3:19"},"nativeSrc":"14669:12:19","nodeType":"YulFunctionCall","src":"14669:12:19"},{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"14683:7:19","nodeType":"YulIdentifier","src":"14683:7:19"},"nativeSrc":"14683:9:19","nodeType":"YulFunctionCall","src":"14683:9:19"}],"functionName":{"name":"mstore","nativeSrc":"14662:6:19","nodeType":"YulIdentifier","src":"14662:6:19"},"nativeSrc":"14662:31:19","nodeType":"YulFunctionCall","src":"14662:31:19"},"nativeSrc":"14662:31:19","nodeType":"YulExpressionStatement","src":"14662:31:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14717:1:19","nodeType":"YulIdentifier","src":"14717:1:19"},{"kind":"number","nativeSrc":"14720:4:19","nodeType":"YulLiteral","src":"14720:4:19","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14713:3:19","nodeType":"YulIdentifier","src":"14713:3:19"},"nativeSrc":"14713:12:19","nodeType":"YulFunctionCall","src":"14713:12:19"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"14727:7:19","nodeType":"YulIdentifier","src":"14727:7:19"},"nativeSrc":"14727:9:19","nodeType":"YulFunctionCall","src":"14727:9:19"}],"functionName":{"name":"mstore","nativeSrc":"14706:6:19","nodeType":"YulIdentifier","src":"14706:6:19"},"nativeSrc":"14706:31:19","nodeType":"YulFunctionCall","src":"14706:31:19"},"nativeSrc":"14706:31:19","nodeType":"YulExpressionStatement","src":"14706:31:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14757:4:19","nodeType":"YulLiteral","src":"14757:4:19","type":"","value":"0x2e"},{"arguments":[{"name":"m","nativeSrc":"14773:1:19","nodeType":"YulIdentifier","src":"14773:1:19"},{"kind":"number","nativeSrc":"14776:4:19","nodeType":"YulLiteral","src":"14776:4:19","type":"","value":"0xa0"}],"functionName":{"name":"keccak256","nativeSrc":"14763:9:19","nodeType":"YulIdentifier","src":"14763:9:19"},"nativeSrc":"14763:18:19","nodeType":"YulFunctionCall","src":"14763:18:19"}],"functionName":{"name":"mstore","nativeSrc":"14750:6:19","nodeType":"YulIdentifier","src":"14750:6:19"},"nativeSrc":"14750:32:19","nodeType":"YulFunctionCall","src":"14750:32:19"},"nativeSrc":"14750:32:19","nodeType":"YulExpressionStatement","src":"14750:32:19"},{"expression":{"arguments":[{"name":"m","nativeSrc":"14842:1:19","nodeType":"YulIdentifier","src":"14842:1:19"},{"name":"_PERMIT_TYPEHASH","nativeSrc":"14845:16:19","nodeType":"YulIdentifier","src":"14845:16:19"}],"functionName":{"name":"mstore","nativeSrc":"14835:6:19","nodeType":"YulIdentifier","src":"14835:6:19"},"nativeSrc":"14835:27:19","nodeType":"YulFunctionCall","src":"14835:27:19"},"nativeSrc":"14835:27:19","nodeType":"YulExpressionStatement","src":"14835:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14886:1:19","nodeType":"YulIdentifier","src":"14886:1:19"},{"kind":"number","nativeSrc":"14889:4:19","nodeType":"YulLiteral","src":"14889:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14882:3:19","nodeType":"YulIdentifier","src":"14882:3:19"},"nativeSrc":"14882:12:19","nodeType":"YulFunctionCall","src":"14882:12:19"},{"name":"owner","nativeSrc":"14896:5:19","nodeType":"YulIdentifier","src":"14896:5:19"}],"functionName":{"name":"mstore","nativeSrc":"14875:6:19","nodeType":"YulIdentifier","src":"14875:6:19"},"nativeSrc":"14875:27:19","nodeType":"YulFunctionCall","src":"14875:27:19"},"nativeSrc":"14875:27:19","nodeType":"YulExpressionStatement","src":"14875:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14926:1:19","nodeType":"YulIdentifier","src":"14926:1:19"},{"kind":"number","nativeSrc":"14929:4:19","nodeType":"YulLiteral","src":"14929:4:19","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14922:3:19","nodeType":"YulIdentifier","src":"14922:3:19"},"nativeSrc":"14922:12:19","nodeType":"YulFunctionCall","src":"14922:12:19"},{"name":"spender","nativeSrc":"14936:7:19","nodeType":"YulIdentifier","src":"14936:7:19"}],"functionName":{"name":"mstore","nativeSrc":"14915:6:19","nodeType":"YulIdentifier","src":"14915:6:19"},"nativeSrc":"14915:29:19","nodeType":"YulFunctionCall","src":"14915:29:19"},"nativeSrc":"14915:29:19","nodeType":"YulExpressionStatement","src":"14915:29:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14968:1:19","nodeType":"YulIdentifier","src":"14968:1:19"},{"kind":"number","nativeSrc":"14971:4:19","nodeType":"YulLiteral","src":"14971:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14964:3:19","nodeType":"YulIdentifier","src":"14964:3:19"},"nativeSrc":"14964:12:19","nodeType":"YulFunctionCall","src":"14964:12:19"},{"name":"value","nativeSrc":"14978:5:19","nodeType":"YulIdentifier","src":"14978:5:19"}],"functionName":{"name":"mstore","nativeSrc":"14957:6:19","nodeType":"YulIdentifier","src":"14957:6:19"},"nativeSrc":"14957:27:19","nodeType":"YulFunctionCall","src":"14957:27:19"},"nativeSrc":"14957:27:19","nodeType":"YulExpressionStatement","src":"14957:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15008:1:19","nodeType":"YulIdentifier","src":"15008:1:19"},{"kind":"number","nativeSrc":"15011:4:19","nodeType":"YulLiteral","src":"15011:4:19","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15004:3:19","nodeType":"YulIdentifier","src":"15004:3:19"},"nativeSrc":"15004:12:19","nodeType":"YulFunctionCall","src":"15004:12:19"},{"name":"nonceValue","nativeSrc":"15018:10:19","nodeType":"YulIdentifier","src":"15018:10:19"}],"functionName":{"name":"mstore","nativeSrc":"14997:6:19","nodeType":"YulIdentifier","src":"14997:6:19"},"nativeSrc":"14997:32:19","nodeType":"YulFunctionCall","src":"14997:32:19"},"nativeSrc":"14997:32:19","nodeType":"YulExpressionStatement","src":"14997:32:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15053:1:19","nodeType":"YulIdentifier","src":"15053:1:19"},{"kind":"number","nativeSrc":"15056:4:19","nodeType":"YulLiteral","src":"15056:4:19","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15049:3:19","nodeType":"YulIdentifier","src":"15049:3:19"},"nativeSrc":"15049:12:19","nodeType":"YulFunctionCall","src":"15049:12:19"},{"name":"deadline","nativeSrc":"15063:8:19","nodeType":"YulIdentifier","src":"15063:8:19"}],"functionName":{"name":"mstore","nativeSrc":"15042:6:19","nodeType":"YulIdentifier","src":"15042:6:19"},"nativeSrc":"15042:30:19","nodeType":"YulFunctionCall","src":"15042:30:19"},"nativeSrc":"15042:30:19","nodeType":"YulExpressionStatement","src":"15042:30:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15092:4:19","nodeType":"YulLiteral","src":"15092:4:19","type":"","value":"0x4e"},{"arguments":[{"name":"m","nativeSrc":"15108:1:19","nodeType":"YulIdentifier","src":"15108:1:19"},{"kind":"number","nativeSrc":"15111:4:19","nodeType":"YulLiteral","src":"15111:4:19","type":"","value":"0xc0"}],"functionName":{"name":"keccak256","nativeSrc":"15098:9:19","nodeType":"YulIdentifier","src":"15098:9:19"},"nativeSrc":"15098:18:19","nodeType":"YulFunctionCall","src":"15098:18:19"}],"functionName":{"name":"mstore","nativeSrc":"15085:6:19","nodeType":"YulIdentifier","src":"15085:6:19"},"nativeSrc":"15085:32:19","nodeType":"YulFunctionCall","src":"15085:32:19"},"nativeSrc":"15085:32:19","nodeType":"YulExpressionStatement","src":"15085:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15184:4:19","nodeType":"YulLiteral","src":"15184:4:19","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"15200:4:19","nodeType":"YulLiteral","src":"15200:4:19","type":"","value":"0x2c"},{"kind":"number","nativeSrc":"15206:4:19","nodeType":"YulLiteral","src":"15206:4:19","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nativeSrc":"15190:9:19","nodeType":"YulIdentifier","src":"15190:9:19"},"nativeSrc":"15190:21:19","nodeType":"YulFunctionCall","src":"15190:21:19"}],"functionName":{"name":"mstore","nativeSrc":"15177:6:19","nodeType":"YulIdentifier","src":"15177:6:19"},"nativeSrc":"15177:35:19","nodeType":"YulFunctionCall","src":"15177:35:19"},"nativeSrc":"15177:35:19","nodeType":"YulExpressionStatement","src":"15177:35:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15232:4:19","nodeType":"YulLiteral","src":"15232:4:19","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"15242:4:19","nodeType":"YulLiteral","src":"15242:4:19","type":"","value":"0xff"},{"name":"v","nativeSrc":"15248:1:19","nodeType":"YulIdentifier","src":"15248:1:19"}],"functionName":{"name":"and","nativeSrc":"15238:3:19","nodeType":"YulIdentifier","src":"15238:3:19"},"nativeSrc":"15238:12:19","nodeType":"YulFunctionCall","src":"15238:12:19"}],"functionName":{"name":"mstore","nativeSrc":"15225:6:19","nodeType":"YulIdentifier","src":"15225:6:19"},"nativeSrc":"15225:26:19","nodeType":"YulFunctionCall","src":"15225:26:19"},"nativeSrc":"15225:26:19","nodeType":"YulExpressionStatement","src":"15225:26:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15271:4:19","nodeType":"YulLiteral","src":"15271:4:19","type":"","value":"0x40"},{"name":"r","nativeSrc":"15277:1:19","nodeType":"YulIdentifier","src":"15277:1:19"}],"functionName":{"name":"mstore","nativeSrc":"15264:6:19","nodeType":"YulIdentifier","src":"15264:6:19"},"nativeSrc":"15264:15:19","nodeType":"YulFunctionCall","src":"15264:15:19"},"nativeSrc":"15264:15:19","nodeType":"YulExpressionStatement","src":"15264:15:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15299:4:19","nodeType":"YulLiteral","src":"15299:4:19","type":"","value":"0x60"},{"name":"s","nativeSrc":"15305:1:19","nodeType":"YulIdentifier","src":"15305:1:19"}],"functionName":{"name":"mstore","nativeSrc":"15292:6:19","nodeType":"YulIdentifier","src":"15292:6:19"},"nativeSrc":"15292:15:19","nodeType":"YulFunctionCall","src":"15292:15:19"},"nativeSrc":"15292:15:19","nodeType":"YulExpressionStatement","src":"15292:15:19"},{"nativeSrc":"15320:50:19","nodeType":"YulVariableDeclaration","src":"15320:50:19","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15340:3:19","nodeType":"YulIdentifier","src":"15340:3:19"},"nativeSrc":"15340:5:19","nodeType":"YulFunctionCall","src":"15340:5:19"},{"kind":"number","nativeSrc":"15347:1:19","nodeType":"YulLiteral","src":"15347:1:19","type":"","value":"1"},{"kind":"number","nativeSrc":"15350:1:19","nodeType":"YulLiteral","src":"15350:1:19","type":"","value":"0"},{"kind":"number","nativeSrc":"15353:4:19","nodeType":"YulLiteral","src":"15353:4:19","type":"","value":"0x80"},{"kind":"number","nativeSrc":"15359:4:19","nodeType":"YulLiteral","src":"15359:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"15365:4:19","nodeType":"YulLiteral","src":"15365:4:19","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15329:10:19","nodeType":"YulIdentifier","src":"15329:10:19"},"nativeSrc":"15329:41:19","nodeType":"YulFunctionCall","src":"15329:41:19"},"variables":[{"name":"t","nativeSrc":"15324:1:19","nodeType":"YulTypedName","src":"15324:1:19","type":""}]},{"body":{"nativeSrc":"15794:113:19","nodeType":"YulBlock","src":"15794:113:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15819:4:19","nodeType":"YulLiteral","src":"15819:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15825:10:19","nodeType":"YulLiteral","src":"15825:10:19","type":"","value":"0xddafbaef"}],"functionName":{"name":"mstore","nativeSrc":"15812:6:19","nodeType":"YulIdentifier","src":"15812:6:19"},"nativeSrc":"15812:24:19","nodeType":"YulFunctionCall","src":"15812:24:19"},"nativeSrc":"15812:24:19","nodeType":"YulExpressionStatement","src":"15812:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15882:4:19","nodeType":"YulLiteral","src":"15882:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15888:4:19","nodeType":"YulLiteral","src":"15888:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15875:6:19","nodeType":"YulIdentifier","src":"15875:6:19"},"nativeSrc":"15875:18:19","nodeType":"YulFunctionCall","src":"15875:18:19"},"nativeSrc":"15875:18:19","nodeType":"YulExpressionStatement","src":"15875:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15767:14:19","nodeType":"YulIdentifier","src":"15767:14:19"},"nativeSrc":"15767:16:19","nodeType":"YulFunctionCall","src":"15767:16:19"}],"functionName":{"name":"mload","nativeSrc":"15761:5:19","nodeType":"YulIdentifier","src":"15761:5:19"},"nativeSrc":"15761:23:19","nodeType":"YulFunctionCall","src":"15761:23:19"},{"name":"owner","nativeSrc":"15786:5:19","nodeType":"YulIdentifier","src":"15786:5:19"}],"functionName":{"name":"eq","nativeSrc":"15758:2:19","nodeType":"YulIdentifier","src":"15758:2:19"},"nativeSrc":"15758:34:19","nodeType":"YulFunctionCall","src":"15758:34:19"}],"functionName":{"name":"iszero","nativeSrc":"15751:6:19","nodeType":"YulIdentifier","src":"15751:6:19"},"nativeSrc":"15751:42:19","nodeType":"YulFunctionCall","src":"15751:42:19"},"nativeSrc":"15748:159:19","nodeType":"YulIf","src":"15748:159:19"},{"expression":{"arguments":[{"name":"nonceSlot","nativeSrc":"15981:9:19","nodeType":"YulIdentifier","src":"15981:9:19"},{"arguments":[{"name":"nonceValue","nativeSrc":"15996:10:19","nodeType":"YulIdentifier","src":"15996:10:19"},{"name":"t","nativeSrc":"16008:1:19","nodeType":"YulIdentifier","src":"16008:1:19"}],"functionName":{"name":"add","nativeSrc":"15992:3:19","nodeType":"YulIdentifier","src":"15992:3:19"},"nativeSrc":"15992:18:19","nodeType":"YulFunctionCall","src":"15992:18:19"}],"functionName":{"name":"sstore","nativeSrc":"15974:6:19","nodeType":"YulIdentifier","src":"15974:6:19"},"nativeSrc":"15974:37:19","nodeType":"YulFunctionCall","src":"15974:37:19"},"nativeSrc":"15974:37:19","nodeType":"YulExpressionStatement","src":"15974:37:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16181:4:19","nodeType":"YulLiteral","src":"16181:4:19","type":"","value":"0x40"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16194:3:19","nodeType":"YulLiteral","src":"16194:3:19","type":"","value":"160"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"16199:20:19","nodeType":"YulIdentifier","src":"16199:20:19"}],"functionName":{"name":"shl","nativeSrc":"16190:3:19","nodeType":"YulIdentifier","src":"16190:3:19"},"nativeSrc":"16190:30:19","nodeType":"YulFunctionCall","src":"16190:30:19"},{"name":"spender","nativeSrc":"16222:7:19","nodeType":"YulIdentifier","src":"16222:7:19"}],"functionName":{"name":"or","nativeSrc":"16187:2:19","nodeType":"YulIdentifier","src":"16187:2:19"},"nativeSrc":"16187:43:19","nodeType":"YulFunctionCall","src":"16187:43:19"}],"functionName":{"name":"mstore","nativeSrc":"16174:6:19","nodeType":"YulIdentifier","src":"16174:6:19"},"nativeSrc":"16174:57:19","nodeType":"YulFunctionCall","src":"16174:57:19"},"nativeSrc":"16174:57:19","nodeType":"YulExpressionStatement","src":"16174:57:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16261:4:19","nodeType":"YulLiteral","src":"16261:4:19","type":"","value":"0x2c"},{"kind":"number","nativeSrc":"16267:4:19","nodeType":"YulLiteral","src":"16267:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"16251:9:19","nodeType":"YulIdentifier","src":"16251:9:19"},"nativeSrc":"16251:21:19","nodeType":"YulFunctionCall","src":"16251:21:19"},{"name":"value","nativeSrc":"16274:5:19","nodeType":"YulIdentifier","src":"16274:5:19"}],"functionName":{"name":"sstore","nativeSrc":"16244:6:19","nodeType":"YulIdentifier","src":"16244:6:19"},"nativeSrc":"16244:36:19","nodeType":"YulFunctionCall","src":"16244:36:19"},"nativeSrc":"16244:36:19","nodeType":"YulExpressionStatement","src":"16244:36:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"16344:1:19","nodeType":"YulIdentifier","src":"16344:1:19"},{"kind":"number","nativeSrc":"16347:4:19","nodeType":"YulLiteral","src":"16347:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16340:3:19","nodeType":"YulIdentifier","src":"16340:3:19"},"nativeSrc":"16340:12:19","nodeType":"YulFunctionCall","src":"16340:12:19"},{"kind":"number","nativeSrc":"16354:4:19","nodeType":"YulLiteral","src":"16354:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"16360:25:19","nodeType":"YulIdentifier","src":"16360:25:19"},{"name":"owner","nativeSrc":"16387:5:19","nodeType":"YulIdentifier","src":"16387:5:19"},{"name":"spender","nativeSrc":"16394:7:19","nodeType":"YulIdentifier","src":"16394:7:19"}],"functionName":{"name":"log3","nativeSrc":"16335:4:19","nodeType":"YulIdentifier","src":"16335:4:19"},"nativeSrc":"16335:67:19","nodeType":"YulFunctionCall","src":"16335:67:19"},"nativeSrc":"16335:67:19","nodeType":"YulExpressionStatement","src":"16335:67:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16422:4:19","nodeType":"YulLiteral","src":"16422:4:19","type":"","value":"0x40"},{"name":"m","nativeSrc":"16428:1:19","nodeType":"YulIdentifier","src":"16428:1:19"}],"functionName":{"name":"mstore","nativeSrc":"16415:6:19","nodeType":"YulIdentifier","src":"16415:6:19"},"nativeSrc":"16415:15:19","nodeType":"YulFunctionCall","src":"16415:15:19"},"nativeSrc":"16415:15:19","nodeType":"YulExpressionStatement","src":"16415:15:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16486:4:19","nodeType":"YulLiteral","src":"16486:4:19","type":"","value":"0x60"},{"kind":"number","nativeSrc":"16492:1:19","nodeType":"YulLiteral","src":"16492:1:19","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16479:6:19","nodeType":"YulIdentifier","src":"16479:6:19"},"nativeSrc":"16479:15:19","nodeType":"YulFunctionCall","src":"16479:15:19"},"nativeSrc":"16479:15:19","nodeType":"YulExpressionStatement","src":"16479:15:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"16199:20:19","valueSize":1},{"declaration":8000,"isOffset":false,"isSlot":false,"src":"16360:25:19","valueSize":1},{"declaration":8024,"isOffset":false,"isSlot":false,"src":"14541:16:19","valueSize":1},{"declaration":8020,"isOffset":false,"isSlot":false,"src":"14303:39:19","valueSize":1},{"declaration":8032,"isOffset":false,"isSlot":false,"src":"14845:16:19","valueSize":1},{"declaration":8028,"isOffset":false,"isSlot":false,"src":"14635:13:19","valueSize":1},{"declaration":8179,"isOffset":false,"isSlot":false,"src":"13896:8:19","valueSize":1},{"declaration":8179,"isOffset":false,"isSlot":false,"src":"15063:8:19","valueSize":1},{"declaration":8189,"isOffset":false,"isSlot":false,"src":"14592:8:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14138:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14163:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14369:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"14896:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"15786:5:19","valueSize":1},{"declaration":8173,"isOffset":false,"isSlot":false,"src":"16387:5:19","valueSize":1},{"declaration":8183,"isOffset":false,"isSlot":false,"src":"15277:1:19","valueSize":1},{"declaration":8185,"isOffset":false,"isSlot":false,"src":"15305:1:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"14183:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"14210:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"14936:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"16222:7:19","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"16394:7:19","valueSize":1},{"declaration":8181,"isOffset":false,"isSlot":false,"src":"15248:1:19","valueSize":1},{"declaration":8177,"isOffset":false,"isSlot":false,"src":"14978:5:19","valueSize":1},{"declaration":8177,"isOffset":false,"isSlot":false,"src":"16274:5:19","valueSize":1}],"id":8210,"nodeType":"InlineAssembly","src":"13781:2752:19"}]},"documentation":{"id":8171,"nodeType":"StructuredDocumentation","src":"13146:173:19","text":"@dev Sets `value` as the allowance of `spender` over the tokens of `owner`,\n authorized by a signed approval by `owner`.\n Emits a {Approval} event."},"functionSelector":"d505accf","id":8212,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"13333:6:19","nodeType":"FunctionDefinition","parameters":{"id":8186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8173,"mutability":"mutable","name":"owner","nameLocation":"13357:5:19","nodeType":"VariableDeclaration","scope":8212,"src":"13349:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8172,"name":"address","nodeType":"ElementaryTypeName","src":"13349:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8175,"mutability":"mutable","name":"spender","nameLocation":"13380:7:19","nodeType":"VariableDeclaration","scope":8212,"src":"13372:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8174,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8177,"mutability":"mutable","name":"value","nameLocation":"13405:5:19","nodeType":"VariableDeclaration","scope":8212,"src":"13397:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8176,"name":"uint256","nodeType":"ElementaryTypeName","src":"13397:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8179,"mutability":"mutable","name":"deadline","nameLocation":"13428:8:19","nodeType":"VariableDeclaration","scope":8212,"src":"13420:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8178,"name":"uint256","nodeType":"ElementaryTypeName","src":"13420:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8181,"mutability":"mutable","name":"v","nameLocation":"13452:1:19","nodeType":"VariableDeclaration","scope":8212,"src":"13446:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8180,"name":"uint8","nodeType":"ElementaryTypeName","src":"13446:5:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8183,"mutability":"mutable","name":"r","nameLocation":"13471:1:19","nodeType":"VariableDeclaration","scope":8212,"src":"13463:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13463:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8185,"mutability":"mutable","name":"s","nameLocation":"13490:1:19","nodeType":"VariableDeclaration","scope":8212,"src":"13482:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13482:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13339:158:19"},"returnParameters":{"id":8187,"nodeType":"ParameterList","parameters":[],"src":"13513:0:19"},"scope":8369,"src":"13324:3215:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8241,"nodeType":"Block","src":"16693:620:19","statements":[{"assignments":[8219],"declarations":[{"constant":false,"id":8219,"mutability":"mutable","name":"nameHash","nameLocation":"16711:8:19","nodeType":"VariableDeclaration","scope":8241,"src":"16703:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16703:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8222,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8220,"name":"_constantNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"16722:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16722:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16703:38:19"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8223,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"16849:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16869:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16861:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16861:7:19","typeDescriptions":{}}},"id":8227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16861:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16849:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8239,"nodeType":"IfStatement","src":"16845:63:19","trueBody":{"expression":{"id":8237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8229,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"16873:8:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8233,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8038,"src":"16900:4:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":8234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16900:6:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16894:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8231,"name":"bytes","nodeType":"ElementaryTypeName","src":"16894:5:19","typeDescriptions":{}}},"id":8235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8230,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16884:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16884:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16873:35:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8238,"nodeType":"ExpressionStatement","src":"16873:35:19"}},{"AST":{"nativeSrc":"16970:337:19","nodeType":"YulBlock","src":"16970:337:19","statements":[{"nativeSrc":"16984:20:19","nodeType":"YulVariableDeclaration","src":"16984:20:19","value":{"arguments":[{"kind":"number","nativeSrc":"16999:4:19","nodeType":"YulLiteral","src":"16999:4:19","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"16993:5:19","nodeType":"YulIdentifier","src":"16993:5:19"},"nativeSrc":"16993:11:19","nodeType":"YulFunctionCall","src":"16993:11:19"},"variables":[{"name":"m","nativeSrc":"16988:1:19","nodeType":"YulTypedName","src":"16988:1:19","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"17057:1:19","nodeType":"YulIdentifier","src":"17057:1:19"},{"name":"_DOMAIN_TYPEHASH","nativeSrc":"17060:16:19","nodeType":"YulIdentifier","src":"17060:16:19"}],"functionName":{"name":"mstore","nativeSrc":"17050:6:19","nodeType":"YulIdentifier","src":"17050:6:19"},"nativeSrc":"17050:27:19","nodeType":"YulFunctionCall","src":"17050:27:19"},"nativeSrc":"17050:27:19","nodeType":"YulExpressionStatement","src":"17050:27:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17101:1:19","nodeType":"YulIdentifier","src":"17101:1:19"},{"kind":"number","nativeSrc":"17104:4:19","nodeType":"YulLiteral","src":"17104:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17097:3:19","nodeType":"YulIdentifier","src":"17097:3:19"},"nativeSrc":"17097:12:19","nodeType":"YulFunctionCall","src":"17097:12:19"},{"name":"nameHash","nativeSrc":"17111:8:19","nodeType":"YulIdentifier","src":"17111:8:19"}],"functionName":{"name":"mstore","nativeSrc":"17090:6:19","nodeType":"YulIdentifier","src":"17090:6:19"},"nativeSrc":"17090:30:19","nodeType":"YulFunctionCall","src":"17090:30:19"},"nativeSrc":"17090:30:19","nodeType":"YulExpressionStatement","src":"17090:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17144:1:19","nodeType":"YulIdentifier","src":"17144:1:19"},{"kind":"number","nativeSrc":"17147:4:19","nodeType":"YulLiteral","src":"17147:4:19","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17140:3:19","nodeType":"YulIdentifier","src":"17140:3:19"},"nativeSrc":"17140:12:19","nodeType":"YulFunctionCall","src":"17140:12:19"},{"name":"_VERSION_HASH","nativeSrc":"17154:13:19","nodeType":"YulIdentifier","src":"17154:13:19"}],"functionName":{"name":"mstore","nativeSrc":"17133:6:19","nodeType":"YulIdentifier","src":"17133:6:19"},"nativeSrc":"17133:35:19","nodeType":"YulFunctionCall","src":"17133:35:19"},"nativeSrc":"17133:35:19","nodeType":"YulExpressionStatement","src":"17133:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17192:1:19","nodeType":"YulIdentifier","src":"17192:1:19"},{"kind":"number","nativeSrc":"17195:4:19","nodeType":"YulLiteral","src":"17195:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17188:3:19","nodeType":"YulIdentifier","src":"17188:3:19"},"nativeSrc":"17188:12:19","nodeType":"YulFunctionCall","src":"17188:12:19"},{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"17202:7:19","nodeType":"YulIdentifier","src":"17202:7:19"},"nativeSrc":"17202:9:19","nodeType":"YulFunctionCall","src":"17202:9:19"}],"functionName":{"name":"mstore","nativeSrc":"17181:6:19","nodeType":"YulIdentifier","src":"17181:6:19"},"nativeSrc":"17181:31:19","nodeType":"YulFunctionCall","src":"17181:31:19"},"nativeSrc":"17181:31:19","nodeType":"YulExpressionStatement","src":"17181:31:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17236:1:19","nodeType":"YulIdentifier","src":"17236:1:19"},{"kind":"number","nativeSrc":"17239:4:19","nodeType":"YulLiteral","src":"17239:4:19","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"17232:3:19","nodeType":"YulIdentifier","src":"17232:3:19"},"nativeSrc":"17232:12:19","nodeType":"YulFunctionCall","src":"17232:12:19"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"17246:7:19","nodeType":"YulIdentifier","src":"17246:7:19"},"nativeSrc":"17246:9:19","nodeType":"YulFunctionCall","src":"17246:9:19"}],"functionName":{"name":"mstore","nativeSrc":"17225:6:19","nodeType":"YulIdentifier","src":"17225:6:19"},"nativeSrc":"17225:31:19","nodeType":"YulFunctionCall","src":"17225:31:19"},"nativeSrc":"17225:31:19","nodeType":"YulExpressionStatement","src":"17225:31:19"},{"nativeSrc":"17269:28:19","nodeType":"YulAssignment","src":"17269:28:19","value":{"arguments":[{"name":"m","nativeSrc":"17289:1:19","nodeType":"YulIdentifier","src":"17289:1:19"},{"kind":"number","nativeSrc":"17292:4:19","nodeType":"YulLiteral","src":"17292:4:19","type":"","value":"0xa0"}],"functionName":{"name":"keccak256","nativeSrc":"17279:9:19","nodeType":"YulIdentifier","src":"17279:9:19"},"nativeSrc":"17279:18:19","nodeType":"YulFunctionCall","src":"17279:18:19"},"variableNames":[{"name":"result","nativeSrc":"17269:6:19","nodeType":"YulIdentifier","src":"17269:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8024,"isOffset":false,"isSlot":false,"src":"17060:16:19","valueSize":1},{"declaration":8028,"isOffset":false,"isSlot":false,"src":"17154:13:19","valueSize":1},{"declaration":8219,"isOffset":false,"isSlot":false,"src":"17111:8:19","valueSize":1},{"declaration":8216,"isOffset":false,"isSlot":false,"src":"17269:6:19","valueSize":1}],"id":8240,"nodeType":"InlineAssembly","src":"16961:346:19"}]},"documentation":{"id":8213,"nodeType":"StructuredDocumentation","src":"16545:70:19","text":"@dev Returns the EIP-712 domain separator for the EIP-2612 permit."},"functionSelector":"3644e515","id":8242,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"16629:16:19","nodeType":"FunctionDefinition","parameters":{"id":8214,"nodeType":"ParameterList","parameters":[],"src":"16645:2:19"},"returnParameters":{"id":8217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8216,"mutability":"mutable","name":"result","nameLocation":"16685:6:19","nodeType":"VariableDeclaration","scope":8242,"src":"16677:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8215,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16677:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16676:16:19"},"scope":8369,"src":"16620:693:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8269,"nodeType":"Block","src":"17777:1112:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17816:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17808:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8251,"name":"address","nodeType":"ElementaryTypeName","src":"17808:7:19","typeDescriptions":{}}},"id":8254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17808:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8255,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"17820:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8256,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"17824:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8250,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"17787:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17787:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8258,"nodeType":"ExpressionStatement","src":"17787:44:19"},{"AST":{"nativeSrc":"17893:937:19","nodeType":"YulBlock","src":"17893:937:19","statements":[{"nativeSrc":"17907:50:19","nodeType":"YulVariableDeclaration","src":"17907:50:19","value":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"17938:18:19","nodeType":"YulIdentifier","src":"17938:18:19"}],"functionName":{"name":"sload","nativeSrc":"17932:5:19","nodeType":"YulIdentifier","src":"17932:5:19"},"nativeSrc":"17932:25:19","nodeType":"YulFunctionCall","src":"17932:25:19"},"variables":[{"name":"totalSupplyBefore","nativeSrc":"17911:17:19","nodeType":"YulTypedName","src":"17911:17:19","type":""}]},{"nativeSrc":"17970:54:19","nodeType":"YulVariableDeclaration","src":"17970:54:19","value":{"arguments":[{"name":"totalSupplyBefore","nativeSrc":"17998:17:19","nodeType":"YulIdentifier","src":"17998:17:19"},{"name":"amount","nativeSrc":"18017:6:19","nodeType":"YulIdentifier","src":"18017:6:19"}],"functionName":{"name":"add","nativeSrc":"17994:3:19","nodeType":"YulIdentifier","src":"17994:3:19"},"nativeSrc":"17994:30:19","nodeType":"YulFunctionCall","src":"17994:30:19"},"variables":[{"name":"totalSupplyAfter","nativeSrc":"17974:16:19","nodeType":"YulTypedName","src":"17974:16:19","type":""}]},{"body":{"nativeSrc":"18133:119:19","nodeType":"YulBlock","src":"18133:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18158:4:19","nodeType":"YulLiteral","src":"18158:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18164:10:19","nodeType":"YulLiteral","src":"18164:10:19","type":"","value":"0xe5cfe957"}],"functionName":{"name":"mstore","nativeSrc":"18151:6:19","nodeType":"YulIdentifier","src":"18151:6:19"},"nativeSrc":"18151:24:19","nodeType":"YulFunctionCall","src":"18151:24:19"},"nativeSrc":"18151:24:19","nodeType":"YulExpressionStatement","src":"18151:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18227:4:19","nodeType":"YulLiteral","src":"18227:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18233:4:19","nodeType":"YulLiteral","src":"18233:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18220:6:19","nodeType":"YulIdentifier","src":"18220:6:19"},"nativeSrc":"18220:18:19","nodeType":"YulFunctionCall","src":"18220:18:19"},"nativeSrc":"18220:18:19","nodeType":"YulExpressionStatement","src":"18220:18:19"}]},"condition":{"arguments":[{"name":"totalSupplyAfter","nativeSrc":"18096:16:19","nodeType":"YulIdentifier","src":"18096:16:19"},{"name":"totalSupplyBefore","nativeSrc":"18114:17:19","nodeType":"YulIdentifier","src":"18114:17:19"}],"functionName":{"name":"lt","nativeSrc":"18093:2:19","nodeType":"YulIdentifier","src":"18093:2:19"},"nativeSrc":"18093:39:19","nodeType":"YulFunctionCall","src":"18093:39:19"},"nativeSrc":"18090:162:19","nodeType":"YulIf","src":"18090:162:19"},{"expression":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"18319:18:19","nodeType":"YulIdentifier","src":"18319:18:19"},{"name":"totalSupplyAfter","nativeSrc":"18339:16:19","nodeType":"YulIdentifier","src":"18339:16:19"}],"functionName":{"name":"sstore","nativeSrc":"18312:6:19","nodeType":"YulIdentifier","src":"18312:6:19"},"nativeSrc":"18312:44:19","nodeType":"YulFunctionCall","src":"18312:44:19"},"nativeSrc":"18312:44:19","nodeType":"YulExpressionStatement","src":"18312:44:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18436:4:19","nodeType":"YulLiteral","src":"18436:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"18442:18:19","nodeType":"YulIdentifier","src":"18442:18:19"}],"functionName":{"name":"mstore","nativeSrc":"18429:6:19","nodeType":"YulIdentifier","src":"18429:6:19"},"nativeSrc":"18429:32:19","nodeType":"YulFunctionCall","src":"18429:32:19"},"nativeSrc":"18429:32:19","nodeType":"YulExpressionStatement","src":"18429:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18481:4:19","nodeType":"YulLiteral","src":"18481:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"18487:2:19","nodeType":"YulIdentifier","src":"18487:2:19"}],"functionName":{"name":"mstore","nativeSrc":"18474:6:19","nodeType":"YulIdentifier","src":"18474:6:19"},"nativeSrc":"18474:16:19","nodeType":"YulFunctionCall","src":"18474:16:19"},"nativeSrc":"18474:16:19","nodeType":"YulExpressionStatement","src":"18474:16:19"},{"nativeSrc":"18503:42:19","nodeType":"YulVariableDeclaration","src":"18503:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"18534:4:19","nodeType":"YulLiteral","src":"18534:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"18540:4:19","nodeType":"YulLiteral","src":"18540:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18524:9:19","nodeType":"YulIdentifier","src":"18524:9:19"},"nativeSrc":"18524:21:19","nodeType":"YulFunctionCall","src":"18524:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"18507:13:19","nodeType":"YulTypedName","src":"18507:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"18615:13:19","nodeType":"YulIdentifier","src":"18615:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"18640:13:19","nodeType":"YulIdentifier","src":"18640:13:19"}],"functionName":{"name":"sload","nativeSrc":"18634:5:19","nodeType":"YulIdentifier","src":"18634:5:19"},"nativeSrc":"18634:20:19","nodeType":"YulFunctionCall","src":"18634:20:19"},{"name":"amount","nativeSrc":"18656:6:19","nodeType":"YulIdentifier","src":"18656:6:19"}],"functionName":{"name":"add","nativeSrc":"18630:3:19","nodeType":"YulIdentifier","src":"18630:3:19"},"nativeSrc":"18630:33:19","nodeType":"YulFunctionCall","src":"18630:33:19"}],"functionName":{"name":"sstore","nativeSrc":"18608:6:19","nodeType":"YulIdentifier","src":"18608:6:19"},"nativeSrc":"18608:56:19","nodeType":"YulFunctionCall","src":"18608:56:19"},"nativeSrc":"18608:56:19","nodeType":"YulExpressionStatement","src":"18608:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18726:4:19","nodeType":"YulLiteral","src":"18726:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"18732:6:19","nodeType":"YulIdentifier","src":"18732:6:19"}],"functionName":{"name":"mstore","nativeSrc":"18719:6:19","nodeType":"YulIdentifier","src":"18719:6:19"},"nativeSrc":"18719:20:19","nodeType":"YulFunctionCall","src":"18719:20:19"},"nativeSrc":"18719:20:19","nodeType":"YulExpressionStatement","src":"18719:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18757:4:19","nodeType":"YulLiteral","src":"18757:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"18763:4:19","nodeType":"YulLiteral","src":"18763:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"18769:25:19","nodeType":"YulIdentifier","src":"18769:25:19"},{"kind":"number","nativeSrc":"18796:1:19","nodeType":"YulLiteral","src":"18796:1:19","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"18803:2:19","nodeType":"YulLiteral","src":"18803:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"18813:4:19","nodeType":"YulLiteral","src":"18813:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"18807:5:19","nodeType":"YulIdentifier","src":"18807:5:19"},"nativeSrc":"18807:11:19","nodeType":"YulFunctionCall","src":"18807:11:19"}],"functionName":{"name":"shr","nativeSrc":"18799:3:19","nodeType":"YulIdentifier","src":"18799:3:19"},"nativeSrc":"18799:20:19","nodeType":"YulFunctionCall","src":"18799:20:19"}],"functionName":{"name":"log3","nativeSrc":"18752:4:19","nodeType":"YulIdentifier","src":"18752:4:19"},"nativeSrc":"18752:68:19","nodeType":"YulFunctionCall","src":"18752:68:19"},"nativeSrc":"18752:68:19","nodeType":"YulExpressionStatement","src":"18752:68:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"18442:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"17938:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"18319:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"18769:25:19","valueSize":1},{"declaration":8247,"isOffset":false,"isSlot":false,"src":"18017:6:19","valueSize":1},{"declaration":8247,"isOffset":false,"isSlot":false,"src":"18656:6:19","valueSize":1},{"declaration":8247,"isOffset":false,"isSlot":false,"src":"18732:6:19","valueSize":1},{"declaration":8245,"isOffset":false,"isSlot":false,"src":"18487:2:19","valueSize":1}],"id":8259,"nodeType":"InlineAssembly","src":"17884:946:19"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18867:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18859:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8261,"name":"address","nodeType":"ElementaryTypeName","src":"18859:7:19","typeDescriptions":{}}},"id":8264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18859:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8265,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"18871:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8266,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"18875:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8260,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"18839:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18839:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8268,"nodeType":"ExpressionStatement","src":"18839:43:19"}]},"documentation":{"id":8243,"nodeType":"StructuredDocumentation","src":"17602:110:19","text":"@dev Mints `amount` tokens to `to`, increasing the total supply.\n Emits a {Transfer} event."},"id":8270,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"17726:5:19","nodeType":"FunctionDefinition","parameters":{"id":8248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8245,"mutability":"mutable","name":"to","nameLocation":"17740:2:19","nodeType":"VariableDeclaration","scope":8270,"src":"17732:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8244,"name":"address","nodeType":"ElementaryTypeName","src":"17732:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8247,"mutability":"mutable","name":"amount","nameLocation":"17752:6:19","nodeType":"VariableDeclaration","scope":8270,"src":"17744:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8246,"name":"uint256","nodeType":"ElementaryTypeName","src":"17744:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17731:28:19"},"returnParameters":{"id":8249,"nodeType":"ParameterList","parameters":[],"src":"17777:0:19"},"scope":8369,"src":"17717:1172:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8297,"nodeType":"Block","src":"19357:1057:19","statements":[{"expression":{"arguments":[{"id":8279,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"19388:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19402:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19394:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8280,"name":"address","nodeType":"ElementaryTypeName","src":"19394:7:19","typeDescriptions":{}}},"id":8283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19394:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8284,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8275,"src":"19406:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8278,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"19367:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19367:46:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8286,"nodeType":"ExpressionStatement","src":"19367:46:19"},{"AST":{"nativeSrc":"19475:878:19","nodeType":"YulBlock","src":"19475:878:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19556:4:19","nodeType":"YulLiteral","src":"19556:4:19","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"19562:18:19","nodeType":"YulIdentifier","src":"19562:18:19"}],"functionName":{"name":"mstore","nativeSrc":"19549:6:19","nodeType":"YulIdentifier","src":"19549:6:19"},"nativeSrc":"19549:32:19","nodeType":"YulFunctionCall","src":"19549:32:19"},"nativeSrc":"19549:32:19","nodeType":"YulExpressionStatement","src":"19549:32:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19601:4:19","nodeType":"YulLiteral","src":"19601:4:19","type":"","value":"0x00"},{"name":"from","nativeSrc":"19607:4:19","nodeType":"YulIdentifier","src":"19607:4:19"}],"functionName":{"name":"mstore","nativeSrc":"19594:6:19","nodeType":"YulIdentifier","src":"19594:6:19"},"nativeSrc":"19594:18:19","nodeType":"YulFunctionCall","src":"19594:18:19"},"nativeSrc":"19594:18:19","nodeType":"YulExpressionStatement","src":"19594:18:19"},{"nativeSrc":"19625:44:19","nodeType":"YulVariableDeclaration","src":"19625:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"19658:4:19","nodeType":"YulLiteral","src":"19658:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"19664:4:19","nodeType":"YulLiteral","src":"19664:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"19648:9:19","nodeType":"YulIdentifier","src":"19648:9:19"},"nativeSrc":"19648:21:19","nodeType":"YulFunctionCall","src":"19648:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"19629:15:19","nodeType":"YulTypedName","src":"19629:15:19","type":""}]},{"nativeSrc":"19682:41:19","nodeType":"YulVariableDeclaration","src":"19682:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"19707:15:19","nodeType":"YulIdentifier","src":"19707:15:19"}],"functionName":{"name":"sload","nativeSrc":"19701:5:19","nodeType":"YulIdentifier","src":"19701:5:19"},"nativeSrc":"19701:22:19","nodeType":"YulFunctionCall","src":"19701:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"19686:11:19","nodeType":"YulTypedName","src":"19686:11:19","type":""}]},{"body":{"nativeSrc":"19810:119:19","nodeType":"YulBlock","src":"19810:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19835:4:19","nodeType":"YulLiteral","src":"19835:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19841:10:19","nodeType":"YulLiteral","src":"19841:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"19828:6:19","nodeType":"YulIdentifier","src":"19828:6:19"},"nativeSrc":"19828:24:19","nodeType":"YulFunctionCall","src":"19828:24:19"},"nativeSrc":"19828:24:19","nodeType":"YulExpressionStatement","src":"19828:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19904:4:19","nodeType":"YulLiteral","src":"19904:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"19910:4:19","nodeType":"YulLiteral","src":"19910:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"19897:6:19","nodeType":"YulIdentifier","src":"19897:6:19"},"nativeSrc":"19897:18:19","nodeType":"YulFunctionCall","src":"19897:18:19"},"nativeSrc":"19897:18:19","nodeType":"YulExpressionStatement","src":"19897:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"19789:6:19","nodeType":"YulIdentifier","src":"19789:6:19"},{"name":"fromBalance","nativeSrc":"19797:11:19","nodeType":"YulIdentifier","src":"19797:11:19"}],"functionName":{"name":"gt","nativeSrc":"19786:2:19","nodeType":"YulIdentifier","src":"19786:2:19"},"nativeSrc":"19786:23:19","nodeType":"YulFunctionCall","src":"19786:23:19"},"nativeSrc":"19783:146:19","nodeType":"YulIf","src":"19783:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"20004:15:19","nodeType":"YulIdentifier","src":"20004:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"20025:11:19","nodeType":"YulIdentifier","src":"20025:11:19"},{"name":"amount","nativeSrc":"20038:6:19","nodeType":"YulIdentifier","src":"20038:6:19"}],"functionName":{"name":"sub","nativeSrc":"20021:3:19","nodeType":"YulIdentifier","src":"20021:3:19"},"nativeSrc":"20021:24:19","nodeType":"YulFunctionCall","src":"20021:24:19"}],"functionName":{"name":"sstore","nativeSrc":"19997:6:19","nodeType":"YulIdentifier","src":"19997:6:19"},"nativeSrc":"19997:49:19","nodeType":"YulFunctionCall","src":"19997:49:19"},"nativeSrc":"19997:49:19","nodeType":"YulExpressionStatement","src":"19997:49:19"},{"expression":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"20126:18:19","nodeType":"YulIdentifier","src":"20126:18:19"},{"arguments":[{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"20156:18:19","nodeType":"YulIdentifier","src":"20156:18:19"}],"functionName":{"name":"sload","nativeSrc":"20150:5:19","nodeType":"YulIdentifier","src":"20150:5:19"},"nativeSrc":"20150:25:19","nodeType":"YulFunctionCall","src":"20150:25:19"},{"name":"amount","nativeSrc":"20177:6:19","nodeType":"YulIdentifier","src":"20177:6:19"}],"functionName":{"name":"sub","nativeSrc":"20146:3:19","nodeType":"YulIdentifier","src":"20146:3:19"},"nativeSrc":"20146:38:19","nodeType":"YulFunctionCall","src":"20146:38:19"}],"functionName":{"name":"sstore","nativeSrc":"20119:6:19","nodeType":"YulIdentifier","src":"20119:6:19"},"nativeSrc":"20119:66:19","nodeType":"YulFunctionCall","src":"20119:66:19"},"nativeSrc":"20119:66:19","nodeType":"YulExpressionStatement","src":"20119:66:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20247:4:19","nodeType":"YulLiteral","src":"20247:4:19","type":"","value":"0x00"},{"name":"amount","nativeSrc":"20253:6:19","nodeType":"YulIdentifier","src":"20253:6:19"}],"functionName":{"name":"mstore","nativeSrc":"20240:6:19","nodeType":"YulIdentifier","src":"20240:6:19"},"nativeSrc":"20240:20:19","nodeType":"YulFunctionCall","src":"20240:20:19"},"nativeSrc":"20240:20:19","nodeType":"YulExpressionStatement","src":"20240:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20278:4:19","nodeType":"YulLiteral","src":"20278:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20284:4:19","nodeType":"YulLiteral","src":"20284:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"20290:25:19","nodeType":"YulIdentifier","src":"20290:25:19"},{"arguments":[{"kind":"number","nativeSrc":"20321:2:19","nodeType":"YulLiteral","src":"20321:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"20329:2:19","nodeType":"YulLiteral","src":"20329:2:19","type":"","value":"96"},{"name":"from","nativeSrc":"20333:4:19","nodeType":"YulIdentifier","src":"20333:4:19"}],"functionName":{"name":"shl","nativeSrc":"20325:3:19","nodeType":"YulIdentifier","src":"20325:3:19"},"nativeSrc":"20325:13:19","nodeType":"YulFunctionCall","src":"20325:13:19"}],"functionName":{"name":"shr","nativeSrc":"20317:3:19","nodeType":"YulIdentifier","src":"20317:3:19"},"nativeSrc":"20317:22:19","nodeType":"YulFunctionCall","src":"20317:22:19"},{"kind":"number","nativeSrc":"20341:1:19","nodeType":"YulLiteral","src":"20341:1:19","type":"","value":"0"}],"functionName":{"name":"log3","nativeSrc":"20273:4:19","nodeType":"YulIdentifier","src":"20273:4:19"},"nativeSrc":"20273:70:19","nodeType":"YulFunctionCall","src":"20273:70:19"},"nativeSrc":"20273:70:19","nodeType":"YulExpressionStatement","src":"20273:70:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"19562:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"20126:18:19","valueSize":1},{"declaration":8004,"isOffset":false,"isSlot":false,"src":"20156:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"20290:25:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"19789:6:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"20038:6:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"20177:6:19","valueSize":1},{"declaration":8275,"isOffset":false,"isSlot":false,"src":"20253:6:19","valueSize":1},{"declaration":8273,"isOffset":false,"isSlot":false,"src":"19607:4:19","valueSize":1},{"declaration":8273,"isOffset":false,"isSlot":false,"src":"20333:4:19","valueSize":1}],"id":8287,"nodeType":"InlineAssembly","src":"19466:887:19"},{"expression":{"arguments":[{"id":8289,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"20382:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20396:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20388:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8290,"name":"address","nodeType":"ElementaryTypeName","src":"20388:7:19","typeDescriptions":{}}},"id":8293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20388:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8294,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8275,"src":"20400:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8288,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"20362:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20362:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8296,"nodeType":"ExpressionStatement","src":"20362:45:19"}]},"documentation":{"id":8271,"nodeType":"StructuredDocumentation","src":"19178:112:19","text":"@dev Burns `amount` tokens from `from`, reducing the total supply.\n Emits a {Transfer} event."},"id":8298,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"19304:5:19","nodeType":"FunctionDefinition","parameters":{"id":8276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8273,"mutability":"mutable","name":"from","nameLocation":"19318:4:19","nodeType":"VariableDeclaration","scope":8298,"src":"19310:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8272,"name":"address","nodeType":"ElementaryTypeName","src":"19310:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8275,"mutability":"mutable","name":"amount","nameLocation":"19332:6:19","nodeType":"VariableDeclaration","scope":8298,"src":"19324:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8274,"name":"uint256","nodeType":"ElementaryTypeName","src":"19324:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19309:30:19"},"returnParameters":{"id":8277,"nodeType":"ParameterList","parameters":[],"src":"19357:0:19"},"scope":8369,"src":"19295:1119:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8321,"nodeType":"Block","src":"20840:1318:19","statements":[{"expression":{"arguments":[{"id":8309,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"20871:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8310,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"20877:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8311,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8305,"src":"20881:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8308,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"20850:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20850:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8313,"nodeType":"ExpressionStatement","src":"20850:38:19"},{"AST":{"nativeSrc":"20950:1155:19","nodeType":"YulBlock","src":"20950:1155:19","statements":[{"nativeSrc":"20964:26:19","nodeType":"YulVariableDeclaration","src":"20964:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"20981:2:19","nodeType":"YulLiteral","src":"20981:2:19","type":"","value":"96"},{"name":"from","nativeSrc":"20985:4:19","nodeType":"YulIdentifier","src":"20985:4:19"}],"functionName":{"name":"shl","nativeSrc":"20977:3:19","nodeType":"YulIdentifier","src":"20977:3:19"},"nativeSrc":"20977:13:19","nodeType":"YulFunctionCall","src":"20977:13:19"},"variables":[{"name":"from_","nativeSrc":"20968:5:19","nodeType":"YulTypedName","src":"20968:5:19","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21070:4:19","nodeType":"YulLiteral","src":"21070:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"21079:5:19","nodeType":"YulIdentifier","src":"21079:5:19"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"21086:18:19","nodeType":"YulIdentifier","src":"21086:18:19"}],"functionName":{"name":"or","nativeSrc":"21076:2:19","nodeType":"YulIdentifier","src":"21076:2:19"},"nativeSrc":"21076:29:19","nodeType":"YulFunctionCall","src":"21076:29:19"}],"functionName":{"name":"mstore","nativeSrc":"21063:6:19","nodeType":"YulIdentifier","src":"21063:6:19"},"nativeSrc":"21063:43:19","nodeType":"YulFunctionCall","src":"21063:43:19"},"nativeSrc":"21063:43:19","nodeType":"YulExpressionStatement","src":"21063:43:19"},{"nativeSrc":"21119:44:19","nodeType":"YulVariableDeclaration","src":"21119:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"21152:4:19","nodeType":"YulLiteral","src":"21152:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"21158:4:19","nodeType":"YulLiteral","src":"21158:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21142:9:19","nodeType":"YulIdentifier","src":"21142:9:19"},"nativeSrc":"21142:21:19","nodeType":"YulFunctionCall","src":"21142:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"21123:15:19","nodeType":"YulTypedName","src":"21123:15:19","type":""}]},{"nativeSrc":"21176:41:19","nodeType":"YulVariableDeclaration","src":"21176:41:19","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"21201:15:19","nodeType":"YulIdentifier","src":"21201:15:19"}],"functionName":{"name":"sload","nativeSrc":"21195:5:19","nodeType":"YulIdentifier","src":"21195:5:19"},"nativeSrc":"21195:22:19","nodeType":"YulFunctionCall","src":"21195:22:19"},"variables":[{"name":"fromBalance","nativeSrc":"21180:11:19","nodeType":"YulTypedName","src":"21180:11:19","type":""}]},{"body":{"nativeSrc":"21304:119:19","nodeType":"YulBlock","src":"21304:119:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21329:4:19","nodeType":"YulLiteral","src":"21329:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21335:10:19","nodeType":"YulLiteral","src":"21335:10:19","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"21322:6:19","nodeType":"YulIdentifier","src":"21322:6:19"},"nativeSrc":"21322:24:19","nodeType":"YulFunctionCall","src":"21322:24:19"},"nativeSrc":"21322:24:19","nodeType":"YulExpressionStatement","src":"21322:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21398:4:19","nodeType":"YulLiteral","src":"21398:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"21404:4:19","nodeType":"YulLiteral","src":"21404:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"21391:6:19","nodeType":"YulIdentifier","src":"21391:6:19"},"nativeSrc":"21391:18:19","nodeType":"YulFunctionCall","src":"21391:18:19"},"nativeSrc":"21391:18:19","nodeType":"YulExpressionStatement","src":"21391:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"21283:6:19","nodeType":"YulIdentifier","src":"21283:6:19"},{"name":"fromBalance","nativeSrc":"21291:11:19","nodeType":"YulIdentifier","src":"21291:11:19"}],"functionName":{"name":"gt","nativeSrc":"21280:2:19","nodeType":"YulIdentifier","src":"21280:2:19"},"nativeSrc":"21280:23:19","nodeType":"YulFunctionCall","src":"21280:23:19"},"nativeSrc":"21277:146:19","nodeType":"YulIf","src":"21277:146:19"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"21498:15:19","nodeType":"YulIdentifier","src":"21498:15:19"},{"arguments":[{"name":"fromBalance","nativeSrc":"21519:11:19","nodeType":"YulIdentifier","src":"21519:11:19"},{"name":"amount","nativeSrc":"21532:6:19","nodeType":"YulIdentifier","src":"21532:6:19"}],"functionName":{"name":"sub","nativeSrc":"21515:3:19","nodeType":"YulIdentifier","src":"21515:3:19"},"nativeSrc":"21515:24:19","nodeType":"YulFunctionCall","src":"21515:24:19"}],"functionName":{"name":"sstore","nativeSrc":"21491:6:19","nodeType":"YulIdentifier","src":"21491:6:19"},"nativeSrc":"21491:49:19","nodeType":"YulFunctionCall","src":"21491:49:19"},"nativeSrc":"21491:49:19","nodeType":"YulExpressionStatement","src":"21491:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21609:4:19","nodeType":"YulLiteral","src":"21609:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"21615:2:19","nodeType":"YulIdentifier","src":"21615:2:19"}],"functionName":{"name":"mstore","nativeSrc":"21602:6:19","nodeType":"YulIdentifier","src":"21602:6:19"},"nativeSrc":"21602:16:19","nodeType":"YulFunctionCall","src":"21602:16:19"},"nativeSrc":"21602:16:19","nodeType":"YulExpressionStatement","src":"21602:16:19"},{"nativeSrc":"21631:42:19","nodeType":"YulVariableDeclaration","src":"21631:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"21662:4:19","nodeType":"YulLiteral","src":"21662:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"21668:4:19","nodeType":"YulLiteral","src":"21668:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21652:9:19","nodeType":"YulIdentifier","src":"21652:9:19"},"nativeSrc":"21652:21:19","nodeType":"YulFunctionCall","src":"21652:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"21635:13:19","nodeType":"YulTypedName","src":"21635:13:19","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"21877:13:19","nodeType":"YulIdentifier","src":"21877:13:19"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"21902:13:19","nodeType":"YulIdentifier","src":"21902:13:19"}],"functionName":{"name":"sload","nativeSrc":"21896:5:19","nodeType":"YulIdentifier","src":"21896:5:19"},"nativeSrc":"21896:20:19","nodeType":"YulFunctionCall","src":"21896:20:19"},{"name":"amount","nativeSrc":"21918:6:19","nodeType":"YulIdentifier","src":"21918:6:19"}],"functionName":{"name":"add","nativeSrc":"21892:3:19","nodeType":"YulIdentifier","src":"21892:3:19"},"nativeSrc":"21892:33:19","nodeType":"YulFunctionCall","src":"21892:33:19"}],"functionName":{"name":"sstore","nativeSrc":"21870:6:19","nodeType":"YulIdentifier","src":"21870:6:19"},"nativeSrc":"21870:56:19","nodeType":"YulFunctionCall","src":"21870:56:19"},"nativeSrc":"21870:56:19","nodeType":"YulExpressionStatement","src":"21870:56:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21988:4:19","nodeType":"YulLiteral","src":"21988:4:19","type":"","value":"0x20"},{"name":"amount","nativeSrc":"21994:6:19","nodeType":"YulIdentifier","src":"21994:6:19"}],"functionName":{"name":"mstore","nativeSrc":"21981:6:19","nodeType":"YulIdentifier","src":"21981:6:19"},"nativeSrc":"21981:20:19","nodeType":"YulFunctionCall","src":"21981:20:19"},"nativeSrc":"21981:20:19","nodeType":"YulExpressionStatement","src":"21981:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22019:4:19","nodeType":"YulLiteral","src":"22019:4:19","type":"","value":"0x20"},{"kind":"number","nativeSrc":"22025:4:19","nodeType":"YulLiteral","src":"22025:4:19","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"22031:25:19","nodeType":"YulIdentifier","src":"22031:25:19"},{"arguments":[{"kind":"number","nativeSrc":"22062:2:19","nodeType":"YulLiteral","src":"22062:2:19","type":"","value":"96"},{"name":"from_","nativeSrc":"22066:5:19","nodeType":"YulIdentifier","src":"22066:5:19"}],"functionName":{"name":"shr","nativeSrc":"22058:3:19","nodeType":"YulIdentifier","src":"22058:3:19"},"nativeSrc":"22058:14:19","nodeType":"YulFunctionCall","src":"22058:14:19"},{"arguments":[{"kind":"number","nativeSrc":"22078:2:19","nodeType":"YulLiteral","src":"22078:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"22088:4:19","nodeType":"YulLiteral","src":"22088:4:19","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"22082:5:19","nodeType":"YulIdentifier","src":"22082:5:19"},"nativeSrc":"22082:11:19","nodeType":"YulFunctionCall","src":"22082:11:19"}],"functionName":{"name":"shr","nativeSrc":"22074:3:19","nodeType":"YulIdentifier","src":"22074:3:19"},"nativeSrc":"22074:20:19","nodeType":"YulFunctionCall","src":"22074:20:19"}],"functionName":{"name":"log3","nativeSrc":"22014:4:19","nodeType":"YulIdentifier","src":"22014:4:19"},"nativeSrc":"22014:81:19","nodeType":"YulFunctionCall","src":"22014:81:19"},"nativeSrc":"22014:81:19","nodeType":"YulExpressionStatement","src":"22014:81:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8008,"isOffset":false,"isSlot":false,"src":"21086:18:19","valueSize":1},{"declaration":7996,"isOffset":false,"isSlot":false,"src":"22031:25:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21283:6:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21532:6:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21918:6:19","valueSize":1},{"declaration":8305,"isOffset":false,"isSlot":false,"src":"21994:6:19","valueSize":1},{"declaration":8301,"isOffset":false,"isSlot":false,"src":"20985:4:19","valueSize":1},{"declaration":8303,"isOffset":false,"isSlot":false,"src":"21615:2:19","valueSize":1}],"id":8314,"nodeType":"InlineAssembly","src":"20941:1164:19"},{"expression":{"arguments":[{"id":8316,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"22134:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8317,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"22140:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8318,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8305,"src":"22144:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8315,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"22114:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22114:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8320,"nodeType":"ExpressionStatement","src":"22114:37:19"}]},"documentation":{"id":8299,"nodeType":"StructuredDocumentation","src":"20703:54:19","text":"@dev Moves `amount` of tokens from `from` to `to`."},"id":8322,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"20771:9:19","nodeType":"FunctionDefinition","parameters":{"id":8306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8301,"mutability":"mutable","name":"from","nameLocation":"20789:4:19","nodeType":"VariableDeclaration","scope":8322,"src":"20781:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8300,"name":"address","nodeType":"ElementaryTypeName","src":"20781:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8303,"mutability":"mutable","name":"to","nameLocation":"20803:2:19","nodeType":"VariableDeclaration","scope":8322,"src":"20795:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8302,"name":"address","nodeType":"ElementaryTypeName","src":"20795:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8305,"mutability":"mutable","name":"amount","nameLocation":"20815:6:19","nodeType":"VariableDeclaration","scope":8322,"src":"20807:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8304,"name":"uint256","nodeType":"ElementaryTypeName","src":"20807:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20780:42:19"},"returnParameters":{"id":8307,"nodeType":"ParameterList","parameters":[],"src":"20840:0:19"},"scope":8369,"src":"20762:1396:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8333,"nodeType":"Block","src":"22622:857:19","statements":[{"AST":{"nativeSrc":"22684:789:19","nodeType":"YulBlock","src":"22684:789:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22767:4:19","nodeType":"YulLiteral","src":"22767:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"22773:7:19","nodeType":"YulIdentifier","src":"22773:7:19"}],"functionName":{"name":"mstore","nativeSrc":"22760:6:19","nodeType":"YulIdentifier","src":"22760:6:19"},"nativeSrc":"22760:21:19","nodeType":"YulFunctionCall","src":"22760:21:19"},"nativeSrc":"22760:21:19","nodeType":"YulExpressionStatement","src":"22760:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22801:4:19","nodeType":"YulLiteral","src":"22801:4:19","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"22807:20:19","nodeType":"YulIdentifier","src":"22807:20:19"}],"functionName":{"name":"mstore","nativeSrc":"22794:6:19","nodeType":"YulIdentifier","src":"22794:6:19"},"nativeSrc":"22794:34:19","nodeType":"YulFunctionCall","src":"22794:34:19"},"nativeSrc":"22794:34:19","nodeType":"YulExpressionStatement","src":"22794:34:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22848:4:19","nodeType":"YulLiteral","src":"22848:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"22854:5:19","nodeType":"YulIdentifier","src":"22854:5:19"}],"functionName":{"name":"mstore","nativeSrc":"22841:6:19","nodeType":"YulIdentifier","src":"22841:6:19"},"nativeSrc":"22841:19:19","nodeType":"YulFunctionCall","src":"22841:19:19"},"nativeSrc":"22841:19:19","nodeType":"YulExpressionStatement","src":"22841:19:19"},{"nativeSrc":"22873:42:19","nodeType":"YulVariableDeclaration","src":"22873:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"22904:4:19","nodeType":"YulLiteral","src":"22904:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"22910:4:19","nodeType":"YulLiteral","src":"22910:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"22894:9:19","nodeType":"YulIdentifier","src":"22894:9:19"},"nativeSrc":"22894:21:19","nodeType":"YulFunctionCall","src":"22894:21:19"},"variables":[{"name":"allowanceSlot","nativeSrc":"22877:13:19","nodeType":"YulTypedName","src":"22877:13:19","type":""}]},{"nativeSrc":"22928:38:19","nodeType":"YulVariableDeclaration","src":"22928:38:19","value":{"arguments":[{"name":"allowanceSlot","nativeSrc":"22952:13:19","nodeType":"YulIdentifier","src":"22952:13:19"}],"functionName":{"name":"sload","nativeSrc":"22946:5:19","nodeType":"YulIdentifier","src":"22946:5:19"},"nativeSrc":"22946:20:19","nodeType":"YulFunctionCall","src":"22946:20:19"},"variables":[{"name":"allowance_","nativeSrc":"22932:10:19","nodeType":"YulTypedName","src":"22932:10:19","type":""}]},{"body":{"nativeSrc":"23067:396:19","nodeType":"YulBlock","src":"23067:396:19","statements":[{"body":{"nativeSrc":"23192:133:19","nodeType":"YulBlock","src":"23192:133:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23221:4:19","nodeType":"YulLiteral","src":"23221:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"23227:10:19","nodeType":"YulLiteral","src":"23227:10:19","type":"","value":"0x13be252b"}],"functionName":{"name":"mstore","nativeSrc":"23214:6:19","nodeType":"YulIdentifier","src":"23214:6:19"},"nativeSrc":"23214:24:19","nodeType":"YulFunctionCall","src":"23214:24:19"},"nativeSrc":"23214:24:19","nodeType":"YulExpressionStatement","src":"23214:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23296:4:19","nodeType":"YulLiteral","src":"23296:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"23302:4:19","nodeType":"YulLiteral","src":"23302:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"23289:6:19","nodeType":"YulIdentifier","src":"23289:6:19"},"nativeSrc":"23289:18:19","nodeType":"YulFunctionCall","src":"23289:18:19"},"nativeSrc":"23289:18:19","nodeType":"YulExpressionStatement","src":"23289:18:19"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"23172:6:19","nodeType":"YulIdentifier","src":"23172:6:19"},{"name":"allowance_","nativeSrc":"23180:10:19","nodeType":"YulIdentifier","src":"23180:10:19"}],"functionName":{"name":"gt","nativeSrc":"23169:2:19","nodeType":"YulIdentifier","src":"23169:2:19"},"nativeSrc":"23169:22:19","nodeType":"YulFunctionCall","src":"23169:22:19"},"nativeSrc":"23166:159:19","nodeType":"YulIf","src":"23166:159:19"},{"expression":{"arguments":[{"name":"allowanceSlot","nativeSrc":"23410:13:19","nodeType":"YulIdentifier","src":"23410:13:19"},{"arguments":[{"name":"allowance_","nativeSrc":"23429:10:19","nodeType":"YulIdentifier","src":"23429:10:19"},{"name":"amount","nativeSrc":"23441:6:19","nodeType":"YulIdentifier","src":"23441:6:19"}],"functionName":{"name":"sub","nativeSrc":"23425:3:19","nodeType":"YulIdentifier","src":"23425:3:19"},"nativeSrc":"23425:23:19","nodeType":"YulFunctionCall","src":"23425:23:19"}],"functionName":{"name":"sstore","nativeSrc":"23403:6:19","nodeType":"YulIdentifier","src":"23403:6:19"},"nativeSrc":"23403:46:19","nodeType":"YulFunctionCall","src":"23403:46:19"},"nativeSrc":"23403:46:19","nodeType":"YulExpressionStatement","src":"23403:46:19"}]},"condition":{"arguments":[{"name":"allowance_","nativeSrc":"23052:10:19","nodeType":"YulIdentifier","src":"23052:10:19"},{"kind":"number","nativeSrc":"23064:1:19","nodeType":"YulLiteral","src":"23064:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23048:3:19","nodeType":"YulIdentifier","src":"23048:3:19"},"nativeSrc":"23048:18:19","nodeType":"YulFunctionCall","src":"23048:18:19"},"nativeSrc":"23045:418:19","nodeType":"YulIf","src":"23045:418:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"22807:20:19","valueSize":1},{"declaration":8329,"isOffset":false,"isSlot":false,"src":"23172:6:19","valueSize":1},{"declaration":8329,"isOffset":false,"isSlot":false,"src":"23441:6:19","valueSize":1},{"declaration":8325,"isOffset":false,"isSlot":false,"src":"22854:5:19","valueSize":1},{"declaration":8327,"isOffset":false,"isSlot":false,"src":"22773:7:19","valueSize":1}],"id":8332,"nodeType":"InlineAssembly","src":"22675:798:19"}]},"documentation":{"id":8323,"nodeType":"StructuredDocumentation","src":"22447:80:19","text":"@dev Updates the allowance of `owner` for `spender` based on spent `amount`."},"id":8334,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"22541:15:19","nodeType":"FunctionDefinition","parameters":{"id":8330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8325,"mutability":"mutable","name":"owner","nameLocation":"22565:5:19","nodeType":"VariableDeclaration","scope":8334,"src":"22557:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8324,"name":"address","nodeType":"ElementaryTypeName","src":"22557:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8327,"mutability":"mutable","name":"spender","nameLocation":"22580:7:19","nodeType":"VariableDeclaration","scope":8334,"src":"22572:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8326,"name":"address","nodeType":"ElementaryTypeName","src":"22572:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8329,"mutability":"mutable","name":"amount","nameLocation":"22597:6:19","nodeType":"VariableDeclaration","scope":8334,"src":"22589:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8328,"name":"uint256","nodeType":"ElementaryTypeName","src":"22589:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22556:48:19"},"returnParameters":{"id":8331,"nodeType":"ParameterList","parameters":[],"src":"22622:0:19"},"scope":8369,"src":"22532:947:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8345,"nodeType":"Block","src":"23695:497:19","statements":[{"AST":{"nativeSrc":"23757:429:19","nodeType":"YulBlock","src":"23757:429:19","statements":[{"nativeSrc":"23771:28:19","nodeType":"YulVariableDeclaration","src":"23771:28:19","value":{"arguments":[{"kind":"number","nativeSrc":"23789:2:19","nodeType":"YulLiteral","src":"23789:2:19","type":"","value":"96"},{"name":"owner","nativeSrc":"23793:5:19","nodeType":"YulIdentifier","src":"23793:5:19"}],"functionName":{"name":"shl","nativeSrc":"23785:3:19","nodeType":"YulIdentifier","src":"23785:3:19"},"nativeSrc":"23785:14:19","nodeType":"YulFunctionCall","src":"23785:14:19"},"variables":[{"name":"owner_","nativeSrc":"23775:6:19","nodeType":"YulTypedName","src":"23775:6:19","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23883:4:19","nodeType":"YulLiteral","src":"23883:4:19","type":"","value":"0x20"},{"name":"spender","nativeSrc":"23889:7:19","nodeType":"YulIdentifier","src":"23889:7:19"}],"functionName":{"name":"mstore","nativeSrc":"23876:6:19","nodeType":"YulIdentifier","src":"23876:6:19"},"nativeSrc":"23876:21:19","nodeType":"YulFunctionCall","src":"23876:21:19"},"nativeSrc":"23876:21:19","nodeType":"YulExpressionStatement","src":"23876:21:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23917:4:19","nodeType":"YulLiteral","src":"23917:4:19","type":"","value":"0x0c"},{"arguments":[{"name":"owner_","nativeSrc":"23926:6:19","nodeType":"YulIdentifier","src":"23926:6:19"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"23934:20:19","nodeType":"YulIdentifier","src":"23934:20:19"}],"functionName":{"name":"or","nativeSrc":"23923:2:19","nodeType":"YulIdentifier","src":"23923:2:19"},"nativeSrc":"23923:32:19","nodeType":"YulFunctionCall","src":"23923:32:19"}],"functionName":{"name":"mstore","nativeSrc":"23910:6:19","nodeType":"YulIdentifier","src":"23910:6:19"},"nativeSrc":"23910:46:19","nodeType":"YulFunctionCall","src":"23910:46:19"},"nativeSrc":"23910:46:19","nodeType":"YulExpressionStatement","src":"23910:46:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23986:4:19","nodeType":"YulLiteral","src":"23986:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"23992:4:19","nodeType":"YulLiteral","src":"23992:4:19","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"23976:9:19","nodeType":"YulIdentifier","src":"23976:9:19"},"nativeSrc":"23976:21:19","nodeType":"YulFunctionCall","src":"23976:21:19"},{"name":"amount","nativeSrc":"23999:6:19","nodeType":"YulIdentifier","src":"23999:6:19"}],"functionName":{"name":"sstore","nativeSrc":"23969:6:19","nodeType":"YulIdentifier","src":"23969:6:19"},"nativeSrc":"23969:37:19","nodeType":"YulFunctionCall","src":"23969:37:19"},"nativeSrc":"23969:37:19","nodeType":"YulExpressionStatement","src":"23969:37:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24068:4:19","nodeType":"YulLiteral","src":"24068:4:19","type":"","value":"0x00"},{"name":"amount","nativeSrc":"24074:6:19","nodeType":"YulIdentifier","src":"24074:6:19"}],"functionName":{"name":"mstore","nativeSrc":"24061:6:19","nodeType":"YulIdentifier","src":"24061:6:19"},"nativeSrc":"24061:20:19","nodeType":"YulFunctionCall","src":"24061:20:19"},"nativeSrc":"24061:20:19","nodeType":"YulExpressionStatement","src":"24061:20:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24099:4:19","nodeType":"YulLiteral","src":"24099:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"24105:4:19","nodeType":"YulLiteral","src":"24105:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"24111:25:19","nodeType":"YulIdentifier","src":"24111:25:19"},{"arguments":[{"kind":"number","nativeSrc":"24142:2:19","nodeType":"YulLiteral","src":"24142:2:19","type":"","value":"96"},{"name":"owner_","nativeSrc":"24146:6:19","nodeType":"YulIdentifier","src":"24146:6:19"}],"functionName":{"name":"shr","nativeSrc":"24138:3:19","nodeType":"YulIdentifier","src":"24138:3:19"},"nativeSrc":"24138:15:19","nodeType":"YulFunctionCall","src":"24138:15:19"},{"arguments":[{"kind":"number","nativeSrc":"24159:2:19","nodeType":"YulLiteral","src":"24159:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24169:4:19","nodeType":"YulLiteral","src":"24169:4:19","type":"","value":"0x2c"}],"functionName":{"name":"mload","nativeSrc":"24163:5:19","nodeType":"YulIdentifier","src":"24163:5:19"},"nativeSrc":"24163:11:19","nodeType":"YulFunctionCall","src":"24163:11:19"}],"functionName":{"name":"shr","nativeSrc":"24155:3:19","nodeType":"YulIdentifier","src":"24155:3:19"},"nativeSrc":"24155:20:19","nodeType":"YulFunctionCall","src":"24155:20:19"}],"functionName":{"name":"log3","nativeSrc":"24094:4:19","nodeType":"YulIdentifier","src":"24094:4:19"},"nativeSrc":"24094:82:19","nodeType":"YulFunctionCall","src":"24094:82:19"},"nativeSrc":"24094:82:19","nodeType":"YulExpressionStatement","src":"24094:82:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8012,"isOffset":false,"isSlot":false,"src":"23934:20:19","valueSize":1},{"declaration":8000,"isOffset":false,"isSlot":false,"src":"24111:25:19","valueSize":1},{"declaration":8341,"isOffset":false,"isSlot":false,"src":"23999:6:19","valueSize":1},{"declaration":8341,"isOffset":false,"isSlot":false,"src":"24074:6:19","valueSize":1},{"declaration":8337,"isOffset":false,"isSlot":false,"src":"23793:5:19","valueSize":1},{"declaration":8339,"isOffset":false,"isSlot":false,"src":"23889:7:19","valueSize":1}],"id":8344,"nodeType":"InlineAssembly","src":"23748:438:19"}]},"documentation":{"id":8335,"nodeType":"StructuredDocumentation","src":"23485:122:19","text":"@dev Sets `amount` as the allowance of `spender` over the tokens of `owner`.\n Emits a {Approval} event."},"id":8346,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"23621:8:19","nodeType":"FunctionDefinition","parameters":{"id":8342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8337,"mutability":"mutable","name":"owner","nameLocation":"23638:5:19","nodeType":"VariableDeclaration","scope":8346,"src":"23630:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8336,"name":"address","nodeType":"ElementaryTypeName","src":"23630:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8339,"mutability":"mutable","name":"spender","nameLocation":"23653:7:19","nodeType":"VariableDeclaration","scope":8346,"src":"23645:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8338,"name":"address","nodeType":"ElementaryTypeName","src":"23645:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8341,"mutability":"mutable","name":"amount","nameLocation":"23670:6:19","nodeType":"VariableDeclaration","scope":8346,"src":"23662:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8340,"name":"uint256","nodeType":"ElementaryTypeName","src":"23662:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23629:48:19"},"returnParameters":{"id":8343,"nodeType":"ParameterList","parameters":[],"src":"23695:0:19"},"scope":8369,"src":"23612:580:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8356,"nodeType":"Block","src":"24677:2:19","statements":[]},"documentation":{"id":8347,"nodeType":"StructuredDocumentation","src":"24481:102:19","text":"@dev Hook that is called before any transfer of tokens.\n This includes minting and burning."},"id":8357,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"24597:20:19","nodeType":"FunctionDefinition","parameters":{"id":8354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8349,"mutability":"mutable","name":"from","nameLocation":"24626:4:19","nodeType":"VariableDeclaration","scope":8357,"src":"24618:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8348,"name":"address","nodeType":"ElementaryTypeName","src":"24618:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8351,"mutability":"mutable","name":"to","nameLocation":"24640:2:19","nodeType":"VariableDeclaration","scope":8357,"src":"24632:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8350,"name":"address","nodeType":"ElementaryTypeName","src":"24632:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8353,"mutability":"mutable","name":"amount","nameLocation":"24652:6:19","nodeType":"VariableDeclaration","scope":8357,"src":"24644:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8352,"name":"uint256","nodeType":"ElementaryTypeName","src":"24644:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24617:42:19"},"returnParameters":{"id":8355,"nodeType":"ParameterList","parameters":[],"src":"24677:0:19"},"scope":8369,"src":"24588:91:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8367,"nodeType":"Block","src":"24879:2:19","statements":[]},"documentation":{"id":8358,"nodeType":"StructuredDocumentation","src":"24685:101:19","text":"@dev Hook that is called after any transfer of tokens.\n This includes minting and burning."},"id":8368,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"24800:19:19","nodeType":"FunctionDefinition","parameters":{"id":8365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8360,"mutability":"mutable","name":"from","nameLocation":"24828:4:19","nodeType":"VariableDeclaration","scope":8368,"src":"24820:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8359,"name":"address","nodeType":"ElementaryTypeName","src":"24820:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8362,"mutability":"mutable","name":"to","nameLocation":"24842:2:19","nodeType":"VariableDeclaration","scope":8368,"src":"24834:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8361,"name":"address","nodeType":"ElementaryTypeName","src":"24834:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8364,"mutability":"mutable","name":"amount","nameLocation":"24854:6:19","nodeType":"VariableDeclaration","scope":8368,"src":"24846:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8363,"name":"uint256","nodeType":"ElementaryTypeName","src":"24846:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24819:42:19"},"returnParameters":{"id":8366,"nodeType":"ParameterList","parameters":[],"src":"24879:0:19"},"scope":8369,"src":"24791:90:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8370,"src":"1140:23743:19","usedErrors":[7956,7959,7962,7965,7968,7971,7974],"usedEvents":[7983,7992]}],"src":"32:24852:19"},"id":19},"@solady/tokens/ERC721.sol":{"ast":{"absolutePath":"@solady/tokens/ERC721.sol","exportedSymbols":{"ERC721":[9111]},"id":9112,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8371,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:20"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":8372,"nodeType":"StructuredDocumentation","src":"1265:176:20","text":"- Check that the overridden function is actually used in the function you want to\n change the behavior of. Much of the code has been manually inlined for performance."},"fullyImplemented":false,"id":9111,"linearizedBaseContracts":[9111],"name":"ERC721","nameLocation":"1459:6:20","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":8373,"nodeType":"StructuredDocumentation","src":"1755:53:20","text":"@dev An account can hold up to 4294967295 tokens."},"id":8376,"mutability":"constant","name":"_MAX_ACCOUNT_BALANCE","nameLocation":"1839:20:20","nodeType":"VariableDeclaration","scope":9111,"src":"1813:59:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8374,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30786666666666666666","id":8375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:10:20","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"internal"},{"documentation":{"id":8377,"nodeType":"StructuredDocumentation","src":"2162:74:20","text":"@dev Only the token owner or an approved account can manage the token."},"errorSelector":"4b6e7f18","id":8379,"name":"NotOwnerNorApproved","nameLocation":"2247:19:20","nodeType":"ErrorDefinition","parameters":{"id":8378,"nodeType":"ParameterList","parameters":[],"src":"2266:2:20"},"src":"2241:28:20"},{"documentation":{"id":8380,"nodeType":"StructuredDocumentation","src":"2275:34:20","text":"@dev The token does not exist."},"errorSelector":"ceea21b6","id":8382,"name":"TokenDoesNotExist","nameLocation":"2320:17:20","nodeType":"ErrorDefinition","parameters":{"id":8381,"nodeType":"ParameterList","parameters":[],"src":"2337:2:20"},"src":"2314:26:20"},{"documentation":{"id":8383,"nodeType":"StructuredDocumentation","src":"2346:34:20","text":"@dev The token already exists."},"errorSelector":"c991cbb1","id":8385,"name":"TokenAlreadyExists","nameLocation":"2391:18:20","nodeType":"ErrorDefinition","parameters":{"id":8384,"nodeType":"ParameterList","parameters":[],"src":"2409:2:20"},"src":"2385:27:20"},{"documentation":{"id":8386,"nodeType":"StructuredDocumentation","src":"2418:55:20","text":"@dev Cannot query the balance for the zero address."},"errorSelector":"8f4eb604","id":8388,"name":"BalanceQueryForZeroAddress","nameLocation":"2484:26:20","nodeType":"ErrorDefinition","parameters":{"id":8387,"nodeType":"ParameterList","parameters":[],"src":"2510:2:20"},"src":"2478:35:20"},{"documentation":{"id":8389,"nodeType":"StructuredDocumentation","src":"2519:53:20","text":"@dev Cannot mint or transfer to the zero address."},"errorSelector":"ea553b34","id":8391,"name":"TransferToZeroAddress","nameLocation":"2583:21:20","nodeType":"ErrorDefinition","parameters":{"id":8390,"nodeType":"ParameterList","parameters":[],"src":"2604:2:20"},"src":"2577:30:20"},{"documentation":{"id":8392,"nodeType":"StructuredDocumentation","src":"2613:43:20","text":"@dev The token must be owned by `from`."},"errorSelector":"a1148100","id":8394,"name":"TransferFromIncorrectOwner","nameLocation":"2667:26:20","nodeType":"ErrorDefinition","parameters":{"id":8393,"nodeType":"ParameterList","parameters":[],"src":"2693:2:20"},"src":"2661:35:20"},{"documentation":{"id":8395,"nodeType":"StructuredDocumentation","src":"2702:48:20","text":"@dev The recipient's balance has overflowed."},"errorSelector":"01336cea","id":8397,"name":"AccountBalanceOverflow","nameLocation":"2761:22:20","nodeType":"ErrorDefinition","parameters":{"id":8396,"nodeType":"ParameterList","parameters":[],"src":"2783:2:20"},"src":"2755:31:20"},{"documentation":{"id":8398,"nodeType":"StructuredDocumentation","src":"2792:107:20","text":"@dev Cannot safely transfer to a contract that does not implement\n the ERC721Receiver interface."},"errorSelector":"d1a57ed6","id":8400,"name":"TransferToNonERC721ReceiverImplementer","nameLocation":"2910:38:20","nodeType":"ErrorDefinition","parameters":{"id":8399,"nodeType":"ParameterList","parameters":[],"src":"2948:2:20"},"src":"2904:47:20"},{"anonymous":false,"documentation":{"id":8401,"nodeType":"StructuredDocumentation","src":"3240:68:20","text":"@dev Emitted when token `id` is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":8409,"name":"Transfer","nameLocation":"3319:8:20","nodeType":"EventDefinition","parameters":{"id":8408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8403,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3344:4:20","nodeType":"VariableDeclaration","scope":8409,"src":"3328:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8402,"name":"address","nodeType":"ElementaryTypeName","src":"3328:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8405,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3366:2:20","nodeType":"VariableDeclaration","scope":8409,"src":"3350:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8404,"name":"address","nodeType":"ElementaryTypeName","src":"3350:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8407,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3386:2:20","nodeType":"VariableDeclaration","scope":8409,"src":"3370:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3370:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3327:62:20"},"src":"3313:77:20"},{"anonymous":false,"documentation":{"id":8410,"nodeType":"StructuredDocumentation","src":"3396:73:20","text":"@dev Emitted when `owner` enables `account` to manage the `id` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":8418,"name":"Approval","nameLocation":"3480:8:20","nodeType":"EventDefinition","parameters":{"id":8417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8412,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3505:5:20","nodeType":"VariableDeclaration","scope":8418,"src":"3489:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8411,"name":"address","nodeType":"ElementaryTypeName","src":"3489:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8414,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"3528:7:20","nodeType":"VariableDeclaration","scope":8418,"src":"3512:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8413,"name":"address","nodeType":"ElementaryTypeName","src":"3512:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8416,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3553:2:20","nodeType":"VariableDeclaration","scope":8418,"src":"3537:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3488:68:20"},"src":"3474:83:20"},{"anonymous":false,"documentation":{"id":8419,"nodeType":"StructuredDocumentation","src":"3563:91:20","text":"@dev Emitted when `owner` enables or disables `operator` to manage all of their tokens."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":8427,"name":"ApprovalForAll","nameLocation":"3665:14:20","nodeType":"EventDefinition","parameters":{"id":8426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8421,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3696:5:20","nodeType":"VariableDeclaration","scope":8427,"src":"3680:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8420,"name":"address","nodeType":"ElementaryTypeName","src":"3680:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8423,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"3719:8:20","nodeType":"VariableDeclaration","scope":8427,"src":"3703:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8422,"name":"address","nodeType":"ElementaryTypeName","src":"3703:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8425,"indexed":false,"mutability":"mutable","name":"isApproved","nameLocation":"3734:10:20","nodeType":"VariableDeclaration","scope":8427,"src":"3729:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8424,"name":"bool","nodeType":"ElementaryTypeName","src":"3729:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3679:66:20"},"src":"3659:87:20"},{"constant":true,"documentation":{"id":8428,"nodeType":"StructuredDocumentation","src":"3752:65:20","text":"@dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`."},"id":8431,"mutability":"constant","name":"_TRANSFER_EVENT_SIGNATURE","nameLocation":"3847:25:20","nodeType":"VariableDeclaration","scope":9111,"src":"3822:127:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3822:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864646632353261643162653263383962363963326230363866633337386461613935326261376631363363346131313632386635356134646635323362336566","id":8430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3883:66:20","typeDescriptions":{"typeIdentifier":"t_rational_100389287136786176327247604509743168900146139575972864366142685224231313322991_by_1","typeString":"int_const 1003...(70 digits omitted)...2991"},"value":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},"visibility":"private"},{"constant":true,"documentation":{"id":8432,"nodeType":"StructuredDocumentation","src":"3956:65:20","text":"@dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`."},"id":8435,"mutability":"constant","name":"_APPROVAL_EVENT_SIGNATURE","nameLocation":"4051:25:20","nodeType":"VariableDeclaration","scope":9111,"src":"4026:127:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8433,"name":"uint256","nodeType":"ElementaryTypeName","src":"4026:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838633562653165356562656337643562643134663731343237643165383466336464303331346330663762323239316535623230306163386337633362393235","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4087:66:20","typeDescriptions":{"typeIdentifier":"t_rational_63486140976153616755203102783360879283472101686154884697241723088393386309925_by_1","typeString":"int_const 6348...(69 digits omitted)...9925"},"value":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},"visibility":"private"},{"constant":true,"documentation":{"id":8436,"nodeType":"StructuredDocumentation","src":"4160:68:20","text":"@dev `keccak256(bytes(\"ApprovalForAll(address,address,bool)\"))`."},"id":8439,"mutability":"constant","name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nameLocation":"4258:33:20","nodeType":"VariableDeclaration","scope":9111,"src":"4233:135:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8437,"name":"uint256","nodeType":"ElementaryTypeName","src":"4233:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307831373330376561623339616236313037653838393938343561643364353962643936353366323030663232303932303438396361326235393337363936633331","id":8438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4302:66:20","typeDescriptions":{"typeIdentifier":"t_rational_10488878412788366941768124514102328501031624832915735463117339209566108871729_by_1","typeString":"int_const 1048...(69 digits omitted)...1729"},"value":"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31"},"visibility":"private"},{"constant":true,"documentation":{"id":8440,"nodeType":"StructuredDocumentation","src":"4658:1014:20","text":"@dev The ownership data slot of `id` is given by:\n ```\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n ```\n Bits Layout:\n - [0..159] `addr`\n - [160..255] `extraData`\n The approved address slot is given by: `add(1, ownershipSlot)`.\n See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip\n The balance slot of `owner` is given by:\n ```\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x1c)\n ```\n Bits Layout:\n - [0..31] `balance`\n - [32..255] `aux`\n The `operator` approval slot of `owner` is given by:\n ```\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n mstore(0x00, owner)\n let operatorApprovalSlot := keccak256(0x0c, 0x30)\n ```"},"id":8445,"mutability":"constant","name":"_ERC721_MASTER_SLOT_SEED","nameLocation":"5702:24:20","nodeType":"VariableDeclaration","scope":9111,"src":"5677:77:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8441,"name":"uint256","nodeType":"ElementaryTypeName","src":"5677:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_56779654877098784894033833160858981098869911147275929510173318722286648295424_by_1","typeString":"int_const 5677...(69 digits omitted)...5424"},"id":8444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"307837643838323535333061356132653761","id":8442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5729:18:20","typeDescriptions":{"typeIdentifier":"t_rational_9045520890159836794_by_1","typeString":"int_const 9045520890159836794"},"value":"0x7d8825530a5a2e7a"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":8443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5751:3:20","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"5729:25:20","typeDescriptions":{"typeIdentifier":"t_rational_56779654877098784894033833160858981098869911147275929510173318722286648295424_by_1","typeString":"int_const 5677...(69 digits omitted)...5424"}},"visibility":"private"},{"constant":true,"documentation":{"id":8446,"nodeType":"StructuredDocumentation","src":"5761:45:20","text":"@dev Pre-shifted and pre-masked constant."},"id":8449,"mutability":"constant","name":"_ERC721_MASTER_SLOT_SEED_MASKED","nameLocation":"5836:31:20","nodeType":"VariableDeclaration","scope":9111,"src":"5811:77:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8447,"name":"uint256","nodeType":"ElementaryTypeName","src":"5811:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830613561326537613030303030303030","id":8448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5870:18:20","typeDescriptions":{"typeIdentifier":"t_rational_745959789804126208_by_1","typeString":"int_const 745959789804126208"},"value":"0x0a5a2e7a00000000"},"visibility":"private"},{"documentation":{"id":8450,"nodeType":"StructuredDocumentation","src":"6178:43:20","text":"@dev Returns the token collection name."},"functionSelector":"06fdde03","id":8455,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"6235:4:20","nodeType":"FunctionDefinition","parameters":{"id":8451,"nodeType":"ParameterList","parameters":[],"src":"6239:2:20"},"returnParameters":{"id":8454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8455,"src":"6271:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8452,"name":"string","nodeType":"ElementaryTypeName","src":"6271:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6270:15:20"},"scope":9111,"src":"6226:60:20","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8456,"nodeType":"StructuredDocumentation","src":"6292:45:20","text":"@dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":8461,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"6351:6:20","nodeType":"FunctionDefinition","parameters":{"id":8457,"nodeType":"ParameterList","parameters":[],"src":"6357:2:20"},"returnParameters":{"id":8460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8459,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8461,"src":"6389:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8458,"name":"string","nodeType":"ElementaryTypeName","src":"6389:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6388:15:20"},"scope":9111,"src":"6342:62:20","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8462,"nodeType":"StructuredDocumentation","src":"6410:70:20","text":"@dev Returns the Uniform Resource Identifier (URI) for token `id`."},"functionSelector":"c87b56dd","id":8469,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"6494:8:20","nodeType":"FunctionDefinition","parameters":{"id":8465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8464,"mutability":"mutable","name":"id","nameLocation":"6511:2:20","nodeType":"VariableDeclaration","scope":8469,"src":"6503:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8463,"name":"uint256","nodeType":"ElementaryTypeName","src":"6503:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6502:12:20"},"returnParameters":{"id":8468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8469,"src":"6544:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8466,"name":"string","nodeType":"ElementaryTypeName","src":"6544:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6543:15:20"},"scope":9111,"src":"6485:74:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8484,"nodeType":"Block","src":"7031:258:20","statements":[{"expression":{"id":8481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8477,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8475,"src":"7041:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8479,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"7059:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8478,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8655,"src":"7050:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":8480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7050:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7041:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8482,"nodeType":"ExpressionStatement","src":"7041:21:20"},{"AST":{"nativeSrc":"7124:159:20","nodeType":"YulBlock","src":"7124:159:20","statements":[{"body":{"nativeSrc":"7156:117:20","nodeType":"YulBlock","src":"7156:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7181:4:20","nodeType":"YulLiteral","src":"7181:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7187:10:20","nodeType":"YulLiteral","src":"7187:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"7174:6:20","nodeType":"YulIdentifier","src":"7174:6:20"},"nativeSrc":"7174:24:20","nodeType":"YulFunctionCall","src":"7174:24:20"},"nativeSrc":"7174:24:20","nodeType":"YulExpressionStatement","src":"7174:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7248:4:20","nodeType":"YulLiteral","src":"7248:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7254:4:20","nodeType":"YulLiteral","src":"7254:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7241:6:20","nodeType":"YulIdentifier","src":"7241:6:20"},"nativeSrc":"7241:18:20","nodeType":"YulFunctionCall","src":"7241:18:20"},"nativeSrc":"7241:18:20","nodeType":"YulExpressionStatement","src":"7241:18:20"}]},"condition":{"arguments":[{"name":"result","nativeSrc":"7148:6:20","nodeType":"YulIdentifier","src":"7148:6:20"}],"functionName":{"name":"iszero","nativeSrc":"7141:6:20","nodeType":"YulIdentifier","src":"7141:6:20"},"nativeSrc":"7141:14:20","nodeType":"YulFunctionCall","src":"7141:14:20"},"nativeSrc":"7138:135:20","nodeType":"YulIf","src":"7138:135:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8475,"isOffset":false,"isSlot":false,"src":"7148:6:20","valueSize":1}],"id":8483,"nodeType":"InlineAssembly","src":"7115:168:20"}]},"documentation":{"id":8470,"nodeType":"StructuredDocumentation","src":"6848:104:20","text":"@dev Returns the owner of token `id`.\n Requirements:\n - Token `id` must exist."},"functionSelector":"6352211e","id":8485,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"6966:7:20","nodeType":"FunctionDefinition","parameters":{"id":8473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8472,"mutability":"mutable","name":"id","nameLocation":"6982:2:20","nodeType":"VariableDeclaration","scope":8485,"src":"6974:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8471,"name":"uint256","nodeType":"ElementaryTypeName","src":"6974:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6973:12:20"},"returnParameters":{"id":8476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8475,"mutability":"mutable","name":"result","nameLocation":"7023:6:20","nodeType":"VariableDeclaration","scope":8485,"src":"7015:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8474,"name":"address","nodeType":"ElementaryTypeName","src":"7015:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7014:16:20"},"scope":9111,"src":"6957:332:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8494,"nodeType":"Block","src":"7512:454:20","statements":[{"AST":{"nativeSrc":"7574:386:20","nodeType":"YulBlock","src":"7574:386:20","statements":[{"body":{"nativeSrc":"7663:126:20","nodeType":"YulBlock","src":"7663:126:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7688:4:20","nodeType":"YulLiteral","src":"7688:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7694:10:20","nodeType":"YulLiteral","src":"7694:10:20","type":"","value":"0x8f4eb604"}],"functionName":{"name":"mstore","nativeSrc":"7681:6:20","nodeType":"YulIdentifier","src":"7681:6:20"},"nativeSrc":"7681:24:20","nodeType":"YulFunctionCall","src":"7681:24:20"},"nativeSrc":"7681:24:20","nodeType":"YulExpressionStatement","src":"7681:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7764:4:20","nodeType":"YulLiteral","src":"7764:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7770:4:20","nodeType":"YulLiteral","src":"7770:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7757:6:20","nodeType":"YulIdentifier","src":"7757:6:20"},"nativeSrc":"7757:18:20","nodeType":"YulFunctionCall","src":"7757:18:20"},"nativeSrc":"7757:18:20","nodeType":"YulExpressionStatement","src":"7757:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"7656:5:20","nodeType":"YulIdentifier","src":"7656:5:20"}],"functionName":{"name":"iszero","nativeSrc":"7649:6:20","nodeType":"YulIdentifier","src":"7649:6:20"},"nativeSrc":"7649:13:20","nodeType":"YulFunctionCall","src":"7649:13:20"},"nativeSrc":"7646:143:20","nodeType":"YulIf","src":"7646:143:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7809:4:20","nodeType":"YulLiteral","src":"7809:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"7815:24:20","nodeType":"YulIdentifier","src":"7815:24:20"}],"functionName":{"name":"mstore","nativeSrc":"7802:6:20","nodeType":"YulIdentifier","src":"7802:6:20"},"nativeSrc":"7802:38:20","nodeType":"YulFunctionCall","src":"7802:38:20"},"nativeSrc":"7802:38:20","nodeType":"YulExpressionStatement","src":"7802:38:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7860:4:20","nodeType":"YulLiteral","src":"7860:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"7866:5:20","nodeType":"YulIdentifier","src":"7866:5:20"}],"functionName":{"name":"mstore","nativeSrc":"7853:6:20","nodeType":"YulIdentifier","src":"7853:6:20"},"nativeSrc":"7853:19:20","nodeType":"YulFunctionCall","src":"7853:19:20"},"nativeSrc":"7853:19:20","nodeType":"YulExpressionStatement","src":"7853:19:20"},{"nativeSrc":"7885:65:20","nodeType":"YulAssignment","src":"7885:65:20","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7915:4:20","nodeType":"YulLiteral","src":"7915:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7921:4:20","nodeType":"YulLiteral","src":"7921:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"7905:9:20","nodeType":"YulIdentifier","src":"7905:9:20"},"nativeSrc":"7905:21:20","nodeType":"YulFunctionCall","src":"7905:21:20"}],"functionName":{"name":"sload","nativeSrc":"7899:5:20","nodeType":"YulIdentifier","src":"7899:5:20"},"nativeSrc":"7899:28:20","nodeType":"YulFunctionCall","src":"7899:28:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"7929:20:20","nodeType":"YulIdentifier","src":"7929:20:20"}],"functionName":{"name":"and","nativeSrc":"7895:3:20","nodeType":"YulIdentifier","src":"7895:3:20"},"nativeSrc":"7895:55:20","nodeType":"YulFunctionCall","src":"7895:55:20"},"variableNames":[{"name":"result","nativeSrc":"7885:6:20","nodeType":"YulIdentifier","src":"7885:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"7815:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"7929:20:20","valueSize":1},{"declaration":8488,"isOffset":false,"isSlot":false,"src":"7656:5:20","valueSize":1},{"declaration":8488,"isOffset":false,"isSlot":false,"src":"7866:5:20","valueSize":1},{"declaration":8491,"isOffset":false,"isSlot":false,"src":"7885:6:20","valueSize":1}],"id":8493,"nodeType":"InlineAssembly","src":"7565:395:20"}]},"documentation":{"id":8486,"nodeType":"StructuredDocumentation","src":"7295:133:20","text":"@dev Returns the number of tokens owned by `owner`.\n Requirements:\n - `owner` must not be the zero address."},"functionSelector":"70a08231","id":8495,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"7442:9:20","nodeType":"FunctionDefinition","parameters":{"id":8489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8488,"mutability":"mutable","name":"owner","nameLocation":"7460:5:20","nodeType":"VariableDeclaration","scope":8495,"src":"7452:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8487,"name":"address","nodeType":"ElementaryTypeName","src":"7452:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7451:15:20"},"returnParameters":{"id":8492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8491,"mutability":"mutable","name":"result","nameLocation":"7504:6:20","nodeType":"VariableDeclaration","scope":8495,"src":"7496:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8490,"name":"uint256","nodeType":"ElementaryTypeName","src":"7496:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7495:16:20"},"scope":9111,"src":"7433:533:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8504,"nodeType":"Block","src":"8177:454:20","statements":[{"AST":{"nativeSrc":"8239:386:20","nodeType":"YulBlock","src":"8239:386:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8260:4:20","nodeType":"YulLiteral","src":"8260:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"8266:2:20","nodeType":"YulIdentifier","src":"8266:2:20"}],"functionName":{"name":"mstore","nativeSrc":"8253:6:20","nodeType":"YulIdentifier","src":"8253:6:20"},"nativeSrc":"8253:16:20","nodeType":"YulFunctionCall","src":"8253:16:20"},"nativeSrc":"8253:16:20","nodeType":"YulExpressionStatement","src":"8253:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8289:4:20","nodeType":"YulLiteral","src":"8289:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"8295:24:20","nodeType":"YulIdentifier","src":"8295:24:20"}],"functionName":{"name":"mstore","nativeSrc":"8282:6:20","nodeType":"YulIdentifier","src":"8282:6:20"},"nativeSrc":"8282:38:20","nodeType":"YulFunctionCall","src":"8282:38:20"},"nativeSrc":"8282:38:20","nodeType":"YulExpressionStatement","src":"8282:38:20"},{"nativeSrc":"8333:60:20","nodeType":"YulVariableDeclaration","src":"8333:60:20","value":{"arguments":[{"name":"id","nativeSrc":"8358:2:20","nodeType":"YulIdentifier","src":"8358:2:20"},{"arguments":[{"name":"id","nativeSrc":"8366:2:20","nodeType":"YulIdentifier","src":"8366:2:20"},{"arguments":[{"kind":"number","nativeSrc":"8380:4:20","nodeType":"YulLiteral","src":"8380:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8386:4:20","nodeType":"YulLiteral","src":"8386:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8370:9:20","nodeType":"YulIdentifier","src":"8370:9:20"},"nativeSrc":"8370:21:20","nodeType":"YulFunctionCall","src":"8370:21:20"}],"functionName":{"name":"add","nativeSrc":"8362:3:20","nodeType":"YulIdentifier","src":"8362:3:20"},"nativeSrc":"8362:30:20","nodeType":"YulFunctionCall","src":"8362:30:20"}],"functionName":{"name":"add","nativeSrc":"8354:3:20","nodeType":"YulIdentifier","src":"8354:3:20"},"nativeSrc":"8354:39:20","nodeType":"YulFunctionCall","src":"8354:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"8337:13:20","nodeType":"YulTypedName","src":"8337:13:20","type":""}]},{"body":{"nativeSrc":"8447:117:20","nodeType":"YulBlock","src":"8447:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8472:4:20","nodeType":"YulLiteral","src":"8472:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8478:10:20","nodeType":"YulLiteral","src":"8478:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"8465:6:20","nodeType":"YulIdentifier","src":"8465:6:20"},"nativeSrc":"8465:24:20","nodeType":"YulFunctionCall","src":"8465:24:20"},"nativeSrc":"8465:24:20","nodeType":"YulExpressionStatement","src":"8465:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8539:4:20","nodeType":"YulLiteral","src":"8539:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8545:4:20","nodeType":"YulLiteral","src":"8545:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8532:6:20","nodeType":"YulIdentifier","src":"8532:6:20"},"nativeSrc":"8532:18:20","nodeType":"YulFunctionCall","src":"8532:18:20"},"nativeSrc":"8532:18:20","nodeType":"YulExpressionStatement","src":"8532:18:20"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8420:2:20","nodeType":"YulLiteral","src":"8420:2:20","type":"","value":"96"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"8430:13:20","nodeType":"YulIdentifier","src":"8430:13:20"}],"functionName":{"name":"sload","nativeSrc":"8424:5:20","nodeType":"YulIdentifier","src":"8424:5:20"},"nativeSrc":"8424:20:20","nodeType":"YulFunctionCall","src":"8424:20:20"}],"functionName":{"name":"shl","nativeSrc":"8416:3:20","nodeType":"YulIdentifier","src":"8416:3:20"},"nativeSrc":"8416:29:20","nodeType":"YulFunctionCall","src":"8416:29:20"}],"functionName":{"name":"iszero","nativeSrc":"8409:6:20","nodeType":"YulIdentifier","src":"8409:6:20"},"nativeSrc":"8409:37:20","nodeType":"YulFunctionCall","src":"8409:37:20"},"nativeSrc":"8406:158:20","nodeType":"YulIf","src":"8406:158:20"},{"nativeSrc":"8577:38:20","nodeType":"YulAssignment","src":"8577:38:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8597:1:20","nodeType":"YulLiteral","src":"8597:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"8600:13:20","nodeType":"YulIdentifier","src":"8600:13:20"}],"functionName":{"name":"add","nativeSrc":"8593:3:20","nodeType":"YulIdentifier","src":"8593:3:20"},"nativeSrc":"8593:21:20","nodeType":"YulFunctionCall","src":"8593:21:20"}],"functionName":{"name":"sload","nativeSrc":"8587:5:20","nodeType":"YulIdentifier","src":"8587:5:20"},"nativeSrc":"8587:28:20","nodeType":"YulFunctionCall","src":"8587:28:20"},"variableNames":[{"name":"result","nativeSrc":"8577:6:20","nodeType":"YulIdentifier","src":"8577:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"8295:24:20","valueSize":1},{"declaration":8498,"isOffset":false,"isSlot":false,"src":"8266:2:20","valueSize":1},{"declaration":8498,"isOffset":false,"isSlot":false,"src":"8358:2:20","valueSize":1},{"declaration":8498,"isOffset":false,"isSlot":false,"src":"8366:2:20","valueSize":1},{"declaration":8501,"isOffset":false,"isSlot":false,"src":"8577:6:20","valueSize":1}],"id":8503,"nodeType":"InlineAssembly","src":"8230:395:20"}]},"documentation":{"id":8496,"nodeType":"StructuredDocumentation","src":"7972:122:20","text":"@dev Returns the account approved to manage token `id`.\n Requirements:\n - Token `id` must exist."},"functionSelector":"081812fc","id":8505,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"8108:11:20","nodeType":"FunctionDefinition","parameters":{"id":8499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8498,"mutability":"mutable","name":"id","nameLocation":"8128:2:20","nodeType":"VariableDeclaration","scope":8505,"src":"8120:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8497,"name":"uint256","nodeType":"ElementaryTypeName","src":"8120:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8119:12:20"},"returnParameters":{"id":8502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8501,"mutability":"mutable","name":"result","nameLocation":"8169:6:20","nodeType":"VariableDeclaration","scope":8505,"src":"8161:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8500,"name":"address","nodeType":"ElementaryTypeName","src":"8161:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8160:16:20"},"scope":9111,"src":"8099:532:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8520,"nodeType":"Block","src":"8994:50:20","statements":[{"expression":{"arguments":[{"expression":{"id":8514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9013:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9017:6:20","memberName":"sender","nodeType":"MemberAccess","src":"9013:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8516,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8508,"src":"9025:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8517,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8510,"src":"9034:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8513,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[8887,8899],"referencedDeclaration":8899,"src":"9004:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9004:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8519,"nodeType":"ExpressionStatement","src":"9004:33:20"}]},"documentation":{"id":8506,"nodeType":"StructuredDocumentation","src":"8637:283:20","text":"@dev Sets `account` as the approved account to manage token `id`.\n Requirements:\n - Token `id` must exist.\n - The caller must be the owner of the token,\n or an approved operator for the token owner.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":8521,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"8934:7:20","nodeType":"FunctionDefinition","parameters":{"id":8511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8508,"mutability":"mutable","name":"account","nameLocation":"8950:7:20","nodeType":"VariableDeclaration","scope":8521,"src":"8942:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8507,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8510,"mutability":"mutable","name":"id","nameLocation":"8967:2:20","nodeType":"VariableDeclaration","scope":8521,"src":"8959:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8509,"name":"uint256","nodeType":"ElementaryTypeName","src":"8959:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8941:29:20"},"returnParameters":{"id":8512,"nodeType":"ParameterList","parameters":[],"src":"8994:0:20"},"scope":9111,"src":"8925:119:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8532,"nodeType":"Block","src":"9272:255:20","statements":[{"AST":{"nativeSrc":"9334:187:20","nodeType":"YulBlock","src":"9334:187:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9355:4:20","nodeType":"YulLiteral","src":"9355:4:20","type":"","value":"0x1c"},{"name":"operator","nativeSrc":"9361:8:20","nodeType":"YulIdentifier","src":"9361:8:20"}],"functionName":{"name":"mstore","nativeSrc":"9348:6:20","nodeType":"YulIdentifier","src":"9348:6:20"},"nativeSrc":"9348:22:20","nodeType":"YulFunctionCall","src":"9348:22:20"},"nativeSrc":"9348:22:20","nodeType":"YulExpressionStatement","src":"9348:22:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9390:4:20","nodeType":"YulLiteral","src":"9390:4:20","type":"","value":"0x08"},{"name":"_ERC721_MASTER_SLOT_SEED_MASKED","nativeSrc":"9396:31:20","nodeType":"YulIdentifier","src":"9396:31:20"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:20","nodeType":"YulIdentifier","src":"9383:6:20"},"nativeSrc":"9383:45:20","nodeType":"YulFunctionCall","src":"9383:45:20"},"nativeSrc":"9383:45:20","nodeType":"YulExpressionStatement","src":"9383:45:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9448:4:20","nodeType":"YulLiteral","src":"9448:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"9454:5:20","nodeType":"YulIdentifier","src":"9454:5:20"}],"functionName":{"name":"mstore","nativeSrc":"9441:6:20","nodeType":"YulIdentifier","src":"9441:6:20"},"nativeSrc":"9441:19:20","nodeType":"YulFunctionCall","src":"9441:19:20"},"nativeSrc":"9441:19:20","nodeType":"YulExpressionStatement","src":"9441:19:20"},{"nativeSrc":"9473:38:20","nodeType":"YulAssignment","src":"9473:38:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9499:4:20","nodeType":"YulLiteral","src":"9499:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9505:4:20","nodeType":"YulLiteral","src":"9505:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"9489:9:20","nodeType":"YulIdentifier","src":"9489:9:20"},"nativeSrc":"9489:21:20","nodeType":"YulFunctionCall","src":"9489:21:20"}],"functionName":{"name":"sload","nativeSrc":"9483:5:20","nodeType":"YulIdentifier","src":"9483:5:20"},"nativeSrc":"9483:28:20","nodeType":"YulFunctionCall","src":"9483:28:20"},"variableNames":[{"name":"result","nativeSrc":"9473:6:20","nodeType":"YulIdentifier","src":"9473:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8449,"isOffset":false,"isSlot":false,"src":"9396:31:20","valueSize":1},{"declaration":8526,"isOffset":false,"isSlot":false,"src":"9361:8:20","valueSize":1},{"declaration":8524,"isOffset":false,"isSlot":false,"src":"9454:5:20","valueSize":1},{"declaration":8529,"isOffset":false,"isSlot":false,"src":"9473:6:20","valueSize":1}],"id":8531,"nodeType":"InlineAssembly","src":"9325:196:20"}]},"documentation":{"id":8522,"nodeType":"StructuredDocumentation","src":"9050:80:20","text":"@dev Returns whether `operator` is approved to manage the tokens of `owner`."},"functionSelector":"e985e9c5","id":8533,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"9144:16:20","nodeType":"FunctionDefinition","parameters":{"id":8527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8524,"mutability":"mutable","name":"owner","nameLocation":"9169:5:20","nodeType":"VariableDeclaration","scope":8533,"src":"9161:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8523,"name":"address","nodeType":"ElementaryTypeName","src":"9161:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8526,"mutability":"mutable","name":"operator","nameLocation":"9184:8:20","nodeType":"VariableDeclaration","scope":8533,"src":"9176:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8525,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9160:33:20"},"returnParameters":{"id":8530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8529,"mutability":"mutable","name":"result","nameLocation":"9260:6:20","nodeType":"VariableDeclaration","scope":8533,"src":"9255:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8528,"name":"bool","nodeType":"ElementaryTypeName","src":"9255:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9254:13:20"},"scope":9111,"src":"9135:392:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8542,"nodeType":"Block","src":"9744:649:20","statements":[{"AST":{"nativeSrc":"9806:581:20","nodeType":"YulBlock","src":"9806:581:20","statements":[{"nativeSrc":"9854:40:20","nodeType":"YulAssignment","src":"9854:40:20","value":{"arguments":[{"arguments":[{"name":"isApproved","nativeSrc":"9882:10:20","nodeType":"YulIdentifier","src":"9882:10:20"}],"functionName":{"name":"iszero","nativeSrc":"9875:6:20","nodeType":"YulIdentifier","src":"9875:6:20"},"nativeSrc":"9875:18:20","nodeType":"YulFunctionCall","src":"9875:18:20"}],"functionName":{"name":"iszero","nativeSrc":"9868:6:20","nodeType":"YulIdentifier","src":"9868:6:20"},"nativeSrc":"9868:26:20","nodeType":"YulFunctionCall","src":"9868:26:20"},"variableNames":[{"name":"isApproved","nativeSrc":"9854:10:20","nodeType":"YulIdentifier","src":"9854:10:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9985:4:20","nodeType":"YulLiteral","src":"9985:4:20","type":"","value":"0x1c"},{"name":"operator","nativeSrc":"9991:8:20","nodeType":"YulIdentifier","src":"9991:8:20"}],"functionName":{"name":"mstore","nativeSrc":"9978:6:20","nodeType":"YulIdentifier","src":"9978:6:20"},"nativeSrc":"9978:22:20","nodeType":"YulFunctionCall","src":"9978:22:20"},"nativeSrc":"9978:22:20","nodeType":"YulExpressionStatement","src":"9978:22:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10020:4:20","nodeType":"YulLiteral","src":"10020:4:20","type":"","value":"0x08"},{"name":"_ERC721_MASTER_SLOT_SEED_MASKED","nativeSrc":"10026:31:20","nodeType":"YulIdentifier","src":"10026:31:20"}],"functionName":{"name":"mstore","nativeSrc":"10013:6:20","nodeType":"YulIdentifier","src":"10013:6:20"},"nativeSrc":"10013:45:20","nodeType":"YulFunctionCall","src":"10013:45:20"},"nativeSrc":"10013:45:20","nodeType":"YulExpressionStatement","src":"10013:45:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10078:4:20","nodeType":"YulLiteral","src":"10078:4:20","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10084:6:20","nodeType":"YulIdentifier","src":"10084:6:20"},"nativeSrc":"10084:8:20","nodeType":"YulFunctionCall","src":"10084:8:20"}],"functionName":{"name":"mstore","nativeSrc":"10071:6:20","nodeType":"YulIdentifier","src":"10071:6:20"},"nativeSrc":"10071:22:20","nodeType":"YulFunctionCall","src":"10071:22:20"},"nativeSrc":"10071:22:20","nodeType":"YulExpressionStatement","src":"10071:22:20"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10123:4:20","nodeType":"YulLiteral","src":"10123:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10129:4:20","nodeType":"YulLiteral","src":"10129:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"10113:9:20","nodeType":"YulIdentifier","src":"10113:9:20"},"nativeSrc":"10113:21:20","nodeType":"YulFunctionCall","src":"10113:21:20"},{"name":"isApproved","nativeSrc":"10136:10:20","nodeType":"YulIdentifier","src":"10136:10:20"}],"functionName":{"name":"sstore","nativeSrc":"10106:6:20","nodeType":"YulIdentifier","src":"10106:6:20"},"nativeSrc":"10106:41:20","nodeType":"YulFunctionCall","src":"10106:41:20"},"nativeSrc":"10106:41:20","nodeType":"YulExpressionStatement","src":"10106:41:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10215:4:20","nodeType":"YulLiteral","src":"10215:4:20","type":"","value":"0x00"},{"name":"isApproved","nativeSrc":"10221:10:20","nodeType":"YulIdentifier","src":"10221:10:20"}],"functionName":{"name":"mstore","nativeSrc":"10208:6:20","nodeType":"YulIdentifier","src":"10208:6:20"},"nativeSrc":"10208:24:20","nodeType":"YulFunctionCall","src":"10208:24:20"},"nativeSrc":"10208:24:20","nodeType":"YulExpressionStatement","src":"10208:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10293:4:20","nodeType":"YulLiteral","src":"10293:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10299:4:20","nodeType":"YulLiteral","src":"10299:4:20","type":"","value":"0x20"},{"name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nativeSrc":"10305:33:20","nodeType":"YulIdentifier","src":"10305:33:20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10340:6:20","nodeType":"YulIdentifier","src":"10340:6:20"},"nativeSrc":"10340:8:20","nodeType":"YulFunctionCall","src":"10340:8:20"},{"arguments":[{"kind":"number","nativeSrc":"10354:2:20","nodeType":"YulLiteral","src":"10354:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"10362:2:20","nodeType":"YulLiteral","src":"10362:2:20","type":"","value":"96"},{"name":"operator","nativeSrc":"10366:8:20","nodeType":"YulIdentifier","src":"10366:8:20"}],"functionName":{"name":"shl","nativeSrc":"10358:3:20","nodeType":"YulIdentifier","src":"10358:3:20"},"nativeSrc":"10358:17:20","nodeType":"YulFunctionCall","src":"10358:17:20"}],"functionName":{"name":"shr","nativeSrc":"10350:3:20","nodeType":"YulIdentifier","src":"10350:3:20"},"nativeSrc":"10350:26:20","nodeType":"YulFunctionCall","src":"10350:26:20"}],"functionName":{"name":"log3","nativeSrc":"10288:4:20","nodeType":"YulIdentifier","src":"10288:4:20"},"nativeSrc":"10288:89:20","nodeType":"YulFunctionCall","src":"10288:89:20"},"nativeSrc":"10288:89:20","nodeType":"YulExpressionStatement","src":"10288:89:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8439,"isOffset":false,"isSlot":false,"src":"10305:33:20","valueSize":1},{"declaration":8449,"isOffset":false,"isSlot":false,"src":"10026:31:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"10136:10:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"10221:10:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"9854:10:20","valueSize":1},{"declaration":8538,"isOffset":false,"isSlot":false,"src":"9882:10:20","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"10366:8:20","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"9991:8:20","valueSize":1}],"id":8541,"nodeType":"InlineAssembly","src":"9797:590:20"}]},"documentation":{"id":8534,"nodeType":"StructuredDocumentation","src":"9533:129:20","text":"@dev Sets whether `operator` is approved to manage the tokens of the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":8543,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"9676:17:20","nodeType":"FunctionDefinition","parameters":{"id":8539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8536,"mutability":"mutable","name":"operator","nameLocation":"9702:8:20","nodeType":"VariableDeclaration","scope":8543,"src":"9694:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8535,"name":"address","nodeType":"ElementaryTypeName","src":"9694:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8538,"mutability":"mutable","name":"isApproved","nameLocation":"9717:10:20","nodeType":"VariableDeclaration","scope":8543,"src":"9712:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8537,"name":"bool","nodeType":"ElementaryTypeName","src":"9712:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9693:35:20"},"returnParameters":{"id":8540,"nodeType":"ParameterList","parameters":[],"src":"9744:0:20"},"scope":9111,"src":"9667:726:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8566,"nodeType":"Block","src":"10831:2803:20","statements":[{"expression":{"arguments":[{"id":8554,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"10862:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8555,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"10868:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8556,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"10872:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8553,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"10841:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10841:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8558,"nodeType":"ExpressionStatement","src":"10841:34:20"},{"AST":{"nativeSrc":"10937:2648:20","nodeType":"YulBlock","src":"10937:2648:20","statements":[{"nativeSrc":"10991:37:20","nodeType":"YulVariableDeclaration","src":"10991:37:20","value":{"arguments":[{"kind":"number","nativeSrc":"11017:2:20","nodeType":"YulLiteral","src":"11017:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"11025:1:20","nodeType":"YulLiteral","src":"11025:1:20","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11021:3:20","nodeType":"YulIdentifier","src":"11021:3:20"},"nativeSrc":"11021:6:20","nodeType":"YulFunctionCall","src":"11021:6:20"}],"functionName":{"name":"shr","nativeSrc":"11013:3:20","nodeType":"YulIdentifier","src":"11013:3:20"},"nativeSrc":"11013:15:20","nodeType":"YulFunctionCall","src":"11013:15:20"},"variables":[{"name":"bitmaskAddress","nativeSrc":"10995:14:20","nodeType":"YulTypedName","src":"10995:14:20","type":""}]},{"nativeSrc":"11041:33:20","nodeType":"YulAssignment","src":"11041:33:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11053:14:20","nodeType":"YulIdentifier","src":"11053:14:20"},{"name":"from","nativeSrc":"11069:4:20","nodeType":"YulIdentifier","src":"11069:4:20"}],"functionName":{"name":"and","nativeSrc":"11049:3:20","nodeType":"YulIdentifier","src":"11049:3:20"},"nativeSrc":"11049:25:20","nodeType":"YulFunctionCall","src":"11049:25:20"},"variableNames":[{"name":"from","nativeSrc":"11041:4:20","nodeType":"YulIdentifier","src":"11041:4:20"}]},{"nativeSrc":"11087:29:20","nodeType":"YulAssignment","src":"11087:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11097:14:20","nodeType":"YulIdentifier","src":"11097:14:20"},{"name":"to","nativeSrc":"11113:2:20","nodeType":"YulIdentifier","src":"11113:2:20"}],"functionName":{"name":"and","nativeSrc":"11093:3:20","nodeType":"YulIdentifier","src":"11093:3:20"},"nativeSrc":"11093:23:20","nodeType":"YulFunctionCall","src":"11093:23:20"},"variableNames":[{"name":"to","nativeSrc":"11087:2:20","nodeType":"YulIdentifier","src":"11087:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11176:4:20","nodeType":"YulLiteral","src":"11176:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"11182:2:20","nodeType":"YulIdentifier","src":"11182:2:20"}],"functionName":{"name":"mstore","nativeSrc":"11169:6:20","nodeType":"YulIdentifier","src":"11169:6:20"},"nativeSrc":"11169:16:20","nodeType":"YulFunctionCall","src":"11169:16:20"},"nativeSrc":"11169:16:20","nodeType":"YulExpressionStatement","src":"11169:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11205:4:20","nodeType":"YulLiteral","src":"11205:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"11214:24:20","nodeType":"YulIdentifier","src":"11214:24:20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"11240:6:20","nodeType":"YulIdentifier","src":"11240:6:20"},"nativeSrc":"11240:8:20","nodeType":"YulFunctionCall","src":"11240:8:20"}],"functionName":{"name":"or","nativeSrc":"11211:2:20","nodeType":"YulIdentifier","src":"11211:2:20"},"nativeSrc":"11211:38:20","nodeType":"YulFunctionCall","src":"11211:38:20"}],"functionName":{"name":"mstore","nativeSrc":"11198:6:20","nodeType":"YulIdentifier","src":"11198:6:20"},"nativeSrc":"11198:52:20","nodeType":"YulFunctionCall","src":"11198:52:20"},"nativeSrc":"11198:52:20","nodeType":"YulExpressionStatement","src":"11198:52:20"},{"nativeSrc":"11263:60:20","nodeType":"YulVariableDeclaration","src":"11263:60:20","value":{"arguments":[{"name":"id","nativeSrc":"11288:2:20","nodeType":"YulIdentifier","src":"11288:2:20"},{"arguments":[{"name":"id","nativeSrc":"11296:2:20","nodeType":"YulIdentifier","src":"11296:2:20"},{"arguments":[{"kind":"number","nativeSrc":"11310:4:20","nodeType":"YulLiteral","src":"11310:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11316:4:20","nodeType":"YulLiteral","src":"11316:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11300:9:20","nodeType":"YulIdentifier","src":"11300:9:20"},"nativeSrc":"11300:21:20","nodeType":"YulFunctionCall","src":"11300:21:20"}],"functionName":{"name":"add","nativeSrc":"11292:3:20","nodeType":"YulIdentifier","src":"11292:3:20"},"nativeSrc":"11292:30:20","nodeType":"YulFunctionCall","src":"11292:30:20"}],"functionName":{"name":"add","nativeSrc":"11284:3:20","nodeType":"YulIdentifier","src":"11284:3:20"},"nativeSrc":"11284:39:20","nodeType":"YulFunctionCall","src":"11284:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"11267:13:20","nodeType":"YulTypedName","src":"11267:13:20","type":""}]},{"nativeSrc":"11336:43:20","nodeType":"YulVariableDeclaration","src":"11336:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"11365:13:20","nodeType":"YulIdentifier","src":"11365:13:20"}],"functionName":{"name":"sload","nativeSrc":"11359:5:20","nodeType":"YulIdentifier","src":"11359:5:20"},"nativeSrc":"11359:20:20","nodeType":"YulFunctionCall","src":"11359:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"11340:15:20","nodeType":"YulTypedName","src":"11340:15:20","type":""}]},{"nativeSrc":"11392:49:20","nodeType":"YulVariableDeclaration","src":"11392:49:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11409:14:20","nodeType":"YulIdentifier","src":"11409:14:20"},{"name":"ownershipPacked","nativeSrc":"11425:15:20","nodeType":"YulIdentifier","src":"11425:15:20"}],"functionName":{"name":"and","nativeSrc":"11405:3:20","nodeType":"YulIdentifier","src":"11405:3:20"},"nativeSrc":"11405:36:20","nodeType":"YulFunctionCall","src":"11405:36:20"},"variables":[{"name":"owner","nativeSrc":"11396:5:20","nodeType":"YulTypedName","src":"11396:5:20","type":""}]},{"body":{"nativeSrc":"11575:190:20","nodeType":"YulBlock","src":"11575:190:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11678:1:20","nodeType":"YulLiteral","src":"11678:1:20","type":"","value":"2"},{"arguments":[{"name":"owner","nativeSrc":"11688:5:20","nodeType":"YulIdentifier","src":"11688:5:20"}],"functionName":{"name":"iszero","nativeSrc":"11681:6:20","nodeType":"YulIdentifier","src":"11681:6:20"},"nativeSrc":"11681:13:20","nodeType":"YulFunctionCall","src":"11681:13:20"}],"functionName":{"name":"shl","nativeSrc":"11674:3:20","nodeType":"YulIdentifier","src":"11674:3:20"},"nativeSrc":"11674:21:20","nodeType":"YulFunctionCall","src":"11674:21:20"},{"kind":"number","nativeSrc":"11697:18:20","nodeType":"YulLiteral","src":"11697:18:20","type":"","value":"0xceea21b6a1148100"}],"functionName":{"name":"mstore","nativeSrc":"11667:6:20","nodeType":"YulIdentifier","src":"11667:6:20"},"nativeSrc":"11667:49:20","nodeType":"YulFunctionCall","src":"11667:49:20"},"nativeSrc":"11667:49:20","nodeType":"YulExpressionStatement","src":"11667:49:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11740:4:20","nodeType":"YulLiteral","src":"11740:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11746:4:20","nodeType":"YulLiteral","src":"11746:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11733:6:20","nodeType":"YulIdentifier","src":"11733:6:20"},"nativeSrc":"11733:18:20","nodeType":"YulFunctionCall","src":"11733:18:20"},"nativeSrc":"11733:18:20","nodeType":"YulExpressionStatement","src":"11733:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"owner","nativeSrc":"11550:5:20","nodeType":"YulIdentifier","src":"11550:5:20"},{"arguments":[{"name":"owner","nativeSrc":"11560:5:20","nodeType":"YulIdentifier","src":"11560:5:20"},{"name":"from","nativeSrc":"11567:4:20","nodeType":"YulIdentifier","src":"11567:4:20"}],"functionName":{"name":"eq","nativeSrc":"11557:2:20","nodeType":"YulIdentifier","src":"11557:2:20"},"nativeSrc":"11557:15:20","nodeType":"YulFunctionCall","src":"11557:15:20"}],"functionName":{"name":"mul","nativeSrc":"11546:3:20","nodeType":"YulIdentifier","src":"11546:3:20"},"nativeSrc":"11546:27:20","nodeType":"YulFunctionCall","src":"11546:27:20"}],"functionName":{"name":"iszero","nativeSrc":"11539:6:20","nodeType":"YulIdentifier","src":"11539:6:20"},"nativeSrc":"11539:35:20","nodeType":"YulFunctionCall","src":"11539:35:20"},"nativeSrc":"11536:229:20","nodeType":"YulIf","src":"11536:229:20"},{"nativeSrc":"11837:622:20","nodeType":"YulBlock","src":"11837:622:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11862:4:20","nodeType":"YulLiteral","src":"11862:4:20","type":"","value":"0x00"},{"name":"from","nativeSrc":"11868:4:20","nodeType":"YulIdentifier","src":"11868:4:20"}],"functionName":{"name":"mstore","nativeSrc":"11855:6:20","nodeType":"YulIdentifier","src":"11855:6:20"},"nativeSrc":"11855:18:20","nodeType":"YulFunctionCall","src":"11855:18:20"},"nativeSrc":"11855:18:20","nodeType":"YulExpressionStatement","src":"11855:18:20"},{"nativeSrc":"11890:51:20","nodeType":"YulVariableDeclaration","src":"11890:51:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11923:1:20","nodeType":"YulLiteral","src":"11923:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"11926:13:20","nodeType":"YulIdentifier","src":"11926:13:20"}],"functionName":{"name":"add","nativeSrc":"11919:3:20","nodeType":"YulIdentifier","src":"11919:3:20"},"nativeSrc":"11919:21:20","nodeType":"YulFunctionCall","src":"11919:21:20"}],"functionName":{"name":"sload","nativeSrc":"11913:5:20","nodeType":"YulIdentifier","src":"11913:5:20"},"nativeSrc":"11913:28:20","nodeType":"YulFunctionCall","src":"11913:28:20"},"variables":[{"name":"approvedAddress","nativeSrc":"11894:15:20","nodeType":"YulTypedName","src":"11894:15:20","type":""}]},{"body":{"nativeSrc":"12095:223:20","nodeType":"YulBlock","src":"12095:223:20","statements":[{"body":{"nativeSrc":"12157:143:20","nodeType":"YulBlock","src":"12157:143:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12190:4:20","nodeType":"YulLiteral","src":"12190:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12196:10:20","nodeType":"YulLiteral","src":"12196:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"12183:6:20","nodeType":"YulIdentifier","src":"12183:6:20"},"nativeSrc":"12183:24:20","nodeType":"YulFunctionCall","src":"12183:24:20"},"nativeSrc":"12183:24:20","nodeType":"YulExpressionStatement","src":"12183:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12267:4:20","nodeType":"YulLiteral","src":"12267:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12273:4:20","nodeType":"YulLiteral","src":"12273:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12260:6:20","nodeType":"YulIdentifier","src":"12260:6:20"},"nativeSrc":"12260:18:20","nodeType":"YulFunctionCall","src":"12260:18:20"},"nativeSrc":"12260:18:20","nodeType":"YulExpressionStatement","src":"12260:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12143:4:20","nodeType":"YulLiteral","src":"12143:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12149:4:20","nodeType":"YulLiteral","src":"12149:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"12133:9:20","nodeType":"YulIdentifier","src":"12133:9:20"},"nativeSrc":"12133:21:20","nodeType":"YulFunctionCall","src":"12133:21:20"}],"functionName":{"name":"sload","nativeSrc":"12127:5:20","nodeType":"YulIdentifier","src":"12127:5:20"},"nativeSrc":"12127:28:20","nodeType":"YulFunctionCall","src":"12127:28:20"}],"functionName":{"name":"iszero","nativeSrc":"12120:6:20","nodeType":"YulIdentifier","src":"12120:6:20"},"nativeSrc":"12120:36:20","nodeType":"YulFunctionCall","src":"12120:36:20"},"nativeSrc":"12117:183:20","nodeType":"YulIf","src":"12117:183:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"12046:6:20","nodeType":"YulIdentifier","src":"12046:6:20"},"nativeSrc":"12046:8:20","nodeType":"YulFunctionCall","src":"12046:8:20"},{"name":"from","nativeSrc":"12056:4:20","nodeType":"YulIdentifier","src":"12056:4:20"}],"functionName":{"name":"eq","nativeSrc":"12043:2:20","nodeType":"YulIdentifier","src":"12043:2:20"},"nativeSrc":"12043:18:20","nodeType":"YulFunctionCall","src":"12043:18:20"},{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"12066:6:20","nodeType":"YulIdentifier","src":"12066:6:20"},"nativeSrc":"12066:8:20","nodeType":"YulFunctionCall","src":"12066:8:20"},{"name":"approvedAddress","nativeSrc":"12076:15:20","nodeType":"YulIdentifier","src":"12076:15:20"}],"functionName":{"name":"eq","nativeSrc":"12063:2:20","nodeType":"YulIdentifier","src":"12063:2:20"},"nativeSrc":"12063:29:20","nodeType":"YulFunctionCall","src":"12063:29:20"}],"functionName":{"name":"or","nativeSrc":"12040:2:20","nodeType":"YulIdentifier","src":"12040:2:20"},"nativeSrc":"12040:53:20","nodeType":"YulFunctionCall","src":"12040:53:20"}],"functionName":{"name":"iszero","nativeSrc":"12033:6:20","nodeType":"YulIdentifier","src":"12033:6:20"},"nativeSrc":"12033:61:20","nodeType":"YulFunctionCall","src":"12033:61:20"},"nativeSrc":"12030:288:20","nodeType":"YulIf","src":"12030:288:20"},{"body":{"nativeSrc":"12409:36:20","nodeType":"YulBlock","src":"12409:36:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12422:1:20","nodeType":"YulLiteral","src":"12422:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"12425:13:20","nodeType":"YulIdentifier","src":"12425:13:20"}],"functionName":{"name":"add","nativeSrc":"12418:3:20","nodeType":"YulIdentifier","src":"12418:3:20"},"nativeSrc":"12418:21:20","nodeType":"YulFunctionCall","src":"12418:21:20"},{"kind":"number","nativeSrc":"12441:1:20","nodeType":"YulLiteral","src":"12441:1:20","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"12411:6:20","nodeType":"YulIdentifier","src":"12411:6:20"},"nativeSrc":"12411:32:20","nodeType":"YulFunctionCall","src":"12411:32:20"},"nativeSrc":"12411:32:20","nodeType":"YulExpressionStatement","src":"12411:32:20"}]},"condition":{"name":"approvedAddress","nativeSrc":"12393:15:20","nodeType":"YulIdentifier","src":"12393:15:20"},"nativeSrc":"12390:55:20","nodeType":"YulIf","src":"12390:55:20"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"12521:13:20","nodeType":"YulIdentifier","src":"12521:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"12540:15:20","nodeType":"YulIdentifier","src":"12540:15:20"},{"arguments":[{"name":"from","nativeSrc":"12561:4:20","nodeType":"YulIdentifier","src":"12561:4:20"},{"name":"to","nativeSrc":"12567:2:20","nodeType":"YulIdentifier","src":"12567:2:20"}],"functionName":{"name":"xor","nativeSrc":"12557:3:20","nodeType":"YulIdentifier","src":"12557:3:20"},"nativeSrc":"12557:13:20","nodeType":"YulFunctionCall","src":"12557:13:20"}],"functionName":{"name":"xor","nativeSrc":"12536:3:20","nodeType":"YulIdentifier","src":"12536:3:20"},"nativeSrc":"12536:35:20","nodeType":"YulFunctionCall","src":"12536:35:20"}],"functionName":{"name":"sstore","nativeSrc":"12514:6:20","nodeType":"YulIdentifier","src":"12514:6:20"},"nativeSrc":"12514:58:20","nodeType":"YulFunctionCall","src":"12514:58:20"},"nativeSrc":"12514:58:20","nodeType":"YulExpressionStatement","src":"12514:58:20"},{"nativeSrc":"12633:148:20","nodeType":"YulBlock","src":"12633:148:20","statements":[{"nativeSrc":"12651:44:20","nodeType":"YulVariableDeclaration","src":"12651:44:20","value":{"arguments":[{"kind":"number","nativeSrc":"12684:4:20","nodeType":"YulLiteral","src":"12684:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12690:4:20","nodeType":"YulLiteral","src":"12690:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"12674:9:20","nodeType":"YulIdentifier","src":"12674:9:20"},"nativeSrc":"12674:21:20","nodeType":"YulFunctionCall","src":"12674:21:20"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"12655:15:20","nodeType":"YulTypedName","src":"12655:15:20","type":""}]},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"12719:15:20","nodeType":"YulIdentifier","src":"12719:15:20"},{"arguments":[{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"12746:15:20","nodeType":"YulIdentifier","src":"12746:15:20"}],"functionName":{"name":"sload","nativeSrc":"12740:5:20","nodeType":"YulIdentifier","src":"12740:5:20"},"nativeSrc":"12740:22:20","nodeType":"YulFunctionCall","src":"12740:22:20"},{"kind":"number","nativeSrc":"12764:1:20","nodeType":"YulLiteral","src":"12764:1:20","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12736:3:20","nodeType":"YulIdentifier","src":"12736:3:20"},"nativeSrc":"12736:30:20","nodeType":"YulFunctionCall","src":"12736:30:20"}],"functionName":{"name":"sstore","nativeSrc":"12712:6:20","nodeType":"YulIdentifier","src":"12712:6:20"},"nativeSrc":"12712:55:20","nodeType":"YulFunctionCall","src":"12712:55:20"},"nativeSrc":"12712:55:20","nodeType":"YulExpressionStatement","src":"12712:55:20"}]},{"nativeSrc":"12840:617:20","nodeType":"YulBlock","src":"12840:617:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12865:4:20","nodeType":"YulLiteral","src":"12865:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"12871:2:20","nodeType":"YulIdentifier","src":"12871:2:20"}],"functionName":{"name":"mstore","nativeSrc":"12858:6:20","nodeType":"YulIdentifier","src":"12858:6:20"},"nativeSrc":"12858:16:20","nodeType":"YulFunctionCall","src":"12858:16:20"},"nativeSrc":"12858:16:20","nodeType":"YulExpressionStatement","src":"12858:16:20"},{"nativeSrc":"12891:42:20","nodeType":"YulVariableDeclaration","src":"12891:42:20","value":{"arguments":[{"kind":"number","nativeSrc":"12922:4:20","nodeType":"YulLiteral","src":"12922:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12928:4:20","nodeType":"YulLiteral","src":"12928:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"12912:9:20","nodeType":"YulIdentifier","src":"12912:9:20"},"nativeSrc":"12912:21:20","nodeType":"YulFunctionCall","src":"12912:21:20"},"variables":[{"name":"toBalanceSlot","nativeSrc":"12895:13:20","nodeType":"YulTypedName","src":"12895:13:20","type":""}]},{"nativeSrc":"12950:55:20","nodeType":"YulVariableDeclaration","src":"12950:55:20","value":{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"12987:13:20","nodeType":"YulIdentifier","src":"12987:13:20"}],"functionName":{"name":"sload","nativeSrc":"12981:5:20","nodeType":"YulIdentifier","src":"12981:5:20"},"nativeSrc":"12981:20:20","nodeType":"YulFunctionCall","src":"12981:20:20"},{"kind":"number","nativeSrc":"13003:1:20","nodeType":"YulLiteral","src":"13003:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12977:3:20","nodeType":"YulIdentifier","src":"12977:3:20"},"nativeSrc":"12977:28:20","nodeType":"YulFunctionCall","src":"12977:28:20"},"variables":[{"name":"toBalanceSlotPacked","nativeSrc":"12954:19:20","nodeType":"YulTypedName","src":"12954:19:20","type":""}]},{"body":{"nativeSrc":"13181:203:20","nodeType":"YulBlock","src":"13181:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13292:1:20","nodeType":"YulLiteral","src":"13292:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"13302:2:20","nodeType":"YulIdentifier","src":"13302:2:20"}],"functionName":{"name":"iszero","nativeSrc":"13295:6:20","nodeType":"YulIdentifier","src":"13295:6:20"},"nativeSrc":"13295:10:20","nodeType":"YulFunctionCall","src":"13295:10:20"}],"functionName":{"name":"shl","nativeSrc":"13288:3:20","nodeType":"YulIdentifier","src":"13288:3:20"},"nativeSrc":"13288:18:20","nodeType":"YulFunctionCall","src":"13288:18:20"},{"kind":"number","nativeSrc":"13308:18:20","nodeType":"YulLiteral","src":"13308:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"13281:6:20","nodeType":"YulIdentifier","src":"13281:6:20"},"nativeSrc":"13281:46:20","nodeType":"YulFunctionCall","src":"13281:46:20"},"nativeSrc":"13281:46:20","nodeType":"YulExpressionStatement","src":"13281:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13355:4:20","nodeType":"YulLiteral","src":"13355:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13361:4:20","nodeType":"YulLiteral","src":"13361:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13348:6:20","nodeType":"YulIdentifier","src":"13348:6:20"},"nativeSrc":"13348:18:20","nodeType":"YulFunctionCall","src":"13348:18:20"},"nativeSrc":"13348:18:20","nodeType":"YulExpressionStatement","src":"13348:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"13128:2:20","nodeType":"YulIdentifier","src":"13128:2:20"},{"arguments":[{"name":"toBalanceSlotPacked","nativeSrc":"13136:19:20","nodeType":"YulIdentifier","src":"13136:19:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"13157:20:20","nodeType":"YulIdentifier","src":"13157:20:20"}],"functionName":{"name":"and","nativeSrc":"13132:3:20","nodeType":"YulIdentifier","src":"13132:3:20"},"nativeSrc":"13132:46:20","nodeType":"YulFunctionCall","src":"13132:46:20"}],"functionName":{"name":"mul","nativeSrc":"13124:3:20","nodeType":"YulIdentifier","src":"13124:3:20"},"nativeSrc":"13124:55:20","nodeType":"YulFunctionCall","src":"13124:55:20"}],"functionName":{"name":"iszero","nativeSrc":"13117:6:20","nodeType":"YulIdentifier","src":"13117:6:20"},"nativeSrc":"13117:63:20","nodeType":"YulFunctionCall","src":"13117:63:20"},"nativeSrc":"13114:270:20","nodeType":"YulIf","src":"13114:270:20"},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"13408:13:20","nodeType":"YulIdentifier","src":"13408:13:20"},{"name":"toBalanceSlotPacked","nativeSrc":"13423:19:20","nodeType":"YulIdentifier","src":"13423:19:20"}],"functionName":{"name":"sstore","nativeSrc":"13401:6:20","nodeType":"YulIdentifier","src":"13401:6:20"},"nativeSrc":"13401:42:20","nodeType":"YulFunctionCall","src":"13401:42:20"},"nativeSrc":"13401:42:20","nodeType":"YulExpressionStatement","src":"13401:42:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"13517:8:20","nodeType":"YulIdentifier","src":"13517:8:20"},"nativeSrc":"13517:10:20","nodeType":"YulFunctionCall","src":"13517:10:20"},{"kind":"number","nativeSrc":"13529:4:20","nodeType":"YulLiteral","src":"13529:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"13535:25:20","nodeType":"YulIdentifier","src":"13535:25:20"},{"name":"from","nativeSrc":"13562:4:20","nodeType":"YulIdentifier","src":"13562:4:20"},{"name":"to","nativeSrc":"13568:2:20","nodeType":"YulIdentifier","src":"13568:2:20"},{"name":"id","nativeSrc":"13572:2:20","nodeType":"YulIdentifier","src":"13572:2:20"}],"functionName":{"name":"log4","nativeSrc":"13512:4:20","nodeType":"YulIdentifier","src":"13512:4:20"},"nativeSrc":"13512:63:20","nodeType":"YulFunctionCall","src":"13512:63:20"},"nativeSrc":"13512:63:20","nodeType":"YulExpressionStatement","src":"13512:63:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"11214:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"13157:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"13535:25:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11041:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11069:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11567:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"11868:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"12056:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"12561:4:20","valueSize":1},{"declaration":8546,"isOffset":false,"isSlot":false,"src":"13562:4:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"11182:2:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"11288:2:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"11296:2:20","valueSize":1},{"declaration":8550,"isOffset":false,"isSlot":false,"src":"13572:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"11087:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"11113:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"12567:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"12871:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"13128:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"13302:2:20","valueSize":1},{"declaration":8548,"isOffset":false,"isSlot":false,"src":"13568:2:20","valueSize":1}],"id":8559,"nodeType":"InlineAssembly","src":"10928:2657:20"},{"expression":{"arguments":[{"id":8561,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"13614:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8562,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"13620:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8563,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"13624:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8560,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"13594:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13594:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8565,"nodeType":"ExpressionStatement","src":"13594:33:20"}]},"documentation":{"id":8544,"nodeType":"StructuredDocumentation","src":"10399:344:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8567,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"10757:12:20","nodeType":"FunctionDefinition","parameters":{"id":8551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8546,"mutability":"mutable","name":"from","nameLocation":"10778:4:20","nodeType":"VariableDeclaration","scope":8567,"src":"10770:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8545,"name":"address","nodeType":"ElementaryTypeName","src":"10770:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8548,"mutability":"mutable","name":"to","nameLocation":"10792:2:20","nodeType":"VariableDeclaration","scope":8567,"src":"10784:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8547,"name":"address","nodeType":"ElementaryTypeName","src":"10784:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8550,"mutability":"mutable","name":"id","nameLocation":"10804:2:20","nodeType":"VariableDeclaration","scope":8567,"src":"10796:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8549,"name":"uint256","nodeType":"ElementaryTypeName","src":"10796:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10769:38:20"},"returnParameters":{"id":8552,"nodeType":"ParameterList","parameters":[],"src":"10831:0:20"},"scope":9111,"src":"10748:2886:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8594,"nodeType":"Block","src":"13792:111:20","statements":[{"expression":{"arguments":[{"id":8578,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"13815:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8579,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8572,"src":"13821:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8580,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8574,"src":"13825:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8577,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8567,"src":"13802:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13802:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8582,"nodeType":"ExpressionStatement","src":"13802:26:20"},{"condition":{"arguments":[{"id":8584,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8572,"src":"13851:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8583,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"13842:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13842:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8593,"nodeType":"IfStatement","src":"13838:58:20","trueBody":{"expression":{"arguments":[{"id":8587,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"13879:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8588,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8572,"src":"13885:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8589,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8574,"src":"13889:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13893:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":8586,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"13856:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13856:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8592,"nodeType":"ExpressionStatement","src":"13856:40:20"}}]},"documentation":{"id":8568,"nodeType":"StructuredDocumentation","src":"13640:60:20","text":"@dev Equivalent to `safeTransferFrom(from, to, id, \"\")`."},"functionSelector":"42842e0e","id":8595,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"13714:16:20","nodeType":"FunctionDefinition","parameters":{"id":8575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8570,"mutability":"mutable","name":"from","nameLocation":"13739:4:20","nodeType":"VariableDeclaration","scope":8595,"src":"13731:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8569,"name":"address","nodeType":"ElementaryTypeName","src":"13731:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8572,"mutability":"mutable","name":"to","nameLocation":"13753:2:20","nodeType":"VariableDeclaration","scope":8595,"src":"13745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8571,"name":"address","nodeType":"ElementaryTypeName","src":"13745:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8574,"mutability":"mutable","name":"id","nameLocation":"13765:2:20","nodeType":"VariableDeclaration","scope":8595,"src":"13757:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8573,"name":"uint256","nodeType":"ElementaryTypeName","src":"13757:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13730:38:20"},"returnParameters":{"id":8576,"nodeType":"ParameterList","parameters":[],"src":"13792:0:20"},"scope":9111,"src":"13705:198:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8624,"nodeType":"Block","src":"14542:113:20","statements":[{"expression":{"arguments":[{"id":8608,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"14565:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8609,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"14571:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8610,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"14575:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8607,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8567,"src":"14552:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14552:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8612,"nodeType":"ExpressionStatement","src":"14552:26:20"},{"condition":{"arguments":[{"id":8614,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"14601:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8613,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"14592:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14592:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8623,"nodeType":"IfStatement","src":"14588:60:20","trueBody":{"expression":{"arguments":[{"id":8617,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"14629:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8618,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8600,"src":"14635:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8619,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"14639:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8620,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"14643:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":8616,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"14606:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14606:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8622,"nodeType":"ExpressionStatement","src":"14606:42:20"}}]},"documentation":{"id":8596,"nodeType":"StructuredDocumentation","src":"13909:492:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":8625,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"14415:16:20","nodeType":"FunctionDefinition","parameters":{"id":8605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8598,"mutability":"mutable","name":"from","nameLocation":"14440:4:20","nodeType":"VariableDeclaration","scope":8625,"src":"14432:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8597,"name":"address","nodeType":"ElementaryTypeName","src":"14432:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8600,"mutability":"mutable","name":"to","nameLocation":"14454:2:20","nodeType":"VariableDeclaration","scope":8625,"src":"14446:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8599,"name":"address","nodeType":"ElementaryTypeName","src":"14446:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8602,"mutability":"mutable","name":"id","nameLocation":"14466:2:20","nodeType":"VariableDeclaration","scope":8625,"src":"14458:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8601,"name":"uint256","nodeType":"ElementaryTypeName","src":"14458:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8604,"mutability":"mutable","name":"data","nameLocation":"14485:4:20","nodeType":"VariableDeclaration","scope":8625,"src":"14470:19:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8603,"name":"bytes","nodeType":"ElementaryTypeName","src":"14470:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14431:59:20"},"returnParameters":{"id":8606,"nodeType":"ParameterList","parameters":[],"src":"14542:0:20"},"scope":9111,"src":"14406:249:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8634,"nodeType":"Block","src":"14953:291:20","statements":[{"AST":{"nativeSrc":"15015:223:20","nodeType":"YulBlock","src":"15015:223:20","statements":[{"nativeSrc":"15029:30:20","nodeType":"YulVariableDeclaration","src":"15029:30:20","value":{"arguments":[{"kind":"number","nativeSrc":"15042:3:20","nodeType":"YulLiteral","src":"15042:3:20","type":"","value":"224"},{"name":"interfaceId","nativeSrc":"15047:11:20","nodeType":"YulIdentifier","src":"15047:11:20"}],"functionName":{"name":"shr","nativeSrc":"15038:3:20","nodeType":"YulIdentifier","src":"15038:3:20"},"nativeSrc":"15038:21:20","nodeType":"YulFunctionCall","src":"15038:21:20"},"variables":[{"name":"s","nativeSrc":"15033:1:20","nodeType":"YulTypedName","src":"15033:1:20","type":""}]},{"nativeSrc":"15155:73:20","nodeType":"YulAssignment","src":"15155:73:20","value":{"arguments":[{"arguments":[{"arguments":[{"name":"s","nativeSrc":"15174:1:20","nodeType":"YulIdentifier","src":"15174:1:20"},{"kind":"number","nativeSrc":"15177:10:20","nodeType":"YulLiteral","src":"15177:10:20","type":"","value":"0x01ffc9a7"}],"functionName":{"name":"eq","nativeSrc":"15171:2:20","nodeType":"YulIdentifier","src":"15171:2:20"},"nativeSrc":"15171:17:20","nodeType":"YulFunctionCall","src":"15171:17:20"},{"arguments":[{"name":"s","nativeSrc":"15193:1:20","nodeType":"YulIdentifier","src":"15193:1:20"},{"kind":"number","nativeSrc":"15196:10:20","nodeType":"YulLiteral","src":"15196:10:20","type":"","value":"0x80ac58cd"}],"functionName":{"name":"eq","nativeSrc":"15190:2:20","nodeType":"YulIdentifier","src":"15190:2:20"},"nativeSrc":"15190:17:20","nodeType":"YulFunctionCall","src":"15190:17:20"}],"functionName":{"name":"or","nativeSrc":"15168:2:20","nodeType":"YulIdentifier","src":"15168:2:20"},"nativeSrc":"15168:40:20","nodeType":"YulFunctionCall","src":"15168:40:20"},{"arguments":[{"name":"s","nativeSrc":"15213:1:20","nodeType":"YulIdentifier","src":"15213:1:20"},{"kind":"number","nativeSrc":"15216:10:20","nodeType":"YulLiteral","src":"15216:10:20","type":"","value":"0x5b5e139f"}],"functionName":{"name":"eq","nativeSrc":"15210:2:20","nodeType":"YulIdentifier","src":"15210:2:20"},"nativeSrc":"15210:17:20","nodeType":"YulFunctionCall","src":"15210:17:20"}],"functionName":{"name":"or","nativeSrc":"15165:2:20","nodeType":"YulIdentifier","src":"15165:2:20"},"nativeSrc":"15165:63:20","nodeType":"YulFunctionCall","src":"15165:63:20"},"variableNames":[{"name":"result","nativeSrc":"15155:6:20","nodeType":"YulIdentifier","src":"15155:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8628,"isOffset":false,"isSlot":false,"src":"15047:11:20","valueSize":1},{"declaration":8631,"isOffset":false,"isSlot":false,"src":"15155:6:20","valueSize":1}],"id":8633,"nodeType":"InlineAssembly","src":"15006:232:20"}]},"documentation":{"id":8626,"nodeType":"StructuredDocumentation","src":"14661:198:20","text":"@dev Returns true if this contract implements the interface defined by `interfaceId`.\n See: https://eips.ethereum.org/EIPS/eip-165\n This function call must use less than 30000 gas."},"functionSelector":"01ffc9a7","id":8635,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"14873:17:20","nodeType":"FunctionDefinition","parameters":{"id":8629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8628,"mutability":"mutable","name":"interfaceId","nameLocation":"14898:11:20","nodeType":"VariableDeclaration","scope":8635,"src":"14891:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8627,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14891:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14890:20:20"},"returnParameters":{"id":8632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8631,"mutability":"mutable","name":"result","nameLocation":"14945:6:20","nodeType":"VariableDeclaration","scope":8635,"src":"14940:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8630,"name":"bool","nodeType":"ElementaryTypeName","src":"14940:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14939:13:20"},"scope":9111,"src":"14864:380:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8644,"nodeType":"Block","src":"15649:253:20","statements":[{"AST":{"nativeSrc":"15711:185:20","nodeType":"YulBlock","src":"15711:185:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15732:4:20","nodeType":"YulLiteral","src":"15732:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"15738:2:20","nodeType":"YulIdentifier","src":"15738:2:20"}],"functionName":{"name":"mstore","nativeSrc":"15725:6:20","nodeType":"YulIdentifier","src":"15725:6:20"},"nativeSrc":"15725:16:20","nodeType":"YulFunctionCall","src":"15725:16:20"},"nativeSrc":"15725:16:20","nodeType":"YulExpressionStatement","src":"15725:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15761:4:20","nodeType":"YulLiteral","src":"15761:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"15767:24:20","nodeType":"YulIdentifier","src":"15767:24:20"}],"functionName":{"name":"mstore","nativeSrc":"15754:6:20","nodeType":"YulIdentifier","src":"15754:6:20"},"nativeSrc":"15754:38:20","nodeType":"YulFunctionCall","src":"15754:38:20"},"nativeSrc":"15754:38:20","nodeType":"YulExpressionStatement","src":"15754:38:20"},{"nativeSrc":"15805:81:20","nodeType":"YulAssignment","src":"15805:81:20","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15833:2:20","nodeType":"YulLiteral","src":"15833:2:20","type":"","value":"96"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"15847:2:20","nodeType":"YulIdentifier","src":"15847:2:20"},{"arguments":[{"name":"id","nativeSrc":"15855:2:20","nodeType":"YulIdentifier","src":"15855:2:20"},{"arguments":[{"kind":"number","nativeSrc":"15869:4:20","nodeType":"YulLiteral","src":"15869:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15875:4:20","nodeType":"YulLiteral","src":"15875:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"15859:9:20","nodeType":"YulIdentifier","src":"15859:9:20"},"nativeSrc":"15859:21:20","nodeType":"YulFunctionCall","src":"15859:21:20"}],"functionName":{"name":"add","nativeSrc":"15851:3:20","nodeType":"YulIdentifier","src":"15851:3:20"},"nativeSrc":"15851:30:20","nodeType":"YulFunctionCall","src":"15851:30:20"}],"functionName":{"name":"add","nativeSrc":"15843:3:20","nodeType":"YulIdentifier","src":"15843:3:20"},"nativeSrc":"15843:39:20","nodeType":"YulFunctionCall","src":"15843:39:20"}],"functionName":{"name":"sload","nativeSrc":"15837:5:20","nodeType":"YulIdentifier","src":"15837:5:20"},"nativeSrc":"15837:46:20","nodeType":"YulFunctionCall","src":"15837:46:20"}],"functionName":{"name":"shl","nativeSrc":"15829:3:20","nodeType":"YulIdentifier","src":"15829:3:20"},"nativeSrc":"15829:55:20","nodeType":"YulFunctionCall","src":"15829:55:20"}],"functionName":{"name":"iszero","nativeSrc":"15822:6:20","nodeType":"YulIdentifier","src":"15822:6:20"},"nativeSrc":"15822:63:20","nodeType":"YulFunctionCall","src":"15822:63:20"}],"functionName":{"name":"iszero","nativeSrc":"15815:6:20","nodeType":"YulIdentifier","src":"15815:6:20"},"nativeSrc":"15815:71:20","nodeType":"YulFunctionCall","src":"15815:71:20"},"variableNames":[{"name":"result","nativeSrc":"15805:6:20","nodeType":"YulIdentifier","src":"15805:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"15767:24:20","valueSize":1},{"declaration":8638,"isOffset":false,"isSlot":false,"src":"15738:2:20","valueSize":1},{"declaration":8638,"isOffset":false,"isSlot":false,"src":"15847:2:20","valueSize":1},{"declaration":8638,"isOffset":false,"isSlot":false,"src":"15855:2:20","valueSize":1},{"declaration":8641,"isOffset":false,"isSlot":false,"src":"15805:6:20","valueSize":1}],"id":8643,"nodeType":"InlineAssembly","src":"15702:194:20"}]},"documentation":{"id":8636,"nodeType":"StructuredDocumentation","src":"15533:38:20","text":"@dev Returns if token `id` exists."},"id":8645,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"15585:7:20","nodeType":"FunctionDefinition","parameters":{"id":8639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8638,"mutability":"mutable","name":"id","nameLocation":"15601:2:20","nodeType":"VariableDeclaration","scope":8645,"src":"15593:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8637,"name":"uint256","nodeType":"ElementaryTypeName","src":"15593:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15592:12:20"},"returnParameters":{"id":8642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8641,"mutability":"mutable","name":"result","nameLocation":"15641:6:20","nodeType":"VariableDeclaration","scope":8645,"src":"15636:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8640,"name":"bool","nodeType":"ElementaryTypeName","src":"15636:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15635:13:20"},"scope":9111,"src":"15576:326:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8654,"nodeType":"Block","src":"16114:246:20","statements":[{"AST":{"nativeSrc":"16176:178:20","nodeType":"YulBlock","src":"16176:178:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16197:4:20","nodeType":"YulLiteral","src":"16197:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"16203:2:20","nodeType":"YulIdentifier","src":"16203:2:20"}],"functionName":{"name":"mstore","nativeSrc":"16190:6:20","nodeType":"YulIdentifier","src":"16190:6:20"},"nativeSrc":"16190:16:20","nodeType":"YulFunctionCall","src":"16190:16:20"},"nativeSrc":"16190:16:20","nodeType":"YulExpressionStatement","src":"16190:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16226:4:20","nodeType":"YulLiteral","src":"16226:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"16232:24:20","nodeType":"YulIdentifier","src":"16232:24:20"}],"functionName":{"name":"mstore","nativeSrc":"16219:6:20","nodeType":"YulIdentifier","src":"16219:6:20"},"nativeSrc":"16219:38:20","nodeType":"YulFunctionCall","src":"16219:38:20"},"nativeSrc":"16219:38:20","nodeType":"YulExpressionStatement","src":"16219:38:20"},{"nativeSrc":"16270:74:20","nodeType":"YulAssignment","src":"16270:74:20","value":{"arguments":[{"kind":"number","nativeSrc":"16284:2:20","nodeType":"YulLiteral","src":"16284:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"16292:2:20","nodeType":"YulLiteral","src":"16292:2:20","type":"","value":"96"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"16306:2:20","nodeType":"YulIdentifier","src":"16306:2:20"},{"arguments":[{"name":"id","nativeSrc":"16314:2:20","nodeType":"YulIdentifier","src":"16314:2:20"},{"arguments":[{"kind":"number","nativeSrc":"16328:4:20","nodeType":"YulLiteral","src":"16328:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16334:4:20","nodeType":"YulLiteral","src":"16334:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"16318:9:20","nodeType":"YulIdentifier","src":"16318:9:20"},"nativeSrc":"16318:21:20","nodeType":"YulFunctionCall","src":"16318:21:20"}],"functionName":{"name":"add","nativeSrc":"16310:3:20","nodeType":"YulIdentifier","src":"16310:3:20"},"nativeSrc":"16310:30:20","nodeType":"YulFunctionCall","src":"16310:30:20"}],"functionName":{"name":"add","nativeSrc":"16302:3:20","nodeType":"YulIdentifier","src":"16302:3:20"},"nativeSrc":"16302:39:20","nodeType":"YulFunctionCall","src":"16302:39:20"}],"functionName":{"name":"sload","nativeSrc":"16296:5:20","nodeType":"YulIdentifier","src":"16296:5:20"},"nativeSrc":"16296:46:20","nodeType":"YulFunctionCall","src":"16296:46:20"}],"functionName":{"name":"shl","nativeSrc":"16288:3:20","nodeType":"YulIdentifier","src":"16288:3:20"},"nativeSrc":"16288:55:20","nodeType":"YulFunctionCall","src":"16288:55:20"}],"functionName":{"name":"shr","nativeSrc":"16280:3:20","nodeType":"YulIdentifier","src":"16280:3:20"},"nativeSrc":"16280:64:20","nodeType":"YulFunctionCall","src":"16280:64:20"},"variableNames":[{"name":"result","nativeSrc":"16270:6:20","nodeType":"YulIdentifier","src":"16270:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"16232:24:20","valueSize":1},{"declaration":8648,"isOffset":false,"isSlot":false,"src":"16203:2:20","valueSize":1},{"declaration":8648,"isOffset":false,"isSlot":false,"src":"16306:2:20","valueSize":1},{"declaration":8648,"isOffset":false,"isSlot":false,"src":"16314:2:20","valueSize":1},{"declaration":8651,"isOffset":false,"isSlot":false,"src":"16270:6:20","valueSize":1}],"id":8653,"nodeType":"InlineAssembly","src":"16167:187:20"}]},"documentation":{"id":8646,"nodeType":"StructuredDocumentation","src":"15908:124:20","text":"@dev Returns the owner of token `id`.\n Returns the zero address instead of reverting if the token does not exist."},"id":8655,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"16046:8:20","nodeType":"FunctionDefinition","parameters":{"id":8649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8648,"mutability":"mutable","name":"id","nameLocation":"16063:2:20","nodeType":"VariableDeclaration","scope":8655,"src":"16055:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8647,"name":"uint256","nodeType":"ElementaryTypeName","src":"16055:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16054:12:20"},"returnParameters":{"id":8652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8651,"mutability":"mutable","name":"result","nameLocation":"16106:6:20","nodeType":"VariableDeclaration","scope":8655,"src":"16098:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8650,"name":"address","nodeType":"ElementaryTypeName","src":"16098:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16097:16:20"},"scope":9111,"src":"16037:323:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8664,"nodeType":"Block","src":"17090:222:20","statements":[{"AST":{"nativeSrc":"17152:154:20","nodeType":"YulBlock","src":"17152:154:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17173:4:20","nodeType":"YulLiteral","src":"17173:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"17179:24:20","nodeType":"YulIdentifier","src":"17179:24:20"}],"functionName":{"name":"mstore","nativeSrc":"17166:6:20","nodeType":"YulIdentifier","src":"17166:6:20"},"nativeSrc":"17166:38:20","nodeType":"YulFunctionCall","src":"17166:38:20"},"nativeSrc":"17166:38:20","nodeType":"YulExpressionStatement","src":"17166:38:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17224:4:20","nodeType":"YulLiteral","src":"17224:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"17230:5:20","nodeType":"YulIdentifier","src":"17230:5:20"}],"functionName":{"name":"mstore","nativeSrc":"17217:6:20","nodeType":"YulIdentifier","src":"17217:6:20"},"nativeSrc":"17217:19:20","nodeType":"YulFunctionCall","src":"17217:19:20"},"nativeSrc":"17217:19:20","nodeType":"YulExpressionStatement","src":"17217:19:20"},{"nativeSrc":"17249:47:20","nodeType":"YulAssignment","src":"17249:47:20","value":{"arguments":[{"kind":"number","nativeSrc":"17263:2:20","nodeType":"YulLiteral","src":"17263:2:20","type":"","value":"32"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17283:4:20","nodeType":"YulLiteral","src":"17283:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"17289:4:20","nodeType":"YulLiteral","src":"17289:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"17273:9:20","nodeType":"YulIdentifier","src":"17273:9:20"},"nativeSrc":"17273:21:20","nodeType":"YulFunctionCall","src":"17273:21:20"}],"functionName":{"name":"sload","nativeSrc":"17267:5:20","nodeType":"YulIdentifier","src":"17267:5:20"},"nativeSrc":"17267:28:20","nodeType":"YulFunctionCall","src":"17267:28:20"}],"functionName":{"name":"shr","nativeSrc":"17259:3:20","nodeType":"YulIdentifier","src":"17259:3:20"},"nativeSrc":"17259:37:20","nodeType":"YulFunctionCall","src":"17259:37:20"},"variableNames":[{"name":"result","nativeSrc":"17249:6:20","nodeType":"YulIdentifier","src":"17249:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"17179:24:20","valueSize":1},{"declaration":8658,"isOffset":false,"isSlot":false,"src":"17230:5:20","valueSize":1},{"declaration":8661,"isOffset":false,"isSlot":false,"src":"17249:6:20","valueSize":1}],"id":8663,"nodeType":"InlineAssembly","src":"17143:163:20"}]},"documentation":{"id":8656,"nodeType":"StructuredDocumentation","src":"16773:233:20","text":"@dev Returns the auxiliary data for `owner`.\n Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n Auxiliary data can be set for any address, even if it does not have any tokens."},"id":8665,"implemented":true,"kind":"function","modifiers":[],"name":"_getAux","nameLocation":"17020:7:20","nodeType":"FunctionDefinition","parameters":{"id":8659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8658,"mutability":"mutable","name":"owner","nameLocation":"17036:5:20","nodeType":"VariableDeclaration","scope":8665,"src":"17028:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8657,"name":"address","nodeType":"ElementaryTypeName","src":"17028:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17027:15:20"},"returnParameters":{"id":8662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8661,"mutability":"mutable","name":"result","nameLocation":"17082:6:20","nodeType":"VariableDeclaration","scope":8665,"src":"17074:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8660,"name":"uint224","nodeType":"ElementaryTypeName","src":"17074:7:20","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"17073:16:20"},"scope":9111,"src":"17011:301:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8674,"nodeType":"Block","src":"17627:343:20","statements":[{"AST":{"nativeSrc":"17689:275:20","nodeType":"YulBlock","src":"17689:275:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17710:4:20","nodeType":"YulLiteral","src":"17710:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"17716:24:20","nodeType":"YulIdentifier","src":"17716:24:20"}],"functionName":{"name":"mstore","nativeSrc":"17703:6:20","nodeType":"YulIdentifier","src":"17703:6:20"},"nativeSrc":"17703:38:20","nodeType":"YulFunctionCall","src":"17703:38:20"},"nativeSrc":"17703:38:20","nodeType":"YulExpressionStatement","src":"17703:38:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17761:4:20","nodeType":"YulLiteral","src":"17761:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"17767:5:20","nodeType":"YulIdentifier","src":"17767:5:20"}],"functionName":{"name":"mstore","nativeSrc":"17754:6:20","nodeType":"YulIdentifier","src":"17754:6:20"},"nativeSrc":"17754:19:20","nodeType":"YulFunctionCall","src":"17754:19:20"},"nativeSrc":"17754:19:20","nodeType":"YulExpressionStatement","src":"17754:19:20"},{"nativeSrc":"17786:40:20","nodeType":"YulVariableDeclaration","src":"17786:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"17815:4:20","nodeType":"YulLiteral","src":"17815:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"17821:4:20","nodeType":"YulLiteral","src":"17821:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"17805:9:20","nodeType":"YulIdentifier","src":"17805:9:20"},"nativeSrc":"17805:21:20","nodeType":"YulFunctionCall","src":"17805:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"17790:11:20","nodeType":"YulTypedName","src":"17790:11:20","type":""}]},{"nativeSrc":"17839:32:20","nodeType":"YulVariableDeclaration","src":"17839:32:20","value":{"arguments":[{"name":"balanceSlot","nativeSrc":"17859:11:20","nodeType":"YulIdentifier","src":"17859:11:20"}],"functionName":{"name":"sload","nativeSrc":"17853:5:20","nodeType":"YulIdentifier","src":"17853:5:20"},"nativeSrc":"17853:18:20","nodeType":"YulFunctionCall","src":"17853:18:20"},"variables":[{"name":"packed","nativeSrc":"17843:6:20","nodeType":"YulTypedName","src":"17843:6:20","type":""}]},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"17891:11:20","nodeType":"YulIdentifier","src":"17891:11:20"},{"arguments":[{"name":"packed","nativeSrc":"17908:6:20","nodeType":"YulIdentifier","src":"17908:6:20"},{"arguments":[{"kind":"number","nativeSrc":"17920:2:20","nodeType":"YulLiteral","src":"17920:2:20","type":"","value":"32"},{"arguments":[{"name":"value","nativeSrc":"17928:5:20","nodeType":"YulIdentifier","src":"17928:5:20"},{"arguments":[{"kind":"number","nativeSrc":"17939:2:20","nodeType":"YulLiteral","src":"17939:2:20","type":"","value":"32"},{"name":"packed","nativeSrc":"17943:6:20","nodeType":"YulIdentifier","src":"17943:6:20"}],"functionName":{"name":"shr","nativeSrc":"17935:3:20","nodeType":"YulIdentifier","src":"17935:3:20"},"nativeSrc":"17935:15:20","nodeType":"YulFunctionCall","src":"17935:15:20"}],"functionName":{"name":"xor","nativeSrc":"17924:3:20","nodeType":"YulIdentifier","src":"17924:3:20"},"nativeSrc":"17924:27:20","nodeType":"YulFunctionCall","src":"17924:27:20"}],"functionName":{"name":"shl","nativeSrc":"17916:3:20","nodeType":"YulIdentifier","src":"17916:3:20"},"nativeSrc":"17916:36:20","nodeType":"YulFunctionCall","src":"17916:36:20"}],"functionName":{"name":"xor","nativeSrc":"17904:3:20","nodeType":"YulIdentifier","src":"17904:3:20"},"nativeSrc":"17904:49:20","nodeType":"YulFunctionCall","src":"17904:49:20"}],"functionName":{"name":"sstore","nativeSrc":"17884:6:20","nodeType":"YulIdentifier","src":"17884:6:20"},"nativeSrc":"17884:70:20","nodeType":"YulFunctionCall","src":"17884:70:20"},"nativeSrc":"17884:70:20","nodeType":"YulExpressionStatement","src":"17884:70:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"17716:24:20","valueSize":1},{"declaration":8668,"isOffset":false,"isSlot":false,"src":"17767:5:20","valueSize":1},{"declaration":8670,"isOffset":false,"isSlot":false,"src":"17928:5:20","valueSize":1}],"id":8673,"nodeType":"InlineAssembly","src":"17680:284:20"}]},"documentation":{"id":8666,"nodeType":"StructuredDocumentation","src":"17318:240:20","text":"@dev Set the auxiliary data for `owner` to `value`.\n Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n Auxiliary data can be set for any address, even if it does not have any tokens."},"id":8675,"implemented":true,"kind":"function","modifiers":[],"name":"_setAux","nameLocation":"17572:7:20","nodeType":"FunctionDefinition","parameters":{"id":8671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"mutability":"mutable","name":"owner","nameLocation":"17588:5:20","nodeType":"VariableDeclaration","scope":8675,"src":"17580:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8667,"name":"address","nodeType":"ElementaryTypeName","src":"17580:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8670,"mutability":"mutable","name":"value","nameLocation":"17603:5:20","nodeType":"VariableDeclaration","scope":8675,"src":"17595:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8669,"name":"uint224","nodeType":"ElementaryTypeName","src":"17595:7:20","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"17579:30:20"},"returnParameters":{"id":8672,"nodeType":"ParameterList","parameters":[],"src":"17627:0:20"},"scope":9111,"src":"17563:407:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8684,"nodeType":"Block","src":"18247:238:20","statements":[{"AST":{"nativeSrc":"18309:170:20","nodeType":"YulBlock","src":"18309:170:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18330:4:20","nodeType":"YulLiteral","src":"18330:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"18336:2:20","nodeType":"YulIdentifier","src":"18336:2:20"}],"functionName":{"name":"mstore","nativeSrc":"18323:6:20","nodeType":"YulIdentifier","src":"18323:6:20"},"nativeSrc":"18323:16:20","nodeType":"YulFunctionCall","src":"18323:16:20"},"nativeSrc":"18323:16:20","nodeType":"YulExpressionStatement","src":"18323:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18359:4:20","nodeType":"YulLiteral","src":"18359:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"18365:24:20","nodeType":"YulIdentifier","src":"18365:24:20"}],"functionName":{"name":"mstore","nativeSrc":"18352:6:20","nodeType":"YulIdentifier","src":"18352:6:20"},"nativeSrc":"18352:38:20","nodeType":"YulFunctionCall","src":"18352:38:20"},"nativeSrc":"18352:38:20","nodeType":"YulExpressionStatement","src":"18352:38:20"},{"nativeSrc":"18403:66:20","nodeType":"YulAssignment","src":"18403:66:20","value":{"arguments":[{"kind":"number","nativeSrc":"18417:3:20","nodeType":"YulLiteral","src":"18417:3:20","type":"","value":"160"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"18432:2:20","nodeType":"YulIdentifier","src":"18432:2:20"},{"arguments":[{"name":"id","nativeSrc":"18440:2:20","nodeType":"YulIdentifier","src":"18440:2:20"},{"arguments":[{"kind":"number","nativeSrc":"18454:4:20","nodeType":"YulLiteral","src":"18454:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18460:4:20","nodeType":"YulLiteral","src":"18460:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18444:9:20","nodeType":"YulIdentifier","src":"18444:9:20"},"nativeSrc":"18444:21:20","nodeType":"YulFunctionCall","src":"18444:21:20"}],"functionName":{"name":"add","nativeSrc":"18436:3:20","nodeType":"YulIdentifier","src":"18436:3:20"},"nativeSrc":"18436:30:20","nodeType":"YulFunctionCall","src":"18436:30:20"}],"functionName":{"name":"add","nativeSrc":"18428:3:20","nodeType":"YulIdentifier","src":"18428:3:20"},"nativeSrc":"18428:39:20","nodeType":"YulFunctionCall","src":"18428:39:20"}],"functionName":{"name":"sload","nativeSrc":"18422:5:20","nodeType":"YulIdentifier","src":"18422:5:20"},"nativeSrc":"18422:46:20","nodeType":"YulFunctionCall","src":"18422:46:20"}],"functionName":{"name":"shr","nativeSrc":"18413:3:20","nodeType":"YulIdentifier","src":"18413:3:20"},"nativeSrc":"18413:56:20","nodeType":"YulFunctionCall","src":"18413:56:20"},"variableNames":[{"name":"result","nativeSrc":"18403:6:20","nodeType":"YulIdentifier","src":"18403:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"18365:24:20","valueSize":1},{"declaration":8678,"isOffset":false,"isSlot":false,"src":"18336:2:20","valueSize":1},{"declaration":8678,"isOffset":false,"isSlot":false,"src":"18432:2:20","valueSize":1},{"declaration":8678,"isOffset":false,"isSlot":false,"src":"18440:2:20","valueSize":1},{"declaration":8681,"isOffset":false,"isSlot":false,"src":"18403:6:20","valueSize":1}],"id":8683,"nodeType":"InlineAssembly","src":"18300:179:20"}]},"documentation":{"id":8676,"nodeType":"StructuredDocumentation","src":"17976:185:20","text":"@dev Returns the extra data for token `id`.\n Minting, transferring, burning a token will not change the extra data.\n The extra data can be set on a non-existent token."},"id":8685,"implemented":true,"kind":"function","modifiers":[],"name":"_getExtraData","nameLocation":"18175:13:20","nodeType":"FunctionDefinition","parameters":{"id":8679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8678,"mutability":"mutable","name":"id","nameLocation":"18197:2:20","nodeType":"VariableDeclaration","scope":8685,"src":"18189:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8677,"name":"uint256","nodeType":"ElementaryTypeName","src":"18189:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18188:12:20"},"returnParameters":{"id":8682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8681,"mutability":"mutable","name":"result","nameLocation":"18239:6:20","nodeType":"VariableDeclaration","scope":8685,"src":"18232:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8680,"name":"uint96","nodeType":"ElementaryTypeName","src":"18232:6:20","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"18231:15:20"},"scope":9111,"src":"18166:319:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8694,"nodeType":"Block","src":"18755:366:20","statements":[{"AST":{"nativeSrc":"18817:298:20","nodeType":"YulBlock","src":"18817:298:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18838:4:20","nodeType":"YulLiteral","src":"18838:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"18844:2:20","nodeType":"YulIdentifier","src":"18844:2:20"}],"functionName":{"name":"mstore","nativeSrc":"18831:6:20","nodeType":"YulIdentifier","src":"18831:6:20"},"nativeSrc":"18831:16:20","nodeType":"YulFunctionCall","src":"18831:16:20"},"nativeSrc":"18831:16:20","nodeType":"YulExpressionStatement","src":"18831:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18867:4:20","nodeType":"YulLiteral","src":"18867:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"18873:24:20","nodeType":"YulIdentifier","src":"18873:24:20"}],"functionName":{"name":"mstore","nativeSrc":"18860:6:20","nodeType":"YulIdentifier","src":"18860:6:20"},"nativeSrc":"18860:38:20","nodeType":"YulFunctionCall","src":"18860:38:20"},"nativeSrc":"18860:38:20","nodeType":"YulExpressionStatement","src":"18860:38:20"},{"nativeSrc":"18911:60:20","nodeType":"YulVariableDeclaration","src":"18911:60:20","value":{"arguments":[{"name":"id","nativeSrc":"18936:2:20","nodeType":"YulIdentifier","src":"18936:2:20"},{"arguments":[{"name":"id","nativeSrc":"18944:2:20","nodeType":"YulIdentifier","src":"18944:2:20"},{"arguments":[{"kind":"number","nativeSrc":"18958:4:20","nodeType":"YulLiteral","src":"18958:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18964:4:20","nodeType":"YulLiteral","src":"18964:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18948:9:20","nodeType":"YulIdentifier","src":"18948:9:20"},"nativeSrc":"18948:21:20","nodeType":"YulFunctionCall","src":"18948:21:20"}],"functionName":{"name":"add","nativeSrc":"18940:3:20","nodeType":"YulIdentifier","src":"18940:3:20"},"nativeSrc":"18940:30:20","nodeType":"YulFunctionCall","src":"18940:30:20"}],"functionName":{"name":"add","nativeSrc":"18932:3:20","nodeType":"YulIdentifier","src":"18932:3:20"},"nativeSrc":"18932:39:20","nodeType":"YulFunctionCall","src":"18932:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"18915:13:20","nodeType":"YulTypedName","src":"18915:13:20","type":""}]},{"nativeSrc":"18984:34:20","nodeType":"YulVariableDeclaration","src":"18984:34:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"19004:13:20","nodeType":"YulIdentifier","src":"19004:13:20"}],"functionName":{"name":"sload","nativeSrc":"18998:5:20","nodeType":"YulIdentifier","src":"18998:5:20"},"nativeSrc":"18998:20:20","nodeType":"YulFunctionCall","src":"18998:20:20"},"variables":[{"name":"packed","nativeSrc":"18988:6:20","nodeType":"YulTypedName","src":"18988:6:20","type":""}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"19038:13:20","nodeType":"YulIdentifier","src":"19038:13:20"},{"arguments":[{"name":"packed","nativeSrc":"19057:6:20","nodeType":"YulIdentifier","src":"19057:6:20"},{"arguments":[{"kind":"number","nativeSrc":"19069:3:20","nodeType":"YulLiteral","src":"19069:3:20","type":"","value":"160"},{"arguments":[{"name":"value","nativeSrc":"19078:5:20","nodeType":"YulIdentifier","src":"19078:5:20"},{"arguments":[{"kind":"number","nativeSrc":"19089:3:20","nodeType":"YulLiteral","src":"19089:3:20","type":"","value":"160"},{"name":"packed","nativeSrc":"19094:6:20","nodeType":"YulIdentifier","src":"19094:6:20"}],"functionName":{"name":"shr","nativeSrc":"19085:3:20","nodeType":"YulIdentifier","src":"19085:3:20"},"nativeSrc":"19085:16:20","nodeType":"YulFunctionCall","src":"19085:16:20"}],"functionName":{"name":"xor","nativeSrc":"19074:3:20","nodeType":"YulIdentifier","src":"19074:3:20"},"nativeSrc":"19074:28:20","nodeType":"YulFunctionCall","src":"19074:28:20"}],"functionName":{"name":"shl","nativeSrc":"19065:3:20","nodeType":"YulIdentifier","src":"19065:3:20"},"nativeSrc":"19065:38:20","nodeType":"YulFunctionCall","src":"19065:38:20"}],"functionName":{"name":"xor","nativeSrc":"19053:3:20","nodeType":"YulIdentifier","src":"19053:3:20"},"nativeSrc":"19053:51:20","nodeType":"YulFunctionCall","src":"19053:51:20"}],"functionName":{"name":"sstore","nativeSrc":"19031:6:20","nodeType":"YulIdentifier","src":"19031:6:20"},"nativeSrc":"19031:74:20","nodeType":"YulFunctionCall","src":"19031:74:20"},"nativeSrc":"19031:74:20","nodeType":"YulExpressionStatement","src":"19031:74:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"18873:24:20","valueSize":1},{"declaration":8688,"isOffset":false,"isSlot":false,"src":"18844:2:20","valueSize":1},{"declaration":8688,"isOffset":false,"isSlot":false,"src":"18936:2:20","valueSize":1},{"declaration":8688,"isOffset":false,"isSlot":false,"src":"18944:2:20","valueSize":1},{"declaration":8690,"isOffset":false,"isSlot":false,"src":"19078:5:20","valueSize":1}],"id":8693,"nodeType":"InlineAssembly","src":"18808:307:20"}]},"documentation":{"id":8686,"nodeType":"StructuredDocumentation","src":"18491:193:20","text":"@dev Sets the extra data for token `id` to `value`.\n Minting, transferring, burning a token will not change the extra data.\n The extra data can be set on a non-existent token."},"id":8695,"implemented":true,"kind":"function","modifiers":[],"name":"_setExtraData","nameLocation":"18698:13:20","nodeType":"FunctionDefinition","parameters":{"id":8691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8688,"mutability":"mutable","name":"id","nameLocation":"18720:2:20","nodeType":"VariableDeclaration","scope":8695,"src":"18712:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8687,"name":"uint256","nodeType":"ElementaryTypeName","src":"18712:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8690,"mutability":"mutable","name":"value","nameLocation":"18731:5:20","nodeType":"VariableDeclaration","scope":8695,"src":"18724:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8689,"name":"uint96","nodeType":"ElementaryTypeName","src":"18724:6:20","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"18711:26:20"},"returnParameters":{"id":8692,"nodeType":"ParameterList","parameters":[],"src":"18755:0:20"},"scope":9111,"src":"18689:432:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8722,"nodeType":"Block","src":"19665:1597:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19704:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19696:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8704,"name":"address","nodeType":"ElementaryTypeName","src":"19696:7:20","typeDescriptions":{}}},"id":8707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19696:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8708,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"19708:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8709,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"19712:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8703,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"19675:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19675:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8711,"nodeType":"ExpressionStatement","src":"19675:40:20"},{"AST":{"nativeSrc":"19777:1430:20","nodeType":"YulBlock","src":"19777:1430:20","statements":[{"nativeSrc":"19831:26:20","nodeType":"YulAssignment","src":"19831:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"19841:2:20","nodeType":"YulLiteral","src":"19841:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"19849:2:20","nodeType":"YulLiteral","src":"19849:2:20","type":"","value":"96"},{"name":"to","nativeSrc":"19853:2:20","nodeType":"YulIdentifier","src":"19853:2:20"}],"functionName":{"name":"shl","nativeSrc":"19845:3:20","nodeType":"YulIdentifier","src":"19845:3:20"},"nativeSrc":"19845:11:20","nodeType":"YulFunctionCall","src":"19845:11:20"}],"functionName":{"name":"shr","nativeSrc":"19837:3:20","nodeType":"YulIdentifier","src":"19837:3:20"},"nativeSrc":"19837:20:20","nodeType":"YulFunctionCall","src":"19837:20:20"},"variableNames":[{"name":"to","nativeSrc":"19831:2:20","nodeType":"YulIdentifier","src":"19831:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19917:4:20","nodeType":"YulLiteral","src":"19917:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"19923:2:20","nodeType":"YulIdentifier","src":"19923:2:20"}],"functionName":{"name":"mstore","nativeSrc":"19910:6:20","nodeType":"YulIdentifier","src":"19910:6:20"},"nativeSrc":"19910:16:20","nodeType":"YulFunctionCall","src":"19910:16:20"},"nativeSrc":"19910:16:20","nodeType":"YulExpressionStatement","src":"19910:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19946:4:20","nodeType":"YulLiteral","src":"19946:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"19952:24:20","nodeType":"YulIdentifier","src":"19952:24:20"}],"functionName":{"name":"mstore","nativeSrc":"19939:6:20","nodeType":"YulIdentifier","src":"19939:6:20"},"nativeSrc":"19939:38:20","nodeType":"YulFunctionCall","src":"19939:38:20"},"nativeSrc":"19939:38:20","nodeType":"YulExpressionStatement","src":"19939:38:20"},{"nativeSrc":"19990:60:20","nodeType":"YulVariableDeclaration","src":"19990:60:20","value":{"arguments":[{"name":"id","nativeSrc":"20015:2:20","nodeType":"YulIdentifier","src":"20015:2:20"},{"arguments":[{"name":"id","nativeSrc":"20023:2:20","nodeType":"YulIdentifier","src":"20023:2:20"},{"arguments":[{"kind":"number","nativeSrc":"20037:4:20","nodeType":"YulLiteral","src":"20037:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20043:4:20","nodeType":"YulLiteral","src":"20043:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"20027:9:20","nodeType":"YulIdentifier","src":"20027:9:20"},"nativeSrc":"20027:21:20","nodeType":"YulFunctionCall","src":"20027:21:20"}],"functionName":{"name":"add","nativeSrc":"20019:3:20","nodeType":"YulIdentifier","src":"20019:3:20"},"nativeSrc":"20019:30:20","nodeType":"YulFunctionCall","src":"20019:30:20"}],"functionName":{"name":"add","nativeSrc":"20011:3:20","nodeType":"YulIdentifier","src":"20011:3:20"},"nativeSrc":"20011:39:20","nodeType":"YulFunctionCall","src":"20011:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"19994:13:20","nodeType":"YulTypedName","src":"19994:13:20","type":""}]},{"nativeSrc":"20063:43:20","nodeType":"YulVariableDeclaration","src":"20063:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"20092:13:20","nodeType":"YulIdentifier","src":"20092:13:20"}],"functionName":{"name":"sload","nativeSrc":"20086:5:20","nodeType":"YulIdentifier","src":"20086:5:20"},"nativeSrc":"20086:20:20","nodeType":"YulFunctionCall","src":"20086:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"20067:15:20","nodeType":"YulTypedName","src":"20067:15:20","type":""}]},{"body":{"nativeSrc":"20198:118:20","nodeType":"YulBlock","src":"20198:118:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20223:4:20","nodeType":"YulLiteral","src":"20223:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20229:10:20","nodeType":"YulLiteral","src":"20229:10:20","type":"","value":"0xc991cbb1"}],"functionName":{"name":"mstore","nativeSrc":"20216:6:20","nodeType":"YulIdentifier","src":"20216:6:20"},"nativeSrc":"20216:24:20","nodeType":"YulFunctionCall","src":"20216:24:20"},"nativeSrc":"20216:24:20","nodeType":"YulExpressionStatement","src":"20216:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20291:4:20","nodeType":"YulLiteral","src":"20291:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"20297:4:20","nodeType":"YulLiteral","src":"20297:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"20284:6:20","nodeType":"YulIdentifier","src":"20284:6:20"},"nativeSrc":"20284:18:20","nodeType":"YulFunctionCall","src":"20284:18:20"},"nativeSrc":"20284:18:20","nodeType":"YulExpressionStatement","src":"20284:18:20"}]},"condition":{"arguments":[{"kind":"number","nativeSrc":"20177:2:20","nodeType":"YulLiteral","src":"20177:2:20","type":"","value":"96"},{"name":"ownershipPacked","nativeSrc":"20181:15:20","nodeType":"YulIdentifier","src":"20181:15:20"}],"functionName":{"name":"shl","nativeSrc":"20173:3:20","nodeType":"YulIdentifier","src":"20173:3:20"},"nativeSrc":"20173:24:20","nodeType":"YulFunctionCall","src":"20173:24:20"},"nativeSrc":"20170:146:20","nodeType":"YulIf","src":"20170:146:20"},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"20374:13:20","nodeType":"YulIdentifier","src":"20374:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"20392:15:20","nodeType":"YulIdentifier","src":"20392:15:20"},{"name":"to","nativeSrc":"20409:2:20","nodeType":"YulIdentifier","src":"20409:2:20"}],"functionName":{"name":"or","nativeSrc":"20389:2:20","nodeType":"YulIdentifier","src":"20389:2:20"},"nativeSrc":"20389:23:20","nodeType":"YulFunctionCall","src":"20389:23:20"}],"functionName":{"name":"sstore","nativeSrc":"20367:6:20","nodeType":"YulIdentifier","src":"20367:6:20"},"nativeSrc":"20367:46:20","nodeType":"YulFunctionCall","src":"20367:46:20"},"nativeSrc":"20367:46:20","nodeType":"YulExpressionStatement","src":"20367:46:20"},{"nativeSrc":"20477:605:20","nodeType":"YulBlock","src":"20477:605:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20502:4:20","nodeType":"YulLiteral","src":"20502:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"20508:2:20","nodeType":"YulIdentifier","src":"20508:2:20"}],"functionName":{"name":"mstore","nativeSrc":"20495:6:20","nodeType":"YulIdentifier","src":"20495:6:20"},"nativeSrc":"20495:16:20","nodeType":"YulFunctionCall","src":"20495:16:20"},"nativeSrc":"20495:16:20","nodeType":"YulExpressionStatement","src":"20495:16:20"},{"nativeSrc":"20528:40:20","nodeType":"YulVariableDeclaration","src":"20528:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"20557:4:20","nodeType":"YulLiteral","src":"20557:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"20563:4:20","nodeType":"YulLiteral","src":"20563:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"20547:9:20","nodeType":"YulIdentifier","src":"20547:9:20"},"nativeSrc":"20547:21:20","nodeType":"YulFunctionCall","src":"20547:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"20532:11:20","nodeType":"YulTypedName","src":"20532:11:20","type":""}]},{"nativeSrc":"20585:51:20","nodeType":"YulVariableDeclaration","src":"20585:51:20","value":{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"20620:11:20","nodeType":"YulIdentifier","src":"20620:11:20"}],"functionName":{"name":"sload","nativeSrc":"20614:5:20","nodeType":"YulIdentifier","src":"20614:5:20"},"nativeSrc":"20614:18:20","nodeType":"YulFunctionCall","src":"20614:18:20"},{"kind":"number","nativeSrc":"20634:1:20","nodeType":"YulLiteral","src":"20634:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20610:3:20","nodeType":"YulIdentifier","src":"20610:3:20"},"nativeSrc":"20610:26:20","nodeType":"YulFunctionCall","src":"20610:26:20"},"variables":[{"name":"balanceSlotPacked","nativeSrc":"20589:17:20","nodeType":"YulTypedName","src":"20589:17:20","type":""}]},{"body":{"nativeSrc":"20810:203:20","nodeType":"YulBlock","src":"20810:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20921:1:20","nodeType":"YulLiteral","src":"20921:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"20931:2:20","nodeType":"YulIdentifier","src":"20931:2:20"}],"functionName":{"name":"iszero","nativeSrc":"20924:6:20","nodeType":"YulIdentifier","src":"20924:6:20"},"nativeSrc":"20924:10:20","nodeType":"YulFunctionCall","src":"20924:10:20"}],"functionName":{"name":"shl","nativeSrc":"20917:3:20","nodeType":"YulIdentifier","src":"20917:3:20"},"nativeSrc":"20917:18:20","nodeType":"YulFunctionCall","src":"20917:18:20"},{"kind":"number","nativeSrc":"20937:18:20","nodeType":"YulLiteral","src":"20937:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"20910:6:20","nodeType":"YulIdentifier","src":"20910:6:20"},"nativeSrc":"20910:46:20","nodeType":"YulFunctionCall","src":"20910:46:20"},"nativeSrc":"20910:46:20","nodeType":"YulExpressionStatement","src":"20910:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20984:4:20","nodeType":"YulLiteral","src":"20984:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"20990:4:20","nodeType":"YulLiteral","src":"20990:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"20977:6:20","nodeType":"YulIdentifier","src":"20977:6:20"},"nativeSrc":"20977:18:20","nodeType":"YulFunctionCall","src":"20977:18:20"},"nativeSrc":"20977:18:20","nodeType":"YulExpressionStatement","src":"20977:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"20759:2:20","nodeType":"YulIdentifier","src":"20759:2:20"},{"arguments":[{"name":"balanceSlotPacked","nativeSrc":"20767:17:20","nodeType":"YulIdentifier","src":"20767:17:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"20786:20:20","nodeType":"YulIdentifier","src":"20786:20:20"}],"functionName":{"name":"and","nativeSrc":"20763:3:20","nodeType":"YulIdentifier","src":"20763:3:20"},"nativeSrc":"20763:44:20","nodeType":"YulFunctionCall","src":"20763:44:20"}],"functionName":{"name":"mul","nativeSrc":"20755:3:20","nodeType":"YulIdentifier","src":"20755:3:20"},"nativeSrc":"20755:53:20","nodeType":"YulFunctionCall","src":"20755:53:20"}],"functionName":{"name":"iszero","nativeSrc":"20748:6:20","nodeType":"YulIdentifier","src":"20748:6:20"},"nativeSrc":"20748:61:20","nodeType":"YulFunctionCall","src":"20748:61:20"},"nativeSrc":"20745:268:20","nodeType":"YulIf","src":"20745:268:20"},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"21037:11:20","nodeType":"YulIdentifier","src":"21037:11:20"},{"name":"balanceSlotPacked","nativeSrc":"21050:17:20","nodeType":"YulIdentifier","src":"21050:17:20"}],"functionName":{"name":"sstore","nativeSrc":"21030:6:20","nodeType":"YulIdentifier","src":"21030:6:20"},"nativeSrc":"21030:38:20","nodeType":"YulFunctionCall","src":"21030:38:20"},"nativeSrc":"21030:38:20","nodeType":"YulExpressionStatement","src":"21030:38:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"21142:8:20","nodeType":"YulIdentifier","src":"21142:8:20"},"nativeSrc":"21142:10:20","nodeType":"YulFunctionCall","src":"21142:10:20"},{"kind":"number","nativeSrc":"21154:4:20","nodeType":"YulLiteral","src":"21154:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"21160:25:20","nodeType":"YulIdentifier","src":"21160:25:20"},{"kind":"number","nativeSrc":"21187:1:20","nodeType":"YulLiteral","src":"21187:1:20","type":"","value":"0"},{"name":"to","nativeSrc":"21190:2:20","nodeType":"YulIdentifier","src":"21190:2:20"},{"name":"id","nativeSrc":"21194:2:20","nodeType":"YulIdentifier","src":"21194:2:20"}],"functionName":{"name":"log4","nativeSrc":"21137:4:20","nodeType":"YulIdentifier","src":"21137:4:20"},"nativeSrc":"21137:60:20","nodeType":"YulFunctionCall","src":"21137:60:20"},"nativeSrc":"21137:60:20","nodeType":"YulExpressionStatement","src":"21137:60:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"19952:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"20786:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"21160:25:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"19923:2:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"20015:2:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"20023:2:20","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"21194:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"19831:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"19853:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20409:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20508:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20759:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"20931:2:20","valueSize":1},{"declaration":8698,"isOffset":false,"isSlot":false,"src":"21190:2:20","valueSize":1}],"id":8712,"nodeType":"InlineAssembly","src":"19768:1439:20"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21244:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21236:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8714,"name":"address","nodeType":"ElementaryTypeName","src":"21236:7:20","typeDescriptions":{}}},"id":8717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21236:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8718,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"21248:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8719,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"21252:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8713,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"21216:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21216:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8721,"nodeType":"ExpressionStatement","src":"21216:39:20"}]},"documentation":{"id":8696,"nodeType":"StructuredDocumentation","src":"19410:194:20","text":"@dev Mints token `id` to `to`.\n Requirements:\n - Token `id` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":8723,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"19618:5:20","nodeType":"FunctionDefinition","parameters":{"id":8701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8698,"mutability":"mutable","name":"to","nameLocation":"19632:2:20","nodeType":"VariableDeclaration","scope":8723,"src":"19624:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8697,"name":"address","nodeType":"ElementaryTypeName","src":"19624:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8700,"mutability":"mutable","name":"id","nameLocation":"19644:2:20","nodeType":"VariableDeclaration","scope":8723,"src":"19636:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8699,"name":"uint256","nodeType":"ElementaryTypeName","src":"19636:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19623:24:20"},"returnParameters":{"id":8702,"nodeType":"ParameterList","parameters":[],"src":"19665:0:20"},"scope":9111,"src":"19609:1653:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8752,"nodeType":"Block","src":"21667:1259:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21706:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21698:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8734,"name":"address","nodeType":"ElementaryTypeName","src":"21698:7:20","typeDescriptions":{}}},"id":8737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21698:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8738,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8726,"src":"21710:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8739,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8728,"src":"21714:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8733,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"21677:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21677:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8741,"nodeType":"ExpressionStatement","src":"21677:40:20"},{"AST":{"nativeSrc":"21779:1092:20","nodeType":"YulBlock","src":"21779:1092:20","statements":[{"nativeSrc":"21833:26:20","nodeType":"YulAssignment","src":"21833:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"21843:2:20","nodeType":"YulLiteral","src":"21843:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"21851:2:20","nodeType":"YulLiteral","src":"21851:2:20","type":"","value":"96"},{"name":"to","nativeSrc":"21855:2:20","nodeType":"YulIdentifier","src":"21855:2:20"}],"functionName":{"name":"shl","nativeSrc":"21847:3:20","nodeType":"YulIdentifier","src":"21847:3:20"},"nativeSrc":"21847:11:20","nodeType":"YulFunctionCall","src":"21847:11:20"}],"functionName":{"name":"shr","nativeSrc":"21839:3:20","nodeType":"YulIdentifier","src":"21839:3:20"},"nativeSrc":"21839:20:20","nodeType":"YulFunctionCall","src":"21839:20:20"},"variableNames":[{"name":"to","nativeSrc":"21833:2:20","nodeType":"YulIdentifier","src":"21833:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21932:4:20","nodeType":"YulLiteral","src":"21932:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"21938:2:20","nodeType":"YulIdentifier","src":"21938:2:20"}],"functionName":{"name":"mstore","nativeSrc":"21925:6:20","nodeType":"YulIdentifier","src":"21925:6:20"},"nativeSrc":"21925:16:20","nodeType":"YulFunctionCall","src":"21925:16:20"},"nativeSrc":"21925:16:20","nodeType":"YulExpressionStatement","src":"21925:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21961:4:20","nodeType":"YulLiteral","src":"21961:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"21967:24:20","nodeType":"YulIdentifier","src":"21967:24:20"}],"functionName":{"name":"mstore","nativeSrc":"21954:6:20","nodeType":"YulIdentifier","src":"21954:6:20"},"nativeSrc":"21954:38:20","nodeType":"YulFunctionCall","src":"21954:38:20"},"nativeSrc":"21954:38:20","nodeType":"YulExpressionStatement","src":"21954:38:20"},{"expression":{"arguments":[{"arguments":[{"name":"id","nativeSrc":"22016:2:20","nodeType":"YulIdentifier","src":"22016:2:20"},{"arguments":[{"name":"id","nativeSrc":"22024:2:20","nodeType":"YulIdentifier","src":"22024:2:20"},{"arguments":[{"kind":"number","nativeSrc":"22038:4:20","nodeType":"YulLiteral","src":"22038:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22044:4:20","nodeType":"YulLiteral","src":"22044:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22028:9:20","nodeType":"YulIdentifier","src":"22028:9:20"},"nativeSrc":"22028:21:20","nodeType":"YulFunctionCall","src":"22028:21:20"}],"functionName":{"name":"add","nativeSrc":"22020:3:20","nodeType":"YulIdentifier","src":"22020:3:20"},"nativeSrc":"22020:30:20","nodeType":"YulFunctionCall","src":"22020:30:20"}],"functionName":{"name":"add","nativeSrc":"22012:3:20","nodeType":"YulIdentifier","src":"22012:3:20"},"nativeSrc":"22012:39:20","nodeType":"YulFunctionCall","src":"22012:39:20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22060:3:20","nodeType":"YulLiteral","src":"22060:3:20","type":"","value":"160"},{"name":"value","nativeSrc":"22065:5:20","nodeType":"YulIdentifier","src":"22065:5:20"}],"functionName":{"name":"shl","nativeSrc":"22056:3:20","nodeType":"YulIdentifier","src":"22056:3:20"},"nativeSrc":"22056:15:20","nodeType":"YulFunctionCall","src":"22056:15:20"},{"name":"to","nativeSrc":"22073:2:20","nodeType":"YulIdentifier","src":"22073:2:20"}],"functionName":{"name":"or","nativeSrc":"22053:2:20","nodeType":"YulIdentifier","src":"22053:2:20"},"nativeSrc":"22053:23:20","nodeType":"YulFunctionCall","src":"22053:23:20"}],"functionName":{"name":"sstore","nativeSrc":"22005:6:20","nodeType":"YulIdentifier","src":"22005:6:20"},"nativeSrc":"22005:72:20","nodeType":"YulFunctionCall","src":"22005:72:20"},"nativeSrc":"22005:72:20","nodeType":"YulExpressionStatement","src":"22005:72:20"},{"nativeSrc":"22141:605:20","nodeType":"YulBlock","src":"22141:605:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22166:4:20","nodeType":"YulLiteral","src":"22166:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"22172:2:20","nodeType":"YulIdentifier","src":"22172:2:20"}],"functionName":{"name":"mstore","nativeSrc":"22159:6:20","nodeType":"YulIdentifier","src":"22159:6:20"},"nativeSrc":"22159:16:20","nodeType":"YulFunctionCall","src":"22159:16:20"},"nativeSrc":"22159:16:20","nodeType":"YulExpressionStatement","src":"22159:16:20"},{"nativeSrc":"22192:40:20","nodeType":"YulVariableDeclaration","src":"22192:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"22221:4:20","nodeType":"YulLiteral","src":"22221:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"22227:4:20","nodeType":"YulLiteral","src":"22227:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"22211:9:20","nodeType":"YulIdentifier","src":"22211:9:20"},"nativeSrc":"22211:21:20","nodeType":"YulFunctionCall","src":"22211:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"22196:11:20","nodeType":"YulTypedName","src":"22196:11:20","type":""}]},{"nativeSrc":"22249:51:20","nodeType":"YulVariableDeclaration","src":"22249:51:20","value":{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"22284:11:20","nodeType":"YulIdentifier","src":"22284:11:20"}],"functionName":{"name":"sload","nativeSrc":"22278:5:20","nodeType":"YulIdentifier","src":"22278:5:20"},"nativeSrc":"22278:18:20","nodeType":"YulFunctionCall","src":"22278:18:20"},{"kind":"number","nativeSrc":"22298:1:20","nodeType":"YulLiteral","src":"22298:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22274:3:20","nodeType":"YulIdentifier","src":"22274:3:20"},"nativeSrc":"22274:26:20","nodeType":"YulFunctionCall","src":"22274:26:20"},"variables":[{"name":"balanceSlotPacked","nativeSrc":"22253:17:20","nodeType":"YulTypedName","src":"22253:17:20","type":""}]},{"body":{"nativeSrc":"22474:203:20","nodeType":"YulBlock","src":"22474:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22585:1:20","nodeType":"YulLiteral","src":"22585:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"22595:2:20","nodeType":"YulIdentifier","src":"22595:2:20"}],"functionName":{"name":"iszero","nativeSrc":"22588:6:20","nodeType":"YulIdentifier","src":"22588:6:20"},"nativeSrc":"22588:10:20","nodeType":"YulFunctionCall","src":"22588:10:20"}],"functionName":{"name":"shl","nativeSrc":"22581:3:20","nodeType":"YulIdentifier","src":"22581:3:20"},"nativeSrc":"22581:18:20","nodeType":"YulFunctionCall","src":"22581:18:20"},{"kind":"number","nativeSrc":"22601:18:20","nodeType":"YulLiteral","src":"22601:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"22574:6:20","nodeType":"YulIdentifier","src":"22574:6:20"},"nativeSrc":"22574:46:20","nodeType":"YulFunctionCall","src":"22574:46:20"},"nativeSrc":"22574:46:20","nodeType":"YulExpressionStatement","src":"22574:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22648:4:20","nodeType":"YulLiteral","src":"22648:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"22654:4:20","nodeType":"YulLiteral","src":"22654:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"22641:6:20","nodeType":"YulIdentifier","src":"22641:6:20"},"nativeSrc":"22641:18:20","nodeType":"YulFunctionCall","src":"22641:18:20"},"nativeSrc":"22641:18:20","nodeType":"YulExpressionStatement","src":"22641:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"22423:2:20","nodeType":"YulIdentifier","src":"22423:2:20"},{"arguments":[{"name":"balanceSlotPacked","nativeSrc":"22431:17:20","nodeType":"YulIdentifier","src":"22431:17:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"22450:20:20","nodeType":"YulIdentifier","src":"22450:20:20"}],"functionName":{"name":"and","nativeSrc":"22427:3:20","nodeType":"YulIdentifier","src":"22427:3:20"},"nativeSrc":"22427:44:20","nodeType":"YulFunctionCall","src":"22427:44:20"}],"functionName":{"name":"mul","nativeSrc":"22419:3:20","nodeType":"YulIdentifier","src":"22419:3:20"},"nativeSrc":"22419:53:20","nodeType":"YulFunctionCall","src":"22419:53:20"}],"functionName":{"name":"iszero","nativeSrc":"22412:6:20","nodeType":"YulIdentifier","src":"22412:6:20"},"nativeSrc":"22412:61:20","nodeType":"YulFunctionCall","src":"22412:61:20"},"nativeSrc":"22409:268:20","nodeType":"YulIf","src":"22409:268:20"},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"22701:11:20","nodeType":"YulIdentifier","src":"22701:11:20"},{"name":"balanceSlotPacked","nativeSrc":"22714:17:20","nodeType":"YulIdentifier","src":"22714:17:20"}],"functionName":{"name":"sstore","nativeSrc":"22694:6:20","nodeType":"YulIdentifier","src":"22694:6:20"},"nativeSrc":"22694:38:20","nodeType":"YulFunctionCall","src":"22694:38:20"},"nativeSrc":"22694:38:20","nodeType":"YulExpressionStatement","src":"22694:38:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"22806:8:20","nodeType":"YulIdentifier","src":"22806:8:20"},"nativeSrc":"22806:10:20","nodeType":"YulFunctionCall","src":"22806:10:20"},{"kind":"number","nativeSrc":"22818:4:20","nodeType":"YulLiteral","src":"22818:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"22824:25:20","nodeType":"YulIdentifier","src":"22824:25:20"},{"kind":"number","nativeSrc":"22851:1:20","nodeType":"YulLiteral","src":"22851:1:20","type":"","value":"0"},{"name":"to","nativeSrc":"22854:2:20","nodeType":"YulIdentifier","src":"22854:2:20"},{"name":"id","nativeSrc":"22858:2:20","nodeType":"YulIdentifier","src":"22858:2:20"}],"functionName":{"name":"log4","nativeSrc":"22801:4:20","nodeType":"YulIdentifier","src":"22801:4:20"},"nativeSrc":"22801:60:20","nodeType":"YulFunctionCall","src":"22801:60:20"},"nativeSrc":"22801:60:20","nodeType":"YulExpressionStatement","src":"22801:60:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"21967:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"22450:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"22824:25:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"21938:2:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"22016:2:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"22024:2:20","valueSize":1},{"declaration":8728,"isOffset":false,"isSlot":false,"src":"22858:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"21833:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"21855:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22073:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22172:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22423:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22595:2:20","valueSize":1},{"declaration":8726,"isOffset":false,"isSlot":false,"src":"22854:2:20","valueSize":1},{"declaration":8730,"isOffset":false,"isSlot":false,"src":"22065:5:20","valueSize":1}],"id":8742,"nodeType":"InlineAssembly","src":"21770:1101:20"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22908:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22900:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8744,"name":"address","nodeType":"ElementaryTypeName","src":"22900:7:20","typeDescriptions":{}}},"id":8747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22900:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8748,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8726,"src":"22912:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8749,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8728,"src":"22916:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8743,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"22880:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22880:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8751,"nodeType":"ExpressionStatement","src":"22880:39:20"}]},"documentation":{"id":8724,"nodeType":"StructuredDocumentation","src":"21268:300:20","text":"@dev Mints token `id` to `to`, and updates the extra data for token `id` to `value`.\n Does NOT check if token `id` already exists (assumes `id` is auto-incrementing).\n Requirements:\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":8753,"implemented":true,"kind":"function","modifiers":[],"name":"_mintAndSetExtraDataUnchecked","nameLocation":"21582:29:20","nodeType":"FunctionDefinition","parameters":{"id":8731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8726,"mutability":"mutable","name":"to","nameLocation":"21620:2:20","nodeType":"VariableDeclaration","scope":8753,"src":"21612:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8725,"name":"address","nodeType":"ElementaryTypeName","src":"21612:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8728,"mutability":"mutable","name":"id","nameLocation":"21632:2:20","nodeType":"VariableDeclaration","scope":8753,"src":"21624:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8727,"name":"uint256","nodeType":"ElementaryTypeName","src":"21624:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8730,"mutability":"mutable","name":"value","nameLocation":"21643:5:20","nodeType":"VariableDeclaration","scope":8753,"src":"21636:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8729,"name":"uint96","nodeType":"ElementaryTypeName","src":"21636:6:20","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"21611:38:20"},"returnParameters":{"id":8732,"nodeType":"ParameterList","parameters":[],"src":"21667:0:20"},"scope":9111,"src":"21573:1353:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8767,"nodeType":"Block","src":"23044:38:20","statements":[{"expression":{"arguments":[{"id":8762,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"23064:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8763,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8758,"src":"23068:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23072:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":8761,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[8768,8798],"referencedDeclaration":8798,"src":"23054:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":8765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23054:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8766,"nodeType":"ExpressionStatement","src":"23054:21:20"}]},"documentation":{"id":8754,"nodeType":"StructuredDocumentation","src":"22932:47:20","text":"@dev Equivalent to `_safeMint(to, id, \"\")`."},"id":8768,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"22993:9:20","nodeType":"FunctionDefinition","parameters":{"id":8759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"to","nameLocation":"23011:2:20","nodeType":"VariableDeclaration","scope":8768,"src":"23003:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8755,"name":"address","nodeType":"ElementaryTypeName","src":"23003:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8758,"mutability":"mutable","name":"id","nameLocation":"23023:2:20","nodeType":"VariableDeclaration","scope":8768,"src":"23015:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8757,"name":"uint256","nodeType":"ElementaryTypeName","src":"23015:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23002:24:20"},"returnParameters":{"id":8760,"nodeType":"ParameterList","parameters":[],"src":"23044:0:20"},"scope":9111,"src":"22984:98:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8797,"nodeType":"Block","src":"23514:106:20","statements":[{"expression":{"arguments":[{"id":8779,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"23530:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8780,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"23534:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8778,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"23524:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23524:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8782,"nodeType":"ExpressionStatement","src":"23524:13:20"},{"condition":{"arguments":[{"id":8784,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"23560:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8783,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"23551:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23551:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8796,"nodeType":"IfStatement","src":"23547:66:20","trueBody":{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23596:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23588:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8787,"name":"address","nodeType":"ElementaryTypeName","src":"23588:7:20","typeDescriptions":{}}},"id":8790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23588:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8791,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"23600:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8792,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"23604:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8793,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8775,"src":"23608:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8786,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"23565:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23565:48:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8795,"nodeType":"ExpressionStatement","src":"23565:48:20"}}]},"documentation":{"id":8769,"nodeType":"StructuredDocumentation","src":"23088:342:20","text":"@dev Mints token `id` to `to`.\n Requirements:\n - Token `id` must not exist.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":8798,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"23444:9:20","nodeType":"FunctionDefinition","parameters":{"id":8776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8771,"mutability":"mutable","name":"to","nameLocation":"23462:2:20","nodeType":"VariableDeclaration","scope":8798,"src":"23454:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8770,"name":"address","nodeType":"ElementaryTypeName","src":"23454:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8773,"mutability":"mutable","name":"id","nameLocation":"23474:2:20","nodeType":"VariableDeclaration","scope":8798,"src":"23466:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8772,"name":"uint256","nodeType":"ElementaryTypeName","src":"23466:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8775,"mutability":"mutable","name":"data","nameLocation":"23491:4:20","nodeType":"VariableDeclaration","scope":8798,"src":"23478:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8774,"name":"bytes","nodeType":"ElementaryTypeName","src":"23478:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23453:43:20"},"returnParameters":{"id":8777,"nodeType":"ParameterList","parameters":[],"src":"23514:0:20"},"scope":9111,"src":"23435:185:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8812,"nodeType":"Block","src":"24005:38:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24029:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24021:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8805,"name":"address","nodeType":"ElementaryTypeName","src":"24021:7:20","typeDescriptions":{}}},"id":8808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24021:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8809,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8801,"src":"24033:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8804,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[8813,8847],"referencedDeclaration":8847,"src":"24015:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24015:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8811,"nodeType":"ExpressionStatement","src":"24015:21:20"}]},"documentation":{"id":8799,"nodeType":"StructuredDocumentation","src":"23909:47:20","text":"@dev Equivalent to `_burn(address(0), id)`."},"id":8813,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"23970:5:20","nodeType":"FunctionDefinition","parameters":{"id":8802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8801,"mutability":"mutable","name":"id","nameLocation":"23984:2:20","nodeType":"VariableDeclaration","scope":8813,"src":"23976:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8800,"name":"uint256","nodeType":"ElementaryTypeName","src":"23976:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23975:12:20"},"returnParameters":{"id":8803,"nodeType":"ParameterList","parameters":[],"src":"24005:0:20"},"scope":9111,"src":"23961:82:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8846,"nodeType":"Block","src":"24388:2071:20","statements":[{"assignments":[8822],"declarations":[{"constant":false,"id":8822,"mutability":"mutable","name":"owner","nameLocation":"24406:5:20","nodeType":"VariableDeclaration","scope":8846,"src":"24398:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8821,"name":"address","nodeType":"ElementaryTypeName","src":"24398:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8826,"initialValue":{"arguments":[{"id":8824,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8818,"src":"24422:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8823,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"24414:7:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":8825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24414:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24398:27:20"},{"expression":{"arguments":[{"id":8828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8822,"src":"24456:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24471:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24463:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8829,"name":"address","nodeType":"ElementaryTypeName","src":"24463:7:20","typeDescriptions":{}}},"id":8832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24463:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8833,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8818,"src":"24475:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8827,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"24435:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24435:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8835,"nodeType":"ExpressionStatement","src":"24435:43:20"},{"AST":{"nativeSrc":"24540:1861:20","nodeType":"YulBlock","src":"24540:1861:20","statements":[{"nativeSrc":"24594:26:20","nodeType":"YulAssignment","src":"24594:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"24604:2:20","nodeType":"YulLiteral","src":"24604:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24612:2:20","nodeType":"YulLiteral","src":"24612:2:20","type":"","value":"96"},{"name":"by","nativeSrc":"24616:2:20","nodeType":"YulIdentifier","src":"24616:2:20"}],"functionName":{"name":"shl","nativeSrc":"24608:3:20","nodeType":"YulIdentifier","src":"24608:3:20"},"nativeSrc":"24608:11:20","nodeType":"YulFunctionCall","src":"24608:11:20"}],"functionName":{"name":"shr","nativeSrc":"24600:3:20","nodeType":"YulIdentifier","src":"24600:3:20"},"nativeSrc":"24600:20:20","nodeType":"YulFunctionCall","src":"24600:20:20"},"variableNames":[{"name":"by","nativeSrc":"24594:2:20","nodeType":"YulIdentifier","src":"24594:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24680:4:20","nodeType":"YulLiteral","src":"24680:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"24686:2:20","nodeType":"YulIdentifier","src":"24686:2:20"}],"functionName":{"name":"mstore","nativeSrc":"24673:6:20","nodeType":"YulIdentifier","src":"24673:6:20"},"nativeSrc":"24673:16:20","nodeType":"YulFunctionCall","src":"24673:16:20"},"nativeSrc":"24673:16:20","nodeType":"YulExpressionStatement","src":"24673:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24709:4:20","nodeType":"YulLiteral","src":"24709:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"24718:24:20","nodeType":"YulIdentifier","src":"24718:24:20"},{"name":"by","nativeSrc":"24744:2:20","nodeType":"YulIdentifier","src":"24744:2:20"}],"functionName":{"name":"or","nativeSrc":"24715:2:20","nodeType":"YulIdentifier","src":"24715:2:20"},"nativeSrc":"24715:32:20","nodeType":"YulFunctionCall","src":"24715:32:20"}],"functionName":{"name":"mstore","nativeSrc":"24702:6:20","nodeType":"YulIdentifier","src":"24702:6:20"},"nativeSrc":"24702:46:20","nodeType":"YulFunctionCall","src":"24702:46:20"},"nativeSrc":"24702:46:20","nodeType":"YulExpressionStatement","src":"24702:46:20"},{"nativeSrc":"24761:60:20","nodeType":"YulVariableDeclaration","src":"24761:60:20","value":{"arguments":[{"name":"id","nativeSrc":"24786:2:20","nodeType":"YulIdentifier","src":"24786:2:20"},{"arguments":[{"name":"id","nativeSrc":"24794:2:20","nodeType":"YulIdentifier","src":"24794:2:20"},{"arguments":[{"kind":"number","nativeSrc":"24808:4:20","nodeType":"YulLiteral","src":"24808:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"24814:4:20","nodeType":"YulLiteral","src":"24814:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"24798:9:20","nodeType":"YulIdentifier","src":"24798:9:20"},"nativeSrc":"24798:21:20","nodeType":"YulFunctionCall","src":"24798:21:20"}],"functionName":{"name":"add","nativeSrc":"24790:3:20","nodeType":"YulIdentifier","src":"24790:3:20"},"nativeSrc":"24790:30:20","nodeType":"YulFunctionCall","src":"24790:30:20"}],"functionName":{"name":"add","nativeSrc":"24782:3:20","nodeType":"YulIdentifier","src":"24782:3:20"},"nativeSrc":"24782:39:20","nodeType":"YulFunctionCall","src":"24782:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"24765:13:20","nodeType":"YulTypedName","src":"24765:13:20","type":""}]},{"nativeSrc":"24834:43:20","nodeType":"YulVariableDeclaration","src":"24834:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"24863:13:20","nodeType":"YulIdentifier","src":"24863:13:20"}],"functionName":{"name":"sload","nativeSrc":"24857:5:20","nodeType":"YulIdentifier","src":"24857:5:20"},"nativeSrc":"24857:20:20","nodeType":"YulFunctionCall","src":"24857:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"24838:15:20","nodeType":"YulTypedName","src":"24838:15:20","type":""}]},{"nativeSrc":"24971:42:20","nodeType":"YulAssignment","src":"24971:42:20","value":{"arguments":[{"kind":"number","nativeSrc":"24984:2:20","nodeType":"YulLiteral","src":"24984:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24992:2:20","nodeType":"YulLiteral","src":"24992:2:20","type":"","value":"96"},{"name":"ownershipPacked","nativeSrc":"24996:15:20","nodeType":"YulIdentifier","src":"24996:15:20"}],"functionName":{"name":"shl","nativeSrc":"24988:3:20","nodeType":"YulIdentifier","src":"24988:3:20"},"nativeSrc":"24988:24:20","nodeType":"YulFunctionCall","src":"24988:24:20"}],"functionName":{"name":"shr","nativeSrc":"24980:3:20","nodeType":"YulIdentifier","src":"24980:3:20"},"nativeSrc":"24980:33:20","nodeType":"YulFunctionCall","src":"24980:33:20"},"variableNames":[{"name":"owner","nativeSrc":"24971:5:20","nodeType":"YulIdentifier","src":"24971:5:20"}]},{"body":{"nativeSrc":"25094:117:20","nodeType":"YulBlock","src":"25094:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25119:4:20","nodeType":"YulLiteral","src":"25119:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25125:10:20","nodeType":"YulLiteral","src":"25125:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"25112:6:20","nodeType":"YulIdentifier","src":"25112:6:20"},"nativeSrc":"25112:24:20","nodeType":"YulFunctionCall","src":"25112:24:20"},"nativeSrc":"25112:24:20","nodeType":"YulExpressionStatement","src":"25112:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25186:4:20","nodeType":"YulLiteral","src":"25186:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"25192:4:20","nodeType":"YulLiteral","src":"25192:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25179:6:20","nodeType":"YulIdentifier","src":"25179:6:20"},"nativeSrc":"25179:18:20","nodeType":"YulFunctionCall","src":"25179:18:20"},"nativeSrc":"25179:18:20","nodeType":"YulExpressionStatement","src":"25179:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"25087:5:20","nodeType":"YulIdentifier","src":"25087:5:20"}],"functionName":{"name":"iszero","nativeSrc":"25080:6:20","nodeType":"YulIdentifier","src":"25080:6:20"},"nativeSrc":"25080:13:20","nodeType":"YulFunctionCall","src":"25080:13:20"},"nativeSrc":"25077:134:20","nodeType":"YulIf","src":"25077:134:20"},{"nativeSrc":"25274:706:20","nodeType":"YulBlock","src":"25274:706:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25299:4:20","nodeType":"YulLiteral","src":"25299:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"25305:5:20","nodeType":"YulIdentifier","src":"25305:5:20"}],"functionName":{"name":"mstore","nativeSrc":"25292:6:20","nodeType":"YulIdentifier","src":"25292:6:20"},"nativeSrc":"25292:19:20","nodeType":"YulFunctionCall","src":"25292:19:20"},"nativeSrc":"25292:19:20","nodeType":"YulExpressionStatement","src":"25292:19:20"},{"nativeSrc":"25328:51:20","nodeType":"YulVariableDeclaration","src":"25328:51:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25361:1:20","nodeType":"YulLiteral","src":"25361:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"25364:13:20","nodeType":"YulIdentifier","src":"25364:13:20"}],"functionName":{"name":"add","nativeSrc":"25357:3:20","nodeType":"YulIdentifier","src":"25357:3:20"},"nativeSrc":"25357:21:20","nodeType":"YulFunctionCall","src":"25357:21:20"}],"functionName":{"name":"sload","nativeSrc":"25351:5:20","nodeType":"YulIdentifier","src":"25351:5:20"},"nativeSrc":"25351:28:20","nodeType":"YulFunctionCall","src":"25351:28:20"},"variables":[{"name":"approvedAddress","nativeSrc":"25332:15:20","nodeType":"YulTypedName","src":"25332:15:20","type":""}]},{"body":{"nativeSrc":"25616:223:20","nodeType":"YulBlock","src":"25616:223:20","statements":[{"body":{"nativeSrc":"25678:143:20","nodeType":"YulBlock","src":"25678:143:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25711:4:20","nodeType":"YulLiteral","src":"25711:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25717:10:20","nodeType":"YulLiteral","src":"25717:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"25704:6:20","nodeType":"YulIdentifier","src":"25704:6:20"},"nativeSrc":"25704:24:20","nodeType":"YulFunctionCall","src":"25704:24:20"},"nativeSrc":"25704:24:20","nodeType":"YulExpressionStatement","src":"25704:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25788:4:20","nodeType":"YulLiteral","src":"25788:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"25794:4:20","nodeType":"YulLiteral","src":"25794:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25781:6:20","nodeType":"YulIdentifier","src":"25781:6:20"},"nativeSrc":"25781:18:20","nodeType":"YulFunctionCall","src":"25781:18:20"},"nativeSrc":"25781:18:20","nodeType":"YulExpressionStatement","src":"25781:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25664:4:20","nodeType":"YulLiteral","src":"25664:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"25670:4:20","nodeType":"YulLiteral","src":"25670:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"25654:9:20","nodeType":"YulIdentifier","src":"25654:9:20"},"nativeSrc":"25654:21:20","nodeType":"YulFunctionCall","src":"25654:21:20"}],"functionName":{"name":"sload","nativeSrc":"25648:5:20","nodeType":"YulIdentifier","src":"25648:5:20"},"nativeSrc":"25648:28:20","nodeType":"YulFunctionCall","src":"25648:28:20"}],"functionName":{"name":"iszero","nativeSrc":"25641:6:20","nodeType":"YulIdentifier","src":"25641:6:20"},"nativeSrc":"25641:36:20","nodeType":"YulFunctionCall","src":"25641:36:20"},"nativeSrc":"25638:183:20","nodeType":"YulIf","src":"25638:183:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"25566:2:20","nodeType":"YulIdentifier","src":"25566:2:20"}],"functionName":{"name":"iszero","nativeSrc":"25559:6:20","nodeType":"YulIdentifier","src":"25559:6:20"},"nativeSrc":"25559:10:20","nodeType":"YulFunctionCall","src":"25559:10:20"},{"arguments":[{"arguments":[{"name":"by","nativeSrc":"25577:2:20","nodeType":"YulIdentifier","src":"25577:2:20"},{"name":"owner","nativeSrc":"25581:5:20","nodeType":"YulIdentifier","src":"25581:5:20"}],"functionName":{"name":"eq","nativeSrc":"25574:2:20","nodeType":"YulIdentifier","src":"25574:2:20"},"nativeSrc":"25574:13:20","nodeType":"YulFunctionCall","src":"25574:13:20"},{"arguments":[{"name":"by","nativeSrc":"25592:2:20","nodeType":"YulIdentifier","src":"25592:2:20"},{"name":"approvedAddress","nativeSrc":"25596:15:20","nodeType":"YulIdentifier","src":"25596:15:20"}],"functionName":{"name":"eq","nativeSrc":"25589:2:20","nodeType":"YulIdentifier","src":"25589:2:20"},"nativeSrc":"25589:23:20","nodeType":"YulFunctionCall","src":"25589:23:20"}],"functionName":{"name":"or","nativeSrc":"25571:2:20","nodeType":"YulIdentifier","src":"25571:2:20"},"nativeSrc":"25571:42:20","nodeType":"YulFunctionCall","src":"25571:42:20"}],"functionName":{"name":"or","nativeSrc":"25556:2:20","nodeType":"YulIdentifier","src":"25556:2:20"},"nativeSrc":"25556:58:20","nodeType":"YulFunctionCall","src":"25556:58:20"}],"functionName":{"name":"iszero","nativeSrc":"25549:6:20","nodeType":"YulIdentifier","src":"25549:6:20"},"nativeSrc":"25549:66:20","nodeType":"YulFunctionCall","src":"25549:66:20"},"nativeSrc":"25546:293:20","nodeType":"YulIf","src":"25546:293:20"},{"body":{"nativeSrc":"25930:36:20","nodeType":"YulBlock","src":"25930:36:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25943:1:20","nodeType":"YulLiteral","src":"25943:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"25946:13:20","nodeType":"YulIdentifier","src":"25946:13:20"}],"functionName":{"name":"add","nativeSrc":"25939:3:20","nodeType":"YulIdentifier","src":"25939:3:20"},"nativeSrc":"25939:21:20","nodeType":"YulFunctionCall","src":"25939:21:20"},{"kind":"number","nativeSrc":"25962:1:20","nodeType":"YulLiteral","src":"25962:1:20","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"25932:6:20","nodeType":"YulIdentifier","src":"25932:6:20"},"nativeSrc":"25932:32:20","nodeType":"YulFunctionCall","src":"25932:32:20"},"nativeSrc":"25932:32:20","nodeType":"YulExpressionStatement","src":"25932:32:20"}]},"condition":{"name":"approvedAddress","nativeSrc":"25914:15:20","nodeType":"YulIdentifier","src":"25914:15:20"},"nativeSrc":"25911:55:20","nodeType":"YulIf","src":"25911:55:20"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"26032:13:20","nodeType":"YulIdentifier","src":"26032:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"26051:15:20","nodeType":"YulIdentifier","src":"26051:15:20"},{"name":"owner","nativeSrc":"26068:5:20","nodeType":"YulIdentifier","src":"26068:5:20"}],"functionName":{"name":"xor","nativeSrc":"26047:3:20","nodeType":"YulIdentifier","src":"26047:3:20"},"nativeSrc":"26047:27:20","nodeType":"YulFunctionCall","src":"26047:27:20"}],"functionName":{"name":"sstore","nativeSrc":"26025:6:20","nodeType":"YulIdentifier","src":"26025:6:20"},"nativeSrc":"26025:50:20","nodeType":"YulFunctionCall","src":"26025:50:20"},"nativeSrc":"26025:50:20","nodeType":"YulExpressionStatement","src":"26025:50:20"},{"nativeSrc":"26137:136:20","nodeType":"YulBlock","src":"26137:136:20","statements":[{"nativeSrc":"26155:40:20","nodeType":"YulVariableDeclaration","src":"26155:40:20","value":{"arguments":[{"kind":"number","nativeSrc":"26184:4:20","nodeType":"YulLiteral","src":"26184:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"26190:4:20","nodeType":"YulLiteral","src":"26190:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"26174:9:20","nodeType":"YulIdentifier","src":"26174:9:20"},"nativeSrc":"26174:21:20","nodeType":"YulFunctionCall","src":"26174:21:20"},"variables":[{"name":"balanceSlot","nativeSrc":"26159:11:20","nodeType":"YulTypedName","src":"26159:11:20","type":""}]},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"26219:11:20","nodeType":"YulIdentifier","src":"26219:11:20"},{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"26242:11:20","nodeType":"YulIdentifier","src":"26242:11:20"}],"functionName":{"name":"sload","nativeSrc":"26236:5:20","nodeType":"YulIdentifier","src":"26236:5:20"},"nativeSrc":"26236:18:20","nodeType":"YulFunctionCall","src":"26236:18:20"},{"kind":"number","nativeSrc":"26256:1:20","nodeType":"YulLiteral","src":"26256:1:20","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26232:3:20","nodeType":"YulIdentifier","src":"26232:3:20"},"nativeSrc":"26232:26:20","nodeType":"YulFunctionCall","src":"26232:26:20"}],"functionName":{"name":"sstore","nativeSrc":"26212:6:20","nodeType":"YulIdentifier","src":"26212:6:20"},"nativeSrc":"26212:47:20","nodeType":"YulFunctionCall","src":"26212:47:20"},"nativeSrc":"26212:47:20","nodeType":"YulExpressionStatement","src":"26212:47:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"26333:8:20","nodeType":"YulIdentifier","src":"26333:8:20"},"nativeSrc":"26333:10:20","nodeType":"YulFunctionCall","src":"26333:10:20"},{"kind":"number","nativeSrc":"26345:4:20","nodeType":"YulLiteral","src":"26345:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"26351:25:20","nodeType":"YulIdentifier","src":"26351:25:20"},{"name":"owner","nativeSrc":"26378:5:20","nodeType":"YulIdentifier","src":"26378:5:20"},{"kind":"number","nativeSrc":"26385:1:20","nodeType":"YulLiteral","src":"26385:1:20","type":"","value":"0"},{"name":"id","nativeSrc":"26388:2:20","nodeType":"YulIdentifier","src":"26388:2:20"}],"functionName":{"name":"log4","nativeSrc":"26328:4:20","nodeType":"YulIdentifier","src":"26328:4:20"},"nativeSrc":"26328:63:20","nodeType":"YulFunctionCall","src":"26328:63:20"},"nativeSrc":"26328:63:20","nodeType":"YulExpressionStatement","src":"26328:63:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"24718:24:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"26351:25:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"24594:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"24616:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"24744:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"25566:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"25577:2:20","valueSize":1},{"declaration":8816,"isOffset":false,"isSlot":false,"src":"25592:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"24686:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"24786:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"24794:2:20","valueSize":1},{"declaration":8818,"isOffset":false,"isSlot":false,"src":"26388:2:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"24971:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"25087:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"25305:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"25581:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"26068:5:20","valueSize":1},{"declaration":8822,"isOffset":false,"isSlot":false,"src":"26378:5:20","valueSize":1}],"id":8836,"nodeType":"InlineAssembly","src":"24531:1870:20"},{"expression":{"arguments":[{"id":8838,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8822,"src":"26430:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26445:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26437:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8839,"name":"address","nodeType":"ElementaryTypeName","src":"26437:7:20","typeDescriptions":{}}},"id":8842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26437:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8843,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8818,"src":"26449:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8837,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"26410:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26410:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8845,"nodeType":"ExpressionStatement","src":"26410:42:20"}]},"documentation":{"id":8814,"nodeType":"StructuredDocumentation","src":"24049:278:20","text":"@dev Destroys token `id`, using `by`.\n Requirements:\n - Token `id` must exist.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"id":8847,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"24341:5:20","nodeType":"FunctionDefinition","parameters":{"id":8819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8816,"mutability":"mutable","name":"by","nameLocation":"24355:2:20","nodeType":"VariableDeclaration","scope":8847,"src":"24347:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8815,"name":"address","nodeType":"ElementaryTypeName","src":"24347:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8818,"mutability":"mutable","name":"id","nameLocation":"24367:2:20","nodeType":"VariableDeclaration","scope":8847,"src":"24359:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8817,"name":"uint256","nodeType":"ElementaryTypeName","src":"24359:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24346:24:20"},"returnParameters":{"id":8820,"nodeType":"ParameterList","parameters":[],"src":"24388:0:20"},"scope":9111,"src":"24332:2127:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8858,"nodeType":"Block","src":"27044:1023:20","statements":[{"AST":{"nativeSrc":"27106:955:20","nodeType":"YulBlock","src":"27106:955:20","statements":[{"nativeSrc":"27120:11:20","nodeType":"YulAssignment","src":"27120:11:20","value":{"kind":"number","nativeSrc":"27130:1:20","nodeType":"YulLiteral","src":"27130:1:20","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"27120:6:20","nodeType":"YulIdentifier","src":"27120:6:20"}]},{"nativeSrc":"27184:36:20","nodeType":"YulAssignment","src":"27184:36:20","value":{"arguments":[{"kind":"number","nativeSrc":"27199:2:20","nodeType":"YulLiteral","src":"27199:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"27207:2:20","nodeType":"YulLiteral","src":"27207:2:20","type":"","value":"96"},{"name":"account","nativeSrc":"27211:7:20","nodeType":"YulIdentifier","src":"27211:7:20"}],"functionName":{"name":"shl","nativeSrc":"27203:3:20","nodeType":"YulIdentifier","src":"27203:3:20"},"nativeSrc":"27203:16:20","nodeType":"YulFunctionCall","src":"27203:16:20"}],"functionName":{"name":"shr","nativeSrc":"27195:3:20","nodeType":"YulIdentifier","src":"27195:3:20"},"nativeSrc":"27195:25:20","nodeType":"YulFunctionCall","src":"27195:25:20"},"variableNames":[{"name":"account","nativeSrc":"27184:7:20","nodeType":"YulIdentifier","src":"27184:7:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27280:4:20","nodeType":"YulLiteral","src":"27280:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"27286:2:20","nodeType":"YulIdentifier","src":"27286:2:20"}],"functionName":{"name":"mstore","nativeSrc":"27273:6:20","nodeType":"YulIdentifier","src":"27273:6:20"},"nativeSrc":"27273:16:20","nodeType":"YulFunctionCall","src":"27273:16:20"},"nativeSrc":"27273:16:20","nodeType":"YulExpressionStatement","src":"27273:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27309:4:20","nodeType":"YulLiteral","src":"27309:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"27318:24:20","nodeType":"YulIdentifier","src":"27318:24:20"},{"name":"account","nativeSrc":"27344:7:20","nodeType":"YulIdentifier","src":"27344:7:20"}],"functionName":{"name":"or","nativeSrc":"27315:2:20","nodeType":"YulIdentifier","src":"27315:2:20"},"nativeSrc":"27315:37:20","nodeType":"YulFunctionCall","src":"27315:37:20"}],"functionName":{"name":"mstore","nativeSrc":"27302:6:20","nodeType":"YulIdentifier","src":"27302:6:20"},"nativeSrc":"27302:51:20","nodeType":"YulFunctionCall","src":"27302:51:20"},"nativeSrc":"27302:51:20","nodeType":"YulExpressionStatement","src":"27302:51:20"},{"nativeSrc":"27366:60:20","nodeType":"YulVariableDeclaration","src":"27366:60:20","value":{"arguments":[{"name":"id","nativeSrc":"27391:2:20","nodeType":"YulIdentifier","src":"27391:2:20"},{"arguments":[{"name":"id","nativeSrc":"27399:2:20","nodeType":"YulIdentifier","src":"27399:2:20"},{"arguments":[{"kind":"number","nativeSrc":"27413:4:20","nodeType":"YulLiteral","src":"27413:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"27419:4:20","nodeType":"YulLiteral","src":"27419:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"27403:9:20","nodeType":"YulIdentifier","src":"27403:9:20"},"nativeSrc":"27403:21:20","nodeType":"YulFunctionCall","src":"27403:21:20"}],"functionName":{"name":"add","nativeSrc":"27395:3:20","nodeType":"YulIdentifier","src":"27395:3:20"},"nativeSrc":"27395:30:20","nodeType":"YulFunctionCall","src":"27395:30:20"}],"functionName":{"name":"add","nativeSrc":"27387:3:20","nodeType":"YulIdentifier","src":"27387:3:20"},"nativeSrc":"27387:39:20","nodeType":"YulFunctionCall","src":"27387:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"27370:13:20","nodeType":"YulTypedName","src":"27370:13:20","type":""}]},{"nativeSrc":"27439:51:20","nodeType":"YulVariableDeclaration","src":"27439:51:20","value":{"arguments":[{"kind":"number","nativeSrc":"27456:2:20","nodeType":"YulLiteral","src":"27456:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"27464:2:20","nodeType":"YulLiteral","src":"27464:2:20","type":"","value":"96"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"27474:13:20","nodeType":"YulIdentifier","src":"27474:13:20"}],"functionName":{"name":"sload","nativeSrc":"27468:5:20","nodeType":"YulIdentifier","src":"27468:5:20"},"nativeSrc":"27468:20:20","nodeType":"YulFunctionCall","src":"27468:20:20"}],"functionName":{"name":"shl","nativeSrc":"27460:3:20","nodeType":"YulIdentifier","src":"27460:3:20"},"nativeSrc":"27460:29:20","nodeType":"YulFunctionCall","src":"27460:29:20"}],"functionName":{"name":"shr","nativeSrc":"27452:3:20","nodeType":"YulIdentifier","src":"27452:3:20"},"nativeSrc":"27452:38:20","nodeType":"YulFunctionCall","src":"27452:38:20"},"variables":[{"name":"owner","nativeSrc":"27443:5:20","nodeType":"YulTypedName","src":"27443:5:20","type":""}]},{"body":{"nativeSrc":"27571:117:20","nodeType":"YulBlock","src":"27571:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27596:4:20","nodeType":"YulLiteral","src":"27596:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"27602:10:20","nodeType":"YulLiteral","src":"27602:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"27589:6:20","nodeType":"YulIdentifier","src":"27589:6:20"},"nativeSrc":"27589:24:20","nodeType":"YulFunctionCall","src":"27589:24:20"},"nativeSrc":"27589:24:20","nodeType":"YulExpressionStatement","src":"27589:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27663:4:20","nodeType":"YulLiteral","src":"27663:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"27669:4:20","nodeType":"YulLiteral","src":"27669:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"27656:6:20","nodeType":"YulIdentifier","src":"27656:6:20"},"nativeSrc":"27656:18:20","nodeType":"YulFunctionCall","src":"27656:18:20"},"nativeSrc":"27656:18:20","nodeType":"YulExpressionStatement","src":"27656:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"27564:5:20","nodeType":"YulIdentifier","src":"27564:5:20"}],"functionName":{"name":"iszero","nativeSrc":"27557:6:20","nodeType":"YulIdentifier","src":"27557:6:20"},"nativeSrc":"27557:13:20","nodeType":"YulFunctionCall","src":"27557:13:20"},"nativeSrc":"27554:134:20","nodeType":"YulIf","src":"27554:134:20"},{"body":{"nativeSrc":"27781:270:20","nodeType":"YulBlock","src":"27781:270:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27806:4:20","nodeType":"YulLiteral","src":"27806:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"27812:5:20","nodeType":"YulIdentifier","src":"27812:5:20"}],"functionName":{"name":"mstore","nativeSrc":"27799:6:20","nodeType":"YulIdentifier","src":"27799:6:20"},"nativeSrc":"27799:19:20","nodeType":"YulFunctionCall","src":"27799:19:20"},"nativeSrc":"27799:19:20","nodeType":"YulExpressionStatement","src":"27799:19:20"},{"body":{"nativeSrc":"27946:91:20","nodeType":"YulBlock","src":"27946:91:20","statements":[{"nativeSrc":"27968:51:20","nodeType":"YulAssignment","src":"27968:51:20","value":{"arguments":[{"name":"account","nativeSrc":"27981:7:20","nodeType":"YulIdentifier","src":"27981:7:20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28000:1:20","nodeType":"YulLiteral","src":"28000:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"28003:13:20","nodeType":"YulIdentifier","src":"28003:13:20"}],"functionName":{"name":"add","nativeSrc":"27996:3:20","nodeType":"YulIdentifier","src":"27996:3:20"},"nativeSrc":"27996:21:20","nodeType":"YulFunctionCall","src":"27996:21:20"}],"functionName":{"name":"sload","nativeSrc":"27990:5:20","nodeType":"YulIdentifier","src":"27990:5:20"},"nativeSrc":"27990:28:20","nodeType":"YulFunctionCall","src":"27990:28:20"}],"functionName":{"name":"eq","nativeSrc":"27978:2:20","nodeType":"YulIdentifier","src":"27978:2:20"},"nativeSrc":"27978:41:20","nodeType":"YulFunctionCall","src":"27978:41:20"},"variableNames":[{"name":"result","nativeSrc":"27968:6:20","nodeType":"YulIdentifier","src":"27968:6:20"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27932:4:20","nodeType":"YulLiteral","src":"27932:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"27938:4:20","nodeType":"YulLiteral","src":"27938:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"27922:9:20","nodeType":"YulIdentifier","src":"27922:9:20"},"nativeSrc":"27922:21:20","nodeType":"YulFunctionCall","src":"27922:21:20"}],"functionName":{"name":"sload","nativeSrc":"27916:5:20","nodeType":"YulIdentifier","src":"27916:5:20"},"nativeSrc":"27916:28:20","nodeType":"YulFunctionCall","src":"27916:28:20"}],"functionName":{"name":"iszero","nativeSrc":"27909:6:20","nodeType":"YulIdentifier","src":"27909:6:20"},"nativeSrc":"27909:36:20","nodeType":"YulFunctionCall","src":"27909:36:20"},"nativeSrc":"27906:131:20","nodeType":"YulIf","src":"27906:131:20"}]},"condition":{"arguments":[{"arguments":[{"name":"account","nativeSrc":"27764:7:20","nodeType":"YulIdentifier","src":"27764:7:20"},{"name":"owner","nativeSrc":"27773:5:20","nodeType":"YulIdentifier","src":"27773:5:20"}],"functionName":{"name":"eq","nativeSrc":"27761:2:20","nodeType":"YulIdentifier","src":"27761:2:20"},"nativeSrc":"27761:18:20","nodeType":"YulFunctionCall","src":"27761:18:20"}],"functionName":{"name":"iszero","nativeSrc":"27754:6:20","nodeType":"YulIdentifier","src":"27754:6:20"},"nativeSrc":"27754:26:20","nodeType":"YulFunctionCall","src":"27754:26:20"},"nativeSrc":"27751:300:20","nodeType":"YulIf","src":"27751:300:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"27318:24:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27184:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27211:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27344:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27764:7:20","valueSize":1},{"declaration":8850,"isOffset":false,"isSlot":false,"src":"27981:7:20","valueSize":1},{"declaration":8852,"isOffset":false,"isSlot":false,"src":"27286:2:20","valueSize":1},{"declaration":8852,"isOffset":false,"isSlot":false,"src":"27391:2:20","valueSize":1},{"declaration":8852,"isOffset":false,"isSlot":false,"src":"27399:2:20","valueSize":1},{"declaration":8855,"isOffset":false,"isSlot":false,"src":"27120:6:20","valueSize":1},{"declaration":8855,"isOffset":false,"isSlot":false,"src":"27968:6:20","valueSize":1}],"id":8857,"nodeType":"InlineAssembly","src":"27097:964:20"}]},"documentation":{"id":8848,"nodeType":"StructuredDocumentation","src":"26748:154:20","text":"@dev Returns whether `account` is the owner of token `id`, or is approved to manage it.\n Requirements:\n - Token `id` must exist."},"id":8859,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"26916:18:20","nodeType":"FunctionDefinition","parameters":{"id":8853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8850,"mutability":"mutable","name":"account","nameLocation":"26943:7:20","nodeType":"VariableDeclaration","scope":8859,"src":"26935:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8849,"name":"address","nodeType":"ElementaryTypeName","src":"26935:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8852,"mutability":"mutable","name":"id","nameLocation":"26960:2:20","nodeType":"VariableDeclaration","scope":8859,"src":"26952:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8851,"name":"uint256","nodeType":"ElementaryTypeName","src":"26952:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26934:29:20"},"returnParameters":{"id":8856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8855,"mutability":"mutable","name":"result","nameLocation":"27032:6:20","nodeType":"VariableDeclaration","scope":8859,"src":"27027:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8854,"name":"bool","nodeType":"ElementaryTypeName","src":"27027:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27026:13:20"},"scope":9111,"src":"26907:1160:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8868,"nodeType":"Block","src":"28301:236:20","statements":[{"AST":{"nativeSrc":"28363:168:20","nodeType":"YulBlock","src":"28363:168:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28384:4:20","nodeType":"YulLiteral","src":"28384:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"28390:2:20","nodeType":"YulIdentifier","src":"28390:2:20"}],"functionName":{"name":"mstore","nativeSrc":"28377:6:20","nodeType":"YulIdentifier","src":"28377:6:20"},"nativeSrc":"28377:16:20","nodeType":"YulFunctionCall","src":"28377:16:20"},"nativeSrc":"28377:16:20","nodeType":"YulExpressionStatement","src":"28377:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28413:4:20","nodeType":"YulLiteral","src":"28413:4:20","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"28419:24:20","nodeType":"YulIdentifier","src":"28419:24:20"}],"functionName":{"name":"mstore","nativeSrc":"28406:6:20","nodeType":"YulIdentifier","src":"28406:6:20"},"nativeSrc":"28406:38:20","nodeType":"YulFunctionCall","src":"28406:38:20"},"nativeSrc":"28406:38:20","nodeType":"YulExpressionStatement","src":"28406:38:20"},{"nativeSrc":"28457:64:20","nodeType":"YulAssignment","src":"28457:64:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28477:1:20","nodeType":"YulLiteral","src":"28477:1:20","type":"","value":"1"},{"arguments":[{"name":"id","nativeSrc":"28484:2:20","nodeType":"YulIdentifier","src":"28484:2:20"},{"arguments":[{"name":"id","nativeSrc":"28492:2:20","nodeType":"YulIdentifier","src":"28492:2:20"},{"arguments":[{"kind":"number","nativeSrc":"28506:4:20","nodeType":"YulLiteral","src":"28506:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"28512:4:20","nodeType":"YulLiteral","src":"28512:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"28496:9:20","nodeType":"YulIdentifier","src":"28496:9:20"},"nativeSrc":"28496:21:20","nodeType":"YulFunctionCall","src":"28496:21:20"}],"functionName":{"name":"add","nativeSrc":"28488:3:20","nodeType":"YulIdentifier","src":"28488:3:20"},"nativeSrc":"28488:30:20","nodeType":"YulFunctionCall","src":"28488:30:20"}],"functionName":{"name":"add","nativeSrc":"28480:3:20","nodeType":"YulIdentifier","src":"28480:3:20"},"nativeSrc":"28480:39:20","nodeType":"YulFunctionCall","src":"28480:39:20"}],"functionName":{"name":"add","nativeSrc":"28473:3:20","nodeType":"YulIdentifier","src":"28473:3:20"},"nativeSrc":"28473:47:20","nodeType":"YulFunctionCall","src":"28473:47:20"}],"functionName":{"name":"sload","nativeSrc":"28467:5:20","nodeType":"YulIdentifier","src":"28467:5:20"},"nativeSrc":"28467:54:20","nodeType":"YulFunctionCall","src":"28467:54:20"},"variableNames":[{"name":"result","nativeSrc":"28457:6:20","nodeType":"YulIdentifier","src":"28457:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"28419:24:20","valueSize":1},{"declaration":8862,"isOffset":false,"isSlot":false,"src":"28390:2:20","valueSize":1},{"declaration":8862,"isOffset":false,"isSlot":false,"src":"28484:2:20","valueSize":1},{"declaration":8862,"isOffset":false,"isSlot":false,"src":"28492:2:20","valueSize":1},{"declaration":8865,"isOffset":false,"isSlot":false,"src":"28457:6:20","valueSize":1}],"id":8867,"nodeType":"InlineAssembly","src":"28354:177:20"}]},"documentation":{"id":8860,"nodeType":"StructuredDocumentation","src":"28073:142:20","text":"@dev Returns the account approved to manage token `id`.\n Returns the zero address instead of reverting if the token does not exist."},"id":8869,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"28229:12:20","nodeType":"FunctionDefinition","parameters":{"id":8863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8862,"mutability":"mutable","name":"id","nameLocation":"28250:2:20","nodeType":"VariableDeclaration","scope":8869,"src":"28242:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8861,"name":"uint256","nodeType":"ElementaryTypeName","src":"28242:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28241:12:20"},"returnParameters":{"id":8866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8865,"mutability":"mutable","name":"result","nameLocation":"28293:6:20","nodeType":"VariableDeclaration","scope":8869,"src":"28285:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8864,"name":"address","nodeType":"ElementaryTypeName","src":"28285:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28284:16:20"},"scope":9111,"src":"28220:317:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8886,"nodeType":"Block","src":"28671:50:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28698:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28690:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8878,"name":"address","nodeType":"ElementaryTypeName","src":"28690:7:20","typeDescriptions":{}}},"id":8881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28690:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8882,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8872,"src":"28702:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8883,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8874,"src":"28711:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8877,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[8887,8899],"referencedDeclaration":8899,"src":"28681:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28681:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8885,"nodeType":"ExpressionStatement","src":"28681:33:20"}]},"documentation":{"id":8870,"nodeType":"StructuredDocumentation","src":"28543:59:20","text":"@dev Equivalent to `_approve(address(0), account, id)`."},"id":8887,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"28616:8:20","nodeType":"FunctionDefinition","parameters":{"id":8875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8872,"mutability":"mutable","name":"account","nameLocation":"28633:7:20","nodeType":"VariableDeclaration","scope":8887,"src":"28625:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8871,"name":"address","nodeType":"ElementaryTypeName","src":"28625:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8874,"mutability":"mutable","name":"id","nameLocation":"28650:2:20","nodeType":"VariableDeclaration","scope":8887,"src":"28642:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8873,"name":"uint256","nodeType":"ElementaryTypeName","src":"28642:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28624:29:20"},"returnParameters":{"id":8876,"nodeType":"ParameterList","parameters":[],"src":"28671:0:20"},"scope":9111,"src":"28607:114:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8898,"nodeType":"Block","src":"29115:1366:20","statements":[{"AST":{"nativeSrc":"29134:1341:20","nodeType":"YulBlock","src":"29134:1341:20","statements":[{"nativeSrc":"29188:37:20","nodeType":"YulVariableDeclaration","src":"29188:37:20","value":{"arguments":[{"kind":"number","nativeSrc":"29214:2:20","nodeType":"YulLiteral","src":"29214:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"29222:1:20","nodeType":"YulLiteral","src":"29222:1:20","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"29218:3:20","nodeType":"YulIdentifier","src":"29218:3:20"},"nativeSrc":"29218:6:20","nodeType":"YulFunctionCall","src":"29218:6:20"}],"functionName":{"name":"shr","nativeSrc":"29210:3:20","nodeType":"YulIdentifier","src":"29210:3:20"},"nativeSrc":"29210:15:20","nodeType":"YulFunctionCall","src":"29210:15:20"},"variables":[{"name":"bitmaskAddress","nativeSrc":"29192:14:20","nodeType":"YulTypedName","src":"29192:14:20","type":""}]},{"nativeSrc":"29238:39:20","nodeType":"YulAssignment","src":"29238:39:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29253:14:20","nodeType":"YulIdentifier","src":"29253:14:20"},{"name":"account","nativeSrc":"29269:7:20","nodeType":"YulIdentifier","src":"29269:7:20"}],"functionName":{"name":"and","nativeSrc":"29249:3:20","nodeType":"YulIdentifier","src":"29249:3:20"},"nativeSrc":"29249:28:20","nodeType":"YulFunctionCall","src":"29249:28:20"},"variableNames":[{"name":"account","nativeSrc":"29238:7:20","nodeType":"YulIdentifier","src":"29238:7:20"}]},{"nativeSrc":"29290:29:20","nodeType":"YulAssignment","src":"29290:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29300:14:20","nodeType":"YulIdentifier","src":"29300:14:20"},{"name":"by","nativeSrc":"29316:2:20","nodeType":"YulIdentifier","src":"29316:2:20"}],"functionName":{"name":"and","nativeSrc":"29296:3:20","nodeType":"YulIdentifier","src":"29296:3:20"},"nativeSrc":"29296:23:20","nodeType":"YulFunctionCall","src":"29296:23:20"},"variableNames":[{"name":"by","nativeSrc":"29290:2:20","nodeType":"YulIdentifier","src":"29290:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29383:4:20","nodeType":"YulLiteral","src":"29383:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"29389:2:20","nodeType":"YulIdentifier","src":"29389:2:20"}],"functionName":{"name":"mstore","nativeSrc":"29376:6:20","nodeType":"YulIdentifier","src":"29376:6:20"},"nativeSrc":"29376:16:20","nodeType":"YulFunctionCall","src":"29376:16:20"},"nativeSrc":"29376:16:20","nodeType":"YulExpressionStatement","src":"29376:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29412:4:20","nodeType":"YulLiteral","src":"29412:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"29421:24:20","nodeType":"YulIdentifier","src":"29421:24:20"},{"name":"by","nativeSrc":"29447:2:20","nodeType":"YulIdentifier","src":"29447:2:20"}],"functionName":{"name":"or","nativeSrc":"29418:2:20","nodeType":"YulIdentifier","src":"29418:2:20"},"nativeSrc":"29418:32:20","nodeType":"YulFunctionCall","src":"29418:32:20"}],"functionName":{"name":"mstore","nativeSrc":"29405:6:20","nodeType":"YulIdentifier","src":"29405:6:20"},"nativeSrc":"29405:46:20","nodeType":"YulFunctionCall","src":"29405:46:20"},"nativeSrc":"29405:46:20","nodeType":"YulExpressionStatement","src":"29405:46:20"},{"nativeSrc":"29464:60:20","nodeType":"YulVariableDeclaration","src":"29464:60:20","value":{"arguments":[{"name":"id","nativeSrc":"29489:2:20","nodeType":"YulIdentifier","src":"29489:2:20"},{"arguments":[{"name":"id","nativeSrc":"29497:2:20","nodeType":"YulIdentifier","src":"29497:2:20"},{"arguments":[{"kind":"number","nativeSrc":"29511:4:20","nodeType":"YulLiteral","src":"29511:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29517:4:20","nodeType":"YulLiteral","src":"29517:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"29501:9:20","nodeType":"YulIdentifier","src":"29501:9:20"},"nativeSrc":"29501:21:20","nodeType":"YulFunctionCall","src":"29501:21:20"}],"functionName":{"name":"add","nativeSrc":"29493:3:20","nodeType":"YulIdentifier","src":"29493:3:20"},"nativeSrc":"29493:30:20","nodeType":"YulFunctionCall","src":"29493:30:20"}],"functionName":{"name":"add","nativeSrc":"29485:3:20","nodeType":"YulIdentifier","src":"29485:3:20"},"nativeSrc":"29485:39:20","nodeType":"YulFunctionCall","src":"29485:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"29468:13:20","nodeType":"YulTypedName","src":"29468:13:20","type":""}]},{"nativeSrc":"29537:54:20","nodeType":"YulVariableDeclaration","src":"29537:54:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29554:14:20","nodeType":"YulIdentifier","src":"29554:14:20"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"29576:13:20","nodeType":"YulIdentifier","src":"29576:13:20"}],"functionName":{"name":"sload","nativeSrc":"29570:5:20","nodeType":"YulIdentifier","src":"29570:5:20"},"nativeSrc":"29570:20:20","nodeType":"YulFunctionCall","src":"29570:20:20"}],"functionName":{"name":"and","nativeSrc":"29550:3:20","nodeType":"YulIdentifier","src":"29550:3:20"},"nativeSrc":"29550:41:20","nodeType":"YulFunctionCall","src":"29550:41:20"},"variables":[{"name":"owner","nativeSrc":"29541:5:20","nodeType":"YulTypedName","src":"29541:5:20","type":""}]},{"body":{"nativeSrc":"29672:117:20","nodeType":"YulBlock","src":"29672:117:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29697:4:20","nodeType":"YulLiteral","src":"29697:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29703:10:20","nodeType":"YulLiteral","src":"29703:10:20","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"29690:6:20","nodeType":"YulIdentifier","src":"29690:6:20"},"nativeSrc":"29690:24:20","nodeType":"YulFunctionCall","src":"29690:24:20"},"nativeSrc":"29690:24:20","nodeType":"YulExpressionStatement","src":"29690:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29764:4:20","nodeType":"YulLiteral","src":"29764:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"29770:4:20","nodeType":"YulLiteral","src":"29770:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"29757:6:20","nodeType":"YulIdentifier","src":"29757:6:20"},"nativeSrc":"29757:18:20","nodeType":"YulFunctionCall","src":"29757:18:20"},"nativeSrc":"29757:18:20","nodeType":"YulExpressionStatement","src":"29757:18:20"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"29665:5:20","nodeType":"YulIdentifier","src":"29665:5:20"}],"functionName":{"name":"iszero","nativeSrc":"29658:6:20","nodeType":"YulIdentifier","src":"29658:6:20"},"nativeSrc":"29658:13:20","nodeType":"YulFunctionCall","src":"29658:13:20"},"nativeSrc":"29655:134:20","nodeType":"YulIf","src":"29655:134:20"},{"body":{"nativeSrc":"29981:239:20","nodeType":"YulBlock","src":"29981:239:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30006:4:20","nodeType":"YulLiteral","src":"30006:4:20","type":"","value":"0x00"},{"name":"owner","nativeSrc":"30012:5:20","nodeType":"YulIdentifier","src":"30012:5:20"}],"functionName":{"name":"mstore","nativeSrc":"29999:6:20","nodeType":"YulIdentifier","src":"29999:6:20"},"nativeSrc":"29999:19:20","nodeType":"YulFunctionCall","src":"29999:19:20"},"nativeSrc":"29999:19:20","nodeType":"YulExpressionStatement","src":"29999:19:20"},{"body":{"nativeSrc":"30075:131:20","nodeType":"YulBlock","src":"30075:131:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30104:4:20","nodeType":"YulLiteral","src":"30104:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"30110:10:20","nodeType":"YulLiteral","src":"30110:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"30097:6:20","nodeType":"YulIdentifier","src":"30097:6:20"},"nativeSrc":"30097:24:20","nodeType":"YulFunctionCall","src":"30097:24:20"},"nativeSrc":"30097:24:20","nodeType":"YulExpressionStatement","src":"30097:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30177:4:20","nodeType":"YulLiteral","src":"30177:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"30183:4:20","nodeType":"YulLiteral","src":"30183:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"30170:6:20","nodeType":"YulIdentifier","src":"30170:6:20"},"nativeSrc":"30170:18:20","nodeType":"YulFunctionCall","src":"30170:18:20"},"nativeSrc":"30170:18:20","nodeType":"YulExpressionStatement","src":"30170:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30061:4:20","nodeType":"YulLiteral","src":"30061:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"30067:4:20","nodeType":"YulLiteral","src":"30067:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"30051:9:20","nodeType":"YulIdentifier","src":"30051:9:20"},"nativeSrc":"30051:21:20","nodeType":"YulFunctionCall","src":"30051:21:20"}],"functionName":{"name":"sload","nativeSrc":"30045:5:20","nodeType":"YulIdentifier","src":"30045:5:20"},"nativeSrc":"30045:28:20","nodeType":"YulFunctionCall","src":"30045:28:20"}],"functionName":{"name":"iszero","nativeSrc":"30038:6:20","nodeType":"YulIdentifier","src":"30038:6:20"},"nativeSrc":"30038:36:20","nodeType":"YulFunctionCall","src":"30038:36:20"},"nativeSrc":"30035:171:20","nodeType":"YulIf","src":"30035:171:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"29960:2:20","nodeType":"YulIdentifier","src":"29960:2:20"}],"functionName":{"name":"iszero","nativeSrc":"29953:6:20","nodeType":"YulIdentifier","src":"29953:6:20"},"nativeSrc":"29953:10:20","nodeType":"YulFunctionCall","src":"29953:10:20"},{"arguments":[{"name":"by","nativeSrc":"29968:2:20","nodeType":"YulIdentifier","src":"29968:2:20"},{"name":"owner","nativeSrc":"29972:5:20","nodeType":"YulIdentifier","src":"29972:5:20"}],"functionName":{"name":"eq","nativeSrc":"29965:2:20","nodeType":"YulIdentifier","src":"29965:2:20"},"nativeSrc":"29965:13:20","nodeType":"YulFunctionCall","src":"29965:13:20"}],"functionName":{"name":"or","nativeSrc":"29950:2:20","nodeType":"YulIdentifier","src":"29950:2:20"},"nativeSrc":"29950:29:20","nodeType":"YulFunctionCall","src":"29950:29:20"}],"functionName":{"name":"iszero","nativeSrc":"29943:6:20","nodeType":"YulIdentifier","src":"29943:6:20"},"nativeSrc":"29943:37:20","nodeType":"YulFunctionCall","src":"29943:37:20"},"nativeSrc":"29940:280:20","nodeType":"YulIf","src":"29940:280:20"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30314:1:20","nodeType":"YulLiteral","src":"30314:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"30317:13:20","nodeType":"YulIdentifier","src":"30317:13:20"}],"functionName":{"name":"add","nativeSrc":"30310:3:20","nodeType":"YulIdentifier","src":"30310:3:20"},"nativeSrc":"30310:21:20","nodeType":"YulFunctionCall","src":"30310:21:20"},{"name":"account","nativeSrc":"30333:7:20","nodeType":"YulIdentifier","src":"30333:7:20"}],"functionName":{"name":"sstore","nativeSrc":"30303:6:20","nodeType":"YulIdentifier","src":"30303:6:20"},"nativeSrc":"30303:38:20","nodeType":"YulFunctionCall","src":"30303:38:20"},"nativeSrc":"30303:38:20","nodeType":"YulExpressionStatement","src":"30303:38:20"},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"30401:8:20","nodeType":"YulIdentifier","src":"30401:8:20"},"nativeSrc":"30401:10:20","nodeType":"YulFunctionCall","src":"30401:10:20"},{"kind":"number","nativeSrc":"30413:4:20","nodeType":"YulLiteral","src":"30413:4:20","type":"","value":"0x00"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"30419:25:20","nodeType":"YulIdentifier","src":"30419:25:20"},{"name":"owner","nativeSrc":"30446:5:20","nodeType":"YulIdentifier","src":"30446:5:20"},{"name":"account","nativeSrc":"30453:7:20","nodeType":"YulIdentifier","src":"30453:7:20"},{"name":"id","nativeSrc":"30462:2:20","nodeType":"YulIdentifier","src":"30462:2:20"}],"functionName":{"name":"log4","nativeSrc":"30396:4:20","nodeType":"YulIdentifier","src":"30396:4:20"},"nativeSrc":"30396:69:20","nodeType":"YulFunctionCall","src":"30396:69:20"},"nativeSrc":"30396:69:20","nodeType":"YulExpressionStatement","src":"30396:69:20"}]},"evmVersion":"cancun","externalReferences":[{"declaration":8435,"isOffset":false,"isSlot":false,"src":"30419:25:20","valueSize":1},{"declaration":8445,"isOffset":false,"isSlot":false,"src":"29421:24:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"29238:7:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"29269:7:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"30333:7:20","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"30453:7:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29290:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29316:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29447:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29960:2:20","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"29968:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"29389:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"29489:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"29497:2:20","valueSize":1},{"declaration":8894,"isOffset":false,"isSlot":false,"src":"30462:2:20","valueSize":1}],"id":8897,"nodeType":"InlineAssembly","src":"29125:1350:20"}]},"documentation":{"id":8888,"nodeType":"StructuredDocumentation","src":"28727:307:20","text":"@dev Sets `account` as the approved account to manage token `id`, using `by`.\n Requirements:\n - Token `id` must exist.\n - If `by` is not the zero address, `by` must be the owner\n or an approved operator for the token owner.\n Emits a {Approval} event."},"id":8899,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"29048:8:20","nodeType":"FunctionDefinition","parameters":{"id":8895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8890,"mutability":"mutable","name":"by","nameLocation":"29065:2:20","nodeType":"VariableDeclaration","scope":8899,"src":"29057:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8889,"name":"address","nodeType":"ElementaryTypeName","src":"29057:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8892,"mutability":"mutable","name":"account","nameLocation":"29077:7:20","nodeType":"VariableDeclaration","scope":8899,"src":"29069:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8891,"name":"address","nodeType":"ElementaryTypeName","src":"29069:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8894,"mutability":"mutable","name":"id","nameLocation":"29094:2:20","nodeType":"VariableDeclaration","scope":8899,"src":"29086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8893,"name":"uint256","nodeType":"ElementaryTypeName","src":"29086:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29056:41:20"},"returnParameters":{"id":8896,"nodeType":"ParameterList","parameters":[],"src":"29115:0:20"},"scope":9111,"src":"29039:1442:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8910,"nodeType":"Block","src":"30737:670:20","statements":[{"AST":{"nativeSrc":"30799:602:20","nodeType":"YulBlock","src":"30799:602:20","statements":[{"nativeSrc":"30853:26:20","nodeType":"YulAssignment","src":"30853:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"30863:2:20","nodeType":"YulLiteral","src":"30863:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"30871:2:20","nodeType":"YulLiteral","src":"30871:2:20","type":"","value":"96"},{"name":"by","nativeSrc":"30875:2:20","nodeType":"YulIdentifier","src":"30875:2:20"}],"functionName":{"name":"shl","nativeSrc":"30867:3:20","nodeType":"YulIdentifier","src":"30867:3:20"},"nativeSrc":"30867:11:20","nodeType":"YulFunctionCall","src":"30867:11:20"}],"functionName":{"name":"shr","nativeSrc":"30859:3:20","nodeType":"YulIdentifier","src":"30859:3:20"},"nativeSrc":"30859:20:20","nodeType":"YulFunctionCall","src":"30859:20:20"},"variableNames":[{"name":"by","nativeSrc":"30853:2:20","nodeType":"YulIdentifier","src":"30853:2:20"}]},{"nativeSrc":"30892:38:20","nodeType":"YulAssignment","src":"30892:38:20","value":{"arguments":[{"kind":"number","nativeSrc":"30908:2:20","nodeType":"YulLiteral","src":"30908:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"30916:2:20","nodeType":"YulLiteral","src":"30916:2:20","type":"","value":"96"},{"name":"operator","nativeSrc":"30920:8:20","nodeType":"YulIdentifier","src":"30920:8:20"}],"functionName":{"name":"shl","nativeSrc":"30912:3:20","nodeType":"YulIdentifier","src":"30912:3:20"},"nativeSrc":"30912:17:20","nodeType":"YulFunctionCall","src":"30912:17:20"}],"functionName":{"name":"shr","nativeSrc":"30904:3:20","nodeType":"YulIdentifier","src":"30904:3:20"},"nativeSrc":"30904:26:20","nodeType":"YulFunctionCall","src":"30904:26:20"},"variableNames":[{"name":"operator","nativeSrc":"30892:8:20","nodeType":"YulIdentifier","src":"30892:8:20"}]},{"nativeSrc":"30977:40:20","nodeType":"YulAssignment","src":"30977:40:20","value":{"arguments":[{"arguments":[{"name":"isApproved","nativeSrc":"31005:10:20","nodeType":"YulIdentifier","src":"31005:10:20"}],"functionName":{"name":"iszero","nativeSrc":"30998:6:20","nodeType":"YulIdentifier","src":"30998:6:20"},"nativeSrc":"30998:18:20","nodeType":"YulFunctionCall","src":"30998:18:20"}],"functionName":{"name":"iszero","nativeSrc":"30991:6:20","nodeType":"YulIdentifier","src":"30991:6:20"},"nativeSrc":"30991:26:20","nodeType":"YulFunctionCall","src":"30991:26:20"},"variableNames":[{"name":"isApproved","nativeSrc":"30977:10:20","nodeType":"YulIdentifier","src":"30977:10:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31100:4:20","nodeType":"YulLiteral","src":"31100:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"31109:24:20","nodeType":"YulIdentifier","src":"31109:24:20"},{"name":"operator","nativeSrc":"31135:8:20","nodeType":"YulIdentifier","src":"31135:8:20"}],"functionName":{"name":"or","nativeSrc":"31106:2:20","nodeType":"YulIdentifier","src":"31106:2:20"},"nativeSrc":"31106:38:20","nodeType":"YulFunctionCall","src":"31106:38:20"}],"functionName":{"name":"mstore","nativeSrc":"31093:6:20","nodeType":"YulIdentifier","src":"31093:6:20"},"nativeSrc":"31093:52:20","nodeType":"YulFunctionCall","src":"31093:52:20"},"nativeSrc":"31093:52:20","nodeType":"YulExpressionStatement","src":"31093:52:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31165:4:20","nodeType":"YulLiteral","src":"31165:4:20","type":"","value":"0x00"},{"name":"by","nativeSrc":"31171:2:20","nodeType":"YulIdentifier","src":"31171:2:20"}],"functionName":{"name":"mstore","nativeSrc":"31158:6:20","nodeType":"YulIdentifier","src":"31158:6:20"},"nativeSrc":"31158:16:20","nodeType":"YulFunctionCall","src":"31158:16:20"},"nativeSrc":"31158:16:20","nodeType":"YulExpressionStatement","src":"31158:16:20"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31204:4:20","nodeType":"YulLiteral","src":"31204:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"31210:4:20","nodeType":"YulLiteral","src":"31210:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"31194:9:20","nodeType":"YulIdentifier","src":"31194:9:20"},"nativeSrc":"31194:21:20","nodeType":"YulFunctionCall","src":"31194:21:20"},{"name":"isApproved","nativeSrc":"31217:10:20","nodeType":"YulIdentifier","src":"31217:10:20"}],"functionName":{"name":"sstore","nativeSrc":"31187:6:20","nodeType":"YulIdentifier","src":"31187:6:20"},"nativeSrc":"31187:41:20","nodeType":"YulFunctionCall","src":"31187:41:20"},"nativeSrc":"31187:41:20","nodeType":"YulExpressionStatement","src":"31187:41:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31296:4:20","nodeType":"YulLiteral","src":"31296:4:20","type":"","value":"0x00"},{"name":"isApproved","nativeSrc":"31302:10:20","nodeType":"YulIdentifier","src":"31302:10:20"}],"functionName":{"name":"mstore","nativeSrc":"31289:6:20","nodeType":"YulIdentifier","src":"31289:6:20"},"nativeSrc":"31289:24:20","nodeType":"YulFunctionCall","src":"31289:24:20"},"nativeSrc":"31289:24:20","nodeType":"YulExpressionStatement","src":"31289:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31331:4:20","nodeType":"YulLiteral","src":"31331:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"31337:4:20","nodeType":"YulLiteral","src":"31337:4:20","type":"","value":"0x20"},{"name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nativeSrc":"31343:33:20","nodeType":"YulIdentifier","src":"31343:33:20"},{"name":"by","nativeSrc":"31378:2:20","nodeType":"YulIdentifier","src":"31378:2:20"},{"name":"operator","nativeSrc":"31382:8:20","nodeType":"YulIdentifier","src":"31382:8:20"}],"functionName":{"name":"log3","nativeSrc":"31326:4:20","nodeType":"YulIdentifier","src":"31326:4:20"},"nativeSrc":"31326:65:20","nodeType":"YulFunctionCall","src":"31326:65:20"},"nativeSrc":"31326:65:20","nodeType":"YulExpressionStatement","src":"31326:65:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8439,"isOffset":false,"isSlot":false,"src":"31343:33:20","valueSize":1},{"declaration":8445,"isOffset":false,"isSlot":false,"src":"31109:24:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"30853:2:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"30875:2:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"31171:2:20","valueSize":1},{"declaration":8902,"isOffset":false,"isSlot":false,"src":"31378:2:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"30977:10:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"31005:10:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"31217:10:20","valueSize":1},{"declaration":8906,"isOffset":false,"isSlot":false,"src":"31302:10:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"30892:8:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"30920:8:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"31135:8:20","valueSize":1},{"declaration":8904,"isOffset":false,"isSlot":false,"src":"31382:8:20","valueSize":1}],"id":8909,"nodeType":"InlineAssembly","src":"30790:611:20"}]},"documentation":{"id":8900,"nodeType":"StructuredDocumentation","src":"30487:153:20","text":"@dev Approve or remove the `operator` as an operator for `by`,\n without authorization checks.\n Emits an {ApprovalForAll} event."},"id":8911,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"30654:18:20","nodeType":"FunctionDefinition","parameters":{"id":8907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8902,"mutability":"mutable","name":"by","nameLocation":"30681:2:20","nodeType":"VariableDeclaration","scope":8911,"src":"30673:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8901,"name":"address","nodeType":"ElementaryTypeName","src":"30673:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8904,"mutability":"mutable","name":"operator","nameLocation":"30693:8:20","nodeType":"VariableDeclaration","scope":8911,"src":"30685:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8903,"name":"address","nodeType":"ElementaryTypeName","src":"30685:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8906,"mutability":"mutable","name":"isApproved","nameLocation":"30708:10:20","nodeType":"VariableDeclaration","scope":8911,"src":"30703:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8905,"name":"bool","nodeType":"ElementaryTypeName","src":"30703:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30672:47:20"},"returnParameters":{"id":8908,"nodeType":"ParameterList","parameters":[],"src":"30737:0:20"},"scope":9111,"src":"30645:762:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8931,"nodeType":"Block","src":"31836:52:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31864:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31856:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8922,"name":"address","nodeType":"ElementaryTypeName","src":"31856:7:20","typeDescriptions":{}}},"id":8925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31856:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8926,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8914,"src":"31868:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8927,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8916,"src":"31874:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8928,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8918,"src":"31878:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8921,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8932,8958],"referencedDeclaration":8958,"src":"31846:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":8929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31846:35:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8930,"nodeType":"ExpressionStatement","src":"31846:35:20"}]},"documentation":{"id":8912,"nodeType":"StructuredDocumentation","src":"31696:61:20","text":"@dev Equivalent to `_transfer(address(0), from, to, id)`."},"id":8932,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"31771:9:20","nodeType":"FunctionDefinition","parameters":{"id":8919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8914,"mutability":"mutable","name":"from","nameLocation":"31789:4:20","nodeType":"VariableDeclaration","scope":8932,"src":"31781:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8913,"name":"address","nodeType":"ElementaryTypeName","src":"31781:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8916,"mutability":"mutable","name":"to","nameLocation":"31803:2:20","nodeType":"VariableDeclaration","scope":8932,"src":"31795:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8915,"name":"address","nodeType":"ElementaryTypeName","src":"31795:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8918,"mutability":"mutable","name":"id","nameLocation":"31815:2:20","nodeType":"VariableDeclaration","scope":8932,"src":"31807:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8917,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31780:38:20"},"returnParameters":{"id":8920,"nodeType":"ParameterList","parameters":[],"src":"31836:0:20"},"scope":9111,"src":"31762:126:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8957,"nodeType":"Block","src":"32364:2921:20","statements":[{"expression":{"arguments":[{"id":8945,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8937,"src":"32395:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8946,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8939,"src":"32401:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8947,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"32405:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8944,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"32374:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32374:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8949,"nodeType":"ExpressionStatement","src":"32374:34:20"},{"AST":{"nativeSrc":"32470:2766:20","nodeType":"YulBlock","src":"32470:2766:20","statements":[{"nativeSrc":"32524:37:20","nodeType":"YulVariableDeclaration","src":"32524:37:20","value":{"arguments":[{"kind":"number","nativeSrc":"32550:2:20","nodeType":"YulLiteral","src":"32550:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"32558:1:20","nodeType":"YulLiteral","src":"32558:1:20","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"32554:3:20","nodeType":"YulIdentifier","src":"32554:3:20"},"nativeSrc":"32554:6:20","nodeType":"YulFunctionCall","src":"32554:6:20"}],"functionName":{"name":"shr","nativeSrc":"32546:3:20","nodeType":"YulIdentifier","src":"32546:3:20"},"nativeSrc":"32546:15:20","nodeType":"YulFunctionCall","src":"32546:15:20"},"variables":[{"name":"bitmaskAddress","nativeSrc":"32528:14:20","nodeType":"YulTypedName","src":"32528:14:20","type":""}]},{"nativeSrc":"32574:33:20","nodeType":"YulAssignment","src":"32574:33:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32586:14:20","nodeType":"YulIdentifier","src":"32586:14:20"},{"name":"from","nativeSrc":"32602:4:20","nodeType":"YulIdentifier","src":"32602:4:20"}],"functionName":{"name":"and","nativeSrc":"32582:3:20","nodeType":"YulIdentifier","src":"32582:3:20"},"nativeSrc":"32582:25:20","nodeType":"YulFunctionCall","src":"32582:25:20"},"variableNames":[{"name":"from","nativeSrc":"32574:4:20","nodeType":"YulIdentifier","src":"32574:4:20"}]},{"nativeSrc":"32620:29:20","nodeType":"YulAssignment","src":"32620:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32630:14:20","nodeType":"YulIdentifier","src":"32630:14:20"},{"name":"to","nativeSrc":"32646:2:20","nodeType":"YulIdentifier","src":"32646:2:20"}],"functionName":{"name":"and","nativeSrc":"32626:3:20","nodeType":"YulIdentifier","src":"32626:3:20"},"nativeSrc":"32626:23:20","nodeType":"YulFunctionCall","src":"32626:23:20"},"variableNames":[{"name":"to","nativeSrc":"32620:2:20","nodeType":"YulIdentifier","src":"32620:2:20"}]},{"nativeSrc":"32662:29:20","nodeType":"YulAssignment","src":"32662:29:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32672:14:20","nodeType":"YulIdentifier","src":"32672:14:20"},{"name":"by","nativeSrc":"32688:2:20","nodeType":"YulIdentifier","src":"32688:2:20"}],"functionName":{"name":"and","nativeSrc":"32668:3:20","nodeType":"YulIdentifier","src":"32668:3:20"},"nativeSrc":"32668:23:20","nodeType":"YulFunctionCall","src":"32668:23:20"},"variableNames":[{"name":"by","nativeSrc":"32662:2:20","nodeType":"YulIdentifier","src":"32662:2:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32751:4:20","nodeType":"YulLiteral","src":"32751:4:20","type":"","value":"0x00"},{"name":"id","nativeSrc":"32757:2:20","nodeType":"YulIdentifier","src":"32757:2:20"}],"functionName":{"name":"mstore","nativeSrc":"32744:6:20","nodeType":"YulIdentifier","src":"32744:6:20"},"nativeSrc":"32744:16:20","nodeType":"YulFunctionCall","src":"32744:16:20"},"nativeSrc":"32744:16:20","nodeType":"YulExpressionStatement","src":"32744:16:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32780:4:20","nodeType":"YulLiteral","src":"32780:4:20","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"32789:24:20","nodeType":"YulIdentifier","src":"32789:24:20"},{"name":"by","nativeSrc":"32815:2:20","nodeType":"YulIdentifier","src":"32815:2:20"}],"functionName":{"name":"or","nativeSrc":"32786:2:20","nodeType":"YulIdentifier","src":"32786:2:20"},"nativeSrc":"32786:32:20","nodeType":"YulFunctionCall","src":"32786:32:20"}],"functionName":{"name":"mstore","nativeSrc":"32773:6:20","nodeType":"YulIdentifier","src":"32773:6:20"},"nativeSrc":"32773:46:20","nodeType":"YulFunctionCall","src":"32773:46:20"},"nativeSrc":"32773:46:20","nodeType":"YulExpressionStatement","src":"32773:46:20"},{"nativeSrc":"32832:60:20","nodeType":"YulVariableDeclaration","src":"32832:60:20","value":{"arguments":[{"name":"id","nativeSrc":"32857:2:20","nodeType":"YulIdentifier","src":"32857:2:20"},{"arguments":[{"name":"id","nativeSrc":"32865:2:20","nodeType":"YulIdentifier","src":"32865:2:20"},{"arguments":[{"kind":"number","nativeSrc":"32879:4:20","nodeType":"YulLiteral","src":"32879:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"32885:4:20","nodeType":"YulLiteral","src":"32885:4:20","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"32869:9:20","nodeType":"YulIdentifier","src":"32869:9:20"},"nativeSrc":"32869:21:20","nodeType":"YulFunctionCall","src":"32869:21:20"}],"functionName":{"name":"add","nativeSrc":"32861:3:20","nodeType":"YulIdentifier","src":"32861:3:20"},"nativeSrc":"32861:30:20","nodeType":"YulFunctionCall","src":"32861:30:20"}],"functionName":{"name":"add","nativeSrc":"32853:3:20","nodeType":"YulIdentifier","src":"32853:3:20"},"nativeSrc":"32853:39:20","nodeType":"YulFunctionCall","src":"32853:39:20"},"variables":[{"name":"ownershipSlot","nativeSrc":"32836:13:20","nodeType":"YulTypedName","src":"32836:13:20","type":""}]},{"nativeSrc":"32905:43:20","nodeType":"YulVariableDeclaration","src":"32905:43:20","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"32934:13:20","nodeType":"YulIdentifier","src":"32934:13:20"}],"functionName":{"name":"sload","nativeSrc":"32928:5:20","nodeType":"YulIdentifier","src":"32928:5:20"},"nativeSrc":"32928:20:20","nodeType":"YulFunctionCall","src":"32928:20:20"},"variables":[{"name":"ownershipPacked","nativeSrc":"32909:15:20","nodeType":"YulTypedName","src":"32909:15:20","type":""}]},{"nativeSrc":"32961:49:20","nodeType":"YulVariableDeclaration","src":"32961:49:20","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32978:14:20","nodeType":"YulIdentifier","src":"32978:14:20"},{"name":"ownershipPacked","nativeSrc":"32994:15:20","nodeType":"YulIdentifier","src":"32994:15:20"}],"functionName":{"name":"and","nativeSrc":"32974:3:20","nodeType":"YulIdentifier","src":"32974:3:20"},"nativeSrc":"32974:36:20","nodeType":"YulFunctionCall","src":"32974:36:20"},"variables":[{"name":"owner","nativeSrc":"32965:5:20","nodeType":"YulTypedName","src":"32965:5:20","type":""}]},{"body":{"nativeSrc":"33144:190:20","nodeType":"YulBlock","src":"33144:190:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33247:1:20","nodeType":"YulLiteral","src":"33247:1:20","type":"","value":"2"},{"arguments":[{"name":"owner","nativeSrc":"33257:5:20","nodeType":"YulIdentifier","src":"33257:5:20"}],"functionName":{"name":"iszero","nativeSrc":"33250:6:20","nodeType":"YulIdentifier","src":"33250:6:20"},"nativeSrc":"33250:13:20","nodeType":"YulFunctionCall","src":"33250:13:20"}],"functionName":{"name":"shl","nativeSrc":"33243:3:20","nodeType":"YulIdentifier","src":"33243:3:20"},"nativeSrc":"33243:21:20","nodeType":"YulFunctionCall","src":"33243:21:20"},{"kind":"number","nativeSrc":"33266:18:20","nodeType":"YulLiteral","src":"33266:18:20","type":"","value":"0xceea21b6a1148100"}],"functionName":{"name":"mstore","nativeSrc":"33236:6:20","nodeType":"YulIdentifier","src":"33236:6:20"},"nativeSrc":"33236:49:20","nodeType":"YulFunctionCall","src":"33236:49:20"},"nativeSrc":"33236:49:20","nodeType":"YulExpressionStatement","src":"33236:49:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33309:4:20","nodeType":"YulLiteral","src":"33309:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33315:4:20","nodeType":"YulLiteral","src":"33315:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33302:6:20","nodeType":"YulIdentifier","src":"33302:6:20"},"nativeSrc":"33302:18:20","nodeType":"YulFunctionCall","src":"33302:18:20"},"nativeSrc":"33302:18:20","nodeType":"YulExpressionStatement","src":"33302:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"owner","nativeSrc":"33119:5:20","nodeType":"YulIdentifier","src":"33119:5:20"},{"arguments":[{"name":"owner","nativeSrc":"33129:5:20","nodeType":"YulIdentifier","src":"33129:5:20"},{"name":"from","nativeSrc":"33136:4:20","nodeType":"YulIdentifier","src":"33136:4:20"}],"functionName":{"name":"eq","nativeSrc":"33126:2:20","nodeType":"YulIdentifier","src":"33126:2:20"},"nativeSrc":"33126:15:20","nodeType":"YulFunctionCall","src":"33126:15:20"}],"functionName":{"name":"mul","nativeSrc":"33115:3:20","nodeType":"YulIdentifier","src":"33115:3:20"},"nativeSrc":"33115:27:20","nodeType":"YulFunctionCall","src":"33115:27:20"}],"functionName":{"name":"iszero","nativeSrc":"33108:6:20","nodeType":"YulIdentifier","src":"33108:6:20"},"nativeSrc":"33108:35:20","nodeType":"YulFunctionCall","src":"33108:35:20"},"nativeSrc":"33105:229:20","nodeType":"YulIf","src":"33105:229:20"},{"nativeSrc":"33406:704:20","nodeType":"YulBlock","src":"33406:704:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33431:4:20","nodeType":"YulLiteral","src":"33431:4:20","type":"","value":"0x00"},{"name":"from","nativeSrc":"33437:4:20","nodeType":"YulIdentifier","src":"33437:4:20"}],"functionName":{"name":"mstore","nativeSrc":"33424:6:20","nodeType":"YulIdentifier","src":"33424:6:20"},"nativeSrc":"33424:18:20","nodeType":"YulFunctionCall","src":"33424:18:20"},"nativeSrc":"33424:18:20","nodeType":"YulExpressionStatement","src":"33424:18:20"},{"nativeSrc":"33459:51:20","nodeType":"YulVariableDeclaration","src":"33459:51:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33492:1:20","nodeType":"YulLiteral","src":"33492:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"33495:13:20","nodeType":"YulIdentifier","src":"33495:13:20"}],"functionName":{"name":"add","nativeSrc":"33488:3:20","nodeType":"YulIdentifier","src":"33488:3:20"},"nativeSrc":"33488:21:20","nodeType":"YulFunctionCall","src":"33488:21:20"}],"functionName":{"name":"sload","nativeSrc":"33482:5:20","nodeType":"YulIdentifier","src":"33482:5:20"},"nativeSrc":"33482:28:20","nodeType":"YulFunctionCall","src":"33482:28:20"},"variables":[{"name":"approvedAddress","nativeSrc":"33463:15:20","nodeType":"YulTypedName","src":"33463:15:20","type":""}]},{"body":{"nativeSrc":"33746:223:20","nodeType":"YulBlock","src":"33746:223:20","statements":[{"body":{"nativeSrc":"33808:143:20","nodeType":"YulBlock","src":"33808:143:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33841:4:20","nodeType":"YulLiteral","src":"33841:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"33847:10:20","nodeType":"YulLiteral","src":"33847:10:20","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"33834:6:20","nodeType":"YulIdentifier","src":"33834:6:20"},"nativeSrc":"33834:24:20","nodeType":"YulFunctionCall","src":"33834:24:20"},"nativeSrc":"33834:24:20","nodeType":"YulExpressionStatement","src":"33834:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33918:4:20","nodeType":"YulLiteral","src":"33918:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33924:4:20","nodeType":"YulLiteral","src":"33924:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33911:6:20","nodeType":"YulIdentifier","src":"33911:6:20"},"nativeSrc":"33911:18:20","nodeType":"YulFunctionCall","src":"33911:18:20"},"nativeSrc":"33911:18:20","nodeType":"YulExpressionStatement","src":"33911:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33794:4:20","nodeType":"YulLiteral","src":"33794:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"33800:4:20","nodeType":"YulLiteral","src":"33800:4:20","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"33784:9:20","nodeType":"YulIdentifier","src":"33784:9:20"},"nativeSrc":"33784:21:20","nodeType":"YulFunctionCall","src":"33784:21:20"}],"functionName":{"name":"sload","nativeSrc":"33778:5:20","nodeType":"YulIdentifier","src":"33778:5:20"},"nativeSrc":"33778:28:20","nodeType":"YulFunctionCall","src":"33778:28:20"}],"functionName":{"name":"iszero","nativeSrc":"33771:6:20","nodeType":"YulIdentifier","src":"33771:6:20"},"nativeSrc":"33771:36:20","nodeType":"YulFunctionCall","src":"33771:36:20"},"nativeSrc":"33768:183:20","nodeType":"YulIf","src":"33768:183:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"33697:2:20","nodeType":"YulIdentifier","src":"33697:2:20"}],"functionName":{"name":"iszero","nativeSrc":"33690:6:20","nodeType":"YulIdentifier","src":"33690:6:20"},"nativeSrc":"33690:10:20","nodeType":"YulFunctionCall","src":"33690:10:20"},{"arguments":[{"arguments":[{"name":"by","nativeSrc":"33708:2:20","nodeType":"YulIdentifier","src":"33708:2:20"},{"name":"from","nativeSrc":"33712:4:20","nodeType":"YulIdentifier","src":"33712:4:20"}],"functionName":{"name":"eq","nativeSrc":"33705:2:20","nodeType":"YulIdentifier","src":"33705:2:20"},"nativeSrc":"33705:12:20","nodeType":"YulFunctionCall","src":"33705:12:20"},{"arguments":[{"name":"by","nativeSrc":"33722:2:20","nodeType":"YulIdentifier","src":"33722:2:20"},{"name":"approvedAddress","nativeSrc":"33726:15:20","nodeType":"YulIdentifier","src":"33726:15:20"}],"functionName":{"name":"eq","nativeSrc":"33719:2:20","nodeType":"YulIdentifier","src":"33719:2:20"},"nativeSrc":"33719:23:20","nodeType":"YulFunctionCall","src":"33719:23:20"}],"functionName":{"name":"or","nativeSrc":"33702:2:20","nodeType":"YulIdentifier","src":"33702:2:20"},"nativeSrc":"33702:41:20","nodeType":"YulFunctionCall","src":"33702:41:20"}],"functionName":{"name":"or","nativeSrc":"33687:2:20","nodeType":"YulIdentifier","src":"33687:2:20"},"nativeSrc":"33687:57:20","nodeType":"YulFunctionCall","src":"33687:57:20"}],"functionName":{"name":"iszero","nativeSrc":"33680:6:20","nodeType":"YulIdentifier","src":"33680:6:20"},"nativeSrc":"33680:65:20","nodeType":"YulFunctionCall","src":"33680:65:20"},"nativeSrc":"33677:292:20","nodeType":"YulIf","src":"33677:292:20"},{"body":{"nativeSrc":"34060:36:20","nodeType":"YulBlock","src":"34060:36:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34073:1:20","nodeType":"YulLiteral","src":"34073:1:20","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"34076:13:20","nodeType":"YulIdentifier","src":"34076:13:20"}],"functionName":{"name":"add","nativeSrc":"34069:3:20","nodeType":"YulIdentifier","src":"34069:3:20"},"nativeSrc":"34069:21:20","nodeType":"YulFunctionCall","src":"34069:21:20"},{"kind":"number","nativeSrc":"34092:1:20","nodeType":"YulLiteral","src":"34092:1:20","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"34062:6:20","nodeType":"YulIdentifier","src":"34062:6:20"},"nativeSrc":"34062:32:20","nodeType":"YulFunctionCall","src":"34062:32:20"},"nativeSrc":"34062:32:20","nodeType":"YulExpressionStatement","src":"34062:32:20"}]},"condition":{"name":"approvedAddress","nativeSrc":"34044:15:20","nodeType":"YulIdentifier","src":"34044:15:20"},"nativeSrc":"34041:55:20","nodeType":"YulIf","src":"34041:55:20"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"34172:13:20","nodeType":"YulIdentifier","src":"34172:13:20"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"34191:15:20","nodeType":"YulIdentifier","src":"34191:15:20"},{"arguments":[{"name":"from","nativeSrc":"34212:4:20","nodeType":"YulIdentifier","src":"34212:4:20"},{"name":"to","nativeSrc":"34218:2:20","nodeType":"YulIdentifier","src":"34218:2:20"}],"functionName":{"name":"xor","nativeSrc":"34208:3:20","nodeType":"YulIdentifier","src":"34208:3:20"},"nativeSrc":"34208:13:20","nodeType":"YulFunctionCall","src":"34208:13:20"}],"functionName":{"name":"xor","nativeSrc":"34187:3:20","nodeType":"YulIdentifier","src":"34187:3:20"},"nativeSrc":"34187:35:20","nodeType":"YulFunctionCall","src":"34187:35:20"}],"functionName":{"name":"sstore","nativeSrc":"34165:6:20","nodeType":"YulIdentifier","src":"34165:6:20"},"nativeSrc":"34165:58:20","nodeType":"YulFunctionCall","src":"34165:58:20"},"nativeSrc":"34165:58:20","nodeType":"YulExpressionStatement","src":"34165:58:20"},{"nativeSrc":"34284:148:20","nodeType":"YulBlock","src":"34284:148:20","statements":[{"nativeSrc":"34302:44:20","nodeType":"YulVariableDeclaration","src":"34302:44:20","value":{"arguments":[{"kind":"number","nativeSrc":"34335:4:20","nodeType":"YulLiteral","src":"34335:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"34341:4:20","nodeType":"YulLiteral","src":"34341:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"34325:9:20","nodeType":"YulIdentifier","src":"34325:9:20"},"nativeSrc":"34325:21:20","nodeType":"YulFunctionCall","src":"34325:21:20"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"34306:15:20","nodeType":"YulTypedName","src":"34306:15:20","type":""}]},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"34370:15:20","nodeType":"YulIdentifier","src":"34370:15:20"},{"arguments":[{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"34397:15:20","nodeType":"YulIdentifier","src":"34397:15:20"}],"functionName":{"name":"sload","nativeSrc":"34391:5:20","nodeType":"YulIdentifier","src":"34391:5:20"},"nativeSrc":"34391:22:20","nodeType":"YulFunctionCall","src":"34391:22:20"},{"kind":"number","nativeSrc":"34415:1:20","nodeType":"YulLiteral","src":"34415:1:20","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"34387:3:20","nodeType":"YulIdentifier","src":"34387:3:20"},"nativeSrc":"34387:30:20","nodeType":"YulFunctionCall","src":"34387:30:20"}],"functionName":{"name":"sstore","nativeSrc":"34363:6:20","nodeType":"YulIdentifier","src":"34363:6:20"},"nativeSrc":"34363:55:20","nodeType":"YulFunctionCall","src":"34363:55:20"},"nativeSrc":"34363:55:20","nodeType":"YulExpressionStatement","src":"34363:55:20"}]},{"nativeSrc":"34491:617:20","nodeType":"YulBlock","src":"34491:617:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34516:4:20","nodeType":"YulLiteral","src":"34516:4:20","type":"","value":"0x00"},{"name":"to","nativeSrc":"34522:2:20","nodeType":"YulIdentifier","src":"34522:2:20"}],"functionName":{"name":"mstore","nativeSrc":"34509:6:20","nodeType":"YulIdentifier","src":"34509:6:20"},"nativeSrc":"34509:16:20","nodeType":"YulFunctionCall","src":"34509:16:20"},"nativeSrc":"34509:16:20","nodeType":"YulExpressionStatement","src":"34509:16:20"},{"nativeSrc":"34542:42:20","nodeType":"YulVariableDeclaration","src":"34542:42:20","value":{"arguments":[{"kind":"number","nativeSrc":"34573:4:20","nodeType":"YulLiteral","src":"34573:4:20","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"34579:4:20","nodeType":"YulLiteral","src":"34579:4:20","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"34563:9:20","nodeType":"YulIdentifier","src":"34563:9:20"},"nativeSrc":"34563:21:20","nodeType":"YulFunctionCall","src":"34563:21:20"},"variables":[{"name":"toBalanceSlot","nativeSrc":"34546:13:20","nodeType":"YulTypedName","src":"34546:13:20","type":""}]},{"nativeSrc":"34601:55:20","nodeType":"YulVariableDeclaration","src":"34601:55:20","value":{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"34638:13:20","nodeType":"YulIdentifier","src":"34638:13:20"}],"functionName":{"name":"sload","nativeSrc":"34632:5:20","nodeType":"YulIdentifier","src":"34632:5:20"},"nativeSrc":"34632:20:20","nodeType":"YulFunctionCall","src":"34632:20:20"},{"kind":"number","nativeSrc":"34654:1:20","nodeType":"YulLiteral","src":"34654:1:20","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"34628:3:20","nodeType":"YulIdentifier","src":"34628:3:20"},"nativeSrc":"34628:28:20","nodeType":"YulFunctionCall","src":"34628:28:20"},"variables":[{"name":"toBalanceSlotPacked","nativeSrc":"34605:19:20","nodeType":"YulTypedName","src":"34605:19:20","type":""}]},{"body":{"nativeSrc":"34832:203:20","nodeType":"YulBlock","src":"34832:203:20","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34943:1:20","nodeType":"YulLiteral","src":"34943:1:20","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"34953:2:20","nodeType":"YulIdentifier","src":"34953:2:20"}],"functionName":{"name":"iszero","nativeSrc":"34946:6:20","nodeType":"YulIdentifier","src":"34946:6:20"},"nativeSrc":"34946:10:20","nodeType":"YulFunctionCall","src":"34946:10:20"}],"functionName":{"name":"shl","nativeSrc":"34939:3:20","nodeType":"YulIdentifier","src":"34939:3:20"},"nativeSrc":"34939:18:20","nodeType":"YulFunctionCall","src":"34939:18:20"},{"kind":"number","nativeSrc":"34959:18:20","nodeType":"YulLiteral","src":"34959:18:20","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"34932:6:20","nodeType":"YulIdentifier","src":"34932:6:20"},"nativeSrc":"34932:46:20","nodeType":"YulFunctionCall","src":"34932:46:20"},"nativeSrc":"34932:46:20","nodeType":"YulExpressionStatement","src":"34932:46:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35006:4:20","nodeType":"YulLiteral","src":"35006:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"35012:4:20","nodeType":"YulLiteral","src":"35012:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"34999:6:20","nodeType":"YulIdentifier","src":"34999:6:20"},"nativeSrc":"34999:18:20","nodeType":"YulFunctionCall","src":"34999:18:20"},"nativeSrc":"34999:18:20","nodeType":"YulExpressionStatement","src":"34999:18:20"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"34779:2:20","nodeType":"YulIdentifier","src":"34779:2:20"},{"arguments":[{"name":"toBalanceSlotPacked","nativeSrc":"34787:19:20","nodeType":"YulIdentifier","src":"34787:19:20"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"34808:20:20","nodeType":"YulIdentifier","src":"34808:20:20"}],"functionName":{"name":"and","nativeSrc":"34783:3:20","nodeType":"YulIdentifier","src":"34783:3:20"},"nativeSrc":"34783:46:20","nodeType":"YulFunctionCall","src":"34783:46:20"}],"functionName":{"name":"mul","nativeSrc":"34775:3:20","nodeType":"YulIdentifier","src":"34775:3:20"},"nativeSrc":"34775:55:20","nodeType":"YulFunctionCall","src":"34775:55:20"}],"functionName":{"name":"iszero","nativeSrc":"34768:6:20","nodeType":"YulIdentifier","src":"34768:6:20"},"nativeSrc":"34768:63:20","nodeType":"YulFunctionCall","src":"34768:63:20"},"nativeSrc":"34765:270:20","nodeType":"YulIf","src":"34765:270:20"},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"35059:13:20","nodeType":"YulIdentifier","src":"35059:13:20"},{"name":"toBalanceSlotPacked","nativeSrc":"35074:19:20","nodeType":"YulIdentifier","src":"35074:19:20"}],"functionName":{"name":"sstore","nativeSrc":"35052:6:20","nodeType":"YulIdentifier","src":"35052:6:20"},"nativeSrc":"35052:42:20","nodeType":"YulFunctionCall","src":"35052:42:20"},"nativeSrc":"35052:42:20","nodeType":"YulExpressionStatement","src":"35052:42:20"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"35168:8:20","nodeType":"YulIdentifier","src":"35168:8:20"},"nativeSrc":"35168:10:20","nodeType":"YulFunctionCall","src":"35168:10:20"},{"kind":"number","nativeSrc":"35180:4:20","nodeType":"YulLiteral","src":"35180:4:20","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"35186:25:20","nodeType":"YulIdentifier","src":"35186:25:20"},{"name":"from","nativeSrc":"35213:4:20","nodeType":"YulIdentifier","src":"35213:4:20"},{"name":"to","nativeSrc":"35219:2:20","nodeType":"YulIdentifier","src":"35219:2:20"},{"name":"id","nativeSrc":"35223:2:20","nodeType":"YulIdentifier","src":"35223:2:20"}],"functionName":{"name":"log4","nativeSrc":"35163:4:20","nodeType":"YulIdentifier","src":"35163:4:20"},"nativeSrc":"35163:63:20","nodeType":"YulFunctionCall","src":"35163:63:20"},"nativeSrc":"35163:63:20","nodeType":"YulExpressionStatement","src":"35163:63:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8445,"isOffset":false,"isSlot":false,"src":"32789:24:20","valueSize":1},{"declaration":8376,"isOffset":false,"isSlot":false,"src":"34808:20:20","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"35186:25:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"32662:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"32688:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"32815:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"33697:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"33708:2:20","valueSize":1},{"declaration":8935,"isOffset":false,"isSlot":false,"src":"33722:2:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"32574:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"32602:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"33136:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"33437:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"33712:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"34212:4:20","valueSize":1},{"declaration":8937,"isOffset":false,"isSlot":false,"src":"35213:4:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"32757:2:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"32857:2:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"32865:2:20","valueSize":1},{"declaration":8941,"isOffset":false,"isSlot":false,"src":"35223:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"32620:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"32646:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34218:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34522:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34779:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"34953:2:20","valueSize":1},{"declaration":8939,"isOffset":false,"isSlot":false,"src":"35219:2:20","valueSize":1}],"id":8950,"nodeType":"InlineAssembly","src":"32461:2775:20"},{"expression":{"arguments":[{"id":8952,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8937,"src":"35265:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8953,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8939,"src":"35271:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8954,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"35275:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8951,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"35245:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35245:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8956,"nodeType":"ExpressionStatement","src":"35245:33:20"}]},"documentation":{"id":8933,"nodeType":"StructuredDocumentation","src":"31894:379:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"id":8958,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"32287:9:20","nodeType":"FunctionDefinition","parameters":{"id":8942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8935,"mutability":"mutable","name":"by","nameLocation":"32305:2:20","nodeType":"VariableDeclaration","scope":8958,"src":"32297:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8934,"name":"address","nodeType":"ElementaryTypeName","src":"32297:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8937,"mutability":"mutable","name":"from","nameLocation":"32317:4:20","nodeType":"VariableDeclaration","scope":8958,"src":"32309:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8936,"name":"address","nodeType":"ElementaryTypeName","src":"32309:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8939,"mutability":"mutable","name":"to","nameLocation":"32331:2:20","nodeType":"VariableDeclaration","scope":8958,"src":"32323:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8938,"name":"address","nodeType":"ElementaryTypeName","src":"32323:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8941,"mutability":"mutable","name":"id","nameLocation":"32343:2:20","nodeType":"VariableDeclaration","scope":8958,"src":"32335:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8940,"name":"uint256","nodeType":"ElementaryTypeName","src":"32335:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32296:50:20"},"returnParameters":{"id":8943,"nodeType":"ParameterList","parameters":[],"src":"32364:0:20"},"scope":9111,"src":"32278:3007:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8975,"nodeType":"Block","src":"35431:48:20","statements":[{"expression":{"arguments":[{"id":8969,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8961,"src":"35455:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8970,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8963,"src":"35461:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8971,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8965,"src":"35465:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35469:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":8968,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[8976,9010,9031,9064],"referencedDeclaration":9010,"src":"35441:13:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":8973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35441:31:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8974,"nodeType":"ExpressionStatement","src":"35441:31:20"}]},"documentation":{"id":8959,"nodeType":"StructuredDocumentation","src":"35291:57:20","text":"@dev Equivalent to `_safeTransfer(from, to, id, \"\")`."},"id":8976,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"35362:13:20","nodeType":"FunctionDefinition","parameters":{"id":8966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8961,"mutability":"mutable","name":"from","nameLocation":"35384:4:20","nodeType":"VariableDeclaration","scope":8976,"src":"35376:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8960,"name":"address","nodeType":"ElementaryTypeName","src":"35376:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8963,"mutability":"mutable","name":"to","nameLocation":"35398:2:20","nodeType":"VariableDeclaration","scope":8976,"src":"35390:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8962,"name":"address","nodeType":"ElementaryTypeName","src":"35390:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8965,"mutability":"mutable","name":"id","nameLocation":"35410:2:20","nodeType":"VariableDeclaration","scope":8976,"src":"35402:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8964,"name":"uint256","nodeType":"ElementaryTypeName","src":"35402:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35375:38:20"},"returnParameters":{"id":8967,"nodeType":"ParameterList","parameters":[],"src":"35431:0:20"},"scope":9111,"src":"35353:126:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9009,"nodeType":"Block","src":"36099:122:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36127:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36119:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8989,"name":"address","nodeType":"ElementaryTypeName","src":"36119:7:20","typeDescriptions":{}}},"id":8992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36119:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8993,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"36131:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8994,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"36137:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8995,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"36141:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8988,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8932,8958],"referencedDeclaration":8958,"src":"36109:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":8996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36109:35:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8997,"nodeType":"ExpressionStatement","src":"36109:35:20"},{"condition":{"arguments":[{"id":8999,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"36167:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8998,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"36158:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36158:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9008,"nodeType":"IfStatement","src":"36154:60:20","trueBody":{"expression":{"arguments":[{"id":9002,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"36195:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9003,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"36201:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9004,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"36205:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9005,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"36209:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9001,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"36172:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36172:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9007,"nodeType":"ExpressionStatement","src":"36172:42:20"}}]},"documentation":{"id":8977,"nodeType":"StructuredDocumentation","src":"35485:492:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9010,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"35991:13:20","nodeType":"FunctionDefinition","parameters":{"id":8986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8979,"mutability":"mutable","name":"from","nameLocation":"36013:4:20","nodeType":"VariableDeclaration","scope":9010,"src":"36005:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8978,"name":"address","nodeType":"ElementaryTypeName","src":"36005:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8981,"mutability":"mutable","name":"to","nameLocation":"36027:2:20","nodeType":"VariableDeclaration","scope":9010,"src":"36019:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8980,"name":"address","nodeType":"ElementaryTypeName","src":"36019:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8983,"mutability":"mutable","name":"id","nameLocation":"36039:2:20","nodeType":"VariableDeclaration","scope":9010,"src":"36031:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8982,"name":"uint256","nodeType":"ElementaryTypeName","src":"36031:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8985,"mutability":"mutable","name":"data","nameLocation":"36056:4:20","nodeType":"VariableDeclaration","scope":9010,"src":"36043:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8984,"name":"bytes","nodeType":"ElementaryTypeName","src":"36043:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36004:57:20"},"returnParameters":{"id":8987,"nodeType":"ParameterList","parameters":[],"src":"36099:0:20"},"scope":9111,"src":"35982:239:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9030,"nodeType":"Block","src":"36383:52:20","statements":[{"expression":{"arguments":[{"id":9023,"name":"by","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9013,"src":"36407:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9024,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9015,"src":"36411:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9025,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9017,"src":"36417:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9026,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9019,"src":"36421:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":9027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36425:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9022,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[8976,9010,9031,9064],"referencedDeclaration":9064,"src":"36393:13:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":9028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36393:35:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9029,"nodeType":"ExpressionStatement","src":"36393:35:20"}]},"documentation":{"id":9011,"nodeType":"StructuredDocumentation","src":"36227:61:20","text":"@dev Equivalent to `_safeTransfer(by, from, to, id, \"\")`."},"id":9031,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"36302:13:20","nodeType":"FunctionDefinition","parameters":{"id":9020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9013,"mutability":"mutable","name":"by","nameLocation":"36324:2:20","nodeType":"VariableDeclaration","scope":9031,"src":"36316:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9012,"name":"address","nodeType":"ElementaryTypeName","src":"36316:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9015,"mutability":"mutable","name":"from","nameLocation":"36336:4:20","nodeType":"VariableDeclaration","scope":9031,"src":"36328:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9014,"name":"address","nodeType":"ElementaryTypeName","src":"36328:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9017,"mutability":"mutable","name":"to","nameLocation":"36350:2:20","nodeType":"VariableDeclaration","scope":9031,"src":"36342:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9016,"name":"address","nodeType":"ElementaryTypeName","src":"36342:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9019,"mutability":"mutable","name":"id","nameLocation":"36362:2:20","nodeType":"VariableDeclaration","scope":9031,"src":"36354:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9018,"name":"uint256","nodeType":"ElementaryTypeName","src":"36354:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36315:50:20"},"returnParameters":{"id":9021,"nodeType":"ParameterList","parameters":[],"src":"36383:0:20"},"scope":9111,"src":"36293:142:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9063,"nodeType":"Block","src":"37102:114:20","statements":[{"expression":{"arguments":[{"id":9046,"name":"by","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9034,"src":"37122:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9047,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"37126:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9048,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"37132:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9049,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9040,"src":"37136:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9045,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8932,8958],"referencedDeclaration":8958,"src":"37112:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":9050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37112:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9051,"nodeType":"ExpressionStatement","src":"37112:27:20"},{"condition":{"arguments":[{"id":9053,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"37162:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9052,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"37153:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37153:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9062,"nodeType":"IfStatement","src":"37149:60:20","trueBody":{"expression":{"arguments":[{"id":9056,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"37190:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9057,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"37196:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9058,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9040,"src":"37200:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9059,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9042,"src":"37204:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9055,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"37167:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37167:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9061,"nodeType":"ExpressionStatement","src":"37167:42:20"}}]},"documentation":{"id":9032,"nodeType":"StructuredDocumentation","src":"36441:527:20","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9064,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"36982:13:20","nodeType":"FunctionDefinition","parameters":{"id":9043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9034,"mutability":"mutable","name":"by","nameLocation":"37004:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"36996:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9033,"name":"address","nodeType":"ElementaryTypeName","src":"36996:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9036,"mutability":"mutable","name":"from","nameLocation":"37016:4:20","nodeType":"VariableDeclaration","scope":9064,"src":"37008:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9035,"name":"address","nodeType":"ElementaryTypeName","src":"37008:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9038,"mutability":"mutable","name":"to","nameLocation":"37030:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37022:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9037,"name":"address","nodeType":"ElementaryTypeName","src":"37022:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9040,"mutability":"mutable","name":"id","nameLocation":"37042:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37034:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9039,"name":"uint256","nodeType":"ElementaryTypeName","src":"37034:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9042,"mutability":"mutable","name":"data","nameLocation":"37059:4:20","nodeType":"VariableDeclaration","scope":9064,"src":"37046:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9041,"name":"bytes","nodeType":"ElementaryTypeName","src":"37046:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36995:69:20"},"returnParameters":{"id":9044,"nodeType":"ParameterList","parameters":[],"src":"37102:0:20"},"scope":9111,"src":"36973:243:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9074,"nodeType":"Block","src":"37682:2:20","statements":[]},"documentation":{"id":9065,"nodeType":"StructuredDocumentation","src":"37505:87:20","text":"@dev Hook that is called before any token transfers, including minting and burning."},"id":9075,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"37606:20:20","nodeType":"FunctionDefinition","parameters":{"id":9072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9067,"mutability":"mutable","name":"from","nameLocation":"37635:4:20","nodeType":"VariableDeclaration","scope":9075,"src":"37627:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9066,"name":"address","nodeType":"ElementaryTypeName","src":"37627:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9069,"mutability":"mutable","name":"to","nameLocation":"37649:2:20","nodeType":"VariableDeclaration","scope":9075,"src":"37641:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9068,"name":"address","nodeType":"ElementaryTypeName","src":"37641:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9071,"mutability":"mutable","name":"id","nameLocation":"37661:2:20","nodeType":"VariableDeclaration","scope":9075,"src":"37653:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9070,"name":"uint256","nodeType":"ElementaryTypeName","src":"37653:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37626:38:20"},"returnParameters":{"id":9073,"nodeType":"ParameterList","parameters":[],"src":"37682:0:20"},"scope":9111,"src":"37597:87:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9085,"nodeType":"Block","src":"37865:2:20","statements":[]},"documentation":{"id":9076,"nodeType":"StructuredDocumentation","src":"37690:86:20","text":"@dev Hook that is called after any token transfers, including minting and burning."},"id":9086,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"37790:19:20","nodeType":"FunctionDefinition","parameters":{"id":9083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"from","nameLocation":"37818:4:20","nodeType":"VariableDeclaration","scope":9086,"src":"37810:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9077,"name":"address","nodeType":"ElementaryTypeName","src":"37810:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9080,"mutability":"mutable","name":"to","nameLocation":"37832:2:20","nodeType":"VariableDeclaration","scope":9086,"src":"37824:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9079,"name":"address","nodeType":"ElementaryTypeName","src":"37824:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9082,"mutability":"mutable","name":"id","nameLocation":"37844:2:20","nodeType":"VariableDeclaration","scope":9086,"src":"37836:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9081,"name":"uint256","nodeType":"ElementaryTypeName","src":"37836:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37809:38:20"},"returnParameters":{"id":9084,"nodeType":"ParameterList","parameters":[],"src":"37865:0:20"},"scope":9111,"src":"37781:86:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9095,"nodeType":"Block","src":"38281:148:20","statements":[{"AST":{"nativeSrc":"38343:80:20","nodeType":"YulBlock","src":"38343:80:20","statements":[{"nativeSrc":"38357:24:20","nodeType":"YulAssignment","src":"38357:24:20","value":{"arguments":[{"name":"a","nativeSrc":"38379:1:20","nodeType":"YulIdentifier","src":"38379:1:20"}],"functionName":{"name":"extcodesize","nativeSrc":"38367:11:20","nodeType":"YulIdentifier","src":"38367:11:20"},"nativeSrc":"38367:14:20","nodeType":"YulFunctionCall","src":"38367:14:20"},"variableNames":[{"name":"result","nativeSrc":"38357:6:20","nodeType":"YulIdentifier","src":"38357:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9089,"isOffset":false,"isSlot":false,"src":"38379:1:20","valueSize":1},{"declaration":9092,"isOffset":false,"isSlot":false,"src":"38357:6:20","valueSize":1}],"id":9094,"nodeType":"InlineAssembly","src":"38334:89:20"}]},"documentation":{"id":9087,"nodeType":"StructuredDocumentation","src":"38156:56:20","text":"@dev Returns if `a` has bytecode of non-zero length."},"id":9096,"implemented":true,"kind":"function","modifiers":[],"name":"_hasCode","nameLocation":"38226:8:20","nodeType":"FunctionDefinition","parameters":{"id":9090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9089,"mutability":"mutable","name":"a","nameLocation":"38243:1:20","nodeType":"VariableDeclaration","scope":9096,"src":"38235:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9088,"name":"address","nodeType":"ElementaryTypeName","src":"38235:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38234:11:20"},"returnParameters":{"id":9093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9092,"mutability":"mutable","name":"result","nameLocation":"38273:6:20","nodeType":"VariableDeclaration","scope":9096,"src":"38268:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9091,"name":"bool","nodeType":"ElementaryTypeName","src":"38268:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38267:13:20"},"scope":9111,"src":"38217:212:20","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":9109,"nodeType":"Block","src":"38697:1261:20","statements":[{"AST":{"nativeSrc":"38759:1193:20","nodeType":"YulBlock","src":"38759:1193:20","statements":[{"nativeSrc":"38810:20:20","nodeType":"YulVariableDeclaration","src":"38810:20:20","value":{"arguments":[{"kind":"number","nativeSrc":"38825:4:20","nodeType":"YulLiteral","src":"38825:4:20","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"38819:5:20","nodeType":"YulIdentifier","src":"38819:5:20"},"nativeSrc":"38819:11:20","nodeType":"YulFunctionCall","src":"38819:11:20"},"variables":[{"name":"m","nativeSrc":"38814:1:20","nodeType":"YulTypedName","src":"38814:1:20","type":""}]},{"nativeSrc":"38843:42:20","nodeType":"YulVariableDeclaration","src":"38843:42:20","value":{"kind":"number","nativeSrc":"38875:10:20","nodeType":"YulLiteral","src":"38875:10:20","type":"","value":"0x150b7a02"},"variables":[{"name":"onERC721ReceivedSelector","nativeSrc":"38847:24:20","nodeType":"YulTypedName","src":"38847:24:20","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"38905:1:20","nodeType":"YulIdentifier","src":"38905:1:20"},{"name":"onERC721ReceivedSelector","nativeSrc":"38908:24:20","nodeType":"YulIdentifier","src":"38908:24:20"}],"functionName":{"name":"mstore","nativeSrc":"38898:6:20","nodeType":"YulIdentifier","src":"38898:6:20"},"nativeSrc":"38898:35:20","nodeType":"YulFunctionCall","src":"38898:35:20"},"nativeSrc":"38898:35:20","nodeType":"YulExpressionStatement","src":"38898:35:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"38957:1:20","nodeType":"YulIdentifier","src":"38957:1:20"},{"kind":"number","nativeSrc":"38960:4:20","nodeType":"YulLiteral","src":"38960:4:20","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38953:3:20","nodeType":"YulIdentifier","src":"38953:3:20"},"nativeSrc":"38953:12:20","nodeType":"YulFunctionCall","src":"38953:12:20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"38967:6:20","nodeType":"YulIdentifier","src":"38967:6:20"},"nativeSrc":"38967:8:20","nodeType":"YulFunctionCall","src":"38967:8:20"}],"functionName":{"name":"mstore","nativeSrc":"38946:6:20","nodeType":"YulIdentifier","src":"38946:6:20"},"nativeSrc":"38946:30:20","nodeType":"YulFunctionCall","src":"38946:30:20"},"nativeSrc":"38946:30:20","nodeType":"YulExpressionStatement","src":"38946:30:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39049:1:20","nodeType":"YulIdentifier","src":"39049:1:20"},{"kind":"number","nativeSrc":"39052:4:20","nodeType":"YulLiteral","src":"39052:4:20","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"39045:3:20","nodeType":"YulIdentifier","src":"39045:3:20"},"nativeSrc":"39045:12:20","nodeType":"YulFunctionCall","src":"39045:12:20"},{"arguments":[{"kind":"number","nativeSrc":"39063:2:20","nodeType":"YulLiteral","src":"39063:2:20","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"39071:2:20","nodeType":"YulLiteral","src":"39071:2:20","type":"","value":"96"},{"name":"from","nativeSrc":"39075:4:20","nodeType":"YulIdentifier","src":"39075:4:20"}],"functionName":{"name":"shl","nativeSrc":"39067:3:20","nodeType":"YulIdentifier","src":"39067:3:20"},"nativeSrc":"39067:13:20","nodeType":"YulFunctionCall","src":"39067:13:20"}],"functionName":{"name":"shr","nativeSrc":"39059:3:20","nodeType":"YulIdentifier","src":"39059:3:20"},"nativeSrc":"39059:22:20","nodeType":"YulFunctionCall","src":"39059:22:20"}],"functionName":{"name":"mstore","nativeSrc":"39038:6:20","nodeType":"YulIdentifier","src":"39038:6:20"},"nativeSrc":"39038:44:20","nodeType":"YulFunctionCall","src":"39038:44:20"},"nativeSrc":"39038:44:20","nodeType":"YulExpressionStatement","src":"39038:44:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39106:1:20","nodeType":"YulIdentifier","src":"39106:1:20"},{"kind":"number","nativeSrc":"39109:4:20","nodeType":"YulLiteral","src":"39109:4:20","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"39102:3:20","nodeType":"YulIdentifier","src":"39102:3:20"},"nativeSrc":"39102:12:20","nodeType":"YulFunctionCall","src":"39102:12:20"},{"name":"id","nativeSrc":"39116:2:20","nodeType":"YulIdentifier","src":"39116:2:20"}],"functionName":{"name":"mstore","nativeSrc":"39095:6:20","nodeType":"YulIdentifier","src":"39095:6:20"},"nativeSrc":"39095:24:20","nodeType":"YulFunctionCall","src":"39095:24:20"},"nativeSrc":"39095:24:20","nodeType":"YulExpressionStatement","src":"39095:24:20"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39143:1:20","nodeType":"YulIdentifier","src":"39143:1:20"},{"kind":"number","nativeSrc":"39146:4:20","nodeType":"YulLiteral","src":"39146:4:20","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"39139:3:20","nodeType":"YulIdentifier","src":"39139:3:20"},"nativeSrc":"39139:12:20","nodeType":"YulFunctionCall","src":"39139:12:20"},{"kind":"number","nativeSrc":"39153:4:20","nodeType":"YulLiteral","src":"39153:4:20","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"39132:6:20","nodeType":"YulIdentifier","src":"39132:6:20"},"nativeSrc":"39132:26:20","nodeType":"YulFunctionCall","src":"39132:26:20"},"nativeSrc":"39132:26:20","nodeType":"YulExpressionStatement","src":"39132:26:20"},{"nativeSrc":"39171:20:20","nodeType":"YulVariableDeclaration","src":"39171:20:20","value":{"arguments":[{"name":"data","nativeSrc":"39186:4:20","nodeType":"YulIdentifier","src":"39186:4:20"}],"functionName":{"name":"mload","nativeSrc":"39180:5:20","nodeType":"YulIdentifier","src":"39180:5:20"},"nativeSrc":"39180:11:20","nodeType":"YulFunctionCall","src":"39180:11:20"},"variables":[{"name":"n","nativeSrc":"39175:1:20","nodeType":"YulTypedName","src":"39175:1:20","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39215:1:20","nodeType":"YulIdentifier","src":"39215:1:20"},{"kind":"number","nativeSrc":"39218:4:20","nodeType":"YulLiteral","src":"39218:4:20","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"39211:3:20","nodeType":"YulIdentifier","src":"39211:3:20"},"nativeSrc":"39211:12:20","nodeType":"YulFunctionCall","src":"39211:12:20"},{"name":"n","nativeSrc":"39225:1:20","nodeType":"YulIdentifier","src":"39225:1:20"}],"functionName":{"name":"mstore","nativeSrc":"39204:6:20","nodeType":"YulIdentifier","src":"39204:6:20"},"nativeSrc":"39204:23:20","nodeType":"YulFunctionCall","src":"39204:23:20"},"nativeSrc":"39204:23:20","nodeType":"YulExpressionStatement","src":"39204:23:20"},{"body":{"nativeSrc":"39245:66:20","nodeType":"YulBlock","src":"39245:66:20","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"39262:3:20","nodeType":"YulIdentifier","src":"39262:3:20"},"nativeSrc":"39262:5:20","nodeType":"YulFunctionCall","src":"39262:5:20"},{"kind":"number","nativeSrc":"39269:1:20","nodeType":"YulLiteral","src":"39269:1:20","type":"","value":"4"},{"arguments":[{"name":"data","nativeSrc":"39276:4:20","nodeType":"YulIdentifier","src":"39276:4:20"},{"kind":"number","nativeSrc":"39282:4:20","nodeType":"YulLiteral","src":"39282:4:20","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39272:3:20","nodeType":"YulIdentifier","src":"39272:3:20"},"nativeSrc":"39272:15:20","nodeType":"YulFunctionCall","src":"39272:15:20"},{"name":"n","nativeSrc":"39289:1:20","nodeType":"YulIdentifier","src":"39289:1:20"},{"arguments":[{"name":"m","nativeSrc":"39296:1:20","nodeType":"YulIdentifier","src":"39296:1:20"},{"kind":"number","nativeSrc":"39299:4:20","nodeType":"YulLiteral","src":"39299:4:20","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"39292:3:20","nodeType":"YulIdentifier","src":"39292:3:20"},"nativeSrc":"39292:12:20","nodeType":"YulFunctionCall","src":"39292:12:20"},{"name":"n","nativeSrc":"39306:1:20","nodeType":"YulIdentifier","src":"39306:1:20"}],"functionName":{"name":"staticcall","nativeSrc":"39251:10:20","nodeType":"YulIdentifier","src":"39251:10:20"},"nativeSrc":"39251:57:20","nodeType":"YulFunctionCall","src":"39251:57:20"}],"functionName":{"name":"pop","nativeSrc":"39247:3:20","nodeType":"YulIdentifier","src":"39247:3:20"},"nativeSrc":"39247:62:20","nodeType":"YulFunctionCall","src":"39247:62:20"},"nativeSrc":"39247:62:20","nodeType":"YulExpressionStatement","src":"39247:62:20"}]},"condition":{"name":"n","nativeSrc":"39243:1:20","nodeType":"YulIdentifier","src":"39243:1:20"},"nativeSrc":"39240:71:20","nodeType":"YulIf","src":"39240:71:20"},{"body":{"nativeSrc":"39434:246:20","nodeType":"YulBlock","src":"39434:246:20","statements":[{"body":{"nativeSrc":"39472:194:20","nodeType":"YulBlock","src":"39472:194:20","statements":[{"expression":{"arguments":[{"name":"m","nativeSrc":"39574:1:20","nodeType":"YulIdentifier","src":"39574:1:20"},{"kind":"number","nativeSrc":"39577:4:20","nodeType":"YulLiteral","src":"39577:4:20","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39583:14:20","nodeType":"YulIdentifier","src":"39583:14:20"},"nativeSrc":"39583:16:20","nodeType":"YulFunctionCall","src":"39583:16:20"}],"functionName":{"name":"returndatacopy","nativeSrc":"39559:14:20","nodeType":"YulIdentifier","src":"39559:14:20"},"nativeSrc":"39559:41:20","nodeType":"YulFunctionCall","src":"39559:41:20"},"nativeSrc":"39559:41:20","nodeType":"YulExpressionStatement","src":"39559:41:20"},{"expression":{"arguments":[{"name":"m","nativeSrc":"39628:1:20","nodeType":"YulIdentifier","src":"39628:1:20"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39631:14:20","nodeType":"YulIdentifier","src":"39631:14:20"},"nativeSrc":"39631:16:20","nodeType":"YulFunctionCall","src":"39631:16:20"}],"functionName":{"name":"revert","nativeSrc":"39621:6:20","nodeType":"YulIdentifier","src":"39621:6:20"},"nativeSrc":"39621:27:20","nodeType":"YulFunctionCall","src":"39621:27:20"},"nativeSrc":"39621:27:20","nodeType":"YulExpressionStatement","src":"39621:27:20"}]},"condition":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39455:14:20","nodeType":"YulIdentifier","src":"39455:14:20"},"nativeSrc":"39455:16:20","nodeType":"YulFunctionCall","src":"39455:16:20"},"nativeSrc":"39452:214:20","nodeType":"YulIf","src":"39452:214:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"39382:3:20","nodeType":"YulIdentifier","src":"39382:3:20"},"nativeSrc":"39382:5:20","nodeType":"YulFunctionCall","src":"39382:5:20"},{"name":"to","nativeSrc":"39389:2:20","nodeType":"YulIdentifier","src":"39389:2:20"},{"kind":"number","nativeSrc":"39393:1:20","nodeType":"YulLiteral","src":"39393:1:20","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"39400:1:20","nodeType":"YulIdentifier","src":"39400:1:20"},{"kind":"number","nativeSrc":"39403:4:20","nodeType":"YulLiteral","src":"39403:4:20","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"39396:3:20","nodeType":"YulIdentifier","src":"39396:3:20"},"nativeSrc":"39396:12:20","nodeType":"YulFunctionCall","src":"39396:12:20"},{"arguments":[{"name":"n","nativeSrc":"39414:1:20","nodeType":"YulIdentifier","src":"39414:1:20"},{"kind":"number","nativeSrc":"39417:4:20","nodeType":"YulLiteral","src":"39417:4:20","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"39410:3:20","nodeType":"YulIdentifier","src":"39410:3:20"},"nativeSrc":"39410:12:20","nodeType":"YulFunctionCall","src":"39410:12:20"},{"name":"m","nativeSrc":"39424:1:20","nodeType":"YulIdentifier","src":"39424:1:20"},{"kind":"number","nativeSrc":"39427:4:20","nodeType":"YulLiteral","src":"39427:4:20","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"39377:4:20","nodeType":"YulIdentifier","src":"39377:4:20"},"nativeSrc":"39377:55:20","nodeType":"YulFunctionCall","src":"39377:55:20"}],"functionName":{"name":"iszero","nativeSrc":"39370:6:20","nodeType":"YulIdentifier","src":"39370:6:20"},"nativeSrc":"39370:63:20","nodeType":"YulFunctionCall","src":"39370:63:20"},"nativeSrc":"39367:313:20","nodeType":"YulIf","src":"39367:313:20"},{"body":{"nativeSrc":"39804:138:20","nodeType":"YulBlock","src":"39804:138:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39829:4:20","nodeType":"YulLiteral","src":"39829:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"39835:10:20","nodeType":"YulLiteral","src":"39835:10:20","type":"","value":"0xd1a57ed6"}],"functionName":{"name":"mstore","nativeSrc":"39822:6:20","nodeType":"YulIdentifier","src":"39822:6:20"},"nativeSrc":"39822:24:20","nodeType":"YulFunctionCall","src":"39822:24:20"},"nativeSrc":"39822:24:20","nodeType":"YulExpressionStatement","src":"39822:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39917:4:20","nodeType":"YulLiteral","src":"39917:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"39923:4:20","nodeType":"YulLiteral","src":"39923:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"39910:6:20","nodeType":"YulIdentifier","src":"39910:6:20"},"nativeSrc":"39910:18:20","nodeType":"YulFunctionCall","src":"39910:18:20"},"nativeSrc":"39910:18:20","nodeType":"YulExpressionStatement","src":"39910:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39763:1:20","nodeType":"YulIdentifier","src":"39763:1:20"}],"functionName":{"name":"mload","nativeSrc":"39757:5:20","nodeType":"YulIdentifier","src":"39757:5:20"},"nativeSrc":"39757:8:20","nodeType":"YulFunctionCall","src":"39757:8:20"},{"arguments":[{"kind":"number","nativeSrc":"39771:3:20","nodeType":"YulLiteral","src":"39771:3:20","type":"","value":"224"},{"name":"onERC721ReceivedSelector","nativeSrc":"39776:24:20","nodeType":"YulIdentifier","src":"39776:24:20"}],"functionName":{"name":"shl","nativeSrc":"39767:3:20","nodeType":"YulIdentifier","src":"39767:3:20"},"nativeSrc":"39767:34:20","nodeType":"YulFunctionCall","src":"39767:34:20"}],"functionName":{"name":"eq","nativeSrc":"39754:2:20","nodeType":"YulIdentifier","src":"39754:2:20"},"nativeSrc":"39754:48:20","nodeType":"YulFunctionCall","src":"39754:48:20"}],"functionName":{"name":"iszero","nativeSrc":"39747:6:20","nodeType":"YulIdentifier","src":"39747:6:20"},"nativeSrc":"39747:56:20","nodeType":"YulFunctionCall","src":"39747:56:20"},"nativeSrc":"39744:198:20","nodeType":"YulIf","src":"39744:198:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9105,"isOffset":false,"isSlot":false,"src":"39186:4:20","valueSize":1},{"declaration":9105,"isOffset":false,"isSlot":false,"src":"39276:4:20","valueSize":1},{"declaration":9099,"isOffset":false,"isSlot":false,"src":"39075:4:20","valueSize":1},{"declaration":9103,"isOffset":false,"isSlot":false,"src":"39116:2:20","valueSize":1},{"declaration":9101,"isOffset":false,"isSlot":false,"src":"39389:2:20","valueSize":1}],"id":9108,"nodeType":"InlineAssembly","src":"38750:1202:20"}]},"documentation":{"id":9097,"nodeType":"StructuredDocumentation","src":"38435:148:20","text":"@dev Perform a call to invoke {IERC721Receiver-onERC721Received} on `to`.\n Reverts if the target does not support the function correctly."},"id":9110,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"38597:22:20","nodeType":"FunctionDefinition","parameters":{"id":9106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9099,"mutability":"mutable","name":"from","nameLocation":"38628:4:20","nodeType":"VariableDeclaration","scope":9110,"src":"38620:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9098,"name":"address","nodeType":"ElementaryTypeName","src":"38620:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9101,"mutability":"mutable","name":"to","nameLocation":"38642:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"38634:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9100,"name":"address","nodeType":"ElementaryTypeName","src":"38634:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9103,"mutability":"mutable","name":"id","nameLocation":"38654:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"38646:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9102,"name":"uint256","nodeType":"ElementaryTypeName","src":"38646:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9105,"mutability":"mutable","name":"data","nameLocation":"38671:4:20","nodeType":"VariableDeclaration","scope":9110,"src":"38658:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9104,"name":"bytes","nodeType":"ElementaryTypeName","src":"38658:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38619:57:20"},"returnParameters":{"id":9107,"nodeType":"ParameterList","parameters":[],"src":"38697:0:20"},"scope":9111,"src":"38588:1370:20","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":9112,"src":"1441:38519:20","usedErrors":[8379,8382,8385,8388,8391,8394,8397,8400],"usedEvents":[8409,8418,8427]}],"src":"32:39929:20"},"id":20},"@solady/utils/Initializable.sol":{"ast":{"absolutePath":"@solady/utils/Initializable.sol","exportedSymbols":{"Initializable":[9225]},"id":9226,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9113,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:21"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":9114,"nodeType":"StructuredDocumentation","src":"57:307:21","text":"@notice Initializable mixin for the upgradeable contracts.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)"},"fullyImplemented":true,"id":9225,"linearizedBaseContracts":[9225],"name":"Initializable","nameLocation":"382:13:21","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9115,"nodeType":"StructuredDocumentation","src":"685:45:21","text":"@dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":9117,"name":"InvalidInitialization","nameLocation":"741:21:21","nodeType":"ErrorDefinition","parameters":{"id":9116,"nodeType":"ParameterList","parameters":[],"src":"762:2:21"},"src":"735:30:21"},{"documentation":{"id":9118,"nodeType":"StructuredDocumentation","src":"771:42:21","text":"@dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":9120,"name":"NotInitializing","nameLocation":"824:15:21","nodeType":"ErrorDefinition","parameters":{"id":9119,"nodeType":"ParameterList","parameters":[],"src":"839:2:21"},"src":"818:24:21"},{"anonymous":false,"documentation":{"id":9121,"nodeType":"StructuredDocumentation","src":"1131:58:21","text":"@dev Triggered when the contract has been initialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":9125,"name":"Initialized","nameLocation":"1200:11:21","nodeType":"EventDefinition","parameters":{"id":9124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"1219:7:21","nodeType":"VariableDeclaration","scope":9125,"src":"1212:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9122,"name":"uint64","nodeType":"ElementaryTypeName","src":"1212:6:21","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1211:16:21"},"src":"1194:34:21"},{"constant":true,"documentation":{"id":9126,"nodeType":"StructuredDocumentation","src":"1234:51:21","text":"@dev `keccak256(bytes(\"Initialized(uint64)\"))`."},"id":9129,"mutability":"constant","name":"_INTIALIZED_EVENT_SIGNATURE","nameLocation":"1315:27:21","nodeType":"VariableDeclaration","scope":9225,"src":"1290:129:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1290:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863376635303562326633373161653231373565653439313366343439396531663236333361376235393336333231656564316364616562363131353138316432","id":9128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1353:66:21","typeDescriptions":{"typeIdentifier":"t_rational_90443173732180608349131670025767709961475889821310342433215831881459516408274_by_1","typeString":"int_const 9044...(69 digits omitted)...8274"},"value":"0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"},"visibility":"private"},{"constant":true,"documentation":{"id":9130,"nodeType":"StructuredDocumentation","src":"1709:232:21","text":"@dev The default initializable slot is given by:\n `bytes32(~uint256(uint32(bytes4(keccak256(\"_INITIALIZABLE_SLOT\")))))`.\n Bits Layout:\n - [0] `initializing`\n - [1..64] `initializedVersion`"},"id":9133,"mutability":"constant","name":"_INITIALIZABLE_SLOT","nameLocation":"1971:19:21","nodeType":"VariableDeclaration","scope":9225,"src":"1946:121:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1946:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666266363031313332","id":9132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2001:66:21","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007912045416754_by_1","typeString":"int_const 1157...(70 digits omitted)...6754"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132"},"visibility":"private"},{"body":{"id":9141,"nodeType":"Block","src":"2494:43:21","statements":[{"expression":{"id":9139,"name":"_INITIALIZABLE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9133,"src":"2511:19:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9138,"id":9140,"nodeType":"Return","src":"2504:26:21"}]},"documentation":{"id":9134,"nodeType":"StructuredDocumentation","src":"2357:62:21","text":"@dev Override to return a custom storage slot if required."},"id":9142,"implemented":true,"kind":"function","modifiers":[],"name":"_initializableSlot","nameLocation":"2433:18:21","nodeType":"FunctionDefinition","parameters":{"id":9135,"nodeType":"ParameterList","parameters":[],"src":"2451:2:21"},"returnParameters":{"id":9138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9142,"src":"2485:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2485:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2484:9:21"},"scope":9225,"src":"2424:113:21","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":9153,"nodeType":"Block","src":"3112:1082:21","statements":[{"assignments":[9146],"declarations":[{"constant":false,"id":9146,"mutability":"mutable","name":"s","nameLocation":"3130:1:21","nodeType":"VariableDeclaration","scope":9153,"src":"3122:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3122:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9149,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9147,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"3134:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3134:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3122:32:21"},{"AST":{"nativeSrc":"3216:613:21","nodeType":"YulBlock","src":"3216:613:21","statements":[{"nativeSrc":"3230:17:21","nodeType":"YulVariableDeclaration","src":"3230:17:21","value":{"arguments":[{"name":"s","nativeSrc":"3245:1:21","nodeType":"YulIdentifier","src":"3245:1:21"}],"functionName":{"name":"sload","nativeSrc":"3239:5:21","nodeType":"YulIdentifier","src":"3239:5:21"},"nativeSrc":"3239:8:21","nodeType":"YulFunctionCall","src":"3239:8:21"},"variables":[{"name":"i","nativeSrc":"3234:1:21","nodeType":"YulTypedName","src":"3234:1:21","type":""}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"3334:1:21","nodeType":"YulIdentifier","src":"3334:1:21"},{"kind":"number","nativeSrc":"3337:1:21","nodeType":"YulLiteral","src":"3337:1:21","type":"","value":"3"}],"functionName":{"name":"sstore","nativeSrc":"3327:6:21","nodeType":"YulIdentifier","src":"3327:6:21"},"nativeSrc":"3327:12:21","nodeType":"YulFunctionCall","src":"3327:12:21"},"nativeSrc":"3327:12:21","nodeType":"YulExpressionStatement","src":"3327:12:21"},{"body":{"nativeSrc":"3426:393:21","nodeType":"YulBlock","src":"3426:393:21","statements":[{"body":{"nativeSrc":"3586:133:21","nodeType":"YulBlock","src":"3586:133:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3615:4:21","nodeType":"YulLiteral","src":"3615:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3621:10:21","nodeType":"YulLiteral","src":"3621:10:21","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"3608:6:21","nodeType":"YulIdentifier","src":"3608:6:21"},"nativeSrc":"3608:24:21","nodeType":"YulFunctionCall","src":"3608:24:21"},"nativeSrc":"3608:24:21","nodeType":"YulExpressionStatement","src":"3608:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3690:4:21","nodeType":"YulLiteral","src":"3690:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"3696:4:21","nodeType":"YulLiteral","src":"3696:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"3683:6:21","nodeType":"YulIdentifier","src":"3683:6:21"},"nativeSrc":"3683:18:21","nodeType":"YulFunctionCall","src":"3683:18:21"},"nativeSrc":"3683:18:21","nodeType":"YulExpressionStatement","src":"3683:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"address","nativeSrc":"3555:7:21","nodeType":"YulIdentifier","src":"3555:7:21"},"nativeSrc":"3555:9:21","nodeType":"YulFunctionCall","src":"3555:9:21"}],"functionName":{"name":"extcodesize","nativeSrc":"3543:11:21","nodeType":"YulIdentifier","src":"3543:11:21"},"nativeSrc":"3543:22:21","nodeType":"YulFunctionCall","src":"3543:22:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3574:1:21","nodeType":"YulLiteral","src":"3574:1:21","type":"","value":"1"},{"name":"i","nativeSrc":"3577:1:21","nodeType":"YulIdentifier","src":"3577:1:21"}],"functionName":{"name":"shr","nativeSrc":"3570:3:21","nodeType":"YulIdentifier","src":"3570:3:21"},"nativeSrc":"3570:9:21","nodeType":"YulFunctionCall","src":"3570:9:21"},{"kind":"number","nativeSrc":"3581:1:21","nodeType":"YulLiteral","src":"3581:1:21","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"3567:2:21","nodeType":"YulIdentifier","src":"3567:2:21"},"nativeSrc":"3567:16:21","nodeType":"YulFunctionCall","src":"3567:16:21"}],"functionName":{"name":"lt","nativeSrc":"3540:2:21","nodeType":"YulIdentifier","src":"3540:2:21"},"nativeSrc":"3540:44:21","nodeType":"YulFunctionCall","src":"3540:44:21"}],"functionName":{"name":"iszero","nativeSrc":"3533:6:21","nodeType":"YulIdentifier","src":"3533:6:21"},"nativeSrc":"3533:52:21","nodeType":"YulFunctionCall","src":"3533:52:21"},"nativeSrc":"3530:189:21","nodeType":"YulIf","src":"3530:189:21"},{"nativeSrc":"3736:24:21","nodeType":"YulAssignment","src":"3736:24:21","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3749:3:21","nodeType":"YulLiteral","src":"3749:3:21","type":"","value":"255"},{"name":"i","nativeSrc":"3754:1:21","nodeType":"YulIdentifier","src":"3754:1:21"}],"functionName":{"name":"shl","nativeSrc":"3745:3:21","nodeType":"YulIdentifier","src":"3745:3:21"},"nativeSrc":"3745:11:21","nodeType":"YulFunctionCall","src":"3745:11:21"},{"name":"s","nativeSrc":"3758:1:21","nodeType":"YulIdentifier","src":"3758:1:21"}],"functionName":{"name":"shl","nativeSrc":"3741:3:21","nodeType":"YulIdentifier","src":"3741:3:21"},"nativeSrc":"3741:19:21","nodeType":"YulFunctionCall","src":"3741:19:21"},"variableNames":[{"name":"s","nativeSrc":"3736:1:21","nodeType":"YulIdentifier","src":"3736:1:21"}]}]},"condition":{"name":"i","nativeSrc":"3424:1:21","nodeType":"YulIdentifier","src":"3424:1:21"},"nativeSrc":"3421:398:21","nodeType":"YulIf","src":"3421:398:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3245:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3334:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3736:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3758:1:21","valueSize":1}],"id":9150,"nodeType":"InlineAssembly","src":"3207:622:21"},{"id":9151,"nodeType":"PlaceholderStatement","src":"3838:1:21"},{"AST":{"nativeSrc":"3901:287:21","nodeType":"YulBlock","src":"3901:287:21","statements":[{"body":{"nativeSrc":"3920:258:21","nodeType":"YulBlock","src":"3920:258:21","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"4016:1:21","nodeType":"YulIdentifier","src":"4016:1:21"},{"kind":"number","nativeSrc":"4019:1:21","nodeType":"YulLiteral","src":"4019:1:21","type":"","value":"2"}],"functionName":{"name":"sstore","nativeSrc":"4009:6:21","nodeType":"YulIdentifier","src":"4009:6:21"},"nativeSrc":"4009:12:21","nodeType":"YulFunctionCall","src":"4009:12:21"},"nativeSrc":"4009:12:21","nodeType":"YulExpressionStatement","src":"4009:12:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4094:4:21","nodeType":"YulLiteral","src":"4094:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"4100:1:21","nodeType":"YulLiteral","src":"4100:1:21","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"4087:6:21","nodeType":"YulIdentifier","src":"4087:6:21"},"nativeSrc":"4087:15:21","nodeType":"YulFunctionCall","src":"4087:15:21"},"nativeSrc":"4087:15:21","nodeType":"YulExpressionStatement","src":"4087:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4124:4:21","nodeType":"YulLiteral","src":"4124:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"4130:4:21","nodeType":"YulLiteral","src":"4130:4:21","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"4136:27:21","nodeType":"YulIdentifier","src":"4136:27:21"}],"functionName":{"name":"log1","nativeSrc":"4119:4:21","nodeType":"YulIdentifier","src":"4119:4:21"},"nativeSrc":"4119:45:21","nodeType":"YulFunctionCall","src":"4119:45:21"},"nativeSrc":"4119:45:21","nodeType":"YulExpressionStatement","src":"4119:45:21"}]},"condition":{"name":"s","nativeSrc":"3918:1:21","nodeType":"YulIdentifier","src":"3918:1:21"},"nativeSrc":"3915:263:21","nodeType":"YulIf","src":"3915:263:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9129,"isOffset":false,"isSlot":false,"src":"4136:27:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"3918:1:21","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"4016:1:21","valueSize":1}],"id":9152,"nodeType":"InlineAssembly","src":"3892:296:21"}]},"documentation":{"id":9143,"nodeType":"StructuredDocumentation","src":"2543:533:21","text":"@dev Guards an initializer function so that it can be invoked at most once.\n You can guard a function with `onlyInitializing` such that it can be called\n through a function guarded with `initializer`.\n This is similar to `reinitializer(1)`, except that in the context of a constructor,\n an `initializer` guarded function can be invoked multiple times.\n This can be useful during testing and is not expected to be used in production.\n Emits an {Initialized} event."},"id":9154,"name":"initializer","nameLocation":"3090:11:21","nodeType":"ModifierDefinition","parameters":{"id":9144,"nodeType":"ParameterList","parameters":[],"src":"3101:2:21"},"src":"3081:1113:21","virtual":true,"visibility":"internal"},{"body":{"id":9167,"nodeType":"Block","src":"4527:938:21","statements":[{"assignments":[9160],"declarations":[{"constant":false,"id":9160,"mutability":"mutable","name":"s","nameLocation":"4545:1:21","nodeType":"VariableDeclaration","scope":9167,"src":"4537:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4537:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9163,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9161,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4549:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4549:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4537:32:21"},{"AST":{"nativeSrc":"4631:494:21","nodeType":"YulBlock","src":"4631:494:21","statements":[{"nativeSrc":"4645:43:21","nodeType":"YulAssignment","src":"4645:43:21","value":{"arguments":[{"name":"version","nativeSrc":"4660:7:21","nodeType":"YulIdentifier","src":"4660:7:21"},{"kind":"number","nativeSrc":"4669:18:21","nodeType":"YulLiteral","src":"4669:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4656:3:21","nodeType":"YulIdentifier","src":"4656:3:21"},"nativeSrc":"4656:32:21","nodeType":"YulFunctionCall","src":"4656:32:21"},"variableNames":[{"name":"version","nativeSrc":"4645:7:21","nodeType":"YulIdentifier","src":"4645:7:21"}]},{"nativeSrc":"4722:17:21","nodeType":"YulVariableDeclaration","src":"4722:17:21","value":{"arguments":[{"name":"s","nativeSrc":"4737:1:21","nodeType":"YulIdentifier","src":"4737:1:21"}],"functionName":{"name":"sload","nativeSrc":"4731:5:21","nodeType":"YulIdentifier","src":"4731:5:21"},"nativeSrc":"4731:8:21","nodeType":"YulFunctionCall","src":"4731:8:21"},"variables":[{"name":"i","nativeSrc":"4726:1:21","nodeType":"YulTypedName","src":"4726:1:21","type":""}]},{"body":{"nativeSrc":"4873:121:21","nodeType":"YulBlock","src":"4873:121:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4898:4:21","nodeType":"YulLiteral","src":"4898:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4904:10:21","nodeType":"YulLiteral","src":"4904:10:21","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"4891:6:21","nodeType":"YulIdentifier","src":"4891:6:21"},"nativeSrc":"4891:24:21","nodeType":"YulFunctionCall","src":"4891:24:21"},"nativeSrc":"4891:24:21","nodeType":"YulExpressionStatement","src":"4891:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4969:4:21","nodeType":"YulLiteral","src":"4969:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4975:4:21","nodeType":"YulLiteral","src":"4975:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4962:6:21","nodeType":"YulIdentifier","src":"4962:6:21"},"nativeSrc":"4962:18:21","nodeType":"YulFunctionCall","src":"4962:18:21"},"nativeSrc":"4962:18:21","nodeType":"YulExpressionStatement","src":"4962:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"i","nativeSrc":"4841:1:21","nodeType":"YulIdentifier","src":"4841:1:21"},{"kind":"number","nativeSrc":"4844:1:21","nodeType":"YulLiteral","src":"4844:1:21","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4837:3:21","nodeType":"YulIdentifier","src":"4837:3:21"},"nativeSrc":"4837:9:21","nodeType":"YulFunctionCall","src":"4837:9:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4855:1:21","nodeType":"YulLiteral","src":"4855:1:21","type":"","value":"1"},{"name":"i","nativeSrc":"4858:1:21","nodeType":"YulIdentifier","src":"4858:1:21"}],"functionName":{"name":"shr","nativeSrc":"4851:3:21","nodeType":"YulIdentifier","src":"4851:3:21"},"nativeSrc":"4851:9:21","nodeType":"YulFunctionCall","src":"4851:9:21"},{"name":"version","nativeSrc":"4862:7:21","nodeType":"YulIdentifier","src":"4862:7:21"}],"functionName":{"name":"lt","nativeSrc":"4848:2:21","nodeType":"YulIdentifier","src":"4848:2:21"},"nativeSrc":"4848:22:21","nodeType":"YulFunctionCall","src":"4848:22:21"}],"functionName":{"name":"lt","nativeSrc":"4834:2:21","nodeType":"YulIdentifier","src":"4834:2:21"},"nativeSrc":"4834:37:21","nodeType":"YulFunctionCall","src":"4834:37:21"}],"functionName":{"name":"iszero","nativeSrc":"4827:6:21","nodeType":"YulIdentifier","src":"4827:6:21"},"nativeSrc":"4827:45:21","nodeType":"YulFunctionCall","src":"4827:45:21"},"nativeSrc":"4824:170:21","nodeType":"YulIf","src":"4824:170:21"},{"expression":{"arguments":[{"name":"s","nativeSrc":"5089:1:21","nodeType":"YulIdentifier","src":"5089:1:21"},{"arguments":[{"kind":"number","nativeSrc":"5095:1:21","nodeType":"YulLiteral","src":"5095:1:21","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"5102:1:21","nodeType":"YulLiteral","src":"5102:1:21","type":"","value":"1"},{"name":"version","nativeSrc":"5105:7:21","nodeType":"YulIdentifier","src":"5105:7:21"}],"functionName":{"name":"shl","nativeSrc":"5098:3:21","nodeType":"YulIdentifier","src":"5098:3:21"},"nativeSrc":"5098:15:21","nodeType":"YulFunctionCall","src":"5098:15:21"}],"functionName":{"name":"or","nativeSrc":"5092:2:21","nodeType":"YulIdentifier","src":"5092:2:21"},"nativeSrc":"5092:22:21","nodeType":"YulFunctionCall","src":"5092:22:21"}],"functionName":{"name":"sstore","nativeSrc":"5082:6:21","nodeType":"YulIdentifier","src":"5082:6:21"},"nativeSrc":"5082:33:21","nodeType":"YulFunctionCall","src":"5082:33:21"},"nativeSrc":"5082:33:21","nodeType":"YulExpressionStatement","src":"5082:33:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9160,"isOffset":false,"isSlot":false,"src":"4737:1:21","valueSize":1},{"declaration":9160,"isOffset":false,"isSlot":false,"src":"5089:1:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"4645:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"4660:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"4862:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"5105:7:21","valueSize":1}],"id":9164,"nodeType":"InlineAssembly","src":"4622:503:21"},{"id":9165,"nodeType":"PlaceholderStatement","src":"5134:1:21"},{"AST":{"nativeSrc":"5197:262:21","nodeType":"YulBlock","src":"5197:262:21","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"5293:1:21","nodeType":"YulIdentifier","src":"5293:1:21"},{"arguments":[{"kind":"number","nativeSrc":"5300:1:21","nodeType":"YulLiteral","src":"5300:1:21","type":"","value":"1"},{"name":"version","nativeSrc":"5303:7:21","nodeType":"YulIdentifier","src":"5303:7:21"}],"functionName":{"name":"shl","nativeSrc":"5296:3:21","nodeType":"YulIdentifier","src":"5296:3:21"},"nativeSrc":"5296:15:21","nodeType":"YulFunctionCall","src":"5296:15:21"}],"functionName":{"name":"sstore","nativeSrc":"5286:6:21","nodeType":"YulIdentifier","src":"5286:6:21"},"nativeSrc":"5286:26:21","nodeType":"YulFunctionCall","src":"5286:26:21"},"nativeSrc":"5286:26:21","nodeType":"YulExpressionStatement","src":"5286:26:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5377:4:21","nodeType":"YulLiteral","src":"5377:4:21","type":"","value":"0x20"},{"name":"version","nativeSrc":"5383:7:21","nodeType":"YulIdentifier","src":"5383:7:21"}],"functionName":{"name":"mstore","nativeSrc":"5370:6:21","nodeType":"YulIdentifier","src":"5370:6:21"},"nativeSrc":"5370:21:21","nodeType":"YulFunctionCall","src":"5370:21:21"},"nativeSrc":"5370:21:21","nodeType":"YulExpressionStatement","src":"5370:21:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5409:4:21","nodeType":"YulLiteral","src":"5409:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"5415:4:21","nodeType":"YulLiteral","src":"5415:4:21","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"5421:27:21","nodeType":"YulIdentifier","src":"5421:27:21"}],"functionName":{"name":"log1","nativeSrc":"5404:4:21","nodeType":"YulIdentifier","src":"5404:4:21"},"nativeSrc":"5404:45:21","nodeType":"YulFunctionCall","src":"5404:45:21"},"nativeSrc":"5404:45:21","nodeType":"YulExpressionStatement","src":"5404:45:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9129,"isOffset":false,"isSlot":false,"src":"5421:27:21","valueSize":1},{"declaration":9160,"isOffset":false,"isSlot":false,"src":"5293:1:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"5303:7:21","valueSize":1},{"declaration":9157,"isOffset":false,"isSlot":false,"src":"5383:7:21","valueSize":1}],"id":9166,"nodeType":"InlineAssembly","src":"5188:271:21"}]},"documentation":{"id":9155,"nodeType":"StructuredDocumentation","src":"4200:275:21","text":"@dev Guards an reinitialzer function so that it can be invoked at most once.\n You can guard a function with `onlyInitializing` such that it can be called\n through a function guarded with `reinitializer`.\n Emits an {Initialized} event."},"id":9168,"name":"reinitializer","nameLocation":"4489:13:21","nodeType":"ModifierDefinition","parameters":{"id":9158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9157,"mutability":"mutable","name":"version","nameLocation":"4510:7:21","nodeType":"VariableDeclaration","scope":9168,"src":"4503:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9156,"name":"uint64","nodeType":"ElementaryTypeName","src":"4503:6:21","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4502:16:21"},"src":"4480:985:21","virtual":true,"visibility":"internal"},{"body":{"id":9175,"nodeType":"Block","src":"5652:48:21","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9171,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"5662:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":9172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5662:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9173,"nodeType":"ExpressionStatement","src":"5662:20:21"},{"id":9174,"nodeType":"PlaceholderStatement","src":"5692:1:21"}]},"documentation":{"id":9169,"nodeType":"StructuredDocumentation","src":"5471:140:21","text":"@dev Guards a function such that it can only be called in the scope\n of a function guarded with `initializer` or `reinitializer`."},"id":9176,"name":"onlyInitializing","nameLocation":"5625:16:21","nodeType":"ModifierDefinition","parameters":{"id":9170,"nodeType":"ParameterList","parameters":[],"src":"5641:2:21"},"src":"5616:84:21","virtual":true,"visibility":"internal"},{"body":{"id":9186,"nodeType":"Block","src":"5816:277:21","statements":[{"assignments":[9181],"declarations":[{"constant":false,"id":9181,"mutability":"mutable","name":"s","nameLocation":"5834:1:21","nodeType":"VariableDeclaration","scope":9186,"src":"5826:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5826:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9184,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9182,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"5838:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5838:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5826:32:21"},{"AST":{"nativeSrc":"5920:167:21","nodeType":"YulBlock","src":"5920:167:21","statements":[{"body":{"nativeSrc":"5962:115:21","nodeType":"YulBlock","src":"5962:115:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5987:4:21","nodeType":"YulLiteral","src":"5987:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5993:10:21","nodeType":"YulLiteral","src":"5993:10:21","type":"","value":"0xd7e6bcf8"}],"functionName":{"name":"mstore","nativeSrc":"5980:6:21","nodeType":"YulIdentifier","src":"5980:6:21"},"nativeSrc":"5980:24:21","nodeType":"YulFunctionCall","src":"5980:24:21"},"nativeSrc":"5980:24:21","nodeType":"YulExpressionStatement","src":"5980:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6052:4:21","nodeType":"YulLiteral","src":"6052:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6058:4:21","nodeType":"YulLiteral","src":"6058:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6045:6:21","nodeType":"YulIdentifier","src":"6045:6:21"},"nativeSrc":"6045:18:21","nodeType":"YulFunctionCall","src":"6045:18:21"},"nativeSrc":"6045:18:21","nodeType":"YulExpressionStatement","src":"6045:18:21"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5948:1:21","nodeType":"YulLiteral","src":"5948:1:21","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"5957:1:21","nodeType":"YulIdentifier","src":"5957:1:21"}],"functionName":{"name":"sload","nativeSrc":"5951:5:21","nodeType":"YulIdentifier","src":"5951:5:21"},"nativeSrc":"5951:8:21","nodeType":"YulFunctionCall","src":"5951:8:21"}],"functionName":{"name":"and","nativeSrc":"5944:3:21","nodeType":"YulIdentifier","src":"5944:3:21"},"nativeSrc":"5944:16:21","nodeType":"YulFunctionCall","src":"5944:16:21"}],"functionName":{"name":"iszero","nativeSrc":"5937:6:21","nodeType":"YulIdentifier","src":"5937:6:21"},"nativeSrc":"5937:24:21","nodeType":"YulFunctionCall","src":"5937:24:21"},"nativeSrc":"5934:143:21","nodeType":"YulIf","src":"5934:143:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9181,"isOffset":false,"isSlot":false,"src":"5957:1:21","valueSize":1}],"id":9185,"nodeType":"InlineAssembly","src":"5911:176:21"}]},"documentation":{"id":9177,"nodeType":"StructuredDocumentation","src":"5706:53:21","text":"@dev Reverts if the contract is not initializing."},"id":9187,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"5773:18:21","nodeType":"FunctionDefinition","parameters":{"id":9178,"nodeType":"ParameterList","parameters":[],"src":"5791:2:21"},"returnParameters":{"id":9179,"nodeType":"ParameterList","parameters":[],"src":"5816:0:21"},"scope":9225,"src":"5764:329:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9197,"nodeType":"Block","src":"6574:710:21","statements":[{"assignments":[9192],"declarations":[{"constant":false,"id":9192,"mutability":"mutable","name":"s","nameLocation":"6592:1:21","nodeType":"VariableDeclaration","scope":9197,"src":"6584:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6584:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9195,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9193,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"6596:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6596:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6584:32:21"},{"AST":{"nativeSrc":"6678:600:21","nodeType":"YulBlock","src":"6678:600:21","statements":[{"nativeSrc":"6692:17:21","nodeType":"YulVariableDeclaration","src":"6692:17:21","value":{"arguments":[{"name":"s","nativeSrc":"6707:1:21","nodeType":"YulIdentifier","src":"6707:1:21"}],"functionName":{"name":"sload","nativeSrc":"6701:5:21","nodeType":"YulIdentifier","src":"6701:5:21"},"nativeSrc":"6701:8:21","nodeType":"YulFunctionCall","src":"6701:8:21"},"variables":[{"name":"i","nativeSrc":"6696:1:21","nodeType":"YulTypedName","src":"6696:1:21","type":""}]},{"body":{"nativeSrc":"6735:121:21","nodeType":"YulBlock","src":"6735:121:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6760:4:21","nodeType":"YulLiteral","src":"6760:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6766:10:21","nodeType":"YulLiteral","src":"6766:10:21","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"6753:6:21","nodeType":"YulIdentifier","src":"6753:6:21"},"nativeSrc":"6753:24:21","nodeType":"YulFunctionCall","src":"6753:24:21"},"nativeSrc":"6753:24:21","nodeType":"YulExpressionStatement","src":"6753:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6831:4:21","nodeType":"YulLiteral","src":"6831:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6837:4:21","nodeType":"YulLiteral","src":"6837:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6824:6:21","nodeType":"YulIdentifier","src":"6824:6:21"},"nativeSrc":"6824:18:21","nodeType":"YulFunctionCall","src":"6824:18:21"},"nativeSrc":"6824:18:21","nodeType":"YulExpressionStatement","src":"6824:18:21"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6729:1:21","nodeType":"YulIdentifier","src":"6729:1:21"},{"kind":"number","nativeSrc":"6732:1:21","nodeType":"YulLiteral","src":"6732:1:21","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6725:3:21","nodeType":"YulIdentifier","src":"6725:3:21"},"nativeSrc":"6725:9:21","nodeType":"YulFunctionCall","src":"6725:9:21"},"nativeSrc":"6722:134:21","nodeType":"YulIf","src":"6722:134:21"},{"nativeSrc":"6869:28:21","nodeType":"YulVariableDeclaration","src":"6869:28:21","value":{"arguments":[{"kind":"number","nativeSrc":"6890:3:21","nodeType":"YulLiteral","src":"6890:3:21","type":"","value":"192"},{"name":"s","nativeSrc":"6895:1:21","nodeType":"YulIdentifier","src":"6895:1:21"}],"functionName":{"name":"shr","nativeSrc":"6886:3:21","nodeType":"YulIdentifier","src":"6886:3:21"},"nativeSrc":"6886:11:21","nodeType":"YulFunctionCall","src":"6886:11:21"},"variables":[{"name":"uint64max","nativeSrc":"6873:9:21","nodeType":"YulTypedName","src":"6873:9:21","type":""}]},{"body":{"nativeSrc":"6976:292:21","nodeType":"YulBlock","src":"6976:292:21","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"7082:1:21","nodeType":"YulIdentifier","src":"7082:1:21"},{"arguments":[{"kind":"number","nativeSrc":"7089:1:21","nodeType":"YulLiteral","src":"7089:1:21","type":"","value":"1"},{"name":"uint64max","nativeSrc":"7092:9:21","nodeType":"YulIdentifier","src":"7092:9:21"}],"functionName":{"name":"shl","nativeSrc":"7085:3:21","nodeType":"YulIdentifier","src":"7085:3:21"},"nativeSrc":"7085:17:21","nodeType":"YulFunctionCall","src":"7085:17:21"}],"functionName":{"name":"sstore","nativeSrc":"7075:6:21","nodeType":"YulIdentifier","src":"7075:6:21"},"nativeSrc":"7075:28:21","nodeType":"YulFunctionCall","src":"7075:28:21"},"nativeSrc":"7075:28:21","nodeType":"YulExpressionStatement","src":"7075:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7176:4:21","nodeType":"YulLiteral","src":"7176:4:21","type":"","value":"0x20"},{"name":"uint64max","nativeSrc":"7182:9:21","nodeType":"YulIdentifier","src":"7182:9:21"}],"functionName":{"name":"mstore","nativeSrc":"7169:6:21","nodeType":"YulIdentifier","src":"7169:6:21"},"nativeSrc":"7169:23:21","nodeType":"YulFunctionCall","src":"7169:23:21"},"nativeSrc":"7169:23:21","nodeType":"YulExpressionStatement","src":"7169:23:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7214:4:21","nodeType":"YulLiteral","src":"7214:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"7220:4:21","nodeType":"YulLiteral","src":"7220:4:21","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"7226:27:21","nodeType":"YulIdentifier","src":"7226:27:21"}],"functionName":{"name":"log1","nativeSrc":"7209:4:21","nodeType":"YulIdentifier","src":"7209:4:21"},"nativeSrc":"7209:45:21","nodeType":"YulFunctionCall","src":"7209:45:21"},"nativeSrc":"7209:45:21","nodeType":"YulExpressionStatement","src":"7209:45:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6957:1:21","nodeType":"YulLiteral","src":"6957:1:21","type":"","value":"1"},{"name":"i","nativeSrc":"6960:1:21","nodeType":"YulIdentifier","src":"6960:1:21"}],"functionName":{"name":"shr","nativeSrc":"6953:3:21","nodeType":"YulIdentifier","src":"6953:3:21"},"nativeSrc":"6953:9:21","nodeType":"YulFunctionCall","src":"6953:9:21"},{"name":"uint64max","nativeSrc":"6964:9:21","nodeType":"YulIdentifier","src":"6964:9:21"}],"functionName":{"name":"eq","nativeSrc":"6950:2:21","nodeType":"YulIdentifier","src":"6950:2:21"},"nativeSrc":"6950:24:21","nodeType":"YulFunctionCall","src":"6950:24:21"}],"functionName":{"name":"iszero","nativeSrc":"6943:6:21","nodeType":"YulIdentifier","src":"6943:6:21"},"nativeSrc":"6943:32:21","nodeType":"YulFunctionCall","src":"6943:32:21"},"nativeSrc":"6940:328:21","nodeType":"YulIf","src":"6940:328:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9129,"isOffset":false,"isSlot":false,"src":"7226:27:21","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"6707:1:21","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"6895:1:21","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"7082:1:21","valueSize":1}],"id":9196,"nodeType":"InlineAssembly","src":"6669:609:21"}]},"documentation":{"id":9188,"nodeType":"StructuredDocumentation","src":"6099:421:21","text":"@dev Locks any future initializations by setting the initialized version to `2**64 - 1`.\n Calling this in the constructor will prevent the contract from being initialized\n or reinitialized. It is recommended to use this to lock implementation contracts\n that are designed to be called through proxies.\n Emits an {Initialized} event the first time it is successfully called."},"id":9198,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"6534:20:21","nodeType":"FunctionDefinition","parameters":{"id":9189,"nodeType":"ParameterList","parameters":[],"src":"6554:2:21"},"returnParameters":{"id":9190,"nodeType":"ParameterList","parameters":[],"src":"6574:0:21"},"scope":9225,"src":"6525:759:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9210,"nodeType":"Block","src":"7439:161:21","statements":[{"assignments":[9205],"declarations":[{"constant":false,"id":9205,"mutability":"mutable","name":"s","nameLocation":"7457:1:21","nodeType":"VariableDeclaration","scope":9210,"src":"7449:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7449:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9206,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"7461:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7461:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7449:32:21"},{"AST":{"nativeSrc":"7543:51:21","nodeType":"YulBlock","src":"7543:51:21","statements":[{"nativeSrc":"7557:27:21","nodeType":"YulAssignment","src":"7557:27:21","value":{"arguments":[{"kind":"number","nativeSrc":"7572:1:21","nodeType":"YulLiteral","src":"7572:1:21","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"7581:1:21","nodeType":"YulIdentifier","src":"7581:1:21"}],"functionName":{"name":"sload","nativeSrc":"7575:5:21","nodeType":"YulIdentifier","src":"7575:5:21"},"nativeSrc":"7575:8:21","nodeType":"YulFunctionCall","src":"7575:8:21"}],"functionName":{"name":"shr","nativeSrc":"7568:3:21","nodeType":"YulIdentifier","src":"7568:3:21"},"nativeSrc":"7568:16:21","nodeType":"YulFunctionCall","src":"7568:16:21"},"variableNames":[{"name":"version","nativeSrc":"7557:7:21","nodeType":"YulIdentifier","src":"7557:7:21"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9205,"isOffset":false,"isSlot":false,"src":"7581:1:21","valueSize":1},{"declaration":9202,"isOffset":false,"isSlot":false,"src":"7557:7:21","valueSize":1}],"id":9209,"nodeType":"InlineAssembly","src":"7534:60:21"}]},"documentation":{"id":9199,"nodeType":"StructuredDocumentation","src":"7290:63:21","text":"@dev Returns the highest version that has been initialized."},"id":9211,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"7367:22:21","nodeType":"FunctionDefinition","parameters":{"id":9200,"nodeType":"ParameterList","parameters":[],"src":"7389:2:21"},"returnParameters":{"id":9203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9202,"mutability":"mutable","name":"version","nameLocation":"7430:7:21","nodeType":"VariableDeclaration","scope":9211,"src":"7423:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9201,"name":"uint64","nodeType":"ElementaryTypeName","src":"7423:6:21","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7422:16:21"},"scope":9225,"src":"7358:242:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9223,"nodeType":"Block","src":"7746:160:21","statements":[{"assignments":[9218],"declarations":[{"constant":false,"id":9218,"mutability":"mutable","name":"s","nameLocation":"7764:1:21","nodeType":"VariableDeclaration","scope":9223,"src":"7756:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7756:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9221,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9219,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"7768:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7768:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7756:32:21"},{"AST":{"nativeSrc":"7850:50:21","nodeType":"YulBlock","src":"7850:50:21","statements":[{"nativeSrc":"7864:26:21","nodeType":"YulAssignment","src":"7864:26:21","value":{"arguments":[{"kind":"number","nativeSrc":"7878:1:21","nodeType":"YulLiteral","src":"7878:1:21","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"7887:1:21","nodeType":"YulIdentifier","src":"7887:1:21"}],"functionName":{"name":"sload","nativeSrc":"7881:5:21","nodeType":"YulIdentifier","src":"7881:5:21"},"nativeSrc":"7881:8:21","nodeType":"YulFunctionCall","src":"7881:8:21"}],"functionName":{"name":"and","nativeSrc":"7874:3:21","nodeType":"YulIdentifier","src":"7874:3:21"},"nativeSrc":"7874:16:21","nodeType":"YulFunctionCall","src":"7874:16:21"},"variableNames":[{"name":"result","nativeSrc":"7864:6:21","nodeType":"YulIdentifier","src":"7864:6:21"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9215,"isOffset":false,"isSlot":false,"src":"7864:6:21","valueSize":1},{"declaration":9218,"isOffset":false,"isSlot":false,"src":"7887:1:21","valueSize":1}],"id":9222,"nodeType":"InlineAssembly","src":"7841:59:21"}]},"documentation":{"id":9212,"nodeType":"StructuredDocumentation","src":"7606:64:21","text":"@dev Returns whether the contract is currently initializing."},"id":9224,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"7684:15:21","nodeType":"FunctionDefinition","parameters":{"id":9213,"nodeType":"ParameterList","parameters":[],"src":"7699:2:21"},"returnParameters":{"id":9216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9215,"mutability":"mutable","name":"result","nameLocation":"7738:6:21","nodeType":"VariableDeclaration","scope":9224,"src":"7733:11:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9214,"name":"bool","nodeType":"ElementaryTypeName","src":"7733:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7732:13:21"},"scope":9225,"src":"7675:231:21","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":9226,"src":"364:7544:21","usedErrors":[9117,9120],"usedEvents":[9125]}],"src":"32:7877:21"},"id":21},"@solady/utils/LibClone.sol":{"ast":{"absolutePath":"@solady/utils/LibClone.sol","exportedSymbols":{"LibClone":[10092]},"id":10093,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9227,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:22"},{"abstract":false,"baseContracts":[],"canonicalName":"LibClone","contractDependencies":[],"contractKind":"library","documentation":{"id":9228,"nodeType":"StructuredDocumentation","src":"57:2160:22","text":"@notice Minimal proxy library.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)\n @author Minimal proxy by 0age (https://github.com/0age)\n @author Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie\n (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)\n @author Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\n @dev Minimal proxy:\n Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime,\n it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern,\n which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.\n @dev Minimal proxy (PUSH0 variant):\n This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai.\n It is optimized first for minimal runtime gas, then for minimal bytecode.\n The PUSH0 clone functions are intentionally postfixed with a jarring \"_PUSH0\" as\n many EVM chains may not support the PUSH0 opcode in the early months after Shanghai.\n Please use with caution.\n @dev Clones with immutable args (CWIA):\n The implementation of CWIA here implements a `receive()` method that emits the\n `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata,\n enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards\n composability. The minimal proxy implementation does not offer this feature.\n @dev Minimal ERC1967 proxy:\n An minimal ERC1967 proxy, intended to be upgraded with UUPS.\n This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n This proxy is automatically verified on Etherscan.\n @dev ERC1967I proxy:\n An variant of the minimal ERC1967 proxy, with a special code path that activates\n if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the\n `implementation` address. The returned implementation is guaranteed to be valid if the\n keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`."},"fullyImplemented":true,"id":10092,"linearizedBaseContracts":[10092],"name":"LibClone","nameLocation":"2225:8:22","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":9229,"nodeType":"StructuredDocumentation","src":"2523:66:22","text":"@dev The keccak256 of the deployed code for the ERC1967 proxy."},"id":9232,"mutability":"constant","name":"ERC1967_CODE_HASH","nameLocation":"2620:17:22","nodeType":"VariableDeclaration","scope":10092,"src":"2594:120:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2594:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861616135326338636338613065336664323763653735366363366234653730633531343233653962353937623131663332643365343966386231666338393064","id":9231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:66:22","typeDescriptions":{"typeIdentifier":"t_rational_77185021497204156503765693158949628883174901464818108677459927010977630685453_by_1","typeString":"int_const 7718...(69 digits omitted)...5453"},"value":"0xaaa52c8cc8a0e3fd27ce756cc6b4e70c51423e9b597b11f32d3e49f8b1fc890d"},"visibility":"internal"},{"constant":true,"documentation":{"id":9233,"nodeType":"StructuredDocumentation","src":"2721:67:22","text":"@dev The keccak256 of the deployed code for the ERC1967I proxy."},"id":9236,"mutability":"constant","name":"ERC1967I_CODE_HASH","nameLocation":"2819:18:22","nodeType":"VariableDeclaration","scope":10092,"src":"2793:121:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2793:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863653730303232336330643463656134353833343039616363666334356164616334613039336233353139393938613963626265313530346461646261366637","id":9235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:66:22","typeDescriptions":{"typeIdentifier":"t_rational_93374348446806385783963617675677071552231539524766885499178152025851048994551_by_1","typeString":"int_const 9337...(69 digits omitted)...4551"},"value":"0xce700223c0d4cea4583409accfc45adac4a093b3519998a9cbbe1504dadba6f7"},"visibility":"internal"},{"constant":true,"documentation":{"id":9237,"nodeType":"StructuredDocumentation","src":"2921:73:22","text":"@dev The keccak256 of the deployed code for the ERC1967 beacon proxy."},"id":9240,"mutability":"constant","name":"ERC1967_BEACON_PROXY_CODE_HASH","nameLocation":"3025:30:22","nodeType":"VariableDeclaration","scope":10092,"src":"2999:133:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2999:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307831343034343435396166313762633466306635616132663635386362363932616464373764313330326332396665326165626162303035656561396431313632","id":9239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3066:66:22","typeDescriptions":{"typeIdentifier":"t_rational_9053796096550691733351246263824737728846953073129913053479247112142852002146_by_1","typeString":"int_const 9053...(68 digits omitted)...2146"},"value":"0x14044459af17bc4f0f5aa2f658cb692add77d1302c29fe2aebab005eea9d1162"},"visibility":"internal"},{"documentation":{"id":9241,"nodeType":"StructuredDocumentation","src":"3422:36:22","text":"@dev Unable to deploy the clone."},"errorSelector":"30116425","id":9243,"name":"DeploymentFailed","nameLocation":"3469:16:22","nodeType":"ErrorDefinition","parameters":{"id":9242,"nodeType":"ParameterList","parameters":[],"src":"3485:2:22"},"src":"3463:25:22"},{"documentation":{"id":9244,"nodeType":"StructuredDocumentation","src":"3494:66:22","text":"@dev The salt must start with either the zero address or `by`."},"errorSelector":"0c4549ef","id":9246,"name":"SaltDoesNotStartWith","nameLocation":"3571:20:22","nodeType":"ErrorDefinition","parameters":{"id":9245,"nodeType":"ParameterList","parameters":[],"src":"3591:2:22"},"src":"3565:29:22"},{"documentation":{"id":9247,"nodeType":"StructuredDocumentation","src":"3600:37:22","text":"@dev The ETH transfer has failed."},"errorSelector":"b12d13eb","id":9249,"name":"ETHTransferFailed","nameLocation":"3648:17:22","nodeType":"ErrorDefinition","parameters":{"id":9248,"nodeType":"ParameterList","parameters":[],"src":"3665:2:22"},"src":"3642:26:22"},{"body":{"id":9264,"nodeType":"Block","src":"4082:52:22","statements":[{"expression":{"id":9262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9257,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9255,"src":"4092:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4109:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9260,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9252,"src":"4112:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9258,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[9265,9277,9484,9498],"referencedDeclaration":9277,"src":"4103:5:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:24:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4092:35:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9263,"nodeType":"ExpressionStatement","src":"4092:35:22"}]},"documentation":{"id":9250,"nodeType":"StructuredDocumentation","src":"3957:45:22","text":"@dev Deploys a clone of `implementation`."},"id":9265,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"4016:5:22","nodeType":"FunctionDefinition","parameters":{"id":9253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9252,"mutability":"mutable","name":"implementation","nameLocation":"4030:14:22","nodeType":"VariableDeclaration","scope":9265,"src":"4022:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9251,"name":"address","nodeType":"ElementaryTypeName","src":"4022:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4021:24:22"},"returnParameters":{"id":9256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9255,"mutability":"mutable","name":"instance","nameLocation":"4072:8:22","nodeType":"VariableDeclaration","scope":9265,"src":"4064:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9254,"name":"address","nodeType":"ElementaryTypeName","src":"4064:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4063:18:22"},"scope":10092,"src":"4007:127:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9276,"nodeType":"Block","src":"4328:5477:22","statements":[{"AST":{"nativeSrc":"4390:5409:22","nodeType":"YulBlock","src":"4390:5409:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9357:4:22","nodeType":"YulLiteral","src":"9357:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"9363:28:22","nodeType":"YulLiteral","src":"9363:28:22","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"9350:6:22","nodeType":"YulIdentifier","src":"9350:6:22"},"nativeSrc":"9350:42:22","nodeType":"YulFunctionCall","src":"9350:42:22"},"nativeSrc":"9350:42:22","nodeType":"YulExpressionStatement","src":"9350:42:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9412:4:22","nodeType":"YulLiteral","src":"9412:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"9418:14:22","nodeType":"YulIdentifier","src":"9418:14:22"}],"functionName":{"name":"mstore","nativeSrc":"9405:6:22","nodeType":"YulIdentifier","src":"9405:6:22"},"nativeSrc":"9405:28:22","nodeType":"YulFunctionCall","src":"9405:28:22"},"nativeSrc":"9405:28:22","nodeType":"YulExpressionStatement","src":"9405:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9453:4:22","nodeType":"YulLiteral","src":"9453:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9459:42:22","nodeType":"YulLiteral","src":"9459:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"9446:6:22","nodeType":"YulIdentifier","src":"9446:6:22"},"nativeSrc":"9446:56:22","nodeType":"YulFunctionCall","src":"9446:56:22"},"nativeSrc":"9446:56:22","nodeType":"YulExpressionStatement","src":"9446:56:22"},{"nativeSrc":"9515:37:22","nodeType":"YulAssignment","src":"9515:37:22","value":{"arguments":[{"name":"value","nativeSrc":"9534:5:22","nodeType":"YulIdentifier","src":"9534:5:22"},{"kind":"number","nativeSrc":"9541:4:22","nodeType":"YulLiteral","src":"9541:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9547:4:22","nodeType":"YulLiteral","src":"9547:4:22","type":"","value":"0x35"}],"functionName":{"name":"create","nativeSrc":"9527:6:22","nodeType":"YulIdentifier","src":"9527:6:22"},"nativeSrc":"9527:25:22","nodeType":"YulFunctionCall","src":"9527:25:22"},"variableNames":[{"name":"instance","nativeSrc":"9515:8:22","nodeType":"YulIdentifier","src":"9515:8:22"}]},{"body":{"nativeSrc":"9585:116:22","nodeType":"YulBlock","src":"9585:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9610:4:22","nodeType":"YulLiteral","src":"9610:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9616:10:22","nodeType":"YulLiteral","src":"9616:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"9603:6:22","nodeType":"YulIdentifier","src":"9603:6:22"},"nativeSrc":"9603:24:22","nodeType":"YulFunctionCall","src":"9603:24:22"},"nativeSrc":"9603:24:22","nodeType":"YulExpressionStatement","src":"9603:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9676:4:22","nodeType":"YulLiteral","src":"9676:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"9682:4:22","nodeType":"YulLiteral","src":"9682:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"9669:6:22","nodeType":"YulIdentifier","src":"9669:6:22"},"nativeSrc":"9669:18:22","nodeType":"YulFunctionCall","src":"9669:18:22"},"nativeSrc":"9669:18:22","nodeType":"YulExpressionStatement","src":"9669:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"9575:8:22","nodeType":"YulIdentifier","src":"9575:8:22"}],"functionName":{"name":"iszero","nativeSrc":"9568:6:22","nodeType":"YulIdentifier","src":"9568:6:22"},"nativeSrc":"9568:16:22","nodeType":"YulFunctionCall","src":"9568:16:22"},"nativeSrc":"9565:136:22","nodeType":"YulIf","src":"9565:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9721:4:22","nodeType":"YulLiteral","src":"9721:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"9727:1:22","nodeType":"YulLiteral","src":"9727:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9714:6:22","nodeType":"YulIdentifier","src":"9714:6:22"},"nativeSrc":"9714:15:22","nodeType":"YulFunctionCall","src":"9714:15:22"},"nativeSrc":"9714:15:22","nodeType":"YulExpressionStatement","src":"9714:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9270,"isOffset":false,"isSlot":false,"src":"9418:14:22","valueSize":1},{"declaration":9273,"isOffset":false,"isSlot":false,"src":"9515:8:22","valueSize":1},{"declaration":9273,"isOffset":false,"isSlot":false,"src":"9575:8:22","valueSize":1},{"declaration":9268,"isOffset":false,"isSlot":false,"src":"9534:5:22","valueSize":1}],"id":9275,"nodeType":"InlineAssembly","src":"4381:5418:22"}]},"documentation":{"id":9266,"nodeType":"StructuredDocumentation","src":"4140:93:22","text":"@dev Deploys a clone of `implementation`.\n Deposits `value` ETH during deployment."},"id":9277,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"4247:5:22","nodeType":"FunctionDefinition","parameters":{"id":9271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9268,"mutability":"mutable","name":"value","nameLocation":"4261:5:22","nodeType":"VariableDeclaration","scope":9277,"src":"4253:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4253:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9270,"mutability":"mutable","name":"implementation","nameLocation":"4276:14:22","nodeType":"VariableDeclaration","scope":9277,"src":"4268:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9269,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4252:39:22"},"returnParameters":{"id":9274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9273,"mutability":"mutable","name":"instance","nameLocation":"4318:8:22","nodeType":"VariableDeclaration","scope":9277,"src":"4310:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9272,"name":"address","nodeType":"ElementaryTypeName","src":"4310:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4309:18:22"},"scope":10092,"src":"4238:5567:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9295,"nodeType":"Block","src":"10009:71:22","statements":[{"expression":{"id":9293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9287,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9285,"src":"10019:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10049:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9290,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9280,"src":"10052:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9291,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9282,"src":"10068:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9288,"name":"cloneDeterministic","nodeType":"Identifier","overloadedDeclarations":[9296,9310,9520,9536],"referencedDeclaration":9310,"src":"10030:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10030:43:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10019:54:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9294,"nodeType":"ExpressionStatement","src":"10019:54:22"}]},"documentation":{"id":9278,"nodeType":"StructuredDocumentation","src":"9811:71:22","text":"@dev Deploys a deterministic clone of `implementation` with `salt`."},"id":9296,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"9896:18:22","nodeType":"FunctionDefinition","parameters":{"id":9283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9280,"mutability":"mutable","name":"implementation","nameLocation":"9923:14:22","nodeType":"VariableDeclaration","scope":9296,"src":"9915:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9279,"name":"address","nodeType":"ElementaryTypeName","src":"9915:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9282,"mutability":"mutable","name":"salt","nameLocation":"9947:4:22","nodeType":"VariableDeclaration","scope":9296,"src":"9939:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9939:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9914:38:22"},"returnParameters":{"id":9286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9285,"mutability":"mutable","name":"instance","nameLocation":"9995:8:22","nodeType":"VariableDeclaration","scope":9296,"src":"9987:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9284,"name":"address","nodeType":"ElementaryTypeName","src":"9987:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9986:18:22"},"scope":10092,"src":"9887:193:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9309,"nodeType":"Block","src":"10347:538:22","statements":[{"AST":{"nativeSrc":"10409:470:22","nodeType":"YulBlock","src":"10409:470:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10430:4:22","nodeType":"YulLiteral","src":"10430:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"10436:28:22","nodeType":"YulLiteral","src":"10436:28:22","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"10423:6:22","nodeType":"YulIdentifier","src":"10423:6:22"},"nativeSrc":"10423:42:22","nodeType":"YulFunctionCall","src":"10423:42:22"},"nativeSrc":"10423:42:22","nodeType":"YulExpressionStatement","src":"10423:42:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10485:4:22","nodeType":"YulLiteral","src":"10485:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"10491:14:22","nodeType":"YulIdentifier","src":"10491:14:22"}],"functionName":{"name":"mstore","nativeSrc":"10478:6:22","nodeType":"YulIdentifier","src":"10478:6:22"},"nativeSrc":"10478:28:22","nodeType":"YulFunctionCall","src":"10478:28:22"},"nativeSrc":"10478:28:22","nodeType":"YulExpressionStatement","src":"10478:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10526:4:22","nodeType":"YulLiteral","src":"10526:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10532:42:22","nodeType":"YulLiteral","src":"10532:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"10519:6:22","nodeType":"YulIdentifier","src":"10519:6:22"},"nativeSrc":"10519:56:22","nodeType":"YulFunctionCall","src":"10519:56:22"},"nativeSrc":"10519:56:22","nodeType":"YulExpressionStatement","src":"10519:56:22"},{"nativeSrc":"10588:44:22","nodeType":"YulAssignment","src":"10588:44:22","value":{"arguments":[{"name":"value","nativeSrc":"10608:5:22","nodeType":"YulIdentifier","src":"10608:5:22"},{"kind":"number","nativeSrc":"10615:4:22","nodeType":"YulLiteral","src":"10615:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10621:4:22","nodeType":"YulLiteral","src":"10621:4:22","type":"","value":"0x35"},{"name":"salt","nativeSrc":"10627:4:22","nodeType":"YulIdentifier","src":"10627:4:22"}],"functionName":{"name":"create2","nativeSrc":"10600:7:22","nodeType":"YulIdentifier","src":"10600:7:22"},"nativeSrc":"10600:32:22","nodeType":"YulFunctionCall","src":"10600:32:22"},"variableNames":[{"name":"instance","nativeSrc":"10588:8:22","nodeType":"YulIdentifier","src":"10588:8:22"}]},{"body":{"nativeSrc":"10665:116:22","nodeType":"YulBlock","src":"10665:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10690:4:22","nodeType":"YulLiteral","src":"10690:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10696:10:22","nodeType":"YulLiteral","src":"10696:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"10683:6:22","nodeType":"YulIdentifier","src":"10683:6:22"},"nativeSrc":"10683:24:22","nodeType":"YulFunctionCall","src":"10683:24:22"},"nativeSrc":"10683:24:22","nodeType":"YulExpressionStatement","src":"10683:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10756:4:22","nodeType":"YulLiteral","src":"10756:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10762:4:22","nodeType":"YulLiteral","src":"10762:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10749:6:22","nodeType":"YulIdentifier","src":"10749:6:22"},"nativeSrc":"10749:18:22","nodeType":"YulFunctionCall","src":"10749:18:22"},"nativeSrc":"10749:18:22","nodeType":"YulExpressionStatement","src":"10749:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"10655:8:22","nodeType":"YulIdentifier","src":"10655:8:22"}],"functionName":{"name":"iszero","nativeSrc":"10648:6:22","nodeType":"YulIdentifier","src":"10648:6:22"},"nativeSrc":"10648:16:22","nodeType":"YulFunctionCall","src":"10648:16:22"},"nativeSrc":"10645:136:22","nodeType":"YulIf","src":"10645:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10801:4:22","nodeType":"YulLiteral","src":"10801:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"10807:1:22","nodeType":"YulLiteral","src":"10807:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10794:6:22","nodeType":"YulIdentifier","src":"10794:6:22"},"nativeSrc":"10794:15:22","nodeType":"YulFunctionCall","src":"10794:15:22"},"nativeSrc":"10794:15:22","nodeType":"YulExpressionStatement","src":"10794:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9301,"isOffset":false,"isSlot":false,"src":"10491:14:22","valueSize":1},{"declaration":9306,"isOffset":false,"isSlot":false,"src":"10588:8:22","valueSize":1},{"declaration":9306,"isOffset":false,"isSlot":false,"src":"10655:8:22","valueSize":1},{"declaration":9303,"isOffset":false,"isSlot":false,"src":"10627:4:22","valueSize":1},{"declaration":9299,"isOffset":false,"isSlot":false,"src":"10608:5:22","valueSize":1}],"id":9308,"nodeType":"InlineAssembly","src":"10400:479:22"}]},"documentation":{"id":9297,"nodeType":"StructuredDocumentation","src":"10086:119:22","text":"@dev Deploys a deterministic clone of `implementation` with `salt`.\n Deposits `value` ETH during deployment."},"id":9310,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"10219:18:22","nodeType":"FunctionDefinition","parameters":{"id":9304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9299,"mutability":"mutable","name":"value","nameLocation":"10246:5:22","nodeType":"VariableDeclaration","scope":9310,"src":"10238:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9298,"name":"uint256","nodeType":"ElementaryTypeName","src":"10238:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9301,"mutability":"mutable","name":"implementation","nameLocation":"10261:14:22","nodeType":"VariableDeclaration","scope":9310,"src":"10253:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9300,"name":"address","nodeType":"ElementaryTypeName","src":"10253:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9303,"mutability":"mutable","name":"salt","nameLocation":"10285:4:22","nodeType":"VariableDeclaration","scope":9310,"src":"10277:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10277:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10237:53:22"},"returnParameters":{"id":9307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9306,"mutability":"mutable","name":"instance","nameLocation":"10333:8:22","nodeType":"VariableDeclaration","scope":9310,"src":"10325:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9305,"name":"address","nodeType":"ElementaryTypeName","src":"10325:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10324:18:22"},"scope":10092,"src":"10210:675:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9319,"nodeType":"Block","src":"11056:457:22","statements":[{"AST":{"nativeSrc":"11118:389:22","nodeType":"YulBlock","src":"11118:389:22","statements":[{"nativeSrc":"11132:21:22","nodeType":"YulAssignment","src":"11132:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"11148:4:22","nodeType":"YulLiteral","src":"11148:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11142:5:22","nodeType":"YulIdentifier","src":"11142:5:22"},"nativeSrc":"11142:11:22","nodeType":"YulFunctionCall","src":"11142:11:22"},"variableNames":[{"name":"result","nativeSrc":"11132:6:22","nodeType":"YulIdentifier","src":"11132:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11177:6:22","nodeType":"YulIdentifier","src":"11177:6:22"},{"kind":"number","nativeSrc":"11185:4:22","nodeType":"YulLiteral","src":"11185:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11173:3:22","nodeType":"YulIdentifier","src":"11173:3:22"},"nativeSrc":"11173:17:22","nodeType":"YulFunctionCall","src":"11173:17:22"},{"kind":"number","nativeSrc":"11192:50:22","nodeType":"YulLiteral","src":"11192:50:22","type":"","value":"0x5af43d3d93803e602a57fd5bf30000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"11166:6:22","nodeType":"YulIdentifier","src":"11166:6:22"},"nativeSrc":"11166:77:22","nodeType":"YulFunctionCall","src":"11166:77:22"},"nativeSrc":"11166:77:22","nodeType":"YulExpressionStatement","src":"11166:77:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11267:6:22","nodeType":"YulIdentifier","src":"11267:6:22"},{"kind":"number","nativeSrc":"11275:4:22","nodeType":"YulLiteral","src":"11275:4:22","type":"","value":"0x28"}],"functionName":{"name":"add","nativeSrc":"11263:3:22","nodeType":"YulIdentifier","src":"11263:3:22"},"nativeSrc":"11263:17:22","nodeType":"YulFunctionCall","src":"11263:17:22"},{"name":"implementation","nativeSrc":"11282:14:22","nodeType":"YulIdentifier","src":"11282:14:22"}],"functionName":{"name":"mstore","nativeSrc":"11256:6:22","nodeType":"YulIdentifier","src":"11256:6:22"},"nativeSrc":"11256:41:22","nodeType":"YulFunctionCall","src":"11256:41:22"},"nativeSrc":"11256:41:22","nodeType":"YulExpressionStatement","src":"11256:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11321:6:22","nodeType":"YulIdentifier","src":"11321:6:22"},{"kind":"number","nativeSrc":"11329:4:22","nodeType":"YulLiteral","src":"11329:4:22","type":"","value":"0x14"}],"functionName":{"name":"add","nativeSrc":"11317:3:22","nodeType":"YulIdentifier","src":"11317:3:22"},"nativeSrc":"11317:17:22","nodeType":"YulFunctionCall","src":"11317:17:22"},{"kind":"number","nativeSrc":"11336:42:22","nodeType":"YulLiteral","src":"11336:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"11310:6:22","nodeType":"YulIdentifier","src":"11310:6:22"},"nativeSrc":"11310:69:22","nodeType":"YulFunctionCall","src":"11310:69:22"},"nativeSrc":"11310:69:22","nodeType":"YulExpressionStatement","src":"11310:69:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"11399:6:22","nodeType":"YulIdentifier","src":"11399:6:22"},{"kind":"number","nativeSrc":"11407:4:22","nodeType":"YulLiteral","src":"11407:4:22","type":"","value":"0x35"}],"functionName":{"name":"mstore","nativeSrc":"11392:6:22","nodeType":"YulIdentifier","src":"11392:6:22"},"nativeSrc":"11392:20:22","nodeType":"YulFunctionCall","src":"11392:20:22"},"nativeSrc":"11392:20:22","nodeType":"YulExpressionStatement","src":"11392:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11453:4:22","nodeType":"YulLiteral","src":"11453:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"11463:6:22","nodeType":"YulIdentifier","src":"11463:6:22"},{"kind":"number","nativeSrc":"11471:4:22","nodeType":"YulLiteral","src":"11471:4:22","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11459:3:22","nodeType":"YulIdentifier","src":"11459:3:22"},"nativeSrc":"11459:17:22","nodeType":"YulFunctionCall","src":"11459:17:22"}],"functionName":{"name":"mstore","nativeSrc":"11446:6:22","nodeType":"YulIdentifier","src":"11446:6:22"},"nativeSrc":"11446:31:22","nodeType":"YulFunctionCall","src":"11446:31:22"},"nativeSrc":"11446:31:22","nodeType":"YulExpressionStatement","src":"11446:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9313,"isOffset":false,"isSlot":false,"src":"11282:14:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11132:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11177:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11267:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11321:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11399:6:22","valueSize":1},{"declaration":9316,"isOffset":false,"isSlot":false,"src":"11463:6:22","valueSize":1}],"id":9318,"nodeType":"InlineAssembly","src":"11109:398:22"}]},"documentation":{"id":9311,"nodeType":"StructuredDocumentation","src":"10891:74:22","text":"@dev Returns the initialization code of the clone of `implementation`."},"id":9320,"implemented":true,"kind":"function","modifiers":[],"name":"initCode","nameLocation":"10979:8:22","nodeType":"FunctionDefinition","parameters":{"id":9314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9313,"mutability":"mutable","name":"implementation","nameLocation":"10996:14:22","nodeType":"VariableDeclaration","scope":9320,"src":"10988:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9312,"name":"address","nodeType":"ElementaryTypeName","src":"10988:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10987:24:22"},"returnParameters":{"id":9317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9316,"mutability":"mutable","name":"result","nameLocation":"11048:6:22","nodeType":"VariableDeclaration","scope":9320,"src":"11035:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9315,"name":"bytes","nodeType":"ElementaryTypeName","src":"11035:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11034:21:22"},"scope":10092,"src":"10970:543:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9329,"nodeType":"Block","src":"11747:374:22","statements":[{"AST":{"nativeSrc":"11809:306:22","nodeType":"YulBlock","src":"11809:306:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11830:4:22","nodeType":"YulLiteral","src":"11830:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"11836:28:22","nodeType":"YulLiteral","src":"11836:28:22","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"11823:6:22","nodeType":"YulIdentifier","src":"11823:6:22"},"nativeSrc":"11823:42:22","nodeType":"YulFunctionCall","src":"11823:42:22"},"nativeSrc":"11823:42:22","nodeType":"YulExpressionStatement","src":"11823:42:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11885:4:22","nodeType":"YulLiteral","src":"11885:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"11891:14:22","nodeType":"YulIdentifier","src":"11891:14:22"}],"functionName":{"name":"mstore","nativeSrc":"11878:6:22","nodeType":"YulIdentifier","src":"11878:6:22"},"nativeSrc":"11878:28:22","nodeType":"YulFunctionCall","src":"11878:28:22"},"nativeSrc":"11878:28:22","nodeType":"YulExpressionStatement","src":"11878:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11926:4:22","nodeType":"YulLiteral","src":"11926:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11932:42:22","nodeType":"YulLiteral","src":"11932:42:22","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"11919:6:22","nodeType":"YulIdentifier","src":"11919:6:22"},"nativeSrc":"11919:56:22","nodeType":"YulFunctionCall","src":"11919:56:22"},"nativeSrc":"11919:56:22","nodeType":"YulExpressionStatement","src":"11919:56:22"},{"nativeSrc":"11988:29:22","nodeType":"YulAssignment","src":"11988:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"12006:4:22","nodeType":"YulLiteral","src":"12006:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12012:4:22","nodeType":"YulLiteral","src":"12012:4:22","type":"","value":"0x35"}],"functionName":{"name":"keccak256","nativeSrc":"11996:9:22","nodeType":"YulIdentifier","src":"11996:9:22"},"nativeSrc":"11996:21:22","nodeType":"YulFunctionCall","src":"11996:21:22"},"variableNames":[{"name":"hash","nativeSrc":"11988:4:22","nodeType":"YulIdentifier","src":"11988:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12037:4:22","nodeType":"YulLiteral","src":"12037:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"12043:1:22","nodeType":"YulLiteral","src":"12043:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12030:6:22","nodeType":"YulIdentifier","src":"12030:6:22"},"nativeSrc":"12030:15:22","nodeType":"YulFunctionCall","src":"12030:15:22"},"nativeSrc":"12030:15:22","nodeType":"YulExpressionStatement","src":"12030:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9326,"isOffset":false,"isSlot":false,"src":"11988:4:22","valueSize":1},{"declaration":9323,"isOffset":false,"isSlot":false,"src":"11891:14:22","valueSize":1}],"id":9328,"nodeType":"InlineAssembly","src":"11800:315:22"}]},"documentation":{"id":9321,"nodeType":"StructuredDocumentation","src":"11519:140:22","text":"@dev Returns the initialization code hash of the clone of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9330,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash","nameLocation":"11673:12:22","nodeType":"FunctionDefinition","parameters":{"id":9324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9323,"mutability":"mutable","name":"implementation","nameLocation":"11694:14:22","nodeType":"VariableDeclaration","scope":9330,"src":"11686:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"11686:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11685:24:22"},"returnParameters":{"id":9327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9326,"mutability":"mutable","name":"hash","nameLocation":"11741:4:22","nodeType":"VariableDeclaration","scope":9330,"src":"11733:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11733:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11732:14:22"},"scope":10092,"src":"11664:457:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9356,"nodeType":"Block","src":"12499:131:22","statements":[{"assignments":[9343],"declarations":[{"constant":false,"id":9343,"mutability":"mutable","name":"hash","nameLocation":"12517:4:22","nodeType":"VariableDeclaration","scope":9356,"src":"12509:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12509:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9347,"initialValue":{"arguments":[{"id":9345,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"12537:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9344,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[9330,9560],"referencedDeclaration":9330,"src":"12524:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12524:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12509:43:22"},{"expression":{"id":9354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9348,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9340,"src":"12562:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9350,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9343,"src":"12602:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9351,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9335,"src":"12608:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9352,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"12614:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9349,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"12574:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12562:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9355,"nodeType":"ExpressionStatement","src":"12562:61:22"}]},"documentation":{"id":9331,"nodeType":"StructuredDocumentation","src":"12127:204:22","text":"@dev Returns the address of the deterministic clone of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9357,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"12345:27:22","nodeType":"FunctionDefinition","parameters":{"id":9338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9333,"mutability":"mutable","name":"implementation","nameLocation":"12381:14:22","nodeType":"VariableDeclaration","scope":9357,"src":"12373:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9332,"name":"address","nodeType":"ElementaryTypeName","src":"12373:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9335,"mutability":"mutable","name":"salt","nameLocation":"12405:4:22","nodeType":"VariableDeclaration","scope":9357,"src":"12397:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12397:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9337,"mutability":"mutable","name":"deployer","nameLocation":"12419:8:22","nodeType":"VariableDeclaration","scope":9357,"src":"12411:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9336,"name":"address","nodeType":"ElementaryTypeName","src":"12411:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12372:56:22"},"returnParameters":{"id":9341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9340,"mutability":"mutable","name":"predicted","nameLocation":"12484:9:22","nodeType":"VariableDeclaration","scope":9357,"src":"12476:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9339,"name":"address","nodeType":"ElementaryTypeName","src":"12476:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12475:19:22"},"scope":10092,"src":"12336:294:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9372,"nodeType":"Block","src":"13056:58:22","statements":[{"expression":{"id":9370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9365,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9363,"src":"13066:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13089:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9368,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9360,"src":"13092:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9366,"name":"clone_PUSH0","nodeType":"Identifier","overloadedDeclarations":[9373,9385],"referencedDeclaration":9385,"src":"13077:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13077:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13066:41:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9371,"nodeType":"ExpressionStatement","src":"13066:41:22"}]},"documentation":{"id":9358,"nodeType":"StructuredDocumentation","src":"12919:51:22","text":"@dev Deploys a PUSH0 clone of `implementation`."},"id":9373,"implemented":true,"kind":"function","modifiers":[],"name":"clone_PUSH0","nameLocation":"12984:11:22","nodeType":"FunctionDefinition","parameters":{"id":9361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9360,"mutability":"mutable","name":"implementation","nameLocation":"13004:14:22","nodeType":"VariableDeclaration","scope":9373,"src":"12996:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9359,"name":"address","nodeType":"ElementaryTypeName","src":"12996:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12995:24:22"},"returnParameters":{"id":9364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9363,"mutability":"mutable","name":"instance","nameLocation":"13046:8:22","nodeType":"VariableDeclaration","scope":9373,"src":"13038:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9362,"name":"address","nodeType":"ElementaryTypeName","src":"13038:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13037:18:22"},"scope":10092,"src":"12975:139:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9384,"nodeType":"Block","src":"13340:5591:22","statements":[{"AST":{"nativeSrc":"13402:5523:22","nodeType":"YulBlock","src":"13402:5523:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18460:4:22","nodeType":"YulLiteral","src":"18460:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"18466:34:22","nodeType":"YulLiteral","src":"18466:34:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"18453:6:22","nodeType":"YulIdentifier","src":"18453:6:22"},"nativeSrc":"18453:48:22","nodeType":"YulFunctionCall","src":"18453:48:22"},"nativeSrc":"18453:48:22","nodeType":"YulExpressionStatement","src":"18453:48:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18527:4:22","nodeType":"YulLiteral","src":"18527:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"18533:14:22","nodeType":"YulIdentifier","src":"18533:14:22"}],"functionName":{"name":"mstore","nativeSrc":"18520:6:22","nodeType":"YulIdentifier","src":"18520:6:22"},"nativeSrc":"18520:28:22","nodeType":"YulFunctionCall","src":"18520:28:22"},"nativeSrc":"18520:28:22","nodeType":"YulExpressionStatement","src":"18520:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18574:4:22","nodeType":"YulLiteral","src":"18574:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18580:38:22","nodeType":"YulLiteral","src":"18580:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"18567:6:22","nodeType":"YulIdentifier","src":"18567:6:22"},"nativeSrc":"18567:52:22","nodeType":"YulFunctionCall","src":"18567:52:22"},"nativeSrc":"18567:52:22","nodeType":"YulExpressionStatement","src":"18567:52:22"},{"nativeSrc":"18641:37:22","nodeType":"YulAssignment","src":"18641:37:22","value":{"arguments":[{"name":"value","nativeSrc":"18660:5:22","nodeType":"YulIdentifier","src":"18660:5:22"},{"kind":"number","nativeSrc":"18667:4:22","nodeType":"YulLiteral","src":"18667:4:22","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"18673:4:22","nodeType":"YulLiteral","src":"18673:4:22","type":"","value":"0x36"}],"functionName":{"name":"create","nativeSrc":"18653:6:22","nodeType":"YulIdentifier","src":"18653:6:22"},"nativeSrc":"18653:25:22","nodeType":"YulFunctionCall","src":"18653:25:22"},"variableNames":[{"name":"instance","nativeSrc":"18641:8:22","nodeType":"YulIdentifier","src":"18641:8:22"}]},{"body":{"nativeSrc":"18711:116:22","nodeType":"YulBlock","src":"18711:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18736:4:22","nodeType":"YulLiteral","src":"18736:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18742:10:22","nodeType":"YulLiteral","src":"18742:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"18729:6:22","nodeType":"YulIdentifier","src":"18729:6:22"},"nativeSrc":"18729:24:22","nodeType":"YulFunctionCall","src":"18729:24:22"},"nativeSrc":"18729:24:22","nodeType":"YulExpressionStatement","src":"18729:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18802:4:22","nodeType":"YulLiteral","src":"18802:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18808:4:22","nodeType":"YulLiteral","src":"18808:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18795:6:22","nodeType":"YulIdentifier","src":"18795:6:22"},"nativeSrc":"18795:18:22","nodeType":"YulFunctionCall","src":"18795:18:22"},"nativeSrc":"18795:18:22","nodeType":"YulExpressionStatement","src":"18795:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"18701:8:22","nodeType":"YulIdentifier","src":"18701:8:22"}],"functionName":{"name":"iszero","nativeSrc":"18694:6:22","nodeType":"YulIdentifier","src":"18694:6:22"},"nativeSrc":"18694:16:22","nodeType":"YulFunctionCall","src":"18694:16:22"},"nativeSrc":"18691:136:22","nodeType":"YulIf","src":"18691:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18847:4:22","nodeType":"YulLiteral","src":"18847:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"18853:1:22","nodeType":"YulLiteral","src":"18853:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18840:6:22","nodeType":"YulIdentifier","src":"18840:6:22"},"nativeSrc":"18840:15:22","nodeType":"YulFunctionCall","src":"18840:15:22"},"nativeSrc":"18840:15:22","nodeType":"YulExpressionStatement","src":"18840:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9378,"isOffset":false,"isSlot":false,"src":"18533:14:22","valueSize":1},{"declaration":9381,"isOffset":false,"isSlot":false,"src":"18641:8:22","valueSize":1},{"declaration":9381,"isOffset":false,"isSlot":false,"src":"18701:8:22","valueSize":1},{"declaration":9376,"isOffset":false,"isSlot":false,"src":"18660:5:22","valueSize":1}],"id":9383,"nodeType":"InlineAssembly","src":"13393:5532:22"}]},"documentation":{"id":9374,"nodeType":"StructuredDocumentation","src":"13120:99:22","text":"@dev Deploys a PUSH0 clone of `implementation`.\n Deposits `value` ETH during deployment."},"id":9385,"implemented":true,"kind":"function","modifiers":[],"name":"clone_PUSH0","nameLocation":"13233:11:22","nodeType":"FunctionDefinition","parameters":{"id":9379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9376,"mutability":"mutable","name":"value","nameLocation":"13253:5:22","nodeType":"VariableDeclaration","scope":9385,"src":"13245:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9375,"name":"uint256","nodeType":"ElementaryTypeName","src":"13245:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9378,"mutability":"mutable","name":"implementation","nameLocation":"13268:14:22","nodeType":"VariableDeclaration","scope":9385,"src":"13260:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9377,"name":"address","nodeType":"ElementaryTypeName","src":"13260:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13244:39:22"},"returnParameters":{"id":9382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9381,"mutability":"mutable","name":"instance","nameLocation":"13326:8:22","nodeType":"VariableDeclaration","scope":9385,"src":"13318:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9380,"name":"address","nodeType":"ElementaryTypeName","src":"13318:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13317:18:22"},"scope":10092,"src":"13224:5707:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9403,"nodeType":"Block","src":"19147:77:22","statements":[{"expression":{"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9395,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9393,"src":"19157:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19193:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9398,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9388,"src":"19196:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9399,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"19212:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9396,"name":"cloneDeterministic_PUSH0","nodeType":"Identifier","overloadedDeclarations":[9404,9418],"referencedDeclaration":9418,"src":"19168:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19168:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19157:60:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9402,"nodeType":"ExpressionStatement","src":"19157:60:22"}]},"documentation":{"id":9386,"nodeType":"StructuredDocumentation","src":"18937:77:22","text":"@dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`."},"id":9404,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic_PUSH0","nameLocation":"19028:24:22","nodeType":"FunctionDefinition","parameters":{"id":9391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9388,"mutability":"mutable","name":"implementation","nameLocation":"19061:14:22","nodeType":"VariableDeclaration","scope":9404,"src":"19053:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9387,"name":"address","nodeType":"ElementaryTypeName","src":"19053:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9390,"mutability":"mutable","name":"salt","nameLocation":"19085:4:22","nodeType":"VariableDeclaration","scope":9404,"src":"19077:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19077:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19052:38:22"},"returnParameters":{"id":9394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9393,"mutability":"mutable","name":"instance","nameLocation":"19133:8:22","nodeType":"VariableDeclaration","scope":9404,"src":"19125:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9392,"name":"address","nodeType":"ElementaryTypeName","src":"19125:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19124:18:22"},"scope":10092,"src":"19019:205:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9417,"nodeType":"Block","src":"19503:561:22","statements":[{"AST":{"nativeSrc":"19565:493:22","nodeType":"YulBlock","src":"19565:493:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19586:4:22","nodeType":"YulLiteral","src":"19586:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19592:34:22","nodeType":"YulLiteral","src":"19592:34:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"19579:6:22","nodeType":"YulIdentifier","src":"19579:6:22"},"nativeSrc":"19579:48:22","nodeType":"YulFunctionCall","src":"19579:48:22"},"nativeSrc":"19579:48:22","nodeType":"YulExpressionStatement","src":"19579:48:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19653:4:22","nodeType":"YulLiteral","src":"19653:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"19659:14:22","nodeType":"YulIdentifier","src":"19659:14:22"}],"functionName":{"name":"mstore","nativeSrc":"19646:6:22","nodeType":"YulIdentifier","src":"19646:6:22"},"nativeSrc":"19646:28:22","nodeType":"YulFunctionCall","src":"19646:28:22"},"nativeSrc":"19646:28:22","nodeType":"YulExpressionStatement","src":"19646:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19700:4:22","nodeType":"YulLiteral","src":"19700:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19706:38:22","nodeType":"YulLiteral","src":"19706:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"19693:6:22","nodeType":"YulIdentifier","src":"19693:6:22"},"nativeSrc":"19693:52:22","nodeType":"YulFunctionCall","src":"19693:52:22"},"nativeSrc":"19693:52:22","nodeType":"YulExpressionStatement","src":"19693:52:22"},{"nativeSrc":"19767:44:22","nodeType":"YulAssignment","src":"19767:44:22","value":{"arguments":[{"name":"value","nativeSrc":"19787:5:22","nodeType":"YulIdentifier","src":"19787:5:22"},{"kind":"number","nativeSrc":"19794:4:22","nodeType":"YulLiteral","src":"19794:4:22","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"19800:4:22","nodeType":"YulLiteral","src":"19800:4:22","type":"","value":"0x36"},{"name":"salt","nativeSrc":"19806:4:22","nodeType":"YulIdentifier","src":"19806:4:22"}],"functionName":{"name":"create2","nativeSrc":"19779:7:22","nodeType":"YulIdentifier","src":"19779:7:22"},"nativeSrc":"19779:32:22","nodeType":"YulFunctionCall","src":"19779:32:22"},"variableNames":[{"name":"instance","nativeSrc":"19767:8:22","nodeType":"YulIdentifier","src":"19767:8:22"}]},{"body":{"nativeSrc":"19844:116:22","nodeType":"YulBlock","src":"19844:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19869:4:22","nodeType":"YulLiteral","src":"19869:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19875:10:22","nodeType":"YulLiteral","src":"19875:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"19862:6:22","nodeType":"YulIdentifier","src":"19862:6:22"},"nativeSrc":"19862:24:22","nodeType":"YulFunctionCall","src":"19862:24:22"},"nativeSrc":"19862:24:22","nodeType":"YulExpressionStatement","src":"19862:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19935:4:22","nodeType":"YulLiteral","src":"19935:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"19941:4:22","nodeType":"YulLiteral","src":"19941:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"19928:6:22","nodeType":"YulIdentifier","src":"19928:6:22"},"nativeSrc":"19928:18:22","nodeType":"YulFunctionCall","src":"19928:18:22"},"nativeSrc":"19928:18:22","nodeType":"YulExpressionStatement","src":"19928:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"19834:8:22","nodeType":"YulIdentifier","src":"19834:8:22"}],"functionName":{"name":"iszero","nativeSrc":"19827:6:22","nodeType":"YulIdentifier","src":"19827:6:22"},"nativeSrc":"19827:16:22","nodeType":"YulFunctionCall","src":"19827:16:22"},"nativeSrc":"19824:136:22","nodeType":"YulIf","src":"19824:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19980:4:22","nodeType":"YulLiteral","src":"19980:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19986:1:22","nodeType":"YulLiteral","src":"19986:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19973:6:22","nodeType":"YulIdentifier","src":"19973:6:22"},"nativeSrc":"19973:15:22","nodeType":"YulFunctionCall","src":"19973:15:22"},"nativeSrc":"19973:15:22","nodeType":"YulExpressionStatement","src":"19973:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9409,"isOffset":false,"isSlot":false,"src":"19659:14:22","valueSize":1},{"declaration":9414,"isOffset":false,"isSlot":false,"src":"19767:8:22","valueSize":1},{"declaration":9414,"isOffset":false,"isSlot":false,"src":"19834:8:22","valueSize":1},{"declaration":9411,"isOffset":false,"isSlot":false,"src":"19806:4:22","valueSize":1},{"declaration":9407,"isOffset":false,"isSlot":false,"src":"19787:5:22","valueSize":1}],"id":9416,"nodeType":"InlineAssembly","src":"19556:502:22"}]},"documentation":{"id":9405,"nodeType":"StructuredDocumentation","src":"19230:125:22","text":"@dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n Deposits `value` ETH during deployment."},"id":9418,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic_PUSH0","nameLocation":"19369:24:22","nodeType":"FunctionDefinition","parameters":{"id":9412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9407,"mutability":"mutable","name":"value","nameLocation":"19402:5:22","nodeType":"VariableDeclaration","scope":9418,"src":"19394:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9406,"name":"uint256","nodeType":"ElementaryTypeName","src":"19394:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9409,"mutability":"mutable","name":"implementation","nameLocation":"19417:14:22","nodeType":"VariableDeclaration","scope":9418,"src":"19409:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9408,"name":"address","nodeType":"ElementaryTypeName","src":"19409:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9411,"mutability":"mutable","name":"salt","nameLocation":"19441:4:22","nodeType":"VariableDeclaration","scope":9418,"src":"19433:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19433:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19393:53:22"},"returnParameters":{"id":9415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9414,"mutability":"mutable","name":"instance","nameLocation":"19489:8:22","nodeType":"VariableDeclaration","scope":9418,"src":"19481:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9413,"name":"address","nodeType":"ElementaryTypeName","src":"19481:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19480:18:22"},"scope":10092,"src":"19360:704:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9427,"nodeType":"Block","src":"20247:478:22","statements":[{"AST":{"nativeSrc":"20309:410:22","nodeType":"YulBlock","src":"20309:410:22","statements":[{"nativeSrc":"20323:21:22","nodeType":"YulAssignment","src":"20323:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"20339:4:22","nodeType":"YulLiteral","src":"20339:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20333:5:22","nodeType":"YulIdentifier","src":"20333:5:22"},"nativeSrc":"20333:11:22","nodeType":"YulFunctionCall","src":"20333:11:22"},"variableNames":[{"name":"result","nativeSrc":"20323:6:22","nodeType":"YulIdentifier","src":"20323:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20368:6:22","nodeType":"YulIdentifier","src":"20368:6:22"},{"kind":"number","nativeSrc":"20376:4:22","nodeType":"YulLiteral","src":"20376:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20364:3:22","nodeType":"YulIdentifier","src":"20364:3:22"},"nativeSrc":"20364:17:22","nodeType":"YulFunctionCall","src":"20364:17:22"},{"kind":"number","nativeSrc":"20383:54:22","nodeType":"YulLiteral","src":"20383:54:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff300000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"20357:6:22","nodeType":"YulIdentifier","src":"20357:6:22"},"nativeSrc":"20357:81:22","nodeType":"YulFunctionCall","src":"20357:81:22"},"nativeSrc":"20357:81:22","nodeType":"YulExpressionStatement","src":"20357:81:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20468:6:22","nodeType":"YulIdentifier","src":"20468:6:22"},{"kind":"number","nativeSrc":"20476:4:22","nodeType":"YulLiteral","src":"20476:4:22","type":"","value":"0x26"}],"functionName":{"name":"add","nativeSrc":"20464:3:22","nodeType":"YulIdentifier","src":"20464:3:22"},"nativeSrc":"20464:17:22","nodeType":"YulFunctionCall","src":"20464:17:22"},{"name":"implementation","nativeSrc":"20483:14:22","nodeType":"YulIdentifier","src":"20483:14:22"}],"functionName":{"name":"mstore","nativeSrc":"20457:6:22","nodeType":"YulIdentifier","src":"20457:6:22"},"nativeSrc":"20457:41:22","nodeType":"YulFunctionCall","src":"20457:41:22"},"nativeSrc":"20457:41:22","nodeType":"YulExpressionStatement","src":"20457:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20528:6:22","nodeType":"YulIdentifier","src":"20528:6:22"},{"kind":"number","nativeSrc":"20536:4:22","nodeType":"YulLiteral","src":"20536:4:22","type":"","value":"0x12"}],"functionName":{"name":"add","nativeSrc":"20524:3:22","nodeType":"YulIdentifier","src":"20524:3:22"},"nativeSrc":"20524:17:22","nodeType":"YulFunctionCall","src":"20524:17:22"},{"kind":"number","nativeSrc":"20543:38:22","nodeType":"YulLiteral","src":"20543:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"20517:6:22","nodeType":"YulIdentifier","src":"20517:6:22"},"nativeSrc":"20517:65:22","nodeType":"YulFunctionCall","src":"20517:65:22"},"nativeSrc":"20517:65:22","nodeType":"YulExpressionStatement","src":"20517:65:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"20611:6:22","nodeType":"YulIdentifier","src":"20611:6:22"},{"kind":"number","nativeSrc":"20619:4:22","nodeType":"YulLiteral","src":"20619:4:22","type":"","value":"0x36"}],"functionName":{"name":"mstore","nativeSrc":"20604:6:22","nodeType":"YulIdentifier","src":"20604:6:22"},"nativeSrc":"20604:20:22","nodeType":"YulFunctionCall","src":"20604:20:22"},"nativeSrc":"20604:20:22","nodeType":"YulExpressionStatement","src":"20604:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20665:4:22","nodeType":"YulLiteral","src":"20665:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"20675:6:22","nodeType":"YulIdentifier","src":"20675:6:22"},{"kind":"number","nativeSrc":"20683:4:22","nodeType":"YulLiteral","src":"20683:4:22","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"20671:3:22","nodeType":"YulIdentifier","src":"20671:3:22"},"nativeSrc":"20671:17:22","nodeType":"YulFunctionCall","src":"20671:17:22"}],"functionName":{"name":"mstore","nativeSrc":"20658:6:22","nodeType":"YulIdentifier","src":"20658:6:22"},"nativeSrc":"20658:31:22","nodeType":"YulFunctionCall","src":"20658:31:22"},"nativeSrc":"20658:31:22","nodeType":"YulExpressionStatement","src":"20658:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9421,"isOffset":false,"isSlot":false,"src":"20483:14:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20323:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20368:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20468:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20528:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20611:6:22","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"20675:6:22","valueSize":1}],"id":9426,"nodeType":"InlineAssembly","src":"20300:419:22"}]},"documentation":{"id":9419,"nodeType":"StructuredDocumentation","src":"20070:80:22","text":"@dev Returns the initialization code of the PUSH0 clone of `implementation`."},"id":9428,"implemented":true,"kind":"function","modifiers":[],"name":"initCode_PUSH0","nameLocation":"20164:14:22","nodeType":"FunctionDefinition","parameters":{"id":9422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9421,"mutability":"mutable","name":"implementation","nameLocation":"20187:14:22","nodeType":"VariableDeclaration","scope":9428,"src":"20179:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9420,"name":"address","nodeType":"ElementaryTypeName","src":"20179:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20178:24:22"},"returnParameters":{"id":9425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9424,"mutability":"mutable","name":"result","nameLocation":"20239:6:22","nodeType":"VariableDeclaration","scope":9428,"src":"20226:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9423,"name":"bytes","nodeType":"ElementaryTypeName","src":"20226:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20225:21:22"},"scope":10092,"src":"20155:570:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9437,"nodeType":"Block","src":"20971:397:22","statements":[{"AST":{"nativeSrc":"21033:329:22","nodeType":"YulBlock","src":"21033:329:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21054:4:22","nodeType":"YulLiteral","src":"21054:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"21060:34:22","nodeType":"YulLiteral","src":"21060:34:22","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"21047:6:22","nodeType":"YulIdentifier","src":"21047:6:22"},"nativeSrc":"21047:48:22","nodeType":"YulFunctionCall","src":"21047:48:22"},"nativeSrc":"21047:48:22","nodeType":"YulExpressionStatement","src":"21047:48:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21121:4:22","nodeType":"YulLiteral","src":"21121:4:22","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"21127:14:22","nodeType":"YulIdentifier","src":"21127:14:22"}],"functionName":{"name":"mstore","nativeSrc":"21114:6:22","nodeType":"YulIdentifier","src":"21114:6:22"},"nativeSrc":"21114:28:22","nodeType":"YulFunctionCall","src":"21114:28:22"},"nativeSrc":"21114:28:22","nodeType":"YulExpressionStatement","src":"21114:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21168:4:22","nodeType":"YulLiteral","src":"21168:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21174:38:22","nodeType":"YulLiteral","src":"21174:38:22","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"21161:6:22","nodeType":"YulIdentifier","src":"21161:6:22"},"nativeSrc":"21161:52:22","nodeType":"YulFunctionCall","src":"21161:52:22"},"nativeSrc":"21161:52:22","nodeType":"YulExpressionStatement","src":"21161:52:22"},{"nativeSrc":"21235:29:22","nodeType":"YulAssignment","src":"21235:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"21253:4:22","nodeType":"YulLiteral","src":"21253:4:22","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"21259:4:22","nodeType":"YulLiteral","src":"21259:4:22","type":"","value":"0x36"}],"functionName":{"name":"keccak256","nativeSrc":"21243:9:22","nodeType":"YulIdentifier","src":"21243:9:22"},"nativeSrc":"21243:21:22","nodeType":"YulFunctionCall","src":"21243:21:22"},"variableNames":[{"name":"hash","nativeSrc":"21235:4:22","nodeType":"YulIdentifier","src":"21235:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21284:4:22","nodeType":"YulLiteral","src":"21284:4:22","type":"","value":"0x24"},{"kind":"number","nativeSrc":"21290:1:22","nodeType":"YulLiteral","src":"21290:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"21277:6:22","nodeType":"YulIdentifier","src":"21277:6:22"},"nativeSrc":"21277:15:22","nodeType":"YulFunctionCall","src":"21277:15:22"},"nativeSrc":"21277:15:22","nodeType":"YulExpressionStatement","src":"21277:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9434,"isOffset":false,"isSlot":false,"src":"21235:4:22","valueSize":1},{"declaration":9431,"isOffset":false,"isSlot":false,"src":"21127:14:22","valueSize":1}],"id":9436,"nodeType":"InlineAssembly","src":"21024:338:22"}]},"documentation":{"id":9429,"nodeType":"StructuredDocumentation","src":"20731:146:22","text":"@dev Returns the initialization code hash of the PUSH0 clone of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9438,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash_PUSH0","nameLocation":"20891:18:22","nodeType":"FunctionDefinition","parameters":{"id":9432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9431,"mutability":"mutable","name":"implementation","nameLocation":"20918:14:22","nodeType":"VariableDeclaration","scope":9438,"src":"20910:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9430,"name":"address","nodeType":"ElementaryTypeName","src":"20910:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20909:24:22"},"returnParameters":{"id":9435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9434,"mutability":"mutable","name":"hash","nameLocation":"20965:4:22","nodeType":"VariableDeclaration","scope":9438,"src":"20957:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20957:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20956:14:22"},"scope":10092,"src":"20882:486:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9464,"nodeType":"Block","src":"21760:137:22","statements":[{"assignments":[9451],"declarations":[{"constant":false,"id":9451,"mutability":"mutable","name":"hash","nameLocation":"21778:4:22","nodeType":"VariableDeclaration","scope":9464,"src":"21770:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21770:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9455,"initialValue":{"arguments":[{"id":9453,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9441,"src":"21804:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9452,"name":"initCodeHash_PUSH0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"21785:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21785:34:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21770:49:22"},{"expression":{"id":9462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9456,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9448,"src":"21829:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9458,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9451,"src":"21869:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9459,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9443,"src":"21875:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9460,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9445,"src":"21881:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9457,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"21841:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21841:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21829:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9463,"nodeType":"ExpressionStatement","src":"21829:61:22"}]},"documentation":{"id":9439,"nodeType":"StructuredDocumentation","src":"21374:210:22","text":"@dev Returns the address of the deterministic PUSH0 clone of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9465,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress_PUSH0","nameLocation":"21598:33:22","nodeType":"FunctionDefinition","parameters":{"id":9446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9441,"mutability":"mutable","name":"implementation","nameLocation":"21649:14:22","nodeType":"VariableDeclaration","scope":9465,"src":"21641:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9440,"name":"address","nodeType":"ElementaryTypeName","src":"21641:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9443,"mutability":"mutable","name":"salt","nameLocation":"21681:4:22","nodeType":"VariableDeclaration","scope":9465,"src":"21673:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21673:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9445,"mutability":"mutable","name":"deployer","nameLocation":"21703:8:22","nodeType":"VariableDeclaration","scope":9465,"src":"21695:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9444,"name":"address","nodeType":"ElementaryTypeName","src":"21695:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21631:86:22"},"returnParameters":{"id":9449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9448,"mutability":"mutable","name":"predicted","nameLocation":"21749:9:22","nodeType":"VariableDeclaration","scope":9465,"src":"21741:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9447,"name":"address","nodeType":"ElementaryTypeName","src":"21741:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21740:19:22"},"scope":10092,"src":"21589:308:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9483,"nodeType":"Block","src":"22562:58:22","statements":[{"expression":{"id":9481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9475,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9473,"src":"22572:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9478,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"22592:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9479,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9470,"src":"22608:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9476,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[9265,9277,9484,9498],"referencedDeclaration":9498,"src":"22583:5:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (uint256,address,bytes memory) returns (address)"}},"id":9480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22583:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22572:41:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9482,"nodeType":"ExpressionStatement","src":"22572:41:22"}]},"documentation":{"id":9466,"nodeType":"StructuredDocumentation","src":"22375:88:22","text":"@dev Deploys a clone of `implementation` with immutable arguments encoded in `data`."},"id":9484,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"22477:5:22","nodeType":"FunctionDefinition","parameters":{"id":9471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9468,"mutability":"mutable","name":"implementation","nameLocation":"22491:14:22","nodeType":"VariableDeclaration","scope":9484,"src":"22483:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9467,"name":"address","nodeType":"ElementaryTypeName","src":"22483:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9470,"mutability":"mutable","name":"data","nameLocation":"22520:4:22","nodeType":"VariableDeclaration","scope":9484,"src":"22507:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9469,"name":"bytes","nodeType":"ElementaryTypeName","src":"22507:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22482:43:22"},"returnParameters":{"id":9474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9473,"mutability":"mutable","name":"instance","nameLocation":"22552:8:22","nodeType":"VariableDeclaration","scope":9484,"src":"22544:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9472,"name":"address","nodeType":"ElementaryTypeName","src":"22544:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22543:18:22"},"scope":10092,"src":"22468:152:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9497,"nodeType":"Block","src":"22896:11033:22","statements":[{"AST":{"nativeSrc":"22915:11008:22","nodeType":"YulBlock","src":"22915:11008:22","statements":[{"nativeSrc":"23017:38:22","nodeType":"YulVariableDeclaration","src":"23017:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23043:4:22","nodeType":"YulIdentifier","src":"23043:4:22"},{"kind":"number","nativeSrc":"23049:4:22","nodeType":"YulLiteral","src":"23049:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"23039:3:22","nodeType":"YulIdentifier","src":"23039:3:22"},"nativeSrc":"23039:15:22","nodeType":"YulFunctionCall","src":"23039:15:22"}],"functionName":{"name":"mload","nativeSrc":"23033:5:22","nodeType":"YulIdentifier","src":"23033:5:22"},"nativeSrc":"23033:22:22","nodeType":"YulFunctionCall","src":"23033:22:22"},"variables":[{"name":"mBefore3","nativeSrc":"23021:8:22","nodeType":"YulTypedName","src":"23021:8:22","type":""}]},{"nativeSrc":"23068:38:22","nodeType":"YulVariableDeclaration","src":"23068:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23094:4:22","nodeType":"YulIdentifier","src":"23094:4:22"},{"kind":"number","nativeSrc":"23100:4:22","nodeType":"YulLiteral","src":"23100:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"23090:3:22","nodeType":"YulIdentifier","src":"23090:3:22"},"nativeSrc":"23090:15:22","nodeType":"YulFunctionCall","src":"23090:15:22"}],"functionName":{"name":"mload","nativeSrc":"23084:5:22","nodeType":"YulIdentifier","src":"23084:5:22"},"nativeSrc":"23084:22:22","nodeType":"YulFunctionCall","src":"23084:22:22"},"variables":[{"name":"mBefore2","nativeSrc":"23072:8:22","nodeType":"YulTypedName","src":"23072:8:22","type":""}]},{"nativeSrc":"23119:38:22","nodeType":"YulVariableDeclaration","src":"23119:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23145:4:22","nodeType":"YulIdentifier","src":"23145:4:22"},{"kind":"number","nativeSrc":"23151:4:22","nodeType":"YulLiteral","src":"23151:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"23141:3:22","nodeType":"YulIdentifier","src":"23141:3:22"},"nativeSrc":"23141:15:22","nodeType":"YulFunctionCall","src":"23141:15:22"}],"functionName":{"name":"mload","nativeSrc":"23135:5:22","nodeType":"YulIdentifier","src":"23135:5:22"},"nativeSrc":"23135:22:22","nodeType":"YulFunctionCall","src":"23135:22:22"},"variables":[{"name":"mBefore1","nativeSrc":"23123:8:22","nodeType":"YulTypedName","src":"23123:8:22","type":""}]},{"nativeSrc":"23170:29:22","nodeType":"YulVariableDeclaration","src":"23170:29:22","value":{"arguments":[{"name":"data","nativeSrc":"23194:4:22","nodeType":"YulIdentifier","src":"23194:4:22"}],"functionName":{"name":"mload","nativeSrc":"23188:5:22","nodeType":"YulIdentifier","src":"23188:5:22"},"nativeSrc":"23188:11:22","nodeType":"YulFunctionCall","src":"23188:11:22"},"variables":[{"name":"dataLength","nativeSrc":"23174:10:22","nodeType":"YulTypedName","src":"23174:10:22","type":""}]},{"nativeSrc":"23212:47:22","nodeType":"YulVariableDeclaration","src":"23212:47:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23235:4:22","nodeType":"YulIdentifier","src":"23235:4:22"},{"kind":"number","nativeSrc":"23241:4:22","nodeType":"YulLiteral","src":"23241:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23231:3:22","nodeType":"YulIdentifier","src":"23231:3:22"},"nativeSrc":"23231:15:22","nodeType":"YulFunctionCall","src":"23231:15:22"},{"name":"dataLength","nativeSrc":"23248:10:22","nodeType":"YulIdentifier","src":"23248:10:22"}],"functionName":{"name":"add","nativeSrc":"23227:3:22","nodeType":"YulIdentifier","src":"23227:3:22"},"nativeSrc":"23227:32:22","nodeType":"YulFunctionCall","src":"23227:32:22"},"variables":[{"name":"dataEnd","nativeSrc":"23216:7:22","nodeType":"YulTypedName","src":"23216:7:22","type":""}]},{"nativeSrc":"23272:29:22","nodeType":"YulVariableDeclaration","src":"23272:29:22","value":{"arguments":[{"name":"dataEnd","nativeSrc":"23293:7:22","nodeType":"YulIdentifier","src":"23293:7:22"}],"functionName":{"name":"mload","nativeSrc":"23287:5:22","nodeType":"YulIdentifier","src":"23287:5:22"},"nativeSrc":"23287:14:22","nodeType":"YulFunctionCall","src":"23287:14:22"},"variables":[{"name":"mAfter1","nativeSrc":"23276:7:22","nodeType":"YulTypedName","src":"23276:7:22","type":""}]},{"nativeSrc":"23396:37:22","nodeType":"YulVariableDeclaration","src":"23396:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"23419:10:22","nodeType":"YulIdentifier","src":"23419:10:22"},{"kind":"number","nativeSrc":"23431:1:22","nodeType":"YulLiteral","src":"23431:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"23415:3:22","nodeType":"YulIdentifier","src":"23415:3:22"},"nativeSrc":"23415:18:22","nodeType":"YulFunctionCall","src":"23415:18:22"},"variables":[{"name":"extraLength","nativeSrc":"23400:11:22","nodeType":"YulTypedName","src":"23400:11:22","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"32412:4:22","nodeType":"YulIdentifier","src":"32412:4:22"},{"kind":"number","nativeSrc":"32418:28:22","nodeType":"YulLiteral","src":"32418:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"32405:6:22","nodeType":"YulIdentifier","src":"32405:6:22"},"nativeSrc":"32405:42:22","nodeType":"YulFunctionCall","src":"32405:42:22"},"nativeSrc":"32405:42:22","nodeType":"YulExpressionStatement","src":"32405:42:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32510:4:22","nodeType":"YulIdentifier","src":"32510:4:22"},{"kind":"number","nativeSrc":"32516:4:22","nodeType":"YulLiteral","src":"32516:4:22","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"32506:3:22","nodeType":"YulIdentifier","src":"32506:3:22"},"nativeSrc":"32506:15:22","nodeType":"YulFunctionCall","src":"32506:15:22"},{"name":"implementation","nativeSrc":"32523:14:22","nodeType":"YulIdentifier","src":"32523:14:22"}],"functionName":{"name":"mstore","nativeSrc":"32499:6:22","nodeType":"YulIdentifier","src":"32499:6:22"},"nativeSrc":"32499:39:22","nodeType":"YulFunctionCall","src":"32499:39:22"},"nativeSrc":"32499:39:22","nodeType":"YulExpressionStatement","src":"32499:39:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32670:4:22","nodeType":"YulIdentifier","src":"32670:4:22"},{"kind":"number","nativeSrc":"32676:4:22","nodeType":"YulLiteral","src":"32676:4:22","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"32666:3:22","nodeType":"YulIdentifier","src":"32666:3:22"},"nativeSrc":"32666:15:22","nodeType":"YulFunctionCall","src":"32666:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32706:4:22","nodeType":"YulLiteral","src":"32706:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"32712:11:22","nodeType":"YulIdentifier","src":"32712:11:22"}],"functionName":{"name":"shl","nativeSrc":"32702:3:22","nodeType":"YulIdentifier","src":"32702:3:22"},"nativeSrc":"32702:22:22","nodeType":"YulFunctionCall","src":"32702:22:22"},{"kind":"number","nativeSrc":"32726:52:22","nodeType":"YulLiteral","src":"32726:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"32699:2:22","nodeType":"YulIdentifier","src":"32699:2:22"},"nativeSrc":"32699:80:22","nodeType":"YulFunctionCall","src":"32699:80:22"}],"functionName":{"name":"mstore","nativeSrc":"32642:6:22","nodeType":"YulIdentifier","src":"32642:6:22"},"nativeSrc":"32642:151:22","nodeType":"YulFunctionCall","src":"32642:151:22"},"nativeSrc":"32642:151:22","nodeType":"YulExpressionStatement","src":"32642:151:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32884:4:22","nodeType":"YulIdentifier","src":"32884:4:22"},{"kind":"number","nativeSrc":"32890:4:22","nodeType":"YulLiteral","src":"32890:4:22","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"32880:3:22","nodeType":"YulIdentifier","src":"32880:3:22"},"nativeSrc":"32880:15:22","nodeType":"YulFunctionCall","src":"32880:15:22"},{"kind":"number","nativeSrc":"32897:66:22","nodeType":"YulLiteral","src":"32897:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"32856:6:22","nodeType":"YulIdentifier","src":"32856:6:22"},"nativeSrc":"32856:121:22","nodeType":"YulFunctionCall","src":"32856:121:22"},"nativeSrc":"32856:121:22","nodeType":"YulExpressionStatement","src":"32856:121:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33201:4:22","nodeType":"YulIdentifier","src":"33201:4:22"},{"arguments":[{"kind":"number","nativeSrc":"33211:4:22","nodeType":"YulLiteral","src":"33211:4:22","type":"","value":"0x59"},{"arguments":[{"name":"extraLength","nativeSrc":"33220:11:22","nodeType":"YulIdentifier","src":"33220:11:22"},{"kind":"number","nativeSrc":"33233:6:22","nodeType":"YulLiteral","src":"33233:6:22","type":"","value":"0xff9e"}],"functionName":{"name":"lt","nativeSrc":"33217:2:22","nodeType":"YulIdentifier","src":"33217:2:22"},"nativeSrc":"33217:23:22","nodeType":"YulFunctionCall","src":"33217:23:22"}],"functionName":{"name":"add","nativeSrc":"33207:3:22","nodeType":"YulIdentifier","src":"33207:3:22"},"nativeSrc":"33207:34:22","nodeType":"YulFunctionCall","src":"33207:34:22"}],"functionName":{"name":"sub","nativeSrc":"33197:3:22","nodeType":"YulIdentifier","src":"33197:3:22"},"nativeSrc":"33197:45:22","nodeType":"YulFunctionCall","src":"33197:45:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33267:4:22","nodeType":"YulLiteral","src":"33267:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"33277:11:22","nodeType":"YulIdentifier","src":"33277:11:22"},{"kind":"number","nativeSrc":"33290:4:22","nodeType":"YulLiteral","src":"33290:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"33273:3:22","nodeType":"YulIdentifier","src":"33273:3:22"},"nativeSrc":"33273:22:22","nodeType":"YulFunctionCall","src":"33273:22:22"}],"functionName":{"name":"shl","nativeSrc":"33263:3:22","nodeType":"YulIdentifier","src":"33263:3:22"},"nativeSrc":"33263:33:22","nodeType":"YulFunctionCall","src":"33263:33:22"},{"kind":"number","nativeSrc":"33298:40:22","nodeType":"YulLiteral","src":"33298:40:22","type":"","value":"0xfd6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"33260:2:22","nodeType":"YulIdentifier","src":"33260:2:22"},"nativeSrc":"33260:79:22","nodeType":"YulFunctionCall","src":"33260:79:22"}],"functionName":{"name":"mstore","nativeSrc":"32990:6:22","nodeType":"YulIdentifier","src":"32990:6:22"},"nativeSrc":"32990:363:22","nodeType":"YulFunctionCall","src":"32990:363:22"},"nativeSrc":"32990:363:22","nodeType":"YulExpressionStatement","src":"32990:363:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"33373:7:22","nodeType":"YulIdentifier","src":"33373:7:22"},{"arguments":[{"kind":"number","nativeSrc":"33386:4:22","nodeType":"YulLiteral","src":"33386:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"33392:11:22","nodeType":"YulIdentifier","src":"33392:11:22"}],"functionName":{"name":"shl","nativeSrc":"33382:3:22","nodeType":"YulIdentifier","src":"33382:3:22"},"nativeSrc":"33382:22:22","nodeType":"YulFunctionCall","src":"33382:22:22"}],"functionName":{"name":"mstore","nativeSrc":"33366:6:22","nodeType":"YulIdentifier","src":"33366:6:22"},"nativeSrc":"33366:39:22","nodeType":"YulFunctionCall","src":"33366:39:22"},"nativeSrc":"33366:39:22","nodeType":"YulExpressionStatement","src":"33366:39:22"},{"nativeSrc":"33419:66:22","nodeType":"YulAssignment","src":"33419:66:22","value":{"arguments":[{"name":"value","nativeSrc":"33438:5:22","nodeType":"YulIdentifier","src":"33438:5:22"},{"arguments":[{"name":"data","nativeSrc":"33449:4:22","nodeType":"YulIdentifier","src":"33449:4:22"},{"kind":"number","nativeSrc":"33455:4:22","nodeType":"YulLiteral","src":"33455:4:22","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"33445:3:22","nodeType":"YulIdentifier","src":"33445:3:22"},"nativeSrc":"33445:15:22","nodeType":"YulFunctionCall","src":"33445:15:22"},{"arguments":[{"name":"extraLength","nativeSrc":"33466:11:22","nodeType":"YulIdentifier","src":"33466:11:22"},{"kind":"number","nativeSrc":"33479:4:22","nodeType":"YulLiteral","src":"33479:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"33462:3:22","nodeType":"YulIdentifier","src":"33462:3:22"},"nativeSrc":"33462:22:22","nodeType":"YulFunctionCall","src":"33462:22:22"}],"functionName":{"name":"create","nativeSrc":"33431:6:22","nodeType":"YulIdentifier","src":"33431:6:22"},"nativeSrc":"33431:54:22","nodeType":"YulFunctionCall","src":"33431:54:22"},"variableNames":[{"name":"instance","nativeSrc":"33419:8:22","nodeType":"YulIdentifier","src":"33419:8:22"}]},{"body":{"nativeSrc":"33518:116:22","nodeType":"YulBlock","src":"33518:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33543:4:22","nodeType":"YulLiteral","src":"33543:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"33549:10:22","nodeType":"YulLiteral","src":"33549:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"33536:6:22","nodeType":"YulIdentifier","src":"33536:6:22"},"nativeSrc":"33536:24:22","nodeType":"YulFunctionCall","src":"33536:24:22"},"nativeSrc":"33536:24:22","nodeType":"YulExpressionStatement","src":"33536:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33609:4:22","nodeType":"YulLiteral","src":"33609:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33615:4:22","nodeType":"YulLiteral","src":"33615:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33602:6:22","nodeType":"YulIdentifier","src":"33602:6:22"},"nativeSrc":"33602:18:22","nodeType":"YulFunctionCall","src":"33602:18:22"},"nativeSrc":"33602:18:22","nodeType":"YulExpressionStatement","src":"33602:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"33508:8:22","nodeType":"YulIdentifier","src":"33508:8:22"}],"functionName":{"name":"iszero","nativeSrc":"33501:6:22","nodeType":"YulIdentifier","src":"33501:6:22"},"nativeSrc":"33501:16:22","nodeType":"YulFunctionCall","src":"33501:16:22"},"nativeSrc":"33498:136:22","nodeType":"YulIf","src":"33498:136:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"33721:7:22","nodeType":"YulIdentifier","src":"33721:7:22"},{"name":"mAfter1","nativeSrc":"33730:7:22","nodeType":"YulIdentifier","src":"33730:7:22"}],"functionName":{"name":"mstore","nativeSrc":"33714:6:22","nodeType":"YulIdentifier","src":"33714:6:22"},"nativeSrc":"33714:24:22","nodeType":"YulFunctionCall","src":"33714:24:22"},"nativeSrc":"33714:24:22","nodeType":"YulExpressionStatement","src":"33714:24:22"},{"expression":{"arguments":[{"name":"data","nativeSrc":"33758:4:22","nodeType":"YulIdentifier","src":"33758:4:22"},{"name":"dataLength","nativeSrc":"33764:10:22","nodeType":"YulIdentifier","src":"33764:10:22"}],"functionName":{"name":"mstore","nativeSrc":"33751:6:22","nodeType":"YulIdentifier","src":"33751:6:22"},"nativeSrc":"33751:24:22","nodeType":"YulFunctionCall","src":"33751:24:22"},"nativeSrc":"33751:24:22","nodeType":"YulExpressionStatement","src":"33751:24:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33799:4:22","nodeType":"YulIdentifier","src":"33799:4:22"},{"kind":"number","nativeSrc":"33805:4:22","nodeType":"YulLiteral","src":"33805:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"33795:3:22","nodeType":"YulIdentifier","src":"33795:3:22"},"nativeSrc":"33795:15:22","nodeType":"YulFunctionCall","src":"33795:15:22"},{"name":"mBefore1","nativeSrc":"33812:8:22","nodeType":"YulIdentifier","src":"33812:8:22"}],"functionName":{"name":"mstore","nativeSrc":"33788:6:22","nodeType":"YulIdentifier","src":"33788:6:22"},"nativeSrc":"33788:33:22","nodeType":"YulFunctionCall","src":"33788:33:22"},"nativeSrc":"33788:33:22","nodeType":"YulExpressionStatement","src":"33788:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33845:4:22","nodeType":"YulIdentifier","src":"33845:4:22"},{"kind":"number","nativeSrc":"33851:4:22","nodeType":"YulLiteral","src":"33851:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"33841:3:22","nodeType":"YulIdentifier","src":"33841:3:22"},"nativeSrc":"33841:15:22","nodeType":"YulFunctionCall","src":"33841:15:22"},{"name":"mBefore2","nativeSrc":"33858:8:22","nodeType":"YulIdentifier","src":"33858:8:22"}],"functionName":{"name":"mstore","nativeSrc":"33834:6:22","nodeType":"YulIdentifier","src":"33834:6:22"},"nativeSrc":"33834:33:22","nodeType":"YulFunctionCall","src":"33834:33:22"},"nativeSrc":"33834:33:22","nodeType":"YulExpressionStatement","src":"33834:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33891:4:22","nodeType":"YulIdentifier","src":"33891:4:22"},{"kind":"number","nativeSrc":"33897:4:22","nodeType":"YulLiteral","src":"33897:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"33887:3:22","nodeType":"YulIdentifier","src":"33887:3:22"},"nativeSrc":"33887:15:22","nodeType":"YulFunctionCall","src":"33887:15:22"},{"name":"mBefore3","nativeSrc":"33904:8:22","nodeType":"YulIdentifier","src":"33904:8:22"}],"functionName":{"name":"mstore","nativeSrc":"33880:6:22","nodeType":"YulIdentifier","src":"33880:6:22"},"nativeSrc":"33880:33:22","nodeType":"YulFunctionCall","src":"33880:33:22"},"nativeSrc":"33880:33:22","nodeType":"YulExpressionStatement","src":"33880:33:22"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23043:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23094:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23145:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23194:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"23235:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32412:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32510:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32670:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"32884:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33201:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33449:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33758:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33799:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33845:4:22","valueSize":1},{"declaration":9491,"isOffset":false,"isSlot":false,"src":"33891:4:22","valueSize":1},{"declaration":9489,"isOffset":false,"isSlot":false,"src":"32523:14:22","valueSize":1},{"declaration":9494,"isOffset":false,"isSlot":false,"src":"33419:8:22","valueSize":1},{"declaration":9494,"isOffset":false,"isSlot":false,"src":"33508:8:22","valueSize":1},{"declaration":9487,"isOffset":false,"isSlot":false,"src":"33438:5:22","valueSize":1}],"id":9496,"nodeType":"InlineAssembly","src":"22906:11017:22"}]},"documentation":{"id":9485,"nodeType":"StructuredDocumentation","src":"22626:136:22","text":"@dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n Deposits `value` ETH during deployment."},"id":9498,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"22776:5:22","nodeType":"FunctionDefinition","parameters":{"id":9492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9487,"mutability":"mutable","name":"value","nameLocation":"22790:5:22","nodeType":"VariableDeclaration","scope":9498,"src":"22782:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9486,"name":"uint256","nodeType":"ElementaryTypeName","src":"22782:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9489,"mutability":"mutable","name":"implementation","nameLocation":"22805:14:22","nodeType":"VariableDeclaration","scope":9498,"src":"22797:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9488,"name":"address","nodeType":"ElementaryTypeName","src":"22797:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9491,"mutability":"mutable","name":"data","nameLocation":"22834:4:22","nodeType":"VariableDeclaration","scope":9498,"src":"22821:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9490,"name":"bytes","nodeType":"ElementaryTypeName","src":"22821:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22781:58:22"},"returnParameters":{"id":9495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9494,"mutability":"mutable","name":"instance","nameLocation":"22882:8:22","nodeType":"VariableDeclaration","scope":9498,"src":"22874:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9493,"name":"address","nodeType":"ElementaryTypeName","src":"22874:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22873:18:22"},"scope":10092,"src":"22767:11162:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9519,"nodeType":"Block","src":"34202:77:22","statements":[{"expression":{"id":9517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9510,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9508,"src":"34212:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34242:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9513,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9501,"src":"34245:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9514,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"34261:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9515,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9505,"src":"34267:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9511,"name":"cloneDeterministic","nodeType":"Identifier","overloadedDeclarations":[9296,9310,9520,9536],"referencedDeclaration":9536,"src":"34223:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes memory,bytes32) returns (address)"}},"id":9516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34223:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34212:60:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9518,"nodeType":"ExpressionStatement","src":"34212:60:22"}]},"documentation":{"id":9499,"nodeType":"StructuredDocumentation","src":"33935:121:22","text":"@dev Deploys a deterministic clone of `implementation`\n with immutable arguments encoded in `data` and `salt`."},"id":9520,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"34070:18:22","nodeType":"FunctionDefinition","parameters":{"id":9506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9501,"mutability":"mutable","name":"implementation","nameLocation":"34097:14:22","nodeType":"VariableDeclaration","scope":9520,"src":"34089:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9500,"name":"address","nodeType":"ElementaryTypeName","src":"34089:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9503,"mutability":"mutable","name":"data","nameLocation":"34126:4:22","nodeType":"VariableDeclaration","scope":9520,"src":"34113:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9502,"name":"bytes","nodeType":"ElementaryTypeName","src":"34113:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9505,"mutability":"mutable","name":"salt","nameLocation":"34140:4:22","nodeType":"VariableDeclaration","scope":9520,"src":"34132:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34132:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34088:57:22"},"returnParameters":{"id":9509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9508,"mutability":"mutable","name":"instance","nameLocation":"34188:8:22","nodeType":"VariableDeclaration","scope":9520,"src":"34180:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9507,"name":"address","nodeType":"ElementaryTypeName","src":"34180:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34179:18:22"},"scope":10092,"src":"34061:218:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9535,"nodeType":"Block","src":"34585:2082:22","statements":[{"AST":{"nativeSrc":"34604:2057:22","nodeType":"YulBlock","src":"34604:2057:22","statements":[{"nativeSrc":"34706:38:22","nodeType":"YulVariableDeclaration","src":"34706:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34732:4:22","nodeType":"YulIdentifier","src":"34732:4:22"},{"kind":"number","nativeSrc":"34738:4:22","nodeType":"YulLiteral","src":"34738:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"34728:3:22","nodeType":"YulIdentifier","src":"34728:3:22"},"nativeSrc":"34728:15:22","nodeType":"YulFunctionCall","src":"34728:15:22"}],"functionName":{"name":"mload","nativeSrc":"34722:5:22","nodeType":"YulIdentifier","src":"34722:5:22"},"nativeSrc":"34722:22:22","nodeType":"YulFunctionCall","src":"34722:22:22"},"variables":[{"name":"mBefore3","nativeSrc":"34710:8:22","nodeType":"YulTypedName","src":"34710:8:22","type":""}]},{"nativeSrc":"34757:38:22","nodeType":"YulVariableDeclaration","src":"34757:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34783:4:22","nodeType":"YulIdentifier","src":"34783:4:22"},{"kind":"number","nativeSrc":"34789:4:22","nodeType":"YulLiteral","src":"34789:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"34779:3:22","nodeType":"YulIdentifier","src":"34779:3:22"},"nativeSrc":"34779:15:22","nodeType":"YulFunctionCall","src":"34779:15:22"}],"functionName":{"name":"mload","nativeSrc":"34773:5:22","nodeType":"YulIdentifier","src":"34773:5:22"},"nativeSrc":"34773:22:22","nodeType":"YulFunctionCall","src":"34773:22:22"},"variables":[{"name":"mBefore2","nativeSrc":"34761:8:22","nodeType":"YulTypedName","src":"34761:8:22","type":""}]},{"nativeSrc":"34808:38:22","nodeType":"YulVariableDeclaration","src":"34808:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34834:4:22","nodeType":"YulIdentifier","src":"34834:4:22"},{"kind":"number","nativeSrc":"34840:4:22","nodeType":"YulLiteral","src":"34840:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"34830:3:22","nodeType":"YulIdentifier","src":"34830:3:22"},"nativeSrc":"34830:15:22","nodeType":"YulFunctionCall","src":"34830:15:22"}],"functionName":{"name":"mload","nativeSrc":"34824:5:22","nodeType":"YulIdentifier","src":"34824:5:22"},"nativeSrc":"34824:22:22","nodeType":"YulFunctionCall","src":"34824:22:22"},"variables":[{"name":"mBefore1","nativeSrc":"34812:8:22","nodeType":"YulTypedName","src":"34812:8:22","type":""}]},{"nativeSrc":"34859:29:22","nodeType":"YulVariableDeclaration","src":"34859:29:22","value":{"arguments":[{"name":"data","nativeSrc":"34883:4:22","nodeType":"YulIdentifier","src":"34883:4:22"}],"functionName":{"name":"mload","nativeSrc":"34877:5:22","nodeType":"YulIdentifier","src":"34877:5:22"},"nativeSrc":"34877:11:22","nodeType":"YulFunctionCall","src":"34877:11:22"},"variables":[{"name":"dataLength","nativeSrc":"34863:10:22","nodeType":"YulTypedName","src":"34863:10:22","type":""}]},{"nativeSrc":"34901:47:22","nodeType":"YulVariableDeclaration","src":"34901:47:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34924:4:22","nodeType":"YulIdentifier","src":"34924:4:22"},{"kind":"number","nativeSrc":"34930:4:22","nodeType":"YulLiteral","src":"34930:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34920:3:22","nodeType":"YulIdentifier","src":"34920:3:22"},"nativeSrc":"34920:15:22","nodeType":"YulFunctionCall","src":"34920:15:22"},{"name":"dataLength","nativeSrc":"34937:10:22","nodeType":"YulIdentifier","src":"34937:10:22"}],"functionName":{"name":"add","nativeSrc":"34916:3:22","nodeType":"YulIdentifier","src":"34916:3:22"},"nativeSrc":"34916:32:22","nodeType":"YulFunctionCall","src":"34916:32:22"},"variables":[{"name":"dataEnd","nativeSrc":"34905:7:22","nodeType":"YulTypedName","src":"34905:7:22","type":""}]},{"nativeSrc":"34961:29:22","nodeType":"YulVariableDeclaration","src":"34961:29:22","value":{"arguments":[{"name":"dataEnd","nativeSrc":"34982:7:22","nodeType":"YulIdentifier","src":"34982:7:22"}],"functionName":{"name":"mload","nativeSrc":"34976:5:22","nodeType":"YulIdentifier","src":"34976:5:22"},"nativeSrc":"34976:14:22","nodeType":"YulFunctionCall","src":"34976:14:22"},"variables":[{"name":"mAfter1","nativeSrc":"34965:7:22","nodeType":"YulTypedName","src":"34965:7:22","type":""}]},{"nativeSrc":"35085:37:22","nodeType":"YulVariableDeclaration","src":"35085:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"35108:10:22","nodeType":"YulIdentifier","src":"35108:10:22"},{"kind":"number","nativeSrc":"35120:1:22","nodeType":"YulLiteral","src":"35120:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"35104:3:22","nodeType":"YulIdentifier","src":"35104:3:22"},"nativeSrc":"35104:18:22","nodeType":"YulFunctionCall","src":"35104:18:22"},"variables":[{"name":"extraLength","nativeSrc":"35089:11:22","nodeType":"YulTypedName","src":"35089:11:22","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"35143:4:22","nodeType":"YulIdentifier","src":"35143:4:22"},{"kind":"number","nativeSrc":"35149:28:22","nodeType":"YulLiteral","src":"35149:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"35136:6:22","nodeType":"YulIdentifier","src":"35136:6:22"},"nativeSrc":"35136:42:22","nodeType":"YulFunctionCall","src":"35136:42:22"},"nativeSrc":"35136:42:22","nodeType":"YulExpressionStatement","src":"35136:42:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35241:4:22","nodeType":"YulIdentifier","src":"35241:4:22"},{"kind":"number","nativeSrc":"35247:4:22","nodeType":"YulLiteral","src":"35247:4:22","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"35237:3:22","nodeType":"YulIdentifier","src":"35237:3:22"},"nativeSrc":"35237:15:22","nodeType":"YulFunctionCall","src":"35237:15:22"},{"name":"implementation","nativeSrc":"35254:14:22","nodeType":"YulIdentifier","src":"35254:14:22"}],"functionName":{"name":"mstore","nativeSrc":"35230:6:22","nodeType":"YulIdentifier","src":"35230:6:22"},"nativeSrc":"35230:39:22","nodeType":"YulFunctionCall","src":"35230:39:22"},"nativeSrc":"35230:39:22","nodeType":"YulExpressionStatement","src":"35230:39:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35401:4:22","nodeType":"YulIdentifier","src":"35401:4:22"},{"kind":"number","nativeSrc":"35407:4:22","nodeType":"YulLiteral","src":"35407:4:22","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"35397:3:22","nodeType":"YulIdentifier","src":"35397:3:22"},"nativeSrc":"35397:15:22","nodeType":"YulFunctionCall","src":"35397:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35437:4:22","nodeType":"YulLiteral","src":"35437:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"35443:11:22","nodeType":"YulIdentifier","src":"35443:11:22"}],"functionName":{"name":"shl","nativeSrc":"35433:3:22","nodeType":"YulIdentifier","src":"35433:3:22"},"nativeSrc":"35433:22:22","nodeType":"YulFunctionCall","src":"35433:22:22"},{"kind":"number","nativeSrc":"35457:52:22","nodeType":"YulLiteral","src":"35457:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"35430:2:22","nodeType":"YulIdentifier","src":"35430:2:22"},"nativeSrc":"35430:80:22","nodeType":"YulFunctionCall","src":"35430:80:22"}],"functionName":{"name":"mstore","nativeSrc":"35373:6:22","nodeType":"YulIdentifier","src":"35373:6:22"},"nativeSrc":"35373:151:22","nodeType":"YulFunctionCall","src":"35373:151:22"},"nativeSrc":"35373:151:22","nodeType":"YulExpressionStatement","src":"35373:151:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35615:4:22","nodeType":"YulIdentifier","src":"35615:4:22"},{"kind":"number","nativeSrc":"35621:4:22","nodeType":"YulLiteral","src":"35621:4:22","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"35611:3:22","nodeType":"YulIdentifier","src":"35611:3:22"},"nativeSrc":"35611:15:22","nodeType":"YulFunctionCall","src":"35611:15:22"},{"kind":"number","nativeSrc":"35628:66:22","nodeType":"YulLiteral","src":"35628:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"35587:6:22","nodeType":"YulIdentifier","src":"35587:6:22"},"nativeSrc":"35587:121:22","nodeType":"YulFunctionCall","src":"35587:121:22"},"nativeSrc":"35587:121:22","nodeType":"YulExpressionStatement","src":"35587:121:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35932:4:22","nodeType":"YulIdentifier","src":"35932:4:22"},{"arguments":[{"kind":"number","nativeSrc":"35942:4:22","nodeType":"YulLiteral","src":"35942:4:22","type":"","value":"0x59"},{"arguments":[{"name":"extraLength","nativeSrc":"35951:11:22","nodeType":"YulIdentifier","src":"35951:11:22"},{"kind":"number","nativeSrc":"35964:6:22","nodeType":"YulLiteral","src":"35964:6:22","type":"","value":"0xff9e"}],"functionName":{"name":"lt","nativeSrc":"35948:2:22","nodeType":"YulIdentifier","src":"35948:2:22"},"nativeSrc":"35948:23:22","nodeType":"YulFunctionCall","src":"35948:23:22"}],"functionName":{"name":"add","nativeSrc":"35938:3:22","nodeType":"YulIdentifier","src":"35938:3:22"},"nativeSrc":"35938:34:22","nodeType":"YulFunctionCall","src":"35938:34:22"}],"functionName":{"name":"sub","nativeSrc":"35928:3:22","nodeType":"YulIdentifier","src":"35928:3:22"},"nativeSrc":"35928:45:22","nodeType":"YulFunctionCall","src":"35928:45:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35998:4:22","nodeType":"YulLiteral","src":"35998:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"36008:11:22","nodeType":"YulIdentifier","src":"36008:11:22"},{"kind":"number","nativeSrc":"36021:4:22","nodeType":"YulLiteral","src":"36021:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"36004:3:22","nodeType":"YulIdentifier","src":"36004:3:22"},"nativeSrc":"36004:22:22","nodeType":"YulFunctionCall","src":"36004:22:22"}],"functionName":{"name":"shl","nativeSrc":"35994:3:22","nodeType":"YulIdentifier","src":"35994:3:22"},"nativeSrc":"35994:33:22","nodeType":"YulFunctionCall","src":"35994:33:22"},{"kind":"number","nativeSrc":"36029:40:22","nodeType":"YulLiteral","src":"36029:40:22","type":"","value":"0xfd6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"35991:2:22","nodeType":"YulIdentifier","src":"35991:2:22"},"nativeSrc":"35991:79:22","nodeType":"YulFunctionCall","src":"35991:79:22"}],"functionName":{"name":"mstore","nativeSrc":"35721:6:22","nodeType":"YulIdentifier","src":"35721:6:22"},"nativeSrc":"35721:363:22","nodeType":"YulFunctionCall","src":"35721:363:22"},"nativeSrc":"35721:363:22","nodeType":"YulExpressionStatement","src":"35721:363:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"36104:7:22","nodeType":"YulIdentifier","src":"36104:7:22"},{"arguments":[{"kind":"number","nativeSrc":"36117:4:22","nodeType":"YulLiteral","src":"36117:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"36123:11:22","nodeType":"YulIdentifier","src":"36123:11:22"}],"functionName":{"name":"shl","nativeSrc":"36113:3:22","nodeType":"YulIdentifier","src":"36113:3:22"},"nativeSrc":"36113:22:22","nodeType":"YulFunctionCall","src":"36113:22:22"}],"functionName":{"name":"mstore","nativeSrc":"36097:6:22","nodeType":"YulIdentifier","src":"36097:6:22"},"nativeSrc":"36097:39:22","nodeType":"YulFunctionCall","src":"36097:39:22"},"nativeSrc":"36097:39:22","nodeType":"YulExpressionStatement","src":"36097:39:22"},{"nativeSrc":"36150:73:22","nodeType":"YulAssignment","src":"36150:73:22","value":{"arguments":[{"name":"value","nativeSrc":"36170:5:22","nodeType":"YulIdentifier","src":"36170:5:22"},{"arguments":[{"name":"data","nativeSrc":"36181:4:22","nodeType":"YulIdentifier","src":"36181:4:22"},{"kind":"number","nativeSrc":"36187:4:22","nodeType":"YulLiteral","src":"36187:4:22","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"36177:3:22","nodeType":"YulIdentifier","src":"36177:3:22"},"nativeSrc":"36177:15:22","nodeType":"YulFunctionCall","src":"36177:15:22"},{"arguments":[{"name":"extraLength","nativeSrc":"36198:11:22","nodeType":"YulIdentifier","src":"36198:11:22"},{"kind":"number","nativeSrc":"36211:4:22","nodeType":"YulLiteral","src":"36211:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"36194:3:22","nodeType":"YulIdentifier","src":"36194:3:22"},"nativeSrc":"36194:22:22","nodeType":"YulFunctionCall","src":"36194:22:22"},{"name":"salt","nativeSrc":"36218:4:22","nodeType":"YulIdentifier","src":"36218:4:22"}],"functionName":{"name":"create2","nativeSrc":"36162:7:22","nodeType":"YulIdentifier","src":"36162:7:22"},"nativeSrc":"36162:61:22","nodeType":"YulFunctionCall","src":"36162:61:22"},"variableNames":[{"name":"instance","nativeSrc":"36150:8:22","nodeType":"YulIdentifier","src":"36150:8:22"}]},{"body":{"nativeSrc":"36256:116:22","nodeType":"YulBlock","src":"36256:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36281:4:22","nodeType":"YulLiteral","src":"36281:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"36287:10:22","nodeType":"YulLiteral","src":"36287:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"36274:6:22","nodeType":"YulIdentifier","src":"36274:6:22"},"nativeSrc":"36274:24:22","nodeType":"YulFunctionCall","src":"36274:24:22"},"nativeSrc":"36274:24:22","nodeType":"YulExpressionStatement","src":"36274:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36347:4:22","nodeType":"YulLiteral","src":"36347:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"36353:4:22","nodeType":"YulLiteral","src":"36353:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"36340:6:22","nodeType":"YulIdentifier","src":"36340:6:22"},"nativeSrc":"36340:18:22","nodeType":"YulFunctionCall","src":"36340:18:22"},"nativeSrc":"36340:18:22","nodeType":"YulExpressionStatement","src":"36340:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"36246:8:22","nodeType":"YulIdentifier","src":"36246:8:22"}],"functionName":{"name":"iszero","nativeSrc":"36239:6:22","nodeType":"YulIdentifier","src":"36239:6:22"},"nativeSrc":"36239:16:22","nodeType":"YulFunctionCall","src":"36239:16:22"},"nativeSrc":"36236:136:22","nodeType":"YulIf","src":"36236:136:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"36459:7:22","nodeType":"YulIdentifier","src":"36459:7:22"},{"name":"mAfter1","nativeSrc":"36468:7:22","nodeType":"YulIdentifier","src":"36468:7:22"}],"functionName":{"name":"mstore","nativeSrc":"36452:6:22","nodeType":"YulIdentifier","src":"36452:6:22"},"nativeSrc":"36452:24:22","nodeType":"YulFunctionCall","src":"36452:24:22"},"nativeSrc":"36452:24:22","nodeType":"YulExpressionStatement","src":"36452:24:22"},{"expression":{"arguments":[{"name":"data","nativeSrc":"36496:4:22","nodeType":"YulIdentifier","src":"36496:4:22"},{"name":"dataLength","nativeSrc":"36502:10:22","nodeType":"YulIdentifier","src":"36502:10:22"}],"functionName":{"name":"mstore","nativeSrc":"36489:6:22","nodeType":"YulIdentifier","src":"36489:6:22"},"nativeSrc":"36489:24:22","nodeType":"YulFunctionCall","src":"36489:24:22"},"nativeSrc":"36489:24:22","nodeType":"YulExpressionStatement","src":"36489:24:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36537:4:22","nodeType":"YulIdentifier","src":"36537:4:22"},{"kind":"number","nativeSrc":"36543:4:22","nodeType":"YulLiteral","src":"36543:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"36533:3:22","nodeType":"YulIdentifier","src":"36533:3:22"},"nativeSrc":"36533:15:22","nodeType":"YulFunctionCall","src":"36533:15:22"},{"name":"mBefore1","nativeSrc":"36550:8:22","nodeType":"YulIdentifier","src":"36550:8:22"}],"functionName":{"name":"mstore","nativeSrc":"36526:6:22","nodeType":"YulIdentifier","src":"36526:6:22"},"nativeSrc":"36526:33:22","nodeType":"YulFunctionCall","src":"36526:33:22"},"nativeSrc":"36526:33:22","nodeType":"YulExpressionStatement","src":"36526:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36583:4:22","nodeType":"YulIdentifier","src":"36583:4:22"},{"kind":"number","nativeSrc":"36589:4:22","nodeType":"YulLiteral","src":"36589:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"36579:3:22","nodeType":"YulIdentifier","src":"36579:3:22"},"nativeSrc":"36579:15:22","nodeType":"YulFunctionCall","src":"36579:15:22"},{"name":"mBefore2","nativeSrc":"36596:8:22","nodeType":"YulIdentifier","src":"36596:8:22"}],"functionName":{"name":"mstore","nativeSrc":"36572:6:22","nodeType":"YulIdentifier","src":"36572:6:22"},"nativeSrc":"36572:33:22","nodeType":"YulFunctionCall","src":"36572:33:22"},"nativeSrc":"36572:33:22","nodeType":"YulExpressionStatement","src":"36572:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36629:4:22","nodeType":"YulIdentifier","src":"36629:4:22"},{"kind":"number","nativeSrc":"36635:4:22","nodeType":"YulLiteral","src":"36635:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"36625:3:22","nodeType":"YulIdentifier","src":"36625:3:22"},"nativeSrc":"36625:15:22","nodeType":"YulFunctionCall","src":"36625:15:22"},{"name":"mBefore3","nativeSrc":"36642:8:22","nodeType":"YulIdentifier","src":"36642:8:22"}],"functionName":{"name":"mstore","nativeSrc":"36618:6:22","nodeType":"YulIdentifier","src":"36618:6:22"},"nativeSrc":"36618:33:22","nodeType":"YulFunctionCall","src":"36618:33:22"},"nativeSrc":"36618:33:22","nodeType":"YulExpressionStatement","src":"36618:33:22"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34732:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34783:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34834:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34883:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"34924:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35143:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35241:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35401:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35615:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"35932:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36181:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36496:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36537:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36583:4:22","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"36629:4:22","valueSize":1},{"declaration":9525,"isOffset":false,"isSlot":false,"src":"35254:14:22","valueSize":1},{"declaration":9532,"isOffset":false,"isSlot":false,"src":"36150:8:22","valueSize":1},{"declaration":9532,"isOffset":false,"isSlot":false,"src":"36246:8:22","valueSize":1},{"declaration":9529,"isOffset":false,"isSlot":false,"src":"36218:4:22","valueSize":1},{"declaration":9523,"isOffset":false,"isSlot":false,"src":"36170:5:22","valueSize":1}],"id":9534,"nodeType":"InlineAssembly","src":"34595:2066:22"}]},"documentation":{"id":9521,"nodeType":"StructuredDocumentation","src":"34285:121:22","text":"@dev Deploys a deterministic clone of `implementation`\n with immutable arguments encoded in `data` and `salt`."},"id":9536,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"34420:18:22","nodeType":"FunctionDefinition","parameters":{"id":9530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9523,"mutability":"mutable","name":"value","nameLocation":"34456:5:22","nodeType":"VariableDeclaration","scope":9536,"src":"34448:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9522,"name":"uint256","nodeType":"ElementaryTypeName","src":"34448:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9525,"mutability":"mutable","name":"implementation","nameLocation":"34479:14:22","nodeType":"VariableDeclaration","scope":9536,"src":"34471:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9524,"name":"address","nodeType":"ElementaryTypeName","src":"34471:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9527,"mutability":"mutable","name":"data","nameLocation":"34516:4:22","nodeType":"VariableDeclaration","scope":9536,"src":"34503:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9526,"name":"bytes","nodeType":"ElementaryTypeName","src":"34503:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9529,"mutability":"mutable","name":"salt","nameLocation":"34538:4:22","nodeType":"VariableDeclaration","scope":9536,"src":"34530:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34530:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34438:110:22"},"returnParameters":{"id":9533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9532,"mutability":"mutable","name":"instance","nameLocation":"34575:8:22","nodeType":"VariableDeclaration","scope":9536,"src":"34567:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9531,"name":"address","nodeType":"ElementaryTypeName","src":"34567:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34566:18:22"},"scope":10092,"src":"34411:2256:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9547,"nodeType":"Block","src":"36942:1919:22","statements":[{"AST":{"nativeSrc":"37004:1851:22","nodeType":"YulBlock","src":"37004:1851:22","statements":[{"nativeSrc":"37018:21:22","nodeType":"YulAssignment","src":"37018:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"37034:4:22","nodeType":"YulLiteral","src":"37034:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37028:5:22","nodeType":"YulIdentifier","src":"37028:5:22"},"nativeSrc":"37028:11:22","nodeType":"YulFunctionCall","src":"37028:11:22"},"variableNames":[{"name":"result","nativeSrc":"37018:6:22","nodeType":"YulIdentifier","src":"37018:6:22"}]},{"nativeSrc":"37052:29:22","nodeType":"YulVariableDeclaration","src":"37052:29:22","value":{"arguments":[{"name":"data","nativeSrc":"37076:4:22","nodeType":"YulIdentifier","src":"37076:4:22"}],"functionName":{"name":"mload","nativeSrc":"37070:5:22","nodeType":"YulIdentifier","src":"37070:5:22"},"nativeSrc":"37070:11:22","nodeType":"YulFunctionCall","src":"37070:11:22"},"variables":[{"name":"dataLength","nativeSrc":"37056:10:22","nodeType":"YulTypedName","src":"37056:10:22","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"37284:14:22","nodeType":"YulIdentifier","src":"37284:14:22"},"nativeSrc":"37284:16:22","nodeType":"YulFunctionCall","src":"37284:16:22"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"37302:14:22","nodeType":"YulIdentifier","src":"37302:14:22"},"nativeSrc":"37302:16:22","nodeType":"YulFunctionCall","src":"37302:16:22"},{"arguments":[{"name":"dataLength","nativeSrc":"37323:10:22","nodeType":"YulIdentifier","src":"37323:10:22"},{"kind":"number","nativeSrc":"37335:6:22","nodeType":"YulLiteral","src":"37335:6:22","type":"","value":"0xff9b"}],"functionName":{"name":"gt","nativeSrc":"37320:2:22","nodeType":"YulIdentifier","src":"37320:2:22"},"nativeSrc":"37320:22:22","nodeType":"YulFunctionCall","src":"37320:22:22"}],"functionName":{"name":"returndatacopy","nativeSrc":"37269:14:22","nodeType":"YulIdentifier","src":"37269:14:22"},"nativeSrc":"37269:74:22","nodeType":"YulFunctionCall","src":"37269:74:22"},"nativeSrc":"37269:74:22","nodeType":"YulExpressionStatement","src":"37269:74:22"},{"nativeSrc":"37357:26:22","nodeType":"YulVariableDeclaration","src":"37357:26:22","value":{"arguments":[{"name":"result","nativeSrc":"37370:6:22","nodeType":"YulIdentifier","src":"37370:6:22"},{"kind":"number","nativeSrc":"37378:4:22","nodeType":"YulLiteral","src":"37378:4:22","type":"","value":"0x8c"}],"functionName":{"name":"add","nativeSrc":"37366:3:22","nodeType":"YulIdentifier","src":"37366:3:22"},"nativeSrc":"37366:17:22","nodeType":"YulFunctionCall","src":"37366:17:22"},"variables":[{"name":"o","nativeSrc":"37361:1:22","nodeType":"YulTypedName","src":"37361:1:22","type":""}]},{"nativeSrc":"37396:29:22","nodeType":"YulVariableDeclaration","src":"37396:29:22","value":{"arguments":[{"name":"o","nativeSrc":"37411:1:22","nodeType":"YulIdentifier","src":"37411:1:22"},{"name":"dataLength","nativeSrc":"37414:10:22","nodeType":"YulIdentifier","src":"37414:10:22"}],"functionName":{"name":"add","nativeSrc":"37407:3:22","nodeType":"YulIdentifier","src":"37407:3:22"},"nativeSrc":"37407:18:22","nodeType":"YulFunctionCall","src":"37407:18:22"},"variables":[{"name":"end","nativeSrc":"37400:3:22","nodeType":"YulTypedName","src":"37400:3:22","type":""}]},{"body":{"nativeSrc":"37531:141:22","nodeType":"YulBlock","src":"37531:141:22","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"37556:1:22","nodeType":"YulIdentifier","src":"37556:1:22"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"37569:1:22","nodeType":"YulIdentifier","src":"37569:1:22"},{"name":"d","nativeSrc":"37572:1:22","nodeType":"YulIdentifier","src":"37572:1:22"}],"functionName":{"name":"add","nativeSrc":"37565:3:22","nodeType":"YulIdentifier","src":"37565:3:22"},"nativeSrc":"37565:9:22","nodeType":"YulFunctionCall","src":"37565:9:22"}],"functionName":{"name":"mload","nativeSrc":"37559:5:22","nodeType":"YulIdentifier","src":"37559:5:22"},"nativeSrc":"37559:16:22","nodeType":"YulFunctionCall","src":"37559:16:22"}],"functionName":{"name":"mstore","nativeSrc":"37549:6:22","nodeType":"YulIdentifier","src":"37549:6:22"},"nativeSrc":"37549:27:22","nodeType":"YulFunctionCall","src":"37549:27:22"},"nativeSrc":"37549:27:22","nodeType":"YulExpressionStatement","src":"37549:27:22"},{"nativeSrc":"37593:17:22","nodeType":"YulAssignment","src":"37593:17:22","value":{"arguments":[{"name":"o","nativeSrc":"37602:1:22","nodeType":"YulIdentifier","src":"37602:1:22"},{"kind":"number","nativeSrc":"37605:4:22","nodeType":"YulLiteral","src":"37605:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37598:3:22","nodeType":"YulIdentifier","src":"37598:3:22"},"nativeSrc":"37598:12:22","nodeType":"YulFunctionCall","src":"37598:12:22"},"variableNames":[{"name":"o","nativeSrc":"37593:1:22","nodeType":"YulIdentifier","src":"37593:1:22"}]},{"body":{"nativeSrc":"37649:9:22","nodeType":"YulBlock","src":"37649:9:22","statements":[{"nativeSrc":"37651:5:22","nodeType":"YulBreak","src":"37651:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"37640:1:22","nodeType":"YulIdentifier","src":"37640:1:22"},{"name":"end","nativeSrc":"37643:3:22","nodeType":"YulIdentifier","src":"37643:3:22"}],"functionName":{"name":"lt","nativeSrc":"37637:2:22","nodeType":"YulIdentifier","src":"37637:2:22"},"nativeSrc":"37637:10:22","nodeType":"YulFunctionCall","src":"37637:10:22"}],"functionName":{"name":"iszero","nativeSrc":"37630:6:22","nodeType":"YulIdentifier","src":"37630:6:22"},"nativeSrc":"37630:18:22","nodeType":"YulFunctionCall","src":"37630:18:22"},"nativeSrc":"37627:31:22","nodeType":"YulIf","src":"37627:31:22"}]},"condition":{"kind":"number","nativeSrc":"37526:1:22","nodeType":"YulLiteral","src":"37526:1:22","type":"","value":"1"},"nativeSrc":"37485:187:22","nodeType":"YulForLoop","post":{"nativeSrc":"37528:2:22","nodeType":"YulBlock","src":"37528:2:22","statements":[]},"pre":{"nativeSrc":"37489:36:22","nodeType":"YulBlock","src":"37489:36:22","statements":[{"nativeSrc":"37491:32:22","nodeType":"YulVariableDeclaration","src":"37491:32:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"37508:4:22","nodeType":"YulIdentifier","src":"37508:4:22"},{"kind":"number","nativeSrc":"37514:4:22","nodeType":"YulLiteral","src":"37514:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37504:3:22","nodeType":"YulIdentifier","src":"37504:3:22"},"nativeSrc":"37504:15:22","nodeType":"YulFunctionCall","src":"37504:15:22"},{"name":"o","nativeSrc":"37521:1:22","nodeType":"YulIdentifier","src":"37521:1:22"}],"functionName":{"name":"sub","nativeSrc":"37500:3:22","nodeType":"YulIdentifier","src":"37500:3:22"},"nativeSrc":"37500:23:22","nodeType":"YulFunctionCall","src":"37500:23:22"},"variables":[{"name":"d","nativeSrc":"37495:1:22","nodeType":"YulTypedName","src":"37495:1:22","type":""}]}]},"src":"37485:187:22"},{"nativeSrc":"37767:37:22","nodeType":"YulVariableDeclaration","src":"37767:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"37790:10:22","nodeType":"YulIdentifier","src":"37790:10:22"},{"kind":"number","nativeSrc":"37802:1:22","nodeType":"YulLiteral","src":"37802:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"37786:3:22","nodeType":"YulIdentifier","src":"37786:3:22"},"nativeSrc":"37786:18:22","nodeType":"YulFunctionCall","src":"37786:18:22"},"variables":[{"name":"extraLength","nativeSrc":"37771:11:22","nodeType":"YulTypedName","src":"37771:11:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37829:6:22","nodeType":"YulIdentifier","src":"37829:6:22"},{"kind":"number","nativeSrc":"37837:4:22","nodeType":"YulLiteral","src":"37837:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"37825:3:22","nodeType":"YulIdentifier","src":"37825:3:22"},"nativeSrc":"37825:17:22","nodeType":"YulFunctionCall","src":"37825:17:22"},{"kind":"number","nativeSrc":"37844:28:22","nodeType":"YulLiteral","src":"37844:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"37818:6:22","nodeType":"YulIdentifier","src":"37818:6:22"},"nativeSrc":"37818:55:22","nodeType":"YulFunctionCall","src":"37818:55:22"},"nativeSrc":"37818:55:22","nodeType":"YulExpressionStatement","src":"37818:55:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37936:6:22","nodeType":"YulIdentifier","src":"37936:6:22"},{"kind":"number","nativeSrc":"37944:4:22","nodeType":"YulLiteral","src":"37944:4:22","type":"","value":"0x5f"}],"functionName":{"name":"add","nativeSrc":"37932:3:22","nodeType":"YulIdentifier","src":"37932:3:22"},"nativeSrc":"37932:17:22","nodeType":"YulFunctionCall","src":"37932:17:22"},{"name":"implementation","nativeSrc":"37951:14:22","nodeType":"YulIdentifier","src":"37951:14:22"}],"functionName":{"name":"mstore","nativeSrc":"37925:6:22","nodeType":"YulIdentifier","src":"37925:6:22"},"nativeSrc":"37925:41:22","nodeType":"YulFunctionCall","src":"37925:41:22"},"nativeSrc":"37925:41:22","nodeType":"YulExpressionStatement","src":"37925:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38098:6:22","nodeType":"YulIdentifier","src":"38098:6:22"},{"kind":"number","nativeSrc":"38106:4:22","nodeType":"YulLiteral","src":"38106:4:22","type":"","value":"0x4b"}],"functionName":{"name":"add","nativeSrc":"38094:3:22","nodeType":"YulIdentifier","src":"38094:3:22"},"nativeSrc":"38094:17:22","nodeType":"YulFunctionCall","src":"38094:17:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38136:4:22","nodeType":"YulLiteral","src":"38136:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"38142:11:22","nodeType":"YulIdentifier","src":"38142:11:22"}],"functionName":{"name":"shl","nativeSrc":"38132:3:22","nodeType":"YulIdentifier","src":"38132:3:22"},"nativeSrc":"38132:22:22","nodeType":"YulFunctionCall","src":"38132:22:22"},{"kind":"number","nativeSrc":"38156:52:22","nodeType":"YulLiteral","src":"38156:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"38129:2:22","nodeType":"YulIdentifier","src":"38129:2:22"},"nativeSrc":"38129:80:22","nodeType":"YulFunctionCall","src":"38129:80:22"}],"functionName":{"name":"mstore","nativeSrc":"38070:6:22","nodeType":"YulIdentifier","src":"38070:6:22"},"nativeSrc":"38070:153:22","nodeType":"YulFunctionCall","src":"38070:153:22"},"nativeSrc":"38070:153:22","nodeType":"YulExpressionStatement","src":"38070:153:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38314:6:22","nodeType":"YulIdentifier","src":"38314:6:22"},{"kind":"number","nativeSrc":"38322:4:22","nodeType":"YulLiteral","src":"38322:4:22","type":"","value":"0x32"}],"functionName":{"name":"add","nativeSrc":"38310:3:22","nodeType":"YulIdentifier","src":"38310:3:22"},"nativeSrc":"38310:17:22","nodeType":"YulFunctionCall","src":"38310:17:22"},{"kind":"number","nativeSrc":"38345:66:22","nodeType":"YulLiteral","src":"38345:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"38286:6:22","nodeType":"YulIdentifier","src":"38286:6:22"},"nativeSrc":"38286:139:22","nodeType":"YulFunctionCall","src":"38286:139:22"},"nativeSrc":"38286:139:22","nodeType":"YulExpressionStatement","src":"38286:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38466:6:22","nodeType":"YulIdentifier","src":"38466:6:22"},{"kind":"number","nativeSrc":"38474:4:22","nodeType":"YulLiteral","src":"38474:4:22","type":"","value":"0x12"}],"functionName":{"name":"add","nativeSrc":"38462:3:22","nodeType":"YulIdentifier","src":"38462:3:22"},"nativeSrc":"38462:17:22","nodeType":"YulFunctionCall","src":"38462:17:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38504:4:22","nodeType":"YulLiteral","src":"38504:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"38514:11:22","nodeType":"YulIdentifier","src":"38514:11:22"},{"kind":"number","nativeSrc":"38527:4:22","nodeType":"YulLiteral","src":"38527:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"38510:3:22","nodeType":"YulIdentifier","src":"38510:3:22"},"nativeSrc":"38510:22:22","nodeType":"YulFunctionCall","src":"38510:22:22"}],"functionName":{"name":"shl","nativeSrc":"38500:3:22","nodeType":"YulIdentifier","src":"38500:3:22"},"nativeSrc":"38500:33:22","nodeType":"YulFunctionCall","src":"38500:33:22"},{"kind":"number","nativeSrc":"38535:38:22","nodeType":"YulLiteral","src":"38535:38:22","type":"","value":"0x6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"38497:2:22","nodeType":"YulIdentifier","src":"38497:2:22"},"nativeSrc":"38497:77:22","nodeType":"YulFunctionCall","src":"38497:77:22"}],"functionName":{"name":"mstore","nativeSrc":"38438:6:22","nodeType":"YulIdentifier","src":"38438:6:22"},"nativeSrc":"38438:150:22","nodeType":"YulFunctionCall","src":"38438:150:22"},"nativeSrc":"38438:150:22","nodeType":"YulExpressionStatement","src":"38438:150:22"},{"expression":{"arguments":[{"name":"end","nativeSrc":"38608:3:22","nodeType":"YulIdentifier","src":"38608:3:22"},{"arguments":[{"kind":"number","nativeSrc":"38617:4:22","nodeType":"YulLiteral","src":"38617:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"38623:11:22","nodeType":"YulIdentifier","src":"38623:11:22"}],"functionName":{"name":"shl","nativeSrc":"38613:3:22","nodeType":"YulIdentifier","src":"38613:3:22"},"nativeSrc":"38613:22:22","nodeType":"YulFunctionCall","src":"38613:22:22"}],"functionName":{"name":"mstore","nativeSrc":"38601:6:22","nodeType":"YulIdentifier","src":"38601:6:22"},"nativeSrc":"38601:35:22","nodeType":"YulFunctionCall","src":"38601:35:22"},"nativeSrc":"38601:35:22","nodeType":"YulExpressionStatement","src":"38601:35:22"},{"expression":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"38660:3:22","nodeType":"YulIdentifier","src":"38660:3:22"},{"kind":"number","nativeSrc":"38665:4:22","nodeType":"YulLiteral","src":"38665:4:22","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"38656:3:22","nodeType":"YulIdentifier","src":"38656:3:22"},"nativeSrc":"38656:14:22","nodeType":"YulFunctionCall","src":"38656:14:22"},{"kind":"number","nativeSrc":"38672:1:22","nodeType":"YulLiteral","src":"38672:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38649:6:22","nodeType":"YulIdentifier","src":"38649:6:22"},"nativeSrc":"38649:25:22","nodeType":"YulFunctionCall","src":"38649:25:22"},"nativeSrc":"38649:25:22","nodeType":"YulExpressionStatement","src":"38649:25:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"38732:6:22","nodeType":"YulIdentifier","src":"38732:6:22"},{"arguments":[{"name":"extraLength","nativeSrc":"38744:11:22","nodeType":"YulIdentifier","src":"38744:11:22"},{"kind":"number","nativeSrc":"38757:4:22","nodeType":"YulLiteral","src":"38757:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"38740:3:22","nodeType":"YulIdentifier","src":"38740:3:22"},"nativeSrc":"38740:22:22","nodeType":"YulFunctionCall","src":"38740:22:22"}],"functionName":{"name":"mstore","nativeSrc":"38725:6:22","nodeType":"YulIdentifier","src":"38725:6:22"},"nativeSrc":"38725:38:22","nodeType":"YulFunctionCall","src":"38725:38:22"},"nativeSrc":"38725:38:22","nodeType":"YulExpressionStatement","src":"38725:38:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38804:4:22","nodeType":"YulLiteral","src":"38804:4:22","type":"","value":"0x40"},{"arguments":[{"kind":"number","nativeSrc":"38814:4:22","nodeType":"YulLiteral","src":"38814:4:22","type":"","value":"0x22"},{"name":"end","nativeSrc":"38820:3:22","nodeType":"YulIdentifier","src":"38820:3:22"}],"functionName":{"name":"add","nativeSrc":"38810:3:22","nodeType":"YulIdentifier","src":"38810:3:22"},"nativeSrc":"38810:14:22","nodeType":"YulFunctionCall","src":"38810:14:22"}],"functionName":{"name":"mstore","nativeSrc":"38797:6:22","nodeType":"YulIdentifier","src":"38797:6:22"},"nativeSrc":"38797:28:22","nodeType":"YulFunctionCall","src":"38797:28:22"},"nativeSrc":"38797:28:22","nodeType":"YulExpressionStatement","src":"38797:28:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9541,"isOffset":false,"isSlot":false,"src":"37076:4:22","valueSize":1},{"declaration":9541,"isOffset":false,"isSlot":false,"src":"37508:4:22","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"37951:14:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37018:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37370:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37829:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"37936:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38098:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38314:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38466:6:22","valueSize":1},{"declaration":9544,"isOffset":false,"isSlot":false,"src":"38732:6:22","valueSize":1}],"id":9546,"nodeType":"InlineAssembly","src":"36995:1860:22"}]},"documentation":{"id":9537,"nodeType":"StructuredDocumentation","src":"36673:131:22","text":"@dev Returns the initialization code hash of the clone of `implementation`\n using immutable arguments encoded in `data`."},"id":9548,"implemented":true,"kind":"function","modifiers":[],"name":"initCode","nameLocation":"36818:8:22","nodeType":"FunctionDefinition","parameters":{"id":9542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9539,"mutability":"mutable","name":"implementation","nameLocation":"36835:14:22","nodeType":"VariableDeclaration","scope":9548,"src":"36827:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9538,"name":"address","nodeType":"ElementaryTypeName","src":"36827:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9541,"mutability":"mutable","name":"data","nameLocation":"36864:4:22","nodeType":"VariableDeclaration","scope":9548,"src":"36851:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9540,"name":"bytes","nodeType":"ElementaryTypeName","src":"36851:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36826:43:22"},"returnParameters":{"id":9545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9544,"mutability":"mutable","name":"result","nameLocation":"36930:6:22","nodeType":"VariableDeclaration","scope":9548,"src":"36917:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9543,"name":"bytes","nodeType":"ElementaryTypeName","src":"36917:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36916:21:22"},"scope":10092,"src":"36809:2052:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9559,"nodeType":"Block","src":"39194:1965:22","statements":[{"AST":{"nativeSrc":"39213:1940:22","nodeType":"YulBlock","src":"39213:1940:22","statements":[{"nativeSrc":"39315:38:22","nodeType":"YulVariableDeclaration","src":"39315:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39341:4:22","nodeType":"YulIdentifier","src":"39341:4:22"},{"kind":"number","nativeSrc":"39347:4:22","nodeType":"YulLiteral","src":"39347:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"39337:3:22","nodeType":"YulIdentifier","src":"39337:3:22"},"nativeSrc":"39337:15:22","nodeType":"YulFunctionCall","src":"39337:15:22"}],"functionName":{"name":"mload","nativeSrc":"39331:5:22","nodeType":"YulIdentifier","src":"39331:5:22"},"nativeSrc":"39331:22:22","nodeType":"YulFunctionCall","src":"39331:22:22"},"variables":[{"name":"mBefore3","nativeSrc":"39319:8:22","nodeType":"YulTypedName","src":"39319:8:22","type":""}]},{"nativeSrc":"39366:38:22","nodeType":"YulVariableDeclaration","src":"39366:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39392:4:22","nodeType":"YulIdentifier","src":"39392:4:22"},{"kind":"number","nativeSrc":"39398:4:22","nodeType":"YulLiteral","src":"39398:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"39388:3:22","nodeType":"YulIdentifier","src":"39388:3:22"},"nativeSrc":"39388:15:22","nodeType":"YulFunctionCall","src":"39388:15:22"}],"functionName":{"name":"mload","nativeSrc":"39382:5:22","nodeType":"YulIdentifier","src":"39382:5:22"},"nativeSrc":"39382:22:22","nodeType":"YulFunctionCall","src":"39382:22:22"},"variables":[{"name":"mBefore2","nativeSrc":"39370:8:22","nodeType":"YulTypedName","src":"39370:8:22","type":""}]},{"nativeSrc":"39417:38:22","nodeType":"YulVariableDeclaration","src":"39417:38:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39443:4:22","nodeType":"YulIdentifier","src":"39443:4:22"},{"kind":"number","nativeSrc":"39449:4:22","nodeType":"YulLiteral","src":"39449:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"39439:3:22","nodeType":"YulIdentifier","src":"39439:3:22"},"nativeSrc":"39439:15:22","nodeType":"YulFunctionCall","src":"39439:15:22"}],"functionName":{"name":"mload","nativeSrc":"39433:5:22","nodeType":"YulIdentifier","src":"39433:5:22"},"nativeSrc":"39433:22:22","nodeType":"YulFunctionCall","src":"39433:22:22"},"variables":[{"name":"mBefore1","nativeSrc":"39421:8:22","nodeType":"YulTypedName","src":"39421:8:22","type":""}]},{"nativeSrc":"39468:29:22","nodeType":"YulVariableDeclaration","src":"39468:29:22","value":{"arguments":[{"name":"data","nativeSrc":"39492:4:22","nodeType":"YulIdentifier","src":"39492:4:22"}],"functionName":{"name":"mload","nativeSrc":"39486:5:22","nodeType":"YulIdentifier","src":"39486:5:22"},"nativeSrc":"39486:11:22","nodeType":"YulFunctionCall","src":"39486:11:22"},"variables":[{"name":"dataLength","nativeSrc":"39472:10:22","nodeType":"YulTypedName","src":"39472:10:22","type":""}]},{"nativeSrc":"39510:47:22","nodeType":"YulVariableDeclaration","src":"39510:47:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39533:4:22","nodeType":"YulIdentifier","src":"39533:4:22"},{"kind":"number","nativeSrc":"39539:4:22","nodeType":"YulLiteral","src":"39539:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39529:3:22","nodeType":"YulIdentifier","src":"39529:3:22"},"nativeSrc":"39529:15:22","nodeType":"YulFunctionCall","src":"39529:15:22"},{"name":"dataLength","nativeSrc":"39546:10:22","nodeType":"YulIdentifier","src":"39546:10:22"}],"functionName":{"name":"add","nativeSrc":"39525:3:22","nodeType":"YulIdentifier","src":"39525:3:22"},"nativeSrc":"39525:32:22","nodeType":"YulFunctionCall","src":"39525:32:22"},"variables":[{"name":"dataEnd","nativeSrc":"39514:7:22","nodeType":"YulTypedName","src":"39514:7:22","type":""}]},{"nativeSrc":"39570:29:22","nodeType":"YulVariableDeclaration","src":"39570:29:22","value":{"arguments":[{"name":"dataEnd","nativeSrc":"39591:7:22","nodeType":"YulIdentifier","src":"39591:7:22"}],"functionName":{"name":"mload","nativeSrc":"39585:5:22","nodeType":"YulIdentifier","src":"39585:5:22"},"nativeSrc":"39585:14:22","nodeType":"YulFunctionCall","src":"39585:14:22"},"variables":[{"name":"mAfter1","nativeSrc":"39574:7:22","nodeType":"YulTypedName","src":"39574:7:22","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39802:14:22","nodeType":"YulIdentifier","src":"39802:14:22"},"nativeSrc":"39802:16:22","nodeType":"YulFunctionCall","src":"39802:16:22"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39820:14:22","nodeType":"YulIdentifier","src":"39820:14:22"},"nativeSrc":"39820:16:22","nodeType":"YulFunctionCall","src":"39820:16:22"},{"arguments":[{"name":"dataLength","nativeSrc":"39841:10:22","nodeType":"YulIdentifier","src":"39841:10:22"},{"kind":"number","nativeSrc":"39853:6:22","nodeType":"YulLiteral","src":"39853:6:22","type":"","value":"0xff9b"}],"functionName":{"name":"gt","nativeSrc":"39838:2:22","nodeType":"YulIdentifier","src":"39838:2:22"},"nativeSrc":"39838:22:22","nodeType":"YulFunctionCall","src":"39838:22:22"}],"functionName":{"name":"returndatacopy","nativeSrc":"39787:14:22","nodeType":"YulIdentifier","src":"39787:14:22"},"nativeSrc":"39787:74:22","nodeType":"YulFunctionCall","src":"39787:74:22"},"nativeSrc":"39787:74:22","nodeType":"YulExpressionStatement","src":"39787:74:22"},{"nativeSrc":"39956:37:22","nodeType":"YulVariableDeclaration","src":"39956:37:22","value":{"arguments":[{"name":"dataLength","nativeSrc":"39979:10:22","nodeType":"YulIdentifier","src":"39979:10:22"},{"kind":"number","nativeSrc":"39991:1:22","nodeType":"YulLiteral","src":"39991:1:22","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"39975:3:22","nodeType":"YulIdentifier","src":"39975:3:22"},"nativeSrc":"39975:18:22","nodeType":"YulFunctionCall","src":"39975:18:22"},"variables":[{"name":"extraLength","nativeSrc":"39960:11:22","nodeType":"YulTypedName","src":"39960:11:22","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"40014:4:22","nodeType":"YulIdentifier","src":"40014:4:22"},{"kind":"number","nativeSrc":"40020:28:22","nodeType":"YulLiteral","src":"40020:28:22","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"40007:6:22","nodeType":"YulIdentifier","src":"40007:6:22"},"nativeSrc":"40007:42:22","nodeType":"YulFunctionCall","src":"40007:42:22"},"nativeSrc":"40007:42:22","nodeType":"YulExpressionStatement","src":"40007:42:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40112:4:22","nodeType":"YulIdentifier","src":"40112:4:22"},{"kind":"number","nativeSrc":"40118:4:22","nodeType":"YulLiteral","src":"40118:4:22","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"40108:3:22","nodeType":"YulIdentifier","src":"40108:3:22"},"nativeSrc":"40108:15:22","nodeType":"YulFunctionCall","src":"40108:15:22"},{"name":"implementation","nativeSrc":"40125:14:22","nodeType":"YulIdentifier","src":"40125:14:22"}],"functionName":{"name":"mstore","nativeSrc":"40101:6:22","nodeType":"YulIdentifier","src":"40101:6:22"},"nativeSrc":"40101:39:22","nodeType":"YulFunctionCall","src":"40101:39:22"},"nativeSrc":"40101:39:22","nodeType":"YulExpressionStatement","src":"40101:39:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40272:4:22","nodeType":"YulIdentifier","src":"40272:4:22"},{"kind":"number","nativeSrc":"40278:4:22","nodeType":"YulLiteral","src":"40278:4:22","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"40268:3:22","nodeType":"YulIdentifier","src":"40268:3:22"},"nativeSrc":"40268:15:22","nodeType":"YulFunctionCall","src":"40268:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"40308:4:22","nodeType":"YulLiteral","src":"40308:4:22","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"40314:11:22","nodeType":"YulIdentifier","src":"40314:11:22"}],"functionName":{"name":"shl","nativeSrc":"40304:3:22","nodeType":"YulIdentifier","src":"40304:3:22"},"nativeSrc":"40304:22:22","nodeType":"YulFunctionCall","src":"40304:22:22"},{"kind":"number","nativeSrc":"40328:52:22","nodeType":"YulLiteral","src":"40328:52:22","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"40301:2:22","nodeType":"YulIdentifier","src":"40301:2:22"},"nativeSrc":"40301:80:22","nodeType":"YulFunctionCall","src":"40301:80:22"}],"functionName":{"name":"mstore","nativeSrc":"40244:6:22","nodeType":"YulIdentifier","src":"40244:6:22"},"nativeSrc":"40244:151:22","nodeType":"YulFunctionCall","src":"40244:151:22"},"nativeSrc":"40244:151:22","nodeType":"YulExpressionStatement","src":"40244:151:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40486:4:22","nodeType":"YulIdentifier","src":"40486:4:22"},{"kind":"number","nativeSrc":"40492:4:22","nodeType":"YulLiteral","src":"40492:4:22","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"40482:3:22","nodeType":"YulIdentifier","src":"40482:3:22"},"nativeSrc":"40482:15:22","nodeType":"YulFunctionCall","src":"40482:15:22"},{"kind":"number","nativeSrc":"40499:66:22","nodeType":"YulLiteral","src":"40499:66:22","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"40458:6:22","nodeType":"YulIdentifier","src":"40458:6:22"},"nativeSrc":"40458:121:22","nodeType":"YulFunctionCall","src":"40458:121:22"},"nativeSrc":"40458:121:22","nodeType":"YulExpressionStatement","src":"40458:121:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40620:4:22","nodeType":"YulIdentifier","src":"40620:4:22"},{"kind":"number","nativeSrc":"40626:4:22","nodeType":"YulLiteral","src":"40626:4:22","type":"","value":"0x5a"}],"functionName":{"name":"sub","nativeSrc":"40616:3:22","nodeType":"YulIdentifier","src":"40616:3:22"},"nativeSrc":"40616:15:22","nodeType":"YulFunctionCall","src":"40616:15:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"40656:4:22","nodeType":"YulLiteral","src":"40656:4:22","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"40666:11:22","nodeType":"YulIdentifier","src":"40666:11:22"},{"kind":"number","nativeSrc":"40679:4:22","nodeType":"YulLiteral","src":"40679:4:22","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"40662:3:22","nodeType":"YulIdentifier","src":"40662:3:22"},"nativeSrc":"40662:22:22","nodeType":"YulFunctionCall","src":"40662:22:22"}],"functionName":{"name":"shl","nativeSrc":"40652:3:22","nodeType":"YulIdentifier","src":"40652:3:22"},"nativeSrc":"40652:33:22","nodeType":"YulFunctionCall","src":"40652:33:22"},{"kind":"number","nativeSrc":"40687:38:22","nodeType":"YulLiteral","src":"40687:38:22","type":"","value":"0x6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"40649:2:22","nodeType":"YulIdentifier","src":"40649:2:22"},"nativeSrc":"40649:77:22","nodeType":"YulFunctionCall","src":"40649:77:22"}],"functionName":{"name":"mstore","nativeSrc":"40592:6:22","nodeType":"YulIdentifier","src":"40592:6:22"},"nativeSrc":"40592:148:22","nodeType":"YulFunctionCall","src":"40592:148:22"},"nativeSrc":"40592:148:22","nodeType":"YulExpressionStatement","src":"40592:148:22"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"40760:7:22","nodeType":"YulIdentifier","src":"40760:7:22"},{"arguments":[{"kind":"number","nativeSrc":"40773:4:22","nodeType":"YulLiteral","src":"40773:4:22","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"40779:11:22","nodeType":"YulIdentifier","src":"40779:11:22"}],"functionName":{"name":"shl","nativeSrc":"40769:3:22","nodeType":"YulIdentifier","src":"40769:3:22"},"nativeSrc":"40769:22:22","nodeType":"YulFunctionCall","src":"40769:22:22"}],"functionName":{"name":"mstore","nativeSrc":"40753:6:22","nodeType":"YulIdentifier","src":"40753:6:22"},"nativeSrc":"40753:39:22","nodeType":"YulFunctionCall","src":"40753:39:22"},"nativeSrc":"40753:39:22","nodeType":"YulExpressionStatement","src":"40753:39:22"},{"nativeSrc":"40806:58:22","nodeType":"YulAssignment","src":"40806:58:22","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40828:4:22","nodeType":"YulIdentifier","src":"40828:4:22"},{"kind":"number","nativeSrc":"40834:4:22","nodeType":"YulLiteral","src":"40834:4:22","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"40824:3:22","nodeType":"YulIdentifier","src":"40824:3:22"},"nativeSrc":"40824:15:22","nodeType":"YulFunctionCall","src":"40824:15:22"},{"arguments":[{"name":"extraLength","nativeSrc":"40845:11:22","nodeType":"YulIdentifier","src":"40845:11:22"},{"kind":"number","nativeSrc":"40858:4:22","nodeType":"YulLiteral","src":"40858:4:22","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"40841:3:22","nodeType":"YulIdentifier","src":"40841:3:22"},"nativeSrc":"40841:22:22","nodeType":"YulFunctionCall","src":"40841:22:22"}],"functionName":{"name":"keccak256","nativeSrc":"40814:9:22","nodeType":"YulIdentifier","src":"40814:9:22"},"nativeSrc":"40814:50:22","nodeType":"YulFunctionCall","src":"40814:50:22"},"variableNames":[{"name":"hash","nativeSrc":"40806:4:22","nodeType":"YulIdentifier","src":"40806:4:22"}]},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"40951:7:22","nodeType":"YulIdentifier","src":"40951:7:22"},{"name":"mAfter1","nativeSrc":"40960:7:22","nodeType":"YulIdentifier","src":"40960:7:22"}],"functionName":{"name":"mstore","nativeSrc":"40944:6:22","nodeType":"YulIdentifier","src":"40944:6:22"},"nativeSrc":"40944:24:22","nodeType":"YulFunctionCall","src":"40944:24:22"},"nativeSrc":"40944:24:22","nodeType":"YulExpressionStatement","src":"40944:24:22"},{"expression":{"arguments":[{"name":"data","nativeSrc":"40988:4:22","nodeType":"YulIdentifier","src":"40988:4:22"},{"name":"dataLength","nativeSrc":"40994:10:22","nodeType":"YulIdentifier","src":"40994:10:22"}],"functionName":{"name":"mstore","nativeSrc":"40981:6:22","nodeType":"YulIdentifier","src":"40981:6:22"},"nativeSrc":"40981:24:22","nodeType":"YulFunctionCall","src":"40981:24:22"},"nativeSrc":"40981:24:22","nodeType":"YulExpressionStatement","src":"40981:24:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41029:4:22","nodeType":"YulIdentifier","src":"41029:4:22"},{"kind":"number","nativeSrc":"41035:4:22","nodeType":"YulLiteral","src":"41035:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"41025:3:22","nodeType":"YulIdentifier","src":"41025:3:22"},"nativeSrc":"41025:15:22","nodeType":"YulFunctionCall","src":"41025:15:22"},{"name":"mBefore1","nativeSrc":"41042:8:22","nodeType":"YulIdentifier","src":"41042:8:22"}],"functionName":{"name":"mstore","nativeSrc":"41018:6:22","nodeType":"YulIdentifier","src":"41018:6:22"},"nativeSrc":"41018:33:22","nodeType":"YulFunctionCall","src":"41018:33:22"},"nativeSrc":"41018:33:22","nodeType":"YulExpressionStatement","src":"41018:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41075:4:22","nodeType":"YulIdentifier","src":"41075:4:22"},{"kind":"number","nativeSrc":"41081:4:22","nodeType":"YulLiteral","src":"41081:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"41071:3:22","nodeType":"YulIdentifier","src":"41071:3:22"},"nativeSrc":"41071:15:22","nodeType":"YulFunctionCall","src":"41071:15:22"},{"name":"mBefore2","nativeSrc":"41088:8:22","nodeType":"YulIdentifier","src":"41088:8:22"}],"functionName":{"name":"mstore","nativeSrc":"41064:6:22","nodeType":"YulIdentifier","src":"41064:6:22"},"nativeSrc":"41064:33:22","nodeType":"YulFunctionCall","src":"41064:33:22"},"nativeSrc":"41064:33:22","nodeType":"YulExpressionStatement","src":"41064:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41121:4:22","nodeType":"YulIdentifier","src":"41121:4:22"},{"kind":"number","nativeSrc":"41127:4:22","nodeType":"YulLiteral","src":"41127:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"41117:3:22","nodeType":"YulIdentifier","src":"41117:3:22"},"nativeSrc":"41117:15:22","nodeType":"YulFunctionCall","src":"41117:15:22"},{"name":"mBefore3","nativeSrc":"41134:8:22","nodeType":"YulIdentifier","src":"41134:8:22"}],"functionName":{"name":"mstore","nativeSrc":"41110:6:22","nodeType":"YulIdentifier","src":"41110:6:22"},"nativeSrc":"41110:33:22","nodeType":"YulFunctionCall","src":"41110:33:22"},"nativeSrc":"41110:33:22","nodeType":"YulExpressionStatement","src":"41110:33:22"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39341:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39392:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39443:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39492:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"39533:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40014:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40112:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40272:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40486:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40620:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40828:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"40988:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"41029:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"41075:4:22","valueSize":1},{"declaration":9553,"isOffset":false,"isSlot":false,"src":"41121:4:22","valueSize":1},{"declaration":9556,"isOffset":false,"isSlot":false,"src":"40806:4:22","valueSize":1},{"declaration":9551,"isOffset":false,"isSlot":false,"src":"40125:14:22","valueSize":1}],"id":9558,"nodeType":"InlineAssembly","src":"39204:1949:22"}]},"documentation":{"id":9549,"nodeType":"StructuredDocumentation","src":"38867:192:22","text":"@dev Returns the initialization code hash of the clone of `implementation`\n using immutable arguments encoded in `data`.\n Used for mining vanity addresses with create2crunch."},"id":9560,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash","nameLocation":"39073:12:22","nodeType":"FunctionDefinition","parameters":{"id":9554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9551,"mutability":"mutable","name":"implementation","nameLocation":"39094:14:22","nodeType":"VariableDeclaration","scope":9560,"src":"39086:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9550,"name":"address","nodeType":"ElementaryTypeName","src":"39086:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9553,"mutability":"mutable","name":"data","nameLocation":"39123:4:22","nodeType":"VariableDeclaration","scope":9560,"src":"39110:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9552,"name":"bytes","nodeType":"ElementaryTypeName","src":"39110:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"39085:43:22"},"returnParameters":{"id":9557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9556,"mutability":"mutable","name":"hash","nameLocation":"39184:4:22","nodeType":"VariableDeclaration","scope":9560,"src":"39176:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39176:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39175:14:22"},"scope":10092,"src":"39064:2095:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9589,"nodeType":"Block","src":"41611:137:22","statements":[{"assignments":[9575],"declarations":[{"constant":false,"id":9575,"mutability":"mutable","name":"hash","nameLocation":"41629:4:22","nodeType":"VariableDeclaration","scope":9589,"src":"41621:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41621:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9580,"initialValue":{"arguments":[{"id":9577,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9563,"src":"41649:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9578,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9565,"src":"41665:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9576,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[9330,9560],"referencedDeclaration":9560,"src":"41636:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":9579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41636:34:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41621:49:22"},{"expression":{"id":9587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9581,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9572,"src":"41680:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9583,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"41720:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9584,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9567,"src":"41726:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9585,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9569,"src":"41732:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9582,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"41692:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41692:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"41680:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9588,"nodeType":"ExpressionStatement","src":"41680:61:22"}]},"documentation":{"id":9561,"nodeType":"StructuredDocumentation","src":"41165:249:22","text":"@dev Returns the address of the deterministic clone of\n `implementation` using immutable arguments encoded in `data`, with `salt`, by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9590,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"41428:27:22","nodeType":"FunctionDefinition","parameters":{"id":9570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9563,"mutability":"mutable","name":"implementation","nameLocation":"41473:14:22","nodeType":"VariableDeclaration","scope":9590,"src":"41465:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9562,"name":"address","nodeType":"ElementaryTypeName","src":"41465:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9565,"mutability":"mutable","name":"data","nameLocation":"41510:4:22","nodeType":"VariableDeclaration","scope":9590,"src":"41497:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9564,"name":"bytes","nodeType":"ElementaryTypeName","src":"41497:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9567,"mutability":"mutable","name":"salt","nameLocation":"41532:4:22","nodeType":"VariableDeclaration","scope":9590,"src":"41524:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41524:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9569,"mutability":"mutable","name":"deployer","nameLocation":"41554:8:22","nodeType":"VariableDeclaration","scope":9590,"src":"41546:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9568,"name":"address","nodeType":"ElementaryTypeName","src":"41546:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41455:113:22"},"returnParameters":{"id":9573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9572,"mutability":"mutable","name":"predicted","nameLocation":"41600:9:22","nodeType":"VariableDeclaration","scope":9590,"src":"41592:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9571,"name":"address","nodeType":"ElementaryTypeName","src":"41592:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41591:19:22"},"scope":10092,"src":"41419:329:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9605,"nodeType":"Block","src":"42358:60:22","statements":[{"expression":{"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9598,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9596,"src":"42368:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42393:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9601,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9593,"src":"42396:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9599,"name":"deployERC1967","nodeType":"Identifier","overloadedDeclarations":[9606,9618],"referencedDeclaration":9618,"src":"42379:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42379:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"42368:43:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9604,"nodeType":"ExpressionStatement","src":"42368:43:22"}]},"documentation":{"id":9591,"nodeType":"StructuredDocumentation","src":"42207:63:22","text":"@dev Deploys a minimal ERC1967 proxy with `implementation`."},"id":9606,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967","nameLocation":"42284:13:22","nodeType":"FunctionDefinition","parameters":{"id":9594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9593,"mutability":"mutable","name":"implementation","nameLocation":"42306:14:22","nodeType":"VariableDeclaration","scope":9606,"src":"42298:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9592,"name":"address","nodeType":"ElementaryTypeName","src":"42298:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42297:24:22"},"returnParameters":{"id":9597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9596,"mutability":"mutable","name":"instance","nameLocation":"42348:8:22","nodeType":"VariableDeclaration","scope":9606,"src":"42340:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9595,"name":"address","nodeType":"ElementaryTypeName","src":"42340:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42339:18:22"},"scope":10092,"src":"42275:143:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9617,"nodeType":"Block","src":"42658:6584:22","statements":[{"AST":{"nativeSrc":"42720:6516:22","nodeType":"YulBlock","src":"42720:6516:22","statements":[{"nativeSrc":"48548:20:22","nodeType":"YulVariableDeclaration","src":"48548:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"48563:4:22","nodeType":"YulLiteral","src":"48563:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"48557:5:22","nodeType":"YulIdentifier","src":"48557:5:22"},"nativeSrc":"48557:11:22","nodeType":"YulFunctionCall","src":"48557:11:22"},"variables":[{"name":"m","nativeSrc":"48552:1:22","nodeType":"YulTypedName","src":"48552:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48622:4:22","nodeType":"YulLiteral","src":"48622:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"48628:66:22","nodeType":"YulLiteral","src":"48628:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"48615:6:22","nodeType":"YulIdentifier","src":"48615:6:22"},"nativeSrc":"48615:80:22","nodeType":"YulFunctionCall","src":"48615:80:22"},"nativeSrc":"48615:80:22","nodeType":"YulExpressionStatement","src":"48615:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48715:4:22","nodeType":"YulLiteral","src":"48715:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"48721:66:22","nodeType":"YulLiteral","src":"48721:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"48708:6:22","nodeType":"YulIdentifier","src":"48708:6:22"},"nativeSrc":"48708:80:22","nodeType":"YulFunctionCall","src":"48708:80:22"},"nativeSrc":"48708:80:22","nodeType":"YulExpressionStatement","src":"48708:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48808:4:22","nodeType":"YulLiteral","src":"48808:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"48814:6:22","nodeType":"YulLiteral","src":"48814:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"48801:6:22","nodeType":"YulIdentifier","src":"48801:6:22"},"nativeSrc":"48801:20:22","nodeType":"YulFunctionCall","src":"48801:20:22"},"nativeSrc":"48801:20:22","nodeType":"YulExpressionStatement","src":"48801:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48841:4:22","nodeType":"YulLiteral","src":"48841:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"48847:14:22","nodeType":"YulIdentifier","src":"48847:14:22"}],"functionName":{"name":"mstore","nativeSrc":"48834:6:22","nodeType":"YulIdentifier","src":"48834:6:22"},"nativeSrc":"48834:28:22","nodeType":"YulFunctionCall","src":"48834:28:22"},"nativeSrc":"48834:28:22","nodeType":"YulExpressionStatement","src":"48834:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48882:4:22","nodeType":"YulLiteral","src":"48882:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"48888:20:22","nodeType":"YulLiteral","src":"48888:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"48875:6:22","nodeType":"YulIdentifier","src":"48875:6:22"},"nativeSrc":"48875:34:22","nodeType":"YulFunctionCall","src":"48875:34:22"},"nativeSrc":"48875:34:22","nodeType":"YulExpressionStatement","src":"48875:34:22"},{"nativeSrc":"48922:37:22","nodeType":"YulAssignment","src":"48922:37:22","value":{"arguments":[{"name":"value","nativeSrc":"48941:5:22","nodeType":"YulIdentifier","src":"48941:5:22"},{"kind":"number","nativeSrc":"48948:4:22","nodeType":"YulLiteral","src":"48948:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"48954:4:22","nodeType":"YulLiteral","src":"48954:4:22","type":"","value":"0x5f"}],"functionName":{"name":"create","nativeSrc":"48934:6:22","nodeType":"YulIdentifier","src":"48934:6:22"},"nativeSrc":"48934:25:22","nodeType":"YulFunctionCall","src":"48934:25:22"},"variableNames":[{"name":"instance","nativeSrc":"48922:8:22","nodeType":"YulIdentifier","src":"48922:8:22"}]},{"body":{"nativeSrc":"48992:116:22","nodeType":"YulBlock","src":"48992:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"49017:4:22","nodeType":"YulLiteral","src":"49017:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"49023:10:22","nodeType":"YulLiteral","src":"49023:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"49010:6:22","nodeType":"YulIdentifier","src":"49010:6:22"},"nativeSrc":"49010:24:22","nodeType":"YulFunctionCall","src":"49010:24:22"},"nativeSrc":"49010:24:22","nodeType":"YulExpressionStatement","src":"49010:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49083:4:22","nodeType":"YulLiteral","src":"49083:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"49089:4:22","nodeType":"YulLiteral","src":"49089:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"49076:6:22","nodeType":"YulIdentifier","src":"49076:6:22"},"nativeSrc":"49076:18:22","nodeType":"YulFunctionCall","src":"49076:18:22"},"nativeSrc":"49076:18:22","nodeType":"YulExpressionStatement","src":"49076:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"48982:8:22","nodeType":"YulIdentifier","src":"48982:8:22"}],"functionName":{"name":"iszero","nativeSrc":"48975:6:22","nodeType":"YulIdentifier","src":"48975:6:22"},"nativeSrc":"48975:16:22","nodeType":"YulFunctionCall","src":"48975:16:22"},"nativeSrc":"48972:136:22","nodeType":"YulIf","src":"48972:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49128:4:22","nodeType":"YulLiteral","src":"49128:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"49134:1:22","nodeType":"YulIdentifier","src":"49134:1:22"}],"functionName":{"name":"mstore","nativeSrc":"49121:6:22","nodeType":"YulIdentifier","src":"49121:6:22"},"nativeSrc":"49121:15:22","nodeType":"YulFunctionCall","src":"49121:15:22"},"nativeSrc":"49121:15:22","nodeType":"YulExpressionStatement","src":"49121:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49192:4:22","nodeType":"YulLiteral","src":"49192:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"49198:1:22","nodeType":"YulLiteral","src":"49198:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"49185:6:22","nodeType":"YulIdentifier","src":"49185:6:22"},"nativeSrc":"49185:15:22","nodeType":"YulFunctionCall","src":"49185:15:22"},"nativeSrc":"49185:15:22","nodeType":"YulExpressionStatement","src":"49185:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9611,"isOffset":false,"isSlot":false,"src":"48847:14:22","valueSize":1},{"declaration":9614,"isOffset":false,"isSlot":false,"src":"48922:8:22","valueSize":1},{"declaration":9614,"isOffset":false,"isSlot":false,"src":"48982:8:22","valueSize":1},{"declaration":9609,"isOffset":false,"isSlot":false,"src":"48941:5:22","valueSize":1}],"id":9616,"nodeType":"InlineAssembly","src":"42711:6525:22"}]},"documentation":{"id":9607,"nodeType":"StructuredDocumentation","src":"42424:111:22","text":"@dev Deploys a minimal ERC1967 proxy with `implementation`.\n Deposits `value` ETH during deployment."},"id":9618,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967","nameLocation":"42549:13:22","nodeType":"FunctionDefinition","parameters":{"id":9612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9609,"mutability":"mutable","name":"value","nameLocation":"42571:5:22","nodeType":"VariableDeclaration","scope":9618,"src":"42563:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9608,"name":"uint256","nodeType":"ElementaryTypeName","src":"42563:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9611,"mutability":"mutable","name":"implementation","nameLocation":"42586:14:22","nodeType":"VariableDeclaration","scope":9618,"src":"42578:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9610,"name":"address","nodeType":"ElementaryTypeName","src":"42578:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42562:39:22"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9614,"mutability":"mutable","name":"instance","nameLocation":"42644:8:22","nodeType":"VariableDeclaration","scope":9618,"src":"42636:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9613,"name":"address","nodeType":"ElementaryTypeName","src":"42636:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42635:18:22"},"scope":10092,"src":"42540:6702:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9636,"nodeType":"Block","src":"49471:79:22","statements":[{"expression":{"id":9634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9628,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9626,"src":"49481:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49519:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9631,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9621,"src":"49522:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9632,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9623,"src":"49538:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9629,"name":"deployDeterministicERC1967","nodeType":"Identifier","overloadedDeclarations":[9637,9651],"referencedDeclaration":9651,"src":"49492:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49492:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49481:62:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9635,"nodeType":"ExpressionStatement","src":"49481:62:22"}]},"documentation":{"id":9619,"nodeType":"StructuredDocumentation","src":"49248:88:22","text":"@dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`."},"id":9637,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967","nameLocation":"49350:26:22","nodeType":"FunctionDefinition","parameters":{"id":9624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9621,"mutability":"mutable","name":"implementation","nameLocation":"49385:14:22","nodeType":"VariableDeclaration","scope":9637,"src":"49377:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9620,"name":"address","nodeType":"ElementaryTypeName","src":"49377:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9623,"mutability":"mutable","name":"salt","nameLocation":"49409:4:22","nodeType":"VariableDeclaration","scope":9637,"src":"49401:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49401:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49376:38:22"},"returnParameters":{"id":9627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9626,"mutability":"mutable","name":"instance","nameLocation":"49457:8:22","nodeType":"VariableDeclaration","scope":9637,"src":"49449:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9625,"name":"address","nodeType":"ElementaryTypeName","src":"49449:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49448:18:22"},"scope":10092,"src":"49341:209:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9650,"nodeType":"Block","src":"49842:777:22","statements":[{"AST":{"nativeSrc":"49904:709:22","nodeType":"YulBlock","src":"49904:709:22","statements":[{"nativeSrc":"49918:20:22","nodeType":"YulVariableDeclaration","src":"49918:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"49933:4:22","nodeType":"YulLiteral","src":"49933:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"49927:5:22","nodeType":"YulIdentifier","src":"49927:5:22"},"nativeSrc":"49927:11:22","nodeType":"YulFunctionCall","src":"49927:11:22"},"variables":[{"name":"m","nativeSrc":"49922:1:22","nodeType":"YulTypedName","src":"49922:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49992:4:22","nodeType":"YulLiteral","src":"49992:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"49998:66:22","nodeType":"YulLiteral","src":"49998:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"49985:6:22","nodeType":"YulIdentifier","src":"49985:6:22"},"nativeSrc":"49985:80:22","nodeType":"YulFunctionCall","src":"49985:80:22"},"nativeSrc":"49985:80:22","nodeType":"YulExpressionStatement","src":"49985:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50085:4:22","nodeType":"YulLiteral","src":"50085:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"50091:66:22","nodeType":"YulLiteral","src":"50091:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"50078:6:22","nodeType":"YulIdentifier","src":"50078:6:22"},"nativeSrc":"50078:80:22","nodeType":"YulFunctionCall","src":"50078:80:22"},"nativeSrc":"50078:80:22","nodeType":"YulExpressionStatement","src":"50078:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50178:4:22","nodeType":"YulLiteral","src":"50178:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"50184:6:22","nodeType":"YulLiteral","src":"50184:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"50171:6:22","nodeType":"YulIdentifier","src":"50171:6:22"},"nativeSrc":"50171:20:22","nodeType":"YulFunctionCall","src":"50171:20:22"},"nativeSrc":"50171:20:22","nodeType":"YulExpressionStatement","src":"50171:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50211:4:22","nodeType":"YulLiteral","src":"50211:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"50217:14:22","nodeType":"YulIdentifier","src":"50217:14:22"}],"functionName":{"name":"mstore","nativeSrc":"50204:6:22","nodeType":"YulIdentifier","src":"50204:6:22"},"nativeSrc":"50204:28:22","nodeType":"YulFunctionCall","src":"50204:28:22"},"nativeSrc":"50204:28:22","nodeType":"YulExpressionStatement","src":"50204:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50252:4:22","nodeType":"YulLiteral","src":"50252:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"50258:20:22","nodeType":"YulLiteral","src":"50258:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"50245:6:22","nodeType":"YulIdentifier","src":"50245:6:22"},"nativeSrc":"50245:34:22","nodeType":"YulFunctionCall","src":"50245:34:22"},"nativeSrc":"50245:34:22","nodeType":"YulExpressionStatement","src":"50245:34:22"},{"nativeSrc":"50292:44:22","nodeType":"YulAssignment","src":"50292:44:22","value":{"arguments":[{"name":"value","nativeSrc":"50312:5:22","nodeType":"YulIdentifier","src":"50312:5:22"},{"kind":"number","nativeSrc":"50319:4:22","nodeType":"YulLiteral","src":"50319:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"50325:4:22","nodeType":"YulLiteral","src":"50325:4:22","type":"","value":"0x5f"},{"name":"salt","nativeSrc":"50331:4:22","nodeType":"YulIdentifier","src":"50331:4:22"}],"functionName":{"name":"create2","nativeSrc":"50304:7:22","nodeType":"YulIdentifier","src":"50304:7:22"},"nativeSrc":"50304:32:22","nodeType":"YulFunctionCall","src":"50304:32:22"},"variableNames":[{"name":"instance","nativeSrc":"50292:8:22","nodeType":"YulIdentifier","src":"50292:8:22"}]},{"body":{"nativeSrc":"50369:116:22","nodeType":"YulBlock","src":"50369:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"50394:4:22","nodeType":"YulLiteral","src":"50394:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"50400:10:22","nodeType":"YulLiteral","src":"50400:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"50387:6:22","nodeType":"YulIdentifier","src":"50387:6:22"},"nativeSrc":"50387:24:22","nodeType":"YulFunctionCall","src":"50387:24:22"},"nativeSrc":"50387:24:22","nodeType":"YulExpressionStatement","src":"50387:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50460:4:22","nodeType":"YulLiteral","src":"50460:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"50466:4:22","nodeType":"YulLiteral","src":"50466:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"50453:6:22","nodeType":"YulIdentifier","src":"50453:6:22"},"nativeSrc":"50453:18:22","nodeType":"YulFunctionCall","src":"50453:18:22"},"nativeSrc":"50453:18:22","nodeType":"YulExpressionStatement","src":"50453:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"50359:8:22","nodeType":"YulIdentifier","src":"50359:8:22"}],"functionName":{"name":"iszero","nativeSrc":"50352:6:22","nodeType":"YulIdentifier","src":"50352:6:22"},"nativeSrc":"50352:16:22","nodeType":"YulFunctionCall","src":"50352:16:22"},"nativeSrc":"50349:136:22","nodeType":"YulIf","src":"50349:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50505:4:22","nodeType":"YulLiteral","src":"50505:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"50511:1:22","nodeType":"YulIdentifier","src":"50511:1:22"}],"functionName":{"name":"mstore","nativeSrc":"50498:6:22","nodeType":"YulIdentifier","src":"50498:6:22"},"nativeSrc":"50498:15:22","nodeType":"YulFunctionCall","src":"50498:15:22"},"nativeSrc":"50498:15:22","nodeType":"YulExpressionStatement","src":"50498:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50569:4:22","nodeType":"YulLiteral","src":"50569:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"50575:1:22","nodeType":"YulLiteral","src":"50575:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50562:6:22","nodeType":"YulIdentifier","src":"50562:6:22"},"nativeSrc":"50562:15:22","nodeType":"YulFunctionCall","src":"50562:15:22"},"nativeSrc":"50562:15:22","nodeType":"YulExpressionStatement","src":"50562:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9642,"isOffset":false,"isSlot":false,"src":"50217:14:22","valueSize":1},{"declaration":9647,"isOffset":false,"isSlot":false,"src":"50292:8:22","valueSize":1},{"declaration":9647,"isOffset":false,"isSlot":false,"src":"50359:8:22","valueSize":1},{"declaration":9644,"isOffset":false,"isSlot":false,"src":"50331:4:22","valueSize":1},{"declaration":9640,"isOffset":false,"isSlot":false,"src":"50312:5:22","valueSize":1}],"id":9649,"nodeType":"InlineAssembly","src":"49895:718:22"}]},"documentation":{"id":9638,"nodeType":"StructuredDocumentation","src":"49556:136:22","text":"@dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment."},"id":9651,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967","nameLocation":"49706:26:22","nodeType":"FunctionDefinition","parameters":{"id":9645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9640,"mutability":"mutable","name":"value","nameLocation":"49741:5:22","nodeType":"VariableDeclaration","scope":9651,"src":"49733:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9639,"name":"uint256","nodeType":"ElementaryTypeName","src":"49733:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9642,"mutability":"mutable","name":"implementation","nameLocation":"49756:14:22","nodeType":"VariableDeclaration","scope":9651,"src":"49748:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9641,"name":"address","nodeType":"ElementaryTypeName","src":"49748:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9644,"mutability":"mutable","name":"salt","nameLocation":"49780:4:22","nodeType":"VariableDeclaration","scope":9651,"src":"49772:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49772:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49732:53:22"},"returnParameters":{"id":9648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9647,"mutability":"mutable","name":"instance","nameLocation":"49828:8:22","nodeType":"VariableDeclaration","scope":9651,"src":"49820:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9646,"name":"address","nodeType":"ElementaryTypeName","src":"49820:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49819:18:22"},"scope":10092,"src":"49697:922:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9669,"nodeType":"Block","src":"51013:75:22","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51057:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9665,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"51060:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9666,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"51076:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9663,"name":"createDeterministicERC1967","nodeType":"Identifier","overloadedDeclarations":[9670,9686],"referencedDeclaration":9686,"src":"51030:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":9667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51030:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9662,"id":9668,"nodeType":"Return","src":"51023:58:22"}]},"documentation":{"id":9652,"nodeType":"StructuredDocumentation","src":"50625:231:22","text":"@dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9670,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967","nameLocation":"50870:26:22","nodeType":"FunctionDefinition","parameters":{"id":9657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9654,"mutability":"mutable","name":"implementation","nameLocation":"50905:14:22","nodeType":"VariableDeclaration","scope":9670,"src":"50897:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9653,"name":"address","nodeType":"ElementaryTypeName","src":"50897:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9656,"mutability":"mutable","name":"salt","nameLocation":"50929:4:22","nodeType":"VariableDeclaration","scope":9670,"src":"50921:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50921:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50896:38:22"},"returnParameters":{"id":9662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9659,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"50974:15:22","nodeType":"VariableDeclaration","scope":9670,"src":"50969:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9658,"name":"bool","nodeType":"ElementaryTypeName","src":"50969:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9661,"mutability":"mutable","name":"instance","nameLocation":"50999:8:22","nodeType":"VariableDeclaration","scope":9670,"src":"50991:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9660,"name":"address","nodeType":"ElementaryTypeName","src":"50991:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50968:40:22"},"scope":10092,"src":"50861:227:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9685,"nodeType":"Block","src":"51545:1558:22","statements":[{"AST":{"nativeSrc":"51607:1490:22","nodeType":"YulBlock","src":"51607:1490:22","statements":[{"nativeSrc":"51621:20:22","nodeType":"YulVariableDeclaration","src":"51621:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"51636:4:22","nodeType":"YulLiteral","src":"51636:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"51630:5:22","nodeType":"YulIdentifier","src":"51630:5:22"},"nativeSrc":"51630:11:22","nodeType":"YulFunctionCall","src":"51630:11:22"},"variables":[{"name":"m","nativeSrc":"51625:1:22","nodeType":"YulTypedName","src":"51625:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51695:4:22","nodeType":"YulLiteral","src":"51695:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"51701:66:22","nodeType":"YulLiteral","src":"51701:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"51688:6:22","nodeType":"YulIdentifier","src":"51688:6:22"},"nativeSrc":"51688:80:22","nodeType":"YulFunctionCall","src":"51688:80:22"},"nativeSrc":"51688:80:22","nodeType":"YulExpressionStatement","src":"51688:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51788:4:22","nodeType":"YulLiteral","src":"51788:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"51794:66:22","nodeType":"YulLiteral","src":"51794:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"51781:6:22","nodeType":"YulIdentifier","src":"51781:6:22"},"nativeSrc":"51781:80:22","nodeType":"YulFunctionCall","src":"51781:80:22"},"nativeSrc":"51781:80:22","nodeType":"YulExpressionStatement","src":"51781:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51881:4:22","nodeType":"YulLiteral","src":"51881:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"51887:6:22","nodeType":"YulLiteral","src":"51887:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"51874:6:22","nodeType":"YulIdentifier","src":"51874:6:22"},"nativeSrc":"51874:20:22","nodeType":"YulFunctionCall","src":"51874:20:22"},"nativeSrc":"51874:20:22","nodeType":"YulExpressionStatement","src":"51874:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51914:4:22","nodeType":"YulLiteral","src":"51914:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"51920:14:22","nodeType":"YulIdentifier","src":"51920:14:22"}],"functionName":{"name":"mstore","nativeSrc":"51907:6:22","nodeType":"YulIdentifier","src":"51907:6:22"},"nativeSrc":"51907:28:22","nodeType":"YulFunctionCall","src":"51907:28:22"},"nativeSrc":"51907:28:22","nodeType":"YulExpressionStatement","src":"51907:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51955:4:22","nodeType":"YulLiteral","src":"51955:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"51961:20:22","nodeType":"YulLiteral","src":"51961:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"51948:6:22","nodeType":"YulIdentifier","src":"51948:6:22"},"nativeSrc":"51948:34:22","nodeType":"YulFunctionCall","src":"51948:34:22"},"nativeSrc":"51948:34:22","nodeType":"YulExpressionStatement","src":"51948:34:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"52058:1:22","nodeType":"YulIdentifier","src":"52058:1:22"},{"kind":"number","nativeSrc":"52061:4:22","nodeType":"YulLiteral","src":"52061:4:22","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"52054:3:22","nodeType":"YulIdentifier","src":"52054:3:22"},"nativeSrc":"52054:12:22","nodeType":"YulFunctionCall","src":"52054:12:22"},{"arguments":[{"kind":"number","nativeSrc":"52078:4:22","nodeType":"YulLiteral","src":"52078:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"52084:4:22","nodeType":"YulLiteral","src":"52084:4:22","type":"","value":"0x5f"}],"functionName":{"name":"keccak256","nativeSrc":"52068:9:22","nodeType":"YulIdentifier","src":"52068:9:22"},"nativeSrc":"52068:21:22","nodeType":"YulFunctionCall","src":"52068:21:22"}],"functionName":{"name":"mstore","nativeSrc":"52047:6:22","nodeType":"YulIdentifier","src":"52047:6:22"},"nativeSrc":"52047:43:22","nodeType":"YulFunctionCall","src":"52047:43:22"},"nativeSrc":"52047:43:22","nodeType":"YulExpressionStatement","src":"52047:43:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"52110:1:22","nodeType":"YulIdentifier","src":"52110:1:22"},{"arguments":[{"kind":"number","nativeSrc":"52117:2:22","nodeType":"YulLiteral","src":"52117:2:22","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"52121:7:22","nodeType":"YulIdentifier","src":"52121:7:22"},"nativeSrc":"52121:9:22","nodeType":"YulFunctionCall","src":"52121:9:22"}],"functionName":{"name":"shl","nativeSrc":"52113:3:22","nodeType":"YulIdentifier","src":"52113:3:22"},"nativeSrc":"52113:18:22","nodeType":"YulFunctionCall","src":"52113:18:22"}],"functionName":{"name":"mstore","nativeSrc":"52103:6:22","nodeType":"YulIdentifier","src":"52103:6:22"},"nativeSrc":"52103:29:22","nodeType":"YulFunctionCall","src":"52103:29:22"},"nativeSrc":"52103:29:22","nodeType":"YulExpressionStatement","src":"52103:29:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"52153:1:22","nodeType":"YulIdentifier","src":"52153:1:22"},{"kind":"number","nativeSrc":"52156:4:22","nodeType":"YulLiteral","src":"52156:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"52145:7:22","nodeType":"YulIdentifier","src":"52145:7:22"},"nativeSrc":"52145:16:22","nodeType":"YulFunctionCall","src":"52145:16:22"},"nativeSrc":"52145:16:22","nodeType":"YulExpressionStatement","src":"52145:16:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"52206:1:22","nodeType":"YulIdentifier","src":"52206:1:22"},{"kind":"number","nativeSrc":"52209:4:22","nodeType":"YulLiteral","src":"52209:4:22","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"52202:3:22","nodeType":"YulIdentifier","src":"52202:3:22"},"nativeSrc":"52202:12:22","nodeType":"YulFunctionCall","src":"52202:12:22"},{"name":"salt","nativeSrc":"52216:4:22","nodeType":"YulIdentifier","src":"52216:4:22"}],"functionName":{"name":"mstore","nativeSrc":"52195:6:22","nodeType":"YulIdentifier","src":"52195:6:22"},"nativeSrc":"52195:26:22","nodeType":"YulFunctionCall","src":"52195:26:22"},"nativeSrc":"52195:26:22","nodeType":"YulExpressionStatement","src":"52195:26:22"},{"nativeSrc":"52234:30:22","nodeType":"YulAssignment","src":"52234:30:22","value":{"arguments":[{"name":"m","nativeSrc":"52256:1:22","nodeType":"YulIdentifier","src":"52256:1:22"},{"kind":"number","nativeSrc":"52259:4:22","nodeType":"YulLiteral","src":"52259:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"52246:9:22","nodeType":"YulIdentifier","src":"52246:9:22"},"nativeSrc":"52246:18:22","nodeType":"YulFunctionCall","src":"52246:18:22"},"variableNames":[{"name":"instance","nativeSrc":"52234:8:22","nodeType":"YulIdentifier","src":"52234:8:22"}]},{"body":{"nativeSrc":"52289:680:22","nodeType":"YulBlock","src":"52289:680:22","statements":[{"body":{"nativeSrc":"52340:291:22","nodeType":"YulBlock","src":"52340:291:22","statements":[{"nativeSrc":"52362:44:22","nodeType":"YulAssignment","src":"52362:44:22","value":{"arguments":[{"name":"value","nativeSrc":"52382:5:22","nodeType":"YulIdentifier","src":"52382:5:22"},{"kind":"number","nativeSrc":"52389:4:22","nodeType":"YulLiteral","src":"52389:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"52395:4:22","nodeType":"YulLiteral","src":"52395:4:22","type":"","value":"0x5f"},{"name":"salt","nativeSrc":"52401:4:22","nodeType":"YulIdentifier","src":"52401:4:22"}],"functionName":{"name":"create2","nativeSrc":"52374:7:22","nodeType":"YulIdentifier","src":"52374:7:22"},"nativeSrc":"52374:32:22","nodeType":"YulFunctionCall","src":"52374:32:22"},"variableNames":[{"name":"instance","nativeSrc":"52362:8:22","nodeType":"YulIdentifier","src":"52362:8:22"}]},{"body":{"nativeSrc":"52447:140:22","nodeType":"YulBlock","src":"52447:140:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52480:4:22","nodeType":"YulLiteral","src":"52480:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52486:10:22","nodeType":"YulLiteral","src":"52486:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"52473:6:22","nodeType":"YulIdentifier","src":"52473:6:22"},"nativeSrc":"52473:24:22","nodeType":"YulFunctionCall","src":"52473:24:22"},"nativeSrc":"52473:24:22","nodeType":"YulExpressionStatement","src":"52473:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52554:4:22","nodeType":"YulLiteral","src":"52554:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"52560:4:22","nodeType":"YulLiteral","src":"52560:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"52547:6:22","nodeType":"YulIdentifier","src":"52547:6:22"},"nativeSrc":"52547:18:22","nodeType":"YulFunctionCall","src":"52547:18:22"},"nativeSrc":"52547:18:22","nodeType":"YulExpressionStatement","src":"52547:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"52437:8:22","nodeType":"YulIdentifier","src":"52437:8:22"}],"functionName":{"name":"iszero","nativeSrc":"52430:6:22","nodeType":"YulIdentifier","src":"52430:6:22"},"nativeSrc":"52430:16:22","nodeType":"YulFunctionCall","src":"52430:16:22"},"nativeSrc":"52427:160:22","nodeType":"YulIf","src":"52427:160:22"},{"nativeSrc":"52608:5:22","nodeType":"YulBreak","src":"52608:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"52329:8:22","nodeType":"YulIdentifier","src":"52329:8:22"}],"functionName":{"name":"extcodesize","nativeSrc":"52317:11:22","nodeType":"YulIdentifier","src":"52317:11:22"},"nativeSrc":"52317:21:22","nodeType":"YulFunctionCall","src":"52317:21:22"}],"functionName":{"name":"iszero","nativeSrc":"52310:6:22","nodeType":"YulIdentifier","src":"52310:6:22"},"nativeSrc":"52310:29:22","nodeType":"YulFunctionCall","src":"52310:29:22"},"nativeSrc":"52307:324:22","nodeType":"YulIf","src":"52307:324:22"},{"nativeSrc":"52648:20:22","nodeType":"YulAssignment","src":"52648:20:22","value":{"kind":"number","nativeSrc":"52667:1:22","nodeType":"YulLiteral","src":"52667:1:22","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"52648:15:22","nodeType":"YulIdentifier","src":"52648:15:22"}]},{"body":{"nativeSrc":"52702:9:22","nodeType":"YulBlock","src":"52702:9:22","statements":[{"nativeSrc":"52704:5:22","nodeType":"YulBreak","src":"52704:5:22"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"52695:5:22","nodeType":"YulIdentifier","src":"52695:5:22"}],"functionName":{"name":"iszero","nativeSrc":"52688:6:22","nodeType":"YulIdentifier","src":"52688:6:22"},"nativeSrc":"52688:13:22","nodeType":"YulFunctionCall","src":"52688:13:22"},"nativeSrc":"52685:26:22","nodeType":"YulIf","src":"52685:26:22"},{"body":{"nativeSrc":"52804:129:22","nodeType":"YulBlock","src":"52804:129:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52833:4:22","nodeType":"YulLiteral","src":"52833:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52839:10:22","nodeType":"YulLiteral","src":"52839:10:22","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"52826:6:22","nodeType":"YulIdentifier","src":"52826:6:22"},"nativeSrc":"52826:24:22","nodeType":"YulFunctionCall","src":"52826:24:22"},"nativeSrc":"52826:24:22","nodeType":"YulExpressionStatement","src":"52826:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52904:4:22","nodeType":"YulLiteral","src":"52904:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"52910:4:22","nodeType":"YulLiteral","src":"52910:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"52897:6:22","nodeType":"YulIdentifier","src":"52897:6:22"},"nativeSrc":"52897:18:22","nodeType":"YulFunctionCall","src":"52897:18:22"},"nativeSrc":"52897:18:22","nodeType":"YulExpressionStatement","src":"52897:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"52743:3:22","nodeType":"YulIdentifier","src":"52743:3:22"},"nativeSrc":"52743:5:22","nodeType":"YulFunctionCall","src":"52743:5:22"},{"name":"instance","nativeSrc":"52750:8:22","nodeType":"YulIdentifier","src":"52750:8:22"},{"name":"value","nativeSrc":"52760:5:22","nodeType":"YulIdentifier","src":"52760:5:22"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"52767:8:22","nodeType":"YulIdentifier","src":"52767:8:22"},"nativeSrc":"52767:10:22","nodeType":"YulFunctionCall","src":"52767:10:22"},{"kind":"number","nativeSrc":"52779:4:22","nodeType":"YulLiteral","src":"52779:4:22","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"52785:8:22","nodeType":"YulIdentifier","src":"52785:8:22"},"nativeSrc":"52785:10:22","nodeType":"YulFunctionCall","src":"52785:10:22"},{"kind":"number","nativeSrc":"52797:4:22","nodeType":"YulLiteral","src":"52797:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"52738:4:22","nodeType":"YulIdentifier","src":"52738:4:22"},"nativeSrc":"52738:64:22","nodeType":"YulFunctionCall","src":"52738:64:22"}],"functionName":{"name":"iszero","nativeSrc":"52731:6:22","nodeType":"YulIdentifier","src":"52731:6:22"},"nativeSrc":"52731:72:22","nodeType":"YulFunctionCall","src":"52731:72:22"},"nativeSrc":"52728:205:22","nodeType":"YulIf","src":"52728:205:22"},{"nativeSrc":"52950:5:22","nodeType":"YulBreak","src":"52950:5:22"}]},"condition":{"kind":"number","nativeSrc":"52284:1:22","nodeType":"YulLiteral","src":"52284:1:22","type":"","value":"1"},"nativeSrc":"52277:692:22","nodeType":"YulForLoop","post":{"nativeSrc":"52286:2:22","nodeType":"YulBlock","src":"52286:2:22","statements":[]},"pre":{"nativeSrc":"52281:2:22","nodeType":"YulBlock","src":"52281:2:22","statements":[]},"src":"52277:692:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52989:4:22","nodeType":"YulLiteral","src":"52989:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"52995:1:22","nodeType":"YulIdentifier","src":"52995:1:22"}],"functionName":{"name":"mstore","nativeSrc":"52982:6:22","nodeType":"YulIdentifier","src":"52982:6:22"},"nativeSrc":"52982:15:22","nodeType":"YulFunctionCall","src":"52982:15:22"},"nativeSrc":"52982:15:22","nodeType":"YulExpressionStatement","src":"52982:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53053:4:22","nodeType":"YulLiteral","src":"53053:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"53059:1:22","nodeType":"YulLiteral","src":"53059:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"53046:6:22","nodeType":"YulIdentifier","src":"53046:6:22"},"nativeSrc":"53046:15:22","nodeType":"YulFunctionCall","src":"53046:15:22"},"nativeSrc":"53046:15:22","nodeType":"YulExpressionStatement","src":"53046:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9680,"isOffset":false,"isSlot":false,"src":"52648:15:22","valueSize":1},{"declaration":9675,"isOffset":false,"isSlot":false,"src":"51920:14:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52234:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52329:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52362:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52437:8:22","valueSize":1},{"declaration":9682,"isOffset":false,"isSlot":false,"src":"52750:8:22","valueSize":1},{"declaration":9677,"isOffset":false,"isSlot":false,"src":"52216:4:22","valueSize":1},{"declaration":9677,"isOffset":false,"isSlot":false,"src":"52401:4:22","valueSize":1},{"declaration":9673,"isOffset":false,"isSlot":false,"src":"52382:5:22","valueSize":1},{"declaration":9673,"isOffset":false,"isSlot":false,"src":"52695:5:22","valueSize":1},{"declaration":9673,"isOffset":false,"isSlot":false,"src":"52760:5:22","valueSize":1}],"id":9684,"nodeType":"InlineAssembly","src":"51598:1499:22"}]},"documentation":{"id":9671,"nodeType":"StructuredDocumentation","src":"51094:279:22","text":"@dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9686,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967","nameLocation":"51387:26:22","nodeType":"FunctionDefinition","parameters":{"id":9678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9673,"mutability":"mutable","name":"value","nameLocation":"51422:5:22","nodeType":"VariableDeclaration","scope":9686,"src":"51414:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9672,"name":"uint256","nodeType":"ElementaryTypeName","src":"51414:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9675,"mutability":"mutable","name":"implementation","nameLocation":"51437:14:22","nodeType":"VariableDeclaration","scope":9686,"src":"51429:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9674,"name":"address","nodeType":"ElementaryTypeName","src":"51429:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9677,"mutability":"mutable","name":"salt","nameLocation":"51461:4:22","nodeType":"VariableDeclaration","scope":9686,"src":"51453:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51453:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"51413:53:22"},"returnParameters":{"id":9683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9680,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"51506:15:22","nodeType":"VariableDeclaration","scope":9686,"src":"51501:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9679,"name":"bool","nodeType":"ElementaryTypeName","src":"51501:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9682,"mutability":"mutable","name":"instance","nameLocation":"51531:8:22","nodeType":"VariableDeclaration","scope":9686,"src":"51523:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9681,"name":"address","nodeType":"ElementaryTypeName","src":"51523:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51500:40:22"},"scope":10092,"src":"51378:1725:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9695,"nodeType":"Block","src":"53297:672:22","statements":[{"AST":{"nativeSrc":"53359:604:22","nodeType":"YulBlock","src":"53359:604:22","statements":[{"nativeSrc":"53373:21:22","nodeType":"YulAssignment","src":"53373:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"53389:4:22","nodeType":"YulLiteral","src":"53389:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"53383:5:22","nodeType":"YulIdentifier","src":"53383:5:22"},"nativeSrc":"53383:11:22","nodeType":"YulFunctionCall","src":"53383:11:22"},"variableNames":[{"name":"result","nativeSrc":"53373:6:22","nodeType":"YulIdentifier","src":"53373:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53435:6:22","nodeType":"YulIdentifier","src":"53435:6:22"},{"kind":"number","nativeSrc":"53443:4:22","nodeType":"YulLiteral","src":"53443:4:22","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"53431:3:22","nodeType":"YulIdentifier","src":"53431:3:22"},"nativeSrc":"53431:17:22","nodeType":"YulFunctionCall","src":"53431:17:22"},{"kind":"number","nativeSrc":"53466:66:22","nodeType":"YulLiteral","src":"53466:66:22","type":"","value":"0x3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f300"}],"functionName":{"name":"mstore","nativeSrc":"53407:6:22","nodeType":"YulIdentifier","src":"53407:6:22"},"nativeSrc":"53407:139:22","nodeType":"YulFunctionCall","src":"53407:139:22"},"nativeSrc":"53407:139:22","nodeType":"YulExpressionStatement","src":"53407:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53587:6:22","nodeType":"YulIdentifier","src":"53587:6:22"},{"kind":"number","nativeSrc":"53595:4:22","nodeType":"YulLiteral","src":"53595:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"53583:3:22","nodeType":"YulIdentifier","src":"53583:3:22"},"nativeSrc":"53583:17:22","nodeType":"YulFunctionCall","src":"53583:17:22"},{"kind":"number","nativeSrc":"53618:66:22","nodeType":"YulLiteral","src":"53618:66:22","type":"","value":"0x55f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc"}],"functionName":{"name":"mstore","nativeSrc":"53559:6:22","nodeType":"YulIdentifier","src":"53559:6:22"},"nativeSrc":"53559:139:22","nodeType":"YulFunctionCall","src":"53559:139:22"},"nativeSrc":"53559:139:22","nodeType":"YulExpressionStatement","src":"53559:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53722:6:22","nodeType":"YulIdentifier","src":"53722:6:22"},{"kind":"number","nativeSrc":"53730:4:22","nodeType":"YulLiteral","src":"53730:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"53718:3:22","nodeType":"YulIdentifier","src":"53718:3:22"},"nativeSrc":"53718:17:22","nodeType":"YulFunctionCall","src":"53718:17:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"53744:2:22","nodeType":"YulLiteral","src":"53744:2:22","type":"","value":"24"},{"name":"implementation","nativeSrc":"53748:14:22","nodeType":"YulIdentifier","src":"53748:14:22"}],"functionName":{"name":"shl","nativeSrc":"53740:3:22","nodeType":"YulIdentifier","src":"53740:3:22"},"nativeSrc":"53740:23:22","nodeType":"YulFunctionCall","src":"53740:23:22"},{"kind":"number","nativeSrc":"53765:8:22","nodeType":"YulLiteral","src":"53765:8:22","type":"","value":"0x600951"}],"functionName":{"name":"or","nativeSrc":"53737:2:22","nodeType":"YulIdentifier","src":"53737:2:22"},"nativeSrc":"53737:37:22","nodeType":"YulFunctionCall","src":"53737:37:22"}],"functionName":{"name":"mstore","nativeSrc":"53711:6:22","nodeType":"YulIdentifier","src":"53711:6:22"},"nativeSrc":"53711:64:22","nodeType":"YulFunctionCall","src":"53711:64:22"},"nativeSrc":"53711:64:22","nodeType":"YulExpressionStatement","src":"53711:64:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53799:6:22","nodeType":"YulIdentifier","src":"53799:6:22"},{"kind":"number","nativeSrc":"53807:4:22","nodeType":"YulLiteral","src":"53807:4:22","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"53795:3:22","nodeType":"YulIdentifier","src":"53795:3:22"},"nativeSrc":"53795:17:22","nodeType":"YulFunctionCall","src":"53795:17:22"},{"kind":"number","nativeSrc":"53814:20:22","nodeType":"YulLiteral","src":"53814:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"53788:6:22","nodeType":"YulIdentifier","src":"53788:6:22"},"nativeSrc":"53788:47:22","nodeType":"YulFunctionCall","src":"53788:47:22"},"nativeSrc":"53788:47:22","nodeType":"YulExpressionStatement","src":"53788:47:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"53855:6:22","nodeType":"YulIdentifier","src":"53855:6:22"},{"kind":"number","nativeSrc":"53863:4:22","nodeType":"YulLiteral","src":"53863:4:22","type":"","value":"0x5f"}],"functionName":{"name":"mstore","nativeSrc":"53848:6:22","nodeType":"YulIdentifier","src":"53848:6:22"},"nativeSrc":"53848:20:22","nodeType":"YulFunctionCall","src":"53848:20:22"},"nativeSrc":"53848:20:22","nodeType":"YulExpressionStatement","src":"53848:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53909:4:22","nodeType":"YulLiteral","src":"53909:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"53919:6:22","nodeType":"YulIdentifier","src":"53919:6:22"},{"kind":"number","nativeSrc":"53927:4:22","nodeType":"YulLiteral","src":"53927:4:22","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"53915:3:22","nodeType":"YulIdentifier","src":"53915:3:22"},"nativeSrc":"53915:17:22","nodeType":"YulFunctionCall","src":"53915:17:22"}],"functionName":{"name":"mstore","nativeSrc":"53902:6:22","nodeType":"YulIdentifier","src":"53902:6:22"},"nativeSrc":"53902:31:22","nodeType":"YulFunctionCall","src":"53902:31:22"},"nativeSrc":"53902:31:22","nodeType":"YulExpressionStatement","src":"53902:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9689,"isOffset":false,"isSlot":false,"src":"53748:14:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53373:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53435:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53587:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53722:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53799:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53855:6:22","valueSize":1},{"declaration":9692,"isOffset":false,"isSlot":false,"src":"53919:6:22","valueSize":1}],"id":9694,"nodeType":"InlineAssembly","src":"53350:613:22"}]},"documentation":{"id":9687,"nodeType":"StructuredDocumentation","src":"53109:90:22","text":"@dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`."},"id":9696,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967","nameLocation":"53213:15:22","nodeType":"FunctionDefinition","parameters":{"id":9690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9689,"mutability":"mutable","name":"implementation","nameLocation":"53237:14:22","nodeType":"VariableDeclaration","scope":9696,"src":"53229:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9688,"name":"address","nodeType":"ElementaryTypeName","src":"53229:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53228:24:22"},"returnParameters":{"id":9693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9692,"mutability":"mutable","name":"result","nameLocation":"53289:6:22","nodeType":"VariableDeclaration","scope":9696,"src":"53276:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9691,"name":"bytes","nodeType":"ElementaryTypeName","src":"53276:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"53275:21:22"},"scope":10092,"src":"53204:765:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9705,"nodeType":"Block","src":"54226:613:22","statements":[{"AST":{"nativeSrc":"54288:545:22","nodeType":"YulBlock","src":"54288:545:22","statements":[{"nativeSrc":"54302:20:22","nodeType":"YulVariableDeclaration","src":"54302:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"54317:4:22","nodeType":"YulLiteral","src":"54317:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"54311:5:22","nodeType":"YulIdentifier","src":"54311:5:22"},"nativeSrc":"54311:11:22","nodeType":"YulFunctionCall","src":"54311:11:22"},"variables":[{"name":"m","nativeSrc":"54306:1:22","nodeType":"YulTypedName","src":"54306:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54376:4:22","nodeType":"YulLiteral","src":"54376:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"54382:66:22","nodeType":"YulLiteral","src":"54382:66:22","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"54369:6:22","nodeType":"YulIdentifier","src":"54369:6:22"},"nativeSrc":"54369:80:22","nodeType":"YulFunctionCall","src":"54369:80:22"},"nativeSrc":"54369:80:22","nodeType":"YulExpressionStatement","src":"54369:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54469:4:22","nodeType":"YulLiteral","src":"54469:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"54475:66:22","nodeType":"YulLiteral","src":"54475:66:22","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"54462:6:22","nodeType":"YulIdentifier","src":"54462:6:22"},"nativeSrc":"54462:80:22","nodeType":"YulFunctionCall","src":"54462:80:22"},"nativeSrc":"54462:80:22","nodeType":"YulExpressionStatement","src":"54462:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54562:4:22","nodeType":"YulLiteral","src":"54562:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"54568:6:22","nodeType":"YulLiteral","src":"54568:6:22","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"54555:6:22","nodeType":"YulIdentifier","src":"54555:6:22"},"nativeSrc":"54555:20:22","nodeType":"YulFunctionCall","src":"54555:20:22"},"nativeSrc":"54555:20:22","nodeType":"YulExpressionStatement","src":"54555:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54595:4:22","nodeType":"YulLiteral","src":"54595:4:22","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"54601:14:22","nodeType":"YulIdentifier","src":"54601:14:22"}],"functionName":{"name":"mstore","nativeSrc":"54588:6:22","nodeType":"YulIdentifier","src":"54588:6:22"},"nativeSrc":"54588:28:22","nodeType":"YulFunctionCall","src":"54588:28:22"},"nativeSrc":"54588:28:22","nodeType":"YulExpressionStatement","src":"54588:28:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54636:4:22","nodeType":"YulLiteral","src":"54636:4:22","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"54642:20:22","nodeType":"YulLiteral","src":"54642:20:22","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"54629:6:22","nodeType":"YulIdentifier","src":"54629:6:22"},"nativeSrc":"54629:34:22","nodeType":"YulFunctionCall","src":"54629:34:22"},"nativeSrc":"54629:34:22","nodeType":"YulExpressionStatement","src":"54629:34:22"},{"nativeSrc":"54676:29:22","nodeType":"YulAssignment","src":"54676:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"54694:4:22","nodeType":"YulLiteral","src":"54694:4:22","type":"","value":"0x21"},{"kind":"number","nativeSrc":"54700:4:22","nodeType":"YulLiteral","src":"54700:4:22","type":"","value":"0x5f"}],"functionName":{"name":"keccak256","nativeSrc":"54684:9:22","nodeType":"YulIdentifier","src":"54684:9:22"},"nativeSrc":"54684:21:22","nodeType":"YulFunctionCall","src":"54684:21:22"},"variableNames":[{"name":"hash","nativeSrc":"54676:4:22","nodeType":"YulIdentifier","src":"54676:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54725:4:22","nodeType":"YulLiteral","src":"54725:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"54731:1:22","nodeType":"YulIdentifier","src":"54731:1:22"}],"functionName":{"name":"mstore","nativeSrc":"54718:6:22","nodeType":"YulIdentifier","src":"54718:6:22"},"nativeSrc":"54718:15:22","nodeType":"YulFunctionCall","src":"54718:15:22"},"nativeSrc":"54718:15:22","nodeType":"YulExpressionStatement","src":"54718:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54789:4:22","nodeType":"YulLiteral","src":"54789:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"54795:1:22","nodeType":"YulLiteral","src":"54795:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"54782:6:22","nodeType":"YulIdentifier","src":"54782:6:22"},"nativeSrc":"54782:15:22","nodeType":"YulFunctionCall","src":"54782:15:22"},"nativeSrc":"54782:15:22","nodeType":"YulExpressionStatement","src":"54782:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9702,"isOffset":false,"isSlot":false,"src":"54676:4:22","valueSize":1},{"declaration":9699,"isOffset":false,"isSlot":false,"src":"54601:14:22","valueSize":1}],"id":9704,"nodeType":"InlineAssembly","src":"54279:554:22"}]},"documentation":{"id":9697,"nodeType":"StructuredDocumentation","src":"53975:156:22","text":"@dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9706,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967","nameLocation":"54145:19:22","nodeType":"FunctionDefinition","parameters":{"id":9700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9699,"mutability":"mutable","name":"implementation","nameLocation":"54173:14:22","nodeType":"VariableDeclaration","scope":9706,"src":"54165:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9698,"name":"address","nodeType":"ElementaryTypeName","src":"54165:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54164:24:22"},"returnParameters":{"id":9703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9702,"mutability":"mutable","name":"hash","nameLocation":"54220:4:22","nodeType":"VariableDeclaration","scope":9706,"src":"54212:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54212:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"54211:14:22"},"scope":10092,"src":"54136:703:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9732,"nodeType":"Block","src":"55234:138:22","statements":[{"assignments":[9719],"declarations":[{"constant":false,"id":9719,"mutability":"mutable","name":"hash","nameLocation":"55252:4:22","nodeType":"VariableDeclaration","scope":9732,"src":"55244:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55244:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9723,"initialValue":{"arguments":[{"id":9721,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9709,"src":"55279:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9720,"name":"initCodeHashERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9706,"src":"55259:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55259:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"55244:50:22"},{"expression":{"id":9730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9724,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9716,"src":"55304:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9726,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9719,"src":"55344:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9727,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"55350:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9728,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9713,"src":"55356:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9725,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"55316:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55316:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"55304:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9731,"nodeType":"ExpressionStatement","src":"55304:61:22"}]},"documentation":{"id":9707,"nodeType":"StructuredDocumentation","src":"54845:212:22","text":"@dev Returns the address of the deterministic ERC1967 proxy of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9733,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967","nameLocation":"55071:34:22","nodeType":"FunctionDefinition","parameters":{"id":9714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9709,"mutability":"mutable","name":"implementation","nameLocation":"55123:14:22","nodeType":"VariableDeclaration","scope":9733,"src":"55115:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9708,"name":"address","nodeType":"ElementaryTypeName","src":"55115:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9711,"mutability":"mutable","name":"salt","nameLocation":"55155:4:22","nodeType":"VariableDeclaration","scope":9733,"src":"55147:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55147:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9713,"mutability":"mutable","name":"deployer","nameLocation":"55177:8:22","nodeType":"VariableDeclaration","scope":9733,"src":"55169:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9712,"name":"address","nodeType":"ElementaryTypeName","src":"55169:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55105:86:22"},"returnParameters":{"id":9717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9716,"mutability":"mutable","name":"predicted","nameLocation":"55223:9:22","nodeType":"VariableDeclaration","scope":9733,"src":"55215:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9715,"name":"address","nodeType":"ElementaryTypeName","src":"55215:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55214:19:22"},"scope":10092,"src":"55062:310:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9748,"nodeType":"Block","src":"56139:61:22","statements":[{"expression":{"id":9746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9741,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"56149:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"56175:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9744,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9736,"src":"56178:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9742,"name":"deployERC1967I","nodeType":"Identifier","overloadedDeclarations":[9749,9761],"referencedDeclaration":9761,"src":"56160:14:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56160:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"56149:44:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9747,"nodeType":"ExpressionStatement","src":"56149:44:22"}]},"documentation":{"id":9734,"nodeType":"StructuredDocumentation","src":"55986:64:22","text":"@dev Deploys a minimal ERC1967I proxy with `implementation`."},"id":9749,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967I","nameLocation":"56064:14:22","nodeType":"FunctionDefinition","parameters":{"id":9737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9736,"mutability":"mutable","name":"implementation","nameLocation":"56087:14:22","nodeType":"VariableDeclaration","scope":9749,"src":"56079:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9735,"name":"address","nodeType":"ElementaryTypeName","src":"56079:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56078:24:22"},"returnParameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9739,"mutability":"mutable","name":"instance","nameLocation":"56129:8:22","nodeType":"VariableDeclaration","scope":9749,"src":"56121:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9738,"name":"address","nodeType":"ElementaryTypeName","src":"56121:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56120:18:22"},"scope":10092,"src":"56055:145:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9760,"nodeType":"Block","src":"56434:8789:22","statements":[{"AST":{"nativeSrc":"56496:8721:22","nodeType":"YulBlock","src":"56496:8721:22","statements":[{"nativeSrc":"64480:20:22","nodeType":"YulVariableDeclaration","src":"64480:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"64495:4:22","nodeType":"YulLiteral","src":"64495:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"64489:5:22","nodeType":"YulIdentifier","src":"64489:5:22"},"nativeSrc":"64489:11:22","nodeType":"YulFunctionCall","src":"64489:11:22"},"variables":[{"name":"m","nativeSrc":"64484:1:22","nodeType":"YulTypedName","src":"64484:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64554:4:22","nodeType":"YulLiteral","src":"64554:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"64560:66:22","nodeType":"YulLiteral","src":"64560:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"64547:6:22","nodeType":"YulIdentifier","src":"64547:6:22"},"nativeSrc":"64547:80:22","nodeType":"YulFunctionCall","src":"64547:80:22"},"nativeSrc":"64547:80:22","nodeType":"YulExpressionStatement","src":"64547:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64647:4:22","nodeType":"YulLiteral","src":"64647:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"64653:66:22","nodeType":"YulLiteral","src":"64653:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"64640:6:22","nodeType":"YulIdentifier","src":"64640:6:22"},"nativeSrc":"64640:80:22","nodeType":"YulFunctionCall","src":"64640:80:22"},"nativeSrc":"64640:80:22","nodeType":"YulExpressionStatement","src":"64640:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64740:4:22","nodeType":"YulLiteral","src":"64740:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"64746:48:22","nodeType":"YulLiteral","src":"64746:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"64733:6:22","nodeType":"YulIdentifier","src":"64733:6:22"},"nativeSrc":"64733:62:22","nodeType":"YulFunctionCall","src":"64733:62:22"},"nativeSrc":"64733:62:22","nodeType":"YulExpressionStatement","src":"64733:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64815:4:22","nodeType":"YulLiteral","src":"64815:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"64828:3:22","nodeType":"YulLiteral","src":"64828:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"64833:20:22","nodeType":"YulLiteral","src":"64833:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"64824:3:22","nodeType":"YulIdentifier","src":"64824:3:22"},"nativeSrc":"64824:30:22","nodeType":"YulFunctionCall","src":"64824:30:22"},{"arguments":[{"kind":"number","nativeSrc":"64860:2:22","nodeType":"YulLiteral","src":"64860:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"64868:2:22","nodeType":"YulLiteral","src":"64868:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"64872:14:22","nodeType":"YulIdentifier","src":"64872:14:22"}],"functionName":{"name":"shl","nativeSrc":"64864:3:22","nodeType":"YulIdentifier","src":"64864:3:22"},"nativeSrc":"64864:23:22","nodeType":"YulFunctionCall","src":"64864:23:22"}],"functionName":{"name":"shr","nativeSrc":"64856:3:22","nodeType":"YulIdentifier","src":"64856:3:22"},"nativeSrc":"64856:32:22","nodeType":"YulFunctionCall","src":"64856:32:22"}],"functionName":{"name":"or","nativeSrc":"64821:2:22","nodeType":"YulIdentifier","src":"64821:2:22"},"nativeSrc":"64821:68:22","nodeType":"YulFunctionCall","src":"64821:68:22"}],"functionName":{"name":"mstore","nativeSrc":"64808:6:22","nodeType":"YulIdentifier","src":"64808:6:22"},"nativeSrc":"64808:82:22","nodeType":"YulFunctionCall","src":"64808:82:22"},"nativeSrc":"64808:82:22","nodeType":"YulExpressionStatement","src":"64808:82:22"},{"nativeSrc":"64903:37:22","nodeType":"YulAssignment","src":"64903:37:22","value":{"arguments":[{"name":"value","nativeSrc":"64922:5:22","nodeType":"YulIdentifier","src":"64922:5:22"},{"kind":"number","nativeSrc":"64929:4:22","nodeType":"YulLiteral","src":"64929:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"64935:4:22","nodeType":"YulLiteral","src":"64935:4:22","type":"","value":"0x74"}],"functionName":{"name":"create","nativeSrc":"64915:6:22","nodeType":"YulIdentifier","src":"64915:6:22"},"nativeSrc":"64915:25:22","nodeType":"YulFunctionCall","src":"64915:25:22"},"variableNames":[{"name":"instance","nativeSrc":"64903:8:22","nodeType":"YulIdentifier","src":"64903:8:22"}]},{"body":{"nativeSrc":"64973:116:22","nodeType":"YulBlock","src":"64973:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"64998:4:22","nodeType":"YulLiteral","src":"64998:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"65004:10:22","nodeType":"YulLiteral","src":"65004:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"64991:6:22","nodeType":"YulIdentifier","src":"64991:6:22"},"nativeSrc":"64991:24:22","nodeType":"YulFunctionCall","src":"64991:24:22"},"nativeSrc":"64991:24:22","nodeType":"YulExpressionStatement","src":"64991:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65064:4:22","nodeType":"YulLiteral","src":"65064:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"65070:4:22","nodeType":"YulLiteral","src":"65070:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"65057:6:22","nodeType":"YulIdentifier","src":"65057:6:22"},"nativeSrc":"65057:18:22","nodeType":"YulFunctionCall","src":"65057:18:22"},"nativeSrc":"65057:18:22","nodeType":"YulExpressionStatement","src":"65057:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"64963:8:22","nodeType":"YulIdentifier","src":"64963:8:22"}],"functionName":{"name":"iszero","nativeSrc":"64956:6:22","nodeType":"YulIdentifier","src":"64956:6:22"},"nativeSrc":"64956:16:22","nodeType":"YulFunctionCall","src":"64956:16:22"},"nativeSrc":"64953:136:22","nodeType":"YulIf","src":"64953:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65109:4:22","nodeType":"YulLiteral","src":"65109:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"65115:1:22","nodeType":"YulIdentifier","src":"65115:1:22"}],"functionName":{"name":"mstore","nativeSrc":"65102:6:22","nodeType":"YulIdentifier","src":"65102:6:22"},"nativeSrc":"65102:15:22","nodeType":"YulFunctionCall","src":"65102:15:22"},"nativeSrc":"65102:15:22","nodeType":"YulExpressionStatement","src":"65102:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65173:4:22","nodeType":"YulLiteral","src":"65173:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"65179:1:22","nodeType":"YulLiteral","src":"65179:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"65166:6:22","nodeType":"YulIdentifier","src":"65166:6:22"},"nativeSrc":"65166:15:22","nodeType":"YulFunctionCall","src":"65166:15:22"},"nativeSrc":"65166:15:22","nodeType":"YulExpressionStatement","src":"65166:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9754,"isOffset":false,"isSlot":false,"src":"64872:14:22","valueSize":1},{"declaration":9757,"isOffset":false,"isSlot":false,"src":"64903:8:22","valueSize":1},{"declaration":9757,"isOffset":false,"isSlot":false,"src":"64963:8:22","valueSize":1},{"declaration":9752,"isOffset":false,"isSlot":false,"src":"64922:5:22","valueSize":1}],"id":9759,"nodeType":"InlineAssembly","src":"56487:8730:22"}]},"documentation":{"id":9750,"nodeType":"StructuredDocumentation","src":"56206:104:22","text":"@dev Deploys a ERC1967I proxy with `implementation`.\n Deposits `value` ETH during deployment."},"id":9761,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967I","nameLocation":"56324:14:22","nodeType":"FunctionDefinition","parameters":{"id":9755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9752,"mutability":"mutable","name":"value","nameLocation":"56347:5:22","nodeType":"VariableDeclaration","scope":9761,"src":"56339:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9751,"name":"uint256","nodeType":"ElementaryTypeName","src":"56339:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9754,"mutability":"mutable","name":"implementation","nameLocation":"56362:14:22","nodeType":"VariableDeclaration","scope":9761,"src":"56354:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9753,"name":"address","nodeType":"ElementaryTypeName","src":"56354:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56338:39:22"},"returnParameters":{"id":9758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9757,"mutability":"mutable","name":"instance","nameLocation":"56420:8:22","nodeType":"VariableDeclaration","scope":9761,"src":"56412:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9756,"name":"address","nodeType":"ElementaryTypeName","src":"56412:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56411:18:22"},"scope":10092,"src":"56315:8908:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9779,"nodeType":"Block","src":"65446:80:22","statements":[{"expression":{"id":9777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9771,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9769,"src":"65456:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"65495:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9774,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9764,"src":"65498:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9775,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9766,"src":"65514:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9772,"name":"deployDeterministicERC1967I","nodeType":"Identifier","overloadedDeclarations":[9780,9794],"referencedDeclaration":9794,"src":"65467:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65467:52:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"65456:63:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9778,"nodeType":"ExpressionStatement","src":"65456:63:22"}]},"documentation":{"id":9762,"nodeType":"StructuredDocumentation","src":"65229:81:22","text":"@dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`."},"id":9780,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967I","nameLocation":"65324:27:22","nodeType":"FunctionDefinition","parameters":{"id":9767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9764,"mutability":"mutable","name":"implementation","nameLocation":"65360:14:22","nodeType":"VariableDeclaration","scope":9780,"src":"65352:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9763,"name":"address","nodeType":"ElementaryTypeName","src":"65352:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9766,"mutability":"mutable","name":"salt","nameLocation":"65384:4:22","nodeType":"VariableDeclaration","scope":9780,"src":"65376:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65376:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65351:38:22"},"returnParameters":{"id":9770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9769,"mutability":"mutable","name":"instance","nameLocation":"65432:8:22","nodeType":"VariableDeclaration","scope":9780,"src":"65424:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9768,"name":"address","nodeType":"ElementaryTypeName","src":"65424:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65423:18:22"},"scope":10092,"src":"65315:211:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9793,"nodeType":"Block","src":"65812:826:22","statements":[{"AST":{"nativeSrc":"65874:758:22","nodeType":"YulBlock","src":"65874:758:22","statements":[{"nativeSrc":"65888:20:22","nodeType":"YulVariableDeclaration","src":"65888:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"65903:4:22","nodeType":"YulLiteral","src":"65903:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"65897:5:22","nodeType":"YulIdentifier","src":"65897:5:22"},"nativeSrc":"65897:11:22","nodeType":"YulFunctionCall","src":"65897:11:22"},"variables":[{"name":"m","nativeSrc":"65892:1:22","nodeType":"YulTypedName","src":"65892:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65962:4:22","nodeType":"YulLiteral","src":"65962:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"65968:66:22","nodeType":"YulLiteral","src":"65968:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"65955:6:22","nodeType":"YulIdentifier","src":"65955:6:22"},"nativeSrc":"65955:80:22","nodeType":"YulFunctionCall","src":"65955:80:22"},"nativeSrc":"65955:80:22","nodeType":"YulExpressionStatement","src":"65955:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66055:4:22","nodeType":"YulLiteral","src":"66055:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"66061:66:22","nodeType":"YulLiteral","src":"66061:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"66048:6:22","nodeType":"YulIdentifier","src":"66048:6:22"},"nativeSrc":"66048:80:22","nodeType":"YulFunctionCall","src":"66048:80:22"},"nativeSrc":"66048:80:22","nodeType":"YulExpressionStatement","src":"66048:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66148:4:22","nodeType":"YulLiteral","src":"66148:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"66154:48:22","nodeType":"YulLiteral","src":"66154:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"66141:6:22","nodeType":"YulIdentifier","src":"66141:6:22"},"nativeSrc":"66141:62:22","nodeType":"YulFunctionCall","src":"66141:62:22"},"nativeSrc":"66141:62:22","nodeType":"YulExpressionStatement","src":"66141:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66223:4:22","nodeType":"YulLiteral","src":"66223:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"66236:3:22","nodeType":"YulLiteral","src":"66236:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"66241:20:22","nodeType":"YulLiteral","src":"66241:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"66232:3:22","nodeType":"YulIdentifier","src":"66232:3:22"},"nativeSrc":"66232:30:22","nodeType":"YulFunctionCall","src":"66232:30:22"},{"arguments":[{"kind":"number","nativeSrc":"66268:2:22","nodeType":"YulLiteral","src":"66268:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"66276:2:22","nodeType":"YulLiteral","src":"66276:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"66280:14:22","nodeType":"YulIdentifier","src":"66280:14:22"}],"functionName":{"name":"shl","nativeSrc":"66272:3:22","nodeType":"YulIdentifier","src":"66272:3:22"},"nativeSrc":"66272:23:22","nodeType":"YulFunctionCall","src":"66272:23:22"}],"functionName":{"name":"shr","nativeSrc":"66264:3:22","nodeType":"YulIdentifier","src":"66264:3:22"},"nativeSrc":"66264:32:22","nodeType":"YulFunctionCall","src":"66264:32:22"}],"functionName":{"name":"or","nativeSrc":"66229:2:22","nodeType":"YulIdentifier","src":"66229:2:22"},"nativeSrc":"66229:68:22","nodeType":"YulFunctionCall","src":"66229:68:22"}],"functionName":{"name":"mstore","nativeSrc":"66216:6:22","nodeType":"YulIdentifier","src":"66216:6:22"},"nativeSrc":"66216:82:22","nodeType":"YulFunctionCall","src":"66216:82:22"},"nativeSrc":"66216:82:22","nodeType":"YulExpressionStatement","src":"66216:82:22"},{"nativeSrc":"66311:44:22","nodeType":"YulAssignment","src":"66311:44:22","value":{"arguments":[{"name":"value","nativeSrc":"66331:5:22","nodeType":"YulIdentifier","src":"66331:5:22"},{"kind":"number","nativeSrc":"66338:4:22","nodeType":"YulLiteral","src":"66338:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"66344:4:22","nodeType":"YulLiteral","src":"66344:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"66350:4:22","nodeType":"YulIdentifier","src":"66350:4:22"}],"functionName":{"name":"create2","nativeSrc":"66323:7:22","nodeType":"YulIdentifier","src":"66323:7:22"},"nativeSrc":"66323:32:22","nodeType":"YulFunctionCall","src":"66323:32:22"},"variableNames":[{"name":"instance","nativeSrc":"66311:8:22","nodeType":"YulIdentifier","src":"66311:8:22"}]},{"body":{"nativeSrc":"66388:116:22","nodeType":"YulBlock","src":"66388:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"66413:4:22","nodeType":"YulLiteral","src":"66413:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"66419:10:22","nodeType":"YulLiteral","src":"66419:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"66406:6:22","nodeType":"YulIdentifier","src":"66406:6:22"},"nativeSrc":"66406:24:22","nodeType":"YulFunctionCall","src":"66406:24:22"},"nativeSrc":"66406:24:22","nodeType":"YulExpressionStatement","src":"66406:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66479:4:22","nodeType":"YulLiteral","src":"66479:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"66485:4:22","nodeType":"YulLiteral","src":"66485:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"66472:6:22","nodeType":"YulIdentifier","src":"66472:6:22"},"nativeSrc":"66472:18:22","nodeType":"YulFunctionCall","src":"66472:18:22"},"nativeSrc":"66472:18:22","nodeType":"YulExpressionStatement","src":"66472:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"66378:8:22","nodeType":"YulIdentifier","src":"66378:8:22"}],"functionName":{"name":"iszero","nativeSrc":"66371:6:22","nodeType":"YulIdentifier","src":"66371:6:22"},"nativeSrc":"66371:16:22","nodeType":"YulFunctionCall","src":"66371:16:22"},"nativeSrc":"66368:136:22","nodeType":"YulIf","src":"66368:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66524:4:22","nodeType":"YulLiteral","src":"66524:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"66530:1:22","nodeType":"YulIdentifier","src":"66530:1:22"}],"functionName":{"name":"mstore","nativeSrc":"66517:6:22","nodeType":"YulIdentifier","src":"66517:6:22"},"nativeSrc":"66517:15:22","nodeType":"YulFunctionCall","src":"66517:15:22"},"nativeSrc":"66517:15:22","nodeType":"YulExpressionStatement","src":"66517:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66588:4:22","nodeType":"YulLiteral","src":"66588:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"66594:1:22","nodeType":"YulLiteral","src":"66594:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"66581:6:22","nodeType":"YulIdentifier","src":"66581:6:22"},"nativeSrc":"66581:15:22","nodeType":"YulFunctionCall","src":"66581:15:22"},"nativeSrc":"66581:15:22","nodeType":"YulExpressionStatement","src":"66581:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9785,"isOffset":false,"isSlot":false,"src":"66280:14:22","valueSize":1},{"declaration":9790,"isOffset":false,"isSlot":false,"src":"66311:8:22","valueSize":1},{"declaration":9790,"isOffset":false,"isSlot":false,"src":"66378:8:22","valueSize":1},{"declaration":9787,"isOffset":false,"isSlot":false,"src":"66350:4:22","valueSize":1},{"declaration":9783,"isOffset":false,"isSlot":false,"src":"66331:5:22","valueSize":1}],"id":9792,"nodeType":"InlineAssembly","src":"65865:767:22"}]},"documentation":{"id":9781,"nodeType":"StructuredDocumentation","src":"65532:129:22","text":"@dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment."},"id":9794,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967I","nameLocation":"65675:27:22","nodeType":"FunctionDefinition","parameters":{"id":9788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9783,"mutability":"mutable","name":"value","nameLocation":"65711:5:22","nodeType":"VariableDeclaration","scope":9794,"src":"65703:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9782,"name":"uint256","nodeType":"ElementaryTypeName","src":"65703:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9785,"mutability":"mutable","name":"implementation","nameLocation":"65726:14:22","nodeType":"VariableDeclaration","scope":9794,"src":"65718:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9784,"name":"address","nodeType":"ElementaryTypeName","src":"65718:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9787,"mutability":"mutable","name":"salt","nameLocation":"65750:4:22","nodeType":"VariableDeclaration","scope":9794,"src":"65742:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65742:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65702:53:22"},"returnParameters":{"id":9791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9790,"mutability":"mutable","name":"instance","nameLocation":"65798:8:22","nodeType":"VariableDeclaration","scope":9794,"src":"65790:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9789,"name":"address","nodeType":"ElementaryTypeName","src":"65790:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65789:18:22"},"scope":10092,"src":"65666:972:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9812,"nodeType":"Block","src":"67026:76:22","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"67071:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9808,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9797,"src":"67074:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9809,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9799,"src":"67090:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9806,"name":"createDeterministicERC1967I","nodeType":"Identifier","overloadedDeclarations":[9813,9829],"referencedDeclaration":9829,"src":"67043:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":9810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67043:52:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9805,"id":9811,"nodeType":"Return","src":"67036:59:22"}]},"documentation":{"id":9795,"nodeType":"StructuredDocumentation","src":"66644:224:22","text":"@dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9813,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967I","nameLocation":"66882:27:22","nodeType":"FunctionDefinition","parameters":{"id":9800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9797,"mutability":"mutable","name":"implementation","nameLocation":"66918:14:22","nodeType":"VariableDeclaration","scope":9813,"src":"66910:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9796,"name":"address","nodeType":"ElementaryTypeName","src":"66910:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9799,"mutability":"mutable","name":"salt","nameLocation":"66942:4:22","nodeType":"VariableDeclaration","scope":9813,"src":"66934:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66934:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"66909:38:22"},"returnParameters":{"id":9805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"66987:15:22","nodeType":"VariableDeclaration","scope":9813,"src":"66982:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9801,"name":"bool","nodeType":"ElementaryTypeName","src":"66982:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9804,"mutability":"mutable","name":"instance","nameLocation":"67012:8:22","nodeType":"VariableDeclaration","scope":9813,"src":"67004:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9803,"name":"address","nodeType":"ElementaryTypeName","src":"67004:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66981:40:22"},"scope":10092,"src":"66873:229:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9828,"nodeType":"Block","src":"67553:1607:22","statements":[{"AST":{"nativeSrc":"67615:1539:22","nodeType":"YulBlock","src":"67615:1539:22","statements":[{"nativeSrc":"67629:20:22","nodeType":"YulVariableDeclaration","src":"67629:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"67644:4:22","nodeType":"YulLiteral","src":"67644:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"67638:5:22","nodeType":"YulIdentifier","src":"67638:5:22"},"nativeSrc":"67638:11:22","nodeType":"YulFunctionCall","src":"67638:11:22"},"variables":[{"name":"m","nativeSrc":"67633:1:22","nodeType":"YulTypedName","src":"67633:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67703:4:22","nodeType":"YulLiteral","src":"67703:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"67709:66:22","nodeType":"YulLiteral","src":"67709:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"67696:6:22","nodeType":"YulIdentifier","src":"67696:6:22"},"nativeSrc":"67696:80:22","nodeType":"YulFunctionCall","src":"67696:80:22"},"nativeSrc":"67696:80:22","nodeType":"YulExpressionStatement","src":"67696:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67796:4:22","nodeType":"YulLiteral","src":"67796:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"67802:66:22","nodeType":"YulLiteral","src":"67802:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"67789:6:22","nodeType":"YulIdentifier","src":"67789:6:22"},"nativeSrc":"67789:80:22","nodeType":"YulFunctionCall","src":"67789:80:22"},"nativeSrc":"67789:80:22","nodeType":"YulExpressionStatement","src":"67789:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67889:4:22","nodeType":"YulLiteral","src":"67889:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"67895:48:22","nodeType":"YulLiteral","src":"67895:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"67882:6:22","nodeType":"YulIdentifier","src":"67882:6:22"},"nativeSrc":"67882:62:22","nodeType":"YulFunctionCall","src":"67882:62:22"},"nativeSrc":"67882:62:22","nodeType":"YulExpressionStatement","src":"67882:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67964:4:22","nodeType":"YulLiteral","src":"67964:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"67977:3:22","nodeType":"YulLiteral","src":"67977:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"67982:20:22","nodeType":"YulLiteral","src":"67982:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"67973:3:22","nodeType":"YulIdentifier","src":"67973:3:22"},"nativeSrc":"67973:30:22","nodeType":"YulFunctionCall","src":"67973:30:22"},{"arguments":[{"kind":"number","nativeSrc":"68009:2:22","nodeType":"YulLiteral","src":"68009:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"68017:2:22","nodeType":"YulLiteral","src":"68017:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"68021:14:22","nodeType":"YulIdentifier","src":"68021:14:22"}],"functionName":{"name":"shl","nativeSrc":"68013:3:22","nodeType":"YulIdentifier","src":"68013:3:22"},"nativeSrc":"68013:23:22","nodeType":"YulFunctionCall","src":"68013:23:22"}],"functionName":{"name":"shr","nativeSrc":"68005:3:22","nodeType":"YulIdentifier","src":"68005:3:22"},"nativeSrc":"68005:32:22","nodeType":"YulFunctionCall","src":"68005:32:22"}],"functionName":{"name":"or","nativeSrc":"67970:2:22","nodeType":"YulIdentifier","src":"67970:2:22"},"nativeSrc":"67970:68:22","nodeType":"YulFunctionCall","src":"67970:68:22"}],"functionName":{"name":"mstore","nativeSrc":"67957:6:22","nodeType":"YulIdentifier","src":"67957:6:22"},"nativeSrc":"67957:82:22","nodeType":"YulFunctionCall","src":"67957:82:22"},"nativeSrc":"67957:82:22","nodeType":"YulExpressionStatement","src":"67957:82:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"68115:1:22","nodeType":"YulIdentifier","src":"68115:1:22"},{"kind":"number","nativeSrc":"68118:4:22","nodeType":"YulLiteral","src":"68118:4:22","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"68111:3:22","nodeType":"YulIdentifier","src":"68111:3:22"},"nativeSrc":"68111:12:22","nodeType":"YulFunctionCall","src":"68111:12:22"},{"arguments":[{"kind":"number","nativeSrc":"68135:4:22","nodeType":"YulLiteral","src":"68135:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"68141:4:22","nodeType":"YulLiteral","src":"68141:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"68125:9:22","nodeType":"YulIdentifier","src":"68125:9:22"},"nativeSrc":"68125:21:22","nodeType":"YulFunctionCall","src":"68125:21:22"}],"functionName":{"name":"mstore","nativeSrc":"68104:6:22","nodeType":"YulIdentifier","src":"68104:6:22"},"nativeSrc":"68104:43:22","nodeType":"YulFunctionCall","src":"68104:43:22"},"nativeSrc":"68104:43:22","nodeType":"YulExpressionStatement","src":"68104:43:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"68167:1:22","nodeType":"YulIdentifier","src":"68167:1:22"},{"arguments":[{"kind":"number","nativeSrc":"68174:2:22","nodeType":"YulLiteral","src":"68174:2:22","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"68178:7:22","nodeType":"YulIdentifier","src":"68178:7:22"},"nativeSrc":"68178:9:22","nodeType":"YulFunctionCall","src":"68178:9:22"}],"functionName":{"name":"shl","nativeSrc":"68170:3:22","nodeType":"YulIdentifier","src":"68170:3:22"},"nativeSrc":"68170:18:22","nodeType":"YulFunctionCall","src":"68170:18:22"}],"functionName":{"name":"mstore","nativeSrc":"68160:6:22","nodeType":"YulIdentifier","src":"68160:6:22"},"nativeSrc":"68160:29:22","nodeType":"YulFunctionCall","src":"68160:29:22"},"nativeSrc":"68160:29:22","nodeType":"YulExpressionStatement","src":"68160:29:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"68210:1:22","nodeType":"YulIdentifier","src":"68210:1:22"},{"kind":"number","nativeSrc":"68213:4:22","nodeType":"YulLiteral","src":"68213:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"68202:7:22","nodeType":"YulIdentifier","src":"68202:7:22"},"nativeSrc":"68202:16:22","nodeType":"YulFunctionCall","src":"68202:16:22"},"nativeSrc":"68202:16:22","nodeType":"YulExpressionStatement","src":"68202:16:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"68263:1:22","nodeType":"YulIdentifier","src":"68263:1:22"},{"kind":"number","nativeSrc":"68266:4:22","nodeType":"YulLiteral","src":"68266:4:22","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"68259:3:22","nodeType":"YulIdentifier","src":"68259:3:22"},"nativeSrc":"68259:12:22","nodeType":"YulFunctionCall","src":"68259:12:22"},{"name":"salt","nativeSrc":"68273:4:22","nodeType":"YulIdentifier","src":"68273:4:22"}],"functionName":{"name":"mstore","nativeSrc":"68252:6:22","nodeType":"YulIdentifier","src":"68252:6:22"},"nativeSrc":"68252:26:22","nodeType":"YulFunctionCall","src":"68252:26:22"},"nativeSrc":"68252:26:22","nodeType":"YulExpressionStatement","src":"68252:26:22"},{"nativeSrc":"68291:30:22","nodeType":"YulAssignment","src":"68291:30:22","value":{"arguments":[{"name":"m","nativeSrc":"68313:1:22","nodeType":"YulIdentifier","src":"68313:1:22"},{"kind":"number","nativeSrc":"68316:4:22","nodeType":"YulLiteral","src":"68316:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"68303:9:22","nodeType":"YulIdentifier","src":"68303:9:22"},"nativeSrc":"68303:18:22","nodeType":"YulFunctionCall","src":"68303:18:22"},"variableNames":[{"name":"instance","nativeSrc":"68291:8:22","nodeType":"YulIdentifier","src":"68291:8:22"}]},{"body":{"nativeSrc":"68346:680:22","nodeType":"YulBlock","src":"68346:680:22","statements":[{"body":{"nativeSrc":"68397:291:22","nodeType":"YulBlock","src":"68397:291:22","statements":[{"nativeSrc":"68419:44:22","nodeType":"YulAssignment","src":"68419:44:22","value":{"arguments":[{"name":"value","nativeSrc":"68439:5:22","nodeType":"YulIdentifier","src":"68439:5:22"},{"kind":"number","nativeSrc":"68446:4:22","nodeType":"YulLiteral","src":"68446:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"68452:4:22","nodeType":"YulLiteral","src":"68452:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"68458:4:22","nodeType":"YulIdentifier","src":"68458:4:22"}],"functionName":{"name":"create2","nativeSrc":"68431:7:22","nodeType":"YulIdentifier","src":"68431:7:22"},"nativeSrc":"68431:32:22","nodeType":"YulFunctionCall","src":"68431:32:22"},"variableNames":[{"name":"instance","nativeSrc":"68419:8:22","nodeType":"YulIdentifier","src":"68419:8:22"}]},{"body":{"nativeSrc":"68504:140:22","nodeType":"YulBlock","src":"68504:140:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68537:4:22","nodeType":"YulLiteral","src":"68537:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"68543:10:22","nodeType":"YulLiteral","src":"68543:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"68530:6:22","nodeType":"YulIdentifier","src":"68530:6:22"},"nativeSrc":"68530:24:22","nodeType":"YulFunctionCall","src":"68530:24:22"},"nativeSrc":"68530:24:22","nodeType":"YulExpressionStatement","src":"68530:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68611:4:22","nodeType":"YulLiteral","src":"68611:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"68617:4:22","nodeType":"YulLiteral","src":"68617:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"68604:6:22","nodeType":"YulIdentifier","src":"68604:6:22"},"nativeSrc":"68604:18:22","nodeType":"YulFunctionCall","src":"68604:18:22"},"nativeSrc":"68604:18:22","nodeType":"YulExpressionStatement","src":"68604:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"68494:8:22","nodeType":"YulIdentifier","src":"68494:8:22"}],"functionName":{"name":"iszero","nativeSrc":"68487:6:22","nodeType":"YulIdentifier","src":"68487:6:22"},"nativeSrc":"68487:16:22","nodeType":"YulFunctionCall","src":"68487:16:22"},"nativeSrc":"68484:160:22","nodeType":"YulIf","src":"68484:160:22"},{"nativeSrc":"68665:5:22","nodeType":"YulBreak","src":"68665:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"68386:8:22","nodeType":"YulIdentifier","src":"68386:8:22"}],"functionName":{"name":"extcodesize","nativeSrc":"68374:11:22","nodeType":"YulIdentifier","src":"68374:11:22"},"nativeSrc":"68374:21:22","nodeType":"YulFunctionCall","src":"68374:21:22"}],"functionName":{"name":"iszero","nativeSrc":"68367:6:22","nodeType":"YulIdentifier","src":"68367:6:22"},"nativeSrc":"68367:29:22","nodeType":"YulFunctionCall","src":"68367:29:22"},"nativeSrc":"68364:324:22","nodeType":"YulIf","src":"68364:324:22"},{"nativeSrc":"68705:20:22","nodeType":"YulAssignment","src":"68705:20:22","value":{"kind":"number","nativeSrc":"68724:1:22","nodeType":"YulLiteral","src":"68724:1:22","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"68705:15:22","nodeType":"YulIdentifier","src":"68705:15:22"}]},{"body":{"nativeSrc":"68759:9:22","nodeType":"YulBlock","src":"68759:9:22","statements":[{"nativeSrc":"68761:5:22","nodeType":"YulBreak","src":"68761:5:22"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"68752:5:22","nodeType":"YulIdentifier","src":"68752:5:22"}],"functionName":{"name":"iszero","nativeSrc":"68745:6:22","nodeType":"YulIdentifier","src":"68745:6:22"},"nativeSrc":"68745:13:22","nodeType":"YulFunctionCall","src":"68745:13:22"},"nativeSrc":"68742:26:22","nodeType":"YulIf","src":"68742:26:22"},{"body":{"nativeSrc":"68861:129:22","nodeType":"YulBlock","src":"68861:129:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68890:4:22","nodeType":"YulLiteral","src":"68890:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"68896:10:22","nodeType":"YulLiteral","src":"68896:10:22","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"68883:6:22","nodeType":"YulIdentifier","src":"68883:6:22"},"nativeSrc":"68883:24:22","nodeType":"YulFunctionCall","src":"68883:24:22"},"nativeSrc":"68883:24:22","nodeType":"YulExpressionStatement","src":"68883:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68961:4:22","nodeType":"YulLiteral","src":"68961:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"68967:4:22","nodeType":"YulLiteral","src":"68967:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"68954:6:22","nodeType":"YulIdentifier","src":"68954:6:22"},"nativeSrc":"68954:18:22","nodeType":"YulFunctionCall","src":"68954:18:22"},"nativeSrc":"68954:18:22","nodeType":"YulExpressionStatement","src":"68954:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"68800:3:22","nodeType":"YulIdentifier","src":"68800:3:22"},"nativeSrc":"68800:5:22","nodeType":"YulFunctionCall","src":"68800:5:22"},{"name":"instance","nativeSrc":"68807:8:22","nodeType":"YulIdentifier","src":"68807:8:22"},{"name":"value","nativeSrc":"68817:5:22","nodeType":"YulIdentifier","src":"68817:5:22"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"68824:8:22","nodeType":"YulIdentifier","src":"68824:8:22"},"nativeSrc":"68824:10:22","nodeType":"YulFunctionCall","src":"68824:10:22"},{"kind":"number","nativeSrc":"68836:4:22","nodeType":"YulLiteral","src":"68836:4:22","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"68842:8:22","nodeType":"YulIdentifier","src":"68842:8:22"},"nativeSrc":"68842:10:22","nodeType":"YulFunctionCall","src":"68842:10:22"},{"kind":"number","nativeSrc":"68854:4:22","nodeType":"YulLiteral","src":"68854:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"68795:4:22","nodeType":"YulIdentifier","src":"68795:4:22"},"nativeSrc":"68795:64:22","nodeType":"YulFunctionCall","src":"68795:64:22"}],"functionName":{"name":"iszero","nativeSrc":"68788:6:22","nodeType":"YulIdentifier","src":"68788:6:22"},"nativeSrc":"68788:72:22","nodeType":"YulFunctionCall","src":"68788:72:22"},"nativeSrc":"68785:205:22","nodeType":"YulIf","src":"68785:205:22"},{"nativeSrc":"69007:5:22","nodeType":"YulBreak","src":"69007:5:22"}]},"condition":{"kind":"number","nativeSrc":"68341:1:22","nodeType":"YulLiteral","src":"68341:1:22","type":"","value":"1"},"nativeSrc":"68334:692:22","nodeType":"YulForLoop","post":{"nativeSrc":"68343:2:22","nodeType":"YulBlock","src":"68343:2:22","statements":[]},"pre":{"nativeSrc":"68338:2:22","nodeType":"YulBlock","src":"68338:2:22","statements":[]},"src":"68334:692:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69046:4:22","nodeType":"YulLiteral","src":"69046:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"69052:1:22","nodeType":"YulIdentifier","src":"69052:1:22"}],"functionName":{"name":"mstore","nativeSrc":"69039:6:22","nodeType":"YulIdentifier","src":"69039:6:22"},"nativeSrc":"69039:15:22","nodeType":"YulFunctionCall","src":"69039:15:22"},"nativeSrc":"69039:15:22","nodeType":"YulExpressionStatement","src":"69039:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69110:4:22","nodeType":"YulLiteral","src":"69110:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"69116:1:22","nodeType":"YulLiteral","src":"69116:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"69103:6:22","nodeType":"YulIdentifier","src":"69103:6:22"},"nativeSrc":"69103:15:22","nodeType":"YulFunctionCall","src":"69103:15:22"},"nativeSrc":"69103:15:22","nodeType":"YulExpressionStatement","src":"69103:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9823,"isOffset":false,"isSlot":false,"src":"68705:15:22","valueSize":1},{"declaration":9818,"isOffset":false,"isSlot":false,"src":"68021:14:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68291:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68386:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68419:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68494:8:22","valueSize":1},{"declaration":9825,"isOffset":false,"isSlot":false,"src":"68807:8:22","valueSize":1},{"declaration":9820,"isOffset":false,"isSlot":false,"src":"68273:4:22","valueSize":1},{"declaration":9820,"isOffset":false,"isSlot":false,"src":"68458:4:22","valueSize":1},{"declaration":9816,"isOffset":false,"isSlot":false,"src":"68439:5:22","valueSize":1},{"declaration":9816,"isOffset":false,"isSlot":false,"src":"68752:5:22","valueSize":1},{"declaration":9816,"isOffset":false,"isSlot":false,"src":"68817:5:22","valueSize":1}],"id":9827,"nodeType":"InlineAssembly","src":"67606:1548:22"}]},"documentation":{"id":9814,"nodeType":"StructuredDocumentation","src":"67108:272:22","text":"@dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9829,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967I","nameLocation":"67394:27:22","nodeType":"FunctionDefinition","parameters":{"id":9821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9816,"mutability":"mutable","name":"value","nameLocation":"67430:5:22","nodeType":"VariableDeclaration","scope":9829,"src":"67422:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9815,"name":"uint256","nodeType":"ElementaryTypeName","src":"67422:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9818,"mutability":"mutable","name":"implementation","nameLocation":"67445:14:22","nodeType":"VariableDeclaration","scope":9829,"src":"67437:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9817,"name":"address","nodeType":"ElementaryTypeName","src":"67437:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9820,"mutability":"mutable","name":"salt","nameLocation":"67469:4:22","nodeType":"VariableDeclaration","scope":9829,"src":"67461:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67461:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"67421:53:22"},"returnParameters":{"id":9826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9823,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"67514:15:22","nodeType":"VariableDeclaration","scope":9829,"src":"67509:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9822,"name":"bool","nodeType":"ElementaryTypeName","src":"67509:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9825,"mutability":"mutable","name":"instance","nameLocation":"67539:8:22","nodeType":"VariableDeclaration","scope":9829,"src":"67531:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9824,"name":"address","nodeType":"ElementaryTypeName","src":"67531:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67508:40:22"},"scope":10092,"src":"67385:1775:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9838,"nodeType":"Block","src":"69355:778:22","statements":[{"AST":{"nativeSrc":"69417:710:22","nodeType":"YulBlock","src":"69417:710:22","statements":[{"nativeSrc":"69431:21:22","nodeType":"YulAssignment","src":"69431:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"69447:4:22","nodeType":"YulLiteral","src":"69447:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"69441:5:22","nodeType":"YulIdentifier","src":"69441:5:22"},"nativeSrc":"69441:11:22","nodeType":"YulFunctionCall","src":"69441:11:22"},"variableNames":[{"name":"result","nativeSrc":"69431:6:22","nodeType":"YulIdentifier","src":"69431:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69493:6:22","nodeType":"YulIdentifier","src":"69493:6:22"},{"kind":"number","nativeSrc":"69501:4:22","nodeType":"YulLiteral","src":"69501:4:22","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"69489:3:22","nodeType":"YulIdentifier","src":"69489:3:22"},"nativeSrc":"69489:17:22","nodeType":"YulFunctionCall","src":"69489:17:22"},{"kind":"number","nativeSrc":"69524:66:22","nodeType":"YulLiteral","src":"69524:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"69465:6:22","nodeType":"YulIdentifier","src":"69465:6:22"},"nativeSrc":"69465:139:22","nodeType":"YulFunctionCall","src":"69465:139:22"},"nativeSrc":"69465:139:22","nodeType":"YulExpressionStatement","src":"69465:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69645:6:22","nodeType":"YulIdentifier","src":"69645:6:22"},{"kind":"number","nativeSrc":"69653:4:22","nodeType":"YulLiteral","src":"69653:4:22","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"69641:3:22","nodeType":"YulIdentifier","src":"69641:3:22"},"nativeSrc":"69641:17:22","nodeType":"YulFunctionCall","src":"69641:17:22"},{"kind":"number","nativeSrc":"69676:66:22","nodeType":"YulLiteral","src":"69676:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"69617:6:22","nodeType":"YulIdentifier","src":"69617:6:22"},"nativeSrc":"69617:139:22","nodeType":"YulFunctionCall","src":"69617:139:22"},"nativeSrc":"69617:139:22","nodeType":"YulExpressionStatement","src":"69617:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69780:6:22","nodeType":"YulIdentifier","src":"69780:6:22"},{"kind":"number","nativeSrc":"69788:4:22","nodeType":"YulLiteral","src":"69788:4:22","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"69776:3:22","nodeType":"YulIdentifier","src":"69776:3:22"},"nativeSrc":"69776:17:22","nodeType":"YulFunctionCall","src":"69776:17:22"},{"kind":"number","nativeSrc":"69795:48:22","nodeType":"YulLiteral","src":"69795:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"69769:6:22","nodeType":"YulIdentifier","src":"69769:6:22"},"nativeSrc":"69769:75:22","nodeType":"YulFunctionCall","src":"69769:75:22"},"nativeSrc":"69769:75:22","nodeType":"YulExpressionStatement","src":"69769:75:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69868:6:22","nodeType":"YulIdentifier","src":"69868:6:22"},{"kind":"number","nativeSrc":"69876:4:22","nodeType":"YulLiteral","src":"69876:4:22","type":"","value":"0x1d"}],"functionName":{"name":"add","nativeSrc":"69864:3:22","nodeType":"YulIdentifier","src":"69864:3:22"},"nativeSrc":"69864:17:22","nodeType":"YulFunctionCall","src":"69864:17:22"},{"name":"implementation","nativeSrc":"69883:14:22","nodeType":"YulIdentifier","src":"69883:14:22"}],"functionName":{"name":"mstore","nativeSrc":"69857:6:22","nodeType":"YulIdentifier","src":"69857:6:22"},"nativeSrc":"69857:41:22","nodeType":"YulFunctionCall","src":"69857:41:22"},"nativeSrc":"69857:41:22","nodeType":"YulExpressionStatement","src":"69857:41:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69922:6:22","nodeType":"YulIdentifier","src":"69922:6:22"},{"kind":"number","nativeSrc":"69930:4:22","nodeType":"YulLiteral","src":"69930:4:22","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"69918:3:22","nodeType":"YulIdentifier","src":"69918:3:22"},"nativeSrc":"69918:17:22","nodeType":"YulFunctionCall","src":"69918:17:22"},{"kind":"number","nativeSrc":"69937:20:22","nodeType":"YulLiteral","src":"69937:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"69911:6:22","nodeType":"YulIdentifier","src":"69911:6:22"},"nativeSrc":"69911:47:22","nodeType":"YulFunctionCall","src":"69911:47:22"},"nativeSrc":"69911:47:22","nodeType":"YulExpressionStatement","src":"69911:47:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69982:6:22","nodeType":"YulIdentifier","src":"69982:6:22"},{"kind":"number","nativeSrc":"69990:4:22","nodeType":"YulLiteral","src":"69990:4:22","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"69978:3:22","nodeType":"YulIdentifier","src":"69978:3:22"},"nativeSrc":"69978:17:22","nodeType":"YulFunctionCall","src":"69978:17:22"},{"kind":"number","nativeSrc":"69997:1:22","nodeType":"YulLiteral","src":"69997:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"69971:6:22","nodeType":"YulIdentifier","src":"69971:6:22"},"nativeSrc":"69971:28:22","nodeType":"YulFunctionCall","src":"69971:28:22"},"nativeSrc":"69971:28:22","nodeType":"YulExpressionStatement","src":"69971:28:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"70019:6:22","nodeType":"YulIdentifier","src":"70019:6:22"},{"kind":"number","nativeSrc":"70027:4:22","nodeType":"YulLiteral","src":"70027:4:22","type":"","value":"0x74"}],"functionName":{"name":"mstore","nativeSrc":"70012:6:22","nodeType":"YulIdentifier","src":"70012:6:22"},"nativeSrc":"70012:20:22","nodeType":"YulFunctionCall","src":"70012:20:22"},"nativeSrc":"70012:20:22","nodeType":"YulExpressionStatement","src":"70012:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70073:4:22","nodeType":"YulLiteral","src":"70073:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"70083:6:22","nodeType":"YulIdentifier","src":"70083:6:22"},{"kind":"number","nativeSrc":"70091:4:22","nodeType":"YulLiteral","src":"70091:4:22","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"70079:3:22","nodeType":"YulIdentifier","src":"70079:3:22"},"nativeSrc":"70079:17:22","nodeType":"YulFunctionCall","src":"70079:17:22"}],"functionName":{"name":"mstore","nativeSrc":"70066:6:22","nodeType":"YulIdentifier","src":"70066:6:22"},"nativeSrc":"70066:31:22","nodeType":"YulFunctionCall","src":"70066:31:22"},"nativeSrc":"70066:31:22","nodeType":"YulExpressionStatement","src":"70066:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9832,"isOffset":false,"isSlot":false,"src":"69883:14:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69431:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69493:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69645:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69780:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69868:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69922:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"69982:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"70019:6:22","valueSize":1},{"declaration":9835,"isOffset":false,"isSlot":false,"src":"70083:6:22","valueSize":1}],"id":9837,"nodeType":"InlineAssembly","src":"69408:719:22"}]},"documentation":{"id":9830,"nodeType":"StructuredDocumentation","src":"69166:90:22","text":"@dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`."},"id":9839,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967I","nameLocation":"69270:16:22","nodeType":"FunctionDefinition","parameters":{"id":9833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9832,"mutability":"mutable","name":"implementation","nameLocation":"69295:14:22","nodeType":"VariableDeclaration","scope":9839,"src":"69287:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9831,"name":"address","nodeType":"ElementaryTypeName","src":"69287:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"69286:24:22"},"returnParameters":{"id":9836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9835,"mutability":"mutable","name":"result","nameLocation":"69347:6:22","nodeType":"VariableDeclaration","scope":9839,"src":"69334:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9834,"name":"bytes","nodeType":"ElementaryTypeName","src":"69334:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"69333:21:22"},"scope":10092,"src":"69261:872:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9848,"nodeType":"Block","src":"70391:662:22","statements":[{"AST":{"nativeSrc":"70453:594:22","nodeType":"YulBlock","src":"70453:594:22","statements":[{"nativeSrc":"70467:20:22","nodeType":"YulVariableDeclaration","src":"70467:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"70482:4:22","nodeType":"YulLiteral","src":"70482:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"70476:5:22","nodeType":"YulIdentifier","src":"70476:5:22"},"nativeSrc":"70476:11:22","nodeType":"YulFunctionCall","src":"70476:11:22"},"variables":[{"name":"m","nativeSrc":"70471:1:22","nodeType":"YulTypedName","src":"70471:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70541:4:22","nodeType":"YulLiteral","src":"70541:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"70547:66:22","nodeType":"YulLiteral","src":"70547:66:22","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"70534:6:22","nodeType":"YulIdentifier","src":"70534:6:22"},"nativeSrc":"70534:80:22","nodeType":"YulFunctionCall","src":"70534:80:22"},"nativeSrc":"70534:80:22","nodeType":"YulExpressionStatement","src":"70534:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70634:4:22","nodeType":"YulLiteral","src":"70634:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"70640:66:22","nodeType":"YulLiteral","src":"70640:66:22","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"70627:6:22","nodeType":"YulIdentifier","src":"70627:6:22"},"nativeSrc":"70627:80:22","nodeType":"YulFunctionCall","src":"70627:80:22"},"nativeSrc":"70627:80:22","nodeType":"YulExpressionStatement","src":"70627:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70727:4:22","nodeType":"YulLiteral","src":"70727:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"70733:48:22","nodeType":"YulLiteral","src":"70733:48:22","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"70720:6:22","nodeType":"YulIdentifier","src":"70720:6:22"},"nativeSrc":"70720:62:22","nodeType":"YulFunctionCall","src":"70720:62:22"},"nativeSrc":"70720:62:22","nodeType":"YulExpressionStatement","src":"70720:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70802:4:22","nodeType":"YulLiteral","src":"70802:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"70815:3:22","nodeType":"YulLiteral","src":"70815:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"70820:20:22","nodeType":"YulLiteral","src":"70820:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"70811:3:22","nodeType":"YulIdentifier","src":"70811:3:22"},"nativeSrc":"70811:30:22","nodeType":"YulFunctionCall","src":"70811:30:22"},{"arguments":[{"kind":"number","nativeSrc":"70847:2:22","nodeType":"YulLiteral","src":"70847:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"70855:2:22","nodeType":"YulLiteral","src":"70855:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"70859:14:22","nodeType":"YulIdentifier","src":"70859:14:22"}],"functionName":{"name":"shl","nativeSrc":"70851:3:22","nodeType":"YulIdentifier","src":"70851:3:22"},"nativeSrc":"70851:23:22","nodeType":"YulFunctionCall","src":"70851:23:22"}],"functionName":{"name":"shr","nativeSrc":"70843:3:22","nodeType":"YulIdentifier","src":"70843:3:22"},"nativeSrc":"70843:32:22","nodeType":"YulFunctionCall","src":"70843:32:22"}],"functionName":{"name":"or","nativeSrc":"70808:2:22","nodeType":"YulIdentifier","src":"70808:2:22"},"nativeSrc":"70808:68:22","nodeType":"YulFunctionCall","src":"70808:68:22"}],"functionName":{"name":"mstore","nativeSrc":"70795:6:22","nodeType":"YulIdentifier","src":"70795:6:22"},"nativeSrc":"70795:82:22","nodeType":"YulFunctionCall","src":"70795:82:22"},"nativeSrc":"70795:82:22","nodeType":"YulExpressionStatement","src":"70795:82:22"},{"nativeSrc":"70890:29:22","nodeType":"YulAssignment","src":"70890:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"70908:4:22","nodeType":"YulLiteral","src":"70908:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"70914:4:22","nodeType":"YulLiteral","src":"70914:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"70898:9:22","nodeType":"YulIdentifier","src":"70898:9:22"},"nativeSrc":"70898:21:22","nodeType":"YulFunctionCall","src":"70898:21:22"},"variableNames":[{"name":"hash","nativeSrc":"70890:4:22","nodeType":"YulIdentifier","src":"70890:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70939:4:22","nodeType":"YulLiteral","src":"70939:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"70945:1:22","nodeType":"YulIdentifier","src":"70945:1:22"}],"functionName":{"name":"mstore","nativeSrc":"70932:6:22","nodeType":"YulIdentifier","src":"70932:6:22"},"nativeSrc":"70932:15:22","nodeType":"YulFunctionCall","src":"70932:15:22"},"nativeSrc":"70932:15:22","nodeType":"YulExpressionStatement","src":"70932:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"71003:4:22","nodeType":"YulLiteral","src":"71003:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"71009:1:22","nodeType":"YulLiteral","src":"71009:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"70996:6:22","nodeType":"YulIdentifier","src":"70996:6:22"},"nativeSrc":"70996:15:22","nodeType":"YulFunctionCall","src":"70996:15:22"},"nativeSrc":"70996:15:22","nodeType":"YulExpressionStatement","src":"70996:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9845,"isOffset":false,"isSlot":false,"src":"70890:4:22","valueSize":1},{"declaration":9842,"isOffset":false,"isSlot":false,"src":"70859:14:22","valueSize":1}],"id":9847,"nodeType":"InlineAssembly","src":"70444:603:22"}]},"documentation":{"id":9840,"nodeType":"StructuredDocumentation","src":"70139:156:22","text":"@dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9849,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967I","nameLocation":"70309:20:22","nodeType":"FunctionDefinition","parameters":{"id":9843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9842,"mutability":"mutable","name":"implementation","nameLocation":"70338:14:22","nodeType":"VariableDeclaration","scope":9849,"src":"70330:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9841,"name":"address","nodeType":"ElementaryTypeName","src":"70330:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"70329:24:22"},"returnParameters":{"id":9846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9845,"mutability":"mutable","name":"hash","nameLocation":"70385:4:22","nodeType":"VariableDeclaration","scope":9849,"src":"70377:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70377:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70376:14:22"},"scope":10092,"src":"70300:753:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9875,"nodeType":"Block","src":"71450:139:22","statements":[{"assignments":[9862],"declarations":[{"constant":false,"id":9862,"mutability":"mutable","name":"hash","nameLocation":"71468:4:22","nodeType":"VariableDeclaration","scope":9875,"src":"71460:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71460:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9866,"initialValue":{"arguments":[{"id":9864,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"71496:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9863,"name":"initCodeHashERC1967I","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9849,"src":"71475:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"71475:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"71460:51:22"},{"expression":{"id":9873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9867,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9859,"src":"71521:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9869,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9862,"src":"71561:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9870,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"71567:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9871,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9856,"src":"71573:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9868,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"71533:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"71533:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"71521:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9874,"nodeType":"ExpressionStatement","src":"71521:61:22"}]},"documentation":{"id":9850,"nodeType":"StructuredDocumentation","src":"71059:213:22","text":"@dev Returns the address of the deterministic ERC1967I proxy of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9876,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967I","nameLocation":"71286:35:22","nodeType":"FunctionDefinition","parameters":{"id":9857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9852,"mutability":"mutable","name":"implementation","nameLocation":"71339:14:22","nodeType":"VariableDeclaration","scope":9876,"src":"71331:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9851,"name":"address","nodeType":"ElementaryTypeName","src":"71331:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9854,"mutability":"mutable","name":"salt","nameLocation":"71371:4:22","nodeType":"VariableDeclaration","scope":9876,"src":"71363:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71363:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9856,"mutability":"mutable","name":"deployer","nameLocation":"71393:8:22","nodeType":"VariableDeclaration","scope":9876,"src":"71385:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9855,"name":"address","nodeType":"ElementaryTypeName","src":"71385:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71321:86:22"},"returnParameters":{"id":9860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9859,"mutability":"mutable","name":"predicted","nameLocation":"71439:9:22","nodeType":"VariableDeclaration","scope":9876,"src":"71431:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9858,"name":"address","nodeType":"ElementaryTypeName","src":"71431:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71430:19:22"},"scope":10092,"src":"71277:312:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9888,"nodeType":"Block","src":"72410:534:22","statements":[{"expression":{"id":9885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9882,"name":"bootstrap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"72420:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":9883,"name":"constantERC1967BootstrapAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"72432:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"72432:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"72420:45:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9886,"nodeType":"ExpressionStatement","src":"72420:45:22"},{"AST":{"nativeSrc":"72527:411:22","nodeType":"YulBlock","src":"72527:411:22","statements":[{"body":{"nativeSrc":"72575:353:22","nodeType":"YulBlock","src":"72575:353:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72600:4:22","nodeType":"YulLiteral","src":"72600:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"72606:66:22","nodeType":"YulLiteral","src":"72606:66:22","type":"","value":"0x0894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55"}],"functionName":{"name":"mstore","nativeSrc":"72593:6:22","nodeType":"YulIdentifier","src":"72593:6:22"},"nativeSrc":"72593:80:22","nodeType":"YulFunctionCall","src":"72593:80:22"},"nativeSrc":"72593:80:22","nodeType":"YulExpressionStatement","src":"72593:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72697:4:22","nodeType":"YulLiteral","src":"72697:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"72703:28:22","nodeType":"YulLiteral","src":"72703:28:22","type":"","value":"0x60258060093d393df358357f36"}],"functionName":{"name":"mstore","nativeSrc":"72690:6:22","nodeType":"YulIdentifier","src":"72690:6:22"},"nativeSrc":"72690:42:22","nodeType":"YulFunctionCall","src":"72690:42:22"},"nativeSrc":"72690:42:22","nodeType":"YulExpressionStatement","src":"72690:42:22"},{"body":{"nativeSrc":"72786:128:22","nodeType":"YulBlock","src":"72786:128:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72815:4:22","nodeType":"YulLiteral","src":"72815:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"72821:10:22","nodeType":"YulLiteral","src":"72821:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"72808:6:22","nodeType":"YulIdentifier","src":"72808:6:22"},"nativeSrc":"72808:24:22","nodeType":"YulFunctionCall","src":"72808:24:22"},"nativeSrc":"72808:24:22","nodeType":"YulExpressionStatement","src":"72808:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72885:4:22","nodeType":"YulLiteral","src":"72885:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"72891:4:22","nodeType":"YulLiteral","src":"72891:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"72878:6:22","nodeType":"YulIdentifier","src":"72878:6:22"},"nativeSrc":"72878:18:22","nodeType":"YulFunctionCall","src":"72878:18:22"},"nativeSrc":"72878:18:22","nodeType":"YulExpressionStatement","src":"72878:18:22"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"72767:1:22","nodeType":"YulLiteral","src":"72767:1:22","type":"","value":"0"},{"kind":"number","nativeSrc":"72770:4:22","nodeType":"YulLiteral","src":"72770:4:22","type":"","value":"0x13"},{"kind":"number","nativeSrc":"72776:4:22","nodeType":"YulLiteral","src":"72776:4:22","type":"","value":"0x2e"},{"kind":"number","nativeSrc":"72782:1:22","nodeType":"YulLiteral","src":"72782:1:22","type":"","value":"0"}],"functionName":{"name":"create2","nativeSrc":"72759:7:22","nodeType":"YulIdentifier","src":"72759:7:22"},"nativeSrc":"72759:25:22","nodeType":"YulFunctionCall","src":"72759:25:22"}],"functionName":{"name":"iszero","nativeSrc":"72752:6:22","nodeType":"YulIdentifier","src":"72752:6:22"},"nativeSrc":"72752:33:22","nodeType":"YulFunctionCall","src":"72752:33:22"},"nativeSrc":"72749:165:22","nodeType":"YulIf","src":"72749:165:22"}]},"condition":{"arguments":[{"arguments":[{"name":"bootstrap","nativeSrc":"72563:9:22","nodeType":"YulIdentifier","src":"72563:9:22"}],"functionName":{"name":"extcodesize","nativeSrc":"72551:11:22","nodeType":"YulIdentifier","src":"72551:11:22"},"nativeSrc":"72551:22:22","nodeType":"YulFunctionCall","src":"72551:22:22"}],"functionName":{"name":"iszero","nativeSrc":"72544:6:22","nodeType":"YulIdentifier","src":"72544:6:22"},"nativeSrc":"72544:30:22","nodeType":"YulFunctionCall","src":"72544:30:22"},"nativeSrc":"72541:387:22","nodeType":"YulIf","src":"72541:387:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9880,"isOffset":false,"isSlot":false,"src":"72563:9:22","valueSize":1}],"id":9887,"nodeType":"InlineAssembly","src":"72518:420:22"}]},"documentation":{"id":9877,"nodeType":"StructuredDocumentation","src":"72256:76:22","text":"@dev Deploys the constant ERC1967 bootstrap if it has not been deployed."},"id":9889,"implemented":true,"kind":"function","modifiers":[],"name":"constantERC1967Bootstrap","nameLocation":"72346:24:22","nodeType":"FunctionDefinition","parameters":{"id":9878,"nodeType":"ParameterList","parameters":[],"src":"72370:2:22"},"returnParameters":{"id":9881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9880,"mutability":"mutable","name":"bootstrap","nameLocation":"72399:9:22","nodeType":"VariableDeclaration","scope":9889,"src":"72391:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9879,"name":"address","nodeType":"ElementaryTypeName","src":"72391:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"72390:19:22"},"scope":10092,"src":"72337:607:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9913,"nodeType":"Block","src":"73127:180:22","statements":[{"assignments":[9896],"declarations":[{"constant":false,"id":9896,"mutability":"mutable","name":"hash","nameLocation":"73145:4:22","nodeType":"VariableDeclaration","scope":9913,"src":"73137:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73137:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9898,"initialValue":{"hexValue":"307866653161343262396335373161366138633038336339346163363762396366643734653235383239323334323661613362373632653334333164373137636431","id":9897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73152:66:22","typeDescriptions":{"typeIdentifier":"t_rational_114933862087476197012910812439233746999477611380613810828400768283705108167889_by_1","typeString":"int_const 1149...(70 digits omitted)...7889"},"value":"0xfe1a42b9c571a6a8c083c94ac67b9cfd74e2582923426aa3b762e3431d717cd1"},"nodeType":"VariableDeclarationStatement","src":"73137:81:22"},{"expression":{"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9899,"name":"bootstrap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9893,"src":"73228:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9901,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"73268:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":9904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73282:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"73274:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73274:7:22","typeDescriptions":{}}},"id":9905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73274:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":9908,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"73294:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_LibClone_$10092","typeString":"library LibClone"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibClone_$10092","typeString":"library LibClone"}],"id":9907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"73286:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9906,"name":"address","nodeType":"ElementaryTypeName","src":"73286:7:22","typeDescriptions":{}}},"id":9909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73286:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9900,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"73240:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73240:60:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"73228:72:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9912,"nodeType":"ExpressionStatement","src":"73228:72:22"}]},"documentation":{"id":9890,"nodeType":"StructuredDocumentation","src":"72950:87:22","text":"@dev Returns the implementation address of the ERC1967 bootstrap for this contract."},"id":9914,"implemented":true,"kind":"function","modifiers":[],"name":"constantERC1967BootstrapAddress","nameLocation":"73051:31:22","nodeType":"FunctionDefinition","parameters":{"id":9891,"nodeType":"ParameterList","parameters":[],"src":"73082:2:22"},"returnParameters":{"id":9894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9893,"mutability":"mutable","name":"bootstrap","nameLocation":"73116:9:22","nodeType":"VariableDeclaration","scope":9914,"src":"73108:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9892,"name":"address","nodeType":"ElementaryTypeName","src":"73108:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"73107:19:22"},"scope":10092,"src":"73042:265:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9923,"nodeType":"Block","src":"73446:333:22","statements":[{"AST":{"nativeSrc":"73508:265:22","nodeType":"YulBlock","src":"73508:265:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73529:4:22","nodeType":"YulLiteral","src":"73529:4:22","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"73539:2:22","nodeType":"YulLiteral","src":"73539:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"73547:2:22","nodeType":"YulLiteral","src":"73547:2:22","type":"","value":"96"},{"name":"implementation","nativeSrc":"73551:14:22","nodeType":"YulIdentifier","src":"73551:14:22"}],"functionName":{"name":"shl","nativeSrc":"73543:3:22","nodeType":"YulIdentifier","src":"73543:3:22"},"nativeSrc":"73543:23:22","nodeType":"YulFunctionCall","src":"73543:23:22"}],"functionName":{"name":"shr","nativeSrc":"73535:3:22","nodeType":"YulIdentifier","src":"73535:3:22"},"nativeSrc":"73535:32:22","nodeType":"YulFunctionCall","src":"73535:32:22"}],"functionName":{"name":"mstore","nativeSrc":"73522:6:22","nodeType":"YulIdentifier","src":"73522:6:22"},"nativeSrc":"73522:46:22","nodeType":"YulFunctionCall","src":"73522:46:22"},"nativeSrc":"73522:46:22","nodeType":"YulExpressionStatement","src":"73522:46:22"},{"body":{"nativeSrc":"73647:116:22","nodeType":"YulBlock","src":"73647:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73672:4:22","nodeType":"YulLiteral","src":"73672:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"73678:10:22","nodeType":"YulLiteral","src":"73678:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"73665:6:22","nodeType":"YulIdentifier","src":"73665:6:22"},"nativeSrc":"73665:24:22","nodeType":"YulFunctionCall","src":"73665:24:22"},"nativeSrc":"73665:24:22","nodeType":"YulExpressionStatement","src":"73665:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73738:4:22","nodeType":"YulLiteral","src":"73738:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"73744:4:22","nodeType":"YulLiteral","src":"73744:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"73731:6:22","nodeType":"YulIdentifier","src":"73731:6:22"},"nativeSrc":"73731:18:22","nodeType":"YulFunctionCall","src":"73731:18:22"},"nativeSrc":"73731:18:22","nodeType":"YulExpressionStatement","src":"73731:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"73596:3:22","nodeType":"YulIdentifier","src":"73596:3:22"},"nativeSrc":"73596:5:22","nodeType":"YulFunctionCall","src":"73596:5:22"},{"name":"instance","nativeSrc":"73603:8:22","nodeType":"YulIdentifier","src":"73603:8:22"},{"kind":"number","nativeSrc":"73613:1:22","nodeType":"YulLiteral","src":"73613:1:22","type":"","value":"0"},{"kind":"number","nativeSrc":"73616:4:22","nodeType":"YulLiteral","src":"73616:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"73622:4:22","nodeType":"YulLiteral","src":"73622:4:22","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"73628:8:22","nodeType":"YulIdentifier","src":"73628:8:22"},"nativeSrc":"73628:10:22","nodeType":"YulFunctionCall","src":"73628:10:22"},{"kind":"number","nativeSrc":"73640:4:22","nodeType":"YulLiteral","src":"73640:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"73591:4:22","nodeType":"YulIdentifier","src":"73591:4:22"},"nativeSrc":"73591:54:22","nodeType":"YulFunctionCall","src":"73591:54:22"}],"functionName":{"name":"iszero","nativeSrc":"73584:6:22","nodeType":"YulIdentifier","src":"73584:6:22"},"nativeSrc":"73584:62:22","nodeType":"YulFunctionCall","src":"73584:62:22"},"nativeSrc":"73581:182:22","nodeType":"YulIf","src":"73581:182:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9919,"isOffset":false,"isSlot":false,"src":"73551:14:22","valueSize":1},{"declaration":9917,"isOffset":false,"isSlot":false,"src":"73603:8:22","valueSize":1}],"id":9922,"nodeType":"InlineAssembly","src":"73499:274:22"}]},"documentation":{"id":9915,"nodeType":"StructuredDocumentation","src":"73313:51:22","text":"@dev Replaces the implementation at `instance`."},"id":9924,"implemented":true,"kind":"function","modifiers":[],"name":"bootstrapERC1967","nameLocation":"73378:16:22","nodeType":"FunctionDefinition","parameters":{"id":9920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9917,"mutability":"mutable","name":"instance","nameLocation":"73403:8:22","nodeType":"VariableDeclaration","scope":9924,"src":"73395:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9916,"name":"address","nodeType":"ElementaryTypeName","src":"73395:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9919,"mutability":"mutable","name":"implementation","nameLocation":"73421:14:22","nodeType":"VariableDeclaration","scope":9924,"src":"73413:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9918,"name":"address","nodeType":"ElementaryTypeName","src":"73413:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"73394:42:22"},"returnParameters":{"id":9921,"nodeType":"ParameterList","parameters":[],"src":"73446:0:22"},"scope":10092,"src":"73369:410:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9939,"nodeType":"Block","src":"74582:63:22","statements":[{"expression":{"id":9937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9932,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9930,"src":"74592:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"74628:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9935,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9927,"src":"74631:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9933,"name":"deployERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[9940,9952],"referencedDeclaration":9952,"src":"74603:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"74603:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"74592:46:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9938,"nodeType":"ExpressionStatement","src":"74592:46:22"}]},"documentation":{"id":9925,"nodeType":"StructuredDocumentation","src":"74443:48:22","text":"@dev Deploys a minimal ERC1967 beacon proxy."},"id":9940,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967BeaconProxy","nameLocation":"74505:24:22","nodeType":"FunctionDefinition","parameters":{"id":9928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9927,"mutability":"mutable","name":"beacon","nameLocation":"74538:6:22","nodeType":"VariableDeclaration","scope":9940,"src":"74530:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9926,"name":"address","nodeType":"ElementaryTypeName","src":"74530:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74529:16:22"},"returnParameters":{"id":9931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9930,"mutability":"mutable","name":"instance","nameLocation":"74572:8:22","nodeType":"VariableDeclaration","scope":9940,"src":"74564:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9929,"name":"address","nodeType":"ElementaryTypeName","src":"74564:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74563:18:22"},"scope":10092,"src":"74496:149:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9951,"nodeType":"Block","src":"74873:8291:22","statements":[{"AST":{"nativeSrc":"74935:8223:22","nodeType":"YulBlock","src":"74935:8223:22","statements":[{"nativeSrc":"82429:20:22","nodeType":"YulVariableDeclaration","src":"82429:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"82444:4:22","nodeType":"YulLiteral","src":"82444:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"82438:5:22","nodeType":"YulIdentifier","src":"82438:5:22"},"nativeSrc":"82438:11:22","nodeType":"YulFunctionCall","src":"82438:11:22"},"variables":[{"name":"m","nativeSrc":"82433:1:22","nodeType":"YulTypedName","src":"82433:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82503:4:22","nodeType":"YulLiteral","src":"82503:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"82509:66:22","nodeType":"YulLiteral","src":"82509:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"82496:6:22","nodeType":"YulIdentifier","src":"82496:6:22"},"nativeSrc":"82496:80:22","nodeType":"YulFunctionCall","src":"82496:80:22"},"nativeSrc":"82496:80:22","nodeType":"YulExpressionStatement","src":"82496:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82596:4:22","nodeType":"YulLiteral","src":"82596:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"82602:66:22","nodeType":"YulLiteral","src":"82602:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"82589:6:22","nodeType":"YulIdentifier","src":"82589:6:22"},"nativeSrc":"82589:80:22","nodeType":"YulFunctionCall","src":"82589:80:22"},"nativeSrc":"82589:80:22","nodeType":"YulExpressionStatement","src":"82589:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82689:4:22","nodeType":"YulLiteral","src":"82689:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"82695:48:22","nodeType":"YulLiteral","src":"82695:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"82682:6:22","nodeType":"YulIdentifier","src":"82682:6:22"},"nativeSrc":"82682:62:22","nodeType":"YulFunctionCall","src":"82682:62:22"},"nativeSrc":"82682:62:22","nodeType":"YulExpressionStatement","src":"82682:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82764:4:22","nodeType":"YulLiteral","src":"82764:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"82777:3:22","nodeType":"YulLiteral","src":"82777:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"82782:20:22","nodeType":"YulLiteral","src":"82782:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"82773:3:22","nodeType":"YulIdentifier","src":"82773:3:22"},"nativeSrc":"82773:30:22","nodeType":"YulFunctionCall","src":"82773:30:22"},{"arguments":[{"kind":"number","nativeSrc":"82809:2:22","nodeType":"YulLiteral","src":"82809:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"82817:2:22","nodeType":"YulLiteral","src":"82817:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"82821:6:22","nodeType":"YulIdentifier","src":"82821:6:22"}],"functionName":{"name":"shl","nativeSrc":"82813:3:22","nodeType":"YulIdentifier","src":"82813:3:22"},"nativeSrc":"82813:15:22","nodeType":"YulFunctionCall","src":"82813:15:22"}],"functionName":{"name":"shr","nativeSrc":"82805:3:22","nodeType":"YulIdentifier","src":"82805:3:22"},"nativeSrc":"82805:24:22","nodeType":"YulFunctionCall","src":"82805:24:22"}],"functionName":{"name":"or","nativeSrc":"82770:2:22","nodeType":"YulIdentifier","src":"82770:2:22"},"nativeSrc":"82770:60:22","nodeType":"YulFunctionCall","src":"82770:60:22"}],"functionName":{"name":"mstore","nativeSrc":"82757:6:22","nodeType":"YulIdentifier","src":"82757:6:22"},"nativeSrc":"82757:74:22","nodeType":"YulFunctionCall","src":"82757:74:22"},"nativeSrc":"82757:74:22","nodeType":"YulExpressionStatement","src":"82757:74:22"},{"nativeSrc":"82844:37:22","nodeType":"YulAssignment","src":"82844:37:22","value":{"arguments":[{"name":"value","nativeSrc":"82863:5:22","nodeType":"YulIdentifier","src":"82863:5:22"},{"kind":"number","nativeSrc":"82870:4:22","nodeType":"YulLiteral","src":"82870:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"82876:4:22","nodeType":"YulLiteral","src":"82876:4:22","type":"","value":"0x74"}],"functionName":{"name":"create","nativeSrc":"82856:6:22","nodeType":"YulIdentifier","src":"82856:6:22"},"nativeSrc":"82856:25:22","nodeType":"YulFunctionCall","src":"82856:25:22"},"variableNames":[{"name":"instance","nativeSrc":"82844:8:22","nodeType":"YulIdentifier","src":"82844:8:22"}]},{"body":{"nativeSrc":"82914:116:22","nodeType":"YulBlock","src":"82914:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"82939:4:22","nodeType":"YulLiteral","src":"82939:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"82945:10:22","nodeType":"YulLiteral","src":"82945:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"82932:6:22","nodeType":"YulIdentifier","src":"82932:6:22"},"nativeSrc":"82932:24:22","nodeType":"YulFunctionCall","src":"82932:24:22"},"nativeSrc":"82932:24:22","nodeType":"YulExpressionStatement","src":"82932:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83005:4:22","nodeType":"YulLiteral","src":"83005:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"83011:4:22","nodeType":"YulLiteral","src":"83011:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"82998:6:22","nodeType":"YulIdentifier","src":"82998:6:22"},"nativeSrc":"82998:18:22","nodeType":"YulFunctionCall","src":"82998:18:22"},"nativeSrc":"82998:18:22","nodeType":"YulExpressionStatement","src":"82998:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"82904:8:22","nodeType":"YulIdentifier","src":"82904:8:22"}],"functionName":{"name":"iszero","nativeSrc":"82897:6:22","nodeType":"YulIdentifier","src":"82897:6:22"},"nativeSrc":"82897:16:22","nodeType":"YulFunctionCall","src":"82897:16:22"},"nativeSrc":"82894:136:22","nodeType":"YulIf","src":"82894:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83050:4:22","nodeType":"YulLiteral","src":"83050:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"83056:1:22","nodeType":"YulIdentifier","src":"83056:1:22"}],"functionName":{"name":"mstore","nativeSrc":"83043:6:22","nodeType":"YulIdentifier","src":"83043:6:22"},"nativeSrc":"83043:15:22","nodeType":"YulFunctionCall","src":"83043:15:22"},"nativeSrc":"83043:15:22","nodeType":"YulExpressionStatement","src":"83043:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83114:4:22","nodeType":"YulLiteral","src":"83114:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"83120:1:22","nodeType":"YulLiteral","src":"83120:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"83107:6:22","nodeType":"YulIdentifier","src":"83107:6:22"},"nativeSrc":"83107:15:22","nodeType":"YulFunctionCall","src":"83107:15:22"},"nativeSrc":"83107:15:22","nodeType":"YulExpressionStatement","src":"83107:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9945,"isOffset":false,"isSlot":false,"src":"82821:6:22","valueSize":1},{"declaration":9948,"isOffset":false,"isSlot":false,"src":"82844:8:22","valueSize":1},{"declaration":9948,"isOffset":false,"isSlot":false,"src":"82904:8:22","valueSize":1},{"declaration":9943,"isOffset":false,"isSlot":false,"src":"82863:5:22","valueSize":1}],"id":9950,"nodeType":"InlineAssembly","src":"74926:8232:22"}]},"documentation":{"id":9941,"nodeType":"StructuredDocumentation","src":"74651:96:22","text":"@dev Deploys a minimal ERC1967 beacon proxy.\n Deposits `value` ETH during deployment."},"id":9952,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967BeaconProxy","nameLocation":"74761:24:22","nodeType":"FunctionDefinition","parameters":{"id":9946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9943,"mutability":"mutable","name":"value","nameLocation":"74794:5:22","nodeType":"VariableDeclaration","scope":9952,"src":"74786:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9942,"name":"uint256","nodeType":"ElementaryTypeName","src":"74786:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9945,"mutability":"mutable","name":"beacon","nameLocation":"74809:6:22","nodeType":"VariableDeclaration","scope":9952,"src":"74801:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9944,"name":"address","nodeType":"ElementaryTypeName","src":"74801:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74785:31:22"},"returnParameters":{"id":9949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9948,"mutability":"mutable","name":"instance","nameLocation":"74859:8:22","nodeType":"VariableDeclaration","scope":9952,"src":"74851:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9947,"name":"address","nodeType":"ElementaryTypeName","src":"74851:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74850:18:22"},"scope":10092,"src":"74752:8412:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9970,"nodeType":"Block","src":"83382:82:22","statements":[{"expression":{"id":9968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9962,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9960,"src":"83392:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"83441:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9965,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9955,"src":"83444:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9966,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9957,"src":"83452:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9963,"name":"deployDeterministicERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[9971,9985],"referencedDeclaration":9985,"src":"83403:37:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"83403:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"83392:65:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9969,"nodeType":"ExpressionStatement","src":"83392:65:22"}]},"documentation":{"id":9953,"nodeType":"StructuredDocumentation","src":"83170:74:22","text":"@dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`."},"id":9971,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967BeaconProxy","nameLocation":"83258:37:22","nodeType":"FunctionDefinition","parameters":{"id":9958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9955,"mutability":"mutable","name":"beacon","nameLocation":"83304:6:22","nodeType":"VariableDeclaration","scope":9971,"src":"83296:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9954,"name":"address","nodeType":"ElementaryTypeName","src":"83296:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9957,"mutability":"mutable","name":"salt","nameLocation":"83320:4:22","nodeType":"VariableDeclaration","scope":9971,"src":"83312:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9956,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83312:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"83295:30:22"},"returnParameters":{"id":9961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9960,"mutability":"mutable","name":"instance","nameLocation":"83368:8:22","nodeType":"VariableDeclaration","scope":9971,"src":"83360:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9959,"name":"address","nodeType":"ElementaryTypeName","src":"83360:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83359:18:22"},"scope":10092,"src":"83249:215:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9984,"nodeType":"Block","src":"83745:818:22","statements":[{"AST":{"nativeSrc":"83807:750:22","nodeType":"YulBlock","src":"83807:750:22","statements":[{"nativeSrc":"83821:20:22","nodeType":"YulVariableDeclaration","src":"83821:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"83836:4:22","nodeType":"YulLiteral","src":"83836:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"83830:5:22","nodeType":"YulIdentifier","src":"83830:5:22"},"nativeSrc":"83830:11:22","nodeType":"YulFunctionCall","src":"83830:11:22"},"variables":[{"name":"m","nativeSrc":"83825:1:22","nodeType":"YulTypedName","src":"83825:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83895:4:22","nodeType":"YulLiteral","src":"83895:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"83901:66:22","nodeType":"YulLiteral","src":"83901:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"83888:6:22","nodeType":"YulIdentifier","src":"83888:6:22"},"nativeSrc":"83888:80:22","nodeType":"YulFunctionCall","src":"83888:80:22"},"nativeSrc":"83888:80:22","nodeType":"YulExpressionStatement","src":"83888:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83988:4:22","nodeType":"YulLiteral","src":"83988:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"83994:66:22","nodeType":"YulLiteral","src":"83994:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"83981:6:22","nodeType":"YulIdentifier","src":"83981:6:22"},"nativeSrc":"83981:80:22","nodeType":"YulFunctionCall","src":"83981:80:22"},"nativeSrc":"83981:80:22","nodeType":"YulExpressionStatement","src":"83981:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84081:4:22","nodeType":"YulLiteral","src":"84081:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"84087:48:22","nodeType":"YulLiteral","src":"84087:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"84074:6:22","nodeType":"YulIdentifier","src":"84074:6:22"},"nativeSrc":"84074:62:22","nodeType":"YulFunctionCall","src":"84074:62:22"},"nativeSrc":"84074:62:22","nodeType":"YulExpressionStatement","src":"84074:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84156:4:22","nodeType":"YulLiteral","src":"84156:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"84169:3:22","nodeType":"YulLiteral","src":"84169:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"84174:20:22","nodeType":"YulLiteral","src":"84174:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"84165:3:22","nodeType":"YulIdentifier","src":"84165:3:22"},"nativeSrc":"84165:30:22","nodeType":"YulFunctionCall","src":"84165:30:22"},{"arguments":[{"kind":"number","nativeSrc":"84201:2:22","nodeType":"YulLiteral","src":"84201:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"84209:2:22","nodeType":"YulLiteral","src":"84209:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"84213:6:22","nodeType":"YulIdentifier","src":"84213:6:22"}],"functionName":{"name":"shl","nativeSrc":"84205:3:22","nodeType":"YulIdentifier","src":"84205:3:22"},"nativeSrc":"84205:15:22","nodeType":"YulFunctionCall","src":"84205:15:22"}],"functionName":{"name":"shr","nativeSrc":"84197:3:22","nodeType":"YulIdentifier","src":"84197:3:22"},"nativeSrc":"84197:24:22","nodeType":"YulFunctionCall","src":"84197:24:22"}],"functionName":{"name":"or","nativeSrc":"84162:2:22","nodeType":"YulIdentifier","src":"84162:2:22"},"nativeSrc":"84162:60:22","nodeType":"YulFunctionCall","src":"84162:60:22"}],"functionName":{"name":"mstore","nativeSrc":"84149:6:22","nodeType":"YulIdentifier","src":"84149:6:22"},"nativeSrc":"84149:74:22","nodeType":"YulFunctionCall","src":"84149:74:22"},"nativeSrc":"84149:74:22","nodeType":"YulExpressionStatement","src":"84149:74:22"},{"nativeSrc":"84236:44:22","nodeType":"YulAssignment","src":"84236:44:22","value":{"arguments":[{"name":"value","nativeSrc":"84256:5:22","nodeType":"YulIdentifier","src":"84256:5:22"},{"kind":"number","nativeSrc":"84263:4:22","nodeType":"YulLiteral","src":"84263:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"84269:4:22","nodeType":"YulLiteral","src":"84269:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"84275:4:22","nodeType":"YulIdentifier","src":"84275:4:22"}],"functionName":{"name":"create2","nativeSrc":"84248:7:22","nodeType":"YulIdentifier","src":"84248:7:22"},"nativeSrc":"84248:32:22","nodeType":"YulFunctionCall","src":"84248:32:22"},"variableNames":[{"name":"instance","nativeSrc":"84236:8:22","nodeType":"YulIdentifier","src":"84236:8:22"}]},{"body":{"nativeSrc":"84313:116:22","nodeType":"YulBlock","src":"84313:116:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"84338:4:22","nodeType":"YulLiteral","src":"84338:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"84344:10:22","nodeType":"YulLiteral","src":"84344:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"84331:6:22","nodeType":"YulIdentifier","src":"84331:6:22"},"nativeSrc":"84331:24:22","nodeType":"YulFunctionCall","src":"84331:24:22"},"nativeSrc":"84331:24:22","nodeType":"YulExpressionStatement","src":"84331:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84404:4:22","nodeType":"YulLiteral","src":"84404:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"84410:4:22","nodeType":"YulLiteral","src":"84410:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"84397:6:22","nodeType":"YulIdentifier","src":"84397:6:22"},"nativeSrc":"84397:18:22","nodeType":"YulFunctionCall","src":"84397:18:22"},"nativeSrc":"84397:18:22","nodeType":"YulExpressionStatement","src":"84397:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"84303:8:22","nodeType":"YulIdentifier","src":"84303:8:22"}],"functionName":{"name":"iszero","nativeSrc":"84296:6:22","nodeType":"YulIdentifier","src":"84296:6:22"},"nativeSrc":"84296:16:22","nodeType":"YulFunctionCall","src":"84296:16:22"},"nativeSrc":"84293:136:22","nodeType":"YulIf","src":"84293:136:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84449:4:22","nodeType":"YulLiteral","src":"84449:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"84455:1:22","nodeType":"YulIdentifier","src":"84455:1:22"}],"functionName":{"name":"mstore","nativeSrc":"84442:6:22","nodeType":"YulIdentifier","src":"84442:6:22"},"nativeSrc":"84442:15:22","nodeType":"YulFunctionCall","src":"84442:15:22"},"nativeSrc":"84442:15:22","nodeType":"YulExpressionStatement","src":"84442:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84513:4:22","nodeType":"YulLiteral","src":"84513:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"84519:1:22","nodeType":"YulLiteral","src":"84519:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"84506:6:22","nodeType":"YulIdentifier","src":"84506:6:22"},"nativeSrc":"84506:15:22","nodeType":"YulFunctionCall","src":"84506:15:22"},"nativeSrc":"84506:15:22","nodeType":"YulExpressionStatement","src":"84506:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9976,"isOffset":false,"isSlot":false,"src":"84213:6:22","valueSize":1},{"declaration":9981,"isOffset":false,"isSlot":false,"src":"84236:8:22","valueSize":1},{"declaration":9981,"isOffset":false,"isSlot":false,"src":"84303:8:22","valueSize":1},{"declaration":9978,"isOffset":false,"isSlot":false,"src":"84275:4:22","valueSize":1},{"declaration":9974,"isOffset":false,"isSlot":false,"src":"84256:5:22","valueSize":1}],"id":9983,"nodeType":"InlineAssembly","src":"83798:759:22"}]},"documentation":{"id":9972,"nodeType":"StructuredDocumentation","src":"83470:122:22","text":"@dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n Deposits `value` ETH during deployment."},"id":9985,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967BeaconProxy","nameLocation":"83606:37:22","nodeType":"FunctionDefinition","parameters":{"id":9979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9974,"mutability":"mutable","name":"value","nameLocation":"83652:5:22","nodeType":"VariableDeclaration","scope":9985,"src":"83644:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9973,"name":"uint256","nodeType":"ElementaryTypeName","src":"83644:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9976,"mutability":"mutable","name":"beacon","nameLocation":"83667:6:22","nodeType":"VariableDeclaration","scope":9985,"src":"83659:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9975,"name":"address","nodeType":"ElementaryTypeName","src":"83659:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9978,"mutability":"mutable","name":"salt","nameLocation":"83683:4:22","nodeType":"VariableDeclaration","scope":9985,"src":"83675:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83675:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"83643:45:22"},"returnParameters":{"id":9982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9981,"mutability":"mutable","name":"instance","nameLocation":"83731:8:22","nodeType":"VariableDeclaration","scope":9985,"src":"83723:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9980,"name":"address","nodeType":"ElementaryTypeName","src":"83723:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83722:18:22"},"scope":10092,"src":"83597:966:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10003,"nodeType":"Block","src":"84946:78:22","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"85001:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9999,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"85004:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10000,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9990,"src":"85012:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9997,"name":"createDeterministicERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[10004,10020],"referencedDeclaration":10020,"src":"84963:37:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":10001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"84963:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9996,"id":10002,"nodeType":"Return","src":"84956:61:22"}]},"documentation":{"id":9986,"nodeType":"StructuredDocumentation","src":"84569:217:22","text":"@dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":10004,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967BeaconProxy","nameLocation":"84800:37:22","nodeType":"FunctionDefinition","parameters":{"id":9991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9988,"mutability":"mutable","name":"beacon","nameLocation":"84846:6:22","nodeType":"VariableDeclaration","scope":10004,"src":"84838:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9987,"name":"address","nodeType":"ElementaryTypeName","src":"84838:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9990,"mutability":"mutable","name":"salt","nameLocation":"84862:4:22","nodeType":"VariableDeclaration","scope":10004,"src":"84854:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84854:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"84837:30:22"},"returnParameters":{"id":9996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9993,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"84907:15:22","nodeType":"VariableDeclaration","scope":10004,"src":"84902:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9992,"name":"bool","nodeType":"ElementaryTypeName","src":"84902:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9995,"mutability":"mutable","name":"instance","nameLocation":"84932:8:22","nodeType":"VariableDeclaration","scope":10004,"src":"84924:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9994,"name":"address","nodeType":"ElementaryTypeName","src":"84924:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"84901:40:22"},"scope":10092,"src":"84791:233:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10019,"nodeType":"Block","src":"85470:1599:22","statements":[{"AST":{"nativeSrc":"85532:1531:22","nodeType":"YulBlock","src":"85532:1531:22","statements":[{"nativeSrc":"85546:20:22","nodeType":"YulVariableDeclaration","src":"85546:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"85561:4:22","nodeType":"YulLiteral","src":"85561:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"85555:5:22","nodeType":"YulIdentifier","src":"85555:5:22"},"nativeSrc":"85555:11:22","nodeType":"YulFunctionCall","src":"85555:11:22"},"variables":[{"name":"m","nativeSrc":"85550:1:22","nodeType":"YulTypedName","src":"85550:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85620:4:22","nodeType":"YulLiteral","src":"85620:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"85626:66:22","nodeType":"YulLiteral","src":"85626:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"85613:6:22","nodeType":"YulIdentifier","src":"85613:6:22"},"nativeSrc":"85613:80:22","nodeType":"YulFunctionCall","src":"85613:80:22"},"nativeSrc":"85613:80:22","nodeType":"YulExpressionStatement","src":"85613:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85713:4:22","nodeType":"YulLiteral","src":"85713:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"85719:66:22","nodeType":"YulLiteral","src":"85719:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"85706:6:22","nodeType":"YulIdentifier","src":"85706:6:22"},"nativeSrc":"85706:80:22","nodeType":"YulFunctionCall","src":"85706:80:22"},"nativeSrc":"85706:80:22","nodeType":"YulExpressionStatement","src":"85706:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85806:4:22","nodeType":"YulLiteral","src":"85806:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"85812:48:22","nodeType":"YulLiteral","src":"85812:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"85799:6:22","nodeType":"YulIdentifier","src":"85799:6:22"},"nativeSrc":"85799:62:22","nodeType":"YulFunctionCall","src":"85799:62:22"},"nativeSrc":"85799:62:22","nodeType":"YulExpressionStatement","src":"85799:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85881:4:22","nodeType":"YulLiteral","src":"85881:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"85894:3:22","nodeType":"YulLiteral","src":"85894:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"85899:20:22","nodeType":"YulLiteral","src":"85899:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"85890:3:22","nodeType":"YulIdentifier","src":"85890:3:22"},"nativeSrc":"85890:30:22","nodeType":"YulFunctionCall","src":"85890:30:22"},{"arguments":[{"kind":"number","nativeSrc":"85926:2:22","nodeType":"YulLiteral","src":"85926:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"85934:2:22","nodeType":"YulLiteral","src":"85934:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"85938:6:22","nodeType":"YulIdentifier","src":"85938:6:22"}],"functionName":{"name":"shl","nativeSrc":"85930:3:22","nodeType":"YulIdentifier","src":"85930:3:22"},"nativeSrc":"85930:15:22","nodeType":"YulFunctionCall","src":"85930:15:22"}],"functionName":{"name":"shr","nativeSrc":"85922:3:22","nodeType":"YulIdentifier","src":"85922:3:22"},"nativeSrc":"85922:24:22","nodeType":"YulFunctionCall","src":"85922:24:22"}],"functionName":{"name":"or","nativeSrc":"85887:2:22","nodeType":"YulIdentifier","src":"85887:2:22"},"nativeSrc":"85887:60:22","nodeType":"YulFunctionCall","src":"85887:60:22"}],"functionName":{"name":"mstore","nativeSrc":"85874:6:22","nodeType":"YulIdentifier","src":"85874:6:22"},"nativeSrc":"85874:74:22","nodeType":"YulFunctionCall","src":"85874:74:22"},"nativeSrc":"85874:74:22","nodeType":"YulExpressionStatement","src":"85874:74:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"86024:1:22","nodeType":"YulIdentifier","src":"86024:1:22"},{"kind":"number","nativeSrc":"86027:4:22","nodeType":"YulLiteral","src":"86027:4:22","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"86020:3:22","nodeType":"YulIdentifier","src":"86020:3:22"},"nativeSrc":"86020:12:22","nodeType":"YulFunctionCall","src":"86020:12:22"},{"arguments":[{"kind":"number","nativeSrc":"86044:4:22","nodeType":"YulLiteral","src":"86044:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"86050:4:22","nodeType":"YulLiteral","src":"86050:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"86034:9:22","nodeType":"YulIdentifier","src":"86034:9:22"},"nativeSrc":"86034:21:22","nodeType":"YulFunctionCall","src":"86034:21:22"}],"functionName":{"name":"mstore","nativeSrc":"86013:6:22","nodeType":"YulIdentifier","src":"86013:6:22"},"nativeSrc":"86013:43:22","nodeType":"YulFunctionCall","src":"86013:43:22"},"nativeSrc":"86013:43:22","nodeType":"YulExpressionStatement","src":"86013:43:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"86076:1:22","nodeType":"YulIdentifier","src":"86076:1:22"},{"arguments":[{"kind":"number","nativeSrc":"86083:2:22","nodeType":"YulLiteral","src":"86083:2:22","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"86087:7:22","nodeType":"YulIdentifier","src":"86087:7:22"},"nativeSrc":"86087:9:22","nodeType":"YulFunctionCall","src":"86087:9:22"}],"functionName":{"name":"shl","nativeSrc":"86079:3:22","nodeType":"YulIdentifier","src":"86079:3:22"},"nativeSrc":"86079:18:22","nodeType":"YulFunctionCall","src":"86079:18:22"}],"functionName":{"name":"mstore","nativeSrc":"86069:6:22","nodeType":"YulIdentifier","src":"86069:6:22"},"nativeSrc":"86069:29:22","nodeType":"YulFunctionCall","src":"86069:29:22"},"nativeSrc":"86069:29:22","nodeType":"YulExpressionStatement","src":"86069:29:22"},{"expression":{"arguments":[{"name":"m","nativeSrc":"86119:1:22","nodeType":"YulIdentifier","src":"86119:1:22"},{"kind":"number","nativeSrc":"86122:4:22","nodeType":"YulLiteral","src":"86122:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"86111:7:22","nodeType":"YulIdentifier","src":"86111:7:22"},"nativeSrc":"86111:16:22","nodeType":"YulFunctionCall","src":"86111:16:22"},"nativeSrc":"86111:16:22","nodeType":"YulExpressionStatement","src":"86111:16:22"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"86172:1:22","nodeType":"YulIdentifier","src":"86172:1:22"},{"kind":"number","nativeSrc":"86175:4:22","nodeType":"YulLiteral","src":"86175:4:22","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"86168:3:22","nodeType":"YulIdentifier","src":"86168:3:22"},"nativeSrc":"86168:12:22","nodeType":"YulFunctionCall","src":"86168:12:22"},{"name":"salt","nativeSrc":"86182:4:22","nodeType":"YulIdentifier","src":"86182:4:22"}],"functionName":{"name":"mstore","nativeSrc":"86161:6:22","nodeType":"YulIdentifier","src":"86161:6:22"},"nativeSrc":"86161:26:22","nodeType":"YulFunctionCall","src":"86161:26:22"},"nativeSrc":"86161:26:22","nodeType":"YulExpressionStatement","src":"86161:26:22"},{"nativeSrc":"86200:30:22","nodeType":"YulAssignment","src":"86200:30:22","value":{"arguments":[{"name":"m","nativeSrc":"86222:1:22","nodeType":"YulIdentifier","src":"86222:1:22"},{"kind":"number","nativeSrc":"86225:4:22","nodeType":"YulLiteral","src":"86225:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"86212:9:22","nodeType":"YulIdentifier","src":"86212:9:22"},"nativeSrc":"86212:18:22","nodeType":"YulFunctionCall","src":"86212:18:22"},"variableNames":[{"name":"instance","nativeSrc":"86200:8:22","nodeType":"YulIdentifier","src":"86200:8:22"}]},{"body":{"nativeSrc":"86255:680:22","nodeType":"YulBlock","src":"86255:680:22","statements":[{"body":{"nativeSrc":"86306:291:22","nodeType":"YulBlock","src":"86306:291:22","statements":[{"nativeSrc":"86328:44:22","nodeType":"YulAssignment","src":"86328:44:22","value":{"arguments":[{"name":"value","nativeSrc":"86348:5:22","nodeType":"YulIdentifier","src":"86348:5:22"},{"kind":"number","nativeSrc":"86355:4:22","nodeType":"YulLiteral","src":"86355:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"86361:4:22","nodeType":"YulLiteral","src":"86361:4:22","type":"","value":"0x74"},{"name":"salt","nativeSrc":"86367:4:22","nodeType":"YulIdentifier","src":"86367:4:22"}],"functionName":{"name":"create2","nativeSrc":"86340:7:22","nodeType":"YulIdentifier","src":"86340:7:22"},"nativeSrc":"86340:32:22","nodeType":"YulFunctionCall","src":"86340:32:22"},"variableNames":[{"name":"instance","nativeSrc":"86328:8:22","nodeType":"YulIdentifier","src":"86328:8:22"}]},{"body":{"nativeSrc":"86413:140:22","nodeType":"YulBlock","src":"86413:140:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"86446:4:22","nodeType":"YulLiteral","src":"86446:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"86452:10:22","nodeType":"YulLiteral","src":"86452:10:22","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"86439:6:22","nodeType":"YulIdentifier","src":"86439:6:22"},"nativeSrc":"86439:24:22","nodeType":"YulFunctionCall","src":"86439:24:22"},"nativeSrc":"86439:24:22","nodeType":"YulExpressionStatement","src":"86439:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86520:4:22","nodeType":"YulLiteral","src":"86520:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"86526:4:22","nodeType":"YulLiteral","src":"86526:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"86513:6:22","nodeType":"YulIdentifier","src":"86513:6:22"},"nativeSrc":"86513:18:22","nodeType":"YulFunctionCall","src":"86513:18:22"},"nativeSrc":"86513:18:22","nodeType":"YulExpressionStatement","src":"86513:18:22"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"86403:8:22","nodeType":"YulIdentifier","src":"86403:8:22"}],"functionName":{"name":"iszero","nativeSrc":"86396:6:22","nodeType":"YulIdentifier","src":"86396:6:22"},"nativeSrc":"86396:16:22","nodeType":"YulFunctionCall","src":"86396:16:22"},"nativeSrc":"86393:160:22","nodeType":"YulIf","src":"86393:160:22"},{"nativeSrc":"86574:5:22","nodeType":"YulBreak","src":"86574:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"86295:8:22","nodeType":"YulIdentifier","src":"86295:8:22"}],"functionName":{"name":"extcodesize","nativeSrc":"86283:11:22","nodeType":"YulIdentifier","src":"86283:11:22"},"nativeSrc":"86283:21:22","nodeType":"YulFunctionCall","src":"86283:21:22"}],"functionName":{"name":"iszero","nativeSrc":"86276:6:22","nodeType":"YulIdentifier","src":"86276:6:22"},"nativeSrc":"86276:29:22","nodeType":"YulFunctionCall","src":"86276:29:22"},"nativeSrc":"86273:324:22","nodeType":"YulIf","src":"86273:324:22"},{"nativeSrc":"86614:20:22","nodeType":"YulAssignment","src":"86614:20:22","value":{"kind":"number","nativeSrc":"86633:1:22","nodeType":"YulLiteral","src":"86633:1:22","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"86614:15:22","nodeType":"YulIdentifier","src":"86614:15:22"}]},{"body":{"nativeSrc":"86668:9:22","nodeType":"YulBlock","src":"86668:9:22","statements":[{"nativeSrc":"86670:5:22","nodeType":"YulBreak","src":"86670:5:22"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"86661:5:22","nodeType":"YulIdentifier","src":"86661:5:22"}],"functionName":{"name":"iszero","nativeSrc":"86654:6:22","nodeType":"YulIdentifier","src":"86654:6:22"},"nativeSrc":"86654:13:22","nodeType":"YulFunctionCall","src":"86654:13:22"},"nativeSrc":"86651:26:22","nodeType":"YulIf","src":"86651:26:22"},{"body":{"nativeSrc":"86770:129:22","nodeType":"YulBlock","src":"86770:129:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"86799:4:22","nodeType":"YulLiteral","src":"86799:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"86805:10:22","nodeType":"YulLiteral","src":"86805:10:22","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"86792:6:22","nodeType":"YulIdentifier","src":"86792:6:22"},"nativeSrc":"86792:24:22","nodeType":"YulFunctionCall","src":"86792:24:22"},"nativeSrc":"86792:24:22","nodeType":"YulExpressionStatement","src":"86792:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86870:4:22","nodeType":"YulLiteral","src":"86870:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"86876:4:22","nodeType":"YulLiteral","src":"86876:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"86863:6:22","nodeType":"YulIdentifier","src":"86863:6:22"},"nativeSrc":"86863:18:22","nodeType":"YulFunctionCall","src":"86863:18:22"},"nativeSrc":"86863:18:22","nodeType":"YulExpressionStatement","src":"86863:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"86709:3:22","nodeType":"YulIdentifier","src":"86709:3:22"},"nativeSrc":"86709:5:22","nodeType":"YulFunctionCall","src":"86709:5:22"},{"name":"instance","nativeSrc":"86716:8:22","nodeType":"YulIdentifier","src":"86716:8:22"},{"name":"value","nativeSrc":"86726:5:22","nodeType":"YulIdentifier","src":"86726:5:22"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"86733:8:22","nodeType":"YulIdentifier","src":"86733:8:22"},"nativeSrc":"86733:10:22","nodeType":"YulFunctionCall","src":"86733:10:22"},{"kind":"number","nativeSrc":"86745:4:22","nodeType":"YulLiteral","src":"86745:4:22","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"86751:8:22","nodeType":"YulIdentifier","src":"86751:8:22"},"nativeSrc":"86751:10:22","nodeType":"YulFunctionCall","src":"86751:10:22"},{"kind":"number","nativeSrc":"86763:4:22","nodeType":"YulLiteral","src":"86763:4:22","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"86704:4:22","nodeType":"YulIdentifier","src":"86704:4:22"},"nativeSrc":"86704:64:22","nodeType":"YulFunctionCall","src":"86704:64:22"}],"functionName":{"name":"iszero","nativeSrc":"86697:6:22","nodeType":"YulIdentifier","src":"86697:6:22"},"nativeSrc":"86697:72:22","nodeType":"YulFunctionCall","src":"86697:72:22"},"nativeSrc":"86694:205:22","nodeType":"YulIf","src":"86694:205:22"},{"nativeSrc":"86916:5:22","nodeType":"YulBreak","src":"86916:5:22"}]},"condition":{"kind":"number","nativeSrc":"86250:1:22","nodeType":"YulLiteral","src":"86250:1:22","type":"","value":"1"},"nativeSrc":"86243:692:22","nodeType":"YulForLoop","post":{"nativeSrc":"86252:2:22","nodeType":"YulBlock","src":"86252:2:22","statements":[]},"pre":{"nativeSrc":"86247:2:22","nodeType":"YulBlock","src":"86247:2:22","statements":[]},"src":"86243:692:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86955:4:22","nodeType":"YulLiteral","src":"86955:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"86961:1:22","nodeType":"YulIdentifier","src":"86961:1:22"}],"functionName":{"name":"mstore","nativeSrc":"86948:6:22","nodeType":"YulIdentifier","src":"86948:6:22"},"nativeSrc":"86948:15:22","nodeType":"YulFunctionCall","src":"86948:15:22"},"nativeSrc":"86948:15:22","nodeType":"YulExpressionStatement","src":"86948:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87019:4:22","nodeType":"YulLiteral","src":"87019:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"87025:1:22","nodeType":"YulLiteral","src":"87025:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"87012:6:22","nodeType":"YulIdentifier","src":"87012:6:22"},"nativeSrc":"87012:15:22","nodeType":"YulFunctionCall","src":"87012:15:22"},"nativeSrc":"87012:15:22","nodeType":"YulExpressionStatement","src":"87012:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10014,"isOffset":false,"isSlot":false,"src":"86614:15:22","valueSize":1},{"declaration":10009,"isOffset":false,"isSlot":false,"src":"85938:6:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86200:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86295:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86328:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86403:8:22","valueSize":1},{"declaration":10016,"isOffset":false,"isSlot":false,"src":"86716:8:22","valueSize":1},{"declaration":10011,"isOffset":false,"isSlot":false,"src":"86182:4:22","valueSize":1},{"declaration":10011,"isOffset":false,"isSlot":false,"src":"86367:4:22","valueSize":1},{"declaration":10007,"isOffset":false,"isSlot":false,"src":"86348:5:22","valueSize":1},{"declaration":10007,"isOffset":false,"isSlot":false,"src":"86661:5:22","valueSize":1},{"declaration":10007,"isOffset":false,"isSlot":false,"src":"86726:5:22","valueSize":1}],"id":10018,"nodeType":"InlineAssembly","src":"85523:1540:22"}]},"documentation":{"id":10005,"nodeType":"StructuredDocumentation","src":"85030:265:22","text":"@dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":10020,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967BeaconProxy","nameLocation":"85309:37:22","nodeType":"FunctionDefinition","parameters":{"id":10012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10007,"mutability":"mutable","name":"value","nameLocation":"85355:5:22","nodeType":"VariableDeclaration","scope":10020,"src":"85347:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10006,"name":"uint256","nodeType":"ElementaryTypeName","src":"85347:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10009,"mutability":"mutable","name":"beacon","nameLocation":"85370:6:22","nodeType":"VariableDeclaration","scope":10020,"src":"85362:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10008,"name":"address","nodeType":"ElementaryTypeName","src":"85362:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10011,"mutability":"mutable","name":"salt","nameLocation":"85386:4:22","nodeType":"VariableDeclaration","scope":10020,"src":"85378:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85378:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"85346:45:22"},"returnParameters":{"id":10017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10014,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"85431:15:22","nodeType":"VariableDeclaration","scope":10020,"src":"85426:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10013,"name":"bool","nodeType":"ElementaryTypeName","src":"85426:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10016,"mutability":"mutable","name":"instance","nameLocation":"85456:8:22","nodeType":"VariableDeclaration","scope":10020,"src":"85448:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10015,"name":"address","nodeType":"ElementaryTypeName","src":"85448:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"85425:40:22"},"scope":10092,"src":"85300:1769:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10029,"nodeType":"Block","src":"87281:770:22","statements":[{"AST":{"nativeSrc":"87343:702:22","nodeType":"YulBlock","src":"87343:702:22","statements":[{"nativeSrc":"87357:21:22","nodeType":"YulAssignment","src":"87357:21:22","value":{"arguments":[{"kind":"number","nativeSrc":"87373:4:22","nodeType":"YulLiteral","src":"87373:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"87367:5:22","nodeType":"YulIdentifier","src":"87367:5:22"},"nativeSrc":"87367:11:22","nodeType":"YulFunctionCall","src":"87367:11:22"},"variableNames":[{"name":"result","nativeSrc":"87357:6:22","nodeType":"YulIdentifier","src":"87357:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87419:6:22","nodeType":"YulIdentifier","src":"87419:6:22"},{"kind":"number","nativeSrc":"87427:4:22","nodeType":"YulLiteral","src":"87427:4:22","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"87415:3:22","nodeType":"YulIdentifier","src":"87415:3:22"},"nativeSrc":"87415:17:22","nodeType":"YulFunctionCall","src":"87415:17:22"},{"kind":"number","nativeSrc":"87450:66:22","nodeType":"YulLiteral","src":"87450:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"87391:6:22","nodeType":"YulIdentifier","src":"87391:6:22"},"nativeSrc":"87391:139:22","nodeType":"YulFunctionCall","src":"87391:139:22"},"nativeSrc":"87391:139:22","nodeType":"YulExpressionStatement","src":"87391:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87571:6:22","nodeType":"YulIdentifier","src":"87571:6:22"},{"kind":"number","nativeSrc":"87579:4:22","nodeType":"YulLiteral","src":"87579:4:22","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"87567:3:22","nodeType":"YulIdentifier","src":"87567:3:22"},"nativeSrc":"87567:17:22","nodeType":"YulFunctionCall","src":"87567:17:22"},{"kind":"number","nativeSrc":"87602:66:22","nodeType":"YulLiteral","src":"87602:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"87543:6:22","nodeType":"YulIdentifier","src":"87543:6:22"},"nativeSrc":"87543:139:22","nodeType":"YulFunctionCall","src":"87543:139:22"},"nativeSrc":"87543:139:22","nodeType":"YulExpressionStatement","src":"87543:139:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87706:6:22","nodeType":"YulIdentifier","src":"87706:6:22"},{"kind":"number","nativeSrc":"87714:4:22","nodeType":"YulLiteral","src":"87714:4:22","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"87702:3:22","nodeType":"YulIdentifier","src":"87702:3:22"},"nativeSrc":"87702:17:22","nodeType":"YulFunctionCall","src":"87702:17:22"},{"kind":"number","nativeSrc":"87721:48:22","nodeType":"YulLiteral","src":"87721:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"87695:6:22","nodeType":"YulIdentifier","src":"87695:6:22"},"nativeSrc":"87695:75:22","nodeType":"YulFunctionCall","src":"87695:75:22"},"nativeSrc":"87695:75:22","nodeType":"YulExpressionStatement","src":"87695:75:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87794:6:22","nodeType":"YulIdentifier","src":"87794:6:22"},{"kind":"number","nativeSrc":"87802:4:22","nodeType":"YulLiteral","src":"87802:4:22","type":"","value":"0x1d"}],"functionName":{"name":"add","nativeSrc":"87790:3:22","nodeType":"YulIdentifier","src":"87790:3:22"},"nativeSrc":"87790:17:22","nodeType":"YulFunctionCall","src":"87790:17:22"},{"name":"beacon","nativeSrc":"87809:6:22","nodeType":"YulIdentifier","src":"87809:6:22"}],"functionName":{"name":"mstore","nativeSrc":"87783:6:22","nodeType":"YulIdentifier","src":"87783:6:22"},"nativeSrc":"87783:33:22","nodeType":"YulFunctionCall","src":"87783:33:22"},"nativeSrc":"87783:33:22","nodeType":"YulExpressionStatement","src":"87783:33:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87840:6:22","nodeType":"YulIdentifier","src":"87840:6:22"},{"kind":"number","nativeSrc":"87848:4:22","nodeType":"YulLiteral","src":"87848:4:22","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"87836:3:22","nodeType":"YulIdentifier","src":"87836:3:22"},"nativeSrc":"87836:17:22","nodeType":"YulFunctionCall","src":"87836:17:22"},{"kind":"number","nativeSrc":"87855:20:22","nodeType":"YulLiteral","src":"87855:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"87829:6:22","nodeType":"YulIdentifier","src":"87829:6:22"},"nativeSrc":"87829:47:22","nodeType":"YulFunctionCall","src":"87829:47:22"},"nativeSrc":"87829:47:22","nodeType":"YulExpressionStatement","src":"87829:47:22"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87900:6:22","nodeType":"YulIdentifier","src":"87900:6:22"},{"kind":"number","nativeSrc":"87908:4:22","nodeType":"YulLiteral","src":"87908:4:22","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"87896:3:22","nodeType":"YulIdentifier","src":"87896:3:22"},"nativeSrc":"87896:17:22","nodeType":"YulFunctionCall","src":"87896:17:22"},{"kind":"number","nativeSrc":"87915:1:22","nodeType":"YulLiteral","src":"87915:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"87889:6:22","nodeType":"YulIdentifier","src":"87889:6:22"},"nativeSrc":"87889:28:22","nodeType":"YulFunctionCall","src":"87889:28:22"},"nativeSrc":"87889:28:22","nodeType":"YulExpressionStatement","src":"87889:28:22"},{"expression":{"arguments":[{"name":"result","nativeSrc":"87937:6:22","nodeType":"YulIdentifier","src":"87937:6:22"},{"kind":"number","nativeSrc":"87945:4:22","nodeType":"YulLiteral","src":"87945:4:22","type":"","value":"0x74"}],"functionName":{"name":"mstore","nativeSrc":"87930:6:22","nodeType":"YulIdentifier","src":"87930:6:22"},"nativeSrc":"87930:20:22","nodeType":"YulFunctionCall","src":"87930:20:22"},"nativeSrc":"87930:20:22","nodeType":"YulExpressionStatement","src":"87930:20:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87991:4:22","nodeType":"YulLiteral","src":"87991:4:22","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"88001:6:22","nodeType":"YulIdentifier","src":"88001:6:22"},{"kind":"number","nativeSrc":"88009:4:22","nodeType":"YulLiteral","src":"88009:4:22","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"87997:3:22","nodeType":"YulIdentifier","src":"87997:3:22"},"nativeSrc":"87997:17:22","nodeType":"YulFunctionCall","src":"87997:17:22"}],"functionName":{"name":"mstore","nativeSrc":"87984:6:22","nodeType":"YulIdentifier","src":"87984:6:22"},"nativeSrc":"87984:31:22","nodeType":"YulFunctionCall","src":"87984:31:22"},"nativeSrc":"87984:31:22","nodeType":"YulExpressionStatement","src":"87984:31:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10023,"isOffset":false,"isSlot":false,"src":"87809:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87357:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87419:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87571:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87706:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87794:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87840:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87900:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"87937:6:22","valueSize":1},{"declaration":10026,"isOffset":false,"isSlot":false,"src":"88001:6:22","valueSize":1}],"id":10028,"nodeType":"InlineAssembly","src":"87334:711:22"}]},"documentation":{"id":10021,"nodeType":"StructuredDocumentation","src":"87075:77:22","text":"@dev Returns the initialization code of the minimal ERC1967 beacon proxy."},"id":10030,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967BeaconProxy","nameLocation":"87166:26:22","nodeType":"FunctionDefinition","parameters":{"id":10024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10023,"mutability":"mutable","name":"beacon","nameLocation":"87201:6:22","nodeType":"VariableDeclaration","scope":10030,"src":"87193:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10022,"name":"address","nodeType":"ElementaryTypeName","src":"87193:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"87192:16:22"},"returnParameters":{"id":10027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10026,"mutability":"mutable","name":"result","nameLocation":"87269:6:22","nodeType":"VariableDeclaration","scope":10030,"src":"87256:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10025,"name":"bytes","nodeType":"ElementaryTypeName","src":"87256:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"87255:21:22"},"scope":10092,"src":"87157:894:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10039,"nodeType":"Block","src":"88298:654:22","statements":[{"AST":{"nativeSrc":"88360:586:22","nodeType":"YulBlock","src":"88360:586:22","statements":[{"nativeSrc":"88374:20:22","nodeType":"YulVariableDeclaration","src":"88374:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"88389:4:22","nodeType":"YulLiteral","src":"88389:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"88383:5:22","nodeType":"YulIdentifier","src":"88383:5:22"},"nativeSrc":"88383:11:22","nodeType":"YulFunctionCall","src":"88383:11:22"},"variables":[{"name":"m","nativeSrc":"88378:1:22","nodeType":"YulTypedName","src":"88378:1:22","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88448:4:22","nodeType":"YulLiteral","src":"88448:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"88454:66:22","nodeType":"YulLiteral","src":"88454:66:22","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"88441:6:22","nodeType":"YulIdentifier","src":"88441:6:22"},"nativeSrc":"88441:80:22","nodeType":"YulFunctionCall","src":"88441:80:22"},"nativeSrc":"88441:80:22","nodeType":"YulExpressionStatement","src":"88441:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88541:4:22","nodeType":"YulLiteral","src":"88541:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"88547:66:22","nodeType":"YulLiteral","src":"88547:66:22","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"88534:6:22","nodeType":"YulIdentifier","src":"88534:6:22"},"nativeSrc":"88534:80:22","nodeType":"YulFunctionCall","src":"88534:80:22"},"nativeSrc":"88534:80:22","nodeType":"YulExpressionStatement","src":"88534:80:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88634:4:22","nodeType":"YulLiteral","src":"88634:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"88640:48:22","nodeType":"YulLiteral","src":"88640:48:22","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"88627:6:22","nodeType":"YulIdentifier","src":"88627:6:22"},"nativeSrc":"88627:62:22","nodeType":"YulFunctionCall","src":"88627:62:22"},"nativeSrc":"88627:62:22","nodeType":"YulExpressionStatement","src":"88627:62:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88709:4:22","nodeType":"YulLiteral","src":"88709:4:22","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"88722:3:22","nodeType":"YulLiteral","src":"88722:3:22","type":"","value":"160"},{"kind":"number","nativeSrc":"88727:20:22","nodeType":"YulLiteral","src":"88727:20:22","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"88718:3:22","nodeType":"YulIdentifier","src":"88718:3:22"},"nativeSrc":"88718:30:22","nodeType":"YulFunctionCall","src":"88718:30:22"},{"arguments":[{"kind":"number","nativeSrc":"88754:2:22","nodeType":"YulLiteral","src":"88754:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"88762:2:22","nodeType":"YulLiteral","src":"88762:2:22","type":"","value":"96"},{"name":"beacon","nativeSrc":"88766:6:22","nodeType":"YulIdentifier","src":"88766:6:22"}],"functionName":{"name":"shl","nativeSrc":"88758:3:22","nodeType":"YulIdentifier","src":"88758:3:22"},"nativeSrc":"88758:15:22","nodeType":"YulFunctionCall","src":"88758:15:22"}],"functionName":{"name":"shr","nativeSrc":"88750:3:22","nodeType":"YulIdentifier","src":"88750:3:22"},"nativeSrc":"88750:24:22","nodeType":"YulFunctionCall","src":"88750:24:22"}],"functionName":{"name":"or","nativeSrc":"88715:2:22","nodeType":"YulIdentifier","src":"88715:2:22"},"nativeSrc":"88715:60:22","nodeType":"YulFunctionCall","src":"88715:60:22"}],"functionName":{"name":"mstore","nativeSrc":"88702:6:22","nodeType":"YulIdentifier","src":"88702:6:22"},"nativeSrc":"88702:74:22","nodeType":"YulFunctionCall","src":"88702:74:22"},"nativeSrc":"88702:74:22","nodeType":"YulExpressionStatement","src":"88702:74:22"},{"nativeSrc":"88789:29:22","nodeType":"YulAssignment","src":"88789:29:22","value":{"arguments":[{"kind":"number","nativeSrc":"88807:4:22","nodeType":"YulLiteral","src":"88807:4:22","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"88813:4:22","nodeType":"YulLiteral","src":"88813:4:22","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"88797:9:22","nodeType":"YulIdentifier","src":"88797:9:22"},"nativeSrc":"88797:21:22","nodeType":"YulFunctionCall","src":"88797:21:22"},"variableNames":[{"name":"hash","nativeSrc":"88789:4:22","nodeType":"YulIdentifier","src":"88789:4:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88838:4:22","nodeType":"YulLiteral","src":"88838:4:22","type":"","value":"0x40"},{"name":"m","nativeSrc":"88844:1:22","nodeType":"YulIdentifier","src":"88844:1:22"}],"functionName":{"name":"mstore","nativeSrc":"88831:6:22","nodeType":"YulIdentifier","src":"88831:6:22"},"nativeSrc":"88831:15:22","nodeType":"YulFunctionCall","src":"88831:15:22"},"nativeSrc":"88831:15:22","nodeType":"YulExpressionStatement","src":"88831:15:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88902:4:22","nodeType":"YulLiteral","src":"88902:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"88908:1:22","nodeType":"YulLiteral","src":"88908:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"88895:6:22","nodeType":"YulIdentifier","src":"88895:6:22"},"nativeSrc":"88895:15:22","nodeType":"YulFunctionCall","src":"88895:15:22"},"nativeSrc":"88895:15:22","nodeType":"YulExpressionStatement","src":"88895:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10033,"isOffset":false,"isSlot":false,"src":"88766:6:22","valueSize":1},{"declaration":10036,"isOffset":false,"isSlot":false,"src":"88789:4:22","valueSize":1}],"id":10038,"nodeType":"InlineAssembly","src":"88351:595:22"}]},"documentation":{"id":10031,"nodeType":"StructuredDocumentation","src":"88057:143:22","text":"@dev Returns the initialization code hash of the minimal ERC1967 beacon proxy.\n Used for mining vanity addresses with create2crunch."},"id":10040,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967BeaconProxy","nameLocation":"88214:30:22","nodeType":"FunctionDefinition","parameters":{"id":10034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10033,"mutability":"mutable","name":"beacon","nameLocation":"88253:6:22","nodeType":"VariableDeclaration","scope":10040,"src":"88245:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10032,"name":"address","nodeType":"ElementaryTypeName","src":"88245:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"88244:16:22"},"returnParameters":{"id":10037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10036,"mutability":"mutable","name":"hash","nameLocation":"88292:4:22","nodeType":"VariableDeclaration","scope":10040,"src":"88284:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88284:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"88283:14:22"},"scope":10092,"src":"88205:747:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10066,"nodeType":"Block","src":"89337:141:22","statements":[{"assignments":[10053],"declarations":[{"constant":false,"id":10053,"mutability":"mutable","name":"hash","nameLocation":"89355:4:22","nodeType":"VariableDeclaration","scope":10066,"src":"89347:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89347:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10057,"initialValue":{"arguments":[{"id":10055,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10043,"src":"89393:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10054,"name":"initCodeHashERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"89362:30:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":10056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"89362:38:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"89347:53:22"},{"expression":{"id":10064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10058,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10050,"src":"89410:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10060,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10053,"src":"89450:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10061,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10045,"src":"89456:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10062,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10047,"src":"89462:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10059,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9357,9590,10081],"referencedDeclaration":10081,"src":"89422:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":10063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"89422:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"89410:61:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10065,"nodeType":"ExpressionStatement","src":"89410:61:22"}]},"documentation":{"id":10041,"nodeType":"StructuredDocumentation","src":"88958:199:22","text":"@dev Returns the address of the deterministic ERC1967 beacon proxy,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":10067,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967BeaconProxy","nameLocation":"89171:45:22","nodeType":"FunctionDefinition","parameters":{"id":10048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10043,"mutability":"mutable","name":"beacon","nameLocation":"89234:6:22","nodeType":"VariableDeclaration","scope":10067,"src":"89226:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10042,"name":"address","nodeType":"ElementaryTypeName","src":"89226:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10045,"mutability":"mutable","name":"salt","nameLocation":"89258:4:22","nodeType":"VariableDeclaration","scope":10067,"src":"89250:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89250:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10047,"mutability":"mutable","name":"deployer","nameLocation":"89280:8:22","nodeType":"VariableDeclaration","scope":10067,"src":"89272:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10046,"name":"address","nodeType":"ElementaryTypeName","src":"89272:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"89216:78:22"},"returnParameters":{"id":10051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10050,"mutability":"mutable","name":"predicted","nameLocation":"89326:9:22","nodeType":"VariableDeclaration","scope":10067,"src":"89318:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10049,"name":"address","nodeType":"ElementaryTypeName","src":"89318:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"89317:19:22"},"scope":10092,"src":"89162:316:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10080,"nodeType":"Block","src":"90149:425:22","statements":[{"AST":{"nativeSrc":"90211:357:22","nodeType":"YulBlock","src":"90211:357:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"90285:4:22","nodeType":"YulLiteral","src":"90285:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90291:4:22","nodeType":"YulLiteral","src":"90291:4:22","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"90277:7:22","nodeType":"YulIdentifier","src":"90277:7:22"},"nativeSrc":"90277:19:22","nodeType":"YulFunctionCall","src":"90277:19:22"},"nativeSrc":"90277:19:22","nodeType":"YulExpressionStatement","src":"90277:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90337:4:22","nodeType":"YulLiteral","src":"90337:4:22","type":"","value":"0x35"},{"name":"hash","nativeSrc":"90343:4:22","nodeType":"YulIdentifier","src":"90343:4:22"}],"functionName":{"name":"mstore","nativeSrc":"90330:6:22","nodeType":"YulIdentifier","src":"90330:6:22"},"nativeSrc":"90330:18:22","nodeType":"YulFunctionCall","src":"90330:18:22"},"nativeSrc":"90330:18:22","nodeType":"YulExpressionStatement","src":"90330:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90368:4:22","nodeType":"YulLiteral","src":"90368:4:22","type":"","value":"0x01"},{"arguments":[{"kind":"number","nativeSrc":"90378:2:22","nodeType":"YulLiteral","src":"90378:2:22","type":"","value":"96"},{"name":"deployer","nativeSrc":"90382:8:22","nodeType":"YulIdentifier","src":"90382:8:22"}],"functionName":{"name":"shl","nativeSrc":"90374:3:22","nodeType":"YulIdentifier","src":"90374:3:22"},"nativeSrc":"90374:17:22","nodeType":"YulFunctionCall","src":"90374:17:22"}],"functionName":{"name":"mstore","nativeSrc":"90361:6:22","nodeType":"YulIdentifier","src":"90361:6:22"},"nativeSrc":"90361:31:22","nodeType":"YulFunctionCall","src":"90361:31:22"},"nativeSrc":"90361:31:22","nodeType":"YulExpressionStatement","src":"90361:31:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90412:4:22","nodeType":"YulLiteral","src":"90412:4:22","type":"","value":"0x15"},{"name":"salt","nativeSrc":"90418:4:22","nodeType":"YulIdentifier","src":"90418:4:22"}],"functionName":{"name":"mstore","nativeSrc":"90405:6:22","nodeType":"YulIdentifier","src":"90405:6:22"},"nativeSrc":"90405:18:22","nodeType":"YulFunctionCall","src":"90405:18:22"},"nativeSrc":"90405:18:22","nodeType":"YulExpressionStatement","src":"90405:18:22"},{"nativeSrc":"90436:34:22","nodeType":"YulAssignment","src":"90436:34:22","value":{"arguments":[{"kind":"number","nativeSrc":"90459:4:22","nodeType":"YulLiteral","src":"90459:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90465:4:22","nodeType":"YulLiteral","src":"90465:4:22","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"90449:9:22","nodeType":"YulIdentifier","src":"90449:9:22"},"nativeSrc":"90449:21:22","nodeType":"YulFunctionCall","src":"90449:21:22"},"variableNames":[{"name":"predicted","nativeSrc":"90436:9:22","nodeType":"YulIdentifier","src":"90436:9:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90490:4:22","nodeType":"YulLiteral","src":"90490:4:22","type":"","value":"0x35"},{"kind":"number","nativeSrc":"90496:1:22","nodeType":"YulLiteral","src":"90496:1:22","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"90483:6:22","nodeType":"YulIdentifier","src":"90483:6:22"},"nativeSrc":"90483:15:22","nodeType":"YulFunctionCall","src":"90483:15:22"},"nativeSrc":"90483:15:22","nodeType":"YulExpressionStatement","src":"90483:15:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10074,"isOffset":false,"isSlot":false,"src":"90382:8:22","valueSize":1},{"declaration":10070,"isOffset":false,"isSlot":false,"src":"90343:4:22","valueSize":1},{"declaration":10077,"isOffset":false,"isSlot":false,"src":"90436:9:22","valueSize":1},{"declaration":10072,"isOffset":false,"isSlot":false,"src":"90418:4:22","valueSize":1}],"id":10079,"nodeType":"InlineAssembly","src":"90202:366:22"}]},"documentation":{"id":10068,"nodeType":"StructuredDocumentation","src":"89767:224:22","text":"@dev Returns the address when a contract with initialization code hash,\n `hash`, is deployed with `salt`, by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":10081,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"90005:27:22","nodeType":"FunctionDefinition","parameters":{"id":10075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10070,"mutability":"mutable","name":"hash","nameLocation":"90041:4:22","nodeType":"VariableDeclaration","scope":10081,"src":"90033:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90033:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10072,"mutability":"mutable","name":"salt","nameLocation":"90055:4:22","nodeType":"VariableDeclaration","scope":10081,"src":"90047:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90047:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10074,"mutability":"mutable","name":"deployer","nameLocation":"90069:8:22","nodeType":"VariableDeclaration","scope":10081,"src":"90061:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10073,"name":"address","nodeType":"ElementaryTypeName","src":"90061:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90032:46:22"},"returnParameters":{"id":10078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10077,"mutability":"mutable","name":"predicted","nameLocation":"90134:9:22","nodeType":"VariableDeclaration","scope":10081,"src":"90126:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10076,"name":"address","nodeType":"ElementaryTypeName","src":"90126:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90125:19:22"},"scope":10092,"src":"89996:578:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10090,"nodeType":"Block","src":"90724:363:22","statements":[{"AST":{"nativeSrc":"90786:295:22","nodeType":"YulBlock","src":"90786:295:22","statements":[{"body":{"nativeSrc":"90951:120:22","nodeType":"YulBlock","src":"90951:120:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"90976:4:22","nodeType":"YulLiteral","src":"90976:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90982:10:22","nodeType":"YulLiteral","src":"90982:10:22","type":"","value":"0x0c4549ef"}],"functionName":{"name":"mstore","nativeSrc":"90969:6:22","nodeType":"YulIdentifier","src":"90969:6:22"},"nativeSrc":"90969:24:22","nodeType":"YulFunctionCall","src":"90969:24:22"},"nativeSrc":"90969:24:22","nodeType":"YulExpressionStatement","src":"90969:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91046:4:22","nodeType":"YulLiteral","src":"91046:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"91052:4:22","nodeType":"YulLiteral","src":"91052:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"91039:6:22","nodeType":"YulIdentifier","src":"91039:6:22"},"nativeSrc":"91039:18:22","nodeType":"YulFunctionCall","src":"91039:18:22"},"nativeSrc":"91039:18:22","nodeType":"YulExpressionStatement","src":"91039:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"90897:2:22","nodeType":"YulLiteral","src":"90897:2:22","type":"","value":"96"},{"name":"salt","nativeSrc":"90901:4:22","nodeType":"YulIdentifier","src":"90901:4:22"}],"functionName":{"name":"shr","nativeSrc":"90893:3:22","nodeType":"YulIdentifier","src":"90893:3:22"},"nativeSrc":"90893:13:22","nodeType":"YulFunctionCall","src":"90893:13:22"}],"functionName":{"name":"iszero","nativeSrc":"90886:6:22","nodeType":"YulIdentifier","src":"90886:6:22"},"nativeSrc":"90886:21:22","nodeType":"YulFunctionCall","src":"90886:21:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"90916:2:22","nodeType":"YulLiteral","src":"90916:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"90924:2:22","nodeType":"YulLiteral","src":"90924:2:22","type":"","value":"96"},{"name":"by","nativeSrc":"90928:2:22","nodeType":"YulIdentifier","src":"90928:2:22"}],"functionName":{"name":"shl","nativeSrc":"90920:3:22","nodeType":"YulIdentifier","src":"90920:3:22"},"nativeSrc":"90920:11:22","nodeType":"YulFunctionCall","src":"90920:11:22"}],"functionName":{"name":"shr","nativeSrc":"90912:3:22","nodeType":"YulIdentifier","src":"90912:3:22"},"nativeSrc":"90912:20:22","nodeType":"YulFunctionCall","src":"90912:20:22"},{"arguments":[{"kind":"number","nativeSrc":"90938:2:22","nodeType":"YulLiteral","src":"90938:2:22","type":"","value":"96"},{"name":"salt","nativeSrc":"90942:4:22","nodeType":"YulIdentifier","src":"90942:4:22"}],"functionName":{"name":"shr","nativeSrc":"90934:3:22","nodeType":"YulIdentifier","src":"90934:3:22"},"nativeSrc":"90934:13:22","nodeType":"YulFunctionCall","src":"90934:13:22"}],"functionName":{"name":"eq","nativeSrc":"90909:2:22","nodeType":"YulIdentifier","src":"90909:2:22"},"nativeSrc":"90909:39:22","nodeType":"YulFunctionCall","src":"90909:39:22"}],"functionName":{"name":"or","nativeSrc":"90883:2:22","nodeType":"YulIdentifier","src":"90883:2:22"},"nativeSrc":"90883:66:22","nodeType":"YulFunctionCall","src":"90883:66:22"}],"functionName":{"name":"iszero","nativeSrc":"90876:6:22","nodeType":"YulIdentifier","src":"90876:6:22"},"nativeSrc":"90876:74:22","nodeType":"YulFunctionCall","src":"90876:74:22"},"nativeSrc":"90873:198:22","nodeType":"YulIf","src":"90873:198:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10086,"isOffset":false,"isSlot":false,"src":"90928:2:22","valueSize":1},{"declaration":10084,"isOffset":false,"isSlot":false,"src":"90901:4:22","valueSize":1},{"declaration":10084,"isOffset":false,"isSlot":false,"src":"90942:4:22","valueSize":1}],"id":10089,"nodeType":"InlineAssembly","src":"90777:304:22"}]},"documentation":{"id":10082,"nodeType":"StructuredDocumentation","src":"90580:74:22","text":"@dev Requires that `salt` starts with either the zero address or `by`."},"id":10091,"implemented":true,"kind":"function","modifiers":[],"name":"checkStartsWith","nameLocation":"90668:15:22","nodeType":"FunctionDefinition","parameters":{"id":10087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10084,"mutability":"mutable","name":"salt","nameLocation":"90692:4:22","nodeType":"VariableDeclaration","scope":10091,"src":"90684:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90684:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10086,"mutability":"mutable","name":"by","nameLocation":"90706:2:22","nodeType":"VariableDeclaration","scope":10091,"src":"90698:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10085,"name":"address","nodeType":"ElementaryTypeName","src":"90698:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90683:26:22"},"returnParameters":{"id":10088,"nodeType":"ParameterList","parameters":[],"src":"90724:0:22"},"scope":10092,"src":"90659:428:22","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10093,"src":"2217:88872:22","usedErrors":[9243,9246,9249],"usedEvents":[]}],"src":"32:91058:22"},"id":22},"@solady/utils/LibPRNG.sol":{"ast":{"absolutePath":"@solady/utils/LibPRNG.sol","exportedSymbols":{"LibPRNG":[10307]},"id":10308,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10094,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:23"},{"abstract":false,"baseContracts":[],"canonicalName":"LibPRNG","contractDependencies":[],"contractKind":"library","documentation":{"id":10095,"nodeType":"StructuredDocumentation","src":"57:318:23","text":"@notice Library for generating pseudorandom numbers.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)\n @author LazyShuffler based on NextShuffler by aschlosberg (divergencearran)\n (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)"},"fullyImplemented":true,"id":10307,"linearizedBaseContracts":[10307],"name":"LibPRNG","nameLocation":"383:7:23","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10096,"nodeType":"StructuredDocumentation","src":"680:80:23","text":"@dev The initial length must be greater than zero and less than `2**32 - 1`."},"errorSelector":"83b53941","id":10098,"name":"InvalidInitialLazyShufflerLength","nameLocation":"771:32:23","nodeType":"ErrorDefinition","parameters":{"id":10097,"nodeType":"ParameterList","parameters":[],"src":"803:2:23"},"src":"765:41:23"},{"documentation":{"id":10099,"nodeType":"StructuredDocumentation","src":"812:65:23","text":"@dev The new length must not be less than the current length."},"errorSelector":"bed37c6e","id":10101,"name":"InvalidNewLazyShufflerLength","nameLocation":"888:28:23","nodeType":"ErrorDefinition","parameters":{"id":10100,"nodeType":"ParameterList","parameters":[],"src":"916:2:23"},"src":"882:37:23"},{"documentation":{"id":10102,"nodeType":"StructuredDocumentation","src":"925:52:23","text":"@dev The lazy shuffler has not been initialized."},"errorSelector":"1ead2566","id":10104,"name":"LazyShufflerNotInitialized","nameLocation":"988:26:23","nodeType":"ErrorDefinition","parameters":{"id":10103,"nodeType":"ParameterList","parameters":[],"src":"1014:2:23"},"src":"982:35:23"},{"documentation":{"id":10105,"nodeType":"StructuredDocumentation","src":"1023:52:23","text":"@dev Cannot double initialize the lazy shuffler."},"errorSelector":"0c9f11f2","id":10107,"name":"LazyShufflerAlreadyInitialized","nameLocation":"1086:30:23","nodeType":"ErrorDefinition","parameters":{"id":10106,"nodeType":"ParameterList","parameters":[],"src":"1116:2:23"},"src":"1080:39:23"},{"documentation":{"id":10108,"nodeType":"StructuredDocumentation","src":"1125:39:23","text":"@dev The lazy shuffle has finished."},"errorSelector":"51065f79","id":10110,"name":"LazyShuffleFinished","nameLocation":"1175:19:23","nodeType":"ErrorDefinition","parameters":{"id":10109,"nodeType":"ParameterList","parameters":[],"src":"1194:2:23"},"src":"1169:28:23"},{"documentation":{"id":10111,"nodeType":"StructuredDocumentation","src":"1203:44:23","text":"@dev The queried index is out of bounds."},"errorSelector":"61367cc4","id":10113,"name":"LazyShufflerGetOutOfBounds","nameLocation":"1258:26:23","nodeType":"ErrorDefinition","parameters":{"id":10112,"nodeType":"ParameterList","parameters":[],"src":"1284:2:23"},"src":"1252:35:23"},{"constant":true,"documentation":{"id":10114,"nodeType":"StructuredDocumentation","src":"1576:43:23","text":"@dev The scalar of ETH and most ERC20s."},"id":10117,"mutability":"constant","name":"WAD","nameLocation":"1650:3:23","nodeType":"VariableDeclaration","scope":10307,"src":"1624:36:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10115,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":10116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1656:4:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"canonicalName":"LibPRNG.PRNG","documentation":{"id":10118,"nodeType":"StructuredDocumentation","src":"1950:47:23","text":"@dev A pseudorandom number state in memory."},"id":10121,"members":[{"constant":false,"id":10120,"mutability":"mutable","name":"state","nameLocation":"2032:5:23","nodeType":"VariableDeclaration","scope":10121,"src":"2024:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10119,"name":"uint256","nodeType":"ElementaryTypeName","src":"2024:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PRNG","nameLocation":"2009:4:23","nodeType":"StructDefinition","scope":10307,"src":"2002:42:23","visibility":"public"},{"canonicalName":"LibPRNG.LazyShuffler","documentation":{"id":10122,"nodeType":"StructuredDocumentation","src":"2050:70:23","text":"@dev A lazy Fisher-Yates shuffler for a range `[0..n)` in storage."},"id":10125,"members":[{"constant":false,"id":10124,"mutability":"mutable","name":"_state","nameLocation":"2300:6:23","nodeType":"VariableDeclaration","scope":10125,"src":"2292:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10123,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"LazyShuffler","nameLocation":"2132:12:23","nodeType":"StructDefinition","scope":10307,"src":"2125:188:23","visibility":"public"},{"body":{"id":10135,"nodeType":"Block","src":"2707:111:23","statements":[{"AST":{"nativeSrc":"2769:43:23","nodeType":"YulBlock","src":"2769:43:23","statements":[{"expression":{"arguments":[{"name":"prng","nativeSrc":"2790:4:23","nodeType":"YulIdentifier","src":"2790:4:23"},{"name":"state","nativeSrc":"2796:5:23","nodeType":"YulIdentifier","src":"2796:5:23"}],"functionName":{"name":"mstore","nativeSrc":"2783:6:23","nodeType":"YulIdentifier","src":"2783:6:23"},"nativeSrc":"2783:19:23","nodeType":"YulFunctionCall","src":"2783:19:23"},"nativeSrc":"2783:19:23","nodeType":"YulExpressionStatement","src":"2783:19:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10129,"isOffset":false,"isSlot":false,"src":"2790:4:23","valueSize":1},{"declaration":10131,"isOffset":false,"isSlot":false,"src":"2796:5:23","valueSize":1}],"id":10134,"nodeType":"InlineAssembly","src":"2760:52:23"}]},"documentation":{"id":10126,"nodeType":"StructuredDocumentation","src":"2602:39:23","text":"@dev Seeds the `prng` with `state`."},"id":10136,"implemented":true,"kind":"function","modifiers":[],"name":"seed","nameLocation":"2655:4:23","nodeType":"FunctionDefinition","parameters":{"id":10132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10129,"mutability":"mutable","name":"prng","nameLocation":"2672:4:23","nodeType":"VariableDeclaration","scope":10136,"src":"2660:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10128,"nodeType":"UserDefinedTypeName","pathNode":{"id":10127,"name":"PRNG","nameLocations":["2660:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"2660:4:23"},"referencedDeclaration":10121,"src":"2660:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10131,"mutability":"mutable","name":"state","nameLocation":"2686:5:23","nodeType":"VariableDeclaration","scope":10136,"src":"2678:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10130,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2659:33:23"},"returnParameters":{"id":10133,"nodeType":"ParameterList","parameters":[],"src":"2707:0:23"},"scope":10307,"src":"2646:172:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10146,"nodeType":"Block","src":"3026:685:23","statements":[{"AST":{"nativeSrc":"3617:88:23","nodeType":"YulBlock","src":"3617:88:23","statements":[{"nativeSrc":"3631:31:23","nodeType":"YulAssignment","src":"3631:31:23","value":{"arguments":[{"name":"prng","nativeSrc":"3651:4:23","nodeType":"YulIdentifier","src":"3651:4:23"},{"kind":"number","nativeSrc":"3657:4:23","nodeType":"YulLiteral","src":"3657:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"3641:9:23","nodeType":"YulIdentifier","src":"3641:9:23"},"nativeSrc":"3641:21:23","nodeType":"YulFunctionCall","src":"3641:21:23"},"variableNames":[{"name":"result","nativeSrc":"3631:6:23","nodeType":"YulIdentifier","src":"3631:6:23"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"3682:4:23","nodeType":"YulIdentifier","src":"3682:4:23"},{"name":"result","nativeSrc":"3688:6:23","nodeType":"YulIdentifier","src":"3688:6:23"}],"functionName":{"name":"mstore","nativeSrc":"3675:6:23","nodeType":"YulIdentifier","src":"3675:6:23"},"nativeSrc":"3675:20:23","nodeType":"YulFunctionCall","src":"3675:20:23"},"nativeSrc":"3675:20:23","nodeType":"YulExpressionStatement","src":"3675:20:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10140,"isOffset":false,"isSlot":false,"src":"3651:4:23","valueSize":1},{"declaration":10140,"isOffset":false,"isSlot":false,"src":"3682:4:23","valueSize":1},{"declaration":10143,"isOffset":false,"isSlot":false,"src":"3631:6:23","valueSize":1},{"declaration":10143,"isOffset":false,"isSlot":false,"src":"3688:6:23","valueSize":1}],"id":10145,"nodeType":"InlineAssembly","src":"3608:97:23"}]},"documentation":{"id":10137,"nodeType":"StructuredDocumentation","src":"2824:126:23","text":"@dev Returns the next pseudorandom uint256.\n All bits of the returned uint256 pass the NIST Statistical Test Suite."},"id":10147,"implemented":true,"kind":"function","modifiers":[],"name":"next","nameLocation":"2964:4:23","nodeType":"FunctionDefinition","parameters":{"id":10141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10140,"mutability":"mutable","name":"prng","nameLocation":"2981:4:23","nodeType":"VariableDeclaration","scope":10147,"src":"2969:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10139,"nodeType":"UserDefinedTypeName","pathNode":{"id":10138,"name":"PRNG","nameLocations":["2969:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"2969:4:23"},"referencedDeclaration":10121,"src":"2969:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"2968:18:23"},"returnParameters":{"id":10144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10143,"mutability":"mutable","name":"result","nameLocation":"3018:6:23","nodeType":"VariableDeclaration","scope":10147,"src":"3010:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10142,"name":"uint256","nodeType":"ElementaryTypeName","src":"3010:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3009:16:23"},"scope":10307,"src":"2955:756:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10159,"nodeType":"Block","src":"4190:320:23","statements":[{"AST":{"nativeSrc":"4252:252:23","nodeType":"YulBlock","src":"4252:252:23","statements":[{"body":{"nativeSrc":"4278:175:23","nodeType":"YulBlock","src":"4278:175:23","statements":[{"nativeSrc":"4296:31:23","nodeType":"YulAssignment","src":"4296:31:23","value":{"arguments":[{"name":"prng","nativeSrc":"4316:4:23","nodeType":"YulIdentifier","src":"4316:4:23"},{"kind":"number","nativeSrc":"4322:4:23","nodeType":"YulLiteral","src":"4322:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4306:9:23","nodeType":"YulIdentifier","src":"4306:9:23"},"nativeSrc":"4306:21:23","nodeType":"YulFunctionCall","src":"4306:21:23"},"variableNames":[{"name":"result","nativeSrc":"4296:6:23","nodeType":"YulIdentifier","src":"4296:6:23"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"4351:4:23","nodeType":"YulIdentifier","src":"4351:4:23"},{"name":"result","nativeSrc":"4357:6:23","nodeType":"YulIdentifier","src":"4357:6:23"}],"functionName":{"name":"mstore","nativeSrc":"4344:6:23","nodeType":"YulIdentifier","src":"4344:6:23"},"nativeSrc":"4344:20:23","nodeType":"YulFunctionCall","src":"4344:20:23"},"nativeSrc":"4344:20:23","nodeType":"YulExpressionStatement","src":"4344:20:23"},{"body":{"nativeSrc":"4430:9:23","nodeType":"YulBlock","src":"4430:9:23","statements":[{"nativeSrc":"4432:5:23","nodeType":"YulBreak","src":"4432:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"4394:6:23","nodeType":"YulIdentifier","src":"4394:6:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4410:1:23","nodeType":"YulLiteral","src":"4410:1:23","type":"","value":"0"},{"name":"upper","nativeSrc":"4413:5:23","nodeType":"YulIdentifier","src":"4413:5:23"}],"functionName":{"name":"sub","nativeSrc":"4406:3:23","nodeType":"YulIdentifier","src":"4406:3:23"},"nativeSrc":"4406:13:23","nodeType":"YulFunctionCall","src":"4406:13:23"},{"name":"upper","nativeSrc":"4421:5:23","nodeType":"YulIdentifier","src":"4421:5:23"}],"functionName":{"name":"mod","nativeSrc":"4402:3:23","nodeType":"YulIdentifier","src":"4402:3:23"},"nativeSrc":"4402:25:23","nodeType":"YulFunctionCall","src":"4402:25:23"}],"functionName":{"name":"lt","nativeSrc":"4391:2:23","nodeType":"YulIdentifier","src":"4391:2:23"},"nativeSrc":"4391:37:23","nodeType":"YulFunctionCall","src":"4391:37:23"}],"functionName":{"name":"iszero","nativeSrc":"4384:6:23","nodeType":"YulIdentifier","src":"4384:6:23"},"nativeSrc":"4384:45:23","nodeType":"YulFunctionCall","src":"4384:45:23"},"nativeSrc":"4381:58:23","nodeType":"YulIf","src":"4381:58:23"}]},"condition":{"kind":"number","nativeSrc":"4273:1:23","nodeType":"YulLiteral","src":"4273:1:23","type":"","value":"1"},"nativeSrc":"4266:187:23","nodeType":"YulForLoop","post":{"nativeSrc":"4275:2:23","nodeType":"YulBlock","src":"4275:2:23","statements":[]},"pre":{"nativeSrc":"4270:2:23","nodeType":"YulBlock","src":"4270:2:23","statements":[]},"src":"4266:187:23"},{"nativeSrc":"4466:28:23","nodeType":"YulAssignment","src":"4466:28:23","value":{"arguments":[{"name":"result","nativeSrc":"4480:6:23","nodeType":"YulIdentifier","src":"4480:6:23"},{"name":"upper","nativeSrc":"4488:5:23","nodeType":"YulIdentifier","src":"4488:5:23"}],"functionName":{"name":"mod","nativeSrc":"4476:3:23","nodeType":"YulIdentifier","src":"4476:3:23"},"nativeSrc":"4476:18:23","nodeType":"YulFunctionCall","src":"4476:18:23"},"variableNames":[{"name":"result","nativeSrc":"4466:6:23","nodeType":"YulIdentifier","src":"4466:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10151,"isOffset":false,"isSlot":false,"src":"4316:4:23","valueSize":1},{"declaration":10151,"isOffset":false,"isSlot":false,"src":"4351:4:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4296:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4357:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4394:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4466:6:23","valueSize":1},{"declaration":10156,"isOffset":false,"isSlot":false,"src":"4480:6:23","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4413:5:23","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4421:5:23","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4488:5:23","valueSize":1}],"id":10158,"nodeType":"InlineAssembly","src":"4243:261:23"}]},"documentation":{"id":10148,"nodeType":"StructuredDocumentation","src":"3717:379:23","text":"@dev Returns a pseudorandom uint256, uniformly distributed\n between 0 (inclusive) and `upper` (exclusive).\n If your modulus is big, this method is recommended\n for uniform sampling to avoid modulo bias.\n For uniform sampling across all uint256 values,\n or for small enough moduli such that the bias is neligible,\n use {next} instead."},"id":10160,"implemented":true,"kind":"function","modifiers":[],"name":"uniform","nameLocation":"4110:7:23","nodeType":"FunctionDefinition","parameters":{"id":10154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10151,"mutability":"mutable","name":"prng","nameLocation":"4130:4:23","nodeType":"VariableDeclaration","scope":10160,"src":"4118:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10150,"nodeType":"UserDefinedTypeName","pathNode":{"id":10149,"name":"PRNG","nameLocations":["4118:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"4118:4:23"},"referencedDeclaration":10121,"src":"4118:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10153,"mutability":"mutable","name":"upper","nameLocation":"4144:5:23","nodeType":"VariableDeclaration","scope":10160,"src":"4136:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10152,"name":"uint256","nodeType":"ElementaryTypeName","src":"4136:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4117:33:23"},"returnParameters":{"id":10157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10156,"mutability":"mutable","name":"result","nameLocation":"4182:6:23","nodeType":"VariableDeclaration","scope":10160,"src":"4174:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10155,"name":"uint256","nodeType":"ElementaryTypeName","src":"4174:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4173:16:23"},"scope":10307,"src":"4101:409:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10171,"nodeType":"Block","src":"4653:1550:23","statements":[{"AST":{"nativeSrc":"4715:1482:23","nodeType":"YulBlock","src":"4715:1482:23","statements":[{"nativeSrc":"4729:17:23","nodeType":"YulVariableDeclaration","src":"4729:17:23","value":{"arguments":[{"name":"a","nativeSrc":"4744:1:23","nodeType":"YulIdentifier","src":"4744:1:23"}],"functionName":{"name":"mload","nativeSrc":"4738:5:23","nodeType":"YulIdentifier","src":"4738:5:23"},"nativeSrc":"4738:8:23","nodeType":"YulFunctionCall","src":"4738:8:23"},"variables":[{"name":"n","nativeSrc":"4733:1:23","nodeType":"YulTypedName","src":"4733:1:23","type":""}]},{"nativeSrc":"4759:15:23","nodeType":"YulVariableDeclaration","src":"4759:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"4772:1:23","nodeType":"YulLiteral","src":"4772:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4768:3:23","nodeType":"YulIdentifier","src":"4768:3:23"},"nativeSrc":"4768:6:23","nodeType":"YulFunctionCall","src":"4768:6:23"},"variables":[{"name":"w","nativeSrc":"4763:1:23","nodeType":"YulTypedName","src":"4763:1:23","type":""}]},{"nativeSrc":"4787:23:23","nodeType":"YulVariableDeclaration","src":"4787:23:23","value":{"arguments":[{"kind":"number","nativeSrc":"4803:3:23","nodeType":"YulLiteral","src":"4803:3:23","type":"","value":"128"},{"name":"w","nativeSrc":"4808:1:23","nodeType":"YulIdentifier","src":"4808:1:23"}],"functionName":{"name":"shr","nativeSrc":"4799:3:23","nodeType":"YulIdentifier","src":"4799:3:23"},"nativeSrc":"4799:11:23","nodeType":"YulFunctionCall","src":"4799:11:23"},"variables":[{"name":"mask","nativeSrc":"4791:4:23","nodeType":"YulTypedName","src":"4791:4:23","type":""}]},{"body":{"nativeSrc":"4828:1359:23","nodeType":"YulBlock","src":"4828:1359:23","statements":[{"body":{"nativeSrc":"4877:1296:23","nodeType":"YulBlock","src":"4877:1296:23","statements":[{"nativeSrc":"5025:30:23","nodeType":"YulVariableDeclaration","src":"5025:30:23","value":{"arguments":[{"name":"prng","nativeSrc":"5044:4:23","nodeType":"YulIdentifier","src":"5044:4:23"},{"kind":"number","nativeSrc":"5050:4:23","nodeType":"YulLiteral","src":"5050:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5034:9:23","nodeType":"YulIdentifier","src":"5034:9:23"},"nativeSrc":"5034:21:23","nodeType":"YulFunctionCall","src":"5034:21:23"},"variables":[{"name":"r","nativeSrc":"5029:1:23","nodeType":"YulTypedName","src":"5029:1:23","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"5083:4:23","nodeType":"YulIdentifier","src":"5083:4:23"},{"name":"r","nativeSrc":"5089:1:23","nodeType":"YulIdentifier","src":"5089:1:23"}],"functionName":{"name":"mstore","nativeSrc":"5076:6:23","nodeType":"YulIdentifier","src":"5076:6:23"},"nativeSrc":"5076:15:23","nodeType":"YulFunctionCall","src":"5076:15:23"},"nativeSrc":"5076:15:23","nodeType":"YulExpressionStatement","src":"5076:15:23"},{"nativeSrc":"5394:369:23","nodeType":"YulBlock","src":"5394:369:23","statements":[{"nativeSrc":"5420:44:23","nodeType":"YulVariableDeclaration","src":"5420:44:23","value":{"arguments":[{"name":"a","nativeSrc":"5433:1:23","nodeType":"YulIdentifier","src":"5433:1:23"},{"arguments":[{"kind":"number","nativeSrc":"5440:1:23","nodeType":"YulLiteral","src":"5440:1:23","type":"","value":"5"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5451:3:23","nodeType":"YulLiteral","src":"5451:3:23","type":"","value":"128"},{"name":"r","nativeSrc":"5456:1:23","nodeType":"YulIdentifier","src":"5456:1:23"}],"functionName":{"name":"shr","nativeSrc":"5447:3:23","nodeType":"YulIdentifier","src":"5447:3:23"},"nativeSrc":"5447:11:23","nodeType":"YulFunctionCall","src":"5447:11:23"},{"name":"n","nativeSrc":"5460:1:23","nodeType":"YulIdentifier","src":"5460:1:23"}],"functionName":{"name":"mod","nativeSrc":"5443:3:23","nodeType":"YulIdentifier","src":"5443:3:23"},"nativeSrc":"5443:19:23","nodeType":"YulFunctionCall","src":"5443:19:23"}],"functionName":{"name":"shl","nativeSrc":"5436:3:23","nodeType":"YulIdentifier","src":"5436:3:23"},"nativeSrc":"5436:27:23","nodeType":"YulFunctionCall","src":"5436:27:23"}],"functionName":{"name":"add","nativeSrc":"5429:3:23","nodeType":"YulIdentifier","src":"5429:3:23"},"nativeSrc":"5429:35:23","nodeType":"YulFunctionCall","src":"5429:35:23"},"variables":[{"name":"j","nativeSrc":"5424:1:23","nodeType":"YulTypedName","src":"5424:1:23","type":""}]},{"nativeSrc":"5489:14:23","nodeType":"YulAssignment","src":"5489:14:23","value":{"arguments":[{"name":"n","nativeSrc":"5498:1:23","nodeType":"YulIdentifier","src":"5498:1:23"},{"name":"w","nativeSrc":"5501:1:23","nodeType":"YulIdentifier","src":"5501:1:23"}],"functionName":{"name":"add","nativeSrc":"5494:3:23","nodeType":"YulIdentifier","src":"5494:3:23"},"nativeSrc":"5494:9:23","nodeType":"YulFunctionCall","src":"5494:9:23"},"variableNames":[{"name":"n","nativeSrc":"5489:1:23","nodeType":"YulIdentifier","src":"5489:1:23"}]},{"body":{"nativeSrc":"5557:9:23","nodeType":"YulBlock","src":"5557:9:23","statements":[{"nativeSrc":"5559:5:23","nodeType":"YulBreak","src":"5559:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"5554:1:23","nodeType":"YulIdentifier","src":"5554:1:23"}],"functionName":{"name":"iszero","nativeSrc":"5547:6:23","nodeType":"YulIdentifier","src":"5547:6:23"},"nativeSrc":"5547:9:23","nodeType":"YulFunctionCall","src":"5547:9:23"},"nativeSrc":"5544:22:23","nodeType":"YulIf","src":"5544:22:23"},{"nativeSrc":"5592:26:23","nodeType":"YulVariableDeclaration","src":"5592:26:23","value":{"arguments":[{"name":"a","nativeSrc":"5605:1:23","nodeType":"YulIdentifier","src":"5605:1:23"},{"arguments":[{"kind":"number","nativeSrc":"5612:1:23","nodeType":"YulLiteral","src":"5612:1:23","type":"","value":"5"},{"name":"n","nativeSrc":"5615:1:23","nodeType":"YulIdentifier","src":"5615:1:23"}],"functionName":{"name":"shl","nativeSrc":"5608:3:23","nodeType":"YulIdentifier","src":"5608:3:23"},"nativeSrc":"5608:9:23","nodeType":"YulFunctionCall","src":"5608:9:23"}],"functionName":{"name":"add","nativeSrc":"5601:3:23","nodeType":"YulIdentifier","src":"5601:3:23"},"nativeSrc":"5601:17:23","nodeType":"YulFunctionCall","src":"5601:17:23"},"variables":[{"name":"i","nativeSrc":"5596:1:23","nodeType":"YulTypedName","src":"5596:1:23","type":""}]},{"nativeSrc":"5643:17:23","nodeType":"YulVariableDeclaration","src":"5643:17:23","value":{"arguments":[{"name":"i","nativeSrc":"5658:1:23","nodeType":"YulIdentifier","src":"5658:1:23"}],"functionName":{"name":"mload","nativeSrc":"5652:5:23","nodeType":"YulIdentifier","src":"5652:5:23"},"nativeSrc":"5652:8:23","nodeType":"YulFunctionCall","src":"5652:8:23"},"variables":[{"name":"t","nativeSrc":"5647:1:23","nodeType":"YulTypedName","src":"5647:1:23","type":""}]},{"expression":{"arguments":[{"name":"i","nativeSrc":"5692:1:23","nodeType":"YulIdentifier","src":"5692:1:23"},{"arguments":[{"name":"j","nativeSrc":"5701:1:23","nodeType":"YulIdentifier","src":"5701:1:23"}],"functionName":{"name":"mload","nativeSrc":"5695:5:23","nodeType":"YulIdentifier","src":"5695:5:23"},"nativeSrc":"5695:8:23","nodeType":"YulFunctionCall","src":"5695:8:23"}],"functionName":{"name":"mstore","nativeSrc":"5685:6:23","nodeType":"YulIdentifier","src":"5685:6:23"},"nativeSrc":"5685:19:23","nodeType":"YulFunctionCall","src":"5685:19:23"},"nativeSrc":"5685:19:23","nodeType":"YulExpressionStatement","src":"5685:19:23"},{"expression":{"arguments":[{"name":"j","nativeSrc":"5736:1:23","nodeType":"YulIdentifier","src":"5736:1:23"},{"name":"t","nativeSrc":"5739:1:23","nodeType":"YulIdentifier","src":"5739:1:23"}],"functionName":{"name":"mstore","nativeSrc":"5729:6:23","nodeType":"YulIdentifier","src":"5729:6:23"},"nativeSrc":"5729:12:23","nodeType":"YulFunctionCall","src":"5729:12:23"},"nativeSrc":"5729:12:23","nodeType":"YulExpressionStatement","src":"5729:12:23"}]},{"nativeSrc":"5785:370:23","nodeType":"YulBlock","src":"5785:370:23","statements":[{"nativeSrc":"5811:45:23","nodeType":"YulVariableDeclaration","src":"5811:45:23","value":{"arguments":[{"name":"a","nativeSrc":"5824:1:23","nodeType":"YulIdentifier","src":"5824:1:23"},{"arguments":[{"kind":"number","nativeSrc":"5831:1:23","nodeType":"YulLiteral","src":"5831:1:23","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"5842:1:23","nodeType":"YulIdentifier","src":"5842:1:23"},{"name":"mask","nativeSrc":"5845:4:23","nodeType":"YulIdentifier","src":"5845:4:23"}],"functionName":{"name":"and","nativeSrc":"5838:3:23","nodeType":"YulIdentifier","src":"5838:3:23"},"nativeSrc":"5838:12:23","nodeType":"YulFunctionCall","src":"5838:12:23"},{"name":"n","nativeSrc":"5852:1:23","nodeType":"YulIdentifier","src":"5852:1:23"}],"functionName":{"name":"mod","nativeSrc":"5834:3:23","nodeType":"YulIdentifier","src":"5834:3:23"},"nativeSrc":"5834:20:23","nodeType":"YulFunctionCall","src":"5834:20:23"}],"functionName":{"name":"shl","nativeSrc":"5827:3:23","nodeType":"YulIdentifier","src":"5827:3:23"},"nativeSrc":"5827:28:23","nodeType":"YulFunctionCall","src":"5827:28:23"}],"functionName":{"name":"add","nativeSrc":"5820:3:23","nodeType":"YulIdentifier","src":"5820:3:23"},"nativeSrc":"5820:36:23","nodeType":"YulFunctionCall","src":"5820:36:23"},"variables":[{"name":"j","nativeSrc":"5815:1:23","nodeType":"YulTypedName","src":"5815:1:23","type":""}]},{"nativeSrc":"5881:14:23","nodeType":"YulAssignment","src":"5881:14:23","value":{"arguments":[{"name":"n","nativeSrc":"5890:1:23","nodeType":"YulIdentifier","src":"5890:1:23"},{"name":"w","nativeSrc":"5893:1:23","nodeType":"YulIdentifier","src":"5893:1:23"}],"functionName":{"name":"add","nativeSrc":"5886:3:23","nodeType":"YulIdentifier","src":"5886:3:23"},"nativeSrc":"5886:9:23","nodeType":"YulFunctionCall","src":"5886:9:23"},"variableNames":[{"name":"n","nativeSrc":"5881:1:23","nodeType":"YulIdentifier","src":"5881:1:23"}]},{"body":{"nativeSrc":"5949:9:23","nodeType":"YulBlock","src":"5949:9:23","statements":[{"nativeSrc":"5951:5:23","nodeType":"YulBreak","src":"5951:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"5946:1:23","nodeType":"YulIdentifier","src":"5946:1:23"}],"functionName":{"name":"iszero","nativeSrc":"5939:6:23","nodeType":"YulIdentifier","src":"5939:6:23"},"nativeSrc":"5939:9:23","nodeType":"YulFunctionCall","src":"5939:9:23"},"nativeSrc":"5936:22:23","nodeType":"YulIf","src":"5936:22:23"},{"nativeSrc":"5984:26:23","nodeType":"YulVariableDeclaration","src":"5984:26:23","value":{"arguments":[{"name":"a","nativeSrc":"5997:1:23","nodeType":"YulIdentifier","src":"5997:1:23"},{"arguments":[{"kind":"number","nativeSrc":"6004:1:23","nodeType":"YulLiteral","src":"6004:1:23","type":"","value":"5"},{"name":"n","nativeSrc":"6007:1:23","nodeType":"YulIdentifier","src":"6007:1:23"}],"functionName":{"name":"shl","nativeSrc":"6000:3:23","nodeType":"YulIdentifier","src":"6000:3:23"},"nativeSrc":"6000:9:23","nodeType":"YulFunctionCall","src":"6000:9:23"}],"functionName":{"name":"add","nativeSrc":"5993:3:23","nodeType":"YulIdentifier","src":"5993:3:23"},"nativeSrc":"5993:17:23","nodeType":"YulFunctionCall","src":"5993:17:23"},"variables":[{"name":"i","nativeSrc":"5988:1:23","nodeType":"YulTypedName","src":"5988:1:23","type":""}]},{"nativeSrc":"6035:17:23","nodeType":"YulVariableDeclaration","src":"6035:17:23","value":{"arguments":[{"name":"i","nativeSrc":"6050:1:23","nodeType":"YulIdentifier","src":"6050:1:23"}],"functionName":{"name":"mload","nativeSrc":"6044:5:23","nodeType":"YulIdentifier","src":"6044:5:23"},"nativeSrc":"6044:8:23","nodeType":"YulFunctionCall","src":"6044:8:23"},"variables":[{"name":"t","nativeSrc":"6039:1:23","nodeType":"YulTypedName","src":"6039:1:23","type":""}]},{"expression":{"arguments":[{"name":"i","nativeSrc":"6084:1:23","nodeType":"YulIdentifier","src":"6084:1:23"},{"arguments":[{"name":"j","nativeSrc":"6093:1:23","nodeType":"YulIdentifier","src":"6093:1:23"}],"functionName":{"name":"mload","nativeSrc":"6087:5:23","nodeType":"YulIdentifier","src":"6087:5:23"},"nativeSrc":"6087:8:23","nodeType":"YulFunctionCall","src":"6087:8:23"}],"functionName":{"name":"mstore","nativeSrc":"6077:6:23","nodeType":"YulIdentifier","src":"6077:6:23"},"nativeSrc":"6077:19:23","nodeType":"YulFunctionCall","src":"6077:19:23"},"nativeSrc":"6077:19:23","nodeType":"YulExpressionStatement","src":"6077:19:23"},{"expression":{"arguments":[{"name":"j","nativeSrc":"6128:1:23","nodeType":"YulIdentifier","src":"6128:1:23"},{"name":"t","nativeSrc":"6131:1:23","nodeType":"YulIdentifier","src":"6131:1:23"}],"functionName":{"name":"mstore","nativeSrc":"6121:6:23","nodeType":"YulIdentifier","src":"6121:6:23"},"nativeSrc":"6121:12:23","nodeType":"YulFunctionCall","src":"6121:12:23"},"nativeSrc":"6121:12:23","nodeType":"YulExpressionStatement","src":"6121:12:23"}]}]},"condition":{"kind":"number","nativeSrc":"4872:1:23","nodeType":"YulLiteral","src":"4872:1:23","type":"","value":"1"},"nativeSrc":"4846:1327:23","nodeType":"YulForLoop","post":{"nativeSrc":"4874:2:23","nodeType":"YulBlock","src":"4874:2:23","statements":[]},"pre":{"nativeSrc":"4850:21:23","nodeType":"YulBlock","src":"4850:21:23","statements":[{"nativeSrc":"4852:17:23","nodeType":"YulAssignment","src":"4852:17:23","value":{"arguments":[{"name":"a","nativeSrc":"4861:1:23","nodeType":"YulIdentifier","src":"4861:1:23"},{"kind":"number","nativeSrc":"4864:4:23","nodeType":"YulLiteral","src":"4864:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4857:3:23","nodeType":"YulIdentifier","src":"4857:3:23"},"nativeSrc":"4857:12:23","nodeType":"YulFunctionCall","src":"4857:12:23"},"variableNames":[{"name":"a","nativeSrc":"4852:1:23","nodeType":"YulIdentifier","src":"4852:1:23"}]}]},"src":"4846:1327:23"}]},"condition":{"name":"n","nativeSrc":"4826:1:23","nodeType":"YulIdentifier","src":"4826:1:23"},"nativeSrc":"4823:1364:23","nodeType":"YulIf","src":"4823:1364:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10167,"isOffset":false,"isSlot":false,"src":"4744:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"4852:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"4861:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5433:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5605:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5824:1:23","valueSize":1},{"declaration":10167,"isOffset":false,"isSlot":false,"src":"5997:1:23","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"5044:4:23","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"5083:4:23","valueSize":1}],"id":10170,"nodeType":"InlineAssembly","src":"4706:1491:23"}]},"documentation":{"id":10161,"nodeType":"StructuredDocumentation","src":"4516:63:23","text":"@dev Shuffles the array in-place with Fisher-Yates shuffle."},"id":10172,"implemented":true,"kind":"function","modifiers":[],"name":"shuffle","nameLocation":"4593:7:23","nodeType":"FunctionDefinition","parameters":{"id":10168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10164,"mutability":"mutable","name":"prng","nameLocation":"4613:4:23","nodeType":"VariableDeclaration","scope":10172,"src":"4601:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10163,"nodeType":"UserDefinedTypeName","pathNode":{"id":10162,"name":"PRNG","nameLocations":["4601:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"4601:4:23"},"referencedDeclaration":10121,"src":"4601:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10167,"mutability":"mutable","name":"a","nameLocation":"4636:1:23","nodeType":"VariableDeclaration","scope":10172,"src":"4619:18:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10165,"name":"uint256","nodeType":"ElementaryTypeName","src":"4619:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10166,"nodeType":"ArrayTypeName","src":"4619:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4600:38:23"},"returnParameters":{"id":10169,"nodeType":"ParameterList","parameters":[],"src":"4653:0:23"},"scope":10307,"src":"4584:1619:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10182,"nodeType":"Block","src":"6342:1522:23","statements":[{"AST":{"nativeSrc":"6404:1454:23","nodeType":"YulBlock","src":"6404:1454:23","statements":[{"nativeSrc":"6418:17:23","nodeType":"YulVariableDeclaration","src":"6418:17:23","value":{"arguments":[{"name":"a","nativeSrc":"6433:1:23","nodeType":"YulIdentifier","src":"6433:1:23"}],"functionName":{"name":"mload","nativeSrc":"6427:5:23","nodeType":"YulIdentifier","src":"6427:5:23"},"nativeSrc":"6427:8:23","nodeType":"YulFunctionCall","src":"6427:8:23"},"variables":[{"name":"n","nativeSrc":"6422:1:23","nodeType":"YulTypedName","src":"6422:1:23","type":""}]},{"nativeSrc":"6448:15:23","nodeType":"YulVariableDeclaration","src":"6448:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"6461:1:23","nodeType":"YulLiteral","src":"6461:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"6457:3:23","nodeType":"YulIdentifier","src":"6457:3:23"},"nativeSrc":"6457:6:23","nodeType":"YulFunctionCall","src":"6457:6:23"},"variables":[{"name":"w","nativeSrc":"6452:1:23","nodeType":"YulTypedName","src":"6452:1:23","type":""}]},{"nativeSrc":"6476:23:23","nodeType":"YulVariableDeclaration","src":"6476:23:23","value":{"arguments":[{"kind":"number","nativeSrc":"6492:3:23","nodeType":"YulLiteral","src":"6492:3:23","type":"","value":"128"},{"name":"w","nativeSrc":"6497:1:23","nodeType":"YulIdentifier","src":"6497:1:23"}],"functionName":{"name":"shr","nativeSrc":"6488:3:23","nodeType":"YulIdentifier","src":"6488:3:23"},"nativeSrc":"6488:11:23","nodeType":"YulFunctionCall","src":"6488:11:23"},"variables":[{"name":"mask","nativeSrc":"6480:4:23","nodeType":"YulTypedName","src":"6480:4:23","type":""}]},{"body":{"nativeSrc":"6517:1331:23","nodeType":"YulBlock","src":"6517:1331:23","statements":[{"nativeSrc":"6535:21:23","nodeType":"YulVariableDeclaration","src":"6535:21:23","value":{"arguments":[{"name":"a","nativeSrc":"6548:1:23","nodeType":"YulIdentifier","src":"6548:1:23"},{"kind":"number","nativeSrc":"6551:4:23","nodeType":"YulLiteral","src":"6551:4:23","type":"","value":"0x01"}],"functionName":{"name":"add","nativeSrc":"6544:3:23","nodeType":"YulIdentifier","src":"6544:3:23"},"nativeSrc":"6544:12:23","nodeType":"YulFunctionCall","src":"6544:12:23"},"variables":[{"name":"b","nativeSrc":"6539:1:23","nodeType":"YulTypedName","src":"6539:1:23","type":""}]},{"body":{"nativeSrc":"6604:1230:23","nodeType":"YulBlock","src":"6604:1230:23","statements":[{"nativeSrc":"6752:30:23","nodeType":"YulVariableDeclaration","src":"6752:30:23","value":{"arguments":[{"name":"prng","nativeSrc":"6771:4:23","nodeType":"YulIdentifier","src":"6771:4:23"},{"kind":"number","nativeSrc":"6777:4:23","nodeType":"YulLiteral","src":"6777:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6761:9:23","nodeType":"YulIdentifier","src":"6761:9:23"},"nativeSrc":"6761:21:23","nodeType":"YulFunctionCall","src":"6761:21:23"},"variables":[{"name":"r","nativeSrc":"6756:1:23","nodeType":"YulTypedName","src":"6756:1:23","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"6810:4:23","nodeType":"YulIdentifier","src":"6810:4:23"},{"name":"r","nativeSrc":"6816:1:23","nodeType":"YulIdentifier","src":"6816:1:23"}],"functionName":{"name":"mstore","nativeSrc":"6803:6:23","nodeType":"YulIdentifier","src":"6803:6:23"},"nativeSrc":"6803:15:23","nodeType":"YulFunctionCall","src":"6803:15:23"},"nativeSrc":"6803:15:23","nodeType":"YulExpressionStatement","src":"6803:15:23"},{"nativeSrc":"7121:336:23","nodeType":"YulBlock","src":"7121:336:23","statements":[{"nativeSrc":"7147:28:23","nodeType":"YulVariableDeclaration","src":"7147:28:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7164:3:23","nodeType":"YulLiteral","src":"7164:3:23","type":"","value":"128"},{"name":"r","nativeSrc":"7169:1:23","nodeType":"YulIdentifier","src":"7169:1:23"}],"functionName":{"name":"shr","nativeSrc":"7160:3:23","nodeType":"YulIdentifier","src":"7160:3:23"},"nativeSrc":"7160:11:23","nodeType":"YulFunctionCall","src":"7160:11:23"},{"name":"n","nativeSrc":"7173:1:23","nodeType":"YulIdentifier","src":"7173:1:23"}],"functionName":{"name":"mod","nativeSrc":"7156:3:23","nodeType":"YulIdentifier","src":"7156:3:23"},"nativeSrc":"7156:19:23","nodeType":"YulFunctionCall","src":"7156:19:23"},"variables":[{"name":"o","nativeSrc":"7151:1:23","nodeType":"YulTypedName","src":"7151:1:23","type":""}]},{"nativeSrc":"7200:14:23","nodeType":"YulAssignment","src":"7200:14:23","value":{"arguments":[{"name":"n","nativeSrc":"7209:1:23","nodeType":"YulIdentifier","src":"7209:1:23"},{"name":"w","nativeSrc":"7212:1:23","nodeType":"YulIdentifier","src":"7212:1:23"}],"functionName":{"name":"add","nativeSrc":"7205:3:23","nodeType":"YulIdentifier","src":"7205:3:23"},"nativeSrc":"7205:9:23","nodeType":"YulFunctionCall","src":"7205:9:23"},"variableNames":[{"name":"n","nativeSrc":"7200:1:23","nodeType":"YulIdentifier","src":"7200:1:23"}]},{"body":{"nativeSrc":"7268:9:23","nodeType":"YulBlock","src":"7268:9:23","statements":[{"nativeSrc":"7270:5:23","nodeType":"YulBreak","src":"7270:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"7265:1:23","nodeType":"YulIdentifier","src":"7265:1:23"}],"functionName":{"name":"iszero","nativeSrc":"7258:6:23","nodeType":"YulIdentifier","src":"7258:6:23"},"nativeSrc":"7258:9:23","nodeType":"YulFunctionCall","src":"7258:9:23"},"nativeSrc":"7255:22:23","nodeType":"YulIf","src":"7255:22:23"},{"nativeSrc":"7303:25:23","nodeType":"YulVariableDeclaration","src":"7303:25:23","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7322:1:23","nodeType":"YulIdentifier","src":"7322:1:23"},{"name":"n","nativeSrc":"7325:1:23","nodeType":"YulIdentifier","src":"7325:1:23"}],"functionName":{"name":"add","nativeSrc":"7318:3:23","nodeType":"YulIdentifier","src":"7318:3:23"},"nativeSrc":"7318:9:23","nodeType":"YulFunctionCall","src":"7318:9:23"}],"functionName":{"name":"mload","nativeSrc":"7312:5:23","nodeType":"YulIdentifier","src":"7312:5:23"},"nativeSrc":"7312:16:23","nodeType":"YulFunctionCall","src":"7312:16:23"},"variables":[{"name":"t","nativeSrc":"7307:1:23","nodeType":"YulTypedName","src":"7307:1:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7365:1:23","nodeType":"YulIdentifier","src":"7365:1:23"},{"name":"n","nativeSrc":"7368:1:23","nodeType":"YulIdentifier","src":"7368:1:23"}],"functionName":{"name":"add","nativeSrc":"7361:3:23","nodeType":"YulIdentifier","src":"7361:3:23"},"nativeSrc":"7361:9:23","nodeType":"YulFunctionCall","src":"7361:9:23"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7382:1:23","nodeType":"YulIdentifier","src":"7382:1:23"},{"name":"o","nativeSrc":"7385:1:23","nodeType":"YulIdentifier","src":"7385:1:23"}],"functionName":{"name":"add","nativeSrc":"7378:3:23","nodeType":"YulIdentifier","src":"7378:3:23"},"nativeSrc":"7378:9:23","nodeType":"YulFunctionCall","src":"7378:9:23"}],"functionName":{"name":"mload","nativeSrc":"7372:5:23","nodeType":"YulIdentifier","src":"7372:5:23"},"nativeSrc":"7372:16:23","nodeType":"YulFunctionCall","src":"7372:16:23"}],"functionName":{"name":"mstore8","nativeSrc":"7353:7:23","nodeType":"YulIdentifier","src":"7353:7:23"},"nativeSrc":"7353:36:23","nodeType":"YulFunctionCall","src":"7353:36:23"},"nativeSrc":"7353:36:23","nodeType":"YulExpressionStatement","src":"7353:36:23"},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7426:1:23","nodeType":"YulIdentifier","src":"7426:1:23"},{"name":"o","nativeSrc":"7429:1:23","nodeType":"YulIdentifier","src":"7429:1:23"}],"functionName":{"name":"add","nativeSrc":"7422:3:23","nodeType":"YulIdentifier","src":"7422:3:23"},"nativeSrc":"7422:9:23","nodeType":"YulFunctionCall","src":"7422:9:23"},{"name":"t","nativeSrc":"7433:1:23","nodeType":"YulIdentifier","src":"7433:1:23"}],"functionName":{"name":"mstore8","nativeSrc":"7414:7:23","nodeType":"YulIdentifier","src":"7414:7:23"},"nativeSrc":"7414:21:23","nodeType":"YulFunctionCall","src":"7414:21:23"},"nativeSrc":"7414:21:23","nodeType":"YulExpressionStatement","src":"7414:21:23"}]},{"nativeSrc":"7479:337:23","nodeType":"YulBlock","src":"7479:337:23","statements":[{"nativeSrc":"7505:29:23","nodeType":"YulVariableDeclaration","src":"7505:29:23","value":{"arguments":[{"arguments":[{"name":"r","nativeSrc":"7522:1:23","nodeType":"YulIdentifier","src":"7522:1:23"},{"name":"mask","nativeSrc":"7525:4:23","nodeType":"YulIdentifier","src":"7525:4:23"}],"functionName":{"name":"and","nativeSrc":"7518:3:23","nodeType":"YulIdentifier","src":"7518:3:23"},"nativeSrc":"7518:12:23","nodeType":"YulFunctionCall","src":"7518:12:23"},{"name":"n","nativeSrc":"7532:1:23","nodeType":"YulIdentifier","src":"7532:1:23"}],"functionName":{"name":"mod","nativeSrc":"7514:3:23","nodeType":"YulIdentifier","src":"7514:3:23"},"nativeSrc":"7514:20:23","nodeType":"YulFunctionCall","src":"7514:20:23"},"variables":[{"name":"o","nativeSrc":"7509:1:23","nodeType":"YulTypedName","src":"7509:1:23","type":""}]},{"nativeSrc":"7559:14:23","nodeType":"YulAssignment","src":"7559:14:23","value":{"arguments":[{"name":"n","nativeSrc":"7568:1:23","nodeType":"YulIdentifier","src":"7568:1:23"},{"name":"w","nativeSrc":"7571:1:23","nodeType":"YulIdentifier","src":"7571:1:23"}],"functionName":{"name":"add","nativeSrc":"7564:3:23","nodeType":"YulIdentifier","src":"7564:3:23"},"nativeSrc":"7564:9:23","nodeType":"YulFunctionCall","src":"7564:9:23"},"variableNames":[{"name":"n","nativeSrc":"7559:1:23","nodeType":"YulIdentifier","src":"7559:1:23"}]},{"body":{"nativeSrc":"7627:9:23","nodeType":"YulBlock","src":"7627:9:23","statements":[{"nativeSrc":"7629:5:23","nodeType":"YulBreak","src":"7629:5:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"7624:1:23","nodeType":"YulIdentifier","src":"7624:1:23"}],"functionName":{"name":"iszero","nativeSrc":"7617:6:23","nodeType":"YulIdentifier","src":"7617:6:23"},"nativeSrc":"7617:9:23","nodeType":"YulFunctionCall","src":"7617:9:23"},"nativeSrc":"7614:22:23","nodeType":"YulIf","src":"7614:22:23"},{"nativeSrc":"7662:25:23","nodeType":"YulVariableDeclaration","src":"7662:25:23","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7681:1:23","nodeType":"YulIdentifier","src":"7681:1:23"},{"name":"n","nativeSrc":"7684:1:23","nodeType":"YulIdentifier","src":"7684:1:23"}],"functionName":{"name":"add","nativeSrc":"7677:3:23","nodeType":"YulIdentifier","src":"7677:3:23"},"nativeSrc":"7677:9:23","nodeType":"YulFunctionCall","src":"7677:9:23"}],"functionName":{"name":"mload","nativeSrc":"7671:5:23","nodeType":"YulIdentifier","src":"7671:5:23"},"nativeSrc":"7671:16:23","nodeType":"YulFunctionCall","src":"7671:16:23"},"variables":[{"name":"t","nativeSrc":"7666:1:23","nodeType":"YulTypedName","src":"7666:1:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7724:1:23","nodeType":"YulIdentifier","src":"7724:1:23"},{"name":"n","nativeSrc":"7727:1:23","nodeType":"YulIdentifier","src":"7727:1:23"}],"functionName":{"name":"add","nativeSrc":"7720:3:23","nodeType":"YulIdentifier","src":"7720:3:23"},"nativeSrc":"7720:9:23","nodeType":"YulFunctionCall","src":"7720:9:23"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7741:1:23","nodeType":"YulIdentifier","src":"7741:1:23"},{"name":"o","nativeSrc":"7744:1:23","nodeType":"YulIdentifier","src":"7744:1:23"}],"functionName":{"name":"add","nativeSrc":"7737:3:23","nodeType":"YulIdentifier","src":"7737:3:23"},"nativeSrc":"7737:9:23","nodeType":"YulFunctionCall","src":"7737:9:23"}],"functionName":{"name":"mload","nativeSrc":"7731:5:23","nodeType":"YulIdentifier","src":"7731:5:23"},"nativeSrc":"7731:16:23","nodeType":"YulFunctionCall","src":"7731:16:23"}],"functionName":{"name":"mstore8","nativeSrc":"7712:7:23","nodeType":"YulIdentifier","src":"7712:7:23"},"nativeSrc":"7712:36:23","nodeType":"YulFunctionCall","src":"7712:36:23"},"nativeSrc":"7712:36:23","nodeType":"YulExpressionStatement","src":"7712:36:23"},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7785:1:23","nodeType":"YulIdentifier","src":"7785:1:23"},{"name":"o","nativeSrc":"7788:1:23","nodeType":"YulIdentifier","src":"7788:1:23"}],"functionName":{"name":"add","nativeSrc":"7781:3:23","nodeType":"YulIdentifier","src":"7781:3:23"},"nativeSrc":"7781:9:23","nodeType":"YulFunctionCall","src":"7781:9:23"},{"name":"t","nativeSrc":"7792:1:23","nodeType":"YulIdentifier","src":"7792:1:23"}],"functionName":{"name":"mstore8","nativeSrc":"7773:7:23","nodeType":"YulIdentifier","src":"7773:7:23"},"nativeSrc":"7773:21:23","nodeType":"YulFunctionCall","src":"7773:21:23"},"nativeSrc":"7773:21:23","nodeType":"YulExpressionStatement","src":"7773:21:23"}]}]},"condition":{"kind":"number","nativeSrc":"6599:1:23","nodeType":"YulLiteral","src":"6599:1:23","type":"","value":"1"},"nativeSrc":"6573:1261:23","nodeType":"YulForLoop","post":{"nativeSrc":"6601:2:23","nodeType":"YulBlock","src":"6601:2:23","statements":[]},"pre":{"nativeSrc":"6577:21:23","nodeType":"YulBlock","src":"6577:21:23","statements":[{"nativeSrc":"6579:17:23","nodeType":"YulAssignment","src":"6579:17:23","value":{"arguments":[{"name":"a","nativeSrc":"6588:1:23","nodeType":"YulIdentifier","src":"6588:1:23"},{"kind":"number","nativeSrc":"6591:4:23","nodeType":"YulLiteral","src":"6591:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6584:3:23","nodeType":"YulIdentifier","src":"6584:3:23"},"nativeSrc":"6584:12:23","nodeType":"YulFunctionCall","src":"6584:12:23"},"variableNames":[{"name":"a","nativeSrc":"6579:1:23","nodeType":"YulIdentifier","src":"6579:1:23"}]}]},"src":"6573:1261:23"}]},"condition":{"name":"n","nativeSrc":"6515:1:23","nodeType":"YulIdentifier","src":"6515:1:23"},"nativeSrc":"6512:1336:23","nodeType":"YulIf","src":"6512:1336:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6433:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6548:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6579:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"6588:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7365:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7426:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7724:1:23","valueSize":1},{"declaration":10178,"isOffset":false,"isSlot":false,"src":"7785:1:23","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"6771:4:23","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"6810:4:23","valueSize":1}],"id":10181,"nodeType":"InlineAssembly","src":"6395:1463:23"}]},"documentation":{"id":10173,"nodeType":"StructuredDocumentation","src":"6209:63:23","text":"@dev Shuffles the bytes in-place with Fisher-Yates shuffle."},"id":10183,"implemented":true,"kind":"function","modifiers":[],"name":"shuffle","nameLocation":"6286:7:23","nodeType":"FunctionDefinition","parameters":{"id":10179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10176,"mutability":"mutable","name":"prng","nameLocation":"6306:4:23","nodeType":"VariableDeclaration","scope":10183,"src":"6294:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10175,"nodeType":"UserDefinedTypeName","pathNode":{"id":10174,"name":"PRNG","nameLocations":["6294:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"6294:4:23"},"referencedDeclaration":10121,"src":"6294:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10178,"mutability":"mutable","name":"a","nameLocation":"6325:1:23","nodeType":"VariableDeclaration","scope":10183,"src":"6312:14:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10177,"name":"bytes","nodeType":"ElementaryTypeName","src":"6312:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6293:34:23"},"returnParameters":{"id":10180,"nodeType":"ParameterList","parameters":[],"src":"6342:0:23"},"scope":10307,"src":"6277:1587:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10193,"nodeType":"Block","src":"8043:1335:23","statements":[{"AST":{"nativeSrc":"8105:1267:23","nodeType":"YulBlock","src":"8105:1267:23","statements":[{"nativeSrc":"8488:31:23","nodeType":"YulAssignment","src":"8488:31:23","value":{"arguments":[{"name":"prng","nativeSrc":"8508:4:23","nodeType":"YulIdentifier","src":"8508:4:23"},{"kind":"number","nativeSrc":"8514:4:23","nodeType":"YulLiteral","src":"8514:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8498:9:23","nodeType":"YulIdentifier","src":"8498:9:23"},"nativeSrc":"8498:21:23","nodeType":"YulFunctionCall","src":"8498:21:23"},"variableNames":[{"name":"result","nativeSrc":"8488:6:23","nodeType":"YulIdentifier","src":"8488:6:23"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"8539:4:23","nodeType":"YulIdentifier","src":"8539:4:23"},{"name":"result","nativeSrc":"8545:6:23","nodeType":"YulIdentifier","src":"8545:6:23"}],"functionName":{"name":"mstore","nativeSrc":"8532:6:23","nodeType":"YulIdentifier","src":"8532:6:23"},"nativeSrc":"8532:20:23","nodeType":"YulFunctionCall","src":"8532:20:23"},"nativeSrc":"8532:20:23","nodeType":"YulExpressionStatement","src":"8532:20:23"},{"nativeSrc":"8565:75:23","nodeType":"YulVariableDeclaration","src":"8565:75:23","value":{"kind":"number","nativeSrc":"8574:66:23","nodeType":"YulLiteral","src":"8574:66:23","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43"},"variables":[{"name":"n","nativeSrc":"8569:1:23","nodeType":"YulTypedName","src":"8569:1:23","type":""}]},{"nativeSrc":"8663:44:23","nodeType":"YulVariableDeclaration","src":"8663:44:23","value":{"kind":"number","nativeSrc":"8672:35:23","nodeType":"YulLiteral","src":"8672:35:23","type":"","value":"0x100000000000000000000000000000051"},"variables":[{"name":"a","nativeSrc":"8667:1:23","nodeType":"YulTypedName","src":"8667:1:23","type":""}]},{"nativeSrc":"8758:75:23","nodeType":"YulVariableDeclaration","src":"8758:75:23","value":{"kind":"number","nativeSrc":"8767:66:23","nodeType":"YulLiteral","src":"8767:66:23","type":"","value":"0x1fffffffffffffff1fffffffffffffff1fffffffffffffff1fffffffffffffff"},"variables":[{"name":"m","nativeSrc":"8762:1:23","nodeType":"YulTypedName","src":"8762:1:23","type":""}]},{"nativeSrc":"8846:60:23","nodeType":"YulVariableDeclaration","src":"8846:60:23","value":{"kind":"number","nativeSrc":"8855:51:23","nodeType":"YulLiteral","src":"8855:51:23","type":"","value":"0x1000000000000000100000000000000010000000000000001"},"variables":[{"name":"s","nativeSrc":"8850:1:23","nodeType":"YulTypedName","src":"8850:1:23","type":""}]},{"nativeSrc":"8919:30:23","nodeType":"YulVariableDeclaration","src":"8919:30:23","value":{"arguments":[{"name":"result","nativeSrc":"8936:6:23","nodeType":"YulIdentifier","src":"8936:6:23"},{"name":"a","nativeSrc":"8944:1:23","nodeType":"YulIdentifier","src":"8944:1:23"},{"name":"n","nativeSrc":"8947:1:23","nodeType":"YulIdentifier","src":"8947:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"8929:6:23","nodeType":"YulIdentifier","src":"8929:6:23"},"nativeSrc":"8929:20:23","nodeType":"YulFunctionCall","src":"8929:20:23"},"variables":[{"name":"r1","nativeSrc":"8923:2:23","nodeType":"YulTypedName","src":"8923:2:23","type":""}]},{"nativeSrc":"8962:26:23","nodeType":"YulVariableDeclaration","src":"8962:26:23","value":{"arguments":[{"name":"r1","nativeSrc":"8979:2:23","nodeType":"YulIdentifier","src":"8979:2:23"},{"name":"a","nativeSrc":"8983:1:23","nodeType":"YulIdentifier","src":"8983:1:23"},{"name":"n","nativeSrc":"8986:1:23","nodeType":"YulIdentifier","src":"8986:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"8972:6:23","nodeType":"YulIdentifier","src":"8972:6:23"},"nativeSrc":"8972:16:23","nodeType":"YulFunctionCall","src":"8972:16:23"},"variables":[{"name":"r2","nativeSrc":"8966:2:23","nodeType":"YulTypedName","src":"8966:2:23","type":""}]},{"nativeSrc":"9001:26:23","nodeType":"YulVariableDeclaration","src":"9001:26:23","value":{"arguments":[{"name":"r2","nativeSrc":"9018:2:23","nodeType":"YulIdentifier","src":"9018:2:23"},{"name":"a","nativeSrc":"9022:1:23","nodeType":"YulIdentifier","src":"9022:1:23"},{"name":"n","nativeSrc":"9025:1:23","nodeType":"YulIdentifier","src":"9025:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"9011:6:23","nodeType":"YulIdentifier","src":"9011:6:23"},"nativeSrc":"9011:16:23","nodeType":"YulFunctionCall","src":"9011:16:23"},"variables":[{"name":"r3","nativeSrc":"9005:2:23","nodeType":"YulTypedName","src":"9005:2:23","type":""}]},{"nativeSrc":"9083:279:23","nodeType":"YulAssignment","src":"9083:279:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9101:2:23","nodeType":"YulLiteral","src":"9101:2:23","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"9109:29:23","nodeType":"YulLiteral","src":"9109:29:23","type":"","value":"26614938895861601847173011183"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9168:3:23","nodeType":"YulLiteral","src":"9168:3:23","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9177:1:23","nodeType":"YulIdentifier","src":"9177:1:23"},{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9188:1:23","nodeType":"YulIdentifier","src":"9188:1:23"},{"name":"result","nativeSrc":"9191:6:23","nodeType":"YulIdentifier","src":"9191:6:23"}],"functionName":{"name":"and","nativeSrc":"9184:3:23","nodeType":"YulIdentifier","src":"9184:3:23"},"nativeSrc":"9184:14:23","nodeType":"YulFunctionCall","src":"9184:14:23"},{"arguments":[{"name":"m","nativeSrc":"9204:1:23","nodeType":"YulIdentifier","src":"9204:1:23"},{"name":"r1","nativeSrc":"9207:2:23","nodeType":"YulIdentifier","src":"9207:2:23"}],"functionName":{"name":"and","nativeSrc":"9200:3:23","nodeType":"YulIdentifier","src":"9200:3:23"},"nativeSrc":"9200:10:23","nodeType":"YulFunctionCall","src":"9200:10:23"}],"functionName":{"name":"add","nativeSrc":"9180:3:23","nodeType":"YulIdentifier","src":"9180:3:23"},"nativeSrc":"9180:31:23","nodeType":"YulFunctionCall","src":"9180:31:23"}],"functionName":{"name":"mul","nativeSrc":"9173:3:23","nodeType":"YulIdentifier","src":"9173:3:23"},"nativeSrc":"9173:39:23","nodeType":"YulFunctionCall","src":"9173:39:23"}],"functionName":{"name":"shr","nativeSrc":"9164:3:23","nodeType":"YulIdentifier","src":"9164:3:23"},"nativeSrc":"9164:49:23","nodeType":"YulFunctionCall","src":"9164:49:23"},{"arguments":[{"kind":"number","nativeSrc":"9235:3:23","nodeType":"YulLiteral","src":"9235:3:23","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9244:1:23","nodeType":"YulIdentifier","src":"9244:1:23"},{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9255:1:23","nodeType":"YulIdentifier","src":"9255:1:23"},{"name":"r2","nativeSrc":"9258:2:23","nodeType":"YulIdentifier","src":"9258:2:23"}],"functionName":{"name":"and","nativeSrc":"9251:3:23","nodeType":"YulIdentifier","src":"9251:3:23"},"nativeSrc":"9251:10:23","nodeType":"YulFunctionCall","src":"9251:10:23"},{"arguments":[{"name":"m","nativeSrc":"9267:1:23","nodeType":"YulIdentifier","src":"9267:1:23"},{"name":"r3","nativeSrc":"9270:2:23","nodeType":"YulIdentifier","src":"9270:2:23"}],"functionName":{"name":"and","nativeSrc":"9263:3:23","nodeType":"YulIdentifier","src":"9263:3:23"},"nativeSrc":"9263:10:23","nodeType":"YulFunctionCall","src":"9263:10:23"}],"functionName":{"name":"add","nativeSrc":"9247:3:23","nodeType":"YulIdentifier","src":"9247:3:23"},"nativeSrc":"9247:27:23","nodeType":"YulFunctionCall","src":"9247:27:23"}],"functionName":{"name":"mul","nativeSrc":"9240:3:23","nodeType":"YulIdentifier","src":"9240:3:23"},"nativeSrc":"9240:35:23","nodeType":"YulFunctionCall","src":"9240:35:23"}],"functionName":{"name":"shr","nativeSrc":"9231:3:23","nodeType":"YulIdentifier","src":"9231:3:23"},"nativeSrc":"9231:45:23","nodeType":"YulFunctionCall","src":"9231:45:23"}],"functionName":{"name":"add","nativeSrc":"9160:3:23","nodeType":"YulIdentifier","src":"9160:3:23"},"nativeSrc":"9160:117:23","nodeType":"YulFunctionCall","src":"9160:117:23"},{"arguments":[{"kind":"number","nativeSrc":"9299:3:23","nodeType":"YulLiteral","src":"9299:3:23","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9308:1:23","nodeType":"YulIdentifier","src":"9308:1:23"},{"arguments":[{"name":"m","nativeSrc":"9315:1:23","nodeType":"YulIdentifier","src":"9315:1:23"},{"arguments":[{"name":"r3","nativeSrc":"9325:2:23","nodeType":"YulIdentifier","src":"9325:2:23"},{"name":"a","nativeSrc":"9329:1:23","nodeType":"YulIdentifier","src":"9329:1:23"},{"name":"n","nativeSrc":"9332:1:23","nodeType":"YulIdentifier","src":"9332:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"9318:6:23","nodeType":"YulIdentifier","src":"9318:6:23"},"nativeSrc":"9318:16:23","nodeType":"YulFunctionCall","src":"9318:16:23"}],"functionName":{"name":"and","nativeSrc":"9311:3:23","nodeType":"YulIdentifier","src":"9311:3:23"},"nativeSrc":"9311:24:23","nodeType":"YulFunctionCall","src":"9311:24:23"}],"functionName":{"name":"mul","nativeSrc":"9304:3:23","nodeType":"YulIdentifier","src":"9304:3:23"},"nativeSrc":"9304:32:23","nodeType":"YulFunctionCall","src":"9304:32:23"}],"functionName":{"name":"shr","nativeSrc":"9295:3:23","nodeType":"YulIdentifier","src":"9295:3:23"},"nativeSrc":"9295:42:23","nodeType":"YulFunctionCall","src":"9295:42:23"}],"functionName":{"name":"add","nativeSrc":"9156:3:23","nodeType":"YulIdentifier","src":"9156:3:23"},"nativeSrc":"9156:182:23","nodeType":"YulFunctionCall","src":"9156:182:23"}],"functionName":{"name":"mul","nativeSrc":"9105:3:23","nodeType":"YulIdentifier","src":"9105:3:23"},"nativeSrc":"9105:234:23","nodeType":"YulFunctionCall","src":"9105:234:23"}],"functionName":{"name":"sar","nativeSrc":"9097:3:23","nodeType":"YulIdentifier","src":"9097:3:23"},"nativeSrc":"9097:243:23","nodeType":"YulFunctionCall","src":"9097:243:23"},{"kind":"number","nativeSrc":"9342:19:23","nodeType":"YulLiteral","src":"9342:19:23","type":"","value":"7745966692414833770"}],"functionName":{"name":"sub","nativeSrc":"9093:3:23","nodeType":"YulIdentifier","src":"9093:3:23"},"nativeSrc":"9093:269:23","nodeType":"YulFunctionCall","src":"9093:269:23"},"variableNames":[{"name":"result","nativeSrc":"9083:6:23","nodeType":"YulIdentifier","src":"9083:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10187,"isOffset":false,"isSlot":false,"src":"8508:4:23","valueSize":1},{"declaration":10187,"isOffset":false,"isSlot":false,"src":"8539:4:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"8488:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"8545:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"8936:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"9083:6:23","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"9191:6:23","valueSize":1}],"id":10192,"nodeType":"InlineAssembly","src":"8096:1276:23"}]},"documentation":{"id":10184,"nodeType":"StructuredDocumentation","src":"7870:85:23","text":"@dev Returns a sample from the standard normal distribution denominated in `WAD`."},"id":10194,"implemented":true,"kind":"function","modifiers":[],"name":"standardNormalWad","nameLocation":"7969:17:23","nodeType":"FunctionDefinition","parameters":{"id":10188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10187,"mutability":"mutable","name":"prng","nameLocation":"7999:4:23","nodeType":"VariableDeclaration","scope":10194,"src":"7987:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10186,"nodeType":"UserDefinedTypeName","pathNode":{"id":10185,"name":"PRNG","nameLocations":["7987:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"7987:4:23"},"referencedDeclaration":10121,"src":"7987:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"7986:18:23"},"returnParameters":{"id":10191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10190,"mutability":"mutable","name":"result","nameLocation":"8035:6:23","nodeType":"VariableDeclaration","scope":10194,"src":"8028:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10189,"name":"int256","nodeType":"ElementaryTypeName","src":"8028:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8027:15:23"},"scope":10307,"src":"7960:1418:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10204,"nodeType":"Block","src":"9556:1206:23","statements":[{"AST":{"nativeSrc":"9618:1138:23","nodeType":"YulBlock","src":"9618:1138:23","statements":[{"nativeSrc":"9763:30:23","nodeType":"YulVariableDeclaration","src":"9763:30:23","value":{"arguments":[{"name":"prng","nativeSrc":"9782:4:23","nodeType":"YulIdentifier","src":"9782:4:23"},{"kind":"number","nativeSrc":"9788:4:23","nodeType":"YulLiteral","src":"9788:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9772:9:23","nodeType":"YulIdentifier","src":"9772:9:23"},"nativeSrc":"9772:21:23","nodeType":"YulFunctionCall","src":"9772:21:23"},"variables":[{"name":"r","nativeSrc":"9767:1:23","nodeType":"YulTypedName","src":"9767:1:23","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"9813:4:23","nodeType":"YulIdentifier","src":"9813:4:23"},{"name":"r","nativeSrc":"9819:1:23","nodeType":"YulIdentifier","src":"9819:1:23"}],"functionName":{"name":"mstore","nativeSrc":"9806:6:23","nodeType":"YulIdentifier","src":"9806:6:23"},"nativeSrc":"9806:15:23","nodeType":"YulFunctionCall","src":"9806:15:23"},"nativeSrc":"9806:15:23","nodeType":"YulExpressionStatement","src":"9806:15:23"},{"nativeSrc":"9834:20:23","nodeType":"YulVariableDeclaration","src":"9834:20:23","value":{"arguments":[{"kind":"number","nativeSrc":"9847:3:23","nodeType":"YulLiteral","src":"9847:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"9852:1:23","nodeType":"YulIdentifier","src":"9852:1:23"}],"functionName":{"name":"shl","nativeSrc":"9843:3:23","nodeType":"YulIdentifier","src":"9843:3:23"},"nativeSrc":"9843:11:23","nodeType":"YulFunctionCall","src":"9843:11:23"},"variables":[{"name":"p","nativeSrc":"9838:1:23","nodeType":"YulTypedName","src":"9838:1:23","type":""}]},{"nativeSrc":"9867:18:23","nodeType":"YulVariableDeclaration","src":"9867:18:23","value":{"arguments":[{"kind":"number","nativeSrc":"9880:1:23","nodeType":"YulLiteral","src":"9880:1:23","type":"","value":"1"},{"name":"r","nativeSrc":"9883:1:23","nodeType":"YulIdentifier","src":"9883:1:23"}],"functionName":{"name":"shl","nativeSrc":"9876:3:23","nodeType":"YulIdentifier","src":"9876:3:23"},"nativeSrc":"9876:9:23","nodeType":"YulFunctionCall","src":"9876:9:23"},"variables":[{"name":"w","nativeSrc":"9871:1:23","nodeType":"YulTypedName","src":"9871:1:23","type":""}]},{"body":{"nativeSrc":"9918:753:23","nodeType":"YulBlock","src":"9918:753:23","statements":[{"nativeSrc":"9936:75:23","nodeType":"YulVariableDeclaration","src":"9936:75:23","value":{"kind":"number","nativeSrc":"9945:66:23","nodeType":"YulLiteral","src":"9945:66:23","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43"},"variables":[{"name":"n","nativeSrc":"9940:1:23","nodeType":"YulTypedName","src":"9940:1:23","type":""}]},{"nativeSrc":"10038:44:23","nodeType":"YulVariableDeclaration","src":"10038:44:23","value":{"kind":"number","nativeSrc":"10047:35:23","nodeType":"YulLiteral","src":"10047:35:23","type":"","value":"0x100000000000000000000000000000051"},"variables":[{"name":"a","nativeSrc":"10042:1:23","nodeType":"YulTypedName","src":"10042:1:23","type":""}]},{"body":{"nativeSrc":"10149:508:23","nodeType":"YulBlock","src":"10149:508:23","statements":[{"nativeSrc":"10171:20:23","nodeType":"YulAssignment","src":"10171:20:23","value":{"arguments":[{"name":"r","nativeSrc":"10183:1:23","nodeType":"YulIdentifier","src":"10183:1:23"},{"name":"a","nativeSrc":"10186:1:23","nodeType":"YulIdentifier","src":"10186:1:23"},{"name":"n","nativeSrc":"10189:1:23","nodeType":"YulIdentifier","src":"10189:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"10176:6:23","nodeType":"YulIdentifier","src":"10176:6:23"},"nativeSrc":"10176:15:23","nodeType":"YulFunctionCall","src":"10176:15:23"},"variableNames":[{"name":"r","nativeSrc":"10171:1:23","nodeType":"YulIdentifier","src":"10171:1:23"}]},{"body":{"nativeSrc":"10242:302:23","nodeType":"YulBlock","src":"10242:302:23","statements":[{"nativeSrc":"10268:20:23","nodeType":"YulAssignment","src":"10268:20:23","value":{"arguments":[{"name":"r","nativeSrc":"10280:1:23","nodeType":"YulIdentifier","src":"10280:1:23"},{"name":"a","nativeSrc":"10283:1:23","nodeType":"YulIdentifier","src":"10283:1:23"},{"name":"n","nativeSrc":"10286:1:23","nodeType":"YulIdentifier","src":"10286:1:23"}],"functionName":{"name":"mulmod","nativeSrc":"10273:6:23","nodeType":"YulIdentifier","src":"10273:6:23"},"nativeSrc":"10273:15:23","nodeType":"YulFunctionCall","src":"10273:15:23"},"variableNames":[{"name":"r","nativeSrc":"10268:1:23","nodeType":"YulIdentifier","src":"10268:1:23"}]},{"nativeSrc":"10313:42:23","nodeType":"YulAssignment","src":"10313:42:23","value":{"arguments":[{"kind":"number","nativeSrc":"10327:19:23","nodeType":"YulLiteral","src":"10327:19:23","type":"","value":"1000000000000000000"},{"name":"result","nativeSrc":"10348:6:23","nodeType":"YulIdentifier","src":"10348:6:23"}],"functionName":{"name":"add","nativeSrc":"10323:3:23","nodeType":"YulIdentifier","src":"10323:3:23"},"nativeSrc":"10323:32:23","nodeType":"YulFunctionCall","src":"10323:32:23"},"variableNames":[{"name":"result","nativeSrc":"10313:6:23","nodeType":"YulIdentifier","src":"10313:6:23"}]},{"nativeSrc":"10380:14:23","nodeType":"YulAssignment","src":"10380:14:23","value":{"arguments":[{"kind":"number","nativeSrc":"10389:1:23","nodeType":"YulLiteral","src":"10389:1:23","type":"","value":"1"},{"name":"r","nativeSrc":"10392:1:23","nodeType":"YulIdentifier","src":"10392:1:23"}],"functionName":{"name":"shl","nativeSrc":"10385:3:23","nodeType":"YulIdentifier","src":"10385:3:23"},"nativeSrc":"10385:9:23","nodeType":"YulFunctionCall","src":"10385:9:23"},"variableNames":[{"name":"w","nativeSrc":"10380:1:23","nodeType":"YulIdentifier","src":"10380:1:23"}]},{"nativeSrc":"10419:16:23","nodeType":"YulAssignment","src":"10419:16:23","value":{"arguments":[{"kind":"number","nativeSrc":"10428:3:23","nodeType":"YulLiteral","src":"10428:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"10433:1:23","nodeType":"YulIdentifier","src":"10433:1:23"}],"functionName":{"name":"shl","nativeSrc":"10424:3:23","nodeType":"YulIdentifier","src":"10424:3:23"},"nativeSrc":"10424:11:23","nodeType":"YulFunctionCall","src":"10424:11:23"},"variableNames":[{"name":"p","nativeSrc":"10419:1:23","nodeType":"YulIdentifier","src":"10419:1:23"}]},{"body":{"nativeSrc":"10480:9:23","nodeType":"YulBlock","src":"10480:9:23","statements":[{"nativeSrc":"10482:5:23","nodeType":"YulBreak","src":"10482:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"10473:1:23","nodeType":"YulIdentifier","src":"10473:1:23"},{"name":"p","nativeSrc":"10476:1:23","nodeType":"YulIdentifier","src":"10476:1:23"}],"functionName":{"name":"lt","nativeSrc":"10470:2:23","nodeType":"YulIdentifier","src":"10470:2:23"},"nativeSrc":"10470:8:23","nodeType":"YulFunctionCall","src":"10470:8:23"}],"functionName":{"name":"iszero","nativeSrc":"10463:6:23","nodeType":"YulIdentifier","src":"10463:6:23"},"nativeSrc":"10463:16:23","nodeType":"YulFunctionCall","src":"10463:16:23"},"nativeSrc":"10460:29:23","nodeType":"YulIf","src":"10460:29:23"},{"nativeSrc":"10514:8:23","nodeType":"YulContinue","src":"10514:8:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10229:3:23","nodeType":"YulLiteral","src":"10229:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"10234:1:23","nodeType":"YulIdentifier","src":"10234:1:23"}],"functionName":{"name":"shl","nativeSrc":"10225:3:23","nodeType":"YulIdentifier","src":"10225:3:23"},"nativeSrc":"10225:11:23","nodeType":"YulFunctionCall","src":"10225:11:23"},{"name":"w","nativeSrc":"10238:1:23","nodeType":"YulIdentifier","src":"10238:1:23"}],"functionName":{"name":"lt","nativeSrc":"10222:2:23","nodeType":"YulIdentifier","src":"10222:2:23"},"nativeSrc":"10222:18:23","nodeType":"YulFunctionCall","src":"10222:18:23"}],"functionName":{"name":"iszero","nativeSrc":"10215:6:23","nodeType":"YulIdentifier","src":"10215:6:23"},"nativeSrc":"10215:26:23","nodeType":"YulFunctionCall","src":"10215:26:23"},"nativeSrc":"10212:332:23","nodeType":"YulIf","src":"10212:332:23"},{"nativeSrc":"10565:14:23","nodeType":"YulAssignment","src":"10565:14:23","value":{"arguments":[{"kind":"number","nativeSrc":"10574:1:23","nodeType":"YulLiteral","src":"10574:1:23","type":"","value":"1"},{"name":"r","nativeSrc":"10577:1:23","nodeType":"YulIdentifier","src":"10577:1:23"}],"functionName":{"name":"shl","nativeSrc":"10570:3:23","nodeType":"YulIdentifier","src":"10570:3:23"},"nativeSrc":"10570:9:23","nodeType":"YulFunctionCall","src":"10570:9:23"},"variableNames":[{"name":"w","nativeSrc":"10565:1:23","nodeType":"YulIdentifier","src":"10565:1:23"}]},{"body":{"nativeSrc":"10630:9:23","nodeType":"YulBlock","src":"10630:9:23","statements":[{"nativeSrc":"10632:5:23","nodeType":"YulBreak","src":"10632:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"10613:1:23","nodeType":"YulIdentifier","src":"10613:1:23"},{"arguments":[{"kind":"number","nativeSrc":"10620:3:23","nodeType":"YulLiteral","src":"10620:3:23","type":"","value":"129"},{"name":"r","nativeSrc":"10625:1:23","nodeType":"YulIdentifier","src":"10625:1:23"}],"functionName":{"name":"shl","nativeSrc":"10616:3:23","nodeType":"YulIdentifier","src":"10616:3:23"},"nativeSrc":"10616:11:23","nodeType":"YulFunctionCall","src":"10616:11:23"}],"functionName":{"name":"lt","nativeSrc":"10610:2:23","nodeType":"YulIdentifier","src":"10610:2:23"},"nativeSrc":"10610:18:23","nodeType":"YulFunctionCall","src":"10610:18:23"}],"functionName":{"name":"iszero","nativeSrc":"10603:6:23","nodeType":"YulIdentifier","src":"10603:6:23"},"nativeSrc":"10603:26:23","nodeType":"YulFunctionCall","src":"10603:26:23"},"nativeSrc":"10600:39:23","nodeType":"YulIf","src":"10600:39:23"}]},"condition":{"kind":"number","nativeSrc":"10144:1:23","nodeType":"YulLiteral","src":"10144:1:23","type":"","value":"1"},"nativeSrc":"10137:520:23","nodeType":"YulForLoop","post":{"nativeSrc":"10146:2:23","nodeType":"YulBlock","src":"10146:2:23","statements":[]},"pre":{"nativeSrc":"10141:2:23","nodeType":"YulBlock","src":"10141:2:23","statements":[]},"src":"10137:520:23"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"9911:1:23","nodeType":"YulIdentifier","src":"9911:1:23"},{"name":"p","nativeSrc":"9914:1:23","nodeType":"YulIdentifier","src":"9914:1:23"}],"functionName":{"name":"gt","nativeSrc":"9908:2:23","nodeType":"YulIdentifier","src":"9908:2:23"},"nativeSrc":"9908:8:23","nodeType":"YulFunctionCall","src":"9908:8:23"}],"functionName":{"name":"iszero","nativeSrc":"9901:6:23","nodeType":"YulIdentifier","src":"9901:6:23"},"nativeSrc":"9901:16:23","nodeType":"YulFunctionCall","src":"9901:16:23"},"nativeSrc":"9898:773:23","nodeType":"YulIf","src":"9898:773:23"},{"nativeSrc":"10684:62:23","nodeType":"YulAssignment","src":"10684:62:23","value":{"arguments":[{"arguments":[{"name":"p","nativeSrc":"10702:1:23","nodeType":"YulIdentifier","src":"10702:1:23"},{"arguments":[{"kind":"number","nativeSrc":"10709:3:23","nodeType":"YulLiteral","src":"10709:3:23","type":"","value":"129"},{"kind":"number","nativeSrc":"10714:21:23","nodeType":"YulLiteral","src":"10714:21:23","type":"","value":"170141183460469231732"}],"functionName":{"name":"shl","nativeSrc":"10705:3:23","nodeType":"YulIdentifier","src":"10705:3:23"},"nativeSrc":"10705:31:23","nodeType":"YulFunctionCall","src":"10705:31:23"}],"functionName":{"name":"div","nativeSrc":"10698:3:23","nodeType":"YulIdentifier","src":"10698:3:23"},"nativeSrc":"10698:39:23","nodeType":"YulFunctionCall","src":"10698:39:23"},{"name":"result","nativeSrc":"10739:6:23","nodeType":"YulIdentifier","src":"10739:6:23"}],"functionName":{"name":"add","nativeSrc":"10694:3:23","nodeType":"YulIdentifier","src":"10694:3:23"},"nativeSrc":"10694:52:23","nodeType":"YulFunctionCall","src":"10694:52:23"},"variableNames":[{"name":"result","nativeSrc":"10684:6:23","nodeType":"YulIdentifier","src":"10684:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10198,"isOffset":false,"isSlot":false,"src":"9782:4:23","valueSize":1},{"declaration":10198,"isOffset":false,"isSlot":false,"src":"9813:4:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10313:6:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10348:6:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10684:6:23","valueSize":1},{"declaration":10201,"isOffset":false,"isSlot":false,"src":"10739:6:23","valueSize":1}],"id":10203,"nodeType":"InlineAssembly","src":"9609:1147:23"}]},"documentation":{"id":10195,"nodeType":"StructuredDocumentation","src":"9384:86:23","text":"@dev Returns a sample from the unit exponential distribution denominated in `WAD`."},"id":10205,"implemented":true,"kind":"function","modifiers":[],"name":"exponentialWad","nameLocation":"9484:14:23","nodeType":"FunctionDefinition","parameters":{"id":10199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"prng","nameLocation":"9511:4:23","nodeType":"VariableDeclaration","scope":10205,"src":"9499:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10197,"nodeType":"UserDefinedTypeName","pathNode":{"id":10196,"name":"PRNG","nameLocations":["9499:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"9499:4:23"},"referencedDeclaration":10121,"src":"9499:4:23","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"9498:18:23"},"returnParameters":{"id":10202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10201,"mutability":"mutable","name":"result","nameLocation":"9548:6:23","nodeType":"VariableDeclaration","scope":10205,"src":"9540:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10200,"name":"uint256","nodeType":"ElementaryTypeName","src":"9540:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:16:23"},"scope":10307,"src":"9475:1287:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10215,"nodeType":"Block","src":"11378:539:23","statements":[{"AST":{"nativeSrc":"11440:471:23","nodeType":"YulBlock","src":"11440:471:23","statements":[{"body":{"nativeSrc":"11491:132:23","nodeType":"YulBlock","src":"11491:132:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11516:4:23","nodeType":"YulLiteral","src":"11516:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11522:10:23","nodeType":"YulLiteral","src":"11522:10:23","type":"","value":"0x83b53941"}],"functionName":{"name":"mstore","nativeSrc":"11509:6:23","nodeType":"YulIdentifier","src":"11509:6:23"},"nativeSrc":"11509:24:23","nodeType":"YulFunctionCall","src":"11509:24:23"},"nativeSrc":"11509:24:23","nodeType":"YulExpressionStatement","src":"11509:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11598:4:23","nodeType":"YulLiteral","src":"11598:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11604:4:23","nodeType":"YulLiteral","src":"11604:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11591:6:23","nodeType":"YulIdentifier","src":"11591:6:23"},"nativeSrc":"11591:18:23","nodeType":"YulFunctionCall","src":"11591:18:23"},"nativeSrc":"11591:18:23","nodeType":"YulExpressionStatement","src":"11591:18:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"n","nativeSrc":"11471:1:23","nodeType":"YulIdentifier","src":"11471:1:23"},{"kind":"number","nativeSrc":"11474:1:23","nodeType":"YulLiteral","src":"11474:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"11467:3:23","nodeType":"YulIdentifier","src":"11467:3:23"},"nativeSrc":"11467:9:23","nodeType":"YulFunctionCall","src":"11467:9:23"},{"kind":"number","nativeSrc":"11478:10:23","nodeType":"YulLiteral","src":"11478:10:23","type":"","value":"0xfffffffe"}],"functionName":{"name":"lt","nativeSrc":"11464:2:23","nodeType":"YulIdentifier","src":"11464:2:23"},"nativeSrc":"11464:25:23","nodeType":"YulFunctionCall","src":"11464:25:23"}],"functionName":{"name":"iszero","nativeSrc":"11457:6:23","nodeType":"YulIdentifier","src":"11457:6:23"},"nativeSrc":"11457:33:23","nodeType":"YulFunctionCall","src":"11457:33:23"},"nativeSrc":"11454:169:23","nodeType":"YulIf","src":"11454:169:23"},{"body":{"nativeSrc":"11653:130:23","nodeType":"YulBlock","src":"11653:130:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11678:4:23","nodeType":"YulLiteral","src":"11678:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11684:10:23","nodeType":"YulLiteral","src":"11684:10:23","type":"","value":"0x0c9f11f2"}],"functionName":{"name":"mstore","nativeSrc":"11671:6:23","nodeType":"YulIdentifier","src":"11671:6:23"},"nativeSrc":"11671:24:23","nodeType":"YulFunctionCall","src":"11671:24:23"},"nativeSrc":"11671:24:23","nodeType":"YulExpressionStatement","src":"11671:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11758:4:23","nodeType":"YulLiteral","src":"11758:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11764:4:23","nodeType":"YulLiteral","src":"11764:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11751:6:23","nodeType":"YulIdentifier","src":"11751:6:23"},"nativeSrc":"11751:18:23","nodeType":"YulFunctionCall","src":"11751:18:23"},"nativeSrc":"11751:18:23","nodeType":"YulExpressionStatement","src":"11751:18:23"}]},"condition":{"arguments":[{"name":"$.slot","nativeSrc":"11645:6:23","nodeType":"YulIdentifier","src":"11645:6:23"}],"functionName":{"name":"sload","nativeSrc":"11639:5:23","nodeType":"YulIdentifier","src":"11639:5:23"},"nativeSrc":"11639:13:23","nodeType":"YulFunctionCall","src":"11639:13:23"},"nativeSrc":"11636:147:23","nodeType":"YulIf","src":"11636:147:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11803:4:23","nodeType":"YulLiteral","src":"11803:4:23","type":"","value":"0x00"},{"name":"$.slot","nativeSrc":"11809:6:23","nodeType":"YulIdentifier","src":"11809:6:23"}],"functionName":{"name":"mstore","nativeSrc":"11796:6:23","nodeType":"YulIdentifier","src":"11796:6:23"},"nativeSrc":"11796:20:23","nodeType":"YulFunctionCall","src":"11796:20:23"},"nativeSrc":"11796:20:23","nodeType":"YulExpressionStatement","src":"11796:20:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"11836:6:23","nodeType":"YulIdentifier","src":"11836:6:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11851:3:23","nodeType":"YulLiteral","src":"11851:3:23","type":"","value":"224"},{"name":"n","nativeSrc":"11856:1:23","nodeType":"YulIdentifier","src":"11856:1:23"}],"functionName":{"name":"shl","nativeSrc":"11847:3:23","nodeType":"YulIdentifier","src":"11847:3:23"},"nativeSrc":"11847:11:23","nodeType":"YulFunctionCall","src":"11847:11:23"},{"arguments":[{"kind":"number","nativeSrc":"11864:2:23","nodeType":"YulLiteral","src":"11864:2:23","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"11872:2:23","nodeType":"YulLiteral","src":"11872:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"11886:4:23","nodeType":"YulLiteral","src":"11886:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11892:4:23","nodeType":"YulLiteral","src":"11892:4:23","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11876:9:23","nodeType":"YulIdentifier","src":"11876:9:23"},"nativeSrc":"11876:21:23","nodeType":"YulFunctionCall","src":"11876:21:23"}],"functionName":{"name":"shr","nativeSrc":"11868:3:23","nodeType":"YulIdentifier","src":"11868:3:23"},"nativeSrc":"11868:30:23","nodeType":"YulFunctionCall","src":"11868:30:23"}],"functionName":{"name":"shl","nativeSrc":"11860:3:23","nodeType":"YulIdentifier","src":"11860:3:23"},"nativeSrc":"11860:39:23","nodeType":"YulFunctionCall","src":"11860:39:23"}],"functionName":{"name":"or","nativeSrc":"11844:2:23","nodeType":"YulIdentifier","src":"11844:2:23"},"nativeSrc":"11844:56:23","nodeType":"YulFunctionCall","src":"11844:56:23"}],"functionName":{"name":"sstore","nativeSrc":"11829:6:23","nodeType":"YulIdentifier","src":"11829:6:23"},"nativeSrc":"11829:72:23","nodeType":"YulFunctionCall","src":"11829:72:23"},"nativeSrc":"11829:72:23","nodeType":"YulExpressionStatement","src":"11829:72:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10209,"isOffset":false,"isSlot":true,"src":"11645:6:23","suffix":"slot","valueSize":1},{"declaration":10209,"isOffset":false,"isSlot":true,"src":"11809:6:23","suffix":"slot","valueSize":1},{"declaration":10209,"isOffset":false,"isSlot":true,"src":"11836:6:23","suffix":"slot","valueSize":1},{"declaration":10211,"isOffset":false,"isSlot":false,"src":"11471:1:23","valueSize":1},{"declaration":10211,"isOffset":false,"isSlot":false,"src":"11856:1:23","valueSize":1}],"id":10214,"nodeType":"InlineAssembly","src":"11431:480:23"}]},"documentation":{"id":10206,"nodeType":"StructuredDocumentation","src":"11051:258:23","text":"@dev Initializes the state for lazy-shuffling the range `[0..n)`.\n Reverts if `n == 0 || n >= 2**32 - 1`.\n Reverts if `$` has already been initialized.\n If you need to reduce the length after initialization, just use a fresh new `$`."},"id":10216,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"11323:10:23","nodeType":"FunctionDefinition","parameters":{"id":10212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10209,"mutability":"mutable","name":"$","nameLocation":"11355:1:23","nodeType":"VariableDeclaration","scope":10216,"src":"11334:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10208,"nodeType":"UserDefinedTypeName","pathNode":{"id":10207,"name":"LazyShuffler","nameLocations":["11334:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"11334:12:23"},"referencedDeclaration":10125,"src":"11334:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10211,"mutability":"mutable","name":"n","nameLocation":"11366:1:23","nodeType":"VariableDeclaration","scope":10216,"src":"11358:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10210,"name":"uint256","nodeType":"ElementaryTypeName","src":"11358:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11333:35:23"},"returnParameters":{"id":10213,"nodeType":"ParameterList","parameters":[],"src":"11378:0:23"},"scope":10307,"src":"11314:603:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10226,"nodeType":"Block","src":"12072:611:23","statements":[{"AST":{"nativeSrc":"12134:543:23","nodeType":"YulBlock","src":"12134:543:23","statements":[{"nativeSrc":"12148:26:23","nodeType":"YulVariableDeclaration","src":"12148:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"12167:6:23","nodeType":"YulIdentifier","src":"12167:6:23"}],"functionName":{"name":"sload","nativeSrc":"12161:5:23","nodeType":"YulIdentifier","src":"12161:5:23"},"nativeSrc":"12161:13:23","nodeType":"YulFunctionCall","src":"12161:13:23"},"variables":[{"name":"state","nativeSrc":"12152:5:23","nodeType":"YulTypedName","src":"12152:5:23","type":""}]},{"body":{"nativeSrc":"12314:128:23","nodeType":"YulBlock","src":"12314:128:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12339:4:23","nodeType":"YulLiteral","src":"12339:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12345:10:23","nodeType":"YulLiteral","src":"12345:10:23","type":"","value":"0xbed37c6e"}],"functionName":{"name":"mstore","nativeSrc":"12332:6:23","nodeType":"YulIdentifier","src":"12332:6:23"},"nativeSrc":"12332:24:23","nodeType":"YulFunctionCall","src":"12332:24:23"},"nativeSrc":"12332:24:23","nodeType":"YulExpressionStatement","src":"12332:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12417:4:23","nodeType":"YulLiteral","src":"12417:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12423:4:23","nodeType":"YulLiteral","src":"12423:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12410:6:23","nodeType":"YulIdentifier","src":"12410:6:23"},"nativeSrc":"12410:18:23","nodeType":"YulFunctionCall","src":"12410:18:23"},"nativeSrc":"12410:18:23","nodeType":"YulExpressionStatement","src":"12410:18:23"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"12294:1:23","nodeType":"YulIdentifier","src":"12294:1:23"},{"arguments":[{"kind":"number","nativeSrc":"12301:3:23","nodeType":"YulLiteral","src":"12301:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"12306:5:23","nodeType":"YulIdentifier","src":"12306:5:23"}],"functionName":{"name":"shr","nativeSrc":"12297:3:23","nodeType":"YulIdentifier","src":"12297:3:23"},"nativeSrc":"12297:15:23","nodeType":"YulFunctionCall","src":"12297:15:23"}],"functionName":{"name":"lt","nativeSrc":"12291:2:23","nodeType":"YulIdentifier","src":"12291:2:23"},"nativeSrc":"12291:22:23","nodeType":"YulFunctionCall","src":"12291:22:23"},"nativeSrc":"12288:154:23","nodeType":"YulIf","src":"12288:154:23"},{"body":{"nativeSrc":"12472:126:23","nodeType":"YulBlock","src":"12472:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12497:4:23","nodeType":"YulLiteral","src":"12497:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12503:10:23","nodeType":"YulLiteral","src":"12503:10:23","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"12490:6:23","nodeType":"YulIdentifier","src":"12490:6:23"},"nativeSrc":"12490:24:23","nodeType":"YulFunctionCall","src":"12490:24:23"},"nativeSrc":"12490:24:23","nodeType":"YulExpressionStatement","src":"12490:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12573:4:23","nodeType":"YulLiteral","src":"12573:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12579:4:23","nodeType":"YulLiteral","src":"12579:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12566:6:23","nodeType":"YulIdentifier","src":"12566:6:23"},"nativeSrc":"12566:18:23","nodeType":"YulFunctionCall","src":"12566:18:23"},"nativeSrc":"12566:18:23","nodeType":"YulExpressionStatement","src":"12566:18:23"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"12465:5:23","nodeType":"YulIdentifier","src":"12465:5:23"}],"functionName":{"name":"iszero","nativeSrc":"12458:6:23","nodeType":"YulIdentifier","src":"12458:6:23"},"nativeSrc":"12458:13:23","nodeType":"YulFunctionCall","src":"12458:13:23"},"nativeSrc":"12455:143:23","nodeType":"YulIf","src":"12455:143:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"12618:6:23","nodeType":"YulIdentifier","src":"12618:6:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12633:3:23","nodeType":"YulLiteral","src":"12633:3:23","type":"","value":"224"},{"name":"n","nativeSrc":"12638:1:23","nodeType":"YulIdentifier","src":"12638:1:23"}],"functionName":{"name":"shl","nativeSrc":"12629:3:23","nodeType":"YulIdentifier","src":"12629:3:23"},"nativeSrc":"12629:11:23","nodeType":"YulFunctionCall","src":"12629:11:23"},{"arguments":[{"kind":"number","nativeSrc":"12646:2:23","nodeType":"YulLiteral","src":"12646:2:23","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"12654:2:23","nodeType":"YulLiteral","src":"12654:2:23","type":"","value":"32"},{"name":"state","nativeSrc":"12658:5:23","nodeType":"YulIdentifier","src":"12658:5:23"}],"functionName":{"name":"shl","nativeSrc":"12650:3:23","nodeType":"YulIdentifier","src":"12650:3:23"},"nativeSrc":"12650:14:23","nodeType":"YulFunctionCall","src":"12650:14:23"}],"functionName":{"name":"shr","nativeSrc":"12642:3:23","nodeType":"YulIdentifier","src":"12642:3:23"},"nativeSrc":"12642:23:23","nodeType":"YulFunctionCall","src":"12642:23:23"}],"functionName":{"name":"or","nativeSrc":"12626:2:23","nodeType":"YulIdentifier","src":"12626:2:23"},"nativeSrc":"12626:40:23","nodeType":"YulFunctionCall","src":"12626:40:23"}],"functionName":{"name":"sstore","nativeSrc":"12611:6:23","nodeType":"YulIdentifier","src":"12611:6:23"},"nativeSrc":"12611:56:23","nodeType":"YulFunctionCall","src":"12611:56:23"},"nativeSrc":"12611:56:23","nodeType":"YulExpressionStatement","src":"12611:56:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10220,"isOffset":false,"isSlot":true,"src":"12167:6:23","suffix":"slot","valueSize":1},{"declaration":10220,"isOffset":false,"isSlot":true,"src":"12618:6:23","suffix":"slot","valueSize":1},{"declaration":10222,"isOffset":false,"isSlot":false,"src":"12294:1:23","valueSize":1},{"declaration":10222,"isOffset":false,"isSlot":false,"src":"12638:1:23","valueSize":1}],"id":10225,"nodeType":"InlineAssembly","src":"12125:552:23"}]},"documentation":{"id":10217,"nodeType":"StructuredDocumentation","src":"11923:86:23","text":"@dev Increases the length of `$`.\n Reverts if `$` has not been initialized."},"id":10227,"implemented":true,"kind":"function","modifiers":[],"name":"grow","nameLocation":"12023:4:23","nodeType":"FunctionDefinition","parameters":{"id":10223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10220,"mutability":"mutable","name":"$","nameLocation":"12049:1:23","nodeType":"VariableDeclaration","scope":10227,"src":"12028:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10219,"nodeType":"UserDefinedTypeName","pathNode":{"id":10218,"name":"LazyShuffler","nameLocations":["12028:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"12028:12:23"},"referencedDeclaration":10125,"src":"12028:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10222,"mutability":"mutable","name":"n","nameLocation":"12060:1:23","nodeType":"VariableDeclaration","scope":10227,"src":"12052:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10221,"name":"uint256","nodeType":"ElementaryTypeName","src":"12052:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12027:35:23"},"returnParameters":{"id":10224,"nodeType":"ParameterList","parameters":[],"src":"12072:0:23"},"scope":10307,"src":"12014:669:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10235,"nodeType":"Block","src":"13035:326:23","statements":[{"AST":{"nativeSrc":"13097:258:23","nodeType":"YulBlock","src":"13097:258:23","statements":[{"nativeSrc":"13111:26:23","nodeType":"YulVariableDeclaration","src":"13111:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"13130:6:23","nodeType":"YulIdentifier","src":"13130:6:23"}],"functionName":{"name":"sload","nativeSrc":"13124:5:23","nodeType":"YulIdentifier","src":"13124:5:23"},"nativeSrc":"13124:13:23","nodeType":"YulFunctionCall","src":"13124:13:23"},"variables":[{"name":"state","nativeSrc":"13115:5:23","nodeType":"YulTypedName","src":"13115:5:23","type":""}]},{"body":{"nativeSrc":"13167:126:23","nodeType":"YulBlock","src":"13167:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13192:4:23","nodeType":"YulLiteral","src":"13192:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13198:10:23","nodeType":"YulLiteral","src":"13198:10:23","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"13185:6:23","nodeType":"YulIdentifier","src":"13185:6:23"},"nativeSrc":"13185:24:23","nodeType":"YulFunctionCall","src":"13185:24:23"},"nativeSrc":"13185:24:23","nodeType":"YulExpressionStatement","src":"13185:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13268:4:23","nodeType":"YulLiteral","src":"13268:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13274:4:23","nodeType":"YulLiteral","src":"13274:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13261:6:23","nodeType":"YulIdentifier","src":"13261:6:23"},"nativeSrc":"13261:18:23","nodeType":"YulFunctionCall","src":"13261:18:23"},"nativeSrc":"13261:18:23","nodeType":"YulExpressionStatement","src":"13261:18:23"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"13160:5:23","nodeType":"YulIdentifier","src":"13160:5:23"}],"functionName":{"name":"iszero","nativeSrc":"13153:6:23","nodeType":"YulIdentifier","src":"13153:6:23"},"nativeSrc":"13153:13:23","nodeType":"YulFunctionCall","src":"13153:13:23"},"nativeSrc":"13150:143:23","nodeType":"YulIf","src":"13150:143:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"13313:6:23","nodeType":"YulIdentifier","src":"13313:6:23"},{"arguments":[{"kind":"number","nativeSrc":"13325:2:23","nodeType":"YulLiteral","src":"13325:2:23","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"13333:2:23","nodeType":"YulLiteral","src":"13333:2:23","type":"","value":"32"},{"name":"state","nativeSrc":"13337:5:23","nodeType":"YulIdentifier","src":"13337:5:23"}],"functionName":{"name":"shr","nativeSrc":"13329:3:23","nodeType":"YulIdentifier","src":"13329:3:23"},"nativeSrc":"13329:14:23","nodeType":"YulFunctionCall","src":"13329:14:23"}],"functionName":{"name":"shl","nativeSrc":"13321:3:23","nodeType":"YulIdentifier","src":"13321:3:23"},"nativeSrc":"13321:23:23","nodeType":"YulFunctionCall","src":"13321:23:23"}],"functionName":{"name":"sstore","nativeSrc":"13306:6:23","nodeType":"YulIdentifier","src":"13306:6:23"},"nativeSrc":"13306:39:23","nodeType":"YulFunctionCall","src":"13306:39:23"},"nativeSrc":"13306:39:23","nodeType":"YulExpressionStatement","src":"13306:39:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10231,"isOffset":false,"isSlot":true,"src":"13130:6:23","suffix":"slot","valueSize":1},{"declaration":10231,"isOffset":false,"isSlot":true,"src":"13313:6:23","suffix":"slot","valueSize":1}],"id":10234,"nodeType":"InlineAssembly","src":"13088:267:23"}]},"documentation":{"id":10228,"nodeType":"StructuredDocumentation","src":"12689:291:23","text":"@dev Restarts the shuffler by setting `numShuffled` to zero,\n such that all elements can be drawn again.\n Restarting does NOT clear the internal permutation, nor changes the length.\n Even with the same sequence of randomness, reshuffling can yield different results."},"id":10236,"implemented":true,"kind":"function","modifiers":[],"name":"restart","nameLocation":"12994:7:23","nodeType":"FunctionDefinition","parameters":{"id":10232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10231,"mutability":"mutable","name":"$","nameLocation":"13023:1:23","nodeType":"VariableDeclaration","scope":10236,"src":"13002:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10230,"nodeType":"UserDefinedTypeName","pathNode":{"id":10229,"name":"LazyShuffler","nameLocations":["13002:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"13002:12:23"},"referencedDeclaration":10125,"src":"13002:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13001:24:23"},"returnParameters":{"id":10233,"nodeType":"ParameterList","parameters":[],"src":"13035:0:23"},"scope":10307,"src":"12985:376:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10246,"nodeType":"Block","src":"13520:132:23","statements":[{"AST":{"nativeSrc":"13582:64:23","nodeType":"YulBlock","src":"13582:64:23","statements":[{"nativeSrc":"13596:40:23","nodeType":"YulAssignment","src":"13596:40:23","value":{"arguments":[{"kind":"number","nativeSrc":"13610:10:23","nodeType":"YulLiteral","src":"13610:10:23","type":"","value":"0xffffffff"},{"arguments":[{"name":"$.slot","nativeSrc":"13628:6:23","nodeType":"YulIdentifier","src":"13628:6:23"}],"functionName":{"name":"sload","nativeSrc":"13622:5:23","nodeType":"YulIdentifier","src":"13622:5:23"},"nativeSrc":"13622:13:23","nodeType":"YulFunctionCall","src":"13622:13:23"}],"functionName":{"name":"and","nativeSrc":"13606:3:23","nodeType":"YulIdentifier","src":"13606:3:23"},"nativeSrc":"13606:30:23","nodeType":"YulFunctionCall","src":"13606:30:23"},"variableNames":[{"name":"result","nativeSrc":"13596:6:23","nodeType":"YulIdentifier","src":"13596:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10240,"isOffset":false,"isSlot":true,"src":"13628:6:23","suffix":"slot","valueSize":1},{"declaration":10243,"isOffset":false,"isSlot":false,"src":"13596:6:23","valueSize":1}],"id":10245,"nodeType":"InlineAssembly","src":"13573:73:23"}]},"documentation":{"id":10237,"nodeType":"StructuredDocumentation","src":"13367:64:23","text":"@dev Returns the number of elements that have been shuffled."},"id":10247,"implemented":true,"kind":"function","modifiers":[],"name":"numShuffled","nameLocation":"13445:11:23","nodeType":"FunctionDefinition","parameters":{"id":10241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10240,"mutability":"mutable","name":"$","nameLocation":"13478:1:23","nodeType":"VariableDeclaration","scope":10247,"src":"13457:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10239,"nodeType":"UserDefinedTypeName","pathNode":{"id":10238,"name":"LazyShuffler","nameLocations":["13457:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"13457:12:23"},"referencedDeclaration":10125,"src":"13457:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13456:24:23"},"returnParameters":{"id":10244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10243,"mutability":"mutable","name":"result","nameLocation":"13512:6:23","nodeType":"VariableDeclaration","scope":10247,"src":"13504:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10242,"name":"uint256","nodeType":"ElementaryTypeName","src":"13504:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13503:16:23"},"scope":10307,"src":"13436:216:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10257,"nodeType":"Block","src":"13870:125:23","statements":[{"AST":{"nativeSrc":"13932:57:23","nodeType":"YulBlock","src":"13932:57:23","statements":[{"nativeSrc":"13946:33:23","nodeType":"YulAssignment","src":"13946:33:23","value":{"arguments":[{"kind":"number","nativeSrc":"13960:3:23","nodeType":"YulLiteral","src":"13960:3:23","type":"","value":"224"},{"arguments":[{"name":"$.slot","nativeSrc":"13971:6:23","nodeType":"YulIdentifier","src":"13971:6:23"}],"functionName":{"name":"sload","nativeSrc":"13965:5:23","nodeType":"YulIdentifier","src":"13965:5:23"},"nativeSrc":"13965:13:23","nodeType":"YulFunctionCall","src":"13965:13:23"}],"functionName":{"name":"shr","nativeSrc":"13956:3:23","nodeType":"YulIdentifier","src":"13956:3:23"},"nativeSrc":"13956:23:23","nodeType":"YulFunctionCall","src":"13956:23:23"},"variableNames":[{"name":"result","nativeSrc":"13946:6:23","nodeType":"YulIdentifier","src":"13946:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10251,"isOffset":false,"isSlot":true,"src":"13971:6:23","suffix":"slot","valueSize":1},{"declaration":10254,"isOffset":false,"isSlot":false,"src":"13946:6:23","valueSize":1}],"id":10256,"nodeType":"InlineAssembly","src":"13923:66:23"}]},"documentation":{"id":10248,"nodeType":"StructuredDocumentation","src":"13658:128:23","text":"@dev Returns the length of `$`.\n Returns zero if `$` is not initialized, else a non-zero value less than `2**32 - 1`."},"id":10258,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"13800:6:23","nodeType":"FunctionDefinition","parameters":{"id":10252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10251,"mutability":"mutable","name":"$","nameLocation":"13828:1:23","nodeType":"VariableDeclaration","scope":10258,"src":"13807:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10250,"nodeType":"UserDefinedTypeName","pathNode":{"id":10249,"name":"LazyShuffler","nameLocations":["13807:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"13807:12:23"},"referencedDeclaration":10125,"src":"13807:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13806:24:23"},"returnParameters":{"id":10255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10254,"mutability":"mutable","name":"result","nameLocation":"13862:6:23","nodeType":"VariableDeclaration","scope":10258,"src":"13854:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10253,"name":"uint256","nodeType":"ElementaryTypeName","src":"13854:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13853:16:23"},"scope":10307,"src":"13791:204:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10268,"nodeType":"Block","src":"14132:131:23","statements":[{"AST":{"nativeSrc":"14194:63:23","nodeType":"YulBlock","src":"14194:63:23","statements":[{"nativeSrc":"14208:39:23","nodeType":"YulAssignment","src":"14208:39:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"$.slot","nativeSrc":"14238:6:23","nodeType":"YulIdentifier","src":"14238:6:23"}],"functionName":{"name":"sload","nativeSrc":"14232:5:23","nodeType":"YulIdentifier","src":"14232:5:23"},"nativeSrc":"14232:13:23","nodeType":"YulFunctionCall","src":"14232:13:23"}],"functionName":{"name":"iszero","nativeSrc":"14225:6:23","nodeType":"YulIdentifier","src":"14225:6:23"},"nativeSrc":"14225:21:23","nodeType":"YulFunctionCall","src":"14225:21:23"}],"functionName":{"name":"iszero","nativeSrc":"14218:6:23","nodeType":"YulIdentifier","src":"14218:6:23"},"nativeSrc":"14218:29:23","nodeType":"YulFunctionCall","src":"14218:29:23"},"variableNames":[{"name":"result","nativeSrc":"14208:6:23","nodeType":"YulIdentifier","src":"14208:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10262,"isOffset":false,"isSlot":true,"src":"14238:6:23","suffix":"slot","valueSize":1},{"declaration":10265,"isOffset":false,"isSlot":false,"src":"14208:6:23","valueSize":1}],"id":10267,"nodeType":"InlineAssembly","src":"14185:72:23"}]},"documentation":{"id":10259,"nodeType":"StructuredDocumentation","src":"14001:45:23","text":"@dev Returns if `$` has been initialized."},"id":10269,"implemented":true,"kind":"function","modifiers":[],"name":"initialized","nameLocation":"14060:11:23","nodeType":"FunctionDefinition","parameters":{"id":10263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"mutability":"mutable","name":"$","nameLocation":"14093:1:23","nodeType":"VariableDeclaration","scope":10269,"src":"14072:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10261,"nodeType":"UserDefinedTypeName","pathNode":{"id":10260,"name":"LazyShuffler","nameLocations":["14072:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"14072:12:23"},"referencedDeclaration":10125,"src":"14072:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"14071:24:23"},"returnParameters":{"id":10266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10265,"mutability":"mutable","name":"result","nameLocation":"14124:6:23","nodeType":"VariableDeclaration","scope":10269,"src":"14119:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10264,"name":"bool","nodeType":"ElementaryTypeName","src":"14119:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14118:13:23"},"scope":10307,"src":"14051:212:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10279,"nodeType":"Block","src":"14459:368:23","statements":[{"AST":{"nativeSrc":"14521:300:23","nodeType":"YulBlock","src":"14521:300:23","statements":[{"nativeSrc":"14535:26:23","nodeType":"YulVariableDeclaration","src":"14535:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"14554:6:23","nodeType":"YulIdentifier","src":"14554:6:23"}],"functionName":{"name":"sload","nativeSrc":"14548:5:23","nodeType":"YulIdentifier","src":"14548:5:23"},"nativeSrc":"14548:13:23","nodeType":"YulFunctionCall","src":"14548:13:23"},"variables":[{"name":"state","nativeSrc":"14539:5:23","nodeType":"YulTypedName","src":"14539:5:23","type":""}]},{"body":{"nativeSrc":"14619:126:23","nodeType":"YulBlock","src":"14619:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14644:4:23","nodeType":"YulLiteral","src":"14644:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14650:10:23","nodeType":"YulLiteral","src":"14650:10:23","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"14637:6:23","nodeType":"YulIdentifier","src":"14637:6:23"},"nativeSrc":"14637:24:23","nodeType":"YulFunctionCall","src":"14637:24:23"},"nativeSrc":"14637:24:23","nodeType":"YulExpressionStatement","src":"14637:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14720:4:23","nodeType":"YulLiteral","src":"14720:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14726:4:23","nodeType":"YulLiteral","src":"14726:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"14713:6:23","nodeType":"YulIdentifier","src":"14713:6:23"},"nativeSrc":"14713:18:23","nodeType":"YulFunctionCall","src":"14713:18:23"},"nativeSrc":"14713:18:23","nodeType":"YulExpressionStatement","src":"14713:18:23"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"14612:5:23","nodeType":"YulIdentifier","src":"14612:5:23"}],"functionName":{"name":"iszero","nativeSrc":"14605:6:23","nodeType":"YulIdentifier","src":"14605:6:23"},"nativeSrc":"14605:13:23","nodeType":"YulFunctionCall","src":"14605:13:23"},"nativeSrc":"14602:143:23","nodeType":"YulIf","src":"14602:143:23"},{"nativeSrc":"14758:53:23","nodeType":"YulAssignment","src":"14758:53:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14775:3:23","nodeType":"YulLiteral","src":"14775:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"14780:5:23","nodeType":"YulIdentifier","src":"14780:5:23"}],"functionName":{"name":"shr","nativeSrc":"14771:3:23","nodeType":"YulIdentifier","src":"14771:3:23"},"nativeSrc":"14771:15:23","nodeType":"YulFunctionCall","src":"14771:15:23"},{"arguments":[{"kind":"number","nativeSrc":"14792:10:23","nodeType":"YulLiteral","src":"14792:10:23","type":"","value":"0xffffffff"},{"name":"state","nativeSrc":"14804:5:23","nodeType":"YulIdentifier","src":"14804:5:23"}],"functionName":{"name":"and","nativeSrc":"14788:3:23","nodeType":"YulIdentifier","src":"14788:3:23"},"nativeSrc":"14788:22:23","nodeType":"YulFunctionCall","src":"14788:22:23"}],"functionName":{"name":"eq","nativeSrc":"14768:2:23","nodeType":"YulIdentifier","src":"14768:2:23"},"nativeSrc":"14768:43:23","nodeType":"YulFunctionCall","src":"14768:43:23"},"variableNames":[{"name":"result","nativeSrc":"14758:6:23","nodeType":"YulIdentifier","src":"14758:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10273,"isOffset":false,"isSlot":true,"src":"14554:6:23","suffix":"slot","valueSize":1},{"declaration":10276,"isOffset":false,"isSlot":false,"src":"14758:6:23","valueSize":1}],"id":10278,"nodeType":"InlineAssembly","src":"14512:309:23"}]},"documentation":{"id":10270,"nodeType":"StructuredDocumentation","src":"14269:107:23","text":"@dev Returns if there are any more elements left to shuffle.\n Reverts if `$` is not initialized."},"id":10280,"implemented":true,"kind":"function","modifiers":[],"name":"finished","nameLocation":"14390:8:23","nodeType":"FunctionDefinition","parameters":{"id":10274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10273,"mutability":"mutable","name":"$","nameLocation":"14420:1:23","nodeType":"VariableDeclaration","scope":10280,"src":"14399:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10272,"nodeType":"UserDefinedTypeName","pathNode":{"id":10271,"name":"LazyShuffler","nameLocations":["14399:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"14399:12:23"},"referencedDeclaration":10125,"src":"14399:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"14398:24:23"},"returnParameters":{"id":10277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10276,"mutability":"mutable","name":"result","nameLocation":"14451:6:23","nodeType":"VariableDeclaration","scope":10280,"src":"14446:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10275,"name":"bool","nodeType":"ElementaryTypeName","src":"14446:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14445:13:23"},"scope":10307,"src":"14381:446:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10292,"nodeType":"Block","src":"15099:788:23","statements":[{"AST":{"nativeSrc":"15161:720:23","nodeType":"YulBlock","src":"15161:720:23","statements":[{"nativeSrc":"15175:26:23","nodeType":"YulVariableDeclaration","src":"15175:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"15194:6:23","nodeType":"YulIdentifier","src":"15194:6:23"}],"functionName":{"name":"sload","nativeSrc":"15188:5:23","nodeType":"YulIdentifier","src":"15188:5:23"},"nativeSrc":"15188:13:23","nodeType":"YulFunctionCall","src":"15188:13:23"},"variables":[{"name":"state","nativeSrc":"15179:5:23","nodeType":"YulTypedName","src":"15179:5:23","type":""}]},{"nativeSrc":"15242:24:23","nodeType":"YulVariableDeclaration","src":"15242:24:23","value":{"arguments":[{"kind":"number","nativeSrc":"15255:3:23","nodeType":"YulLiteral","src":"15255:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"15260:5:23","nodeType":"YulIdentifier","src":"15260:5:23"}],"functionName":{"name":"shr","nativeSrc":"15251:3:23","nodeType":"YulIdentifier","src":"15251:3:23"},"nativeSrc":"15251:15:23","nodeType":"YulFunctionCall","src":"15251:15:23"},"variables":[{"name":"n","nativeSrc":"15246:1:23","nodeType":"YulTypedName","src":"15246:1:23","type":""}]},{"body":{"nativeSrc":"15321:126:23","nodeType":"YulBlock","src":"15321:126:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15346:4:23","nodeType":"YulLiteral","src":"15346:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15352:10:23","nodeType":"YulLiteral","src":"15352:10:23","type":"","value":"0x61367cc4"}],"functionName":{"name":"mstore","nativeSrc":"15339:6:23","nodeType":"YulIdentifier","src":"15339:6:23"},"nativeSrc":"15339:24:23","nodeType":"YulFunctionCall","src":"15339:24:23"},"nativeSrc":"15339:24:23","nodeType":"YulExpressionStatement","src":"15339:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15422:4:23","nodeType":"YulLiteral","src":"15422:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15428:4:23","nodeType":"YulLiteral","src":"15428:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15415:6:23","nodeType":"YulIdentifier","src":"15415:6:23"},"nativeSrc":"15415:18:23","nodeType":"YulFunctionCall","src":"15415:18:23"},"nativeSrc":"15415:18:23","nodeType":"YulExpressionStatement","src":"15415:18:23"}]},"condition":{"arguments":[{"arguments":[{"name":"index","nativeSrc":"15310:5:23","nodeType":"YulIdentifier","src":"15310:5:23"},{"name":"n","nativeSrc":"15317:1:23","nodeType":"YulIdentifier","src":"15317:1:23"}],"functionName":{"name":"lt","nativeSrc":"15307:2:23","nodeType":"YulIdentifier","src":"15307:2:23"},"nativeSrc":"15307:12:23","nodeType":"YulFunctionCall","src":"15307:12:23"}],"functionName":{"name":"iszero","nativeSrc":"15300:6:23","nodeType":"YulIdentifier","src":"15300:6:23"},"nativeSrc":"15300:20:23","nodeType":"YulFunctionCall","src":"15300:20:23"},"nativeSrc":"15297:150:23","nodeType":"YulIf","src":"15297:150:23"},{"nativeSrc":"15460:24:23","nodeType":"YulVariableDeclaration","src":"15460:24:23","value":{"arguments":[{"name":"n","nativeSrc":"15474:1:23","nodeType":"YulIdentifier","src":"15474:1:23"},{"kind":"number","nativeSrc":"15477:6:23","nodeType":"YulLiteral","src":"15477:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"15471:2:23","nodeType":"YulIdentifier","src":"15471:2:23"},"nativeSrc":"15471:13:23","nodeType":"YulFunctionCall","src":"15471:13:23"},"variables":[{"name":"u32","nativeSrc":"15464:3:23","nodeType":"YulTypedName","src":"15464:3:23","type":""}]},{"nativeSrc":"15497:62:23","nodeType":"YulVariableDeclaration","src":"15497:62:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15518:1:23","nodeType":"YulLiteral","src":"15518:1:23","type":"","value":"4"},{"name":"u32","nativeSrc":"15521:3:23","nodeType":"YulIdentifier","src":"15521:3:23"}],"functionName":{"name":"sub","nativeSrc":"15514:3:23","nodeType":"YulIdentifier","src":"15514:3:23"},"nativeSrc":"15514:11:23","nodeType":"YulFunctionCall","src":"15514:11:23"},{"name":"index","nativeSrc":"15527:5:23","nodeType":"YulIdentifier","src":"15527:5:23"}],"functionName":{"name":"shr","nativeSrc":"15510:3:23","nodeType":"YulIdentifier","src":"15510:3:23"},"nativeSrc":"15510:23:23","nodeType":"YulFunctionCall","src":"15510:23:23"},{"arguments":[{"kind":"number","nativeSrc":"15539:2:23","nodeType":"YulLiteral","src":"15539:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"15547:2:23","nodeType":"YulLiteral","src":"15547:2:23","type":"","value":"32"},{"name":"state","nativeSrc":"15551:5:23","nodeType":"YulIdentifier","src":"15551:5:23"}],"functionName":{"name":"shl","nativeSrc":"15543:3:23","nodeType":"YulIdentifier","src":"15543:3:23"},"nativeSrc":"15543:14:23","nodeType":"YulFunctionCall","src":"15543:14:23"}],"functionName":{"name":"shr","nativeSrc":"15535:3:23","nodeType":"YulIdentifier","src":"15535:3:23"},"nativeSrc":"15535:23:23","nodeType":"YulFunctionCall","src":"15535:23:23"}],"functionName":{"name":"add","nativeSrc":"15506:3:23","nodeType":"YulIdentifier","src":"15506:3:23"},"nativeSrc":"15506:53:23","nodeType":"YulFunctionCall","src":"15506:53:23"},"variables":[{"name":"s","nativeSrc":"15501:1:23","nodeType":"YulTypedName","src":"15501:1:23","type":""}]},{"nativeSrc":"15588:51:23","nodeType":"YulVariableDeclaration","src":"15588:51:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15605:1:23","nodeType":"YulLiteral","src":"15605:1:23","type":"","value":"4"},{"name":"u32","nativeSrc":"15608:3:23","nodeType":"YulIdentifier","src":"15608:3:23"}],"functionName":{"name":"add","nativeSrc":"15601:3:23","nodeType":"YulIdentifier","src":"15601:3:23"},"nativeSrc":"15601:11:23","nodeType":"YulFunctionCall","src":"15601:11:23"},{"arguments":[{"name":"index","nativeSrc":"15618:5:23","nodeType":"YulIdentifier","src":"15618:5:23"},{"arguments":[{"name":"u32","nativeSrc":"15629:3:23","nodeType":"YulIdentifier","src":"15629:3:23"},{"kind":"number","nativeSrc":"15634:2:23","nodeType":"YulLiteral","src":"15634:2:23","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"15625:3:23","nodeType":"YulIdentifier","src":"15625:3:23"},"nativeSrc":"15625:12:23","nodeType":"YulFunctionCall","src":"15625:12:23"}],"functionName":{"name":"and","nativeSrc":"15614:3:23","nodeType":"YulIdentifier","src":"15614:3:23"},"nativeSrc":"15614:24:23","nodeType":"YulFunctionCall","src":"15614:24:23"}],"functionName":{"name":"shl","nativeSrc":"15597:3:23","nodeType":"YulIdentifier","src":"15597:3:23"},"nativeSrc":"15597:42:23","nodeType":"YulFunctionCall","src":"15597:42:23"},"variables":[{"name":"o","nativeSrc":"15592:1:23","nodeType":"YulTypedName","src":"15592:1:23","type":""}]},{"nativeSrc":"15682:37:23","nodeType":"YulVariableDeclaration","src":"15682:37:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32","nativeSrc":"15703:3:23","nodeType":"YulIdentifier","src":"15703:3:23"},{"kind":"number","nativeSrc":"15708:2:23","nodeType":"YulLiteral","src":"15708:2:23","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"15699:3:23","nodeType":"YulIdentifier","src":"15699:3:23"},"nativeSrc":"15699:12:23","nodeType":"YulFunctionCall","src":"15699:12:23"},{"kind":"number","nativeSrc":"15713:1:23","nodeType":"YulLiteral","src":"15713:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15695:3:23","nodeType":"YulIdentifier","src":"15695:3:23"},"nativeSrc":"15695:20:23","nodeType":"YulFunctionCall","src":"15695:20:23"},{"kind":"number","nativeSrc":"15717:1:23","nodeType":"YulLiteral","src":"15717:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15691:3:23","nodeType":"YulIdentifier","src":"15691:3:23"},"nativeSrc":"15691:28:23","nodeType":"YulFunctionCall","src":"15691:28:23"},"variables":[{"name":"m","nativeSrc":"15686:1:23","nodeType":"YulTypedName","src":"15686:1:23","type":""}]},{"nativeSrc":"15747:34:23","nodeType":"YulAssignment","src":"15747:34:23","value":{"arguments":[{"name":"m","nativeSrc":"15761:1:23","nodeType":"YulIdentifier","src":"15761:1:23"},{"arguments":[{"name":"o","nativeSrc":"15768:1:23","nodeType":"YulIdentifier","src":"15768:1:23"},{"arguments":[{"name":"s","nativeSrc":"15777:1:23","nodeType":"YulIdentifier","src":"15777:1:23"}],"functionName":{"name":"sload","nativeSrc":"15771:5:23","nodeType":"YulIdentifier","src":"15771:5:23"},"nativeSrc":"15771:8:23","nodeType":"YulFunctionCall","src":"15771:8:23"}],"functionName":{"name":"shr","nativeSrc":"15764:3:23","nodeType":"YulIdentifier","src":"15764:3:23"},"nativeSrc":"15764:16:23","nodeType":"YulFunctionCall","src":"15764:16:23"}],"functionName":{"name":"and","nativeSrc":"15757:3:23","nodeType":"YulIdentifier","src":"15757:3:23"},"nativeSrc":"15757:24:23","nodeType":"YulFunctionCall","src":"15757:24:23"},"variableNames":[{"name":"result","nativeSrc":"15747:6:23","nodeType":"YulIdentifier","src":"15747:6:23"}]},{"nativeSrc":"15794:77:23","nodeType":"YulAssignment","src":"15794:77:23","value":{"arguments":[{"name":"index","nativeSrc":"15808:5:23","nodeType":"YulIdentifier","src":"15808:5:23"},{"arguments":[{"arguments":[{"name":"index","nativeSrc":"15823:5:23","nodeType":"YulIdentifier","src":"15823:5:23"},{"arguments":[{"name":"result","nativeSrc":"15834:6:23","nodeType":"YulIdentifier","src":"15834:6:23"},{"kind":"number","nativeSrc":"15842:1:23","nodeType":"YulLiteral","src":"15842:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15830:3:23","nodeType":"YulIdentifier","src":"15830:3:23"},"nativeSrc":"15830:14:23","nodeType":"YulFunctionCall","src":"15830:14:23"}],"functionName":{"name":"xor","nativeSrc":"15819:3:23","nodeType":"YulIdentifier","src":"15819:3:23"},"nativeSrc":"15819:26:23","nodeType":"YulFunctionCall","src":"15819:26:23"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"15861:6:23","nodeType":"YulIdentifier","src":"15861:6:23"}],"functionName":{"name":"iszero","nativeSrc":"15854:6:23","nodeType":"YulIdentifier","src":"15854:6:23"},"nativeSrc":"15854:14:23","nodeType":"YulFunctionCall","src":"15854:14:23"}],"functionName":{"name":"iszero","nativeSrc":"15847:6:23","nodeType":"YulIdentifier","src":"15847:6:23"},"nativeSrc":"15847:22:23","nodeType":"YulFunctionCall","src":"15847:22:23"}],"functionName":{"name":"mul","nativeSrc":"15815:3:23","nodeType":"YulIdentifier","src":"15815:3:23"},"nativeSrc":"15815:55:23","nodeType":"YulFunctionCall","src":"15815:55:23"}],"functionName":{"name":"xor","nativeSrc":"15804:3:23","nodeType":"YulIdentifier","src":"15804:3:23"},"nativeSrc":"15804:67:23","nodeType":"YulFunctionCall","src":"15804:67:23"},"variableNames":[{"name":"result","nativeSrc":"15794:6:23","nodeType":"YulIdentifier","src":"15794:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10284,"isOffset":false,"isSlot":true,"src":"15194:6:23","suffix":"slot","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15310:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15527:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15618:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15808:5:23","valueSize":1},{"declaration":10286,"isOffset":false,"isSlot":false,"src":"15823:5:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15747:6:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15794:6:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15834:6:23","valueSize":1},{"declaration":10289,"isOffset":false,"isSlot":false,"src":"15861:6:23","valueSize":1}],"id":10291,"nodeType":"InlineAssembly","src":"15152:729:23"}]},"documentation":{"id":10281,"nodeType":"StructuredDocumentation","src":"14833:170:23","text":"@dev Returns the current value stored at `index`, accounting for all historical shuffling.\n Reverts if `index` is greater than or equal to the `length` of `$`."},"id":10293,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"15017:3:23","nodeType":"FunctionDefinition","parameters":{"id":10287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10284,"mutability":"mutable","name":"$","nameLocation":"15042:1:23","nodeType":"VariableDeclaration","scope":10293,"src":"15021:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10283,"nodeType":"UserDefinedTypeName","pathNode":{"id":10282,"name":"LazyShuffler","nameLocations":["15021:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"15021:12:23"},"referencedDeclaration":10125,"src":"15021:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10286,"mutability":"mutable","name":"index","nameLocation":"15053:5:23","nodeType":"VariableDeclaration","scope":10293,"src":"15045:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10285,"name":"uint256","nodeType":"ElementaryTypeName","src":"15045:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15020:39:23"},"returnParameters":{"id":10290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10289,"mutability":"mutable","name":"result","nameLocation":"15091:6:23","nodeType":"VariableDeclaration","scope":10293,"src":"15083:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10288,"name":"uint256","nodeType":"ElementaryTypeName","src":"15083:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15082:16:23"},"scope":10307,"src":"15008:879:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10305,"nodeType":"Block","src":"16339:2072:23","statements":[{"AST":{"nativeSrc":"16401:2004:23","nodeType":"YulBlock","src":"16401:2004:23","statements":[{"body":{"nativeSrc":"16457:421:23","nodeType":"YulBlock","src":"16457:421:23","statements":[{"nativeSrc":"16475:62:23","nodeType":"YulVariableDeclaration","src":"16475:62:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16497:1:23","nodeType":"YulLiteral","src":"16497:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"16500:4:23","nodeType":"YulIdentifier","src":"16500:4:23"}],"functionName":{"name":"sub","nativeSrc":"16493:3:23","nodeType":"YulIdentifier","src":"16493:3:23"},"nativeSrc":"16493:12:23","nodeType":"YulFunctionCall","src":"16493:12:23"},{"name":"i_","nativeSrc":"16507:2:23","nodeType":"YulIdentifier","src":"16507:2:23"}],"functionName":{"name":"shr","nativeSrc":"16489:3:23","nodeType":"YulIdentifier","src":"16489:3:23"},"nativeSrc":"16489:21:23","nodeType":"YulFunctionCall","src":"16489:21:23"},{"arguments":[{"kind":"number","nativeSrc":"16516:2:23","nodeType":"YulLiteral","src":"16516:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"16524:2:23","nodeType":"YulLiteral","src":"16524:2:23","type":"","value":"32"},{"name":"state_","nativeSrc":"16528:6:23","nodeType":"YulIdentifier","src":"16528:6:23"}],"functionName":{"name":"shl","nativeSrc":"16520:3:23","nodeType":"YulIdentifier","src":"16520:3:23"},"nativeSrc":"16520:15:23","nodeType":"YulFunctionCall","src":"16520:15:23"}],"functionName":{"name":"shr","nativeSrc":"16512:3:23","nodeType":"YulIdentifier","src":"16512:3:23"},"nativeSrc":"16512:24:23","nodeType":"YulFunctionCall","src":"16512:24:23"}],"functionName":{"name":"add","nativeSrc":"16485:3:23","nodeType":"YulIdentifier","src":"16485:3:23"},"nativeSrc":"16485:52:23","nodeType":"YulFunctionCall","src":"16485:52:23"},"variables":[{"name":"s_","nativeSrc":"16479:2:23","nodeType":"YulTypedName","src":"16479:2:23","type":""}]},{"nativeSrc":"16570:51:23","nodeType":"YulVariableDeclaration","src":"16570:51:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16588:1:23","nodeType":"YulLiteral","src":"16588:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"16591:4:23","nodeType":"YulIdentifier","src":"16591:4:23"}],"functionName":{"name":"add","nativeSrc":"16584:3:23","nodeType":"YulIdentifier","src":"16584:3:23"},"nativeSrc":"16584:12:23","nodeType":"YulFunctionCall","src":"16584:12:23"},{"arguments":[{"name":"i_","nativeSrc":"16602:2:23","nodeType":"YulIdentifier","src":"16602:2:23"},{"arguments":[{"name":"u32_","nativeSrc":"16610:4:23","nodeType":"YulIdentifier","src":"16610:4:23"},{"kind":"number","nativeSrc":"16616:2:23","nodeType":"YulLiteral","src":"16616:2:23","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"16606:3:23","nodeType":"YulIdentifier","src":"16606:3:23"},"nativeSrc":"16606:13:23","nodeType":"YulFunctionCall","src":"16606:13:23"}],"functionName":{"name":"and","nativeSrc":"16598:3:23","nodeType":"YulIdentifier","src":"16598:3:23"},"nativeSrc":"16598:22:23","nodeType":"YulFunctionCall","src":"16598:22:23"}],"functionName":{"name":"shl","nativeSrc":"16580:3:23","nodeType":"YulIdentifier","src":"16580:3:23"},"nativeSrc":"16580:41:23","nodeType":"YulFunctionCall","src":"16580:41:23"},"variables":[{"name":"o_","nativeSrc":"16574:2:23","nodeType":"YulTypedName","src":"16574:2:23","type":""}]},{"nativeSrc":"16668:39:23","nodeType":"YulVariableDeclaration","src":"16668:39:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32_","nativeSrc":"16690:4:23","nodeType":"YulIdentifier","src":"16690:4:23"},{"kind":"number","nativeSrc":"16696:2:23","nodeType":"YulLiteral","src":"16696:2:23","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"16686:3:23","nodeType":"YulIdentifier","src":"16686:3:23"},"nativeSrc":"16686:13:23","nodeType":"YulFunctionCall","src":"16686:13:23"},{"kind":"number","nativeSrc":"16701:1:23","nodeType":"YulLiteral","src":"16701:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"16682:3:23","nodeType":"YulIdentifier","src":"16682:3:23"},"nativeSrc":"16682:21:23","nodeType":"YulFunctionCall","src":"16682:21:23"},{"kind":"number","nativeSrc":"16705:1:23","nodeType":"YulLiteral","src":"16705:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16678:3:23","nodeType":"YulIdentifier","src":"16678:3:23"},"nativeSrc":"16678:29:23","nodeType":"YulFunctionCall","src":"16678:29:23"},"variables":[{"name":"m_","nativeSrc":"16672:2:23","nodeType":"YulTypedName","src":"16672:2:23","type":""}]},{"nativeSrc":"16739:37:23","nodeType":"YulAssignment","src":"16739:37:23","value":{"arguments":[{"name":"m_","nativeSrc":"16753:2:23","nodeType":"YulIdentifier","src":"16753:2:23"},{"arguments":[{"name":"o_","nativeSrc":"16761:2:23","nodeType":"YulIdentifier","src":"16761:2:23"},{"arguments":[{"name":"s_","nativeSrc":"16771:2:23","nodeType":"YulIdentifier","src":"16771:2:23"}],"functionName":{"name":"sload","nativeSrc":"16765:5:23","nodeType":"YulIdentifier","src":"16765:5:23"},"nativeSrc":"16765:9:23","nodeType":"YulFunctionCall","src":"16765:9:23"}],"functionName":{"name":"shr","nativeSrc":"16757:3:23","nodeType":"YulIdentifier","src":"16757:3:23"},"nativeSrc":"16757:18:23","nodeType":"YulFunctionCall","src":"16757:18:23"}],"functionName":{"name":"and","nativeSrc":"16749:3:23","nodeType":"YulIdentifier","src":"16749:3:23"},"nativeSrc":"16749:27:23","nodeType":"YulFunctionCall","src":"16749:27:23"},"variableNames":[{"name":"_value","nativeSrc":"16739:6:23","nodeType":"YulIdentifier","src":"16739:6:23"}]},{"nativeSrc":"16793:71:23","nodeType":"YulAssignment","src":"16793:71:23","value":{"arguments":[{"name":"i_","nativeSrc":"16807:2:23","nodeType":"YulIdentifier","src":"16807:2:23"},{"arguments":[{"arguments":[{"name":"i_","nativeSrc":"16819:2:23","nodeType":"YulIdentifier","src":"16819:2:23"},{"arguments":[{"name":"_value","nativeSrc":"16827:6:23","nodeType":"YulIdentifier","src":"16827:6:23"},{"kind":"number","nativeSrc":"16835:1:23","nodeType":"YulLiteral","src":"16835:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16823:3:23","nodeType":"YulIdentifier","src":"16823:3:23"},"nativeSrc":"16823:14:23","nodeType":"YulFunctionCall","src":"16823:14:23"}],"functionName":{"name":"xor","nativeSrc":"16815:3:23","nodeType":"YulIdentifier","src":"16815:3:23"},"nativeSrc":"16815:23:23","nodeType":"YulFunctionCall","src":"16815:23:23"},{"arguments":[{"arguments":[{"name":"_value","nativeSrc":"16854:6:23","nodeType":"YulIdentifier","src":"16854:6:23"}],"functionName":{"name":"iszero","nativeSrc":"16847:6:23","nodeType":"YulIdentifier","src":"16847:6:23"},"nativeSrc":"16847:14:23","nodeType":"YulFunctionCall","src":"16847:14:23"}],"functionName":{"name":"iszero","nativeSrc":"16840:6:23","nodeType":"YulIdentifier","src":"16840:6:23"},"nativeSrc":"16840:22:23","nodeType":"YulFunctionCall","src":"16840:22:23"}],"functionName":{"name":"mul","nativeSrc":"16811:3:23","nodeType":"YulIdentifier","src":"16811:3:23"},"nativeSrc":"16811:52:23","nodeType":"YulFunctionCall","src":"16811:52:23"}],"functionName":{"name":"xor","nativeSrc":"16803:3:23","nodeType":"YulIdentifier","src":"16803:3:23"},"nativeSrc":"16803:61:23","nodeType":"YulFunctionCall","src":"16803:61:23"},"variableNames":[{"name":"_value","nativeSrc":"16793:6:23","nodeType":"YulIdentifier","src":"16793:6:23"}]}]},"name":"_get","nativeSrc":"16415:463:23","nodeType":"YulFunctionDefinition","parameters":[{"name":"u32_","nativeSrc":"16429:4:23","nodeType":"YulTypedName","src":"16429:4:23","type":""},{"name":"state_","nativeSrc":"16435:6:23","nodeType":"YulTypedName","src":"16435:6:23","type":""},{"name":"i_","nativeSrc":"16443:2:23","nodeType":"YulTypedName","src":"16443:2:23","type":""}],"returnVariables":[{"name":"_value","nativeSrc":"16450:6:23","nodeType":"YulTypedName","src":"16450:6:23","type":""}],"src":"16415:463:23"},{"body":{"nativeSrc":"16931:487:23","nodeType":"YulBlock","src":"16931:487:23","statements":[{"nativeSrc":"16949:62:23","nodeType":"YulVariableDeclaration","src":"16949:62:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16971:1:23","nodeType":"YulLiteral","src":"16971:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"16974:4:23","nodeType":"YulIdentifier","src":"16974:4:23"}],"functionName":{"name":"sub","nativeSrc":"16967:3:23","nodeType":"YulIdentifier","src":"16967:3:23"},"nativeSrc":"16967:12:23","nodeType":"YulFunctionCall","src":"16967:12:23"},{"name":"i_","nativeSrc":"16981:2:23","nodeType":"YulIdentifier","src":"16981:2:23"}],"functionName":{"name":"shr","nativeSrc":"16963:3:23","nodeType":"YulIdentifier","src":"16963:3:23"},"nativeSrc":"16963:21:23","nodeType":"YulFunctionCall","src":"16963:21:23"},{"arguments":[{"kind":"number","nativeSrc":"16990:2:23","nodeType":"YulLiteral","src":"16990:2:23","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"16998:2:23","nodeType":"YulLiteral","src":"16998:2:23","type":"","value":"32"},{"name":"state_","nativeSrc":"17002:6:23","nodeType":"YulIdentifier","src":"17002:6:23"}],"functionName":{"name":"shl","nativeSrc":"16994:3:23","nodeType":"YulIdentifier","src":"16994:3:23"},"nativeSrc":"16994:15:23","nodeType":"YulFunctionCall","src":"16994:15:23"}],"functionName":{"name":"shr","nativeSrc":"16986:3:23","nodeType":"YulIdentifier","src":"16986:3:23"},"nativeSrc":"16986:24:23","nodeType":"YulFunctionCall","src":"16986:24:23"}],"functionName":{"name":"add","nativeSrc":"16959:3:23","nodeType":"YulIdentifier","src":"16959:3:23"},"nativeSrc":"16959:52:23","nodeType":"YulFunctionCall","src":"16959:52:23"},"variables":[{"name":"s_","nativeSrc":"16953:2:23","nodeType":"YulTypedName","src":"16953:2:23","type":""}]},{"nativeSrc":"17044:51:23","nodeType":"YulVariableDeclaration","src":"17044:51:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17062:1:23","nodeType":"YulLiteral","src":"17062:1:23","type":"","value":"4"},{"name":"u32_","nativeSrc":"17065:4:23","nodeType":"YulIdentifier","src":"17065:4:23"}],"functionName":{"name":"add","nativeSrc":"17058:3:23","nodeType":"YulIdentifier","src":"17058:3:23"},"nativeSrc":"17058:12:23","nodeType":"YulFunctionCall","src":"17058:12:23"},{"arguments":[{"name":"i_","nativeSrc":"17076:2:23","nodeType":"YulIdentifier","src":"17076:2:23"},{"arguments":[{"name":"u32_","nativeSrc":"17084:4:23","nodeType":"YulIdentifier","src":"17084:4:23"},{"kind":"number","nativeSrc":"17090:2:23","nodeType":"YulLiteral","src":"17090:2:23","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"17080:3:23","nodeType":"YulIdentifier","src":"17080:3:23"},"nativeSrc":"17080:13:23","nodeType":"YulFunctionCall","src":"17080:13:23"}],"functionName":{"name":"and","nativeSrc":"17072:3:23","nodeType":"YulIdentifier","src":"17072:3:23"},"nativeSrc":"17072:22:23","nodeType":"YulFunctionCall","src":"17072:22:23"}],"functionName":{"name":"shl","nativeSrc":"17054:3:23","nodeType":"YulIdentifier","src":"17054:3:23"},"nativeSrc":"17054:41:23","nodeType":"YulFunctionCall","src":"17054:41:23"},"variables":[{"name":"o_","nativeSrc":"17048:2:23","nodeType":"YulTypedName","src":"17048:2:23","type":""}]},{"nativeSrc":"17142:39:23","nodeType":"YulVariableDeclaration","src":"17142:39:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32_","nativeSrc":"17164:4:23","nodeType":"YulIdentifier","src":"17164:4:23"},{"kind":"number","nativeSrc":"17170:2:23","nodeType":"YulLiteral","src":"17170:2:23","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"17160:3:23","nodeType":"YulIdentifier","src":"17160:3:23"},"nativeSrc":"17160:13:23","nodeType":"YulFunctionCall","src":"17160:13:23"},{"kind":"number","nativeSrc":"17175:1:23","nodeType":"YulLiteral","src":"17175:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17156:3:23","nodeType":"YulIdentifier","src":"17156:3:23"},"nativeSrc":"17156:21:23","nodeType":"YulFunctionCall","src":"17156:21:23"},{"kind":"number","nativeSrc":"17179:1:23","nodeType":"YulLiteral","src":"17179:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17152:3:23","nodeType":"YulIdentifier","src":"17152:3:23"},"nativeSrc":"17152:29:23","nodeType":"YulFunctionCall","src":"17152:29:23"},"variables":[{"name":"m_","nativeSrc":"17146:2:23","nodeType":"YulTypedName","src":"17146:2:23","type":""}]},{"nativeSrc":"17213:19:23","nodeType":"YulVariableDeclaration","src":"17213:19:23","value":{"arguments":[{"name":"s_","nativeSrc":"17229:2:23","nodeType":"YulIdentifier","src":"17229:2:23"}],"functionName":{"name":"sload","nativeSrc":"17223:5:23","nodeType":"YulIdentifier","src":"17223:5:23"},"nativeSrc":"17223:9:23","nodeType":"YulFunctionCall","src":"17223:9:23"},"variables":[{"name":"v_","nativeSrc":"17217:2:23","nodeType":"YulTypedName","src":"17217:2:23","type":""}]},{"nativeSrc":"17271:53:23","nodeType":"YulAssignment","src":"17271:53:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"i_","nativeSrc":"17295:2:23","nodeType":"YulIdentifier","src":"17295:2:23"},{"name":"value_","nativeSrc":"17299:6:23","nodeType":"YulIdentifier","src":"17299:6:23"}],"functionName":{"name":"eq","nativeSrc":"17292:2:23","nodeType":"YulIdentifier","src":"17292:2:23"},"nativeSrc":"17292:14:23","nodeType":"YulFunctionCall","src":"17292:14:23"}],"functionName":{"name":"iszero","nativeSrc":"17285:6:23","nodeType":"YulIdentifier","src":"17285:6:23"},"nativeSrc":"17285:22:23","nodeType":"YulFunctionCall","src":"17285:22:23"},{"arguments":[{"name":"value_","nativeSrc":"17313:6:23","nodeType":"YulIdentifier","src":"17313:6:23"},{"kind":"number","nativeSrc":"17321:1:23","nodeType":"YulLiteral","src":"17321:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17309:3:23","nodeType":"YulIdentifier","src":"17309:3:23"},"nativeSrc":"17309:14:23","nodeType":"YulFunctionCall","src":"17309:14:23"}],"functionName":{"name":"mul","nativeSrc":"17281:3:23","nodeType":"YulIdentifier","src":"17281:3:23"},"nativeSrc":"17281:43:23","nodeType":"YulFunctionCall","src":"17281:43:23"},"variableNames":[{"name":"value_","nativeSrc":"17271:6:23","nodeType":"YulIdentifier","src":"17271:6:23"}]},{"expression":{"arguments":[{"name":"s_","nativeSrc":"17348:2:23","nodeType":"YulIdentifier","src":"17348:2:23"},{"arguments":[{"name":"v_","nativeSrc":"17356:2:23","nodeType":"YulIdentifier","src":"17356:2:23"},{"arguments":[{"name":"o_","nativeSrc":"17364:2:23","nodeType":"YulIdentifier","src":"17364:2:23"},{"arguments":[{"name":"m_","nativeSrc":"17372:2:23","nodeType":"YulIdentifier","src":"17372:2:23"},{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"17384:2:23","nodeType":"YulIdentifier","src":"17384:2:23"},{"name":"v_","nativeSrc":"17388:2:23","nodeType":"YulIdentifier","src":"17388:2:23"}],"functionName":{"name":"shr","nativeSrc":"17380:3:23","nodeType":"YulIdentifier","src":"17380:3:23"},"nativeSrc":"17380:11:23","nodeType":"YulFunctionCall","src":"17380:11:23"},{"name":"value_","nativeSrc":"17393:6:23","nodeType":"YulIdentifier","src":"17393:6:23"}],"functionName":{"name":"xor","nativeSrc":"17376:3:23","nodeType":"YulIdentifier","src":"17376:3:23"},"nativeSrc":"17376:24:23","nodeType":"YulFunctionCall","src":"17376:24:23"}],"functionName":{"name":"and","nativeSrc":"17368:3:23","nodeType":"YulIdentifier","src":"17368:3:23"},"nativeSrc":"17368:33:23","nodeType":"YulFunctionCall","src":"17368:33:23"}],"functionName":{"name":"shl","nativeSrc":"17360:3:23","nodeType":"YulIdentifier","src":"17360:3:23"},"nativeSrc":"17360:42:23","nodeType":"YulFunctionCall","src":"17360:42:23"}],"functionName":{"name":"xor","nativeSrc":"17352:3:23","nodeType":"YulIdentifier","src":"17352:3:23"},"nativeSrc":"17352:51:23","nodeType":"YulFunctionCall","src":"17352:51:23"}],"functionName":{"name":"sstore","nativeSrc":"17341:6:23","nodeType":"YulIdentifier","src":"17341:6:23"},"nativeSrc":"17341:63:23","nodeType":"YulFunctionCall","src":"17341:63:23"},"nativeSrc":"17341:63:23","nodeType":"YulExpressionStatement","src":"17341:63:23"}]},"name":"_set","nativeSrc":"16891:527:23","nodeType":"YulFunctionDefinition","parameters":[{"name":"u32_","nativeSrc":"16905:4:23","nodeType":"YulTypedName","src":"16905:4:23","type":""},{"name":"state_","nativeSrc":"16911:6:23","nodeType":"YulTypedName","src":"16911:6:23","type":""},{"name":"i_","nativeSrc":"16919:2:23","nodeType":"YulTypedName","src":"16919:2:23","type":""},{"name":"value_","nativeSrc":"16923:6:23","nodeType":"YulTypedName","src":"16923:6:23","type":""}],"src":"16891:527:23"},{"nativeSrc":"17431:26:23","nodeType":"YulVariableDeclaration","src":"17431:26:23","value":{"arguments":[{"name":"$.slot","nativeSrc":"17450:6:23","nodeType":"YulIdentifier","src":"17450:6:23"}],"functionName":{"name":"sload","nativeSrc":"17444:5:23","nodeType":"YulIdentifier","src":"17444:5:23"},"nativeSrc":"17444:13:23","nodeType":"YulFunctionCall","src":"17444:13:23"},"variables":[{"name":"state","nativeSrc":"17435:5:23","nodeType":"YulTypedName","src":"17435:5:23","type":""}]},{"nativeSrc":"17498:38:23","nodeType":"YulVariableDeclaration","src":"17498:38:23","value":{"arguments":[{"kind":"number","nativeSrc":"17518:10:23","nodeType":"YulLiteral","src":"17518:10:23","type":"","value":"0xffffffff"},{"name":"state","nativeSrc":"17530:5:23","nodeType":"YulIdentifier","src":"17530:5:23"}],"functionName":{"name":"and","nativeSrc":"17514:3:23","nodeType":"YulIdentifier","src":"17514:3:23"},"nativeSrc":"17514:22:23","nodeType":"YulFunctionCall","src":"17514:22:23"},"variables":[{"name":"shuffled","nativeSrc":"17502:8:23","nodeType":"YulTypedName","src":"17502:8:23","type":""}]},{"nativeSrc":"17581:24:23","nodeType":"YulVariableDeclaration","src":"17581:24:23","value":{"arguments":[{"kind":"number","nativeSrc":"17594:3:23","nodeType":"YulLiteral","src":"17594:3:23","type":"","value":"224"},{"name":"state","nativeSrc":"17599:5:23","nodeType":"YulIdentifier","src":"17599:5:23"}],"functionName":{"name":"shr","nativeSrc":"17590:3:23","nodeType":"YulIdentifier","src":"17590:3:23"},"nativeSrc":"17590:15:23","nodeType":"YulFunctionCall","src":"17590:15:23"},"variables":[{"name":"n","nativeSrc":"17585:1:23","nodeType":"YulTypedName","src":"17585:1:23","type":""}]},{"nativeSrc":"17636:33:23","nodeType":"YulVariableDeclaration","src":"17636:33:23","value":{"arguments":[{"name":"n","nativeSrc":"17657:1:23","nodeType":"YulIdentifier","src":"17657:1:23"},{"name":"shuffled","nativeSrc":"17660:8:23","nodeType":"YulIdentifier","src":"17660:8:23"}],"functionName":{"name":"sub","nativeSrc":"17653:3:23","nodeType":"YulIdentifier","src":"17653:3:23"},"nativeSrc":"17653:16:23","nodeType":"YulFunctionCall","src":"17653:16:23"},"variables":[{"name":"remainder","nativeSrc":"17640:9:23","nodeType":"YulTypedName","src":"17640:9:23","type":""}]},{"body":{"nativeSrc":"17742:119:23","nodeType":"YulBlock","src":"17742:119:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17767:4:23","nodeType":"YulLiteral","src":"17767:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17773:10:23","nodeType":"YulLiteral","src":"17773:10:23","type":"","value":"0x51065f79"}],"functionName":{"name":"mstore","nativeSrc":"17760:6:23","nodeType":"YulIdentifier","src":"17760:6:23"},"nativeSrc":"17760:24:23","nodeType":"YulFunctionCall","src":"17760:24:23"},"nativeSrc":"17760:24:23","nodeType":"YulExpressionStatement","src":"17760:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17836:4:23","nodeType":"YulLiteral","src":"17836:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"17842:4:23","nodeType":"YulLiteral","src":"17842:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"17829:6:23","nodeType":"YulIdentifier","src":"17829:6:23"},"nativeSrc":"17829:18:23","nodeType":"YulFunctionCall","src":"17829:18:23"},"nativeSrc":"17829:18:23","nodeType":"YulExpressionStatement","src":"17829:18:23"}]},"condition":{"arguments":[{"name":"remainder","nativeSrc":"17731:9:23","nodeType":"YulIdentifier","src":"17731:9:23"}],"functionName":{"name":"iszero","nativeSrc":"17724:6:23","nodeType":"YulIdentifier","src":"17724:6:23"},"nativeSrc":"17724:17:23","nodeType":"YulFunctionCall","src":"17724:17:23"},"nativeSrc":"17721:140:23","nodeType":"YulIf","src":"17721:140:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17881:4:23","nodeType":"YulLiteral","src":"17881:4:23","type":"","value":"0x00"},{"name":"randomness","nativeSrc":"17887:10:23","nodeType":"YulIdentifier","src":"17887:10:23"}],"functionName":{"name":"mstore","nativeSrc":"17874:6:23","nodeType":"YulIdentifier","src":"17874:6:23"},"nativeSrc":"17874:24:23","nodeType":"YulFunctionCall","src":"17874:24:23"},"nativeSrc":"17874:24:23","nodeType":"YulExpressionStatement","src":"17874:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17962:4:23","nodeType":"YulLiteral","src":"17962:4:23","type":"","value":"0x20"},{"name":"shuffled","nativeSrc":"17968:8:23","nodeType":"YulIdentifier","src":"17968:8:23"}],"functionName":{"name":"mstore","nativeSrc":"17955:6:23","nodeType":"YulIdentifier","src":"17955:6:23"},"nativeSrc":"17955:22:23","nodeType":"YulFunctionCall","src":"17955:22:23"},"nativeSrc":"17955:22:23","nodeType":"YulExpressionStatement","src":"17955:22:23"},{"nativeSrc":"18040:65:23","nodeType":"YulVariableDeclaration","src":"18040:65:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18071:4:23","nodeType":"YulLiteral","src":"18071:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18077:4:23","nodeType":"YulLiteral","src":"18077:4:23","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"18061:9:23","nodeType":"YulIdentifier","src":"18061:9:23"},"nativeSrc":"18061:21:23","nodeType":"YulFunctionCall","src":"18061:21:23"},{"name":"remainder","nativeSrc":"18084:9:23","nodeType":"YulIdentifier","src":"18084:9:23"}],"functionName":{"name":"mod","nativeSrc":"18057:3:23","nodeType":"YulIdentifier","src":"18057:3:23"},"nativeSrc":"18057:37:23","nodeType":"YulFunctionCall","src":"18057:37:23"},{"name":"shuffled","nativeSrc":"18096:8:23","nodeType":"YulIdentifier","src":"18096:8:23"}],"functionName":{"name":"add","nativeSrc":"18053:3:23","nodeType":"YulIdentifier","src":"18053:3:23"},"nativeSrc":"18053:52:23","nodeType":"YulFunctionCall","src":"18053:52:23"},"variables":[{"name":"index","nativeSrc":"18044:5:23","nodeType":"YulTypedName","src":"18044:5:23","type":""}]},{"nativeSrc":"18118:43:23","nodeType":"YulAssignment","src":"18118:43:23","value":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18136:1:23","nodeType":"YulIdentifier","src":"18136:1:23"},{"kind":"number","nativeSrc":"18139:6:23","nodeType":"YulLiteral","src":"18139:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18133:2:23","nodeType":"YulIdentifier","src":"18133:2:23"},"nativeSrc":"18133:13:23","nodeType":"YulFunctionCall","src":"18133:13:23"},{"name":"state","nativeSrc":"18148:5:23","nodeType":"YulIdentifier","src":"18148:5:23"},{"name":"index","nativeSrc":"18155:5:23","nodeType":"YulIdentifier","src":"18155:5:23"}],"functionName":{"name":"_get","nativeSrc":"18128:4:23","nodeType":"YulIdentifier","src":"18128:4:23"},"nativeSrc":"18128:33:23","nodeType":"YulFunctionCall","src":"18128:33:23"},"variableNames":[{"name":"chosen","nativeSrc":"18118:6:23","nodeType":"YulIdentifier","src":"18118:6:23"}]},{"expression":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18182:1:23","nodeType":"YulIdentifier","src":"18182:1:23"},{"kind":"number","nativeSrc":"18185:6:23","nodeType":"YulLiteral","src":"18185:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18179:2:23","nodeType":"YulIdentifier","src":"18179:2:23"},"nativeSrc":"18179:13:23","nodeType":"YulFunctionCall","src":"18179:13:23"},{"name":"state","nativeSrc":"18194:5:23","nodeType":"YulIdentifier","src":"18194:5:23"},{"name":"index","nativeSrc":"18201:5:23","nodeType":"YulIdentifier","src":"18201:5:23"},{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18216:1:23","nodeType":"YulIdentifier","src":"18216:1:23"},{"kind":"number","nativeSrc":"18219:6:23","nodeType":"YulLiteral","src":"18219:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18213:2:23","nodeType":"YulIdentifier","src":"18213:2:23"},"nativeSrc":"18213:13:23","nodeType":"YulFunctionCall","src":"18213:13:23"},{"name":"state","nativeSrc":"18228:5:23","nodeType":"YulIdentifier","src":"18228:5:23"},{"name":"shuffled","nativeSrc":"18235:8:23","nodeType":"YulIdentifier","src":"18235:8:23"}],"functionName":{"name":"_get","nativeSrc":"18208:4:23","nodeType":"YulIdentifier","src":"18208:4:23"},"nativeSrc":"18208:36:23","nodeType":"YulFunctionCall","src":"18208:36:23"}],"functionName":{"name":"_set","nativeSrc":"18174:4:23","nodeType":"YulIdentifier","src":"18174:4:23"},"nativeSrc":"18174:71:23","nodeType":"YulFunctionCall","src":"18174:71:23"},"nativeSrc":"18174:71:23","nodeType":"YulExpressionStatement","src":"18174:71:23"},{"expression":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18266:1:23","nodeType":"YulIdentifier","src":"18266:1:23"},{"kind":"number","nativeSrc":"18269:6:23","nodeType":"YulLiteral","src":"18269:6:23","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18263:2:23","nodeType":"YulIdentifier","src":"18263:2:23"},"nativeSrc":"18263:13:23","nodeType":"YulFunctionCall","src":"18263:13:23"},{"name":"state","nativeSrc":"18278:5:23","nodeType":"YulIdentifier","src":"18278:5:23"},{"name":"shuffled","nativeSrc":"18285:8:23","nodeType":"YulIdentifier","src":"18285:8:23"},{"name":"chosen","nativeSrc":"18295:6:23","nodeType":"YulIdentifier","src":"18295:6:23"}],"functionName":{"name":"_set","nativeSrc":"18258:4:23","nodeType":"YulIdentifier","src":"18258:4:23"},"nativeSrc":"18258:44:23","nodeType":"YulFunctionCall","src":"18258:44:23"},"nativeSrc":"18258:44:23","nodeType":"YulExpressionStatement","src":"18258:44:23"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"18322:6:23","nodeType":"YulIdentifier","src":"18322:6:23"},{"arguments":[{"kind":"number","nativeSrc":"18334:1:23","nodeType":"YulLiteral","src":"18334:1:23","type":"","value":"1"},{"name":"state","nativeSrc":"18337:5:23","nodeType":"YulIdentifier","src":"18337:5:23"}],"functionName":{"name":"add","nativeSrc":"18330:3:23","nodeType":"YulIdentifier","src":"18330:3:23"},"nativeSrc":"18330:13:23","nodeType":"YulFunctionCall","src":"18330:13:23"}],"functionName":{"name":"sstore","nativeSrc":"18315:6:23","nodeType":"YulIdentifier","src":"18315:6:23"},"nativeSrc":"18315:29:23","nodeType":"YulFunctionCall","src":"18315:29:23"},"nativeSrc":"18315:29:23","nodeType":"YulExpressionStatement","src":"18315:29:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10297,"isOffset":false,"isSlot":true,"src":"17450:6:23","suffix":"slot","valueSize":1},{"declaration":10297,"isOffset":false,"isSlot":true,"src":"18322:6:23","suffix":"slot","valueSize":1},{"declaration":10302,"isOffset":false,"isSlot":false,"src":"18118:6:23","valueSize":1},{"declaration":10302,"isOffset":false,"isSlot":false,"src":"18295:6:23","valueSize":1},{"declaration":10299,"isOffset":false,"isSlot":false,"src":"17887:10:23","valueSize":1}],"id":10304,"nodeType":"InlineAssembly","src":"16392:2013:23"}]},"documentation":{"id":10294,"nodeType":"StructuredDocumentation","src":"15893:349:23","text":"@dev Does a single Fisher-Yates shuffle step, increments the `numShuffled` in `$`,\n and returns the next value in the shuffled range.\n `randomness` can be taken from a good-enough source, or a higher quality source like VRF.\n Reverts if there are no more values to shuffle, which includes the case if `$` is not initialized."},"id":10306,"implemented":true,"kind":"function","modifiers":[],"name":"next","nameLocation":"16256:4:23","nodeType":"FunctionDefinition","parameters":{"id":10300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10297,"mutability":"mutable","name":"$","nameLocation":"16282:1:23","nodeType":"VariableDeclaration","scope":10306,"src":"16261:22:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10296,"nodeType":"UserDefinedTypeName","pathNode":{"id":10295,"name":"LazyShuffler","nameLocations":["16261:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":10125,"src":"16261:12:23"},"referencedDeclaration":10125,"src":"16261:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10125_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10299,"mutability":"mutable","name":"randomness","nameLocation":"16293:10:23","nodeType":"VariableDeclaration","scope":10306,"src":"16285:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10298,"name":"uint256","nodeType":"ElementaryTypeName","src":"16285:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16260:44:23"},"returnParameters":{"id":10303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10302,"mutability":"mutable","name":"chosen","nameLocation":"16331:6:23","nodeType":"VariableDeclaration","scope":10306,"src":"16323:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10301,"name":"uint256","nodeType":"ElementaryTypeName","src":"16323:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16322:16:23"},"scope":10307,"src":"16247:2164:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":10308,"src":"375:18038:23","usedErrors":[10098,10101,10104,10107,10110,10113],"usedEvents":[]}],"src":"32:18382:23"},"id":23},"@solady/utils/LibString.sol":{"ast":{"absolutePath":"@solady/utils/LibString.sol","exportedSymbols":{"LibString":[10964]},"id":10965,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10309,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:24"},{"abstract":false,"baseContracts":[],"canonicalName":"LibString","contractDependencies":[],"contractKind":"library","documentation":{"id":10310,"nodeType":"StructuredDocumentation","src":"57:591:24","text":"@notice Library for converting numbers into strings and other string operations.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\n @dev Note:\n For performance and bytecode compactness, most of the string operations are restricted to\n byte strings (7-bit ASCII), except where otherwise specified.\n Usage of byte string operations on charsets with runes spanning two or more bytes\n can lead to undefined behavior."},"fullyImplemented":true,"id":10964,"linearizedBaseContracts":[10964],"name":"LibString","nameLocation":"656:9:24","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10311,"nodeType":"StructuredDocumentation","src":"955:77:24","text":"@dev The length of the output is too small to contain all the hex digits."},"errorSelector":"2194895a","id":10313,"name":"HexLengthInsufficient","nameLocation":"1043:21:24","nodeType":"ErrorDefinition","parameters":{"id":10312,"nodeType":"ParameterList","parameters":[],"src":"1064:2:24"},"src":"1037:30:24"},{"documentation":{"id":10314,"nodeType":"StructuredDocumentation","src":"1073:56:24","text":"@dev The length of the string is more than 32 bytes."},"errorSelector":"ec92f9a3","id":10316,"name":"TooBigForSmallString","nameLocation":"1140:20:24","nodeType":"ErrorDefinition","parameters":{"id":10315,"nodeType":"ParameterList","parameters":[],"src":"1160:2:24"},"src":"1134:29:24"},{"constant":true,"documentation":{"id":10317,"nodeType":"StructuredDocumentation","src":"1452:76:24","text":"@dev The constant returned when the `search` is not found in the string."},"id":10324,"mutability":"constant","name":"NOT_FOUND","nameLocation":"1559:9:24","nodeType":"VariableDeclaration","scope":10964,"src":"1533:55:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1533:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":10321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1576:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10320,"name":"uint256","nodeType":"ElementaryTypeName","src":"1576:7:24","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":10319,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1571:4:24","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1571:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":10323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1585:3:24","memberName":"max","nodeType":"MemberAccess","src":"1571:17:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"body":{"id":10333,"nodeType":"Block","src":"2021:1566:24","statements":[{"AST":{"nativeSrc":"2083:1498:24","nodeType":"YulBlock","src":"2083:1498:24","statements":[{"nativeSrc":"2423:29:24","nodeType":"YulAssignment","src":"2423:29:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2440:4:24","nodeType":"YulLiteral","src":"2440:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2434:5:24","nodeType":"YulIdentifier","src":"2434:5:24"},"nativeSrc":"2434:11:24","nodeType":"YulFunctionCall","src":"2434:11:24"},{"kind":"number","nativeSrc":"2447:4:24","nodeType":"YulLiteral","src":"2447:4:24","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"2430:3:24","nodeType":"YulIdentifier","src":"2430:3:24"},"nativeSrc":"2430:22:24","nodeType":"YulFunctionCall","src":"2430:22:24"},"variableNames":[{"name":"str","nativeSrc":"2423:3:24","nodeType":"YulIdentifier","src":"2423:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2531:4:24","nodeType":"YulLiteral","src":"2531:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"2541:3:24","nodeType":"YulIdentifier","src":"2541:3:24"},{"kind":"number","nativeSrc":"2546:4:24","nodeType":"YulLiteral","src":"2546:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2537:3:24","nodeType":"YulIdentifier","src":"2537:3:24"},"nativeSrc":"2537:14:24","nodeType":"YulFunctionCall","src":"2537:14:24"}],"functionName":{"name":"mstore","nativeSrc":"2524:6:24","nodeType":"YulIdentifier","src":"2524:6:24"},"nativeSrc":"2524:28:24","nodeType":"YulFunctionCall","src":"2524:28:24"},"nativeSrc":"2524:28:24","nodeType":"YulExpressionStatement","src":"2524:28:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"2622:3:24","nodeType":"YulIdentifier","src":"2622:3:24"},{"kind":"number","nativeSrc":"2627:1:24","nodeType":"YulLiteral","src":"2627:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2615:6:24","nodeType":"YulIdentifier","src":"2615:6:24"},"nativeSrc":"2615:14:24","nodeType":"YulFunctionCall","src":"2615:14:24"},"nativeSrc":"2615:14:24","nodeType":"YulExpressionStatement","src":"2615:14:24"},{"nativeSrc":"2717:14:24","nodeType":"YulVariableDeclaration","src":"2717:14:24","value":{"name":"str","nativeSrc":"2728:3:24","nodeType":"YulIdentifier","src":"2728:3:24"},"variables":[{"name":"end","nativeSrc":"2721:3:24","nodeType":"YulTypedName","src":"2721:3:24","type":""}]},{"nativeSrc":"2745:15:24","nodeType":"YulVariableDeclaration","src":"2745:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"2758:1:24","nodeType":"YulLiteral","src":"2758:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2754:3:24","nodeType":"YulIdentifier","src":"2754:3:24"},"nativeSrc":"2754:6:24","nodeType":"YulFunctionCall","src":"2754:6:24"},"variables":[{"name":"w","nativeSrc":"2749:1:24","nodeType":"YulTypedName","src":"2749:1:24","type":""}]},{"body":{"nativeSrc":"2980:371:24","nodeType":"YulBlock","src":"2980:371:24","statements":[{"nativeSrc":"2998:18:24","nodeType":"YulAssignment","src":"2998:18:24","value":{"arguments":[{"name":"str","nativeSrc":"3009:3:24","nodeType":"YulIdentifier","src":"3009:3:24"},{"name":"w","nativeSrc":"3014:1:24","nodeType":"YulIdentifier","src":"3014:1:24"}],"functionName":{"name":"add","nativeSrc":"3005:3:24","nodeType":"YulIdentifier","src":"3005:3:24"},"nativeSrc":"3005:11:24","nodeType":"YulFunctionCall","src":"3005:11:24"},"variableNames":[{"name":"str","nativeSrc":"2998:3:24","nodeType":"YulIdentifier","src":"2998:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"3177:3:24","nodeType":"YulIdentifier","src":"3177:3:24"},{"arguments":[{"kind":"number","nativeSrc":"3186:2:24","nodeType":"YulLiteral","src":"3186:2:24","type":"","value":"48"},{"arguments":[{"name":"temp","nativeSrc":"3194:4:24","nodeType":"YulIdentifier","src":"3194:4:24"},{"kind":"number","nativeSrc":"3200:2:24","nodeType":"YulLiteral","src":"3200:2:24","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"3190:3:24","nodeType":"YulIdentifier","src":"3190:3:24"},"nativeSrc":"3190:13:24","nodeType":"YulFunctionCall","src":"3190:13:24"}],"functionName":{"name":"add","nativeSrc":"3182:3:24","nodeType":"YulIdentifier","src":"3182:3:24"},"nativeSrc":"3182:22:24","nodeType":"YulFunctionCall","src":"3182:22:24"}],"functionName":{"name":"mstore8","nativeSrc":"3169:7:24","nodeType":"YulIdentifier","src":"3169:7:24"},"nativeSrc":"3169:36:24","nodeType":"YulFunctionCall","src":"3169:36:24"},"nativeSrc":"3169:36:24","nodeType":"YulExpressionStatement","src":"3169:36:24"},{"nativeSrc":"3274:21:24","nodeType":"YulAssignment","src":"3274:21:24","value":{"arguments":[{"name":"temp","nativeSrc":"3286:4:24","nodeType":"YulIdentifier","src":"3286:4:24"},{"kind":"number","nativeSrc":"3292:2:24","nodeType":"YulLiteral","src":"3292:2:24","type":"","value":"10"}],"functionName":{"name":"div","nativeSrc":"3282:3:24","nodeType":"YulIdentifier","src":"3282:3:24"},"nativeSrc":"3282:13:24","nodeType":"YulFunctionCall","src":"3282:13:24"},"variableNames":[{"name":"temp","nativeSrc":"3274:4:24","nodeType":"YulIdentifier","src":"3274:4:24"}]},{"body":{"nativeSrc":"3328:9:24","nodeType":"YulBlock","src":"3328:9:24","statements":[{"nativeSrc":"3330:5:24","nodeType":"YulBreak","src":"3330:5:24"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"3322:4:24","nodeType":"YulIdentifier","src":"3322:4:24"}],"functionName":{"name":"iszero","nativeSrc":"3315:6:24","nodeType":"YulIdentifier","src":"3315:6:24"},"nativeSrc":"3315:12:24","nodeType":"YulFunctionCall","src":"3315:12:24"},"nativeSrc":"3312:25:24","nodeType":"YulIf","src":"3312:25:24"}]},"condition":{"kind":"number","nativeSrc":"2975:1:24","nodeType":"YulLiteral","src":"2975:1:24","type":"","value":"1"},"nativeSrc":"2949:402:24","nodeType":"YulForLoop","post":{"nativeSrc":"2977:2:24","nodeType":"YulBlock","src":"2977:2:24","statements":[]},"pre":{"nativeSrc":"2953:21:24","nodeType":"YulBlock","src":"2953:21:24","statements":[{"nativeSrc":"2955:17:24","nodeType":"YulVariableDeclaration","src":"2955:17:24","value":{"name":"value","nativeSrc":"2967:5:24","nodeType":"YulIdentifier","src":"2967:5:24"},"variables":[{"name":"temp","nativeSrc":"2959:4:24","nodeType":"YulTypedName","src":"2959:4:24","type":""}]}]},"src":"2949:402:24"},{"nativeSrc":"3365:27:24","nodeType":"YulVariableDeclaration","src":"3365:27:24","value":{"arguments":[{"name":"end","nativeSrc":"3383:3:24","nodeType":"YulIdentifier","src":"3383:3:24"},{"name":"str","nativeSrc":"3388:3:24","nodeType":"YulIdentifier","src":"3388:3:24"}],"functionName":{"name":"sub","nativeSrc":"3379:3:24","nodeType":"YulIdentifier","src":"3379:3:24"},"nativeSrc":"3379:13:24","nodeType":"YulFunctionCall","src":"3379:13:24"},"variables":[{"name":"length","nativeSrc":"3369:6:24","nodeType":"YulTypedName","src":"3369:6:24","type":""}]},{"nativeSrc":"3485:21:24","nodeType":"YulAssignment","src":"3485:21:24","value":{"arguments":[{"name":"str","nativeSrc":"3496:3:24","nodeType":"YulIdentifier","src":"3496:3:24"},{"kind":"number","nativeSrc":"3501:4:24","nodeType":"YulLiteral","src":"3501:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"3492:3:24","nodeType":"YulIdentifier","src":"3492:3:24"},"nativeSrc":"3492:14:24","nodeType":"YulFunctionCall","src":"3492:14:24"},"variableNames":[{"name":"str","nativeSrc":"3485:3:24","nodeType":"YulIdentifier","src":"3485:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"3559:3:24","nodeType":"YulIdentifier","src":"3559:3:24"},{"name":"length","nativeSrc":"3564:6:24","nodeType":"YulIdentifier","src":"3564:6:24"}],"functionName":{"name":"mstore","nativeSrc":"3552:6:24","nodeType":"YulIdentifier","src":"3552:6:24"},"nativeSrc":"3552:19:24","nodeType":"YulFunctionCall","src":"3552:19:24"},"nativeSrc":"3552:19:24","nodeType":"YulExpressionStatement","src":"3552:19:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2423:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2541:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2622:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2728:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"2998:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3009:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3177:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3388:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3485:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3496:3:24","valueSize":1},{"declaration":10330,"isOffset":false,"isSlot":false,"src":"3559:3:24","valueSize":1},{"declaration":10327,"isOffset":false,"isSlot":false,"src":"2967:5:24","valueSize":1}],"id":10332,"nodeType":"InlineAssembly","src":"2074:1507:24"}]},"documentation":{"id":10325,"nodeType":"StructuredDocumentation","src":"1878:63:24","text":"@dev Returns the base 10 decimal representation of `value`."},"id":10334,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1955:8:24","nodeType":"FunctionDefinition","parameters":{"id":10328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10327,"mutability":"mutable","name":"value","nameLocation":"1972:5:24","nodeType":"VariableDeclaration","scope":10334,"src":"1964:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10326,"name":"uint256","nodeType":"ElementaryTypeName","src":"1964:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1963:15:24"},"returnParameters":{"id":10331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10330,"mutability":"mutable","name":"str","nameLocation":"2016:3:24","nodeType":"VariableDeclaration","scope":10334,"src":"2002:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10329,"name":"string","nodeType":"ElementaryTypeName","src":"2002:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2001:19:24"},"scope":10964,"src":"1946:1641:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10368,"nodeType":"Block","src":"3735:646:24","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3749:5:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":10343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3758:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3749:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10353,"nodeType":"IfStatement","src":"3745:72:24","trueBody":{"id":10352,"nodeType":"Block","src":"3761:56:24","statements":[{"expression":{"arguments":[{"arguments":[{"id":10348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3799:5:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3791:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10346,"name":"uint256","nodeType":"ElementaryTypeName","src":"3791:7:24","typeDescriptions":{}}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3791:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10345,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[10334,10369],"referencedDeclaration":10334,"src":"3782:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3782:24:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10341,"id":10351,"nodeType":"Return","src":"3775:31:24"}]}},{"id":10366,"nodeType":"UncheckedBlock","src":"3826:70:24","statements":[{"expression":{"id":10364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10354,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10340,"src":"3850:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3865:15:24","subExpression":{"arguments":[{"id":10358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3874:5:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3866:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10356,"name":"uint256","nodeType":"ElementaryTypeName","src":"3866:7:24","typeDescriptions":{}}},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3883:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3865:19:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10355,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[10334,10369],"referencedDeclaration":10334,"src":"3856:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3856:29:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3850:35:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10365,"nodeType":"ExpressionStatement","src":"3850:35:24"}]},{"AST":{"nativeSrc":"3957:418:24","nodeType":"YulBlock","src":"3957:418:24","statements":[{"nativeSrc":"4113:24:24","nodeType":"YulVariableDeclaration","src":"4113:24:24","value":{"arguments":[{"name":"str","nativeSrc":"4133:3:24","nodeType":"YulIdentifier","src":"4133:3:24"}],"functionName":{"name":"mload","nativeSrc":"4127:5:24","nodeType":"YulIdentifier","src":"4127:5:24"},"nativeSrc":"4127:10:24","nodeType":"YulFunctionCall","src":"4127:10:24"},"variables":[{"name":"length","nativeSrc":"4117:6:24","nodeType":"YulTypedName","src":"4117:6:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"4184:3:24","nodeType":"YulIdentifier","src":"4184:3:24"},{"kind":"number","nativeSrc":"4189:4:24","nodeType":"YulLiteral","src":"4189:4:24","type":"","value":"0x2d"}],"functionName":{"name":"mstore","nativeSrc":"4177:6:24","nodeType":"YulIdentifier","src":"4177:6:24"},"nativeSrc":"4177:17:24","nodeType":"YulFunctionCall","src":"4177:17:24"},"nativeSrc":"4177:17:24","nodeType":"YulExpressionStatement","src":"4177:17:24"},{"nativeSrc":"4235:18:24","nodeType":"YulAssignment","src":"4235:18:24","value":{"arguments":[{"name":"str","nativeSrc":"4246:3:24","nodeType":"YulIdentifier","src":"4246:3:24"},{"kind":"number","nativeSrc":"4251:1:24","nodeType":"YulLiteral","src":"4251:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4242:3:24","nodeType":"YulIdentifier","src":"4242:3:24"},"nativeSrc":"4242:11:24","nodeType":"YulFunctionCall","src":"4242:11:24"},"variableNames":[{"name":"str","nativeSrc":"4235:3:24","nodeType":"YulIdentifier","src":"4235:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"4316:3:24","nodeType":"YulIdentifier","src":"4316:3:24"},{"arguments":[{"name":"length","nativeSrc":"4325:6:24","nodeType":"YulIdentifier","src":"4325:6:24"},{"kind":"number","nativeSrc":"4333:1:24","nodeType":"YulLiteral","src":"4333:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4321:3:24","nodeType":"YulIdentifier","src":"4321:3:24"},"nativeSrc":"4321:14:24","nodeType":"YulFunctionCall","src":"4321:14:24"}],"functionName":{"name":"mstore","nativeSrc":"4309:6:24","nodeType":"YulIdentifier","src":"4309:6:24"},"nativeSrc":"4309:27:24","nodeType":"YulFunctionCall","src":"4309:27:24"},"nativeSrc":"4309:27:24","nodeType":"YulExpressionStatement","src":"4309:27:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4133:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4184:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4235:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4246:3:24","valueSize":1},{"declaration":10340,"isOffset":false,"isSlot":false,"src":"4316:3:24","valueSize":1}],"id":10367,"nodeType":"InlineAssembly","src":"3948:427:24"}]},"documentation":{"id":10335,"nodeType":"StructuredDocumentation","src":"3593:63:24","text":"@dev Returns the base 10 decimal representation of `value`."},"id":10369,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"3670:8:24","nodeType":"FunctionDefinition","parameters":{"id":10338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10337,"mutability":"mutable","name":"value","nameLocation":"3686:5:24","nodeType":"VariableDeclaration","scope":10369,"src":"3679:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10336,"name":"int256","nodeType":"ElementaryTypeName","src":"3679:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3678:14:24"},"returnParameters":{"id":10341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10340,"mutability":"mutable","name":"str","nameLocation":"3730:3:24","nodeType":"VariableDeclaration","scope":10369,"src":"3716:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10339,"name":"string","nodeType":"ElementaryTypeName","src":"3716:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3715:19:24"},"scope":10964,"src":"3661:720:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10387,"nodeType":"Block","src":"5112:366:24","statements":[{"expression":{"id":10384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10379,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10377,"src":"5122:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10381,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10372,"src":"5148:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10382,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10374,"src":"5155:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10380,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10400,"src":"5128:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":10383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5128:34:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5122:40:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10385,"nodeType":"ExpressionStatement","src":"5122:40:24"},{"AST":{"nativeSrc":"5224:248:24","nodeType":"YulBlock","src":"5224:248:24","statements":[{"nativeSrc":"5238:35:24","nodeType":"YulVariableDeclaration","src":"5238:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"5265:3:24","nodeType":"YulIdentifier","src":"5265:3:24"}],"functionName":{"name":"mload","nativeSrc":"5259:5:24","nodeType":"YulIdentifier","src":"5259:5:24"},"nativeSrc":"5259:10:24","nodeType":"YulFunctionCall","src":"5259:10:24"},{"kind":"number","nativeSrc":"5271:1:24","nodeType":"YulLiteral","src":"5271:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"5255:3:24","nodeType":"YulIdentifier","src":"5255:3:24"},"nativeSrc":"5255:18:24","nodeType":"YulFunctionCall","src":"5255:18:24"},"variables":[{"name":"strLength","nativeSrc":"5242:9:24","nodeType":"YulTypedName","src":"5242:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"5316:3:24","nodeType":"YulIdentifier","src":"5316:3:24"},{"kind":"number","nativeSrc":"5321:6:24","nodeType":"YulLiteral","src":"5321:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"5309:6:24","nodeType":"YulIdentifier","src":"5309:6:24"},"nativeSrc":"5309:19:24","nodeType":"YulFunctionCall","src":"5309:19:24"},"nativeSrc":"5309:19:24","nodeType":"YulExpressionStatement","src":"5309:19:24"},{"nativeSrc":"5367:18:24","nodeType":"YulAssignment","src":"5367:18:24","value":{"arguments":[{"name":"str","nativeSrc":"5378:3:24","nodeType":"YulIdentifier","src":"5378:3:24"},{"kind":"number","nativeSrc":"5383:1:24","nodeType":"YulLiteral","src":"5383:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"5374:3:24","nodeType":"YulIdentifier","src":"5374:3:24"},"nativeSrc":"5374:11:24","nodeType":"YulFunctionCall","src":"5374:11:24"},"variableNames":[{"name":"str","nativeSrc":"5367:3:24","nodeType":"YulIdentifier","src":"5367:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"5426:3:24","nodeType":"YulIdentifier","src":"5426:3:24"},{"name":"strLength","nativeSrc":"5431:9:24","nodeType":"YulIdentifier","src":"5431:9:24"}],"functionName":{"name":"mstore","nativeSrc":"5419:6:24","nodeType":"YulIdentifier","src":"5419:6:24"},"nativeSrc":"5419:22:24","nodeType":"YulFunctionCall","src":"5419:22:24"},"nativeSrc":"5419:22:24","nodeType":"YulExpressionStatement","src":"5419:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5265:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5316:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5367:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5378:3:24","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"5426:3:24","valueSize":1}],"id":10386,"nodeType":"InlineAssembly","src":"5215:257:24"}]},"documentation":{"id":10370,"nodeType":"StructuredDocumentation","src":"4670:343:24","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2 + 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"id":10388,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"5027:11:24","nodeType":"FunctionDefinition","parameters":{"id":10375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10372,"mutability":"mutable","name":"value","nameLocation":"5047:5:24","nodeType":"VariableDeclaration","scope":10388,"src":"5039:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10371,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10374,"mutability":"mutable","name":"length","nameLocation":"5062:6:24","nodeType":"VariableDeclaration","scope":10388,"src":"5054:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10373,"name":"uint256","nodeType":"ElementaryTypeName","src":"5054:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5038:31:24"},"returnParameters":{"id":10378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"str","nameLocation":"5107:3:24","nodeType":"VariableDeclaration","scope":10388,"src":"5093:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10376,"name":"string","nodeType":"ElementaryTypeName","src":"5093:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5092:19:24"},"scope":10964,"src":"5018:460:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10399,"nodeType":"Block","src":"5958:1767:24","statements":[{"AST":{"nativeSrc":"6020:1699:24","nodeType":"YulBlock","src":"6020:1699:24","statements":[{"nativeSrc":"6337:66:24","nodeType":"YulAssignment","src":"6337:66:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6354:4:24","nodeType":"YulLiteral","src":"6354:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6348:5:24","nodeType":"YulIdentifier","src":"6348:5:24"},"nativeSrc":"6348:11:24","nodeType":"YulFunctionCall","src":"6348:11:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6373:1:24","nodeType":"YulLiteral","src":"6373:1:24","type":"","value":"1"},{"name":"length","nativeSrc":"6376:6:24","nodeType":"YulIdentifier","src":"6376:6:24"}],"functionName":{"name":"shl","nativeSrc":"6369:3:24","nodeType":"YulIdentifier","src":"6369:3:24"},"nativeSrc":"6369:14:24","nodeType":"YulFunctionCall","src":"6369:14:24"},{"kind":"number","nativeSrc":"6385:4:24","nodeType":"YulLiteral","src":"6385:4:24","type":"","value":"0x42"}],"functionName":{"name":"add","nativeSrc":"6365:3:24","nodeType":"YulIdentifier","src":"6365:3:24"},"nativeSrc":"6365:25:24","nodeType":"YulFunctionCall","src":"6365:25:24"},{"arguments":[{"kind":"number","nativeSrc":"6396:4:24","nodeType":"YulLiteral","src":"6396:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"6392:3:24","nodeType":"YulIdentifier","src":"6392:3:24"},"nativeSrc":"6392:9:24","nodeType":"YulFunctionCall","src":"6392:9:24"}],"functionName":{"name":"and","nativeSrc":"6361:3:24","nodeType":"YulIdentifier","src":"6361:3:24"},"nativeSrc":"6361:41:24","nodeType":"YulFunctionCall","src":"6361:41:24"}],"functionName":{"name":"add","nativeSrc":"6344:3:24","nodeType":"YulIdentifier","src":"6344:3:24"},"nativeSrc":"6344:59:24","nodeType":"YulFunctionCall","src":"6344:59:24"},"variableNames":[{"name":"str","nativeSrc":"6337:3:24","nodeType":"YulIdentifier","src":"6337:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6459:4:24","nodeType":"YulLiteral","src":"6459:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"6469:3:24","nodeType":"YulIdentifier","src":"6469:3:24"},{"kind":"number","nativeSrc":"6474:4:24","nodeType":"YulLiteral","src":"6474:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6465:3:24","nodeType":"YulIdentifier","src":"6465:3:24"},"nativeSrc":"6465:14:24","nodeType":"YulFunctionCall","src":"6465:14:24"}],"functionName":{"name":"mstore","nativeSrc":"6452:6:24","nodeType":"YulIdentifier","src":"6452:6:24"},"nativeSrc":"6452:28:24","nodeType":"YulFunctionCall","src":"6452:28:24"},"nativeSrc":"6452:28:24","nodeType":"YulExpressionStatement","src":"6452:28:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"6550:3:24","nodeType":"YulIdentifier","src":"6550:3:24"},{"kind":"number","nativeSrc":"6555:1:24","nodeType":"YulLiteral","src":"6555:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6543:6:24","nodeType":"YulIdentifier","src":"6543:6:24"},"nativeSrc":"6543:14:24","nodeType":"YulFunctionCall","src":"6543:14:24"},"nativeSrc":"6543:14:24","nodeType":"YulExpressionStatement","src":"6543:14:24"},{"nativeSrc":"6631:14:24","nodeType":"YulVariableDeclaration","src":"6631:14:24","value":{"name":"str","nativeSrc":"6642:3:24","nodeType":"YulIdentifier","src":"6642:3:24"},"variables":[{"name":"end","nativeSrc":"6635:3:24","nodeType":"YulTypedName","src":"6635:3:24","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6723:4:24","nodeType":"YulLiteral","src":"6723:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"6729:34:24","nodeType":"YulLiteral","src":"6729:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"6716:6:24","nodeType":"YulIdentifier","src":"6716:6:24"},"nativeSrc":"6716:48:24","nodeType":"YulFunctionCall","src":"6716:48:24"},"nativeSrc":"6716:48:24","nodeType":"YulExpressionStatement","src":"6716:48:24"},{"nativeSrc":"6778:42:24","nodeType":"YulVariableDeclaration","src":"6778:42:24","value":{"arguments":[{"name":"str","nativeSrc":"6795:3:24","nodeType":"YulIdentifier","src":"6795:3:24"},{"arguments":[{"name":"length","nativeSrc":"6804:6:24","nodeType":"YulIdentifier","src":"6804:6:24"},{"name":"length","nativeSrc":"6812:6:24","nodeType":"YulIdentifier","src":"6812:6:24"}],"functionName":{"name":"add","nativeSrc":"6800:3:24","nodeType":"YulIdentifier","src":"6800:3:24"},"nativeSrc":"6800:19:24","nodeType":"YulFunctionCall","src":"6800:19:24"}],"functionName":{"name":"sub","nativeSrc":"6791:3:24","nodeType":"YulIdentifier","src":"6791:3:24"},"nativeSrc":"6791:29:24","nodeType":"YulFunctionCall","src":"6791:29:24"},"variables":[{"name":"start","nativeSrc":"6782:5:24","nodeType":"YulTypedName","src":"6782:5:24","type":""}]},{"nativeSrc":"6833:15:24","nodeType":"YulVariableDeclaration","src":"6833:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"6846:1:24","nodeType":"YulLiteral","src":"6846:1:24","type":"","value":"1"}],"functionName":{"name":"not","nativeSrc":"6842:3:24","nodeType":"YulIdentifier","src":"6842:3:24"},"nativeSrc":"6842:6:24","nodeType":"YulFunctionCall","src":"6842:6:24"},"variables":[{"name":"w","nativeSrc":"6837:1:24","nodeType":"YulTypedName","src":"6837:1:24","type":""}]},{"nativeSrc":"6869:17:24","nodeType":"YulVariableDeclaration","src":"6869:17:24","value":{"name":"value","nativeSrc":"6881:5:24","nodeType":"YulIdentifier","src":"6881:5:24"},"variables":[{"name":"temp","nativeSrc":"6873:4:24","nodeType":"YulTypedName","src":"6873:4:24","type":""}]},{"body":{"nativeSrc":"7079:276:24","nodeType":"YulBlock","src":"7079:276:24","statements":[{"nativeSrc":"7097:18:24","nodeType":"YulAssignment","src":"7097:18:24","value":{"arguments":[{"name":"str","nativeSrc":"7108:3:24","nodeType":"YulIdentifier","src":"7108:3:24"},{"name":"w","nativeSrc":"7113:1:24","nodeType":"YulIdentifier","src":"7113:1:24"}],"functionName":{"name":"add","nativeSrc":"7104:3:24","nodeType":"YulIdentifier","src":"7104:3:24"},"nativeSrc":"7104:11:24","nodeType":"YulFunctionCall","src":"7104:11:24"},"variableNames":[{"name":"str","nativeSrc":"7097:3:24","nodeType":"YulIdentifier","src":"7097:3:24"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"7162:3:24","nodeType":"YulIdentifier","src":"7162:3:24"},{"kind":"number","nativeSrc":"7167:1:24","nodeType":"YulLiteral","src":"7167:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7158:3:24","nodeType":"YulIdentifier","src":"7158:3:24"},"nativeSrc":"7158:11:24","nodeType":"YulFunctionCall","src":"7158:11:24"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"7181:4:24","nodeType":"YulIdentifier","src":"7181:4:24"},{"kind":"number","nativeSrc":"7187:2:24","nodeType":"YulLiteral","src":"7187:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"7177:3:24","nodeType":"YulIdentifier","src":"7177:3:24"},"nativeSrc":"7177:13:24","nodeType":"YulFunctionCall","src":"7177:13:24"}],"functionName":{"name":"mload","nativeSrc":"7171:5:24","nodeType":"YulIdentifier","src":"7171:5:24"},"nativeSrc":"7171:20:24","nodeType":"YulFunctionCall","src":"7171:20:24"}],"functionName":{"name":"mstore8","nativeSrc":"7150:7:24","nodeType":"YulIdentifier","src":"7150:7:24"},"nativeSrc":"7150:42:24","nodeType":"YulFunctionCall","src":"7150:42:24"},"nativeSrc":"7150:42:24","nodeType":"YulExpressionStatement","src":"7150:42:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"7217:3:24","nodeType":"YulIdentifier","src":"7217:3:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7236:1:24","nodeType":"YulLiteral","src":"7236:1:24","type":"","value":"4"},{"name":"temp","nativeSrc":"7239:4:24","nodeType":"YulIdentifier","src":"7239:4:24"}],"functionName":{"name":"shr","nativeSrc":"7232:3:24","nodeType":"YulIdentifier","src":"7232:3:24"},"nativeSrc":"7232:12:24","nodeType":"YulFunctionCall","src":"7232:12:24"},{"kind":"number","nativeSrc":"7246:2:24","nodeType":"YulLiteral","src":"7246:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"7228:3:24","nodeType":"YulIdentifier","src":"7228:3:24"},"nativeSrc":"7228:21:24","nodeType":"YulFunctionCall","src":"7228:21:24"}],"functionName":{"name":"mload","nativeSrc":"7222:5:24","nodeType":"YulIdentifier","src":"7222:5:24"},"nativeSrc":"7222:28:24","nodeType":"YulFunctionCall","src":"7222:28:24"}],"functionName":{"name":"mstore8","nativeSrc":"7209:7:24","nodeType":"YulIdentifier","src":"7209:7:24"},"nativeSrc":"7209:42:24","nodeType":"YulFunctionCall","src":"7209:42:24"},"nativeSrc":"7209:42:24","nodeType":"YulExpressionStatement","src":"7209:42:24"},{"nativeSrc":"7268:20:24","nodeType":"YulAssignment","src":"7268:20:24","value":{"arguments":[{"kind":"number","nativeSrc":"7280:1:24","nodeType":"YulLiteral","src":"7280:1:24","type":"","value":"8"},{"name":"temp","nativeSrc":"7283:4:24","nodeType":"YulIdentifier","src":"7283:4:24"}],"functionName":{"name":"shr","nativeSrc":"7276:3:24","nodeType":"YulIdentifier","src":"7276:3:24"},"nativeSrc":"7276:12:24","nodeType":"YulFunctionCall","src":"7276:12:24"},"variableNames":[{"name":"temp","nativeSrc":"7268:4:24","nodeType":"YulIdentifier","src":"7268:4:24"}]},{"body":{"nativeSrc":"7332:9:24","nodeType":"YulBlock","src":"7332:9:24","statements":[{"nativeSrc":"7334:5:24","nodeType":"YulBreak","src":"7334:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"7319:3:24","nodeType":"YulIdentifier","src":"7319:3:24"},{"name":"start","nativeSrc":"7324:5:24","nodeType":"YulIdentifier","src":"7324:5:24"}],"functionName":{"name":"xor","nativeSrc":"7315:3:24","nodeType":"YulIdentifier","src":"7315:3:24"},"nativeSrc":"7315:15:24","nodeType":"YulFunctionCall","src":"7315:15:24"}],"functionName":{"name":"iszero","nativeSrc":"7308:6:24","nodeType":"YulIdentifier","src":"7308:6:24"},"nativeSrc":"7308:23:24","nodeType":"YulFunctionCall","src":"7308:23:24"},"nativeSrc":"7305:36:24","nodeType":"YulIf","src":"7305:36:24"}]},"condition":{"kind":"number","nativeSrc":"7074:1:24","nodeType":"YulLiteral","src":"7074:1:24","type":"","value":"1"},"nativeSrc":"7067:288:24","nodeType":"YulForLoop","post":{"nativeSrc":"7076:2:24","nodeType":"YulBlock","src":"7076:2:24","statements":[]},"pre":{"nativeSrc":"7071:2:24","nodeType":"YulBlock","src":"7071:2:24","statements":[]},"src":"7067:288:24"},{"body":{"nativeSrc":"7377:121:24","nodeType":"YulBlock","src":"7377:121:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7402:4:24","nodeType":"YulLiteral","src":"7402:4:24","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7408:10:24","nodeType":"YulLiteral","src":"7408:10:24","type":"","value":"0x2194895a"}],"functionName":{"name":"mstore","nativeSrc":"7395:6:24","nodeType":"YulIdentifier","src":"7395:6:24"},"nativeSrc":"7395:24:24","nodeType":"YulFunctionCall","src":"7395:24:24"},"nativeSrc":"7395:24:24","nodeType":"YulExpressionStatement","src":"7395:24:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7473:4:24","nodeType":"YulLiteral","src":"7473:4:24","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7479:4:24","nodeType":"YulLiteral","src":"7479:4:24","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7466:6:24","nodeType":"YulIdentifier","src":"7466:6:24"},"nativeSrc":"7466:18:24","nodeType":"YulFunctionCall","src":"7466:18:24"},"nativeSrc":"7466:18:24","nodeType":"YulExpressionStatement","src":"7466:18:24"}]},"condition":{"name":"temp","nativeSrc":"7372:4:24","nodeType":"YulIdentifier","src":"7372:4:24"},"nativeSrc":"7369:129:24","nodeType":"YulIf","src":"7369:129:24"},{"nativeSrc":"7556:30:24","nodeType":"YulVariableDeclaration","src":"7556:30:24","value":{"arguments":[{"name":"end","nativeSrc":"7577:3:24","nodeType":"YulIdentifier","src":"7577:3:24"},{"name":"str","nativeSrc":"7582:3:24","nodeType":"YulIdentifier","src":"7582:3:24"}],"functionName":{"name":"sub","nativeSrc":"7573:3:24","nodeType":"YulIdentifier","src":"7573:3:24"},"nativeSrc":"7573:13:24","nodeType":"YulFunctionCall","src":"7573:13:24"},"variables":[{"name":"strLength","nativeSrc":"7560:9:24","nodeType":"YulTypedName","src":"7560:9:24","type":""}]},{"nativeSrc":"7653:21:24","nodeType":"YulAssignment","src":"7653:21:24","value":{"arguments":[{"name":"str","nativeSrc":"7664:3:24","nodeType":"YulIdentifier","src":"7664:3:24"},{"kind":"number","nativeSrc":"7669:4:24","nodeType":"YulLiteral","src":"7669:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"7660:3:24","nodeType":"YulIdentifier","src":"7660:3:24"},"nativeSrc":"7660:14:24","nodeType":"YulFunctionCall","src":"7660:14:24"},"variableNames":[{"name":"str","nativeSrc":"7653:3:24","nodeType":"YulIdentifier","src":"7653:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"7694:3:24","nodeType":"YulIdentifier","src":"7694:3:24"},{"name":"strLength","nativeSrc":"7699:9:24","nodeType":"YulIdentifier","src":"7699:9:24"}],"functionName":{"name":"mstore","nativeSrc":"7687:6:24","nodeType":"YulIdentifier","src":"7687:6:24"},"nativeSrc":"7687:22:24","nodeType":"YulFunctionCall","src":"7687:22:24"},"nativeSrc":"7687:22:24","nodeType":"YulExpressionStatement","src":"7687:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10393,"isOffset":false,"isSlot":false,"src":"6376:6:24","valueSize":1},{"declaration":10393,"isOffset":false,"isSlot":false,"src":"6804:6:24","valueSize":1},{"declaration":10393,"isOffset":false,"isSlot":false,"src":"6812:6:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6337:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6469:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6550:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6642:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"6795:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7097:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7108:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7162:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7217:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7319:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7582:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7653:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7664:3:24","valueSize":1},{"declaration":10396,"isOffset":false,"isSlot":false,"src":"7694:3:24","valueSize":1},{"declaration":10391,"isOffset":false,"isSlot":false,"src":"6881:5:24","valueSize":1}],"id":10398,"nodeType":"InlineAssembly","src":"6011:1708:24"}]},"documentation":{"id":10389,"nodeType":"StructuredDocumentation","src":"5484:339:24","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"id":10400,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"5837:19:24","nodeType":"FunctionDefinition","parameters":{"id":10394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10391,"mutability":"mutable","name":"value","nameLocation":"5865:5:24","nodeType":"VariableDeclaration","scope":10400,"src":"5857:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10390,"name":"uint256","nodeType":"ElementaryTypeName","src":"5857:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10393,"mutability":"mutable","name":"length","nameLocation":"5880:6:24","nodeType":"VariableDeclaration","scope":10400,"src":"5872:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10392,"name":"uint256","nodeType":"ElementaryTypeName","src":"5872:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5856:31:24"},"returnParameters":{"id":10397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10396,"mutability":"mutable","name":"str","nameLocation":"5949:3:24","nodeType":"VariableDeclaration","scope":10400,"src":"5935:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10395,"name":"string","nodeType":"ElementaryTypeName","src":"5935:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5934:19:24"},"scope":10964,"src":"5828:1897:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10415,"nodeType":"Block","src":"8077:358:24","statements":[{"expression":{"id":10412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10408,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10406,"src":"8087:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10403,"src":"8113:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10409,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10458,"src":"8093:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8093:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8087:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10413,"nodeType":"ExpressionStatement","src":"8087:32:24"},{"AST":{"nativeSrc":"8181:248:24","nodeType":"YulBlock","src":"8181:248:24","statements":[{"nativeSrc":"8195:35:24","nodeType":"YulVariableDeclaration","src":"8195:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"8222:3:24","nodeType":"YulIdentifier","src":"8222:3:24"}],"functionName":{"name":"mload","nativeSrc":"8216:5:24","nodeType":"YulIdentifier","src":"8216:5:24"},"nativeSrc":"8216:10:24","nodeType":"YulFunctionCall","src":"8216:10:24"},{"kind":"number","nativeSrc":"8228:1:24","nodeType":"YulLiteral","src":"8228:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"8212:3:24","nodeType":"YulIdentifier","src":"8212:3:24"},"nativeSrc":"8212:18:24","nodeType":"YulFunctionCall","src":"8212:18:24"},"variables":[{"name":"strLength","nativeSrc":"8199:9:24","nodeType":"YulTypedName","src":"8199:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"8273:3:24","nodeType":"YulIdentifier","src":"8273:3:24"},{"kind":"number","nativeSrc":"8278:6:24","nodeType":"YulLiteral","src":"8278:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"8266:6:24","nodeType":"YulIdentifier","src":"8266:6:24"},"nativeSrc":"8266:19:24","nodeType":"YulFunctionCall","src":"8266:19:24"},"nativeSrc":"8266:19:24","nodeType":"YulExpressionStatement","src":"8266:19:24"},{"nativeSrc":"8324:18:24","nodeType":"YulAssignment","src":"8324:18:24","value":{"arguments":[{"name":"str","nativeSrc":"8335:3:24","nodeType":"YulIdentifier","src":"8335:3:24"},{"kind":"number","nativeSrc":"8340:1:24","nodeType":"YulLiteral","src":"8340:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"8331:3:24","nodeType":"YulIdentifier","src":"8331:3:24"},"nativeSrc":"8331:11:24","nodeType":"YulFunctionCall","src":"8331:11:24"},"variableNames":[{"name":"str","nativeSrc":"8324:3:24","nodeType":"YulIdentifier","src":"8324:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"8383:3:24","nodeType":"YulIdentifier","src":"8383:3:24"},{"name":"strLength","nativeSrc":"8388:9:24","nodeType":"YulIdentifier","src":"8388:9:24"}],"functionName":{"name":"mstore","nativeSrc":"8376:6:24","nodeType":"YulIdentifier","src":"8376:6:24"},"nativeSrc":"8376:22:24","nodeType":"YulFunctionCall","src":"8376:22:24"},"nativeSrc":"8376:22:24","nodeType":"YulExpressionStatement","src":"8376:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8222:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8273:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8324:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8335:3:24","valueSize":1},{"declaration":10406,"isOffset":false,"isSlot":false,"src":"8383:3:24","valueSize":1}],"id":10414,"nodeType":"InlineAssembly","src":"8172:257:24"}]},"documentation":{"id":10401,"nodeType":"StructuredDocumentation","src":"7731:263:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2 + 2` bytes."},"id":10416,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"8008:11:24","nodeType":"FunctionDefinition","parameters":{"id":10404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10403,"mutability":"mutable","name":"value","nameLocation":"8028:5:24","nodeType":"VariableDeclaration","scope":10416,"src":"8020:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10402,"name":"uint256","nodeType":"ElementaryTypeName","src":"8020:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8019:15:24"},"returnParameters":{"id":10407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10406,"mutability":"mutable","name":"str","nameLocation":"8072:3:24","nodeType":"VariableDeclaration","scope":10416,"src":"8058:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10405,"name":"string","nodeType":"ElementaryTypeName","src":"8058:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8057:19:24"},"scope":10964,"src":"7999:436:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10431,"nodeType":"Block","src":"8769:567:24","statements":[{"expression":{"id":10428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10424,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10422,"src":"8779:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10426,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10419,"src":"8805:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10425,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10458,"src":"8785:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8785:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8779:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10429,"nodeType":"ExpressionStatement","src":"8779:32:24"},{"AST":{"nativeSrc":"8873:457:24","nodeType":"YulBlock","src":"8873:457:24","statements":[{"nativeSrc":"8887:49:24","nodeType":"YulVariableDeclaration","src":"8887:49:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8904:1:24","nodeType":"YulLiteral","src":"8904:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nativeSrc":"8917:3:24","nodeType":"YulIdentifier","src":"8917:3:24"},{"kind":"number","nativeSrc":"8922:4:24","nodeType":"YulLiteral","src":"8922:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8913:3:24","nodeType":"YulIdentifier","src":"8913:3:24"},"nativeSrc":"8913:14:24","nodeType":"YulFunctionCall","src":"8913:14:24"}],"functionName":{"name":"mload","nativeSrc":"8907:5:24","nodeType":"YulIdentifier","src":"8907:5:24"},"nativeSrc":"8907:21:24","nodeType":"YulFunctionCall","src":"8907:21:24"}],"functionName":{"name":"byte","nativeSrc":"8899:4:24","nodeType":"YulIdentifier","src":"8899:4:24"},"nativeSrc":"8899:30:24","nodeType":"YulFunctionCall","src":"8899:30:24"},{"kind":"number","nativeSrc":"8931:4:24","nodeType":"YulLiteral","src":"8931:4:24","type":"","value":"0x30"}],"functionName":{"name":"eq","nativeSrc":"8896:2:24","nodeType":"YulIdentifier","src":"8896:2:24"},"nativeSrc":"8896:40:24","nodeType":"YulFunctionCall","src":"8896:40:24"},"variables":[{"name":"o","nativeSrc":"8891:1:24","nodeType":"YulTypedName","src":"8891:1:24","type":""}]},{"nativeSrc":"8985:35:24","nodeType":"YulVariableDeclaration","src":"8985:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9012:3:24","nodeType":"YulIdentifier","src":"9012:3:24"}],"functionName":{"name":"mload","nativeSrc":"9006:5:24","nodeType":"YulIdentifier","src":"9006:5:24"},"nativeSrc":"9006:10:24","nodeType":"YulFunctionCall","src":"9006:10:24"},{"kind":"number","nativeSrc":"9018:1:24","nodeType":"YulLiteral","src":"9018:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"9002:3:24","nodeType":"YulIdentifier","src":"9002:3:24"},"nativeSrc":"9002:18:24","nodeType":"YulFunctionCall","src":"9002:18:24"},"variables":[{"name":"strLength","nativeSrc":"8989:9:24","nodeType":"YulTypedName","src":"8989:9:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9067:3:24","nodeType":"YulIdentifier","src":"9067:3:24"},{"name":"o","nativeSrc":"9072:1:24","nodeType":"YulIdentifier","src":"9072:1:24"}],"functionName":{"name":"add","nativeSrc":"9063:3:24","nodeType":"YulIdentifier","src":"9063:3:24"},"nativeSrc":"9063:11:24","nodeType":"YulFunctionCall","src":"9063:11:24"},{"kind":"number","nativeSrc":"9076:6:24","nodeType":"YulLiteral","src":"9076:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"9056:6:24","nodeType":"YulIdentifier","src":"9056:6:24"},"nativeSrc":"9056:27:24","nodeType":"YulFunctionCall","src":"9056:27:24"},"nativeSrc":"9056:27:24","nodeType":"YulExpressionStatement","src":"9056:27:24"},{"nativeSrc":"9151:26:24","nodeType":"YulAssignment","src":"9151:26:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9166:3:24","nodeType":"YulIdentifier","src":"9166:3:24"},{"name":"o","nativeSrc":"9171:1:24","nodeType":"YulIdentifier","src":"9171:1:24"}],"functionName":{"name":"add","nativeSrc":"9162:3:24","nodeType":"YulIdentifier","src":"9162:3:24"},"nativeSrc":"9162:11:24","nodeType":"YulFunctionCall","src":"9162:11:24"},{"kind":"number","nativeSrc":"9175:1:24","nodeType":"YulLiteral","src":"9175:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"9158:3:24","nodeType":"YulIdentifier","src":"9158:3:24"},"nativeSrc":"9158:19:24","nodeType":"YulFunctionCall","src":"9158:19:24"},"variableNames":[{"name":"str","nativeSrc":"9151:3:24","nodeType":"YulIdentifier","src":"9151:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"9247:3:24","nodeType":"YulIdentifier","src":"9247:3:24"},{"arguments":[{"name":"strLength","nativeSrc":"9256:9:24","nodeType":"YulIdentifier","src":"9256:9:24"},{"name":"o","nativeSrc":"9267:1:24","nodeType":"YulIdentifier","src":"9267:1:24"}],"functionName":{"name":"sub","nativeSrc":"9252:3:24","nodeType":"YulIdentifier","src":"9252:3:24"},"nativeSrc":"9252:17:24","nodeType":"YulFunctionCall","src":"9252:17:24"}],"functionName":{"name":"mstore","nativeSrc":"9240:6:24","nodeType":"YulIdentifier","src":"9240:6:24"},"nativeSrc":"9240:30:24","nodeType":"YulFunctionCall","src":"9240:30:24"},"nativeSrc":"9240:30:24","nodeType":"YulExpressionStatement","src":"9240:30:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10422,"isOffset":false,"isSlot":false,"src":"8917:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9012:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9067:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9151:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9166:3:24","valueSize":1},{"declaration":10422,"isOffset":false,"isSlot":false,"src":"9247:3:24","valueSize":1}],"id":10430,"nodeType":"InlineAssembly","src":"8864:466:24"}]},"documentation":{"id":10417,"nodeType":"StructuredDocumentation","src":"8441:238:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\".\n The output excludes leading \"0\" from the `toHexString` output.\n `0x00: \"0x0\", 0x01: \"0x1\", 0x12: \"0x12\", 0x123: \"0x123\"`."},"id":10432,"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexString","nameLocation":"8693:18:24","nodeType":"FunctionDefinition","parameters":{"id":10420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10419,"mutability":"mutable","name":"value","nameLocation":"8720:5:24","nodeType":"VariableDeclaration","scope":10432,"src":"8712:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10418,"name":"uint256","nodeType":"ElementaryTypeName","src":"8712:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8711:15:24"},"returnParameters":{"id":10423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10422,"mutability":"mutable","name":"str","nameLocation":"8764:3:24","nodeType":"VariableDeclaration","scope":10432,"src":"8750:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10421,"name":"string","nodeType":"ElementaryTypeName","src":"8750:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8749:19:24"},"scope":10964,"src":"8684:652:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10447,"nodeType":"Block","src":"9636:452:24","statements":[{"expression":{"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10440,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10438,"src":"9646:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10435,"src":"9672:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10441,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10458,"src":"9652:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9652:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"9646:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10445,"nodeType":"ExpressionStatement","src":"9646:32:24"},{"AST":{"nativeSrc":"9740:342:24","nodeType":"YulBlock","src":"9740:342:24","statements":[{"nativeSrc":"9754:49:24","nodeType":"YulVariableDeclaration","src":"9754:49:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9771:1:24","nodeType":"YulLiteral","src":"9771:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9784:3:24","nodeType":"YulIdentifier","src":"9784:3:24"},{"kind":"number","nativeSrc":"9789:4:24","nodeType":"YulLiteral","src":"9789:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9780:3:24","nodeType":"YulIdentifier","src":"9780:3:24"},"nativeSrc":"9780:14:24","nodeType":"YulFunctionCall","src":"9780:14:24"}],"functionName":{"name":"mload","nativeSrc":"9774:5:24","nodeType":"YulIdentifier","src":"9774:5:24"},"nativeSrc":"9774:21:24","nodeType":"YulFunctionCall","src":"9774:21:24"}],"functionName":{"name":"byte","nativeSrc":"9766:4:24","nodeType":"YulIdentifier","src":"9766:4:24"},"nativeSrc":"9766:30:24","nodeType":"YulFunctionCall","src":"9766:30:24"},{"kind":"number","nativeSrc":"9798:4:24","nodeType":"YulLiteral","src":"9798:4:24","type":"","value":"0x30"}],"functionName":{"name":"eq","nativeSrc":"9763:2:24","nodeType":"YulIdentifier","src":"9763:2:24"},"nativeSrc":"9763:40:24","nodeType":"YulFunctionCall","src":"9763:40:24"},"variables":[{"name":"o","nativeSrc":"9758:1:24","nodeType":"YulTypedName","src":"9758:1:24","type":""}]},{"nativeSrc":"9852:27:24","nodeType":"YulVariableDeclaration","src":"9852:27:24","value":{"arguments":[{"name":"str","nativeSrc":"9875:3:24","nodeType":"YulIdentifier","src":"9875:3:24"}],"functionName":{"name":"mload","nativeSrc":"9869:5:24","nodeType":"YulIdentifier","src":"9869:5:24"},"nativeSrc":"9869:10:24","nodeType":"YulFunctionCall","src":"9869:10:24"},"variables":[{"name":"strLength","nativeSrc":"9856:9:24","nodeType":"YulTypedName","src":"9856:9:24","type":""}]},{"nativeSrc":"9911:18:24","nodeType":"YulAssignment","src":"9911:18:24","value":{"arguments":[{"name":"str","nativeSrc":"9922:3:24","nodeType":"YulIdentifier","src":"9922:3:24"},{"name":"o","nativeSrc":"9927:1:24","nodeType":"YulIdentifier","src":"9927:1:24"}],"functionName":{"name":"add","nativeSrc":"9918:3:24","nodeType":"YulIdentifier","src":"9918:3:24"},"nativeSrc":"9918:11:24","nodeType":"YulFunctionCall","src":"9918:11:24"},"variableNames":[{"name":"str","nativeSrc":"9911:3:24","nodeType":"YulIdentifier","src":"9911:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"9999:3:24","nodeType":"YulIdentifier","src":"9999:3:24"},{"arguments":[{"name":"strLength","nativeSrc":"10008:9:24","nodeType":"YulIdentifier","src":"10008:9:24"},{"name":"o","nativeSrc":"10019:1:24","nodeType":"YulIdentifier","src":"10019:1:24"}],"functionName":{"name":"sub","nativeSrc":"10004:3:24","nodeType":"YulIdentifier","src":"10004:3:24"},"nativeSrc":"10004:17:24","nodeType":"YulFunctionCall","src":"10004:17:24"}],"functionName":{"name":"mstore","nativeSrc":"9992:6:24","nodeType":"YulIdentifier","src":"9992:6:24"},"nativeSrc":"9992:30:24","nodeType":"YulFunctionCall","src":"9992:30:24"},"nativeSrc":"9992:30:24","nodeType":"YulExpressionStatement","src":"9992:30:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9784:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9875:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9911:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9922:3:24","valueSize":1},{"declaration":10438,"isOffset":false,"isSlot":false,"src":"9999:3:24","valueSize":1}],"id":10446,"nodeType":"InlineAssembly","src":"9731:351:24"}]},"documentation":{"id":10433,"nodeType":"StructuredDocumentation","src":"9342:196:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output excludes leading \"0\" from the `toHexStringNoPrefix` output.\n `0x00: \"0\", 0x01: \"1\", 0x12: \"12\", 0x123: \"123\"`."},"id":10448,"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexStringNoPrefix","nameLocation":"9552:26:24","nodeType":"FunctionDefinition","parameters":{"id":10436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10435,"mutability":"mutable","name":"value","nameLocation":"9587:5:24","nodeType":"VariableDeclaration","scope":10448,"src":"9579:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10434,"name":"uint256","nodeType":"ElementaryTypeName","src":"9579:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9578:15:24"},"returnParameters":{"id":10439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10438,"mutability":"mutable","name":"str","nameLocation":"9631:3:24","nodeType":"VariableDeclaration","scope":10448,"src":"9617:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10437,"name":"string","nodeType":"ElementaryTypeName","src":"9617:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9616:19:24"},"scope":10964,"src":"9543:545:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10457,"nodeType":"Block","src":"10421:1457:24","statements":[{"AST":{"nativeSrc":"10483:1389:24","nodeType":"YulBlock","src":"10483:1389:24","statements":[{"nativeSrc":"10747:29:24","nodeType":"YulAssignment","src":"10747:29:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10764:4:24","nodeType":"YulLiteral","src":"10764:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10758:5:24","nodeType":"YulIdentifier","src":"10758:5:24"},"nativeSrc":"10758:11:24","nodeType":"YulFunctionCall","src":"10758:11:24"},{"kind":"number","nativeSrc":"10771:4:24","nodeType":"YulLiteral","src":"10771:4:24","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10754:3:24","nodeType":"YulIdentifier","src":"10754:3:24"},"nativeSrc":"10754:22:24","nodeType":"YulFunctionCall","src":"10754:22:24"},"variableNames":[{"name":"str","nativeSrc":"10747:3:24","nodeType":"YulIdentifier","src":"10747:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10832:4:24","nodeType":"YulLiteral","src":"10832:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"10842:3:24","nodeType":"YulIdentifier","src":"10842:3:24"},{"kind":"number","nativeSrc":"10847:4:24","nodeType":"YulLiteral","src":"10847:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10838:3:24","nodeType":"YulIdentifier","src":"10838:3:24"},"nativeSrc":"10838:14:24","nodeType":"YulFunctionCall","src":"10838:14:24"}],"functionName":{"name":"mstore","nativeSrc":"10825:6:24","nodeType":"YulIdentifier","src":"10825:6:24"},"nativeSrc":"10825:28:24","nodeType":"YulFunctionCall","src":"10825:28:24"},"nativeSrc":"10825:28:24","nodeType":"YulExpressionStatement","src":"10825:28:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"10923:3:24","nodeType":"YulIdentifier","src":"10923:3:24"},{"kind":"number","nativeSrc":"10928:1:24","nodeType":"YulLiteral","src":"10928:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10916:6:24","nodeType":"YulIdentifier","src":"10916:6:24"},"nativeSrc":"10916:14:24","nodeType":"YulFunctionCall","src":"10916:14:24"},"nativeSrc":"10916:14:24","nodeType":"YulExpressionStatement","src":"10916:14:24"},{"nativeSrc":"11004:14:24","nodeType":"YulVariableDeclaration","src":"11004:14:24","value":{"name":"str","nativeSrc":"11015:3:24","nodeType":"YulIdentifier","src":"11015:3:24"},"variables":[{"name":"end","nativeSrc":"11008:3:24","nodeType":"YulTypedName","src":"11008:3:24","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11096:4:24","nodeType":"YulLiteral","src":"11096:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"11102:34:24","nodeType":"YulLiteral","src":"11102:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"11089:6:24","nodeType":"YulIdentifier","src":"11089:6:24"},"nativeSrc":"11089:48:24","nodeType":"YulFunctionCall","src":"11089:48:24"},"nativeSrc":"11089:48:24","nodeType":"YulExpressionStatement","src":"11089:48:24"},{"nativeSrc":"11151:15:24","nodeType":"YulVariableDeclaration","src":"11151:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"11164:1:24","nodeType":"YulLiteral","src":"11164:1:24","type":"","value":"1"}],"functionName":{"name":"not","nativeSrc":"11160:3:24","nodeType":"YulIdentifier","src":"11160:3:24"},"nativeSrc":"11160:6:24","nodeType":"YulFunctionCall","src":"11160:6:24"},"variables":[{"name":"w","nativeSrc":"11155:1:24","nodeType":"YulTypedName","src":"11155:1:24","type":""}]},{"body":{"nativeSrc":"11386:265:24","nodeType":"YulBlock","src":"11386:265:24","statements":[{"nativeSrc":"11404:18:24","nodeType":"YulAssignment","src":"11404:18:24","value":{"arguments":[{"name":"str","nativeSrc":"11415:3:24","nodeType":"YulIdentifier","src":"11415:3:24"},{"name":"w","nativeSrc":"11420:1:24","nodeType":"YulIdentifier","src":"11420:1:24"}],"functionName":{"name":"add","nativeSrc":"11411:3:24","nodeType":"YulIdentifier","src":"11411:3:24"},"nativeSrc":"11411:11:24","nodeType":"YulFunctionCall","src":"11411:11:24"},"variableNames":[{"name":"str","nativeSrc":"11404:3:24","nodeType":"YulIdentifier","src":"11404:3:24"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"11469:3:24","nodeType":"YulIdentifier","src":"11469:3:24"},{"kind":"number","nativeSrc":"11474:1:24","nodeType":"YulLiteral","src":"11474:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11465:3:24","nodeType":"YulIdentifier","src":"11465:3:24"},"nativeSrc":"11465:11:24","nodeType":"YulFunctionCall","src":"11465:11:24"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"11488:4:24","nodeType":"YulIdentifier","src":"11488:4:24"},{"kind":"number","nativeSrc":"11494:2:24","nodeType":"YulLiteral","src":"11494:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"11484:3:24","nodeType":"YulIdentifier","src":"11484:3:24"},"nativeSrc":"11484:13:24","nodeType":"YulFunctionCall","src":"11484:13:24"}],"functionName":{"name":"mload","nativeSrc":"11478:5:24","nodeType":"YulIdentifier","src":"11478:5:24"},"nativeSrc":"11478:20:24","nodeType":"YulFunctionCall","src":"11478:20:24"}],"functionName":{"name":"mstore8","nativeSrc":"11457:7:24","nodeType":"YulIdentifier","src":"11457:7:24"},"nativeSrc":"11457:42:24","nodeType":"YulFunctionCall","src":"11457:42:24"},"nativeSrc":"11457:42:24","nodeType":"YulExpressionStatement","src":"11457:42:24"},{"expression":{"arguments":[{"name":"str","nativeSrc":"11524:3:24","nodeType":"YulIdentifier","src":"11524:3:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11543:1:24","nodeType":"YulLiteral","src":"11543:1:24","type":"","value":"4"},{"name":"temp","nativeSrc":"11546:4:24","nodeType":"YulIdentifier","src":"11546:4:24"}],"functionName":{"name":"shr","nativeSrc":"11539:3:24","nodeType":"YulIdentifier","src":"11539:3:24"},"nativeSrc":"11539:12:24","nodeType":"YulFunctionCall","src":"11539:12:24"},{"kind":"number","nativeSrc":"11553:2:24","nodeType":"YulLiteral","src":"11553:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"11535:3:24","nodeType":"YulIdentifier","src":"11535:3:24"},"nativeSrc":"11535:21:24","nodeType":"YulFunctionCall","src":"11535:21:24"}],"functionName":{"name":"mload","nativeSrc":"11529:5:24","nodeType":"YulIdentifier","src":"11529:5:24"},"nativeSrc":"11529:28:24","nodeType":"YulFunctionCall","src":"11529:28:24"}],"functionName":{"name":"mstore8","nativeSrc":"11516:7:24","nodeType":"YulIdentifier","src":"11516:7:24"},"nativeSrc":"11516:42:24","nodeType":"YulFunctionCall","src":"11516:42:24"},"nativeSrc":"11516:42:24","nodeType":"YulExpressionStatement","src":"11516:42:24"},{"nativeSrc":"11575:20:24","nodeType":"YulAssignment","src":"11575:20:24","value":{"arguments":[{"kind":"number","nativeSrc":"11587:1:24","nodeType":"YulLiteral","src":"11587:1:24","type":"","value":"8"},{"name":"temp","nativeSrc":"11590:4:24","nodeType":"YulIdentifier","src":"11590:4:24"}],"functionName":{"name":"shr","nativeSrc":"11583:3:24","nodeType":"YulIdentifier","src":"11583:3:24"},"nativeSrc":"11583:12:24","nodeType":"YulFunctionCall","src":"11583:12:24"},"variableNames":[{"name":"temp","nativeSrc":"11575:4:24","nodeType":"YulIdentifier","src":"11575:4:24"}]},{"body":{"nativeSrc":"11628:9:24","nodeType":"YulBlock","src":"11628:9:24","statements":[{"nativeSrc":"11630:5:24","nodeType":"YulBreak","src":"11630:5:24"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"11622:4:24","nodeType":"YulIdentifier","src":"11622:4:24"}],"functionName":{"name":"iszero","nativeSrc":"11615:6:24","nodeType":"YulIdentifier","src":"11615:6:24"},"nativeSrc":"11615:12:24","nodeType":"YulFunctionCall","src":"11615:12:24"},"nativeSrc":"11612:25:24","nodeType":"YulIf","src":"11612:25:24"}]},"condition":{"kind":"number","nativeSrc":"11381:1:24","nodeType":"YulLiteral","src":"11381:1:24","type":"","value":"1"},"nativeSrc":"11355:296:24","nodeType":"YulForLoop","post":{"nativeSrc":"11383:2:24","nodeType":"YulBlock","src":"11383:2:24","statements":[]},"pre":{"nativeSrc":"11359:21:24","nodeType":"YulBlock","src":"11359:21:24","statements":[{"nativeSrc":"11361:17:24","nodeType":"YulVariableDeclaration","src":"11361:17:24","value":{"name":"value","nativeSrc":"11373:5:24","nodeType":"YulIdentifier","src":"11373:5:24"},"variables":[{"name":"temp","nativeSrc":"11365:4:24","nodeType":"YulTypedName","src":"11365:4:24","type":""}]}]},"src":"11355:296:24"},{"nativeSrc":"11709:30:24","nodeType":"YulVariableDeclaration","src":"11709:30:24","value":{"arguments":[{"name":"end","nativeSrc":"11730:3:24","nodeType":"YulIdentifier","src":"11730:3:24"},{"name":"str","nativeSrc":"11735:3:24","nodeType":"YulIdentifier","src":"11735:3:24"}],"functionName":{"name":"sub","nativeSrc":"11726:3:24","nodeType":"YulIdentifier","src":"11726:3:24"},"nativeSrc":"11726:13:24","nodeType":"YulFunctionCall","src":"11726:13:24"},"variables":[{"name":"strLength","nativeSrc":"11713:9:24","nodeType":"YulTypedName","src":"11713:9:24","type":""}]},{"nativeSrc":"11806:21:24","nodeType":"YulAssignment","src":"11806:21:24","value":{"arguments":[{"name":"str","nativeSrc":"11817:3:24","nodeType":"YulIdentifier","src":"11817:3:24"},{"kind":"number","nativeSrc":"11822:4:24","nodeType":"YulLiteral","src":"11822:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"11813:3:24","nodeType":"YulIdentifier","src":"11813:3:24"},"nativeSrc":"11813:14:24","nodeType":"YulFunctionCall","src":"11813:14:24"},"variableNames":[{"name":"str","nativeSrc":"11806:3:24","nodeType":"YulIdentifier","src":"11806:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"11847:3:24","nodeType":"YulIdentifier","src":"11847:3:24"},{"name":"strLength","nativeSrc":"11852:9:24","nodeType":"YulIdentifier","src":"11852:9:24"}],"functionName":{"name":"mstore","nativeSrc":"11840:6:24","nodeType":"YulIdentifier","src":"11840:6:24"},"nativeSrc":"11840:22:24","nodeType":"YulFunctionCall","src":"11840:22:24"},"nativeSrc":"11840:22:24","nodeType":"YulExpressionStatement","src":"11840:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10454,"isOffset":false,"isSlot":false,"src":"10747:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"10842:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"10923:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11015:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11404:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11415:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11469:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11524:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11735:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11806:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11817:3:24","valueSize":1},{"declaration":10454,"isOffset":false,"isSlot":false,"src":"11847:3:24","valueSize":1},{"declaration":10451,"isOffset":false,"isSlot":false,"src":"11373:5:24","valueSize":1}],"id":10456,"nodeType":"InlineAssembly","src":"10474:1398:24"}]},"documentation":{"id":10449,"nodeType":"StructuredDocumentation","src":"10094:236:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2` bytes."},"id":10458,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"10344:19:24","nodeType":"FunctionDefinition","parameters":{"id":10452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10451,"mutability":"mutable","name":"value","nameLocation":"10372:5:24","nodeType":"VariableDeclaration","scope":10458,"src":"10364:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10450,"name":"uint256","nodeType":"ElementaryTypeName","src":"10364:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10363:15:24"},"returnParameters":{"id":10455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10454,"mutability":"mutable","name":"str","nameLocation":"10416:3:24","nodeType":"VariableDeclaration","scope":10458,"src":"10402:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10453,"name":"string","nodeType":"ElementaryTypeName","src":"10402:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10401:19:24"},"scope":10964,"src":"10335:1543:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10473,"nodeType":"Block","src":"12239:749:24","statements":[{"expression":{"id":10470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10466,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10464,"src":"12249:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10468,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10461,"src":"12267:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10467,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[10388,10416,10490,10516],"referencedDeclaration":10490,"src":"12255:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":10469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12255:18:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12249:24:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10471,"nodeType":"ExpressionStatement","src":"12249:24:24"},{"AST":{"nativeSrc":"12335:647:24","nodeType":"YulBlock","src":"12335:647:24","statements":[{"nativeSrc":"12349:36:24","nodeType":"YulVariableDeclaration","src":"12349:36:24","value":{"arguments":[{"kind":"number","nativeSrc":"12365:1:24","nodeType":"YulLiteral","src":"12365:1:24","type":"","value":"6"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12376:1:24","nodeType":"YulLiteral","src":"12376:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"12372:3:24","nodeType":"YulIdentifier","src":"12372:3:24"},"nativeSrc":"12372:6:24","nodeType":"YulFunctionCall","src":"12372:6:24"},{"kind":"number","nativeSrc":"12380:3:24","nodeType":"YulLiteral","src":"12380:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"12368:3:24","nodeType":"YulIdentifier","src":"12368:3:24"},"nativeSrc":"12368:16:24","nodeType":"YulFunctionCall","src":"12368:16:24"}],"functionName":{"name":"shl","nativeSrc":"12361:3:24","nodeType":"YulIdentifier","src":"12361:3:24"},"nativeSrc":"12361:24:24","nodeType":"YulFunctionCall","src":"12361:24:24"},"variables":[{"name":"mask","nativeSrc":"12353:4:24","nodeType":"YulTypedName","src":"12353:4:24","type":""}]},{"nativeSrc":"12428:23:24","nodeType":"YulVariableDeclaration","src":"12428:23:24","value":{"arguments":[{"name":"str","nativeSrc":"12441:3:24","nodeType":"YulIdentifier","src":"12441:3:24"},{"kind":"number","nativeSrc":"12446:4:24","nodeType":"YulLiteral","src":"12446:4:24","type":"","value":"0x22"}],"functionName":{"name":"add","nativeSrc":"12437:3:24","nodeType":"YulIdentifier","src":"12437:3:24"},"nativeSrc":"12437:14:24","nodeType":"YulFunctionCall","src":"12437:14:24"},"variables":[{"name":"o","nativeSrc":"12432:1:24","nodeType":"YulTypedName","src":"12432:1:24","type":""}]},{"nativeSrc":"12464:50:24","nodeType":"YulVariableDeclaration","src":"12464:50:24","value":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12492:1:24","nodeType":"YulIdentifier","src":"12492:1:24"},{"kind":"number","nativeSrc":"12495:2:24","nodeType":"YulLiteral","src":"12495:2:24","type":"","value":"40"}],"functionName":{"name":"keccak256","nativeSrc":"12482:9:24","nodeType":"YulIdentifier","src":"12482:9:24"},"nativeSrc":"12482:16:24","nodeType":"YulFunctionCall","src":"12482:16:24"},{"arguments":[{"kind":"number","nativeSrc":"12504:2:24","nodeType":"YulLiteral","src":"12504:2:24","type":"","value":"34"},{"name":"mask","nativeSrc":"12508:4:24","nodeType":"YulIdentifier","src":"12508:4:24"}],"functionName":{"name":"mul","nativeSrc":"12500:3:24","nodeType":"YulIdentifier","src":"12500:3:24"},"nativeSrc":"12500:13:24","nodeType":"YulFunctionCall","src":"12500:13:24"}],"functionName":{"name":"and","nativeSrc":"12478:3:24","nodeType":"YulIdentifier","src":"12478:3:24"},"nativeSrc":"12478:36:24","nodeType":"YulFunctionCall","src":"12478:36:24"},"variables":[{"name":"hashed","nativeSrc":"12468:6:24","nodeType":"YulTypedName","src":"12468:6:24","type":""}]},{"nativeSrc":"12548:22:24","nodeType":"YulVariableDeclaration","src":"12548:22:24","value":{"arguments":[{"kind":"number","nativeSrc":"12561:3:24","nodeType":"YulLiteral","src":"12561:3:24","type":"","value":"240"},{"kind":"number","nativeSrc":"12566:3:24","nodeType":"YulLiteral","src":"12566:3:24","type":"","value":"136"}],"functionName":{"name":"shl","nativeSrc":"12557:3:24","nodeType":"YulIdentifier","src":"12557:3:24"},"nativeSrc":"12557:13:24","nodeType":"YulFunctionCall","src":"12557:13:24"},"variables":[{"name":"t","nativeSrc":"12552:1:24","nodeType":"YulTypedName","src":"12552:1:24","type":""}]},{"body":{"nativeSrc":"12630:144:24","nodeType":"YulBlock","src":"12630:144:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"i","nativeSrc":"12659:1:24","nodeType":"YulIdentifier","src":"12659:1:24"},{"name":"i","nativeSrc":"12662:1:24","nodeType":"YulIdentifier","src":"12662:1:24"}],"functionName":{"name":"add","nativeSrc":"12655:3:24","nodeType":"YulIdentifier","src":"12655:3:24"},"nativeSrc":"12655:9:24","nodeType":"YulFunctionCall","src":"12655:9:24"},{"arguments":[{"name":"t","nativeSrc":"12670:1:24","nodeType":"YulIdentifier","src":"12670:1:24"},{"arguments":[{"name":"i","nativeSrc":"12678:1:24","nodeType":"YulIdentifier","src":"12678:1:24"},{"name":"hashed","nativeSrc":"12681:6:24","nodeType":"YulIdentifier","src":"12681:6:24"}],"functionName":{"name":"byte","nativeSrc":"12673:4:24","nodeType":"YulIdentifier","src":"12673:4:24"},"nativeSrc":"12673:15:24","nodeType":"YulFunctionCall","src":"12673:15:24"}],"functionName":{"name":"mul","nativeSrc":"12666:3:24","nodeType":"YulIdentifier","src":"12666:3:24"},"nativeSrc":"12666:23:24","nodeType":"YulFunctionCall","src":"12666:23:24"}],"functionName":{"name":"mstore","nativeSrc":"12648:6:24","nodeType":"YulIdentifier","src":"12648:6:24"},"nativeSrc":"12648:42:24","nodeType":"YulFunctionCall","src":"12648:42:24"},"nativeSrc":"12648:42:24","nodeType":"YulExpressionStatement","src":"12648:42:24"},{"nativeSrc":"12707:14:24","nodeType":"YulAssignment","src":"12707:14:24","value":{"arguments":[{"name":"i","nativeSrc":"12716:1:24","nodeType":"YulIdentifier","src":"12716:1:24"},{"kind":"number","nativeSrc":"12719:1:24","nodeType":"YulLiteral","src":"12719:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12712:3:24","nodeType":"YulIdentifier","src":"12712:3:24"},"nativeSrc":"12712:9:24","nodeType":"YulFunctionCall","src":"12712:9:24"},"variableNames":[{"name":"i","nativeSrc":"12707:1:24","nodeType":"YulIdentifier","src":"12707:1:24"}]},{"body":{"nativeSrc":"12751:9:24","nodeType":"YulBlock","src":"12751:9:24","statements":[{"nativeSrc":"12753:5:24","nodeType":"YulBreak","src":"12753:5:24"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"12744:1:24","nodeType":"YulIdentifier","src":"12744:1:24"},{"kind":"number","nativeSrc":"12747:2:24","nodeType":"YulLiteral","src":"12747:2:24","type":"","value":"20"}],"functionName":{"name":"eq","nativeSrc":"12741:2:24","nodeType":"YulIdentifier","src":"12741:2:24"},"nativeSrc":"12741:9:24","nodeType":"YulFunctionCall","src":"12741:9:24"},"nativeSrc":"12738:22:24","nodeType":"YulIf","src":"12738:22:24"}]},"condition":{"kind":"number","nativeSrc":"12625:1:24","nodeType":"YulLiteral","src":"12625:1:24","type":"","value":"1"},"nativeSrc":"12606:168:24","nodeType":"YulForLoop","post":{"nativeSrc":"12627:2:24","nodeType":"YulBlock","src":"12627:2:24","statements":[]},"pre":{"nativeSrc":"12610:14:24","nodeType":"YulBlock","src":"12610:14:24","statements":[{"nativeSrc":"12612:10:24","nodeType":"YulVariableDeclaration","src":"12612:10:24","value":{"kind":"number","nativeSrc":"12621:1:24","nodeType":"YulLiteral","src":"12621:1:24","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"12616:1:24","nodeType":"YulTypedName","src":"12616:1:24","type":""}]}]},"src":"12606:168:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"12794:1:24","nodeType":"YulIdentifier","src":"12794:1:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12807:1:24","nodeType":"YulIdentifier","src":"12807:1:24"}],"functionName":{"name":"mload","nativeSrc":"12801:5:24","nodeType":"YulIdentifier","src":"12801:5:24"},"nativeSrc":"12801:8:24","nodeType":"YulFunctionCall","src":"12801:8:24"},{"arguments":[{"kind":"number","nativeSrc":"12815:1:24","nodeType":"YulLiteral","src":"12815:1:24","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12828:4:24","nodeType":"YulLiteral","src":"12828:4:24","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"12822:5:24","nodeType":"YulIdentifier","src":"12822:5:24"},"nativeSrc":"12822:11:24","nodeType":"YulFunctionCall","src":"12822:11:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12845:1:24","nodeType":"YulIdentifier","src":"12845:1:24"}],"functionName":{"name":"mload","nativeSrc":"12839:5:24","nodeType":"YulIdentifier","src":"12839:5:24"},"nativeSrc":"12839:8:24","nodeType":"YulFunctionCall","src":"12839:8:24"},{"name":"mask","nativeSrc":"12849:4:24","nodeType":"YulIdentifier","src":"12849:4:24"}],"functionName":{"name":"and","nativeSrc":"12835:3:24","nodeType":"YulIdentifier","src":"12835:3:24"},"nativeSrc":"12835:19:24","nodeType":"YulFunctionCall","src":"12835:19:24"}],"functionName":{"name":"and","nativeSrc":"12818:3:24","nodeType":"YulIdentifier","src":"12818:3:24"},"nativeSrc":"12818:37:24","nodeType":"YulFunctionCall","src":"12818:37:24"}],"functionName":{"name":"shr","nativeSrc":"12811:3:24","nodeType":"YulIdentifier","src":"12811:3:24"},"nativeSrc":"12811:45:24","nodeType":"YulFunctionCall","src":"12811:45:24"}],"functionName":{"name":"xor","nativeSrc":"12797:3:24","nodeType":"YulIdentifier","src":"12797:3:24"},"nativeSrc":"12797:60:24","nodeType":"YulFunctionCall","src":"12797:60:24"}],"functionName":{"name":"mstore","nativeSrc":"12787:6:24","nodeType":"YulIdentifier","src":"12787:6:24"},"nativeSrc":"12787:71:24","nodeType":"YulFunctionCall","src":"12787:71:24"},"nativeSrc":"12787:71:24","nodeType":"YulExpressionStatement","src":"12787:71:24"},{"nativeSrc":"12871:17:24","nodeType":"YulAssignment","src":"12871:17:24","value":{"arguments":[{"name":"o","nativeSrc":"12880:1:24","nodeType":"YulIdentifier","src":"12880:1:24"},{"kind":"number","nativeSrc":"12883:4:24","nodeType":"YulLiteral","src":"12883:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12876:3:24","nodeType":"YulIdentifier","src":"12876:3:24"},"nativeSrc":"12876:12:24","nodeType":"YulFunctionCall","src":"12876:12:24"},"variableNames":[{"name":"o","nativeSrc":"12871:1:24","nodeType":"YulIdentifier","src":"12871:1:24"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"12908:1:24","nodeType":"YulIdentifier","src":"12908:1:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12921:1:24","nodeType":"YulIdentifier","src":"12921:1:24"}],"functionName":{"name":"mload","nativeSrc":"12915:5:24","nodeType":"YulIdentifier","src":"12915:5:24"},"nativeSrc":"12915:8:24","nodeType":"YulFunctionCall","src":"12915:8:24"},{"arguments":[{"kind":"number","nativeSrc":"12929:1:24","nodeType":"YulLiteral","src":"12929:1:24","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12942:4:24","nodeType":"YulLiteral","src":"12942:4:24","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"12936:5:24","nodeType":"YulIdentifier","src":"12936:5:24"},"nativeSrc":"12936:11:24","nodeType":"YulFunctionCall","src":"12936:11:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12959:1:24","nodeType":"YulIdentifier","src":"12959:1:24"}],"functionName":{"name":"mload","nativeSrc":"12953:5:24","nodeType":"YulIdentifier","src":"12953:5:24"},"nativeSrc":"12953:8:24","nodeType":"YulFunctionCall","src":"12953:8:24"},{"name":"mask","nativeSrc":"12963:4:24","nodeType":"YulIdentifier","src":"12963:4:24"}],"functionName":{"name":"and","nativeSrc":"12949:3:24","nodeType":"YulIdentifier","src":"12949:3:24"},"nativeSrc":"12949:19:24","nodeType":"YulFunctionCall","src":"12949:19:24"}],"functionName":{"name":"and","nativeSrc":"12932:3:24","nodeType":"YulIdentifier","src":"12932:3:24"},"nativeSrc":"12932:37:24","nodeType":"YulFunctionCall","src":"12932:37:24"}],"functionName":{"name":"shr","nativeSrc":"12925:3:24","nodeType":"YulIdentifier","src":"12925:3:24"},"nativeSrc":"12925:45:24","nodeType":"YulFunctionCall","src":"12925:45:24"}],"functionName":{"name":"xor","nativeSrc":"12911:3:24","nodeType":"YulIdentifier","src":"12911:3:24"},"nativeSrc":"12911:60:24","nodeType":"YulFunctionCall","src":"12911:60:24"}],"functionName":{"name":"mstore","nativeSrc":"12901:6:24","nodeType":"YulIdentifier","src":"12901:6:24"},"nativeSrc":"12901:71:24","nodeType":"YulFunctionCall","src":"12901:71:24"},"nativeSrc":"12901:71:24","nodeType":"YulExpressionStatement","src":"12901:71:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10464,"isOffset":false,"isSlot":false,"src":"12441:3:24","valueSize":1}],"id":10472,"nodeType":"InlineAssembly","src":"12326:656:24"}]},"documentation":{"id":10459,"nodeType":"StructuredDocumentation","src":"11884:261:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\", encoded using 2 hexadecimal digits per byte,\n and the alphabets are capitalized conditionally according to\n https://eips.ethereum.org/EIPS/eip-55"},"id":10474,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringChecksummed","nameLocation":"12159:22:24","nodeType":"FunctionDefinition","parameters":{"id":10462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10461,"mutability":"mutable","name":"value","nameLocation":"12190:5:24","nodeType":"VariableDeclaration","scope":10474,"src":"12182:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10460,"name":"address","nodeType":"ElementaryTypeName","src":"12182:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12181:15:24"},"returnParameters":{"id":10465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10464,"mutability":"mutable","name":"str","nameLocation":"12234:3:24","nodeType":"VariableDeclaration","scope":10474,"src":"12220:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10463,"name":"string","nodeType":"ElementaryTypeName","src":"12220:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12219:19:24"},"scope":10964,"src":"12150:838:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10489,"nodeType":"Block","src":"13226:358:24","statements":[{"expression":{"id":10486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10482,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10480,"src":"13236:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10484,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10477,"src":"13262:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10483,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10500,"src":"13242:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":10485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13242:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13236:32:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10487,"nodeType":"ExpressionStatement","src":"13236:32:24"},{"AST":{"nativeSrc":"13330:248:24","nodeType":"YulBlock","src":"13330:248:24","statements":[{"nativeSrc":"13344:35:24","nodeType":"YulVariableDeclaration","src":"13344:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"13371:3:24","nodeType":"YulIdentifier","src":"13371:3:24"}],"functionName":{"name":"mload","nativeSrc":"13365:5:24","nodeType":"YulIdentifier","src":"13365:5:24"},"nativeSrc":"13365:10:24","nodeType":"YulFunctionCall","src":"13365:10:24"},{"kind":"number","nativeSrc":"13377:1:24","nodeType":"YulLiteral","src":"13377:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"13361:3:24","nodeType":"YulIdentifier","src":"13361:3:24"},"nativeSrc":"13361:18:24","nodeType":"YulFunctionCall","src":"13361:18:24"},"variables":[{"name":"strLength","nativeSrc":"13348:9:24","nodeType":"YulTypedName","src":"13348:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"13422:3:24","nodeType":"YulIdentifier","src":"13422:3:24"},{"kind":"number","nativeSrc":"13427:6:24","nodeType":"YulLiteral","src":"13427:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"13415:6:24","nodeType":"YulIdentifier","src":"13415:6:24"},"nativeSrc":"13415:19:24","nodeType":"YulFunctionCall","src":"13415:19:24"},"nativeSrc":"13415:19:24","nodeType":"YulExpressionStatement","src":"13415:19:24"},{"nativeSrc":"13473:18:24","nodeType":"YulAssignment","src":"13473:18:24","value":{"arguments":[{"name":"str","nativeSrc":"13484:3:24","nodeType":"YulIdentifier","src":"13484:3:24"},{"kind":"number","nativeSrc":"13489:1:24","nodeType":"YulLiteral","src":"13489:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"13480:3:24","nodeType":"YulIdentifier","src":"13480:3:24"},"nativeSrc":"13480:11:24","nodeType":"YulFunctionCall","src":"13480:11:24"},"variableNames":[{"name":"str","nativeSrc":"13473:3:24","nodeType":"YulIdentifier","src":"13473:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"13532:3:24","nodeType":"YulIdentifier","src":"13532:3:24"},{"name":"strLength","nativeSrc":"13537:9:24","nodeType":"YulIdentifier","src":"13537:9:24"}],"functionName":{"name":"mstore","nativeSrc":"13525:6:24","nodeType":"YulIdentifier","src":"13525:6:24"},"nativeSrc":"13525:22:24","nodeType":"YulFunctionCall","src":"13525:22:24"},"nativeSrc":"13525:22:24","nodeType":"YulExpressionStatement","src":"13525:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13371:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13422:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13473:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13484:3:24","valueSize":1},{"declaration":10480,"isOffset":false,"isSlot":false,"src":"13532:3:24","valueSize":1}],"id":10488,"nodeType":"InlineAssembly","src":"13321:257:24"}]},"documentation":{"id":10475,"nodeType":"StructuredDocumentation","src":"12994:149:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte."},"id":10490,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"13157:11:24","nodeType":"FunctionDefinition","parameters":{"id":10478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10477,"mutability":"mutable","name":"value","nameLocation":"13177:5:24","nodeType":"VariableDeclaration","scope":10490,"src":"13169:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10476,"name":"address","nodeType":"ElementaryTypeName","src":"13169:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13168:15:24"},"returnParameters":{"id":10481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10480,"mutability":"mutable","name":"str","nameLocation":"13221:3:24","nodeType":"VariableDeclaration","scope":10490,"src":"13207:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10479,"name":"string","nodeType":"ElementaryTypeName","src":"13207:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13206:19:24"},"scope":10964,"src":"13148:436:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10499,"nodeType":"Block","src":"13807:1208:24","statements":[{"AST":{"nativeSrc":"13869:1140:24","nodeType":"YulBlock","src":"13869:1140:24","statements":[{"nativeSrc":"13883:18:24","nodeType":"YulAssignment","src":"13883:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"13896:4:24","nodeType":"YulLiteral","src":"13896:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13890:5:24","nodeType":"YulIdentifier","src":"13890:5:24"},"nativeSrc":"13890:11:24","nodeType":"YulFunctionCall","src":"13890:11:24"},"variableNames":[{"name":"str","nativeSrc":"13883:3:24","nodeType":"YulIdentifier","src":"13883:3:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14208:4:24","nodeType":"YulLiteral","src":"14208:4:24","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"14218:3:24","nodeType":"YulIdentifier","src":"14218:3:24"},{"kind":"number","nativeSrc":"14223:4:24","nodeType":"YulLiteral","src":"14223:4:24","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14214:3:24","nodeType":"YulIdentifier","src":"14214:3:24"},"nativeSrc":"14214:14:24","nodeType":"YulFunctionCall","src":"14214:14:24"}],"functionName":{"name":"mstore","nativeSrc":"14201:6:24","nodeType":"YulIdentifier","src":"14201:6:24"},"nativeSrc":"14201:28:24","nodeType":"YulFunctionCall","src":"14201:28:24"},"nativeSrc":"14201:28:24","nodeType":"YulExpressionStatement","src":"14201:28:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14308:4:24","nodeType":"YulLiteral","src":"14308:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"14314:34:24","nodeType":"YulLiteral","src":"14314:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"14301:6:24","nodeType":"YulIdentifier","src":"14301:6:24"},"nativeSrc":"14301:48:24","nodeType":"YulFunctionCall","src":"14301:48:24"},"nativeSrc":"14301:48:24","nodeType":"YulExpressionStatement","src":"14301:48:24"},{"nativeSrc":"14363:18:24","nodeType":"YulAssignment","src":"14363:18:24","value":{"arguments":[{"name":"str","nativeSrc":"14374:3:24","nodeType":"YulIdentifier","src":"14374:3:24"},{"kind":"number","nativeSrc":"14379:1:24","nodeType":"YulLiteral","src":"14379:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"14370:3:24","nodeType":"YulIdentifier","src":"14370:3:24"},"nativeSrc":"14370:11:24","nodeType":"YulFunctionCall","src":"14370:11:24"},"variableNames":[{"name":"str","nativeSrc":"14363:3:24","nodeType":"YulIdentifier","src":"14363:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"14401:3:24","nodeType":"YulIdentifier","src":"14401:3:24"},{"kind":"number","nativeSrc":"14406:2:24","nodeType":"YulLiteral","src":"14406:2:24","type":"","value":"40"}],"functionName":{"name":"mstore","nativeSrc":"14394:6:24","nodeType":"YulIdentifier","src":"14394:6:24"},"nativeSrc":"14394:15:24","nodeType":"YulFunctionCall","src":"14394:15:24"},"nativeSrc":"14394:15:24","nodeType":"YulExpressionStatement","src":"14394:15:24"},{"nativeSrc":"14423:23:24","nodeType":"YulVariableDeclaration","src":"14423:23:24","value":{"arguments":[{"name":"str","nativeSrc":"14436:3:24","nodeType":"YulIdentifier","src":"14436:3:24"},{"kind":"number","nativeSrc":"14441:4:24","nodeType":"YulLiteral","src":"14441:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14432:3:24","nodeType":"YulIdentifier","src":"14432:3:24"},"nativeSrc":"14432:14:24","nodeType":"YulFunctionCall","src":"14432:14:24"},"variables":[{"name":"o","nativeSrc":"14427:1:24","nodeType":"YulTypedName","src":"14427:1:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"14470:1:24","nodeType":"YulIdentifier","src":"14470:1:24"},{"kind":"number","nativeSrc":"14473:2:24","nodeType":"YulLiteral","src":"14473:2:24","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"14466:3:24","nodeType":"YulIdentifier","src":"14466:3:24"},"nativeSrc":"14466:10:24","nodeType":"YulFunctionCall","src":"14466:10:24"},{"kind":"number","nativeSrc":"14478:1:24","nodeType":"YulLiteral","src":"14478:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14459:6:24","nodeType":"YulIdentifier","src":"14459:6:24"},"nativeSrc":"14459:21:24","nodeType":"YulFunctionCall","src":"14459:21:24"},"nativeSrc":"14459:21:24","nodeType":"YulExpressionStatement","src":"14459:21:24"},{"nativeSrc":"14494:23:24","nodeType":"YulAssignment","src":"14494:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"14507:2:24","nodeType":"YulLiteral","src":"14507:2:24","type":"","value":"96"},{"name":"value","nativeSrc":"14511:5:24","nodeType":"YulIdentifier","src":"14511:5:24"}],"functionName":{"name":"shl","nativeSrc":"14503:3:24","nodeType":"YulIdentifier","src":"14503:3:24"},"nativeSrc":"14503:14:24","nodeType":"YulFunctionCall","src":"14503:14:24"},"variableNames":[{"name":"value","nativeSrc":"14494:5:24","nodeType":"YulIdentifier","src":"14494:5:24"}]},{"body":{"nativeSrc":"14723:276:24","nodeType":"YulBlock","src":"14723:276:24","statements":[{"nativeSrc":"14741:26:24","nodeType":"YulVariableDeclaration","src":"14741:26:24","value":{"arguments":[{"name":"o","nativeSrc":"14754:1:24","nodeType":"YulIdentifier","src":"14754:1:24"},{"arguments":[{"name":"i","nativeSrc":"14761:1:24","nodeType":"YulIdentifier","src":"14761:1:24"},{"name":"i","nativeSrc":"14764:1:24","nodeType":"YulIdentifier","src":"14764:1:24"}],"functionName":{"name":"add","nativeSrc":"14757:3:24","nodeType":"YulIdentifier","src":"14757:3:24"},"nativeSrc":"14757:9:24","nodeType":"YulFunctionCall","src":"14757:9:24"}],"functionName":{"name":"add","nativeSrc":"14750:3:24","nodeType":"YulIdentifier","src":"14750:3:24"},"nativeSrc":"14750:17:24","nodeType":"YulFunctionCall","src":"14750:17:24"},"variables":[{"name":"p","nativeSrc":"14745:1:24","nodeType":"YulTypedName","src":"14745:1:24","type":""}]},{"nativeSrc":"14784:26:24","nodeType":"YulVariableDeclaration","src":"14784:26:24","value":{"arguments":[{"name":"i","nativeSrc":"14801:1:24","nodeType":"YulIdentifier","src":"14801:1:24"},{"name":"value","nativeSrc":"14804:5:24","nodeType":"YulIdentifier","src":"14804:5:24"}],"functionName":{"name":"byte","nativeSrc":"14796:4:24","nodeType":"YulIdentifier","src":"14796:4:24"},"nativeSrc":"14796:14:24","nodeType":"YulFunctionCall","src":"14796:14:24"},"variables":[{"name":"temp","nativeSrc":"14788:4:24","nodeType":"YulTypedName","src":"14788:4:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"p","nativeSrc":"14839:1:24","nodeType":"YulIdentifier","src":"14839:1:24"},{"kind":"number","nativeSrc":"14842:1:24","nodeType":"YulLiteral","src":"14842:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14835:3:24","nodeType":"YulIdentifier","src":"14835:3:24"},"nativeSrc":"14835:9:24","nodeType":"YulFunctionCall","src":"14835:9:24"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"14856:4:24","nodeType":"YulIdentifier","src":"14856:4:24"},{"kind":"number","nativeSrc":"14862:2:24","nodeType":"YulLiteral","src":"14862:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"14852:3:24","nodeType":"YulIdentifier","src":"14852:3:24"},"nativeSrc":"14852:13:24","nodeType":"YulFunctionCall","src":"14852:13:24"}],"functionName":{"name":"mload","nativeSrc":"14846:5:24","nodeType":"YulIdentifier","src":"14846:5:24"},"nativeSrc":"14846:20:24","nodeType":"YulFunctionCall","src":"14846:20:24"}],"functionName":{"name":"mstore8","nativeSrc":"14827:7:24","nodeType":"YulIdentifier","src":"14827:7:24"},"nativeSrc":"14827:40:24","nodeType":"YulFunctionCall","src":"14827:40:24"},"nativeSrc":"14827:40:24","nodeType":"YulExpressionStatement","src":"14827:40:24"},{"expression":{"arguments":[{"name":"p","nativeSrc":"14892:1:24","nodeType":"YulIdentifier","src":"14892:1:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14905:1:24","nodeType":"YulLiteral","src":"14905:1:24","type":"","value":"4"},{"name":"temp","nativeSrc":"14908:4:24","nodeType":"YulIdentifier","src":"14908:4:24"}],"functionName":{"name":"shr","nativeSrc":"14901:3:24","nodeType":"YulIdentifier","src":"14901:3:24"},"nativeSrc":"14901:12:24","nodeType":"YulFunctionCall","src":"14901:12:24"}],"functionName":{"name":"mload","nativeSrc":"14895:5:24","nodeType":"YulIdentifier","src":"14895:5:24"},"nativeSrc":"14895:19:24","nodeType":"YulFunctionCall","src":"14895:19:24"}],"functionName":{"name":"mstore8","nativeSrc":"14884:7:24","nodeType":"YulIdentifier","src":"14884:7:24"},"nativeSrc":"14884:31:24","nodeType":"YulFunctionCall","src":"14884:31:24"},"nativeSrc":"14884:31:24","nodeType":"YulExpressionStatement","src":"14884:31:24"},{"nativeSrc":"14932:14:24","nodeType":"YulAssignment","src":"14932:14:24","value":{"arguments":[{"name":"i","nativeSrc":"14941:1:24","nodeType":"YulIdentifier","src":"14941:1:24"},{"kind":"number","nativeSrc":"14944:1:24","nodeType":"YulLiteral","src":"14944:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14937:3:24","nodeType":"YulIdentifier","src":"14937:3:24"},"nativeSrc":"14937:9:24","nodeType":"YulFunctionCall","src":"14937:9:24"},"variableNames":[{"name":"i","nativeSrc":"14932:1:24","nodeType":"YulIdentifier","src":"14932:1:24"}]},{"body":{"nativeSrc":"14976:9:24","nodeType":"YulBlock","src":"14976:9:24","statements":[{"nativeSrc":"14978:5:24","nodeType":"YulBreak","src":"14978:5:24"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14969:1:24","nodeType":"YulIdentifier","src":"14969:1:24"},{"kind":"number","nativeSrc":"14972:2:24","nodeType":"YulLiteral","src":"14972:2:24","type":"","value":"20"}],"functionName":{"name":"eq","nativeSrc":"14966:2:24","nodeType":"YulIdentifier","src":"14966:2:24"},"nativeSrc":"14966:9:24","nodeType":"YulFunctionCall","src":"14966:9:24"},"nativeSrc":"14963:22:24","nodeType":"YulIf","src":"14963:22:24"}]},"condition":{"kind":"number","nativeSrc":"14718:1:24","nodeType":"YulLiteral","src":"14718:1:24","type":"","value":"1"},"nativeSrc":"14699:300:24","nodeType":"YulForLoop","post":{"nativeSrc":"14720:2:24","nodeType":"YulBlock","src":"14720:2:24","statements":[]},"pre":{"nativeSrc":"14703:14:24","nodeType":"YulBlock","src":"14703:14:24","statements":[{"nativeSrc":"14705:10:24","nodeType":"YulVariableDeclaration","src":"14705:10:24","value":{"kind":"number","nativeSrc":"14714:1:24","nodeType":"YulLiteral","src":"14714:1:24","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14709:1:24","nodeType":"YulTypedName","src":"14709:1:24","type":""}]}]},"src":"14699:300:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10496,"isOffset":false,"isSlot":false,"src":"13883:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14218:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14363:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14374:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14401:3:24","valueSize":1},{"declaration":10496,"isOffset":false,"isSlot":false,"src":"14436:3:24","valueSize":1},{"declaration":10493,"isOffset":false,"isSlot":false,"src":"14494:5:24","valueSize":1},{"declaration":10493,"isOffset":false,"isSlot":false,"src":"14511:5:24","valueSize":1},{"declaration":10493,"isOffset":false,"isSlot":false,"src":"14804:5:24","valueSize":1}],"id":10498,"nodeType":"InlineAssembly","src":"13860:1149:24"}]},"documentation":{"id":10491,"nodeType":"StructuredDocumentation","src":"13590:126:24","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10500,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"13730:19:24","nodeType":"FunctionDefinition","parameters":{"id":10494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10493,"mutability":"mutable","name":"value","nameLocation":"13758:5:24","nodeType":"VariableDeclaration","scope":10500,"src":"13750:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10492,"name":"address","nodeType":"ElementaryTypeName","src":"13750:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13749:15:24"},"returnParameters":{"id":10497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10496,"mutability":"mutable","name":"str","nameLocation":"13802:3:24","nodeType":"VariableDeclaration","scope":10500,"src":"13788:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10495,"name":"string","nodeType":"ElementaryTypeName","src":"13788:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13787:19:24"},"scope":10964,"src":"13721:1294:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10515,"nodeType":"Block","src":"15233:356:24","statements":[{"expression":{"id":10512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10508,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10506,"src":"15243:3:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10510,"name":"raw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"15269:3:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10509,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10400,10458,10500,10526],"referencedDeclaration":10526,"src":"15249:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":10511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15249:24:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"15243:30:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10513,"nodeType":"ExpressionStatement","src":"15243:30:24"},{"AST":{"nativeSrc":"15335:248:24","nodeType":"YulBlock","src":"15335:248:24","statements":[{"nativeSrc":"15349:35:24","nodeType":"YulVariableDeclaration","src":"15349:35:24","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"15376:3:24","nodeType":"YulIdentifier","src":"15376:3:24"}],"functionName":{"name":"mload","nativeSrc":"15370:5:24","nodeType":"YulIdentifier","src":"15370:5:24"},"nativeSrc":"15370:10:24","nodeType":"YulFunctionCall","src":"15370:10:24"},{"kind":"number","nativeSrc":"15382:1:24","nodeType":"YulLiteral","src":"15382:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"15366:3:24","nodeType":"YulIdentifier","src":"15366:3:24"},"nativeSrc":"15366:18:24","nodeType":"YulFunctionCall","src":"15366:18:24"},"variables":[{"name":"strLength","nativeSrc":"15353:9:24","nodeType":"YulTypedName","src":"15353:9:24","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"15427:3:24","nodeType":"YulIdentifier","src":"15427:3:24"},{"kind":"number","nativeSrc":"15432:6:24","nodeType":"YulLiteral","src":"15432:6:24","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"15420:6:24","nodeType":"YulIdentifier","src":"15420:6:24"},"nativeSrc":"15420:19:24","nodeType":"YulFunctionCall","src":"15420:19:24"},"nativeSrc":"15420:19:24","nodeType":"YulExpressionStatement","src":"15420:19:24"},{"nativeSrc":"15478:18:24","nodeType":"YulAssignment","src":"15478:18:24","value":{"arguments":[{"name":"str","nativeSrc":"15489:3:24","nodeType":"YulIdentifier","src":"15489:3:24"},{"kind":"number","nativeSrc":"15494:1:24","nodeType":"YulLiteral","src":"15494:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"15485:3:24","nodeType":"YulIdentifier","src":"15485:3:24"},"nativeSrc":"15485:11:24","nodeType":"YulFunctionCall","src":"15485:11:24"},"variableNames":[{"name":"str","nativeSrc":"15478:3:24","nodeType":"YulIdentifier","src":"15478:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"15537:3:24","nodeType":"YulIdentifier","src":"15537:3:24"},{"name":"strLength","nativeSrc":"15542:9:24","nodeType":"YulIdentifier","src":"15542:9:24"}],"functionName":{"name":"mstore","nativeSrc":"15530:6:24","nodeType":"YulIdentifier","src":"15530:6:24"},"nativeSrc":"15530:22:24","nodeType":"YulFunctionCall","src":"15530:22:24"},"nativeSrc":"15530:22:24","nodeType":"YulExpressionStatement","src":"15530:22:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15376:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15427:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15478:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15489:3:24","valueSize":1},{"declaration":10506,"isOffset":false,"isSlot":false,"src":"15537:3:24","valueSize":1}],"id":10514,"nodeType":"InlineAssembly","src":"15326:257:24"}]},"documentation":{"id":10501,"nodeType":"StructuredDocumentation","src":"15021:126:24","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10516,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"15161:11:24","nodeType":"FunctionDefinition","parameters":{"id":10504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10503,"mutability":"mutable","name":"raw","nameLocation":"15186:3:24","nodeType":"VariableDeclaration","scope":10516,"src":"15173:16:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10502,"name":"bytes","nodeType":"ElementaryTypeName","src":"15173:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15172:18:24"},"returnParameters":{"id":10507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10506,"mutability":"mutable","name":"str","nameLocation":"15228:3:24","nodeType":"VariableDeclaration","scope":10516,"src":"15214:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10505,"name":"string","nodeType":"ElementaryTypeName","src":"15214:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15213:19:24"},"scope":10964,"src":"15152:437:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10525,"nodeType":"Block","src":"15815:851:24","statements":[{"AST":{"nativeSrc":"15877:783:24","nodeType":"YulBlock","src":"15877:783:24","statements":[{"nativeSrc":"15891:24:24","nodeType":"YulVariableDeclaration","src":"15891:24:24","value":{"arguments":[{"name":"raw","nativeSrc":"15911:3:24","nodeType":"YulIdentifier","src":"15911:3:24"}],"functionName":{"name":"mload","nativeSrc":"15905:5:24","nodeType":"YulIdentifier","src":"15905:5:24"},"nativeSrc":"15905:10:24","nodeType":"YulFunctionCall","src":"15905:10:24"},"variables":[{"name":"length","nativeSrc":"15895:6:24","nodeType":"YulTypedName","src":"15895:6:24","type":""}]},{"nativeSrc":"15928:26:24","nodeType":"YulAssignment","src":"15928:26:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15945:4:24","nodeType":"YulLiteral","src":"15945:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"15939:5:24","nodeType":"YulIdentifier","src":"15939:5:24"},"nativeSrc":"15939:11:24","nodeType":"YulFunctionCall","src":"15939:11:24"},{"kind":"number","nativeSrc":"15952:1:24","nodeType":"YulLiteral","src":"15952:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"15935:3:24","nodeType":"YulIdentifier","src":"15935:3:24"},"nativeSrc":"15935:19:24","nodeType":"YulFunctionCall","src":"15935:19:24"},"variableNames":[{"name":"str","nativeSrc":"15928:3:24","nodeType":"YulIdentifier","src":"15928:3:24"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"16015:3:24","nodeType":"YulIdentifier","src":"16015:3:24"},{"arguments":[{"name":"length","nativeSrc":"16024:6:24","nodeType":"YulIdentifier","src":"16024:6:24"},{"name":"length","nativeSrc":"16032:6:24","nodeType":"YulIdentifier","src":"16032:6:24"}],"functionName":{"name":"add","nativeSrc":"16020:3:24","nodeType":"YulIdentifier","src":"16020:3:24"},"nativeSrc":"16020:19:24","nodeType":"YulFunctionCall","src":"16020:19:24"}],"functionName":{"name":"mstore","nativeSrc":"16008:6:24","nodeType":"YulIdentifier","src":"16008:6:24"},"nativeSrc":"16008:32:24","nodeType":"YulFunctionCall","src":"16008:32:24"},"nativeSrc":"16008:32:24","nodeType":"YulExpressionStatement","src":"16008:32:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16154:4:24","nodeType":"YulLiteral","src":"16154:4:24","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"16160:34:24","nodeType":"YulLiteral","src":"16160:34:24","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"16147:6:24","nodeType":"YulIdentifier","src":"16147:6:24"},"nativeSrc":"16147:48:24","nodeType":"YulFunctionCall","src":"16147:48:24"},"nativeSrc":"16147:48:24","nodeType":"YulExpressionStatement","src":"16147:48:24"},{"nativeSrc":"16209:23:24","nodeType":"YulVariableDeclaration","src":"16209:23:24","value":{"arguments":[{"name":"str","nativeSrc":"16222:3:24","nodeType":"YulIdentifier","src":"16222:3:24"},{"kind":"number","nativeSrc":"16227:4:24","nodeType":"YulLiteral","src":"16227:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16218:3:24","nodeType":"YulIdentifier","src":"16218:3:24"},"nativeSrc":"16218:14:24","nodeType":"YulFunctionCall","src":"16218:14:24"},"variables":[{"name":"o","nativeSrc":"16213:1:24","nodeType":"YulTypedName","src":"16213:1:24","type":""}]},{"nativeSrc":"16245:27:24","nodeType":"YulVariableDeclaration","src":"16245:27:24","value":{"arguments":[{"name":"raw","nativeSrc":"16260:3:24","nodeType":"YulIdentifier","src":"16260:3:24"},{"name":"length","nativeSrc":"16265:6:24","nodeType":"YulIdentifier","src":"16265:6:24"}],"functionName":{"name":"add","nativeSrc":"16256:3:24","nodeType":"YulIdentifier","src":"16256:3:24"},"nativeSrc":"16256:16:24","nodeType":"YulFunctionCall","src":"16256:16:24"},"variables":[{"name":"end","nativeSrc":"16249:3:24","nodeType":"YulTypedName","src":"16249:3:24","type":""}]},{"body":{"nativeSrc":"16317:207:24","nodeType":"YulBlock","src":"16317:207:24","statements":[{"nativeSrc":"16335:18:24","nodeType":"YulAssignment","src":"16335:18:24","value":{"arguments":[{"name":"raw","nativeSrc":"16346:3:24","nodeType":"YulIdentifier","src":"16346:3:24"},{"kind":"number","nativeSrc":"16351:1:24","nodeType":"YulLiteral","src":"16351:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16342:3:24","nodeType":"YulIdentifier","src":"16342:3:24"},"nativeSrc":"16342:11:24","nodeType":"YulFunctionCall","src":"16342:11:24"},"variableNames":[{"name":"raw","nativeSrc":"16335:3:24","nodeType":"YulIdentifier","src":"16335:3:24"}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"16382:1:24","nodeType":"YulIdentifier","src":"16382:1:24"},{"kind":"number","nativeSrc":"16385:1:24","nodeType":"YulLiteral","src":"16385:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16378:3:24","nodeType":"YulIdentifier","src":"16378:3:24"},"nativeSrc":"16378:9:24","nodeType":"YulFunctionCall","src":"16378:9:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"raw","nativeSrc":"16405:3:24","nodeType":"YulIdentifier","src":"16405:3:24"}],"functionName":{"name":"mload","nativeSrc":"16399:5:24","nodeType":"YulIdentifier","src":"16399:5:24"},"nativeSrc":"16399:10:24","nodeType":"YulFunctionCall","src":"16399:10:24"},{"kind":"number","nativeSrc":"16411:2:24","nodeType":"YulLiteral","src":"16411:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"16395:3:24","nodeType":"YulIdentifier","src":"16395:3:24"},"nativeSrc":"16395:19:24","nodeType":"YulFunctionCall","src":"16395:19:24"}],"functionName":{"name":"mload","nativeSrc":"16389:5:24","nodeType":"YulIdentifier","src":"16389:5:24"},"nativeSrc":"16389:26:24","nodeType":"YulFunctionCall","src":"16389:26:24"}],"functionName":{"name":"mstore8","nativeSrc":"16370:7:24","nodeType":"YulIdentifier","src":"16370:7:24"},"nativeSrc":"16370:46:24","nodeType":"YulFunctionCall","src":"16370:46:24"},"nativeSrc":"16370:46:24","nodeType":"YulExpressionStatement","src":"16370:46:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"16441:1:24","nodeType":"YulIdentifier","src":"16441:1:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16458:1:24","nodeType":"YulLiteral","src":"16458:1:24","type":"","value":"4"},{"arguments":[{"name":"raw","nativeSrc":"16467:3:24","nodeType":"YulIdentifier","src":"16467:3:24"}],"functionName":{"name":"mload","nativeSrc":"16461:5:24","nodeType":"YulIdentifier","src":"16461:5:24"},"nativeSrc":"16461:10:24","nodeType":"YulFunctionCall","src":"16461:10:24"}],"functionName":{"name":"shr","nativeSrc":"16454:3:24","nodeType":"YulIdentifier","src":"16454:3:24"},"nativeSrc":"16454:18:24","nodeType":"YulFunctionCall","src":"16454:18:24"},{"kind":"number","nativeSrc":"16474:2:24","nodeType":"YulLiteral","src":"16474:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"16450:3:24","nodeType":"YulIdentifier","src":"16450:3:24"},"nativeSrc":"16450:27:24","nodeType":"YulFunctionCall","src":"16450:27:24"}],"functionName":{"name":"mload","nativeSrc":"16444:5:24","nodeType":"YulIdentifier","src":"16444:5:24"},"nativeSrc":"16444:34:24","nodeType":"YulFunctionCall","src":"16444:34:24"}],"functionName":{"name":"mstore8","nativeSrc":"16433:7:24","nodeType":"YulIdentifier","src":"16433:7:24"},"nativeSrc":"16433:46:24","nodeType":"YulFunctionCall","src":"16433:46:24"},"nativeSrc":"16433:46:24","nodeType":"YulExpressionStatement","src":"16433:46:24"},{"nativeSrc":"16496:14:24","nodeType":"YulAssignment","src":"16496:14:24","value":{"arguments":[{"name":"o","nativeSrc":"16505:1:24","nodeType":"YulIdentifier","src":"16505:1:24"},{"kind":"number","nativeSrc":"16508:1:24","nodeType":"YulLiteral","src":"16508:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"16501:3:24","nodeType":"YulIdentifier","src":"16501:3:24"},"nativeSrc":"16501:9:24","nodeType":"YulFunctionCall","src":"16501:9:24"},"variableNames":[{"name":"o","nativeSrc":"16496:1:24","nodeType":"YulIdentifier","src":"16496:1:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"raw","nativeSrc":"16303:3:24","nodeType":"YulIdentifier","src":"16303:3:24"},{"name":"end","nativeSrc":"16308:3:24","nodeType":"YulIdentifier","src":"16308:3:24"}],"functionName":{"name":"eq","nativeSrc":"16300:2:24","nodeType":"YulIdentifier","src":"16300:2:24"},"nativeSrc":"16300:12:24","nodeType":"YulFunctionCall","src":"16300:12:24"}],"functionName":{"name":"iszero","nativeSrc":"16293:6:24","nodeType":"YulIdentifier","src":"16293:6:24"},"nativeSrc":"16293:20:24","nodeType":"YulFunctionCall","src":"16293:20:24"},"nativeSrc":"16286:238:24","nodeType":"YulForLoop","post":{"nativeSrc":"16314:2:24","nodeType":"YulBlock","src":"16314:2:24","statements":[]},"pre":{"nativeSrc":"16290:2:24","nodeType":"YulBlock","src":"16290:2:24","statements":[]},"src":"16286:238:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"16544:1:24","nodeType":"YulIdentifier","src":"16544:1:24"},{"kind":"number","nativeSrc":"16547:1:24","nodeType":"YulLiteral","src":"16547:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16537:6:24","nodeType":"YulIdentifier","src":"16537:6:24"},"nativeSrc":"16537:12:24","nodeType":"YulFunctionCall","src":"16537:12:24"},"nativeSrc":"16537:12:24","nodeType":"YulExpressionStatement","src":"16537:12:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16607:4:24","nodeType":"YulLiteral","src":"16607:4:24","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"16617:1:24","nodeType":"YulIdentifier","src":"16617:1:24"},{"kind":"number","nativeSrc":"16620:4:24","nodeType":"YulLiteral","src":"16620:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16613:3:24","nodeType":"YulIdentifier","src":"16613:3:24"},"nativeSrc":"16613:12:24","nodeType":"YulFunctionCall","src":"16613:12:24"}],"functionName":{"name":"mstore","nativeSrc":"16600:6:24","nodeType":"YulIdentifier","src":"16600:6:24"},"nativeSrc":"16600:26:24","nodeType":"YulFunctionCall","src":"16600:26:24"},"nativeSrc":"16600:26:24","nodeType":"YulExpressionStatement","src":"16600:26:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10519,"isOffset":false,"isSlot":false,"src":"15911:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16260:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16303:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16335:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16346:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16405:3:24","valueSize":1},{"declaration":10519,"isOffset":false,"isSlot":false,"src":"16467:3:24","valueSize":1},{"declaration":10522,"isOffset":false,"isSlot":false,"src":"15928:3:24","valueSize":1},{"declaration":10522,"isOffset":false,"isSlot":false,"src":"16015:3:24","valueSize":1},{"declaration":10522,"isOffset":false,"isSlot":false,"src":"16222:3:24","valueSize":1}],"id":10524,"nodeType":"InlineAssembly","src":"15868:792:24"}]},"documentation":{"id":10517,"nodeType":"StructuredDocumentation","src":"15595:126:24","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10526,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"15735:19:24","nodeType":"FunctionDefinition","parameters":{"id":10520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10519,"mutability":"mutable","name":"raw","nameLocation":"15768:3:24","nodeType":"VariableDeclaration","scope":10526,"src":"15755:16:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10518,"name":"bytes","nodeType":"ElementaryTypeName","src":"15755:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15754:18:24"},"returnParameters":{"id":10523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10522,"mutability":"mutable","name":"str","nameLocation":"15810:3:24","nodeType":"VariableDeclaration","scope":10526,"src":"15796:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10521,"name":"string","nodeType":"ElementaryTypeName","src":"15796:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15795:19:24"},"scope":10964,"src":"15726:940:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10535,"nodeType":"Block","src":"17095:552:24","statements":[{"AST":{"nativeSrc":"17157:484:24","nodeType":"YulBlock","src":"17157:484:24","statements":[{"body":{"nativeSrc":"17183:448:24","nodeType":"YulBlock","src":"17183:448:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17208:4:24","nodeType":"YulLiteral","src":"17208:4:24","type":"","value":"0x00"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17222:1:24","nodeType":"YulLiteral","src":"17222:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"17218:3:24","nodeType":"YulIdentifier","src":"17218:3:24"},"nativeSrc":"17218:6:24","nodeType":"YulFunctionCall","src":"17218:6:24"},{"kind":"number","nativeSrc":"17226:3:24","nodeType":"YulLiteral","src":"17226:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"17214:3:24","nodeType":"YulIdentifier","src":"17214:3:24"},"nativeSrc":"17214:16:24","nodeType":"YulFunctionCall","src":"17214:16:24"}],"functionName":{"name":"mstore","nativeSrc":"17201:6:24","nodeType":"YulIdentifier","src":"17201:6:24"},"nativeSrc":"17201:30:24","nodeType":"YulFunctionCall","src":"17201:30:24"},"nativeSrc":"17201:30:24","nodeType":"YulExpressionStatement","src":"17201:30:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17255:4:24","nodeType":"YulLiteral","src":"17255:4:24","type":"","value":"0x20"},{"kind":"number","nativeSrc":"17261:66:24","nodeType":"YulLiteral","src":"17261:66:24","type":"","value":"0x0202020202020202020202020202020202020202020202020303030304040506"}],"functionName":{"name":"mstore","nativeSrc":"17248:6:24","nodeType":"YulIdentifier","src":"17248:6:24"},"nativeSrc":"17248:80:24","nodeType":"YulFunctionCall","src":"17248:80:24"},"nativeSrc":"17248:80:24","nodeType":"YulExpressionStatement","src":"17248:80:24"},{"nativeSrc":"17345:21:24","nodeType":"YulVariableDeclaration","src":"17345:21:24","value":{"arguments":[{"name":"s","nativeSrc":"17358:1:24","nodeType":"YulIdentifier","src":"17358:1:24"},{"kind":"number","nativeSrc":"17361:4:24","nodeType":"YulLiteral","src":"17361:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17354:3:24","nodeType":"YulIdentifier","src":"17354:3:24"},"nativeSrc":"17354:12:24","nodeType":"YulFunctionCall","src":"17354:12:24"},"variables":[{"name":"o","nativeSrc":"17349:1:24","nodeType":"YulTypedName","src":"17349:1:24","type":""}]},{"nativeSrc":"17383:27:24","nodeType":"YulVariableDeclaration","src":"17383:27:24","value":{"arguments":[{"name":"o","nativeSrc":"17398:1:24","nodeType":"YulIdentifier","src":"17398:1:24"},{"arguments":[{"name":"s","nativeSrc":"17407:1:24","nodeType":"YulIdentifier","src":"17407:1:24"}],"functionName":{"name":"mload","nativeSrc":"17401:5:24","nodeType":"YulIdentifier","src":"17401:5:24"},"nativeSrc":"17401:8:24","nodeType":"YulFunctionCall","src":"17401:8:24"}],"functionName":{"name":"add","nativeSrc":"17394:3:24","nodeType":"YulIdentifier","src":"17394:3:24"},"nativeSrc":"17394:16:24","nodeType":"YulFunctionCall","src":"17394:16:24"},"variables":[{"name":"end","nativeSrc":"17387:3:24","nodeType":"YulTypedName","src":"17387:3:24","type":""}]},{"body":{"nativeSrc":"17478:139:24","nodeType":"YulBlock","src":"17478:139:24","statements":[{"nativeSrc":"17500:47:24","nodeType":"YulAssignment","src":"17500:47:24","value":{"arguments":[{"name":"o","nativeSrc":"17509:1:24","nodeType":"YulIdentifier","src":"17509:1:24"},{"arguments":[{"kind":"number","nativeSrc":"17517:1:24","nodeType":"YulLiteral","src":"17517:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17530:3:24","nodeType":"YulLiteral","src":"17530:3:24","type":"","value":"250"},{"arguments":[{"name":"o","nativeSrc":"17541:1:24","nodeType":"YulIdentifier","src":"17541:1:24"}],"functionName":{"name":"mload","nativeSrc":"17535:5:24","nodeType":"YulIdentifier","src":"17535:5:24"},"nativeSrc":"17535:8:24","nodeType":"YulFunctionCall","src":"17535:8:24"}],"functionName":{"name":"shr","nativeSrc":"17526:3:24","nodeType":"YulIdentifier","src":"17526:3:24"},"nativeSrc":"17526:18:24","nodeType":"YulFunctionCall","src":"17526:18:24"}],"functionName":{"name":"mload","nativeSrc":"17520:5:24","nodeType":"YulIdentifier","src":"17520:5:24"},"nativeSrc":"17520:25:24","nodeType":"YulFunctionCall","src":"17520:25:24"}],"functionName":{"name":"byte","nativeSrc":"17512:4:24","nodeType":"YulIdentifier","src":"17512:4:24"},"nativeSrc":"17512:34:24","nodeType":"YulFunctionCall","src":"17512:34:24"}],"functionName":{"name":"add","nativeSrc":"17505:3:24","nodeType":"YulIdentifier","src":"17505:3:24"},"nativeSrc":"17505:42:24","nodeType":"YulFunctionCall","src":"17505:42:24"},"variableNames":[{"name":"o","nativeSrc":"17500:1:24","nodeType":"YulIdentifier","src":"17500:1:24"}]},{"body":{"nativeSrc":"17590:9:24","nodeType":"YulBlock","src":"17590:9:24","statements":[{"nativeSrc":"17592:5:24","nodeType":"YulBreak","src":"17592:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"17581:1:24","nodeType":"YulIdentifier","src":"17581:1:24"},{"name":"end","nativeSrc":"17584:3:24","nodeType":"YulIdentifier","src":"17584:3:24"}],"functionName":{"name":"lt","nativeSrc":"17578:2:24","nodeType":"YulIdentifier","src":"17578:2:24"},"nativeSrc":"17578:10:24","nodeType":"YulFunctionCall","src":"17578:10:24"}],"functionName":{"name":"iszero","nativeSrc":"17571:6:24","nodeType":"YulIdentifier","src":"17571:6:24"},"nativeSrc":"17571:18:24","nodeType":"YulFunctionCall","src":"17571:18:24"},"nativeSrc":"17568:31:24","nodeType":"YulIf","src":"17568:31:24"}]},"condition":{"kind":"number","nativeSrc":"17447:1:24","nodeType":"YulLiteral","src":"17447:1:24","type":"","value":"1"},"nativeSrc":"17427:190:24","nodeType":"YulForLoop","post":{"nativeSrc":"17449:28:24","nodeType":"YulBlock","src":"17449:28:24","statements":[{"nativeSrc":"17451:24:24","nodeType":"YulAssignment","src":"17451:24:24","value":{"arguments":[{"name":"result","nativeSrc":"17465:6:24","nodeType":"YulIdentifier","src":"17465:6:24"},{"kind":"number","nativeSrc":"17473:1:24","nodeType":"YulLiteral","src":"17473:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17461:3:24","nodeType":"YulIdentifier","src":"17461:3:24"},"nativeSrc":"17461:14:24","nodeType":"YulFunctionCall","src":"17461:14:24"},"variableNames":[{"name":"result","nativeSrc":"17451:6:24","nodeType":"YulIdentifier","src":"17451:6:24"}]}]},"pre":{"nativeSrc":"17431:15:24","nodeType":"YulBlock","src":"17431:15:24","statements":[{"nativeSrc":"17433:11:24","nodeType":"YulAssignment","src":"17433:11:24","value":{"kind":"number","nativeSrc":"17443:1:24","nodeType":"YulLiteral","src":"17443:1:24","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"17433:6:24","nodeType":"YulIdentifier","src":"17433:6:24"}]}]},"src":"17427:190:24"}]},"condition":{"arguments":[{"name":"s","nativeSrc":"17180:1:24","nodeType":"YulIdentifier","src":"17180:1:24"}],"functionName":{"name":"mload","nativeSrc":"17174:5:24","nodeType":"YulIdentifier","src":"17174:5:24"},"nativeSrc":"17174:8:24","nodeType":"YulFunctionCall","src":"17174:8:24"},"nativeSrc":"17171:460:24","nodeType":"YulIf","src":"17171:460:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10532,"isOffset":false,"isSlot":false,"src":"17433:6:24","valueSize":1},{"declaration":10532,"isOffset":false,"isSlot":false,"src":"17451:6:24","valueSize":1},{"declaration":10532,"isOffset":false,"isSlot":false,"src":"17465:6:24","valueSize":1},{"declaration":10529,"isOffset":false,"isSlot":false,"src":"17180:1:24","valueSize":1},{"declaration":10529,"isOffset":false,"isSlot":false,"src":"17358:1:24","valueSize":1},{"declaration":10529,"isOffset":false,"isSlot":false,"src":"17407:1:24","valueSize":1}],"id":10534,"nodeType":"InlineAssembly","src":"17148:493:24"}]},"documentation":{"id":10527,"nodeType":"StructuredDocumentation","src":"16955:60:24","text":"@dev Returns the number of UTF characters in the string."},"id":10536,"implemented":true,"kind":"function","modifiers":[],"name":"runeCount","nameLocation":"17029:9:24","nodeType":"FunctionDefinition","parameters":{"id":10530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10529,"mutability":"mutable","name":"s","nameLocation":"17053:1:24","nodeType":"VariableDeclaration","scope":10536,"src":"17039:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10528,"name":"string","nodeType":"ElementaryTypeName","src":"17039:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17038:17:24"},"returnParameters":{"id":10533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10532,"mutability":"mutable","name":"result","nameLocation":"17087:6:24","nodeType":"VariableDeclaration","scope":10536,"src":"17079:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10531,"name":"uint256","nodeType":"ElementaryTypeName","src":"17079:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17078:16:24"},"scope":10964,"src":"17020:627:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10545,"nodeType":"Block","src":"17840:665:24","statements":[{"AST":{"nativeSrc":"17902:597:24","nodeType":"YulBlock","src":"17902:597:24","statements":[{"nativeSrc":"17916:36:24","nodeType":"YulVariableDeclaration","src":"17916:36:24","value":{"arguments":[{"kind":"number","nativeSrc":"17932:1:24","nodeType":"YulLiteral","src":"17932:1:24","type":"","value":"7"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17943:1:24","nodeType":"YulLiteral","src":"17943:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"17939:3:24","nodeType":"YulIdentifier","src":"17939:3:24"},"nativeSrc":"17939:6:24","nodeType":"YulFunctionCall","src":"17939:6:24"},{"kind":"number","nativeSrc":"17947:3:24","nodeType":"YulLiteral","src":"17947:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"17935:3:24","nodeType":"YulIdentifier","src":"17935:3:24"},"nativeSrc":"17935:16:24","nodeType":"YulFunctionCall","src":"17935:16:24"}],"functionName":{"name":"shl","nativeSrc":"17928:3:24","nodeType":"YulIdentifier","src":"17928:3:24"},"nativeSrc":"17928:24:24","nodeType":"YulFunctionCall","src":"17928:24:24"},"variables":[{"name":"mask","nativeSrc":"17920:4:24","nodeType":"YulTypedName","src":"17920:4:24","type":""}]},{"nativeSrc":"17965:11:24","nodeType":"YulAssignment","src":"17965:11:24","value":{"kind":"number","nativeSrc":"17975:1:24","nodeType":"YulLiteral","src":"17975:1:24","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"17965:6:24","nodeType":"YulIdentifier","src":"17965:6:24"}]},{"nativeSrc":"17989:17:24","nodeType":"YulVariableDeclaration","src":"17989:17:24","value":{"arguments":[{"name":"s","nativeSrc":"18004:1:24","nodeType":"YulIdentifier","src":"18004:1:24"}],"functionName":{"name":"mload","nativeSrc":"17998:5:24","nodeType":"YulIdentifier","src":"17998:5:24"},"nativeSrc":"17998:8:24","nodeType":"YulFunctionCall","src":"17998:8:24"},"variables":[{"name":"n","nativeSrc":"17993:1:24","nodeType":"YulTypedName","src":"17993:1:24","type":""}]},{"body":{"nativeSrc":"18024:465:24","nodeType":"YulBlock","src":"18024:465:24","statements":[{"nativeSrc":"18042:21:24","nodeType":"YulVariableDeclaration","src":"18042:21:24","value":{"arguments":[{"name":"s","nativeSrc":"18055:1:24","nodeType":"YulIdentifier","src":"18055:1:24"},{"kind":"number","nativeSrc":"18058:4:24","nodeType":"YulLiteral","src":"18058:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18051:3:24","nodeType":"YulIdentifier","src":"18051:3:24"},"nativeSrc":"18051:12:24","nodeType":"YulFunctionCall","src":"18051:12:24"},"variables":[{"name":"o","nativeSrc":"18046:1:24","nodeType":"YulTypedName","src":"18046:1:24","type":""}]},{"nativeSrc":"18080:20:24","nodeType":"YulVariableDeclaration","src":"18080:20:24","value":{"arguments":[{"name":"o","nativeSrc":"18095:1:24","nodeType":"YulIdentifier","src":"18095:1:24"},{"name":"n","nativeSrc":"18098:1:24","nodeType":"YulIdentifier","src":"18098:1:24"}],"functionName":{"name":"add","nativeSrc":"18091:3:24","nodeType":"YulIdentifier","src":"18091:3:24"},"nativeSrc":"18091:9:24","nodeType":"YulFunctionCall","src":"18091:9:24"},"variables":[{"name":"end","nativeSrc":"18084:3:24","nodeType":"YulTypedName","src":"18084:3:24","type":""}]},{"nativeSrc":"18117:22:24","nodeType":"YulVariableDeclaration","src":"18117:22:24","value":{"arguments":[{"name":"end","nativeSrc":"18135:3:24","nodeType":"YulIdentifier","src":"18135:3:24"}],"functionName":{"name":"mload","nativeSrc":"18129:5:24","nodeType":"YulIdentifier","src":"18129:5:24"},"nativeSrc":"18129:10:24","nodeType":"YulFunctionCall","src":"18129:10:24"},"variables":[{"name":"last","nativeSrc":"18121:4:24","nodeType":"YulTypedName","src":"18121:4:24","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"18163:3:24","nodeType":"YulIdentifier","src":"18163:3:24"},{"kind":"number","nativeSrc":"18168:1:24","nodeType":"YulLiteral","src":"18168:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18156:6:24","nodeType":"YulIdentifier","src":"18156:6:24"},"nativeSrc":"18156:14:24","nodeType":"YulFunctionCall","src":"18156:14:24"},"nativeSrc":"18156:14:24","nodeType":"YulExpressionStatement","src":"18156:14:24"},{"body":{"nativeSrc":"18199:242:24","nodeType":"YulBlock","src":"18199:242:24","statements":[{"body":{"nativeSrc":"18244:89:24","nodeType":"YulBlock","src":"18244:89:24","statements":[{"nativeSrc":"18270:11:24","nodeType":"YulAssignment","src":"18270:11:24","value":{"kind":"number","nativeSrc":"18280:1:24","nodeType":"YulLiteral","src":"18280:1:24","type":"","value":"0"},"variableNames":[{"name":"result","nativeSrc":"18270:6:24","nodeType":"YulIdentifier","src":"18270:6:24"}]},{"nativeSrc":"18306:5:24","nodeType":"YulBreak","src":"18306:5:24"}]},"condition":{"arguments":[{"name":"mask","nativeSrc":"18228:4:24","nodeType":"YulIdentifier","src":"18228:4:24"},{"arguments":[{"name":"o","nativeSrc":"18240:1:24","nodeType":"YulIdentifier","src":"18240:1:24"}],"functionName":{"name":"mload","nativeSrc":"18234:5:24","nodeType":"YulIdentifier","src":"18234:5:24"},"nativeSrc":"18234:8:24","nodeType":"YulFunctionCall","src":"18234:8:24"}],"functionName":{"name":"and","nativeSrc":"18224:3:24","nodeType":"YulIdentifier","src":"18224:3:24"},"nativeSrc":"18224:19:24","nodeType":"YulFunctionCall","src":"18224:19:24"},"nativeSrc":"18221:112:24","nodeType":"YulIf","src":"18221:112:24"},{"nativeSrc":"18354:17:24","nodeType":"YulAssignment","src":"18354:17:24","value":{"arguments":[{"name":"o","nativeSrc":"18363:1:24","nodeType":"YulIdentifier","src":"18363:1:24"},{"kind":"number","nativeSrc":"18366:4:24","nodeType":"YulLiteral","src":"18366:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18359:3:24","nodeType":"YulIdentifier","src":"18359:3:24"},"nativeSrc":"18359:12:24","nodeType":"YulFunctionCall","src":"18359:12:24"},"variableNames":[{"name":"o","nativeSrc":"18354:1:24","nodeType":"YulIdentifier","src":"18354:1:24"}]},{"body":{"nativeSrc":"18414:9:24","nodeType":"YulBlock","src":"18414:9:24","statements":[{"nativeSrc":"18416:5:24","nodeType":"YulBreak","src":"18416:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"18405:1:24","nodeType":"YulIdentifier","src":"18405:1:24"},{"name":"end","nativeSrc":"18408:3:24","nodeType":"YulIdentifier","src":"18408:3:24"}],"functionName":{"name":"lt","nativeSrc":"18402:2:24","nodeType":"YulIdentifier","src":"18402:2:24"},"nativeSrc":"18402:10:24","nodeType":"YulFunctionCall","src":"18402:10:24"}],"functionName":{"name":"iszero","nativeSrc":"18395:6:24","nodeType":"YulIdentifier","src":"18395:6:24"},"nativeSrc":"18395:18:24","nodeType":"YulFunctionCall","src":"18395:18:24"},"nativeSrc":"18392:31:24","nodeType":"YulIf","src":"18392:31:24"}]},"condition":{"kind":"number","nativeSrc":"18194:1:24","nodeType":"YulLiteral","src":"18194:1:24","type":"","value":"1"},"nativeSrc":"18187:254:24","nodeType":"YulForLoop","post":{"nativeSrc":"18196:2:24","nodeType":"YulBlock","src":"18196:2:24","statements":[]},"pre":{"nativeSrc":"18191:2:24","nodeType":"YulBlock","src":"18191:2:24","statements":[]},"src":"18187:254:24"},{"expression":{"arguments":[{"name":"end","nativeSrc":"18465:3:24","nodeType":"YulIdentifier","src":"18465:3:24"},{"name":"last","nativeSrc":"18470:4:24","nodeType":"YulIdentifier","src":"18470:4:24"}],"functionName":{"name":"mstore","nativeSrc":"18458:6:24","nodeType":"YulIdentifier","src":"18458:6:24"},"nativeSrc":"18458:17:24","nodeType":"YulFunctionCall","src":"18458:17:24"},"nativeSrc":"18458:17:24","nodeType":"YulExpressionStatement","src":"18458:17:24"}]},"condition":{"name":"n","nativeSrc":"18022:1:24","nodeType":"YulIdentifier","src":"18022:1:24"},"nativeSrc":"18019:470:24","nodeType":"YulIf","src":"18019:470:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10542,"isOffset":false,"isSlot":false,"src":"17965:6:24","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"18270:6:24","valueSize":1},{"declaration":10539,"isOffset":false,"isSlot":false,"src":"18004:1:24","valueSize":1},{"declaration":10539,"isOffset":false,"isSlot":false,"src":"18055:1:24","valueSize":1}],"id":10544,"nodeType":"InlineAssembly","src":"17893:606:24"}]},"documentation":{"id":10537,"nodeType":"StructuredDocumentation","src":"17653:108:24","text":"@dev Returns if this string is a 7-bit ASCII string.\n (i.e. all characters codes are in [0..127])"},"id":10546,"implemented":true,"kind":"function","modifiers":[],"name":"is7BitASCII","nameLocation":"17775:11:24","nodeType":"FunctionDefinition","parameters":{"id":10540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10539,"mutability":"mutable","name":"s","nameLocation":"17801:1:24","nodeType":"VariableDeclaration","scope":10546,"src":"17787:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10538,"name":"string","nodeType":"ElementaryTypeName","src":"17787:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17786:17:24"},"returnParameters":{"id":10543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10542,"mutability":"mutable","name":"result","nameLocation":"17832:6:24","nodeType":"VariableDeclaration","scope":10546,"src":"17827:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10541,"name":"bool","nodeType":"ElementaryTypeName","src":"17827:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17826:13:24"},"scope":10964,"src":"17766:739:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10559,"nodeType":"Block","src":"19348:3176:24","statements":[{"AST":{"nativeSrc":"19410:3108:24","nodeType":"YulBlock","src":"19410:3108:24","statements":[{"nativeSrc":"19424:35:24","nodeType":"YulVariableDeclaration","src":"19424:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"19451:7:24","nodeType":"YulIdentifier","src":"19451:7:24"}],"functionName":{"name":"mload","nativeSrc":"19445:5:24","nodeType":"YulIdentifier","src":"19445:5:24"},"nativeSrc":"19445:14:24","nodeType":"YulFunctionCall","src":"19445:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"19428:13:24","nodeType":"YulTypedName","src":"19428:13:24","type":""}]},{"nativeSrc":"19472:33:24","nodeType":"YulVariableDeclaration","src":"19472:33:24","value":{"arguments":[{"name":"search","nativeSrc":"19498:6:24","nodeType":"YulIdentifier","src":"19498:6:24"}],"functionName":{"name":"mload","nativeSrc":"19492:5:24","nodeType":"YulIdentifier","src":"19492:5:24"},"nativeSrc":"19492:13:24","nodeType":"YulFunctionCall","src":"19492:13:24"},"variables":[{"name":"searchLength","nativeSrc":"19476:12:24","nodeType":"YulTypedName","src":"19476:12:24","type":""}]},{"nativeSrc":"19518:43:24","nodeType":"YulVariableDeclaration","src":"19518:43:24","value":{"arguments":[{"name":"replacement","nativeSrc":"19549:11:24","nodeType":"YulIdentifier","src":"19549:11:24"}],"functionName":{"name":"mload","nativeSrc":"19543:5:24","nodeType":"YulIdentifier","src":"19543:5:24"},"nativeSrc":"19543:18:24","nodeType":"YulFunctionCall","src":"19543:18:24"},"variables":[{"name":"replacementLength","nativeSrc":"19522:17:24","nodeType":"YulTypedName","src":"19522:17:24","type":""}]},{"nativeSrc":"19575:29:24","nodeType":"YulAssignment","src":"19575:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"19590:7:24","nodeType":"YulIdentifier","src":"19590:7:24"},{"kind":"number","nativeSrc":"19599:4:24","nodeType":"YulLiteral","src":"19599:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19586:3:24","nodeType":"YulIdentifier","src":"19586:3:24"},"nativeSrc":"19586:18:24","nodeType":"YulFunctionCall","src":"19586:18:24"},"variableNames":[{"name":"subject","nativeSrc":"19575:7:24","nodeType":"YulIdentifier","src":"19575:7:24"}]},{"nativeSrc":"19617:27:24","nodeType":"YulAssignment","src":"19617:27:24","value":{"arguments":[{"name":"search","nativeSrc":"19631:6:24","nodeType":"YulIdentifier","src":"19631:6:24"},{"kind":"number","nativeSrc":"19639:4:24","nodeType":"YulLiteral","src":"19639:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19627:3:24","nodeType":"YulIdentifier","src":"19627:3:24"},"nativeSrc":"19627:17:24","nodeType":"YulFunctionCall","src":"19627:17:24"},"variableNames":[{"name":"search","nativeSrc":"19617:6:24","nodeType":"YulIdentifier","src":"19617:6:24"}]},{"nativeSrc":"19657:37:24","nodeType":"YulAssignment","src":"19657:37:24","value":{"arguments":[{"name":"replacement","nativeSrc":"19676:11:24","nodeType":"YulIdentifier","src":"19676:11:24"},{"kind":"number","nativeSrc":"19689:4:24","nodeType":"YulLiteral","src":"19689:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19672:3:24","nodeType":"YulIdentifier","src":"19672:3:24"},"nativeSrc":"19672:22:24","nodeType":"YulFunctionCall","src":"19672:22:24"},"variableNames":[{"name":"replacement","nativeSrc":"19657:11:24","nodeType":"YulIdentifier","src":"19657:11:24"}]},{"nativeSrc":"19707:32:24","nodeType":"YulAssignment","src":"19707:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19727:4:24","nodeType":"YulLiteral","src":"19727:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19721:5:24","nodeType":"YulIdentifier","src":"19721:5:24"},"nativeSrc":"19721:11:24","nodeType":"YulFunctionCall","src":"19721:11:24"},{"kind":"number","nativeSrc":"19734:4:24","nodeType":"YulLiteral","src":"19734:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19717:3:24","nodeType":"YulIdentifier","src":"19717:3:24"},"nativeSrc":"19717:22:24","nodeType":"YulFunctionCall","src":"19717:22:24"},"variableNames":[{"name":"result","nativeSrc":"19707:6:24","nodeType":"YulIdentifier","src":"19707:6:24"}]},{"nativeSrc":"19753:45:24","nodeType":"YulVariableDeclaration","src":"19753:45:24","value":{"arguments":[{"name":"subject","nativeSrc":"19775:7:24","nodeType":"YulIdentifier","src":"19775:7:24"},{"name":"subjectLength","nativeSrc":"19784:13:24","nodeType":"YulIdentifier","src":"19784:13:24"}],"functionName":{"name":"add","nativeSrc":"19771:3:24","nodeType":"YulIdentifier","src":"19771:3:24"},"nativeSrc":"19771:27:24","nodeType":"YulFunctionCall","src":"19771:27:24"},"variables":[{"name":"subjectEnd","nativeSrc":"19757:10:24","nodeType":"YulTypedName","src":"19757:10:24","type":""}]},{"body":{"nativeSrc":"19854:1923:24","nodeType":"YulBlock","src":"19854:1923:24","statements":[{"nativeSrc":"19872:61:24","nodeType":"YulVariableDeclaration","src":"19872:61:24","value":{"arguments":[{"arguments":[{"name":"subjectEnd","nativeSrc":"19904:10:24","nodeType":"YulIdentifier","src":"19904:10:24"},{"name":"searchLength","nativeSrc":"19916:12:24","nodeType":"YulIdentifier","src":"19916:12:24"}],"functionName":{"name":"sub","nativeSrc":"19900:3:24","nodeType":"YulIdentifier","src":"19900:3:24"},"nativeSrc":"19900:29:24","nodeType":"YulFunctionCall","src":"19900:29:24"},{"kind":"number","nativeSrc":"19931:1:24","nodeType":"YulLiteral","src":"19931:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19896:3:24","nodeType":"YulIdentifier","src":"19896:3:24"},"nativeSrc":"19896:37:24","nodeType":"YulFunctionCall","src":"19896:37:24"},"variables":[{"name":"subjectSearchEnd","nativeSrc":"19876:16:24","nodeType":"YulTypedName","src":"19876:16:24","type":""}]},{"nativeSrc":"19950:10:24","nodeType":"YulVariableDeclaration","src":"19950:10:24","value":{"kind":"number","nativeSrc":"19959:1:24","nodeType":"YulLiteral","src":"19959:1:24","type":"","value":"0"},"variables":[{"name":"h","nativeSrc":"19954:1:24","nodeType":"YulTypedName","src":"19954:1:24","type":""}]},{"body":{"nativeSrc":"20011:40:24","nodeType":"YulBlock","src":"20011:40:24","statements":[{"nativeSrc":"20013:36:24","nodeType":"YulAssignment","src":"20013:36:24","value":{"arguments":[{"name":"search","nativeSrc":"20028:6:24","nodeType":"YulIdentifier","src":"20028:6:24"},{"name":"searchLength","nativeSrc":"20036:12:24","nodeType":"YulIdentifier","src":"20036:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"20018:9:24","nodeType":"YulIdentifier","src":"20018:9:24"},"nativeSrc":"20018:31:24","nodeType":"YulFunctionCall","src":"20018:31:24"},"variableNames":[{"name":"h","nativeSrc":"20013:1:24","nodeType":"YulIdentifier","src":"20013:1:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"19990:12:24","nodeType":"YulIdentifier","src":"19990:12:24"},{"kind":"number","nativeSrc":"20004:4:24","nodeType":"YulLiteral","src":"20004:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"19987:2:24","nodeType":"YulIdentifier","src":"19987:2:24"},"nativeSrc":"19987:22:24","nodeType":"YulFunctionCall","src":"19987:22:24"}],"functionName":{"name":"iszero","nativeSrc":"19980:6:24","nodeType":"YulIdentifier","src":"19980:6:24"},"nativeSrc":"19980:30:24","nodeType":"YulFunctionCall","src":"19980:30:24"},"nativeSrc":"19977:74:24","nodeType":"YulIf","src":"19977:74:24"},{"nativeSrc":"20068:51:24","nodeType":"YulVariableDeclaration","src":"20068:51:24","value":{"arguments":[{"kind":"number","nativeSrc":"20081:1:24","nodeType":"YulLiteral","src":"20081:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"20088:4:24","nodeType":"YulLiteral","src":"20088:4:24","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"20098:12:24","nodeType":"YulIdentifier","src":"20098:12:24"},{"kind":"number","nativeSrc":"20112:4:24","nodeType":"YulLiteral","src":"20112:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"20094:3:24","nodeType":"YulIdentifier","src":"20094:3:24"},"nativeSrc":"20094:23:24","nodeType":"YulFunctionCall","src":"20094:23:24"}],"functionName":{"name":"sub","nativeSrc":"20084:3:24","nodeType":"YulIdentifier","src":"20084:3:24"},"nativeSrc":"20084:34:24","nodeType":"YulFunctionCall","src":"20084:34:24"}],"functionName":{"name":"shl","nativeSrc":"20077:3:24","nodeType":"YulIdentifier","src":"20077:3:24"},"nativeSrc":"20077:42:24","nodeType":"YulFunctionCall","src":"20077:42:24"},"variables":[{"name":"m","nativeSrc":"20072:1:24","nodeType":"YulTypedName","src":"20072:1:24","type":""}]},{"nativeSrc":"20136:22:24","nodeType":"YulVariableDeclaration","src":"20136:22:24","value":{"arguments":[{"name":"search","nativeSrc":"20151:6:24","nodeType":"YulIdentifier","src":"20151:6:24"}],"functionName":{"name":"mload","nativeSrc":"20145:5:24","nodeType":"YulIdentifier","src":"20145:5:24"},"nativeSrc":"20145:13:24","nodeType":"YulFunctionCall","src":"20145:13:24"},"variables":[{"name":"s","nativeSrc":"20140:1:24","nodeType":"YulTypedName","src":"20140:1:24","type":""}]},{"body":{"nativeSrc":"20187:1576:24","nodeType":"YulBlock","src":"20187:1576:24","statements":[{"nativeSrc":"20209:23:24","nodeType":"YulVariableDeclaration","src":"20209:23:24","value":{"arguments":[{"name":"subject","nativeSrc":"20224:7:24","nodeType":"YulIdentifier","src":"20224:7:24"}],"functionName":{"name":"mload","nativeSrc":"20218:5:24","nodeType":"YulIdentifier","src":"20218:5:24"},"nativeSrc":"20218:14:24","nodeType":"YulFunctionCall","src":"20218:14:24"},"variables":[{"name":"t","nativeSrc":"20213:1:24","nodeType":"YulTypedName","src":"20213:1:24","type":""}]},{"body":{"nativeSrc":"20407:1137:24","nodeType":"YulBlock","src":"20407:1137:24","statements":[{"body":{"nativeSrc":"20438:428:24","nodeType":"YulBlock","src":"20438:428:24","statements":[{"body":{"nativeSrc":"20519:321:24","nodeType":"YulBlock","src":"20519:321:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"20560:6:24","nodeType":"YulIdentifier","src":"20560:6:24"},{"name":"t","nativeSrc":"20568:1:24","nodeType":"YulIdentifier","src":"20568:1:24"}],"functionName":{"name":"mstore","nativeSrc":"20553:6:24","nodeType":"YulIdentifier","src":"20553:6:24"},"nativeSrc":"20553:17:24","nodeType":"YulFunctionCall","src":"20553:17:24"},"nativeSrc":"20553:17:24","nodeType":"YulExpressionStatement","src":"20553:17:24"},{"nativeSrc":"20603:24:24","nodeType":"YulAssignment","src":"20603:24:24","value":{"arguments":[{"name":"result","nativeSrc":"20617:6:24","nodeType":"YulIdentifier","src":"20617:6:24"},{"kind":"number","nativeSrc":"20625:1:24","nodeType":"YulLiteral","src":"20625:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20613:3:24","nodeType":"YulIdentifier","src":"20613:3:24"},"nativeSrc":"20613:14:24","nodeType":"YulFunctionCall","src":"20613:14:24"},"variableNames":[{"name":"result","nativeSrc":"20603:6:24","nodeType":"YulIdentifier","src":"20603:6:24"}]},{"nativeSrc":"20660:26:24","nodeType":"YulAssignment","src":"20660:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"20675:7:24","nodeType":"YulIdentifier","src":"20675:7:24"},{"kind":"number","nativeSrc":"20684:1:24","nodeType":"YulLiteral","src":"20684:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20671:3:24","nodeType":"YulIdentifier","src":"20671:3:24"},"nativeSrc":"20671:15:24","nodeType":"YulFunctionCall","src":"20671:15:24"},"variableNames":[{"name":"subject","nativeSrc":"20660:7:24","nodeType":"YulIdentifier","src":"20660:7:24"}]},{"body":{"nativeSrc":"20760:9:24","nodeType":"YulBlock","src":"20760:9:24","statements":[{"nativeSrc":"20762:5:24","nodeType":"YulBreak","src":"20762:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"20732:7:24","nodeType":"YulIdentifier","src":"20732:7:24"},{"name":"subjectSearchEnd","nativeSrc":"20741:16:24","nodeType":"YulIdentifier","src":"20741:16:24"}],"functionName":{"name":"lt","nativeSrc":"20729:2:24","nodeType":"YulIdentifier","src":"20729:2:24"},"nativeSrc":"20729:29:24","nodeType":"YulFunctionCall","src":"20729:29:24"}],"functionName":{"name":"iszero","nativeSrc":"20722:6:24","nodeType":"YulIdentifier","src":"20722:6:24"},"nativeSrc":"20722:37:24","nodeType":"YulFunctionCall","src":"20722:37:24"},"nativeSrc":"20719:50:24","nodeType":"YulIf","src":"20719:50:24"},{"nativeSrc":"20802:8:24","nodeType":"YulContinue","src":"20802:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"20491:7:24","nodeType":"YulIdentifier","src":"20491:7:24"},{"name":"searchLength","nativeSrc":"20500:12:24","nodeType":"YulIdentifier","src":"20500:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"20481:9:24","nodeType":"YulIdentifier","src":"20481:9:24"},"nativeSrc":"20481:32:24","nodeType":"YulFunctionCall","src":"20481:32:24"},{"name":"h","nativeSrc":"20515:1:24","nodeType":"YulIdentifier","src":"20515:1:24"}],"functionName":{"name":"eq","nativeSrc":"20478:2:24","nodeType":"YulIdentifier","src":"20478:2:24"},"nativeSrc":"20478:39:24","nodeType":"YulFunctionCall","src":"20478:39:24"}],"functionName":{"name":"iszero","nativeSrc":"20471:6:24","nodeType":"YulIdentifier","src":"20471:6:24"},"nativeSrc":"20471:47:24","nodeType":"YulFunctionCall","src":"20471:47:24"},"nativeSrc":"20468:372:24","nodeType":"YulIf","src":"20468:372:24"}]},"condition":{"name":"h","nativeSrc":"20436:1:24","nodeType":"YulIdentifier","src":"20436:1:24"},"nativeSrc":"20433:433:24","nodeType":"YulIf","src":"20433:433:24"},{"body":{"nativeSrc":"20985:226:24","nodeType":"YulBlock","src":"20985:226:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"21026:6:24","nodeType":"YulIdentifier","src":"21026:6:24"},{"name":"o","nativeSrc":"21034:1:24","nodeType":"YulIdentifier","src":"21034:1:24"}],"functionName":{"name":"add","nativeSrc":"21022:3:24","nodeType":"YulIdentifier","src":"21022:3:24"},"nativeSrc":"21022:14:24","nodeType":"YulFunctionCall","src":"21022:14:24"},{"arguments":[{"arguments":[{"name":"replacement","nativeSrc":"21048:11:24","nodeType":"YulIdentifier","src":"21048:11:24"},{"name":"o","nativeSrc":"21061:1:24","nodeType":"YulIdentifier","src":"21061:1:24"}],"functionName":{"name":"add","nativeSrc":"21044:3:24","nodeType":"YulIdentifier","src":"21044:3:24"},"nativeSrc":"21044:19:24","nodeType":"YulFunctionCall","src":"21044:19:24"}],"functionName":{"name":"mload","nativeSrc":"21038:5:24","nodeType":"YulIdentifier","src":"21038:5:24"},"nativeSrc":"21038:26:24","nodeType":"YulFunctionCall","src":"21038:26:24"}],"functionName":{"name":"mstore","nativeSrc":"21015:6:24","nodeType":"YulIdentifier","src":"21015:6:24"},"nativeSrc":"21015:50:24","nodeType":"YulFunctionCall","src":"21015:50:24"},"nativeSrc":"21015:50:24","nodeType":"YulExpressionStatement","src":"21015:50:24"},{"nativeSrc":"21094:17:24","nodeType":"YulAssignment","src":"21094:17:24","value":{"arguments":[{"name":"o","nativeSrc":"21103:1:24","nodeType":"YulIdentifier","src":"21103:1:24"},{"kind":"number","nativeSrc":"21106:4:24","nodeType":"YulLiteral","src":"21106:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21099:3:24","nodeType":"YulIdentifier","src":"21099:3:24"},"nativeSrc":"21099:12:24","nodeType":"YulFunctionCall","src":"21099:12:24"},"variableNames":[{"name":"o","nativeSrc":"21094:1:24","nodeType":"YulIdentifier","src":"21094:1:24"}]},{"body":{"nativeSrc":"21176:9:24","nodeType":"YulBlock","src":"21176:9:24","statements":[{"nativeSrc":"21178:5:24","nodeType":"YulBreak","src":"21178:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"21153:1:24","nodeType":"YulIdentifier","src":"21153:1:24"},{"name":"replacementLength","nativeSrc":"21156:17:24","nodeType":"YulIdentifier","src":"21156:17:24"}],"functionName":{"name":"lt","nativeSrc":"21150:2:24","nodeType":"YulIdentifier","src":"21150:2:24"},"nativeSrc":"21150:24:24","nodeType":"YulFunctionCall","src":"21150:24:24"}],"functionName":{"name":"iszero","nativeSrc":"21143:6:24","nodeType":"YulIdentifier","src":"21143:6:24"},"nativeSrc":"21143:32:24","nodeType":"YulFunctionCall","src":"21143:32:24"},"nativeSrc":"21140:45:24","nodeType":"YulIf","src":"21140:45:24"}]},"condition":{"kind":"number","nativeSrc":"20980:1:24","nodeType":"YulLiteral","src":"20980:1:24","type":"","value":"1"},"nativeSrc":"20961:250:24","nodeType":"YulForLoop","post":{"nativeSrc":"20982:2:24","nodeType":"YulBlock","src":"20982:2:24","statements":[]},"pre":{"nativeSrc":"20965:14:24","nodeType":"YulBlock","src":"20965:14:24","statements":[{"nativeSrc":"20967:10:24","nodeType":"YulVariableDeclaration","src":"20967:10:24","value":{"kind":"number","nativeSrc":"20976:1:24","nodeType":"YulLiteral","src":"20976:1:24","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"20971:1:24","nodeType":"YulTypedName","src":"20971:1:24","type":""}]}]},"src":"20961:250:24"},{"nativeSrc":"21236:40:24","nodeType":"YulAssignment","src":"21236:40:24","value":{"arguments":[{"name":"result","nativeSrc":"21250:6:24","nodeType":"YulIdentifier","src":"21250:6:24"},{"name":"replacementLength","nativeSrc":"21258:17:24","nodeType":"YulIdentifier","src":"21258:17:24"}],"functionName":{"name":"add","nativeSrc":"21246:3:24","nodeType":"YulIdentifier","src":"21246:3:24"},"nativeSrc":"21246:30:24","nodeType":"YulFunctionCall","src":"21246:30:24"},"variableNames":[{"name":"result","nativeSrc":"21236:6:24","nodeType":"YulIdentifier","src":"21236:6:24"}]},{"nativeSrc":"21301:37:24","nodeType":"YulAssignment","src":"21301:37:24","value":{"arguments":[{"name":"subject","nativeSrc":"21316:7:24","nodeType":"YulIdentifier","src":"21316:7:24"},{"name":"searchLength","nativeSrc":"21325:12:24","nodeType":"YulIdentifier","src":"21325:12:24"}],"functionName":{"name":"add","nativeSrc":"21312:3:24","nodeType":"YulIdentifier","src":"21312:3:24"},"nativeSrc":"21312:26:24","nodeType":"YulFunctionCall","src":"21312:26:24"},"variableNames":[{"name":"subject","nativeSrc":"21301:7:24","nodeType":"YulIdentifier","src":"21301:7:24"}]},{"body":{"nativeSrc":"21379:143:24","nodeType":"YulBlock","src":"21379:143:24","statements":[{"body":{"nativeSrc":"21450:9:24","nodeType":"YulBlock","src":"21450:9:24","statements":[{"nativeSrc":"21452:5:24","nodeType":"YulBreak","src":"21452:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"21422:7:24","nodeType":"YulIdentifier","src":"21422:7:24"},{"name":"subjectSearchEnd","nativeSrc":"21431:16:24","nodeType":"YulIdentifier","src":"21431:16:24"}],"functionName":{"name":"lt","nativeSrc":"21419:2:24","nodeType":"YulIdentifier","src":"21419:2:24"},"nativeSrc":"21419:29:24","nodeType":"YulFunctionCall","src":"21419:29:24"}],"functionName":{"name":"iszero","nativeSrc":"21412:6:24","nodeType":"YulIdentifier","src":"21412:6:24"},"nativeSrc":"21412:37:24","nodeType":"YulFunctionCall","src":"21412:37:24"},"nativeSrc":"21409:50:24","nodeType":"YulIf","src":"21409:50:24"},{"nativeSrc":"21488:8:24","nodeType":"YulContinue","src":"21488:8:24"}]},"condition":{"name":"searchLength","nativeSrc":"21366:12:24","nodeType":"YulIdentifier","src":"21366:12:24"},"nativeSrc":"21363:159:24","nodeType":"YulIf","src":"21363:159:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20392:1:24","nodeType":"YulIdentifier","src":"20392:1:24"},{"arguments":[{"name":"t","nativeSrc":"20399:1:24","nodeType":"YulIdentifier","src":"20399:1:24"},{"name":"s","nativeSrc":"20402:1:24","nodeType":"YulIdentifier","src":"20402:1:24"}],"functionName":{"name":"xor","nativeSrc":"20395:3:24","nodeType":"YulIdentifier","src":"20395:3:24"},"nativeSrc":"20395:9:24","nodeType":"YulFunctionCall","src":"20395:9:24"}],"functionName":{"name":"shr","nativeSrc":"20388:3:24","nodeType":"YulIdentifier","src":"20388:3:24"},"nativeSrc":"20388:17:24","nodeType":"YulFunctionCall","src":"20388:17:24"}],"functionName":{"name":"iszero","nativeSrc":"20381:6:24","nodeType":"YulIdentifier","src":"20381:6:24"},"nativeSrc":"20381:25:24","nodeType":"YulFunctionCall","src":"20381:25:24"},"nativeSrc":"20378:1166:24","nodeType":"YulIf","src":"20378:1166:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"21572:6:24","nodeType":"YulIdentifier","src":"21572:6:24"},{"name":"t","nativeSrc":"21580:1:24","nodeType":"YulIdentifier","src":"21580:1:24"}],"functionName":{"name":"mstore","nativeSrc":"21565:6:24","nodeType":"YulIdentifier","src":"21565:6:24"},"nativeSrc":"21565:17:24","nodeType":"YulFunctionCall","src":"21565:17:24"},"nativeSrc":"21565:17:24","nodeType":"YulExpressionStatement","src":"21565:17:24"},{"nativeSrc":"21603:24:24","nodeType":"YulAssignment","src":"21603:24:24","value":{"arguments":[{"name":"result","nativeSrc":"21617:6:24","nodeType":"YulIdentifier","src":"21617:6:24"},{"kind":"number","nativeSrc":"21625:1:24","nodeType":"YulLiteral","src":"21625:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21613:3:24","nodeType":"YulIdentifier","src":"21613:3:24"},"nativeSrc":"21613:14:24","nodeType":"YulFunctionCall","src":"21613:14:24"},"variableNames":[{"name":"result","nativeSrc":"21603:6:24","nodeType":"YulIdentifier","src":"21603:6:24"}]},{"nativeSrc":"21648:26:24","nodeType":"YulAssignment","src":"21648:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"21663:7:24","nodeType":"YulIdentifier","src":"21663:7:24"},{"kind":"number","nativeSrc":"21672:1:24","nodeType":"YulLiteral","src":"21672:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21659:3:24","nodeType":"YulIdentifier","src":"21659:3:24"},"nativeSrc":"21659:15:24","nodeType":"YulFunctionCall","src":"21659:15:24"},"variableNames":[{"name":"subject","nativeSrc":"21648:7:24","nodeType":"YulIdentifier","src":"21648:7:24"}]},{"body":{"nativeSrc":"21736:9:24","nodeType":"YulBlock","src":"21736:9:24","statements":[{"nativeSrc":"21738:5:24","nodeType":"YulBreak","src":"21738:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"21708:7:24","nodeType":"YulIdentifier","src":"21708:7:24"},{"name":"subjectSearchEnd","nativeSrc":"21717:16:24","nodeType":"YulIdentifier","src":"21717:16:24"}],"functionName":{"name":"lt","nativeSrc":"21705:2:24","nodeType":"YulIdentifier","src":"21705:2:24"},"nativeSrc":"21705:29:24","nodeType":"YulFunctionCall","src":"21705:29:24"}],"functionName":{"name":"iszero","nativeSrc":"21698:6:24","nodeType":"YulIdentifier","src":"21698:6:24"},"nativeSrc":"21698:37:24","nodeType":"YulFunctionCall","src":"21698:37:24"},"nativeSrc":"21695:50:24","nodeType":"YulIf","src":"21695:50:24"}]},"condition":{"kind":"number","nativeSrc":"20182:1:24","nodeType":"YulLiteral","src":"20182:1:24","type":"","value":"1"},"nativeSrc":"20175:1588:24","nodeType":"YulForLoop","post":{"nativeSrc":"20184:2:24","nodeType":"YulBlock","src":"20184:2:24","statements":[]},"pre":{"nativeSrc":"20179:2:24","nodeType":"YulBlock","src":"20179:2:24","statements":[]},"src":"20175:1588:24"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"19824:12:24","nodeType":"YulIdentifier","src":"19824:12:24"},{"name":"subjectLength","nativeSrc":"19838:13:24","nodeType":"YulIdentifier","src":"19838:13:24"}],"functionName":{"name":"gt","nativeSrc":"19821:2:24","nodeType":"YulIdentifier","src":"19821:2:24"},"nativeSrc":"19821:31:24","nodeType":"YulFunctionCall","src":"19821:31:24"}],"functionName":{"name":"iszero","nativeSrc":"19814:6:24","nodeType":"YulIdentifier","src":"19814:6:24"},"nativeSrc":"19814:39:24","nodeType":"YulFunctionCall","src":"19814:39:24"},"nativeSrc":"19811:1966:24","nodeType":"YulIf","src":"19811:1966:24"},{"nativeSrc":"21791:29:24","nodeType":"YulVariableDeclaration","src":"21791:29:24","value":{"name":"result","nativeSrc":"21814:6:24","nodeType":"YulIdentifier","src":"21814:6:24"},"variables":[{"name":"resultRemainder","nativeSrc":"21795:15:24","nodeType":"YulTypedName","src":"21795:15:24","type":""}]},{"nativeSrc":"21833:32:24","nodeType":"YulAssignment","src":"21833:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21853:4:24","nodeType":"YulLiteral","src":"21853:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"21847:5:24","nodeType":"YulIdentifier","src":"21847:5:24"},"nativeSrc":"21847:11:24","nodeType":"YulFunctionCall","src":"21847:11:24"},{"kind":"number","nativeSrc":"21860:4:24","nodeType":"YulLiteral","src":"21860:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21843:3:24","nodeType":"YulIdentifier","src":"21843:3:24"},"nativeSrc":"21843:22:24","nodeType":"YulFunctionCall","src":"21843:22:24"},"variableNames":[{"name":"result","nativeSrc":"21833:6:24","nodeType":"YulIdentifier","src":"21833:6:24"}]},{"nativeSrc":"21878:68:24","nodeType":"YulVariableDeclaration","src":"21878:68:24","value":{"arguments":[{"arguments":[{"name":"resultRemainder","nativeSrc":"21895:15:24","nodeType":"YulIdentifier","src":"21895:15:24"},{"name":"result","nativeSrc":"21912:6:24","nodeType":"YulIdentifier","src":"21912:6:24"}],"functionName":{"name":"sub","nativeSrc":"21891:3:24","nodeType":"YulIdentifier","src":"21891:3:24"},"nativeSrc":"21891:28:24","nodeType":"YulFunctionCall","src":"21891:28:24"},{"arguments":[{"name":"subjectEnd","nativeSrc":"21925:10:24","nodeType":"YulIdentifier","src":"21925:10:24"},{"name":"subject","nativeSrc":"21937:7:24","nodeType":"YulIdentifier","src":"21937:7:24"}],"functionName":{"name":"sub","nativeSrc":"21921:3:24","nodeType":"YulIdentifier","src":"21921:3:24"},"nativeSrc":"21921:24:24","nodeType":"YulFunctionCall","src":"21921:24:24"}],"functionName":{"name":"add","nativeSrc":"21887:3:24","nodeType":"YulIdentifier","src":"21887:3:24"},"nativeSrc":"21887:59:24","nodeType":"YulFunctionCall","src":"21887:59:24"},"variables":[{"name":"k","nativeSrc":"21882:1:24","nodeType":"YulTypedName","src":"21882:1:24","type":""}]},{"body":{"nativeSrc":"22056:179:24","nodeType":"YulBlock","src":"22056:179:24","statements":[{"expression":{"arguments":[{"name":"resultRemainder","nativeSrc":"22081:15:24","nodeType":"YulIdentifier","src":"22081:15:24"},{"arguments":[{"name":"subject","nativeSrc":"22104:7:24","nodeType":"YulIdentifier","src":"22104:7:24"}],"functionName":{"name":"mload","nativeSrc":"22098:5:24","nodeType":"YulIdentifier","src":"22098:5:24"},"nativeSrc":"22098:14:24","nodeType":"YulFunctionCall","src":"22098:14:24"}],"functionName":{"name":"mstore","nativeSrc":"22074:6:24","nodeType":"YulIdentifier","src":"22074:6:24"},"nativeSrc":"22074:39:24","nodeType":"YulFunctionCall","src":"22074:39:24"},"nativeSrc":"22074:39:24","nodeType":"YulExpressionStatement","src":"22074:39:24"},{"nativeSrc":"22130:45:24","nodeType":"YulAssignment","src":"22130:45:24","value":{"arguments":[{"name":"resultRemainder","nativeSrc":"22153:15:24","nodeType":"YulIdentifier","src":"22153:15:24"},{"kind":"number","nativeSrc":"22170:4:24","nodeType":"YulLiteral","src":"22170:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22149:3:24","nodeType":"YulIdentifier","src":"22149:3:24"},"nativeSrc":"22149:26:24","nodeType":"YulFunctionCall","src":"22149:26:24"},"variableNames":[{"name":"resultRemainder","nativeSrc":"22130:15:24","nodeType":"YulIdentifier","src":"22130:15:24"}]},{"nativeSrc":"22192:29:24","nodeType":"YulAssignment","src":"22192:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"22207:7:24","nodeType":"YulIdentifier","src":"22207:7:24"},{"kind":"number","nativeSrc":"22216:4:24","nodeType":"YulLiteral","src":"22216:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22203:3:24","nodeType":"YulIdentifier","src":"22203:3:24"},"nativeSrc":"22203:18:24","nodeType":"YulFunctionCall","src":"22203:18:24"},"variableNames":[{"name":"subject","nativeSrc":"22192:7:24","nodeType":"YulIdentifier","src":"22192:7:24"}]}]},"condition":{"arguments":[{"name":"subject","nativeSrc":"22032:7:24","nodeType":"YulIdentifier","src":"22032:7:24"},{"name":"subjectEnd","nativeSrc":"22041:10:24","nodeType":"YulIdentifier","src":"22041:10:24"}],"functionName":{"name":"lt","nativeSrc":"22029:2:24","nodeType":"YulIdentifier","src":"22029:2:24"},"nativeSrc":"22029:23:24","nodeType":"YulFunctionCall","src":"22029:23:24"},"nativeSrc":"22022:213:24","nodeType":"YulForLoop","post":{"nativeSrc":"22053:2:24","nodeType":"YulBlock","src":"22053:2:24","statements":[]},"pre":{"nativeSrc":"22026:2:24","nodeType":"YulBlock","src":"22026:2:24","statements":[]},"src":"22022:213:24"},{"nativeSrc":"22248:27:24","nodeType":"YulAssignment","src":"22248:27:24","value":{"arguments":[{"name":"result","nativeSrc":"22262:6:24","nodeType":"YulIdentifier","src":"22262:6:24"},{"kind":"number","nativeSrc":"22270:4:24","nodeType":"YulLiteral","src":"22270:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"22258:3:24","nodeType":"YulIdentifier","src":"22258:3:24"},"nativeSrc":"22258:17:24","nodeType":"YulFunctionCall","src":"22258:17:24"},"variableNames":[{"name":"result","nativeSrc":"22248:6:24","nodeType":"YulIdentifier","src":"22248:6:24"}]},{"nativeSrc":"22288:37:24","nodeType":"YulVariableDeclaration","src":"22288:37:24","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"22308:6:24","nodeType":"YulIdentifier","src":"22308:6:24"},{"kind":"number","nativeSrc":"22316:4:24","nodeType":"YulLiteral","src":"22316:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22304:3:24","nodeType":"YulIdentifier","src":"22304:3:24"},"nativeSrc":"22304:17:24","nodeType":"YulFunctionCall","src":"22304:17:24"},{"name":"k","nativeSrc":"22323:1:24","nodeType":"YulIdentifier","src":"22323:1:24"}],"functionName":{"name":"add","nativeSrc":"22300:3:24","nodeType":"YulIdentifier","src":"22300:3:24"},"nativeSrc":"22300:25:24","nodeType":"YulFunctionCall","src":"22300:25:24"},"variables":[{"name":"last","nativeSrc":"22292:4:24","nodeType":"YulTypedName","src":"22292:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"22383:4:24","nodeType":"YulIdentifier","src":"22383:4:24"},{"kind":"number","nativeSrc":"22389:1:24","nodeType":"YulLiteral","src":"22389:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"22376:6:24","nodeType":"YulIdentifier","src":"22376:6:24"},"nativeSrc":"22376:15:24","nodeType":"YulFunctionCall","src":"22376:15:24"},"nativeSrc":"22376:15:24","nodeType":"YulExpressionStatement","src":"22376:15:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22411:4:24","nodeType":"YulLiteral","src":"22411:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"22421:4:24","nodeType":"YulIdentifier","src":"22421:4:24"},{"kind":"number","nativeSrc":"22427:4:24","nodeType":"YulLiteral","src":"22427:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22417:3:24","nodeType":"YulIdentifier","src":"22417:3:24"},"nativeSrc":"22417:15:24","nodeType":"YulFunctionCall","src":"22417:15:24"}],"functionName":{"name":"mstore","nativeSrc":"22404:6:24","nodeType":"YulIdentifier","src":"22404:6:24"},"nativeSrc":"22404:29:24","nodeType":"YulFunctionCall","src":"22404:29:24"},"nativeSrc":"22404:29:24","nodeType":"YulExpressionStatement","src":"22404:29:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"22477:6:24","nodeType":"YulIdentifier","src":"22477:6:24"},{"name":"k","nativeSrc":"22485:1:24","nodeType":"YulIdentifier","src":"22485:1:24"}],"functionName":{"name":"mstore","nativeSrc":"22470:6:24","nodeType":"YulIdentifier","src":"22470:6:24"},"nativeSrc":"22470:17:24","nodeType":"YulFunctionCall","src":"22470:17:24"},"nativeSrc":"22470:17:24","nodeType":"YulExpressionStatement","src":"22470:17:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10553,"isOffset":false,"isSlot":false,"src":"19549:11:24","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"19657:11:24","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"19676:11:24","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"21048:11:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"19707:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"20560:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"20603:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"20617:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21026:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21236:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21250:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21572:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21603:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21617:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21814:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21833:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"21912:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22248:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22262:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22308:6:24","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"22477:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"19498:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"19617:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"19631:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"20028:6:24","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"20151:6:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19451:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19575:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19590:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"19775:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20224:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20491:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20660:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20675:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"20732:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21301:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21316:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21422:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21648:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21663:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21708:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"21937:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22032:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22104:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22192:7:24","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"22207:7:24","valueSize":1}],"id":10558,"nodeType":"InlineAssembly","src":"19401:3117:24"}]},"documentation":{"id":10547,"nodeType":"StructuredDocumentation","src":"19098:83:24","text":"@dev Returns `subject` all occurrences of `search` replaced with `replacement`."},"id":10560,"implemented":true,"kind":"function","modifiers":[],"name":"replace","nameLocation":"19195:7:24","nodeType":"FunctionDefinition","parameters":{"id":10554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10549,"mutability":"mutable","name":"subject","nameLocation":"19217:7:24","nodeType":"VariableDeclaration","scope":10560,"src":"19203:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10548,"name":"string","nodeType":"ElementaryTypeName","src":"19203:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10551,"mutability":"mutable","name":"search","nameLocation":"19240:6:24","nodeType":"VariableDeclaration","scope":10560,"src":"19226:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10550,"name":"string","nodeType":"ElementaryTypeName","src":"19226:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10553,"mutability":"mutable","name":"replacement","nameLocation":"19262:11:24","nodeType":"VariableDeclaration","scope":10560,"src":"19248:25:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10552,"name":"string","nodeType":"ElementaryTypeName","src":"19248:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19202:72:24"},"returnParameters":{"id":10557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10556,"mutability":"mutable","name":"result","nameLocation":"19336:6:24","nodeType":"VariableDeclaration","scope":10560,"src":"19322:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10555,"name":"string","nodeType":"ElementaryTypeName","src":"19322:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19321:22:24"},"scope":10964,"src":"19186:3338:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10573,"nodeType":"Block","src":"22902:1922:24","statements":[{"AST":{"nativeSrc":"22964:1854:24","nodeType":"YulBlock","src":"22964:1854:24","statements":[{"body":{"nativeSrc":"23027:1781:24","nodeType":"YulBlock","src":"23027:1781:24","statements":[{"body":{"nativeSrc":"23070:237:24","nodeType":"YulBlock","src":"23070:237:24","statements":[{"body":{"nativeSrc":"23127:92:24","nodeType":"YulBlock","src":"23127:92:24","statements":[{"nativeSrc":"23153:14:24","nodeType":"YulAssignment","src":"23153:14:24","value":{"name":"from","nativeSrc":"23163:4:24","nodeType":"YulIdentifier","src":"23163:4:24"},"variableNames":[{"name":"result","nativeSrc":"23153:6:24","nodeType":"YulIdentifier","src":"23153:6:24"}]},{"nativeSrc":"23192:5:24","nodeType":"YulBreak","src":"23192:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"from","nativeSrc":"23105:4:24","nodeType":"YulIdentifier","src":"23105:4:24"},{"name":"subjectLength","nativeSrc":"23111:13:24","nodeType":"YulIdentifier","src":"23111:13:24"}],"functionName":{"name":"gt","nativeSrc":"23102:2:24","nodeType":"YulIdentifier","src":"23102:2:24"},"nativeSrc":"23102:23:24","nodeType":"YulFunctionCall","src":"23102:23:24"}],"functionName":{"name":"iszero","nativeSrc":"23095:6:24","nodeType":"YulIdentifier","src":"23095:6:24"},"nativeSrc":"23095:31:24","nodeType":"YulFunctionCall","src":"23095:31:24"},"nativeSrc":"23092:127:24","nodeType":"YulIf","src":"23092:127:24"},{"nativeSrc":"23240:23:24","nodeType":"YulAssignment","src":"23240:23:24","value":{"name":"subjectLength","nativeSrc":"23250:13:24","nodeType":"YulIdentifier","src":"23250:13:24"},"variableNames":[{"name":"result","nativeSrc":"23240:6:24","nodeType":"YulIdentifier","src":"23240:6:24"}]},{"nativeSrc":"23284:5:24","nodeType":"YulBreak","src":"23284:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23061:6:24","nodeType":"YulIdentifier","src":"23061:6:24"}],"functionName":{"name":"mload","nativeSrc":"23055:5:24","nodeType":"YulIdentifier","src":"23055:5:24"},"nativeSrc":"23055:13:24","nodeType":"YulFunctionCall","src":"23055:13:24"}],"functionName":{"name":"iszero","nativeSrc":"23048:6:24","nodeType":"YulIdentifier","src":"23048:6:24"},"nativeSrc":"23048:21:24","nodeType":"YulFunctionCall","src":"23048:21:24"},"nativeSrc":"23045:262:24","nodeType":"YulIf","src":"23045:262:24"},{"nativeSrc":"23324:33:24","nodeType":"YulVariableDeclaration","src":"23324:33:24","value":{"arguments":[{"name":"search","nativeSrc":"23350:6:24","nodeType":"YulIdentifier","src":"23350:6:24"}],"functionName":{"name":"mload","nativeSrc":"23344:5:24","nodeType":"YulIdentifier","src":"23344:5:24"},"nativeSrc":"23344:13:24","nodeType":"YulFunctionCall","src":"23344:13:24"},"variables":[{"name":"searchLength","nativeSrc":"23328:12:24","nodeType":"YulTypedName","src":"23328:12:24","type":""}]},{"nativeSrc":"23374:38:24","nodeType":"YulVariableDeclaration","src":"23374:38:24","value":{"arguments":[{"name":"subject","nativeSrc":"23398:7:24","nodeType":"YulIdentifier","src":"23398:7:24"},{"kind":"number","nativeSrc":"23407:4:24","nodeType":"YulLiteral","src":"23407:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23394:3:24","nodeType":"YulIdentifier","src":"23394:3:24"},"nativeSrc":"23394:18:24","nodeType":"YulFunctionCall","src":"23394:18:24"},"variables":[{"name":"subjectStart","nativeSrc":"23378:12:24","nodeType":"YulTypedName","src":"23378:12:24","type":""}]},{"nativeSrc":"23430:16:24","nodeType":"YulAssignment","src":"23430:16:24","value":{"arguments":[{"kind":"number","nativeSrc":"23444:1:24","nodeType":"YulLiteral","src":"23444:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23440:3:24","nodeType":"YulIdentifier","src":"23440:3:24"},"nativeSrc":"23440:6:24","nodeType":"YulFunctionCall","src":"23440:6:24"},"variableNames":[{"name":"result","nativeSrc":"23430:6:24","nodeType":"YulIdentifier","src":"23430:6:24"}]},{"nativeSrc":"23494:34:24","nodeType":"YulAssignment","src":"23494:34:24","value":{"arguments":[{"name":"subjectStart","nativeSrc":"23509:12:24","nodeType":"YulIdentifier","src":"23509:12:24"},{"name":"from","nativeSrc":"23523:4:24","nodeType":"YulIdentifier","src":"23523:4:24"}],"functionName":{"name":"add","nativeSrc":"23505:3:24","nodeType":"YulIdentifier","src":"23505:3:24"},"nativeSrc":"23505:23:24","nodeType":"YulFunctionCall","src":"23505:23:24"},"variableNames":[{"name":"subject","nativeSrc":"23494:7:24","nodeType":"YulIdentifier","src":"23494:7:24"}]},{"nativeSrc":"23545:70:24","nodeType":"YulVariableDeclaration","src":"23545:70:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subjectStart","nativeSrc":"23568:12:24","nodeType":"YulIdentifier","src":"23568:12:24"},{"name":"subjectLength","nativeSrc":"23582:13:24","nodeType":"YulIdentifier","src":"23582:13:24"}],"functionName":{"name":"add","nativeSrc":"23564:3:24","nodeType":"YulIdentifier","src":"23564:3:24"},"nativeSrc":"23564:32:24","nodeType":"YulFunctionCall","src":"23564:32:24"},{"name":"searchLength","nativeSrc":"23598:12:24","nodeType":"YulIdentifier","src":"23598:12:24"}],"functionName":{"name":"sub","nativeSrc":"23560:3:24","nodeType":"YulIdentifier","src":"23560:3:24"},"nativeSrc":"23560:51:24","nodeType":"YulFunctionCall","src":"23560:51:24"},{"kind":"number","nativeSrc":"23613:1:24","nodeType":"YulLiteral","src":"23613:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23556:3:24","nodeType":"YulIdentifier","src":"23556:3:24"},"nativeSrc":"23556:59:24","nodeType":"YulFunctionCall","src":"23556:59:24"},"variables":[{"name":"end","nativeSrc":"23549:3:24","nodeType":"YulTypedName","src":"23549:3:24","type":""}]},{"nativeSrc":"23633:51:24","nodeType":"YulVariableDeclaration","src":"23633:51:24","value":{"arguments":[{"kind":"number","nativeSrc":"23646:1:24","nodeType":"YulLiteral","src":"23646:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"23653:4:24","nodeType":"YulLiteral","src":"23653:4:24","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"23663:12:24","nodeType":"YulIdentifier","src":"23663:12:24"},{"kind":"number","nativeSrc":"23677:4:24","nodeType":"YulLiteral","src":"23677:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"23659:3:24","nodeType":"YulIdentifier","src":"23659:3:24"},"nativeSrc":"23659:23:24","nodeType":"YulFunctionCall","src":"23659:23:24"}],"functionName":{"name":"sub","nativeSrc":"23649:3:24","nodeType":"YulIdentifier","src":"23649:3:24"},"nativeSrc":"23649:34:24","nodeType":"YulFunctionCall","src":"23649:34:24"}],"functionName":{"name":"shl","nativeSrc":"23642:3:24","nodeType":"YulIdentifier","src":"23642:3:24"},"nativeSrc":"23642:42:24","nodeType":"YulFunctionCall","src":"23642:42:24"},"variables":[{"name":"m","nativeSrc":"23637:1:24","nodeType":"YulTypedName","src":"23637:1:24","type":""}]},{"nativeSrc":"23701:33:24","nodeType":"YulVariableDeclaration","src":"23701:33:24","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23720:6:24","nodeType":"YulIdentifier","src":"23720:6:24"},{"kind":"number","nativeSrc":"23728:4:24","nodeType":"YulLiteral","src":"23728:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23716:3:24","nodeType":"YulIdentifier","src":"23716:3:24"},"nativeSrc":"23716:17:24","nodeType":"YulFunctionCall","src":"23716:17:24"}],"functionName":{"name":"mload","nativeSrc":"23710:5:24","nodeType":"YulIdentifier","src":"23710:5:24"},"nativeSrc":"23710:24:24","nodeType":"YulFunctionCall","src":"23710:24:24"},"variables":[{"name":"s","nativeSrc":"23705:1:24","nodeType":"YulTypedName","src":"23705:1:24","type":""}]},{"body":{"nativeSrc":"23810:9:24","nodeType":"YulBlock","src":"23810:9:24","statements":[{"nativeSrc":"23812:5:24","nodeType":"YulBreak","src":"23812:5:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"23769:7:24","nodeType":"YulIdentifier","src":"23769:7:24"},{"name":"end","nativeSrc":"23778:3:24","nodeType":"YulIdentifier","src":"23778:3:24"}],"functionName":{"name":"lt","nativeSrc":"23766:2:24","nodeType":"YulIdentifier","src":"23766:2:24"},"nativeSrc":"23766:16:24","nodeType":"YulFunctionCall","src":"23766:16:24"},{"arguments":[{"name":"from","nativeSrc":"23787:4:24","nodeType":"YulIdentifier","src":"23787:4:24"},{"name":"subjectLength","nativeSrc":"23793:13:24","nodeType":"YulIdentifier","src":"23793:13:24"}],"functionName":{"name":"lt","nativeSrc":"23784:2:24","nodeType":"YulIdentifier","src":"23784:2:24"},"nativeSrc":"23784:23:24","nodeType":"YulFunctionCall","src":"23784:23:24"}],"functionName":{"name":"and","nativeSrc":"23762:3:24","nodeType":"YulIdentifier","src":"23762:3:24"},"nativeSrc":"23762:46:24","nodeType":"YulFunctionCall","src":"23762:46:24"}],"functionName":{"name":"iszero","nativeSrc":"23755:6:24","nodeType":"YulIdentifier","src":"23755:6:24"},"nativeSrc":"23755:54:24","nodeType":"YulFunctionCall","src":"23755:54:24"},"nativeSrc":"23752:67:24","nodeType":"YulIf","src":"23752:67:24"},{"body":{"nativeSrc":"23871:571:24","nodeType":"YulBlock","src":"23871:571:24","statements":[{"body":{"nativeSrc":"23958:440:24","nodeType":"YulBlock","src":"23958:440:24","statements":[{"body":{"nativeSrc":"24026:237:24","nodeType":"YulBlock","src":"24026:237:24","statements":[{"body":{"nativeSrc":"24099:138:24","nodeType":"YulBlock","src":"24099:138:24","statements":[{"nativeSrc":"24133:36:24","nodeType":"YulAssignment","src":"24133:36:24","value":{"arguments":[{"name":"subject","nativeSrc":"24147:7:24","nodeType":"YulIdentifier","src":"24147:7:24"},{"name":"subjectStart","nativeSrc":"24156:12:24","nodeType":"YulIdentifier","src":"24156:12:24"}],"functionName":{"name":"sub","nativeSrc":"24143:3:24","nodeType":"YulIdentifier","src":"24143:3:24"},"nativeSrc":"24143:26:24","nodeType":"YulFunctionCall","src":"24143:26:24"},"variableNames":[{"name":"result","nativeSrc":"24133:6:24","nodeType":"YulIdentifier","src":"24133:6:24"}]},{"nativeSrc":"24202:5:24","nodeType":"YulBreak","src":"24202:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24072:7:24","nodeType":"YulIdentifier","src":"24072:7:24"},{"name":"searchLength","nativeSrc":"24081:12:24","nodeType":"YulIdentifier","src":"24081:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"24062:9:24","nodeType":"YulIdentifier","src":"24062:9:24"},"nativeSrc":"24062:32:24","nodeType":"YulFunctionCall","src":"24062:32:24"},{"name":"h","nativeSrc":"24096:1:24","nodeType":"YulIdentifier","src":"24096:1:24"}],"functionName":{"name":"eq","nativeSrc":"24059:2:24","nodeType":"YulIdentifier","src":"24059:2:24"},"nativeSrc":"24059:39:24","nodeType":"YulFunctionCall","src":"24059:39:24"},"nativeSrc":"24056:181:24","nodeType":"YulIf","src":"24056:181:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23998:1:24","nodeType":"YulIdentifier","src":"23998:1:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24011:7:24","nodeType":"YulIdentifier","src":"24011:7:24"}],"functionName":{"name":"mload","nativeSrc":"24005:5:24","nodeType":"YulIdentifier","src":"24005:5:24"},"nativeSrc":"24005:14:24","nodeType":"YulFunctionCall","src":"24005:14:24"},{"name":"s","nativeSrc":"24021:1:24","nodeType":"YulIdentifier","src":"24021:1:24"}],"functionName":{"name":"xor","nativeSrc":"24001:3:24","nodeType":"YulIdentifier","src":"24001:3:24"},"nativeSrc":"24001:22:24","nodeType":"YulFunctionCall","src":"24001:22:24"}],"functionName":{"name":"shr","nativeSrc":"23994:3:24","nodeType":"YulIdentifier","src":"23994:3:24"},"nativeSrc":"23994:30:24","nodeType":"YulFunctionCall","src":"23994:30:24"}],"functionName":{"name":"iszero","nativeSrc":"23987:6:24","nodeType":"YulIdentifier","src":"23987:6:24"},"nativeSrc":"23987:38:24","nodeType":"YulFunctionCall","src":"23987:38:24"},"nativeSrc":"23984:279:24","nodeType":"YulIf","src":"23984:279:24"},{"nativeSrc":"24288:26:24","nodeType":"YulAssignment","src":"24288:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"24303:7:24","nodeType":"YulIdentifier","src":"24303:7:24"},{"kind":"number","nativeSrc":"24312:1:24","nodeType":"YulLiteral","src":"24312:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24299:3:24","nodeType":"YulIdentifier","src":"24299:3:24"},"nativeSrc":"24299:15:24","nodeType":"YulFunctionCall","src":"24299:15:24"},"variableNames":[{"name":"subject","nativeSrc":"24288:7:24","nodeType":"YulIdentifier","src":"24288:7:24"}]},{"body":{"nativeSrc":"24367:9:24","nodeType":"YulBlock","src":"24367:9:24","statements":[{"nativeSrc":"24369:5:24","nodeType":"YulBreak","src":"24369:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24352:7:24","nodeType":"YulIdentifier","src":"24352:7:24"},{"name":"end","nativeSrc":"24361:3:24","nodeType":"YulIdentifier","src":"24361:3:24"}],"functionName":{"name":"lt","nativeSrc":"24349:2:24","nodeType":"YulIdentifier","src":"24349:2:24"},"nativeSrc":"24349:16:24","nodeType":"YulFunctionCall","src":"24349:16:24"}],"functionName":{"name":"iszero","nativeSrc":"24342:6:24","nodeType":"YulIdentifier","src":"24342:6:24"},"nativeSrc":"24342:24:24","nodeType":"YulFunctionCall","src":"24342:24:24"},"nativeSrc":"24339:37:24","nodeType":"YulIf","src":"24339:37:24"}]},"condition":{"kind":"number","nativeSrc":"23953:1:24","nodeType":"YulLiteral","src":"23953:1:24","type":"","value":"1"},"nativeSrc":"23893:505:24","nodeType":"YulForLoop","post":{"nativeSrc":"23955:2:24","nodeType":"YulBlock","src":"23955:2:24","statements":[]},"pre":{"nativeSrc":"23897:55:24","nodeType":"YulBlock","src":"23897:55:24","statements":[{"nativeSrc":"23899:51:24","nodeType":"YulVariableDeclaration","src":"23899:51:24","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23922:6:24","nodeType":"YulIdentifier","src":"23922:6:24"},{"kind":"number","nativeSrc":"23930:4:24","nodeType":"YulLiteral","src":"23930:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23918:3:24","nodeType":"YulIdentifier","src":"23918:3:24"},"nativeSrc":"23918:17:24","nodeType":"YulFunctionCall","src":"23918:17:24"},{"name":"searchLength","nativeSrc":"23937:12:24","nodeType":"YulIdentifier","src":"23937:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"23908:9:24","nodeType":"YulIdentifier","src":"23908:9:24"},"nativeSrc":"23908:42:24","nodeType":"YulFunctionCall","src":"23908:42:24"},"variables":[{"name":"h","nativeSrc":"23903:1:24","nodeType":"YulTypedName","src":"23903:1:24","type":""}]}]},"src":"23893:505:24"},{"nativeSrc":"24419:5:24","nodeType":"YulBreak","src":"24419:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"23850:12:24","nodeType":"YulIdentifier","src":"23850:12:24"},{"kind":"number","nativeSrc":"23864:4:24","nodeType":"YulLiteral","src":"23864:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"23847:2:24","nodeType":"YulIdentifier","src":"23847:2:24"},"nativeSrc":"23847:22:24","nodeType":"YulFunctionCall","src":"23847:22:24"}],"functionName":{"name":"iszero","nativeSrc":"23840:6:24","nodeType":"YulIdentifier","src":"23840:6:24"},"nativeSrc":"23840:30:24","nodeType":"YulFunctionCall","src":"23840:30:24"},"nativeSrc":"23837:605:24","nodeType":"YulIf","src":"23837:605:24"},{"body":{"nativeSrc":"24471:301:24","nodeType":"YulBlock","src":"24471:301:24","statements":[{"body":{"nativeSrc":"24535:114:24","nodeType":"YulBlock","src":"24535:114:24","statements":[{"nativeSrc":"24561:36:24","nodeType":"YulAssignment","src":"24561:36:24","value":{"arguments":[{"name":"subject","nativeSrc":"24575:7:24","nodeType":"YulIdentifier","src":"24575:7:24"},{"name":"subjectStart","nativeSrc":"24584:12:24","nodeType":"YulIdentifier","src":"24584:12:24"}],"functionName":{"name":"sub","nativeSrc":"24571:3:24","nodeType":"YulIdentifier","src":"24571:3:24"},"nativeSrc":"24571:26:24","nodeType":"YulFunctionCall","src":"24571:26:24"},"variableNames":[{"name":"result","nativeSrc":"24561:6:24","nodeType":"YulIdentifier","src":"24561:6:24"}]},{"nativeSrc":"24622:5:24","nodeType":"YulBreak","src":"24622:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24507:1:24","nodeType":"YulIdentifier","src":"24507:1:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24520:7:24","nodeType":"YulIdentifier","src":"24520:7:24"}],"functionName":{"name":"mload","nativeSrc":"24514:5:24","nodeType":"YulIdentifier","src":"24514:5:24"},"nativeSrc":"24514:14:24","nodeType":"YulFunctionCall","src":"24514:14:24"},{"name":"s","nativeSrc":"24530:1:24","nodeType":"YulIdentifier","src":"24530:1:24"}],"functionName":{"name":"xor","nativeSrc":"24510:3:24","nodeType":"YulIdentifier","src":"24510:3:24"},"nativeSrc":"24510:22:24","nodeType":"YulFunctionCall","src":"24510:22:24"}],"functionName":{"name":"shr","nativeSrc":"24503:3:24","nodeType":"YulIdentifier","src":"24503:3:24"},"nativeSrc":"24503:30:24","nodeType":"YulFunctionCall","src":"24503:30:24"}],"functionName":{"name":"iszero","nativeSrc":"24496:6:24","nodeType":"YulIdentifier","src":"24496:6:24"},"nativeSrc":"24496:38:24","nodeType":"YulFunctionCall","src":"24496:38:24"},"nativeSrc":"24493:156:24","nodeType":"YulIf","src":"24493:156:24"},{"nativeSrc":"24670:26:24","nodeType":"YulAssignment","src":"24670:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"24685:7:24","nodeType":"YulIdentifier","src":"24685:7:24"},{"kind":"number","nativeSrc":"24694:1:24","nodeType":"YulLiteral","src":"24694:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24681:3:24","nodeType":"YulIdentifier","src":"24681:3:24"},"nativeSrc":"24681:15:24","nodeType":"YulFunctionCall","src":"24681:15:24"},"variableNames":[{"name":"subject","nativeSrc":"24670:7:24","nodeType":"YulIdentifier","src":"24670:7:24"}]},{"body":{"nativeSrc":"24745:9:24","nodeType":"YulBlock","src":"24745:9:24","statements":[{"nativeSrc":"24747:5:24","nodeType":"YulBreak","src":"24747:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24730:7:24","nodeType":"YulIdentifier","src":"24730:7:24"},{"name":"end","nativeSrc":"24739:3:24","nodeType":"YulIdentifier","src":"24739:3:24"}],"functionName":{"name":"lt","nativeSrc":"24727:2:24","nodeType":"YulIdentifier","src":"24727:2:24"},"nativeSrc":"24727:16:24","nodeType":"YulFunctionCall","src":"24727:16:24"}],"functionName":{"name":"iszero","nativeSrc":"24720:6:24","nodeType":"YulIdentifier","src":"24720:6:24"},"nativeSrc":"24720:24:24","nodeType":"YulFunctionCall","src":"24720:24:24"},"nativeSrc":"24717:37:24","nodeType":"YulIf","src":"24717:37:24"}]},"condition":{"kind":"number","nativeSrc":"24466:1:24","nodeType":"YulLiteral","src":"24466:1:24","type":"","value":"1"},"nativeSrc":"24459:313:24","nodeType":"YulForLoop","post":{"nativeSrc":"24468:2:24","nodeType":"YulBlock","src":"24468:2:24","statements":[]},"pre":{"nativeSrc":"24463:2:24","nodeType":"YulBlock","src":"24463:2:24","statements":[]},"src":"24459:313:24"},{"nativeSrc":"24789:5:24","nodeType":"YulBreak","src":"24789:5:24"}]},"condition":{"kind":"number","nativeSrc":"23022:1:24","nodeType":"YulLiteral","src":"23022:1:24","type":"","value":"1"},"nativeSrc":"22978:1830:24","nodeType":"YulForLoop","post":{"nativeSrc":"23024:2:24","nodeType":"YulBlock","src":"23024:2:24","statements":[]},"pre":{"nativeSrc":"22982:39:24","nodeType":"YulBlock","src":"22982:39:24","statements":[{"nativeSrc":"22984:35:24","nodeType":"YulVariableDeclaration","src":"22984:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"23011:7:24","nodeType":"YulIdentifier","src":"23011:7:24"}],"functionName":{"name":"mload","nativeSrc":"23005:5:24","nodeType":"YulIdentifier","src":"23005:5:24"},"nativeSrc":"23005:14:24","nodeType":"YulFunctionCall","src":"23005:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"22988:13:24","nodeType":"YulTypedName","src":"22988:13:24","type":""}]}]},"src":"22978:1830:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23105:4:24","valueSize":1},{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23163:4:24","valueSize":1},{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23523:4:24","valueSize":1},{"declaration":10567,"isOffset":false,"isSlot":false,"src":"23787:4:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"23153:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"23240:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"23430:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"24133:6:24","valueSize":1},{"declaration":10570,"isOffset":false,"isSlot":false,"src":"24561:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23061:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23350:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23720:6:24","valueSize":1},{"declaration":10565,"isOffset":false,"isSlot":false,"src":"23922:6:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23011:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23398:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23494:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"23769:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24011:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24072:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24147:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24288:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24303:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24352:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24520:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24575:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24670:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24685:7:24","valueSize":1},{"declaration":10563,"isOffset":false,"isSlot":false,"src":"24730:7:24","valueSize":1}],"id":10572,"nodeType":"InlineAssembly","src":"22955:1863:24"}]},"documentation":{"id":10561,"nodeType":"StructuredDocumentation","src":"22530:224:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10574,"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"22768:7:24","nodeType":"FunctionDefinition","parameters":{"id":10568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10563,"mutability":"mutable","name":"subject","nameLocation":"22790:7:24","nodeType":"VariableDeclaration","scope":10574,"src":"22776:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10562,"name":"string","nodeType":"ElementaryTypeName","src":"22776:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10565,"mutability":"mutable","name":"search","nameLocation":"22813:6:24","nodeType":"VariableDeclaration","scope":10574,"src":"22799:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10564,"name":"string","nodeType":"ElementaryTypeName","src":"22799:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10567,"mutability":"mutable","name":"from","nameLocation":"22829:4:24","nodeType":"VariableDeclaration","scope":10574,"src":"22821:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10566,"name":"uint256","nodeType":"ElementaryTypeName","src":"22821:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22775:59:24"},"returnParameters":{"id":10571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10570,"mutability":"mutable","name":"result","nameLocation":"22890:6:24","nodeType":"VariableDeclaration","scope":10574,"src":"22882:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10569,"name":"uint256","nodeType":"ElementaryTypeName","src":"22882:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22881:16:24"},"scope":10964,"src":"22759:2065:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10592,"nodeType":"Block","src":"25166:53:24","statements":[{"expression":{"id":10590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10584,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10582,"src":"25176:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10586,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"25193:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10587,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10579,"src":"25202:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"30","id":10588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25210:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10585,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[10574,10593],"referencedDeclaration":10574,"src":"25185:7:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":10589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25185:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25176:36:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10591,"nodeType":"ExpressionStatement","src":"25176:36:24"}]},"documentation":{"id":10575,"nodeType":"StructuredDocumentation","src":"24830:202:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10593,"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"25046:7:24","nodeType":"FunctionDefinition","parameters":{"id":10580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10577,"mutability":"mutable","name":"subject","nameLocation":"25068:7:24","nodeType":"VariableDeclaration","scope":10593,"src":"25054:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10576,"name":"string","nodeType":"ElementaryTypeName","src":"25054:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10579,"mutability":"mutable","name":"search","nameLocation":"25091:6:24","nodeType":"VariableDeclaration","scope":10593,"src":"25077:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10578,"name":"string","nodeType":"ElementaryTypeName","src":"25077:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25053:45:24"},"returnParameters":{"id":10583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10582,"mutability":"mutable","name":"result","nameLocation":"25154:6:24","nodeType":"VariableDeclaration","scope":10593,"src":"25146:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10581,"name":"uint256","nodeType":"ElementaryTypeName","src":"25146:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25145:16:24"},"scope":10964,"src":"25037:182:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10606,"nodeType":"Block","src":"25601:1185:24","statements":[{"AST":{"nativeSrc":"25663:1117:24","nodeType":"YulBlock","src":"25663:1117:24","statements":[{"body":{"nativeSrc":"25689:1081:24","nodeType":"YulBlock","src":"25689:1081:24","statements":[{"nativeSrc":"25707:16:24","nodeType":"YulAssignment","src":"25707:16:24","value":{"arguments":[{"kind":"number","nativeSrc":"25721:1:24","nodeType":"YulLiteral","src":"25721:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"25717:3:24","nodeType":"YulIdentifier","src":"25717:3:24"},"nativeSrc":"25717:6:24","nodeType":"YulFunctionCall","src":"25717:6:24"},"variableNames":[{"name":"result","nativeSrc":"25707:6:24","nodeType":"YulIdentifier","src":"25707:6:24"}]},{"nativeSrc":"25770:33:24","nodeType":"YulVariableDeclaration","src":"25770:33:24","value":{"arguments":[{"name":"search","nativeSrc":"25796:6:24","nodeType":"YulIdentifier","src":"25796:6:24"}],"functionName":{"name":"mload","nativeSrc":"25790:5:24","nodeType":"YulIdentifier","src":"25790:5:24"},"nativeSrc":"25790:13:24","nodeType":"YulFunctionCall","src":"25790:13:24"},"variables":[{"name":"searchLength","nativeSrc":"25774:12:24","nodeType":"YulTypedName","src":"25774:12:24","type":""}]},{"body":{"nativeSrc":"25856:9:24","nodeType":"YulBlock","src":"25856:9:24","statements":[{"nativeSrc":"25858:5:24","nodeType":"YulBreak","src":"25858:5:24"}]},"condition":{"arguments":[{"name":"searchLength","nativeSrc":"25826:12:24","nodeType":"YulIdentifier","src":"25826:12:24"},{"arguments":[{"name":"subject","nativeSrc":"25846:7:24","nodeType":"YulIdentifier","src":"25846:7:24"}],"functionName":{"name":"mload","nativeSrc":"25840:5:24","nodeType":"YulIdentifier","src":"25840:5:24"},"nativeSrc":"25840:14:24","nodeType":"YulFunctionCall","src":"25840:14:24"}],"functionName":{"name":"gt","nativeSrc":"25823:2:24","nodeType":"YulIdentifier","src":"25823:2:24"},"nativeSrc":"25823:32:24","nodeType":"YulFunctionCall","src":"25823:32:24"},"nativeSrc":"25820:45:24","nodeType":"YulIf","src":"25820:45:24"},{"nativeSrc":"25882:15:24","nodeType":"YulVariableDeclaration","src":"25882:15:24","value":{"name":"result","nativeSrc":"25891:6:24","nodeType":"YulIdentifier","src":"25891:6:24"},"variables":[{"name":"w","nativeSrc":"25886:1:24","nodeType":"YulTypedName","src":"25886:1:24","type":""}]},{"nativeSrc":"25915:48:24","nodeType":"YulVariableDeclaration","src":"25915:48:24","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"25940:7:24","nodeType":"YulIdentifier","src":"25940:7:24"}],"functionName":{"name":"mload","nativeSrc":"25934:5:24","nodeType":"YulIdentifier","src":"25934:5:24"},"nativeSrc":"25934:14:24","nodeType":"YulFunctionCall","src":"25934:14:24"},{"name":"searchLength","nativeSrc":"25950:12:24","nodeType":"YulIdentifier","src":"25950:12:24"}],"functionName":{"name":"sub","nativeSrc":"25930:3:24","nodeType":"YulIdentifier","src":"25930:3:24"},"nativeSrc":"25930:33:24","nodeType":"YulFunctionCall","src":"25930:33:24"},"variables":[{"name":"fromMax","nativeSrc":"25919:7:24","nodeType":"YulTypedName","src":"25919:7:24","type":""}]},{"body":{"nativeSrc":"26009:19:24","nodeType":"YulBlock","src":"26009:19:24","statements":[{"nativeSrc":"26011:15:24","nodeType":"YulAssignment","src":"26011:15:24","value":{"name":"fromMax","nativeSrc":"26019:7:24","nodeType":"YulIdentifier","src":"26019:7:24"},"variableNames":[{"name":"from","nativeSrc":"26011:4:24","nodeType":"YulIdentifier","src":"26011:4:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fromMax","nativeSrc":"25993:7:24","nodeType":"YulIdentifier","src":"25993:7:24"},{"name":"from","nativeSrc":"26002:4:24","nodeType":"YulIdentifier","src":"26002:4:24"}],"functionName":{"name":"gt","nativeSrc":"25990:2:24","nodeType":"YulIdentifier","src":"25990:2:24"},"nativeSrc":"25990:17:24","nodeType":"YulFunctionCall","src":"25990:17:24"}],"functionName":{"name":"iszero","nativeSrc":"25983:6:24","nodeType":"YulIdentifier","src":"25983:6:24"},"nativeSrc":"25983:25:24","nodeType":"YulFunctionCall","src":"25983:25:24"},"nativeSrc":"25980:48:24","nodeType":"YulIf","src":"25980:48:24"},{"nativeSrc":"26046:37:24","nodeType":"YulVariableDeclaration","src":"26046:37:24","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26065:7:24","nodeType":"YulIdentifier","src":"26065:7:24"},{"kind":"number","nativeSrc":"26074:4:24","nodeType":"YulLiteral","src":"26074:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26061:3:24","nodeType":"YulIdentifier","src":"26061:3:24"},"nativeSrc":"26061:18:24","nodeType":"YulFunctionCall","src":"26061:18:24"},{"name":"w","nativeSrc":"26081:1:24","nodeType":"YulIdentifier","src":"26081:1:24"}],"functionName":{"name":"add","nativeSrc":"26057:3:24","nodeType":"YulIdentifier","src":"26057:3:24"},"nativeSrc":"26057:26:24","nodeType":"YulFunctionCall","src":"26057:26:24"},"variables":[{"name":"end","nativeSrc":"26050:3:24","nodeType":"YulTypedName","src":"26050:3:24","type":""}]},{"nativeSrc":"26100:40:24","nodeType":"YulAssignment","src":"26100:40:24","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26119:7:24","nodeType":"YulIdentifier","src":"26119:7:24"},{"kind":"number","nativeSrc":"26128:4:24","nodeType":"YulLiteral","src":"26128:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26115:3:24","nodeType":"YulIdentifier","src":"26115:3:24"},"nativeSrc":"26115:18:24","nodeType":"YulFunctionCall","src":"26115:18:24"},{"name":"from","nativeSrc":"26135:4:24","nodeType":"YulIdentifier","src":"26135:4:24"}],"functionName":{"name":"add","nativeSrc":"26111:3:24","nodeType":"YulIdentifier","src":"26111:3:24"},"nativeSrc":"26111:29:24","nodeType":"YulFunctionCall","src":"26111:29:24"},"variableNames":[{"name":"subject","nativeSrc":"26100:7:24","nodeType":"YulIdentifier","src":"26100:7:24"}]},{"body":{"nativeSrc":"26185:9:24","nodeType":"YulBlock","src":"26185:9:24","statements":[{"nativeSrc":"26187:5:24","nodeType":"YulBreak","src":"26187:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26170:7:24","nodeType":"YulIdentifier","src":"26170:7:24"},{"name":"end","nativeSrc":"26179:3:24","nodeType":"YulIdentifier","src":"26179:3:24"}],"functionName":{"name":"gt","nativeSrc":"26167:2:24","nodeType":"YulIdentifier","src":"26167:2:24"},"nativeSrc":"26167:16:24","nodeType":"YulFunctionCall","src":"26167:16:24"}],"functionName":{"name":"iszero","nativeSrc":"26160:6:24","nodeType":"YulIdentifier","src":"26160:6:24"},"nativeSrc":"26160:24:24","nodeType":"YulFunctionCall","src":"26160:24:24"},"nativeSrc":"26157:37:24","nodeType":"YulIf","src":"26157:37:24"},{"body":{"nativeSrc":"26411:323:24","nodeType":"YulBlock","src":"26411:323:24","statements":[{"body":{"nativeSrc":"26476:113:24","nodeType":"YulBlock","src":"26476:113:24","statements":[{"nativeSrc":"26502:35:24","nodeType":"YulAssignment","src":"26502:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"26516:7:24","nodeType":"YulIdentifier","src":"26516:7:24"},{"arguments":[{"name":"end","nativeSrc":"26529:3:24","nodeType":"YulIdentifier","src":"26529:3:24"},{"kind":"number","nativeSrc":"26534:1:24","nodeType":"YulLiteral","src":"26534:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26525:3:24","nodeType":"YulIdentifier","src":"26525:3:24"},"nativeSrc":"26525:11:24","nodeType":"YulFunctionCall","src":"26525:11:24"}],"functionName":{"name":"sub","nativeSrc":"26512:3:24","nodeType":"YulIdentifier","src":"26512:3:24"},"nativeSrc":"26512:25:24","nodeType":"YulFunctionCall","src":"26512:25:24"},"variableNames":[{"name":"result","nativeSrc":"26502:6:24","nodeType":"YulIdentifier","src":"26502:6:24"}]},{"nativeSrc":"26562:5:24","nodeType":"YulBreak","src":"26562:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26449:7:24","nodeType":"YulIdentifier","src":"26449:7:24"},{"name":"searchLength","nativeSrc":"26458:12:24","nodeType":"YulIdentifier","src":"26458:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"26439:9:24","nodeType":"YulIdentifier","src":"26439:9:24"},"nativeSrc":"26439:32:24","nodeType":"YulFunctionCall","src":"26439:32:24"},{"name":"h","nativeSrc":"26473:1:24","nodeType":"YulIdentifier","src":"26473:1:24"}],"functionName":{"name":"eq","nativeSrc":"26436:2:24","nodeType":"YulIdentifier","src":"26436:2:24"},"nativeSrc":"26436:39:24","nodeType":"YulFunctionCall","src":"26436:39:24"},"nativeSrc":"26433:156:24","nodeType":"YulIf","src":"26433:156:24"},{"nativeSrc":"26610:26:24","nodeType":"YulAssignment","src":"26610:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"26625:7:24","nodeType":"YulIdentifier","src":"26625:7:24"},{"name":"w","nativeSrc":"26634:1:24","nodeType":"YulIdentifier","src":"26634:1:24"}],"functionName":{"name":"add","nativeSrc":"26621:3:24","nodeType":"YulIdentifier","src":"26621:3:24"},"nativeSrc":"26621:15:24","nodeType":"YulFunctionCall","src":"26621:15:24"},"variableNames":[{"name":"subject","nativeSrc":"26610:7:24","nodeType":"YulIdentifier","src":"26610:7:24"}]},{"body":{"nativeSrc":"26707:9:24","nodeType":"YulBlock","src":"26707:9:24","statements":[{"nativeSrc":"26709:5:24","nodeType":"YulBreak","src":"26709:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26692:7:24","nodeType":"YulIdentifier","src":"26692:7:24"},{"name":"end","nativeSrc":"26701:3:24","nodeType":"YulIdentifier","src":"26701:3:24"}],"functionName":{"name":"gt","nativeSrc":"26689:2:24","nodeType":"YulIdentifier","src":"26689:2:24"},"nativeSrc":"26689:16:24","nodeType":"YulFunctionCall","src":"26689:16:24"}],"functionName":{"name":"iszero","nativeSrc":"26682:6:24","nodeType":"YulIdentifier","src":"26682:6:24"},"nativeSrc":"26682:24:24","nodeType":"YulFunctionCall","src":"26682:24:24"},"nativeSrc":"26679:37:24","nodeType":"YulIf","src":"26679:37:24"}]},"condition":{"kind":"number","nativeSrc":"26406:1:24","nodeType":"YulLiteral","src":"26406:1:24","type":"","value":"1"},"nativeSrc":"26346:388:24","nodeType":"YulForLoop","post":{"nativeSrc":"26408:2:24","nodeType":"YulBlock","src":"26408:2:24","statements":[]},"pre":{"nativeSrc":"26350:55:24","nodeType":"YulBlock","src":"26350:55:24","statements":[{"nativeSrc":"26352:51:24","nodeType":"YulVariableDeclaration","src":"26352:51:24","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"26375:6:24","nodeType":"YulIdentifier","src":"26375:6:24"},{"kind":"number","nativeSrc":"26383:4:24","nodeType":"YulLiteral","src":"26383:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26371:3:24","nodeType":"YulIdentifier","src":"26371:3:24"},"nativeSrc":"26371:17:24","nodeType":"YulFunctionCall","src":"26371:17:24"},{"name":"searchLength","nativeSrc":"26390:12:24","nodeType":"YulIdentifier","src":"26390:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"26361:9:24","nodeType":"YulIdentifier","src":"26361:9:24"},"nativeSrc":"26361:42:24","nodeType":"YulFunctionCall","src":"26361:42:24"},"variables":[{"name":"h","nativeSrc":"26356:1:24","nodeType":"YulTypedName","src":"26356:1:24","type":""}]}]},"src":"26346:388:24"},{"nativeSrc":"26751:5:24","nodeType":"YulBreak","src":"26751:5:24"}]},"condition":{"kind":"number","nativeSrc":"25684:1:24","nodeType":"YulLiteral","src":"25684:1:24","type":"","value":"1"},"nativeSrc":"25677:1093:24","nodeType":"YulForLoop","post":{"nativeSrc":"25686:2:24","nodeType":"YulBlock","src":"25686:2:24","statements":[]},"pre":{"nativeSrc":"25681:2:24","nodeType":"YulBlock","src":"25681:2:24","statements":[]},"src":"25677:1093:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10600,"isOffset":false,"isSlot":false,"src":"26002:4:24","valueSize":1},{"declaration":10600,"isOffset":false,"isSlot":false,"src":"26011:4:24","valueSize":1},{"declaration":10600,"isOffset":false,"isSlot":false,"src":"26135:4:24","valueSize":1},{"declaration":10603,"isOffset":false,"isSlot":false,"src":"25707:6:24","valueSize":1},{"declaration":10603,"isOffset":false,"isSlot":false,"src":"25891:6:24","valueSize":1},{"declaration":10603,"isOffset":false,"isSlot":false,"src":"26502:6:24","valueSize":1},{"declaration":10598,"isOffset":false,"isSlot":false,"src":"25796:6:24","valueSize":1},{"declaration":10598,"isOffset":false,"isSlot":false,"src":"26375:6:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"25846:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"25940:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26065:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26100:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26119:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26170:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26449:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26516:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26610:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26625:7:24","valueSize":1},{"declaration":10596,"isOffset":false,"isSlot":false,"src":"26692:7:24","valueSize":1}],"id":10605,"nodeType":"InlineAssembly","src":"25654:1126:24"}]},"documentation":{"id":10594,"nodeType":"StructuredDocumentation","src":"25225:224:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10607,"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"25463:11:24","nodeType":"FunctionDefinition","parameters":{"id":10601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10596,"mutability":"mutable","name":"subject","nameLocation":"25489:7:24","nodeType":"VariableDeclaration","scope":10607,"src":"25475:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10595,"name":"string","nodeType":"ElementaryTypeName","src":"25475:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10598,"mutability":"mutable","name":"search","nameLocation":"25512:6:24","nodeType":"VariableDeclaration","scope":10607,"src":"25498:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10597,"name":"string","nodeType":"ElementaryTypeName","src":"25498:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10600,"mutability":"mutable","name":"from","nameLocation":"25528:4:24","nodeType":"VariableDeclaration","scope":10607,"src":"25520:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10599,"name":"uint256","nodeType":"ElementaryTypeName","src":"25520:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25474:59:24"},"returnParameters":{"id":10604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10603,"mutability":"mutable","name":"result","nameLocation":"25589:6:24","nodeType":"VariableDeclaration","scope":10607,"src":"25581:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10602,"name":"uint256","nodeType":"ElementaryTypeName","src":"25581:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25580:16:24"},"scope":10964,"src":"25454:1332:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10632,"nodeType":"Block","src":"27132:75:24","statements":[{"expression":{"id":10630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10617,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10615,"src":"27142:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10619,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10610,"src":"27163:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10620,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10612,"src":"27172:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":10626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"27195:2:24","subExpression":{"hexValue":"31","id":10625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27196:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":10624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27188:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10623,"name":"int256","nodeType":"ElementaryTypeName","src":"27188:6:24","typeDescriptions":{}}},"id":10627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27188:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27180:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10621,"name":"uint256","nodeType":"ElementaryTypeName","src":"27180:7:24","typeDescriptions":{}}},"id":10628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27180:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10618,"name":"lastIndexOf","nodeType":"Identifier","overloadedDeclarations":[10607,10633],"referencedDeclaration":10607,"src":"27151:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":10629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27151:49:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27142:58:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10631,"nodeType":"ExpressionStatement","src":"27142:58:24"}]},"documentation":{"id":10608,"nodeType":"StructuredDocumentation","src":"26792:202:24","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10633,"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"27008:11:24","nodeType":"FunctionDefinition","parameters":{"id":10613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10610,"mutability":"mutable","name":"subject","nameLocation":"27034:7:24","nodeType":"VariableDeclaration","scope":10633,"src":"27020:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10609,"name":"string","nodeType":"ElementaryTypeName","src":"27020:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10612,"mutability":"mutable","name":"search","nameLocation":"27057:6:24","nodeType":"VariableDeclaration","scope":10633,"src":"27043:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10611,"name":"string","nodeType":"ElementaryTypeName","src":"27043:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27019:45:24"},"returnParameters":{"id":10616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10615,"mutability":"mutable","name":"result","nameLocation":"27120:6:24","nodeType":"VariableDeclaration","scope":10633,"src":"27112:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10614,"name":"uint256","nodeType":"ElementaryTypeName","src":"27112:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27111:16:24"},"scope":10964,"src":"26999:208:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10650,"nodeType":"Block","src":"27383:61:24","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10644,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"27408:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10645,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10638,"src":"27417:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10643,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[10574,10593],"referencedDeclaration":10593,"src":"27400:7:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory,string memory) pure returns (uint256)"}},"id":10646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27400:24:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10647,"name":"NOT_FOUND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10324,"src":"27428:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27400:37:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10642,"id":10649,"nodeType":"Return","src":"27393:44:24"}]},"documentation":{"id":10634,"nodeType":"StructuredDocumentation","src":"27213:73:24","text":"@dev Returns true if `search` is found in `subject`, false otherwise."},"id":10651,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"27300:8:24","nodeType":"FunctionDefinition","parameters":{"id":10639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10636,"mutability":"mutable","name":"subject","nameLocation":"27323:7:24","nodeType":"VariableDeclaration","scope":10651,"src":"27309:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10635,"name":"string","nodeType":"ElementaryTypeName","src":"27309:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10638,"mutability":"mutable","name":"search","nameLocation":"27346:6:24","nodeType":"VariableDeclaration","scope":10651,"src":"27332:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10637,"name":"string","nodeType":"ElementaryTypeName","src":"27332:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27308:45:24"},"returnParameters":{"id":10642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10651,"src":"27377:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10640,"name":"bool","nodeType":"ElementaryTypeName","src":"27377:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27376:6:24"},"scope":10964,"src":"27291:153:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10662,"nodeType":"Block","src":"27640:499:24","statements":[{"AST":{"nativeSrc":"27702:431:24","nodeType":"YulBlock","src":"27702:431:24","statements":[{"nativeSrc":"27716:33:24","nodeType":"YulVariableDeclaration","src":"27716:33:24","value":{"arguments":[{"name":"search","nativeSrc":"27742:6:24","nodeType":"YulIdentifier","src":"27742:6:24"}],"functionName":{"name":"mload","nativeSrc":"27736:5:24","nodeType":"YulIdentifier","src":"27736:5:24"},"nativeSrc":"27736:13:24","nodeType":"YulFunctionCall","src":"27736:13:24"},"variables":[{"name":"searchLength","nativeSrc":"27720:12:24","nodeType":"YulTypedName","src":"27720:12:24","type":""}]},{"nativeSrc":"27871:252:24","nodeType":"YulAssignment","src":"27871:252:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"27912:12:24","nodeType":"YulIdentifier","src":"27912:12:24"},{"arguments":[{"name":"subject","nativeSrc":"27932:7:24","nodeType":"YulIdentifier","src":"27932:7:24"}],"functionName":{"name":"mload","nativeSrc":"27926:5:24","nodeType":"YulIdentifier","src":"27926:5:24"},"nativeSrc":"27926:14:24","nodeType":"YulFunctionCall","src":"27926:14:24"}],"functionName":{"name":"gt","nativeSrc":"27909:2:24","nodeType":"YulIdentifier","src":"27909:2:24"},"nativeSrc":"27909:32:24","nodeType":"YulFunctionCall","src":"27909:32:24"}],"functionName":{"name":"iszero","nativeSrc":"27902:6:24","nodeType":"YulIdentifier","src":"27902:6:24"},"nativeSrc":"27902:40:24","nodeType":"YulFunctionCall","src":"27902:40:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"27998:7:24","nodeType":"YulIdentifier","src":"27998:7:24"},{"kind":"number","nativeSrc":"28007:4:24","nodeType":"YulLiteral","src":"28007:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27994:3:24","nodeType":"YulIdentifier","src":"27994:3:24"},"nativeSrc":"27994:18:24","nodeType":"YulFunctionCall","src":"27994:18:24"},{"name":"searchLength","nativeSrc":"28014:12:24","nodeType":"YulIdentifier","src":"28014:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"27984:9:24","nodeType":"YulIdentifier","src":"27984:9:24"},"nativeSrc":"27984:43:24","nodeType":"YulFunctionCall","src":"27984:43:24"},{"arguments":[{"arguments":[{"name":"search","nativeSrc":"28063:6:24","nodeType":"YulIdentifier","src":"28063:6:24"},{"kind":"number","nativeSrc":"28071:4:24","nodeType":"YulLiteral","src":"28071:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28059:3:24","nodeType":"YulIdentifier","src":"28059:3:24"},"nativeSrc":"28059:17:24","nodeType":"YulFunctionCall","src":"28059:17:24"},{"name":"searchLength","nativeSrc":"28078:12:24","nodeType":"YulIdentifier","src":"28078:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"28049:9:24","nodeType":"YulIdentifier","src":"28049:9:24"},"nativeSrc":"28049:42:24","nodeType":"YulFunctionCall","src":"28049:42:24"}],"functionName":{"name":"eq","nativeSrc":"27960:2:24","nodeType":"YulIdentifier","src":"27960:2:24"},"nativeSrc":"27960:149:24","nodeType":"YulFunctionCall","src":"27960:149:24"}],"functionName":{"name":"and","nativeSrc":"27881:3:24","nodeType":"YulIdentifier","src":"27881:3:24"},"nativeSrc":"27881:242:24","nodeType":"YulFunctionCall","src":"27881:242:24"},"variableNames":[{"name":"result","nativeSrc":"27871:6:24","nodeType":"YulIdentifier","src":"27871:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10659,"isOffset":false,"isSlot":false,"src":"27871:6:24","valueSize":1},{"declaration":10656,"isOffset":false,"isSlot":false,"src":"27742:6:24","valueSize":1},{"declaration":10656,"isOffset":false,"isSlot":false,"src":"28063:6:24","valueSize":1},{"declaration":10654,"isOffset":false,"isSlot":false,"src":"27932:7:24","valueSize":1},{"declaration":10654,"isOffset":false,"isSlot":false,"src":"27998:7:24","valueSize":1}],"id":10661,"nodeType":"InlineAssembly","src":"27693:440:24"}]},"documentation":{"id":10652,"nodeType":"StructuredDocumentation","src":"27450:56:24","text":"@dev Returns whether `subject` starts with `search`."},"id":10663,"implemented":true,"kind":"function","modifiers":[],"name":"startsWith","nameLocation":"27520:10:24","nodeType":"FunctionDefinition","parameters":{"id":10657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10654,"mutability":"mutable","name":"subject","nameLocation":"27545:7:24","nodeType":"VariableDeclaration","scope":10663,"src":"27531:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10653,"name":"string","nodeType":"ElementaryTypeName","src":"27531:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10656,"mutability":"mutable","name":"search","nameLocation":"27568:6:24","nodeType":"VariableDeclaration","scope":10663,"src":"27554:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10655,"name":"string","nodeType":"ElementaryTypeName","src":"27554:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27530:45:24"},"returnParameters":{"id":10660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10659,"mutability":"mutable","name":"result","nameLocation":"27628:6:24","nodeType":"VariableDeclaration","scope":10663,"src":"27623:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10658,"name":"bool","nodeType":"ElementaryTypeName","src":"27623:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27622:13:24"},"scope":10964,"src":"27511:628:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10674,"nodeType":"Block","src":"28331:862:24","statements":[{"AST":{"nativeSrc":"28393:794:24","nodeType":"YulBlock","src":"28393:794:24","statements":[{"nativeSrc":"28407:33:24","nodeType":"YulVariableDeclaration","src":"28407:33:24","value":{"arguments":[{"name":"search","nativeSrc":"28433:6:24","nodeType":"YulIdentifier","src":"28433:6:24"}],"functionName":{"name":"mload","nativeSrc":"28427:5:24","nodeType":"YulIdentifier","src":"28427:5:24"},"nativeSrc":"28427:13:24","nodeType":"YulFunctionCall","src":"28427:13:24"},"variables":[{"name":"searchLength","nativeSrc":"28411:12:24","nodeType":"YulTypedName","src":"28411:12:24","type":""}]},{"nativeSrc":"28453:35:24","nodeType":"YulVariableDeclaration","src":"28453:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"28480:7:24","nodeType":"YulIdentifier","src":"28480:7:24"}],"functionName":{"name":"mload","nativeSrc":"28474:5:24","nodeType":"YulIdentifier","src":"28474:5:24"},"nativeSrc":"28474:14:24","nodeType":"YulFunctionCall","src":"28474:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"28457:13:24","nodeType":"YulTypedName","src":"28457:13:24","type":""}]},{"nativeSrc":"28563:58:24","nodeType":"YulVariableDeclaration","src":"28563:58:24","value":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"28592:12:24","nodeType":"YulIdentifier","src":"28592:12:24"},{"name":"subjectLength","nativeSrc":"28606:13:24","nodeType":"YulIdentifier","src":"28606:13:24"}],"functionName":{"name":"gt","nativeSrc":"28589:2:24","nodeType":"YulIdentifier","src":"28589:2:24"},"nativeSrc":"28589:31:24","nodeType":"YulFunctionCall","src":"28589:31:24"}],"functionName":{"name":"iszero","nativeSrc":"28582:6:24","nodeType":"YulIdentifier","src":"28582:6:24"},"nativeSrc":"28582:39:24","nodeType":"YulFunctionCall","src":"28582:39:24"},"variables":[{"name":"withinRange","nativeSrc":"28567:11:24","nodeType":"YulTypedName","src":"28567:11:24","type":""}]},{"nativeSrc":"28743:434:24","nodeType":"YulAssignment","src":"28743:434:24","value":{"arguments":[{"name":"withinRange","nativeSrc":"28774:11:24","nodeType":"YulIdentifier","src":"28774:11:24"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"28954:7:24","nodeType":"YulIdentifier","src":"28954:7:24"},{"kind":"number","nativeSrc":"28963:4:24","nodeType":"YulLiteral","src":"28963:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28950:3:24","nodeType":"YulIdentifier","src":"28950:3:24"},"nativeSrc":"28950:18:24","nodeType":"YulFunctionCall","src":"28950:18:24"},{"arguments":[{"name":"withinRange","nativeSrc":"28974:11:24","nodeType":"YulIdentifier","src":"28974:11:24"},{"arguments":[{"name":"subjectLength","nativeSrc":"28991:13:24","nodeType":"YulIdentifier","src":"28991:13:24"},{"name":"searchLength","nativeSrc":"29006:12:24","nodeType":"YulIdentifier","src":"29006:12:24"}],"functionName":{"name":"sub","nativeSrc":"28987:3:24","nodeType":"YulIdentifier","src":"28987:3:24"},"nativeSrc":"28987:32:24","nodeType":"YulFunctionCall","src":"28987:32:24"}],"functionName":{"name":"mul","nativeSrc":"28970:3:24","nodeType":"YulIdentifier","src":"28970:3:24"},"nativeSrc":"28970:50:24","nodeType":"YulFunctionCall","src":"28970:50:24"}],"functionName":{"name":"add","nativeSrc":"28946:3:24","nodeType":"YulIdentifier","src":"28946:3:24"},"nativeSrc":"28946:75:24","nodeType":"YulFunctionCall","src":"28946:75:24"},{"name":"searchLength","nativeSrc":"29047:12:24","nodeType":"YulIdentifier","src":"29047:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"28827:9:24","nodeType":"YulIdentifier","src":"28827:9:24"},"nativeSrc":"28827:254:24","nodeType":"YulFunctionCall","src":"28827:254:24"},{"arguments":[{"arguments":[{"name":"search","nativeSrc":"29117:6:24","nodeType":"YulIdentifier","src":"29117:6:24"},{"kind":"number","nativeSrc":"29125:4:24","nodeType":"YulLiteral","src":"29125:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29113:3:24","nodeType":"YulIdentifier","src":"29113:3:24"},"nativeSrc":"29113:17:24","nodeType":"YulFunctionCall","src":"29113:17:24"},{"name":"searchLength","nativeSrc":"29132:12:24","nodeType":"YulIdentifier","src":"29132:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"29103:9:24","nodeType":"YulIdentifier","src":"29103:9:24"},"nativeSrc":"29103:42:24","nodeType":"YulFunctionCall","src":"29103:42:24"}],"functionName":{"name":"eq","nativeSrc":"28803:2:24","nodeType":"YulIdentifier","src":"28803:2:24"},"nativeSrc":"28803:360:24","nodeType":"YulFunctionCall","src":"28803:360:24"}],"functionName":{"name":"and","nativeSrc":"28753:3:24","nodeType":"YulIdentifier","src":"28753:3:24"},"nativeSrc":"28753:424:24","nodeType":"YulFunctionCall","src":"28753:424:24"},"variableNames":[{"name":"result","nativeSrc":"28743:6:24","nodeType":"YulIdentifier","src":"28743:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10671,"isOffset":false,"isSlot":false,"src":"28743:6:24","valueSize":1},{"declaration":10668,"isOffset":false,"isSlot":false,"src":"28433:6:24","valueSize":1},{"declaration":10668,"isOffset":false,"isSlot":false,"src":"29117:6:24","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"28480:7:24","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"28954:7:24","valueSize":1}],"id":10673,"nodeType":"InlineAssembly","src":"28384:803:24"}]},"documentation":{"id":10664,"nodeType":"StructuredDocumentation","src":"28145:54:24","text":"@dev Returns whether `subject` ends with `search`."},"id":10675,"implemented":true,"kind":"function","modifiers":[],"name":"endsWith","nameLocation":"28213:8:24","nodeType":"FunctionDefinition","parameters":{"id":10669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10666,"mutability":"mutable","name":"subject","nameLocation":"28236:7:24","nodeType":"VariableDeclaration","scope":10675,"src":"28222:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10665,"name":"string","nodeType":"ElementaryTypeName","src":"28222:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10668,"mutability":"mutable","name":"search","nameLocation":"28259:6:24","nodeType":"VariableDeclaration","scope":10675,"src":"28245:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10667,"name":"string","nodeType":"ElementaryTypeName","src":"28245:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28221:45:24"},"returnParameters":{"id":10672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10671,"mutability":"mutable","name":"result","nameLocation":"28319:6:24","nodeType":"VariableDeclaration","scope":10675,"src":"28314:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10670,"name":"bool","nodeType":"ElementaryTypeName","src":"28314:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28313:13:24"},"scope":10964,"src":"28204:989:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10686,"nodeType":"Block","src":"29375:1155:24","statements":[{"AST":{"nativeSrc":"29437:1087:24","nodeType":"YulBlock","src":"29437:1087:24","statements":[{"nativeSrc":"29451:35:24","nodeType":"YulVariableDeclaration","src":"29451:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"29478:7:24","nodeType":"YulIdentifier","src":"29478:7:24"}],"functionName":{"name":"mload","nativeSrc":"29472:5:24","nodeType":"YulIdentifier","src":"29472:5:24"},"nativeSrc":"29472:14:24","nodeType":"YulFunctionCall","src":"29472:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"29455:13:24","nodeType":"YulTypedName","src":"29455:13:24","type":""}]},{"body":{"nativeSrc":"29551:963:24","nodeType":"YulBlock","src":"29551:963:24","statements":[{"nativeSrc":"29569:29:24","nodeType":"YulAssignment","src":"29569:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"29584:7:24","nodeType":"YulIdentifier","src":"29584:7:24"},{"kind":"number","nativeSrc":"29593:4:24","nodeType":"YulLiteral","src":"29593:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29580:3:24","nodeType":"YulIdentifier","src":"29580:3:24"},"nativeSrc":"29580:18:24","nodeType":"YulFunctionCall","src":"29580:18:24"},"variableNames":[{"name":"subject","nativeSrc":"29569:7:24","nodeType":"YulIdentifier","src":"29569:7:24"}]},{"nativeSrc":"29615:21:24","nodeType":"YulAssignment","src":"29615:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"29631:4:24","nodeType":"YulLiteral","src":"29631:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"29625:5:24","nodeType":"YulIdentifier","src":"29625:5:24"},"nativeSrc":"29625:11:24","nodeType":"YulFunctionCall","src":"29625:11:24"},"variableNames":[{"name":"result","nativeSrc":"29615:6:24","nodeType":"YulIdentifier","src":"29615:6:24"}]},{"nativeSrc":"29653:31:24","nodeType":"YulVariableDeclaration","src":"29653:31:24","value":{"arguments":[{"name":"result","nativeSrc":"29671:6:24","nodeType":"YulIdentifier","src":"29671:6:24"},{"kind":"number","nativeSrc":"29679:4:24","nodeType":"YulLiteral","src":"29679:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29667:3:24","nodeType":"YulIdentifier","src":"29667:3:24"},"nativeSrc":"29667:17:24","nodeType":"YulFunctionCall","src":"29667:17:24"},"variables":[{"name":"output","nativeSrc":"29657:6:24","nodeType":"YulTypedName","src":"29657:6:24","type":""}]},{"body":{"nativeSrc":"29713:475:24","nodeType":"YulBlock","src":"29713:475:24","statements":[{"body":{"nativeSrc":"29821:202:24","nodeType":"YulBlock","src":"29821:202:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nativeSrc":"29858:6:24","nodeType":"YulIdentifier","src":"29858:6:24"},{"name":"o","nativeSrc":"29866:1:24","nodeType":"YulIdentifier","src":"29866:1:24"}],"functionName":{"name":"add","nativeSrc":"29854:3:24","nodeType":"YulIdentifier","src":"29854:3:24"},"nativeSrc":"29854:14:24","nodeType":"YulFunctionCall","src":"29854:14:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"29880:7:24","nodeType":"YulIdentifier","src":"29880:7:24"},{"name":"o","nativeSrc":"29889:1:24","nodeType":"YulIdentifier","src":"29889:1:24"}],"functionName":{"name":"add","nativeSrc":"29876:3:24","nodeType":"YulIdentifier","src":"29876:3:24"},"nativeSrc":"29876:15:24","nodeType":"YulFunctionCall","src":"29876:15:24"}],"functionName":{"name":"mload","nativeSrc":"29870:5:24","nodeType":"YulIdentifier","src":"29870:5:24"},"nativeSrc":"29870:22:24","nodeType":"YulFunctionCall","src":"29870:22:24"}],"functionName":{"name":"mstore","nativeSrc":"29847:6:24","nodeType":"YulIdentifier","src":"29847:6:24"},"nativeSrc":"29847:46:24","nodeType":"YulFunctionCall","src":"29847:46:24"},"nativeSrc":"29847:46:24","nodeType":"YulExpressionStatement","src":"29847:46:24"},{"nativeSrc":"29918:17:24","nodeType":"YulAssignment","src":"29918:17:24","value":{"arguments":[{"name":"o","nativeSrc":"29927:1:24","nodeType":"YulIdentifier","src":"29927:1:24"},{"kind":"number","nativeSrc":"29930:4:24","nodeType":"YulLiteral","src":"29930:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29923:3:24","nodeType":"YulIdentifier","src":"29923:3:24"},"nativeSrc":"29923:12:24","nodeType":"YulFunctionCall","src":"29923:12:24"},"variableNames":[{"name":"o","nativeSrc":"29918:1:24","nodeType":"YulIdentifier","src":"29918:1:24"}]},{"body":{"nativeSrc":"29992:9:24","nodeType":"YulBlock","src":"29992:9:24","statements":[{"nativeSrc":"29994:5:24","nodeType":"YulBreak","src":"29994:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"29973:1:24","nodeType":"YulIdentifier","src":"29973:1:24"},{"name":"subjectLength","nativeSrc":"29976:13:24","nodeType":"YulIdentifier","src":"29976:13:24"}],"functionName":{"name":"lt","nativeSrc":"29970:2:24","nodeType":"YulIdentifier","src":"29970:2:24"},"nativeSrc":"29970:20:24","nodeType":"YulFunctionCall","src":"29970:20:24"}],"functionName":{"name":"iszero","nativeSrc":"29963:6:24","nodeType":"YulIdentifier","src":"29963:6:24"},"nativeSrc":"29963:28:24","nodeType":"YulFunctionCall","src":"29963:28:24"},"nativeSrc":"29960:41:24","nodeType":"YulIf","src":"29960:41:24"}]},"condition":{"kind":"number","nativeSrc":"29816:1:24","nodeType":"YulLiteral","src":"29816:1:24","type":"","value":"1"},"nativeSrc":"29797:226:24","nodeType":"YulForLoop","post":{"nativeSrc":"29818:2:24","nodeType":"YulBlock","src":"29818:2:24","statements":[]},"pre":{"nativeSrc":"29801:14:24","nodeType":"YulBlock","src":"29801:14:24","statements":[{"nativeSrc":"29803:10:24","nodeType":"YulVariableDeclaration","src":"29803:10:24","value":{"kind":"number","nativeSrc":"29812:1:24","nodeType":"YulLiteral","src":"29812:1:24","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"29807:1:24","nodeType":"YulTypedName","src":"29807:1:24","type":""}]}]},"src":"29797:226:24"},{"nativeSrc":"30044:36:24","nodeType":"YulAssignment","src":"30044:36:24","value":{"arguments":[{"name":"output","nativeSrc":"30058:6:24","nodeType":"YulIdentifier","src":"30058:6:24"},{"name":"subjectLength","nativeSrc":"30066:13:24","nodeType":"YulIdentifier","src":"30066:13:24"}],"functionName":{"name":"add","nativeSrc":"30054:3:24","nodeType":"YulIdentifier","src":"30054:3:24"},"nativeSrc":"30054:26:24","nodeType":"YulFunctionCall","src":"30054:26:24"},"variableNames":[{"name":"output","nativeSrc":"30044:6:24","nodeType":"YulIdentifier","src":"30044:6:24"}]},{"nativeSrc":"30101:22:24","nodeType":"YulAssignment","src":"30101:22:24","value":{"arguments":[{"name":"times","nativeSrc":"30114:5:24","nodeType":"YulIdentifier","src":"30114:5:24"},{"kind":"number","nativeSrc":"30121:1:24","nodeType":"YulLiteral","src":"30121:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30110:3:24","nodeType":"YulIdentifier","src":"30110:3:24"},"nativeSrc":"30110:13:24","nodeType":"YulFunctionCall","src":"30110:13:24"},"variableNames":[{"name":"times","nativeSrc":"30101:5:24","nodeType":"YulIdentifier","src":"30101:5:24"}]},{"body":{"nativeSrc":"30161:9:24","nodeType":"YulBlock","src":"30161:9:24","statements":[{"nativeSrc":"30163:5:24","nodeType":"YulBreak","src":"30163:5:24"}]},"condition":{"arguments":[{"name":"times","nativeSrc":"30154:5:24","nodeType":"YulIdentifier","src":"30154:5:24"}],"functionName":{"name":"iszero","nativeSrc":"30147:6:24","nodeType":"YulIdentifier","src":"30147:6:24"},"nativeSrc":"30147:13:24","nodeType":"YulFunctionCall","src":"30147:13:24"},"nativeSrc":"30144:26:24","nodeType":"YulIf","src":"30144:26:24"}]},"condition":{"kind":"number","nativeSrc":"29708:1:24","nodeType":"YulLiteral","src":"29708:1:24","type":"","value":"1"},"nativeSrc":"29701:487:24","nodeType":"YulForLoop","post":{"nativeSrc":"29710:2:24","nodeType":"YulBlock","src":"29710:2:24","statements":[]},"pre":{"nativeSrc":"29705:2:24","nodeType":"YulBlock","src":"29705:2:24","statements":[]},"src":"29701:487:24"},{"expression":{"arguments":[{"name":"output","nativeSrc":"30212:6:24","nodeType":"YulIdentifier","src":"30212:6:24"},{"kind":"number","nativeSrc":"30220:1:24","nodeType":"YulLiteral","src":"30220:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"30205:6:24","nodeType":"YulIdentifier","src":"30205:6:24"},"nativeSrc":"30205:17:24","nodeType":"YulFunctionCall","src":"30205:17:24"},"nativeSrc":"30205:17:24","nodeType":"YulExpressionStatement","src":"30205:17:24"},{"nativeSrc":"30277:50:24","nodeType":"YulVariableDeclaration","src":"30277:50:24","value":{"arguments":[{"name":"output","nativeSrc":"30301:6:24","nodeType":"YulIdentifier","src":"30301:6:24"},{"arguments":[{"name":"result","nativeSrc":"30313:6:24","nodeType":"YulIdentifier","src":"30313:6:24"},{"kind":"number","nativeSrc":"30321:4:24","nodeType":"YulLiteral","src":"30321:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30309:3:24","nodeType":"YulIdentifier","src":"30309:3:24"},"nativeSrc":"30309:17:24","nodeType":"YulFunctionCall","src":"30309:17:24"}],"functionName":{"name":"sub","nativeSrc":"30297:3:24","nodeType":"YulIdentifier","src":"30297:3:24"},"nativeSrc":"30297:30:24","nodeType":"YulFunctionCall","src":"30297:30:24"},"variables":[{"name":"resultLength","nativeSrc":"30281:12:24","nodeType":"YulTypedName","src":"30281:12:24","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"30351:6:24","nodeType":"YulIdentifier","src":"30351:6:24"},{"name":"resultLength","nativeSrc":"30359:12:24","nodeType":"YulIdentifier","src":"30359:12:24"}],"functionName":{"name":"mstore","nativeSrc":"30344:6:24","nodeType":"YulIdentifier","src":"30344:6:24"},"nativeSrc":"30344:28:24","nodeType":"YulFunctionCall","src":"30344:28:24"},"nativeSrc":"30344:28:24","nodeType":"YulExpressionStatement","src":"30344:28:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30457:4:24","nodeType":"YulLiteral","src":"30457:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"30467:6:24","nodeType":"YulIdentifier","src":"30467:6:24"},{"arguments":[{"name":"resultLength","nativeSrc":"30479:12:24","nodeType":"YulIdentifier","src":"30479:12:24"},{"kind":"number","nativeSrc":"30493:4:24","nodeType":"YulLiteral","src":"30493:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30475:3:24","nodeType":"YulIdentifier","src":"30475:3:24"},"nativeSrc":"30475:23:24","nodeType":"YulFunctionCall","src":"30475:23:24"}],"functionName":{"name":"add","nativeSrc":"30463:3:24","nodeType":"YulIdentifier","src":"30463:3:24"},"nativeSrc":"30463:36:24","nodeType":"YulFunctionCall","src":"30463:36:24"}],"functionName":{"name":"mstore","nativeSrc":"30450:6:24","nodeType":"YulIdentifier","src":"30450:6:24"},"nativeSrc":"30450:50:24","nodeType":"YulFunctionCall","src":"30450:50:24"},"nativeSrc":"30450:50:24","nodeType":"YulExpressionStatement","src":"30450:50:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"times","nativeSrc":"29519:5:24","nodeType":"YulIdentifier","src":"29519:5:24"}],"functionName":{"name":"iszero","nativeSrc":"29512:6:24","nodeType":"YulIdentifier","src":"29512:6:24"},"nativeSrc":"29512:13:24","nodeType":"YulFunctionCall","src":"29512:13:24"},{"arguments":[{"name":"subjectLength","nativeSrc":"29534:13:24","nodeType":"YulIdentifier","src":"29534:13:24"}],"functionName":{"name":"iszero","nativeSrc":"29527:6:24","nodeType":"YulIdentifier","src":"29527:6:24"},"nativeSrc":"29527:21:24","nodeType":"YulFunctionCall","src":"29527:21:24"}],"functionName":{"name":"or","nativeSrc":"29509:2:24","nodeType":"YulIdentifier","src":"29509:2:24"},"nativeSrc":"29509:40:24","nodeType":"YulFunctionCall","src":"29509:40:24"}],"functionName":{"name":"iszero","nativeSrc":"29502:6:24","nodeType":"YulIdentifier","src":"29502:6:24"},"nativeSrc":"29502:48:24","nodeType":"YulFunctionCall","src":"29502:48:24"},"nativeSrc":"29499:1015:24","nodeType":"YulIf","src":"29499:1015:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10683,"isOffset":false,"isSlot":false,"src":"29615:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"29671:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"30313:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"30351:6:24","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"30467:6:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29478:7:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29569:7:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29584:7:24","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"29880:7:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"29519:5:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30101:5:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30114:5:24","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30154:5:24","valueSize":1}],"id":10685,"nodeType":"InlineAssembly","src":"29428:1096:24"}]},"documentation":{"id":10676,"nodeType":"StructuredDocumentation","src":"29199:44:24","text":"@dev Returns `subject` repeated `times`."},"id":10687,"implemented":true,"kind":"function","modifiers":[],"name":"repeat","nameLocation":"29257:6:24","nodeType":"FunctionDefinition","parameters":{"id":10681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10678,"mutability":"mutable","name":"subject","nameLocation":"29278:7:24","nodeType":"VariableDeclaration","scope":10687,"src":"29264:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10677,"name":"string","nodeType":"ElementaryTypeName","src":"29264:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10680,"mutability":"mutable","name":"times","nameLocation":"29295:5:24","nodeType":"VariableDeclaration","scope":10687,"src":"29287:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10679,"name":"uint256","nodeType":"ElementaryTypeName","src":"29287:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29263:38:24"},"returnParameters":{"id":10684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10683,"mutability":"mutable","name":"result","nameLocation":"29363:6:24","nodeType":"VariableDeclaration","scope":10687,"src":"29349:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10682,"name":"string","nodeType":"ElementaryTypeName","src":"29349:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29348:22:24"},"scope":10964,"src":"29248:1282:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10700,"nodeType":"Block","src":"30802:1168:24","statements":[{"AST":{"nativeSrc":"30864:1100:24","nodeType":"YulBlock","src":"30864:1100:24","statements":[{"nativeSrc":"30878:35:24","nodeType":"YulVariableDeclaration","src":"30878:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"30905:7:24","nodeType":"YulIdentifier","src":"30905:7:24"}],"functionName":{"name":"mload","nativeSrc":"30899:5:24","nodeType":"YulIdentifier","src":"30899:5:24"},"nativeSrc":"30899:14:24","nodeType":"YulFunctionCall","src":"30899:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"30882:13:24","nodeType":"YulTypedName","src":"30882:13:24","type":""}]},{"body":{"nativeSrc":"30960:24:24","nodeType":"YulBlock","src":"30960:24:24","statements":[{"nativeSrc":"30962:20:24","nodeType":"YulAssignment","src":"30962:20:24","value":{"name":"subjectLength","nativeSrc":"30969:13:24","nodeType":"YulIdentifier","src":"30969:13:24"},"variableNames":[{"name":"end","nativeSrc":"30962:3:24","nodeType":"YulIdentifier","src":"30962:3:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nativeSrc":"30939:13:24","nodeType":"YulIdentifier","src":"30939:13:24"},{"name":"end","nativeSrc":"30954:3:24","nodeType":"YulIdentifier","src":"30954:3:24"}],"functionName":{"name":"gt","nativeSrc":"30936:2:24","nodeType":"YulIdentifier","src":"30936:2:24"},"nativeSrc":"30936:22:24","nodeType":"YulFunctionCall","src":"30936:22:24"}],"functionName":{"name":"iszero","nativeSrc":"30929:6:24","nodeType":"YulIdentifier","src":"30929:6:24"},"nativeSrc":"30929:30:24","nodeType":"YulFunctionCall","src":"30929:30:24"},"nativeSrc":"30926:58:24","nodeType":"YulIf","src":"30926:58:24"},{"body":{"nativeSrc":"31033:26:24","nodeType":"YulBlock","src":"31033:26:24","statements":[{"nativeSrc":"31035:22:24","nodeType":"YulAssignment","src":"31035:22:24","value":{"name":"subjectLength","nativeSrc":"31044:13:24","nodeType":"YulIdentifier","src":"31044:13:24"},"variableNames":[{"name":"start","nativeSrc":"31035:5:24","nodeType":"YulIdentifier","src":"31035:5:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nativeSrc":"31010:13:24","nodeType":"YulIdentifier","src":"31010:13:24"},{"name":"start","nativeSrc":"31025:5:24","nodeType":"YulIdentifier","src":"31025:5:24"}],"functionName":{"name":"gt","nativeSrc":"31007:2:24","nodeType":"YulIdentifier","src":"31007:2:24"},"nativeSrc":"31007:24:24","nodeType":"YulFunctionCall","src":"31007:24:24"}],"functionName":{"name":"iszero","nativeSrc":"31000:6:24","nodeType":"YulIdentifier","src":"31000:6:24"},"nativeSrc":"31000:32:24","nodeType":"YulFunctionCall","src":"31000:32:24"},"nativeSrc":"30997:62:24","nodeType":"YulIf","src":"30997:62:24"},{"body":{"nativeSrc":"31090:864:24","nodeType":"YulBlock","src":"31090:864:24","statements":[{"nativeSrc":"31108:21:24","nodeType":"YulAssignment","src":"31108:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"31124:4:24","nodeType":"YulLiteral","src":"31124:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"31118:5:24","nodeType":"YulIdentifier","src":"31118:5:24"},"nativeSrc":"31118:11:24","nodeType":"YulFunctionCall","src":"31118:11:24"},"variableNames":[{"name":"result","nativeSrc":"31108:6:24","nodeType":"YulIdentifier","src":"31108:6:24"}]},{"nativeSrc":"31146:35:24","nodeType":"YulVariableDeclaration","src":"31146:35:24","value":{"arguments":[{"name":"end","nativeSrc":"31170:3:24","nodeType":"YulIdentifier","src":"31170:3:24"},{"name":"start","nativeSrc":"31175:5:24","nodeType":"YulIdentifier","src":"31175:5:24"}],"functionName":{"name":"sub","nativeSrc":"31166:3:24","nodeType":"YulIdentifier","src":"31166:3:24"},"nativeSrc":"31166:15:24","nodeType":"YulFunctionCall","src":"31166:15:24"},"variables":[{"name":"resultLength","nativeSrc":"31150:12:24","nodeType":"YulTypedName","src":"31150:12:24","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"31205:6:24","nodeType":"YulIdentifier","src":"31205:6:24"},{"name":"resultLength","nativeSrc":"31213:12:24","nodeType":"YulIdentifier","src":"31213:12:24"}],"functionName":{"name":"mstore","nativeSrc":"31198:6:24","nodeType":"YulIdentifier","src":"31198:6:24"},"nativeSrc":"31198:28:24","nodeType":"YulFunctionCall","src":"31198:28:24"},"nativeSrc":"31198:28:24","nodeType":"YulExpressionStatement","src":"31198:28:24"},{"nativeSrc":"31243:30:24","nodeType":"YulAssignment","src":"31243:30:24","value":{"arguments":[{"name":"subject","nativeSrc":"31258:7:24","nodeType":"YulIdentifier","src":"31258:7:24"},{"name":"start","nativeSrc":"31267:5:24","nodeType":"YulIdentifier","src":"31267:5:24"}],"functionName":{"name":"add","nativeSrc":"31254:3:24","nodeType":"YulIdentifier","src":"31254:3:24"},"nativeSrc":"31254:19:24","nodeType":"YulFunctionCall","src":"31254:19:24"},"variableNames":[{"name":"subject","nativeSrc":"31243:7:24","nodeType":"YulIdentifier","src":"31243:7:24"}]},{"nativeSrc":"31290:18:24","nodeType":"YulVariableDeclaration","src":"31290:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"31303:4:24","nodeType":"YulLiteral","src":"31303:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"31299:3:24","nodeType":"YulIdentifier","src":"31299:3:24"},"nativeSrc":"31299:9:24","nodeType":"YulFunctionCall","src":"31299:9:24"},"variables":[{"name":"w","nativeSrc":"31294:1:24","nodeType":"YulTypedName","src":"31294:1:24","type":""}]},{"body":{"nativeSrc":"31448:183:24","nodeType":"YulBlock","src":"31448:183:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"31481:6:24","nodeType":"YulIdentifier","src":"31481:6:24"},{"name":"o","nativeSrc":"31489:1:24","nodeType":"YulIdentifier","src":"31489:1:24"}],"functionName":{"name":"add","nativeSrc":"31477:3:24","nodeType":"YulIdentifier","src":"31477:3:24"},"nativeSrc":"31477:14:24","nodeType":"YulFunctionCall","src":"31477:14:24"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"31503:7:24","nodeType":"YulIdentifier","src":"31503:7:24"},{"name":"o","nativeSrc":"31512:1:24","nodeType":"YulIdentifier","src":"31512:1:24"}],"functionName":{"name":"add","nativeSrc":"31499:3:24","nodeType":"YulIdentifier","src":"31499:3:24"},"nativeSrc":"31499:15:24","nodeType":"YulFunctionCall","src":"31499:15:24"}],"functionName":{"name":"mload","nativeSrc":"31493:5:24","nodeType":"YulIdentifier","src":"31493:5:24"},"nativeSrc":"31493:22:24","nodeType":"YulFunctionCall","src":"31493:22:24"}],"functionName":{"name":"mstore","nativeSrc":"31470:6:24","nodeType":"YulIdentifier","src":"31470:6:24"},"nativeSrc":"31470:46:24","nodeType":"YulFunctionCall","src":"31470:46:24"},"nativeSrc":"31470:46:24","nodeType":"YulExpressionStatement","src":"31470:46:24"},{"nativeSrc":"31537:14:24","nodeType":"YulAssignment","src":"31537:14:24","value":{"arguments":[{"name":"o","nativeSrc":"31546:1:24","nodeType":"YulIdentifier","src":"31546:1:24"},{"name":"w","nativeSrc":"31549:1:24","nodeType":"YulIdentifier","src":"31549:1:24"}],"functionName":{"name":"add","nativeSrc":"31542:3:24","nodeType":"YulIdentifier","src":"31542:3:24"},"nativeSrc":"31542:9:24","nodeType":"YulFunctionCall","src":"31542:9:24"},"variableNames":[{"name":"o","nativeSrc":"31537:1:24","nodeType":"YulIdentifier","src":"31537:1:24"}]},{"body":{"nativeSrc":"31604:9:24","nodeType":"YulBlock","src":"31604:9:24","statements":[{"nativeSrc":"31606:5:24","nodeType":"YulBreak","src":"31606:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"31601:1:24","nodeType":"YulIdentifier","src":"31601:1:24"}],"functionName":{"name":"iszero","nativeSrc":"31594:6:24","nodeType":"YulIdentifier","src":"31594:6:24"},"nativeSrc":"31594:9:24","nodeType":"YulFunctionCall","src":"31594:9:24"},"nativeSrc":"31591:22:24","nodeType":"YulIf","src":"31591:22:24"}]},"condition":{"kind":"number","nativeSrc":"31443:1:24","nodeType":"YulLiteral","src":"31443:1:24","type":"","value":"1"},"nativeSrc":"31394:237:24","nodeType":"YulForLoop","post":{"nativeSrc":"31445:2:24","nodeType":"YulBlock","src":"31445:2:24","statements":[]},"pre":{"nativeSrc":"31398:44:24","nodeType":"YulBlock","src":"31398:44:24","statements":[{"nativeSrc":"31400:40:24","nodeType":"YulVariableDeclaration","src":"31400:40:24","value":{"arguments":[{"arguments":[{"name":"resultLength","nativeSrc":"31417:12:24","nodeType":"YulIdentifier","src":"31417:12:24"},{"kind":"number","nativeSrc":"31431:4:24","nodeType":"YulLiteral","src":"31431:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"31413:3:24","nodeType":"YulIdentifier","src":"31413:3:24"},"nativeSrc":"31413:23:24","nodeType":"YulFunctionCall","src":"31413:23:24"},{"name":"w","nativeSrc":"31438:1:24","nodeType":"YulIdentifier","src":"31438:1:24"}],"functionName":{"name":"and","nativeSrc":"31409:3:24","nodeType":"YulIdentifier","src":"31409:3:24"},"nativeSrc":"31409:31:24","nodeType":"YulFunctionCall","src":"31409:31:24"},"variables":[{"name":"o","nativeSrc":"31404:1:24","nodeType":"YulTypedName","src":"31404:1:24","type":""}]}]},"src":"31394:237:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"31717:6:24","nodeType":"YulIdentifier","src":"31717:6:24"},{"kind":"number","nativeSrc":"31725:4:24","nodeType":"YulLiteral","src":"31725:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31713:3:24","nodeType":"YulIdentifier","src":"31713:3:24"},"nativeSrc":"31713:17:24","nodeType":"YulFunctionCall","src":"31713:17:24"},{"name":"resultLength","nativeSrc":"31732:12:24","nodeType":"YulIdentifier","src":"31732:12:24"}],"functionName":{"name":"add","nativeSrc":"31709:3:24","nodeType":"YulIdentifier","src":"31709:3:24"},"nativeSrc":"31709:36:24","nodeType":"YulFunctionCall","src":"31709:36:24"},{"kind":"number","nativeSrc":"31747:1:24","nodeType":"YulLiteral","src":"31747:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"31702:6:24","nodeType":"YulIdentifier","src":"31702:6:24"},"nativeSrc":"31702:47:24","nodeType":"YulFunctionCall","src":"31702:47:24"},"nativeSrc":"31702:47:24","nodeType":"YulExpressionStatement","src":"31702:47:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31889:4:24","nodeType":"YulLiteral","src":"31889:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"31899:6:24","nodeType":"YulIdentifier","src":"31899:6:24"},{"arguments":[{"arguments":[{"name":"resultLength","nativeSrc":"31915:12:24","nodeType":"YulIdentifier","src":"31915:12:24"},{"kind":"number","nativeSrc":"31929:4:24","nodeType":"YulLiteral","src":"31929:4:24","type":"","value":"0x3f"}],"functionName":{"name":"add","nativeSrc":"31911:3:24","nodeType":"YulIdentifier","src":"31911:3:24"},"nativeSrc":"31911:23:24","nodeType":"YulFunctionCall","src":"31911:23:24"},{"name":"w","nativeSrc":"31936:1:24","nodeType":"YulIdentifier","src":"31936:1:24"}],"functionName":{"name":"and","nativeSrc":"31907:3:24","nodeType":"YulIdentifier","src":"31907:3:24"},"nativeSrc":"31907:31:24","nodeType":"YulFunctionCall","src":"31907:31:24"}],"functionName":{"name":"add","nativeSrc":"31895:3:24","nodeType":"YulIdentifier","src":"31895:3:24"},"nativeSrc":"31895:44:24","nodeType":"YulFunctionCall","src":"31895:44:24"}],"functionName":{"name":"mstore","nativeSrc":"31882:6:24","nodeType":"YulIdentifier","src":"31882:6:24"},"nativeSrc":"31882:58:24","nodeType":"YulFunctionCall","src":"31882:58:24"},"nativeSrc":"31882:58:24","nodeType":"YulExpressionStatement","src":"31882:58:24"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"31078:5:24","nodeType":"YulIdentifier","src":"31078:5:24"},{"name":"end","nativeSrc":"31085:3:24","nodeType":"YulIdentifier","src":"31085:3:24"}],"functionName":{"name":"lt","nativeSrc":"31075:2:24","nodeType":"YulIdentifier","src":"31075:2:24"},"nativeSrc":"31075:14:24","nodeType":"YulFunctionCall","src":"31075:14:24"},"nativeSrc":"31072:882:24","nodeType":"YulIf","src":"31072:882:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10694,"isOffset":false,"isSlot":false,"src":"30954:3:24","valueSize":1},{"declaration":10694,"isOffset":false,"isSlot":false,"src":"30962:3:24","valueSize":1},{"declaration":10694,"isOffset":false,"isSlot":false,"src":"31085:3:24","valueSize":1},{"declaration":10694,"isOffset":false,"isSlot":false,"src":"31170:3:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31108:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31205:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31481:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31717:6:24","valueSize":1},{"declaration":10697,"isOffset":false,"isSlot":false,"src":"31899:6:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31025:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31035:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31078:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31175:5:24","valueSize":1},{"declaration":10692,"isOffset":false,"isSlot":false,"src":"31267:5:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"30905:7:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"31243:7:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"31258:7:24","valueSize":1},{"declaration":10690,"isOffset":false,"isSlot":false,"src":"31503:7:24","valueSize":1}],"id":10699,"nodeType":"InlineAssembly","src":"30855:1109:24"}]},"documentation":{"id":10688,"nodeType":"StructuredDocumentation","src":"30536:122:24","text":"@dev Returns a copy of `subject` sliced from `start` to `end` (exclusive).\n `start` and `end` are byte offsets."},"id":10701,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"30672:5:24","nodeType":"FunctionDefinition","parameters":{"id":10695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10690,"mutability":"mutable","name":"subject","nameLocation":"30692:7:24","nodeType":"VariableDeclaration","scope":10701,"src":"30678:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10689,"name":"string","nodeType":"ElementaryTypeName","src":"30678:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10692,"mutability":"mutable","name":"start","nameLocation":"30709:5:24","nodeType":"VariableDeclaration","scope":10701,"src":"30701:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10691,"name":"uint256","nodeType":"ElementaryTypeName","src":"30701:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10694,"mutability":"mutable","name":"end","nameLocation":"30724:3:24","nodeType":"VariableDeclaration","scope":10701,"src":"30716:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10693,"name":"uint256","nodeType":"ElementaryTypeName","src":"30716:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30677:51:24"},"returnParameters":{"id":10698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10697,"mutability":"mutable","name":"result","nameLocation":"30790:6:24","nodeType":"VariableDeclaration","scope":10701,"src":"30776:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10696,"name":"string","nodeType":"ElementaryTypeName","src":"30776:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30775:22:24"},"scope":10964,"src":"30663:1307:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10726,"nodeType":"Block","src":"32223:68:24","statements":[{"expression":{"id":10724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10711,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"32233:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10713,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10704,"src":"32248:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10714,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10706,"src":"32257:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":10720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"32279:2:24","subExpression":{"hexValue":"31","id":10719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32280:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":10718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32272:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10717,"name":"int256","nodeType":"ElementaryTypeName","src":"32272:6:24","typeDescriptions":{}}},"id":10721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32272:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32264:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10715,"name":"uint256","nodeType":"ElementaryTypeName","src":"32264:7:24","typeDescriptions":{}}},"id":10722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32264:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10712,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[10701,10727],"referencedDeclaration":10701,"src":"32242:5:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,uint256,uint256) pure returns (string memory)"}},"id":10723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32242:42:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"32233:51:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10725,"nodeType":"ExpressionStatement","src":"32233:51:24"}]},"documentation":{"id":10702,"nodeType":"StructuredDocumentation","src":"31976:116:24","text":"@dev Returns a copy of `subject` sliced from `start` to the end of the string.\n `start` is a byte offset."},"id":10727,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"32106:5:24","nodeType":"FunctionDefinition","parameters":{"id":10707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10704,"mutability":"mutable","name":"subject","nameLocation":"32126:7:24","nodeType":"VariableDeclaration","scope":10727,"src":"32112:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10703,"name":"string","nodeType":"ElementaryTypeName","src":"32112:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10706,"mutability":"mutable","name":"start","nameLocation":"32143:5:24","nodeType":"VariableDeclaration","scope":10727,"src":"32135:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10705,"name":"uint256","nodeType":"ElementaryTypeName","src":"32135:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32111:38:24"},"returnParameters":{"id":10710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10709,"mutability":"mutable","name":"result","nameLocation":"32211:6:24","nodeType":"VariableDeclaration","scope":10727,"src":"32197:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10708,"name":"string","nodeType":"ElementaryTypeName","src":"32197:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32196:22:24"},"scope":10964,"src":"32097:194:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10739,"nodeType":"Block","src":"32538:2435:24","statements":[{"AST":{"nativeSrc":"32600:2367:24","nodeType":"YulBlock","src":"32600:2367:24","statements":[{"nativeSrc":"32614:35:24","nodeType":"YulVariableDeclaration","src":"32614:35:24","value":{"arguments":[{"name":"subject","nativeSrc":"32641:7:24","nodeType":"YulIdentifier","src":"32641:7:24"}],"functionName":{"name":"mload","nativeSrc":"32635:5:24","nodeType":"YulIdentifier","src":"32635:5:24"},"nativeSrc":"32635:14:24","nodeType":"YulFunctionCall","src":"32635:14:24"},"variables":[{"name":"subjectLength","nativeSrc":"32618:13:24","nodeType":"YulTypedName","src":"32618:13:24","type":""}]},{"nativeSrc":"32662:33:24","nodeType":"YulVariableDeclaration","src":"32662:33:24","value":{"arguments":[{"name":"search","nativeSrc":"32688:6:24","nodeType":"YulIdentifier","src":"32688:6:24"}],"functionName":{"name":"mload","nativeSrc":"32682:5:24","nodeType":"YulIdentifier","src":"32682:5:24"},"nativeSrc":"32682:13:24","nodeType":"YulFunctionCall","src":"32682:13:24"},"variables":[{"name":"searchLength","nativeSrc":"32666:12:24","nodeType":"YulTypedName","src":"32666:12:24","type":""}]},{"body":{"nativeSrc":"32752:2205:24","nodeType":"YulBlock","src":"32752:2205:24","statements":[{"nativeSrc":"32770:29:24","nodeType":"YulAssignment","src":"32770:29:24","value":{"arguments":[{"name":"subject","nativeSrc":"32785:7:24","nodeType":"YulIdentifier","src":"32785:7:24"},{"kind":"number","nativeSrc":"32794:4:24","nodeType":"YulLiteral","src":"32794:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32781:3:24","nodeType":"YulIdentifier","src":"32781:3:24"},"nativeSrc":"32781:18:24","nodeType":"YulFunctionCall","src":"32781:18:24"},"variableNames":[{"name":"subject","nativeSrc":"32770:7:24","nodeType":"YulIdentifier","src":"32770:7:24"}]},{"nativeSrc":"32816:27:24","nodeType":"YulAssignment","src":"32816:27:24","value":{"arguments":[{"name":"search","nativeSrc":"32830:6:24","nodeType":"YulIdentifier","src":"32830:6:24"},{"kind":"number","nativeSrc":"32838:4:24","nodeType":"YulLiteral","src":"32838:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32826:3:24","nodeType":"YulIdentifier","src":"32826:3:24"},"nativeSrc":"32826:17:24","nodeType":"YulFunctionCall","src":"32826:17:24"},"variableNames":[{"name":"search","nativeSrc":"32816:6:24","nodeType":"YulIdentifier","src":"32816:6:24"}]},{"nativeSrc":"32860:32:24","nodeType":"YulAssignment","src":"32860:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32880:4:24","nodeType":"YulLiteral","src":"32880:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"32874:5:24","nodeType":"YulIdentifier","src":"32874:5:24"},"nativeSrc":"32874:11:24","nodeType":"YulFunctionCall","src":"32874:11:24"},{"kind":"number","nativeSrc":"32887:4:24","nodeType":"YulLiteral","src":"32887:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32870:3:24","nodeType":"YulIdentifier","src":"32870:3:24"},"nativeSrc":"32870:22:24","nodeType":"YulFunctionCall","src":"32870:22:24"},"variableNames":[{"name":"result","nativeSrc":"32860:6:24","nodeType":"YulIdentifier","src":"32860:6:24"}]},{"nativeSrc":"32910:27:24","nodeType":"YulVariableDeclaration","src":"32910:27:24","value":{"name":"subject","nativeSrc":"32930:7:24","nodeType":"YulIdentifier","src":"32930:7:24"},"variables":[{"name":"subjectStart","nativeSrc":"32914:12:24","nodeType":"YulTypedName","src":"32914:12:24","type":""}]},{"nativeSrc":"32954:78:24","nodeType":"YulVariableDeclaration","src":"32954:78:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"32990:7:24","nodeType":"YulIdentifier","src":"32990:7:24"},{"name":"subjectLength","nativeSrc":"32999:13:24","nodeType":"YulIdentifier","src":"32999:13:24"}],"functionName":{"name":"add","nativeSrc":"32986:3:24","nodeType":"YulIdentifier","src":"32986:3:24"},"nativeSrc":"32986:27:24","nodeType":"YulFunctionCall","src":"32986:27:24"},{"name":"searchLength","nativeSrc":"33015:12:24","nodeType":"YulIdentifier","src":"33015:12:24"}],"functionName":{"name":"sub","nativeSrc":"32982:3:24","nodeType":"YulIdentifier","src":"32982:3:24"},"nativeSrc":"32982:46:24","nodeType":"YulFunctionCall","src":"32982:46:24"},{"kind":"number","nativeSrc":"33030:1:24","nodeType":"YulLiteral","src":"33030:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"32978:3:24","nodeType":"YulIdentifier","src":"32978:3:24"},"nativeSrc":"32978:54:24","nodeType":"YulFunctionCall","src":"32978:54:24"},"variables":[{"name":"subjectSearchEnd","nativeSrc":"32958:16:24","nodeType":"YulTypedName","src":"32958:16:24","type":""}]},{"nativeSrc":"33049:10:24","nodeType":"YulVariableDeclaration","src":"33049:10:24","value":{"kind":"number","nativeSrc":"33058:1:24","nodeType":"YulLiteral","src":"33058:1:24","type":"","value":"0"},"variables":[{"name":"h","nativeSrc":"33053:1:24","nodeType":"YulTypedName","src":"33053:1:24","type":""}]},{"body":{"nativeSrc":"33110:40:24","nodeType":"YulBlock","src":"33110:40:24","statements":[{"nativeSrc":"33112:36:24","nodeType":"YulAssignment","src":"33112:36:24","value":{"arguments":[{"name":"search","nativeSrc":"33127:6:24","nodeType":"YulIdentifier","src":"33127:6:24"},{"name":"searchLength","nativeSrc":"33135:12:24","nodeType":"YulIdentifier","src":"33135:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"33117:9:24","nodeType":"YulIdentifier","src":"33117:9:24"},"nativeSrc":"33117:31:24","nodeType":"YulFunctionCall","src":"33117:31:24"},"variableNames":[{"name":"h","nativeSrc":"33112:1:24","nodeType":"YulIdentifier","src":"33112:1:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"33089:12:24","nodeType":"YulIdentifier","src":"33089:12:24"},{"kind":"number","nativeSrc":"33103:4:24","nodeType":"YulLiteral","src":"33103:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"33086:2:24","nodeType":"YulIdentifier","src":"33086:2:24"},"nativeSrc":"33086:22:24","nodeType":"YulFunctionCall","src":"33086:22:24"}],"functionName":{"name":"iszero","nativeSrc":"33079:6:24","nodeType":"YulIdentifier","src":"33079:6:24"},"nativeSrc":"33079:30:24","nodeType":"YulFunctionCall","src":"33079:30:24"},"nativeSrc":"33076:74:24","nodeType":"YulIf","src":"33076:74:24"},{"nativeSrc":"33167:51:24","nodeType":"YulVariableDeclaration","src":"33167:51:24","value":{"arguments":[{"kind":"number","nativeSrc":"33180:1:24","nodeType":"YulLiteral","src":"33180:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"33187:4:24","nodeType":"YulLiteral","src":"33187:4:24","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"33197:12:24","nodeType":"YulIdentifier","src":"33197:12:24"},{"kind":"number","nativeSrc":"33211:4:24","nodeType":"YulLiteral","src":"33211:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"33193:3:24","nodeType":"YulIdentifier","src":"33193:3:24"},"nativeSrc":"33193:23:24","nodeType":"YulFunctionCall","src":"33193:23:24"}],"functionName":{"name":"sub","nativeSrc":"33183:3:24","nodeType":"YulIdentifier","src":"33183:3:24"},"nativeSrc":"33183:34:24","nodeType":"YulFunctionCall","src":"33183:34:24"}],"functionName":{"name":"shl","nativeSrc":"33176:3:24","nodeType":"YulIdentifier","src":"33176:3:24"},"nativeSrc":"33176:42:24","nodeType":"YulFunctionCall","src":"33176:42:24"},"variables":[{"name":"m","nativeSrc":"33171:1:24","nodeType":"YulTypedName","src":"33171:1:24","type":""}]},{"nativeSrc":"33235:22:24","nodeType":"YulVariableDeclaration","src":"33235:22:24","value":{"arguments":[{"name":"search","nativeSrc":"33250:6:24","nodeType":"YulIdentifier","src":"33250:6:24"}],"functionName":{"name":"mload","nativeSrc":"33244:5:24","nodeType":"YulIdentifier","src":"33244:5:24"},"nativeSrc":"33244:13:24","nodeType":"YulFunctionCall","src":"33244:13:24"},"variables":[{"name":"s","nativeSrc":"33239:1:24","nodeType":"YulTypedName","src":"33239:1:24","type":""}]},{"body":{"nativeSrc":"33286:1206:24","nodeType":"YulBlock","src":"33286:1206:24","statements":[{"nativeSrc":"33308:23:24","nodeType":"YulVariableDeclaration","src":"33308:23:24","value":{"arguments":[{"name":"subject","nativeSrc":"33323:7:24","nodeType":"YulIdentifier","src":"33323:7:24"}],"functionName":{"name":"mload","nativeSrc":"33317:5:24","nodeType":"YulIdentifier","src":"33317:5:24"},"nativeSrc":"33317:14:24","nodeType":"YulFunctionCall","src":"33317:14:24"},"variables":[{"name":"t","nativeSrc":"33312:1:24","nodeType":"YulTypedName","src":"33312:1:24","type":""}]},{"body":{"nativeSrc":"33506:850:24","nodeType":"YulBlock","src":"33506:850:24","statements":[{"body":{"nativeSrc":"33537:321:24","nodeType":"YulBlock","src":"33537:321:24","statements":[{"body":{"nativeSrc":"33618:214:24","nodeType":"YulBlock","src":"33618:214:24","statements":[{"nativeSrc":"33652:26:24","nodeType":"YulAssignment","src":"33652:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"33667:7:24","nodeType":"YulIdentifier","src":"33667:7:24"},{"kind":"number","nativeSrc":"33676:1:24","nodeType":"YulLiteral","src":"33676:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"33663:3:24","nodeType":"YulIdentifier","src":"33663:3:24"},"nativeSrc":"33663:15:24","nodeType":"YulFunctionCall","src":"33663:15:24"},"variableNames":[{"name":"subject","nativeSrc":"33652:7:24","nodeType":"YulIdentifier","src":"33652:7:24"}]},{"body":{"nativeSrc":"33752:9:24","nodeType":"YulBlock","src":"33752:9:24","statements":[{"nativeSrc":"33754:5:24","nodeType":"YulBreak","src":"33754:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"33724:7:24","nodeType":"YulIdentifier","src":"33724:7:24"},{"name":"subjectSearchEnd","nativeSrc":"33733:16:24","nodeType":"YulIdentifier","src":"33733:16:24"}],"functionName":{"name":"lt","nativeSrc":"33721:2:24","nodeType":"YulIdentifier","src":"33721:2:24"},"nativeSrc":"33721:29:24","nodeType":"YulFunctionCall","src":"33721:29:24"}],"functionName":{"name":"iszero","nativeSrc":"33714:6:24","nodeType":"YulIdentifier","src":"33714:6:24"},"nativeSrc":"33714:37:24","nodeType":"YulFunctionCall","src":"33714:37:24"},"nativeSrc":"33711:50:24","nodeType":"YulIf","src":"33711:50:24"},{"nativeSrc":"33794:8:24","nodeType":"YulContinue","src":"33794:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"33590:7:24","nodeType":"YulIdentifier","src":"33590:7:24"},{"name":"searchLength","nativeSrc":"33599:12:24","nodeType":"YulIdentifier","src":"33599:12:24"}],"functionName":{"name":"keccak256","nativeSrc":"33580:9:24","nodeType":"YulIdentifier","src":"33580:9:24"},"nativeSrc":"33580:32:24","nodeType":"YulFunctionCall","src":"33580:32:24"},{"name":"h","nativeSrc":"33614:1:24","nodeType":"YulIdentifier","src":"33614:1:24"}],"functionName":{"name":"eq","nativeSrc":"33577:2:24","nodeType":"YulIdentifier","src":"33577:2:24"},"nativeSrc":"33577:39:24","nodeType":"YulFunctionCall","src":"33577:39:24"}],"functionName":{"name":"iszero","nativeSrc":"33570:6:24","nodeType":"YulIdentifier","src":"33570:6:24"},"nativeSrc":"33570:47:24","nodeType":"YulFunctionCall","src":"33570:47:24"},"nativeSrc":"33567:265:24","nodeType":"YulIf","src":"33567:265:24"}]},"condition":{"name":"h","nativeSrc":"33535:1:24","nodeType":"YulIdentifier","src":"33535:1:24"},"nativeSrc":"33532:326:24","nodeType":"YulIf","src":"33532:326:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"33937:6:24","nodeType":"YulIdentifier","src":"33937:6:24"},{"arguments":[{"name":"subject","nativeSrc":"33949:7:24","nodeType":"YulIdentifier","src":"33949:7:24"},{"name":"subjectStart","nativeSrc":"33958:12:24","nodeType":"YulIdentifier","src":"33958:12:24"}],"functionName":{"name":"sub","nativeSrc":"33945:3:24","nodeType":"YulIdentifier","src":"33945:3:24"},"nativeSrc":"33945:26:24","nodeType":"YulFunctionCall","src":"33945:26:24"}],"functionName":{"name":"mstore","nativeSrc":"33930:6:24","nodeType":"YulIdentifier","src":"33930:6:24"},"nativeSrc":"33930:42:24","nodeType":"YulFunctionCall","src":"33930:42:24"},"nativeSrc":"33930:42:24","nodeType":"YulExpressionStatement","src":"33930:42:24"},{"nativeSrc":"33997:27:24","nodeType":"YulAssignment","src":"33997:27:24","value":{"arguments":[{"name":"result","nativeSrc":"34011:6:24","nodeType":"YulIdentifier","src":"34011:6:24"},{"kind":"number","nativeSrc":"34019:4:24","nodeType":"YulLiteral","src":"34019:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34007:3:24","nodeType":"YulIdentifier","src":"34007:3:24"},"nativeSrc":"34007:17:24","nodeType":"YulFunctionCall","src":"34007:17:24"},"variableNames":[{"name":"result","nativeSrc":"33997:6:24","nodeType":"YulIdentifier","src":"33997:6:24"}]},{"nativeSrc":"34113:37:24","nodeType":"YulAssignment","src":"34113:37:24","value":{"arguments":[{"name":"subject","nativeSrc":"34128:7:24","nodeType":"YulIdentifier","src":"34128:7:24"},{"name":"searchLength","nativeSrc":"34137:12:24","nodeType":"YulIdentifier","src":"34137:12:24"}],"functionName":{"name":"add","nativeSrc":"34124:3:24","nodeType":"YulIdentifier","src":"34124:3:24"},"nativeSrc":"34124:26:24","nodeType":"YulFunctionCall","src":"34124:26:24"},"variableNames":[{"name":"subject","nativeSrc":"34113:7:24","nodeType":"YulIdentifier","src":"34113:7:24"}]},{"body":{"nativeSrc":"34191:143:24","nodeType":"YulBlock","src":"34191:143:24","statements":[{"body":{"nativeSrc":"34262:9:24","nodeType":"YulBlock","src":"34262:9:24","statements":[{"nativeSrc":"34264:5:24","nodeType":"YulBreak","src":"34264:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"34234:7:24","nodeType":"YulIdentifier","src":"34234:7:24"},{"name":"subjectSearchEnd","nativeSrc":"34243:16:24","nodeType":"YulIdentifier","src":"34243:16:24"}],"functionName":{"name":"lt","nativeSrc":"34231:2:24","nodeType":"YulIdentifier","src":"34231:2:24"},"nativeSrc":"34231:29:24","nodeType":"YulFunctionCall","src":"34231:29:24"}],"functionName":{"name":"iszero","nativeSrc":"34224:6:24","nodeType":"YulIdentifier","src":"34224:6:24"},"nativeSrc":"34224:37:24","nodeType":"YulFunctionCall","src":"34224:37:24"},"nativeSrc":"34221:50:24","nodeType":"YulIf","src":"34221:50:24"},{"nativeSrc":"34300:8:24","nodeType":"YulContinue","src":"34300:8:24"}]},"condition":{"name":"searchLength","nativeSrc":"34178:12:24","nodeType":"YulIdentifier","src":"34178:12:24"},"nativeSrc":"34175:159:24","nodeType":"YulIf","src":"34175:159:24"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"33491:1:24","nodeType":"YulIdentifier","src":"33491:1:24"},{"arguments":[{"name":"t","nativeSrc":"33498:1:24","nodeType":"YulIdentifier","src":"33498:1:24"},{"name":"s","nativeSrc":"33501:1:24","nodeType":"YulIdentifier","src":"33501:1:24"}],"functionName":{"name":"xor","nativeSrc":"33494:3:24","nodeType":"YulIdentifier","src":"33494:3:24"},"nativeSrc":"33494:9:24","nodeType":"YulFunctionCall","src":"33494:9:24"}],"functionName":{"name":"shr","nativeSrc":"33487:3:24","nodeType":"YulIdentifier","src":"33487:3:24"},"nativeSrc":"33487:17:24","nodeType":"YulFunctionCall","src":"33487:17:24"}],"functionName":{"name":"iszero","nativeSrc":"33480:6:24","nodeType":"YulIdentifier","src":"33480:6:24"},"nativeSrc":"33480:25:24","nodeType":"YulFunctionCall","src":"33480:25:24"},"nativeSrc":"33477:879:24","nodeType":"YulIf","src":"33477:879:24"},{"nativeSrc":"34377:26:24","nodeType":"YulAssignment","src":"34377:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"34392:7:24","nodeType":"YulIdentifier","src":"34392:7:24"},{"kind":"number","nativeSrc":"34401:1:24","nodeType":"YulLiteral","src":"34401:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"34388:3:24","nodeType":"YulIdentifier","src":"34388:3:24"},"nativeSrc":"34388:15:24","nodeType":"YulFunctionCall","src":"34388:15:24"},"variableNames":[{"name":"subject","nativeSrc":"34377:7:24","nodeType":"YulIdentifier","src":"34377:7:24"}]},{"body":{"nativeSrc":"34465:9:24","nodeType":"YulBlock","src":"34465:9:24","statements":[{"nativeSrc":"34467:5:24","nodeType":"YulBreak","src":"34467:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"34437:7:24","nodeType":"YulIdentifier","src":"34437:7:24"},{"name":"subjectSearchEnd","nativeSrc":"34446:16:24","nodeType":"YulIdentifier","src":"34446:16:24"}],"functionName":{"name":"lt","nativeSrc":"34434:2:24","nodeType":"YulIdentifier","src":"34434:2:24"},"nativeSrc":"34434:29:24","nodeType":"YulFunctionCall","src":"34434:29:24"}],"functionName":{"name":"iszero","nativeSrc":"34427:6:24","nodeType":"YulIdentifier","src":"34427:6:24"},"nativeSrc":"34427:37:24","nodeType":"YulFunctionCall","src":"34427:37:24"},"nativeSrc":"34424:50:24","nodeType":"YulIf","src":"34424:50:24"}]},"condition":{"kind":"number","nativeSrc":"33281:1:24","nodeType":"YulLiteral","src":"33281:1:24","type":"","value":"1"},"nativeSrc":"33274:1218:24","nodeType":"YulForLoop","post":{"nativeSrc":"33283:2:24","nodeType":"YulBlock","src":"33283:2:24","statements":[]},"pre":{"nativeSrc":"33278:2:24","nodeType":"YulBlock","src":"33278:2:24","statements":[]},"src":"33274:1218:24"},{"nativeSrc":"34509:23:24","nodeType":"YulVariableDeclaration","src":"34509:23:24","value":{"name":"result","nativeSrc":"34526:6:24","nodeType":"YulIdentifier","src":"34526:6:24"},"variables":[{"name":"resultEnd","nativeSrc":"34513:9:24","nodeType":"YulTypedName","src":"34513:9:24","type":""}]},{"nativeSrc":"34612:21:24","nodeType":"YulAssignment","src":"34612:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"34628:4:24","nodeType":"YulLiteral","src":"34628:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"34622:5:24","nodeType":"YulIdentifier","src":"34622:5:24"},"nativeSrc":"34622:11:24","nodeType":"YulFunctionCall","src":"34622:11:24"},"variableNames":[{"name":"result","nativeSrc":"34612:6:24","nodeType":"YulIdentifier","src":"34612:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"34706:6:24","nodeType":"YulIdentifier","src":"34706:6:24"},{"arguments":[{"kind":"number","nativeSrc":"34718:1:24","nodeType":"YulLiteral","src":"34718:1:24","type":"","value":"5"},{"arguments":[{"name":"resultEnd","nativeSrc":"34725:9:24","nodeType":"YulIdentifier","src":"34725:9:24"},{"arguments":[{"name":"result","nativeSrc":"34740:6:24","nodeType":"YulIdentifier","src":"34740:6:24"},{"kind":"number","nativeSrc":"34748:4:24","nodeType":"YulLiteral","src":"34748:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34736:3:24","nodeType":"YulIdentifier","src":"34736:3:24"},"nativeSrc":"34736:17:24","nodeType":"YulFunctionCall","src":"34736:17:24"}],"functionName":{"name":"sub","nativeSrc":"34721:3:24","nodeType":"YulIdentifier","src":"34721:3:24"},"nativeSrc":"34721:33:24","nodeType":"YulFunctionCall","src":"34721:33:24"}],"functionName":{"name":"shr","nativeSrc":"34714:3:24","nodeType":"YulIdentifier","src":"34714:3:24"},"nativeSrc":"34714:41:24","nodeType":"YulFunctionCall","src":"34714:41:24"}],"functionName":{"name":"mstore","nativeSrc":"34699:6:24","nodeType":"YulIdentifier","src":"34699:6:24"},"nativeSrc":"34699:57:24","nodeType":"YulFunctionCall","src":"34699:57:24"},"nativeSrc":"34699:57:24","nodeType":"YulExpressionStatement","src":"34699:57:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34916:4:24","nodeType":"YulLiteral","src":"34916:4:24","type":"","value":"0x40"},{"arguments":[{"name":"resultEnd","nativeSrc":"34926:9:24","nodeType":"YulIdentifier","src":"34926:9:24"},{"kind":"number","nativeSrc":"34937:4:24","nodeType":"YulLiteral","src":"34937:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34922:3:24","nodeType":"YulIdentifier","src":"34922:3:24"},"nativeSrc":"34922:20:24","nodeType":"YulFunctionCall","src":"34922:20:24"}],"functionName":{"name":"mstore","nativeSrc":"34909:6:24","nodeType":"YulIdentifier","src":"34909:6:24"},"nativeSrc":"34909:34:24","nodeType":"YulFunctionCall","src":"34909:34:24"},"nativeSrc":"34909:34:24","nodeType":"YulExpressionStatement","src":"34909:34:24"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"32722:12:24","nodeType":"YulIdentifier","src":"32722:12:24"},{"name":"subjectLength","nativeSrc":"32736:13:24","nodeType":"YulIdentifier","src":"32736:13:24"}],"functionName":{"name":"gt","nativeSrc":"32719:2:24","nodeType":"YulIdentifier","src":"32719:2:24"},"nativeSrc":"32719:31:24","nodeType":"YulFunctionCall","src":"32719:31:24"}],"functionName":{"name":"iszero","nativeSrc":"32712:6:24","nodeType":"YulIdentifier","src":"32712:6:24"},"nativeSrc":"32712:39:24","nodeType":"YulFunctionCall","src":"32712:39:24"},"nativeSrc":"32709:2248:24","nodeType":"YulIf","src":"32709:2248:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10736,"isOffset":false,"isSlot":false,"src":"32860:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"33937:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"33997:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34011:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34526:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34612:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34706:6:24","valueSize":1},{"declaration":10736,"isOffset":false,"isSlot":false,"src":"34740:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"32688:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"32816:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"32830:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"33127:6:24","valueSize":1},{"declaration":10732,"isOffset":false,"isSlot":false,"src":"33250:6:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32641:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32770:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32785:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32930:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"32990:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33323:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33590:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33652:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33667:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33724:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"33949:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34113:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34128:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34234:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34377:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34392:7:24","valueSize":1},{"declaration":10730,"isOffset":false,"isSlot":false,"src":"34437:7:24","valueSize":1}],"id":10738,"nodeType":"InlineAssembly","src":"32591:2376:24"}]},"documentation":{"id":10728,"nodeType":"StructuredDocumentation","src":"32297:96:24","text":"@dev Returns all the indices of `search` in `subject`.\n The indices are byte offsets."},"id":10740,"implemented":true,"kind":"function","modifiers":[],"name":"indicesOf","nameLocation":"32407:9:24","nodeType":"FunctionDefinition","parameters":{"id":10733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10730,"mutability":"mutable","name":"subject","nameLocation":"32431:7:24","nodeType":"VariableDeclaration","scope":10740,"src":"32417:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10729,"name":"string","nodeType":"ElementaryTypeName","src":"32417:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10732,"mutability":"mutable","name":"search","nameLocation":"32454:6:24","nodeType":"VariableDeclaration","scope":10740,"src":"32440:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10731,"name":"string","nodeType":"ElementaryTypeName","src":"32440:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32416:45:24"},"returnParameters":{"id":10737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10736,"mutability":"mutable","name":"result","nameLocation":"32526:6:24","nodeType":"VariableDeclaration","scope":10740,"src":"32509:23:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10734,"name":"uint256","nodeType":"ElementaryTypeName","src":"32509:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10735,"nodeType":"ArrayTypeName","src":"32509:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"32508:25:24"},"scope":10964,"src":"32398:2575:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10762,"nodeType":"Block","src":"35215:1947:24","statements":[{"assignments":[10755],"declarations":[{"constant":false,"id":10755,"mutability":"mutable","name":"indices","nameLocation":"35242:7:24","nodeType":"VariableDeclaration","scope":10762,"src":"35225:24:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10753,"name":"uint256","nodeType":"ElementaryTypeName","src":"35225:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10754,"nodeType":"ArrayTypeName","src":"35225:9:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":10760,"initialValue":{"arguments":[{"id":10757,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"35262:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10758,"name":"delimiter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"35271:9:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10756,"name":"indicesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10740,"src":"35252:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (uint256[] memory)"}},"id":10759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:29:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"35225:56:24"},{"AST":{"nativeSrc":"35343:1813:24","nodeType":"YulBlock","src":"35343:1813:24","statements":[{"nativeSrc":"35357:18:24","nodeType":"YulVariableDeclaration","src":"35357:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"35370:4:24","nodeType":"YulLiteral","src":"35370:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"35366:3:24","nodeType":"YulIdentifier","src":"35366:3:24"},"nativeSrc":"35366:9:24","nodeType":"YulFunctionCall","src":"35366:9:24"},"variables":[{"name":"w","nativeSrc":"35361:1:24","nodeType":"YulTypedName","src":"35361:1:24","type":""}]},{"nativeSrc":"35388:34:24","nodeType":"YulVariableDeclaration","src":"35388:34:24","value":{"arguments":[{"name":"indices","nativeSrc":"35408:7:24","nodeType":"YulIdentifier","src":"35408:7:24"},{"kind":"number","nativeSrc":"35417:4:24","nodeType":"YulLiteral","src":"35417:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35404:3:24","nodeType":"YulIdentifier","src":"35404:3:24"},"nativeSrc":"35404:18:24","nodeType":"YulFunctionCall","src":"35404:18:24"},"variables":[{"name":"indexPtr","nativeSrc":"35392:8:24","nodeType":"YulTypedName","src":"35392:8:24","type":""}]},{"nativeSrc":"35435:63:24","nodeType":"YulVariableDeclaration","src":"35435:63:24","value":{"arguments":[{"name":"indexPtr","nativeSrc":"35457:8:24","nodeType":"YulIdentifier","src":"35457:8:24"},{"arguments":[{"kind":"number","nativeSrc":"35471:1:24","nodeType":"YulLiteral","src":"35471:1:24","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"35484:7:24","nodeType":"YulIdentifier","src":"35484:7:24"}],"functionName":{"name":"mload","nativeSrc":"35478:5:24","nodeType":"YulIdentifier","src":"35478:5:24"},"nativeSrc":"35478:14:24","nodeType":"YulFunctionCall","src":"35478:14:24"},{"kind":"number","nativeSrc":"35494:1:24","nodeType":"YulLiteral","src":"35494:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35474:3:24","nodeType":"YulIdentifier","src":"35474:3:24"},"nativeSrc":"35474:22:24","nodeType":"YulFunctionCall","src":"35474:22:24"}],"functionName":{"name":"shl","nativeSrc":"35467:3:24","nodeType":"YulIdentifier","src":"35467:3:24"},"nativeSrc":"35467:30:24","nodeType":"YulFunctionCall","src":"35467:30:24"}],"functionName":{"name":"add","nativeSrc":"35453:3:24","nodeType":"YulIdentifier","src":"35453:3:24"},"nativeSrc":"35453:45:24","nodeType":"YulFunctionCall","src":"35453:45:24"},"variables":[{"name":"indicesEnd","nativeSrc":"35439:10:24","nodeType":"YulTypedName","src":"35439:10:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"indicesEnd","nativeSrc":"35522:10:24","nodeType":"YulIdentifier","src":"35522:10:24"},{"name":"w","nativeSrc":"35534:1:24","nodeType":"YulIdentifier","src":"35534:1:24"}],"functionName":{"name":"add","nativeSrc":"35518:3:24","nodeType":"YulIdentifier","src":"35518:3:24"},"nativeSrc":"35518:18:24","nodeType":"YulFunctionCall","src":"35518:18:24"},{"arguments":[{"name":"subject","nativeSrc":"35544:7:24","nodeType":"YulIdentifier","src":"35544:7:24"}],"functionName":{"name":"mload","nativeSrc":"35538:5:24","nodeType":"YulIdentifier","src":"35538:5:24"},"nativeSrc":"35538:14:24","nodeType":"YulFunctionCall","src":"35538:14:24"}],"functionName":{"name":"mstore","nativeSrc":"35511:6:24","nodeType":"YulIdentifier","src":"35511:6:24"},"nativeSrc":"35511:42:24","nodeType":"YulFunctionCall","src":"35511:42:24"},"nativeSrc":"35511:42:24","nodeType":"YulExpressionStatement","src":"35511:42:24"},{"expression":{"arguments":[{"name":"indices","nativeSrc":"35573:7:24","nodeType":"YulIdentifier","src":"35573:7:24"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"35592:7:24","nodeType":"YulIdentifier","src":"35592:7:24"}],"functionName":{"name":"mload","nativeSrc":"35586:5:24","nodeType":"YulIdentifier","src":"35586:5:24"},"nativeSrc":"35586:14:24","nodeType":"YulFunctionCall","src":"35586:14:24"},{"kind":"number","nativeSrc":"35602:1:24","nodeType":"YulLiteral","src":"35602:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35582:3:24","nodeType":"YulIdentifier","src":"35582:3:24"},"nativeSrc":"35582:22:24","nodeType":"YulFunctionCall","src":"35582:22:24"}],"functionName":{"name":"mstore","nativeSrc":"35566:6:24","nodeType":"YulIdentifier","src":"35566:6:24"},"nativeSrc":"35566:39:24","nodeType":"YulFunctionCall","src":"35566:39:24"},"nativeSrc":"35566:39:24","nodeType":"YulExpressionStatement","src":"35566:39:24"},{"nativeSrc":"35618:18:24","nodeType":"YulVariableDeclaration","src":"35618:18:24","value":{"kind":"number","nativeSrc":"35635:1:24","nodeType":"YulLiteral","src":"35635:1:24","type":"","value":"0"},"variables":[{"name":"prevIndex","nativeSrc":"35622:9:24","nodeType":"YulTypedName","src":"35622:9:24","type":""}]},{"body":{"nativeSrc":"35661:1299:24","nodeType":"YulBlock","src":"35661:1299:24","statements":[{"nativeSrc":"35679:28:24","nodeType":"YulVariableDeclaration","src":"35679:28:24","value":{"arguments":[{"name":"indexPtr","nativeSrc":"35698:8:24","nodeType":"YulIdentifier","src":"35698:8:24"}],"functionName":{"name":"mload","nativeSrc":"35692:5:24","nodeType":"YulIdentifier","src":"35692:5:24"},"nativeSrc":"35692:15:24","nodeType":"YulFunctionCall","src":"35692:15:24"},"variables":[{"name":"index","nativeSrc":"35683:5:24","nodeType":"YulTypedName","src":"35683:5:24","type":""}]},{"expression":{"arguments":[{"name":"indexPtr","nativeSrc":"35731:8:24","nodeType":"YulIdentifier","src":"35731:8:24"},{"kind":"number","nativeSrc":"35741:4:24","nodeType":"YulLiteral","src":"35741:4:24","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"35724:6:24","nodeType":"YulIdentifier","src":"35724:6:24"},"nativeSrc":"35724:22:24","nodeType":"YulFunctionCall","src":"35724:22:24"},"nativeSrc":"35724:22:24","nodeType":"YulExpressionStatement","src":"35724:22:24"},{"body":{"nativeSrc":"35795:983:24","nodeType":"YulBlock","src":"35795:983:24","statements":[{"nativeSrc":"35817:26:24","nodeType":"YulVariableDeclaration","src":"35817:26:24","value":{"arguments":[{"kind":"number","nativeSrc":"35838:4:24","nodeType":"YulLiteral","src":"35838:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"35832:5:24","nodeType":"YulIdentifier","src":"35832:5:24"},"nativeSrc":"35832:11:24","nodeType":"YulFunctionCall","src":"35832:11:24"},"variables":[{"name":"element","nativeSrc":"35821:7:24","nodeType":"YulTypedName","src":"35821:7:24","type":""}]},{"nativeSrc":"35864:42:24","nodeType":"YulVariableDeclaration","src":"35864:42:24","value":{"arguments":[{"name":"index","nativeSrc":"35889:5:24","nodeType":"YulIdentifier","src":"35889:5:24"},{"name":"prevIndex","nativeSrc":"35896:9:24","nodeType":"YulIdentifier","src":"35896:9:24"}],"functionName":{"name":"sub","nativeSrc":"35885:3:24","nodeType":"YulIdentifier","src":"35885:3:24"},"nativeSrc":"35885:21:24","nodeType":"YulFunctionCall","src":"35885:21:24"},"variables":[{"name":"elementLength","nativeSrc":"35868:13:24","nodeType":"YulTypedName","src":"35868:13:24","type":""}]},{"expression":{"arguments":[{"name":"element","nativeSrc":"35934:7:24","nodeType":"YulIdentifier","src":"35934:7:24"},{"name":"elementLength","nativeSrc":"35943:13:24","nodeType":"YulIdentifier","src":"35943:13:24"}],"functionName":{"name":"mstore","nativeSrc":"35927:6:24","nodeType":"YulIdentifier","src":"35927:6:24"},"nativeSrc":"35927:30:24","nodeType":"YulFunctionCall","src":"35927:30:24"},"nativeSrc":"35927:30:24","nodeType":"YulExpressionStatement","src":"35927:30:24"},{"body":{"nativeSrc":"36106:216:24","nodeType":"YulBlock","src":"36106:216:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"element","nativeSrc":"36143:7:24","nodeType":"YulIdentifier","src":"36143:7:24"},{"name":"o","nativeSrc":"36152:1:24","nodeType":"YulIdentifier","src":"36152:1:24"}],"functionName":{"name":"add","nativeSrc":"36139:3:24","nodeType":"YulIdentifier","src":"36139:3:24"},"nativeSrc":"36139:15:24","nodeType":"YulFunctionCall","src":"36139:15:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"36170:7:24","nodeType":"YulIdentifier","src":"36170:7:24"},{"name":"prevIndex","nativeSrc":"36179:9:24","nodeType":"YulIdentifier","src":"36179:9:24"}],"functionName":{"name":"add","nativeSrc":"36166:3:24","nodeType":"YulIdentifier","src":"36166:3:24"},"nativeSrc":"36166:23:24","nodeType":"YulFunctionCall","src":"36166:23:24"},{"name":"o","nativeSrc":"36191:1:24","nodeType":"YulIdentifier","src":"36191:1:24"}],"functionName":{"name":"add","nativeSrc":"36162:3:24","nodeType":"YulIdentifier","src":"36162:3:24"},"nativeSrc":"36162:31:24","nodeType":"YulFunctionCall","src":"36162:31:24"}],"functionName":{"name":"mload","nativeSrc":"36156:5:24","nodeType":"YulIdentifier","src":"36156:5:24"},"nativeSrc":"36156:38:24","nodeType":"YulFunctionCall","src":"36156:38:24"}],"functionName":{"name":"mstore","nativeSrc":"36132:6:24","nodeType":"YulIdentifier","src":"36132:6:24"},"nativeSrc":"36132:63:24","nodeType":"YulFunctionCall","src":"36132:63:24"},"nativeSrc":"36132:63:24","nodeType":"YulExpressionStatement","src":"36132:63:24"},{"nativeSrc":"36220:14:24","nodeType":"YulAssignment","src":"36220:14:24","value":{"arguments":[{"name":"o","nativeSrc":"36229:1:24","nodeType":"YulIdentifier","src":"36229:1:24"},{"name":"w","nativeSrc":"36232:1:24","nodeType":"YulIdentifier","src":"36232:1:24"}],"functionName":{"name":"add","nativeSrc":"36225:3:24","nodeType":"YulIdentifier","src":"36225:3:24"},"nativeSrc":"36225:9:24","nodeType":"YulFunctionCall","src":"36225:9:24"},"variableNames":[{"name":"o","nativeSrc":"36220:1:24","nodeType":"YulIdentifier","src":"36220:1:24"}]},{"body":{"nativeSrc":"36291:9:24","nodeType":"YulBlock","src":"36291:9:24","statements":[{"nativeSrc":"36293:5:24","nodeType":"YulBreak","src":"36293:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"36288:1:24","nodeType":"YulIdentifier","src":"36288:1:24"}],"functionName":{"name":"iszero","nativeSrc":"36281:6:24","nodeType":"YulIdentifier","src":"36281:6:24"},"nativeSrc":"36281:9:24","nodeType":"YulFunctionCall","src":"36281:9:24"},"nativeSrc":"36278:22:24","nodeType":"YulIf","src":"36278:22:24"}]},"condition":{"kind":"number","nativeSrc":"36101:1:24","nodeType":"YulLiteral","src":"36101:1:24","type":"","value":"1"},"nativeSrc":"36051:271:24","nodeType":"YulForLoop","post":{"nativeSrc":"36103:2:24","nodeType":"YulBlock","src":"36103:2:24","statements":[]},"pre":{"nativeSrc":"36055:45:24","nodeType":"YulBlock","src":"36055:45:24","statements":[{"nativeSrc":"36057:41:24","nodeType":"YulVariableDeclaration","src":"36057:41:24","value":{"arguments":[{"arguments":[{"name":"elementLength","nativeSrc":"36074:13:24","nodeType":"YulIdentifier","src":"36074:13:24"},{"kind":"number","nativeSrc":"36089:4:24","nodeType":"YulLiteral","src":"36089:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"36070:3:24","nodeType":"YulIdentifier","src":"36070:3:24"},"nativeSrc":"36070:24:24","nodeType":"YulFunctionCall","src":"36070:24:24"},{"name":"w","nativeSrc":"36096:1:24","nodeType":"YulIdentifier","src":"36096:1:24"}],"functionName":{"name":"and","nativeSrc":"36066:3:24","nodeType":"YulIdentifier","src":"36066:3:24"},"nativeSrc":"36066:32:24","nodeType":"YulFunctionCall","src":"36066:32:24"},"variables":[{"name":"o","nativeSrc":"36061:1:24","nodeType":"YulTypedName","src":"36061:1:24","type":""}]}]},"src":"36051:271:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"element","nativeSrc":"36416:7:24","nodeType":"YulIdentifier","src":"36416:7:24"},{"kind":"number","nativeSrc":"36425:4:24","nodeType":"YulLiteral","src":"36425:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36412:3:24","nodeType":"YulIdentifier","src":"36412:3:24"},"nativeSrc":"36412:18:24","nodeType":"YulFunctionCall","src":"36412:18:24"},{"name":"elementLength","nativeSrc":"36432:13:24","nodeType":"YulIdentifier","src":"36432:13:24"}],"functionName":{"name":"add","nativeSrc":"36408:3:24","nodeType":"YulIdentifier","src":"36408:3:24"},"nativeSrc":"36408:38:24","nodeType":"YulFunctionCall","src":"36408:38:24"},{"kind":"number","nativeSrc":"36448:1:24","nodeType":"YulLiteral","src":"36448:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"36401:6:24","nodeType":"YulIdentifier","src":"36401:6:24"},"nativeSrc":"36401:49:24","nodeType":"YulFunctionCall","src":"36401:49:24"},"nativeSrc":"36401:49:24","nodeType":"YulExpressionStatement","src":"36401:49:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36602:4:24","nodeType":"YulLiteral","src":"36602:4:24","type":"","value":"0x40"},{"arguments":[{"name":"element","nativeSrc":"36612:7:24","nodeType":"YulIdentifier","src":"36612:7:24"},{"arguments":[{"arguments":[{"name":"elementLength","nativeSrc":"36629:13:24","nodeType":"YulIdentifier","src":"36629:13:24"},{"kind":"number","nativeSrc":"36644:4:24","nodeType":"YulLiteral","src":"36644:4:24","type":"","value":"0x3f"}],"functionName":{"name":"add","nativeSrc":"36625:3:24","nodeType":"YulIdentifier","src":"36625:3:24"},"nativeSrc":"36625:24:24","nodeType":"YulFunctionCall","src":"36625:24:24"},{"name":"w","nativeSrc":"36651:1:24","nodeType":"YulIdentifier","src":"36651:1:24"}],"functionName":{"name":"and","nativeSrc":"36621:3:24","nodeType":"YulIdentifier","src":"36621:3:24"},"nativeSrc":"36621:32:24","nodeType":"YulFunctionCall","src":"36621:32:24"}],"functionName":{"name":"add","nativeSrc":"36608:3:24","nodeType":"YulIdentifier","src":"36608:3:24"},"nativeSrc":"36608:46:24","nodeType":"YulFunctionCall","src":"36608:46:24"}],"functionName":{"name":"mstore","nativeSrc":"36595:6:24","nodeType":"YulIdentifier","src":"36595:6:24"},"nativeSrc":"36595:60:24","nodeType":"YulFunctionCall","src":"36595:60:24"},"nativeSrc":"36595:60:24","nodeType":"YulExpressionStatement","src":"36595:60:24"},{"expression":{"arguments":[{"name":"indexPtr","nativeSrc":"36742:8:24","nodeType":"YulIdentifier","src":"36742:8:24"},{"name":"element","nativeSrc":"36752:7:24","nodeType":"YulIdentifier","src":"36752:7:24"}],"functionName":{"name":"mstore","nativeSrc":"36735:6:24","nodeType":"YulIdentifier","src":"36735:6:24"},"nativeSrc":"36735:25:24","nodeType":"YulFunctionCall","src":"36735:25:24"},"nativeSrc":"36735:25:24","nodeType":"YulExpressionStatement","src":"36735:25:24"}]},"condition":{"arguments":[{"arguments":[{"name":"index","nativeSrc":"35776:5:24","nodeType":"YulIdentifier","src":"35776:5:24"},{"name":"prevIndex","nativeSrc":"35783:9:24","nodeType":"YulIdentifier","src":"35783:9:24"}],"functionName":{"name":"eq","nativeSrc":"35773:2:24","nodeType":"YulIdentifier","src":"35773:2:24"},"nativeSrc":"35773:20:24","nodeType":"YulFunctionCall","src":"35773:20:24"}],"functionName":{"name":"iszero","nativeSrc":"35766:6:24","nodeType":"YulIdentifier","src":"35766:6:24"},"nativeSrc":"35766:28:24","nodeType":"YulFunctionCall","src":"35766:28:24"},"nativeSrc":"35763:1015:24","nodeType":"YulIf","src":"35763:1015:24"},{"nativeSrc":"36795:41:24","nodeType":"YulAssignment","src":"36795:41:24","value":{"arguments":[{"name":"index","nativeSrc":"36812:5:24","nodeType":"YulIdentifier","src":"36812:5:24"},{"arguments":[{"name":"delimiter","nativeSrc":"36825:9:24","nodeType":"YulIdentifier","src":"36825:9:24"}],"functionName":{"name":"mload","nativeSrc":"36819:5:24","nodeType":"YulIdentifier","src":"36819:5:24"},"nativeSrc":"36819:16:24","nodeType":"YulFunctionCall","src":"36819:16:24"}],"functionName":{"name":"add","nativeSrc":"36808:3:24","nodeType":"YulIdentifier","src":"36808:3:24"},"nativeSrc":"36808:28:24","nodeType":"YulFunctionCall","src":"36808:28:24"},"variableNames":[{"name":"prevIndex","nativeSrc":"36795:9:24","nodeType":"YulIdentifier","src":"36795:9:24"}]},{"nativeSrc":"36853:31:24","nodeType":"YulAssignment","src":"36853:31:24","value":{"arguments":[{"name":"indexPtr","nativeSrc":"36869:8:24","nodeType":"YulIdentifier","src":"36869:8:24"},{"kind":"number","nativeSrc":"36879:4:24","nodeType":"YulLiteral","src":"36879:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36865:3:24","nodeType":"YulIdentifier","src":"36865:3:24"},"nativeSrc":"36865:19:24","nodeType":"YulFunctionCall","src":"36865:19:24"},"variableNames":[{"name":"indexPtr","nativeSrc":"36853:8:24","nodeType":"YulIdentifier","src":"36853:8:24"}]},{"body":{"nativeSrc":"36937:9:24","nodeType":"YulBlock","src":"36937:9:24","statements":[{"nativeSrc":"36939:5:24","nodeType":"YulBreak","src":"36939:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"indexPtr","nativeSrc":"36914:8:24","nodeType":"YulIdentifier","src":"36914:8:24"},{"name":"indicesEnd","nativeSrc":"36924:10:24","nodeType":"YulIdentifier","src":"36924:10:24"}],"functionName":{"name":"lt","nativeSrc":"36911:2:24","nodeType":"YulIdentifier","src":"36911:2:24"},"nativeSrc":"36911:24:24","nodeType":"YulFunctionCall","src":"36911:24:24"}],"functionName":{"name":"iszero","nativeSrc":"36904:6:24","nodeType":"YulIdentifier","src":"36904:6:24"},"nativeSrc":"36904:32:24","nodeType":"YulFunctionCall","src":"36904:32:24"},"nativeSrc":"36901:45:24","nodeType":"YulIf","src":"36901:45:24"}]},"condition":{"kind":"number","nativeSrc":"35656:1:24","nodeType":"YulLiteral","src":"35656:1:24","type":"","value":"1"},"nativeSrc":"35649:1311:24","nodeType":"YulForLoop","post":{"nativeSrc":"35658:2:24","nodeType":"YulBlock","src":"35658:2:24","statements":[]},"pre":{"nativeSrc":"35653:2:24","nodeType":"YulBlock","src":"35653:2:24","statements":[]},"src":"35649:1311:24"},{"nativeSrc":"36973:17:24","nodeType":"YulAssignment","src":"36973:17:24","value":{"name":"indices","nativeSrc":"36983:7:24","nodeType":"YulIdentifier","src":"36983:7:24"},"variableNames":[{"name":"result","nativeSrc":"36973:6:24","nodeType":"YulIdentifier","src":"36973:6:24"}]},{"body":{"nativeSrc":"37031:115:24","nodeType":"YulBlock","src":"37031:115:24","statements":[{"nativeSrc":"37049:28:24","nodeType":"YulAssignment","src":"37049:28:24","value":{"arguments":[{"name":"indices","nativeSrc":"37063:7:24","nodeType":"YulIdentifier","src":"37063:7:24"},{"kind":"number","nativeSrc":"37072:4:24","nodeType":"YulLiteral","src":"37072:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37059:3:24","nodeType":"YulIdentifier","src":"37059:3:24"},"nativeSrc":"37059:18:24","nodeType":"YulFunctionCall","src":"37059:18:24"},"variableNames":[{"name":"result","nativeSrc":"37049:6:24","nodeType":"YulIdentifier","src":"37049:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"37101:6:24","nodeType":"YulIdentifier","src":"37101:6:24"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"37119:7:24","nodeType":"YulIdentifier","src":"37119:7:24"}],"functionName":{"name":"mload","nativeSrc":"37113:5:24","nodeType":"YulIdentifier","src":"37113:5:24"},"nativeSrc":"37113:14:24","nodeType":"YulFunctionCall","src":"37113:14:24"},{"kind":"number","nativeSrc":"37129:1:24","nodeType":"YulLiteral","src":"37129:1:24","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"37109:3:24","nodeType":"YulIdentifier","src":"37109:3:24"},"nativeSrc":"37109:22:24","nodeType":"YulFunctionCall","src":"37109:22:24"}],"functionName":{"name":"mstore","nativeSrc":"37094:6:24","nodeType":"YulIdentifier","src":"37094:6:24"},"nativeSrc":"37094:38:24","nodeType":"YulFunctionCall","src":"37094:38:24"},"nativeSrc":"37094:38:24","nodeType":"YulExpressionStatement","src":"37094:38:24"}]},"condition":{"arguments":[{"arguments":[{"name":"delimiter","nativeSrc":"37019:9:24","nodeType":"YulIdentifier","src":"37019:9:24"}],"functionName":{"name":"mload","nativeSrc":"37013:5:24","nodeType":"YulIdentifier","src":"37013:5:24"},"nativeSrc":"37013:16:24","nodeType":"YulFunctionCall","src":"37013:16:24"}],"functionName":{"name":"iszero","nativeSrc":"37006:6:24","nodeType":"YulIdentifier","src":"37006:6:24"},"nativeSrc":"37006:24:24","nodeType":"YulFunctionCall","src":"37006:24:24"},"nativeSrc":"37003:143:24","nodeType":"YulIf","src":"37003:143:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10745,"isOffset":false,"isSlot":false,"src":"36825:9:24","valueSize":1},{"declaration":10745,"isOffset":false,"isSlot":false,"src":"37019:9:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35408:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35484:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35573:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"35592:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"36983:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"37063:7:24","valueSize":1},{"declaration":10755,"isOffset":false,"isSlot":false,"src":"37119:7:24","valueSize":1},{"declaration":10749,"isOffset":false,"isSlot":false,"src":"36973:6:24","valueSize":1},{"declaration":10749,"isOffset":false,"isSlot":false,"src":"37049:6:24","valueSize":1},{"declaration":10749,"isOffset":false,"isSlot":false,"src":"37101:6:24","valueSize":1},{"declaration":10743,"isOffset":false,"isSlot":false,"src":"35544:7:24","valueSize":1},{"declaration":10743,"isOffset":false,"isSlot":false,"src":"36170:7:24","valueSize":1}],"id":10761,"nodeType":"InlineAssembly","src":"35334:1822:24"}]},"documentation":{"id":10741,"nodeType":"StructuredDocumentation","src":"34979:93:24","text":"@dev Returns a arrays of strings based on the `delimiter` inside of the `subject` string."},"id":10763,"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"35086:5:24","nodeType":"FunctionDefinition","parameters":{"id":10746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10743,"mutability":"mutable","name":"subject","nameLocation":"35106:7:24","nodeType":"VariableDeclaration","scope":10763,"src":"35092:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10742,"name":"string","nodeType":"ElementaryTypeName","src":"35092:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10745,"mutability":"mutable","name":"delimiter","nameLocation":"35129:9:24","nodeType":"VariableDeclaration","scope":10763,"src":"35115:23:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10744,"name":"string","nodeType":"ElementaryTypeName","src":"35115:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35091:48:24"},"returnParameters":{"id":10750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10749,"mutability":"mutable","name":"result","nameLocation":"35203:6:24","nodeType":"VariableDeclaration","scope":10763,"src":"35187:22:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":10747,"name":"string","nodeType":"ElementaryTypeName","src":"35187:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":10748,"nodeType":"ArrayTypeName","src":"35187:8:24","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"35186:24:24"},"scope":10964,"src":"35077:2085:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10774,"nodeType":"Block","src":"37436:1242:24","statements":[{"AST":{"nativeSrc":"37498:1174:24","nodeType":"YulBlock","src":"37498:1174:24","statements":[{"nativeSrc":"37512:18:24","nodeType":"YulVariableDeclaration","src":"37512:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"37525:4:24","nodeType":"YulLiteral","src":"37525:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"37521:3:24","nodeType":"YulIdentifier","src":"37521:3:24"},"nativeSrc":"37521:9:24","nodeType":"YulFunctionCall","src":"37521:9:24"},"variables":[{"name":"w","nativeSrc":"37516:1:24","nodeType":"YulTypedName","src":"37516:1:24","type":""}]},{"nativeSrc":"37543:21:24","nodeType":"YulAssignment","src":"37543:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"37559:4:24","nodeType":"YulLiteral","src":"37559:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37553:5:24","nodeType":"YulIdentifier","src":"37553:5:24"},"nativeSrc":"37553:11:24","nodeType":"YulFunctionCall","src":"37553:11:24"},"variableNames":[{"name":"result","nativeSrc":"37543:6:24","nodeType":"YulIdentifier","src":"37543:6:24"}]},{"nativeSrc":"37577:23:24","nodeType":"YulVariableDeclaration","src":"37577:23:24","value":{"arguments":[{"name":"a","nativeSrc":"37598:1:24","nodeType":"YulIdentifier","src":"37598:1:24"}],"functionName":{"name":"mload","nativeSrc":"37592:5:24","nodeType":"YulIdentifier","src":"37592:5:24"},"nativeSrc":"37592:8:24","nodeType":"YulFunctionCall","src":"37592:8:24"},"variables":[{"name":"aLength","nativeSrc":"37581:7:24","nodeType":"YulTypedName","src":"37581:7:24","type":""}]},{"body":{"nativeSrc":"37717:161:24","nodeType":"YulBlock","src":"37717:161:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37746:6:24","nodeType":"YulIdentifier","src":"37746:6:24"},{"name":"o","nativeSrc":"37754:1:24","nodeType":"YulIdentifier","src":"37754:1:24"}],"functionName":{"name":"add","nativeSrc":"37742:3:24","nodeType":"YulIdentifier","src":"37742:3:24"},"nativeSrc":"37742:14:24","nodeType":"YulFunctionCall","src":"37742:14:24"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"37768:1:24","nodeType":"YulIdentifier","src":"37768:1:24"},{"name":"o","nativeSrc":"37771:1:24","nodeType":"YulIdentifier","src":"37771:1:24"}],"functionName":{"name":"add","nativeSrc":"37764:3:24","nodeType":"YulIdentifier","src":"37764:3:24"},"nativeSrc":"37764:9:24","nodeType":"YulFunctionCall","src":"37764:9:24"}],"functionName":{"name":"mload","nativeSrc":"37758:5:24","nodeType":"YulIdentifier","src":"37758:5:24"},"nativeSrc":"37758:16:24","nodeType":"YulFunctionCall","src":"37758:16:24"}],"functionName":{"name":"mstore","nativeSrc":"37735:6:24","nodeType":"YulIdentifier","src":"37735:6:24"},"nativeSrc":"37735:40:24","nodeType":"YulFunctionCall","src":"37735:40:24"},"nativeSrc":"37735:40:24","nodeType":"YulExpressionStatement","src":"37735:40:24"},{"nativeSrc":"37792:14:24","nodeType":"YulAssignment","src":"37792:14:24","value":{"arguments":[{"name":"o","nativeSrc":"37801:1:24","nodeType":"YulIdentifier","src":"37801:1:24"},{"name":"w","nativeSrc":"37804:1:24","nodeType":"YulIdentifier","src":"37804:1:24"}],"functionName":{"name":"add","nativeSrc":"37797:3:24","nodeType":"YulIdentifier","src":"37797:3:24"},"nativeSrc":"37797:9:24","nodeType":"YulFunctionCall","src":"37797:9:24"},"variableNames":[{"name":"o","nativeSrc":"37792:1:24","nodeType":"YulIdentifier","src":"37792:1:24"}]},{"body":{"nativeSrc":"37855:9:24","nodeType":"YulBlock","src":"37855:9:24","statements":[{"nativeSrc":"37857:5:24","nodeType":"YulBreak","src":"37857:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"37852:1:24","nodeType":"YulIdentifier","src":"37852:1:24"}],"functionName":{"name":"iszero","nativeSrc":"37845:6:24","nodeType":"YulIdentifier","src":"37845:6:24"},"nativeSrc":"37845:9:24","nodeType":"YulFunctionCall","src":"37845:9:24"},"nativeSrc":"37842:22:24","nodeType":"YulIf","src":"37842:22:24"}]},"condition":{"kind":"number","nativeSrc":"37712:1:24","nodeType":"YulLiteral","src":"37712:1:24","type":"","value":"1"},"nativeSrc":"37668:210:24","nodeType":"YulForLoop","post":{"nativeSrc":"37714:2:24","nodeType":"YulBlock","src":"37714:2:24","statements":[]},"pre":{"nativeSrc":"37672:39:24","nodeType":"YulBlock","src":"37672:39:24","statements":[{"nativeSrc":"37674:35:24","nodeType":"YulVariableDeclaration","src":"37674:35:24","value":{"arguments":[{"arguments":[{"name":"aLength","nativeSrc":"37691:7:24","nodeType":"YulIdentifier","src":"37691:7:24"},{"kind":"number","nativeSrc":"37700:4:24","nodeType":"YulLiteral","src":"37700:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37687:3:24","nodeType":"YulIdentifier","src":"37687:3:24"},"nativeSrc":"37687:18:24","nodeType":"YulFunctionCall","src":"37687:18:24"},{"name":"w","nativeSrc":"37707:1:24","nodeType":"YulIdentifier","src":"37707:1:24"}],"functionName":{"name":"and","nativeSrc":"37683:3:24","nodeType":"YulIdentifier","src":"37683:3:24"},"nativeSrc":"37683:26:24","nodeType":"YulFunctionCall","src":"37683:26:24"},"variables":[{"name":"o","nativeSrc":"37678:1:24","nodeType":"YulTypedName","src":"37678:1:24","type":""}]}]},"src":"37668:210:24"},{"nativeSrc":"37891:23:24","nodeType":"YulVariableDeclaration","src":"37891:23:24","value":{"arguments":[{"name":"b","nativeSrc":"37912:1:24","nodeType":"YulIdentifier","src":"37912:1:24"}],"functionName":{"name":"mload","nativeSrc":"37906:5:24","nodeType":"YulIdentifier","src":"37906:5:24"},"nativeSrc":"37906:8:24","nodeType":"YulFunctionCall","src":"37906:8:24"},"variables":[{"name":"bLength","nativeSrc":"37895:7:24","nodeType":"YulTypedName","src":"37895:7:24","type":""}]},{"nativeSrc":"37927:34:24","nodeType":"YulVariableDeclaration","src":"37927:34:24","value":{"arguments":[{"name":"result","nativeSrc":"37945:6:24","nodeType":"YulIdentifier","src":"37945:6:24"},{"name":"aLength","nativeSrc":"37953:7:24","nodeType":"YulIdentifier","src":"37953:7:24"}],"functionName":{"name":"add","nativeSrc":"37941:3:24","nodeType":"YulIdentifier","src":"37941:3:24"},"nativeSrc":"37941:20:24","nodeType":"YulFunctionCall","src":"37941:20:24"},"variables":[{"name":"output","nativeSrc":"37931:6:24","nodeType":"YulTypedName","src":"37931:6:24","type":""}]},{"body":{"nativeSrc":"38078:161:24","nodeType":"YulBlock","src":"38078:161:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nativeSrc":"38107:6:24","nodeType":"YulIdentifier","src":"38107:6:24"},{"name":"o","nativeSrc":"38115:1:24","nodeType":"YulIdentifier","src":"38115:1:24"}],"functionName":{"name":"add","nativeSrc":"38103:3:24","nodeType":"YulIdentifier","src":"38103:3:24"},"nativeSrc":"38103:14:24","nodeType":"YulFunctionCall","src":"38103:14:24"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"38129:1:24","nodeType":"YulIdentifier","src":"38129:1:24"},{"name":"o","nativeSrc":"38132:1:24","nodeType":"YulIdentifier","src":"38132:1:24"}],"functionName":{"name":"add","nativeSrc":"38125:3:24","nodeType":"YulIdentifier","src":"38125:3:24"},"nativeSrc":"38125:9:24","nodeType":"YulFunctionCall","src":"38125:9:24"}],"functionName":{"name":"mload","nativeSrc":"38119:5:24","nodeType":"YulIdentifier","src":"38119:5:24"},"nativeSrc":"38119:16:24","nodeType":"YulFunctionCall","src":"38119:16:24"}],"functionName":{"name":"mstore","nativeSrc":"38096:6:24","nodeType":"YulIdentifier","src":"38096:6:24"},"nativeSrc":"38096:40:24","nodeType":"YulFunctionCall","src":"38096:40:24"},"nativeSrc":"38096:40:24","nodeType":"YulExpressionStatement","src":"38096:40:24"},{"nativeSrc":"38153:14:24","nodeType":"YulAssignment","src":"38153:14:24","value":{"arguments":[{"name":"o","nativeSrc":"38162:1:24","nodeType":"YulIdentifier","src":"38162:1:24"},{"name":"w","nativeSrc":"38165:1:24","nodeType":"YulIdentifier","src":"38165:1:24"}],"functionName":{"name":"add","nativeSrc":"38158:3:24","nodeType":"YulIdentifier","src":"38158:3:24"},"nativeSrc":"38158:9:24","nodeType":"YulFunctionCall","src":"38158:9:24"},"variableNames":[{"name":"o","nativeSrc":"38153:1:24","nodeType":"YulIdentifier","src":"38153:1:24"}]},{"body":{"nativeSrc":"38216:9:24","nodeType":"YulBlock","src":"38216:9:24","statements":[{"nativeSrc":"38218:5:24","nodeType":"YulBreak","src":"38218:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"38213:1:24","nodeType":"YulIdentifier","src":"38213:1:24"}],"functionName":{"name":"iszero","nativeSrc":"38206:6:24","nodeType":"YulIdentifier","src":"38206:6:24"},"nativeSrc":"38206:9:24","nodeType":"YulFunctionCall","src":"38206:9:24"},"nativeSrc":"38203:22:24","nodeType":"YulIf","src":"38203:22:24"}]},"condition":{"kind":"number","nativeSrc":"38073:1:24","nodeType":"YulLiteral","src":"38073:1:24","type":"","value":"1"},"nativeSrc":"38029:210:24","nodeType":"YulForLoop","post":{"nativeSrc":"38075:2:24","nodeType":"YulBlock","src":"38075:2:24","statements":[]},"pre":{"nativeSrc":"38033:39:24","nodeType":"YulBlock","src":"38033:39:24","statements":[{"nativeSrc":"38035:35:24","nodeType":"YulVariableDeclaration","src":"38035:35:24","value":{"arguments":[{"arguments":[{"name":"bLength","nativeSrc":"38052:7:24","nodeType":"YulIdentifier","src":"38052:7:24"},{"kind":"number","nativeSrc":"38061:4:24","nodeType":"YulLiteral","src":"38061:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38048:3:24","nodeType":"YulIdentifier","src":"38048:3:24"},"nativeSrc":"38048:18:24","nodeType":"YulFunctionCall","src":"38048:18:24"},{"name":"w","nativeSrc":"38068:1:24","nodeType":"YulIdentifier","src":"38068:1:24"}],"functionName":{"name":"and","nativeSrc":"38044:3:24","nodeType":"YulIdentifier","src":"38044:3:24"},"nativeSrc":"38044:26:24","nodeType":"YulFunctionCall","src":"38044:26:24"},"variables":[{"name":"o","nativeSrc":"38039:1:24","nodeType":"YulTypedName","src":"38039:1:24","type":""}]}]},"src":"38029:210:24"},{"nativeSrc":"38252:40:24","nodeType":"YulVariableDeclaration","src":"38252:40:24","value":{"arguments":[{"name":"aLength","nativeSrc":"38275:7:24","nodeType":"YulIdentifier","src":"38275:7:24"},{"name":"bLength","nativeSrc":"38284:7:24","nodeType":"YulIdentifier","src":"38284:7:24"}],"functionName":{"name":"add","nativeSrc":"38271:3:24","nodeType":"YulIdentifier","src":"38271:3:24"},"nativeSrc":"38271:21:24","nodeType":"YulFunctionCall","src":"38271:21:24"},"variables":[{"name":"totalLength","nativeSrc":"38256:11:24","nodeType":"YulTypedName","src":"38256:11:24","type":""}]},{"nativeSrc":"38305:47:24","nodeType":"YulVariableDeclaration","src":"38305:47:24","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38325:6:24","nodeType":"YulIdentifier","src":"38325:6:24"},{"kind":"number","nativeSrc":"38333:4:24","nodeType":"YulLiteral","src":"38333:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38321:3:24","nodeType":"YulIdentifier","src":"38321:3:24"},"nativeSrc":"38321:17:24","nodeType":"YulFunctionCall","src":"38321:17:24"},{"name":"totalLength","nativeSrc":"38340:11:24","nodeType":"YulIdentifier","src":"38340:11:24"}],"functionName":{"name":"add","nativeSrc":"38317:3:24","nodeType":"YulIdentifier","src":"38317:3:24"},"nativeSrc":"38317:35:24","nodeType":"YulFunctionCall","src":"38317:35:24"},"variables":[{"name":"last","nativeSrc":"38309:4:24","nodeType":"YulTypedName","src":"38309:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"38422:4:24","nodeType":"YulIdentifier","src":"38422:4:24"},{"kind":"number","nativeSrc":"38428:1:24","nodeType":"YulLiteral","src":"38428:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38415:6:24","nodeType":"YulIdentifier","src":"38415:6:24"},"nativeSrc":"38415:15:24","nodeType":"YulFunctionCall","src":"38415:15:24"},"nativeSrc":"38415:15:24","nodeType":"YulExpressionStatement","src":"38415:15:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"38484:6:24","nodeType":"YulIdentifier","src":"38484:6:24"},{"name":"totalLength","nativeSrc":"38492:11:24","nodeType":"YulIdentifier","src":"38492:11:24"}],"functionName":{"name":"mstore","nativeSrc":"38477:6:24","nodeType":"YulIdentifier","src":"38477:6:24"},"nativeSrc":"38477:27:24","nodeType":"YulFunctionCall","src":"38477:27:24"},"nativeSrc":"38477:27:24","nodeType":"YulExpressionStatement","src":"38477:27:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38632:4:24","nodeType":"YulLiteral","src":"38632:4:24","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"last","nativeSrc":"38646:4:24","nodeType":"YulIdentifier","src":"38646:4:24"},{"kind":"number","nativeSrc":"38652:4:24","nodeType":"YulLiteral","src":"38652:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"38642:3:24","nodeType":"YulIdentifier","src":"38642:3:24"},"nativeSrc":"38642:15:24","nodeType":"YulFunctionCall","src":"38642:15:24"},{"name":"w","nativeSrc":"38659:1:24","nodeType":"YulIdentifier","src":"38659:1:24"}],"functionName":{"name":"and","nativeSrc":"38638:3:24","nodeType":"YulIdentifier","src":"38638:3:24"},"nativeSrc":"38638:23:24","nodeType":"YulFunctionCall","src":"38638:23:24"}],"functionName":{"name":"mstore","nativeSrc":"38625:6:24","nodeType":"YulIdentifier","src":"38625:6:24"},"nativeSrc":"38625:37:24","nodeType":"YulFunctionCall","src":"38625:37:24"},"nativeSrc":"38625:37:24","nodeType":"YulExpressionStatement","src":"38625:37:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10766,"isOffset":false,"isSlot":false,"src":"37598:1:24","valueSize":1},{"declaration":10766,"isOffset":false,"isSlot":false,"src":"37768:1:24","valueSize":1},{"declaration":10768,"isOffset":false,"isSlot":false,"src":"37912:1:24","valueSize":1},{"declaration":10768,"isOffset":false,"isSlot":false,"src":"38129:1:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"37543:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"37746:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"37945:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"38325:6:24","valueSize":1},{"declaration":10771,"isOffset":false,"isSlot":false,"src":"38484:6:24","valueSize":1}],"id":10773,"nodeType":"InlineAssembly","src":"37489:1183:24"}]},"documentation":{"id":10764,"nodeType":"StructuredDocumentation","src":"37168:140:24","text":"@dev Returns a concatenated string of `a` and `b`.\n Cheaper than `string.concat()` and does not de-align the free memory pointer."},"id":10775,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"37322:6:24","nodeType":"FunctionDefinition","parameters":{"id":10769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10766,"mutability":"mutable","name":"a","nameLocation":"37343:1:24","nodeType":"VariableDeclaration","scope":10775,"src":"37329:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10765,"name":"string","nodeType":"ElementaryTypeName","src":"37329:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10768,"mutability":"mutable","name":"b","nameLocation":"37360:1:24","nodeType":"VariableDeclaration","scope":10775,"src":"37346:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10767,"name":"string","nodeType":"ElementaryTypeName","src":"37346:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37328:34:24"},"returnParameters":{"id":10772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10771,"mutability":"mutable","name":"result","nameLocation":"37424:6:24","nodeType":"VariableDeclaration","scope":10775,"src":"37410:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10770,"name":"string","nodeType":"ElementaryTypeName","src":"37410:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37409:22:24"},"scope":10964,"src":"37313:1365:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10786,"nodeType":"Block","src":"38962:933:24","statements":[{"AST":{"nativeSrc":"39024:865:24","nodeType":"YulBlock","src":"39024:865:24","statements":[{"nativeSrc":"39038:28:24","nodeType":"YulVariableDeclaration","src":"39038:28:24","value":{"arguments":[{"name":"subject","nativeSrc":"39058:7:24","nodeType":"YulIdentifier","src":"39058:7:24"}],"functionName":{"name":"mload","nativeSrc":"39052:5:24","nodeType":"YulIdentifier","src":"39052:5:24"},"nativeSrc":"39052:14:24","nodeType":"YulFunctionCall","src":"39052:14:24"},"variables":[{"name":"length","nativeSrc":"39042:6:24","nodeType":"YulTypedName","src":"39042:6:24","type":""}]},{"body":{"nativeSrc":"39089:790:24","nodeType":"YulBlock","src":"39089:790:24","statements":[{"nativeSrc":"39107:32:24","nodeType":"YulAssignment","src":"39107:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39127:4:24","nodeType":"YulLiteral","src":"39127:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"39121:5:24","nodeType":"YulIdentifier","src":"39121:5:24"},"nativeSrc":"39121:11:24","nodeType":"YulFunctionCall","src":"39121:11:24"},{"kind":"number","nativeSrc":"39134:4:24","nodeType":"YulLiteral","src":"39134:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39117:3:24","nodeType":"YulIdentifier","src":"39117:3:24"},"nativeSrc":"39117:22:24","nodeType":"YulFunctionCall","src":"39117:22:24"},"variableNames":[{"name":"result","nativeSrc":"39107:6:24","nodeType":"YulIdentifier","src":"39107:6:24"}]},{"nativeSrc":"39156:26:24","nodeType":"YulAssignment","src":"39156:26:24","value":{"arguments":[{"name":"subject","nativeSrc":"39171:7:24","nodeType":"YulIdentifier","src":"39171:7:24"},{"kind":"number","nativeSrc":"39180:1:24","nodeType":"YulLiteral","src":"39180:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39167:3:24","nodeType":"YulIdentifier","src":"39167:3:24"},"nativeSrc":"39167:15:24","nodeType":"YulFunctionCall","src":"39167:15:24"},"variableNames":[{"name":"subject","nativeSrc":"39156:7:24","nodeType":"YulIdentifier","src":"39156:7:24"}]},{"nativeSrc":"39199:53:24","nodeType":"YulVariableDeclaration","src":"39199:53:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39220:2:24","nodeType":"YulLiteral","src":"39220:2:24","type":"","value":"70"},{"arguments":[{"kind":"number","nativeSrc":"39228:1:24","nodeType":"YulLiteral","src":"39228:1:24","type":"","value":"5"},{"name":"toUpper","nativeSrc":"39231:7:24","nodeType":"YulIdentifier","src":"39231:7:24"}],"functionName":{"name":"shl","nativeSrc":"39224:3:24","nodeType":"YulIdentifier","src":"39224:3:24"},"nativeSrc":"39224:15:24","nodeType":"YulFunctionCall","src":"39224:15:24"}],"functionName":{"name":"add","nativeSrc":"39216:3:24","nodeType":"YulIdentifier","src":"39216:3:24"},"nativeSrc":"39216:24:24","nodeType":"YulFunctionCall","src":"39216:24:24"},{"kind":"number","nativeSrc":"39242:9:24","nodeType":"YulLiteral","src":"39242:9:24","type":"","value":"0x3ffffff"}],"functionName":{"name":"shl","nativeSrc":"39212:3:24","nodeType":"YulIdentifier","src":"39212:3:24"},"nativeSrc":"39212:40:24","nodeType":"YulFunctionCall","src":"39212:40:24"},"variables":[{"name":"flags","nativeSrc":"39203:5:24","nodeType":"YulTypedName","src":"39203:5:24","type":""}]},{"nativeSrc":"39269:15:24","nodeType":"YulVariableDeclaration","src":"39269:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"39282:1:24","nodeType":"YulLiteral","src":"39282:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"39278:3:24","nodeType":"YulIdentifier","src":"39278:3:24"},"nativeSrc":"39278:6:24","nodeType":"YulFunctionCall","src":"39278:6:24"},"variables":[{"name":"w","nativeSrc":"39273:1:24","nodeType":"YulTypedName","src":"39273:1:24","type":""}]},{"body":{"nativeSrc":"39330:238:24","nodeType":"YulBlock","src":"39330:238:24","statements":[{"nativeSrc":"39352:14:24","nodeType":"YulAssignment","src":"39352:14:24","value":{"arguments":[{"name":"o","nativeSrc":"39361:1:24","nodeType":"YulIdentifier","src":"39361:1:24"},{"name":"w","nativeSrc":"39364:1:24","nodeType":"YulIdentifier","src":"39364:1:24"}],"functionName":{"name":"add","nativeSrc":"39357:3:24","nodeType":"YulIdentifier","src":"39357:3:24"},"nativeSrc":"39357:9:24","nodeType":"YulFunctionCall","src":"39357:9:24"},"variableNames":[{"name":"o","nativeSrc":"39352:1:24","nodeType":"YulIdentifier","src":"39352:1:24"}]},{"nativeSrc":"39387:42:24","nodeType":"YulVariableDeclaration","src":"39387:42:24","value":{"arguments":[{"kind":"number","nativeSrc":"39400:4:24","nodeType":"YulLiteral","src":"39400:4:24","type":"","value":"0xff"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"39416:7:24","nodeType":"YulIdentifier","src":"39416:7:24"},{"name":"o","nativeSrc":"39425:1:24","nodeType":"YulIdentifier","src":"39425:1:24"}],"functionName":{"name":"add","nativeSrc":"39412:3:24","nodeType":"YulIdentifier","src":"39412:3:24"},"nativeSrc":"39412:15:24","nodeType":"YulFunctionCall","src":"39412:15:24"}],"functionName":{"name":"mload","nativeSrc":"39406:5:24","nodeType":"YulIdentifier","src":"39406:5:24"},"nativeSrc":"39406:22:24","nodeType":"YulFunctionCall","src":"39406:22:24"}],"functionName":{"name":"and","nativeSrc":"39396:3:24","nodeType":"YulIdentifier","src":"39396:3:24"},"nativeSrc":"39396:33:24","nodeType":"YulFunctionCall","src":"39396:33:24"},"variables":[{"name":"b","nativeSrc":"39391:1:24","nodeType":"YulTypedName","src":"39391:1:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"39462:6:24","nodeType":"YulIdentifier","src":"39462:6:24"},{"name":"o","nativeSrc":"39470:1:24","nodeType":"YulIdentifier","src":"39470:1:24"}],"functionName":{"name":"add","nativeSrc":"39458:3:24","nodeType":"YulIdentifier","src":"39458:3:24"},"nativeSrc":"39458:14:24","nodeType":"YulFunctionCall","src":"39458:14:24"},{"arguments":[{"name":"b","nativeSrc":"39478:1:24","nodeType":"YulIdentifier","src":"39478:1:24"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"39489:1:24","nodeType":"YulIdentifier","src":"39489:1:24"},{"name":"flags","nativeSrc":"39492:5:24","nodeType":"YulIdentifier","src":"39492:5:24"}],"functionName":{"name":"shr","nativeSrc":"39485:3:24","nodeType":"YulIdentifier","src":"39485:3:24"},"nativeSrc":"39485:13:24","nodeType":"YulFunctionCall","src":"39485:13:24"},{"kind":"number","nativeSrc":"39500:4:24","nodeType":"YulLiteral","src":"39500:4:24","type":"","value":"0x20"}],"functionName":{"name":"and","nativeSrc":"39481:3:24","nodeType":"YulIdentifier","src":"39481:3:24"},"nativeSrc":"39481:24:24","nodeType":"YulFunctionCall","src":"39481:24:24"}],"functionName":{"name":"xor","nativeSrc":"39474:3:24","nodeType":"YulIdentifier","src":"39474:3:24"},"nativeSrc":"39474:32:24","nodeType":"YulFunctionCall","src":"39474:32:24"}],"functionName":{"name":"mstore8","nativeSrc":"39450:7:24","nodeType":"YulIdentifier","src":"39450:7:24"},"nativeSrc":"39450:57:24","nodeType":"YulFunctionCall","src":"39450:57:24"},"nativeSrc":"39450:57:24","nodeType":"YulExpressionStatement","src":"39450:57:24"},{"body":{"nativeSrc":"39541:9:24","nodeType":"YulBlock","src":"39541:9:24","statements":[{"nativeSrc":"39543:5:24","nodeType":"YulBreak","src":"39543:5:24"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"39538:1:24","nodeType":"YulIdentifier","src":"39538:1:24"}],"functionName":{"name":"iszero","nativeSrc":"39531:6:24","nodeType":"YulIdentifier","src":"39531:6:24"},"nativeSrc":"39531:9:24","nodeType":"YulFunctionCall","src":"39531:9:24"},"nativeSrc":"39528:22:24","nodeType":"YulIf","src":"39528:22:24"}]},"condition":{"kind":"number","nativeSrc":"39325:1:24","nodeType":"YulLiteral","src":"39325:1:24","type":"","value":"1"},"nativeSrc":"39301:267:24","nodeType":"YulForLoop","post":{"nativeSrc":"39327:2:24","nodeType":"YulBlock","src":"39327:2:24","statements":[]},"pre":{"nativeSrc":"39305:19:24","nodeType":"YulBlock","src":"39305:19:24","statements":[{"nativeSrc":"39307:15:24","nodeType":"YulVariableDeclaration","src":"39307:15:24","value":{"name":"length","nativeSrc":"39316:6:24","nodeType":"YulIdentifier","src":"39316:6:24"},"variables":[{"name":"o","nativeSrc":"39311:1:24","nodeType":"YulTypedName","src":"39311:1:24","type":""}]}]},"src":"39301:267:24"},{"nativeSrc":"39585:21:24","nodeType":"YulAssignment","src":"39585:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"39601:4:24","nodeType":"YulLiteral","src":"39601:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"39595:5:24","nodeType":"YulIdentifier","src":"39595:5:24"},"nativeSrc":"39595:11:24","nodeType":"YulFunctionCall","src":"39595:11:24"},"variableNames":[{"name":"result","nativeSrc":"39585:6:24","nodeType":"YulIdentifier","src":"39585:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"39630:6:24","nodeType":"YulIdentifier","src":"39630:6:24"},{"name":"length","nativeSrc":"39638:6:24","nodeType":"YulIdentifier","src":"39638:6:24"}],"functionName":{"name":"mstore","nativeSrc":"39623:6:24","nodeType":"YulIdentifier","src":"39623:6:24"},"nativeSrc":"39623:22:24","nodeType":"YulFunctionCall","src":"39623:22:24"},"nativeSrc":"39623:22:24","nodeType":"YulExpressionStatement","src":"39623:22:24"},{"nativeSrc":"39683:42:24","nodeType":"YulVariableDeclaration","src":"39683:42:24","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"39703:6:24","nodeType":"YulIdentifier","src":"39703:6:24"},{"kind":"number","nativeSrc":"39711:4:24","nodeType":"YulLiteral","src":"39711:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39699:3:24","nodeType":"YulIdentifier","src":"39699:3:24"},"nativeSrc":"39699:17:24","nodeType":"YulFunctionCall","src":"39699:17:24"},{"name":"length","nativeSrc":"39718:6:24","nodeType":"YulIdentifier","src":"39718:6:24"}],"functionName":{"name":"add","nativeSrc":"39695:3:24","nodeType":"YulIdentifier","src":"39695:3:24"},"nativeSrc":"39695:30:24","nodeType":"YulFunctionCall","src":"39695:30:24"},"variables":[{"name":"last","nativeSrc":"39687:4:24","nodeType":"YulTypedName","src":"39687:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"39749:4:24","nodeType":"YulIdentifier","src":"39749:4:24"},{"kind":"number","nativeSrc":"39755:1:24","nodeType":"YulLiteral","src":"39755:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"39742:6:24","nodeType":"YulIdentifier","src":"39742:6:24"},"nativeSrc":"39742:15:24","nodeType":"YulFunctionCall","src":"39742:15:24"},"nativeSrc":"39742:15:24","nodeType":"YulExpressionStatement","src":"39742:15:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39819:4:24","nodeType":"YulLiteral","src":"39819:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"39829:4:24","nodeType":"YulIdentifier","src":"39829:4:24"},{"kind":"number","nativeSrc":"39835:4:24","nodeType":"YulLiteral","src":"39835:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39825:3:24","nodeType":"YulIdentifier","src":"39825:3:24"},"nativeSrc":"39825:15:24","nodeType":"YulFunctionCall","src":"39825:15:24"}],"functionName":{"name":"mstore","nativeSrc":"39812:6:24","nodeType":"YulIdentifier","src":"39812:6:24"},"nativeSrc":"39812:29:24","nodeType":"YulFunctionCall","src":"39812:29:24"},"nativeSrc":"39812:29:24","nodeType":"YulExpressionStatement","src":"39812:29:24"}]},"condition":{"name":"length","nativeSrc":"39082:6:24","nodeType":"YulIdentifier","src":"39082:6:24"},"nativeSrc":"39079:800:24","nodeType":"YulIf","src":"39079:800:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39107:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39462:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39585:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39630:6:24","valueSize":1},{"declaration":10783,"isOffset":false,"isSlot":false,"src":"39703:6:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39058:7:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39156:7:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39171:7:24","valueSize":1},{"declaration":10778,"isOffset":false,"isSlot":false,"src":"39416:7:24","valueSize":1},{"declaration":10780,"isOffset":false,"isSlot":false,"src":"39231:7:24","valueSize":1}],"id":10785,"nodeType":"InlineAssembly","src":"39015:874:24"}]},"documentation":{"id":10776,"nodeType":"StructuredDocumentation","src":"38684:147:24","text":"@dev Returns a copy of the string in either lowercase or UPPERCASE.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10787,"implemented":true,"kind":"function","modifiers":[],"name":"toCase","nameLocation":"38845:6:24","nodeType":"FunctionDefinition","parameters":{"id":10781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10778,"mutability":"mutable","name":"subject","nameLocation":"38866:7:24","nodeType":"VariableDeclaration","scope":10787,"src":"38852:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10777,"name":"string","nodeType":"ElementaryTypeName","src":"38852:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10780,"mutability":"mutable","name":"toUpper","nameLocation":"38880:7:24","nodeType":"VariableDeclaration","scope":10787,"src":"38875:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10779,"name":"bool","nodeType":"ElementaryTypeName","src":"38875:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38851:37:24"},"returnParameters":{"id":10784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10783,"mutability":"mutable","name":"result","nameLocation":"38950:6:24","nodeType":"VariableDeclaration","scope":10787,"src":"38936:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10782,"name":"string","nodeType":"ElementaryTypeName","src":"38936:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38935:22:24"},"scope":10964,"src":"38836:1059:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10796,"nodeType":"Block","src":"40109:377:24","statements":[{"AST":{"nativeSrc":"40171:309:24","nodeType":"YulBlock","src":"40171:309:24","statements":[{"nativeSrc":"40185:21:24","nodeType":"YulAssignment","src":"40185:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"40201:4:24","nodeType":"YulLiteral","src":"40201:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"40195:5:24","nodeType":"YulIdentifier","src":"40195:5:24"},"nativeSrc":"40195:11:24","nodeType":"YulFunctionCall","src":"40195:11:24"},"variableNames":[{"name":"result","nativeSrc":"40185:6:24","nodeType":"YulIdentifier","src":"40185:6:24"}]},{"nativeSrc":"40219:10:24","nodeType":"YulVariableDeclaration","src":"40219:10:24","value":{"kind":"number","nativeSrc":"40228:1:24","nodeType":"YulLiteral","src":"40228:1:24","type":"","value":"0"},"variables":[{"name":"n","nativeSrc":"40223:1:24","nodeType":"YulTypedName","src":"40223:1:24","type":""}]},{"body":{"nativeSrc":"40279:2:24","nodeType":"YulBlock","src":"40279:2:24","statements":[]},"condition":{"arguments":[{"name":"n","nativeSrc":"40254:1:24","nodeType":"YulIdentifier","src":"40254:1:24"},{"name":"s","nativeSrc":"40257:1:24","nodeType":"YulIdentifier","src":"40257:1:24"}],"functionName":{"name":"byte","nativeSrc":"40249:4:24","nodeType":"YulIdentifier","src":"40249:4:24"},"nativeSrc":"40249:10:24","nodeType":"YulFunctionCall","src":"40249:10:24"},"nativeSrc":"40242:39:24","nodeType":"YulForLoop","post":{"nativeSrc":"40260:18:24","nodeType":"YulBlock","src":"40260:18:24","statements":[{"nativeSrc":"40262:14:24","nodeType":"YulAssignment","src":"40262:14:24","value":{"arguments":[{"name":"n","nativeSrc":"40271:1:24","nodeType":"YulIdentifier","src":"40271:1:24"},{"kind":"number","nativeSrc":"40274:1:24","nodeType":"YulLiteral","src":"40274:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"40267:3:24","nodeType":"YulIdentifier","src":"40267:3:24"},"nativeSrc":"40267:9:24","nodeType":"YulFunctionCall","src":"40267:9:24"},"variableNames":[{"name":"n","nativeSrc":"40262:1:24","nodeType":"YulIdentifier","src":"40262:1:24"}]}]},"pre":{"nativeSrc":"40246:2:24","nodeType":"YulBlock","src":"40246:2:24","statements":[]},"src":"40242:39:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"40319:6:24","nodeType":"YulIdentifier","src":"40319:6:24"},{"name":"n","nativeSrc":"40327:1:24","nodeType":"YulIdentifier","src":"40327:1:24"}],"functionName":{"name":"mstore","nativeSrc":"40312:6:24","nodeType":"YulIdentifier","src":"40312:6:24"},"nativeSrc":"40312:17:24","nodeType":"YulFunctionCall","src":"40312:17:24"},"nativeSrc":"40312:17:24","nodeType":"YulExpressionStatement","src":"40312:17:24"},{"nativeSrc":"40342:26:24","nodeType":"YulVariableDeclaration","src":"40342:26:24","value":{"arguments":[{"name":"result","nativeSrc":"40355:6:24","nodeType":"YulIdentifier","src":"40355:6:24"},{"kind":"number","nativeSrc":"40363:4:24","nodeType":"YulLiteral","src":"40363:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"40351:3:24","nodeType":"YulIdentifier","src":"40351:3:24"},"nativeSrc":"40351:17:24","nodeType":"YulFunctionCall","src":"40351:17:24"},"variables":[{"name":"o","nativeSrc":"40346:1:24","nodeType":"YulTypedName","src":"40346:1:24","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"40388:1:24","nodeType":"YulIdentifier","src":"40388:1:24"},{"name":"s","nativeSrc":"40391:1:24","nodeType":"YulIdentifier","src":"40391:1:24"}],"functionName":{"name":"mstore","nativeSrc":"40381:6:24","nodeType":"YulIdentifier","src":"40381:6:24"},"nativeSrc":"40381:12:24","nodeType":"YulFunctionCall","src":"40381:12:24"},"nativeSrc":"40381:12:24","nodeType":"YulExpressionStatement","src":"40381:12:24"},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"40417:1:24","nodeType":"YulIdentifier","src":"40417:1:24"},{"name":"n","nativeSrc":"40420:1:24","nodeType":"YulIdentifier","src":"40420:1:24"}],"functionName":{"name":"add","nativeSrc":"40413:3:24","nodeType":"YulIdentifier","src":"40413:3:24"},"nativeSrc":"40413:9:24","nodeType":"YulFunctionCall","src":"40413:9:24"},{"kind":"number","nativeSrc":"40424:1:24","nodeType":"YulLiteral","src":"40424:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"40406:6:24","nodeType":"YulIdentifier","src":"40406:6:24"},"nativeSrc":"40406:20:24","nodeType":"YulFunctionCall","src":"40406:20:24"},"nativeSrc":"40406:20:24","nodeType":"YulExpressionStatement","src":"40406:20:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40446:4:24","nodeType":"YulLiteral","src":"40446:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"40456:6:24","nodeType":"YulIdentifier","src":"40456:6:24"},{"kind":"number","nativeSrc":"40464:4:24","nodeType":"YulLiteral","src":"40464:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"40452:3:24","nodeType":"YulIdentifier","src":"40452:3:24"},"nativeSrc":"40452:17:24","nodeType":"YulFunctionCall","src":"40452:17:24"}],"functionName":{"name":"mstore","nativeSrc":"40439:6:24","nodeType":"YulIdentifier","src":"40439:6:24"},"nativeSrc":"40439:31:24","nodeType":"YulFunctionCall","src":"40439:31:24"},"nativeSrc":"40439:31:24","nodeType":"YulExpressionStatement","src":"40439:31:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40185:6:24","valueSize":1},{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40319:6:24","valueSize":1},{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40355:6:24","valueSize":1},{"declaration":10793,"isOffset":false,"isSlot":false,"src":"40456:6:24","valueSize":1},{"declaration":10790,"isOffset":false,"isSlot":false,"src":"40257:1:24","valueSize":1},{"declaration":10790,"isOffset":false,"isSlot":false,"src":"40391:1:24","valueSize":1}],"id":10795,"nodeType":"InlineAssembly","src":"40162:318:24"}]},"documentation":{"id":10788,"nodeType":"StructuredDocumentation","src":"39901:122:24","text":"@dev Returns a string from a small bytes32 string.\n `s` must be null-terminated, or behavior will be undefined."},"id":10797,"implemented":true,"kind":"function","modifiers":[],"name":"fromSmallString","nameLocation":"40037:15:24","nodeType":"FunctionDefinition","parameters":{"id":10791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10790,"mutability":"mutable","name":"s","nameLocation":"40061:1:24","nodeType":"VariableDeclaration","scope":10797,"src":"40053:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40053:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40052:11:24"},"returnParameters":{"id":10794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10793,"mutability":"mutable","name":"result","nameLocation":"40101:6:24","nodeType":"VariableDeclaration","scope":10797,"src":"40087:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10792,"name":"string","nodeType":"ElementaryTypeName","src":"40087:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40086:22:24"},"scope":10964,"src":"40028:458:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10806,"nodeType":"Block","src":"40662:259:24","statements":[{"AST":{"nativeSrc":"40724:191:24","nodeType":"YulBlock","src":"40724:191:24","statements":[{"body":{"nativeSrc":"40790:2:24","nodeType":"YulBlock","src":"40790:2:24","statements":[]},"condition":{"arguments":[{"name":"result","nativeSrc":"40750:6:24","nodeType":"YulIdentifier","src":"40750:6:24"},{"name":"s","nativeSrc":"40758:1:24","nodeType":"YulIdentifier","src":"40758:1:24"}],"functionName":{"name":"byte","nativeSrc":"40745:4:24","nodeType":"YulIdentifier","src":"40745:4:24"},"nativeSrc":"40745:15:24","nodeType":"YulFunctionCall","src":"40745:15:24"},"nativeSrc":"40738:54:24","nodeType":"YulForLoop","post":{"nativeSrc":"40761:28:24","nodeType":"YulBlock","src":"40761:28:24","statements":[{"nativeSrc":"40763:24:24","nodeType":"YulAssignment","src":"40763:24:24","value":{"arguments":[{"name":"result","nativeSrc":"40777:6:24","nodeType":"YulIdentifier","src":"40777:6:24"},{"kind":"number","nativeSrc":"40785:1:24","nodeType":"YulLiteral","src":"40785:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"40773:3:24","nodeType":"YulIdentifier","src":"40773:3:24"},"nativeSrc":"40773:14:24","nodeType":"YulFunctionCall","src":"40773:14:24"},"variableNames":[{"name":"result","nativeSrc":"40763:6:24","nodeType":"YulIdentifier","src":"40763:6:24"}]}]},"pre":{"nativeSrc":"40742:2:24","nodeType":"YulBlock","src":"40742:2:24","statements":[]},"src":"40738:54:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40830:4:24","nodeType":"YulLiteral","src":"40830:4:24","type":"","value":"0x00"},{"name":"s","nativeSrc":"40836:1:24","nodeType":"YulIdentifier","src":"40836:1:24"}],"functionName":{"name":"mstore","nativeSrc":"40823:6:24","nodeType":"YulIdentifier","src":"40823:6:24"},"nativeSrc":"40823:15:24","nodeType":"YulFunctionCall","src":"40823:15:24"},"nativeSrc":"40823:15:24","nodeType":"YulExpressionStatement","src":"40823:15:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"40858:6:24","nodeType":"YulIdentifier","src":"40858:6:24"},{"kind":"number","nativeSrc":"40866:4:24","nodeType":"YulLiteral","src":"40866:4:24","type":"","value":"0x00"}],"functionName":{"name":"mstore","nativeSrc":"40851:6:24","nodeType":"YulIdentifier","src":"40851:6:24"},"nativeSrc":"40851:20:24","nodeType":"YulFunctionCall","src":"40851:20:24"},"nativeSrc":"40851:20:24","nodeType":"YulExpressionStatement","src":"40851:20:24"},{"nativeSrc":"40884:21:24","nodeType":"YulAssignment","src":"40884:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"40900:4:24","nodeType":"YulLiteral","src":"40900:4:24","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"40894:5:24","nodeType":"YulIdentifier","src":"40894:5:24"},"nativeSrc":"40894:11:24","nodeType":"YulFunctionCall","src":"40894:11:24"},"variableNames":[{"name":"result","nativeSrc":"40884:6:24","nodeType":"YulIdentifier","src":"40884:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40750:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40763:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40777:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40858:6:24","valueSize":1},{"declaration":10803,"isOffset":false,"isSlot":false,"src":"40884:6:24","valueSize":1},{"declaration":10800,"isOffset":false,"isSlot":false,"src":"40758:1:24","valueSize":1},{"declaration":10800,"isOffset":false,"isSlot":false,"src":"40836:1:24","valueSize":1}],"id":10805,"nodeType":"InlineAssembly","src":"40715:200:24"}]},"documentation":{"id":10798,"nodeType":"StructuredDocumentation","src":"40492:85:24","text":"@dev Returns the small string, with all bytes after the first null byte zeroized."},"id":10807,"implemented":true,"kind":"function","modifiers":[],"name":"normalizeSmallString","nameLocation":"40591:20:24","nodeType":"FunctionDefinition","parameters":{"id":10801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10800,"mutability":"mutable","name":"s","nameLocation":"40620:1:24","nodeType":"VariableDeclaration","scope":10807,"src":"40612:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40612:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40611:11:24"},"returnParameters":{"id":10804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10803,"mutability":"mutable","name":"result","nameLocation":"40654:6:24","nodeType":"VariableDeclaration","scope":10807,"src":"40646:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10802,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40646:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40645:16:24"},"scope":10964,"src":"40582:339:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10816,"nodeType":"Block","src":"41084:343:24","statements":[{"AST":{"nativeSrc":"41146:275:24","nodeType":"YulBlock","src":"41146:275:24","statements":[{"nativeSrc":"41160:18:24","nodeType":"YulAssignment","src":"41160:18:24","value":{"arguments":[{"name":"s","nativeSrc":"41176:1:24","nodeType":"YulIdentifier","src":"41176:1:24"}],"functionName":{"name":"mload","nativeSrc":"41170:5:24","nodeType":"YulIdentifier","src":"41170:5:24"},"nativeSrc":"41170:8:24","nodeType":"YulFunctionCall","src":"41170:8:24"},"variableNames":[{"name":"result","nativeSrc":"41160:6:24","nodeType":"YulIdentifier","src":"41160:6:24"}]},{"body":{"nativeSrc":"41217:120:24","nodeType":"YulBlock","src":"41217:120:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41242:4:24","nodeType":"YulLiteral","src":"41242:4:24","type":"","value":"0x00"},{"kind":"number","nativeSrc":"41248:10:24","nodeType":"YulLiteral","src":"41248:10:24","type":"","value":"0xec92f9a3"}],"functionName":{"name":"mstore","nativeSrc":"41235:6:24","nodeType":"YulIdentifier","src":"41235:6:24"},"nativeSrc":"41235:24:24","nodeType":"YulFunctionCall","src":"41235:24:24"},"nativeSrc":"41235:24:24","nodeType":"YulExpressionStatement","src":"41235:24:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41312:4:24","nodeType":"YulLiteral","src":"41312:4:24","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"41318:4:24","nodeType":"YulLiteral","src":"41318:4:24","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"41305:6:24","nodeType":"YulIdentifier","src":"41305:6:24"},"nativeSrc":"41305:18:24","nodeType":"YulFunctionCall","src":"41305:18:24"},"nativeSrc":"41305:18:24","nodeType":"YulExpressionStatement","src":"41305:18:24"}]},"condition":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"41204:6:24","nodeType":"YulIdentifier","src":"41204:6:24"},{"kind":"number","nativeSrc":"41212:2:24","nodeType":"YulLiteral","src":"41212:2:24","type":"","value":"33"}],"functionName":{"name":"lt","nativeSrc":"41201:2:24","nodeType":"YulIdentifier","src":"41201:2:24"},"nativeSrc":"41201:14:24","nodeType":"YulFunctionCall","src":"41201:14:24"}],"functionName":{"name":"iszero","nativeSrc":"41194:6:24","nodeType":"YulIdentifier","src":"41194:6:24"},"nativeSrc":"41194:22:24","nodeType":"YulFunctionCall","src":"41194:22:24"},"nativeSrc":"41191:146:24","nodeType":"YulIf","src":"41191:146:24"},{"nativeSrc":"41350:61:24","nodeType":"YulAssignment","src":"41350:61:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"41368:1:24","nodeType":"YulLiteral","src":"41368:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"41375:2:24","nodeType":"YulLiteral","src":"41375:2:24","type":"","value":"32"},{"name":"result","nativeSrc":"41379:6:24","nodeType":"YulIdentifier","src":"41379:6:24"}],"functionName":{"name":"sub","nativeSrc":"41371:3:24","nodeType":"YulIdentifier","src":"41371:3:24"},"nativeSrc":"41371:15:24","nodeType":"YulFunctionCall","src":"41371:15:24"}],"functionName":{"name":"shl","nativeSrc":"41364:3:24","nodeType":"YulIdentifier","src":"41364:3:24"},"nativeSrc":"41364:23:24","nodeType":"YulFunctionCall","src":"41364:23:24"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"41399:1:24","nodeType":"YulIdentifier","src":"41399:1:24"},{"name":"result","nativeSrc":"41402:6:24","nodeType":"YulIdentifier","src":"41402:6:24"}],"functionName":{"name":"add","nativeSrc":"41395:3:24","nodeType":"YulIdentifier","src":"41395:3:24"},"nativeSrc":"41395:14:24","nodeType":"YulFunctionCall","src":"41395:14:24"}],"functionName":{"name":"mload","nativeSrc":"41389:5:24","nodeType":"YulIdentifier","src":"41389:5:24"},"nativeSrc":"41389:21:24","nodeType":"YulFunctionCall","src":"41389:21:24"}],"functionName":{"name":"shl","nativeSrc":"41360:3:24","nodeType":"YulIdentifier","src":"41360:3:24"},"nativeSrc":"41360:51:24","nodeType":"YulFunctionCall","src":"41360:51:24"},"variableNames":[{"name":"result","nativeSrc":"41350:6:24","nodeType":"YulIdentifier","src":"41350:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41160:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41204:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41350:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41379:6:24","valueSize":1},{"declaration":10813,"isOffset":false,"isSlot":false,"src":"41402:6:24","valueSize":1},{"declaration":10810,"isOffset":false,"isSlot":false,"src":"41176:1:24","valueSize":1},{"declaration":10810,"isOffset":false,"isSlot":false,"src":"41399:1:24","valueSize":1}],"id":10815,"nodeType":"InlineAssembly","src":"41137:284:24"}]},"documentation":{"id":10808,"nodeType":"StructuredDocumentation","src":"40927:73:24","text":"@dev Returns the string as a normalized null-terminated small string."},"id":10817,"implemented":true,"kind":"function","modifiers":[],"name":"toSmallString","nameLocation":"41014:13:24","nodeType":"FunctionDefinition","parameters":{"id":10811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10810,"mutability":"mutable","name":"s","nameLocation":"41042:1:24","nodeType":"VariableDeclaration","scope":10817,"src":"41028:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10809,"name":"string","nodeType":"ElementaryTypeName","src":"41028:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41027:17:24"},"returnParameters":{"id":10814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10813,"mutability":"mutable","name":"result","nameLocation":"41076:6:24","nodeType":"VariableDeclaration","scope":10817,"src":"41068:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41068:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41067:16:24"},"scope":10964,"src":"41005:422:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10832,"nodeType":"Block","src":"41646:48:24","statements":[{"expression":{"id":10830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10825,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10823,"src":"41656:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10827,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10820,"src":"41672:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":10828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41681:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10826,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10787,"src":"41665:6:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41665:22:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41656:31:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10831,"nodeType":"ExpressionStatement","src":"41656:31:24"}]},"documentation":{"id":10818,"nodeType":"StructuredDocumentation","src":"41433:125:24","text":"@dev Returns a lowercased copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10833,"implemented":true,"kind":"function","modifiers":[],"name":"lower","nameLocation":"41572:5:24","nodeType":"FunctionDefinition","parameters":{"id":10821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10820,"mutability":"mutable","name":"subject","nameLocation":"41592:7:24","nodeType":"VariableDeclaration","scope":10833,"src":"41578:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10819,"name":"string","nodeType":"ElementaryTypeName","src":"41578:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41577:23:24"},"returnParameters":{"id":10824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10823,"mutability":"mutable","name":"result","nameLocation":"41638:6:24","nodeType":"VariableDeclaration","scope":10833,"src":"41624:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10822,"name":"string","nodeType":"ElementaryTypeName","src":"41624:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41623:22:24"},"scope":10964,"src":"41563:131:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10848,"nodeType":"Block","src":"41914:47:24","statements":[{"expression":{"id":10846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10841,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10839,"src":"41924:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10843,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10836,"src":"41940:7:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":10844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41949:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10842,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10787,"src":"41933:6:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41933:21:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41924:30:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10847,"nodeType":"ExpressionStatement","src":"41924:30:24"}]},"documentation":{"id":10834,"nodeType":"StructuredDocumentation","src":"41700:126:24","text":"@dev Returns an UPPERCASED copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10849,"implemented":true,"kind":"function","modifiers":[],"name":"upper","nameLocation":"41840:5:24","nodeType":"FunctionDefinition","parameters":{"id":10837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10836,"mutability":"mutable","name":"subject","nameLocation":"41860:7:24","nodeType":"VariableDeclaration","scope":10849,"src":"41846:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10835,"name":"string","nodeType":"ElementaryTypeName","src":"41846:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41845:23:24"},"returnParameters":{"id":10840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10839,"mutability":"mutable","name":"result","nameLocation":"41906:6:24","nodeType":"VariableDeclaration","scope":10849,"src":"41892:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10838,"name":"string","nodeType":"ElementaryTypeName","src":"41892:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41891:22:24"},"scope":10964,"src":"41831:130:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10858,"nodeType":"Block","src":"42110:1372:24","statements":[{"AST":{"nativeSrc":"42172:1304:24","nodeType":"YulBlock","src":"42172:1304:24","statements":[{"nativeSrc":"42186:27:24","nodeType":"YulVariableDeclaration","src":"42186:27:24","value":{"arguments":[{"name":"s","nativeSrc":"42201:1:24","nodeType":"YulIdentifier","src":"42201:1:24"},{"arguments":[{"name":"s","nativeSrc":"42210:1:24","nodeType":"YulIdentifier","src":"42210:1:24"}],"functionName":{"name":"mload","nativeSrc":"42204:5:24","nodeType":"YulIdentifier","src":"42204:5:24"},"nativeSrc":"42204:8:24","nodeType":"YulFunctionCall","src":"42204:8:24"}],"functionName":{"name":"add","nativeSrc":"42197:3:24","nodeType":"YulIdentifier","src":"42197:3:24"},"nativeSrc":"42197:16:24","nodeType":"YulFunctionCall","src":"42197:16:24"},"variables":[{"name":"end","nativeSrc":"42190:3:24","nodeType":"YulTypedName","src":"42190:3:24","type":""}]},{"nativeSrc":"42226:32:24","nodeType":"YulAssignment","src":"42226:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"42246:4:24","nodeType":"YulLiteral","src":"42246:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"42240:5:24","nodeType":"YulIdentifier","src":"42240:5:24"},"nativeSrc":"42240:11:24","nodeType":"YulFunctionCall","src":"42240:11:24"},{"kind":"number","nativeSrc":"42253:4:24","nodeType":"YulLiteral","src":"42253:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"42236:3:24","nodeType":"YulIdentifier","src":"42236:3:24"},"nativeSrc":"42236:22:24","nodeType":"YulFunctionCall","src":"42236:22:24"},"variableNames":[{"name":"result","nativeSrc":"42226:6:24","nodeType":"YulIdentifier","src":"42226:6:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42452:4:24","nodeType":"YulLiteral","src":"42452:4:24","type":"","value":"0x1f"},{"kind":"number","nativeSrc":"42458:8:24","nodeType":"YulLiteral","src":"42458:8:24","type":"","value":"0x900094"}],"functionName":{"name":"mstore","nativeSrc":"42445:6:24","nodeType":"YulIdentifier","src":"42445:6:24"},"nativeSrc":"42445:22:24","nodeType":"YulFunctionCall","src":"42445:22:24"},"nativeSrc":"42445:22:24","nodeType":"YulExpressionStatement","src":"42445:22:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42487:4:24","nodeType":"YulLiteral","src":"42487:4:24","type":"","value":"0x08"},{"kind":"number","nativeSrc":"42493:14:24","nodeType":"YulLiteral","src":"42493:14:24","type":"","value":"0xc0000000a6ab"}],"functionName":{"name":"mstore","nativeSrc":"42480:6:24","nodeType":"YulIdentifier","src":"42480:6:24"},"nativeSrc":"42480:28:24","nodeType":"YulFunctionCall","src":"42480:28:24"},"nativeSrc":"42480:28:24","nodeType":"YulExpressionStatement","src":"42480:28:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42600:4:24","nodeType":"YulLiteral","src":"42600:4:24","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"42610:2:24","nodeType":"YulLiteral","src":"42610:2:24","type":"","value":"64"},{"kind":"number","nativeSrc":"42614:50:24","nodeType":"YulLiteral","src":"42614:50:24","type":"","value":"0x2671756f743b26616d703b262333393b266c743b2667743b"}],"functionName":{"name":"shl","nativeSrc":"42606:3:24","nodeType":"YulIdentifier","src":"42606:3:24"},"nativeSrc":"42606:59:24","nodeType":"YulFunctionCall","src":"42606:59:24"}],"functionName":{"name":"mstore","nativeSrc":"42593:6:24","nodeType":"YulIdentifier","src":"42593:6:24"},"nativeSrc":"42593:73:24","nodeType":"YulFunctionCall","src":"42593:73:24"},"nativeSrc":"42593:73:24","nodeType":"YulExpressionStatement","src":"42593:73:24"},{"body":{"nativeSrc":"42708:483:24","nodeType":"YulBlock","src":"42708:483:24","statements":[{"nativeSrc":"42726:14:24","nodeType":"YulAssignment","src":"42726:14:24","value":{"arguments":[{"name":"s","nativeSrc":"42735:1:24","nodeType":"YulIdentifier","src":"42735:1:24"},{"kind":"number","nativeSrc":"42738:1:24","nodeType":"YulLiteral","src":"42738:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"42731:3:24","nodeType":"YulIdentifier","src":"42731:3:24"},"nativeSrc":"42731:9:24","nodeType":"YulFunctionCall","src":"42731:9:24"},"variableNames":[{"name":"s","nativeSrc":"42726:1:24","nodeType":"YulIdentifier","src":"42726:1:24"}]},{"nativeSrc":"42757:28:24","nodeType":"YulVariableDeclaration","src":"42757:28:24","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"42776:1:24","nodeType":"YulIdentifier","src":"42776:1:24"}],"functionName":{"name":"mload","nativeSrc":"42770:5:24","nodeType":"YulIdentifier","src":"42770:5:24"},"nativeSrc":"42770:8:24","nodeType":"YulFunctionCall","src":"42770:8:24"},{"kind":"number","nativeSrc":"42780:4:24","nodeType":"YulLiteral","src":"42780:4:24","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"42766:3:24","nodeType":"YulIdentifier","src":"42766:3:24"},"nativeSrc":"42766:19:24","nodeType":"YulFunctionCall","src":"42766:19:24"},"variables":[{"name":"c","nativeSrc":"42761:1:24","nodeType":"YulTypedName","src":"42761:1:24","type":""}]},{"body":{"nativeSrc":"42900:132:24","nodeType":"YulBlock","src":"42900:132:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"42930:6:24","nodeType":"YulIdentifier","src":"42930:6:24"},{"name":"c","nativeSrc":"42938:1:24","nodeType":"YulIdentifier","src":"42938:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"42922:7:24","nodeType":"YulIdentifier","src":"42922:7:24"},"nativeSrc":"42922:18:24","nodeType":"YulFunctionCall","src":"42922:18:24"},"nativeSrc":"42922:18:24","nodeType":"YulExpressionStatement","src":"42922:18:24"},{"nativeSrc":"42961:24:24","nodeType":"YulAssignment","src":"42961:24:24","value":{"arguments":[{"name":"result","nativeSrc":"42975:6:24","nodeType":"YulIdentifier","src":"42975:6:24"},{"kind":"number","nativeSrc":"42983:1:24","nodeType":"YulLiteral","src":"42983:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"42971:3:24","nodeType":"YulIdentifier","src":"42971:3:24"},"nativeSrc":"42971:14:24","nodeType":"YulFunctionCall","src":"42971:14:24"},"variableNames":[{"name":"result","nativeSrc":"42961:6:24","nodeType":"YulIdentifier","src":"42961:6:24"}]},{"nativeSrc":"43006:8:24","nodeType":"YulContinue","src":"43006:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"42872:1:24","nodeType":"YulIdentifier","src":"42872:1:24"},{"kind":"number","nativeSrc":"42875:1:24","nodeType":"YulLiteral","src":"42875:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"42868:3:24","nodeType":"YulIdentifier","src":"42868:3:24"},"nativeSrc":"42868:9:24","nodeType":"YulFunctionCall","src":"42868:9:24"},{"kind":"number","nativeSrc":"42879:18:24","nodeType":"YulLiteral","src":"42879:18:24","type":"","value":"0x500000c400000000"}],"functionName":{"name":"and","nativeSrc":"42864:3:24","nodeType":"YulIdentifier","src":"42864:3:24"},"nativeSrc":"42864:34:24","nodeType":"YulFunctionCall","src":"42864:34:24"}],"functionName":{"name":"iszero","nativeSrc":"42857:6:24","nodeType":"YulIdentifier","src":"42857:6:24"},"nativeSrc":"42857:42:24","nodeType":"YulFunctionCall","src":"42857:42:24"},"nativeSrc":"42854:178:24","nodeType":"YulIf","src":"42854:178:24"},{"nativeSrc":"43049:27:24","nodeType":"YulVariableDeclaration","src":"43049:27:24","value":{"arguments":[{"kind":"number","nativeSrc":"43062:3:24","nodeType":"YulLiteral","src":"43062:3:24","type":"","value":"248"},{"arguments":[{"name":"c","nativeSrc":"43073:1:24","nodeType":"YulIdentifier","src":"43073:1:24"}],"functionName":{"name":"mload","nativeSrc":"43067:5:24","nodeType":"YulIdentifier","src":"43067:5:24"},"nativeSrc":"43067:8:24","nodeType":"YulFunctionCall","src":"43067:8:24"}],"functionName":{"name":"shr","nativeSrc":"43058:3:24","nodeType":"YulIdentifier","src":"43058:3:24"},"nativeSrc":"43058:18:24","nodeType":"YulFunctionCall","src":"43058:18:24"},"variables":[{"name":"t","nativeSrc":"43053:1:24","nodeType":"YulTypedName","src":"43053:1:24","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"43100:6:24","nodeType":"YulIdentifier","src":"43100:6:24"},{"arguments":[{"arguments":[{"name":"t","nativeSrc":"43118:1:24","nodeType":"YulIdentifier","src":"43118:1:24"},{"kind":"number","nativeSrc":"43121:4:24","nodeType":"YulLiteral","src":"43121:4:24","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"43114:3:24","nodeType":"YulIdentifier","src":"43114:3:24"},"nativeSrc":"43114:12:24","nodeType":"YulFunctionCall","src":"43114:12:24"}],"functionName":{"name":"mload","nativeSrc":"43108:5:24","nodeType":"YulIdentifier","src":"43108:5:24"},"nativeSrc":"43108:19:24","nodeType":"YulFunctionCall","src":"43108:19:24"}],"functionName":{"name":"mstore","nativeSrc":"43093:6:24","nodeType":"YulIdentifier","src":"43093:6:24"},"nativeSrc":"43093:35:24","nodeType":"YulFunctionCall","src":"43093:35:24"},"nativeSrc":"43093:35:24","nodeType":"YulExpressionStatement","src":"43093:35:24"},{"nativeSrc":"43145:32:24","nodeType":"YulAssignment","src":"43145:32:24","value":{"arguments":[{"name":"result","nativeSrc":"43159:6:24","nodeType":"YulIdentifier","src":"43159:6:24"},{"arguments":[{"kind":"number","nativeSrc":"43171:1:24","nodeType":"YulLiteral","src":"43171:1:24","type":"","value":"5"},{"name":"t","nativeSrc":"43174:1:24","nodeType":"YulIdentifier","src":"43174:1:24"}],"functionName":{"name":"shr","nativeSrc":"43167:3:24","nodeType":"YulIdentifier","src":"43167:3:24"},"nativeSrc":"43167:9:24","nodeType":"YulFunctionCall","src":"43167:9:24"}],"functionName":{"name":"add","nativeSrc":"43155:3:24","nodeType":"YulIdentifier","src":"43155:3:24"},"nativeSrc":"43155:22:24","nodeType":"YulFunctionCall","src":"43155:22:24"},"variableNames":[{"name":"result","nativeSrc":"43145:6:24","nodeType":"YulIdentifier","src":"43145:6:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"42696:1:24","nodeType":"YulIdentifier","src":"42696:1:24"},{"name":"end","nativeSrc":"42699:3:24","nodeType":"YulIdentifier","src":"42699:3:24"}],"functionName":{"name":"eq","nativeSrc":"42693:2:24","nodeType":"YulIdentifier","src":"42693:2:24"},"nativeSrc":"42693:10:24","nodeType":"YulFunctionCall","src":"42693:10:24"}],"functionName":{"name":"iszero","nativeSrc":"42686:6:24","nodeType":"YulIdentifier","src":"42686:6:24"},"nativeSrc":"42686:18:24","nodeType":"YulFunctionCall","src":"42686:18:24"},"nativeSrc":"42679:512:24","nodeType":"YulForLoop","post":{"nativeSrc":"42705:2:24","nodeType":"YulBlock","src":"42705:2:24","statements":[]},"pre":{"nativeSrc":"42683:2:24","nodeType":"YulBlock","src":"42683:2:24","statements":[]},"src":"42679:512:24"},{"nativeSrc":"43204:18:24","nodeType":"YulVariableDeclaration","src":"43204:18:24","value":{"name":"result","nativeSrc":"43216:6:24","nodeType":"YulIdentifier","src":"43216:6:24"},"variables":[{"name":"last","nativeSrc":"43208:4:24","nodeType":"YulTypedName","src":"43208:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"43242:4:24","nodeType":"YulIdentifier","src":"43242:4:24"},{"kind":"number","nativeSrc":"43248:1:24","nodeType":"YulLiteral","src":"43248:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"43235:6:24","nodeType":"YulIdentifier","src":"43235:6:24"},"nativeSrc":"43235:15:24","nodeType":"YulFunctionCall","src":"43235:15:24"},"nativeSrc":"43235:15:24","nodeType":"YulExpressionStatement","src":"43235:15:24"},{"nativeSrc":"43301:21:24","nodeType":"YulAssignment","src":"43301:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"43317:4:24","nodeType":"YulLiteral","src":"43317:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"43311:5:24","nodeType":"YulIdentifier","src":"43311:5:24"},"nativeSrc":"43311:11:24","nodeType":"YulFunctionCall","src":"43311:11:24"},"variableNames":[{"name":"result","nativeSrc":"43301:6:24","nodeType":"YulIdentifier","src":"43301:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"43342:6:24","nodeType":"YulIdentifier","src":"43342:6:24"},{"arguments":[{"name":"last","nativeSrc":"43354:4:24","nodeType":"YulIdentifier","src":"43354:4:24"},{"arguments":[{"name":"result","nativeSrc":"43364:6:24","nodeType":"YulIdentifier","src":"43364:6:24"},{"kind":"number","nativeSrc":"43372:4:24","nodeType":"YulLiteral","src":"43372:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43360:3:24","nodeType":"YulIdentifier","src":"43360:3:24"},"nativeSrc":"43360:17:24","nodeType":"YulFunctionCall","src":"43360:17:24"}],"functionName":{"name":"sub","nativeSrc":"43350:3:24","nodeType":"YulIdentifier","src":"43350:3:24"},"nativeSrc":"43350:28:24","nodeType":"YulFunctionCall","src":"43350:28:24"}],"functionName":{"name":"mstore","nativeSrc":"43335:6:24","nodeType":"YulIdentifier","src":"43335:6:24"},"nativeSrc":"43335:44:24","nodeType":"YulFunctionCall","src":"43335:44:24"},"nativeSrc":"43335:44:24","nodeType":"YulExpressionStatement","src":"43335:44:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43420:4:24","nodeType":"YulLiteral","src":"43420:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"43430:4:24","nodeType":"YulIdentifier","src":"43430:4:24"},{"kind":"number","nativeSrc":"43436:4:24","nodeType":"YulLiteral","src":"43436:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43426:3:24","nodeType":"YulIdentifier","src":"43426:3:24"},"nativeSrc":"43426:15:24","nodeType":"YulFunctionCall","src":"43426:15:24"}],"functionName":{"name":"mstore","nativeSrc":"43413:6:24","nodeType":"YulIdentifier","src":"43413:6:24"},"nativeSrc":"43413:29:24","nodeType":"YulFunctionCall","src":"43413:29:24"},"nativeSrc":"43413:29:24","nodeType":"YulExpressionStatement","src":"43413:29:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42226:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42930:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42961:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"42975:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43100:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43145:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43159:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43216:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43301:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43342:6:24","valueSize":1},{"declaration":10855,"isOffset":false,"isSlot":false,"src":"43364:6:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42201:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42210:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42696:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42726:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42735:1:24","valueSize":1},{"declaration":10852,"isOffset":false,"isSlot":false,"src":"42776:1:24","valueSize":1}],"id":10857,"nodeType":"InlineAssembly","src":"42163:1313:24"}]},"documentation":{"id":10850,"nodeType":"StructuredDocumentation","src":"41967:56:24","text":"@dev Escapes the string to be used within HTML tags."},"id":10859,"implemented":true,"kind":"function","modifiers":[],"name":"escapeHTML","nameLocation":"42037:10:24","nodeType":"FunctionDefinition","parameters":{"id":10853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10852,"mutability":"mutable","name":"s","nameLocation":"42062:1:24","nodeType":"VariableDeclaration","scope":10859,"src":"42048:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10851,"name":"string","nodeType":"ElementaryTypeName","src":"42048:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42047:17:24"},"returnParameters":{"id":10856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10855,"mutability":"mutable","name":"result","nameLocation":"42102:6:24","nodeType":"VariableDeclaration","scope":10859,"src":"42088:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10854,"name":"string","nodeType":"ElementaryTypeName","src":"42088:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42087:22:24"},"scope":10964,"src":"42028:1454:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10870,"nodeType":"Block","src":"43779:2259:24","statements":[{"AST":{"nativeSrc":"43841:2191:24","nodeType":"YulBlock","src":"43841:2191:24","statements":[{"nativeSrc":"43855:27:24","nodeType":"YulVariableDeclaration","src":"43855:27:24","value":{"arguments":[{"name":"s","nativeSrc":"43870:1:24","nodeType":"YulIdentifier","src":"43870:1:24"},{"arguments":[{"name":"s","nativeSrc":"43879:1:24","nodeType":"YulIdentifier","src":"43879:1:24"}],"functionName":{"name":"mload","nativeSrc":"43873:5:24","nodeType":"YulIdentifier","src":"43873:5:24"},"nativeSrc":"43873:8:24","nodeType":"YulFunctionCall","src":"43873:8:24"}],"functionName":{"name":"add","nativeSrc":"43866:3:24","nodeType":"YulIdentifier","src":"43866:3:24"},"nativeSrc":"43866:16:24","nodeType":"YulFunctionCall","src":"43866:16:24"},"variables":[{"name":"end","nativeSrc":"43859:3:24","nodeType":"YulTypedName","src":"43859:3:24","type":""}]},{"nativeSrc":"43895:32:24","nodeType":"YulAssignment","src":"43895:32:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"43915:4:24","nodeType":"YulLiteral","src":"43915:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"43909:5:24","nodeType":"YulIdentifier","src":"43909:5:24"},"nativeSrc":"43909:11:24","nodeType":"YulFunctionCall","src":"43909:11:24"},{"kind":"number","nativeSrc":"43922:4:24","nodeType":"YulLiteral","src":"43922:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43905:3:24","nodeType":"YulIdentifier","src":"43905:3:24"},"nativeSrc":"43905:22:24","nodeType":"YulFunctionCall","src":"43905:22:24"},"variableNames":[{"name":"result","nativeSrc":"43895:6:24","nodeType":"YulIdentifier","src":"43895:6:24"}]},{"body":{"nativeSrc":"43959:92:24","nodeType":"YulBlock","src":"43959:92:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"43985:6:24","nodeType":"YulIdentifier","src":"43985:6:24"},{"kind":"number","nativeSrc":"43993:2:24","nodeType":"YulLiteral","src":"43993:2:24","type":"","value":"34"}],"functionName":{"name":"mstore8","nativeSrc":"43977:7:24","nodeType":"YulIdentifier","src":"43977:7:24"},"nativeSrc":"43977:19:24","nodeType":"YulFunctionCall","src":"43977:19:24"},"nativeSrc":"43977:19:24","nodeType":"YulExpressionStatement","src":"43977:19:24"},{"nativeSrc":"44013:24:24","nodeType":"YulAssignment","src":"44013:24:24","value":{"arguments":[{"kind":"number","nativeSrc":"44027:1:24","nodeType":"YulLiteral","src":"44027:1:24","type":"","value":"1"},{"name":"result","nativeSrc":"44030:6:24","nodeType":"YulIdentifier","src":"44030:6:24"}],"functionName":{"name":"add","nativeSrc":"44023:3:24","nodeType":"YulIdentifier","src":"44023:3:24"},"nativeSrc":"44023:14:24","nodeType":"YulFunctionCall","src":"44023:14:24"},"variableNames":[{"name":"result","nativeSrc":"44013:6:24","nodeType":"YulIdentifier","src":"44013:6:24"}]}]},"condition":{"name":"addDoubleQuotes","nativeSrc":"43943:15:24","nodeType":"YulIdentifier","src":"43943:15:24"},"nativeSrc":"43940:111:24","nodeType":"YulIf","src":"43940:111:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44298:4:24","nodeType":"YulLiteral","src":"44298:4:24","type":"","value":"0x15"},{"kind":"number","nativeSrc":"44304:58:24","nodeType":"YulLiteral","src":"44304:58:24","type":"","value":"0x5c75303030303031323334353637383961626364656662746e006672"}],"functionName":{"name":"mstore","nativeSrc":"44291:6:24","nodeType":"YulIdentifier","src":"44291:6:24"},"nativeSrc":"44291:72:24","nodeType":"YulFunctionCall","src":"44291:72:24"},"nativeSrc":"44291:72:24","nodeType":"YulExpressionStatement","src":"44291:72:24"},{"nativeSrc":"44428:39:24","nodeType":"YulVariableDeclaration","src":"44428:39:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"44444:4:24","nodeType":"YulLiteral","src":"44444:4:24","type":"","value":"0x22"},{"kind":"number","nativeSrc":"44450:1:24","nodeType":"YulLiteral","src":"44450:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44440:3:24","nodeType":"YulIdentifier","src":"44440:3:24"},"nativeSrc":"44440:12:24","nodeType":"YulFunctionCall","src":"44440:12:24"},{"arguments":[{"kind":"number","nativeSrc":"44458:4:24","nodeType":"YulLiteral","src":"44458:4:24","type":"","value":"0x5c"},{"kind":"number","nativeSrc":"44464:1:24","nodeType":"YulLiteral","src":"44464:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44454:3:24","nodeType":"YulIdentifier","src":"44454:3:24"},"nativeSrc":"44454:12:24","nodeType":"YulFunctionCall","src":"44454:12:24"}],"functionName":{"name":"or","nativeSrc":"44437:2:24","nodeType":"YulIdentifier","src":"44437:2:24"},"nativeSrc":"44437:30:24","nodeType":"YulFunctionCall","src":"44437:30:24"},"variables":[{"name":"e","nativeSrc":"44432:1:24","nodeType":"YulTypedName","src":"44432:1:24","type":""}]},{"body":{"nativeSrc":"44509:1114:24","nodeType":"YulBlock","src":"44509:1114:24","statements":[{"nativeSrc":"44527:14:24","nodeType":"YulAssignment","src":"44527:14:24","value":{"arguments":[{"name":"s","nativeSrc":"44536:1:24","nodeType":"YulIdentifier","src":"44536:1:24"},{"kind":"number","nativeSrc":"44539:1:24","nodeType":"YulLiteral","src":"44539:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44532:3:24","nodeType":"YulIdentifier","src":"44532:3:24"},"nativeSrc":"44532:9:24","nodeType":"YulFunctionCall","src":"44532:9:24"},"variableNames":[{"name":"s","nativeSrc":"44527:1:24","nodeType":"YulIdentifier","src":"44527:1:24"}]},{"nativeSrc":"44558:28:24","nodeType":"YulVariableDeclaration","src":"44558:28:24","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"44577:1:24","nodeType":"YulIdentifier","src":"44577:1:24"}],"functionName":{"name":"mload","nativeSrc":"44571:5:24","nodeType":"YulIdentifier","src":"44571:5:24"},"nativeSrc":"44571:8:24","nodeType":"YulFunctionCall","src":"44571:8:24"},{"kind":"number","nativeSrc":"44581:4:24","nodeType":"YulLiteral","src":"44581:4:24","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"44567:3:24","nodeType":"YulIdentifier","src":"44567:3:24"},"nativeSrc":"44567:19:24","nodeType":"YulFunctionCall","src":"44567:19:24"},"variables":[{"name":"c","nativeSrc":"44562:1:24","nodeType":"YulTypedName","src":"44562:1:24","type":""}]},{"body":{"nativeSrc":"44626:438:24","nodeType":"YulBlock","src":"44626:438:24","statements":[{"body":{"nativeSrc":"44677:197:24","nodeType":"YulBlock","src":"44677:197:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"44760:6:24","nodeType":"YulIdentifier","src":"44760:6:24"},{"name":"c","nativeSrc":"44768:1:24","nodeType":"YulIdentifier","src":"44768:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"44752:7:24","nodeType":"YulIdentifier","src":"44752:7:24"},"nativeSrc":"44752:18:24","nodeType":"YulFunctionCall","src":"44752:18:24"},"nativeSrc":"44752:18:24","nodeType":"YulExpressionStatement","src":"44752:18:24"},{"nativeSrc":"44795:24:24","nodeType":"YulAssignment","src":"44795:24:24","value":{"arguments":[{"name":"result","nativeSrc":"44809:6:24","nodeType":"YulIdentifier","src":"44809:6:24"},{"kind":"number","nativeSrc":"44817:1:24","nodeType":"YulLiteral","src":"44817:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44805:3:24","nodeType":"YulIdentifier","src":"44805:3:24"},"nativeSrc":"44805:14:24","nodeType":"YulFunctionCall","src":"44805:14:24"},"variableNames":[{"name":"result","nativeSrc":"44795:6:24","nodeType":"YulIdentifier","src":"44795:6:24"}]},{"nativeSrc":"44844:8:24","nodeType":"YulContinue","src":"44844:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"44666:1:24","nodeType":"YulIdentifier","src":"44666:1:24"},{"kind":"number","nativeSrc":"44669:1:24","nodeType":"YulLiteral","src":"44669:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44662:3:24","nodeType":"YulIdentifier","src":"44662:3:24"},"nativeSrc":"44662:9:24","nodeType":"YulFunctionCall","src":"44662:9:24"},{"name":"e","nativeSrc":"44673:1:24","nodeType":"YulIdentifier","src":"44673:1:24"}],"functionName":{"name":"and","nativeSrc":"44658:3:24","nodeType":"YulIdentifier","src":"44658:3:24"},"nativeSrc":"44658:17:24","nodeType":"YulFunctionCall","src":"44658:17:24"}],"functionName":{"name":"iszero","nativeSrc":"44651:6:24","nodeType":"YulIdentifier","src":"44651:6:24"},"nativeSrc":"44651:25:24","nodeType":"YulFunctionCall","src":"44651:25:24"},"nativeSrc":"44648:226:24","nodeType":"YulIf","src":"44648:226:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"44903:6:24","nodeType":"YulIdentifier","src":"44903:6:24"},{"kind":"number","nativeSrc":"44911:4:24","nodeType":"YulLiteral","src":"44911:4:24","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nativeSrc":"44895:7:24","nodeType":"YulIdentifier","src":"44895:7:24"},"nativeSrc":"44895:21:24","nodeType":"YulFunctionCall","src":"44895:21:24"},"nativeSrc":"44895:21:24","nodeType":"YulExpressionStatement","src":"44895:21:24"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"44958:6:24","nodeType":"YulIdentifier","src":"44958:6:24"},{"kind":"number","nativeSrc":"44966:1:24","nodeType":"YulLiteral","src":"44966:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44954:3:24","nodeType":"YulIdentifier","src":"44954:3:24"},"nativeSrc":"44954:14:24","nodeType":"YulFunctionCall","src":"44954:14:24"},{"name":"c","nativeSrc":"44970:1:24","nodeType":"YulIdentifier","src":"44970:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"44946:7:24","nodeType":"YulIdentifier","src":"44946:7:24"},"nativeSrc":"44946:26:24","nodeType":"YulFunctionCall","src":"44946:26:24"},"nativeSrc":"44946:26:24","nodeType":"YulExpressionStatement","src":"44946:26:24"},{"nativeSrc":"44993:24:24","nodeType":"YulAssignment","src":"44993:24:24","value":{"arguments":[{"name":"result","nativeSrc":"45007:6:24","nodeType":"YulIdentifier","src":"45007:6:24"},{"kind":"number","nativeSrc":"45015:1:24","nodeType":"YulLiteral","src":"45015:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"45003:3:24","nodeType":"YulIdentifier","src":"45003:3:24"},"nativeSrc":"45003:14:24","nodeType":"YulFunctionCall","src":"45003:14:24"},"variableNames":[{"name":"result","nativeSrc":"44993:6:24","nodeType":"YulIdentifier","src":"44993:6:24"}]},{"nativeSrc":"45038:8:24","nodeType":"YulContinue","src":"45038:8:24"}]},"condition":{"arguments":[{"arguments":[{"name":"c","nativeSrc":"44616:1:24","nodeType":"YulIdentifier","src":"44616:1:24"},{"kind":"number","nativeSrc":"44619:4:24","nodeType":"YulLiteral","src":"44619:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"44613:2:24","nodeType":"YulIdentifier","src":"44613:2:24"},"nativeSrc":"44613:11:24","nodeType":"YulFunctionCall","src":"44613:11:24"}],"functionName":{"name":"iszero","nativeSrc":"44606:6:24","nodeType":"YulIdentifier","src":"44606:6:24"},"nativeSrc":"44606:19:24","nodeType":"YulFunctionCall","src":"44606:19:24"},"nativeSrc":"44603:461:24","nodeType":"YulIf","src":"44603:461:24"},{"body":{"nativeSrc":"45115:348:24","nodeType":"YulBlock","src":"45115:348:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45205:4:24","nodeType":"YulLiteral","src":"45205:4:24","type":"","value":"0x1d"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45221:1:24","nodeType":"YulLiteral","src":"45221:1:24","type":"","value":"4"},{"name":"c","nativeSrc":"45224:1:24","nodeType":"YulIdentifier","src":"45224:1:24"}],"functionName":{"name":"shr","nativeSrc":"45217:3:24","nodeType":"YulIdentifier","src":"45217:3:24"},"nativeSrc":"45217:9:24","nodeType":"YulFunctionCall","src":"45217:9:24"}],"functionName":{"name":"mload","nativeSrc":"45211:5:24","nodeType":"YulIdentifier","src":"45211:5:24"},"nativeSrc":"45211:16:24","nodeType":"YulFunctionCall","src":"45211:16:24"}],"functionName":{"name":"mstore8","nativeSrc":"45197:7:24","nodeType":"YulIdentifier","src":"45197:7:24"},"nativeSrc":"45197:31:24","nodeType":"YulFunctionCall","src":"45197:31:24"},"nativeSrc":"45197:31:24","nodeType":"YulExpressionStatement","src":"45197:31:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45271:4:24","nodeType":"YulLiteral","src":"45271:4:24","type":"","value":"0x1e"},{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45287:1:24","nodeType":"YulIdentifier","src":"45287:1:24"},{"kind":"number","nativeSrc":"45290:2:24","nodeType":"YulLiteral","src":"45290:2:24","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"45283:3:24","nodeType":"YulIdentifier","src":"45283:3:24"},"nativeSrc":"45283:10:24","nodeType":"YulFunctionCall","src":"45283:10:24"}],"functionName":{"name":"mload","nativeSrc":"45277:5:24","nodeType":"YulIdentifier","src":"45277:5:24"},"nativeSrc":"45277:17:24","nodeType":"YulFunctionCall","src":"45277:17:24"}],"functionName":{"name":"mstore8","nativeSrc":"45263:7:24","nodeType":"YulIdentifier","src":"45263:7:24"},"nativeSrc":"45263:32:24","nodeType":"YulFunctionCall","src":"45263:32:24"},"nativeSrc":"45263:32:24","nodeType":"YulExpressionStatement","src":"45263:32:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"45337:6:24","nodeType":"YulIdentifier","src":"45337:6:24"},{"arguments":[{"kind":"number","nativeSrc":"45351:4:24","nodeType":"YulLiteral","src":"45351:4:24","type":"","value":"0x19"}],"functionName":{"name":"mload","nativeSrc":"45345:5:24","nodeType":"YulIdentifier","src":"45345:5:24"},"nativeSrc":"45345:11:24","nodeType":"YulFunctionCall","src":"45345:11:24"}],"functionName":{"name":"mstore","nativeSrc":"45330:6:24","nodeType":"YulIdentifier","src":"45330:6:24"},"nativeSrc":"45330:27:24","nodeType":"YulFunctionCall","src":"45330:27:24"},"nativeSrc":"45330:27:24","nodeType":"YulExpressionStatement","src":"45330:27:24"},{"nativeSrc":"45392:24:24","nodeType":"YulAssignment","src":"45392:24:24","value":{"arguments":[{"name":"result","nativeSrc":"45406:6:24","nodeType":"YulIdentifier","src":"45406:6:24"},{"kind":"number","nativeSrc":"45414:1:24","nodeType":"YulLiteral","src":"45414:1:24","type":"","value":"6"}],"functionName":{"name":"add","nativeSrc":"45402:3:24","nodeType":"YulIdentifier","src":"45402:3:24"},"nativeSrc":"45402:14:24","nodeType":"YulFunctionCall","src":"45402:14:24"},"variableNames":[{"name":"result","nativeSrc":"45392:6:24","nodeType":"YulIdentifier","src":"45392:6:24"}]},{"nativeSrc":"45437:8:24","nodeType":"YulContinue","src":"45437:8:24"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45099:1:24","nodeType":"YulIdentifier","src":"45099:1:24"},{"kind":"number","nativeSrc":"45102:1:24","nodeType":"YulLiteral","src":"45102:1:24","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"45095:3:24","nodeType":"YulIdentifier","src":"45095:3:24"},"nativeSrc":"45095:9:24","nodeType":"YulFunctionCall","src":"45095:9:24"},{"kind":"number","nativeSrc":"45106:6:24","nodeType":"YulLiteral","src":"45106:6:24","type":"","value":"0x3700"}],"functionName":{"name":"and","nativeSrc":"45091:3:24","nodeType":"YulIdentifier","src":"45091:3:24"},"nativeSrc":"45091:22:24","nodeType":"YulFunctionCall","src":"45091:22:24"}],"functionName":{"name":"iszero","nativeSrc":"45084:6:24","nodeType":"YulIdentifier","src":"45084:6:24"},"nativeSrc":"45084:30:24","nodeType":"YulFunctionCall","src":"45084:30:24"},"nativeSrc":"45081:382:24","nodeType":"YulIf","src":"45081:382:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"45488:6:24","nodeType":"YulIdentifier","src":"45488:6:24"},{"kind":"number","nativeSrc":"45496:4:24","nodeType":"YulLiteral","src":"45496:4:24","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nativeSrc":"45480:7:24","nodeType":"YulIdentifier","src":"45480:7:24"},"nativeSrc":"45480:21:24","nodeType":"YulFunctionCall","src":"45480:21:24"},"nativeSrc":"45480:21:24","nodeType":"YulExpressionStatement","src":"45480:21:24"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"45539:6:24","nodeType":"YulIdentifier","src":"45539:6:24"},{"kind":"number","nativeSrc":"45547:1:24","nodeType":"YulLiteral","src":"45547:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45535:3:24","nodeType":"YulIdentifier","src":"45535:3:24"},"nativeSrc":"45535:14:24","nodeType":"YulFunctionCall","src":"45535:14:24"},{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45561:1:24","nodeType":"YulIdentifier","src":"45561:1:24"},{"kind":"number","nativeSrc":"45564:1:24","nodeType":"YulLiteral","src":"45564:1:24","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"45557:3:24","nodeType":"YulIdentifier","src":"45557:3:24"},"nativeSrc":"45557:9:24","nodeType":"YulFunctionCall","src":"45557:9:24"}],"functionName":{"name":"mload","nativeSrc":"45551:5:24","nodeType":"YulIdentifier","src":"45551:5:24"},"nativeSrc":"45551:16:24","nodeType":"YulFunctionCall","src":"45551:16:24"}],"functionName":{"name":"mstore8","nativeSrc":"45527:7:24","nodeType":"YulIdentifier","src":"45527:7:24"},"nativeSrc":"45527:41:24","nodeType":"YulFunctionCall","src":"45527:41:24"},"nativeSrc":"45527:41:24","nodeType":"YulExpressionStatement","src":"45527:41:24"},{"nativeSrc":"45585:24:24","nodeType":"YulAssignment","src":"45585:24:24","value":{"arguments":[{"name":"result","nativeSrc":"45599:6:24","nodeType":"YulIdentifier","src":"45599:6:24"},{"kind":"number","nativeSrc":"45607:1:24","nodeType":"YulLiteral","src":"45607:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"45595:3:24","nodeType":"YulIdentifier","src":"45595:3:24"},"nativeSrc":"45595:14:24","nodeType":"YulFunctionCall","src":"45595:14:24"},"variableNames":[{"name":"result","nativeSrc":"45585:6:24","nodeType":"YulIdentifier","src":"45585:6:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"44497:1:24","nodeType":"YulIdentifier","src":"44497:1:24"},{"name":"end","nativeSrc":"44500:3:24","nodeType":"YulIdentifier","src":"44500:3:24"}],"functionName":{"name":"eq","nativeSrc":"44494:2:24","nodeType":"YulIdentifier","src":"44494:2:24"},"nativeSrc":"44494:10:24","nodeType":"YulFunctionCall","src":"44494:10:24"}],"functionName":{"name":"iszero","nativeSrc":"44487:6:24","nodeType":"YulIdentifier","src":"44487:6:24"},"nativeSrc":"44487:18:24","nodeType":"YulFunctionCall","src":"44487:18:24"},"nativeSrc":"44480:1143:24","nodeType":"YulForLoop","post":{"nativeSrc":"44506:2:24","nodeType":"YulBlock","src":"44506:2:24","statements":[]},"pre":{"nativeSrc":"44484:2:24","nodeType":"YulBlock","src":"44484:2:24","statements":[]},"src":"44480:1143:24"},{"body":{"nativeSrc":"45655:92:24","nodeType":"YulBlock","src":"45655:92:24","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"45681:6:24","nodeType":"YulIdentifier","src":"45681:6:24"},{"kind":"number","nativeSrc":"45689:2:24","nodeType":"YulLiteral","src":"45689:2:24","type":"","value":"34"}],"functionName":{"name":"mstore8","nativeSrc":"45673:7:24","nodeType":"YulIdentifier","src":"45673:7:24"},"nativeSrc":"45673:19:24","nodeType":"YulFunctionCall","src":"45673:19:24"},"nativeSrc":"45673:19:24","nodeType":"YulExpressionStatement","src":"45673:19:24"},{"nativeSrc":"45709:24:24","nodeType":"YulAssignment","src":"45709:24:24","value":{"arguments":[{"kind":"number","nativeSrc":"45723:1:24","nodeType":"YulLiteral","src":"45723:1:24","type":"","value":"1"},{"name":"result","nativeSrc":"45726:6:24","nodeType":"YulIdentifier","src":"45726:6:24"}],"functionName":{"name":"add","nativeSrc":"45719:3:24","nodeType":"YulIdentifier","src":"45719:3:24"},"nativeSrc":"45719:14:24","nodeType":"YulFunctionCall","src":"45719:14:24"},"variableNames":[{"name":"result","nativeSrc":"45709:6:24","nodeType":"YulIdentifier","src":"45709:6:24"}]}]},"condition":{"name":"addDoubleQuotes","nativeSrc":"45639:15:24","nodeType":"YulIdentifier","src":"45639:15:24"},"nativeSrc":"45636:111:24","nodeType":"YulIf","src":"45636:111:24"},{"nativeSrc":"45760:18:24","nodeType":"YulVariableDeclaration","src":"45760:18:24","value":{"name":"result","nativeSrc":"45772:6:24","nodeType":"YulIdentifier","src":"45772:6:24"},"variables":[{"name":"last","nativeSrc":"45764:4:24","nodeType":"YulTypedName","src":"45764:4:24","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"45798:4:24","nodeType":"YulIdentifier","src":"45798:4:24"},{"kind":"number","nativeSrc":"45804:1:24","nodeType":"YulLiteral","src":"45804:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"45791:6:24","nodeType":"YulIdentifier","src":"45791:6:24"},"nativeSrc":"45791:15:24","nodeType":"YulFunctionCall","src":"45791:15:24"},"nativeSrc":"45791:15:24","nodeType":"YulExpressionStatement","src":"45791:15:24"},{"nativeSrc":"45857:21:24","nodeType":"YulAssignment","src":"45857:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"45873:4:24","nodeType":"YulLiteral","src":"45873:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"45867:5:24","nodeType":"YulIdentifier","src":"45867:5:24"},"nativeSrc":"45867:11:24","nodeType":"YulFunctionCall","src":"45867:11:24"},"variableNames":[{"name":"result","nativeSrc":"45857:6:24","nodeType":"YulIdentifier","src":"45857:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"45898:6:24","nodeType":"YulIdentifier","src":"45898:6:24"},{"arguments":[{"name":"last","nativeSrc":"45910:4:24","nodeType":"YulIdentifier","src":"45910:4:24"},{"arguments":[{"name":"result","nativeSrc":"45920:6:24","nodeType":"YulIdentifier","src":"45920:6:24"},{"kind":"number","nativeSrc":"45928:4:24","nodeType":"YulLiteral","src":"45928:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45916:3:24","nodeType":"YulIdentifier","src":"45916:3:24"},"nativeSrc":"45916:17:24","nodeType":"YulFunctionCall","src":"45916:17:24"}],"functionName":{"name":"sub","nativeSrc":"45906:3:24","nodeType":"YulIdentifier","src":"45906:3:24"},"nativeSrc":"45906:28:24","nodeType":"YulFunctionCall","src":"45906:28:24"}],"functionName":{"name":"mstore","nativeSrc":"45891:6:24","nodeType":"YulIdentifier","src":"45891:6:24"},"nativeSrc":"45891:44:24","nodeType":"YulFunctionCall","src":"45891:44:24"},"nativeSrc":"45891:44:24","nodeType":"YulExpressionStatement","src":"45891:44:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45976:4:24","nodeType":"YulLiteral","src":"45976:4:24","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"45986:4:24","nodeType":"YulIdentifier","src":"45986:4:24"},{"kind":"number","nativeSrc":"45992:4:24","nodeType":"YulLiteral","src":"45992:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45982:3:24","nodeType":"YulIdentifier","src":"45982:3:24"},"nativeSrc":"45982:15:24","nodeType":"YulFunctionCall","src":"45982:15:24"}],"functionName":{"name":"mstore","nativeSrc":"45969:6:24","nodeType":"YulIdentifier","src":"45969:6:24"},"nativeSrc":"45969:29:24","nodeType":"YulFunctionCall","src":"45969:29:24"},"nativeSrc":"45969:29:24","nodeType":"YulExpressionStatement","src":"45969:29:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10864,"isOffset":false,"isSlot":false,"src":"43943:15:24","valueSize":1},{"declaration":10864,"isOffset":false,"isSlot":false,"src":"45639:15:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"43895:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"43985:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44013:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44030:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44760:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44795:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44809:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44903:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44958:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"44993:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45007:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45337:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45392:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45406:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45488:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45539:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45585:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45599:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45681:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45709:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45726:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45772:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45857:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45898:6:24","valueSize":1},{"declaration":10867,"isOffset":false,"isSlot":false,"src":"45920:6:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"43870:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"43879:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44497:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44527:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44536:1:24","valueSize":1},{"declaration":10862,"isOffset":false,"isSlot":false,"src":"44577:1:24","valueSize":1}],"id":10869,"nodeType":"InlineAssembly","src":"43832:2200:24"}]},"documentation":{"id":10860,"nodeType":"StructuredDocumentation","src":"43488:154:24","text":"@dev Escapes the string to be used within double-quotes in a JSON.\n If `addDoubleQuotes` is true, the result will be enclosed in double-quotes."},"id":10871,"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"43656:10:24","nodeType":"FunctionDefinition","parameters":{"id":10865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10862,"mutability":"mutable","name":"s","nameLocation":"43681:1:24","nodeType":"VariableDeclaration","scope":10871,"src":"43667:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10861,"name":"string","nodeType":"ElementaryTypeName","src":"43667:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10864,"mutability":"mutable","name":"addDoubleQuotes","nameLocation":"43689:15:24","nodeType":"VariableDeclaration","scope":10871,"src":"43684:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10863,"name":"bool","nodeType":"ElementaryTypeName","src":"43684:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43666:39:24"},"returnParameters":{"id":10868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10867,"mutability":"mutable","name":"result","nameLocation":"43767:6:24","nodeType":"VariableDeclaration","scope":10871,"src":"43753:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10866,"name":"string","nodeType":"ElementaryTypeName","src":"43753:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43752:22:24"},"scope":10964,"src":"43647:2391:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10886,"nodeType":"Block","src":"46201:46:24","statements":[{"expression":{"id":10884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10879,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10877,"src":"46211:6:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10881,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10874,"src":"46231:1:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":10882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"46234:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10880,"name":"escapeJSON","nodeType":"Identifier","overloadedDeclarations":[10871,10887],"referencedDeclaration":10871,"src":"46220:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46220:20:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"46211:29:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10885,"nodeType":"ExpressionStatement","src":"46211:29:24"}]},"documentation":{"id":10872,"nodeType":"StructuredDocumentation","src":"46044:70:24","text":"@dev Escapes the string to be used within double-quotes in a JSON."},"id":10887,"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"46128:10:24","nodeType":"FunctionDefinition","parameters":{"id":10875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10874,"mutability":"mutable","name":"s","nameLocation":"46153:1:24","nodeType":"VariableDeclaration","scope":10887,"src":"46139:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10873,"name":"string","nodeType":"ElementaryTypeName","src":"46139:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46138:17:24"},"returnParameters":{"id":10878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10877,"mutability":"mutable","name":"result","nameLocation":"46193:6:24","nodeType":"VariableDeclaration","scope":10887,"src":"46179:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10876,"name":"string","nodeType":"ElementaryTypeName","src":"46179:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46178:22:24"},"scope":10964,"src":"46119:128:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10898,"nodeType":"Block","src":"46380:174:24","statements":[{"AST":{"nativeSrc":"46442:106:24","nodeType":"YulBlock","src":"46442:106:24","statements":[{"nativeSrc":"46456:82:24","nodeType":"YulAssignment","src":"46456:82:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"46483:1:24","nodeType":"YulIdentifier","src":"46483:1:24"},{"kind":"number","nativeSrc":"46486:4:24","nodeType":"YulLiteral","src":"46486:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46479:3:24","nodeType":"YulIdentifier","src":"46479:3:24"},"nativeSrc":"46479:12:24","nodeType":"YulFunctionCall","src":"46479:12:24"},{"arguments":[{"name":"a","nativeSrc":"46499:1:24","nodeType":"YulIdentifier","src":"46499:1:24"}],"functionName":{"name":"mload","nativeSrc":"46493:5:24","nodeType":"YulIdentifier","src":"46493:5:24"},"nativeSrc":"46493:8:24","nodeType":"YulFunctionCall","src":"46493:8:24"}],"functionName":{"name":"keccak256","nativeSrc":"46469:9:24","nodeType":"YulIdentifier","src":"46469:9:24"},"nativeSrc":"46469:33:24","nodeType":"YulFunctionCall","src":"46469:33:24"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"46518:1:24","nodeType":"YulIdentifier","src":"46518:1:24"},{"kind":"number","nativeSrc":"46521:4:24","nodeType":"YulLiteral","src":"46521:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46514:3:24","nodeType":"YulIdentifier","src":"46514:3:24"},"nativeSrc":"46514:12:24","nodeType":"YulFunctionCall","src":"46514:12:24"},{"arguments":[{"name":"b","nativeSrc":"46534:1:24","nodeType":"YulIdentifier","src":"46534:1:24"}],"functionName":{"name":"mload","nativeSrc":"46528:5:24","nodeType":"YulIdentifier","src":"46528:5:24"},"nativeSrc":"46528:8:24","nodeType":"YulFunctionCall","src":"46528:8:24"}],"functionName":{"name":"keccak256","nativeSrc":"46504:9:24","nodeType":"YulIdentifier","src":"46504:9:24"},"nativeSrc":"46504:33:24","nodeType":"YulFunctionCall","src":"46504:33:24"}],"functionName":{"name":"eq","nativeSrc":"46466:2:24","nodeType":"YulIdentifier","src":"46466:2:24"},"nativeSrc":"46466:72:24","nodeType":"YulFunctionCall","src":"46466:72:24"},"variableNames":[{"name":"result","nativeSrc":"46456:6:24","nodeType":"YulIdentifier","src":"46456:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10890,"isOffset":false,"isSlot":false,"src":"46483:1:24","valueSize":1},{"declaration":10890,"isOffset":false,"isSlot":false,"src":"46499:1:24","valueSize":1},{"declaration":10892,"isOffset":false,"isSlot":false,"src":"46518:1:24","valueSize":1},{"declaration":10892,"isOffset":false,"isSlot":false,"src":"46534:1:24","valueSize":1},{"declaration":10895,"isOffset":false,"isSlot":false,"src":"46456:6:24","valueSize":1}],"id":10897,"nodeType":"InlineAssembly","src":"46433:115:24"}]},"documentation":{"id":10888,"nodeType":"StructuredDocumentation","src":"46253:40:24","text":"@dev Returns whether `a` equals `b`."},"id":10899,"implemented":true,"kind":"function","modifiers":[],"name":"eq","nameLocation":"46307:2:24","nodeType":"FunctionDefinition","parameters":{"id":10893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10890,"mutability":"mutable","name":"a","nameLocation":"46324:1:24","nodeType":"VariableDeclaration","scope":10899,"src":"46310:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10889,"name":"string","nodeType":"ElementaryTypeName","src":"46310:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10892,"mutability":"mutable","name":"b","nameLocation":"46341:1:24","nodeType":"VariableDeclaration","scope":10899,"src":"46327:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10891,"name":"string","nodeType":"ElementaryTypeName","src":"46327:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46309:34:24"},"returnParameters":{"id":10896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10895,"mutability":"mutable","name":"result","nameLocation":"46372:6:24","nodeType":"VariableDeclaration","scope":10899,"src":"46367:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10894,"name":"bool","nodeType":"ElementaryTypeName","src":"46367:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46366:13:24"},"scope":10964,"src":"46298:256:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10910,"nodeType":"Block","src":"46727:774:24","statements":[{"AST":{"nativeSrc":"46789:706:24","nodeType":"YulBlock","src":"46789:706:24","statements":[{"nativeSrc":"46881:46:24","nodeType":"YulVariableDeclaration","src":"46881:46:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"46898:1:24","nodeType":"YulLiteral","src":"46898:1:24","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"46916:1:24","nodeType":"YulIdentifier","src":"46916:1:24"}],"functionName":{"name":"iszero","nativeSrc":"46909:6:24","nodeType":"YulIdentifier","src":"46909:6:24"},"nativeSrc":"46909:9:24","nodeType":"YulFunctionCall","src":"46909:9:24"}],"functionName":{"name":"not","nativeSrc":"46905:3:24","nodeType":"YulIdentifier","src":"46905:3:24"},"nativeSrc":"46905:14:24","nodeType":"YulFunctionCall","src":"46905:14:24"},{"kind":"number","nativeSrc":"46921:3:24","nodeType":"YulLiteral","src":"46921:3:24","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"46901:3:24","nodeType":"YulIdentifier","src":"46901:3:24"},"nativeSrc":"46901:24:24","nodeType":"YulFunctionCall","src":"46901:24:24"}],"functionName":{"name":"shl","nativeSrc":"46894:3:24","nodeType":"YulIdentifier","src":"46894:3:24"},"nativeSrc":"46894:32:24","nodeType":"YulFunctionCall","src":"46894:32:24"}],"functionName":{"name":"not","nativeSrc":"46890:3:24","nodeType":"YulIdentifier","src":"46890:3:24"},"nativeSrc":"46890:37:24","nodeType":"YulFunctionCall","src":"46890:37:24"},"variables":[{"name":"m","nativeSrc":"46885:1:24","nodeType":"YulTypedName","src":"46885:1:24","type":""}]},{"nativeSrc":"46957:45:24","nodeType":"YulVariableDeclaration","src":"46957:45:24","value":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"46973:1:24","nodeType":"YulIdentifier","src":"46973:1:24"},{"arguments":[{"name":"b","nativeSrc":"46979:1:24","nodeType":"YulIdentifier","src":"46979:1:24"},{"arguments":[{"name":"m","nativeSrc":"46986:1:24","nodeType":"YulIdentifier","src":"46986:1:24"},{"arguments":[{"name":"b","nativeSrc":"46993:1:24","nodeType":"YulIdentifier","src":"46993:1:24"},{"name":"m","nativeSrc":"46996:1:24","nodeType":"YulIdentifier","src":"46996:1:24"}],"functionName":{"name":"and","nativeSrc":"46989:3:24","nodeType":"YulIdentifier","src":"46989:3:24"},"nativeSrc":"46989:9:24","nodeType":"YulFunctionCall","src":"46989:9:24"}],"functionName":{"name":"add","nativeSrc":"46982:3:24","nodeType":"YulIdentifier","src":"46982:3:24"},"nativeSrc":"46982:17:24","nodeType":"YulFunctionCall","src":"46982:17:24"}],"functionName":{"name":"or","nativeSrc":"46976:2:24","nodeType":"YulIdentifier","src":"46976:2:24"},"nativeSrc":"46976:24:24","nodeType":"YulFunctionCall","src":"46976:24:24"}],"functionName":{"name":"or","nativeSrc":"46970:2:24","nodeType":"YulIdentifier","src":"46970:2:24"},"nativeSrc":"46970:31:24","nodeType":"YulFunctionCall","src":"46970:31:24"}],"functionName":{"name":"not","nativeSrc":"46966:3:24","nodeType":"YulIdentifier","src":"46966:3:24"},"nativeSrc":"46966:36:24","nodeType":"YulFunctionCall","src":"46966:36:24"},"variables":[{"name":"x","nativeSrc":"46961:1:24","nodeType":"YulTypedName","src":"46961:1:24","type":""}]},{"nativeSrc":"47015:44:24","nodeType":"YulVariableDeclaration","src":"47015:44:24","value":{"arguments":[{"kind":"number","nativeSrc":"47028:1:24","nodeType":"YulLiteral","src":"47028:1:24","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47049:3:24","nodeType":"YulLiteral","src":"47049:3:24","type":"","value":"128"},{"name":"x","nativeSrc":"47054:1:24","nodeType":"YulIdentifier","src":"47054:1:24"}],"functionName":{"name":"shr","nativeSrc":"47045:3:24","nodeType":"YulIdentifier","src":"47045:3:24"},"nativeSrc":"47045:11:24","nodeType":"YulFunctionCall","src":"47045:11:24"}],"functionName":{"name":"iszero","nativeSrc":"47038:6:24","nodeType":"YulIdentifier","src":"47038:6:24"},"nativeSrc":"47038:19:24","nodeType":"YulFunctionCall","src":"47038:19:24"}],"functionName":{"name":"iszero","nativeSrc":"47031:6:24","nodeType":"YulIdentifier","src":"47031:6:24"},"nativeSrc":"47031:27:24","nodeType":"YulFunctionCall","src":"47031:27:24"}],"functionName":{"name":"shl","nativeSrc":"47024:3:24","nodeType":"YulIdentifier","src":"47024:3:24"},"nativeSrc":"47024:35:24","nodeType":"YulFunctionCall","src":"47024:35:24"},"variables":[{"name":"r","nativeSrc":"47019:1:24","nodeType":"YulTypedName","src":"47019:1:24","type":""}]},{"nativeSrc":"47072:54:24","nodeType":"YulAssignment","src":"47072:54:24","value":{"arguments":[{"name":"r","nativeSrc":"47080:1:24","nodeType":"YulIdentifier","src":"47080:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47087:1:24","nodeType":"YulLiteral","src":"47087:1:24","type":"","value":"6"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47108:2:24","nodeType":"YulLiteral","src":"47108:2:24","type":"","value":"64"},{"arguments":[{"name":"r","nativeSrc":"47116:1:24","nodeType":"YulIdentifier","src":"47116:1:24"},{"name":"x","nativeSrc":"47119:1:24","nodeType":"YulIdentifier","src":"47119:1:24"}],"functionName":{"name":"shr","nativeSrc":"47112:3:24","nodeType":"YulIdentifier","src":"47112:3:24"},"nativeSrc":"47112:9:24","nodeType":"YulFunctionCall","src":"47112:9:24"}],"functionName":{"name":"shr","nativeSrc":"47104:3:24","nodeType":"YulIdentifier","src":"47104:3:24"},"nativeSrc":"47104:18:24","nodeType":"YulFunctionCall","src":"47104:18:24"}],"functionName":{"name":"iszero","nativeSrc":"47097:6:24","nodeType":"YulIdentifier","src":"47097:6:24"},"nativeSrc":"47097:26:24","nodeType":"YulFunctionCall","src":"47097:26:24"}],"functionName":{"name":"iszero","nativeSrc":"47090:6:24","nodeType":"YulIdentifier","src":"47090:6:24"},"nativeSrc":"47090:34:24","nodeType":"YulFunctionCall","src":"47090:34:24"}],"functionName":{"name":"shl","nativeSrc":"47083:3:24","nodeType":"YulIdentifier","src":"47083:3:24"},"nativeSrc":"47083:42:24","nodeType":"YulFunctionCall","src":"47083:42:24"}],"functionName":{"name":"or","nativeSrc":"47077:2:24","nodeType":"YulIdentifier","src":"47077:2:24"},"nativeSrc":"47077:49:24","nodeType":"YulFunctionCall","src":"47077:49:24"},"variableNames":[{"name":"r","nativeSrc":"47072:1:24","nodeType":"YulIdentifier","src":"47072:1:24"}]},{"nativeSrc":"47139:45:24","nodeType":"YulAssignment","src":"47139:45:24","value":{"arguments":[{"name":"r","nativeSrc":"47147:1:24","nodeType":"YulIdentifier","src":"47147:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47154:1:24","nodeType":"YulLiteral","src":"47154:1:24","type":"","value":"5"},{"arguments":[{"kind":"number","nativeSrc":"47160:10:24","nodeType":"YulLiteral","src":"47160:10:24","type":"","value":"0xffffffff"},{"arguments":[{"name":"r","nativeSrc":"47176:1:24","nodeType":"YulIdentifier","src":"47176:1:24"},{"name":"x","nativeSrc":"47179:1:24","nodeType":"YulIdentifier","src":"47179:1:24"}],"functionName":{"name":"shr","nativeSrc":"47172:3:24","nodeType":"YulIdentifier","src":"47172:3:24"},"nativeSrc":"47172:9:24","nodeType":"YulFunctionCall","src":"47172:9:24"}],"functionName":{"name":"lt","nativeSrc":"47157:2:24","nodeType":"YulIdentifier","src":"47157:2:24"},"nativeSrc":"47157:25:24","nodeType":"YulFunctionCall","src":"47157:25:24"}],"functionName":{"name":"shl","nativeSrc":"47150:3:24","nodeType":"YulIdentifier","src":"47150:3:24"},"nativeSrc":"47150:33:24","nodeType":"YulFunctionCall","src":"47150:33:24"}],"functionName":{"name":"or","nativeSrc":"47144:2:24","nodeType":"YulIdentifier","src":"47144:2:24"},"nativeSrc":"47144:40:24","nodeType":"YulFunctionCall","src":"47144:40:24"},"variableNames":[{"name":"r","nativeSrc":"47139:1:24","nodeType":"YulIdentifier","src":"47139:1:24"}]},{"nativeSrc":"47197:41:24","nodeType":"YulAssignment","src":"47197:41:24","value":{"arguments":[{"name":"r","nativeSrc":"47205:1:24","nodeType":"YulIdentifier","src":"47205:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47212:1:24","nodeType":"YulLiteral","src":"47212:1:24","type":"","value":"4"},{"arguments":[{"kind":"number","nativeSrc":"47218:6:24","nodeType":"YulLiteral","src":"47218:6:24","type":"","value":"0xffff"},{"arguments":[{"name":"r","nativeSrc":"47230:1:24","nodeType":"YulIdentifier","src":"47230:1:24"},{"name":"x","nativeSrc":"47233:1:24","nodeType":"YulIdentifier","src":"47233:1:24"}],"functionName":{"name":"shr","nativeSrc":"47226:3:24","nodeType":"YulIdentifier","src":"47226:3:24"},"nativeSrc":"47226:9:24","nodeType":"YulFunctionCall","src":"47226:9:24"}],"functionName":{"name":"lt","nativeSrc":"47215:2:24","nodeType":"YulIdentifier","src":"47215:2:24"},"nativeSrc":"47215:21:24","nodeType":"YulFunctionCall","src":"47215:21:24"}],"functionName":{"name":"shl","nativeSrc":"47208:3:24","nodeType":"YulIdentifier","src":"47208:3:24"},"nativeSrc":"47208:29:24","nodeType":"YulFunctionCall","src":"47208:29:24"}],"functionName":{"name":"or","nativeSrc":"47202:2:24","nodeType":"YulIdentifier","src":"47202:2:24"},"nativeSrc":"47202:36:24","nodeType":"YulFunctionCall","src":"47202:36:24"},"variableNames":[{"name":"r","nativeSrc":"47197:1:24","nodeType":"YulIdentifier","src":"47197:1:24"}]},{"nativeSrc":"47251:39:24","nodeType":"YulAssignment","src":"47251:39:24","value":{"arguments":[{"name":"r","nativeSrc":"47259:1:24","nodeType":"YulIdentifier","src":"47259:1:24"},{"arguments":[{"kind":"number","nativeSrc":"47266:1:24","nodeType":"YulLiteral","src":"47266:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"47272:4:24","nodeType":"YulLiteral","src":"47272:4:24","type":"","value":"0xff"},{"arguments":[{"name":"r","nativeSrc":"47282:1:24","nodeType":"YulIdentifier","src":"47282:1:24"},{"name":"x","nativeSrc":"47285:1:24","nodeType":"YulIdentifier","src":"47285:1:24"}],"functionName":{"name":"shr","nativeSrc":"47278:3:24","nodeType":"YulIdentifier","src":"47278:3:24"},"nativeSrc":"47278:9:24","nodeType":"YulFunctionCall","src":"47278:9:24"}],"functionName":{"name":"lt","nativeSrc":"47269:2:24","nodeType":"YulIdentifier","src":"47269:2:24"},"nativeSrc":"47269:19:24","nodeType":"YulFunctionCall","src":"47269:19:24"}],"functionName":{"name":"shl","nativeSrc":"47262:3:24","nodeType":"YulIdentifier","src":"47262:3:24"},"nativeSrc":"47262:27:24","nodeType":"YulFunctionCall","src":"47262:27:24"}],"functionName":{"name":"or","nativeSrc":"47256:2:24","nodeType":"YulIdentifier","src":"47256:2:24"},"nativeSrc":"47256:34:24","nodeType":"YulFunctionCall","src":"47256:34:24"},"variableNames":[{"name":"r","nativeSrc":"47251:1:24","nodeType":"YulIdentifier","src":"47251:1:24"}]},{"nativeSrc":"47346:139:24","nodeType":"YulAssignment","src":"47346:139:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"47368:1:24","nodeType":"YulIdentifier","src":"47368:1:24"}],"functionName":{"name":"mload","nativeSrc":"47362:5:24","nodeType":"YulIdentifier","src":"47362:5:24"},"nativeSrc":"47362:8:24","nodeType":"YulFunctionCall","src":"47362:8:24"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"47383:1:24","nodeType":"YulIdentifier","src":"47383:1:24"}],"functionName":{"name":"iszero","nativeSrc":"47376:6:24","nodeType":"YulIdentifier","src":"47376:6:24"},"nativeSrc":"47376:9:24","nodeType":"YulFunctionCall","src":"47376:9:24"},{"arguments":[{"kind":"number","nativeSrc":"47391:2:24","nodeType":"YulLiteral","src":"47391:2:24","type":"","value":"31"},{"arguments":[{"kind":"number","nativeSrc":"47399:1:24","nodeType":"YulLiteral","src":"47399:1:24","type":"","value":"3"},{"name":"r","nativeSrc":"47402:1:24","nodeType":"YulIdentifier","src":"47402:1:24"}],"functionName":{"name":"shr","nativeSrc":"47395:3:24","nodeType":"YulIdentifier","src":"47395:3:24"},"nativeSrc":"47395:9:24","nodeType":"YulFunctionCall","src":"47395:9:24"}],"functionName":{"name":"xor","nativeSrc":"47387:3:24","nodeType":"YulIdentifier","src":"47387:3:24"},"nativeSrc":"47387:18:24","nodeType":"YulFunctionCall","src":"47387:18:24"}],"functionName":{"name":"add","nativeSrc":"47372:3:24","nodeType":"YulIdentifier","src":"47372:3:24"},"nativeSrc":"47372:34:24","nodeType":"YulFunctionCall","src":"47372:34:24"}],"functionName":{"name":"eq","nativeSrc":"47359:2:24","nodeType":"YulIdentifier","src":"47359:2:24"},"nativeSrc":"47359:48:24","nodeType":"YulFunctionCall","src":"47359:48:24"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47437:1:24","nodeType":"YulLiteral","src":"47437:1:24","type":"","value":"8"},{"name":"r","nativeSrc":"47440:1:24","nodeType":"YulIdentifier","src":"47440:1:24"}],"functionName":{"name":"add","nativeSrc":"47433:3:24","nodeType":"YulIdentifier","src":"47433:3:24"},"nativeSrc":"47433:9:24","nodeType":"YulFunctionCall","src":"47433:9:24"},{"name":"b","nativeSrc":"47444:1:24","nodeType":"YulIdentifier","src":"47444:1:24"}],"functionName":{"name":"shr","nativeSrc":"47429:3:24","nodeType":"YulIdentifier","src":"47429:3:24"},"nativeSrc":"47429:17:24","nodeType":"YulFunctionCall","src":"47429:17:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47456:1:24","nodeType":"YulLiteral","src":"47456:1:24","type":"","value":"8"},{"name":"r","nativeSrc":"47459:1:24","nodeType":"YulIdentifier","src":"47459:1:24"}],"functionName":{"name":"add","nativeSrc":"47452:3:24","nodeType":"YulIdentifier","src":"47452:3:24"},"nativeSrc":"47452:9:24","nodeType":"YulFunctionCall","src":"47452:9:24"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"47473:1:24","nodeType":"YulIdentifier","src":"47473:1:24"},{"kind":"number","nativeSrc":"47476:4:24","nodeType":"YulLiteral","src":"47476:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"47469:3:24","nodeType":"YulIdentifier","src":"47469:3:24"},"nativeSrc":"47469:12:24","nodeType":"YulFunctionCall","src":"47469:12:24"}],"functionName":{"name":"mload","nativeSrc":"47463:5:24","nodeType":"YulIdentifier","src":"47463:5:24"},"nativeSrc":"47463:19:24","nodeType":"YulFunctionCall","src":"47463:19:24"}],"functionName":{"name":"shr","nativeSrc":"47448:3:24","nodeType":"YulIdentifier","src":"47448:3:24"},"nativeSrc":"47448:35:24","nodeType":"YulFunctionCall","src":"47448:35:24"}],"functionName":{"name":"xor","nativeSrc":"47425:3:24","nodeType":"YulIdentifier","src":"47425:3:24"},"nativeSrc":"47425:59:24","nodeType":"YulFunctionCall","src":"47425:59:24"}],"functionName":{"name":"gt","nativeSrc":"47356:2:24","nodeType":"YulIdentifier","src":"47356:2:24"},"nativeSrc":"47356:129:24","nodeType":"YulFunctionCall","src":"47356:129:24"},"variableNames":[{"name":"result","nativeSrc":"47346:6:24","nodeType":"YulIdentifier","src":"47346:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10902,"isOffset":false,"isSlot":false,"src":"47368:1:24","valueSize":1},{"declaration":10902,"isOffset":false,"isSlot":false,"src":"47473:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"46916:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"46979:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"46993:1:24","valueSize":1},{"declaration":10904,"isOffset":false,"isSlot":false,"src":"47444:1:24","valueSize":1},{"declaration":10907,"isOffset":false,"isSlot":false,"src":"47346:6:24","valueSize":1}],"id":10909,"nodeType":"InlineAssembly","src":"46780:715:24"}]},"documentation":{"id":10900,"nodeType":"StructuredDocumentation","src":"46560:85:24","text":"@dev Returns whether `a` equals `b`, where `b` is a null-terminated small string."},"id":10911,"implemented":true,"kind":"function","modifiers":[],"name":"eqs","nameLocation":"46659:3:24","nodeType":"FunctionDefinition","parameters":{"id":10905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10902,"mutability":"mutable","name":"a","nameLocation":"46677:1:24","nodeType":"VariableDeclaration","scope":10911,"src":"46663:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10901,"name":"string","nodeType":"ElementaryTypeName","src":"46663:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10904,"mutability":"mutable","name":"b","nameLocation":"46688:1:24","nodeType":"VariableDeclaration","scope":10911,"src":"46680:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46680:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46662:28:24"},"returnParameters":{"id":10908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10907,"mutability":"mutable","name":"result","nameLocation":"46719:6:24","nodeType":"VariableDeclaration","scope":10911,"src":"46714:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10906,"name":"bool","nodeType":"ElementaryTypeName","src":"46714:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46713:13:24"},"scope":10964,"src":"46650:851:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10920,"nodeType":"Block","src":"47722:573:24","statements":[{"AST":{"nativeSrc":"47784:505:24","nodeType":"YulBlock","src":"47784:505:24","statements":[{"nativeSrc":"47930:349:24","nodeType":"YulAssignment","src":"47930:349:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"48045:1:24","nodeType":"YulIdentifier","src":"48045:1:24"},{"kind":"number","nativeSrc":"48048:4:24","nodeType":"YulLiteral","src":"48048:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"48041:3:24","nodeType":"YulIdentifier","src":"48041:3:24"},"nativeSrc":"48041:12:24","nodeType":"YulFunctionCall","src":"48041:12:24"}],"functionName":{"name":"mload","nativeSrc":"48035:5:24","nodeType":"YulIdentifier","src":"48035:5:24"},"nativeSrc":"48035:19:24","nodeType":"YulFunctionCall","src":"48035:19:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"48248:1:24","nodeType":"YulIdentifier","src":"48248:1:24"}],"functionName":{"name":"mload","nativeSrc":"48242:5:24","nodeType":"YulIdentifier","src":"48242:5:24"},"nativeSrc":"48242:8:24","nodeType":"YulFunctionCall","src":"48242:8:24"},{"kind":"number","nativeSrc":"48252:1:24","nodeType":"YulLiteral","src":"48252:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"48238:3:24","nodeType":"YulIdentifier","src":"48238:3:24"},"nativeSrc":"48238:16:24","nodeType":"YulFunctionCall","src":"48238:16:24"},{"kind":"number","nativeSrc":"48256:4:24","nodeType":"YulLiteral","src":"48256:4:24","type":"","value":"0x1f"}],"functionName":{"name":"lt","nativeSrc":"48235:2:24","nodeType":"YulIdentifier","src":"48235:2:24"},"nativeSrc":"48235:26:24","nodeType":"YulFunctionCall","src":"48235:26:24"}],"functionName":{"name":"mul","nativeSrc":"47956:3:24","nodeType":"YulIdentifier","src":"47956:3:24"},"nativeSrc":"47956:323:24","nodeType":"YulFunctionCall","src":"47956:323:24"},"variableNames":[{"name":"result","nativeSrc":"47930:6:24","nodeType":"YulIdentifier","src":"47930:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10914,"isOffset":false,"isSlot":false,"src":"48045:1:24","valueSize":1},{"declaration":10914,"isOffset":false,"isSlot":false,"src":"48248:1:24","valueSize":1},{"declaration":10917,"isOffset":false,"isSlot":false,"src":"47930:6:24","valueSize":1}],"id":10919,"nodeType":"InlineAssembly","src":"47775:514:24"}]},"documentation":{"id":10912,"nodeType":"StructuredDocumentation","src":"47507:137:24","text":"@dev Packs a single string with its length into a single word.\n Returns `bytes32(0)` if the length is zero or greater than 31."},"id":10921,"implemented":true,"kind":"function","modifiers":[],"name":"packOne","nameLocation":"47658:7:24","nodeType":"FunctionDefinition","parameters":{"id":10915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10914,"mutability":"mutable","name":"a","nameLocation":"47680:1:24","nodeType":"VariableDeclaration","scope":10921,"src":"47666:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10913,"name":"string","nodeType":"ElementaryTypeName","src":"47666:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47665:17:24"},"returnParameters":{"id":10918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10917,"mutability":"mutable","name":"result","nameLocation":"47714:6:24","nodeType":"VariableDeclaration","scope":10921,"src":"47706:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47706:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"47705:16:24"},"scope":10964,"src":"47649:646:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10930,"nodeType":"Block","src":"48582:529:24","statements":[{"AST":{"nativeSrc":"48644:461:24","nodeType":"YulBlock","src":"48644:461:24","statements":[{"nativeSrc":"48703:21:24","nodeType":"YulAssignment","src":"48703:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"48719:4:24","nodeType":"YulLiteral","src":"48719:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"48713:5:24","nodeType":"YulIdentifier","src":"48713:5:24"},"nativeSrc":"48713:11:24","nodeType":"YulFunctionCall","src":"48713:11:24"},"variableNames":[{"name":"result","nativeSrc":"48703:6:24","nodeType":"YulIdentifier","src":"48703:6:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48813:4:24","nodeType":"YulLiteral","src":"48813:4:24","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"48823:6:24","nodeType":"YulIdentifier","src":"48823:6:24"},{"kind":"number","nativeSrc":"48831:4:24","nodeType":"YulLiteral","src":"48831:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"48819:3:24","nodeType":"YulIdentifier","src":"48819:3:24"},"nativeSrc":"48819:17:24","nodeType":"YulFunctionCall","src":"48819:17:24"}],"functionName":{"name":"mstore","nativeSrc":"48806:6:24","nodeType":"YulIdentifier","src":"48806:6:24"},"nativeSrc":"48806:31:24","nodeType":"YulFunctionCall","src":"48806:31:24"},"nativeSrc":"48806:31:24","nodeType":"YulExpressionStatement","src":"48806:31:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"48897:6:24","nodeType":"YulIdentifier","src":"48897:6:24"},{"kind":"number","nativeSrc":"48905:1:24","nodeType":"YulLiteral","src":"48905:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"48890:6:24","nodeType":"YulIdentifier","src":"48890:6:24"},"nativeSrc":"48890:17:24","nodeType":"YulFunctionCall","src":"48890:17:24"},"nativeSrc":"48890:17:24","nodeType":"YulExpressionStatement","src":"48890:17:24"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"48974:6:24","nodeType":"YulIdentifier","src":"48974:6:24"},{"kind":"number","nativeSrc":"48982:4:24","nodeType":"YulLiteral","src":"48982:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"48970:3:24","nodeType":"YulIdentifier","src":"48970:3:24"},"nativeSrc":"48970:17:24","nodeType":"YulFunctionCall","src":"48970:17:24"},{"name":"packed","nativeSrc":"48989:6:24","nodeType":"YulIdentifier","src":"48989:6:24"}],"functionName":{"name":"mstore","nativeSrc":"48963:6:24","nodeType":"YulIdentifier","src":"48963:6:24"},"nativeSrc":"48963:33:24","nodeType":"YulFunctionCall","src":"48963:33:24"},"nativeSrc":"48963:33:24","nodeType":"YulExpressionStatement","src":"48963:33:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"49062:6:24","nodeType":"YulIdentifier","src":"49062:6:24"},{"kind":"number","nativeSrc":"49070:4:24","nodeType":"YulLiteral","src":"49070:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"49058:3:24","nodeType":"YulIdentifier","src":"49058:3:24"},"nativeSrc":"49058:17:24","nodeType":"YulFunctionCall","src":"49058:17:24"},{"arguments":[{"name":"result","nativeSrc":"49083:6:24","nodeType":"YulIdentifier","src":"49083:6:24"}],"functionName":{"name":"mload","nativeSrc":"49077:5:24","nodeType":"YulIdentifier","src":"49077:5:24"},"nativeSrc":"49077:13:24","nodeType":"YulFunctionCall","src":"49077:13:24"}],"functionName":{"name":"add","nativeSrc":"49054:3:24","nodeType":"YulIdentifier","src":"49054:3:24"},"nativeSrc":"49054:37:24","nodeType":"YulFunctionCall","src":"49054:37:24"},{"kind":"number","nativeSrc":"49093:1:24","nodeType":"YulLiteral","src":"49093:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"49047:6:24","nodeType":"YulIdentifier","src":"49047:6:24"},"nativeSrc":"49047:48:24","nodeType":"YulFunctionCall","src":"49047:48:24"},"nativeSrc":"49047:48:24","nodeType":"YulExpressionStatement","src":"49047:48:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10924,"isOffset":false,"isSlot":false,"src":"48989:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48703:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48823:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48897:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"48974:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"49062:6:24","valueSize":1},{"declaration":10927,"isOffset":false,"isSlot":false,"src":"49083:6:24","valueSize":1}],"id":10929,"nodeType":"InlineAssembly","src":"48635:470:24"}]},"documentation":{"id":10922,"nodeType":"StructuredDocumentation","src":"48301:196:24","text":"@dev Unpacks a string packed using {packOne}.\n Returns the empty string if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packOne}, the output behavior is undefined."},"id":10931,"implemented":true,"kind":"function","modifiers":[],"name":"unpackOne","nameLocation":"48511:9:24","nodeType":"FunctionDefinition","parameters":{"id":10925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10924,"mutability":"mutable","name":"packed","nameLocation":"48529:6:24","nodeType":"VariableDeclaration","scope":10931,"src":"48521:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48521:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48520:16:24"},"returnParameters":{"id":10928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10927,"mutability":"mutable","name":"result","nameLocation":"48574:6:24","nodeType":"VariableDeclaration","scope":10931,"src":"48560:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10926,"name":"string","nodeType":"ElementaryTypeName","src":"48560:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48559:22:24"},"scope":10964,"src":"48502:609:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10942,"nodeType":"Block","src":"49353:796:24","statements":[{"AST":{"nativeSrc":"49415:728:24","nodeType":"YulBlock","src":"49415:728:24","statements":[{"nativeSrc":"49429:23:24","nodeType":"YulVariableDeclaration","src":"49429:23:24","value":{"arguments":[{"name":"a","nativeSrc":"49450:1:24","nodeType":"YulIdentifier","src":"49450:1:24"}],"functionName":{"name":"mload","nativeSrc":"49444:5:24","nodeType":"YulIdentifier","src":"49444:5:24"},"nativeSrc":"49444:8:24","nodeType":"YulFunctionCall","src":"49444:8:24"},"variables":[{"name":"aLength","nativeSrc":"49433:7:24","nodeType":"YulTypedName","src":"49433:7:24","type":""}]},{"nativeSrc":"49598:535:24","nodeType":"YulAssignment","src":"49598:535:24","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"49754:1:24","nodeType":"YulLiteral","src":"49754:1:24","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"49761:4:24","nodeType":"YulLiteral","src":"49761:4:24","type":"","value":"0x1f"},{"name":"aLength","nativeSrc":"49767:7:24","nodeType":"YulIdentifier","src":"49767:7:24"}],"functionName":{"name":"sub","nativeSrc":"49757:3:24","nodeType":"YulIdentifier","src":"49757:3:24"},"nativeSrc":"49757:18:24","nodeType":"YulFunctionCall","src":"49757:18:24"}],"functionName":{"name":"shl","nativeSrc":"49750:3:24","nodeType":"YulIdentifier","src":"49750:3:24"},"nativeSrc":"49750:26:24","nodeType":"YulFunctionCall","src":"49750:26:24"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"49788:1:24","nodeType":"YulIdentifier","src":"49788:1:24"},{"name":"aLength","nativeSrc":"49791:7:24","nodeType":"YulIdentifier","src":"49791:7:24"}],"functionName":{"name":"add","nativeSrc":"49784:3:24","nodeType":"YulIdentifier","src":"49784:3:24"},"nativeSrc":"49784:15:24","nodeType":"YulFunctionCall","src":"49784:15:24"}],"functionName":{"name":"mload","nativeSrc":"49778:5:24","nodeType":"YulIdentifier","src":"49778:5:24"},"nativeSrc":"49778:22:24","nodeType":"YulFunctionCall","src":"49778:22:24"}],"functionName":{"name":"shl","nativeSrc":"49746:3:24","nodeType":"YulIdentifier","src":"49746:3:24"},"nativeSrc":"49746:55:24","nodeType":"YulFunctionCall","src":"49746:55:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"49841:1:24","nodeType":"YulIdentifier","src":"49841:1:24"},{"kind":"number","nativeSrc":"49844:4:24","nodeType":"YulLiteral","src":"49844:4:24","type":"","value":"0x1e"}],"functionName":{"name":"add","nativeSrc":"49837:3:24","nodeType":"YulIdentifier","src":"49837:3:24"},"nativeSrc":"49837:12:24","nodeType":"YulFunctionCall","src":"49837:12:24"},{"name":"aLength","nativeSrc":"49851:7:24","nodeType":"YulIdentifier","src":"49851:7:24"}],"functionName":{"name":"sub","nativeSrc":"49833:3:24","nodeType":"YulIdentifier","src":"49833:3:24"},"nativeSrc":"49833:26:24","nodeType":"YulFunctionCall","src":"49833:26:24"}],"functionName":{"name":"mload","nativeSrc":"49827:5:24","nodeType":"YulIdentifier","src":"49827:5:24"},"nativeSrc":"49827:33:24","nodeType":"YulFunctionCall","src":"49827:33:24"}],"functionName":{"name":"or","nativeSrc":"49718:2:24","nodeType":"YulIdentifier","src":"49718:2:24"},"nativeSrc":"49718:164:24","nodeType":"YulFunctionCall","src":"49718:164:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"aLength","nativeSrc":"50086:7:24","nodeType":"YulIdentifier","src":"50086:7:24"},{"arguments":[{"name":"b","nativeSrc":"50101:1:24","nodeType":"YulIdentifier","src":"50101:1:24"}],"functionName":{"name":"mload","nativeSrc":"50095:5:24","nodeType":"YulIdentifier","src":"50095:5:24"},"nativeSrc":"50095:8:24","nodeType":"YulFunctionCall","src":"50095:8:24"}],"functionName":{"name":"add","nativeSrc":"50082:3:24","nodeType":"YulIdentifier","src":"50082:3:24"},"nativeSrc":"50082:22:24","nodeType":"YulFunctionCall","src":"50082:22:24"},{"kind":"number","nativeSrc":"50106:1:24","nodeType":"YulLiteral","src":"50106:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"50078:3:24","nodeType":"YulIdentifier","src":"50078:3:24"},"nativeSrc":"50078:30:24","nodeType":"YulFunctionCall","src":"50078:30:24"},{"kind":"number","nativeSrc":"50110:4:24","nodeType":"YulLiteral","src":"50110:4:24","type":"","value":"0x1e"}],"functionName":{"name":"lt","nativeSrc":"50075:2:24","nodeType":"YulIdentifier","src":"50075:2:24"},"nativeSrc":"50075:40:24","nodeType":"YulFunctionCall","src":"50075:40:24"}],"functionName":{"name":"mul","nativeSrc":"49624:3:24","nodeType":"YulIdentifier","src":"49624:3:24"},"nativeSrc":"49624:509:24","nodeType":"YulFunctionCall","src":"49624:509:24"},"variableNames":[{"name":"result","nativeSrc":"49598:6:24","nodeType":"YulIdentifier","src":"49598:6:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10934,"isOffset":false,"isSlot":false,"src":"49450:1:24","valueSize":1},{"declaration":10934,"isOffset":false,"isSlot":false,"src":"49788:1:24","valueSize":1},{"declaration":10936,"isOffset":false,"isSlot":false,"src":"49841:1:24","valueSize":1},{"declaration":10936,"isOffset":false,"isSlot":false,"src":"50101:1:24","valueSize":1},{"declaration":10939,"isOffset":false,"isSlot":false,"src":"49598:6:24","valueSize":1}],"id":10941,"nodeType":"InlineAssembly","src":"49406:737:24"}]},"documentation":{"id":10932,"nodeType":"StructuredDocumentation","src":"49117:141:24","text":"@dev Packs two strings with their lengths into a single word.\n Returns `bytes32(0)` if combined length is zero or greater than 30."},"id":10943,"implemented":true,"kind":"function","modifiers":[],"name":"packTwo","nameLocation":"49272:7:24","nodeType":"FunctionDefinition","parameters":{"id":10937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10934,"mutability":"mutable","name":"a","nameLocation":"49294:1:24","nodeType":"VariableDeclaration","scope":10943,"src":"49280:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10933,"name":"string","nodeType":"ElementaryTypeName","src":"49280:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10936,"mutability":"mutable","name":"b","nameLocation":"49311:1:24","nodeType":"VariableDeclaration","scope":10943,"src":"49297:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10935,"name":"string","nodeType":"ElementaryTypeName","src":"49297:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49279:34:24"},"returnParameters":{"id":10940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10939,"mutability":"mutable","name":"result","nameLocation":"49345:6:24","nodeType":"VariableDeclaration","scope":10943,"src":"49337:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49337:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49336:16:24"},"scope":10964,"src":"49263:886:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10954,"nodeType":"Block","src":"50488:790:24","statements":[{"AST":{"nativeSrc":"50550:722:24","nodeType":"YulBlock","src":"50550:722:24","statements":[{"nativeSrc":"50609:22:24","nodeType":"YulAssignment","src":"50609:22:24","value":{"arguments":[{"kind":"number","nativeSrc":"50626:4:24","nodeType":"YulLiteral","src":"50626:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"50620:5:24","nodeType":"YulIdentifier","src":"50620:5:24"},"nativeSrc":"50620:11:24","nodeType":"YulFunctionCall","src":"50620:11:24"},"variableNames":[{"name":"resultA","nativeSrc":"50609:7:24","nodeType":"YulIdentifier","src":"50609:7:24"}]},{"nativeSrc":"50644:29:24","nodeType":"YulAssignment","src":"50644:29:24","value":{"arguments":[{"name":"resultA","nativeSrc":"50659:7:24","nodeType":"YulIdentifier","src":"50659:7:24"},{"kind":"number","nativeSrc":"50668:4:24","nodeType":"YulLiteral","src":"50668:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"50655:3:24","nodeType":"YulIdentifier","src":"50655:3:24"},"nativeSrc":"50655:18:24","nodeType":"YulFunctionCall","src":"50655:18:24"},"variableNames":[{"name":"resultB","nativeSrc":"50644:7:24","nodeType":"YulIdentifier","src":"50644:7:24"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50792:4:24","nodeType":"YulLiteral","src":"50792:4:24","type":"","value":"0x40"},{"arguments":[{"name":"resultB","nativeSrc":"50802:7:24","nodeType":"YulIdentifier","src":"50802:7:24"},{"kind":"number","nativeSrc":"50811:4:24","nodeType":"YulLiteral","src":"50811:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"50798:3:24","nodeType":"YulIdentifier","src":"50798:3:24"},"nativeSrc":"50798:18:24","nodeType":"YulFunctionCall","src":"50798:18:24"}],"functionName":{"name":"mstore","nativeSrc":"50785:6:24","nodeType":"YulIdentifier","src":"50785:6:24"},"nativeSrc":"50785:32:24","nodeType":"YulFunctionCall","src":"50785:32:24"},"nativeSrc":"50785:32:24","nodeType":"YulExpressionStatement","src":"50785:32:24"},{"expression":{"arguments":[{"name":"resultA","nativeSrc":"50878:7:24","nodeType":"YulIdentifier","src":"50878:7:24"},{"kind":"number","nativeSrc":"50887:1:24","nodeType":"YulLiteral","src":"50887:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50871:6:24","nodeType":"YulIdentifier","src":"50871:6:24"},"nativeSrc":"50871:18:24","nodeType":"YulFunctionCall","src":"50871:18:24"},"nativeSrc":"50871:18:24","nodeType":"YulExpressionStatement","src":"50871:18:24"},{"expression":{"arguments":[{"name":"resultB","nativeSrc":"50909:7:24","nodeType":"YulIdentifier","src":"50909:7:24"},{"kind":"number","nativeSrc":"50918:1:24","nodeType":"YulLiteral","src":"50918:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50902:6:24","nodeType":"YulIdentifier","src":"50902:6:24"},"nativeSrc":"50902:18:24","nodeType":"YulFunctionCall","src":"50902:18:24"},"nativeSrc":"50902:18:24","nodeType":"YulExpressionStatement","src":"50902:18:24"},{"expression":{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"50988:7:24","nodeType":"YulIdentifier","src":"50988:7:24"},{"kind":"number","nativeSrc":"50997:4:24","nodeType":"YulLiteral","src":"50997:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"50984:3:24","nodeType":"YulIdentifier","src":"50984:3:24"},"nativeSrc":"50984:18:24","nodeType":"YulFunctionCall","src":"50984:18:24"},{"name":"packed","nativeSrc":"51004:6:24","nodeType":"YulIdentifier","src":"51004:6:24"}],"functionName":{"name":"mstore","nativeSrc":"50977:6:24","nodeType":"YulIdentifier","src":"50977:6:24"},"nativeSrc":"50977:34:24","nodeType":"YulFunctionCall","src":"50977:34:24"},"nativeSrc":"50977:34:24","nodeType":"YulExpressionStatement","src":"50977:34:24"},{"expression":{"arguments":[{"arguments":[{"name":"resultB","nativeSrc":"51035:7:24","nodeType":"YulIdentifier","src":"51035:7:24"},{"kind":"number","nativeSrc":"51044:4:24","nodeType":"YulLiteral","src":"51044:4:24","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"51031:3:24","nodeType":"YulIdentifier","src":"51031:3:24"},"nativeSrc":"51031:18:24","nodeType":"YulFunctionCall","src":"51031:18:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"51065:7:24","nodeType":"YulIdentifier","src":"51065:7:24"},{"kind":"number","nativeSrc":"51074:4:24","nodeType":"YulLiteral","src":"51074:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51061:3:24","nodeType":"YulIdentifier","src":"51061:3:24"},"nativeSrc":"51061:18:24","nodeType":"YulFunctionCall","src":"51061:18:24"},{"arguments":[{"name":"resultA","nativeSrc":"51087:7:24","nodeType":"YulIdentifier","src":"51087:7:24"}],"functionName":{"name":"mload","nativeSrc":"51081:5:24","nodeType":"YulIdentifier","src":"51081:5:24"},"nativeSrc":"51081:14:24","nodeType":"YulFunctionCall","src":"51081:14:24"}],"functionName":{"name":"add","nativeSrc":"51057:3:24","nodeType":"YulIdentifier","src":"51057:3:24"},"nativeSrc":"51057:39:24","nodeType":"YulFunctionCall","src":"51057:39:24"}],"functionName":{"name":"mload","nativeSrc":"51051:5:24","nodeType":"YulIdentifier","src":"51051:5:24"},"nativeSrc":"51051:46:24","nodeType":"YulFunctionCall","src":"51051:46:24"}],"functionName":{"name":"mstore","nativeSrc":"51024:6:24","nodeType":"YulIdentifier","src":"51024:6:24"},"nativeSrc":"51024:74:24","nodeType":"YulFunctionCall","src":"51024:74:24"},"nativeSrc":"51024:74:24","nodeType":"YulExpressionStatement","src":"51024:74:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"51164:7:24","nodeType":"YulIdentifier","src":"51164:7:24"},{"kind":"number","nativeSrc":"51173:4:24","nodeType":"YulLiteral","src":"51173:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51160:3:24","nodeType":"YulIdentifier","src":"51160:3:24"},"nativeSrc":"51160:18:24","nodeType":"YulFunctionCall","src":"51160:18:24"},{"arguments":[{"name":"resultA","nativeSrc":"51186:7:24","nodeType":"YulIdentifier","src":"51186:7:24"}],"functionName":{"name":"mload","nativeSrc":"51180:5:24","nodeType":"YulIdentifier","src":"51180:5:24"},"nativeSrc":"51180:14:24","nodeType":"YulFunctionCall","src":"51180:14:24"}],"functionName":{"name":"add","nativeSrc":"51156:3:24","nodeType":"YulIdentifier","src":"51156:3:24"},"nativeSrc":"51156:39:24","nodeType":"YulFunctionCall","src":"51156:39:24"},{"kind":"number","nativeSrc":"51197:1:24","nodeType":"YulLiteral","src":"51197:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51149:6:24","nodeType":"YulIdentifier","src":"51149:6:24"},"nativeSrc":"51149:50:24","nodeType":"YulFunctionCall","src":"51149:50:24"},"nativeSrc":"51149:50:24","nodeType":"YulExpressionStatement","src":"51149:50:24"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultB","nativeSrc":"51227:7:24","nodeType":"YulIdentifier","src":"51227:7:24"},{"kind":"number","nativeSrc":"51236:4:24","nodeType":"YulLiteral","src":"51236:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51223:3:24","nodeType":"YulIdentifier","src":"51223:3:24"},"nativeSrc":"51223:18:24","nodeType":"YulFunctionCall","src":"51223:18:24"},{"arguments":[{"name":"resultB","nativeSrc":"51249:7:24","nodeType":"YulIdentifier","src":"51249:7:24"}],"functionName":{"name":"mload","nativeSrc":"51243:5:24","nodeType":"YulIdentifier","src":"51243:5:24"},"nativeSrc":"51243:14:24","nodeType":"YulFunctionCall","src":"51243:14:24"}],"functionName":{"name":"add","nativeSrc":"51219:3:24","nodeType":"YulIdentifier","src":"51219:3:24"},"nativeSrc":"51219:39:24","nodeType":"YulFunctionCall","src":"51219:39:24"},{"kind":"number","nativeSrc":"51260:1:24","nodeType":"YulLiteral","src":"51260:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51212:6:24","nodeType":"YulIdentifier","src":"51212:6:24"},"nativeSrc":"51212:50:24","nodeType":"YulFunctionCall","src":"51212:50:24"},"nativeSrc":"51212:50:24","nodeType":"YulExpressionStatement","src":"51212:50:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10946,"isOffset":false,"isSlot":false,"src":"51004:6:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50609:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50659:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50878:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"50988:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51065:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51087:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51164:7:24","valueSize":1},{"declaration":10949,"isOffset":false,"isSlot":false,"src":"51186:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"50644:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"50802:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"50909:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"51035:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"51227:7:24","valueSize":1},{"declaration":10951,"isOffset":false,"isSlot":false,"src":"51249:7:24","valueSize":1}],"id":10953,"nodeType":"InlineAssembly","src":"50541:731:24"}]},"documentation":{"id":10944,"nodeType":"StructuredDocumentation","src":"50155:196:24","text":"@dev Unpacks strings packed using {packTwo}.\n Returns the empty strings if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packTwo}, the output behavior is undefined."},"id":10955,"implemented":true,"kind":"function","modifiers":[],"name":"unpackTwo","nameLocation":"50365:9:24","nodeType":"FunctionDefinition","parameters":{"id":10947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10946,"mutability":"mutable","name":"packed","nameLocation":"50383:6:24","nodeType":"VariableDeclaration","scope":10955,"src":"50375:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50375:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50374:16:24"},"returnParameters":{"id":10952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10949,"mutability":"mutable","name":"resultA","nameLocation":"50452:7:24","nodeType":"VariableDeclaration","scope":10955,"src":"50438:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10948,"name":"string","nodeType":"ElementaryTypeName","src":"50438:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10951,"mutability":"mutable","name":"resultB","nameLocation":"50475:7:24","nodeType":"VariableDeclaration","scope":10955,"src":"50461:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10950,"name":"string","nodeType":"ElementaryTypeName","src":"50461:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50437:46:24"},"scope":10964,"src":"50356:922:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10962,"nodeType":"Block","src":"51388:600:24","statements":[{"AST":{"nativeSrc":"51407:575:24","nodeType":"YulBlock","src":"51407:575:24","statements":[{"nativeSrc":"51499:28:24","nodeType":"YulVariableDeclaration","src":"51499:28:24","value":{"arguments":[{"name":"a","nativeSrc":"51519:1:24","nodeType":"YulIdentifier","src":"51519:1:24"},{"kind":"number","nativeSrc":"51522:4:24","nodeType":"YulLiteral","src":"51522:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"51515:3:24","nodeType":"YulIdentifier","src":"51515:3:24"},"nativeSrc":"51515:12:24","nodeType":"YulFunctionCall","src":"51515:12:24"},"variables":[{"name":"retStart","nativeSrc":"51503:8:24","nodeType":"YulTypedName","src":"51503:8:24","type":""}]},{"nativeSrc":"51540:42:24","nodeType":"YulVariableDeclaration","src":"51540:42:24","value":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"51573:1:24","nodeType":"YulIdentifier","src":"51573:1:24"}],"functionName":{"name":"mload","nativeSrc":"51567:5:24","nodeType":"YulIdentifier","src":"51567:5:24"},"nativeSrc":"51567:8:24","nodeType":"YulFunctionCall","src":"51567:8:24"},{"kind":"number","nativeSrc":"51577:4:24","nodeType":"YulLiteral","src":"51577:4:24","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"51563:3:24","nodeType":"YulIdentifier","src":"51563:3:24"},"nativeSrc":"51563:19:24","nodeType":"YulFunctionCall","src":"51563:19:24"},"variables":[{"name":"retUnpaddedSize","nativeSrc":"51544:15:24","nodeType":"YulTypedName","src":"51544:15:24","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"retStart","nativeSrc":"51736:8:24","nodeType":"YulIdentifier","src":"51736:8:24"},{"name":"retUnpaddedSize","nativeSrc":"51746:15:24","nodeType":"YulIdentifier","src":"51746:15:24"}],"functionName":{"name":"add","nativeSrc":"51732:3:24","nodeType":"YulIdentifier","src":"51732:3:24"},"nativeSrc":"51732:30:24","nodeType":"YulFunctionCall","src":"51732:30:24"},{"kind":"number","nativeSrc":"51764:1:24","nodeType":"YulLiteral","src":"51764:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51725:6:24","nodeType":"YulIdentifier","src":"51725:6:24"},"nativeSrc":"51725:41:24","nodeType":"YulFunctionCall","src":"51725:41:24"},"nativeSrc":"51725:41:24","nodeType":"YulExpressionStatement","src":"51725:41:24"},{"expression":{"arguments":[{"name":"retStart","nativeSrc":"51826:8:24","nodeType":"YulIdentifier","src":"51826:8:24"},{"kind":"number","nativeSrc":"51836:4:24","nodeType":"YulLiteral","src":"51836:4:24","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"51819:6:24","nodeType":"YulIdentifier","src":"51819:6:24"},"nativeSrc":"51819:22:24","nodeType":"YulFunctionCall","src":"51819:22:24"},"nativeSrc":"51819:22:24","nodeType":"YulExpressionStatement","src":"51819:22:24"},{"expression":{"arguments":[{"name":"retStart","nativeSrc":"51919:8:24","nodeType":"YulIdentifier","src":"51919:8:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"51937:4:24","nodeType":"YulLiteral","src":"51937:4:24","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"51933:3:24","nodeType":"YulIdentifier","src":"51933:3:24"},"nativeSrc":"51933:9:24","nodeType":"YulFunctionCall","src":"51933:9:24"},{"arguments":[{"kind":"number","nativeSrc":"51948:4:24","nodeType":"YulLiteral","src":"51948:4:24","type":"","value":"0x1f"},{"name":"retUnpaddedSize","nativeSrc":"51954:15:24","nodeType":"YulIdentifier","src":"51954:15:24"}],"functionName":{"name":"add","nativeSrc":"51944:3:24","nodeType":"YulIdentifier","src":"51944:3:24"},"nativeSrc":"51944:26:24","nodeType":"YulFunctionCall","src":"51944:26:24"}],"functionName":{"name":"and","nativeSrc":"51929:3:24","nodeType":"YulIdentifier","src":"51929:3:24"},"nativeSrc":"51929:42:24","nodeType":"YulFunctionCall","src":"51929:42:24"}],"functionName":{"name":"return","nativeSrc":"51912:6:24","nodeType":"YulIdentifier","src":"51912:6:24"},"nativeSrc":"51912:60:24","nodeType":"YulFunctionCall","src":"51912:60:24"},"nativeSrc":"51912:60:24","nodeType":"YulExpressionStatement","src":"51912:60:24"}]},"evmVersion":"cancun","externalReferences":[{"declaration":10958,"isOffset":false,"isSlot":false,"src":"51519:1:24","valueSize":1},{"declaration":10958,"isOffset":false,"isSlot":false,"src":"51573:1:24","valueSize":1}],"id":10961,"nodeType":"InlineAssembly","src":"51398:584:24"}]},"documentation":{"id":10956,"nodeType":"StructuredDocumentation","src":"51284:46:24","text":"@dev Directly returns `a` without copying."},"id":10963,"implemented":true,"kind":"function","modifiers":[],"name":"directReturn","nameLocation":"51344:12:24","nodeType":"FunctionDefinition","parameters":{"id":10959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10958,"mutability":"mutable","name":"a","nameLocation":"51371:1:24","nodeType":"VariableDeclaration","scope":10963,"src":"51357:15:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10957,"name":"string","nodeType":"ElementaryTypeName","src":"51357:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51356:17:24"},"returnParameters":{"id":10960,"nodeType":"ParameterList","parameters":[],"src":"51388:0:24"},"scope":10964,"src":"51335:653:24","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10965,"src":"648:51342:24","usedErrors":[10313,10316],"usedEvents":[]}],"src":"32:51959:24"},"id":24},"@solady/utils/LibZip.sol":{"ast":{"absolutePath":"@solady/utils/LibZip.sol","exportedSymbols":{"LibZip":[11014]},"id":11015,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10966,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:25"},{"abstract":false,"baseContracts":[],"canonicalName":"LibZip","contractDependencies":[],"contractKind":"library","documentation":{"id":10967,"nodeType":"StructuredDocumentation","src":"57:435:25","text":"@notice Library for compressing and decompressing bytes.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)\n @author Calldata compression by clabby (https://github.com/clabby/op-kompressor)\n @author FastLZ by ariya (https://github.com/ariya/FastLZ)\n @dev Note:\n The accompanying solady.js library includes implementations of\n FastLZ and calldata operations for convenience."},"fullyImplemented":true,"id":11014,"linearizedBaseContracts":[11014],"name":"LibZip","nameLocation":"500:6:25","nodeType":"ContractDefinition","nodes":[{"body":{"id":10976,"nodeType":"Block","src":"1186:3866:25","statements":[{"AST":{"nativeSrc":"1248:3798:25","nodeType":"YulBlock","src":"1248:3798:25","statements":[{"body":{"nativeSrc":"1289:80:25","nodeType":"YulBlock","src":"1289:80:25","statements":[{"expression":{"arguments":[{"name":"d_","nativeSrc":"1315:2:25","nodeType":"YulIdentifier","src":"1315:2:25"},{"name":"v_","nativeSrc":"1319:2:25","nodeType":"YulIdentifier","src":"1319:2:25"}],"functionName":{"name":"mstore8","nativeSrc":"1307:7:25","nodeType":"YulIdentifier","src":"1307:7:25"},"nativeSrc":"1307:15:25","nodeType":"YulFunctionCall","src":"1307:15:25"},"nativeSrc":"1307:15:25","nodeType":"YulExpressionStatement","src":"1307:15:25"},{"nativeSrc":"1339:16:25","nodeType":"YulAssignment","src":"1339:16:25","value":{"arguments":[{"name":"d_","nativeSrc":"1349:2:25","nodeType":"YulIdentifier","src":"1349:2:25"},{"kind":"number","nativeSrc":"1353:1:25","nodeType":"YulLiteral","src":"1353:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1345:3:25","nodeType":"YulIdentifier","src":"1345:3:25"},"nativeSrc":"1345:10:25","nodeType":"YulFunctionCall","src":"1345:10:25"},"variableNames":[{"name":"_d","nativeSrc":"1339:2:25","nodeType":"YulIdentifier","src":"1339:2:25"}]}]},"name":"ms8","nativeSrc":"1262:107:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"d_","nativeSrc":"1275:2:25","nodeType":"YulTypedName","src":"1275:2:25","type":""},{"name":"v_","nativeSrc":"1279:2:25","nodeType":"YulTypedName","src":"1279:2:25","type":""}],"returnVariables":[{"name":"_d","nativeSrc":"1286:2:25","nodeType":"YulTypedName","src":"1286:2:25","type":""}],"src":"1262:107:25"},{"body":{"nativeSrc":"1405:132:25","nodeType":"YulBlock","src":"1405:132:25","statements":[{"nativeSrc":"1423:15:25","nodeType":"YulAssignment","src":"1423:15:25","value":{"arguments":[{"name":"p_","nativeSrc":"1435:2:25","nodeType":"YulIdentifier","src":"1435:2:25"}],"functionName":{"name":"mload","nativeSrc":"1429:5:25","nodeType":"YulIdentifier","src":"1429:5:25"},"nativeSrc":"1429:9:25","nodeType":"YulFunctionCall","src":"1429:9:25"},"variableNames":[{"name":"_u","nativeSrc":"1423:2:25","nodeType":"YulIdentifier","src":"1423:2:25"}]},{"nativeSrc":"1455:68:25","nodeType":"YulAssignment","src":"1455:68:25","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1468:2:25","nodeType":"YulLiteral","src":"1468:2:25","type":"","value":"16"},{"arguments":[{"kind":"number","nativeSrc":"1477:1:25","nodeType":"YulLiteral","src":"1477:1:25","type":"","value":"2"},{"name":"_u","nativeSrc":"1480:2:25","nodeType":"YulIdentifier","src":"1480:2:25"}],"functionName":{"name":"byte","nativeSrc":"1472:4:25","nodeType":"YulIdentifier","src":"1472:4:25"},"nativeSrc":"1472:11:25","nodeType":"YulFunctionCall","src":"1472:11:25"}],"functionName":{"name":"shl","nativeSrc":"1464:3:25","nodeType":"YulIdentifier","src":"1464:3:25"},"nativeSrc":"1464:20:25","nodeType":"YulFunctionCall","src":"1464:20:25"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1493:1:25","nodeType":"YulLiteral","src":"1493:1:25","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"1501:1:25","nodeType":"YulLiteral","src":"1501:1:25","type":"","value":"1"},{"name":"_u","nativeSrc":"1504:2:25","nodeType":"YulIdentifier","src":"1504:2:25"}],"functionName":{"name":"byte","nativeSrc":"1496:4:25","nodeType":"YulIdentifier","src":"1496:4:25"},"nativeSrc":"1496:11:25","nodeType":"YulFunctionCall","src":"1496:11:25"}],"functionName":{"name":"shl","nativeSrc":"1489:3:25","nodeType":"YulIdentifier","src":"1489:3:25"},"nativeSrc":"1489:19:25","nodeType":"YulFunctionCall","src":"1489:19:25"},{"arguments":[{"kind":"number","nativeSrc":"1515:1:25","nodeType":"YulLiteral","src":"1515:1:25","type":"","value":"0"},{"name":"_u","nativeSrc":"1518:2:25","nodeType":"YulIdentifier","src":"1518:2:25"}],"functionName":{"name":"byte","nativeSrc":"1510:4:25","nodeType":"YulIdentifier","src":"1510:4:25"},"nativeSrc":"1510:11:25","nodeType":"YulFunctionCall","src":"1510:11:25"}],"functionName":{"name":"or","nativeSrc":"1486:2:25","nodeType":"YulIdentifier","src":"1486:2:25"},"nativeSrc":"1486:36:25","nodeType":"YulFunctionCall","src":"1486:36:25"}],"functionName":{"name":"or","nativeSrc":"1461:2:25","nodeType":"YulIdentifier","src":"1461:2:25"},"nativeSrc":"1461:62:25","nodeType":"YulFunctionCall","src":"1461:62:25"},"variableNames":[{"name":"_u","nativeSrc":"1455:2:25","nodeType":"YulIdentifier","src":"1455:2:25"}]}]},"name":"u24","nativeSrc":"1382:155:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"p_","nativeSrc":"1395:2:25","nodeType":"YulTypedName","src":"1395:2:25","type":""}],"returnVariables":[{"name":"_u","nativeSrc":"1402:2:25","nodeType":"YulTypedName","src":"1402:2:25","type":""}],"src":"1382:155:25"},{"body":{"nativeSrc":"1581:205:25","nodeType":"YulBlock","src":"1581:205:25","statements":[{"body":{"nativeSrc":"1657:115:25","nodeType":"YulBlock","src":"1657:115:25","statements":[{"nativeSrc":"1679:75:25","nodeType":"YulAssignment","src":"1679:75:25","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1701:1:25","nodeType":"YulLiteral","src":"1701:1:25","type":"","value":"0"},{"arguments":[{"arguments":[{"arguments":[{"name":"p_","nativeSrc":"1718:2:25","nodeType":"YulIdentifier","src":"1718:2:25"},{"name":"_l","nativeSrc":"1722:2:25","nodeType":"YulIdentifier","src":"1722:2:25"}],"functionName":{"name":"add","nativeSrc":"1714:3:25","nodeType":"YulIdentifier","src":"1714:3:25"},"nativeSrc":"1714:11:25","nodeType":"YulFunctionCall","src":"1714:11:25"}],"functionName":{"name":"mload","nativeSrc":"1708:5:25","nodeType":"YulIdentifier","src":"1708:5:25"},"nativeSrc":"1708:18:25","nodeType":"YulFunctionCall","src":"1708:18:25"},{"arguments":[{"arguments":[{"name":"q_","nativeSrc":"1738:2:25","nodeType":"YulIdentifier","src":"1738:2:25"},{"name":"_l","nativeSrc":"1742:2:25","nodeType":"YulIdentifier","src":"1742:2:25"}],"functionName":{"name":"add","nativeSrc":"1734:3:25","nodeType":"YulIdentifier","src":"1734:3:25"},"nativeSrc":"1734:11:25","nodeType":"YulFunctionCall","src":"1734:11:25"}],"functionName":{"name":"mload","nativeSrc":"1728:5:25","nodeType":"YulIdentifier","src":"1728:5:25"},"nativeSrc":"1728:18:25","nodeType":"YulFunctionCall","src":"1728:18:25"}],"functionName":{"name":"xor","nativeSrc":"1704:3:25","nodeType":"YulIdentifier","src":"1704:3:25"},"nativeSrc":"1704:43:25","nodeType":"YulFunctionCall","src":"1704:43:25"}],"functionName":{"name":"byte","nativeSrc":"1696:4:25","nodeType":"YulIdentifier","src":"1696:4:25"},"nativeSrc":"1696:52:25","nodeType":"YulFunctionCall","src":"1696:52:25"}],"functionName":{"name":"iszero","nativeSrc":"1689:6:25","nodeType":"YulIdentifier","src":"1689:6:25"},"nativeSrc":"1689:60:25","nodeType":"YulFunctionCall","src":"1689:60:25"},{"name":"e_","nativeSrc":"1751:2:25","nodeType":"YulIdentifier","src":"1751:2:25"}],"functionName":{"name":"mul","nativeSrc":"1685:3:25","nodeType":"YulIdentifier","src":"1685:3:25"},"nativeSrc":"1685:69:25","nodeType":"YulFunctionCall","src":"1685:69:25"},"variableNames":[{"name":"e_","nativeSrc":"1679:2:25","nodeType":"YulIdentifier","src":"1679:2:25"}]}]},"condition":{"arguments":[{"name":"_l","nativeSrc":"1628:2:25","nodeType":"YulIdentifier","src":"1628:2:25"},{"name":"e_","nativeSrc":"1632:2:25","nodeType":"YulIdentifier","src":"1632:2:25"}],"functionName":{"name":"lt","nativeSrc":"1625:2:25","nodeType":"YulIdentifier","src":"1625:2:25"},"nativeSrc":"1625:10:25","nodeType":"YulFunctionCall","src":"1625:10:25"},"nativeSrc":"1599:173:25","nodeType":"YulForLoop","post":{"nativeSrc":"1636:20:25","nodeType":"YulBlock","src":"1636:20:25","statements":[{"nativeSrc":"1638:16:25","nodeType":"YulAssignment","src":"1638:16:25","value":{"arguments":[{"name":"_l","nativeSrc":"1648:2:25","nodeType":"YulIdentifier","src":"1648:2:25"},{"kind":"number","nativeSrc":"1652:1:25","nodeType":"YulLiteral","src":"1652:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1644:3:25","nodeType":"YulIdentifier","src":"1644:3:25"},"nativeSrc":"1644:10:25","nodeType":"YulFunctionCall","src":"1644:10:25"},"variableNames":[{"name":"_l","nativeSrc":"1638:2:25","nodeType":"YulIdentifier","src":"1638:2:25"}]}]},"pre":{"nativeSrc":"1603:21:25","nodeType":"YulBlock","src":"1603:21:25","statements":[{"nativeSrc":"1605:17:25","nodeType":"YulAssignment","src":"1605:17:25","value":{"arguments":[{"name":"e_","nativeSrc":"1615:2:25","nodeType":"YulIdentifier","src":"1615:2:25"},{"name":"q_","nativeSrc":"1619:2:25","nodeType":"YulIdentifier","src":"1619:2:25"}],"functionName":{"name":"sub","nativeSrc":"1611:3:25","nodeType":"YulIdentifier","src":"1611:3:25"},"nativeSrc":"1611:11:25","nodeType":"YulFunctionCall","src":"1611:11:25"},"variableNames":[{"name":"e_","nativeSrc":"1605:2:25","nodeType":"YulIdentifier","src":"1605:2:25"}]}]},"src":"1599:173:25"}]},"name":"cmp","nativeSrc":"1550:236:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"p_","nativeSrc":"1563:2:25","nodeType":"YulTypedName","src":"1563:2:25","type":""},{"name":"q_","nativeSrc":"1567:2:25","nodeType":"YulTypedName","src":"1567:2:25","type":""},{"name":"e_","nativeSrc":"1571:2:25","nodeType":"YulTypedName","src":"1571:2:25","type":""}],"returnVariables":[{"name":"_l","nativeSrc":"1578:2:25","nodeType":"YulTypedName","src":"1578:2:25","type":""}],"src":"1550:236:25"},{"body":{"nativeSrc":"1843:410:25","nodeType":"YulBlock","src":"1843:410:25","statements":[{"body":{"nativeSrc":"1935:156:25","nodeType":"YulBlock","src":"1935:156:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"_o","nativeSrc":"1968:2:25","nodeType":"YulIdentifier","src":"1968:2:25"},{"kind":"number","nativeSrc":"1972:2:25","nodeType":"YulLiteral","src":"1972:2:25","type":"","value":"31"}],"functionName":{"name":"ms8","nativeSrc":"1964:3:25","nodeType":"YulIdentifier","src":"1964:3:25"},"nativeSrc":"1964:11:25","nodeType":"YulFunctionCall","src":"1964:11:25"},{"arguments":[{"name":"src_","nativeSrc":"1983:4:25","nodeType":"YulIdentifier","src":"1983:4:25"}],"functionName":{"name":"mload","nativeSrc":"1977:5:25","nodeType":"YulIdentifier","src":"1977:5:25"},"nativeSrc":"1977:11:25","nodeType":"YulFunctionCall","src":"1977:11:25"}],"functionName":{"name":"mstore","nativeSrc":"1957:6:25","nodeType":"YulIdentifier","src":"1957:6:25"},"nativeSrc":"1957:32:25","nodeType":"YulFunctionCall","src":"1957:32:25"},"nativeSrc":"1957:32:25","nodeType":"YulExpressionStatement","src":"1957:32:25"},{"nativeSrc":"2010:19:25","nodeType":"YulAssignment","src":"2010:19:25","value":{"arguments":[{"name":"_o","nativeSrc":"2020:2:25","nodeType":"YulIdentifier","src":"2020:2:25"},{"kind":"number","nativeSrc":"2024:4:25","nodeType":"YulLiteral","src":"2024:4:25","type":"","value":"0x21"}],"functionName":{"name":"add","nativeSrc":"2016:3:25","nodeType":"YulIdentifier","src":"2016:3:25"},"nativeSrc":"2016:13:25","nodeType":"YulFunctionCall","src":"2016:13:25"},"variableNames":[{"name":"_o","nativeSrc":"2010:2:25","nodeType":"YulIdentifier","src":"2010:2:25"}]},{"nativeSrc":"2050:23:25","nodeType":"YulAssignment","src":"2050:23:25","value":{"arguments":[{"name":"src_","nativeSrc":"2062:4:25","nodeType":"YulIdentifier","src":"2062:4:25"},{"kind":"number","nativeSrc":"2068:4:25","nodeType":"YulLiteral","src":"2068:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2058:3:25","nodeType":"YulIdentifier","src":"2058:3:25"},"nativeSrc":"2058:15:25","nodeType":"YulFunctionCall","src":"2058:15:25"},"variableNames":[{"name":"src_","nativeSrc":"2050:4:25","nodeType":"YulIdentifier","src":"2050:4:25"}]}]},"condition":{"arguments":[{"arguments":[{"name":"runs_","nativeSrc":"1891:5:25","nodeType":"YulIdentifier","src":"1891:5:25"},{"kind":"number","nativeSrc":"1898:4:25","nodeType":"YulLiteral","src":"1898:4:25","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"1888:2:25","nodeType":"YulIdentifier","src":"1888:2:25"},"nativeSrc":"1888:15:25","nodeType":"YulFunctionCall","src":"1888:15:25"}],"functionName":{"name":"iszero","nativeSrc":"1881:6:25","nodeType":"YulIdentifier","src":"1881:6:25"},"nativeSrc":"1881:23:25","nodeType":"YulFunctionCall","src":"1881:23:25"},"nativeSrc":"1861:230:25","nodeType":"YulForLoop","post":{"nativeSrc":"1905:29:25","nodeType":"YulBlock","src":"1905:29:25","statements":[{"nativeSrc":"1907:25:25","nodeType":"YulAssignment","src":"1907:25:25","value":{"arguments":[{"name":"runs_","nativeSrc":"1920:5:25","nodeType":"YulIdentifier","src":"1920:5:25"},{"kind":"number","nativeSrc":"1927:4:25","nodeType":"YulLiteral","src":"1927:4:25","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"1916:3:25","nodeType":"YulIdentifier","src":"1916:3:25"},"nativeSrc":"1916:16:25","nodeType":"YulFunctionCall","src":"1916:16:25"},"variableNames":[{"name":"runs_","nativeSrc":"1907:5:25","nodeType":"YulIdentifier","src":"1907:5:25"}]}]},"pre":{"nativeSrc":"1865:15:25","nodeType":"YulBlock","src":"1865:15:25","statements":[{"nativeSrc":"1867:11:25","nodeType":"YulAssignment","src":"1867:11:25","value":{"name":"dest_","nativeSrc":"1873:5:25","nodeType":"YulIdentifier","src":"1873:5:25"},"variableNames":[{"name":"_o","nativeSrc":"1867:2:25","nodeType":"YulIdentifier","src":"1867:2:25"}]}]},"src":"1861:230:25"},{"body":{"nativeSrc":"2125:9:25","nodeType":"YulBlock","src":"2125:9:25","statements":[{"nativeSrc":"2127:5:25","nodeType":"YulLeave","src":"2127:5:25"}]},"condition":{"arguments":[{"name":"runs_","nativeSrc":"2118:5:25","nodeType":"YulIdentifier","src":"2118:5:25"}],"functionName":{"name":"iszero","nativeSrc":"2111:6:25","nodeType":"YulIdentifier","src":"2111:6:25"},"nativeSrc":"2111:13:25","nodeType":"YulFunctionCall","src":"2111:13:25"},"nativeSrc":"2108:26:25","nodeType":"YulIf","src":"2108:26:25"},{"expression":{"arguments":[{"arguments":[{"name":"_o","nativeSrc":"2162:2:25","nodeType":"YulIdentifier","src":"2162:2:25"},{"arguments":[{"name":"runs_","nativeSrc":"2170:5:25","nodeType":"YulIdentifier","src":"2170:5:25"},{"kind":"number","nativeSrc":"2177:1:25","nodeType":"YulLiteral","src":"2177:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2166:3:25","nodeType":"YulIdentifier","src":"2166:3:25"},"nativeSrc":"2166:13:25","nodeType":"YulFunctionCall","src":"2166:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2158:3:25","nodeType":"YulIdentifier","src":"2158:3:25"},"nativeSrc":"2158:22:25","nodeType":"YulFunctionCall","src":"2158:22:25"},{"arguments":[{"name":"src_","nativeSrc":"2188:4:25","nodeType":"YulIdentifier","src":"2188:4:25"}],"functionName":{"name":"mload","nativeSrc":"2182:5:25","nodeType":"YulIdentifier","src":"2182:5:25"},"nativeSrc":"2182:11:25","nodeType":"YulFunctionCall","src":"2182:11:25"}],"functionName":{"name":"mstore","nativeSrc":"2151:6:25","nodeType":"YulIdentifier","src":"2151:6:25"},"nativeSrc":"2151:43:25","nodeType":"YulFunctionCall","src":"2151:43:25"},"nativeSrc":"2151:43:25","nodeType":"YulExpressionStatement","src":"2151:43:25"},{"nativeSrc":"2211:28:25","nodeType":"YulAssignment","src":"2211:28:25","value":{"arguments":[{"kind":"number","nativeSrc":"2221:1:25","nodeType":"YulLiteral","src":"2221:1:25","type":"","value":"1"},{"arguments":[{"name":"_o","nativeSrc":"2228:2:25","nodeType":"YulIdentifier","src":"2228:2:25"},{"name":"runs_","nativeSrc":"2232:5:25","nodeType":"YulIdentifier","src":"2232:5:25"}],"functionName":{"name":"add","nativeSrc":"2224:3:25","nodeType":"YulIdentifier","src":"2224:3:25"},"nativeSrc":"2224:14:25","nodeType":"YulFunctionCall","src":"2224:14:25"}],"functionName":{"name":"add","nativeSrc":"2217:3:25","nodeType":"YulIdentifier","src":"2217:3:25"},"nativeSrc":"2217:22:25","nodeType":"YulFunctionCall","src":"2217:22:25"},"variableNames":[{"name":"_o","nativeSrc":"2211:2:25","nodeType":"YulIdentifier","src":"2211:2:25"}]}]},"name":"literals","nativeSrc":"1799:454:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"runs_","nativeSrc":"1817:5:25","nodeType":"YulTypedName","src":"1817:5:25","type":""},{"name":"src_","nativeSrc":"1824:4:25","nodeType":"YulTypedName","src":"1824:4:25","type":""},{"name":"dest_","nativeSrc":"1830:5:25","nodeType":"YulTypedName","src":"1830:5:25","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"1840:2:25","nodeType":"YulTypedName","src":"1840:2:25","type":""}],"src":"1799:454:25"},{"body":{"nativeSrc":"2296:460:25","nodeType":"YulBlock","src":"2296:460:25","statements":[{"body":{"nativeSrc":"2382:105:25","nodeType":"YulBlock","src":"2382:105:25","statements":[{"nativeSrc":"2404:65:25","nodeType":"YulAssignment","src":"2404:65:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2422:2:25","nodeType":"YulIdentifier","src":"2422:2:25"},{"arguments":[{"kind":"number","nativeSrc":"2430:3:25","nodeType":"YulLiteral","src":"2430:3:25","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"2439:1:25","nodeType":"YulLiteral","src":"2439:1:25","type":"","value":"8"},{"name":"d_","nativeSrc":"2442:2:25","nodeType":"YulIdentifier","src":"2442:2:25"}],"functionName":{"name":"shr","nativeSrc":"2435:3:25","nodeType":"YulIdentifier","src":"2435:3:25"},"nativeSrc":"2435:10:25","nodeType":"YulFunctionCall","src":"2435:10:25"}],"functionName":{"name":"add","nativeSrc":"2426:3:25","nodeType":"YulIdentifier","src":"2426:3:25"},"nativeSrc":"2426:20:25","nodeType":"YulFunctionCall","src":"2426:20:25"}],"functionName":{"name":"ms8","nativeSrc":"2418:3:25","nodeType":"YulIdentifier","src":"2418:3:25"},"nativeSrc":"2418:29:25","nodeType":"YulFunctionCall","src":"2418:29:25"},{"kind":"number","nativeSrc":"2449:3:25","nodeType":"YulLiteral","src":"2449:3:25","type":"","value":"253"}],"functionName":{"name":"ms8","nativeSrc":"2414:3:25","nodeType":"YulIdentifier","src":"2414:3:25"},"nativeSrc":"2414:39:25","nodeType":"YulFunctionCall","src":"2414:39:25"},{"arguments":[{"kind":"number","nativeSrc":"2459:4:25","nodeType":"YulLiteral","src":"2459:4:25","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2465:2:25","nodeType":"YulIdentifier","src":"2465:2:25"}],"functionName":{"name":"and","nativeSrc":"2455:3:25","nodeType":"YulIdentifier","src":"2455:3:25"},"nativeSrc":"2455:13:25","nodeType":"YulFunctionCall","src":"2455:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2410:3:25","nodeType":"YulIdentifier","src":"2410:3:25"},"nativeSrc":"2410:59:25","nodeType":"YulFunctionCall","src":"2410:59:25"},"variableNames":[{"name":"o_","nativeSrc":"2404:2:25","nodeType":"YulIdentifier","src":"2404:2:25"}]}]},"condition":{"arguments":[{"arguments":[{"name":"l_","nativeSrc":"2349:2:25","nodeType":"YulIdentifier","src":"2349:2:25"},{"kind":"number","nativeSrc":"2353:3:25","nodeType":"YulLiteral","src":"2353:3:25","type":"","value":"263"}],"functionName":{"name":"lt","nativeSrc":"2346:2:25","nodeType":"YulIdentifier","src":"2346:2:25"},"nativeSrc":"2346:11:25","nodeType":"YulFunctionCall","src":"2346:11:25"}],"functionName":{"name":"iszero","nativeSrc":"2339:6:25","nodeType":"YulIdentifier","src":"2339:6:25"},"nativeSrc":"2339:19:25","nodeType":"YulFunctionCall","src":"2339:19:25"},"nativeSrc":"2314:173:25","nodeType":"YulForLoop","post":{"nativeSrc":"2359:22:25","nodeType":"YulBlock","src":"2359:22:25","statements":[{"nativeSrc":"2361:18:25","nodeType":"YulAssignment","src":"2361:18:25","value":{"arguments":[{"name":"l_","nativeSrc":"2371:2:25","nodeType":"YulIdentifier","src":"2371:2:25"},{"kind":"number","nativeSrc":"2375:3:25","nodeType":"YulLiteral","src":"2375:3:25","type":"","value":"262"}],"functionName":{"name":"sub","nativeSrc":"2367:3:25","nodeType":"YulIdentifier","src":"2367:3:25"},"nativeSrc":"2367:12:25","nodeType":"YulFunctionCall","src":"2367:12:25"},"variableNames":[{"name":"l_","nativeSrc":"2361:2:25","nodeType":"YulIdentifier","src":"2361:2:25"}]}]},"pre":{"nativeSrc":"2318:20:25","nodeType":"YulBlock","src":"2318:20:25","statements":[{"nativeSrc":"2320:16:25","nodeType":"YulAssignment","src":"2320:16:25","value":{"arguments":[{"name":"d_","nativeSrc":"2330:2:25","nodeType":"YulIdentifier","src":"2330:2:25"},{"kind":"number","nativeSrc":"2334:1:25","nodeType":"YulLiteral","src":"2334:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2326:3:25","nodeType":"YulIdentifier","src":"2326:3:25"},"nativeSrc":"2326:10:25","nodeType":"YulFunctionCall","src":"2326:10:25"},"variableNames":[{"name":"d_","nativeSrc":"2320:2:25","nodeType":"YulIdentifier","src":"2320:2:25"}]}]},"src":"2314:173:25"},{"body":{"nativeSrc":"2525:138:25","nodeType":"YulBlock","src":"2525:138:25","statements":[{"nativeSrc":"2547:72:25","nodeType":"YulAssignment","src":"2547:72:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2565:2:25","nodeType":"YulIdentifier","src":"2565:2:25"},{"arguments":[{"kind":"number","nativeSrc":"2573:3:25","nodeType":"YulLiteral","src":"2573:3:25","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"2582:1:25","nodeType":"YulLiteral","src":"2582:1:25","type":"","value":"8"},{"name":"d_","nativeSrc":"2585:2:25","nodeType":"YulIdentifier","src":"2585:2:25"}],"functionName":{"name":"shr","nativeSrc":"2578:3:25","nodeType":"YulIdentifier","src":"2578:3:25"},"nativeSrc":"2578:10:25","nodeType":"YulFunctionCall","src":"2578:10:25"}],"functionName":{"name":"add","nativeSrc":"2569:3:25","nodeType":"YulIdentifier","src":"2569:3:25"},"nativeSrc":"2569:20:25","nodeType":"YulFunctionCall","src":"2569:20:25"}],"functionName":{"name":"ms8","nativeSrc":"2561:3:25","nodeType":"YulIdentifier","src":"2561:3:25"},"nativeSrc":"2561:29:25","nodeType":"YulFunctionCall","src":"2561:29:25"},{"arguments":[{"name":"l_","nativeSrc":"2596:2:25","nodeType":"YulIdentifier","src":"2596:2:25"},{"kind":"number","nativeSrc":"2600:1:25","nodeType":"YulLiteral","src":"2600:1:25","type":"","value":"7"}],"functionName":{"name":"sub","nativeSrc":"2592:3:25","nodeType":"YulIdentifier","src":"2592:3:25"},"nativeSrc":"2592:10:25","nodeType":"YulFunctionCall","src":"2592:10:25"}],"functionName":{"name":"ms8","nativeSrc":"2557:3:25","nodeType":"YulIdentifier","src":"2557:3:25"},"nativeSrc":"2557:46:25","nodeType":"YulFunctionCall","src":"2557:46:25"},{"arguments":[{"kind":"number","nativeSrc":"2609:4:25","nodeType":"YulLiteral","src":"2609:4:25","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2615:2:25","nodeType":"YulIdentifier","src":"2615:2:25"}],"functionName":{"name":"and","nativeSrc":"2605:3:25","nodeType":"YulIdentifier","src":"2605:3:25"},"nativeSrc":"2605:13:25","nodeType":"YulFunctionCall","src":"2605:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2553:3:25","nodeType":"YulIdentifier","src":"2553:3:25"},"nativeSrc":"2553:66:25","nodeType":"YulFunctionCall","src":"2553:66:25"},"variableNames":[{"name":"_o","nativeSrc":"2547:2:25","nodeType":"YulIdentifier","src":"2547:2:25"}]},{"nativeSrc":"2640:5:25","nodeType":"YulLeave","src":"2640:5:25"}]},"condition":{"arguments":[{"arguments":[{"name":"l_","nativeSrc":"2517:2:25","nodeType":"YulIdentifier","src":"2517:2:25"},{"kind":"number","nativeSrc":"2521:1:25","nodeType":"YulLiteral","src":"2521:1:25","type":"","value":"7"}],"functionName":{"name":"lt","nativeSrc":"2514:2:25","nodeType":"YulIdentifier","src":"2514:2:25"},"nativeSrc":"2514:9:25","nodeType":"YulFunctionCall","src":"2514:9:25"}],"functionName":{"name":"iszero","nativeSrc":"2507:6:25","nodeType":"YulIdentifier","src":"2507:6:25"},"nativeSrc":"2507:17:25","nodeType":"YulFunctionCall","src":"2507:17:25"},"nativeSrc":"2504:159:25","nodeType":"YulIf","src":"2504:159:25"},{"nativeSrc":"2680:62:25","nodeType":"YulAssignment","src":"2680:62:25","value":{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2694:2:25","nodeType":"YulIdentifier","src":"2694:2:25"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2706:1:25","nodeType":"YulLiteral","src":"2706:1:25","type":"","value":"5"},{"name":"l_","nativeSrc":"2709:2:25","nodeType":"YulIdentifier","src":"2709:2:25"}],"functionName":{"name":"shl","nativeSrc":"2702:3:25","nodeType":"YulIdentifier","src":"2702:3:25"},"nativeSrc":"2702:10:25","nodeType":"YulFunctionCall","src":"2702:10:25"},{"arguments":[{"kind":"number","nativeSrc":"2718:1:25","nodeType":"YulLiteral","src":"2718:1:25","type":"","value":"8"},{"name":"d_","nativeSrc":"2721:2:25","nodeType":"YulIdentifier","src":"2721:2:25"}],"functionName":{"name":"shr","nativeSrc":"2714:3:25","nodeType":"YulIdentifier","src":"2714:3:25"},"nativeSrc":"2714:10:25","nodeType":"YulFunctionCall","src":"2714:10:25"}],"functionName":{"name":"add","nativeSrc":"2698:3:25","nodeType":"YulIdentifier","src":"2698:3:25"},"nativeSrc":"2698:27:25","nodeType":"YulFunctionCall","src":"2698:27:25"}],"functionName":{"name":"ms8","nativeSrc":"2690:3:25","nodeType":"YulIdentifier","src":"2690:3:25"},"nativeSrc":"2690:36:25","nodeType":"YulFunctionCall","src":"2690:36:25"},{"arguments":[{"kind":"number","nativeSrc":"2732:4:25","nodeType":"YulLiteral","src":"2732:4:25","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2738:2:25","nodeType":"YulIdentifier","src":"2738:2:25"}],"functionName":{"name":"and","nativeSrc":"2728:3:25","nodeType":"YulIdentifier","src":"2728:3:25"},"nativeSrc":"2728:13:25","nodeType":"YulFunctionCall","src":"2728:13:25"}],"functionName":{"name":"ms8","nativeSrc":"2686:3:25","nodeType":"YulIdentifier","src":"2686:3:25"},"nativeSrc":"2686:56:25","nodeType":"YulFunctionCall","src":"2686:56:25"},"variableNames":[{"name":"_o","nativeSrc":"2680:2:25","nodeType":"YulIdentifier","src":"2680:2:25"}]}]},"name":"mt","nativeSrc":"2266:490:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"l_","nativeSrc":"2278:2:25","nodeType":"YulTypedName","src":"2278:2:25","type":""},{"name":"d_","nativeSrc":"2282:2:25","nodeType":"YulTypedName","src":"2282:2:25","type":""},{"name":"o_","nativeSrc":"2286:2:25","nodeType":"YulTypedName","src":"2286:2:25","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"2293:2:25","nodeType":"YulTypedName","src":"2293:2:25","type":""}],"src":"2266:490:25"},{"body":{"nativeSrc":"2794:153:25","nodeType":"YulBlock","src":"2794:153:25","statements":[{"nativeSrc":"2812:38:25","nodeType":"YulVariableDeclaration","src":"2812:38:25","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2832:4:25","nodeType":"YulLiteral","src":"2832:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2826:5:25","nodeType":"YulIdentifier","src":"2826:5:25"},"nativeSrc":"2826:11:25","nodeType":"YulFunctionCall","src":"2826:11:25"},{"arguments":[{"kind":"number","nativeSrc":"2843:1:25","nodeType":"YulLiteral","src":"2843:1:25","type":"","value":"2"},{"name":"i_","nativeSrc":"2846:2:25","nodeType":"YulIdentifier","src":"2846:2:25"}],"functionName":{"name":"shl","nativeSrc":"2839:3:25","nodeType":"YulIdentifier","src":"2839:3:25"},"nativeSrc":"2839:10:25","nodeType":"YulFunctionCall","src":"2839:10:25"}],"functionName":{"name":"add","nativeSrc":"2822:3:25","nodeType":"YulIdentifier","src":"2822:3:25"},"nativeSrc":"2822:28:25","nodeType":"YulFunctionCall","src":"2822:28:25"},"variables":[{"name":"p_","nativeSrc":"2816:2:25","nodeType":"YulTypedName","src":"2816:2:25","type":""}]},{"expression":{"arguments":[{"name":"p_","nativeSrc":"2874:2:25","nodeType":"YulIdentifier","src":"2874:2:25"},{"arguments":[{"arguments":[{"name":"p_","nativeSrc":"2888:2:25","nodeType":"YulIdentifier","src":"2888:2:25"}],"functionName":{"name":"mload","nativeSrc":"2882:5:25","nodeType":"YulIdentifier","src":"2882:5:25"},"nativeSrc":"2882:9:25","nodeType":"YulFunctionCall","src":"2882:9:25"},{"arguments":[{"kind":"number","nativeSrc":"2897:3:25","nodeType":"YulLiteral","src":"2897:3:25","type":"","value":"224"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2910:3:25","nodeType":"YulLiteral","src":"2910:3:25","type":"","value":"224"},{"arguments":[{"name":"p_","nativeSrc":"2921:2:25","nodeType":"YulIdentifier","src":"2921:2:25"}],"functionName":{"name":"mload","nativeSrc":"2915:5:25","nodeType":"YulIdentifier","src":"2915:5:25"},"nativeSrc":"2915:9:25","nodeType":"YulFunctionCall","src":"2915:9:25"}],"functionName":{"name":"shr","nativeSrc":"2906:3:25","nodeType":"YulIdentifier","src":"2906:3:25"},"nativeSrc":"2906:19:25","nodeType":"YulFunctionCall","src":"2906:19:25"},{"name":"v_","nativeSrc":"2927:2:25","nodeType":"YulIdentifier","src":"2927:2:25"}],"functionName":{"name":"xor","nativeSrc":"2902:3:25","nodeType":"YulIdentifier","src":"2902:3:25"},"nativeSrc":"2902:28:25","nodeType":"YulFunctionCall","src":"2902:28:25"}],"functionName":{"name":"shl","nativeSrc":"2893:3:25","nodeType":"YulIdentifier","src":"2893:3:25"},"nativeSrc":"2893:38:25","nodeType":"YulFunctionCall","src":"2893:38:25"}],"functionName":{"name":"xor","nativeSrc":"2878:3:25","nodeType":"YulIdentifier","src":"2878:3:25"},"nativeSrc":"2878:54:25","nodeType":"YulFunctionCall","src":"2878:54:25"}],"functionName":{"name":"mstore","nativeSrc":"2867:6:25","nodeType":"YulIdentifier","src":"2867:6:25"},"nativeSrc":"2867:66:25","nodeType":"YulFunctionCall","src":"2867:66:25"},"nativeSrc":"2867:66:25","nodeType":"YulExpressionStatement","src":"2867:66:25"}]},"name":"setHash","nativeSrc":"2769:178:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"i_","nativeSrc":"2786:2:25","nodeType":"YulTypedName","src":"2786:2:25","type":""},{"name":"v_","nativeSrc":"2790:2:25","nodeType":"YulTypedName","src":"2790:2:25","type":""}],"src":"2769:178:25"},{"body":{"nativeSrc":"2987:83:25","nodeType":"YulBlock","src":"2987:83:25","statements":[{"nativeSrc":"3005:51:25","nodeType":"YulAssignment","src":"3005:51:25","value":{"arguments":[{"kind":"number","nativeSrc":"3015:3:25","nodeType":"YulLiteral","src":"3015:3:25","type":"","value":"224"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3036:4:25","nodeType":"YulLiteral","src":"3036:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"3030:5:25","nodeType":"YulIdentifier","src":"3030:5:25"},"nativeSrc":"3030:11:25","nodeType":"YulFunctionCall","src":"3030:11:25"},{"arguments":[{"kind":"number","nativeSrc":"3047:1:25","nodeType":"YulLiteral","src":"3047:1:25","type":"","value":"2"},{"name":"i_","nativeSrc":"3050:2:25","nodeType":"YulIdentifier","src":"3050:2:25"}],"functionName":{"name":"shl","nativeSrc":"3043:3:25","nodeType":"YulIdentifier","src":"3043:3:25"},"nativeSrc":"3043:10:25","nodeType":"YulFunctionCall","src":"3043:10:25"}],"functionName":{"name":"add","nativeSrc":"3026:3:25","nodeType":"YulIdentifier","src":"3026:3:25"},"nativeSrc":"3026:28:25","nodeType":"YulFunctionCall","src":"3026:28:25"}],"functionName":{"name":"mload","nativeSrc":"3020:5:25","nodeType":"YulIdentifier","src":"3020:5:25"},"nativeSrc":"3020:35:25","nodeType":"YulFunctionCall","src":"3020:35:25"}],"functionName":{"name":"shr","nativeSrc":"3011:3:25","nodeType":"YulIdentifier","src":"3011:3:25"},"nativeSrc":"3011:45:25","nodeType":"YulFunctionCall","src":"3011:45:25"},"variableNames":[{"name":"_h","nativeSrc":"3005:2:25","nodeType":"YulIdentifier","src":"3005:2:25"}]}]},"name":"getHash","nativeSrc":"2960:110:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"i_","nativeSrc":"2977:2:25","nodeType":"YulTypedName","src":"2977:2:25","type":""}],"returnVariables":[{"name":"_h","nativeSrc":"2984:2:25","nodeType":"YulTypedName","src":"2984:2:25","type":""}],"src":"2960:110:25"},{"body":{"nativeSrc":"3107:79:25","nodeType":"YulBlock","src":"3107:79:25","statements":[{"nativeSrc":"3125:47:25","nodeType":"YulAssignment","src":"3125:47:25","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3139:2:25","nodeType":"YulLiteral","src":"3139:2:25","type":"","value":"19"},{"arguments":[{"kind":"number","nativeSrc":"3147:10:25","nodeType":"YulLiteral","src":"3147:10:25","type":"","value":"2654435769"},{"name":"v_","nativeSrc":"3159:2:25","nodeType":"YulIdentifier","src":"3159:2:25"}],"functionName":{"name":"mul","nativeSrc":"3143:3:25","nodeType":"YulIdentifier","src":"3143:3:25"},"nativeSrc":"3143:19:25","nodeType":"YulFunctionCall","src":"3143:19:25"}],"functionName":{"name":"shr","nativeSrc":"3135:3:25","nodeType":"YulIdentifier","src":"3135:3:25"},"nativeSrc":"3135:28:25","nodeType":"YulFunctionCall","src":"3135:28:25"},{"kind":"number","nativeSrc":"3165:6:25","nodeType":"YulLiteral","src":"3165:6:25","type":"","value":"0x1fff"}],"functionName":{"name":"and","nativeSrc":"3131:3:25","nodeType":"YulIdentifier","src":"3131:3:25"},"nativeSrc":"3131:41:25","nodeType":"YulFunctionCall","src":"3131:41:25"},"variableNames":[{"name":"_r","nativeSrc":"3125:2:25","nodeType":"YulIdentifier","src":"3125:2:25"}]}]},"name":"hash","nativeSrc":"3083:103:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"v_","nativeSrc":"3097:2:25","nodeType":"YulTypedName","src":"3097:2:25","type":""}],"returnVariables":[{"name":"_r","nativeSrc":"3104:2:25","nodeType":"YulTypedName","src":"3104:2:25","type":""}],"src":"3083:103:25"},{"body":{"nativeSrc":"3242:110:25","nodeType":"YulBlock","src":"3242:110:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"ip_","nativeSrc":"3277:3:25","nodeType":"YulIdentifier","src":"3277:3:25"}],"functionName":{"name":"u24","nativeSrc":"3273:3:25","nodeType":"YulIdentifier","src":"3273:3:25"},"nativeSrc":"3273:8:25","nodeType":"YulFunctionCall","src":"3273:8:25"}],"functionName":{"name":"hash","nativeSrc":"3268:4:25","nodeType":"YulIdentifier","src":"3268:4:25"},"nativeSrc":"3268:14:25","nodeType":"YulFunctionCall","src":"3268:14:25"},{"arguments":[{"name":"ip_","nativeSrc":"3288:3:25","nodeType":"YulIdentifier","src":"3288:3:25"},{"name":"ipStart_","nativeSrc":"3293:8:25","nodeType":"YulIdentifier","src":"3293:8:25"}],"functionName":{"name":"sub","nativeSrc":"3284:3:25","nodeType":"YulIdentifier","src":"3284:3:25"},"nativeSrc":"3284:18:25","nodeType":"YulFunctionCall","src":"3284:18:25"}],"functionName":{"name":"setHash","nativeSrc":"3260:7:25","nodeType":"YulIdentifier","src":"3260:7:25"},"nativeSrc":"3260:43:25","nodeType":"YulFunctionCall","src":"3260:43:25"},"nativeSrc":"3260:43:25","nodeType":"YulExpressionStatement","src":"3260:43:25"},{"nativeSrc":"3320:18:25","nodeType":"YulAssignment","src":"3320:18:25","value":{"arguments":[{"name":"ip_","nativeSrc":"3331:3:25","nodeType":"YulIdentifier","src":"3331:3:25"},{"kind":"number","nativeSrc":"3336:1:25","nodeType":"YulLiteral","src":"3336:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3327:3:25","nodeType":"YulIdentifier","src":"3327:3:25"},"nativeSrc":"3327:11:25","nodeType":"YulFunctionCall","src":"3327:11:25"},"variableNames":[{"name":"_ip","nativeSrc":"3320:3:25","nodeType":"YulIdentifier","src":"3320:3:25"}]}]},"name":"setNextHash","nativeSrc":"3199:153:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"ip_","nativeSrc":"3220:3:25","nodeType":"YulTypedName","src":"3220:3:25","type":""},{"name":"ipStart_","nativeSrc":"3225:8:25","nodeType":"YulTypedName","src":"3225:8:25","type":""}],"returnVariables":[{"name":"_ip","nativeSrc":"3238:3:25","nodeType":"YulTypedName","src":"3238:3:25","type":""}],"src":"3199:153:25"},{"nativeSrc":"3365:21:25","nodeType":"YulAssignment","src":"3365:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"3381:4:25","nodeType":"YulLiteral","src":"3381:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"3375:5:25","nodeType":"YulIdentifier","src":"3375:5:25"},"nativeSrc":"3375:11:25","nodeType":"YulFunctionCall","src":"3375:11:25"},"variableNames":[{"name":"result","nativeSrc":"3365:6:25","nodeType":"YulIdentifier","src":"3365:6:25"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"3408:6:25","nodeType":"YulIdentifier","src":"3408:6:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"3416:8:25","nodeType":"YulIdentifier","src":"3416:8:25"},"nativeSrc":"3416:10:25","nodeType":"YulFunctionCall","src":"3416:10:25"},{"kind":"number","nativeSrc":"3428:6:25","nodeType":"YulLiteral","src":"3428:6:25","type":"","value":"0x8000"}],"functionName":{"name":"codecopy","nativeSrc":"3399:8:25","nodeType":"YulIdentifier","src":"3399:8:25"},"nativeSrc":"3399:36:25","nodeType":"YulFunctionCall","src":"3399:36:25"},"nativeSrc":"3399:36:25","nodeType":"YulExpressionStatement","src":"3399:36:25"},{"nativeSrc":"3472:29:25","nodeType":"YulVariableDeclaration","src":"3472:29:25","value":{"arguments":[{"name":"result","nativeSrc":"3486:6:25","nodeType":"YulIdentifier","src":"3486:6:25"},{"kind":"number","nativeSrc":"3494:6:25","nodeType":"YulLiteral","src":"3494:6:25","type":"","value":"0x8000"}],"functionName":{"name":"add","nativeSrc":"3482:3:25","nodeType":"YulIdentifier","src":"3482:3:25"},"nativeSrc":"3482:19:25","nodeType":"YulFunctionCall","src":"3482:19:25"},"variables":[{"name":"op","nativeSrc":"3476:2:25","nodeType":"YulTypedName","src":"3476:2:25","type":""}]},{"nativeSrc":"3514:24:25","nodeType":"YulVariableDeclaration","src":"3514:24:25","value":{"arguments":[{"name":"data","nativeSrc":"3527:4:25","nodeType":"YulIdentifier","src":"3527:4:25"},{"kind":"number","nativeSrc":"3533:4:25","nodeType":"YulLiteral","src":"3533:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3523:3:25","nodeType":"YulIdentifier","src":"3523:3:25"},"nativeSrc":"3523:15:25","nodeType":"YulFunctionCall","src":"3523:15:25"},"variables":[{"name":"a","nativeSrc":"3518:1:25","nodeType":"YulTypedName","src":"3518:1:25","type":""}]},{"nativeSrc":"3551:16:25","nodeType":"YulVariableDeclaration","src":"3551:16:25","value":{"name":"a","nativeSrc":"3566:1:25","nodeType":"YulIdentifier","src":"3566:1:25"},"variables":[{"name":"ipStart","nativeSrc":"3555:7:25","nodeType":"YulTypedName","src":"3555:7:25","type":""}]},{"nativeSrc":"3580:49:25","nodeType":"YulVariableDeclaration","src":"3580:49:25","value":{"arguments":[{"arguments":[{"name":"ipStart","nativeSrc":"3603:7:25","nodeType":"YulIdentifier","src":"3603:7:25"},{"arguments":[{"name":"data","nativeSrc":"3618:4:25","nodeType":"YulIdentifier","src":"3618:4:25"}],"functionName":{"name":"mload","nativeSrc":"3612:5:25","nodeType":"YulIdentifier","src":"3612:5:25"},"nativeSrc":"3612:11:25","nodeType":"YulFunctionCall","src":"3612:11:25"}],"functionName":{"name":"add","nativeSrc":"3599:3:25","nodeType":"YulIdentifier","src":"3599:3:25"},"nativeSrc":"3599:25:25","nodeType":"YulFunctionCall","src":"3599:25:25"},{"kind":"number","nativeSrc":"3626:2:25","nodeType":"YulLiteral","src":"3626:2:25","type":"","value":"13"}],"functionName":{"name":"sub","nativeSrc":"3595:3:25","nodeType":"YulIdentifier","src":"3595:3:25"},"nativeSrc":"3595:34:25","nodeType":"YulFunctionCall","src":"3595:34:25"},"variables":[{"name":"ipLimit","nativeSrc":"3584:7:25","nodeType":"YulTypedName","src":"3584:7:25","type":""}]},{"body":{"nativeSrc":"3689:854:25","nodeType":"YulBlock","src":"3689:854:25","statements":[{"nativeSrc":"3707:10:25","nodeType":"YulVariableDeclaration","src":"3707:10:25","value":{"kind":"number","nativeSrc":"3716:1:25","nodeType":"YulLiteral","src":"3716:1:25","type":"","value":"0"},"variables":[{"name":"r","nativeSrc":"3711:1:25","nodeType":"YulTypedName","src":"3711:1:25","type":""}]},{"nativeSrc":"3734:10:25","nodeType":"YulVariableDeclaration","src":"3734:10:25","value":{"kind":"number","nativeSrc":"3743:1:25","nodeType":"YulLiteral","src":"3743:1:25","type":"","value":"0"},"variables":[{"name":"d","nativeSrc":"3738:1:25","nodeType":"YulTypedName","src":"3738:1:25","type":""}]},{"body":{"nativeSrc":"3773:398:25","nodeType":"YulBlock","src":"3773:398:25","statements":[{"nativeSrc":"3795:16:25","nodeType":"YulVariableDeclaration","src":"3795:16:25","value":{"arguments":[{"name":"ip","nativeSrc":"3808:2:25","nodeType":"YulIdentifier","src":"3808:2:25"}],"functionName":{"name":"u24","nativeSrc":"3804:3:25","nodeType":"YulIdentifier","src":"3804:3:25"},"nativeSrc":"3804:7:25","nodeType":"YulFunctionCall","src":"3804:7:25"},"variables":[{"name":"s","nativeSrc":"3799:1:25","nodeType":"YulTypedName","src":"3799:1:25","type":""}]},{"nativeSrc":"3832:16:25","nodeType":"YulVariableDeclaration","src":"3832:16:25","value":{"arguments":[{"name":"s","nativeSrc":"3846:1:25","nodeType":"YulIdentifier","src":"3846:1:25"}],"functionName":{"name":"hash","nativeSrc":"3841:4:25","nodeType":"YulIdentifier","src":"3841:4:25"},"nativeSrc":"3841:7:25","nodeType":"YulFunctionCall","src":"3841:7:25"},"variables":[{"name":"h","nativeSrc":"3836:1:25","nodeType":"YulTypedName","src":"3836:1:25","type":""}]},{"nativeSrc":"3869:29:25","nodeType":"YulAssignment","src":"3869:29:25","value":{"arguments":[{"name":"ipStart","nativeSrc":"3878:7:25","nodeType":"YulIdentifier","src":"3878:7:25"},{"arguments":[{"name":"h","nativeSrc":"3895:1:25","nodeType":"YulIdentifier","src":"3895:1:25"}],"functionName":{"name":"getHash","nativeSrc":"3887:7:25","nodeType":"YulIdentifier","src":"3887:7:25"},"nativeSrc":"3887:10:25","nodeType":"YulFunctionCall","src":"3887:10:25"}],"functionName":{"name":"add","nativeSrc":"3874:3:25","nodeType":"YulIdentifier","src":"3874:3:25"},"nativeSrc":"3874:24:25","nodeType":"YulFunctionCall","src":"3874:24:25"},"variableNames":[{"name":"r","nativeSrc":"3869:1:25","nodeType":"YulIdentifier","src":"3869:1:25"}]},{"expression":{"arguments":[{"name":"h","nativeSrc":"3927:1:25","nodeType":"YulIdentifier","src":"3927:1:25"},{"arguments":[{"name":"ip","nativeSrc":"3934:2:25","nodeType":"YulIdentifier","src":"3934:2:25"},{"name":"ipStart","nativeSrc":"3938:7:25","nodeType":"YulIdentifier","src":"3938:7:25"}],"functionName":{"name":"sub","nativeSrc":"3930:3:25","nodeType":"YulIdentifier","src":"3930:3:25"},"nativeSrc":"3930:16:25","nodeType":"YulFunctionCall","src":"3930:16:25"}],"functionName":{"name":"setHash","nativeSrc":"3919:7:25","nodeType":"YulIdentifier","src":"3919:7:25"},"nativeSrc":"3919:28:25","nodeType":"YulFunctionCall","src":"3919:28:25"},"nativeSrc":"3919:28:25","nodeType":"YulExpressionStatement","src":"3919:28:25"},{"nativeSrc":"3968:15:25","nodeType":"YulAssignment","src":"3968:15:25","value":{"arguments":[{"name":"ip","nativeSrc":"3977:2:25","nodeType":"YulIdentifier","src":"3977:2:25"},{"name":"r","nativeSrc":"3981:1:25","nodeType":"YulIdentifier","src":"3981:1:25"}],"functionName":{"name":"sub","nativeSrc":"3973:3:25","nodeType":"YulIdentifier","src":"3973:3:25"},"nativeSrc":"3973:10:25","nodeType":"YulFunctionCall","src":"3973:10:25"},"variableNames":[{"name":"d","nativeSrc":"3968:1:25","nodeType":"YulIdentifier","src":"3968:1:25"}]},{"body":{"nativeSrc":"4031:9:25","nodeType":"YulBlock","src":"4031:9:25","statements":[{"nativeSrc":"4033:5:25","nodeType":"YulBreak","src":"4033:5:25"}]},"condition":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4017:2:25","nodeType":"YulIdentifier","src":"4017:2:25"},{"name":"ipLimit","nativeSrc":"4021:7:25","nodeType":"YulIdentifier","src":"4021:7:25"}],"functionName":{"name":"lt","nativeSrc":"4014:2:25","nodeType":"YulIdentifier","src":"4014:2:25"},"nativeSrc":"4014:15:25","nodeType":"YulFunctionCall","src":"4014:15:25"}],"functionName":{"name":"iszero","nativeSrc":"4007:6:25","nodeType":"YulIdentifier","src":"4007:6:25"},"nativeSrc":"4007:23:25","nodeType":"YulFunctionCall","src":"4007:23:25"},"nativeSrc":"4004:36:25","nodeType":"YulIf","src":"4004:36:25"},{"nativeSrc":"4061:16:25","nodeType":"YulAssignment","src":"4061:16:25","value":{"arguments":[{"name":"ip","nativeSrc":"4071:2:25","nodeType":"YulIdentifier","src":"4071:2:25"},{"kind":"number","nativeSrc":"4075:1:25","nodeType":"YulLiteral","src":"4075:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4067:3:25","nodeType":"YulIdentifier","src":"4067:3:25"},"nativeSrc":"4067:10:25","nodeType":"YulFunctionCall","src":"4067:10:25"},"variableNames":[{"name":"ip","nativeSrc":"4061:2:25","nodeType":"YulIdentifier","src":"4061:2:25"}]},{"body":{"nativeSrc":"4123:30:25","nodeType":"YulBlock","src":"4123:30:25","statements":[{"body":{"nativeSrc":"4142:9:25","nodeType":"YulBlock","src":"4142:9:25","statements":[{"nativeSrc":"4144:5:25","nodeType":"YulBreak","src":"4144:5:25"}]},"condition":{"arguments":[{"name":"s","nativeSrc":"4131:1:25","nodeType":"YulIdentifier","src":"4131:1:25"},{"arguments":[{"name":"r","nativeSrc":"4138:1:25","nodeType":"YulIdentifier","src":"4138:1:25"}],"functionName":{"name":"u24","nativeSrc":"4134:3:25","nodeType":"YulIdentifier","src":"4134:3:25"},"nativeSrc":"4134:6:25","nodeType":"YulFunctionCall","src":"4134:6:25"}],"functionName":{"name":"eq","nativeSrc":"4128:2:25","nodeType":"YulIdentifier","src":"4128:2:25"},"nativeSrc":"4128:13:25","nodeType":"YulFunctionCall","src":"4128:13:25"},"nativeSrc":"4125:26:25","nodeType":"YulIf","src":"4125:26:25"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"4111:1:25","nodeType":"YulIdentifier","src":"4111:1:25"},{"kind":"number","nativeSrc":"4114:6:25","nodeType":"YulLiteral","src":"4114:6:25","type":"","value":"0x1fff"}],"functionName":{"name":"gt","nativeSrc":"4108:2:25","nodeType":"YulIdentifier","src":"4108:2:25"},"nativeSrc":"4108:13:25","nodeType":"YulFunctionCall","src":"4108:13:25"}],"functionName":{"name":"iszero","nativeSrc":"4101:6:25","nodeType":"YulIdentifier","src":"4101:6:25"},"nativeSrc":"4101:21:25","nodeType":"YulFunctionCall","src":"4101:21:25"},"nativeSrc":"4098:55:25","nodeType":"YulIf","src":"4098:55:25"}]},"condition":{"kind":"number","nativeSrc":"3768:1:25","nodeType":"YulLiteral","src":"3768:1:25","type":"","value":"1"},"nativeSrc":"3761:410:25","nodeType":"YulForLoop","post":{"nativeSrc":"3770:2:25","nodeType":"YulBlock","src":"3770:2:25","statements":[]},"pre":{"nativeSrc":"3765:2:25","nodeType":"YulBlock","src":"3765:2:25","statements":[]},"src":"3761:410:25"},{"body":{"nativeSrc":"4215:9:25","nodeType":"YulBlock","src":"4215:9:25","statements":[{"nativeSrc":"4217:5:25","nodeType":"YulBreak","src":"4217:5:25"}]},"condition":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4201:2:25","nodeType":"YulIdentifier","src":"4201:2:25"},{"name":"ipLimit","nativeSrc":"4205:7:25","nodeType":"YulIdentifier","src":"4205:7:25"}],"functionName":{"name":"lt","nativeSrc":"4198:2:25","nodeType":"YulIdentifier","src":"4198:2:25"},"nativeSrc":"4198:15:25","nodeType":"YulFunctionCall","src":"4198:15:25"}],"functionName":{"name":"iszero","nativeSrc":"4191:6:25","nodeType":"YulIdentifier","src":"4191:6:25"},"nativeSrc":"4191:23:25","nodeType":"YulFunctionCall","src":"4191:23:25"},"nativeSrc":"4188:36:25","nodeType":"YulIf","src":"4188:36:25"},{"nativeSrc":"4241:16:25","nodeType":"YulAssignment","src":"4241:16:25","value":{"arguments":[{"name":"ip","nativeSrc":"4251:2:25","nodeType":"YulIdentifier","src":"4251:2:25"},{"kind":"number","nativeSrc":"4255:1:25","nodeType":"YulLiteral","src":"4255:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4247:3:25","nodeType":"YulIdentifier","src":"4247:3:25"},"nativeSrc":"4247:10:25","nodeType":"YulFunctionCall","src":"4247:10:25"},"variableNames":[{"name":"ip","nativeSrc":"4241:2:25","nodeType":"YulIdentifier","src":"4241:2:25"}]},{"body":{"nativeSrc":"4287:37:25","nodeType":"YulBlock","src":"4287:37:25","statements":[{"nativeSrc":"4289:33:25","nodeType":"YulAssignment","src":"4289:33:25","value":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4308:2:25","nodeType":"YulIdentifier","src":"4308:2:25"},{"name":"a","nativeSrc":"4312:1:25","nodeType":"YulIdentifier","src":"4312:1:25"}],"functionName":{"name":"sub","nativeSrc":"4304:3:25","nodeType":"YulIdentifier","src":"4304:3:25"},"nativeSrc":"4304:10:25","nodeType":"YulFunctionCall","src":"4304:10:25"},{"name":"a","nativeSrc":"4316:1:25","nodeType":"YulIdentifier","src":"4316:1:25"},{"name":"op","nativeSrc":"4319:2:25","nodeType":"YulIdentifier","src":"4319:2:25"}],"functionName":{"name":"literals","nativeSrc":"4295:8:25","nodeType":"YulIdentifier","src":"4295:8:25"},"nativeSrc":"4295:27:25","nodeType":"YulFunctionCall","src":"4295:27:25"},"variableNames":[{"name":"op","nativeSrc":"4289:2:25","nodeType":"YulIdentifier","src":"4289:2:25"}]}]},"condition":{"arguments":[{"name":"ip","nativeSrc":"4280:2:25","nodeType":"YulIdentifier","src":"4280:2:25"},{"name":"a","nativeSrc":"4284:1:25","nodeType":"YulIdentifier","src":"4284:1:25"}],"functionName":{"name":"gt","nativeSrc":"4277:2:25","nodeType":"YulIdentifier","src":"4277:2:25"},"nativeSrc":"4277:9:25","nodeType":"YulFunctionCall","src":"4277:9:25"},"nativeSrc":"4274:50:25","nodeType":"YulIf","src":"4274:50:25"},{"nativeSrc":"4341:52:25","nodeType":"YulVariableDeclaration","src":"4341:52:25","value":{"arguments":[{"arguments":[{"name":"r","nativeSrc":"4358:1:25","nodeType":"YulIdentifier","src":"4358:1:25"},{"kind":"number","nativeSrc":"4361:1:25","nodeType":"YulLiteral","src":"4361:1:25","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"4354:3:25","nodeType":"YulIdentifier","src":"4354:3:25"},"nativeSrc":"4354:9:25","nodeType":"YulFunctionCall","src":"4354:9:25"},{"arguments":[{"name":"ip","nativeSrc":"4369:2:25","nodeType":"YulIdentifier","src":"4369:2:25"},{"kind":"number","nativeSrc":"4373:1:25","nodeType":"YulLiteral","src":"4373:1:25","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"4365:3:25","nodeType":"YulIdentifier","src":"4365:3:25"},"nativeSrc":"4365:10:25","nodeType":"YulFunctionCall","src":"4365:10:25"},{"arguments":[{"name":"ipLimit","nativeSrc":"4381:7:25","nodeType":"YulIdentifier","src":"4381:7:25"},{"kind":"number","nativeSrc":"4390:1:25","nodeType":"YulLiteral","src":"4390:1:25","type":"","value":"9"}],"functionName":{"name":"add","nativeSrc":"4377:3:25","nodeType":"YulIdentifier","src":"4377:3:25"},"nativeSrc":"4377:15:25","nodeType":"YulFunctionCall","src":"4377:15:25"}],"functionName":{"name":"cmp","nativeSrc":"4350:3:25","nodeType":"YulIdentifier","src":"4350:3:25"},"nativeSrc":"4350:43:25","nodeType":"YulFunctionCall","src":"4350:43:25"},"variables":[{"name":"l","nativeSrc":"4345:1:25","nodeType":"YulTypedName","src":"4345:1:25","type":""}]},{"nativeSrc":"4410:18:25","nodeType":"YulAssignment","src":"4410:18:25","value":{"arguments":[{"name":"l","nativeSrc":"4419:1:25","nodeType":"YulIdentifier","src":"4419:1:25"},{"name":"d","nativeSrc":"4422:1:25","nodeType":"YulIdentifier","src":"4422:1:25"},{"name":"op","nativeSrc":"4425:2:25","nodeType":"YulIdentifier","src":"4425:2:25"}],"functionName":{"name":"mt","nativeSrc":"4416:2:25","nodeType":"YulIdentifier","src":"4416:2:25"},"nativeSrc":"4416:12:25","nodeType":"YulFunctionCall","src":"4416:12:25"},"variableNames":[{"name":"op","nativeSrc":"4410:2:25","nodeType":"YulIdentifier","src":"4410:2:25"}]},{"nativeSrc":"4445:60:25","nodeType":"YulAssignment","src":"4445:60:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4479:2:25","nodeType":"YulIdentifier","src":"4479:2:25"},{"name":"l","nativeSrc":"4483:1:25","nodeType":"YulIdentifier","src":"4483:1:25"}],"functionName":{"name":"add","nativeSrc":"4475:3:25","nodeType":"YulIdentifier","src":"4475:3:25"},"nativeSrc":"4475:10:25","nodeType":"YulFunctionCall","src":"4475:10:25"},{"name":"ipStart","nativeSrc":"4487:7:25","nodeType":"YulIdentifier","src":"4487:7:25"}],"functionName":{"name":"setNextHash","nativeSrc":"4463:11:25","nodeType":"YulIdentifier","src":"4463:11:25"},"nativeSrc":"4463:32:25","nodeType":"YulFunctionCall","src":"4463:32:25"},{"name":"ipStart","nativeSrc":"4497:7:25","nodeType":"YulIdentifier","src":"4497:7:25"}],"functionName":{"name":"setNextHash","nativeSrc":"4451:11:25","nodeType":"YulIdentifier","src":"4451:11:25"},"nativeSrc":"4451:54:25","nodeType":"YulFunctionCall","src":"4451:54:25"},"variableNames":[{"name":"ip","nativeSrc":"4445:2:25","nodeType":"YulIdentifier","src":"4445:2:25"}]},{"nativeSrc":"4522:7:25","nodeType":"YulAssignment","src":"4522:7:25","value":{"name":"ip","nativeSrc":"4527:2:25","nodeType":"YulIdentifier","src":"4527:2:25"},"variableNames":[{"name":"a","nativeSrc":"4522:1:25","nodeType":"YulIdentifier","src":"4522:1:25"}]}]},"condition":{"arguments":[{"name":"ip","nativeSrc":"3673:2:25","nodeType":"YulIdentifier","src":"3673:2:25"},{"name":"ipLimit","nativeSrc":"3677:7:25","nodeType":"YulIdentifier","src":"3677:7:25"}],"functionName":{"name":"lt","nativeSrc":"3670:2:25","nodeType":"YulIdentifier","src":"3670:2:25"},"nativeSrc":"3670:15:25","nodeType":"YulFunctionCall","src":"3670:15:25"},"nativeSrc":"3642:901:25","nodeType":"YulForLoop","post":{"nativeSrc":"3686:2:25","nodeType":"YulBlock","src":"3686:2:25","statements":[]},"pre":{"nativeSrc":"3646:23:25","nodeType":"YulBlock","src":"3646:23:25","statements":[{"nativeSrc":"3648:19:25","nodeType":"YulVariableDeclaration","src":"3648:19:25","value":{"arguments":[{"kind":"number","nativeSrc":"3662:1:25","nodeType":"YulLiteral","src":"3662:1:25","type":"","value":"2"},{"name":"a","nativeSrc":"3665:1:25","nodeType":"YulIdentifier","src":"3665:1:25"}],"functionName":{"name":"add","nativeSrc":"3658:3:25","nodeType":"YulIdentifier","src":"3658:3:25"},"nativeSrc":"3658:9:25","nodeType":"YulFunctionCall","src":"3658:9:25"},"variables":[{"name":"ip","nativeSrc":"3652:2:25","nodeType":"YulTypedName","src":"3652:2:25","type":""}]}]},"src":"3642:901:25"},{"nativeSrc":"4635:74:25","nodeType":"YulVariableDeclaration","src":"4635:74:25","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"ipStart","nativeSrc":"4667:7:25","nodeType":"YulIdentifier","src":"4667:7:25"},{"arguments":[{"name":"data","nativeSrc":"4682:4:25","nodeType":"YulIdentifier","src":"4682:4:25"}],"functionName":{"name":"mload","nativeSrc":"4676:5:25","nodeType":"YulIdentifier","src":"4676:5:25"},"nativeSrc":"4676:11:25","nodeType":"YulFunctionCall","src":"4676:11:25"}],"functionName":{"name":"add","nativeSrc":"4663:3:25","nodeType":"YulIdentifier","src":"4663:3:25"},"nativeSrc":"4663:25:25","nodeType":"YulFunctionCall","src":"4663:25:25"},{"name":"a","nativeSrc":"4690:1:25","nodeType":"YulIdentifier","src":"4690:1:25"}],"functionName":{"name":"sub","nativeSrc":"4659:3:25","nodeType":"YulIdentifier","src":"4659:3:25"},"nativeSrc":"4659:33:25","nodeType":"YulFunctionCall","src":"4659:33:25"},{"name":"a","nativeSrc":"4694:1:25","nodeType":"YulIdentifier","src":"4694:1:25"},{"name":"op","nativeSrc":"4697:2:25","nodeType":"YulIdentifier","src":"4697:2:25"}],"functionName":{"name":"literals","nativeSrc":"4650:8:25","nodeType":"YulIdentifier","src":"4650:8:25"},"nativeSrc":"4650:50:25","nodeType":"YulFunctionCall","src":"4650:50:25"},{"kind":"number","nativeSrc":"4702:6:25","nodeType":"YulLiteral","src":"4702:6:25","type":"","value":"0x7fe0"}],"functionName":{"name":"sub","nativeSrc":"4646:3:25","nodeType":"YulIdentifier","src":"4646:3:25"},"nativeSrc":"4646:63:25","nodeType":"YulFunctionCall","src":"4646:63:25"},"variables":[{"name":"end","nativeSrc":"4639:3:25","nodeType":"YulTypedName","src":"4639:3:25","type":""}]},{"nativeSrc":"4722:26:25","nodeType":"YulVariableDeclaration","src":"4722:26:25","value":{"arguments":[{"name":"result","nativeSrc":"4735:6:25","nodeType":"YulIdentifier","src":"4735:6:25"},{"kind":"number","nativeSrc":"4743:4:25","nodeType":"YulLiteral","src":"4743:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4731:3:25","nodeType":"YulIdentifier","src":"4731:3:25"},"nativeSrc":"4731:17:25","nodeType":"YulFunctionCall","src":"4731:17:25"},"variables":[{"name":"o","nativeSrc":"4726:1:25","nodeType":"YulTypedName","src":"4726:1:25","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"4768:6:25","nodeType":"YulIdentifier","src":"4768:6:25"},{"arguments":[{"name":"end","nativeSrc":"4780:3:25","nodeType":"YulIdentifier","src":"4780:3:25"},{"name":"o","nativeSrc":"4785:1:25","nodeType":"YulIdentifier","src":"4785:1:25"}],"functionName":{"name":"sub","nativeSrc":"4776:3:25","nodeType":"YulIdentifier","src":"4776:3:25"},"nativeSrc":"4776:11:25","nodeType":"YulFunctionCall","src":"4776:11:25"}],"functionName":{"name":"mstore","nativeSrc":"4761:6:25","nodeType":"YulIdentifier","src":"4761:6:25"},"nativeSrc":"4761:27:25","nodeType":"YulFunctionCall","src":"4761:27:25"},"nativeSrc":"4761:27:25","nodeType":"YulExpressionStatement","src":"4761:27:25"},{"body":{"nativeSrc":"4870:36:25","nodeType":"YulBlock","src":"4870:36:25","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"4879:1:25","nodeType":"YulIdentifier","src":"4879:1:25"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"4892:1:25","nodeType":"YulIdentifier","src":"4892:1:25"},{"kind":"number","nativeSrc":"4895:6:25","nodeType":"YulLiteral","src":"4895:6:25","type":"","value":"0x7fe0"}],"functionName":{"name":"add","nativeSrc":"4888:3:25","nodeType":"YulIdentifier","src":"4888:3:25"},"nativeSrc":"4888:14:25","nodeType":"YulFunctionCall","src":"4888:14:25"}],"functionName":{"name":"mload","nativeSrc":"4882:5:25","nodeType":"YulIdentifier","src":"4882:5:25"},"nativeSrc":"4882:21:25","nodeType":"YulFunctionCall","src":"4882:21:25"}],"functionName":{"name":"mstore","nativeSrc":"4872:6:25","nodeType":"YulIdentifier","src":"4872:6:25"},"nativeSrc":"4872:32:25","nodeType":"YulFunctionCall","src":"4872:32:25"},"nativeSrc":"4872:32:25","nodeType":"YulExpressionStatement","src":"4872:32:25"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"4839:1:25","nodeType":"YulIdentifier","src":"4839:1:25"},{"name":"end","nativeSrc":"4842:3:25","nodeType":"YulIdentifier","src":"4842:3:25"}],"functionName":{"name":"gt","nativeSrc":"4836:2:25","nodeType":"YulIdentifier","src":"4836:2:25"},"nativeSrc":"4836:10:25","nodeType":"YulFunctionCall","src":"4836:10:25"}],"functionName":{"name":"iszero","nativeSrc":"4829:6:25","nodeType":"YulIdentifier","src":"4829:6:25"},"nativeSrc":"4829:18:25","nodeType":"YulFunctionCall","src":"4829:18:25"},"nativeSrc":"4822:84:25","nodeType":"YulForLoop","post":{"nativeSrc":"4848:21:25","nodeType":"YulBlock","src":"4848:21:25","statements":[{"nativeSrc":"4850:17:25","nodeType":"YulAssignment","src":"4850:17:25","value":{"arguments":[{"name":"o","nativeSrc":"4859:1:25","nodeType":"YulIdentifier","src":"4859:1:25"},{"kind":"number","nativeSrc":"4862:4:25","nodeType":"YulLiteral","src":"4862:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4855:3:25","nodeType":"YulIdentifier","src":"4855:3:25"},"nativeSrc":"4855:12:25","nodeType":"YulFunctionCall","src":"4855:12:25"},"variableNames":[{"name":"o","nativeSrc":"4850:1:25","nodeType":"YulIdentifier","src":"4850:1:25"}]}]},"pre":{"nativeSrc":"4826:2:25","nodeType":"YulBlock","src":"4826:2:25","statements":[]},"src":"4822:84:25"},{"expression":{"arguments":[{"name":"end","nativeSrc":"4926:3:25","nodeType":"YulIdentifier","src":"4926:3:25"},{"kind":"number","nativeSrc":"4931:1:25","nodeType":"YulLiteral","src":"4931:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4919:6:25","nodeType":"YulIdentifier","src":"4919:6:25"},"nativeSrc":"4919:14:25","nodeType":"YulFunctionCall","src":"4919:14:25"},"nativeSrc":"4919:14:25","nodeType":"YulExpressionStatement","src":"4919:14:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4991:4:25","nodeType":"YulLiteral","src":"4991:4:25","type":"","value":"0x40"},{"arguments":[{"name":"end","nativeSrc":"5001:3:25","nodeType":"YulIdentifier","src":"5001:3:25"},{"kind":"number","nativeSrc":"5006:4:25","nodeType":"YulLiteral","src":"5006:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4997:3:25","nodeType":"YulIdentifier","src":"4997:3:25"},"nativeSrc":"4997:14:25","nodeType":"YulFunctionCall","src":"4997:14:25"}],"functionName":{"name":"mstore","nativeSrc":"4984:6:25","nodeType":"YulIdentifier","src":"4984:6:25"},"nativeSrc":"4984:28:25","nodeType":"YulFunctionCall","src":"4984:28:25"},"nativeSrc":"4984:28:25","nodeType":"YulExpressionStatement","src":"4984:28:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10970,"isOffset":false,"isSlot":false,"src":"3527:4:25","valueSize":1},{"declaration":10970,"isOffset":false,"isSlot":false,"src":"3618:4:25","valueSize":1},{"declaration":10970,"isOffset":false,"isSlot":false,"src":"4682:4:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"3365:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"3408:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"3486:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"4735:6:25","valueSize":1},{"declaration":10973,"isOffset":false,"isSlot":false,"src":"4768:6:25","valueSize":1}],"id":10975,"nodeType":"InlineAssembly","src":"1239:3807:25"}]},"documentation":{"id":10968,"nodeType":"StructuredDocumentation","src":"1058:39:25","text":"@dev Returns the compressed `data`."},"id":10977,"implemented":true,"kind":"function","modifiers":[],"name":"flzCompress","nameLocation":"1111:11:25","nodeType":"FunctionDefinition","parameters":{"id":10971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10970,"mutability":"mutable","name":"data","nameLocation":"1136:4:25","nodeType":"VariableDeclaration","scope":10977,"src":"1123:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10969,"name":"bytes","nodeType":"ElementaryTypeName","src":"1123:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1122:19:25"},"returnParameters":{"id":10974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10973,"mutability":"mutable","name":"result","nameLocation":"1178:6:25","nodeType":"VariableDeclaration","scope":10977,"src":"1165:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10972,"name":"bytes","nodeType":"ElementaryTypeName","src":"1165:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1164:21:25"},"scope":11014,"src":"1102:3950:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10986,"nodeType":"Block","src":"5190:1487:25","statements":[{"AST":{"nativeSrc":"5252:1419:25","nodeType":"YulBlock","src":"5252:1419:25","statements":[{"nativeSrc":"5266:21:25","nodeType":"YulAssignment","src":"5266:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"5282:4:25","nodeType":"YulLiteral","src":"5282:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"5276:5:25","nodeType":"YulIdentifier","src":"5276:5:25"},"nativeSrc":"5276:11:25","nodeType":"YulFunctionCall","src":"5276:11:25"},"variableNames":[{"name":"result","nativeSrc":"5266:6:25","nodeType":"YulIdentifier","src":"5266:6:25"}]},{"nativeSrc":"5300:27:25","nodeType":"YulVariableDeclaration","src":"5300:27:25","value":{"arguments":[{"name":"result","nativeSrc":"5314:6:25","nodeType":"YulIdentifier","src":"5314:6:25"},{"kind":"number","nativeSrc":"5322:4:25","nodeType":"YulLiteral","src":"5322:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5310:3:25","nodeType":"YulIdentifier","src":"5310:3:25"},"nativeSrc":"5310:17:25","nodeType":"YulFunctionCall","src":"5310:17:25"},"variables":[{"name":"op","nativeSrc":"5304:2:25","nodeType":"YulTypedName","src":"5304:2:25","type":""}]},{"nativeSrc":"5340:44:25","nodeType":"YulVariableDeclaration","src":"5340:44:25","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"5359:4:25","nodeType":"YulIdentifier","src":"5359:4:25"},{"kind":"number","nativeSrc":"5365:4:25","nodeType":"YulLiteral","src":"5365:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5355:3:25","nodeType":"YulIdentifier","src":"5355:3:25"},"nativeSrc":"5355:15:25","nodeType":"YulFunctionCall","src":"5355:15:25"},{"arguments":[{"name":"data","nativeSrc":"5378:4:25","nodeType":"YulIdentifier","src":"5378:4:25"}],"functionName":{"name":"mload","nativeSrc":"5372:5:25","nodeType":"YulIdentifier","src":"5372:5:25"},"nativeSrc":"5372:11:25","nodeType":"YulFunctionCall","src":"5372:11:25"}],"functionName":{"name":"add","nativeSrc":"5351:3:25","nodeType":"YulIdentifier","src":"5351:3:25"},"nativeSrc":"5351:33:25","nodeType":"YulFunctionCall","src":"5351:33:25"},"variables":[{"name":"end","nativeSrc":"5344:3:25","nodeType":"YulTypedName","src":"5344:3:25","type":""}]},{"body":{"nativeSrc":"5446:1011:25","nodeType":"YulBlock","src":"5446:1011:25","statements":[{"nativeSrc":"5464:20:25","nodeType":"YulVariableDeclaration","src":"5464:20:25","value":{"arguments":[{"name":"data","nativeSrc":"5479:4:25","nodeType":"YulIdentifier","src":"5479:4:25"}],"functionName":{"name":"mload","nativeSrc":"5473:5:25","nodeType":"YulIdentifier","src":"5473:5:25"},"nativeSrc":"5473:11:25","nodeType":"YulFunctionCall","src":"5473:11:25"},"variables":[{"name":"w","nativeSrc":"5468:1:25","nodeType":"YulTypedName","src":"5468:1:25","type":""}]},{"nativeSrc":"5501:19:25","nodeType":"YulVariableDeclaration","src":"5501:19:25","value":{"arguments":[{"kind":"number","nativeSrc":"5515:1:25","nodeType":"YulLiteral","src":"5515:1:25","type":"","value":"0"},{"name":"w","nativeSrc":"5518:1:25","nodeType":"YulIdentifier","src":"5518:1:25"}],"functionName":{"name":"byte","nativeSrc":"5510:4:25","nodeType":"YulIdentifier","src":"5510:4:25"},"nativeSrc":"5510:10:25","nodeType":"YulFunctionCall","src":"5510:10:25"},"variables":[{"name":"c","nativeSrc":"5505:1:25","nodeType":"YulTypedName","src":"5505:1:25","type":""}]},{"nativeSrc":"5537:18:25","nodeType":"YulVariableDeclaration","src":"5537:18:25","value":{"arguments":[{"kind":"number","nativeSrc":"5550:1:25","nodeType":"YulLiteral","src":"5550:1:25","type":"","value":"5"},{"name":"c","nativeSrc":"5553:1:25","nodeType":"YulIdentifier","src":"5553:1:25"}],"functionName":{"name":"shr","nativeSrc":"5546:3:25","nodeType":"YulIdentifier","src":"5546:3:25"},"nativeSrc":"5546:9:25","nodeType":"YulFunctionCall","src":"5546:9:25"},"variables":[{"name":"t","nativeSrc":"5541:1:25","nodeType":"YulTypedName","src":"5541:1:25","type":""}]},{"body":{"nativeSrc":"5585:194:25","nodeType":"YulBlock","src":"5585:194:25","statements":[{"expression":{"arguments":[{"name":"op","nativeSrc":"5614:2:25","nodeType":"YulIdentifier","src":"5614:2:25"},{"arguments":[{"arguments":[{"name":"data","nativeSrc":"5628:4:25","nodeType":"YulIdentifier","src":"5628:4:25"},{"kind":"number","nativeSrc":"5634:1:25","nodeType":"YulLiteral","src":"5634:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5624:3:25","nodeType":"YulIdentifier","src":"5624:3:25"},"nativeSrc":"5624:12:25","nodeType":"YulFunctionCall","src":"5624:12:25"}],"functionName":{"name":"mload","nativeSrc":"5618:5:25","nodeType":"YulIdentifier","src":"5618:5:25"},"nativeSrc":"5618:19:25","nodeType":"YulFunctionCall","src":"5618:19:25"}],"functionName":{"name":"mstore","nativeSrc":"5607:6:25","nodeType":"YulIdentifier","src":"5607:6:25"},"nativeSrc":"5607:31:25","nodeType":"YulFunctionCall","src":"5607:31:25"},"nativeSrc":"5607:31:25","nodeType":"YulExpressionStatement","src":"5607:31:25"},{"nativeSrc":"5659:28:25","nodeType":"YulAssignment","src":"5659:28:25","value":{"arguments":[{"name":"data","nativeSrc":"5671:4:25","nodeType":"YulIdentifier","src":"5671:4:25"},{"arguments":[{"kind":"number","nativeSrc":"5681:1:25","nodeType":"YulLiteral","src":"5681:1:25","type":"","value":"2"},{"name":"c","nativeSrc":"5684:1:25","nodeType":"YulIdentifier","src":"5684:1:25"}],"functionName":{"name":"add","nativeSrc":"5677:3:25","nodeType":"YulIdentifier","src":"5677:3:25"},"nativeSrc":"5677:9:25","nodeType":"YulFunctionCall","src":"5677:9:25"}],"functionName":{"name":"add","nativeSrc":"5667:3:25","nodeType":"YulIdentifier","src":"5667:3:25"},"nativeSrc":"5667:20:25","nodeType":"YulFunctionCall","src":"5667:20:25"},"variableNames":[{"name":"data","nativeSrc":"5659:4:25","nodeType":"YulIdentifier","src":"5659:4:25"}]},{"nativeSrc":"5708:24:25","nodeType":"YulAssignment","src":"5708:24:25","value":{"arguments":[{"name":"op","nativeSrc":"5718:2:25","nodeType":"YulIdentifier","src":"5718:2:25"},{"arguments":[{"kind":"number","nativeSrc":"5726:1:25","nodeType":"YulLiteral","src":"5726:1:25","type":"","value":"1"},{"name":"c","nativeSrc":"5729:1:25","nodeType":"YulIdentifier","src":"5729:1:25"}],"functionName":{"name":"add","nativeSrc":"5722:3:25","nodeType":"YulIdentifier","src":"5722:3:25"},"nativeSrc":"5722:9:25","nodeType":"YulFunctionCall","src":"5722:9:25"}],"functionName":{"name":"add","nativeSrc":"5714:3:25","nodeType":"YulIdentifier","src":"5714:3:25"},"nativeSrc":"5714:18:25","nodeType":"YulFunctionCall","src":"5714:18:25"},"variableNames":[{"name":"op","nativeSrc":"5708:2:25","nodeType":"YulIdentifier","src":"5708:2:25"}]},{"nativeSrc":"5753:8:25","nodeType":"YulContinue","src":"5753:8:25"}]},"condition":{"arguments":[{"name":"t","nativeSrc":"5582:1:25","nodeType":"YulIdentifier","src":"5582:1:25"}],"functionName":{"name":"iszero","nativeSrc":"5575:6:25","nodeType":"YulIdentifier","src":"5575:6:25"},"nativeSrc":"5575:9:25","nodeType":"YulFunctionCall","src":"5575:9:25"},"nativeSrc":"5572:207:25","nodeType":"YulIf","src":"5572:207:25"},{"body":{"nativeSrc":"6175:268:25","nodeType":"YulBlock","src":"6175:268:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"op","nativeSrc":"6208:2:25","nodeType":"YulIdentifier","src":"6208:2:25"},{"name":"j","nativeSrc":"6212:1:25","nodeType":"YulIdentifier","src":"6212:1:25"}],"functionName":{"name":"add","nativeSrc":"6204:3:25","nodeType":"YulIdentifier","src":"6204:3:25"},"nativeSrc":"6204:10:25","nodeType":"YulFunctionCall","src":"6204:10:25"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"6226:1:25","nodeType":"YulIdentifier","src":"6226:1:25"},{"name":"j","nativeSrc":"6229:1:25","nodeType":"YulIdentifier","src":"6229:1:25"}],"functionName":{"name":"add","nativeSrc":"6222:3:25","nodeType":"YulIdentifier","src":"6222:3:25"},"nativeSrc":"6222:9:25","nodeType":"YulFunctionCall","src":"6222:9:25"}],"functionName":{"name":"mload","nativeSrc":"6216:5:25","nodeType":"YulIdentifier","src":"6216:5:25"},"nativeSrc":"6216:16:25","nodeType":"YulFunctionCall","src":"6216:16:25"}],"functionName":{"name":"mstore","nativeSrc":"6197:6:25","nodeType":"YulIdentifier","src":"6197:6:25"},"nativeSrc":"6197:36:25","nodeType":"YulFunctionCall","src":"6197:36:25"},"nativeSrc":"6197:36:25","nodeType":"YulExpressionStatement","src":"6197:36:25"},{"nativeSrc":"6254:14:25","nodeType":"YulAssignment","src":"6254:14:25","value":{"arguments":[{"name":"j","nativeSrc":"6263:1:25","nodeType":"YulIdentifier","src":"6263:1:25"},{"name":"f","nativeSrc":"6266:1:25","nodeType":"YulIdentifier","src":"6266:1:25"}],"functionName":{"name":"add","nativeSrc":"6259:3:25","nodeType":"YulIdentifier","src":"6259:3:25"},"nativeSrc":"6259:9:25","nodeType":"YulFunctionCall","src":"6259:9:25"},"variableNames":[{"name":"j","nativeSrc":"6254:1:25","nodeType":"YulIdentifier","src":"6254:1:25"}]},{"body":{"nativeSrc":"6301:12:25","nodeType":"YulBlock","src":"6301:12:25","statements":[{"nativeSrc":"6303:8:25","nodeType":"YulContinue","src":"6303:8:25"}]},"condition":{"arguments":[{"name":"j","nativeSrc":"6295:1:25","nodeType":"YulIdentifier","src":"6295:1:25"},{"name":"l","nativeSrc":"6298:1:25","nodeType":"YulIdentifier","src":"6298:1:25"}],"functionName":{"name":"lt","nativeSrc":"6292:2:25","nodeType":"YulIdentifier","src":"6292:2:25"},"nativeSrc":"6292:8:25","nodeType":"YulFunctionCall","src":"6292:8:25"},"nativeSrc":"6289:24:25","nodeType":"YulIf","src":"6289:24:25"},{"nativeSrc":"6334:28:25","nodeType":"YulAssignment","src":"6334:28:25","value":{"arguments":[{"name":"data","nativeSrc":"6346:4:25","nodeType":"YulIdentifier","src":"6346:4:25"},{"arguments":[{"kind":"number","nativeSrc":"6356:1:25","nodeType":"YulLiteral","src":"6356:1:25","type":"","value":"2"},{"name":"g","nativeSrc":"6359:1:25","nodeType":"YulIdentifier","src":"6359:1:25"}],"functionName":{"name":"add","nativeSrc":"6352:3:25","nodeType":"YulIdentifier","src":"6352:3:25"},"nativeSrc":"6352:9:25","nodeType":"YulFunctionCall","src":"6352:9:25"}],"functionName":{"name":"add","nativeSrc":"6342:3:25","nodeType":"YulIdentifier","src":"6342:3:25"},"nativeSrc":"6342:20:25","nodeType":"YulFunctionCall","src":"6342:20:25"},"variableNames":[{"name":"data","nativeSrc":"6334:4:25","nodeType":"YulIdentifier","src":"6334:4:25"}]},{"nativeSrc":"6383:16:25","nodeType":"YulAssignment","src":"6383:16:25","value":{"arguments":[{"name":"op","nativeSrc":"6393:2:25","nodeType":"YulIdentifier","src":"6393:2:25"},{"name":"l","nativeSrc":"6397:1:25","nodeType":"YulIdentifier","src":"6397:1:25"}],"functionName":{"name":"add","nativeSrc":"6389:3:25","nodeType":"YulIdentifier","src":"6389:3:25"},"nativeSrc":"6389:10:25","nodeType":"YulFunctionCall","src":"6389:10:25"},"variableNames":[{"name":"op","nativeSrc":"6383:2:25","nodeType":"YulIdentifier","src":"6383:2:25"}]},{"nativeSrc":"6420:5:25","nodeType":"YulBreak","src":"6420:5:25"}]},"condition":{"kind":"number","nativeSrc":"6170:1:25","nodeType":"YulLiteral","src":"6170:1:25","type":"","value":"1"},"nativeSrc":"5796:647:25","nodeType":"YulForLoop","post":{"nativeSrc":"6172:2:25","nodeType":"YulBlock","src":"6172:2:25","statements":[]},"pre":{"nativeSrc":"5800:369:25","nodeType":"YulBlock","src":"5800:369:25","statements":[{"nativeSrc":"5822:17:25","nodeType":"YulVariableDeclaration","src":"5822:17:25","value":{"arguments":[{"name":"t","nativeSrc":"5834:1:25","nodeType":"YulIdentifier","src":"5834:1:25"},{"kind":"number","nativeSrc":"5837:1:25","nodeType":"YulLiteral","src":"5837:1:25","type":"","value":"7"}],"functionName":{"name":"eq","nativeSrc":"5831:2:25","nodeType":"YulIdentifier","src":"5831:2:25"},"nativeSrc":"5831:8:25","nodeType":"YulFunctionCall","src":"5831:8:25"},"variables":[{"name":"g","nativeSrc":"5826:1:25","nodeType":"YulTypedName","src":"5826:1:25","type":""}]},{"nativeSrc":"5860:59:25","nodeType":"YulVariableDeclaration","src":"5860:59:25","value":{"arguments":[{"kind":"number","nativeSrc":"5873:1:25","nodeType":"YulLiteral","src":"5873:1:25","type":"","value":"2"},{"arguments":[{"name":"t","nativeSrc":"5880:1:25","nodeType":"YulIdentifier","src":"5880:1:25"},{"arguments":[{"name":"g","nativeSrc":"5887:1:25","nodeType":"YulIdentifier","src":"5887:1:25"},{"arguments":[{"name":"t","nativeSrc":"5894:1:25","nodeType":"YulIdentifier","src":"5894:1:25"},{"arguments":[{"kind":"number","nativeSrc":"5901:1:25","nodeType":"YulLiteral","src":"5901:1:25","type":"","value":"7"},{"arguments":[{"kind":"number","nativeSrc":"5909:1:25","nodeType":"YulLiteral","src":"5909:1:25","type":"","value":"1"},{"name":"w","nativeSrc":"5912:1:25","nodeType":"YulIdentifier","src":"5912:1:25"}],"functionName":{"name":"byte","nativeSrc":"5904:4:25","nodeType":"YulIdentifier","src":"5904:4:25"},"nativeSrc":"5904:10:25","nodeType":"YulFunctionCall","src":"5904:10:25"}],"functionName":{"name":"add","nativeSrc":"5897:3:25","nodeType":"YulIdentifier","src":"5897:3:25"},"nativeSrc":"5897:18:25","nodeType":"YulFunctionCall","src":"5897:18:25"}],"functionName":{"name":"xor","nativeSrc":"5890:3:25","nodeType":"YulIdentifier","src":"5890:3:25"},"nativeSrc":"5890:26:25","nodeType":"YulFunctionCall","src":"5890:26:25"}],"functionName":{"name":"mul","nativeSrc":"5883:3:25","nodeType":"YulIdentifier","src":"5883:3:25"},"nativeSrc":"5883:34:25","nodeType":"YulFunctionCall","src":"5883:34:25"}],"functionName":{"name":"xor","nativeSrc":"5876:3:25","nodeType":"YulIdentifier","src":"5876:3:25"},"nativeSrc":"5876:42:25","nodeType":"YulFunctionCall","src":"5876:42:25"}],"functionName":{"name":"add","nativeSrc":"5869:3:25","nodeType":"YulIdentifier","src":"5869:3:25"},"nativeSrc":"5869:50:25","nodeType":"YulFunctionCall","src":"5869:50:25"},"variables":[{"name":"l","nativeSrc":"5864:1:25","nodeType":"YulTypedName","src":"5864:1:25","type":""}]},{"nativeSrc":"5945:62:25","nodeType":"YulVariableDeclaration","src":"5945:62:25","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5966:1:25","nodeType":"YulLiteral","src":"5966:1:25","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"5973:4:25","nodeType":"YulLiteral","src":"5973:4:25","type":"","value":"0x1f"},{"name":"c","nativeSrc":"5979:1:25","nodeType":"YulIdentifier","src":"5979:1:25"}],"functionName":{"name":"and","nativeSrc":"5969:3:25","nodeType":"YulIdentifier","src":"5969:3:25"},"nativeSrc":"5969:12:25","nodeType":"YulFunctionCall","src":"5969:12:25"}],"functionName":{"name":"shl","nativeSrc":"5962:3:25","nodeType":"YulIdentifier","src":"5962:3:25"},"nativeSrc":"5962:20:25","nodeType":"YulFunctionCall","src":"5962:20:25"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5993:1:25","nodeType":"YulLiteral","src":"5993:1:25","type":"","value":"1"},{"name":"g","nativeSrc":"5996:1:25","nodeType":"YulIdentifier","src":"5996:1:25"}],"functionName":{"name":"add","nativeSrc":"5989:3:25","nodeType":"YulIdentifier","src":"5989:3:25"},"nativeSrc":"5989:9:25","nodeType":"YulFunctionCall","src":"5989:9:25"},{"name":"w","nativeSrc":"6000:1:25","nodeType":"YulIdentifier","src":"6000:1:25"}],"functionName":{"name":"byte","nativeSrc":"5984:4:25","nodeType":"YulIdentifier","src":"5984:4:25"},"nativeSrc":"5984:18:25","nodeType":"YulFunctionCall","src":"5984:18:25"}],"functionName":{"name":"add","nativeSrc":"5958:3:25","nodeType":"YulIdentifier","src":"5958:3:25"},"nativeSrc":"5958:45:25","nodeType":"YulFunctionCall","src":"5958:45:25"},{"kind":"number","nativeSrc":"6005:1:25","nodeType":"YulLiteral","src":"6005:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5954:3:25","nodeType":"YulIdentifier","src":"5954:3:25"},"nativeSrc":"5954:53:25","nodeType":"YulFunctionCall","src":"5954:53:25"},"variables":[{"name":"s","nativeSrc":"5949:1:25","nodeType":"YulTypedName","src":"5949:1:25","type":""}]},{"nativeSrc":"6033:19:25","nodeType":"YulVariableDeclaration","src":"6033:19:25","value":{"arguments":[{"name":"op","nativeSrc":"6046:2:25","nodeType":"YulIdentifier","src":"6046:2:25"},{"name":"s","nativeSrc":"6050:1:25","nodeType":"YulIdentifier","src":"6050:1:25"}],"functionName":{"name":"sub","nativeSrc":"6042:3:25","nodeType":"YulIdentifier","src":"6042:3:25"},"nativeSrc":"6042:10:25","nodeType":"YulFunctionCall","src":"6042:10:25"},"variables":[{"name":"r","nativeSrc":"6037:1:25","nodeType":"YulTypedName","src":"6037:1:25","type":""}]},{"nativeSrc":"6073:47:25","nodeType":"YulVariableDeclaration","src":"6073:47:25","value":{"arguments":[{"name":"s","nativeSrc":"6086:1:25","nodeType":"YulIdentifier","src":"6086:1:25"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"6096:1:25","nodeType":"YulIdentifier","src":"6096:1:25"},{"kind":"number","nativeSrc":"6099:4:25","nodeType":"YulLiteral","src":"6099:4:25","type":"","value":"0x20"}],"functionName":{"name":"gt","nativeSrc":"6093:2:25","nodeType":"YulIdentifier","src":"6093:2:25"},"nativeSrc":"6093:11:25","nodeType":"YulFunctionCall","src":"6093:11:25"},{"arguments":[{"name":"s","nativeSrc":"6110:1:25","nodeType":"YulIdentifier","src":"6110:1:25"},{"kind":"number","nativeSrc":"6113:4:25","nodeType":"YulLiteral","src":"6113:4:25","type":"","value":"0x20"}],"functionName":{"name":"xor","nativeSrc":"6106:3:25","nodeType":"YulIdentifier","src":"6106:3:25"},"nativeSrc":"6106:12:25","nodeType":"YulFunctionCall","src":"6106:12:25"}],"functionName":{"name":"mul","nativeSrc":"6089:3:25","nodeType":"YulIdentifier","src":"6089:3:25"},"nativeSrc":"6089:30:25","nodeType":"YulFunctionCall","src":"6089:30:25"}],"functionName":{"name":"xor","nativeSrc":"6082:3:25","nodeType":"YulIdentifier","src":"6082:3:25"},"nativeSrc":"6082:38:25","nodeType":"YulFunctionCall","src":"6082:38:25"},"variables":[{"name":"f","nativeSrc":"6077:1:25","nodeType":"YulTypedName","src":"6077:1:25","type":""}]},{"nativeSrc":"6141:10:25","nodeType":"YulVariableDeclaration","src":"6141:10:25","value":{"kind":"number","nativeSrc":"6150:1:25","nodeType":"YulLiteral","src":"6150:1:25","type":"","value":"0"},"variables":[{"name":"j","nativeSrc":"6145:1:25","nodeType":"YulTypedName","src":"6145:1:25","type":""}]}]},"src":"5796:647:25"}]},"condition":{"arguments":[{"name":"data","nativeSrc":"5432:4:25","nodeType":"YulIdentifier","src":"5432:4:25"},{"name":"end","nativeSrc":"5438:3:25","nodeType":"YulIdentifier","src":"5438:3:25"}],"functionName":{"name":"lt","nativeSrc":"5429:2:25","nodeType":"YulIdentifier","src":"5429:2:25"},"nativeSrc":"5429:13:25","nodeType":"YulFunctionCall","src":"5429:13:25"},"nativeSrc":"5397:1060:25","nodeType":"YulForLoop","post":{"nativeSrc":"5443:2:25","nodeType":"YulBlock","src":"5443:2:25","statements":[]},"pre":{"nativeSrc":"5401:27:25","nodeType":"YulBlock","src":"5401:27:25","statements":[{"nativeSrc":"5403:23:25","nodeType":"YulAssignment","src":"5403:23:25","value":{"arguments":[{"name":"data","nativeSrc":"5415:4:25","nodeType":"YulIdentifier","src":"5415:4:25"},{"kind":"number","nativeSrc":"5421:4:25","nodeType":"YulLiteral","src":"5421:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5411:3:25","nodeType":"YulIdentifier","src":"5411:3:25"},"nativeSrc":"5411:15:25","nodeType":"YulFunctionCall","src":"5411:15:25"},"variableNames":[{"name":"data","nativeSrc":"5403:4:25","nodeType":"YulIdentifier","src":"5403:4:25"}]}]},"src":"5397:1060:25"},{"expression":{"arguments":[{"name":"result","nativeSrc":"6477:6:25","nodeType":"YulIdentifier","src":"6477:6:25"},{"arguments":[{"name":"op","nativeSrc":"6489:2:25","nodeType":"YulIdentifier","src":"6489:2:25"},{"arguments":[{"name":"result","nativeSrc":"6497:6:25","nodeType":"YulIdentifier","src":"6497:6:25"},{"kind":"number","nativeSrc":"6505:4:25","nodeType":"YulLiteral","src":"6505:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6493:3:25","nodeType":"YulIdentifier","src":"6493:3:25"},"nativeSrc":"6493:17:25","nodeType":"YulFunctionCall","src":"6493:17:25"}],"functionName":{"name":"sub","nativeSrc":"6485:3:25","nodeType":"YulIdentifier","src":"6485:3:25"},"nativeSrc":"6485:26:25","nodeType":"YulFunctionCall","src":"6485:26:25"}],"functionName":{"name":"mstore","nativeSrc":"6470:6:25","nodeType":"YulIdentifier","src":"6470:6:25"},"nativeSrc":"6470:42:25","nodeType":"YulFunctionCall","src":"6470:42:25"},"nativeSrc":"6470:42:25","nodeType":"YulExpressionStatement","src":"6470:42:25"},{"expression":{"arguments":[{"name":"op","nativeSrc":"6553:2:25","nodeType":"YulIdentifier","src":"6553:2:25"},{"kind":"number","nativeSrc":"6557:1:25","nodeType":"YulLiteral","src":"6557:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6546:6:25","nodeType":"YulIdentifier","src":"6546:6:25"},"nativeSrc":"6546:13:25","nodeType":"YulFunctionCall","src":"6546:13:25"},"nativeSrc":"6546:13:25","nodeType":"YulExpressionStatement","src":"6546:13:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6617:4:25","nodeType":"YulLiteral","src":"6617:4:25","type":"","value":"0x40"},{"arguments":[{"name":"op","nativeSrc":"6627:2:25","nodeType":"YulIdentifier","src":"6627:2:25"},{"kind":"number","nativeSrc":"6631:4:25","nodeType":"YulLiteral","src":"6631:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6623:3:25","nodeType":"YulIdentifier","src":"6623:3:25"},"nativeSrc":"6623:13:25","nodeType":"YulFunctionCall","src":"6623:13:25"}],"functionName":{"name":"mstore","nativeSrc":"6610:6:25","nodeType":"YulIdentifier","src":"6610:6:25"},"nativeSrc":"6610:27:25","nodeType":"YulFunctionCall","src":"6610:27:25"},"nativeSrc":"6610:27:25","nodeType":"YulExpressionStatement","src":"6610:27:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5359:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5378:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5403:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5415:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5432:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5479:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5628:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5659:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"5671:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"6334:4:25","valueSize":1},{"declaration":10980,"isOffset":false,"isSlot":false,"src":"6346:4:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"5266:6:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"5314:6:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"6477:6:25","valueSize":1},{"declaration":10983,"isOffset":false,"isSlot":false,"src":"6497:6:25","valueSize":1}],"id":10985,"nodeType":"InlineAssembly","src":"5243:1428:25"}]},"documentation":{"id":10978,"nodeType":"StructuredDocumentation","src":"5058:41:25","text":"@dev Returns the decompressed `data`."},"id":10987,"implemented":true,"kind":"function","modifiers":[],"name":"flzDecompress","nameLocation":"5113:13:25","nodeType":"FunctionDefinition","parameters":{"id":10981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10980,"mutability":"mutable","name":"data","nameLocation":"5140:4:25","nodeType":"VariableDeclaration","scope":10987,"src":"5127:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10979,"name":"bytes","nodeType":"ElementaryTypeName","src":"5127:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5126:19:25"},"returnParameters":{"id":10984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10983,"mutability":"mutable","name":"result","nameLocation":"5182:6:25","nodeType":"VariableDeclaration","scope":10987,"src":"5169:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10982,"name":"bytes","nodeType":"ElementaryTypeName","src":"5169:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5168:21:25"},"scope":11014,"src":"5104:1573:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10996,"nodeType":"Block","src":"7650:1645:25","statements":[{"AST":{"nativeSrc":"7712:1577:25","nodeType":"YulBlock","src":"7712:1577:25","statements":[{"body":{"nativeSrc":"7761:130:25","nodeType":"YulBlock","src":"7761:130:25","statements":[{"expression":{"arguments":[{"name":"o_","nativeSrc":"7786:2:25","nodeType":"YulIdentifier","src":"7786:2:25"},{"arguments":[{"kind":"number","nativeSrc":"7794:3:25","nodeType":"YulLiteral","src":"7794:3:25","type":"","value":"240"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7806:4:25","nodeType":"YulLiteral","src":"7806:4:25","type":"","value":"0xff"},{"arguments":[{"name":"d_","nativeSrc":"7816:2:25","nodeType":"YulIdentifier","src":"7816:2:25"},{"kind":"number","nativeSrc":"7820:4:25","nodeType":"YulLiteral","src":"7820:4:25","type":"","value":"0xff"}],"functionName":{"name":"add","nativeSrc":"7812:3:25","nodeType":"YulIdentifier","src":"7812:3:25"},"nativeSrc":"7812:13:25","nodeType":"YulFunctionCall","src":"7812:13:25"}],"functionName":{"name":"and","nativeSrc":"7802:3:25","nodeType":"YulIdentifier","src":"7802:3:25"},"nativeSrc":"7802:24:25","nodeType":"YulFunctionCall","src":"7802:24:25"},{"arguments":[{"kind":"number","nativeSrc":"7832:4:25","nodeType":"YulLiteral","src":"7832:4:25","type":"","value":"0x80"},{"name":"v_","nativeSrc":"7838:2:25","nodeType":"YulIdentifier","src":"7838:2:25"}],"functionName":{"name":"and","nativeSrc":"7828:3:25","nodeType":"YulIdentifier","src":"7828:3:25"},"nativeSrc":"7828:13:25","nodeType":"YulFunctionCall","src":"7828:13:25"}],"functionName":{"name":"or","nativeSrc":"7799:2:25","nodeType":"YulIdentifier","src":"7799:2:25"},"nativeSrc":"7799:43:25","nodeType":"YulFunctionCall","src":"7799:43:25"}],"functionName":{"name":"shl","nativeSrc":"7790:3:25","nodeType":"YulIdentifier","src":"7790:3:25"},"nativeSrc":"7790:53:25","nodeType":"YulFunctionCall","src":"7790:53:25"}],"functionName":{"name":"mstore","nativeSrc":"7779:6:25","nodeType":"YulIdentifier","src":"7779:6:25"},"nativeSrc":"7779:65:25","nodeType":"YulFunctionCall","src":"7779:65:25"},"nativeSrc":"7779:65:25","nodeType":"YulExpressionStatement","src":"7779:65:25"},{"nativeSrc":"7861:16:25","nodeType":"YulAssignment","src":"7861:16:25","value":{"arguments":[{"name":"o_","nativeSrc":"7871:2:25","nodeType":"YulIdentifier","src":"7871:2:25"},{"kind":"number","nativeSrc":"7875:1:25","nodeType":"YulLiteral","src":"7875:1:25","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"7867:3:25","nodeType":"YulIdentifier","src":"7867:3:25"},"nativeSrc":"7867:10:25","nodeType":"YulFunctionCall","src":"7867:10:25"},"variableNames":[{"name":"_o","nativeSrc":"7861:2:25","nodeType":"YulIdentifier","src":"7861:2:25"}]}]},"name":"rle","nativeSrc":"7726:165:25","nodeType":"YulFunctionDefinition","parameters":[{"name":"v_","nativeSrc":"7739:2:25","nodeType":"YulTypedName","src":"7739:2:25","type":""},{"name":"o_","nativeSrc":"7743:2:25","nodeType":"YulTypedName","src":"7743:2:25","type":""},{"name":"d_","nativeSrc":"7747:2:25","nodeType":"YulTypedName","src":"7747:2:25","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"7754:2:25","nodeType":"YulTypedName","src":"7754:2:25","type":""},{"name":"_d","nativeSrc":"7758:2:25","nodeType":"YulTypedName","src":"7758:2:25","type":""}],"src":"7726:165:25"},{"nativeSrc":"7904:21:25","nodeType":"YulAssignment","src":"7904:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"7920:4:25","nodeType":"YulLiteral","src":"7920:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"7914:5:25","nodeType":"YulIdentifier","src":"7914:5:25"},"nativeSrc":"7914:11:25","nodeType":"YulFunctionCall","src":"7914:11:25"},"variableNames":[{"name":"result","nativeSrc":"7904:6:25","nodeType":"YulIdentifier","src":"7904:6:25"}]},{"nativeSrc":"7938:26:25","nodeType":"YulVariableDeclaration","src":"7938:26:25","value":{"arguments":[{"name":"result","nativeSrc":"7951:6:25","nodeType":"YulIdentifier","src":"7951:6:25"},{"kind":"number","nativeSrc":"7959:4:25","nodeType":"YulLiteral","src":"7959:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7947:3:25","nodeType":"YulIdentifier","src":"7947:3:25"},"nativeSrc":"7947:17:25","nodeType":"YulFunctionCall","src":"7947:17:25"},"variables":[{"name":"o","nativeSrc":"7942:1:25","nodeType":"YulTypedName","src":"7942:1:25","type":""}]},{"nativeSrc":"7977:10:25","nodeType":"YulVariableDeclaration","src":"7977:10:25","value":{"kind":"number","nativeSrc":"7986:1:25","nodeType":"YulLiteral","src":"7986:1:25","type":"","value":"0"},"variables":[{"name":"z","nativeSrc":"7981:1:25","nodeType":"YulTypedName","src":"7981:1:25","type":""}]},{"nativeSrc":"8031:10:25","nodeType":"YulVariableDeclaration","src":"8031:10:25","value":{"kind":"number","nativeSrc":"8040:1:25","nodeType":"YulLiteral","src":"8040:1:25","type":"","value":"0"},"variables":[{"name":"y","nativeSrc":"8035:1:25","nodeType":"YulTypedName","src":"8035:1:25","type":""}]},{"body":{"nativeSrc":"8152:724:25","nodeType":"YulBlock","src":"8152:724:25","statements":[{"nativeSrc":"8170:20:25","nodeType":"YulAssignment","src":"8170:20:25","value":{"arguments":[{"name":"data","nativeSrc":"8182:4:25","nodeType":"YulIdentifier","src":"8182:4:25"},{"kind":"number","nativeSrc":"8188:1:25","nodeType":"YulLiteral","src":"8188:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8178:3:25","nodeType":"YulIdentifier","src":"8178:3:25"},"nativeSrc":"8178:12:25","nodeType":"YulFunctionCall","src":"8178:12:25"},"variableNames":[{"name":"data","nativeSrc":"8170:4:25","nodeType":"YulIdentifier","src":"8170:4:25"}]},{"nativeSrc":"8207:30:25","nodeType":"YulVariableDeclaration","src":"8207:30:25","value":{"arguments":[{"kind":"number","nativeSrc":"8221:2:25","nodeType":"YulLiteral","src":"8221:2:25","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"8231:4:25","nodeType":"YulIdentifier","src":"8231:4:25"}],"functionName":{"name":"mload","nativeSrc":"8225:5:25","nodeType":"YulIdentifier","src":"8225:5:25"},"nativeSrc":"8225:11:25","nodeType":"YulFunctionCall","src":"8225:11:25"}],"functionName":{"name":"byte","nativeSrc":"8216:4:25","nodeType":"YulIdentifier","src":"8216:4:25"},"nativeSrc":"8216:21:25","nodeType":"YulFunctionCall","src":"8216:21:25"},"variables":[{"name":"c","nativeSrc":"8211:1:25","nodeType":"YulTypedName","src":"8211:1:25","type":""}]},{"body":{"nativeSrc":"8267:202:25","nodeType":"YulBlock","src":"8267:202:25","statements":[{"body":{"nativeSrc":"8294:27:25","nodeType":"YulBlock","src":"8294:27:25","statements":[{"nativeSrc":"8296:23:25","nodeType":"YulAssignment","src":"8296:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8308:4:25","nodeType":"YulLiteral","src":"8308:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8314:1:25","nodeType":"YulIdentifier","src":"8314:1:25"},{"name":"y","nativeSrc":"8317:1:25","nodeType":"YulIdentifier","src":"8317:1:25"}],"functionName":{"name":"rle","nativeSrc":"8304:3:25","nodeType":"YulIdentifier","src":"8304:3:25"},"nativeSrc":"8304:15:25","nodeType":"YulFunctionCall","src":"8304:15:25"},"variableNames":[{"name":"o","nativeSrc":"8296:1:25","nodeType":"YulIdentifier","src":"8296:1:25"},{"name":"y","nativeSrc":"8299:1:25","nodeType":"YulIdentifier","src":"8299:1:25"}]}]},"condition":{"name":"y","nativeSrc":"8292:1:25","nodeType":"YulIdentifier","src":"8292:1:25"},"nativeSrc":"8289:32:25","nodeType":"YulIf","src":"8289:32:25"},{"nativeSrc":"8342:14:25","nodeType":"YulAssignment","src":"8342:14:25","value":{"arguments":[{"name":"z","nativeSrc":"8351:1:25","nodeType":"YulIdentifier","src":"8351:1:25"},{"kind":"number","nativeSrc":"8354:1:25","nodeType":"YulLiteral","src":"8354:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8347:3:25","nodeType":"YulIdentifier","src":"8347:3:25"},"nativeSrc":"8347:9:25","nodeType":"YulFunctionCall","src":"8347:9:25"},"variableNames":[{"name":"z","nativeSrc":"8342:1:25","nodeType":"YulIdentifier","src":"8342:1:25"}]},{"body":{"nativeSrc":"8392:30:25","nodeType":"YulBlock","src":"8392:30:25","statements":[{"nativeSrc":"8394:26:25","nodeType":"YulAssignment","src":"8394:26:25","value":{"arguments":[{"kind":"number","nativeSrc":"8406:4:25","nodeType":"YulLiteral","src":"8406:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8412:1:25","nodeType":"YulIdentifier","src":"8412:1:25"},{"kind":"number","nativeSrc":"8415:4:25","nodeType":"YulLiteral","src":"8415:4:25","type":"","value":"0x80"}],"functionName":{"name":"rle","nativeSrc":"8402:3:25","nodeType":"YulIdentifier","src":"8402:3:25"},"nativeSrc":"8402:18:25","nodeType":"YulFunctionCall","src":"8402:18:25"},"variableNames":[{"name":"o","nativeSrc":"8394:1:25","nodeType":"YulIdentifier","src":"8394:1:25"},{"name":"z","nativeSrc":"8397:1:25","nodeType":"YulIdentifier","src":"8397:1:25"}]}]},"condition":{"arguments":[{"name":"z","nativeSrc":"8383:1:25","nodeType":"YulIdentifier","src":"8383:1:25"},{"kind":"number","nativeSrc":"8386:4:25","nodeType":"YulLiteral","src":"8386:4:25","type":"","value":"0x80"}],"functionName":{"name":"eq","nativeSrc":"8380:2:25","nodeType":"YulIdentifier","src":"8380:2:25"},"nativeSrc":"8380:11:25","nodeType":"YulFunctionCall","src":"8380:11:25"},"nativeSrc":"8377:45:25","nodeType":"YulIf","src":"8377:45:25"},{"nativeSrc":"8443:8:25","nodeType":"YulContinue","src":"8443:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"8264:1:25","nodeType":"YulIdentifier","src":"8264:1:25"}],"functionName":{"name":"iszero","nativeSrc":"8257:6:25","nodeType":"YulIdentifier","src":"8257:6:25"},"nativeSrc":"8257:9:25","nodeType":"YulFunctionCall","src":"8257:9:25"},"nativeSrc":"8254:215:25","nodeType":"YulIf","src":"8254:215:25"},{"body":{"nativeSrc":"8501:202:25","nodeType":"YulBlock","src":"8501:202:25","statements":[{"body":{"nativeSrc":"8528:27:25","nodeType":"YulBlock","src":"8528:27:25","statements":[{"nativeSrc":"8530:23:25","nodeType":"YulAssignment","src":"8530:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8542:4:25","nodeType":"YulLiteral","src":"8542:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8548:1:25","nodeType":"YulIdentifier","src":"8548:1:25"},{"name":"z","nativeSrc":"8551:1:25","nodeType":"YulIdentifier","src":"8551:1:25"}],"functionName":{"name":"rle","nativeSrc":"8538:3:25","nodeType":"YulIdentifier","src":"8538:3:25"},"nativeSrc":"8538:15:25","nodeType":"YulFunctionCall","src":"8538:15:25"},"variableNames":[{"name":"o","nativeSrc":"8530:1:25","nodeType":"YulIdentifier","src":"8530:1:25"},{"name":"z","nativeSrc":"8533:1:25","nodeType":"YulIdentifier","src":"8533:1:25"}]}]},"condition":{"name":"z","nativeSrc":"8526:1:25","nodeType":"YulIdentifier","src":"8526:1:25"},"nativeSrc":"8523:32:25","nodeType":"YulIf","src":"8523:32:25"},{"nativeSrc":"8576:14:25","nodeType":"YulAssignment","src":"8576:14:25","value":{"arguments":[{"name":"y","nativeSrc":"8585:1:25","nodeType":"YulIdentifier","src":"8585:1:25"},{"kind":"number","nativeSrc":"8588:1:25","nodeType":"YulLiteral","src":"8588:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8581:3:25","nodeType":"YulIdentifier","src":"8581:3:25"},"nativeSrc":"8581:9:25","nodeType":"YulFunctionCall","src":"8581:9:25"},"variableNames":[{"name":"y","nativeSrc":"8576:1:25","nodeType":"YulIdentifier","src":"8576:1:25"}]},{"body":{"nativeSrc":"8626:30:25","nodeType":"YulBlock","src":"8626:30:25","statements":[{"nativeSrc":"8628:26:25","nodeType":"YulAssignment","src":"8628:26:25","value":{"arguments":[{"kind":"number","nativeSrc":"8640:4:25","nodeType":"YulLiteral","src":"8640:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8646:1:25","nodeType":"YulIdentifier","src":"8646:1:25"},{"kind":"number","nativeSrc":"8649:4:25","nodeType":"YulLiteral","src":"8649:4:25","type":"","value":"0x20"}],"functionName":{"name":"rle","nativeSrc":"8636:3:25","nodeType":"YulIdentifier","src":"8636:3:25"},"nativeSrc":"8636:18:25","nodeType":"YulFunctionCall","src":"8636:18:25"},"variableNames":[{"name":"o","nativeSrc":"8628:1:25","nodeType":"YulIdentifier","src":"8628:1:25"},{"name":"y","nativeSrc":"8631:1:25","nodeType":"YulIdentifier","src":"8631:1:25"}]}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8617:1:25","nodeType":"YulIdentifier","src":"8617:1:25"},{"kind":"number","nativeSrc":"8620:4:25","nodeType":"YulLiteral","src":"8620:4:25","type":"","value":"0x20"}],"functionName":{"name":"eq","nativeSrc":"8614:2:25","nodeType":"YulIdentifier","src":"8614:2:25"},"nativeSrc":"8614:11:25","nodeType":"YulFunctionCall","src":"8614:11:25"},"nativeSrc":"8611:45:25","nodeType":"YulIf","src":"8611:45:25"},{"nativeSrc":"8677:8:25","nodeType":"YulContinue","src":"8677:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"8492:1:25","nodeType":"YulIdentifier","src":"8492:1:25"},{"kind":"number","nativeSrc":"8495:4:25","nodeType":"YulLiteral","src":"8495:4:25","type":"","value":"0xff"}],"functionName":{"name":"eq","nativeSrc":"8489:2:25","nodeType":"YulIdentifier","src":"8489:2:25"},"nativeSrc":"8489:11:25","nodeType":"YulFunctionCall","src":"8489:11:25"},"nativeSrc":"8486:217:25","nodeType":"YulIf","src":"8486:217:25"},{"body":{"nativeSrc":"8725:27:25","nodeType":"YulBlock","src":"8725:27:25","statements":[{"nativeSrc":"8727:23:25","nodeType":"YulAssignment","src":"8727:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8739:4:25","nodeType":"YulLiteral","src":"8739:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8745:1:25","nodeType":"YulIdentifier","src":"8745:1:25"},{"name":"y","nativeSrc":"8748:1:25","nodeType":"YulIdentifier","src":"8748:1:25"}],"functionName":{"name":"rle","nativeSrc":"8735:3:25","nodeType":"YulIdentifier","src":"8735:3:25"},"nativeSrc":"8735:15:25","nodeType":"YulFunctionCall","src":"8735:15:25"},"variableNames":[{"name":"o","nativeSrc":"8727:1:25","nodeType":"YulIdentifier","src":"8727:1:25"},{"name":"y","nativeSrc":"8730:1:25","nodeType":"YulIdentifier","src":"8730:1:25"}]}]},"condition":{"name":"y","nativeSrc":"8723:1:25","nodeType":"YulIdentifier","src":"8723:1:25"},"nativeSrc":"8720:32:25","nodeType":"YulIf","src":"8720:32:25"},{"body":{"nativeSrc":"8774:27:25","nodeType":"YulBlock","src":"8774:27:25","statements":[{"nativeSrc":"8776:23:25","nodeType":"YulAssignment","src":"8776:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8788:4:25","nodeType":"YulLiteral","src":"8788:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8794:1:25","nodeType":"YulIdentifier","src":"8794:1:25"},{"name":"z","nativeSrc":"8797:1:25","nodeType":"YulIdentifier","src":"8797:1:25"}],"functionName":{"name":"rle","nativeSrc":"8784:3:25","nodeType":"YulIdentifier","src":"8784:3:25"},"nativeSrc":"8784:15:25","nodeType":"YulFunctionCall","src":"8784:15:25"},"variableNames":[{"name":"o","nativeSrc":"8776:1:25","nodeType":"YulIdentifier","src":"8776:1:25"},{"name":"z","nativeSrc":"8779:1:25","nodeType":"YulIdentifier","src":"8779:1:25"}]}]},"condition":{"name":"z","nativeSrc":"8772:1:25","nodeType":"YulIdentifier","src":"8772:1:25"},"nativeSrc":"8769:32:25","nodeType":"YulIf","src":"8769:32:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"8826:1:25","nodeType":"YulIdentifier","src":"8826:1:25"},{"name":"c","nativeSrc":"8829:1:25","nodeType":"YulIdentifier","src":"8829:1:25"}],"functionName":{"name":"mstore8","nativeSrc":"8818:7:25","nodeType":"YulIdentifier","src":"8818:7:25"},"nativeSrc":"8818:13:25","nodeType":"YulFunctionCall","src":"8818:13:25"},"nativeSrc":"8818:13:25","nodeType":"YulExpressionStatement","src":"8818:13:25"},{"nativeSrc":"8848:14:25","nodeType":"YulAssignment","src":"8848:14:25","value":{"arguments":[{"name":"o","nativeSrc":"8857:1:25","nodeType":"YulIdentifier","src":"8857:1:25"},{"kind":"number","nativeSrc":"8860:1:25","nodeType":"YulLiteral","src":"8860:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8853:3:25","nodeType":"YulIdentifier","src":"8853:3:25"},"nativeSrc":"8853:9:25","nodeType":"YulFunctionCall","src":"8853:9:25"},"variableNames":[{"name":"o","nativeSrc":"8848:1:25","nodeType":"YulIdentifier","src":"8848:1:25"}]}]},"condition":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"8137:4:25","nodeType":"YulIdentifier","src":"8137:4:25"},{"name":"end","nativeSrc":"8143:3:25","nodeType":"YulIdentifier","src":"8143:3:25"}],"functionName":{"name":"eq","nativeSrc":"8134:2:25","nodeType":"YulIdentifier","src":"8134:2:25"},"nativeSrc":"8134:13:25","nodeType":"YulFunctionCall","src":"8134:13:25"}],"functionName":{"name":"iszero","nativeSrc":"8127:6:25","nodeType":"YulIdentifier","src":"8127:6:25"},"nativeSrc":"8127:21:25","nodeType":"YulFunctionCall","src":"8127:21:25"},"nativeSrc":"8085:791:25","nodeType":"YulForLoop","post":{"nativeSrc":"8149:2:25","nodeType":"YulBlock","src":"8149:2:25","statements":[]},"pre":{"nativeSrc":"8089:37:25","nodeType":"YulBlock","src":"8089:37:25","statements":[{"nativeSrc":"8091:33:25","nodeType":"YulVariableDeclaration","src":"8091:33:25","value":{"arguments":[{"name":"data","nativeSrc":"8106:4:25","nodeType":"YulIdentifier","src":"8106:4:25"},{"arguments":[{"name":"data","nativeSrc":"8118:4:25","nodeType":"YulIdentifier","src":"8118:4:25"}],"functionName":{"name":"mload","nativeSrc":"8112:5:25","nodeType":"YulIdentifier","src":"8112:5:25"},"nativeSrc":"8112:11:25","nodeType":"YulFunctionCall","src":"8112:11:25"}],"functionName":{"name":"add","nativeSrc":"8102:3:25","nodeType":"YulIdentifier","src":"8102:3:25"},"nativeSrc":"8102:22:25","nodeType":"YulFunctionCall","src":"8102:22:25"},"variables":[{"name":"end","nativeSrc":"8095:3:25","nodeType":"YulTypedName","src":"8095:3:25","type":""}]}]},"src":"8085:791:25"},{"body":{"nativeSrc":"8894:27:25","nodeType":"YulBlock","src":"8894:27:25","statements":[{"nativeSrc":"8896:23:25","nodeType":"YulAssignment","src":"8896:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8908:4:25","nodeType":"YulLiteral","src":"8908:4:25","type":"","value":"0xff"},{"name":"o","nativeSrc":"8914:1:25","nodeType":"YulIdentifier","src":"8914:1:25"},{"name":"y","nativeSrc":"8917:1:25","nodeType":"YulIdentifier","src":"8917:1:25"}],"functionName":{"name":"rle","nativeSrc":"8904:3:25","nodeType":"YulIdentifier","src":"8904:3:25"},"nativeSrc":"8904:15:25","nodeType":"YulFunctionCall","src":"8904:15:25"},"variableNames":[{"name":"o","nativeSrc":"8896:1:25","nodeType":"YulIdentifier","src":"8896:1:25"},{"name":"y","nativeSrc":"8899:1:25","nodeType":"YulIdentifier","src":"8899:1:25"}]}]},"condition":{"name":"y","nativeSrc":"8892:1:25","nodeType":"YulIdentifier","src":"8892:1:25"},"nativeSrc":"8889:32:25","nodeType":"YulIf","src":"8889:32:25"},{"body":{"nativeSrc":"8939:27:25","nodeType":"YulBlock","src":"8939:27:25","statements":[{"nativeSrc":"8941:23:25","nodeType":"YulAssignment","src":"8941:23:25","value":{"arguments":[{"kind":"number","nativeSrc":"8953:4:25","nodeType":"YulLiteral","src":"8953:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"8959:1:25","nodeType":"YulIdentifier","src":"8959:1:25"},{"name":"z","nativeSrc":"8962:1:25","nodeType":"YulIdentifier","src":"8962:1:25"}],"functionName":{"name":"rle","nativeSrc":"8949:3:25","nodeType":"YulIdentifier","src":"8949:3:25"},"nativeSrc":"8949:15:25","nodeType":"YulFunctionCall","src":"8949:15:25"},"variableNames":[{"name":"o","nativeSrc":"8941:1:25","nodeType":"YulIdentifier","src":"8941:1:25"},{"name":"z","nativeSrc":"8944:1:25","nodeType":"YulIdentifier","src":"8944:1:25"}]}]},"condition":{"name":"z","nativeSrc":"8937:1:25","nodeType":"YulIdentifier","src":"8937:1:25"},"nativeSrc":"8934:32:25","nodeType":"YulIf","src":"8934:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"9039:6:25","nodeType":"YulIdentifier","src":"9039:6:25"},{"kind":"number","nativeSrc":"9047:1:25","nodeType":"YulLiteral","src":"9047:1:25","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9035:3:25","nodeType":"YulIdentifier","src":"9035:3:25"},"nativeSrc":"9035:14:25","nodeType":"YulFunctionCall","src":"9035:14:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"9065:6:25","nodeType":"YulIdentifier","src":"9065:6:25"},{"kind":"number","nativeSrc":"9073:1:25","nodeType":"YulLiteral","src":"9073:1:25","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9061:3:25","nodeType":"YulIdentifier","src":"9061:3:25"},"nativeSrc":"9061:14:25","nodeType":"YulFunctionCall","src":"9061:14:25"}],"functionName":{"name":"mload","nativeSrc":"9055:5:25","nodeType":"YulIdentifier","src":"9055:5:25"},"nativeSrc":"9055:21:25","nodeType":"YulFunctionCall","src":"9055:21:25"}],"functionName":{"name":"not","nativeSrc":"9051:3:25","nodeType":"YulIdentifier","src":"9051:3:25"},"nativeSrc":"9051:26:25","nodeType":"YulFunctionCall","src":"9051:26:25"}],"functionName":{"name":"mstore","nativeSrc":"9028:6:25","nodeType":"YulIdentifier","src":"9028:6:25"},"nativeSrc":"9028:50:25","nodeType":"YulFunctionCall","src":"9028:50:25"},"nativeSrc":"9028:50:25","nodeType":"YulExpressionStatement","src":"9028:50:25"},{"expression":{"arguments":[{"name":"result","nativeSrc":"9098:6:25","nodeType":"YulIdentifier","src":"9098:6:25"},{"arguments":[{"name":"o","nativeSrc":"9110:1:25","nodeType":"YulIdentifier","src":"9110:1:25"},{"arguments":[{"name":"result","nativeSrc":"9117:6:25","nodeType":"YulIdentifier","src":"9117:6:25"},{"kind":"number","nativeSrc":"9125:4:25","nodeType":"YulLiteral","src":"9125:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9113:3:25","nodeType":"YulIdentifier","src":"9113:3:25"},"nativeSrc":"9113:17:25","nodeType":"YulFunctionCall","src":"9113:17:25"}],"functionName":{"name":"sub","nativeSrc":"9106:3:25","nodeType":"YulIdentifier","src":"9106:3:25"},"nativeSrc":"9106:25:25","nodeType":"YulFunctionCall","src":"9106:25:25"}],"functionName":{"name":"mstore","nativeSrc":"9091:6:25","nodeType":"YulIdentifier","src":"9091:6:25"},"nativeSrc":"9091:41:25","nodeType":"YulFunctionCall","src":"9091:41:25"},"nativeSrc":"9091:41:25","nodeType":"YulExpressionStatement","src":"9091:41:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"9173:1:25","nodeType":"YulIdentifier","src":"9173:1:25"},{"kind":"number","nativeSrc":"9176:1:25","nodeType":"YulLiteral","src":"9176:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9166:6:25","nodeType":"YulIdentifier","src":"9166:6:25"},"nativeSrc":"9166:12:25","nodeType":"YulFunctionCall","src":"9166:12:25"},"nativeSrc":"9166:12:25","nodeType":"YulExpressionStatement","src":"9166:12:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9236:4:25","nodeType":"YulLiteral","src":"9236:4:25","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"9246:1:25","nodeType":"YulIdentifier","src":"9246:1:25"},{"kind":"number","nativeSrc":"9249:4:25","nodeType":"YulLiteral","src":"9249:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9242:3:25","nodeType":"YulIdentifier","src":"9242:3:25"},"nativeSrc":"9242:12:25","nodeType":"YulFunctionCall","src":"9242:12:25"}],"functionName":{"name":"mstore","nativeSrc":"9229:6:25","nodeType":"YulIdentifier","src":"9229:6:25"},"nativeSrc":"9229:26:25","nodeType":"YulFunctionCall","src":"9229:26:25"},"nativeSrc":"9229:26:25","nodeType":"YulExpressionStatement","src":"9229:26:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8106:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8118:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8137:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8170:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8182:4:25","valueSize":1},{"declaration":10990,"isOffset":false,"isSlot":false,"src":"8231:4:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"7904:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"7951:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9039:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9065:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9098:6:25","valueSize":1},{"declaration":10993,"isOffset":false,"isSlot":false,"src":"9117:6:25","valueSize":1}],"id":10995,"nodeType":"InlineAssembly","src":"7703:1586:25"}]},"documentation":{"id":10988,"nodeType":"StructuredDocumentation","src":"7523:39:25","text":"@dev Returns the compressed `data`."},"id":10997,"implemented":true,"kind":"function","modifiers":[],"name":"cdCompress","nameLocation":"7576:10:25","nodeType":"FunctionDefinition","parameters":{"id":10991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10990,"mutability":"mutable","name":"data","nameLocation":"7600:4:25","nodeType":"VariableDeclaration","scope":10997,"src":"7587:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10989,"name":"bytes","nodeType":"ElementaryTypeName","src":"7587:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7586:19:25"},"returnParameters":{"id":10994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10993,"mutability":"mutable","name":"result","nameLocation":"7642:6:25","nodeType":"VariableDeclaration","scope":10997,"src":"7629:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10992,"name":"bytes","nodeType":"ElementaryTypeName","src":"7629:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7628:21:25"},"scope":11014,"src":"7567:1728:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11006,"nodeType":"Block","src":"9432:1323:25","statements":[{"AST":{"nativeSrc":"9494:1255:25","nodeType":"YulBlock","src":"9494:1255:25","statements":[{"body":{"nativeSrc":"9523:1216:25","nodeType":"YulBlock","src":"9523:1216:25","statements":[{"nativeSrc":"9541:21:25","nodeType":"YulAssignment","src":"9541:21:25","value":{"arguments":[{"kind":"number","nativeSrc":"9557:4:25","nodeType":"YulLiteral","src":"9557:4:25","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9551:5:25","nodeType":"YulIdentifier","src":"9551:5:25"},"nativeSrc":"9551:11:25","nodeType":"YulFunctionCall","src":"9551:11:25"},"variableNames":[{"name":"result","nativeSrc":"9541:6:25","nodeType":"YulIdentifier","src":"9541:6:25"}]},{"nativeSrc":"9579:26:25","nodeType":"YulVariableDeclaration","src":"9579:26:25","value":{"arguments":[{"name":"result","nativeSrc":"9592:6:25","nodeType":"YulIdentifier","src":"9592:6:25"},{"kind":"number","nativeSrc":"9600:4:25","nodeType":"YulLiteral","src":"9600:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9588:3:25","nodeType":"YulIdentifier","src":"9588:3:25"},"nativeSrc":"9588:17:25","nodeType":"YulFunctionCall","src":"9588:17:25"},"variables":[{"name":"o","nativeSrc":"9583:1:25","nodeType":"YulTypedName","src":"9583:1:25","type":""}]},{"nativeSrc":"9622:21:25","nodeType":"YulVariableDeclaration","src":"9622:21:25","value":{"arguments":[{"name":"data","nativeSrc":"9635:4:25","nodeType":"YulIdentifier","src":"9635:4:25"},{"kind":"number","nativeSrc":"9641:1:25","nodeType":"YulLiteral","src":"9641:1:25","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9631:3:25","nodeType":"YulIdentifier","src":"9631:3:25"},"nativeSrc":"9631:12:25","nodeType":"YulFunctionCall","src":"9631:12:25"},"variables":[{"name":"s","nativeSrc":"9626:1:25","nodeType":"YulTypedName","src":"9626:1:25","type":""}]},{"nativeSrc":"9660:17:25","nodeType":"YulVariableDeclaration","src":"9660:17:25","value":{"arguments":[{"name":"s","nativeSrc":"9675:1:25","nodeType":"YulIdentifier","src":"9675:1:25"}],"functionName":{"name":"mload","nativeSrc":"9669:5:25","nodeType":"YulIdentifier","src":"9669:5:25"},"nativeSrc":"9669:8:25","nodeType":"YulFunctionCall","src":"9669:8:25"},"variables":[{"name":"v","nativeSrc":"9664:1:25","nodeType":"YulTypedName","src":"9664:1:25","type":""}]},{"nativeSrc":"9694:33:25","nodeType":"YulVariableDeclaration","src":"9694:33:25","value":{"arguments":[{"name":"data","nativeSrc":"9709:4:25","nodeType":"YulIdentifier","src":"9709:4:25"},{"arguments":[{"name":"data","nativeSrc":"9721:4:25","nodeType":"YulIdentifier","src":"9721:4:25"}],"functionName":{"name":"mload","nativeSrc":"9715:5:25","nodeType":"YulIdentifier","src":"9715:5:25"},"nativeSrc":"9715:11:25","nodeType":"YulFunctionCall","src":"9715:11:25"}],"functionName":{"name":"add","nativeSrc":"9705:3:25","nodeType":"YulIdentifier","src":"9705:3:25"},"nativeSrc":"9705:22:25","nodeType":"YulFunctionCall","src":"9705:22:25"},"variables":[{"name":"end","nativeSrc":"9698:3:25","nodeType":"YulTypedName","src":"9698:3:25","type":""}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"9751:1:25","nodeType":"YulIdentifier","src":"9751:1:25"},{"arguments":[{"name":"v","nativeSrc":"9758:1:25","nodeType":"YulIdentifier","src":"9758:1:25"}],"functionName":{"name":"not","nativeSrc":"9754:3:25","nodeType":"YulIdentifier","src":"9754:3:25"},"nativeSrc":"9754:6:25","nodeType":"YulFunctionCall","src":"9754:6:25"}],"functionName":{"name":"mstore","nativeSrc":"9744:6:25","nodeType":"YulIdentifier","src":"9744:6:25"},"nativeSrc":"9744:17:25","nodeType":"YulFunctionCall","src":"9744:17:25"},"nativeSrc":"9744:17:25","nodeType":"YulExpressionStatement","src":"9744:17:25"},{"body":{"nativeSrc":"9839:614:25","nodeType":"YulBlock","src":"9839:614:25","statements":[{"nativeSrc":"9861:20:25","nodeType":"YulAssignment","src":"9861:20:25","value":{"arguments":[{"name":"data","nativeSrc":"9873:4:25","nodeType":"YulIdentifier","src":"9873:4:25"},{"kind":"number","nativeSrc":"9879:1:25","nodeType":"YulLiteral","src":"9879:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9869:3:25","nodeType":"YulIdentifier","src":"9869:3:25"},"nativeSrc":"9869:12:25","nodeType":"YulFunctionCall","src":"9869:12:25"},"variableNames":[{"name":"data","nativeSrc":"9861:4:25","nodeType":"YulIdentifier","src":"9861:4:25"}]},{"nativeSrc":"9902:30:25","nodeType":"YulVariableDeclaration","src":"9902:30:25","value":{"arguments":[{"kind":"number","nativeSrc":"9916:2:25","nodeType":"YulLiteral","src":"9916:2:25","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"9926:4:25","nodeType":"YulIdentifier","src":"9926:4:25"}],"functionName":{"name":"mload","nativeSrc":"9920:5:25","nodeType":"YulIdentifier","src":"9920:5:25"},"nativeSrc":"9920:11:25","nodeType":"YulFunctionCall","src":"9920:11:25"}],"functionName":{"name":"byte","nativeSrc":"9911:4:25","nodeType":"YulIdentifier","src":"9911:4:25"},"nativeSrc":"9911:21:25","nodeType":"YulFunctionCall","src":"9911:21:25"},"variables":[{"name":"c","nativeSrc":"9906:1:25","nodeType":"YulTypedName","src":"9906:1:25","type":""}]},{"body":{"nativeSrc":"9966:400:25","nodeType":"YulBlock","src":"9966:400:25","statements":[{"nativeSrc":"9992:20:25","nodeType":"YulAssignment","src":"9992:20:25","value":{"arguments":[{"name":"data","nativeSrc":"10004:4:25","nodeType":"YulIdentifier","src":"10004:4:25"},{"kind":"number","nativeSrc":"10010:1:25","nodeType":"YulLiteral","src":"10010:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10000:3:25","nodeType":"YulIdentifier","src":"10000:3:25"},"nativeSrc":"10000:12:25","nodeType":"YulFunctionCall","src":"10000:12:25"},"variableNames":[{"name":"data","nativeSrc":"9992:4:25","nodeType":"YulIdentifier","src":"9992:4:25"}]},{"nativeSrc":"10037:30:25","nodeType":"YulVariableDeclaration","src":"10037:30:25","value":{"arguments":[{"kind":"number","nativeSrc":"10051:2:25","nodeType":"YulLiteral","src":"10051:2:25","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"10061:4:25","nodeType":"YulIdentifier","src":"10061:4:25"}],"functionName":{"name":"mload","nativeSrc":"10055:5:25","nodeType":"YulIdentifier","src":"10055:5:25"},"nativeSrc":"10055:11:25","nodeType":"YulFunctionCall","src":"10055:11:25"}],"functionName":{"name":"byte","nativeSrc":"10046:4:25","nodeType":"YulIdentifier","src":"10046:4:25"},"nativeSrc":"10046:21:25","nodeType":"YulFunctionCall","src":"10046:21:25"},"variables":[{"name":"d","nativeSrc":"10041:1:25","nodeType":"YulTypedName","src":"10041:1:25","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"10157:1:25","nodeType":"YulIdentifier","src":"10157:1:25"},{"arguments":[{"kind":"number","nativeSrc":"10164:1:25","nodeType":"YulLiteral","src":"10164:1:25","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"10160:3:25","nodeType":"YulIdentifier","src":"10160:3:25"},"nativeSrc":"10160:6:25","nodeType":"YulFunctionCall","src":"10160:6:25"}],"functionName":{"name":"mstore","nativeSrc":"10150:6:25","nodeType":"YulIdentifier","src":"10150:6:25"},"nativeSrc":"10150:17:25","nodeType":"YulFunctionCall","src":"10150:17:25"},"nativeSrc":"10150:17:25","nodeType":"YulExpressionStatement","src":"10150:17:25"},{"body":{"nativeSrc":"10215:38:25","nodeType":"YulBlock","src":"10215:38:25","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"10226:1:25","nodeType":"YulIdentifier","src":"10226:1:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"10229:8:25","nodeType":"YulIdentifier","src":"10229:8:25"},"nativeSrc":"10229:10:25","nodeType":"YulFunctionCall","src":"10229:10:25"},{"arguments":[{"name":"d","nativeSrc":"10245:1:25","nodeType":"YulIdentifier","src":"10245:1:25"},{"kind":"number","nativeSrc":"10248:1:25","nodeType":"YulLiteral","src":"10248:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10241:3:25","nodeType":"YulIdentifier","src":"10241:3:25"},"nativeSrc":"10241:9:25","nodeType":"YulFunctionCall","src":"10241:9:25"}],"functionName":{"name":"codecopy","nativeSrc":"10217:8:25","nodeType":"YulIdentifier","src":"10217:8:25"},"nativeSrc":"10217:34:25","nodeType":"YulFunctionCall","src":"10217:34:25"},"nativeSrc":"10217:34:25","nodeType":"YulExpressionStatement","src":"10217:34:25"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"10205:1:25","nodeType":"YulIdentifier","src":"10205:1:25"},{"kind":"number","nativeSrc":"10208:4:25","nodeType":"YulLiteral","src":"10208:4:25","type":"","value":"0x7f"}],"functionName":{"name":"gt","nativeSrc":"10202:2:25","nodeType":"YulIdentifier","src":"10202:2:25"},"nativeSrc":"10202:11:25","nodeType":"YulFunctionCall","src":"10202:11:25"}],"functionName":{"name":"iszero","nativeSrc":"10195:6:25","nodeType":"YulIdentifier","src":"10195:6:25"},"nativeSrc":"10195:19:25","nodeType":"YulFunctionCall","src":"10195:19:25"},"nativeSrc":"10192:61:25","nodeType":"YulIf","src":"10192:61:25"},{"nativeSrc":"10278:33:25","nodeType":"YulAssignment","src":"10278:33:25","value":{"arguments":[{"name":"o","nativeSrc":"10287:1:25","nodeType":"YulIdentifier","src":"10287:1:25"},{"arguments":[{"arguments":[{"name":"d","nativeSrc":"10298:1:25","nodeType":"YulIdentifier","src":"10298:1:25"},{"kind":"number","nativeSrc":"10301:4:25","nodeType":"YulLiteral","src":"10301:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10294:3:25","nodeType":"YulIdentifier","src":"10294:3:25"},"nativeSrc":"10294:12:25","nodeType":"YulFunctionCall","src":"10294:12:25"},{"kind":"number","nativeSrc":"10308:1:25","nodeType":"YulLiteral","src":"10308:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10290:3:25","nodeType":"YulIdentifier","src":"10290:3:25"},"nativeSrc":"10290:20:25","nodeType":"YulFunctionCall","src":"10290:20:25"}],"functionName":{"name":"add","nativeSrc":"10283:3:25","nodeType":"YulIdentifier","src":"10283:3:25"},"nativeSrc":"10283:28:25","nodeType":"YulFunctionCall","src":"10283:28:25"},"variableNames":[{"name":"o","nativeSrc":"10278:1:25","nodeType":"YulIdentifier","src":"10278:1:25"}]},{"nativeSrc":"10336:8:25","nodeType":"YulContinue","src":"10336:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"9963:1:25","nodeType":"YulIdentifier","src":"9963:1:25"}],"functionName":{"name":"iszero","nativeSrc":"9956:6:25","nodeType":"YulIdentifier","src":"9956:6:25"},"nativeSrc":"9956:9:25","nodeType":"YulFunctionCall","src":"9956:9:25"},"nativeSrc":"9953:413:25","nodeType":"YulIf","src":"9953:413:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"10395:1:25","nodeType":"YulIdentifier","src":"10395:1:25"},{"name":"c","nativeSrc":"10398:1:25","nodeType":"YulIdentifier","src":"10398:1:25"}],"functionName":{"name":"mstore8","nativeSrc":"10387:7:25","nodeType":"YulIdentifier","src":"10387:7:25"},"nativeSrc":"10387:13:25","nodeType":"YulFunctionCall","src":"10387:13:25"},"nativeSrc":"10387:13:25","nodeType":"YulExpressionStatement","src":"10387:13:25"},{"nativeSrc":"10421:14:25","nodeType":"YulAssignment","src":"10421:14:25","value":{"arguments":[{"name":"o","nativeSrc":"10430:1:25","nodeType":"YulIdentifier","src":"10430:1:25"},{"kind":"number","nativeSrc":"10433:1:25","nodeType":"YulLiteral","src":"10433:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10426:3:25","nodeType":"YulIdentifier","src":"10426:3:25"},"nativeSrc":"10426:9:25","nodeType":"YulFunctionCall","src":"10426:9:25"},"variableNames":[{"name":"o","nativeSrc":"10421:1:25","nodeType":"YulIdentifier","src":"10421:1:25"}]}]},"condition":{"arguments":[{"name":"data","nativeSrc":"9825:4:25","nodeType":"YulIdentifier","src":"9825:4:25"},{"name":"end","nativeSrc":"9831:3:25","nodeType":"YulIdentifier","src":"9831:3:25"}],"functionName":{"name":"lt","nativeSrc":"9822:2:25","nodeType":"YulIdentifier","src":"9822:2:25"},"nativeSrc":"9822:13:25","nodeType":"YulFunctionCall","src":"9822:13:25"},"nativeSrc":"9815:638:25","nodeType":"YulForLoop","post":{"nativeSrc":"9836:2:25","nodeType":"YulBlock","src":"9836:2:25","statements":[]},"pre":{"nativeSrc":"9819:2:25","nodeType":"YulBlock","src":"9819:2:25","statements":[]},"src":"9815:638:25"},{"expression":{"arguments":[{"name":"s","nativeSrc":"10477:1:25","nodeType":"YulIdentifier","src":"10477:1:25"},{"name":"v","nativeSrc":"10480:1:25","nodeType":"YulIdentifier","src":"10480:1:25"}],"functionName":{"name":"mstore","nativeSrc":"10470:6:25","nodeType":"YulIdentifier","src":"10470:6:25"},"nativeSrc":"10470:12:25","nodeType":"YulFunctionCall","src":"10470:12:25"},"nativeSrc":"10470:12:25","nodeType":"YulExpressionStatement","src":"10470:12:25"},{"expression":{"arguments":[{"name":"result","nativeSrc":"10536:6:25","nodeType":"YulIdentifier","src":"10536:6:25"},{"arguments":[{"name":"o","nativeSrc":"10548:1:25","nodeType":"YulIdentifier","src":"10548:1:25"},{"arguments":[{"name":"result","nativeSrc":"10555:6:25","nodeType":"YulIdentifier","src":"10555:6:25"},{"kind":"number","nativeSrc":"10563:4:25","nodeType":"YulLiteral","src":"10563:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10551:3:25","nodeType":"YulIdentifier","src":"10551:3:25"},"nativeSrc":"10551:17:25","nodeType":"YulFunctionCall","src":"10551:17:25"}],"functionName":{"name":"sub","nativeSrc":"10544:3:25","nodeType":"YulIdentifier","src":"10544:3:25"},"nativeSrc":"10544:25:25","nodeType":"YulFunctionCall","src":"10544:25:25"}],"functionName":{"name":"mstore","nativeSrc":"10529:6:25","nodeType":"YulIdentifier","src":"10529:6:25"},"nativeSrc":"10529:41:25","nodeType":"YulFunctionCall","src":"10529:41:25"},"nativeSrc":"10529:41:25","nodeType":"YulExpressionStatement","src":"10529:41:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"10615:1:25","nodeType":"YulIdentifier","src":"10615:1:25"},{"kind":"number","nativeSrc":"10618:1:25","nodeType":"YulLiteral","src":"10618:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10608:6:25","nodeType":"YulIdentifier","src":"10608:6:25"},"nativeSrc":"10608:12:25","nodeType":"YulFunctionCall","src":"10608:12:25"},"nativeSrc":"10608:12:25","nodeType":"YulExpressionStatement","src":"10608:12:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10682:4:25","nodeType":"YulLiteral","src":"10682:4:25","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"10692:1:25","nodeType":"YulIdentifier","src":"10692:1:25"},{"kind":"number","nativeSrc":"10695:4:25","nodeType":"YulLiteral","src":"10695:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10688:3:25","nodeType":"YulIdentifier","src":"10688:3:25"},"nativeSrc":"10688:12:25","nodeType":"YulFunctionCall","src":"10688:12:25"}],"functionName":{"name":"mstore","nativeSrc":"10675:6:25","nodeType":"YulIdentifier","src":"10675:6:25"},"nativeSrc":"10675:26:25","nodeType":"YulFunctionCall","src":"10675:26:25"},"nativeSrc":"10675:26:25","nodeType":"YulExpressionStatement","src":"10675:26:25"}]},"condition":{"arguments":[{"name":"data","nativeSrc":"9517:4:25","nodeType":"YulIdentifier","src":"9517:4:25"}],"functionName":{"name":"mload","nativeSrc":"9511:5:25","nodeType":"YulIdentifier","src":"9511:5:25"},"nativeSrc":"9511:11:25","nodeType":"YulFunctionCall","src":"9511:11:25"},"nativeSrc":"9508:1231:25","nodeType":"YulIf","src":"9508:1231:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11000,"isOffset":false,"isSlot":false,"src":"10004:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"10061:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9517:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9635:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9709:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9721:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9825:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9861:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9873:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9926:4:25","valueSize":1},{"declaration":11000,"isOffset":false,"isSlot":false,"src":"9992:4:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"10536:6:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"10555:6:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"9541:6:25","valueSize":1},{"declaration":11003,"isOffset":false,"isSlot":false,"src":"9592:6:25","valueSize":1}],"id":11005,"nodeType":"InlineAssembly","src":"9485:1264:25"}]},"documentation":{"id":10998,"nodeType":"StructuredDocumentation","src":"9301:41:25","text":"@dev Returns the decompressed `data`."},"id":11007,"implemented":true,"kind":"function","modifiers":[],"name":"cdDecompress","nameLocation":"9356:12:25","nodeType":"FunctionDefinition","parameters":{"id":11001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11000,"mutability":"mutable","name":"data","nameLocation":"9382:4:25","nodeType":"VariableDeclaration","scope":11007,"src":"9369:17:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10999,"name":"bytes","nodeType":"ElementaryTypeName","src":"9369:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9368:19:25"},"returnParameters":{"id":11004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11003,"mutability":"mutable","name":"result","nameLocation":"9424:6:25","nodeType":"VariableDeclaration","scope":11007,"src":"9411:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11002,"name":"bytes","nodeType":"ElementaryTypeName","src":"9411:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9410:21:25"},"scope":11014,"src":"9347:1408:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11012,"nodeType":"Block","src":"11207:1095:25","statements":[{"AST":{"nativeSrc":"11226:1070:25","nodeType":"YulBlock","src":"11226:1070:25","statements":[{"body":{"nativeSrc":"11266:42:25","nodeType":"YulBlock","src":"11266:42:25","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11275:12:25","nodeType":"YulIdentifier","src":"11275:12:25"},"nativeSrc":"11275:14:25","nodeType":"YulFunctionCall","src":"11275:14:25"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11291:12:25","nodeType":"YulIdentifier","src":"11291:12:25"},"nativeSrc":"11291:14:25","nodeType":"YulFunctionCall","src":"11291:14:25"}],"functionName":{"name":"return","nativeSrc":"11268:6:25","nodeType":"YulIdentifier","src":"11268:6:25"},"nativeSrc":"11268:38:25","nodeType":"YulFunctionCall","src":"11268:38:25"},"nativeSrc":"11268:38:25","nodeType":"YulExpressionStatement","src":"11268:38:25"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11250:12:25","nodeType":"YulIdentifier","src":"11250:12:25"},"nativeSrc":"11250:14:25","nodeType":"YulFunctionCall","src":"11250:14:25"}],"functionName":{"name":"iszero","nativeSrc":"11243:6:25","nodeType":"YulIdentifier","src":"11243:6:25"},"nativeSrc":"11243:22:25","nodeType":"YulFunctionCall","src":"11243:22:25"},"nativeSrc":"11240:68:25","nodeType":"YulIf","src":"11240:68:25"},{"nativeSrc":"11321:10:25","nodeType":"YulVariableDeclaration","src":"11321:10:25","value":{"kind":"number","nativeSrc":"11330:1:25","nodeType":"YulLiteral","src":"11330:1:25","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"11325:1:25","nodeType":"YulTypedName","src":"11325:1:25","type":""}]},{"nativeSrc":"11344:15:25","nodeType":"YulVariableDeclaration","src":"11344:15:25","value":{"arguments":[{"kind":"number","nativeSrc":"11357:1:25","nodeType":"YulLiteral","src":"11357:1:25","type":"","value":"3"}],"functionName":{"name":"not","nativeSrc":"11353:3:25","nodeType":"YulIdentifier","src":"11353:3:25"},"nativeSrc":"11353:6:25","nodeType":"YulFunctionCall","src":"11353:6:25"},"variables":[{"name":"f","nativeSrc":"11348:1:25","nodeType":"YulTypedName","src":"11348:1:25","type":""}]},{"body":{"nativeSrc":"11451:584:25","nodeType":"YulBlock","src":"11451:584:25","statements":[{"nativeSrc":"11469:49:25","nodeType":"YulVariableDeclaration","src":"11469:49:25","value":{"arguments":[{"kind":"number","nativeSrc":"11483:1:25","nodeType":"YulLiteral","src":"11483:1:25","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"i","nativeSrc":"11494:1:25","nodeType":"YulIdentifier","src":"11494:1:25"},{"name":"f","nativeSrc":"11497:1:25","nodeType":"YulIdentifier","src":"11497:1:25"}],"functionName":{"name":"add","nativeSrc":"11490:3:25","nodeType":"YulIdentifier","src":"11490:3:25"},"nativeSrc":"11490:9:25","nodeType":"YulFunctionCall","src":"11490:9:25"},{"arguments":[{"name":"i","nativeSrc":"11514:1:25","nodeType":"YulIdentifier","src":"11514:1:25"}],"functionName":{"name":"calldataload","nativeSrc":"11501:12:25","nodeType":"YulIdentifier","src":"11501:12:25"},"nativeSrc":"11501:15:25","nodeType":"YulFunctionCall","src":"11501:15:25"}],"functionName":{"name":"xor","nativeSrc":"11486:3:25","nodeType":"YulIdentifier","src":"11486:3:25"},"nativeSrc":"11486:31:25","nodeType":"YulFunctionCall","src":"11486:31:25"}],"functionName":{"name":"byte","nativeSrc":"11478:4:25","nodeType":"YulIdentifier","src":"11478:4:25"},"nativeSrc":"11478:40:25","nodeType":"YulFunctionCall","src":"11478:40:25"},"variables":[{"name":"c","nativeSrc":"11473:1:25","nodeType":"YulTypedName","src":"11473:1:25","type":""}]},{"nativeSrc":"11535:14:25","nodeType":"YulAssignment","src":"11535:14:25","value":{"arguments":[{"name":"i","nativeSrc":"11544:1:25","nodeType":"YulIdentifier","src":"11544:1:25"},{"kind":"number","nativeSrc":"11547:1:25","nodeType":"YulLiteral","src":"11547:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11540:3:25","nodeType":"YulIdentifier","src":"11540:3:25"},"nativeSrc":"11540:9:25","nodeType":"YulFunctionCall","src":"11540:9:25"},"variableNames":[{"name":"i","nativeSrc":"11535:1:25","nodeType":"YulIdentifier","src":"11535:1:25"}]},{"body":{"nativeSrc":"11579:381:25","nodeType":"YulBlock","src":"11579:381:25","statements":[{"nativeSrc":"11601:49:25","nodeType":"YulVariableDeclaration","src":"11601:49:25","value":{"arguments":[{"kind":"number","nativeSrc":"11615:1:25","nodeType":"YulLiteral","src":"11615:1:25","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"i","nativeSrc":"11626:1:25","nodeType":"YulIdentifier","src":"11626:1:25"},{"name":"f","nativeSrc":"11629:1:25","nodeType":"YulIdentifier","src":"11629:1:25"}],"functionName":{"name":"add","nativeSrc":"11622:3:25","nodeType":"YulIdentifier","src":"11622:3:25"},"nativeSrc":"11622:9:25","nodeType":"YulFunctionCall","src":"11622:9:25"},{"arguments":[{"name":"i","nativeSrc":"11646:1:25","nodeType":"YulIdentifier","src":"11646:1:25"}],"functionName":{"name":"calldataload","nativeSrc":"11633:12:25","nodeType":"YulIdentifier","src":"11633:12:25"},"nativeSrc":"11633:15:25","nodeType":"YulFunctionCall","src":"11633:15:25"}],"functionName":{"name":"xor","nativeSrc":"11618:3:25","nodeType":"YulIdentifier","src":"11618:3:25"},"nativeSrc":"11618:31:25","nodeType":"YulFunctionCall","src":"11618:31:25"}],"functionName":{"name":"byte","nativeSrc":"11610:4:25","nodeType":"YulIdentifier","src":"11610:4:25"},"nativeSrc":"11610:40:25","nodeType":"YulFunctionCall","src":"11610:40:25"},"variables":[{"name":"d","nativeSrc":"11605:1:25","nodeType":"YulTypedName","src":"11605:1:25","type":""}]},{"nativeSrc":"11671:14:25","nodeType":"YulAssignment","src":"11671:14:25","value":{"arguments":[{"name":"i","nativeSrc":"11680:1:25","nodeType":"YulIdentifier","src":"11680:1:25"},{"kind":"number","nativeSrc":"11683:1:25","nodeType":"YulLiteral","src":"11683:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11676:3:25","nodeType":"YulIdentifier","src":"11676:3:25"},"nativeSrc":"11676:9:25","nodeType":"YulFunctionCall","src":"11676:9:25"},"variableNames":[{"name":"i","nativeSrc":"11671:1:25","nodeType":"YulIdentifier","src":"11671:1:25"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"11767:1:25","nodeType":"YulIdentifier","src":"11767:1:25"},{"arguments":[{"kind":"number","nativeSrc":"11774:1:25","nodeType":"YulLiteral","src":"11774:1:25","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11770:3:25","nodeType":"YulIdentifier","src":"11770:3:25"},"nativeSrc":"11770:6:25","nodeType":"YulFunctionCall","src":"11770:6:25"}],"functionName":{"name":"mstore","nativeSrc":"11760:6:25","nodeType":"YulIdentifier","src":"11760:6:25"},"nativeSrc":"11760:17:25","nodeType":"YulFunctionCall","src":"11760:17:25"},"nativeSrc":"11760:17:25","nodeType":"YulExpressionStatement","src":"11760:17:25"},{"body":{"nativeSrc":"11821:38:25","nodeType":"YulBlock","src":"11821:38:25","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"11832:1:25","nodeType":"YulIdentifier","src":"11832:1:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"11835:8:25","nodeType":"YulIdentifier","src":"11835:8:25"},"nativeSrc":"11835:10:25","nodeType":"YulFunctionCall","src":"11835:10:25"},{"arguments":[{"name":"d","nativeSrc":"11851:1:25","nodeType":"YulIdentifier","src":"11851:1:25"},{"kind":"number","nativeSrc":"11854:1:25","nodeType":"YulLiteral","src":"11854:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11847:3:25","nodeType":"YulIdentifier","src":"11847:3:25"},"nativeSrc":"11847:9:25","nodeType":"YulFunctionCall","src":"11847:9:25"}],"functionName":{"name":"codecopy","nativeSrc":"11823:8:25","nodeType":"YulIdentifier","src":"11823:8:25"},"nativeSrc":"11823:34:25","nodeType":"YulFunctionCall","src":"11823:34:25"},"nativeSrc":"11823:34:25","nodeType":"YulExpressionStatement","src":"11823:34:25"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"11811:1:25","nodeType":"YulIdentifier","src":"11811:1:25"},{"kind":"number","nativeSrc":"11814:4:25","nodeType":"YulLiteral","src":"11814:4:25","type":"","value":"0x7f"}],"functionName":{"name":"gt","nativeSrc":"11808:2:25","nodeType":"YulIdentifier","src":"11808:2:25"},"nativeSrc":"11808:11:25","nodeType":"YulFunctionCall","src":"11808:11:25"}],"functionName":{"name":"iszero","nativeSrc":"11801:6:25","nodeType":"YulIdentifier","src":"11801:6:25"},"nativeSrc":"11801:19:25","nodeType":"YulFunctionCall","src":"11801:19:25"},"nativeSrc":"11798:61:25","nodeType":"YulIf","src":"11798:61:25"},{"nativeSrc":"11880:33:25","nodeType":"YulAssignment","src":"11880:33:25","value":{"arguments":[{"name":"o","nativeSrc":"11889:1:25","nodeType":"YulIdentifier","src":"11889:1:25"},{"arguments":[{"arguments":[{"name":"d","nativeSrc":"11900:1:25","nodeType":"YulIdentifier","src":"11900:1:25"},{"kind":"number","nativeSrc":"11903:4:25","nodeType":"YulLiteral","src":"11903:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11896:3:25","nodeType":"YulIdentifier","src":"11896:3:25"},"nativeSrc":"11896:12:25","nodeType":"YulFunctionCall","src":"11896:12:25"},{"kind":"number","nativeSrc":"11910:1:25","nodeType":"YulLiteral","src":"11910:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11892:3:25","nodeType":"YulIdentifier","src":"11892:3:25"},"nativeSrc":"11892:20:25","nodeType":"YulFunctionCall","src":"11892:20:25"}],"functionName":{"name":"add","nativeSrc":"11885:3:25","nodeType":"YulIdentifier","src":"11885:3:25"},"nativeSrc":"11885:28:25","nodeType":"YulFunctionCall","src":"11885:28:25"},"variableNames":[{"name":"o","nativeSrc":"11880:1:25","nodeType":"YulIdentifier","src":"11880:1:25"}]},{"nativeSrc":"11934:8:25","nodeType":"YulContinue","src":"11934:8:25"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"11576:1:25","nodeType":"YulIdentifier","src":"11576:1:25"}],"functionName":{"name":"iszero","nativeSrc":"11569:6:25","nodeType":"YulIdentifier","src":"11569:6:25"},"nativeSrc":"11569:9:25","nodeType":"YulFunctionCall","src":"11569:9:25"},"nativeSrc":"11566:394:25","nodeType":"YulIf","src":"11566:394:25"},{"expression":{"arguments":[{"name":"o","nativeSrc":"11985:1:25","nodeType":"YulIdentifier","src":"11985:1:25"},{"name":"c","nativeSrc":"11988:1:25","nodeType":"YulIdentifier","src":"11988:1:25"}],"functionName":{"name":"mstore8","nativeSrc":"11977:7:25","nodeType":"YulIdentifier","src":"11977:7:25"},"nativeSrc":"11977:13:25","nodeType":"YulFunctionCall","src":"11977:13:25"},"nativeSrc":"11977:13:25","nodeType":"YulExpressionStatement","src":"11977:13:25"},{"nativeSrc":"12007:14:25","nodeType":"YulAssignment","src":"12007:14:25","value":{"arguments":[{"name":"o","nativeSrc":"12016:1:25","nodeType":"YulIdentifier","src":"12016:1:25"},{"kind":"number","nativeSrc":"12019:1:25","nodeType":"YulLiteral","src":"12019:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12012:3:25","nodeType":"YulIdentifier","src":"12012:3:25"},"nativeSrc":"12012:9:25","nodeType":"YulFunctionCall","src":"12012:9:25"},"variableNames":[{"name":"o","nativeSrc":"12007:1:25","nodeType":"YulIdentifier","src":"12007:1:25"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"11429:1:25","nodeType":"YulIdentifier","src":"11429:1:25"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11432:12:25","nodeType":"YulIdentifier","src":"11432:12:25"},"nativeSrc":"11432:14:25","nodeType":"YulFunctionCall","src":"11432:14:25"}],"functionName":{"name":"lt","nativeSrc":"11426:2:25","nodeType":"YulIdentifier","src":"11426:2:25"},"nativeSrc":"11426:21:25","nodeType":"YulFunctionCall","src":"11426:21:25"},"nativeSrc":"11407:628:25","nodeType":"YulForLoop","post":{"nativeSrc":"11448:2:25","nodeType":"YulBlock","src":"11448:2:25","statements":[]},"pre":{"nativeSrc":"11411:14:25","nodeType":"YulBlock","src":"11411:14:25","statements":[{"nativeSrc":"11413:10:25","nodeType":"YulVariableDeclaration","src":"11413:10:25","value":{"kind":"number","nativeSrc":"11422:1:25","nodeType":"YulLiteral","src":"11422:1:25","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"11417:1:25","nodeType":"YulTypedName","src":"11417:1:25","type":""}]}]},"src":"11407:628:25"},{"nativeSrc":"12048:72:25","nodeType":"YulVariableDeclaration","src":"12048:72:25","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"12076:3:25","nodeType":"YulIdentifier","src":"12076:3:25"},"nativeSrc":"12076:5:25","nodeType":"YulFunctionCall","src":"12076:5:25"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"12083:7:25","nodeType":"YulIdentifier","src":"12083:7:25"},"nativeSrc":"12083:9:25","nodeType":"YulFunctionCall","src":"12083:9:25"},{"kind":"number","nativeSrc":"12094:4:25","nodeType":"YulLiteral","src":"12094:4:25","type":"","value":"0x00"},{"name":"o","nativeSrc":"12100:1:25","nodeType":"YulIdentifier","src":"12100:1:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"12103:8:25","nodeType":"YulIdentifier","src":"12103:8:25"},"nativeSrc":"12103:10:25","nodeType":"YulFunctionCall","src":"12103:10:25"},{"kind":"number","nativeSrc":"12115:4:25","nodeType":"YulLiteral","src":"12115:4:25","type":"","value":"0x00"}],"functionName":{"name":"delegatecall","nativeSrc":"12063:12:25","nodeType":"YulIdentifier","src":"12063:12:25"},"nativeSrc":"12063:57:25","nodeType":"YulFunctionCall","src":"12063:57:25"},"variables":[{"name":"success","nativeSrc":"12052:7:25","nodeType":"YulTypedName","src":"12052:7:25","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12148:4:25","nodeType":"YulLiteral","src":"12148:4:25","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12154:4:25","nodeType":"YulLiteral","src":"12154:4:25","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12160:14:25","nodeType":"YulIdentifier","src":"12160:14:25"},"nativeSrc":"12160:16:25","nodeType":"YulFunctionCall","src":"12160:16:25"}],"functionName":{"name":"returndatacopy","nativeSrc":"12133:14:25","nodeType":"YulIdentifier","src":"12133:14:25"},"nativeSrc":"12133:44:25","nodeType":"YulFunctionCall","src":"12133:44:25"},"nativeSrc":"12133:44:25","nodeType":"YulExpressionStatement","src":"12133:44:25"},{"body":{"nativeSrc":"12209:34:25","nodeType":"YulBlock","src":"12209:34:25","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12218:4:25","nodeType":"YulLiteral","src":"12218:4:25","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12224:14:25","nodeType":"YulIdentifier","src":"12224:14:25"},"nativeSrc":"12224:16:25","nodeType":"YulFunctionCall","src":"12224:16:25"}],"functionName":{"name":"revert","nativeSrc":"12211:6:25","nodeType":"YulIdentifier","src":"12211:6:25"},"nativeSrc":"12211:30:25","nodeType":"YulFunctionCall","src":"12211:30:25"},"nativeSrc":"12211:30:25","nodeType":"YulExpressionStatement","src":"12211:30:25"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"12200:7:25","nodeType":"YulIdentifier","src":"12200:7:25"}],"functionName":{"name":"iszero","nativeSrc":"12193:6:25","nodeType":"YulIdentifier","src":"12193:6:25"},"nativeSrc":"12193:15:25","nodeType":"YulFunctionCall","src":"12193:15:25"},"nativeSrc":"12190:53:25","nodeType":"YulIf","src":"12190:53:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12263:4:25","nodeType":"YulLiteral","src":"12263:4:25","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12269:14:25","nodeType":"YulIdentifier","src":"12269:14:25"},"nativeSrc":"12269:16:25","nodeType":"YulFunctionCall","src":"12269:16:25"}],"functionName":{"name":"return","nativeSrc":"12256:6:25","nodeType":"YulIdentifier","src":"12256:6:25"},"nativeSrc":"12256:30:25","nodeType":"YulFunctionCall","src":"12256:30:25"},"nativeSrc":"12256:30:25","nodeType":"YulExpressionStatement","src":"12256:30:25"}]},"evmVersion":"cancun","externalReferences":[],"id":11011,"nodeType":"InlineAssembly","src":"11217:1079:25"}]},"documentation":{"id":11008,"nodeType":"StructuredDocumentation","src":"10761:410:25","text":"@dev To be called in the `fallback` function.\n ```\n fallback() external payable { LibZip.cdFallback(); }\n receive() external payable {} // Silence compiler warning to add a `receive` function.\n ```\n For efficiency, this function will directly return the results, terminating the context.\n If called internally, it must be called at the end of the function."},"id":11013,"implemented":true,"kind":"function","modifiers":[],"name":"cdFallback","nameLocation":"11185:10:25","nodeType":"FunctionDefinition","parameters":{"id":11009,"nodeType":"ParameterList","parameters":[],"src":"11195:2:25"},"returnParameters":{"id":11010,"nodeType":"ParameterList","parameters":[],"src":"11207:0:25"},"scope":11014,"src":"11176:1126:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11015,"src":"492:11812:25","usedErrors":[],"usedEvents":[]}],"src":"32:12273:25"},"id":25},"@solady/utils/ReentrancyGuard.sol":{"ast":{"absolutePath":"@solady/utils/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[11038]},"id":11039,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11016,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:26"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":11017,"nodeType":"StructuredDocumentation","src":"57:134:26","text":"@notice Reentrancy guard mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)"},"fullyImplemented":true,"id":11038,"linearizedBaseContracts":[11038],"name":"ReentrancyGuard","nameLocation":"209:15:26","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":11018,"nodeType":"StructuredDocumentation","src":"514:37:26","text":"@dev Unauthorized reentrant call."},"errorSelector":"ab143c06","id":11020,"name":"Reentrancy","nameLocation":"562:10:26","nodeType":"ErrorDefinition","parameters":{"id":11019,"nodeType":"ParameterList","parameters":[],"src":"572:2:26"},"src":"556:19:26"},{"constant":true,"documentation":{"id":11021,"nodeType":"StructuredDocumentation","src":"864:213:26","text":"@dev Equivalent to: `uint72(bytes9(keccak256(\"_REENTRANCY_GUARD_SLOT\")))`.\n 9 bytes is large enough to avoid collisions with lower slots,\n but not too large to result in excessive bytecode bloat."},"id":11024,"mutability":"constant","name":"_REENTRANCY_GUARD_SLOT","nameLocation":"1107:22:26","nodeType":"VariableDeclaration","scope":11038,"src":"1082:70:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078393239656565313439623462643231323638","id":11023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1132:20:26","typeDescriptions":{"typeIdentifier":"t_rational_2704676748321268830824_by_1","typeString":"int_const 2704676748321268830824"},"value":"0x929eee149b4bd21268"},"visibility":"private"},{"body":{"id":11030,"nodeType":"Block","src":"1522:442:26","statements":[{"AST":{"nativeSrc":"1584:236:26","nodeType":"YulBlock","src":"1584:236:26","statements":[{"body":{"nativeSrc":"1646:110:26","nodeType":"YulBlock","src":"1646:110:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1671:4:26","nodeType":"YulLiteral","src":"1671:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1677:10:26","nodeType":"YulLiteral","src":"1677:10:26","type":"","value":"0xab143c06"}],"functionName":{"name":"mstore","nativeSrc":"1664:6:26","nodeType":"YulIdentifier","src":"1664:6:26"},"nativeSrc":"1664:24:26","nodeType":"YulFunctionCall","src":"1664:24:26"},"nativeSrc":"1664:24:26","nodeType":"YulExpressionStatement","src":"1664:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1731:4:26","nodeType":"YulLiteral","src":"1731:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1737:4:26","nodeType":"YulLiteral","src":"1737:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"1724:6:26","nodeType":"YulIdentifier","src":"1724:6:26"},"nativeSrc":"1724:18:26","nodeType":"YulFunctionCall","src":"1724:18:26"},"nativeSrc":"1724:18:26","nodeType":"YulExpressionStatement","src":"1724:18:26"}]},"condition":{"arguments":[{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1610:22:26","nodeType":"YulIdentifier","src":"1610:22:26"}],"functionName":{"name":"sload","nativeSrc":"1604:5:26","nodeType":"YulIdentifier","src":"1604:5:26"},"nativeSrc":"1604:29:26","nodeType":"YulFunctionCall","src":"1604:29:26"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"1635:7:26","nodeType":"YulIdentifier","src":"1635:7:26"},"nativeSrc":"1635:9:26","nodeType":"YulFunctionCall","src":"1635:9:26"}],"functionName":{"name":"eq","nativeSrc":"1601:2:26","nodeType":"YulIdentifier","src":"1601:2:26"},"nativeSrc":"1601:44:26","nodeType":"YulFunctionCall","src":"1601:44:26"},"nativeSrc":"1598:158:26","nodeType":"YulIf","src":"1598:158:26"},{"expression":{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1776:22:26","nodeType":"YulIdentifier","src":"1776:22:26"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"1800:7:26","nodeType":"YulIdentifier","src":"1800:7:26"},"nativeSrc":"1800:9:26","nodeType":"YulFunctionCall","src":"1800:9:26"}],"functionName":{"name":"sstore","nativeSrc":"1769:6:26","nodeType":"YulIdentifier","src":"1769:6:26"},"nativeSrc":"1769:41:26","nodeType":"YulFunctionCall","src":"1769:41:26"},"nativeSrc":"1769:41:26","nodeType":"YulExpressionStatement","src":"1769:41:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11024,"isOffset":false,"isSlot":false,"src":"1610:22:26","valueSize":1},{"declaration":11024,"isOffset":false,"isSlot":false,"src":"1776:22:26","valueSize":1}],"id":11027,"nodeType":"InlineAssembly","src":"1575:245:26"},{"id":11028,"nodeType":"PlaceholderStatement","src":"1829:1:26"},{"AST":{"nativeSrc":"1892:66:26","nodeType":"YulBlock","src":"1892:66:26","statements":[{"expression":{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1913:22:26","nodeType":"YulIdentifier","src":"1913:22:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"1937:8:26","nodeType":"YulIdentifier","src":"1937:8:26"},"nativeSrc":"1937:10:26","nodeType":"YulFunctionCall","src":"1937:10:26"}],"functionName":{"name":"sstore","nativeSrc":"1906:6:26","nodeType":"YulIdentifier","src":"1906:6:26"},"nativeSrc":"1906:42:26","nodeType":"YulFunctionCall","src":"1906:42:26"},"nativeSrc":"1906:42:26","nodeType":"YulExpressionStatement","src":"1906:42:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11024,"isOffset":false,"isSlot":false,"src":"1913:22:26","valueSize":1}],"id":11029,"nodeType":"InlineAssembly","src":"1883:75:26"}]},"documentation":{"id":11025,"nodeType":"StructuredDocumentation","src":"1442:43:26","text":"@dev Guards a function from reentrancy."},"id":11031,"name":"nonReentrant","nameLocation":"1499:12:26","nodeType":"ModifierDefinition","parameters":{"id":11026,"nodeType":"ParameterList","parameters":[],"src":"1511:2:26"},"src":"1490:474:26","virtual":true,"visibility":"internal"},{"body":{"id":11036,"nodeType":"Block","src":"2069:261:26","statements":[{"AST":{"nativeSrc":"2131:182:26","nodeType":"YulBlock","src":"2131:182:26","statements":[{"body":{"nativeSrc":"2193:110:26","nodeType":"YulBlock","src":"2193:110:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2218:4:26","nodeType":"YulLiteral","src":"2218:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2224:10:26","nodeType":"YulLiteral","src":"2224:10:26","type":"","value":"0xab143c06"}],"functionName":{"name":"mstore","nativeSrc":"2211:6:26","nodeType":"YulIdentifier","src":"2211:6:26"},"nativeSrc":"2211:24:26","nodeType":"YulFunctionCall","src":"2211:24:26"},"nativeSrc":"2211:24:26","nodeType":"YulExpressionStatement","src":"2211:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2278:4:26","nodeType":"YulLiteral","src":"2278:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"2284:4:26","nodeType":"YulLiteral","src":"2284:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"2271:6:26","nodeType":"YulIdentifier","src":"2271:6:26"},"nativeSrc":"2271:18:26","nodeType":"YulFunctionCall","src":"2271:18:26"},"nativeSrc":"2271:18:26","nodeType":"YulExpressionStatement","src":"2271:18:26"}]},"condition":{"arguments":[{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"2157:22:26","nodeType":"YulIdentifier","src":"2157:22:26"}],"functionName":{"name":"sload","nativeSrc":"2151:5:26","nodeType":"YulIdentifier","src":"2151:5:26"},"nativeSrc":"2151:29:26","nodeType":"YulFunctionCall","src":"2151:29:26"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"2182:7:26","nodeType":"YulIdentifier","src":"2182:7:26"},"nativeSrc":"2182:9:26","nodeType":"YulFunctionCall","src":"2182:9:26"}],"functionName":{"name":"eq","nativeSrc":"2148:2:26","nodeType":"YulIdentifier","src":"2148:2:26"},"nativeSrc":"2148:44:26","nodeType":"YulFunctionCall","src":"2148:44:26"},"nativeSrc":"2145:158:26","nodeType":"YulIf","src":"2145:158:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11024,"isOffset":false,"isSlot":false,"src":"2157:22:26","valueSize":1}],"id":11034,"nodeType":"InlineAssembly","src":"2122:191:26"},{"id":11035,"nodeType":"PlaceholderStatement","src":"2322:1:26"}]},"documentation":{"id":11032,"nodeType":"StructuredDocumentation","src":"1970:58:26","text":"@dev Guards a view function from read-only reentrancy."},"id":11037,"name":"nonReadReentrant","nameLocation":"2042:16:26","nodeType":"ModifierDefinition","parameters":{"id":11033,"nodeType":"ParameterList","parameters":[],"src":"2058:2:26"},"src":"2033:297:26","virtual":true,"visibility":"internal"}],"scope":11039,"src":"191:2141:26","usedErrors":[11020],"usedEvents":[]}],"src":"32:2301:26"},"id":26},"@solady/utils/SafeTransferLib.sol":{"ast":{"absolutePath":"@solady/utils/SafeTransferLib.sol","exportedSymbols":{"SafeTransferLib":[11372]},"id":11373,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11040,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:27"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeTransferLib","contractDependencies":[],"contractKind":"library","documentation":{"id":11041,"nodeType":"StructuredDocumentation","src":"57:644:27","text":"@notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)\n @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\n @dev Note:\n - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.\n - For ERC20s, this implementation won't check that a token has code,\n responsibility is delegated to the caller."},"fullyImplemented":true,"id":11372,"linearizedBaseContracts":[11372],"name":"SafeTransferLib","nameLocation":"709:15:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":11042,"nodeType":"StructuredDocumentation","src":"1014:37:27","text":"@dev The ETH transfer has failed."},"errorSelector":"b12d13eb","id":11044,"name":"ETHTransferFailed","nameLocation":"1062:17:27","nodeType":"ErrorDefinition","parameters":{"id":11043,"nodeType":"ParameterList","parameters":[],"src":"1079:2:27"},"src":"1056:26:27"},{"documentation":{"id":11045,"nodeType":"StructuredDocumentation","src":"1088:45:27","text":"@dev The ERC20 `transferFrom` has failed."},"errorSelector":"7939f424","id":11047,"name":"TransferFromFailed","nameLocation":"1144:18:27","nodeType":"ErrorDefinition","parameters":{"id":11046,"nodeType":"ParameterList","parameters":[],"src":"1162:2:27"},"src":"1138:27:27"},{"documentation":{"id":11048,"nodeType":"StructuredDocumentation","src":"1171:41:27","text":"@dev The ERC20 `transfer` has failed."},"errorSelector":"90b8ec18","id":11050,"name":"TransferFailed","nameLocation":"1223:14:27","nodeType":"ErrorDefinition","parameters":{"id":11049,"nodeType":"ParameterList","parameters":[],"src":"1237:2:27"},"src":"1217:23:27"},{"documentation":{"id":11051,"nodeType":"StructuredDocumentation","src":"1246:40:27","text":"@dev The ERC20 `approve` has failed."},"errorSelector":"3e3f8f73","id":11053,"name":"ApproveFailed","nameLocation":"1297:13:27","nodeType":"ErrorDefinition","parameters":{"id":11052,"nodeType":"ParameterList","parameters":[],"src":"1310:2:27"},"src":"1291:22:27"},{"documentation":{"id":11054,"nodeType":"StructuredDocumentation","src":"1319:42:27","text":"@dev The Permit2 operation has failed."},"errorSelector":"6b836e6b","id":11056,"name":"Permit2Failed","nameLocation":"1372:13:27","nodeType":"ErrorDefinition","parameters":{"id":11055,"nodeType":"ParameterList","parameters":[],"src":"1385:2:27"},"src":"1366:22:27"},{"documentation":{"id":11057,"nodeType":"StructuredDocumentation","src":"1394:59:27","text":"@dev The Permit2 amount must be less than `2**160 - 1`."},"errorSelector":"8757f0fd","id":11059,"name":"Permit2AmountOverflow","nameLocation":"1464:21:27","nodeType":"ErrorDefinition","parameters":{"id":11058,"nodeType":"ParameterList","parameters":[],"src":"1485:2:27"},"src":"1458:30:27"},{"constant":true,"documentation":{"id":11060,"nodeType":"StructuredDocumentation","src":"1777:92:27","text":"@dev Suggested gas stipend for contract receiving ETH that disallows any storage writes."},"id":11063,"mutability":"constant","name":"GAS_STIPEND_NO_STORAGE_WRITES","nameLocation":"1900:29:27","nodeType":"VariableDeclaration","scope":11372,"src":"1874:62:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11061,"name":"uint256","nodeType":"ElementaryTypeName","src":"1874:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32333030","id":11062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1932:4:27","typeDescriptions":{"typeIdentifier":"t_rational_2300_by_1","typeString":"int_const 2300"},"value":"2300"},"visibility":"internal"},{"constant":true,"documentation":{"id":11064,"nodeType":"StructuredDocumentation","src":"1943:144:27","text":"@dev Suggested gas stipend for contract receiving ETH to perform a few\n storage reads and writes, but low enough to prevent griefing."},"id":11067,"mutability":"constant","name":"GAS_STIPEND_NO_GRIEF","nameLocation":"2118:20:27","nodeType":"VariableDeclaration","scope":11372,"src":"2092:55:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11065,"name":"uint256","nodeType":"ElementaryTypeName","src":"2092:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030303030","id":11066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:6:27","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"},"visibility":"internal"},{"constant":true,"documentation":{"id":11068,"nodeType":"StructuredDocumentation","src":"2154:79:27","text":"@dev The unique EIP-712 domain domain separator for the DAI token contract."},"id":11071,"mutability":"constant","name":"DAI_DOMAIN_SEPARATOR","nameLocation":"2264:20:27","nodeType":"VariableDeclaration","scope":11372,"src":"2238:123:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2238:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307864626238636634326531656362303238626533663364626339323265316438373862393633663431316463333838636564353031363031633630663763366637","id":11070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2295:66:27","typeDescriptions":{"typeIdentifier":"t_rational_99383044164297460920199564169379472118763403594000230800569066591923778078455_by_1","typeString":"int_const 9938...(69 digits omitted)...8455"},"value":"0xdbb8cf42e1ecb028be3f3dbc922e1d878b963f411dc388ced501601c60f7c6f7"},"visibility":"internal"},{"constant":true,"documentation":{"id":11072,"nodeType":"StructuredDocumentation","src":"2368:64:27","text":"@dev The address for the WETH9 contract on Ethereum mainnet."},"id":11075,"mutability":"constant","name":"WETH9","nameLocation":"2463:5:27","nodeType":"VariableDeclaration","scope":11372,"src":"2437:76:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11073,"name":"address","nodeType":"ElementaryTypeName","src":"2437:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843303261614133396232323346453844304130653543344632376541443930383343373536436332","id":11074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2471:42:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},"visibility":"internal"},{"constant":true,"documentation":{"id":11076,"nodeType":"StructuredDocumentation","src":"2520:185:27","text":"@dev The canonical Permit2 address.\n [Github](https://github.com/Uniswap/permit2)\n [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)"},"id":11079,"mutability":"constant","name":"PERMIT2","nameLocation":"2736:7:27","nodeType":"VariableDeclaration","scope":11372,"src":"2710:78:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11077,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030323244343733303330463131366444454539463642343361433738424133","id":11078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2746:42:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"visibility":"internal"},{"body":{"id":11088,"nodeType":"Block","src":"4093:280:27","statements":[{"AST":{"nativeSrc":"4155:212:27","nodeType":"YulBlock","src":"4155:212:27","statements":[{"body":{"nativeSrc":"4240:117:27","nodeType":"YulBlock","src":"4240:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4265:4:27","nodeType":"YulLiteral","src":"4265:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4271:10:27","nodeType":"YulLiteral","src":"4271:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"4258:6:27","nodeType":"YulIdentifier","src":"4258:6:27"},"nativeSrc":"4258:24:27","nodeType":"YulFunctionCall","src":"4258:24:27"},"nativeSrc":"4258:24:27","nodeType":"YulExpressionStatement","src":"4258:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4332:4:27","nodeType":"YulLiteral","src":"4332:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4338:4:27","nodeType":"YulLiteral","src":"4338:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4325:6:27","nodeType":"YulIdentifier","src":"4325:6:27"},"nativeSrc":"4325:18:27","nodeType":"YulFunctionCall","src":"4325:18:27"},"nativeSrc":"4325:18:27","nodeType":"YulExpressionStatement","src":"4325:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"4184:3:27","nodeType":"YulIdentifier","src":"4184:3:27"},"nativeSrc":"4184:5:27","nodeType":"YulFunctionCall","src":"4184:5:27"},{"name":"to","nativeSrc":"4191:2:27","nodeType":"YulIdentifier","src":"4191:2:27"},{"name":"amount","nativeSrc":"4195:6:27","nodeType":"YulIdentifier","src":"4195:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4203:8:27","nodeType":"YulIdentifier","src":"4203:8:27"},"nativeSrc":"4203:10:27","nodeType":"YulFunctionCall","src":"4203:10:27"},{"kind":"number","nativeSrc":"4215:4:27","nodeType":"YulLiteral","src":"4215:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4221:8:27","nodeType":"YulIdentifier","src":"4221:8:27"},"nativeSrc":"4221:10:27","nodeType":"YulFunctionCall","src":"4221:10:27"},{"kind":"number","nativeSrc":"4233:4:27","nodeType":"YulLiteral","src":"4233:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"4179:4:27","nodeType":"YulIdentifier","src":"4179:4:27"},"nativeSrc":"4179:59:27","nodeType":"YulFunctionCall","src":"4179:59:27"}],"functionName":{"name":"iszero","nativeSrc":"4172:6:27","nodeType":"YulIdentifier","src":"4172:6:27"},"nativeSrc":"4172:67:27","nodeType":"YulFunctionCall","src":"4172:67:27"},"nativeSrc":"4169:188:27","nodeType":"YulIf","src":"4169:188:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11084,"isOffset":false,"isSlot":false,"src":"4195:6:27","valueSize":1},{"declaration":11082,"isOffset":false,"isSlot":false,"src":"4191:2:27","valueSize":1}],"id":11087,"nodeType":"InlineAssembly","src":"4146:221:27"}]},"documentation":{"id":11080,"nodeType":"StructuredDocumentation","src":"3981:45:27","text":"@dev Sends `amount` (in wei) ETH to `to`."},"id":11089,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferETH","nameLocation":"4040:15:27","nodeType":"FunctionDefinition","parameters":{"id":11085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11082,"mutability":"mutable","name":"to","nameLocation":"4064:2:27","nodeType":"VariableDeclaration","scope":11089,"src":"4056:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11081,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11084,"mutability":"mutable","name":"amount","nameLocation":"4076:6:27","nodeType":"VariableDeclaration","scope":11089,"src":"4068:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11083,"name":"uint256","nodeType":"ElementaryTypeName","src":"4068:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4055:28:27"},"returnParameters":{"id":11086,"nodeType":"ParameterList","parameters":[],"src":"4093:0:27"},"scope":11372,"src":"4031:342:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11096,"nodeType":"Block","src":"4492:357:27","statements":[{"AST":{"nativeSrc":"4554:289:27","nodeType":"YulBlock","src":"4554:289:27","statements":[{"body":{"nativeSrc":"4716:117:27","nodeType":"YulBlock","src":"4716:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4741:4:27","nodeType":"YulLiteral","src":"4741:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4747:10:27","nodeType":"YulLiteral","src":"4747:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"4734:6:27","nodeType":"YulIdentifier","src":"4734:6:27"},"nativeSrc":"4734:24:27","nodeType":"YulFunctionCall","src":"4734:24:27"},"nativeSrc":"4734:24:27","nodeType":"YulExpressionStatement","src":"4734:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4808:4:27","nodeType":"YulLiteral","src":"4808:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4814:4:27","nodeType":"YulLiteral","src":"4814:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4801:6:27","nodeType":"YulIdentifier","src":"4801:6:27"},"nativeSrc":"4801:18:27","nodeType":"YulFunctionCall","src":"4801:18:27"},"nativeSrc":"4801:18:27","nodeType":"YulExpressionStatement","src":"4801:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"4653:3:27","nodeType":"YulIdentifier","src":"4653:3:27"},"nativeSrc":"4653:5:27","nodeType":"YulFunctionCall","src":"4653:5:27"},{"name":"to","nativeSrc":"4660:2:27","nodeType":"YulIdentifier","src":"4660:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"4664:11:27","nodeType":"YulIdentifier","src":"4664:11:27"},"nativeSrc":"4664:13:27","nodeType":"YulFunctionCall","src":"4664:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4679:8:27","nodeType":"YulIdentifier","src":"4679:8:27"},"nativeSrc":"4679:10:27","nodeType":"YulFunctionCall","src":"4679:10:27"},{"kind":"number","nativeSrc":"4691:4:27","nodeType":"YulLiteral","src":"4691:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4697:8:27","nodeType":"YulIdentifier","src":"4697:8:27"},"nativeSrc":"4697:10:27","nodeType":"YulFunctionCall","src":"4697:10:27"},{"kind":"number","nativeSrc":"4709:4:27","nodeType":"YulLiteral","src":"4709:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"4648:4:27","nodeType":"YulIdentifier","src":"4648:4:27"},"nativeSrc":"4648:66:27","nodeType":"YulFunctionCall","src":"4648:66:27"}],"functionName":{"name":"iszero","nativeSrc":"4641:6:27","nodeType":"YulIdentifier","src":"4641:6:27"},"nativeSrc":"4641:74:27","nodeType":"YulFunctionCall","src":"4641:74:27"},"nativeSrc":"4638:195:27","nodeType":"YulIf","src":"4638:195:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11092,"isOffset":false,"isSlot":false,"src":"4660:2:27","valueSize":1}],"id":11095,"nodeType":"InlineAssembly","src":"4545:298:27"}]},"documentation":{"id":11090,"nodeType":"StructuredDocumentation","src":"4379:59:27","text":"@dev Sends all the ETH in the current contract to `to`."},"id":11097,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAllETH","nameLocation":"4452:18:27","nodeType":"FunctionDefinition","parameters":{"id":11093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11092,"mutability":"mutable","name":"to","nameLocation":"4479:2:27","nodeType":"VariableDeclaration","scope":11097,"src":"4471:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11091,"name":"address","nodeType":"ElementaryTypeName","src":"4471:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4470:12:27"},"returnParameters":{"id":11094,"nodeType":"ParameterList","parameters":[],"src":"4492:0:27"},"scope":11372,"src":"4443:406:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11108,"nodeType":"Block","src":"5019:644:27","statements":[{"AST":{"nativeSrc":"5081:576:27","nodeType":"YulBlock","src":"5081:576:27","statements":[{"body":{"nativeSrc":"5124:117:27","nodeType":"YulBlock","src":"5124:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5149:4:27","nodeType":"YulLiteral","src":"5149:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5155:10:27","nodeType":"YulLiteral","src":"5155:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"5142:6:27","nodeType":"YulIdentifier","src":"5142:6:27"},"nativeSrc":"5142:24:27","nodeType":"YulFunctionCall","src":"5142:24:27"},"nativeSrc":"5142:24:27","nodeType":"YulExpressionStatement","src":"5142:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5216:4:27","nodeType":"YulLiteral","src":"5216:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5222:4:27","nodeType":"YulLiteral","src":"5222:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5209:6:27","nodeType":"YulIdentifier","src":"5209:6:27"},"nativeSrc":"5209:18:27","nodeType":"YulFunctionCall","src":"5209:18:27"},"nativeSrc":"5209:18:27","nodeType":"YulExpressionStatement","src":"5209:18:27"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"5101:11:27","nodeType":"YulIdentifier","src":"5101:11:27"},"nativeSrc":"5101:13:27","nodeType":"YulFunctionCall","src":"5101:13:27"},{"name":"amount","nativeSrc":"5116:6:27","nodeType":"YulIdentifier","src":"5116:6:27"}],"functionName":{"name":"lt","nativeSrc":"5098:2:27","nodeType":"YulIdentifier","src":"5098:2:27"},"nativeSrc":"5098:25:27","nodeType":"YulFunctionCall","src":"5098:25:27"},"nativeSrc":"5095:146:27","nodeType":"YulIf","src":"5095:146:27"},{"body":{"nativeSrc":"5330:317:27","nodeType":"YulBlock","src":"5330:317:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5355:4:27","nodeType":"YulLiteral","src":"5355:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"5361:2:27","nodeType":"YulIdentifier","src":"5361:2:27"}],"functionName":{"name":"mstore","nativeSrc":"5348:6:27","nodeType":"YulIdentifier","src":"5348:6:27"},"nativeSrc":"5348:16:27","nodeType":"YulFunctionCall","src":"5348:16:27"},"nativeSrc":"5348:16:27","nodeType":"YulExpressionStatement","src":"5348:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5428:4:27","nodeType":"YulLiteral","src":"5428:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"5434:4:27","nodeType":"YulLiteral","src":"5434:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"5420:7:27","nodeType":"YulIdentifier","src":"5420:7:27"},"nativeSrc":"5420:19:27","nodeType":"YulFunctionCall","src":"5420:19:27"},"nativeSrc":"5420:19:27","nodeType":"YulExpressionStatement","src":"5420:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5484:4:27","nodeType":"YulLiteral","src":"5484:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"5490:4:27","nodeType":"YulLiteral","src":"5490:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"5476:7:27","nodeType":"YulIdentifier","src":"5476:7:27"},"nativeSrc":"5476:19:27","nodeType":"YulFunctionCall","src":"5476:19:27"},"nativeSrc":"5476:19:27","nodeType":"YulExpressionStatement","src":"5476:19:27"},{"body":{"nativeSrc":"5576:34:27","nodeType":"YulBlock","src":"5576:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5585:8:27","nodeType":"YulIdentifier","src":"5585:8:27"},"nativeSrc":"5585:10:27","nodeType":"YulFunctionCall","src":"5585:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5597:8:27","nodeType":"YulIdentifier","src":"5597:8:27"},"nativeSrc":"5597:10:27","nodeType":"YulFunctionCall","src":"5597:10:27"}],"functionName":{"name":"revert","nativeSrc":"5578:6:27","nodeType":"YulIdentifier","src":"5578:6:27"},"nativeSrc":"5578:30:27","nodeType":"YulFunctionCall","src":"5578:30:27"},"nativeSrc":"5578:30:27","nodeType":"YulExpressionStatement","src":"5578:30:27"}]},"condition":{"arguments":[{"arguments":[{"name":"amount","nativeSrc":"5555:6:27","nodeType":"YulIdentifier","src":"5555:6:27"},{"kind":"number","nativeSrc":"5563:4:27","nodeType":"YulLiteral","src":"5563:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"5569:4:27","nodeType":"YulLiteral","src":"5569:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"5548:6:27","nodeType":"YulIdentifier","src":"5548:6:27"},"nativeSrc":"5548:26:27","nodeType":"YulFunctionCall","src":"5548:26:27"}],"functionName":{"name":"iszero","nativeSrc":"5541:6:27","nodeType":"YulIdentifier","src":"5541:6:27"},"nativeSrc":"5541:34:27","nodeType":"YulFunctionCall","src":"5541:34:27"},"nativeSrc":"5538:72:27","nodeType":"YulIf","src":"5538:72:27"}]},"condition":{"arguments":[{"arguments":[{"name":"gasStipend","nativeSrc":"5269:10:27","nodeType":"YulIdentifier","src":"5269:10:27"},{"name":"to","nativeSrc":"5281:2:27","nodeType":"YulIdentifier","src":"5281:2:27"},{"name":"amount","nativeSrc":"5285:6:27","nodeType":"YulIdentifier","src":"5285:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5293:8:27","nodeType":"YulIdentifier","src":"5293:8:27"},"nativeSrc":"5293:10:27","nodeType":"YulFunctionCall","src":"5293:10:27"},{"kind":"number","nativeSrc":"5305:4:27","nodeType":"YulLiteral","src":"5305:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5311:8:27","nodeType":"YulIdentifier","src":"5311:8:27"},"nativeSrc":"5311:10:27","nodeType":"YulFunctionCall","src":"5311:10:27"},{"kind":"number","nativeSrc":"5323:4:27","nodeType":"YulLiteral","src":"5323:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"5264:4:27","nodeType":"YulIdentifier","src":"5264:4:27"},"nativeSrc":"5264:64:27","nodeType":"YulFunctionCall","src":"5264:64:27"}],"functionName":{"name":"iszero","nativeSrc":"5257:6:27","nodeType":"YulIdentifier","src":"5257:6:27"},"nativeSrc":"5257:72:27","nodeType":"YulFunctionCall","src":"5257:72:27"},"nativeSrc":"5254:393:27","nodeType":"YulIf","src":"5254:393:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11102,"isOffset":false,"isSlot":false,"src":"5116:6:27","valueSize":1},{"declaration":11102,"isOffset":false,"isSlot":false,"src":"5285:6:27","valueSize":1},{"declaration":11102,"isOffset":false,"isSlot":false,"src":"5555:6:27","valueSize":1},{"declaration":11104,"isOffset":false,"isSlot":false,"src":"5269:10:27","valueSize":1},{"declaration":11100,"isOffset":false,"isSlot":false,"src":"5281:2:27","valueSize":1},{"declaration":11100,"isOffset":false,"isSlot":false,"src":"5361:2:27","valueSize":1}],"id":11107,"nodeType":"InlineAssembly","src":"5072:585:27"}]},"documentation":{"id":11098,"nodeType":"StructuredDocumentation","src":"4855:72:27","text":"@dev Force sends `amount` (in wei) ETH to `to`, with a `gasStipend`."},"id":11109,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferETH","nameLocation":"4941:20:27","nodeType":"FunctionDefinition","parameters":{"id":11105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11100,"mutability":"mutable","name":"to","nameLocation":"4970:2:27","nodeType":"VariableDeclaration","scope":11109,"src":"4962:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11099,"name":"address","nodeType":"ElementaryTypeName","src":"4962:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11102,"mutability":"mutable","name":"amount","nameLocation":"4982:6:27","nodeType":"VariableDeclaration","scope":11109,"src":"4974:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11101,"name":"uint256","nodeType":"ElementaryTypeName","src":"4974:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11104,"mutability":"mutable","name":"gasStipend","nameLocation":"4998:10:27","nodeType":"VariableDeclaration","scope":11109,"src":"4990:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11103,"name":"uint256","nodeType":"ElementaryTypeName","src":"4990:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4961:48:27"},"returnParameters":{"id":11106,"nodeType":"ParameterList","parameters":[],"src":"5019:0:27"},"scope":11372,"src":"4932:731:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11118,"nodeType":"Block","src":"5834:499:27","statements":[{"AST":{"nativeSrc":"5896:431:27","nodeType":"YulBlock","src":"5896:431:27","statements":[{"body":{"nativeSrc":"5993:324:27","nodeType":"YulBlock","src":"5993:324:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6018:4:27","nodeType":"YulLiteral","src":"6018:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"6024:2:27","nodeType":"YulIdentifier","src":"6024:2:27"}],"functionName":{"name":"mstore","nativeSrc":"6011:6:27","nodeType":"YulIdentifier","src":"6011:6:27"},"nativeSrc":"6011:16:27","nodeType":"YulFunctionCall","src":"6011:16:27"},"nativeSrc":"6011:16:27","nodeType":"YulExpressionStatement","src":"6011:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6091:4:27","nodeType":"YulLiteral","src":"6091:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6097:4:27","nodeType":"YulLiteral","src":"6097:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"6083:7:27","nodeType":"YulIdentifier","src":"6083:7:27"},"nativeSrc":"6083:19:27","nodeType":"YulFunctionCall","src":"6083:19:27"},"nativeSrc":"6083:19:27","nodeType":"YulExpressionStatement","src":"6083:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6147:4:27","nodeType":"YulLiteral","src":"6147:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"6153:4:27","nodeType":"YulLiteral","src":"6153:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"6139:7:27","nodeType":"YulIdentifier","src":"6139:7:27"},"nativeSrc":"6139:19:27","nodeType":"YulFunctionCall","src":"6139:19:27"},"nativeSrc":"6139:19:27","nodeType":"YulExpressionStatement","src":"6139:19:27"},{"body":{"nativeSrc":"6246:34:27","nodeType":"YulBlock","src":"6246:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6255:8:27","nodeType":"YulIdentifier","src":"6255:8:27"},"nativeSrc":"6255:10:27","nodeType":"YulFunctionCall","src":"6255:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6267:8:27","nodeType":"YulIdentifier","src":"6267:8:27"},"nativeSrc":"6267:10:27","nodeType":"YulFunctionCall","src":"6267:10:27"}],"functionName":{"name":"revert","nativeSrc":"6248:6:27","nodeType":"YulIdentifier","src":"6248:6:27"},"nativeSrc":"6248:30:27","nodeType":"YulFunctionCall","src":"6248:30:27"},"nativeSrc":"6248:30:27","nodeType":"YulExpressionStatement","src":"6248:30:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"6218:11:27","nodeType":"YulIdentifier","src":"6218:11:27"},"nativeSrc":"6218:13:27","nodeType":"YulFunctionCall","src":"6218:13:27"},{"kind":"number","nativeSrc":"6233:4:27","nodeType":"YulLiteral","src":"6233:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6239:4:27","nodeType":"YulLiteral","src":"6239:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"6211:6:27","nodeType":"YulIdentifier","src":"6211:6:27"},"nativeSrc":"6211:33:27","nodeType":"YulFunctionCall","src":"6211:33:27"}],"functionName":{"name":"iszero","nativeSrc":"6204:6:27","nodeType":"YulIdentifier","src":"6204:6:27"},"nativeSrc":"6204:41:27","nodeType":"YulFunctionCall","src":"6204:41:27"},"nativeSrc":"6201:79:27","nodeType":"YulIf","src":"6201:79:27"}]},"condition":{"arguments":[{"arguments":[{"name":"gasStipend","nativeSrc":"5925:10:27","nodeType":"YulIdentifier","src":"5925:10:27"},{"name":"to","nativeSrc":"5937:2:27","nodeType":"YulIdentifier","src":"5937:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"5941:11:27","nodeType":"YulIdentifier","src":"5941:11:27"},"nativeSrc":"5941:13:27","nodeType":"YulFunctionCall","src":"5941:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5956:8:27","nodeType":"YulIdentifier","src":"5956:8:27"},"nativeSrc":"5956:10:27","nodeType":"YulFunctionCall","src":"5956:10:27"},{"kind":"number","nativeSrc":"5968:4:27","nodeType":"YulLiteral","src":"5968:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5974:8:27","nodeType":"YulIdentifier","src":"5974:8:27"},"nativeSrc":"5974:10:27","nodeType":"YulFunctionCall","src":"5974:10:27"},{"kind":"number","nativeSrc":"5986:4:27","nodeType":"YulLiteral","src":"5986:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"5920:4:27","nodeType":"YulIdentifier","src":"5920:4:27"},"nativeSrc":"5920:71:27","nodeType":"YulFunctionCall","src":"5920:71:27"}],"functionName":{"name":"iszero","nativeSrc":"5913:6:27","nodeType":"YulIdentifier","src":"5913:6:27"},"nativeSrc":"5913:79:27","nodeType":"YulFunctionCall","src":"5913:79:27"},"nativeSrc":"5910:407:27","nodeType":"YulIf","src":"5910:407:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11114,"isOffset":false,"isSlot":false,"src":"5925:10:27","valueSize":1},{"declaration":11112,"isOffset":false,"isSlot":false,"src":"5937:2:27","valueSize":1},{"declaration":11112,"isOffset":false,"isSlot":false,"src":"6024:2:27","valueSize":1}],"id":11117,"nodeType":"InlineAssembly","src":"5887:440:27"}]},"documentation":{"id":11110,"nodeType":"StructuredDocumentation","src":"5669:86:27","text":"@dev Force sends all the ETH in the current contract to `to`, with a `gasStipend`."},"id":11119,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferAllETH","nameLocation":"5769:23:27","nodeType":"FunctionDefinition","parameters":{"id":11115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11112,"mutability":"mutable","name":"to","nameLocation":"5801:2:27","nodeType":"VariableDeclaration","scope":11119,"src":"5793:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11111,"name":"address","nodeType":"ElementaryTypeName","src":"5793:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11114,"mutability":"mutable","name":"gasStipend","nameLocation":"5813:10:27","nodeType":"VariableDeclaration","scope":11119,"src":"5805:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11113,"name":"uint256","nodeType":"ElementaryTypeName","src":"5805:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5792:32:27"},"returnParameters":{"id":11116,"nodeType":"ParameterList","parameters":[],"src":"5834:0:27"},"scope":11372,"src":"5760:573:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11128,"nodeType":"Block","src":"6491:654:27","statements":[{"AST":{"nativeSrc":"6553:586:27","nodeType":"YulBlock","src":"6553:586:27","statements":[{"body":{"nativeSrc":"6596:117:27","nodeType":"YulBlock","src":"6596:117:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6621:4:27","nodeType":"YulLiteral","src":"6621:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6627:10:27","nodeType":"YulLiteral","src":"6627:10:27","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"6614:6:27","nodeType":"YulIdentifier","src":"6614:6:27"},"nativeSrc":"6614:24:27","nodeType":"YulFunctionCall","src":"6614:24:27"},"nativeSrc":"6614:24:27","nodeType":"YulExpressionStatement","src":"6614:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6688:4:27","nodeType":"YulLiteral","src":"6688:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6694:4:27","nodeType":"YulLiteral","src":"6694:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6681:6:27","nodeType":"YulIdentifier","src":"6681:6:27"},"nativeSrc":"6681:18:27","nodeType":"YulFunctionCall","src":"6681:18:27"},"nativeSrc":"6681:18:27","nodeType":"YulExpressionStatement","src":"6681:18:27"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"6573:11:27","nodeType":"YulIdentifier","src":"6573:11:27"},"nativeSrc":"6573:13:27","nodeType":"YulFunctionCall","src":"6573:13:27"},{"name":"amount","nativeSrc":"6588:6:27","nodeType":"YulIdentifier","src":"6588:6:27"}],"functionName":{"name":"lt","nativeSrc":"6570:2:27","nodeType":"YulIdentifier","src":"6570:2:27"},"nativeSrc":"6570:25:27","nodeType":"YulFunctionCall","src":"6570:25:27"},"nativeSrc":"6567:146:27","nodeType":"YulIf","src":"6567:146:27"},{"body":{"nativeSrc":"6812:317:27","nodeType":"YulBlock","src":"6812:317:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6837:4:27","nodeType":"YulLiteral","src":"6837:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"6843:2:27","nodeType":"YulIdentifier","src":"6843:2:27"}],"functionName":{"name":"mstore","nativeSrc":"6830:6:27","nodeType":"YulIdentifier","src":"6830:6:27"},"nativeSrc":"6830:16:27","nodeType":"YulFunctionCall","src":"6830:16:27"},"nativeSrc":"6830:16:27","nodeType":"YulExpressionStatement","src":"6830:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6910:4:27","nodeType":"YulLiteral","src":"6910:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6916:4:27","nodeType":"YulLiteral","src":"6916:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"6902:7:27","nodeType":"YulIdentifier","src":"6902:7:27"},"nativeSrc":"6902:19:27","nodeType":"YulFunctionCall","src":"6902:19:27"},"nativeSrc":"6902:19:27","nodeType":"YulExpressionStatement","src":"6902:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6966:4:27","nodeType":"YulLiteral","src":"6966:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"6972:4:27","nodeType":"YulLiteral","src":"6972:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"6958:7:27","nodeType":"YulIdentifier","src":"6958:7:27"},"nativeSrc":"6958:19:27","nodeType":"YulFunctionCall","src":"6958:19:27"},"nativeSrc":"6958:19:27","nodeType":"YulExpressionStatement","src":"6958:19:27"},{"body":{"nativeSrc":"7058:34:27","nodeType":"YulBlock","src":"7058:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7067:8:27","nodeType":"YulIdentifier","src":"7067:8:27"},"nativeSrc":"7067:10:27","nodeType":"YulFunctionCall","src":"7067:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7079:8:27","nodeType":"YulIdentifier","src":"7079:8:27"},"nativeSrc":"7079:10:27","nodeType":"YulFunctionCall","src":"7079:10:27"}],"functionName":{"name":"revert","nativeSrc":"7060:6:27","nodeType":"YulIdentifier","src":"7060:6:27"},"nativeSrc":"7060:30:27","nodeType":"YulFunctionCall","src":"7060:30:27"},"nativeSrc":"7060:30:27","nodeType":"YulExpressionStatement","src":"7060:30:27"}]},"condition":{"arguments":[{"arguments":[{"name":"amount","nativeSrc":"7037:6:27","nodeType":"YulIdentifier","src":"7037:6:27"},{"kind":"number","nativeSrc":"7045:4:27","nodeType":"YulLiteral","src":"7045:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7051:4:27","nodeType":"YulLiteral","src":"7051:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"7030:6:27","nodeType":"YulIdentifier","src":"7030:6:27"},"nativeSrc":"7030:26:27","nodeType":"YulFunctionCall","src":"7030:26:27"}],"functionName":{"name":"iszero","nativeSrc":"7023:6:27","nodeType":"YulIdentifier","src":"7023:6:27"},"nativeSrc":"7023:34:27","nodeType":"YulFunctionCall","src":"7023:34:27"},"nativeSrc":"7020:72:27","nodeType":"YulIf","src":"7020:72:27"}]},"condition":{"arguments":[{"arguments":[{"name":"GAS_STIPEND_NO_GRIEF","nativeSrc":"6741:20:27","nodeType":"YulIdentifier","src":"6741:20:27"},{"name":"to","nativeSrc":"6763:2:27","nodeType":"YulIdentifier","src":"6763:2:27"},{"name":"amount","nativeSrc":"6767:6:27","nodeType":"YulIdentifier","src":"6767:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6775:8:27","nodeType":"YulIdentifier","src":"6775:8:27"},"nativeSrc":"6775:10:27","nodeType":"YulFunctionCall","src":"6775:10:27"},{"kind":"number","nativeSrc":"6787:4:27","nodeType":"YulLiteral","src":"6787:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6793:8:27","nodeType":"YulIdentifier","src":"6793:8:27"},"nativeSrc":"6793:10:27","nodeType":"YulFunctionCall","src":"6793:10:27"},{"kind":"number","nativeSrc":"6805:4:27","nodeType":"YulLiteral","src":"6805:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"6736:4:27","nodeType":"YulIdentifier","src":"6736:4:27"},"nativeSrc":"6736:74:27","nodeType":"YulFunctionCall","src":"6736:74:27"}],"functionName":{"name":"iszero","nativeSrc":"6729:6:27","nodeType":"YulIdentifier","src":"6729:6:27"},"nativeSrc":"6729:82:27","nodeType":"YulFunctionCall","src":"6729:82:27"},"nativeSrc":"6726:403:27","nodeType":"YulIf","src":"6726:403:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11067,"isOffset":false,"isSlot":false,"src":"6741:20:27","valueSize":1},{"declaration":11124,"isOffset":false,"isSlot":false,"src":"6588:6:27","valueSize":1},{"declaration":11124,"isOffset":false,"isSlot":false,"src":"6767:6:27","valueSize":1},{"declaration":11124,"isOffset":false,"isSlot":false,"src":"7037:6:27","valueSize":1},{"declaration":11122,"isOffset":false,"isSlot":false,"src":"6763:2:27","valueSize":1},{"declaration":11122,"isOffset":false,"isSlot":false,"src":"6843:2:27","valueSize":1}],"id":11127,"nodeType":"InlineAssembly","src":"6544:595:27"}]},"documentation":{"id":11120,"nodeType":"StructuredDocumentation","src":"6339:80:27","text":"@dev Force sends `amount` (in wei) ETH to `to`, with `GAS_STIPEND_NO_GRIEF`."},"id":11129,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferETH","nameLocation":"6433:20:27","nodeType":"FunctionDefinition","parameters":{"id":11125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11122,"mutability":"mutable","name":"to","nameLocation":"6462:2:27","nodeType":"VariableDeclaration","scope":11129,"src":"6454:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11121,"name":"address","nodeType":"ElementaryTypeName","src":"6454:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11124,"mutability":"mutable","name":"amount","nameLocation":"6474:6:27","nodeType":"VariableDeclaration","scope":11129,"src":"6466:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11123,"name":"uint256","nodeType":"ElementaryTypeName","src":"6466:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6453:28:27"},"returnParameters":{"id":11126,"nodeType":"ParameterList","parameters":[],"src":"6491:0:27"},"scope":11372,"src":"6424:721:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11136,"nodeType":"Block","src":"7304:552:27","statements":[{"AST":{"nativeSrc":"7366:484:27","nodeType":"YulBlock","src":"7366:484:27","statements":[{"body":{"nativeSrc":"7516:324:27","nodeType":"YulBlock","src":"7516:324:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7541:4:27","nodeType":"YulLiteral","src":"7541:4:27","type":"","value":"0x00"},{"name":"to","nativeSrc":"7547:2:27","nodeType":"YulIdentifier","src":"7547:2:27"}],"functionName":{"name":"mstore","nativeSrc":"7534:6:27","nodeType":"YulIdentifier","src":"7534:6:27"},"nativeSrc":"7534:16:27","nodeType":"YulFunctionCall","src":"7534:16:27"},"nativeSrc":"7534:16:27","nodeType":"YulExpressionStatement","src":"7534:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7614:4:27","nodeType":"YulLiteral","src":"7614:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7620:4:27","nodeType":"YulLiteral","src":"7620:4:27","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"7606:7:27","nodeType":"YulIdentifier","src":"7606:7:27"},"nativeSrc":"7606:19:27","nodeType":"YulFunctionCall","src":"7606:19:27"},"nativeSrc":"7606:19:27","nodeType":"YulExpressionStatement","src":"7606:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7670:4:27","nodeType":"YulLiteral","src":"7670:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"7676:4:27","nodeType":"YulLiteral","src":"7676:4:27","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"7662:7:27","nodeType":"YulIdentifier","src":"7662:7:27"},"nativeSrc":"7662:19:27","nodeType":"YulFunctionCall","src":"7662:19:27"},"nativeSrc":"7662:19:27","nodeType":"YulExpressionStatement","src":"7662:19:27"},{"body":{"nativeSrc":"7769:34:27","nodeType":"YulBlock","src":"7769:34:27","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7778:8:27","nodeType":"YulIdentifier","src":"7778:8:27"},"nativeSrc":"7778:10:27","nodeType":"YulFunctionCall","src":"7778:10:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7790:8:27","nodeType":"YulIdentifier","src":"7790:8:27"},"nativeSrc":"7790:10:27","nodeType":"YulFunctionCall","src":"7790:10:27"}],"functionName":{"name":"revert","nativeSrc":"7771:6:27","nodeType":"YulIdentifier","src":"7771:6:27"},"nativeSrc":"7771:30:27","nodeType":"YulFunctionCall","src":"7771:30:27"},"nativeSrc":"7771:30:27","nodeType":"YulExpressionStatement","src":"7771:30:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"7741:11:27","nodeType":"YulIdentifier","src":"7741:11:27"},"nativeSrc":"7741:13:27","nodeType":"YulFunctionCall","src":"7741:13:27"},{"kind":"number","nativeSrc":"7756:4:27","nodeType":"YulLiteral","src":"7756:4:27","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7762:4:27","nodeType":"YulLiteral","src":"7762:4:27","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"7734:6:27","nodeType":"YulIdentifier","src":"7734:6:27"},"nativeSrc":"7734:33:27","nodeType":"YulFunctionCall","src":"7734:33:27"}],"functionName":{"name":"iszero","nativeSrc":"7727:6:27","nodeType":"YulIdentifier","src":"7727:6:27"},"nativeSrc":"7727:41:27","nodeType":"YulFunctionCall","src":"7727:41:27"},"nativeSrc":"7724:79:27","nodeType":"YulIf","src":"7724:79:27"}]},"condition":{"arguments":[{"arguments":[{"name":"GAS_STIPEND_NO_GRIEF","nativeSrc":"7438:20:27","nodeType":"YulIdentifier","src":"7438:20:27"},{"name":"to","nativeSrc":"7460:2:27","nodeType":"YulIdentifier","src":"7460:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"7464:11:27","nodeType":"YulIdentifier","src":"7464:11:27"},"nativeSrc":"7464:13:27","nodeType":"YulFunctionCall","src":"7464:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7479:8:27","nodeType":"YulIdentifier","src":"7479:8:27"},"nativeSrc":"7479:10:27","nodeType":"YulFunctionCall","src":"7479:10:27"},{"kind":"number","nativeSrc":"7491:4:27","nodeType":"YulLiteral","src":"7491:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7497:8:27","nodeType":"YulIdentifier","src":"7497:8:27"},"nativeSrc":"7497:10:27","nodeType":"YulFunctionCall","src":"7497:10:27"},{"kind":"number","nativeSrc":"7509:4:27","nodeType":"YulLiteral","src":"7509:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"7433:4:27","nodeType":"YulIdentifier","src":"7433:4:27"},"nativeSrc":"7433:81:27","nodeType":"YulFunctionCall","src":"7433:81:27"}],"functionName":{"name":"iszero","nativeSrc":"7426:6:27","nodeType":"YulIdentifier","src":"7426:6:27"},"nativeSrc":"7426:89:27","nodeType":"YulFunctionCall","src":"7426:89:27"},"nativeSrc":"7423:417:27","nodeType":"YulIf","src":"7423:417:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11067,"isOffset":false,"isSlot":false,"src":"7438:20:27","valueSize":1},{"declaration":11132,"isOffset":false,"isSlot":false,"src":"7460:2:27","valueSize":1},{"declaration":11132,"isOffset":false,"isSlot":false,"src":"7547:2:27","valueSize":1}],"id":11135,"nodeType":"InlineAssembly","src":"7357:493:27"}]},"documentation":{"id":11130,"nodeType":"StructuredDocumentation","src":"7151:94:27","text":"@dev Force sends all the ETH in the current contract to `to`, with `GAS_STIPEND_NO_GRIEF`."},"id":11137,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferAllETH","nameLocation":"7259:23:27","nodeType":"FunctionDefinition","parameters":{"id":11133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11132,"mutability":"mutable","name":"to","nameLocation":"7291:2:27","nodeType":"VariableDeclaration","scope":11137,"src":"7283:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11131,"name":"address","nodeType":"ElementaryTypeName","src":"7283:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7282:12:27"},"returnParameters":{"id":11134,"nodeType":"ParameterList","parameters":[],"src":"7304:0:27"},"scope":11372,"src":"7250:606:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11150,"nodeType":"Block","src":"8061:167:27","statements":[{"AST":{"nativeSrc":"8123:99:27","nodeType":"YulBlock","src":"8123:99:27","statements":[{"nativeSrc":"8137:75:27","nodeType":"YulAssignment","src":"8137:75:27","value":{"arguments":[{"name":"gasStipend","nativeSrc":"8153:10:27","nodeType":"YulIdentifier","src":"8153:10:27"},{"name":"to","nativeSrc":"8165:2:27","nodeType":"YulIdentifier","src":"8165:2:27"},{"name":"amount","nativeSrc":"8169:6:27","nodeType":"YulIdentifier","src":"8169:6:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8177:8:27","nodeType":"YulIdentifier","src":"8177:8:27"},"nativeSrc":"8177:10:27","nodeType":"YulFunctionCall","src":"8177:10:27"},{"kind":"number","nativeSrc":"8189:4:27","nodeType":"YulLiteral","src":"8189:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8195:8:27","nodeType":"YulIdentifier","src":"8195:8:27"},"nativeSrc":"8195:10:27","nodeType":"YulFunctionCall","src":"8195:10:27"},{"kind":"number","nativeSrc":"8207:4:27","nodeType":"YulLiteral","src":"8207:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"8148:4:27","nodeType":"YulIdentifier","src":"8148:4:27"},"nativeSrc":"8148:64:27","nodeType":"YulFunctionCall","src":"8148:64:27"},"variableNames":[{"name":"success","nativeSrc":"8137:7:27","nodeType":"YulIdentifier","src":"8137:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11142,"isOffset":false,"isSlot":false,"src":"8169:6:27","valueSize":1},{"declaration":11144,"isOffset":false,"isSlot":false,"src":"8153:10:27","valueSize":1},{"declaration":11147,"isOffset":false,"isSlot":false,"src":"8137:7:27","valueSize":1},{"declaration":11140,"isOffset":false,"isSlot":false,"src":"8165:2:27","valueSize":1}],"id":11149,"nodeType":"InlineAssembly","src":"8114:108:27"}]},"documentation":{"id":11138,"nodeType":"StructuredDocumentation","src":"7862:66:27","text":"@dev Sends `amount` (in wei) ETH to `to`, with a `gasStipend`."},"id":11151,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferETH","nameLocation":"7942:18:27","nodeType":"FunctionDefinition","parameters":{"id":11145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11140,"mutability":"mutable","name":"to","nameLocation":"7969:2:27","nodeType":"VariableDeclaration","scope":11151,"src":"7961:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11139,"name":"address","nodeType":"ElementaryTypeName","src":"7961:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"amount","nameLocation":"7981:6:27","nodeType":"VariableDeclaration","scope":11151,"src":"7973:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11141,"name":"uint256","nodeType":"ElementaryTypeName","src":"7973:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11144,"mutability":"mutable","name":"gasStipend","nameLocation":"7997:10:27","nodeType":"VariableDeclaration","scope":11151,"src":"7989:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11143,"name":"uint256","nodeType":"ElementaryTypeName","src":"7989:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7960:48:27"},"returnParameters":{"id":11148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11147,"mutability":"mutable","name":"success","nameLocation":"8048:7:27","nodeType":"VariableDeclaration","scope":11151,"src":"8043:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11146,"name":"bool","nodeType":"ElementaryTypeName","src":"8043:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8042:14:27"},"scope":11372,"src":"7933:295:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11162,"nodeType":"Block","src":"8434:174:27","statements":[{"AST":{"nativeSrc":"8496:106:27","nodeType":"YulBlock","src":"8496:106:27","statements":[{"nativeSrc":"8510:82:27","nodeType":"YulAssignment","src":"8510:82:27","value":{"arguments":[{"name":"gasStipend","nativeSrc":"8526:10:27","nodeType":"YulIdentifier","src":"8526:10:27"},{"name":"to","nativeSrc":"8538:2:27","nodeType":"YulIdentifier","src":"8538:2:27"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"8542:11:27","nodeType":"YulIdentifier","src":"8542:11:27"},"nativeSrc":"8542:13:27","nodeType":"YulFunctionCall","src":"8542:13:27"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8557:8:27","nodeType":"YulIdentifier","src":"8557:8:27"},"nativeSrc":"8557:10:27","nodeType":"YulFunctionCall","src":"8557:10:27"},{"kind":"number","nativeSrc":"8569:4:27","nodeType":"YulLiteral","src":"8569:4:27","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8575:8:27","nodeType":"YulIdentifier","src":"8575:8:27"},"nativeSrc":"8575:10:27","nodeType":"YulFunctionCall","src":"8575:10:27"},{"kind":"number","nativeSrc":"8587:4:27","nodeType":"YulLiteral","src":"8587:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"8521:4:27","nodeType":"YulIdentifier","src":"8521:4:27"},"nativeSrc":"8521:71:27","nodeType":"YulFunctionCall","src":"8521:71:27"},"variableNames":[{"name":"success","nativeSrc":"8510:7:27","nodeType":"YulIdentifier","src":"8510:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11156,"isOffset":false,"isSlot":false,"src":"8526:10:27","valueSize":1},{"declaration":11159,"isOffset":false,"isSlot":false,"src":"8510:7:27","valueSize":1},{"declaration":11154,"isOffset":false,"isSlot":false,"src":"8538:2:27","valueSize":1}],"id":11161,"nodeType":"InlineAssembly","src":"8487:115:27"}]},"documentation":{"id":11152,"nodeType":"StructuredDocumentation","src":"8234:80:27","text":"@dev Sends all the ETH in the current contract to `to`, with a `gasStipend`."},"id":11163,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferAllETH","nameLocation":"8328:21:27","nodeType":"FunctionDefinition","parameters":{"id":11157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11154,"mutability":"mutable","name":"to","nameLocation":"8358:2:27","nodeType":"VariableDeclaration","scope":11163,"src":"8350:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11153,"name":"address","nodeType":"ElementaryTypeName","src":"8350:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11156,"mutability":"mutable","name":"gasStipend","nameLocation":"8370:10:27","nodeType":"VariableDeclaration","scope":11163,"src":"8362:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11155,"name":"uint256","nodeType":"ElementaryTypeName","src":"8362:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8349:32:27"},"returnParameters":{"id":11160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11159,"mutability":"mutable","name":"success","nameLocation":"8421:7:27","nodeType":"VariableDeclaration","scope":11163,"src":"8416:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11158,"name":"bool","nodeType":"ElementaryTypeName","src":"8416:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8415:14:27"},"scope":11372,"src":"8319:289:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11176,"nodeType":"Block","src":"9201:1047:27","statements":[{"AST":{"nativeSrc":"9263:979:27","nodeType":"YulBlock","src":"9263:979:27","statements":[{"nativeSrc":"9277:20:27","nodeType":"YulVariableDeclaration","src":"9277:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"9292:4:27","nodeType":"YulLiteral","src":"9292:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9286:5:27","nodeType":"YulIdentifier","src":"9286:5:27"},"nativeSrc":"9286:11:27","nodeType":"YulFunctionCall","src":"9286:11:27"},"variables":[{"name":"m","nativeSrc":"9281:1:27","nodeType":"YulTypedName","src":"9281:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9351:4:27","nodeType":"YulLiteral","src":"9351:4:27","type":"","value":"0x60"},{"name":"amount","nativeSrc":"9357:6:27","nodeType":"YulIdentifier","src":"9357:6:27"}],"functionName":{"name":"mstore","nativeSrc":"9344:6:27","nodeType":"YulIdentifier","src":"9344:6:27"},"nativeSrc":"9344:20:27","nodeType":"YulFunctionCall","src":"9344:20:27"},"nativeSrc":"9344:20:27","nodeType":"YulExpressionStatement","src":"9344:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9416:4:27","nodeType":"YulLiteral","src":"9416:4:27","type":"","value":"0x40"},{"name":"to","nativeSrc":"9422:2:27","nodeType":"YulIdentifier","src":"9422:2:27"}],"functionName":{"name":"mstore","nativeSrc":"9409:6:27","nodeType":"YulIdentifier","src":"9409:6:27"},"nativeSrc":"9409:16:27","nodeType":"YulFunctionCall","src":"9409:16:27"},"nativeSrc":"9409:16:27","nodeType":"YulExpressionStatement","src":"9409:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9473:4:27","nodeType":"YulLiteral","src":"9473:4:27","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"9483:2:27","nodeType":"YulLiteral","src":"9483:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"9487:4:27","nodeType":"YulIdentifier","src":"9487:4:27"}],"functionName":{"name":"shl","nativeSrc":"9479:3:27","nodeType":"YulIdentifier","src":"9479:3:27"},"nativeSrc":"9479:13:27","nodeType":"YulFunctionCall","src":"9479:13:27"}],"functionName":{"name":"mstore","nativeSrc":"9466:6:27","nodeType":"YulIdentifier","src":"9466:6:27"},"nativeSrc":"9466:27:27","nodeType":"YulFunctionCall","src":"9466:27:27"},"nativeSrc":"9466:27:27","nodeType":"YulExpressionStatement","src":"9466:27:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9543:4:27","nodeType":"YulLiteral","src":"9543:4:27","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9549:34:27","nodeType":"YulLiteral","src":"9549:34:27","type":"","value":"0x23b872dd000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"9536:6:27","nodeType":"YulIdentifier","src":"9536:6:27"},"nativeSrc":"9536:48:27","nodeType":"YulFunctionCall","src":"9536:48:27"},"nativeSrc":"9536:48:27","nodeType":"YulExpressionStatement","src":"9536:48:27"},{"body":{"nativeSrc":"9988:118:27","nodeType":"YulBlock","src":"9988:118:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10013:4:27","nodeType":"YulLiteral","src":"10013:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10019:10:27","nodeType":"YulLiteral","src":"10019:10:27","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"10006:6:27","nodeType":"YulIdentifier","src":"10006:6:27"},"nativeSrc":"10006:24:27","nodeType":"YulFunctionCall","src":"10006:24:27"},"nativeSrc":"10006:24:27","nodeType":"YulExpressionStatement","src":"10006:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10081:4:27","nodeType":"YulLiteral","src":"10081:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10087:4:27","nodeType":"YulLiteral","src":"10087:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10074:6:27","nodeType":"YulIdentifier","src":"10074:6:27"},"nativeSrc":"10074:18:27","nodeType":"YulFunctionCall","src":"10074:18:27"},"nativeSrc":"10074:18:27","nodeType":"YulExpressionStatement","src":"10074:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9826:4:27","nodeType":"YulLiteral","src":"9826:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"9820:5:27","nodeType":"YulIdentifier","src":"9820:5:27"},"nativeSrc":"9820:11:27","nodeType":"YulFunctionCall","src":"9820:11:27"},{"kind":"number","nativeSrc":"9833:1:27","nodeType":"YulLiteral","src":"9833:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"9817:2:27","nodeType":"YulIdentifier","src":"9817:2:27"},"nativeSrc":"9817:18:27","nodeType":"YulFunctionCall","src":"9817:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"9844:14:27","nodeType":"YulIdentifier","src":"9844:14:27"},"nativeSrc":"9844:16:27","nodeType":"YulFunctionCall","src":"9844:16:27"}],"functionName":{"name":"iszero","nativeSrc":"9837:6:27","nodeType":"YulIdentifier","src":"9837:6:27"},"nativeSrc":"9837:24:27","nodeType":"YulFunctionCall","src":"9837:24:27"}],"functionName":{"name":"or","nativeSrc":"9814:2:27","nodeType":"YulIdentifier","src":"9814:2:27"},"nativeSrc":"9814:48:27","nodeType":"YulFunctionCall","src":"9814:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"9915:3:27","nodeType":"YulIdentifier","src":"9915:3:27"},"nativeSrc":"9915:5:27","nodeType":"YulFunctionCall","src":"9915:5:27"},{"name":"token","nativeSrc":"9922:5:27","nodeType":"YulIdentifier","src":"9922:5:27"},{"kind":"number","nativeSrc":"9929:1:27","nodeType":"YulLiteral","src":"9929:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"9932:4:27","nodeType":"YulLiteral","src":"9932:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"9938:4:27","nodeType":"YulLiteral","src":"9938:4:27","type":"","value":"0x64"},{"kind":"number","nativeSrc":"9944:4:27","nodeType":"YulLiteral","src":"9944:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9950:4:27","nodeType":"YulLiteral","src":"9950:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"9910:4:27","nodeType":"YulIdentifier","src":"9910:4:27"},"nativeSrc":"9910:45:27","nodeType":"YulFunctionCall","src":"9910:45:27"}],"functionName":{"name":"and","nativeSrc":"9729:3:27","nodeType":"YulIdentifier","src":"9729:3:27"},"nativeSrc":"9729:244:27","nodeType":"YulFunctionCall","src":"9729:244:27"}],"functionName":{"name":"iszero","nativeSrc":"9705:6:27","nodeType":"YulIdentifier","src":"9705:6:27"},"nativeSrc":"9705:282:27","nodeType":"YulFunctionCall","src":"9705:282:27"},"nativeSrc":"9702:404:27","nodeType":"YulIf","src":"9702:404:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10126:4:27","nodeType":"YulLiteral","src":"10126:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"10132:1:27","nodeType":"YulLiteral","src":"10132:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10119:6:27","nodeType":"YulIdentifier","src":"10119:6:27"},"nativeSrc":"10119:15:27","nodeType":"YulFunctionCall","src":"10119:15:27"},"nativeSrc":"10119:15:27","nodeType":"YulExpressionStatement","src":"10119:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10188:4:27","nodeType":"YulLiteral","src":"10188:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"10194:1:27","nodeType":"YulIdentifier","src":"10194:1:27"}],"functionName":{"name":"mstore","nativeSrc":"10181:6:27","nodeType":"YulIdentifier","src":"10181:6:27"},"nativeSrc":"10181:15:27","nodeType":"YulFunctionCall","src":"10181:15:27"},"nativeSrc":"10181:15:27","nodeType":"YulExpressionStatement","src":"10181:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11172,"isOffset":false,"isSlot":false,"src":"9357:6:27","valueSize":1},{"declaration":11168,"isOffset":false,"isSlot":false,"src":"9487:4:27","valueSize":1},{"declaration":11170,"isOffset":false,"isSlot":false,"src":"9422:2:27","valueSize":1},{"declaration":11166,"isOffset":false,"isSlot":false,"src":"9922:5:27","valueSize":1}],"id":11175,"nodeType":"InlineAssembly","src":"9254:988:27"}]},"documentation":{"id":11164,"nodeType":"StructuredDocumentation","src":"8897:207:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n Reverts upon failure.\n The `from` account must have at least `amount` approved for\n the current contract to manage."},"id":11177,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"9118:16:27","nodeType":"FunctionDefinition","parameters":{"id":11173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11166,"mutability":"mutable","name":"token","nameLocation":"9143:5:27","nodeType":"VariableDeclaration","scope":11177,"src":"9135:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11165,"name":"address","nodeType":"ElementaryTypeName","src":"9135:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11168,"mutability":"mutable","name":"from","nameLocation":"9158:4:27","nodeType":"VariableDeclaration","scope":11177,"src":"9150:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11167,"name":"address","nodeType":"ElementaryTypeName","src":"9150:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11170,"mutability":"mutable","name":"to","nameLocation":"9172:2:27","nodeType":"VariableDeclaration","scope":11177,"src":"9164:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"9164:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11172,"mutability":"mutable","name":"amount","nameLocation":"9184:6:27","nodeType":"VariableDeclaration","scope":11177,"src":"9176:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11171,"name":"uint256","nodeType":"ElementaryTypeName","src":"9176:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9134:57:27"},"returnParameters":{"id":11174,"nodeType":"ParameterList","parameters":[],"src":"9201:0:27"},"scope":11372,"src":"9109:1139:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11192,"nodeType":"Block","src":"10566:853:27","statements":[{"AST":{"nativeSrc":"10628:785:27","nodeType":"YulBlock","src":"10628:785:27","statements":[{"nativeSrc":"10642:20:27","nodeType":"YulVariableDeclaration","src":"10642:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"10657:4:27","nodeType":"YulLiteral","src":"10657:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10651:5:27","nodeType":"YulIdentifier","src":"10651:5:27"},"nativeSrc":"10651:11:27","nodeType":"YulFunctionCall","src":"10651:11:27"},"variables":[{"name":"m","nativeSrc":"10646:1:27","nodeType":"YulTypedName","src":"10646:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10716:4:27","nodeType":"YulLiteral","src":"10716:4:27","type":"","value":"0x60"},{"name":"amount","nativeSrc":"10722:6:27","nodeType":"YulIdentifier","src":"10722:6:27"}],"functionName":{"name":"mstore","nativeSrc":"10709:6:27","nodeType":"YulIdentifier","src":"10709:6:27"},"nativeSrc":"10709:20:27","nodeType":"YulFunctionCall","src":"10709:20:27"},"nativeSrc":"10709:20:27","nodeType":"YulExpressionStatement","src":"10709:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10781:4:27","nodeType":"YulLiteral","src":"10781:4:27","type":"","value":"0x40"},{"name":"to","nativeSrc":"10787:2:27","nodeType":"YulIdentifier","src":"10787:2:27"}],"functionName":{"name":"mstore","nativeSrc":"10774:6:27","nodeType":"YulIdentifier","src":"10774:6:27"},"nativeSrc":"10774:16:27","nodeType":"YulFunctionCall","src":"10774:16:27"},"nativeSrc":"10774:16:27","nodeType":"YulExpressionStatement","src":"10774:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10838:4:27","nodeType":"YulLiteral","src":"10838:4:27","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"10848:2:27","nodeType":"YulLiteral","src":"10848:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"10852:4:27","nodeType":"YulIdentifier","src":"10852:4:27"}],"functionName":{"name":"shl","nativeSrc":"10844:3:27","nodeType":"YulIdentifier","src":"10844:3:27"},"nativeSrc":"10844:13:27","nodeType":"YulFunctionCall","src":"10844:13:27"}],"functionName":{"name":"mstore","nativeSrc":"10831:6:27","nodeType":"YulIdentifier","src":"10831:6:27"},"nativeSrc":"10831:27:27","nodeType":"YulFunctionCall","src":"10831:27:27"},"nativeSrc":"10831:27:27","nodeType":"YulExpressionStatement","src":"10831:27:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10908:4:27","nodeType":"YulLiteral","src":"10908:4:27","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10914:34:27","nodeType":"YulLiteral","src":"10914:34:27","type":"","value":"0x23b872dd000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"10901:6:27","nodeType":"YulIdentifier","src":"10901:6:27"},"nativeSrc":"10901:48:27","nodeType":"YulFunctionCall","src":"10901:48:27"},"nativeSrc":"10901:48:27","nodeType":"YulExpressionStatement","src":"10901:48:27"},{"nativeSrc":"11006:271:27","nodeType":"YulAssignment","src":"11006:271:27","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11130:4:27","nodeType":"YulLiteral","src":"11130:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"11124:5:27","nodeType":"YulIdentifier","src":"11124:5:27"},"nativeSrc":"11124:11:27","nodeType":"YulFunctionCall","src":"11124:11:27"},{"kind":"number","nativeSrc":"11137:1:27","nodeType":"YulLiteral","src":"11137:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"11121:2:27","nodeType":"YulIdentifier","src":"11121:2:27"},"nativeSrc":"11121:18:27","nodeType":"YulFunctionCall","src":"11121:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"11148:14:27","nodeType":"YulIdentifier","src":"11148:14:27"},"nativeSrc":"11148:16:27","nodeType":"YulFunctionCall","src":"11148:16:27"}],"functionName":{"name":"iszero","nativeSrc":"11141:6:27","nodeType":"YulIdentifier","src":"11141:6:27"},"nativeSrc":"11141:24:27","nodeType":"YulFunctionCall","src":"11141:24:27"}],"functionName":{"name":"or","nativeSrc":"11118:2:27","nodeType":"YulIdentifier","src":"11118:2:27"},"nativeSrc":"11118:48:27","nodeType":"YulFunctionCall","src":"11118:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"11219:3:27","nodeType":"YulIdentifier","src":"11219:3:27"},"nativeSrc":"11219:5:27","nodeType":"YulFunctionCall","src":"11219:5:27"},{"name":"token","nativeSrc":"11226:5:27","nodeType":"YulIdentifier","src":"11226:5:27"},{"kind":"number","nativeSrc":"11233:1:27","nodeType":"YulLiteral","src":"11233:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"11236:4:27","nodeType":"YulLiteral","src":"11236:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11242:4:27","nodeType":"YulLiteral","src":"11242:4:27","type":"","value":"0x64"},{"kind":"number","nativeSrc":"11248:4:27","nodeType":"YulLiteral","src":"11248:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11254:4:27","nodeType":"YulLiteral","src":"11254:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"11214:4:27","nodeType":"YulIdentifier","src":"11214:4:27"},"nativeSrc":"11214:45:27","nodeType":"YulFunctionCall","src":"11214:45:27"}],"functionName":{"name":"and","nativeSrc":"11033:3:27","nodeType":"YulIdentifier","src":"11033:3:27"},"nativeSrc":"11033:244:27","nodeType":"YulFunctionCall","src":"11033:244:27"},"variableNames":[{"name":"success","nativeSrc":"11006:7:27","nodeType":"YulIdentifier","src":"11006:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11297:4:27","nodeType":"YulLiteral","src":"11297:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"11303:1:27","nodeType":"YulLiteral","src":"11303:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11290:6:27","nodeType":"YulIdentifier","src":"11290:6:27"},"nativeSrc":"11290:15:27","nodeType":"YulFunctionCall","src":"11290:15:27"},"nativeSrc":"11290:15:27","nodeType":"YulExpressionStatement","src":"11290:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11359:4:27","nodeType":"YulLiteral","src":"11359:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"11365:1:27","nodeType":"YulIdentifier","src":"11365:1:27"}],"functionName":{"name":"mstore","nativeSrc":"11352:6:27","nodeType":"YulIdentifier","src":"11352:6:27"},"nativeSrc":"11352:15:27","nodeType":"YulFunctionCall","src":"11352:15:27"},"nativeSrc":"11352:15:27","nodeType":"YulExpressionStatement","src":"11352:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11186,"isOffset":false,"isSlot":false,"src":"10722:6:27","valueSize":1},{"declaration":11182,"isOffset":false,"isSlot":false,"src":"10852:4:27","valueSize":1},{"declaration":11189,"isOffset":false,"isSlot":false,"src":"11006:7:27","valueSize":1},{"declaration":11184,"isOffset":false,"isSlot":false,"src":"10787:2:27","valueSize":1},{"declaration":11180,"isOffset":false,"isSlot":false,"src":"11226:5:27","valueSize":1}],"id":11191,"nodeType":"InlineAssembly","src":"10619:794:27"}]},"documentation":{"id":11178,"nodeType":"StructuredDocumentation","src":"10254:169:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n The `from` account must have at least `amount` approved for the current contract to manage."},"id":11193,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferFrom","nameLocation":"10437:19:27","nodeType":"FunctionDefinition","parameters":{"id":11187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11180,"mutability":"mutable","name":"token","nameLocation":"10465:5:27","nodeType":"VariableDeclaration","scope":11193,"src":"10457:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11179,"name":"address","nodeType":"ElementaryTypeName","src":"10457:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11182,"mutability":"mutable","name":"from","nameLocation":"10480:4:27","nodeType":"VariableDeclaration","scope":11193,"src":"10472:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11181,"name":"address","nodeType":"ElementaryTypeName","src":"10472:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11184,"mutability":"mutable","name":"to","nameLocation":"10494:2:27","nodeType":"VariableDeclaration","scope":11193,"src":"10486:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11183,"name":"address","nodeType":"ElementaryTypeName","src":"10486:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11186,"mutability":"mutable","name":"amount","nameLocation":"10506:6:27","nodeType":"VariableDeclaration","scope":11193,"src":"10498:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11185,"name":"uint256","nodeType":"ElementaryTypeName","src":"10498:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10456:57:27"},"returnParameters":{"id":11190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11189,"mutability":"mutable","name":"success","nameLocation":"10553:7:27","nodeType":"VariableDeclaration","scope":11193,"src":"10548:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11188,"name":"bool","nodeType":"ElementaryTypeName","src":"10548:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10547:14:27"},"scope":11372,"src":"10428:991:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11206,"nodeType":"Block","src":"11751:1599:27","statements":[{"AST":{"nativeSrc":"11813:1531:27","nodeType":"YulBlock","src":"11813:1531:27","statements":[{"nativeSrc":"11827:20:27","nodeType":"YulVariableDeclaration","src":"11827:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"11842:4:27","nodeType":"YulLiteral","src":"11842:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11836:5:27","nodeType":"YulIdentifier","src":"11836:5:27"},"nativeSrc":"11836:11:27","nodeType":"YulFunctionCall","src":"11836:11:27"},"variables":[{"name":"m","nativeSrc":"11831:1:27","nodeType":"YulTypedName","src":"11831:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11901:4:27","nodeType":"YulLiteral","src":"11901:4:27","type":"","value":"0x40"},{"name":"to","nativeSrc":"11907:2:27","nodeType":"YulIdentifier","src":"11907:2:27"}],"functionName":{"name":"mstore","nativeSrc":"11894:6:27","nodeType":"YulIdentifier","src":"11894:6:27"},"nativeSrc":"11894:16:27","nodeType":"YulFunctionCall","src":"11894:16:27"},"nativeSrc":"11894:16:27","nodeType":"YulExpressionStatement","src":"11894:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11958:4:27","nodeType":"YulLiteral","src":"11958:4:27","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"11968:2:27","nodeType":"YulLiteral","src":"11968:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"11972:4:27","nodeType":"YulIdentifier","src":"11972:4:27"}],"functionName":{"name":"shl","nativeSrc":"11964:3:27","nodeType":"YulIdentifier","src":"11964:3:27"},"nativeSrc":"11964:13:27","nodeType":"YulFunctionCall","src":"11964:13:27"}],"functionName":{"name":"mstore","nativeSrc":"11951:6:27","nodeType":"YulIdentifier","src":"11951:6:27"},"nativeSrc":"11951:27:27","nodeType":"YulFunctionCall","src":"11951:27:27"},"nativeSrc":"11951:27:27","nodeType":"YulExpressionStatement","src":"11951:27:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12028:4:27","nodeType":"YulLiteral","src":"12028:4:27","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12034:34:27","nodeType":"YulLiteral","src":"12034:34:27","type":"","value":"0x70a08231000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"12021:6:27","nodeType":"YulIdentifier","src":"12021:6:27"},"nativeSrc":"12021:48:27","nodeType":"YulFunctionCall","src":"12021:48:27"},"nativeSrc":"12021:48:27","nodeType":"YulExpressionStatement","src":"12021:48:27"},{"body":{"nativeSrc":"12436:118:27","nodeType":"YulBlock","src":"12436:118:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12461:4:27","nodeType":"YulLiteral","src":"12461:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12467:10:27","nodeType":"YulLiteral","src":"12467:10:27","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"12454:6:27","nodeType":"YulIdentifier","src":"12454:6:27"},"nativeSrc":"12454:24:27","nodeType":"YulFunctionCall","src":"12454:24:27"},"nativeSrc":"12454:24:27","nodeType":"YulExpressionStatement","src":"12454:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12529:4:27","nodeType":"YulLiteral","src":"12529:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12535:4:27","nodeType":"YulLiteral","src":"12535:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12522:6:27","nodeType":"YulIdentifier","src":"12522:6:27"},"nativeSrc":"12522:18:27","nodeType":"YulFunctionCall","src":"12522:18:27"},"nativeSrc":"12522:18:27","nodeType":"YulExpressionStatement","src":"12522:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12279:14:27","nodeType":"YulIdentifier","src":"12279:14:27"},"nativeSrc":"12279:16:27","nodeType":"YulFunctionCall","src":"12279:16:27"},{"kind":"number","nativeSrc":"12297:4:27","nodeType":"YulLiteral","src":"12297:4:27","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"12276:2:27","nodeType":"YulIdentifier","src":"12276:2:27"},"nativeSrc":"12276:26:27","nodeType":"YulFunctionCall","src":"12276:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"12366:3:27","nodeType":"YulIdentifier","src":"12366:3:27"},"nativeSrc":"12366:5:27","nodeType":"YulFunctionCall","src":"12366:5:27"},{"name":"token","nativeSrc":"12373:5:27","nodeType":"YulIdentifier","src":"12373:5:27"},{"kind":"number","nativeSrc":"12380:4:27","nodeType":"YulLiteral","src":"12380:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12386:4:27","nodeType":"YulLiteral","src":"12386:4:27","type":"","value":"0x24"},{"kind":"number","nativeSrc":"12392:4:27","nodeType":"YulLiteral","src":"12392:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"12398:4:27","nodeType":"YulLiteral","src":"12398:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"12355:10:27","nodeType":"YulIdentifier","src":"12355:10:27"},"nativeSrc":"12355:48:27","nodeType":"YulFunctionCall","src":"12355:48:27"}],"functionName":{"name":"and","nativeSrc":"12191:3:27","nodeType":"YulIdentifier","src":"12191:3:27"},"nativeSrc":"12191:230:27","nodeType":"YulFunctionCall","src":"12191:230:27"}],"functionName":{"name":"iszero","nativeSrc":"12167:6:27","nodeType":"YulIdentifier","src":"12167:6:27"},"nativeSrc":"12167:268:27","nodeType":"YulFunctionCall","src":"12167:268:27"},"nativeSrc":"12164:390:27","nodeType":"YulIf","src":"12164:390:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12574:4:27","nodeType":"YulLiteral","src":"12574:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12580:10:27","nodeType":"YulLiteral","src":"12580:10:27","type":"","value":"0x23b872dd"}],"functionName":{"name":"mstore","nativeSrc":"12567:6:27","nodeType":"YulIdentifier","src":"12567:6:27"},"nativeSrc":"12567:24:27","nodeType":"YulFunctionCall","src":"12567:24:27"},"nativeSrc":"12567:24:27","nodeType":"YulExpressionStatement","src":"12567:24:27"},{"nativeSrc":"12648:21:27","nodeType":"YulAssignment","src":"12648:21:27","value":{"arguments":[{"kind":"number","nativeSrc":"12664:4:27","nodeType":"YulLiteral","src":"12664:4:27","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"12658:5:27","nodeType":"YulIdentifier","src":"12658:5:27"},"nativeSrc":"12658:11:27","nodeType":"YulFunctionCall","src":"12658:11:27"},"variableNames":[{"name":"amount","nativeSrc":"12648:6:27","nodeType":"YulIdentifier","src":"12648:6:27"}]},{"body":{"nativeSrc":"13090:118:27","nodeType":"YulBlock","src":"13090:118:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13115:4:27","nodeType":"YulLiteral","src":"13115:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13121:10:27","nodeType":"YulLiteral","src":"13121:10:27","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"13108:6:27","nodeType":"YulIdentifier","src":"13108:6:27"},"nativeSrc":"13108:24:27","nodeType":"YulFunctionCall","src":"13108:24:27"},"nativeSrc":"13108:24:27","nodeType":"YulExpressionStatement","src":"13108:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13183:4:27","nodeType":"YulLiteral","src":"13183:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13189:4:27","nodeType":"YulLiteral","src":"13189:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13176:6:27","nodeType":"YulIdentifier","src":"13176:6:27"},"nativeSrc":"13176:18:27","nodeType":"YulFunctionCall","src":"13176:18:27"},"nativeSrc":"13176:18:27","nodeType":"YulExpressionStatement","src":"13176:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12928:4:27","nodeType":"YulLiteral","src":"12928:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"12922:5:27","nodeType":"YulIdentifier","src":"12922:5:27"},"nativeSrc":"12922:11:27","nodeType":"YulFunctionCall","src":"12922:11:27"},{"kind":"number","nativeSrc":"12935:1:27","nodeType":"YulLiteral","src":"12935:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"12919:2:27","nodeType":"YulIdentifier","src":"12919:2:27"},"nativeSrc":"12919:18:27","nodeType":"YulFunctionCall","src":"12919:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12946:14:27","nodeType":"YulIdentifier","src":"12946:14:27"},"nativeSrc":"12946:16:27","nodeType":"YulFunctionCall","src":"12946:16:27"}],"functionName":{"name":"iszero","nativeSrc":"12939:6:27","nodeType":"YulIdentifier","src":"12939:6:27"},"nativeSrc":"12939:24:27","nodeType":"YulFunctionCall","src":"12939:24:27"}],"functionName":{"name":"or","nativeSrc":"12916:2:27","nodeType":"YulIdentifier","src":"12916:2:27"},"nativeSrc":"12916:48:27","nodeType":"YulFunctionCall","src":"12916:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"13017:3:27","nodeType":"YulIdentifier","src":"13017:3:27"},"nativeSrc":"13017:5:27","nodeType":"YulFunctionCall","src":"13017:5:27"},{"name":"token","nativeSrc":"13024:5:27","nodeType":"YulIdentifier","src":"13024:5:27"},{"kind":"number","nativeSrc":"13031:1:27","nodeType":"YulLiteral","src":"13031:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"13034:4:27","nodeType":"YulLiteral","src":"13034:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13040:4:27","nodeType":"YulLiteral","src":"13040:4:27","type":"","value":"0x64"},{"kind":"number","nativeSrc":"13046:4:27","nodeType":"YulLiteral","src":"13046:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13052:4:27","nodeType":"YulLiteral","src":"13052:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"13012:4:27","nodeType":"YulIdentifier","src":"13012:4:27"},"nativeSrc":"13012:45:27","nodeType":"YulFunctionCall","src":"13012:45:27"}],"functionName":{"name":"and","nativeSrc":"12831:3:27","nodeType":"YulIdentifier","src":"12831:3:27"},"nativeSrc":"12831:244:27","nodeType":"YulFunctionCall","src":"12831:244:27"}],"functionName":{"name":"iszero","nativeSrc":"12807:6:27","nodeType":"YulIdentifier","src":"12807:6:27"},"nativeSrc":"12807:282:27","nodeType":"YulFunctionCall","src":"12807:282:27"},"nativeSrc":"12804:404:27","nodeType":"YulIf","src":"12804:404:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13228:4:27","nodeType":"YulLiteral","src":"13228:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"13234:1:27","nodeType":"YulLiteral","src":"13234:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13221:6:27","nodeType":"YulIdentifier","src":"13221:6:27"},"nativeSrc":"13221:15:27","nodeType":"YulFunctionCall","src":"13221:15:27"},"nativeSrc":"13221:15:27","nodeType":"YulExpressionStatement","src":"13221:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13290:4:27","nodeType":"YulLiteral","src":"13290:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"13296:1:27","nodeType":"YulIdentifier","src":"13296:1:27"}],"functionName":{"name":"mstore","nativeSrc":"13283:6:27","nodeType":"YulIdentifier","src":"13283:6:27"},"nativeSrc":"13283:15:27","nodeType":"YulFunctionCall","src":"13283:15:27"},"nativeSrc":"13283:15:27","nodeType":"YulExpressionStatement","src":"13283:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11203,"isOffset":false,"isSlot":false,"src":"12648:6:27","valueSize":1},{"declaration":11198,"isOffset":false,"isSlot":false,"src":"11972:4:27","valueSize":1},{"declaration":11200,"isOffset":false,"isSlot":false,"src":"11907:2:27","valueSize":1},{"declaration":11196,"isOffset":false,"isSlot":false,"src":"12373:5:27","valueSize":1},{"declaration":11196,"isOffset":false,"isSlot":false,"src":"13024:5:27","valueSize":1}],"id":11205,"nodeType":"InlineAssembly","src":"11804:1540:27"}]},"documentation":{"id":11194,"nodeType":"StructuredDocumentation","src":"11425:197:27","text":"@dev Sends all of ERC20 `token` from `from` to `to`.\n Reverts upon failure.\n The `from` account must have their entire balance approved for the current contract to manage."},"id":11207,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAllFrom","nameLocation":"11636:19:27","nodeType":"FunctionDefinition","parameters":{"id":11201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11196,"mutability":"mutable","name":"token","nameLocation":"11664:5:27","nodeType":"VariableDeclaration","scope":11207,"src":"11656:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11195,"name":"address","nodeType":"ElementaryTypeName","src":"11656:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11198,"mutability":"mutable","name":"from","nameLocation":"11679:4:27","nodeType":"VariableDeclaration","scope":11207,"src":"11671:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11197,"name":"address","nodeType":"ElementaryTypeName","src":"11671:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11200,"mutability":"mutable","name":"to","nameLocation":"11693:2:27","nodeType":"VariableDeclaration","scope":11207,"src":"11685:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11199,"name":"address","nodeType":"ElementaryTypeName","src":"11685:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11655:41:27"},"returnParameters":{"id":11204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11203,"mutability":"mutable","name":"amount","nameLocation":"11739:6:27","nodeType":"VariableDeclaration","scope":11207,"src":"11731:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11202,"name":"uint256","nodeType":"ElementaryTypeName","src":"11731:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11730:16:27"},"scope":11372,"src":"11627:1723:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11218,"nodeType":"Block","src":"13540:865:27","statements":[{"AST":{"nativeSrc":"13602:797:27","nodeType":"YulBlock","src":"13602:797:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13623:4:27","nodeType":"YulLiteral","src":"13623:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"13629:2:27","nodeType":"YulIdentifier","src":"13629:2:27"}],"functionName":{"name":"mstore","nativeSrc":"13616:6:27","nodeType":"YulIdentifier","src":"13616:6:27"},"nativeSrc":"13616:16:27","nodeType":"YulFunctionCall","src":"13616:16:27"},"nativeSrc":"13616:16:27","nodeType":"YulExpressionStatement","src":"13616:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13680:4:27","nodeType":"YulLiteral","src":"13680:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"13686:6:27","nodeType":"YulIdentifier","src":"13686:6:27"}],"functionName":{"name":"mstore","nativeSrc":"13673:6:27","nodeType":"YulIdentifier","src":"13673:6:27"},"nativeSrc":"13673:20:27","nodeType":"YulFunctionCall","src":"13673:20:27"},"nativeSrc":"13673:20:27","nodeType":"YulExpressionStatement","src":"13673:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13745:4:27","nodeType":"YulLiteral","src":"13745:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13751:34:27","nodeType":"YulLiteral","src":"13751:34:27","type":"","value":"0xa9059cbb000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"13738:6:27","nodeType":"YulIdentifier","src":"13738:6:27"},"nativeSrc":"13738:48:27","nodeType":"YulFunctionCall","src":"13738:48:27"},"nativeSrc":"13738:48:27","nodeType":"YulExpressionStatement","src":"13738:48:27"},{"body":{"nativeSrc":"14178:114:27","nodeType":"YulBlock","src":"14178:114:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14203:4:27","nodeType":"YulLiteral","src":"14203:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14209:10:27","nodeType":"YulLiteral","src":"14209:10:27","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"14196:6:27","nodeType":"YulIdentifier","src":"14196:6:27"},"nativeSrc":"14196:24:27","nodeType":"YulFunctionCall","src":"14196:24:27"},"nativeSrc":"14196:24:27","nodeType":"YulExpressionStatement","src":"14196:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14267:4:27","nodeType":"YulLiteral","src":"14267:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14273:4:27","nodeType":"YulLiteral","src":"14273:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"14260:6:27","nodeType":"YulIdentifier","src":"14260:6:27"},"nativeSrc":"14260:18:27","nodeType":"YulFunctionCall","src":"14260:18:27"},"nativeSrc":"14260:18:27","nodeType":"YulExpressionStatement","src":"14260:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14016:4:27","nodeType":"YulLiteral","src":"14016:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"14010:5:27","nodeType":"YulIdentifier","src":"14010:5:27"},"nativeSrc":"14010:11:27","nodeType":"YulFunctionCall","src":"14010:11:27"},{"kind":"number","nativeSrc":"14023:1:27","nodeType":"YulLiteral","src":"14023:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"14007:2:27","nodeType":"YulIdentifier","src":"14007:2:27"},"nativeSrc":"14007:18:27","nodeType":"YulFunctionCall","src":"14007:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"14034:14:27","nodeType":"YulIdentifier","src":"14034:14:27"},"nativeSrc":"14034:16:27","nodeType":"YulFunctionCall","src":"14034:16:27"}],"functionName":{"name":"iszero","nativeSrc":"14027:6:27","nodeType":"YulIdentifier","src":"14027:6:27"},"nativeSrc":"14027:24:27","nodeType":"YulFunctionCall","src":"14027:24:27"}],"functionName":{"name":"or","nativeSrc":"14004:2:27","nodeType":"YulIdentifier","src":"14004:2:27"},"nativeSrc":"14004:48:27","nodeType":"YulFunctionCall","src":"14004:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"14105:3:27","nodeType":"YulIdentifier","src":"14105:3:27"},"nativeSrc":"14105:5:27","nodeType":"YulFunctionCall","src":"14105:5:27"},{"name":"token","nativeSrc":"14112:5:27","nodeType":"YulIdentifier","src":"14112:5:27"},{"kind":"number","nativeSrc":"14119:1:27","nodeType":"YulLiteral","src":"14119:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"14122:4:27","nodeType":"YulLiteral","src":"14122:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"14128:4:27","nodeType":"YulLiteral","src":"14128:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"14134:4:27","nodeType":"YulLiteral","src":"14134:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14140:4:27","nodeType":"YulLiteral","src":"14140:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"14100:4:27","nodeType":"YulIdentifier","src":"14100:4:27"},"nativeSrc":"14100:45:27","nodeType":"YulFunctionCall","src":"14100:45:27"}],"functionName":{"name":"and","nativeSrc":"13919:3:27","nodeType":"YulIdentifier","src":"13919:3:27"},"nativeSrc":"13919:244:27","nodeType":"YulFunctionCall","src":"13919:244:27"}],"functionName":{"name":"iszero","nativeSrc":"13895:6:27","nodeType":"YulIdentifier","src":"13895:6:27"},"nativeSrc":"13895:282:27","nodeType":"YulFunctionCall","src":"13895:282:27"},"nativeSrc":"13892:400:27","nodeType":"YulIf","src":"13892:400:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14312:4:27","nodeType":"YulLiteral","src":"14312:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"14318:1:27","nodeType":"YulLiteral","src":"14318:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14305:6:27","nodeType":"YulIdentifier","src":"14305:6:27"},"nativeSrc":"14305:15:27","nodeType":"YulFunctionCall","src":"14305:15:27"},"nativeSrc":"14305:15:27","nodeType":"YulExpressionStatement","src":"14305:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11214,"isOffset":false,"isSlot":false,"src":"13686:6:27","valueSize":1},{"declaration":11212,"isOffset":false,"isSlot":false,"src":"13629:2:27","valueSize":1},{"declaration":11210,"isOffset":false,"isSlot":false,"src":"14112:5:27","valueSize":1}],"id":11217,"nodeType":"InlineAssembly","src":"13593:806:27"}]},"documentation":{"id":11208,"nodeType":"StructuredDocumentation","src":"13356:105:27","text":"@dev Sends `amount` of ERC20 `token` from the current contract to `to`.\n Reverts upon failure."},"id":11219,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"13475:12:27","nodeType":"FunctionDefinition","parameters":{"id":11215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11210,"mutability":"mutable","name":"token","nameLocation":"13496:5:27","nodeType":"VariableDeclaration","scope":11219,"src":"13488:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11209,"name":"address","nodeType":"ElementaryTypeName","src":"13488:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11212,"mutability":"mutable","name":"to","nameLocation":"13511:2:27","nodeType":"VariableDeclaration","scope":11219,"src":"13503:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11211,"name":"address","nodeType":"ElementaryTypeName","src":"13503:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11214,"mutability":"mutable","name":"amount","nameLocation":"13523:6:27","nodeType":"VariableDeclaration","scope":11219,"src":"13515:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11213,"name":"uint256","nodeType":"ElementaryTypeName","src":"13515:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13487:43:27"},"returnParameters":{"id":11216,"nodeType":"ParameterList","parameters":[],"src":"13540:0:27"},"scope":11372,"src":"13466:939:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11230,"nodeType":"Block","src":"14602:1526:27","statements":[{"AST":{"nativeSrc":"14664:1458:27","nodeType":"YulBlock","src":"14664:1458:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14685:4:27","nodeType":"YulLiteral","src":"14685:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14691:10:27","nodeType":"YulLiteral","src":"14691:10:27","type":"","value":"0x70a08231"}],"functionName":{"name":"mstore","nativeSrc":"14678:6:27","nodeType":"YulIdentifier","src":"14678:6:27"},"nativeSrc":"14678:24:27","nodeType":"YulFunctionCall","src":"14678:24:27"},"nativeSrc":"14678:24:27","nodeType":"YulExpressionStatement","src":"14678:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14778:4:27","nodeType":"YulLiteral","src":"14778:4:27","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"14784:7:27","nodeType":"YulIdentifier","src":"14784:7:27"},"nativeSrc":"14784:9:27","nodeType":"YulFunctionCall","src":"14784:9:27"}],"functionName":{"name":"mstore","nativeSrc":"14771:6:27","nodeType":"YulIdentifier","src":"14771:6:27"},"nativeSrc":"14771:23:27","nodeType":"YulFunctionCall","src":"14771:23:27"},"nativeSrc":"14771:23:27","nodeType":"YulExpressionStatement","src":"14771:23:27"},{"body":{"nativeSrc":"15182:114:27","nodeType":"YulBlock","src":"15182:114:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15207:4:27","nodeType":"YulLiteral","src":"15207:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15213:10:27","nodeType":"YulLiteral","src":"15213:10:27","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"15200:6:27","nodeType":"YulIdentifier","src":"15200:6:27"},"nativeSrc":"15200:24:27","nodeType":"YulFunctionCall","src":"15200:24:27"},"nativeSrc":"15200:24:27","nodeType":"YulExpressionStatement","src":"15200:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15271:4:27","nodeType":"YulLiteral","src":"15271:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15277:4:27","nodeType":"YulLiteral","src":"15277:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15264:6:27","nodeType":"YulIdentifier","src":"15264:6:27"},"nativeSrc":"15264:18:27","nodeType":"YulFunctionCall","src":"15264:18:27"},"nativeSrc":"15264:18:27","nodeType":"YulExpressionStatement","src":"15264:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15025:14:27","nodeType":"YulIdentifier","src":"15025:14:27"},"nativeSrc":"15025:16:27","nodeType":"YulFunctionCall","src":"15025:16:27"},{"kind":"number","nativeSrc":"15043:4:27","nodeType":"YulLiteral","src":"15043:4:27","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"15022:2:27","nodeType":"YulIdentifier","src":"15022:2:27"},"nativeSrc":"15022:26:27","nodeType":"YulFunctionCall","src":"15022:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15112:3:27","nodeType":"YulIdentifier","src":"15112:3:27"},"nativeSrc":"15112:5:27","nodeType":"YulFunctionCall","src":"15112:5:27"},{"name":"token","nativeSrc":"15119:5:27","nodeType":"YulIdentifier","src":"15119:5:27"},{"kind":"number","nativeSrc":"15126:4:27","nodeType":"YulLiteral","src":"15126:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15132:4:27","nodeType":"YulLiteral","src":"15132:4:27","type":"","value":"0x24"},{"kind":"number","nativeSrc":"15138:4:27","nodeType":"YulLiteral","src":"15138:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"15144:4:27","nodeType":"YulLiteral","src":"15144:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15101:10:27","nodeType":"YulIdentifier","src":"15101:10:27"},"nativeSrc":"15101:48:27","nodeType":"YulFunctionCall","src":"15101:48:27"}],"functionName":{"name":"and","nativeSrc":"14937:3:27","nodeType":"YulIdentifier","src":"14937:3:27"},"nativeSrc":"14937:230:27","nodeType":"YulFunctionCall","src":"14937:230:27"}],"functionName":{"name":"iszero","nativeSrc":"14913:6:27","nodeType":"YulIdentifier","src":"14913:6:27"},"nativeSrc":"14913:268:27","nodeType":"YulFunctionCall","src":"14913:268:27"},"nativeSrc":"14910:386:27","nodeType":"YulIf","src":"14910:386:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15316:4:27","nodeType":"YulLiteral","src":"15316:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"15322:2:27","nodeType":"YulIdentifier","src":"15322:2:27"}],"functionName":{"name":"mstore","nativeSrc":"15309:6:27","nodeType":"YulIdentifier","src":"15309:6:27"},"nativeSrc":"15309:16:27","nodeType":"YulFunctionCall","src":"15309:16:27"},"nativeSrc":"15309:16:27","nodeType":"YulExpressionStatement","src":"15309:16:27"},{"nativeSrc":"15366:21:27","nodeType":"YulAssignment","src":"15366:21:27","value":{"arguments":[{"kind":"number","nativeSrc":"15382:4:27","nodeType":"YulLiteral","src":"15382:4:27","type":"","value":"0x34"}],"functionName":{"name":"mload","nativeSrc":"15376:5:27","nodeType":"YulIdentifier","src":"15376:5:27"},"nativeSrc":"15376:11:27","nodeType":"YulFunctionCall","src":"15376:11:27"},"variableNames":[{"name":"amount","nativeSrc":"15366:6:27","nodeType":"YulIdentifier","src":"15366:6:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15468:4:27","nodeType":"YulLiteral","src":"15468:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15474:34:27","nodeType":"YulLiteral","src":"15474:34:27","type":"","value":"0xa9059cbb000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"15461:6:27","nodeType":"YulIdentifier","src":"15461:6:27"},"nativeSrc":"15461:48:27","nodeType":"YulFunctionCall","src":"15461:48:27"},"nativeSrc":"15461:48:27","nodeType":"YulExpressionStatement","src":"15461:48:27"},{"body":{"nativeSrc":"15901:114:27","nodeType":"YulBlock","src":"15901:114:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15926:4:27","nodeType":"YulLiteral","src":"15926:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15932:10:27","nodeType":"YulLiteral","src":"15932:10:27","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"15919:6:27","nodeType":"YulIdentifier","src":"15919:6:27"},"nativeSrc":"15919:24:27","nodeType":"YulFunctionCall","src":"15919:24:27"},"nativeSrc":"15919:24:27","nodeType":"YulExpressionStatement","src":"15919:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15990:4:27","nodeType":"YulLiteral","src":"15990:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15996:4:27","nodeType":"YulLiteral","src":"15996:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15983:6:27","nodeType":"YulIdentifier","src":"15983:6:27"},"nativeSrc":"15983:18:27","nodeType":"YulFunctionCall","src":"15983:18:27"},"nativeSrc":"15983:18:27","nodeType":"YulExpressionStatement","src":"15983:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15739:4:27","nodeType":"YulLiteral","src":"15739:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"15733:5:27","nodeType":"YulIdentifier","src":"15733:5:27"},"nativeSrc":"15733:11:27","nodeType":"YulFunctionCall","src":"15733:11:27"},{"kind":"number","nativeSrc":"15746:1:27","nodeType":"YulLiteral","src":"15746:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"15730:2:27","nodeType":"YulIdentifier","src":"15730:2:27"},"nativeSrc":"15730:18:27","nodeType":"YulFunctionCall","src":"15730:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15757:14:27","nodeType":"YulIdentifier","src":"15757:14:27"},"nativeSrc":"15757:16:27","nodeType":"YulFunctionCall","src":"15757:16:27"}],"functionName":{"name":"iszero","nativeSrc":"15750:6:27","nodeType":"YulIdentifier","src":"15750:6:27"},"nativeSrc":"15750:24:27","nodeType":"YulFunctionCall","src":"15750:24:27"}],"functionName":{"name":"or","nativeSrc":"15727:2:27","nodeType":"YulIdentifier","src":"15727:2:27"},"nativeSrc":"15727:48:27","nodeType":"YulFunctionCall","src":"15727:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15828:3:27","nodeType":"YulIdentifier","src":"15828:3:27"},"nativeSrc":"15828:5:27","nodeType":"YulFunctionCall","src":"15828:5:27"},{"name":"token","nativeSrc":"15835:5:27","nodeType":"YulIdentifier","src":"15835:5:27"},{"kind":"number","nativeSrc":"15842:1:27","nodeType":"YulLiteral","src":"15842:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"15845:4:27","nodeType":"YulLiteral","src":"15845:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"15851:4:27","nodeType":"YulLiteral","src":"15851:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"15857:4:27","nodeType":"YulLiteral","src":"15857:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15863:4:27","nodeType":"YulLiteral","src":"15863:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"15823:4:27","nodeType":"YulIdentifier","src":"15823:4:27"},"nativeSrc":"15823:45:27","nodeType":"YulFunctionCall","src":"15823:45:27"}],"functionName":{"name":"and","nativeSrc":"15642:3:27","nodeType":"YulIdentifier","src":"15642:3:27"},"nativeSrc":"15642:244:27","nodeType":"YulFunctionCall","src":"15642:244:27"}],"functionName":{"name":"iszero","nativeSrc":"15618:6:27","nodeType":"YulIdentifier","src":"15618:6:27"},"nativeSrc":"15618:282:27","nodeType":"YulFunctionCall","src":"15618:282:27"},"nativeSrc":"15615:400:27","nodeType":"YulIf","src":"15615:400:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16035:4:27","nodeType":"YulLiteral","src":"16035:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"16041:1:27","nodeType":"YulLiteral","src":"16041:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16028:6:27","nodeType":"YulIdentifier","src":"16028:6:27"},"nativeSrc":"16028:15:27","nodeType":"YulFunctionCall","src":"16028:15:27"},"nativeSrc":"16028:15:27","nodeType":"YulExpressionStatement","src":"16028:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11227,"isOffset":false,"isSlot":false,"src":"15366:6:27","valueSize":1},{"declaration":11224,"isOffset":false,"isSlot":false,"src":"15322:2:27","valueSize":1},{"declaration":11222,"isOffset":false,"isSlot":false,"src":"15119:5:27","valueSize":1},{"declaration":11222,"isOffset":false,"isSlot":false,"src":"15835:5:27","valueSize":1}],"id":11229,"nodeType":"InlineAssembly","src":"14655:1467:27"}]},"documentation":{"id":11220,"nodeType":"StructuredDocumentation","src":"14411:100:27","text":"@dev Sends all of ERC20 `token` from the current contract to `to`.\n Reverts upon failure."},"id":11231,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAll","nameLocation":"14525:15:27","nodeType":"FunctionDefinition","parameters":{"id":11225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11222,"mutability":"mutable","name":"token","nameLocation":"14549:5:27","nodeType":"VariableDeclaration","scope":11231,"src":"14541:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11221,"name":"address","nodeType":"ElementaryTypeName","src":"14541:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11224,"mutability":"mutable","name":"to","nameLocation":"14564:2:27","nodeType":"VariableDeclaration","scope":11231,"src":"14556:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11223,"name":"address","nodeType":"ElementaryTypeName","src":"14556:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14540:27:27"},"returnParameters":{"id":11228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11227,"mutability":"mutable","name":"amount","nameLocation":"14594:6:27","nodeType":"VariableDeclaration","scope":11231,"src":"14586:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11226,"name":"uint256","nodeType":"ElementaryTypeName","src":"14586:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14585:16:27"},"scope":11372,"src":"14516:1612:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11242,"nodeType":"Block","src":"16335:863:27","statements":[{"AST":{"nativeSrc":"16397:795:27","nodeType":"YulBlock","src":"16397:795:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16418:4:27","nodeType":"YulLiteral","src":"16418:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"16424:2:27","nodeType":"YulIdentifier","src":"16424:2:27"}],"functionName":{"name":"mstore","nativeSrc":"16411:6:27","nodeType":"YulIdentifier","src":"16411:6:27"},"nativeSrc":"16411:16:27","nodeType":"YulFunctionCall","src":"16411:16:27"},"nativeSrc":"16411:16:27","nodeType":"YulExpressionStatement","src":"16411:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16475:4:27","nodeType":"YulLiteral","src":"16475:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"16481:6:27","nodeType":"YulIdentifier","src":"16481:6:27"}],"functionName":{"name":"mstore","nativeSrc":"16468:6:27","nodeType":"YulIdentifier","src":"16468:6:27"},"nativeSrc":"16468:20:27","nodeType":"YulFunctionCall","src":"16468:20:27"},"nativeSrc":"16468:20:27","nodeType":"YulExpressionStatement","src":"16468:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16540:4:27","nodeType":"YulLiteral","src":"16540:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16546:34:27","nodeType":"YulLiteral","src":"16546:34:27","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"16533:6:27","nodeType":"YulIdentifier","src":"16533:6:27"},"nativeSrc":"16533:48:27","nodeType":"YulFunctionCall","src":"16533:48:27"},"nativeSrc":"16533:48:27","nodeType":"YulExpressionStatement","src":"16533:48:27"},{"body":{"nativeSrc":"16972:113:27","nodeType":"YulBlock","src":"16972:113:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16997:4:27","nodeType":"YulLiteral","src":"16997:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17003:10:27","nodeType":"YulLiteral","src":"17003:10:27","type":"","value":"0x3e3f8f73"}],"functionName":{"name":"mstore","nativeSrc":"16990:6:27","nodeType":"YulIdentifier","src":"16990:6:27"},"nativeSrc":"16990:24:27","nodeType":"YulFunctionCall","src":"16990:24:27"},"nativeSrc":"16990:24:27","nodeType":"YulExpressionStatement","src":"16990:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17060:4:27","nodeType":"YulLiteral","src":"17060:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"17066:4:27","nodeType":"YulLiteral","src":"17066:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"17053:6:27","nodeType":"YulIdentifier","src":"17053:6:27"},"nativeSrc":"17053:18:27","nodeType":"YulFunctionCall","src":"17053:18:27"},"nativeSrc":"17053:18:27","nodeType":"YulExpressionStatement","src":"17053:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16810:4:27","nodeType":"YulLiteral","src":"16810:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"16804:5:27","nodeType":"YulIdentifier","src":"16804:5:27"},"nativeSrc":"16804:11:27","nodeType":"YulFunctionCall","src":"16804:11:27"},{"kind":"number","nativeSrc":"16817:1:27","nodeType":"YulLiteral","src":"16817:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"16801:2:27","nodeType":"YulIdentifier","src":"16801:2:27"},"nativeSrc":"16801:18:27","nodeType":"YulFunctionCall","src":"16801:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"16828:14:27","nodeType":"YulIdentifier","src":"16828:14:27"},"nativeSrc":"16828:16:27","nodeType":"YulFunctionCall","src":"16828:16:27"}],"functionName":{"name":"iszero","nativeSrc":"16821:6:27","nodeType":"YulIdentifier","src":"16821:6:27"},"nativeSrc":"16821:24:27","nodeType":"YulFunctionCall","src":"16821:24:27"}],"functionName":{"name":"or","nativeSrc":"16798:2:27","nodeType":"YulIdentifier","src":"16798:2:27"},"nativeSrc":"16798:48:27","nodeType":"YulFunctionCall","src":"16798:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16899:3:27","nodeType":"YulIdentifier","src":"16899:3:27"},"nativeSrc":"16899:5:27","nodeType":"YulFunctionCall","src":"16899:5:27"},{"name":"token","nativeSrc":"16906:5:27","nodeType":"YulIdentifier","src":"16906:5:27"},{"kind":"number","nativeSrc":"16913:1:27","nodeType":"YulLiteral","src":"16913:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"16916:4:27","nodeType":"YulLiteral","src":"16916:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"16922:4:27","nodeType":"YulLiteral","src":"16922:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"16928:4:27","nodeType":"YulLiteral","src":"16928:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16934:4:27","nodeType":"YulLiteral","src":"16934:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"16894:4:27","nodeType":"YulIdentifier","src":"16894:4:27"},"nativeSrc":"16894:45:27","nodeType":"YulFunctionCall","src":"16894:45:27"}],"functionName":{"name":"and","nativeSrc":"16713:3:27","nodeType":"YulIdentifier","src":"16713:3:27"},"nativeSrc":"16713:244:27","nodeType":"YulFunctionCall","src":"16713:244:27"}],"functionName":{"name":"iszero","nativeSrc":"16689:6:27","nodeType":"YulIdentifier","src":"16689:6:27"},"nativeSrc":"16689:282:27","nodeType":"YulFunctionCall","src":"16689:282:27"},"nativeSrc":"16686:399:27","nodeType":"YulIf","src":"16686:399:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17105:4:27","nodeType":"YulLiteral","src":"17105:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"17111:1:27","nodeType":"YulLiteral","src":"17111:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17098:6:27","nodeType":"YulIdentifier","src":"17098:6:27"},"nativeSrc":"17098:15:27","nodeType":"YulFunctionCall","src":"17098:15:27"},"nativeSrc":"17098:15:27","nodeType":"YulExpressionStatement","src":"17098:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11238,"isOffset":false,"isSlot":false,"src":"16481:6:27","valueSize":1},{"declaration":11236,"isOffset":false,"isSlot":false,"src":"16424:2:27","valueSize":1},{"declaration":11234,"isOffset":false,"isSlot":false,"src":"16906:5:27","valueSize":1}],"id":11241,"nodeType":"InlineAssembly","src":"16388:804:27"}]},"documentation":{"id":11232,"nodeType":"StructuredDocumentation","src":"16134:123:27","text":"@dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n Reverts upon failure."},"id":11243,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"16271:11:27","nodeType":"FunctionDefinition","parameters":{"id":11239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11234,"mutability":"mutable","name":"token","nameLocation":"16291:5:27","nodeType":"VariableDeclaration","scope":11243,"src":"16283:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11233,"name":"address","nodeType":"ElementaryTypeName","src":"16283:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11236,"mutability":"mutable","name":"to","nameLocation":"16306:2:27","nodeType":"VariableDeclaration","scope":11243,"src":"16298:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11235,"name":"address","nodeType":"ElementaryTypeName","src":"16298:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11238,"mutability":"mutable","name":"amount","nameLocation":"16318:6:27","nodeType":"VariableDeclaration","scope":11243,"src":"16310:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11237,"name":"uint256","nodeType":"ElementaryTypeName","src":"16310:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16282:43:27"},"returnParameters":{"id":11240,"nodeType":"ParameterList","parameters":[],"src":"16335:0:27"},"scope":11372,"src":"16262:936:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11254,"nodeType":"Block","src":"17591:1542:27","statements":[{"AST":{"nativeSrc":"17653:1474:27","nodeType":"YulBlock","src":"17653:1474:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17674:4:27","nodeType":"YulLiteral","src":"17674:4:27","type":"","value":"0x14"},{"name":"to","nativeSrc":"17680:2:27","nodeType":"YulIdentifier","src":"17680:2:27"}],"functionName":{"name":"mstore","nativeSrc":"17667:6:27","nodeType":"YulIdentifier","src":"17667:6:27"},"nativeSrc":"17667:16:27","nodeType":"YulFunctionCall","src":"17667:16:27"},"nativeSrc":"17667:16:27","nodeType":"YulExpressionStatement","src":"17667:16:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17731:4:27","nodeType":"YulLiteral","src":"17731:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"17737:6:27","nodeType":"YulIdentifier","src":"17737:6:27"}],"functionName":{"name":"mstore","nativeSrc":"17724:6:27","nodeType":"YulIdentifier","src":"17724:6:27"},"nativeSrc":"17724:20:27","nodeType":"YulFunctionCall","src":"17724:20:27"},"nativeSrc":"17724:20:27","nodeType":"YulExpressionStatement","src":"17724:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17796:4:27","nodeType":"YulLiteral","src":"17796:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17802:34:27","nodeType":"YulLiteral","src":"17802:34:27","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"17789:6:27","nodeType":"YulIdentifier","src":"17789:6:27"},"nativeSrc":"17789:48:27","nodeType":"YulFunctionCall","src":"17789:48:27"},"nativeSrc":"17789:48:27","nodeType":"YulExpressionStatement","src":"17789:48:27"},{"body":{"nativeSrc":"18227:793:27","nodeType":"YulBlock","src":"18227:793:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18252:4:27","nodeType":"YulLiteral","src":"18252:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"18258:1:27","nodeType":"YulLiteral","src":"18258:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18245:6:27","nodeType":"YulIdentifier","src":"18245:6:27"},"nativeSrc":"18245:15:27","nodeType":"YulFunctionCall","src":"18245:15:27"},"nativeSrc":"18245:15:27","nodeType":"YulExpressionStatement","src":"18245:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18313:4:27","nodeType":"YulLiteral","src":"18313:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18319:34:27","nodeType":"YulLiteral","src":"18319:34:27","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"18306:6:27","nodeType":"YulIdentifier","src":"18306:6:27"},"nativeSrc":"18306:48:27","nodeType":"YulFunctionCall","src":"18306:48:27"},"nativeSrc":"18306:48:27","nodeType":"YulExpressionStatement","src":"18306:48:27"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18411:3:27","nodeType":"YulIdentifier","src":"18411:3:27"},"nativeSrc":"18411:5:27","nodeType":"YulFunctionCall","src":"18411:5:27"},{"name":"token","nativeSrc":"18418:5:27","nodeType":"YulIdentifier","src":"18418:5:27"},{"kind":"number","nativeSrc":"18425:1:27","nodeType":"YulLiteral","src":"18425:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"18428:4:27","nodeType":"YulLiteral","src":"18428:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18434:4:27","nodeType":"YulLiteral","src":"18434:4:27","type":"","value":"0x44"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"18440:8:27","nodeType":"YulIdentifier","src":"18440:8:27"},"nativeSrc":"18440:10:27","nodeType":"YulFunctionCall","src":"18440:10:27"},{"kind":"number","nativeSrc":"18452:4:27","nodeType":"YulLiteral","src":"18452:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"18406:4:27","nodeType":"YulIdentifier","src":"18406:4:27"},"nativeSrc":"18406:51:27","nodeType":"YulFunctionCall","src":"18406:51:27"}],"functionName":{"name":"pop","nativeSrc":"18402:3:27","nodeType":"YulIdentifier","src":"18402:3:27"},"nativeSrc":"18402:56:27","nodeType":"YulFunctionCall","src":"18402:56:27"},"nativeSrc":"18402:56:27","nodeType":"YulExpressionStatement","src":"18402:56:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18505:4:27","nodeType":"YulLiteral","src":"18505:4:27","type":"","value":"0x34"},{"name":"amount","nativeSrc":"18511:6:27","nodeType":"YulIdentifier","src":"18511:6:27"}],"functionName":{"name":"mstore","nativeSrc":"18498:6:27","nodeType":"YulIdentifier","src":"18498:6:27"},"nativeSrc":"18498:20:27","nodeType":"YulFunctionCall","src":"18498:20:27"},"nativeSrc":"18498:20:27","nodeType":"YulExpressionStatement","src":"18498:20:27"},{"body":{"nativeSrc":"18881:125:27","nodeType":"YulBlock","src":"18881:125:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18910:4:27","nodeType":"YulLiteral","src":"18910:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18916:10:27","nodeType":"YulLiteral","src":"18916:10:27","type":"","value":"0x3e3f8f73"}],"functionName":{"name":"mstore","nativeSrc":"18903:6:27","nodeType":"YulIdentifier","src":"18903:6:27"},"nativeSrc":"18903:24:27","nodeType":"YulFunctionCall","src":"18903:24:27"},"nativeSrc":"18903:24:27","nodeType":"YulExpressionStatement","src":"18903:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18977:4:27","nodeType":"YulLiteral","src":"18977:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18983:4:27","nodeType":"YulLiteral","src":"18983:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18970:6:27","nodeType":"YulIdentifier","src":"18970:6:27"},"nativeSrc":"18970:18:27","nodeType":"YulFunctionCall","src":"18970:18:27"},"nativeSrc":"18970:18:27","nodeType":"YulExpressionStatement","src":"18970:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18707:4:27","nodeType":"YulLiteral","src":"18707:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18701:5:27","nodeType":"YulIdentifier","src":"18701:5:27"},"nativeSrc":"18701:11:27","nodeType":"YulFunctionCall","src":"18701:11:27"},{"kind":"number","nativeSrc":"18714:1:27","nodeType":"YulLiteral","src":"18714:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"18698:2:27","nodeType":"YulIdentifier","src":"18698:2:27"},"nativeSrc":"18698:18:27","nodeType":"YulFunctionCall","src":"18698:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18725:14:27","nodeType":"YulIdentifier","src":"18725:14:27"},"nativeSrc":"18725:16:27","nodeType":"YulFunctionCall","src":"18725:16:27"}],"functionName":{"name":"iszero","nativeSrc":"18718:6:27","nodeType":"YulIdentifier","src":"18718:6:27"},"nativeSrc":"18718:24:27","nodeType":"YulFunctionCall","src":"18718:24:27"}],"functionName":{"name":"or","nativeSrc":"18695:2:27","nodeType":"YulIdentifier","src":"18695:2:27"},"nativeSrc":"18695:48:27","nodeType":"YulFunctionCall","src":"18695:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18800:3:27","nodeType":"YulIdentifier","src":"18800:3:27"},"nativeSrc":"18800:5:27","nodeType":"YulFunctionCall","src":"18800:5:27"},{"name":"token","nativeSrc":"18807:5:27","nodeType":"YulIdentifier","src":"18807:5:27"},{"kind":"number","nativeSrc":"18814:1:27","nodeType":"YulLiteral","src":"18814:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"18817:4:27","nodeType":"YulLiteral","src":"18817:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18823:4:27","nodeType":"YulLiteral","src":"18823:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"18829:4:27","nodeType":"YulLiteral","src":"18829:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18835:4:27","nodeType":"YulLiteral","src":"18835:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"18795:4:27","nodeType":"YulIdentifier","src":"18795:4:27"},"nativeSrc":"18795:45:27","nodeType":"YulFunctionCall","src":"18795:45:27"}],"functionName":{"name":"and","nativeSrc":"18666:3:27","nodeType":"YulIdentifier","src":"18666:3:27"},"nativeSrc":"18666:196:27","nodeType":"YulFunctionCall","src":"18666:196:27"}],"functionName":{"name":"iszero","nativeSrc":"18638:6:27","nodeType":"YulIdentifier","src":"18638:6:27"},"nativeSrc":"18638:242:27","nodeType":"YulFunctionCall","src":"18638:242:27"},"nativeSrc":"18635:371:27","nodeType":"YulIf","src":"18635:371:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18065:4:27","nodeType":"YulLiteral","src":"18065:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18059:5:27","nodeType":"YulIdentifier","src":"18059:5:27"},"nativeSrc":"18059:11:27","nodeType":"YulFunctionCall","src":"18059:11:27"},{"kind":"number","nativeSrc":"18072:1:27","nodeType":"YulLiteral","src":"18072:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"18056:2:27","nodeType":"YulIdentifier","src":"18056:2:27"},"nativeSrc":"18056:18:27","nodeType":"YulFunctionCall","src":"18056:18:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18083:14:27","nodeType":"YulIdentifier","src":"18083:14:27"},"nativeSrc":"18083:16:27","nodeType":"YulFunctionCall","src":"18083:16:27"}],"functionName":{"name":"iszero","nativeSrc":"18076:6:27","nodeType":"YulIdentifier","src":"18076:6:27"},"nativeSrc":"18076:24:27","nodeType":"YulFunctionCall","src":"18076:24:27"}],"functionName":{"name":"or","nativeSrc":"18053:2:27","nodeType":"YulIdentifier","src":"18053:2:27"},"nativeSrc":"18053:48:27","nodeType":"YulFunctionCall","src":"18053:48:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18154:3:27","nodeType":"YulIdentifier","src":"18154:3:27"},"nativeSrc":"18154:5:27","nodeType":"YulFunctionCall","src":"18154:5:27"},{"name":"token","nativeSrc":"18161:5:27","nodeType":"YulIdentifier","src":"18161:5:27"},{"kind":"number","nativeSrc":"18168:1:27","nodeType":"YulLiteral","src":"18168:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"18171:4:27","nodeType":"YulLiteral","src":"18171:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18177:4:27","nodeType":"YulLiteral","src":"18177:4:27","type":"","value":"0x44"},{"kind":"number","nativeSrc":"18183:4:27","nodeType":"YulLiteral","src":"18183:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18189:4:27","nodeType":"YulLiteral","src":"18189:4:27","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"18149:4:27","nodeType":"YulIdentifier","src":"18149:4:27"},"nativeSrc":"18149:45:27","nodeType":"YulFunctionCall","src":"18149:45:27"}],"functionName":{"name":"and","nativeSrc":"17968:3:27","nodeType":"YulIdentifier","src":"17968:3:27"},"nativeSrc":"17968:244:27","nodeType":"YulFunctionCall","src":"17968:244:27"}],"functionName":{"name":"iszero","nativeSrc":"17944:6:27","nodeType":"YulIdentifier","src":"17944:6:27"},"nativeSrc":"17944:282:27","nodeType":"YulFunctionCall","src":"17944:282:27"},"nativeSrc":"17941:1079:27","nodeType":"YulIf","src":"17941:1079:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19040:4:27","nodeType":"YulLiteral","src":"19040:4:27","type":"","value":"0x34"},{"kind":"number","nativeSrc":"19046:1:27","nodeType":"YulLiteral","src":"19046:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19033:6:27","nodeType":"YulIdentifier","src":"19033:6:27"},"nativeSrc":"19033:15:27","nodeType":"YulFunctionCall","src":"19033:15:27"},"nativeSrc":"19033:15:27","nodeType":"YulExpressionStatement","src":"19033:15:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11250,"isOffset":false,"isSlot":false,"src":"17737:6:27","valueSize":1},{"declaration":11250,"isOffset":false,"isSlot":false,"src":"18511:6:27","valueSize":1},{"declaration":11248,"isOffset":false,"isSlot":false,"src":"17680:2:27","valueSize":1},{"declaration":11246,"isOffset":false,"isSlot":false,"src":"18161:5:27","valueSize":1},{"declaration":11246,"isOffset":false,"isSlot":false,"src":"18418:5:27","valueSize":1},{"declaration":11246,"isOffset":false,"isSlot":false,"src":"18807:5:27","valueSize":1}],"id":11253,"nodeType":"InlineAssembly","src":"17644:1483:27"}]},"documentation":{"id":11244,"nodeType":"StructuredDocumentation","src":"17204:300:27","text":"@dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n If the initial attempt to approve fails, attempts to reset the approved amount to zero,\n then retries the approval again (some tokens, e.g. USDT, requires this).\n Reverts upon failure."},"id":11255,"implemented":true,"kind":"function","modifiers":[],"name":"safeApproveWithRetry","nameLocation":"17518:20:27","nodeType":"FunctionDefinition","parameters":{"id":11251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11246,"mutability":"mutable","name":"token","nameLocation":"17547:5:27","nodeType":"VariableDeclaration","scope":11255,"src":"17539:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11245,"name":"address","nodeType":"ElementaryTypeName","src":"17539:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11248,"mutability":"mutable","name":"to","nameLocation":"17562:2:27","nodeType":"VariableDeclaration","scope":11255,"src":"17554:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11247,"name":"address","nodeType":"ElementaryTypeName","src":"17554:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11250,"mutability":"mutable","name":"amount","nameLocation":"17574:6:27","nodeType":"VariableDeclaration","scope":11255,"src":"17566:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11249,"name":"uint256","nodeType":"ElementaryTypeName","src":"17566:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17538:43:27"},"returnParameters":{"id":11252,"nodeType":"ParameterList","parameters":[],"src":"17591:0:27"},"scope":11372,"src":"17509:1624:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11266,"nodeType":"Block","src":"19350:649:27","statements":[{"AST":{"nativeSrc":"19412:581:27","nodeType":"YulBlock","src":"19412:581:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19433:4:27","nodeType":"YulLiteral","src":"19433:4:27","type":"","value":"0x14"},{"name":"account","nativeSrc":"19439:7:27","nodeType":"YulIdentifier","src":"19439:7:27"}],"functionName":{"name":"mstore","nativeSrc":"19426:6:27","nodeType":"YulIdentifier","src":"19426:6:27"},"nativeSrc":"19426:21:27","nodeType":"YulFunctionCall","src":"19426:21:27"},"nativeSrc":"19426:21:27","nodeType":"YulExpressionStatement","src":"19426:21:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19500:4:27","nodeType":"YulLiteral","src":"19500:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19506:34:27","nodeType":"YulLiteral","src":"19506:34:27","type":"","value":"0x70a08231000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"19493:6:27","nodeType":"YulIdentifier","src":"19493:6:27"},"nativeSrc":"19493:48:27","nodeType":"YulFunctionCall","src":"19493:48:27"},"nativeSrc":"19493:48:27","nodeType":"YulExpressionStatement","src":"19493:48:27"},{"nativeSrc":"19579:404:27","nodeType":"YulAssignment","src":"19579:404:27","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19696:4:27","nodeType":"YulLiteral","src":"19696:4:27","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"19690:5:27","nodeType":"YulIdentifier","src":"19690:5:27"},"nativeSrc":"19690:11:27","nodeType":"YulFunctionCall","src":"19690:11:27"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"19815:14:27","nodeType":"YulIdentifier","src":"19815:14:27"},"nativeSrc":"19815:16:27","nodeType":"YulFunctionCall","src":"19815:16:27"},{"kind":"number","nativeSrc":"19833:4:27","nodeType":"YulLiteral","src":"19833:4:27","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"19812:2:27","nodeType":"YulIdentifier","src":"19812:2:27"},"nativeSrc":"19812:26:27","nodeType":"YulFunctionCall","src":"19812:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"19906:3:27","nodeType":"YulIdentifier","src":"19906:3:27"},"nativeSrc":"19906:5:27","nodeType":"YulFunctionCall","src":"19906:5:27"},{"name":"token","nativeSrc":"19913:5:27","nodeType":"YulIdentifier","src":"19913:5:27"},{"kind":"number","nativeSrc":"19920:4:27","nodeType":"YulLiteral","src":"19920:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"19926:4:27","nodeType":"YulLiteral","src":"19926:4:27","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19932:4:27","nodeType":"YulLiteral","src":"19932:4:27","type":"","value":"0x20"},{"kind":"number","nativeSrc":"19938:4:27","nodeType":"YulLiteral","src":"19938:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"19895:10:27","nodeType":"YulIdentifier","src":"19895:10:27"},"nativeSrc":"19895:48:27","nodeType":"YulFunctionCall","src":"19895:48:27"}],"functionName":{"name":"and","nativeSrc":"19723:3:27","nodeType":"YulIdentifier","src":"19723:3:27"},"nativeSrc":"19723:242:27","nodeType":"YulFunctionCall","src":"19723:242:27"}],"functionName":{"name":"mul","nativeSrc":"19605:3:27","nodeType":"YulIdentifier","src":"19605:3:27"},"nativeSrc":"19605:378:27","nodeType":"YulFunctionCall","src":"19605:378:27"},"variableNames":[{"name":"amount","nativeSrc":"19579:6:27","nodeType":"YulIdentifier","src":"19579:6:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11260,"isOffset":false,"isSlot":false,"src":"19439:7:27","valueSize":1},{"declaration":11263,"isOffset":false,"isSlot":false,"src":"19579:6:27","valueSize":1},{"declaration":11258,"isOffset":false,"isSlot":false,"src":"19913:5:27","valueSize":1}],"id":11265,"nodeType":"InlineAssembly","src":"19403:590:27"}]},"documentation":{"id":11256,"nodeType":"StructuredDocumentation","src":"19139:116:27","text":"@dev Returns the amount of ERC20 `token` owned by `account`.\n Returns zero if the `token` does not exist."},"id":11267,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"19269:9:27","nodeType":"FunctionDefinition","parameters":{"id":11261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11258,"mutability":"mutable","name":"token","nameLocation":"19287:5:27","nodeType":"VariableDeclaration","scope":11267,"src":"19279:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11257,"name":"address","nodeType":"ElementaryTypeName","src":"19279:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11260,"mutability":"mutable","name":"account","nameLocation":"19302:7:27","nodeType":"VariableDeclaration","scope":11267,"src":"19294:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11259,"name":"address","nodeType":"ElementaryTypeName","src":"19294:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19278:32:27"},"returnParameters":{"id":11264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11263,"mutability":"mutable","name":"amount","nameLocation":"19342:6:27","nodeType":"VariableDeclaration","scope":11267,"src":"19334:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11262,"name":"uint256","nodeType":"ElementaryTypeName","src":"19334:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19333:16:27"},"scope":11372,"src":"19260:739:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11295,"nodeType":"Block","src":"20382:136:27","statements":[{"condition":{"id":11285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20396:45:27","subExpression":{"arguments":[{"id":11280,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11270,"src":"20417:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11281,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"20424:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11282,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"20430:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11283,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11276,"src":"20434:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11279,"name":"trySafeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11193,"src":"20397:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,address,uint256) returns (bool)"}},"id":11284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20397:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11294,"nodeType":"IfStatement","src":"20392:120:27","trueBody":{"id":11293,"nodeType":"Block","src":"20443:69:27","statements":[{"expression":{"arguments":[{"id":11287,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11270,"src":"20477:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11288,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"20484:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11289,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"20490:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11290,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11276,"src":"20494:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11286,"name":"permit2TransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11310,"src":"20457:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20457:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11292,"nodeType":"ExpressionStatement","src":"20457:44:27"}]}}]},"documentation":{"id":11268,"nodeType":"StructuredDocumentation","src":"20005:279:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n If the initial attempt fails, try to use Permit2 to transfer the token.\n Reverts upon failure.\n The `from` account must have at least `amount` approved for the current contract to manage."},"id":11296,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom2","nameLocation":"20298:17:27","nodeType":"FunctionDefinition","parameters":{"id":11277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11270,"mutability":"mutable","name":"token","nameLocation":"20324:5:27","nodeType":"VariableDeclaration","scope":11296,"src":"20316:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11269,"name":"address","nodeType":"ElementaryTypeName","src":"20316:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11272,"mutability":"mutable","name":"from","nameLocation":"20339:4:27","nodeType":"VariableDeclaration","scope":11296,"src":"20331:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11271,"name":"address","nodeType":"ElementaryTypeName","src":"20331:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11274,"mutability":"mutable","name":"to","nameLocation":"20353:2:27","nodeType":"VariableDeclaration","scope":11296,"src":"20345:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11273,"name":"address","nodeType":"ElementaryTypeName","src":"20345:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11276,"mutability":"mutable","name":"amount","nameLocation":"20365:6:27","nodeType":"VariableDeclaration","scope":11296,"src":"20357:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11275,"name":"uint256","nodeType":"ElementaryTypeName","src":"20357:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20315:57:27"},"returnParameters":{"id":11278,"nodeType":"ParameterList","parameters":[],"src":"20382:0:27"},"scope":11372,"src":"20289:229:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11309,"nodeType":"Block","src":"20739:860:27","statements":[{"AST":{"nativeSrc":"20801:792:27","nodeType":"YulBlock","src":"20801:792:27","statements":[{"nativeSrc":"20815:20:27","nodeType":"YulVariableDeclaration","src":"20815:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"20830:4:27","nodeType":"YulLiteral","src":"20830:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20824:5:27","nodeType":"YulIdentifier","src":"20824:5:27"},"nativeSrc":"20824:11:27","nodeType":"YulFunctionCall","src":"20824:11:27"},"variables":[{"name":"m","nativeSrc":"20819:1:27","nodeType":"YulTypedName","src":"20819:1:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20859:1:27","nodeType":"YulIdentifier","src":"20859:1:27"},{"kind":"number","nativeSrc":"20862:4:27","nodeType":"YulLiteral","src":"20862:4:27","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"20855:3:27","nodeType":"YulIdentifier","src":"20855:3:27"},"nativeSrc":"20855:12:27","nodeType":"YulFunctionCall","src":"20855:12:27"},{"arguments":[{"kind":"number","nativeSrc":"20873:2:27","nodeType":"YulLiteral","src":"20873:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"20881:2:27","nodeType":"YulLiteral","src":"20881:2:27","type":"","value":"96"},{"name":"token","nativeSrc":"20885:5:27","nodeType":"YulIdentifier","src":"20885:5:27"}],"functionName":{"name":"shl","nativeSrc":"20877:3:27","nodeType":"YulIdentifier","src":"20877:3:27"},"nativeSrc":"20877:14:27","nodeType":"YulFunctionCall","src":"20877:14:27"}],"functionName":{"name":"shr","nativeSrc":"20869:3:27","nodeType":"YulIdentifier","src":"20869:3:27"},"nativeSrc":"20869:23:27","nodeType":"YulFunctionCall","src":"20869:23:27"}],"functionName":{"name":"mstore","nativeSrc":"20848:6:27","nodeType":"YulIdentifier","src":"20848:6:27"},"nativeSrc":"20848:45:27","nodeType":"YulFunctionCall","src":"20848:45:27"},"nativeSrc":"20848:45:27","nodeType":"YulExpressionStatement","src":"20848:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20917:1:27","nodeType":"YulIdentifier","src":"20917:1:27"},{"kind":"number","nativeSrc":"20920:4:27","nodeType":"YulLiteral","src":"20920:4:27","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"20913:3:27","nodeType":"YulIdentifier","src":"20913:3:27"},"nativeSrc":"20913:12:27","nodeType":"YulFunctionCall","src":"20913:12:27"},{"name":"amount","nativeSrc":"20927:6:27","nodeType":"YulIdentifier","src":"20927:6:27"}],"functionName":{"name":"mstore","nativeSrc":"20906:6:27","nodeType":"YulIdentifier","src":"20906:6:27"},"nativeSrc":"20906:28:27","nodeType":"YulFunctionCall","src":"20906:28:27"},"nativeSrc":"20906:28:27","nodeType":"YulExpressionStatement","src":"20906:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20958:1:27","nodeType":"YulIdentifier","src":"20958:1:27"},{"kind":"number","nativeSrc":"20961:4:27","nodeType":"YulLiteral","src":"20961:4:27","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"20954:3:27","nodeType":"YulIdentifier","src":"20954:3:27"},"nativeSrc":"20954:12:27","nodeType":"YulFunctionCall","src":"20954:12:27"},{"name":"to","nativeSrc":"20968:2:27","nodeType":"YulIdentifier","src":"20968:2:27"}],"functionName":{"name":"mstore","nativeSrc":"20947:6:27","nodeType":"YulIdentifier","src":"20947:6:27"},"nativeSrc":"20947:24:27","nodeType":"YulFunctionCall","src":"20947:24:27"},"nativeSrc":"20947:24:27","nodeType":"YulExpressionStatement","src":"20947:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20995:1:27","nodeType":"YulIdentifier","src":"20995:1:27"},{"kind":"number","nativeSrc":"20998:4:27","nodeType":"YulLiteral","src":"20998:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20991:3:27","nodeType":"YulIdentifier","src":"20991:3:27"},"nativeSrc":"20991:12:27","nodeType":"YulFunctionCall","src":"20991:12:27"},{"arguments":[{"kind":"number","nativeSrc":"21009:2:27","nodeType":"YulLiteral","src":"21009:2:27","type":"","value":"96"},{"name":"from","nativeSrc":"21013:4:27","nodeType":"YulIdentifier","src":"21013:4:27"}],"functionName":{"name":"shl","nativeSrc":"21005:3:27","nodeType":"YulIdentifier","src":"21005:3:27"},"nativeSrc":"21005:13:27","nodeType":"YulFunctionCall","src":"21005:13:27"}],"functionName":{"name":"mstore","nativeSrc":"20984:6:27","nodeType":"YulIdentifier","src":"20984:6:27"},"nativeSrc":"20984:35:27","nodeType":"YulFunctionCall","src":"20984:35:27"},"nativeSrc":"20984:35:27","nodeType":"YulExpressionStatement","src":"20984:35:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"21103:1:27","nodeType":"YulIdentifier","src":"21103:1:27"},{"kind":"number","nativeSrc":"21106:34:27","nodeType":"YulLiteral","src":"21106:34:27","type":"","value":"0x36c78516000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"21096:6:27","nodeType":"YulIdentifier","src":"21096:6:27"},"nativeSrc":"21096:45:27","nodeType":"YulFunctionCall","src":"21096:45:27"},"nativeSrc":"21096:45:27","nodeType":"YulExpressionStatement","src":"21096:45:27"},{"nativeSrc":"21154:16:27","nodeType":"YulVariableDeclaration","src":"21154:16:27","value":{"name":"PERMIT2","nativeSrc":"21163:7:27","nodeType":"YulIdentifier","src":"21163:7:27"},"variables":[{"name":"p","nativeSrc":"21158:1:27","nodeType":"YulTypedName","src":"21158:1:27","type":""}]},{"nativeSrc":"21183:30:27","nodeType":"YulVariableDeclaration","src":"21183:30:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"21200:7:27","nodeType":"YulIdentifier","src":"21200:7:27"},"nativeSrc":"21200:9:27","nodeType":"YulFunctionCall","src":"21200:9:27"},{"kind":"number","nativeSrc":"21211:1:27","nodeType":"YulLiteral","src":"21211:1:27","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"21197:2:27","nodeType":"YulIdentifier","src":"21197:2:27"},"nativeSrc":"21197:16:27","nodeType":"YulFunctionCall","src":"21197:16:27"},"variables":[{"name":"exists","nativeSrc":"21187:6:27","nodeType":"YulTypedName","src":"21187:6:27","type":""}]},{"body":{"nativeSrc":"21244:44:27","nodeType":"YulBlock","src":"21244:44:27","statements":[{"nativeSrc":"21246:40:27","nodeType":"YulAssignment","src":"21246:40:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"p","nativeSrc":"21282:1:27","nodeType":"YulIdentifier","src":"21282:1:27"}],"functionName":{"name":"extcodesize","nativeSrc":"21270:11:27","nodeType":"YulIdentifier","src":"21270:11:27"},"nativeSrc":"21270:14:27","nodeType":"YulFunctionCall","src":"21270:14:27"}],"functionName":{"name":"iszero","nativeSrc":"21263:6:27","nodeType":"YulIdentifier","src":"21263:6:27"},"nativeSrc":"21263:22:27","nodeType":"YulFunctionCall","src":"21263:22:27"}],"functionName":{"name":"iszero","nativeSrc":"21256:6:27","nodeType":"YulIdentifier","src":"21256:6:27"},"nativeSrc":"21256:30:27","nodeType":"YulFunctionCall","src":"21256:30:27"},"variableNames":[{"name":"exists","nativeSrc":"21246:6:27","nodeType":"YulIdentifier","src":"21246:6:27"}]}]},"condition":{"arguments":[{"name":"exists","nativeSrc":"21236:6:27","nodeType":"YulIdentifier","src":"21236:6:27"}],"functionName":{"name":"iszero","nativeSrc":"21229:6:27","nodeType":"YulIdentifier","src":"21229:6:27"},"nativeSrc":"21229:14:27","nodeType":"YulFunctionCall","src":"21229:14:27"},"nativeSrc":"21226:62:27","nodeType":"YulIf","src":"21226:62:27"},{"body":{"nativeSrc":"21381:202:27","nodeType":"YulBlock","src":"21381:202:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21406:4:27","nodeType":"YulLiteral","src":"21406:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21412:18:27","nodeType":"YulLiteral","src":"21412:18:27","type":"","value":"0x7939f4248757f0fd"}],"functionName":{"name":"mstore","nativeSrc":"21399:6:27","nodeType":"YulIdentifier","src":"21399:6:27"},"nativeSrc":"21399:32:27","nodeType":"YulFunctionCall","src":"21399:32:27"},"nativeSrc":"21399:32:27","nodeType":"YulExpressionStatement","src":"21399:32:27"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21515:4:27","nodeType":"YulLiteral","src":"21515:4:27","type":"","value":"0x18"},{"arguments":[{"kind":"number","nativeSrc":"21525:1:27","nodeType":"YulLiteral","src":"21525:1:27","type":"","value":"2"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21546:3:27","nodeType":"YulLiteral","src":"21546:3:27","type":"","value":"160"},{"name":"amount","nativeSrc":"21551:6:27","nodeType":"YulIdentifier","src":"21551:6:27"}],"functionName":{"name":"shr","nativeSrc":"21542:3:27","nodeType":"YulIdentifier","src":"21542:3:27"},"nativeSrc":"21542:16:27","nodeType":"YulFunctionCall","src":"21542:16:27"}],"functionName":{"name":"iszero","nativeSrc":"21535:6:27","nodeType":"YulIdentifier","src":"21535:6:27"},"nativeSrc":"21535:24:27","nodeType":"YulFunctionCall","src":"21535:24:27"}],"functionName":{"name":"iszero","nativeSrc":"21528:6:27","nodeType":"YulIdentifier","src":"21528:6:27"},"nativeSrc":"21528:32:27","nodeType":"YulFunctionCall","src":"21528:32:27"}],"functionName":{"name":"shl","nativeSrc":"21521:3:27","nodeType":"YulIdentifier","src":"21521:3:27"},"nativeSrc":"21521:40:27","nodeType":"YulFunctionCall","src":"21521:40:27"}],"functionName":{"name":"add","nativeSrc":"21511:3:27","nodeType":"YulIdentifier","src":"21511:3:27"},"nativeSrc":"21511:51:27","nodeType":"YulFunctionCall","src":"21511:51:27"},{"kind":"number","nativeSrc":"21564:4:27","nodeType":"YulLiteral","src":"21564:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"21504:6:27","nodeType":"YulIdentifier","src":"21504:6:27"},"nativeSrc":"21504:65:27","nodeType":"YulFunctionCall","src":"21504:65:27"},"nativeSrc":"21504:65:27","nodeType":"YulExpressionStatement","src":"21504:65:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"21320:3:27","nodeType":"YulIdentifier","src":"21320:3:27"},"nativeSrc":"21320:5:27","nodeType":"YulFunctionCall","src":"21320:5:27"},{"name":"p","nativeSrc":"21327:1:27","nodeType":"YulIdentifier","src":"21327:1:27"},{"kind":"number","nativeSrc":"21330:1:27","nodeType":"YulLiteral","src":"21330:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"21337:1:27","nodeType":"YulIdentifier","src":"21337:1:27"},{"kind":"number","nativeSrc":"21340:4:27","nodeType":"YulLiteral","src":"21340:4:27","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"21333:3:27","nodeType":"YulIdentifier","src":"21333:3:27"},"nativeSrc":"21333:12:27","nodeType":"YulFunctionCall","src":"21333:12:27"},{"kind":"number","nativeSrc":"21347:4:27","nodeType":"YulLiteral","src":"21347:4:27","type":"","value":"0x84"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"21353:8:27","nodeType":"YulIdentifier","src":"21353:8:27"},"nativeSrc":"21353:10:27","nodeType":"YulFunctionCall","src":"21353:10:27"},{"kind":"number","nativeSrc":"21365:4:27","nodeType":"YulLiteral","src":"21365:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"21315:4:27","nodeType":"YulIdentifier","src":"21315:4:27"},"nativeSrc":"21315:55:27","nodeType":"YulFunctionCall","src":"21315:55:27"},{"name":"exists","nativeSrc":"21372:6:27","nodeType":"YulIdentifier","src":"21372:6:27"}],"functionName":{"name":"and","nativeSrc":"21311:3:27","nodeType":"YulIdentifier","src":"21311:3:27"},"nativeSrc":"21311:68:27","nodeType":"YulFunctionCall","src":"21311:68:27"}],"functionName":{"name":"iszero","nativeSrc":"21304:6:27","nodeType":"YulIdentifier","src":"21304:6:27"},"nativeSrc":"21304:76:27","nodeType":"YulFunctionCall","src":"21304:76:27"},"nativeSrc":"21301:282:27","nodeType":"YulIf","src":"21301:282:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11079,"isOffset":false,"isSlot":false,"src":"21163:7:27","valueSize":1},{"declaration":11305,"isOffset":false,"isSlot":false,"src":"20927:6:27","valueSize":1},{"declaration":11305,"isOffset":false,"isSlot":false,"src":"21551:6:27","valueSize":1},{"declaration":11301,"isOffset":false,"isSlot":false,"src":"21013:4:27","valueSize":1},{"declaration":11303,"isOffset":false,"isSlot":false,"src":"20968:2:27","valueSize":1},{"declaration":11299,"isOffset":false,"isSlot":false,"src":"20885:5:27","valueSize":1}],"id":11308,"nodeType":"InlineAssembly","src":"20792:801:27"}]},"documentation":{"id":11297,"nodeType":"StructuredDocumentation","src":"20524:103:27","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to` via Permit2.\n Reverts upon failure."},"id":11310,"implemented":true,"kind":"function","modifiers":[],"name":"permit2TransferFrom","nameLocation":"20641:19:27","nodeType":"FunctionDefinition","parameters":{"id":11306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11299,"mutability":"mutable","name":"token","nameLocation":"20669:5:27","nodeType":"VariableDeclaration","scope":11310,"src":"20661:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11298,"name":"address","nodeType":"ElementaryTypeName","src":"20661:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11301,"mutability":"mutable","name":"from","nameLocation":"20684:4:27","nodeType":"VariableDeclaration","scope":11310,"src":"20676:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11300,"name":"address","nodeType":"ElementaryTypeName","src":"20676:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11303,"mutability":"mutable","name":"to","nameLocation":"20698:2:27","nodeType":"VariableDeclaration","scope":11310,"src":"20690:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11302,"name":"address","nodeType":"ElementaryTypeName","src":"20690:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11305,"mutability":"mutable","name":"amount","nameLocation":"20710:6:27","nodeType":"VariableDeclaration","scope":11310,"src":"20702:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11304,"name":"uint256","nodeType":"ElementaryTypeName","src":"20702:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20660:57:27"},"returnParameters":{"id":11307,"nodeType":"ParameterList","parameters":[],"src":"20739:0:27"},"scope":11372,"src":"20632:967:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11348,"nodeType":"Block","src":"22028:2261:27","statements":[{"assignments":[11331],"declarations":[{"constant":false,"id":11331,"mutability":"mutable","name":"success","nameLocation":"22043:7:27","nodeType":"VariableDeclaration","scope":11348,"src":"22038:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11330,"name":"bool","nodeType":"ElementaryTypeName","src":"22038:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":11332,"nodeType":"VariableDeclarationStatement","src":"22038:12:27"},{"AST":{"nativeSrc":"22112:2084:27","nodeType":"YulBlock","src":"22112:2084:27","statements":[{"body":{"nativeSrc":"22163:2023:27","nodeType":"YulBlock","src":"22163:2023:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22188:4:27","nodeType":"YulLiteral","src":"22188:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22194:10:27","nodeType":"YulLiteral","src":"22194:10:27","type":"","value":"0x3644e515"}],"functionName":{"name":"mstore","nativeSrc":"22181:6:27","nodeType":"YulIdentifier","src":"22181:6:27"},"nativeSrc":"22181:24:27","nodeType":"YulFunctionCall","src":"22181:24:27"},"nativeSrc":"22181:24:27","nodeType":"YulExpressionStatement","src":"22181:24:27"},{"body":{"nativeSrc":"22751:9:27","nodeType":"YulBlock","src":"22751:9:27","statements":[{"nativeSrc":"22753:5:27","nodeType":"YulBreak","src":"22753:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22383:4:27","nodeType":"YulLiteral","src":"22383:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"22377:5:27","nodeType":"YulIdentifier","src":"22377:5:27"},"nativeSrc":"22377:11:27","nodeType":"YulFunctionCall","src":"22377:11:27"}],"functionName":{"name":"iszero","nativeSrc":"22370:6:27","nodeType":"YulIdentifier","src":"22370:6:27"},"nativeSrc":"22370:19:27","nodeType":"YulFunctionCall","src":"22370:19:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"22394:14:27","nodeType":"YulIdentifier","src":"22394:14:27"},"nativeSrc":"22394:16:27","nodeType":"YulFunctionCall","src":"22394:16:27"},{"kind":"number","nativeSrc":"22412:4:27","nodeType":"YulLiteral","src":"22412:4:27","type":"","value":"0x20"}],"functionName":{"name":"eq","nativeSrc":"22391:2:27","nodeType":"YulIdentifier","src":"22391:2:27"},"nativeSrc":"22391:26:27","nodeType":"YulFunctionCall","src":"22391:26:27"}],"functionName":{"name":"lt","nativeSrc":"22367:2:27","nodeType":"YulIdentifier","src":"22367:2:27"},"nativeSrc":"22367:51:27","nodeType":"YulFunctionCall","src":"22367:51:27"},{"arguments":[{"kind":"number","nativeSrc":"22674:4:27","nodeType":"YulLiteral","src":"22674:4:27","type":"","value":"5000"},{"name":"token","nativeSrc":"22680:5:27","nodeType":"YulIdentifier","src":"22680:5:27"},{"kind":"number","nativeSrc":"22687:4:27","nodeType":"YulLiteral","src":"22687:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"22693:4:27","nodeType":"YulLiteral","src":"22693:4:27","type":"","value":"0x04"},{"kind":"number","nativeSrc":"22699:4:27","nodeType":"YulLiteral","src":"22699:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22705:4:27","nodeType":"YulLiteral","src":"22705:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"22663:10:27","nodeType":"YulIdentifier","src":"22663:10:27"},"nativeSrc":"22663:47:27","nodeType":"YulFunctionCall","src":"22663:47:27"}],"functionName":{"name":"and","nativeSrc":"22278:3:27","nodeType":"YulIdentifier","src":"22278:3:27"},"nativeSrc":"22278:454:27","nodeType":"YulFunctionCall","src":"22278:454:27"}],"functionName":{"name":"iszero","nativeSrc":"22250:6:27","nodeType":"YulIdentifier","src":"22250:6:27"},"nativeSrc":"22250:500:27","nodeType":"YulFunctionCall","src":"22250:500:27"},"nativeSrc":"22247:513:27","nodeType":"YulIf","src":"22247:513:27"},{"nativeSrc":"22849:20:27","nodeType":"YulVariableDeclaration","src":"22849:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"22864:4:27","nodeType":"YulLiteral","src":"22864:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"22858:5:27","nodeType":"YulIdentifier","src":"22858:5:27"},"nativeSrc":"22858:11:27","nodeType":"YulFunctionCall","src":"22858:11:27"},"variables":[{"name":"m","nativeSrc":"22853:1:27","nodeType":"YulTypedName","src":"22853:1:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22897:1:27","nodeType":"YulIdentifier","src":"22897:1:27"},{"kind":"number","nativeSrc":"22900:4:27","nodeType":"YulLiteral","src":"22900:4:27","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"22893:3:27","nodeType":"YulIdentifier","src":"22893:3:27"},"nativeSrc":"22893:12:27","nodeType":"YulFunctionCall","src":"22893:12:27"},{"name":"spender","nativeSrc":"22907:7:27","nodeType":"YulIdentifier","src":"22907:7:27"}],"functionName":{"name":"mstore","nativeSrc":"22886:6:27","nodeType":"YulIdentifier","src":"22886:6:27"},"nativeSrc":"22886:29:27","nodeType":"YulFunctionCall","src":"22886:29:27"},"nativeSrc":"22886:29:27","nodeType":"YulExpressionStatement","src":"22886:29:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22943:1:27","nodeType":"YulIdentifier","src":"22943:1:27"},{"kind":"number","nativeSrc":"22946:4:27","nodeType":"YulLiteral","src":"22946:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22939:3:27","nodeType":"YulIdentifier","src":"22939:3:27"},"nativeSrc":"22939:12:27","nodeType":"YulFunctionCall","src":"22939:12:27"},{"arguments":[{"kind":"number","nativeSrc":"22957:2:27","nodeType":"YulLiteral","src":"22957:2:27","type":"","value":"96"},{"name":"owner","nativeSrc":"22961:5:27","nodeType":"YulIdentifier","src":"22961:5:27"}],"functionName":{"name":"shl","nativeSrc":"22953:3:27","nodeType":"YulIdentifier","src":"22953:3:27"},"nativeSrc":"22953:14:27","nodeType":"YulFunctionCall","src":"22953:14:27"}],"functionName":{"name":"mstore","nativeSrc":"22932:6:27","nodeType":"YulIdentifier","src":"22932:6:27"},"nativeSrc":"22932:36:27","nodeType":"YulFunctionCall","src":"22932:36:27"},"nativeSrc":"22932:36:27","nodeType":"YulExpressionStatement","src":"22932:36:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22996:1:27","nodeType":"YulIdentifier","src":"22996:1:27"},{"kind":"number","nativeSrc":"22999:4:27","nodeType":"YulLiteral","src":"22999:4:27","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"22992:3:27","nodeType":"YulIdentifier","src":"22992:3:27"},"nativeSrc":"22992:12:27","nodeType":"YulFunctionCall","src":"22992:12:27"},{"name":"deadline","nativeSrc":"23006:8:27","nodeType":"YulIdentifier","src":"23006:8:27"}],"functionName":{"name":"mstore","nativeSrc":"22985:6:27","nodeType":"YulIdentifier","src":"22985:6:27"},"nativeSrc":"22985:30:27","nodeType":"YulFunctionCall","src":"22985:30:27"},"nativeSrc":"22985:30:27","nodeType":"YulExpressionStatement","src":"22985:30:27"},{"body":{"nativeSrc":"23073:726:27","nodeType":"YulBlock","src":"23073:726:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23102:4:27","nodeType":"YulLiteral","src":"23102:4:27","type":"","value":"0x14"},{"name":"owner","nativeSrc":"23108:5:27","nodeType":"YulIdentifier","src":"23108:5:27"}],"functionName":{"name":"mstore","nativeSrc":"23095:6:27","nodeType":"YulIdentifier","src":"23095:6:27"},"nativeSrc":"23095:19:27","nodeType":"YulFunctionCall","src":"23095:19:27"},"nativeSrc":"23095:19:27","nodeType":"YulExpressionStatement","src":"23095:19:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23142:4:27","nodeType":"YulLiteral","src":"23142:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"23148:34:27","nodeType":"YulLiteral","src":"23148:34:27","type":"","value":"0x7ecebe00000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23135:6:27","nodeType":"YulIdentifier","src":"23135:6:27"},"nativeSrc":"23135:48:27","nodeType":"YulFunctionCall","src":"23135:48:27"},"nativeSrc":"23135:48:27","nodeType":"YulExpressionStatement","src":"23135:48:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23237:1:27","nodeType":"YulIdentifier","src":"23237:1:27"},{"kind":"number","nativeSrc":"23240:4:27","nodeType":"YulLiteral","src":"23240:4:27","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"23233:3:27","nodeType":"YulIdentifier","src":"23233:3:27"},"nativeSrc":"23233:12:27","nodeType":"YulFunctionCall","src":"23233:12:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23258:3:27","nodeType":"YulIdentifier","src":"23258:3:27"},"nativeSrc":"23258:5:27","nodeType":"YulFunctionCall","src":"23258:5:27"},{"name":"token","nativeSrc":"23265:5:27","nodeType":"YulIdentifier","src":"23265:5:27"},{"kind":"number","nativeSrc":"23272:4:27","nodeType":"YulLiteral","src":"23272:4:27","type":"","value":"0x10"},{"kind":"number","nativeSrc":"23278:4:27","nodeType":"YulLiteral","src":"23278:4:27","type":"","value":"0x24"},{"arguments":[{"name":"m","nativeSrc":"23288:1:27","nodeType":"YulIdentifier","src":"23288:1:27"},{"kind":"number","nativeSrc":"23291:4:27","nodeType":"YulLiteral","src":"23291:4:27","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"23284:3:27","nodeType":"YulIdentifier","src":"23284:3:27"},"nativeSrc":"23284:12:27","nodeType":"YulFunctionCall","src":"23284:12:27"},{"kind":"number","nativeSrc":"23298:4:27","nodeType":"YulLiteral","src":"23298:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"23247:10:27","nodeType":"YulIdentifier","src":"23247:10:27"},"nativeSrc":"23247:56:27","nodeType":"YulFunctionCall","src":"23247:56:27"}],"functionName":{"name":"mstore","nativeSrc":"23226:6:27","nodeType":"YulIdentifier","src":"23226:6:27"},"nativeSrc":"23226:78:27","nodeType":"YulFunctionCall","src":"23226:78:27"},"nativeSrc":"23226:78:27","nodeType":"YulExpressionStatement","src":"23226:78:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"23332:1:27","nodeType":"YulIdentifier","src":"23332:1:27"},{"kind":"number","nativeSrc":"23335:34:27","nodeType":"YulLiteral","src":"23335:34:27","type":"","value":"0x8fcbaf0c000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23325:6:27","nodeType":"YulIdentifier","src":"23325:6:27"},"nativeSrc":"23325:45:27","nodeType":"YulFunctionCall","src":"23325:45:27"},"nativeSrc":"23325:45:27","nodeType":"YulExpressionStatement","src":"23325:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23552:1:27","nodeType":"YulIdentifier","src":"23552:1:27"},{"kind":"number","nativeSrc":"23555:4:27","nodeType":"YulLiteral","src":"23555:4:27","type":"","value":"0xb4"}],"functionName":{"name":"add","nativeSrc":"23548:3:27","nodeType":"YulIdentifier","src":"23548:3:27"},"nativeSrc":"23548:12:27","nodeType":"YulFunctionCall","src":"23548:12:27"},{"arguments":[{"kind":"number","nativeSrc":"23566:4:27","nodeType":"YulLiteral","src":"23566:4:27","type":"","value":"0xff"},{"name":"v","nativeSrc":"23572:1:27","nodeType":"YulIdentifier","src":"23572:1:27"}],"functionName":{"name":"and","nativeSrc":"23562:3:27","nodeType":"YulIdentifier","src":"23562:3:27"},"nativeSrc":"23562:12:27","nodeType":"YulFunctionCall","src":"23562:12:27"}],"functionName":{"name":"mstore","nativeSrc":"23541:6:27","nodeType":"YulIdentifier","src":"23541:6:27"},"nativeSrc":"23541:34:27","nodeType":"YulFunctionCall","src":"23541:34:27"},"nativeSrc":"23541:34:27","nodeType":"YulExpressionStatement","src":"23541:34:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23607:1:27","nodeType":"YulIdentifier","src":"23607:1:27"},{"kind":"number","nativeSrc":"23610:4:27","nodeType":"YulLiteral","src":"23610:4:27","type":"","value":"0xd4"}],"functionName":{"name":"add","nativeSrc":"23603:3:27","nodeType":"YulIdentifier","src":"23603:3:27"},"nativeSrc":"23603:12:27","nodeType":"YulFunctionCall","src":"23603:12:27"},{"name":"r","nativeSrc":"23617:1:27","nodeType":"YulIdentifier","src":"23617:1:27"}],"functionName":{"name":"mstore","nativeSrc":"23596:6:27","nodeType":"YulIdentifier","src":"23596:6:27"},"nativeSrc":"23596:23:27","nodeType":"YulFunctionCall","src":"23596:23:27"},"nativeSrc":"23596:23:27","nodeType":"YulExpressionStatement","src":"23596:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23651:1:27","nodeType":"YulIdentifier","src":"23651:1:27"},{"kind":"number","nativeSrc":"23654:4:27","nodeType":"YulLiteral","src":"23654:4:27","type":"","value":"0xf4"}],"functionName":{"name":"add","nativeSrc":"23647:3:27","nodeType":"YulIdentifier","src":"23647:3:27"},"nativeSrc":"23647:12:27","nodeType":"YulFunctionCall","src":"23647:12:27"},{"name":"s","nativeSrc":"23661:1:27","nodeType":"YulIdentifier","src":"23661:1:27"}],"functionName":{"name":"mstore","nativeSrc":"23640:6:27","nodeType":"YulIdentifier","src":"23640:6:27"},"nativeSrc":"23640:23:27","nodeType":"YulFunctionCall","src":"23640:23:27"},"nativeSrc":"23640:23:27","nodeType":"YulExpressionStatement","src":"23640:23:27"},{"nativeSrc":"23684:71:27","nodeType":"YulAssignment","src":"23684:71:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23700:3:27","nodeType":"YulIdentifier","src":"23700:3:27"},"nativeSrc":"23700:5:27","nodeType":"YulFunctionCall","src":"23700:5:27"},{"name":"token","nativeSrc":"23707:5:27","nodeType":"YulIdentifier","src":"23707:5:27"},{"kind":"number","nativeSrc":"23714:1:27","nodeType":"YulLiteral","src":"23714:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"23721:1:27","nodeType":"YulIdentifier","src":"23721:1:27"},{"kind":"number","nativeSrc":"23724:4:27","nodeType":"YulLiteral","src":"23724:4:27","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"23717:3:27","nodeType":"YulIdentifier","src":"23717:3:27"},"nativeSrc":"23717:12:27","nodeType":"YulFunctionCall","src":"23717:12:27"},{"kind":"number","nativeSrc":"23731:5:27","nodeType":"YulLiteral","src":"23731:5:27","type":"","value":"0x104"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"23738:8:27","nodeType":"YulIdentifier","src":"23738:8:27"},"nativeSrc":"23738:10:27","nodeType":"YulFunctionCall","src":"23738:10:27"},{"kind":"number","nativeSrc":"23750:4:27","nodeType":"YulLiteral","src":"23750:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"23695:4:27","nodeType":"YulIdentifier","src":"23695:4:27"},"nativeSrc":"23695:60:27","nodeType":"YulFunctionCall","src":"23695:60:27"},"variableNames":[{"name":"success","nativeSrc":"23684:7:27","nodeType":"YulIdentifier","src":"23684:7:27"}]},{"nativeSrc":"23776:5:27","nodeType":"YulBreak","src":"23776:5:27"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23044:4:27","nodeType":"YulLiteral","src":"23044:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"23038:5:27","nodeType":"YulIdentifier","src":"23038:5:27"},"nativeSrc":"23038:11:27","nodeType":"YulFunctionCall","src":"23038:11:27"},{"name":"DAI_DOMAIN_SEPARATOR","nativeSrc":"23051:20:27","nodeType":"YulIdentifier","src":"23051:20:27"}],"functionName":{"name":"eq","nativeSrc":"23035:2:27","nodeType":"YulIdentifier","src":"23035:2:27"},"nativeSrc":"23035:37:27","nodeType":"YulFunctionCall","src":"23035:37:27"},"nativeSrc":"23032:767:27","nodeType":"YulIf","src":"23032:767:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"23823:1:27","nodeType":"YulIdentifier","src":"23823:1:27"},{"kind":"number","nativeSrc":"23826:34:27","nodeType":"YulLiteral","src":"23826:34:27","type":"","value":"0xd505accf000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23816:6:27","nodeType":"YulIdentifier","src":"23816:6:27"},"nativeSrc":"23816:45:27","nodeType":"YulFunctionCall","src":"23816:45:27"},"nativeSrc":"23816:45:27","nodeType":"YulExpressionStatement","src":"23816:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23915:1:27","nodeType":"YulIdentifier","src":"23915:1:27"},{"kind":"number","nativeSrc":"23918:4:27","nodeType":"YulLiteral","src":"23918:4:27","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"23911:3:27","nodeType":"YulIdentifier","src":"23911:3:27"},"nativeSrc":"23911:12:27","nodeType":"YulFunctionCall","src":"23911:12:27"},{"name":"amount","nativeSrc":"23925:6:27","nodeType":"YulIdentifier","src":"23925:6:27"}],"functionName":{"name":"mstore","nativeSrc":"23904:6:27","nodeType":"YulIdentifier","src":"23904:6:27"},"nativeSrc":"23904:28:27","nodeType":"YulFunctionCall","src":"23904:28:27"},"nativeSrc":"23904:28:27","nodeType":"YulExpressionStatement","src":"23904:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23960:1:27","nodeType":"YulIdentifier","src":"23960:1:27"},{"kind":"number","nativeSrc":"23963:4:27","nodeType":"YulLiteral","src":"23963:4:27","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"23956:3:27","nodeType":"YulIdentifier","src":"23956:3:27"},"nativeSrc":"23956:12:27","nodeType":"YulFunctionCall","src":"23956:12:27"},{"arguments":[{"kind":"number","nativeSrc":"23974:4:27","nodeType":"YulLiteral","src":"23974:4:27","type":"","value":"0xff"},{"name":"v","nativeSrc":"23980:1:27","nodeType":"YulIdentifier","src":"23980:1:27"}],"functionName":{"name":"and","nativeSrc":"23970:3:27","nodeType":"YulIdentifier","src":"23970:3:27"},"nativeSrc":"23970:12:27","nodeType":"YulFunctionCall","src":"23970:12:27"}],"functionName":{"name":"mstore","nativeSrc":"23949:6:27","nodeType":"YulIdentifier","src":"23949:6:27"},"nativeSrc":"23949:34:27","nodeType":"YulFunctionCall","src":"23949:34:27"},"nativeSrc":"23949:34:27","nodeType":"YulExpressionStatement","src":"23949:34:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24011:1:27","nodeType":"YulIdentifier","src":"24011:1:27"},{"kind":"number","nativeSrc":"24014:4:27","nodeType":"YulLiteral","src":"24014:4:27","type":"","value":"0xb4"}],"functionName":{"name":"add","nativeSrc":"24007:3:27","nodeType":"YulIdentifier","src":"24007:3:27"},"nativeSrc":"24007:12:27","nodeType":"YulFunctionCall","src":"24007:12:27"},{"name":"r","nativeSrc":"24021:1:27","nodeType":"YulIdentifier","src":"24021:1:27"}],"functionName":{"name":"mstore","nativeSrc":"24000:6:27","nodeType":"YulIdentifier","src":"24000:6:27"},"nativeSrc":"24000:23:27","nodeType":"YulFunctionCall","src":"24000:23:27"},"nativeSrc":"24000:23:27","nodeType":"YulExpressionStatement","src":"24000:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24051:1:27","nodeType":"YulIdentifier","src":"24051:1:27"},{"kind":"number","nativeSrc":"24054:4:27","nodeType":"YulLiteral","src":"24054:4:27","type":"","value":"0xd4"}],"functionName":{"name":"add","nativeSrc":"24047:3:27","nodeType":"YulIdentifier","src":"24047:3:27"},"nativeSrc":"24047:12:27","nodeType":"YulFunctionCall","src":"24047:12:27"},{"name":"s","nativeSrc":"24061:1:27","nodeType":"YulIdentifier","src":"24061:1:27"}],"functionName":{"name":"mstore","nativeSrc":"24040:6:27","nodeType":"YulIdentifier","src":"24040:6:27"},"nativeSrc":"24040:23:27","nodeType":"YulFunctionCall","src":"24040:23:27"},"nativeSrc":"24040:23:27","nodeType":"YulExpressionStatement","src":"24040:23:27"},{"nativeSrc":"24080:70:27","nodeType":"YulAssignment","src":"24080:70:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"24096:3:27","nodeType":"YulIdentifier","src":"24096:3:27"},"nativeSrc":"24096:5:27","nodeType":"YulFunctionCall","src":"24096:5:27"},{"name":"token","nativeSrc":"24103:5:27","nodeType":"YulIdentifier","src":"24103:5:27"},{"kind":"number","nativeSrc":"24110:1:27","nodeType":"YulLiteral","src":"24110:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"24117:1:27","nodeType":"YulIdentifier","src":"24117:1:27"},{"kind":"number","nativeSrc":"24120:4:27","nodeType":"YulLiteral","src":"24120:4:27","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"24113:3:27","nodeType":"YulIdentifier","src":"24113:3:27"},"nativeSrc":"24113:12:27","nodeType":"YulFunctionCall","src":"24113:12:27"},{"kind":"number","nativeSrc":"24127:4:27","nodeType":"YulLiteral","src":"24127:4:27","type":"","value":"0xe4"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"24133:8:27","nodeType":"YulIdentifier","src":"24133:8:27"},"nativeSrc":"24133:10:27","nodeType":"YulFunctionCall","src":"24133:10:27"},{"kind":"number","nativeSrc":"24145:4:27","nodeType":"YulLiteral","src":"24145:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"24091:4:27","nodeType":"YulIdentifier","src":"24091:4:27"},"nativeSrc":"24091:59:27","nodeType":"YulFunctionCall","src":"24091:59:27"},"variableNames":[{"name":"success","nativeSrc":"24080:7:27","nodeType":"YulIdentifier","src":"24080:7:27"}]},{"nativeSrc":"24167:5:27","nodeType":"YulBreak","src":"24167:5:27"}]},"condition":{"arguments":[{"kind":"number","nativeSrc":"22137:2:27","nodeType":"YulLiteral","src":"22137:2:27","type":"","value":"96"},{"arguments":[{"name":"token","nativeSrc":"22145:5:27","nodeType":"YulIdentifier","src":"22145:5:27"},{"name":"WETH9","nativeSrc":"22152:5:27","nodeType":"YulIdentifier","src":"22152:5:27"}],"functionName":{"name":"xor","nativeSrc":"22141:3:27","nodeType":"YulIdentifier","src":"22141:3:27"},"nativeSrc":"22141:17:27","nodeType":"YulFunctionCall","src":"22141:17:27"}],"functionName":{"name":"shl","nativeSrc":"22133:3:27","nodeType":"YulIdentifier","src":"22133:3:27"},"nativeSrc":"22133:26:27","nodeType":"YulFunctionCall","src":"22133:26:27"},"nativeSrc":"22126:2060:27","nodeType":"YulForLoop","post":{"nativeSrc":"22160:2:27","nodeType":"YulBlock","src":"22160:2:27","statements":[]},"pre":{"nativeSrc":"22130:2:27","nodeType":"YulBlock","src":"22130:2:27","statements":[]},"src":"22126:2060:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11071,"isOffset":false,"isSlot":false,"src":"23051:20:27","valueSize":1},{"declaration":11075,"isOffset":false,"isSlot":false,"src":"22152:5:27","valueSize":1},{"declaration":11319,"isOffset":false,"isSlot":false,"src":"23925:6:27","valueSize":1},{"declaration":11321,"isOffset":false,"isSlot":false,"src":"23006:8:27","valueSize":1},{"declaration":11315,"isOffset":false,"isSlot":false,"src":"22961:5:27","valueSize":1},{"declaration":11315,"isOffset":false,"isSlot":false,"src":"23108:5:27","valueSize":1},{"declaration":11325,"isOffset":false,"isSlot":false,"src":"23617:1:27","valueSize":1},{"declaration":11325,"isOffset":false,"isSlot":false,"src":"24021:1:27","valueSize":1},{"declaration":11327,"isOffset":false,"isSlot":false,"src":"23661:1:27","valueSize":1},{"declaration":11327,"isOffset":false,"isSlot":false,"src":"24061:1:27","valueSize":1},{"declaration":11317,"isOffset":false,"isSlot":false,"src":"22907:7:27","valueSize":1},{"declaration":11331,"isOffset":false,"isSlot":false,"src":"23684:7:27","valueSize":1},{"declaration":11331,"isOffset":false,"isSlot":false,"src":"24080:7:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"22145:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"22680:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"23265:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"23707:5:27","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"24103:5:27","valueSize":1},{"declaration":11323,"isOffset":false,"isSlot":false,"src":"23572:1:27","valueSize":1},{"declaration":11323,"isOffset":false,"isSlot":false,"src":"23980:1:27","valueSize":1}],"id":11333,"nodeType":"InlineAssembly","src":"22103:2093:27"},{"condition":{"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24209:8:27","subExpression":{"id":11334,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11331,"src":"24210:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11347,"nodeType":"IfStatement","src":"24205:77:27","trueBody":{"expression":{"arguments":[{"id":11337,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11313,"src":"24233:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11338,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"24240:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11339,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11317,"src":"24247:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11340,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11319,"src":"24256:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11341,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11321,"src":"24264:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11342,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11323,"src":"24274:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":11343,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11325,"src":"24277:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11344,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11327,"src":"24280:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11336,"name":"simplePermit2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11371,"src":"24219:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,address,uint256,uint256,uint8,bytes32,bytes32)"}},"id":11345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:63:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11346,"nodeType":"ExpressionStatement","src":"24219:63:27"}}]},"documentation":{"id":11311,"nodeType":"StructuredDocumentation","src":"21605:210:27","text":"@dev Permit a user to spend a given amount of\n another user's tokens via native EIP-2612 permit if possible, falling\n back to Permit2 if native permit fails or is not implemented on the token."},"id":11349,"implemented":true,"kind":"function","modifiers":[],"name":"permit2","nameLocation":"21829:7:27","nodeType":"FunctionDefinition","parameters":{"id":11328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11313,"mutability":"mutable","name":"token","nameLocation":"21854:5:27","nodeType":"VariableDeclaration","scope":11349,"src":"21846:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11312,"name":"address","nodeType":"ElementaryTypeName","src":"21846:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11315,"mutability":"mutable","name":"owner","nameLocation":"21877:5:27","nodeType":"VariableDeclaration","scope":11349,"src":"21869:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11314,"name":"address","nodeType":"ElementaryTypeName","src":"21869:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11317,"mutability":"mutable","name":"spender","nameLocation":"21900:7:27","nodeType":"VariableDeclaration","scope":11349,"src":"21892:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11316,"name":"address","nodeType":"ElementaryTypeName","src":"21892:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11319,"mutability":"mutable","name":"amount","nameLocation":"21925:6:27","nodeType":"VariableDeclaration","scope":11349,"src":"21917:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11318,"name":"uint256","nodeType":"ElementaryTypeName","src":"21917:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11321,"mutability":"mutable","name":"deadline","nameLocation":"21949:8:27","nodeType":"VariableDeclaration","scope":11349,"src":"21941:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11320,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11323,"mutability":"mutable","name":"v","nameLocation":"21973:1:27","nodeType":"VariableDeclaration","scope":11349,"src":"21967:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11322,"name":"uint8","nodeType":"ElementaryTypeName","src":"21967:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11325,"mutability":"mutable","name":"r","nameLocation":"21992:1:27","nodeType":"VariableDeclaration","scope":11349,"src":"21984:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21984:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11327,"mutability":"mutable","name":"s","nameLocation":"22011:1:27","nodeType":"VariableDeclaration","scope":11349,"src":"22003:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22003:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21836:182:27"},"returnParameters":{"id":11329,"nodeType":"ParameterList","parameters":[],"src":"22028:0:27"},"scope":11372,"src":"21820:2469:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11370,"nodeType":"Block","src":"24561:1971:27","statements":[{"AST":{"nativeSrc":"24623:1903:27","nodeType":"YulBlock","src":"24623:1903:27","statements":[{"nativeSrc":"24637:20:27","nodeType":"YulVariableDeclaration","src":"24637:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"24652:4:27","nodeType":"YulLiteral","src":"24652:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24646:5:27","nodeType":"YulIdentifier","src":"24646:5:27"},"nativeSrc":"24646:11:27","nodeType":"YulFunctionCall","src":"24646:11:27"},"variables":[{"name":"m","nativeSrc":"24641:1:27","nodeType":"YulTypedName","src":"24641:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"24677:1:27","nodeType":"YulIdentifier","src":"24677:1:27"},{"kind":"number","nativeSrc":"24680:10:27","nodeType":"YulLiteral","src":"24680:10:27","type":"","value":"0x927da105"}],"functionName":{"name":"mstore","nativeSrc":"24670:6:27","nodeType":"YulIdentifier","src":"24670:6:27"},"nativeSrc":"24670:21:27","nodeType":"YulFunctionCall","src":"24670:21:27"},"nativeSrc":"24670:21:27","nodeType":"YulExpressionStatement","src":"24670:21:27"},{"nativeSrc":"24745:318:27","nodeType":"YulBlock","src":"24745:318:27","statements":[{"nativeSrc":"24763:34:27","nodeType":"YulVariableDeclaration","src":"24763:34:27","value":{"arguments":[{"kind":"number","nativeSrc":"24786:2:27","nodeType":"YulLiteral","src":"24786:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24794:1:27","nodeType":"YulLiteral","src":"24794:1:27","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"24790:3:27","nodeType":"YulIdentifier","src":"24790:3:27"},"nativeSrc":"24790:6:27","nodeType":"YulFunctionCall","src":"24790:6:27"}],"functionName":{"name":"shr","nativeSrc":"24782:3:27","nodeType":"YulIdentifier","src":"24782:3:27"},"nativeSrc":"24782:15:27","nodeType":"YulFunctionCall","src":"24782:15:27"},"variables":[{"name":"addressMask","nativeSrc":"24767:11:27","nodeType":"YulTypedName","src":"24767:11:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24825:1:27","nodeType":"YulIdentifier","src":"24825:1:27"},{"kind":"number","nativeSrc":"24828:4:27","nodeType":"YulLiteral","src":"24828:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24821:3:27","nodeType":"YulIdentifier","src":"24821:3:27"},"nativeSrc":"24821:12:27","nodeType":"YulFunctionCall","src":"24821:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"24839:11:27","nodeType":"YulIdentifier","src":"24839:11:27"},{"name":"owner","nativeSrc":"24852:5:27","nodeType":"YulIdentifier","src":"24852:5:27"}],"functionName":{"name":"and","nativeSrc":"24835:3:27","nodeType":"YulIdentifier","src":"24835:3:27"},"nativeSrc":"24835:23:27","nodeType":"YulFunctionCall","src":"24835:23:27"}],"functionName":{"name":"mstore","nativeSrc":"24814:6:27","nodeType":"YulIdentifier","src":"24814:6:27"},"nativeSrc":"24814:45:27","nodeType":"YulFunctionCall","src":"24814:45:27"},"nativeSrc":"24814:45:27","nodeType":"YulExpressionStatement","src":"24814:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24887:1:27","nodeType":"YulIdentifier","src":"24887:1:27"},{"kind":"number","nativeSrc":"24890:4:27","nodeType":"YulLiteral","src":"24890:4:27","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"24883:3:27","nodeType":"YulIdentifier","src":"24883:3:27"},"nativeSrc":"24883:12:27","nodeType":"YulFunctionCall","src":"24883:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"24901:11:27","nodeType":"YulIdentifier","src":"24901:11:27"},{"name":"token","nativeSrc":"24914:5:27","nodeType":"YulIdentifier","src":"24914:5:27"}],"functionName":{"name":"and","nativeSrc":"24897:3:27","nodeType":"YulIdentifier","src":"24897:3:27"},"nativeSrc":"24897:23:27","nodeType":"YulFunctionCall","src":"24897:23:27"}],"functionName":{"name":"mstore","nativeSrc":"24876:6:27","nodeType":"YulIdentifier","src":"24876:6:27"},"nativeSrc":"24876:45:27","nodeType":"YulFunctionCall","src":"24876:45:27"},"nativeSrc":"24876:45:27","nodeType":"YulExpressionStatement","src":"24876:45:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24949:1:27","nodeType":"YulIdentifier","src":"24949:1:27"},{"kind":"number","nativeSrc":"24952:4:27","nodeType":"YulLiteral","src":"24952:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"24945:3:27","nodeType":"YulIdentifier","src":"24945:3:27"},"nativeSrc":"24945:12:27","nodeType":"YulFunctionCall","src":"24945:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"24963:11:27","nodeType":"YulIdentifier","src":"24963:11:27"},{"name":"spender","nativeSrc":"24976:7:27","nodeType":"YulIdentifier","src":"24976:7:27"}],"functionName":{"name":"and","nativeSrc":"24959:3:27","nodeType":"YulIdentifier","src":"24959:3:27"},"nativeSrc":"24959:25:27","nodeType":"YulFunctionCall","src":"24959:25:27"}],"functionName":{"name":"mstore","nativeSrc":"24938:6:27","nodeType":"YulIdentifier","src":"24938:6:27"},"nativeSrc":"24938:47:27","nodeType":"YulFunctionCall","src":"24938:47:27"},"nativeSrc":"24938:47:27","nodeType":"YulExpressionStatement","src":"24938:47:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25013:1:27","nodeType":"YulIdentifier","src":"25013:1:27"},{"kind":"number","nativeSrc":"25016:4:27","nodeType":"YulLiteral","src":"25016:4:27","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"25009:3:27","nodeType":"YulIdentifier","src":"25009:3:27"},"nativeSrc":"25009:12:27","nodeType":"YulFunctionCall","src":"25009:12:27"},{"arguments":[{"name":"addressMask","nativeSrc":"25027:11:27","nodeType":"YulIdentifier","src":"25027:11:27"},{"name":"spender","nativeSrc":"25040:7:27","nodeType":"YulIdentifier","src":"25040:7:27"}],"functionName":{"name":"and","nativeSrc":"25023:3:27","nodeType":"YulIdentifier","src":"25023:3:27"},"nativeSrc":"25023:25:27","nodeType":"YulFunctionCall","src":"25023:25:27"}],"functionName":{"name":"mstore","nativeSrc":"25002:6:27","nodeType":"YulIdentifier","src":"25002:6:27"},"nativeSrc":"25002:47:27","nodeType":"YulFunctionCall","src":"25002:47:27"},"nativeSrc":"25002:47:27","nodeType":"YulExpressionStatement","src":"25002:47:27"}]},{"nativeSrc":"25076:47:27","nodeType":"YulVariableDeclaration","src":"25076:47:27","value":{"arguments":[{"name":"PERMIT2","nativeSrc":"25089:7:27","nodeType":"YulIdentifier","src":"25089:7:27"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25109:3:27","nodeType":"YulLiteral","src":"25109:3:27","type":"","value":"160"},{"name":"amount","nativeSrc":"25114:6:27","nodeType":"YulIdentifier","src":"25114:6:27"}],"functionName":{"name":"shr","nativeSrc":"25105:3:27","nodeType":"YulIdentifier","src":"25105:3:27"},"nativeSrc":"25105:16:27","nodeType":"YulFunctionCall","src":"25105:16:27"}],"functionName":{"name":"iszero","nativeSrc":"25098:6:27","nodeType":"YulIdentifier","src":"25098:6:27"},"nativeSrc":"25098:24:27","nodeType":"YulFunctionCall","src":"25098:24:27"}],"functionName":{"name":"mul","nativeSrc":"25085:3:27","nodeType":"YulIdentifier","src":"25085:3:27"},"nativeSrc":"25085:38:27","nodeType":"YulFunctionCall","src":"25085:38:27"},"variables":[{"name":"p","nativeSrc":"25080:1:27","nodeType":"YulTypedName","src":"25080:1:27","type":""}]},{"body":{"nativeSrc":"25442:174:27","nodeType":"YulBlock","src":"25442:174:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25467:4:27","nodeType":"YulLiteral","src":"25467:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25473:18:27","nodeType":"YulLiteral","src":"25473:18:27","type":"","value":"0x6b836e6b8757f0fd"}],"functionName":{"name":"mstore","nativeSrc":"25460:6:27","nodeType":"YulIdentifier","src":"25460:6:27"},"nativeSrc":"25460:32:27","nodeType":"YulFunctionCall","src":"25460:32:27"},"nativeSrc":"25460:32:27","nodeType":"YulExpressionStatement","src":"25460:32:27"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25571:4:27","nodeType":"YulLiteral","src":"25571:4:27","type":"","value":"0x18"},{"arguments":[{"kind":"number","nativeSrc":"25581:1:27","nodeType":"YulLiteral","src":"25581:1:27","type":"","value":"2"},{"arguments":[{"name":"p","nativeSrc":"25591:1:27","nodeType":"YulIdentifier","src":"25591:1:27"}],"functionName":{"name":"iszero","nativeSrc":"25584:6:27","nodeType":"YulIdentifier","src":"25584:6:27"},"nativeSrc":"25584:9:27","nodeType":"YulFunctionCall","src":"25584:9:27"}],"functionName":{"name":"shl","nativeSrc":"25577:3:27","nodeType":"YulIdentifier","src":"25577:3:27"},"nativeSrc":"25577:17:27","nodeType":"YulFunctionCall","src":"25577:17:27"}],"functionName":{"name":"add","nativeSrc":"25567:3:27","nodeType":"YulIdentifier","src":"25567:3:27"},"nativeSrc":"25567:28:27","nodeType":"YulFunctionCall","src":"25567:28:27"},{"kind":"number","nativeSrc":"25597:4:27","nodeType":"YulLiteral","src":"25597:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25560:6:27","nodeType":"YulIdentifier","src":"25560:6:27"},"nativeSrc":"25560:42:27","nodeType":"YulFunctionCall","src":"25560:42:27"},"nativeSrc":"25560:42:27","nodeType":"YulExpressionStatement","src":"25560:42:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25251:14:27","nodeType":"YulIdentifier","src":"25251:14:27"},"nativeSrc":"25251:16:27","nodeType":"YulFunctionCall","src":"25251:16:27"},{"kind":"number","nativeSrc":"25269:4:27","nodeType":"YulLiteral","src":"25269:4:27","type":"","value":"0x5f"}],"functionName":{"name":"gt","nativeSrc":"25248:2:27","nodeType":"YulIdentifier","src":"25248:2:27"},"nativeSrc":"25248:26:27","nodeType":"YulFunctionCall","src":"25248:26:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"25360:3:27","nodeType":"YulIdentifier","src":"25360:3:27"},"nativeSrc":"25360:5:27","nodeType":"YulFunctionCall","src":"25360:5:27"},{"name":"p","nativeSrc":"25367:1:27","nodeType":"YulIdentifier","src":"25367:1:27"},{"arguments":[{"name":"m","nativeSrc":"25374:1:27","nodeType":"YulIdentifier","src":"25374:1:27"},{"kind":"number","nativeSrc":"25377:4:27","nodeType":"YulLiteral","src":"25377:4:27","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"25370:3:27","nodeType":"YulIdentifier","src":"25370:3:27"},"nativeSrc":"25370:12:27","nodeType":"YulFunctionCall","src":"25370:12:27"},{"kind":"number","nativeSrc":"25384:4:27","nodeType":"YulLiteral","src":"25384:4:27","type":"","value":"0x64"},{"arguments":[{"name":"m","nativeSrc":"25394:1:27","nodeType":"YulIdentifier","src":"25394:1:27"},{"kind":"number","nativeSrc":"25397:4:27","nodeType":"YulLiteral","src":"25397:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25390:3:27","nodeType":"YulIdentifier","src":"25390:3:27"},"nativeSrc":"25390:12:27","nodeType":"YulFunctionCall","src":"25390:12:27"},{"kind":"number","nativeSrc":"25404:4:27","nodeType":"YulLiteral","src":"25404:4:27","type":"","value":"0x60"}],"functionName":{"name":"staticcall","nativeSrc":"25349:10:27","nodeType":"YulIdentifier","src":"25349:10:27"},"nativeSrc":"25349:60:27","nodeType":"YulFunctionCall","src":"25349:60:27"}],"functionName":{"name":"and","nativeSrc":"25163:3:27","nodeType":"YulIdentifier","src":"25163:3:27"},"nativeSrc":"25163:264:27","nodeType":"YulFunctionCall","src":"25163:264:27"}],"functionName":{"name":"iszero","nativeSrc":"25139:6:27","nodeType":"YulIdentifier","src":"25139:6:27"},"nativeSrc":"25139:302:27","nodeType":"YulFunctionCall","src":"25139:302:27"},"nativeSrc":"25136:480:27","nodeType":"YulIf","src":"25136:480:27"},{"expression":{"arguments":[{"name":"m","nativeSrc":"25636:1:27","nodeType":"YulIdentifier","src":"25636:1:27"},{"kind":"number","nativeSrc":"25639:10:27","nodeType":"YulLiteral","src":"25639:10:27","type":"","value":"0x2b67b570"}],"functionName":{"name":"mstore","nativeSrc":"25629:6:27","nodeType":"YulIdentifier","src":"25629:6:27"},"nativeSrc":"25629:21:27","nodeType":"YulFunctionCall","src":"25629:21:27"},"nativeSrc":"25629:21:27","nodeType":"YulExpressionStatement","src":"25629:21:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25821:1:27","nodeType":"YulIdentifier","src":"25821:1:27"},{"kind":"number","nativeSrc":"25824:4:27","nodeType":"YulLiteral","src":"25824:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25817:3:27","nodeType":"YulIdentifier","src":"25817:3:27"},"nativeSrc":"25817:12:27","nodeType":"YulFunctionCall","src":"25817:12:27"},{"name":"amount","nativeSrc":"25831:6:27","nodeType":"YulIdentifier","src":"25831:6:27"}],"functionName":{"name":"mstore","nativeSrc":"25810:6:27","nodeType":"YulIdentifier","src":"25810:6:27"},"nativeSrc":"25810:28:27","nodeType":"YulFunctionCall","src":"25810:28:27"},"nativeSrc":"25810:28:27","nodeType":"YulExpressionStatement","src":"25810:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25862:1:27","nodeType":"YulIdentifier","src":"25862:1:27"},{"kind":"number","nativeSrc":"25865:4:27","nodeType":"YulLiteral","src":"25865:4:27","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25858:3:27","nodeType":"YulIdentifier","src":"25858:3:27"},"nativeSrc":"25858:12:27","nodeType":"YulFunctionCall","src":"25858:12:27"},{"kind":"number","nativeSrc":"25872:14:27","nodeType":"YulLiteral","src":"25872:14:27","type":"","value":"0xffffffffffff"}],"functionName":{"name":"mstore","nativeSrc":"25851:6:27","nodeType":"YulIdentifier","src":"25851:6:27"},"nativeSrc":"25851:36:27","nodeType":"YulFunctionCall","src":"25851:36:27"},"nativeSrc":"25851:36:27","nodeType":"YulExpressionStatement","src":"25851:36:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26055:1:27","nodeType":"YulIdentifier","src":"26055:1:27"},{"kind":"number","nativeSrc":"26058:4:27","nodeType":"YulLiteral","src":"26058:4:27","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"26051:3:27","nodeType":"YulIdentifier","src":"26051:3:27"},"nativeSrc":"26051:12:27","nodeType":"YulFunctionCall","src":"26051:12:27"},{"name":"deadline","nativeSrc":"26065:8:27","nodeType":"YulIdentifier","src":"26065:8:27"}],"functionName":{"name":"mstore","nativeSrc":"26044:6:27","nodeType":"YulIdentifier","src":"26044:6:27"},"nativeSrc":"26044:30:27","nodeType":"YulFunctionCall","src":"26044:30:27"},"nativeSrc":"26044:30:27","nodeType":"YulExpressionStatement","src":"26044:30:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26098:1:27","nodeType":"YulIdentifier","src":"26098:1:27"},{"kind":"number","nativeSrc":"26101:5:27","nodeType":"YulLiteral","src":"26101:5:27","type":"","value":"0x100"}],"functionName":{"name":"add","nativeSrc":"26094:3:27","nodeType":"YulIdentifier","src":"26094:3:27"},"nativeSrc":"26094:13:27","nodeType":"YulFunctionCall","src":"26094:13:27"},{"kind":"number","nativeSrc":"26109:5:27","nodeType":"YulLiteral","src":"26109:5:27","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"26087:6:27","nodeType":"YulIdentifier","src":"26087:6:27"},"nativeSrc":"26087:28:27","nodeType":"YulFunctionCall","src":"26087:28:27"},"nativeSrc":"26087:28:27","nodeType":"YulExpressionStatement","src":"26087:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26162:1:27","nodeType":"YulIdentifier","src":"26162:1:27"},{"kind":"number","nativeSrc":"26165:5:27","nodeType":"YulLiteral","src":"26165:5:27","type":"","value":"0x120"}],"functionName":{"name":"add","nativeSrc":"26158:3:27","nodeType":"YulIdentifier","src":"26158:3:27"},"nativeSrc":"26158:13:27","nodeType":"YulFunctionCall","src":"26158:13:27"},{"kind":"number","nativeSrc":"26173:4:27","nodeType":"YulLiteral","src":"26173:4:27","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"26151:6:27","nodeType":"YulIdentifier","src":"26151:6:27"},"nativeSrc":"26151:27:27","nodeType":"YulFunctionCall","src":"26151:27:27"},"nativeSrc":"26151:27:27","nodeType":"YulExpressionStatement","src":"26151:27:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26225:1:27","nodeType":"YulIdentifier","src":"26225:1:27"},{"kind":"number","nativeSrc":"26228:5:27","nodeType":"YulLiteral","src":"26228:5:27","type":"","value":"0x140"}],"functionName":{"name":"add","nativeSrc":"26221:3:27","nodeType":"YulIdentifier","src":"26221:3:27"},"nativeSrc":"26221:13:27","nodeType":"YulFunctionCall","src":"26221:13:27"},{"name":"r","nativeSrc":"26236:1:27","nodeType":"YulIdentifier","src":"26236:1:27"}],"functionName":{"name":"mstore","nativeSrc":"26214:6:27","nodeType":"YulIdentifier","src":"26214:6:27"},"nativeSrc":"26214:24:27","nodeType":"YulFunctionCall","src":"26214:24:27"},"nativeSrc":"26214:24:27","nodeType":"YulExpressionStatement","src":"26214:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26262:1:27","nodeType":"YulIdentifier","src":"26262:1:27"},{"kind":"number","nativeSrc":"26265:5:27","nodeType":"YulLiteral","src":"26265:5:27","type":"","value":"0x160"}],"functionName":{"name":"add","nativeSrc":"26258:3:27","nodeType":"YulIdentifier","src":"26258:3:27"},"nativeSrc":"26258:13:27","nodeType":"YulFunctionCall","src":"26258:13:27"},{"name":"s","nativeSrc":"26273:1:27","nodeType":"YulIdentifier","src":"26273:1:27"}],"functionName":{"name":"mstore","nativeSrc":"26251:6:27","nodeType":"YulIdentifier","src":"26251:6:27"},"nativeSrc":"26251:24:27","nodeType":"YulFunctionCall","src":"26251:24:27"},"nativeSrc":"26251:24:27","nodeType":"YulExpressionStatement","src":"26251:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26299:1:27","nodeType":"YulIdentifier","src":"26299:1:27"},{"kind":"number","nativeSrc":"26302:5:27","nodeType":"YulLiteral","src":"26302:5:27","type":"","value":"0x180"}],"functionName":{"name":"add","nativeSrc":"26295:3:27","nodeType":"YulIdentifier","src":"26295:3:27"},"nativeSrc":"26295:13:27","nodeType":"YulFunctionCall","src":"26295:13:27"},{"arguments":[{"kind":"number","nativeSrc":"26314:3:27","nodeType":"YulLiteral","src":"26314:3:27","type":"","value":"248"},{"name":"v","nativeSrc":"26319:1:27","nodeType":"YulIdentifier","src":"26319:1:27"}],"functionName":{"name":"shl","nativeSrc":"26310:3:27","nodeType":"YulIdentifier","src":"26310:3:27"},"nativeSrc":"26310:11:27","nodeType":"YulFunctionCall","src":"26310:11:27"}],"functionName":{"name":"mstore","nativeSrc":"26288:6:27","nodeType":"YulIdentifier","src":"26288:6:27"},"nativeSrc":"26288:34:27","nodeType":"YulFunctionCall","src":"26288:34:27"},"nativeSrc":"26288:34:27","nodeType":"YulExpressionStatement","src":"26288:34:27"},{"body":{"nativeSrc":"26403:113:27","nodeType":"YulBlock","src":"26403:113:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26428:4:27","nodeType":"YulLiteral","src":"26428:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"26434:10:27","nodeType":"YulLiteral","src":"26434:10:27","type":"","value":"0x6b836e6b"}],"functionName":{"name":"mstore","nativeSrc":"26421:6:27","nodeType":"YulIdentifier","src":"26421:6:27"},"nativeSrc":"26421:24:27","nodeType":"YulFunctionCall","src":"26421:24:27"},"nativeSrc":"26421:24:27","nodeType":"YulExpressionStatement","src":"26421:24:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26491:4:27","nodeType":"YulLiteral","src":"26491:4:27","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"26497:4:27","nodeType":"YulLiteral","src":"26497:4:27","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"26484:6:27","nodeType":"YulIdentifier","src":"26484:6:27"},"nativeSrc":"26484:18:27","nodeType":"YulFunctionCall","src":"26484:18:27"},"nativeSrc":"26484:18:27","nodeType":"YulExpressionStatement","src":"26484:18:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"26350:3:27","nodeType":"YulIdentifier","src":"26350:3:27"},"nativeSrc":"26350:5:27","nodeType":"YulFunctionCall","src":"26350:5:27"},{"name":"p","nativeSrc":"26357:1:27","nodeType":"YulIdentifier","src":"26357:1:27"},{"kind":"number","nativeSrc":"26360:1:27","nodeType":"YulLiteral","src":"26360:1:27","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"26367:1:27","nodeType":"YulIdentifier","src":"26367:1:27"},{"kind":"number","nativeSrc":"26370:4:27","nodeType":"YulLiteral","src":"26370:4:27","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"26363:3:27","nodeType":"YulIdentifier","src":"26363:3:27"},"nativeSrc":"26363:12:27","nodeType":"YulFunctionCall","src":"26363:12:27"},{"kind":"number","nativeSrc":"26377:5:27","nodeType":"YulLiteral","src":"26377:5:27","type":"","value":"0x184"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"26384:8:27","nodeType":"YulIdentifier","src":"26384:8:27"},"nativeSrc":"26384:10:27","nodeType":"YulFunctionCall","src":"26384:10:27"},{"kind":"number","nativeSrc":"26396:4:27","nodeType":"YulLiteral","src":"26396:4:27","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"26345:4:27","nodeType":"YulIdentifier","src":"26345:4:27"},"nativeSrc":"26345:56:27","nodeType":"YulFunctionCall","src":"26345:56:27"}],"functionName":{"name":"iszero","nativeSrc":"26338:6:27","nodeType":"YulIdentifier","src":"26338:6:27"},"nativeSrc":"26338:64:27","nodeType":"YulFunctionCall","src":"26338:64:27"},"nativeSrc":"26335:181:27","nodeType":"YulIf","src":"26335:181:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11079,"isOffset":false,"isSlot":false,"src":"25089:7:27","valueSize":1},{"declaration":11358,"isOffset":false,"isSlot":false,"src":"25114:6:27","valueSize":1},{"declaration":11358,"isOffset":false,"isSlot":false,"src":"25831:6:27","valueSize":1},{"declaration":11360,"isOffset":false,"isSlot":false,"src":"26065:8:27","valueSize":1},{"declaration":11354,"isOffset":false,"isSlot":false,"src":"24852:5:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"26236:1:27","valueSize":1},{"declaration":11366,"isOffset":false,"isSlot":false,"src":"26273:1:27","valueSize":1},{"declaration":11356,"isOffset":false,"isSlot":false,"src":"24976:7:27","valueSize":1},{"declaration":11356,"isOffset":false,"isSlot":false,"src":"25040:7:27","valueSize":1},{"declaration":11352,"isOffset":false,"isSlot":false,"src":"24914:5:27","valueSize":1},{"declaration":11362,"isOffset":false,"isSlot":false,"src":"26319:1:27","valueSize":1}],"id":11369,"nodeType":"InlineAssembly","src":"24614:1912:27"}]},"documentation":{"id":11350,"nodeType":"StructuredDocumentation","src":"24295:47:27","text":"@dev Simple permit on the Permit2 contract."},"id":11371,"implemented":true,"kind":"function","modifiers":[],"name":"simplePermit2","nameLocation":"24356:13:27","nodeType":"FunctionDefinition","parameters":{"id":11367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11352,"mutability":"mutable","name":"token","nameLocation":"24387:5:27","nodeType":"VariableDeclaration","scope":11371,"src":"24379:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11351,"name":"address","nodeType":"ElementaryTypeName","src":"24379:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11354,"mutability":"mutable","name":"owner","nameLocation":"24410:5:27","nodeType":"VariableDeclaration","scope":11371,"src":"24402:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11353,"name":"address","nodeType":"ElementaryTypeName","src":"24402:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11356,"mutability":"mutable","name":"spender","nameLocation":"24433:7:27","nodeType":"VariableDeclaration","scope":11371,"src":"24425:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11355,"name":"address","nodeType":"ElementaryTypeName","src":"24425:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11358,"mutability":"mutable","name":"amount","nameLocation":"24458:6:27","nodeType":"VariableDeclaration","scope":11371,"src":"24450:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11357,"name":"uint256","nodeType":"ElementaryTypeName","src":"24450:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11360,"mutability":"mutable","name":"deadline","nameLocation":"24482:8:27","nodeType":"VariableDeclaration","scope":11371,"src":"24474:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11359,"name":"uint256","nodeType":"ElementaryTypeName","src":"24474:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11362,"mutability":"mutable","name":"v","nameLocation":"24506:1:27","nodeType":"VariableDeclaration","scope":11371,"src":"24500:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11361,"name":"uint8","nodeType":"ElementaryTypeName","src":"24500:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11364,"mutability":"mutable","name":"r","nameLocation":"24525:1:27","nodeType":"VariableDeclaration","scope":11371,"src":"24517:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24517:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11366,"mutability":"mutable","name":"s","nameLocation":"24544:1:27","nodeType":"VariableDeclaration","scope":11371,"src":"24536:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24536:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24369:182:27"},"returnParameters":{"id":11368,"nodeType":"ParameterList","parameters":[],"src":"24561:0:27"},"scope":11372,"src":"24347:2185:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11373,"src":"701:25833:27","usedErrors":[11044,11047,11050,11053,11056,11059],"usedEvents":[]}],"src":"32:26503:27"},"id":27},"@solady/utils/SignatureCheckerLib.sol":{"ast":{"absolutePath":"@solady/utils/SignatureCheckerLib.sol","exportedSymbols":{"SignatureCheckerLib":[11528]},"id":11529,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11374,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:28"},{"abstract":false,"baseContracts":[],"canonicalName":"SignatureCheckerLib","contractDependencies":[],"contractKind":"library","documentation":{"id":11375,"nodeType":"StructuredDocumentation","src":"57:1381:28","text":"@notice Signature verification helper that supports both ECDSA signatures from EOAs\n and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\n @dev Note:\n - The signature checking functions use the ecrecover precompile (0x1).\n - The `bytes memory signature` variants use the identity precompile (0x4)\n to copy memory internally.\n - Unlike ECDSA signatures, contract signatures are revocable.\n - As of Solady version 0.0.134, all `bytes signature` variants accept both\n regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.\n See: https://eips.ethereum.org/EIPS/eip-2098\n This is for calldata efficiency on smart accounts prevalent on L2s.\n WARNING! Do NOT use signatures as unique identifiers:\n - Use a nonce in the digest to prevent replay attacks on the same contract.\n - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.\n EIP-712 also enables readable signing of typed data for better user safety.\n This implementation does NOT check if a signature is non-malleable."},"fullyImplemented":true,"id":11528,"linearizedBaseContracts":[11528],"name":"SignatureCheckerLib","nameLocation":"1446:19:28","nodeType":"ContractDefinition","nodes":[{"body":{"id":11388,"nodeType":"Block","src":"2128:4006:28","statements":[{"AST":{"nativeSrc":"2190:3938:28","nodeType":"YulBlock","src":"2190:3938:28","statements":[{"body":{"nativeSrc":"2332:3786:28","nodeType":"YulBlock","src":"2332:3786:28","statements":[{"nativeSrc":"2350:20:28","nodeType":"YulVariableDeclaration","src":"2350:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"2365:4:28","nodeType":"YulLiteral","src":"2365:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2359:5:28","nodeType":"YulIdentifier","src":"2359:5:28"},"nativeSrc":"2359:11:28","nodeType":"YulFunctionCall","src":"2359:11:28"},"variables":[{"name":"m","nativeSrc":"2354:1:28","nodeType":"YulTypedName","src":"2354:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2394:4:28","nodeType":"YulLiteral","src":"2394:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"2400:4:28","nodeType":"YulIdentifier","src":"2400:4:28"}],"functionName":{"name":"mstore","nativeSrc":"2387:6:28","nodeType":"YulIdentifier","src":"2387:6:28"},"nativeSrc":"2387:18:28","nodeType":"YulFunctionCall","src":"2387:18:28"},"nativeSrc":"2387:18:28","nodeType":"YulExpressionStatement","src":"2387:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2429:4:28","nodeType":"YulLiteral","src":"2429:4:28","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2445:9:28","nodeType":"YulIdentifier","src":"2445:9:28"},{"kind":"number","nativeSrc":"2456:4:28","nodeType":"YulLiteral","src":"2456:4:28","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2441:3:28","nodeType":"YulIdentifier","src":"2441:3:28"},"nativeSrc":"2441:20:28","nodeType":"YulFunctionCall","src":"2441:20:28"}],"functionName":{"name":"mload","nativeSrc":"2435:5:28","nodeType":"YulIdentifier","src":"2435:5:28"},"nativeSrc":"2435:27:28","nodeType":"YulFunctionCall","src":"2435:27:28"}],"functionName":{"name":"mstore","nativeSrc":"2422:6:28","nodeType":"YulIdentifier","src":"2422:6:28"},"nativeSrc":"2422:41:28","nodeType":"YulFunctionCall","src":"2422:41:28"},"nativeSrc":"2422:41:28","nodeType":"YulExpressionStatement","src":"2422:41:28"},{"body":{"nativeSrc":"2516:1049:28","nodeType":"YulBlock","src":"2516:1049:28","statements":[{"nativeSrc":"2538:37:28","nodeType":"YulVariableDeclaration","src":"2538:37:28","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2558:9:28","nodeType":"YulIdentifier","src":"2558:9:28"},{"kind":"number","nativeSrc":"2569:4:28","nodeType":"YulLiteral","src":"2569:4:28","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"2554:3:28","nodeType":"YulIdentifier","src":"2554:3:28"},"nativeSrc":"2554:20:28","nodeType":"YulFunctionCall","src":"2554:20:28"}],"functionName":{"name":"mload","nativeSrc":"2548:5:28","nodeType":"YulIdentifier","src":"2548:5:28"},"nativeSrc":"2548:27:28","nodeType":"YulFunctionCall","src":"2548:27:28"},"variables":[{"name":"vs","nativeSrc":"2542:2:28","nodeType":"YulTypedName","src":"2542:2:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2603:4:28","nodeType":"YulLiteral","src":"2603:4:28","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2617:3:28","nodeType":"YulLiteral","src":"2617:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"2622:2:28","nodeType":"YulIdentifier","src":"2622:2:28"}],"functionName":{"name":"shr","nativeSrc":"2613:3:28","nodeType":"YulIdentifier","src":"2613:3:28"},"nativeSrc":"2613:12:28","nodeType":"YulFunctionCall","src":"2613:12:28"},{"kind":"number","nativeSrc":"2627:2:28","nodeType":"YulLiteral","src":"2627:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"2609:3:28","nodeType":"YulIdentifier","src":"2609:3:28"},"nativeSrc":"2609:21:28","nodeType":"YulFunctionCall","src":"2609:21:28"}],"functionName":{"name":"mstore","nativeSrc":"2596:6:28","nodeType":"YulIdentifier","src":"2596:6:28"},"nativeSrc":"2596:35:28","nodeType":"YulFunctionCall","src":"2596:35:28"},"nativeSrc":"2596:35:28","nodeType":"YulExpressionStatement","src":"2596:35:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2667:4:28","nodeType":"YulLiteral","src":"2667:4:28","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"2677:1:28","nodeType":"YulLiteral","src":"2677:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"2684:1:28","nodeType":"YulLiteral","src":"2684:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"2687:2:28","nodeType":"YulIdentifier","src":"2687:2:28"}],"functionName":{"name":"shl","nativeSrc":"2680:3:28","nodeType":"YulIdentifier","src":"2680:3:28"},"nativeSrc":"2680:10:28","nodeType":"YulFunctionCall","src":"2680:10:28"}],"functionName":{"name":"shr","nativeSrc":"2673:3:28","nodeType":"YulIdentifier","src":"2673:3:28"},"nativeSrc":"2673:18:28","nodeType":"YulFunctionCall","src":"2673:18:28"}],"functionName":{"name":"mstore","nativeSrc":"2660:6:28","nodeType":"YulIdentifier","src":"2660:6:28"},"nativeSrc":"2660:32:28","nodeType":"YulFunctionCall","src":"2660:32:28"},"nativeSrc":"2660:32:28","nodeType":"YulExpressionStatement","src":"2660:32:28"},{"nativeSrc":"2721:417:28","nodeType":"YulVariableDeclaration","src":"2721:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"2794:3:28","nodeType":"YulIdentifier","src":"2794:3:28"},"nativeSrc":"2794:5:28","nodeType":"YulFunctionCall","src":"2794:5:28"},{"kind":"number","nativeSrc":"2872:1:28","nodeType":"YulLiteral","src":"2872:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"2930:4:28","nodeType":"YulLiteral","src":"2930:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2983:4:28","nodeType":"YulLiteral","src":"2983:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"3035:4:28","nodeType":"YulLiteral","src":"3035:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"3089:4:28","nodeType":"YulLiteral","src":"3089:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"2754:10:28","nodeType":"YulIdentifier","src":"2754:10:28"},"nativeSrc":"2754:384:28","nodeType":"YulFunctionCall","src":"2754:384:28"},"variables":[{"name":"t","nativeSrc":"2725:1:28","nodeType":"YulTypedName","src":"2725:1:28","type":""}]},{"body":{"nativeSrc":"3315:232:28","nodeType":"YulBlock","src":"3315:232:28","statements":[{"nativeSrc":"3341:12:28","nodeType":"YulAssignment","src":"3341:12:28","value":{"kind":"number","nativeSrc":"3352:1:28","nodeType":"YulLiteral","src":"3352:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"3341:7:28","nodeType":"YulIdentifier","src":"3341:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3385:4:28","nodeType":"YulLiteral","src":"3385:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"3391:1:28","nodeType":"YulLiteral","src":"3391:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3378:6:28","nodeType":"YulIdentifier","src":"3378:6:28"},"nativeSrc":"3378:15:28","nodeType":"YulFunctionCall","src":"3378:15:28"},"nativeSrc":"3378:15:28","nodeType":"YulExpressionStatement","src":"3378:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3451:4:28","nodeType":"YulLiteral","src":"3451:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"3457:1:28","nodeType":"YulIdentifier","src":"3457:1:28"}],"functionName":{"name":"mstore","nativeSrc":"3444:6:28","nodeType":"YulIdentifier","src":"3444:6:28"},"nativeSrc":"3444:15:28","nodeType":"YulFunctionCall","src":"3444:15:28"},"nativeSrc":"3444:15:28","nodeType":"YulExpressionStatement","src":"3444:15:28"},{"nativeSrc":"3520:5:28","nodeType":"YulBreak","src":"3520:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"3272:14:28","nodeType":"YulIdentifier","src":"3272:14:28"},"nativeSrc":"3272:16:28","nodeType":"YulFunctionCall","src":"3272:16:28"}],"functionName":{"name":"iszero","nativeSrc":"3265:6:28","nodeType":"YulIdentifier","src":"3265:6:28"},"nativeSrc":"3265:24:28","nodeType":"YulFunctionCall","src":"3265:24:28"},{"arguments":[{"name":"signer","nativeSrc":"3295:6:28","nodeType":"YulIdentifier","src":"3295:6:28"},{"arguments":[{"name":"t","nativeSrc":"3309:1:28","nodeType":"YulIdentifier","src":"3309:1:28"}],"functionName":{"name":"mload","nativeSrc":"3303:5:28","nodeType":"YulIdentifier","src":"3303:5:28"},"nativeSrc":"3303:8:28","nodeType":"YulFunctionCall","src":"3303:8:28"}],"functionName":{"name":"xor","nativeSrc":"3291:3:28","nodeType":"YulIdentifier","src":"3291:3:28"},"nativeSrc":"3291:21:28","nodeType":"YulFunctionCall","src":"3291:21:28"}],"functionName":{"name":"or","nativeSrc":"3262:2:28","nodeType":"YulIdentifier","src":"3262:2:28"},"nativeSrc":"3262:51:28","nodeType":"YulFunctionCall","src":"3262:51:28"}],"functionName":{"name":"iszero","nativeSrc":"3255:6:28","nodeType":"YulIdentifier","src":"3255:6:28"},"nativeSrc":"3255:59:28","nodeType":"YulFunctionCall","src":"3255:59:28"},"nativeSrc":"3252:295:28","nodeType":"YulIf","src":"3252:295:28"}]},"condition":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2500:9:28","nodeType":"YulIdentifier","src":"2500:9:28"}],"functionName":{"name":"mload","nativeSrc":"2494:5:28","nodeType":"YulIdentifier","src":"2494:5:28"},"nativeSrc":"2494:16:28","nodeType":"YulFunctionCall","src":"2494:16:28"},{"kind":"number","nativeSrc":"2512:2:28","nodeType":"YulLiteral","src":"2512:2:28","type":"","value":"64"}],"functionName":{"name":"eq","nativeSrc":"2491:2:28","nodeType":"YulIdentifier","src":"2491:2:28"},"nativeSrc":"2491:24:28","nodeType":"YulFunctionCall","src":"2491:24:28"},"nativeSrc":"2488:1077:28","nodeType":"YulIf","src":"2488:1077:28"},{"body":{"nativeSrc":"3610:1015:28","nodeType":"YulBlock","src":"3610:1015:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3639:4:28","nodeType":"YulLiteral","src":"3639:4:28","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"3650:1:28","nodeType":"YulLiteral","src":"3650:1:28","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3663:9:28","nodeType":"YulIdentifier","src":"3663:9:28"},{"kind":"number","nativeSrc":"3674:4:28","nodeType":"YulLiteral","src":"3674:4:28","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3659:3:28","nodeType":"YulIdentifier","src":"3659:3:28"},"nativeSrc":"3659:20:28","nodeType":"YulFunctionCall","src":"3659:20:28"}],"functionName":{"name":"mload","nativeSrc":"3653:5:28","nodeType":"YulIdentifier","src":"3653:5:28"},"nativeSrc":"3653:27:28","nodeType":"YulFunctionCall","src":"3653:27:28"}],"functionName":{"name":"byte","nativeSrc":"3645:4:28","nodeType":"YulIdentifier","src":"3645:4:28"},"nativeSrc":"3645:36:28","nodeType":"YulFunctionCall","src":"3645:36:28"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:28","nodeType":"YulIdentifier","src":"3632:6:28"},"nativeSrc":"3632:50:28","nodeType":"YulFunctionCall","src":"3632:50:28"},"nativeSrc":"3632:50:28","nodeType":"YulExpressionStatement","src":"3632:50:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3718:4:28","nodeType":"YulLiteral","src":"3718:4:28","type":"","value":"0x60"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3734:9:28","nodeType":"YulIdentifier","src":"3734:9:28"},{"kind":"number","nativeSrc":"3745:4:28","nodeType":"YulLiteral","src":"3745:4:28","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3730:3:28","nodeType":"YulIdentifier","src":"3730:3:28"},"nativeSrc":"3730:20:28","nodeType":"YulFunctionCall","src":"3730:20:28"}],"functionName":{"name":"mload","nativeSrc":"3724:5:28","nodeType":"YulIdentifier","src":"3724:5:28"},"nativeSrc":"3724:27:28","nodeType":"YulFunctionCall","src":"3724:27:28"}],"functionName":{"name":"mstore","nativeSrc":"3711:6:28","nodeType":"YulIdentifier","src":"3711:6:28"},"nativeSrc":"3711:41:28","nodeType":"YulFunctionCall","src":"3711:41:28"},"nativeSrc":"3711:41:28","nodeType":"YulExpressionStatement","src":"3711:41:28"},{"nativeSrc":"3781:417:28","nodeType":"YulVariableDeclaration","src":"3781:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"3854:3:28","nodeType":"YulIdentifier","src":"3854:3:28"},"nativeSrc":"3854:5:28","nodeType":"YulFunctionCall","src":"3854:5:28"},{"kind":"number","nativeSrc":"3932:1:28","nodeType":"YulLiteral","src":"3932:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"3990:4:28","nodeType":"YulLiteral","src":"3990:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4043:4:28","nodeType":"YulLiteral","src":"4043:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"4095:4:28","nodeType":"YulLiteral","src":"4095:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"4149:4:28","nodeType":"YulLiteral","src":"4149:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"3814:10:28","nodeType":"YulIdentifier","src":"3814:10:28"},"nativeSrc":"3814:384:28","nodeType":"YulFunctionCall","src":"3814:384:28"},"variables":[{"name":"t","nativeSrc":"3785:1:28","nodeType":"YulTypedName","src":"3785:1:28","type":""}]},{"body":{"nativeSrc":"4375:232:28","nodeType":"YulBlock","src":"4375:232:28","statements":[{"nativeSrc":"4401:12:28","nodeType":"YulAssignment","src":"4401:12:28","value":{"kind":"number","nativeSrc":"4412:1:28","nodeType":"YulLiteral","src":"4412:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"4401:7:28","nodeType":"YulIdentifier","src":"4401:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4445:4:28","nodeType":"YulLiteral","src":"4445:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"4451:1:28","nodeType":"YulLiteral","src":"4451:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4438:6:28","nodeType":"YulIdentifier","src":"4438:6:28"},"nativeSrc":"4438:15:28","nodeType":"YulFunctionCall","src":"4438:15:28"},"nativeSrc":"4438:15:28","nodeType":"YulExpressionStatement","src":"4438:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4511:4:28","nodeType":"YulLiteral","src":"4511:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"4517:1:28","nodeType":"YulIdentifier","src":"4517:1:28"}],"functionName":{"name":"mstore","nativeSrc":"4504:6:28","nodeType":"YulIdentifier","src":"4504:6:28"},"nativeSrc":"4504:15:28","nodeType":"YulFunctionCall","src":"4504:15:28"},"nativeSrc":"4504:15:28","nodeType":"YulExpressionStatement","src":"4504:15:28"},{"nativeSrc":"4580:5:28","nodeType":"YulBreak","src":"4580:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4332:14:28","nodeType":"YulIdentifier","src":"4332:14:28"},"nativeSrc":"4332:16:28","nodeType":"YulFunctionCall","src":"4332:16:28"}],"functionName":{"name":"iszero","nativeSrc":"4325:6:28","nodeType":"YulIdentifier","src":"4325:6:28"},"nativeSrc":"4325:24:28","nodeType":"YulFunctionCall","src":"4325:24:28"},{"arguments":[{"name":"signer","nativeSrc":"4355:6:28","nodeType":"YulIdentifier","src":"4355:6:28"},{"arguments":[{"name":"t","nativeSrc":"4369:1:28","nodeType":"YulIdentifier","src":"4369:1:28"}],"functionName":{"name":"mload","nativeSrc":"4363:5:28","nodeType":"YulIdentifier","src":"4363:5:28"},"nativeSrc":"4363:8:28","nodeType":"YulFunctionCall","src":"4363:8:28"}],"functionName":{"name":"xor","nativeSrc":"4351:3:28","nodeType":"YulIdentifier","src":"4351:3:28"},"nativeSrc":"4351:21:28","nodeType":"YulFunctionCall","src":"4351:21:28"}],"functionName":{"name":"or","nativeSrc":"4322:2:28","nodeType":"YulIdentifier","src":"4322:2:28"},"nativeSrc":"4322:51:28","nodeType":"YulFunctionCall","src":"4322:51:28"}],"functionName":{"name":"iszero","nativeSrc":"4315:6:28","nodeType":"YulIdentifier","src":"4315:6:28"},"nativeSrc":"4315:59:28","nodeType":"YulFunctionCall","src":"4315:59:28"},"nativeSrc":"4312:295:28","nodeType":"YulIf","src":"4312:295:28"}]},"condition":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3594:9:28","nodeType":"YulIdentifier","src":"3594:9:28"}],"functionName":{"name":"mload","nativeSrc":"3588:5:28","nodeType":"YulIdentifier","src":"3588:5:28"},"nativeSrc":"3588:16:28","nodeType":"YulFunctionCall","src":"3588:16:28"},{"kind":"number","nativeSrc":"3606:2:28","nodeType":"YulLiteral","src":"3606:2:28","type":"","value":"65"}],"functionName":{"name":"eq","nativeSrc":"3585:2:28","nodeType":"YulIdentifier","src":"3585:2:28"},"nativeSrc":"3585:24:28","nodeType":"YulFunctionCall","src":"3585:24:28"},"nativeSrc":"3582:1043:28","nodeType":"YulIf","src":"3582:1043:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4649:4:28","nodeType":"YulLiteral","src":"4649:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"4655:1:28","nodeType":"YulLiteral","src":"4655:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4642:6:28","nodeType":"YulIdentifier","src":"4642:6:28"},"nativeSrc":"4642:15:28","nodeType":"YulFunctionCall","src":"4642:15:28"},"nativeSrc":"4642:15:28","nodeType":"YulExpressionStatement","src":"4642:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4707:4:28","nodeType":"YulLiteral","src":"4707:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"4713:1:28","nodeType":"YulIdentifier","src":"4713:1:28"}],"functionName":{"name":"mstore","nativeSrc":"4700:6:28","nodeType":"YulIdentifier","src":"4700:6:28"},"nativeSrc":"4700:15:28","nodeType":"YulFunctionCall","src":"4700:15:28"},"nativeSrc":"4700:15:28","nodeType":"YulExpressionStatement","src":"4700:15:28"},{"nativeSrc":"4769:29:28","nodeType":"YulVariableDeclaration","src":"4769:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"4782:3:28","nodeType":"YulLiteral","src":"4782:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"4787:10:28","nodeType":"YulLiteral","src":"4787:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"4778:3:28","nodeType":"YulIdentifier","src":"4778:3:28"},"nativeSrc":"4778:20:28","nodeType":"YulFunctionCall","src":"4778:20:28"},"variables":[{"name":"f","nativeSrc":"4773:1:28","nodeType":"YulTypedName","src":"4773:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"4822:1:28","nodeType":"YulIdentifier","src":"4822:1:28"},{"name":"f","nativeSrc":"4825:1:28","nodeType":"YulIdentifier","src":"4825:1:28"}],"functionName":{"name":"mstore","nativeSrc":"4815:6:28","nodeType":"YulIdentifier","src":"4815:6:28"},"nativeSrc":"4815:12:28","nodeType":"YulFunctionCall","src":"4815:12:28"},"nativeSrc":"4815:12:28","nodeType":"YulExpressionStatement","src":"4815:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"4914:1:28","nodeType":"YulIdentifier","src":"4914:1:28"},{"kind":"number","nativeSrc":"4917:4:28","nodeType":"YulLiteral","src":"4917:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"4910:3:28","nodeType":"YulIdentifier","src":"4910:3:28"},"nativeSrc":"4910:12:28","nodeType":"YulFunctionCall","src":"4910:12:28"},{"name":"hash","nativeSrc":"4924:4:28","nodeType":"YulIdentifier","src":"4924:4:28"}],"functionName":{"name":"mstore","nativeSrc":"4903:6:28","nodeType":"YulIdentifier","src":"4903:6:28"},"nativeSrc":"4903:26:28","nodeType":"YulFunctionCall","src":"4903:26:28"},"nativeSrc":"4903:26:28","nodeType":"YulExpressionStatement","src":"4903:26:28"},{"nativeSrc":"4946:21:28","nodeType":"YulVariableDeclaration","src":"4946:21:28","value":{"arguments":[{"name":"m","nativeSrc":"4959:1:28","nodeType":"YulIdentifier","src":"4959:1:28"},{"kind":"number","nativeSrc":"4962:4:28","nodeType":"YulLiteral","src":"4962:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"4955:3:28","nodeType":"YulIdentifier","src":"4955:3:28"},"nativeSrc":"4955:12:28","nodeType":"YulFunctionCall","src":"4955:12:28"},"variables":[{"name":"d","nativeSrc":"4950:1:28","nodeType":"YulTypedName","src":"4950:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"4991:1:28","nodeType":"YulIdentifier","src":"4991:1:28"},{"kind":"number","nativeSrc":"4994:4:28","nodeType":"YulLiteral","src":"4994:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"4984:6:28","nodeType":"YulIdentifier","src":"4984:6:28"},"nativeSrc":"4984:15:28","nodeType":"YulFunctionCall","src":"4984:15:28"},"nativeSrc":"4984:15:28","nodeType":"YulExpressionStatement","src":"4984:15:28"},{"nativeSrc":"5112:36:28","nodeType":"YulVariableDeclaration","src":"5112:36:28","value":{"arguments":[{"kind":"number","nativeSrc":"5125:4:28","nodeType":"YulLiteral","src":"5125:4:28","type":"","value":"0x20"},{"arguments":[{"name":"signature","nativeSrc":"5137:9:28","nodeType":"YulIdentifier","src":"5137:9:28"}],"functionName":{"name":"mload","nativeSrc":"5131:5:28","nodeType":"YulIdentifier","src":"5131:5:28"},"nativeSrc":"5131:16:28","nodeType":"YulFunctionCall","src":"5131:16:28"}],"functionName":{"name":"add","nativeSrc":"5121:3:28","nodeType":"YulIdentifier","src":"5121:3:28"},"nativeSrc":"5121:27:28","nodeType":"YulFunctionCall","src":"5121:27:28"},"variables":[{"name":"n","nativeSrc":"5116:1:28","nodeType":"YulTypedName","src":"5116:1:28","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"5180:3:28","nodeType":"YulIdentifier","src":"5180:3:28"},"nativeSrc":"5180:5:28","nodeType":"YulFunctionCall","src":"5180:5:28"},{"kind":"number","nativeSrc":"5187:1:28","nodeType":"YulLiteral","src":"5187:1:28","type":"","value":"4"},{"name":"signature","nativeSrc":"5190:9:28","nodeType":"YulIdentifier","src":"5190:9:28"},{"name":"n","nativeSrc":"5201:1:28","nodeType":"YulIdentifier","src":"5201:1:28"},{"arguments":[{"name":"m","nativeSrc":"5208:1:28","nodeType":"YulIdentifier","src":"5208:1:28"},{"kind":"number","nativeSrc":"5211:4:28","nodeType":"YulLiteral","src":"5211:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"5204:3:28","nodeType":"YulIdentifier","src":"5204:3:28"},"nativeSrc":"5204:12:28","nodeType":"YulFunctionCall","src":"5204:12:28"},{"name":"n","nativeSrc":"5218:1:28","nodeType":"YulIdentifier","src":"5218:1:28"}],"functionName":{"name":"staticcall","nativeSrc":"5169:10:28","nodeType":"YulIdentifier","src":"5169:10:28"},"nativeSrc":"5169:51:28","nodeType":"YulFunctionCall","src":"5169:51:28"}],"functionName":{"name":"pop","nativeSrc":"5165:3:28","nodeType":"YulIdentifier","src":"5165:3:28"},"nativeSrc":"5165:56:28","nodeType":"YulFunctionCall","src":"5165:56:28"},"nativeSrc":"5165:56:28","nodeType":"YulExpressionStatement","src":"5165:56:28"},{"nativeSrc":"5285:797:28","nodeType":"YulAssignment","src":"5285:797:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"5424:1:28","nodeType":"YulIdentifier","src":"5424:1:28"}],"functionName":{"name":"mload","nativeSrc":"5418:5:28","nodeType":"YulIdentifier","src":"5418:5:28"},"nativeSrc":"5418:8:28","nodeType":"YulFunctionCall","src":"5418:8:28"},{"name":"f","nativeSrc":"5428:1:28","nodeType":"YulIdentifier","src":"5428:1:28"}],"functionName":{"name":"eq","nativeSrc":"5415:2:28","nodeType":"YulIdentifier","src":"5415:2:28"},"nativeSrc":"5415:15:28","nodeType":"YulFunctionCall","src":"5415:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"5700:3:28","nodeType":"YulIdentifier","src":"5700:3:28"},"nativeSrc":"5700:5:28","nodeType":"YulFunctionCall","src":"5700:5:28"},{"name":"signer","nativeSrc":"5749:6:28","nodeType":"YulIdentifier","src":"5749:6:28"},{"name":"m","nativeSrc":"5806:1:28","nodeType":"YulIdentifier","src":"5806:1:28"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"5870:14:28","nodeType":"YulIdentifier","src":"5870:14:28"},"nativeSrc":"5870:16:28","nodeType":"YulFunctionCall","src":"5870:16:28"},{"kind":"number","nativeSrc":"5888:4:28","nodeType":"YulLiteral","src":"5888:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"5866:3:28","nodeType":"YulIdentifier","src":"5866:3:28"},"nativeSrc":"5866:27:28","nodeType":"YulFunctionCall","src":"5866:27:28"},{"name":"d","nativeSrc":"5952:1:28","nodeType":"YulIdentifier","src":"5952:1:28"},{"kind":"number","nativeSrc":"6004:4:28","nodeType":"YulLiteral","src":"6004:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"5664:10:28","nodeType":"YulIdentifier","src":"5664:10:28"},"nativeSrc":"5664:400:28","nodeType":"YulFunctionCall","src":"5664:400:28"}],"functionName":{"name":"and","nativeSrc":"5296:3:28","nodeType":"YulIdentifier","src":"5296:3:28"},"nativeSrc":"5296:786:28","nodeType":"YulFunctionCall","src":"5296:786:28"},"variableNames":[{"name":"isValid","nativeSrc":"5285:7:28","nodeType":"YulIdentifier","src":"5285:7:28"}]},{"nativeSrc":"6099:5:28","nodeType":"YulBreak","src":"6099:5:28"}]},"condition":{"name":"signer","nativeSrc":"2322:6:28","nodeType":"YulIdentifier","src":"2322:6:28"},"nativeSrc":"2279:3839:28","nodeType":"YulForLoop","post":{"nativeSrc":"2329:2:28","nodeType":"YulBlock","src":"2329:2:28","statements":[]},"pre":{"nativeSrc":"2283:38:28","nodeType":"YulBlock","src":"2283:38:28","statements":[{"nativeSrc":"2285:34:28","nodeType":"YulAssignment","src":"2285:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"2299:2:28","nodeType":"YulLiteral","src":"2299:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"2307:2:28","nodeType":"YulLiteral","src":"2307:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"2311:6:28","nodeType":"YulIdentifier","src":"2311:6:28"}],"functionName":{"name":"shl","nativeSrc":"2303:3:28","nodeType":"YulIdentifier","src":"2303:3:28"},"nativeSrc":"2303:15:28","nodeType":"YulFunctionCall","src":"2303:15:28"}],"functionName":{"name":"shr","nativeSrc":"2295:3:28","nodeType":"YulIdentifier","src":"2295:3:28"},"nativeSrc":"2295:24:28","nodeType":"YulFunctionCall","src":"2295:24:28"},"variableNames":[{"name":"signer","nativeSrc":"2285:6:28","nodeType":"YulIdentifier","src":"2285:6:28"}]}]},"src":"2279:3839:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11380,"isOffset":false,"isSlot":false,"src":"2400:4:28","valueSize":1},{"declaration":11380,"isOffset":false,"isSlot":false,"src":"4924:4:28","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"3341:7:28","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"4401:7:28","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"5285:7:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"2445:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"2500:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"2558:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"3594:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"3663:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"3734:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"5137:9:28","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"5190:9:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"2285:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"2311:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"2322:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"3295:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"4355:6:28","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"5749:6:28","valueSize":1}],"id":11387,"nodeType":"InlineAssembly","src":"2181:3947:28"}]},"documentation":{"id":11376,"nodeType":"StructuredDocumentation","src":"1755:220:28","text":"@dev Returns whether `signature` is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11389,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1989:19:28","nodeType":"FunctionDefinition","parameters":{"id":11383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11378,"mutability":"mutable","name":"signer","nameLocation":"2017:6:28","nodeType":"VariableDeclaration","scope":11389,"src":"2009:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11377,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11380,"mutability":"mutable","name":"hash","nameLocation":"2033:4:28","nodeType":"VariableDeclaration","scope":11389,"src":"2025:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2025:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11382,"mutability":"mutable","name":"signature","nameLocation":"2052:9:28","nodeType":"VariableDeclaration","scope":11389,"src":"2039:22:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11381,"name":"bytes","nodeType":"ElementaryTypeName","src":"2039:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2008:54:28"},"returnParameters":{"id":11386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11385,"mutability":"mutable","name":"isValid","nameLocation":"2115:7:28","nodeType":"VariableDeclaration","scope":11389,"src":"2110:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11384,"name":"bool","nodeType":"ElementaryTypeName","src":"2110:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2109:14:28"},"scope":11528,"src":"1980:4154:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11402,"nodeType":"Block","src":"6523:4055:28","statements":[{"AST":{"nativeSrc":"6585:3987:28","nodeType":"YulBlock","src":"6585:3987:28","statements":[{"body":{"nativeSrc":"6727:3835:28","nodeType":"YulBlock","src":"6727:3835:28","statements":[{"nativeSrc":"6745:20:28","nodeType":"YulVariableDeclaration","src":"6745:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"6760:4:28","nodeType":"YulLiteral","src":"6760:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6754:5:28","nodeType":"YulIdentifier","src":"6754:5:28"},"nativeSrc":"6754:11:28","nodeType":"YulFunctionCall","src":"6754:11:28"},"variables":[{"name":"m","nativeSrc":"6749:1:28","nodeType":"YulTypedName","src":"6749:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6789:4:28","nodeType":"YulLiteral","src":"6789:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"6795:4:28","nodeType":"YulIdentifier","src":"6795:4:28"}],"functionName":{"name":"mstore","nativeSrc":"6782:6:28","nodeType":"YulIdentifier","src":"6782:6:28"},"nativeSrc":"6782:18:28","nodeType":"YulFunctionCall","src":"6782:18:28"},"nativeSrc":"6782:18:28","nodeType":"YulExpressionStatement","src":"6782:18:28"},{"body":{"nativeSrc":"6845:1136:28","nodeType":"YulBlock","src":"6845:1136:28","statements":[{"nativeSrc":"6867:51:28","nodeType":"YulVariableDeclaration","src":"6867:51:28","value":{"arguments":[{"arguments":[{"name":"signature.offset","nativeSrc":"6894:16:28","nodeType":"YulIdentifier","src":"6894:16:28"},{"kind":"number","nativeSrc":"6912:4:28","nodeType":"YulLiteral","src":"6912:4:28","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6890:3:28","nodeType":"YulIdentifier","src":"6890:3:28"},"nativeSrc":"6890:27:28","nodeType":"YulFunctionCall","src":"6890:27:28"}],"functionName":{"name":"calldataload","nativeSrc":"6877:12:28","nodeType":"YulIdentifier","src":"6877:12:28"},"nativeSrc":"6877:41:28","nodeType":"YulFunctionCall","src":"6877:41:28"},"variables":[{"name":"vs","nativeSrc":"6871:2:28","nodeType":"YulTypedName","src":"6871:2:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6946:4:28","nodeType":"YulLiteral","src":"6946:4:28","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6960:3:28","nodeType":"YulLiteral","src":"6960:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"6965:2:28","nodeType":"YulIdentifier","src":"6965:2:28"}],"functionName":{"name":"shr","nativeSrc":"6956:3:28","nodeType":"YulIdentifier","src":"6956:3:28"},"nativeSrc":"6956:12:28","nodeType":"YulFunctionCall","src":"6956:12:28"},{"kind":"number","nativeSrc":"6970:2:28","nodeType":"YulLiteral","src":"6970:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"6952:3:28","nodeType":"YulIdentifier","src":"6952:3:28"},"nativeSrc":"6952:21:28","nodeType":"YulFunctionCall","src":"6952:21:28"}],"functionName":{"name":"mstore","nativeSrc":"6939:6:28","nodeType":"YulIdentifier","src":"6939:6:28"},"nativeSrc":"6939:35:28","nodeType":"YulFunctionCall","src":"6939:35:28"},"nativeSrc":"6939:35:28","nodeType":"YulExpressionStatement","src":"6939:35:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7010:4:28","nodeType":"YulLiteral","src":"7010:4:28","type":"","value":"0x40"},{"arguments":[{"name":"signature.offset","nativeSrc":"7029:16:28","nodeType":"YulIdentifier","src":"7029:16:28"}],"functionName":{"name":"calldataload","nativeSrc":"7016:12:28","nodeType":"YulIdentifier","src":"7016:12:28"},"nativeSrc":"7016:30:28","nodeType":"YulFunctionCall","src":"7016:30:28"}],"functionName":{"name":"mstore","nativeSrc":"7003:6:28","nodeType":"YulIdentifier","src":"7003:6:28"},"nativeSrc":"7003:44:28","nodeType":"YulFunctionCall","src":"7003:44:28"},"nativeSrc":"7003:44:28","nodeType":"YulExpressionStatement","src":"7003:44:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7083:4:28","nodeType":"YulLiteral","src":"7083:4:28","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"7093:1:28","nodeType":"YulLiteral","src":"7093:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"7100:1:28","nodeType":"YulLiteral","src":"7100:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"7103:2:28","nodeType":"YulIdentifier","src":"7103:2:28"}],"functionName":{"name":"shl","nativeSrc":"7096:3:28","nodeType":"YulIdentifier","src":"7096:3:28"},"nativeSrc":"7096:10:28","nodeType":"YulFunctionCall","src":"7096:10:28"}],"functionName":{"name":"shr","nativeSrc":"7089:3:28","nodeType":"YulIdentifier","src":"7089:3:28"},"nativeSrc":"7089:18:28","nodeType":"YulFunctionCall","src":"7089:18:28"}],"functionName":{"name":"mstore","nativeSrc":"7076:6:28","nodeType":"YulIdentifier","src":"7076:6:28"},"nativeSrc":"7076:32:28","nodeType":"YulFunctionCall","src":"7076:32:28"},"nativeSrc":"7076:32:28","nodeType":"YulExpressionStatement","src":"7076:32:28"},{"nativeSrc":"7137:417:28","nodeType":"YulVariableDeclaration","src":"7137:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"7210:3:28","nodeType":"YulIdentifier","src":"7210:3:28"},"nativeSrc":"7210:5:28","nodeType":"YulFunctionCall","src":"7210:5:28"},{"kind":"number","nativeSrc":"7288:1:28","nodeType":"YulLiteral","src":"7288:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"7346:4:28","nodeType":"YulLiteral","src":"7346:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7399:4:28","nodeType":"YulLiteral","src":"7399:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"7451:4:28","nodeType":"YulLiteral","src":"7451:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"7505:4:28","nodeType":"YulLiteral","src":"7505:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"7170:10:28","nodeType":"YulIdentifier","src":"7170:10:28"},"nativeSrc":"7170:384:28","nodeType":"YulFunctionCall","src":"7170:384:28"},"variables":[{"name":"t","nativeSrc":"7141:1:28","nodeType":"YulTypedName","src":"7141:1:28","type":""}]},{"body":{"nativeSrc":"7731:232:28","nodeType":"YulBlock","src":"7731:232:28","statements":[{"nativeSrc":"7757:12:28","nodeType":"YulAssignment","src":"7757:12:28","value":{"kind":"number","nativeSrc":"7768:1:28","nodeType":"YulLiteral","src":"7768:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"7757:7:28","nodeType":"YulIdentifier","src":"7757:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7801:4:28","nodeType":"YulLiteral","src":"7801:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"7807:1:28","nodeType":"YulLiteral","src":"7807:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7794:6:28","nodeType":"YulIdentifier","src":"7794:6:28"},"nativeSrc":"7794:15:28","nodeType":"YulFunctionCall","src":"7794:15:28"},"nativeSrc":"7794:15:28","nodeType":"YulExpressionStatement","src":"7794:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7867:4:28","nodeType":"YulLiteral","src":"7867:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"7873:1:28","nodeType":"YulIdentifier","src":"7873:1:28"}],"functionName":{"name":"mstore","nativeSrc":"7860:6:28","nodeType":"YulIdentifier","src":"7860:6:28"},"nativeSrc":"7860:15:28","nodeType":"YulFunctionCall","src":"7860:15:28"},"nativeSrc":"7860:15:28","nodeType":"YulExpressionStatement","src":"7860:15:28"},{"nativeSrc":"7936:5:28","nodeType":"YulBreak","src":"7936:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"7688:14:28","nodeType":"YulIdentifier","src":"7688:14:28"},"nativeSrc":"7688:16:28","nodeType":"YulFunctionCall","src":"7688:16:28"}],"functionName":{"name":"iszero","nativeSrc":"7681:6:28","nodeType":"YulIdentifier","src":"7681:6:28"},"nativeSrc":"7681:24:28","nodeType":"YulFunctionCall","src":"7681:24:28"},{"arguments":[{"name":"signer","nativeSrc":"7711:6:28","nodeType":"YulIdentifier","src":"7711:6:28"},{"arguments":[{"name":"t","nativeSrc":"7725:1:28","nodeType":"YulIdentifier","src":"7725:1:28"}],"functionName":{"name":"mload","nativeSrc":"7719:5:28","nodeType":"YulIdentifier","src":"7719:5:28"},"nativeSrc":"7719:8:28","nodeType":"YulFunctionCall","src":"7719:8:28"}],"functionName":{"name":"xor","nativeSrc":"7707:3:28","nodeType":"YulIdentifier","src":"7707:3:28"},"nativeSrc":"7707:21:28","nodeType":"YulFunctionCall","src":"7707:21:28"}],"functionName":{"name":"or","nativeSrc":"7678:2:28","nodeType":"YulIdentifier","src":"7678:2:28"},"nativeSrc":"7678:51:28","nodeType":"YulFunctionCall","src":"7678:51:28"}],"functionName":{"name":"iszero","nativeSrc":"7671:6:28","nodeType":"YulIdentifier","src":"7671:6:28"},"nativeSrc":"7671:59:28","nodeType":"YulFunctionCall","src":"7671:59:28"},"nativeSrc":"7668:295:28","nodeType":"YulIf","src":"7668:295:28"}]},"condition":{"arguments":[{"name":"signature.length","nativeSrc":"6823:16:28","nodeType":"YulIdentifier","src":"6823:16:28"},{"kind":"number","nativeSrc":"6841:2:28","nodeType":"YulLiteral","src":"6841:2:28","type":"","value":"64"}],"functionName":{"name":"eq","nativeSrc":"6820:2:28","nodeType":"YulIdentifier","src":"6820:2:28"},"nativeSrc":"6820:24:28","nodeType":"YulFunctionCall","src":"6820:24:28"},"nativeSrc":"6817:1164:28","nodeType":"YulIf","src":"6817:1164:28"},{"body":{"nativeSrc":"8026:1035:28","nodeType":"YulBlock","src":"8026:1035:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8055:4:28","nodeType":"YulLiteral","src":"8055:4:28","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"8066:1:28","nodeType":"YulLiteral","src":"8066:1:28","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature.offset","nativeSrc":"8086:16:28","nodeType":"YulIdentifier","src":"8086:16:28"},{"kind":"number","nativeSrc":"8104:4:28","nodeType":"YulLiteral","src":"8104:4:28","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8082:3:28","nodeType":"YulIdentifier","src":"8082:3:28"},"nativeSrc":"8082:27:28","nodeType":"YulFunctionCall","src":"8082:27:28"}],"functionName":{"name":"calldataload","nativeSrc":"8069:12:28","nodeType":"YulIdentifier","src":"8069:12:28"},"nativeSrc":"8069:41:28","nodeType":"YulFunctionCall","src":"8069:41:28"}],"functionName":{"name":"byte","nativeSrc":"8061:4:28","nodeType":"YulIdentifier","src":"8061:4:28"},"nativeSrc":"8061:50:28","nodeType":"YulFunctionCall","src":"8061:50:28"}],"functionName":{"name":"mstore","nativeSrc":"8048:6:28","nodeType":"YulIdentifier","src":"8048:6:28"},"nativeSrc":"8048:64:28","nodeType":"YulFunctionCall","src":"8048:64:28"},"nativeSrc":"8048:64:28","nodeType":"YulExpressionStatement","src":"8048:64:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8154:4:28","nodeType":"YulLiteral","src":"8154:4:28","type":"","value":"0x40"},{"name":"signature.offset","nativeSrc":"8160:16:28","nodeType":"YulIdentifier","src":"8160:16:28"},{"kind":"number","nativeSrc":"8178:4:28","nodeType":"YulLiteral","src":"8178:4:28","type":"","value":"0x40"}],"functionName":{"name":"calldatacopy","nativeSrc":"8141:12:28","nodeType":"YulIdentifier","src":"8141:12:28"},"nativeSrc":"8141:42:28","nodeType":"YulFunctionCall","src":"8141:42:28"},"nativeSrc":"8141:42:28","nodeType":"YulExpressionStatement","src":"8141:42:28"},{"nativeSrc":"8217:417:28","nodeType":"YulVariableDeclaration","src":"8217:417:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"8290:3:28","nodeType":"YulIdentifier","src":"8290:3:28"},"nativeSrc":"8290:5:28","nodeType":"YulFunctionCall","src":"8290:5:28"},{"kind":"number","nativeSrc":"8368:1:28","nodeType":"YulLiteral","src":"8368:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"8426:4:28","nodeType":"YulLiteral","src":"8426:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8479:4:28","nodeType":"YulLiteral","src":"8479:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"8531:4:28","nodeType":"YulLiteral","src":"8531:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"8585:4:28","nodeType":"YulLiteral","src":"8585:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"8250:10:28","nodeType":"YulIdentifier","src":"8250:10:28"},"nativeSrc":"8250:384:28","nodeType":"YulFunctionCall","src":"8250:384:28"},"variables":[{"name":"t","nativeSrc":"8221:1:28","nodeType":"YulTypedName","src":"8221:1:28","type":""}]},{"body":{"nativeSrc":"8811:232:28","nodeType":"YulBlock","src":"8811:232:28","statements":[{"nativeSrc":"8837:12:28","nodeType":"YulAssignment","src":"8837:12:28","value":{"kind":"number","nativeSrc":"8848:1:28","nodeType":"YulLiteral","src":"8848:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"8837:7:28","nodeType":"YulIdentifier","src":"8837:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8881:4:28","nodeType":"YulLiteral","src":"8881:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"8887:1:28","nodeType":"YulLiteral","src":"8887:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8874:6:28","nodeType":"YulIdentifier","src":"8874:6:28"},"nativeSrc":"8874:15:28","nodeType":"YulFunctionCall","src":"8874:15:28"},"nativeSrc":"8874:15:28","nodeType":"YulExpressionStatement","src":"8874:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8947:4:28","nodeType":"YulLiteral","src":"8947:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"8953:1:28","nodeType":"YulIdentifier","src":"8953:1:28"}],"functionName":{"name":"mstore","nativeSrc":"8940:6:28","nodeType":"YulIdentifier","src":"8940:6:28"},"nativeSrc":"8940:15:28","nodeType":"YulFunctionCall","src":"8940:15:28"},"nativeSrc":"8940:15:28","nodeType":"YulExpressionStatement","src":"8940:15:28"},{"nativeSrc":"9016:5:28","nodeType":"YulBreak","src":"9016:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"8768:14:28","nodeType":"YulIdentifier","src":"8768:14:28"},"nativeSrc":"8768:16:28","nodeType":"YulFunctionCall","src":"8768:16:28"}],"functionName":{"name":"iszero","nativeSrc":"8761:6:28","nodeType":"YulIdentifier","src":"8761:6:28"},"nativeSrc":"8761:24:28","nodeType":"YulFunctionCall","src":"8761:24:28"},{"arguments":[{"name":"signer","nativeSrc":"8791:6:28","nodeType":"YulIdentifier","src":"8791:6:28"},{"arguments":[{"name":"t","nativeSrc":"8805:1:28","nodeType":"YulIdentifier","src":"8805:1:28"}],"functionName":{"name":"mload","nativeSrc":"8799:5:28","nodeType":"YulIdentifier","src":"8799:5:28"},"nativeSrc":"8799:8:28","nodeType":"YulFunctionCall","src":"8799:8:28"}],"functionName":{"name":"xor","nativeSrc":"8787:3:28","nodeType":"YulIdentifier","src":"8787:3:28"},"nativeSrc":"8787:21:28","nodeType":"YulFunctionCall","src":"8787:21:28"}],"functionName":{"name":"or","nativeSrc":"8758:2:28","nodeType":"YulIdentifier","src":"8758:2:28"},"nativeSrc":"8758:51:28","nodeType":"YulFunctionCall","src":"8758:51:28"}],"functionName":{"name":"iszero","nativeSrc":"8751:6:28","nodeType":"YulIdentifier","src":"8751:6:28"},"nativeSrc":"8751:59:28","nodeType":"YulFunctionCall","src":"8751:59:28"},"nativeSrc":"8748:295:28","nodeType":"YulIf","src":"8748:295:28"}]},"condition":{"arguments":[{"name":"signature.length","nativeSrc":"8004:16:28","nodeType":"YulIdentifier","src":"8004:16:28"},{"kind":"number","nativeSrc":"8022:2:28","nodeType":"YulLiteral","src":"8022:2:28","type":"","value":"65"}],"functionName":{"name":"eq","nativeSrc":"8001:2:28","nodeType":"YulIdentifier","src":"8001:2:28"},"nativeSrc":"8001:24:28","nodeType":"YulFunctionCall","src":"8001:24:28"},"nativeSrc":"7998:1063:28","nodeType":"YulIf","src":"7998:1063:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9085:4:28","nodeType":"YulLiteral","src":"9085:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"9091:1:28","nodeType":"YulLiteral","src":"9091:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9078:6:28","nodeType":"YulIdentifier","src":"9078:6:28"},"nativeSrc":"9078:15:28","nodeType":"YulFunctionCall","src":"9078:15:28"},"nativeSrc":"9078:15:28","nodeType":"YulExpressionStatement","src":"9078:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9143:4:28","nodeType":"YulLiteral","src":"9143:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"9149:1:28","nodeType":"YulIdentifier","src":"9149:1:28"}],"functionName":{"name":"mstore","nativeSrc":"9136:6:28","nodeType":"YulIdentifier","src":"9136:6:28"},"nativeSrc":"9136:15:28","nodeType":"YulFunctionCall","src":"9136:15:28"},"nativeSrc":"9136:15:28","nodeType":"YulExpressionStatement","src":"9136:15:28"},{"nativeSrc":"9205:29:28","nodeType":"YulVariableDeclaration","src":"9205:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"9218:3:28","nodeType":"YulLiteral","src":"9218:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"9223:10:28","nodeType":"YulLiteral","src":"9223:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"9214:3:28","nodeType":"YulIdentifier","src":"9214:3:28"},"nativeSrc":"9214:20:28","nodeType":"YulFunctionCall","src":"9214:20:28"},"variables":[{"name":"f","nativeSrc":"9209:1:28","nodeType":"YulTypedName","src":"9209:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"9258:1:28","nodeType":"YulIdentifier","src":"9258:1:28"},{"name":"f","nativeSrc":"9261:1:28","nodeType":"YulIdentifier","src":"9261:1:28"}],"functionName":{"name":"mstore","nativeSrc":"9251:6:28","nodeType":"YulIdentifier","src":"9251:6:28"},"nativeSrc":"9251:12:28","nodeType":"YulFunctionCall","src":"9251:12:28"},"nativeSrc":"9251:12:28","nodeType":"YulExpressionStatement","src":"9251:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9350:1:28","nodeType":"YulIdentifier","src":"9350:1:28"},{"kind":"number","nativeSrc":"9353:4:28","nodeType":"YulLiteral","src":"9353:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"9346:3:28","nodeType":"YulIdentifier","src":"9346:3:28"},"nativeSrc":"9346:12:28","nodeType":"YulFunctionCall","src":"9346:12:28"},{"name":"hash","nativeSrc":"9360:4:28","nodeType":"YulIdentifier","src":"9360:4:28"}],"functionName":{"name":"mstore","nativeSrc":"9339:6:28","nodeType":"YulIdentifier","src":"9339:6:28"},"nativeSrc":"9339:26:28","nodeType":"YulFunctionCall","src":"9339:26:28"},"nativeSrc":"9339:26:28","nodeType":"YulExpressionStatement","src":"9339:26:28"},{"nativeSrc":"9382:21:28","nodeType":"YulVariableDeclaration","src":"9382:21:28","value":{"arguments":[{"name":"m","nativeSrc":"9395:1:28","nodeType":"YulIdentifier","src":"9395:1:28"},{"kind":"number","nativeSrc":"9398:4:28","nodeType":"YulLiteral","src":"9398:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"9391:3:28","nodeType":"YulIdentifier","src":"9391:3:28"},"nativeSrc":"9391:12:28","nodeType":"YulFunctionCall","src":"9391:12:28"},"variables":[{"name":"d","nativeSrc":"9386:1:28","nodeType":"YulTypedName","src":"9386:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"9427:1:28","nodeType":"YulIdentifier","src":"9427:1:28"},{"kind":"number","nativeSrc":"9430:4:28","nodeType":"YulLiteral","src":"9430:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"9420:6:28","nodeType":"YulIdentifier","src":"9420:6:28"},"nativeSrc":"9420:15:28","nodeType":"YulFunctionCall","src":"9420:15:28"},"nativeSrc":"9420:15:28","nodeType":"YulExpressionStatement","src":"9420:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9513:1:28","nodeType":"YulIdentifier","src":"9513:1:28"},{"kind":"number","nativeSrc":"9516:4:28","nodeType":"YulLiteral","src":"9516:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"9509:3:28","nodeType":"YulIdentifier","src":"9509:3:28"},"nativeSrc":"9509:12:28","nodeType":"YulFunctionCall","src":"9509:12:28"},{"name":"signature.length","nativeSrc":"9523:16:28","nodeType":"YulIdentifier","src":"9523:16:28"}],"functionName":{"name":"mstore","nativeSrc":"9502:6:28","nodeType":"YulIdentifier","src":"9502:6:28"},"nativeSrc":"9502:38:28","nodeType":"YulFunctionCall","src":"9502:38:28"},"nativeSrc":"9502:38:28","nodeType":"YulExpressionStatement","src":"9502:38:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9620:1:28","nodeType":"YulIdentifier","src":"9620:1:28"},{"kind":"number","nativeSrc":"9623:4:28","nodeType":"YulLiteral","src":"9623:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"9616:3:28","nodeType":"YulIdentifier","src":"9616:3:28"},"nativeSrc":"9616:12:28","nodeType":"YulFunctionCall","src":"9616:12:28"},{"name":"signature.offset","nativeSrc":"9630:16:28","nodeType":"YulIdentifier","src":"9630:16:28"},{"name":"signature.length","nativeSrc":"9648:16:28","nodeType":"YulIdentifier","src":"9648:16:28"}],"functionName":{"name":"calldatacopy","nativeSrc":"9603:12:28","nodeType":"YulIdentifier","src":"9603:12:28"},"nativeSrc":"9603:62:28","nodeType":"YulFunctionCall","src":"9603:62:28"},"nativeSrc":"9603:62:28","nodeType":"YulExpressionStatement","src":"9603:62:28"},{"nativeSrc":"9729:797:28","nodeType":"YulAssignment","src":"9729:797:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"9868:1:28","nodeType":"YulIdentifier","src":"9868:1:28"}],"functionName":{"name":"mload","nativeSrc":"9862:5:28","nodeType":"YulIdentifier","src":"9862:5:28"},"nativeSrc":"9862:8:28","nodeType":"YulFunctionCall","src":"9862:8:28"},{"name":"f","nativeSrc":"9872:1:28","nodeType":"YulIdentifier","src":"9872:1:28"}],"functionName":{"name":"eq","nativeSrc":"9859:2:28","nodeType":"YulIdentifier","src":"9859:2:28"},"nativeSrc":"9859:15:28","nodeType":"YulFunctionCall","src":"9859:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"10144:3:28","nodeType":"YulIdentifier","src":"10144:3:28"},"nativeSrc":"10144:5:28","nodeType":"YulFunctionCall","src":"10144:5:28"},{"name":"signer","nativeSrc":"10193:6:28","nodeType":"YulIdentifier","src":"10193:6:28"},{"name":"m","nativeSrc":"10250:1:28","nodeType":"YulIdentifier","src":"10250:1:28"},{"arguments":[{"name":"signature.length","nativeSrc":"10314:16:28","nodeType":"YulIdentifier","src":"10314:16:28"},{"kind":"number","nativeSrc":"10332:4:28","nodeType":"YulLiteral","src":"10332:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"10310:3:28","nodeType":"YulIdentifier","src":"10310:3:28"},"nativeSrc":"10310:27:28","nodeType":"YulFunctionCall","src":"10310:27:28"},{"name":"d","nativeSrc":"10396:1:28","nodeType":"YulIdentifier","src":"10396:1:28"},{"kind":"number","nativeSrc":"10448:4:28","nodeType":"YulLiteral","src":"10448:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"10108:10:28","nodeType":"YulIdentifier","src":"10108:10:28"},"nativeSrc":"10108:400:28","nodeType":"YulFunctionCall","src":"10108:400:28"}],"functionName":{"name":"and","nativeSrc":"9740:3:28","nodeType":"YulIdentifier","src":"9740:3:28"},"nativeSrc":"9740:786:28","nodeType":"YulFunctionCall","src":"9740:786:28"},"variableNames":[{"name":"isValid","nativeSrc":"9729:7:28","nodeType":"YulIdentifier","src":"9729:7:28"}]},{"nativeSrc":"10543:5:28","nodeType":"YulBreak","src":"10543:5:28"}]},"condition":{"name":"signer","nativeSrc":"6717:6:28","nodeType":"YulIdentifier","src":"6717:6:28"},"nativeSrc":"6674:3888:28","nodeType":"YulForLoop","post":{"nativeSrc":"6724:2:28","nodeType":"YulBlock","src":"6724:2:28","statements":[]},"pre":{"nativeSrc":"6678:38:28","nodeType":"YulBlock","src":"6678:38:28","statements":[{"nativeSrc":"6680:34:28","nodeType":"YulAssignment","src":"6680:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"6694:2:28","nodeType":"YulLiteral","src":"6694:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6702:2:28","nodeType":"YulLiteral","src":"6702:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"6706:6:28","nodeType":"YulIdentifier","src":"6706:6:28"}],"functionName":{"name":"shl","nativeSrc":"6698:3:28","nodeType":"YulIdentifier","src":"6698:3:28"},"nativeSrc":"6698:15:28","nodeType":"YulFunctionCall","src":"6698:15:28"}],"functionName":{"name":"shr","nativeSrc":"6690:3:28","nodeType":"YulIdentifier","src":"6690:3:28"},"nativeSrc":"6690:24:28","nodeType":"YulFunctionCall","src":"6690:24:28"},"variableNames":[{"name":"signer","nativeSrc":"6680:6:28","nodeType":"YulIdentifier","src":"6680:6:28"}]}]},"src":"6674:3888:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11394,"isOffset":false,"isSlot":false,"src":"6795:4:28","valueSize":1},{"declaration":11394,"isOffset":false,"isSlot":false,"src":"9360:4:28","valueSize":1},{"declaration":11399,"isOffset":false,"isSlot":false,"src":"7757:7:28","valueSize":1},{"declaration":11399,"isOffset":false,"isSlot":false,"src":"8837:7:28","valueSize":1},{"declaration":11399,"isOffset":false,"isSlot":false,"src":"9729:7:28","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"10314:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"6823:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"8004:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"9523:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"9648:16:28","suffix":"length","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"6894:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"7029:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"8086:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"8160:16:28","suffix":"offset","valueSize":1},{"declaration":11396,"isOffset":true,"isSlot":false,"src":"9630:16:28","suffix":"offset","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"10193:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"6680:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"6706:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"6717:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"7711:6:28","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"8791:6:28","valueSize":1}],"id":11401,"nodeType":"InlineAssembly","src":"6576:3996:28"}]},"documentation":{"id":11390,"nodeType":"StructuredDocumentation","src":"6140:220:28","text":"@dev Returns whether `signature` is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11403,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNowCalldata","nameLocation":"6374:27:28","nodeType":"FunctionDefinition","parameters":{"id":11397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11392,"mutability":"mutable","name":"signer","nameLocation":"6410:6:28","nodeType":"VariableDeclaration","scope":11403,"src":"6402:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11391,"name":"address","nodeType":"ElementaryTypeName","src":"6402:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11394,"mutability":"mutable","name":"hash","nameLocation":"6426:4:28","nodeType":"VariableDeclaration","scope":11403,"src":"6418:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6418:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11396,"mutability":"mutable","name":"signature","nameLocation":"6447:9:28","nodeType":"VariableDeclaration","scope":11403,"src":"6432:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11395,"name":"bytes","nodeType":"ElementaryTypeName","src":"6432:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6401:56:28"},"returnParameters":{"id":11400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11399,"mutability":"mutable","name":"isValid","nameLocation":"6510:7:28","nodeType":"VariableDeclaration","scope":11403,"src":"6505:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11398,"name":"bool","nodeType":"ElementaryTypeName","src":"6505:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6504:14:28"},"scope":11528,"src":"6365:4213:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11418,"nodeType":"Block","src":"10970:2765:28","statements":[{"AST":{"nativeSrc":"11032:2697:28","nodeType":"YulBlock","src":"11032:2697:28","statements":[{"body":{"nativeSrc":"11174:2545:28","nodeType":"YulBlock","src":"11174:2545:28","statements":[{"nativeSrc":"11192:20:28","nodeType":"YulVariableDeclaration","src":"11192:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"11207:4:28","nodeType":"YulLiteral","src":"11207:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11201:5:28","nodeType":"YulIdentifier","src":"11201:5:28"},"nativeSrc":"11201:11:28","nodeType":"YulFunctionCall","src":"11201:11:28"},"variables":[{"name":"m","nativeSrc":"11196:1:28","nodeType":"YulTypedName","src":"11196:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11236:4:28","nodeType":"YulLiteral","src":"11236:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"11242:4:28","nodeType":"YulIdentifier","src":"11242:4:28"}],"functionName":{"name":"mstore","nativeSrc":"11229:6:28","nodeType":"YulIdentifier","src":"11229:6:28"},"nativeSrc":"11229:18:28","nodeType":"YulFunctionCall","src":"11229:18:28"},"nativeSrc":"11229:18:28","nodeType":"YulExpressionStatement","src":"11229:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11271:4:28","nodeType":"YulLiteral","src":"11271:4:28","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11285:3:28","nodeType":"YulLiteral","src":"11285:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"11290:2:28","nodeType":"YulIdentifier","src":"11290:2:28"}],"functionName":{"name":"shr","nativeSrc":"11281:3:28","nodeType":"YulIdentifier","src":"11281:3:28"},"nativeSrc":"11281:12:28","nodeType":"YulFunctionCall","src":"11281:12:28"},{"kind":"number","nativeSrc":"11295:2:28","nodeType":"YulLiteral","src":"11295:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"11277:3:28","nodeType":"YulIdentifier","src":"11277:3:28"},"nativeSrc":"11277:21:28","nodeType":"YulFunctionCall","src":"11277:21:28"}],"functionName":{"name":"mstore","nativeSrc":"11264:6:28","nodeType":"YulIdentifier","src":"11264:6:28"},"nativeSrc":"11264:35:28","nodeType":"YulFunctionCall","src":"11264:35:28"},"nativeSrc":"11264:35:28","nodeType":"YulExpressionStatement","src":"11264:35:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11331:4:28","nodeType":"YulLiteral","src":"11331:4:28","type":"","value":"0x40"},{"name":"r","nativeSrc":"11337:1:28","nodeType":"YulIdentifier","src":"11337:1:28"}],"functionName":{"name":"mstore","nativeSrc":"11324:6:28","nodeType":"YulIdentifier","src":"11324:6:28"},"nativeSrc":"11324:15:28","nodeType":"YulFunctionCall","src":"11324:15:28"},"nativeSrc":"11324:15:28","nodeType":"YulExpressionStatement","src":"11324:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11371:4:28","nodeType":"YulLiteral","src":"11371:4:28","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"11381:1:28","nodeType":"YulLiteral","src":"11381:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"11388:1:28","nodeType":"YulLiteral","src":"11388:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"11391:2:28","nodeType":"YulIdentifier","src":"11391:2:28"}],"functionName":{"name":"shl","nativeSrc":"11384:3:28","nodeType":"YulIdentifier","src":"11384:3:28"},"nativeSrc":"11384:10:28","nodeType":"YulFunctionCall","src":"11384:10:28"}],"functionName":{"name":"shr","nativeSrc":"11377:3:28","nodeType":"YulIdentifier","src":"11377:3:28"},"nativeSrc":"11377:18:28","nodeType":"YulFunctionCall","src":"11377:18:28"}],"functionName":{"name":"mstore","nativeSrc":"11364:6:28","nodeType":"YulIdentifier","src":"11364:6:28"},"nativeSrc":"11364:32:28","nodeType":"YulFunctionCall","src":"11364:32:28"},"nativeSrc":"11364:32:28","nodeType":"YulExpressionStatement","src":"11364:32:28"},{"nativeSrc":"11421:385:28","nodeType":"YulVariableDeclaration","src":"11421:385:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"11486:3:28","nodeType":"YulIdentifier","src":"11486:3:28"},"nativeSrc":"11486:5:28","nodeType":"YulFunctionCall","src":"11486:5:28"},{"kind":"number","nativeSrc":"11560:1:28","nodeType":"YulLiteral","src":"11560:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"11614:4:28","nodeType":"YulLiteral","src":"11614:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11663:4:28","nodeType":"YulLiteral","src":"11663:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"11711:4:28","nodeType":"YulLiteral","src":"11711:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"11761:4:28","nodeType":"YulLiteral","src":"11761:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"11450:10:28","nodeType":"YulIdentifier","src":"11450:10:28"},"nativeSrc":"11450:356:28","nodeType":"YulFunctionCall","src":"11450:356:28"},"variables":[{"name":"t","nativeSrc":"11425:1:28","nodeType":"YulTypedName","src":"11425:1:28","type":""}]},{"body":{"nativeSrc":"11975:212:28","nodeType":"YulBlock","src":"11975:212:28","statements":[{"nativeSrc":"11997:12:28","nodeType":"YulAssignment","src":"11997:12:28","value":{"kind":"number","nativeSrc":"12008:1:28","nodeType":"YulLiteral","src":"12008:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"11997:7:28","nodeType":"YulIdentifier","src":"11997:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12037:4:28","nodeType":"YulLiteral","src":"12037:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"12043:1:28","nodeType":"YulLiteral","src":"12043:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12030:6:28","nodeType":"YulIdentifier","src":"12030:6:28"},"nativeSrc":"12030:15:28","nodeType":"YulFunctionCall","src":"12030:15:28"},"nativeSrc":"12030:15:28","nodeType":"YulExpressionStatement","src":"12030:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12099:4:28","nodeType":"YulLiteral","src":"12099:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"12105:1:28","nodeType":"YulIdentifier","src":"12105:1:28"}],"functionName":{"name":"mstore","nativeSrc":"12092:6:28","nodeType":"YulIdentifier","src":"12092:6:28"},"nativeSrc":"12092:15:28","nodeType":"YulFunctionCall","src":"12092:15:28"},"nativeSrc":"12092:15:28","nodeType":"YulExpressionStatement","src":"12092:15:28"},{"nativeSrc":"12164:5:28","nodeType":"YulBreak","src":"12164:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"11932:14:28","nodeType":"YulIdentifier","src":"11932:14:28"},"nativeSrc":"11932:16:28","nodeType":"YulFunctionCall","src":"11932:16:28"}],"functionName":{"name":"iszero","nativeSrc":"11925:6:28","nodeType":"YulIdentifier","src":"11925:6:28"},"nativeSrc":"11925:24:28","nodeType":"YulFunctionCall","src":"11925:24:28"},{"arguments":[{"name":"signer","nativeSrc":"11955:6:28","nodeType":"YulIdentifier","src":"11955:6:28"},{"arguments":[{"name":"t","nativeSrc":"11969:1:28","nodeType":"YulIdentifier","src":"11969:1:28"}],"functionName":{"name":"mload","nativeSrc":"11963:5:28","nodeType":"YulIdentifier","src":"11963:5:28"},"nativeSrc":"11963:8:28","nodeType":"YulFunctionCall","src":"11963:8:28"}],"functionName":{"name":"xor","nativeSrc":"11951:3:28","nodeType":"YulIdentifier","src":"11951:3:28"},"nativeSrc":"11951:21:28","nodeType":"YulFunctionCall","src":"11951:21:28"}],"functionName":{"name":"or","nativeSrc":"11922:2:28","nodeType":"YulIdentifier","src":"11922:2:28"},"nativeSrc":"11922:51:28","nodeType":"YulFunctionCall","src":"11922:51:28"}],"functionName":{"name":"iszero","nativeSrc":"11915:6:28","nodeType":"YulIdentifier","src":"11915:6:28"},"nativeSrc":"11915:59:28","nodeType":"YulFunctionCall","src":"11915:59:28"},"nativeSrc":"11912:275:28","nodeType":"YulIf","src":"11912:275:28"},{"nativeSrc":"12205:29:28","nodeType":"YulVariableDeclaration","src":"12205:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"12218:3:28","nodeType":"YulLiteral","src":"12218:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"12223:10:28","nodeType":"YulLiteral","src":"12223:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"12214:3:28","nodeType":"YulIdentifier","src":"12214:3:28"},"nativeSrc":"12214:20:28","nodeType":"YulFunctionCall","src":"12214:20:28"},"variables":[{"name":"f","nativeSrc":"12209:1:28","nodeType":"YulTypedName","src":"12209:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"12258:1:28","nodeType":"YulIdentifier","src":"12258:1:28"},{"name":"f","nativeSrc":"12261:1:28","nodeType":"YulIdentifier","src":"12261:1:28"}],"functionName":{"name":"mstore","nativeSrc":"12251:6:28","nodeType":"YulIdentifier","src":"12251:6:28"},"nativeSrc":"12251:12:28","nodeType":"YulFunctionCall","src":"12251:12:28"},"nativeSrc":"12251:12:28","nodeType":"YulExpressionStatement","src":"12251:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12350:1:28","nodeType":"YulIdentifier","src":"12350:1:28"},{"kind":"number","nativeSrc":"12353:4:28","nodeType":"YulLiteral","src":"12353:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"12346:3:28","nodeType":"YulIdentifier","src":"12346:3:28"},"nativeSrc":"12346:12:28","nodeType":"YulFunctionCall","src":"12346:12:28"},{"name":"hash","nativeSrc":"12360:4:28","nodeType":"YulIdentifier","src":"12360:4:28"}],"functionName":{"name":"mstore","nativeSrc":"12339:6:28","nodeType":"YulIdentifier","src":"12339:6:28"},"nativeSrc":"12339:26:28","nodeType":"YulFunctionCall","src":"12339:26:28"},"nativeSrc":"12339:26:28","nodeType":"YulExpressionStatement","src":"12339:26:28"},{"nativeSrc":"12382:21:28","nodeType":"YulVariableDeclaration","src":"12382:21:28","value":{"arguments":[{"name":"m","nativeSrc":"12395:1:28","nodeType":"YulIdentifier","src":"12395:1:28"},{"kind":"number","nativeSrc":"12398:4:28","nodeType":"YulLiteral","src":"12398:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"12391:3:28","nodeType":"YulIdentifier","src":"12391:3:28"},"nativeSrc":"12391:12:28","nodeType":"YulFunctionCall","src":"12391:12:28"},"variables":[{"name":"d","nativeSrc":"12386:1:28","nodeType":"YulTypedName","src":"12386:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"12427:1:28","nodeType":"YulIdentifier","src":"12427:1:28"},{"kind":"number","nativeSrc":"12430:4:28","nodeType":"YulLiteral","src":"12430:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"12420:6:28","nodeType":"YulIdentifier","src":"12420:6:28"},"nativeSrc":"12420:15:28","nodeType":"YulFunctionCall","src":"12420:15:28"},"nativeSrc":"12420:15:28","nodeType":"YulExpressionStatement","src":"12420:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12513:1:28","nodeType":"YulIdentifier","src":"12513:1:28"},{"kind":"number","nativeSrc":"12516:4:28","nodeType":"YulLiteral","src":"12516:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"12509:3:28","nodeType":"YulIdentifier","src":"12509:3:28"},"nativeSrc":"12509:12:28","nodeType":"YulFunctionCall","src":"12509:12:28"},{"kind":"number","nativeSrc":"12523:2:28","nodeType":"YulLiteral","src":"12523:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"12502:6:28","nodeType":"YulIdentifier","src":"12502:6:28"},"nativeSrc":"12502:24:28","nodeType":"YulFunctionCall","src":"12502:24:28"},"nativeSrc":"12502:24:28","nodeType":"YulExpressionStatement","src":"12502:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12582:1:28","nodeType":"YulIdentifier","src":"12582:1:28"},{"kind":"number","nativeSrc":"12585:4:28","nodeType":"YulLiteral","src":"12585:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"12578:3:28","nodeType":"YulIdentifier","src":"12578:3:28"},"nativeSrc":"12578:12:28","nodeType":"YulFunctionCall","src":"12578:12:28"},{"name":"r","nativeSrc":"12592:1:28","nodeType":"YulIdentifier","src":"12592:1:28"}],"functionName":{"name":"mstore","nativeSrc":"12571:6:28","nodeType":"YulIdentifier","src":"12571:6:28"},"nativeSrc":"12571:23:28","nodeType":"YulFunctionCall","src":"12571:23:28"},"nativeSrc":"12571:23:28","nodeType":"YulExpressionStatement","src":"12571:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12630:1:28","nodeType":"YulIdentifier","src":"12630:1:28"},{"kind":"number","nativeSrc":"12633:4:28","nodeType":"YulLiteral","src":"12633:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"12626:3:28","nodeType":"YulIdentifier","src":"12626:3:28"},"nativeSrc":"12626:12:28","nodeType":"YulFunctionCall","src":"12626:12:28"},{"arguments":[{"kind":"number","nativeSrc":"12646:4:28","nodeType":"YulLiteral","src":"12646:4:28","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"12640:5:28","nodeType":"YulIdentifier","src":"12640:5:28"},"nativeSrc":"12640:11:28","nodeType":"YulFunctionCall","src":"12640:11:28"}],"functionName":{"name":"mstore","nativeSrc":"12619:6:28","nodeType":"YulIdentifier","src":"12619:6:28"},"nativeSrc":"12619:33:28","nodeType":"YulFunctionCall","src":"12619:33:28"},"nativeSrc":"12619:33:28","nodeType":"YulExpressionStatement","src":"12619:33:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12689:1:28","nodeType":"YulIdentifier","src":"12689:1:28"},{"kind":"number","nativeSrc":"12692:4:28","nodeType":"YulLiteral","src":"12692:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"12685:3:28","nodeType":"YulIdentifier","src":"12685:3:28"},"nativeSrc":"12685:12:28","nodeType":"YulFunctionCall","src":"12685:12:28"},{"arguments":[{"kind":"number","nativeSrc":"12705:4:28","nodeType":"YulLiteral","src":"12705:4:28","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"12699:5:28","nodeType":"YulIdentifier","src":"12699:5:28"},"nativeSrc":"12699:11:28","nodeType":"YulFunctionCall","src":"12699:11:28"}],"functionName":{"name":"mstore8","nativeSrc":"12677:7:28","nodeType":"YulIdentifier","src":"12677:7:28"},"nativeSrc":"12677:34:28","nodeType":"YulFunctionCall","src":"12677:34:28"},"nativeSrc":"12677:34:28","nodeType":"YulExpressionStatement","src":"12677:34:28"},{"nativeSrc":"12783:774:28","nodeType":"YulAssignment","src":"12783:774:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"12922:1:28","nodeType":"YulIdentifier","src":"12922:1:28"}],"functionName":{"name":"mload","nativeSrc":"12916:5:28","nodeType":"YulIdentifier","src":"12916:5:28"},"nativeSrc":"12916:8:28","nodeType":"YulFunctionCall","src":"12916:8:28"},{"name":"f","nativeSrc":"12926:1:28","nodeType":"YulIdentifier","src":"12926:1:28"}],"functionName":{"name":"eq","nativeSrc":"12913:2:28","nodeType":"YulIdentifier","src":"12913:2:28"},"nativeSrc":"12913:15:28","nodeType":"YulFunctionCall","src":"12913:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"13198:3:28","nodeType":"YulIdentifier","src":"13198:3:28"},"nativeSrc":"13198:5:28","nodeType":"YulFunctionCall","src":"13198:5:28"},{"name":"signer","nativeSrc":"13247:6:28","nodeType":"YulIdentifier","src":"13247:6:28"},{"name":"m","nativeSrc":"13304:1:28","nodeType":"YulIdentifier","src":"13304:1:28"},{"kind":"number","nativeSrc":"13364:4:28","nodeType":"YulLiteral","src":"13364:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"13427:1:28","nodeType":"YulIdentifier","src":"13427:1:28"},{"kind":"number","nativeSrc":"13479:4:28","nodeType":"YulLiteral","src":"13479:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"13162:10:28","nodeType":"YulIdentifier","src":"13162:10:28"},"nativeSrc":"13162:377:28","nodeType":"YulFunctionCall","src":"13162:377:28"}],"functionName":{"name":"and","nativeSrc":"12794:3:28","nodeType":"YulIdentifier","src":"12794:3:28"},"nativeSrc":"12794:763:28","nodeType":"YulFunctionCall","src":"12794:763:28"},"variableNames":[{"name":"isValid","nativeSrc":"12783:7:28","nodeType":"YulIdentifier","src":"12783:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13581:4:28","nodeType":"YulLiteral","src":"13581:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"13587:1:28","nodeType":"YulLiteral","src":"13587:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13574:6:28","nodeType":"YulIdentifier","src":"13574:6:28"},"nativeSrc":"13574:15:28","nodeType":"YulFunctionCall","src":"13574:15:28"},"nativeSrc":"13574:15:28","nodeType":"YulExpressionStatement","src":"13574:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13639:4:28","nodeType":"YulLiteral","src":"13639:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"13645:1:28","nodeType":"YulIdentifier","src":"13645:1:28"}],"functionName":{"name":"mstore","nativeSrc":"13632:6:28","nodeType":"YulIdentifier","src":"13632:6:28"},"nativeSrc":"13632:15:28","nodeType":"YulFunctionCall","src":"13632:15:28"},"nativeSrc":"13632:15:28","nodeType":"YulExpressionStatement","src":"13632:15:28"},{"nativeSrc":"13700:5:28","nodeType":"YulBreak","src":"13700:5:28"}]},"condition":{"name":"signer","nativeSrc":"11164:6:28","nodeType":"YulIdentifier","src":"11164:6:28"},"nativeSrc":"11121:2598:28","nodeType":"YulForLoop","post":{"nativeSrc":"11171:2:28","nodeType":"YulBlock","src":"11171:2:28","statements":[]},"pre":{"nativeSrc":"11125:38:28","nodeType":"YulBlock","src":"11125:38:28","statements":[{"nativeSrc":"11127:34:28","nodeType":"YulAssignment","src":"11127:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"11141:2:28","nodeType":"YulLiteral","src":"11141:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"11149:2:28","nodeType":"YulLiteral","src":"11149:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"11153:6:28","nodeType":"YulIdentifier","src":"11153:6:28"}],"functionName":{"name":"shl","nativeSrc":"11145:3:28","nodeType":"YulIdentifier","src":"11145:3:28"},"nativeSrc":"11145:15:28","nodeType":"YulFunctionCall","src":"11145:15:28"}],"functionName":{"name":"shr","nativeSrc":"11137:3:28","nodeType":"YulIdentifier","src":"11137:3:28"},"nativeSrc":"11137:24:28","nodeType":"YulFunctionCall","src":"11137:24:28"},"variableNames":[{"name":"signer","nativeSrc":"11127:6:28","nodeType":"YulIdentifier","src":"11127:6:28"}]}]},"src":"11121:2598:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11408,"isOffset":false,"isSlot":false,"src":"11242:4:28","valueSize":1},{"declaration":11408,"isOffset":false,"isSlot":false,"src":"12360:4:28","valueSize":1},{"declaration":11415,"isOffset":false,"isSlot":false,"src":"11997:7:28","valueSize":1},{"declaration":11415,"isOffset":false,"isSlot":false,"src":"12783:7:28","valueSize":1},{"declaration":11410,"isOffset":false,"isSlot":false,"src":"11337:1:28","valueSize":1},{"declaration":11410,"isOffset":false,"isSlot":false,"src":"12592:1:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11127:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11153:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11164:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"11955:6:28","valueSize":1},{"declaration":11406,"isOffset":false,"isSlot":false,"src":"13247:6:28","valueSize":1},{"declaration":11412,"isOffset":false,"isSlot":false,"src":"11290:2:28","valueSize":1},{"declaration":11412,"isOffset":false,"isSlot":false,"src":"11391:2:28","valueSize":1}],"id":11417,"nodeType":"InlineAssembly","src":"11023:2706:28"}]},"documentation":{"id":11404,"nodeType":"StructuredDocumentation","src":"10584:234:28","text":"@dev Returns whether the signature (`r`, `vs`) is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11419,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"10832:19:28","nodeType":"FunctionDefinition","parameters":{"id":11413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11406,"mutability":"mutable","name":"signer","nameLocation":"10860:6:28","nodeType":"VariableDeclaration","scope":11419,"src":"10852:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11405,"name":"address","nodeType":"ElementaryTypeName","src":"10852:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11408,"mutability":"mutable","name":"hash","nameLocation":"10876:4:28","nodeType":"VariableDeclaration","scope":11419,"src":"10868:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10868:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11410,"mutability":"mutable","name":"r","nameLocation":"10890:1:28","nodeType":"VariableDeclaration","scope":11419,"src":"10882:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10882:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11412,"mutability":"mutable","name":"vs","nameLocation":"10901:2:28","nodeType":"VariableDeclaration","scope":11419,"src":"10893:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10893:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10851:53:28"},"returnParameters":{"id":11416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11415,"mutability":"mutable","name":"isValid","nameLocation":"10957:7:28","nodeType":"VariableDeclaration","scope":11419,"src":"10952:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11414,"name":"bool","nodeType":"ElementaryTypeName","src":"10952:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10951:14:28"},"scope":11528,"src":"10823:2912:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11436,"nodeType":"Block","src":"14139:2719:28","statements":[{"AST":{"nativeSrc":"14201:2651:28","nodeType":"YulBlock","src":"14201:2651:28","statements":[{"body":{"nativeSrc":"14343:2499:28","nodeType":"YulBlock","src":"14343:2499:28","statements":[{"nativeSrc":"14361:20:28","nodeType":"YulVariableDeclaration","src":"14361:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"14376:4:28","nodeType":"YulLiteral","src":"14376:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14370:5:28","nodeType":"YulIdentifier","src":"14370:5:28"},"nativeSrc":"14370:11:28","nodeType":"YulFunctionCall","src":"14370:11:28"},"variables":[{"name":"m","nativeSrc":"14365:1:28","nodeType":"YulTypedName","src":"14365:1:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14405:4:28","nodeType":"YulLiteral","src":"14405:4:28","type":"","value":"0x00"},{"name":"hash","nativeSrc":"14411:4:28","nodeType":"YulIdentifier","src":"14411:4:28"}],"functionName":{"name":"mstore","nativeSrc":"14398:6:28","nodeType":"YulIdentifier","src":"14398:6:28"},"nativeSrc":"14398:18:28","nodeType":"YulFunctionCall","src":"14398:18:28"},"nativeSrc":"14398:18:28","nodeType":"YulExpressionStatement","src":"14398:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14440:4:28","nodeType":"YulLiteral","src":"14440:4:28","type":"","value":"0x20"},{"arguments":[{"name":"v","nativeSrc":"14450:1:28","nodeType":"YulIdentifier","src":"14450:1:28"},{"kind":"number","nativeSrc":"14453:4:28","nodeType":"YulLiteral","src":"14453:4:28","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"14446:3:28","nodeType":"YulIdentifier","src":"14446:3:28"},"nativeSrc":"14446:12:28","nodeType":"YulFunctionCall","src":"14446:12:28"}],"functionName":{"name":"mstore","nativeSrc":"14433:6:28","nodeType":"YulIdentifier","src":"14433:6:28"},"nativeSrc":"14433:26:28","nodeType":"YulFunctionCall","src":"14433:26:28"},"nativeSrc":"14433:26:28","nodeType":"YulExpressionStatement","src":"14433:26:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14491:4:28","nodeType":"YulLiteral","src":"14491:4:28","type":"","value":"0x40"},{"name":"r","nativeSrc":"14497:1:28","nodeType":"YulIdentifier","src":"14497:1:28"}],"functionName":{"name":"mstore","nativeSrc":"14484:6:28","nodeType":"YulIdentifier","src":"14484:6:28"},"nativeSrc":"14484:15:28","nodeType":"YulFunctionCall","src":"14484:15:28"},"nativeSrc":"14484:15:28","nodeType":"YulExpressionStatement","src":"14484:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14531:4:28","nodeType":"YulLiteral","src":"14531:4:28","type":"","value":"0x60"},{"name":"s","nativeSrc":"14537:1:28","nodeType":"YulIdentifier","src":"14537:1:28"}],"functionName":{"name":"mstore","nativeSrc":"14524:6:28","nodeType":"YulIdentifier","src":"14524:6:28"},"nativeSrc":"14524:15:28","nodeType":"YulFunctionCall","src":"14524:15:28"},"nativeSrc":"14524:15:28","nodeType":"YulExpressionStatement","src":"14524:15:28"},{"nativeSrc":"14564:385:28","nodeType":"YulVariableDeclaration","src":"14564:385:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"14629:3:28","nodeType":"YulIdentifier","src":"14629:3:28"},"nativeSrc":"14629:5:28","nodeType":"YulFunctionCall","src":"14629:5:28"},{"kind":"number","nativeSrc":"14703:1:28","nodeType":"YulLiteral","src":"14703:1:28","type":"","value":"1"},{"kind":"number","nativeSrc":"14757:4:28","nodeType":"YulLiteral","src":"14757:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14806:4:28","nodeType":"YulLiteral","src":"14806:4:28","type":"","value":"0x80"},{"kind":"number","nativeSrc":"14854:4:28","nodeType":"YulLiteral","src":"14854:4:28","type":"","value":"0x01"},{"kind":"number","nativeSrc":"14904:4:28","nodeType":"YulLiteral","src":"14904:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"14593:10:28","nodeType":"YulIdentifier","src":"14593:10:28"},"nativeSrc":"14593:356:28","nodeType":"YulFunctionCall","src":"14593:356:28"},"variables":[{"name":"t","nativeSrc":"14568:1:28","nodeType":"YulTypedName","src":"14568:1:28","type":""}]},{"body":{"nativeSrc":"15118:212:28","nodeType":"YulBlock","src":"15118:212:28","statements":[{"nativeSrc":"15140:12:28","nodeType":"YulAssignment","src":"15140:12:28","value":{"kind":"number","nativeSrc":"15151:1:28","nodeType":"YulLiteral","src":"15151:1:28","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"15140:7:28","nodeType":"YulIdentifier","src":"15140:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15180:4:28","nodeType":"YulLiteral","src":"15180:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"15186:1:28","nodeType":"YulLiteral","src":"15186:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15173:6:28","nodeType":"YulIdentifier","src":"15173:6:28"},"nativeSrc":"15173:15:28","nodeType":"YulFunctionCall","src":"15173:15:28"},"nativeSrc":"15173:15:28","nodeType":"YulExpressionStatement","src":"15173:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15242:4:28","nodeType":"YulLiteral","src":"15242:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"15248:1:28","nodeType":"YulIdentifier","src":"15248:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15235:6:28","nodeType":"YulIdentifier","src":"15235:6:28"},"nativeSrc":"15235:15:28","nodeType":"YulFunctionCall","src":"15235:15:28"},"nativeSrc":"15235:15:28","nodeType":"YulExpressionStatement","src":"15235:15:28"},{"nativeSrc":"15307:5:28","nodeType":"YulBreak","src":"15307:5:28"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15075:14:28","nodeType":"YulIdentifier","src":"15075:14:28"},"nativeSrc":"15075:16:28","nodeType":"YulFunctionCall","src":"15075:16:28"}],"functionName":{"name":"iszero","nativeSrc":"15068:6:28","nodeType":"YulIdentifier","src":"15068:6:28"},"nativeSrc":"15068:24:28","nodeType":"YulFunctionCall","src":"15068:24:28"},{"arguments":[{"name":"signer","nativeSrc":"15098:6:28","nodeType":"YulIdentifier","src":"15098:6:28"},{"arguments":[{"name":"t","nativeSrc":"15112:1:28","nodeType":"YulIdentifier","src":"15112:1:28"}],"functionName":{"name":"mload","nativeSrc":"15106:5:28","nodeType":"YulIdentifier","src":"15106:5:28"},"nativeSrc":"15106:8:28","nodeType":"YulFunctionCall","src":"15106:8:28"}],"functionName":{"name":"xor","nativeSrc":"15094:3:28","nodeType":"YulIdentifier","src":"15094:3:28"},"nativeSrc":"15094:21:28","nodeType":"YulFunctionCall","src":"15094:21:28"}],"functionName":{"name":"or","nativeSrc":"15065:2:28","nodeType":"YulIdentifier","src":"15065:2:28"},"nativeSrc":"15065:51:28","nodeType":"YulFunctionCall","src":"15065:51:28"}],"functionName":{"name":"iszero","nativeSrc":"15058:6:28","nodeType":"YulIdentifier","src":"15058:6:28"},"nativeSrc":"15058:59:28","nodeType":"YulFunctionCall","src":"15058:59:28"},"nativeSrc":"15055:275:28","nodeType":"YulIf","src":"15055:275:28"},{"nativeSrc":"15348:29:28","nodeType":"YulVariableDeclaration","src":"15348:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"15361:3:28","nodeType":"YulLiteral","src":"15361:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"15366:10:28","nodeType":"YulLiteral","src":"15366:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"15357:3:28","nodeType":"YulIdentifier","src":"15357:3:28"},"nativeSrc":"15357:20:28","nodeType":"YulFunctionCall","src":"15357:20:28"},"variables":[{"name":"f","nativeSrc":"15352:1:28","nodeType":"YulTypedName","src":"15352:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"15401:1:28","nodeType":"YulIdentifier","src":"15401:1:28"},{"name":"f","nativeSrc":"15404:1:28","nodeType":"YulIdentifier","src":"15404:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15394:6:28","nodeType":"YulIdentifier","src":"15394:6:28"},"nativeSrc":"15394:12:28","nodeType":"YulFunctionCall","src":"15394:12:28"},"nativeSrc":"15394:12:28","nodeType":"YulExpressionStatement","src":"15394:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15493:1:28","nodeType":"YulIdentifier","src":"15493:1:28"},{"kind":"number","nativeSrc":"15496:4:28","nodeType":"YulLiteral","src":"15496:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"15489:3:28","nodeType":"YulIdentifier","src":"15489:3:28"},"nativeSrc":"15489:12:28","nodeType":"YulFunctionCall","src":"15489:12:28"},{"name":"hash","nativeSrc":"15503:4:28","nodeType":"YulIdentifier","src":"15503:4:28"}],"functionName":{"name":"mstore","nativeSrc":"15482:6:28","nodeType":"YulIdentifier","src":"15482:6:28"},"nativeSrc":"15482:26:28","nodeType":"YulFunctionCall","src":"15482:26:28"},"nativeSrc":"15482:26:28","nodeType":"YulExpressionStatement","src":"15482:26:28"},{"nativeSrc":"15525:21:28","nodeType":"YulVariableDeclaration","src":"15525:21:28","value":{"arguments":[{"name":"m","nativeSrc":"15538:1:28","nodeType":"YulIdentifier","src":"15538:1:28"},{"kind":"number","nativeSrc":"15541:4:28","nodeType":"YulLiteral","src":"15541:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"15534:3:28","nodeType":"YulIdentifier","src":"15534:3:28"},"nativeSrc":"15534:12:28","nodeType":"YulFunctionCall","src":"15534:12:28"},"variables":[{"name":"d","nativeSrc":"15529:1:28","nodeType":"YulTypedName","src":"15529:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"15570:1:28","nodeType":"YulIdentifier","src":"15570:1:28"},{"kind":"number","nativeSrc":"15573:4:28","nodeType":"YulLiteral","src":"15573:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"15563:6:28","nodeType":"YulIdentifier","src":"15563:6:28"},"nativeSrc":"15563:15:28","nodeType":"YulFunctionCall","src":"15563:15:28"},"nativeSrc":"15563:15:28","nodeType":"YulExpressionStatement","src":"15563:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15656:1:28","nodeType":"YulIdentifier","src":"15656:1:28"},{"kind":"number","nativeSrc":"15659:4:28","nodeType":"YulLiteral","src":"15659:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"15652:3:28","nodeType":"YulIdentifier","src":"15652:3:28"},"nativeSrc":"15652:12:28","nodeType":"YulFunctionCall","src":"15652:12:28"},{"kind":"number","nativeSrc":"15666:2:28","nodeType":"YulLiteral","src":"15666:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"15645:6:28","nodeType":"YulIdentifier","src":"15645:6:28"},"nativeSrc":"15645:24:28","nodeType":"YulFunctionCall","src":"15645:24:28"},"nativeSrc":"15645:24:28","nodeType":"YulExpressionStatement","src":"15645:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15725:1:28","nodeType":"YulIdentifier","src":"15725:1:28"},{"kind":"number","nativeSrc":"15728:4:28","nodeType":"YulLiteral","src":"15728:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"15721:3:28","nodeType":"YulIdentifier","src":"15721:3:28"},"nativeSrc":"15721:12:28","nodeType":"YulFunctionCall","src":"15721:12:28"},{"name":"r","nativeSrc":"15735:1:28","nodeType":"YulIdentifier","src":"15735:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15714:6:28","nodeType":"YulIdentifier","src":"15714:6:28"},"nativeSrc":"15714:23:28","nodeType":"YulFunctionCall","src":"15714:23:28"},"nativeSrc":"15714:23:28","nodeType":"YulExpressionStatement","src":"15714:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15773:1:28","nodeType":"YulIdentifier","src":"15773:1:28"},{"kind":"number","nativeSrc":"15776:4:28","nodeType":"YulLiteral","src":"15776:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"15769:3:28","nodeType":"YulIdentifier","src":"15769:3:28"},"nativeSrc":"15769:12:28","nodeType":"YulFunctionCall","src":"15769:12:28"},{"name":"s","nativeSrc":"15783:1:28","nodeType":"YulIdentifier","src":"15783:1:28"}],"functionName":{"name":"mstore","nativeSrc":"15762:6:28","nodeType":"YulIdentifier","src":"15762:6:28"},"nativeSrc":"15762:23:28","nodeType":"YulFunctionCall","src":"15762:23:28"},"nativeSrc":"15762:23:28","nodeType":"YulExpressionStatement","src":"15762:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15822:1:28","nodeType":"YulIdentifier","src":"15822:1:28"},{"kind":"number","nativeSrc":"15825:4:28","nodeType":"YulLiteral","src":"15825:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"15818:3:28","nodeType":"YulIdentifier","src":"15818:3:28"},"nativeSrc":"15818:12:28","nodeType":"YulFunctionCall","src":"15818:12:28"},{"name":"v","nativeSrc":"15832:1:28","nodeType":"YulIdentifier","src":"15832:1:28"}],"functionName":{"name":"mstore8","nativeSrc":"15810:7:28","nodeType":"YulIdentifier","src":"15810:7:28"},"nativeSrc":"15810:24:28","nodeType":"YulFunctionCall","src":"15810:24:28"},"nativeSrc":"15810:24:28","nodeType":"YulExpressionStatement","src":"15810:24:28"},{"nativeSrc":"15906:774:28","nodeType":"YulAssignment","src":"15906:774:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"16045:1:28","nodeType":"YulIdentifier","src":"16045:1:28"}],"functionName":{"name":"mload","nativeSrc":"16039:5:28","nodeType":"YulIdentifier","src":"16039:5:28"},"nativeSrc":"16039:8:28","nodeType":"YulFunctionCall","src":"16039:8:28"},{"name":"f","nativeSrc":"16049:1:28","nodeType":"YulIdentifier","src":"16049:1:28"}],"functionName":{"name":"eq","nativeSrc":"16036:2:28","nodeType":"YulIdentifier","src":"16036:2:28"},"nativeSrc":"16036:15:28","nodeType":"YulFunctionCall","src":"16036:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16321:3:28","nodeType":"YulIdentifier","src":"16321:3:28"},"nativeSrc":"16321:5:28","nodeType":"YulFunctionCall","src":"16321:5:28"},{"name":"signer","nativeSrc":"16370:6:28","nodeType":"YulIdentifier","src":"16370:6:28"},{"name":"m","nativeSrc":"16427:1:28","nodeType":"YulIdentifier","src":"16427:1:28"},{"kind":"number","nativeSrc":"16487:4:28","nodeType":"YulLiteral","src":"16487:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"16550:1:28","nodeType":"YulIdentifier","src":"16550:1:28"},{"kind":"number","nativeSrc":"16602:4:28","nodeType":"YulLiteral","src":"16602:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"16285:10:28","nodeType":"YulIdentifier","src":"16285:10:28"},"nativeSrc":"16285:377:28","nodeType":"YulFunctionCall","src":"16285:377:28"}],"functionName":{"name":"and","nativeSrc":"15917:3:28","nodeType":"YulIdentifier","src":"15917:3:28"},"nativeSrc":"15917:763:28","nodeType":"YulFunctionCall","src":"15917:763:28"},"variableNames":[{"name":"isValid","nativeSrc":"15906:7:28","nodeType":"YulIdentifier","src":"15906:7:28"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16704:4:28","nodeType":"YulLiteral","src":"16704:4:28","type":"","value":"0x60"},{"kind":"number","nativeSrc":"16710:1:28","nodeType":"YulLiteral","src":"16710:1:28","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16697:6:28","nodeType":"YulIdentifier","src":"16697:6:28"},"nativeSrc":"16697:15:28","nodeType":"YulFunctionCall","src":"16697:15:28"},"nativeSrc":"16697:15:28","nodeType":"YulExpressionStatement","src":"16697:15:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16762:4:28","nodeType":"YulLiteral","src":"16762:4:28","type":"","value":"0x40"},{"name":"m","nativeSrc":"16768:1:28","nodeType":"YulIdentifier","src":"16768:1:28"}],"functionName":{"name":"mstore","nativeSrc":"16755:6:28","nodeType":"YulIdentifier","src":"16755:6:28"},"nativeSrc":"16755:15:28","nodeType":"YulFunctionCall","src":"16755:15:28"},"nativeSrc":"16755:15:28","nodeType":"YulExpressionStatement","src":"16755:15:28"},{"nativeSrc":"16823:5:28","nodeType":"YulBreak","src":"16823:5:28"}]},"condition":{"name":"signer","nativeSrc":"14333:6:28","nodeType":"YulIdentifier","src":"14333:6:28"},"nativeSrc":"14290:2552:28","nodeType":"YulForLoop","post":{"nativeSrc":"14340:2:28","nodeType":"YulBlock","src":"14340:2:28","statements":[]},"pre":{"nativeSrc":"14294:38:28","nodeType":"YulBlock","src":"14294:38:28","statements":[{"nativeSrc":"14296:34:28","nodeType":"YulAssignment","src":"14296:34:28","value":{"arguments":[{"kind":"number","nativeSrc":"14310:2:28","nodeType":"YulLiteral","src":"14310:2:28","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14318:2:28","nodeType":"YulLiteral","src":"14318:2:28","type":"","value":"96"},{"name":"signer","nativeSrc":"14322:6:28","nodeType":"YulIdentifier","src":"14322:6:28"}],"functionName":{"name":"shl","nativeSrc":"14314:3:28","nodeType":"YulIdentifier","src":"14314:3:28"},"nativeSrc":"14314:15:28","nodeType":"YulFunctionCall","src":"14314:15:28"}],"functionName":{"name":"shr","nativeSrc":"14306:3:28","nodeType":"YulIdentifier","src":"14306:3:28"},"nativeSrc":"14306:24:28","nodeType":"YulFunctionCall","src":"14306:24:28"},"variableNames":[{"name":"signer","nativeSrc":"14296:6:28","nodeType":"YulIdentifier","src":"14296:6:28"}]}]},"src":"14290:2552:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11424,"isOffset":false,"isSlot":false,"src":"14411:4:28","valueSize":1},{"declaration":11424,"isOffset":false,"isSlot":false,"src":"15503:4:28","valueSize":1},{"declaration":11433,"isOffset":false,"isSlot":false,"src":"15140:7:28","valueSize":1},{"declaration":11433,"isOffset":false,"isSlot":false,"src":"15906:7:28","valueSize":1},{"declaration":11428,"isOffset":false,"isSlot":false,"src":"14497:1:28","valueSize":1},{"declaration":11428,"isOffset":false,"isSlot":false,"src":"15735:1:28","valueSize":1},{"declaration":11430,"isOffset":false,"isSlot":false,"src":"14537:1:28","valueSize":1},{"declaration":11430,"isOffset":false,"isSlot":false,"src":"15783:1:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"14296:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"14322:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"14333:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"15098:6:28","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"16370:6:28","valueSize":1},{"declaration":11426,"isOffset":false,"isSlot":false,"src":"14450:1:28","valueSize":1},{"declaration":11426,"isOffset":false,"isSlot":false,"src":"15832:1:28","valueSize":1}],"id":11435,"nodeType":"InlineAssembly","src":"14192:2660:28"}]},"documentation":{"id":11420,"nodeType":"StructuredDocumentation","src":"13741:238:28","text":"@dev Returns whether the signature (`v`, `r`, `s`) is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11437,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"13993:19:28","nodeType":"FunctionDefinition","parameters":{"id":11431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11422,"mutability":"mutable","name":"signer","nameLocation":"14021:6:28","nodeType":"VariableDeclaration","scope":11437,"src":"14013:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11421,"name":"address","nodeType":"ElementaryTypeName","src":"14013:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11424,"mutability":"mutable","name":"hash","nameLocation":"14037:4:28","nodeType":"VariableDeclaration","scope":11437,"src":"14029:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14029:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11426,"mutability":"mutable","name":"v","nameLocation":"14049:1:28","nodeType":"VariableDeclaration","scope":11437,"src":"14043:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11425,"name":"uint8","nodeType":"ElementaryTypeName","src":"14043:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11428,"mutability":"mutable","name":"r","nameLocation":"14060:1:28","nodeType":"VariableDeclaration","scope":11437,"src":"14052:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14052:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11430,"mutability":"mutable","name":"s","nameLocation":"14071:1:28","nodeType":"VariableDeclaration","scope":11437,"src":"14063:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14063:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14012:61:28"},"returnParameters":{"id":11434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11433,"mutability":"mutable","name":"isValid","nameLocation":"14126:7:28","nodeType":"VariableDeclaration","scope":11437,"src":"14121:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11432,"name":"bool","nodeType":"ElementaryTypeName","src":"14121:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14120:14:28"},"scope":11528,"src":"13984:2874:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11450,"nodeType":"Block","src":"17397:1346:28","statements":[{"AST":{"nativeSrc":"17459:1278:28","nodeType":"YulBlock","src":"17459:1278:28","statements":[{"nativeSrc":"17473:20:28","nodeType":"YulVariableDeclaration","src":"17473:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"17488:4:28","nodeType":"YulLiteral","src":"17488:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17482:5:28","nodeType":"YulIdentifier","src":"17482:5:28"},"nativeSrc":"17482:11:28","nodeType":"YulFunctionCall","src":"17482:11:28"},"variables":[{"name":"m","nativeSrc":"17477:1:28","nodeType":"YulTypedName","src":"17477:1:28","type":""}]},{"nativeSrc":"17506:29:28","nodeType":"YulVariableDeclaration","src":"17506:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"17519:3:28","nodeType":"YulLiteral","src":"17519:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"17524:10:28","nodeType":"YulLiteral","src":"17524:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"17515:3:28","nodeType":"YulIdentifier","src":"17515:3:28"},"nativeSrc":"17515:20:28","nodeType":"YulFunctionCall","src":"17515:20:28"},"variables":[{"name":"f","nativeSrc":"17510:1:28","nodeType":"YulTypedName","src":"17510:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"17555:1:28","nodeType":"YulIdentifier","src":"17555:1:28"},{"name":"f","nativeSrc":"17558:1:28","nodeType":"YulIdentifier","src":"17558:1:28"}],"functionName":{"name":"mstore","nativeSrc":"17548:6:28","nodeType":"YulIdentifier","src":"17548:6:28"},"nativeSrc":"17548:12:28","nodeType":"YulFunctionCall","src":"17548:12:28"},"nativeSrc":"17548:12:28","nodeType":"YulExpressionStatement","src":"17548:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17643:1:28","nodeType":"YulIdentifier","src":"17643:1:28"},{"kind":"number","nativeSrc":"17646:4:28","nodeType":"YulLiteral","src":"17646:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"17639:3:28","nodeType":"YulIdentifier","src":"17639:3:28"},"nativeSrc":"17639:12:28","nodeType":"YulFunctionCall","src":"17639:12:28"},{"name":"hash","nativeSrc":"17653:4:28","nodeType":"YulIdentifier","src":"17653:4:28"}],"functionName":{"name":"mstore","nativeSrc":"17632:6:28","nodeType":"YulIdentifier","src":"17632:6:28"},"nativeSrc":"17632:26:28","nodeType":"YulFunctionCall","src":"17632:26:28"},"nativeSrc":"17632:26:28","nodeType":"YulExpressionStatement","src":"17632:26:28"},{"nativeSrc":"17671:21:28","nodeType":"YulVariableDeclaration","src":"17671:21:28","value":{"arguments":[{"name":"m","nativeSrc":"17684:1:28","nodeType":"YulIdentifier","src":"17684:1:28"},{"kind":"number","nativeSrc":"17687:4:28","nodeType":"YulLiteral","src":"17687:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"17680:3:28","nodeType":"YulIdentifier","src":"17680:3:28"},"nativeSrc":"17680:12:28","nodeType":"YulFunctionCall","src":"17680:12:28"},"variables":[{"name":"d","nativeSrc":"17675:1:28","nodeType":"YulTypedName","src":"17675:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"17712:1:28","nodeType":"YulIdentifier","src":"17712:1:28"},{"kind":"number","nativeSrc":"17715:4:28","nodeType":"YulLiteral","src":"17715:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"17705:6:28","nodeType":"YulIdentifier","src":"17705:6:28"},"nativeSrc":"17705:15:28","nodeType":"YulFunctionCall","src":"17705:15:28"},"nativeSrc":"17705:15:28","nodeType":"YulExpressionStatement","src":"17705:15:28"},{"nativeSrc":"17825:36:28","nodeType":"YulVariableDeclaration","src":"17825:36:28","value":{"arguments":[{"kind":"number","nativeSrc":"17838:4:28","nodeType":"YulLiteral","src":"17838:4:28","type":"","value":"0x20"},{"arguments":[{"name":"signature","nativeSrc":"17850:9:28","nodeType":"YulIdentifier","src":"17850:9:28"}],"functionName":{"name":"mload","nativeSrc":"17844:5:28","nodeType":"YulIdentifier","src":"17844:5:28"},"nativeSrc":"17844:16:28","nodeType":"YulFunctionCall","src":"17844:16:28"}],"functionName":{"name":"add","nativeSrc":"17834:3:28","nodeType":"YulIdentifier","src":"17834:3:28"},"nativeSrc":"17834:27:28","nodeType":"YulFunctionCall","src":"17834:27:28"},"variables":[{"name":"n","nativeSrc":"17829:1:28","nodeType":"YulTypedName","src":"17829:1:28","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17889:3:28","nodeType":"YulIdentifier","src":"17889:3:28"},"nativeSrc":"17889:5:28","nodeType":"YulFunctionCall","src":"17889:5:28"},{"kind":"number","nativeSrc":"17896:1:28","nodeType":"YulLiteral","src":"17896:1:28","type":"","value":"4"},{"name":"signature","nativeSrc":"17899:9:28","nodeType":"YulIdentifier","src":"17899:9:28"},{"name":"n","nativeSrc":"17910:1:28","nodeType":"YulIdentifier","src":"17910:1:28"},{"arguments":[{"name":"m","nativeSrc":"17917:1:28","nodeType":"YulIdentifier","src":"17917:1:28"},{"kind":"number","nativeSrc":"17920:4:28","nodeType":"YulLiteral","src":"17920:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"17913:3:28","nodeType":"YulIdentifier","src":"17913:3:28"},"nativeSrc":"17913:12:28","nodeType":"YulFunctionCall","src":"17913:12:28"},{"name":"n","nativeSrc":"17927:1:28","nodeType":"YulIdentifier","src":"17927:1:28"}],"functionName":{"name":"staticcall","nativeSrc":"17878:10:28","nodeType":"YulIdentifier","src":"17878:10:28"},"nativeSrc":"17878:51:28","nodeType":"YulFunctionCall","src":"17878:51:28"}],"functionName":{"name":"pop","nativeSrc":"17874:3:28","nodeType":"YulIdentifier","src":"17874:3:28"},"nativeSrc":"17874:56:28","nodeType":"YulFunctionCall","src":"17874:56:28"},"nativeSrc":"17874:56:28","nodeType":"YulExpressionStatement","src":"17874:56:28"},{"nativeSrc":"17986:741:28","nodeType":"YulAssignment","src":"17986:741:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"18117:1:28","nodeType":"YulIdentifier","src":"18117:1:28"}],"functionName":{"name":"mload","nativeSrc":"18111:5:28","nodeType":"YulIdentifier","src":"18111:5:28"},"nativeSrc":"18111:8:28","nodeType":"YulFunctionCall","src":"18111:8:28"},{"name":"f","nativeSrc":"18121:1:28","nodeType":"YulIdentifier","src":"18121:1:28"}],"functionName":{"name":"eq","nativeSrc":"18108:2:28","nodeType":"YulIdentifier","src":"18108:2:28"},"nativeSrc":"18108:15:28","nodeType":"YulFunctionCall","src":"18108:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18373:3:28","nodeType":"YulIdentifier","src":"18373:3:28"},"nativeSrc":"18373:5:28","nodeType":"YulFunctionCall","src":"18373:5:28"},{"name":"signer","nativeSrc":"18418:6:28","nodeType":"YulIdentifier","src":"18418:6:28"},{"name":"m","nativeSrc":"18471:1:28","nodeType":"YulIdentifier","src":"18471:1:28"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18531:14:28","nodeType":"YulIdentifier","src":"18531:14:28"},"nativeSrc":"18531:16:28","nodeType":"YulFunctionCall","src":"18531:16:28"},{"kind":"number","nativeSrc":"18549:4:28","nodeType":"YulLiteral","src":"18549:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"18527:3:28","nodeType":"YulIdentifier","src":"18527:3:28"},"nativeSrc":"18527:27:28","nodeType":"YulFunctionCall","src":"18527:27:28"},{"name":"d","nativeSrc":"18609:1:28","nodeType":"YulIdentifier","src":"18609:1:28"},{"kind":"number","nativeSrc":"18657:4:28","nodeType":"YulLiteral","src":"18657:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"18341:10:28","nodeType":"YulIdentifier","src":"18341:10:28"},"nativeSrc":"18341:372:28","nodeType":"YulFunctionCall","src":"18341:372:28"}],"functionName":{"name":"and","nativeSrc":"17997:3:28","nodeType":"YulIdentifier","src":"17997:3:28"},"nativeSrc":"17997:730:28","nodeType":"YulFunctionCall","src":"17997:730:28"},"variableNames":[{"name":"isValid","nativeSrc":"17986:7:28","nodeType":"YulIdentifier","src":"17986:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11442,"isOffset":false,"isSlot":false,"src":"17653:4:28","valueSize":1},{"declaration":11447,"isOffset":false,"isSlot":false,"src":"17986:7:28","valueSize":1},{"declaration":11444,"isOffset":false,"isSlot":false,"src":"17850:9:28","valueSize":1},{"declaration":11444,"isOffset":false,"isSlot":false,"src":"17899:9:28","valueSize":1},{"declaration":11440,"isOffset":false,"isSlot":false,"src":"18418:6:28","valueSize":1}],"id":11449,"nodeType":"InlineAssembly","src":"17450:1287:28"}]},"documentation":{"id":11438,"nodeType":"StructuredDocumentation","src":"17147:90:28","text":"@dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract."},"id":11451,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"17251:26:28","nodeType":"FunctionDefinition","parameters":{"id":11445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11440,"mutability":"mutable","name":"signer","nameLocation":"17286:6:28","nodeType":"VariableDeclaration","scope":11451,"src":"17278:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11439,"name":"address","nodeType":"ElementaryTypeName","src":"17278:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11442,"mutability":"mutable","name":"hash","nameLocation":"17302:4:28","nodeType":"VariableDeclaration","scope":11451,"src":"17294:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17294:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11444,"mutability":"mutable","name":"signature","nameLocation":"17321:9:28","nodeType":"VariableDeclaration","scope":11451,"src":"17308:22:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11443,"name":"bytes","nodeType":"ElementaryTypeName","src":"17308:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17277:54:28"},"returnParameters":{"id":11448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11447,"mutability":"mutable","name":"isValid","nameLocation":"17384:7:28","nodeType":"VariableDeclaration","scope":11451,"src":"17379:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11446,"name":"bool","nodeType":"ElementaryTypeName","src":"17379:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17378:14:28"},"scope":11528,"src":"17242:1501:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11464,"nodeType":"Block","src":"19011:1354:28","statements":[{"AST":{"nativeSrc":"19073:1286:28","nodeType":"YulBlock","src":"19073:1286:28","statements":[{"nativeSrc":"19087:20:28","nodeType":"YulVariableDeclaration","src":"19087:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"19102:4:28","nodeType":"YulLiteral","src":"19102:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19096:5:28","nodeType":"YulIdentifier","src":"19096:5:28"},"nativeSrc":"19096:11:28","nodeType":"YulFunctionCall","src":"19096:11:28"},"variables":[{"name":"m","nativeSrc":"19091:1:28","nodeType":"YulTypedName","src":"19091:1:28","type":""}]},{"nativeSrc":"19120:29:28","nodeType":"YulVariableDeclaration","src":"19120:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"19133:3:28","nodeType":"YulLiteral","src":"19133:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"19138:10:28","nodeType":"YulLiteral","src":"19138:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"19129:3:28","nodeType":"YulIdentifier","src":"19129:3:28"},"nativeSrc":"19129:20:28","nodeType":"YulFunctionCall","src":"19129:20:28"},"variables":[{"name":"f","nativeSrc":"19124:1:28","nodeType":"YulTypedName","src":"19124:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"19169:1:28","nodeType":"YulIdentifier","src":"19169:1:28"},{"name":"f","nativeSrc":"19172:1:28","nodeType":"YulIdentifier","src":"19172:1:28"}],"functionName":{"name":"mstore","nativeSrc":"19162:6:28","nodeType":"YulIdentifier","src":"19162:6:28"},"nativeSrc":"19162:12:28","nodeType":"YulFunctionCall","src":"19162:12:28"},"nativeSrc":"19162:12:28","nodeType":"YulExpressionStatement","src":"19162:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19257:1:28","nodeType":"YulIdentifier","src":"19257:1:28"},{"kind":"number","nativeSrc":"19260:4:28","nodeType":"YulLiteral","src":"19260:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"19253:3:28","nodeType":"YulIdentifier","src":"19253:3:28"},"nativeSrc":"19253:12:28","nodeType":"YulFunctionCall","src":"19253:12:28"},{"name":"hash","nativeSrc":"19267:4:28","nodeType":"YulIdentifier","src":"19267:4:28"}],"functionName":{"name":"mstore","nativeSrc":"19246:6:28","nodeType":"YulIdentifier","src":"19246:6:28"},"nativeSrc":"19246:26:28","nodeType":"YulFunctionCall","src":"19246:26:28"},"nativeSrc":"19246:26:28","nodeType":"YulExpressionStatement","src":"19246:26:28"},{"nativeSrc":"19285:21:28","nodeType":"YulVariableDeclaration","src":"19285:21:28","value":{"arguments":[{"name":"m","nativeSrc":"19298:1:28","nodeType":"YulIdentifier","src":"19298:1:28"},{"kind":"number","nativeSrc":"19301:4:28","nodeType":"YulLiteral","src":"19301:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"19294:3:28","nodeType":"YulIdentifier","src":"19294:3:28"},"nativeSrc":"19294:12:28","nodeType":"YulFunctionCall","src":"19294:12:28"},"variables":[{"name":"d","nativeSrc":"19289:1:28","nodeType":"YulTypedName","src":"19289:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"19326:1:28","nodeType":"YulIdentifier","src":"19326:1:28"},{"kind":"number","nativeSrc":"19329:4:28","nodeType":"YulLiteral","src":"19329:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"19319:6:28","nodeType":"YulIdentifier","src":"19319:6:28"},"nativeSrc":"19319:15:28","nodeType":"YulFunctionCall","src":"19319:15:28"},"nativeSrc":"19319:15:28","nodeType":"YulExpressionStatement","src":"19319:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19408:1:28","nodeType":"YulIdentifier","src":"19408:1:28"},{"kind":"number","nativeSrc":"19411:4:28","nodeType":"YulLiteral","src":"19411:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"19404:3:28","nodeType":"YulIdentifier","src":"19404:3:28"},"nativeSrc":"19404:12:28","nodeType":"YulFunctionCall","src":"19404:12:28"},{"name":"signature.length","nativeSrc":"19418:16:28","nodeType":"YulIdentifier","src":"19418:16:28"}],"functionName":{"name":"mstore","nativeSrc":"19397:6:28","nodeType":"YulIdentifier","src":"19397:6:28"},"nativeSrc":"19397:38:28","nodeType":"YulFunctionCall","src":"19397:38:28"},"nativeSrc":"19397:38:28","nodeType":"YulExpressionStatement","src":"19397:38:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19507:1:28","nodeType":"YulIdentifier","src":"19507:1:28"},{"kind":"number","nativeSrc":"19510:4:28","nodeType":"YulLiteral","src":"19510:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"19503:3:28","nodeType":"YulIdentifier","src":"19503:3:28"},"nativeSrc":"19503:12:28","nodeType":"YulFunctionCall","src":"19503:12:28"},{"name":"signature.offset","nativeSrc":"19517:16:28","nodeType":"YulIdentifier","src":"19517:16:28"},{"name":"signature.length","nativeSrc":"19535:16:28","nodeType":"YulIdentifier","src":"19535:16:28"}],"functionName":{"name":"calldatacopy","nativeSrc":"19490:12:28","nodeType":"YulIdentifier","src":"19490:12:28"},"nativeSrc":"19490:62:28","nodeType":"YulFunctionCall","src":"19490:62:28"},"nativeSrc":"19490:62:28","nodeType":"YulExpressionStatement","src":"19490:62:28"},{"nativeSrc":"19608:741:28","nodeType":"YulAssignment","src":"19608:741:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"19739:1:28","nodeType":"YulIdentifier","src":"19739:1:28"}],"functionName":{"name":"mload","nativeSrc":"19733:5:28","nodeType":"YulIdentifier","src":"19733:5:28"},"nativeSrc":"19733:8:28","nodeType":"YulFunctionCall","src":"19733:8:28"},{"name":"f","nativeSrc":"19743:1:28","nodeType":"YulIdentifier","src":"19743:1:28"}],"functionName":{"name":"eq","nativeSrc":"19730:2:28","nodeType":"YulIdentifier","src":"19730:2:28"},"nativeSrc":"19730:15:28","nodeType":"YulFunctionCall","src":"19730:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"19995:3:28","nodeType":"YulIdentifier","src":"19995:3:28"},"nativeSrc":"19995:5:28","nodeType":"YulFunctionCall","src":"19995:5:28"},{"name":"signer","nativeSrc":"20040:6:28","nodeType":"YulIdentifier","src":"20040:6:28"},{"name":"m","nativeSrc":"20093:1:28","nodeType":"YulIdentifier","src":"20093:1:28"},{"arguments":[{"name":"signature.length","nativeSrc":"20153:16:28","nodeType":"YulIdentifier","src":"20153:16:28"},{"kind":"number","nativeSrc":"20171:4:28","nodeType":"YulLiteral","src":"20171:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"20149:3:28","nodeType":"YulIdentifier","src":"20149:3:28"},"nativeSrc":"20149:27:28","nodeType":"YulFunctionCall","src":"20149:27:28"},{"name":"d","nativeSrc":"20231:1:28","nodeType":"YulIdentifier","src":"20231:1:28"},{"kind":"number","nativeSrc":"20279:4:28","nodeType":"YulLiteral","src":"20279:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"19963:10:28","nodeType":"YulIdentifier","src":"19963:10:28"},"nativeSrc":"19963:372:28","nodeType":"YulFunctionCall","src":"19963:372:28"}],"functionName":{"name":"and","nativeSrc":"19619:3:28","nodeType":"YulIdentifier","src":"19619:3:28"},"nativeSrc":"19619:730:28","nodeType":"YulFunctionCall","src":"19619:730:28"},"variableNames":[{"name":"isValid","nativeSrc":"19608:7:28","nodeType":"YulIdentifier","src":"19608:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11456,"isOffset":false,"isSlot":false,"src":"19267:4:28","valueSize":1},{"declaration":11461,"isOffset":false,"isSlot":false,"src":"19608:7:28","valueSize":1},{"declaration":11458,"isOffset":false,"isSlot":false,"src":"19418:16:28","suffix":"length","valueSize":1},{"declaration":11458,"isOffset":false,"isSlot":false,"src":"19535:16:28","suffix":"length","valueSize":1},{"declaration":11458,"isOffset":false,"isSlot":false,"src":"20153:16:28","suffix":"length","valueSize":1},{"declaration":11458,"isOffset":true,"isSlot":false,"src":"19517:16:28","suffix":"offset","valueSize":1},{"declaration":11454,"isOffset":false,"isSlot":false,"src":"20040:6:28","valueSize":1}],"id":11463,"nodeType":"InlineAssembly","src":"19064:1295:28"}]},"documentation":{"id":11452,"nodeType":"StructuredDocumentation","src":"18749:90:28","text":"@dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract."},"id":11465,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNowCalldata","nameLocation":"18853:34:28","nodeType":"FunctionDefinition","parameters":{"id":11459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11454,"mutability":"mutable","name":"signer","nameLocation":"18905:6:28","nodeType":"VariableDeclaration","scope":11465,"src":"18897:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11453,"name":"address","nodeType":"ElementaryTypeName","src":"18897:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11456,"mutability":"mutable","name":"hash","nameLocation":"18929:4:28","nodeType":"VariableDeclaration","scope":11465,"src":"18921:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18921:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11458,"mutability":"mutable","name":"signature","nameLocation":"18958:9:28","nodeType":"VariableDeclaration","scope":11465,"src":"18943:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11457,"name":"bytes","nodeType":"ElementaryTypeName","src":"18943:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18887:86:28"},"returnParameters":{"id":11462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11461,"mutability":"mutable","name":"isValid","nameLocation":"19002:7:28","nodeType":"VariableDeclaration","scope":11465,"src":"18997:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11460,"name":"bool","nodeType":"ElementaryTypeName","src":"18997:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18996:14:28"},"scope":11528,"src":"18844:1521:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11480,"nodeType":"Block","src":"20642:1398:28","statements":[{"AST":{"nativeSrc":"20704:1330:28","nodeType":"YulBlock","src":"20704:1330:28","statements":[{"nativeSrc":"20718:20:28","nodeType":"YulVariableDeclaration","src":"20718:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"20733:4:28","nodeType":"YulLiteral","src":"20733:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20727:5:28","nodeType":"YulIdentifier","src":"20727:5:28"},"nativeSrc":"20727:11:28","nodeType":"YulFunctionCall","src":"20727:11:28"},"variables":[{"name":"m","nativeSrc":"20722:1:28","nodeType":"YulTypedName","src":"20722:1:28","type":""}]},{"nativeSrc":"20751:29:28","nodeType":"YulVariableDeclaration","src":"20751:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"20764:3:28","nodeType":"YulLiteral","src":"20764:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"20769:10:28","nodeType":"YulLiteral","src":"20769:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"20760:3:28","nodeType":"YulIdentifier","src":"20760:3:28"},"nativeSrc":"20760:20:28","nodeType":"YulFunctionCall","src":"20760:20:28"},"variables":[{"name":"f","nativeSrc":"20755:1:28","nodeType":"YulTypedName","src":"20755:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"20800:1:28","nodeType":"YulIdentifier","src":"20800:1:28"},{"name":"f","nativeSrc":"20803:1:28","nodeType":"YulIdentifier","src":"20803:1:28"}],"functionName":{"name":"mstore","nativeSrc":"20793:6:28","nodeType":"YulIdentifier","src":"20793:6:28"},"nativeSrc":"20793:12:28","nodeType":"YulFunctionCall","src":"20793:12:28"},"nativeSrc":"20793:12:28","nodeType":"YulExpressionStatement","src":"20793:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20888:1:28","nodeType":"YulIdentifier","src":"20888:1:28"},{"kind":"number","nativeSrc":"20891:4:28","nodeType":"YulLiteral","src":"20891:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"20884:3:28","nodeType":"YulIdentifier","src":"20884:3:28"},"nativeSrc":"20884:12:28","nodeType":"YulFunctionCall","src":"20884:12:28"},{"name":"hash","nativeSrc":"20898:4:28","nodeType":"YulIdentifier","src":"20898:4:28"}],"functionName":{"name":"mstore","nativeSrc":"20877:6:28","nodeType":"YulIdentifier","src":"20877:6:28"},"nativeSrc":"20877:26:28","nodeType":"YulFunctionCall","src":"20877:26:28"},"nativeSrc":"20877:26:28","nodeType":"YulExpressionStatement","src":"20877:26:28"},{"nativeSrc":"20916:21:28","nodeType":"YulVariableDeclaration","src":"20916:21:28","value":{"arguments":[{"name":"m","nativeSrc":"20929:1:28","nodeType":"YulIdentifier","src":"20929:1:28"},{"kind":"number","nativeSrc":"20932:4:28","nodeType":"YulLiteral","src":"20932:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"20925:3:28","nodeType":"YulIdentifier","src":"20925:3:28"},"nativeSrc":"20925:12:28","nodeType":"YulFunctionCall","src":"20925:12:28"},"variables":[{"name":"d","nativeSrc":"20920:1:28","nodeType":"YulTypedName","src":"20920:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"20957:1:28","nodeType":"YulIdentifier","src":"20957:1:28"},{"kind":"number","nativeSrc":"20960:4:28","nodeType":"YulLiteral","src":"20960:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"20950:6:28","nodeType":"YulIdentifier","src":"20950:6:28"},"nativeSrc":"20950:15:28","nodeType":"YulFunctionCall","src":"20950:15:28"},"nativeSrc":"20950:15:28","nodeType":"YulExpressionStatement","src":"20950:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21039:1:28","nodeType":"YulIdentifier","src":"21039:1:28"},{"kind":"number","nativeSrc":"21042:4:28","nodeType":"YulLiteral","src":"21042:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"21035:3:28","nodeType":"YulIdentifier","src":"21035:3:28"},"nativeSrc":"21035:12:28","nodeType":"YulFunctionCall","src":"21035:12:28"},{"kind":"number","nativeSrc":"21049:2:28","nodeType":"YulLiteral","src":"21049:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"21028:6:28","nodeType":"YulIdentifier","src":"21028:6:28"},"nativeSrc":"21028:24:28","nodeType":"YulFunctionCall","src":"21028:24:28"},"nativeSrc":"21028:24:28","nodeType":"YulExpressionStatement","src":"21028:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21104:1:28","nodeType":"YulIdentifier","src":"21104:1:28"},{"kind":"number","nativeSrc":"21107:4:28","nodeType":"YulLiteral","src":"21107:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"21100:3:28","nodeType":"YulIdentifier","src":"21100:3:28"},"nativeSrc":"21100:12:28","nodeType":"YulFunctionCall","src":"21100:12:28"},{"name":"r","nativeSrc":"21114:1:28","nodeType":"YulIdentifier","src":"21114:1:28"}],"functionName":{"name":"mstore","nativeSrc":"21093:6:28","nodeType":"YulIdentifier","src":"21093:6:28"},"nativeSrc":"21093:23:28","nodeType":"YulFunctionCall","src":"21093:23:28"},"nativeSrc":"21093:23:28","nodeType":"YulExpressionStatement","src":"21093:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21148:1:28","nodeType":"YulIdentifier","src":"21148:1:28"},{"kind":"number","nativeSrc":"21151:4:28","nodeType":"YulLiteral","src":"21151:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"21144:3:28","nodeType":"YulIdentifier","src":"21144:3:28"},"nativeSrc":"21144:12:28","nodeType":"YulFunctionCall","src":"21144:12:28"},{"arguments":[{"kind":"number","nativeSrc":"21162:1:28","nodeType":"YulLiteral","src":"21162:1:28","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"21169:1:28","nodeType":"YulLiteral","src":"21169:1:28","type":"","value":"1"},{"name":"vs","nativeSrc":"21172:2:28","nodeType":"YulIdentifier","src":"21172:2:28"}],"functionName":{"name":"shl","nativeSrc":"21165:3:28","nodeType":"YulIdentifier","src":"21165:3:28"},"nativeSrc":"21165:10:28","nodeType":"YulFunctionCall","src":"21165:10:28"}],"functionName":{"name":"shr","nativeSrc":"21158:3:28","nodeType":"YulIdentifier","src":"21158:3:28"},"nativeSrc":"21158:18:28","nodeType":"YulFunctionCall","src":"21158:18:28"}],"functionName":{"name":"mstore","nativeSrc":"21137:6:28","nodeType":"YulIdentifier","src":"21137:6:28"},"nativeSrc":"21137:40:28","nodeType":"YulFunctionCall","src":"21137:40:28"},"nativeSrc":"21137:40:28","nodeType":"YulExpressionStatement","src":"21137:40:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21210:1:28","nodeType":"YulIdentifier","src":"21210:1:28"},{"kind":"number","nativeSrc":"21213:4:28","nodeType":"YulLiteral","src":"21213:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"21206:3:28","nodeType":"YulIdentifier","src":"21206:3:28"},"nativeSrc":"21206:12:28","nodeType":"YulFunctionCall","src":"21206:12:28"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21228:3:28","nodeType":"YulLiteral","src":"21228:3:28","type":"","value":"255"},{"name":"vs","nativeSrc":"21233:2:28","nodeType":"YulIdentifier","src":"21233:2:28"}],"functionName":{"name":"shr","nativeSrc":"21224:3:28","nodeType":"YulIdentifier","src":"21224:3:28"},"nativeSrc":"21224:12:28","nodeType":"YulFunctionCall","src":"21224:12:28"},{"kind":"number","nativeSrc":"21238:2:28","nodeType":"YulLiteral","src":"21238:2:28","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"21220:3:28","nodeType":"YulIdentifier","src":"21220:3:28"},"nativeSrc":"21220:21:28","nodeType":"YulFunctionCall","src":"21220:21:28"}],"functionName":{"name":"mstore8","nativeSrc":"21198:7:28","nodeType":"YulIdentifier","src":"21198:7:28"},"nativeSrc":"21198:44:28","nodeType":"YulFunctionCall","src":"21198:44:28"},"nativeSrc":"21198:44:28","nodeType":"YulExpressionStatement","src":"21198:44:28"},{"nativeSrc":"21306:718:28","nodeType":"YulAssignment","src":"21306:718:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"21437:1:28","nodeType":"YulIdentifier","src":"21437:1:28"}],"functionName":{"name":"mload","nativeSrc":"21431:5:28","nodeType":"YulIdentifier","src":"21431:5:28"},"nativeSrc":"21431:8:28","nodeType":"YulFunctionCall","src":"21431:8:28"},{"name":"f","nativeSrc":"21441:1:28","nodeType":"YulIdentifier","src":"21441:1:28"}],"functionName":{"name":"eq","nativeSrc":"21428:2:28","nodeType":"YulIdentifier","src":"21428:2:28"},"nativeSrc":"21428:15:28","nodeType":"YulFunctionCall","src":"21428:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"21693:3:28","nodeType":"YulIdentifier","src":"21693:3:28"},"nativeSrc":"21693:5:28","nodeType":"YulFunctionCall","src":"21693:5:28"},{"name":"signer","nativeSrc":"21738:6:28","nodeType":"YulIdentifier","src":"21738:6:28"},{"name":"m","nativeSrc":"21791:1:28","nodeType":"YulIdentifier","src":"21791:1:28"},{"kind":"number","nativeSrc":"21847:4:28","nodeType":"YulLiteral","src":"21847:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"21906:1:28","nodeType":"YulIdentifier","src":"21906:1:28"},{"kind":"number","nativeSrc":"21954:4:28","nodeType":"YulLiteral","src":"21954:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"21661:10:28","nodeType":"YulIdentifier","src":"21661:10:28"},"nativeSrc":"21661:349:28","nodeType":"YulFunctionCall","src":"21661:349:28"}],"functionName":{"name":"and","nativeSrc":"21317:3:28","nodeType":"YulIdentifier","src":"21317:3:28"},"nativeSrc":"21317:707:28","nodeType":"YulFunctionCall","src":"21317:707:28"},"variableNames":[{"name":"isValid","nativeSrc":"21306:7:28","nodeType":"YulIdentifier","src":"21306:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11470,"isOffset":false,"isSlot":false,"src":"20898:4:28","valueSize":1},{"declaration":11477,"isOffset":false,"isSlot":false,"src":"21306:7:28","valueSize":1},{"declaration":11472,"isOffset":false,"isSlot":false,"src":"21114:1:28","valueSize":1},{"declaration":11468,"isOffset":false,"isSlot":false,"src":"21738:6:28","valueSize":1},{"declaration":11474,"isOffset":false,"isSlot":false,"src":"21172:2:28","valueSize":1},{"declaration":11474,"isOffset":false,"isSlot":false,"src":"21233:2:28","valueSize":1}],"id":11479,"nodeType":"InlineAssembly","src":"20695:1339:28"}]},"documentation":{"id":11466,"nodeType":"StructuredDocumentation","src":"20371:112:28","text":"@dev Returns whether the signature (`r`, `vs`) is valid for `hash`\n for an ERC1271 `signer` contract."},"id":11481,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"20497:26:28","nodeType":"FunctionDefinition","parameters":{"id":11475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11468,"mutability":"mutable","name":"signer","nameLocation":"20532:6:28","nodeType":"VariableDeclaration","scope":11481,"src":"20524:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11467,"name":"address","nodeType":"ElementaryTypeName","src":"20524:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11470,"mutability":"mutable","name":"hash","nameLocation":"20548:4:28","nodeType":"VariableDeclaration","scope":11481,"src":"20540:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20540:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11472,"mutability":"mutable","name":"r","nameLocation":"20562:1:28","nodeType":"VariableDeclaration","scope":11481,"src":"20554:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20554:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11474,"mutability":"mutable","name":"vs","nameLocation":"20573:2:28","nodeType":"VariableDeclaration","scope":11481,"src":"20565:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20565:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20523:53:28"},"returnParameters":{"id":11478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11477,"mutability":"mutable","name":"isValid","nameLocation":"20629:7:28","nodeType":"VariableDeclaration","scope":11481,"src":"20624:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11476,"name":"bool","nodeType":"ElementaryTypeName","src":"20624:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20623:14:28"},"scope":11528,"src":"20488:1552:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11498,"nodeType":"Block","src":"22329:1361:28","statements":[{"AST":{"nativeSrc":"22391:1293:28","nodeType":"YulBlock","src":"22391:1293:28","statements":[{"nativeSrc":"22405:20:28","nodeType":"YulVariableDeclaration","src":"22405:20:28","value":{"arguments":[{"kind":"number","nativeSrc":"22420:4:28","nodeType":"YulLiteral","src":"22420:4:28","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"22414:5:28","nodeType":"YulIdentifier","src":"22414:5:28"},"nativeSrc":"22414:11:28","nodeType":"YulFunctionCall","src":"22414:11:28"},"variables":[{"name":"m","nativeSrc":"22409:1:28","nodeType":"YulTypedName","src":"22409:1:28","type":""}]},{"nativeSrc":"22438:29:28","nodeType":"YulVariableDeclaration","src":"22438:29:28","value":{"arguments":[{"kind":"number","nativeSrc":"22451:3:28","nodeType":"YulLiteral","src":"22451:3:28","type":"","value":"224"},{"kind":"number","nativeSrc":"22456:10:28","nodeType":"YulLiteral","src":"22456:10:28","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"22447:3:28","nodeType":"YulIdentifier","src":"22447:3:28"},"nativeSrc":"22447:20:28","nodeType":"YulFunctionCall","src":"22447:20:28"},"variables":[{"name":"f","nativeSrc":"22442:1:28","nodeType":"YulTypedName","src":"22442:1:28","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"22487:1:28","nodeType":"YulIdentifier","src":"22487:1:28"},{"name":"f","nativeSrc":"22490:1:28","nodeType":"YulIdentifier","src":"22490:1:28"}],"functionName":{"name":"mstore","nativeSrc":"22480:6:28","nodeType":"YulIdentifier","src":"22480:6:28"},"nativeSrc":"22480:12:28","nodeType":"YulFunctionCall","src":"22480:12:28"},"nativeSrc":"22480:12:28","nodeType":"YulExpressionStatement","src":"22480:12:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22575:1:28","nodeType":"YulIdentifier","src":"22575:1:28"},{"kind":"number","nativeSrc":"22578:4:28","nodeType":"YulLiteral","src":"22578:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"22571:3:28","nodeType":"YulIdentifier","src":"22571:3:28"},"nativeSrc":"22571:12:28","nodeType":"YulFunctionCall","src":"22571:12:28"},{"name":"hash","nativeSrc":"22585:4:28","nodeType":"YulIdentifier","src":"22585:4:28"}],"functionName":{"name":"mstore","nativeSrc":"22564:6:28","nodeType":"YulIdentifier","src":"22564:6:28"},"nativeSrc":"22564:26:28","nodeType":"YulFunctionCall","src":"22564:26:28"},"nativeSrc":"22564:26:28","nodeType":"YulExpressionStatement","src":"22564:26:28"},{"nativeSrc":"22603:21:28","nodeType":"YulVariableDeclaration","src":"22603:21:28","value":{"arguments":[{"name":"m","nativeSrc":"22616:1:28","nodeType":"YulIdentifier","src":"22616:1:28"},{"kind":"number","nativeSrc":"22619:4:28","nodeType":"YulLiteral","src":"22619:4:28","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"22612:3:28","nodeType":"YulIdentifier","src":"22612:3:28"},"nativeSrc":"22612:12:28","nodeType":"YulFunctionCall","src":"22612:12:28"},"variables":[{"name":"d","nativeSrc":"22607:1:28","nodeType":"YulTypedName","src":"22607:1:28","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"22644:1:28","nodeType":"YulIdentifier","src":"22644:1:28"},{"kind":"number","nativeSrc":"22647:4:28","nodeType":"YulLiteral","src":"22647:4:28","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"22637:6:28","nodeType":"YulIdentifier","src":"22637:6:28"},"nativeSrc":"22637:15:28","nodeType":"YulFunctionCall","src":"22637:15:28"},"nativeSrc":"22637:15:28","nodeType":"YulExpressionStatement","src":"22637:15:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22726:1:28","nodeType":"YulIdentifier","src":"22726:1:28"},{"kind":"number","nativeSrc":"22729:4:28","nodeType":"YulLiteral","src":"22729:4:28","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"22722:3:28","nodeType":"YulIdentifier","src":"22722:3:28"},"nativeSrc":"22722:12:28","nodeType":"YulFunctionCall","src":"22722:12:28"},{"kind":"number","nativeSrc":"22736:2:28","nodeType":"YulLiteral","src":"22736:2:28","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"22715:6:28","nodeType":"YulIdentifier","src":"22715:6:28"},"nativeSrc":"22715:24:28","nodeType":"YulFunctionCall","src":"22715:24:28"},"nativeSrc":"22715:24:28","nodeType":"YulExpressionStatement","src":"22715:24:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22791:1:28","nodeType":"YulIdentifier","src":"22791:1:28"},{"kind":"number","nativeSrc":"22794:4:28","nodeType":"YulLiteral","src":"22794:4:28","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"22787:3:28","nodeType":"YulIdentifier","src":"22787:3:28"},"nativeSrc":"22787:12:28","nodeType":"YulFunctionCall","src":"22787:12:28"},{"name":"r","nativeSrc":"22801:1:28","nodeType":"YulIdentifier","src":"22801:1:28"}],"functionName":{"name":"mstore","nativeSrc":"22780:6:28","nodeType":"YulIdentifier","src":"22780:6:28"},"nativeSrc":"22780:23:28","nodeType":"YulFunctionCall","src":"22780:23:28"},"nativeSrc":"22780:23:28","nodeType":"YulExpressionStatement","src":"22780:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22835:1:28","nodeType":"YulIdentifier","src":"22835:1:28"},{"kind":"number","nativeSrc":"22838:4:28","nodeType":"YulLiteral","src":"22838:4:28","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"22831:3:28","nodeType":"YulIdentifier","src":"22831:3:28"},"nativeSrc":"22831:12:28","nodeType":"YulFunctionCall","src":"22831:12:28"},{"name":"s","nativeSrc":"22845:1:28","nodeType":"YulIdentifier","src":"22845:1:28"}],"functionName":{"name":"mstore","nativeSrc":"22824:6:28","nodeType":"YulIdentifier","src":"22824:6:28"},"nativeSrc":"22824:23:28","nodeType":"YulFunctionCall","src":"22824:23:28"},"nativeSrc":"22824:23:28","nodeType":"YulExpressionStatement","src":"22824:23:28"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22880:1:28","nodeType":"YulIdentifier","src":"22880:1:28"},{"kind":"number","nativeSrc":"22883:4:28","nodeType":"YulLiteral","src":"22883:4:28","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"22876:3:28","nodeType":"YulIdentifier","src":"22876:3:28"},"nativeSrc":"22876:12:28","nodeType":"YulFunctionCall","src":"22876:12:28"},{"name":"v","nativeSrc":"22890:1:28","nodeType":"YulIdentifier","src":"22890:1:28"}],"functionName":{"name":"mstore8","nativeSrc":"22868:7:28","nodeType":"YulIdentifier","src":"22868:7:28"},"nativeSrc":"22868:24:28","nodeType":"YulFunctionCall","src":"22868:24:28"},"nativeSrc":"22868:24:28","nodeType":"YulExpressionStatement","src":"22868:24:28"},{"nativeSrc":"22956:718:28","nodeType":"YulAssignment","src":"22956:718:28","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"23087:1:28","nodeType":"YulIdentifier","src":"23087:1:28"}],"functionName":{"name":"mload","nativeSrc":"23081:5:28","nodeType":"YulIdentifier","src":"23081:5:28"},"nativeSrc":"23081:8:28","nodeType":"YulFunctionCall","src":"23081:8:28"},{"name":"f","nativeSrc":"23091:1:28","nodeType":"YulIdentifier","src":"23091:1:28"}],"functionName":{"name":"eq","nativeSrc":"23078:2:28","nodeType":"YulIdentifier","src":"23078:2:28"},"nativeSrc":"23078:15:28","nodeType":"YulFunctionCall","src":"23078:15:28"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23343:3:28","nodeType":"YulIdentifier","src":"23343:3:28"},"nativeSrc":"23343:5:28","nodeType":"YulFunctionCall","src":"23343:5:28"},{"name":"signer","nativeSrc":"23388:6:28","nodeType":"YulIdentifier","src":"23388:6:28"},{"name":"m","nativeSrc":"23441:1:28","nodeType":"YulIdentifier","src":"23441:1:28"},{"kind":"number","nativeSrc":"23497:4:28","nodeType":"YulLiteral","src":"23497:4:28","type":"","value":"0xa5"},{"name":"d","nativeSrc":"23556:1:28","nodeType":"YulIdentifier","src":"23556:1:28"},{"kind":"number","nativeSrc":"23604:4:28","nodeType":"YulLiteral","src":"23604:4:28","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"23311:10:28","nodeType":"YulIdentifier","src":"23311:10:28"},"nativeSrc":"23311:349:28","nodeType":"YulFunctionCall","src":"23311:349:28"}],"functionName":{"name":"and","nativeSrc":"22967:3:28","nodeType":"YulIdentifier","src":"22967:3:28"},"nativeSrc":"22967:707:28","nodeType":"YulFunctionCall","src":"22967:707:28"},"variableNames":[{"name":"isValid","nativeSrc":"22956:7:28","nodeType":"YulIdentifier","src":"22956:7:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11486,"isOffset":false,"isSlot":false,"src":"22585:4:28","valueSize":1},{"declaration":11495,"isOffset":false,"isSlot":false,"src":"22956:7:28","valueSize":1},{"declaration":11490,"isOffset":false,"isSlot":false,"src":"22801:1:28","valueSize":1},{"declaration":11492,"isOffset":false,"isSlot":false,"src":"22845:1:28","valueSize":1},{"declaration":11484,"isOffset":false,"isSlot":false,"src":"23388:6:28","valueSize":1},{"declaration":11488,"isOffset":false,"isSlot":false,"src":"22890:1:28","valueSize":1}],"id":11497,"nodeType":"InlineAssembly","src":"22382:1302:28"}]},"documentation":{"id":11482,"nodeType":"StructuredDocumentation","src":"22046:116:28","text":"@dev Returns whether the signature (`v`, `r`, `s`) is valid for `hash`\n for an ERC1271 `signer` contract."},"id":11499,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"22176:26:28","nodeType":"FunctionDefinition","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11484,"mutability":"mutable","name":"signer","nameLocation":"22211:6:28","nodeType":"VariableDeclaration","scope":11499,"src":"22203:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11483,"name":"address","nodeType":"ElementaryTypeName","src":"22203:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11486,"mutability":"mutable","name":"hash","nameLocation":"22227:4:28","nodeType":"VariableDeclaration","scope":11499,"src":"22219:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22219:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11488,"mutability":"mutable","name":"v","nameLocation":"22239:1:28","nodeType":"VariableDeclaration","scope":11499,"src":"22233:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11487,"name":"uint8","nodeType":"ElementaryTypeName","src":"22233:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11490,"mutability":"mutable","name":"r","nameLocation":"22250:1:28","nodeType":"VariableDeclaration","scope":11499,"src":"22242:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22242:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11492,"mutability":"mutable","name":"s","nameLocation":"22261:1:28","nodeType":"VariableDeclaration","scope":11499,"src":"22253:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22253:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22202:61:28"},"returnParameters":{"id":11496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11495,"mutability":"mutable","name":"isValid","nameLocation":"22316:7:28","nodeType":"VariableDeclaration","scope":11499,"src":"22311:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11494,"name":"bool","nodeType":"ElementaryTypeName","src":"22311:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22310:14:28"},"scope":11528,"src":"22167:1523:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11508,"nodeType":"Block","src":"24311:324:28","statements":[{"AST":{"nativeSrc":"24373:256:28","nodeType":"YulBlock","src":"24373:256:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24394:4:28","nodeType":"YulLiteral","src":"24394:4:28","type":"","value":"0x20"},{"name":"hash","nativeSrc":"24400:4:28","nodeType":"YulIdentifier","src":"24400:4:28"}],"functionName":{"name":"mstore","nativeSrc":"24387:6:28","nodeType":"YulIdentifier","src":"24387:6:28"},"nativeSrc":"24387:18:28","nodeType":"YulFunctionCall","src":"24387:18:28"},"nativeSrc":"24387:18:28","nodeType":"YulExpressionStatement","src":"24387:18:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24468:4:28","nodeType":"YulLiteral","src":"24468:4:28","type":"","value":"0x00"},{"hexValue":"0000000019457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nativeSrc":"24474:50:28","nodeType":"YulLiteral","src":"24474:50:28","type":"","value":"\u0000\u0000\u0000\u0000\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nativeSrc":"24461:6:28","nodeType":"YulIdentifier","src":"24461:6:28"},"nativeSrc":"24461:64:28","nodeType":"YulFunctionCall","src":"24461:64:28"},"nativeSrc":"24461:64:28","nodeType":"YulExpressionStatement","src":"24461:64:28"},{"nativeSrc":"24551:31:28","nodeType":"YulAssignment","src":"24551:31:28","value":{"arguments":[{"kind":"number","nativeSrc":"24571:4:28","nodeType":"YulLiteral","src":"24571:4:28","type":"","value":"0x04"},{"kind":"number","nativeSrc":"24577:4:28","nodeType":"YulLiteral","src":"24577:4:28","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nativeSrc":"24561:9:28","nodeType":"YulIdentifier","src":"24561:9:28"},"nativeSrc":"24561:21:28","nodeType":"YulFunctionCall","src":"24561:21:28"},"variableNames":[{"name":"result","nativeSrc":"24551:6:28","nodeType":"YulIdentifier","src":"24551:6:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11502,"isOffset":false,"isSlot":false,"src":"24400:4:28","valueSize":1},{"declaration":11505,"isOffset":false,"isSlot":false,"src":"24551:6:28","valueSize":1}],"id":11507,"nodeType":"InlineAssembly","src":"24364:265:28"}]},"documentation":{"id":11500,"nodeType":"StructuredDocumentation","src":"23979:242:28","text":"@dev Returns an Ethereum Signed Message, created from a `hash`.\n This produces a hash corresponding to the one signed with the\n [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n JSON-RPC method as part of EIP-191."},"id":11509,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"24235:22:28","nodeType":"FunctionDefinition","parameters":{"id":11503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11502,"mutability":"mutable","name":"hash","nameLocation":"24266:4:28","nodeType":"VariableDeclaration","scope":11509,"src":"24258:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24258:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24257:14:28"},"returnParameters":{"id":11506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11505,"mutability":"mutable","name":"result","nameLocation":"24303:6:28","nodeType":"VariableDeclaration","scope":11509,"src":"24295:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24295:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24294:16:28"},"scope":11528,"src":"24226:409:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11518,"nodeType":"Block","src":"25028:1019:28","statements":[{"AST":{"nativeSrc":"25090:951:28","nodeType":"YulBlock","src":"25090:951:28","statements":[{"nativeSrc":"25104:23:28","nodeType":"YulVariableDeclaration","src":"25104:23:28","value":{"arguments":[{"name":"s","nativeSrc":"25125:1:28","nodeType":"YulIdentifier","src":"25125:1:28"}],"functionName":{"name":"mload","nativeSrc":"25119:5:28","nodeType":"YulIdentifier","src":"25119:5:28"},"nativeSrc":"25119:8:28","nodeType":"YulFunctionCall","src":"25119:8:28"},"variables":[{"name":"sLength","nativeSrc":"25108:7:28","nodeType":"YulTypedName","src":"25108:7:28","type":""}]},{"nativeSrc":"25140:13:28","nodeType":"YulVariableDeclaration","src":"25140:13:28","value":{"kind":"number","nativeSrc":"25149:4:28","nodeType":"YulLiteral","src":"25149:4:28","type":"","value":"0x20"},"variables":[{"name":"o","nativeSrc":"25144:1:28","nodeType":"YulTypedName","src":"25144:1:28","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"25173:1:28","nodeType":"YulIdentifier","src":"25173:1:28"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","kind":"string","nativeSrc":"25176:32:28","nodeType":"YulLiteral","src":"25176:32:28","type":"","value":"\u0019Ethereum Signed Message:\n"}],"functionName":{"name":"mstore","nativeSrc":"25166:6:28","nodeType":"YulIdentifier","src":"25166:6:28"},"nativeSrc":"25166:43:28","nodeType":"YulFunctionCall","src":"25166:43:28"},"nativeSrc":"25166:43:28","nodeType":"YulExpressionStatement","src":"25166:43:28"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25261:4:28","nodeType":"YulLiteral","src":"25261:4:28","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25267:4:28","nodeType":"YulLiteral","src":"25267:4:28","type":"","value":"0x00"}],"functionName":{"name":"mstore","nativeSrc":"25254:6:28","nodeType":"YulIdentifier","src":"25254:6:28"},"nativeSrc":"25254:18:28","nodeType":"YulFunctionCall","src":"25254:18:28"},"nativeSrc":"25254:18:28","nodeType":"YulExpressionStatement","src":"25254:18:28"},{"body":{"nativeSrc":"25409:177:28","nodeType":"YulBlock","src":"25409:177:28","statements":[{"nativeSrc":"25427:14:28","nodeType":"YulAssignment","src":"25427:14:28","value":{"arguments":[{"name":"o","nativeSrc":"25436:1:28","nodeType":"YulIdentifier","src":"25436:1:28"},{"kind":"number","nativeSrc":"25439:1:28","nodeType":"YulLiteral","src":"25439:1:28","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"25432:3:28","nodeType":"YulIdentifier","src":"25432:3:28"},"nativeSrc":"25432:9:28","nodeType":"YulFunctionCall","src":"25432:9:28"},"variableNames":[{"name":"o","nativeSrc":"25427:1:28","nodeType":"YulIdentifier","src":"25427:1:28"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"25466:1:28","nodeType":"YulIdentifier","src":"25466:1:28"},{"arguments":[{"kind":"number","nativeSrc":"25473:2:28","nodeType":"YulLiteral","src":"25473:2:28","type":"","value":"48"},{"arguments":[{"name":"temp","nativeSrc":"25481:4:28","nodeType":"YulIdentifier","src":"25481:4:28"},{"kind":"number","nativeSrc":"25487:2:28","nodeType":"YulLiteral","src":"25487:2:28","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"25477:3:28","nodeType":"YulIdentifier","src":"25477:3:28"},"nativeSrc":"25477:13:28","nodeType":"YulFunctionCall","src":"25477:13:28"}],"functionName":{"name":"add","nativeSrc":"25469:3:28","nodeType":"YulIdentifier","src":"25469:3:28"},"nativeSrc":"25469:22:28","nodeType":"YulFunctionCall","src":"25469:22:28"}],"functionName":{"name":"mstore8","nativeSrc":"25458:7:28","nodeType":"YulIdentifier","src":"25458:7:28"},"nativeSrc":"25458:34:28","nodeType":"YulFunctionCall","src":"25458:34:28"},"nativeSrc":"25458:34:28","nodeType":"YulExpressionStatement","src":"25458:34:28"},{"nativeSrc":"25509:21:28","nodeType":"YulAssignment","src":"25509:21:28","value":{"arguments":[{"name":"temp","nativeSrc":"25521:4:28","nodeType":"YulIdentifier","src":"25521:4:28"},{"kind":"number","nativeSrc":"25527:2:28","nodeType":"YulLiteral","src":"25527:2:28","type":"","value":"10"}],"functionName":{"name":"div","nativeSrc":"25517:3:28","nodeType":"YulIdentifier","src":"25517:3:28"},"nativeSrc":"25517:13:28","nodeType":"YulFunctionCall","src":"25517:13:28"},"variableNames":[{"name":"temp","nativeSrc":"25509:4:28","nodeType":"YulIdentifier","src":"25509:4:28"}]},{"body":{"nativeSrc":"25563:9:28","nodeType":"YulBlock","src":"25563:9:28","statements":[{"nativeSrc":"25565:5:28","nodeType":"YulBreak","src":"25565:5:28"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"25557:4:28","nodeType":"YulIdentifier","src":"25557:4:28"}],"functionName":{"name":"iszero","nativeSrc":"25550:6:28","nodeType":"YulIdentifier","src":"25550:6:28"},"nativeSrc":"25550:12:28","nodeType":"YulFunctionCall","src":"25550:12:28"},"nativeSrc":"25547:25:28","nodeType":"YulIf","src":"25547:25:28"}]},"condition":{"kind":"number","nativeSrc":"25404:1:28","nodeType":"YulLiteral","src":"25404:1:28","type":"","value":"1"},"nativeSrc":"25376:210:28","nodeType":"YulForLoop","post":{"nativeSrc":"25406:2:28","nodeType":"YulBlock","src":"25406:2:28","statements":[]},"pre":{"nativeSrc":"25380:23:28","nodeType":"YulBlock","src":"25380:23:28","statements":[{"nativeSrc":"25382:19:28","nodeType":"YulVariableDeclaration","src":"25382:19:28","value":{"name":"sLength","nativeSrc":"25394:7:28","nodeType":"YulIdentifier","src":"25394:7:28"},"variables":[{"name":"temp","nativeSrc":"25386:4:28","nodeType":"YulTypedName","src":"25386:4:28","type":""}]}]},"src":"25376:210:28"},{"nativeSrc":"25599:21:28","nodeType":"YulVariableDeclaration","src":"25599:21:28","value":{"arguments":[{"kind":"number","nativeSrc":"25612:4:28","nodeType":"YulLiteral","src":"25612:4:28","type":"","value":"0x3a"},{"name":"o","nativeSrc":"25618:1:28","nodeType":"YulIdentifier","src":"25618:1:28"}],"functionName":{"name":"sub","nativeSrc":"25608:3:28","nodeType":"YulIdentifier","src":"25608:3:28"},"nativeSrc":"25608:12:28","nodeType":"YulFunctionCall","src":"25608:12:28"},"variables":[{"name":"n","nativeSrc":"25603:1:28","nodeType":"YulTypedName","src":"25603:1:28","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25776:14:28","nodeType":"YulIdentifier","src":"25776:14:28"},"nativeSrc":"25776:16:28","nodeType":"YulFunctionCall","src":"25776:16:28"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25794:14:28","nodeType":"YulIdentifier","src":"25794:14:28"},"nativeSrc":"25794:16:28","nodeType":"YulFunctionCall","src":"25794:16:28"},{"arguments":[{"name":"n","nativeSrc":"25815:1:28","nodeType":"YulIdentifier","src":"25815:1:28"},{"kind":"number","nativeSrc":"25818:4:28","nodeType":"YulLiteral","src":"25818:4:28","type":"","value":"0x20"}],"functionName":{"name":"gt","nativeSrc":"25812:2:28","nodeType":"YulIdentifier","src":"25812:2:28"},"nativeSrc":"25812:11:28","nodeType":"YulFunctionCall","src":"25812:11:28"}],"functionName":{"name":"returndatacopy","nativeSrc":"25761:14:28","nodeType":"YulIdentifier","src":"25761:14:28"},"nativeSrc":"25761:63:28","nodeType":"YulFunctionCall","src":"25761:63:28"},"nativeSrc":"25761:63:28","nodeType":"YulExpressionStatement","src":"25761:63:28"},{"expression":{"arguments":[{"name":"s","nativeSrc":"25844:1:28","nodeType":"YulIdentifier","src":"25844:1:28"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25856:4:28","nodeType":"YulLiteral","src":"25856:4:28","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"25850:5:28","nodeType":"YulIdentifier","src":"25850:5:28"},"nativeSrc":"25850:11:28","nodeType":"YulFunctionCall","src":"25850:11:28"},{"arguments":[{"name":"n","nativeSrc":"25869:1:28","nodeType":"YulIdentifier","src":"25869:1:28"}],"functionName":{"name":"mload","nativeSrc":"25863:5:28","nodeType":"YulIdentifier","src":"25863:5:28"},"nativeSrc":"25863:8:28","nodeType":"YulFunctionCall","src":"25863:8:28"}],"functionName":{"name":"or","nativeSrc":"25847:2:28","nodeType":"YulIdentifier","src":"25847:2:28"},"nativeSrc":"25847:25:28","nodeType":"YulFunctionCall","src":"25847:25:28"}],"functionName":{"name":"mstore","nativeSrc":"25837:6:28","nodeType":"YulIdentifier","src":"25837:6:28"},"nativeSrc":"25837:36:28","nodeType":"YulFunctionCall","src":"25837:36:28"},"nativeSrc":"25837:36:28","nodeType":"YulExpressionStatement","src":"25837:36:28"},{"nativeSrc":"25919:58:28","nodeType":"YulAssignment","src":"25919:58:28","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"25943:1:28","nodeType":"YulIdentifier","src":"25943:1:28"},{"arguments":[{"kind":"number","nativeSrc":"25950:4:28","nodeType":"YulLiteral","src":"25950:4:28","type":"","value":"0x20"},{"name":"n","nativeSrc":"25956:1:28","nodeType":"YulIdentifier","src":"25956:1:28"}],"functionName":{"name":"sub","nativeSrc":"25946:3:28","nodeType":"YulIdentifier","src":"25946:3:28"},"nativeSrc":"25946:12:28","nodeType":"YulFunctionCall","src":"25946:12:28"}],"functionName":{"name":"add","nativeSrc":"25939:3:28","nodeType":"YulIdentifier","src":"25939:3:28"},"nativeSrc":"25939:20:28","nodeType":"YulFunctionCall","src":"25939:20:28"},{"arguments":[{"name":"n","nativeSrc":"25965:1:28","nodeType":"YulIdentifier","src":"25965:1:28"},{"name":"sLength","nativeSrc":"25968:7:28","nodeType":"YulIdentifier","src":"25968:7:28"}],"functionName":{"name":"add","nativeSrc":"25961:3:28","nodeType":"YulIdentifier","src":"25961:3:28"},"nativeSrc":"25961:15:28","nodeType":"YulFunctionCall","src":"25961:15:28"}],"functionName":{"name":"keccak256","nativeSrc":"25929:9:28","nodeType":"YulIdentifier","src":"25929:9:28"},"nativeSrc":"25929:48:28","nodeType":"YulFunctionCall","src":"25929:48:28"},"variableNames":[{"name":"result","nativeSrc":"25919:6:28","nodeType":"YulIdentifier","src":"25919:6:28"}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"25997:1:28","nodeType":"YulIdentifier","src":"25997:1:28"},{"name":"sLength","nativeSrc":"26000:7:28","nodeType":"YulIdentifier","src":"26000:7:28"}],"functionName":{"name":"mstore","nativeSrc":"25990:6:28","nodeType":"YulIdentifier","src":"25990:6:28"},"nativeSrc":"25990:18:28","nodeType":"YulFunctionCall","src":"25990:18:28"},"nativeSrc":"25990:18:28","nodeType":"YulExpressionStatement","src":"25990:18:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11515,"isOffset":false,"isSlot":false,"src":"25919:6:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25125:1:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25844:1:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25943:1:28","valueSize":1},{"declaration":11512,"isOffset":false,"isSlot":false,"src":"25997:1:28","valueSize":1}],"id":11517,"nodeType":"InlineAssembly","src":"25081:960:28"}]},"documentation":{"id":11510,"nodeType":"StructuredDocumentation","src":"24641:295:28","text":"@dev Returns an Ethereum Signed Message, created from `s`.\n This produces a hash corresponding to the one signed with the\n [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n JSON-RPC method as part of EIP-191.\n Note: Supports lengths of `s` up to 999999 bytes."},"id":11519,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"24950:22:28","nodeType":"FunctionDefinition","parameters":{"id":11513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11512,"mutability":"mutable","name":"s","nameLocation":"24986:1:28","nodeType":"VariableDeclaration","scope":11519,"src":"24973:14:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11511,"name":"bytes","nodeType":"ElementaryTypeName","src":"24973:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"24972:16:28"},"returnParameters":{"id":11516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11515,"mutability":"mutable","name":"result","nameLocation":"25020:6:28","nodeType":"VariableDeclaration","scope":11519,"src":"25012:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25012:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25011:16:28"},"scope":11528,"src":"24941:1106:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11526,"nodeType":"Block","src":"26457:113:28","statements":[{"AST":{"nativeSrc":"26519:45:28","nodeType":"YulBlock","src":"26519:45:28","statements":[{"nativeSrc":"26533:21:28","nodeType":"YulAssignment","src":"26533:21:28","value":{"kind":"number","nativeSrc":"26553:1:28","nodeType":"YulLiteral","src":"26553:1:28","type":"","value":"0"},"variableNames":[{"name":"signature.length","nativeSrc":"26533:16:28","nodeType":"YulIdentifier","src":"26533:16:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11523,"isOffset":false,"isSlot":false,"src":"26533:16:28","suffix":"length","valueSize":1}],"id":11525,"nodeType":"InlineAssembly","src":"26510:54:28"}]},"documentation":{"id":11520,"nodeType":"StructuredDocumentation","src":"26336:41:28","text":"@dev Returns an empty calldata bytes."},"id":11527,"implemented":true,"kind":"function","modifiers":[],"name":"emptySignature","nameLocation":"26391:14:28","nodeType":"FunctionDefinition","parameters":{"id":11521,"nodeType":"ParameterList","parameters":[],"src":"26405:2:28"},"returnParameters":{"id":11524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11523,"mutability":"mutable","name":"signature","nameLocation":"26446:9:28","nodeType":"VariableDeclaration","scope":11527,"src":"26431:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11522,"name":"bytes","nodeType":"ElementaryTypeName","src":"26431:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26430:26:28"},"scope":11528,"src":"26382:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":11529,"src":"1438:25134:28","usedErrors":[],"usedEvents":[]}],"src":"32:26541:28"},"id":28},"contracts/BoostCore.sol":{"ast":{"absolutePath":"contracts/BoostCore.sol","exportedSymbols":{"Action":[12758],"AllowList":[13154],"BoostCore":[12265],"BoostError":[17566],"BoostLib":[17652],"BoostRegistry":[12680],"Budget":[13669],"Cloneable":[17720],"Incentive":[17260],"LibClone":[10092],"LibZip":[11014],"Ownable":[6423],"ReentrancyGuard":[11038],"SafeTransferLib":[11372],"Validator":[18282]},"id":12266,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":11530,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:29"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":11532,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":6424,"src":"62:49:29","symbolAliases":[{"foreign":{"id":11531,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":11534,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":10093,"src":"112:52:29","symbolAliases":[{"foreign":{"id":11533,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"120:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibZip.sol","file":"@solady/utils/LibZip.sol","id":11536,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":11015,"src":"165:48:29","symbolAliases":[{"foreign":{"id":11535,"name":"LibZip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"173:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":11538,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":11039,"src":"214:66:29","symbolAliases":[{"foreign":{"id":11537,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"222:15:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":11540,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":11373,"src":"281:66:29","symbolAliases":[{"foreign":{"id":11539,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"289:15:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":11542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17567,"src":"349:59:29","symbolAliases":[{"foreign":{"id":11541,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"357:10:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostLib.sol","file":"contracts/shared/BoostLib.sol","id":11544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17653,"src":"409:55:29","symbolAliases":[{"foreign":{"id":11543,"name":"BoostLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"417:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/BoostRegistry.sol","file":"contracts/BoostRegistry.sol","id":11546,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":12681,"src":"465:58:29","symbolAliases":[{"foreign":{"id":11545,"name":"BoostRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12680,"src":"473:13:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":11548,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17721,"src":"524:57:29","symbolAliases":[{"foreign":{"id":11547,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"532:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":11550,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":12759,"src":"583:52:29","symbolAliases":[{"foreign":{"id":11549,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"591:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":11552,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":13155,"src":"636:61:29","symbolAliases":[{"foreign":{"id":11551,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"644:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":11554,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":13670,"src":"698:52:29","symbolAliases":[{"foreign":{"id":11553,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"706:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":11556,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":17261,"src":"751:61:29","symbolAliases":[{"foreign":{"id":11555,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"759:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":11558,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12266,"sourceUnit":18283,"src":"813:61:29","symbolAliases":[{"foreign":{"id":11557,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"821:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11560,"name":"Ownable","nameLocations":["1115:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"1115:7:29"},"id":11561,"nodeType":"InheritanceSpecifier","src":"1115:7:29"},{"baseName":{"id":11562,"name":"ReentrancyGuard","nameLocations":["1124:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"1124:15:29"},"id":11563,"nodeType":"InheritanceSpecifier","src":"1124:15:29"}],"canonicalName":"BoostCore","contractDependencies":[],"contractKind":"contract","documentation":{"id":11559,"nodeType":"StructuredDocumentation","src":"876:217:29","text":"@title Boost Core\n @notice The core contract for the Boost protocol\n @dev This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA"},"fullyImplemented":true,"id":12265,"linearizedBaseContracts":[12265,11038,6423],"name":"BoostCore","nameLocation":"1102:9:29","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11566,"libraryName":{"id":11564,"name":"LibClone","nameLocations":["1152:8:29"],"nodeType":"IdentifierPath","referencedDeclaration":10092,"src":"1152:8:29"},"nodeType":"UsingForDirective","src":"1146:27:29","typeName":{"id":11565,"name":"address","nodeType":"ElementaryTypeName","src":"1165:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":11569,"libraryName":{"id":11567,"name":"LibZip","nameLocations":["1184:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":11014,"src":"1184:6:29"},"nodeType":"UsingForDirective","src":"1178:23:29","typeName":{"id":11568,"name":"bytes","nodeType":"ElementaryTypeName","src":"1195:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":11572,"libraryName":{"id":11570,"name":"SafeTransferLib","nameLocations":["1212:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"1212:15:29"},"nodeType":"UsingForDirective","src":"1206:34:29","typeName":{"id":11571,"name":"address","nodeType":"ElementaryTypeName","src":"1232:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"BoostCore.InitPayload","id":11597,"members":[{"constant":false,"id":11575,"mutability":"mutable","name":"budget","nameLocation":"1282:6:29","nodeType":"VariableDeclaration","scope":11597,"src":"1275:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":11574,"nodeType":"UserDefinedTypeName","pathNode":{"id":11573,"name":"Budget","nameLocations":["1275:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"1275:6:29"},"referencedDeclaration":13669,"src":"1275:6:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"},{"constant":false,"id":11578,"mutability":"mutable","name":"action","nameLocation":"1314:6:29","nodeType":"VariableDeclaration","scope":11597,"src":"1298:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11577,"nodeType":"UserDefinedTypeName","pathNode":{"id":11576,"name":"BoostLib.Target","nameLocations":["1298:8:29","1307:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1298:15:29"},"referencedDeclaration":17624,"src":"1298:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11581,"mutability":"mutable","name":"validator","nameLocation":"1346:9:29","nodeType":"VariableDeclaration","scope":11597,"src":"1330:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11580,"nodeType":"UserDefinedTypeName","pathNode":{"id":11579,"name":"BoostLib.Target","nameLocations":["1330:8:29","1339:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1330:15:29"},"referencedDeclaration":17624,"src":"1330:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11584,"mutability":"mutable","name":"allowList","nameLocation":"1381:9:29","nodeType":"VariableDeclaration","scope":11597,"src":"1365:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11583,"nodeType":"UserDefinedTypeName","pathNode":{"id":11582,"name":"BoostLib.Target","nameLocations":["1365:8:29","1374:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1365:15:29"},"referencedDeclaration":17624,"src":"1365:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11588,"mutability":"mutable","name":"incentives","nameLocation":"1418:10:29","nodeType":"VariableDeclaration","scope":11597,"src":"1400:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"},"typeName":{"baseType":{"id":11586,"nodeType":"UserDefinedTypeName","pathNode":{"id":11585,"name":"BoostLib.Target","nameLocations":["1400:8:29","1409:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"1400:15:29"},"referencedDeclaration":17624,"src":"1400:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"id":11587,"nodeType":"ArrayTypeName","src":"1400:17:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"}},"visibility":"internal"},{"constant":false,"id":11590,"mutability":"mutable","name":"protocolFee","nameLocation":"1445:11:29","nodeType":"VariableDeclaration","scope":11597,"src":"1438:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11589,"name":"uint64","nodeType":"ElementaryTypeName","src":"1438:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11592,"mutability":"mutable","name":"referralFee","nameLocation":"1473:11:29","nodeType":"VariableDeclaration","scope":11597,"src":"1466:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11591,"name":"uint64","nodeType":"ElementaryTypeName","src":"1466:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11594,"mutability":"mutable","name":"maxParticipants","nameLocation":"1502:15:29","nodeType":"VariableDeclaration","scope":11597,"src":"1494:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11596,"mutability":"mutable","name":"owner","nameLocation":"1535:5:29","nodeType":"VariableDeclaration","scope":11597,"src":"1527:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11595,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1253:11:29","nodeType":"StructDefinition","scope":12265,"src":"1246:301:29","visibility":"public"},{"constant":false,"documentation":{"id":11598,"nodeType":"StructuredDocumentation","src":"1553:30:29","text":"@notice The list of boosts"},"id":11602,"mutability":"mutable","name":"_boosts","nameLocation":"1613:7:29","nodeType":"VariableDeclaration","scope":12265,"src":"1588:32:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost[]"},"typeName":{"baseType":{"id":11600,"nodeType":"UserDefinedTypeName","pathNode":{"id":11599,"name":"BoostLib.Boost","nameLocations":["1588:8:29","1597:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"1588:14:29"},"referencedDeclaration":17616,"src":"1588:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"id":11601,"nodeType":"ArrayTypeName","src":"1588:16:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Boost[]"}},"visibility":"private"},{"constant":false,"documentation":{"id":11603,"nodeType":"StructuredDocumentation","src":"1627:38:29","text":"@notice The BoostRegistry contract"},"functionSelector":"7b103999","id":11606,"mutability":"mutable","name":"registry","nameLocation":"1691:8:29","nodeType":"VariableDeclaration","scope":12265,"src":"1670:29:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"},"typeName":{"id":11605,"nodeType":"UserDefinedTypeName","pathNode":{"id":11604,"name":"BoostRegistry","nameLocations":["1670:13:29"],"nodeType":"IdentifierPath","referencedDeclaration":12680,"src":"1670:13:29"},"referencedDeclaration":12680,"src":"1670:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"visibility":"public"},{"constant":false,"documentation":{"id":11607,"nodeType":"StructuredDocumentation","src":"1706:37:29","text":"@notice The protocol fee receiver"},"functionSelector":"39a51be5","id":11609,"mutability":"mutable","name":"protocolFeeReceiver","nameLocation":"1763:19:29","nodeType":"VariableDeclaration","scope":12265,"src":"1748:34:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11608,"name":"address","nodeType":"ElementaryTypeName","src":"1748:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":11610,"nodeType":"StructuredDocumentation","src":"1789:34:29","text":"@notice The claim fee (in wei)"},"functionSelector":"99d32fc4","id":11613,"mutability":"mutable","name":"claimFee","nameLocation":"1843:8:29","nodeType":"VariableDeclaration","scope":12265,"src":"1828:40:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1828:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303030303735","id":11612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:14:29","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_75000000000000_by_1","typeString":"int_const 75000000000000"},"value":"0.000075"},"visibility":"public"},{"constant":false,"documentation":{"id":11614,"nodeType":"StructuredDocumentation","src":"1875:42:29","text":"@notice The base protocol fee (in bps)"},"functionSelector":"b0e21e8a","id":11617,"mutability":"mutable","name":"protocolFee","nameLocation":"1936:11:29","nodeType":"VariableDeclaration","scope":12265,"src":"1922:33:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11615,"name":"uint64","nodeType":"ElementaryTypeName","src":"1922:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"315f303030","id":11616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:5:29","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"public"},{"constant":false,"documentation":{"id":11618,"nodeType":"StructuredDocumentation","src":"1969:42:29","text":"@notice The base referral fee (in bps)"},"functionSelector":"84ae2bc6","id":11621,"mutability":"mutable","name":"referralFee","nameLocation":"2030:11:29","nodeType":"VariableDeclaration","scope":12265,"src":"2016:33:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11619,"name":"uint64","nodeType":"ElementaryTypeName","src":"2016:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"315f303030","id":11620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2044:5:29","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"public"},{"constant":true,"documentation":{"id":11622,"nodeType":"StructuredDocumentation","src":"2063:66:29","text":"@notice The fee denominator (basis points, i.e. 10000 == 100%)"},"functionSelector":"d73792a9","id":11625,"mutability":"constant","name":"FEE_DENOMINATOR","nameLocation":"2157:15:29","nodeType":"VariableDeclaration","scope":12265,"src":"2134:47:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11623,"name":"uint64","nodeType":"ElementaryTypeName","src":"2134:6:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31305f303030","id":11624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2175:6:29","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10_000"},"visibility":"public"},{"body":{"id":11647,"nodeType":"Block","src":"2307:127:29","statements":[{"expression":{"arguments":[{"expression":{"id":11635,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2334:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2338:6:29","memberName":"sender","nodeType":"MemberAccess","src":"2334:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11634,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2317:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2317:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11638,"nodeType":"ExpressionStatement","src":"2317:28:29"},{"expression":{"id":11641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11639,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11606,"src":"2355:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11640,"name":"registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11629,"src":"2366:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"src":"2355:20:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"id":11642,"nodeType":"ExpressionStatement","src":"2355:20:29"},{"expression":{"id":11645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11643,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"2385:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11644,"name":"protocolFeeReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11631,"src":"2407:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2385:42:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11646,"nodeType":"ExpressionStatement","src":"2385:42:29"}]},"documentation":{"id":11626,"nodeType":"StructuredDocumentation","src":"2188:47:29","text":"@notice Constructor to initialize the owner"},"id":11648,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11629,"mutability":"mutable","name":"registry_","nameLocation":"2266:9:29","nodeType":"VariableDeclaration","scope":11648,"src":"2252:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"},"typeName":{"id":11628,"nodeType":"UserDefinedTypeName","pathNode":{"id":11627,"name":"BoostRegistry","nameLocations":["2252:13:29"],"nodeType":"IdentifierPath","referencedDeclaration":12680,"src":"2252:13:29"},"referencedDeclaration":12680,"src":"2252:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12680","typeString":"contract BoostRegistry"}},"visibility":"internal"},{"constant":false,"id":11631,"mutability":"mutable","name":"protocolFeeReceiver_","nameLocation":"2285:20:29","nodeType":"VariableDeclaration","scope":11648,"src":"2277:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11630,"name":"address","nodeType":"ElementaryTypeName","src":"2277:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2251:55:29"},"returnParameters":{"id":11633,"nodeType":"ParameterList","parameters":[],"src":"2307:0:29"},"scope":12265,"src":"2240:194:29","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11814,"nodeType":"Block","src":"4073:1161:29","statements":[{"assignments":[11663],"declarations":[{"constant":false,"id":11663,"mutability":"mutable","name":"payload_","nameLocation":"4102:8:29","nodeType":"VariableDeclaration","scope":11814,"src":"4083:27:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload"},"typeName":{"id":11662,"nodeType":"UserDefinedTypeName","pathNode":{"id":11661,"name":"InitPayload","nameLocations":["4083:11:29"],"nodeType":"IdentifierPath","referencedDeclaration":11597,"src":"4083:11:29"},"referencedDeclaration":11597,"src":"4083:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_storage_ptr","typeString":"struct BoostCore.InitPayload"}},"visibility":"internal"}],"id":11672,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11666,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11651,"src":"4124:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":11667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4130:12:29","memberName":"cdDecompress","nodeType":"MemberAccess","referencedDeclaration":11007,"src":"4124:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":11668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4124:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11669,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11597,"src":"4147:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11597_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}}],"id":11670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4146:13:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11597_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11597_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}],"expression":{"id":11664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4113:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4117:6:29","memberName":"decode","nodeType":"MemberAccess","src":"4113:10:29","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4083:77:29"},{"expression":{"arguments":[{"expression":{"id":11674,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4215:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4224:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11575,"src":"4215:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}],"id":11673,"name":"_checkBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11979,"src":"4202:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Budget_$13669_$returns$__$","typeString":"function (contract Budget) view"}},"id":11676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4202:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11677,"nodeType":"ExpressionStatement","src":"4202:29:29"},{"assignments":[11682],"declarations":[{"constant":false,"id":11682,"mutability":"mutable","name":"boost","nameLocation":"4297:5:29","nodeType":"VariableDeclaration","scope":11814,"src":"4274:28:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11681,"nodeType":"UserDefinedTypeName","pathNode":{"id":11680,"name":"BoostLib.Boost","nameLocations":["4274:8:29","4283:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"4274:14:29"},"referencedDeclaration":17616,"src":"4274:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"id":11686,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11683,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"4305:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4313:4:29","memberName":"push","nodeType":"MemberAccess","src":"4305:12:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Boost_$17616_storage_$dyn_storage_ptr_$returns$_t_struct$_Boost_$17616_storage_$attached_to$_t_array$_t_struct$_Boost_$17616_storage_$dyn_storage_ptr_$","typeString":"function (struct BoostLib.Boost storage ref[] storage pointer) returns (struct BoostLib.Boost storage ref)"}},"id":11685,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4305:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage","typeString":"struct BoostLib.Boost storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4274:45:29"},{"expression":{"id":11692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11687,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4329:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4335:5:29","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":17615,"src":"4329:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11690,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4343:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4352:5:29","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":11596,"src":"4343:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4329:28:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11693,"nodeType":"ExpressionStatement","src":"4329:28:29"},{"expression":{"id":11699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11694,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4367:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4373:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":17603,"src":"4367:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11697,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4382:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4391:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11575,"src":"4382:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"src":"4367:30:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"id":11700,"nodeType":"ExpressionStatement","src":"4367:30:29"},{"expression":{"id":11708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11701,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4407:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4413:11:29","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":17609,"src":"4407:17:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11704,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11617,"src":"4427:11:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11705,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4441:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4450:11:29","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":11590,"src":"4441:20:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4427:34:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4407:54:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":11709,"nodeType":"ExpressionStatement","src":"4407:54:29"},{"expression":{"id":11717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11710,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4471:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4477:11:29","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":17611,"src":"4471:17:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11713,"name":"referralFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"4491:11:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11714,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4505:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4514:11:29","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":11592,"src":"4505:20:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4491:34:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4471:54:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":11718,"nodeType":"ExpressionStatement","src":"4471:54:29"},{"expression":{"id":11724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11719,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4535:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4541:15:29","memberName":"maxParticipants","nodeType":"MemberAccess","referencedDeclaration":17613,"src":"4535:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11722,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4559:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4568:15:29","memberName":"maxParticipants","nodeType":"MemberAccess","referencedDeclaration":11594,"src":"4559:24:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4535:48:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11725,"nodeType":"ExpressionStatement","src":"4535:48:29"},{"expression":{"id":11740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11726,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4632:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4638:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"4632:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":11732,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"4671:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}],"id":11731,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4666:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4666:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Action_$12758","typeString":"type(contract Action)"}},"id":11734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4679:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"4666:24:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11735,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4692:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4701:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":11578,"src":"4692:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4709:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11730,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"4654:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4654:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11729,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"4647:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}},"id":11739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4647:68:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"src":"4632:83:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"id":11741,"nodeType":"ExpressionStatement","src":"4632:83:29"},{"expression":{"id":11756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11742,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4725:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4731:9:29","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":17600,"src":"4725:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":11748,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"4770:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}],"id":11747,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4765:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4765:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AllowList_$13154","typeString":"type(contract AllowList)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4781:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"4765:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11751,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4794:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4803:9:29","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":11584,"src":"4794:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4814:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11746,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"4753:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:66:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11745,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"4743:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}},"id":11755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4743:77:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"src":"4725:95:29","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"id":11757,"nodeType":"ExpressionStatement","src":"4725:95:29"},{"expression":{"id":11767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11758,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4830:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4836:10:29","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":17607,"src":"4830:16:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":11762,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4865:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4874:10:29","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":11588,"src":"4865:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},{"expression":{"id":11764,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4886:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:6:29","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11575,"src":"4886:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"},{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}],"id":11761,"name":"_makeIncentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12160,"src":"4849:15:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_$_t_contract$_Budget_$13669_$returns$_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_$","typeString":"function (struct BoostLib.Target memory[] memory,contract Budget) returns (contract Incentive[] memory)"}},"id":11766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4849:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"src":"4830:72:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"id":11768,"nodeType":"ExpressionStatement","src":"4830:72:29"},{"expression":{"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11769,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4912:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4918:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":17597,"src":"4912:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":11773,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4953:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4962:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":11581,"src":"4953:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":11775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4972:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"4953:27:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":11778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4992:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4984:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11776,"name":"address","nodeType":"ElementaryTypeName","src":"4984:7:29","typeDescriptions":{}}},"id":11779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4953:41:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"arguments":[{"id":11801,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"5145:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}],"id":11800,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5140:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5140:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$18282","typeString":"type(contract Validator)"}},"id":11803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5156:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"5140:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11804,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5169:8:29","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11597_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5178:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":11581,"src":"5169:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5189:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11799,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"5128:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5128:66:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4953:241:29","trueExpression":{"condition":{"arguments":[{"expression":{"arguments":[{"id":11785,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"5049:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}],"id":11784,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5044:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$18282","typeString":"type(contract Validator)"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5060:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"5044:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":11781,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5013:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5019:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"5013:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5026:17:29","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":12757,"src":"5013:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":11788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5013:59:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":11796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5107:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5099:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11794,"name":"address","nodeType":"ElementaryTypeName","src":"5099:7:29","typeDescriptions":{}}},"id":11797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5013:96:29","trueExpression":{"arguments":[{"expression":{"id":11791,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5083:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5089:6:29","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"5083:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}],"id":11790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5075:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11789,"name":"address","nodeType":"ElementaryTypeName","src":"5075:7:29","typeDescriptions":{}}},"id":11793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5075:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11772,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"4930:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4930:274:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"src":"4912:292:29","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"id":11811,"nodeType":"ExpressionStatement","src":"4912:292:29"},{"expression":{"id":11812,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5222:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"functionReturnParameters":11660,"id":11813,"nodeType":"Return","src":"5215:12:29"}]},"documentation":{"id":11649,"nodeType":"StructuredDocumentation","src":"2440:1521:29","text":"@notice Create a new Boost\n @param data_ The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\n @dev The data is expected to:\n - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol)\n - properly decode to the following types (in order):\n - `Budget` to be used for the Boost\n - `Target` for the action\n - `Target` for the validator which is expected to be one of the following:\n - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\"SignerValidator\")`), along with the parameters for its initializer;\n - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size);\n - The zero address along with no parameter data if validation is implemented by the action;\n - `Target` for the allowList\n - `Target[]` for the incentives\n - `uint256` for the protocolFee (added to the base protocol fee)\n - `uint256` for the referralFee (added to the base referral fee)\n - `uint256` for the maxParticipants\n - `address` for the owner of the Boost"},"functionSelector":"e21ff731","id":11815,"implemented":true,"kind":"function","modifiers":[{"id":11654,"kind":"modifierInvocation","modifierName":{"id":11653,"name":"onlyOwner","nameLocations":["4018:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4018:9:29"},"nodeType":"ModifierInvocation","src":"4018:9:29"},{"id":11656,"kind":"modifierInvocation","modifierName":{"id":11655,"name":"nonReentrant","nameLocations":["4028:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"4028:12:29"},"nodeType":"ModifierInvocation","src":"4028:12:29"}],"name":"createBoost","nameLocation":"3975:11:29","nodeType":"FunctionDefinition","parameters":{"id":11652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11651,"mutability":"mutable","name":"data_","nameLocation":"4002:5:29","nodeType":"VariableDeclaration","scope":11815,"src":"3987:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11650,"name":"bytes","nodeType":"ElementaryTypeName","src":"3987:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3986:22:29"},"returnParameters":{"id":11660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11815,"src":"4050:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_memory_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11658,"nodeType":"UserDefinedTypeName","pathNode":{"id":11657,"name":"BoostLib.Boost","nameLocations":["4050:8:29","4059:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"4050:14:29"},"referencedDeclaration":17616,"src":"4050:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"src":"4049:23:29"},"scope":12265,"src":"3966:1268:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11897,"nodeType":"Block","src":"5652:574:29","statements":[{"assignments":[11833],"declarations":[{"constant":false,"id":11833,"mutability":"mutable","name":"boost","nameLocation":"5685:5:29","nodeType":"VariableDeclaration","scope":11897,"src":"5662:28:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11832,"nodeType":"UserDefinedTypeName","pathNode":{"id":11831,"name":"BoostLib.Boost","nameLocations":["5662:8:29","5671:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"5662:14:29"},"referencedDeclaration":17616,"src":"5662:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"id":11837,"initialValue":{"baseExpression":{"id":11834,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"5693:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11836,"indexExpression":{"id":11835,"name":"boostId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11818,"src":"5701:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5693:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage","typeString":"struct BoostLib.Boost storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5662:48:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11838,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5724:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5728:5:29","memberName":"value","nodeType":"MemberAccess","src":"5724:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11840,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"5736:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5724:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11854,"nodeType":"IfStatement","src":"5720:94:29","trueBody":{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":11847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5790:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5782:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11845,"name":"address","nodeType":"ElementaryTypeName","src":"5782:7:29","typeDescriptions":{}}},"id":11848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5782:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":11849,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5794:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5798:5:29","memberName":"value","nodeType":"MemberAccess","src":"5794:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11851,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"5805:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11842,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"5753:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5764:17:29","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"5753:28:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":11852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:61:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11853,"nodeType":"RevertStatement","src":"5746:68:29"}},{"expression":{"arguments":[{"id":11856,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11833,"src":"5839:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},{"id":11857,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"5846:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11855,"name":"_routeClaimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"5824:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Boost_$17616_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct BoostLib.Boost storage pointer,address)"}},"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5824:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11859,"nodeType":"ExpressionStatement","src":"5824:32:29"},{"condition":{"id":11865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5959:32:29","subExpression":{"arguments":[{"id":11863,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11824,"src":"5985:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":11860,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11833,"src":"5960:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5966:9:29","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":17597,"src":"5960:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"id":11862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5976:8:29","memberName":"validate","nodeType":"MemberAccess","referencedDeclaration":18258,"src":"5960:24:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":11864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:31:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11871,"nodeType":"IfStatement","src":"5955:70:29","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11866,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"6000:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6011:12:29","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"6000:23:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6000:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11870,"nodeType":"RevertStatement","src":"5993:32:29"}},{"condition":{"id":11887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6052:108:29","subExpression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":11881,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6133:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6137:6:29","memberName":"sender","nodeType":"MemberAccess","src":"6133:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11883,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11824,"src":"6151:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11879,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"6101:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}},"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6111:12:29","memberName":"ClaimPayload","nodeType":"MemberAccess","referencedDeclaration":17186,"src":"6101:22:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}},"id":11884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6125:6:29","6145:4:29"],"names":["target","data"],"nodeType":"FunctionCall","src":"6101:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":11877,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6090:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6094:6:29","memberName":"encode","nodeType":"MemberAccess","src":"6090:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6090:69:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"expression":{"id":11872,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11833,"src":"6053:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6059:10:29","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":17607,"src":"6053:16:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"id":11875,"indexExpression":{"id":11874,"name":"incentiveId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11820,"src":"6070:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6053:30:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6084:5:29","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":17212,"src":"6053:36:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":11886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6053:107:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11896,"nodeType":"IfStatement","src":"6035:184:29","trueBody":{"errorCall":{"arguments":[{"expression":{"id":11891,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6201:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6205:6:29","memberName":"sender","nodeType":"MemberAccess","src":"6201:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11893,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11824,"src":"6213:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11888,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"6178:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6189:11:29","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"6178:22:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":11894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11895,"nodeType":"RevertStatement","src":"6171:48:29"}}]},"documentation":{"id":11816,"nodeType":"StructuredDocumentation","src":"5240:244:29","text":"@notice Claim an incentive for a Boost\n @param boostId_ The ID of the Boost\n @param incentiveId_ The ID of the Incentive\n @param referrer_ The address of the referrer (if any)\n @param data_ The data for the claim"},"functionSelector":"8fe4f523","id":11898,"implemented":true,"kind":"function","modifiers":[{"id":11827,"kind":"modifierInvocation","modifierName":{"id":11826,"name":"nonReentrant","nameLocations":["5635:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"5635:12:29"},"nodeType":"ModifierInvocation","src":"5635:12:29"}],"name":"claimIncentive","nameLocation":"5498:14:29","nodeType":"FunctionDefinition","parameters":{"id":11825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11818,"mutability":"mutable","name":"boostId_","nameLocation":"5521:8:29","nodeType":"VariableDeclaration","scope":11898,"src":"5513:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11817,"name":"uint256","nodeType":"ElementaryTypeName","src":"5513:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11820,"mutability":"mutable","name":"incentiveId_","nameLocation":"5539:12:29","nodeType":"VariableDeclaration","scope":11898,"src":"5531:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11819,"name":"uint256","nodeType":"ElementaryTypeName","src":"5531:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11822,"mutability":"mutable","name":"referrer_","nameLocation":"5561:9:29","nodeType":"VariableDeclaration","scope":11898,"src":"5553:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11821,"name":"address","nodeType":"ElementaryTypeName","src":"5553:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11824,"mutability":"mutable","name":"data_","nameLocation":"5587:5:29","nodeType":"VariableDeclaration","scope":11898,"src":"5572:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11823,"name":"bytes","nodeType":"ElementaryTypeName","src":"5572:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5512:81:29"},"returnParameters":{"id":11828,"nodeType":"ParameterList","parameters":[],"src":"5652:0:29"},"scope":12265,"src":"5489:737:29","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":11911,"nodeType":"Block","src":"6441:38:29","statements":[{"expression":{"baseExpression":{"id":11907,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"6458:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11909,"indexExpression":{"id":11908,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"6466:5:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6458:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage","typeString":"struct BoostLib.Boost storage ref"}},"functionReturnParameters":11906,"id":11910,"nodeType":"Return","src":"6451:21:29"}]},"documentation":{"id":11899,"nodeType":"StructuredDocumentation","src":"6232:125:29","text":"@notice Get a Boost by index\n @param index The index of the Boost\n @return The Boost at the specified index"},"functionSelector":"13c8e2de","id":11912,"implemented":true,"kind":"function","modifiers":[],"name":"getBoost","nameLocation":"6371:8:29","nodeType":"FunctionDefinition","parameters":{"id":11902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11901,"mutability":"mutable","name":"index","nameLocation":"6388:5:29","nodeType":"VariableDeclaration","scope":11912,"src":"6380:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11900,"name":"uint256","nodeType":"ElementaryTypeName","src":"6380:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6379:15:29"},"returnParameters":{"id":11906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11912,"src":"6418:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_memory_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11904,"nodeType":"UserDefinedTypeName","pathNode":{"id":11903,"name":"BoostLib.Boost","nameLocations":["6418:8:29","6427:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"6418:14:29"},"referencedDeclaration":17616,"src":"6418:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"src":"6417:23:29"},"scope":12265,"src":"6362:117:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11921,"nodeType":"Block","src":"6620:38:29","statements":[{"expression":{"expression":{"id":11918,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"6637:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$17616_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6645:6:29","memberName":"length","nodeType":"MemberAccess","src":"6637:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11917,"id":11920,"nodeType":"Return","src":"6630:21:29"}]},"documentation":{"id":11913,"nodeType":"StructuredDocumentation","src":"6485:73:29","text":"@notice Get the number of Boosts\n @return The number of Boosts"},"functionSelector":"5edb9eb0","id":11922,"implemented":true,"kind":"function","modifiers":[],"name":"getBoostCount","nameLocation":"6572:13:29","nodeType":"FunctionDefinition","parameters":{"id":11914,"nodeType":"ParameterList","parameters":[],"src":"6585:2:29"},"returnParameters":{"id":11917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11922,"src":"6611:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11915,"name":"uint256","nodeType":"ElementaryTypeName","src":"6611:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6610:9:29"},"scope":12265,"src":"6563:95:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11934,"nodeType":"Block","src":"6930:59:29","statements":[{"expression":{"id":11932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11930,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"6940:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11931,"name":"protocolFeeReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"6962:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6940:42:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11933,"nodeType":"ExpressionStatement","src":"6940:42:29"}]},"documentation":{"id":11923,"nodeType":"StructuredDocumentation","src":"6664:180:29","text":"@notice Set the protocol fee receiver address\n @param protocolFeeReceiver_ The new protocol fee receiver address\n @dev This function is only callable by the owner"},"functionSelector":"46877b1a","id":11935,"implemented":true,"kind":"function","modifiers":[{"id":11928,"kind":"modifierInvocation","modifierName":{"id":11927,"name":"onlyOwner","nameLocations":["6920:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"6920:9:29"},"nodeType":"ModifierInvocation","src":"6920:9:29"}],"name":"setProtocolFeeReceiver","nameLocation":"6858:22:29","nodeType":"FunctionDefinition","parameters":{"id":11926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11925,"mutability":"mutable","name":"protocolFeeReceiver_","nameLocation":"6889:20:29","nodeType":"VariableDeclaration","scope":11935,"src":"6881:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11924,"name":"address","nodeType":"ElementaryTypeName","src":"6881:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6880:30:29"},"returnParameters":{"id":11929,"nodeType":"ParameterList","parameters":[],"src":"6930:0:29"},"scope":12265,"src":"6849:140:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11947,"nodeType":"Block","src":"7197:37:29","statements":[{"expression":{"id":11945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11943,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"7207:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11944,"name":"claimFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"7218:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7207:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11946,"nodeType":"ExpressionStatement","src":"7207:20:29"}]},"documentation":{"id":11936,"nodeType":"StructuredDocumentation","src":"6995:138:29","text":"@notice Set the claim fee\n @param claimFee_ The new claim fee (in wei)\n @dev This function is only callable by the owner"},"functionSelector":"2e75ab50","id":11948,"implemented":true,"kind":"function","modifiers":[{"id":11941,"kind":"modifierInvocation","modifierName":{"id":11940,"name":"onlyOwner","nameLocations":["7187:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7187:9:29"},"nodeType":"ModifierInvocation","src":"7187:9:29"}],"name":"setClaimFee","nameLocation":"7147:11:29","nodeType":"FunctionDefinition","parameters":{"id":11939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11938,"mutability":"mutable","name":"claimFee_","nameLocation":"7167:9:29","nodeType":"VariableDeclaration","scope":11948,"src":"7159:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11937,"name":"uint256","nodeType":"ElementaryTypeName","src":"7159:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7158:19:29"},"returnParameters":{"id":11942,"nodeType":"ParameterList","parameters":[],"src":"7197:0:29"},"scope":12265,"src":"7138:96:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11978,"nodeType":"Block","src":"7529:154:29","statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":11957,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"7557:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}],"id":11956,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7552:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7552:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Budget_$13669","typeString":"type(contract Budget)"}},"id":11959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7565:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"7552:24:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":11962,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11952,"src":"7586:7:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}],"id":11961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7578:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11960,"name":"address","nodeType":"ElementaryTypeName","src":"7578:7:29","typeDescriptions":{}}},"id":11963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7578:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11955,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"7539:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":11964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7539:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11965,"nodeType":"ExpressionStatement","src":"7539:56:29"},{"condition":{"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7609:33:29","subExpression":{"arguments":[{"expression":{"id":11968,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7631:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7635:6:29","memberName":"sender","nodeType":"MemberAccess","src":"7631:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11966,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11952,"src":"7610:7:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"id":11967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7618:12:29","memberName":"isAuthorized","nodeType":"MemberAccess","referencedDeclaration":13654,"src":"7610:20:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":11970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7610:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11977,"nodeType":"IfStatement","src":"7605:71:29","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11972,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"7651:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7662:12:29","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"7651:23:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7651:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11976,"nodeType":"RevertStatement","src":"7644:32:29"}}]},"documentation":{"id":11949,"nodeType":"StructuredDocumentation","src":"7240:232:29","text":"@notice Check that the provided Budget is valid and that the caller is authorized to use it\n @param budget_ The Budget to check\n @dev This function will revert if the Budget is invalid or the caller is unauthorized"},"id":11979,"implemented":true,"kind":"function","modifiers":[],"name":"_checkBudget","nameLocation":"7486:12:29","nodeType":"FunctionDefinition","parameters":{"id":11953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11952,"mutability":"mutable","name":"budget_","nameLocation":"7506:7:29","nodeType":"VariableDeclaration","scope":11979,"src":"7499:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":11951,"nodeType":"UserDefinedTypeName","pathNode":{"id":11950,"name":"Budget","nameLocations":["7499:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"7499:6:29"},"referencedDeclaration":13669,"src":"7499:6:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"}],"src":"7498:16:29"},"returnParameters":{"id":11954,"nodeType":"ParameterList","parameters":[],"src":"7529:0:29"},"scope":12265,"src":"7477:206:29","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12010,"nodeType":"Block","src":"8128:180:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11987,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"8142:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":11990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8162:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8154:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11988,"name":"address","nodeType":"ElementaryTypeName","src":"8154:7:29","typeDescriptions":{}}},"id":11991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8154:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8142:22:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":11999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8168:51:29","subExpression":{"arguments":[{"id":11997,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11982,"src":"8207:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":11994,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"8179:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11993,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"8169:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":11995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8169:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8189:17:29","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"8169:37:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":11998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8169:50:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8142:77:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12009,"nodeType":"IfStatement","src":"8138:164:29","trueBody":{"id":12008,"nodeType":"Block","src":"8221:81:29","statements":[{"errorCall":{"arguments":[{"id":12004,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11982,"src":"8269:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12005,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"8282:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12001,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"8242:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":12003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8253:15:29","memberName":"InvalidInstance","nodeType":"MemberAccess","referencedDeclaration":17535,"src":"8242:26:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) pure"}},"id":12006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8242:49:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12007,"nodeType":"RevertStatement","src":"8235:56:29"}]}}]},"documentation":{"id":11980,"nodeType":"StructuredDocumentation","src":"7689:360:29","text":"@notice Check that the provided Target is valid for the specified interface\n @param interfaceId The interface ID for the target\n @param instance The instance to check\n @dev This function will revert if the Target does not implement the expected interface\n @dev This check costs ~376 gas, which is worth it to validate the target"},"id":12011,"implemented":true,"kind":"function","modifiers":[],"name":"_checkTarget","nameLocation":"8063:12:29","nodeType":"FunctionDefinition","parameters":{"id":11985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11982,"mutability":"mutable","name":"interfaceId","nameLocation":"8083:11:29","nodeType":"VariableDeclaration","scope":12011,"src":"8076:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11981,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8076:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":11984,"mutability":"mutable","name":"instance","nameLocation":"8104:8:29","nodeType":"VariableDeclaration","scope":12011,"src":"8096:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11983,"name":"address","nodeType":"ElementaryTypeName","src":"8096:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8075:38:29"},"returnParameters":{"id":11986,"nodeType":"ParameterList","parameters":[],"src":"8128:0:29"},"scope":12265,"src":"8054:254:29","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12037,"nodeType":"Block","src":"8849:117:29","statements":[{"expression":{"arguments":[{"id":12025,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12014,"src":"8872:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":12026,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"8885:6:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8892:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"8885:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12024,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"8859:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":12028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8859:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12029,"nodeType":"ExpressionStatement","src":"8859:42:29"},{"expression":{"id":12035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12030,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"8911:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12032,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"8934:6:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"id":12033,"name":"shouldInitialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12019,"src":"8942:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12031,"name":"_maybeClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"8922:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (struct BoostLib.Target memory,bool) returns (address)"}},"id":12034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8922:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8911:48:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12036,"nodeType":"ExpressionStatement","src":"8911:48:29"}]},"documentation":{"id":12012,"nodeType":"StructuredDocumentation","src":"8314:379:29","text":"@notice Create a target instance and optionally initialize it\n @param interfaceId The interface ID for the target\n @param target The target to create\n @param shouldInitialize Whether or not to initialize the target\n @return instance The target instance\n @dev This function will revert if the target does not implement the expected interface"},"id":12038,"implemented":true,"kind":"function","modifiers":[],"name":"_makeTarget","nameLocation":"8707:11:29","nodeType":"FunctionDefinition","parameters":{"id":12020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12014,"mutability":"mutable","name":"interfaceId","nameLocation":"8726:11:29","nodeType":"VariableDeclaration","scope":12038,"src":"8719:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12013,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8719:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12017,"mutability":"mutable","name":"target","nameLocation":"8762:6:29","nodeType":"VariableDeclaration","scope":12038,"src":"8739:29:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":12016,"nodeType":"UserDefinedTypeName","pathNode":{"id":12015,"name":"BoostLib.Target","nameLocations":["8739:8:29","8748:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"8739:15:29"},"referencedDeclaration":17624,"src":"8739:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":12019,"mutability":"mutable","name":"shouldInitialize","nameLocation":"8775:16:29","nodeType":"VariableDeclaration","scope":12038,"src":"8770:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12018,"name":"bool","nodeType":"ElementaryTypeName","src":"8770:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8718:74:29"},"returnParameters":{"id":12023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12022,"mutability":"mutable","name":"instance","nameLocation":"8835:8:29","nodeType":"VariableDeclaration","scope":12038,"src":"8827:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12021,"name":"address","nodeType":"ElementaryTypeName","src":"8827:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8826:18:29"},"scope":12265,"src":"8698:268:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12159,"nodeType":"Block","src":"9413:1088:29","statements":[{"expression":{"id":12061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12053,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"9423:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":12058,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9452:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9461:6:29","memberName":"length","nodeType":"MemberAccess","src":"9452:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9436:15:29","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (contract Incentive[] memory)"},"typeName":{"baseType":{"id":12055,"nodeType":"UserDefinedTypeName","pathNode":{"id":12054,"name":"Incentive","nameLocations":["9440:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"9440:9:29"},"referencedDeclaration":17260,"src":"9440:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12056,"nodeType":"ArrayTypeName","src":"9440:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"}}},"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9436:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"src":"9423:45:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12062,"nodeType":"ExpressionStatement","src":"9423:45:29"},{"body":{"id":12157,"nodeType":"Block","src":"9524:971:29","statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":12076,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9637:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":12075,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9632:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9632:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":12078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9648:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"9632:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"baseExpression":{"id":12079,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9661:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12081,"indexExpression":{"id":12080,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9670:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9661:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9673:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"9661:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12074,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"9619:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":12083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9619:63:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12084,"nodeType":"ExpressionStatement","src":"9619:63:29"},{"condition":{"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9795:19:29","subExpression":{"expression":{"baseExpression":{"id":12085,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9796:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12087,"indexExpression":{"id":12086,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9805:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9796:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9808:6:29","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":17619,"src":"9796:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12104,"nodeType":"IfStatement","src":"9791:142:29","trueBody":{"id":12103,"nodeType":"Block","src":"9816:117:29","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":12094,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9873:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":12093,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9868:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9868:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":12096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9884:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"9868:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"baseExpression":{"id":12097,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9897:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12099,"indexExpression":{"id":12098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9906:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9897:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9909:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"9897:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12090,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"9841:10:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9852:15:29","memberName":"InvalidInstance","nodeType":"MemberAccess","referencedDeclaration":17535,"src":"9841:26:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) pure"}},"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9841:77:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12102,"nodeType":"RevertStatement","src":"9834:84:29"}]}},{"expression":{"id":12120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12105,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"9947:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12107,"indexExpression":{"id":12106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9958:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9947:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":12111,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9990:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":12110,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9985:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9985:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":12113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10001:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"9985:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"baseExpression":{"id":12114,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"10014:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12116,"indexExpression":{"id":12115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10023:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10014:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"66616c7365","id":12117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10027:5:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12109,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12038,"src":"9973:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$17624_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":12118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9973:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12108,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"9963:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}},"id":12119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9963:71:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"src":"9947:87:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12121,"nodeType":"ExpressionStatement","src":"9947:87:29"},{"assignments":[12123],"declarations":[{"constant":false,"id":12123,"mutability":"mutable","name":"preflight","nameLocation":"10062:9:29","nodeType":"VariableDeclaration","scope":12157,"src":"10049:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12122,"name":"bytes","nodeType":"ElementaryTypeName","src":"10049:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12133,"initialValue":{"arguments":[{"expression":{"baseExpression":{"id":12128,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"10098:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12130,"indexExpression":{"id":12129,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10107:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10098:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10110:10:29","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"10098:22:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"id":12124,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"10074:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12126,"indexExpression":{"id":12125,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10085:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10074:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10088:9:29","memberName":"preflight","nodeType":"MemberAccess","referencedDeclaration":17236,"src":"10074:23:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view external returns (bytes memory)"}},"id":12132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10074:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10049:72:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12134,"name":"preflight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12123,"src":"10139:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10149:6:29","memberName":"length","nodeType":"MemberAccess","src":"10139:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10159:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10139:21:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12146,"nodeType":"IfStatement","src":"10135:193:29","trueBody":{"id":12145,"nodeType":"Block","src":"10162:166:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":12141,"name":"preflight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12123,"src":"10302:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12139,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"10285:7:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"id":12140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10293:8:29","memberName":"disburse","nodeType":"MemberAccess","referencedDeclaration":13572,"src":"10285:16:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10285:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12138,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"10278:6:29","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10278:35:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"10278:35:29"}]}},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":12151,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"10461:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12153,"indexExpression":{"id":12152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10470:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10461:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10473:10:29","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"10461:22:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"id":12147,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"10436:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12149,"indexExpression":{"id":12148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"10447:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10436:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10450:10:29","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17697,"src":"10436:24:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":12155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10436:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12156,"nodeType":"ExpressionStatement","src":"10436:48:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9498:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12068,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9502:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9511:6:29","memberName":"length","nodeType":"MemberAccess","src":"9502:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9498:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12158,"initializationExpression":{"assignments":[12064],"declarations":[{"constant":false,"id":12064,"mutability":"mutable","name":"i","nameLocation":"9491:1:29","nodeType":"VariableDeclaration","scope":12158,"src":"9483:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9483:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12066,"initialValue":{"hexValue":"30","id":12065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9495:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9483:13:29"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9519:3:29","subExpression":{"id":12071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"9519:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12073,"nodeType":"ExpressionStatement","src":"9519:3:29"},"nodeType":"ForStatement","src":"9478:1017:29"}]},"documentation":{"id":12039,"nodeType":"StructuredDocumentation","src":"8972:291:29","text":"@notice Configure a set of incentives for a Boost using the given Budget\n @param targets_ The set of incentives {Target[]}\n @param budget_ The Budget from which to allocate the incentives\n @return incentives The set of initialized incentives {Incentive[]}"},"id":12160,"implemented":true,"kind":"function","modifiers":[],"name":"_makeIncentives","nameLocation":"9277:15:29","nodeType":"FunctionDefinition","parameters":{"id":12047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12043,"mutability":"mutable","name":"targets_","nameLocation":"9318:8:29","nodeType":"VariableDeclaration","scope":12160,"src":"9293:33:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target[]"},"typeName":{"baseType":{"id":12041,"nodeType":"UserDefinedTypeName","pathNode":{"id":12040,"name":"BoostLib.Target","nameLocations":["9293:8:29","9302:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"9293:15:29"},"referencedDeclaration":17624,"src":"9293:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"id":12042,"nodeType":"ArrayTypeName","src":"9293:17:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$17624_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"}},"visibility":"internal"},{"constant":false,"id":12046,"mutability":"mutable","name":"budget_","nameLocation":"9335:7:29","nodeType":"VariableDeclaration","scope":12160,"src":"9328:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"Budget","nameLocations":["9328:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"9328:6:29"},"referencedDeclaration":13669,"src":"9328:6:29","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"}],"src":"9292:51:29"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12051,"mutability":"mutable","name":"incentives","nameLocation":"9397:10:29","nodeType":"VariableDeclaration","scope":12160,"src":"9378:29:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","typeString":"contract Incentive[]"},"typeName":{"baseType":{"id":12049,"nodeType":"UserDefinedTypeName","pathNode":{"id":12048,"name":"Incentive","nameLocations":["9378:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"9378:9:29"},"referencedDeclaration":17260,"src":"9378:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":12050,"nodeType":"ArrayTypeName","src":"9378:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"}},"visibility":"internal"}],"src":"9377:31:29"},"scope":12265,"src":"9268:1233:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12197,"nodeType":"Block","src":"10724:307:29","statements":[{"expression":{"id":12181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12171,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12169,"src":"10734:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"expression":{"id":12172,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10745:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10753:6:29","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":17619,"src":"10745:14:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":12178,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10789:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10797:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"10789:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10745:60:29","trueExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12174,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10762:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10770:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":17621,"src":"10762:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10779:5:29","memberName":"clone","nodeType":"MemberAccess","referencedDeclaration":9265,"src":"10762:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) returns (address)"}},"id":12177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10762:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10734:71:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12182,"nodeType":"ExpressionStatement","src":"10734:71:29"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12183,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10819:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10827:6:29","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":17619,"src":"10819:14:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":12185,"name":"shouldInitialize_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12166,"src":"10837:17:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10819:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12196,"nodeType":"IfStatement","src":"10815:210:29","trueBody":{"id":12195,"nodeType":"Block","src":"10856:169:29","statements":[{"expression":{"arguments":[{"expression":{"id":12191,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"10995:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11003:10:29","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"10995:18:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":12188,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12169,"src":"10974:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12187,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"10964:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10964:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10984:10:29","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17697,"src":"10964:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":12193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10964:50:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12194,"nodeType":"ExpressionStatement","src":"10964:50:29"}]}}]},"documentation":{"id":12161,"nodeType":"StructuredDocumentation","src":"10507:99:29","text":"@notice Get the target instance, optionally cloning and initializing from a base implementation"},"id":12198,"implemented":true,"kind":"function","modifiers":[],"name":"_maybeClone","nameLocation":"10620:11:29","nodeType":"FunctionDefinition","parameters":{"id":12167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12164,"mutability":"mutable","name":"target_","nameLocation":"10655:7:29","nodeType":"VariableDeclaration","scope":12198,"src":"10632:30:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_memory_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":12163,"nodeType":"UserDefinedTypeName","pathNode":{"id":12162,"name":"BoostLib.Target","nameLocations":["10632:8:29","10641:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":17624,"src":"10632:15:29"},"referencedDeclaration":17624,"src":"10632:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$17624_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":12166,"mutability":"mutable","name":"shouldInitialize_","nameLocation":"10669:17:29","nodeType":"VariableDeclaration","scope":12198,"src":"10664:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12165,"name":"bool","nodeType":"ElementaryTypeName","src":"10664:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10631:56:29"},"returnParameters":{"id":12170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12169,"mutability":"mutable","name":"instance","nameLocation":"10714:8:29","nodeType":"VariableDeclaration","scope":12198,"src":"10706:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12168,"name":"address","nodeType":"ElementaryTypeName","src":"10706:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10705:18:29"},"scope":12265,"src":"10611:420:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12263,"nodeType":"Block","src":"11333:576:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12207,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11347:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11359:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11347:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12211,"nodeType":"IfStatement","src":"11343:26:29","trueBody":{"functionReturnParameters":12206,"id":12210,"nodeType":"Return","src":"11362:7:29"}},{"assignments":[12213],"declarations":[{"constant":false,"id":12213,"mutability":"mutable","name":"netFee","nameLocation":"11386:6:29","nodeType":"VariableDeclaration","scope":12263,"src":"11378:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12212,"name":"uint256","nodeType":"ElementaryTypeName","src":"11378:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12215,"initialValue":{"id":12214,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11395:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11378:25:29"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12216,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"11501:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11522:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11514:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12217,"name":"address","nodeType":"ElementaryTypeName","src":"11514:7:29","typeDescriptions":{}}},"id":12220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11514:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11501:23:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12242,"nodeType":"IfStatement","src":"11497:215:29","trueBody":{"id":12241,"nodeType":"Block","src":"11526:186:29","statements":[{"assignments":[12223],"declarations":[{"constant":false,"id":12223,"mutability":"mutable","name":"referralShare","nameLocation":"11548:13:29","nodeType":"VariableDeclaration","scope":12241,"src":"11540:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12222,"name":"uint256","nodeType":"ElementaryTypeName","src":"11540:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12230,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12224,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11564:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":12225,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12202,"src":"11575:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":12226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11581:11:29","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":17611,"src":"11575:17:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11564:28:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12228,"name":"FEE_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11625,"src":"11595:15:29","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11564:46:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11540:70:29"},{"expression":{"id":12233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12231,"name":"netFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12213,"src":"11624:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12232,"name":"referralShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"11634:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11624:23:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12234,"nodeType":"ExpressionStatement","src":"11624:23:29"},{"expression":{"arguments":[{"id":12238,"name":"referralShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"11687:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12235,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"11661:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11671:15:29","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"11661:25:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11661:40:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12240,"nodeType":"ExpressionStatement","src":"11661:40:29"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12248,"name":"netFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12213,"src":"11823:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":12249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11832:1:29","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11823:10:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12243,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12202,"src":"11795:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":12246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11801:5:29","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":17615,"src":"11795:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11807:15:29","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"11795:27:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11795:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12252,"nodeType":"ExpressionStatement","src":"11795:39:29"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":12258,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11888:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_BoostCore_$12265","typeString":"contract BoostCore"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BoostCore_$12265","typeString":"contract BoostCore"}],"id":12257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11880:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12256,"name":"address","nodeType":"ElementaryTypeName","src":"11880:7:29","typeDescriptions":{}}},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11880:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11894:7:29","memberName":"balance","nodeType":"MemberAccess","src":"11880:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12253,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"11844:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11864:15:29","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"11844:35:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11844:58:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12262,"nodeType":"ExpressionStatement","src":"11844:58:29"}]},"documentation":{"id":12199,"nodeType":"StructuredDocumentation","src":"11037:209:29","text":"@notice Route the claim fee to the creator, referrer, and protocol fee receiver\n @param boost The Boost for which to route the claim fee\n @param referrer_ The address of the referrer (if any)"},"id":12264,"implemented":true,"kind":"function","modifiers":[],"name":"_routeClaimFee","nameLocation":"11260:14:29","nodeType":"FunctionDefinition","parameters":{"id":12205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12202,"mutability":"mutable","name":"boost","nameLocation":"11298:5:29","nodeType":"VariableDeclaration","scope":12264,"src":"11275:28:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":12201,"nodeType":"UserDefinedTypeName","pathNode":{"id":12200,"name":"BoostLib.Boost","nameLocations":["11275:8:29","11284:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":17616,"src":"11275:14:29"},"referencedDeclaration":17616,"src":"11275:14:29","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$17616_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"},{"constant":false,"id":12204,"mutability":"mutable","name":"referrer_","nameLocation":"11313:9:29","nodeType":"VariableDeclaration","scope":12264,"src":"11305:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12203,"name":"address","nodeType":"ElementaryTypeName","src":"11305:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11274:49:29"},"returnParameters":{"id":12206,"nodeType":"ParameterList","parameters":[],"src":"11333:0:29"},"scope":12265,"src":"11251:658:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":12266,"src":"1093:10818:29","usedErrors":[6235,6238,6241,6244,11020,17519,17528,17535,17565],"usedEvents":[6251,6256,6261]}],"src":"36:11876:29"},"id":29},"contracts/BoostRegistry.sol":{"ast":{"absolutePath":"contracts/BoostRegistry.sol","exportedSymbols":{"AllowList":[13154],"BoostLib":[17652],"BoostRegistry":[12680],"Cloneable":[17720],"ERC165":[2845],"LibClone":[10092],"ReentrancyGuard":[11038]},"id":12681,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12267,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:30"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":12269,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":2846,"src":"62:78:30","symbolAliases":[{"foreign":{"id":12268,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"70:6:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":12271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":10093,"src":"141:52:30","symbolAliases":[{"foreign":{"id":12270,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"149:8:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":12273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":11039,"src":"194:66:30","symbolAliases":[{"foreign":{"id":12272,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"202:15:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostLib.sol","file":"contracts/shared/BoostLib.sol","id":12275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":17653,"src":"262:55:30","symbolAliases":[{"foreign":{"id":12274,"name":"BoostLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"270:8:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12277,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":17721,"src":"318:57:30","symbolAliases":[{"foreign":{"id":12276,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"326:9:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":12279,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12681,"sourceUnit":13155,"src":"376:61:30","symbolAliases":[{"foreign":{"id":12278,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"384:9:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12281,"name":"ERC165","nameLocations":["708:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"708:6:30"},"id":12282,"nodeType":"InheritanceSpecifier","src":"708:6:30"},{"baseName":{"id":12283,"name":"ReentrancyGuard","nameLocations":["716:15:30"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"716:15:30"},"id":12284,"nodeType":"InheritanceSpecifier","src":"716:15:30"}],"canonicalName":"BoostRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":12280,"nodeType":"StructuredDocumentation","src":"439:243:30","text":"@title Boost Registry\n @notice A registry for base implementations and cloned instances\n @dev This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol"},"fullyImplemented":true,"id":12680,"linearizedBaseContracts":[12680,11038,2845,2857],"name":"BoostRegistry","nameLocation":"691:13:30","nodeType":"ContractDefinition","nodes":[{"global":false,"id":12287,"libraryName":{"id":12285,"name":"BoostLib","nameLocations":["744:8:30"],"nodeType":"IdentifierPath","referencedDeclaration":17652,"src":"744:8:30"},"nodeType":"UsingForDirective","src":"738:27:30","typeName":{"id":12286,"name":"address","nodeType":"ElementaryTypeName","src":"757:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"BoostRegistry.RegistryType","documentation":{"id":12288,"nodeType":"StructuredDocumentation","src":"771:53:30","text":"@notice The types of bases that can be registered"},"id":12294,"members":[{"id":12289,"name":"ACTION","nameLocation":"857:6:30","nodeType":"EnumValue","src":"857:6:30"},{"id":12290,"name":"ALLOW_LIST","nameLocation":"873:10:30","nodeType":"EnumValue","src":"873:10:30"},{"id":12291,"name":"BUDGET","nameLocation":"893:6:30","nodeType":"EnumValue","src":"893:6:30"},{"id":12292,"name":"INCENTIVE","nameLocation":"909:9:30","nodeType":"EnumValue","src":"909:9:30"},{"id":12293,"name":"VALIDATOR","nameLocation":"928:9:30","nodeType":"EnumValue","src":"928:9:30"}],"name":"RegistryType","nameLocation":"834:12:30","nodeType":"EnumDefinition","src":"829:114:30"},{"canonicalName":"BoostRegistry.Clone","documentation":{"id":12295,"nodeType":"StructuredDocumentation","src":"949:259:30","text":"@notice The data structure for a deployed clone\n @param baseType The type of base implementation\n @param name The display name for the clone\n @param instance The address of the clone\n @param deployer The address of the deployer"},"id":12306,"members":[{"constant":false,"id":12298,"mutability":"mutable","name":"baseType","nameLocation":"1249:8:30","nodeType":"VariableDeclaration","scope":12306,"src":"1236:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12297,"nodeType":"UserDefinedTypeName","pathNode":{"id":12296,"name":"RegistryType","nameLocations":["1236:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1236:12:30"},"referencedDeclaration":12294,"src":"1236:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12301,"mutability":"mutable","name":"instance","nameLocation":"1277:8:30","nodeType":"VariableDeclaration","scope":12306,"src":"1267:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12300,"nodeType":"UserDefinedTypeName","pathNode":{"id":12299,"name":"Cloneable","nameLocations":["1267:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1267:9:30"},"referencedDeclaration":17720,"src":"1267:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"},{"constant":false,"id":12303,"mutability":"mutable","name":"deployer","nameLocation":"1303:8:30","nodeType":"VariableDeclaration","scope":12306,"src":"1295:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12302,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12305,"mutability":"mutable","name":"name","nameLocation":"1328:4:30","nodeType":"VariableDeclaration","scope":12306,"src":"1321:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12304,"name":"string","nodeType":"ElementaryTypeName","src":"1321:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Clone","nameLocation":"1220:5:30","nodeType":"StructDefinition","scope":12680,"src":"1213:126:30","visibility":"public"},{"anonymous":false,"documentation":{"id":12307,"nodeType":"StructuredDocumentation","src":"1345:64:30","text":"@notice Emitted when a new base implementation is registered"},"eventSelector":"660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd80","id":12316,"name":"Registered","nameLocation":"1420:10:30","nodeType":"EventDefinition","parameters":{"id":12315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12310,"indexed":true,"mutability":"mutable","name":"registryType","nameLocation":"1452:12:30","nodeType":"VariableDeclaration","scope":12316,"src":"1431:33:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12309,"nodeType":"UserDefinedTypeName","pathNode":{"id":12308,"name":"RegistryType","nameLocations":["1431:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1431:12:30"},"referencedDeclaration":12294,"src":"1431:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12312,"indexed":true,"mutability":"mutable","name":"identifier","nameLocation":"1482:10:30","nodeType":"VariableDeclaration","scope":12316,"src":"1466:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1466:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12314,"indexed":false,"mutability":"mutable","name":"implementation","nameLocation":"1502:14:30","nodeType":"VariableDeclaration","scope":12316,"src":"1494:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12313,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1430:87:30"},"src":"1414:104:30"},{"anonymous":false,"documentation":{"id":12317,"nodeType":"StructuredDocumentation","src":"1524:76:30","text":"@notice Emitted when a new instance of a base implementation is deployed"},"eventSelector":"2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a","id":12329,"name":"Deployed","nameLocation":"1611:8:30","nodeType":"EventDefinition","parameters":{"id":12328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12320,"indexed":true,"mutability":"mutable","name":"registryType","nameLocation":"1650:12:30","nodeType":"VariableDeclaration","scope":12329,"src":"1629:33:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12319,"nodeType":"UserDefinedTypeName","pathNode":{"id":12318,"name":"RegistryType","nameLocations":["1629:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1629:12:30"},"referencedDeclaration":12294,"src":"1629:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12322,"indexed":true,"mutability":"mutable","name":"identifier","nameLocation":"1688:10:30","nodeType":"VariableDeclaration","scope":12329,"src":"1672:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1672:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12324,"indexed":false,"mutability":"mutable","name":"baseImplementation","nameLocation":"1716:18:30","nodeType":"VariableDeclaration","scope":12329,"src":"1708:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12323,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12327,"indexed":false,"mutability":"mutable","name":"deployedInstance","nameLocation":"1754:16:30","nodeType":"VariableDeclaration","scope":12329,"src":"1744:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12326,"nodeType":"UserDefinedTypeName","pathNode":{"id":12325,"name":"Cloneable","nameLocations":["1744:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1744:9:30"},"referencedDeclaration":17720,"src":"1744:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"1619:157:30"},"src":"1605:172:30"},{"documentation":{"id":12330,"nodeType":"StructuredDocumentation","src":"1783:67:30","text":"@notice Thrown when a base implementation is already registered"},"errorSelector":"96b5684c","id":12337,"name":"AlreadyRegistered","nameLocation":"1861:17:30","nodeType":"ErrorDefinition","parameters":{"id":12336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12333,"mutability":"mutable","name":"registryType","nameLocation":"1892:12:30","nodeType":"VariableDeclaration","scope":12337,"src":"1879:25:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12332,"nodeType":"UserDefinedTypeName","pathNode":{"id":12331,"name":"RegistryType","nameLocations":["1879:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"1879:12:30"},"referencedDeclaration":12294,"src":"1879:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12335,"mutability":"mutable","name":"identifier","nameLocation":"1914:10:30","nodeType":"VariableDeclaration","scope":12337,"src":"1906:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1906:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1878:47:30"},"src":"1855:71:30"},{"documentation":{"id":12338,"nodeType":"StructuredDocumentation","src":"1932:66:30","text":"@notice Thrown when no match is found for the given identifier"},"errorSelector":"8cc00d16","id":12342,"name":"NotRegistered","nameLocation":"2009:13:30","nodeType":"ErrorDefinition","parameters":{"id":12341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"mutability":"mutable","name":"identifier","nameLocation":"2031:10:30","nodeType":"VariableDeclaration","scope":12342,"src":"2023:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2022:20:30"},"src":"2003:40:30"},{"documentation":{"id":12343,"nodeType":"StructuredDocumentation","src":"2049:74:30","text":"@notice Thrown when the implementation is not a valid {Cloneable} base"},"errorSelector":"d3dd3012","id":12347,"name":"NotCloneable","nameLocation":"2134:12:30","nodeType":"ErrorDefinition","parameters":{"id":12346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12345,"mutability":"mutable","name":"implementation","nameLocation":"2155:14:30","nodeType":"VariableDeclaration","scope":12347,"src":"2147:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12344,"name":"address","nodeType":"ElementaryTypeName","src":"2147:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2146:24:30"},"src":"2128:43:30"},{"constant":false,"documentation":{"id":12348,"nodeType":"StructuredDocumentation","src":"2177:48:30","text":"@notice The registry of base implementations"},"id":12353,"mutability":"mutable","name":"_bases","nameLocation":"2268:6:30","nodeType":"VariableDeclaration","scope":12680,"src":"2230:44:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"},"typeName":{"id":12352,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2238:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2230:29:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12351,"nodeType":"UserDefinedTypeName","pathNode":{"id":12350,"name":"Cloneable","nameLocations":["2249:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"2249:9:30"},"referencedDeclaration":17720,"src":"2249:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}},"visibility":"private"},{"constant":false,"documentation":{"id":12354,"nodeType":"StructuredDocumentation","src":"2281:43:30","text":"@notice The registry of deployed clones"},"id":12359,"mutability":"mutable","name":"_clones","nameLocation":"2363:7:30","nodeType":"VariableDeclaration","scope":12680,"src":"2329:41:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone)"},"typeName":{"id":12358,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2337:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2329:25:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12357,"nodeType":"UserDefinedTypeName","pathNode":{"id":12356,"name":"Clone","nameLocations":["2348:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":12306,"src":"2348:5:30"},"referencedDeclaration":12306,"src":"2348:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage_ptr","typeString":"struct BoostRegistry.Clone"}}},"visibility":"private"},{"constant":false,"documentation":{"id":12360,"nodeType":"StructuredDocumentation","src":"2377:62:30","text":"@notice The registry of clones created by a given deployer"},"id":12365,"mutability":"mutable","name":"_deployedClones","nameLocation":"2482:15:30","nodeType":"VariableDeclaration","scope":12680,"src":"2444:53:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[])"},"typeName":{"id":12364,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12361,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2444:29:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":12362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2463:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12363,"nodeType":"ArrayTypeName","src":"2463:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"visibility":"private"},{"body":{"id":12387,"nodeType":"Block","src":"2713:168:30","statements":[{"condition":{"id":12379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2727:74:30","subExpression":{"arguments":[{"expression":{"arguments":[{"id":12375,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"2778:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}],"id":12374,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2773:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Cloneable_$17720","typeString":"type(contract Cloneable)"}},"id":12377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2789:11:30","memberName":"interfaceId","nodeType":"MemberAccess","src":"2773:27:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":12371,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"2738:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12370,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"2728:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2755:17:30","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"2728:44:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":12378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:73:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12385,"nodeType":"IfStatement","src":"2723:141:30","trueBody":{"id":12384,"nodeType":"Block","src":"2803:61:30","statements":[{"errorCall":{"arguments":[{"id":12381,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"2837:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12380,"name":"NotCloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"2824:12:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":12382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2824:29:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12383,"nodeType":"RevertStatement","src":"2817:36:30"}]}},{"id":12386,"nodeType":"PlaceholderStatement","src":"2873:1:30"}]},"documentation":{"id":12366,"nodeType":"StructuredDocumentation","src":"2504:155:30","text":"@notice A modifier to ensure the given address holds a valid {Cloneable} base\n @param implementation_ The address of the implementation to check"},"id":12388,"name":"onlyCloneables","nameLocation":"2673:14:30","nodeType":"ModifierDefinition","parameters":{"id":12369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12368,"mutability":"mutable","name":"implementation_","nameLocation":"2696:15:30","nodeType":"VariableDeclaration","scope":12388,"src":"2688:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12367,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2687:25:30"},"src":"2664:217:30","virtual":false,"visibility":"internal"},{"body":{"id":12440,"nodeType":"Block","src":"3548:285:30","statements":[{"assignments":[12403],"declarations":[{"constant":false,"id":12403,"mutability":"mutable","name":"identifier","nameLocation":"3566:10:30","nodeType":"VariableDeclaration","scope":12440,"src":"3558:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3558:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12408,"initialValue":{"arguments":[{"id":12405,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"3593:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12406,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"3600:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12404,"name":"getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12659,"src":"3579:13:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_string_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,string calldata) pure returns (bytes32)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3579:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3558:48:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":12411,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12353,"src":"3629:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12413,"indexExpression":{"id":12412,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3636:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3629:18:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3621:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12409,"name":"address","nodeType":"ElementaryTypeName","src":"3621:7:30","typeDescriptions":{}}},"id":12414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3621:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3660:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3652:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12415,"name":"address","nodeType":"ElementaryTypeName","src":"3652:7:30","typeDescriptions":{}}},"id":12418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3621:41:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12425,"nodeType":"IfStatement","src":"3617:90:30","trueBody":{"errorCall":{"arguments":[{"id":12421,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"3689:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12422,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3696:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12420,"name":"AlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"3671:17:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure"}},"id":12423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3671:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12424,"nodeType":"RevertStatement","src":"3664:43:30"}},{"expression":{"id":12432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12426,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12353,"src":"3717:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12428,"indexExpression":{"id":12427,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3724:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3717:18:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12430,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12396,"src":"3748:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12429,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"3738:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3738:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"src":"3717:47:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12433,"nodeType":"ExpressionStatement","src":"3717:47:30"},{"eventCall":{"arguments":[{"id":12435,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"3791:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12436,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"3798:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12437,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12396,"src":"3810:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12434,"name":"Registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12316,"src":"3780:10:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_RegistryType_$12294_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32,address)"}},"id":12438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:46:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12439,"nodeType":"EmitStatement","src":"3775:51:30"}]},"documentation":{"id":12389,"nodeType":"StructuredDocumentation","src":"2887:509:30","text":"@notice Register a new base implementation of a given type\n @param type_ The base type for the implementation\n @param name_ A name for the implementation (must be unique within the given type)\n @param implementation_ The address of the implementation contract\n @dev This function will either emit a `Registered` event or revert if the identifier has already been registered\n @dev The given address must implement the given type interface (See {ERC165-supportsInterface})"},"functionSelector":"d12dd481","id":12441,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12399,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12396,"src":"3527:15:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12400,"kind":"modifierInvocation","modifierName":{"id":12398,"name":"onlyCloneables","nameLocations":["3512:14:30"],"nodeType":"IdentifierPath","referencedDeclaration":12388,"src":"3512:14:30"},"nodeType":"ModifierInvocation","src":"3512:31:30"}],"name":"register","nameLocation":"3410:8:30","nodeType":"FunctionDefinition","parameters":{"id":12397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12392,"mutability":"mutable","name":"type_","nameLocation":"3432:5:30","nodeType":"VariableDeclaration","scope":12441,"src":"3419:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12391,"nodeType":"UserDefinedTypeName","pathNode":{"id":12390,"name":"RegistryType","nameLocations":["3419:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"3419:12:30"},"referencedDeclaration":12294,"src":"3419:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12394,"mutability":"mutable","name":"name_","nameLocation":"3455:5:30","nodeType":"VariableDeclaration","scope":12441,"src":"3439:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12393,"name":"string","nodeType":"ElementaryTypeName","src":"3439:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12396,"mutability":"mutable","name":"implementation_","nameLocation":"3470:15:30","nodeType":"VariableDeclaration","scope":12441,"src":"3462:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12395,"name":"address","nodeType":"ElementaryTypeName","src":"3462:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3418:68:30"},"returnParameters":{"id":12401,"nodeType":"ParameterList","parameters":[],"src":"3548:0:30"},"scope":12680,"src":"3401:432:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12533,"nodeType":"Block","src":"4512:713:30","statements":[{"expression":{"id":12476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12459,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"4565:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":12466,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"4650:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12467,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"4657:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12468,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"4664:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":12469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4671:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4675:6:30","memberName":"sender","nodeType":"MemberAccess","src":"4671:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12464,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4633:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4637:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"4633:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:49:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12463,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4623:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:60:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12473,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"4685:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12461,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"4598:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4604:18:30","memberName":"cloneAndInitialize","nodeType":"MemberAccess","referencedDeclaration":17651,"src":"4598:24:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address,bytes32,bytes memory) returns (address)"}},"id":12474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4598:93:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12460,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"4588:9:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":12475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:104:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"src":"4565:127:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12477,"nodeType":"ExpressionStatement","src":"4565:127:30"},{"assignments":[12479],"declarations":[{"constant":false,"id":12479,"mutability":"mutable","name":"identifier","nameLocation":"4762:10:30","nodeType":"VariableDeclaration","scope":12533,"src":"4754:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4754:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12487,"initialValue":{"arguments":[{"id":12481,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"4794:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12482,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"4801:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12483,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4808:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4812:6:30","memberName":"sender","nodeType":"MemberAccess","src":"4808:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12485,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"4820:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12480,"name":"getCloneIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12637,"src":"4775:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_address_$_t_address_$_t_string_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,address,address,string calldata) pure returns (bytes32)"}},"id":12486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:51:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4754:72:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"baseExpression":{"id":12490,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"4848:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12492,"indexExpression":{"id":12491,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"4856:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4848:19:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"id":12493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4868:8:30","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":12301,"src":"4848:28:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4840:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12488,"name":"address","nodeType":"ElementaryTypeName","src":"4840:7:30","typeDescriptions":{}}},"id":12494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4840:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4889:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4881:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12495,"name":"address","nodeType":"ElementaryTypeName","src":"4881:7:30","typeDescriptions":{}}},"id":12498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4840:51:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12505,"nodeType":"IfStatement","src":"4836:100:30","trueBody":{"errorCall":{"arguments":[{"id":12501,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"4918:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12502,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"4925:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12500,"name":"AlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"4900:17:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure"}},"id":12503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4900:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12504,"nodeType":"RevertStatement","src":"4893:43:30"}},{"expression":{"arguments":[{"id":12511,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"5036:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"id":12506,"name":"_deployedClones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12365,"src":"5003:15:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[] storage ref)"}},"id":12509,"indexExpression":{"expression":{"id":12507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5019:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5023:6:30","memberName":"sender","nodeType":"MemberAccess","src":"5019:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5003:27:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5031:4:30","memberName":"push","nodeType":"MemberAccess","src":"5003:32:30","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5003:44:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12513,"nodeType":"ExpressionStatement","src":"5003:44:30"},{"expression":{"id":12524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12514,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"5057:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12516,"indexExpression":{"id":12515,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"5065:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5057:19:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12518,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"5096:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12519,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"5113:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},{"expression":{"id":12520,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5133:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5137:6:30","memberName":"sender","nodeType":"MemberAccess","src":"5133:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12522,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"5151:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12517,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12306,"src":"5079:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Clone_$12306_storage_ptr_$","typeString":"type(struct BoostRegistry.Clone storage pointer)"}},"id":12523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5086:8:30","5103:8:30","5123:8:30","5145:4:30"],"names":["baseType","instance","deployer","name"],"nodeType":"FunctionCall","src":"5079:79:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"src":"5057:101:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"id":12525,"nodeType":"ExpressionStatement","src":"5057:101:30"},{"eventCall":{"arguments":[{"id":12527,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"5183:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12528,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"5190:10:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12529,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"5202:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12530,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"5209:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12526,"name":"Deployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12329,"src":"5174:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_RegistryType_$12294_$_t_bytes32_$_t_address_$_t_contract$_Cloneable_$17720_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32,address,contract Cloneable)"}},"id":12531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5174:44:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12532,"nodeType":"EmitStatement","src":"5169:49:30"}]},"documentation":{"id":12442,"nodeType":"StructuredDocumentation","src":"3839:488:30","text":"@notice Deploy a new instance of a registered base implementation\n @param type_ The type of base implementation to be cloned\n @param base_ The address of the base implementation to clone\n @param name_ The display name for the clone\n @param data_ The data payload for the cloned instance's initializer\n @return instance The address of the deployed instance\n @dev This function will either emit a `Deployed` event and return the clone or revert"},"functionSelector":"fd97064b","id":12534,"implemented":true,"kind":"function","modifiers":[{"id":12454,"kind":"modifierInvocation","modifierName":{"id":12453,"name":"nonReentrant","nameLocations":["4458:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"4458:12:30"},"nodeType":"ModifierInvocation","src":"4458:12:30"}],"name":"deployClone","nameLocation":"4341:11:30","nodeType":"FunctionDefinition","parameters":{"id":12452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12445,"mutability":"mutable","name":"type_","nameLocation":"4366:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4353:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12444,"nodeType":"UserDefinedTypeName","pathNode":{"id":12443,"name":"RegistryType","nameLocations":["4353:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"4353:12:30"},"referencedDeclaration":12294,"src":"4353:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12447,"mutability":"mutable","name":"base_","nameLocation":"4381:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4373:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12446,"name":"address","nodeType":"ElementaryTypeName","src":"4373:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12449,"mutability":"mutable","name":"name_","nameLocation":"4404:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4388:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12448,"name":"string","nodeType":"ElementaryTypeName","src":"4388:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12451,"mutability":"mutable","name":"data_","nameLocation":"4426:5:30","nodeType":"VariableDeclaration","scope":12534,"src":"4411:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12450,"name":"bytes","nodeType":"ElementaryTypeName","src":"4411:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4352:80:30"},"returnParameters":{"id":12458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12457,"mutability":"mutable","name":"instance","nameLocation":"4498:8:30","nodeType":"VariableDeclaration","scope":12534,"src":"4488:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12456,"nodeType":"UserDefinedTypeName","pathNode":{"id":12455,"name":"Cloneable","nameLocations":["4488:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"4488:9:30"},"referencedDeclaration":17720,"src":"4488:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"4487:20:30"},"scope":12680,"src":"4332:893:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12563,"nodeType":"Block","src":"5636:139:30","statements":[{"expression":{"id":12547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12543,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"5646:14:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12544,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12353,"src":"5663:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$17720_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12546,"indexExpression":{"id":12545,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12537,"src":"5670:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5663:19:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"src":"5646:36:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":12548,"nodeType":"ExpressionStatement","src":"5646:36:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12551,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"5704:14:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5696:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12549,"name":"address","nodeType":"ElementaryTypeName","src":"5696:7:30","typeDescriptions":{}}},"id":12552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5696:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5731:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5723:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12553,"name":"address","nodeType":"ElementaryTypeName","src":"5723:7:30","typeDescriptions":{}}},"id":12556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5723:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5696:37:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12562,"nodeType":"IfStatement","src":"5692:76:30","trueBody":{"errorCall":{"arguments":[{"id":12559,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12537,"src":"5756:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12558,"name":"NotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"5742:13:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":12560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5742:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12561,"nodeType":"RevertStatement","src":"5735:33:30"}}]},"documentation":{"id":12535,"nodeType":"StructuredDocumentation","src":"5231:301:30","text":"@notice Get the address of a registered base implementation\n @param identifier_ The unique identifier for the implementation (see {getIdentifier})\n @return implementation The address of the implementation\n @dev This function will revert if the implementation is not registered"},"functionSelector":"83f38859","id":12564,"implemented":true,"kind":"function","modifiers":[],"name":"getBaseImplementation","nameLocation":"5546:21:30","nodeType":"FunctionDefinition","parameters":{"id":12538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12537,"mutability":"mutable","name":"identifier_","nameLocation":"5576:11:30","nodeType":"VariableDeclaration","scope":12564,"src":"5568:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5568:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5567:21:30"},"returnParameters":{"id":12542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12541,"mutability":"mutable","name":"implementation","nameLocation":"5620:14:30","nodeType":"VariableDeclaration","scope":12564,"src":"5610:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"},"typeName":{"id":12540,"nodeType":"UserDefinedTypeName","pathNode":{"id":12539,"name":"Cloneable","nameLocations":["5610:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"5610:9:30"},"referencedDeclaration":17720,"src":"5610:9:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"5609:26:30"},"scope":12680,"src":"5537:238:30","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12594,"nodeType":"Block","src":"6088:131:30","statements":[{"expression":{"id":12577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12573,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"6098:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12574,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"6106:7:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12306_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12576,"indexExpression":{"id":12575,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12567,"src":"6114:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6106:20:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"src":"6098:28:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"id":12578,"nodeType":"ExpressionStatement","src":"6098:28:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12581,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"6148:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"id":12582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6154:8:30","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":12301,"src":"6148:14:30","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}],"id":12580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6140:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12579,"name":"address","nodeType":"ElementaryTypeName","src":"6140:7:30","typeDescriptions":{}}},"id":12583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6175:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6167:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12584,"name":"address","nodeType":"ElementaryTypeName","src":"6167:7:30","typeDescriptions":{}}},"id":12587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6167:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6140:37:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12593,"nodeType":"IfStatement","src":"6136:76:30","trueBody":{"errorCall":{"arguments":[{"id":12590,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12567,"src":"6200:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12589,"name":"NotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"6186:13:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":12591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12592,"nodeType":"RevertStatement","src":"6179:33:30"}}]},"documentation":{"id":12565,"nodeType":"StructuredDocumentation","src":"5781:220:30","text":"@notice Get the address of a deployed clone by its identifier\n @param identifier_ The unique identifier for the deployed clone (see {getCloneIdentifier})\n @return clone The address of the deployed clone"},"functionSelector":"3aaf1626","id":12595,"implemented":true,"kind":"function","modifiers":[],"name":"getClone","nameLocation":"6015:8:30","nodeType":"FunctionDefinition","parameters":{"id":12568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12567,"mutability":"mutable","name":"identifier_","nameLocation":"6032:11:30","nodeType":"VariableDeclaration","scope":12595,"src":"6024:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6024:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6023:21:30"},"returnParameters":{"id":12572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12571,"mutability":"mutable","name":"clone","nameLocation":"6081:5:30","nodeType":"VariableDeclaration","scope":12595,"src":"6068:18:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_memory_ptr","typeString":"struct BoostRegistry.Clone"},"typeName":{"id":12570,"nodeType":"UserDefinedTypeName","pathNode":{"id":12569,"name":"Clone","nameLocations":["6068:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":12306,"src":"6068:5:30"},"referencedDeclaration":12306,"src":"6068:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12306_storage_ptr","typeString":"struct BoostRegistry.Clone"}},"visibility":"internal"}],"src":"6067:20:30"},"scope":12680,"src":"6006:213:30","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12608,"nodeType":"Block","src":"6672:50:30","statements":[{"expression":{"baseExpression":{"id":12604,"name":"_deployedClones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12365,"src":"6689:15:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[] storage ref)"}},"id":12606,"indexExpression":{"id":12605,"name":"deployer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12598,"src":"6705:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6689:26:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":12603,"id":12607,"nodeType":"Return","src":"6682:33:30"}]},"documentation":{"id":12596,"nodeType":"StructuredDocumentation","src":"6225:363:30","text":"@notice Get the list of identifiers of deployed clones for a given deployer\n @param deployer_ The address of the deployer\n @return clones The list of deployed clones for the given deployer\n @dev WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic."},"functionSelector":"792aa01c","id":12609,"implemented":true,"kind":"function","modifiers":[],"name":"getClones","nameLocation":"6602:9:30","nodeType":"FunctionDefinition","parameters":{"id":12599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12598,"mutability":"mutable","name":"deployer_","nameLocation":"6620:9:30","nodeType":"VariableDeclaration","scope":12609,"src":"6612:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12597,"name":"address","nodeType":"ElementaryTypeName","src":"6612:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6611:19:30"},"returnParameters":{"id":12603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12609,"src":"6654:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6654:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12601,"nodeType":"ArrayTypeName","src":"6654:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6653:18:30"},"scope":12680,"src":"6593:129:30","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12636,"nodeType":"Block","src":"7261:99:30","statements":[{"expression":{"arguments":[{"id":12625,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12613,"src":"7293:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"arguments":[{"arguments":[{"id":12629,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12615,"src":"7327:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12630,"name":"deployer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12617,"src":"7334:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12631,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"7345:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":12627,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7310:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7314:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"7310:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7310:41:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12626,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7300:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7300:52:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12624,"name":"_getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"7278:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (bytes32)"}},"id":12634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7278:75:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12623,"id":12635,"nodeType":"Return","src":"7271:82:30"}]},"documentation":{"id":12610,"nodeType":"StructuredDocumentation","src":"6728:354:30","text":"@notice Build the identifier for a clone of a base implementation\n @param type_ The base type for the implementation\n @param base_ The address of the base implementation\n @param deployer_ The address of the deployer\n @param name_ The display name of the clone\n @return identifier The unique identifier for the clone"},"functionSelector":"acc83fc8","id":12637,"implemented":true,"kind":"function","modifiers":[],"name":"getCloneIdentifier","nameLocation":"7096:18:30","nodeType":"FunctionDefinition","parameters":{"id":12620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12613,"mutability":"mutable","name":"type_","nameLocation":"7128:5:30","nodeType":"VariableDeclaration","scope":12637,"src":"7115:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12612,"nodeType":"UserDefinedTypeName","pathNode":{"id":12611,"name":"RegistryType","nameLocations":["7115:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"7115:12:30"},"referencedDeclaration":12294,"src":"7115:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12615,"mutability":"mutable","name":"base_","nameLocation":"7143:5:30","nodeType":"VariableDeclaration","scope":12637,"src":"7135:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12614,"name":"address","nodeType":"ElementaryTypeName","src":"7135:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12617,"mutability":"mutable","name":"deployer_","nameLocation":"7158:9:30","nodeType":"VariableDeclaration","scope":12637,"src":"7150:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12616,"name":"address","nodeType":"ElementaryTypeName","src":"7150:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12619,"mutability":"mutable","name":"name_","nameLocation":"7185:5:30","nodeType":"VariableDeclaration","scope":12637,"src":"7169:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12618,"name":"string","nodeType":"ElementaryTypeName","src":"7169:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7114:77:30"},"returnParameters":{"id":12623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12622,"mutability":"mutable","name":"identifier","nameLocation":"7245:10:30","nodeType":"VariableDeclaration","scope":12637,"src":"7237:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7237:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7236:20:30"},"scope":12680,"src":"7087:273:30","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12658,"nodeType":"Block","src":"7718:81:30","statements":[{"expression":{"arguments":[{"id":12649,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12641,"src":"7750:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"arguments":[{"arguments":[{"id":12653,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12643,"src":"7784:5:30","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":12651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7767:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7771:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"7767:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7767:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12650,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7757:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:34:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12648,"name":"_getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"7735:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12294_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (bytes32)"}},"id":12656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7735:57:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12647,"id":12657,"nodeType":"Return","src":"7728:64:30"}]},"documentation":{"id":12638,"nodeType":"StructuredDocumentation","src":"7366:240:30","text":"@notice Build the identifier for a base implementation\n @param type_ The base type for the implementation\n @param name_ The name of the implementation\n @return identifier The unique identifier for the implementation"},"functionSelector":"f1668792","id":12659,"implemented":true,"kind":"function","modifiers":[],"name":"getIdentifier","nameLocation":"7620:13:30","nodeType":"FunctionDefinition","parameters":{"id":12644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12641,"mutability":"mutable","name":"type_","nameLocation":"7647:5:30","nodeType":"VariableDeclaration","scope":12659,"src":"7634:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12640,"nodeType":"UserDefinedTypeName","pathNode":{"id":12639,"name":"RegistryType","nameLocations":["7634:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"7634:12:30"},"referencedDeclaration":12294,"src":"7634:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12643,"mutability":"mutable","name":"name_","nameLocation":"7670:5:30","nodeType":"VariableDeclaration","scope":12659,"src":"7654:21:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12642,"name":"string","nodeType":"ElementaryTypeName","src":"7654:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7633:43:30"},"returnParameters":{"id":12647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12646,"mutability":"mutable","name":"identifier","nameLocation":"7706:10:30","nodeType":"VariableDeclaration","scope":12659,"src":"7698:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7698:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7697:20:30"},"scope":12680,"src":"7611:188:30","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12678,"nodeType":"Block","src":"8165:65:30","statements":[{"expression":{"arguments":[{"arguments":[{"id":12673,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12663,"src":"8209:5:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},{"id":12674,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12665,"src":"8216:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12671,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8192:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8196:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"8192:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12670,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8182:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8182:41:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12669,"id":12677,"nodeType":"Return","src":"8175:48:30"}]},"documentation":{"id":12660,"nodeType":"StructuredDocumentation","src":"7805:253:30","text":"@notice Build a unique identifier for a given type and hash\n @param type_ The base type for the implementation\n @param hash_ The unique hash for the implementation\n @return identifier The unique identifier for the implementation"},"id":12679,"implemented":true,"kind":"function","modifiers":[],"name":"_getIdentifier","nameLocation":"8072:14:30","nodeType":"FunctionDefinition","parameters":{"id":12666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12663,"mutability":"mutable","name":"type_","nameLocation":"8100:5:30","nodeType":"VariableDeclaration","scope":12679,"src":"8087:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12662,"nodeType":"UserDefinedTypeName","pathNode":{"id":12661,"name":"RegistryType","nameLocations":["8087:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":12294,"src":"8087:12:30"},"referencedDeclaration":12294,"src":"8087:12:30","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12294","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12665,"mutability":"mutable","name":"hash_","nameLocation":"8115:5:30","nodeType":"VariableDeclaration","scope":12679,"src":"8107:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8107:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8086:35:30"},"returnParameters":{"id":12669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12668,"mutability":"mutable","name":"identifier","nameLocation":"8153:10:30","nodeType":"VariableDeclaration","scope":12679,"src":"8145:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8145:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8144:20:30"},"scope":12680,"src":"8063:167:30","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12681,"src":"682:7550:30","usedErrors":[11020,12337,12342,12347],"usedEvents":[12316,12329]}],"src":"36:8197:30"},"id":30},"contracts/actions/Action.sol":{"ast":{"absolutePath":"contracts/actions/Action.sol","exportedSymbols":{"Action":[12758],"Cloneable":[17720],"Validator":[18282]},"id":12759,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12682,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:31"},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12684,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12759,"sourceUnit":17721,"src":"62:57:31","symbolAliases":[{"foreign":{"id":12683,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"70:9:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":12686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12759,"sourceUnit":18283,"src":"120:61:31","symbolAliases":[{"foreign":{"id":12685,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"128:9:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":12688,"name":"Cloneable","nameLocations":["460:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"460:9:31"},"id":12689,"nodeType":"InheritanceSpecifier","src":"460:9:31"}],"canonicalName":"Action","contractDependencies":[],"contractKind":"contract","documentation":{"id":12687,"nodeType":"StructuredDocumentation","src":"183:249:31","text":"@title Boost Action\n @notice Abstract contract for a generic Action within the Boost protocol\n @dev Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":12758,"linearizedBaseContracts":[12758,17720,2845,2857,9225],"name":"Action","nameLocation":"450:6:31","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":12690,"nodeType":"StructuredDocumentation","src":"476:145:31","text":"@notice Emitted when the action is executed by a proxy.\n @dev The `data` field should contain the return data from the action, if any."},"eventSelector":"1f92ef25aeecc310b452a1367dc5386413b9e2a8ef881251566fae23cd7e73f5","id":12700,"name":"ActionExecuted","nameLocation":"632:14:31","nodeType":"EventDefinition","parameters":{"id":12699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12692,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"663:8:31","nodeType":"VariableDeclaration","scope":12700,"src":"647:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12691,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12694,"indexed":false,"mutability":"mutable","name":"caller","nameLocation":"681:6:31","nodeType":"VariableDeclaration","scope":12700,"src":"673:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12693,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12696,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"694:7:31","nodeType":"VariableDeclaration","scope":12700,"src":"689:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12695,"name":"bool","nodeType":"ElementaryTypeName","src":"689:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12698,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"709:4:31","nodeType":"VariableDeclaration","scope":12700,"src":"703:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12697,"name":"bytes","nodeType":"ElementaryTypeName","src":"703:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"646:68:31"},"src":"626:89:31"},{"documentation":{"id":12701,"nodeType":"StructuredDocumentation","src":"721:65:31","text":"@notice Thrown when the `execute` function is not implemented"},"errorSelector":"e1ebb83b","id":12703,"name":"ExecuteNotImplemented","nameLocation":"797:21:31","nodeType":"ErrorDefinition","parameters":{"id":12702,"nodeType":"ParameterList","parameters":[],"src":"818:2:31"},"src":"791:30:31"},{"anonymous":false,"documentation":{"id":12704,"nodeType":"StructuredDocumentation","src":"827:141:31","text":"@notice Emitted when the action is validated\n @dev The `data` field should contain implementation-specific context, if applicable."},"eventSelector":"2de47361bfd500dc4a9050a3ff72d4eab6a58f4772452004a90555302be271b1","id":12712,"name":"ActionValidated","nameLocation":"979:15:31","nodeType":"EventDefinition","parameters":{"id":12711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12706,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"1011:4:31","nodeType":"VariableDeclaration","scope":12712,"src":"995:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12705,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12708,"indexed":false,"mutability":"mutable","name":"isValidated","nameLocation":"1022:11:31","nodeType":"VariableDeclaration","scope":12712,"src":"1017:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12707,"name":"bool","nodeType":"ElementaryTypeName","src":"1017:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12710,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1041:4:31","nodeType":"VariableDeclaration","scope":12712,"src":"1035:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12709,"name":"bytes","nodeType":"ElementaryTypeName","src":"1035:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"994:52:31"},"src":"973:74:31"},{"constant":false,"documentation":{"id":12713,"nodeType":"StructuredDocumentation","src":"1053:91:31","text":"@notice The validator for the action (which may be the action itself where appropriate)"},"functionSelector":"393df8cb","id":12716,"mutability":"immutable","name":"VALIDATOR","nameLocation":"1176:9:31","nodeType":"VariableDeclaration","scope":12758,"src":"1149:36:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"},"typeName":{"id":12715,"nodeType":"UserDefinedTypeName","pathNode":{"id":12714,"name":"Validator","nameLocations":["1149:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"1149:9:31"},"referencedDeclaration":18282,"src":"1149:9:31","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"visibility":"public"},{"documentation":{"id":12717,"nodeType":"StructuredDocumentation","src":"1192:167:31","text":"@notice Execute the action\n @param data_ The data payload for the action\n @return (success, data) A tuple of the success status and the returned data"},"functionSelector":"09c5eabe","id":12726,"implemented":false,"kind":"function","modifiers":[],"name":"execute","nameLocation":"1373:7:31","nodeType":"FunctionDefinition","parameters":{"id":12720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12719,"mutability":"mutable","name":"data_","nameLocation":"1396:5:31","nodeType":"VariableDeclaration","scope":12726,"src":"1381:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12718,"name":"bytes","nodeType":"ElementaryTypeName","src":"1381:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1380:22:31"},"returnParameters":{"id":12725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12726,"src":"1437:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12721,"name":"bool","nodeType":"ElementaryTypeName","src":"1437:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12726,"src":"1443:12:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12723,"name":"bytes","nodeType":"ElementaryTypeName","src":"1443:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1436:20:31"},"scope":12758,"src":"1364:93:31","stateMutability":"payable","virtual":true,"visibility":"external"},{"documentation":{"id":12727,"nodeType":"StructuredDocumentation","src":"1463:166:31","text":"@notice Prepare the action for execution and return the expected payload\n @param data_ The data payload for the action\n @return The prepared payload"},"functionSelector":"d7768c47","id":12734,"implemented":false,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"1643:7:31","nodeType":"FunctionDefinition","parameters":{"id":12730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12729,"mutability":"mutable","name":"data_","nameLocation":"1666:5:31","nodeType":"VariableDeclaration","scope":12734,"src":"1651:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12728,"name":"bytes","nodeType":"ElementaryTypeName","src":"1651:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1650:22:31"},"returnParameters":{"id":12733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12734,"src":"1699:12:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12731,"name":"bytes","nodeType":"ElementaryTypeName","src":"1699:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1698:14:31"},"scope":12758,"src":"1634:79:31","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":12756,"nodeType":"Block","src":"1851:103:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12744,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12737,"src":"1868:11:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12746,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"1888:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Action_$12758_$","typeString":"type(contract Action)"}],"id":12745,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1883:4:31","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1883:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Action_$12758","typeString":"type(contract Action)"}},"id":12748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1896:11:31","memberName":"interfaceId","nodeType":"MemberAccess","src":"1883:24:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1868:39:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12752,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12737,"src":"1935:11:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":12750,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1911:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Action_$12758_$","typeString":"type(contract super Action)"}},"id":12751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1917:17:31","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"1911:23:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":12753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:36:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1868:79:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12743,"id":12755,"nodeType":"Return","src":"1861:86:31"}]},"documentation":{"id":12735,"nodeType":"StructuredDocumentation","src":"1719:25:31","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":12757,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1758:17:31","nodeType":"FunctionDefinition","overrides":{"id":12740,"nodeType":"OverrideSpecifier","overrides":[{"id":12739,"name":"Cloneable","nameLocations":["1825:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1825:9:31"}],"src":"1816:19:31"},"parameters":{"id":12738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12737,"mutability":"mutable","name":"interfaceId","nameLocation":"1783:11:31","nodeType":"VariableDeclaration","scope":12757,"src":"1776:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12736,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1776:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1775:20:31"},"returnParameters":{"id":12743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12757,"src":"1845:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12741,"name":"bool","nodeType":"ElementaryTypeName","src":"1845:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1844:6:31"},"scope":12758,"src":"1749:205:31","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":12759,"src":"432:1524:31","usedErrors":[9117,9120,12703,17666,17669,17672],"usedEvents":[9125,12700,12712]}],"src":"36:1921:31"},"id":31},"contracts/actions/ContractAction.sol":{"ast":{"absolutePath":"contracts/actions/ContractAction.sol","exportedSymbols":{"Action":[12758],"Cloneable":[17720],"ContractAction":[12914],"ERC721":[9111]},"id":12915,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12760,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:32"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":12762,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12915,"sourceUnit":9112,"src":"62:49:32","symbolAliases":[{"foreign":{"id":12761,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"70:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12764,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12915,"sourceUnit":17721,"src":"113:57:32","symbolAliases":[{"foreign":{"id":12763,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"121:9:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":12766,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12915,"sourceUnit":12759,"src":"171:52:32","symbolAliases":[{"foreign":{"id":12765,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"179:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12767,"name":"Action","nameLocations":["252:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":12758,"src":"252:6:32"},"id":12768,"nodeType":"InheritanceSpecifier","src":"252:6:32"}],"canonicalName":"ContractAction","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":12914,"linearizedBaseContracts":[12914,12758,17720,2845,2857,9225],"name":"ContractAction","nameLocation":"234:14:32","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12769,"nodeType":"StructuredDocumentation","src":"265:67:32","text":"@notice Thrown when execution on a given chain is not supported"},"errorSelector":"180098f4","id":12773,"name":"TargetChainUnsupported","nameLocation":"343:22:32","nodeType":"ErrorDefinition","parameters":{"id":12772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12771,"mutability":"mutable","name":"targetChainId","nameLocation":"374:13:32","nodeType":"VariableDeclaration","scope":12773,"src":"366:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12770,"name":"uint256","nodeType":"ElementaryTypeName","src":"366:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"365:23:32"},"src":"337:52:32"},{"canonicalName":"ContractAction.InitPayload","documentation":{"id":12774,"nodeType":"StructuredDocumentation","src":"395:249:32","text":"@notice The payload for initializing a ContractAction\n @param target The target contract address\n @param selector The selector for the function to be called\n @param value The native token value to send with the function call"},"id":12783,"members":[{"constant":false,"id":12776,"mutability":"mutable","name":"chainId","nameLocation":"686:7:32","nodeType":"VariableDeclaration","scope":12783,"src":"678:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12775,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12778,"mutability":"mutable","name":"target","nameLocation":"711:6:32","nodeType":"VariableDeclaration","scope":12783,"src":"703:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12777,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12780,"mutability":"mutable","name":"selector","nameLocation":"734:8:32","nodeType":"VariableDeclaration","scope":12783,"src":"727:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12779,"name":"bytes4","nodeType":"ElementaryTypeName","src":"727:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12782,"mutability":"mutable","name":"value","nameLocation":"760:5:32","nodeType":"VariableDeclaration","scope":12783,"src":"752:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12781,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"656:11:32","nodeType":"StructDefinition","scope":12914,"src":"649:123:32","visibility":"public"},{"constant":false,"documentation":{"id":12784,"nodeType":"StructuredDocumentation","src":"778:31:32","text":"@notice The target chain ID"},"functionSelector":"9a8a0592","id":12786,"mutability":"mutable","name":"chainId","nameLocation":"829:7:32","nodeType":"VariableDeclaration","scope":12914,"src":"814:22:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12785,"name":"uint256","nodeType":"ElementaryTypeName","src":"814:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":12787,"nodeType":"StructuredDocumentation","src":"843:31:32","text":"@notice The target contract"},"functionSelector":"d4b83992","id":12789,"mutability":"mutable","name":"target","nameLocation":"894:6:32","nodeType":"VariableDeclaration","scope":12914,"src":"879:21:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12788,"name":"address","nodeType":"ElementaryTypeName","src":"879:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":12790,"nodeType":"StructuredDocumentation","src":"907:54:32","text":"@notice The selector for the function to be called"},"functionSelector":"ea3d508a","id":12792,"mutability":"mutable","name":"selector","nameLocation":"980:8:32","nodeType":"VariableDeclaration","scope":12914,"src":"966:22:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12791,"name":"bytes4","nodeType":"ElementaryTypeName","src":"966:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":false,"documentation":{"id":12793,"nodeType":"StructuredDocumentation","src":"995:65:32","text":"@notice The native token value to send with the function call"},"functionSelector":"3fa4f245","id":12795,"mutability":"mutable","name":"value","nameLocation":"1080:5:32","nodeType":"VariableDeclaration","scope":12914,"src":"1065:20:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12794,"name":"uint256","nodeType":"ElementaryTypeName","src":"1065:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":12801,"nodeType":"Block","src":"1106:39:32","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12798,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1116:20:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12800,"nodeType":"ExpressionStatement","src":"1116:22:32"}]},"id":12802,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12796,"nodeType":"ParameterList","parameters":[],"src":"1103:2:32"},"returnParameters":{"id":12797,"nodeType":"ParameterList","parameters":[],"src":"1106:0:32"},"scope":12914,"src":"1092:53:32","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":12820,"nodeType":"Block","src":"1336:62:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":12814,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12805,"src":"1369:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":12815,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12783,"src":"1377:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"id":12816,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1376:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}],"expression":{"id":12812,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1358:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1362:6:32","memberName":"decode","nodeType":"MemberAccess","src":"1358:10:32","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"id":12811,"name":"_initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12902,"src":"1346:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$12783_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12819,"nodeType":"ExpressionStatement","src":"1346:45:32"}]},"documentation":{"id":12803,"nodeType":"StructuredDocumentation","src":"1151:102:32","text":"@inheritdoc Cloneable\n @notice Initialize the contract with the owner and the required data"},"functionSelector":"439fab91","id":12821,"implemented":true,"kind":"function","modifiers":[{"id":12809,"kind":"modifierInvocation","modifierName":{"id":12808,"name":"initializer","nameLocations":["1324:11:32"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1324:11:32"},"nodeType":"ModifierInvocation","src":"1324:11:32"}],"name":"initialize","nameLocation":"1267:10:32","nodeType":"FunctionDefinition","overrides":{"id":12807,"nodeType":"OverrideSpecifier","overrides":[],"src":"1315:8:32"},"parameters":{"id":12806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12805,"mutability":"mutable","name":"data_","nameLocation":"1293:5:32","nodeType":"VariableDeclaration","scope":12821,"src":"1278:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12804,"name":"bytes","nodeType":"ElementaryTypeName","src":"1278:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1277:22:32"},"returnParameters":{"id":12810,"nodeType":"ParameterList","parameters":[],"src":"1336:0:32"},"scope":12914,"src":"1258:140:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12726],"body":{"id":12858,"nodeType":"Block","src":"1506:232:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12831,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"1520:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12832,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1531:5:32","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1537:7:32","memberName":"chainid","nodeType":"MemberAccess","src":"1531:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1520:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12839,"nodeType":"IfStatement","src":"1516:68:32","trueBody":{"errorCall":{"arguments":[{"id":12836,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"1576:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12835,"name":"TargetChainUnsupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12773,"src":"1553:22:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:31:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12838,"nodeType":"RevertStatement","src":"1546:38:32"}},{"assignments":[12841,12843],"declarations":[{"constant":false,"id":12841,"mutability":"mutable","name":"success","nameLocation":"1600:7:32","nodeType":"VariableDeclaration","scope":12858,"src":"1595:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12840,"name":"bool","nodeType":"ElementaryTypeName","src":"1595:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12843,"mutability":"mutable","name":"returnData","nameLocation":"1622:10:32","nodeType":"VariableDeclaration","scope":12858,"src":"1609:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12842,"name":"bytes","nodeType":"ElementaryTypeName","src":"1609:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12853,"initialValue":{"arguments":[{"arguments":[{"id":12849,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"1676:8:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12850,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12823,"src":"1686:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12848,"name":"_buildPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12913,"src":"1662:13:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4,bytes calldata) pure returns (bytes memory)"}},"id":12851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12844,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"1636:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1643:4:32","memberName":"call","nodeType":"MemberAccess","src":"1636:11:32","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12846,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"1655:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1636:25:32","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:57:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1594:99:32"},{"expression":{"components":[{"id":12854,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12841,"src":"1711:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12855,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12843,"src":"1720:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12856,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1710:21:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":12830,"id":12857,"nodeType":"Return","src":"1703:28:32"}]},"functionSelector":"09c5eabe","id":12859,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"1413:7:32","nodeType":"FunctionDefinition","overrides":{"id":12825,"nodeType":"OverrideSpecifier","overrides":[],"src":"1468:8:32"},"parameters":{"id":12824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12823,"mutability":"mutable","name":"data_","nameLocation":"1436:5:32","nodeType":"VariableDeclaration","scope":12859,"src":"1421:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12822,"name":"bytes","nodeType":"ElementaryTypeName","src":"1421:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1420:22:32"},"returnParameters":{"id":12830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12859,"src":"1486:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12826,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12859,"src":"1492:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12828,"name":"bytes","nodeType":"ElementaryTypeName","src":"1492:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1485:20:32"},"scope":12914,"src":"1404:334:32","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[12734],"body":{"id":12872,"nodeType":"Block","src":"1842:54:32","statements":[{"expression":{"arguments":[{"id":12868,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"1873:8:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12869,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12861,"src":"1883:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12867,"name":"_buildPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12913,"src":"1859:13:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4,bytes calldata) pure returns (bytes memory)"}},"id":12870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1859:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12866,"id":12871,"nodeType":"Return","src":"1852:37:32"}]},"functionSelector":"d7768c47","id":12873,"implemented":true,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"1753:7:32","nodeType":"FunctionDefinition","overrides":{"id":12863,"nodeType":"OverrideSpecifier","overrides":[],"src":"1803:8:32"},"parameters":{"id":12862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12861,"mutability":"mutable","name":"data_","nameLocation":"1776:5:32","nodeType":"VariableDeclaration","scope":12873,"src":"1761:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12860,"name":"bytes","nodeType":"ElementaryTypeName","src":"1761:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1760:22:32"},"returnParameters":{"id":12866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12865,"mutability":"mutable","name":"bytes_","nameLocation":"1834:6:32","nodeType":"VariableDeclaration","scope":12873,"src":"1821:19:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12864,"name":"bytes","nodeType":"ElementaryTypeName","src":"1821:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1820:21:32"},"scope":12914,"src":"1744:152:32","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":12901,"nodeType":"Block","src":"1983:135:32","statements":[{"expression":{"id":12884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12881,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12786,"src":"1993:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12882,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2003:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2009:7:32","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":12776,"src":"2003:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1993:23:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12885,"nodeType":"ExpressionStatement","src":"1993:23:32"},{"expression":{"id":12889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12886,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"2026:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12887,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2035:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2041:6:32","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":12778,"src":"2035:12:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2026:21:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12890,"nodeType":"ExpressionStatement","src":"2026:21:32"},{"expression":{"id":12894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12891,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"2057:8:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12892,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2068:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2074:8:32","memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":12780,"src":"2068:14:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2057:25:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":12895,"nodeType":"ExpressionStatement","src":"2057:25:32"},{"expression":{"id":12899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12896,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"2092:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12897,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12876,"src":"2100:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":12898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2106:5:32","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":12782,"src":"2100:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2092:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12900,"nodeType":"ExpressionStatement","src":"2092:19:32"}]},"id":12902,"implemented":true,"kind":"function","modifiers":[{"id":12879,"kind":"modifierInvocation","modifierName":{"id":12878,"name":"onlyInitializing","nameLocations":["1966:16:32"],"nodeType":"IdentifierPath","referencedDeclaration":9176,"src":"1966:16:32"},"nodeType":"ModifierInvocation","src":"1966:16:32"}],"name":"_initialize","nameLocation":"1911:11:32","nodeType":"FunctionDefinition","parameters":{"id":12877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12876,"mutability":"mutable","name":"init_","nameLocation":"1942:5:32","nodeType":"VariableDeclaration","scope":12902,"src":"1923:24:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload"},"typeName":{"id":12875,"nodeType":"UserDefinedTypeName","pathNode":{"id":12874,"name":"InitPayload","nameLocations":["1923:11:32"],"nodeType":"IdentifierPath","referencedDeclaration":12783,"src":"1923:11:32"},"referencedDeclaration":12783,"src":"1923:11:32","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_storage_ptr","typeString":"struct ContractAction.InitPayload"}},"visibility":"internal"}],"src":"1922:26:32"},"returnParameters":{"id":12880,"nodeType":"ParameterList","parameters":[],"src":"1983:0:32"},"scope":12914,"src":"1902:216:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12912,"nodeType":"Block","src":"2236:457:32","statements":[{"AST":{"nativeSrc":"2255:432:32","nodeType":"YulBlock","src":"2255:432:32","statements":[{"nativeSrc":"2315:36:32","nodeType":"YulVariableDeclaration","src":"2315:36:32","value":{"arguments":[{"kind":"number","nativeSrc":"2331:1:32","nodeType":"YulLiteral","src":"2331:1:32","type":"","value":"4"},{"name":"calldata_.length","nativeSrc":"2334:16:32","nodeType":"YulIdentifier","src":"2334:16:32"}],"functionName":{"name":"add","nativeSrc":"2327:3:32","nodeType":"YulIdentifier","src":"2327:3:32"},"nativeSrc":"2327:24:32","nodeType":"YulFunctionCall","src":"2327:24:32"},"variables":[{"name":"size","nativeSrc":"2319:4:32","nodeType":"YulTypedName","src":"2319:4:32","type":""}]},{"nativeSrc":"2364:22:32","nodeType":"YulAssignment","src":"2364:22:32","value":{"arguments":[{"kind":"number","nativeSrc":"2381:4:32","nodeType":"YulLiteral","src":"2381:4:32","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2375:5:32","nodeType":"YulIdentifier","src":"2375:5:32"},"nativeSrc":"2375:11:32","nodeType":"YulFunctionCall","src":"2375:11:32"},"variableNames":[{"name":"payload","nativeSrc":"2364:7:32","nodeType":"YulIdentifier","src":"2364:7:32"}]},{"expression":{"arguments":[{"name":"payload","nativeSrc":"2406:7:32","nodeType":"YulIdentifier","src":"2406:7:32"},{"name":"size","nativeSrc":"2415:4:32","nodeType":"YulIdentifier","src":"2415:4:32"}],"functionName":{"name":"mstore","nativeSrc":"2399:6:32","nodeType":"YulIdentifier","src":"2399:6:32"},"nativeSrc":"2399:21:32","nodeType":"YulFunctionCall","src":"2399:21:32"},"nativeSrc":"2399:21:32","nodeType":"YulExpressionStatement","src":"2399:21:32"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2440:4:32","nodeType":"YulLiteral","src":"2440:4:32","type":"","value":"0x40"},{"arguments":[{"name":"payload","nativeSrc":"2450:7:32","nodeType":"YulIdentifier","src":"2450:7:32"},{"arguments":[{"name":"size","nativeSrc":"2463:4:32","nodeType":"YulIdentifier","src":"2463:4:32"},{"kind":"number","nativeSrc":"2469:4:32","nodeType":"YulLiteral","src":"2469:4:32","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2459:3:32","nodeType":"YulIdentifier","src":"2459:3:32"},"nativeSrc":"2459:15:32","nodeType":"YulFunctionCall","src":"2459:15:32"}],"functionName":{"name":"add","nativeSrc":"2446:3:32","nodeType":"YulIdentifier","src":"2446:3:32"},"nativeSrc":"2446:29:32","nodeType":"YulFunctionCall","src":"2446:29:32"}],"functionName":{"name":"mstore","nativeSrc":"2433:6:32","nodeType":"YulIdentifier","src":"2433:6:32"},"nativeSrc":"2433:43:32","nodeType":"YulFunctionCall","src":"2433:43:32"},"nativeSrc":"2433:43:32","nodeType":"YulExpressionStatement","src":"2433:43:32"},{"expression":{"arguments":[{"arguments":[{"name":"payload","nativeSrc":"2570:7:32","nodeType":"YulIdentifier","src":"2570:7:32"},{"kind":"number","nativeSrc":"2579:4:32","nodeType":"YulLiteral","src":"2579:4:32","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2566:3:32","nodeType":"YulIdentifier","src":"2566:3:32"},"nativeSrc":"2566:18:32","nodeType":"YulFunctionCall","src":"2566:18:32"},{"name":"selector_","nativeSrc":"2586:9:32","nodeType":"YulIdentifier","src":"2586:9:32"}],"functionName":{"name":"mstore","nativeSrc":"2559:6:32","nodeType":"YulIdentifier","src":"2559:6:32"},"nativeSrc":"2559:37:32","nodeType":"YulFunctionCall","src":"2559:37:32"},"nativeSrc":"2559:37:32","nodeType":"YulExpressionStatement","src":"2559:37:32"},{"expression":{"arguments":[{"arguments":[{"name":"payload","nativeSrc":"2626:7:32","nodeType":"YulIdentifier","src":"2626:7:32"},{"kind":"number","nativeSrc":"2635:4:32","nodeType":"YulLiteral","src":"2635:4:32","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"2622:3:32","nodeType":"YulIdentifier","src":"2622:3:32"},"nativeSrc":"2622:18:32","nodeType":"YulFunctionCall","src":"2622:18:32"},{"name":"calldata_.offset","nativeSrc":"2642:16:32","nodeType":"YulIdentifier","src":"2642:16:32"},{"name":"calldata_.length","nativeSrc":"2660:16:32","nodeType":"YulIdentifier","src":"2660:16:32"}],"functionName":{"name":"calldatacopy","nativeSrc":"2609:12:32","nodeType":"YulIdentifier","src":"2609:12:32"},"nativeSrc":"2609:68:32","nodeType":"YulFunctionCall","src":"2609:68:32"},"nativeSrc":"2609:68:32","nodeType":"YulExpressionStatement","src":"2609:68:32"}]},"evmVersion":"cancun","externalReferences":[{"declaration":12906,"isOffset":false,"isSlot":false,"src":"2334:16:32","suffix":"length","valueSize":1},{"declaration":12906,"isOffset":false,"isSlot":false,"src":"2660:16:32","suffix":"length","valueSize":1},{"declaration":12906,"isOffset":true,"isSlot":false,"src":"2642:16:32","suffix":"offset","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2364:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2406:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2450:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2570:7:32","valueSize":1},{"declaration":12909,"isOffset":false,"isSlot":false,"src":"2626:7:32","valueSize":1},{"declaration":12904,"isOffset":false,"isSlot":false,"src":"2586:9:32","valueSize":1}],"id":12911,"nodeType":"InlineAssembly","src":"2246:441:32"}]},"id":12913,"implemented":true,"kind":"function","modifiers":[],"name":"_buildPayload","nameLocation":"2133:13:32","nodeType":"FunctionDefinition","parameters":{"id":12907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12904,"mutability":"mutable","name":"selector_","nameLocation":"2154:9:32","nodeType":"VariableDeclaration","scope":12913,"src":"2147:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12903,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2147:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12906,"mutability":"mutable","name":"calldata_","nameLocation":"2180:9:32","nodeType":"VariableDeclaration","scope":12913,"src":"2165:24:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12905,"name":"bytes","nodeType":"ElementaryTypeName","src":"2165:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2146:44:32"},"returnParameters":{"id":12910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12909,"mutability":"mutable","name":"payload","nameLocation":"2227:7:32","nodeType":"VariableDeclaration","scope":12913,"src":"2214:20:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12908,"name":"bytes","nodeType":"ElementaryTypeName","src":"2214:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2213:22:32"},"scope":12914,"src":"2124:569:32","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12915,"src":"225:2470:32","usedErrors":[9117,9120,12703,12773,17666,17669,17672],"usedEvents":[9125,12700,12712]}],"src":"36:2660:32"},"id":32},"contracts/actions/ERC721MintAction.sol":{"ast":{"absolutePath":"contracts/actions/ERC721MintAction.sol","exportedSymbols":{"Action":[12758],"Cloneable":[17720],"ContractAction":[12914],"ERC721":[9111],"ERC721MintAction":[13099],"Validator":[18282]},"id":13100,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12916,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:33"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":12918,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":9112,"src":"62:49:33","symbolAliases":[{"foreign":{"id":12917,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"70:6:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":12920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":12759,"src":"113:52:33","symbolAliases":[{"foreign":{"id":12919,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"121:6:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12922,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":17721,"src":"166:57:33","symbolAliases":[{"foreign":{"id":12921,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"174:9:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/ContractAction.sol","file":"contracts/actions/ContractAction.sol","id":12924,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":12915,"src":"224:68:33","symbolAliases":[{"foreign":{"id":12923,"name":"ContractAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"232:14:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":12926,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13100,"sourceUnit":18283,"src":"293:61:33","symbolAliases":[{"foreign":{"id":12925,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"301:9:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12928,"name":"ContractAction","nameLocations":["842:14:33"],"nodeType":"IdentifierPath","referencedDeclaration":12914,"src":"842:14:33"},"id":12929,"nodeType":"InheritanceSpecifier","src":"842:14:33"},{"baseName":{"id":12930,"name":"Validator","nameLocations":["858:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"858:9:33"},"id":12931,"nodeType":"InheritanceSpecifier","src":"858:9:33"}],"canonicalName":"ERC721MintAction","contractDependencies":[],"contractKind":"contract","documentation":{"id":12927,"nodeType":"StructuredDocumentation","src":"356:457:33","text":"@title ERC721 Mint Action\n @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n @dev The action is expected to be prepared with the data payload for the minting of the token\n @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n @dev It is expected that the target contract has an externally accessible mint function whose selector"},"fullyImplemented":true,"id":13099,"linearizedBaseContracts":[13099,18282,12914,12758,17720,2845,2857,9225,6423],"name":"ERC721MintAction","nameLocation":"822:16:33","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":12932,"nodeType":"StructuredDocumentation","src":"874:127:33","text":"@notice The set of validated tokens\n @dev This is intended to prevent multiple validations against the same token ID"},"functionSelector":"bec95277","id":12936,"mutability":"mutable","name":"validated","nameLocation":"1038:9:33","nodeType":"VariableDeclaration","scope":13099,"src":"1006:41:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":12935,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1014:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1006:24:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12934,"name":"bool","nodeType":"ElementaryTypeName","src":"1025:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":12943,"nodeType":"Block","src":"1310:39:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12940,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1320:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12942,"nodeType":"ExpressionStatement","src":"1320:22:33"}]},"documentation":{"id":12937,"nodeType":"StructuredDocumentation","src":"1054:237:33","text":"@notice Construct the ERC721 Mint Action\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":12944,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12938,"nodeType":"ParameterList","parameters":[],"src":"1307:2:33"},"returnParameters":{"id":12939,"nodeType":"ParameterList","parameters":[],"src":"1310:0:33"},"scope":13099,"src":"1296:53:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[12821,17697],"body":{"id":12964,"nodeType":"Block","src":"1681:62:33","statements":[{"expression":{"arguments":[{"arguments":[{"id":12958,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12947,"src":"1714:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":12959,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12783,"src":"1722:11:33","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"id":12960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1721:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$12783_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}],"expression":{"id":12956,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1703:3:33","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1707:6:33","memberName":"decode","nodeType":"MemberAccess","src":"1703:10:33","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"id":12955,"name":"_initialize","nodeType":"Identifier","overloadedDeclarations":[13098],"referencedDeclaration":13098,"src":"1691:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$12783_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":12962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1691:45:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12963,"nodeType":"ExpressionStatement","src":"1691:45:33"}]},"documentation":{"id":12945,"nodeType":"StructuredDocumentation","src":"1355:216:33","text":"@inheritdoc Cloneable\n @notice Initialize the contract with the owner and the required mint data\n @param data_ The data payload for the mint action `(address target, bytes4 selector, uint256 value)`"},"functionSelector":"439fab91","id":12965,"implemented":true,"kind":"function","modifiers":[{"id":12953,"kind":"modifierInvocation","modifierName":{"id":12952,"name":"initializer","nameLocations":["1669:11:33"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1669:11:33"},"nodeType":"ModifierInvocation","src":"1669:11:33"}],"name":"initialize","nameLocation":"1585:10:33","nodeType":"FunctionDefinition","overrides":{"id":12951,"nodeType":"OverrideSpecifier","overrides":[{"id":12949,"name":"Cloneable","nameLocations":["1642:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1642:9:33"},{"id":12950,"name":"ContractAction","nameLocations":["1653:14:33"],"nodeType":"IdentifierPath","referencedDeclaration":12914,"src":"1653:14:33"}],"src":"1633:35:33"},"parameters":{"id":12948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12947,"mutability":"mutable","name":"data_","nameLocation":"1611:5:33","nodeType":"VariableDeclaration","scope":12965,"src":"1596:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12946,"name":"bytes","nodeType":"ElementaryTypeName","src":"1596:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1595:22:33"},"returnParameters":{"id":12954,"nodeType":"ParameterList","parameters":[],"src":"1681:0:33"},"scope":13099,"src":"1576:167:33","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12859],"body":{"id":12984,"nodeType":"Block","src":"2116:85:33","statements":[{"expression":{"components":[{"id":12976,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12968,"src":"2127:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":12977,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12972,"src":"2134:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12978,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12974,"src":"2143:10:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2126:28:33","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_calldata_ptr_$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes calldata,bool,bytes memory)"}},"id":12980,"nodeType":"ExpressionStatement","src":"2126:28:33"},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12981,"name":"ExecuteNotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12703,"src":"2171:21:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2171:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12983,"nodeType":"RevertStatement","src":"2164:30:33"}]},"documentation":{"id":12966,"nodeType":"StructuredDocumentation","src":"1749:249:33","text":"@notice Execute the action (not yet implemented)\n @param data_ The data payload for the call (not used in this implementation)\n @return success The success status of the call\n @return returnData The return data from the call"},"functionSelector":"09c5eabe","id":12985,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"2012:7:33","nodeType":"FunctionDefinition","overrides":{"id":12970,"nodeType":"OverrideSpecifier","overrides":[],"src":"2059:8:33"},"parameters":{"id":12969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12968,"mutability":"mutable","name":"data_","nameLocation":"2035:5:33","nodeType":"VariableDeclaration","scope":12985,"src":"2020:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12967,"name":"bytes","nodeType":"ElementaryTypeName","src":"2020:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2019:22:33"},"returnParameters":{"id":12975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12972,"mutability":"mutable","name":"success","nameLocation":"2082:7:33","nodeType":"VariableDeclaration","scope":12985,"src":"2077:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12971,"name":"bool","nodeType":"ElementaryTypeName","src":"2077:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12974,"mutability":"mutable","name":"returnData","nameLocation":"2104:10:33","nodeType":"VariableDeclaration","scope":12985,"src":"2091:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12973,"name":"bytes","nodeType":"ElementaryTypeName","src":"2091:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2076:39:33"},"scope":13099,"src":"2003:198:33","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[12873],"body":{"id":12999,"nodeType":"Block","src":"2624:44:33","statements":[{"expression":{"arguments":[{"id":12996,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12988,"src":"2655:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12994,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2641:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721MintAction_$13099_$","typeString":"type(contract super ERC721MintAction)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2647:7:33","memberName":"prepare","nodeType":"MemberAccess","referencedDeclaration":12873,"src":"2641:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes calldata) view returns (bytes memory)"}},"id":12997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12993,"id":12998,"nodeType":"Return","src":"2634:27:33"}]},"documentation":{"id":12986,"nodeType":"StructuredDocumentation","src":"2207:329:33","text":"@notice Prepare the action for execution and return the expected payload\n @param data_ The ABI-encoded payload for the target contract call\n @return The encoded payload to be sent to the target contract\n @dev Note that the mint value is NOT included in the prepared payload but must be sent with the call"},"functionSelector":"d7768c47","id":13000,"implemented":true,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"2550:7:33","nodeType":"FunctionDefinition","overrides":{"id":12990,"nodeType":"OverrideSpecifier","overrides":[],"src":"2592:8:33"},"parameters":{"id":12989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12988,"mutability":"mutable","name":"data_","nameLocation":"2573:5:33","nodeType":"VariableDeclaration","scope":13000,"src":"2558:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12987,"name":"bytes","nodeType":"ElementaryTypeName","src":"2558:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2557:22:33"},"returnParameters":{"id":12993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13000,"src":"2610:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12991,"name":"bytes","nodeType":"ElementaryTypeName","src":"2610:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2609:14:33"},"scope":13099,"src":"2541:127:33","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[18258],"body":{"id":13059,"nodeType":"Block","src":"3250:344:33","statements":[{"assignments":[13010,13012],"declarations":[{"constant":false,"id":13010,"mutability":"mutable","name":"holder","nameLocation":"3269:6:33","nodeType":"VariableDeclaration","scope":13059,"src":"3261:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13009,"name":"address","nodeType":"ElementaryTypeName","src":"3261:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13012,"mutability":"mutable","name":"payload","nameLocation":"3290:7:33","nodeType":"VariableDeclaration","scope":13059,"src":"3277:20:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13011,"name":"bytes","nodeType":"ElementaryTypeName","src":"3277:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13022,"initialValue":{"arguments":[{"id":13015,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"3312:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3320:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13016,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:33","typeDescriptions":{}}},{"id":13019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3329:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":13018,"name":"bytes","nodeType":"ElementaryTypeName","src":"3329:5:33","typeDescriptions":{}}}],"id":13020,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3319:16:33","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}],"expression":{"id":13013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3301:3:33","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3305:6:33","memberName":"decode","nodeType":"MemberAccess","src":"3301:10:33","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3301:35:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3260:76:33"},{"assignments":[13024],"declarations":[{"constant":false,"id":13024,"mutability":"mutable","name":"tokenId","nameLocation":"3354:7:33","nodeType":"VariableDeclaration","scope":13059,"src":"3346:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13023,"name":"uint256","nodeType":"ElementaryTypeName","src":"3346:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13032,"initialValue":{"arguments":[{"arguments":[{"id":13029,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13012,"src":"3380:7:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3372:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3372:7:33","typeDescriptions":{}}},"id":13030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:16:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3364:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13025,"name":"uint256","nodeType":"ElementaryTypeName","src":"3364:7:33","typeDescriptions":{}}},"id":13031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3364:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3346:43:33"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13037,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"3427:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13034,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"3411:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13033,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"3404:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$9111_$","typeString":"type(contract ERC721)"}},"id":13035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC721_$9111","typeString":"contract ERC721"}},"id":13036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3419:7:33","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":8485,"src":"3404:22:33","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13039,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13010,"src":"3439:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3404:41:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3449:19:33","subExpression":{"baseExpression":{"id":13041,"name":"validated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12936,"src":"3450:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":13043,"indexExpression":{"id":13042,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"3460:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3450:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3404:64:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13057,"nodeType":"Block","src":"3551:37:33","statements":[{"expression":{"hexValue":"66616c7365","id":13055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3572:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13008,"id":13056,"nodeType":"Return","src":"3565:12:33"}]},"id":13058,"nodeType":"IfStatement","src":"3400:188:33","trueBody":{"id":13054,"nodeType":"Block","src":"3470:75:33","statements":[{"expression":{"id":13050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13046,"name":"validated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12936,"src":"3484:9:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":13048,"indexExpression":{"id":13047,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"3494:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3484:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3505:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3484:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13051,"nodeType":"ExpressionStatement","src":"3484:25:33"},{"expression":{"hexValue":"74727565","id":13052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3530:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13008,"id":13053,"nodeType":"Return","src":"3523:11:33"}]}}]},"documentation":{"id":13001,"nodeType":"StructuredDocumentation","src":"2674:482:33","text":"@inheritdoc Validator\n @notice Validate that the action has been completed successfully\n @param data_ The data payload for the action `(address holder, (uint256 tokenId))`\n @return success True if the action has been validated for the user\n @dev The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)\n @dev Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`"},"functionSelector":"c16e50ef","id":13060,"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"3170:8:33","nodeType":"FunctionDefinition","overrides":{"id":13005,"nodeType":"OverrideSpecifier","overrides":[],"src":"3218:8:33"},"parameters":{"id":13004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13003,"mutability":"mutable","name":"data_","nameLocation":"3194:5:33","nodeType":"VariableDeclaration","scope":13060,"src":"3179:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13002,"name":"bytes","nodeType":"ElementaryTypeName","src":"3179:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3178:22:33"},"returnParameters":{"id":13008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13007,"mutability":"mutable","name":"success","nameLocation":"3241:7:33","nodeType":"VariableDeclaration","scope":13060,"src":"3236:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13006,"name":"bool","nodeType":"ElementaryTypeName","src":"3236:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3235:14:33"},"scope":13099,"src":"3161:433:33","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[12757,18281],"body":{"id":13076,"nodeType":"Block","src":"3740:60:33","statements":[{"expression":{"arguments":[{"id":13073,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13063,"src":"3781:11:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13071,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3757:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721MintAction_$13099_$","typeString":"type(contract super ERC721MintAction)"}},"id":13072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3763:17:33","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18281,"src":"3757:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3757:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13070,"id":13075,"nodeType":"Return","src":"3750:43:33"}]},"documentation":{"id":13061,"nodeType":"StructuredDocumentation","src":"3600:25:33","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13077,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3639:17:33","nodeType":"FunctionDefinition","overrides":{"id":13067,"nodeType":"OverrideSpecifier","overrides":[{"id":13065,"name":"Action","nameLocations":["3706:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":12758,"src":"3706:6:33"},{"id":13066,"name":"Validator","nameLocations":["3714:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"3714:9:33"}],"src":"3697:27:33"},"parameters":{"id":13064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13063,"mutability":"mutable","name":"interfaceId","nameLocation":"3664:11:33","nodeType":"VariableDeclaration","scope":13077,"src":"3657:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13062,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3657:6:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3656:20:33"},"returnParameters":{"id":13070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13077,"src":"3734:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13068,"name":"bool","nodeType":"ElementaryTypeName","src":"3734:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3733:6:33"},"scope":13099,"src":"3630:170:33","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12902],"body":{"id":13097,"nodeType":"Block","src":"3888:79:33","statements":[{"expression":{"arguments":[{"id":13089,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13080,"src":"3916:5:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"expression":{"id":13086,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3898:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721MintAction_$13099_$","typeString":"type(contract super ERC721MintAction)"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3904:11:33","memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":12902,"src":"3898:17:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$12783_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":13090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3898:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13091,"nodeType":"ExpressionStatement","src":"3898:24:33"},{"expression":{"arguments":[{"expression":{"id":13093,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3949:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3953:6:33","memberName":"sender","nodeType":"MemberAccess","src":"3949:10:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13092,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3932:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3932:28:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13096,"nodeType":"ExpressionStatement","src":"3932:28:33"}]},"id":13098,"implemented":true,"kind":"function","modifiers":[{"id":13084,"kind":"modifierInvocation","modifierName":{"id":13083,"name":"onlyInitializing","nameLocations":["3871:16:33"],"nodeType":"IdentifierPath","referencedDeclaration":9176,"src":"3871:16:33"},"nodeType":"ModifierInvocation","src":"3871:16:33"}],"name":"_initialize","nameLocation":"3815:11:33","nodeType":"FunctionDefinition","overrides":{"id":13082,"nodeType":"OverrideSpecifier","overrides":[],"src":"3862:8:33"},"parameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"init_","nameLocation":"3846:5:33","nodeType":"VariableDeclaration","scope":13098,"src":"3827:24:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_memory_ptr","typeString":"struct ContractAction.InitPayload"},"typeName":{"id":13079,"nodeType":"UserDefinedTypeName","pathNode":{"id":13078,"name":"InitPayload","nameLocations":["3827:11:33"],"nodeType":"IdentifierPath","referencedDeclaration":12783,"src":"3827:11:33"},"referencedDeclaration":12783,"src":"3827:11:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$12783_storage_ptr","typeString":"struct ContractAction.InitPayload"}},"visibility":"internal"}],"src":"3826:26:33"},"returnParameters":{"id":13085,"nodeType":"ParameterList","parameters":[],"src":"3888:0:33"},"scope":13099,"src":"3806:161:33","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":13100,"src":"813:3156:33","usedErrors":[6235,6238,6241,6244,9117,9120,12703,12773,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,12700,12712]}],"src":"36:3934:33"},"id":33},"contracts/allowlists/AllowList.sol":{"ast":{"absolutePath":"contracts/allowlists/AllowList.sol","exportedSymbols":{"AllowList":[13154],"Cloneable":[17720],"Ownable":[6423]},"id":13155,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13101,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:34"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":13103,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13155,"sourceUnit":6424,"src":"62:49:34","symbolAliases":[{"foreign":{"id":13102,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13105,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13155,"sourceUnit":17721,"src":"113:57:34","symbolAliases":[{"foreign":{"id":13104,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"121:9:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13107,"name":"Ownable","nameLocations":["533:7:34"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"533:7:34"},"id":13108,"nodeType":"InheritanceSpecifier","src":"533:7:34"},{"baseName":{"id":13109,"name":"Cloneable","nameLocations":["542:9:34"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"542:9:34"},"id":13110,"nodeType":"InheritanceSpecifier","src":"542:9:34"}],"canonicalName":"AllowList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13106,"nodeType":"StructuredDocumentation","src":"172:330:34","text":"@title Boost AllowList\n @notice Abstract contract for a generic Allow List within the Boost protocol\n @dev Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":13154,"linearizedBaseContracts":[13154,17720,2845,2857,9225,6423],"name":"AllowList","nameLocation":"520:9:34","nodeType":"ContractDefinition","nodes":[{"body":{"id":13119,"nodeType":"Block","src":"624:45:34","statements":[{"expression":{"arguments":[{"expression":{"id":13115,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"651:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"655:6:34","memberName":"sender","nodeType":"MemberAccess","src":"651:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13114,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"634:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"634:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13118,"nodeType":"ExpressionStatement","src":"634:28:34"}]},"documentation":{"id":13111,"nodeType":"StructuredDocumentation","src":"558:47:34","text":"@notice Constructor to initialize the owner"},"id":13120,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13112,"nodeType":"ParameterList","parameters":[],"src":"621:2:34"},"returnParameters":{"id":13113,"nodeType":"ParameterList","parameters":[],"src":"624:0:34"},"scope":13154,"src":"610:59:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":13121,"nodeType":"StructuredDocumentation","src":"675:214:34","text":"@notice Check if a user is authorized\n @param user_ The address of the user\n @param data_ The data payload for the authorization check, if applicable\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13130,"implemented":false,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"903:9:34","nodeType":"FunctionDefinition","parameters":{"id":13126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13123,"mutability":"mutable","name":"user_","nameLocation":"921:5:34","nodeType":"VariableDeclaration","scope":13130,"src":"913:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13122,"name":"address","nodeType":"ElementaryTypeName","src":"913:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13125,"mutability":"mutable","name":"data_","nameLocation":"943:5:34","nodeType":"VariableDeclaration","scope":13130,"src":"928:20:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13124,"name":"bytes","nodeType":"ElementaryTypeName","src":"928:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"912:37:34"},"returnParameters":{"id":13129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13130,"src":"981:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13127,"name":"bool","nodeType":"ElementaryTypeName","src":"981:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"980:6:34"},"scope":13154,"src":"894:93:34","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":13152,"nodeType":"Block","src":"1125:106:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13140,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"1142:11:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13142,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"1162:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AllowList_$13154_$","typeString":"type(contract AllowList)"}],"id":13141,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1157:4:34","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1157:15:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AllowList_$13154","typeString":"type(contract AllowList)"}},"id":13144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1173:11:34","memberName":"interfaceId","nodeType":"MemberAccess","src":"1157:27:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1142:42:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13148,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"1212:11:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13146,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1188:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AllowList_$13154_$","typeString":"type(contract super AllowList)"}},"id":13147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1194:17:34","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"1188:23:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:36:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1142:82:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13139,"id":13151,"nodeType":"Return","src":"1135:89:34"}]},"documentation":{"id":13131,"nodeType":"StructuredDocumentation","src":"993:25:34","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13153,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1032:17:34","nodeType":"FunctionDefinition","overrides":{"id":13136,"nodeType":"OverrideSpecifier","overrides":[{"id":13135,"name":"Cloneable","nameLocations":["1099:9:34"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1099:9:34"}],"src":"1090:19:34"},"parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13133,"mutability":"mutable","name":"interfaceId","nameLocation":"1057:11:34","nodeType":"VariableDeclaration","scope":13153,"src":"1050:18:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13132,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1050:6:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1049:20:34"},"returnParameters":{"id":13139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13153,"src":"1119:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13137,"name":"bool","nodeType":"ElementaryTypeName","src":"1119:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1118:6:34"},"scope":13154,"src":"1023:208:34","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":13155,"src":"502:731:34","usedErrors":[6235,6238,6241,6244,9117,9120,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:1198:34"},"id":34},"contracts/allowlists/SimpleAllowList.sol":{"ast":{"absolutePath":"contracts/allowlists/SimpleAllowList.sol","exportedSymbols":{"AllowList":[13154],"BoostError":[17566],"OwnableRoles":[7950],"SimpleAllowList":[13307]},"id":13308,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13156,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:35"},{"absolutePath":"@solady/auth/OwnableRoles.sol","file":"@solady/auth/OwnableRoles.sol","id":13158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13308,"sourceUnit":7951,"src":"62:59:35","symbolAliases":[{"foreign":{"id":13157,"name":"OwnableRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"70:12:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":13160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13308,"sourceUnit":13155,"src":"123:61:35","symbolAliases":[{"foreign":{"id":13159,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"131:9:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13162,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13308,"sourceUnit":17567,"src":"185:59:35","symbolAliases":[{"foreign":{"id":13161,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"193:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13164,"name":"AllowList","nameLocations":["427:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":13154,"src":"427:9:35"},"id":13165,"nodeType":"InheritanceSpecifier","src":"427:9:35"},{"baseName":{"id":13166,"name":"OwnableRoles","nameLocations":["438:12:35"],"nodeType":"IdentifierPath","referencedDeclaration":7950,"src":"438:12:35"},"id":13167,"nodeType":"InheritanceSpecifier","src":"438:12:35"}],"canonicalName":"SimpleAllowList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13163,"nodeType":"StructuredDocumentation","src":"246:153:35","text":"@title Simple AllowList\n @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses"},"fullyImplemented":true,"id":13307,"linearizedBaseContracts":[13307,7950,13154,17720,2845,2857,9225,6423],"name":"SimpleAllowList","nameLocation":"408:15:35","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":13168,"nodeType":"StructuredDocumentation","src":"457:48:35","text":"@notice The role for managing the allow list"},"functionSelector":"98332bbc","id":13173,"mutability":"constant","name":"LIST_MANAGER_ROLE","nameLocation":"534:17:35","nodeType":"VariableDeclaration","scope":13307,"src":"510:50:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13169,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":13172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":13170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"554:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":13171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"559:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"554:6:35","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"public"},{"constant":false,"documentation":{"id":13174,"nodeType":"StructuredDocumentation","src":"567:48:35","text":"@dev An internal mapping of allowed statuses"},"id":13178,"mutability":"mutable","name":"_allowed","nameLocation":"653:8:35","nodeType":"VariableDeclaration","scope":13307,"src":"620:41:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13177,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13175,"name":"address","nodeType":"ElementaryTypeName","src":"628:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"620:24:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13176,"name":"bool","nodeType":"ElementaryTypeName","src":"639:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":13185,"nodeType":"Block","src":"923:39:35","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13182,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"933:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"933:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13184,"nodeType":"ExpressionStatement","src":"933:22:35"}]},"documentation":{"id":13179,"nodeType":"StructuredDocumentation","src":"668:236:35","text":"@notice Construct a new SimpleAllowList\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13186,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13180,"nodeType":"ParameterList","parameters":[],"src":"920:2:35"},"returnParameters":{"id":13181,"nodeType":"ParameterList","parameters":[],"src":"923:0:35"},"scope":13307,"src":"909:53:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":13241,"nodeType":"Block","src":"1216:298:35","statements":[{"assignments":[13196,13199],"declarations":[{"constant":false,"id":13196,"mutability":"mutable","name":"owner_","nameLocation":"1235:6:35","nodeType":"VariableDeclaration","scope":13241,"src":"1227:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13195,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13199,"mutability":"mutable","name":"allowList_","nameLocation":"1260:10:35","nodeType":"VariableDeclaration","scope":13241,"src":"1243:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13197,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13198,"nodeType":"ArrayTypeName","src":"1243:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":13210,"initialValue":{"arguments":[{"id":13202,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13189,"src":"1285:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1293:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13203,"name":"address","nodeType":"ElementaryTypeName","src":"1293:7:35","typeDescriptions":{}}},{"baseExpression":{"id":13206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1302:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13205,"name":"address","nodeType":"ElementaryTypeName","src":"1302:7:35","typeDescriptions":{}}},"id":13207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1302:9:35","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":13208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1292:20:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}],"expression":{"id":13200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1274:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1278:6:35","memberName":"decode","nodeType":"MemberAccess","src":"1274:10:35","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1274:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"tuple(address payable,address[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1226:87:35"},{"expression":{"arguments":[{"id":13212,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13196,"src":"1340:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13211,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1323:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1323:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13214,"nodeType":"ExpressionStatement","src":"1323:24:35"},{"expression":{"arguments":[{"id":13216,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13196,"src":"1369:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13217,"name":"LIST_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13173,"src":"1377:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13215,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6482,"src":"1357:11:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:38:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13219,"nodeType":"ExpressionStatement","src":"1357:38:35"},{"body":{"id":13239,"nodeType":"Block","src":"1453:55:35","statements":[{"expression":{"id":13237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13231,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13178,"src":"1467:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13235,"indexExpression":{"baseExpression":{"id":13232,"name":"allowList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"1476:10:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13234,"indexExpression":{"id":13233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"1487:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1476:13:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1467:23:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1493:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1467:30:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13238,"nodeType":"ExpressionStatement","src":"1467:30:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13224,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"1425:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13225,"name":"allowList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"1429:10:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1440:6:35","memberName":"length","nodeType":"MemberAccess","src":"1429:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1425:21:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13240,"initializationExpression":{"assignments":[13221],"declarations":[{"constant":false,"id":13221,"mutability":"mutable","name":"i","nameLocation":"1418:1:35","nodeType":"VariableDeclaration","scope":13240,"src":"1410:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1410:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13223,"initialValue":{"hexValue":"30","id":13222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1422:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1410:13:35"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1448:3:35","subExpression":{"id":13228,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"1448:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13230,"nodeType":"ExpressionStatement","src":"1448:3:35"},"nodeType":"ForStatement","src":"1405:103:35"}]},"documentation":{"id":13187,"nodeType":"StructuredDocumentation","src":"968:165:35","text":"@notice Initialize the contract with the list of allowed addresses\n @param data_ The compressed initialization data `(address owner, address[] allowList)`"},"functionSelector":"439fab91","id":13242,"implemented":true,"kind":"function","modifiers":[{"id":13193,"kind":"modifierInvocation","modifierName":{"id":13192,"name":"initializer","nameLocations":["1204:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1204:11:35"},"nodeType":"ModifierInvocation","src":"1204:11:35"}],"name":"initialize","nameLocation":"1147:10:35","nodeType":"FunctionDefinition","overrides":{"id":13191,"nodeType":"OverrideSpecifier","overrides":[],"src":"1195:8:35"},"parameters":{"id":13190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13189,"mutability":"mutable","name":"data_","nameLocation":"1173:5:35","nodeType":"VariableDeclaration","scope":13242,"src":"1158:20:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13188,"name":"bytes","nodeType":"ElementaryTypeName","src":"1158:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1157:22:35"},"returnParameters":{"id":13194,"nodeType":"ParameterList","parameters":[],"src":"1216:0:35"},"scope":13307,"src":"1138:376:35","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13130],"body":{"id":13257,"nodeType":"Block","src":"1863:39:35","statements":[{"expression":{"baseExpression":{"id":13253,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13178,"src":"1880:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13255,"indexExpression":{"id":13254,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13245,"src":"1889:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1880:15:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13252,"id":13256,"nodeType":"Return","src":"1873:22:35"}]},"documentation":{"id":13243,"nodeType":"StructuredDocumentation","src":"1520:228:35","text":"@notice Check if a user is authorized\n @param user_ The address of the user\n @param - The data payload for the authorization check, not used in this implementation\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13258,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"1762:9:35","nodeType":"FunctionDefinition","overrides":{"id":13249,"nodeType":"OverrideSpecifier","overrides":[],"src":"1839:8:35"},"parameters":{"id":13248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13245,"mutability":"mutable","name":"user_","nameLocation":"1780:5:35","nodeType":"VariableDeclaration","scope":13258,"src":"1772:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13244,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13258,"src":"1787:14:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13246,"name":"bytes","nodeType":"ElementaryTypeName","src":"1787:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1771:53:35"},"returnParameters":{"id":13252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13258,"src":"1857:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13250,"name":"bool","nodeType":"ElementaryTypeName","src":"1857:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1856:6:35"},"scope":13307,"src":"1753:149:35","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13305,"nodeType":"Block","src":"2312:201:35","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13271,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13262,"src":"2326:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2333:6:35","memberName":"length","nodeType":"MemberAccess","src":"2326:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13273,"name":"allowed_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"2343:8:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:6:35","memberName":"length","nodeType":"MemberAccess","src":"2343:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2326:32:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13281,"nodeType":"IfStatement","src":"2322:72:35","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13276,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2367:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":13278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2378:14:35","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":17541,"src":"2367:25:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2367:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13280,"nodeType":"RevertStatement","src":"2360:34:35"}},{"body":{"id":13303,"nodeType":"Block","src":"2449:58:35","statements":[{"expression":{"id":13301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13293,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13178,"src":"2463:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13297,"indexExpression":{"baseExpression":{"id":13294,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13262,"src":"2472:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13296,"indexExpression":{"id":13295,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2479:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2472:9:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2463:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":13298,"name":"allowed_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"2485:8:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13300,"indexExpression":{"id":13299,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2494:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2485:11:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2463:33:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13302,"nodeType":"ExpressionStatement","src":"2463:33:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13286,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2425:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13287,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13262,"src":"2429:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2436:6:35","memberName":"length","nodeType":"MemberAccess","src":"2429:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2425:17:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13304,"initializationExpression":{"assignments":[13283],"declarations":[{"constant":false,"id":13283,"mutability":"mutable","name":"i","nameLocation":"2418:1:35","nodeType":"VariableDeclaration","scope":13304,"src":"2410:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13282,"name":"uint256","nodeType":"ElementaryTypeName","src":"2410:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13285,"initialValue":{"hexValue":"30","id":13284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2422:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2410:13:35"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2444:3:35","subExpression":{"id":13290,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"2444:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13292,"nodeType":"ExpressionStatement","src":"2444:3:35"},"nodeType":"ForStatement","src":"2405:102:35"}]},"documentation":{"id":13259,"nodeType":"StructuredDocumentation","src":"1908:288:35","text":"@notice Set the allowed status of a user\n @param users_ The list of users to update\n @param allowed_ The allowed status of each user\n @dev The length of the `users_` and `allowed_` arrays must be the same\n @dev This function can only be called by the owner"},"functionSelector":"3abb0604","id":13306,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13268,"name":"LIST_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13173,"src":"2293:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13269,"kind":"modifierInvocation","modifierName":{"id":13267,"name":"onlyRoles","nameLocations":["2283:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":6647,"src":"2283:9:35"},"nodeType":"ModifierInvocation","src":"2283:28:35"}],"name":"setAllowed","nameLocation":"2210:10:35","nodeType":"FunctionDefinition","parameters":{"id":13266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13262,"mutability":"mutable","name":"users_","nameLocation":"2240:6:35","nodeType":"VariableDeclaration","scope":13306,"src":"2221:25:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13260,"name":"address","nodeType":"ElementaryTypeName","src":"2221:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13261,"nodeType":"ArrayTypeName","src":"2221:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13265,"mutability":"mutable","name":"allowed_","nameLocation":"2264:8:35","nodeType":"VariableDeclaration","scope":13306,"src":"2248:24:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13263,"name":"bool","nodeType":"ElementaryTypeName","src":"2248:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13264,"nodeType":"ArrayTypeName","src":"2248:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2220:53:35"},"returnParameters":{"id":13270,"nodeType":"ParameterList","parameters":[],"src":"2312:0:35"},"scope":13307,"src":"2201:312:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13308,"src":"399:2116:35","usedErrors":[6235,6238,6241,6244,9117,9120,17541,17666,17669,17672],"usedEvents":[6251,6256,6261,6437,9125]}],"src":"36:2480:35"},"id":35},"contracts/allowlists/SimpleDenyList.sol":{"ast":{"absolutePath":"contracts/allowlists/SimpleDenyList.sol","exportedSymbols":{"AllowList":[13154],"BoostError":[17566],"SimpleDenyList":[13445]},"id":13446,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13309,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:36"},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":13311,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13446,"sourceUnit":13155,"src":"62:61:36","symbolAliases":[{"foreign":{"id":13310,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"70:9:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13313,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13446,"sourceUnit":17567,"src":"124:59:36","symbolAliases":[{"foreign":{"id":13312,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"132:10:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13315,"name":"AllowList","nameLocations":["374:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":13154,"src":"374:9:36"},"id":13316,"nodeType":"InheritanceSpecifier","src":"374:9:36"}],"canonicalName":"SimpleDenyList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13314,"nodeType":"StructuredDocumentation","src":"185:162:36","text":"@title SimpleDenyList\n @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list"},"fullyImplemented":true,"id":13445,"linearizedBaseContracts":[13445,13154,17720,2845,2857,9225,6423],"name":"SimpleDenyList","nameLocation":"356:14:36","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":13317,"nodeType":"StructuredDocumentation","src":"390:47:36","text":"@dev An internal mapping of denied statuses"},"id":13321,"mutability":"mutable","name":"_denied","nameLocation":"475:7:36","nodeType":"VariableDeclaration","scope":13445,"src":"442:40:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13320,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13318,"name":"address","nodeType":"ElementaryTypeName","src":"450:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"442:24:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13319,"name":"bool","nodeType":"ElementaryTypeName","src":"461:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":13328,"nodeType":"Block","src":"743:39:36","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13325,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"753:20:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"753:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13327,"nodeType":"ExpressionStatement","src":"753:22:36"}]},"documentation":{"id":13322,"nodeType":"StructuredDocumentation","src":"489:235:36","text":"@notice Construct a new SimpleDenyList\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13329,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13323,"nodeType":"ParameterList","parameters":[],"src":"740:2:36"},"returnParameters":{"id":13324,"nodeType":"ParameterList","parameters":[],"src":"743:0:36"},"scope":13445,"src":"729:53:36","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":13379,"nodeType":"Block","src":"1042:247:36","statements":[{"assignments":[13339,13342],"declarations":[{"constant":false,"id":13339,"mutability":"mutable","name":"owner_","nameLocation":"1061:6:36","nodeType":"VariableDeclaration","scope":13379,"src":"1053:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13338,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13342,"mutability":"mutable","name":"denyList_","nameLocation":"1086:9:36","nodeType":"VariableDeclaration","scope":13379,"src":"1069:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13340,"name":"address","nodeType":"ElementaryTypeName","src":"1069:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13341,"nodeType":"ArrayTypeName","src":"1069:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":13353,"initialValue":{"arguments":[{"id":13345,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13332,"src":"1110:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1118:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13346,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:36","typeDescriptions":{}}},{"baseExpression":{"id":13349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1127:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13348,"name":"address","nodeType":"ElementaryTypeName","src":"1127:7:36","typeDescriptions":{}}},"id":13350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1127:9:36","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":13351,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1117:20:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}],"expression":{"id":13343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1099:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1103:6:36","memberName":"decode","nodeType":"MemberAccess","src":"1099:10:36","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1099:39:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"tuple(address payable,address[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1052:86:36"},{"expression":{"arguments":[{"id":13355,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13339,"src":"1166:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13354,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1149:16:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13357,"nodeType":"ExpressionStatement","src":"1149:24:36"},{"body":{"id":13377,"nodeType":"Block","src":"1230:53:36","statements":[{"expression":{"id":13375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13369,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"1244:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13373,"indexExpression":{"baseExpression":{"id":13370,"name":"denyList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13342,"src":"1252:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13372,"indexExpression":{"id":13371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"1262:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1252:12:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1244:21:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1268:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1244:28:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13376,"nodeType":"ExpressionStatement","src":"1244:28:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"1203:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13363,"name":"denyList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13342,"src":"1207:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1217:6:36","memberName":"length","nodeType":"MemberAccess","src":"1207:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1203:20:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13378,"initializationExpression":{"assignments":[13359],"declarations":[{"constant":false,"id":13359,"mutability":"mutable","name":"i","nameLocation":"1196:1:36","nodeType":"VariableDeclaration","scope":13378,"src":"1188:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1188:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13361,"initialValue":{"hexValue":"30","id":13360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1200:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1188:13:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1225:3:36","subExpression":{"id":13366,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"1225:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13368,"nodeType":"ExpressionStatement","src":"1225:3:36"},"nodeType":"ForStatement","src":"1183:100:36"}]},"documentation":{"id":13330,"nodeType":"StructuredDocumentation","src":"788:171:36","text":"@notice Initialize the contract with the initial list of denied addresses\n @param data_ The compressed initialization data `(address owner, address[] denyList)`"},"functionSelector":"439fab91","id":13380,"implemented":true,"kind":"function","modifiers":[{"id":13336,"kind":"modifierInvocation","modifierName":{"id":13335,"name":"initializer","nameLocations":["1030:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1030:11:36"},"nodeType":"ModifierInvocation","src":"1030:11:36"}],"name":"initialize","nameLocation":"973:10:36","nodeType":"FunctionDefinition","overrides":{"id":13334,"nodeType":"OverrideSpecifier","overrides":[],"src":"1021:8:36"},"parameters":{"id":13333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13332,"mutability":"mutable","name":"data_","nameLocation":"999:5:36","nodeType":"VariableDeclaration","scope":13380,"src":"984:20:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13331,"name":"bytes","nodeType":"ElementaryTypeName","src":"984:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"983:22:36"},"returnParameters":{"id":13337,"nodeType":"ParameterList","parameters":[],"src":"1042:0:36"},"scope":13445,"src":"964:325:36","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13130],"body":{"id":13396,"nodeType":"Block","src":"1656:39:36","statements":[{"expression":{"id":13394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1673:15:36","subExpression":{"baseExpression":{"id":13391,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"1674:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13393,"indexExpression":{"id":13392,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13383,"src":"1682:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1674:14:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13390,"id":13395,"nodeType":"Return","src":"1666:22:36"}]},"documentation":{"id":13381,"nodeType":"StructuredDocumentation","src":"1295:246:36","text":"@notice Check if a user is authorized (i.e. not denied)\n @param user_ The address of the user\n @param - The data payload for the authorization check, not used in this implementation\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13397,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"1555:9:36","nodeType":"FunctionDefinition","overrides":{"id":13387,"nodeType":"OverrideSpecifier","overrides":[],"src":"1632:8:36"},"parameters":{"id":13386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13383,"mutability":"mutable","name":"user_","nameLocation":"1573:5:36","nodeType":"VariableDeclaration","scope":13397,"src":"1565:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13382,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13397,"src":"1580:14:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13384,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1564:53:36"},"returnParameters":{"id":13390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13397,"src":"1650:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13388,"name":"bool","nodeType":"ElementaryTypeName","src":"1650:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1649:6:36"},"scope":13445,"src":"1546:149:36","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13443,"nodeType":"Block","src":"2080:198:36","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13409,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"2094:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2101:6:36","memberName":"length","nodeType":"MemberAccess","src":"2094:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13411,"name":"denied_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13404,"src":"2111:7:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2119:6:36","memberName":"length","nodeType":"MemberAccess","src":"2111:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2094:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13419,"nodeType":"IfStatement","src":"2090:71:36","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13414,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2134:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":13416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2145:14:36","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":17541,"src":"2134:25:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:27:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13418,"nodeType":"RevertStatement","src":"2127:34:36"}},{"body":{"id":13441,"nodeType":"Block","src":"2216:56:36","statements":[{"expression":{"id":13439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13431,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"2230:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13435,"indexExpression":{"baseExpression":{"id":13432,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"2238:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13434,"indexExpression":{"id":13433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2245:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2238:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2230:18:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":13436,"name":"denied_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13404,"src":"2251:7:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13438,"indexExpression":{"id":13437,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2259:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2251:10:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2230:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13440,"nodeType":"ExpressionStatement","src":"2230:31:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13424,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2192:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13425,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"2196:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2203:6:36","memberName":"length","nodeType":"MemberAccess","src":"2196:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2192:17:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13442,"initializationExpression":{"assignments":[13421],"declarations":[{"constant":false,"id":13421,"mutability":"mutable","name":"i","nameLocation":"2185:1:36","nodeType":"VariableDeclaration","scope":13442,"src":"2177:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13420,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13423,"initialValue":{"hexValue":"30","id":13422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2177:13:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2211:3:36","subExpression":{"id":13428,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"2211:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13430,"nodeType":"ExpressionStatement","src":"2211:3:36"},"nodeType":"ForStatement","src":"2172:100:36"}]},"documentation":{"id":13398,"nodeType":"StructuredDocumentation","src":"1701:284:36","text":"@notice Set the denied status of a user\n @param users_ The list of users to update\n @param denied_ The denied status of each user\n @dev The length of the `users_` and `denied_` arrays must be the same\n @dev This function can only be called by the owner"},"functionSelector":"141973b0","id":13444,"implemented":true,"kind":"function","modifiers":[{"id":13407,"kind":"modifierInvocation","modifierName":{"id":13406,"name":"onlyOwner","nameLocations":["2070:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"2070:9:36"},"nodeType":"ModifierInvocation","src":"2070:9:36"}],"name":"setDenied","nameLocation":"1999:9:36","nodeType":"FunctionDefinition","parameters":{"id":13405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13401,"mutability":"mutable","name":"users_","nameLocation":"2028:6:36","nodeType":"VariableDeclaration","scope":13444,"src":"2009:25:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13399,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13400,"nodeType":"ArrayTypeName","src":"2009:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13404,"mutability":"mutable","name":"denied_","nameLocation":"2052:7:36","nodeType":"VariableDeclaration","scope":13444,"src":"2036:23:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13402,"name":"bool","nodeType":"ElementaryTypeName","src":"2036:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13403,"nodeType":"ArrayTypeName","src":"2036:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2008:52:36"},"returnParameters":{"id":13408,"nodeType":"ParameterList","parameters":[],"src":"2080:0:36"},"scope":13445,"src":"1990:288:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13446,"src":"347:1933:36","usedErrors":[6235,6238,6241,6244,9117,9120,17541,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:2245:36"},"id":36},"contracts/budgets/Budget.sol":{"ast":{"absolutePath":"contracts/budgets/Budget.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"Cloneable":[17720],"Ownable":[6423],"Receiver":[6229],"SafeTransferLib":[11372]},"id":13670,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13447,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:37"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":13449,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":6424,"src":"62:49:37","symbolAliases":[{"foreign":{"id":13448,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/accounts/Receiver.sol","file":"@solady/accounts/Receiver.sol","id":13451,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":6230,"src":"112:55:37","symbolAliases":[{"foreign":{"id":13450,"name":"Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"120:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":13453,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":11373,"src":"168:66:37","symbolAliases":[{"foreign":{"id":13452,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"176:15:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13455,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":17567,"src":"236:59:37","symbolAliases":[{"foreign":{"id":13454,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"244:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13457,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13670,"sourceUnit":17721,"src":"296:57:37","symbolAliases":[{"foreign":{"id":13456,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"304:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13459,"name":"Ownable","nameLocations":["718:7:37"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"718:7:37"},"id":13460,"nodeType":"InheritanceSpecifier","src":"718:7:37"},{"baseName":{"id":13461,"name":"Cloneable","nameLocations":["727:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"727:9:37"},"id":13462,"nodeType":"InheritanceSpecifier","src":"727:9:37"},{"baseName":{"id":13463,"name":"Receiver","nameLocations":["738:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":6229,"src":"738:8:37"},"id":13464,"nodeType":"InheritanceSpecifier","src":"738:8:37"}],"canonicalName":"Budget","contractDependencies":[],"contractKind":"contract","documentation":{"id":13458,"nodeType":"StructuredDocumentation","src":"355:335:37","text":"@title Boost Budget\n @notice Abstract contract for a generic Budget within the Boost protocol\n @dev Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.\n @dev WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future."},"fullyImplemented":false,"id":13669,"linearizedBaseContracts":[13669,6229,17720,2845,2857,9225,6423],"name":"Budget","nameLocation":"708:6:37","nodeType":"ContractDefinition","nodes":[{"global":false,"id":13467,"libraryName":{"id":13465,"name":"SafeTransferLib","nameLocations":["759:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"759:15:37"},"nodeType":"UsingForDirective","src":"753:34:37","typeName":{"id":13466,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"Budget.AssetType","id":13471,"members":[{"id":13468,"name":"ETH","nameLocation":"818:3:37","nodeType":"EnumValue","src":"818:3:37"},{"id":13469,"name":"ERC20","nameLocation":"831:5:37","nodeType":"EnumValue","src":"831:5:37"},{"id":13470,"name":"ERC1155","nameLocation":"846:7:37","nodeType":"EnumValue","src":"846:7:37"}],"name":"AssetType","nameLocation":"798:9:37","nodeType":"EnumDefinition","src":"793:66:37"},{"canonicalName":"Budget.Transfer","documentation":{"id":13472,"nodeType":"StructuredDocumentation","src":"865:369:37","text":"@notice A struct representing the inputs for an allocation\n @param assetType The type of asset to allocate\n @param asset The address of the asset to allocate\n @param target The address of the payee or payer (from or to, depending on the operation)\n @param data The implementation-specific data for the allocation (amount, token ID, etc.)"},"id":13482,"members":[{"constant":false,"id":13475,"mutability":"mutable","name":"assetType","nameLocation":"1275:9:37","nodeType":"VariableDeclaration","scope":13482,"src":"1265:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"typeName":{"id":13474,"nodeType":"UserDefinedTypeName","pathNode":{"id":13473,"name":"AssetType","nameLocations":["1265:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":13471,"src":"1265:9:37"},"referencedDeclaration":13471,"src":"1265:9:37","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"visibility":"internal"},{"constant":false,"id":13477,"mutability":"mutable","name":"asset","nameLocation":"1302:5:37","nodeType":"VariableDeclaration","scope":13482,"src":"1294:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13476,"name":"address","nodeType":"ElementaryTypeName","src":"1294:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13479,"mutability":"mutable","name":"target","nameLocation":"1325:6:37","nodeType":"VariableDeclaration","scope":13482,"src":"1317:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13478,"name":"address","nodeType":"ElementaryTypeName","src":"1317:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13481,"mutability":"mutable","name":"data","nameLocation":"1347:4:37","nodeType":"VariableDeclaration","scope":13482,"src":"1341:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":13480,"name":"bytes","nodeType":"ElementaryTypeName","src":"1341:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Transfer","nameLocation":"1246:8:37","nodeType":"StructDefinition","scope":13669,"src":"1239:119:37","visibility":"public"},{"canonicalName":"Budget.FungiblePayload","documentation":{"id":13483,"nodeType":"StructuredDocumentation","src":"1364:110:37","text":"@notice The payload for an ETH or ERC20 transfer\n @param amount The amount of the asset to transfer"},"id":13486,"members":[{"constant":false,"id":13485,"mutability":"mutable","name":"amount","nameLocation":"1520:6:37","nodeType":"VariableDeclaration","scope":13486,"src":"1512:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13484,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FungiblePayload","nameLocation":"1486:15:37","nodeType":"StructDefinition","scope":13669,"src":"1479:54:37","visibility":"public"},{"canonicalName":"Budget.ERC1155Payload","documentation":{"id":13487,"nodeType":"StructuredDocumentation","src":"1539:235:37","text":"@notice The payload for an ERC1155 transfer\n @param tokenId The ID of the token to transfer\n @param amount The amount of the token to transfer\n @param data Any additional data to forward to the ERC1155 contract"},"id":13494,"members":[{"constant":false,"id":13489,"mutability":"mutable","name":"tokenId","nameLocation":"1819:7:37","nodeType":"VariableDeclaration","scope":13494,"src":"1811:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13488,"name":"uint256","nodeType":"ElementaryTypeName","src":"1811:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13491,"mutability":"mutable","name":"amount","nameLocation":"1844:6:37","nodeType":"VariableDeclaration","scope":13494,"src":"1836:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13490,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13493,"mutability":"mutable","name":"data","nameLocation":"1866:4:37","nodeType":"VariableDeclaration","scope":13494,"src":"1860:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":13492,"name":"bytes","nodeType":"ElementaryTypeName","src":"1860:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ERC1155Payload","nameLocation":"1786:14:37","nodeType":"StructDefinition","scope":13669,"src":"1779:98:37","visibility":"public"},{"anonymous":false,"documentation":{"id":13495,"nodeType":"StructuredDocumentation","src":"1883:66:37","text":"@notice Emitted when an address's authorization status changes"},"eventSelector":"4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf","id":13501,"name":"Authorized","nameLocation":"1960:10:37","nodeType":"EventDefinition","parameters":{"id":13500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13497,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1987:7:37","nodeType":"VariableDeclaration","scope":13501,"src":"1971:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13496,"name":"address","nodeType":"ElementaryTypeName","src":"1971:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13499,"indexed":false,"mutability":"mutable","name":"isAuthorized","nameLocation":"2001:12:37","nodeType":"VariableDeclaration","scope":13501,"src":"1996:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13498,"name":"bool","nodeType":"ElementaryTypeName","src":"1996:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1970:44:37"},"src":"1954:61:37"},{"anonymous":false,"documentation":{"id":13502,"nodeType":"StructuredDocumentation","src":"2021:63:37","text":"@notice Emitted when assets are distributed from the budget"},"eventSelector":"ad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542","id":13510,"name":"Distributed","nameLocation":"2095:11:37","nodeType":"EventDefinition","parameters":{"id":13509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13504,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"2123:5:37","nodeType":"VariableDeclaration","scope":13510,"src":"2107:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13503,"name":"address","nodeType":"ElementaryTypeName","src":"2107:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13506,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2138:2:37","nodeType":"VariableDeclaration","scope":13510,"src":"2130:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13505,"name":"address","nodeType":"ElementaryTypeName","src":"2130:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13508,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2150:6:37","nodeType":"VariableDeclaration","scope":13510,"src":"2142:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13507,"name":"uint256","nodeType":"ElementaryTypeName","src":"2142:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2106:51:37"},"src":"2089:69:37"},{"documentation":{"id":13511,"nodeType":"StructuredDocumentation","src":"2164:49:37","text":"@notice Thrown when the allocation is invalid"},"errorSelector":"cece04c5","id":13517,"name":"InvalidAllocation","nameLocation":"2224:17:37","nodeType":"ErrorDefinition","parameters":{"id":13516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13513,"mutability":"mutable","name":"asset","nameLocation":"2250:5:37","nodeType":"VariableDeclaration","scope":13517,"src":"2242:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13512,"name":"address","nodeType":"ElementaryTypeName","src":"2242:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13515,"mutability":"mutable","name":"amount","nameLocation":"2265:6:37","nodeType":"VariableDeclaration","scope":13517,"src":"2257:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13514,"name":"uint256","nodeType":"ElementaryTypeName","src":"2257:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2241:31:37"},"src":"2218:55:37"},{"documentation":{"id":13518,"nodeType":"StructuredDocumentation","src":"2279:69:37","text":"@notice Thrown when there are insufficient funds for an operation"},"errorSelector":"5c54305e","id":13526,"name":"InsufficientFunds","nameLocation":"2359:17:37","nodeType":"ErrorDefinition","parameters":{"id":13525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13520,"mutability":"mutable","name":"asset","nameLocation":"2385:5:37","nodeType":"VariableDeclaration","scope":13526,"src":"2377:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13519,"name":"address","nodeType":"ElementaryTypeName","src":"2377:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13522,"mutability":"mutable","name":"available","nameLocation":"2400:9:37","nodeType":"VariableDeclaration","scope":13526,"src":"2392:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13521,"name":"uint256","nodeType":"ElementaryTypeName","src":"2392:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13524,"mutability":"mutable","name":"required","nameLocation":"2419:8:37","nodeType":"VariableDeclaration","scope":13526,"src":"2411:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13523,"name":"uint256","nodeType":"ElementaryTypeName","src":"2411:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2376:52:37"},"src":"2353:76:37"},{"documentation":{"id":13527,"nodeType":"StructuredDocumentation","src":"2435:62:37","text":"@notice Thrown when the length of two arrays are not equal"},"errorSelector":"ff633a38","id":13529,"name":"LengthMismatch","nameLocation":"2508:14:37","nodeType":"ErrorDefinition","parameters":{"id":13528,"nodeType":"ParameterList","parameters":[],"src":"2522:2:37"},"src":"2502:23:37"},{"documentation":{"id":13530,"nodeType":"StructuredDocumentation","src":"2531:62:37","text":"@notice Thrown when a transfer fails for an unknown reason"},"errorSelector":"bf182be8","id":13538,"name":"TransferFailed","nameLocation":"2604:14:37","nodeType":"ErrorDefinition","parameters":{"id":13537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13532,"mutability":"mutable","name":"asset","nameLocation":"2627:5:37","nodeType":"VariableDeclaration","scope":13538,"src":"2619:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13531,"name":"address","nodeType":"ElementaryTypeName","src":"2619:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13534,"mutability":"mutable","name":"to","nameLocation":"2642:2:37","nodeType":"VariableDeclaration","scope":13538,"src":"2634:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13533,"name":"address","nodeType":"ElementaryTypeName","src":"2634:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13536,"mutability":"mutable","name":"amount","nameLocation":"2654:6:37","nodeType":"VariableDeclaration","scope":13538,"src":"2646:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2646:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2618:43:37"},"src":"2598:64:37"},{"body":{"id":13547,"nodeType":"Block","src":"2793:45:37","statements":[{"expression":{"arguments":[{"expression":{"id":13543,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2820:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2824:6:37","memberName":"sender","nodeType":"MemberAccess","src":"2820:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13542,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2803:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:28:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13546,"nodeType":"ExpressionStatement","src":"2803:28:37"}]},"documentation":{"id":13539,"nodeType":"StructuredDocumentation","src":"2668:106:37","text":"@notice Initialize the budget and set the owner\n @dev The owner is set to the contract deployer"},"id":13548,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13540,"nodeType":"ParameterList","parameters":[],"src":"2790:2:37"},"returnParameters":{"id":13541,"nodeType":"ParameterList","parameters":[],"src":"2793:0:37"},"scope":13669,"src":"2779:59:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":13549,"nodeType":"StructuredDocumentation","src":"2844:195:37","text":"@notice Allocate assets to the budget\n @param data_ The compressed data for the allocation (amount, token address, token ID, etc.)\n @return True if the allocation was successful"},"functionSelector":"5aef467a","id":13556,"implemented":false,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"3053:8:37","nodeType":"FunctionDefinition","parameters":{"id":13552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13551,"mutability":"mutable","name":"data_","nameLocation":"3077:5:37","nodeType":"VariableDeclaration","scope":13556,"src":"3062:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13550,"name":"bytes","nodeType":"ElementaryTypeName","src":"3062:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3061:22:37"},"returnParameters":{"id":13555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13556,"src":"3118:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13553,"name":"bool","nodeType":"ElementaryTypeName","src":"3118:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3117:6:37"},"scope":13669,"src":"3044:80:37","stateMutability":"payable","virtual":true,"visibility":"external"},{"documentation":{"id":13557,"nodeType":"StructuredDocumentation","src":"3130:198:37","text":"@notice Reclaim assets from the budget\n @param data_ The compressed data for the reclamation (amount, token address, token ID, etc.)\n @return True if the reclamation was successful"},"functionSelector":"f1c30ec0","id":13564,"implemented":false,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"3342:7:37","nodeType":"FunctionDefinition","parameters":{"id":13560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13559,"mutability":"mutable","name":"data_","nameLocation":"3365:5:37","nodeType":"VariableDeclaration","scope":13564,"src":"3350:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13558,"name":"bytes","nodeType":"ElementaryTypeName","src":"3350:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3349:22:37"},"returnParameters":{"id":13563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13564,"src":"3398:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13561,"name":"bool","nodeType":"ElementaryTypeName","src":"3398:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3397:6:37"},"scope":13669,"src":"3333:71:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13565,"nodeType":"StructuredDocumentation","src":"3410:176:37","text":"@notice Disburse assets from the budget to a single recipient\n @param data_ The compressed {Transfer} request\n @return True if the disbursement was successful"},"functionSelector":"fa4ca9b1","id":13572,"implemented":false,"kind":"function","modifiers":[],"name":"disburse","nameLocation":"3600:8:37","nodeType":"FunctionDefinition","parameters":{"id":13568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13567,"mutability":"mutable","name":"data_","nameLocation":"3624:5:37","nodeType":"VariableDeclaration","scope":13572,"src":"3609:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13566,"name":"bytes","nodeType":"ElementaryTypeName","src":"3609:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3608:22:37"},"returnParameters":{"id":13571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13572,"src":"3657:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13569,"name":"bool","nodeType":"ElementaryTypeName","src":"3657:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3656:6:37"},"scope":13669,"src":"3591:72:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13573,"nodeType":"StructuredDocumentation","src":"3669:189:37","text":"@notice Disburse assets from the budget to multiple recipients\n @param data_ The array of compressed {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":13581,"implemented":false,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"3872:13:37","nodeType":"FunctionDefinition","parameters":{"id":13577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13576,"mutability":"mutable","name":"data_","nameLocation":"3903:5:37","nodeType":"VariableDeclaration","scope":13581,"src":"3886:22:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13574,"name":"bytes","nodeType":"ElementaryTypeName","src":"3886:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13575,"nodeType":"ArrayTypeName","src":"3886:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3885:24:37"},"returnParameters":{"id":13580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13581,"src":"3936:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13578,"name":"bool","nodeType":"ElementaryTypeName","src":"3936:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3935:6:37"},"scope":13669,"src":"3863:79:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13582,"nodeType":"StructuredDocumentation","src":"3948:198:37","text":"@notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets"},"functionSelector":"d2514e84","id":13589,"implemented":false,"kind":"function","modifiers":[],"name":"total","nameLocation":"4160:5:37","nodeType":"FunctionDefinition","parameters":{"id":13585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13584,"mutability":"mutable","name":"asset_","nameLocation":"4174:6:37","nodeType":"VariableDeclaration","scope":13589,"src":"4166:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13583,"name":"address","nodeType":"ElementaryTypeName","src":"4166:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4165:16:37"},"returnParameters":{"id":13588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13589,"src":"4213:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13586,"name":"uint256","nodeType":"ElementaryTypeName","src":"4213:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4212:9:37"},"scope":13669,"src":"4151:71:37","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":13590,"nodeType":"StructuredDocumentation","src":"4228:173:37","text":"@notice Get the amount of assets available for distribution from the budget\n @param asset_ The address of the asset\n @return The amount of assets available"},"functionSelector":"10098ad5","id":13597,"implemented":false,"kind":"function","modifiers":[],"name":"available","nameLocation":"4415:9:37","nodeType":"FunctionDefinition","parameters":{"id":13593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13592,"mutability":"mutable","name":"asset_","nameLocation":"4433:6:37","nodeType":"VariableDeclaration","scope":13597,"src":"4425:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13591,"name":"address","nodeType":"ElementaryTypeName","src":"4425:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4424:16:37"},"returnParameters":{"id":13596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13597,"src":"4472:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13594,"name":"uint256","nodeType":"ElementaryTypeName","src":"4472:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4471:9:37"},"scope":13669,"src":"4406:75:37","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":13598,"nodeType":"StructuredDocumentation","src":"4487:175:37","text":"@notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":13605,"implemented":false,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"4676:11:37","nodeType":"FunctionDefinition","parameters":{"id":13601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13600,"mutability":"mutable","name":"asset_","nameLocation":"4696:6:37","nodeType":"VariableDeclaration","scope":13605,"src":"4688:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13599,"name":"address","nodeType":"ElementaryTypeName","src":"4688:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4687:16:37"},"returnParameters":{"id":13604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13605,"src":"4735:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13602,"name":"uint256","nodeType":"ElementaryTypeName","src":"4735:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:9:37"},"scope":13669,"src":"4667:77:37","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":13606,"nodeType":"StructuredDocumentation","src":"4750:235:37","text":"@notice Reconcile the budget to ensure the known state matches the actual state\n @param data_ The compressed data for the reconciliation (amount, token address, token ID, etc.)\n @return The amount of assets reconciled"},"functionSelector":"451cc191","id":13613,"implemented":false,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"4999:9:37","nodeType":"FunctionDefinition","parameters":{"id":13609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13608,"mutability":"mutable","name":"data_","nameLocation":"5024:5:37","nodeType":"VariableDeclaration","scope":13613,"src":"5009:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13607,"name":"bytes","nodeType":"ElementaryTypeName","src":"5009:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5008:22:37"},"returnParameters":{"id":13612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13613,"src":"5057:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13610,"name":"uint256","nodeType":"ElementaryTypeName","src":"5057:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5056:9:37"},"scope":13669,"src":"4990:76:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":13635,"nodeType":"Block","src":"5204:103:37","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13623,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13616,"src":"5221:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13625,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5241:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}],"id":13624,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5236:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5236:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Budget_$13669","typeString":"type(contract Budget)"}},"id":13627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5249:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"5236:24:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5221:39:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13631,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13616,"src":"5288:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13629,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5264:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Budget_$13669_$","typeString":"type(contract super Budget)"}},"id":13630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:17:37","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"5264:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5264:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5221:79:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13622,"id":13634,"nodeType":"Return","src":"5214:86:37"}]},"documentation":{"id":13614,"nodeType":"StructuredDocumentation","src":"5072:25:37","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13636,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5111:17:37","nodeType":"FunctionDefinition","overrides":{"id":13619,"nodeType":"OverrideSpecifier","overrides":[{"id":13618,"name":"Cloneable","nameLocations":["5178:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"5178:9:37"}],"src":"5169:19:37"},"parameters":{"id":13617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13616,"mutability":"mutable","name":"interfaceId","nameLocation":"5136:11:37","nodeType":"VariableDeclaration","scope":13636,"src":"5129:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13615,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5129:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5128:20:37"},"returnParameters":{"id":13622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13636,"src":"5198:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13620,"name":"bool","nodeType":"ElementaryTypeName","src":"5198:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5197:6:37"},"scope":13669,"src":"5102:205:37","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":13637,"nodeType":"StructuredDocumentation","src":"5313:293:37","text":"@notice Set the authorized status of the given accounts\n @param accounts_ The accounts to authorize or deauthorize\n @param isAuthorized_ The authorization status for the given accounts\n @dev The mechanism for managing authorization is left to the implementing contract"},"functionSelector":"4359d28a","id":13646,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorized","nameLocation":"5620:13:37","nodeType":"FunctionDefinition","parameters":{"id":13644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13640,"mutability":"mutable","name":"accounts_","nameLocation":"5653:9:37","nodeType":"VariableDeclaration","scope":13646,"src":"5634:28:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13638,"name":"address","nodeType":"ElementaryTypeName","src":"5634:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13639,"nodeType":"ArrayTypeName","src":"5634:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13643,"mutability":"mutable","name":"isAuthorized_","nameLocation":"5680:13:37","nodeType":"VariableDeclaration","scope":13646,"src":"5664:29:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13641,"name":"bool","nodeType":"ElementaryTypeName","src":"5664:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13642,"nodeType":"ArrayTypeName","src":"5664:6:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"5633:61:37"},"returnParameters":{"id":13645,"nodeType":"ParameterList","parameters":[],"src":"5711:0:37"},"scope":13669,"src":"5611:101:37","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":13647,"nodeType":"StructuredDocumentation","src":"5718:256:37","text":"@notice Check if the given account is authorized to use the budget\n @param account_ The account to check\n @return True if the account is authorized\n @dev The mechanism for checking authorization is left to the implementing contract"},"functionSelector":"fe9fbb80","id":13654,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"5988:12:37","nodeType":"FunctionDefinition","parameters":{"id":13650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13649,"mutability":"mutable","name":"account_","nameLocation":"6009:8:37","nodeType":"VariableDeclaration","scope":13654,"src":"6001:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13648,"name":"address","nodeType":"ElementaryTypeName","src":"6001:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6000:18:37"},"returnParameters":{"id":13653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13654,"src":"6050:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13651,"name":"bool","nodeType":"ElementaryTypeName","src":"6050:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6049:6:37"},"scope":13669,"src":"5979:77:37","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[6215],"body":{"id":13660,"nodeType":"Block","src":"6135:23:37","statements":[{"functionReturnParameters":13658,"id":13659,"nodeType":"Return","src":"6145:7:37"}]},"documentation":{"id":13655,"nodeType":"StructuredDocumentation","src":"6062:24:37","text":"@inheritdoc Receiver"},"id":13661,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","overrides":{"id":13657,"nodeType":"OverrideSpecifier","overrides":[],"src":"6126:8:37"},"parameters":{"id":13656,"nodeType":"ParameterList","parameters":[],"src":"6098:2:37"},"returnParameters":{"id":13658,"nodeType":"ParameterList","parameters":[],"src":"6135:0:37"},"scope":13669,"src":"6091:67:37","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[6222],"body":{"id":13667,"nodeType":"Block","src":"6238:23:37","statements":[{"functionReturnParameters":13665,"id":13666,"nodeType":"Return","src":"6248:7:37"}]},"documentation":{"id":13662,"nodeType":"StructuredDocumentation","src":"6164:24:37","text":"@inheritdoc Receiver"},"id":13668,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","overrides":{"id":13664,"nodeType":"OverrideSpecifier","overrides":[],"src":"6229:8:37"},"parameters":{"id":13663,"nodeType":"ParameterList","parameters":[],"src":"6201:2:37"},"returnParameters":{"id":13665,"nodeType":"ParameterList","parameters":[],"src":"6238:0:37"},"scope":13669,"src":"6193:68:37","stateMutability":"payable","virtual":true,"visibility":"external"}],"scope":13670,"src":"690:5573:37","usedErrors":[6235,6238,6241,6244,9117,9120,13517,13526,13529,13538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,13501,13510]}],"src":"36:6228:37"},"id":37},"contracts/budgets/SimpleBudget.sol":{"ast":{"absolutePath":"contracts/budgets/SimpleBudget.sol","exportedSymbols":{"Budget":[13669],"Cloneable":[17720],"IERC1155":[1190],"IERC1155Receiver":[1232],"IERC165":[2857],"ReentrancyGuard":[11038],"SafeTransferLib":[11372],"SimpleBudget":[14680]},"id":14681,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13671,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:38"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":13673,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":1233,"src":"62:92:38","symbolAliases":[{"foreign":{"id":13672,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"70:16:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":13675,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":1191,"src":"155:76:38","symbolAliases":[{"foreign":{"id":13674,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"163:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":13677,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":2858,"src":"232:80:38","symbolAliases":[{"foreign":{"id":13676,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"240:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":13679,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":11373,"src":"314:66:38","symbolAliases":[{"foreign":{"id":13678,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"322:15:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":13681,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":11039,"src":"381:66:38","symbolAliases":[{"foreign":{"id":13680,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"389:15:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":13683,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":13670,"src":"449:52:38","symbolAliases":[{"foreign":{"id":13682,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"457:6:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13685,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14681,"sourceUnit":17721,"src":"502:57:38","symbolAliases":[{"foreign":{"id":13684,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"510:9:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13687,"name":"Budget","nameLocations":["794:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"794:6:38"},"id":13688,"nodeType":"InheritanceSpecifier","src":"794:6:38"},{"baseName":{"id":13689,"name":"IERC1155Receiver","nameLocations":["802:16:38"],"nodeType":"IdentifierPath","referencedDeclaration":1232,"src":"802:16:38"},"id":13690,"nodeType":"InheritanceSpecifier","src":"802:16:38"},{"baseName":{"id":13691,"name":"ReentrancyGuard","nameLocations":["820:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"820:15:38"},"id":13692,"nodeType":"InheritanceSpecifier","src":"820:15:38"}],"canonicalName":"SimpleBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":13686,"nodeType":"StructuredDocumentation","src":"561:208:38","text":"@title Simple Budget\n @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n @dev This type of budget supports ETH, ERC20, and ERC1155 assets only"},"fullyImplemented":true,"id":14680,"linearizedBaseContracts":[14680,11038,1232,13669,6229,17720,2845,2857,9225,6423],"name":"SimpleBudget","nameLocation":"778:12:38","nodeType":"ContractDefinition","nodes":[{"global":false,"id":13695,"libraryName":{"id":13693,"name":"SafeTransferLib","nameLocations":["848:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"848:15:38"},"nodeType":"UsingForDirective","src":"842:34:38","typeName":{"id":13694,"name":"address","nodeType":"ElementaryTypeName","src":"868:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"SimpleBudget.InitPayload","documentation":{"id":13696,"nodeType":"StructuredDocumentation","src":"882:55:38","text":"@notice The payload for initializing a SimpleBudget"},"id":13702,"members":[{"constant":false,"id":13698,"mutability":"mutable","name":"owner","nameLocation":"979:5:38","nodeType":"VariableDeclaration","scope":13702,"src":"971:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13697,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13701,"mutability":"mutable","name":"authorized","nameLocation":"1004:10:38","nodeType":"VariableDeclaration","scope":13702,"src":"994:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13699,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13700,"nodeType":"ArrayTypeName","src":"994:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"949:11:38","nodeType":"StructDefinition","scope":14680,"src":"942:79:38","visibility":"public"},{"constant":false,"documentation":{"id":13703,"nodeType":"StructuredDocumentation","src":"1027:76:38","text":"@dev The total amount of each fungible asset distributed from the budget"},"id":13707,"mutability":"mutable","name":"_distributedFungible","nameLocation":"1144:20:38","nodeType":"VariableDeclaration","scope":14680,"src":"1108:56:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":13706,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13704,"name":"address","nodeType":"ElementaryTypeName","src":"1116:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1108:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13705,"name":"uint256","nodeType":"ElementaryTypeName","src":"1127:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"documentation":{"id":13708,"nodeType":"StructuredDocumentation","src":"1171:88:38","text":"@dev The total amount of each ERC1155 asset and token ID distributed from the budget"},"id":13714,"mutability":"mutable","name":"_distributedERC1155","nameLocation":"1320:19:38","nodeType":"VariableDeclaration","scope":14680,"src":"1264:75:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":13713,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13709,"name":"address","nodeType":"ElementaryTypeName","src":"1272:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1264:47:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13712,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1283:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13711,"name":"uint256","nodeType":"ElementaryTypeName","src":"1302:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"documentation":{"id":13715,"nodeType":"StructuredDocumentation","src":"1346:44:38","text":"@dev The mapping of authorized addresses"},"id":13719,"mutability":"mutable","name":"_isAuthorized","nameLocation":"1428:13:38","nodeType":"VariableDeclaration","scope":14680,"src":"1395:46:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13718,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13716,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1395:24:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13717,"name":"bool","nodeType":"ElementaryTypeName","src":"1414:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":13732,"nodeType":"Block","src":"1560:80:38","statements":[{"condition":{"id":13726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1574:25:38","subExpression":{"arguments":[{"expression":{"id":13723,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1588:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1592:6:38","memberName":"sender","nodeType":"MemberAccess","src":"1588:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13722,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14318,"src":"1575:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":13725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13730,"nodeType":"IfStatement","src":"1570:52:38","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13727,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"1608:12:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1608:14:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13729,"nodeType":"RevertStatement","src":"1601:21:38"}},{"id":13731,"nodeType":"PlaceholderStatement","src":"1632:1:38"}]},"documentation":{"id":13720,"nodeType":"StructuredDocumentation","src":"1448:81:38","text":"@notice A modifier that allows only authorized addresses to call the function"},"id":13733,"name":"onlyAuthorized","nameLocation":"1543:14:38","nodeType":"ModifierDefinition","parameters":{"id":13721,"nodeType":"ParameterList","parameters":[],"src":"1557:2:38"},"src":"1534:106:38","virtual":false,"visibility":"internal"},{"body":{"id":13740,"nodeType":"Block","src":"1898:39:38","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13737,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1908:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13739,"nodeType":"ExpressionStatement","src":"1908:22:38"}]},"documentation":{"id":13734,"nodeType":"StructuredDocumentation","src":"1646:233:38","text":"@notice Construct a new SimpleBudget\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13741,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13735,"nodeType":"ParameterList","parameters":[],"src":"1895:2:38"},"returnParameters":{"id":13736,"nodeType":"ParameterList","parameters":[],"src":"1898:0:38"},"scope":14680,"src":"1884:53:38","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":13788,"nodeType":"Block","src":"2148:244:38","statements":[{"assignments":[13752],"declarations":[{"constant":false,"id":13752,"mutability":"mutable","name":"init_","nameLocation":"2177:5:38","nodeType":"VariableDeclaration","scope":13788,"src":"2158:24:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload"},"typeName":{"id":13751,"nodeType":"UserDefinedTypeName","pathNode":{"id":13750,"name":"InitPayload","nameLocations":["2158:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":13702,"src":"2158:11:38"},"referencedDeclaration":13702,"src":"2158:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_storage_ptr","typeString":"struct SimpleBudget.InitPayload"}},"visibility":"internal"}],"id":13759,"initialValue":{"arguments":[{"id":13755,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13744,"src":"2196:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13756,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13702,"src":"2204:11:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13702_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}}],"id":13757,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2203:13:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13702_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13702_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}],"expression":{"id":13753,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2185:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2189:6:38","memberName":"decode","nodeType":"MemberAccess","src":"2185:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2185:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2158:59:38"},{"expression":{"arguments":[{"expression":{"id":13761,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"2244:5:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":13762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2250:5:38","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":13698,"src":"2244:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13760,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2227:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13764,"nodeType":"ExpressionStatement","src":"2227:29:38"},{"body":{"id":13786,"nodeType":"Block","src":"2320:66:38","statements":[{"expression":{"id":13784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13777,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"2334:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13782,"indexExpression":{"baseExpression":{"expression":{"id":13778,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"2348:5:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":13779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2354:10:38","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":13701,"src":"2348:16:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13781,"indexExpression":{"id":13780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"2365:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:19:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2334:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2371:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2334:41:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13785,"nodeType":"ExpressionStatement","src":"2334:41:38"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13769,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"2286:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13770,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"2290:5:38","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13702_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":13771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2296:10:38","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":13701,"src":"2290:16:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2307:6:38","memberName":"length","nodeType":"MemberAccess","src":"2290:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2286:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13787,"initializationExpression":{"assignments":[13766],"declarations":[{"constant":false,"id":13766,"mutability":"mutable","name":"i","nameLocation":"2279:1:38","nodeType":"VariableDeclaration","scope":13787,"src":"2271:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13765,"name":"uint256","nodeType":"ElementaryTypeName","src":"2271:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13768,"initialValue":{"hexValue":"30","id":13767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2271:13:38"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2315:3:38","subExpression":{"id":13774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"2315:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13776,"nodeType":"ExpressionStatement","src":"2315:3:38"},"nodeType":"ForStatement","src":"2266:120:38"}]},"documentation":{"id":13742,"nodeType":"StructuredDocumentation","src":"1943:122:38","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":13789,"implemented":true,"kind":"function","modifiers":[{"id":13748,"kind":"modifierInvocation","modifierName":{"id":13747,"name":"initializer","nameLocations":["2136:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2136:11:38"},"nodeType":"ModifierInvocation","src":"2136:11:38"}],"name":"initialize","nameLocation":"2079:10:38","nodeType":"FunctionDefinition","overrides":{"id":13746,"nodeType":"OverrideSpecifier","overrides":[],"src":"2127:8:38"},"parameters":{"id":13745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13744,"mutability":"mutable","name":"data_","nameLocation":"2105:5:38","nodeType":"VariableDeclaration","scope":13789,"src":"2090:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13743,"name":"bytes","nodeType":"ElementaryTypeName","src":"2090:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2089:22:38"},"returnParameters":{"id":13749,"nodeType":"ParameterList","parameters":[],"src":"2148:0:38"},"scope":14680,"src":"2070:322:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13556],"body":{"id":13959,"nodeType":"Block","src":"2834:1588:38","statements":[{"assignments":[13800],"declarations":[{"constant":false,"id":13800,"mutability":"mutable","name":"request","nameLocation":"2860:7:38","nodeType":"VariableDeclaration","scope":13959,"src":"2844:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":13799,"nodeType":"UserDefinedTypeName","pathNode":{"id":13798,"name":"Transfer","nameLocations":["2844:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"2844:8:38"},"referencedDeclaration":13482,"src":"2844:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":13807,"initialValue":{"arguments":[{"id":13803,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"2881:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13804,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"2889:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":13805,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2888:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":13801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2870:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2874:6:38","memberName":"decode","nodeType":"MemberAccess","src":"2870:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2870:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"2844:55:38"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13808,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"2913:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2921:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"2913:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13810,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"2934:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2944:3:38","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"2934:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"2913:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13839,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3269:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3277:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"3269:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13841,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"3290:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3300:5:38","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"3290:15:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"3269:36:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13891,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3743:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3751:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"3743:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13893,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"3764:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3774:7:38","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"3764:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"3743:38:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13953,"nodeType":"Block","src":"4319:75:38","statements":[{"expression":{"hexValue":"66616c7365","id":13951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4378:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13797,"id":13952,"nodeType":"Return","src":"4371:12:38"}]},"id":13954,"nodeType":"IfStatement","src":"3739:655:38","trueBody":{"id":13950,"nodeType":"Block","src":"3783:530:38","statements":[{"assignments":[13898],"declarations":[{"constant":false,"id":13898,"mutability":"mutable","name":"payload","nameLocation":"3819:7:38","nodeType":"VariableDeclaration","scope":13950,"src":"3797:29:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":13897,"nodeType":"UserDefinedTypeName","pathNode":{"id":13896,"name":"ERC1155Payload","nameLocations":["3797:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13494,"src":"3797:14:38"},"referencedDeclaration":13494,"src":"3797:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":13906,"initialValue":{"arguments":[{"expression":{"id":13901,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3840:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3848:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3840:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13903,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"3855:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":13904,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3854:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":13899,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3829:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3833:6:38","memberName":"decode","nodeType":"MemberAccess","src":"3829:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"3797:74:38"},{"expression":{"arguments":[{"expression":{"id":13912,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"4023:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4031:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"4023:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13916,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4047:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4039:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13914,"name":"address","nodeType":"ElementaryTypeName","src":"4039:7:38","typeDescriptions":{}}},"id":13917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4039:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13918,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4054:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4062:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"4054:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13920,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4071:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4079:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"4071:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13922,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4087:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4095:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13493,"src":"4087:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":13908,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3974:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3982:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3974:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13907,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"3965:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":13910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3965:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":13911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3989:16:38","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"3965:40:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":13924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3965:148:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13925,"nodeType":"ExpressionStatement","src":"3965:148:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":13933,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4173:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4165:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13931,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:38","typeDescriptions":{}}},"id":13934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13935,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4180:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4188:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"4180:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13927,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"4140:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4148:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4140:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13926,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"4131:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":13929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4131:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":13930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4155:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"4131:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":13937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4131:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13938,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4199:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4207:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"4199:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4131:82:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13949,"nodeType":"IfStatement","src":"4127:176:38","trueBody":{"id":13948,"nodeType":"Block","src":"4215:88:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":13942,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"4258:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4266:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4258:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13944,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"4273:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4281:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"4273:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13941,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"4240:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":13946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4240:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13947,"nodeType":"RevertStatement","src":"4233:55:38"}]}}]}},"id":13955,"nodeType":"IfStatement","src":"3265:1129:38","trueBody":{"id":13890,"nodeType":"Block","src":"3307:426:38","statements":[{"assignments":[13846],"declarations":[{"constant":false,"id":13846,"mutability":"mutable","name":"payload","nameLocation":"3344:7:38","nodeType":"VariableDeclaration","scope":13890,"src":"3321:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13845,"nodeType":"UserDefinedTypeName","pathNode":{"id":13844,"name":"FungiblePayload","nameLocations":["3321:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"3321:15:38"},"referencedDeclaration":13486,"src":"3321:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":13854,"initialValue":{"arguments":[{"expression":{"id":13849,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3365:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3373:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3365:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13851,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"3380:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":13852,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3379:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13847,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3354:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3358:6:38","memberName":"decode","nodeType":"MemberAccess","src":"3354:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3354:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3321:76:38"},{"expression":{"arguments":[{"expression":{"id":13860,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3514:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3522:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"3514:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13864,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3538:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3530:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13862,"name":"address","nodeType":"ElementaryTypeName","src":"3530:7:38","typeDescriptions":{}}},"id":13865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3530:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13866,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13846,"src":"3545:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3553:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3545:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13855,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3483:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3491:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3483:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3497:16:38","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":11177,"src":"3483:30:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":13868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3483:77:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13869,"nodeType":"ExpressionStatement","src":"3483:77:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":13875,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3610:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":13874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3602:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13873,"name":"address","nodeType":"ElementaryTypeName","src":"3602:7:38","typeDescriptions":{}}},"id":13876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3602:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13870,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3578:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3586:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3578:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3592:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"3578:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":13877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3578:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13878,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13846,"src":"3619:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3627:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3619:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3578:55:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13889,"nodeType":"IfStatement","src":"3574:149:38","trueBody":{"id":13888,"nodeType":"Block","src":"3635:88:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":13882,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3678:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3686:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3678:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13884,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13846,"src":"3693:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3701:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3693:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13881,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"3660:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":13886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3660:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13887,"nodeType":"RevertStatement","src":"3653:55:38"}]}}]}},"id":13956,"nodeType":"IfStatement","src":"2909:1485:38","trueBody":{"id":13838,"nodeType":"Block","src":"2949:310:38","statements":[{"assignments":[13815],"declarations":[{"constant":false,"id":13815,"mutability":"mutable","name":"payload","nameLocation":"2986:7:38","nodeType":"VariableDeclaration","scope":13838,"src":"2963:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13814,"nodeType":"UserDefinedTypeName","pathNode":{"id":13813,"name":"FungiblePayload","nameLocations":["2963:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"2963:15:38"},"referencedDeclaration":13486,"src":"2963:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":13823,"initialValue":{"arguments":[{"expression":{"id":13818,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3007:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3015:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3007:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13820,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"3022:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":13821,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3021:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2996:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3000:6:38","memberName":"decode","nodeType":"MemberAccess","src":"2996:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2996:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2963:76:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13824,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3132:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3136:5:38","memberName":"value","nodeType":"MemberAccess","src":"3132:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13826,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"3145:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3145:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3132:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13837,"nodeType":"IfStatement","src":"3128:121:38","trueBody":{"id":13836,"nodeType":"Block","src":"3161:88:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":13830,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13800,"src":"3204:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3212:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"3204:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13832,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"3219:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3227:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3219:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13829,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"3186:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":13834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13835,"nodeType":"RevertStatement","src":"3179:55:38"}]}}]}},{"expression":{"hexValue":"74727565","id":13957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4411:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13797,"id":13958,"nodeType":"Return","src":"4404:11:38"}]},"documentation":{"id":13790,"nodeType":"StructuredDocumentation","src":"2398:342:38","text":"@inheritdoc Budget\n @notice Allocates assets to the budget\n @param data_ The packed data for the {Transfer} request\n @return True if the allocation was successful\n @dev The caller must have already approved the contract to transfer the asset\n @dev If the asset transfer fails, the allocation will revert"},"functionSelector":"5aef467a","id":13960,"implemented":true,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"2754:8:38","nodeType":"FunctionDefinition","overrides":{"id":13794,"nodeType":"OverrideSpecifier","overrides":[],"src":"2810:8:38"},"parameters":{"id":13793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13792,"mutability":"mutable","name":"data_","nameLocation":"2778:5:38","nodeType":"VariableDeclaration","scope":13960,"src":"2763:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13791,"name":"bytes","nodeType":"ElementaryTypeName","src":"2763:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2762:22:38"},"returnParameters":{"id":13797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13960,"src":"2828:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13795,"name":"bool","nodeType":"ElementaryTypeName","src":"2828:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2827:6:38"},"scope":14680,"src":"2745:1677:38","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[13564],"body":{"id":14076,"nodeType":"Block","src":"4941:925:38","statements":[{"assignments":[13973],"declarations":[{"constant":false,"id":13973,"mutability":"mutable","name":"request","nameLocation":"4967:7:38","nodeType":"VariableDeclaration","scope":14076,"src":"4951:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":13972,"nodeType":"UserDefinedTypeName","pathNode":{"id":13971,"name":"Transfer","nameLocations":["4951:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"4951:8:38"},"referencedDeclaration":13482,"src":"4951:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":13980,"initialValue":{"arguments":[{"id":13976,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13963,"src":"4988:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13977,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"4996:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":13978,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4995:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":13974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4977:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4981:6:38","memberName":"decode","nodeType":"MemberAccess","src":"4977:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4977:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"4951:55:38"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13981,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5020:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5020:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13983,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5041:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5051:3:38","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"5041:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5020:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":13990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13986,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5058:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5066:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5058:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13988,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5079:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":13989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5089:5:38","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5079:15:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5058:36:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5020:74:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14022,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5364:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5372:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5364:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14024,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5385:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5395:7:38","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"5385:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5364:38:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14071,"nodeType":"Block","src":"5801:37:38","statements":[{"expression":{"hexValue":"66616c7365","id":14069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5822:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13970,"id":14070,"nodeType":"Return","src":"5815:12:38"}]},"id":14072,"nodeType":"IfStatement","src":"5360:478:38","trueBody":{"id":14068,"nodeType":"Block","src":"5404:391:38","statements":[{"assignments":[14029],"declarations":[{"constant":false,"id":14029,"mutability":"mutable","name":"payload","nameLocation":"5440:7:38","nodeType":"VariableDeclaration","scope":14068,"src":"5418:29:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":14028,"nodeType":"UserDefinedTypeName","pathNode":{"id":14027,"name":"ERC1155Payload","nameLocations":["5418:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13494,"src":"5418:14:38"},"referencedDeclaration":13494,"src":"5418:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":14037,"initialValue":{"arguments":[{"expression":{"id":14032,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5461:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5469:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"5461:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14034,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"5476:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":14035,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5475:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":14030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5450:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5454:6:38","memberName":"decode","nodeType":"MemberAccess","src":"5450:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5450:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"5418:74:38"},{"expression":{"arguments":[{"expression":{"id":14039,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5540:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5548:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5540:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14041,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5571:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5579:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"5571:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14043,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5603:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5611:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"5603:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14045,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5636:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5644:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"5636:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5654:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5636:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14061,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5726:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5734:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"5726:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5636:104:38","trueExpression":{"arguments":[{"arguments":[{"id":14056,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5700:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5692:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14054,"name":"address","nodeType":"ElementaryTypeName","src":"5692:7:38","typeDescriptions":{}}},"id":14057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5692:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14058,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5707:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5715:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"5707:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":14050,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5667:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5675:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5667:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14049,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"5658:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5682:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"5658:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14064,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14029,"src":"5758:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5766:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13493,"src":"5758:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14038,"name":"_transferERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"5506:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5506:278:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14067,"nodeType":"ExpressionStatement","src":"5506:278:38"}]}},"id":14073,"nodeType":"IfStatement","src":"5016:822:38","trueBody":{"id":14021,"nodeType":"Block","src":"5096:258:38","statements":[{"assignments":[13994],"declarations":[{"constant":false,"id":13994,"mutability":"mutable","name":"payload","nameLocation":"5133:7:38","nodeType":"VariableDeclaration","scope":14021,"src":"5110:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13993,"nodeType":"UserDefinedTypeName","pathNode":{"id":13992,"name":"FungiblePayload","nameLocations":["5110:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"5110:15:38"},"referencedDeclaration":13486,"src":"5110:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14002,"initialValue":{"arguments":[{"expression":{"id":13997,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5154:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5162:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"5154:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13999,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"5169:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14000,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5168:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13995,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5143:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5147:6:38","memberName":"decode","nodeType":"MemberAccess","src":"5143:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5143:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5110:76:38"},{"expression":{"arguments":[{"expression":{"id":14004,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5235:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5243:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5235:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14006,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5250:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5258:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"5250:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14008,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"5266:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5274:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5266:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5284:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5266:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14016,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"5315:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5323:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5315:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5266:63:38","trueExpression":{"arguments":[{"expression":{"id":14013,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"5298:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5306:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5298:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14012,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"5288:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5288:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14003,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14535,"src":"5200:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5200:143:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14020,"nodeType":"ExpressionStatement","src":"5200:143:38"}]}},{"expression":{"hexValue":"74727565","id":14074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5855:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13970,"id":14075,"nodeType":"Return","src":"5848:11:38"}]},"documentation":{"id":13961,"nodeType":"StructuredDocumentation","src":"4428:418:38","text":"@inheritdoc Budget\n @notice Reclaims assets from the budget\n @param data_ The packed {Transfer} request\n @return True if the request was successful\n @dev Only the owner can directly reclaim assets from the budget\n @dev If the amount is zero, the entire balance of the asset will be transferred to the receiver\n @dev If the asset transfer fails, the reclamation will revert"},"functionSelector":"f1c30ec0","id":14077,"implemented":true,"kind":"function","modifiers":[{"id":13967,"kind":"modifierInvocation","modifierName":{"id":13966,"name":"onlyOwner","nameLocations":["4916:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4916:9:38"},"nodeType":"ModifierInvocation","src":"4916:9:38"}],"name":"reclaim","nameLocation":"4860:7:38","nodeType":"FunctionDefinition","overrides":{"id":13965,"nodeType":"OverrideSpecifier","overrides":[],"src":"4907:8:38"},"parameters":{"id":13964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13963,"mutability":"mutable","name":"data_","nameLocation":"4883:5:38","nodeType":"VariableDeclaration","scope":14077,"src":"4868:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13962,"name":"bytes","nodeType":"ElementaryTypeName","src":"4868:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4867:22:38"},"returnParameters":{"id":13970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14077,"src":"4935:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13968,"name":"bool","nodeType":"ElementaryTypeName","src":"4935:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4934:6:38"},"scope":14680,"src":"4851:1015:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13572],"body":{"id":14217,"nodeType":"Block","src":"6242:1087:38","statements":[{"assignments":[14090],"declarations":[{"constant":false,"id":14090,"mutability":"mutable","name":"request","nameLocation":"6268:7:38","nodeType":"VariableDeclaration","scope":14217,"src":"6252:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14089,"nodeType":"UserDefinedTypeName","pathNode":{"id":14088,"name":"Transfer","nameLocations":["6252:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"6252:8:38"},"referencedDeclaration":13482,"src":"6252:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14097,"initialValue":{"arguments":[{"id":14093,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14080,"src":"6289:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14094,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"6297:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6296:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6278:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6282:6:38","memberName":"decode","nodeType":"MemberAccess","src":"6278:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6278:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"6252:55:38"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14098,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6321:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6329:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6321:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14100,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6342:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6352:5:38","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"6342:15:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6321:36:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14103,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6361:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6369:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6361:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14105,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6382:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6392:3:38","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"6382:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6361:34:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6321:74:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14151,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6778:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6786:9:38","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6778:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14153,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6799:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6809:7:38","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"6799:17:38","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6778:38:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14212,"nodeType":"Block","src":"7264:37:38","statements":[{"expression":{"hexValue":"66616c7365","id":14210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7285:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14087,"id":14211,"nodeType":"Return","src":"7278:12:38"}]},"id":14213,"nodeType":"IfStatement","src":"6774:527:38","trueBody":{"id":14209,"nodeType":"Block","src":"6818:440:38","statements":[{"assignments":[14158],"declarations":[{"constant":false,"id":14158,"mutability":"mutable","name":"payload","nameLocation":"6854:7:38","nodeType":"VariableDeclaration","scope":14209,"src":"6832:29:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":14157,"nodeType":"UserDefinedTypeName","pathNode":{"id":14156,"name":"ERC1155Payload","nameLocations":["6832:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13494,"src":"6832:14:38"},"referencedDeclaration":13494,"src":"6832:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":14166,"initialValue":{"arguments":[{"expression":{"id":14161,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6875:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6883:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"6875:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14163,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"6890:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":14164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6889:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":14159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6864:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6868:6:38","memberName":"decode","nodeType":"MemberAccess","src":"6864:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6864:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"6832:74:38"},{"assignments":[14168],"declarations":[{"constant":false,"id":14168,"mutability":"mutable","name":"avail","nameLocation":"6929:5:38","nodeType":"VariableDeclaration","scope":14209,"src":"6921:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14167,"name":"uint256","nodeType":"ElementaryTypeName","src":"6921:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14181,"initialValue":{"arguments":[{"arguments":[{"id":14176,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6979:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6971:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14174,"name":"address","nodeType":"ElementaryTypeName","src":"6971:7:38","typeDescriptions":{}}},"id":14177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6971:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14178,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"6986:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6994:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"6986:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":14170,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6946:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6954:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6946:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14169,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"6937:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6937:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6961:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"6937:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6937:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6921:81:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14182,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7020:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7028:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"7020:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14184,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14168,"src":"7037:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7020:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14195,"nodeType":"IfStatement","src":"7016:123:38","trueBody":{"id":14194,"nodeType":"Block","src":"7044:95:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":14187,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"7087:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7095:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"7087:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14189,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14168,"src":"7102:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14190,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7109:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7117:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"7109:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14186,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"7069:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7069:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14193,"nodeType":"RevertStatement","src":"7062:62:38"}]}},{"expression":{"arguments":[{"expression":{"id":14197,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"7170:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7178:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"7170:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14199,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"7185:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7193:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"7185:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14201,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7201:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7209:7:38","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":13489,"src":"7201:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14203,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7218:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7226:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"7218:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14205,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14158,"src":"7234:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7242:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13493,"src":"7234:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14196,"name":"_transferERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"7153:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":14207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7153:94:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14208,"nodeType":"ExpressionStatement","src":"7153:94:38"}]}},"id":14214,"nodeType":"IfStatement","src":"6317:984:38","trueBody":{"id":14150,"nodeType":"Block","src":"6397:371:38","statements":[{"assignments":[14111],"declarations":[{"constant":false,"id":14111,"mutability":"mutable","name":"payload","nameLocation":"6434:7:38","nodeType":"VariableDeclaration","scope":14150,"src":"6411:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14110,"nodeType":"UserDefinedTypeName","pathNode":{"id":14109,"name":"FungiblePayload","nameLocations":["6411:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"6411:15:38"},"referencedDeclaration":13486,"src":"6411:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14119,"initialValue":{"arguments":[{"expression":{"id":14114,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6455:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6463:4:38","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"6455:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14116,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"6470:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6469:17:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6444:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6448:6:38","memberName":"decode","nodeType":"MemberAccess","src":"6444:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6444:43:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6411:76:38"},{"assignments":[14121],"declarations":[{"constant":false,"id":14121,"mutability":"mutable","name":"avail","nameLocation":"6510:5:38","nodeType":"VariableDeclaration","scope":14150,"src":"6502:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14120,"name":"uint256","nodeType":"ElementaryTypeName","src":"6502:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14126,"initialValue":{"arguments":[{"expression":{"id":14123,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6528:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6536:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6528:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14122,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"6518:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6518:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6502:40:38"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14127,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"6560:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6568:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6560:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14129,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14121,"src":"6577:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6560:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14140,"nodeType":"IfStatement","src":"6556:123:38","trueBody":{"id":14139,"nodeType":"Block","src":"6584:95:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":14132,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6627:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6635:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6627:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14134,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14121,"src":"6642:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14135,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"6649:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6657:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6649:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14131,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"6609:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6609:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14138,"nodeType":"RevertStatement","src":"6602:62:38"}]}},{"expression":{"arguments":[{"expression":{"id":14142,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6711:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6719:5:38","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6711:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14144,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"6726:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6734:6:38","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"6726:14:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14146,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"6742:7:38","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6750:6:38","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6742:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14141,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14535,"src":"6693:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6693:64:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14149,"nodeType":"ExpressionStatement","src":"6693:64:38"}]}},{"expression":{"hexValue":"74727565","id":14215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7318:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14087,"id":14216,"nodeType":"Return","src":"7311:11:38"}]},"documentation":{"id":14078,"nodeType":"StructuredDocumentation","src":"5872:271:38","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to a single recipient\n @param data_ The packed {Transfer} request\n @return True if the disbursement was successful\n @dev If the asset transfer fails, the disbursement will revert"},"functionSelector":"fa4ca9b1","id":14218,"implemented":true,"kind":"function","modifiers":[{"id":14084,"kind":"modifierInvocation","modifierName":{"id":14083,"name":"onlyAuthorized","nameLocations":["6212:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":13733,"src":"6212:14:38"},"nodeType":"ModifierInvocation","src":"6212:14:38"}],"name":"disburse","nameLocation":"6157:8:38","nodeType":"FunctionDefinition","overrides":{"id":14082,"nodeType":"OverrideSpecifier","overrides":[],"src":"6203:8:38"},"parameters":{"id":14081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14080,"mutability":"mutable","name":"data_","nameLocation":"6181:5:38","nodeType":"VariableDeclaration","scope":14218,"src":"6166:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14079,"name":"bytes","nodeType":"ElementaryTypeName","src":"6166:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6165:22:38"},"returnParameters":{"id":14087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14218,"src":"6236:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14085,"name":"bool","nodeType":"ElementaryTypeName","src":"6236:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6235:6:38"},"scope":14680,"src":"6148:1181:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13581],"body":{"id":14252,"nodeType":"Block","src":"7641:143:38","statements":[{"body":{"id":14248,"nodeType":"Block","src":"7694:62:38","statements":[{"condition":{"id":14244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7712:19:38","subExpression":{"arguments":[{"baseExpression":{"id":14240,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"7722:5:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":14242,"indexExpression":{"id":14241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14229,"src":"7728:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7722:8:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14239,"name":"disburse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14218,"src":"7713:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) returns (bool)"}},"id":14243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7713:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14247,"nodeType":"IfStatement","src":"7708:37:38","trueBody":{"expression":{"hexValue":"66616c7365","id":14245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7740:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14227,"id":14246,"nodeType":"Return","src":"7733:12:38"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14229,"src":"7671:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14233,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"7675:5:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":14234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7681:6:38","memberName":"length","nodeType":"MemberAccess","src":"7675:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7671:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14249,"initializationExpression":{"assignments":[14229],"declarations":[{"constant":false,"id":14229,"mutability":"mutable","name":"i","nameLocation":"7664:1:38","nodeType":"VariableDeclaration","scope":14249,"src":"7656:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14228,"name":"uint256","nodeType":"ElementaryTypeName","src":"7656:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14231,"initialValue":{"hexValue":"30","id":14230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7668:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7656:13:38"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7689:3:38","subExpression":{"id":14236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14229,"src":"7689:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14238,"nodeType":"ExpressionStatement","src":"7689:3:38"},"nodeType":"ForStatement","src":"7651:105:38"},{"expression":{"hexValue":"74727565","id":14250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7773:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14227,"id":14251,"nodeType":"Return","src":"7766:11:38"}]},"documentation":{"id":14219,"nodeType":"StructuredDocumentation","src":"7335:213:38","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to multiple recipients\n @param data_ The packed array of {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":14253,"implemented":true,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"7562:13:38","nodeType":"FunctionDefinition","overrides":{"id":14224,"nodeType":"OverrideSpecifier","overrides":[],"src":"7617:8:38"},"parameters":{"id":14223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14222,"mutability":"mutable","name":"data_","nameLocation":"7593:5:38","nodeType":"VariableDeclaration","scope":14253,"src":"7576:22:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14220,"name":"bytes","nodeType":"ElementaryTypeName","src":"7576:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14221,"nodeType":"ArrayTypeName","src":"7576:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7575:24:38"},"returnParameters":{"id":14227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14253,"src":"7635:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14225,"name":"bool","nodeType":"ElementaryTypeName","src":"7635:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7634:6:38"},"scope":14680,"src":"7553:231:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13646],"body":{"id":14298,"nodeType":"Block","src":"7970:206:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14266,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"7984:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7993:6:38","memberName":"length","nodeType":"MemberAccess","src":"7984:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14268,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14260,"src":"8003:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8015:6:38","memberName":"length","nodeType":"MemberAccess","src":"8003:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7984:37:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14274,"nodeType":"IfStatement","src":"7980:66:38","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14271,"name":"LengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13529,"src":"8030:14:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8030:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14273,"nodeType":"RevertStatement","src":"8023:23:38"}},{"body":{"id":14296,"nodeType":"Block","src":"8102:68:38","statements":[{"expression":{"id":14294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14286,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"8116:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14290,"indexExpression":{"baseExpression":{"id":14287,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"8130:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14289,"indexExpression":{"id":14288,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8139:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8130:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8116:26:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":14291,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14260,"src":"8145:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":14293,"indexExpression":{"id":14292,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8157:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8145:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8116:43:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14295,"nodeType":"ExpressionStatement","src":"8116:43:38"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8076:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14280,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"8080:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8089:6:38","memberName":"length","nodeType":"MemberAccess","src":"8080:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14297,"initializationExpression":{"assignments":[14276],"declarations":[{"constant":false,"id":14276,"mutability":"mutable","name":"i","nameLocation":"8069:1:38","nodeType":"VariableDeclaration","scope":14297,"src":"8061:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14275,"name":"uint256","nodeType":"ElementaryTypeName","src":"8061:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14278,"initialValue":{"hexValue":"30","id":14277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8073:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8061:13:38"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8097:3:38","subExpression":{"id":14283,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"8097:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14285,"nodeType":"ExpressionStatement","src":"8097:3:38"},"nodeType":"ForStatement","src":"8056:114:38"}]},"documentation":{"id":14254,"nodeType":"StructuredDocumentation","src":"7790:22:38","text":"@inheritdoc Budget"},"functionSelector":"4359d28a","id":14299,"implemented":true,"kind":"function","modifiers":[{"id":14264,"kind":"modifierInvocation","modifierName":{"id":14263,"name":"onlyOwner","nameLocations":["7956:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7956:9:38"},"nodeType":"ModifierInvocation","src":"7956:9:38"}],"name":"setAuthorized","nameLocation":"7826:13:38","nodeType":"FunctionDefinition","overrides":{"id":14262,"nodeType":"OverrideSpecifier","overrides":[],"src":"7939:8:38"},"parameters":{"id":14261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14257,"mutability":"mutable","name":"account_","nameLocation":"7859:8:38","nodeType":"VariableDeclaration","scope":14299,"src":"7840:27:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14255,"name":"address","nodeType":"ElementaryTypeName","src":"7840:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14256,"nodeType":"ArrayTypeName","src":"7840:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14260,"mutability":"mutable","name":"authorized_","nameLocation":"7885:11:38","nodeType":"VariableDeclaration","scope":14299,"src":"7869:27:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14258,"name":"bool","nodeType":"ElementaryTypeName","src":"7869:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14259,"nodeType":"ArrayTypeName","src":"7869:6:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"7839:58:38"},"returnParameters":{"id":14265,"nodeType":"ParameterList","parameters":[],"src":"7970:0:38"},"scope":14680,"src":"7817:359:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13654],"body":{"id":14317,"nodeType":"Block","src":"8293:70:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":14308,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13719,"src":"8310:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14310,"indexExpression":{"id":14309,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14302,"src":"8324:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8310:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14311,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14302,"src":"8337:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14312,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6404,"src":"8349:5:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8349:7:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8337:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8310:46:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14307,"id":14316,"nodeType":"Return","src":"8303:53:38"}]},"documentation":{"id":14300,"nodeType":"StructuredDocumentation","src":"8182:22:38","text":"@inheritdoc Budget"},"functionSelector":"fe9fbb80","id":14318,"implemented":true,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"8218:12:38","nodeType":"FunctionDefinition","overrides":{"id":14304,"nodeType":"OverrideSpecifier","overrides":[],"src":"8269:8:38"},"parameters":{"id":14303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14302,"mutability":"mutable","name":"account_","nameLocation":"8239:8:38","nodeType":"VariableDeclaration","scope":14318,"src":"8231:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14301,"name":"address","nodeType":"ElementaryTypeName","src":"8231:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8230:18:38"},"returnParameters":{"id":14307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14318,"src":"8287:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14305,"name":"bool","nodeType":"ElementaryTypeName","src":"8287:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8286:6:38"},"scope":14680,"src":"8209:154:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[13589],"body":{"id":14335,"nodeType":"Block","src":"8765:72:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14328,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14321,"src":"8792:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14327,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"8782:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8782:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":14330,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"8802:20:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14332,"indexExpression":{"id":14331,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14321,"src":"8823:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8802:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8782:48:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14326,"id":14334,"nodeType":"Return","src":"8775:55:38"}]},"documentation":{"id":14319,"nodeType":"StructuredDocumentation","src":"8369:311:38","text":"@inheritdoc Budget\n @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets\n @dev This is simply the sum of the current balance and the distributed amount"},"functionSelector":"d2514e84","id":14336,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"8694:5:38","nodeType":"FunctionDefinition","overrides":{"id":14323,"nodeType":"OverrideSpecifier","overrides":[],"src":"8738:8:38"},"parameters":{"id":14322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14321,"mutability":"mutable","name":"asset_","nameLocation":"8708:6:38","nodeType":"VariableDeclaration","scope":14336,"src":"8700:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14320,"name":"address","nodeType":"ElementaryTypeName","src":"8700:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8699:16:38"},"returnParameters":{"id":14326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14336,"src":"8756:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14324,"name":"uint256","nodeType":"ElementaryTypeName","src":"8756:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8755:9:38"},"scope":14680,"src":"8685:152:38","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":14363,"nodeType":"Block","src":"9187:115:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":14352,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9239:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9231:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14350,"name":"address","nodeType":"ElementaryTypeName","src":"9231:7:38","typeDescriptions":{}}},"id":14353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9231:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14354,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"9246:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14347,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"9213:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14346,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"9204:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9221:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"9204:26:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"baseExpression":{"id":14356,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13714,"src":"9258:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14358,"indexExpression":{"id":14357,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"9278:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9258:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14360,"indexExpression":{"id":14359,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"9286:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9258:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9204:91:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14345,"id":14362,"nodeType":"Return","src":"9197:98:38"}]},"documentation":{"id":14337,"nodeType":"StructuredDocumentation","src":"8843:250:38","text":"@notice Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The total amount of assets"},"functionSelector":"f9a802c3","id":14364,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"9107:5:38","nodeType":"FunctionDefinition","parameters":{"id":14342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14339,"mutability":"mutable","name":"asset_","nameLocation":"9121:6:38","nodeType":"VariableDeclaration","scope":14364,"src":"9113:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14338,"name":"address","nodeType":"ElementaryTypeName","src":"9113:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14341,"mutability":"mutable","name":"tokenId_","nameLocation":"9137:8:38","nodeType":"VariableDeclaration","scope":14364,"src":"9129:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14340,"name":"uint256","nodeType":"ElementaryTypeName","src":"9129:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9112:34:38"},"returnParameters":{"id":14345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14364,"src":"9178:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14343,"name":"uint256","nodeType":"ElementaryTypeName","src":"9178:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9177:9:38"},"scope":14680,"src":"9098:204:38","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13597],"body":{"id":14393,"nodeType":"Block","src":"9791:102:38","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14373,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14367,"src":"9808:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9826:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9818:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14374,"name":"address","nodeType":"ElementaryTypeName","src":"9818:7:38","typeDescriptions":{}}},"id":14377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9818:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9808:20:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":14388,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9880:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9872:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14386,"name":"address","nodeType":"ElementaryTypeName","src":"9872:7:38","typeDescriptions":{}}},"id":14389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9872:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14384,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14367,"src":"9855:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9862:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"9855:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":14390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9855:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9808:78:38","trueExpression":{"expression":{"arguments":[{"id":14381,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9839:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9831:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14379,"name":"address","nodeType":"ElementaryTypeName","src":"9831:7:38","typeDescriptions":{}}},"id":14382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9831:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9845:7:38","memberName":"balance","nodeType":"MemberAccess","src":"9831:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14372,"id":14392,"nodeType":"Return","src":"9801:85:38"}]},"documentation":{"id":14365,"nodeType":"StructuredDocumentation","src":"9308:396:38","text":"@inheritdoc Budget\n @notice Get the amount of assets available for distribution from the budget\n @param asset_ The address of the asset (or the zero address for native assets)\n @return The amount of assets available\n @dev This is simply the current balance held by the budget\n @dev If the zero address is passed, this function will return the native balance"},"functionSelector":"10098ad5","id":14394,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"9718:9:38","nodeType":"FunctionDefinition","overrides":{"id":14369,"nodeType":"OverrideSpecifier","overrides":[],"src":"9764:8:38"},"parameters":{"id":14368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14367,"mutability":"mutable","name":"asset_","nameLocation":"9736:6:38","nodeType":"VariableDeclaration","scope":14394,"src":"9728:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14366,"name":"address","nodeType":"ElementaryTypeName","src":"9728:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9727:16:38"},"returnParameters":{"id":14372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14394,"src":"9782:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14370,"name":"uint256","nodeType":"ElementaryTypeName","src":"9782:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9781:9:38"},"scope":14680,"src":"9709:184:38","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14415,"nodeType":"Block","src":"10220:75:38","statements":[{"expression":{"arguments":[{"arguments":[{"id":14410,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10272:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10264:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14408,"name":"address","nodeType":"ElementaryTypeName","src":"10264:7:38","typeDescriptions":{}}},"id":14411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10264:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14412,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14399,"src":"10279:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14405,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14397,"src":"10246:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14404,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"10237:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10237:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10254:9:38","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"10237:26:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10237:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14403,"id":14414,"nodeType":"Return","src":"10230:58:38"}]},"documentation":{"id":14395,"nodeType":"StructuredDocumentation","src":"9899:225:38","text":"@notice Get the amount of ERC1155 assets available for distribution from the budget\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The amount of assets available"},"functionSelector":"f8724aba","id":14416,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"10138:9:38","nodeType":"FunctionDefinition","parameters":{"id":14400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14397,"mutability":"mutable","name":"asset_","nameLocation":"10156:6:38","nodeType":"VariableDeclaration","scope":14416,"src":"10148:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14396,"name":"address","nodeType":"ElementaryTypeName","src":"10148:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14399,"mutability":"mutable","name":"tokenId_","nameLocation":"10172:8:38","nodeType":"VariableDeclaration","scope":14416,"src":"10164:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14398,"name":"uint256","nodeType":"ElementaryTypeName","src":"10164:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10147:34:38"},"returnParameters":{"id":14403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14416,"src":"10211:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14401,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10210:9:38"},"scope":14680,"src":"10129:166:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[13605],"body":{"id":14429,"nodeType":"Block","src":"10594:52:38","statements":[{"expression":{"baseExpression":{"id":14425,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"10611:20:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14427,"indexExpression":{"id":14426,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14419,"src":"10632:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10611:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14424,"id":14428,"nodeType":"Return","src":"10604:35:38"}]},"documentation":{"id":14417,"nodeType":"StructuredDocumentation","src":"10301:202:38","text":"@inheritdoc Budget\n @notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":14430,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"10517:11:38","nodeType":"FunctionDefinition","overrides":{"id":14421,"nodeType":"OverrideSpecifier","overrides":[],"src":"10567:8:38"},"parameters":{"id":14420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14419,"mutability":"mutable","name":"asset_","nameLocation":"10537:6:38","nodeType":"VariableDeclaration","scope":14430,"src":"10529:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14418,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10528:16:38"},"returnParameters":{"id":14424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14430,"src":"10585:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14422,"name":"uint256","nodeType":"ElementaryTypeName","src":"10585:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10584:9:38"},"scope":14680,"src":"10508:138:38","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":14446,"nodeType":"Block","src":"10979:61:38","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":14440,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13714,"src":"10996:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14442,"indexExpression":{"id":14441,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14433,"src":"11016:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10996:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14444,"indexExpression":{"id":14443,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14435,"src":"11024:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10996:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14439,"id":14445,"nodeType":"Return","src":"10989:44:38"}]},"documentation":{"id":14431,"nodeType":"StructuredDocumentation","src":"10652:227:38","text":"@notice Get the amount of ERC1155 assets that have been distributed from the budget\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The amount of assets distributed"},"functionSelector":"774c33ab","id":14447,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"10893:11:38","nodeType":"FunctionDefinition","parameters":{"id":14436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14433,"mutability":"mutable","name":"asset_","nameLocation":"10913:6:38","nodeType":"VariableDeclaration","scope":14447,"src":"10905:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14432,"name":"address","nodeType":"ElementaryTypeName","src":"10905:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14435,"mutability":"mutable","name":"tokenId_","nameLocation":"10929:8:38","nodeType":"VariableDeclaration","scope":14447,"src":"10921:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14434,"name":"uint256","nodeType":"ElementaryTypeName","src":"10921:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10904:34:38"},"returnParameters":{"id":14439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14447,"src":"10970:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14437,"name":"uint256","nodeType":"ElementaryTypeName","src":"10970:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10969:9:38"},"scope":14680,"src":"10884:156:38","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13613],"body":{"id":14458,"nodeType":"Block","src":"11223:25:38","statements":[{"expression":{"hexValue":"30","id":14456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11240:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14455,"id":14457,"nodeType":"Return","src":"11233:8:38"}]},"documentation":{"id":14448,"nodeType":"StructuredDocumentation","src":"11046:93:38","text":"@inheritdoc Budget\n @dev This is a no-op as there is no local balance to reconcile"},"functionSelector":"451cc191","id":14459,"implemented":true,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"11153:9:38","nodeType":"FunctionDefinition","overrides":{"id":14452,"nodeType":"OverrideSpecifier","overrides":[],"src":"11196:8:38"},"parameters":{"id":14451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14459,"src":"11163:14:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14449,"name":"bytes","nodeType":"ElementaryTypeName","src":"11163:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11162:16:38"},"returnParameters":{"id":14455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14459,"src":"11214:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14453,"name":"uint256","nodeType":"ElementaryTypeName","src":"11214:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11213:9:38"},"scope":14680,"src":"11144:104:38","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":14534,"nodeType":"Block","src":"11810:605:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14471,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"11903:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11918:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11910:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14472,"name":"address","nodeType":"ElementaryTypeName","src":"11910:7:38","typeDescriptions":{}}},"id":14475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11910:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11903:17:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14483,"nodeType":"IfStatement","src":"11899:66:38","trueBody":{"errorCall":{"arguments":[{"id":14478,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"11944:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14479,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"11952:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14480,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"11957:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14477,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"11929:14:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) pure"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11929:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14482,"nodeType":"RevertStatement","src":"11922:43:38"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14484,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"11979:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":14486,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"11999:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14485,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"11989:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11979:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14498,"nodeType":"IfStatement","src":"11975:118:38","trueBody":{"id":14497,"nodeType":"Block","src":"12008:85:38","statements":[{"errorCall":{"arguments":[{"id":14490,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12047:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14492,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12065:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14491,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14394,"src":"12055:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12055:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14494,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12074:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14489,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"12029:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12029:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14496,"nodeType":"RevertStatement","src":"12022:60:38"}]}},{"expression":{"id":14503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14499,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13707,"src":"12103:20:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14501,"indexExpression":{"id":14500,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12124:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12103:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":14502,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12135:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12103:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14504,"nodeType":"ExpressionStatement","src":"12103:39:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14505,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12204:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12222:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12214:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14506,"name":"address","nodeType":"ElementaryTypeName","src":"12214:7:38","typeDescriptions":{}}},"id":14509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12214:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12204:20:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14526,"nodeType":"Block","src":"12302:58:38","statements":[{"expression":{"arguments":[{"id":14522,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"12336:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14523,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12341:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14519,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12316:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12323:12:38","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"12316:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":14524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12316:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14525,"nodeType":"ExpressionStatement","src":"12316:33:38"}]},"id":14527,"nodeType":"IfStatement","src":"12200:160:38","trueBody":{"id":14518,"nodeType":"Block","src":"12226:70:38","statements":[{"expression":{"arguments":[{"id":14514,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"12272:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14515,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12277:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14511,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"12240:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$11372_$","typeString":"type(library SafeTransferLib)"}},"id":14513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12256:15:38","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"12240:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12240:45:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14517,"nodeType":"ExpressionStatement","src":"12240:45:38"}]}},{"eventCall":{"arguments":[{"id":14529,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"12387:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14530,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"12395:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14531,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"12400:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14528,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"12375:11:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12375:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14533,"nodeType":"EmitStatement","src":"12370:38:38"}]},"documentation":{"id":14460,"nodeType":"StructuredDocumentation","src":"11254:448:38","text":"@notice Transfer assets to the recipient\n @param asset_ The address of the asset\n @param to_ The address of the recipient\n @param amount_ The amount of the asset to transfer\n @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert"},"id":14535,"implemented":true,"kind":"function","modifiers":[{"id":14469,"kind":"modifierInvocation","modifierName":{"id":14468,"name":"nonReentrant","nameLocations":["11797:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"11797:12:38"},"nodeType":"ModifierInvocation","src":"11797:12:38"}],"name":"_transferFungible","nameLocation":"11716:17:38","nodeType":"FunctionDefinition","parameters":{"id":14467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14462,"mutability":"mutable","name":"asset_","nameLocation":"11742:6:38","nodeType":"VariableDeclaration","scope":14535,"src":"11734:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14461,"name":"address","nodeType":"ElementaryTypeName","src":"11734:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14464,"mutability":"mutable","name":"to_","nameLocation":"11758:3:38","nodeType":"VariableDeclaration","scope":14535,"src":"11750:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14463,"name":"address","nodeType":"ElementaryTypeName","src":"11750:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14466,"mutability":"mutable","name":"amount_","nameLocation":"11771:7:38","nodeType":"VariableDeclaration","scope":14535,"src":"11763:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14465,"name":"uint256","nodeType":"ElementaryTypeName","src":"11763:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11733:46:38"},"returnParameters":{"id":14470,"nodeType":"ParameterList","parameters":[],"src":"11810:0:38"},"scope":14680,"src":"11707:708:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":14608,"nodeType":"Block","src":"12589:652:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14550,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"12682:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12697:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12689:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14551,"name":"address","nodeType":"ElementaryTypeName","src":"12689:7:38","typeDescriptions":{}}},"id":14554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12689:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12682:17:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14562,"nodeType":"IfStatement","src":"12678:66:38","trueBody":{"errorCall":{"arguments":[{"id":14557,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12723:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14558,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"12731:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14559,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12736:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14556,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"12708:14:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) pure"}},"id":14560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12708:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14561,"nodeType":"RevertStatement","src":"12701:43:38"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14563,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12758:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":14565,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12778:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14566,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"12786:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14564,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14416,"src":"12768:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12768:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12758:37:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14579,"nodeType":"IfStatement","src":"12754:138:38","trueBody":{"id":14578,"nodeType":"Block","src":"12797:95:38","statements":[{"errorCall":{"arguments":[{"id":14570,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12836:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14572,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12854:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14573,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"12862:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14571,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14394,14416],"referencedDeclaration":14416,"src":"12844:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12844:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14575,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12873:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14569,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"12818:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":14576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12818:63:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14577,"nodeType":"RevertStatement","src":"12811:70:38"}]}},{"expression":{"id":14586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":14580,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13714,"src":"12902:19:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14583,"indexExpression":{"id":14581,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"12922:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12902:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14584,"indexExpression":{"id":14582,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"12930:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12902:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":14585,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"12943:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12902:48:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14587,"nodeType":"ExpressionStatement","src":"12902:48:38"},{"expression":{"arguments":[{"arguments":[{"id":14594,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13148:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleBudget_$14680","typeString":"contract SimpleBudget"}],"id":14593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13140:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14592,"name":"address","nodeType":"ElementaryTypeName","src":"13140:7:38","typeDescriptions":{}}},"id":14595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13140:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14596,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"13155:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14597,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14541,"src":"13160:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14598,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"13170:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14599,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14545,"src":"13179:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":14589,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"13115:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14588,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"13106:8:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1190_$","typeString":"type(contract IERC1155)"}},"id":14590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13106:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13123:16:38","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"13106:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":14600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13106:79:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14601,"nodeType":"ExpressionStatement","src":"13106:79:38"},{"eventCall":{"arguments":[{"id":14603,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"13213:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14604,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14539,"src":"13221:3:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14605,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14543,"src":"13226:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14602,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"13201:11:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13201:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14607,"nodeType":"EmitStatement","src":"13196:38:38"}]},"id":14609,"implemented":true,"kind":"function","modifiers":[{"id":14548,"kind":"modifierInvocation","modifierName":{"id":14547,"name":"nonReentrant","nameLocations":["12572:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"12572:12:38"},"nodeType":"ModifierInvocation","src":"12572:12:38"}],"name":"_transferERC1155","nameLocation":"12430:16:38","nodeType":"FunctionDefinition","parameters":{"id":14546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14537,"mutability":"mutable","name":"asset_","nameLocation":"12455:6:38","nodeType":"VariableDeclaration","scope":14609,"src":"12447:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14536,"name":"address","nodeType":"ElementaryTypeName","src":"12447:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14539,"mutability":"mutable","name":"to_","nameLocation":"12471:3:38","nodeType":"VariableDeclaration","scope":14609,"src":"12463:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14538,"name":"address","nodeType":"ElementaryTypeName","src":"12463:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14541,"mutability":"mutable","name":"tokenId_","nameLocation":"12484:8:38","nodeType":"VariableDeclaration","scope":14609,"src":"12476:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14540,"name":"uint256","nodeType":"ElementaryTypeName","src":"12476:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14543,"mutability":"mutable","name":"amount_","nameLocation":"12502:7:38","nodeType":"VariableDeclaration","scope":14609,"src":"12494:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14542,"name":"uint256","nodeType":"ElementaryTypeName","src":"12494:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14545,"mutability":"mutable","name":"data_","nameLocation":"12524:5:38","nodeType":"VariableDeclaration","scope":14609,"src":"12511:18:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14544,"name":"bytes","nodeType":"ElementaryTypeName","src":"12511:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12446:84:38"},"returnParameters":{"id":14549,"nodeType":"ParameterList","parameters":[],"src":"12589:0:38"},"scope":14680,"src":"12421:820:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1213],"body":{"id":14630,"nodeType":"Block","src":"13602:112:38","statements":[{"expression":{"expression":{"expression":{"id":14626,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"13664:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":14627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13681:17:38","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"13664:34:38","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)"}},"id":14628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13699:8:38","memberName":"selector","nodeType":"MemberAccess","src":"13664:43:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":14625,"id":14629,"nodeType":"Return","src":"13657:50:38"}]},"documentation":{"id":14610,"nodeType":"StructuredDocumentation","src":"13247:195:38","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)"},"functionSelector":"f23a6e61","id":14631,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"13456:17:38","nodeType":"FunctionDefinition","overrides":{"id":14622,"nodeType":"OverrideSpecifier","overrides":[],"src":"13564:8:38"},"parameters":{"id":14621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13474:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14611,"name":"address","nodeType":"ElementaryTypeName","src":"13474:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13483:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14613,"name":"address","nodeType":"ElementaryTypeName","src":"13483:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13492:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14615,"name":"uint256","nodeType":"ElementaryTypeName","src":"13492:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13501:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14617,"name":"uint256","nodeType":"ElementaryTypeName","src":"13501:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13510:14:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14619,"name":"bytes","nodeType":"ElementaryTypeName","src":"13510:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13473:52:38"},"returnParameters":{"id":14625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14631,"src":"13590:6:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14623,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13590:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13589:8:38"},"scope":14680,"src":"13447:267:38","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1231],"body":{"id":14654,"nodeType":"Block","src":"14102:117:38","statements":[{"expression":{"expression":{"expression":{"id":14650,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"14164:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}},"id":14651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14181:22:38","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1231,"src":"14164:39:38","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)"}},"id":14652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14204:8:38","memberName":"selector","nodeType":"MemberAccess","src":"14164:48:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":14649,"id":14653,"nodeType":"Return","src":"14157:55:38"}]},"documentation":{"id":14632,"nodeType":"StructuredDocumentation","src":"13720:195:38","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)"},"functionSelector":"bc197c81","id":14655,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"13929:22:38","nodeType":"FunctionDefinition","overrides":{"id":14646,"nodeType":"OverrideSpecifier","overrides":[],"src":"14064:8:38"},"parameters":{"id":14645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13952:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14633,"name":"address","nodeType":"ElementaryTypeName","src":"13952:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13961:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14635,"name":"address","nodeType":"ElementaryTypeName","src":"13961:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13970:18:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14637,"name":"uint256","nodeType":"ElementaryTypeName","src":"13970:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14638,"nodeType":"ArrayTypeName","src":"13970:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"13990:18:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14640,"name":"uint256","nodeType":"ElementaryTypeName","src":"13990:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14641,"nodeType":"ArrayTypeName","src":"13990:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"14010:14:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14643,"name":"bytes","nodeType":"ElementaryTypeName","src":"14010:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13951:74:38"},"returnParameters":{"id":14649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14648,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"14090:6:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14647,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14090:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14089:8:38"},"scope":14680,"src":"13920:299:38","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[2856,13636],"body":{"id":14678,"nodeType":"Block","src":"14363:113:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14666,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14658,"src":"14380:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14668,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"14400:16:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}],"id":14667,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14395:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14395:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$1232","typeString":"type(contract IERC1155Receiver)"}},"id":14670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14418:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"14395:34:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"14380:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14674,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14658,"src":"14457:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14672,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"14433:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_SimpleBudget_$14680_$","typeString":"type(contract super SimpleBudget)"}},"id":14673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14439:17:38","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":13636,"src":"14433:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14433:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14380:89:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14665,"id":14677,"nodeType":"Return","src":"14373:96:38"}]},"documentation":{"id":14656,"nodeType":"StructuredDocumentation","src":"14225:25:38","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":14679,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"14264:17:38","nodeType":"FunctionDefinition","overrides":{"id":14662,"nodeType":"OverrideSpecifier","overrides":[{"id":14660,"name":"Budget","nameLocations":["14331:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"14331:6:38"},{"id":14661,"name":"IERC165","nameLocations":["14339:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"14339:7:38"}],"src":"14322:25:38"},"parameters":{"id":14659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14658,"mutability":"mutable","name":"interfaceId","nameLocation":"14289:11:38","nodeType":"VariableDeclaration","scope":14679,"src":"14282:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14657,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14282:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14281:20:38"},"returnParameters":{"id":14665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14679,"src":"14357:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14663,"name":"bool","nodeType":"ElementaryTypeName","src":"14357:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14356:6:38"},"scope":14680,"src":"14255:221:38","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":14681,"src":"769:13709:38","usedErrors":[6235,6238,6241,6244,9117,9120,11020,13517,13526,13529,13538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,13501,13510]}],"src":"36:14443:38"},"id":38},"contracts/budgets/VestingBudget.sol":{"ast":{"absolutePath":"contracts/budgets/VestingBudget.sol","exportedSymbols":{"Budget":[13669],"Cloneable":[17720],"ReentrancyGuard":[11038],"SafeTransferLib":[11372],"VestingBudget":[15410]},"id":15411,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":14682,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:39"},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":14684,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":11373,"src":"62:66:39","symbolAliases":[{"foreign":{"id":14683,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"70:15:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":14686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":11039,"src":"129:66:39","symbolAliases":[{"foreign":{"id":14685,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"137:15:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":14688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":13670,"src":"197:52:39","symbolAliases":[{"foreign":{"id":14687,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"205:6:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":14690,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15411,"sourceUnit":17721,"src":"250:57:39","symbolAliases":[{"foreign":{"id":14689,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"258:9:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14692,"name":"Budget","nameLocations":["1507:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"1507:6:39"},"id":14693,"nodeType":"InheritanceSpecifier","src":"1507:6:39"},{"baseName":{"id":14694,"name":"ReentrancyGuard","nameLocations":["1515:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"1515:15:39"},"id":14695,"nodeType":"InheritanceSpecifier","src":"1515:15:39"}],"canonicalName":"VestingBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":14691,"nodeType":"StructuredDocumentation","src":"309:1172:39","text":"@title Vesting Budget\n @notice A vesting-based budget implementation that allows for the distribution of assets over time\n @dev Take note of the following when making use of this budget type:\n - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule."},"fullyImplemented":true,"id":15410,"linearizedBaseContracts":[15410,11038,13669,6229,17720,2845,2857,9225,6423],"name":"VestingBudget","nameLocation":"1490:13:39","nodeType":"ContractDefinition","nodes":[{"global":false,"id":14698,"libraryName":{"id":14696,"name":"SafeTransferLib","nameLocations":["1543:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"1543:15:39"},"nodeType":"UsingForDirective","src":"1537:34:39","typeName":{"id":14697,"name":"address","nodeType":"ElementaryTypeName","src":"1563:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"VestingBudget.InitPayload","documentation":{"id":14699,"nodeType":"StructuredDocumentation","src":"1577:56:39","text":"@notice The payload for initializing a VestingBudget"},"id":14711,"members":[{"constant":false,"id":14701,"mutability":"mutable","name":"owner","nameLocation":"1675:5:39","nodeType":"VariableDeclaration","scope":14711,"src":"1667:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14700,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14704,"mutability":"mutable","name":"authorized","nameLocation":"1700:10:39","nodeType":"VariableDeclaration","scope":14711,"src":"1690:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14702,"name":"address","nodeType":"ElementaryTypeName","src":"1690:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14703,"nodeType":"ArrayTypeName","src":"1690:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14706,"mutability":"mutable","name":"start","nameLocation":"1727:5:39","nodeType":"VariableDeclaration","scope":14711,"src":"1720:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14705,"name":"uint64","nodeType":"ElementaryTypeName","src":"1720:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":14708,"mutability":"mutable","name":"duration","nameLocation":"1749:8:39","nodeType":"VariableDeclaration","scope":14711,"src":"1742:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14707,"name":"uint64","nodeType":"ElementaryTypeName","src":"1742:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":14710,"mutability":"mutable","name":"cliff","nameLocation":"1774:5:39","nodeType":"VariableDeclaration","scope":14711,"src":"1767:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14709,"name":"uint64","nodeType":"ElementaryTypeName","src":"1767:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1645:11:39","nodeType":"StructDefinition","scope":15410,"src":"1638:148:39","visibility":"public"},{"constant":false,"documentation":{"id":14712,"nodeType":"StructuredDocumentation","src":"1792:76:39","text":"@dev The total amount of each fungible asset distributed from the budget"},"id":14716,"mutability":"mutable","name":"_distributedFungible","nameLocation":"1909:20:39","nodeType":"VariableDeclaration","scope":15410,"src":"1873:56:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":14715,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":14713,"name":"address","nodeType":"ElementaryTypeName","src":"1881:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1873:27:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":14714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1892:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"documentation":{"id":14717,"nodeType":"StructuredDocumentation","src":"1936:44:39","text":"@dev The mapping of authorized addresses"},"id":14721,"mutability":"mutable","name":"_isAuthorized","nameLocation":"2018:13:39","nodeType":"VariableDeclaration","scope":15410,"src":"1985:46:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":14720,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":14718,"name":"address","nodeType":"ElementaryTypeName","src":"1993:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1985:24:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":14719,"name":"bool","nodeType":"ElementaryTypeName","src":"2004:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"constant":false,"documentation":{"id":14722,"nodeType":"StructuredDocumentation","src":"2038:62:39","text":"@notice The timestamp at which the vesting schedule begins"},"functionSelector":"be9a6555","id":14724,"mutability":"mutable","name":"start","nameLocation":"2119:5:39","nodeType":"VariableDeclaration","scope":15410,"src":"2105:19:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14723,"name":"uint64","nodeType":"ElementaryTypeName","src":"2105:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"constant":false,"documentation":{"id":14725,"nodeType":"StructuredDocumentation","src":"2131:61:39","text":"@notice The duration of the vesting schedule (in seconds)"},"functionSelector":"0fb5a6b4","id":14727,"mutability":"mutable","name":"duration","nameLocation":"2211:8:39","nodeType":"VariableDeclaration","scope":15410,"src":"2197:22:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14726,"name":"uint64","nodeType":"ElementaryTypeName","src":"2197:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"constant":false,"documentation":{"id":14728,"nodeType":"StructuredDocumentation","src":"2226:57:39","text":"@notice The duration of the cliff period (in seconds)"},"functionSelector":"13d033c0","id":14730,"mutability":"mutable","name":"cliff","nameLocation":"2302:5:39","nodeType":"VariableDeclaration","scope":15410,"src":"2288:19:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14729,"name":"uint64","nodeType":"ElementaryTypeName","src":"2288:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"body":{"id":14743,"nodeType":"Block","src":"2426:80:39","statements":[{"condition":{"id":14737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2440:25:39","subExpression":{"arguments":[{"expression":{"id":14734,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2454:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2458:6:39","memberName":"sender","nodeType":"MemberAccess","src":"2454:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14733,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15154,"src":"2441:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":14736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2441:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14741,"nodeType":"IfStatement","src":"2436:52:39","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14738,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"2474:12:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:14:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14740,"nodeType":"RevertStatement","src":"2467:21:39"}},{"id":14742,"nodeType":"PlaceholderStatement","src":"2498:1:39"}]},"documentation":{"id":14731,"nodeType":"StructuredDocumentation","src":"2314:81:39","text":"@notice A modifier that allows only authorized addresses to call the function"},"id":14744,"name":"onlyAuthorized","nameLocation":"2409:14:39","nodeType":"ModifierDefinition","parameters":{"id":14732,"nodeType":"ParameterList","parameters":[],"src":"2423:2:39"},"src":"2400:106:39","virtual":false,"visibility":"internal"},{"body":{"id":14751,"nodeType":"Block","src":"2765:39:39","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14748,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"2775:20:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:22:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14750,"nodeType":"ExpressionStatement","src":"2775:22:39"}]},"documentation":{"id":14745,"nodeType":"StructuredDocumentation","src":"2512:234:39","text":"@notice Construct a new VestingBudget\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":14752,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14746,"nodeType":"ParameterList","parameters":[],"src":"2762:2:39"},"returnParameters":{"id":14747,"nodeType":"ParameterList","parameters":[],"src":"2765:0:39"},"scope":15410,"src":"2751:53:39","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":14814,"nodeType":"Block","src":"2995:339:39","statements":[{"assignments":[14763],"declarations":[{"constant":false,"id":14763,"mutability":"mutable","name":"init_","nameLocation":"3024:5:39","nodeType":"VariableDeclaration","scope":14814,"src":"3005:24:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload"},"typeName":{"id":14762,"nodeType":"UserDefinedTypeName","pathNode":{"id":14761,"name":"InitPayload","nameLocations":["3005:11:39"],"nodeType":"IdentifierPath","referencedDeclaration":14711,"src":"3005:11:39"},"referencedDeclaration":14711,"src":"3005:11:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_storage_ptr","typeString":"struct VestingBudget.InitPayload"}},"visibility":"internal"}],"id":14770,"initialValue":{"arguments":[{"id":14766,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"3043:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14767,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"3051:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$14711_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}}],"id":14768,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3050:13:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$14711_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$14711_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}],"expression":{"id":14764,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3032:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3036:6:39","memberName":"decode","nodeType":"MemberAccess","src":"3032:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3032:32:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3005:59:39"},{"expression":{"id":14774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14771,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"3075:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14772,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3083:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3089:5:39","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14706,"src":"3083:11:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3075:19:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14775,"nodeType":"ExpressionStatement","src":"3075:19:39"},{"expression":{"id":14779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14776,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"3104:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14777,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3115:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3121:8:39","memberName":"duration","nodeType":"MemberAccess","referencedDeclaration":14708,"src":"3115:14:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3104:25:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14780,"nodeType":"ExpressionStatement","src":"3104:25:39"},{"expression":{"id":14784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14781,"name":"cliff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"3139:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14782,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3147:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3153:5:39","memberName":"cliff","nodeType":"MemberAccess","referencedDeclaration":14710,"src":"3147:11:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3139:19:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14785,"nodeType":"ExpressionStatement","src":"3139:19:39"},{"expression":{"arguments":[{"expression":{"id":14787,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3186:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3192:5:39","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":14701,"src":"3186:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14786,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3169:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":14789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3169:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14790,"nodeType":"ExpressionStatement","src":"3169:29:39"},{"body":{"id":14812,"nodeType":"Block","src":"3262:66:39","statements":[{"expression":{"id":14810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14803,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14721,"src":"3276:13:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14808,"indexExpression":{"baseExpression":{"expression":{"id":14804,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3290:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3296:10:39","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":14704,"src":"3290:16:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14807,"indexExpression":{"id":14806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"3307:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3290:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3276:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":14809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3313:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3276:41:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14811,"nodeType":"ExpressionStatement","src":"3276:41:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"3228:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14796,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"3232:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$14711_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":14797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3238:10:39","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":14704,"src":"3232:16:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3249:6:39","memberName":"length","nodeType":"MemberAccess","src":"3232:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3228:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14813,"initializationExpression":{"assignments":[14792],"declarations":[{"constant":false,"id":14792,"mutability":"mutable","name":"i","nameLocation":"3221:1:39","nodeType":"VariableDeclaration","scope":14813,"src":"3213:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14794,"initialValue":{"hexValue":"30","id":14793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3225:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3213:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3257:3:39","subExpression":{"id":14800,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14792,"src":"3257:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14802,"nodeType":"ExpressionStatement","src":"3257:3:39"},"nodeType":"ForStatement","src":"3208:120:39"}]},"documentation":{"id":14753,"nodeType":"StructuredDocumentation","src":"2810:102:39","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget (see {InitPayload})"},"functionSelector":"439fab91","id":14815,"implemented":true,"kind":"function","modifiers":[{"id":14759,"kind":"modifierInvocation","modifierName":{"id":14758,"name":"initializer","nameLocations":["2983:11:39"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2983:11:39"},"nodeType":"ModifierInvocation","src":"2983:11:39"}],"name":"initialize","nameLocation":"2926:10:39","nodeType":"FunctionDefinition","overrides":{"id":14757,"nodeType":"OverrideSpecifier","overrides":[],"src":"2974:8:39"},"parameters":{"id":14756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14755,"mutability":"mutable","name":"data_","nameLocation":"2952:5:39","nodeType":"VariableDeclaration","scope":14815,"src":"2937:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14754,"name":"bytes","nodeType":"ElementaryTypeName","src":"2937:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2936:22:39"},"returnParameters":{"id":14760,"nodeType":"ParameterList","parameters":[],"src":"2995:0:39"},"scope":15410,"src":"2917:417:39","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13556],"body":{"id":14924,"nodeType":"Block","src":"3776:1008:39","statements":[{"assignments":[14826],"declarations":[{"constant":false,"id":14826,"mutability":"mutable","name":"request","nameLocation":"3802:7:39","nodeType":"VariableDeclaration","scope":14924,"src":"3786:23:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14825,"nodeType":"UserDefinedTypeName","pathNode":{"id":14824,"name":"Transfer","nameLocations":["3786:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"3786:8:39"},"referencedDeclaration":13482,"src":"3786:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14833,"initialValue":{"arguments":[{"id":14829,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14818,"src":"3823:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14830,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"3831:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14831,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3830:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3812:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3816:6:39","memberName":"decode","nodeType":"MemberAccess","src":"3812:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3812:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"3786:55:39"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14834,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"3855:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3863:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"3855:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14836,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"3876:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3886:3:39","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"3876:13:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"3855:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14865,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4211:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4219:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"4211:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14867,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"4232:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4242:5:39","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"4232:15:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"4211:36:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14919,"nodeType":"Block","src":"4681:75:39","statements":[{"expression":{"hexValue":"66616c7365","id":14917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4740:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14823,"id":14918,"nodeType":"Return","src":"4733:12:39"}]},"id":14920,"nodeType":"IfStatement","src":"4207:549:39","trueBody":{"id":14916,"nodeType":"Block","src":"4249:426:39","statements":[{"assignments":[14872],"declarations":[{"constant":false,"id":14872,"mutability":"mutable","name":"payload","nameLocation":"4286:7:39","nodeType":"VariableDeclaration","scope":14916,"src":"4263:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14871,"nodeType":"UserDefinedTypeName","pathNode":{"id":14870,"name":"FungiblePayload","nameLocations":["4263:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"4263:15:39"},"referencedDeclaration":13486,"src":"4263:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14880,"initialValue":{"arguments":[{"expression":{"id":14875,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4307:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4315:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"4307:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14877,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"4322:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4321:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4296:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4300:6:39","memberName":"decode","nodeType":"MemberAccess","src":"4296:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4263:76:39"},{"expression":{"arguments":[{"expression":{"id":14886,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4456:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4464:6:39","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"4456:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14890,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4480:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":14889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4472:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14888,"name":"address","nodeType":"ElementaryTypeName","src":"4472:7:39","typeDescriptions":{}}},"id":14891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4472:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14892,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"4487:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4495:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4487:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":14881,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4425:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4433:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4425:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4439:16:39","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":11177,"src":"4425:30:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":14894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:77:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14895,"nodeType":"ExpressionStatement","src":"4425:77:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":14901,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4552:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":14900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4544:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14899,"name":"address","nodeType":"ElementaryTypeName","src":"4544:7:39","typeDescriptions":{}}},"id":14902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":14896,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4520:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4528:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4520:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4534:9:39","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"4520:23:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":14903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14904,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"4561:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4569:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4561:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4520:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14915,"nodeType":"IfStatement","src":"4516:149:39","trueBody":{"id":14914,"nodeType":"Block","src":"4577:88:39","statements":[{"errorCall":{"arguments":[{"expression":{"id":14908,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4620:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4628:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4620:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14910,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"4635:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4643:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4635:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14907,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"4602:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":14912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4602:48:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14913,"nodeType":"RevertStatement","src":"4595:55:39"}]}}]}},"id":14921,"nodeType":"IfStatement","src":"3851:905:39","trueBody":{"id":14864,"nodeType":"Block","src":"3891:310:39","statements":[{"assignments":[14841],"declarations":[{"constant":false,"id":14841,"mutability":"mutable","name":"payload","nameLocation":"3928:7:39","nodeType":"VariableDeclaration","scope":14864,"src":"3905:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14840,"nodeType":"UserDefinedTypeName","pathNode":{"id":14839,"name":"FungiblePayload","nameLocations":["3905:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"3905:15:39"},"referencedDeclaration":13486,"src":"3905:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14849,"initialValue":{"arguments":[{"expression":{"id":14844,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"3949:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3957:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"3949:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14846,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"3964:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14847,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3963:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14842,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3938:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3942:6:39","memberName":"decode","nodeType":"MemberAccess","src":"3938:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3938:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:76:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14850,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4074:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4078:5:39","memberName":"value","nodeType":"MemberAccess","src":"4074:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14852,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"4087:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4095:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4087:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4074:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14863,"nodeType":"IfStatement","src":"4070:121:39","trueBody":{"id":14862,"nodeType":"Block","src":"4103:88:39","statements":[{"errorCall":{"arguments":[{"expression":{"id":14856,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"4146:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4154:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"4146:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14858,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"4161:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4169:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4161:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14855,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13517,"src":"4128:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":14860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4128:48:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14861,"nodeType":"RevertStatement","src":"4121:55:39"}]}}]}},{"expression":{"hexValue":"74727565","id":14922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4773:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14823,"id":14923,"nodeType":"Return","src":"4766:11:39"}]},"documentation":{"id":14816,"nodeType":"StructuredDocumentation","src":"3340:342:39","text":"@inheritdoc Budget\n @notice Allocates assets to the budget\n @param data_ The packed data for the {Transfer} request\n @return True if the allocation was successful\n @dev The caller must have already approved the contract to transfer the asset\n @dev If the asset transfer fails, the allocation will revert"},"functionSelector":"5aef467a","id":14925,"implemented":true,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"3696:8:39","nodeType":"FunctionDefinition","overrides":{"id":14820,"nodeType":"OverrideSpecifier","overrides":[],"src":"3752:8:39"},"parameters":{"id":14819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14818,"mutability":"mutable","name":"data_","nameLocation":"3720:5:39","nodeType":"VariableDeclaration","scope":14925,"src":"3705:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14817,"name":"bytes","nodeType":"ElementaryTypeName","src":"3705:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3704:22:39"},"returnParameters":{"id":14823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14925,"src":"3770:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14821,"name":"bool","nodeType":"ElementaryTypeName","src":"3770:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3769:6:39"},"scope":15410,"src":"3687:1097:39","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[13564],"body":{"id":14993,"nodeType":"Block","src":"5381:484:39","statements":[{"assignments":[14938],"declarations":[{"constant":false,"id":14938,"mutability":"mutable","name":"request","nameLocation":"5407:7:39","nodeType":"VariableDeclaration","scope":14993,"src":"5391:23:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14937,"nodeType":"UserDefinedTypeName","pathNode":{"id":14936,"name":"Transfer","nameLocations":["5391:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"5391:8:39"},"referencedDeclaration":13482,"src":"5391:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14945,"initialValue":{"arguments":[{"id":14941,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14928,"src":"5428:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14942,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"5436:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14943,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5435:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5417:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5421:6:39","memberName":"decode","nodeType":"MemberAccess","src":"5417:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5417:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"5391:55:39"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14946,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5460:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5468:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5460:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14948,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5481:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5491:3:39","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"5481:13:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5460:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":14955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14951,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5498:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5506:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"5498:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14953,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"5519:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":14954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5529:5:39","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5519:15:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"5498:36:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5460:74:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14989,"nodeType":"Block","src":"5800:37:39","statements":[{"expression":{"hexValue":"66616c7365","id":14987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5821:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14935,"id":14988,"nodeType":"Return","src":"5814:12:39"}]},"id":14990,"nodeType":"IfStatement","src":"5456:381:39","trueBody":{"id":14986,"nodeType":"Block","src":"5536:258:39","statements":[{"assignments":[14959],"declarations":[{"constant":false,"id":14959,"mutability":"mutable","name":"payload","nameLocation":"5573:7:39","nodeType":"VariableDeclaration","scope":14986,"src":"5550:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14958,"nodeType":"UserDefinedTypeName","pathNode":{"id":14957,"name":"FungiblePayload","nameLocations":["5550:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"5550:15:39"},"referencedDeclaration":13486,"src":"5550:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14967,"initialValue":{"arguments":[{"expression":{"id":14962,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5594:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5602:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"5594:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14964,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"5609:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5608:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14960,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5583:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5587:6:39","memberName":"decode","nodeType":"MemberAccess","src":"5583:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5583:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5550:76:39"},{"expression":{"arguments":[{"expression":{"id":14969,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5675:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5683:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5675:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14971,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5690:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5698:6:39","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"5690:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14973,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14959,"src":"5706:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5714:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5706:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5724:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5706:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14981,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14959,"src":"5755:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5763:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"5755:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5706:63:39","trueExpression":{"arguments":[{"expression":{"id":14978,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"5738:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5746:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"5738:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14977,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15226,"src":"5728:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5728:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14968,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15328,"src":"5640:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5640:143:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14985,"nodeType":"ExpressionStatement","src":"5640:143:39"}]}},{"expression":{"hexValue":"74727565","id":14991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5854:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14935,"id":14992,"nodeType":"Return","src":"5847:11:39"}]},"documentation":{"id":14926,"nodeType":"StructuredDocumentation","src":"4790:496:39","text":"@inheritdoc Budget\n @notice Reclaims assets from the budget\n @param data_ The packed {Transfer} request\n @return True if the request was successful\n @dev Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting schedule\n @dev If the amount is zero, the entire available balance of the asset will be transferred to the receiver\n @dev If the asset transfer fails for any reason, the function will revert"},"functionSelector":"f1c30ec0","id":14994,"implemented":true,"kind":"function","modifiers":[{"id":14932,"kind":"modifierInvocation","modifierName":{"id":14931,"name":"onlyOwner","nameLocations":["5356:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"5356:9:39"},"nodeType":"ModifierInvocation","src":"5356:9:39"}],"name":"reclaim","nameLocation":"5300:7:39","nodeType":"FunctionDefinition","overrides":{"id":14930,"nodeType":"OverrideSpecifier","overrides":[],"src":"5347:8:39"},"parameters":{"id":14929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14928,"mutability":"mutable","name":"data_","nameLocation":"5323:5:39","nodeType":"VariableDeclaration","scope":14994,"src":"5308:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14927,"name":"bytes","nodeType":"ElementaryTypeName","src":"5308:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5307:22:39"},"returnParameters":{"id":14935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14994,"src":"5375:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14933,"name":"bool","nodeType":"ElementaryTypeName","src":"5375:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5374:6:39"},"scope":15410,"src":"5291:574:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13572],"body":{"id":15053,"nodeType":"Block","src":"6250:405:39","statements":[{"assignments":[15007],"declarations":[{"constant":false,"id":15007,"mutability":"mutable","name":"request","nameLocation":"6276:7:39","nodeType":"VariableDeclaration","scope":15053,"src":"6260:23:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":15006,"nodeType":"UserDefinedTypeName","pathNode":{"id":15005,"name":"Transfer","nameLocations":["6260:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":13482,"src":"6260:8:39"},"referencedDeclaration":13482,"src":"6260:8:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":15014,"initialValue":{"arguments":[{"id":15010,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14997,"src":"6297:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15011,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13482,"src":"6305:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":15012,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6304:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":15008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6286:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6290:6:39","memberName":"decode","nodeType":"MemberAccess","src":"6286:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6286:29:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"6260:55:39"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":15019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15015,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6329:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6337:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6329:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15017,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6350:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":15018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6360:5:39","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"6350:15:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6329:36:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},"id":15024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15020,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6369:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6377:9:39","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":13475,"src":"6369:17:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15022,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13471,"src":"6390:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":15023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6400:3:39","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":13468,"src":"6390:13:39","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},"src":"6369:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6329:74:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15049,"nodeType":"Block","src":"6590:37:39","statements":[{"expression":{"hexValue":"66616c7365","id":15047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6611:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":15004,"id":15048,"nodeType":"Return","src":"6604:12:39"}]},"id":15050,"nodeType":"IfStatement","src":"6325:302:39","trueBody":{"id":15046,"nodeType":"Block","src":"6405:179:39","statements":[{"assignments":[15028],"declarations":[{"constant":false,"id":15028,"mutability":"mutable","name":"payload","nameLocation":"6442:7:39","nodeType":"VariableDeclaration","scope":15046,"src":"6419:30:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":15027,"nodeType":"UserDefinedTypeName","pathNode":{"id":15026,"name":"FungiblePayload","nameLocations":["6419:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13486,"src":"6419:15:39"},"referencedDeclaration":13486,"src":"6419:15:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":15036,"initialValue":{"arguments":[{"expression":{"id":15031,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6463:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6471:4:39","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":13481,"src":"6463:12:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":15033,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"6478:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":15034,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6477:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":15029,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6452:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6456:6:39","memberName":"decode","nodeType":"MemberAccess","src":"6452:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6452:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6419:76:39"},{"expression":{"arguments":[{"expression":{"id":15038,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6527:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6535:5:39","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"6527:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15040,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6542:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6550:6:39","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13479,"src":"6542:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15042,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"6558:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":15043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6566:6:39","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"6558:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15037,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15328,"src":"6509:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":15044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6509:64:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15045,"nodeType":"ExpressionStatement","src":"6509:64:39"}]}},{"expression":{"hexValue":"74727565","id":15051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6644:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15004,"id":15052,"nodeType":"Return","src":"6637:11:39"}]},"documentation":{"id":14995,"nodeType":"StructuredDocumentation","src":"5871:280:39","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to a single recipient\n @param data_ The packed {Transfer} request\n @return True if the disbursement was successful\n @dev The maximum amount that can be disbursed is the {available} amount"},"functionSelector":"fa4ca9b1","id":15054,"implemented":true,"kind":"function","modifiers":[{"id":15001,"kind":"modifierInvocation","modifierName":{"id":15000,"name":"onlyAuthorized","nameLocations":["6220:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":14744,"src":"6220:14:39"},"nodeType":"ModifierInvocation","src":"6220:14:39"}],"name":"disburse","nameLocation":"6165:8:39","nodeType":"FunctionDefinition","overrides":{"id":14999,"nodeType":"OverrideSpecifier","overrides":[],"src":"6211:8:39"},"parameters":{"id":14998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14997,"mutability":"mutable","name":"data_","nameLocation":"6189:5:39","nodeType":"VariableDeclaration","scope":15054,"src":"6174:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14996,"name":"bytes","nodeType":"ElementaryTypeName","src":"6174:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6173:22:39"},"returnParameters":{"id":15004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15054,"src":"6244:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15002,"name":"bool","nodeType":"ElementaryTypeName","src":"6244:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6243:6:39"},"scope":15410,"src":"6156:499:39","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13581],"body":{"id":15088,"nodeType":"Block","src":"6967:143:39","statements":[{"body":{"id":15084,"nodeType":"Block","src":"7020:62:39","statements":[{"condition":{"id":15080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7038:19:39","subExpression":{"arguments":[{"baseExpression":{"id":15076,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15058,"src":"7048:5:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15078,"indexExpression":{"id":15077,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15065,"src":"7054:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7048:8:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15075,"name":"disburse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15054,"src":"7039:8:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) returns (bool)"}},"id":15079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7039:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15083,"nodeType":"IfStatement","src":"7034:37:39","trueBody":{"expression":{"hexValue":"66616c7365","id":15081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7066:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":15063,"id":15082,"nodeType":"Return","src":"7059:12:39"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15065,"src":"6997:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15069,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15058,"src":"7001:5:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7007:6:39","memberName":"length","nodeType":"MemberAccess","src":"7001:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6997:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15085,"initializationExpression":{"assignments":[15065],"declarations":[{"constant":false,"id":15065,"mutability":"mutable","name":"i","nameLocation":"6990:1:39","nodeType":"VariableDeclaration","scope":15085,"src":"6982:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15064,"name":"uint256","nodeType":"ElementaryTypeName","src":"6982:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15067,"initialValue":{"hexValue":"30","id":15066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6994:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6982:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7015:3:39","subExpression":{"id":15072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15065,"src":"7015:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15074,"nodeType":"ExpressionStatement","src":"7015:3:39"},"nodeType":"ForStatement","src":"6977:105:39"},{"expression":{"hexValue":"74727565","id":15086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7099:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15063,"id":15087,"nodeType":"Return","src":"7092:11:39"}]},"documentation":{"id":15055,"nodeType":"StructuredDocumentation","src":"6661:213:39","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to multiple recipients\n @param data_ The packed array of {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":15089,"implemented":true,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"6888:13:39","nodeType":"FunctionDefinition","overrides":{"id":15060,"nodeType":"OverrideSpecifier","overrides":[],"src":"6943:8:39"},"parameters":{"id":15059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15058,"mutability":"mutable","name":"data_","nameLocation":"6919:5:39","nodeType":"VariableDeclaration","scope":15089,"src":"6902:22:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15056,"name":"bytes","nodeType":"ElementaryTypeName","src":"6902:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15057,"nodeType":"ArrayTypeName","src":"6902:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"6901:24:39"},"returnParameters":{"id":15063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15089,"src":"6961:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15061,"name":"bool","nodeType":"ElementaryTypeName","src":"6961:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6960:6:39"},"scope":15410,"src":"6879:231:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13646],"body":{"id":15134,"nodeType":"Block","src":"7296:206:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15102,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"7310:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7319:6:39","memberName":"length","nodeType":"MemberAccess","src":"7310:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15104,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"7329:11:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":15105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7341:6:39","memberName":"length","nodeType":"MemberAccess","src":"7329:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7310:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15110,"nodeType":"IfStatement","src":"7306:66:39","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15107,"name":"LengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13529,"src":"7356:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15109,"nodeType":"RevertStatement","src":"7349:23:39"}},{"body":{"id":15132,"nodeType":"Block","src":"7428:68:39","statements":[{"expression":{"id":15130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15122,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14721,"src":"7442:13:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15126,"indexExpression":{"baseExpression":{"id":15123,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"7456:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15125,"indexExpression":{"id":15124,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7465:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7456:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7442:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":15127,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"7471:11:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":15129,"indexExpression":{"id":15128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7483:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7471:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7442:43:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15131,"nodeType":"ExpressionStatement","src":"7442:43:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7402:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15116,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"7406:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7415:6:39","memberName":"length","nodeType":"MemberAccess","src":"7406:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7402:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15133,"initializationExpression":{"assignments":[15112],"declarations":[{"constant":false,"id":15112,"mutability":"mutable","name":"i","nameLocation":"7395:1:39","nodeType":"VariableDeclaration","scope":15133,"src":"7387:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15111,"name":"uint256","nodeType":"ElementaryTypeName","src":"7387:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15114,"initialValue":{"hexValue":"30","id":15113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7399:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7387:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7423:3:39","subExpression":{"id":15119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15112,"src":"7423:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15121,"nodeType":"ExpressionStatement","src":"7423:3:39"},"nodeType":"ForStatement","src":"7382:114:39"}]},"documentation":{"id":15090,"nodeType":"StructuredDocumentation","src":"7116:22:39","text":"@inheritdoc Budget"},"functionSelector":"4359d28a","id":15135,"implemented":true,"kind":"function","modifiers":[{"id":15100,"kind":"modifierInvocation","modifierName":{"id":15099,"name":"onlyOwner","nameLocations":["7282:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7282:9:39"},"nodeType":"ModifierInvocation","src":"7282:9:39"}],"name":"setAuthorized","nameLocation":"7152:13:39","nodeType":"FunctionDefinition","overrides":{"id":15098,"nodeType":"OverrideSpecifier","overrides":[],"src":"7265:8:39"},"parameters":{"id":15097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15093,"mutability":"mutable","name":"account_","nameLocation":"7185:8:39","nodeType":"VariableDeclaration","scope":15135,"src":"7166:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15091,"name":"address","nodeType":"ElementaryTypeName","src":"7166:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15092,"nodeType":"ArrayTypeName","src":"7166:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15096,"mutability":"mutable","name":"authorized_","nameLocation":"7211:11:39","nodeType":"VariableDeclaration","scope":15135,"src":"7195:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15094,"name":"bool","nodeType":"ElementaryTypeName","src":"7195:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15095,"nodeType":"ArrayTypeName","src":"7195:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"7165:58:39"},"returnParameters":{"id":15101,"nodeType":"ParameterList","parameters":[],"src":"7296:0:39"},"scope":15410,"src":"7143:359:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[13654],"body":{"id":15153,"nodeType":"Block","src":"7619:70:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":15144,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14721,"src":"7636:13:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15146,"indexExpression":{"id":15145,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7650:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7636:23:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15147,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7663:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":15148,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6404,"src":"7675:5:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7675:7:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7663:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7636:46:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15143,"id":15152,"nodeType":"Return","src":"7629:53:39"}]},"documentation":{"id":15136,"nodeType":"StructuredDocumentation","src":"7508:22:39","text":"@inheritdoc Budget"},"functionSelector":"fe9fbb80","id":15154,"implemented":true,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"7544:12:39","nodeType":"FunctionDefinition","overrides":{"id":15140,"nodeType":"OverrideSpecifier","overrides":[],"src":"7595:8:39"},"parameters":{"id":15139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15138,"mutability":"mutable","name":"account_","nameLocation":"7565:8:39","nodeType":"VariableDeclaration","scope":15154,"src":"7557:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15137,"name":"address","nodeType":"ElementaryTypeName","src":"7557:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7556:18:39"},"returnParameters":{"id":15143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15154,"src":"7613:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15141,"name":"bool","nodeType":"ElementaryTypeName","src":"7613:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7612:6:39"},"scope":15410,"src":"7535:154:39","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15164,"nodeType":"Block","src":"7860:40:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15160,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"7877:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15161,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"7885:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7877:16:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":15159,"id":15163,"nodeType":"Return","src":"7870:23:39"}]},"documentation":{"id":15155,"nodeType":"StructuredDocumentation","src":"7695:105:39","text":"@notice Get the end time of the vesting schedule\n @return The end time of the vesting schedule"},"functionSelector":"efbe1c1c","id":15165,"implemented":true,"kind":"function","modifiers":[],"name":"end","nameLocation":"7814:3:39","nodeType":"FunctionDefinition","parameters":{"id":15156,"nodeType":"ParameterList","parameters":[],"src":"7817:2:39"},"returnParameters":{"id":15159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15165,"src":"7851:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15157,"name":"uint256","nodeType":"ElementaryTypeName","src":"7851:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7850:9:39"},"scope":15410,"src":"7805:95:39","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13589],"body":{"id":15202,"nodeType":"Block","src":"8316:168:39","statements":[{"assignments":[15175],"declarations":[{"constant":false,"id":15175,"mutability":"mutable","name":"balance","nameLocation":"8334:7:39","nodeType":"VariableDeclaration","scope":15202,"src":"8326:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15174,"name":"uint256","nodeType":"ElementaryTypeName","src":"8326:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15195,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15176,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8344:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8362:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8354:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15177,"name":"address","nodeType":"ElementaryTypeName","src":"8354:7:39","typeDescriptions":{}}},"id":15180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8354:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8344:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":15191,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8416:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8408:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15189,"name":"address","nodeType":"ElementaryTypeName","src":"8408:7:39","typeDescriptions":{}}},"id":15192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8408:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15187,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8391:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8398:9:39","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"8391:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8391:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8344:78:39","trueExpression":{"expression":{"arguments":[{"id":15184,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8375:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8367:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15182,"name":"address","nodeType":"ElementaryTypeName","src":"8367:7:39","typeDescriptions":{}}},"id":15185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8367:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8381:7:39","memberName":"balance","nodeType":"MemberAccess","src":"8367:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8326:96:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":15196,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"8439:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15198,"indexExpression":{"id":15197,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8460:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8439:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15199,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"8470:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8439:38:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15173,"id":15201,"nodeType":"Return","src":"8432:45:39"}]},"documentation":{"id":15166,"nodeType":"StructuredDocumentation","src":"7906:325:39","text":"@inheritdoc Budget\n @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets\n @dev This is equal to the sum of the total current balance and the total distributed amount"},"functionSelector":"d2514e84","id":15203,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"8245:5:39","nodeType":"FunctionDefinition","overrides":{"id":15170,"nodeType":"OverrideSpecifier","overrides":[],"src":"8289:8:39"},"parameters":{"id":15169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15168,"mutability":"mutable","name":"asset_","nameLocation":"8259:6:39","nodeType":"VariableDeclaration","scope":15203,"src":"8251:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15167,"name":"address","nodeType":"ElementaryTypeName","src":"8251:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8250:16:39"},"returnParameters":{"id":15173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15203,"src":"8307:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15171,"name":"uint256","nodeType":"ElementaryTypeName","src":"8307:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8306:9:39"},"scope":15410,"src":"8236:248:39","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13597],"body":{"id":15225,"nodeType":"Block","src":"8962:105:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15213,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15206,"src":"8997:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":15216,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9012:5:39","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9018:9:39","memberName":"timestamp","nodeType":"MemberAccess","src":"9012:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9005:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":15214,"name":"uint64","nodeType":"ElementaryTypeName","src":"9005:6:39","typeDescriptions":{}}},"id":15218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9005:23:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":15212,"name":"_vestedAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15370,"src":"8979:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint64_$returns$_t_uint256_$","typeString":"function (address,uint64) view returns (uint256)"}},"id":15219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8979:50:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"id":15220,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"9032:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15222,"indexExpression":{"id":15221,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15206,"src":"9053:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9032:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8979:81:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15211,"id":15224,"nodeType":"Return","src":"8972:88:39"}]},"documentation":{"id":15204,"nodeType":"StructuredDocumentation","src":"8490:385:39","text":"@inheritdoc Budget\n @notice Get the amount of assets available for distribution from the budget as of the current block timestamp\n @param asset_ The address of the asset (or the zero address for native assets)\n @return The amount of assets currently available for distribution\n @dev This is equal to the total vested amount minus any already distributed"},"functionSelector":"10098ad5","id":15226,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"8889:9:39","nodeType":"FunctionDefinition","overrides":{"id":15208,"nodeType":"OverrideSpecifier","overrides":[],"src":"8935:8:39"},"parameters":{"id":15207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15206,"mutability":"mutable","name":"asset_","nameLocation":"8907:6:39","nodeType":"VariableDeclaration","scope":15226,"src":"8899:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15205,"name":"address","nodeType":"ElementaryTypeName","src":"8899:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8898:16:39"},"returnParameters":{"id":15211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15226,"src":"8953:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15209,"name":"uint256","nodeType":"ElementaryTypeName","src":"8953:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8952:9:39"},"scope":15410,"src":"8880:187:39","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[13605],"body":{"id":15239,"nodeType":"Block","src":"9366:52:39","statements":[{"expression":{"baseExpression":{"id":15235,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"9383:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15237,"indexExpression":{"id":15236,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"9404:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9383:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15234,"id":15238,"nodeType":"Return","src":"9376:35:39"}]},"documentation":{"id":15227,"nodeType":"StructuredDocumentation","src":"9073:202:39","text":"@inheritdoc Budget\n @notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":15240,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"9289:11:39","nodeType":"FunctionDefinition","overrides":{"id":15231,"nodeType":"OverrideSpecifier","overrides":[],"src":"9339:8:39"},"parameters":{"id":15230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15229,"mutability":"mutable","name":"asset_","nameLocation":"9309:6:39","nodeType":"VariableDeclaration","scope":15240,"src":"9301:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15228,"name":"address","nodeType":"ElementaryTypeName","src":"9301:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9300:16:39"},"returnParameters":{"id":15234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15240,"src":"9357:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15232,"name":"uint256","nodeType":"ElementaryTypeName","src":"9357:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9356:9:39"},"scope":15410,"src":"9280:138:39","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[13613],"body":{"id":15251,"nodeType":"Block","src":"9601:25:39","statements":[{"expression":{"hexValue":"30","id":15249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9618:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":15248,"id":15250,"nodeType":"Return","src":"9611:8:39"}]},"documentation":{"id":15241,"nodeType":"StructuredDocumentation","src":"9424:93:39","text":"@inheritdoc Budget\n @dev This is a no-op as there is no local balance to reconcile"},"functionSelector":"451cc191","id":15252,"implemented":true,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"9531:9:39","nodeType":"FunctionDefinition","overrides":{"id":15245,"nodeType":"OverrideSpecifier","overrides":[],"src":"9574:8:39"},"parameters":{"id":15244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15252,"src":"9541:14:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15242,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9540:16:39"},"returnParameters":{"id":15248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15252,"src":"9592:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15246,"name":"uint256","nodeType":"ElementaryTypeName","src":"9592:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9591:9:39"},"scope":15410,"src":"9522:104:39","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":15327,"nodeType":"Block","src":"10188:605:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15264,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10281:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10296:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10288:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15265,"name":"address","nodeType":"ElementaryTypeName","src":"10288:7:39","typeDescriptions":{}}},"id":15268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10281:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15276,"nodeType":"IfStatement","src":"10277:66:39","trueBody":{"errorCall":{"arguments":[{"id":15271,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10322:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15272,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10330:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15273,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10335:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15270,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"10307:14:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) pure"}},"id":15274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10307:36:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15275,"nodeType":"RevertStatement","src":"10300:43:39"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15277,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10357:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":15279,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10377:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15278,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15226,"src":"10367:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":15280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10367:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10357:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15291,"nodeType":"IfStatement","src":"10353:118:39","trueBody":{"id":15290,"nodeType":"Block","src":"10386:85:39","statements":[{"errorCall":{"arguments":[{"id":15283,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10425:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":15285,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10443:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15284,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15226,"src":"10433:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":15286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10433:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15287,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10452:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15282,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"10407:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":15288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10407:53:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15289,"nodeType":"RevertStatement","src":"10400:60:39"}]}},{"expression":{"id":15296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15292,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"10481:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15294,"indexExpression":{"id":15293,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10502:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10481:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15295,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10513:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10481:39:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15297,"nodeType":"ExpressionStatement","src":"10481:39:39"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15298,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10582:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10600:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15299,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:39","typeDescriptions":{}}},"id":15302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10582:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15319,"nodeType":"Block","src":"10680:58:39","statements":[{"expression":{"arguments":[{"id":15315,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10714:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15316,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10719:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15312,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10694:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10701:12:39","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"10694:19:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":15317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10694:33:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15318,"nodeType":"ExpressionStatement","src":"10694:33:39"}]},"id":15320,"nodeType":"IfStatement","src":"10578:160:39","trueBody":{"id":15311,"nodeType":"Block","src":"10604:70:39","statements":[{"expression":{"arguments":[{"id":15307,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10650:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15308,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10655:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15304,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"10618:15:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$11372_$","typeString":"type(library SafeTransferLib)"}},"id":15306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10634:15:39","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11089,"src":"10618:31:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":15309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10618:45:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15310,"nodeType":"ExpressionStatement","src":"10618:45:39"}]}},{"eventCall":{"arguments":[{"id":15322,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"10765:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15323,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"10773:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15324,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"10778:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15321,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"10753:11:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":15325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10753:33:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15326,"nodeType":"EmitStatement","src":"10748:38:39"}]},"documentation":{"id":15253,"nodeType":"StructuredDocumentation","src":"9632:448:39","text":"@notice Transfer assets to the recipient\n @param asset_ The address of the asset\n @param to_ The address of the recipient\n @param amount_ The amount of the asset to transfer\n @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert"},"id":15328,"implemented":true,"kind":"function","modifiers":[{"id":15262,"kind":"modifierInvocation","modifierName":{"id":15261,"name":"nonReentrant","nameLocations":["10175:12:39"],"nodeType":"IdentifierPath","referencedDeclaration":11031,"src":"10175:12:39"},"nodeType":"ModifierInvocation","src":"10175:12:39"}],"name":"_transferFungible","nameLocation":"10094:17:39","nodeType":"FunctionDefinition","parameters":{"id":15260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15255,"mutability":"mutable","name":"asset_","nameLocation":"10120:6:39","nodeType":"VariableDeclaration","scope":15328,"src":"10112:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15254,"name":"address","nodeType":"ElementaryTypeName","src":"10112:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15257,"mutability":"mutable","name":"to_","nameLocation":"10136:3:39","nodeType":"VariableDeclaration","scope":15328,"src":"10128:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15256,"name":"address","nodeType":"ElementaryTypeName","src":"10128:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15259,"mutability":"mutable","name":"amount_","nameLocation":"10149:7:39","nodeType":"VariableDeclaration","scope":15328,"src":"10141:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15258,"name":"uint256","nodeType":"ElementaryTypeName","src":"10141:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10111:46:39"},"returnParameters":{"id":15263,"nodeType":"ParameterList","parameters":[],"src":"10188:0:39"},"scope":15410,"src":"10085:708:39","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":15369,"nodeType":"Block","src":"11176:201:39","statements":[{"assignments":[15339],"declarations":[{"constant":false,"id":15339,"mutability":"mutable","name":"balance","nameLocation":"11194:7:39","nodeType":"VariableDeclaration","scope":15369,"src":"11186:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15338,"name":"uint256","nodeType":"ElementaryTypeName","src":"11186:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15359,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15340,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15331,"src":"11204:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11222:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11214:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15341,"name":"address","nodeType":"ElementaryTypeName","src":"11214:7:39","typeDescriptions":{}}},"id":15344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11214:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11204:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":15355,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11276:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11268:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15353,"name":"address","nodeType":"ElementaryTypeName","src":"11268:7:39","typeDescriptions":{}}},"id":15356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11268:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15351,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15331,"src":"11251:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11258:9:39","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"11251:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11251:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11204:78:39","trueExpression":{"expression":{"arguments":[{"id":15348,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11235:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VestingBudget_$15410","typeString":"contract VestingBudget"}],"id":15347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11227:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15346,"name":"address","nodeType":"ElementaryTypeName","src":"11227:7:39","typeDescriptions":{}}},"id":15349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11241:7:39","memberName":"balance","nodeType":"MemberAccess","src":"11227:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11186:96:39"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15361,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15339,"src":"11319:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":15362,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"11329:20:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15364,"indexExpression":{"id":15363,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15331,"src":"11350:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11329:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11319:38:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15366,"name":"timestamp_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15333,"src":"11359:10:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":15360,"name":"_linearVestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15409,"src":"11299:19:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint64_$returns$_t_uint256_$","typeString":"function (uint256,uint64) view returns (uint256)"}},"id":15367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11299:71:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15337,"id":15368,"nodeType":"Return","src":"11292:78:39"}]},"documentation":{"id":15329,"nodeType":"StructuredDocumentation","src":"10799:270:39","text":"@notice Calculate the portion of allocated assets vested at a given timestamp\n @param asset_ The address of the asset\n @param timestamp_ The timestamp used to calculate the vested amount\n @return The amount of assets vested at that point in time"},"id":15370,"implemented":true,"kind":"function","modifiers":[],"name":"_vestedAllocation","nameLocation":"11083:17:39","nodeType":"FunctionDefinition","parameters":{"id":15334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15331,"mutability":"mutable","name":"asset_","nameLocation":"11109:6:39","nodeType":"VariableDeclaration","scope":15370,"src":"11101:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15330,"name":"address","nodeType":"ElementaryTypeName","src":"11101:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15333,"mutability":"mutable","name":"timestamp_","nameLocation":"11124:10:39","nodeType":"VariableDeclaration","scope":15370,"src":"11117:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15332,"name":"uint64","nodeType":"ElementaryTypeName","src":"11117:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"11100:35:39"},"returnParameters":{"id":15337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15370,"src":"11167:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15335,"name":"uint256","nodeType":"ElementaryTypeName","src":"11167:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11166:9:39"},"scope":15410,"src":"11074:303:39","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":15408,"nodeType":"Block","src":"11860:254:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15380,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15375,"src":"11874:9:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15381,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"11886:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15382,"name":"cliff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"11894:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11886:13:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11874:25:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15388,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15375,"src":"11944:9:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15389,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"11957:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15390,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"11965:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11957:16:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11944:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15405,"nodeType":"Block","src":"12028:80:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15396,"name":"totalAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15373,"src":"12049:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15397,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15375,"src":"12068:9:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15398,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"12080:5:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12068:17:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":15400,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12067:19:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12049:37:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15402,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"12089:8:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12049:48:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15379,"id":15404,"nodeType":"Return","src":"12042:55:39"}]},"id":15406,"nodeType":"IfStatement","src":"11940:168:39","trueBody":{"id":15395,"nodeType":"Block","src":"11975:47:39","statements":[{"expression":{"id":15393,"name":"totalAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15373,"src":"11996:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15379,"id":15394,"nodeType":"Return","src":"11989:22:39"}]}},"id":15407,"nodeType":"IfStatement","src":"11870:238:39","trueBody":{"id":15387,"nodeType":"Block","src":"11901:33:39","statements":[{"expression":{"hexValue":"30","id":15385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11922:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":15379,"id":15386,"nodeType":"Return","src":"11915:8:39"}]}}]},"documentation":{"id":15371,"nodeType":"StructuredDocumentation","src":"11383:360:39","text":"@notice Calculate the amount of assets vested at a given timestamp using a linear vesting schedule\n @param totalAllocation The total amount of the asset allocated to the budget (including prior distributions)\n @param timestamp The timestamp used to calculate the vested amount\n @return The amount of assets vested at that point in time"},"id":15409,"implemented":true,"kind":"function","modifiers":[],"name":"_linearVestedAmount","nameLocation":"11757:19:39","nodeType":"FunctionDefinition","parameters":{"id":15376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15373,"mutability":"mutable","name":"totalAllocation","nameLocation":"11785:15:39","nodeType":"VariableDeclaration","scope":15409,"src":"11777:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15372,"name":"uint256","nodeType":"ElementaryTypeName","src":"11777:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15375,"mutability":"mutable","name":"timestamp","nameLocation":"11809:9:39","nodeType":"VariableDeclaration","scope":15409,"src":"11802:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15374,"name":"uint64","nodeType":"ElementaryTypeName","src":"11802:6:39","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"11776:43:39"},"returnParameters":{"id":15379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15409,"src":"11851:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15377,"name":"uint256","nodeType":"ElementaryTypeName","src":"11851:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11850:9:39"},"scope":15410,"src":"11748:366:39","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":15411,"src":"1481:10635:39","usedErrors":[6235,6238,6241,6244,9117,9120,11020,13517,13526,13529,13538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,13501,13510]}],"src":"36:12081:39"},"id":39},"contracts/incentives/AllowListIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/AllowListIncentive.sol","exportedSymbols":{"AllowListIncentive":[15662],"BoostError":[17566],"Incentive":[17260],"SimpleAllowList":[13307]},"id":15663,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15412,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:40"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":15414,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15663,"sourceUnit":17567,"src":"62:59:40","symbolAliases":[{"foreign":{"id":15413,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"70:10:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/SimpleAllowList.sol","file":"contracts/allowlists/SimpleAllowList.sol","id":15416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15663,"sourceUnit":13308,"src":"123:73:40","symbolAliases":[{"foreign":{"id":15415,"name":"SimpleAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13307,"src":"131:15:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":15418,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15663,"sourceUnit":17261,"src":"197:61:40","symbolAliases":[{"foreign":{"id":15417,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"205:9:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15420,"name":"Incentive","nameLocations":["677:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"677:9:40"},"id":15421,"nodeType":"InheritanceSpecifier","src":"677:9:40"}],"canonicalName":"AllowListIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":15419,"nodeType":"StructuredDocumentation","src":"260:386:40","text":"@title SimpleAllowList Incentive\n @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n @dev In order for any claim to be successful:\n - The claimer must not already be on the allow list; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to modify the allow list"},"fullyImplemented":true,"id":15662,"linearizedBaseContracts":[15662,17260,11038,17720,2845,2857,9225,6423],"name":"AllowListIncentive","nameLocation":"655:18:40","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AllowListIncentive.InitPayload","documentation":{"id":15422,"nodeType":"StructuredDocumentation","src":"693:62:40","text":"@notice The payload for initializing an AllowListIncentive"},"id":15428,"members":[{"constant":false,"id":15425,"mutability":"mutable","name":"allowList","nameLocation":"805:9:40","nodeType":"VariableDeclaration","scope":15428,"src":"789:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"},"typeName":{"id":15424,"nodeType":"UserDefinedTypeName","pathNode":{"id":15423,"name":"SimpleAllowList","nameLocations":["789:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":13307,"src":"789:15:40"},"referencedDeclaration":13307,"src":"789:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"visibility":"internal"},{"constant":false,"id":15427,"mutability":"mutable","name":"limit","nameLocation":"832:5:40","nodeType":"VariableDeclaration","scope":15428,"src":"824:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15426,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"767:11:40","nodeType":"StructDefinition","scope":15662,"src":"760:84:40","visibility":"public"},{"constant":false,"documentation":{"id":15429,"nodeType":"StructuredDocumentation","src":"850:40:40","text":"@notice The SimpleAllowList contract"},"functionSelector":"87b9d25c","id":15432,"mutability":"mutable","name":"allowList","nameLocation":"918:9:40","nodeType":"VariableDeclaration","scope":15662,"src":"895:32:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"},"typeName":{"id":15431,"nodeType":"UserDefinedTypeName","pathNode":{"id":15430,"name":"SimpleAllowList","nameLocations":["895:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":13307,"src":"895:15:40"},"referencedDeclaration":13307,"src":"895:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"visibility":"public"},{"constant":false,"documentation":{"id":15433,"nodeType":"StructuredDocumentation","src":"934:75:40","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":15435,"mutability":"mutable","name":"limit","nameLocation":"1029:5:40","nodeType":"VariableDeclaration","scope":15662,"src":"1014:20:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15434,"name":"uint256","nodeType":"ElementaryTypeName","src":"1014:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":15442,"nodeType":"Block","src":"1299:39:40","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15439,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1309:20:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1309:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15441,"nodeType":"ExpressionStatement","src":"1309:22:40"}]},"documentation":{"id":15436,"nodeType":"StructuredDocumentation","src":"1041:239:40","text":"@notice Construct a new AllowListIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":15443,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15437,"nodeType":"ParameterList","parameters":[],"src":"1296:2:40"},"returnParameters":{"id":15438,"nodeType":"ParameterList","parameters":[],"src":"1299:0:40"},"scope":15662,"src":"1285:53:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":15477,"nodeType":"Block","src":"1581:180:40","statements":[{"assignments":[15454],"declarations":[{"constant":false,"id":15454,"mutability":"mutable","name":"init_","nameLocation":"1610:5:40","nodeType":"VariableDeclaration","scope":15477,"src":"1591:24:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload"},"typeName":{"id":15453,"nodeType":"UserDefinedTypeName","pathNode":{"id":15452,"name":"InitPayload","nameLocations":["1591:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":15428,"src":"1591:11:40"},"referencedDeclaration":15428,"src":"1591:11:40","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_storage_ptr","typeString":"struct AllowListIncentive.InitPayload"}},"visibility":"internal"}],"id":15461,"initialValue":{"arguments":[{"id":15457,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15446,"src":"1629:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15458,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15428,"src":"1637:11:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15428_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}}],"id":15459,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1636:13:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15428_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15428_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}],"expression":{"id":15455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1618:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1622:6:40","memberName":"decode","nodeType":"MemberAccess","src":"1618:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1618:32:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1591:59:40"},{"expression":{"arguments":[{"expression":{"id":15463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1677:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1681:6:40","memberName":"sender","nodeType":"MemberAccess","src":"1677:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15462,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1660:16:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:28:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15466,"nodeType":"ExpressionStatement","src":"1660:28:40"},{"expression":{"id":15470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15467,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15432,"src":"1698:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15468,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"1710:5:40","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"id":15469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1716:9:40","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":15425,"src":"1710:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"src":"1698:27:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"id":15471,"nodeType":"ExpressionStatement","src":"1698:27:40"},{"expression":{"id":15475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15472,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15435,"src":"1735:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15473,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"1743:5:40","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15428_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"id":15474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1749:5:40","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":15427,"src":"1743:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1735:19:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15476,"nodeType":"ExpressionStatement","src":"1735:19:40"}]},"documentation":{"id":15444,"nodeType":"StructuredDocumentation","src":"1344:162:40","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The packed initialization data `(SimpleAllowList allowList, uint256 limit)`"},"functionSelector":"439fab91","id":15478,"implemented":true,"kind":"function","modifiers":[{"id":15450,"kind":"modifierInvocation","modifierName":{"id":15449,"name":"initializer","nameLocations":["1569:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1569:11:40"},"nodeType":"ModifierInvocation","src":"1569:11:40"}],"name":"initialize","nameLocation":"1520:10:40","nodeType":"FunctionDefinition","overrides":{"id":15448,"nodeType":"OverrideSpecifier","overrides":[],"src":"1560:8:40"},"parameters":{"id":15447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15446,"mutability":"mutable","name":"data_","nameLocation":"1546:5:40","nodeType":"VariableDeclaration","scope":15478,"src":"1531:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15445,"name":"bytes","nodeType":"ElementaryTypeName","src":"1531:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1530:22:40"},"returnParameters":{"id":15451,"nodeType":"ParameterList","parameters":[],"src":"1581:0:40"},"scope":15662,"src":"1511:250:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":15541,"nodeType":"Block","src":"1975:363:40","statements":[{"assignments":[15491],"declarations":[{"constant":false,"id":15491,"mutability":"mutable","name":"claim_","nameLocation":"2005:6:40","nodeType":"VariableDeclaration","scope":15541,"src":"1985:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15490,"nodeType":"UserDefinedTypeName","pathNode":{"id":15489,"name":"ClaimPayload","nameLocations":["1985:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"1985:12:40"},"referencedDeclaration":17186,"src":"1985:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15498,"initialValue":{"arguments":[{"id":15494,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15481,"src":"2025:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15495,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"2033:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15496,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2032:14:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15492,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2014:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2018:6:40","memberName":"decode","nodeType":"MemberAccess","src":"2014:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1985:62:40"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2061:8:40","subExpression":{"id":15499,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"2061:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":15501,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15435,"src":"2073:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2061:17:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"id":15503,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2082:7:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15506,"indexExpression":{"expression":{"id":15504,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"2090:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2097:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2090:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2082:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2061:43:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15511,"nodeType":"IfStatement","src":"2057:70:40","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15508,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"2113:12:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15510,"nodeType":"RevertStatement","src":"2106:21:40"}},{"expression":{"id":15517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15512,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2137:7:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15515,"indexExpression":{"expression":{"id":15513,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"2145:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2152:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2145:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2137:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2162:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2137:29:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15518,"nodeType":"ExpressionStatement","src":"2137:29:40"},{"assignments":[15523,15526],"declarations":[{"constant":false,"id":15523,"mutability":"mutable","name":"users","nameLocation":"2195:5:40","nodeType":"VariableDeclaration","scope":15541,"src":"2178:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15521,"name":"address","nodeType":"ElementaryTypeName","src":"2178:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15522,"nodeType":"ArrayTypeName","src":"2178:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15526,"mutability":"mutable","name":"allowed","nameLocation":"2216:7:40","nodeType":"VariableDeclaration","scope":15541,"src":"2202:21:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15524,"name":"bool","nodeType":"ElementaryTypeName","src":"2202:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15525,"nodeType":"ArrayTypeName","src":"2202:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":15531,"initialValue":{"arguments":[{"expression":{"id":15528,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"2249:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2256:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2249:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15527,"name":"_makeAllowListPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15661,"src":"2227:21:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (address) pure returns (address[] memory,bool[] memory)"}},"id":15530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bool[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"2177:86:40"},{"expression":{"arguments":[{"id":15535,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15523,"src":"2295:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15536,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15526,"src":"2302:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":15532,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15432,"src":"2274:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"id":15534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2284:10:40","memberName":"setAllowed","nodeType":"MemberAccess","referencedDeclaration":13306,"src":"2274:20:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bool[] memory) external"}},"id":15537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15538,"nodeType":"ExpressionStatement","src":"2274:36:40"},{"expression":{"hexValue":"74727565","id":15539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2327:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15488,"id":15540,"nodeType":"Return","src":"2320:11:40"}]},"documentation":{"id":15479,"nodeType":"StructuredDocumentation","src":"1767:115:40","text":"@inheritdoc Incentive\n @notice Claim a slot on the {SimpleAllowList}\n @param data_ The claim data"},"functionSelector":"c63ff8dd","id":15542,"implemented":true,"kind":"function","modifiers":[{"id":15485,"kind":"modifierInvocation","modifierName":{"id":15484,"name":"onlyOwner","nameLocations":["1950:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"1950:9:40"},"nodeType":"ModifierInvocation","src":"1950:9:40"}],"name":"claim","nameLocation":"1896:5:40","nodeType":"FunctionDefinition","overrides":{"id":15483,"nodeType":"OverrideSpecifier","overrides":[],"src":"1941:8:40"},"parameters":{"id":15482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15481,"mutability":"mutable","name":"data_","nameLocation":"1917:5:40","nodeType":"VariableDeclaration","scope":15542,"src":"1902:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15480,"name":"bytes","nodeType":"ElementaryTypeName","src":"1902:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1901:22:40"},"returnParameters":{"id":15488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15542,"src":"1969:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15486,"name":"bool","nodeType":"ElementaryTypeName","src":"1969:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1968:6:40"},"scope":15662,"src":"1887:451:40","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":15556,"nodeType":"Block","src":"2507:51:40","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15551,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2524:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":15553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2535:14:40","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"2524:25:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:27:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15555,"nodeType":"RevertStatement","src":"2517:34:40"}]},"documentation":{"id":15543,"nodeType":"StructuredDocumentation","src":"2344:87:40","text":"@inheritdoc Incentive\n @dev Not a valid operation for this type of incentive"},"functionSelector":"f1c30ec0","id":15557,"implemented":true,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2445:7:40","nodeType":"FunctionDefinition","overrides":{"id":15547,"nodeType":"OverrideSpecifier","overrides":[],"src":"2483:8:40"},"parameters":{"id":15546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15557,"src":"2453:14:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15544,"name":"bytes","nodeType":"ElementaryTypeName","src":"2453:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2452:16:40"},"returnParameters":{"id":15550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15557,"src":"2501:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15548,"name":"bool","nodeType":"ElementaryTypeName","src":"2501:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2500:6:40"},"scope":15662,"src":"2436:122:40","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":15594,"nodeType":"Block","src":"2683:180:40","statements":[{"assignments":[15568],"declarations":[{"constant":false,"id":15568,"mutability":"mutable","name":"claim_","nameLocation":"2713:6:40","nodeType":"VariableDeclaration","scope":15594,"src":"2693:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15567,"nodeType":"UserDefinedTypeName","pathNode":{"id":15566,"name":"ClaimPayload","nameLocations":["2693:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"2693:12:40"},"referencedDeclaration":17186,"src":"2693:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15575,"initialValue":{"arguments":[{"id":15571,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15560,"src":"2733:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15572,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"2741:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2740:14:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15569,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2722:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2726:6:40","memberName":"decode","nodeType":"MemberAccess","src":"2722:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2693:62:40"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15576,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"2772:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15577,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15435,"src":"2781:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2790:23:40","subExpression":{"baseExpression":{"id":15579,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2791:7:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15582,"indexExpression":{"expression":{"id":15580,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"2799:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2806:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2799:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2791:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2772:41:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2817:39:40","subExpression":{"arguments":[{"expression":{"id":15587,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"2838:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2845:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2838:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"","id":15589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2853:2:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":15585,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15432,"src":"2818:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13307","typeString":"contract SimpleAllowList"}},"id":15586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2828:9:40","memberName":"isAllowed","nodeType":"MemberAccess","referencedDeclaration":13258,"src":"2818:19:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes memory) view external returns (bool)"}},"id":15590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:38:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2772:84:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15565,"id":15593,"nodeType":"Return","src":"2765:91:40"}]},"documentation":{"id":15558,"nodeType":"StructuredDocumentation","src":"2564:25:40","text":"@inheritdoc Incentive"},"functionSelector":"e18e6508","id":15595,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"2603:11:40","nodeType":"FunctionDefinition","overrides":{"id":15562,"nodeType":"OverrideSpecifier","overrides":[],"src":"2659:8:40"},"parameters":{"id":15561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15560,"mutability":"mutable","name":"data_","nameLocation":"2630:5:40","nodeType":"VariableDeclaration","scope":15595,"src":"2615:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15559,"name":"bytes","nodeType":"ElementaryTypeName","src":"2615:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2614:22:40"},"returnParameters":{"id":15565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15595,"src":"2677:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15563,"name":"bool","nodeType":"ElementaryTypeName","src":"2677:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2676:6:40"},"scope":15662,"src":"2594:269:40","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":15609,"nodeType":"Block","src":"3070:36:40","statements":[{"expression":{"arguments":[{"hexValue":"30","id":15606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3097:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3087:9:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":15604,"name":"bytes","nodeType":"ElementaryTypeName","src":"3091:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":15607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15603,"id":15608,"nodeType":"Return","src":"3080:19:40"}]},"documentation":{"id":15596,"nodeType":"StructuredDocumentation","src":"2869:115:40","text":"@inheritdoc Incentive\n @dev No preflight approval is required for this incentive (no tokens are handled)"},"functionSelector":"4e7165a2","id":15610,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2998:9:40","nodeType":"FunctionDefinition","overrides":{"id":15600,"nodeType":"OverrideSpecifier","overrides":[],"src":"3038:8:40"},"parameters":{"id":15599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15610,"src":"3008:14:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15597,"name":"bytes","nodeType":"ElementaryTypeName","src":"3008:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3007:16:40"},"returnParameters":{"id":15603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15610,"src":"3056:12:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15601,"name":"bytes","nodeType":"ElementaryTypeName","src":"3056:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3055:14:40"},"scope":15662,"src":"2989:117:40","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":15660,"nodeType":"Block","src":"3396:193:40","statements":[{"assignments":[15626],"declarations":[{"constant":false,"id":15626,"mutability":"mutable","name":"users","nameLocation":"3423:5:40","nodeType":"VariableDeclaration","scope":15660,"src":"3406:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15624,"name":"address","nodeType":"ElementaryTypeName","src":"3406:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15625,"nodeType":"ArrayTypeName","src":"3406:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":15632,"initialValue":{"arguments":[{"hexValue":"31","id":15630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3445:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":15629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3431:13:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":15627,"name":"address","nodeType":"ElementaryTypeName","src":"3435:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15628,"nodeType":"ArrayTypeName","src":"3435:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":15631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3431:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3406:41:40"},{"assignments":[15637],"declarations":[{"constant":false,"id":15637,"mutability":"mutable","name":"allowed","nameLocation":"3471:7:40","nodeType":"VariableDeclaration","scope":15660,"src":"3457:21:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15635,"name":"bool","nodeType":"ElementaryTypeName","src":"3457:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15636,"nodeType":"ArrayTypeName","src":"3457:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":15643,"initialValue":{"arguments":[{"hexValue":"31","id":15641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3492:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":15640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3481:10:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":15638,"name":"bool","nodeType":"ElementaryTypeName","src":"3485:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15639,"nodeType":"ArrayTypeName","src":"3485:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":15642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3481:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3457:37:40"},{"expression":{"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15644,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15626,"src":"3504:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15646,"indexExpression":{"hexValue":"30","id":15645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3510:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3504:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15647,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15613,"src":"3515:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3504:18:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15649,"nodeType":"ExpressionStatement","src":"3504:18:40"},{"expression":{"id":15654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15650,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15637,"src":"3532:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":15652,"indexExpression":{"hexValue":"30","id":15651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3540:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3532:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3545:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3532:17:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15655,"nodeType":"ExpressionStatement","src":"3532:17:40"},{"expression":{"components":[{"id":15656,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15626,"src":"3567:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15657,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15637,"src":"3574:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"id":15658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3566:16:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bool[] memory)"}},"functionReturnParameters":15621,"id":15659,"nodeType":"Return","src":"3559:23:40"}]},"documentation":{"id":15611,"nodeType":"StructuredDocumentation","src":"3112:175:40","text":"@notice Create the payload for the SimpleAllowList\n @param target_ The target address to add to the allow list\n @return A tuple of users and allowed statuses"},"id":15661,"implemented":true,"kind":"function","modifiers":[],"name":"_makeAllowListPayload","nameLocation":"3301:21:40","nodeType":"FunctionDefinition","parameters":{"id":15614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15613,"mutability":"mutable","name":"target_","nameLocation":"3331:7:40","nodeType":"VariableDeclaration","scope":15661,"src":"3323:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15612,"name":"address","nodeType":"ElementaryTypeName","src":"3323:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3322:17:40"},"returnParameters":{"id":15621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15661,"src":"3363:16:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15615,"name":"address","nodeType":"ElementaryTypeName","src":"3363:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15616,"nodeType":"ArrayTypeName","src":"3363:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15661,"src":"3381:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15618,"name":"bool","nodeType":"ElementaryTypeName","src":"3381:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15619,"nodeType":"ArrayTypeName","src":"3381:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3362:33:40"},"scope":15662,"src":"3292:297:40","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":15663,"src":"646:2945:40","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17544,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:3556:40"},"id":40},"contracts/incentives/CGDAIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/CGDAIncentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"CGDAIncentive":[16103],"Incentive":[17260],"SafeTransferLib":[11372]},"id":16104,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15664,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:41"},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":15666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":11373,"src":"62:66:41","symbolAliases":[{"foreign":{"id":15665,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"70:15:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":15668,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":17567,"src":"130:59:41","symbolAliases":[{"foreign":{"id":15667,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"138:10:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":15670,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":13670,"src":"190:52:41","symbolAliases":[{"foreign":{"id":15669,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"198:6:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":15672,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16104,"sourceUnit":17261,"src":"244:42:41","symbolAliases":[{"foreign":{"id":15671,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"252:9:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15674,"name":"Incentive","nameLocations":["479:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"479:9:41"},"id":15675,"nodeType":"InheritanceSpecifier","src":"479:9:41"}],"canonicalName":"CGDAIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":15673,"nodeType":"StructuredDocumentation","src":"288:165:41","text":"@title Continuous Gradual Dutch Auction Incentive\n @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume."},"fullyImplemented":true,"id":16103,"linearizedBaseContracts":[16103,17260,11038,17720,2845,2857,9225,6423],"name":"CGDAIncentive","nameLocation":"462:13:41","nodeType":"ContractDefinition","nodes":[{"global":false,"id":15678,"libraryName":{"id":15676,"name":"SafeTransferLib","nameLocations":["501:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"501:15:41"},"nodeType":"UsingForDirective","src":"495:34:41","typeName":{"id":15677,"name":"address","nodeType":"ElementaryTypeName","src":"521:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":15679,"nodeType":"StructuredDocumentation","src":"535:55:41","text":"@notice The ERC20-like token used for the incentive"},"functionSelector":"38d52e0f","id":15681,"mutability":"mutable","name":"asset","nameLocation":"610:5:41","nodeType":"VariableDeclaration","scope":16103,"src":"595:20:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15680,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"canonicalName":"CGDAIncentive.InitPayload","documentation":{"id":15682,"nodeType":"StructuredDocumentation","src":"622:448:41","text":"@notice The payload for initializing a CGDAIncentive\n @param asset The address of the ERC20-like token\n @param initialReward The initial reward amount\n @param rewardDecay The amount to subtract from the current reward after each claim\n @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n @param totalBudget The total budget for the incentive"},"id":15693,"members":[{"constant":false,"id":15684,"mutability":"mutable","name":"asset","nameLocation":"1112:5:41","nodeType":"VariableDeclaration","scope":15693,"src":"1104:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15683,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15686,"mutability":"mutable","name":"initialReward","nameLocation":"1135:13:41","nodeType":"VariableDeclaration","scope":15693,"src":"1127:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15685,"name":"uint256","nodeType":"ElementaryTypeName","src":"1127:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15688,"mutability":"mutable","name":"rewardDecay","nameLocation":"1166:11:41","nodeType":"VariableDeclaration","scope":15693,"src":"1158:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15690,"mutability":"mutable","name":"rewardBoost","nameLocation":"1195:11:41","nodeType":"VariableDeclaration","scope":15693,"src":"1187:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15689,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15692,"mutability":"mutable","name":"totalBudget","nameLocation":"1224:11:41","nodeType":"VariableDeclaration","scope":15693,"src":"1216:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15691,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1082:11:41","nodeType":"StructDefinition","scope":16103,"src":"1075:167:41","visibility":"public"},{"canonicalName":"CGDAIncentive.CGDAParameters","documentation":{"id":15694,"nodeType":"StructuredDocumentation","src":"1248:396:41","text":"@notice The configuration parameters for the CGDAIncentive\n @param rewardDecay The amount to subtract from the current reward after each claim\n @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n @param lastClaimTime The timestamp of the last claim\n @param currentReward The current reward amount"},"id":15703,"members":[{"constant":false,"id":15696,"mutability":"mutable","name":"rewardDecay","nameLocation":"1689:11:41","nodeType":"VariableDeclaration","scope":15703,"src":"1681:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1681:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15698,"mutability":"mutable","name":"rewardBoost","nameLocation":"1718:11:41","nodeType":"VariableDeclaration","scope":15703,"src":"1710:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1710:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15700,"mutability":"mutable","name":"lastClaimTime","nameLocation":"1747:13:41","nodeType":"VariableDeclaration","scope":15703,"src":"1739:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15699,"name":"uint256","nodeType":"ElementaryTypeName","src":"1739:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15702,"mutability":"mutable","name":"currentReward","nameLocation":"1778:13:41","nodeType":"VariableDeclaration","scope":15703,"src":"1770:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15701,"name":"uint256","nodeType":"ElementaryTypeName","src":"1770:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CGDAParameters","nameLocation":"1656:14:41","nodeType":"StructDefinition","scope":16103,"src":"1649:149:41","visibility":"public"},{"constant":false,"functionSelector":"75ef18d0","id":15706,"mutability":"mutable","name":"cgdaParams","nameLocation":"1826:10:41","nodeType":"VariableDeclaration","scope":16103,"src":"1804:32:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters"},"typeName":{"id":15705,"nodeType":"UserDefinedTypeName","pathNode":{"id":15704,"name":"CGDAParameters","nameLocations":["1804:14:41"],"nodeType":"IdentifierPath","referencedDeclaration":15703,"src":"1804:14:41"},"referencedDeclaration":15703,"src":"1804:14:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage_ptr","typeString":"struct CGDAIncentive.CGDAParameters"}},"visibility":"public"},{"constant":false,"functionSelector":"c78da39a","id":15708,"mutability":"mutable","name":"totalBudget","nameLocation":"1857:11:41","nodeType":"VariableDeclaration","scope":16103,"src":"1842:26:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15707,"name":"uint256","nodeType":"ElementaryTypeName","src":"1842:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":15715,"nodeType":"Block","src":"2050:39:41","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15712,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"2060:20:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15714,"nodeType":"ExpressionStatement","src":"2060:22:41"}]},"documentation":{"id":15709,"nodeType":"StructuredDocumentation","src":"1875:156:41","text":"@notice Construct a new CGDAIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor."},"id":15716,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15710,"nodeType":"ParameterList","parameters":[],"src":"2047:2:41"},"returnParameters":{"id":15711,"nodeType":"ParameterList","parameters":[],"src":"2050:0:41"},"scope":16103,"src":"2036:53:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":15816,"nodeType":"Block","src":"2259:844:41","statements":[{"assignments":[15727],"declarations":[{"constant":false,"id":15727,"mutability":"mutable","name":"init_","nameLocation":"2288:5:41","nodeType":"VariableDeclaration","scope":15816,"src":"2269:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload"},"typeName":{"id":15726,"nodeType":"UserDefinedTypeName","pathNode":{"id":15725,"name":"InitPayload","nameLocations":["2269:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":15693,"src":"2269:11:41"},"referencedDeclaration":15693,"src":"2269:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_storage_ptr","typeString":"struct CGDAIncentive.InitPayload"}},"visibility":"internal"}],"id":15734,"initialValue":{"arguments":[{"id":15730,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"2307:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15731,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15693,"src":"2315:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"id":15732,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2314:13:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}],"expression":{"id":15728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2296:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2300:6:41","memberName":"decode","nodeType":"MemberAccess","src":"2296:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2269:59:41"},{"assignments":[15736],"declarations":[{"constant":false,"id":15736,"mutability":"mutable","name":"available","nameLocation":"2347:9:41","nodeType":"VariableDeclaration","scope":15816,"src":"2339:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15735,"name":"uint256","nodeType":"ElementaryTypeName","src":"2339:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15745,"initialValue":{"arguments":[{"arguments":[{"id":15742,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2389:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":15741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2381:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15740,"name":"address","nodeType":"ElementaryTypeName","src":"2381:7:41","typeDescriptions":{}}},"id":15743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":15737,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2359:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2365:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"2359:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2371:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"2359:21:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2359:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2339:56:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15746,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15736,"src":"2409:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15747,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2421:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2427:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"2421:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2409:29:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15761,"nodeType":"IfStatement","src":"2405:138:41","trueBody":{"id":15760,"nodeType":"Block","src":"2440:103:41","statements":[{"errorCall":{"arguments":[{"expression":{"id":15753,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2490:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2496:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"2490:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15755,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15736,"src":"2503:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15756,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2514:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2520:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"2514:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15750,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2461:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":15752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2472:17:41","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"2461:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":15758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2461:71:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15759,"nodeType":"RevertStatement","src":"2454:78:41"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15762,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2570:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2576:13:41","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":15686,"src":"2570:19:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2593:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2570:24:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15766,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2598:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2604:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15688,"src":"2598:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2619:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2598:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2570:50:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15771,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2624:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2630:11:41","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":15690,"src":"2624:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2645:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2624:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2570:76:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15776,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2666:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2672:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"2666:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15778,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2686:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2692:13:41","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":15686,"src":"2686:19:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2666:39:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2570:135:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15787,"nodeType":"IfStatement","src":"2553:204:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15782,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2723:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":15784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2734:21:41","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"2723:32:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15786,"nodeType":"RevertStatement","src":"2716:41:41"}},{"expression":{"id":15791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15788,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"2768:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15789,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2776:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2782:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"2776:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2768:19:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15792,"nodeType":"ExpressionStatement","src":"2768:19:41"},{"expression":{"id":15804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15793,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"2797:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":15795,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2852:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2858:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15688,"src":"2852:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15797,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2896:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2902:11:41","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":15690,"src":"2896:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15799,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2942:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2948:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"2942:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15801,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"2986:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2992:13:41","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":15686,"src":"2986:19:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15794,"name":"CGDAParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"2810:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CGDAParameters_$15703_storage_ptr_$","typeString":"type(struct CGDAIncentive.CGDAParameters storage pointer)"}},"id":15803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2839:11:41","2883:11:41","2927:13:41","2971:13:41"],"names":["rewardDecay","rewardBoost","lastClaimTime","currentReward"],"nodeType":"FunctionCall","src":"2810:206:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_memory_ptr","typeString":"struct CGDAIncentive.CGDAParameters memory"}},"src":"2797:219:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15805,"nodeType":"ExpressionStatement","src":"2797:219:41"},{"expression":{"id":15809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15806,"name":"totalBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"3027:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15807,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"3041:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":15808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3047:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"3041:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3027:31:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15810,"nodeType":"ExpressionStatement","src":"3027:31:41"},{"expression":{"arguments":[{"expression":{"id":15812,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3085:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3089:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3085:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15811,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3068:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3068:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15815,"nodeType":"ExpressionStatement","src":"3068:28:41"}]},"documentation":{"id":15717,"nodeType":"StructuredDocumentation","src":"2095:89:41","text":"@notice Initialize the CGDA Incentive\n @param data_ Initialization parameters."},"functionSelector":"439fab91","id":15817,"implemented":true,"kind":"function","modifiers":[{"id":15723,"kind":"modifierInvocation","modifierName":{"id":15722,"name":"initializer","nameLocations":["2247:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2247:11:41"},"nodeType":"ModifierInvocation","src":"2247:11:41"}],"name":"initialize","nameLocation":"2198:10:41","nodeType":"FunctionDefinition","overrides":{"id":15721,"nodeType":"OverrideSpecifier","overrides":[],"src":"2238:8:41"},"parameters":{"id":15720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15719,"mutability":"mutable","name":"data_","nameLocation":"2224:5:41","nodeType":"VariableDeclaration","scope":15817,"src":"2209:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15718,"name":"bytes","nodeType":"ElementaryTypeName","src":"2209:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2208:22:41"},"returnParameters":{"id":15724,"nodeType":"ParameterList","parameters":[],"src":"2259:0:41"},"scope":16103,"src":"2189:914:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":15900,"nodeType":"Block","src":"3263:664:41","statements":[{"assignments":[15830],"declarations":[{"constant":false,"id":15830,"mutability":"mutable","name":"claim_","nameLocation":"3293:6:41","nodeType":"VariableDeclaration","scope":15900,"src":"3273:26:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15829,"nodeType":"UserDefinedTypeName","pathNode":{"id":15828,"name":"ClaimPayload","nameLocations":["3273:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3273:12:41"},"referencedDeclaration":17186,"src":"3273:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15837,"initialValue":{"arguments":[{"id":15833,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15820,"src":"3313:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15834,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3321:12:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15835,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3320:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3302:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3306:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3302:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3302:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3273:62:41"},{"condition":{"id":15842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3349:28:41","subExpression":{"arguments":[{"expression":{"id":15839,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3363:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3370:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3363:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15838,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16102,"src":"3350:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":15841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3350:27:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15846,"nodeType":"IfStatement","src":"3345:55:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15843,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"3386:12:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15845,"nodeType":"RevertStatement","src":"3379:21:41"}},{"expression":{"id":15848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3410:8:41","subExpression":{"id":15847,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"3410:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15849,"nodeType":"ExpressionStatement","src":"3410:8:41"},{"assignments":[15851],"declarations":[{"constant":false,"id":15851,"mutability":"mutable","name":"reward","nameLocation":"3498:6:41","nodeType":"VariableDeclaration","scope":15900,"src":"3490:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15850,"name":"uint256","nodeType":"ElementaryTypeName","src":"3490:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15854,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15852,"name":"currentReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"3507:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3507:15:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3490:32:41"},{"expression":{"id":15860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15855,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3532:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3543:13:41","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":15700,"src":"3532:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15858,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3559:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3565:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"3559:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3532:42:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15861,"nodeType":"ExpressionStatement","src":"3532:42:41"},{"expression":{"id":15876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15862,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3584:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3595:13:41","memberName":"currentReward","nodeType":"MemberAccess","referencedDeclaration":15702,"src":"3584:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15865,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3623:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":15866,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3632:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3643:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15696,"src":"3632:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3623:31:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":15873,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3691:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3702:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15696,"src":"3691:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3623:90:41","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15869,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3657:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15870,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3666:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":15871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3677:11:41","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":15696,"src":"3666:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3657:31:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3584:129:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15877,"nodeType":"ExpressionStatement","src":"3584:129:41"},{"expression":{"arguments":[{"expression":{"id":15881,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3791:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3798:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3791:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15883,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3806:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15878,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"3772:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3778:12:41","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"3772:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":15884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3772:41:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15885,"nodeType":"ExpressionStatement","src":"3772:41:41"},{"eventCall":{"arguments":[{"expression":{"id":15887,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3837:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3844:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3837:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":15891,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"3869:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15892,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"3876:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3883:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3876:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15894,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15851,"src":"3891:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15889,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3852:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3856:12:41","memberName":"encodePacked","nodeType":"MemberAccess","src":"3852:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3852:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15886,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"3829:7:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":15896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:70:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15897,"nodeType":"EmitStatement","src":"3824:75:41"},{"expression":{"hexValue":"74727565","id":15898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3916:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15827,"id":15899,"nodeType":"Return","src":"3909:11:41"}]},"documentation":{"id":15818,"nodeType":"StructuredDocumentation","src":"3109:61:41","text":"@inheritdoc Incentive\n @notice Claim the incentive"},"functionSelector":"c63ff8dd","id":15901,"implemented":true,"kind":"function","modifiers":[{"id":15824,"kind":"modifierInvocation","modifierName":{"id":15823,"name":"onlyOwner","nameLocations":["3238:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"3238:9:41"},"nodeType":"ModifierInvocation","src":"3238:9:41"}],"name":"claim","nameLocation":"3184:5:41","nodeType":"FunctionDefinition","overrides":{"id":15822,"nodeType":"OverrideSpecifier","overrides":[],"src":"3229:8:41"},"parameters":{"id":15821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15820,"mutability":"mutable","name":"data_","nameLocation":"3205:5:41","nodeType":"VariableDeclaration","scope":15901,"src":"3190:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15819,"name":"bytes","nodeType":"ElementaryTypeName","src":"3190:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3189:22:41"},"returnParameters":{"id":15827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15901,"src":"3257:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15825,"name":"bool","nodeType":"ElementaryTypeName","src":"3257:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3256:6:41"},"scope":16103,"src":"3175:752:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":15955,"nodeType":"Block","src":"4053:363:41","statements":[{"assignments":[15914],"declarations":[{"constant":false,"id":15914,"mutability":"mutable","name":"claim_","nameLocation":"4083:6:41","nodeType":"VariableDeclaration","scope":15955,"src":"4063:26:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15913,"nodeType":"UserDefinedTypeName","pathNode":{"id":15912,"name":"ClaimPayload","nameLocations":["4063:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4063:12:41"},"referencedDeclaration":17186,"src":"4063:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15921,"initialValue":{"arguments":[{"id":15917,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"4103:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15918,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4111:12:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15919,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4110:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15915,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4092:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4096:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4092:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4092:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4063:62:41"},{"assignments":[15923],"declarations":[{"constant":false,"id":15923,"mutability":"mutable","name":"amount","nameLocation":"4144:6:41","nodeType":"VariableDeclaration","scope":15955,"src":"4136:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15922,"name":"uint256","nodeType":"ElementaryTypeName","src":"4136:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15932,"initialValue":{"arguments":[{"expression":{"id":15926,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4165:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4172:4:41","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4165:11:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":15929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4179:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":15928,"name":"uint256","nodeType":"ElementaryTypeName","src":"4179:7:41","typeDescriptions":{}}}],"id":15930,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4178:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":15924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4154:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4158:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4154:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4135:53:41"},{"expression":{"arguments":[{"expression":{"id":15936,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4280:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4287:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4280:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15923,"src":"4295:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15933,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"4261:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4267:12:41","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"4261:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":15939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:41:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15940,"nodeType":"ExpressionStatement","src":"4261:41:41"},{"eventCall":{"arguments":[{"expression":{"id":15942,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4325:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4332:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4325:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":15946,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"4357:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15947,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"4364:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4371:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4364:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15949,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15923,"src":"4379:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15944,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4340:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4344:12:41","memberName":"encodePacked","nodeType":"MemberAccess","src":"4340:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15941,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"4317:7:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":15951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:70:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15952,"nodeType":"EmitStatement","src":"4312:75:41"},{"expression":{"hexValue":"74727565","id":15953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4405:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15911,"id":15954,"nodeType":"Return","src":"4398:11:41"}]},"documentation":{"id":15902,"nodeType":"StructuredDocumentation","src":"3933:25:41","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":15956,"implemented":true,"kind":"function","modifiers":[{"id":15908,"kind":"modifierInvocation","modifierName":{"id":15907,"name":"onlyOwner","nameLocations":["4028:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4028:9:41"},"nodeType":"ModifierInvocation","src":"4028:9:41"}],"name":"reclaim","nameLocation":"3972:7:41","nodeType":"FunctionDefinition","overrides":{"id":15906,"nodeType":"OverrideSpecifier","overrides":[],"src":"4019:8:41"},"parameters":{"id":15905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15904,"mutability":"mutable","name":"data_","nameLocation":"3995:5:41","nodeType":"VariableDeclaration","scope":15956,"src":"3980:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15903,"name":"bytes","nodeType":"ElementaryTypeName","src":"3980:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3979:22:41"},"returnParameters":{"id":15911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15956,"src":"4047:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15909,"name":"bool","nodeType":"ElementaryTypeName","src":"4047:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4046:6:41"},"scope":16103,"src":"3963:453:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":15980,"nodeType":"Block","src":"4541:123:41","statements":[{"assignments":[15967],"declarations":[{"constant":false,"id":15967,"mutability":"mutable","name":"claim_","nameLocation":"4571:6:41","nodeType":"VariableDeclaration","scope":15980,"src":"4551:26:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15966,"nodeType":"UserDefinedTypeName","pathNode":{"id":15965,"name":"ClaimPayload","nameLocations":["4551:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4551:12:41"},"referencedDeclaration":17186,"src":"4551:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15974,"initialValue":{"arguments":[{"id":15970,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"4591:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15971,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4599:12:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4598:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15968,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4580:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4584:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4580:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4580:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4551:62:41"},{"expression":{"arguments":[{"expression":{"id":15976,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15967,"src":"4643:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4650:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4643:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15975,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16102,"src":"4630:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":15978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:27:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15964,"id":15979,"nodeType":"Return","src":"4623:34:41"}]},"documentation":{"id":15957,"nodeType":"StructuredDocumentation","src":"4422:25:41","text":"@inheritdoc Incentive"},"functionSelector":"e18e6508","id":15981,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"4461:11:41","nodeType":"FunctionDefinition","overrides":{"id":15961,"nodeType":"OverrideSpecifier","overrides":[],"src":"4517:8:41"},"parameters":{"id":15960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15959,"mutability":"mutable","name":"data_","nameLocation":"4488:5:41","nodeType":"VariableDeclaration","scope":15981,"src":"4473:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15958,"name":"bytes","nodeType":"ElementaryTypeName","src":"4473:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4472:22:41"},"returnParameters":{"id":15964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15981,"src":"4535:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15962,"name":"bool","nodeType":"ElementaryTypeName","src":"4535:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4534:6:41"},"scope":16103,"src":"4452:212:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":16024,"nodeType":"Block","src":"5141:372:41","statements":[{"assignments":[15992],"declarations":[{"constant":false,"id":15992,"mutability":"mutable","name":"init_","nameLocation":"5170:5:41","nodeType":"VariableDeclaration","scope":16024,"src":"5151:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload"},"typeName":{"id":15991,"nodeType":"UserDefinedTypeName","pathNode":{"id":15990,"name":"InitPayload","nameLocations":["5151:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":15693,"src":"5151:11:41"},"referencedDeclaration":15693,"src":"5151:11:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_storage_ptr","typeString":"struct CGDAIncentive.InitPayload"}},"visibility":"internal"}],"id":15999,"initialValue":{"arguments":[{"id":15995,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15984,"src":"5189:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15996,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15693,"src":"5197:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"id":15997,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5196:13:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15693_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}],"expression":{"id":15993,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5178:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5182:6:41","memberName":"decode","nodeType":"MemberAccess","src":"5178:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5178:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5151:59:41"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":16004,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5297:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5304:9:41","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"5297:16:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":16006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5314:5:41","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5297:22:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},{"expression":{"id":16007,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15992,"src":"5344:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":16008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5350:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15684,"src":"5344:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16011,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5389:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":16010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5381:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16009,"name":"address","nodeType":"ElementaryTypeName","src":"5381:7:41","typeDescriptions":{}}},"id":16012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5381:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"expression":{"id":16017,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15992,"src":"5461:5:41","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15693_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":16018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5467:11:41","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":15692,"src":"5461:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16015,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5429:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5436:15:41","memberName":"FungiblePayload","nodeType":"MemberAccess","referencedDeclaration":13486,"src":"5429:22:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}},"id":16019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5453:6:41"],"names":["amount"],"nodeType":"FunctionCall","src":"5429:51:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}],"expression":{"id":16013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5418:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5422:6:41","memberName":"encode","nodeType":"MemberAccess","src":"5418:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5418:63:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16002,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5252:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5259:8:41","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":13482,"src":"5252:15:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":16021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5286:9:41","5337:5:41","5373:6:41","5412:4:41"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"5252:244:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":16000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5228:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5232:6:41","memberName":"encode","nodeType":"MemberAccess","src":"5228:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5228:278:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15989,"id":16023,"nodeType":"Return","src":"5221:285:41"}]},"documentation":{"id":15982,"nodeType":"StructuredDocumentation","src":"4670:371:41","text":"@inheritdoc Incentive\n @notice Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\n @param data_ The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\n @return The amount of tokens required"},"functionSelector":"4e7165a2","id":16025,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"5055:9:41","nodeType":"FunctionDefinition","overrides":{"id":15986,"nodeType":"OverrideSpecifier","overrides":[],"src":"5109:8:41"},"parameters":{"id":15985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15984,"mutability":"mutable","name":"data_","nameLocation":"5080:5:41","nodeType":"VariableDeclaration","scope":16025,"src":"5065:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15983,"name":"bytes","nodeType":"ElementaryTypeName","src":"5065:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5064:22:41"},"returnParameters":{"id":15989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16025,"src":"5127:12:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15987,"name":"bytes","nodeType":"ElementaryTypeName","src":"5127:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5126:14:41"},"scope":16103,"src":"5046:467:41","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":16069,"nodeType":"Block","src":"6146:514:41","statements":[{"assignments":[16032],"declarations":[{"constant":false,"id":16032,"mutability":"mutable","name":"timeSinceLastClaim","nameLocation":"6164:18:41","nodeType":"VariableDeclaration","scope":16069,"src":"6156:26:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16031,"name":"uint256","nodeType":"ElementaryTypeName","src":"6156:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16038,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16033,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6185:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6191:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"6185:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16035,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"6203:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":16036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6214:13:41","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":15700,"src":"6203:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6185:42:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6156:71:41"},{"assignments":[16040],"declarations":[{"constant":false,"id":16040,"mutability":"mutable","name":"available","nameLocation":"6245:9:41","nodeType":"VariableDeclaration","scope":16069,"src":"6237:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16039,"name":"uint256","nodeType":"ElementaryTypeName","src":"6237:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16048,"initialValue":{"arguments":[{"arguments":[{"id":16045,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6281:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":16044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6273:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16043,"name":"address","nodeType":"ElementaryTypeName","src":"6273:7:41","typeDescriptions":{}}},"id":16046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6273:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16041,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"6257:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6263:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"6257:15:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6257:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6237:50:41"},{"assignments":[16050],"declarations":[{"constant":false,"id":16050,"mutability":"mutable","name":"projectedReward","nameLocation":"6482:15:41","nodeType":"VariableDeclaration","scope":16069,"src":"6474:23:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16049,"name":"uint256","nodeType":"ElementaryTypeName","src":"6474:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16061,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16051,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"6500:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":16052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6511:13:41","memberName":"currentReward","nodeType":"MemberAccess","referencedDeclaration":15702,"src":"6500:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16053,"name":"timeSinceLastClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16032,"src":"6528:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16054,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"6549:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$15703_storage","typeString":"struct CGDAIncentive.CGDAParameters storage ref"}},"id":16055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6560:11:41","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":15698,"src":"6549:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6528:43:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16057,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6527:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33363030","id":16058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6575:4:41","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"6527:52:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6500:79:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6474:105:41"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16062,"name":"projectedReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16050,"src":"6596:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16063,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"6614:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6596:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":16066,"name":"projectedReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16050,"src":"6638:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6596:57:41","trueExpression":{"id":16065,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16040,"src":"6626:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16030,"id":16068,"nodeType":"Return","src":"6589:64:41"}]},"documentation":{"id":16026,"nodeType":"StructuredDocumentation","src":"5519:567:41","text":"@notice Calculates the current reward based on the time since the last claim.\n @return The current reward\n @dev The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.\n @dev For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`"},"functionSelector":"07621eca","id":16070,"implemented":true,"kind":"function","modifiers":[],"name":"currentReward","nameLocation":"6100:13:41","nodeType":"FunctionDefinition","parameters":{"id":16027,"nodeType":"ParameterList","parameters":[],"src":"6113:2:41"},"returnParameters":{"id":16030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16070,"src":"6137:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16028,"name":"uint256","nodeType":"ElementaryTypeName","src":"6137:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6136:9:41"},"scope":16103,"src":"6091:569:41","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16101,"nodeType":"Block","src":"6737:144:41","statements":[{"assignments":[16078],"declarations":[{"constant":false,"id":16078,"mutability":"mutable","name":"reward","nameLocation":"6755:6:41","nodeType":"VariableDeclaration","scope":16101,"src":"6747:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6747:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":16079,"name":"currentReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"6764:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":16080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6764:15:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6747:32:41"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16082,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16078,"src":"6796:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6805:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6796:10:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":16089,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6834:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$16103","typeString":"contract CGDAIncentive"}],"id":16088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6826:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16087,"name":"address","nodeType":"ElementaryTypeName","src":"6826:7:41","typeDescriptions":{}}},"id":16090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16085,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"6810:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6816:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"6810:15:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6810:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16092,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16078,"src":"6844:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6810:40:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6796:54:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":16098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6854:20:41","subExpression":{"baseExpression":{"id":16095,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"6855:7:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16097,"indexExpression":{"id":16096,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16072,"src":"6863:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6855:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6796:78:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16076,"id":16100,"nodeType":"Return","src":"6789:85:41"}]},"id":16102,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"6675:12:41","nodeType":"FunctionDefinition","parameters":{"id":16073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16072,"mutability":"mutable","name":"recipient_","nameLocation":"6696:10:41","nodeType":"VariableDeclaration","scope":16102,"src":"6688:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16071,"name":"address","nodeType":"ElementaryTypeName","src":"6688:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6687:20:41"},"returnParameters":{"id":16076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16102,"src":"6731:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16074,"name":"bool","nodeType":"ElementaryTypeName","src":"6731:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6730:6:41"},"scope":16103,"src":"6666:215:41","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":16104,"src":"453:6430:41","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17528,17538,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:6848:41"},"id":41},"contracts/incentives/ERC1155Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/ERC1155Incentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"ERC1155Incentive":[16601],"IERC1155":[1190],"IERC1155Receiver":[1232],"IERC165":[2857],"Incentive":[17260]},"id":16602,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":16105,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:42"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":16107,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":1233,"src":"62:92:42","symbolAliases":[{"foreign":{"id":16106,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"70:16:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":16109,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":1191,"src":"155:76:42","symbolAliases":[{"foreign":{"id":16108,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"163:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":16111,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":2858,"src":"232:80:42","symbolAliases":[{"foreign":{"id":16110,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"240:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":16113,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":17567,"src":"314:59:42","symbolAliases":[{"foreign":{"id":16112,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"322:10:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":16115,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":13670,"src":"374:52:42","symbolAliases":[{"foreign":{"id":16114,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"382:6:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":16117,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16602,"sourceUnit":17261,"src":"427:61:42","symbolAliases":[{"foreign":{"id":16116,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"435:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16119,"name":"Incentive","nameLocations":["632:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"632:9:42"},"id":16120,"nodeType":"InheritanceSpecifier","src":"632:9:42"},{"baseName":{"id":16121,"name":"IERC1155Receiver","nameLocations":["643:16:42"],"nodeType":"IdentifierPath","referencedDeclaration":1232,"src":"643:16:42"},"id":16122,"nodeType":"InheritanceSpecifier","src":"643:16:42"}],"canonicalName":"ERC1155Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":16118,"nodeType":"StructuredDocumentation","src":"490:113:42","text":"@title ERC1155Incentive\n @notice A simple ERC1155 incentive implementation that allows claiming of tokens"},"fullyImplemented":true,"id":16601,"linearizedBaseContracts":[16601,1232,17260,11038,17720,2845,2857,9225,6423],"name":"ERC1155Incentive","nameLocation":"612:16:42","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC1155Incentive.Strategy","documentation":{"id":16123,"nodeType":"StructuredDocumentation","src":"666:258:42","text":"@notice The strategy for the incentive\n @dev The strategy determines how the incentive is disbursed:\n - POOL: Transfer tokens from the pool to the recipient\n - MINT: Mint tokens to the recipient directly (not yet implemented)"},"id":16126,"members":[{"id":16124,"name":"POOL","nameLocation":"953:4:42","nodeType":"EnumValue","src":"953:4:42"},{"id":16125,"name":"MINT","nameLocation":"967:4:42","nodeType":"EnumValue","src":"967:4:42"}],"name":"Strategy","nameLocation":"934:8:42","nodeType":"EnumDefinition","src":"929:48:42"},{"canonicalName":"ERC1155Incentive.InitPayload","documentation":{"id":16127,"nodeType":"StructuredDocumentation","src":"983:60:42","text":"@notice The payload for initializing an ERC1155Incentive"},"id":16140,"members":[{"constant":false,"id":16130,"mutability":"mutable","name":"asset","nameLocation":"1086:5:42","nodeType":"VariableDeclaration","scope":16140,"src":"1077:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},"typeName":{"id":16129,"nodeType":"UserDefinedTypeName","pathNode":{"id":16128,"name":"IERC1155","nameLocations":["1077:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"1077:8:42"},"referencedDeclaration":1190,"src":"1077:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"visibility":"internal"},{"constant":false,"id":16133,"mutability":"mutable","name":"strategy","nameLocation":"1110:8:42","nodeType":"VariableDeclaration","scope":16140,"src":"1101:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"typeName":{"id":16132,"nodeType":"UserDefinedTypeName","pathNode":{"id":16131,"name":"Strategy","nameLocations":["1101:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":16126,"src":"1101:8:42"},"referencedDeclaration":16126,"src":"1101:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"visibility":"internal"},{"constant":false,"id":16135,"mutability":"mutable","name":"tokenId","nameLocation":"1136:7:42","nodeType":"VariableDeclaration","scope":16140,"src":"1128:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1128:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16137,"mutability":"mutable","name":"limit","nameLocation":"1161:5:42","nodeType":"VariableDeclaration","scope":16140,"src":"1153:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16136,"name":"uint256","nodeType":"ElementaryTypeName","src":"1153:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16139,"mutability":"mutable","name":"extraData","nameLocation":"1182:9:42","nodeType":"VariableDeclaration","scope":16140,"src":"1176:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16138,"name":"bytes","nodeType":"ElementaryTypeName","src":"1176:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1055:11:42","nodeType":"StructDefinition","scope":16601,"src":"1048:150:42","visibility":"public"},{"constant":false,"documentation":{"id":16141,"nodeType":"StructuredDocumentation","src":"1204:57:42","text":"@notice The address of the ERC1155-compliant contract"},"functionSelector":"38d52e0f","id":16144,"mutability":"mutable","name":"asset","nameLocation":"1282:5:42","nodeType":"VariableDeclaration","scope":16601,"src":"1266:21:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},"typeName":{"id":16143,"nodeType":"UserDefinedTypeName","pathNode":{"id":16142,"name":"IERC1155","nameLocations":["1266:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":1190,"src":"1266:8:42"},"referencedDeclaration":1190,"src":"1266:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"visibility":"public"},{"constant":false,"documentation":{"id":16145,"nodeType":"StructuredDocumentation","src":"1294:57:42","text":"@notice The strategy for the incentive (MINT or POOL)"},"functionSelector":"a8c62e76","id":16148,"mutability":"mutable","name":"strategy","nameLocation":"1372:8:42","nodeType":"VariableDeclaration","scope":16601,"src":"1356:24:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"typeName":{"id":16147,"nodeType":"UserDefinedTypeName","pathNode":{"id":16146,"name":"Strategy","nameLocations":["1356:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":16126,"src":"1356:8:42"},"referencedDeclaration":16126,"src":"1356:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"visibility":"public"},{"constant":false,"documentation":{"id":16149,"nodeType":"StructuredDocumentation","src":"1387:75:42","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":16151,"mutability":"mutable","name":"limit","nameLocation":"1482:5:42","nodeType":"VariableDeclaration","scope":16601,"src":"1467:20:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16150,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16152,"nodeType":"StructuredDocumentation","src":"1494:50:42","text":"@notice The ERC1155 token ID for the incentive"},"functionSelector":"17d70f7c","id":16154,"mutability":"mutable","name":"tokenId","nameLocation":"1564:7:42","nodeType":"VariableDeclaration","scope":16601,"src":"1549:22:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16153,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16155,"nodeType":"StructuredDocumentation","src":"1578:59:42","text":"@notice Extra data to be passed to the ERC1155 contract"},"functionSelector":"609d3334","id":16157,"mutability":"mutable","name":"extraData","nameLocation":"1655:9:42","nodeType":"VariableDeclaration","scope":16601,"src":"1642:22:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":16156,"name":"bytes","nodeType":"ElementaryTypeName","src":"1642:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"body":{"id":16164,"nodeType":"Block","src":"1927:39:42","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16161,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1937:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1937:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16163,"nodeType":"ExpressionStatement","src":"1937:22:42"}]},"documentation":{"id":16158,"nodeType":"StructuredDocumentation","src":"1671:237:42","text":"@notice Construct a new ERC1155Incentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":16165,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16159,"nodeType":"ParameterList","parameters":[],"src":"1924:2:42"},"returnParameters":{"id":16160,"nodeType":"ParameterList","parameters":[],"src":"1927:0:42"},"scope":16601,"src":"1913:53:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":16267,"nodeType":"Block","src":"2171:790:42","statements":[{"assignments":[16176],"declarations":[{"constant":false,"id":16176,"mutability":"mutable","name":"init_","nameLocation":"2200:5:42","nodeType":"VariableDeclaration","scope":16267,"src":"2181:24:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload"},"typeName":{"id":16175,"nodeType":"UserDefinedTypeName","pathNode":{"id":16174,"name":"InitPayload","nameLocations":["2181:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":16140,"src":"2181:11:42"},"referencedDeclaration":16140,"src":"2181:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_storage_ptr","typeString":"struct ERC1155Incentive.InitPayload"}},"visibility":"internal"}],"id":16183,"initialValue":{"arguments":[{"id":16179,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16168,"src":"2219:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16180,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"2227:11:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"id":16181,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2226:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}],"expression":{"id":16177,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2208:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2212:6:42","memberName":"decode","nodeType":"MemberAccess","src":"2208:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2181:59:42"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"id":16188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16184,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2323:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2329:8:42","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16133,"src":"2323:14:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16186,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16126,"src":"2341:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16126_$","typeString":"type(enum ERC1155Incentive.Strategy)"}},"id":16187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2350:4:42","memberName":"MINT","nodeType":"MemberAccess","referencedDeclaration":16125,"src":"2341:13:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"src":"2323:31:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16194,"nodeType":"IfStatement","src":"2319:71:42","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16189,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2363:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:14:42","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"2363:25:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2363:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16193,"nodeType":"RevertStatement","src":"2356:34:42"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16195,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2404:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2410:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2404:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2419:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2404:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16204,"nodeType":"IfStatement","src":"2400:63:42","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16199,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2429:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2440:21:42","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"2429:32:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16203,"nodeType":"RevertStatement","src":"2422:41:42"}},{"assignments":[16206],"declarations":[{"constant":false,"id":16206,"mutability":"mutable","name":"available","nameLocation":"2545:9:42","nodeType":"VariableDeclaration","scope":16267,"src":"2537:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16205,"name":"uint256","nodeType":"ElementaryTypeName","src":"2537:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16217,"initialValue":{"arguments":[{"arguments":[{"id":16212,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2587:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2579:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16210,"name":"address","nodeType":"ElementaryTypeName","src":"2579:7:42","typeDescriptions":{}}},"id":16213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16214,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2594:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2600:7:42","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16135,"src":"2594:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":16207,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2557:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2563:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"2557:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2569:9:42","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1128,"src":"2557:21:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":16216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2537:71:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16218,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16206,"src":"2622:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":16219,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2634:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2640:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2634:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2622:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16236,"nodeType":"IfStatement","src":"2618:135:42","trueBody":{"id":16235,"nodeType":"Block","src":"2647:106:42","statements":[{"errorCall":{"arguments":[{"arguments":[{"expression":{"id":16227,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2705:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2711:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"2705:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}],"id":16226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2697:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16225,"name":"address","nodeType":"ElementaryTypeName","src":"2697:7:42","typeDescriptions":{}}},"id":16229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2697:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16230,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16206,"src":"2719:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16231,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2730:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2736:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2730:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16222,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2668:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2679:17:42","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"2668:28:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":16233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2668:74:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16234,"nodeType":"RevertStatement","src":"2661:81:42"}]}},{"expression":{"id":16240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16237,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"2763:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16238,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2771:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2777:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"2771:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"src":"2763:19:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16241,"nodeType":"ExpressionStatement","src":"2763:19:42"},{"expression":{"id":16245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16242,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16148,"src":"2792:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16243,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2803:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2809:8:42","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16133,"src":"2803:14:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"src":"2792:25:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"id":16246,"nodeType":"ExpressionStatement","src":"2792:25:42"},{"expression":{"id":16250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16247,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"2827:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16248,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2837:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2843:7:42","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16135,"src":"2837:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2827:23:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16251,"nodeType":"ExpressionStatement","src":"2827:23:42"},{"expression":{"id":16255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16252,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"2860:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16253,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2868:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2874:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"2868:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2860:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16256,"nodeType":"ExpressionStatement","src":"2860:19:42"},{"expression":{"id":16260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16257,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16157,"src":"2889:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16258,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"2901:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2907:9:42","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":16139,"src":"2901:15:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2889:27:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":16261,"nodeType":"ExpressionStatement","src":"2889:27:42"},{"expression":{"arguments":[{"expression":{"id":16263,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2943:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2947:6:42","memberName":"sender","nodeType":"MemberAccess","src":"2943:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16262,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2926:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2926:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16266,"nodeType":"ExpressionStatement","src":"2926:28:42"}]},"documentation":{"id":16166,"nodeType":"StructuredDocumentation","src":"1972:124:42","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed initialization payload"},"functionSelector":"439fab91","id":16268,"implemented":true,"kind":"function","modifiers":[{"id":16172,"kind":"modifierInvocation","modifierName":{"id":16171,"name":"initializer","nameLocations":["2159:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2159:11:42"},"nodeType":"ModifierInvocation","src":"2159:11:42"}],"name":"initialize","nameLocation":"2110:10:42","nodeType":"FunctionDefinition","overrides":{"id":16170,"nodeType":"OverrideSpecifier","overrides":[],"src":"2150:8:42"},"parameters":{"id":16169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16168,"mutability":"mutable","name":"data_","nameLocation":"2136:5:42","nodeType":"VariableDeclaration","scope":16268,"src":"2121:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16167,"name":"bytes","nodeType":"ElementaryTypeName","src":"2121:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2120:22:42"},"returnParameters":{"id":16173,"nodeType":"ParameterList","parameters":[],"src":"2171:0:42"},"scope":16601,"src":"2101:860:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":16351,"nodeType":"Block","src":"3242:668:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"},"id":16282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16279,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16148,"src":"3332:8:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16280,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16126,"src":"3344:8:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16126_$","typeString":"type(enum ERC1155Incentive.Strategy)"}},"id":16281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3353:4:42","memberName":"POOL","nodeType":"MemberAccess","referencedDeclaration":16124,"src":"3344:13:42","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16126","typeString":"enum ERC1155Incentive.Strategy"}},"src":"3332:25:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16348,"nodeType":"IfStatement","src":"3328:553:42","trueBody":{"id":16347,"nodeType":"Block","src":"3359:522:42","statements":[{"assignments":[16285],"declarations":[{"constant":false,"id":16285,"mutability":"mutable","name":"claim_","nameLocation":"3393:6:42","nodeType":"VariableDeclaration","scope":16347,"src":"3373:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16284,"nodeType":"UserDefinedTypeName","pathNode":{"id":16283,"name":"ClaimPayload","nameLocations":["3373:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3373:12:42"},"referencedDeclaration":17186,"src":"3373:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16292,"initialValue":{"arguments":[{"id":16288,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16271,"src":"3413:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16289,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3421:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16290,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3420:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3402:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3406:6:42","memberName":"decode","nodeType":"MemberAccess","src":"3402:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3402:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3373:62:42"},{"condition":{"id":16297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3453:28:42","subExpression":{"arguments":[{"expression":{"id":16294,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3467:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3474:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3467:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16293,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16554,"src":"3454:12:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3454:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16301,"nodeType":"IfStatement","src":"3449:55:42","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16298,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"3490:12:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:14:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16300,"nodeType":"RevertStatement","src":"3483:21:42"}},{"expression":{"id":16303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3519:8:42","subExpression":{"id":16302,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"3519:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16304,"nodeType":"ExpressionStatement","src":"3519:8:42"},{"expression":{"id":16310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16305,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"3541:7:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16308,"indexExpression":{"expression":{"id":16306,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3549:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3556:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3549:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3541:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3566:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3541:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16311,"nodeType":"ExpressionStatement","src":"3541:29:42"},{"expression":{"arguments":[{"arguments":[{"id":16317,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3683:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3675:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16315,"name":"address","nodeType":"ElementaryTypeName","src":"3675:7:42","typeDescriptions":{}}},"id":16318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3675:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16319,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3690:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3697:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3690:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16321,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"3705:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":16322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3714:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"expression":{"id":16323,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3717:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3724:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"3717:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16312,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"3652:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3658:16:42","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"3652:22:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":16325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:77:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16326,"nodeType":"ExpressionStatement","src":"3652:77:42"},{"eventCall":{"arguments":[{"expression":{"id":16328,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3756:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3763:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3756:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16332,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"3788:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},{"expression":{"id":16333,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3795:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3795:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16335,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"3810:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":16338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3827:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":16337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3819:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16336,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:42","typeDescriptions":{}}},"id":16339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3819:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16340,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16285,"src":"3831:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3838:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"3831:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3771:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3775:12:42","memberName":"encodePacked","nodeType":"MemberAccess","src":"3771:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:72:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16327,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"3748:7:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3748:96:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16344,"nodeType":"EmitStatement","src":"3743:101:42"},{"expression":{"hexValue":"74727565","id":16345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3866:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16278,"id":16346,"nodeType":"Return","src":"3859:11:42"}]}},{"expression":{"hexValue":"66616c7365","id":16349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3898:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16278,"id":16350,"nodeType":"Return","src":"3891:12:42"}]},"documentation":{"id":16269,"nodeType":"StructuredDocumentation","src":"2967:190:42","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":16352,"implemented":true,"kind":"function","modifiers":[{"id":16275,"kind":"modifierInvocation","modifierName":{"id":16274,"name":"onlyOwner","nameLocations":["3217:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"3217:9:42"},"nodeType":"ModifierInvocation","src":"3217:9:42"}],"name":"claim","nameLocation":"3171:5:42","nodeType":"FunctionDefinition","overrides":{"id":16273,"nodeType":"OverrideSpecifier","overrides":[],"src":"3208:8:42"},"parameters":{"id":16272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16271,"mutability":"mutable","name":"data_","nameLocation":"3192:5:42","nodeType":"VariableDeclaration","scope":16352,"src":"3177:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16270,"name":"bytes","nodeType":"ElementaryTypeName","src":"3177:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3176:22:42"},"returnParameters":{"id":16278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16352,"src":"3236:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16276,"name":"bool","nodeType":"ElementaryTypeName","src":"3236:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3235:6:42"},"scope":16601,"src":"3162:748:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":16435,"nodeType":"Block","src":"4028:679:42","statements":[{"assignments":[16365],"declarations":[{"constant":false,"id":16365,"mutability":"mutable","name":"claim_","nameLocation":"4058:6:42","nodeType":"VariableDeclaration","scope":16435,"src":"4038:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16364,"nodeType":"UserDefinedTypeName","pathNode":{"id":16363,"name":"ClaimPayload","nameLocations":["4038:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4038:12:42"},"referencedDeclaration":17186,"src":"4038:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16372,"initialValue":{"arguments":[{"id":16368,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16355,"src":"4078:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16369,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4086:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16370,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4085:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4067:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4071:6:42","memberName":"decode","nodeType":"MemberAccess","src":"4067:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4067:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4038:62:42"},{"assignments":[16374],"declarations":[{"constant":false,"id":16374,"mutability":"mutable","name":"amount","nameLocation":"4119:6:42","nodeType":"VariableDeclaration","scope":16435,"src":"4111:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16373,"name":"uint256","nodeType":"ElementaryTypeName","src":"4111:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16383,"initialValue":{"arguments":[{"expression":{"id":16377,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4140:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4147:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4140:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4154:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16379,"name":"uint256","nodeType":"ElementaryTypeName","src":"4154:7:42","typeDescriptions":{}}}],"id":16381,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4153:9:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":16375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4129:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4133:6:42","memberName":"decode","nodeType":"MemberAccess","src":"4129:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4110:53:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16384,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4254:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16385,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"4263:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4254:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16398,"nodeType":"IfStatement","src":"4250:81:42","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16390,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4300:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4304:6:42","memberName":"sender","nodeType":"MemberAccess","src":"4300:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16394,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4323:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16392,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4312:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4316:6:42","memberName":"encode","nodeType":"MemberAccess","src":"4312:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4312:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16387,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"4277:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:11:42","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"4277:22:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":16396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4277:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16397,"nodeType":"RevertStatement","src":"4270:61:42"}},{"expression":{"id":16401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16399,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"4341:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16400,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4350:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4341:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16402,"nodeType":"ExpressionStatement","src":"4341:15:42"},{"expression":{"arguments":[{"arguments":[{"id":16408,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4520:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4512:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16406,"name":"address","nodeType":"ElementaryTypeName","src":"4512:7:42","typeDescriptions":{}}},"id":16409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4512:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16410,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4527:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4534:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4527:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16412,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"4542:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16413,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4551:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16414,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4559:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4566:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4559:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16403,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"4489:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},"id":16405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4495:16:42","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"4489:22:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":16416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4489:82:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16417,"nodeType":"ExpressionStatement","src":"4489:82:42"},{"eventCall":{"arguments":[{"expression":{"id":16419,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4594:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4601:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4594:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16423,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"4626:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}},{"expression":{"id":16424,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4633:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4640:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4633:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16426,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"4648:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16427,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"4657:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16428,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"4665:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4672:4:42","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4665:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4609:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4613:12:42","memberName":"encodePacked","nodeType":"MemberAccess","src":"4609:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4609:68:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16418,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"4586:7:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:92:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16432,"nodeType":"EmitStatement","src":"4581:97:42"},{"expression":{"hexValue":"74727565","id":16433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4696:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16362,"id":16434,"nodeType":"Return","src":"4689:11:42"}]},"documentation":{"id":16353,"nodeType":"StructuredDocumentation","src":"3916:25:42","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":16436,"implemented":true,"kind":"function","modifiers":[{"id":16359,"kind":"modifierInvocation","modifierName":{"id":16358,"name":"onlyOwner","nameLocations":["4003:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4003:9:42"},"nodeType":"ModifierInvocation","src":"4003:9:42"}],"name":"reclaim","nameLocation":"3955:7:42","nodeType":"FunctionDefinition","overrides":{"id":16357,"nodeType":"OverrideSpecifier","overrides":[],"src":"3994:8:42"},"parameters":{"id":16356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16355,"mutability":"mutable","name":"data_","nameLocation":"3978:5:42","nodeType":"VariableDeclaration","scope":16436,"src":"3963:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16354,"name":"bytes","nodeType":"ElementaryTypeName","src":"3963:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3962:22:42"},"returnParameters":{"id":16362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16436,"src":"4022:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16360,"name":"bool","nodeType":"ElementaryTypeName","src":"4022:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4021:6:42"},"scope":16601,"src":"3946:761:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":16486,"nodeType":"Block","src":"5058:460:42","statements":[{"assignments":[16447],"declarations":[{"constant":false,"id":16447,"mutability":"mutable","name":"init_","nameLocation":"5087:5:42","nodeType":"VariableDeclaration","scope":16486,"src":"5068:24:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload"},"typeName":{"id":16446,"nodeType":"UserDefinedTypeName","pathNode":{"id":16445,"name":"InitPayload","nameLocations":["5068:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":16140,"src":"5068:11:42"},"referencedDeclaration":16140,"src":"5068:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_storage_ptr","typeString":"struct ERC1155Incentive.InitPayload"}},"visibility":"internal"}],"id":16454,"initialValue":{"arguments":[{"id":16450,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16439,"src":"5106:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16451,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"5114:11:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"id":16452,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5113:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16140_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}],"expression":{"id":16448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5095:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5099:6:42","memberName":"decode","nodeType":"MemberAccess","src":"5095:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5095:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5068:59:42"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":16459,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5213:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5220:9:42","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"5213:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":16461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5230:7:42","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"5213:24:42","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},{"arguments":[{"expression":{"id":16464,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5270:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5276:5:42","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16130,"src":"5270:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1190","typeString":"contract IERC1155"}],"id":16463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5262:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16462,"name":"address","nodeType":"ElementaryTypeName","src":"5262:7:42","typeDescriptions":{}}},"id":16466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5262:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16469,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5316:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}],"id":16468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5308:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16467,"name":"address","nodeType":"ElementaryTypeName","src":"5308:7:42","typeDescriptions":{}}},"id":16470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5308:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"expression":{"id":16475,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5409:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5415:7:42","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16135,"src":"5409:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16477,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5432:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5438:5:42","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16137,"src":"5432:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16479,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"5451:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16140_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":16480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5457:9:42","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":16139,"src":"5451:15:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16473,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5377:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5384:14:42","memberName":"ERC1155Payload","nodeType":"MemberAccess","referencedDeclaration":13494,"src":"5377:21:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$13494_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}},"id":16481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5400:7:42","5424:6:42","5445:4:42"],"names":["tokenId","amount","data"],"nodeType":"FunctionCall","src":"5377:91:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ERC1155Payload_$13494_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}],"expression":{"id":16471,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5345:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5349:6:42","memberName":"encode","nodeType":"MemberAccess","src":"5345:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:141:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16457,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5168:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":16458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5175:8:42","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":13482,"src":"5168:15:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":16483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5202:9:42","5255:5:42","5300:6:42","5339:4:42"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"5168:333:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":16455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5144:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5148:6:42","memberName":"encode","nodeType":"MemberAccess","src":"5144:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5144:367:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":16444,"id":16485,"nodeType":"Return","src":"5137:374:42"}]},"documentation":{"id":16437,"nodeType":"StructuredDocumentation","src":"4713:242:42","text":"@inheritdoc Incentive\n @notice Get the required allowance for the incentive\n @param data_ The initialization payload for the incentive\n @return budgetData The data payload to be passed to the Budget for interpretation"},"functionSelector":"4e7165a2","id":16487,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"4969:9:42","nodeType":"FunctionDefinition","overrides":{"id":16441,"nodeType":"OverrideSpecifier","overrides":[],"src":"5015:8:42"},"parameters":{"id":16440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16439,"mutability":"mutable","name":"data_","nameLocation":"4994:5:42","nodeType":"VariableDeclaration","scope":16487,"src":"4979:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16438,"name":"bytes","nodeType":"ElementaryTypeName","src":"4979:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4978:22:42"},"returnParameters":{"id":16444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16443,"mutability":"mutable","name":"budgetData","nameLocation":"5046:10:42","nodeType":"VariableDeclaration","scope":16487,"src":"5033:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16442,"name":"bytes","nodeType":"ElementaryTypeName","src":"5033:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5032:25:42"},"scope":16601,"src":"4960:558:42","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":16511,"nodeType":"Block","src":"5978:123:42","statements":[{"assignments":[16498],"declarations":[{"constant":false,"id":16498,"mutability":"mutable","name":"claim_","nameLocation":"6008:6:42","nodeType":"VariableDeclaration","scope":16511,"src":"5988:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16497,"nodeType":"UserDefinedTypeName","pathNode":{"id":16496,"name":"ClaimPayload","nameLocations":["5988:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"5988:12:42"},"referencedDeclaration":17186,"src":"5988:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16505,"initialValue":{"arguments":[{"id":16501,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16490,"src":"6028:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16502,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"6036:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16503,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6035:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16499,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6017:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6021:6:42","memberName":"decode","nodeType":"MemberAccess","src":"6017:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6017:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5988:62:42"},{"expression":{"arguments":[{"expression":{"id":16507,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16498,"src":"6080:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6087:6:42","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"6080:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16506,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16554,"src":"6067:12:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6067:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16495,"id":16510,"nodeType":"Return","src":"6060:34:42"}]},"documentation":{"id":16488,"nodeType":"StructuredDocumentation","src":"5524:370:42","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":16512,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"5908:11:42","nodeType":"FunctionDefinition","overrides":{"id":16492,"nodeType":"OverrideSpecifier","overrides":[],"src":"5954:8:42"},"parameters":{"id":16491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16490,"mutability":"mutable","name":"data_","nameLocation":"5935:5:42","nodeType":"VariableDeclaration","scope":16512,"src":"5920:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16489,"name":"bytes","nodeType":"ElementaryTypeName","src":"5920:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5919:22:42"},"returnParameters":{"id":16495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16512,"src":"5972:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16493,"name":"bool","nodeType":"ElementaryTypeName","src":"5972:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5971:6:42"},"scope":16601,"src":"5899:202:42","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2856,17259],"body":{"id":16535,"nodeType":"Block","src":"6248:113:42","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16523,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"6265:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":16525,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"6285:16:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1232_$","typeString":"type(contract IERC1155Receiver)"}],"id":16524,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6280:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6280:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$1232","typeString":"type(contract IERC1155Receiver)"}},"id":16527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6303:11:42","memberName":"interfaceId","nodeType":"MemberAccess","src":"6280:34:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6265:49:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":16531,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16515,"src":"6342:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16529,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6318:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC1155Incentive_$16601_$","typeString":"type(contract super ERC1155Incentive)"}},"id":16530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6324:17:42","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17259,"src":"6318:23:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6318:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6265:89:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16522,"id":16534,"nodeType":"Return","src":"6258:96:42"}]},"documentation":{"id":16513,"nodeType":"StructuredDocumentation","src":"6107:25:42","text":"@inheritdoc Incentive"},"functionSelector":"01ffc9a7","id":16536,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6146:17:42","nodeType":"FunctionDefinition","overrides":{"id":16519,"nodeType":"OverrideSpecifier","overrides":[{"id":16517,"name":"IERC165","nameLocations":["6213:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":2857,"src":"6213:7:42"},{"id":16518,"name":"Incentive","nameLocations":["6222:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"6222:9:42"}],"src":"6204:28:42"},"parameters":{"id":16516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16515,"mutability":"mutable","name":"interfaceId","nameLocation":"6171:11:42","nodeType":"VariableDeclaration","scope":16536,"src":"6164:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16514,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6164:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6163:20:42"},"returnParameters":{"id":16522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16536,"src":"6242:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16520,"name":"bool","nodeType":"ElementaryTypeName","src":"6242:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6241:6:42"},"scope":16601,"src":"6137:224:42","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":16553,"nodeType":"Block","src":"6638:62:42","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6655:20:42","subExpression":{"baseExpression":{"id":16544,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"6656:7:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16546,"indexExpression":{"id":16545,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"6664:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6656:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16548,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"6679:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16549,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16151,"src":"6688:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6679:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6655:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16543,"id":16552,"nodeType":"Return","src":"6648:45:42"}]},"documentation":{"id":16537,"nodeType":"StructuredDocumentation","src":"6367:195:42","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":16554,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"6576:12:42","nodeType":"FunctionDefinition","parameters":{"id":16540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16539,"mutability":"mutable","name":"recipient_","nameLocation":"6597:10:42","nodeType":"VariableDeclaration","scope":16554,"src":"6589:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16538,"name":"address","nodeType":"ElementaryTypeName","src":"6589:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6588:20:42"},"returnParameters":{"id":16543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16554,"src":"6632:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16541,"name":"bool","nodeType":"ElementaryTypeName","src":"6632:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6631:6:42"},"scope":16601,"src":"6567:133:42","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[1213],"body":{"id":16575,"nodeType":"Block","src":"6980:55:42","statements":[{"expression":{"expression":{"expression":{"id":16571,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6997:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}},"id":16572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7002:17:42","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":16576,"src":"6997:22:42","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) pure external returns (bytes4)"}},"id":16573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7020:8:42","memberName":"selector","nodeType":"MemberAccess","src":"6997:31:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16570,"id":16574,"nodeType":"Return","src":"6990:38:42"}]},"documentation":{"id":16555,"nodeType":"StructuredDocumentation","src":"6706:114:42","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not check the token ID and will accept all tokens"},"functionSelector":"f23a6e61","id":16576,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"6834:17:42","nodeType":"FunctionDefinition","overrides":{"id":16567,"nodeType":"OverrideSpecifier","overrides":[],"src":"6942:8:42"},"parameters":{"id":16566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6852:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16556,"name":"address","nodeType":"ElementaryTypeName","src":"6852:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6861:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16558,"name":"address","nodeType":"ElementaryTypeName","src":"6861:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6870:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16560,"name":"uint256","nodeType":"ElementaryTypeName","src":"6870:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6879:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16562,"name":"uint256","nodeType":"ElementaryTypeName","src":"6879:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6888:14:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16564,"name":"bytes","nodeType":"ElementaryTypeName","src":"6888:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6851:52:42"},"returnParameters":{"id":16570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"6968:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16568,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6968:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6967:8:42"},"scope":16601,"src":"6825:210:42","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1231],"body":{"id":16599,"nodeType":"Block","src":"7343:60:42","statements":[{"expression":{"expression":{"expression":{"id":16595,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7360:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$16601","typeString":"contract ERC1155Incentive"}},"id":16596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7365:22:42","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":16600,"src":"7360:27:42","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) pure external returns (bytes4)"}},"id":16597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7388:8:42","memberName":"selector","nodeType":"MemberAccess","src":"7360:36:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16594,"id":16598,"nodeType":"Return","src":"7353:43:42"}]},"documentation":{"id":16577,"nodeType":"StructuredDocumentation","src":"7041:115:42","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not check the token ID and will accept all batches"},"functionSelector":"bc197c81","id":16600,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"7170:22:42","nodeType":"FunctionDefinition","overrides":{"id":16591,"nodeType":"OverrideSpecifier","overrides":[],"src":"7305:8:42"},"parameters":{"id":16590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7193:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16578,"name":"address","nodeType":"ElementaryTypeName","src":"7193:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7202:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16580,"name":"address","nodeType":"ElementaryTypeName","src":"7202:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7211:18:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16582,"name":"uint256","nodeType":"ElementaryTypeName","src":"7211:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16583,"nodeType":"ArrayTypeName","src":"7211:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":16587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7231:18:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16585,"name":"uint256","nodeType":"ElementaryTypeName","src":"7231:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16586,"nodeType":"ArrayTypeName","src":"7231:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":16589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7251:14:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16588,"name":"bytes","nodeType":"ElementaryTypeName","src":"7251:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7192:74:42"},"returnParameters":{"id":16594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16600,"src":"7331:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16592,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7331:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"7330:8:42"},"scope":16601,"src":"7161:242:42","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":16602,"src":"603:6802:42","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17519,17528,17538,17544,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:7370:42"},"id":42},"contracts/incentives/ERC20Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/ERC20Incentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"ERC20Incentive":[17152],"Incentive":[17260],"LibPRNG":[10307],"SafeTransferLib":[11372]},"id":17153,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":16603,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:43"},{"absolutePath":"@solady/utils/LibPRNG.sol","file":"@solady/utils/LibPRNG.sol","id":16605,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":10308,"src":"62:50:43","symbolAliases":[{"foreign":{"id":16604,"name":"LibPRNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10307,"src":"70:7:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":16607,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":11373,"src":"113:66:43","symbolAliases":[{"foreign":{"id":16606,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"121:15:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":16609,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":17567,"src":"181:59:43","symbolAliases":[{"foreign":{"id":16608,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"189:10:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":16611,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":13670,"src":"241:52:43","symbolAliases":[{"foreign":{"id":16610,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"249:6:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":16613,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17153,"sourceUnit":17261,"src":"294:42:43","symbolAliases":[{"foreign":{"id":16612,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"302:9:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16615,"name":"Incentive","nameLocations":["475:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"475:9:43"},"id":16616,"nodeType":"InheritanceSpecifier","src":"475:9:43"}],"canonicalName":"ERC20Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":16614,"nodeType":"StructuredDocumentation","src":"338:110:43","text":"@title ERC20 Incentive\n @notice A simple ERC20 incentive implementation that allows claiming of tokens"},"fullyImplemented":true,"id":17152,"linearizedBaseContracts":[17152,17260,11038,17720,2845,2857,9225,6423],"name":"ERC20Incentive","nameLocation":"457:14:43","nodeType":"ContractDefinition","nodes":[{"global":false,"id":16620,"libraryName":{"id":16617,"name":"LibPRNG","nameLocations":["497:7:43"],"nodeType":"IdentifierPath","referencedDeclaration":10307,"src":"497:7:43"},"nodeType":"UsingForDirective","src":"491:31:43","typeName":{"id":16619,"nodeType":"UserDefinedTypeName","pathNode":{"id":16618,"name":"LibPRNG.PRNG","nameLocations":["509:7:43","517:4:43"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"509:12:43"},"referencedDeclaration":10121,"src":"509:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}}},{"global":false,"id":16623,"libraryName":{"id":16621,"name":"SafeTransferLib","nameLocations":["533:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":11372,"src":"533:15:43"},"nodeType":"UsingForDirective","src":"527:34:43","typeName":{"id":16622,"name":"address","nodeType":"ElementaryTypeName","src":"553:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"anonymous":false,"documentation":{"id":16624,"nodeType":"StructuredDocumentation","src":"567:56:43","text":"@notice Emitted when an entry is added to the raffle"},"eventSelector":"f0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f153","id":16628,"name":"Entry","nameLocation":"634:5:43","nodeType":"EventDefinition","parameters":{"id":16627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16626,"indexed":true,"mutability":"mutable","name":"entry","nameLocation":"656:5:43","nodeType":"VariableDeclaration","scope":16628,"src":"640:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16625,"name":"address","nodeType":"ElementaryTypeName","src":"640:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"639:23:43"},"src":"628:35:43"},{"canonicalName":"ERC20Incentive.Strategy","documentation":{"id":16629,"nodeType":"StructuredDocumentation","src":"669:520:43","text":"@notice The strategy for the incentive\n @dev The strategy determines how the incentive is disbursed:\n - POOL: Users claim from a pool of rewards until the limit is reached, with each claim receiving an equal share of the total;\n - MINT: New tokens are minted and distributed to the recipient, with each claim receiving an equal amount of newly issued tokens;\n - RAFFLE: Users claim a slot in a raffle, and a single winner is randomly drawn to receive the entire reward amount;"},"id":16633,"members":[{"id":16630,"name":"POOL","nameLocation":"1218:4:43","nodeType":"EnumValue","src":"1218:4:43"},{"id":16631,"name":"MINT","nameLocation":"1232:4:43","nodeType":"EnumValue","src":"1232:4:43"},{"id":16632,"name":"RAFFLE","nameLocation":"1246:6:43","nodeType":"EnumValue","src":"1246:6:43"}],"name":"Strategy","nameLocation":"1199:8:43","nodeType":"EnumDefinition","src":"1194:64:43"},{"canonicalName":"ERC20Incentive.InitPayload","documentation":{"id":16634,"nodeType":"StructuredDocumentation","src":"1264:54:43","text":"@notice The payload for initializing the incentive"},"id":16644,"members":[{"constant":false,"id":16636,"mutability":"mutable","name":"asset","nameLocation":"1360:5:43","nodeType":"VariableDeclaration","scope":16644,"src":"1352:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16635,"name":"address","nodeType":"ElementaryTypeName","src":"1352:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16639,"mutability":"mutable","name":"strategy","nameLocation":"1384:8:43","nodeType":"VariableDeclaration","scope":16644,"src":"1375:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"typeName":{"id":16638,"nodeType":"UserDefinedTypeName","pathNode":{"id":16637,"name":"Strategy","nameLocations":["1375:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":16633,"src":"1375:8:43"},"referencedDeclaration":16633,"src":"1375:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"visibility":"internal"},{"constant":false,"id":16641,"mutability":"mutable","name":"reward","nameLocation":"1410:6:43","nodeType":"VariableDeclaration","scope":16644,"src":"1402:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1402:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16643,"mutability":"mutable","name":"limit","nameLocation":"1434:5:43","nodeType":"VariableDeclaration","scope":16644,"src":"1426:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16642,"name":"uint256","nodeType":"ElementaryTypeName","src":"1426:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1330:11:43","nodeType":"StructDefinition","scope":17152,"src":"1323:123:43","visibility":"public"},{"constant":false,"documentation":{"id":16645,"nodeType":"StructuredDocumentation","src":"1452:47:43","text":"@notice The address of the ERC20-like token"},"functionSelector":"38d52e0f","id":16647,"mutability":"mutable","name":"asset","nameLocation":"1519:5:43","nodeType":"VariableDeclaration","scope":17152,"src":"1504:20:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16646,"name":"address","nodeType":"ElementaryTypeName","src":"1504:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":16648,"nodeType":"StructuredDocumentation","src":"1531:57:43","text":"@notice The strategy for the incentive (MINT or POOL)"},"functionSelector":"a8c62e76","id":16651,"mutability":"mutable","name":"strategy","nameLocation":"1609:8:43","nodeType":"VariableDeclaration","scope":17152,"src":"1593:24:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"typeName":{"id":16650,"nodeType":"UserDefinedTypeName","pathNode":{"id":16649,"name":"Strategy","nameLocations":["1593:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":16633,"src":"1593:8:43"},"referencedDeclaration":16633,"src":"1593:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"visibility":"public"},{"constant":false,"documentation":{"id":16652,"nodeType":"StructuredDocumentation","src":"1624:51:43","text":"@notice The reward amount issued for each claim"},"functionSelector":"228cb733","id":16654,"mutability":"mutable","name":"reward","nameLocation":"1695:6:43","nodeType":"VariableDeclaration","scope":17152,"src":"1680:21:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16653,"name":"uint256","nodeType":"ElementaryTypeName","src":"1680:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16655,"nodeType":"StructuredDocumentation","src":"1708:62:43","text":"@notice The limit (max claims, or max entries for raffles)"},"functionSelector":"a4d66daf","id":16657,"mutability":"mutable","name":"limit","nameLocation":"1790:5:43","nodeType":"VariableDeclaration","scope":17152,"src":"1775:20:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16656,"name":"uint256","nodeType":"ElementaryTypeName","src":"1775:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16658,"nodeType":"StructuredDocumentation","src":"1802:81:43","text":"@notice The set of addresses that have claimed a slot in the incentive raffle"},"functionSelector":"b30906d4","id":16661,"mutability":"mutable","name":"entries","nameLocation":"1905:7:43","nodeType":"VariableDeclaration","scope":17152,"src":"1888:24:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":16659,"name":"address","nodeType":"ElementaryTypeName","src":"1888:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16660,"nodeType":"ArrayTypeName","src":"1888:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"body":{"id":16668,"nodeType":"Block","src":"2173:39:43","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16665,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"2183:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2183:22:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16667,"nodeType":"ExpressionStatement","src":"2183:22:43"}]},"documentation":{"id":16662,"nodeType":"StructuredDocumentation","src":"1919:235:43","text":"@notice Construct a new ERC20Incentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":16669,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16663,"nodeType":"ParameterList","parameters":[],"src":"2170:2:43"},"returnParameters":{"id":16664,"nodeType":"ParameterList","parameters":[],"src":"2173:0:43"},"scope":17152,"src":"2159:53:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":16780,"nodeType":"Block","src":"2483:866:43","statements":[{"assignments":[16680],"declarations":[{"constant":false,"id":16680,"mutability":"mutable","name":"init_","nameLocation":"2512:5:43","nodeType":"VariableDeclaration","scope":16780,"src":"2493:24:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload"},"typeName":{"id":16679,"nodeType":"UserDefinedTypeName","pathNode":{"id":16678,"name":"InitPayload","nameLocations":["2493:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":16644,"src":"2493:11:43"},"referencedDeclaration":16644,"src":"2493:11:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_storage_ptr","typeString":"struct ERC20Incentive.InitPayload"}},"visibility":"internal"}],"id":16687,"initialValue":{"arguments":[{"id":16683,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16672,"src":"2531:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16684,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16644,"src":"2539:11:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"id":16685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2538:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}],"expression":{"id":16681,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2520:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2524:6:43","memberName":"decode","nodeType":"MemberAccess","src":"2520:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2520:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2493:59:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16688,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2635:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"2635:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16690,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"2653:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2662:4:43","memberName":"MINT","nodeType":"MemberAccess","referencedDeclaration":16631,"src":"2653:13:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"2635:31:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16698,"nodeType":"IfStatement","src":"2631:71:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16693,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2675:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2686:14:43","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"2675:25:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2675:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16697,"nodeType":"RevertStatement","src":"2668:34:43"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16699,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2716:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2722:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"2716:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2732:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2716:17:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16703,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2737:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2743:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"2737:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2752:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2737:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2716:37:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16713,"nodeType":"IfStatement","src":"2712:84:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16708,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2762:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2773:21:43","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"2762:32:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2762:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16712,"nodeType":"RevertStatement","src":"2755:41:43"}},{"assignments":[16715],"declarations":[{"constant":false,"id":16715,"mutability":"mutable","name":"maxTotalReward","nameLocation":"2878:14:43","nodeType":"VariableDeclaration","scope":16780,"src":"2870:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16714,"name":"uint256","nodeType":"ElementaryTypeName","src":"2870:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16729,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16716,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2895:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2901:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"2895:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16718,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"2913:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2922:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"2913:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"2895:33:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":16726,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2960:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2966:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"2960:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2895:77:43","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16721,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2931:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2937:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"2931:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16723,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2946:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2952:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"2946:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2931:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2870:102:43"},{"assignments":[16731],"declarations":[{"constant":false,"id":16731,"mutability":"mutable","name":"available","nameLocation":"2990:9:43","nodeType":"VariableDeclaration","scope":16780,"src":"2982:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16730,"name":"uint256","nodeType":"ElementaryTypeName","src":"2982:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16740,"initialValue":{"arguments":[{"arguments":[{"id":16737,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3032:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}],"id":16736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3024:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16735,"name":"address","nodeType":"ElementaryTypeName","src":"3024:7:43","typeDescriptions":{}}},"id":16738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":16732,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3002:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3008:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"3002:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3014:9:43","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11267,"src":"3002:21:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3002:36:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2982:56:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16741,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16731,"src":"3052:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16742,"name":"maxTotalReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16715,"src":"3064:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3052:26:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16754,"nodeType":"IfStatement","src":"3048:132:43","trueBody":{"id":16753,"nodeType":"Block","src":"3080:100:43","statements":[{"errorCall":{"arguments":[{"expression":{"id":16747,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3130:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3136:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"3130:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16749,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16731,"src":"3143:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16750,"name":"maxTotalReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16715,"src":"3154:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16744,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"3101:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3112:17:43","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":17528,"src":"3101:28:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":16751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3101:68:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16752,"nodeType":"RevertStatement","src":"3094:75:43"}]}},{"expression":{"id":16758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16755,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"3190:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16756,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3198:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3204:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"3198:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3190:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16759,"nodeType":"ExpressionStatement","src":"3190:19:43"},{"expression":{"id":16763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16760,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"3219:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16761,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3230:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3236:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"3230:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"3219:25:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"id":16764,"nodeType":"ExpressionStatement","src":"3219:25:43"},{"expression":{"id":16768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16765,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"3254:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16766,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3263:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3269:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"3263:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3254:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16769,"nodeType":"ExpressionStatement","src":"3254:21:43"},{"expression":{"id":16773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16770,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"3285:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16771,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3293:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":16772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3299:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"3293:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3285:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16774,"nodeType":"ExpressionStatement","src":"3285:19:43"},{"expression":{"arguments":[{"expression":{"id":16776,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3331:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3335:6:43","memberName":"sender","nodeType":"MemberAccess","src":"3331:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16775,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"3314:16:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3314:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16779,"nodeType":"ExpressionStatement","src":"3314:28:43"}]},"documentation":{"id":16670,"nodeType":"StructuredDocumentation","src":"2218:190:43","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`"},"functionSelector":"439fab91","id":16781,"implemented":true,"kind":"function","modifiers":[{"id":16676,"kind":"modifierInvocation","modifierName":{"id":16675,"name":"initializer","nameLocations":["2471:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"2471:11:43"},"nodeType":"ModifierInvocation","src":"2471:11:43"}],"name":"initialize","nameLocation":"2422:10:43","nodeType":"FunctionDefinition","overrides":{"id":16674,"nodeType":"OverrideSpecifier","overrides":[],"src":"2462:8:43"},"parameters":{"id":16673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16672,"mutability":"mutable","name":"data_","nameLocation":"2448:5:43","nodeType":"VariableDeclaration","scope":16781,"src":"2433:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16671,"name":"bytes","nodeType":"ElementaryTypeName","src":"2433:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2432:22:43"},"returnParameters":{"id":16677,"nodeType":"ParameterList","parameters":[],"src":"2483:0:43"},"scope":17152,"src":"2413:936:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":16881,"nodeType":"Block","src":"3630:676:43","statements":[{"assignments":[16794],"declarations":[{"constant":false,"id":16794,"mutability":"mutable","name":"claim_","nameLocation":"3660:6:43","nodeType":"VariableDeclaration","scope":16881,"src":"3640:26:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16793,"nodeType":"UserDefinedTypeName","pathNode":{"id":16792,"name":"ClaimPayload","nameLocations":["3640:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3640:12:43"},"referencedDeclaration":17186,"src":"3640:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16801,"initialValue":{"arguments":[{"id":16797,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16784,"src":"3680:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16798,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3688:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16799,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3687:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16795,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3669:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3673:6:43","memberName":"decode","nodeType":"MemberAccess","src":"3669:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3669:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3640:62:43"},{"condition":{"id":16806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3716:28:43","subExpression":{"arguments":[{"expression":{"id":16803,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3730:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3737:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3730:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16802,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17092,"src":"3717:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3717:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16810,"nodeType":"IfStatement","src":"3712:55:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16807,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"3753:12:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:14:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16809,"nodeType":"RevertStatement","src":"3746:21:43"}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16811,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"3782:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16812,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"3794:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3803:4:43","memberName":"POOL","nodeType":"MemberAccess","referencedDeclaration":16630,"src":"3794:13:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"3782:25:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16848,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"4066:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16849,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"4078:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4087:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"4078:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"4066:27:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16877,"nodeType":"IfStatement","src":"4062:215:43","trueBody":{"id":16876,"nodeType":"Block","src":"4095:182:43","statements":[{"expression":{"id":16853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4109:8:43","subExpression":{"id":16852,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"4109:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16854,"nodeType":"ExpressionStatement","src":"4109:8:43"},{"expression":{"id":16860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16855,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"4131:7:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16858,"indexExpression":{"expression":{"id":16856,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"4139:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4146:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4139:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4131:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4156:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4131:29:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16861,"nodeType":"ExpressionStatement","src":"4131:29:43"},{"expression":{"arguments":[{"expression":{"id":16865,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"4187:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4194:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4187:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16862,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16661,"src":"4174:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":16864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4182:4:43","memberName":"push","nodeType":"MemberAccess","src":"4174:12:43","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4174:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16868,"nodeType":"ExpressionStatement","src":"4174:27:43"},{"eventCall":{"arguments":[{"expression":{"id":16870,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"4227:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4234:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"4227:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16869,"name":"Entry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16628,"src":"4221:5:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4221:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16873,"nodeType":"EmitStatement","src":"4216:25:43"},{"expression":{"hexValue":"74727565","id":16874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4262:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16791,"id":16875,"nodeType":"Return","src":"4255:11:43"}]}},"id":16878,"nodeType":"IfStatement","src":"3778:499:43","trueBody":{"id":16847,"nodeType":"Block","src":"3809:247:43","statements":[{"expression":{"id":16816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3823:8:43","subExpression":{"id":16815,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"3823:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16817,"nodeType":"ExpressionStatement","src":"3823:8:43"},{"expression":{"id":16823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16818,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"3845:7:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16821,"indexExpression":{"expression":{"id":16819,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3853:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3860:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3853:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3845:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3870:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3845:29:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16824,"nodeType":"ExpressionStatement","src":"3845:29:43"},{"expression":{"arguments":[{"expression":{"id":16828,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3908:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3915:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3908:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16830,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"3923:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16825,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"3889:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3895:12:43","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"3889:18:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":16831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16832,"nodeType":"ExpressionStatement","src":"3889:41:43"},{"eventCall":{"arguments":[{"expression":{"id":16834,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3958:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3958:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16838,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"3990:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16839,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"3997:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4004:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3997:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16841,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"4012:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3973:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3977:12:43","memberName":"encodePacked","nodeType":"MemberAccess","src":"3973:16:43","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3973:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16833,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"3950:7:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3950:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16844,"nodeType":"EmitStatement","src":"3945:75:43"},{"expression":{"hexValue":"74727565","id":16845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4041:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16791,"id":16846,"nodeType":"Return","src":"4034:11:43"}]}},{"expression":{"hexValue":"66616c7365","id":16879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4294:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16791,"id":16880,"nodeType":"Return","src":"4287:12:43"}]},"documentation":{"id":16782,"nodeType":"StructuredDocumentation","src":"3355:190:43","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":16882,"implemented":true,"kind":"function","modifiers":[{"id":16788,"kind":"modifierInvocation","modifierName":{"id":16787,"name":"onlyOwner","nameLocations":["3605:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"3605:9:43"},"nodeType":"ModifierInvocation","src":"3605:9:43"}],"name":"claim","nameLocation":"3559:5:43","nodeType":"FunctionDefinition","overrides":{"id":16786,"nodeType":"OverrideSpecifier","overrides":[],"src":"3596:8:43"},"parameters":{"id":16785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16784,"mutability":"mutable","name":"data_","nameLocation":"3580:5:43","nodeType":"VariableDeclaration","scope":16882,"src":"3565:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16783,"name":"bytes","nodeType":"ElementaryTypeName","src":"3565:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3564:22:43"},"returnParameters":{"id":16791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16882,"src":"3624:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16789,"name":"bool","nodeType":"ElementaryTypeName","src":"3624:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3623:6:43"},"scope":17152,"src":"3550:756:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":16989,"nodeType":"Block","src":"4424:912:43","statements":[{"assignments":[16895],"declarations":[{"constant":false,"id":16895,"mutability":"mutable","name":"claim_","nameLocation":"4454:6:43","nodeType":"VariableDeclaration","scope":16989,"src":"4434:26:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16894,"nodeType":"UserDefinedTypeName","pathNode":{"id":16893,"name":"ClaimPayload","nameLocations":["4434:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"4434:12:43"},"referencedDeclaration":17186,"src":"4434:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16902,"initialValue":{"arguments":[{"id":16898,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16885,"src":"4474:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16899,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"4482:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4481:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4463:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4467:6:43","memberName":"decode","nodeType":"MemberAccess","src":"4463:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4434:62:43"},{"assignments":[16904],"declarations":[{"constant":false,"id":16904,"mutability":"mutable","name":"amount","nameLocation":"4515:6:43","nodeType":"VariableDeclaration","scope":16989,"src":"4507:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16903,"name":"uint256","nodeType":"ElementaryTypeName","src":"4507:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16913,"initialValue":{"arguments":[{"expression":{"id":16907,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"4536:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4543:4:43","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"4536:11:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4550:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16909,"name":"uint256","nodeType":"ElementaryTypeName","src":"4550:7:43","typeDescriptions":{}}}],"id":16911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4549:9:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":16905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4525:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4529:6:43","memberName":"decode","nodeType":"MemberAccess","src":"4525:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4525:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4506:53:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":16917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16914,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"4574:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16915,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"4586:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":16916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4595:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"4586:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"4574:27:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16965,"nodeType":"Block","src":"4860:249:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16942,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"4977:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":16943,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"4986:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4977:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4996:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4977:20:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16958,"nodeType":"IfStatement","src":"4973:87:43","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16950,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5029:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5033:6:43","memberName":"sender","nodeType":"MemberAccess","src":"5029:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16954,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5052:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5041:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5045:6:43","memberName":"encode","nodeType":"MemberAccess","src":"5041:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5041:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16947,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"5006:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5017:11:43","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"5006:22:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":16956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5006:54:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16957,"nodeType":"RevertStatement","src":"4999:61:43"}},{"expression":{"id":16963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16959,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"5074:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16960,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"5083:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":16961,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"5092:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5083:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5074:24:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16964,"nodeType":"ExpressionStatement","src":"5074:24:43"}]},"id":16966,"nodeType":"IfStatement","src":"4570:539:43","trueBody":{"id":16941,"nodeType":"Block","src":"4603:251:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16918,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"4727:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16919,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"4737:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4727:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16921,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"4747:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4756:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4747:10:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4727:30:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16936,"nodeType":"IfStatement","src":"4723:97:43","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16928,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4789:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4793:6:43","memberName":"sender","nodeType":"MemberAccess","src":"4789:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16932,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"4812:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4801:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4805:6:43","memberName":"encode","nodeType":"MemberAccess","src":"4801:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16925,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"4766:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":16927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4777:11:43","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":17519,"src":"4766:22:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":16934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4766:54:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16935,"nodeType":"RevertStatement","src":"4759:61:43"}},{"expression":{"id":16939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16937,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"4834:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4834:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16940,"nodeType":"ExpressionStatement","src":"4834:9:43"}]}},{"expression":{"arguments":[{"expression":{"id":16970,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5200:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5207:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"5200:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16972,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"5215:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16967,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"5181:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5187:12:43","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"5181:18:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":16973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5181:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16974,"nodeType":"ExpressionStatement","src":"5181:41:43"},{"eventCall":{"arguments":[{"expression":{"id":16976,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5245:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5252:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"5245:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16980,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"5277:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16981,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"5284:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5291:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"5284:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16983,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16904,"src":"5299:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16978,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5260:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5264:12:43","memberName":"encodePacked","nodeType":"MemberAccess","src":"5260:16:43","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5260:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16975,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"5237:7:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5237:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16986,"nodeType":"EmitStatement","src":"5232:75:43"},{"expression":{"hexValue":"74727565","id":16987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5325:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16892,"id":16988,"nodeType":"Return","src":"5318:11:43"}]},"documentation":{"id":16883,"nodeType":"StructuredDocumentation","src":"4312:25:43","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":16990,"implemented":true,"kind":"function","modifiers":[{"id":16889,"kind":"modifierInvocation","modifierName":{"id":16888,"name":"onlyOwner","nameLocations":["4399:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"4399:9:43"},"nodeType":"ModifierInvocation","src":"4399:9:43"}],"name":"reclaim","nameLocation":"4351:7:43","nodeType":"FunctionDefinition","overrides":{"id":16887,"nodeType":"OverrideSpecifier","overrides":[],"src":"4390:8:43"},"parameters":{"id":16886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16885,"mutability":"mutable","name":"data_","nameLocation":"4374:5:43","nodeType":"VariableDeclaration","scope":16990,"src":"4359:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16884,"name":"bytes","nodeType":"ElementaryTypeName","src":"4359:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4358:22:43"},"returnParameters":{"id":16892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16990,"src":"4418:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16890,"name":"bool","nodeType":"ElementaryTypeName","src":"4418:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4417:6:43"},"scope":17152,"src":"4342:994:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":17048,"nodeType":"Block","src":"5705:465:43","statements":[{"assignments":[17001],"declarations":[{"constant":false,"id":17001,"mutability":"mutable","name":"init_","nameLocation":"5734:5:43","nodeType":"VariableDeclaration","scope":17048,"src":"5715:24:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload"},"typeName":{"id":17000,"nodeType":"UserDefinedTypeName","pathNode":{"id":16999,"name":"InitPayload","nameLocations":["5715:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":16644,"src":"5715:11:43"},"referencedDeclaration":16644,"src":"5715:11:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_storage_ptr","typeString":"struct ERC20Incentive.InitPayload"}},"visibility":"internal"}],"id":17008,"initialValue":{"arguments":[{"id":17004,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"5753:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17005,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16644,"src":"5761:11:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"id":17006,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5760:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$16644_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}],"expression":{"id":17002,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5742:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5746:6:43","memberName":"decode","nodeType":"MemberAccess","src":"5742:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5742:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5715:59:43"},{"assignments":[17010],"declarations":[{"constant":false,"id":17010,"mutability":"mutable","name":"amount","nameLocation":"5792:6:43","nodeType":"VariableDeclaration","scope":17048,"src":"5784:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17009,"name":"uint256","nodeType":"ElementaryTypeName","src":"5784:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17024,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":17015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17011,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5801:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5807:8:43","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":16639,"src":"5801:14:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17013,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"5819:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":17014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5828:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"5819:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"5801:33:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":17021,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5866:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5872:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"5866:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5801:77:43","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17016,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5837:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5843:6:43","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":16641,"src":"5837:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":17018,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"5852:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5858:5:43","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":16643,"src":"5852:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5837:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5784:94:43"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":17029,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5965:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":17030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5972:9:43","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"5965:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$13471_$","typeString":"type(enum Budget.AssetType)"}},"id":17031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5982:5:43","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":13469,"src":"5965:22:43","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"}},{"expression":{"id":17032,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"6012:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$16644_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6018:5:43","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":16636,"src":"6012:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17036,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6057:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Incentive_$17152","typeString":"contract ERC20Incentive"}],"id":17035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6049:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17034,"name":"address","nodeType":"ElementaryTypeName","src":"6049:7:43","typeDescriptions":{}}},"id":17037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6049:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":17042,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17010,"src":"6129:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17040,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"6097:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":17041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6104:15:43","memberName":"FungiblePayload","nodeType":"MemberAccess","referencedDeclaration":13486,"src":"6097:22:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$13486_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6121:6:43"],"names":["amount"],"nodeType":"FunctionCall","src":"6097:40:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FungiblePayload_$13486_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}],"expression":{"id":17038,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6086:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6090:6:43","memberName":"encode","nodeType":"MemberAccess","src":"6086:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6086:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$13471","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17027,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"5920:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$13669_$","typeString":"type(contract Budget)"}},"id":17028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5927:8:43","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":13482,"src":"5920:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$13482_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5954:9:43","6005:5:43","6041:6:43","6080:4:43"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"5920:233:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$13482_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":17025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5896:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5900:6:43","memberName":"encode","nodeType":"MemberAccess","src":"5896:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5896:267:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":16998,"id":17047,"nodeType":"Return","src":"5889:274:43"}]},"documentation":{"id":16991,"nodeType":"StructuredDocumentation","src":"5342:260:43","text":"@inheritdoc Incentive\n @notice Preflight the incentive to determine the required budget action\n @param data_ The {InitPayload} for the incentive\n @return budgetData The {Transfer} payload to be passed to the {Budget} for interpretation"},"functionSelector":"4e7165a2","id":17049,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"5616:9:43","nodeType":"FunctionDefinition","overrides":{"id":16995,"nodeType":"OverrideSpecifier","overrides":[],"src":"5662:8:43"},"parameters":{"id":16994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16993,"mutability":"mutable","name":"data_","nameLocation":"5641:5:43","nodeType":"VariableDeclaration","scope":17049,"src":"5626:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16992,"name":"bytes","nodeType":"ElementaryTypeName","src":"5626:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5625:22:43"},"returnParameters":{"id":16998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16997,"mutability":"mutable","name":"budgetData","nameLocation":"5693:10:43","nodeType":"VariableDeclaration","scope":17049,"src":"5680:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16996,"name":"bytes","nodeType":"ElementaryTypeName","src":"5680:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5679:25:43"},"scope":17152,"src":"5607:563:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":17073,"nodeType":"Block","src":"6630:123:43","statements":[{"assignments":[17060],"declarations":[{"constant":false,"id":17060,"mutability":"mutable","name":"claim_","nameLocation":"6660:6:43","nodeType":"VariableDeclaration","scope":17073,"src":"6640:26:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17059,"nodeType":"UserDefinedTypeName","pathNode":{"id":17058,"name":"ClaimPayload","nameLocations":["6640:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"6640:12:43"},"referencedDeclaration":17186,"src":"6640:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17067,"initialValue":{"arguments":[{"id":17063,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17052,"src":"6680:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17064,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"6688:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6687:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6669:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6673:6:43","memberName":"decode","nodeType":"MemberAccess","src":"6669:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6640:62:43"},{"expression":{"arguments":[{"expression":{"id":17069,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17060,"src":"6732:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6739:6:43","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"6732:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17068,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17092,"src":"6719:12:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6719:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17057,"id":17072,"nodeType":"Return","src":"6712:34:43"}]},"documentation":{"id":17050,"nodeType":"StructuredDocumentation","src":"6176:370:43","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":17074,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"6560:11:43","nodeType":"FunctionDefinition","overrides":{"id":17054,"nodeType":"OverrideSpecifier","overrides":[],"src":"6606:8:43"},"parameters":{"id":17053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17052,"mutability":"mutable","name":"data_","nameLocation":"6587:5:43","nodeType":"VariableDeclaration","scope":17074,"src":"6572:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17051,"name":"bytes","nodeType":"ElementaryTypeName","src":"6572:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6571:22:43"},"returnParameters":{"id":17057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17074,"src":"6624:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17055,"name":"bool","nodeType":"ElementaryTypeName","src":"6624:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6623:6:43"},"scope":17152,"src":"6551:202:43","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17091,"nodeType":"Block","src":"7030:62:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7047:20:43","subExpression":{"baseExpression":{"id":17082,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"7048:7:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17084,"indexExpression":{"id":17083,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17077,"src":"7056:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7048:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17086,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"7071:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17087,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16657,"src":"7080:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7071:14:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7047:38:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17081,"id":17090,"nodeType":"Return","src":"7040:45:43"}]},"documentation":{"id":17075,"nodeType":"StructuredDocumentation","src":"6759:195:43","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":17092,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"6968:12:43","nodeType":"FunctionDefinition","parameters":{"id":17078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17077,"mutability":"mutable","name":"recipient_","nameLocation":"6989:10:43","nodeType":"VariableDeclaration","scope":17092,"src":"6981:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17076,"name":"address","nodeType":"ElementaryTypeName","src":"6981:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6980:20:43"},"returnParameters":{"id":17081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17092,"src":"7024:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17079,"name":"bool","nodeType":"ElementaryTypeName","src":"7024:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7023:6:43"},"scope":17152,"src":"6959:133:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17150,"nodeType":"Block","src":"7255:388:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"},"id":17101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17098,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16651,"src":"7269:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17099,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"7281:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16633_$","typeString":"type(enum ERC20Incentive.Strategy)"}},"id":17100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7290:6:43","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16632,"src":"7281:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16633","typeString":"enum ERC20Incentive.Strategy"}},"src":"7269:27:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17107,"nodeType":"IfStatement","src":"7265:65:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17102,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"7305:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":17104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7316:12:43","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"7305:23:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7305:25:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17106,"nodeType":"RevertStatement","src":"7298:32:43"}},{"assignments":[17112],"declarations":[{"constant":false,"id":17112,"mutability":"mutable","name":"_prng","nameLocation":"7361:5:43","nodeType":"VariableDeclaration","scope":17150,"src":"7341:25:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":17111,"nodeType":"UserDefinedTypeName","pathNode":{"id":17110,"name":"LibPRNG.PRNG","nameLocations":["7341:7:43","7349:4:43"],"nodeType":"IdentifierPath","referencedDeclaration":10121,"src":"7341:12:43"},"referencedDeclaration":10121,"src":"7341:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"id":17121,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17115,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7390:5:43","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7396:10:43","memberName":"prevrandao","nodeType":"MemberAccess","src":"7390:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":17117,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7409:5:43","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7415:9:43","memberName":"timestamp","nodeType":"MemberAccess","src":"7409:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7390:34:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17113,"name":"LibPRNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10307,"src":"7369:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPRNG_$10307_$","typeString":"type(library LibPRNG)"}},"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7377:4:43","memberName":"PRNG","nodeType":"MemberAccess","referencedDeclaration":10121,"src":"7369:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PRNG_$10121_storage_ptr_$","typeString":"type(struct LibPRNG.PRNG storage pointer)"}},"id":17120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7383:5:43"],"names":["state"],"nodeType":"FunctionCall","src":"7369:57:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG memory"}},"nodeType":"VariableDeclarationStatement","src":"7341:85:43"},{"assignments":[17123],"declarations":[{"constant":false,"id":17123,"mutability":"mutable","name":"winnerAddress","nameLocation":"7445:13:43","nodeType":"VariableDeclaration","scope":17150,"src":"7437:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17122,"name":"address","nodeType":"ElementaryTypeName","src":"7437:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17132,"initialValue":{"baseExpression":{"id":17124,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16661,"src":"7461:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17131,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17125,"name":"_prng","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17112,"src":"7469:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10121_memory_ptr","typeString":"struct LibPRNG.PRNG memory"}},"id":17126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7475:4:43","memberName":"next","nodeType":"MemberAccess","referencedDeclaration":10147,"src":"7469:10:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PRNG_$10121_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PRNG_$10121_memory_ptr_$","typeString":"function (struct LibPRNG.PRNG memory) pure returns (uint256)"}},"id":17127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:12:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":17128,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16661,"src":"7484:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7492:6:43","memberName":"length","nodeType":"MemberAccess","src":"7484:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7469:29:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7461:38:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7437:62:43"},{"expression":{"arguments":[{"id":17136,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"7529:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17137,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"7544:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17133,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"7510:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7516:12:43","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11219,"src":"7510:18:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":17138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7510:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17139,"nodeType":"ExpressionStatement","src":"7510:41:43"},{"eventCall":{"arguments":[{"id":17141,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"7574:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17144,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"7606:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17145,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"7613:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17146,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"7628:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17142,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7589:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7593:12:43","memberName":"encodePacked","nodeType":"MemberAccess","src":"7589:16:43","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7589:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17140,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"7566:7:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7566:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17149,"nodeType":"EmitStatement","src":"7561:75:43"}]},"documentation":{"id":17093,"nodeType":"StructuredDocumentation","src":"7098:111:43","text":"@notice Draw a winner from the raffle\n @dev Only valid when the strategy is set to `Strategy.RAFFLE`"},"functionSelector":"2275aea9","id":17151,"implemented":true,"kind":"function","modifiers":[{"id":17096,"kind":"modifierInvocation","modifierName":{"id":17095,"name":"onlyOwner","nameLocations":["7245:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"7245:9:43"},"nodeType":"ModifierInvocation","src":"7245:9:43"}],"name":"drawRaffle","nameLocation":"7223:10:43","nodeType":"FunctionDefinition","parameters":{"id":17094,"nodeType":"ParameterList","parameters":[],"src":"7233:2:43"},"returnParameters":{"id":17097,"nodeType":"ParameterList","parameters":[],"src":"7255:0:43"},"scope":17152,"src":"7214:429:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":17153,"src":"448:7197:43","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17519,17528,17538,17544,17565,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,16628,17174]}],"src":"36:7610:43"},"id":43},"contracts/incentives/Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/Incentive.sol","exportedSymbols":{"Cloneable":[17720],"Incentive":[17260],"Ownable":[6423],"ReentrancyGuard":[11038]},"id":17261,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17154,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:44"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":17156,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17261,"sourceUnit":6424,"src":"62:49:44","symbolAliases":[{"foreign":{"id":17155,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":17158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17261,"sourceUnit":11039,"src":"112:66:44","symbolAliases":[{"foreign":{"id":17157,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11038,"src":"120:15:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":17160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17261,"sourceUnit":17721,"src":"180:57:44","symbolAliases":[{"foreign":{"id":17159,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"188:9:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":17162,"name":"Ownable","nameLocations":["528:7:44"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"528:7:44"},"id":17163,"nodeType":"InheritanceSpecifier","src":"528:7:44"},{"baseName":{"id":17164,"name":"Cloneable","nameLocations":["537:9:44"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"537:9:44"},"id":17165,"nodeType":"InheritanceSpecifier","src":"537:9:44"},{"baseName":{"id":17166,"name":"ReentrancyGuard","nameLocations":["548:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":11038,"src":"548:15:44"},"id":17167,"nodeType":"InheritanceSpecifier","src":"548:15:44"}],"canonicalName":"Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17161,"nodeType":"StructuredDocumentation","src":"239:258:44","text":"@title Boost Incentive\n @notice Abstract contract for a generic Incentive within the Boost protocol\n @dev Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":17260,"linearizedBaseContracts":[17260,11038,17720,2845,2857,9225,6423],"name":"Incentive","nameLocation":"515:9:44","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":17168,"nodeType":"StructuredDocumentation","src":"570:175:44","text":"@notice Emitted when an incentive is claimed\n @dev The `data` field contains implementation-specific context. See the implementation's `claim` function for details."},"eventSelector":"9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d3","id":17174,"name":"Claimed","nameLocation":"756:7:44","nodeType":"EventDefinition","parameters":{"id":17173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17170,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"780:9:44","nodeType":"VariableDeclaration","scope":17174,"src":"764:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17169,"name":"address","nodeType":"ElementaryTypeName","src":"764:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17172,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"797:4:44","nodeType":"VariableDeclaration","scope":17174,"src":"791:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17171,"name":"bytes","nodeType":"ElementaryTypeName","src":"791:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"763:39:44"},"src":"750:53:44"},{"documentation":{"id":17175,"nodeType":"StructuredDocumentation","src":"809:37:44","text":"@notice Thrown when a claim fails"},"errorSelector":"360e42e1","id":17177,"name":"ClaimFailed","nameLocation":"857:11:44","nodeType":"ErrorDefinition","parameters":{"id":17176,"nodeType":"ParameterList","parameters":[],"src":"868:2:44"},"src":"851:20:44"},{"documentation":{"id":17178,"nodeType":"StructuredDocumentation","src":"877:54:44","text":"@notice Thrown when the incentive is not claimable"},"errorSelector":"6247a84e","id":17180,"name":"NotClaimable","nameLocation":"942:12:44","nodeType":"ErrorDefinition","parameters":{"id":17179,"nodeType":"ParameterList","parameters":[],"src":"954:2:44"},"src":"936:21:44"},{"canonicalName":"Incentive.ClaimPayload","documentation":{"id":17181,"nodeType":"StructuredDocumentation","src":"963:197:44","text":"@notice A struct representing the payload for an incentive claim\n @param target The address of the recipient\n @param data The implementation-specific data for the claim, if needed"},"id":17186,"members":[{"constant":false,"id":17183,"mutability":"mutable","name":"target","nameLocation":"1203:6:44","nodeType":"VariableDeclaration","scope":17186,"src":"1195:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17182,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17185,"mutability":"mutable","name":"data","nameLocation":"1225:4:44","nodeType":"VariableDeclaration","scope":17186,"src":"1219:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":17184,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ClaimPayload","nameLocation":"1172:12:44","nodeType":"StructDefinition","scope":17260,"src":"1165:71:44","visibility":"public"},{"constant":false,"documentation":{"id":17187,"nodeType":"StructuredDocumentation","src":"1242:52:44","text":"@notice The number of claims that have been made"},"functionSelector":"dcc59b6f","id":17189,"mutability":"mutable","name":"claims","nameLocation":"1314:6:44","nodeType":"VariableDeclaration","scope":17260,"src":"1299:21:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":17190,"nodeType":"StructuredDocumentation","src":"1327:48:44","text":"@notice A mapping of address to claim status"},"functionSelector":"c884ef83","id":17194,"mutability":"mutable","name":"claimed","nameLocation":"1412:7:44","nodeType":"VariableDeclaration","scope":17260,"src":"1380:39:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":17193,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":17191,"name":"address","nodeType":"ElementaryTypeName","src":"1388:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1380:24:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17192,"name":"bool","nodeType":"ElementaryTypeName","src":"1399:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":17203,"nodeType":"Block","src":"1553:45:44","statements":[{"expression":{"arguments":[{"expression":{"id":17199,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1580:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:6:44","memberName":"sender","nodeType":"MemberAccess","src":"1580:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17198,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1563:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1563:28:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17202,"nodeType":"ExpressionStatement","src":"1563:28:44"}]},"documentation":{"id":17195,"nodeType":"StructuredDocumentation","src":"1426:108:44","text":"@notice Initialize the contract and set the owner\n @dev The owner is set to the contract deployer"},"id":17204,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17196,"nodeType":"ParameterList","parameters":[],"src":"1550:2:44"},"returnParameters":{"id":17197,"nodeType":"ParameterList","parameters":[],"src":"1553:0:44"},"scope":17260,"src":"1539:59:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":17205,"nodeType":"StructuredDocumentation","src":"1604:156:44","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":17212,"implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1774:5:44","nodeType":"FunctionDefinition","parameters":{"id":17208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17207,"mutability":"mutable","name":"data_","nameLocation":"1795:5:44","nodeType":"VariableDeclaration","scope":17212,"src":"1780:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17206,"name":"bytes","nodeType":"ElementaryTypeName","src":"1780:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1779:22:44"},"returnParameters":{"id":17211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17212,"src":"1828:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17209,"name":"bool","nodeType":"ElementaryTypeName","src":"1828:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1827:6:44"},"scope":17260,"src":"1765:69:44","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":17213,"nodeType":"StructuredDocumentation","src":"1840:162:44","text":"@notice Reclaim assets from the incentive\n @param data_ The data payload for the reclaim\n @return True if the assets were successfully reclaimed"},"functionSelector":"f1c30ec0","id":17220,"implemented":false,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2016:7:44","nodeType":"FunctionDefinition","parameters":{"id":17216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17215,"mutability":"mutable","name":"data_","nameLocation":"2039:5:44","nodeType":"VariableDeclaration","scope":17220,"src":"2024:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17214,"name":"bytes","nodeType":"ElementaryTypeName","src":"2024:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2023:22:44"},"returnParameters":{"id":17219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17220,"src":"2072:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17217,"name":"bool","nodeType":"ElementaryTypeName","src":"2072:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2071:6:44"},"scope":17260,"src":"2007:71:44","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":17221,"nodeType":"StructuredDocumentation","src":"2084:205:44","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check (data, signature, etc.)\n @return True if the incentive is claimable based on the data payload"},"functionSelector":"e18e6508","id":17228,"implemented":false,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"2303:11:44","nodeType":"FunctionDefinition","parameters":{"id":17224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17223,"mutability":"mutable","name":"data_","nameLocation":"2330:5:44","nodeType":"VariableDeclaration","scope":17228,"src":"2315:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17222,"name":"bytes","nodeType":"ElementaryTypeName","src":"2315:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2314:22:44"},"returnParameters":{"id":17227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17228,"src":"2368:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17225,"name":"bool","nodeType":"ElementaryTypeName","src":"2368:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2367:6:44"},"scope":17260,"src":"2294:80:44","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":17229,"nodeType":"StructuredDocumentation","src":"2380:448:44","text":"@notice Get the required allowance for the incentive\n @param data_ The initialization payload for the incentive\n @return The data payload to be passed to the {Budget} for interpretation\n @dev This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation."},"functionSelector":"4e7165a2","id":17236,"implemented":false,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2842:9:44","nodeType":"FunctionDefinition","parameters":{"id":17232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17231,"mutability":"mutable","name":"data_","nameLocation":"2867:5:44","nodeType":"VariableDeclaration","scope":17236,"src":"2852:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17230,"name":"bytes","nodeType":"ElementaryTypeName","src":"2852:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2851:22:44"},"returnParameters":{"id":17235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17236,"src":"2905:12:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17233,"name":"bytes","nodeType":"ElementaryTypeName","src":"2905:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2904:14:44"},"scope":17260,"src":"2833:86:44","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":17258,"nodeType":"Block","src":"3057:106:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17246,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17239,"src":"3074:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17248,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"3094:9:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$17260_$","typeString":"type(contract Incentive)"}],"id":17247,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3089:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3089:15:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$17260","typeString":"type(contract Incentive)"}},"id":17250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3105:11:44","memberName":"interfaceId","nodeType":"MemberAccess","src":"3089:27:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3074:42:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":17254,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17239,"src":"3144:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17252,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3120:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Incentive_$17260_$","typeString":"type(contract super Incentive)"}},"id":17253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3126:17:44","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"3120:23:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":17255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3120:36:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3074:82:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17245,"id":17257,"nodeType":"Return","src":"3067:89:44"}]},"documentation":{"id":17237,"nodeType":"StructuredDocumentation","src":"2925:25:44","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":17259,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2964:17:44","nodeType":"FunctionDefinition","overrides":{"id":17242,"nodeType":"OverrideSpecifier","overrides":[{"id":17241,"name":"Cloneable","nameLocations":["3031:9:44"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"3031:9:44"}],"src":"3022:19:44"},"parameters":{"id":17240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17239,"mutability":"mutable","name":"interfaceId","nameLocation":"2989:11:44","nodeType":"VariableDeclaration","scope":17259,"src":"2982:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17238,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2982:6:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2981:20:44"},"returnParameters":{"id":17245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17259,"src":"3051:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17243,"name":"bool","nodeType":"ElementaryTypeName","src":"3051:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3050:6:44"},"scope":17260,"src":"2955:208:44","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17261,"src":"497:2668:44","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:3130:44"},"id":44},"contracts/incentives/PointsIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/PointsIncentive.sol","exportedSymbols":{"BoostError":[17566],"Budget":[13669],"Incentive":[17260],"PointsIncentive":[17509]},"id":17510,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17262,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:45"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":17264,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17510,"sourceUnit":17567,"src":"62:59:45","symbolAliases":[{"foreign":{"id":17263,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"70:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17266,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17510,"sourceUnit":13670,"src":"122:52:45","symbolAliases":[{"foreign":{"id":17265,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"130:6:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":17268,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17510,"sourceUnit":17261,"src":"175:42:45","symbolAliases":[{"foreign":{"id":17267,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"183:9:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17270,"name":"Incentive","nameLocations":["664:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"664:9:45"},"id":17271,"nodeType":"InheritanceSpecifier","src":"664:9:45"}],"canonicalName":"PointsIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17269,"nodeType":"StructuredDocumentation","src":"219:417:45","text":"@title Points Incentive\n @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n @dev In order for any claim to be successful:\n - The claimer must not have already claimed the incentive; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to operate the points contract's issuance function"},"fullyImplemented":true,"id":17509,"linearizedBaseContracts":[17509,17260,11038,17720,2845,2857,9225,6423],"name":"PointsIncentive","nameLocation":"645:15:45","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PointsIncentive.InitPayload","documentation":{"id":17272,"nodeType":"StructuredDocumentation","src":"680:58:45","text":"@notice The payload for initializing a PointsIncentive"},"id":17281,"members":[{"constant":false,"id":17274,"mutability":"mutable","name":"venue","nameLocation":"780:5:45","nodeType":"VariableDeclaration","scope":17281,"src":"772:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17273,"name":"address","nodeType":"ElementaryTypeName","src":"772:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17276,"mutability":"mutable","name":"selector","nameLocation":"802:8:45","nodeType":"VariableDeclaration","scope":17281,"src":"795:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17275,"name":"bytes4","nodeType":"ElementaryTypeName","src":"795:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":17278,"mutability":"mutable","name":"quantity","nameLocation":"828:8:45","nodeType":"VariableDeclaration","scope":17281,"src":"820:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17277,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17280,"mutability":"mutable","name":"limit","nameLocation":"854:5:45","nodeType":"VariableDeclaration","scope":17281,"src":"846:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17279,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"750:11:45","nodeType":"StructDefinition","scope":17509,"src":"743:123:45","visibility":"public"},{"constant":false,"documentation":{"id":17282,"nodeType":"StructuredDocumentation","src":"872:46:45","text":"@notice The address of the points contract"},"functionSelector":"a270a737","id":17284,"mutability":"mutable","name":"venue","nameLocation":"938:5:45","nodeType":"VariableDeclaration","scope":17509,"src":"923:20:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17283,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":17285,"nodeType":"StructuredDocumentation","src":"950:53:45","text":"@notice The quantity amount issued for each claim"},"functionSelector":"17fc45e2","id":17287,"mutability":"mutable","name":"quantity","nameLocation":"1023:8:45","nodeType":"VariableDeclaration","scope":17509,"src":"1008:23:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17286,"name":"uint256","nodeType":"ElementaryTypeName","src":"1008:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":17288,"nodeType":"StructuredDocumentation","src":"1038:75:45","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":17290,"mutability":"mutable","name":"limit","nameLocation":"1133:5:45","nodeType":"VariableDeclaration","scope":17509,"src":"1118:20:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1118:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":17291,"nodeType":"StructuredDocumentation","src":"1145:73:45","text":"@notice The selector for the issuance function on the points contract"},"functionSelector":"ea3d508a","id":17293,"mutability":"mutable","name":"selector","nameLocation":"1237:8:45","nodeType":"VariableDeclaration","scope":17509,"src":"1223:22:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17292,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1223:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"body":{"id":17300,"nodeType":"Block","src":"1507:39:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17297,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1517:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1517:22:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17299,"nodeType":"ExpressionStatement","src":"1517:22:45"}]},"documentation":{"id":17294,"nodeType":"StructuredDocumentation","src":"1252:236:45","text":"@notice Construct a new PointsIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":17301,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17295,"nodeType":"ParameterList","parameters":[],"src":"1504:2:45"},"returnParameters":{"id":17296,"nodeType":"ParameterList","parameters":[],"src":"1507:0:45"},"scope":17509,"src":"1493:53:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":17360,"nodeType":"Block","src":"1801:339:45","statements":[{"assignments":[17312],"declarations":[{"constant":false,"id":17312,"mutability":"mutable","name":"init_","nameLocation":"1830:5:45","nodeType":"VariableDeclaration","scope":17360,"src":"1811:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload"},"typeName":{"id":17311,"nodeType":"UserDefinedTypeName","pathNode":{"id":17310,"name":"InitPayload","nameLocations":["1811:11:45"],"nodeType":"IdentifierPath","referencedDeclaration":17281,"src":"1811:11:45"},"referencedDeclaration":17281,"src":"1811:11:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_storage_ptr","typeString":"struct PointsIncentive.InitPayload"}},"visibility":"internal"}],"id":17319,"initialValue":{"arguments":[{"id":17315,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17304,"src":"1849:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17316,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17281,"src":"1857:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17281_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}}],"id":17317,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1856:13:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17281_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17281_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}],"expression":{"id":17313,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1838:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1842:6:45","memberName":"decode","nodeType":"MemberAccess","src":"1838:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:32:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1811:59:45"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17320,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"1884:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1890:8:45","memberName":"quantity","nodeType":"MemberAccess","referencedDeclaration":17278,"src":"1884:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1902:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1884:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17324,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"1907:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1913:5:45","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17280,"src":"1907:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1907:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1884:39:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17334,"nodeType":"IfStatement","src":"1880:86:45","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17329,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"1932:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":17331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:21:45","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":17538,"src":"1932:32:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1932:34:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17333,"nodeType":"RevertStatement","src":"1925:41:45"}},{"expression":{"id":17338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17335,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"1977:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17336,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"1985:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1991:5:45","memberName":"venue","nodeType":"MemberAccess","referencedDeclaration":17274,"src":"1985:11:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1977:19:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17339,"nodeType":"ExpressionStatement","src":"1977:19:45"},{"expression":{"id":17343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17340,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"2006:8:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17341,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"2017:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2023:8:45","memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":17276,"src":"2017:14:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2006:25:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":17344,"nodeType":"ExpressionStatement","src":"2006:25:45"},{"expression":{"id":17348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17345,"name":"quantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"2041:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17346,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"2052:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2058:8:45","memberName":"quantity","nodeType":"MemberAccess","referencedDeclaration":17278,"src":"2052:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2041:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17349,"nodeType":"ExpressionStatement","src":"2041:25:45"},{"expression":{"id":17353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17350,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17290,"src":"2076:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17351,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"2084:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17281_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":17352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2090:5:45","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17280,"src":"2084:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2076:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17354,"nodeType":"ExpressionStatement","src":"2076:19:45"},{"expression":{"arguments":[{"expression":{"id":17356,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2122:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2126:6:45","memberName":"sender","nodeType":"MemberAccess","src":"2122:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17355,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"2105:16:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2105:28:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17359,"nodeType":"ExpressionStatement","src":"2105:28:45"}]},"documentation":{"id":17302,"nodeType":"StructuredDocumentation","src":"1552:174:45","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed incentive parameters `(address points, uint256 quantity, uint256 limit)`"},"functionSelector":"439fab91","id":17361,"implemented":true,"kind":"function","modifiers":[{"id":17308,"kind":"modifierInvocation","modifierName":{"id":17307,"name":"initializer","nameLocations":["1789:11:45"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1789:11:45"},"nodeType":"ModifierInvocation","src":"1789:11:45"}],"name":"initialize","nameLocation":"1740:10:45","nodeType":"FunctionDefinition","overrides":{"id":17306,"nodeType":"OverrideSpecifier","overrides":[],"src":"1780:8:45"},"parameters":{"id":17305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17304,"mutability":"mutable","name":"data_","nameLocation":"1766:5:45","nodeType":"VariableDeclaration","scope":17361,"src":"1751:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17303,"name":"bytes","nodeType":"ElementaryTypeName","src":"1751:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1750:22:45"},"returnParameters":{"id":17309,"nodeType":"ParameterList","parameters":[],"src":"1801:0:45"},"scope":17509,"src":"1731:409:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17212],"body":{"id":17434,"nodeType":"Block","src":"2421:453:45","statements":[{"assignments":[17374],"declarations":[{"constant":false,"id":17374,"mutability":"mutable","name":"claim_","nameLocation":"2451:6:45","nodeType":"VariableDeclaration","scope":17434,"src":"2431:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17373,"nodeType":"UserDefinedTypeName","pathNode":{"id":17372,"name":"ClaimPayload","nameLocations":["2431:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"2431:12:45"},"referencedDeclaration":17186,"src":"2431:12:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17381,"initialValue":{"arguments":[{"id":17377,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17364,"src":"2471:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17378,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"2479:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17379,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2478:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2460:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2464:6:45","memberName":"decode","nodeType":"MemberAccess","src":"2460:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2460:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2431:62:45"},{"condition":{"id":17386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2507:28:45","subExpression":{"arguments":[{"expression":{"id":17383,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2521:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2528:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2521:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17382,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17508,"src":"2508:12:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17390,"nodeType":"IfStatement","src":"2503:55:45","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17387,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17180,"src":"2544:12:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2544:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17389,"nodeType":"RevertStatement","src":"2537:21:45"}},{"expression":{"id":17392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2569:8:45","subExpression":{"id":17391,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"2569:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17393,"nodeType":"ExpressionStatement","src":"2569:8:45"},{"expression":{"id":17399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17394,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"2587:7:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17397,"indexExpression":{"expression":{"id":17395,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2595:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2602:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2595:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2587:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2612:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2587:29:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17400,"nodeType":"ExpressionStatement","src":"2587:29:45"},{"assignments":[17402,null],"declarations":[{"constant":false,"id":17402,"mutability":"mutable","name":"success","nameLocation":"2633:7:45","nodeType":"VariableDeclaration","scope":17434,"src":"2628:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17401,"name":"bool","nodeType":"ElementaryTypeName","src":"2628:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":17413,"initialValue":{"arguments":[{"arguments":[{"id":17407,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"2679:8:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":17408,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2689:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2696:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2689:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17410,"name":"quantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"2704:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17405,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2656:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2660:18:45","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2656:22:45","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":17411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2656:57:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17403,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"2645:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2651:4:45","memberName":"call","nodeType":"MemberAccess","src":"2645:10:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2645:69:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2627:87:45"},{"condition":{"id":17415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2728:8:45","subExpression":{"id":17414,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"2729:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17419,"nodeType":"IfStatement","src":"2724:34:45","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17416,"name":"ClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17177,"src":"2745:11:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2745:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17418,"nodeType":"RevertStatement","src":"2738:20:45"}},{"eventCall":{"arguments":[{"expression":{"id":17421,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2782:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2789:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2782:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17425,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"2814:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17426,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"2821:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2828:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"2821:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17428,"name":"quantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"2836:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2797:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2801:12:45","memberName":"encodePacked","nodeType":"MemberAccess","src":"2797:16:45","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2797:48:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17420,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"2774:7:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2774:72:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17431,"nodeType":"EmitStatement","src":"2769:77:45"},{"expression":{"hexValue":"74727565","id":17432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2863:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":17371,"id":17433,"nodeType":"Return","src":"2856:11:45"}]},"documentation":{"id":17362,"nodeType":"StructuredDocumentation","src":"2146:190:45","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":17435,"implemented":true,"kind":"function","modifiers":[{"id":17368,"kind":"modifierInvocation","modifierName":{"id":17367,"name":"onlyOwner","nameLocations":["2396:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"2396:9:45"},"nodeType":"ModifierInvocation","src":"2396:9:45"}],"name":"claim","nameLocation":"2350:5:45","nodeType":"FunctionDefinition","overrides":{"id":17366,"nodeType":"OverrideSpecifier","overrides":[],"src":"2387:8:45"},"parameters":{"id":17365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17364,"mutability":"mutable","name":"data_","nameLocation":"2371:5:45","nodeType":"VariableDeclaration","scope":17435,"src":"2356:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17363,"name":"bytes","nodeType":"ElementaryTypeName","src":"2356:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2355:22:45"},"returnParameters":{"id":17371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17435,"src":"2415:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17369,"name":"bool","nodeType":"ElementaryTypeName","src":"2415:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2414:6:45"},"scope":17509,"src":"2341:533:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17220],"body":{"id":17449,"nodeType":"Block","src":"3043:51:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17444,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"3060:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":17446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3071:14:45","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":17544,"src":"3060:25:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17448,"nodeType":"RevertStatement","src":"3053:34:45"}]},"documentation":{"id":17436,"nodeType":"StructuredDocumentation","src":"2880:87:45","text":"@inheritdoc Incentive\n @dev Not a valid operation for this type of incentive"},"functionSelector":"f1c30ec0","id":17450,"implemented":true,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2981:7:45","nodeType":"FunctionDefinition","overrides":{"id":17440,"nodeType":"OverrideSpecifier","overrides":[],"src":"3019:8:45"},"parameters":{"id":17439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17450,"src":"2989:14:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17437,"name":"bytes","nodeType":"ElementaryTypeName","src":"2989:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2988:16:45"},"returnParameters":{"id":17443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17450,"src":"3037:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17441,"name":"bool","nodeType":"ElementaryTypeName","src":"3037:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3036:6:45"},"scope":17509,"src":"2972:122:45","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[17236],"body":{"id":17464,"nodeType":"Block","src":"3289:36:45","statements":[{"expression":{"arguments":[{"hexValue":"30","id":17461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3316:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3306:9:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":17459,"name":"bytes","nodeType":"ElementaryTypeName","src":"3310:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":17462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3306:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":17458,"id":17463,"nodeType":"Return","src":"3299:19:45"}]},"documentation":{"id":17451,"nodeType":"StructuredDocumentation","src":"3100:92:45","text":"@inheritdoc Incentive\n @notice No token approvals are required for this incentive"},"functionSelector":"4e7165a2","id":17465,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"3206:9:45","nodeType":"FunctionDefinition","overrides":{"id":17455,"nodeType":"OverrideSpecifier","overrides":[],"src":"3246:8:45"},"parameters":{"id":17454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17465,"src":"3216:14:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17452,"name":"bytes","nodeType":"ElementaryTypeName","src":"3216:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3215:16:45"},"returnParameters":{"id":17458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17457,"mutability":"mutable","name":"budgetData","nameLocation":"3277:10:45","nodeType":"VariableDeclaration","scope":17465,"src":"3264:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17456,"name":"bytes","nodeType":"ElementaryTypeName","src":"3264:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3263:25:45"},"scope":17509,"src":"3197:128:45","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[17228],"body":{"id":17489,"nodeType":"Block","src":"3785:123:45","statements":[{"assignments":[17476],"declarations":[{"constant":false,"id":17476,"mutability":"mutable","name":"claim_","nameLocation":"3815:6:45","nodeType":"VariableDeclaration","scope":17489,"src":"3795:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17475,"nodeType":"UserDefinedTypeName","pathNode":{"id":17474,"name":"ClaimPayload","nameLocations":["3795:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":17186,"src":"3795:12:45"},"referencedDeclaration":17186,"src":"3795:12:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17483,"initialValue":{"arguments":[{"id":17479,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"3835:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17480,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3843:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17481,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3842:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$17186_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3824:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3828:6:45","memberName":"decode","nodeType":"MemberAccess","src":"3824:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3824:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3795:62:45"},{"expression":{"arguments":[{"expression":{"id":17485,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17476,"src":"3887:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$17186_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3894:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"3887:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17484,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17508,"src":"3874:12:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3874:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17473,"id":17488,"nodeType":"Return","src":"3867:34:45"}]},"documentation":{"id":17466,"nodeType":"StructuredDocumentation","src":"3331:370:45","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":17490,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"3715:11:45","nodeType":"FunctionDefinition","overrides":{"id":17470,"nodeType":"OverrideSpecifier","overrides":[],"src":"3761:8:45"},"parameters":{"id":17469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17468,"mutability":"mutable","name":"data_","nameLocation":"3742:5:45","nodeType":"VariableDeclaration","scope":17490,"src":"3727:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17467,"name":"bytes","nodeType":"ElementaryTypeName","src":"3727:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3726:22:45"},"returnParameters":{"id":17473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17490,"src":"3779:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17471,"name":"bool","nodeType":"ElementaryTypeName","src":"3779:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3778:6:45"},"scope":17509,"src":"3706:202:45","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17507,"nodeType":"Block","src":"4185:62:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4202:20:45","subExpression":{"baseExpression":{"id":17498,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"4203:7:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17500,"indexExpression":{"id":17499,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17493,"src":"4211:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4203:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17502,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"4226:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17503,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17290,"src":"4235:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4226:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4202:38:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17497,"id":17506,"nodeType":"Return","src":"4195:45:45"}]},"documentation":{"id":17491,"nodeType":"StructuredDocumentation","src":"3914:195:45","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":17508,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"4123:12:45","nodeType":"FunctionDefinition","parameters":{"id":17494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17493,"mutability":"mutable","name":"recipient_","nameLocation":"4144:10:45","nodeType":"VariableDeclaration","scope":17508,"src":"4136:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17492,"name":"address","nodeType":"ElementaryTypeName","src":"4136:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4135:20:45"},"returnParameters":{"id":17497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17508,"src":"4179:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17495,"name":"bool","nodeType":"ElementaryTypeName","src":"4179:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4178:6:45"},"scope":17509,"src":"4114:133:45","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":17510,"src":"636:3613:45","usedErrors":[6235,6238,6241,6244,9117,9120,11020,17177,17180,17538,17544,17666,17669,17672],"usedEvents":[6251,6256,6261,9125,17174]}],"src":"36:4214:45"},"id":45},"contracts/shared/BoostError.sol":{"ast":{"absolutePath":"contracts/shared/BoostError.sol","exportedSymbols":{"BoostError":[17566]},"id":17567,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17511,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:46"},{"abstract":false,"baseContracts":[],"canonicalName":"BoostError","contractDependencies":[],"contractKind":"library","documentation":{"id":17512,"nodeType":"StructuredDocumentation","src":"62:239:46","text":"@title BoostError\n @notice Standardized errors for the Boost protocol\n @dev Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing."},"fullyImplemented":true,"id":17566,"linearizedBaseContracts":[17566],"name":"BoostError","nameLocation":"309:10:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17513,"nodeType":"StructuredDocumentation","src":"326:45:46","text":"@notice Thrown when a claim attempt fails"},"errorSelector":"4139d81d","id":17519,"name":"ClaimFailed","nameLocation":"382:11:46","nodeType":"ErrorDefinition","parameters":{"id":17518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17515,"mutability":"mutable","name":"caller","nameLocation":"402:6:46","nodeType":"VariableDeclaration","scope":17519,"src":"394:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17514,"name":"address","nodeType":"ElementaryTypeName","src":"394:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17517,"mutability":"mutable","name":"data","nameLocation":"416:4:46","nodeType":"VariableDeclaration","scope":17519,"src":"410:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17516,"name":"bytes","nodeType":"ElementaryTypeName","src":"410:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"393:28:46"},"src":"376:46:46"},{"documentation":{"id":17520,"nodeType":"StructuredDocumentation","src":"428:69:46","text":"@notice Thrown when there are insufficient funds for an operation"},"errorSelector":"5c54305e","id":17528,"name":"InsufficientFunds","nameLocation":"508:17:46","nodeType":"ErrorDefinition","parameters":{"id":17527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17522,"mutability":"mutable","name":"asset","nameLocation":"534:5:46","nodeType":"VariableDeclaration","scope":17528,"src":"526:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17521,"name":"address","nodeType":"ElementaryTypeName","src":"526:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17524,"mutability":"mutable","name":"available","nameLocation":"549:9:46","nodeType":"VariableDeclaration","scope":17528,"src":"541:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17523,"name":"uint256","nodeType":"ElementaryTypeName","src":"541:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17526,"mutability":"mutable","name":"required","nameLocation":"568:8:46","nodeType":"VariableDeclaration","scope":17528,"src":"560:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17525,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"525:52:46"},"src":"502:76:46"},{"documentation":{"id":17529,"nodeType":"StructuredDocumentation","src":"584:81:46","text":"@notice Thrown when a non-conforming instance for a given type is encountered"},"errorSelector":"e1c44448","id":17535,"name":"InvalidInstance","nameLocation":"676:15:46","nodeType":"ErrorDefinition","parameters":{"id":17534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17531,"mutability":"mutable","name":"expectedInterface","nameLocation":"699:17:46","nodeType":"VariableDeclaration","scope":17535,"src":"692:24:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17530,"name":"bytes4","nodeType":"ElementaryTypeName","src":"692:6:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":17533,"mutability":"mutable","name":"instance","nameLocation":"726:8:46","nodeType":"VariableDeclaration","scope":17535,"src":"718:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17532,"name":"address","nodeType":"ElementaryTypeName","src":"718:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"691:44:46"},"src":"670:66:46"},{"documentation":{"id":17536,"nodeType":"StructuredDocumentation","src":"742:62:46","text":"@notice Thrown when an invalid initialization is attempted"},"errorSelector":"f92ee8a9","id":17538,"name":"InvalidInitialization","nameLocation":"815:21:46","nodeType":"ErrorDefinition","parameters":{"id":17537,"nodeType":"ParameterList","parameters":[],"src":"836:2:46"},"src":"809:30:46"},{"documentation":{"id":17539,"nodeType":"StructuredDocumentation","src":"845:62:46","text":"@notice Thrown when the length of two arrays are not equal"},"errorSelector":"ff633a38","id":17541,"name":"LengthMismatch","nameLocation":"918:14:46","nodeType":"ErrorDefinition","parameters":{"id":17540,"nodeType":"ParameterList","parameters":[],"src":"932:2:46"},"src":"912:23:46"},{"documentation":{"id":17542,"nodeType":"StructuredDocumentation","src":"941:51:46","text":"@notice Thrown when a method is not implemented"},"errorSelector":"d6234725","id":17544,"name":"NotImplemented","nameLocation":"1003:14:46","nodeType":"ErrorDefinition","parameters":{"id":17543,"nodeType":"ParameterList","parameters":[],"src":"1017:2:46"},"src":"997:23:46"},{"documentation":{"id":17545,"nodeType":"StructuredDocumentation","src":"1026:63:46","text":"@notice Thrown when a previously used signature is replayed"},"errorSelector":"cde6ac87","id":17553,"name":"Replayed","nameLocation":"1100:8:46","nodeType":"ErrorDefinition","parameters":{"id":17552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17547,"mutability":"mutable","name":"signer","nameLocation":"1117:6:46","nodeType":"VariableDeclaration","scope":17553,"src":"1109:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17546,"name":"address","nodeType":"ElementaryTypeName","src":"1109:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17549,"mutability":"mutable","name":"hash","nameLocation":"1133:4:46","nodeType":"VariableDeclaration","scope":17553,"src":"1125:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1125:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17551,"mutability":"mutable","name":"signature","nameLocation":"1145:9:46","nodeType":"VariableDeclaration","scope":17553,"src":"1139:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17550,"name":"bytes","nodeType":"ElementaryTypeName","src":"1139:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1108:47:46"},"src":"1094:62:46"},{"documentation":{"id":17554,"nodeType":"StructuredDocumentation","src":"1162:62:46","text":"@notice Thrown when a transfer fails for an unknown reason"},"errorSelector":"bf182be8","id":17562,"name":"TransferFailed","nameLocation":"1235:14:46","nodeType":"ErrorDefinition","parameters":{"id":17561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17556,"mutability":"mutable","name":"asset","nameLocation":"1258:5:46","nodeType":"VariableDeclaration","scope":17562,"src":"1250:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17555,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17558,"mutability":"mutable","name":"to","nameLocation":"1273:2:46","nodeType":"VariableDeclaration","scope":17562,"src":"1265:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17557,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17560,"mutability":"mutable","name":"amount","nameLocation":"1285:6:46","nodeType":"VariableDeclaration","scope":17562,"src":"1277:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17559,"name":"uint256","nodeType":"ElementaryTypeName","src":"1277:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1249:43:46"},"src":"1229:64:46"},{"documentation":{"id":17563,"nodeType":"StructuredDocumentation","src":"1299:60:46","text":"@notice Thrown when the requested action is unauthorized"},"errorSelector":"82b42900","id":17565,"name":"Unauthorized","nameLocation":"1370:12:46","nodeType":"ErrorDefinition","parameters":{"id":17564,"nodeType":"ParameterList","parameters":[],"src":"1382:2:46"},"src":"1364:21:46"}],"scope":17567,"src":"301:1086:46","usedErrors":[17519,17528,17535,17538,17541,17544,17553,17562,17565],"usedEvents":[]}],"src":"36:1352:46"},"id":46},"contracts/shared/BoostLib.sol":{"ast":{"absolutePath":"contracts/shared/BoostLib.sol","exportedSymbols":{"Action":[12758],"AllowList":[13154],"BoostLib":[17652],"Budget":[13669],"Cloneable":[17720],"Incentive":[17260],"LibClone":[10092],"LibZip":[11014],"Validator":[18282]},"id":17653,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17568,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:47"},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":17570,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":10093,"src":"62:52:47","symbolAliases":[{"foreign":{"id":17569,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"70:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibZip.sol","file":"@solady/utils/LibZip.sol","id":17572,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":11015,"src":"115:48:47","symbolAliases":[{"foreign":{"id":17571,"name":"LibZip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"123:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":17574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":12759,"src":"165:52:47","symbolAliases":[{"foreign":{"id":17573,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"173:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":17576,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":13155,"src":"218:61:47","symbolAliases":[{"foreign":{"id":17575,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"226:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17578,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":13670,"src":"280:52:47","symbolAliases":[{"foreign":{"id":17577,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13669,"src":"288:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":17580,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":17721,"src":"333:57:47","symbolAliases":[{"foreign":{"id":17579,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"341:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":17582,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":17261,"src":"391:61:47","symbolAliases":[{"foreign":{"id":17581,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"399:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":17584,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17653,"sourceUnit":18283,"src":"453:61:47","symbolAliases":[{"foreign":{"id":17583,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"461:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"BoostLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":17652,"linearizedBaseContracts":[17652],"name":"BoostLib","nameLocation":"524:8:47","nodeType":"ContractDefinition","nodes":[{"global":false,"id":17587,"libraryName":{"id":17585,"name":"LibClone","nameLocations":["545:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":10092,"src":"545:8:47"},"nodeType":"UsingForDirective","src":"539:27:47","typeName":{"id":17586,"name":"address","nodeType":"ElementaryTypeName","src":"558:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":17590,"libraryName":{"id":17588,"name":"LibZip","nameLocations":["577:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":11014,"src":"577:6:47"},"nodeType":"UsingForDirective","src":"571:23:47","typeName":{"id":17589,"name":"bytes","nodeType":"ElementaryTypeName","src":"588:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"canonicalName":"BoostLib.Boost","documentation":{"id":17591,"nodeType":"StructuredDocumentation","src":"600:48:47","text":"@notice A struct representing a single Boost"},"id":17616,"members":[{"constant":false,"id":17594,"mutability":"mutable","name":"action","nameLocation":"683:6:47","nodeType":"VariableDeclaration","scope":17616,"src":"676:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"},"typeName":{"id":17593,"nodeType":"UserDefinedTypeName","pathNode":{"id":17592,"name":"Action","nameLocations":["676:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":12758,"src":"676:6:47"},"referencedDeclaration":12758,"src":"676:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$12758","typeString":"contract Action"}},"visibility":"internal"},{"constant":false,"id":17597,"mutability":"mutable","name":"validator","nameLocation":"709:9:47","nodeType":"VariableDeclaration","scope":17616,"src":"699:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"},"typeName":{"id":17596,"nodeType":"UserDefinedTypeName","pathNode":{"id":17595,"name":"Validator","nameLocations":["699:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"699:9:47"},"referencedDeclaration":18282,"src":"699:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$18282","typeString":"contract Validator"}},"visibility":"internal"},{"constant":false,"id":17600,"mutability":"mutable","name":"allowList","nameLocation":"738:9:47","nodeType":"VariableDeclaration","scope":17616,"src":"728:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"},"typeName":{"id":17599,"nodeType":"UserDefinedTypeName","pathNode":{"id":17598,"name":"AllowList","nameLocations":["728:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":13154,"src":"728:9:47"},"referencedDeclaration":13154,"src":"728:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13154","typeString":"contract AllowList"}},"visibility":"internal"},{"constant":false,"id":17603,"mutability":"mutable","name":"budget","nameLocation":"764:6:47","nodeType":"VariableDeclaration","scope":17616,"src":"757:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"},"typeName":{"id":17602,"nodeType":"UserDefinedTypeName","pathNode":{"id":17601,"name":"Budget","nameLocations":["757:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":13669,"src":"757:6:47"},"referencedDeclaration":13669,"src":"757:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$13669","typeString":"contract Budget"}},"visibility":"internal"},{"constant":false,"id":17607,"mutability":"mutable","name":"incentives","nameLocation":"792:10:47","nodeType":"VariableDeclaration","scope":17616,"src":"780:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"},"typeName":{"baseType":{"id":17605,"nodeType":"UserDefinedTypeName","pathNode":{"id":17604,"name":"Incentive","nameLocations":["780:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":17260,"src":"780:9:47"},"referencedDeclaration":17260,"src":"780:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$17260","typeString":"contract Incentive"}},"id":17606,"nodeType":"ArrayTypeName","src":"780:11:47","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$17260_$dyn_storage_ptr","typeString":"contract Incentive[]"}},"visibility":"internal"},{"constant":false,"id":17609,"mutability":"mutable","name":"protocolFee","nameLocation":"819:11:47","nodeType":"VariableDeclaration","scope":17616,"src":"812:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17608,"name":"uint64","nodeType":"ElementaryTypeName","src":"812:6:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":17611,"mutability":"mutable","name":"referralFee","nameLocation":"847:11:47","nodeType":"VariableDeclaration","scope":17616,"src":"840:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17610,"name":"uint64","nodeType":"ElementaryTypeName","src":"840:6:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":17613,"mutability":"mutable","name":"maxParticipants","nameLocation":"876:15:47","nodeType":"VariableDeclaration","scope":17616,"src":"868:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17612,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17615,"mutability":"mutable","name":"owner","nameLocation":"909:5:47","nodeType":"VariableDeclaration","scope":17616,"src":"901:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17614,"name":"address","nodeType":"ElementaryTypeName","src":"901:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Boost","nameLocation":"660:5:47","nodeType":"StructDefinition","scope":17652,"src":"653:268:47","visibility":"public"},{"canonicalName":"BoostLib.Target","documentation":{"id":17617,"nodeType":"StructuredDocumentation","src":"927:183:47","text":"@notice A base struct for a contract and its initialization parameters\n @dev This is used to pass the base contract and its initialization parameters in an efficient manner"},"id":17624,"members":[{"constant":false,"id":17619,"mutability":"mutable","name":"isBase","nameLocation":"1144:6:47","nodeType":"VariableDeclaration","scope":17624,"src":"1139:11:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17618,"name":"bool","nodeType":"ElementaryTypeName","src":"1139:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17621,"mutability":"mutable","name":"instance","nameLocation":"1168:8:47","nodeType":"VariableDeclaration","scope":17624,"src":"1160:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17620,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17623,"mutability":"mutable","name":"parameters","nameLocation":"1192:10:47","nodeType":"VariableDeclaration","scope":17624,"src":"1186:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":17622,"name":"bytes","nodeType":"ElementaryTypeName","src":"1186:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Target","nameLocation":"1122:6:47","nodeType":"StructDefinition","scope":17652,"src":"1115:94:47","visibility":"public"},{"body":{"id":17650,"nodeType":"Block","src":"1638:164:47","statements":[{"expression":{"id":17641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17636,"name":"_clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17634,"src":"1648:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17639,"name":"salt_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17629,"src":"1678:5:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":17637,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17627,"src":"1657:1:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1659:18:47","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":9296,"src":"1657:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":17640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1657:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1648:36:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17642,"nodeType":"ExpressionStatement","src":"1648:36:47"},{"expression":{"arguments":[{"id":17647,"name":"initData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17631,"src":"1785:9:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":17644,"name":"_clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17634,"src":"1766:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17643,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"1756:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$17720","typeString":"contract Cloneable"}},"id":17646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1774:10:47","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17697,"src":"1756:28:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":17648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17649,"nodeType":"ExpressionStatement","src":"1756:39:47"}]},"documentation":{"id":17625,"nodeType":"StructuredDocumentation","src":"1215:306:47","text":"@notice Clone and initialize a contract with a deterministic salt\n @param $ The contract to clone and initialize\n @param salt_ The salt for the deterministic clone\n @param initData_ The initialization data for the contract\n @return _clone The cloned and initialized contract"},"id":17651,"implemented":true,"kind":"function","modifiers":[],"name":"cloneAndInitialize","nameLocation":"1535:18:47","nodeType":"FunctionDefinition","parameters":{"id":17632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17627,"mutability":"mutable","name":"$","nameLocation":"1562:1:47","nodeType":"VariableDeclaration","scope":17651,"src":"1554:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17626,"name":"address","nodeType":"ElementaryTypeName","src":"1554:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17629,"mutability":"mutable","name":"salt_","nameLocation":"1573:5:47","nodeType":"VariableDeclaration","scope":17651,"src":"1565:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1565:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17631,"mutability":"mutable","name":"initData_","nameLocation":"1593:9:47","nodeType":"VariableDeclaration","scope":17651,"src":"1580:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17630,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1553:50:47"},"returnParameters":{"id":17635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17634,"mutability":"mutable","name":"_clone","nameLocation":"1630:6:47","nodeType":"VariableDeclaration","scope":17651,"src":"1622:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17633,"name":"address","nodeType":"ElementaryTypeName","src":"1622:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1621:16:47"},"scope":17652,"src":"1526:276:47","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":17653,"src":"516:1288:47","usedErrors":[],"usedEvents":[]}],"src":"36:1769:47"},"id":47},"contracts/shared/Cloneable.sol":{"ast":{"absolutePath":"contracts/shared/Cloneable.sol","exportedSymbols":{"Cloneable":[17720],"ERC165":[2845],"Initializable":[9225]},"id":17721,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17654,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:48"},{"absolutePath":"@solady/utils/Initializable.sol","file":"@solady/utils/Initializable.sol","id":17656,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17721,"sourceUnit":9226,"src":"62:62:48","symbolAliases":[{"foreign":{"id":17655,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9225,"src":"70:13:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":17658,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17721,"sourceUnit":2846,"src":"125:78:48","symbolAliases":[{"foreign":{"id":17657,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"133:6:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":17660,"name":"Initializable","nameLocations":["325:13:48"],"nodeType":"IdentifierPath","referencedDeclaration":9225,"src":"325:13:48"},"id":17661,"nodeType":"InheritanceSpecifier","src":"325:13:48"},{"baseName":{"id":17662,"name":"ERC165","nameLocations":["340:6:48"],"nodeType":"IdentifierPath","referencedDeclaration":2845,"src":"340:6:48"},"id":17663,"nodeType":"InheritanceSpecifier","src":"340:6:48"}],"canonicalName":"Cloneable","contractDependencies":[],"contractKind":"contract","documentation":{"id":17659,"nodeType":"StructuredDocumentation","src":"205:89:48","text":"@title Cloneable\n @notice A contract that can be cloned and initialized only once"},"fullyImplemented":true,"id":17720,"linearizedBaseContracts":[17720,2845,2857,9225],"name":"Cloneable","nameLocation":"312:9:48","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17664,"nodeType":"StructuredDocumentation","src":"353:90:48","text":"@notice Thrown when an inheriting contract does not implement the initializer function"},"errorSelector":"7a7da9f8","id":17666,"name":"InitializerNotImplemented","nameLocation":"454:25:48","nodeType":"ErrorDefinition","parameters":{"id":17665,"nodeType":"ParameterList","parameters":[],"src":"479:2:48"},"src":"448:34:48"},{"documentation":{"id":17667,"nodeType":"StructuredDocumentation","src":"488:202:48","text":"@notice Thrown when the provided initialization data is invalid\n @dev This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)"},"errorSelector":"69d23ad9","id":17669,"name":"InvalidInitializationData","nameLocation":"701:25:48","nodeType":"ErrorDefinition","parameters":{"id":17668,"nodeType":"ParameterList","parameters":[],"src":"726:2:48"},"src":"695:34:48"},{"documentation":{"id":17670,"nodeType":"StructuredDocumentation","src":"735:65:48","text":"@notice Thrown when the contract has already been initialized"},"errorSelector":"6947c876","id":17672,"name":"CloneAlreadyInitialized","nameLocation":"811:23:48","nodeType":"ErrorDefinition","parameters":{"id":17671,"nodeType":"ParameterList","parameters":[],"src":"834:2:48"},"src":"805:32:48"},{"body":{"id":17684,"nodeType":"Block","src":"1086:95:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":17678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17675,"name":"_getInitializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9211,"src":"1100:22:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":17676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1128:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:29:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17682,"nodeType":"IfStatement","src":"1096:67:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17679,"name":"CloneAlreadyInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17672,"src":"1138:23:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1138:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17681,"nodeType":"RevertStatement","src":"1131:32:48"}},{"id":17683,"nodeType":"PlaceholderStatement","src":"1173:1:48"}]},"documentation":{"id":17673,"nodeType":"StructuredDocumentation","src":"843:202:48","text":"@notice A modifier to restrict a function to only be called before initialization\n @dev This is intended to enforce that a function can only be called before the contract has been initialized"},"id":17685,"name":"onlyBeforeInitialization","nameLocation":"1059:24:48","nodeType":"ModifierDefinition","parameters":{"id":17674,"nodeType":"ParameterList","parameters":[],"src":"1083:2:48"},"src":"1050:131:48","virtual":false,"visibility":"internal"},{"body":{"id":17696,"nodeType":"Block","src":"1566:51:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17693,"name":"InitializerNotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17666,"src":"1583:25:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17695,"nodeType":"RevertStatement","src":"1576:34:48"}]},"documentation":{"id":17686,"nodeType":"StructuredDocumentation","src":"1187:311:48","text":"@notice Initialize the clone with the given arbitrary data\n @param - The compressed initialization data (if required)\n @dev The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}\n @dev All implementations must override this function to initialize the contract"},"functionSelector":"439fab91","id":17697,"implemented":true,"kind":"function","modifiers":[{"id":17691,"kind":"modifierInvocation","modifierName":{"id":17690,"name":"initializer","nameLocations":["1554:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1554:11:48"},"nodeType":"ModifierInvocation","src":"1554:11:48"}],"name":"initialize","nameLocation":"1512:10:48","nodeType":"FunctionDefinition","parameters":{"id":17689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17697,"src":"1523:14:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17687,"name":"bytes","nodeType":"ElementaryTypeName","src":"1523:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1522:16:48"},"returnParameters":{"id":17692,"nodeType":"ParameterList","parameters":[],"src":"1566:0:48"},"scope":17720,"src":"1503:114:48","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2844],"body":{"id":17718,"nodeType":"Block","src":"1920:106:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17706,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17700,"src":"1937:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17708,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"1957:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Cloneable_$17720_$","typeString":"type(contract Cloneable)"}],"id":17707,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1952:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:15:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Cloneable_$17720","typeString":"type(contract Cloneable)"}},"id":17710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1968:11:48","memberName":"interfaceId","nodeType":"MemberAccess","src":"1952:27:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1937:42:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":17714,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17700,"src":"2007:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17712,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1983:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Cloneable_$17720_$","typeString":"type(contract super Cloneable)"}},"id":17713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1989:17:48","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2844,"src":"1983:23:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1937:82:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17705,"id":17717,"nodeType":"Return","src":"1930:89:48"}]},"documentation":{"id":17698,"nodeType":"StructuredDocumentation","src":"1623:201:48","text":"@inheritdoc ERC165\n @notice Check if the contract supports the given interface\n @param interfaceId The interface identifier\n @return True if the contract supports the interface"},"functionSelector":"01ffc9a7","id":17719,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1838:17:48","nodeType":"FunctionDefinition","overrides":{"id":17702,"nodeType":"OverrideSpecifier","overrides":[],"src":"1896:8:48"},"parameters":{"id":17701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17700,"mutability":"mutable","name":"interfaceId","nameLocation":"1863:11:48","nodeType":"VariableDeclaration","scope":17719,"src":"1856:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17699,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1856:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1855:20:48"},"returnParameters":{"id":17705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17719,"src":"1914:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17703,"name":"bool","nodeType":"ElementaryTypeName","src":"1914:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1913:6:48"},"scope":17720,"src":"1829:197:48","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17721,"src":"294:1734:48","usedErrors":[9117,9120,17666,17669,17672],"usedEvents":[9125]}],"src":"36:1993:48"},"id":48},"contracts/shared/Mocks.sol":{"ast":{"absolutePath":"contracts/shared/Mocks.sol","exportedSymbols":{"ERC1155":[1067],"ERC20":[8369],"ERC721":[9111],"LibString":[10964],"MockERC1155":[17900],"MockERC20":[17856],"MockERC721":[17798]},"id":17901,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17722,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:49"},{"absolutePath":"@solady/utils/LibString.sol","file":"@solady/utils/LibString.sol","id":17724,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":10965,"src":"62:54:49","symbolAliases":[{"foreign":{"id":17723,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10964,"src":"70:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/tokens/ERC20.sol","file":"@solady/tokens/ERC20.sol","id":17726,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":8370,"src":"117:47:49","symbolAliases":[{"foreign":{"id":17725,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"125:5:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":17728,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":9112,"src":"165:49:49","symbolAliases":[{"foreign":{"id":17727,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"173:6:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","id":17730,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17901,"sourceUnit":1068,"src":"215:74:49","symbolAliases":[{"foreign":{"id":17729,"name":"ERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"223:7:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17732,"name":"ERC721","nameLocations":["702:6:49"],"nodeType":"IdentifierPath","referencedDeclaration":9111,"src":"702:6:49"},"id":17733,"nodeType":"InheritanceSpecifier","src":"702:6:49"}],"canonicalName":"MockERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":17731,"nodeType":"StructuredDocumentation","src":"597:82:49","text":"@title MockERC721\n @notice A mock ERC721 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":17798,"linearizedBaseContracts":[17798,9111],"name":"MockERC721","nameLocation":"688:10:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"18160ddd","id":17735,"mutability":"mutable","name":"totalSupply","nameLocation":"730:11:49","nodeType":"VariableDeclaration","scope":17798,"src":"715:26:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17734,"name":"uint256","nodeType":"ElementaryTypeName","src":"715:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"6817c76c","id":17738,"mutability":"mutable","name":"mintPrice","nameLocation":"762:9:49","nodeType":"VariableDeclaration","scope":17798,"src":"747:36:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17736,"name":"uint256","nodeType":"ElementaryTypeName","src":"747:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e31","id":17737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:9:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"visibility":"public"},{"baseFunctions":[8455],"body":{"id":17746,"nodeType":"Block","src":"851:37:49","statements":[{"expression":{"hexValue":"4d6f636b20455243373231","id":17744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"868:13:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_54fc097defce4be279e9eebd3ed864140ee862e10a1ac2ceb77f264a0e7df328","typeString":"literal_string \"Mock ERC721\""},"value":"Mock ERC721"},"functionReturnParameters":17743,"id":17745,"nodeType":"Return","src":"861:20:49"}]},"functionSelector":"06fdde03","id":17747,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"799:4:49","nodeType":"FunctionDefinition","overrides":{"id":17740,"nodeType":"OverrideSpecifier","overrides":[],"src":"818:8:49"},"parameters":{"id":17739,"nodeType":"ParameterList","parameters":[],"src":"803:2:49"},"returnParameters":{"id":17743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17747,"src":"836:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17741,"name":"string","nodeType":"ElementaryTypeName","src":"836:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"835:15:49"},"scope":17798,"src":"790:98:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8461],"body":{"id":17755,"nodeType":"Block","src":"957:30:49","statements":[{"expression":{"hexValue":"4d4f434b","id":17753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"974:6:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c517c66587983dacbde85dde74f9eb525b7881b1753cee39b9677a9d863af0","typeString":"literal_string \"MOCK\""},"value":"MOCK"},"functionReturnParameters":17752,"id":17754,"nodeType":"Return","src":"967:13:49"}]},"functionSelector":"95d89b41","id":17756,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"903:6:49","nodeType":"FunctionDefinition","overrides":{"id":17749,"nodeType":"OverrideSpecifier","overrides":[],"src":"924:8:49"},"parameters":{"id":17748,"nodeType":"ParameterList","parameters":[],"src":"909:2:49"},"returnParameters":{"id":17752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17756,"src":"942:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17750,"name":"string","nodeType":"ElementaryTypeName","src":"942:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"941:15:49"},"scope":17798,"src":"894:93:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":17775,"nodeType":"Block","src":"1034:158:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1052:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1056:5:49","memberName":"value","nodeType":"MemberAccess","src":"1052:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":17764,"name":"mintPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17738,"src":"1065:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e657921","id":17766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1076:31:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","typeString":"literal_string \"MockERC721: gimme more money!\""},"value":"MockERC721: gimme more money!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","typeString":"literal_string \"MockERC721: gimme more money!\""}],"id":17761,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1044:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17768,"nodeType":"ExpressionStatement","src":"1044:64:49"},{"expression":{"arguments":[{"id":17770,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17758,"src":"1167:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1171:13:49","subExpression":{"id":17771,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17735,"src":"1173:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17769,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"1161:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17774,"nodeType":"ExpressionStatement","src":"1161:24:49"}]},"functionSelector":"6a627842","id":17776,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1002:4:49","nodeType":"FunctionDefinition","parameters":{"id":17759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17758,"mutability":"mutable","name":"to","nameLocation":"1015:2:49","nodeType":"VariableDeclaration","scope":17776,"src":"1007:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17757,"name":"address","nodeType":"ElementaryTypeName","src":"1007:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1006:12:49"},"returnParameters":{"id":17760,"nodeType":"ParameterList","parameters":[],"src":"1034:0:49"},"scope":17798,"src":"993:199:49","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[8469],"body":{"id":17796,"nodeType":"Block","src":"1281:102:49","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f","id":17788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:28:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","typeString":"literal_string \"https://example.com/token/\""},"value":"https://example.com/token/"},{"arguments":[{"id":17791,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17778,"src":"1371:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17789,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10964,"src":"1352:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibString_$10964_$","typeString":"type(library LibString)"}},"id":17790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1362:8:49","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":10334,"src":"1352:18:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1352:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","typeString":"literal_string \"https://example.com/token/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1305:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1309:12:49","memberName":"encodePacked","nodeType":"MemberAccess","src":"1305:16:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1305:70:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1298:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17784,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:49","typeDescriptions":{}}},"id":17794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1298:78:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":17783,"id":17795,"nodeType":"Return","src":"1291:85:49"}]},"functionSelector":"c87b56dd","id":17797,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1207:8:49","nodeType":"FunctionDefinition","overrides":{"id":17780,"nodeType":"OverrideSpecifier","overrides":[],"src":"1248:8:49"},"parameters":{"id":17779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17778,"mutability":"mutable","name":"id","nameLocation":"1224:2:49","nodeType":"VariableDeclaration","scope":17797,"src":"1216:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17777,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:12:49"},"returnParameters":{"id":17783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17797,"src":"1266:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17781,"name":"string","nodeType":"ElementaryTypeName","src":"1266:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1265:15:49"},"scope":17798,"src":"1198:185:49","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17901,"src":"679:706:49","usedErrors":[8379,8382,8385,8388,8391,8394,8397,8400],"usedEvents":[8409,8418,8427]},{"abstract":false,"baseContracts":[{"baseName":{"id":17800,"name":"ERC20","nameLocations":["1489:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":8369,"src":"1489:5:49"},"id":17801,"nodeType":"InheritanceSpecifier","src":"1489:5:49"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":17799,"nodeType":"StructuredDocumentation","src":"1387:80:49","text":"@title MockERC20\n @notice A mock ERC20 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":17856,"linearizedBaseContracts":[17856,8369],"name":"MockERC20","nameLocation":"1476:9:49","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[8038],"body":{"id":17809,"nodeType":"Block","src":"1562:36:49","statements":[{"expression":{"hexValue":"4d6f636b204552433230","id":17807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1579:12:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5c9260bf133e670eeaf4d41f5c4289fc23bb146bf11ba8fa70a2ea91ba1a330","typeString":"literal_string \"Mock ERC20\""},"value":"Mock ERC20"},"functionReturnParameters":17806,"id":17808,"nodeType":"Return","src":"1572:19:49"}]},"functionSelector":"06fdde03","id":17810,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1510:4:49","nodeType":"FunctionDefinition","overrides":{"id":17803,"nodeType":"OverrideSpecifier","overrides":[],"src":"1529:8:49"},"parameters":{"id":17802,"nodeType":"ParameterList","parameters":[],"src":"1514:2:49"},"returnParameters":{"id":17806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17810,"src":"1547:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17804,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1546:15:49"},"scope":17856,"src":"1501:97:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8044],"body":{"id":17818,"nodeType":"Block","src":"1667:30:49","statements":[{"expression":{"hexValue":"4d4f434b","id":17816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:6:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c517c66587983dacbde85dde74f9eb525b7881b1753cee39b9677a9d863af0","typeString":"literal_string \"MOCK\""},"value":"MOCK"},"functionReturnParameters":17815,"id":17817,"nodeType":"Return","src":"1677:13:49"}]},"functionSelector":"95d89b41","id":17819,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1613:6:49","nodeType":"FunctionDefinition","overrides":{"id":17812,"nodeType":"OverrideSpecifier","overrides":[],"src":"1634:8:49"},"parameters":{"id":17811,"nodeType":"ParameterList","parameters":[],"src":"1619:2:49"},"returnParameters":{"id":17815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17819,"src":"1652:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17813,"name":"string","nodeType":"ElementaryTypeName","src":"1652:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1651:15:49"},"scope":17856,"src":"1604:93:49","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":17831,"nodeType":"Block","src":"1752:34:49","statements":[{"expression":{"arguments":[{"id":17827,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17821,"src":"1768:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17828,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17823,"src":"1772:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17826,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8270,"src":"1762:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1762:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17830,"nodeType":"ExpressionStatement","src":"1762:17:49"}]},"functionSelector":"40c10f19","id":17832,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1712:4:49","nodeType":"FunctionDefinition","parameters":{"id":17824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17821,"mutability":"mutable","name":"to","nameLocation":"1725:2:49","nodeType":"VariableDeclaration","scope":17832,"src":"1717:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17820,"name":"address","nodeType":"ElementaryTypeName","src":"1717:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17823,"mutability":"mutable","name":"amount","nameLocation":"1737:6:49","nodeType":"VariableDeclaration","scope":17832,"src":"1729:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17822,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1716:28:49"},"returnParameters":{"id":17825,"nodeType":"ParameterList","parameters":[],"src":"1752:0:49"},"scope":17856,"src":"1703:83:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17854,"nodeType":"Block","src":"1856:110:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17840,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1874:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1878:5:49","memberName":"value","nodeType":"MemberAccess","src":"1874:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17842,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17836,"src":"1887:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":17843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:3:49","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1887:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1874:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921","id":17846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1901:30:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","typeString":"literal_string \"MockERC20: gimme more money!\""},"value":"MockERC20: gimme more money!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","typeString":"literal_string \"MockERC20: gimme more money!\""}],"id":17839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1866:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:66:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17848,"nodeType":"ExpressionStatement","src":"1866:66:49"},{"expression":{"arguments":[{"id":17850,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17834,"src":"1948:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17851,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17836,"src":"1952:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17849,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8270,"src":"1942:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1942:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17853,"nodeType":"ExpressionStatement","src":"1942:17:49"}]},"functionSelector":"17d304b0","id":17855,"implemented":true,"kind":"function","modifiers":[],"name":"mintPayable","nameLocation":"1801:11:49","nodeType":"FunctionDefinition","parameters":{"id":17837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17834,"mutability":"mutable","name":"to","nameLocation":"1821:2:49","nodeType":"VariableDeclaration","scope":17855,"src":"1813:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17833,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17836,"mutability":"mutable","name":"amount","nameLocation":"1833:6:49","nodeType":"VariableDeclaration","scope":17855,"src":"1825:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1825:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:28:49"},"returnParameters":{"id":17838,"nodeType":"ParameterList","parameters":[],"src":"1856:0:49"},"scope":17856,"src":"1792:174:49","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":17901,"src":"1467:501:49","usedErrors":[7956,7959,7962,7965,7968,7971,7974],"usedEvents":[7983,7992]},{"abstract":false,"baseContracts":[{"baseName":{"id":17858,"name":"ERC1155","nameLocations":["2078:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":1067,"src":"2078:7:49"},"id":17859,"nodeType":"InheritanceSpecifier","src":"2078:7:49"}],"canonicalName":"MockERC1155","contractDependencies":[],"contractKind":"contract","documentation":{"id":17857,"nodeType":"StructuredDocumentation","src":"1970:84:49","text":"@title MockERC1155\n @notice A mock ERC1155 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":17900,"linearizedBaseContracts":[17900,1067,150,1248,1190,2845,2857,2320],"name":"MockERC1155","nameLocation":"2063:11:49","nodeType":"ContractDefinition","nodes":[{"body":{"id":17865,"nodeType":"Block","src":"2148:2:49","statements":[]},"id":17866,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f7b69647d","id":17862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2114:32:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_235f953ca31be89610a3901e42cadd905e053724b9df69362aa305b503d4ed6d","typeString":"literal_string \"https://example.com/token/{id}\""},"value":"https://example.com/token/{id}"}],"id":17863,"kind":"baseConstructorSpecifier","modifierName":{"id":17861,"name":"ERC1155","nameLocations":["2106:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":1067,"src":"2106:7:49"},"nodeType":"ModifierInvocation","src":"2106:41:49"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17860,"nodeType":"ParameterList","parameters":[],"src":"2103:2:49"},"returnParameters":{"id":17864,"nodeType":"ParameterList","parameters":[],"src":"2148:0:49"},"scope":17900,"src":"2092:58:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17882,"nodeType":"Block","src":"2217:42:49","statements":[{"expression":{"arguments":[{"id":17876,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17868,"src":"2233:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17877,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17870,"src":"2237:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17878,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17872,"src":"2241:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":17879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2249:2:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":17875,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":880,"src":"2227:5:49","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":17880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17881,"nodeType":"ExpressionStatement","src":"2227:25:49"}]},"functionSelector":"156e29f6","id":17883,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"2165:4:49","nodeType":"FunctionDefinition","parameters":{"id":17873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17868,"mutability":"mutable","name":"to","nameLocation":"2178:2:49","nodeType":"VariableDeclaration","scope":17883,"src":"2170:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17867,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17870,"mutability":"mutable","name":"id","nameLocation":"2190:2:49","nodeType":"VariableDeclaration","scope":17883,"src":"2182:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2182:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17872,"mutability":"mutable","name":"amount","nameLocation":"2202:6:49","nodeType":"VariableDeclaration","scope":17883,"src":"2194:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2194:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2169:40:49"},"returnParameters":{"id":17874,"nodeType":"ParameterList","parameters":[],"src":"2217:0:49"},"scope":17900,"src":"2156:103:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17898,"nodeType":"Block","src":"2328:40:49","statements":[{"expression":{"arguments":[{"id":17893,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17885,"src":"2344:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17894,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17887,"src":"2350:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17895,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17889,"src":"2354:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17892,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"2338:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":17896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17897,"nodeType":"ExpressionStatement","src":"2338:23:49"}]},"functionSelector":"f5298aca","id":17899,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2274:4:49","nodeType":"FunctionDefinition","parameters":{"id":17890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17885,"mutability":"mutable","name":"from","nameLocation":"2287:4:49","nodeType":"VariableDeclaration","scope":17899,"src":"2279:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17884,"name":"address","nodeType":"ElementaryTypeName","src":"2279:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17887,"mutability":"mutable","name":"id","nameLocation":"2301:2:49","nodeType":"VariableDeclaration","scope":17899,"src":"2293:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17886,"name":"uint256","nodeType":"ElementaryTypeName","src":"2293:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17889,"mutability":"mutable","name":"amount","nameLocation":"2313:6:49","nodeType":"VariableDeclaration","scope":17899,"src":"2305:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17888,"name":"uint256","nodeType":"ElementaryTypeName","src":"2305:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2278:42:49"},"returnParameters":{"id":17891,"nodeType":"ParameterList","parameters":[],"src":"2328:0:49"},"scope":17900,"src":"2265:103:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":17901,"src":"2054:316:49","usedErrors":[115,120,125,132,137,142,149],"usedEvents":[1087,1102,1111,1118]}],"src":"36:2335:49"},"id":49},"contracts/tokens/Points.sol":{"ast":{"absolutePath":"contracts/tokens/Points.sol","exportedSymbols":{"ERC20":[8369],"Initializable":[9225],"OwnableRoles":[7950],"Points":[18026]},"id":18027,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17902,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"32:24:50"},{"absolutePath":"@solady/tokens/ERC20.sol","file":"@solady/tokens/ERC20.sol","id":17904,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18027,"sourceUnit":8370,"src":"58:47:50","symbolAliases":[{"foreign":{"id":17903,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"66:5:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/Initializable.sol","file":"@solady/utils/Initializable.sol","id":17906,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18027,"sourceUnit":9226,"src":"106:62:50","symbolAliases":[{"foreign":{"id":17905,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9225,"src":"114:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/auth/OwnableRoles.sol","file":"@solady/auth/OwnableRoles.sol","id":17908,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18027,"sourceUnit":7951,"src":"169:59:50","symbolAliases":[{"foreign":{"id":17907,"name":"OwnableRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"177:12:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17910,"name":"ERC20","nameLocations":["413:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":8369,"src":"413:5:50"},"id":17911,"nodeType":"InheritanceSpecifier","src":"413:5:50"},{"baseName":{"id":17912,"name":"Initializable","nameLocations":["420:13:50"],"nodeType":"IdentifierPath","referencedDeclaration":9225,"src":"420:13:50"},"id":17913,"nodeType":"InheritanceSpecifier","src":"420:13:50"},{"baseName":{"id":17914,"name":"OwnableRoles","nameLocations":["435:12:50"],"nodeType":"IdentifierPath","referencedDeclaration":7950,"src":"435:12:50"},"id":17915,"nodeType":"InheritanceSpecifier","src":"435:12:50"}],"canonicalName":"Points","contractDependencies":[],"contractKind":"contract","documentation":{"id":17909,"nodeType":"StructuredDocumentation","src":"230:164:50","text":"@title Points\n @notice A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred."},"fullyImplemented":true,"id":18026,"linearizedBaseContracts":[18026,7950,6423,9225,8369],"name":"Points","nameLocation":"403:6:50","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":17917,"mutability":"mutable","name":"_name","nameLocation":"469:5:50","nodeType":"VariableDeclaration","scope":18026,"src":"454:20:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17916,"name":"string","nodeType":"ElementaryTypeName","src":"454:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":17919,"mutability":"mutable","name":"_symbol","nameLocation":"495:7:50","nodeType":"VariableDeclaration","scope":18026,"src":"480:22:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17918,"name":"string","nodeType":"ElementaryTypeName","src":"480:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":true,"documentation":{"id":17920,"nodeType":"StructuredDocumentation","src":"509:39:50","text":"@notice The role for issuing points"},"functionSelector":"82aefa24","id":17925,"mutability":"constant","name":"ISSUER_ROLE","nameLocation":"577:11:50","nodeType":"VariableDeclaration","scope":18026,"src":"553:44:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17921,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":17924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":17922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"591:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":17923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"596:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"591:6:50","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"public"},{"documentation":{"id":17926,"nodeType":"StructuredDocumentation","src":"604:61:50","text":"@notice Thrown when an attempt is made to transfer points"},"errorSelector":"9cbe2357","id":17928,"name":"NonTransferable","nameLocation":"676:15:50","nodeType":"ErrorDefinition","parameters":{"id":17927,"nodeType":"ParameterList","parameters":[],"src":"691:2:50"},"src":"670:24:50"},{"body":{"id":17958,"nodeType":"Block","src":"1000:140:50","statements":[{"expression":{"arguments":[{"expression":{"id":17941,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1027:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1031:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1027:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17940,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1010:16:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17944,"nodeType":"ExpressionStatement","src":"1010:28:50"},{"expression":{"id":17947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17945,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17917,"src":"1049:5:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17946,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17931,"src":"1057:5:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1049:13:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17948,"nodeType":"ExpressionStatement","src":"1049:13:50"},{"expression":{"id":17951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17949,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17919,"src":"1072:7:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17950,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17933,"src":"1082:7:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1072:17:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17952,"nodeType":"ExpressionStatement","src":"1072:17:50"},{"expression":{"arguments":[{"id":17954,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17935,"src":"1112:7:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17955,"name":"ISSUER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"1121:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17953,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6482,"src":"1100:11:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17957,"nodeType":"ExpressionStatement","src":"1100:33:50"}]},"documentation":{"id":17929,"nodeType":"StructuredDocumentation","src":"700:193:50","text":"@notice Initialize the Points contract\n @param name_ The name of the token\n @param symbol_ The symbol of the token\n @param minter_ The initial holder of the minter role"},"functionSelector":"077f224a","id":17959,"implemented":true,"kind":"function","modifiers":[{"id":17938,"kind":"modifierInvocation","modifierName":{"id":17937,"name":"initializer","nameLocations":["988:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"988:11:50"},"nodeType":"ModifierInvocation","src":"988:11:50"}],"name":"initialize","nameLocation":"907:10:50","nodeType":"FunctionDefinition","parameters":{"id":17936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17931,"mutability":"mutable","name":"name_","nameLocation":"932:5:50","nodeType":"VariableDeclaration","scope":17959,"src":"918:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17930,"name":"string","nodeType":"ElementaryTypeName","src":"918:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17933,"mutability":"mutable","name":"symbol_","nameLocation":"953:7:50","nodeType":"VariableDeclaration","scope":17959,"src":"939:21:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17932,"name":"string","nodeType":"ElementaryTypeName","src":"939:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17935,"mutability":"mutable","name":"minter_","nameLocation":"970:7:50","nodeType":"VariableDeclaration","scope":17959,"src":"962:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17934,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"917:61:50"},"returnParameters":{"id":17939,"nodeType":"ParameterList","parameters":[],"src":"1000:0:50"},"scope":18026,"src":"898:242:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17975,"nodeType":"Block","src":"1396:34:50","statements":[{"expression":{"arguments":[{"id":17971,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"1412:2:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17972,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17964,"src":"1416:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17970,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8270,"src":"1406:5:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1406:17:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17974,"nodeType":"ExpressionStatement","src":"1406:17:50"}]},"documentation":{"id":17960,"nodeType":"StructuredDocumentation","src":"1146:163:50","text":"@notice Issue `amount` points and assign them to `to`\n @param to The address to assign the points to\n @param amount The amount of points to issue"},"functionSelector":"867904b4","id":17976,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17967,"name":"ISSUER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"1383:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17968,"kind":"modifierInvocation","modifierName":{"id":17966,"name":"onlyOwnerOrRoles","nameLocations":["1366:16:50"],"nodeType":"IdentifierPath","referencedDeclaration":6658,"src":"1366:16:50"},"nodeType":"ModifierInvocation","src":"1366:29:50"}],"name":"issue","nameLocation":"1323:5:50","nodeType":"FunctionDefinition","parameters":{"id":17965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17962,"mutability":"mutable","name":"to","nameLocation":"1337:2:50","nodeType":"VariableDeclaration","scope":17976,"src":"1329:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17961,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17964,"mutability":"mutable","name":"amount","nameLocation":"1349:6:50","nodeType":"VariableDeclaration","scope":17976,"src":"1341:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17963,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1328:28:50"},"returnParameters":{"id":17969,"nodeType":"ParameterList","parameters":[],"src":"1396:0:50"},"scope":18026,"src":"1314:116:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8038],"body":{"id":17985,"nodeType":"Block","src":"1569:29:50","statements":[{"expression":{"id":17983,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17917,"src":"1586:5:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":17982,"id":17984,"nodeType":"Return","src":"1579:12:50"}]},"documentation":{"id":17977,"nodeType":"StructuredDocumentation","src":"1436:59:50","text":"@inheritdoc ERC20\n @return The name of the token"},"functionSelector":"06fdde03","id":17986,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1509:4:50","nodeType":"FunctionDefinition","overrides":{"id":17979,"nodeType":"OverrideSpecifier","overrides":[],"src":"1536:8:50"},"parameters":{"id":17978,"nodeType":"ParameterList","parameters":[],"src":"1513:2:50"},"returnParameters":{"id":17982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17986,"src":"1554:13:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17980,"name":"string","nodeType":"ElementaryTypeName","src":"1554:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1553:15:50"},"scope":18026,"src":"1500:98:50","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8044],"body":{"id":17995,"nodeType":"Block","src":"1741:31:50","statements":[{"expression":{"id":17993,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17919,"src":"1758:7:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":17992,"id":17994,"nodeType":"Return","src":"1751:14:50"}]},"documentation":{"id":17987,"nodeType":"StructuredDocumentation","src":"1604:61:50","text":"@inheritdoc ERC20\n @return The symbol of the token"},"functionSelector":"95d89b41","id":17996,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1679:6:50","nodeType":"FunctionDefinition","overrides":{"id":17989,"nodeType":"OverrideSpecifier","overrides":[],"src":"1708:8:50"},"parameters":{"id":17988,"nodeType":"ParameterList","parameters":[],"src":"1685:2:50"},"returnParameters":{"id":17992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17996,"src":"1726:13:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17990,"name":"string","nodeType":"ElementaryTypeName","src":"1726:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1725:15:50"},"scope":18026,"src":"1670:102:50","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8357],"body":{"id":18024,"nodeType":"Block","src":"2077:85:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18007,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"2091:4:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2107:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2099:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18008,"name":"address","nodeType":"ElementaryTypeName","src":"2099:7:50","typeDescriptions":{}}},"id":18011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2099:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2091:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18013,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18001,"src":"2113:2:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2119:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18014,"name":"address","nodeType":"ElementaryTypeName","src":"2119:7:50","typeDescriptions":{}}},"id":18017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2119:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2113:16:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2091:38:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18023,"nodeType":"IfStatement","src":"2087:68:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18020,"name":"NonTransferable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17928,"src":"2138:15:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:17:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18022,"nodeType":"RevertStatement","src":"2131:24:50"}}]},"documentation":{"id":17997,"nodeType":"StructuredDocumentation","src":"1778:203:50","text":"@inheritdoc ERC20\n @notice A hook that is called before any transfer of points\n @dev Reverts if the transfer is not a mint or burn (i.e. if neither `from` nor `to` are the zero address)"},"id":18025,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"1995:20:50","nodeType":"FunctionDefinition","overrides":{"id":18005,"nodeType":"OverrideSpecifier","overrides":[],"src":"2068:8:50"},"parameters":{"id":18004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17999,"mutability":"mutable","name":"from","nameLocation":"2024:4:50","nodeType":"VariableDeclaration","scope":18025,"src":"2016:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17998,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18001,"mutability":"mutable","name":"to","nameLocation":"2038:2:50","nodeType":"VariableDeclaration","scope":18025,"src":"2030:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18000,"name":"address","nodeType":"ElementaryTypeName","src":"2030:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18025,"src":"2042:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2042:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2015:35:50"},"returnParameters":{"id":18006,"nodeType":"ParameterList","parameters":[],"src":"2077:0:50"},"scope":18026,"src":"1986:176:50","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":18027,"src":"394:1770:50","usedErrors":[6235,6238,6241,6244,7956,7959,7962,7965,7968,7971,7974,9117,9120,17928],"usedEvents":[6251,6256,6261,6437,7983,7992,9125]}],"src":"32:2133:50"},"id":50},"contracts/validators/SignerValidator.sol":{"ast":{"absolutePath":"contracts/validators/SignerValidator.sol","exportedSymbols":{"BoostError":[17566],"IERC1271":[13],"SignatureCheckerLib":[11528],"SignerValidator":[18224],"Validator":[18282]},"id":18225,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18028,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:51"},{"absolutePath":"@solady/utils/SignatureCheckerLib.sol","file":"@solady/utils/SignatureCheckerLib.sol","id":18030,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":11529,"src":"62:74:51","symbolAliases":[{"foreign":{"id":18029,"name":"SignatureCheckerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"70:19:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1271.sol","file":"@openzeppelin/contracts/interfaces/IERC1271.sol","id":18032,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":14,"src":"137:73:51","symbolAliases":[{"foreign":{"id":18031,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"145:8:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":18034,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":17567,"src":"212:59:51","symbolAliases":[{"foreign":{"id":18033,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"220:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":18036,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18225,"sourceUnit":18283,"src":"272:61:51","symbolAliases":[{"foreign":{"id":18035,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"280:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18038,"name":"Validator","nameLocations":["543:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":18282,"src":"543:9:51"},"id":18039,"nodeType":"InheritanceSpecifier","src":"543:9:51"}],"canonicalName":"SignerValidator","contractDependencies":[],"contractKind":"contract","documentation":{"id":18037,"nodeType":"StructuredDocumentation","src":"335:180:51","text":"@title Signer Validator\n @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers"},"fullyImplemented":true,"id":18224,"linearizedBaseContracts":[18224,18282,17720,2845,2857,9225,6423],"name":"SignerValidator","nameLocation":"524:15:51","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18042,"libraryName":{"id":18040,"name":"SignatureCheckerLib","nameLocations":["565:19:51"],"nodeType":"IdentifierPath","referencedDeclaration":11528,"src":"565:19:51"},"nodeType":"UsingForDirective","src":"559:38:51","typeName":{"id":18041,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":18043,"nodeType":"StructuredDocumentation","src":"603:38:51","text":"@dev The set of authorized signers"},"functionSelector":"736c0d5b","id":18047,"mutability":"mutable","name":"signers","nameLocation":"678:7:51","nodeType":"VariableDeclaration","scope":18224,"src":"646:39:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":18046,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18044,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"646:24:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18045,"name":"bool","nodeType":"ElementaryTypeName","src":"665:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":18048,"nodeType":"StructuredDocumentation","src":"692:55:51","text":"@dev The set of used hashes (for replay protection)"},"id":18052,"mutability":"mutable","name":"_used","nameLocation":"785:5:51","nodeType":"VariableDeclaration","scope":18224,"src":"752:38:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":18051,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"760:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"752:24:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18050,"name":"bool","nodeType":"ElementaryTypeName","src":"771:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"body":{"id":18059,"nodeType":"Block","src":"1052:39:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18056,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"1062:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18058,"nodeType":"ExpressionStatement","src":"1062:22:51"}]},"documentation":{"id":18053,"nodeType":"StructuredDocumentation","src":"797:236:51","text":"@notice Construct a new SignerValidator\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":18060,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18054,"nodeType":"ParameterList","parameters":[],"src":"1049:2:51"},"returnParameters":{"id":18055,"nodeType":"ParameterList","parameters":[],"src":"1052:0:51"},"scope":18224,"src":"1038:53:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17697],"body":{"id":18110,"nodeType":"Block","src":"1399:223:51","statements":[{"assignments":[18073],"declarations":[{"constant":false,"id":18073,"mutability":"mutable","name":"signers_","nameLocation":"1427:8:51","nodeType":"VariableDeclaration","scope":18110,"src":"1410:25:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":18071,"name":"address","nodeType":"ElementaryTypeName","src":"1410:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18072,"nodeType":"ArrayTypeName","src":"1410:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":18082,"initialValue":{"arguments":[{"id":18076,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18063,"src":"1450:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"baseExpression":{"id":18078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1458:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18077,"name":"address","nodeType":"ElementaryTypeName","src":"1458:7:51","typeDescriptions":{}}},"id":18079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1458:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":18080,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1457:11:51","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}],"expression":{"id":18074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1439:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1443:6:51","memberName":"decode","nodeType":"MemberAccess","src":"1439:10:51","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1439:30:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1409:60:51"},{"expression":{"arguments":[{"baseExpression":{"id":18084,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"1496:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18086,"indexExpression":{"hexValue":"30","id":18085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1505:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1496:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18083,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1479:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1479:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18088,"nodeType":"ExpressionStatement","src":"1479:29:51"},{"body":{"id":18108,"nodeType":"Block","src":"1564:52:51","statements":[{"expression":{"id":18106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18100,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18047,"src":"1578:7:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18104,"indexExpression":{"baseExpression":{"id":18101,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"1586:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18103,"indexExpression":{"id":18102,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1595:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1586:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1578:20:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":18105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1601:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1578:27:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18107,"nodeType":"ExpressionStatement","src":"1578:27:51"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18093,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1538:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":18094,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"1542:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1551:6:51","memberName":"length","nodeType":"MemberAccess","src":"1542:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1538:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18109,"initializationExpression":{"assignments":[18090],"declarations":[{"constant":false,"id":18090,"mutability":"mutable","name":"i","nameLocation":"1531:1:51","nodeType":"VariableDeclaration","scope":18109,"src":"1523:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18089,"name":"uint256","nodeType":"ElementaryTypeName","src":"1523:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18092,"initialValue":{"hexValue":"30","id":18091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1535:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1523:13:51"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":18098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1559:3:51","subExpression":{"id":18097,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1559:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18099,"nodeType":"ExpressionStatement","src":"1559:3:51"},"nodeType":"ForStatement","src":"1518:98:51"}]},"documentation":{"id":18061,"nodeType":"StructuredDocumentation","src":"1097:219:51","text":"@notice Initialize the contract with the list of authorized signers\n @param data_ The compressed list of authorized signers\n @dev The first address in the list will be the initial owner of the contract"},"functionSelector":"439fab91","id":18111,"implemented":true,"kind":"function","modifiers":[{"id":18067,"kind":"modifierInvocation","modifierName":{"id":18066,"name":"initializer","nameLocations":["1387:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":9154,"src":"1387:11:51"},"nodeType":"ModifierInvocation","src":"1387:11:51"}],"name":"initialize","nameLocation":"1330:10:51","nodeType":"FunctionDefinition","overrides":{"id":18065,"nodeType":"OverrideSpecifier","overrides":[],"src":"1378:8:51"},"parameters":{"id":18064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18063,"mutability":"mutable","name":"data_","nameLocation":"1356:5:51","nodeType":"VariableDeclaration","scope":18111,"src":"1341:20:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18062,"name":"bytes","nodeType":"ElementaryTypeName","src":"1341:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1340:22:51"},"returnParameters":{"id":18068,"nodeType":"ParameterList","parameters":[],"src":"1399:0:51"},"scope":18224,"src":"1321:301:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[18258],"body":{"id":18175,"nodeType":"Block","src":"2146:511:51","statements":[{"assignments":[18121,18123,18125],"declarations":[{"constant":false,"id":18121,"mutability":"mutable","name":"signer_","nameLocation":"2165:7:51","nodeType":"VariableDeclaration","scope":18175,"src":"2157:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18120,"name":"address","nodeType":"ElementaryTypeName","src":"2157:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18123,"mutability":"mutable","name":"hash_","nameLocation":"2182:5:51","nodeType":"VariableDeclaration","scope":18175,"src":"2174:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2174:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18125,"mutability":"mutable","name":"signature_","nameLocation":"2202:10:51","nodeType":"VariableDeclaration","scope":18175,"src":"2189:23:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18124,"name":"bytes","nodeType":"ElementaryTypeName","src":"2189:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18137,"initialValue":{"arguments":[{"id":18128,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18114,"src":"2227:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2235:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18129,"name":"address","nodeType":"ElementaryTypeName","src":"2235:7:51","typeDescriptions":{}}},{"id":18132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2244:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2244:7:51","typeDescriptions":{}}},{"id":18134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2253:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18133,"name":"bytes","nodeType":"ElementaryTypeName","src":"2253:5:51","typeDescriptions":{}}}],"id":18135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2234:25:51","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes32),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes32),type(bytes storage pointer))"}],"expression":{"id":18126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2216:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2220:6:51","memberName":"decode","nodeType":"MemberAccess","src":"2216:10:51","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2216:44:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes32_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes32,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2156:104:51"},{"condition":{"id":18141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2275:17:51","subExpression":{"baseExpression":{"id":18138,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18047,"src":"2276:7:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18140,"indexExpression":{"id":18139,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"2284:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2276:16:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18147,"nodeType":"IfStatement","src":"2271:55:51","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18142,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2301:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":18144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2312:12:51","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":17565,"src":"2301:23:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2301:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18146,"nodeType":"RevertStatement","src":"2294:32:51"}},{"condition":{"baseExpression":{"id":18148,"name":"_used","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18052,"src":"2340:5:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18150,"indexExpression":{"id":18149,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2346:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2340:12:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18159,"nodeType":"IfStatement","src":"2336:72:51","trueBody":{"errorCall":{"arguments":[{"id":18154,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"2381:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18155,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2390:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18156,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"2397:10:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18151,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2361:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":18153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2372:8:51","memberName":"Replayed","nodeType":"MemberAccess","referencedDeclaration":17553,"src":"2361:19:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory) pure"}},"id":18157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:47:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18158,"nodeType":"RevertStatement","src":"2354:54:51"}},{"expression":{"id":18164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18160,"name":"_used","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18052,"src":"2471:5:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18162,"indexExpression":{"id":18161,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2477:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2471:12:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":18163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2486:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2471:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18165,"nodeType":"ExpressionStatement","src":"2471:19:51"},{"expression":{"arguments":[{"arguments":[{"id":18170,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18123,"src":"2631:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18168,"name":"SignatureCheckerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11528,"src":"2588:19:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureCheckerLib_$11528_$","typeString":"type(library SignatureCheckerLib)"}},"id":18169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2608:22:51","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":11509,"src":"2588:42:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":18171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2588:49:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18172,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18125,"src":"2639:10:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18166,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"2560:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2568:19:51","memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":11389,"src":"2560:27:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":18173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2560:90:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18119,"id":18174,"nodeType":"Return","src":"2553:97:51"}]},"documentation":{"id":18112,"nodeType":"StructuredDocumentation","src":"1628:440:51","text":"@notice Validate that the action has been completed successfully\n @param data_ The data payload for the validation check\n @return True if the action has been validated based on the data payload\n @dev The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)\n @dev The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer"},"functionSelector":"c16e50ef","id":18176,"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"2082:8:51","nodeType":"FunctionDefinition","overrides":{"id":18116,"nodeType":"OverrideSpecifier","overrides":[],"src":"2122:8:51"},"parameters":{"id":18115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18114,"mutability":"mutable","name":"data_","nameLocation":"2106:5:51","nodeType":"VariableDeclaration","scope":18176,"src":"2091:20:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18113,"name":"bytes","nodeType":"ElementaryTypeName","src":"2091:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2090:22:51"},"returnParameters":{"id":18119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18176,"src":"2140:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18117,"name":"bool","nodeType":"ElementaryTypeName","src":"2140:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2139:6:51"},"scope":18224,"src":"2073:584:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18222,"nodeType":"Block","src":"2935:212:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18188,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18180,"src":"2949:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2958:6:51","memberName":"length","nodeType":"MemberAccess","src":"2949:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18190,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18183,"src":"2968:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":18191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2980:6:51","memberName":"length","nodeType":"MemberAccess","src":"2968:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2949:37:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18198,"nodeType":"IfStatement","src":"2945:77:51","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18193,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2995:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$17566_$","typeString":"type(library BoostError)"}},"id":18195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3006:14:51","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":17541,"src":"2995:25:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2995:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18197,"nodeType":"RevertStatement","src":"2988:34:51"}},{"body":{"id":18220,"nodeType":"Block","src":"3079:62:51","statements":[{"expression":{"id":18218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18210,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18047,"src":"3093:7:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18214,"indexExpression":{"baseExpression":{"id":18211,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18180,"src":"3101:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18213,"indexExpression":{"id":18212,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3110:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3101:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3093:20:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":18215,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18183,"src":"3116:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":18217,"indexExpression":{"id":18216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3128:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3116:14:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3093:37:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18219,"nodeType":"ExpressionStatement","src":"3093:37:51"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3053:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":18204,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18180,"src":"3057:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3066:6:51","memberName":"length","nodeType":"MemberAccess","src":"3057:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3053:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18221,"initializationExpression":{"assignments":[18200],"declarations":[{"constant":false,"id":18200,"mutability":"mutable","name":"i","nameLocation":"3046:1:51","nodeType":"VariableDeclaration","scope":18221,"src":"3038:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18199,"name":"uint256","nodeType":"ElementaryTypeName","src":"3038:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18202,"initialValue":{"hexValue":"30","id":18201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3050:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3038:13:51"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":18208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3074:3:51","subExpression":{"id":18207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"3074:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18209,"nodeType":"ExpressionStatement","src":"3074:3:51"},"nodeType":"ForStatement","src":"3033:108:51"}]},"documentation":{"id":18177,"nodeType":"StructuredDocumentation","src":"2663:167:51","text":"@notice Set the authorized status of a signer\n @param signers_ The list of signers to update\n @param authorized_ The authorized status of each signer"},"functionSelector":"4359d28a","id":18223,"implemented":true,"kind":"function","modifiers":[{"id":18186,"kind":"modifierInvocation","modifierName":{"id":18185,"name":"onlyOwner","nameLocations":["2925:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":6422,"src":"2925:9:51"},"nodeType":"ModifierInvocation","src":"2925:9:51"}],"name":"setAuthorized","nameLocation":"2844:13:51","nodeType":"FunctionDefinition","parameters":{"id":18184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18180,"mutability":"mutable","name":"signers_","nameLocation":"2877:8:51","nodeType":"VariableDeclaration","scope":18223,"src":"2858:27:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":18178,"name":"address","nodeType":"ElementaryTypeName","src":"2858:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18179,"nodeType":"ArrayTypeName","src":"2858:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":18183,"mutability":"mutable","name":"authorized_","nameLocation":"2903:11:51","nodeType":"VariableDeclaration","scope":18223,"src":"2887:27:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":18181,"name":"bool","nodeType":"ElementaryTypeName","src":"2887:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18182,"nodeType":"ArrayTypeName","src":"2887:6:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2857:58:51"},"returnParameters":{"id":18187,"nodeType":"ParameterList","parameters":[],"src":"2935:0:51"},"scope":18224,"src":"2835:312:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":18225,"src":"515:2634:51","usedErrors":[6235,6238,6241,6244,9117,9120,17541,17553,17565,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:3114:51"},"id":51},"contracts/validators/Validator.sol":{"ast":{"absolutePath":"contracts/validators/Validator.sol","exportedSymbols":{"Cloneable":[17720],"Ownable":[6423],"Validator":[18282]},"id":18283,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18226,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:52"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":18228,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18283,"sourceUnit":6424,"src":"62:49:52","symbolAliases":[{"foreign":{"id":18227,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"70:7:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":18230,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18283,"sourceUnit":17721,"src":"113:57:52","symbolAliases":[{"foreign":{"id":18229,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"121:9:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":18232,"name":"Ownable","nameLocations":["461:7:52"],"nodeType":"IdentifierPath","referencedDeclaration":6423,"src":"461:7:52"},"id":18233,"nodeType":"InheritanceSpecifier","src":"461:7:52"},{"baseName":{"id":18234,"name":"Cloneable","nameLocations":["470:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"470:9:52"},"id":18235,"nodeType":"InheritanceSpecifier","src":"470:9:52"}],"canonicalName":"Validator","contractDependencies":[],"contractKind":"contract","documentation":{"id":18231,"nodeType":"StructuredDocumentation","src":"172:258:52","text":"@title Boost Validator\n @notice Abstract contract for a generic Validator within the Boost protocol\n @dev Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":18282,"linearizedBaseContracts":[18282,17720,2845,2857,9225,6423],"name":"Validator","nameLocation":"448:9:52","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Validator.ValidatePayload","id":18240,"members":[{"constant":false,"id":18237,"mutability":"mutable","name":"target","nameLocation":"527:6:52","nodeType":"VariableDeclaration","scope":18240,"src":"519:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18236,"name":"address","nodeType":"ElementaryTypeName","src":"519:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18239,"mutability":"mutable","name":"data","nameLocation":"549:4:52","nodeType":"VariableDeclaration","scope":18240,"src":"543:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":18238,"name":"bytes","nodeType":"ElementaryTypeName","src":"543:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatePayload","nameLocation":"493:15:52","nodeType":"StructDefinition","scope":18282,"src":"486:74:52","visibility":"public"},{"body":{"id":18249,"nodeType":"Block","src":"693:45:52","statements":[{"expression":{"arguments":[{"expression":{"id":18245,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"720:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"724:6:52","memberName":"sender","nodeType":"MemberAccess","src":"720:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18244,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"703:16:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:28:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18248,"nodeType":"ExpressionStatement","src":"703:28:52"}]},"documentation":{"id":18241,"nodeType":"StructuredDocumentation","src":"566:108:52","text":"@notice Initialize the contract and set the owner\n @dev The owner is set to the contract deployer"},"id":18250,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18242,"nodeType":"ParameterList","parameters":[],"src":"690:2:52"},"returnParameters":{"id":18243,"nodeType":"ParameterList","parameters":[],"src":"693:0:52"},"scope":18282,"src":"679:59:52","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":18251,"nodeType":"StructuredDocumentation","src":"744:655:52","text":"@notice Validate that a given user has completed an acction successfully\n @param data_ The compressed {ValidatePayload} to be validated\n @return True if the action has been validated based on the data payload\n @dev The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specific\n @dev For example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}"},"functionSelector":"c16e50ef","id":18258,"implemented":false,"kind":"function","modifiers":[],"name":"validate","nameLocation":"1413:8:52","nodeType":"FunctionDefinition","parameters":{"id":18254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18253,"mutability":"mutable","name":"data_","nameLocation":"1437:5:52","nodeType":"VariableDeclaration","scope":18258,"src":"1422:20:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18252,"name":"bytes","nodeType":"ElementaryTypeName","src":"1422:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1421:22:52"},"returnParameters":{"id":18257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18258,"src":"1470:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18255,"name":"bool","nodeType":"ElementaryTypeName","src":"1470:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1469:6:52"},"scope":18282,"src":"1404:72:52","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[17719],"body":{"id":18280,"nodeType":"Block","src":"1614:106:52","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":18273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18268,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18261,"src":"1631:11:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":18270,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"1651:9:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$18282_$","typeString":"type(contract Validator)"}],"id":18269,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1646:4:52","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1646:15:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$18282","typeString":"type(contract Validator)"}},"id":18272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1662:11:52","memberName":"interfaceId","nodeType":"MemberAccess","src":"1646:27:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1631:42:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":18276,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18261,"src":"1701:11:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":18274,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1677:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Validator_$18282_$","typeString":"type(contract super Validator)"}},"id":18275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1683:17:52","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17719,"src":"1677:23:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":18277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:36:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1631:82:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18267,"id":18279,"nodeType":"Return","src":"1624:89:52"}]},"documentation":{"id":18259,"nodeType":"StructuredDocumentation","src":"1482:25:52","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":18281,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1521:17:52","nodeType":"FunctionDefinition","overrides":{"id":18264,"nodeType":"OverrideSpecifier","overrides":[{"id":18263,"name":"Cloneable","nameLocations":["1588:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":17720,"src":"1588:9:52"}],"src":"1579:19:52"},"parameters":{"id":18262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18261,"mutability":"mutable","name":"interfaceId","nameLocation":"1546:11:52","nodeType":"VariableDeclaration","scope":18281,"src":"1539:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18260,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1539:6:52","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1538:20:52"},"returnParameters":{"id":18267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18281,"src":"1608:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18265,"name":"bool","nodeType":"ElementaryTypeName","src":"1608:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1607:6:52"},"scope":18282,"src":"1512:208:52","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":18283,"src":"430:1292:52","usedErrors":[6235,6238,6241,6244,9117,9120,17666,17669,17672],"usedEvents":[6251,6256,6261,9125]}],"src":"36:1687:52"},"id":52}},"contracts":{"@openzeppelin/contracts/interfaces/IERC1271.sol":{"IERC1271":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0a7e89ffa57127a2e75931be926a11094b6ee2955632a5dce0228f3d8e98eb02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca02052cca6c00d760253f74519e6d7460dfaaf4efb3c004bf9c811ad7791d40\",\"dweb:/ipfs/QmSfzCXbsALfzo6Joqte5oyJxi7h27VqhDmcMJhmNGX2GJ\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 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 ERC-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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"ERC1155":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC]. 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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"IERC1155":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[ERC].\",\"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`.\"},\"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 zero address.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"IERC1155Receiver":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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 ERC-1155 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 ERC-1155 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[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"IERC1155MetadataURI":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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[ERC].\",\"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`.\"},\"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 zero address.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"ERC1155Utils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122051492cae3ae4df375fdc2822e52906a416fe7ada22de05ff2a39e0237fc1b46364736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MLOAD BLOBHASH 0x2C 0xAE GASPRICE 0xE4 0xDF CALLDATACOPY PUSH0 0xDC 0x28 0x22 0xE5 0x29 MOD LOG4 AND INVALID PUSH27 0xDA22DE05FF2A39E0237FC1B46364736F6C63430008190033000000 ","sourceMap":"322:3178:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122051492cae3ae4df375fdc2822e52906a416fe7ada22de05ff2a39e0237fc1b46364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MLOAD BLOBHASH 0x2C 0xAE GASPRICE 0xE4 0xDF CALLDATACOPY PUSH0 0xDC 0x28 0x22 0xE5 0x29 MOD LOG4 AND INVALID PUSH27 0xDA22DE05FF2A39E0237FC1B46364736F6C63430008190033000000 ","sourceMap":"322:3178:6:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library that provide common ERC-1155 utility functions. See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":\"ERC1155Utils\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Arrays.sol":{"Arrays":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202f362cca3b8c099b92f3f7bdda6a35b3a437aafeeefc9fd9a059fc689feb097164736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F CALLDATASIZE 0x2C 0xCA EXTCODESIZE DUP13 MULMOD SWAP12 SWAP3 RETURN 0xF7 0xBD 0xDA PUSH11 0x35B3A437AAFEEEFC9FD9A0 MSIZE 0xFC PUSH9 0x9FEB097164736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"412:17845:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202f362cca3b8c099b92f3f7bdda6a35b3a437aafeeefc9fd9a059fc689feb097164736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F CALLDATASIZE 0x2C 0xCA EXTCODESIZE DUP13 MULMOD SWAP12 SWAP3 RETURN 0xF7 0xBD 0xDA PUSH11 0x35B3A437AAFEEEFC9FD9A0 MSIZE 0xFC PUSH9 0x9FEB097164736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"412:17845:7:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"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\":\"cancun\",\"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/Panic.sol":{"Panic":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220efc88f0b773929379419265516c9690496731683cfc9621e01347973290dc13d64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF 0xC8 DUP16 SIGNEXTEND PUSH24 0x3929379419265516C9690496731683CFC9621E0134797329 0xD 0xC1 RETURNDATASIZE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"561:1342:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220efc88f0b773929379419265516c9690496731683cfc9621e01347973290dc13d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF 0xC8 DUP16 SIGNEXTEND PUSH24 0x3929379419265516C9690496731683CFC9621E0134797329 0xD 0xC1 RETURNDATASIZE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"561:1342:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"SlotDerivation":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d7d3510fb55afd82dd28cb4be0a8ea32f7fb101629cd4368b3e589509247a9f364736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xD3 MLOAD 0xF 0xB5 GAS REVERT DUP3 0xDD 0x28 0xCB 0x4B 0xE0 0xA8 0xEA ORIGIN 0xF7 0xFB LT AND 0x29 0xCD NUMBER PUSH9 0xB3E589509247A9F364 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1493:3928:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d7d3510fb55afd82dd28cb4be0a8ea32f7fb101629cd4368b3e589509247a9f364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 0xD3 MLOAD 0xF 0xB5 GAS REVERT DUP3 0xDD 0x28 0xCB 0x4B 0xE0 0xA8 0xEA ORIGIN 0xF7 0xFB LT AND 0x29 0xCD NUMBER PUSH9 0xB3E589509247A9F364 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1493:3928:10:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for computing storage (and transient storage) locations from namespaces and deriving slots corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by the solidity language / compiler. See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.]. Example usage: ```solidity contract Example { // Add the library methods using StorageSlot for bytes32; using SlotDerivation for bytes32; // Declare a namespace string private constant _NAMESPACE = \\\"\\\" // eg. OpenZeppelin.Slot function setValueInNamespace(uint256 key, address newValue) internal { _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue; } function getValueInNamespace(uint256 key) internal view returns (address) { return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value; } } ``` TIP: Consider using this library along with {StorageSlot}. NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking upgrade safety will ignore the slots accessed through this library.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":\"SlotDerivation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e248e04ea1e66cb6fa4a0e8cfe5a4c3bf010324de4a7bb08f89e9c4c75050d8e64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 BASEFEE 0xE0 0x4E LOG1 0xE6 PUSH13 0xB6FA4A0E8CFE5A4C3BF010324D 0xE4 0xA7 0xBB ADDMOD 0xF8 SWAP15 SWAP13 0x4C PUSH22 0x50D8E64736F6C634300081900330000000000000000 ","sourceMap":"2022:7294:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e248e04ea1e66cb6fa4a0e8cfe5a4c3bf010324de4a7bb08f89e9c4c75050d8e64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 BASEFEE 0xE0 0x4E LOG1 0xE6 PUSH13 0xB6FA4A0E8CFE5A4C3BF010324D 0xE4 0xA7 0xBB ADDMOD 0xF8 SWAP15 SWAP13 0x4C PUSH22 0x50D8E64736F6C634300081900330000000000000000 ","sourceMap":"2022:7294:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC-1967 implementation slot: ```solidity contract ERC1967 { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` Since version 5.1, this library also support writing and reading value types to and from transient storage. * Example using transient storage: ```solidity contract Lock { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542; modifier locked() { require(!_LOCK_SLOT.asBoolean().tload()); _LOCK_SLOT.asBoolean().tstore(true); _; _LOCK_SLOT.asBoolean().tstore(false); } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122054da9aa0625e097b1311a7043d1ea5179471f1b389bbc95beeb584145f3e11e464736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xDA SWAP11 LOG0 PUSH3 0x5E097B SGT GT 0xA7 DIV RETURNDATASIZE 0x1E 0xA5 OR SWAP5 PUSH18 0xF1B389BBC95BEEB584145F3E11E464736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"281:27383:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122054da9aa0625e097b1311a7043d1ea5179471f1b389bbc95beeb584145f3e11e464736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xDA SWAP11 LOG0 PUSH3 0x5E097B SGT GT 0xA7 DIV RETURNDATASIZE 0x1E 0xA5 OR SWAP5 PUSH18 0xF1B389BBC95BEEB584145F3E11E464736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"281:27383:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122050627ed4b307661db26597bbe7b75192e3cbc572449944c319e64ff5a34f75b864736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP PUSH3 0x7ED4B3 SMOD PUSH7 0x1DB26597BBE7B7 MLOAD SWAP3 0xE3 0xCB 0xC5 PUSH19 0x449944C319E64FF5A34F75B864736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"769:34200:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122050627ed4b307661db26597bbe7b75192e3cbc572449944c319e64ff5a34f75b864736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP PUSH3 0x7ED4B3 SMOD PUSH7 0x1DB26597BBE7B7 MLOAD SWAP3 0xE3 0xCB 0xC5 PUSH19 0x449944C319E64FF5A34F75B864736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"769:34200:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@solady/accounts/Receiver.sol":{"Receiver":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\",\"details\":\"Note: - Handles all ERC721 and ERC1155 token safety callbacks. - Collapses function table gas overhead and code size. - Utilizes fallback so unknown calldata will pass on.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/accounts/Receiver.sol\":\"Receiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]}},\"version\":1}"}},"@solady/auth/Ownable.sol":{"Ownable":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\",\"details\":\"Note: This implementation does NOT auto-initialize the owner to `msg.sender`. You MUST call the `_initializeOwner` in the constructor / initializer. While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility, the nomenclature for the 2-step ownership handover may be unique to this codebase.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipHandoverCanceled(address)\\\"))`.\"},\"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipHandoverRequested(address)\\\"))`.\"},\"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipTransferred(address,address)\\\"))`.\"},\"_OWNER_SLOT\":{\"details\":\"The owner slot is given by: `bytes32(~uint256(uint32(bytes4(keccak256(\\\"_OWNER_SLOT_NOT\\\")))))`. It is intentionally chosen to be a high value to avoid collision with lower slots. The choice of manual storage layout is to enable compatibility with both regular and upgradeable contracts.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/auth/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]}},\"version\":1}"}},"@solady/auth/OwnableRoles.sol":{"OwnableRoles":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\",\"details\":\"While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility, the nomenclature for the 2-step ownership handover and roles may be unique to this codebase.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_ROLES_UPDATED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"RolesUpdated(address,uint256)\\\"))`.\"},\"_ROLE_SLOT_SEED\":{\"details\":\"The role slot of `user` is given by: ``` mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED)) let roleSlot := keccak256(0x00, 0x20) ``` This automatically ignores the upper bits of the `user` in case they are not clean, as well as keep the `keccak256` under 32-bytes. Note: This is equivalent to `uint32(bytes4(keccak256(\\\"_OWNER_SLOT_NOT\\\")))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner and multiroles authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/auth/OwnableRoles.sol\":\"OwnableRoles\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]}},\"version\":1}"}},"@solady/tokens/ERC20.sol":{"ERC20":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\",\"details\":\"Note: - The ERC20 standard allows minting and transferring to and from the zero address, minting and transferring zero tokens, as well as self-approvals. For performance, this implementation WILL NOT revert for such actions. Please add any checks with overrides if desired. - The `permit` function uses the ecrecover precompile (0x1). If you are overriding: - NEVER violate the ERC20 invariant: the total sum of all balances must be equal to `totalSupply()`. - Check that the overridden function is actually used in the function you want to change the behavior of. Much of the code has been manually inlined for performance.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"stateVariables\":{\"_ALLOWANCE_SLOT_SEED\":{\"details\":\"The allowance slot of (`owner`, `spender`) is given by: ``` mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, owner) let allowanceSlot := keccak256(0x0c, 0x34) ```\"},\"_APPROVAL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Approval(address,address,uint256)\\\"))`.\"},\"_BALANCE_SLOT_SEED\":{\"details\":\"The balance slot of `owner` is given by: ``` mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, owner) let balanceSlot := keccak256(0x0c, 0x20) ```\"},\"_DOMAIN_TYPEHASH\":{\"details\":\"`keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\\\")`.\"},\"_NONCES_SLOT_SEED\":{\"details\":\"The nonce slot of `owner` is given by: ``` mstore(0x0c, _NONCES_SLOT_SEED) mstore(0x00, owner) let nonceSlot := keccak256(0x0c, 0x20) ```\"},\"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX\":{\"details\":\"`(_NONCES_SLOT_SEED << 16) | 0x1901`.\"},\"_PERMIT_TYPEHASH\":{\"details\":\"`keccak256(\\\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\\\")`.\"},\"_TOTAL_SUPPLY_SLOT\":{\"details\":\"The storage slot for the total supply.\"},\"_TRANSFER_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Transfer(address,address,uint256)\\\"))`.\"},\"_VERSION_HASH\":{\"details\":\"`keccak256(\\\"1\\\")`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/tokens/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]}},\"version\":1}"}},"@solady/tokens/ERC721.sol":{"ERC721":{"abi":[{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TokenAlreadyExists","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"isApproved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccountBalanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccountBalanceOverflow()\":[{\"details\":\"The recipient's balance has overflowed.\"}],\"BalanceQueryForZeroAddress()\":[{\"details\":\"Cannot query the balance for the zero address.\"}],\"NotOwnerNorApproved()\":[{\"details\":\"Only the token owner or an approved account can manage the token.\"}],\"TokenAlreadyExists()\":[{\"details\":\"The token already exists.\"}],\"TokenDoesNotExist()\":[{\"details\":\"The token does not exist.\"}],\"TransferFromIncorrectOwner()\":[{\"details\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"details\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"details\":\"Cannot mint or transfer to the zero address.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `account` to manage the `id` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when token `id` is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Sets `account` as the approved account to manage token `id`. Requirements: - Token `id` must exist. - The caller must be the owner of the token, or an approved operator for the token owner. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens owned by `owner`. Requirements: - `owner` must not be the zero address.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved to manage token `id`. Requirements: - Token `id` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns whether `operator` is approved to manage the tokens of `owner`.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of token `id`. Requirements: - Token `id` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, id, \\\"\\\")`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See: https://eips.ethereum.org/EIPS/eip-165 This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. Emits a {Transfer} event.\"}},\"stateVariables\":{\"_APPROVAL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Approval(address,address,uint256)\\\"))`.\"},\"_APPROVAL_FOR_ALL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"ApprovalForAll(address,address,bool)\\\"))`.\"},\"_ERC721_MASTER_SLOT_SEED\":{\"details\":\"The ownership data slot of `id` is given by: ``` mstore(0x00, id) mstore(0x1c, _ERC721_MASTER_SLOT_SEED) let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20))) ``` Bits Layout: - [0..159] `addr` - [160..255] `extraData` The approved address slot is given by: `add(1, ownershipSlot)`. See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip The balance slot of `owner` is given by: ``` mstore(0x1c, _ERC721_MASTER_SLOT_SEED) mstore(0x00, owner) let balanceSlot := keccak256(0x0c, 0x1c) ``` Bits Layout: - [0..31] `balance` - [32..255] `aux` The `operator` approval slot of `owner` is given by: ``` mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator)) mstore(0x00, owner) let operatorApprovalSlot := keccak256(0x0c, 0x30) ```\"},\"_ERC721_MASTER_SLOT_SEED_MASKED\":{\"details\":\"Pre-shifted and pre-masked constant.\"},\"_MAX_ACCOUNT_BALANCE\":{\"details\":\"An account can hold up to 4294967295 tokens.\"},\"_TRANSFER_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Transfer(address,address,uint256)\\\"))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"- Check that the overridden function is actually used in the function you want to change the behavior of. Much of the code has been manually inlined for performance.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/tokens/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]}},\"version\":1}"}},"@solady/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_INITIALIZABLE_SLOT\":{\"details\":\"The default initializable slot is given by: `bytes32(~uint256(uint32(bytes4(keccak256(\\\"_INITIALIZABLE_SLOT\\\")))))`. Bits Layout: - [0] `initializing` - [1..64] `initializedVersion`\"},\"_INTIALIZED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Initialized(uint64)\\\"))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Initializable mixin for the upgradeable contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]}},\"version\":1}"}},"@solady/utils/LibClone.sol":{"LibClone":{"abi":[{"inputs":[],"name":"DeploymentFailed","type":"error"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"SaltDoesNotStartWith","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122044adfd5ebe74ac2414a655ee1e1f173bb1c472efaeb8fd59b05b8d753e39a6de64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO 0xAD REVERT MCOPY 0xBE PUSH21 0xAC2414A655EE1E1F173BB1C472EFAEB8FD59B05B8D PUSH22 0x3E39A6DE64736F6C6343000819003300000000000000 ","sourceMap":"2217:88872:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122044adfd5ebe74ac2414a655ee1e1f173bb1c472efaeb8fd59b05b8d753e39a6de64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO 0xAD REVERT MCOPY 0xBE PUSH21 0xAC2414A655EE1E1F173BB1C472EFAEB8FD59B05B8D PUSH22 0x3E39A6DE64736F6C6343000819003300000000000000 ","sourceMap":"2217:88872:22:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DeploymentFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaltDoesNotStartWith\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)Minimal proxy by 0age (https://github.com/0age)Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\",\"details\":\"Minimal proxy: Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime, it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern, which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.Minimal proxy (PUSH0 variant): This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai. It is optimized first for minimal runtime gas, then for minimal bytecode. The PUSH0 clone functions are intentionally postfixed with a jarring \\\"_PUSH0\\\" as many EVM chains may not support the PUSH0 opcode in the early months after Shanghai. Please use with caution.Clones with immutable args (CWIA): The implementation of CWIA here implements a `receive()` method that emits the `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata, enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards composability. The minimal proxy implementation does not offer this feature.Minimal ERC1967 proxy: An minimal ERC1967 proxy, intended to be upgraded with UUPS. This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic. This proxy is automatically verified on Etherscan.ERC1967I proxy: An variant of the minimal ERC1967 proxy, with a special code path that activates if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the `implementation` address. The returned implementation is guaranteed to be valid if the keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.\",\"errors\":{\"DeploymentFailed()\":[{\"details\":\"Unable to deploy the clone.\"}],\"ETHTransferFailed()\":[{\"details\":\"The ETH transfer has failed.\"}],\"SaltDoesNotStartWith()\":[{\"details\":\"The salt must start with either the zero address or `by`.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ERC1967I_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967I proxy.\"},\"ERC1967_BEACON_PROXY_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 beacon proxy.\"},\"ERC1967_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal proxy library.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibClone.sol\":\"LibClone\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]}},\"version\":1}"}},"@solady/utils/LibPRNG.sol":{"LibPRNG":{"abi":[{"inputs":[],"name":"InvalidInitialLazyShufflerLength","type":"error"},{"inputs":[],"name":"InvalidNewLazyShufflerLength","type":"error"},{"inputs":[],"name":"LazyShuffleFinished","type":"error"},{"inputs":[],"name":"LazyShufflerAlreadyInitialized","type":"error"},{"inputs":[],"name":"LazyShufflerGetOutOfBounds","type":"error"},{"inputs":[],"name":"LazyShufflerNotInitialized","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122025689cdfb2362bb9b4248ff2c8718f3a732c2e622000d424b613544fe274a71d64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 PUSH9 0x9CDFB2362BB9B4248F CALLCODE 0xC8 PUSH18 0x8F3A732C2E622000D424B613544FE274A71D PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"375:18038:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122025689cdfb2362bb9b4248ff2c8718f3a732c2e622000d424b613544fe274a71d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 PUSH9 0x9CDFB2362BB9B4248F CALLCODE 0xC8 PUSH18 0x8F3A732C2E622000D424B613544FE274A71D PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"375:18038:23:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialLazyShufflerLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNewLazyShufflerLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShuffleFinished\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerGetOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerNotInitialized\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)LazyShuffler based on NextShuffler by aschlosberg (divergencearran) (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)\",\"errors\":{\"InvalidInitialLazyShufflerLength()\":[{\"details\":\"The initial length must be greater than zero and less than `2**32 - 1`.\"}],\"InvalidNewLazyShufflerLength()\":[{\"details\":\"The new length must not be less than the current length.\"}],\"LazyShuffleFinished()\":[{\"details\":\"The lazy shuffle has finished.\"}],\"LazyShufflerAlreadyInitialized()\":[{\"details\":\"Cannot double initialize the lazy shuffler.\"}],\"LazyShufflerGetOutOfBounds()\":[{\"details\":\"The queried index is out of bounds.\"}],\"LazyShufflerNotInitialized()\":[{\"details\":\"The lazy shuffler has not been initialized.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"WAD\":{\"details\":\"The scalar of ETH and most ERC20s.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for generating pseudorandom numbers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibPRNG.sol\":\"LibPRNG\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibPRNG.sol\":{\"keccak256\":\"0xdcb71f8dc72bb7384776154ca24d34c23e3c9bcf124bc75f0d2e379f9ebd021d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64e23b9ccfd1a5842268d36fe2798a13b063fe7821d0e952ea4758df5cc386f\",\"dweb:/ipfs/QmVTtkbUuEMi4gryE6NW2BGg5WGwRt1LX4KXNfH87BBZQk\"]}},\"version\":1}"}},"@solady/utils/LibString.sol":{"LibString":{"abi":[{"inputs":[],"name":"HexLengthInsufficient","type":"error"},{"inputs":[],"name":"TooBigForSmallString","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d91b6d503cc3e113ad0f1da3205ab19c545773a65b6a734db62a9fecfe23610264736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 SHL PUSH14 0x503CC3E113AD0F1DA3205AB19C54 JUMPI PUSH20 0xA65B6A734DB62A9FECFE23610264736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"648:51342:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d91b6d503cc3e113ad0f1da3205ab19c545773a65b6a734db62a9fecfe23610264736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 SHL PUSH14 0x503CC3E113AD0F1DA3205AB19C54 JUMPI PUSH20 0xA65B6A734DB62A9FECFE23610264736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"648:51342:24:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HexLengthInsufficient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooBigForSmallString\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\",\"details\":\"Note: For performance and bytecode compactness, most of the string operations are restricted to byte strings (7-bit ASCII), except where otherwise specified. Usage of byte string operations on charsets with runes spanning two or more bytes can lead to undefined behavior.\",\"errors\":{\"HexLengthInsufficient()\":[{\"details\":\"The length of the output is too small to contain all the hex digits.\"}],\"TooBigForSmallString()\":[{\"details\":\"The length of the string is more than 32 bytes.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"NOT_FOUND\":{\"details\":\"The constant returned when the `search` is not found in the string.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting numbers into strings and other string operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibString.sol\":\"LibString\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]}},\"version\":1}"}},"@solady/utils/LibZip.sol":{"LibZip":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201aaee0b751657c4bf8f9eb1a394a8b2ba57cc64e0446751dec612a5a5d70e30564736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xAE 0xE0 0xB7 MLOAD PUSH6 0x7C4BF8F9EB1A CODECOPY BLOBBASEFEE DUP12 0x2B 0xA5 PUSH29 0xC64E0446751DEC612A5A5D70E30564736F6C6343000819003300000000 ","sourceMap":"492:11812:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201aaee0b751657c4bf8f9eb1a394a8b2ba57cc64e0446751dec612a5a5d70e30564736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xAE 0xE0 0xB7 MLOAD PUSH6 0x7C4BF8F9EB1A CODECOPY BLOBBASEFEE DUP12 0x2B 0xA5 PUSH29 0xC64E0446751DEC612A5A5D70E30564736F6C6343000819003300000000 ","sourceMap":"492:11812:25:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)Calldata compression by clabby (https://github.com/clabby/op-kompressor)FastLZ by ariya (https://github.com/ariya/FastLZ)\",\"details\":\"Note: The accompanying solady.js library includes implementations of FastLZ and calldata operations for convenience.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for compressing and decompressing bytes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibZip.sol\":\"LibZip\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]}},\"version\":1}"}},"@solady/utils/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[{"inputs":[],"name":"Reentrancy","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)\",\"errors\":{\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_REENTRANCY_GUARD_SLOT\":{\"details\":\"Equivalent to: `uint72(bytes9(keccak256(\\\"_REENTRANCY_GUARD_SLOT\\\")))`. 9 bytes is large enough to avoid collisions with lower slots, but not too large to result in excessive bytecode bloat.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Reentrancy guard mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]}},\"version\":1}"}},"@solady/utils/SafeTransferLib.sol":{"SafeTransferLib":{"abi":[{"inputs":[],"name":"ApproveFailed","type":"error"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"Permit2AmountOverflow","type":"error"},{"inputs":[],"name":"Permit2Failed","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"TransferFromFailed","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208afe208c4223512aa41f50bac0174df51c66e28b28a8edeabed8663edcbb0dde64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP11 INVALID KECCAK256 DUP13 TIMESTAMP 0x23 MLOAD 0x2A LOG4 0x1F POP 0xBA 0xC0 OR 0x4D CREATE2 SHR PUSH7 0xE28B28A8EDEABE 0xD8 PUSH7 0x3EDCBB0DDE6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"701:25833:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208afe208c4223512aa41f50bac0174df51c66e28b28a8edeabed8663edcbb0dde64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP11 INVALID KECCAK256 DUP13 TIMESTAMP 0x23 MLOAD 0x2A LOG4 0x1F POP 0xBA 0xC0 OR 0x4D CREATE2 SHR PUSH7 0xE28B28A8EDEABE 0xD8 PUSH7 0x3EDCBB0DDE6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"701:25833:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2AmountOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\",\"details\":\"Note: - For ETH transfers, please use `forceSafeTransferETH` for DoS protection. - For ERC20s, this implementation won't check that a token has code, responsibility is delegated to the caller.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"The ERC20 `approve` has failed.\"}],\"ETHTransferFailed()\":[{\"details\":\"The ETH transfer has failed.\"}],\"Permit2AmountOverflow()\":[{\"details\":\"The Permit2 amount must be less than `2**160 - 1`.\"}],\"Permit2Failed()\":[{\"details\":\"The Permit2 operation has failed.\"}],\"TransferFailed()\":[{\"details\":\"The ERC20 `transfer` has failed.\"}],\"TransferFromFailed()\":[{\"details\":\"The ERC20 `transferFrom` has failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"DAI_DOMAIN_SEPARATOR\":{\"details\":\"The unique EIP-712 domain domain separator for the DAI token contract.\"},\"GAS_STIPEND_NO_GRIEF\":{\"details\":\"Suggested gas stipend for contract receiving ETH to perform a few storage reads and writes, but low enough to prevent griefing.\"},\"GAS_STIPEND_NO_STORAGE_WRITES\":{\"details\":\"Suggested gas stipend for contract receiving ETH that disallows any storage writes.\"},\"PERMIT2\":{\"details\":\"The canonical Permit2 address. [Github](https://github.com/Uniswap/permit2) [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\"},\"WETH9\":{\"details\":\"The address for the WETH9 contract on Ethereum mainnet.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Safe ETH and ERC20 transfer library that gracefully handles missing return values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/SafeTransferLib.sol\":\"SafeTransferLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]}},\"version\":1}"}},"@solady/utils/SignatureCheckerLib.sol":{"SignatureCheckerLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220569a3bd3b5cb3a54508b7f789993e311b6a9f7f23d0bb4cd321176cdd1df942264736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP SWAP11 EXTCODESIZE 0xD3 0xB5 0xCB GASPRICE SLOAD POP DUP12 PUSH32 0x789993E311B6A9F7F23D0BB4CD321176CDD1DF942264736F6C63430008190033 ","sourceMap":"1438:25134:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220569a3bd3b5cb3a54508b7f789993e311b6a9f7f23d0bb4cd321176cdd1df942264736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP SWAP11 EXTCODESIZE 0xD3 0xB5 0xCB GASPRICE SLOAD POP DUP12 PUSH32 0x789993E311B6A9F7F23D0BB4CD321176CDD1DF942264736F6C63430008190033 ","sourceMap":"1438:25134:28:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\",\"details\":\"Note: - The signature checking functions use the ecrecover precompile (0x1). - The `bytes memory signature` variants use the identity precompile (0x4) to copy memory internally. - Unlike ECDSA signatures, contract signatures are revocable. - As of Solady version 0.0.134, all `bytes signature` variants accept both regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures. See: https://eips.ethereum.org/EIPS/eip-2098 This is for calldata efficiency on smart accounts prevalent on L2s. WARNING! Do NOT use signatures as unique identifiers: - Use a nonce in the digest to prevent replay attacks on the same contract. - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts. EIP-712 also enables readable signing of typed data for better user safety. This implementation does NOT check if a signature is non-malleable.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Signature verification helper that supports both ECDSA signatures from EOAs and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/SignatureCheckerLib.sol\":\"SignatureCheckerLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x7a7acc59723ed291f24d9a2ed019109c8be69f32701f35f8a61dc7fff6652379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bab15a03dfca0567d7472933ee4e776fc21f9dfb6c4dbc06934fa75eceeff5e\",\"dweb:/ipfs/QmPUuKsRwpZXz15DpsoJMMPN9DtZiRvMfwjqJScxkppNsP\"]}},\"version\":1}"}},"contracts/BoostCore.sol":{"BoostCore":{"abi":[{"inputs":[{"internalType":"contract BoostRegistry","name":"registry_","type":"address"},{"internalType":"address","name":"protocolFeeReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"bytes4","name":"expectedInterface","type":"bytes4"},{"internalType":"address","name":"instance","type":"address"}],"name":"InvalidInstance","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"boostId_","type":"uint256"},{"internalType":"uint256","name":"incentiveId_","type":"uint256"},{"internalType":"address","name":"referrer_","type":"address"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claimIncentive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"createBoost","outputs":[{"components":[{"internalType":"contract Action","name":"action","type":"address"},{"internalType":"contract Validator","name":"validator","type":"address"},{"internalType":"contract AllowList","name":"allowList","type":"address"},{"internalType":"contract Budget","name":"budget","type":"address"},{"internalType":"contract Incentive[]","name":"incentives","type":"address[]"},{"internalType":"uint64","name":"protocolFee","type":"uint64"},{"internalType":"uint64","name":"referralFee","type":"uint64"},{"internalType":"uint256","name":"maxParticipants","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct BoostLib.Boost","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getBoost","outputs":[{"components":[{"internalType":"contract Action","name":"action","type":"address"},{"internalType":"contract Validator","name":"validator","type":"address"},{"internalType":"contract AllowList","name":"allowList","type":"address"},{"internalType":"contract Budget","name":"budget","type":"address"},{"internalType":"contract Incentive[]","name":"incentives","type":"address[]"},{"internalType":"uint64","name":"protocolFee","type":"uint64"},{"internalType":"uint64","name":"referralFee","type":"uint64"},{"internalType":"uint256","name":"maxParticipants","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct BoostLib.Boost","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBoostCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFee","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralFee","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract BoostRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"claimFee_","type":"uint256"}],"name":"setClaimFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"protocolFeeReceiver_","type":"address"}],"name":"setProtocolFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11648":{"entryPoint":null,"id":11648,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":514,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":294,"id":6302,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":651,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_BoostRegistry_$12680_fromMemory":{"entryPoint":609,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_BoostRegistry_$12680t_address_fromMemory":{"entryPoint":671,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":553,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_BoostRegistry_$12680":{"entryPoint":570,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":522,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":518,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":629,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_BoostRegistry_$12680":{"entryPoint":587,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1895:53","nodeType":"YulBlock","src":"0:1895:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"379:81:53","nodeType":"YulBlock","src":"379:81:53","statements":[{"nativeSrc":"389:65:53","nodeType":"YulAssignment","src":"389:65:53","value":{"arguments":[{"name":"value","nativeSrc":"404:5:53","nodeType":"YulIdentifier","src":"404:5:53"},{"kind":"number","nativeSrc":"411:42:53","nodeType":"YulLiteral","src":"411:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:53","nodeType":"YulIdentifier","src":"400:3:53"},"nativeSrc":"400:54:53","nodeType":"YulFunctionCall","src":"400:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:53","nodeType":"YulIdentifier","src":"389:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:53","nodeType":"YulTypedName","src":"361:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:53","nodeType":"YulTypedName","src":"371:7:53","type":""}],"src":"334:126:53"},{"body":{"nativeSrc":"511:51:53","nodeType":"YulBlock","src":"511:51:53","statements":[{"nativeSrc":"521:35:53","nodeType":"YulAssignment","src":"521:35:53","value":{"arguments":[{"name":"value","nativeSrc":"550:5:53","nodeType":"YulIdentifier","src":"550:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:53","nodeType":"YulIdentifier","src":"532:17:53"},"nativeSrc":"532:24:53","nodeType":"YulFunctionCall","src":"532:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:53","nodeType":"YulIdentifier","src":"521:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:53","nodeType":"YulTypedName","src":"493:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:53","nodeType":"YulTypedName","src":"503:7:53","type":""}],"src":"466:96:53"},{"body":{"nativeSrc":"636:51:53","nodeType":"YulBlock","src":"636:51:53","statements":[{"nativeSrc":"646:35:53","nodeType":"YulAssignment","src":"646:35:53","value":{"arguments":[{"name":"value","nativeSrc":"675:5:53","nodeType":"YulIdentifier","src":"675:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"657:17:53","nodeType":"YulIdentifier","src":"657:17:53"},"nativeSrc":"657:24:53","nodeType":"YulFunctionCall","src":"657:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"646:7:53","nodeType":"YulIdentifier","src":"646:7:53"}]}]},"name":"cleanup_t_contract$_BoostRegistry_$12680","nativeSrc":"568:119:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"618:5:53","nodeType":"YulTypedName","src":"618:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"628:7:53","nodeType":"YulTypedName","src":"628:7:53","type":""}],"src":"568:119:53"},{"body":{"nativeSrc":"759:102:53","nodeType":"YulBlock","src":"759:102:53","statements":[{"body":{"nativeSrc":"839:16:53","nodeType":"YulBlock","src":"839:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"848:1:53","nodeType":"YulLiteral","src":"848:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"851:1:53","nodeType":"YulLiteral","src":"851:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"841:6:53","nodeType":"YulIdentifier","src":"841:6:53"},"nativeSrc":"841:12:53","nodeType":"YulFunctionCall","src":"841:12:53"},"nativeSrc":"841:12:53","nodeType":"YulExpressionStatement","src":"841:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"782:5:53","nodeType":"YulIdentifier","src":"782:5:53"},{"arguments":[{"name":"value","nativeSrc":"830:5:53","nodeType":"YulIdentifier","src":"830:5:53"}],"functionName":{"name":"cleanup_t_contract$_BoostRegistry_$12680","nativeSrc":"789:40:53","nodeType":"YulIdentifier","src":"789:40:53"},"nativeSrc":"789:47:53","nodeType":"YulFunctionCall","src":"789:47:53"}],"functionName":{"name":"eq","nativeSrc":"779:2:53","nodeType":"YulIdentifier","src":"779:2:53"},"nativeSrc":"779:58:53","nodeType":"YulFunctionCall","src":"779:58:53"}],"functionName":{"name":"iszero","nativeSrc":"772:6:53","nodeType":"YulIdentifier","src":"772:6:53"},"nativeSrc":"772:66:53","nodeType":"YulFunctionCall","src":"772:66:53"},"nativeSrc":"769:86:53","nodeType":"YulIf","src":"769:86:53"}]},"name":"validator_revert_t_contract$_BoostRegistry_$12680","nativeSrc":"693:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"752:5:53","nodeType":"YulTypedName","src":"752:5:53","type":""}],"src":"693:168:53"},{"body":{"nativeSrc":"953:103:53","nodeType":"YulBlock","src":"953:103:53","statements":[{"nativeSrc":"963:22:53","nodeType":"YulAssignment","src":"963:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"978:6:53","nodeType":"YulIdentifier","src":"978:6:53"}],"functionName":{"name":"mload","nativeSrc":"972:5:53","nodeType":"YulIdentifier","src":"972:5:53"},"nativeSrc":"972:13:53","nodeType":"YulFunctionCall","src":"972:13:53"},"variableNames":[{"name":"value","nativeSrc":"963:5:53","nodeType":"YulIdentifier","src":"963:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1044:5:53","nodeType":"YulIdentifier","src":"1044:5:53"}],"functionName":{"name":"validator_revert_t_contract$_BoostRegistry_$12680","nativeSrc":"994:49:53","nodeType":"YulIdentifier","src":"994:49:53"},"nativeSrc":"994:56:53","nodeType":"YulFunctionCall","src":"994:56:53"},"nativeSrc":"994:56:53","nodeType":"YulExpressionStatement","src":"994:56:53"}]},"name":"abi_decode_t_contract$_BoostRegistry_$12680_fromMemory","nativeSrc":"867:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"931:6:53","nodeType":"YulTypedName","src":"931:6:53","type":""},{"name":"end","nativeSrc":"939:3:53","nodeType":"YulTypedName","src":"939:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"947:5:53","nodeType":"YulTypedName","src":"947:5:53","type":""}],"src":"867:189:53"},{"body":{"nativeSrc":"1105:79:53","nodeType":"YulBlock","src":"1105:79:53","statements":[{"body":{"nativeSrc":"1162:16:53","nodeType":"YulBlock","src":"1162:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1171:1:53","nodeType":"YulLiteral","src":"1171:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1174:1:53","nodeType":"YulLiteral","src":"1174:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1164:6:53","nodeType":"YulIdentifier","src":"1164:6:53"},"nativeSrc":"1164:12:53","nodeType":"YulFunctionCall","src":"1164:12:53"},"nativeSrc":"1164:12:53","nodeType":"YulExpressionStatement","src":"1164:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1128:5:53","nodeType":"YulIdentifier","src":"1128:5:53"},{"arguments":[{"name":"value","nativeSrc":"1153:5:53","nodeType":"YulIdentifier","src":"1153:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1135:17:53","nodeType":"YulIdentifier","src":"1135:17:53"},"nativeSrc":"1135:24:53","nodeType":"YulFunctionCall","src":"1135:24:53"}],"functionName":{"name":"eq","nativeSrc":"1125:2:53","nodeType":"YulIdentifier","src":"1125:2:53"},"nativeSrc":"1125:35:53","nodeType":"YulFunctionCall","src":"1125:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1118:6:53","nodeType":"YulIdentifier","src":"1118:6:53"},"nativeSrc":"1118:43:53","nodeType":"YulFunctionCall","src":"1118:43:53"},"nativeSrc":"1115:63:53","nodeType":"YulIf","src":"1115:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"1062:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1098:5:53","nodeType":"YulTypedName","src":"1098:5:53","type":""}],"src":"1062:122:53"},{"body":{"nativeSrc":"1253:80:53","nodeType":"YulBlock","src":"1253:80:53","statements":[{"nativeSrc":"1263:22:53","nodeType":"YulAssignment","src":"1263:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"1278:6:53","nodeType":"YulIdentifier","src":"1278:6:53"}],"functionName":{"name":"mload","nativeSrc":"1272:5:53","nodeType":"YulIdentifier","src":"1272:5:53"},"nativeSrc":"1272:13:53","nodeType":"YulFunctionCall","src":"1272:13:53"},"variableNames":[{"name":"value","nativeSrc":"1263:5:53","nodeType":"YulIdentifier","src":"1263:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1321:5:53","nodeType":"YulIdentifier","src":"1321:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1294:26:53","nodeType":"YulIdentifier","src":"1294:26:53"},"nativeSrc":"1294:33:53","nodeType":"YulFunctionCall","src":"1294:33:53"},"nativeSrc":"1294:33:53","nodeType":"YulExpressionStatement","src":"1294:33:53"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"1190:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1231:6:53","nodeType":"YulTypedName","src":"1231:6:53","type":""},{"name":"end","nativeSrc":"1239:3:53","nodeType":"YulTypedName","src":"1239:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1247:5:53","nodeType":"YulTypedName","src":"1247:5:53","type":""}],"src":"1190:143:53"},{"body":{"nativeSrc":"1456:436:53","nodeType":"YulBlock","src":"1456:436:53","statements":[{"body":{"nativeSrc":"1502:83:53","nodeType":"YulBlock","src":"1502:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1504:77:53","nodeType":"YulIdentifier","src":"1504:77:53"},"nativeSrc":"1504:79:53","nodeType":"YulFunctionCall","src":"1504:79:53"},"nativeSrc":"1504:79:53","nodeType":"YulExpressionStatement","src":"1504:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1477:7:53","nodeType":"YulIdentifier","src":"1477:7:53"},{"name":"headStart","nativeSrc":"1486:9:53","nodeType":"YulIdentifier","src":"1486:9:53"}],"functionName":{"name":"sub","nativeSrc":"1473:3:53","nodeType":"YulIdentifier","src":"1473:3:53"},"nativeSrc":"1473:23:53","nodeType":"YulFunctionCall","src":"1473:23:53"},{"kind":"number","nativeSrc":"1498:2:53","nodeType":"YulLiteral","src":"1498:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1469:3:53","nodeType":"YulIdentifier","src":"1469:3:53"},"nativeSrc":"1469:32:53","nodeType":"YulFunctionCall","src":"1469:32:53"},"nativeSrc":"1466:119:53","nodeType":"YulIf","src":"1466:119:53"},{"nativeSrc":"1595:151:53","nodeType":"YulBlock","src":"1595:151:53","statements":[{"nativeSrc":"1610:15:53","nodeType":"YulVariableDeclaration","src":"1610:15:53","value":{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1614:6:53","nodeType":"YulTypedName","src":"1614:6:53","type":""}]},{"nativeSrc":"1639:97:53","nodeType":"YulAssignment","src":"1639:97:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1708:9:53","nodeType":"YulIdentifier","src":"1708:9:53"},{"name":"offset","nativeSrc":"1719:6:53","nodeType":"YulIdentifier","src":"1719:6:53"}],"functionName":{"name":"add","nativeSrc":"1704:3:53","nodeType":"YulIdentifier","src":"1704:3:53"},"nativeSrc":"1704:22:53","nodeType":"YulFunctionCall","src":"1704:22:53"},{"name":"dataEnd","nativeSrc":"1728:7:53","nodeType":"YulIdentifier","src":"1728:7:53"}],"functionName":{"name":"abi_decode_t_contract$_BoostRegistry_$12680_fromMemory","nativeSrc":"1649:54:53","nodeType":"YulIdentifier","src":"1649:54:53"},"nativeSrc":"1649:87:53","nodeType":"YulFunctionCall","src":"1649:87:53"},"variableNames":[{"name":"value0","nativeSrc":"1639:6:53","nodeType":"YulIdentifier","src":"1639:6:53"}]}]},{"nativeSrc":"1756:129:53","nodeType":"YulBlock","src":"1756:129:53","statements":[{"nativeSrc":"1771:16:53","nodeType":"YulVariableDeclaration","src":"1771:16:53","value":{"kind":"number","nativeSrc":"1785:2:53","nodeType":"YulLiteral","src":"1785:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1775:6:53","nodeType":"YulTypedName","src":"1775:6:53","type":""}]},{"nativeSrc":"1801:74:53","nodeType":"YulAssignment","src":"1801:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1847:9:53","nodeType":"YulIdentifier","src":"1847:9:53"},{"name":"offset","nativeSrc":"1858:6:53","nodeType":"YulIdentifier","src":"1858:6:53"}],"functionName":{"name":"add","nativeSrc":"1843:3:53","nodeType":"YulIdentifier","src":"1843:3:53"},"nativeSrc":"1843:22:53","nodeType":"YulFunctionCall","src":"1843:22:53"},{"name":"dataEnd","nativeSrc":"1867:7:53","nodeType":"YulIdentifier","src":"1867:7:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1811:31:53","nodeType":"YulIdentifier","src":"1811:31:53"},"nativeSrc":"1811:64:53","nodeType":"YulFunctionCall","src":"1811:64:53"},"variableNames":[{"name":"value1","nativeSrc":"1801:6:53","nodeType":"YulIdentifier","src":"1801:6:53"}]}]}]},"name":"abi_decode_tuple_t_contract$_BoostRegistry_$12680t_address_fromMemory","nativeSrc":"1339:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1418:9:53","nodeType":"YulTypedName","src":"1418:9:53","type":""},{"name":"dataEnd","nativeSrc":"1429:7:53","nodeType":"YulTypedName","src":"1429:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1441:6:53","nodeType":"YulTypedName","src":"1441:6:53","type":""},{"name":"value1","nativeSrc":"1449:6:53","nodeType":"YulTypedName","src":"1449:6:53","type":""}],"src":"1339:553:53"}]},"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 cleanup_t_contract$_BoostRegistry_$12680(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_BoostRegistry_$12680(value) {\n if iszero(eq(value, cleanup_t_contract$_BoostRegistry_$12680(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_BoostRegistry_$12680_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_BoostRegistry_$12680(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_contract$_BoostRegistry_$12680t_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_BoostRegistry_$12680_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526544364c5bb0006003556103e860045f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e8600460086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561006e575f80fd5b506040516130da3803806130da8339818101604052810190610090919061029f565b61009f3361012660201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102dd565b61013461020260201b60201c565b156101ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101ff565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102338261020a565b9050919050565b5f61024482610229565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8151905061026f8161024b565b92915050565b61027e81610229565b8114610288575f80fd5b50565b5f8151905061029981610275565b92915050565b5f80604083850312156102b5576102b4610206565b5b5f6102c285828601610261565b92505060206102d38582860161028b565b9150509250929050565b612df0806102ea5f395ff3fe608060405260043610610113575f3560e01c806384ae2bc61161009f578063d73792a911610063578063d73792a914610303578063e21ff7311461032d578063f04e283e14610369578063f2fde38b14610385578063fee81cf4146103a157610113565b806384ae2bc61461023f5780638da5cb5b146102695780638fe4f5231461029357806399d32fc4146102af578063b0e21e8a146102d957610113565b806346877b1a116100e657806346877b1a146101af57806354d1f13d146101d75780635edb9eb0146101e1578063715018a61461020b5780637b1039991461021557610113565b806313c8e2de1461011757806325692962146101535780632e75ab501461015d57806339a51be514610185575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611f1d565b6103dd565b60405161014a919061220e565b60405180910390f35b61015b6106b7565b005b348015610168575f80fd5b50610183600480360381019061017e9190611f1d565b610708565b005b348015610190575f80fd5b5061019961071a565b6040516101a6919061223d565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d09190612280565b61073f565b005b6101df61078a565b005b3480156101ec575f80fd5b506101f56107c3565b60405161020291906122ba565b60405180910390f35b6102136107ce565b005b348015610220575f80fd5b506102296107e1565b60405161023691906122f3565b60405180910390f35b34801561024a575f80fd5b50610253610806565b604051610260919061231b565b60405180910390f35b348015610274575f80fd5b5061027d610820565b60405161028a919061223d565b60405180910390f35b6102ad60048036038101906102a89190612395565b610848565b005b3480156102ba575f80fd5b506102c3610b5a565b6040516102d091906122ba565b60405180910390f35b3480156102e4575f80fd5b506102ed610b60565b6040516102fa919061231b565b60405180910390f35b34801561030e575f80fd5b50610317610b79565b604051610324919061231b565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190612419565b610b7f565b604051610360919061220e565b60405180910390f35b610383600480360381019061037e9190612280565b6112e5565b005b61039f600480360381019061039a9190612280565b611323565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190612280565b61134c565b6040516103d491906122ba565b60405180910390f35b6103e5611d71565b5f82815481106103f8576103f7612464565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156105e557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161059c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6106c0611365565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071061136f565b8060038190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61074761136f565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6107d661136f565b6107df5f6113a6565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460089054906101000a900467ffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b3068929eee149b4bd2126854036108665763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80868154811061088657610885612464565b5b905f5260205f20906008020190506003543410156108e1575f346003546040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108d893929190612491565b60405180910390fd5b6108eb818561146c565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c16e50ef84846040518363ffffffff1660e01b8152600401610949929190612520565b6020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109899190612577565b6109bf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060040185815481106109d5576109d4612464565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c63ff8dd60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250604051602001610a96919061263c565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610ac19190612694565b6020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190612577565b610b46573383836040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b3d939291906126b4565b60405180910390fd5b503868929eee149b4bd21268555050505050565b60035481565b60045f9054906101000a900467ffffffffffffffff1681565b61271081565b610b87611d71565b610b8f61136f565b3068929eee149b4bd212685403610bad5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610c0684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506115da565b806020019051810190610c199190612b4c565b9050610c27815f0151611673565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160045f9054906101000a900467ffffffffffffffff16610cf89190612bc0565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600460089054906101000a900467ffffffffffffffff16610d479190612bc0565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e001518160060181905550610dae7fe6715795000000000000000000000000000000000000000000000000000000008360200151600161174e565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e1e7fe2089f79000000000000000000000000000000000000000000000000000000008360600151600161174e565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e708260800151835f0151611770565b816004019080519060200190610e87929190611e37565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614610ef857610ef37fc0919948000000000000000000000000000000000000000000000000000000008360400151600161174e565b610fe1565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fc0919948000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f739190612c35565b602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612577565b610fbc575f610fe0565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561120457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111bb575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050925050503868929eee149b4bd212685592915050565b6112ed61136f565b63389a75e1600c52805f526020600c20805442111561131357636f5e88185f526004601cfd5b5f815550611320816113a6565b50565b61132b61136f565b8060601b61134057637448fbae5f526004601cfd5b611349816113a6565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113a4576382b429005f526004601cfd5b565b6113ae611b3a565b15611413577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611469565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60035403156115d6575f60035490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611532575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166003546114ed9190612c4e565b6114f79190612cbc565b905080826115059190612cec565b9150611530818473ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b61158a6002826115429190612cbc565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b6115d44760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b5050565b606081511561166e5760405190506020810160048301805184518501811983525b80861015611654576001860195508551601f1a80611644576001870196508651601f1a5f198652607f811161163257600181013887395b6001607f82160186019550505061164f565b808553600185019450505b6115fb565b81835260208501840385525f845260208401604052505050505b919050565b61169d7f5cd687ca0000000000000000000000000000000000000000000000000000000082611b5b565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016116d6919061223d565b602060405180830381865afa1580156116f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117159190612577565b61174b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f61175d848460200151611b5b565b6117678383611c52565b90509392505050565b6060825167ffffffffffffffff81111561178d5761178c6126e8565b5b6040519080825280602002602001820160405280156117bb5781602001602082028036833780820191505090505b5090505f5b8351811015611b33576118117f8dbd4bfc00000000000000000000000000000000000000000000000000000000858381518110611800576117ff612464565b5b602002602001015160200151611b5b565b83818151811061182457611823612464565b5b60200260200101515f01516118b0577f8dbd4bfc0000000000000000000000000000000000000000000000000000000084828151811061186757611866612464565b5b6020026020010151602001516040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016118a7929190612d1f565b60405180910390fd5b6118f57f8dbd4bfc000000000000000000000000000000000000000000000000000000008583815181106118e7576118e6612464565b5b60200260200101515f61174e565b82828151811061190857611907612464565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f82828151811061195657611955612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a286848151811061198c5761198b612464565b5b6020026020010151604001516040518263ffffffff1660e01b81526004016119b49190612694565b5f60405180830381865afa1580156119ce573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906119f69190612d46565b90505f815114611a87578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611a399190612694565b6020604051808303815f875af1158015611a55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a799190612577565b611a8657611a85612d8d565b5b5b828281518110611a9a57611a99612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611ad057611acf612464565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611af89190612694565b5f604051808303815f87803b158015611b0f575f80fd5b505af1158015611b21573d5f803e3d5ffd5b505050505080806001019150506117c0565b5092915050565b5f90565b5f385f3884865af1611b575763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0a57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611bc99190612c35565b602060405180830381865afa158015611be4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c089190612577565b155b15611c4e5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611c45929190612d1f565b60405180910390fd5b5050565b5f825f0151611c65578260200151611c89565b611c88836020015173ffffffffffffffffffffffffffffffffffffffff16611d0e565b5b9050825f01518015611c985750815b15611d08578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b8152600401611cda9190612694565b5f604051808303815f87803b158015611cf1575f80fd5b505af1158015611d03573d5f803e3d5ffd5b505050505b92915050565b5f611d195f83611d20565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080611d675763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215611ead579160200282015b82811115611eac578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611e55565b5b509050611eba9190611ebe565b5090565b5b80821115611ed5575f815f905550600101611ebf565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b611efc81611eea565b8114611f06575f80fd5b50565b5f81359050611f1781611ef3565b92915050565b5f60208284031215611f3257611f31611ee2565b5b5f611f3f84828501611f09565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f611f8a611f85611f8084611f48565b611f67565b611f48565b9050919050565b5f611f9b82611f70565b9050919050565b5f611fac82611f91565b9050919050565b611fbc81611fa2565b82525050565b5f611fcc82611f91565b9050919050565b611fdc81611fc2565b82525050565b5f611fec82611f91565b9050919050565b611ffc81611fe2565b82525050565b5f61200c82611f70565b9050919050565b5f61201d82612002565b9050919050565b61202d81612013565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61206682611f91565b9050919050565b6120768161205c565b82525050565b5f612087838361206d565b60208301905092915050565b5f602082019050919050565b5f6120a982612033565b6120b3818561203d565b93506120be8361204d565b805f5b838110156120ee5781516120d5888261207c565b97506120e083612093565b9250506001810190506120c1565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b612117816120fb565b82525050565b61212681611eea565b82525050565b5f61213682611f48565b9050919050565b6121468161212c565b82525050565b5f61012083015f8301516121625f860182611fb3565b5060208301516121756020860182611fd3565b5060408301516121886040860182611ff3565b50606083015161219b6060860182612024565b50608083015184820360808601526121b3828261209f565b91505060a08301516121c860a086018261210e565b5060c08301516121db60c086018261210e565b5060e08301516121ee60e086018261211d565b5061010083015161220361010086018261213d565b508091505092915050565b5f6020820190508181035f830152612226818461214c565b905092915050565b6122378161212c565b82525050565b5f6020820190506122505f83018461222e565b92915050565b61225f8161212c565b8114612269575f80fd5b50565b5f8135905061227a81612256565b92915050565b5f6020828403121561229557612294611ee2565b5b5f6122a28482850161226c565b91505092915050565b6122b481611eea565b82525050565b5f6020820190506122cd5f8301846122ab565b92915050565b5f6122dd82611f91565b9050919050565b6122ed816122d3565b82525050565b5f6020820190506123065f8301846122e4565b92915050565b612315816120fb565b82525050565b5f60208201905061232e5f83018461230c565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261235557612354612334565b5b8235905067ffffffffffffffff81111561237257612371612338565b5b60208301915083600182028301111561238e5761238d61233c565b5b9250929050565b5f805f805f608086880312156123ae576123ad611ee2565b5b5f6123bb88828901611f09565b95505060206123cc88828901611f09565b94505060406123dd8882890161226c565b935050606086013567ffffffffffffffff8111156123fe576123fd611ee6565b5b61240a88828901612340565b92509250509295509295909350565b5f806020838503121561242f5761242e611ee2565b5b5f83013567ffffffffffffffff81111561244c5761244b611ee6565b5b61245885828601612340565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506124a45f83018661222e565b6124b160208301856122ab565b6124be60408301846122ab565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6124ff83856124c6565b935061250c8385846124d6565b612515836124e4565b840190509392505050565b5f6020820190508181035f8301526125398184866124f4565b90509392505050565b5f8115159050919050565b61255681612542565b8114612560575f80fd5b50565b5f815190506125718161254d565b92915050565b5f6020828403121561258c5761258b611ee2565b5b5f61259984828501612563565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6125d4826125a2565b6125de81856125ac565b93506125ee8185602086016125bc565b6125f7816124e4565b840191505092915050565b5f604083015f8301516126175f86018261213d565b506020830151848203602086015261262f82826125ca565b9150508091505092915050565b5f6020820190508181035f8301526126548184612602565b905092915050565b5f612666826125a2565b61267081856124c6565b93506126808185602086016125bc565b612689816124e4565b840191505092915050565b5f6020820190508181035f8301526126ac818461265c565b905092915050565b5f6040820190506126c75f83018661222e565b81810360208301526126da8184866124f4565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61271e826124e4565b810181811067ffffffffffffffff8211171561273d5761273c6126e8565b5b80604052505050565b5f61274f611ed9565b905061275b8282612715565b919050565b5f80fd5b5f61276e82611f48565b9050919050565b5f61277f82612764565b9050919050565b61278f81612775565b8114612799575f80fd5b50565b5f815190506127aa81612786565b92915050565b5f815190506127be81612256565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127e2576127e16126e8565b5b6127eb826124e4565b9050602081019050919050565b5f61280a612805846127c8565b612746565b905082815260208101848484011115612826576128256127c4565b5b6128318482856125bc565b509392505050565b5f82601f83011261284d5761284c612334565b5b815161285d8482602086016127f8565b91505092915050565b5f6060828403121561287b5761287a6126e4565b5b6128856060612746565b90505f61289484828501612563565b5f8301525060206128a7848285016127b0565b602083015250604082015167ffffffffffffffff8111156128cb576128ca612760565b5b6128d784828501612839565b60408301525092915050565b5f67ffffffffffffffff8211156128fd576128fc6126e8565b5b602082029050602081019050919050565b5f61292061291b846128e3565b612746565b905080838252602082019050602084028301858111156129435761294261233c565b5b835b8181101561298a57805167ffffffffffffffff81111561296857612967612334565b5b8086016129758982612866565b85526020850194505050602081019050612945565b5050509392505050565b5f82601f8301126129a8576129a7612334565b5b81516129b884826020860161290e565b91505092915050565b6129ca816120fb565b81146129d4575f80fd5b50565b5f815190506129e5816129c1565b92915050565b5f815190506129f981611ef3565b92915050565b5f6101208284031215612a1557612a146126e4565b5b612a20610120612746565b90505f612a2f8482850161279c565b5f83015250602082015167ffffffffffffffff811115612a5257612a51612760565b5b612a5e84828501612866565b602083015250604082015167ffffffffffffffff811115612a8257612a81612760565b5b612a8e84828501612866565b604083015250606082015167ffffffffffffffff811115612ab257612ab1612760565b5b612abe84828501612866565b606083015250608082015167ffffffffffffffff811115612ae257612ae1612760565b5b612aee84828501612994565b60808301525060a0612b02848285016129d7565b60a08301525060c0612b16848285016129d7565b60c08301525060e0612b2a848285016129eb565b60e083015250610100612b3f848285016127b0565b6101008301525092915050565b5f60208284031215612b6157612b60611ee2565b5b5f82015167ffffffffffffffff811115612b7e57612b7d611ee6565b5b612b8a848285016129ff565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bca826120fb565b9150612bd5836120fb565b9250828201905067ffffffffffffffff811115612bf557612bf4612b93565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c2f81612bfb565b82525050565b5f602082019050612c485f830184612c26565b92915050565b5f612c5882611eea565b9150612c6383611eea565b9250828202612c7181611eea565b91508282048414831517612c8857612c87612b93565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cc682611eea565b9150612cd183611eea565b925082612ce157612ce0612c8f565b5b828204905092915050565b5f612cf682611eea565b9150612d0183611eea565b9250828203905081811115612d1957612d18612b93565b5b92915050565b5f604082019050612d325f830185612c26565b612d3f602083018461222e565b9392505050565b5f60208284031215612d5b57612d5a611ee2565b5b5f82015167ffffffffffffffff811115612d7857612d77611ee6565b5b612d8484828501612839565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea264697066735822122000411cf454d3f7b220aadb64ce9e6a010c954ba7ec7e1848fd2534e56a5294e364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH6 0x44364C5BB000 PUSH1 0x3 SSTORE PUSH2 0x3E8 PUSH1 0x4 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x3E8 PUSH1 0x4 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x6E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x30DA CODESIZE SUB DUP1 PUSH2 0x30DA DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH2 0x9F CALLER PUSH2 0x126 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH2 0x2DD JUMP JUMPDEST PUSH2 0x134 PUSH2 0x202 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0x1AC JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x16E JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1FF JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x233 DUP3 PUSH2 0x20A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x244 DUP3 PUSH2 0x229 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x254 DUP2 PUSH2 0x23A JUMP JUMPDEST DUP2 EQ PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x26F DUP2 PUSH2 0x24B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x27E DUP2 PUSH2 0x229 JUMP JUMPDEST DUP2 EQ PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x299 DUP2 PUSH2 0x275 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B5 JUMPI PUSH2 0x2B4 PUSH2 0x206 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2C2 DUP6 DUP3 DUP7 ADD PUSH2 0x261 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2D3 DUP6 DUP3 DUP7 ADD PUSH2 0x28B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2DF0 DUP1 PUSH2 0x2EA PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84AE2BC6 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xE21FF731 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A1 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x84AE2BC6 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x8FE4F523 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x99D32FC4 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x2D9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x46877B1A GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x46877B1A EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5EDB9EB0 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x215 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x13C8E2DE EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x2E75AB50 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x39A51BE5 EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x6B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x190 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x7C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x213 PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x220 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x229 PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x22F3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x806 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x2395 JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0xB5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x353 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34E SWAP2 SWAP1 PUSH2 0x2419 JUMP JUMPDEST PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x383 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x12E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x134C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E5 PUSH2 0x1D71 JUMP JUMPDEST PUSH0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3F8 JUMPI PUSH2 0x3F7 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x59C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x1365 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x710 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x136F JUMP JUMPDEST PUSH2 0x7DF PUSH0 PUSH2 0x13A6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x866 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 DUP1 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP PUSH1 0x3 SLOAD CALLVALUE LT ISZERO PUSH2 0x8E1 JUMPI PUSH0 CALLVALUE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EB DUP2 DUP6 PUSH2 0x146C JUMP JUMPDEST DUP1 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC16E50EF DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x949 SWAP3 SWAP2 SWAP1 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x965 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x989 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D4 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC63FF8DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA96 SWAP2 SWAP1 PUSH2 0x263C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xB46 JUMPI CALLER DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x26B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0xB87 PUSH2 0x1D71 JUMP JUMPDEST PUSH2 0xB8F PUSH2 0x136F JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0xBAD JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH2 0xC06 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x15DA JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x2B4C JUMP JUMPDEST SWAP1 POP PUSH2 0xC27 DUP2 PUSH0 ADD MLOAD PUSH2 0x1673 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP DUP2 PUSH2 0x100 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH0 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xA0 ADD MLOAD PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xCF8 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xC0 ADD MLOAD PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD47 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xDAE PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE1E PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH1 0x2 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE70 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x1770 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x1E37 JUMP JUMPDEST POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEF8 JUMPI PUSH2 0xEF3 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF73 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB2 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xFBC JUMPI PUSH0 PUSH2 0xFE0 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST JUMPDEST DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1204 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x11BB JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP3 POP POP POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12ED PUSH2 0x136F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x1313 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1320 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x132B PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1340 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1349 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x13A4 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x13AE PUSH2 0x1B3A JUMP JUMPDEST ISZERO PUSH2 0x1413 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1469 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD SUB ISZERO PUSH2 0x15D6 JUMPI PUSH0 PUSH1 0x3 SLOAD SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1532 JUMPI PUSH0 PUSH2 0x2710 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x5 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x3 SLOAD PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x2C4E JUMP JUMPDEST PUSH2 0x14F7 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x1505 SWAP2 SWAP1 PUSH2 0x2CEC JUMP JUMPDEST SWAP2 POP PUSH2 0x1530 DUP2 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST PUSH2 0x158A PUSH1 0x2 DUP3 PUSH2 0x1542 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST DUP5 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15D4 SELFBALANCE PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD ISZERO PUSH2 0x166E JUMPI PUSH1 0x40 MLOAD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x4 DUP4 ADD DUP1 MLOAD DUP5 MLOAD DUP6 ADD DUP2 NOT DUP4 MSTORE JUMPDEST DUP1 DUP7 LT ISZERO PUSH2 0x1654 JUMPI PUSH1 0x1 DUP7 ADD SWAP6 POP DUP6 MLOAD PUSH1 0x1F BYTE DUP1 PUSH2 0x1644 JUMPI PUSH1 0x1 DUP8 ADD SWAP7 POP DUP7 MLOAD PUSH1 0x1F BYTE PUSH0 NOT DUP7 MSTORE PUSH1 0x7F DUP2 GT PUSH2 0x1632 JUMPI PUSH1 0x1 DUP2 ADD CODESIZE DUP8 CODECOPY JUMPDEST PUSH1 0x1 PUSH1 0x7F DUP3 AND ADD DUP7 ADD SWAP6 POP POP POP PUSH2 0x164F JUMP JUMPDEST DUP1 DUP6 MSTORE8 PUSH1 0x1 DUP6 ADD SWAP5 POP POP JUMPDEST PUSH2 0x15FB JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP6 ADD DUP5 SUB DUP6 MSTORE PUSH0 DUP5 MSTORE PUSH1 0x20 DUP5 ADD PUSH1 0x40 MSTORE POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169D PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 DUP3 PUSH2 0x1B5B JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFE9FBB80 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1715 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x174B JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x175D DUP5 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST PUSH2 0x1767 DUP4 DUP4 PUSH2 0x1C52 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x178D JUMPI PUSH2 0x178C PUSH2 0x26E8 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 0x17BB 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 PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH2 0x1811 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1800 JUMPI PUSH2 0x17FF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1824 JUMPI PUSH2 0x1823 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH2 0x18B0 JUMPI PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1867 JUMPI PUSH2 0x1866 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18A7 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x18F5 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x18E7 JUMPI PUSH2 0x18E6 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 PUSH2 0x174E JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1908 JUMPI PUSH2 0x1907 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1956 JUMPI PUSH2 0x1955 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4E7165A2 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x198C JUMPI PUSH2 0x198B PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19B4 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F6 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD EQ PUSH2 0x1A87 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFA4CA9B1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A39 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A79 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x2D8D JUMP JUMPDEST JUMPDEST JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A9A JUMPI PUSH2 0x1A99 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1AD0 JUMPI PUSH2 0x1ACF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AF8 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B21 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x17C0 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1B57 JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1C0A JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BC9 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BE4 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C08 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C4E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C45 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH0 ADD MLOAD PUSH2 0x1C65 JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0x1C88 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D0E JUMP JUMPDEST JUMPDEST SWAP1 POP DUP3 PUSH0 ADD MLOAD DUP1 ISZERO PUSH2 0x1C98 JUMPI POP DUP2 JUMPDEST ISZERO PUSH2 0x1D08 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CDA SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D03 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D19 PUSH0 DUP4 PUSH2 0x1D20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP2 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE PUSH1 0x35 PUSH1 0xC DUP5 CREATE SWAP1 POP DUP1 PUSH2 0x1D67 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1EAD JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI DUP3 MLOAD DUP3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E55 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1EBA SWAP2 SWAP1 PUSH2 0x1EBE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH0 DUP2 PUSH0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1EBF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EFC DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP2 EQ PUSH2 0x1F06 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F17 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F32 JUMPI PUSH2 0x1F31 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F3F DUP5 DUP3 DUP6 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F8A PUSH2 0x1F85 PUSH2 0x1F80 DUP5 PUSH2 0x1F48 JUMP JUMPDEST PUSH2 0x1F67 JUMP JUMPDEST PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F9B DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1FAC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBC DUP2 PUSH2 0x1FA2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FCC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FDC DUP2 PUSH2 0x1FC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FEC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FFC DUP2 PUSH2 0x1FE2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x200C DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x201D DUP3 PUSH2 0x2002 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x202D DUP2 PUSH2 0x2013 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2066 DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2076 DUP2 PUSH2 0x205C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2087 DUP4 DUP4 PUSH2 0x206D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20A9 DUP3 PUSH2 0x2033 JUMP JUMPDEST PUSH2 0x20B3 DUP2 DUP6 PUSH2 0x203D JUMP JUMPDEST SWAP4 POP PUSH2 0x20BE DUP4 PUSH2 0x204D JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x20EE JUMPI DUP2 MLOAD PUSH2 0x20D5 DUP9 DUP3 PUSH2 0x207C JUMP JUMPDEST SWAP8 POP PUSH2 0x20E0 DUP4 PUSH2 0x2093 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x20C1 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2117 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2126 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2136 DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2146 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2162 PUSH0 DUP7 ADD DUP3 PUSH2 0x1FB3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2175 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1FD3 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2188 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1FF3 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x219B PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x2024 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x21B3 DUP3 DUP3 PUSH2 0x209F JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x21C8 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x21DB PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x21EE PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x211D JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x2203 PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2226 DUP2 DUP5 PUSH2 0x214C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2237 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2250 PUSH0 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x225F DUP2 PUSH2 0x212C JUMP JUMPDEST DUP2 EQ PUSH2 0x2269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227A DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2295 JUMPI PUSH2 0x2294 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22A2 DUP5 DUP3 DUP6 ADD PUSH2 0x226C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22B4 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22CD PUSH0 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22DD DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2306 PUSH0 DUP4 ADD DUP5 PUSH2 0x22E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2315 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x232E PUSH0 DUP4 ADD DUP5 PUSH2 0x230C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2355 JUMPI PUSH2 0x2354 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2372 JUMPI PUSH2 0x2371 PUSH2 0x2338 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x238E JUMPI PUSH2 0x238D PUSH2 0x233C JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x23AE JUMPI PUSH2 0x23AD PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23BB DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x23CC DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x23DD DUP9 DUP3 DUP10 ADD PUSH2 0x226C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23FE JUMPI PUSH2 0x23FD PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x240A DUP9 DUP3 DUP10 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x242F JUMPI PUSH2 0x242E PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x244C JUMPI PUSH2 0x244B PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2458 DUP6 DUP3 DUP7 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x24A4 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x24B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x24BE PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x24FF DUP4 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x250C DUP4 DUP6 DUP5 PUSH2 0x24D6 JUMP JUMPDEST PUSH2 0x2515 DUP4 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2539 DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2556 DUP2 PUSH2 0x2542 JUMP JUMPDEST DUP2 EQ PUSH2 0x2560 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2571 DUP2 PUSH2 0x254D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258C JUMPI PUSH2 0x258B PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2599 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25D4 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x25DE DUP2 DUP6 PUSH2 0x25AC JUMP JUMPDEST SWAP4 POP PUSH2 0x25EE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x25F7 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2617 PUSH0 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x262F DUP3 DUP3 PUSH2 0x25CA JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2654 DUP2 DUP5 PUSH2 0x2602 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2666 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x2670 DUP2 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x2680 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x2689 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x26AC DUP2 DUP5 PUSH2 0x265C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x26C7 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26DA DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x271E DUP3 PUSH2 0x24E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x273D JUMPI PUSH2 0x273C PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x274F PUSH2 0x1ED9 JUMP JUMPDEST SWAP1 POP PUSH2 0x275B DUP3 DUP3 PUSH2 0x2715 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x276E DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x277F DUP3 PUSH2 0x2764 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x278F DUP2 PUSH2 0x2775 JUMP JUMPDEST DUP2 EQ PUSH2 0x2799 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27AA DUP2 PUSH2 0x2786 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27BE DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x27E2 JUMPI PUSH2 0x27E1 PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH2 0x27EB DUP3 PUSH2 0x24E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x280A PUSH2 0x2805 DUP5 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2826 JUMPI PUSH2 0x2825 PUSH2 0x27C4 JUMP JUMPDEST JUMPDEST PUSH2 0x2831 DUP5 DUP3 DUP6 PUSH2 0x25BC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x284D JUMPI PUSH2 0x284C PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x285D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x27F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2885 PUSH1 0x60 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2894 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x28A7 DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28CB JUMPI PUSH2 0x28CA PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x28D7 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FD JUMPI PUSH2 0x28FC PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2920 PUSH2 0x291B DUP5 PUSH2 0x28E3 JUMP JUMPDEST PUSH2 0x2746 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 0x2943 JUMPI PUSH2 0x2942 PUSH2 0x233C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298A JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2968 JUMPI PUSH2 0x2967 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x2975 DUP10 DUP3 PUSH2 0x2866 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2945 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29A8 JUMPI PUSH2 0x29A7 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x29B8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x290E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29CA DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP2 EQ PUSH2 0x29D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29E5 DUP2 PUSH2 0x29C1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29F9 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A15 JUMPI PUSH2 0x2A14 PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2A20 PUSH2 0x120 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A2F DUP5 DUP3 DUP6 ADD PUSH2 0x279C JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A52 JUMPI PUSH2 0x2A51 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A5E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A82 JUMPI PUSH2 0x2A81 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A8E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AB2 JUMPI PUSH2 0x2AB1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2ABE DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE2 JUMPI PUSH2 0x2AE1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2AEE DUP5 DUP3 DUP6 ADD PUSH2 0x2994 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x2B02 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x2B16 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x2B2A DUP5 DUP3 DUP6 ADD PUSH2 0x29EB JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x2B3F DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B60 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B7E JUMPI PUSH2 0x2B7D PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2B8A DUP5 DUP3 DUP6 ADD PUSH2 0x29FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2BCA DUP3 PUSH2 0x20FB JUMP JUMPDEST SWAP2 POP PUSH2 0x2BD5 DUP4 PUSH2 0x20FB JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BF5 JUMPI PUSH2 0x2BF4 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C2F DUP2 PUSH2 0x2BFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C48 PUSH0 DUP4 ADD DUP5 PUSH2 0x2C26 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C58 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2C63 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x2C71 DUP2 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2C88 JUMPI PUSH2 0x2C87 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2CC6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2CD1 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2CE1 JUMPI PUSH2 0x2CE0 PUSH2 0x2C8F JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2CF6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2D01 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D19 JUMPI PUSH2 0x2D18 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D32 PUSH0 DUP4 ADD DUP6 PUSH2 0x2C26 JUMP JUMPDEST PUSH2 0x2D3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D5B JUMPI PUSH2 0x2D5A PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D78 JUMPI PUSH2 0x2D77 PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2D84 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP COINBASE SHR DELEGATECALL SLOAD 0xD3 0xF7 0xB2 KECCAK256 0xAA 0xDB PUSH5 0xCE9E6A010C SWAP6 0x4B 0xA7 0xEC PUSH31 0x1848FD2534E56A5294E364736F6C6343000819003300000000000000000000 ","sourceMap":"1093:10818:29:-:0;;;1854:14;1828:40;;1950:5;1922:33;;;;;;;;;;;;;;;;;;;;2044:5;2016:33;;;;;;;;;;;;;;;;;;;;2240:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2317:28;2334:10;2317:16;;;:28;;:::i;:::-;2366:9;2355:8;;:20;;;;;;;;;;;;;;;;;;2407;2385:19;;:42;;;;;;;;;;;;;;;;;;2240:194;;1093:10818;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4348:78::-;4412:10;4348:78;:::o;88:117:53:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:189::-;947:5;978:6;972:13;963:22;;994:56;1044:5;994:56;:::i;:::-;867:189;;;;:::o;1062:122::-;1135:24;1153:5;1135:24;:::i;:::-;1128:5;1125:35;1115:63;;1174:1;1171;1164:12;1115:63;1062:122;:::o;1190:143::-;1247:5;1278:6;1272:13;1263:22;;1294:33;1321:5;1294:33;:::i;:::-;1190:143;;;;:::o;1339:553::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:87;1728:7;1719:6;1708:9;1704:22;1649:87;:::i;:::-;1639:97;;1595:151;1785:2;1811:64;1867:7;1858:6;1847:9;1843:22;1811:64;:::i;:::-;1801:74;;1756:129;1339:553;;;;;:::o;1093:10818:29:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@FEE_DENOMINATOR_11625":{"entryPoint":2937,"id":11625,"parameterSlots":0,"returnSlots":0},"@_checkBudget_11979":{"entryPoint":5747,"id":11979,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":4975,"id":6322,"parameterSlots":0,"returnSlots":0},"@_checkTarget_12011":{"entryPoint":7003,"id":12011,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":6970,"id":6288,"parameterSlots":0,"returnSlots":1},"@_makeIncentives_12160":{"entryPoint":6000,"id":12160,"parameterSlots":2,"returnSlots":1},"@_makeTarget_12038":{"entryPoint":5966,"id":12038,"parameterSlots":3,"returnSlots":1},"@_maybeClone_12198":{"entryPoint":7250,"id":12198,"parameterSlots":2,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4965,"id":6333,"parameterSlots":0,"returnSlots":1},"@_routeClaimFee_12264":{"entryPoint":5228,"id":12264,"parameterSlots":2,"returnSlots":0},"@_setOwner_6316":{"entryPoint":5030,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1930,"id":6382,"parameterSlots":0,"returnSlots":0},"@cdDecompress_11007":{"entryPoint":5594,"id":11007,"parameterSlots":1,"returnSlots":1},"@claimFee_11613":{"entryPoint":2906,"id":11613,"parameterSlots":0,"returnSlots":0},"@claimIncentive_11898":{"entryPoint":2120,"id":11898,"parameterSlots":5,"returnSlots":0},"@clone_9265":{"entryPoint":7438,"id":9265,"parameterSlots":1,"returnSlots":1},"@clone_9277":{"entryPoint":7456,"id":9277,"parameterSlots":2,"returnSlots":1},"@completeOwnershipHandover_6396":{"entryPoint":4837,"id":6396,"parameterSlots":1,"returnSlots":0},"@createBoost_11815":{"entryPoint":2943,"id":11815,"parameterSlots":2,"returnSlots":1},"@getBoostCount_11922":{"entryPoint":1987,"id":11922,"parameterSlots":0,"returnSlots":1},"@getBoost_11912":{"entryPoint":989,"id":11912,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":2080,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4940,"id":6414,"parameterSlots":1,"returnSlots":1},"@protocolFeeReceiver_11609":{"entryPoint":1818,"id":11609,"parameterSlots":0,"returnSlots":0},"@protocolFee_11617":{"entryPoint":2912,"id":11617,"parameterSlots":0,"returnSlots":0},"@referralFee_11621":{"entryPoint":2054,"id":11621,"parameterSlots":0,"returnSlots":0},"@registry_11606":{"entryPoint":2017,"id":11606,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_6361":{"entryPoint":1998,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1719,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11089":{"entryPoint":6974,"id":11089,"parameterSlots":2,"returnSlots":0},"@setClaimFee_11948":{"entryPoint":1800,"id":11948,"parameterSlots":1,"returnSlots":0},"@setProtocolFeeReceiver_11935":{"entryPoint":1855,"id":11935,"parameterSlots":1,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":4899,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory":{"entryPoint":10510,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":10232,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":8812,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":10160,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory":{"entryPoint":10644,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":9571,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":9024,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":10297,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_Budget_$13669_fromMemory":{"entryPoint":10140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory":{"entryPoint":10751,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory":{"entryPoint":10342,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":7945,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":10731,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64_fromMemory":{"entryPoint":10711,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":9591,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":9241,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$11597_memory_ptr_fromMemory":{"entryPoint":11084,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":7965,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr":{"entryPoint":9109,"id":null,"parameterSlots":2,"returnSlots":5},"abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address":{"entryPoint":8316,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":8509,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":8750,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":8351,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":11302,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":9460,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":9674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":9820,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Action_$12758_to_t_address":{"entryPoint":8115,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_AllowList_$13154_to_t_address":{"entryPoint":8179,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack":{"entryPoint":8932,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Budget_$13669_to_t_address_payable":{"entryPoint":8228,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Incentive_$17260_to_t_address":{"entryPoint":8301,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Validator_$18282_to_t_address":{"entryPoint":8147,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack":{"entryPoint":8524,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack":{"entryPoint":9730,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":8477,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":8875,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64":{"entryPoint":8462,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":8972,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":8765,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9908,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":9361,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":11317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed":{"entryPoint":11551,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9504,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9876,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_BoostRegistry_$12680__to_t_address__fromStack_reversed":{"entryPoint":8947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Boost_$17616_memory_ptr__to_t_struct$_Boost_$17616_memory_ptr__fromStack_reversed":{"entryPoint":8718,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed":{"entryPoint":9788,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":8890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":8987,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":10054,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":7897,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr":{"entryPoint":10467,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":10184,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr":{"entryPoint":8269,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr":{"entryPoint":8243,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":9634,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr":{"entryPoint":8339,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":8253,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":9644,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":9414,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":11200,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11452,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11342,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11500,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":8492,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":10084,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":9538,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":11259,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_Budget_$13669":{"entryPoint":10101,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":8008,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":7914,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":8443,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Action_$12758_to_t_address":{"entryPoint":8098,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_AllowList_$13154_to_t_address":{"entryPoint":8162,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_BoostRegistry_$12680_to_t_address":{"entryPoint":8915,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Budget_$13669_to_t_address_payable":{"entryPoint":8211,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Incentive_$17260_to_t_address":{"entryPoint":8284,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$18282_to_t_address":{"entryPoint":8130,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":8081,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address_payable":{"entryPoint":8194,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":8048,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":9430,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":9660,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":10005,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":8039,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x01":{"entryPoint":11661,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":11155,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11407,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9316,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9960,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":9016,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":9012,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":9956,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":10080,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":9020,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":10180,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":7910,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":7906,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":9444,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":8790,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":9549,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_Budget_$13669":{"entryPoint":10118,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":7923,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":10689,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30349:53","nodeType":"YulBlock","src":"0:30349:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"379:32:53","nodeType":"YulBlock","src":"379:32:53","statements":[{"nativeSrc":"389:16:53","nodeType":"YulAssignment","src":"389:16:53","value":{"name":"value","nativeSrc":"400:5:53","nodeType":"YulIdentifier","src":"400:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:53","nodeType":"YulIdentifier","src":"389:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"334:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:53","nodeType":"YulTypedName","src":"361:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:53","nodeType":"YulTypedName","src":"371:7:53","type":""}],"src":"334:77:53"},{"body":{"nativeSrc":"460:79:53","nodeType":"YulBlock","src":"460:79:53","statements":[{"body":{"nativeSrc":"517:16:53","nodeType":"YulBlock","src":"517:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:53","nodeType":"YulLiteral","src":"526:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:53","nodeType":"YulLiteral","src":"529:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:53","nodeType":"YulIdentifier","src":"519:6:53"},"nativeSrc":"519:12:53","nodeType":"YulFunctionCall","src":"519:12:53"},"nativeSrc":"519:12:53","nodeType":"YulExpressionStatement","src":"519:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:53","nodeType":"YulIdentifier","src":"483:5:53"},{"arguments":[{"name":"value","nativeSrc":"508:5:53","nodeType":"YulIdentifier","src":"508:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"490:17:53","nodeType":"YulIdentifier","src":"490:17:53"},"nativeSrc":"490:24:53","nodeType":"YulFunctionCall","src":"490:24:53"}],"functionName":{"name":"eq","nativeSrc":"480:2:53","nodeType":"YulIdentifier","src":"480:2:53"},"nativeSrc":"480:35:53","nodeType":"YulFunctionCall","src":"480:35:53"}],"functionName":{"name":"iszero","nativeSrc":"473:6:53","nodeType":"YulIdentifier","src":"473:6:53"},"nativeSrc":"473:43:53","nodeType":"YulFunctionCall","src":"473:43:53"},"nativeSrc":"470:63:53","nodeType":"YulIf","src":"470:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"417:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:53","nodeType":"YulTypedName","src":"453:5:53","type":""}],"src":"417:122:53"},{"body":{"nativeSrc":"597:87:53","nodeType":"YulBlock","src":"597:87:53","statements":[{"nativeSrc":"607:29:53","nodeType":"YulAssignment","src":"607:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:53","nodeType":"YulIdentifier","src":"629:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:53","nodeType":"YulIdentifier","src":"616:12:53"},"nativeSrc":"616:20:53","nodeType":"YulFunctionCall","src":"616:20:53"},"variableNames":[{"name":"value","nativeSrc":"607:5:53","nodeType":"YulIdentifier","src":"607:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:53","nodeType":"YulIdentifier","src":"672:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"645:26:53","nodeType":"YulIdentifier","src":"645:26:53"},"nativeSrc":"645:33:53","nodeType":"YulFunctionCall","src":"645:33:53"},"nativeSrc":"645:33:53","nodeType":"YulExpressionStatement","src":"645:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"545:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:53","nodeType":"YulTypedName","src":"575:6:53","type":""},{"name":"end","nativeSrc":"583:3:53","nodeType":"YulTypedName","src":"583:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:53","nodeType":"YulTypedName","src":"591:5:53","type":""}],"src":"545:139:53"},{"body":{"nativeSrc":"756:263:53","nodeType":"YulBlock","src":"756:263:53","statements":[{"body":{"nativeSrc":"802:83:53","nodeType":"YulBlock","src":"802:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"804:77:53","nodeType":"YulIdentifier","src":"804:77:53"},"nativeSrc":"804:79:53","nodeType":"YulFunctionCall","src":"804:79:53"},"nativeSrc":"804:79:53","nodeType":"YulExpressionStatement","src":"804:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"777:7:53","nodeType":"YulIdentifier","src":"777:7:53"},{"name":"headStart","nativeSrc":"786:9:53","nodeType":"YulIdentifier","src":"786:9:53"}],"functionName":{"name":"sub","nativeSrc":"773:3:53","nodeType":"YulIdentifier","src":"773:3:53"},"nativeSrc":"773:23:53","nodeType":"YulFunctionCall","src":"773:23:53"},{"kind":"number","nativeSrc":"798:2:53","nodeType":"YulLiteral","src":"798:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"769:3:53","nodeType":"YulIdentifier","src":"769:3:53"},"nativeSrc":"769:32:53","nodeType":"YulFunctionCall","src":"769:32:53"},"nativeSrc":"766:119:53","nodeType":"YulIf","src":"766:119:53"},{"nativeSrc":"895:117:53","nodeType":"YulBlock","src":"895:117:53","statements":[{"nativeSrc":"910:15:53","nodeType":"YulVariableDeclaration","src":"910:15:53","value":{"kind":"number","nativeSrc":"924:1:53","nodeType":"YulLiteral","src":"924:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"914:6:53","nodeType":"YulTypedName","src":"914:6:53","type":""}]},{"nativeSrc":"939:63:53","nodeType":"YulAssignment","src":"939:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"974:9:53","nodeType":"YulIdentifier","src":"974:9:53"},{"name":"offset","nativeSrc":"985:6:53","nodeType":"YulIdentifier","src":"985:6:53"}],"functionName":{"name":"add","nativeSrc":"970:3:53","nodeType":"YulIdentifier","src":"970:3:53"},"nativeSrc":"970:22:53","nodeType":"YulFunctionCall","src":"970:22:53"},{"name":"dataEnd","nativeSrc":"994:7:53","nodeType":"YulIdentifier","src":"994:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"949:20:53","nodeType":"YulIdentifier","src":"949:20:53"},"nativeSrc":"949:53:53","nodeType":"YulFunctionCall","src":"949:53:53"},"variableNames":[{"name":"value0","nativeSrc":"939:6:53","nodeType":"YulIdentifier","src":"939:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"690:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"726:9:53","nodeType":"YulTypedName","src":"726:9:53","type":""},{"name":"dataEnd","nativeSrc":"737:7:53","nodeType":"YulTypedName","src":"737:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"749:6:53","nodeType":"YulTypedName","src":"749:6:53","type":""}],"src":"690:329:53"},{"body":{"nativeSrc":"1070:81:53","nodeType":"YulBlock","src":"1070:81:53","statements":[{"nativeSrc":"1080:65:53","nodeType":"YulAssignment","src":"1080:65:53","value":{"arguments":[{"name":"value","nativeSrc":"1095:5:53","nodeType":"YulIdentifier","src":"1095:5:53"},{"kind":"number","nativeSrc":"1102:42:53","nodeType":"YulLiteral","src":"1102:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1091:3:53","nodeType":"YulIdentifier","src":"1091:3:53"},"nativeSrc":"1091:54:53","nodeType":"YulFunctionCall","src":"1091:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1080:7:53","nodeType":"YulIdentifier","src":"1080:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1025:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1052:5:53","nodeType":"YulTypedName","src":"1052:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1062:7:53","nodeType":"YulTypedName","src":"1062:7:53","type":""}],"src":"1025:126:53"},{"body":{"nativeSrc":"1189:28:53","nodeType":"YulBlock","src":"1189:28:53","statements":[{"nativeSrc":"1199:12:53","nodeType":"YulAssignment","src":"1199:12:53","value":{"name":"value","nativeSrc":"1206:5:53","nodeType":"YulIdentifier","src":"1206:5:53"},"variableNames":[{"name":"ret","nativeSrc":"1199:3:53","nodeType":"YulIdentifier","src":"1199:3:53"}]}]},"name":"identity","nativeSrc":"1157:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1175:5:53","nodeType":"YulTypedName","src":"1175:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1185:3:53","nodeType":"YulTypedName","src":"1185:3:53","type":""}],"src":"1157:60:53"},{"body":{"nativeSrc":"1283:82:53","nodeType":"YulBlock","src":"1283:82:53","statements":[{"nativeSrc":"1293:66:53","nodeType":"YulAssignment","src":"1293:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1351:5:53","nodeType":"YulIdentifier","src":"1351:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1333:17:53","nodeType":"YulIdentifier","src":"1333:17:53"},"nativeSrc":"1333:24:53","nodeType":"YulFunctionCall","src":"1333:24:53"}],"functionName":{"name":"identity","nativeSrc":"1324:8:53","nodeType":"YulIdentifier","src":"1324:8:53"},"nativeSrc":"1324:34:53","nodeType":"YulFunctionCall","src":"1324:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1306:17:53","nodeType":"YulIdentifier","src":"1306:17:53"},"nativeSrc":"1306:53:53","nodeType":"YulFunctionCall","src":"1306:53:53"},"variableNames":[{"name":"converted","nativeSrc":"1293:9:53","nodeType":"YulIdentifier","src":"1293:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1223:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1263:5:53","nodeType":"YulTypedName","src":"1263:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1273:9:53","nodeType":"YulTypedName","src":"1273:9:53","type":""}],"src":"1223:142:53"},{"body":{"nativeSrc":"1431:66:53","nodeType":"YulBlock","src":"1431:66:53","statements":[{"nativeSrc":"1441:50:53","nodeType":"YulAssignment","src":"1441:50:53","value":{"arguments":[{"name":"value","nativeSrc":"1485:5:53","nodeType":"YulIdentifier","src":"1485:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1454:30:53","nodeType":"YulIdentifier","src":"1454:30:53"},"nativeSrc":"1454:37:53","nodeType":"YulFunctionCall","src":"1454:37:53"},"variableNames":[{"name":"converted","nativeSrc":"1441:9:53","nodeType":"YulIdentifier","src":"1441:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"1371:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1411:5:53","nodeType":"YulTypedName","src":"1411:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1421:9:53","nodeType":"YulTypedName","src":"1421:9:53","type":""}],"src":"1371:126:53"},{"body":{"nativeSrc":"1579:66:53","nodeType":"YulBlock","src":"1579:66:53","statements":[{"nativeSrc":"1589:50:53","nodeType":"YulAssignment","src":"1589:50:53","value":{"arguments":[{"name":"value","nativeSrc":"1633:5:53","nodeType":"YulIdentifier","src":"1633:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1602:30:53","nodeType":"YulIdentifier","src":"1602:30:53"},"nativeSrc":"1602:37:53","nodeType":"YulFunctionCall","src":"1602:37:53"},"variableNames":[{"name":"converted","nativeSrc":"1589:9:53","nodeType":"YulIdentifier","src":"1589:9:53"}]}]},"name":"convert_t_contract$_Action_$12758_to_t_address","nativeSrc":"1503:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1559:5:53","nodeType":"YulTypedName","src":"1559:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1569:9:53","nodeType":"YulTypedName","src":"1569:9:53","type":""}],"src":"1503:142:53"},{"body":{"nativeSrc":"1722:82:53","nodeType":"YulBlock","src":"1722:82:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1739:3:53","nodeType":"YulIdentifier","src":"1739:3:53"},{"arguments":[{"name":"value","nativeSrc":"1791:5:53","nodeType":"YulIdentifier","src":"1791:5:53"}],"functionName":{"name":"convert_t_contract$_Action_$12758_to_t_address","nativeSrc":"1744:46:53","nodeType":"YulIdentifier","src":"1744:46:53"},"nativeSrc":"1744:53:53","nodeType":"YulFunctionCall","src":"1744:53:53"}],"functionName":{"name":"mstore","nativeSrc":"1732:6:53","nodeType":"YulIdentifier","src":"1732:6:53"},"nativeSrc":"1732:66:53","nodeType":"YulFunctionCall","src":"1732:66:53"},"nativeSrc":"1732:66:53","nodeType":"YulExpressionStatement","src":"1732:66:53"}]},"name":"abi_encode_t_contract$_Action_$12758_to_t_address","nativeSrc":"1651:153:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1710:5:53","nodeType":"YulTypedName","src":"1710:5:53","type":""},{"name":"pos","nativeSrc":"1717:3:53","nodeType":"YulTypedName","src":"1717:3:53","type":""}],"src":"1651:153:53"},{"body":{"nativeSrc":"1889:66:53","nodeType":"YulBlock","src":"1889:66:53","statements":[{"nativeSrc":"1899:50:53","nodeType":"YulAssignment","src":"1899:50:53","value":{"arguments":[{"name":"value","nativeSrc":"1943:5:53","nodeType":"YulIdentifier","src":"1943:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1912:30:53","nodeType":"YulIdentifier","src":"1912:30:53"},"nativeSrc":"1912:37:53","nodeType":"YulFunctionCall","src":"1912:37:53"},"variableNames":[{"name":"converted","nativeSrc":"1899:9:53","nodeType":"YulIdentifier","src":"1899:9:53"}]}]},"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"1810:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1869:5:53","nodeType":"YulTypedName","src":"1869:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1879:9:53","nodeType":"YulTypedName","src":"1879:9:53","type":""}],"src":"1810:145:53"},{"body":{"nativeSrc":"2035:85:53","nodeType":"YulBlock","src":"2035:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2052:3:53","nodeType":"YulIdentifier","src":"2052:3:53"},{"arguments":[{"name":"value","nativeSrc":"2107:5:53","nodeType":"YulIdentifier","src":"2107:5:53"}],"functionName":{"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"2057:49:53","nodeType":"YulIdentifier","src":"2057:49:53"},"nativeSrc":"2057:56:53","nodeType":"YulFunctionCall","src":"2057:56:53"}],"functionName":{"name":"mstore","nativeSrc":"2045:6:53","nodeType":"YulIdentifier","src":"2045:6:53"},"nativeSrc":"2045:69:53","nodeType":"YulFunctionCall","src":"2045:69:53"},"nativeSrc":"2045:69:53","nodeType":"YulExpressionStatement","src":"2045:69:53"}]},"name":"abi_encode_t_contract$_Validator_$18282_to_t_address","nativeSrc":"1961:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulTypedName","src":"2023:5:53","type":""},{"name":"pos","nativeSrc":"2030:3:53","nodeType":"YulTypedName","src":"2030:3:53","type":""}],"src":"1961:159:53"},{"body":{"nativeSrc":"2205:66:53","nodeType":"YulBlock","src":"2205:66:53","statements":[{"nativeSrc":"2215:50:53","nodeType":"YulAssignment","src":"2215:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2259:5:53","nodeType":"YulIdentifier","src":"2259:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2228:30:53","nodeType":"YulIdentifier","src":"2228:30:53"},"nativeSrc":"2228:37:53","nodeType":"YulFunctionCall","src":"2228:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2215:9:53","nodeType":"YulIdentifier","src":"2215:9:53"}]}]},"name":"convert_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"2126:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2185:5:53","nodeType":"YulTypedName","src":"2185:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2195:9:53","nodeType":"YulTypedName","src":"2195:9:53","type":""}],"src":"2126:145:53"},{"body":{"nativeSrc":"2351:85:53","nodeType":"YulBlock","src":"2351:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2368:3:53","nodeType":"YulIdentifier","src":"2368:3:53"},{"arguments":[{"name":"value","nativeSrc":"2423:5:53","nodeType":"YulIdentifier","src":"2423:5:53"}],"functionName":{"name":"convert_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"2373:49:53","nodeType":"YulIdentifier","src":"2373:49:53"},"nativeSrc":"2373:56:53","nodeType":"YulFunctionCall","src":"2373:56:53"}],"functionName":{"name":"mstore","nativeSrc":"2361:6:53","nodeType":"YulIdentifier","src":"2361:6:53"},"nativeSrc":"2361:69:53","nodeType":"YulFunctionCall","src":"2361:69:53"},"nativeSrc":"2361:69:53","nodeType":"YulExpressionStatement","src":"2361:69:53"}]},"name":"abi_encode_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"2277:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2339:5:53","nodeType":"YulTypedName","src":"2339:5:53","type":""},{"name":"pos","nativeSrc":"2346:3:53","nodeType":"YulTypedName","src":"2346:3:53","type":""}],"src":"2277:159:53"},{"body":{"nativeSrc":"2510:66:53","nodeType":"YulBlock","src":"2510:66:53","statements":[{"nativeSrc":"2520:50:53","nodeType":"YulAssignment","src":"2520:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2564:5:53","nodeType":"YulIdentifier","src":"2564:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2533:30:53","nodeType":"YulIdentifier","src":"2533:30:53"},"nativeSrc":"2533:37:53","nodeType":"YulFunctionCall","src":"2533:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2520:9:53","nodeType":"YulIdentifier","src":"2520:9:53"}]}]},"name":"convert_t_uint160_to_t_address_payable","nativeSrc":"2442:134:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2490:5:53","nodeType":"YulTypedName","src":"2490:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2500:9:53","nodeType":"YulTypedName","src":"2500:9:53","type":""}],"src":"2442:134:53"},{"body":{"nativeSrc":"2666:74:53","nodeType":"YulBlock","src":"2666:74:53","statements":[{"nativeSrc":"2676:58:53","nodeType":"YulAssignment","src":"2676:58:53","value":{"arguments":[{"name":"value","nativeSrc":"2728:5:53","nodeType":"YulIdentifier","src":"2728:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address_payable","nativeSrc":"2689:38:53","nodeType":"YulIdentifier","src":"2689:38:53"},"nativeSrc":"2689:45:53","nodeType":"YulFunctionCall","src":"2689:45:53"},"variableNames":[{"name":"converted","nativeSrc":"2676:9:53","nodeType":"YulIdentifier","src":"2676:9:53"}]}]},"name":"convert_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"2582:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2646:5:53","nodeType":"YulTypedName","src":"2646:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2656:9:53","nodeType":"YulTypedName","src":"2656:9:53","type":""}],"src":"2582:158:53"},{"body":{"nativeSrc":"2825:90:53","nodeType":"YulBlock","src":"2825:90:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2842:3:53","nodeType":"YulIdentifier","src":"2842:3:53"},{"arguments":[{"name":"value","nativeSrc":"2902:5:53","nodeType":"YulIdentifier","src":"2902:5:53"}],"functionName":{"name":"convert_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"2847:54:53","nodeType":"YulIdentifier","src":"2847:54:53"},"nativeSrc":"2847:61:53","nodeType":"YulFunctionCall","src":"2847:61:53"}],"functionName":{"name":"mstore","nativeSrc":"2835:6:53","nodeType":"YulIdentifier","src":"2835:6:53"},"nativeSrc":"2835:74:53","nodeType":"YulFunctionCall","src":"2835:74:53"},"nativeSrc":"2835:74:53","nodeType":"YulExpressionStatement","src":"2835:74:53"}]},"name":"abi_encode_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"2746:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2813:5:53","nodeType":"YulTypedName","src":"2813:5:53","type":""},{"name":"pos","nativeSrc":"2820:3:53","nodeType":"YulTypedName","src":"2820:3:53","type":""}],"src":"2746:169:53"},{"body":{"nativeSrc":"3014:40:53","nodeType":"YulBlock","src":"3014:40:53","statements":[{"nativeSrc":"3025:22:53","nodeType":"YulAssignment","src":"3025:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3041:5:53","nodeType":"YulIdentifier","src":"3041:5:53"}],"functionName":{"name":"mload","nativeSrc":"3035:5:53","nodeType":"YulIdentifier","src":"3035:5:53"},"nativeSrc":"3035:12:53","nodeType":"YulFunctionCall","src":"3035:12:53"},"variableNames":[{"name":"length","nativeSrc":"3025:6:53","nodeType":"YulIdentifier","src":"3025:6:53"}]}]},"name":"array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"2921:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2997:5:53","nodeType":"YulTypedName","src":"2997:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3007:6:53","nodeType":"YulTypedName","src":"3007:6:53","type":""}],"src":"2921:133:53"},{"body":{"nativeSrc":"3161:73:53","nodeType":"YulBlock","src":"3161:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3178:3:53","nodeType":"YulIdentifier","src":"3178:3:53"},{"name":"length","nativeSrc":"3183:6:53","nodeType":"YulIdentifier","src":"3183:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3171:6:53","nodeType":"YulIdentifier","src":"3171:6:53"},"nativeSrc":"3171:19:53","nodeType":"YulFunctionCall","src":"3171:19:53"},"nativeSrc":"3171:19:53","nodeType":"YulExpressionStatement","src":"3171:19:53"},{"nativeSrc":"3199:29:53","nodeType":"YulAssignment","src":"3199:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3218:3:53","nodeType":"YulIdentifier","src":"3218:3:53"},{"kind":"number","nativeSrc":"3223:4:53","nodeType":"YulLiteral","src":"3223:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3214:3:53","nodeType":"YulIdentifier","src":"3214:3:53"},"nativeSrc":"3214:14:53","nodeType":"YulFunctionCall","src":"3214:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3199:11:53","nodeType":"YulIdentifier","src":"3199:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"3060:174:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3133:3:53","nodeType":"YulTypedName","src":"3133:3:53","type":""},{"name":"length","nativeSrc":"3138:6:53","nodeType":"YulTypedName","src":"3138:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3149:11:53","nodeType":"YulTypedName","src":"3149:11:53","type":""}],"src":"3060:174:53"},{"body":{"nativeSrc":"3331:60:53","nodeType":"YulBlock","src":"3331:60:53","statements":[{"nativeSrc":"3341:11:53","nodeType":"YulAssignment","src":"3341:11:53","value":{"name":"ptr","nativeSrc":"3349:3:53","nodeType":"YulIdentifier","src":"3349:3:53"},"variableNames":[{"name":"data","nativeSrc":"3341:4:53","nodeType":"YulIdentifier","src":"3341:4:53"}]},{"nativeSrc":"3362:22:53","nodeType":"YulAssignment","src":"3362:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"3374:3:53","nodeType":"YulIdentifier","src":"3374:3:53"},{"kind":"number","nativeSrc":"3379:4:53","nodeType":"YulLiteral","src":"3379:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3370:3:53","nodeType":"YulIdentifier","src":"3370:3:53"},"nativeSrc":"3370:14:53","nodeType":"YulFunctionCall","src":"3370:14:53"},"variableNames":[{"name":"data","nativeSrc":"3362:4:53","nodeType":"YulIdentifier","src":"3362:4:53"}]}]},"name":"array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"3240:151:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"3326:4:53","nodeType":"YulTypedName","src":"3326:4:53","type":""}],"src":"3240:151:53"},{"body":{"nativeSrc":"3476:66:53","nodeType":"YulBlock","src":"3476:66:53","statements":[{"nativeSrc":"3486:50:53","nodeType":"YulAssignment","src":"3486:50:53","value":{"arguments":[{"name":"value","nativeSrc":"3530:5:53","nodeType":"YulIdentifier","src":"3530:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3499:30:53","nodeType":"YulIdentifier","src":"3499:30:53"},"nativeSrc":"3499:37:53","nodeType":"YulFunctionCall","src":"3499:37:53"},"variableNames":[{"name":"converted","nativeSrc":"3486:9:53","nodeType":"YulIdentifier","src":"3486:9:53"}]}]},"name":"convert_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3397:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3456:5:53","nodeType":"YulTypedName","src":"3456:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3466:9:53","nodeType":"YulTypedName","src":"3466:9:53","type":""}],"src":"3397:145:53"},{"body":{"nativeSrc":"3622:85:53","nodeType":"YulBlock","src":"3622:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3639:3:53","nodeType":"YulIdentifier","src":"3639:3:53"},{"arguments":[{"name":"value","nativeSrc":"3694:5:53","nodeType":"YulIdentifier","src":"3694:5:53"}],"functionName":{"name":"convert_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3644:49:53","nodeType":"YulIdentifier","src":"3644:49:53"},"nativeSrc":"3644:56:53","nodeType":"YulFunctionCall","src":"3644:56:53"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:53","nodeType":"YulIdentifier","src":"3632:6:53"},"nativeSrc":"3632:69:53","nodeType":"YulFunctionCall","src":"3632:69:53"},"nativeSrc":"3632:69:53","nodeType":"YulExpressionStatement","src":"3632:69:53"}]},"name":"abi_encode_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3548:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3610:5:53","nodeType":"YulTypedName","src":"3610:5:53","type":""},{"name":"pos","nativeSrc":"3617:3:53","nodeType":"YulTypedName","src":"3617:3:53","type":""}],"src":"3548:159:53"},{"body":{"nativeSrc":"3812:118:53","nodeType":"YulBlock","src":"3812:118:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"3875:6:53","nodeType":"YulIdentifier","src":"3875:6:53"},{"name":"pos","nativeSrc":"3883:3:53","nodeType":"YulIdentifier","src":"3883:3:53"}],"functionName":{"name":"abi_encode_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3822:52:53","nodeType":"YulIdentifier","src":"3822:52:53"},"nativeSrc":"3822:65:53","nodeType":"YulFunctionCall","src":"3822:65:53"},"nativeSrc":"3822:65:53","nodeType":"YulExpressionStatement","src":"3822:65:53"},{"nativeSrc":"3896:28:53","nodeType":"YulAssignment","src":"3896:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"3914:3:53","nodeType":"YulIdentifier","src":"3914:3:53"},{"kind":"number","nativeSrc":"3919:4:53","nodeType":"YulLiteral","src":"3919:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3910:3:53","nodeType":"YulIdentifier","src":"3910:3:53"},"nativeSrc":"3910:14:53","nodeType":"YulFunctionCall","src":"3910:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"3896:10:53","nodeType":"YulIdentifier","src":"3896:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"3713:217:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"3785:6:53","nodeType":"YulTypedName","src":"3785:6:53","type":""},{"name":"pos","nativeSrc":"3793:3:53","nodeType":"YulTypedName","src":"3793:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"3801:10:53","nodeType":"YulTypedName","src":"3801:10:53","type":""}],"src":"3713:217:53"},{"body":{"nativeSrc":"4030:38:53","nodeType":"YulBlock","src":"4030:38:53","statements":[{"nativeSrc":"4040:22:53","nodeType":"YulAssignment","src":"4040:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"4052:3:53","nodeType":"YulIdentifier","src":"4052:3:53"},{"kind":"number","nativeSrc":"4057:4:53","nodeType":"YulLiteral","src":"4057:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4048:3:53","nodeType":"YulIdentifier","src":"4048:3:53"},"nativeSrc":"4048:14:53","nodeType":"YulFunctionCall","src":"4048:14:53"},"variableNames":[{"name":"next","nativeSrc":"4040:4:53","nodeType":"YulIdentifier","src":"4040:4:53"}]}]},"name":"array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"3936:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4017:3:53","nodeType":"YulTypedName","src":"4017:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"4025:4:53","nodeType":"YulTypedName","src":"4025:4:53","type":""}],"src":"3936:132:53"},{"body":{"nativeSrc":"4248:674:53","nodeType":"YulBlock","src":"4248:674:53","statements":[{"nativeSrc":"4258:87:53","nodeType":"YulVariableDeclaration","src":"4258:87:53","value":{"arguments":[{"name":"value","nativeSrc":"4339:5:53","nodeType":"YulIdentifier","src":"4339:5:53"}],"functionName":{"name":"array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"4272:66:53","nodeType":"YulIdentifier","src":"4272:66:53"},"nativeSrc":"4272:73:53","nodeType":"YulFunctionCall","src":"4272:73:53"},"variables":[{"name":"length","nativeSrc":"4262:6:53","nodeType":"YulTypedName","src":"4262:6:53","type":""}]},{"nativeSrc":"4354:83:53","nodeType":"YulAssignment","src":"4354:83:53","value":{"arguments":[{"name":"pos","nativeSrc":"4425:3:53","nodeType":"YulIdentifier","src":"4425:3:53"},{"name":"length","nativeSrc":"4430:6:53","nodeType":"YulIdentifier","src":"4430:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"4361:63:53","nodeType":"YulIdentifier","src":"4361:63:53"},"nativeSrc":"4361:76:53","nodeType":"YulFunctionCall","src":"4361:76:53"},"variableNames":[{"name":"pos","nativeSrc":"4354:3:53","nodeType":"YulIdentifier","src":"4354:3:53"}]},{"nativeSrc":"4446:90:53","nodeType":"YulVariableDeclaration","src":"4446:90:53","value":{"arguments":[{"name":"value","nativeSrc":"4530:5:53","nodeType":"YulIdentifier","src":"4530:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"4461:68:53","nodeType":"YulIdentifier","src":"4461:68:53"},"nativeSrc":"4461:75:53","nodeType":"YulFunctionCall","src":"4461:75:53"},"variables":[{"name":"baseRef","nativeSrc":"4450:7:53","nodeType":"YulTypedName","src":"4450:7:53","type":""}]},{"nativeSrc":"4545:21:53","nodeType":"YulVariableDeclaration","src":"4545:21:53","value":{"name":"baseRef","nativeSrc":"4559:7:53","nodeType":"YulIdentifier","src":"4559:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"4549:6:53","nodeType":"YulTypedName","src":"4549:6:53","type":""}]},{"body":{"nativeSrc":"4635:262:53","nodeType":"YulBlock","src":"4635:262:53","statements":[{"nativeSrc":"4649:34:53","nodeType":"YulVariableDeclaration","src":"4649:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4676:6:53","nodeType":"YulIdentifier","src":"4676:6:53"}],"functionName":{"name":"mload","nativeSrc":"4670:5:53","nodeType":"YulIdentifier","src":"4670:5:53"},"nativeSrc":"4670:13:53","nodeType":"YulFunctionCall","src":"4670:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"4653:13:53","nodeType":"YulTypedName","src":"4653:13:53","type":""}]},{"nativeSrc":"4696:89:53","nodeType":"YulAssignment","src":"4696:89:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"4766:13:53","nodeType":"YulIdentifier","src":"4766:13:53"},{"name":"pos","nativeSrc":"4781:3:53","nodeType":"YulIdentifier","src":"4781:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address","nativeSrc":"4703:62:53","nodeType":"YulIdentifier","src":"4703:62:53"},"nativeSrc":"4703:82:53","nodeType":"YulFunctionCall","src":"4703:82:53"},"variableNames":[{"name":"pos","nativeSrc":"4696:3:53","nodeType":"YulIdentifier","src":"4696:3:53"}]},{"nativeSrc":"4798:89:53","nodeType":"YulAssignment","src":"4798:89:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4880:6:53","nodeType":"YulIdentifier","src":"4880:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr","nativeSrc":"4808:71:53","nodeType":"YulIdentifier","src":"4808:71:53"},"nativeSrc":"4808:79:53","nodeType":"YulFunctionCall","src":"4808:79:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"4798:6:53","nodeType":"YulIdentifier","src":"4798:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4597:1:53","nodeType":"YulIdentifier","src":"4597:1:53"},{"name":"length","nativeSrc":"4600:6:53","nodeType":"YulIdentifier","src":"4600:6:53"}],"functionName":{"name":"lt","nativeSrc":"4594:2:53","nodeType":"YulIdentifier","src":"4594:2:53"},"nativeSrc":"4594:13:53","nodeType":"YulFunctionCall","src":"4594:13:53"},"nativeSrc":"4575:322:53","nodeType":"YulForLoop","post":{"nativeSrc":"4608:18:53","nodeType":"YulBlock","src":"4608:18:53","statements":[{"nativeSrc":"4610:14:53","nodeType":"YulAssignment","src":"4610:14:53","value":{"arguments":[{"name":"i","nativeSrc":"4619:1:53","nodeType":"YulIdentifier","src":"4619:1:53"},{"kind":"number","nativeSrc":"4622:1:53","nodeType":"YulLiteral","src":"4622:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4615:3:53","nodeType":"YulIdentifier","src":"4615:3:53"},"nativeSrc":"4615:9:53","nodeType":"YulFunctionCall","src":"4615:9:53"},"variableNames":[{"name":"i","nativeSrc":"4610:1:53","nodeType":"YulIdentifier","src":"4610:1:53"}]}]},"pre":{"nativeSrc":"4579:14:53","nodeType":"YulBlock","src":"4579:14:53","statements":[{"nativeSrc":"4581:10:53","nodeType":"YulVariableDeclaration","src":"4581:10:53","value":{"kind":"number","nativeSrc":"4590:1:53","nodeType":"YulLiteral","src":"4590:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4585:1:53","nodeType":"YulTypedName","src":"4585:1:53","type":""}]}]},"src":"4575:322:53"},{"nativeSrc":"4906:10:53","nodeType":"YulAssignment","src":"4906:10:53","value":{"name":"pos","nativeSrc":"4913:3:53","nodeType":"YulIdentifier","src":"4913:3:53"},"variableNames":[{"name":"end","nativeSrc":"4906:3:53","nodeType":"YulIdentifier","src":"4906:3:53"}]}]},"name":"abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"4115:807:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4227:5:53","nodeType":"YulTypedName","src":"4227:5:53","type":""},{"name":"pos","nativeSrc":"4234:3:53","nodeType":"YulTypedName","src":"4234:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4243:3:53","nodeType":"YulTypedName","src":"4243:3:53","type":""}],"src":"4115:807:53"},{"body":{"nativeSrc":"4972:57:53","nodeType":"YulBlock","src":"4972:57:53","statements":[{"nativeSrc":"4982:41:53","nodeType":"YulAssignment","src":"4982:41:53","value":{"arguments":[{"name":"value","nativeSrc":"4997:5:53","nodeType":"YulIdentifier","src":"4997:5:53"},{"kind":"number","nativeSrc":"5004:18:53","nodeType":"YulLiteral","src":"5004:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4993:3:53","nodeType":"YulIdentifier","src":"4993:3:53"},"nativeSrc":"4993:30:53","nodeType":"YulFunctionCall","src":"4993:30:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4982:7:53","nodeType":"YulIdentifier","src":"4982:7:53"}]}]},"name":"cleanup_t_uint64","nativeSrc":"4928:101:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4954:5:53","nodeType":"YulTypedName","src":"4954:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4964:7:53","nodeType":"YulTypedName","src":"4964:7:53","type":""}],"src":"4928:101:53"},{"body":{"nativeSrc":"5088:52:53","nodeType":"YulBlock","src":"5088:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5105:3:53","nodeType":"YulIdentifier","src":"5105:3:53"},{"arguments":[{"name":"value","nativeSrc":"5127:5:53","nodeType":"YulIdentifier","src":"5127:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"5110:16:53","nodeType":"YulIdentifier","src":"5110:16:53"},"nativeSrc":"5110:23:53","nodeType":"YulFunctionCall","src":"5110:23:53"}],"functionName":{"name":"mstore","nativeSrc":"5098:6:53","nodeType":"YulIdentifier","src":"5098:6:53"},"nativeSrc":"5098:36:53","nodeType":"YulFunctionCall","src":"5098:36:53"},"nativeSrc":"5098:36:53","nodeType":"YulExpressionStatement","src":"5098:36:53"}]},"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"5035:105:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5076:5:53","nodeType":"YulTypedName","src":"5076:5:53","type":""},{"name":"pos","nativeSrc":"5083:3:53","nodeType":"YulTypedName","src":"5083:3:53","type":""}],"src":"5035:105:53"},{"body":{"nativeSrc":"5201:53:53","nodeType":"YulBlock","src":"5201:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5218:3:53","nodeType":"YulIdentifier","src":"5218:3:53"},{"arguments":[{"name":"value","nativeSrc":"5241:5:53","nodeType":"YulIdentifier","src":"5241:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5223:17:53","nodeType":"YulIdentifier","src":"5223:17:53"},"nativeSrc":"5223:24:53","nodeType":"YulFunctionCall","src":"5223:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:53","nodeType":"YulIdentifier","src":"5211:6:53"},"nativeSrc":"5211:37:53","nodeType":"YulFunctionCall","src":"5211:37:53"},"nativeSrc":"5211:37:53","nodeType":"YulExpressionStatement","src":"5211:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"5146:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5189:5:53","nodeType":"YulTypedName","src":"5189:5:53","type":""},{"name":"pos","nativeSrc":"5196:3:53","nodeType":"YulTypedName","src":"5196:3:53","type":""}],"src":"5146:108:53"},{"body":{"nativeSrc":"5305:51:53","nodeType":"YulBlock","src":"5305:51:53","statements":[{"nativeSrc":"5315:35:53","nodeType":"YulAssignment","src":"5315:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5344:5:53","nodeType":"YulIdentifier","src":"5344:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5326:17:53","nodeType":"YulIdentifier","src":"5326:17:53"},"nativeSrc":"5326:24:53","nodeType":"YulFunctionCall","src":"5326:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5315:7:53","nodeType":"YulIdentifier","src":"5315:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5260:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5287:5:53","nodeType":"YulTypedName","src":"5287:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5297:7:53","nodeType":"YulTypedName","src":"5297:7:53","type":""}],"src":"5260:96:53"},{"body":{"nativeSrc":"5417:53:53","nodeType":"YulBlock","src":"5417:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5434:3:53","nodeType":"YulIdentifier","src":"5434:3:53"},{"arguments":[{"name":"value","nativeSrc":"5457:5:53","nodeType":"YulIdentifier","src":"5457:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5439:17:53","nodeType":"YulIdentifier","src":"5439:17:53"},"nativeSrc":"5439:24:53","nodeType":"YulFunctionCall","src":"5439:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5427:6:53","nodeType":"YulIdentifier","src":"5427:6:53"},"nativeSrc":"5427:37:53","nodeType":"YulFunctionCall","src":"5427:37:53"},"nativeSrc":"5427:37:53","nodeType":"YulExpressionStatement","src":"5427:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"5362:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5405:5:53","nodeType":"YulTypedName","src":"5405:5:53","type":""},{"name":"pos","nativeSrc":"5412:3:53","nodeType":"YulTypedName","src":"5412:3:53","type":""}],"src":"5362:108:53"},{"body":{"nativeSrc":"5652:1875:53","nodeType":"YulBlock","src":"5652:1875:53","statements":[{"nativeSrc":"5662:28:53","nodeType":"YulVariableDeclaration","src":"5662:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"5678:3:53","nodeType":"YulIdentifier","src":"5678:3:53"},{"kind":"number","nativeSrc":"5683:6:53","nodeType":"YulLiteral","src":"5683:6:53","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"5674:3:53","nodeType":"YulIdentifier","src":"5674:3:53"},"nativeSrc":"5674:16:53","nodeType":"YulFunctionCall","src":"5674:16:53"},"variables":[{"name":"tail","nativeSrc":"5666:4:53","nodeType":"YulTypedName","src":"5666:4:53","type":""}]},{"nativeSrc":"5700:182:53","nodeType":"YulBlock","src":"5700:182:53","statements":[{"nativeSrc":"5737:43:53","nodeType":"YulVariableDeclaration","src":"5737:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5767:5:53","nodeType":"YulIdentifier","src":"5767:5:53"},{"kind":"number","nativeSrc":"5774:4:53","nodeType":"YulLiteral","src":"5774:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5763:3:53","nodeType":"YulIdentifier","src":"5763:3:53"},"nativeSrc":"5763:16:53","nodeType":"YulFunctionCall","src":"5763:16:53"}],"functionName":{"name":"mload","nativeSrc":"5757:5:53","nodeType":"YulIdentifier","src":"5757:5:53"},"nativeSrc":"5757:23:53","nodeType":"YulFunctionCall","src":"5757:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5741:12:53","nodeType":"YulTypedName","src":"5741:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5843:12:53","nodeType":"YulIdentifier","src":"5843:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5861:3:53","nodeType":"YulIdentifier","src":"5861:3:53"},{"kind":"number","nativeSrc":"5866:4:53","nodeType":"YulLiteral","src":"5866:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5857:3:53","nodeType":"YulIdentifier","src":"5857:3:53"},"nativeSrc":"5857:14:53","nodeType":"YulFunctionCall","src":"5857:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Action_$12758_to_t_address","nativeSrc":"5793:49:53","nodeType":"YulIdentifier","src":"5793:49:53"},"nativeSrc":"5793:79:53","nodeType":"YulFunctionCall","src":"5793:79:53"},"nativeSrc":"5793:79:53","nodeType":"YulExpressionStatement","src":"5793:79:53"}]},{"nativeSrc":"5892:188:53","nodeType":"YulBlock","src":"5892:188:53","statements":[{"nativeSrc":"5932:43:53","nodeType":"YulVariableDeclaration","src":"5932:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5962:5:53","nodeType":"YulIdentifier","src":"5962:5:53"},{"kind":"number","nativeSrc":"5969:4:53","nodeType":"YulLiteral","src":"5969:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5958:3:53","nodeType":"YulIdentifier","src":"5958:3:53"},"nativeSrc":"5958:16:53","nodeType":"YulFunctionCall","src":"5958:16:53"}],"functionName":{"name":"mload","nativeSrc":"5952:5:53","nodeType":"YulIdentifier","src":"5952:5:53"},"nativeSrc":"5952:23:53","nodeType":"YulFunctionCall","src":"5952:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5936:12:53","nodeType":"YulTypedName","src":"5936:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6041:12:53","nodeType":"YulIdentifier","src":"6041:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6059:3:53","nodeType":"YulIdentifier","src":"6059:3:53"},{"kind":"number","nativeSrc":"6064:4:53","nodeType":"YulLiteral","src":"6064:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6055:3:53","nodeType":"YulIdentifier","src":"6055:3:53"},"nativeSrc":"6055:14:53","nodeType":"YulFunctionCall","src":"6055:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$18282_to_t_address","nativeSrc":"5988:52:53","nodeType":"YulIdentifier","src":"5988:52:53"},"nativeSrc":"5988:82:53","nodeType":"YulFunctionCall","src":"5988:82:53"},"nativeSrc":"5988:82:53","nodeType":"YulExpressionStatement","src":"5988:82:53"}]},{"nativeSrc":"6090:188:53","nodeType":"YulBlock","src":"6090:188:53","statements":[{"nativeSrc":"6130:43:53","nodeType":"YulVariableDeclaration","src":"6130:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6160:5:53","nodeType":"YulIdentifier","src":"6160:5:53"},{"kind":"number","nativeSrc":"6167:4:53","nodeType":"YulLiteral","src":"6167:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6156:3:53","nodeType":"YulIdentifier","src":"6156:3:53"},"nativeSrc":"6156:16:53","nodeType":"YulFunctionCall","src":"6156:16:53"}],"functionName":{"name":"mload","nativeSrc":"6150:5:53","nodeType":"YulIdentifier","src":"6150:5:53"},"nativeSrc":"6150:23:53","nodeType":"YulFunctionCall","src":"6150:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6134:12:53","nodeType":"YulTypedName","src":"6134:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6239:12:53","nodeType":"YulIdentifier","src":"6239:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6257:3:53","nodeType":"YulIdentifier","src":"6257:3:53"},{"kind":"number","nativeSrc":"6262:4:53","nodeType":"YulLiteral","src":"6262:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6253:3:53","nodeType":"YulIdentifier","src":"6253:3:53"},"nativeSrc":"6253:14:53","nodeType":"YulFunctionCall","src":"6253:14:53"}],"functionName":{"name":"abi_encode_t_contract$_AllowList_$13154_to_t_address","nativeSrc":"6186:52:53","nodeType":"YulIdentifier","src":"6186:52:53"},"nativeSrc":"6186:82:53","nodeType":"YulFunctionCall","src":"6186:82:53"},"nativeSrc":"6186:82:53","nodeType":"YulExpressionStatement","src":"6186:82:53"}]},{"nativeSrc":"6288:190:53","nodeType":"YulBlock","src":"6288:190:53","statements":[{"nativeSrc":"6325:43:53","nodeType":"YulVariableDeclaration","src":"6325:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6355:5:53","nodeType":"YulIdentifier","src":"6355:5:53"},{"kind":"number","nativeSrc":"6362:4:53","nodeType":"YulLiteral","src":"6362:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6351:3:53","nodeType":"YulIdentifier","src":"6351:3:53"},"nativeSrc":"6351:16:53","nodeType":"YulFunctionCall","src":"6351:16:53"}],"functionName":{"name":"mload","nativeSrc":"6345:5:53","nodeType":"YulIdentifier","src":"6345:5:53"},"nativeSrc":"6345:23:53","nodeType":"YulFunctionCall","src":"6345:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6329:12:53","nodeType":"YulTypedName","src":"6329:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6439:12:53","nodeType":"YulIdentifier","src":"6439:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6457:3:53","nodeType":"YulIdentifier","src":"6457:3:53"},{"kind":"number","nativeSrc":"6462:4:53","nodeType":"YulLiteral","src":"6462:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6453:3:53","nodeType":"YulIdentifier","src":"6453:3:53"},"nativeSrc":"6453:14:53","nodeType":"YulFunctionCall","src":"6453:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Budget_$13669_to_t_address_payable","nativeSrc":"6381:57:53","nodeType":"YulIdentifier","src":"6381:57:53"},"nativeSrc":"6381:87:53","nodeType":"YulFunctionCall","src":"6381:87:53"},"nativeSrc":"6381:87:53","nodeType":"YulExpressionStatement","src":"6381:87:53"}]},{"nativeSrc":"6488:290:53","nodeType":"YulBlock","src":"6488:290:53","statements":[{"nativeSrc":"6529:43:53","nodeType":"YulVariableDeclaration","src":"6529:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6559:5:53","nodeType":"YulIdentifier","src":"6559:5:53"},{"kind":"number","nativeSrc":"6566:4:53","nodeType":"YulLiteral","src":"6566:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"6555:3:53","nodeType":"YulIdentifier","src":"6555:3:53"},"nativeSrc":"6555:16:53","nodeType":"YulFunctionCall","src":"6555:16:53"}],"functionName":{"name":"mload","nativeSrc":"6549:5:53","nodeType":"YulIdentifier","src":"6549:5:53"},"nativeSrc":"6549:23:53","nodeType":"YulFunctionCall","src":"6549:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6533:12:53","nodeType":"YulTypedName","src":"6533:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6597:3:53","nodeType":"YulIdentifier","src":"6597:3:53"},{"kind":"number","nativeSrc":"6602:4:53","nodeType":"YulLiteral","src":"6602:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"6593:3:53","nodeType":"YulIdentifier","src":"6593:3:53"},"nativeSrc":"6593:14:53","nodeType":"YulFunctionCall","src":"6593:14:53"},{"arguments":[{"name":"tail","nativeSrc":"6613:4:53","nodeType":"YulIdentifier","src":"6613:4:53"},{"name":"pos","nativeSrc":"6619:3:53","nodeType":"YulIdentifier","src":"6619:3:53"}],"functionName":{"name":"sub","nativeSrc":"6609:3:53","nodeType":"YulIdentifier","src":"6609:3:53"},"nativeSrc":"6609:14:53","nodeType":"YulFunctionCall","src":"6609:14:53"}],"functionName":{"name":"mstore","nativeSrc":"6586:6:53","nodeType":"YulIdentifier","src":"6586:6:53"},"nativeSrc":"6586:38:53","nodeType":"YulFunctionCall","src":"6586:38:53"},"nativeSrc":"6586:38:53","nodeType":"YulExpressionStatement","src":"6586:38:53"},{"nativeSrc":"6637:130:53","nodeType":"YulAssignment","src":"6637:130:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"6748:12:53","nodeType":"YulIdentifier","src":"6748:12:53"},{"name":"tail","nativeSrc":"6762:4:53","nodeType":"YulIdentifier","src":"6762:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"6645:102:53","nodeType":"YulIdentifier","src":"6645:102:53"},"nativeSrc":"6645:122:53","nodeType":"YulFunctionCall","src":"6645:122:53"},"variableNames":[{"name":"tail","nativeSrc":"6637:4:53","nodeType":"YulIdentifier","src":"6637:4:53"}]}]},{"nativeSrc":"6788:169:53","nodeType":"YulBlock","src":"6788:169:53","statements":[{"nativeSrc":"6830:43:53","nodeType":"YulVariableDeclaration","src":"6830:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6860:5:53","nodeType":"YulIdentifier","src":"6860:5:53"},{"kind":"number","nativeSrc":"6867:4:53","nodeType":"YulLiteral","src":"6867:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6856:3:53","nodeType":"YulIdentifier","src":"6856:3:53"},"nativeSrc":"6856:16:53","nodeType":"YulFunctionCall","src":"6856:16:53"}],"functionName":{"name":"mload","nativeSrc":"6850:5:53","nodeType":"YulIdentifier","src":"6850:5:53"},"nativeSrc":"6850:23:53","nodeType":"YulFunctionCall","src":"6850:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"6834:12:53","nodeType":"YulTypedName","src":"6834:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6918:12:53","nodeType":"YulIdentifier","src":"6918:12:53"},{"arguments":[{"name":"pos","nativeSrc":"6936:3:53","nodeType":"YulIdentifier","src":"6936:3:53"},{"kind":"number","nativeSrc":"6941:4:53","nodeType":"YulLiteral","src":"6941:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6932:3:53","nodeType":"YulIdentifier","src":"6932:3:53"},"nativeSrc":"6932:14:53","nodeType":"YulFunctionCall","src":"6932:14:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"6886:31:53","nodeType":"YulIdentifier","src":"6886:31:53"},"nativeSrc":"6886:61:53","nodeType":"YulFunctionCall","src":"6886:61:53"},"nativeSrc":"6886:61:53","nodeType":"YulExpressionStatement","src":"6886:61:53"}]},{"nativeSrc":"6967:169:53","nodeType":"YulBlock","src":"6967:169:53","statements":[{"nativeSrc":"7009:43:53","nodeType":"YulVariableDeclaration","src":"7009:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7039:5:53","nodeType":"YulIdentifier","src":"7039:5:53"},{"kind":"number","nativeSrc":"7046:4:53","nodeType":"YulLiteral","src":"7046:4:53","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"7035:3:53","nodeType":"YulIdentifier","src":"7035:3:53"},"nativeSrc":"7035:16:53","nodeType":"YulFunctionCall","src":"7035:16:53"}],"functionName":{"name":"mload","nativeSrc":"7029:5:53","nodeType":"YulIdentifier","src":"7029:5:53"},"nativeSrc":"7029:23:53","nodeType":"YulFunctionCall","src":"7029:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"7013:12:53","nodeType":"YulTypedName","src":"7013:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7097:12:53","nodeType":"YulIdentifier","src":"7097:12:53"},{"arguments":[{"name":"pos","nativeSrc":"7115:3:53","nodeType":"YulIdentifier","src":"7115:3:53"},{"kind":"number","nativeSrc":"7120:4:53","nodeType":"YulLiteral","src":"7120:4:53","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"7111:3:53","nodeType":"YulIdentifier","src":"7111:3:53"},"nativeSrc":"7111:14:53","nodeType":"YulFunctionCall","src":"7111:14:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"7065:31:53","nodeType":"YulIdentifier","src":"7065:31:53"},"nativeSrc":"7065:61:53","nodeType":"YulFunctionCall","src":"7065:61:53"},"nativeSrc":"7065:61:53","nodeType":"YulExpressionStatement","src":"7065:61:53"}]},{"nativeSrc":"7146:175:53","nodeType":"YulBlock","src":"7146:175:53","statements":[{"nativeSrc":"7192:43:53","nodeType":"YulVariableDeclaration","src":"7192:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7222:5:53","nodeType":"YulIdentifier","src":"7222:5:53"},{"kind":"number","nativeSrc":"7229:4:53","nodeType":"YulLiteral","src":"7229:4:53","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"7218:3:53","nodeType":"YulIdentifier","src":"7218:3:53"},"nativeSrc":"7218:16:53","nodeType":"YulFunctionCall","src":"7218:16:53"}],"functionName":{"name":"mload","nativeSrc":"7212:5:53","nodeType":"YulIdentifier","src":"7212:5:53"},"nativeSrc":"7212:23:53","nodeType":"YulFunctionCall","src":"7212:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"7196:12:53","nodeType":"YulTypedName","src":"7196:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7282:12:53","nodeType":"YulIdentifier","src":"7282:12:53"},{"arguments":[{"name":"pos","nativeSrc":"7300:3:53","nodeType":"YulIdentifier","src":"7300:3:53"},{"kind":"number","nativeSrc":"7305:4:53","nodeType":"YulLiteral","src":"7305:4:53","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"7296:3:53","nodeType":"YulIdentifier","src":"7296:3:53"},"nativeSrc":"7296:14:53","nodeType":"YulFunctionCall","src":"7296:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"7248:33:53","nodeType":"YulIdentifier","src":"7248:33:53"},"nativeSrc":"7248:63:53","nodeType":"YulFunctionCall","src":"7248:63:53"},"nativeSrc":"7248:63:53","nodeType":"YulExpressionStatement","src":"7248:63:53"}]},{"nativeSrc":"7331:169:53","nodeType":"YulBlock","src":"7331:169:53","statements":[{"nativeSrc":"7367:45:53","nodeType":"YulVariableDeclaration","src":"7367:45:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7397:5:53","nodeType":"YulIdentifier","src":"7397:5:53"},{"kind":"number","nativeSrc":"7404:6:53","nodeType":"YulLiteral","src":"7404:6:53","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"7393:3:53","nodeType":"YulIdentifier","src":"7393:3:53"},"nativeSrc":"7393:18:53","nodeType":"YulFunctionCall","src":"7393:18:53"}],"functionName":{"name":"mload","nativeSrc":"7387:5:53","nodeType":"YulIdentifier","src":"7387:5:53"},"nativeSrc":"7387:25:53","nodeType":"YulFunctionCall","src":"7387:25:53"},"variables":[{"name":"memberValue0","nativeSrc":"7371:12:53","nodeType":"YulTypedName","src":"7371:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7459:12:53","nodeType":"YulIdentifier","src":"7459:12:53"},{"arguments":[{"name":"pos","nativeSrc":"7477:3:53","nodeType":"YulIdentifier","src":"7477:3:53"},{"kind":"number","nativeSrc":"7482:6:53","nodeType":"YulLiteral","src":"7482:6:53","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"7473:3:53","nodeType":"YulIdentifier","src":"7473:3:53"},"nativeSrc":"7473:16:53","nodeType":"YulFunctionCall","src":"7473:16:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"7425:33:53","nodeType":"YulIdentifier","src":"7425:33:53"},"nativeSrc":"7425:65:53","nodeType":"YulFunctionCall","src":"7425:65:53"},"nativeSrc":"7425:65:53","nodeType":"YulExpressionStatement","src":"7425:65:53"}]},{"nativeSrc":"7510:11:53","nodeType":"YulAssignment","src":"7510:11:53","value":{"name":"tail","nativeSrc":"7517:4:53","nodeType":"YulIdentifier","src":"7517:4:53"},"variableNames":[{"name":"end","nativeSrc":"7510:3:53","nodeType":"YulIdentifier","src":"7510:3:53"}]}]},"name":"abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack","nativeSrc":"5530:1997:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5631:5:53","nodeType":"YulTypedName","src":"5631:5:53","type":""},{"name":"pos","nativeSrc":"5638:3:53","nodeType":"YulTypedName","src":"5638:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5647:3:53","nodeType":"YulTypedName","src":"5647:3:53","type":""}],"src":"5530:1997:53"},{"body":{"nativeSrc":"7679:223:53","nodeType":"YulBlock","src":"7679:223:53","statements":[{"nativeSrc":"7689:26:53","nodeType":"YulAssignment","src":"7689:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7701:9:53","nodeType":"YulIdentifier","src":"7701:9:53"},{"kind":"number","nativeSrc":"7712:2:53","nodeType":"YulLiteral","src":"7712:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7697:3:53","nodeType":"YulIdentifier","src":"7697:3:53"},"nativeSrc":"7697:18:53","nodeType":"YulFunctionCall","src":"7697:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7689:4:53","nodeType":"YulIdentifier","src":"7689:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7736:9:53","nodeType":"YulIdentifier","src":"7736:9:53"},{"kind":"number","nativeSrc":"7747:1:53","nodeType":"YulLiteral","src":"7747:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7732:3:53","nodeType":"YulIdentifier","src":"7732:3:53"},"nativeSrc":"7732:17:53","nodeType":"YulFunctionCall","src":"7732:17:53"},{"arguments":[{"name":"tail","nativeSrc":"7755:4:53","nodeType":"YulIdentifier","src":"7755:4:53"},{"name":"headStart","nativeSrc":"7761:9:53","nodeType":"YulIdentifier","src":"7761:9:53"}],"functionName":{"name":"sub","nativeSrc":"7751:3:53","nodeType":"YulIdentifier","src":"7751:3:53"},"nativeSrc":"7751:20:53","nodeType":"YulFunctionCall","src":"7751:20:53"}],"functionName":{"name":"mstore","nativeSrc":"7725:6:53","nodeType":"YulIdentifier","src":"7725:6:53"},"nativeSrc":"7725:47:53","nodeType":"YulFunctionCall","src":"7725:47:53"},"nativeSrc":"7725:47:53","nodeType":"YulExpressionStatement","src":"7725:47:53"},{"nativeSrc":"7781:114:53","nodeType":"YulAssignment","src":"7781:114:53","value":{"arguments":[{"name":"value0","nativeSrc":"7881:6:53","nodeType":"YulIdentifier","src":"7881:6:53"},{"name":"tail","nativeSrc":"7890:4:53","nodeType":"YulIdentifier","src":"7890:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack","nativeSrc":"7789:91:53","nodeType":"YulIdentifier","src":"7789:91:53"},"nativeSrc":"7789:106:53","nodeType":"YulFunctionCall","src":"7789:106:53"},"variableNames":[{"name":"tail","nativeSrc":"7781:4:53","nodeType":"YulIdentifier","src":"7781:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Boost_$17616_memory_ptr__to_t_struct$_Boost_$17616_memory_ptr__fromStack_reversed","nativeSrc":"7533:369:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7651:9:53","nodeType":"YulTypedName","src":"7651:9:53","type":""},{"name":"value0","nativeSrc":"7663:6:53","nodeType":"YulTypedName","src":"7663:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7674:4:53","nodeType":"YulTypedName","src":"7674:4:53","type":""}],"src":"7533:369:53"},{"body":{"nativeSrc":"7973:53:53","nodeType":"YulBlock","src":"7973:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7990:3:53","nodeType":"YulIdentifier","src":"7990:3:53"},{"arguments":[{"name":"value","nativeSrc":"8013:5:53","nodeType":"YulIdentifier","src":"8013:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7995:17:53","nodeType":"YulIdentifier","src":"7995:17:53"},"nativeSrc":"7995:24:53","nodeType":"YulFunctionCall","src":"7995:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7983:6:53","nodeType":"YulIdentifier","src":"7983:6:53"},"nativeSrc":"7983:37:53","nodeType":"YulFunctionCall","src":"7983:37:53"},"nativeSrc":"7983:37:53","nodeType":"YulExpressionStatement","src":"7983:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7908:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7961:5:53","nodeType":"YulTypedName","src":"7961:5:53","type":""},{"name":"pos","nativeSrc":"7968:3:53","nodeType":"YulTypedName","src":"7968:3:53","type":""}],"src":"7908:118:53"},{"body":{"nativeSrc":"8130:124:53","nodeType":"YulBlock","src":"8130:124:53","statements":[{"nativeSrc":"8140:26:53","nodeType":"YulAssignment","src":"8140:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8152:9:53","nodeType":"YulIdentifier","src":"8152:9:53"},{"kind":"number","nativeSrc":"8163:2:53","nodeType":"YulLiteral","src":"8163:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8148:3:53","nodeType":"YulIdentifier","src":"8148:3:53"},"nativeSrc":"8148:18:53","nodeType":"YulFunctionCall","src":"8148:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8140:4:53","nodeType":"YulIdentifier","src":"8140:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8220:6:53","nodeType":"YulIdentifier","src":"8220:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8233:9:53","nodeType":"YulIdentifier","src":"8233:9:53"},{"kind":"number","nativeSrc":"8244:1:53","nodeType":"YulLiteral","src":"8244:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8229:3:53","nodeType":"YulIdentifier","src":"8229:3:53"},"nativeSrc":"8229:17:53","nodeType":"YulFunctionCall","src":"8229:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8176:43:53","nodeType":"YulIdentifier","src":"8176:43:53"},"nativeSrc":"8176:71:53","nodeType":"YulFunctionCall","src":"8176:71:53"},"nativeSrc":"8176:71:53","nodeType":"YulExpressionStatement","src":"8176:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8032:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8102:9:53","nodeType":"YulTypedName","src":"8102:9:53","type":""},{"name":"value0","nativeSrc":"8114:6:53","nodeType":"YulTypedName","src":"8114:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8125:4:53","nodeType":"YulTypedName","src":"8125:4:53","type":""}],"src":"8032:222:53"},{"body":{"nativeSrc":"8303:79:53","nodeType":"YulBlock","src":"8303:79:53","statements":[{"body":{"nativeSrc":"8360:16:53","nodeType":"YulBlock","src":"8360:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8369:1:53","nodeType":"YulLiteral","src":"8369:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8372:1:53","nodeType":"YulLiteral","src":"8372:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8362:6:53","nodeType":"YulIdentifier","src":"8362:6:53"},"nativeSrc":"8362:12:53","nodeType":"YulFunctionCall","src":"8362:12:53"},"nativeSrc":"8362:12:53","nodeType":"YulExpressionStatement","src":"8362:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8326:5:53","nodeType":"YulIdentifier","src":"8326:5:53"},{"arguments":[{"name":"value","nativeSrc":"8351:5:53","nodeType":"YulIdentifier","src":"8351:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8333:17:53","nodeType":"YulIdentifier","src":"8333:17:53"},"nativeSrc":"8333:24:53","nodeType":"YulFunctionCall","src":"8333:24:53"}],"functionName":{"name":"eq","nativeSrc":"8323:2:53","nodeType":"YulIdentifier","src":"8323:2:53"},"nativeSrc":"8323:35:53","nodeType":"YulFunctionCall","src":"8323:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8316:6:53","nodeType":"YulIdentifier","src":"8316:6:53"},"nativeSrc":"8316:43:53","nodeType":"YulFunctionCall","src":"8316:43:53"},"nativeSrc":"8313:63:53","nodeType":"YulIf","src":"8313:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"8260:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8296:5:53","nodeType":"YulTypedName","src":"8296:5:53","type":""}],"src":"8260:122:53"},{"body":{"nativeSrc":"8440:87:53","nodeType":"YulBlock","src":"8440:87:53","statements":[{"nativeSrc":"8450:29:53","nodeType":"YulAssignment","src":"8450:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8472:6:53","nodeType":"YulIdentifier","src":"8472:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8459:12:53","nodeType":"YulIdentifier","src":"8459:12:53"},"nativeSrc":"8459:20:53","nodeType":"YulFunctionCall","src":"8459:20:53"},"variableNames":[{"name":"value","nativeSrc":"8450:5:53","nodeType":"YulIdentifier","src":"8450:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8515:5:53","nodeType":"YulIdentifier","src":"8515:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"8488:26:53","nodeType":"YulIdentifier","src":"8488:26:53"},"nativeSrc":"8488:33:53","nodeType":"YulFunctionCall","src":"8488:33:53"},"nativeSrc":"8488:33:53","nodeType":"YulExpressionStatement","src":"8488:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"8388:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8418:6:53","nodeType":"YulTypedName","src":"8418:6:53","type":""},{"name":"end","nativeSrc":"8426:3:53","nodeType":"YulTypedName","src":"8426:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8434:5:53","nodeType":"YulTypedName","src":"8434:5:53","type":""}],"src":"8388:139:53"},{"body":{"nativeSrc":"8599:263:53","nodeType":"YulBlock","src":"8599:263:53","statements":[{"body":{"nativeSrc":"8645:83:53","nodeType":"YulBlock","src":"8645:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8647:77:53","nodeType":"YulIdentifier","src":"8647:77:53"},"nativeSrc":"8647:79:53","nodeType":"YulFunctionCall","src":"8647:79:53"},"nativeSrc":"8647:79:53","nodeType":"YulExpressionStatement","src":"8647:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8620:7:53","nodeType":"YulIdentifier","src":"8620:7:53"},{"name":"headStart","nativeSrc":"8629:9:53","nodeType":"YulIdentifier","src":"8629:9:53"}],"functionName":{"name":"sub","nativeSrc":"8616:3:53","nodeType":"YulIdentifier","src":"8616:3:53"},"nativeSrc":"8616:23:53","nodeType":"YulFunctionCall","src":"8616:23:53"},{"kind":"number","nativeSrc":"8641:2:53","nodeType":"YulLiteral","src":"8641:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8612:3:53","nodeType":"YulIdentifier","src":"8612:3:53"},"nativeSrc":"8612:32:53","nodeType":"YulFunctionCall","src":"8612:32:53"},"nativeSrc":"8609:119:53","nodeType":"YulIf","src":"8609:119:53"},{"nativeSrc":"8738:117:53","nodeType":"YulBlock","src":"8738:117:53","statements":[{"nativeSrc":"8753:15:53","nodeType":"YulVariableDeclaration","src":"8753:15:53","value":{"kind":"number","nativeSrc":"8767:1:53","nodeType":"YulLiteral","src":"8767:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8757:6:53","nodeType":"YulTypedName","src":"8757:6:53","type":""}]},{"nativeSrc":"8782:63:53","nodeType":"YulAssignment","src":"8782:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8817:9:53","nodeType":"YulIdentifier","src":"8817:9:53"},{"name":"offset","nativeSrc":"8828:6:53","nodeType":"YulIdentifier","src":"8828:6:53"}],"functionName":{"name":"add","nativeSrc":"8813:3:53","nodeType":"YulIdentifier","src":"8813:3:53"},"nativeSrc":"8813:22:53","nodeType":"YulFunctionCall","src":"8813:22:53"},{"name":"dataEnd","nativeSrc":"8837:7:53","nodeType":"YulIdentifier","src":"8837:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8792:20:53","nodeType":"YulIdentifier","src":"8792:20:53"},"nativeSrc":"8792:53:53","nodeType":"YulFunctionCall","src":"8792:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8782:6:53","nodeType":"YulIdentifier","src":"8782:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"8533:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8569:9:53","nodeType":"YulTypedName","src":"8569:9:53","type":""},{"name":"dataEnd","nativeSrc":"8580:7:53","nodeType":"YulTypedName","src":"8580:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8592:6:53","nodeType":"YulTypedName","src":"8592:6:53","type":""}],"src":"8533:329:53"},{"body":{"nativeSrc":"8933:53:53","nodeType":"YulBlock","src":"8933:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8950:3:53","nodeType":"YulIdentifier","src":"8950:3:53"},{"arguments":[{"name":"value","nativeSrc":"8973:5:53","nodeType":"YulIdentifier","src":"8973:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8955:17:53","nodeType":"YulIdentifier","src":"8955:17:53"},"nativeSrc":"8955:24:53","nodeType":"YulFunctionCall","src":"8955:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8943:6:53","nodeType":"YulIdentifier","src":"8943:6:53"},"nativeSrc":"8943:37:53","nodeType":"YulFunctionCall","src":"8943:37:53"},"nativeSrc":"8943:37:53","nodeType":"YulExpressionStatement","src":"8943:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"8868:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8921:5:53","nodeType":"YulTypedName","src":"8921:5:53","type":""},{"name":"pos","nativeSrc":"8928:3:53","nodeType":"YulTypedName","src":"8928:3:53","type":""}],"src":"8868:118:53"},{"body":{"nativeSrc":"9090:124:53","nodeType":"YulBlock","src":"9090:124:53","statements":[{"nativeSrc":"9100:26:53","nodeType":"YulAssignment","src":"9100:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9112:9:53","nodeType":"YulIdentifier","src":"9112:9:53"},{"kind":"number","nativeSrc":"9123:2:53","nodeType":"YulLiteral","src":"9123:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9108:3:53","nodeType":"YulIdentifier","src":"9108:3:53"},"nativeSrc":"9108:18:53","nodeType":"YulFunctionCall","src":"9108:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9100:4:53","nodeType":"YulIdentifier","src":"9100:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9180:6:53","nodeType":"YulIdentifier","src":"9180:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9193:9:53","nodeType":"YulIdentifier","src":"9193:9:53"},{"kind":"number","nativeSrc":"9204:1:53","nodeType":"YulLiteral","src":"9204:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9189:3:53","nodeType":"YulIdentifier","src":"9189:3:53"},"nativeSrc":"9189:17:53","nodeType":"YulFunctionCall","src":"9189:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9136:43:53","nodeType":"YulIdentifier","src":"9136:43:53"},"nativeSrc":"9136:71:53","nodeType":"YulFunctionCall","src":"9136:71:53"},"nativeSrc":"9136:71:53","nodeType":"YulExpressionStatement","src":"9136:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"8992:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9062:9:53","nodeType":"YulTypedName","src":"9062:9:53","type":""},{"name":"value0","nativeSrc":"9074:6:53","nodeType":"YulTypedName","src":"9074:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9085:4:53","nodeType":"YulTypedName","src":"9085:4:53","type":""}],"src":"8992:222:53"},{"body":{"nativeSrc":"9303:66:53","nodeType":"YulBlock","src":"9303:66:53","statements":[{"nativeSrc":"9313:50:53","nodeType":"YulAssignment","src":"9313:50:53","value":{"arguments":[{"name":"value","nativeSrc":"9357:5:53","nodeType":"YulIdentifier","src":"9357:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"9326:30:53","nodeType":"YulIdentifier","src":"9326:30:53"},"nativeSrc":"9326:37:53","nodeType":"YulFunctionCall","src":"9326:37:53"},"variableNames":[{"name":"converted","nativeSrc":"9313:9:53","nodeType":"YulIdentifier","src":"9313:9:53"}]}]},"name":"convert_t_contract$_BoostRegistry_$12680_to_t_address","nativeSrc":"9220:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9283:5:53","nodeType":"YulTypedName","src":"9283:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"9293:9:53","nodeType":"YulTypedName","src":"9293:9:53","type":""}],"src":"9220:149:53"},{"body":{"nativeSrc":"9463:89:53","nodeType":"YulBlock","src":"9463:89:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9480:3:53","nodeType":"YulIdentifier","src":"9480:3:53"},{"arguments":[{"name":"value","nativeSrc":"9539:5:53","nodeType":"YulIdentifier","src":"9539:5:53"}],"functionName":{"name":"convert_t_contract$_BoostRegistry_$12680_to_t_address","nativeSrc":"9485:53:53","nodeType":"YulIdentifier","src":"9485:53:53"},"nativeSrc":"9485:60:53","nodeType":"YulFunctionCall","src":"9485:60:53"}],"functionName":{"name":"mstore","nativeSrc":"9473:6:53","nodeType":"YulIdentifier","src":"9473:6:53"},"nativeSrc":"9473:73:53","nodeType":"YulFunctionCall","src":"9473:73:53"},"nativeSrc":"9473:73:53","nodeType":"YulExpressionStatement","src":"9473:73:53"}]},"name":"abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack","nativeSrc":"9375:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9451:5:53","nodeType":"YulTypedName","src":"9451:5:53","type":""},{"name":"pos","nativeSrc":"9458:3:53","nodeType":"YulTypedName","src":"9458:3:53","type":""}],"src":"9375:177:53"},{"body":{"nativeSrc":"9679:147:53","nodeType":"YulBlock","src":"9679:147:53","statements":[{"nativeSrc":"9689:26:53","nodeType":"YulAssignment","src":"9689:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9701:9:53","nodeType":"YulIdentifier","src":"9701:9:53"},{"kind":"number","nativeSrc":"9712:2:53","nodeType":"YulLiteral","src":"9712:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9697:3:53","nodeType":"YulIdentifier","src":"9697:3:53"},"nativeSrc":"9697:18:53","nodeType":"YulFunctionCall","src":"9697:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9689:4:53","nodeType":"YulIdentifier","src":"9689:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9792:6:53","nodeType":"YulIdentifier","src":"9792:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9805:9:53","nodeType":"YulIdentifier","src":"9805:9:53"},{"kind":"number","nativeSrc":"9816:1:53","nodeType":"YulLiteral","src":"9816:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9801:3:53","nodeType":"YulIdentifier","src":"9801:3:53"},"nativeSrc":"9801:17:53","nodeType":"YulFunctionCall","src":"9801:17:53"}],"functionName":{"name":"abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack","nativeSrc":"9725:66:53","nodeType":"YulIdentifier","src":"9725:66:53"},"nativeSrc":"9725:94:53","nodeType":"YulFunctionCall","src":"9725:94:53"},"nativeSrc":"9725:94:53","nodeType":"YulExpressionStatement","src":"9725:94:53"}]},"name":"abi_encode_tuple_t_contract$_BoostRegistry_$12680__to_t_address__fromStack_reversed","nativeSrc":"9558:268:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9651:9:53","nodeType":"YulTypedName","src":"9651:9:53","type":""},{"name":"value0","nativeSrc":"9663:6:53","nodeType":"YulTypedName","src":"9663:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9674:4:53","nodeType":"YulTypedName","src":"9674:4:53","type":""}],"src":"9558:268:53"},{"body":{"nativeSrc":"9895:52:53","nodeType":"YulBlock","src":"9895:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9912:3:53","nodeType":"YulIdentifier","src":"9912:3:53"},{"arguments":[{"name":"value","nativeSrc":"9934:5:53","nodeType":"YulIdentifier","src":"9934:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"9917:16:53","nodeType":"YulIdentifier","src":"9917:16:53"},"nativeSrc":"9917:23:53","nodeType":"YulFunctionCall","src":"9917:23:53"}],"functionName":{"name":"mstore","nativeSrc":"9905:6:53","nodeType":"YulIdentifier","src":"9905:6:53"},"nativeSrc":"9905:36:53","nodeType":"YulFunctionCall","src":"9905:36:53"},"nativeSrc":"9905:36:53","nodeType":"YulExpressionStatement","src":"9905:36:53"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"9832:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9883:5:53","nodeType":"YulTypedName","src":"9883:5:53","type":""},{"name":"pos","nativeSrc":"9890:3:53","nodeType":"YulTypedName","src":"9890:3:53","type":""}],"src":"9832:115:53"},{"body":{"nativeSrc":"10049:122:53","nodeType":"YulBlock","src":"10049:122:53","statements":[{"nativeSrc":"10059:26:53","nodeType":"YulAssignment","src":"10059:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"10071:9:53","nodeType":"YulIdentifier","src":"10071:9:53"},{"kind":"number","nativeSrc":"10082:2:53","nodeType":"YulLiteral","src":"10082:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10067:3:53","nodeType":"YulIdentifier","src":"10067:3:53"},"nativeSrc":"10067:18:53","nodeType":"YulFunctionCall","src":"10067:18:53"},"variableNames":[{"name":"tail","nativeSrc":"10059:4:53","nodeType":"YulIdentifier","src":"10059:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10137:6:53","nodeType":"YulIdentifier","src":"10137:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10150:9:53","nodeType":"YulIdentifier","src":"10150:9:53"},{"kind":"number","nativeSrc":"10161:1:53","nodeType":"YulLiteral","src":"10161:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10146:3:53","nodeType":"YulIdentifier","src":"10146:3:53"},"nativeSrc":"10146:17:53","nodeType":"YulFunctionCall","src":"10146:17:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"10095:41:53","nodeType":"YulIdentifier","src":"10095:41:53"},"nativeSrc":"10095:69:53","nodeType":"YulFunctionCall","src":"10095:69:53"},"nativeSrc":"10095:69:53","nodeType":"YulExpressionStatement","src":"10095:69:53"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"9953:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10021:9:53","nodeType":"YulTypedName","src":"10021:9:53","type":""},{"name":"value0","nativeSrc":"10033:6:53","nodeType":"YulTypedName","src":"10033:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10044:4:53","nodeType":"YulTypedName","src":"10044:4:53","type":""}],"src":"9953:218:53"},{"body":{"nativeSrc":"10266:28:53","nodeType":"YulBlock","src":"10266:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10283:1:53","nodeType":"YulLiteral","src":"10283:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10286:1:53","nodeType":"YulLiteral","src":"10286:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10276:6:53","nodeType":"YulIdentifier","src":"10276:6:53"},"nativeSrc":"10276:12:53","nodeType":"YulFunctionCall","src":"10276:12:53"},"nativeSrc":"10276:12:53","nodeType":"YulExpressionStatement","src":"10276:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10177:117:53","nodeType":"YulFunctionDefinition","src":"10177:117:53"},{"body":{"nativeSrc":"10389:28:53","nodeType":"YulBlock","src":"10389:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10406:1:53","nodeType":"YulLiteral","src":"10406:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10409:1:53","nodeType":"YulLiteral","src":"10409:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10399:6:53","nodeType":"YulIdentifier","src":"10399:6:53"},"nativeSrc":"10399:12:53","nodeType":"YulFunctionCall","src":"10399:12:53"},"nativeSrc":"10399:12:53","nodeType":"YulExpressionStatement","src":"10399:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10300:117:53","nodeType":"YulFunctionDefinition","src":"10300:117:53"},{"body":{"nativeSrc":"10512:28:53","nodeType":"YulBlock","src":"10512:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10529:1:53","nodeType":"YulLiteral","src":"10529:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10532:1:53","nodeType":"YulLiteral","src":"10532:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10522:6:53","nodeType":"YulIdentifier","src":"10522:6:53"},"nativeSrc":"10522:12:53","nodeType":"YulFunctionCall","src":"10522:12:53"},"nativeSrc":"10522:12:53","nodeType":"YulExpressionStatement","src":"10522:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10423:117:53","nodeType":"YulFunctionDefinition","src":"10423:117:53"},{"body":{"nativeSrc":"10633:478:53","nodeType":"YulBlock","src":"10633:478:53","statements":[{"body":{"nativeSrc":"10682:83:53","nodeType":"YulBlock","src":"10682:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10684:77:53","nodeType":"YulIdentifier","src":"10684:77:53"},"nativeSrc":"10684:79:53","nodeType":"YulFunctionCall","src":"10684:79:53"},"nativeSrc":"10684:79:53","nodeType":"YulExpressionStatement","src":"10684:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10661:6:53","nodeType":"YulIdentifier","src":"10661:6:53"},{"kind":"number","nativeSrc":"10669:4:53","nodeType":"YulLiteral","src":"10669:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10657:3:53","nodeType":"YulIdentifier","src":"10657:3:53"},"nativeSrc":"10657:17:53","nodeType":"YulFunctionCall","src":"10657:17:53"},{"name":"end","nativeSrc":"10676:3:53","nodeType":"YulIdentifier","src":"10676:3:53"}],"functionName":{"name":"slt","nativeSrc":"10653:3:53","nodeType":"YulIdentifier","src":"10653:3:53"},"nativeSrc":"10653:27:53","nodeType":"YulFunctionCall","src":"10653:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10646:6:53","nodeType":"YulIdentifier","src":"10646:6:53"},"nativeSrc":"10646:35:53","nodeType":"YulFunctionCall","src":"10646:35:53"},"nativeSrc":"10643:122:53","nodeType":"YulIf","src":"10643:122:53"},{"nativeSrc":"10774:30:53","nodeType":"YulAssignment","src":"10774:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"10797:6:53","nodeType":"YulIdentifier","src":"10797:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10784:12:53","nodeType":"YulIdentifier","src":"10784:12:53"},"nativeSrc":"10784:20:53","nodeType":"YulFunctionCall","src":"10784:20:53"},"variableNames":[{"name":"length","nativeSrc":"10774:6:53","nodeType":"YulIdentifier","src":"10774:6:53"}]},{"body":{"nativeSrc":"10847:83:53","nodeType":"YulBlock","src":"10847:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10849:77:53","nodeType":"YulIdentifier","src":"10849:77:53"},"nativeSrc":"10849:79:53","nodeType":"YulFunctionCall","src":"10849:79:53"},"nativeSrc":"10849:79:53","nodeType":"YulExpressionStatement","src":"10849:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10819:6:53","nodeType":"YulIdentifier","src":"10819:6:53"},{"kind":"number","nativeSrc":"10827:18:53","nodeType":"YulLiteral","src":"10827:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10816:2:53","nodeType":"YulIdentifier","src":"10816:2:53"},"nativeSrc":"10816:30:53","nodeType":"YulFunctionCall","src":"10816:30:53"},"nativeSrc":"10813:117:53","nodeType":"YulIf","src":"10813:117:53"},{"nativeSrc":"10939:29:53","nodeType":"YulAssignment","src":"10939:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10955:6:53","nodeType":"YulIdentifier","src":"10955:6:53"},{"kind":"number","nativeSrc":"10963:4:53","nodeType":"YulLiteral","src":"10963:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10951:3:53","nodeType":"YulIdentifier","src":"10951:3:53"},"nativeSrc":"10951:17:53","nodeType":"YulFunctionCall","src":"10951:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"10939:8:53","nodeType":"YulIdentifier","src":"10939:8:53"}]},{"body":{"nativeSrc":"11022:83:53","nodeType":"YulBlock","src":"11022:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11024:77:53","nodeType":"YulIdentifier","src":"11024:77:53"},"nativeSrc":"11024:79:53","nodeType":"YulFunctionCall","src":"11024:79:53"},"nativeSrc":"11024:79:53","nodeType":"YulExpressionStatement","src":"11024:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10987:8:53","nodeType":"YulIdentifier","src":"10987:8:53"},{"arguments":[{"name":"length","nativeSrc":"11001:6:53","nodeType":"YulIdentifier","src":"11001:6:53"},{"kind":"number","nativeSrc":"11009:4:53","nodeType":"YulLiteral","src":"11009:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"10997:3:53","nodeType":"YulIdentifier","src":"10997:3:53"},"nativeSrc":"10997:17:53","nodeType":"YulFunctionCall","src":"10997:17:53"}],"functionName":{"name":"add","nativeSrc":"10983:3:53","nodeType":"YulIdentifier","src":"10983:3:53"},"nativeSrc":"10983:32:53","nodeType":"YulFunctionCall","src":"10983:32:53"},{"name":"end","nativeSrc":"11017:3:53","nodeType":"YulIdentifier","src":"11017:3:53"}],"functionName":{"name":"gt","nativeSrc":"10980:2:53","nodeType":"YulIdentifier","src":"10980:2:53"},"nativeSrc":"10980:41:53","nodeType":"YulFunctionCall","src":"10980:41:53"},"nativeSrc":"10977:128:53","nodeType":"YulIf","src":"10977:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"10559:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10600:6:53","nodeType":"YulTypedName","src":"10600:6:53","type":""},{"name":"end","nativeSrc":"10608:3:53","nodeType":"YulTypedName","src":"10608:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"10616:8:53","nodeType":"YulTypedName","src":"10616:8:53","type":""},{"name":"length","nativeSrc":"10626:6:53","nodeType":"YulTypedName","src":"10626:6:53","type":""}],"src":"10559:552:53"},{"body":{"nativeSrc":"11253:827:53","nodeType":"YulBlock","src":"11253:827:53","statements":[{"body":{"nativeSrc":"11300:83:53","nodeType":"YulBlock","src":"11300:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11302:77:53","nodeType":"YulIdentifier","src":"11302:77:53"},"nativeSrc":"11302:79:53","nodeType":"YulFunctionCall","src":"11302:79:53"},"nativeSrc":"11302:79:53","nodeType":"YulExpressionStatement","src":"11302:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11274:7:53","nodeType":"YulIdentifier","src":"11274:7:53"},{"name":"headStart","nativeSrc":"11283:9:53","nodeType":"YulIdentifier","src":"11283:9:53"}],"functionName":{"name":"sub","nativeSrc":"11270:3:53","nodeType":"YulIdentifier","src":"11270:3:53"},"nativeSrc":"11270:23:53","nodeType":"YulFunctionCall","src":"11270:23:53"},{"kind":"number","nativeSrc":"11295:3:53","nodeType":"YulLiteral","src":"11295:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11266:3:53","nodeType":"YulIdentifier","src":"11266:3:53"},"nativeSrc":"11266:33:53","nodeType":"YulFunctionCall","src":"11266:33:53"},"nativeSrc":"11263:120:53","nodeType":"YulIf","src":"11263:120:53"},{"nativeSrc":"11393:117:53","nodeType":"YulBlock","src":"11393:117:53","statements":[{"nativeSrc":"11408:15:53","nodeType":"YulVariableDeclaration","src":"11408:15:53","value":{"kind":"number","nativeSrc":"11422:1:53","nodeType":"YulLiteral","src":"11422:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11412:6:53","nodeType":"YulTypedName","src":"11412:6:53","type":""}]},{"nativeSrc":"11437:63:53","nodeType":"YulAssignment","src":"11437:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11472:9:53","nodeType":"YulIdentifier","src":"11472:9:53"},{"name":"offset","nativeSrc":"11483:6:53","nodeType":"YulIdentifier","src":"11483:6:53"}],"functionName":{"name":"add","nativeSrc":"11468:3:53","nodeType":"YulIdentifier","src":"11468:3:53"},"nativeSrc":"11468:22:53","nodeType":"YulFunctionCall","src":"11468:22:53"},{"name":"dataEnd","nativeSrc":"11492:7:53","nodeType":"YulIdentifier","src":"11492:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11447:20:53","nodeType":"YulIdentifier","src":"11447:20:53"},"nativeSrc":"11447:53:53","nodeType":"YulFunctionCall","src":"11447:53:53"},"variableNames":[{"name":"value0","nativeSrc":"11437:6:53","nodeType":"YulIdentifier","src":"11437:6:53"}]}]},{"nativeSrc":"11520:118:53","nodeType":"YulBlock","src":"11520:118:53","statements":[{"nativeSrc":"11535:16:53","nodeType":"YulVariableDeclaration","src":"11535:16:53","value":{"kind":"number","nativeSrc":"11549:2:53","nodeType":"YulLiteral","src":"11549:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11539:6:53","nodeType":"YulTypedName","src":"11539:6:53","type":""}]},{"nativeSrc":"11565:63:53","nodeType":"YulAssignment","src":"11565:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11600:9:53","nodeType":"YulIdentifier","src":"11600:9:53"},{"name":"offset","nativeSrc":"11611:6:53","nodeType":"YulIdentifier","src":"11611:6:53"}],"functionName":{"name":"add","nativeSrc":"11596:3:53","nodeType":"YulIdentifier","src":"11596:3:53"},"nativeSrc":"11596:22:53","nodeType":"YulFunctionCall","src":"11596:22:53"},{"name":"dataEnd","nativeSrc":"11620:7:53","nodeType":"YulIdentifier","src":"11620:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11575:20:53","nodeType":"YulIdentifier","src":"11575:20:53"},"nativeSrc":"11575:53:53","nodeType":"YulFunctionCall","src":"11575:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11565:6:53","nodeType":"YulIdentifier","src":"11565:6:53"}]}]},{"nativeSrc":"11648:118:53","nodeType":"YulBlock","src":"11648:118:53","statements":[{"nativeSrc":"11663:16:53","nodeType":"YulVariableDeclaration","src":"11663:16:53","value":{"kind":"number","nativeSrc":"11677:2:53","nodeType":"YulLiteral","src":"11677:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11667:6:53","nodeType":"YulTypedName","src":"11667:6:53","type":""}]},{"nativeSrc":"11693:63:53","nodeType":"YulAssignment","src":"11693:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11728:9:53","nodeType":"YulIdentifier","src":"11728:9:53"},{"name":"offset","nativeSrc":"11739:6:53","nodeType":"YulIdentifier","src":"11739:6:53"}],"functionName":{"name":"add","nativeSrc":"11724:3:53","nodeType":"YulIdentifier","src":"11724:3:53"},"nativeSrc":"11724:22:53","nodeType":"YulFunctionCall","src":"11724:22:53"},{"name":"dataEnd","nativeSrc":"11748:7:53","nodeType":"YulIdentifier","src":"11748:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11703:20:53","nodeType":"YulIdentifier","src":"11703:20:53"},"nativeSrc":"11703:53:53","nodeType":"YulFunctionCall","src":"11703:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11693:6:53","nodeType":"YulIdentifier","src":"11693:6:53"}]}]},{"nativeSrc":"11776:297:53","nodeType":"YulBlock","src":"11776:297:53","statements":[{"nativeSrc":"11791:46:53","nodeType":"YulVariableDeclaration","src":"11791:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11822:9:53","nodeType":"YulIdentifier","src":"11822:9:53"},{"kind":"number","nativeSrc":"11833:2:53","nodeType":"YulLiteral","src":"11833:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11818:3:53","nodeType":"YulIdentifier","src":"11818:3:53"},"nativeSrc":"11818:18:53","nodeType":"YulFunctionCall","src":"11818:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11805:12:53","nodeType":"YulIdentifier","src":"11805:12:53"},"nativeSrc":"11805:32:53","nodeType":"YulFunctionCall","src":"11805:32:53"},"variables":[{"name":"offset","nativeSrc":"11795:6:53","nodeType":"YulTypedName","src":"11795:6:53","type":""}]},{"body":{"nativeSrc":"11884:83:53","nodeType":"YulBlock","src":"11884:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11886:77:53","nodeType":"YulIdentifier","src":"11886:77:53"},"nativeSrc":"11886:79:53","nodeType":"YulFunctionCall","src":"11886:79:53"},"nativeSrc":"11886:79:53","nodeType":"YulExpressionStatement","src":"11886:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11856:6:53","nodeType":"YulIdentifier","src":"11856:6:53"},{"kind":"number","nativeSrc":"11864:18:53","nodeType":"YulLiteral","src":"11864:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11853:2:53","nodeType":"YulIdentifier","src":"11853:2:53"},"nativeSrc":"11853:30:53","nodeType":"YulFunctionCall","src":"11853:30:53"},"nativeSrc":"11850:117:53","nodeType":"YulIf","src":"11850:117:53"},{"nativeSrc":"11981:82:53","nodeType":"YulAssignment","src":"11981:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12035:9:53","nodeType":"YulIdentifier","src":"12035:9:53"},{"name":"offset","nativeSrc":"12046:6:53","nodeType":"YulIdentifier","src":"12046:6:53"}],"functionName":{"name":"add","nativeSrc":"12031:3:53","nodeType":"YulIdentifier","src":"12031:3:53"},"nativeSrc":"12031:22:53","nodeType":"YulFunctionCall","src":"12031:22:53"},{"name":"dataEnd","nativeSrc":"12055:7:53","nodeType":"YulIdentifier","src":"12055:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"11999:31:53","nodeType":"YulIdentifier","src":"11999:31:53"},"nativeSrc":"11999:64:53","nodeType":"YulFunctionCall","src":"11999:64:53"},"variableNames":[{"name":"value3","nativeSrc":"11981:6:53","nodeType":"YulIdentifier","src":"11981:6:53"},{"name":"value4","nativeSrc":"11989:6:53","nodeType":"YulIdentifier","src":"11989:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr","nativeSrc":"11117:963:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11191:9:53","nodeType":"YulTypedName","src":"11191:9:53","type":""},{"name":"dataEnd","nativeSrc":"11202:7:53","nodeType":"YulTypedName","src":"11202:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11214:6:53","nodeType":"YulTypedName","src":"11214:6:53","type":""},{"name":"value1","nativeSrc":"11222:6:53","nodeType":"YulTypedName","src":"11222:6:53","type":""},{"name":"value2","nativeSrc":"11230:6:53","nodeType":"YulTypedName","src":"11230:6:53","type":""},{"name":"value3","nativeSrc":"11238:6:53","nodeType":"YulTypedName","src":"11238:6:53","type":""},{"name":"value4","nativeSrc":"11246:6:53","nodeType":"YulTypedName","src":"11246:6:53","type":""}],"src":"11117:963:53"},{"body":{"nativeSrc":"12171:442:53","nodeType":"YulBlock","src":"12171:442:53","statements":[{"body":{"nativeSrc":"12217:83:53","nodeType":"YulBlock","src":"12217:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12219:77:53","nodeType":"YulIdentifier","src":"12219:77:53"},"nativeSrc":"12219:79:53","nodeType":"YulFunctionCall","src":"12219:79:53"},"nativeSrc":"12219:79:53","nodeType":"YulExpressionStatement","src":"12219:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12192:7:53","nodeType":"YulIdentifier","src":"12192:7:53"},{"name":"headStart","nativeSrc":"12201:9:53","nodeType":"YulIdentifier","src":"12201:9:53"}],"functionName":{"name":"sub","nativeSrc":"12188:3:53","nodeType":"YulIdentifier","src":"12188:3:53"},"nativeSrc":"12188:23:53","nodeType":"YulFunctionCall","src":"12188:23:53"},{"kind":"number","nativeSrc":"12213:2:53","nodeType":"YulLiteral","src":"12213:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12184:3:53","nodeType":"YulIdentifier","src":"12184:3:53"},"nativeSrc":"12184:32:53","nodeType":"YulFunctionCall","src":"12184:32:53"},"nativeSrc":"12181:119:53","nodeType":"YulIf","src":"12181:119:53"},{"nativeSrc":"12310:296:53","nodeType":"YulBlock","src":"12310:296:53","statements":[{"nativeSrc":"12325:45:53","nodeType":"YulVariableDeclaration","src":"12325:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12356:9:53","nodeType":"YulIdentifier","src":"12356:9:53"},{"kind":"number","nativeSrc":"12367:1:53","nodeType":"YulLiteral","src":"12367:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12352:3:53","nodeType":"YulIdentifier","src":"12352:3:53"},"nativeSrc":"12352:17:53","nodeType":"YulFunctionCall","src":"12352:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"12339:12:53","nodeType":"YulIdentifier","src":"12339:12:53"},"nativeSrc":"12339:31:53","nodeType":"YulFunctionCall","src":"12339:31:53"},"variables":[{"name":"offset","nativeSrc":"12329:6:53","nodeType":"YulTypedName","src":"12329:6:53","type":""}]},{"body":{"nativeSrc":"12417:83:53","nodeType":"YulBlock","src":"12417:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12419:77:53","nodeType":"YulIdentifier","src":"12419:77:53"},"nativeSrc":"12419:79:53","nodeType":"YulFunctionCall","src":"12419:79:53"},"nativeSrc":"12419:79:53","nodeType":"YulExpressionStatement","src":"12419:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12389:6:53","nodeType":"YulIdentifier","src":"12389:6:53"},{"kind":"number","nativeSrc":"12397:18:53","nodeType":"YulLiteral","src":"12397:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12386:2:53","nodeType":"YulIdentifier","src":"12386:2:53"},"nativeSrc":"12386:30:53","nodeType":"YulFunctionCall","src":"12386:30:53"},"nativeSrc":"12383:117:53","nodeType":"YulIf","src":"12383:117:53"},{"nativeSrc":"12514:82:53","nodeType":"YulAssignment","src":"12514:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12568:9:53","nodeType":"YulIdentifier","src":"12568:9:53"},{"name":"offset","nativeSrc":"12579:6:53","nodeType":"YulIdentifier","src":"12579:6:53"}],"functionName":{"name":"add","nativeSrc":"12564:3:53","nodeType":"YulIdentifier","src":"12564:3:53"},"nativeSrc":"12564:22:53","nodeType":"YulFunctionCall","src":"12564:22:53"},{"name":"dataEnd","nativeSrc":"12588:7:53","nodeType":"YulIdentifier","src":"12588:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"12532:31:53","nodeType":"YulIdentifier","src":"12532:31:53"},"nativeSrc":"12532:64:53","nodeType":"YulFunctionCall","src":"12532:64:53"},"variableNames":[{"name":"value0","nativeSrc":"12514:6:53","nodeType":"YulIdentifier","src":"12514:6:53"},{"name":"value1","nativeSrc":"12522:6:53","nodeType":"YulIdentifier","src":"12522:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"12086:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12133:9:53","nodeType":"YulTypedName","src":"12133:9:53","type":""},{"name":"dataEnd","nativeSrc":"12144:7:53","nodeType":"YulTypedName","src":"12144:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12156:6:53","nodeType":"YulTypedName","src":"12156:6:53","type":""},{"name":"value1","nativeSrc":"12164:6:53","nodeType":"YulTypedName","src":"12164:6:53","type":""}],"src":"12086:527:53"},{"body":{"nativeSrc":"12647:152:53","nodeType":"YulBlock","src":"12647:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12664:1:53","nodeType":"YulLiteral","src":"12664:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12667:77:53","nodeType":"YulLiteral","src":"12667:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12657:6:53","nodeType":"YulIdentifier","src":"12657:6:53"},"nativeSrc":"12657:88:53","nodeType":"YulFunctionCall","src":"12657:88:53"},"nativeSrc":"12657:88:53","nodeType":"YulExpressionStatement","src":"12657:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12761:1:53","nodeType":"YulLiteral","src":"12761:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"12764:4:53","nodeType":"YulLiteral","src":"12764:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"12754:6:53","nodeType":"YulIdentifier","src":"12754:6:53"},"nativeSrc":"12754:15:53","nodeType":"YulFunctionCall","src":"12754:15:53"},"nativeSrc":"12754:15:53","nodeType":"YulExpressionStatement","src":"12754:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12785:1:53","nodeType":"YulLiteral","src":"12785:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12788:4:53","nodeType":"YulLiteral","src":"12788:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12778:6:53","nodeType":"YulIdentifier","src":"12778:6:53"},"nativeSrc":"12778:15:53","nodeType":"YulFunctionCall","src":"12778:15:53"},"nativeSrc":"12778:15:53","nodeType":"YulExpressionStatement","src":"12778:15:53"}]},"name":"panic_error_0x32","nativeSrc":"12619:180:53","nodeType":"YulFunctionDefinition","src":"12619:180:53"},{"body":{"nativeSrc":"12959:288:53","nodeType":"YulBlock","src":"12959:288:53","statements":[{"nativeSrc":"12969:26:53","nodeType":"YulAssignment","src":"12969:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12981:9:53","nodeType":"YulIdentifier","src":"12981:9:53"},{"kind":"number","nativeSrc":"12992:2:53","nodeType":"YulLiteral","src":"12992:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12977:3:53","nodeType":"YulIdentifier","src":"12977:3:53"},"nativeSrc":"12977:18:53","nodeType":"YulFunctionCall","src":"12977:18:53"},"variableNames":[{"name":"tail","nativeSrc":"12969:4:53","nodeType":"YulIdentifier","src":"12969:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13049:6:53","nodeType":"YulIdentifier","src":"13049:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13062:9:53","nodeType":"YulIdentifier","src":"13062:9:53"},{"kind":"number","nativeSrc":"13073:1:53","nodeType":"YulLiteral","src":"13073:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13058:3:53","nodeType":"YulIdentifier","src":"13058:3:53"},"nativeSrc":"13058:17:53","nodeType":"YulFunctionCall","src":"13058:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13005:43:53","nodeType":"YulIdentifier","src":"13005:43:53"},"nativeSrc":"13005:71:53","nodeType":"YulFunctionCall","src":"13005:71:53"},"nativeSrc":"13005:71:53","nodeType":"YulExpressionStatement","src":"13005:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13130:6:53","nodeType":"YulIdentifier","src":"13130:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13143:9:53","nodeType":"YulIdentifier","src":"13143:9:53"},{"kind":"number","nativeSrc":"13154:2:53","nodeType":"YulLiteral","src":"13154:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13139:3:53","nodeType":"YulIdentifier","src":"13139:3:53"},"nativeSrc":"13139:18:53","nodeType":"YulFunctionCall","src":"13139:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13086:43:53","nodeType":"YulIdentifier","src":"13086:43:53"},"nativeSrc":"13086:72:53","nodeType":"YulFunctionCall","src":"13086:72:53"},"nativeSrc":"13086:72:53","nodeType":"YulExpressionStatement","src":"13086:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"13212:6:53","nodeType":"YulIdentifier","src":"13212:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13225:9:53","nodeType":"YulIdentifier","src":"13225:9:53"},{"kind":"number","nativeSrc":"13236:2:53","nodeType":"YulLiteral","src":"13236:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13221:3:53","nodeType":"YulIdentifier","src":"13221:3:53"},"nativeSrc":"13221:18:53","nodeType":"YulFunctionCall","src":"13221:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13168:43:53","nodeType":"YulIdentifier","src":"13168:43:53"},"nativeSrc":"13168:72:53","nodeType":"YulFunctionCall","src":"13168:72:53"},"nativeSrc":"13168:72:53","nodeType":"YulExpressionStatement","src":"13168:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12805:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12915:9:53","nodeType":"YulTypedName","src":"12915:9:53","type":""},{"name":"value2","nativeSrc":"12927:6:53","nodeType":"YulTypedName","src":"12927:6:53","type":""},{"name":"value1","nativeSrc":"12935:6:53","nodeType":"YulTypedName","src":"12935:6:53","type":""},{"name":"value0","nativeSrc":"12943:6:53","nodeType":"YulTypedName","src":"12943:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12954:4:53","nodeType":"YulTypedName","src":"12954:4:53","type":""}],"src":"12805:442:53"},{"body":{"nativeSrc":"13348:73:53","nodeType":"YulBlock","src":"13348:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13365:3:53","nodeType":"YulIdentifier","src":"13365:3:53"},{"name":"length","nativeSrc":"13370:6:53","nodeType":"YulIdentifier","src":"13370:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13358:6:53","nodeType":"YulIdentifier","src":"13358:6:53"},"nativeSrc":"13358:19:53","nodeType":"YulFunctionCall","src":"13358:19:53"},"nativeSrc":"13358:19:53","nodeType":"YulExpressionStatement","src":"13358:19:53"},{"nativeSrc":"13386:29:53","nodeType":"YulAssignment","src":"13386:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"13405:3:53","nodeType":"YulIdentifier","src":"13405:3:53"},{"kind":"number","nativeSrc":"13410:4:53","nodeType":"YulLiteral","src":"13410:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13401:3:53","nodeType":"YulIdentifier","src":"13401:3:53"},"nativeSrc":"13401:14:53","nodeType":"YulFunctionCall","src":"13401:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"13386:11:53","nodeType":"YulIdentifier","src":"13386:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13253:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13320:3:53","nodeType":"YulTypedName","src":"13320:3:53","type":""},{"name":"length","nativeSrc":"13325:6:53","nodeType":"YulTypedName","src":"13325:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13336:11:53","nodeType":"YulTypedName","src":"13336:11:53","type":""}],"src":"13253:168:53"},{"body":{"nativeSrc":"13491:84:53","nodeType":"YulBlock","src":"13491:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13515:3:53","nodeType":"YulIdentifier","src":"13515:3:53"},{"name":"src","nativeSrc":"13520:3:53","nodeType":"YulIdentifier","src":"13520:3:53"},{"name":"length","nativeSrc":"13525:6:53","nodeType":"YulIdentifier","src":"13525:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"13502:12:53","nodeType":"YulIdentifier","src":"13502:12:53"},"nativeSrc":"13502:30:53","nodeType":"YulFunctionCall","src":"13502:30:53"},"nativeSrc":"13502:30:53","nodeType":"YulExpressionStatement","src":"13502:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13552:3:53","nodeType":"YulIdentifier","src":"13552:3:53"},{"name":"length","nativeSrc":"13557:6:53","nodeType":"YulIdentifier","src":"13557:6:53"}],"functionName":{"name":"add","nativeSrc":"13548:3:53","nodeType":"YulIdentifier","src":"13548:3:53"},"nativeSrc":"13548:16:53","nodeType":"YulFunctionCall","src":"13548:16:53"},{"kind":"number","nativeSrc":"13566:1:53","nodeType":"YulLiteral","src":"13566:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13541:6:53","nodeType":"YulIdentifier","src":"13541:6:53"},"nativeSrc":"13541:27:53","nodeType":"YulFunctionCall","src":"13541:27:53"},"nativeSrc":"13541:27:53","nodeType":"YulExpressionStatement","src":"13541:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13427:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13473:3:53","nodeType":"YulTypedName","src":"13473:3:53","type":""},{"name":"dst","nativeSrc":"13478:3:53","nodeType":"YulTypedName","src":"13478:3:53","type":""},{"name":"length","nativeSrc":"13483:6:53","nodeType":"YulTypedName","src":"13483:6:53","type":""}],"src":"13427:148:53"},{"body":{"nativeSrc":"13629:54:53","nodeType":"YulBlock","src":"13629:54:53","statements":[{"nativeSrc":"13639:38:53","nodeType":"YulAssignment","src":"13639:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13657:5:53","nodeType":"YulIdentifier","src":"13657:5:53"},{"kind":"number","nativeSrc":"13664:2:53","nodeType":"YulLiteral","src":"13664:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13653:3:53","nodeType":"YulIdentifier","src":"13653:3:53"},"nativeSrc":"13653:14:53","nodeType":"YulFunctionCall","src":"13653:14:53"},{"arguments":[{"kind":"number","nativeSrc":"13673:2:53","nodeType":"YulLiteral","src":"13673:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13669:3:53","nodeType":"YulIdentifier","src":"13669:3:53"},"nativeSrc":"13669:7:53","nodeType":"YulFunctionCall","src":"13669:7:53"}],"functionName":{"name":"and","nativeSrc":"13649:3:53","nodeType":"YulIdentifier","src":"13649:3:53"},"nativeSrc":"13649:28:53","nodeType":"YulFunctionCall","src":"13649:28:53"},"variableNames":[{"name":"result","nativeSrc":"13639:6:53","nodeType":"YulIdentifier","src":"13639:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"13581:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13612:5:53","nodeType":"YulTypedName","src":"13612:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"13622:6:53","nodeType":"YulTypedName","src":"13622:6:53","type":""}],"src":"13581:102:53"},{"body":{"nativeSrc":"13811:214:53","nodeType":"YulBlock","src":"13811:214:53","statements":[{"nativeSrc":"13821:77:53","nodeType":"YulAssignment","src":"13821:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"13886:3:53","nodeType":"YulIdentifier","src":"13886:3:53"},{"name":"length","nativeSrc":"13891:6:53","nodeType":"YulIdentifier","src":"13891:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13828:57:53","nodeType":"YulIdentifier","src":"13828:57:53"},"nativeSrc":"13828:70:53","nodeType":"YulFunctionCall","src":"13828:70:53"},"variableNames":[{"name":"pos","nativeSrc":"13821:3:53","nodeType":"YulIdentifier","src":"13821:3:53"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"13945:5:53","nodeType":"YulIdentifier","src":"13945:5:53"},{"name":"pos","nativeSrc":"13952:3:53","nodeType":"YulIdentifier","src":"13952:3:53"},{"name":"length","nativeSrc":"13957:6:53","nodeType":"YulIdentifier","src":"13957:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13908:36:53","nodeType":"YulIdentifier","src":"13908:36:53"},"nativeSrc":"13908:56:53","nodeType":"YulFunctionCall","src":"13908:56:53"},"nativeSrc":"13908:56:53","nodeType":"YulExpressionStatement","src":"13908:56:53"},{"nativeSrc":"13973:46:53","nodeType":"YulAssignment","src":"13973:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"13984:3:53","nodeType":"YulIdentifier","src":"13984:3:53"},{"arguments":[{"name":"length","nativeSrc":"14011:6:53","nodeType":"YulIdentifier","src":"14011:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13989:21:53","nodeType":"YulIdentifier","src":"13989:21:53"},"nativeSrc":"13989:29:53","nodeType":"YulFunctionCall","src":"13989:29:53"}],"functionName":{"name":"add","nativeSrc":"13980:3:53","nodeType":"YulIdentifier","src":"13980:3:53"},"nativeSrc":"13980:39:53","nodeType":"YulFunctionCall","src":"13980:39:53"},"variableNames":[{"name":"end","nativeSrc":"13973:3:53","nodeType":"YulIdentifier","src":"13973:3:53"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"13711:314:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"13784:5:53","nodeType":"YulTypedName","src":"13784:5:53","type":""},{"name":"length","nativeSrc":"13791:6:53","nodeType":"YulTypedName","src":"13791:6:53","type":""},{"name":"pos","nativeSrc":"13799:3:53","nodeType":"YulTypedName","src":"13799:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13807:3:53","nodeType":"YulTypedName","src":"13807:3:53","type":""}],"src":"13711:314:53"},{"body":{"nativeSrc":"14157:203:53","nodeType":"YulBlock","src":"14157:203:53","statements":[{"nativeSrc":"14167:26:53","nodeType":"YulAssignment","src":"14167:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14179:9:53","nodeType":"YulIdentifier","src":"14179:9:53"},{"kind":"number","nativeSrc":"14190:2:53","nodeType":"YulLiteral","src":"14190:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14175:3:53","nodeType":"YulIdentifier","src":"14175:3:53"},"nativeSrc":"14175:18:53","nodeType":"YulFunctionCall","src":"14175:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14167:4:53","nodeType":"YulIdentifier","src":"14167:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14214:9:53","nodeType":"YulIdentifier","src":"14214:9:53"},{"kind":"number","nativeSrc":"14225:1:53","nodeType":"YulLiteral","src":"14225:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14210:3:53","nodeType":"YulIdentifier","src":"14210:3:53"},"nativeSrc":"14210:17:53","nodeType":"YulFunctionCall","src":"14210:17:53"},{"arguments":[{"name":"tail","nativeSrc":"14233:4:53","nodeType":"YulIdentifier","src":"14233:4:53"},{"name":"headStart","nativeSrc":"14239:9:53","nodeType":"YulIdentifier","src":"14239:9:53"}],"functionName":{"name":"sub","nativeSrc":"14229:3:53","nodeType":"YulIdentifier","src":"14229:3:53"},"nativeSrc":"14229:20:53","nodeType":"YulFunctionCall","src":"14229:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14203:6:53","nodeType":"YulIdentifier","src":"14203:6:53"},"nativeSrc":"14203:47:53","nodeType":"YulFunctionCall","src":"14203:47:53"},"nativeSrc":"14203:47:53","nodeType":"YulExpressionStatement","src":"14203:47:53"},{"nativeSrc":"14259:94:53","nodeType":"YulAssignment","src":"14259:94:53","value":{"arguments":[{"name":"value0","nativeSrc":"14331:6:53","nodeType":"YulIdentifier","src":"14331:6:53"},{"name":"value1","nativeSrc":"14339:6:53","nodeType":"YulIdentifier","src":"14339:6:53"},{"name":"tail","nativeSrc":"14348:4:53","nodeType":"YulIdentifier","src":"14348:4:53"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"14267:63:53","nodeType":"YulIdentifier","src":"14267:63:53"},"nativeSrc":"14267:86:53","nodeType":"YulFunctionCall","src":"14267:86:53"},"variableNames":[{"name":"tail","nativeSrc":"14259:4:53","nodeType":"YulIdentifier","src":"14259:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"14031:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14121:9:53","nodeType":"YulTypedName","src":"14121:9:53","type":""},{"name":"value1","nativeSrc":"14133:6:53","nodeType":"YulTypedName","src":"14133:6:53","type":""},{"name":"value0","nativeSrc":"14141:6:53","nodeType":"YulTypedName","src":"14141:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14152:4:53","nodeType":"YulTypedName","src":"14152:4:53","type":""}],"src":"14031:329:53"},{"body":{"nativeSrc":"14408:48:53","nodeType":"YulBlock","src":"14408:48:53","statements":[{"nativeSrc":"14418:32:53","nodeType":"YulAssignment","src":"14418:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14443:5:53","nodeType":"YulIdentifier","src":"14443:5:53"}],"functionName":{"name":"iszero","nativeSrc":"14436:6:53","nodeType":"YulIdentifier","src":"14436:6:53"},"nativeSrc":"14436:13:53","nodeType":"YulFunctionCall","src":"14436:13:53"}],"functionName":{"name":"iszero","nativeSrc":"14429:6:53","nodeType":"YulIdentifier","src":"14429:6:53"},"nativeSrc":"14429:21:53","nodeType":"YulFunctionCall","src":"14429:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"14418:7:53","nodeType":"YulIdentifier","src":"14418:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"14366:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14390:5:53","nodeType":"YulTypedName","src":"14390:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14400:7:53","nodeType":"YulTypedName","src":"14400:7:53","type":""}],"src":"14366:90:53"},{"body":{"nativeSrc":"14502:76:53","nodeType":"YulBlock","src":"14502:76:53","statements":[{"body":{"nativeSrc":"14556:16:53","nodeType":"YulBlock","src":"14556:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14565:1:53","nodeType":"YulLiteral","src":"14565:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14568:1:53","nodeType":"YulLiteral","src":"14568:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14558:6:53","nodeType":"YulIdentifier","src":"14558:6:53"},"nativeSrc":"14558:12:53","nodeType":"YulFunctionCall","src":"14558:12:53"},"nativeSrc":"14558:12:53","nodeType":"YulExpressionStatement","src":"14558:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14525:5:53","nodeType":"YulIdentifier","src":"14525:5:53"},{"arguments":[{"name":"value","nativeSrc":"14547:5:53","nodeType":"YulIdentifier","src":"14547:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"14532:14:53","nodeType":"YulIdentifier","src":"14532:14:53"},"nativeSrc":"14532:21:53","nodeType":"YulFunctionCall","src":"14532:21:53"}],"functionName":{"name":"eq","nativeSrc":"14522:2:53","nodeType":"YulIdentifier","src":"14522:2:53"},"nativeSrc":"14522:32:53","nodeType":"YulFunctionCall","src":"14522:32:53"}],"functionName":{"name":"iszero","nativeSrc":"14515:6:53","nodeType":"YulIdentifier","src":"14515:6:53"},"nativeSrc":"14515:40:53","nodeType":"YulFunctionCall","src":"14515:40:53"},"nativeSrc":"14512:60:53","nodeType":"YulIf","src":"14512:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"14462:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14495:5:53","nodeType":"YulTypedName","src":"14495:5:53","type":""}],"src":"14462:116:53"},{"body":{"nativeSrc":"14644:77:53","nodeType":"YulBlock","src":"14644:77:53","statements":[{"nativeSrc":"14654:22:53","nodeType":"YulAssignment","src":"14654:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"14669:6:53","nodeType":"YulIdentifier","src":"14669:6:53"}],"functionName":{"name":"mload","nativeSrc":"14663:5:53","nodeType":"YulIdentifier","src":"14663:5:53"},"nativeSrc":"14663:13:53","nodeType":"YulFunctionCall","src":"14663:13:53"},"variableNames":[{"name":"value","nativeSrc":"14654:5:53","nodeType":"YulIdentifier","src":"14654:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14709:5:53","nodeType":"YulIdentifier","src":"14709:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"14685:23:53","nodeType":"YulIdentifier","src":"14685:23:53"},"nativeSrc":"14685:30:53","nodeType":"YulFunctionCall","src":"14685:30:53"},"nativeSrc":"14685:30:53","nodeType":"YulExpressionStatement","src":"14685:30:53"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14584:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14622:6:53","nodeType":"YulTypedName","src":"14622:6:53","type":""},{"name":"end","nativeSrc":"14630:3:53","nodeType":"YulTypedName","src":"14630:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14638:5:53","nodeType":"YulTypedName","src":"14638:5:53","type":""}],"src":"14584:137:53"},{"body":{"nativeSrc":"14801:271:53","nodeType":"YulBlock","src":"14801:271:53","statements":[{"body":{"nativeSrc":"14847:83:53","nodeType":"YulBlock","src":"14847:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14849:77:53","nodeType":"YulIdentifier","src":"14849:77:53"},"nativeSrc":"14849:79:53","nodeType":"YulFunctionCall","src":"14849:79:53"},"nativeSrc":"14849:79:53","nodeType":"YulExpressionStatement","src":"14849:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14822:7:53","nodeType":"YulIdentifier","src":"14822:7:53"},{"name":"headStart","nativeSrc":"14831:9:53","nodeType":"YulIdentifier","src":"14831:9:53"}],"functionName":{"name":"sub","nativeSrc":"14818:3:53","nodeType":"YulIdentifier","src":"14818:3:53"},"nativeSrc":"14818:23:53","nodeType":"YulFunctionCall","src":"14818:23:53"},{"kind":"number","nativeSrc":"14843:2:53","nodeType":"YulLiteral","src":"14843:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14814:3:53","nodeType":"YulIdentifier","src":"14814:3:53"},"nativeSrc":"14814:32:53","nodeType":"YulFunctionCall","src":"14814:32:53"},"nativeSrc":"14811:119:53","nodeType":"YulIf","src":"14811:119:53"},{"nativeSrc":"14940:125:53","nodeType":"YulBlock","src":"14940:125:53","statements":[{"nativeSrc":"14955:15:53","nodeType":"YulVariableDeclaration","src":"14955:15:53","value":{"kind":"number","nativeSrc":"14969:1:53","nodeType":"YulLiteral","src":"14969:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14959:6:53","nodeType":"YulTypedName","src":"14959:6:53","type":""}]},{"nativeSrc":"14984:71:53","nodeType":"YulAssignment","src":"14984:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15027:9:53","nodeType":"YulIdentifier","src":"15027:9:53"},{"name":"offset","nativeSrc":"15038:6:53","nodeType":"YulIdentifier","src":"15038:6:53"}],"functionName":{"name":"add","nativeSrc":"15023:3:53","nodeType":"YulIdentifier","src":"15023:3:53"},"nativeSrc":"15023:22:53","nodeType":"YulFunctionCall","src":"15023:22:53"},{"name":"dataEnd","nativeSrc":"15047:7:53","nodeType":"YulIdentifier","src":"15047:7:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14994:28:53","nodeType":"YulIdentifier","src":"14994:28:53"},"nativeSrc":"14994:61:53","nodeType":"YulFunctionCall","src":"14994:61:53"},"variableNames":[{"name":"value0","nativeSrc":"14984:6:53","nodeType":"YulIdentifier","src":"14984:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"14727:345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14771:9:53","nodeType":"YulTypedName","src":"14771:9:53","type":""},{"name":"dataEnd","nativeSrc":"14782:7:53","nodeType":"YulTypedName","src":"14782:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14794:6:53","nodeType":"YulTypedName","src":"14794:6:53","type":""}],"src":"14727:345:53"},{"body":{"nativeSrc":"15136:40:53","nodeType":"YulBlock","src":"15136:40:53","statements":[{"nativeSrc":"15147:22:53","nodeType":"YulAssignment","src":"15147:22:53","value":{"arguments":[{"name":"value","nativeSrc":"15163:5:53","nodeType":"YulIdentifier","src":"15163:5:53"}],"functionName":{"name":"mload","nativeSrc":"15157:5:53","nodeType":"YulIdentifier","src":"15157:5:53"},"nativeSrc":"15157:12:53","nodeType":"YulFunctionCall","src":"15157:12:53"},"variableNames":[{"name":"length","nativeSrc":"15147:6:53","nodeType":"YulIdentifier","src":"15147:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"15078:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15119:5:53","nodeType":"YulTypedName","src":"15119:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15129:6:53","nodeType":"YulTypedName","src":"15129:6:53","type":""}],"src":"15078:98:53"},{"body":{"nativeSrc":"15267:73:53","nodeType":"YulBlock","src":"15267:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15284:3:53","nodeType":"YulIdentifier","src":"15284:3:53"},{"name":"length","nativeSrc":"15289:6:53","nodeType":"YulIdentifier","src":"15289:6:53"}],"functionName":{"name":"mstore","nativeSrc":"15277:6:53","nodeType":"YulIdentifier","src":"15277:6:53"},"nativeSrc":"15277:19:53","nodeType":"YulFunctionCall","src":"15277:19:53"},"nativeSrc":"15277:19:53","nodeType":"YulExpressionStatement","src":"15277:19:53"},{"nativeSrc":"15305:29:53","nodeType":"YulAssignment","src":"15305:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"15324:3:53","nodeType":"YulIdentifier","src":"15324:3:53"},{"kind":"number","nativeSrc":"15329:4:53","nodeType":"YulLiteral","src":"15329:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15320:3:53","nodeType":"YulIdentifier","src":"15320:3:53"},"nativeSrc":"15320:14:53","nodeType":"YulFunctionCall","src":"15320:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"15305:11:53","nodeType":"YulIdentifier","src":"15305:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"15182:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15239:3:53","nodeType":"YulTypedName","src":"15239:3:53","type":""},{"name":"length","nativeSrc":"15244:6:53","nodeType":"YulTypedName","src":"15244:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"15255:11:53","nodeType":"YulTypedName","src":"15255:11:53","type":""}],"src":"15182:158:53"},{"body":{"nativeSrc":"15408:77:53","nodeType":"YulBlock","src":"15408:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"15425:3:53","nodeType":"YulIdentifier","src":"15425:3:53"},{"name":"src","nativeSrc":"15430:3:53","nodeType":"YulIdentifier","src":"15430:3:53"},{"name":"length","nativeSrc":"15435:6:53","nodeType":"YulIdentifier","src":"15435:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"15419:5:53","nodeType":"YulIdentifier","src":"15419:5:53"},"nativeSrc":"15419:23:53","nodeType":"YulFunctionCall","src":"15419:23:53"},"nativeSrc":"15419:23:53","nodeType":"YulExpressionStatement","src":"15419:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"15462:3:53","nodeType":"YulIdentifier","src":"15462:3:53"},{"name":"length","nativeSrc":"15467:6:53","nodeType":"YulIdentifier","src":"15467:6:53"}],"functionName":{"name":"add","nativeSrc":"15458:3:53","nodeType":"YulIdentifier","src":"15458:3:53"},"nativeSrc":"15458:16:53","nodeType":"YulFunctionCall","src":"15458:16:53"},{"kind":"number","nativeSrc":"15476:1:53","nodeType":"YulLiteral","src":"15476:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15451:6:53","nodeType":"YulIdentifier","src":"15451:6:53"},"nativeSrc":"15451:27:53","nodeType":"YulFunctionCall","src":"15451:27:53"},"nativeSrc":"15451:27:53","nodeType":"YulExpressionStatement","src":"15451:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15346:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15390:3:53","nodeType":"YulTypedName","src":"15390:3:53","type":""},{"name":"dst","nativeSrc":"15395:3:53","nodeType":"YulTypedName","src":"15395:3:53","type":""},{"name":"length","nativeSrc":"15400:6:53","nodeType":"YulTypedName","src":"15400:6:53","type":""}],"src":"15346:139:53"},{"body":{"nativeSrc":"15571:273:53","nodeType":"YulBlock","src":"15571:273:53","statements":[{"nativeSrc":"15581:52:53","nodeType":"YulVariableDeclaration","src":"15581:52:53","value":{"arguments":[{"name":"value","nativeSrc":"15627:5:53","nodeType":"YulIdentifier","src":"15627:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"15595:31:53","nodeType":"YulIdentifier","src":"15595:31:53"},"nativeSrc":"15595:38:53","nodeType":"YulFunctionCall","src":"15595:38:53"},"variables":[{"name":"length","nativeSrc":"15585:6:53","nodeType":"YulTypedName","src":"15585:6:53","type":""}]},{"nativeSrc":"15642:67:53","nodeType":"YulAssignment","src":"15642:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"15697:3:53","nodeType":"YulIdentifier","src":"15697:3:53"},{"name":"length","nativeSrc":"15702:6:53","nodeType":"YulIdentifier","src":"15702:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"15649:47:53","nodeType":"YulIdentifier","src":"15649:47:53"},"nativeSrc":"15649:60:53","nodeType":"YulFunctionCall","src":"15649:60:53"},"variableNames":[{"name":"pos","nativeSrc":"15642:3:53","nodeType":"YulIdentifier","src":"15642:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15757:5:53","nodeType":"YulIdentifier","src":"15757:5:53"},{"kind":"number","nativeSrc":"15764:4:53","nodeType":"YulLiteral","src":"15764:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15753:3:53","nodeType":"YulIdentifier","src":"15753:3:53"},"nativeSrc":"15753:16:53","nodeType":"YulFunctionCall","src":"15753:16:53"},{"name":"pos","nativeSrc":"15771:3:53","nodeType":"YulIdentifier","src":"15771:3:53"},{"name":"length","nativeSrc":"15776:6:53","nodeType":"YulIdentifier","src":"15776:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15718:34:53","nodeType":"YulIdentifier","src":"15718:34:53"},"nativeSrc":"15718:65:53","nodeType":"YulFunctionCall","src":"15718:65:53"},"nativeSrc":"15718:65:53","nodeType":"YulExpressionStatement","src":"15718:65:53"},{"nativeSrc":"15792:46:53","nodeType":"YulAssignment","src":"15792:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"15803:3:53","nodeType":"YulIdentifier","src":"15803:3:53"},{"arguments":[{"name":"length","nativeSrc":"15830:6:53","nodeType":"YulIdentifier","src":"15830:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15808:21:53","nodeType":"YulIdentifier","src":"15808:21:53"},"nativeSrc":"15808:29:53","nodeType":"YulFunctionCall","src":"15808:29:53"}],"functionName":{"name":"add","nativeSrc":"15799:3:53","nodeType":"YulIdentifier","src":"15799:3:53"},"nativeSrc":"15799:39:53","nodeType":"YulFunctionCall","src":"15799:39:53"},"variableNames":[{"name":"end","nativeSrc":"15792:3:53","nodeType":"YulIdentifier","src":"15792:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"15491:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15552:5:53","nodeType":"YulTypedName","src":"15552:5:53","type":""},{"name":"pos","nativeSrc":"15559:3:53","nodeType":"YulTypedName","src":"15559:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15567:3:53","nodeType":"YulTypedName","src":"15567:3:53","type":""}],"src":"15491:353:53"},{"body":{"nativeSrc":"16056:482:53","nodeType":"YulBlock","src":"16056:482:53","statements":[{"nativeSrc":"16066:26:53","nodeType":"YulVariableDeclaration","src":"16066:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"16082:3:53","nodeType":"YulIdentifier","src":"16082:3:53"},{"kind":"number","nativeSrc":"16087:4:53","nodeType":"YulLiteral","src":"16087:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16078:3:53","nodeType":"YulIdentifier","src":"16078:3:53"},"nativeSrc":"16078:14:53","nodeType":"YulFunctionCall","src":"16078:14:53"},"variables":[{"name":"tail","nativeSrc":"16070:4:53","nodeType":"YulTypedName","src":"16070:4:53","type":""}]},{"nativeSrc":"16102:166:53","nodeType":"YulBlock","src":"16102:166:53","statements":[{"nativeSrc":"16139:43:53","nodeType":"YulVariableDeclaration","src":"16139:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16169:5:53","nodeType":"YulIdentifier","src":"16169:5:53"},{"kind":"number","nativeSrc":"16176:4:53","nodeType":"YulLiteral","src":"16176:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16165:3:53","nodeType":"YulIdentifier","src":"16165:3:53"},"nativeSrc":"16165:16:53","nodeType":"YulFunctionCall","src":"16165:16:53"}],"functionName":{"name":"mload","nativeSrc":"16159:5:53","nodeType":"YulIdentifier","src":"16159:5:53"},"nativeSrc":"16159:23:53","nodeType":"YulFunctionCall","src":"16159:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"16143:12:53","nodeType":"YulTypedName","src":"16143:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"16229:12:53","nodeType":"YulIdentifier","src":"16229:12:53"},{"arguments":[{"name":"pos","nativeSrc":"16247:3:53","nodeType":"YulIdentifier","src":"16247:3:53"},{"kind":"number","nativeSrc":"16252:4:53","nodeType":"YulLiteral","src":"16252:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16243:3:53","nodeType":"YulIdentifier","src":"16243:3:53"},"nativeSrc":"16243:14:53","nodeType":"YulFunctionCall","src":"16243:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"16195:33:53","nodeType":"YulIdentifier","src":"16195:33:53"},"nativeSrc":"16195:63:53","nodeType":"YulFunctionCall","src":"16195:63:53"},"nativeSrc":"16195:63:53","nodeType":"YulExpressionStatement","src":"16195:63:53"}]},{"nativeSrc":"16278:233:53","nodeType":"YulBlock","src":"16278:233:53","statements":[{"nativeSrc":"16313:43:53","nodeType":"YulVariableDeclaration","src":"16313:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16343:5:53","nodeType":"YulIdentifier","src":"16343:5:53"},{"kind":"number","nativeSrc":"16350:4:53","nodeType":"YulLiteral","src":"16350:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16339:3:53","nodeType":"YulIdentifier","src":"16339:3:53"},"nativeSrc":"16339:16:53","nodeType":"YulFunctionCall","src":"16339:16:53"}],"functionName":{"name":"mload","nativeSrc":"16333:5:53","nodeType":"YulIdentifier","src":"16333:5:53"},"nativeSrc":"16333:23:53","nodeType":"YulFunctionCall","src":"16333:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"16317:12:53","nodeType":"YulTypedName","src":"16317:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16381:3:53","nodeType":"YulIdentifier","src":"16381:3:53"},{"kind":"number","nativeSrc":"16386:4:53","nodeType":"YulLiteral","src":"16386:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16377:3:53","nodeType":"YulIdentifier","src":"16377:3:53"},"nativeSrc":"16377:14:53","nodeType":"YulFunctionCall","src":"16377:14:53"},{"arguments":[{"name":"tail","nativeSrc":"16397:4:53","nodeType":"YulIdentifier","src":"16397:4:53"},{"name":"pos","nativeSrc":"16403:3:53","nodeType":"YulIdentifier","src":"16403:3:53"}],"functionName":{"name":"sub","nativeSrc":"16393:3:53","nodeType":"YulIdentifier","src":"16393:3:53"},"nativeSrc":"16393:14:53","nodeType":"YulFunctionCall","src":"16393:14:53"}],"functionName":{"name":"mstore","nativeSrc":"16370:6:53","nodeType":"YulIdentifier","src":"16370:6:53"},"nativeSrc":"16370:38:53","nodeType":"YulFunctionCall","src":"16370:38:53"},"nativeSrc":"16370:38:53","nodeType":"YulExpressionStatement","src":"16370:38:53"},{"nativeSrc":"16421:79:53","nodeType":"YulAssignment","src":"16421:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"16481:12:53","nodeType":"YulIdentifier","src":"16481:12:53"},{"name":"tail","nativeSrc":"16495:4:53","nodeType":"YulIdentifier","src":"16495:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"16429:51:53","nodeType":"YulIdentifier","src":"16429:51:53"},"nativeSrc":"16429:71:53","nodeType":"YulFunctionCall","src":"16429:71:53"},"variableNames":[{"name":"tail","nativeSrc":"16421:4:53","nodeType":"YulIdentifier","src":"16421:4:53"}]}]},{"nativeSrc":"16521:11:53","nodeType":"YulAssignment","src":"16521:11:53","value":{"name":"tail","nativeSrc":"16528:4:53","nodeType":"YulIdentifier","src":"16528:4:53"},"variableNames":[{"name":"end","nativeSrc":"16521:3:53","nodeType":"YulIdentifier","src":"16521:3:53"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"15920:618:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16035:5:53","nodeType":"YulTypedName","src":"16035:5:53","type":""},{"name":"pos","nativeSrc":"16042:3:53","nodeType":"YulTypedName","src":"16042:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16051:3:53","nodeType":"YulTypedName","src":"16051:3:53","type":""}],"src":"15920:618:53"},{"body":{"nativeSrc":"16704:237:53","nodeType":"YulBlock","src":"16704:237:53","statements":[{"nativeSrc":"16714:26:53","nodeType":"YulAssignment","src":"16714:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16726:9:53","nodeType":"YulIdentifier","src":"16726:9:53"},{"kind":"number","nativeSrc":"16737:2:53","nodeType":"YulLiteral","src":"16737:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16722:3:53","nodeType":"YulIdentifier","src":"16722:3:53"},"nativeSrc":"16722:18:53","nodeType":"YulFunctionCall","src":"16722:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16714:4:53","nodeType":"YulIdentifier","src":"16714:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16761:9:53","nodeType":"YulIdentifier","src":"16761:9:53"},{"kind":"number","nativeSrc":"16772:1:53","nodeType":"YulLiteral","src":"16772:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16757:3:53","nodeType":"YulIdentifier","src":"16757:3:53"},"nativeSrc":"16757:17:53","nodeType":"YulFunctionCall","src":"16757:17:53"},{"arguments":[{"name":"tail","nativeSrc":"16780:4:53","nodeType":"YulIdentifier","src":"16780:4:53"},{"name":"headStart","nativeSrc":"16786:9:53","nodeType":"YulIdentifier","src":"16786:9:53"}],"functionName":{"name":"sub","nativeSrc":"16776:3:53","nodeType":"YulIdentifier","src":"16776:3:53"},"nativeSrc":"16776:20:53","nodeType":"YulFunctionCall","src":"16776:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16750:6:53","nodeType":"YulIdentifier","src":"16750:6:53"},"nativeSrc":"16750:47:53","nodeType":"YulFunctionCall","src":"16750:47:53"},"nativeSrc":"16750:47:53","nodeType":"YulExpressionStatement","src":"16750:47:53"},{"nativeSrc":"16806:128:53","nodeType":"YulAssignment","src":"16806:128:53","value":{"arguments":[{"name":"value0","nativeSrc":"16920:6:53","nodeType":"YulIdentifier","src":"16920:6:53"},{"name":"tail","nativeSrc":"16929:4:53","nodeType":"YulIdentifier","src":"16929:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"16814:105:53","nodeType":"YulIdentifier","src":"16814:105:53"},"nativeSrc":"16814:120:53","nodeType":"YulFunctionCall","src":"16814:120:53"},"variableNames":[{"name":"tail","nativeSrc":"16806:4:53","nodeType":"YulIdentifier","src":"16806:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed","nativeSrc":"16544:397:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16676:9:53","nodeType":"YulTypedName","src":"16676:9:53","type":""},{"name":"value0","nativeSrc":"16688:6:53","nodeType":"YulTypedName","src":"16688:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16699:4:53","nodeType":"YulTypedName","src":"16699:4:53","type":""}],"src":"16544:397:53"},{"body":{"nativeSrc":"17037:283:53","nodeType":"YulBlock","src":"17037:283:53","statements":[{"nativeSrc":"17047:52:53","nodeType":"YulVariableDeclaration","src":"17047:52:53","value":{"arguments":[{"name":"value","nativeSrc":"17093:5:53","nodeType":"YulIdentifier","src":"17093:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"17061:31:53","nodeType":"YulIdentifier","src":"17061:31:53"},"nativeSrc":"17061:38:53","nodeType":"YulFunctionCall","src":"17061:38:53"},"variables":[{"name":"length","nativeSrc":"17051:6:53","nodeType":"YulTypedName","src":"17051:6:53","type":""}]},{"nativeSrc":"17108:77:53","nodeType":"YulAssignment","src":"17108:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"17173:3:53","nodeType":"YulIdentifier","src":"17173:3:53"},{"name":"length","nativeSrc":"17178:6:53","nodeType":"YulIdentifier","src":"17178:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"17115:57:53","nodeType":"YulIdentifier","src":"17115:57:53"},"nativeSrc":"17115:70:53","nodeType":"YulFunctionCall","src":"17115:70:53"},"variableNames":[{"name":"pos","nativeSrc":"17108:3:53","nodeType":"YulIdentifier","src":"17108:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17233:5:53","nodeType":"YulIdentifier","src":"17233:5:53"},{"kind":"number","nativeSrc":"17240:4:53","nodeType":"YulLiteral","src":"17240:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17229:3:53","nodeType":"YulIdentifier","src":"17229:3:53"},"nativeSrc":"17229:16:53","nodeType":"YulFunctionCall","src":"17229:16:53"},{"name":"pos","nativeSrc":"17247:3:53","nodeType":"YulIdentifier","src":"17247:3:53"},{"name":"length","nativeSrc":"17252:6:53","nodeType":"YulIdentifier","src":"17252:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17194:34:53","nodeType":"YulIdentifier","src":"17194:34:53"},"nativeSrc":"17194:65:53","nodeType":"YulFunctionCall","src":"17194:65:53"},"nativeSrc":"17194:65:53","nodeType":"YulExpressionStatement","src":"17194:65:53"},{"nativeSrc":"17268:46:53","nodeType":"YulAssignment","src":"17268:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"17279:3:53","nodeType":"YulIdentifier","src":"17279:3:53"},{"arguments":[{"name":"length","nativeSrc":"17306:6:53","nodeType":"YulIdentifier","src":"17306:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17284:21:53","nodeType":"YulIdentifier","src":"17284:21:53"},"nativeSrc":"17284:29:53","nodeType":"YulFunctionCall","src":"17284:29:53"}],"functionName":{"name":"add","nativeSrc":"17275:3:53","nodeType":"YulIdentifier","src":"17275:3:53"},"nativeSrc":"17275:39:53","nodeType":"YulFunctionCall","src":"17275:39:53"},"variableNames":[{"name":"end","nativeSrc":"17268:3:53","nodeType":"YulIdentifier","src":"17268:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16947:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17018:5:53","nodeType":"YulTypedName","src":"17018:5:53","type":""},{"name":"pos","nativeSrc":"17025:3:53","nodeType":"YulTypedName","src":"17025:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17033:3:53","nodeType":"YulTypedName","src":"17033:3:53","type":""}],"src":"16947:373:53"},{"body":{"nativeSrc":"17442:193:53","nodeType":"YulBlock","src":"17442:193:53","statements":[{"nativeSrc":"17452:26:53","nodeType":"YulAssignment","src":"17452:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17464:9:53","nodeType":"YulIdentifier","src":"17464:9:53"},{"kind":"number","nativeSrc":"17475:2:53","nodeType":"YulLiteral","src":"17475:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17460:3:53","nodeType":"YulIdentifier","src":"17460:3:53"},"nativeSrc":"17460:18:53","nodeType":"YulFunctionCall","src":"17460:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17452:4:53","nodeType":"YulIdentifier","src":"17452:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17499:9:53","nodeType":"YulIdentifier","src":"17499:9:53"},{"kind":"number","nativeSrc":"17510:1:53","nodeType":"YulLiteral","src":"17510:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17495:3:53","nodeType":"YulIdentifier","src":"17495:3:53"},"nativeSrc":"17495:17:53","nodeType":"YulFunctionCall","src":"17495:17:53"},{"arguments":[{"name":"tail","nativeSrc":"17518:4:53","nodeType":"YulIdentifier","src":"17518:4:53"},{"name":"headStart","nativeSrc":"17524:9:53","nodeType":"YulIdentifier","src":"17524:9:53"}],"functionName":{"name":"sub","nativeSrc":"17514:3:53","nodeType":"YulIdentifier","src":"17514:3:53"},"nativeSrc":"17514:20:53","nodeType":"YulFunctionCall","src":"17514:20:53"}],"functionName":{"name":"mstore","nativeSrc":"17488:6:53","nodeType":"YulIdentifier","src":"17488:6:53"},"nativeSrc":"17488:47:53","nodeType":"YulFunctionCall","src":"17488:47:53"},"nativeSrc":"17488:47:53","nodeType":"YulExpressionStatement","src":"17488:47:53"},{"nativeSrc":"17544:84:53","nodeType":"YulAssignment","src":"17544:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"17614:6:53","nodeType":"YulIdentifier","src":"17614:6:53"},{"name":"tail","nativeSrc":"17623:4:53","nodeType":"YulIdentifier","src":"17623:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17552:61:53","nodeType":"YulIdentifier","src":"17552:61:53"},"nativeSrc":"17552:76:53","nodeType":"YulFunctionCall","src":"17552:76:53"},"variableNames":[{"name":"tail","nativeSrc":"17544:4:53","nodeType":"YulIdentifier","src":"17544:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17326:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17414:9:53","nodeType":"YulTypedName","src":"17414:9:53","type":""},{"name":"value0","nativeSrc":"17426:6:53","nodeType":"YulTypedName","src":"17426:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17437:4:53","nodeType":"YulTypedName","src":"17437:4:53","type":""}],"src":"17326:309:53"},{"body":{"nativeSrc":"17795:285:53","nodeType":"YulBlock","src":"17795:285:53","statements":[{"nativeSrc":"17805:26:53","nodeType":"YulAssignment","src":"17805:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17817:9:53","nodeType":"YulIdentifier","src":"17817:9:53"},{"kind":"number","nativeSrc":"17828:2:53","nodeType":"YulLiteral","src":"17828:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17813:3:53","nodeType":"YulIdentifier","src":"17813:3:53"},"nativeSrc":"17813:18:53","nodeType":"YulFunctionCall","src":"17813:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17805:4:53","nodeType":"YulIdentifier","src":"17805:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17885:6:53","nodeType":"YulIdentifier","src":"17885:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17898:9:53","nodeType":"YulIdentifier","src":"17898:9:53"},{"kind":"number","nativeSrc":"17909:1:53","nodeType":"YulLiteral","src":"17909:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17894:3:53","nodeType":"YulIdentifier","src":"17894:3:53"},"nativeSrc":"17894:17:53","nodeType":"YulFunctionCall","src":"17894:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17841:43:53","nodeType":"YulIdentifier","src":"17841:43:53"},"nativeSrc":"17841:71:53","nodeType":"YulFunctionCall","src":"17841:71:53"},"nativeSrc":"17841:71:53","nodeType":"YulExpressionStatement","src":"17841:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17933:9:53","nodeType":"YulIdentifier","src":"17933:9:53"},{"kind":"number","nativeSrc":"17944:2:53","nodeType":"YulLiteral","src":"17944:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17929:3:53","nodeType":"YulIdentifier","src":"17929:3:53"},"nativeSrc":"17929:18:53","nodeType":"YulFunctionCall","src":"17929:18:53"},{"arguments":[{"name":"tail","nativeSrc":"17953:4:53","nodeType":"YulIdentifier","src":"17953:4:53"},{"name":"headStart","nativeSrc":"17959:9:53","nodeType":"YulIdentifier","src":"17959:9:53"}],"functionName":{"name":"sub","nativeSrc":"17949:3:53","nodeType":"YulIdentifier","src":"17949:3:53"},"nativeSrc":"17949:20:53","nodeType":"YulFunctionCall","src":"17949:20:53"}],"functionName":{"name":"mstore","nativeSrc":"17922:6:53","nodeType":"YulIdentifier","src":"17922:6:53"},"nativeSrc":"17922:48:53","nodeType":"YulFunctionCall","src":"17922:48:53"},"nativeSrc":"17922:48:53","nodeType":"YulExpressionStatement","src":"17922:48:53"},{"nativeSrc":"17979:94:53","nodeType":"YulAssignment","src":"17979:94:53","value":{"arguments":[{"name":"value1","nativeSrc":"18051:6:53","nodeType":"YulIdentifier","src":"18051:6:53"},{"name":"value2","nativeSrc":"18059:6:53","nodeType":"YulIdentifier","src":"18059:6:53"},{"name":"tail","nativeSrc":"18068:4:53","nodeType":"YulIdentifier","src":"18068:4:53"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17987:63:53","nodeType":"YulIdentifier","src":"17987:63:53"},"nativeSrc":"17987:86:53","nodeType":"YulFunctionCall","src":"17987:86:53"},"variableNames":[{"name":"tail","nativeSrc":"17979:4:53","nodeType":"YulIdentifier","src":"17979:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17641:439:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17751:9:53","nodeType":"YulTypedName","src":"17751:9:53","type":""},{"name":"value2","nativeSrc":"17763:6:53","nodeType":"YulTypedName","src":"17763:6:53","type":""},{"name":"value1","nativeSrc":"17771:6:53","nodeType":"YulTypedName","src":"17771:6:53","type":""},{"name":"value0","nativeSrc":"17779:6:53","nodeType":"YulTypedName","src":"17779:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17790:4:53","nodeType":"YulTypedName","src":"17790:4:53","type":""}],"src":"17641:439:53"},{"body":{"nativeSrc":"18175:28:53","nodeType":"YulBlock","src":"18175:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18192:1:53","nodeType":"YulLiteral","src":"18192:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18195:1:53","nodeType":"YulLiteral","src":"18195:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18185:6:53","nodeType":"YulIdentifier","src":"18185:6:53"},"nativeSrc":"18185:12:53","nodeType":"YulFunctionCall","src":"18185:12:53"},"nativeSrc":"18185:12:53","nodeType":"YulExpressionStatement","src":"18185:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18086:117:53","nodeType":"YulFunctionDefinition","src":"18086:117:53"},{"body":{"nativeSrc":"18237:152:53","nodeType":"YulBlock","src":"18237:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18254:1:53","nodeType":"YulLiteral","src":"18254:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18257:77:53","nodeType":"YulLiteral","src":"18257:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18247:6:53","nodeType":"YulIdentifier","src":"18247:6:53"},"nativeSrc":"18247:88:53","nodeType":"YulFunctionCall","src":"18247:88:53"},"nativeSrc":"18247:88:53","nodeType":"YulExpressionStatement","src":"18247:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18351:1:53","nodeType":"YulLiteral","src":"18351:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"18354:4:53","nodeType":"YulLiteral","src":"18354:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"18344:6:53","nodeType":"YulIdentifier","src":"18344:6:53"},"nativeSrc":"18344:15:53","nodeType":"YulFunctionCall","src":"18344:15:53"},"nativeSrc":"18344:15:53","nodeType":"YulExpressionStatement","src":"18344:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18375:1:53","nodeType":"YulLiteral","src":"18375:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18378:4:53","nodeType":"YulLiteral","src":"18378:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18368:6:53","nodeType":"YulIdentifier","src":"18368:6:53"},"nativeSrc":"18368:15:53","nodeType":"YulFunctionCall","src":"18368:15:53"},"nativeSrc":"18368:15:53","nodeType":"YulExpressionStatement","src":"18368:15:53"}]},"name":"panic_error_0x41","nativeSrc":"18209:180:53","nodeType":"YulFunctionDefinition","src":"18209:180:53"},{"body":{"nativeSrc":"18438:238:53","nodeType":"YulBlock","src":"18438:238:53","statements":[{"nativeSrc":"18448:58:53","nodeType":"YulVariableDeclaration","src":"18448:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"18470:6:53","nodeType":"YulIdentifier","src":"18470:6:53"},{"arguments":[{"name":"size","nativeSrc":"18500:4:53","nodeType":"YulIdentifier","src":"18500:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"18478:21:53","nodeType":"YulIdentifier","src":"18478:21:53"},"nativeSrc":"18478:27:53","nodeType":"YulFunctionCall","src":"18478:27:53"}],"functionName":{"name":"add","nativeSrc":"18466:3:53","nodeType":"YulIdentifier","src":"18466:3:53"},"nativeSrc":"18466:40:53","nodeType":"YulFunctionCall","src":"18466:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"18452:10:53","nodeType":"YulTypedName","src":"18452:10:53","type":""}]},{"body":{"nativeSrc":"18617:22:53","nodeType":"YulBlock","src":"18617:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"18619:16:53","nodeType":"YulIdentifier","src":"18619:16:53"},"nativeSrc":"18619:18:53","nodeType":"YulFunctionCall","src":"18619:18:53"},"nativeSrc":"18619:18:53","nodeType":"YulExpressionStatement","src":"18619:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"18560:10:53","nodeType":"YulIdentifier","src":"18560:10:53"},{"kind":"number","nativeSrc":"18572:18:53","nodeType":"YulLiteral","src":"18572:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"18557:2:53","nodeType":"YulIdentifier","src":"18557:2:53"},"nativeSrc":"18557:34:53","nodeType":"YulFunctionCall","src":"18557:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"18596:10:53","nodeType":"YulIdentifier","src":"18596:10:53"},{"name":"memPtr","nativeSrc":"18608:6:53","nodeType":"YulIdentifier","src":"18608:6:53"}],"functionName":{"name":"lt","nativeSrc":"18593:2:53","nodeType":"YulIdentifier","src":"18593:2:53"},"nativeSrc":"18593:22:53","nodeType":"YulFunctionCall","src":"18593:22:53"}],"functionName":{"name":"or","nativeSrc":"18554:2:53","nodeType":"YulIdentifier","src":"18554:2:53"},"nativeSrc":"18554:62:53","nodeType":"YulFunctionCall","src":"18554:62:53"},"nativeSrc":"18551:88:53","nodeType":"YulIf","src":"18551:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18655:2:53","nodeType":"YulLiteral","src":"18655:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"18659:10:53","nodeType":"YulIdentifier","src":"18659:10:53"}],"functionName":{"name":"mstore","nativeSrc":"18648:6:53","nodeType":"YulIdentifier","src":"18648:6:53"},"nativeSrc":"18648:22:53","nodeType":"YulFunctionCall","src":"18648:22:53"},"nativeSrc":"18648:22:53","nodeType":"YulExpressionStatement","src":"18648:22:53"}]},"name":"finalize_allocation","nativeSrc":"18395:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18424:6:53","nodeType":"YulTypedName","src":"18424:6:53","type":""},{"name":"size","nativeSrc":"18432:4:53","nodeType":"YulTypedName","src":"18432:4:53","type":""}],"src":"18395:281:53"},{"body":{"nativeSrc":"18723:88:53","nodeType":"YulBlock","src":"18723:88:53","statements":[{"nativeSrc":"18733:30:53","nodeType":"YulAssignment","src":"18733:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"18743:18:53","nodeType":"YulIdentifier","src":"18743:18:53"},"nativeSrc":"18743:20:53","nodeType":"YulFunctionCall","src":"18743:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"18733:6:53","nodeType":"YulIdentifier","src":"18733:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"18792:6:53","nodeType":"YulIdentifier","src":"18792:6:53"},{"name":"size","nativeSrc":"18800:4:53","nodeType":"YulIdentifier","src":"18800:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"18772:19:53","nodeType":"YulIdentifier","src":"18772:19:53"},"nativeSrc":"18772:33:53","nodeType":"YulFunctionCall","src":"18772:33:53"},"nativeSrc":"18772:33:53","nodeType":"YulExpressionStatement","src":"18772:33:53"}]},"name":"allocate_memory","nativeSrc":"18682:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"18707:4:53","nodeType":"YulTypedName","src":"18707:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"18716:6:53","nodeType":"YulTypedName","src":"18716:6:53","type":""}],"src":"18682:129:53"},{"body":{"nativeSrc":"18906:28:53","nodeType":"YulBlock","src":"18906:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18923:1:53","nodeType":"YulLiteral","src":"18923:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18926:1:53","nodeType":"YulLiteral","src":"18926:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18916:6:53","nodeType":"YulIdentifier","src":"18916:6:53"},"nativeSrc":"18916:12:53","nodeType":"YulFunctionCall","src":"18916:12:53"},"nativeSrc":"18916:12:53","nodeType":"YulExpressionStatement","src":"18916:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"18817:117:53","nodeType":"YulFunctionDefinition","src":"18817:117:53"},{"body":{"nativeSrc":"18993:51:53","nodeType":"YulBlock","src":"18993:51:53","statements":[{"nativeSrc":"19003:35:53","nodeType":"YulAssignment","src":"19003:35:53","value":{"arguments":[{"name":"value","nativeSrc":"19032:5:53","nodeType":"YulIdentifier","src":"19032:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"19014:17:53","nodeType":"YulIdentifier","src":"19014:17:53"},"nativeSrc":"19014:24:53","nodeType":"YulFunctionCall","src":"19014:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"19003:7:53","nodeType":"YulIdentifier","src":"19003:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"18940:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18975:5:53","nodeType":"YulTypedName","src":"18975:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"18985:7:53","nodeType":"YulTypedName","src":"18985:7:53","type":""}],"src":"18940:104:53"},{"body":{"nativeSrc":"19111:59:53","nodeType":"YulBlock","src":"19111:59:53","statements":[{"nativeSrc":"19121:43:53","nodeType":"YulAssignment","src":"19121:43:53","value":{"arguments":[{"name":"value","nativeSrc":"19158:5:53","nodeType":"YulIdentifier","src":"19158:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"19132:25:53","nodeType":"YulIdentifier","src":"19132:25:53"},"nativeSrc":"19132:32:53","nodeType":"YulFunctionCall","src":"19132:32:53"},"variableNames":[{"name":"cleaned","nativeSrc":"19121:7:53","nodeType":"YulIdentifier","src":"19121:7:53"}]}]},"name":"cleanup_t_contract$_Budget_$13669","nativeSrc":"19050:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19093:5:53","nodeType":"YulTypedName","src":"19093:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"19103:7:53","nodeType":"YulTypedName","src":"19103:7:53","type":""}],"src":"19050:120:53"},{"body":{"nativeSrc":"19235:95:53","nodeType":"YulBlock","src":"19235:95:53","statements":[{"body":{"nativeSrc":"19308:16:53","nodeType":"YulBlock","src":"19308:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19317:1:53","nodeType":"YulLiteral","src":"19317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19320:1:53","nodeType":"YulLiteral","src":"19320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19310:6:53","nodeType":"YulIdentifier","src":"19310:6:53"},"nativeSrc":"19310:12:53","nodeType":"YulFunctionCall","src":"19310:12:53"},"nativeSrc":"19310:12:53","nodeType":"YulExpressionStatement","src":"19310:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19258:5:53","nodeType":"YulIdentifier","src":"19258:5:53"},{"arguments":[{"name":"value","nativeSrc":"19299:5:53","nodeType":"YulIdentifier","src":"19299:5:53"}],"functionName":{"name":"cleanup_t_contract$_Budget_$13669","nativeSrc":"19265:33:53","nodeType":"YulIdentifier","src":"19265:33:53"},"nativeSrc":"19265:40:53","nodeType":"YulFunctionCall","src":"19265:40:53"}],"functionName":{"name":"eq","nativeSrc":"19255:2:53","nodeType":"YulIdentifier","src":"19255:2:53"},"nativeSrc":"19255:51:53","nodeType":"YulFunctionCall","src":"19255:51:53"}],"functionName":{"name":"iszero","nativeSrc":"19248:6:53","nodeType":"YulIdentifier","src":"19248:6:53"},"nativeSrc":"19248:59:53","nodeType":"YulFunctionCall","src":"19248:59:53"},"nativeSrc":"19245:79:53","nodeType":"YulIf","src":"19245:79:53"}]},"name":"validator_revert_t_contract$_Budget_$13669","nativeSrc":"19176:154:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19228:5:53","nodeType":"YulTypedName","src":"19228:5:53","type":""}],"src":"19176:154:53"},{"body":{"nativeSrc":"19415:96:53","nodeType":"YulBlock","src":"19415:96:53","statements":[{"nativeSrc":"19425:22:53","nodeType":"YulAssignment","src":"19425:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"19440:6:53","nodeType":"YulIdentifier","src":"19440:6:53"}],"functionName":{"name":"mload","nativeSrc":"19434:5:53","nodeType":"YulIdentifier","src":"19434:5:53"},"nativeSrc":"19434:13:53","nodeType":"YulFunctionCall","src":"19434:13:53"},"variableNames":[{"name":"value","nativeSrc":"19425:5:53","nodeType":"YulIdentifier","src":"19425:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19499:5:53","nodeType":"YulIdentifier","src":"19499:5:53"}],"functionName":{"name":"validator_revert_t_contract$_Budget_$13669","nativeSrc":"19456:42:53","nodeType":"YulIdentifier","src":"19456:42:53"},"nativeSrc":"19456:49:53","nodeType":"YulFunctionCall","src":"19456:49:53"},"nativeSrc":"19456:49:53","nodeType":"YulExpressionStatement","src":"19456:49:53"}]},"name":"abi_decode_t_contract$_Budget_$13669_fromMemory","nativeSrc":"19336:175:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19393:6:53","nodeType":"YulTypedName","src":"19393:6:53","type":""},{"name":"end","nativeSrc":"19401:3:53","nodeType":"YulTypedName","src":"19401:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19409:5:53","nodeType":"YulTypedName","src":"19409:5:53","type":""}],"src":"19336:175:53"},{"body":{"nativeSrc":"19580:80:53","nodeType":"YulBlock","src":"19580:80:53","statements":[{"nativeSrc":"19590:22:53","nodeType":"YulAssignment","src":"19590:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"19605:6:53","nodeType":"YulIdentifier","src":"19605:6:53"}],"functionName":{"name":"mload","nativeSrc":"19599:5:53","nodeType":"YulIdentifier","src":"19599:5:53"},"nativeSrc":"19599:13:53","nodeType":"YulFunctionCall","src":"19599:13:53"},"variableNames":[{"name":"value","nativeSrc":"19590:5:53","nodeType":"YulIdentifier","src":"19590:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19648:5:53","nodeType":"YulIdentifier","src":"19648:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"19621:26:53","nodeType":"YulIdentifier","src":"19621:26:53"},"nativeSrc":"19621:33:53","nodeType":"YulFunctionCall","src":"19621:33:53"},"nativeSrc":"19621:33:53","nodeType":"YulExpressionStatement","src":"19621:33:53"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"19517:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19558:6:53","nodeType":"YulTypedName","src":"19558:6:53","type":""},{"name":"end","nativeSrc":"19566:3:53","nodeType":"YulTypedName","src":"19566:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19574:5:53","nodeType":"YulTypedName","src":"19574:5:53","type":""}],"src":"19517:143:53"},{"body":{"nativeSrc":"19755:28:53","nodeType":"YulBlock","src":"19755:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19772:1:53","nodeType":"YulLiteral","src":"19772:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19775:1:53","nodeType":"YulLiteral","src":"19775:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19765:6:53","nodeType":"YulIdentifier","src":"19765:6:53"},"nativeSrc":"19765:12:53","nodeType":"YulFunctionCall","src":"19765:12:53"},"nativeSrc":"19765:12:53","nodeType":"YulExpressionStatement","src":"19765:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"19666:117:53","nodeType":"YulFunctionDefinition","src":"19666:117:53"},{"body":{"nativeSrc":"19855:241:53","nodeType":"YulBlock","src":"19855:241:53","statements":[{"body":{"nativeSrc":"19960:22:53","nodeType":"YulBlock","src":"19960:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19962:16:53","nodeType":"YulIdentifier","src":"19962:16:53"},"nativeSrc":"19962:18:53","nodeType":"YulFunctionCall","src":"19962:18:53"},"nativeSrc":"19962:18:53","nodeType":"YulExpressionStatement","src":"19962:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"19932:6:53","nodeType":"YulIdentifier","src":"19932:6:53"},{"kind":"number","nativeSrc":"19940:18:53","nodeType":"YulLiteral","src":"19940:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19929:2:53","nodeType":"YulIdentifier","src":"19929:2:53"},"nativeSrc":"19929:30:53","nodeType":"YulFunctionCall","src":"19929:30:53"},"nativeSrc":"19926:56:53","nodeType":"YulIf","src":"19926:56:53"},{"nativeSrc":"19992:37:53","nodeType":"YulAssignment","src":"19992:37:53","value":{"arguments":[{"name":"length","nativeSrc":"20022:6:53","nodeType":"YulIdentifier","src":"20022:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"20000:21:53","nodeType":"YulIdentifier","src":"20000:21:53"},"nativeSrc":"20000:29:53","nodeType":"YulFunctionCall","src":"20000:29:53"},"variableNames":[{"name":"size","nativeSrc":"19992:4:53","nodeType":"YulIdentifier","src":"19992:4:53"}]},{"nativeSrc":"20066:23:53","nodeType":"YulAssignment","src":"20066:23:53","value":{"arguments":[{"name":"size","nativeSrc":"20078:4:53","nodeType":"YulIdentifier","src":"20078:4:53"},{"kind":"number","nativeSrc":"20084:4:53","nodeType":"YulLiteral","src":"20084:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20074:3:53","nodeType":"YulIdentifier","src":"20074:3:53"},"nativeSrc":"20074:15:53","nodeType":"YulFunctionCall","src":"20074:15:53"},"variableNames":[{"name":"size","nativeSrc":"20066:4:53","nodeType":"YulIdentifier","src":"20066:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"19789:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"19839:6:53","nodeType":"YulTypedName","src":"19839:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"19850:4:53","nodeType":"YulTypedName","src":"19850:4:53","type":""}],"src":"19789:307:53"},{"body":{"nativeSrc":"20196:338:53","nodeType":"YulBlock","src":"20196:338:53","statements":[{"nativeSrc":"20206:74:53","nodeType":"YulAssignment","src":"20206:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"20272:6:53","nodeType":"YulIdentifier","src":"20272:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"20231:40:53","nodeType":"YulIdentifier","src":"20231:40:53"},"nativeSrc":"20231:48:53","nodeType":"YulFunctionCall","src":"20231:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"20215:15:53","nodeType":"YulIdentifier","src":"20215:15:53"},"nativeSrc":"20215:65:53","nodeType":"YulFunctionCall","src":"20215:65:53"},"variableNames":[{"name":"array","nativeSrc":"20206:5:53","nodeType":"YulIdentifier","src":"20206:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"20296:5:53","nodeType":"YulIdentifier","src":"20296:5:53"},{"name":"length","nativeSrc":"20303:6:53","nodeType":"YulIdentifier","src":"20303:6:53"}],"functionName":{"name":"mstore","nativeSrc":"20289:6:53","nodeType":"YulIdentifier","src":"20289:6:53"},"nativeSrc":"20289:21:53","nodeType":"YulFunctionCall","src":"20289:21:53"},"nativeSrc":"20289:21:53","nodeType":"YulExpressionStatement","src":"20289:21:53"},{"nativeSrc":"20319:27:53","nodeType":"YulVariableDeclaration","src":"20319:27:53","value":{"arguments":[{"name":"array","nativeSrc":"20334:5:53","nodeType":"YulIdentifier","src":"20334:5:53"},{"kind":"number","nativeSrc":"20341:4:53","nodeType":"YulLiteral","src":"20341:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20330:3:53","nodeType":"YulIdentifier","src":"20330:3:53"},"nativeSrc":"20330:16:53","nodeType":"YulFunctionCall","src":"20330:16:53"},"variables":[{"name":"dst","nativeSrc":"20323:3:53","nodeType":"YulTypedName","src":"20323:3:53","type":""}]},{"body":{"nativeSrc":"20384:83:53","nodeType":"YulBlock","src":"20384:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"20386:77:53","nodeType":"YulIdentifier","src":"20386:77:53"},"nativeSrc":"20386:79:53","nodeType":"YulFunctionCall","src":"20386:79:53"},"nativeSrc":"20386:79:53","nodeType":"YulExpressionStatement","src":"20386:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20365:3:53","nodeType":"YulIdentifier","src":"20365:3:53"},{"name":"length","nativeSrc":"20370:6:53","nodeType":"YulIdentifier","src":"20370:6:53"}],"functionName":{"name":"add","nativeSrc":"20361:3:53","nodeType":"YulIdentifier","src":"20361:3:53"},"nativeSrc":"20361:16:53","nodeType":"YulFunctionCall","src":"20361:16:53"},{"name":"end","nativeSrc":"20379:3:53","nodeType":"YulIdentifier","src":"20379:3:53"}],"functionName":{"name":"gt","nativeSrc":"20358:2:53","nodeType":"YulIdentifier","src":"20358:2:53"},"nativeSrc":"20358:25:53","nodeType":"YulFunctionCall","src":"20358:25:53"},"nativeSrc":"20355:112:53","nodeType":"YulIf","src":"20355:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"20511:3:53","nodeType":"YulIdentifier","src":"20511:3:53"},{"name":"dst","nativeSrc":"20516:3:53","nodeType":"YulIdentifier","src":"20516:3:53"},{"name":"length","nativeSrc":"20521:6:53","nodeType":"YulIdentifier","src":"20521:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"20476:34:53","nodeType":"YulIdentifier","src":"20476:34:53"},"nativeSrc":"20476:52:53","nodeType":"YulFunctionCall","src":"20476:52:53"},"nativeSrc":"20476:52:53","nodeType":"YulExpressionStatement","src":"20476:52:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"20102:432:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"20169:3:53","nodeType":"YulTypedName","src":"20169:3:53","type":""},{"name":"length","nativeSrc":"20174:6:53","nodeType":"YulTypedName","src":"20174:6:53","type":""},{"name":"end","nativeSrc":"20182:3:53","nodeType":"YulTypedName","src":"20182:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20190:5:53","nodeType":"YulTypedName","src":"20190:5:53","type":""}],"src":"20102:432:53"},{"body":{"nativeSrc":"20625:281:53","nodeType":"YulBlock","src":"20625:281:53","statements":[{"body":{"nativeSrc":"20674:83:53","nodeType":"YulBlock","src":"20674:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"20676:77:53","nodeType":"YulIdentifier","src":"20676:77:53"},"nativeSrc":"20676:79:53","nodeType":"YulFunctionCall","src":"20676:79:53"},"nativeSrc":"20676:79:53","nodeType":"YulExpressionStatement","src":"20676:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20653:6:53","nodeType":"YulIdentifier","src":"20653:6:53"},{"kind":"number","nativeSrc":"20661:4:53","nodeType":"YulLiteral","src":"20661:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"20649:3:53","nodeType":"YulIdentifier","src":"20649:3:53"},"nativeSrc":"20649:17:53","nodeType":"YulFunctionCall","src":"20649:17:53"},{"name":"end","nativeSrc":"20668:3:53","nodeType":"YulIdentifier","src":"20668:3:53"}],"functionName":{"name":"slt","nativeSrc":"20645:3:53","nodeType":"YulIdentifier","src":"20645:3:53"},"nativeSrc":"20645:27:53","nodeType":"YulFunctionCall","src":"20645:27:53"}],"functionName":{"name":"iszero","nativeSrc":"20638:6:53","nodeType":"YulIdentifier","src":"20638:6:53"},"nativeSrc":"20638:35:53","nodeType":"YulFunctionCall","src":"20638:35:53"},"nativeSrc":"20635:122:53","nodeType":"YulIf","src":"20635:122:53"},{"nativeSrc":"20766:27:53","nodeType":"YulVariableDeclaration","src":"20766:27:53","value":{"arguments":[{"name":"offset","nativeSrc":"20786:6:53","nodeType":"YulIdentifier","src":"20786:6:53"}],"functionName":{"name":"mload","nativeSrc":"20780:5:53","nodeType":"YulIdentifier","src":"20780:5:53"},"nativeSrc":"20780:13:53","nodeType":"YulFunctionCall","src":"20780:13:53"},"variables":[{"name":"length","nativeSrc":"20770:6:53","nodeType":"YulTypedName","src":"20770:6:53","type":""}]},{"nativeSrc":"20802:98:53","nodeType":"YulAssignment","src":"20802:98:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20873:6:53","nodeType":"YulIdentifier","src":"20873:6:53"},{"kind":"number","nativeSrc":"20881:4:53","nodeType":"YulLiteral","src":"20881:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20869:3:53","nodeType":"YulIdentifier","src":"20869:3:53"},"nativeSrc":"20869:17:53","nodeType":"YulFunctionCall","src":"20869:17:53"},{"name":"length","nativeSrc":"20888:6:53","nodeType":"YulIdentifier","src":"20888:6:53"},{"name":"end","nativeSrc":"20896:3:53","nodeType":"YulIdentifier","src":"20896:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"20811:57:53","nodeType":"YulIdentifier","src":"20811:57:53"},"nativeSrc":"20811:89:53","nodeType":"YulFunctionCall","src":"20811:89:53"},"variableNames":[{"name":"array","nativeSrc":"20802:5:53","nodeType":"YulIdentifier","src":"20802:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"20553:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20603:6:53","nodeType":"YulTypedName","src":"20603:6:53","type":""},{"name":"end","nativeSrc":"20611:3:53","nodeType":"YulTypedName","src":"20611:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20619:5:53","nodeType":"YulTypedName","src":"20619:5:53","type":""}],"src":"20553:353:53"},{"body":{"nativeSrc":"21033:859:53","nodeType":"YulBlock","src":"21033:859:53","statements":[{"body":{"nativeSrc":"21077:83:53","nodeType":"YulBlock","src":"21077:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"21079:77:53","nodeType":"YulIdentifier","src":"21079:77:53"},"nativeSrc":"21079:79:53","nodeType":"YulFunctionCall","src":"21079:79:53"},"nativeSrc":"21079:79:53","nodeType":"YulExpressionStatement","src":"21079:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"21054:3:53","nodeType":"YulIdentifier","src":"21054:3:53"},{"name":"headStart","nativeSrc":"21059:9:53","nodeType":"YulIdentifier","src":"21059:9:53"}],"functionName":{"name":"sub","nativeSrc":"21050:3:53","nodeType":"YulIdentifier","src":"21050:3:53"},"nativeSrc":"21050:19:53","nodeType":"YulFunctionCall","src":"21050:19:53"},{"kind":"number","nativeSrc":"21071:4:53","nodeType":"YulLiteral","src":"21071:4:53","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"21046:3:53","nodeType":"YulIdentifier","src":"21046:3:53"},"nativeSrc":"21046:30:53","nodeType":"YulFunctionCall","src":"21046:30:53"},"nativeSrc":"21043:117:53","nodeType":"YulIf","src":"21043:117:53"},{"nativeSrc":"21169:30:53","nodeType":"YulAssignment","src":"21169:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"21194:4:53","nodeType":"YulLiteral","src":"21194:4:53","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"21178:15:53","nodeType":"YulIdentifier","src":"21178:15:53"},"nativeSrc":"21178:21:53","nodeType":"YulFunctionCall","src":"21178:21:53"},"variableNames":[{"name":"value","nativeSrc":"21169:5:53","nodeType":"YulIdentifier","src":"21169:5:53"}]},{"nativeSrc":"21209:160:53","nodeType":"YulBlock","src":"21209:160:53","statements":[{"nativeSrc":"21246:15:53","nodeType":"YulVariableDeclaration","src":"21246:15:53","value":{"kind":"number","nativeSrc":"21260:1:53","nodeType":"YulLiteral","src":"21260:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21250:6:53","nodeType":"YulTypedName","src":"21250:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21286:5:53","nodeType":"YulIdentifier","src":"21286:5:53"},{"kind":"number","nativeSrc":"21293:4:53","nodeType":"YulLiteral","src":"21293:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"21282:3:53","nodeType":"YulIdentifier","src":"21282:3:53"},"nativeSrc":"21282:16:53","nodeType":"YulFunctionCall","src":"21282:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21333:9:53","nodeType":"YulIdentifier","src":"21333:9:53"},{"name":"offset","nativeSrc":"21344:6:53","nodeType":"YulIdentifier","src":"21344:6:53"}],"functionName":{"name":"add","nativeSrc":"21329:3:53","nodeType":"YulIdentifier","src":"21329:3:53"},"nativeSrc":"21329:22:53","nodeType":"YulFunctionCall","src":"21329:22:53"},{"name":"end","nativeSrc":"21353:3:53","nodeType":"YulIdentifier","src":"21353:3:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"21300:28:53","nodeType":"YulIdentifier","src":"21300:28:53"},"nativeSrc":"21300:57:53","nodeType":"YulFunctionCall","src":"21300:57:53"}],"functionName":{"name":"mstore","nativeSrc":"21275:6:53","nodeType":"YulIdentifier","src":"21275:6:53"},"nativeSrc":"21275:83:53","nodeType":"YulFunctionCall","src":"21275:83:53"},"nativeSrc":"21275:83:53","nodeType":"YulExpressionStatement","src":"21275:83:53"}]},{"nativeSrc":"21379:166:53","nodeType":"YulBlock","src":"21379:166:53","statements":[{"nativeSrc":"21418:16:53","nodeType":"YulVariableDeclaration","src":"21418:16:53","value":{"kind":"number","nativeSrc":"21432:2:53","nodeType":"YulLiteral","src":"21432:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"21422:6:53","nodeType":"YulTypedName","src":"21422:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21459:5:53","nodeType":"YulIdentifier","src":"21459:5:53"},{"kind":"number","nativeSrc":"21466:4:53","nodeType":"YulLiteral","src":"21466:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21455:3:53","nodeType":"YulIdentifier","src":"21455:3:53"},"nativeSrc":"21455:16:53","nodeType":"YulFunctionCall","src":"21455:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21509:9:53","nodeType":"YulIdentifier","src":"21509:9:53"},{"name":"offset","nativeSrc":"21520:6:53","nodeType":"YulIdentifier","src":"21520:6:53"}],"functionName":{"name":"add","nativeSrc":"21505:3:53","nodeType":"YulIdentifier","src":"21505:3:53"},"nativeSrc":"21505:22:53","nodeType":"YulFunctionCall","src":"21505:22:53"},{"name":"end","nativeSrc":"21529:3:53","nodeType":"YulIdentifier","src":"21529:3:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"21473:31:53","nodeType":"YulIdentifier","src":"21473:31:53"},"nativeSrc":"21473:60:53","nodeType":"YulFunctionCall","src":"21473:60:53"}],"functionName":{"name":"mstore","nativeSrc":"21448:6:53","nodeType":"YulIdentifier","src":"21448:6:53"},"nativeSrc":"21448:86:53","nodeType":"YulFunctionCall","src":"21448:86:53"},"nativeSrc":"21448:86:53","nodeType":"YulExpressionStatement","src":"21448:86:53"}]},{"nativeSrc":"21555:330:53","nodeType":"YulBlock","src":"21555:330:53","statements":[{"nativeSrc":"21596:39:53","nodeType":"YulVariableDeclaration","src":"21596:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21620:9:53","nodeType":"YulIdentifier","src":"21620:9:53"},{"kind":"number","nativeSrc":"21631:2:53","nodeType":"YulLiteral","src":"21631:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21616:3:53","nodeType":"YulIdentifier","src":"21616:3:53"},"nativeSrc":"21616:18:53","nodeType":"YulFunctionCall","src":"21616:18:53"}],"functionName":{"name":"mload","nativeSrc":"21610:5:53","nodeType":"YulIdentifier","src":"21610:5:53"},"nativeSrc":"21610:25:53","nodeType":"YulFunctionCall","src":"21610:25:53"},"variables":[{"name":"offset","nativeSrc":"21600:6:53","nodeType":"YulTypedName","src":"21600:6:53","type":""}]},{"body":{"nativeSrc":"21682:83:53","nodeType":"YulBlock","src":"21682:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"21684:77:53","nodeType":"YulIdentifier","src":"21684:77:53"},"nativeSrc":"21684:79:53","nodeType":"YulFunctionCall","src":"21684:79:53"},"nativeSrc":"21684:79:53","nodeType":"YulExpressionStatement","src":"21684:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"21654:6:53","nodeType":"YulIdentifier","src":"21654:6:53"},{"kind":"number","nativeSrc":"21662:18:53","nodeType":"YulLiteral","src":"21662:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21651:2:53","nodeType":"YulIdentifier","src":"21651:2:53"},"nativeSrc":"21651:30:53","nodeType":"YulFunctionCall","src":"21651:30:53"},"nativeSrc":"21648:117:53","nodeType":"YulIf","src":"21648:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21790:5:53","nodeType":"YulIdentifier","src":"21790:5:53"},{"kind":"number","nativeSrc":"21797:4:53","nodeType":"YulLiteral","src":"21797:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21786:3:53","nodeType":"YulIdentifier","src":"21786:3:53"},"nativeSrc":"21786:16:53","nodeType":"YulFunctionCall","src":"21786:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21849:9:53","nodeType":"YulIdentifier","src":"21849:9:53"},{"name":"offset","nativeSrc":"21860:6:53","nodeType":"YulIdentifier","src":"21860:6:53"}],"functionName":{"name":"add","nativeSrc":"21845:3:53","nodeType":"YulIdentifier","src":"21845:3:53"},"nativeSrc":"21845:22:53","nodeType":"YulFunctionCall","src":"21845:22:53"},{"name":"end","nativeSrc":"21869:3:53","nodeType":"YulIdentifier","src":"21869:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"21804:40:53","nodeType":"YulIdentifier","src":"21804:40:53"},"nativeSrc":"21804:69:53","nodeType":"YulFunctionCall","src":"21804:69:53"}],"functionName":{"name":"mstore","nativeSrc":"21779:6:53","nodeType":"YulIdentifier","src":"21779:6:53"},"nativeSrc":"21779:95:53","nodeType":"YulFunctionCall","src":"21779:95:53"},"nativeSrc":"21779:95:53","nodeType":"YulExpressionStatement","src":"21779:95:53"}]}]},"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"20942:950:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21008:9:53","nodeType":"YulTypedName","src":"21008:9:53","type":""},{"name":"end","nativeSrc":"21019:3:53","nodeType":"YulTypedName","src":"21019:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"21027:5:53","nodeType":"YulTypedName","src":"21027:5:53","type":""}],"src":"20942:950:53"},{"body":{"nativeSrc":"22005:229:53","nodeType":"YulBlock","src":"22005:229:53","statements":[{"body":{"nativeSrc":"22110:22:53","nodeType":"YulBlock","src":"22110:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"22112:16:53","nodeType":"YulIdentifier","src":"22112:16:53"},"nativeSrc":"22112:18:53","nodeType":"YulFunctionCall","src":"22112:18:53"},"nativeSrc":"22112:18:53","nodeType":"YulExpressionStatement","src":"22112:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"22082:6:53","nodeType":"YulIdentifier","src":"22082:6:53"},{"kind":"number","nativeSrc":"22090:18:53","nodeType":"YulLiteral","src":"22090:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22079:2:53","nodeType":"YulIdentifier","src":"22079:2:53"},"nativeSrc":"22079:30:53","nodeType":"YulFunctionCall","src":"22079:30:53"},"nativeSrc":"22076:56:53","nodeType":"YulIf","src":"22076:56:53"},{"nativeSrc":"22142:25:53","nodeType":"YulAssignment","src":"22142:25:53","value":{"arguments":[{"name":"length","nativeSrc":"22154:6:53","nodeType":"YulIdentifier","src":"22154:6:53"},{"kind":"number","nativeSrc":"22162:4:53","nodeType":"YulLiteral","src":"22162:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"22150:3:53","nodeType":"YulIdentifier","src":"22150:3:53"},"nativeSrc":"22150:17:53","nodeType":"YulFunctionCall","src":"22150:17:53"},"variableNames":[{"name":"size","nativeSrc":"22142:4:53","nodeType":"YulIdentifier","src":"22142:4:53"}]},{"nativeSrc":"22204:23:53","nodeType":"YulAssignment","src":"22204:23:53","value":{"arguments":[{"name":"size","nativeSrc":"22216:4:53","nodeType":"YulIdentifier","src":"22216:4:53"},{"kind":"number","nativeSrc":"22222:4:53","nodeType":"YulLiteral","src":"22222:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22212:3:53","nodeType":"YulIdentifier","src":"22212:3:53"},"nativeSrc":"22212:15:53","nodeType":"YulFunctionCall","src":"22212:15:53"},"variableNames":[{"name":"size","nativeSrc":"22204:4:53","nodeType":"YulIdentifier","src":"22204:4:53"}]}]},"name":"array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","nativeSrc":"21898:336:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"21989:6:53","nodeType":"YulTypedName","src":"21989:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"22000:4:53","nodeType":"YulTypedName","src":"22000:4:53","type":""}],"src":"21898:336:53"},{"body":{"nativeSrc":"22410:867:53","nodeType":"YulBlock","src":"22410:867:53","statements":[{"nativeSrc":"22420:115:53","nodeType":"YulAssignment","src":"22420:115:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"22527:6:53","nodeType":"YulIdentifier","src":"22527:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr","nativeSrc":"22445:81:53","nodeType":"YulIdentifier","src":"22445:81:53"},"nativeSrc":"22445:89:53","nodeType":"YulFunctionCall","src":"22445:89:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"22429:15:53","nodeType":"YulIdentifier","src":"22429:15:53"},"nativeSrc":"22429:106:53","nodeType":"YulFunctionCall","src":"22429:106:53"},"variableNames":[{"name":"array","nativeSrc":"22420:5:53","nodeType":"YulIdentifier","src":"22420:5:53"}]},{"nativeSrc":"22544:16:53","nodeType":"YulVariableDeclaration","src":"22544:16:53","value":{"name":"array","nativeSrc":"22555:5:53","nodeType":"YulIdentifier","src":"22555:5:53"},"variables":[{"name":"dst","nativeSrc":"22548:3:53","nodeType":"YulTypedName","src":"22548:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22577:5:53","nodeType":"YulIdentifier","src":"22577:5:53"},{"name":"length","nativeSrc":"22584:6:53","nodeType":"YulIdentifier","src":"22584:6:53"}],"functionName":{"name":"mstore","nativeSrc":"22570:6:53","nodeType":"YulIdentifier","src":"22570:6:53"},"nativeSrc":"22570:21:53","nodeType":"YulFunctionCall","src":"22570:21:53"},"nativeSrc":"22570:21:53","nodeType":"YulExpressionStatement","src":"22570:21:53"},{"nativeSrc":"22600:23:53","nodeType":"YulAssignment","src":"22600:23:53","value":{"arguments":[{"name":"array","nativeSrc":"22611:5:53","nodeType":"YulIdentifier","src":"22611:5:53"},{"kind":"number","nativeSrc":"22618:4:53","nodeType":"YulLiteral","src":"22618:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22607:3:53","nodeType":"YulIdentifier","src":"22607:3:53"},"nativeSrc":"22607:16:53","nodeType":"YulFunctionCall","src":"22607:16:53"},"variableNames":[{"name":"dst","nativeSrc":"22600:3:53","nodeType":"YulIdentifier","src":"22600:3:53"}]},{"nativeSrc":"22633:44:53","nodeType":"YulVariableDeclaration","src":"22633:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"22651:6:53","nodeType":"YulIdentifier","src":"22651:6:53"},{"arguments":[{"name":"length","nativeSrc":"22663:6:53","nodeType":"YulIdentifier","src":"22663:6:53"},{"kind":"number","nativeSrc":"22671:4:53","nodeType":"YulLiteral","src":"22671:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"22659:3:53","nodeType":"YulIdentifier","src":"22659:3:53"},"nativeSrc":"22659:17:53","nodeType":"YulFunctionCall","src":"22659:17:53"}],"functionName":{"name":"add","nativeSrc":"22647:3:53","nodeType":"YulIdentifier","src":"22647:3:53"},"nativeSrc":"22647:30:53","nodeType":"YulFunctionCall","src":"22647:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"22637:6:53","nodeType":"YulTypedName","src":"22637:6:53","type":""}]},{"body":{"nativeSrc":"22705:103:53","nodeType":"YulBlock","src":"22705:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"22719:77:53","nodeType":"YulIdentifier","src":"22719:77:53"},"nativeSrc":"22719:79:53","nodeType":"YulFunctionCall","src":"22719:79:53"},"nativeSrc":"22719:79:53","nodeType":"YulExpressionStatement","src":"22719:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"22692:6:53","nodeType":"YulIdentifier","src":"22692:6:53"},{"name":"end","nativeSrc":"22700:3:53","nodeType":"YulIdentifier","src":"22700:3:53"}],"functionName":{"name":"gt","nativeSrc":"22689:2:53","nodeType":"YulIdentifier","src":"22689:2:53"},"nativeSrc":"22689:15:53","nodeType":"YulFunctionCall","src":"22689:15:53"},"nativeSrc":"22686:122:53","nodeType":"YulIf","src":"22686:122:53"},{"body":{"nativeSrc":"22893:378:53","nodeType":"YulBlock","src":"22893:378:53","statements":[{"nativeSrc":"22908:29:53","nodeType":"YulVariableDeclaration","src":"22908:29:53","value":{"arguments":[{"name":"src","nativeSrc":"22933:3:53","nodeType":"YulIdentifier","src":"22933:3:53"}],"functionName":{"name":"mload","nativeSrc":"22927:5:53","nodeType":"YulIdentifier","src":"22927:5:53"},"nativeSrc":"22927:10:53","nodeType":"YulFunctionCall","src":"22927:10:53"},"variables":[{"name":"innerOffset","nativeSrc":"22912:11:53","nodeType":"YulTypedName","src":"22912:11:53","type":""}]},{"body":{"nativeSrc":"22989:83:53","nodeType":"YulBlock","src":"22989:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"22991:77:53","nodeType":"YulIdentifier","src":"22991:77:53"},"nativeSrc":"22991:79:53","nodeType":"YulFunctionCall","src":"22991:79:53"},"nativeSrc":"22991:79:53","nodeType":"YulExpressionStatement","src":"22991:79:53"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"22956:11:53","nodeType":"YulIdentifier","src":"22956:11:53"},{"kind":"number","nativeSrc":"22969:18:53","nodeType":"YulLiteral","src":"22969:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22953:2:53","nodeType":"YulIdentifier","src":"22953:2:53"},"nativeSrc":"22953:35:53","nodeType":"YulFunctionCall","src":"22953:35:53"},"nativeSrc":"22950:122:53","nodeType":"YulIf","src":"22950:122:53"},{"nativeSrc":"23085:42:53","nodeType":"YulVariableDeclaration","src":"23085:42:53","value":{"arguments":[{"name":"offset","nativeSrc":"23107:6:53","nodeType":"YulIdentifier","src":"23107:6:53"},{"name":"innerOffset","nativeSrc":"23115:11:53","nodeType":"YulIdentifier","src":"23115:11:53"}],"functionName":{"name":"add","nativeSrc":"23103:3:53","nodeType":"YulIdentifier","src":"23103:3:53"},"nativeSrc":"23103:24:53","nodeType":"YulFunctionCall","src":"23103:24:53"},"variables":[{"name":"elementPos","nativeSrc":"23089:10:53","nodeType":"YulTypedName","src":"23089:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"23148:3:53","nodeType":"YulIdentifier","src":"23148:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"23210:10:53","nodeType":"YulIdentifier","src":"23210:10:53"},{"name":"end","nativeSrc":"23222:3:53","nodeType":"YulIdentifier","src":"23222:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"23153:56:53","nodeType":"YulIdentifier","src":"23153:56:53"},"nativeSrc":"23153:73:53","nodeType":"YulFunctionCall","src":"23153:73:53"}],"functionName":{"name":"mstore","nativeSrc":"23141:6:53","nodeType":"YulIdentifier","src":"23141:6:53"},"nativeSrc":"23141:86:53","nodeType":"YulFunctionCall","src":"23141:86:53"},"nativeSrc":"23141:86:53","nodeType":"YulExpressionStatement","src":"23141:86:53"},{"nativeSrc":"23240:21:53","nodeType":"YulAssignment","src":"23240:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"23251:3:53","nodeType":"YulIdentifier","src":"23251:3:53"},{"kind":"number","nativeSrc":"23256:4:53","nodeType":"YulLiteral","src":"23256:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23247:3:53","nodeType":"YulIdentifier","src":"23247:3:53"},"nativeSrc":"23247:14:53","nodeType":"YulFunctionCall","src":"23247:14:53"},"variableNames":[{"name":"dst","nativeSrc":"23240:3:53","nodeType":"YulIdentifier","src":"23240:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"22846:3:53","nodeType":"YulIdentifier","src":"22846:3:53"},{"name":"srcEnd","nativeSrc":"22851:6:53","nodeType":"YulIdentifier","src":"22851:6:53"}],"functionName":{"name":"lt","nativeSrc":"22843:2:53","nodeType":"YulIdentifier","src":"22843:2:53"},"nativeSrc":"22843:15:53","nodeType":"YulFunctionCall","src":"22843:15:53"},"nativeSrc":"22817:454:53","nodeType":"YulForLoop","post":{"nativeSrc":"22859:25:53","nodeType":"YulBlock","src":"22859:25:53","statements":[{"nativeSrc":"22861:21:53","nodeType":"YulAssignment","src":"22861:21:53","value":{"arguments":[{"name":"src","nativeSrc":"22872:3:53","nodeType":"YulIdentifier","src":"22872:3:53"},{"kind":"number","nativeSrc":"22877:4:53","nodeType":"YulLiteral","src":"22877:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22868:3:53","nodeType":"YulIdentifier","src":"22868:3:53"},"nativeSrc":"22868:14:53","nodeType":"YulFunctionCall","src":"22868:14:53"},"variableNames":[{"name":"src","nativeSrc":"22861:3:53","nodeType":"YulIdentifier","src":"22861:3:53"}]}]},"pre":{"nativeSrc":"22821:21:53","nodeType":"YulBlock","src":"22821:21:53","statements":[{"nativeSrc":"22823:17:53","nodeType":"YulVariableDeclaration","src":"22823:17:53","value":{"name":"offset","nativeSrc":"22834:6:53","nodeType":"YulIdentifier","src":"22834:6:53"},"variables":[{"name":"src","nativeSrc":"22827:3:53","nodeType":"YulTypedName","src":"22827:3:53","type":""}]}]},"src":"22817:454:53"}]},"name":"abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"22272:1005:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22380:6:53","nodeType":"YulTypedName","src":"22380:6:53","type":""},{"name":"length","nativeSrc":"22388:6:53","nodeType":"YulTypedName","src":"22388:6:53","type":""},{"name":"end","nativeSrc":"22396:3:53","nodeType":"YulTypedName","src":"22396:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22404:5:53","nodeType":"YulTypedName","src":"22404:5:53","type":""}],"src":"22272:1005:53"},{"body":{"nativeSrc":"23428:322:53","nodeType":"YulBlock","src":"23428:322:53","statements":[{"body":{"nativeSrc":"23477:83:53","nodeType":"YulBlock","src":"23477:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"23479:77:53","nodeType":"YulIdentifier","src":"23479:77:53"},"nativeSrc":"23479:79:53","nodeType":"YulFunctionCall","src":"23479:79:53"},"nativeSrc":"23479:79:53","nodeType":"YulExpressionStatement","src":"23479:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"23456:6:53","nodeType":"YulIdentifier","src":"23456:6:53"},{"kind":"number","nativeSrc":"23464:4:53","nodeType":"YulLiteral","src":"23464:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"23452:3:53","nodeType":"YulIdentifier","src":"23452:3:53"},"nativeSrc":"23452:17:53","nodeType":"YulFunctionCall","src":"23452:17:53"},{"name":"end","nativeSrc":"23471:3:53","nodeType":"YulIdentifier","src":"23471:3:53"}],"functionName":{"name":"slt","nativeSrc":"23448:3:53","nodeType":"YulIdentifier","src":"23448:3:53"},"nativeSrc":"23448:27:53","nodeType":"YulFunctionCall","src":"23448:27:53"}],"functionName":{"name":"iszero","nativeSrc":"23441:6:53","nodeType":"YulIdentifier","src":"23441:6:53"},"nativeSrc":"23441:35:53","nodeType":"YulFunctionCall","src":"23441:35:53"},"nativeSrc":"23438:122:53","nodeType":"YulIf","src":"23438:122:53"},{"nativeSrc":"23569:27:53","nodeType":"YulVariableDeclaration","src":"23569:27:53","value":{"arguments":[{"name":"offset","nativeSrc":"23589:6:53","nodeType":"YulIdentifier","src":"23589:6:53"}],"functionName":{"name":"mload","nativeSrc":"23583:5:53","nodeType":"YulIdentifier","src":"23583:5:53"},"nativeSrc":"23583:13:53","nodeType":"YulFunctionCall","src":"23583:13:53"},"variables":[{"name":"length","nativeSrc":"23573:6:53","nodeType":"YulTypedName","src":"23573:6:53","type":""}]},{"nativeSrc":"23605:139:53","nodeType":"YulAssignment","src":"23605:139:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"23717:6:53","nodeType":"YulIdentifier","src":"23717:6:53"},{"kind":"number","nativeSrc":"23725:4:53","nodeType":"YulLiteral","src":"23725:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23713:3:53","nodeType":"YulIdentifier","src":"23713:3:53"},"nativeSrc":"23713:17:53","nodeType":"YulFunctionCall","src":"23713:17:53"},{"name":"length","nativeSrc":"23732:6:53","nodeType":"YulIdentifier","src":"23732:6:53"},{"name":"end","nativeSrc":"23740:3:53","nodeType":"YulIdentifier","src":"23740:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"23614:98:53","nodeType":"YulIdentifier","src":"23614:98:53"},"nativeSrc":"23614:130:53","nodeType":"YulFunctionCall","src":"23614:130:53"},"variableNames":[{"name":"array","nativeSrc":"23605:5:53","nodeType":"YulIdentifier","src":"23605:5:53"}]}]},"name":"abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"23315:435:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"23406:6:53","nodeType":"YulTypedName","src":"23406:6:53","type":""},{"name":"end","nativeSrc":"23414:3:53","nodeType":"YulTypedName","src":"23414:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"23422:5:53","nodeType":"YulTypedName","src":"23422:5:53","type":""}],"src":"23315:435:53"},{"body":{"nativeSrc":"23798:78:53","nodeType":"YulBlock","src":"23798:78:53","statements":[{"body":{"nativeSrc":"23854:16:53","nodeType":"YulBlock","src":"23854:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23863:1:53","nodeType":"YulLiteral","src":"23863:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"23866:1:53","nodeType":"YulLiteral","src":"23866:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23856:6:53","nodeType":"YulIdentifier","src":"23856:6:53"},"nativeSrc":"23856:12:53","nodeType":"YulFunctionCall","src":"23856:12:53"},"nativeSrc":"23856:12:53","nodeType":"YulExpressionStatement","src":"23856:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23821:5:53","nodeType":"YulIdentifier","src":"23821:5:53"},{"arguments":[{"name":"value","nativeSrc":"23845:5:53","nodeType":"YulIdentifier","src":"23845:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"23828:16:53","nodeType":"YulIdentifier","src":"23828:16:53"},"nativeSrc":"23828:23:53","nodeType":"YulFunctionCall","src":"23828:23:53"}],"functionName":{"name":"eq","nativeSrc":"23818:2:53","nodeType":"YulIdentifier","src":"23818:2:53"},"nativeSrc":"23818:34:53","nodeType":"YulFunctionCall","src":"23818:34:53"}],"functionName":{"name":"iszero","nativeSrc":"23811:6:53","nodeType":"YulIdentifier","src":"23811:6:53"},"nativeSrc":"23811:42:53","nodeType":"YulFunctionCall","src":"23811:42:53"},"nativeSrc":"23808:62:53","nodeType":"YulIf","src":"23808:62:53"}]},"name":"validator_revert_t_uint64","nativeSrc":"23756:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23791:5:53","nodeType":"YulTypedName","src":"23791:5:53","type":""}],"src":"23756:120:53"},{"body":{"nativeSrc":"23944:79:53","nodeType":"YulBlock","src":"23944:79:53","statements":[{"nativeSrc":"23954:22:53","nodeType":"YulAssignment","src":"23954:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"23969:6:53","nodeType":"YulIdentifier","src":"23969:6:53"}],"functionName":{"name":"mload","nativeSrc":"23963:5:53","nodeType":"YulIdentifier","src":"23963:5:53"},"nativeSrc":"23963:13:53","nodeType":"YulFunctionCall","src":"23963:13:53"},"variableNames":[{"name":"value","nativeSrc":"23954:5:53","nodeType":"YulIdentifier","src":"23954:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24011:5:53","nodeType":"YulIdentifier","src":"24011:5:53"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"23985:25:53","nodeType":"YulIdentifier","src":"23985:25:53"},"nativeSrc":"23985:32:53","nodeType":"YulFunctionCall","src":"23985:32:53"},"nativeSrc":"23985:32:53","nodeType":"YulExpressionStatement","src":"23985:32:53"}]},"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"23882:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"23922:6:53","nodeType":"YulTypedName","src":"23922:6:53","type":""},{"name":"end","nativeSrc":"23930:3:53","nodeType":"YulTypedName","src":"23930:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"23938:5:53","nodeType":"YulTypedName","src":"23938:5:53","type":""}],"src":"23882:141:53"},{"body":{"nativeSrc":"24092:80:53","nodeType":"YulBlock","src":"24092:80:53","statements":[{"nativeSrc":"24102:22:53","nodeType":"YulAssignment","src":"24102:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"24117:6:53","nodeType":"YulIdentifier","src":"24117:6:53"}],"functionName":{"name":"mload","nativeSrc":"24111:5:53","nodeType":"YulIdentifier","src":"24111:5:53"},"nativeSrc":"24111:13:53","nodeType":"YulFunctionCall","src":"24111:13:53"},"variableNames":[{"name":"value","nativeSrc":"24102:5:53","nodeType":"YulIdentifier","src":"24102:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24160:5:53","nodeType":"YulIdentifier","src":"24160:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"24133:26:53","nodeType":"YulIdentifier","src":"24133:26:53"},"nativeSrc":"24133:33:53","nodeType":"YulFunctionCall","src":"24133:33:53"},"nativeSrc":"24133:33:53","nodeType":"YulExpressionStatement","src":"24133:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"24029:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24070:6:53","nodeType":"YulTypedName","src":"24070:6:53","type":""},{"name":"end","nativeSrc":"24078:3:53","nodeType":"YulTypedName","src":"24078:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24086:5:53","nodeType":"YulTypedName","src":"24086:5:53","type":""}],"src":"24029:143:53"},{"body":{"nativeSrc":"24310:2528:53","nodeType":"YulBlock","src":"24310:2528:53","statements":[{"body":{"nativeSrc":"24356:83:53","nodeType":"YulBlock","src":"24356:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"24358:77:53","nodeType":"YulIdentifier","src":"24358:77:53"},"nativeSrc":"24358:79:53","nodeType":"YulFunctionCall","src":"24358:79:53"},"nativeSrc":"24358:79:53","nodeType":"YulExpressionStatement","src":"24358:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"24331:3:53","nodeType":"YulIdentifier","src":"24331:3:53"},{"name":"headStart","nativeSrc":"24336:9:53","nodeType":"YulIdentifier","src":"24336:9:53"}],"functionName":{"name":"sub","nativeSrc":"24327:3:53","nodeType":"YulIdentifier","src":"24327:3:53"},"nativeSrc":"24327:19:53","nodeType":"YulFunctionCall","src":"24327:19:53"},{"kind":"number","nativeSrc":"24348:6:53","nodeType":"YulLiteral","src":"24348:6:53","type":"","value":"0x0120"}],"functionName":{"name":"slt","nativeSrc":"24323:3:53","nodeType":"YulIdentifier","src":"24323:3:53"},"nativeSrc":"24323:32:53","nodeType":"YulFunctionCall","src":"24323:32:53"},"nativeSrc":"24320:119:53","nodeType":"YulIf","src":"24320:119:53"},{"nativeSrc":"24448:32:53","nodeType":"YulAssignment","src":"24448:32:53","value":{"arguments":[{"kind":"number","nativeSrc":"24473:6:53","nodeType":"YulLiteral","src":"24473:6:53","type":"","value":"0x0120"}],"functionName":{"name":"allocate_memory","nativeSrc":"24457:15:53","nodeType":"YulIdentifier","src":"24457:15:53"},"nativeSrc":"24457:23:53","nodeType":"YulFunctionCall","src":"24457:23:53"},"variableNames":[{"name":"value","nativeSrc":"24448:5:53","nodeType":"YulIdentifier","src":"24448:5:53"}]},{"nativeSrc":"24490:179:53","nodeType":"YulBlock","src":"24490:179:53","statements":[{"nativeSrc":"24527:15:53","nodeType":"YulVariableDeclaration","src":"24527:15:53","value":{"kind":"number","nativeSrc":"24541:1:53","nodeType":"YulLiteral","src":"24541:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"24531:6:53","nodeType":"YulTypedName","src":"24531:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24567:5:53","nodeType":"YulIdentifier","src":"24567:5:53"},{"kind":"number","nativeSrc":"24574:4:53","nodeType":"YulLiteral","src":"24574:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"24563:3:53","nodeType":"YulIdentifier","src":"24563:3:53"},"nativeSrc":"24563:16:53","nodeType":"YulFunctionCall","src":"24563:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24633:9:53","nodeType":"YulIdentifier","src":"24633:9:53"},{"name":"offset","nativeSrc":"24644:6:53","nodeType":"YulIdentifier","src":"24644:6:53"}],"functionName":{"name":"add","nativeSrc":"24629:3:53","nodeType":"YulIdentifier","src":"24629:3:53"},"nativeSrc":"24629:22:53","nodeType":"YulFunctionCall","src":"24629:22:53"},{"name":"end","nativeSrc":"24653:3:53","nodeType":"YulIdentifier","src":"24653:3:53"}],"functionName":{"name":"abi_decode_t_contract$_Budget_$13669_fromMemory","nativeSrc":"24581:47:53","nodeType":"YulIdentifier","src":"24581:47:53"},"nativeSrc":"24581:76:53","nodeType":"YulFunctionCall","src":"24581:76:53"}],"functionName":{"name":"mstore","nativeSrc":"24556:6:53","nodeType":"YulIdentifier","src":"24556:6:53"},"nativeSrc":"24556:102:53","nodeType":"YulFunctionCall","src":"24556:102:53"},"nativeSrc":"24556:102:53","nodeType":"YulExpressionStatement","src":"24556:102:53"}]},{"nativeSrc":"24679:342:53","nodeType":"YulBlock","src":"24679:342:53","statements":[{"nativeSrc":"24716:39:53","nodeType":"YulVariableDeclaration","src":"24716:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24740:9:53","nodeType":"YulIdentifier","src":"24740:9:53"},{"kind":"number","nativeSrc":"24751:2:53","nodeType":"YulLiteral","src":"24751:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24736:3:53","nodeType":"YulIdentifier","src":"24736:3:53"},"nativeSrc":"24736:18:53","nodeType":"YulFunctionCall","src":"24736:18:53"}],"functionName":{"name":"mload","nativeSrc":"24730:5:53","nodeType":"YulIdentifier","src":"24730:5:53"},"nativeSrc":"24730:25:53","nodeType":"YulFunctionCall","src":"24730:25:53"},"variables":[{"name":"offset","nativeSrc":"24720:6:53","nodeType":"YulTypedName","src":"24720:6:53","type":""}]},{"body":{"nativeSrc":"24802:83:53","nodeType":"YulBlock","src":"24802:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"24804:77:53","nodeType":"YulIdentifier","src":"24804:77:53"},"nativeSrc":"24804:79:53","nodeType":"YulFunctionCall","src":"24804:79:53"},"nativeSrc":"24804:79:53","nodeType":"YulExpressionStatement","src":"24804:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24774:6:53","nodeType":"YulIdentifier","src":"24774:6:53"},{"kind":"number","nativeSrc":"24782:18:53","nodeType":"YulLiteral","src":"24782:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24771:2:53","nodeType":"YulIdentifier","src":"24771:2:53"},"nativeSrc":"24771:30:53","nodeType":"YulFunctionCall","src":"24771:30:53"},"nativeSrc":"24768:117:53","nodeType":"YulIf","src":"24768:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24910:5:53","nodeType":"YulIdentifier","src":"24910:5:53"},{"kind":"number","nativeSrc":"24917:4:53","nodeType":"YulLiteral","src":"24917:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24906:3:53","nodeType":"YulIdentifier","src":"24906:3:53"},"nativeSrc":"24906:16:53","nodeType":"YulFunctionCall","src":"24906:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24985:9:53","nodeType":"YulIdentifier","src":"24985:9:53"},{"name":"offset","nativeSrc":"24996:6:53","nodeType":"YulIdentifier","src":"24996:6:53"}],"functionName":{"name":"add","nativeSrc":"24981:3:53","nodeType":"YulIdentifier","src":"24981:3:53"},"nativeSrc":"24981:22:53","nodeType":"YulFunctionCall","src":"24981:22:53"},{"name":"end","nativeSrc":"25005:3:53","nodeType":"YulIdentifier","src":"25005:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"24924:56:53","nodeType":"YulIdentifier","src":"24924:56:53"},"nativeSrc":"24924:85:53","nodeType":"YulFunctionCall","src":"24924:85:53"}],"functionName":{"name":"mstore","nativeSrc":"24899:6:53","nodeType":"YulIdentifier","src":"24899:6:53"},"nativeSrc":"24899:111:53","nodeType":"YulFunctionCall","src":"24899:111:53"},"nativeSrc":"24899:111:53","nodeType":"YulExpressionStatement","src":"24899:111:53"}]},{"nativeSrc":"25031:345:53","nodeType":"YulBlock","src":"25031:345:53","statements":[{"nativeSrc":"25071:39:53","nodeType":"YulVariableDeclaration","src":"25071:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25095:9:53","nodeType":"YulIdentifier","src":"25095:9:53"},{"kind":"number","nativeSrc":"25106:2:53","nodeType":"YulLiteral","src":"25106:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25091:3:53","nodeType":"YulIdentifier","src":"25091:3:53"},"nativeSrc":"25091:18:53","nodeType":"YulFunctionCall","src":"25091:18:53"}],"functionName":{"name":"mload","nativeSrc":"25085:5:53","nodeType":"YulIdentifier","src":"25085:5:53"},"nativeSrc":"25085:25:53","nodeType":"YulFunctionCall","src":"25085:25:53"},"variables":[{"name":"offset","nativeSrc":"25075:6:53","nodeType":"YulTypedName","src":"25075:6:53","type":""}]},{"body":{"nativeSrc":"25157:83:53","nodeType":"YulBlock","src":"25157:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25159:77:53","nodeType":"YulIdentifier","src":"25159:77:53"},"nativeSrc":"25159:79:53","nodeType":"YulFunctionCall","src":"25159:79:53"},"nativeSrc":"25159:79:53","nodeType":"YulExpressionStatement","src":"25159:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25129:6:53","nodeType":"YulIdentifier","src":"25129:6:53"},{"kind":"number","nativeSrc":"25137:18:53","nodeType":"YulLiteral","src":"25137:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25126:2:53","nodeType":"YulIdentifier","src":"25126:2:53"},"nativeSrc":"25126:30:53","nodeType":"YulFunctionCall","src":"25126:30:53"},"nativeSrc":"25123:117:53","nodeType":"YulIf","src":"25123:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25265:5:53","nodeType":"YulIdentifier","src":"25265:5:53"},{"kind":"number","nativeSrc":"25272:4:53","nodeType":"YulLiteral","src":"25272:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25261:3:53","nodeType":"YulIdentifier","src":"25261:3:53"},"nativeSrc":"25261:16:53","nodeType":"YulFunctionCall","src":"25261:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25340:9:53","nodeType":"YulIdentifier","src":"25340:9:53"},{"name":"offset","nativeSrc":"25351:6:53","nodeType":"YulIdentifier","src":"25351:6:53"}],"functionName":{"name":"add","nativeSrc":"25336:3:53","nodeType":"YulIdentifier","src":"25336:3:53"},"nativeSrc":"25336:22:53","nodeType":"YulFunctionCall","src":"25336:22:53"},{"name":"end","nativeSrc":"25360:3:53","nodeType":"YulIdentifier","src":"25360:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"25279:56:53","nodeType":"YulIdentifier","src":"25279:56:53"},"nativeSrc":"25279:85:53","nodeType":"YulFunctionCall","src":"25279:85:53"}],"functionName":{"name":"mstore","nativeSrc":"25254:6:53","nodeType":"YulIdentifier","src":"25254:6:53"},"nativeSrc":"25254:111:53","nodeType":"YulFunctionCall","src":"25254:111:53"},"nativeSrc":"25254:111:53","nodeType":"YulExpressionStatement","src":"25254:111:53"}]},{"nativeSrc":"25386:345:53","nodeType":"YulBlock","src":"25386:345:53","statements":[{"nativeSrc":"25426:39:53","nodeType":"YulVariableDeclaration","src":"25426:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25450:9:53","nodeType":"YulIdentifier","src":"25450:9:53"},{"kind":"number","nativeSrc":"25461:2:53","nodeType":"YulLiteral","src":"25461:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25446:3:53","nodeType":"YulIdentifier","src":"25446:3:53"},"nativeSrc":"25446:18:53","nodeType":"YulFunctionCall","src":"25446:18:53"}],"functionName":{"name":"mload","nativeSrc":"25440:5:53","nodeType":"YulIdentifier","src":"25440:5:53"},"nativeSrc":"25440:25:53","nodeType":"YulFunctionCall","src":"25440:25:53"},"variables":[{"name":"offset","nativeSrc":"25430:6:53","nodeType":"YulTypedName","src":"25430:6:53","type":""}]},{"body":{"nativeSrc":"25512:83:53","nodeType":"YulBlock","src":"25512:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25514:77:53","nodeType":"YulIdentifier","src":"25514:77:53"},"nativeSrc":"25514:79:53","nodeType":"YulFunctionCall","src":"25514:79:53"},"nativeSrc":"25514:79:53","nodeType":"YulExpressionStatement","src":"25514:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25484:6:53","nodeType":"YulIdentifier","src":"25484:6:53"},{"kind":"number","nativeSrc":"25492:18:53","nodeType":"YulLiteral","src":"25492:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25481:2:53","nodeType":"YulIdentifier","src":"25481:2:53"},"nativeSrc":"25481:30:53","nodeType":"YulFunctionCall","src":"25481:30:53"},"nativeSrc":"25478:117:53","nodeType":"YulIf","src":"25478:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25620:5:53","nodeType":"YulIdentifier","src":"25620:5:53"},{"kind":"number","nativeSrc":"25627:4:53","nodeType":"YulLiteral","src":"25627:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25616:3:53","nodeType":"YulIdentifier","src":"25616:3:53"},"nativeSrc":"25616:16:53","nodeType":"YulFunctionCall","src":"25616:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25695:9:53","nodeType":"YulIdentifier","src":"25695:9:53"},{"name":"offset","nativeSrc":"25706:6:53","nodeType":"YulIdentifier","src":"25706:6:53"}],"functionName":{"name":"add","nativeSrc":"25691:3:53","nodeType":"YulIdentifier","src":"25691:3:53"},"nativeSrc":"25691:22:53","nodeType":"YulFunctionCall","src":"25691:22:53"},{"name":"end","nativeSrc":"25715:3:53","nodeType":"YulIdentifier","src":"25715:3:53"}],"functionName":{"name":"abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory","nativeSrc":"25634:56:53","nodeType":"YulIdentifier","src":"25634:56:53"},"nativeSrc":"25634:85:53","nodeType":"YulFunctionCall","src":"25634:85:53"}],"functionName":{"name":"mstore","nativeSrc":"25609:6:53","nodeType":"YulIdentifier","src":"25609:6:53"},"nativeSrc":"25609:111:53","nodeType":"YulFunctionCall","src":"25609:111:53"},"nativeSrc":"25609:111:53","nodeType":"YulExpressionStatement","src":"25609:111:53"}]},{"nativeSrc":"25741:372:53","nodeType":"YulBlock","src":"25741:372:53","statements":[{"nativeSrc":"25782:40:53","nodeType":"YulVariableDeclaration","src":"25782:40:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25806:9:53","nodeType":"YulIdentifier","src":"25806:9:53"},{"kind":"number","nativeSrc":"25817:3:53","nodeType":"YulLiteral","src":"25817:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25802:3:53","nodeType":"YulIdentifier","src":"25802:3:53"},"nativeSrc":"25802:19:53","nodeType":"YulFunctionCall","src":"25802:19:53"}],"functionName":{"name":"mload","nativeSrc":"25796:5:53","nodeType":"YulIdentifier","src":"25796:5:53"},"nativeSrc":"25796:26:53","nodeType":"YulFunctionCall","src":"25796:26:53"},"variables":[{"name":"offset","nativeSrc":"25786:6:53","nodeType":"YulTypedName","src":"25786:6:53","type":""}]},{"body":{"nativeSrc":"25869:83:53","nodeType":"YulBlock","src":"25869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25871:77:53","nodeType":"YulIdentifier","src":"25871:77:53"},"nativeSrc":"25871:79:53","nodeType":"YulFunctionCall","src":"25871:79:53"},"nativeSrc":"25871:79:53","nodeType":"YulExpressionStatement","src":"25871:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25841:6:53","nodeType":"YulIdentifier","src":"25841:6:53"},{"kind":"number","nativeSrc":"25849:18:53","nodeType":"YulLiteral","src":"25849:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25838:2:53","nodeType":"YulIdentifier","src":"25838:2:53"},"nativeSrc":"25838:30:53","nodeType":"YulFunctionCall","src":"25838:30:53"},"nativeSrc":"25835:117:53","nodeType":"YulIf","src":"25835:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25977:5:53","nodeType":"YulIdentifier","src":"25977:5:53"},{"kind":"number","nativeSrc":"25984:4:53","nodeType":"YulLiteral","src":"25984:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25973:3:53","nodeType":"YulIdentifier","src":"25973:3:53"},"nativeSrc":"25973:16:53","nodeType":"YulFunctionCall","src":"25973:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26077:9:53","nodeType":"YulIdentifier","src":"26077:9:53"},{"name":"offset","nativeSrc":"26088:6:53","nodeType":"YulIdentifier","src":"26088:6:53"}],"functionName":{"name":"add","nativeSrc":"26073:3:53","nodeType":"YulIdentifier","src":"26073:3:53"},"nativeSrc":"26073:22:53","nodeType":"YulFunctionCall","src":"26073:22:53"},{"name":"end","nativeSrc":"26097:3:53","nodeType":"YulIdentifier","src":"26097:3:53"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"25991:81:53","nodeType":"YulIdentifier","src":"25991:81:53"},"nativeSrc":"25991:110:53","nodeType":"YulFunctionCall","src":"25991:110:53"}],"functionName":{"name":"mstore","nativeSrc":"25966:6:53","nodeType":"YulIdentifier","src":"25966:6:53"},"nativeSrc":"25966:136:53","nodeType":"YulFunctionCall","src":"25966:136:53"},"nativeSrc":"25966:136:53","nodeType":"YulExpressionStatement","src":"25966:136:53"}]},{"nativeSrc":"26123:169:53","nodeType":"YulBlock","src":"26123:169:53","statements":[{"nativeSrc":"26165:17:53","nodeType":"YulVariableDeclaration","src":"26165:17:53","value":{"kind":"number","nativeSrc":"26179:3:53","nodeType":"YulLiteral","src":"26179:3:53","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"26169:6:53","nodeType":"YulTypedName","src":"26169:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26207:5:53","nodeType":"YulIdentifier","src":"26207:5:53"},{"kind":"number","nativeSrc":"26214:4:53","nodeType":"YulLiteral","src":"26214:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"26203:3:53","nodeType":"YulIdentifier","src":"26203:3:53"},"nativeSrc":"26203:16:53","nodeType":"YulFunctionCall","src":"26203:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26256:9:53","nodeType":"YulIdentifier","src":"26256:9:53"},{"name":"offset","nativeSrc":"26267:6:53","nodeType":"YulIdentifier","src":"26267:6:53"}],"functionName":{"name":"add","nativeSrc":"26252:3:53","nodeType":"YulIdentifier","src":"26252:3:53"},"nativeSrc":"26252:22:53","nodeType":"YulFunctionCall","src":"26252:22:53"},{"name":"end","nativeSrc":"26276:3:53","nodeType":"YulIdentifier","src":"26276:3:53"}],"functionName":{"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"26221:30:53","nodeType":"YulIdentifier","src":"26221:30:53"},"nativeSrc":"26221:59:53","nodeType":"YulFunctionCall","src":"26221:59:53"}],"functionName":{"name":"mstore","nativeSrc":"26196:6:53","nodeType":"YulIdentifier","src":"26196:6:53"},"nativeSrc":"26196:85:53","nodeType":"YulFunctionCall","src":"26196:85:53"},"nativeSrc":"26196:85:53","nodeType":"YulExpressionStatement","src":"26196:85:53"}]},{"nativeSrc":"26302:169:53","nodeType":"YulBlock","src":"26302:169:53","statements":[{"nativeSrc":"26344:17:53","nodeType":"YulVariableDeclaration","src":"26344:17:53","value":{"kind":"number","nativeSrc":"26358:3:53","nodeType":"YulLiteral","src":"26358:3:53","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"26348:6:53","nodeType":"YulTypedName","src":"26348:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26386:5:53","nodeType":"YulIdentifier","src":"26386:5:53"},{"kind":"number","nativeSrc":"26393:4:53","nodeType":"YulLiteral","src":"26393:4:53","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"26382:3:53","nodeType":"YulIdentifier","src":"26382:3:53"},"nativeSrc":"26382:16:53","nodeType":"YulFunctionCall","src":"26382:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26435:9:53","nodeType":"YulIdentifier","src":"26435:9:53"},{"name":"offset","nativeSrc":"26446:6:53","nodeType":"YulIdentifier","src":"26446:6:53"}],"functionName":{"name":"add","nativeSrc":"26431:3:53","nodeType":"YulIdentifier","src":"26431:3:53"},"nativeSrc":"26431:22:53","nodeType":"YulFunctionCall","src":"26431:22:53"},{"name":"end","nativeSrc":"26455:3:53","nodeType":"YulIdentifier","src":"26455:3:53"}],"functionName":{"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"26400:30:53","nodeType":"YulIdentifier","src":"26400:30:53"},"nativeSrc":"26400:59:53","nodeType":"YulFunctionCall","src":"26400:59:53"}],"functionName":{"name":"mstore","nativeSrc":"26375:6:53","nodeType":"YulIdentifier","src":"26375:6:53"},"nativeSrc":"26375:85:53","nodeType":"YulFunctionCall","src":"26375:85:53"},"nativeSrc":"26375:85:53","nodeType":"YulExpressionStatement","src":"26375:85:53"}]},{"nativeSrc":"26481:174:53","nodeType":"YulBlock","src":"26481:174:53","statements":[{"nativeSrc":"26527:17:53","nodeType":"YulVariableDeclaration","src":"26527:17:53","value":{"kind":"number","nativeSrc":"26541:3:53","nodeType":"YulLiteral","src":"26541:3:53","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"26531:6:53","nodeType":"YulTypedName","src":"26531:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26569:5:53","nodeType":"YulIdentifier","src":"26569:5:53"},{"kind":"number","nativeSrc":"26576:4:53","nodeType":"YulLiteral","src":"26576:4:53","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"26565:3:53","nodeType":"YulIdentifier","src":"26565:3:53"},"nativeSrc":"26565:16:53","nodeType":"YulFunctionCall","src":"26565:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26619:9:53","nodeType":"YulIdentifier","src":"26619:9:53"},{"name":"offset","nativeSrc":"26630:6:53","nodeType":"YulIdentifier","src":"26630:6:53"}],"functionName":{"name":"add","nativeSrc":"26615:3:53","nodeType":"YulIdentifier","src":"26615:3:53"},"nativeSrc":"26615:22:53","nodeType":"YulFunctionCall","src":"26615:22:53"},{"name":"end","nativeSrc":"26639:3:53","nodeType":"YulIdentifier","src":"26639:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"26583:31:53","nodeType":"YulIdentifier","src":"26583:31:53"},"nativeSrc":"26583:60:53","nodeType":"YulFunctionCall","src":"26583:60:53"}],"functionName":{"name":"mstore","nativeSrc":"26558:6:53","nodeType":"YulIdentifier","src":"26558:6:53"},"nativeSrc":"26558:86:53","nodeType":"YulFunctionCall","src":"26558:86:53"},"nativeSrc":"26558:86:53","nodeType":"YulExpressionStatement","src":"26558:86:53"}]},{"nativeSrc":"26665:166:53","nodeType":"YulBlock","src":"26665:166:53","statements":[{"nativeSrc":"26701:17:53","nodeType":"YulVariableDeclaration","src":"26701:17:53","value":{"kind":"number","nativeSrc":"26715:3:53","nodeType":"YulLiteral","src":"26715:3:53","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"26705:6:53","nodeType":"YulTypedName","src":"26705:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26743:5:53","nodeType":"YulIdentifier","src":"26743:5:53"},{"kind":"number","nativeSrc":"26750:6:53","nodeType":"YulLiteral","src":"26750:6:53","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"26739:3:53","nodeType":"YulIdentifier","src":"26739:3:53"},"nativeSrc":"26739:18:53","nodeType":"YulFunctionCall","src":"26739:18:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26795:9:53","nodeType":"YulIdentifier","src":"26795:9:53"},{"name":"offset","nativeSrc":"26806:6:53","nodeType":"YulIdentifier","src":"26806:6:53"}],"functionName":{"name":"add","nativeSrc":"26791:3:53","nodeType":"YulIdentifier","src":"26791:3:53"},"nativeSrc":"26791:22:53","nodeType":"YulFunctionCall","src":"26791:22:53"},{"name":"end","nativeSrc":"26815:3:53","nodeType":"YulIdentifier","src":"26815:3:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"26759:31:53","nodeType":"YulIdentifier","src":"26759:31:53"},"nativeSrc":"26759:60:53","nodeType":"YulFunctionCall","src":"26759:60:53"}],"functionName":{"name":"mstore","nativeSrc":"26732:6:53","nodeType":"YulIdentifier","src":"26732:6:53"},"nativeSrc":"26732:88:53","nodeType":"YulFunctionCall","src":"26732:88:53"},"nativeSrc":"26732:88:53","nodeType":"YulExpressionStatement","src":"26732:88:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory","nativeSrc":"24214:2624:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24285:9:53","nodeType":"YulTypedName","src":"24285:9:53","type":""},{"name":"end","nativeSrc":"24296:3:53","nodeType":"YulTypedName","src":"24296:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24304:5:53","nodeType":"YulTypedName","src":"24304:5:53","type":""}],"src":"24214:2624:53"},{"body":{"nativeSrc":"26951:457:53","nodeType":"YulBlock","src":"26951:457:53","statements":[{"body":{"nativeSrc":"26997:83:53","nodeType":"YulBlock","src":"26997:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"26999:77:53","nodeType":"YulIdentifier","src":"26999:77:53"},"nativeSrc":"26999:79:53","nodeType":"YulFunctionCall","src":"26999:79:53"},"nativeSrc":"26999:79:53","nodeType":"YulExpressionStatement","src":"26999:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26972:7:53","nodeType":"YulIdentifier","src":"26972:7:53"},{"name":"headStart","nativeSrc":"26981:9:53","nodeType":"YulIdentifier","src":"26981:9:53"}],"functionName":{"name":"sub","nativeSrc":"26968:3:53","nodeType":"YulIdentifier","src":"26968:3:53"},"nativeSrc":"26968:23:53","nodeType":"YulFunctionCall","src":"26968:23:53"},{"kind":"number","nativeSrc":"26993:2:53","nodeType":"YulLiteral","src":"26993:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"26964:3:53","nodeType":"YulIdentifier","src":"26964:3:53"},"nativeSrc":"26964:32:53","nodeType":"YulFunctionCall","src":"26964:32:53"},"nativeSrc":"26961:119:53","nodeType":"YulIf","src":"26961:119:53"},{"nativeSrc":"27090:311:53","nodeType":"YulBlock","src":"27090:311:53","statements":[{"nativeSrc":"27105:38:53","nodeType":"YulVariableDeclaration","src":"27105:38:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27129:9:53","nodeType":"YulIdentifier","src":"27129:9:53"},{"kind":"number","nativeSrc":"27140:1:53","nodeType":"YulLiteral","src":"27140:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27125:3:53","nodeType":"YulIdentifier","src":"27125:3:53"},"nativeSrc":"27125:17:53","nodeType":"YulFunctionCall","src":"27125:17:53"}],"functionName":{"name":"mload","nativeSrc":"27119:5:53","nodeType":"YulIdentifier","src":"27119:5:53"},"nativeSrc":"27119:24:53","nodeType":"YulFunctionCall","src":"27119:24:53"},"variables":[{"name":"offset","nativeSrc":"27109:6:53","nodeType":"YulTypedName","src":"27109:6:53","type":""}]},{"body":{"nativeSrc":"27190:83:53","nodeType":"YulBlock","src":"27190:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27192:77:53","nodeType":"YulIdentifier","src":"27192:77:53"},"nativeSrc":"27192:79:53","nodeType":"YulFunctionCall","src":"27192:79:53"},"nativeSrc":"27192:79:53","nodeType":"YulExpressionStatement","src":"27192:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27162:6:53","nodeType":"YulIdentifier","src":"27162:6:53"},{"kind":"number","nativeSrc":"27170:18:53","nodeType":"YulLiteral","src":"27170:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27159:2:53","nodeType":"YulIdentifier","src":"27159:2:53"},"nativeSrc":"27159:30:53","nodeType":"YulFunctionCall","src":"27159:30:53"},"nativeSrc":"27156:117:53","nodeType":"YulIf","src":"27156:117:53"},{"nativeSrc":"27287:104:53","nodeType":"YulAssignment","src":"27287:104:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27363:9:53","nodeType":"YulIdentifier","src":"27363:9:53"},{"name":"offset","nativeSrc":"27374:6:53","nodeType":"YulIdentifier","src":"27374:6:53"}],"functionName":{"name":"add","nativeSrc":"27359:3:53","nodeType":"YulIdentifier","src":"27359:3:53"},"nativeSrc":"27359:22:53","nodeType":"YulFunctionCall","src":"27359:22:53"},{"name":"dataEnd","nativeSrc":"27383:7:53","nodeType":"YulIdentifier","src":"27383:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory","nativeSrc":"27297:61:53","nodeType":"YulIdentifier","src":"27297:61:53"},"nativeSrc":"27297:94:53","nodeType":"YulFunctionCall","src":"27297:94:53"},"variableNames":[{"name":"value0","nativeSrc":"27287:6:53","nodeType":"YulIdentifier","src":"27287:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$11597_memory_ptr_fromMemory","nativeSrc":"26844:564:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26921:9:53","nodeType":"YulTypedName","src":"26921:9:53","type":""},{"name":"dataEnd","nativeSrc":"26932:7:53","nodeType":"YulTypedName","src":"26932:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26944:6:53","nodeType":"YulTypedName","src":"26944:6:53","type":""}],"src":"26844:564:53"},{"body":{"nativeSrc":"27442:152:53","nodeType":"YulBlock","src":"27442:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27459:1:53","nodeType":"YulLiteral","src":"27459:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27462:77:53","nodeType":"YulLiteral","src":"27462:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"27452:6:53","nodeType":"YulIdentifier","src":"27452:6:53"},"nativeSrc":"27452:88:53","nodeType":"YulFunctionCall","src":"27452:88:53"},"nativeSrc":"27452:88:53","nodeType":"YulExpressionStatement","src":"27452:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27556:1:53","nodeType":"YulLiteral","src":"27556:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"27559:4:53","nodeType":"YulLiteral","src":"27559:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"27549:6:53","nodeType":"YulIdentifier","src":"27549:6:53"},"nativeSrc":"27549:15:53","nodeType":"YulFunctionCall","src":"27549:15:53"},"nativeSrc":"27549:15:53","nodeType":"YulExpressionStatement","src":"27549:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27580:1:53","nodeType":"YulLiteral","src":"27580:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27583:4:53","nodeType":"YulLiteral","src":"27583:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"27573:6:53","nodeType":"YulIdentifier","src":"27573:6:53"},"nativeSrc":"27573:15:53","nodeType":"YulFunctionCall","src":"27573:15:53"},"nativeSrc":"27573:15:53","nodeType":"YulExpressionStatement","src":"27573:15:53"}]},"name":"panic_error_0x11","nativeSrc":"27414:180:53","nodeType":"YulFunctionDefinition","src":"27414:180:53"},{"body":{"nativeSrc":"27643:162:53","nodeType":"YulBlock","src":"27643:162:53","statements":[{"nativeSrc":"27653:24:53","nodeType":"YulAssignment","src":"27653:24:53","value":{"arguments":[{"name":"x","nativeSrc":"27675:1:53","nodeType":"YulIdentifier","src":"27675:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"27658:16:53","nodeType":"YulIdentifier","src":"27658:16:53"},"nativeSrc":"27658:19:53","nodeType":"YulFunctionCall","src":"27658:19:53"},"variableNames":[{"name":"x","nativeSrc":"27653:1:53","nodeType":"YulIdentifier","src":"27653:1:53"}]},{"nativeSrc":"27686:24:53","nodeType":"YulAssignment","src":"27686:24:53","value":{"arguments":[{"name":"y","nativeSrc":"27708:1:53","nodeType":"YulIdentifier","src":"27708:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"27691:16:53","nodeType":"YulIdentifier","src":"27691:16:53"},"nativeSrc":"27691:19:53","nodeType":"YulFunctionCall","src":"27691:19:53"},"variableNames":[{"name":"y","nativeSrc":"27686:1:53","nodeType":"YulIdentifier","src":"27686:1:53"}]},{"nativeSrc":"27719:16:53","nodeType":"YulAssignment","src":"27719:16:53","value":{"arguments":[{"name":"x","nativeSrc":"27730:1:53","nodeType":"YulIdentifier","src":"27730:1:53"},{"name":"y","nativeSrc":"27733:1:53","nodeType":"YulIdentifier","src":"27733:1:53"}],"functionName":{"name":"add","nativeSrc":"27726:3:53","nodeType":"YulIdentifier","src":"27726:3:53"},"nativeSrc":"27726:9:53","nodeType":"YulFunctionCall","src":"27726:9:53"},"variableNames":[{"name":"sum","nativeSrc":"27719:3:53","nodeType":"YulIdentifier","src":"27719:3:53"}]},{"body":{"nativeSrc":"27776:22:53","nodeType":"YulBlock","src":"27776:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27778:16:53","nodeType":"YulIdentifier","src":"27778:16:53"},"nativeSrc":"27778:18:53","nodeType":"YulFunctionCall","src":"27778:18:53"},"nativeSrc":"27778:18:53","nodeType":"YulExpressionStatement","src":"27778:18:53"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"27751:3:53","nodeType":"YulIdentifier","src":"27751:3:53"},{"kind":"number","nativeSrc":"27756:18:53","nodeType":"YulLiteral","src":"27756:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27748:2:53","nodeType":"YulIdentifier","src":"27748:2:53"},"nativeSrc":"27748:27:53","nodeType":"YulFunctionCall","src":"27748:27:53"},"nativeSrc":"27745:53:53","nodeType":"YulIf","src":"27745:53:53"}]},"name":"checked_add_t_uint64","nativeSrc":"27600:205:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27630:1:53","nodeType":"YulTypedName","src":"27630:1:53","type":""},{"name":"y","nativeSrc":"27633:1:53","nodeType":"YulTypedName","src":"27633:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"27639:3:53","nodeType":"YulTypedName","src":"27639:3:53","type":""}],"src":"27600:205:53"},{"body":{"nativeSrc":"27855:105:53","nodeType":"YulBlock","src":"27855:105:53","statements":[{"nativeSrc":"27865:89:53","nodeType":"YulAssignment","src":"27865:89:53","value":{"arguments":[{"name":"value","nativeSrc":"27880:5:53","nodeType":"YulIdentifier","src":"27880:5:53"},{"kind":"number","nativeSrc":"27887:66:53","nodeType":"YulLiteral","src":"27887:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"27876:3:53","nodeType":"YulIdentifier","src":"27876:3:53"},"nativeSrc":"27876:78:53","nodeType":"YulFunctionCall","src":"27876:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"27865:7:53","nodeType":"YulIdentifier","src":"27865:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"27811:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27837:5:53","nodeType":"YulTypedName","src":"27837:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"27847:7:53","nodeType":"YulTypedName","src":"27847:7:53","type":""}],"src":"27811:149:53"},{"body":{"nativeSrc":"28029:52:53","nodeType":"YulBlock","src":"28029:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"28046:3:53","nodeType":"YulIdentifier","src":"28046:3:53"},{"arguments":[{"name":"value","nativeSrc":"28068:5:53","nodeType":"YulIdentifier","src":"28068:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"28051:16:53","nodeType":"YulIdentifier","src":"28051:16:53"},"nativeSrc":"28051:23:53","nodeType":"YulFunctionCall","src":"28051:23:53"}],"functionName":{"name":"mstore","nativeSrc":"28039:6:53","nodeType":"YulIdentifier","src":"28039:6:53"},"nativeSrc":"28039:36:53","nodeType":"YulFunctionCall","src":"28039:36:53"},"nativeSrc":"28039:36:53","nodeType":"YulExpressionStatement","src":"28039:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"27966:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28017:5:53","nodeType":"YulTypedName","src":"28017:5:53","type":""},{"name":"pos","nativeSrc":"28024:3:53","nodeType":"YulTypedName","src":"28024:3:53","type":""}],"src":"27966:115:53"},{"body":{"nativeSrc":"28183:122:53","nodeType":"YulBlock","src":"28183:122:53","statements":[{"nativeSrc":"28193:26:53","nodeType":"YulAssignment","src":"28193:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"28205:9:53","nodeType":"YulIdentifier","src":"28205:9:53"},{"kind":"number","nativeSrc":"28216:2:53","nodeType":"YulLiteral","src":"28216:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28201:3:53","nodeType":"YulIdentifier","src":"28201:3:53"},"nativeSrc":"28201:18:53","nodeType":"YulFunctionCall","src":"28201:18:53"},"variableNames":[{"name":"tail","nativeSrc":"28193:4:53","nodeType":"YulIdentifier","src":"28193:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28271:6:53","nodeType":"YulIdentifier","src":"28271:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28284:9:53","nodeType":"YulIdentifier","src":"28284:9:53"},{"kind":"number","nativeSrc":"28295:1:53","nodeType":"YulLiteral","src":"28295:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28280:3:53","nodeType":"YulIdentifier","src":"28280:3:53"},"nativeSrc":"28280:17:53","nodeType":"YulFunctionCall","src":"28280:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"28229:41:53","nodeType":"YulIdentifier","src":"28229:41:53"},"nativeSrc":"28229:69:53","nodeType":"YulFunctionCall","src":"28229:69:53"},"nativeSrc":"28229:69:53","nodeType":"YulExpressionStatement","src":"28229:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"28087:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28155:9:53","nodeType":"YulTypedName","src":"28155:9:53","type":""},{"name":"value0","nativeSrc":"28167:6:53","nodeType":"YulTypedName","src":"28167:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28178:4:53","nodeType":"YulTypedName","src":"28178:4:53","type":""}],"src":"28087:218:53"},{"body":{"nativeSrc":"28359:362:53","nodeType":"YulBlock","src":"28359:362:53","statements":[{"nativeSrc":"28369:25:53","nodeType":"YulAssignment","src":"28369:25:53","value":{"arguments":[{"name":"x","nativeSrc":"28392:1:53","nodeType":"YulIdentifier","src":"28392:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28374:17:53","nodeType":"YulIdentifier","src":"28374:17:53"},"nativeSrc":"28374:20:53","nodeType":"YulFunctionCall","src":"28374:20:53"},"variableNames":[{"name":"x","nativeSrc":"28369:1:53","nodeType":"YulIdentifier","src":"28369:1:53"}]},{"nativeSrc":"28403:25:53","nodeType":"YulAssignment","src":"28403:25:53","value":{"arguments":[{"name":"y","nativeSrc":"28426:1:53","nodeType":"YulIdentifier","src":"28426:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28408:17:53","nodeType":"YulIdentifier","src":"28408:17:53"},"nativeSrc":"28408:20:53","nodeType":"YulFunctionCall","src":"28408:20:53"},"variableNames":[{"name":"y","nativeSrc":"28403:1:53","nodeType":"YulIdentifier","src":"28403:1:53"}]},{"nativeSrc":"28437:28:53","nodeType":"YulVariableDeclaration","src":"28437:28:53","value":{"arguments":[{"name":"x","nativeSrc":"28460:1:53","nodeType":"YulIdentifier","src":"28460:1:53"},{"name":"y","nativeSrc":"28463:1:53","nodeType":"YulIdentifier","src":"28463:1:53"}],"functionName":{"name":"mul","nativeSrc":"28456:3:53","nodeType":"YulIdentifier","src":"28456:3:53"},"nativeSrc":"28456:9:53","nodeType":"YulFunctionCall","src":"28456:9:53"},"variables":[{"name":"product_raw","nativeSrc":"28441:11:53","nodeType":"YulTypedName","src":"28441:11:53","type":""}]},{"nativeSrc":"28474:41:53","nodeType":"YulAssignment","src":"28474:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"28503:11:53","nodeType":"YulIdentifier","src":"28503:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28485:17:53","nodeType":"YulIdentifier","src":"28485:17:53"},"nativeSrc":"28485:30:53","nodeType":"YulFunctionCall","src":"28485:30:53"},"variableNames":[{"name":"product","nativeSrc":"28474:7:53","nodeType":"YulIdentifier","src":"28474:7:53"}]},{"body":{"nativeSrc":"28692:22:53","nodeType":"YulBlock","src":"28692:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28694:16:53","nodeType":"YulIdentifier","src":"28694:16:53"},"nativeSrc":"28694:18:53","nodeType":"YulFunctionCall","src":"28694:18:53"},"nativeSrc":"28694:18:53","nodeType":"YulExpressionStatement","src":"28694:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28625:1:53","nodeType":"YulIdentifier","src":"28625:1:53"}],"functionName":{"name":"iszero","nativeSrc":"28618:6:53","nodeType":"YulIdentifier","src":"28618:6:53"},"nativeSrc":"28618:9:53","nodeType":"YulFunctionCall","src":"28618:9:53"},{"arguments":[{"name":"y","nativeSrc":"28648:1:53","nodeType":"YulIdentifier","src":"28648:1:53"},{"arguments":[{"name":"product","nativeSrc":"28655:7:53","nodeType":"YulIdentifier","src":"28655:7:53"},{"name":"x","nativeSrc":"28664:1:53","nodeType":"YulIdentifier","src":"28664:1:53"}],"functionName":{"name":"div","nativeSrc":"28651:3:53","nodeType":"YulIdentifier","src":"28651:3:53"},"nativeSrc":"28651:15:53","nodeType":"YulFunctionCall","src":"28651:15:53"}],"functionName":{"name":"eq","nativeSrc":"28645:2:53","nodeType":"YulIdentifier","src":"28645:2:53"},"nativeSrc":"28645:22:53","nodeType":"YulFunctionCall","src":"28645:22:53"}],"functionName":{"name":"or","nativeSrc":"28598:2:53","nodeType":"YulIdentifier","src":"28598:2:53"},"nativeSrc":"28598:83:53","nodeType":"YulFunctionCall","src":"28598:83:53"}],"functionName":{"name":"iszero","nativeSrc":"28578:6:53","nodeType":"YulIdentifier","src":"28578:6:53"},"nativeSrc":"28578:113:53","nodeType":"YulFunctionCall","src":"28578:113:53"},"nativeSrc":"28575:139:53","nodeType":"YulIf","src":"28575:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"28311:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28342:1:53","nodeType":"YulTypedName","src":"28342:1:53","type":""},{"name":"y","nativeSrc":"28345:1:53","nodeType":"YulTypedName","src":"28345:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"28351:7:53","nodeType":"YulTypedName","src":"28351:7:53","type":""}],"src":"28311:410:53"},{"body":{"nativeSrc":"28755:152:53","nodeType":"YulBlock","src":"28755:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28772:1:53","nodeType":"YulLiteral","src":"28772:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28775:77:53","nodeType":"YulLiteral","src":"28775:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"28765:6:53","nodeType":"YulIdentifier","src":"28765:6:53"},"nativeSrc":"28765:88:53","nodeType":"YulFunctionCall","src":"28765:88:53"},"nativeSrc":"28765:88:53","nodeType":"YulExpressionStatement","src":"28765:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28869:1:53","nodeType":"YulLiteral","src":"28869:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"28872:4:53","nodeType":"YulLiteral","src":"28872:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"28862:6:53","nodeType":"YulIdentifier","src":"28862:6:53"},"nativeSrc":"28862:15:53","nodeType":"YulFunctionCall","src":"28862:15:53"},"nativeSrc":"28862:15:53","nodeType":"YulExpressionStatement","src":"28862:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28893:1:53","nodeType":"YulLiteral","src":"28893:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28896:4:53","nodeType":"YulLiteral","src":"28896:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28886:6:53","nodeType":"YulIdentifier","src":"28886:6:53"},"nativeSrc":"28886:15:53","nodeType":"YulFunctionCall","src":"28886:15:53"},"nativeSrc":"28886:15:53","nodeType":"YulExpressionStatement","src":"28886:15:53"}]},"name":"panic_error_0x12","nativeSrc":"28727:180:53","nodeType":"YulFunctionDefinition","src":"28727:180:53"},{"body":{"nativeSrc":"28955:143:53","nodeType":"YulBlock","src":"28955:143:53","statements":[{"nativeSrc":"28965:25:53","nodeType":"YulAssignment","src":"28965:25:53","value":{"arguments":[{"name":"x","nativeSrc":"28988:1:53","nodeType":"YulIdentifier","src":"28988:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28970:17:53","nodeType":"YulIdentifier","src":"28970:17:53"},"nativeSrc":"28970:20:53","nodeType":"YulFunctionCall","src":"28970:20:53"},"variableNames":[{"name":"x","nativeSrc":"28965:1:53","nodeType":"YulIdentifier","src":"28965:1:53"}]},{"nativeSrc":"28999:25:53","nodeType":"YulAssignment","src":"28999:25:53","value":{"arguments":[{"name":"y","nativeSrc":"29022:1:53","nodeType":"YulIdentifier","src":"29022:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29004:17:53","nodeType":"YulIdentifier","src":"29004:17:53"},"nativeSrc":"29004:20:53","nodeType":"YulFunctionCall","src":"29004:20:53"},"variableNames":[{"name":"y","nativeSrc":"28999:1:53","nodeType":"YulIdentifier","src":"28999:1:53"}]},{"body":{"nativeSrc":"29046:22:53","nodeType":"YulBlock","src":"29046:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"29048:16:53","nodeType":"YulIdentifier","src":"29048:16:53"},"nativeSrc":"29048:18:53","nodeType":"YulFunctionCall","src":"29048:18:53"},"nativeSrc":"29048:18:53","nodeType":"YulExpressionStatement","src":"29048:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"29043:1:53","nodeType":"YulIdentifier","src":"29043:1:53"}],"functionName":{"name":"iszero","nativeSrc":"29036:6:53","nodeType":"YulIdentifier","src":"29036:6:53"},"nativeSrc":"29036:9:53","nodeType":"YulFunctionCall","src":"29036:9:53"},"nativeSrc":"29033:35:53","nodeType":"YulIf","src":"29033:35:53"},{"nativeSrc":"29078:14:53","nodeType":"YulAssignment","src":"29078:14:53","value":{"arguments":[{"name":"x","nativeSrc":"29087:1:53","nodeType":"YulIdentifier","src":"29087:1:53"},{"name":"y","nativeSrc":"29090:1:53","nodeType":"YulIdentifier","src":"29090:1:53"}],"functionName":{"name":"div","nativeSrc":"29083:3:53","nodeType":"YulIdentifier","src":"29083:3:53"},"nativeSrc":"29083:9:53","nodeType":"YulFunctionCall","src":"29083:9:53"},"variableNames":[{"name":"r","nativeSrc":"29078:1:53","nodeType":"YulIdentifier","src":"29078:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"28913:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28944:1:53","nodeType":"YulTypedName","src":"28944:1:53","type":""},{"name":"y","nativeSrc":"28947:1:53","nodeType":"YulTypedName","src":"28947:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"28953:1:53","nodeType":"YulTypedName","src":"28953:1:53","type":""}],"src":"28913:185:53"},{"body":{"nativeSrc":"29149:149:53","nodeType":"YulBlock","src":"29149:149:53","statements":[{"nativeSrc":"29159:25:53","nodeType":"YulAssignment","src":"29159:25:53","value":{"arguments":[{"name":"x","nativeSrc":"29182:1:53","nodeType":"YulIdentifier","src":"29182:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29164:17:53","nodeType":"YulIdentifier","src":"29164:17:53"},"nativeSrc":"29164:20:53","nodeType":"YulFunctionCall","src":"29164:20:53"},"variableNames":[{"name":"x","nativeSrc":"29159:1:53","nodeType":"YulIdentifier","src":"29159:1:53"}]},{"nativeSrc":"29193:25:53","nodeType":"YulAssignment","src":"29193:25:53","value":{"arguments":[{"name":"y","nativeSrc":"29216:1:53","nodeType":"YulIdentifier","src":"29216:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29198:17:53","nodeType":"YulIdentifier","src":"29198:17:53"},"nativeSrc":"29198:20:53","nodeType":"YulFunctionCall","src":"29198:20:53"},"variableNames":[{"name":"y","nativeSrc":"29193:1:53","nodeType":"YulIdentifier","src":"29193:1:53"}]},{"nativeSrc":"29227:17:53","nodeType":"YulAssignment","src":"29227:17:53","value":{"arguments":[{"name":"x","nativeSrc":"29239:1:53","nodeType":"YulIdentifier","src":"29239:1:53"},{"name":"y","nativeSrc":"29242:1:53","nodeType":"YulIdentifier","src":"29242:1:53"}],"functionName":{"name":"sub","nativeSrc":"29235:3:53","nodeType":"YulIdentifier","src":"29235:3:53"},"nativeSrc":"29235:9:53","nodeType":"YulFunctionCall","src":"29235:9:53"},"variableNames":[{"name":"diff","nativeSrc":"29227:4:53","nodeType":"YulIdentifier","src":"29227:4:53"}]},{"body":{"nativeSrc":"29269:22:53","nodeType":"YulBlock","src":"29269:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29271:16:53","nodeType":"YulIdentifier","src":"29271:16:53"},"nativeSrc":"29271:18:53","nodeType":"YulFunctionCall","src":"29271:18:53"},"nativeSrc":"29271:18:53","nodeType":"YulExpressionStatement","src":"29271:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"29260:4:53","nodeType":"YulIdentifier","src":"29260:4:53"},{"name":"x","nativeSrc":"29266:1:53","nodeType":"YulIdentifier","src":"29266:1:53"}],"functionName":{"name":"gt","nativeSrc":"29257:2:53","nodeType":"YulIdentifier","src":"29257:2:53"},"nativeSrc":"29257:11:53","nodeType":"YulFunctionCall","src":"29257:11:53"},"nativeSrc":"29254:37:53","nodeType":"YulIf","src":"29254:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"29104:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29135:1:53","nodeType":"YulTypedName","src":"29135:1:53","type":""},{"name":"y","nativeSrc":"29138:1:53","nodeType":"YulTypedName","src":"29138:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"29144:4:53","nodeType":"YulTypedName","src":"29144:4:53","type":""}],"src":"29104:194:53"},{"body":{"nativeSrc":"29428:204:53","nodeType":"YulBlock","src":"29428:204:53","statements":[{"nativeSrc":"29438:26:53","nodeType":"YulAssignment","src":"29438:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"29450:9:53","nodeType":"YulIdentifier","src":"29450:9:53"},{"kind":"number","nativeSrc":"29461:2:53","nodeType":"YulLiteral","src":"29461:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29446:3:53","nodeType":"YulIdentifier","src":"29446:3:53"},"nativeSrc":"29446:18:53","nodeType":"YulFunctionCall","src":"29446:18:53"},"variableNames":[{"name":"tail","nativeSrc":"29438:4:53","nodeType":"YulIdentifier","src":"29438:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29516:6:53","nodeType":"YulIdentifier","src":"29516:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29529:9:53","nodeType":"YulIdentifier","src":"29529:9:53"},{"kind":"number","nativeSrc":"29540:1:53","nodeType":"YulLiteral","src":"29540:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29525:3:53","nodeType":"YulIdentifier","src":"29525:3:53"},"nativeSrc":"29525:17:53","nodeType":"YulFunctionCall","src":"29525:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"29474:41:53","nodeType":"YulIdentifier","src":"29474:41:53"},"nativeSrc":"29474:69:53","nodeType":"YulFunctionCall","src":"29474:69:53"},"nativeSrc":"29474:69:53","nodeType":"YulExpressionStatement","src":"29474:69:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29597:6:53","nodeType":"YulIdentifier","src":"29597:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29610:9:53","nodeType":"YulIdentifier","src":"29610:9:53"},{"kind":"number","nativeSrc":"29621:2:53","nodeType":"YulLiteral","src":"29621:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29606:3:53","nodeType":"YulIdentifier","src":"29606:3:53"},"nativeSrc":"29606:18:53","nodeType":"YulFunctionCall","src":"29606:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29553:43:53","nodeType":"YulIdentifier","src":"29553:43:53"},"nativeSrc":"29553:72:53","nodeType":"YulFunctionCall","src":"29553:72:53"},"nativeSrc":"29553:72:53","nodeType":"YulExpressionStatement","src":"29553:72:53"}]},"name":"abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed","nativeSrc":"29304:328:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29392:9:53","nodeType":"YulTypedName","src":"29392:9:53","type":""},{"name":"value1","nativeSrc":"29404:6:53","nodeType":"YulTypedName","src":"29404:6:53","type":""},{"name":"value0","nativeSrc":"29412:6:53","nodeType":"YulTypedName","src":"29412:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29423:4:53","nodeType":"YulTypedName","src":"29423:4:53","type":""}],"src":"29304:328:53"},{"body":{"nativeSrc":"29724:436:53","nodeType":"YulBlock","src":"29724:436:53","statements":[{"body":{"nativeSrc":"29770:83:53","nodeType":"YulBlock","src":"29770:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"29772:77:53","nodeType":"YulIdentifier","src":"29772:77:53"},"nativeSrc":"29772:79:53","nodeType":"YulFunctionCall","src":"29772:79:53"},"nativeSrc":"29772:79:53","nodeType":"YulExpressionStatement","src":"29772:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29745:7:53","nodeType":"YulIdentifier","src":"29745:7:53"},{"name":"headStart","nativeSrc":"29754:9:53","nodeType":"YulIdentifier","src":"29754:9:53"}],"functionName":{"name":"sub","nativeSrc":"29741:3:53","nodeType":"YulIdentifier","src":"29741:3:53"},"nativeSrc":"29741:23:53","nodeType":"YulFunctionCall","src":"29741:23:53"},{"kind":"number","nativeSrc":"29766:2:53","nodeType":"YulLiteral","src":"29766:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29737:3:53","nodeType":"YulIdentifier","src":"29737:3:53"},"nativeSrc":"29737:32:53","nodeType":"YulFunctionCall","src":"29737:32:53"},"nativeSrc":"29734:119:53","nodeType":"YulIf","src":"29734:119:53"},{"nativeSrc":"29863:290:53","nodeType":"YulBlock","src":"29863:290:53","statements":[{"nativeSrc":"29878:38:53","nodeType":"YulVariableDeclaration","src":"29878:38:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29902:9:53","nodeType":"YulIdentifier","src":"29902:9:53"},{"kind":"number","nativeSrc":"29913:1:53","nodeType":"YulLiteral","src":"29913:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29898:3:53","nodeType":"YulIdentifier","src":"29898:3:53"},"nativeSrc":"29898:17:53","nodeType":"YulFunctionCall","src":"29898:17:53"}],"functionName":{"name":"mload","nativeSrc":"29892:5:53","nodeType":"YulIdentifier","src":"29892:5:53"},"nativeSrc":"29892:24:53","nodeType":"YulFunctionCall","src":"29892:24:53"},"variables":[{"name":"offset","nativeSrc":"29882:6:53","nodeType":"YulTypedName","src":"29882:6:53","type":""}]},{"body":{"nativeSrc":"29963:83:53","nodeType":"YulBlock","src":"29963:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"29965:77:53","nodeType":"YulIdentifier","src":"29965:77:53"},"nativeSrc":"29965:79:53","nodeType":"YulFunctionCall","src":"29965:79:53"},"nativeSrc":"29965:79:53","nodeType":"YulExpressionStatement","src":"29965:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"29935:6:53","nodeType":"YulIdentifier","src":"29935:6:53"},{"kind":"number","nativeSrc":"29943:18:53","nodeType":"YulLiteral","src":"29943:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"29932:2:53","nodeType":"YulIdentifier","src":"29932:2:53"},"nativeSrc":"29932:30:53","nodeType":"YulFunctionCall","src":"29932:30:53"},"nativeSrc":"29929:117:53","nodeType":"YulIf","src":"29929:117:53"},{"nativeSrc":"30060:83:53","nodeType":"YulAssignment","src":"30060:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30115:9:53","nodeType":"YulIdentifier","src":"30115:9:53"},{"name":"offset","nativeSrc":"30126:6:53","nodeType":"YulIdentifier","src":"30126:6:53"}],"functionName":{"name":"add","nativeSrc":"30111:3:53","nodeType":"YulIdentifier","src":"30111:3:53"},"nativeSrc":"30111:22:53","nodeType":"YulFunctionCall","src":"30111:22:53"},{"name":"dataEnd","nativeSrc":"30135:7:53","nodeType":"YulIdentifier","src":"30135:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"30070:40:53","nodeType":"YulIdentifier","src":"30070:40:53"},"nativeSrc":"30070:73:53","nodeType":"YulFunctionCall","src":"30070:73:53"},"variableNames":[{"name":"value0","nativeSrc":"30060:6:53","nodeType":"YulIdentifier","src":"30060:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"29638:522:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29694:9:53","nodeType":"YulTypedName","src":"29694:9:53","type":""},{"name":"dataEnd","nativeSrc":"29705:7:53","nodeType":"YulTypedName","src":"29705:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29717:6:53","nodeType":"YulTypedName","src":"29717:6:53","type":""}],"src":"29638:522:53"},{"body":{"nativeSrc":"30194:152:53","nodeType":"YulBlock","src":"30194:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30211:1:53","nodeType":"YulLiteral","src":"30211:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"30214:77:53","nodeType":"YulLiteral","src":"30214:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"30204:6:53","nodeType":"YulIdentifier","src":"30204:6:53"},"nativeSrc":"30204:88:53","nodeType":"YulFunctionCall","src":"30204:88:53"},"nativeSrc":"30204:88:53","nodeType":"YulExpressionStatement","src":"30204:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30308:1:53","nodeType":"YulLiteral","src":"30308:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"30311:4:53","nodeType":"YulLiteral","src":"30311:4:53","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"30301:6:53","nodeType":"YulIdentifier","src":"30301:6:53"},"nativeSrc":"30301:15:53","nodeType":"YulFunctionCall","src":"30301:15:53"},"nativeSrc":"30301:15:53","nodeType":"YulExpressionStatement","src":"30301:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30332:1:53","nodeType":"YulLiteral","src":"30332:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"30335:4:53","nodeType":"YulLiteral","src":"30335:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"30325:6:53","nodeType":"YulIdentifier","src":"30325:6:53"},"nativeSrc":"30325:15:53","nodeType":"YulFunctionCall","src":"30325:15:53"},"nativeSrc":"30325:15:53","nodeType":"YulExpressionStatement","src":"30325:15:53"}]},"name":"panic_error_0x01","nativeSrc":"30166:180:53","nodeType":"YulFunctionDefinition","src":"30166:180:53"}]},"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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Action_$12758_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Action_$12758_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Action_$12758_to_t_address(value))\n }\n\n function convert_t_contract$_Validator_$18282_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$18282_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$18282_to_t_address(value))\n }\n\n function convert_t_contract$_AllowList_$13154_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_AllowList_$13154_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_AllowList_$13154_to_t_address(value))\n }\n\n function convert_t_uint160_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Budget_$13669_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_address_payable(value)\n }\n\n function abi_encode_t_contract$_Budget_$13669_to_t_address_payable(value, pos) {\n mstore(pos, convert_t_contract$_Budget_$13669_to_t_address_payable(value))\n }\n\n function array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function convert_t_contract$_Incentive_$17260_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Incentive_$17260_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Incentive_$17260_to_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_contract$_Incentive_$17260_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_contract$_Incentive_$17260_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // contract Incentive[] -> address[]\n function abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr(value, pos) -> end {\n let length := array_length_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr(pos, length)\n let baseRef := array_dataslot_t_array$_t_contract$_Incentive_$17260_$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_contract$_Incentive_$17260_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // struct BoostLib.Boost -> struct BoostLib.Boost\n function abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x0120)\n\n {\n // action\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_contract$_Action_$12758_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // validator\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_contract$_Validator_$18282_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // allowList\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_contract$_AllowList_$13154_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // budget\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_contract$_Budget_$13669_to_t_address_payable(memberValue0, add(pos, 0x60))\n }\n\n {\n // incentives\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_array$_t_contract$_Incentive_$17260_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // protocolFee\n\n let memberValue0 := mload(add(value, 0xa0))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0xa0))\n }\n\n {\n // referralFee\n\n let memberValue0 := mload(add(value, 0xc0))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0xc0))\n }\n\n {\n // maxParticipants\n\n let memberValue0 := mload(add(value, 0xe0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xe0))\n }\n\n {\n // owner\n\n let memberValue0 := mload(add(value, 0x0100))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x0100))\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Boost_$17616_memory_ptr__to_t_struct$_Boost_$17616_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Boost_$17616_memory_ptr_to_t_struct$_Boost_$17616_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_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 convert_t_contract$_BoostRegistry_$12680_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_BoostRegistry_$12680_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_BoostRegistry_$12680__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_BoostRegistry_$12680_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { 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 := 64\n\n value2 := abi_decode_t_address(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, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_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 round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value0, value1, tail)\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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 mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_Budget_$13669(value) -> cleaned {\n cleaned := cleanup_t_address_payable(value)\n }\n\n function validator_revert_t_contract$_Budget_$13669(value) {\n if iszero(eq(value, cleanup_t_contract$_Budget_$13669(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_Budget_$13669_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_Budget_$13669(value)\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_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 abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct BoostLib.Target\n function abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // isBase\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // instance\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // parameters\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // struct BoostLib.Target[]\n function abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let innerOffset := mload(src)\n if gt(innerOffset, 0xffffffffffffffff) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let elementPos := add(offset, innerOffset)\n\n mstore(dst, abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // struct BoostLib.Target[]\n function abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct BoostCore.InitPayload\n function abi_decode_t_struct$_InitPayload_$11597_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0120) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0120)\n\n {\n // budget\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_Budget_$13669_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // action\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // validator\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // allowList\n\n let offset := mload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_struct$_Target_$17624_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // incentives\n\n let offset := mload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_array$_t_struct$_Target_$17624_memory_ptr_$dyn_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // protocolFee\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint64_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // referralFee\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint64_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maxParticipants\n\n let offset := 224\n\n mstore(add(value, 0xe0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // owner\n\n let offset := 256\n\n mstore(add(value, 0x0100), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$11597_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_struct$_InitPayload_$11597_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\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 checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes4_to_t_bytes4_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_decode_tuple_t_bytes_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_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c806384ae2bc61161009f578063d73792a911610063578063d73792a914610303578063e21ff7311461032d578063f04e283e14610369578063f2fde38b14610385578063fee81cf4146103a157610113565b806384ae2bc61461023f5780638da5cb5b146102695780638fe4f5231461029357806399d32fc4146102af578063b0e21e8a146102d957610113565b806346877b1a116100e657806346877b1a146101af57806354d1f13d146101d75780635edb9eb0146101e1578063715018a61461020b5780637b1039991461021557610113565b806313c8e2de1461011757806325692962146101535780632e75ab501461015d57806339a51be514610185575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611f1d565b6103dd565b60405161014a919061220e565b60405180910390f35b61015b6106b7565b005b348015610168575f80fd5b50610183600480360381019061017e9190611f1d565b610708565b005b348015610190575f80fd5b5061019961071a565b6040516101a6919061223d565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d09190612280565b61073f565b005b6101df61078a565b005b3480156101ec575f80fd5b506101f56107c3565b60405161020291906122ba565b60405180910390f35b6102136107ce565b005b348015610220575f80fd5b506102296107e1565b60405161023691906122f3565b60405180910390f35b34801561024a575f80fd5b50610253610806565b604051610260919061231b565b60405180910390f35b348015610274575f80fd5b5061027d610820565b60405161028a919061223d565b60405180910390f35b6102ad60048036038101906102a89190612395565b610848565b005b3480156102ba575f80fd5b506102c3610b5a565b6040516102d091906122ba565b60405180910390f35b3480156102e4575f80fd5b506102ed610b60565b6040516102fa919061231b565b60405180910390f35b34801561030e575f80fd5b50610317610b79565b604051610324919061231b565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190612419565b610b7f565b604051610360919061220e565b60405180910390f35b610383600480360381019061037e9190612280565b6112e5565b005b61039f600480360381019061039a9190612280565b611323565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190612280565b61134c565b6040516103d491906122ba565b60405180910390f35b6103e5611d71565b5f82815481106103f8576103f7612464565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156105e557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161059c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6106c0611365565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071061136f565b8060038190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61074761136f565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6107d661136f565b6107df5f6113a6565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460089054906101000a900467ffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b3068929eee149b4bd2126854036108665763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80868154811061088657610885612464565b5b905f5260205f20906008020190506003543410156108e1575f346003546040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108d893929190612491565b60405180910390fd5b6108eb818561146c565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c16e50ef84846040518363ffffffff1660e01b8152600401610949929190612520565b6020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109899190612577565b6109bf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060040185815481106109d5576109d4612464565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c63ff8dd60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250604051602001610a96919061263c565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610ac19190612694565b6020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190612577565b610b46573383836040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b3d939291906126b4565b60405180910390fd5b503868929eee149b4bd21268555050505050565b60035481565b60045f9054906101000a900467ffffffffffffffff1681565b61271081565b610b87611d71565b610b8f61136f565b3068929eee149b4bd212685403610bad5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610c0684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506115da565b806020019051810190610c199190612b4c565b9050610c27815f0151611673565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160045f9054906101000a900467ffffffffffffffff16610cf89190612bc0565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600460089054906101000a900467ffffffffffffffff16610d479190612bc0565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e001518160060181905550610dae7fe6715795000000000000000000000000000000000000000000000000000000008360200151600161174e565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e1e7fe2089f79000000000000000000000000000000000000000000000000000000008360600151600161174e565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e708260800151835f0151611770565b816004019080519060200190610e87929190611e37565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614610ef857610ef37fc0919948000000000000000000000000000000000000000000000000000000008360400151600161174e565b610fe1565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fc0919948000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f739190612c35565b602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190612577565b610fbc575f610fe0565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561120457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111bb575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050925050503868929eee149b4bd212685592915050565b6112ed61136f565b63389a75e1600c52805f526020600c20805442111561131357636f5e88185f526004601cfd5b5f815550611320816113a6565b50565b61132b61136f565b8060601b61134057637448fbae5f526004601cfd5b611349816113a6565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113a4576382b429005f526004601cfd5b565b6113ae611b3a565b15611413577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611469565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60035403156115d6575f60035490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611532575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166003546114ed9190612c4e565b6114f79190612cbc565b905080826115059190612cec565b9150611530818473ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b61158a6002826115429190612cbc565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b6115d44760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b3e90919063ffffffff16565b505b5050565b606081511561166e5760405190506020810160048301805184518501811983525b80861015611654576001860195508551601f1a80611644576001870196508651601f1a5f198652607f811161163257600181013887395b6001607f82160186019550505061164f565b808553600185019450505b6115fb565b81835260208501840385525f845260208401604052505050505b919050565b61169d7f5cd687ca0000000000000000000000000000000000000000000000000000000082611b5b565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016116d6919061223d565b602060405180830381865afa1580156116f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117159190612577565b61174b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f61175d848460200151611b5b565b6117678383611c52565b90509392505050565b6060825167ffffffffffffffff81111561178d5761178c6126e8565b5b6040519080825280602002602001820160405280156117bb5781602001602082028036833780820191505090505b5090505f5b8351811015611b33576118117f8dbd4bfc00000000000000000000000000000000000000000000000000000000858381518110611800576117ff612464565b5b602002602001015160200151611b5b565b83818151811061182457611823612464565b5b60200260200101515f01516118b0577f8dbd4bfc0000000000000000000000000000000000000000000000000000000084828151811061186757611866612464565b5b6020026020010151602001516040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016118a7929190612d1f565b60405180910390fd5b6118f57f8dbd4bfc000000000000000000000000000000000000000000000000000000008583815181106118e7576118e6612464565b5b60200260200101515f61174e565b82828151811061190857611907612464565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f82828151811061195657611955612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a286848151811061198c5761198b612464565b5b6020026020010151604001516040518263ffffffff1660e01b81526004016119b49190612694565b5f60405180830381865afa1580156119ce573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906119f69190612d46565b90505f815114611a87578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611a399190612694565b6020604051808303815f875af1158015611a55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a799190612577565b611a8657611a85612d8d565b5b5b828281518110611a9a57611a99612464565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611ad057611acf612464565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611af89190612694565b5f604051808303815f87803b158015611b0f575f80fd5b505af1158015611b21573d5f803e3d5ffd5b505050505080806001019150506117c0565b5092915050565b5f90565b5f385f3884865af1611b575763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611c0a57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611bc99190612c35565b602060405180830381865afa158015611be4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c089190612577565b155b15611c4e5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611c45929190612d1f565b60405180910390fd5b5050565b5f825f0151611c65578260200151611c89565b611c88836020015173ffffffffffffffffffffffffffffffffffffffff16611d0e565b5b9050825f01518015611c985750815b15611d08578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b8152600401611cda9190612694565b5f604051808303815f87803b158015611cf1575f80fd5b505af1158015611d03573d5f803e3d5ffd5b505050505b92915050565b5f611d195f83611d20565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080611d675763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215611ead579160200282015b82811115611eac578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611e55565b5b509050611eba9190611ebe565b5090565b5b80821115611ed5575f815f905550600101611ebf565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b611efc81611eea565b8114611f06575f80fd5b50565b5f81359050611f1781611ef3565b92915050565b5f60208284031215611f3257611f31611ee2565b5b5f611f3f84828501611f09565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f611f8a611f85611f8084611f48565b611f67565b611f48565b9050919050565b5f611f9b82611f70565b9050919050565b5f611fac82611f91565b9050919050565b611fbc81611fa2565b82525050565b5f611fcc82611f91565b9050919050565b611fdc81611fc2565b82525050565b5f611fec82611f91565b9050919050565b611ffc81611fe2565b82525050565b5f61200c82611f70565b9050919050565b5f61201d82612002565b9050919050565b61202d81612013565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61206682611f91565b9050919050565b6120768161205c565b82525050565b5f612087838361206d565b60208301905092915050565b5f602082019050919050565b5f6120a982612033565b6120b3818561203d565b93506120be8361204d565b805f5b838110156120ee5781516120d5888261207c565b97506120e083612093565b9250506001810190506120c1565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b612117816120fb565b82525050565b61212681611eea565b82525050565b5f61213682611f48565b9050919050565b6121468161212c565b82525050565b5f61012083015f8301516121625f860182611fb3565b5060208301516121756020860182611fd3565b5060408301516121886040860182611ff3565b50606083015161219b6060860182612024565b50608083015184820360808601526121b3828261209f565b91505060a08301516121c860a086018261210e565b5060c08301516121db60c086018261210e565b5060e08301516121ee60e086018261211d565b5061010083015161220361010086018261213d565b508091505092915050565b5f6020820190508181035f830152612226818461214c565b905092915050565b6122378161212c565b82525050565b5f6020820190506122505f83018461222e565b92915050565b61225f8161212c565b8114612269575f80fd5b50565b5f8135905061227a81612256565b92915050565b5f6020828403121561229557612294611ee2565b5b5f6122a28482850161226c565b91505092915050565b6122b481611eea565b82525050565b5f6020820190506122cd5f8301846122ab565b92915050565b5f6122dd82611f91565b9050919050565b6122ed816122d3565b82525050565b5f6020820190506123065f8301846122e4565b92915050565b612315816120fb565b82525050565b5f60208201905061232e5f83018461230c565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261235557612354612334565b5b8235905067ffffffffffffffff81111561237257612371612338565b5b60208301915083600182028301111561238e5761238d61233c565b5b9250929050565b5f805f805f608086880312156123ae576123ad611ee2565b5b5f6123bb88828901611f09565b95505060206123cc88828901611f09565b94505060406123dd8882890161226c565b935050606086013567ffffffffffffffff8111156123fe576123fd611ee6565b5b61240a88828901612340565b92509250509295509295909350565b5f806020838503121561242f5761242e611ee2565b5b5f83013567ffffffffffffffff81111561244c5761244b611ee6565b5b61245885828601612340565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506124a45f83018661222e565b6124b160208301856122ab565b6124be60408301846122ab565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6124ff83856124c6565b935061250c8385846124d6565b612515836124e4565b840190509392505050565b5f6020820190508181035f8301526125398184866124f4565b90509392505050565b5f8115159050919050565b61255681612542565b8114612560575f80fd5b50565b5f815190506125718161254d565b92915050565b5f6020828403121561258c5761258b611ee2565b5b5f61259984828501612563565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6125d4826125a2565b6125de81856125ac565b93506125ee8185602086016125bc565b6125f7816124e4565b840191505092915050565b5f604083015f8301516126175f86018261213d565b506020830151848203602086015261262f82826125ca565b9150508091505092915050565b5f6020820190508181035f8301526126548184612602565b905092915050565b5f612666826125a2565b61267081856124c6565b93506126808185602086016125bc565b612689816124e4565b840191505092915050565b5f6020820190508181035f8301526126ac818461265c565b905092915050565b5f6040820190506126c75f83018661222e565b81810360208301526126da8184866124f4565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61271e826124e4565b810181811067ffffffffffffffff8211171561273d5761273c6126e8565b5b80604052505050565b5f61274f611ed9565b905061275b8282612715565b919050565b5f80fd5b5f61276e82611f48565b9050919050565b5f61277f82612764565b9050919050565b61278f81612775565b8114612799575f80fd5b50565b5f815190506127aa81612786565b92915050565b5f815190506127be81612256565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127e2576127e16126e8565b5b6127eb826124e4565b9050602081019050919050565b5f61280a612805846127c8565b612746565b905082815260208101848484011115612826576128256127c4565b5b6128318482856125bc565b509392505050565b5f82601f83011261284d5761284c612334565b5b815161285d8482602086016127f8565b91505092915050565b5f6060828403121561287b5761287a6126e4565b5b6128856060612746565b90505f61289484828501612563565b5f8301525060206128a7848285016127b0565b602083015250604082015167ffffffffffffffff8111156128cb576128ca612760565b5b6128d784828501612839565b60408301525092915050565b5f67ffffffffffffffff8211156128fd576128fc6126e8565b5b602082029050602081019050919050565b5f61292061291b846128e3565b612746565b905080838252602082019050602084028301858111156129435761294261233c565b5b835b8181101561298a57805167ffffffffffffffff81111561296857612967612334565b5b8086016129758982612866565b85526020850194505050602081019050612945565b5050509392505050565b5f82601f8301126129a8576129a7612334565b5b81516129b884826020860161290e565b91505092915050565b6129ca816120fb565b81146129d4575f80fd5b50565b5f815190506129e5816129c1565b92915050565b5f815190506129f981611ef3565b92915050565b5f6101208284031215612a1557612a146126e4565b5b612a20610120612746565b90505f612a2f8482850161279c565b5f83015250602082015167ffffffffffffffff811115612a5257612a51612760565b5b612a5e84828501612866565b602083015250604082015167ffffffffffffffff811115612a8257612a81612760565b5b612a8e84828501612866565b604083015250606082015167ffffffffffffffff811115612ab257612ab1612760565b5b612abe84828501612866565b606083015250608082015167ffffffffffffffff811115612ae257612ae1612760565b5b612aee84828501612994565b60808301525060a0612b02848285016129d7565b60a08301525060c0612b16848285016129d7565b60c08301525060e0612b2a848285016129eb565b60e083015250610100612b3f848285016127b0565b6101008301525092915050565b5f60208284031215612b6157612b60611ee2565b5b5f82015167ffffffffffffffff811115612b7e57612b7d611ee6565b5b612b8a848285016129ff565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bca826120fb565b9150612bd5836120fb565b9250828201905067ffffffffffffffff811115612bf557612bf4612b93565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c2f81612bfb565b82525050565b5f602082019050612c485f830184612c26565b92915050565b5f612c5882611eea565b9150612c6383611eea565b9250828202612c7181611eea565b91508282048414831517612c8857612c87612b93565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cc682611eea565b9150612cd183611eea565b925082612ce157612ce0612c8f565b5b828204905092915050565b5f612cf682611eea565b9150612d0183611eea565b9250828203905081811115612d1957612d18612b93565b5b92915050565b5f604082019050612d325f830185612c26565b612d3f602083018461222e565b9392505050565b5f60208284031215612d5b57612d5a611ee2565b5b5f82015167ffffffffffffffff811115612d7857612d77611ee6565b5b612d8484828501612839565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea264697066735822122000411cf454d3f7b220aadb64ce9e6a010c954ba7ec7e1848fd2534e56a5294e364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84AE2BC6 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xE21FF731 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A1 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x84AE2BC6 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x8FE4F523 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x99D32FC4 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x2D9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x46877B1A GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x46877B1A EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5EDB9EB0 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x215 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x13C8E2DE EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x2E75AB50 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x39A51BE5 EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x6B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x1F1D JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x190 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x7C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x213 PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x220 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x229 PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x22F3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x806 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x2395 JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0xB5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x231B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x353 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34E SWAP2 SWAP1 PUSH2 0x2419 JUMP JUMPDEST PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x220E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x383 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x12E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH2 0x134C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E5 PUSH2 0x1D71 JUMP JUMPDEST PUSH0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3F8 JUMPI PUSH2 0x3F7 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x59C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x1365 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x710 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x136F JUMP JUMPDEST PUSH2 0x7DF PUSH0 PUSH2 0x13A6 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x866 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 DUP1 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP PUSH1 0x3 SLOAD CALLVALUE LT ISZERO PUSH2 0x8E1 JUMPI PUSH0 CALLVALUE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EB DUP2 DUP6 PUSH2 0x146C JUMP JUMPDEST DUP1 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC16E50EF DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x949 SWAP3 SWAP2 SWAP1 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x965 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x989 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D4 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC63FF8DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA96 SWAP2 SWAP1 PUSH2 0x263C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xB46 JUMPI CALLER DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x26B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0xB87 PUSH2 0x1D71 JUMP JUMPDEST PUSH2 0xB8F PUSH2 0x136F JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0xBAD JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH2 0xC06 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x15DA JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x2B4C JUMP JUMPDEST SWAP1 POP PUSH2 0xC27 DUP2 PUSH0 ADD MLOAD PUSH2 0x1673 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP DUP2 PUSH2 0x100 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH0 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xA0 ADD MLOAD PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xCF8 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xC0 ADD MLOAD PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD47 SWAP2 SWAP1 PUSH2 0x2BC0 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xDAE PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE1E PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST DUP2 PUSH1 0x2 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE70 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x1770 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x1E37 JUMP JUMPDEST POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEF8 JUMPI PUSH2 0xEF3 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF73 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB2 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0xFBC JUMPI PUSH0 PUSH2 0xFE0 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST JUMPDEST DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1204 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x11BB JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP3 POP POP POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12ED PUSH2 0x136F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x1313 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1320 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x132B PUSH2 0x136F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1340 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1349 DUP2 PUSH2 0x13A6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x13A4 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x13AE PUSH2 0x1B3A JUMP JUMPDEST ISZERO PUSH2 0x1413 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1469 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD SUB ISZERO PUSH2 0x15D6 JUMPI PUSH0 PUSH1 0x3 SLOAD SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1532 JUMPI PUSH0 PUSH2 0x2710 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x5 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x3 SLOAD PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x2C4E JUMP JUMPDEST PUSH2 0x14F7 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x1505 SWAP2 SWAP1 PUSH2 0x2CEC JUMP JUMPDEST SWAP2 POP PUSH2 0x1530 DUP2 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST PUSH2 0x158A PUSH1 0x2 DUP3 PUSH2 0x1542 SWAP2 SWAP1 PUSH2 0x2CBC JUMP JUMPDEST DUP5 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15D4 SELFBALANCE PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B3E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD ISZERO PUSH2 0x166E JUMPI PUSH1 0x40 MLOAD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x4 DUP4 ADD DUP1 MLOAD DUP5 MLOAD DUP6 ADD DUP2 NOT DUP4 MSTORE JUMPDEST DUP1 DUP7 LT ISZERO PUSH2 0x1654 JUMPI PUSH1 0x1 DUP7 ADD SWAP6 POP DUP6 MLOAD PUSH1 0x1F BYTE DUP1 PUSH2 0x1644 JUMPI PUSH1 0x1 DUP8 ADD SWAP7 POP DUP7 MLOAD PUSH1 0x1F BYTE PUSH0 NOT DUP7 MSTORE PUSH1 0x7F DUP2 GT PUSH2 0x1632 JUMPI PUSH1 0x1 DUP2 ADD CODESIZE DUP8 CODECOPY JUMPDEST PUSH1 0x1 PUSH1 0x7F DUP3 AND ADD DUP7 ADD SWAP6 POP POP POP PUSH2 0x164F JUMP JUMPDEST DUP1 DUP6 MSTORE8 PUSH1 0x1 DUP6 ADD SWAP5 POP POP JUMPDEST PUSH2 0x15FB JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP6 ADD DUP5 SUB DUP6 MSTORE PUSH0 DUP5 MSTORE PUSH1 0x20 DUP5 ADD PUSH1 0x40 MSTORE POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169D PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 DUP3 PUSH2 0x1B5B JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFE9FBB80 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D6 SWAP2 SWAP1 PUSH2 0x223D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1715 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x174B JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x175D DUP5 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST PUSH2 0x1767 DUP4 DUP4 PUSH2 0x1C52 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x178D JUMPI PUSH2 0x178C PUSH2 0x26E8 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 0x17BB 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 PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH2 0x1811 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1800 JUMPI PUSH2 0x17FF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1B5B JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1824 JUMPI PUSH2 0x1823 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH2 0x18B0 JUMPI PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1867 JUMPI PUSH2 0x1866 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18A7 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x18F5 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x18E7 JUMPI PUSH2 0x18E6 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 PUSH2 0x174E JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1908 JUMPI PUSH2 0x1907 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1956 JUMPI PUSH2 0x1955 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4E7165A2 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x198C JUMPI PUSH2 0x198B PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19B4 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F6 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD EQ PUSH2 0x1A87 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFA4CA9B1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A39 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A79 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x2D8D JUMP JUMPDEST JUMPDEST JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A9A JUMPI PUSH2 0x1A99 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1AD0 JUMPI PUSH2 0x1ACF PUSH2 0x2464 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AF8 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B21 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x17C0 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1B57 JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1C0A JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BC9 SWAP2 SWAP1 PUSH2 0x2C35 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BE4 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C08 SWAP2 SWAP1 PUSH2 0x2577 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C4E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C45 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH0 ADD MLOAD PUSH2 0x1C65 JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0x1C88 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D0E JUMP JUMPDEST JUMPDEST SWAP1 POP DUP3 PUSH0 ADD MLOAD DUP1 ISZERO PUSH2 0x1C98 JUMPI POP DUP2 JUMPDEST ISZERO PUSH2 0x1D08 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CDA SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D03 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D19 PUSH0 DUP4 PUSH2 0x1D20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP2 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE PUSH1 0x35 PUSH1 0xC DUP5 CREATE SWAP1 POP DUP1 PUSH2 0x1D67 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1EAD JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EAC JUMPI DUP3 MLOAD DUP3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E55 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1EBA SWAP2 SWAP1 PUSH2 0x1EBE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH0 DUP2 PUSH0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1EBF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EFC DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP2 EQ PUSH2 0x1F06 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F17 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F32 JUMPI PUSH2 0x1F31 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F3F DUP5 DUP3 DUP6 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F8A PUSH2 0x1F85 PUSH2 0x1F80 DUP5 PUSH2 0x1F48 JUMP JUMPDEST PUSH2 0x1F67 JUMP JUMPDEST PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F9B DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1FAC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBC DUP2 PUSH2 0x1FA2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FCC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FDC DUP2 PUSH2 0x1FC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FEC DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FFC DUP2 PUSH2 0x1FE2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x200C DUP3 PUSH2 0x1F70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x201D DUP3 PUSH2 0x2002 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x202D DUP2 PUSH2 0x2013 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2066 DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2076 DUP2 PUSH2 0x205C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2087 DUP4 DUP4 PUSH2 0x206D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20A9 DUP3 PUSH2 0x2033 JUMP JUMPDEST PUSH2 0x20B3 DUP2 DUP6 PUSH2 0x203D JUMP JUMPDEST SWAP4 POP PUSH2 0x20BE DUP4 PUSH2 0x204D JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x20EE JUMPI DUP2 MLOAD PUSH2 0x20D5 DUP9 DUP3 PUSH2 0x207C JUMP JUMPDEST SWAP8 POP PUSH2 0x20E0 DUP4 PUSH2 0x2093 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x20C1 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2117 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2126 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2136 DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2146 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2162 PUSH0 DUP7 ADD DUP3 PUSH2 0x1FB3 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2175 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1FD3 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2188 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1FF3 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x219B PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x2024 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x21B3 DUP3 DUP3 PUSH2 0x209F JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x21C8 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x21DB PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x210E JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x21EE PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x211D JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x2203 PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2226 DUP2 DUP5 PUSH2 0x214C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2237 DUP2 PUSH2 0x212C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2250 PUSH0 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x225F DUP2 PUSH2 0x212C JUMP JUMPDEST DUP2 EQ PUSH2 0x2269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227A DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2295 JUMPI PUSH2 0x2294 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22A2 DUP5 DUP3 DUP6 ADD PUSH2 0x226C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22B4 DUP2 PUSH2 0x1EEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22CD PUSH0 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22DD DUP3 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22ED DUP2 PUSH2 0x22D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2306 PUSH0 DUP4 ADD DUP5 PUSH2 0x22E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2315 DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x232E PUSH0 DUP4 ADD DUP5 PUSH2 0x230C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2355 JUMPI PUSH2 0x2354 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2372 JUMPI PUSH2 0x2371 PUSH2 0x2338 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x238E JUMPI PUSH2 0x238D PUSH2 0x233C JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x23AE JUMPI PUSH2 0x23AD PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23BB DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x23CC DUP9 DUP3 DUP10 ADD PUSH2 0x1F09 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x23DD DUP9 DUP3 DUP10 ADD PUSH2 0x226C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23FE JUMPI PUSH2 0x23FD PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x240A DUP9 DUP3 DUP10 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x242F JUMPI PUSH2 0x242E PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x244C JUMPI PUSH2 0x244B PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2458 DUP6 DUP3 DUP7 ADD PUSH2 0x2340 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x24A4 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x24B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x24BE PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x24FF DUP4 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x250C DUP4 DUP6 DUP5 PUSH2 0x24D6 JUMP JUMPDEST PUSH2 0x2515 DUP4 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2539 DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2556 DUP2 PUSH2 0x2542 JUMP JUMPDEST DUP2 EQ PUSH2 0x2560 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2571 DUP2 PUSH2 0x254D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258C JUMPI PUSH2 0x258B PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2599 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25D4 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x25DE DUP2 DUP6 PUSH2 0x25AC JUMP JUMPDEST SWAP4 POP PUSH2 0x25EE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x25F7 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2617 PUSH0 DUP7 ADD DUP3 PUSH2 0x213D JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x262F DUP3 DUP3 PUSH2 0x25CA JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2654 DUP2 DUP5 PUSH2 0x2602 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2666 DUP3 PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x2670 DUP2 DUP6 PUSH2 0x24C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x2680 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x25BC JUMP JUMPDEST PUSH2 0x2689 DUP2 PUSH2 0x24E4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x26AC DUP2 DUP5 PUSH2 0x265C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x26C7 PUSH0 DUP4 ADD DUP7 PUSH2 0x222E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26DA DUP2 DUP5 DUP7 PUSH2 0x24F4 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x271E DUP3 PUSH2 0x24E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x273D JUMPI PUSH2 0x273C PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x274F PUSH2 0x1ED9 JUMP JUMPDEST SWAP1 POP PUSH2 0x275B DUP3 DUP3 PUSH2 0x2715 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x276E DUP3 PUSH2 0x1F48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x277F DUP3 PUSH2 0x2764 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x278F DUP2 PUSH2 0x2775 JUMP JUMPDEST DUP2 EQ PUSH2 0x2799 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27AA DUP2 PUSH2 0x2786 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x27BE DUP2 PUSH2 0x2256 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x27E2 JUMPI PUSH2 0x27E1 PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH2 0x27EB DUP3 PUSH2 0x24E4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x280A PUSH2 0x2805 DUP5 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2826 JUMPI PUSH2 0x2825 PUSH2 0x27C4 JUMP JUMPDEST JUMPDEST PUSH2 0x2831 DUP5 DUP3 DUP6 PUSH2 0x25BC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x284D JUMPI PUSH2 0x284C PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x285D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x27F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2885 PUSH1 0x60 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2894 DUP5 DUP3 DUP6 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x28A7 DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28CB JUMPI PUSH2 0x28CA PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x28D7 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FD JUMPI PUSH2 0x28FC PUSH2 0x26E8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2920 PUSH2 0x291B DUP5 PUSH2 0x28E3 JUMP JUMPDEST PUSH2 0x2746 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 0x2943 JUMPI PUSH2 0x2942 PUSH2 0x233C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298A JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2968 JUMPI PUSH2 0x2967 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x2975 DUP10 DUP3 PUSH2 0x2866 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2945 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29A8 JUMPI PUSH2 0x29A7 PUSH2 0x2334 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x29B8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x290E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29CA DUP2 PUSH2 0x20FB JUMP JUMPDEST DUP2 EQ PUSH2 0x29D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29E5 DUP2 PUSH2 0x29C1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x29F9 DUP2 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A15 JUMPI PUSH2 0x2A14 PUSH2 0x26E4 JUMP JUMPDEST JUMPDEST PUSH2 0x2A20 PUSH2 0x120 PUSH2 0x2746 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A2F DUP5 DUP3 DUP6 ADD PUSH2 0x279C JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A52 JUMPI PUSH2 0x2A51 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A5E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A82 JUMPI PUSH2 0x2A81 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2A8E DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AB2 JUMPI PUSH2 0x2AB1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2ABE DUP5 DUP3 DUP6 ADD PUSH2 0x2866 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE2 JUMPI PUSH2 0x2AE1 PUSH2 0x2760 JUMP JUMPDEST JUMPDEST PUSH2 0x2AEE DUP5 DUP3 DUP6 ADD PUSH2 0x2994 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x2B02 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x2B16 DUP5 DUP3 DUP6 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x2B2A DUP5 DUP3 DUP6 ADD PUSH2 0x29EB JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x2B3F DUP5 DUP3 DUP6 ADD PUSH2 0x27B0 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B60 PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B7E JUMPI PUSH2 0x2B7D PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2B8A DUP5 DUP3 DUP6 ADD PUSH2 0x29FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2BCA DUP3 PUSH2 0x20FB JUMP JUMPDEST SWAP2 POP PUSH2 0x2BD5 DUP4 PUSH2 0x20FB JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BF5 JUMPI PUSH2 0x2BF4 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C2F DUP2 PUSH2 0x2BFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C48 PUSH0 DUP4 ADD DUP5 PUSH2 0x2C26 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C58 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2C63 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x2C71 DUP2 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2C88 JUMPI PUSH2 0x2C87 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2CC6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2CD1 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2CE1 JUMPI PUSH2 0x2CE0 PUSH2 0x2C8F JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2CF6 DUP3 PUSH2 0x1EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2D01 DUP4 PUSH2 0x1EEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2D19 JUMPI PUSH2 0x2D18 PUSH2 0x2B93 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D32 PUSH0 DUP4 ADD DUP6 PUSH2 0x2C26 JUMP JUMPDEST PUSH2 0x2D3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x222E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D5B JUMPI PUSH2 0x2D5A PUSH2 0x1EE2 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D78 JUMPI PUSH2 0x2D77 PUSH2 0x1EE6 JUMP JUMPDEST JUMPDEST PUSH2 0x2D84 DUP5 DUP3 DUP6 ADD PUSH2 0x2839 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP COINBASE SHR DELEGATECALL SLOAD 0xD3 0xF7 0xB2 KECCAK256 0xAA 0xDB PUSH5 0xCE9E6A010C SWAP6 0x4B 0xA7 0xEC PUSH31 0x1848FD2534E56A5294E364736F6C6343000819003300000000000000000000 ","sourceMap":"1093:10818:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;7138:96:29;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1748:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6849:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;6563:95:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;1670:29:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2016:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:737:29;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1828:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1922:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2134:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3966:1268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6362:117:29;6418:21;;:::i;:::-;6458:7;6466:5;6458:14;;;;;;;;:::i;:::-;;;;;;;;;;;;6451:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:117;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;7138:96:29:-;12517:13:17;:11;:13::i;:::-;7218:9:29::1;7207:8;:20;;;;7138:96:::0;:::o;1748:34::-;;;;;;;;;;;;;:::o;6849:140::-;12517:13:17;:11;:13::i;:::-;6962:20:29::1;6940:19;;:42;;;;;;;;;;;;;;;;;;6849:140:::0;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;6563:95:29:-;6611:7;6637;:14;;;;6630:21;;6563:95;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;1670:29:29:-;;;;;;;;;;;;;:::o;2016:33::-;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;5489:737:29:-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;5662:28:29::1;5693:7:::0;5701:8:::1;5693:17;;;;;;;;:::i;:::-;;;;;;;;;;;;5662:48;;5736:8;;5724:9;:20;5720:94;;;5790:1;5794:9;5805:8;;5753:61;;;;;;;;;;;;;:::i;:::-;;;;;;;;5720:94;5824:32;5839:5;5846:9;5824:14;:32::i;:::-;5960:5;:15;;;;;;;;;;;;:24;;;5985:5;;5960:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5955:70;;6000:25;;;;;;;;;;;;;;5955:70;6053:5;:16;;6070:12;6053:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:36;;;6101:57;;;;;;;;6133:10;6101:57;;;;;;6151:5;;6101:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;6090:69:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;6053:107;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6035:184;;6201:10;6213:5;;6178:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;6035:184;5652:574;1937:10:26::0;1913:22;1906:42;5489:737:29;;;;;:::o;1828:40::-;;;;:::o;1922:33::-;;;;;;;;;;;;;:::o;2134:47::-;2175:6;2134:47;:::o;3966:1268::-;4050:21;;:::i;:::-;12517:13:17;:11;:13::i;:::-;1635:9:26::1;1610:22;1604:29;1601:44:::0;1598:158:::1;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;4083:27:29::2;4124:20;:5;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20::i;:::-;4113:47;;;;;;;;;;;;:::i;:::-;4083:77;;4202:29;4215:8;:15;;;4202:12;:29::i;:::-;4274:28;4305:7:::0;:14:::2;;;;;;;;;;;;;;;;;;;;;;;;4274:45;;4343:8;:14;;;4329:5;:11;;;:28;;;;;;;;;;;;;;;;;;4382:8;:15;;;4367:5;:12;;;:30;;;;;;;;;;;;;;;;;;4441:8;:20;;;4427:11;;;;;;;;;;;:34;;;;:::i;:::-;4407:5;:17;;;:54;;;;;;;;;;;;;;;;;;4505:8;:20;;;4491:11;;;;;;;;;;;:34;;;;:::i;:::-;4471:5;:17;;;:54;;;;;;;;;;;;;;;;;;4559:8;:24;;;4535:5;:21;;:48;;;;4654:60;4666:24;4692:8;:15;;;4709:4;4654:11;:60::i;:::-;4632:5;:12;;;:83;;;;;;;;;;;;;;;;;;4753:66;4765:27;4794:8;:18;;;4814:4;4753:11;:66::i;:::-;4725:5;:15;;;:95;;;;;;;;;;;;;;;;;;4849:53;4865:8;:19;;;4886:8;:15;;;4849;:53::i;:::-;4830:5;:16;;:72;;;;;;;;;;;;:::i;:::-;;4992:1;4953:41;;:8;:18;;;:27;;;:41;;;:241;;5128:66;5140:27;5169:8;:18;;;5189:4;5128:11;:66::i;:::-;4953:241;;;5013:5;:12;;;;;;;;;;;;:30;;;5044:27;5013:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:96;;5107:1;5013:96;;;5083:5;:12;;;;;;;;;;;;5013:96;4953:241;4912:5;:15;;;:292;;;;;;;;;;;;;;;;;;5222:5;5215:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;1937:10:26::1;1913:22;1906:42;3966:1268:29::0;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;7878:110::-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;11251:658:29:-;11359:1;11347:8;;:13;11343:26;11362:7;11343:26;11378:14;11395:8;;11378:25;;11522:1;11501:23;;:9;:23;;;11497:215;;11540:21;2175:6;11564:46;;11575:5;:17;;;;;;;;;;;;11564:28;;:8;;:28;;;;:::i;:::-;:46;;;;:::i;:::-;11540:70;;11634:13;11624:23;;;;;:::i;:::-;;;11661:40;11687:13;11661:9;:25;;;;:40;;;;:::i;:::-;11526:186;11497:215;11795:39;11832:1;11823:6;:10;;;;:::i;:::-;11795:5;:11;;;;;;;;;;;;:27;;;;:39;;;;:::i;:::-;11844:58;11880:21;11844:19;;;;;;;;;;;:35;;;;:58;;;;:::i;:::-;11333:576;11251:658;;;:::o;9347:1408:25:-;9411:19;9517:4;9511:11;9508:1231;;;9557:4;9551:11;9541:21;;9600:4;9592:6;9588:17;9641:1;9635:4;9631:12;9675:1;9669:8;9721:4;9715:11;9709:4;9705:22;9758:1;9754:6;9751:1;9744:17;9815:638;9831:3;9825:4;9822:13;9815:638;;;9879:1;9873:4;9869:12;9861:20;;9926:4;9920:11;9916:2;9911:21;9963:1;9953:413;;10010:1;10004:4;10000:12;9992:20;;10061:4;10055:11;10051:2;10046:21;10164:1;10160:6;10157:1;10150:17;10208:4;10205:1;10202:11;10192:61;;10248:1;10245;10241:9;10229:10;10226:1;10217:34;10192:61;10308:1;10301:4;10298:1;10294:12;10290:20;10287:1;10283:28;10278:33;;10336:8;;;;9953:413;10398:1;10395;10387:13;10433:1;10430;10426:9;10421:14;;9839:614;9815:638;;;;10480:1;10477;10470:12;10563:4;10555:6;10551:17;10548:1;10544:25;10536:6;10529:41;10618:1;10615;10608:12;10695:4;10692:1;10688:12;10682:4;10675:26;9523:1216;;;;9508:1231;9347:1408;;;:::o;7477:206:29:-;7539:56;7552:24;7586:7;7539:12;:56::i;:::-;7610:7;:20;;;7631:10;7610:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7605:71;;7651:25;;;;;;;;;;;;;;7605:71;7477:206;:::o;8698:268::-;8827:16;8859:42;8872:11;8885:6;:15;;;8859:12;:42::i;:::-;8922:37;8934:6;8942:16;8922:11;:37::i;:::-;8911:48;;8698:268;;;;;:::o;9268:1233::-;9378:29;9452:8;:15;9436:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9423:45;;9483:9;9478:1017;9502:8;:15;9498:1;:19;9478:1017;;;9619:63;9632:27;9661:8;9670:1;9661:11;;;;;;;;:::i;:::-;;;;;;;;:20;;;9619:12;:63::i;:::-;9796:8;9805:1;9796:11;;;;;;;;:::i;:::-;;;;;;;;:18;;;9791:142;;9868:27;9897:8;9906:1;9897:11;;;;;;;;:::i;:::-;;;;;;;;:20;;;9841:77;;;;;;;;;;;;:::i;:::-;;;;;;;;9791:142;9973:60;9985:27;10014:8;10023:1;10014:11;;;;;;;;:::i;:::-;;;;;;;;10027:5;9973:11;:60::i;:::-;9947:10;9958:1;9947:13;;;;;;;;:::i;:::-;;;;;;;:87;;;;;;;;;;;10049:22;10074:10;10085:1;10074:13;;;;;;;;:::i;:::-;;;;;;;;:23;;;10098:8;10107:1;10098:11;;;;;;;;:::i;:::-;;;;;;;;:22;;;10074:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10049:72;;10159:1;10139:9;:16;:21;10135:193;;10285:7;:16;;;10302:9;10285:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10278:35;;;;:::i;:::-;;10135:193;10436:10;10447:1;10436:13;;;;;;;;:::i;:::-;;;;;;;;:24;;;10461:8;10470:1;10461:11;;;;;;;;:::i;:::-;;;;;;;;:22;;;10436:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9524:971;9519:3;;;;;;;9478:1017;;;;9268:1233;;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;4031:342:27:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;8054:254:29:-;8162:1;8142:22;;:8;:22;;;:77;;;;8179:8;8169:37;;;8207:11;8169:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8168:51;8142:77;8138:164;;;8269:11;8282:8;8242:49;;;;;;;;;;;;:::i;:::-;;;;;;;;8138:164;8054:254;;:::o;10611:420::-;10706:16;10745:7;:14;;;:60;;10789:7;:16;;;10745:60;;;10762:24;:7;:16;;;:22;;;:24::i;:::-;10745:60;10734:71;;10819:7;:14;;;:35;;;;;10837:17;10819:35;10815:210;;;10974:8;10964:30;;;10995:7;:18;;;10964:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10815:210;10611:420;;;;:::o;4007:127:22:-;4064:16;4103:24;4109:1;4112:14;4103:5;:24::i;:::-;4092:35;;4007:127;;;:::o;4238:5567::-;4310:16;9363:28;9357:4;9350:42;9418:14;9412:4;9405:28;9459:42;9453:4;9446:56;9547:4;9541;9534:5;9527:25;9515:37;;9575:8;9565:136;;9616:10;9610:4;9603:24;9682:4;9676;9669:18;9565:136;9727:1;9721:4;9714:15;4238:5567;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:60::-;1185:3;1206:5;1199:12;;1157:60;;;:::o;1223:142::-;1273:9;1306:53;1324:34;1333:24;1351:5;1333:24;:::i;:::-;1324:34;:::i;:::-;1306:53;:::i;:::-;1293:66;;1223:142;;;:::o;1371:126::-;1421:9;1454:37;1485:5;1454:37;:::i;:::-;1441:50;;1371:126;;;:::o;1503:142::-;1569:9;1602:37;1633:5;1602:37;:::i;:::-;1589:50;;1503:142;;;:::o;1651:153::-;1744:53;1791:5;1744:53;:::i;:::-;1739:3;1732:66;1651:153;;:::o;1810:145::-;1879:9;1912:37;1943:5;1912:37;:::i;:::-;1899:50;;1810:145;;;:::o;1961:159::-;2057:56;2107:5;2057:56;:::i;:::-;2052:3;2045:69;1961:159;;:::o;2126:145::-;2195:9;2228:37;2259:5;2228:37;:::i;:::-;2215:50;;2126:145;;;:::o;2277:159::-;2373:56;2423:5;2373:56;:::i;:::-;2368:3;2361:69;2277:159;;:::o;2442:134::-;2500:9;2533:37;2564:5;2533:37;:::i;:::-;2520:50;;2442:134;;;:::o;2582:158::-;2656:9;2689:45;2728:5;2689:45;:::i;:::-;2676:58;;2582:158;;;:::o;2746:169::-;2847:61;2902:5;2847:61;:::i;:::-;2842:3;2835:74;2746:169;;:::o;2921:133::-;3007:6;3041:5;3035:12;3025:22;;2921:133;;;:::o;3060:174::-;3149:11;3183:6;3178:3;3171:19;3223:4;3218:3;3214:14;3199:29;;3060:174;;;;:::o;3240:151::-;3326:4;3349:3;3341:11;;3379:4;3374:3;3370:14;3362:22;;3240:151;;;:::o;3397:145::-;3466:9;3499:37;3530:5;3499:37;:::i;:::-;3486:50;;3397:145;;;:::o;3548:159::-;3644:56;3694:5;3644:56;:::i;:::-;3639:3;3632:69;3548:159;;:::o;3713:217::-;3801:10;3822:65;3883:3;3875:6;3822:65;:::i;:::-;3919:4;3914:3;3910:14;3896:28;;3713:217;;;;:::o;3936:132::-;4025:4;4057;4052:3;4048:14;4040:22;;3936:132;;;:::o;4115:807::-;4243:3;4272:73;4339:5;4272:73;:::i;:::-;4361:76;4430:6;4425:3;4361:76;:::i;:::-;4354:83;;4461:75;4530:5;4461:75;:::i;:::-;4559:7;4590:1;4575:322;4600:6;4597:1;4594:13;4575:322;;;4676:6;4670:13;4703:82;4781:3;4766:13;4703:82;:::i;:::-;4696:89;;4808:79;4880:6;4808:79;:::i;:::-;4798:89;;4635:262;4622:1;4619;4615:9;4610:14;;4575:322;;;4579:14;4913:3;4906:10;;4248:674;;;4115:807;;;;:::o;4928:101::-;4964:7;5004:18;4997:5;4993:30;4982:41;;4928:101;;;:::o;5035:105::-;5110:23;5127:5;5110:23;:::i;:::-;5105:3;5098:36;5035:105;;:::o;5146:108::-;5223:24;5241:5;5223:24;:::i;:::-;5218:3;5211:37;5146:108;;:::o;5260:96::-;5297:7;5326:24;5344:5;5326:24;:::i;:::-;5315:35;;5260:96;;;:::o;5362:108::-;5439:24;5457:5;5439:24;:::i;:::-;5434:3;5427:37;5362:108;;:::o;5530:1997::-;5647:3;5683:6;5678:3;5674:16;5774:4;5767:5;5763:16;5757:23;5793:79;5866:4;5861:3;5857:14;5843:12;5793:79;:::i;:::-;5700:182;5969:4;5962:5;5958:16;5952:23;5988:82;6064:4;6059:3;6055:14;6041:12;5988:82;:::i;:::-;5892:188;6167:4;6160:5;6156:16;6150:23;6186:82;6262:4;6257:3;6253:14;6239:12;6186:82;:::i;:::-;6090:188;6362:4;6355:5;6351:16;6345:23;6381:87;6462:4;6457:3;6453:14;6439:12;6381:87;:::i;:::-;6288:190;6566:4;6559:5;6555:16;6549:23;6619:3;6613:4;6609:14;6602:4;6597:3;6593:14;6586:38;6645:122;6762:4;6748:12;6645:122;:::i;:::-;6637:130;;6488:290;6867:4;6860:5;6856:16;6850:23;6886:61;6941:4;6936:3;6932:14;6918:12;6886:61;:::i;:::-;6788:169;7046:4;7039:5;7035:16;7029:23;7065:61;7120:4;7115:3;7111:14;7097:12;7065:61;:::i;:::-;6967:169;7229:4;7222:5;7218:16;7212:23;7248:63;7305:4;7300:3;7296:14;7282:12;7248:63;:::i;:::-;7146:175;7404:6;7397:5;7393:18;7387:25;7425:65;7482:6;7477:3;7473:16;7459:12;7425:65;:::i;:::-;7331:169;7517:4;7510:11;;5652:1875;5530:1997;;;;:::o;7533:369::-;7674:4;7712:2;7701:9;7697:18;7689:26;;7761:9;7755:4;7751:20;7747:1;7736:9;7732:17;7725:47;7789:106;7890:4;7881:6;7789:106;:::i;:::-;7781:114;;7533:369;;;;:::o;7908:118::-;7995:24;8013:5;7995:24;:::i;:::-;7990:3;7983:37;7908:118;;:::o;8032:222::-;8125:4;8163:2;8152:9;8148:18;8140:26;;8176:71;8244:1;8233:9;8229:17;8220:6;8176:71;:::i;:::-;8032:222;;;;:::o;8260:122::-;8333:24;8351:5;8333:24;:::i;:::-;8326:5;8323:35;8313:63;;8372:1;8369;8362:12;8313:63;8260:122;:::o;8388:139::-;8434:5;8472:6;8459:20;8450:29;;8488:33;8515:5;8488:33;:::i;:::-;8388:139;;;;:::o;8533:329::-;8592:6;8641:2;8629:9;8620:7;8616:23;8612:32;8609:119;;;8647:79;;:::i;:::-;8609:119;8767:1;8792:53;8837:7;8828:6;8817:9;8813:22;8792:53;:::i;:::-;8782:63;;8738:117;8533:329;;;;:::o;8868:118::-;8955:24;8973:5;8955:24;:::i;:::-;8950:3;8943:37;8868:118;;:::o;8992:222::-;9085:4;9123:2;9112:9;9108:18;9100:26;;9136:71;9204:1;9193:9;9189:17;9180:6;9136:71;:::i;:::-;8992:222;;;;:::o;9220:149::-;9293:9;9326:37;9357:5;9326:37;:::i;:::-;9313:50;;9220:149;;;:::o;9375:177::-;9485:60;9539:5;9485:60;:::i;:::-;9480:3;9473:73;9375:177;;:::o;9558:268::-;9674:4;9712:2;9701:9;9697:18;9689:26;;9725:94;9816:1;9805:9;9801:17;9792:6;9725:94;:::i;:::-;9558:268;;;;:::o;9832:115::-;9917:23;9934:5;9917:23;:::i;:::-;9912:3;9905:36;9832:115;;:::o;9953:218::-;10044:4;10082:2;10071:9;10067:18;10059:26;;10095:69;10161:1;10150:9;10146:17;10137:6;10095:69;:::i;:::-;9953:218;;;;:::o;10177:117::-;10286:1;10283;10276:12;10300:117;10409:1;10406;10399:12;10423:117;10532:1;10529;10522:12;10559:552;10616:8;10626:6;10676:3;10669:4;10661:6;10657:17;10653:27;10643:122;;10684:79;;:::i;:::-;10643:122;10797:6;10784:20;10774:30;;10827:18;10819:6;10816:30;10813:117;;;10849:79;;:::i;:::-;10813:117;10963:4;10955:6;10951:17;10939:29;;11017:3;11009:4;11001:6;10997:17;10987:8;10983:32;10980:41;10977:128;;;11024:79;;:::i;:::-;10977:128;10559:552;;;;;:::o;11117:963::-;11214:6;11222;11230;11238;11246;11295:3;11283:9;11274:7;11270:23;11266:33;11263:120;;;11302:79;;:::i;:::-;11263:120;11422:1;11447:53;11492:7;11483:6;11472:9;11468:22;11447:53;:::i;:::-;11437:63;;11393:117;11549:2;11575:53;11620:7;11611:6;11600:9;11596:22;11575:53;:::i;:::-;11565:63;;11520:118;11677:2;11703:53;11748:7;11739:6;11728:9;11724:22;11703:53;:::i;:::-;11693:63;;11648:118;11833:2;11822:9;11818:18;11805:32;11864:18;11856:6;11853:30;11850:117;;;11886:79;;:::i;:::-;11850:117;11999:64;12055:7;12046:6;12035:9;12031:22;11999:64;:::i;:::-;11981:82;;;;11776:297;11117:963;;;;;;;;:::o;12086:527::-;12156:6;12164;12213:2;12201:9;12192:7;12188:23;12184:32;12181:119;;;12219:79;;:::i;:::-;12181:119;12367:1;12356:9;12352:17;12339:31;12397:18;12389:6;12386:30;12383:117;;;12419:79;;:::i;:::-;12383:117;12532:64;12588:7;12579:6;12568:9;12564:22;12532:64;:::i;:::-;12514:82;;;;12310:296;12086:527;;;;;:::o;12619:180::-;12667:77;12664:1;12657:88;12764:4;12761:1;12754:15;12788:4;12785:1;12778:15;12805:442;12954:4;12992:2;12981:9;12977:18;12969:26;;13005:71;13073:1;13062:9;13058:17;13049:6;13005:71;:::i;:::-;13086:72;13154:2;13143:9;13139:18;13130:6;13086:72;:::i;:::-;13168;13236:2;13225:9;13221:18;13212:6;13168:72;:::i;:::-;12805:442;;;;;;:::o;13253:168::-;13336:11;13370:6;13365:3;13358:19;13410:4;13405:3;13401:14;13386:29;;13253:168;;;;:::o;13427:148::-;13525:6;13520:3;13515;13502:30;13566:1;13557:6;13552:3;13548:16;13541:27;13427:148;;;:::o;13581:102::-;13622:6;13673:2;13669:7;13664:2;13657:5;13653:14;13649:28;13639:38;;13581:102;;;:::o;13711:314::-;13807:3;13828:70;13891:6;13886:3;13828:70;:::i;:::-;13821:77;;13908:56;13957:6;13952:3;13945:5;13908:56;:::i;:::-;13989:29;14011:6;13989:29;:::i;:::-;13984:3;13980:39;13973:46;;13711:314;;;;;:::o;14031:329::-;14152:4;14190:2;14179:9;14175:18;14167:26;;14239:9;14233:4;14229:20;14225:1;14214:9;14210:17;14203:47;14267:86;14348:4;14339:6;14331;14267:86;:::i;:::-;14259:94;;14031:329;;;;;:::o;14366:90::-;14400:7;14443:5;14436:13;14429:21;14418:32;;14366:90;;;:::o;14462:116::-;14532:21;14547:5;14532:21;:::i;:::-;14525:5;14522:32;14512:60;;14568:1;14565;14558:12;14512:60;14462:116;:::o;14584:137::-;14638:5;14669:6;14663:13;14654:22;;14685:30;14709:5;14685:30;:::i;:::-;14584:137;;;;:::o;14727:345::-;14794:6;14843:2;14831:9;14822:7;14818:23;14814:32;14811:119;;;14849:79;;:::i;:::-;14811:119;14969:1;14994:61;15047:7;15038:6;15027:9;15023:22;14994:61;:::i;:::-;14984:71;;14940:125;14727:345;;;;:::o;15078:98::-;15129:6;15163:5;15157:12;15147:22;;15078:98;;;:::o;15182:158::-;15255:11;15289:6;15284:3;15277:19;15329:4;15324:3;15320:14;15305:29;;15182:158;;;;:::o;15346:139::-;15435:6;15430:3;15425;15419:23;15476:1;15467:6;15462:3;15458:16;15451:27;15346:139;;;:::o;15491:353::-;15567:3;15595:38;15627:5;15595:38;:::i;:::-;15649:60;15702:6;15697:3;15649:60;:::i;:::-;15642:67;;15718:65;15776:6;15771:3;15764:4;15757:5;15753:16;15718:65;:::i;:::-;15808:29;15830:6;15808:29;:::i;:::-;15803:3;15799:39;15792:46;;15571:273;15491:353;;;;:::o;15920:618::-;16051:3;16087:4;16082:3;16078:14;16176:4;16169:5;16165:16;16159:23;16195:63;16252:4;16247:3;16243:14;16229:12;16195:63;:::i;:::-;16102:166;16350:4;16343:5;16339:16;16333:23;16403:3;16397:4;16393:14;16386:4;16381:3;16377:14;16370:38;16429:71;16495:4;16481:12;16429:71;:::i;:::-;16421:79;;16278:233;16528:4;16521:11;;16056:482;15920:618;;;;:::o;16544:397::-;16699:4;16737:2;16726:9;16722:18;16714:26;;16786:9;16780:4;16776:20;16772:1;16761:9;16757:17;16750:47;16814:120;16929:4;16920:6;16814:120;:::i;:::-;16806:128;;16544:397;;;;:::o;16947:373::-;17033:3;17061:38;17093:5;17061:38;:::i;:::-;17115:70;17178:6;17173:3;17115:70;:::i;:::-;17108:77;;17194:65;17252:6;17247:3;17240:4;17233:5;17229:16;17194:65;:::i;:::-;17284:29;17306:6;17284:29;:::i;:::-;17279:3;17275:39;17268:46;;17037:283;16947:373;;;;:::o;17326:309::-;17437:4;17475:2;17464:9;17460:18;17452:26;;17524:9;17518:4;17514:20;17510:1;17499:9;17495:17;17488:47;17552:76;17623:4;17614:6;17552:76;:::i;:::-;17544:84;;17326:309;;;;:::o;17641:439::-;17790:4;17828:2;17817:9;17813:18;17805:26;;17841:71;17909:1;17898:9;17894:17;17885:6;17841:71;:::i;:::-;17959:9;17953:4;17949:20;17944:2;17933:9;17929:18;17922:48;17987:86;18068:4;18059:6;18051;17987:86;:::i;:::-;17979:94;;17641:439;;;;;;:::o;18086:117::-;18195:1;18192;18185:12;18209:180;18257:77;18254:1;18247:88;18354:4;18351:1;18344:15;18378:4;18375:1;18368:15;18395:281;18478:27;18500:4;18478:27;:::i;:::-;18470:6;18466:40;18608:6;18596:10;18593:22;18572:18;18560:10;18557:34;18554:62;18551:88;;;18619:18;;:::i;:::-;18551:88;18659:10;18655:2;18648:22;18438:238;18395:281;;:::o;18682:129::-;18716:6;18743:20;;:::i;:::-;18733:30;;18772:33;18800:4;18792:6;18772:33;:::i;:::-;18682:129;;;:::o;18817:117::-;18926:1;18923;18916:12;18940:104;18985:7;19014:24;19032:5;19014:24;:::i;:::-;19003:35;;18940:104;;;:::o;19050:120::-;19103:7;19132:32;19158:5;19132:32;:::i;:::-;19121:43;;19050:120;;;:::o;19176:154::-;19265:40;19299:5;19265:40;:::i;:::-;19258:5;19255:51;19245:79;;19320:1;19317;19310:12;19245:79;19176:154;:::o;19336:175::-;19409:5;19440:6;19434:13;19425:22;;19456:49;19499:5;19456:49;:::i;:::-;19336:175;;;;:::o;19517:143::-;19574:5;19605:6;19599:13;19590:22;;19621:33;19648:5;19621:33;:::i;:::-;19517:143;;;;:::o;19666:117::-;19775:1;19772;19765:12;19789:307;19850:4;19940:18;19932:6;19929:30;19926:56;;;19962:18;;:::i;:::-;19926:56;20000:29;20022:6;20000:29;:::i;:::-;19992:37;;20084:4;20078;20074:15;20066:23;;19789:307;;;:::o;20102:432::-;20190:5;20215:65;20231:48;20272:6;20231:48;:::i;:::-;20215:65;:::i;:::-;20206:74;;20303:6;20296:5;20289:21;20341:4;20334:5;20330:16;20379:3;20370:6;20365:3;20361:16;20358:25;20355:112;;;20386:79;;:::i;:::-;20355:112;20476:52;20521:6;20516:3;20511;20476:52;:::i;:::-;20196:338;20102:432;;;;;:::o;20553:353::-;20619:5;20668:3;20661:4;20653:6;20649:17;20645:27;20635:122;;20676:79;;:::i;:::-;20635:122;20786:6;20780:13;20811:89;20896:3;20888:6;20881:4;20873:6;20869:17;20811:89;:::i;:::-;20802:98;;20625:281;20553:353;;;;:::o;20942:950::-;21027:5;21071:4;21059:9;21054:3;21050:19;21046:30;21043:117;;;21079:79;;:::i;:::-;21043:117;21178:21;21194:4;21178:21;:::i;:::-;21169:30;;21260:1;21300:57;21353:3;21344:6;21333:9;21329:22;21300:57;:::i;:::-;21293:4;21286:5;21282:16;21275:83;21209:160;21432:2;21473:60;21529:3;21520:6;21509:9;21505:22;21473:60;:::i;:::-;21466:4;21459:5;21455:16;21448:86;21379:166;21631:2;21620:9;21616:18;21610:25;21662:18;21654:6;21651:30;21648:117;;;21684:79;;:::i;:::-;21648:117;21804:69;21869:3;21860:6;21849:9;21845:22;21804:69;:::i;:::-;21797:4;21790:5;21786:16;21779:95;21555:330;20942:950;;;;:::o;21898:336::-;22000:4;22090:18;22082:6;22079:30;22076:56;;;22112:18;;:::i;:::-;22076:56;22162:4;22154:6;22150:17;22142:25;;22222:4;22216;22212:15;22204:23;;21898:336;;;:::o;22272:1005::-;22404:5;22429:106;22445:89;22527:6;22445:89;:::i;:::-;22429:106;:::i;:::-;22420:115;;22555:5;22584:6;22577:5;22570:21;22618:4;22611:5;22607:16;22600:23;;22671:4;22663:6;22659:17;22651:6;22647:30;22700:3;22692:6;22689:15;22686:122;;;22719:79;;:::i;:::-;22686:122;22834:6;22817:454;22851:6;22846:3;22843:15;22817:454;;;22933:3;22927:10;22969:18;22956:11;22953:35;22950:122;;;22991:79;;:::i;:::-;22950:122;23115:11;23107:6;23103:24;23153:73;23222:3;23210:10;23153:73;:::i;:::-;23148:3;23141:86;23256:4;23251:3;23247:14;23240:21;;22893:378;;22877:4;22872:3;22868:14;22861:21;;22817:454;;;22821:21;22410:867;;22272:1005;;;;;:::o;23315:435::-;23422:5;23471:3;23464:4;23456:6;23452:17;23448:27;23438:122;;23479:79;;:::i;:::-;23438:122;23589:6;23583:13;23614:130;23740:3;23732:6;23725:4;23717:6;23713:17;23614:130;:::i;:::-;23605:139;;23428:322;23315:435;;;;:::o;23756:120::-;23828:23;23845:5;23828:23;:::i;:::-;23821:5;23818:34;23808:62;;23866:1;23863;23856:12;23808:62;23756:120;:::o;23882:141::-;23938:5;23969:6;23963:13;23954:22;;23985:32;24011:5;23985:32;:::i;:::-;23882:141;;;;:::o;24029:143::-;24086:5;24117:6;24111:13;24102:22;;24133:33;24160:5;24133:33;:::i;:::-;24029:143;;;;:::o;24214:2624::-;24304:5;24348:6;24336:9;24331:3;24327:19;24323:32;24320:119;;;24358:79;;:::i;:::-;24320:119;24457:23;24473:6;24457:23;:::i;:::-;24448:32;;24541:1;24581:76;24653:3;24644:6;24633:9;24629:22;24581:76;:::i;:::-;24574:4;24567:5;24563:16;24556:102;24490:179;24751:2;24740:9;24736:18;24730:25;24782:18;24774:6;24771:30;24768:117;;;24804:79;;:::i;:::-;24768:117;24924:85;25005:3;24996:6;24985:9;24981:22;24924:85;:::i;:::-;24917:4;24910:5;24906:16;24899:111;24679:342;25106:2;25095:9;25091:18;25085:25;25137:18;25129:6;25126:30;25123:117;;;25159:79;;:::i;:::-;25123:117;25279:85;25360:3;25351:6;25340:9;25336:22;25279:85;:::i;:::-;25272:4;25265:5;25261:16;25254:111;25031:345;25461:2;25450:9;25446:18;25440:25;25492:18;25484:6;25481:30;25478:117;;;25514:79;;:::i;:::-;25478:117;25634:85;25715:3;25706:6;25695:9;25691:22;25634:85;:::i;:::-;25627:4;25620:5;25616:16;25609:111;25386:345;25817:3;25806:9;25802:19;25796:26;25849:18;25841:6;25838:30;25835:117;;;25871:79;;:::i;:::-;25835:117;25991:110;26097:3;26088:6;26077:9;26073:22;25991:110;:::i;:::-;25984:4;25977:5;25973:16;25966:136;25741:372;26179:3;26221:59;26276:3;26267:6;26256:9;26252:22;26221:59;:::i;:::-;26214:4;26207:5;26203:16;26196:85;26123:169;26358:3;26400:59;26455:3;26446:6;26435:9;26431:22;26400:59;:::i;:::-;26393:4;26386:5;26382:16;26375:85;26302:169;26541:3;26583:60;26639:3;26630:6;26619:9;26615:22;26583:60;:::i;:::-;26576:4;26569:5;26565:16;26558:86;26481:174;26715:3;26759:60;26815:3;26806:6;26795:9;26791:22;26759:60;:::i;:::-;26750:6;26743:5;26739:18;26732:88;26665:166;24214:2624;;;;:::o;26844:564::-;26944:6;26993:2;26981:9;26972:7;26968:23;26964:32;26961:119;;;26999:79;;:::i;:::-;26961:119;27140:1;27129:9;27125:17;27119:24;27170:18;27162:6;27159:30;27156:117;;;27192:79;;:::i;:::-;27156:117;27297:94;27383:7;27374:6;27363:9;27359:22;27297:94;:::i;:::-;27287:104;;27090:311;26844:564;;;;:::o;27414:180::-;27462:77;27459:1;27452:88;27559:4;27556:1;27549:15;27583:4;27580:1;27573:15;27600:205;27639:3;27658:19;27675:1;27658:19;:::i;:::-;27653:24;;27691:19;27708:1;27691:19;:::i;:::-;27686:24;;27733:1;27730;27726:9;27719:16;;27756:18;27751:3;27748:27;27745:53;;;27778:18;;:::i;:::-;27745:53;27600:205;;;;:::o;27811:149::-;27847:7;27887:66;27880:5;27876:78;27865:89;;27811:149;;;:::o;27966:115::-;28051:23;28068:5;28051:23;:::i;:::-;28046:3;28039:36;27966:115;;:::o;28087:218::-;28178:4;28216:2;28205:9;28201:18;28193:26;;28229:69;28295:1;28284:9;28280:17;28271:6;28229:69;:::i;:::-;28087:218;;;;:::o;28311:410::-;28351:7;28374:20;28392:1;28374:20;:::i;:::-;28369:25;;28408:20;28426:1;28408:20;:::i;:::-;28403:25;;28463:1;28460;28456:9;28485:30;28503:11;28485:30;:::i;:::-;28474:41;;28664:1;28655:7;28651:15;28648:1;28645:22;28625:1;28618:9;28598:83;28575:139;;28694:18;;:::i;:::-;28575:139;28359:362;28311:410;;;;:::o;28727:180::-;28775:77;28772:1;28765:88;28872:4;28869:1;28862:15;28896:4;28893:1;28886:15;28913:185;28953:1;28970:20;28988:1;28970:20;:::i;:::-;28965:25;;29004:20;29022:1;29004:20;:::i;:::-;28999:25;;29043:1;29033:35;;29048:18;;:::i;:::-;29033:35;29090:1;29087;29083:9;29078:14;;28913:185;;;;:::o;29104:194::-;29144:4;29164:20;29182:1;29164:20;:::i;:::-;29159:25;;29198:20;29216:1;29198:20;:::i;:::-;29193:25;;29242:1;29239;29235:9;29227:17;;29266:1;29260:4;29257:11;29254:37;;;29271:18;;:::i;:::-;29254:37;29104:194;;;;:::o;29304:328::-;29423:4;29461:2;29450:9;29446:18;29438:26;;29474:69;29540:1;29529:9;29525:17;29516:6;29474:69;:::i;:::-;29553:72;29621:2;29610:9;29606:18;29597:6;29553:72;:::i;:::-;29304:328;;;;;:::o;29638:522::-;29717:6;29766:2;29754:9;29745:7;29741:23;29737:32;29734:119;;;29772:79;;:::i;:::-;29734:119;29913:1;29902:9;29898:17;29892:24;29943:18;29935:6;29932:30;29929:117;;;29965:79;;:::i;:::-;29929:117;30070:73;30135:7;30126:6;30115:9;30111:22;30070:73;:::i;:::-;30060:83;;29863:290;29638:522;;;;:::o;30166:180::-;30214:77;30211:1;30204:88;30311:4;30308:1;30301:15;30335:4;30332:1;30325:15"},"methodIdentifiers":{"FEE_DENOMINATOR()":"d73792a9","cancelOwnershipHandover()":"54d1f13d","claimFee()":"99d32fc4","claimIncentive(uint256,uint256,address,bytes)":"8fe4f523","completeOwnershipHandover(address)":"f04e283e","createBoost(bytes)":"e21ff731","getBoost(uint256)":"13c8e2de","getBoostCount()":"5edb9eb0","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","protocolFee()":"b0e21e8a","protocolFeeReceiver()":"39a51be5","referralFee()":"84ae2bc6","registry()":"7b103999","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setClaimFee(uint256)":"2e75ab50","setProtocolFeeReceiver(address)":"46877b1a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract BoostRegistry\",\"name\":\"registry_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"protocolFeeReceiver_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"expectedInterface\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"InvalidInstance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FEE_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"boostId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"incentiveId_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claimIncentive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"createBoost\",\"outputs\":[{\"components\":[{\"internalType\":\"contract Action\",\"name\":\"action\",\"type\":\"address\"},{\"internalType\":\"contract Validator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"contract AllowList\",\"name\":\"allowList\",\"type\":\"address\"},{\"internalType\":\"contract Budget\",\"name\":\"budget\",\"type\":\"address\"},{\"internalType\":\"contract Incentive[]\",\"name\":\"incentives\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralFee\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxParticipants\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"struct BoostLib.Boost\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getBoost\",\"outputs\":[{\"components\":[{\"internalType\":\"contract Action\",\"name\":\"action\",\"type\":\"address\"},{\"internalType\":\"contract Validator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"contract AllowList\",\"name\":\"allowList\",\"type\":\"address\"},{\"internalType\":\"contract Budget\",\"name\":\"budget\",\"type\":\"address\"},{\"internalType\":\"contract Incentive[]\",\"name\":\"incentives\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralFee\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxParticipants\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"struct BoostLib.Boost\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBoostCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"referralFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract BoostRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimFee_\",\"type\":\"uint256\"}],\"name\":\"setClaimFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protocolFeeReceiver_\",\"type\":\"address\"}],\"name\":\"setProtocolFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claimIncentive(uint256,uint256,address,bytes)\":{\"params\":{\"boostId_\":\"The ID of the Boost\",\"data_\":\"The data for the claim\",\"incentiveId_\":\"The ID of the Incentive\",\"referrer_\":\"The address of the referrer (if any)\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"createBoost(bytes)\":{\"details\":\"The data is expected to: - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol) - properly decode to the following types (in order): - `Budget` to be used for the Boost - `Target` for the action - `Target` for the validator which is expected to be one of the following: - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\\\"SignerValidator\\\")`), along with the parameters for its initializer; - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size); - The zero address along with no parameter data if validation is implemented by the action; - `Target` for the allowList - `Target[]` for the incentives - `uint256` for the protocolFee (added to the base protocol fee) - `uint256` for the referralFee (added to the base referral fee) - `uint256` for the maxParticipants - `address` for the owner of the Boost\",\"params\":{\"data_\":\"The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\"}},\"getBoost(uint256)\":{\"params\":{\"index\":\"The index of the Boost\"},\"returns\":{\"_0\":\"The Boost at the specified index\"}},\"getBoostCount()\":{\"returns\":{\"_0\":\"The number of Boosts\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setClaimFee(uint256)\":{\"details\":\"This function is only callable by the owner\",\"params\":{\"claimFee_\":\"The new claim fee (in wei)\"}},\"setProtocolFeeReceiver(address)\":{\"details\":\"This function is only callable by the owner\",\"params\":{\"protocolFeeReceiver_\":\"The new protocol fee receiver address\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Core\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInstance(bytes4,address)\":[{\"notice\":\"Thrown when a non-conforming instance for a given type is encountered\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"FEE_DENOMINATOR()\":{\"notice\":\"The fee denominator (basis points, i.e. 10000 == 100%)\"},\"claimFee()\":{\"notice\":\"The claim fee (in wei)\"},\"claimIncentive(uint256,uint256,address,bytes)\":{\"notice\":\"Claim an incentive for a Boost\"},\"constructor\":{\"notice\":\"Constructor to initialize the owner\"},\"createBoost(bytes)\":{\"notice\":\"Create a new Boost\"},\"getBoost(uint256)\":{\"notice\":\"Get a Boost by index\"},\"getBoostCount()\":{\"notice\":\"Get the number of Boosts\"},\"protocolFee()\":{\"notice\":\"The base protocol fee (in bps)\"},\"protocolFeeReceiver()\":{\"notice\":\"The protocol fee receiver\"},\"referralFee()\":{\"notice\":\"The base referral fee (in bps)\"},\"registry()\":{\"notice\":\"The BoostRegistry contract\"},\"setClaimFee(uint256)\":{\"notice\":\"Set the claim fee\"},\"setProtocolFeeReceiver(address)\":{\"notice\":\"Set the protocol fee receiver address\"}},\"notice\":\"The core contract for the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BoostCore.sol\":\"BoostCore\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/BoostCore.sol\":{\"keccak256\":\"0x53488a68a46eb54d183a480d19ecdd2eb9157d1e61b624619b7c9661217a7eb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d4d866f239b0c612665e236db5d20fbf31d715bedabae5491c983347b6707e31\",\"dweb:/ipfs/QmYVZwma5mPP3aga4oooK3ky1nxwzTqiMbV6ShUhL5rH7i\"]},\"contracts/BoostRegistry.sol\":{\"keccak256\":\"0xc9f28f67a2b9d1e8cfe76981011908b38c63538ee0a27405c58f2e337609d1ff\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53859966207b2ba00858ef705409506458281e37dfeaf7d887f7d9ebe37e08c6\",\"dweb:/ipfs/QmRoAmJnvgG3J8UQqRGEdNdBc1fbWfELqaDemEUx3roPCS\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/BoostRegistry.sol":{"BoostRegistry":{"abi":[{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"name":"AlreadyRegistered","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"NotCloneable","type":"error"},{"inputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"identifier","type":"bytes32"},{"indexed":false,"internalType":"address","name":"baseImplementation","type":"address"},{"indexed":false,"internalType":"contract Cloneable","name":"deployedInstance","type":"address"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"identifier","type":"bytes32"},{"indexed":false,"internalType":"address","name":"implementation","type":"address"}],"name":"Registered","type":"event"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"address","name":"base_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"deployClone","outputs":[{"internalType":"contract Cloneable","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"identifier_","type":"bytes32"}],"name":"getBaseImplementation","outputs":[{"internalType":"contract Cloneable","name":"implementation","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"identifier_","type":"bytes32"}],"name":"getClone","outputs":[{"components":[{"internalType":"enum BoostRegistry.RegistryType","name":"baseType","type":"uint8"},{"internalType":"contract Cloneable","name":"instance","type":"address"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct BoostRegistry.Clone","name":"clone","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"address","name":"base_","type":"address"},{"internalType":"address","name":"deployer_","type":"address"},{"internalType":"string","name":"name_","type":"string"}],"name":"getCloneIdentifier","outputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"deployer_","type":"address"}],"name":"getClones","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"string","name":"name_","type":"string"}],"name":"getIdentifier","outputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"address","name":"implementation_","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50611b4e8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f42606236000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517fd3dd30120000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea264697066735822122015a5554f9dc3df658e598ffccd93a6cb416716d42755b52f24475168ea0d9fbb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4E DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xACC83FC8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xACC83FC8 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0xD12DD481 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1668792 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xFD97064B EQ PUSH2 0x1C6 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x3AAF1626 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x792AA01C EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x83F38859 EQ PUSH2 0x11A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB1 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCF SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x10A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x471 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0x11D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x504 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15F SWAP2 SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x171 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x194 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH2 0x5EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH2 0x818 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x146E JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x376 SWAP1 PUSH2 0x153E 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 0x3A2 SWAP1 PUSH2 0x153E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x46C JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4E4 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5A7 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x5E3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x15EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x648 SWAP2 SWAP1 PUSH2 0x1638 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x687 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH2 0x6C8 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD3DD301200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D4 DUP7 DUP7 DUP7 PUSH2 0x818 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x777 JUMPI DUP6 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76E SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x7D9 JUMPI PUSH2 0x7D8 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x660D31DF25C96B8A337FCF12A56B7363E5A997639DB853D5DBAEC7C01F31BD80 DUP6 PUSH1 0x40 MLOAD PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x84B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x830 SWAP3 SWAP2 SWAP1 PUSH2 0x1704 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x873 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH2 0x91B DUP8 DUP8 DUP8 DUP8 CALLER PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x89B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC4E SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x92B DUP9 DUP9 CALLER DUP10 DUP10 PUSH2 0x5AC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9D2 JUMPI DUP8 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C9 SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA51 JUMPI PUSH2 0xA50 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xB0E JUMPI PUSH2 0xB0D PUSH2 0xECA JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xBB4 SWAP2 SWAP1 PUSH2 0x1965 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP9 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x2348FCDB9847B17A183E53AA32C0C5C76AFDEF8FCB14BB51F216C6611701AB1A DUP10 DUP6 PUSH1 0x40 MLOAD PUSH2 0xBFD SWAP3 SWAP2 SWAP1 PUSH2 0x1A34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC30 SWAP3 SWAP2 SWAP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC78 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCE7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB3 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCF3 PUSH0 DUP5 DUP5 PUSH2 0xCFB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP3 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE DUP2 PUSH1 0x35 PUSH1 0xC DUP7 CREATE2 SWAP1 POP DUP1 PUSH2 0xD43 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6C JUMPI PUSH2 0xD6B PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDED DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP2 EQ PUSH2 0xDF7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE08 DUP2 PUSH2 0xDE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE23 JUMPI PUSH2 0xE22 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE30 DUP5 DUP3 DUP6 ADD PUSH2 0xDFA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE66 PUSH0 DUP4 ADD DUP5 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE7E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP2 EQ PUSH2 0xE88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE99 DUP2 PUSH2 0xE75 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEB4 JUMPI PUSH2 0xEB3 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEC1 DUP5 DUP3 DUP6 ADD PUSH2 0xE8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xECA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0xF18 DUP3 PUSH2 0xEF7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF27 DUP3 PUSH2 0xF0B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF37 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF7F PUSH2 0xF7A PUSH2 0xF75 DUP5 PUSH2 0xF3D JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF90 DUP3 PUSH2 0xF65 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFA1 DUP3 PUSH2 0xF86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB1 DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFC1 DUP3 PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD1 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1019 DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x1023 DUP2 DUP6 PUSH2 0xFE1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1033 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x103C DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x105C PUSH0 DUP7 ADD DUP3 PUSH2 0xF2E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x106F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xFA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1082 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xFC8 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x109A DUP3 DUP3 PUSH2 0x100F JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10BF DUP2 DUP5 PUSH2 0x1047 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10D0 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10EB DUP2 PUSH2 0x10C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1106 JUMPI PUSH2 0x1105 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1113 DUP5 DUP3 DUP6 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x115F DUP4 DUP4 PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1126 JUMP JUMPDEST SWAP4 POP PUSH2 0x1196 DUP4 PUSH2 0x1136 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11C6 JUMPI DUP2 MLOAD PUSH2 0x11AD DUP9 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP8 POP PUSH2 0x11B8 DUP4 PUSH2 0x116B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1199 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11EB DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11FC DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1215 PUSH0 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1238 DUP2 PUSH2 0x121B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x125F JUMPI PUSH2 0x125E PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH2 0x127B PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH2 0x1297 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B7 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12C5 DUP9 DUP3 DUP10 ADD PUSH2 0x122A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x12D6 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x12E7 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1308 JUMPI PUSH2 0x1307 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1314 DUP9 DUP3 DUP10 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x132C DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1345 PUSH0 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1363 JUMPI PUSH2 0x1362 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1370 DUP8 DUP3 DUP9 ADD PUSH2 0x122A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1391 JUMPI PUSH2 0x1390 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x139D DUP8 DUP3 DUP9 ADD PUSH2 0x124A JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x13B0 DUP8 DUP3 DUP9 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D2 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13E0 DUP7 DUP3 DUP8 ADD PUSH2 0x122A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x140D DUP7 DUP3 DUP8 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x142E JUMPI PUSH2 0x142D PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144A PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1466 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1487 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1495 DUP10 DUP3 DUP11 ADD PUSH2 0x122A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x14A6 DUP10 DUP3 DUP11 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP10 DUP3 DUP11 ADD PUSH2 0x124A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH2 0x14F5 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1502 DUP10 DUP3 DUP11 ADD PUSH2 0x1419 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1555 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1568 JUMPI PUSH2 0x1567 PUSH2 0x1511 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1584 DUP3 PUSH2 0x156E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1595 DUP3 PUSH2 0x157A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15AD PUSH2 0x15A8 DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x158B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D6 DUP4 DUP6 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x15E3 DUP4 DUP6 DUP5 PUSH2 0x15BD JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15FA DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x160A DUP3 DUP7 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x161B DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x164B PUSH0 DUP4 ADD DUP5 PUSH2 0x1629 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165A DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP2 EQ PUSH2 0x1664 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1675 DUP2 PUSH2 0x1651 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1690 JUMPI PUSH2 0x168F PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169D DUP5 DUP3 DUP6 ADD PUSH2 0x1667 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16AF DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C8 PUSH0 DUP4 ADD DUP5 PUSH2 0x16A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F0 PUSH0 DUP4 ADD DUP6 PUSH2 0x16CE JUMP JUMPDEST PUSH2 0x16FD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1710 DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 DUP3 PUSH2 0x171C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x174A PUSH2 0x1745 DUP3 PUSH2 0xF1D JUMP JUMPDEST PUSH2 0x1728 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x175B DUP3 DUP9 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x176B DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x177C DUP3 DUP6 DUP8 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP PUSH2 0x1788 DUP3 DUP5 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1824 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x17E9 JUMP JUMPDEST PUSH2 0x182E DUP7 DUP4 PUSH2 0x17E9 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1869 PUSH2 0x1864 PUSH2 0x185F DUP5 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x1846 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1882 DUP4 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x1896 PUSH2 0x188E DUP3 PUSH2 0x1870 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x17F5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x18AA PUSH2 0x189E JUMP JUMPDEST PUSH2 0x18B5 DUP2 DUP5 DUP5 PUSH2 0x1879 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18D8 JUMPI PUSH2 0x18CD PUSH0 DUP3 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x18BB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x18EE DUP2 PUSH2 0x17C8 JUMP JUMPDEST PUSH2 0x18F7 DUP5 PUSH2 0x17DA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1906 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x191A PUSH2 0x1912 DUP6 PUSH2 0x17DA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x18BA JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x193D PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1922 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1955 DUP4 DUP4 PUSH2 0x192E JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x196E DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1987 JUMPI PUSH2 0x1986 PUSH2 0x179B JUMP JUMPDEST JUMPDEST PUSH2 0x1991 DUP3 SLOAD PUSH2 0x153E JUMP JUMPDEST PUSH2 0x199C DUP3 DUP3 DUP6 PUSH2 0x18DC JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19CD JUMPI PUSH0 DUP5 ISZERO PUSH2 0x19BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x19C5 DUP6 DUP3 PUSH2 0x194A JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1A2C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x19DB DUP7 PUSH2 0x17C8 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A02 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 0x19DD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1A1F JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1A1B PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x192E 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 PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A47 PUSH0 DUP4 ADD DUP6 PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x1A54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A70 DUP3 PUSH2 0xE6C JUMP JUMPDEST PUSH2 0x1A5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A86 DUP3 DUP6 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x1A96 DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ACA DUP3 PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0x1AD4 DUP2 DUP6 PUSH2 0x1AB0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1AE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x1AED DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B10 DUP2 DUP5 PUSH2 0x1AC0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO 0xA5 SSTORE 0x4F SWAP14 0xC3 0xDF PUSH6 0x8E598FFCCD93 0xA6 0xCB COINBASE PUSH8 0x16D42755B52F2447 MLOAD PUSH9 0xEA0D9FBB64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"682:7550:30:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_getIdentifier_12679":{"entryPoint":3100,"id":12679,"parameterSlots":2,"returnSlots":1},"@cloneAndInitialize_17651":{"entryPoint":3150,"id":17651,"parameterSlots":3,"returnSlots":1},"@cloneDeterministic_9296":{"entryPoint":3303,"id":9296,"parameterSlots":2,"returnSlots":1},"@cloneDeterministic_9310":{"entryPoint":3323,"id":9310,"parameterSlots":3,"returnSlots":1},"@deployClone_12534":{"entryPoint":2132,"id":12534,"parameterSlots":6,"returnSlots":1},"@getBaseImplementation_12564":{"entryPoint":1284,"id":12564,"parameterSlots":1,"returnSlots":1},"@getCloneIdentifier_12637":{"entryPoint":1452,"id":12637,"parameterSlots":5,"returnSlots":1},"@getClone_12595":{"entryPoint":607,"id":12595,"parameterSlots":1,"returnSlots":1},"@getClones_12609":{"entryPoint":1137,"id":12609,"parameterSlots":1,"returnSlots":1},"@getIdentifier_12659":{"entryPoint":2072,"id":12659,"parameterSlots":3,"returnSlots":1},"@register_12441":{"entryPoint":1518,"id":12441,"parameterSlots":4,"returnSlots":0},"@supportsInterface_2844":{"entryPoint":502,"id":2844,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":5735,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":5145,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_enum$_RegistryType_$12294":{"entryPoint":4650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_calldata_ptr":{"entryPoint":4682,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4337,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5755,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":3743,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3598,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_addresst_string_calldata_ptr":{"entryPoint":4767,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_string_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":5230,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptr":{"entryPoint":5052,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptrt_address":{"entryPoint":4939,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32":{"entryPoint":4436,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":4040,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5798,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":5532,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":4471,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3652,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32":{"entryPoint":4421,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":4899,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":6756,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":5673,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6848,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Cloneable_$17720_to_t_address":{"entryPoint":4008,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack":{"entryPoint":4595,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8":{"entryPoint":3886,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack":{"entryPoint":5838,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack":{"entryPoint":5945,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5579,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr":{"entryPoint":4111,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack":{"entryPoint":4167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5615,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":5968,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":6779,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5892,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5813,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_contract$_Cloneable_$17720__to_t_address_t_address__fromStack_reversed":{"entryPoint":6708,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":4563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":4914,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":5688,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6904,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Cloneable_$17720__to_t_address__fromStack_reversed":{"entryPoint":4610,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed":{"entryPoint":5853,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_Clone_$12306_memory_ptr__to_t_struct$_Clone_$12306_memory_ptr__fromStack_reversed":{"entryPoint":4263,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4406,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":6088,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4380,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":6822,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":4055,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4459,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":4390,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":6832,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr":{"entryPoint":4065,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5555,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":6364,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":4023,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3641,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":3692,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3513,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_RegistryType_$12294":{"entryPoint":3851,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3901,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6214,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":6330,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_Cloneable_$17720_to_t_address":{"entryPoint":3991,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_RegistryType_$12294_to_t_uint8":{"entryPoint":3869,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3974,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":3941,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":6223,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":6501,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5565,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4081,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":6106,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":5438,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":6474,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":3932,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":5515,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_bytes32":{"entryPoint":6747,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":5498,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint8":{"entryPoint":5928,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":6446,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x21":{"entryPoint":3786,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":5393,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6043,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":6256,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":4674,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4670,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":4678,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3509,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3505,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4095,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_248":{"entryPoint":5916,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":5486,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":6121,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":6434,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":6306,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":6133,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":6265,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_RegistryType_$12294":{"entryPoint":3831,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4295,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":5713,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3701,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3556,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_RegistryType_$12294":{"entryPoint":4635,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":6302,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:27467:53","nodeType":"YulBlock","src":"0:27467:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1644:79:53","nodeType":"YulBlock","src":"1644:79:53","statements":[{"body":{"nativeSrc":"1701:16:53","nodeType":"YulBlock","src":"1701:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1710:1:53","nodeType":"YulLiteral","src":"1710:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1713:1:53","nodeType":"YulLiteral","src":"1713:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1703:6:53","nodeType":"YulIdentifier","src":"1703:6:53"},"nativeSrc":"1703:12:53","nodeType":"YulFunctionCall","src":"1703:12:53"},"nativeSrc":"1703:12:53","nodeType":"YulExpressionStatement","src":"1703:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1667:5:53","nodeType":"YulIdentifier","src":"1667:5:53"},{"arguments":[{"name":"value","nativeSrc":"1692:5:53","nodeType":"YulIdentifier","src":"1692:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"1674:17:53","nodeType":"YulIdentifier","src":"1674:17:53"},"nativeSrc":"1674:24:53","nodeType":"YulFunctionCall","src":"1674:24:53"}],"functionName":{"name":"eq","nativeSrc":"1664:2:53","nodeType":"YulIdentifier","src":"1664:2:53"},"nativeSrc":"1664:35:53","nodeType":"YulFunctionCall","src":"1664:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1657:6:53","nodeType":"YulIdentifier","src":"1657:6:53"},"nativeSrc":"1657:43:53","nodeType":"YulFunctionCall","src":"1657:43:53"},"nativeSrc":"1654:63:53","nodeType":"YulIf","src":"1654:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"1601:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1637:5:53","nodeType":"YulTypedName","src":"1637:5:53","type":""}],"src":"1601:122:53"},{"body":{"nativeSrc":"1781:87:53","nodeType":"YulBlock","src":"1781:87:53","statements":[{"nativeSrc":"1791:29:53","nodeType":"YulAssignment","src":"1791:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1813:6:53","nodeType":"YulIdentifier","src":"1813:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1800:12:53","nodeType":"YulIdentifier","src":"1800:12:53"},"nativeSrc":"1800:20:53","nodeType":"YulFunctionCall","src":"1800:20:53"},"variableNames":[{"name":"value","nativeSrc":"1791:5:53","nodeType":"YulIdentifier","src":"1791:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1856:5:53","nodeType":"YulIdentifier","src":"1856:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"1829:26:53","nodeType":"YulIdentifier","src":"1829:26:53"},"nativeSrc":"1829:33:53","nodeType":"YulFunctionCall","src":"1829:33:53"},"nativeSrc":"1829:33:53","nodeType":"YulExpressionStatement","src":"1829:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"1729:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1759:6:53","nodeType":"YulTypedName","src":"1759:6:53","type":""},{"name":"end","nativeSrc":"1767:3:53","nodeType":"YulTypedName","src":"1767:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1775:5:53","nodeType":"YulTypedName","src":"1775:5:53","type":""}],"src":"1729:139:53"},{"body":{"nativeSrc":"1940:263:53","nodeType":"YulBlock","src":"1940:263:53","statements":[{"body":{"nativeSrc":"1986:83:53","nodeType":"YulBlock","src":"1986:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1988:77:53","nodeType":"YulIdentifier","src":"1988:77:53"},"nativeSrc":"1988:79:53","nodeType":"YulFunctionCall","src":"1988:79:53"},"nativeSrc":"1988:79:53","nodeType":"YulExpressionStatement","src":"1988:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1961:7:53","nodeType":"YulIdentifier","src":"1961:7:53"},{"name":"headStart","nativeSrc":"1970:9:53","nodeType":"YulIdentifier","src":"1970:9:53"}],"functionName":{"name":"sub","nativeSrc":"1957:3:53","nodeType":"YulIdentifier","src":"1957:3:53"},"nativeSrc":"1957:23:53","nodeType":"YulFunctionCall","src":"1957:23:53"},{"kind":"number","nativeSrc":"1982:2:53","nodeType":"YulLiteral","src":"1982:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1953:3:53","nodeType":"YulIdentifier","src":"1953:3:53"},"nativeSrc":"1953:32:53","nodeType":"YulFunctionCall","src":"1953:32:53"},"nativeSrc":"1950:119:53","nodeType":"YulIf","src":"1950:119:53"},{"nativeSrc":"2079:117:53","nodeType":"YulBlock","src":"2079:117:53","statements":[{"nativeSrc":"2094:15:53","nodeType":"YulVariableDeclaration","src":"2094:15:53","value":{"kind":"number","nativeSrc":"2108:1:53","nodeType":"YulLiteral","src":"2108:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2098:6:53","nodeType":"YulTypedName","src":"2098:6:53","type":""}]},{"nativeSrc":"2123:63:53","nodeType":"YulAssignment","src":"2123:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2158:9:53","nodeType":"YulIdentifier","src":"2158:9:53"},{"name":"offset","nativeSrc":"2169:6:53","nodeType":"YulIdentifier","src":"2169:6:53"}],"functionName":{"name":"add","nativeSrc":"2154:3:53","nodeType":"YulIdentifier","src":"2154:3:53"},"nativeSrc":"2154:22:53","nodeType":"YulFunctionCall","src":"2154:22:53"},{"name":"dataEnd","nativeSrc":"2178:7:53","nodeType":"YulIdentifier","src":"2178:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2133:20:53","nodeType":"YulIdentifier","src":"2133:20:53"},"nativeSrc":"2133:53:53","nodeType":"YulFunctionCall","src":"2133:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:53","nodeType":"YulIdentifier","src":"2123:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1874:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1910:9:53","nodeType":"YulTypedName","src":"1910:9:53","type":""},{"name":"dataEnd","nativeSrc":"1921:7:53","nodeType":"YulTypedName","src":"1921:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1933:6:53","nodeType":"YulTypedName","src":"1933:6:53","type":""}],"src":"1874:329:53"},{"body":{"nativeSrc":"2237:152:53","nodeType":"YulBlock","src":"2237:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2254:1:53","nodeType":"YulLiteral","src":"2254:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2257:77:53","nodeType":"YulLiteral","src":"2257:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2247:6:53","nodeType":"YulIdentifier","src":"2247:6:53"},"nativeSrc":"2247:88:53","nodeType":"YulFunctionCall","src":"2247:88:53"},"nativeSrc":"2247:88:53","nodeType":"YulExpressionStatement","src":"2247:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2351:1:53","nodeType":"YulLiteral","src":"2351:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"2354:4:53","nodeType":"YulLiteral","src":"2354:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"2344:6:53","nodeType":"YulIdentifier","src":"2344:6:53"},"nativeSrc":"2344:15:53","nodeType":"YulFunctionCall","src":"2344:15:53"},"nativeSrc":"2344:15:53","nodeType":"YulExpressionStatement","src":"2344:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2375:1:53","nodeType":"YulLiteral","src":"2375:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2378:4:53","nodeType":"YulLiteral","src":"2378:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2368:6:53","nodeType":"YulIdentifier","src":"2368:6:53"},"nativeSrc":"2368:15:53","nodeType":"YulFunctionCall","src":"2368:15:53"},"nativeSrc":"2368:15:53","nodeType":"YulExpressionStatement","src":"2368:15:53"}]},"name":"panic_error_0x21","nativeSrc":"2209:180:53","nodeType":"YulFunctionDefinition","src":"2209:180:53"},{"body":{"nativeSrc":"2456:62:53","nodeType":"YulBlock","src":"2456:62:53","statements":[{"body":{"nativeSrc":"2490:22:53","nodeType":"YulBlock","src":"2490:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"2492:16:53","nodeType":"YulIdentifier","src":"2492:16:53"},"nativeSrc":"2492:18:53","nodeType":"YulFunctionCall","src":"2492:18:53"},"nativeSrc":"2492:18:53","nodeType":"YulExpressionStatement","src":"2492:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2479:5:53","nodeType":"YulIdentifier","src":"2479:5:53"},{"kind":"number","nativeSrc":"2486:1:53","nodeType":"YulLiteral","src":"2486:1:53","type":"","value":"5"}],"functionName":{"name":"lt","nativeSrc":"2476:2:53","nodeType":"YulIdentifier","src":"2476:2:53"},"nativeSrc":"2476:12:53","nodeType":"YulFunctionCall","src":"2476:12:53"}],"functionName":{"name":"iszero","nativeSrc":"2469:6:53","nodeType":"YulIdentifier","src":"2469:6:53"},"nativeSrc":"2469:20:53","nodeType":"YulFunctionCall","src":"2469:20:53"},"nativeSrc":"2466:46:53","nodeType":"YulIf","src":"2466:46:53"}]},"name":"validator_assert_t_enum$_RegistryType_$12294","nativeSrc":"2395:123:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2449:5:53","nodeType":"YulTypedName","src":"2449:5:53","type":""}],"src":"2395:123:53"},{"body":{"nativeSrc":"2587:84:53","nodeType":"YulBlock","src":"2587:84:53","statements":[{"nativeSrc":"2597:16:53","nodeType":"YulAssignment","src":"2597:16:53","value":{"name":"value","nativeSrc":"2608:5:53","nodeType":"YulIdentifier","src":"2608:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2597:7:53","nodeType":"YulIdentifier","src":"2597:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2659:5:53","nodeType":"YulIdentifier","src":"2659:5:53"}],"functionName":{"name":"validator_assert_t_enum$_RegistryType_$12294","nativeSrc":"2614:44:53","nodeType":"YulIdentifier","src":"2614:44:53"},"nativeSrc":"2614:51:53","nodeType":"YulFunctionCall","src":"2614:51:53"},"nativeSrc":"2614:51:53","nodeType":"YulExpressionStatement","src":"2614:51:53"}]},"name":"cleanup_t_enum$_RegistryType_$12294","nativeSrc":"2524:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2569:5:53","nodeType":"YulTypedName","src":"2569:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2579:7:53","nodeType":"YulTypedName","src":"2579:7:53","type":""}],"src":"2524:147:53"},{"body":{"nativeSrc":"2753:71:53","nodeType":"YulBlock","src":"2753:71:53","statements":[{"nativeSrc":"2763:55:53","nodeType":"YulAssignment","src":"2763:55:53","value":{"arguments":[{"name":"value","nativeSrc":"2812:5:53","nodeType":"YulIdentifier","src":"2812:5:53"}],"functionName":{"name":"cleanup_t_enum$_RegistryType_$12294","nativeSrc":"2776:35:53","nodeType":"YulIdentifier","src":"2776:35:53"},"nativeSrc":"2776:42:53","nodeType":"YulFunctionCall","src":"2776:42:53"},"variableNames":[{"name":"converted","nativeSrc":"2763:9:53","nodeType":"YulIdentifier","src":"2763:9:53"}]}]},"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"2677:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2733:5:53","nodeType":"YulTypedName","src":"2733:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2743:9:53","nodeType":"YulTypedName","src":"2743:9:53","type":""}],"src":"2677:147:53"},{"body":{"nativeSrc":"2901:82:53","nodeType":"YulBlock","src":"2901:82:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2918:3:53","nodeType":"YulIdentifier","src":"2918:3:53"},{"arguments":[{"name":"value","nativeSrc":"2970:5:53","nodeType":"YulIdentifier","src":"2970:5:53"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"2923:46:53","nodeType":"YulIdentifier","src":"2923:46:53"},"nativeSrc":"2923:53:53","nodeType":"YulFunctionCall","src":"2923:53:53"}],"functionName":{"name":"mstore","nativeSrc":"2911:6:53","nodeType":"YulIdentifier","src":"2911:6:53"},"nativeSrc":"2911:66:53","nodeType":"YulFunctionCall","src":"2911:66:53"},"nativeSrc":"2911:66:53","nodeType":"YulExpressionStatement","src":"2911:66:53"}]},"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"2830:153:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2889:5:53","nodeType":"YulTypedName","src":"2889:5:53","type":""},{"name":"pos","nativeSrc":"2896:3:53","nodeType":"YulTypedName","src":"2896:3:53","type":""}],"src":"2830:153:53"},{"body":{"nativeSrc":"3034:81:53","nodeType":"YulBlock","src":"3034:81:53","statements":[{"nativeSrc":"3044:65:53","nodeType":"YulAssignment","src":"3044:65:53","value":{"arguments":[{"name":"value","nativeSrc":"3059:5:53","nodeType":"YulIdentifier","src":"3059:5:53"},{"kind":"number","nativeSrc":"3066:42:53","nodeType":"YulLiteral","src":"3066:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3055:3:53","nodeType":"YulIdentifier","src":"3055:3:53"},"nativeSrc":"3055:54:53","nodeType":"YulFunctionCall","src":"3055:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3044:7:53","nodeType":"YulIdentifier","src":"3044:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2989:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3016:5:53","nodeType":"YulTypedName","src":"3016:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3026:7:53","nodeType":"YulTypedName","src":"3026:7:53","type":""}],"src":"2989:126:53"},{"body":{"nativeSrc":"3153:28:53","nodeType":"YulBlock","src":"3153:28:53","statements":[{"nativeSrc":"3163:12:53","nodeType":"YulAssignment","src":"3163:12:53","value":{"name":"value","nativeSrc":"3170:5:53","nodeType":"YulIdentifier","src":"3170:5:53"},"variableNames":[{"name":"ret","nativeSrc":"3163:3:53","nodeType":"YulIdentifier","src":"3163:3:53"}]}]},"name":"identity","nativeSrc":"3121:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3139:5:53","nodeType":"YulTypedName","src":"3139:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"3149:3:53","nodeType":"YulTypedName","src":"3149:3:53","type":""}],"src":"3121:60:53"},{"body":{"nativeSrc":"3247:82:53","nodeType":"YulBlock","src":"3247:82:53","statements":[{"nativeSrc":"3257:66:53","nodeType":"YulAssignment","src":"3257:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3315:5:53","nodeType":"YulIdentifier","src":"3315:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3297:17:53","nodeType":"YulIdentifier","src":"3297:17:53"},"nativeSrc":"3297:24:53","nodeType":"YulFunctionCall","src":"3297:24:53"}],"functionName":{"name":"identity","nativeSrc":"3288:8:53","nodeType":"YulIdentifier","src":"3288:8:53"},"nativeSrc":"3288:34:53","nodeType":"YulFunctionCall","src":"3288:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3270:17:53","nodeType":"YulIdentifier","src":"3270:17:53"},"nativeSrc":"3270:53:53","nodeType":"YulFunctionCall","src":"3270:53:53"},"variableNames":[{"name":"converted","nativeSrc":"3257:9:53","nodeType":"YulIdentifier","src":"3257:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3187:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3227:5:53","nodeType":"YulTypedName","src":"3227:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3237:9:53","nodeType":"YulTypedName","src":"3237:9:53","type":""}],"src":"3187:142:53"},{"body":{"nativeSrc":"3395:66:53","nodeType":"YulBlock","src":"3395:66:53","statements":[{"nativeSrc":"3405:50:53","nodeType":"YulAssignment","src":"3405:50:53","value":{"arguments":[{"name":"value","nativeSrc":"3449:5:53","nodeType":"YulIdentifier","src":"3449:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3418:30:53","nodeType":"YulIdentifier","src":"3418:30:53"},"nativeSrc":"3418:37:53","nodeType":"YulFunctionCall","src":"3418:37:53"},"variableNames":[{"name":"converted","nativeSrc":"3405:9:53","nodeType":"YulIdentifier","src":"3405:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"3335:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3375:5:53","nodeType":"YulTypedName","src":"3375:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3385:9:53","nodeType":"YulTypedName","src":"3385:9:53","type":""}],"src":"3335:126:53"},{"body":{"nativeSrc":"3546:66:53","nodeType":"YulBlock","src":"3546:66:53","statements":[{"nativeSrc":"3556:50:53","nodeType":"YulAssignment","src":"3556:50:53","value":{"arguments":[{"name":"value","nativeSrc":"3600:5:53","nodeType":"YulIdentifier","src":"3600:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3569:30:53","nodeType":"YulIdentifier","src":"3569:30:53"},"nativeSrc":"3569:37:53","nodeType":"YulFunctionCall","src":"3569:37:53"},"variableNames":[{"name":"converted","nativeSrc":"3556:9:53","nodeType":"YulIdentifier","src":"3556:9:53"}]}]},"name":"convert_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"3467:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3526:5:53","nodeType":"YulTypedName","src":"3526:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3536:9:53","nodeType":"YulTypedName","src":"3536:9:53","type":""}],"src":"3467:145:53"},{"body":{"nativeSrc":"3692:85:53","nodeType":"YulBlock","src":"3692:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3709:3:53","nodeType":"YulIdentifier","src":"3709:3:53"},{"arguments":[{"name":"value","nativeSrc":"3764:5:53","nodeType":"YulIdentifier","src":"3764:5:53"}],"functionName":{"name":"convert_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"3714:49:53","nodeType":"YulIdentifier","src":"3714:49:53"},"nativeSrc":"3714:56:53","nodeType":"YulFunctionCall","src":"3714:56:53"}],"functionName":{"name":"mstore","nativeSrc":"3702:6:53","nodeType":"YulIdentifier","src":"3702:6:53"},"nativeSrc":"3702:69:53","nodeType":"YulFunctionCall","src":"3702:69:53"},"nativeSrc":"3702:69:53","nodeType":"YulExpressionStatement","src":"3702:69:53"}]},"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"3618:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3680:5:53","nodeType":"YulTypedName","src":"3680:5:53","type":""},{"name":"pos","nativeSrc":"3687:3:53","nodeType":"YulTypedName","src":"3687:3:53","type":""}],"src":"3618:159:53"},{"body":{"nativeSrc":"3828:51:53","nodeType":"YulBlock","src":"3828:51:53","statements":[{"nativeSrc":"3838:35:53","nodeType":"YulAssignment","src":"3838:35:53","value":{"arguments":[{"name":"value","nativeSrc":"3867:5:53","nodeType":"YulIdentifier","src":"3867:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3849:17:53","nodeType":"YulIdentifier","src":"3849:17:53"},"nativeSrc":"3849:24:53","nodeType":"YulFunctionCall","src":"3849:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3838:7:53","nodeType":"YulIdentifier","src":"3838:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"3783:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3810:5:53","nodeType":"YulTypedName","src":"3810:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3820:7:53","nodeType":"YulTypedName","src":"3820:7:53","type":""}],"src":"3783:96:53"},{"body":{"nativeSrc":"3940:53:53","nodeType":"YulBlock","src":"3940:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3957:3:53","nodeType":"YulIdentifier","src":"3957:3:53"},{"arguments":[{"name":"value","nativeSrc":"3980:5:53","nodeType":"YulIdentifier","src":"3980:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3962:17:53","nodeType":"YulIdentifier","src":"3962:17:53"},"nativeSrc":"3962:24:53","nodeType":"YulFunctionCall","src":"3962:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3950:6:53","nodeType":"YulIdentifier","src":"3950:6:53"},"nativeSrc":"3950:37:53","nodeType":"YulFunctionCall","src":"3950:37:53"},"nativeSrc":"3950:37:53","nodeType":"YulExpressionStatement","src":"3950:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"3885:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3928:5:53","nodeType":"YulTypedName","src":"3928:5:53","type":""},{"name":"pos","nativeSrc":"3935:3:53","nodeType":"YulTypedName","src":"3935:3:53","type":""}],"src":"3885:108:53"},{"body":{"nativeSrc":"4058:40:53","nodeType":"YulBlock","src":"4058:40:53","statements":[{"nativeSrc":"4069:22:53","nodeType":"YulAssignment","src":"4069:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4085:5:53","nodeType":"YulIdentifier","src":"4085:5:53"}],"functionName":{"name":"mload","nativeSrc":"4079:5:53","nodeType":"YulIdentifier","src":"4079:5:53"},"nativeSrc":"4079:12:53","nodeType":"YulFunctionCall","src":"4079:12:53"},"variableNames":[{"name":"length","nativeSrc":"4069:6:53","nodeType":"YulIdentifier","src":"4069:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3999:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4041:5:53","nodeType":"YulTypedName","src":"4041:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4051:6:53","nodeType":"YulTypedName","src":"4051:6:53","type":""}],"src":"3999:99:53"},{"body":{"nativeSrc":"4190:73:53","nodeType":"YulBlock","src":"4190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4207:3:53","nodeType":"YulIdentifier","src":"4207:3:53"},{"name":"length","nativeSrc":"4212:6:53","nodeType":"YulIdentifier","src":"4212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4200:6:53","nodeType":"YulIdentifier","src":"4200:6:53"},"nativeSrc":"4200:19:53","nodeType":"YulFunctionCall","src":"4200:19:53"},"nativeSrc":"4200:19:53","nodeType":"YulExpressionStatement","src":"4200:19:53"},{"nativeSrc":"4228:29:53","nodeType":"YulAssignment","src":"4228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4247:3:53","nodeType":"YulIdentifier","src":"4247:3:53"},{"kind":"number","nativeSrc":"4252:4:53","nodeType":"YulLiteral","src":"4252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4243:3:53","nodeType":"YulIdentifier","src":"4243:3:53"},"nativeSrc":"4243:14:53","nodeType":"YulFunctionCall","src":"4243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4228:11:53","nodeType":"YulIdentifier","src":"4228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"4104:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4162:3:53","nodeType":"YulTypedName","src":"4162:3:53","type":""},{"name":"length","nativeSrc":"4167:6:53","nodeType":"YulTypedName","src":"4167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4178:11:53","nodeType":"YulTypedName","src":"4178:11:53","type":""}],"src":"4104:159:53"},{"body":{"nativeSrc":"4331:77:53","nodeType":"YulBlock","src":"4331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4348:3:53","nodeType":"YulIdentifier","src":"4348:3:53"},{"name":"src","nativeSrc":"4353:3:53","nodeType":"YulIdentifier","src":"4353:3:53"},{"name":"length","nativeSrc":"4358:6:53","nodeType":"YulIdentifier","src":"4358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4342:5:53","nodeType":"YulIdentifier","src":"4342:5:53"},"nativeSrc":"4342:23:53","nodeType":"YulFunctionCall","src":"4342:23:53"},"nativeSrc":"4342:23:53","nodeType":"YulExpressionStatement","src":"4342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4385:3:53","nodeType":"YulIdentifier","src":"4385:3:53"},{"name":"length","nativeSrc":"4390:6:53","nodeType":"YulIdentifier","src":"4390:6:53"}],"functionName":{"name":"add","nativeSrc":"4381:3:53","nodeType":"YulIdentifier","src":"4381:3:53"},"nativeSrc":"4381:16:53","nodeType":"YulFunctionCall","src":"4381:16:53"},{"kind":"number","nativeSrc":"4399:1:53","nodeType":"YulLiteral","src":"4399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4374:6:53","nodeType":"YulIdentifier","src":"4374:6:53"},"nativeSrc":"4374:27:53","nodeType":"YulFunctionCall","src":"4374:27:53"},"nativeSrc":"4374:27:53","nodeType":"YulExpressionStatement","src":"4374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4313:3:53","nodeType":"YulTypedName","src":"4313:3:53","type":""},{"name":"dst","nativeSrc":"4318:3:53","nodeType":"YulTypedName","src":"4318:3:53","type":""},{"name":"length","nativeSrc":"4323:6:53","nodeType":"YulTypedName","src":"4323:6:53","type":""}],"src":"4269:139:53"},{"body":{"nativeSrc":"4462:54:53","nodeType":"YulBlock","src":"4462:54:53","statements":[{"nativeSrc":"4472:38:53","nodeType":"YulAssignment","src":"4472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4490:5:53","nodeType":"YulIdentifier","src":"4490:5:53"},{"kind":"number","nativeSrc":"4497:2:53","nodeType":"YulLiteral","src":"4497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4486:3:53","nodeType":"YulIdentifier","src":"4486:3:53"},"nativeSrc":"4486:14:53","nodeType":"YulFunctionCall","src":"4486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4506:2:53","nodeType":"YulLiteral","src":"4506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4502:3:53","nodeType":"YulIdentifier","src":"4502:3:53"},"nativeSrc":"4502:7:53","nodeType":"YulFunctionCall","src":"4502:7:53"}],"functionName":{"name":"and","nativeSrc":"4482:3:53","nodeType":"YulIdentifier","src":"4482:3:53"},"nativeSrc":"4482:28:53","nodeType":"YulFunctionCall","src":"4482:28:53"},"variableNames":[{"name":"result","nativeSrc":"4472:6:53","nodeType":"YulIdentifier","src":"4472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4445:5:53","nodeType":"YulTypedName","src":"4445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4455:6:53","nodeType":"YulTypedName","src":"4455:6:53","type":""}],"src":"4414:102:53"},{"body":{"nativeSrc":"4604:275:53","nodeType":"YulBlock","src":"4604:275:53","statements":[{"nativeSrc":"4614:53:53","nodeType":"YulVariableDeclaration","src":"4614:53:53","value":{"arguments":[{"name":"value","nativeSrc":"4661:5:53","nodeType":"YulIdentifier","src":"4661:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"4628:32:53","nodeType":"YulIdentifier","src":"4628:32:53"},"nativeSrc":"4628:39:53","nodeType":"YulFunctionCall","src":"4628:39:53"},"variables":[{"name":"length","nativeSrc":"4618:6:53","nodeType":"YulTypedName","src":"4618:6:53","type":""}]},{"nativeSrc":"4676:68:53","nodeType":"YulAssignment","src":"4676:68:53","value":{"arguments":[{"name":"pos","nativeSrc":"4732:3:53","nodeType":"YulIdentifier","src":"4732:3:53"},{"name":"length","nativeSrc":"4737:6:53","nodeType":"YulIdentifier","src":"4737:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"4683:48:53","nodeType":"YulIdentifier","src":"4683:48:53"},"nativeSrc":"4683:61:53","nodeType":"YulFunctionCall","src":"4683:61:53"},"variableNames":[{"name":"pos","nativeSrc":"4676:3:53","nodeType":"YulIdentifier","src":"4676:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4792:5:53","nodeType":"YulIdentifier","src":"4792:5:53"},{"kind":"number","nativeSrc":"4799:4:53","nodeType":"YulLiteral","src":"4799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4788:3:53","nodeType":"YulIdentifier","src":"4788:3:53"},"nativeSrc":"4788:16:53","nodeType":"YulFunctionCall","src":"4788:16:53"},{"name":"pos","nativeSrc":"4806:3:53","nodeType":"YulIdentifier","src":"4806:3:53"},{"name":"length","nativeSrc":"4811:6:53","nodeType":"YulIdentifier","src":"4811:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4753:34:53","nodeType":"YulIdentifier","src":"4753:34:53"},"nativeSrc":"4753:65:53","nodeType":"YulFunctionCall","src":"4753:65:53"},"nativeSrc":"4753:65:53","nodeType":"YulExpressionStatement","src":"4753:65:53"},{"nativeSrc":"4827:46:53","nodeType":"YulAssignment","src":"4827:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4838:3:53","nodeType":"YulIdentifier","src":"4838:3:53"},{"arguments":[{"name":"length","nativeSrc":"4865:6:53","nodeType":"YulIdentifier","src":"4865:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4843:21:53","nodeType":"YulIdentifier","src":"4843:21:53"},"nativeSrc":"4843:29:53","nodeType":"YulFunctionCall","src":"4843:29:53"}],"functionName":{"name":"add","nativeSrc":"4834:3:53","nodeType":"YulIdentifier","src":"4834:3:53"},"nativeSrc":"4834:39:53","nodeType":"YulFunctionCall","src":"4834:39:53"},"variableNames":[{"name":"end","nativeSrc":"4827:3:53","nodeType":"YulIdentifier","src":"4827:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"4522:357:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4585:5:53","nodeType":"YulTypedName","src":"4585:5:53","type":""},{"name":"pos","nativeSrc":"4592:3:53","nodeType":"YulTypedName","src":"4592:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4600:3:53","nodeType":"YulTypedName","src":"4600:3:53","type":""}],"src":"4522:357:53"},{"body":{"nativeSrc":"5071:877:53","nodeType":"YulBlock","src":"5071:877:53","statements":[{"nativeSrc":"5081:26:53","nodeType":"YulVariableDeclaration","src":"5081:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"5097:3:53","nodeType":"YulIdentifier","src":"5097:3:53"},{"kind":"number","nativeSrc":"5102:4:53","nodeType":"YulLiteral","src":"5102:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5093:3:53","nodeType":"YulIdentifier","src":"5093:3:53"},"nativeSrc":"5093:14:53","nodeType":"YulFunctionCall","src":"5093:14:53"},"variables":[{"name":"tail","nativeSrc":"5085:4:53","nodeType":"YulTypedName","src":"5085:4:53","type":""}]},{"nativeSrc":"5117:184:53","nodeType":"YulBlock","src":"5117:184:53","statements":[{"nativeSrc":"5156:43:53","nodeType":"YulVariableDeclaration","src":"5156:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5186:5:53","nodeType":"YulIdentifier","src":"5186:5:53"},{"kind":"number","nativeSrc":"5193:4:53","nodeType":"YulLiteral","src":"5193:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5182:3:53","nodeType":"YulIdentifier","src":"5182:3:53"},"nativeSrc":"5182:16:53","nodeType":"YulFunctionCall","src":"5182:16:53"}],"functionName":{"name":"mload","nativeSrc":"5176:5:53","nodeType":"YulIdentifier","src":"5176:5:53"},"nativeSrc":"5176:23:53","nodeType":"YulFunctionCall","src":"5176:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5160:12:53","nodeType":"YulTypedName","src":"5160:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5262:12:53","nodeType":"YulIdentifier","src":"5262:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5280:3:53","nodeType":"YulIdentifier","src":"5280:3:53"},{"kind":"number","nativeSrc":"5285:4:53","nodeType":"YulLiteral","src":"5285:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5276:3:53","nodeType":"YulIdentifier","src":"5276:3:53"},"nativeSrc":"5276:14:53","nodeType":"YulFunctionCall","src":"5276:14:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"5212:49:53","nodeType":"YulIdentifier","src":"5212:49:53"},"nativeSrc":"5212:79:53","nodeType":"YulFunctionCall","src":"5212:79:53"},"nativeSrc":"5212:79:53","nodeType":"YulExpressionStatement","src":"5212:79:53"}]},{"nativeSrc":"5311:187:53","nodeType":"YulBlock","src":"5311:187:53","statements":[{"nativeSrc":"5350:43:53","nodeType":"YulVariableDeclaration","src":"5350:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5380:5:53","nodeType":"YulIdentifier","src":"5380:5:53"},{"kind":"number","nativeSrc":"5387:4:53","nodeType":"YulLiteral","src":"5387:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5376:3:53","nodeType":"YulIdentifier","src":"5376:3:53"},"nativeSrc":"5376:16:53","nodeType":"YulFunctionCall","src":"5376:16:53"}],"functionName":{"name":"mload","nativeSrc":"5370:5:53","nodeType":"YulIdentifier","src":"5370:5:53"},"nativeSrc":"5370:23:53","nodeType":"YulFunctionCall","src":"5370:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5354:12:53","nodeType":"YulTypedName","src":"5354:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5459:12:53","nodeType":"YulIdentifier","src":"5459:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5477:3:53","nodeType":"YulIdentifier","src":"5477:3:53"},{"kind":"number","nativeSrc":"5482:4:53","nodeType":"YulLiteral","src":"5482:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5473:3:53","nodeType":"YulIdentifier","src":"5473:3:53"},"nativeSrc":"5473:14:53","nodeType":"YulFunctionCall","src":"5473:14:53"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"5406:52:53","nodeType":"YulIdentifier","src":"5406:52:53"},"nativeSrc":"5406:82:53","nodeType":"YulFunctionCall","src":"5406:82:53"},"nativeSrc":"5406:82:53","nodeType":"YulExpressionStatement","src":"5406:82:53"}]},{"nativeSrc":"5508:168:53","nodeType":"YulBlock","src":"5508:168:53","statements":[{"nativeSrc":"5547:43:53","nodeType":"YulVariableDeclaration","src":"5547:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5577:5:53","nodeType":"YulIdentifier","src":"5577:5:53"},{"kind":"number","nativeSrc":"5584:4:53","nodeType":"YulLiteral","src":"5584:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5573:3:53","nodeType":"YulIdentifier","src":"5573:3:53"},"nativeSrc":"5573:16:53","nodeType":"YulFunctionCall","src":"5573:16:53"}],"functionName":{"name":"mload","nativeSrc":"5567:5:53","nodeType":"YulIdentifier","src":"5567:5:53"},"nativeSrc":"5567:23:53","nodeType":"YulFunctionCall","src":"5567:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5551:12:53","nodeType":"YulTypedName","src":"5551:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5637:12:53","nodeType":"YulIdentifier","src":"5637:12:53"},{"arguments":[{"name":"pos","nativeSrc":"5655:3:53","nodeType":"YulIdentifier","src":"5655:3:53"},{"kind":"number","nativeSrc":"5660:4:53","nodeType":"YulLiteral","src":"5660:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5651:3:53","nodeType":"YulIdentifier","src":"5651:3:53"},"nativeSrc":"5651:14:53","nodeType":"YulFunctionCall","src":"5651:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"5603:33:53","nodeType":"YulIdentifier","src":"5603:33:53"},"nativeSrc":"5603:63:53","nodeType":"YulFunctionCall","src":"5603:63:53"},"nativeSrc":"5603:63:53","nodeType":"YulExpressionStatement","src":"5603:63:53"}]},{"nativeSrc":"5686:235:53","nodeType":"YulBlock","src":"5686:235:53","statements":[{"nativeSrc":"5721:43:53","nodeType":"YulVariableDeclaration","src":"5721:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5751:5:53","nodeType":"YulIdentifier","src":"5751:5:53"},{"kind":"number","nativeSrc":"5758:4:53","nodeType":"YulLiteral","src":"5758:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5747:3:53","nodeType":"YulIdentifier","src":"5747:3:53"},"nativeSrc":"5747:16:53","nodeType":"YulFunctionCall","src":"5747:16:53"}],"functionName":{"name":"mload","nativeSrc":"5741:5:53","nodeType":"YulIdentifier","src":"5741:5:53"},"nativeSrc":"5741:23:53","nodeType":"YulFunctionCall","src":"5741:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"5725:12:53","nodeType":"YulTypedName","src":"5725:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5789:3:53","nodeType":"YulIdentifier","src":"5789:3:53"},{"kind":"number","nativeSrc":"5794:4:53","nodeType":"YulLiteral","src":"5794:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5785:3:53","nodeType":"YulIdentifier","src":"5785:3:53"},"nativeSrc":"5785:14:53","nodeType":"YulFunctionCall","src":"5785:14:53"},{"arguments":[{"name":"tail","nativeSrc":"5805:4:53","nodeType":"YulIdentifier","src":"5805:4:53"},{"name":"pos","nativeSrc":"5811:3:53","nodeType":"YulIdentifier","src":"5811:3:53"}],"functionName":{"name":"sub","nativeSrc":"5801:3:53","nodeType":"YulIdentifier","src":"5801:3:53"},"nativeSrc":"5801:14:53","nodeType":"YulFunctionCall","src":"5801:14:53"}],"functionName":{"name":"mstore","nativeSrc":"5778:6:53","nodeType":"YulIdentifier","src":"5778:6:53"},"nativeSrc":"5778:38:53","nodeType":"YulFunctionCall","src":"5778:38:53"},"nativeSrc":"5778:38:53","nodeType":"YulExpressionStatement","src":"5778:38:53"},{"nativeSrc":"5829:81:53","nodeType":"YulAssignment","src":"5829:81:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"5891:12:53","nodeType":"YulIdentifier","src":"5891:12:53"},{"name":"tail","nativeSrc":"5905:4:53","nodeType":"YulIdentifier","src":"5905:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"5837:53:53","nodeType":"YulIdentifier","src":"5837:53:53"},"nativeSrc":"5837:73:53","nodeType":"YulFunctionCall","src":"5837:73:53"},"variableNames":[{"name":"tail","nativeSrc":"5829:4:53","nodeType":"YulIdentifier","src":"5829:4:53"}]}]},{"nativeSrc":"5931:11:53","nodeType":"YulAssignment","src":"5931:11:53","value":{"name":"tail","nativeSrc":"5938:4:53","nodeType":"YulIdentifier","src":"5938:4:53"},"variableNames":[{"name":"end","nativeSrc":"5931:3:53","nodeType":"YulIdentifier","src":"5931:3:53"}]}]},"name":"abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack","nativeSrc":"4949:999:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5050:5:53","nodeType":"YulTypedName","src":"5050:5:53","type":""},{"name":"pos","nativeSrc":"5057:3:53","nodeType":"YulTypedName","src":"5057:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5066:3:53","nodeType":"YulTypedName","src":"5066:3:53","type":""}],"src":"4949:999:53"},{"body":{"nativeSrc":"6100:223:53","nodeType":"YulBlock","src":"6100:223:53","statements":[{"nativeSrc":"6110:26:53","nodeType":"YulAssignment","src":"6110:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6122:9:53","nodeType":"YulIdentifier","src":"6122:9:53"},{"kind":"number","nativeSrc":"6133:2:53","nodeType":"YulLiteral","src":"6133:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6118:3:53","nodeType":"YulIdentifier","src":"6118:3:53"},"nativeSrc":"6118:18:53","nodeType":"YulFunctionCall","src":"6118:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6110:4:53","nodeType":"YulIdentifier","src":"6110:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6157:9:53","nodeType":"YulIdentifier","src":"6157:9:53"},{"kind":"number","nativeSrc":"6168:1:53","nodeType":"YulLiteral","src":"6168:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6153:3:53","nodeType":"YulIdentifier","src":"6153:3:53"},"nativeSrc":"6153:17:53","nodeType":"YulFunctionCall","src":"6153:17:53"},{"arguments":[{"name":"tail","nativeSrc":"6176:4:53","nodeType":"YulIdentifier","src":"6176:4:53"},{"name":"headStart","nativeSrc":"6182:9:53","nodeType":"YulIdentifier","src":"6182:9:53"}],"functionName":{"name":"sub","nativeSrc":"6172:3:53","nodeType":"YulIdentifier","src":"6172:3:53"},"nativeSrc":"6172:20:53","nodeType":"YulFunctionCall","src":"6172:20:53"}],"functionName":{"name":"mstore","nativeSrc":"6146:6:53","nodeType":"YulIdentifier","src":"6146:6:53"},"nativeSrc":"6146:47:53","nodeType":"YulFunctionCall","src":"6146:47:53"},"nativeSrc":"6146:47:53","nodeType":"YulExpressionStatement","src":"6146:47:53"},{"nativeSrc":"6202:114:53","nodeType":"YulAssignment","src":"6202:114:53","value":{"arguments":[{"name":"value0","nativeSrc":"6302:6:53","nodeType":"YulIdentifier","src":"6302:6:53"},{"name":"tail","nativeSrc":"6311:4:53","nodeType":"YulIdentifier","src":"6311:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack","nativeSrc":"6210:91:53","nodeType":"YulIdentifier","src":"6210:91:53"},"nativeSrc":"6210:106:53","nodeType":"YulFunctionCall","src":"6210:106:53"},"variableNames":[{"name":"tail","nativeSrc":"6202:4:53","nodeType":"YulIdentifier","src":"6202:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Clone_$12306_memory_ptr__to_t_struct$_Clone_$12306_memory_ptr__fromStack_reversed","nativeSrc":"5954:369:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6072:9:53","nodeType":"YulTypedName","src":"6072:9:53","type":""},{"name":"value0","nativeSrc":"6084:6:53","nodeType":"YulTypedName","src":"6084:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6095:4:53","nodeType":"YulTypedName","src":"6095:4:53","type":""}],"src":"5954:369:53"},{"body":{"nativeSrc":"6372:79:53","nodeType":"YulBlock","src":"6372:79:53","statements":[{"body":{"nativeSrc":"6429:16:53","nodeType":"YulBlock","src":"6429:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6438:1:53","nodeType":"YulLiteral","src":"6438:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6441:1:53","nodeType":"YulLiteral","src":"6441:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6431:6:53","nodeType":"YulIdentifier","src":"6431:6:53"},"nativeSrc":"6431:12:53","nodeType":"YulFunctionCall","src":"6431:12:53"},"nativeSrc":"6431:12:53","nodeType":"YulExpressionStatement","src":"6431:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6395:5:53","nodeType":"YulIdentifier","src":"6395:5:53"},{"arguments":[{"name":"value","nativeSrc":"6420:5:53","nodeType":"YulIdentifier","src":"6420:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6402:17:53","nodeType":"YulIdentifier","src":"6402:17:53"},"nativeSrc":"6402:24:53","nodeType":"YulFunctionCall","src":"6402:24:53"}],"functionName":{"name":"eq","nativeSrc":"6392:2:53","nodeType":"YulIdentifier","src":"6392:2:53"},"nativeSrc":"6392:35:53","nodeType":"YulFunctionCall","src":"6392:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6385:6:53","nodeType":"YulIdentifier","src":"6385:6:53"},"nativeSrc":"6385:43:53","nodeType":"YulFunctionCall","src":"6385:43:53"},"nativeSrc":"6382:63:53","nodeType":"YulIf","src":"6382:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"6329:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6365:5:53","nodeType":"YulTypedName","src":"6365:5:53","type":""}],"src":"6329:122:53"},{"body":{"nativeSrc":"6509:87:53","nodeType":"YulBlock","src":"6509:87:53","statements":[{"nativeSrc":"6519:29:53","nodeType":"YulAssignment","src":"6519:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6541:6:53","nodeType":"YulIdentifier","src":"6541:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6528:12:53","nodeType":"YulIdentifier","src":"6528:12:53"},"nativeSrc":"6528:20:53","nodeType":"YulFunctionCall","src":"6528:20:53"},"variableNames":[{"name":"value","nativeSrc":"6519:5:53","nodeType":"YulIdentifier","src":"6519:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6584:5:53","nodeType":"YulIdentifier","src":"6584:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6557:26:53","nodeType":"YulIdentifier","src":"6557:26:53"},"nativeSrc":"6557:33:53","nodeType":"YulFunctionCall","src":"6557:33:53"},"nativeSrc":"6557:33:53","nodeType":"YulExpressionStatement","src":"6557:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"6457:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6487:6:53","nodeType":"YulTypedName","src":"6487:6:53","type":""},{"name":"end","nativeSrc":"6495:3:53","nodeType":"YulTypedName","src":"6495:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6503:5:53","nodeType":"YulTypedName","src":"6503:5:53","type":""}],"src":"6457:139:53"},{"body":{"nativeSrc":"6668:263:53","nodeType":"YulBlock","src":"6668:263:53","statements":[{"body":{"nativeSrc":"6714:83:53","nodeType":"YulBlock","src":"6714:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6716:77:53","nodeType":"YulIdentifier","src":"6716:77:53"},"nativeSrc":"6716:79:53","nodeType":"YulFunctionCall","src":"6716:79:53"},"nativeSrc":"6716:79:53","nodeType":"YulExpressionStatement","src":"6716:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6689:7:53","nodeType":"YulIdentifier","src":"6689:7:53"},{"name":"headStart","nativeSrc":"6698:9:53","nodeType":"YulIdentifier","src":"6698:9:53"}],"functionName":{"name":"sub","nativeSrc":"6685:3:53","nodeType":"YulIdentifier","src":"6685:3:53"},"nativeSrc":"6685:23:53","nodeType":"YulFunctionCall","src":"6685:23:53"},{"kind":"number","nativeSrc":"6710:2:53","nodeType":"YulLiteral","src":"6710:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6681:3:53","nodeType":"YulIdentifier","src":"6681:3:53"},"nativeSrc":"6681:32:53","nodeType":"YulFunctionCall","src":"6681:32:53"},"nativeSrc":"6678:119:53","nodeType":"YulIf","src":"6678:119:53"},{"nativeSrc":"6807:117:53","nodeType":"YulBlock","src":"6807:117:53","statements":[{"nativeSrc":"6822:15:53","nodeType":"YulVariableDeclaration","src":"6822:15:53","value":{"kind":"number","nativeSrc":"6836:1:53","nodeType":"YulLiteral","src":"6836:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6826:6:53","nodeType":"YulTypedName","src":"6826:6:53","type":""}]},{"nativeSrc":"6851:63:53","nodeType":"YulAssignment","src":"6851:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6886:9:53","nodeType":"YulIdentifier","src":"6886:9:53"},{"name":"offset","nativeSrc":"6897:6:53","nodeType":"YulIdentifier","src":"6897:6:53"}],"functionName":{"name":"add","nativeSrc":"6882:3:53","nodeType":"YulIdentifier","src":"6882:3:53"},"nativeSrc":"6882:22:53","nodeType":"YulFunctionCall","src":"6882:22:53"},{"name":"dataEnd","nativeSrc":"6906:7:53","nodeType":"YulIdentifier","src":"6906:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6861:20:53","nodeType":"YulIdentifier","src":"6861:20:53"},"nativeSrc":"6861:53:53","nodeType":"YulFunctionCall","src":"6861:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6851:6:53","nodeType":"YulIdentifier","src":"6851:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6602:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6638:9:53","nodeType":"YulTypedName","src":"6638:9:53","type":""},{"name":"dataEnd","nativeSrc":"6649:7:53","nodeType":"YulTypedName","src":"6649:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6661:6:53","nodeType":"YulTypedName","src":"6661:6:53","type":""}],"src":"6602:329:53"},{"body":{"nativeSrc":"7011:40:53","nodeType":"YulBlock","src":"7011:40:53","statements":[{"nativeSrc":"7022:22:53","nodeType":"YulAssignment","src":"7022:22:53","value":{"arguments":[{"name":"value","nativeSrc":"7038:5:53","nodeType":"YulIdentifier","src":"7038:5:53"}],"functionName":{"name":"mload","nativeSrc":"7032:5:53","nodeType":"YulIdentifier","src":"7032:5:53"},"nativeSrc":"7032:12:53","nodeType":"YulFunctionCall","src":"7032:12:53"},"variableNames":[{"name":"length","nativeSrc":"7022:6:53","nodeType":"YulIdentifier","src":"7022:6:53"}]}]},"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6937:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6994:5:53","nodeType":"YulTypedName","src":"6994:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7004:6:53","nodeType":"YulTypedName","src":"7004:6:53","type":""}],"src":"6937:114:53"},{"body":{"nativeSrc":"7168:73:53","nodeType":"YulBlock","src":"7168:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7185:3:53","nodeType":"YulIdentifier","src":"7185:3:53"},{"name":"length","nativeSrc":"7190:6:53","nodeType":"YulIdentifier","src":"7190:6:53"}],"functionName":{"name":"mstore","nativeSrc":"7178:6:53","nodeType":"YulIdentifier","src":"7178:6:53"},"nativeSrc":"7178:19:53","nodeType":"YulFunctionCall","src":"7178:19:53"},"nativeSrc":"7178:19:53","nodeType":"YulExpressionStatement","src":"7178:19:53"},{"nativeSrc":"7206:29:53","nodeType":"YulAssignment","src":"7206:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"7225:3:53","nodeType":"YulIdentifier","src":"7225:3:53"},{"kind":"number","nativeSrc":"7230:4:53","nodeType":"YulLiteral","src":"7230:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7221:3:53","nodeType":"YulIdentifier","src":"7221:3:53"},"nativeSrc":"7221:14:53","nodeType":"YulFunctionCall","src":"7221:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"7206:11:53","nodeType":"YulIdentifier","src":"7206:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"7057:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7140:3:53","nodeType":"YulTypedName","src":"7140:3:53","type":""},{"name":"length","nativeSrc":"7145:6:53","nodeType":"YulTypedName","src":"7145:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7156:11:53","nodeType":"YulTypedName","src":"7156:11:53","type":""}],"src":"7057:184:53"},{"body":{"nativeSrc":"7319:60:53","nodeType":"YulBlock","src":"7319:60:53","statements":[{"nativeSrc":"7329:11:53","nodeType":"YulAssignment","src":"7329:11:53","value":{"name":"ptr","nativeSrc":"7337:3:53","nodeType":"YulIdentifier","src":"7337:3:53"},"variableNames":[{"name":"data","nativeSrc":"7329:4:53","nodeType":"YulIdentifier","src":"7329:4:53"}]},{"nativeSrc":"7350:22:53","nodeType":"YulAssignment","src":"7350:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"7362:3:53","nodeType":"YulIdentifier","src":"7362:3:53"},{"kind":"number","nativeSrc":"7367:4:53","nodeType":"YulLiteral","src":"7367:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7358:3:53","nodeType":"YulIdentifier","src":"7358:3:53"},"nativeSrc":"7358:14:53","nodeType":"YulFunctionCall","src":"7358:14:53"},"variableNames":[{"name":"data","nativeSrc":"7350:4:53","nodeType":"YulIdentifier","src":"7350:4:53"}]}]},"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7247:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"7306:3:53","nodeType":"YulTypedName","src":"7306:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"7314:4:53","nodeType":"YulTypedName","src":"7314:4:53","type":""}],"src":"7247:132:53"},{"body":{"nativeSrc":"7440:53:53","nodeType":"YulBlock","src":"7440:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7457:3:53","nodeType":"YulIdentifier","src":"7457:3:53"},{"arguments":[{"name":"value","nativeSrc":"7480:5:53","nodeType":"YulIdentifier","src":"7480:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"7462:17:53","nodeType":"YulIdentifier","src":"7462:17:53"},"nativeSrc":"7462:24:53","nodeType":"YulFunctionCall","src":"7462:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7450:6:53","nodeType":"YulIdentifier","src":"7450:6:53"},"nativeSrc":"7450:37:53","nodeType":"YulFunctionCall","src":"7450:37:53"},"nativeSrc":"7450:37:53","nodeType":"YulExpressionStatement","src":"7450:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"7385:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7428:5:53","nodeType":"YulTypedName","src":"7428:5:53","type":""},{"name":"pos","nativeSrc":"7435:3:53","nodeType":"YulTypedName","src":"7435:3:53","type":""}],"src":"7385:108:53"},{"body":{"nativeSrc":"7579:99:53","nodeType":"YulBlock","src":"7579:99:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"7623:6:53","nodeType":"YulIdentifier","src":"7623:6:53"},{"name":"pos","nativeSrc":"7631:3:53","nodeType":"YulIdentifier","src":"7631:3:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"7589:33:53","nodeType":"YulIdentifier","src":"7589:33:53"},"nativeSrc":"7589:46:53","nodeType":"YulFunctionCall","src":"7589:46:53"},"nativeSrc":"7589:46:53","nodeType":"YulExpressionStatement","src":"7589:46:53"},{"nativeSrc":"7644:28:53","nodeType":"YulAssignment","src":"7644:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"7662:3:53","nodeType":"YulIdentifier","src":"7662:3:53"},{"kind":"number","nativeSrc":"7667:4:53","nodeType":"YulLiteral","src":"7667:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7658:3:53","nodeType":"YulIdentifier","src":"7658:3:53"},"nativeSrc":"7658:14:53","nodeType":"YulFunctionCall","src":"7658:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"7644:10:53","nodeType":"YulIdentifier","src":"7644:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"7499:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"7552:6:53","nodeType":"YulTypedName","src":"7552:6:53","type":""},{"name":"pos","nativeSrc":"7560:3:53","nodeType":"YulTypedName","src":"7560:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"7568:10:53","nodeType":"YulTypedName","src":"7568:10:53","type":""}],"src":"7499:179:53"},{"body":{"nativeSrc":"7759:38:53","nodeType":"YulBlock","src":"7759:38:53","statements":[{"nativeSrc":"7769:22:53","nodeType":"YulAssignment","src":"7769:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"7781:3:53","nodeType":"YulIdentifier","src":"7781:3:53"},{"kind":"number","nativeSrc":"7786:4:53","nodeType":"YulLiteral","src":"7786:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7777:3:53","nodeType":"YulIdentifier","src":"7777:3:53"},"nativeSrc":"7777:14:53","nodeType":"YulFunctionCall","src":"7777:14:53"},"variableNames":[{"name":"next","nativeSrc":"7769:4:53","nodeType":"YulIdentifier","src":"7769:4:53"}]}]},"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7684:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"7746:3:53","nodeType":"YulTypedName","src":"7746:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"7754:4:53","nodeType":"YulTypedName","src":"7754:4:53","type":""}],"src":"7684:113:53"},{"body":{"nativeSrc":"7957:608:53","nodeType":"YulBlock","src":"7957:608:53","statements":[{"nativeSrc":"7967:68:53","nodeType":"YulVariableDeclaration","src":"7967:68:53","value":{"arguments":[{"name":"value","nativeSrc":"8029:5:53","nodeType":"YulIdentifier","src":"8029:5:53"}],"functionName":{"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7981:47:53","nodeType":"YulIdentifier","src":"7981:47:53"},"nativeSrc":"7981:54:53","nodeType":"YulFunctionCall","src":"7981:54:53"},"variables":[{"name":"length","nativeSrc":"7971:6:53","nodeType":"YulTypedName","src":"7971:6:53","type":""}]},{"nativeSrc":"8044:93:53","nodeType":"YulAssignment","src":"8044:93:53","value":{"arguments":[{"name":"pos","nativeSrc":"8125:3:53","nodeType":"YulIdentifier","src":"8125:3:53"},{"name":"length","nativeSrc":"8130:6:53","nodeType":"YulIdentifier","src":"8130:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"8051:73:53","nodeType":"YulIdentifier","src":"8051:73:53"},"nativeSrc":"8051:86:53","nodeType":"YulFunctionCall","src":"8051:86:53"},"variableNames":[{"name":"pos","nativeSrc":"8044:3:53","nodeType":"YulIdentifier","src":"8044:3:53"}]},{"nativeSrc":"8146:71:53","nodeType":"YulVariableDeclaration","src":"8146:71:53","value":{"arguments":[{"name":"value","nativeSrc":"8211:5:53","nodeType":"YulIdentifier","src":"8211:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"8161:49:53","nodeType":"YulIdentifier","src":"8161:49:53"},"nativeSrc":"8161:56:53","nodeType":"YulFunctionCall","src":"8161:56:53"},"variables":[{"name":"baseRef","nativeSrc":"8150:7:53","nodeType":"YulTypedName","src":"8150:7:53","type":""}]},{"nativeSrc":"8226:21:53","nodeType":"YulVariableDeclaration","src":"8226:21:53","value":{"name":"baseRef","nativeSrc":"8240:7:53","nodeType":"YulIdentifier","src":"8240:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"8230:6:53","nodeType":"YulTypedName","src":"8230:6:53","type":""}]},{"body":{"nativeSrc":"8316:224:53","nodeType":"YulBlock","src":"8316:224:53","statements":[{"nativeSrc":"8330:34:53","nodeType":"YulVariableDeclaration","src":"8330:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8357:6:53","nodeType":"YulIdentifier","src":"8357:6:53"}],"functionName":{"name":"mload","nativeSrc":"8351:5:53","nodeType":"YulIdentifier","src":"8351:5:53"},"nativeSrc":"8351:13:53","nodeType":"YulFunctionCall","src":"8351:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"8334:13:53","nodeType":"YulTypedName","src":"8334:13:53","type":""}]},{"nativeSrc":"8377:70:53","nodeType":"YulAssignment","src":"8377:70:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"8428:13:53","nodeType":"YulIdentifier","src":"8428:13:53"},{"name":"pos","nativeSrc":"8443:3:53","nodeType":"YulIdentifier","src":"8443:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"8384:43:53","nodeType":"YulIdentifier","src":"8384:43:53"},"nativeSrc":"8384:63:53","nodeType":"YulFunctionCall","src":"8384:63:53"},"variableNames":[{"name":"pos","nativeSrc":"8377:3:53","nodeType":"YulIdentifier","src":"8377:3:53"}]},{"nativeSrc":"8460:70:53","nodeType":"YulAssignment","src":"8460:70:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8523:6:53","nodeType":"YulIdentifier","src":"8523:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"8470:52:53","nodeType":"YulIdentifier","src":"8470:52:53"},"nativeSrc":"8470:60:53","nodeType":"YulFunctionCall","src":"8470:60:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"8460:6:53","nodeType":"YulIdentifier","src":"8460:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8278:1:53","nodeType":"YulIdentifier","src":"8278:1:53"},{"name":"length","nativeSrc":"8281:6:53","nodeType":"YulIdentifier","src":"8281:6:53"}],"functionName":{"name":"lt","nativeSrc":"8275:2:53","nodeType":"YulIdentifier","src":"8275:2:53"},"nativeSrc":"8275:13:53","nodeType":"YulFunctionCall","src":"8275:13:53"},"nativeSrc":"8256:284:53","nodeType":"YulForLoop","post":{"nativeSrc":"8289:18:53","nodeType":"YulBlock","src":"8289:18:53","statements":[{"nativeSrc":"8291:14:53","nodeType":"YulAssignment","src":"8291:14:53","value":{"arguments":[{"name":"i","nativeSrc":"8300:1:53","nodeType":"YulIdentifier","src":"8300:1:53"},{"kind":"number","nativeSrc":"8303:1:53","nodeType":"YulLiteral","src":"8303:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8296:3:53","nodeType":"YulIdentifier","src":"8296:3:53"},"nativeSrc":"8296:9:53","nodeType":"YulFunctionCall","src":"8296:9:53"},"variableNames":[{"name":"i","nativeSrc":"8291:1:53","nodeType":"YulIdentifier","src":"8291:1:53"}]}]},"pre":{"nativeSrc":"8260:14:53","nodeType":"YulBlock","src":"8260:14:53","statements":[{"nativeSrc":"8262:10:53","nodeType":"YulVariableDeclaration","src":"8262:10:53","value":{"kind":"number","nativeSrc":"8271:1:53","nodeType":"YulLiteral","src":"8271:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8266:1:53","nodeType":"YulTypedName","src":"8266:1:53","type":""}]}]},"src":"8256:284:53"},{"nativeSrc":"8549:10:53","nodeType":"YulAssignment","src":"8549:10:53","value":{"name":"pos","nativeSrc":"8556:3:53","nodeType":"YulIdentifier","src":"8556:3:53"},"variableNames":[{"name":"end","nativeSrc":"8549:3:53","nodeType":"YulIdentifier","src":"8549:3:53"}]}]},"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"7833:732:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7936:5:53","nodeType":"YulTypedName","src":"7936:5:53","type":""},{"name":"pos","nativeSrc":"7943:3:53","nodeType":"YulTypedName","src":"7943:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7952:3:53","nodeType":"YulTypedName","src":"7952:3:53","type":""}],"src":"7833:732:53"},{"body":{"nativeSrc":"8719:225:53","nodeType":"YulBlock","src":"8719:225:53","statements":[{"nativeSrc":"8729:26:53","nodeType":"YulAssignment","src":"8729:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8741:9:53","nodeType":"YulIdentifier","src":"8741:9:53"},{"kind":"number","nativeSrc":"8752:2:53","nodeType":"YulLiteral","src":"8752:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8737:3:53","nodeType":"YulIdentifier","src":"8737:3:53"},"nativeSrc":"8737:18:53","nodeType":"YulFunctionCall","src":"8737:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8729:4:53","nodeType":"YulIdentifier","src":"8729:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8776:9:53","nodeType":"YulIdentifier","src":"8776:9:53"},{"kind":"number","nativeSrc":"8787:1:53","nodeType":"YulLiteral","src":"8787:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8772:3:53","nodeType":"YulIdentifier","src":"8772:3:53"},"nativeSrc":"8772:17:53","nodeType":"YulFunctionCall","src":"8772:17:53"},{"arguments":[{"name":"tail","nativeSrc":"8795:4:53","nodeType":"YulIdentifier","src":"8795:4:53"},{"name":"headStart","nativeSrc":"8801:9:53","nodeType":"YulIdentifier","src":"8801:9:53"}],"functionName":{"name":"sub","nativeSrc":"8791:3:53","nodeType":"YulIdentifier","src":"8791:3:53"},"nativeSrc":"8791:20:53","nodeType":"YulFunctionCall","src":"8791:20:53"}],"functionName":{"name":"mstore","nativeSrc":"8765:6:53","nodeType":"YulIdentifier","src":"8765:6:53"},"nativeSrc":"8765:47:53","nodeType":"YulFunctionCall","src":"8765:47:53"},"nativeSrc":"8765:47:53","nodeType":"YulExpressionStatement","src":"8765:47:53"},{"nativeSrc":"8821:116:53","nodeType":"YulAssignment","src":"8821:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"8923:6:53","nodeType":"YulIdentifier","src":"8923:6:53"},{"name":"tail","nativeSrc":"8932:4:53","nodeType":"YulIdentifier","src":"8932:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"8829:93:53","nodeType":"YulIdentifier","src":"8829:93:53"},"nativeSrc":"8829:108:53","nodeType":"YulFunctionCall","src":"8829:108:53"},"variableNames":[{"name":"tail","nativeSrc":"8821:4:53","nodeType":"YulIdentifier","src":"8821:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"8571:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8691:9:53","nodeType":"YulTypedName","src":"8691:9:53","type":""},{"name":"value0","nativeSrc":"8703:6:53","nodeType":"YulTypedName","src":"8703:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8714:4:53","nodeType":"YulTypedName","src":"8714:4:53","type":""}],"src":"8571:373:53"},{"body":{"nativeSrc":"9034:85:53","nodeType":"YulBlock","src":"9034:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9051:3:53","nodeType":"YulIdentifier","src":"9051:3:53"},{"arguments":[{"name":"value","nativeSrc":"9106:5:53","nodeType":"YulIdentifier","src":"9106:5:53"}],"functionName":{"name":"convert_t_contract$_Cloneable_$17720_to_t_address","nativeSrc":"9056:49:53","nodeType":"YulIdentifier","src":"9056:49:53"},"nativeSrc":"9056:56:53","nodeType":"YulFunctionCall","src":"9056:56:53"}],"functionName":{"name":"mstore","nativeSrc":"9044:6:53","nodeType":"YulIdentifier","src":"9044:6:53"},"nativeSrc":"9044:69:53","nodeType":"YulFunctionCall","src":"9044:69:53"},"nativeSrc":"9044:69:53","nodeType":"YulExpressionStatement","src":"9044:69:53"}]},"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack","nativeSrc":"8950:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9022:5:53","nodeType":"YulTypedName","src":"9022:5:53","type":""},{"name":"pos","nativeSrc":"9029:3:53","nodeType":"YulTypedName","src":"9029:3:53","type":""}],"src":"8950:169:53"},{"body":{"nativeSrc":"9242:143:53","nodeType":"YulBlock","src":"9242:143:53","statements":[{"nativeSrc":"9252:26:53","nodeType":"YulAssignment","src":"9252:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9264:9:53","nodeType":"YulIdentifier","src":"9264:9:53"},{"kind":"number","nativeSrc":"9275:2:53","nodeType":"YulLiteral","src":"9275:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9260:3:53","nodeType":"YulIdentifier","src":"9260:3:53"},"nativeSrc":"9260:18:53","nodeType":"YulFunctionCall","src":"9260:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9252:4:53","nodeType":"YulIdentifier","src":"9252:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9351:6:53","nodeType":"YulIdentifier","src":"9351:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9364:9:53","nodeType":"YulIdentifier","src":"9364:9:53"},{"kind":"number","nativeSrc":"9375:1:53","nodeType":"YulLiteral","src":"9375:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9360:3:53","nodeType":"YulIdentifier","src":"9360:3:53"},"nativeSrc":"9360:17:53","nodeType":"YulFunctionCall","src":"9360:17:53"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack","nativeSrc":"9288:62:53","nodeType":"YulIdentifier","src":"9288:62:53"},"nativeSrc":"9288:90:53","nodeType":"YulFunctionCall","src":"9288:90:53"},"nativeSrc":"9288:90:53","nodeType":"YulExpressionStatement","src":"9288:90:53"}]},"name":"abi_encode_tuple_t_contract$_Cloneable_$17720__to_t_address__fromStack_reversed","nativeSrc":"9125:260:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9214:9:53","nodeType":"YulTypedName","src":"9214:9:53","type":""},{"name":"value0","nativeSrc":"9226:6:53","nodeType":"YulTypedName","src":"9226:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9237:4:53","nodeType":"YulTypedName","src":"9237:4:53","type":""}],"src":"9125:260:53"},{"body":{"nativeSrc":"9452:56:53","nodeType":"YulBlock","src":"9452:56:53","statements":[{"body":{"nativeSrc":"9486:16:53","nodeType":"YulBlock","src":"9486:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9495:1:53","nodeType":"YulLiteral","src":"9495:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9498:1:53","nodeType":"YulLiteral","src":"9498:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9488:6:53","nodeType":"YulIdentifier","src":"9488:6:53"},"nativeSrc":"9488:12:53","nodeType":"YulFunctionCall","src":"9488:12:53"},"nativeSrc":"9488:12:53","nodeType":"YulExpressionStatement","src":"9488:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9475:5:53","nodeType":"YulIdentifier","src":"9475:5:53"},{"kind":"number","nativeSrc":"9482:1:53","nodeType":"YulLiteral","src":"9482:1:53","type":"","value":"5"}],"functionName":{"name":"lt","nativeSrc":"9472:2:53","nodeType":"YulIdentifier","src":"9472:2:53"},"nativeSrc":"9472:12:53","nodeType":"YulFunctionCall","src":"9472:12:53"}],"functionName":{"name":"iszero","nativeSrc":"9465:6:53","nodeType":"YulIdentifier","src":"9465:6:53"},"nativeSrc":"9465:20:53","nodeType":"YulFunctionCall","src":"9465:20:53"},"nativeSrc":"9462:40:53","nodeType":"YulIf","src":"9462:40:53"}]},"name":"validator_revert_t_enum$_RegistryType_$12294","nativeSrc":"9391:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9445:5:53","nodeType":"YulTypedName","src":"9445:5:53","type":""}],"src":"9391:117:53"},{"body":{"nativeSrc":"9584:105:53","nodeType":"YulBlock","src":"9584:105:53","statements":[{"nativeSrc":"9594:29:53","nodeType":"YulAssignment","src":"9594:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9616:6:53","nodeType":"YulIdentifier","src":"9616:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9603:12:53","nodeType":"YulIdentifier","src":"9603:12:53"},"nativeSrc":"9603:20:53","nodeType":"YulFunctionCall","src":"9603:20:53"},"variableNames":[{"name":"value","nativeSrc":"9594:5:53","nodeType":"YulIdentifier","src":"9594:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9677:5:53","nodeType":"YulIdentifier","src":"9677:5:53"}],"functionName":{"name":"validator_revert_t_enum$_RegistryType_$12294","nativeSrc":"9632:44:53","nodeType":"YulIdentifier","src":"9632:44:53"},"nativeSrc":"9632:51:53","nodeType":"YulFunctionCall","src":"9632:51:53"},"nativeSrc":"9632:51:53","nodeType":"YulExpressionStatement","src":"9632:51:53"}]},"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"9514:175:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9562:6:53","nodeType":"YulTypedName","src":"9562:6:53","type":""},{"name":"end","nativeSrc":"9570:3:53","nodeType":"YulTypedName","src":"9570:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9578:5:53","nodeType":"YulTypedName","src":"9578:5:53","type":""}],"src":"9514:175:53"},{"body":{"nativeSrc":"9784:28:53","nodeType":"YulBlock","src":"9784:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9801:1:53","nodeType":"YulLiteral","src":"9801:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9804:1:53","nodeType":"YulLiteral","src":"9804:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9794:6:53","nodeType":"YulIdentifier","src":"9794:6:53"},"nativeSrc":"9794:12:53","nodeType":"YulFunctionCall","src":"9794:12:53"},"nativeSrc":"9794:12:53","nodeType":"YulExpressionStatement","src":"9794:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9695:117:53","nodeType":"YulFunctionDefinition","src":"9695:117:53"},{"body":{"nativeSrc":"9907:28:53","nodeType":"YulBlock","src":"9907:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9924:1:53","nodeType":"YulLiteral","src":"9924:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9927:1:53","nodeType":"YulLiteral","src":"9927:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9917:6:53","nodeType":"YulIdentifier","src":"9917:6:53"},"nativeSrc":"9917:12:53","nodeType":"YulFunctionCall","src":"9917:12:53"},"nativeSrc":"9917:12:53","nodeType":"YulExpressionStatement","src":"9917:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"9818:117:53","nodeType":"YulFunctionDefinition","src":"9818:117:53"},{"body":{"nativeSrc":"10030:28:53","nodeType":"YulBlock","src":"10030:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10047:1:53","nodeType":"YulLiteral","src":"10047:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10050:1:53","nodeType":"YulLiteral","src":"10050:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10040:6:53","nodeType":"YulIdentifier","src":"10040:6:53"},"nativeSrc":"10040:12:53","nodeType":"YulFunctionCall","src":"10040:12:53"},"nativeSrc":"10040:12:53","nodeType":"YulExpressionStatement","src":"10040:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9941:117:53","nodeType":"YulFunctionDefinition","src":"9941:117:53"},{"body":{"nativeSrc":"10153:478:53","nodeType":"YulBlock","src":"10153:478:53","statements":[{"body":{"nativeSrc":"10202:83:53","nodeType":"YulBlock","src":"10202:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10204:77:53","nodeType":"YulIdentifier","src":"10204:77:53"},"nativeSrc":"10204:79:53","nodeType":"YulFunctionCall","src":"10204:79:53"},"nativeSrc":"10204:79:53","nodeType":"YulExpressionStatement","src":"10204:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10181:6:53","nodeType":"YulIdentifier","src":"10181:6:53"},{"kind":"number","nativeSrc":"10189:4:53","nodeType":"YulLiteral","src":"10189:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10177:3:53","nodeType":"YulIdentifier","src":"10177:3:53"},"nativeSrc":"10177:17:53","nodeType":"YulFunctionCall","src":"10177:17:53"},{"name":"end","nativeSrc":"10196:3:53","nodeType":"YulIdentifier","src":"10196:3:53"}],"functionName":{"name":"slt","nativeSrc":"10173:3:53","nodeType":"YulIdentifier","src":"10173:3:53"},"nativeSrc":"10173:27:53","nodeType":"YulFunctionCall","src":"10173:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10166:6:53","nodeType":"YulIdentifier","src":"10166:6:53"},"nativeSrc":"10166:35:53","nodeType":"YulFunctionCall","src":"10166:35:53"},"nativeSrc":"10163:122:53","nodeType":"YulIf","src":"10163:122:53"},{"nativeSrc":"10294:30:53","nodeType":"YulAssignment","src":"10294:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"10317:6:53","nodeType":"YulIdentifier","src":"10317:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10304:12:53","nodeType":"YulIdentifier","src":"10304:12:53"},"nativeSrc":"10304:20:53","nodeType":"YulFunctionCall","src":"10304:20:53"},"variableNames":[{"name":"length","nativeSrc":"10294:6:53","nodeType":"YulIdentifier","src":"10294:6:53"}]},{"body":{"nativeSrc":"10367:83:53","nodeType":"YulBlock","src":"10367:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10369:77:53","nodeType":"YulIdentifier","src":"10369:77:53"},"nativeSrc":"10369:79:53","nodeType":"YulFunctionCall","src":"10369:79:53"},"nativeSrc":"10369:79:53","nodeType":"YulExpressionStatement","src":"10369:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10339:6:53","nodeType":"YulIdentifier","src":"10339:6:53"},{"kind":"number","nativeSrc":"10347:18:53","nodeType":"YulLiteral","src":"10347:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10336:2:53","nodeType":"YulIdentifier","src":"10336:2:53"},"nativeSrc":"10336:30:53","nodeType":"YulFunctionCall","src":"10336:30:53"},"nativeSrc":"10333:117:53","nodeType":"YulIf","src":"10333:117:53"},{"nativeSrc":"10459:29:53","nodeType":"YulAssignment","src":"10459:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10475:6:53","nodeType":"YulIdentifier","src":"10475:6:53"},{"kind":"number","nativeSrc":"10483:4:53","nodeType":"YulLiteral","src":"10483:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10471:3:53","nodeType":"YulIdentifier","src":"10471:3:53"},"nativeSrc":"10471:17:53","nodeType":"YulFunctionCall","src":"10471:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"10459:8:53","nodeType":"YulIdentifier","src":"10459:8:53"}]},{"body":{"nativeSrc":"10542:83:53","nodeType":"YulBlock","src":"10542:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10544:77:53","nodeType":"YulIdentifier","src":"10544:77:53"},"nativeSrc":"10544:79:53","nodeType":"YulFunctionCall","src":"10544:79:53"},"nativeSrc":"10544:79:53","nodeType":"YulExpressionStatement","src":"10544:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10507:8:53","nodeType":"YulIdentifier","src":"10507:8:53"},{"arguments":[{"name":"length","nativeSrc":"10521:6:53","nodeType":"YulIdentifier","src":"10521:6:53"},{"kind":"number","nativeSrc":"10529:4:53","nodeType":"YulLiteral","src":"10529:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"10517:3:53","nodeType":"YulIdentifier","src":"10517:3:53"},"nativeSrc":"10517:17:53","nodeType":"YulFunctionCall","src":"10517:17:53"}],"functionName":{"name":"add","nativeSrc":"10503:3:53","nodeType":"YulIdentifier","src":"10503:3:53"},"nativeSrc":"10503:32:53","nodeType":"YulFunctionCall","src":"10503:32:53"},{"name":"end","nativeSrc":"10537:3:53","nodeType":"YulIdentifier","src":"10537:3:53"}],"functionName":{"name":"gt","nativeSrc":"10500:2:53","nodeType":"YulIdentifier","src":"10500:2:53"},"nativeSrc":"10500:41:53","nodeType":"YulFunctionCall","src":"10500:41:53"},"nativeSrc":"10497:128:53","nodeType":"YulIf","src":"10497:128:53"}]},"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"10078:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10120:6:53","nodeType":"YulTypedName","src":"10120:6:53","type":""},{"name":"end","nativeSrc":"10128:3:53","nodeType":"YulTypedName","src":"10128:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"10136:8:53","nodeType":"YulTypedName","src":"10136:8:53","type":""},{"name":"length","nativeSrc":"10146:6:53","nodeType":"YulTypedName","src":"10146:6:53","type":""}],"src":"10078:553:53"},{"body":{"nativeSrc":"10792:846:53","nodeType":"YulBlock","src":"10792:846:53","statements":[{"body":{"nativeSrc":"10839:83:53","nodeType":"YulBlock","src":"10839:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10841:77:53","nodeType":"YulIdentifier","src":"10841:77:53"},"nativeSrc":"10841:79:53","nodeType":"YulFunctionCall","src":"10841:79:53"},"nativeSrc":"10841:79:53","nodeType":"YulExpressionStatement","src":"10841:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10813:7:53","nodeType":"YulIdentifier","src":"10813:7:53"},{"name":"headStart","nativeSrc":"10822:9:53","nodeType":"YulIdentifier","src":"10822:9:53"}],"functionName":{"name":"sub","nativeSrc":"10809:3:53","nodeType":"YulIdentifier","src":"10809:3:53"},"nativeSrc":"10809:23:53","nodeType":"YulFunctionCall","src":"10809:23:53"},{"kind":"number","nativeSrc":"10834:3:53","nodeType":"YulLiteral","src":"10834:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10805:3:53","nodeType":"YulIdentifier","src":"10805:3:53"},"nativeSrc":"10805:33:53","nodeType":"YulFunctionCall","src":"10805:33:53"},"nativeSrc":"10802:120:53","nodeType":"YulIf","src":"10802:120:53"},{"nativeSrc":"10932:135:53","nodeType":"YulBlock","src":"10932:135:53","statements":[{"nativeSrc":"10947:15:53","nodeType":"YulVariableDeclaration","src":"10947:15:53","value":{"kind":"number","nativeSrc":"10961:1:53","nodeType":"YulLiteral","src":"10961:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10951:6:53","nodeType":"YulTypedName","src":"10951:6:53","type":""}]},{"nativeSrc":"10976:81:53","nodeType":"YulAssignment","src":"10976:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11029:9:53","nodeType":"YulIdentifier","src":"11029:9:53"},{"name":"offset","nativeSrc":"11040:6:53","nodeType":"YulIdentifier","src":"11040:6:53"}],"functionName":{"name":"add","nativeSrc":"11025:3:53","nodeType":"YulIdentifier","src":"11025:3:53"},"nativeSrc":"11025:22:53","nodeType":"YulFunctionCall","src":"11025:22:53"},{"name":"dataEnd","nativeSrc":"11049:7:53","nodeType":"YulIdentifier","src":"11049:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"10986:38:53","nodeType":"YulIdentifier","src":"10986:38:53"},"nativeSrc":"10986:71:53","nodeType":"YulFunctionCall","src":"10986:71:53"},"variableNames":[{"name":"value0","nativeSrc":"10976:6:53","nodeType":"YulIdentifier","src":"10976:6:53"}]}]},{"nativeSrc":"11077:118:53","nodeType":"YulBlock","src":"11077:118:53","statements":[{"nativeSrc":"11092:16:53","nodeType":"YulVariableDeclaration","src":"11092:16:53","value":{"kind":"number","nativeSrc":"11106:2:53","nodeType":"YulLiteral","src":"11106:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11096:6:53","nodeType":"YulTypedName","src":"11096:6:53","type":""}]},{"nativeSrc":"11122:63:53","nodeType":"YulAssignment","src":"11122:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11157:9:53","nodeType":"YulIdentifier","src":"11157:9:53"},{"name":"offset","nativeSrc":"11168:6:53","nodeType":"YulIdentifier","src":"11168:6:53"}],"functionName":{"name":"add","nativeSrc":"11153:3:53","nodeType":"YulIdentifier","src":"11153:3:53"},"nativeSrc":"11153:22:53","nodeType":"YulFunctionCall","src":"11153:22:53"},{"name":"dataEnd","nativeSrc":"11177:7:53","nodeType":"YulIdentifier","src":"11177:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11132:20:53","nodeType":"YulIdentifier","src":"11132:20:53"},"nativeSrc":"11132:53:53","nodeType":"YulFunctionCall","src":"11132:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11122:6:53","nodeType":"YulIdentifier","src":"11122:6:53"}]}]},{"nativeSrc":"11205:118:53","nodeType":"YulBlock","src":"11205:118:53","statements":[{"nativeSrc":"11220:16:53","nodeType":"YulVariableDeclaration","src":"11220:16:53","value":{"kind":"number","nativeSrc":"11234:2:53","nodeType":"YulLiteral","src":"11234:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11224:6:53","nodeType":"YulTypedName","src":"11224:6:53","type":""}]},{"nativeSrc":"11250:63:53","nodeType":"YulAssignment","src":"11250:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11285:9:53","nodeType":"YulIdentifier","src":"11285:9:53"},{"name":"offset","nativeSrc":"11296:6:53","nodeType":"YulIdentifier","src":"11296:6:53"}],"functionName":{"name":"add","nativeSrc":"11281:3:53","nodeType":"YulIdentifier","src":"11281:3:53"},"nativeSrc":"11281:22:53","nodeType":"YulFunctionCall","src":"11281:22:53"},{"name":"dataEnd","nativeSrc":"11305:7:53","nodeType":"YulIdentifier","src":"11305:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11260:20:53","nodeType":"YulIdentifier","src":"11260:20:53"},"nativeSrc":"11260:53:53","nodeType":"YulFunctionCall","src":"11260:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11250:6:53","nodeType":"YulIdentifier","src":"11250:6:53"}]}]},{"nativeSrc":"11333:298:53","nodeType":"YulBlock","src":"11333:298:53","statements":[{"nativeSrc":"11348:46:53","nodeType":"YulVariableDeclaration","src":"11348:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11379:9:53","nodeType":"YulIdentifier","src":"11379:9:53"},{"kind":"number","nativeSrc":"11390:2:53","nodeType":"YulLiteral","src":"11390:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11375:3:53","nodeType":"YulIdentifier","src":"11375:3:53"},"nativeSrc":"11375:18:53","nodeType":"YulFunctionCall","src":"11375:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11362:12:53","nodeType":"YulIdentifier","src":"11362:12:53"},"nativeSrc":"11362:32:53","nodeType":"YulFunctionCall","src":"11362:32:53"},"variables":[{"name":"offset","nativeSrc":"11352:6:53","nodeType":"YulTypedName","src":"11352:6:53","type":""}]},{"body":{"nativeSrc":"11441:83:53","nodeType":"YulBlock","src":"11441:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11443:77:53","nodeType":"YulIdentifier","src":"11443:77:53"},"nativeSrc":"11443:79:53","nodeType":"YulFunctionCall","src":"11443:79:53"},"nativeSrc":"11443:79:53","nodeType":"YulExpressionStatement","src":"11443:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11413:6:53","nodeType":"YulIdentifier","src":"11413:6:53"},{"kind":"number","nativeSrc":"11421:18:53","nodeType":"YulLiteral","src":"11421:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11410:2:53","nodeType":"YulIdentifier","src":"11410:2:53"},"nativeSrc":"11410:30:53","nodeType":"YulFunctionCall","src":"11410:30:53"},"nativeSrc":"11407:117:53","nodeType":"YulIf","src":"11407:117:53"},{"nativeSrc":"11538:83:53","nodeType":"YulAssignment","src":"11538:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11593:9:53","nodeType":"YulIdentifier","src":"11593:9:53"},{"name":"offset","nativeSrc":"11604:6:53","nodeType":"YulIdentifier","src":"11604:6:53"}],"functionName":{"name":"add","nativeSrc":"11589:3:53","nodeType":"YulIdentifier","src":"11589:3:53"},"nativeSrc":"11589:22:53","nodeType":"YulFunctionCall","src":"11589:22:53"},{"name":"dataEnd","nativeSrc":"11613:7:53","nodeType":"YulIdentifier","src":"11613:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"11556:32:53","nodeType":"YulIdentifier","src":"11556:32:53"},"nativeSrc":"11556:65:53","nodeType":"YulFunctionCall","src":"11556:65:53"},"variableNames":[{"name":"value3","nativeSrc":"11538:6:53","nodeType":"YulIdentifier","src":"11538:6:53"},{"name":"value4","nativeSrc":"11546:6:53","nodeType":"YulIdentifier","src":"11546:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_addresst_string_calldata_ptr","nativeSrc":"10637:1001:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10730:9:53","nodeType":"YulTypedName","src":"10730:9:53","type":""},{"name":"dataEnd","nativeSrc":"10741:7:53","nodeType":"YulTypedName","src":"10741:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10753:6:53","nodeType":"YulTypedName","src":"10753:6:53","type":""},{"name":"value1","nativeSrc":"10761:6:53","nodeType":"YulTypedName","src":"10761:6:53","type":""},{"name":"value2","nativeSrc":"10769:6:53","nodeType":"YulTypedName","src":"10769:6:53","type":""},{"name":"value3","nativeSrc":"10777:6:53","nodeType":"YulTypedName","src":"10777:6:53","type":""},{"name":"value4","nativeSrc":"10785:6:53","nodeType":"YulTypedName","src":"10785:6:53","type":""}],"src":"10637:1001:53"},{"body":{"nativeSrc":"11709:53:53","nodeType":"YulBlock","src":"11709:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11726:3:53","nodeType":"YulIdentifier","src":"11726:3:53"},{"arguments":[{"name":"value","nativeSrc":"11749:5:53","nodeType":"YulIdentifier","src":"11749:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"11731:17:53","nodeType":"YulIdentifier","src":"11731:17:53"},"nativeSrc":"11731:24:53","nodeType":"YulFunctionCall","src":"11731:24:53"}],"functionName":{"name":"mstore","nativeSrc":"11719:6:53","nodeType":"YulIdentifier","src":"11719:6:53"},"nativeSrc":"11719:37:53","nodeType":"YulFunctionCall","src":"11719:37:53"},"nativeSrc":"11719:37:53","nodeType":"YulExpressionStatement","src":"11719:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"11644:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11697:5:53","nodeType":"YulTypedName","src":"11697:5:53","type":""},{"name":"pos","nativeSrc":"11704:3:53","nodeType":"YulTypedName","src":"11704:3:53","type":""}],"src":"11644:118:53"},{"body":{"nativeSrc":"11866:124:53","nodeType":"YulBlock","src":"11866:124:53","statements":[{"nativeSrc":"11876:26:53","nodeType":"YulAssignment","src":"11876:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11888:9:53","nodeType":"YulIdentifier","src":"11888:9:53"},{"kind":"number","nativeSrc":"11899:2:53","nodeType":"YulLiteral","src":"11899:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11884:3:53","nodeType":"YulIdentifier","src":"11884:3:53"},"nativeSrc":"11884:18:53","nodeType":"YulFunctionCall","src":"11884:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11876:4:53","nodeType":"YulIdentifier","src":"11876:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11956:6:53","nodeType":"YulIdentifier","src":"11956:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"11969:9:53","nodeType":"YulIdentifier","src":"11969:9:53"},{"kind":"number","nativeSrc":"11980:1:53","nodeType":"YulLiteral","src":"11980:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11965:3:53","nodeType":"YulIdentifier","src":"11965:3:53"},"nativeSrc":"11965:17:53","nodeType":"YulFunctionCall","src":"11965:17:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"11912:43:53","nodeType":"YulIdentifier","src":"11912:43:53"},"nativeSrc":"11912:71:53","nodeType":"YulFunctionCall","src":"11912:71:53"},"nativeSrc":"11912:71:53","nodeType":"YulExpressionStatement","src":"11912:71:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"11768:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11838:9:53","nodeType":"YulTypedName","src":"11838:9:53","type":""},{"name":"value0","nativeSrc":"11850:6:53","nodeType":"YulTypedName","src":"11850:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11861:4:53","nodeType":"YulTypedName","src":"11861:4:53","type":""}],"src":"11768:222:53"},{"body":{"nativeSrc":"12134:717:53","nodeType":"YulBlock","src":"12134:717:53","statements":[{"body":{"nativeSrc":"12180:83:53","nodeType":"YulBlock","src":"12180:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12182:77:53","nodeType":"YulIdentifier","src":"12182:77:53"},"nativeSrc":"12182:79:53","nodeType":"YulFunctionCall","src":"12182:79:53"},"nativeSrc":"12182:79:53","nodeType":"YulExpressionStatement","src":"12182:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12155:7:53","nodeType":"YulIdentifier","src":"12155:7:53"},{"name":"headStart","nativeSrc":"12164:9:53","nodeType":"YulIdentifier","src":"12164:9:53"}],"functionName":{"name":"sub","nativeSrc":"12151:3:53","nodeType":"YulIdentifier","src":"12151:3:53"},"nativeSrc":"12151:23:53","nodeType":"YulFunctionCall","src":"12151:23:53"},{"kind":"number","nativeSrc":"12176:2:53","nodeType":"YulLiteral","src":"12176:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"12147:3:53","nodeType":"YulIdentifier","src":"12147:3:53"},"nativeSrc":"12147:32:53","nodeType":"YulFunctionCall","src":"12147:32:53"},"nativeSrc":"12144:119:53","nodeType":"YulIf","src":"12144:119:53"},{"nativeSrc":"12273:135:53","nodeType":"YulBlock","src":"12273:135:53","statements":[{"nativeSrc":"12288:15:53","nodeType":"YulVariableDeclaration","src":"12288:15:53","value":{"kind":"number","nativeSrc":"12302:1:53","nodeType":"YulLiteral","src":"12302:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12292:6:53","nodeType":"YulTypedName","src":"12292:6:53","type":""}]},{"nativeSrc":"12317:81:53","nodeType":"YulAssignment","src":"12317:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12370:9:53","nodeType":"YulIdentifier","src":"12370:9:53"},{"name":"offset","nativeSrc":"12381:6:53","nodeType":"YulIdentifier","src":"12381:6:53"}],"functionName":{"name":"add","nativeSrc":"12366:3:53","nodeType":"YulIdentifier","src":"12366:3:53"},"nativeSrc":"12366:22:53","nodeType":"YulFunctionCall","src":"12366:22:53"},{"name":"dataEnd","nativeSrc":"12390:7:53","nodeType":"YulIdentifier","src":"12390:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"12327:38:53","nodeType":"YulIdentifier","src":"12327:38:53"},"nativeSrc":"12327:71:53","nodeType":"YulFunctionCall","src":"12327:71:53"},"variableNames":[{"name":"value0","nativeSrc":"12317:6:53","nodeType":"YulIdentifier","src":"12317:6:53"}]}]},{"nativeSrc":"12418:298:53","nodeType":"YulBlock","src":"12418:298:53","statements":[{"nativeSrc":"12433:46:53","nodeType":"YulVariableDeclaration","src":"12433:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12464:9:53","nodeType":"YulIdentifier","src":"12464:9:53"},{"kind":"number","nativeSrc":"12475:2:53","nodeType":"YulLiteral","src":"12475:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12460:3:53","nodeType":"YulIdentifier","src":"12460:3:53"},"nativeSrc":"12460:18:53","nodeType":"YulFunctionCall","src":"12460:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12447:12:53","nodeType":"YulIdentifier","src":"12447:12:53"},"nativeSrc":"12447:32:53","nodeType":"YulFunctionCall","src":"12447:32:53"},"variables":[{"name":"offset","nativeSrc":"12437:6:53","nodeType":"YulTypedName","src":"12437:6:53","type":""}]},{"body":{"nativeSrc":"12526:83:53","nodeType":"YulBlock","src":"12526:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12528:77:53","nodeType":"YulIdentifier","src":"12528:77:53"},"nativeSrc":"12528:79:53","nodeType":"YulFunctionCall","src":"12528:79:53"},"nativeSrc":"12528:79:53","nodeType":"YulExpressionStatement","src":"12528:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12498:6:53","nodeType":"YulIdentifier","src":"12498:6:53"},{"kind":"number","nativeSrc":"12506:18:53","nodeType":"YulLiteral","src":"12506:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12495:2:53","nodeType":"YulIdentifier","src":"12495:2:53"},"nativeSrc":"12495:30:53","nodeType":"YulFunctionCall","src":"12495:30:53"},"nativeSrc":"12492:117:53","nodeType":"YulIf","src":"12492:117:53"},{"nativeSrc":"12623:83:53","nodeType":"YulAssignment","src":"12623:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12678:9:53","nodeType":"YulIdentifier","src":"12678:9:53"},{"name":"offset","nativeSrc":"12689:6:53","nodeType":"YulIdentifier","src":"12689:6:53"}],"functionName":{"name":"add","nativeSrc":"12674:3:53","nodeType":"YulIdentifier","src":"12674:3:53"},"nativeSrc":"12674:22:53","nodeType":"YulFunctionCall","src":"12674:22:53"},{"name":"dataEnd","nativeSrc":"12698:7:53","nodeType":"YulIdentifier","src":"12698:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"12641:32:53","nodeType":"YulIdentifier","src":"12641:32:53"},"nativeSrc":"12641:65:53","nodeType":"YulFunctionCall","src":"12641:65:53"},"variableNames":[{"name":"value1","nativeSrc":"12623:6:53","nodeType":"YulIdentifier","src":"12623:6:53"},{"name":"value2","nativeSrc":"12631:6:53","nodeType":"YulIdentifier","src":"12631:6:53"}]}]},{"nativeSrc":"12726:118:53","nodeType":"YulBlock","src":"12726:118:53","statements":[{"nativeSrc":"12741:16:53","nodeType":"YulVariableDeclaration","src":"12741:16:53","value":{"kind":"number","nativeSrc":"12755:2:53","nodeType":"YulLiteral","src":"12755:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"12745:6:53","nodeType":"YulTypedName","src":"12745:6:53","type":""}]},{"nativeSrc":"12771:63:53","nodeType":"YulAssignment","src":"12771:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12806:9:53","nodeType":"YulIdentifier","src":"12806:9:53"},{"name":"offset","nativeSrc":"12817:6:53","nodeType":"YulIdentifier","src":"12817:6:53"}],"functionName":{"name":"add","nativeSrc":"12802:3:53","nodeType":"YulIdentifier","src":"12802:3:53"},"nativeSrc":"12802:22:53","nodeType":"YulFunctionCall","src":"12802:22:53"},{"name":"dataEnd","nativeSrc":"12826:7:53","nodeType":"YulIdentifier","src":"12826:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12781:20:53","nodeType":"YulIdentifier","src":"12781:20:53"},"nativeSrc":"12781:53:53","nodeType":"YulFunctionCall","src":"12781:53:53"},"variableNames":[{"name":"value3","nativeSrc":"12771:6:53","nodeType":"YulIdentifier","src":"12771:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptrt_address","nativeSrc":"11996:855:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12080:9:53","nodeType":"YulTypedName","src":"12080:9:53","type":""},{"name":"dataEnd","nativeSrc":"12091:7:53","nodeType":"YulTypedName","src":"12091:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12103:6:53","nodeType":"YulTypedName","src":"12103:6:53","type":""},{"name":"value1","nativeSrc":"12111:6:53","nodeType":"YulTypedName","src":"12111:6:53","type":""},{"name":"value2","nativeSrc":"12119:6:53","nodeType":"YulTypedName","src":"12119:6:53","type":""},{"name":"value3","nativeSrc":"12127:6:53","nodeType":"YulTypedName","src":"12127:6:53","type":""}],"src":"11996:855:53"},{"body":{"nativeSrc":"12978:589:53","nodeType":"YulBlock","src":"12978:589:53","statements":[{"body":{"nativeSrc":"13024:83:53","nodeType":"YulBlock","src":"13024:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13026:77:53","nodeType":"YulIdentifier","src":"13026:77:53"},"nativeSrc":"13026:79:53","nodeType":"YulFunctionCall","src":"13026:79:53"},"nativeSrc":"13026:79:53","nodeType":"YulExpressionStatement","src":"13026:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12999:7:53","nodeType":"YulIdentifier","src":"12999:7:53"},{"name":"headStart","nativeSrc":"13008:9:53","nodeType":"YulIdentifier","src":"13008:9:53"}],"functionName":{"name":"sub","nativeSrc":"12995:3:53","nodeType":"YulIdentifier","src":"12995:3:53"},"nativeSrc":"12995:23:53","nodeType":"YulFunctionCall","src":"12995:23:53"},{"kind":"number","nativeSrc":"13020:2:53","nodeType":"YulLiteral","src":"13020:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12991:3:53","nodeType":"YulIdentifier","src":"12991:3:53"},"nativeSrc":"12991:32:53","nodeType":"YulFunctionCall","src":"12991:32:53"},"nativeSrc":"12988:119:53","nodeType":"YulIf","src":"12988:119:53"},{"nativeSrc":"13117:135:53","nodeType":"YulBlock","src":"13117:135:53","statements":[{"nativeSrc":"13132:15:53","nodeType":"YulVariableDeclaration","src":"13132:15:53","value":{"kind":"number","nativeSrc":"13146:1:53","nodeType":"YulLiteral","src":"13146:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"13136:6:53","nodeType":"YulTypedName","src":"13136:6:53","type":""}]},{"nativeSrc":"13161:81:53","nodeType":"YulAssignment","src":"13161:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13214:9:53","nodeType":"YulIdentifier","src":"13214:9:53"},{"name":"offset","nativeSrc":"13225:6:53","nodeType":"YulIdentifier","src":"13225:6:53"}],"functionName":{"name":"add","nativeSrc":"13210:3:53","nodeType":"YulIdentifier","src":"13210:3:53"},"nativeSrc":"13210:22:53","nodeType":"YulFunctionCall","src":"13210:22:53"},{"name":"dataEnd","nativeSrc":"13234:7:53","nodeType":"YulIdentifier","src":"13234:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"13171:38:53","nodeType":"YulIdentifier","src":"13171:38:53"},"nativeSrc":"13171:71:53","nodeType":"YulFunctionCall","src":"13171:71:53"},"variableNames":[{"name":"value0","nativeSrc":"13161:6:53","nodeType":"YulIdentifier","src":"13161:6:53"}]}]},{"nativeSrc":"13262:298:53","nodeType":"YulBlock","src":"13262:298:53","statements":[{"nativeSrc":"13277:46:53","nodeType":"YulVariableDeclaration","src":"13277:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13308:9:53","nodeType":"YulIdentifier","src":"13308:9:53"},{"kind":"number","nativeSrc":"13319:2:53","nodeType":"YulLiteral","src":"13319:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13304:3:53","nodeType":"YulIdentifier","src":"13304:3:53"},"nativeSrc":"13304:18:53","nodeType":"YulFunctionCall","src":"13304:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"13291:12:53","nodeType":"YulIdentifier","src":"13291:12:53"},"nativeSrc":"13291:32:53","nodeType":"YulFunctionCall","src":"13291:32:53"},"variables":[{"name":"offset","nativeSrc":"13281:6:53","nodeType":"YulTypedName","src":"13281:6:53","type":""}]},{"body":{"nativeSrc":"13370:83:53","nodeType":"YulBlock","src":"13370:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13372:77:53","nodeType":"YulIdentifier","src":"13372:77:53"},"nativeSrc":"13372:79:53","nodeType":"YulFunctionCall","src":"13372:79:53"},"nativeSrc":"13372:79:53","nodeType":"YulExpressionStatement","src":"13372:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13342:6:53","nodeType":"YulIdentifier","src":"13342:6:53"},{"kind":"number","nativeSrc":"13350:18:53","nodeType":"YulLiteral","src":"13350:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13339:2:53","nodeType":"YulIdentifier","src":"13339:2:53"},"nativeSrc":"13339:30:53","nodeType":"YulFunctionCall","src":"13339:30:53"},"nativeSrc":"13336:117:53","nodeType":"YulIf","src":"13336:117:53"},{"nativeSrc":"13467:83:53","nodeType":"YulAssignment","src":"13467:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13522:9:53","nodeType":"YulIdentifier","src":"13522:9:53"},{"name":"offset","nativeSrc":"13533:6:53","nodeType":"YulIdentifier","src":"13533:6:53"}],"functionName":{"name":"add","nativeSrc":"13518:3:53","nodeType":"YulIdentifier","src":"13518:3:53"},"nativeSrc":"13518:22:53","nodeType":"YulFunctionCall","src":"13518:22:53"},{"name":"dataEnd","nativeSrc":"13542:7:53","nodeType":"YulIdentifier","src":"13542:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"13485:32:53","nodeType":"YulIdentifier","src":"13485:32:53"},"nativeSrc":"13485:65:53","nodeType":"YulFunctionCall","src":"13485:65:53"},"variableNames":[{"name":"value1","nativeSrc":"13467:6:53","nodeType":"YulIdentifier","src":"13467:6:53"},{"name":"value2","nativeSrc":"13475:6:53","nodeType":"YulIdentifier","src":"13475:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptr","nativeSrc":"12857:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12932:9:53","nodeType":"YulTypedName","src":"12932:9:53","type":""},{"name":"dataEnd","nativeSrc":"12943:7:53","nodeType":"YulTypedName","src":"12943:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12955:6:53","nodeType":"YulTypedName","src":"12955:6:53","type":""},{"name":"value1","nativeSrc":"12963:6:53","nodeType":"YulTypedName","src":"12963:6:53","type":""},{"name":"value2","nativeSrc":"12971:6:53","nodeType":"YulTypedName","src":"12971:6:53","type":""}],"src":"12857:710:53"},{"body":{"nativeSrc":"13660:478:53","nodeType":"YulBlock","src":"13660:478:53","statements":[{"body":{"nativeSrc":"13709:83:53","nodeType":"YulBlock","src":"13709:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"13711:77:53","nodeType":"YulIdentifier","src":"13711:77:53"},"nativeSrc":"13711:79:53","nodeType":"YulFunctionCall","src":"13711:79:53"},"nativeSrc":"13711:79:53","nodeType":"YulExpressionStatement","src":"13711:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13688:6:53","nodeType":"YulIdentifier","src":"13688:6:53"},{"kind":"number","nativeSrc":"13696:4:53","nodeType":"YulLiteral","src":"13696:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"13684:3:53","nodeType":"YulIdentifier","src":"13684:3:53"},"nativeSrc":"13684:17:53","nodeType":"YulFunctionCall","src":"13684:17:53"},{"name":"end","nativeSrc":"13703:3:53","nodeType":"YulIdentifier","src":"13703:3:53"}],"functionName":{"name":"slt","nativeSrc":"13680:3:53","nodeType":"YulIdentifier","src":"13680:3:53"},"nativeSrc":"13680:27:53","nodeType":"YulFunctionCall","src":"13680:27:53"}],"functionName":{"name":"iszero","nativeSrc":"13673:6:53","nodeType":"YulIdentifier","src":"13673:6:53"},"nativeSrc":"13673:35:53","nodeType":"YulFunctionCall","src":"13673:35:53"},"nativeSrc":"13670:122:53","nodeType":"YulIf","src":"13670:122:53"},{"nativeSrc":"13801:30:53","nodeType":"YulAssignment","src":"13801:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"13824:6:53","nodeType":"YulIdentifier","src":"13824:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"13811:12:53","nodeType":"YulIdentifier","src":"13811:12:53"},"nativeSrc":"13811:20:53","nodeType":"YulFunctionCall","src":"13811:20:53"},"variableNames":[{"name":"length","nativeSrc":"13801:6:53","nodeType":"YulIdentifier","src":"13801:6:53"}]},{"body":{"nativeSrc":"13874:83:53","nodeType":"YulBlock","src":"13874:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"13876:77:53","nodeType":"YulIdentifier","src":"13876:77:53"},"nativeSrc":"13876:79:53","nodeType":"YulFunctionCall","src":"13876:79:53"},"nativeSrc":"13876:79:53","nodeType":"YulExpressionStatement","src":"13876:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13846:6:53","nodeType":"YulIdentifier","src":"13846:6:53"},{"kind":"number","nativeSrc":"13854:18:53","nodeType":"YulLiteral","src":"13854:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13843:2:53","nodeType":"YulIdentifier","src":"13843:2:53"},"nativeSrc":"13843:30:53","nodeType":"YulFunctionCall","src":"13843:30:53"},"nativeSrc":"13840:117:53","nodeType":"YulIf","src":"13840:117:53"},{"nativeSrc":"13966:29:53","nodeType":"YulAssignment","src":"13966:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"13982:6:53","nodeType":"YulIdentifier","src":"13982:6:53"},{"kind":"number","nativeSrc":"13990:4:53","nodeType":"YulLiteral","src":"13990:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13978:3:53","nodeType":"YulIdentifier","src":"13978:3:53"},"nativeSrc":"13978:17:53","nodeType":"YulFunctionCall","src":"13978:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"13966:8:53","nodeType":"YulIdentifier","src":"13966:8:53"}]},{"body":{"nativeSrc":"14049:83:53","nodeType":"YulBlock","src":"14049:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"14051:77:53","nodeType":"YulIdentifier","src":"14051:77:53"},"nativeSrc":"14051:79:53","nodeType":"YulFunctionCall","src":"14051:79:53"},"nativeSrc":"14051:79:53","nodeType":"YulExpressionStatement","src":"14051:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"14014:8:53","nodeType":"YulIdentifier","src":"14014:8:53"},{"arguments":[{"name":"length","nativeSrc":"14028:6:53","nodeType":"YulIdentifier","src":"14028:6:53"},{"kind":"number","nativeSrc":"14036:4:53","nodeType":"YulLiteral","src":"14036:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"14024:3:53","nodeType":"YulIdentifier","src":"14024:3:53"},"nativeSrc":"14024:17:53","nodeType":"YulFunctionCall","src":"14024:17:53"}],"functionName":{"name":"add","nativeSrc":"14010:3:53","nodeType":"YulIdentifier","src":"14010:3:53"},"nativeSrc":"14010:32:53","nodeType":"YulFunctionCall","src":"14010:32:53"},{"name":"end","nativeSrc":"14044:3:53","nodeType":"YulIdentifier","src":"14044:3:53"}],"functionName":{"name":"gt","nativeSrc":"14007:2:53","nodeType":"YulIdentifier","src":"14007:2:53"},"nativeSrc":"14007:41:53","nodeType":"YulFunctionCall","src":"14007:41:53"},"nativeSrc":"14004:128:53","nodeType":"YulIf","src":"14004:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"13586:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13627:6:53","nodeType":"YulTypedName","src":"13627:6:53","type":""},{"name":"end","nativeSrc":"13635:3:53","nodeType":"YulTypedName","src":"13635:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"13643:8:53","nodeType":"YulTypedName","src":"13643:8:53","type":""},{"name":"length","nativeSrc":"13653:6:53","nodeType":"YulTypedName","src":"13653:6:53","type":""}],"src":"13586:552:53"},{"body":{"nativeSrc":"14318:1025:53","nodeType":"YulBlock","src":"14318:1025:53","statements":[{"body":{"nativeSrc":"14365:83:53","nodeType":"YulBlock","src":"14365:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14367:77:53","nodeType":"YulIdentifier","src":"14367:77:53"},"nativeSrc":"14367:79:53","nodeType":"YulFunctionCall","src":"14367:79:53"},"nativeSrc":"14367:79:53","nodeType":"YulExpressionStatement","src":"14367:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14339:7:53","nodeType":"YulIdentifier","src":"14339:7:53"},{"name":"headStart","nativeSrc":"14348:9:53","nodeType":"YulIdentifier","src":"14348:9:53"}],"functionName":{"name":"sub","nativeSrc":"14335:3:53","nodeType":"YulIdentifier","src":"14335:3:53"},"nativeSrc":"14335:23:53","nodeType":"YulFunctionCall","src":"14335:23:53"},{"kind":"number","nativeSrc":"14360:3:53","nodeType":"YulLiteral","src":"14360:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"14331:3:53","nodeType":"YulIdentifier","src":"14331:3:53"},"nativeSrc":"14331:33:53","nodeType":"YulFunctionCall","src":"14331:33:53"},"nativeSrc":"14328:120:53","nodeType":"YulIf","src":"14328:120:53"},{"nativeSrc":"14458:135:53","nodeType":"YulBlock","src":"14458:135:53","statements":[{"nativeSrc":"14473:15:53","nodeType":"YulVariableDeclaration","src":"14473:15:53","value":{"kind":"number","nativeSrc":"14487:1:53","nodeType":"YulLiteral","src":"14487:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14477:6:53","nodeType":"YulTypedName","src":"14477:6:53","type":""}]},{"nativeSrc":"14502:81:53","nodeType":"YulAssignment","src":"14502:81:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14555:9:53","nodeType":"YulIdentifier","src":"14555:9:53"},{"name":"offset","nativeSrc":"14566:6:53","nodeType":"YulIdentifier","src":"14566:6:53"}],"functionName":{"name":"add","nativeSrc":"14551:3:53","nodeType":"YulIdentifier","src":"14551:3:53"},"nativeSrc":"14551:22:53","nodeType":"YulFunctionCall","src":"14551:22:53"},{"name":"dataEnd","nativeSrc":"14575:7:53","nodeType":"YulIdentifier","src":"14575:7:53"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12294","nativeSrc":"14512:38:53","nodeType":"YulIdentifier","src":"14512:38:53"},"nativeSrc":"14512:71:53","nodeType":"YulFunctionCall","src":"14512:71:53"},"variableNames":[{"name":"value0","nativeSrc":"14502:6:53","nodeType":"YulIdentifier","src":"14502:6:53"}]}]},{"nativeSrc":"14603:118:53","nodeType":"YulBlock","src":"14603:118:53","statements":[{"nativeSrc":"14618:16:53","nodeType":"YulVariableDeclaration","src":"14618:16:53","value":{"kind":"number","nativeSrc":"14632:2:53","nodeType":"YulLiteral","src":"14632:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"14622:6:53","nodeType":"YulTypedName","src":"14622:6:53","type":""}]},{"nativeSrc":"14648:63:53","nodeType":"YulAssignment","src":"14648:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14683:9:53","nodeType":"YulIdentifier","src":"14683:9:53"},{"name":"offset","nativeSrc":"14694:6:53","nodeType":"YulIdentifier","src":"14694:6:53"}],"functionName":{"name":"add","nativeSrc":"14679:3:53","nodeType":"YulIdentifier","src":"14679:3:53"},"nativeSrc":"14679:22:53","nodeType":"YulFunctionCall","src":"14679:22:53"},{"name":"dataEnd","nativeSrc":"14703:7:53","nodeType":"YulIdentifier","src":"14703:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"14658:20:53","nodeType":"YulIdentifier","src":"14658:20:53"},"nativeSrc":"14658:53:53","nodeType":"YulFunctionCall","src":"14658:53:53"},"variableNames":[{"name":"value1","nativeSrc":"14648:6:53","nodeType":"YulIdentifier","src":"14648:6:53"}]}]},{"nativeSrc":"14731:298:53","nodeType":"YulBlock","src":"14731:298:53","statements":[{"nativeSrc":"14746:46:53","nodeType":"YulVariableDeclaration","src":"14746:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14777:9:53","nodeType":"YulIdentifier","src":"14777:9:53"},{"kind":"number","nativeSrc":"14788:2:53","nodeType":"YulLiteral","src":"14788:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14773:3:53","nodeType":"YulIdentifier","src":"14773:3:53"},"nativeSrc":"14773:18:53","nodeType":"YulFunctionCall","src":"14773:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"14760:12:53","nodeType":"YulIdentifier","src":"14760:12:53"},"nativeSrc":"14760:32:53","nodeType":"YulFunctionCall","src":"14760:32:53"},"variables":[{"name":"offset","nativeSrc":"14750:6:53","nodeType":"YulTypedName","src":"14750:6:53","type":""}]},{"body":{"nativeSrc":"14839:83:53","nodeType":"YulBlock","src":"14839:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"14841:77:53","nodeType":"YulIdentifier","src":"14841:77:53"},"nativeSrc":"14841:79:53","nodeType":"YulFunctionCall","src":"14841:79:53"},"nativeSrc":"14841:79:53","nodeType":"YulExpressionStatement","src":"14841:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14811:6:53","nodeType":"YulIdentifier","src":"14811:6:53"},{"kind":"number","nativeSrc":"14819:18:53","nodeType":"YulLiteral","src":"14819:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14808:2:53","nodeType":"YulIdentifier","src":"14808:2:53"},"nativeSrc":"14808:30:53","nodeType":"YulFunctionCall","src":"14808:30:53"},"nativeSrc":"14805:117:53","nodeType":"YulIf","src":"14805:117:53"},{"nativeSrc":"14936:83:53","nodeType":"YulAssignment","src":"14936:83:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14991:9:53","nodeType":"YulIdentifier","src":"14991:9:53"},{"name":"offset","nativeSrc":"15002:6:53","nodeType":"YulIdentifier","src":"15002:6:53"}],"functionName":{"name":"add","nativeSrc":"14987:3:53","nodeType":"YulIdentifier","src":"14987:3:53"},"nativeSrc":"14987:22:53","nodeType":"YulFunctionCall","src":"14987:22:53"},{"name":"dataEnd","nativeSrc":"15011:7:53","nodeType":"YulIdentifier","src":"15011:7:53"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"14954:32:53","nodeType":"YulIdentifier","src":"14954:32:53"},"nativeSrc":"14954:65:53","nodeType":"YulFunctionCall","src":"14954:65:53"},"variableNames":[{"name":"value2","nativeSrc":"14936:6:53","nodeType":"YulIdentifier","src":"14936:6:53"},{"name":"value3","nativeSrc":"14944:6:53","nodeType":"YulIdentifier","src":"14944:6:53"}]}]},{"nativeSrc":"15039:297:53","nodeType":"YulBlock","src":"15039:297:53","statements":[{"nativeSrc":"15054:46:53","nodeType":"YulVariableDeclaration","src":"15054:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15085:9:53","nodeType":"YulIdentifier","src":"15085:9:53"},{"kind":"number","nativeSrc":"15096:2:53","nodeType":"YulLiteral","src":"15096:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15081:3:53","nodeType":"YulIdentifier","src":"15081:3:53"},"nativeSrc":"15081:18:53","nodeType":"YulFunctionCall","src":"15081:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"15068:12:53","nodeType":"YulIdentifier","src":"15068:12:53"},"nativeSrc":"15068:32:53","nodeType":"YulFunctionCall","src":"15068:32:53"},"variables":[{"name":"offset","nativeSrc":"15058:6:53","nodeType":"YulTypedName","src":"15058:6:53","type":""}]},{"body":{"nativeSrc":"15147:83:53","nodeType":"YulBlock","src":"15147:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"15149:77:53","nodeType":"YulIdentifier","src":"15149:77:53"},"nativeSrc":"15149:79:53","nodeType":"YulFunctionCall","src":"15149:79:53"},"nativeSrc":"15149:79:53","nodeType":"YulExpressionStatement","src":"15149:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15119:6:53","nodeType":"YulIdentifier","src":"15119:6:53"},{"kind":"number","nativeSrc":"15127:18:53","nodeType":"YulLiteral","src":"15127:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15116:2:53","nodeType":"YulIdentifier","src":"15116:2:53"},"nativeSrc":"15116:30:53","nodeType":"YulFunctionCall","src":"15116:30:53"},"nativeSrc":"15113:117:53","nodeType":"YulIf","src":"15113:117:53"},{"nativeSrc":"15244:82:53","nodeType":"YulAssignment","src":"15244:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15298:9:53","nodeType":"YulIdentifier","src":"15298:9:53"},{"name":"offset","nativeSrc":"15309:6:53","nodeType":"YulIdentifier","src":"15309:6:53"}],"functionName":{"name":"add","nativeSrc":"15294:3:53","nodeType":"YulIdentifier","src":"15294:3:53"},"nativeSrc":"15294:22:53","nodeType":"YulFunctionCall","src":"15294:22:53"},{"name":"dataEnd","nativeSrc":"15318:7:53","nodeType":"YulIdentifier","src":"15318:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"15262:31:53","nodeType":"YulIdentifier","src":"15262:31:53"},"nativeSrc":"15262:64:53","nodeType":"YulFunctionCall","src":"15262:64:53"},"variableNames":[{"name":"value4","nativeSrc":"15244:6:53","nodeType":"YulIdentifier","src":"15244:6:53"},{"name":"value5","nativeSrc":"15252:6:53","nodeType":"YulIdentifier","src":"15252:6:53"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_string_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"14144:1199:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14248:9:53","nodeType":"YulTypedName","src":"14248:9:53","type":""},{"name":"dataEnd","nativeSrc":"14259:7:53","nodeType":"YulTypedName","src":"14259:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14271:6:53","nodeType":"YulTypedName","src":"14271:6:53","type":""},{"name":"value1","nativeSrc":"14279:6:53","nodeType":"YulTypedName","src":"14279:6:53","type":""},{"name":"value2","nativeSrc":"14287:6:53","nodeType":"YulTypedName","src":"14287:6:53","type":""},{"name":"value3","nativeSrc":"14295:6:53","nodeType":"YulTypedName","src":"14295:6:53","type":""},{"name":"value4","nativeSrc":"14303:6:53","nodeType":"YulTypedName","src":"14303:6:53","type":""},{"name":"value5","nativeSrc":"14311:6:53","nodeType":"YulTypedName","src":"14311:6:53","type":""}],"src":"14144:1199:53"},{"body":{"nativeSrc":"15377:152:53","nodeType":"YulBlock","src":"15377:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15394:1:53","nodeType":"YulLiteral","src":"15394:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15397:77:53","nodeType":"YulLiteral","src":"15397:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15387:6:53","nodeType":"YulIdentifier","src":"15387:6:53"},"nativeSrc":"15387:88:53","nodeType":"YulFunctionCall","src":"15387:88:53"},"nativeSrc":"15387:88:53","nodeType":"YulExpressionStatement","src":"15387:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15491:1:53","nodeType":"YulLiteral","src":"15491:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"15494:4:53","nodeType":"YulLiteral","src":"15494:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"15484:6:53","nodeType":"YulIdentifier","src":"15484:6:53"},"nativeSrc":"15484:15:53","nodeType":"YulFunctionCall","src":"15484:15:53"},"nativeSrc":"15484:15:53","nodeType":"YulExpressionStatement","src":"15484:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15515:1:53","nodeType":"YulLiteral","src":"15515:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15518:4:53","nodeType":"YulLiteral","src":"15518:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15508:6:53","nodeType":"YulIdentifier","src":"15508:6:53"},"nativeSrc":"15508:15:53","nodeType":"YulFunctionCall","src":"15508:15:53"},"nativeSrc":"15508:15:53","nodeType":"YulExpressionStatement","src":"15508:15:53"}]},"name":"panic_error_0x22","nativeSrc":"15349:180:53","nodeType":"YulFunctionDefinition","src":"15349:180:53"},{"body":{"nativeSrc":"15586:269:53","nodeType":"YulBlock","src":"15586:269:53","statements":[{"nativeSrc":"15596:22:53","nodeType":"YulAssignment","src":"15596:22:53","value":{"arguments":[{"name":"data","nativeSrc":"15610:4:53","nodeType":"YulIdentifier","src":"15610:4:53"},{"kind":"number","nativeSrc":"15616:1:53","nodeType":"YulLiteral","src":"15616:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"15606:3:53","nodeType":"YulIdentifier","src":"15606:3:53"},"nativeSrc":"15606:12:53","nodeType":"YulFunctionCall","src":"15606:12:53"},"variableNames":[{"name":"length","nativeSrc":"15596:6:53","nodeType":"YulIdentifier","src":"15596:6:53"}]},{"nativeSrc":"15627:38:53","nodeType":"YulVariableDeclaration","src":"15627:38:53","value":{"arguments":[{"name":"data","nativeSrc":"15657:4:53","nodeType":"YulIdentifier","src":"15657:4:53"},{"kind":"number","nativeSrc":"15663:1:53","nodeType":"YulLiteral","src":"15663:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"15653:3:53","nodeType":"YulIdentifier","src":"15653:3:53"},"nativeSrc":"15653:12:53","nodeType":"YulFunctionCall","src":"15653:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"15631:18:53","nodeType":"YulTypedName","src":"15631:18:53","type":""}]},{"body":{"nativeSrc":"15704:51:53","nodeType":"YulBlock","src":"15704:51:53","statements":[{"nativeSrc":"15718:27:53","nodeType":"YulAssignment","src":"15718:27:53","value":{"arguments":[{"name":"length","nativeSrc":"15732:6:53","nodeType":"YulIdentifier","src":"15732:6:53"},{"kind":"number","nativeSrc":"15740:4:53","nodeType":"YulLiteral","src":"15740:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"15728:3:53","nodeType":"YulIdentifier","src":"15728:3:53"},"nativeSrc":"15728:17:53","nodeType":"YulFunctionCall","src":"15728:17:53"},"variableNames":[{"name":"length","nativeSrc":"15718:6:53","nodeType":"YulIdentifier","src":"15718:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15684:18:53","nodeType":"YulIdentifier","src":"15684:18:53"}],"functionName":{"name":"iszero","nativeSrc":"15677:6:53","nodeType":"YulIdentifier","src":"15677:6:53"},"nativeSrc":"15677:26:53","nodeType":"YulFunctionCall","src":"15677:26:53"},"nativeSrc":"15674:81:53","nodeType":"YulIf","src":"15674:81:53"},{"body":{"nativeSrc":"15807:42:53","nodeType":"YulBlock","src":"15807:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"15821:16:53","nodeType":"YulIdentifier","src":"15821:16:53"},"nativeSrc":"15821:18:53","nodeType":"YulFunctionCall","src":"15821:18:53"},"nativeSrc":"15821:18:53","nodeType":"YulExpressionStatement","src":"15821:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15771:18:53","nodeType":"YulIdentifier","src":"15771:18:53"},{"arguments":[{"name":"length","nativeSrc":"15794:6:53","nodeType":"YulIdentifier","src":"15794:6:53"},{"kind":"number","nativeSrc":"15802:2:53","nodeType":"YulLiteral","src":"15802:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"15791:2:53","nodeType":"YulIdentifier","src":"15791:2:53"},"nativeSrc":"15791:14:53","nodeType":"YulFunctionCall","src":"15791:14:53"}],"functionName":{"name":"eq","nativeSrc":"15768:2:53","nodeType":"YulIdentifier","src":"15768:2:53"},"nativeSrc":"15768:38:53","nodeType":"YulFunctionCall","src":"15768:38:53"},"nativeSrc":"15765:84:53","nodeType":"YulIf","src":"15765:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"15535:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"15570:4:53","nodeType":"YulTypedName","src":"15570:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15579:6:53","nodeType":"YulTypedName","src":"15579:6:53","type":""}],"src":"15535:320:53"},{"body":{"nativeSrc":"15903:52:53","nodeType":"YulBlock","src":"15903:52:53","statements":[{"nativeSrc":"15913:35:53","nodeType":"YulAssignment","src":"15913:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"15938:2:53","nodeType":"YulLiteral","src":"15938:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"15942:5:53","nodeType":"YulIdentifier","src":"15942:5:53"}],"functionName":{"name":"shl","nativeSrc":"15934:3:53","nodeType":"YulIdentifier","src":"15934:3:53"},"nativeSrc":"15934:14:53","nodeType":"YulFunctionCall","src":"15934:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"15913:8:53","nodeType":"YulIdentifier","src":"15913:8:53"}]}]},"name":"shift_left_96","nativeSrc":"15861:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15884:5:53","nodeType":"YulTypedName","src":"15884:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"15894:8:53","nodeType":"YulTypedName","src":"15894:8:53","type":""}],"src":"15861:94:53"},{"body":{"nativeSrc":"16008:47:53","nodeType":"YulBlock","src":"16008:47:53","statements":[{"nativeSrc":"16018:31:53","nodeType":"YulAssignment","src":"16018:31:53","value":{"arguments":[{"name":"value","nativeSrc":"16043:5:53","nodeType":"YulIdentifier","src":"16043:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"16029:13:53","nodeType":"YulIdentifier","src":"16029:13:53"},"nativeSrc":"16029:20:53","nodeType":"YulFunctionCall","src":"16029:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"16018:7:53","nodeType":"YulIdentifier","src":"16018:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"15961:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15990:5:53","nodeType":"YulTypedName","src":"15990:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"16000:7:53","nodeType":"YulTypedName","src":"16000:7:53","type":""}],"src":"15961:94:53"},{"body":{"nativeSrc":"16108:53:53","nodeType":"YulBlock","src":"16108:53:53","statements":[{"nativeSrc":"16118:37:53","nodeType":"YulAssignment","src":"16118:37:53","value":{"arguments":[{"name":"value","nativeSrc":"16149:5:53","nodeType":"YulIdentifier","src":"16149:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"16129:19:53","nodeType":"YulIdentifier","src":"16129:19:53"},"nativeSrc":"16129:26:53","nodeType":"YulFunctionCall","src":"16129:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"16118:7:53","nodeType":"YulIdentifier","src":"16118:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"16061:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16090:5:53","nodeType":"YulTypedName","src":"16090:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"16100:7:53","nodeType":"YulTypedName","src":"16100:7:53","type":""}],"src":"16061:100:53"},{"body":{"nativeSrc":"16250:74:53","nodeType":"YulBlock","src":"16250:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16267:3:53","nodeType":"YulIdentifier","src":"16267:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16310:5:53","nodeType":"YulIdentifier","src":"16310:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"16292:17:53","nodeType":"YulIdentifier","src":"16292:17:53"},"nativeSrc":"16292:24:53","nodeType":"YulFunctionCall","src":"16292:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"16272:19:53","nodeType":"YulIdentifier","src":"16272:19:53"},"nativeSrc":"16272:45:53","nodeType":"YulFunctionCall","src":"16272:45:53"}],"functionName":{"name":"mstore","nativeSrc":"16260:6:53","nodeType":"YulIdentifier","src":"16260:6:53"},"nativeSrc":"16260:58:53","nodeType":"YulFunctionCall","src":"16260:58:53"},"nativeSrc":"16260:58:53","nodeType":"YulExpressionStatement","src":"16260:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"16167:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16238:5:53","nodeType":"YulTypedName","src":"16238:5:53","type":""},{"name":"pos","nativeSrc":"16245:3:53","nodeType":"YulTypedName","src":"16245:3:53","type":""}],"src":"16167:157:53"},{"body":{"nativeSrc":"16444:34:53","nodeType":"YulBlock","src":"16444:34:53","statements":[{"nativeSrc":"16454:18:53","nodeType":"YulAssignment","src":"16454:18:53","value":{"name":"pos","nativeSrc":"16469:3:53","nodeType":"YulIdentifier","src":"16469:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"16454:11:53","nodeType":"YulIdentifier","src":"16454:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16330:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16416:3:53","nodeType":"YulTypedName","src":"16416:3:53","type":""},{"name":"length","nativeSrc":"16421:6:53","nodeType":"YulTypedName","src":"16421:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"16432:11:53","nodeType":"YulTypedName","src":"16432:11:53","type":""}],"src":"16330:148:53"},{"body":{"nativeSrc":"16548:84:53","nodeType":"YulBlock","src":"16548:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"16572:3:53","nodeType":"YulIdentifier","src":"16572:3:53"},{"name":"src","nativeSrc":"16577:3:53","nodeType":"YulIdentifier","src":"16577:3:53"},{"name":"length","nativeSrc":"16582:6:53","nodeType":"YulIdentifier","src":"16582:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"16559:12:53","nodeType":"YulIdentifier","src":"16559:12:53"},"nativeSrc":"16559:30:53","nodeType":"YulFunctionCall","src":"16559:30:53"},"nativeSrc":"16559:30:53","nodeType":"YulExpressionStatement","src":"16559:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"16609:3:53","nodeType":"YulIdentifier","src":"16609:3:53"},{"name":"length","nativeSrc":"16614:6:53","nodeType":"YulIdentifier","src":"16614:6:53"}],"functionName":{"name":"add","nativeSrc":"16605:3:53","nodeType":"YulIdentifier","src":"16605:3:53"},"nativeSrc":"16605:16:53","nodeType":"YulFunctionCall","src":"16605:16:53"},{"kind":"number","nativeSrc":"16623:1:53","nodeType":"YulLiteral","src":"16623:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16598:6:53","nodeType":"YulIdentifier","src":"16598:6:53"},"nativeSrc":"16598:27:53","nodeType":"YulFunctionCall","src":"16598:27:53"},"nativeSrc":"16598:27:53","nodeType":"YulExpressionStatement","src":"16598:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"16484:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"16530:3:53","nodeType":"YulTypedName","src":"16530:3:53","type":""},{"name":"dst","nativeSrc":"16535:3:53","nodeType":"YulTypedName","src":"16535:3:53","type":""},{"name":"length","nativeSrc":"16540:6:53","nodeType":"YulTypedName","src":"16540:6:53","type":""}],"src":"16484:148:53"},{"body":{"nativeSrc":"16782:210:53","nodeType":"YulBlock","src":"16782:210:53","statements":[{"nativeSrc":"16792:96:53","nodeType":"YulAssignment","src":"16792:96:53","value":{"arguments":[{"name":"pos","nativeSrc":"16876:3:53","nodeType":"YulIdentifier","src":"16876:3:53"},{"name":"length","nativeSrc":"16881:6:53","nodeType":"YulIdentifier","src":"16881:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16799:76:53","nodeType":"YulIdentifier","src":"16799:76:53"},"nativeSrc":"16799:89:53","nodeType":"YulFunctionCall","src":"16799:89:53"},"variableNames":[{"name":"pos","nativeSrc":"16792:3:53","nodeType":"YulIdentifier","src":"16792:3:53"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"16935:5:53","nodeType":"YulIdentifier","src":"16935:5:53"},{"name":"pos","nativeSrc":"16942:3:53","nodeType":"YulIdentifier","src":"16942:3:53"},{"name":"length","nativeSrc":"16947:6:53","nodeType":"YulIdentifier","src":"16947:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"16898:36:53","nodeType":"YulIdentifier","src":"16898:36:53"},"nativeSrc":"16898:56:53","nodeType":"YulFunctionCall","src":"16898:56:53"},"nativeSrc":"16898:56:53","nodeType":"YulExpressionStatement","src":"16898:56:53"},{"nativeSrc":"16963:23:53","nodeType":"YulAssignment","src":"16963:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"16974:3:53","nodeType":"YulIdentifier","src":"16974:3:53"},{"name":"length","nativeSrc":"16979:6:53","nodeType":"YulIdentifier","src":"16979:6:53"}],"functionName":{"name":"add","nativeSrc":"16970:3:53","nodeType":"YulIdentifier","src":"16970:3:53"},"nativeSrc":"16970:16:53","nodeType":"YulFunctionCall","src":"16970:16:53"},"variableNames":[{"name":"end","nativeSrc":"16963:3:53","nodeType":"YulIdentifier","src":"16963:3:53"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16662:330:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"16755:5:53","nodeType":"YulTypedName","src":"16755:5:53","type":""},{"name":"length","nativeSrc":"16762:6:53","nodeType":"YulTypedName","src":"16762:6:53","type":""},{"name":"pos","nativeSrc":"16770:3:53","nodeType":"YulTypedName","src":"16770:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16778:3:53","nodeType":"YulTypedName","src":"16778:3:53","type":""}],"src":"16662:330:53"},{"body":{"nativeSrc":"17200:375:53","nodeType":"YulBlock","src":"17200:375:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"17273:6:53","nodeType":"YulIdentifier","src":"17273:6:53"},{"name":"pos","nativeSrc":"17282:3:53","nodeType":"YulIdentifier","src":"17282:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17211:61:53","nodeType":"YulIdentifier","src":"17211:61:53"},"nativeSrc":"17211:75:53","nodeType":"YulFunctionCall","src":"17211:75:53"},"nativeSrc":"17211:75:53","nodeType":"YulExpressionStatement","src":"17211:75:53"},{"nativeSrc":"17295:19:53","nodeType":"YulAssignment","src":"17295:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"17306:3:53","nodeType":"YulIdentifier","src":"17306:3:53"},{"kind":"number","nativeSrc":"17311:2:53","nodeType":"YulLiteral","src":"17311:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"17302:3:53","nodeType":"YulIdentifier","src":"17302:3:53"},"nativeSrc":"17302:12:53","nodeType":"YulFunctionCall","src":"17302:12:53"},"variableNames":[{"name":"pos","nativeSrc":"17295:3:53","nodeType":"YulIdentifier","src":"17295:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"17386:6:53","nodeType":"YulIdentifier","src":"17386:6:53"},{"name":"pos","nativeSrc":"17395:3:53","nodeType":"YulIdentifier","src":"17395:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17324:61:53","nodeType":"YulIdentifier","src":"17324:61:53"},"nativeSrc":"17324:75:53","nodeType":"YulFunctionCall","src":"17324:75:53"},"nativeSrc":"17324:75:53","nodeType":"YulExpressionStatement","src":"17324:75:53"},{"nativeSrc":"17408:19:53","nodeType":"YulAssignment","src":"17408:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"17419:3:53","nodeType":"YulIdentifier","src":"17419:3:53"},{"kind":"number","nativeSrc":"17424:2:53","nodeType":"YulLiteral","src":"17424:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"17415:3:53","nodeType":"YulIdentifier","src":"17415:3:53"},"nativeSrc":"17415:12:53","nodeType":"YulFunctionCall","src":"17415:12:53"},"variableNames":[{"name":"pos","nativeSrc":"17408:3:53","nodeType":"YulIdentifier","src":"17408:3:53"}]},{"nativeSrc":"17437:112:53","nodeType":"YulAssignment","src":"17437:112:53","value":{"arguments":[{"name":"value2","nativeSrc":"17528:6:53","nodeType":"YulIdentifier","src":"17528:6:53"},{"name":"value3","nativeSrc":"17536:6:53","nodeType":"YulIdentifier","src":"17536:6:53"},{"name":"pos","nativeSrc":"17545:3:53","nodeType":"YulIdentifier","src":"17545:3:53"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"17444:83:53","nodeType":"YulIdentifier","src":"17444:83:53"},"nativeSrc":"17444:105:53","nodeType":"YulFunctionCall","src":"17444:105:53"},"variableNames":[{"name":"pos","nativeSrc":"17437:3:53","nodeType":"YulIdentifier","src":"17437:3:53"}]},{"nativeSrc":"17559:10:53","nodeType":"YulAssignment","src":"17559:10:53","value":{"name":"pos","nativeSrc":"17566:3:53","nodeType":"YulIdentifier","src":"17566:3:53"},"variableNames":[{"name":"end","nativeSrc":"17559:3:53","nodeType":"YulIdentifier","src":"17559:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"16998:577:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17155:3:53","nodeType":"YulTypedName","src":"17155:3:53","type":""},{"name":"value3","nativeSrc":"17161:6:53","nodeType":"YulTypedName","src":"17161:6:53","type":""},{"name":"value2","nativeSrc":"17169:6:53","nodeType":"YulTypedName","src":"17169:6:53","type":""},{"name":"value1","nativeSrc":"17177:6:53","nodeType":"YulTypedName","src":"17177:6:53","type":""},{"name":"value0","nativeSrc":"17185:6:53","nodeType":"YulTypedName","src":"17185:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17196:3:53","nodeType":"YulTypedName","src":"17196:3:53","type":""}],"src":"16998:577:53"},{"body":{"nativeSrc":"17644:52:53","nodeType":"YulBlock","src":"17644:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17661:3:53","nodeType":"YulIdentifier","src":"17661:3:53"},{"arguments":[{"name":"value","nativeSrc":"17683:5:53","nodeType":"YulIdentifier","src":"17683:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"17666:16:53","nodeType":"YulIdentifier","src":"17666:16:53"},"nativeSrc":"17666:23:53","nodeType":"YulFunctionCall","src":"17666:23:53"}],"functionName":{"name":"mstore","nativeSrc":"17654:6:53","nodeType":"YulIdentifier","src":"17654:6:53"},"nativeSrc":"17654:36:53","nodeType":"YulFunctionCall","src":"17654:36:53"},"nativeSrc":"17654:36:53","nodeType":"YulExpressionStatement","src":"17654:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"17581:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17632:5:53","nodeType":"YulTypedName","src":"17632:5:53","type":""},{"name":"pos","nativeSrc":"17639:3:53","nodeType":"YulTypedName","src":"17639:3:53","type":""}],"src":"17581:115:53"},{"body":{"nativeSrc":"17798:122:53","nodeType":"YulBlock","src":"17798:122:53","statements":[{"nativeSrc":"17808:26:53","nodeType":"YulAssignment","src":"17808:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17820:9:53","nodeType":"YulIdentifier","src":"17820:9:53"},{"kind":"number","nativeSrc":"17831:2:53","nodeType":"YulLiteral","src":"17831:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17816:3:53","nodeType":"YulIdentifier","src":"17816:3:53"},"nativeSrc":"17816:18:53","nodeType":"YulFunctionCall","src":"17816:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17808:4:53","nodeType":"YulIdentifier","src":"17808:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17886:6:53","nodeType":"YulIdentifier","src":"17886:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17899:9:53","nodeType":"YulIdentifier","src":"17899:9:53"},{"kind":"number","nativeSrc":"17910:1:53","nodeType":"YulLiteral","src":"17910:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17895:3:53","nodeType":"YulIdentifier","src":"17895:3:53"},"nativeSrc":"17895:17:53","nodeType":"YulFunctionCall","src":"17895:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"17844:41:53","nodeType":"YulIdentifier","src":"17844:41:53"},"nativeSrc":"17844:69:53","nodeType":"YulFunctionCall","src":"17844:69:53"},"nativeSrc":"17844:69:53","nodeType":"YulExpressionStatement","src":"17844:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"17702:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17770:9:53","nodeType":"YulTypedName","src":"17770:9:53","type":""},{"name":"value0","nativeSrc":"17782:6:53","nodeType":"YulTypedName","src":"17782:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17793:4:53","nodeType":"YulTypedName","src":"17793:4:53","type":""}],"src":"17702:218:53"},{"body":{"nativeSrc":"17966:76:53","nodeType":"YulBlock","src":"17966:76:53","statements":[{"body":{"nativeSrc":"18020:16:53","nodeType":"YulBlock","src":"18020:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18029:1:53","nodeType":"YulLiteral","src":"18029:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18032:1:53","nodeType":"YulLiteral","src":"18032:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18022:6:53","nodeType":"YulIdentifier","src":"18022:6:53"},"nativeSrc":"18022:12:53","nodeType":"YulFunctionCall","src":"18022:12:53"},"nativeSrc":"18022:12:53","nodeType":"YulExpressionStatement","src":"18022:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17989:5:53","nodeType":"YulIdentifier","src":"17989:5:53"},{"arguments":[{"name":"value","nativeSrc":"18011:5:53","nodeType":"YulIdentifier","src":"18011:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"17996:14:53","nodeType":"YulIdentifier","src":"17996:14:53"},"nativeSrc":"17996:21:53","nodeType":"YulFunctionCall","src":"17996:21:53"}],"functionName":{"name":"eq","nativeSrc":"17986:2:53","nodeType":"YulIdentifier","src":"17986:2:53"},"nativeSrc":"17986:32:53","nodeType":"YulFunctionCall","src":"17986:32:53"}],"functionName":{"name":"iszero","nativeSrc":"17979:6:53","nodeType":"YulIdentifier","src":"17979:6:53"},"nativeSrc":"17979:40:53","nodeType":"YulFunctionCall","src":"17979:40:53"},"nativeSrc":"17976:60:53","nodeType":"YulIf","src":"17976:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"17926:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17959:5:53","nodeType":"YulTypedName","src":"17959:5:53","type":""}],"src":"17926:116:53"},{"body":{"nativeSrc":"18108:77:53","nodeType":"YulBlock","src":"18108:77:53","statements":[{"nativeSrc":"18118:22:53","nodeType":"YulAssignment","src":"18118:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"18133:6:53","nodeType":"YulIdentifier","src":"18133:6:53"}],"functionName":{"name":"mload","nativeSrc":"18127:5:53","nodeType":"YulIdentifier","src":"18127:5:53"},"nativeSrc":"18127:13:53","nodeType":"YulFunctionCall","src":"18127:13:53"},"variableNames":[{"name":"value","nativeSrc":"18118:5:53","nodeType":"YulIdentifier","src":"18118:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18173:5:53","nodeType":"YulIdentifier","src":"18173:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"18149:23:53","nodeType":"YulIdentifier","src":"18149:23:53"},"nativeSrc":"18149:30:53","nodeType":"YulFunctionCall","src":"18149:30:53"},"nativeSrc":"18149:30:53","nodeType":"YulExpressionStatement","src":"18149:30:53"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18048:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18086:6:53","nodeType":"YulTypedName","src":"18086:6:53","type":""},{"name":"end","nativeSrc":"18094:3:53","nodeType":"YulTypedName","src":"18094:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18102:5:53","nodeType":"YulTypedName","src":"18102:5:53","type":""}],"src":"18048:137:53"},{"body":{"nativeSrc":"18265:271:53","nodeType":"YulBlock","src":"18265:271:53","statements":[{"body":{"nativeSrc":"18311:83:53","nodeType":"YulBlock","src":"18311:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18313:77:53","nodeType":"YulIdentifier","src":"18313:77:53"},"nativeSrc":"18313:79:53","nodeType":"YulFunctionCall","src":"18313:79:53"},"nativeSrc":"18313:79:53","nodeType":"YulExpressionStatement","src":"18313:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18286:7:53","nodeType":"YulIdentifier","src":"18286:7:53"},{"name":"headStart","nativeSrc":"18295:9:53","nodeType":"YulIdentifier","src":"18295:9:53"}],"functionName":{"name":"sub","nativeSrc":"18282:3:53","nodeType":"YulIdentifier","src":"18282:3:53"},"nativeSrc":"18282:23:53","nodeType":"YulFunctionCall","src":"18282:23:53"},{"kind":"number","nativeSrc":"18307:2:53","nodeType":"YulLiteral","src":"18307:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18278:3:53","nodeType":"YulIdentifier","src":"18278:3:53"},"nativeSrc":"18278:32:53","nodeType":"YulFunctionCall","src":"18278:32:53"},"nativeSrc":"18275:119:53","nodeType":"YulIf","src":"18275:119:53"},{"nativeSrc":"18404:125:53","nodeType":"YulBlock","src":"18404:125:53","statements":[{"nativeSrc":"18419:15:53","nodeType":"YulVariableDeclaration","src":"18419:15:53","value":{"kind":"number","nativeSrc":"18433:1:53","nodeType":"YulLiteral","src":"18433:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18423:6:53","nodeType":"YulTypedName","src":"18423:6:53","type":""}]},{"nativeSrc":"18448:71:53","nodeType":"YulAssignment","src":"18448:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18491:9:53","nodeType":"YulIdentifier","src":"18491:9:53"},{"name":"offset","nativeSrc":"18502:6:53","nodeType":"YulIdentifier","src":"18502:6:53"}],"functionName":{"name":"add","nativeSrc":"18487:3:53","nodeType":"YulIdentifier","src":"18487:3:53"},"nativeSrc":"18487:22:53","nodeType":"YulFunctionCall","src":"18487:22:53"},{"name":"dataEnd","nativeSrc":"18511:7:53","nodeType":"YulIdentifier","src":"18511:7:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18458:28:53","nodeType":"YulIdentifier","src":"18458:28:53"},"nativeSrc":"18458:61:53","nodeType":"YulFunctionCall","src":"18458:61:53"},"variableNames":[{"name":"value0","nativeSrc":"18448:6:53","nodeType":"YulIdentifier","src":"18448:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"18191:345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18235:9:53","nodeType":"YulTypedName","src":"18235:9:53","type":""},{"name":"dataEnd","nativeSrc":"18246:7:53","nodeType":"YulTypedName","src":"18246:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18258:6:53","nodeType":"YulTypedName","src":"18258:6:53","type":""}],"src":"18191:345:53"},{"body":{"nativeSrc":"18607:53:53","nodeType":"YulBlock","src":"18607:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18624:3:53","nodeType":"YulIdentifier","src":"18624:3:53"},{"arguments":[{"name":"value","nativeSrc":"18647:5:53","nodeType":"YulIdentifier","src":"18647:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"18629:17:53","nodeType":"YulIdentifier","src":"18629:17:53"},"nativeSrc":"18629:24:53","nodeType":"YulFunctionCall","src":"18629:24:53"}],"functionName":{"name":"mstore","nativeSrc":"18617:6:53","nodeType":"YulIdentifier","src":"18617:6:53"},"nativeSrc":"18617:37:53","nodeType":"YulFunctionCall","src":"18617:37:53"},"nativeSrc":"18617:37:53","nodeType":"YulExpressionStatement","src":"18617:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18542:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18595:5:53","nodeType":"YulTypedName","src":"18595:5:53","type":""},{"name":"pos","nativeSrc":"18602:3:53","nodeType":"YulTypedName","src":"18602:3:53","type":""}],"src":"18542:118:53"},{"body":{"nativeSrc":"18764:124:53","nodeType":"YulBlock","src":"18764:124:53","statements":[{"nativeSrc":"18774:26:53","nodeType":"YulAssignment","src":"18774:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18786:9:53","nodeType":"YulIdentifier","src":"18786:9:53"},{"kind":"number","nativeSrc":"18797:2:53","nodeType":"YulLiteral","src":"18797:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18782:3:53","nodeType":"YulIdentifier","src":"18782:3:53"},"nativeSrc":"18782:18:53","nodeType":"YulFunctionCall","src":"18782:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18774:4:53","nodeType":"YulIdentifier","src":"18774:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18854:6:53","nodeType":"YulIdentifier","src":"18854:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18867:9:53","nodeType":"YulIdentifier","src":"18867:9:53"},{"kind":"number","nativeSrc":"18878:1:53","nodeType":"YulLiteral","src":"18878:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18863:3:53","nodeType":"YulIdentifier","src":"18863:3:53"},"nativeSrc":"18863:17:53","nodeType":"YulFunctionCall","src":"18863:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18810:43:53","nodeType":"YulIdentifier","src":"18810:43:53"},"nativeSrc":"18810:71:53","nodeType":"YulFunctionCall","src":"18810:71:53"},"nativeSrc":"18810:71:53","nodeType":"YulExpressionStatement","src":"18810:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"18666:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18736:9:53","nodeType":"YulTypedName","src":"18736:9:53","type":""},{"name":"value0","nativeSrc":"18748:6:53","nodeType":"YulTypedName","src":"18748:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18759:4:53","nodeType":"YulTypedName","src":"18759:4:53","type":""}],"src":"18666:222:53"},{"body":{"nativeSrc":"18975:82:53","nodeType":"YulBlock","src":"18975:82:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18992:3:53","nodeType":"YulIdentifier","src":"18992:3:53"},{"arguments":[{"name":"value","nativeSrc":"19044:5:53","nodeType":"YulIdentifier","src":"19044:5:53"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"18997:46:53","nodeType":"YulIdentifier","src":"18997:46:53"},"nativeSrc":"18997:53:53","nodeType":"YulFunctionCall","src":"18997:53:53"}],"functionName":{"name":"mstore","nativeSrc":"18985:6:53","nodeType":"YulIdentifier","src":"18985:6:53"},"nativeSrc":"18985:66:53","nodeType":"YulFunctionCall","src":"18985:66:53"},"nativeSrc":"18985:66:53","nodeType":"YulExpressionStatement","src":"18985:66:53"}]},"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack","nativeSrc":"18894:163:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18963:5:53","nodeType":"YulTypedName","src":"18963:5:53","type":""},{"name":"pos","nativeSrc":"18970:3:53","nodeType":"YulTypedName","src":"18970:3:53","type":""}],"src":"18894:163:53"},{"body":{"nativeSrc":"19205:222:53","nodeType":"YulBlock","src":"19205:222:53","statements":[{"nativeSrc":"19215:26:53","nodeType":"YulAssignment","src":"19215:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"19227:9:53","nodeType":"YulIdentifier","src":"19227:9:53"},{"kind":"number","nativeSrc":"19238:2:53","nodeType":"YulLiteral","src":"19238:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19223:3:53","nodeType":"YulIdentifier","src":"19223:3:53"},"nativeSrc":"19223:18:53","nodeType":"YulFunctionCall","src":"19223:18:53"},"variableNames":[{"name":"tail","nativeSrc":"19215:4:53","nodeType":"YulIdentifier","src":"19215:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19311:6:53","nodeType":"YulIdentifier","src":"19311:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19324:9:53","nodeType":"YulIdentifier","src":"19324:9:53"},{"kind":"number","nativeSrc":"19335:1:53","nodeType":"YulLiteral","src":"19335:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19320:3:53","nodeType":"YulIdentifier","src":"19320:3:53"},"nativeSrc":"19320:17:53","nodeType":"YulFunctionCall","src":"19320:17:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack","nativeSrc":"19251:59:53","nodeType":"YulIdentifier","src":"19251:59:53"},"nativeSrc":"19251:87:53","nodeType":"YulFunctionCall","src":"19251:87:53"},"nativeSrc":"19251:87:53","nodeType":"YulExpressionStatement","src":"19251:87:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19392:6:53","nodeType":"YulIdentifier","src":"19392:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19405:9:53","nodeType":"YulIdentifier","src":"19405:9:53"},{"kind":"number","nativeSrc":"19416:2:53","nodeType":"YulLiteral","src":"19416:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19401:3:53","nodeType":"YulIdentifier","src":"19401:3:53"},"nativeSrc":"19401:18:53","nodeType":"YulFunctionCall","src":"19401:18:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"19348:43:53","nodeType":"YulIdentifier","src":"19348:43:53"},"nativeSrc":"19348:72:53","nodeType":"YulFunctionCall","src":"19348:72:53"},"nativeSrc":"19348:72:53","nodeType":"YulExpressionStatement","src":"19348:72:53"}]},"name":"abi_encode_tuple_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed","nativeSrc":"19063:364:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19169:9:53","nodeType":"YulTypedName","src":"19169:9:53","type":""},{"name":"value1","nativeSrc":"19181:6:53","nodeType":"YulTypedName","src":"19181:6:53","type":""},{"name":"value0","nativeSrc":"19189:6:53","nodeType":"YulTypedName","src":"19189:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19200:4:53","nodeType":"YulTypedName","src":"19200:4:53","type":""}],"src":"19063:364:53"},{"body":{"nativeSrc":"19579:149:53","nodeType":"YulBlock","src":"19579:149:53","statements":[{"nativeSrc":"19590:112:53","nodeType":"YulAssignment","src":"19590:112:53","value":{"arguments":[{"name":"value0","nativeSrc":"19681:6:53","nodeType":"YulIdentifier","src":"19681:6:53"},{"name":"value1","nativeSrc":"19689:6:53","nodeType":"YulIdentifier","src":"19689:6:53"},{"name":"pos","nativeSrc":"19698:3:53","nodeType":"YulIdentifier","src":"19698:3:53"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"19597:83:53","nodeType":"YulIdentifier","src":"19597:83:53"},"nativeSrc":"19597:105:53","nodeType":"YulFunctionCall","src":"19597:105:53"},"variableNames":[{"name":"pos","nativeSrc":"19590:3:53","nodeType":"YulIdentifier","src":"19590:3:53"}]},{"nativeSrc":"19712:10:53","nodeType":"YulAssignment","src":"19712:10:53","value":{"name":"pos","nativeSrc":"19719:3:53","nodeType":"YulIdentifier","src":"19719:3:53"},"variableNames":[{"name":"end","nativeSrc":"19712:3:53","nodeType":"YulIdentifier","src":"19712:3:53"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"19433:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19550:3:53","nodeType":"YulTypedName","src":"19550:3:53","type":""},{"name":"value1","nativeSrc":"19556:6:53","nodeType":"YulTypedName","src":"19556:6:53","type":""},{"name":"value0","nativeSrc":"19564:6:53","nodeType":"YulTypedName","src":"19564:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19575:3:53","nodeType":"YulTypedName","src":"19575:3:53","type":""}],"src":"19433:295:53"},{"body":{"nativeSrc":"19777:53:53","nodeType":"YulBlock","src":"19777:53:53","statements":[{"nativeSrc":"19787:36:53","nodeType":"YulAssignment","src":"19787:36:53","value":{"arguments":[{"kind":"number","nativeSrc":"19812:3:53","nodeType":"YulLiteral","src":"19812:3:53","type":"","value":"248"},{"name":"value","nativeSrc":"19817:5:53","nodeType":"YulIdentifier","src":"19817:5:53"}],"functionName":{"name":"shl","nativeSrc":"19808:3:53","nodeType":"YulIdentifier","src":"19808:3:53"},"nativeSrc":"19808:15:53","nodeType":"YulFunctionCall","src":"19808:15:53"},"variableNames":[{"name":"newValue","nativeSrc":"19787:8:53","nodeType":"YulIdentifier","src":"19787:8:53"}]}]},"name":"shift_left_248","nativeSrc":"19734:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19758:5:53","nodeType":"YulTypedName","src":"19758:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"19768:8:53","nodeType":"YulTypedName","src":"19768:8:53","type":""}],"src":"19734:96:53"},{"body":{"nativeSrc":"19881:48:53","nodeType":"YulBlock","src":"19881:48:53","statements":[{"nativeSrc":"19891:32:53","nodeType":"YulAssignment","src":"19891:32:53","value":{"arguments":[{"name":"value","nativeSrc":"19917:5:53","nodeType":"YulIdentifier","src":"19917:5:53"}],"functionName":{"name":"shift_left_248","nativeSrc":"19902:14:53","nodeType":"YulIdentifier","src":"19902:14:53"},"nativeSrc":"19902:21:53","nodeType":"YulFunctionCall","src":"19902:21:53"},"variableNames":[{"name":"aligned","nativeSrc":"19891:7:53","nodeType":"YulIdentifier","src":"19891:7:53"}]}]},"name":"leftAlign_t_uint8","nativeSrc":"19836:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19863:5:53","nodeType":"YulTypedName","src":"19863:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"19873:7:53","nodeType":"YulTypedName","src":"19873:7:53","type":""}],"src":"19836:93:53"},{"body":{"nativeSrc":"20034:101:53","nodeType":"YulBlock","src":"20034:101:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20051:3:53","nodeType":"YulIdentifier","src":"20051:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20121:5:53","nodeType":"YulIdentifier","src":"20121:5:53"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12294_to_t_uint8","nativeSrc":"20074:46:53","nodeType":"YulIdentifier","src":"20074:46:53"},"nativeSrc":"20074:53:53","nodeType":"YulFunctionCall","src":"20074:53:53"}],"functionName":{"name":"leftAlign_t_uint8","nativeSrc":"20056:17:53","nodeType":"YulIdentifier","src":"20056:17:53"},"nativeSrc":"20056:72:53","nodeType":"YulFunctionCall","src":"20056:72:53"}],"functionName":{"name":"mstore","nativeSrc":"20044:6:53","nodeType":"YulIdentifier","src":"20044:6:53"},"nativeSrc":"20044:85:53","nodeType":"YulFunctionCall","src":"20044:85:53"},"nativeSrc":"20044:85:53","nodeType":"YulExpressionStatement","src":"20044:85:53"}]},"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"19935:200:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20022:5:53","nodeType":"YulTypedName","src":"20022:5:53","type":""},{"name":"pos","nativeSrc":"20029:3:53","nodeType":"YulTypedName","src":"20029:3:53","type":""}],"src":"19935:200:53"},{"body":{"nativeSrc":"20387:503:53","nodeType":"YulBlock","src":"20387:503:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"20476:6:53","nodeType":"YulIdentifier","src":"20476:6:53"},{"name":"pos","nativeSrc":"20485:3:53","nodeType":"YulIdentifier","src":"20485:3:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"20398:77:53","nodeType":"YulIdentifier","src":"20398:77:53"},"nativeSrc":"20398:91:53","nodeType":"YulFunctionCall","src":"20398:91:53"},"nativeSrc":"20398:91:53","nodeType":"YulExpressionStatement","src":"20398:91:53"},{"nativeSrc":"20498:18:53","nodeType":"YulAssignment","src":"20498:18:53","value":{"arguments":[{"name":"pos","nativeSrc":"20509:3:53","nodeType":"YulIdentifier","src":"20509:3:53"},{"kind":"number","nativeSrc":"20514:1:53","nodeType":"YulLiteral","src":"20514:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20505:3:53","nodeType":"YulIdentifier","src":"20505:3:53"},"nativeSrc":"20505:11:53","nodeType":"YulFunctionCall","src":"20505:11:53"},"variableNames":[{"name":"pos","nativeSrc":"20498:3:53","nodeType":"YulIdentifier","src":"20498:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"20588:6:53","nodeType":"YulIdentifier","src":"20588:6:53"},{"name":"pos","nativeSrc":"20597:3:53","nodeType":"YulIdentifier","src":"20597:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"20526:61:53","nodeType":"YulIdentifier","src":"20526:61:53"},"nativeSrc":"20526:75:53","nodeType":"YulFunctionCall","src":"20526:75:53"},"nativeSrc":"20526:75:53","nodeType":"YulExpressionStatement","src":"20526:75:53"},{"nativeSrc":"20610:19:53","nodeType":"YulAssignment","src":"20610:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"20621:3:53","nodeType":"YulIdentifier","src":"20621:3:53"},{"kind":"number","nativeSrc":"20626:2:53","nodeType":"YulLiteral","src":"20626:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"20617:3:53","nodeType":"YulIdentifier","src":"20617:3:53"},"nativeSrc":"20617:12:53","nodeType":"YulFunctionCall","src":"20617:12:53"},"variableNames":[{"name":"pos","nativeSrc":"20610:3:53","nodeType":"YulIdentifier","src":"20610:3:53"}]},{"nativeSrc":"20639:112:53","nodeType":"YulAssignment","src":"20639:112:53","value":{"arguments":[{"name":"value2","nativeSrc":"20730:6:53","nodeType":"YulIdentifier","src":"20730:6:53"},{"name":"value3","nativeSrc":"20738:6:53","nodeType":"YulIdentifier","src":"20738:6:53"},{"name":"pos","nativeSrc":"20747:3:53","nodeType":"YulIdentifier","src":"20747:3:53"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"20646:83:53","nodeType":"YulIdentifier","src":"20646:83:53"},"nativeSrc":"20646:105:53","nodeType":"YulFunctionCall","src":"20646:105:53"},"variableNames":[{"name":"pos","nativeSrc":"20639:3:53","nodeType":"YulIdentifier","src":"20639:3:53"}]},{"expression":{"arguments":[{"name":"value4","nativeSrc":"20823:6:53","nodeType":"YulIdentifier","src":"20823:6:53"},{"name":"pos","nativeSrc":"20832:3:53","nodeType":"YulIdentifier","src":"20832:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"20761:61:53","nodeType":"YulIdentifier","src":"20761:61:53"},"nativeSrc":"20761:75:53","nodeType":"YulFunctionCall","src":"20761:75:53"},"nativeSrc":"20761:75:53","nodeType":"YulExpressionStatement","src":"20761:75:53"},{"nativeSrc":"20845:19:53","nodeType":"YulAssignment","src":"20845:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"20856:3:53","nodeType":"YulIdentifier","src":"20856:3:53"},{"kind":"number","nativeSrc":"20861:2:53","nodeType":"YulLiteral","src":"20861:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"20852:3:53","nodeType":"YulIdentifier","src":"20852:3:53"},"nativeSrc":"20852:12:53","nodeType":"YulFunctionCall","src":"20852:12:53"},"variableNames":[{"name":"pos","nativeSrc":"20845:3:53","nodeType":"YulIdentifier","src":"20845:3:53"}]},{"nativeSrc":"20874:10:53","nodeType":"YulAssignment","src":"20874:10:53","value":{"name":"pos","nativeSrc":"20881:3:53","nodeType":"YulIdentifier","src":"20881:3:53"},"variableNames":[{"name":"end","nativeSrc":"20874:3:53","nodeType":"YulIdentifier","src":"20874:3:53"}]}]},"name":"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"20141:749:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20334:3:53","nodeType":"YulTypedName","src":"20334:3:53","type":""},{"name":"value4","nativeSrc":"20340:6:53","nodeType":"YulTypedName","src":"20340:6:53","type":""},{"name":"value3","nativeSrc":"20348:6:53","nodeType":"YulTypedName","src":"20348:6:53","type":""},{"name":"value2","nativeSrc":"20356:6:53","nodeType":"YulTypedName","src":"20356:6:53","type":""},{"name":"value1","nativeSrc":"20364:6:53","nodeType":"YulTypedName","src":"20364:6:53","type":""},{"name":"value0","nativeSrc":"20372:6:53","nodeType":"YulTypedName","src":"20372:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20383:3:53","nodeType":"YulTypedName","src":"20383:3:53","type":""}],"src":"20141:749:53"},{"body":{"nativeSrc":"20924:152:53","nodeType":"YulBlock","src":"20924:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20941:1:53","nodeType":"YulLiteral","src":"20941:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20944:77:53","nodeType":"YulLiteral","src":"20944:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20934:6:53","nodeType":"YulIdentifier","src":"20934:6:53"},"nativeSrc":"20934:88:53","nodeType":"YulFunctionCall","src":"20934:88:53"},"nativeSrc":"20934:88:53","nodeType":"YulExpressionStatement","src":"20934:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21038:1:53","nodeType":"YulLiteral","src":"21038:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"21041:4:53","nodeType":"YulLiteral","src":"21041:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"21031:6:53","nodeType":"YulIdentifier","src":"21031:6:53"},"nativeSrc":"21031:15:53","nodeType":"YulFunctionCall","src":"21031:15:53"},"nativeSrc":"21031:15:53","nodeType":"YulExpressionStatement","src":"21031:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21062:1:53","nodeType":"YulLiteral","src":"21062:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21065:4:53","nodeType":"YulLiteral","src":"21065:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21055:6:53","nodeType":"YulIdentifier","src":"21055:6:53"},"nativeSrc":"21055:15:53","nodeType":"YulFunctionCall","src":"21055:15:53"},"nativeSrc":"21055:15:53","nodeType":"YulExpressionStatement","src":"21055:15:53"}]},"name":"panic_error_0x41","nativeSrc":"20896:180:53","nodeType":"YulFunctionDefinition","src":"20896:180:53"},{"body":{"nativeSrc":"21136:87:53","nodeType":"YulBlock","src":"21136:87:53","statements":[{"nativeSrc":"21146:11:53","nodeType":"YulAssignment","src":"21146:11:53","value":{"name":"ptr","nativeSrc":"21154:3:53","nodeType":"YulIdentifier","src":"21154:3:53"},"variableNames":[{"name":"data","nativeSrc":"21146:4:53","nodeType":"YulIdentifier","src":"21146:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21174:1:53","nodeType":"YulLiteral","src":"21174:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"21177:3:53","nodeType":"YulIdentifier","src":"21177:3:53"}],"functionName":{"name":"mstore","nativeSrc":"21167:6:53","nodeType":"YulIdentifier","src":"21167:6:53"},"nativeSrc":"21167:14:53","nodeType":"YulFunctionCall","src":"21167:14:53"},"nativeSrc":"21167:14:53","nodeType":"YulExpressionStatement","src":"21167:14:53"},{"nativeSrc":"21190:26:53","nodeType":"YulAssignment","src":"21190:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"21208:1:53","nodeType":"YulLiteral","src":"21208:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21211:4:53","nodeType":"YulLiteral","src":"21211:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21198:9:53","nodeType":"YulIdentifier","src":"21198:9:53"},"nativeSrc":"21198:18:53","nodeType":"YulFunctionCall","src":"21198:18:53"},"variableNames":[{"name":"data","nativeSrc":"21190:4:53","nodeType":"YulIdentifier","src":"21190:4:53"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"21082:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"21123:3:53","nodeType":"YulTypedName","src":"21123:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"21131:4:53","nodeType":"YulTypedName","src":"21131:4:53","type":""}],"src":"21082:141:53"},{"body":{"nativeSrc":"21273:49:53","nodeType":"YulBlock","src":"21273:49:53","statements":[{"nativeSrc":"21283:33:53","nodeType":"YulAssignment","src":"21283:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21301:5:53","nodeType":"YulIdentifier","src":"21301:5:53"},{"kind":"number","nativeSrc":"21308:2:53","nodeType":"YulLiteral","src":"21308:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"21297:3:53","nodeType":"YulIdentifier","src":"21297:3:53"},"nativeSrc":"21297:14:53","nodeType":"YulFunctionCall","src":"21297:14:53"},{"kind":"number","nativeSrc":"21313:2:53","nodeType":"YulLiteral","src":"21313:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"21293:3:53","nodeType":"YulIdentifier","src":"21293:3:53"},"nativeSrc":"21293:23:53","nodeType":"YulFunctionCall","src":"21293:23:53"},"variableNames":[{"name":"result","nativeSrc":"21283:6:53","nodeType":"YulIdentifier","src":"21283:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"21229:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21256:5:53","nodeType":"YulTypedName","src":"21256:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"21266:6:53","nodeType":"YulTypedName","src":"21266:6:53","type":""}],"src":"21229:93:53"},{"body":{"nativeSrc":"21381:54:53","nodeType":"YulBlock","src":"21381:54:53","statements":[{"nativeSrc":"21391:37:53","nodeType":"YulAssignment","src":"21391:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"21416:4:53","nodeType":"YulIdentifier","src":"21416:4:53"},{"name":"value","nativeSrc":"21422:5:53","nodeType":"YulIdentifier","src":"21422:5:53"}],"functionName":{"name":"shl","nativeSrc":"21412:3:53","nodeType":"YulIdentifier","src":"21412:3:53"},"nativeSrc":"21412:16:53","nodeType":"YulFunctionCall","src":"21412:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"21391:8:53","nodeType":"YulIdentifier","src":"21391:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"21328:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"21356:4:53","nodeType":"YulTypedName","src":"21356:4:53","type":""},{"name":"value","nativeSrc":"21362:5:53","nodeType":"YulTypedName","src":"21362:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"21372:8:53","nodeType":"YulTypedName","src":"21372:8:53","type":""}],"src":"21328:107:53"},{"body":{"nativeSrc":"21517:317:53","nodeType":"YulBlock","src":"21517:317:53","statements":[{"nativeSrc":"21527:35:53","nodeType":"YulVariableDeclaration","src":"21527:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"21548:10:53","nodeType":"YulIdentifier","src":"21548:10:53"},{"kind":"number","nativeSrc":"21560:1:53","nodeType":"YulLiteral","src":"21560:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"21544:3:53","nodeType":"YulIdentifier","src":"21544:3:53"},"nativeSrc":"21544:18:53","nodeType":"YulFunctionCall","src":"21544:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"21531:9:53","nodeType":"YulTypedName","src":"21531:9:53","type":""}]},{"nativeSrc":"21571:109:53","nodeType":"YulVariableDeclaration","src":"21571:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21602:9:53","nodeType":"YulIdentifier","src":"21602:9:53"},{"kind":"number","nativeSrc":"21613:66:53","nodeType":"YulLiteral","src":"21613:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21583:18:53","nodeType":"YulIdentifier","src":"21583:18:53"},"nativeSrc":"21583:97:53","nodeType":"YulFunctionCall","src":"21583:97:53"},"variables":[{"name":"mask","nativeSrc":"21575:4:53","nodeType":"YulTypedName","src":"21575:4:53","type":""}]},{"nativeSrc":"21689:51:53","nodeType":"YulAssignment","src":"21689:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21720:9:53","nodeType":"YulIdentifier","src":"21720:9:53"},{"name":"toInsert","nativeSrc":"21731:8:53","nodeType":"YulIdentifier","src":"21731:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21701:18:53","nodeType":"YulIdentifier","src":"21701:18:53"},"nativeSrc":"21701:39:53","nodeType":"YulFunctionCall","src":"21701:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"21689:8:53","nodeType":"YulIdentifier","src":"21689:8:53"}]},{"nativeSrc":"21749:30:53","nodeType":"YulAssignment","src":"21749:30:53","value":{"arguments":[{"name":"value","nativeSrc":"21762:5:53","nodeType":"YulIdentifier","src":"21762:5:53"},{"arguments":[{"name":"mask","nativeSrc":"21773:4:53","nodeType":"YulIdentifier","src":"21773:4:53"}],"functionName":{"name":"not","nativeSrc":"21769:3:53","nodeType":"YulIdentifier","src":"21769:3:53"},"nativeSrc":"21769:9:53","nodeType":"YulFunctionCall","src":"21769:9:53"}],"functionName":{"name":"and","nativeSrc":"21758:3:53","nodeType":"YulIdentifier","src":"21758:3:53"},"nativeSrc":"21758:21:53","nodeType":"YulFunctionCall","src":"21758:21:53"},"variableNames":[{"name":"value","nativeSrc":"21749:5:53","nodeType":"YulIdentifier","src":"21749:5:53"}]},{"nativeSrc":"21788:40:53","nodeType":"YulAssignment","src":"21788:40:53","value":{"arguments":[{"name":"value","nativeSrc":"21801:5:53","nodeType":"YulIdentifier","src":"21801:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"21812:8:53","nodeType":"YulIdentifier","src":"21812:8:53"},{"name":"mask","nativeSrc":"21822:4:53","nodeType":"YulIdentifier","src":"21822:4:53"}],"functionName":{"name":"and","nativeSrc":"21808:3:53","nodeType":"YulIdentifier","src":"21808:3:53"},"nativeSrc":"21808:19:53","nodeType":"YulFunctionCall","src":"21808:19:53"}],"functionName":{"name":"or","nativeSrc":"21798:2:53","nodeType":"YulIdentifier","src":"21798:2:53"},"nativeSrc":"21798:30:53","nodeType":"YulFunctionCall","src":"21798:30:53"},"variableNames":[{"name":"result","nativeSrc":"21788:6:53","nodeType":"YulIdentifier","src":"21788:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"21441:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21478:5:53","nodeType":"YulTypedName","src":"21478:5:53","type":""},{"name":"shiftBytes","nativeSrc":"21485:10:53","nodeType":"YulTypedName","src":"21485:10:53","type":""},{"name":"toInsert","nativeSrc":"21497:8:53","nodeType":"YulTypedName","src":"21497:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"21510:6:53","nodeType":"YulTypedName","src":"21510:6:53","type":""}],"src":"21441:393:53"},{"body":{"nativeSrc":"21885:32:53","nodeType":"YulBlock","src":"21885:32:53","statements":[{"nativeSrc":"21895:16:53","nodeType":"YulAssignment","src":"21895:16:53","value":{"name":"value","nativeSrc":"21906:5:53","nodeType":"YulIdentifier","src":"21906:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"21895:7:53","nodeType":"YulIdentifier","src":"21895:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"21840:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21867:5:53","nodeType":"YulTypedName","src":"21867:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"21877:7:53","nodeType":"YulTypedName","src":"21877:7:53","type":""}],"src":"21840:77:53"},{"body":{"nativeSrc":"21983:82:53","nodeType":"YulBlock","src":"21983:82:53","statements":[{"nativeSrc":"21993:66:53","nodeType":"YulAssignment","src":"21993:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22051:5:53","nodeType":"YulIdentifier","src":"22051:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22033:17:53","nodeType":"YulIdentifier","src":"22033:17:53"},"nativeSrc":"22033:24:53","nodeType":"YulFunctionCall","src":"22033:24:53"}],"functionName":{"name":"identity","nativeSrc":"22024:8:53","nodeType":"YulIdentifier","src":"22024:8:53"},"nativeSrc":"22024:34:53","nodeType":"YulFunctionCall","src":"22024:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22006:17:53","nodeType":"YulIdentifier","src":"22006:17:53"},"nativeSrc":"22006:53:53","nodeType":"YulFunctionCall","src":"22006:53:53"},"variableNames":[{"name":"converted","nativeSrc":"21993:9:53","nodeType":"YulIdentifier","src":"21993:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"21923:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21963:5:53","nodeType":"YulTypedName","src":"21963:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21973:9:53","nodeType":"YulTypedName","src":"21973:9:53","type":""}],"src":"21923:142:53"},{"body":{"nativeSrc":"22118:28:53","nodeType":"YulBlock","src":"22118:28:53","statements":[{"nativeSrc":"22128:12:53","nodeType":"YulAssignment","src":"22128:12:53","value":{"name":"value","nativeSrc":"22135:5:53","nodeType":"YulIdentifier","src":"22135:5:53"},"variableNames":[{"name":"ret","nativeSrc":"22128:3:53","nodeType":"YulIdentifier","src":"22128:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"22071:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22104:5:53","nodeType":"YulTypedName","src":"22104:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"22114:3:53","nodeType":"YulTypedName","src":"22114:3:53","type":""}],"src":"22071:75:53"},{"body":{"nativeSrc":"22228:193:53","nodeType":"YulBlock","src":"22228:193:53","statements":[{"nativeSrc":"22238:63:53","nodeType":"YulVariableDeclaration","src":"22238:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"22293:7:53","nodeType":"YulIdentifier","src":"22293:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"22262:30:53","nodeType":"YulIdentifier","src":"22262:30:53"},"nativeSrc":"22262:39:53","nodeType":"YulFunctionCall","src":"22262:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"22242:16:53","nodeType":"YulTypedName","src":"22242:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22317:4:53","nodeType":"YulIdentifier","src":"22317:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"22357:4:53","nodeType":"YulIdentifier","src":"22357:4:53"}],"functionName":{"name":"sload","nativeSrc":"22351:5:53","nodeType":"YulIdentifier","src":"22351:5:53"},"nativeSrc":"22351:11:53","nodeType":"YulFunctionCall","src":"22351:11:53"},{"name":"offset","nativeSrc":"22364:6:53","nodeType":"YulIdentifier","src":"22364:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"22396:16:53","nodeType":"YulIdentifier","src":"22396:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"22372:23:53","nodeType":"YulIdentifier","src":"22372:23:53"},"nativeSrc":"22372:41:53","nodeType":"YulFunctionCall","src":"22372:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"22323:27:53","nodeType":"YulIdentifier","src":"22323:27:53"},"nativeSrc":"22323:91:53","nodeType":"YulFunctionCall","src":"22323:91:53"}],"functionName":{"name":"sstore","nativeSrc":"22310:6:53","nodeType":"YulIdentifier","src":"22310:6:53"},"nativeSrc":"22310:105:53","nodeType":"YulFunctionCall","src":"22310:105:53"},"nativeSrc":"22310:105:53","nodeType":"YulExpressionStatement","src":"22310:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"22152:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22205:4:53","nodeType":"YulTypedName","src":"22205:4:53","type":""},{"name":"offset","nativeSrc":"22211:6:53","nodeType":"YulTypedName","src":"22211:6:53","type":""},{"name":"value_0","nativeSrc":"22219:7:53","nodeType":"YulTypedName","src":"22219:7:53","type":""}],"src":"22152:269:53"},{"body":{"nativeSrc":"22476:24:53","nodeType":"YulBlock","src":"22476:24:53","statements":[{"nativeSrc":"22486:8:53","nodeType":"YulAssignment","src":"22486:8:53","value":{"kind":"number","nativeSrc":"22493:1:53","nodeType":"YulLiteral","src":"22493:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"22486:3:53","nodeType":"YulIdentifier","src":"22486:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"22427:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"22472:3:53","nodeType":"YulTypedName","src":"22472:3:53","type":""}],"src":"22427:73:53"},{"body":{"nativeSrc":"22559:136:53","nodeType":"YulBlock","src":"22559:136:53","statements":[{"nativeSrc":"22569:46:53","nodeType":"YulVariableDeclaration","src":"22569:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"22583:30:53","nodeType":"YulIdentifier","src":"22583:30:53"},"nativeSrc":"22583:32:53","nodeType":"YulFunctionCall","src":"22583:32:53"},"variables":[{"name":"zero_0","nativeSrc":"22573:6:53","nodeType":"YulTypedName","src":"22573:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22668:4:53","nodeType":"YulIdentifier","src":"22668:4:53"},{"name":"offset","nativeSrc":"22674:6:53","nodeType":"YulIdentifier","src":"22674:6:53"},{"name":"zero_0","nativeSrc":"22682:6:53","nodeType":"YulIdentifier","src":"22682:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"22624:43:53","nodeType":"YulIdentifier","src":"22624:43:53"},"nativeSrc":"22624:65:53","nodeType":"YulFunctionCall","src":"22624:65:53"},"nativeSrc":"22624:65:53","nodeType":"YulExpressionStatement","src":"22624:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"22506:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22545:4:53","nodeType":"YulTypedName","src":"22545:4:53","type":""},{"name":"offset","nativeSrc":"22551:6:53","nodeType":"YulTypedName","src":"22551:6:53","type":""}],"src":"22506:189:53"},{"body":{"nativeSrc":"22751:136:53","nodeType":"YulBlock","src":"22751:136:53","statements":[{"body":{"nativeSrc":"22818:63:53","nodeType":"YulBlock","src":"22818:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"22862:5:53","nodeType":"YulIdentifier","src":"22862:5:53"},{"kind":"number","nativeSrc":"22869:1:53","nodeType":"YulLiteral","src":"22869:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"22832:29:53","nodeType":"YulIdentifier","src":"22832:29:53"},"nativeSrc":"22832:39:53","nodeType":"YulFunctionCall","src":"22832:39:53"},"nativeSrc":"22832:39:53","nodeType":"YulExpressionStatement","src":"22832:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"22771:5:53","nodeType":"YulIdentifier","src":"22771:5:53"},{"name":"end","nativeSrc":"22778:3:53","nodeType":"YulIdentifier","src":"22778:3:53"}],"functionName":{"name":"lt","nativeSrc":"22768:2:53","nodeType":"YulIdentifier","src":"22768:2:53"},"nativeSrc":"22768:14:53","nodeType":"YulFunctionCall","src":"22768:14:53"},"nativeSrc":"22761:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"22783:26:53","nodeType":"YulBlock","src":"22783:26:53","statements":[{"nativeSrc":"22785:22:53","nodeType":"YulAssignment","src":"22785:22:53","value":{"arguments":[{"name":"start","nativeSrc":"22798:5:53","nodeType":"YulIdentifier","src":"22798:5:53"},{"kind":"number","nativeSrc":"22805:1:53","nodeType":"YulLiteral","src":"22805:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22794:3:53","nodeType":"YulIdentifier","src":"22794:3:53"},"nativeSrc":"22794:13:53","nodeType":"YulFunctionCall","src":"22794:13:53"},"variableNames":[{"name":"start","nativeSrc":"22785:5:53","nodeType":"YulIdentifier","src":"22785:5:53"}]}]},"pre":{"nativeSrc":"22765:2:53","nodeType":"YulBlock","src":"22765:2:53","statements":[]},"src":"22761:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"22701:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"22739:5:53","nodeType":"YulTypedName","src":"22739:5:53","type":""},{"name":"end","nativeSrc":"22746:3:53","nodeType":"YulTypedName","src":"22746:3:53","type":""}],"src":"22701:186:53"},{"body":{"nativeSrc":"22972:464:53","nodeType":"YulBlock","src":"22972:464:53","statements":[{"body":{"nativeSrc":"22998:431:53","nodeType":"YulBlock","src":"22998:431:53","statements":[{"nativeSrc":"23012:54:53","nodeType":"YulVariableDeclaration","src":"23012:54:53","value":{"arguments":[{"name":"array","nativeSrc":"23060:5:53","nodeType":"YulIdentifier","src":"23060:5:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"23028:31:53","nodeType":"YulIdentifier","src":"23028:31:53"},"nativeSrc":"23028:38:53","nodeType":"YulFunctionCall","src":"23028:38:53"},"variables":[{"name":"dataArea","nativeSrc":"23016:8:53","nodeType":"YulTypedName","src":"23016:8:53","type":""}]},{"nativeSrc":"23079:63:53","nodeType":"YulVariableDeclaration","src":"23079:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"23102:8:53","nodeType":"YulIdentifier","src":"23102:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"23130:10:53","nodeType":"YulIdentifier","src":"23130:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"23112:17:53","nodeType":"YulIdentifier","src":"23112:17:53"},"nativeSrc":"23112:29:53","nodeType":"YulFunctionCall","src":"23112:29:53"}],"functionName":{"name":"add","nativeSrc":"23098:3:53","nodeType":"YulIdentifier","src":"23098:3:53"},"nativeSrc":"23098:44:53","nodeType":"YulFunctionCall","src":"23098:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"23083:11:53","nodeType":"YulTypedName","src":"23083:11:53","type":""}]},{"body":{"nativeSrc":"23299:27:53","nodeType":"YulBlock","src":"23299:27:53","statements":[{"nativeSrc":"23301:23:53","nodeType":"YulAssignment","src":"23301:23:53","value":{"name":"dataArea","nativeSrc":"23316:8:53","nodeType":"YulIdentifier","src":"23316:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"23301:11:53","nodeType":"YulIdentifier","src":"23301:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"23283:10:53","nodeType":"YulIdentifier","src":"23283:10:53"},{"kind":"number","nativeSrc":"23295:2:53","nodeType":"YulLiteral","src":"23295:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"23280:2:53","nodeType":"YulIdentifier","src":"23280:2:53"},"nativeSrc":"23280:18:53","nodeType":"YulFunctionCall","src":"23280:18:53"},"nativeSrc":"23277:49:53","nodeType":"YulIf","src":"23277:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"23368:11:53","nodeType":"YulIdentifier","src":"23368:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"23385:8:53","nodeType":"YulIdentifier","src":"23385:8:53"},{"arguments":[{"name":"len","nativeSrc":"23413:3:53","nodeType":"YulIdentifier","src":"23413:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"23395:17:53","nodeType":"YulIdentifier","src":"23395:17:53"},"nativeSrc":"23395:22:53","nodeType":"YulFunctionCall","src":"23395:22:53"}],"functionName":{"name":"add","nativeSrc":"23381:3:53","nodeType":"YulIdentifier","src":"23381:3:53"},"nativeSrc":"23381:37:53","nodeType":"YulFunctionCall","src":"23381:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"23339:28:53","nodeType":"YulIdentifier","src":"23339:28:53"},"nativeSrc":"23339:80:53","nodeType":"YulFunctionCall","src":"23339:80:53"},"nativeSrc":"23339:80:53","nodeType":"YulExpressionStatement","src":"23339:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"22989:3:53","nodeType":"YulIdentifier","src":"22989:3:53"},{"kind":"number","nativeSrc":"22994:2:53","nodeType":"YulLiteral","src":"22994:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22986:2:53","nodeType":"YulIdentifier","src":"22986:2:53"},"nativeSrc":"22986:11:53","nodeType":"YulFunctionCall","src":"22986:11:53"},"nativeSrc":"22983:446:53","nodeType":"YulIf","src":"22983:446:53"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"22893:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"22948:5:53","nodeType":"YulTypedName","src":"22948:5:53","type":""},{"name":"len","nativeSrc":"22955:3:53","nodeType":"YulTypedName","src":"22955:3:53","type":""},{"name":"startIndex","nativeSrc":"22960:10:53","nodeType":"YulTypedName","src":"22960:10:53","type":""}],"src":"22893:543:53"},{"body":{"nativeSrc":"23505:54:53","nodeType":"YulBlock","src":"23505:54:53","statements":[{"nativeSrc":"23515:37:53","nodeType":"YulAssignment","src":"23515:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"23540:4:53","nodeType":"YulIdentifier","src":"23540:4:53"},{"name":"value","nativeSrc":"23546:5:53","nodeType":"YulIdentifier","src":"23546:5:53"}],"functionName":{"name":"shr","nativeSrc":"23536:3:53","nodeType":"YulIdentifier","src":"23536:3:53"},"nativeSrc":"23536:16:53","nodeType":"YulFunctionCall","src":"23536:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"23515:8:53","nodeType":"YulIdentifier","src":"23515:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"23442:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"23480:4:53","nodeType":"YulTypedName","src":"23480:4:53","type":""},{"name":"value","nativeSrc":"23486:5:53","nodeType":"YulTypedName","src":"23486:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"23496:8:53","nodeType":"YulTypedName","src":"23496:8:53","type":""}],"src":"23442:117:53"},{"body":{"nativeSrc":"23616:118:53","nodeType":"YulBlock","src":"23616:118:53","statements":[{"nativeSrc":"23626:68:53","nodeType":"YulVariableDeclaration","src":"23626:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23675:1:53","nodeType":"YulLiteral","src":"23675:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"23678:5:53","nodeType":"YulIdentifier","src":"23678:5:53"}],"functionName":{"name":"mul","nativeSrc":"23671:3:53","nodeType":"YulIdentifier","src":"23671:3:53"},"nativeSrc":"23671:13:53","nodeType":"YulFunctionCall","src":"23671:13:53"},{"arguments":[{"kind":"number","nativeSrc":"23690:1:53","nodeType":"YulLiteral","src":"23690:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23686:3:53","nodeType":"YulIdentifier","src":"23686:3:53"},"nativeSrc":"23686:6:53","nodeType":"YulFunctionCall","src":"23686:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"23642:28:53","nodeType":"YulIdentifier","src":"23642:28:53"},"nativeSrc":"23642:51:53","nodeType":"YulFunctionCall","src":"23642:51:53"}],"functionName":{"name":"not","nativeSrc":"23638:3:53","nodeType":"YulIdentifier","src":"23638:3:53"},"nativeSrc":"23638:56:53","nodeType":"YulFunctionCall","src":"23638:56:53"},"variables":[{"name":"mask","nativeSrc":"23630:4:53","nodeType":"YulTypedName","src":"23630:4:53","type":""}]},{"nativeSrc":"23703:25:53","nodeType":"YulAssignment","src":"23703:25:53","value":{"arguments":[{"name":"data","nativeSrc":"23717:4:53","nodeType":"YulIdentifier","src":"23717:4:53"},{"name":"mask","nativeSrc":"23723:4:53","nodeType":"YulIdentifier","src":"23723:4:53"}],"functionName":{"name":"and","nativeSrc":"23713:3:53","nodeType":"YulIdentifier","src":"23713:3:53"},"nativeSrc":"23713:15:53","nodeType":"YulFunctionCall","src":"23713:15:53"},"variableNames":[{"name":"result","nativeSrc":"23703:6:53","nodeType":"YulIdentifier","src":"23703:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"23565:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23593:4:53","nodeType":"YulTypedName","src":"23593:4:53","type":""},{"name":"bytes","nativeSrc":"23599:5:53","nodeType":"YulTypedName","src":"23599:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"23609:6:53","nodeType":"YulTypedName","src":"23609:6:53","type":""}],"src":"23565:169:53"},{"body":{"nativeSrc":"23820:214:53","nodeType":"YulBlock","src":"23820:214:53","statements":[{"nativeSrc":"23953:37:53","nodeType":"YulAssignment","src":"23953:37:53","value":{"arguments":[{"name":"data","nativeSrc":"23980:4:53","nodeType":"YulIdentifier","src":"23980:4:53"},{"name":"len","nativeSrc":"23986:3:53","nodeType":"YulIdentifier","src":"23986:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"23961:18:53","nodeType":"YulIdentifier","src":"23961:18:53"},"nativeSrc":"23961:29:53","nodeType":"YulFunctionCall","src":"23961:29:53"},"variableNames":[{"name":"data","nativeSrc":"23953:4:53","nodeType":"YulIdentifier","src":"23953:4:53"}]},{"nativeSrc":"23999:29:53","nodeType":"YulAssignment","src":"23999:29:53","value":{"arguments":[{"name":"data","nativeSrc":"24010:4:53","nodeType":"YulIdentifier","src":"24010:4:53"},{"arguments":[{"kind":"number","nativeSrc":"24020:1:53","nodeType":"YulLiteral","src":"24020:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"24023:3:53","nodeType":"YulIdentifier","src":"24023:3:53"}],"functionName":{"name":"mul","nativeSrc":"24016:3:53","nodeType":"YulIdentifier","src":"24016:3:53"},"nativeSrc":"24016:11:53","nodeType":"YulFunctionCall","src":"24016:11:53"}],"functionName":{"name":"or","nativeSrc":"24007:2:53","nodeType":"YulIdentifier","src":"24007:2:53"},"nativeSrc":"24007:21:53","nodeType":"YulFunctionCall","src":"24007:21:53"},"variableNames":[{"name":"used","nativeSrc":"23999:4:53","nodeType":"YulIdentifier","src":"23999:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"23739:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23801:4:53","nodeType":"YulTypedName","src":"23801:4:53","type":""},{"name":"len","nativeSrc":"23807:3:53","nodeType":"YulTypedName","src":"23807:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"23815:4:53","nodeType":"YulTypedName","src":"23815:4:53","type":""}],"src":"23739:295:53"},{"body":{"nativeSrc":"24131:1303:53","nodeType":"YulBlock","src":"24131:1303:53","statements":[{"nativeSrc":"24142:51:53","nodeType":"YulVariableDeclaration","src":"24142:51:53","value":{"arguments":[{"name":"src","nativeSrc":"24189:3:53","nodeType":"YulIdentifier","src":"24189:3:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"24156:32:53","nodeType":"YulIdentifier","src":"24156:32:53"},"nativeSrc":"24156:37:53","nodeType":"YulFunctionCall","src":"24156:37:53"},"variables":[{"name":"newLen","nativeSrc":"24146:6:53","nodeType":"YulTypedName","src":"24146:6:53","type":""}]},{"body":{"nativeSrc":"24278:22:53","nodeType":"YulBlock","src":"24278:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"24280:16:53","nodeType":"YulIdentifier","src":"24280:16:53"},"nativeSrc":"24280:18:53","nodeType":"YulFunctionCall","src":"24280:18:53"},"nativeSrc":"24280:18:53","nodeType":"YulExpressionStatement","src":"24280:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"24250:6:53","nodeType":"YulIdentifier","src":"24250:6:53"},{"kind":"number","nativeSrc":"24258:18:53","nodeType":"YulLiteral","src":"24258:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24247:2:53","nodeType":"YulIdentifier","src":"24247:2:53"},"nativeSrc":"24247:30:53","nodeType":"YulFunctionCall","src":"24247:30:53"},"nativeSrc":"24244:56:53","nodeType":"YulIf","src":"24244:56:53"},{"nativeSrc":"24310:52:53","nodeType":"YulVariableDeclaration","src":"24310:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"24356:4:53","nodeType":"YulIdentifier","src":"24356:4:53"}],"functionName":{"name":"sload","nativeSrc":"24350:5:53","nodeType":"YulIdentifier","src":"24350:5:53"},"nativeSrc":"24350:11:53","nodeType":"YulFunctionCall","src":"24350:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"24324:25:53","nodeType":"YulIdentifier","src":"24324:25:53"},"nativeSrc":"24324:38:53","nodeType":"YulFunctionCall","src":"24324:38:53"},"variables":[{"name":"oldLen","nativeSrc":"24314:6:53","nodeType":"YulTypedName","src":"24314:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24455:4:53","nodeType":"YulIdentifier","src":"24455:4:53"},{"name":"oldLen","nativeSrc":"24461:6:53","nodeType":"YulIdentifier","src":"24461:6:53"},{"name":"newLen","nativeSrc":"24469:6:53","nodeType":"YulIdentifier","src":"24469:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"24409:45:53","nodeType":"YulIdentifier","src":"24409:45:53"},"nativeSrc":"24409:67:53","nodeType":"YulFunctionCall","src":"24409:67:53"},"nativeSrc":"24409:67:53","nodeType":"YulExpressionStatement","src":"24409:67:53"},{"nativeSrc":"24486:18:53","nodeType":"YulVariableDeclaration","src":"24486:18:53","value":{"kind":"number","nativeSrc":"24503:1:53","nodeType":"YulLiteral","src":"24503:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"24490:9:53","nodeType":"YulTypedName","src":"24490:9:53","type":""}]},{"nativeSrc":"24514:17:53","nodeType":"YulAssignment","src":"24514:17:53","value":{"kind":"number","nativeSrc":"24527:4:53","nodeType":"YulLiteral","src":"24527:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"24514:9:53","nodeType":"YulIdentifier","src":"24514:9:53"}]},{"cases":[{"body":{"nativeSrc":"24578:611:53","nodeType":"YulBlock","src":"24578:611:53","statements":[{"nativeSrc":"24592:37:53","nodeType":"YulVariableDeclaration","src":"24592:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"24611:6:53","nodeType":"YulIdentifier","src":"24611:6:53"},{"arguments":[{"kind":"number","nativeSrc":"24623:4:53","nodeType":"YulLiteral","src":"24623:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"24619:3:53","nodeType":"YulIdentifier","src":"24619:3:53"},"nativeSrc":"24619:9:53","nodeType":"YulFunctionCall","src":"24619:9:53"}],"functionName":{"name":"and","nativeSrc":"24607:3:53","nodeType":"YulIdentifier","src":"24607:3:53"},"nativeSrc":"24607:22:53","nodeType":"YulFunctionCall","src":"24607:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"24596:7:53","nodeType":"YulTypedName","src":"24596:7:53","type":""}]},{"nativeSrc":"24643:51:53","nodeType":"YulVariableDeclaration","src":"24643:51:53","value":{"arguments":[{"name":"slot","nativeSrc":"24689:4:53","nodeType":"YulIdentifier","src":"24689:4:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"24657:31:53","nodeType":"YulIdentifier","src":"24657:31:53"},"nativeSrc":"24657:37:53","nodeType":"YulFunctionCall","src":"24657:37:53"},"variables":[{"name":"dstPtr","nativeSrc":"24647:6:53","nodeType":"YulTypedName","src":"24647:6:53","type":""}]},{"nativeSrc":"24707:10:53","nodeType":"YulVariableDeclaration","src":"24707:10:53","value":{"kind":"number","nativeSrc":"24716:1:53","nodeType":"YulLiteral","src":"24716:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"24711:1:53","nodeType":"YulTypedName","src":"24711:1:53","type":""}]},{"body":{"nativeSrc":"24775:163:53","nodeType":"YulBlock","src":"24775:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24800:6:53","nodeType":"YulIdentifier","src":"24800:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24818:3:53","nodeType":"YulIdentifier","src":"24818:3:53"},{"name":"srcOffset","nativeSrc":"24823:9:53","nodeType":"YulIdentifier","src":"24823:9:53"}],"functionName":{"name":"add","nativeSrc":"24814:3:53","nodeType":"YulIdentifier","src":"24814:3:53"},"nativeSrc":"24814:19:53","nodeType":"YulFunctionCall","src":"24814:19:53"}],"functionName":{"name":"mload","nativeSrc":"24808:5:53","nodeType":"YulIdentifier","src":"24808:5:53"},"nativeSrc":"24808:26:53","nodeType":"YulFunctionCall","src":"24808:26:53"}],"functionName":{"name":"sstore","nativeSrc":"24793:6:53","nodeType":"YulIdentifier","src":"24793:6:53"},"nativeSrc":"24793:42:53","nodeType":"YulFunctionCall","src":"24793:42:53"},"nativeSrc":"24793:42:53","nodeType":"YulExpressionStatement","src":"24793:42:53"},{"nativeSrc":"24852:24:53","nodeType":"YulAssignment","src":"24852:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"24866:6:53","nodeType":"YulIdentifier","src":"24866:6:53"},{"kind":"number","nativeSrc":"24874:1:53","nodeType":"YulLiteral","src":"24874:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24862:3:53","nodeType":"YulIdentifier","src":"24862:3:53"},"nativeSrc":"24862:14:53","nodeType":"YulFunctionCall","src":"24862:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"24852:6:53","nodeType":"YulIdentifier","src":"24852:6:53"}]},{"nativeSrc":"24893:31:53","nodeType":"YulAssignment","src":"24893:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"24910:9:53","nodeType":"YulIdentifier","src":"24910:9:53"},{"kind":"number","nativeSrc":"24921:2:53","nodeType":"YulLiteral","src":"24921:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24906:3:53","nodeType":"YulIdentifier","src":"24906:3:53"},"nativeSrc":"24906:18:53","nodeType":"YulFunctionCall","src":"24906:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"24893:9:53","nodeType":"YulIdentifier","src":"24893:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"24741:1:53","nodeType":"YulIdentifier","src":"24741:1:53"},{"name":"loopEnd","nativeSrc":"24744:7:53","nodeType":"YulIdentifier","src":"24744:7:53"}],"functionName":{"name":"lt","nativeSrc":"24738:2:53","nodeType":"YulIdentifier","src":"24738:2:53"},"nativeSrc":"24738:14:53","nodeType":"YulFunctionCall","src":"24738:14:53"},"nativeSrc":"24730:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"24753:21:53","nodeType":"YulBlock","src":"24753:21:53","statements":[{"nativeSrc":"24755:17:53","nodeType":"YulAssignment","src":"24755:17:53","value":{"arguments":[{"name":"i","nativeSrc":"24764:1:53","nodeType":"YulIdentifier","src":"24764:1:53"},{"kind":"number","nativeSrc":"24767:4:53","nodeType":"YulLiteral","src":"24767:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24760:3:53","nodeType":"YulIdentifier","src":"24760:3:53"},"nativeSrc":"24760:12:53","nodeType":"YulFunctionCall","src":"24760:12:53"},"variableNames":[{"name":"i","nativeSrc":"24755:1:53","nodeType":"YulIdentifier","src":"24755:1:53"}]}]},"pre":{"nativeSrc":"24734:3:53","nodeType":"YulBlock","src":"24734:3:53","statements":[]},"src":"24730:208:53"},{"body":{"nativeSrc":"24974:156:53","nodeType":"YulBlock","src":"24974:156:53","statements":[{"nativeSrc":"24992:43:53","nodeType":"YulVariableDeclaration","src":"24992:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25019:3:53","nodeType":"YulIdentifier","src":"25019:3:53"},{"name":"srcOffset","nativeSrc":"25024:9:53","nodeType":"YulIdentifier","src":"25024:9:53"}],"functionName":{"name":"add","nativeSrc":"25015:3:53","nodeType":"YulIdentifier","src":"25015:3:53"},"nativeSrc":"25015:19:53","nodeType":"YulFunctionCall","src":"25015:19:53"}],"functionName":{"name":"mload","nativeSrc":"25009:5:53","nodeType":"YulIdentifier","src":"25009:5:53"},"nativeSrc":"25009:26:53","nodeType":"YulFunctionCall","src":"25009:26:53"},"variables":[{"name":"lastValue","nativeSrc":"24996:9:53","nodeType":"YulTypedName","src":"24996:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"25059:6:53","nodeType":"YulIdentifier","src":"25059:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"25086:9:53","nodeType":"YulIdentifier","src":"25086:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"25101:6:53","nodeType":"YulIdentifier","src":"25101:6:53"},{"kind":"number","nativeSrc":"25109:4:53","nodeType":"YulLiteral","src":"25109:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"25097:3:53","nodeType":"YulIdentifier","src":"25097:3:53"},"nativeSrc":"25097:17:53","nodeType":"YulFunctionCall","src":"25097:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"25067:18:53","nodeType":"YulIdentifier","src":"25067:18:53"},"nativeSrc":"25067:48:53","nodeType":"YulFunctionCall","src":"25067:48:53"}],"functionName":{"name":"sstore","nativeSrc":"25052:6:53","nodeType":"YulIdentifier","src":"25052:6:53"},"nativeSrc":"25052:64:53","nodeType":"YulFunctionCall","src":"25052:64:53"},"nativeSrc":"25052:64:53","nodeType":"YulExpressionStatement","src":"25052:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"24957:7:53","nodeType":"YulIdentifier","src":"24957:7:53"},{"name":"newLen","nativeSrc":"24966:6:53","nodeType":"YulIdentifier","src":"24966:6:53"}],"functionName":{"name":"lt","nativeSrc":"24954:2:53","nodeType":"YulIdentifier","src":"24954:2:53"},"nativeSrc":"24954:19:53","nodeType":"YulFunctionCall","src":"24954:19:53"},"nativeSrc":"24951:179:53","nodeType":"YulIf","src":"24951:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25150:4:53","nodeType":"YulIdentifier","src":"25150:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"25164:6:53","nodeType":"YulIdentifier","src":"25164:6:53"},{"kind":"number","nativeSrc":"25172:1:53","nodeType":"YulLiteral","src":"25172:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"25160:3:53","nodeType":"YulIdentifier","src":"25160:3:53"},"nativeSrc":"25160:14:53","nodeType":"YulFunctionCall","src":"25160:14:53"},{"kind":"number","nativeSrc":"25176:1:53","nodeType":"YulLiteral","src":"25176:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"25156:3:53","nodeType":"YulIdentifier","src":"25156:3:53"},"nativeSrc":"25156:22:53","nodeType":"YulFunctionCall","src":"25156:22:53"}],"functionName":{"name":"sstore","nativeSrc":"25143:6:53","nodeType":"YulIdentifier","src":"25143:6:53"},"nativeSrc":"25143:36:53","nodeType":"YulFunctionCall","src":"25143:36:53"},"nativeSrc":"25143:36:53","nodeType":"YulExpressionStatement","src":"25143:36:53"}]},"nativeSrc":"24571:618:53","nodeType":"YulCase","src":"24571:618:53","value":{"kind":"number","nativeSrc":"24576:1:53","nodeType":"YulLiteral","src":"24576:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"25206:222:53","nodeType":"YulBlock","src":"25206:222:53","statements":[{"nativeSrc":"25220:14:53","nodeType":"YulVariableDeclaration","src":"25220:14:53","value":{"kind":"number","nativeSrc":"25233:1:53","nodeType":"YulLiteral","src":"25233:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"25224:5:53","nodeType":"YulTypedName","src":"25224:5:53","type":""}]},{"body":{"nativeSrc":"25257:67:53","nodeType":"YulBlock","src":"25257:67:53","statements":[{"nativeSrc":"25275:35:53","nodeType":"YulAssignment","src":"25275:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25294:3:53","nodeType":"YulIdentifier","src":"25294:3:53"},{"name":"srcOffset","nativeSrc":"25299:9:53","nodeType":"YulIdentifier","src":"25299:9:53"}],"functionName":{"name":"add","nativeSrc":"25290:3:53","nodeType":"YulIdentifier","src":"25290:3:53"},"nativeSrc":"25290:19:53","nodeType":"YulFunctionCall","src":"25290:19:53"}],"functionName":{"name":"mload","nativeSrc":"25284:5:53","nodeType":"YulIdentifier","src":"25284:5:53"},"nativeSrc":"25284:26:53","nodeType":"YulFunctionCall","src":"25284:26:53"},"variableNames":[{"name":"value","nativeSrc":"25275:5:53","nodeType":"YulIdentifier","src":"25275:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"25250:6:53","nodeType":"YulIdentifier","src":"25250:6:53"},"nativeSrc":"25247:77:53","nodeType":"YulIf","src":"25247:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25344:4:53","nodeType":"YulIdentifier","src":"25344:4:53"},{"arguments":[{"name":"value","nativeSrc":"25403:5:53","nodeType":"YulIdentifier","src":"25403:5:53"},{"name":"newLen","nativeSrc":"25410:6:53","nodeType":"YulIdentifier","src":"25410:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"25350:52:53","nodeType":"YulIdentifier","src":"25350:52:53"},"nativeSrc":"25350:67:53","nodeType":"YulFunctionCall","src":"25350:67:53"}],"functionName":{"name":"sstore","nativeSrc":"25337:6:53","nodeType":"YulIdentifier","src":"25337:6:53"},"nativeSrc":"25337:81:53","nodeType":"YulFunctionCall","src":"25337:81:53"},"nativeSrc":"25337:81:53","nodeType":"YulExpressionStatement","src":"25337:81:53"}]},"nativeSrc":"25198:230:53","nodeType":"YulCase","src":"25198:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"24551:6:53","nodeType":"YulIdentifier","src":"24551:6:53"},{"kind":"number","nativeSrc":"24559:2:53","nodeType":"YulLiteral","src":"24559:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"24548:2:53","nodeType":"YulIdentifier","src":"24548:2:53"},"nativeSrc":"24548:14:53","nodeType":"YulFunctionCall","src":"24548:14:53"},"nativeSrc":"24541:887:53","nodeType":"YulSwitch","src":"24541:887:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"24039:1395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"24120:4:53","nodeType":"YulTypedName","src":"24120:4:53","type":""},{"name":"src","nativeSrc":"24126:3:53","nodeType":"YulTypedName","src":"24126:3:53","type":""}],"src":"24039:1395:53"},{"body":{"nativeSrc":"25585:225:53","nodeType":"YulBlock","src":"25585:225:53","statements":[{"nativeSrc":"25595:26:53","nodeType":"YulAssignment","src":"25595:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"25607:9:53","nodeType":"YulIdentifier","src":"25607:9:53"},{"kind":"number","nativeSrc":"25618:2:53","nodeType":"YulLiteral","src":"25618:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25603:3:53","nodeType":"YulIdentifier","src":"25603:3:53"},"nativeSrc":"25603:18:53","nodeType":"YulFunctionCall","src":"25603:18:53"},"variableNames":[{"name":"tail","nativeSrc":"25595:4:53","nodeType":"YulIdentifier","src":"25595:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25675:6:53","nodeType":"YulIdentifier","src":"25675:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25688:9:53","nodeType":"YulIdentifier","src":"25688:9:53"},{"kind":"number","nativeSrc":"25699:1:53","nodeType":"YulLiteral","src":"25699:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25684:3:53","nodeType":"YulIdentifier","src":"25684:3:53"},"nativeSrc":"25684:17:53","nodeType":"YulFunctionCall","src":"25684:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25631:43:53","nodeType":"YulIdentifier","src":"25631:43:53"},"nativeSrc":"25631:71:53","nodeType":"YulFunctionCall","src":"25631:71:53"},"nativeSrc":"25631:71:53","nodeType":"YulExpressionStatement","src":"25631:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"25775:6:53","nodeType":"YulIdentifier","src":"25775:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25788:9:53","nodeType":"YulIdentifier","src":"25788:9:53"},{"kind":"number","nativeSrc":"25799:2:53","nodeType":"YulLiteral","src":"25799:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25784:3:53","nodeType":"YulIdentifier","src":"25784:3:53"},"nativeSrc":"25784:18:53","nodeType":"YulFunctionCall","src":"25784:18:53"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack","nativeSrc":"25712:62:53","nodeType":"YulIdentifier","src":"25712:62:53"},"nativeSrc":"25712:91:53","nodeType":"YulFunctionCall","src":"25712:91:53"},"nativeSrc":"25712:91:53","nodeType":"YulExpressionStatement","src":"25712:91:53"}]},"name":"abi_encode_tuple_t_address_t_contract$_Cloneable_$17720__to_t_address_t_address__fromStack_reversed","nativeSrc":"25440:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25549:9:53","nodeType":"YulTypedName","src":"25549:9:53","type":""},{"name":"value1","nativeSrc":"25561:6:53","nodeType":"YulTypedName","src":"25561:6:53","type":""},{"name":"value0","nativeSrc":"25569:6:53","nodeType":"YulTypedName","src":"25569:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25580:4:53","nodeType":"YulTypedName","src":"25580:4:53","type":""}],"src":"25440:370:53"},{"body":{"nativeSrc":"25863:32:53","nodeType":"YulBlock","src":"25863:32:53","statements":[{"nativeSrc":"25873:16:53","nodeType":"YulAssignment","src":"25873:16:53","value":{"name":"value","nativeSrc":"25884:5:53","nodeType":"YulIdentifier","src":"25884:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"25873:7:53","nodeType":"YulIdentifier","src":"25873:7:53"}]}]},"name":"leftAlign_t_bytes32","nativeSrc":"25816:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25845:5:53","nodeType":"YulTypedName","src":"25845:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"25855:7:53","nodeType":"YulTypedName","src":"25855:7:53","type":""}],"src":"25816:79:53"},{"body":{"nativeSrc":"25984:74:53","nodeType":"YulBlock","src":"25984:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26001:3:53","nodeType":"YulIdentifier","src":"26001:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26044:5:53","nodeType":"YulIdentifier","src":"26044:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"26026:17:53","nodeType":"YulIdentifier","src":"26026:17:53"},"nativeSrc":"26026:24:53","nodeType":"YulFunctionCall","src":"26026:24:53"}],"functionName":{"name":"leftAlign_t_bytes32","nativeSrc":"26006:19:53","nodeType":"YulIdentifier","src":"26006:19:53"},"nativeSrc":"26006:45:53","nodeType":"YulFunctionCall","src":"26006:45:53"}],"functionName":{"name":"mstore","nativeSrc":"25994:6:53","nodeType":"YulIdentifier","src":"25994:6:53"},"nativeSrc":"25994:58:53","nodeType":"YulFunctionCall","src":"25994:58:53"},"nativeSrc":"25994:58:53","nodeType":"YulExpressionStatement","src":"25994:58:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"25901:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25972:5:53","nodeType":"YulTypedName","src":"25972:5:53","type":""},{"name":"pos","nativeSrc":"25979:3:53","nodeType":"YulTypedName","src":"25979:3:53","type":""}],"src":"25901:157:53"},{"body":{"nativeSrc":"26224:268:53","nodeType":"YulBlock","src":"26224:268:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"26313:6:53","nodeType":"YulIdentifier","src":"26313:6:53"},{"name":"pos","nativeSrc":"26322:3:53","nodeType":"YulIdentifier","src":"26322:3:53"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"26235:77:53","nodeType":"YulIdentifier","src":"26235:77:53"},"nativeSrc":"26235:91:53","nodeType":"YulFunctionCall","src":"26235:91:53"},"nativeSrc":"26235:91:53","nodeType":"YulExpressionStatement","src":"26235:91:53"},{"nativeSrc":"26335:18:53","nodeType":"YulAssignment","src":"26335:18:53","value":{"arguments":[{"name":"pos","nativeSrc":"26346:3:53","nodeType":"YulIdentifier","src":"26346:3:53"},{"kind":"number","nativeSrc":"26351:1:53","nodeType":"YulLiteral","src":"26351:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26342:3:53","nodeType":"YulIdentifier","src":"26342:3:53"},"nativeSrc":"26342:11:53","nodeType":"YulFunctionCall","src":"26342:11:53"},"variableNames":[{"name":"pos","nativeSrc":"26335:3:53","nodeType":"YulIdentifier","src":"26335:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"26425:6:53","nodeType":"YulIdentifier","src":"26425:6:53"},{"name":"pos","nativeSrc":"26434:3:53","nodeType":"YulIdentifier","src":"26434:3:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"26363:61:53","nodeType":"YulIdentifier","src":"26363:61:53"},"nativeSrc":"26363:75:53","nodeType":"YulFunctionCall","src":"26363:75:53"},"nativeSrc":"26363:75:53","nodeType":"YulExpressionStatement","src":"26363:75:53"},{"nativeSrc":"26447:19:53","nodeType":"YulAssignment","src":"26447:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"26458:3:53","nodeType":"YulIdentifier","src":"26458:3:53"},{"kind":"number","nativeSrc":"26463:2:53","nodeType":"YulLiteral","src":"26463:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26454:3:53","nodeType":"YulIdentifier","src":"26454:3:53"},"nativeSrc":"26454:12:53","nodeType":"YulFunctionCall","src":"26454:12:53"},"variableNames":[{"name":"pos","nativeSrc":"26447:3:53","nodeType":"YulIdentifier","src":"26447:3:53"}]},{"nativeSrc":"26476:10:53","nodeType":"YulAssignment","src":"26476:10:53","value":{"name":"pos","nativeSrc":"26483:3:53","nodeType":"YulIdentifier","src":"26483:3:53"},"variableNames":[{"name":"end","nativeSrc":"26476:3:53","nodeType":"YulIdentifier","src":"26476:3:53"}]}]},"name":"abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"26064:428:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26195:3:53","nodeType":"YulTypedName","src":"26195:3:53","type":""},{"name":"value1","nativeSrc":"26201:6:53","nodeType":"YulTypedName","src":"26201:6:53","type":""},{"name":"value0","nativeSrc":"26209:6:53","nodeType":"YulTypedName","src":"26209:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26220:3:53","nodeType":"YulTypedName","src":"26220:3:53","type":""}],"src":"26064:428:53"},{"body":{"nativeSrc":"26556:40:53","nodeType":"YulBlock","src":"26556:40:53","statements":[{"nativeSrc":"26567:22:53","nodeType":"YulAssignment","src":"26567:22:53","value":{"arguments":[{"name":"value","nativeSrc":"26583:5:53","nodeType":"YulIdentifier","src":"26583:5:53"}],"functionName":{"name":"mload","nativeSrc":"26577:5:53","nodeType":"YulIdentifier","src":"26577:5:53"},"nativeSrc":"26577:12:53","nodeType":"YulFunctionCall","src":"26577:12:53"},"variableNames":[{"name":"length","nativeSrc":"26567:6:53","nodeType":"YulIdentifier","src":"26567:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"26498:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26539:5:53","nodeType":"YulTypedName","src":"26539:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"26549:6:53","nodeType":"YulTypedName","src":"26549:6:53","type":""}],"src":"26498:98:53"},{"body":{"nativeSrc":"26697:73:53","nodeType":"YulBlock","src":"26697:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26714:3:53","nodeType":"YulIdentifier","src":"26714:3:53"},{"name":"length","nativeSrc":"26719:6:53","nodeType":"YulIdentifier","src":"26719:6:53"}],"functionName":{"name":"mstore","nativeSrc":"26707:6:53","nodeType":"YulIdentifier","src":"26707:6:53"},"nativeSrc":"26707:19:53","nodeType":"YulFunctionCall","src":"26707:19:53"},"nativeSrc":"26707:19:53","nodeType":"YulExpressionStatement","src":"26707:19:53"},{"nativeSrc":"26735:29:53","nodeType":"YulAssignment","src":"26735:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"26754:3:53","nodeType":"YulIdentifier","src":"26754:3:53"},{"kind":"number","nativeSrc":"26759:4:53","nodeType":"YulLiteral","src":"26759:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26750:3:53","nodeType":"YulIdentifier","src":"26750:3:53"},"nativeSrc":"26750:14:53","nodeType":"YulFunctionCall","src":"26750:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"26735:11:53","nodeType":"YulIdentifier","src":"26735:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"26602:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26669:3:53","nodeType":"YulTypedName","src":"26669:3:53","type":""},{"name":"length","nativeSrc":"26674:6:53","nodeType":"YulTypedName","src":"26674:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"26685:11:53","nodeType":"YulTypedName","src":"26685:11:53","type":""}],"src":"26602:168:53"},{"body":{"nativeSrc":"26866:283:53","nodeType":"YulBlock","src":"26866:283:53","statements":[{"nativeSrc":"26876:52:53","nodeType":"YulVariableDeclaration","src":"26876:52:53","value":{"arguments":[{"name":"value","nativeSrc":"26922:5:53","nodeType":"YulIdentifier","src":"26922:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"26890:31:53","nodeType":"YulIdentifier","src":"26890:31:53"},"nativeSrc":"26890:38:53","nodeType":"YulFunctionCall","src":"26890:38:53"},"variables":[{"name":"length","nativeSrc":"26880:6:53","nodeType":"YulTypedName","src":"26880:6:53","type":""}]},{"nativeSrc":"26937:77:53","nodeType":"YulAssignment","src":"26937:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"27002:3:53","nodeType":"YulIdentifier","src":"27002:3:53"},{"name":"length","nativeSrc":"27007:6:53","nodeType":"YulIdentifier","src":"27007:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"26944:57:53","nodeType":"YulIdentifier","src":"26944:57:53"},"nativeSrc":"26944:70:53","nodeType":"YulFunctionCall","src":"26944:70:53"},"variableNames":[{"name":"pos","nativeSrc":"26937:3:53","nodeType":"YulIdentifier","src":"26937:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27062:5:53","nodeType":"YulIdentifier","src":"27062:5:53"},{"kind":"number","nativeSrc":"27069:4:53","nodeType":"YulLiteral","src":"27069:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27058:3:53","nodeType":"YulIdentifier","src":"27058:3:53"},"nativeSrc":"27058:16:53","nodeType":"YulFunctionCall","src":"27058:16:53"},{"name":"pos","nativeSrc":"27076:3:53","nodeType":"YulIdentifier","src":"27076:3:53"},{"name":"length","nativeSrc":"27081:6:53","nodeType":"YulIdentifier","src":"27081:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"27023:34:53","nodeType":"YulIdentifier","src":"27023:34:53"},"nativeSrc":"27023:65:53","nodeType":"YulFunctionCall","src":"27023:65:53"},"nativeSrc":"27023:65:53","nodeType":"YulExpressionStatement","src":"27023:65:53"},{"nativeSrc":"27097:46:53","nodeType":"YulAssignment","src":"27097:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"27108:3:53","nodeType":"YulIdentifier","src":"27108:3:53"},{"arguments":[{"name":"length","nativeSrc":"27135:6:53","nodeType":"YulIdentifier","src":"27135:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"27113:21:53","nodeType":"YulIdentifier","src":"27113:21:53"},"nativeSrc":"27113:29:53","nodeType":"YulFunctionCall","src":"27113:29:53"}],"functionName":{"name":"add","nativeSrc":"27104:3:53","nodeType":"YulIdentifier","src":"27104:3:53"},"nativeSrc":"27104:39:53","nodeType":"YulFunctionCall","src":"27104:39:53"},"variableNames":[{"name":"end","nativeSrc":"27097:3:53","nodeType":"YulIdentifier","src":"27097:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"26776:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26847:5:53","nodeType":"YulTypedName","src":"26847:5:53","type":""},{"name":"pos","nativeSrc":"26854:3:53","nodeType":"YulTypedName","src":"26854:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26862:3:53","nodeType":"YulTypedName","src":"26862:3:53","type":""}],"src":"26776:373:53"},{"body":{"nativeSrc":"27271:193:53","nodeType":"YulBlock","src":"27271:193:53","statements":[{"nativeSrc":"27281:26:53","nodeType":"YulAssignment","src":"27281:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"27293:9:53","nodeType":"YulIdentifier","src":"27293:9:53"},{"kind":"number","nativeSrc":"27304:2:53","nodeType":"YulLiteral","src":"27304:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27289:3:53","nodeType":"YulIdentifier","src":"27289:3:53"},"nativeSrc":"27289:18:53","nodeType":"YulFunctionCall","src":"27289:18:53"},"variableNames":[{"name":"tail","nativeSrc":"27281:4:53","nodeType":"YulIdentifier","src":"27281:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27328:9:53","nodeType":"YulIdentifier","src":"27328:9:53"},{"kind":"number","nativeSrc":"27339:1:53","nodeType":"YulLiteral","src":"27339:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27324:3:53","nodeType":"YulIdentifier","src":"27324:3:53"},"nativeSrc":"27324:17:53","nodeType":"YulFunctionCall","src":"27324:17:53"},{"arguments":[{"name":"tail","nativeSrc":"27347:4:53","nodeType":"YulIdentifier","src":"27347:4:53"},{"name":"headStart","nativeSrc":"27353:9:53","nodeType":"YulIdentifier","src":"27353:9:53"}],"functionName":{"name":"sub","nativeSrc":"27343:3:53","nodeType":"YulIdentifier","src":"27343:3:53"},"nativeSrc":"27343:20:53","nodeType":"YulFunctionCall","src":"27343:20:53"}],"functionName":{"name":"mstore","nativeSrc":"27317:6:53","nodeType":"YulIdentifier","src":"27317:6:53"},"nativeSrc":"27317:47:53","nodeType":"YulFunctionCall","src":"27317:47:53"},"nativeSrc":"27317:47:53","nodeType":"YulExpressionStatement","src":"27317:47:53"},{"nativeSrc":"27373:84:53","nodeType":"YulAssignment","src":"27373:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"27443:6:53","nodeType":"YulIdentifier","src":"27443:6:53"},{"name":"tail","nativeSrc":"27452:4:53","nodeType":"YulIdentifier","src":"27452:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"27381:61:53","nodeType":"YulIdentifier","src":"27381:61:53"},"nativeSrc":"27381:76:53","nodeType":"YulFunctionCall","src":"27381:76:53"},"variableNames":[{"name":"tail","nativeSrc":"27373:4:53","nodeType":"YulIdentifier","src":"27373:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"27155:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27243:9:53","nodeType":"YulTypedName","src":"27243:9:53","type":""},{"name":"value0","nativeSrc":"27255:6:53","nodeType":"YulTypedName","src":"27255:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27266:4:53","nodeType":"YulTypedName","src":"27266:4:53","type":""}],"src":"27155:309:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_RegistryType_$12294(value) {\n if iszero(lt(value, 5)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_RegistryType_$12294(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_RegistryType_$12294(value)\n }\n\n function convert_t_enum$_RegistryType_$12294_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_RegistryType_$12294(value)\n }\n\n function abi_encode_t_enum$_RegistryType_$12294_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_RegistryType_$12294_to_t_uint8(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Cloneable_$17720_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Cloneable_$17720_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Cloneable_$17720_to_t_address(value))\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\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(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct BoostRegistry.Clone -> struct BoostRegistry.Clone\n function abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // baseType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // instance\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_contract$_Cloneable_$17720_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // deployer\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // name\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Clone_$12306_memory_ptr__to_t_struct$_Clone_$12306_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Clone_$12306_memory_ptr_to_t_struct$_Clone_$12306_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_bytes32_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(value0, pos) -> updatedPos {\n abi_encode_t_bytes32_to_t_bytes32(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bytes32[] -> bytes32[]\n function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$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_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Cloneable_$17720_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Cloneable_$17720__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Cloneable_$17720_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_enum$_RegistryType_$12294(value) {\n if iszero(lt(value, 5)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_RegistryType_$12294(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_RegistryType_$12294(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12294t_addresst_string_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12294(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, value3 := abi_decode_t_string_calldata_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 value4, value5 := abi_decode_t_bytes_calldata_ptr(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 shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\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 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 // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, value3, pos)\n\n end := pos\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 validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_RegistryType_$12294_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_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_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n end := pos\n }\n\n function shift_left_248(value) -> newValue {\n newValue :=\n\n shl(248, value)\n\n }\n\n function leftAlign_t_uint8(value) -> aligned {\n aligned := shift_left_248(value)\n }\n\n function abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint8(convert_t_enum$_RegistryType_$12294_to_t_uint8(value)))\n }\n\n function abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, value3, pos)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_t_address_t_contract$_Cloneable_$17720__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_contract$_Cloneable_$17720_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_enum$_RegistryType_$12294_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_enum$_RegistryType_$12294_to_t_uint8_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f42606236000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517fd3dd30120000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea264697066735822122015a5554f9dc3df658e598ffccd93a6cb416716d42755b52f24475168ea0d9fbb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xACC83FC8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xACC83FC8 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0xD12DD481 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1668792 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xFD97064B EQ PUSH2 0x1C6 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x3AAF1626 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x792AA01C EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x83F38859 EQ PUSH2 0x11A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB1 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCF SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x10A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x471 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0x11D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x504 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15F SWAP2 SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x171 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x194 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH2 0x5EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH2 0x818 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x146E JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x376 SWAP1 PUSH2 0x153E 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 0x3A2 SWAP1 PUSH2 0x153E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x46C JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4E4 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5A7 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x5E3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x15EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x648 SWAP2 SWAP1 PUSH2 0x1638 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x687 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH2 0x6C8 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD3DD301200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D4 DUP7 DUP7 DUP7 PUSH2 0x818 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x777 JUMPI DUP6 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76E SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x7D9 JUMPI PUSH2 0x7D8 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x660D31DF25C96B8A337FCF12A56B7363E5A997639DB853D5DBAEC7C01F31BD80 DUP6 PUSH1 0x40 MLOAD PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x84B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x830 SWAP3 SWAP2 SWAP1 PUSH2 0x1704 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0xC1C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x873 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH2 0x91B DUP8 DUP8 DUP8 DUP8 CALLER PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x89B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC4E SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x92B DUP9 DUP9 CALLER DUP10 DUP10 PUSH2 0x5AC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9D2 JUMPI DUP8 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C9 SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA51 JUMPI PUSH2 0xA50 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xB0E JUMPI PUSH2 0xB0D PUSH2 0xECA JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xBB4 SWAP2 SWAP1 PUSH2 0x1965 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP9 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x2348FCDB9847B17A183E53AA32C0C5C76AFDEF8FCB14BB51F216C6611701AB1A DUP10 DUP6 PUSH1 0x40 MLOAD PUSH2 0xBFD SWAP3 SWAP2 SWAP1 PUSH2 0x1A34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC30 SWAP3 SWAP2 SWAP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC78 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCE7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB3 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCF3 PUSH0 DUP5 DUP5 PUSH2 0xCFB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP3 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE DUP2 PUSH1 0x35 PUSH1 0xC DUP7 CREATE2 SWAP1 POP DUP1 PUSH2 0xD43 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6C JUMPI PUSH2 0xD6B PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDED DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP2 EQ PUSH2 0xDF7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE08 DUP2 PUSH2 0xDE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE23 JUMPI PUSH2 0xE22 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE30 DUP5 DUP3 DUP6 ADD PUSH2 0xDFA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE66 PUSH0 DUP4 ADD DUP5 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE7E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP2 EQ PUSH2 0xE88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE99 DUP2 PUSH2 0xE75 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEB4 JUMPI PUSH2 0xEB3 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEC1 DUP5 DUP3 DUP6 ADD PUSH2 0xE8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xECA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0xF18 DUP3 PUSH2 0xEF7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF27 DUP3 PUSH2 0xF0B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF37 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF7F PUSH2 0xF7A PUSH2 0xF75 DUP5 PUSH2 0xF3D JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF90 DUP3 PUSH2 0xF65 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFA1 DUP3 PUSH2 0xF86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB1 DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFC1 DUP3 PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD1 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1019 DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x1023 DUP2 DUP6 PUSH2 0xFE1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1033 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x103C DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x105C PUSH0 DUP7 ADD DUP3 PUSH2 0xF2E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x106F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xFA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1082 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xFC8 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x109A DUP3 DUP3 PUSH2 0x100F JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10BF DUP2 DUP5 PUSH2 0x1047 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10D0 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10EB DUP2 PUSH2 0x10C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1106 JUMPI PUSH2 0x1105 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1113 DUP5 DUP3 DUP6 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x115F DUP4 DUP4 PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1126 JUMP JUMPDEST SWAP4 POP PUSH2 0x1196 DUP4 PUSH2 0x1136 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11C6 JUMPI DUP2 MLOAD PUSH2 0x11AD DUP9 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP8 POP PUSH2 0x11B8 DUP4 PUSH2 0x116B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1199 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11EB DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11FC DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1215 PUSH0 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1238 DUP2 PUSH2 0x121B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x125F JUMPI PUSH2 0x125E PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH2 0x127B PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH2 0x1297 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B7 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12C5 DUP9 DUP3 DUP10 ADD PUSH2 0x122A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x12D6 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x12E7 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1308 JUMPI PUSH2 0x1307 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1314 DUP9 DUP3 DUP10 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x132C DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1345 PUSH0 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1363 JUMPI PUSH2 0x1362 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1370 DUP8 DUP3 DUP9 ADD PUSH2 0x122A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1391 JUMPI PUSH2 0x1390 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x139D DUP8 DUP3 DUP9 ADD PUSH2 0x124A JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x13B0 DUP8 DUP3 DUP9 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D2 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13E0 DUP7 DUP3 DUP8 ADD PUSH2 0x122A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x140D DUP7 DUP3 DUP8 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x142E JUMPI PUSH2 0x142D PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144A PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1466 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1487 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1495 DUP10 DUP3 DUP11 ADD PUSH2 0x122A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x14A6 DUP10 DUP3 DUP11 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP10 DUP3 DUP11 ADD PUSH2 0x124A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH2 0x14F5 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1502 DUP10 DUP3 DUP11 ADD PUSH2 0x1419 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1555 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1568 JUMPI PUSH2 0x1567 PUSH2 0x1511 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1584 DUP3 PUSH2 0x156E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1595 DUP3 PUSH2 0x157A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15AD PUSH2 0x15A8 DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x158B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D6 DUP4 DUP6 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x15E3 DUP4 DUP6 DUP5 PUSH2 0x15BD JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15FA DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x160A DUP3 DUP7 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x161B DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x164B PUSH0 DUP4 ADD DUP5 PUSH2 0x1629 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165A DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP2 EQ PUSH2 0x1664 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1675 DUP2 PUSH2 0x1651 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1690 JUMPI PUSH2 0x168F PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169D DUP5 DUP3 DUP6 ADD PUSH2 0x1667 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16AF DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C8 PUSH0 DUP4 ADD DUP5 PUSH2 0x16A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F0 PUSH0 DUP4 ADD DUP6 PUSH2 0x16CE JUMP JUMPDEST PUSH2 0x16FD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1710 DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 DUP3 PUSH2 0x171C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x174A PUSH2 0x1745 DUP3 PUSH2 0xF1D JUMP JUMPDEST PUSH2 0x1728 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x175B DUP3 DUP9 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x176B DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x177C DUP3 DUP6 DUP8 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP PUSH2 0x1788 DUP3 DUP5 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1824 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x17E9 JUMP JUMPDEST PUSH2 0x182E DUP7 DUP4 PUSH2 0x17E9 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1869 PUSH2 0x1864 PUSH2 0x185F DUP5 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x1846 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1882 DUP4 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x1896 PUSH2 0x188E DUP3 PUSH2 0x1870 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x17F5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x18AA PUSH2 0x189E JUMP JUMPDEST PUSH2 0x18B5 DUP2 DUP5 DUP5 PUSH2 0x1879 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18D8 JUMPI PUSH2 0x18CD PUSH0 DUP3 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x18BB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x18EE DUP2 PUSH2 0x17C8 JUMP JUMPDEST PUSH2 0x18F7 DUP5 PUSH2 0x17DA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1906 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x191A PUSH2 0x1912 DUP6 PUSH2 0x17DA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x18BA JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x193D PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1922 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1955 DUP4 DUP4 PUSH2 0x192E JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x196E DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1987 JUMPI PUSH2 0x1986 PUSH2 0x179B JUMP JUMPDEST JUMPDEST PUSH2 0x1991 DUP3 SLOAD PUSH2 0x153E JUMP JUMPDEST PUSH2 0x199C DUP3 DUP3 DUP6 PUSH2 0x18DC JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19CD JUMPI PUSH0 DUP5 ISZERO PUSH2 0x19BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x19C5 DUP6 DUP3 PUSH2 0x194A JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1A2C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x19DB DUP7 PUSH2 0x17C8 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A02 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 0x19DD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1A1F JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1A1B PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x192E 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 PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A47 PUSH0 DUP4 ADD DUP6 PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x1A54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A70 DUP3 PUSH2 0xE6C JUMP JUMPDEST PUSH2 0x1A5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A86 DUP3 DUP6 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x1A96 DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ACA DUP3 PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0x1AD4 DUP2 DUP6 PUSH2 0x1AB0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1AE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x1AED DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B10 DUP2 DUP5 PUSH2 0x1AC0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO 0xA5 SSTORE 0x4F SWAP14 0xC3 0xDF PUSH6 0x8E598FFCCD93 0xA6 0xCB COINBASE PUSH8 0x16D42755B52F2447 MLOAD PUSH9 0xEA0D9FBB64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"682:7550:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:146:12;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6006:213:30;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6593:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7087:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3401:432;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7611:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4332:893;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;763:146:12;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;6006:213:30:-;6068:18;;:::i;:::-;6106:7;:20;6114:11;6106:20;;;;;;;;;;;6098:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6175:1;6140:37;;6148:5;:14;;;6140:37;;;6136:76;;6200:11;6186:26;;;;;;;;;;;:::i;:::-;;;;;;;;6136:76;6006:213;;;:::o;6593:129::-;6654:16;6689:15;:26;6705:9;6689:26;;;;;;;;;;;;;;;6682:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6593:129;;;:::o;5537:238::-;5610:24;5663:6;:19;5670:11;5663:19;;;;;;;;;;;;;;;;;;;;;5646:36;;5731:1;5696:37;;5704:14;5696:37;;;5692:76;;5756:11;5742:26;;;;;;;;;;;:::i;:::-;;;;;;;;5692:76;5537:238;;;:::o;7087:273::-;7237:18;7278:75;7293:5;7327;7334:9;7345:5;;7310:41;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7300:52;;;;;;7278:14;:75::i;:::-;7271:82;;7087:273;;;;;;;:::o;3401:432::-;3527:15;2738;2728:44;;;2773:27;2728:73;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2723:141;;2837:15;2824:29;;;;;;;;;;;:::i;:::-;;;;;;;;2723:141;3558:18:::1;3579:27;3593:5;3600;;3579:13;:27::i;:::-;3558:48;;3660:1;3621:41;;3629:6;:18:::0;3636:10:::1;3629:18;;;;;;;;;;;;;;;;;;;;;3621:41;;;3617:90;;3689:5;3696:10;3671:36;;;;;;;;;;;;:::i;:::-;;;;;;;;3617:90;3748:15;3717:6;:18:::0;3724:10:::1;3717:18;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;3798:10;3791:5;3780:46;;;;;;;;:::i;:::-;;;3810:15;3780:46;;;;;;:::i;:::-;;;;;;;;3548:285;3401:432:::0;;;;;:::o;7611:188::-;7698:18;7735:57;7750:5;7784;;7767:23;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7757:34;;;;;;7735:14;:57::i;:::-;7728:64;;7611:188;;;;;:::o;4332:893::-;4488:18;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;4598:93:30::1;4650:5;4657;4664;;4671:10;4633:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4623:60;;;;;;4685:5;;4598:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:24;;;;:93;;;;;:::i;:::-;4565:127;;4754:18;4775:51;4794:5;4801;4808:10;4820:5;;4775:18;:51::i;:::-;4754:72;;4889:1;4840:51;;4848:7;:19;4856:10;4848:19;;;;;;;;;;;:28;;;;;;;;;;;;4840:51;;;4836:100;;4918:5;4925:10;4900:36;;;;;;;;;;;;:::i;:::-;;;;;;;;4836:100;5003:15;:27;5019:10;5003:27;;;;;;;;;;;;;;;5036:10;5003:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5079:79;;;;;;;;5096:5;5079:79;;;;;;;;:::i;:::-;;;;;;5113:8;5079:79;;;;;;5133:10;5079:79;;;;;;5151:5;;5079:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;5057:7:::1;:19;5065:10;5057:19;;;;;;;;;;;:101;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5190:10;5183:5;5174:44;;;;;;;;:::i;:::-;;;5202:5;5209:8;5174:44;;;;;;;:::i;:::-;;;;;;;;4512:713;1937:10:26::0;1913:22;1906:42;4332:893:30;;;;;;;;:::o;8063:167::-;8145:18;8209:5;8216;8192:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8182:41;;;;;;8175:48;;8063:167;;;;:::o;1526:276:47:-;1622:14;1657:27;1678:5;1657:1;:20;;;;:27;;;;:::i;:::-;1648:36;;1766:6;1756:28;;;1785:9;1756:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1526:276;;;;;:::o;9887:193:22:-;9987:16;10030:43;10049:1;10052:14;10068:4;10030:18;:43::i;:::-;10019:54;;9887:193;;;;:::o;10210:675::-;10325:16;10436:28;10430:4;10423:42;10491:14;10485:4;10478:28;10532:42;10526:4;10519:56;10627:4;10621;10615;10608:5;10600:32;10588:44;;10655:8;10645:136;;10696:10;10690:4;10683:24;10762:4;10756;10749:18;10645:136;10807:1;10801:4;10794:15;10210:675;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:53:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:180::-;2257:77;2254:1;2247:88;2354:4;2351:1;2344:15;2378:4;2375:1;2368:15;2395:123;2486:1;2479:5;2476:12;2466:46;;2492:18;;:::i;:::-;2466:46;2395:123;:::o;2524:147::-;2579:7;2608:5;2597:16;;2614:51;2659:5;2614:51;:::i;:::-;2524:147;;;:::o;2677:::-;2743:9;2776:42;2812:5;2776:42;:::i;:::-;2763:55;;2677:147;;;:::o;2830:153::-;2923:53;2970:5;2923:53;:::i;:::-;2918:3;2911:66;2830:153;;:::o;2989:126::-;3026:7;3066:42;3059:5;3055:54;3044:65;;2989:126;;;:::o;3121:60::-;3149:3;3170:5;3163:12;;3121:60;;;:::o;3187:142::-;3237:9;3270:53;3288:34;3297:24;3315:5;3297:24;:::i;:::-;3288:34;:::i;:::-;3270:53;:::i;:::-;3257:66;;3187:142;;;:::o;3335:126::-;3385:9;3418:37;3449:5;3418:37;:::i;:::-;3405:50;;3335:126;;;:::o;3467:145::-;3536:9;3569:37;3600:5;3569:37;:::i;:::-;3556:50;;3467:145;;;:::o;3618:159::-;3714:56;3764:5;3714:56;:::i;:::-;3709:3;3702:69;3618:159;;:::o;3783:96::-;3820:7;3849:24;3867:5;3849:24;:::i;:::-;3838:35;;3783:96;;;:::o;3885:108::-;3962:24;3980:5;3962:24;:::i;:::-;3957:3;3950:37;3885:108;;:::o;3999:99::-;4051:6;4085:5;4079:12;4069:22;;3999:99;;;:::o;4104:159::-;4178:11;4212:6;4207:3;4200:19;4252:4;4247:3;4243:14;4228:29;;4104:159;;;;:::o;4269:139::-;4358:6;4353:3;4348;4342:23;4399:1;4390:6;4385:3;4381:16;4374:27;4269:139;;;:::o;4414:102::-;4455:6;4506:2;4502:7;4497:2;4490:5;4486:14;4482:28;4472:38;;4414:102;;;:::o;4522:357::-;4600:3;4628:39;4661:5;4628:39;:::i;:::-;4683:61;4737:6;4732:3;4683:61;:::i;:::-;4676:68;;4753:65;4811:6;4806:3;4799:4;4792:5;4788:16;4753:65;:::i;:::-;4843:29;4865:6;4843:29;:::i;:::-;4838:3;4834:39;4827:46;;4604:275;4522:357;;;;:::o;4949:999::-;5066:3;5102:4;5097:3;5093:14;5193:4;5186:5;5182:16;5176:23;5212:79;5285:4;5280:3;5276:14;5262:12;5212:79;:::i;:::-;5117:184;5387:4;5380:5;5376:16;5370:23;5406:82;5482:4;5477:3;5473:14;5459:12;5406:82;:::i;:::-;5311:187;5584:4;5577:5;5573:16;5567:23;5603:63;5660:4;5655:3;5651:14;5637:12;5603:63;:::i;:::-;5508:168;5758:4;5751:5;5747:16;5741:23;5811:3;5805:4;5801:14;5794:4;5789:3;5785:14;5778:38;5837:73;5905:4;5891:12;5837:73;:::i;:::-;5829:81;;5686:235;5938:4;5931:11;;5071:877;4949:999;;;;:::o;5954:369::-;6095:4;6133:2;6122:9;6118:18;6110:26;;6182:9;6176:4;6172:20;6168:1;6157:9;6153:17;6146:47;6210:106;6311:4;6302:6;6210:106;:::i;:::-;6202:114;;5954:369;;;;:::o;6329:122::-;6402:24;6420:5;6402:24;:::i;:::-;6395:5;6392:35;6382:63;;6441:1;6438;6431:12;6382:63;6329:122;:::o;6457:139::-;6503:5;6541:6;6528:20;6519:29;;6557:33;6584:5;6557:33;:::i;:::-;6457:139;;;;:::o;6602:329::-;6661:6;6710:2;6698:9;6689:7;6685:23;6681:32;6678:119;;;6716:79;;:::i;:::-;6678:119;6836:1;6861:53;6906:7;6897:6;6886:9;6882:22;6861:53;:::i;:::-;6851:63;;6807:117;6602:329;;;;:::o;6937:114::-;7004:6;7038:5;7032:12;7022:22;;6937:114;;;:::o;7057:184::-;7156:11;7190:6;7185:3;7178:19;7230:4;7225:3;7221:14;7206:29;;7057:184;;;;:::o;7247:132::-;7314:4;7337:3;7329:11;;7367:4;7362:3;7358:14;7350:22;;7247:132;;;:::o;7385:108::-;7462:24;7480:5;7462:24;:::i;:::-;7457:3;7450:37;7385:108;;:::o;7499:179::-;7568:10;7589:46;7631:3;7623:6;7589:46;:::i;:::-;7667:4;7662:3;7658:14;7644:28;;7499:179;;;;:::o;7684:113::-;7754:4;7786;7781:3;7777:14;7769:22;;7684:113;;;:::o;7833:732::-;7952:3;7981:54;8029:5;7981:54;:::i;:::-;8051:86;8130:6;8125:3;8051:86;:::i;:::-;8044:93;;8161:56;8211:5;8161:56;:::i;:::-;8240:7;8271:1;8256:284;8281:6;8278:1;8275:13;8256:284;;;8357:6;8351:13;8384:63;8443:3;8428:13;8384:63;:::i;:::-;8377:70;;8470:60;8523:6;8470:60;:::i;:::-;8460:70;;8316:224;8303:1;8300;8296:9;8291:14;;8256:284;;;8260:14;8556:3;8549:10;;7957:608;;;7833:732;;;;:::o;8571:373::-;8714:4;8752:2;8741:9;8737:18;8729:26;;8801:9;8795:4;8791:20;8787:1;8776:9;8772:17;8765:47;8829:108;8932:4;8923:6;8829:108;:::i;:::-;8821:116;;8571:373;;;;:::o;8950:169::-;9056:56;9106:5;9056:56;:::i;:::-;9051:3;9044:69;8950:169;;:::o;9125:260::-;9237:4;9275:2;9264:9;9260:18;9252:26;;9288:90;9375:1;9364:9;9360:17;9351:6;9288:90;:::i;:::-;9125:260;;;;:::o;9391:117::-;9482:1;9475:5;9472:12;9462:40;;9498:1;9495;9488:12;9462:40;9391:117;:::o;9514:175::-;9578:5;9616:6;9603:20;9594:29;;9632:51;9677:5;9632:51;:::i;:::-;9514:175;;;;:::o;9695:117::-;9804:1;9801;9794:12;9818:117;9927:1;9924;9917:12;9941:117;10050:1;10047;10040:12;10078:553;10136:8;10146:6;10196:3;10189:4;10181:6;10177:17;10173:27;10163:122;;10204:79;;:::i;:::-;10163:122;10317:6;10304:20;10294:30;;10347:18;10339:6;10336:30;10333:117;;;10369:79;;:::i;:::-;10333:117;10483:4;10475:6;10471:17;10459:29;;10537:3;10529:4;10521:6;10517:17;10507:8;10503:32;10500:41;10497:128;;;10544:79;;:::i;:::-;10497:128;10078:553;;;;;:::o;10637:1001::-;10753:6;10761;10769;10777;10785;10834:3;10822:9;10813:7;10809:23;10805:33;10802:120;;;10841:79;;:::i;:::-;10802:120;10961:1;10986:71;11049:7;11040:6;11029:9;11025:22;10986:71;:::i;:::-;10976:81;;10932:135;11106:2;11132:53;11177:7;11168:6;11157:9;11153:22;11132:53;:::i;:::-;11122:63;;11077:118;11234:2;11260:53;11305:7;11296:6;11285:9;11281:22;11260:53;:::i;:::-;11250:63;;11205:118;11390:2;11379:9;11375:18;11362:32;11421:18;11413:6;11410:30;11407:117;;;11443:79;;:::i;:::-;11407:117;11556:65;11613:7;11604:6;11593:9;11589:22;11556:65;:::i;:::-;11538:83;;;;11333:298;10637:1001;;;;;;;;:::o;11644:118::-;11731:24;11749:5;11731:24;:::i;:::-;11726:3;11719:37;11644:118;;:::o;11768:222::-;11861:4;11899:2;11888:9;11884:18;11876:26;;11912:71;11980:1;11969:9;11965:17;11956:6;11912:71;:::i;:::-;11768:222;;;;:::o;11996:855::-;12103:6;12111;12119;12127;12176:2;12164:9;12155:7;12151:23;12147:32;12144:119;;;12182:79;;:::i;:::-;12144:119;12302:1;12327:71;12390:7;12381:6;12370:9;12366:22;12327:71;:::i;:::-;12317:81;;12273:135;12475:2;12464:9;12460:18;12447:32;12506:18;12498:6;12495:30;12492:117;;;12528:79;;:::i;:::-;12492:117;12641:65;12698:7;12689:6;12678:9;12674:22;12641:65;:::i;:::-;12623:83;;;;12418:298;12755:2;12781:53;12826:7;12817:6;12806:9;12802:22;12781:53;:::i;:::-;12771:63;;12726:118;11996:855;;;;;;;:::o;12857:710::-;12955:6;12963;12971;13020:2;13008:9;12999:7;12995:23;12991:32;12988:119;;;13026:79;;:::i;:::-;12988:119;13146:1;13171:71;13234:7;13225:6;13214:9;13210:22;13171:71;:::i;:::-;13161:81;;13117:135;13319:2;13308:9;13304:18;13291:32;13350:18;13342:6;13339:30;13336:117;;;13372:79;;:::i;:::-;13336:117;13485:65;13542:7;13533:6;13522:9;13518:22;13485:65;:::i;:::-;13467:83;;;;13262:298;12857:710;;;;;:::o;13586:552::-;13643:8;13653:6;13703:3;13696:4;13688:6;13684:17;13680:27;13670:122;;13711:79;;:::i;:::-;13670:122;13824:6;13811:20;13801:30;;13854:18;13846:6;13843:30;13840:117;;;13876:79;;:::i;:::-;13840:117;13990:4;13982:6;13978:17;13966:29;;14044:3;14036:4;14028:6;14024:17;14014:8;14010:32;14007:41;14004:128;;;14051:79;;:::i;:::-;14004:128;13586:552;;;;;:::o;14144:1199::-;14271:6;14279;14287;14295;14303;14311;14360:3;14348:9;14339:7;14335:23;14331:33;14328:120;;;14367:79;;:::i;:::-;14328:120;14487:1;14512:71;14575:7;14566:6;14555:9;14551:22;14512:71;:::i;:::-;14502:81;;14458:135;14632:2;14658:53;14703:7;14694:6;14683:9;14679:22;14658:53;:::i;:::-;14648:63;;14603:118;14788:2;14777:9;14773:18;14760:32;14819:18;14811:6;14808:30;14805:117;;;14841:79;;:::i;:::-;14805:117;14954:65;15011:7;15002:6;14991:9;14987:22;14954:65;:::i;:::-;14936:83;;;;14731:298;15096:2;15085:9;15081:18;15068:32;15127:18;15119:6;15116:30;15113:117;;;15149:79;;:::i;:::-;15113:117;15262:64;15318:7;15309:6;15298:9;15294:22;15262:64;:::i;:::-;15244:82;;;;15039:297;14144:1199;;;;;;;;:::o;15349:180::-;15397:77;15394:1;15387:88;15494:4;15491:1;15484:15;15518:4;15515:1;15508:15;15535:320;15579:6;15616:1;15610:4;15606:12;15596:22;;15663:1;15657:4;15653:12;15684:18;15674:81;;15740:4;15732:6;15728:17;15718:27;;15674:81;15802:2;15794:6;15791:14;15771:18;15768:38;15765:84;;15821:18;;:::i;:::-;15765:84;15586:269;15535:320;;;:::o;15861:94::-;15894:8;15942:5;15938:2;15934:14;15913:35;;15861:94;;;:::o;15961:::-;16000:7;16029:20;16043:5;16029:20;:::i;:::-;16018:31;;15961:94;;;:::o;16061:100::-;16100:7;16129:26;16149:5;16129:26;:::i;:::-;16118:37;;16061:100;;;:::o;16167:157::-;16272:45;16292:24;16310:5;16292:24;:::i;:::-;16272:45;:::i;:::-;16267:3;16260:58;16167:157;;:::o;16330:148::-;16432:11;16469:3;16454:18;;16330:148;;;;:::o;16484:::-;16582:6;16577:3;16572;16559:30;16623:1;16614:6;16609:3;16605:16;16598:27;16484:148;;;:::o;16662:330::-;16778:3;16799:89;16881:6;16876:3;16799:89;:::i;:::-;16792:96;;16898:56;16947:6;16942:3;16935:5;16898:56;:::i;:::-;16979:6;16974:3;16970:16;16963:23;;16662:330;;;;;:::o;16998:577::-;17196:3;17211:75;17282:3;17273:6;17211:75;:::i;:::-;17311:2;17306:3;17302:12;17295:19;;17324:75;17395:3;17386:6;17324:75;:::i;:::-;17424:2;17419:3;17415:12;17408:19;;17444:105;17545:3;17536:6;17528;17444:105;:::i;:::-;17437:112;;17566:3;17559:10;;16998:577;;;;;;;:::o;17581:115::-;17666:23;17683:5;17666:23;:::i;:::-;17661:3;17654:36;17581:115;;:::o;17702:218::-;17793:4;17831:2;17820:9;17816:18;17808:26;;17844:69;17910:1;17899:9;17895:17;17886:6;17844:69;:::i;:::-;17702:218;;;;:::o;17926:116::-;17996:21;18011:5;17996:21;:::i;:::-;17989:5;17986:32;17976:60;;18032:1;18029;18022:12;17976:60;17926:116;:::o;18048:137::-;18102:5;18133:6;18127:13;18118:22;;18149:30;18173:5;18149:30;:::i;:::-;18048:137;;;;:::o;18191:345::-;18258:6;18307:2;18295:9;18286:7;18282:23;18278:32;18275:119;;;18313:79;;:::i;:::-;18275:119;18433:1;18458:61;18511:7;18502:6;18491:9;18487:22;18458:61;:::i;:::-;18448:71;;18404:125;18191:345;;;;:::o;18542:118::-;18629:24;18647:5;18629:24;:::i;:::-;18624:3;18617:37;18542:118;;:::o;18666:222::-;18759:4;18797:2;18786:9;18782:18;18774:26;;18810:71;18878:1;18867:9;18863:17;18854:6;18810:71;:::i;:::-;18666:222;;;;:::o;18894:163::-;18997:53;19044:5;18997:53;:::i;:::-;18992:3;18985:66;18894:163;;:::o;19063:364::-;19200:4;19238:2;19227:9;19223:18;19215:26;;19251:87;19335:1;19324:9;19320:17;19311:6;19251:87;:::i;:::-;19348:72;19416:2;19405:9;19401:18;19392:6;19348:72;:::i;:::-;19063:364;;;;;:::o;19433:295::-;19575:3;19597:105;19698:3;19689:6;19681;19597:105;:::i;:::-;19590:112;;19719:3;19712:10;;19433:295;;;;;:::o;19734:96::-;19768:8;19817:5;19812:3;19808:15;19787:36;;19734:96;;;:::o;19836:93::-;19873:7;19902:21;19917:5;19902:21;:::i;:::-;19891:32;;19836:93;;;:::o;19935:200::-;20056:72;20074:53;20121:5;20074:53;:::i;:::-;20056:72;:::i;:::-;20051:3;20044:85;19935:200;;:::o;20141:749::-;20383:3;20398:91;20485:3;20476:6;20398:91;:::i;:::-;20514:1;20509:3;20505:11;20498:18;;20526:75;20597:3;20588:6;20526:75;:::i;:::-;20626:2;20621:3;20617:12;20610:19;;20646:105;20747:3;20738:6;20730;20646:105;:::i;:::-;20639:112;;20761:75;20832:3;20823:6;20761:75;:::i;:::-;20861:2;20856:3;20852:12;20845:19;;20881:3;20874:10;;20141:749;;;;;;;;:::o;20896:180::-;20944:77;20941:1;20934:88;21041:4;21038:1;21031:15;21065:4;21062:1;21055:15;21082:141;21131:4;21154:3;21146:11;;21177:3;21174:1;21167:14;21211:4;21208:1;21198:18;21190:26;;21082:141;;;:::o;21229:93::-;21266:6;21313:2;21308;21301:5;21297:14;21293:23;21283:33;;21229:93;;;:::o;21328:107::-;21372:8;21422:5;21416:4;21412:16;21391:37;;21328:107;;;;:::o;21441:393::-;21510:6;21560:1;21548:10;21544:18;21583:97;21613:66;21602:9;21583:97;:::i;:::-;21701:39;21731:8;21720:9;21701:39;:::i;:::-;21689:51;;21773:4;21769:9;21762:5;21758:21;21749:30;;21822:4;21812:8;21808:19;21801:5;21798:30;21788:40;;21517:317;;21441:393;;;;;:::o;21840:77::-;21877:7;21906:5;21895:16;;21840:77;;;:::o;21923:142::-;21973:9;22006:53;22024:34;22033:24;22051:5;22033:24;:::i;:::-;22024:34;:::i;:::-;22006:53;:::i;:::-;21993:66;;21923:142;;;:::o;22071:75::-;22114:3;22135:5;22128:12;;22071:75;;;:::o;22152:269::-;22262:39;22293:7;22262:39;:::i;:::-;22323:91;22372:41;22396:16;22372:41;:::i;:::-;22364:6;22357:4;22351:11;22323:91;:::i;:::-;22317:4;22310:105;22228:193;22152:269;;;:::o;22427:73::-;22472:3;22427:73;:::o;22506:189::-;22583:32;;:::i;:::-;22624:65;22682:6;22674;22668:4;22624:65;:::i;:::-;22559:136;22506:189;;:::o;22701:186::-;22761:120;22778:3;22771:5;22768:14;22761:120;;;22832:39;22869:1;22862:5;22832:39;:::i;:::-;22805:1;22798:5;22794:13;22785:22;;22761:120;;;22701:186;;:::o;22893:543::-;22994:2;22989:3;22986:11;22983:446;;;23028:38;23060:5;23028:38;:::i;:::-;23112:29;23130:10;23112:29;:::i;:::-;23102:8;23098:44;23295:2;23283:10;23280:18;23277:49;;;23316:8;23301:23;;23277:49;23339:80;23395:22;23413:3;23395:22;:::i;:::-;23385:8;23381:37;23368:11;23339:80;:::i;:::-;22998:431;;22983:446;22893:543;;;:::o;23442:117::-;23496:8;23546:5;23540:4;23536:16;23515:37;;23442:117;;;;:::o;23565:169::-;23609:6;23642:51;23690:1;23686:6;23678:5;23675:1;23671:13;23642:51;:::i;:::-;23638:56;23723:4;23717;23713:15;23703:25;;23616:118;23565:169;;;;:::o;23739:295::-;23815:4;23961:29;23986:3;23980:4;23961:29;:::i;:::-;23953:37;;24023:3;24020:1;24016:11;24010:4;24007:21;23999:29;;23739:295;;;;:::o;24039:1395::-;24156:37;24189:3;24156:37;:::i;:::-;24258:18;24250:6;24247:30;24244:56;;;24280:18;;:::i;:::-;24244:56;24324:38;24356:4;24350:11;24324:38;:::i;:::-;24409:67;24469:6;24461;24455:4;24409:67;:::i;:::-;24503:1;24527:4;24514:17;;24559:2;24551:6;24548:14;24576:1;24571:618;;;;25233:1;25250:6;25247:77;;;25299:9;25294:3;25290:19;25284:26;25275:35;;25247:77;25350:67;25410:6;25403:5;25350:67;:::i;:::-;25344:4;25337:81;25206:222;24541:887;;24571:618;24623:4;24619:9;24611:6;24607:22;24657:37;24689:4;24657:37;:::i;:::-;24716:1;24730:208;24744:7;24741:1;24738:14;24730:208;;;24823:9;24818:3;24814:19;24808:26;24800:6;24793:42;24874:1;24866:6;24862:14;24852:24;;24921:2;24910:9;24906:18;24893:31;;24767:4;24764:1;24760:12;24755:17;;24730:208;;;24966:6;24957:7;24954:19;24951:179;;;25024:9;25019:3;25015:19;25009:26;25067:48;25109:4;25101:6;25097:17;25086:9;25067:48;:::i;:::-;25059:6;25052:64;24974:156;24951:179;25176:1;25172;25164:6;25160:14;25156:22;25150:4;25143:36;24578:611;;;24541:887;;24131:1303;;;24039:1395;;:::o;25440:370::-;25580:4;25618:2;25607:9;25603:18;25595:26;;25631:71;25699:1;25688:9;25684:17;25675:6;25631:71;:::i;:::-;25712:91;25799:2;25788:9;25784:18;25775:6;25712:91;:::i;:::-;25440:370;;;;;:::o;25816:79::-;25855:7;25884:5;25873:16;;25816:79;;;:::o;25901:157::-;26006:45;26026:24;26044:5;26026:24;:::i;:::-;26006:45;:::i;:::-;26001:3;25994:58;25901:157;;:::o;26064:428::-;26220:3;26235:91;26322:3;26313:6;26235:91;:::i;:::-;26351:1;26346:3;26342:11;26335:18;;26363:75;26434:3;26425:6;26363:75;:::i;:::-;26463:2;26458:3;26454:12;26447:19;;26483:3;26476:10;;26064:428;;;;;:::o;26498:98::-;26549:6;26583:5;26577:12;26567:22;;26498:98;;;:::o;26602:168::-;26685:11;26719:6;26714:3;26707:19;26759:4;26754:3;26750:14;26735:29;;26602:168;;;;:::o;26776:373::-;26862:3;26890:38;26922:5;26890:38;:::i;:::-;26944:70;27007:6;27002:3;26944:70;:::i;:::-;26937:77;;27023:65;27081:6;27076:3;27069:4;27062:5;27058:16;27023:65;:::i;:::-;27113:29;27135:6;27113:29;:::i;:::-;27108:3;27104:39;27097:46;;26866:283;26776:373;;;;:::o;27155:309::-;27266:4;27304:2;27293:9;27289:18;27281:26;;27353:9;27347:4;27343:20;27339:1;27328:9;27324:17;27317:47;27381:76;27452:4;27443:6;27381:76;:::i;:::-;27373:84;;27155:309;;;;:::o"},"methodIdentifiers":{"deployClone(uint8,address,string,bytes)":"fd97064b","getBaseImplementation(bytes32)":"83f38859","getClone(bytes32)":"3aaf1626","getCloneIdentifier(uint8,address,address,string)":"acc83fc8","getClones(address)":"792aa01c","getIdentifier(uint8,string)":"f1668792","register(uint8,string,address)":"d12dd481","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"name\":\"AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"NotCloneable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"name\":\"NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"baseImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract Cloneable\",\"name\":\"deployedInstance\",\"type\":\"address\"}],\"name\":\"Deployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"base_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"deployClone\",\"outputs\":[{\"internalType\":\"contract Cloneable\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier_\",\"type\":\"bytes32\"}],\"name\":\"getBaseImplementation\",\"outputs\":[{\"internalType\":\"contract Cloneable\",\"name\":\"implementation\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier_\",\"type\":\"bytes32\"}],\"name\":\"getClone\",\"outputs\":[{\"components\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"baseType\",\"type\":\"uint8\"},{\"internalType\":\"contract Cloneable\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"struct BoostRegistry.Clone\",\"name\":\"clone\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"base_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"getCloneIdentifier\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer_\",\"type\":\"address\"}],\"name\":\"getClones\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"getIdentifier\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"register\",\"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\":\"This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol\",\"errors\":{\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{\"deployClone(uint8,address,string,bytes)\":{\"details\":\"This function will either emit a `Deployed` event and return the clone or revert\",\"params\":{\"base_\":\"The address of the base implementation to clone\",\"data_\":\"The data payload for the cloned instance's initializer\",\"name_\":\"The display name for the clone\",\"type_\":\"The type of base implementation to be cloned\"},\"returns\":{\"instance\":\"The address of the deployed instance\"}},\"getBaseImplementation(bytes32)\":{\"details\":\"This function will revert if the implementation is not registered\",\"params\":{\"identifier_\":\"The unique identifier for the implementation (see {getIdentifier})\"},\"returns\":{\"implementation\":\"The address of the implementation\"}},\"getClone(bytes32)\":{\"params\":{\"identifier_\":\"The unique identifier for the deployed clone (see {getCloneIdentifier})\"},\"returns\":{\"clone\":\"The address of the deployed clone\"}},\"getCloneIdentifier(uint8,address,address,string)\":{\"params\":{\"base_\":\"The address of the base implementation\",\"deployer_\":\"The address of the deployer\",\"name_\":\"The display name of the clone\",\"type_\":\"The base type for the implementation\"},\"returns\":{\"identifier\":\"The unique identifier for the clone\"}},\"getClones(address)\":{\"details\":\"WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic.\",\"params\":{\"deployer_\":\"The address of the deployer\"},\"returns\":{\"_0\":\"clones The list of deployed clones for the given deployer\"}},\"getIdentifier(uint8,string)\":{\"params\":{\"name_\":\"The name of the implementation\",\"type_\":\"The base type for the implementation\"},\"returns\":{\"identifier\":\"The unique identifier for the implementation\"}},\"register(uint8,string,address)\":{\"details\":\"This function will either emit a `Registered` event or revert if the identifier has already been registeredThe given address must implement the given type interface (See {ERC165-supportsInterface})\",\"params\":{\"implementation_\":\"The address of the implementation contract\",\"name_\":\"A name for the implementation (must be unique within the given type)\",\"type_\":\"The base type for the implementation\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Boost Registry\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyRegistered(uint8,bytes32)\":[{\"notice\":\"Thrown when a base implementation is already registered\"}],\"NotCloneable(address)\":[{\"notice\":\"Thrown when the implementation is not a valid {Cloneable} base\"}],\"NotRegistered(bytes32)\":[{\"notice\":\"Thrown when no match is found for the given identifier\"}]},\"events\":{\"Deployed(uint8,bytes32,address,address)\":{\"notice\":\"Emitted when a new instance of a base implementation is deployed\"},\"Registered(uint8,bytes32,address)\":{\"notice\":\"Emitted when a new base implementation is registered\"}},\"kind\":\"user\",\"methods\":{\"deployClone(uint8,address,string,bytes)\":{\"notice\":\"Deploy a new instance of a registered base implementation\"},\"getBaseImplementation(bytes32)\":{\"notice\":\"Get the address of a registered base implementation\"},\"getClone(bytes32)\":{\"notice\":\"Get the address of a deployed clone by its identifier\"},\"getCloneIdentifier(uint8,address,address,string)\":{\"notice\":\"Build the identifier for a clone of a base implementation\"},\"getClones(address)\":{\"notice\":\"Get the list of identifiers of deployed clones for a given deployer\"},\"getIdentifier(uint8,string)\":{\"notice\":\"Build the identifier for a base implementation\"},\"register(uint8,string,address)\":{\"notice\":\"Register a new base implementation of a given type\"}},\"notice\":\"A registry for base implementations and cloned instances\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BoostRegistry.sol\":\"BoostRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/BoostRegistry.sol\":{\"keccak256\":\"0xc9f28f67a2b9d1e8cfe76981011908b38c63538ee0a27405c58f2e337609d1ff\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53859966207b2ba00858ef705409506458281e37dfeaf7d887f7d9ebe37e08c6\",\"dweb:/ipfs/QmRoAmJnvgG3J8UQqRGEdNdBc1fbWfELqaDemEUx3roPCS\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/actions/Action.sol":{"Action":{"abi":[{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"ExecuteNotImplemented","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"VALIDATOR()":"393df8cb","execute(bytes)":"09c5eabe","initialize(bytes)":"439fab91","prepare(bytes)":"d7768c47","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecuteNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"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\":\"Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"(success, data) A tuple of the success status and the returned data\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"prepare(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"The prepared payload\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"title\":\"Boost Action\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"ExecuteNotImplemented()\":[{\"notice\":\"Thrown when the `execute` function is not implemented\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"execute(bytes)\":{\"notice\":\"Execute the action\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Action within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/Action.sol\":\"Action\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/actions/ContractAction.sol":{"ContractAction":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"ExecuteNotImplemented","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"bytes_","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_12802":{"entryPoint":null,"id":12802,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":31,"id":9198,"parameterSlots":0,"returnSlots":0},"@_initializableSlot_9142":{"entryPoint":135,"id":9142,"parameterSlots":0,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"60a0604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b608051610be66100c85f395f6103a70152610be65ff3fe608060405260043610610085575f3560e01c8063439fab9111610058578063439fab911461014a5780639a8a059214610172578063d4b839921461019c578063d7768c47146101c6578063ea3d508a1461020257610085565b806301ffc9a71461008957806309c5eabe146100c5578063393df8cb146100f65780633fa4f24514610120575b5f80fd5b348015610094575f80fd5b506100af60048036038101906100aa9190610703565b61022c565b6040516100bc9190610748565b60405180910390f35b6100df60048036038101906100da91906107c2565b6102a5565b6040516100ed92919061087d565b60405180910390f35b348015610101575f80fd5b5061010a6103a5565b6040516101179190610925565b60405180910390f35b34801561012b575f80fd5b506101346103c9565b6040516101419190610956565b60405180910390f35b348015610155575f80fd5b50610170600480360381019061016b91906107c2565b6103cf565b005b34801561017d575f80fd5b5061018661045c565b6040516101939190610956565b60405180910390f35b3480156101a7575f80fd5b506101b0610461565b6040516101bd919061098f565b60405180910390f35b3480156101d1575f80fd5b506101ec60048036038101906101e791906107c2565b610486565b6040516101f991906109a8565b60405180910390f35b34801561020d575f80fd5b506102166104aa565b60405161022391906109d7565b60405180910390f35b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029e575061029d826104bd565b5b9050919050565b5f6060465f54146102ee575f546040517f180098f40000000000000000000000000000000000000000000000000000000081526004016102e59190610956565b60405180910390fd5b5f8060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600254610345600160149054906101000a900460e01b8989610536565b6040516103529190610a2a565b5f6040518083038185875af1925050503d805f811461038c576040519150601f19603f3d011682016040523d82523d5f602084013e610391565b606091505b509150915081819350935050509250929050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6103d8610562565b9050805460038255801561040a5760018160011c14303b106104015763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610422838381019061041d9190610b85565b61058b565b8015610457576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606104a2600160149054906101000a900460e01b8484610536565b905092915050565b600160149054906101000a900460e01b81565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052f575061052e82610610565b5b9050919050565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610593610679565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f610682610562565b9050805460011661069a5763d7e6bcf85f526004601cfd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6106e2816106ae565b81146106ec575f80fd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106a6565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261078257610781610761565b5b8235905067ffffffffffffffff81111561079f5761079e610765565b5b6020830191508360018202830111156107bb576107ba610769565b5b9250929050565b5f80602083850312156107d8576107d76106a6565b5b5f83013567ffffffffffffffff8111156107f5576107f46106aa565b5b6108018582860161076d565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084f8261080d565b6108598185610817565b9350610869818560208601610827565b61087281610835565b840191505092915050565b5f6040820190506108905f830185610739565b81810360208301526108a28184610845565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6108ed6108e86108e3846108ab565b6108ca565b6108ab565b9050919050565b5f6108fe826108d3565b9050919050565b5f61090f826108f4565b9050919050565b61091f81610905565b82525050565b5f6020820190506109385f830184610916565b92915050565b5f819050919050565b6109508161093e565b82525050565b5f6020820190506109695f830184610947565b92915050565b5f610979826108ab565b9050919050565b6109898161096f565b82525050565b5f6020820190506109a25f830184610980565b92915050565b5f6020820190508181035f8301526109c08184610845565b905092915050565b6109d1816106ae565b82525050565b5f6020820190506109ea5f8301846109c8565b92915050565b5f81905092915050565b5f610a048261080d565b610a0e81856109f0565b9350610a1e818560208601610827565b80840191505092915050565b5f610a3582846109fa565b915081905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a7a82610835565b810181811067ffffffffffffffff82111715610a9957610a98610a44565b5b80604052505050565b5f610aab61069d565b9050610ab78282610a71565b919050565b610ac58161093e565b8114610acf575f80fd5b50565b5f81359050610ae081610abc565b92915050565b610aef8161096f565b8114610af9575f80fd5b50565b5f81359050610b0a81610ae6565b92915050565b5f60808284031215610b2557610b24610a40565b5b610b2f6080610aa2565b90505f610b3e84828501610ad2565b5f830152506020610b5184828501610afc565b6020830152506040610b65848285016106ef565b6040830152506060610b7984828501610ad2565b60608301525092915050565b5f60808284031215610b9a57610b996106a6565b5b5f610ba784828501610b10565b9150509291505056fea264697066735822122021c0c7afbc5047b3c02734c3b94bc48232b385dfccec943fdc344e862c9f8f1c64736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x1B PUSH1 0x1F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xB0 JUMP JUMPDEST PUSH0 PUSH1 0x2C PUSH1 0x87 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH1 0x45 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH1 0x82 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xBE6 PUSH2 0xC8 PUSH0 CODECOPY PUSH0 PUSH2 0x3A7 ADD MSTORE PUSH2 0xBE6 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x85 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x439FAB91 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x202 JUMPI PUSH2 0x85 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x120 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBC SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDA SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x2A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP3 SWAP2 SWAP1 PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x10A PUSH2 0x3A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x117 SWAP2 SWAP1 PUSH2 0x925 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x134 PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x155 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x45C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B0 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x4AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x9D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x29E JUMPI POP PUSH2 0x29D DUP3 PUSH2 0x4BD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 CHAINID PUSH0 SLOAD EQ PUSH2 0x2EE JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x180098F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E5 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 SLOAD PUSH2 0x345 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP10 DUP10 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xA2A JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x38C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x391 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x3D8 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x401 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x422 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x58B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x457 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4A2 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x52F JUMPI POP PUSH2 0x52E DUP3 PUSH2 0x610 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x593 PUSH2 0x679 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x682 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0x69A JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6E2 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP2 EQ PUSH2 0x6EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6FD DUP2 PUSH2 0x6D9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x718 JUMPI PUSH2 0x717 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x725 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x742 DUP2 PUSH2 0x72E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x75B PUSH0 DUP4 ADD DUP5 PUSH2 0x739 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x782 JUMPI PUSH2 0x781 PUSH2 0x761 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x79F JUMPI PUSH2 0x79E PUSH2 0x765 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x769 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH2 0x7F4 PUSH2 0x6AA JUMP JUMPDEST JUMPDEST PUSH2 0x801 DUP6 DUP3 DUP7 ADD PUSH2 0x76D JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x84F DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0x859 DUP2 DUP6 PUSH2 0x817 JUMP JUMPDEST SWAP4 POP PUSH2 0x869 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST PUSH2 0x872 DUP2 PUSH2 0x835 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x890 PUSH0 DUP4 ADD DUP6 PUSH2 0x739 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8A2 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8ED PUSH2 0x8E8 PUSH2 0x8E3 DUP5 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x8CA JUMP JUMPDEST PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8FE DUP3 PUSH2 0x8D3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x90F DUP3 PUSH2 0x8F4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x91F DUP2 PUSH2 0x905 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x938 PUSH0 DUP4 ADD DUP5 PUSH2 0x916 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x950 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x969 PUSH0 DUP4 ADD DUP5 PUSH2 0x947 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x979 DUP3 PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x989 DUP2 PUSH2 0x96F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9A2 PUSH0 DUP4 ADD DUP5 PUSH2 0x980 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9C0 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9D1 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9EA PUSH0 DUP4 ADD DUP5 PUSH2 0x9C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA04 DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0xA0E DUP2 DUP6 PUSH2 0x9F0 JUMP JUMPDEST SWAP4 POP PUSH2 0xA1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA35 DUP3 DUP5 PUSH2 0x9FA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xA7A DUP3 PUSH2 0x835 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xA99 JUMPI PUSH2 0xA98 PUSH2 0xA44 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAB PUSH2 0x69D JUMP JUMPDEST SWAP1 POP PUSH2 0xAB7 DUP3 DUP3 PUSH2 0xA71 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP2 EQ PUSH2 0xACF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE0 DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEF DUP2 PUSH2 0x96F JUMP JUMPDEST DUP2 EQ PUSH2 0xAF9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB0A DUP2 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0xA40 JUMP JUMPDEST JUMPDEST PUSH2 0xB2F PUSH1 0x80 PUSH2 0xAA2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xB3E DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0xB51 DUP5 DUP3 DUP6 ADD PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xB65 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0xB79 DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH2 0xB99 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBA7 DUP5 DUP3 DUP6 ADD PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xC0 0xC7 0xAF 0xBC POP SELFBALANCE 0xB3 0xC0 0x27 CALLVALUE 0xC3 0xB9 0x4B 0xC4 DUP3 ORIGIN 0xB3 DUP6 0xDF 0xCC 0xEC SWAP5 EXTCODEHASH 0xDC CALLVALUE 0x4E DUP7 0x2C SWAP16 DUP16 SHR PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"225:2470:32:-:0;;;1092:53;;;;;;;;;;1116:22;:20;;;:22;;:::i;:::-;225:2470;;6525:759:21;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;2424:113::-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;225:2470:32:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@VALIDATOR_12716":{"entryPoint":933,"id":12716,"parameterSlots":0,"returnSlots":0},"@_buildPayload_12913":{"entryPoint":1334,"id":12913,"parameterSlots":3,"returnSlots":1},"@_checkInitializing_9187":{"entryPoint":1657,"id":9187,"parameterSlots":0,"returnSlots":0},"@_initializableSlot_9142":{"entryPoint":1378,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initialize_12902":{"entryPoint":1419,"id":12902,"parameterSlots":1,"returnSlots":0},"@chainId_12786":{"entryPoint":1116,"id":12786,"parameterSlots":0,"returnSlots":0},"@execute_12859":{"entryPoint":677,"id":12859,"parameterSlots":2,"returnSlots":2},"@initialize_12821":{"entryPoint":975,"id":12821,"parameterSlots":2,"returnSlots":0},"@prepare_12873":{"entryPoint":1158,"id":12873,"parameterSlots":2,"returnSlots":1},"@selector_12792":{"entryPoint":1194,"id":12792,"parameterSlots":0,"returnSlots":0},"@supportsInterface_12757":{"entryPoint":556,"id":12757,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":1213,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":1552,"id":2844,"parameterSlots":1,"returnSlots":1},"@target_12789":{"entryPoint":1121,"id":12789,"parameterSlots":0,"returnSlots":0},"@value_12795":{"entryPoint":969,"id":12795,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2812,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":1775,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1901,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":2832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2770,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":1795,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":1986,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":2949,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2432,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1849,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":2504,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2117,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2554,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack":{"entryPoint":2326,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2375,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2602,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2447,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1864,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2173,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":2519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed":{"entryPoint":2341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2390,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":2722,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1693,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2061,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2071,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2544,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2415,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":1838,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":1710,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2219,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2366,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$18282_to_t_address":{"entryPoint":2309,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2292,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":2259,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2087,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":2673,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":2250,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":2628,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":1893,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1889,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":2624,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":1897,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1706,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1702,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2101,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2790,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":1753,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2748,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10505:53","nodeType":"YulBlock","src":"0:10505:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1974:478:53","nodeType":"YulBlock","src":"1974:478:53","statements":[{"body":{"nativeSrc":"2023:83:53","nodeType":"YulBlock","src":"2023:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:53","nodeType":"YulIdentifier","src":"2025:77:53"},"nativeSrc":"2025:79:53","nodeType":"YulFunctionCall","src":"2025:79:53"},"nativeSrc":"2025:79:53","nodeType":"YulExpressionStatement","src":"2025:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:53","nodeType":"YulIdentifier","src":"2002:6:53"},{"kind":"number","nativeSrc":"2010:4:53","nodeType":"YulLiteral","src":"2010:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"},{"name":"end","nativeSrc":"2017:3:53","nodeType":"YulIdentifier","src":"2017:3:53"}],"functionName":{"name":"slt","nativeSrc":"1994:3:53","nodeType":"YulIdentifier","src":"1994:3:53"},"nativeSrc":"1994:27:53","nodeType":"YulFunctionCall","src":"1994:27:53"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:53","nodeType":"YulIdentifier","src":"1987:6:53"},"nativeSrc":"1987:35:53","nodeType":"YulFunctionCall","src":"1987:35:53"},"nativeSrc":"1984:122:53","nodeType":"YulIf","src":"1984:122:53"},{"nativeSrc":"2115:30:53","nodeType":"YulAssignment","src":"2115:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:53","nodeType":"YulIdentifier","src":"2138:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:53","nodeType":"YulIdentifier","src":"2125:12:53"},"nativeSrc":"2125:20:53","nodeType":"YulFunctionCall","src":"2125:20:53"},"variableNames":[{"name":"length","nativeSrc":"2115:6:53","nodeType":"YulIdentifier","src":"2115:6:53"}]},{"body":{"nativeSrc":"2188:83:53","nodeType":"YulBlock","src":"2188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:53","nodeType":"YulIdentifier","src":"2190:77:53"},"nativeSrc":"2190:79:53","nodeType":"YulFunctionCall","src":"2190:79:53"},"nativeSrc":"2190:79:53","nodeType":"YulExpressionStatement","src":"2190:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:53","nodeType":"YulIdentifier","src":"2160:6:53"},{"kind":"number","nativeSrc":"2168:18:53","nodeType":"YulLiteral","src":"2168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:53","nodeType":"YulIdentifier","src":"2157:2:53"},"nativeSrc":"2157:30:53","nodeType":"YulFunctionCall","src":"2157:30:53"},"nativeSrc":"2154:117:53","nodeType":"YulIf","src":"2154:117:53"},{"nativeSrc":"2280:29:53","nodeType":"YulAssignment","src":"2280:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:53","nodeType":"YulIdentifier","src":"2296:6:53"},{"kind":"number","nativeSrc":"2304:4:53","nodeType":"YulLiteral","src":"2304:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:53","nodeType":"YulIdentifier","src":"2292:3:53"},"nativeSrc":"2292:17:53","nodeType":"YulFunctionCall","src":"2292:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:53","nodeType":"YulIdentifier","src":"2280:8:53"}]},{"body":{"nativeSrc":"2363:83:53","nodeType":"YulBlock","src":"2363:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:53","nodeType":"YulIdentifier","src":"2365:77:53"},"nativeSrc":"2365:79:53","nodeType":"YulFunctionCall","src":"2365:79:53"},"nativeSrc":"2365:79:53","nodeType":"YulExpressionStatement","src":"2365:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:53","nodeType":"YulIdentifier","src":"2328:8:53"},{"arguments":[{"name":"length","nativeSrc":"2342:6:53","nodeType":"YulIdentifier","src":"2342:6:53"},{"kind":"number","nativeSrc":"2350:4:53","nodeType":"YulLiteral","src":"2350:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:53","nodeType":"YulIdentifier","src":"2338:3:53"},"nativeSrc":"2338:17:53","nodeType":"YulFunctionCall","src":"2338:17:53"}],"functionName":{"name":"add","nativeSrc":"2324:3:53","nodeType":"YulIdentifier","src":"2324:3:53"},"nativeSrc":"2324:32:53","nodeType":"YulFunctionCall","src":"2324:32:53"},{"name":"end","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"}],"functionName":{"name":"gt","nativeSrc":"2321:2:53","nodeType":"YulIdentifier","src":"2321:2:53"},"nativeSrc":"2321:41:53","nodeType":"YulFunctionCall","src":"2321:41:53"},"nativeSrc":"2318:128:53","nodeType":"YulIf","src":"2318:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:53","nodeType":"YulTypedName","src":"1941:6:53","type":""},{"name":"end","nativeSrc":"1949:3:53","nodeType":"YulTypedName","src":"1949:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:53","nodeType":"YulTypedName","src":"1957:8:53","type":""},{"name":"length","nativeSrc":"1967:6:53","nodeType":"YulTypedName","src":"1967:6:53","type":""}],"src":"1900:552:53"},{"body":{"nativeSrc":"2543:442:53","nodeType":"YulBlock","src":"2543:442:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:296:53","nodeType":"YulBlock","src":"2682:296:53","statements":[{"nativeSrc":"2697:45:53","nodeType":"YulVariableDeclaration","src":"2697:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:53","nodeType":"YulIdentifier","src":"2728:9:53"},{"kind":"number","nativeSrc":"2739:1:53","nodeType":"YulLiteral","src":"2739:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:53","nodeType":"YulIdentifier","src":"2724:3:53"},"nativeSrc":"2724:17:53","nodeType":"YulFunctionCall","src":"2724:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:53","nodeType":"YulIdentifier","src":"2711:12:53"},"nativeSrc":"2711:31:53","nodeType":"YulFunctionCall","src":"2711:31:53"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"body":{"nativeSrc":"2789:83:53","nodeType":"YulBlock","src":"2789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:53","nodeType":"YulIdentifier","src":"2791:77:53"},"nativeSrc":"2791:79:53","nodeType":"YulFunctionCall","src":"2791:79:53"},"nativeSrc":"2791:79:53","nodeType":"YulExpressionStatement","src":"2791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},{"kind":"number","nativeSrc":"2769:18:53","nodeType":"YulLiteral","src":"2769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:53","nodeType":"YulIdentifier","src":"2758:2:53"},"nativeSrc":"2758:30:53","nodeType":"YulFunctionCall","src":"2758:30:53"},"nativeSrc":"2755:117:53","nodeType":"YulIf","src":"2755:117:53"},{"nativeSrc":"2886:82:53","nodeType":"YulAssignment","src":"2886:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"},{"name":"offset","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"}],"functionName":{"name":"add","nativeSrc":"2936:3:53","nodeType":"YulIdentifier","src":"2936:3:53"},"nativeSrc":"2936:22:53","nodeType":"YulFunctionCall","src":"2936:22:53"},{"name":"dataEnd","nativeSrc":"2960:7:53","nodeType":"YulIdentifier","src":"2960:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:53","nodeType":"YulIdentifier","src":"2904:31:53"},"nativeSrc":"2904:64:53","nodeType":"YulFunctionCall","src":"2904:64:53"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:53","nodeType":"YulIdentifier","src":"2886:6:53"},{"name":"value1","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:53","nodeType":"YulTypedName","src":"2505:9:53","type":""},{"name":"dataEnd","nativeSrc":"2516:7:53","nodeType":"YulTypedName","src":"2516:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:53","nodeType":"YulTypedName","src":"2528:6:53","type":""},{"name":"value1","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2458:527:53"},{"body":{"nativeSrc":"3049:40:53","nodeType":"YulBlock","src":"3049:40:53","statements":[{"nativeSrc":"3060:22:53","nodeType":"YulAssignment","src":"3060:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"}],"functionName":{"name":"mload","nativeSrc":"3070:5:53","nodeType":"YulIdentifier","src":"3070:5:53"},"nativeSrc":"3070:12:53","nodeType":"YulFunctionCall","src":"3070:12:53"},"variableNames":[{"name":"length","nativeSrc":"3060:6:53","nodeType":"YulIdentifier","src":"3060:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:53","nodeType":"YulTypedName","src":"3032:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:53","nodeType":"YulTypedName","src":"3042:6:53","type":""}],"src":"2991:98:53"},{"body":{"nativeSrc":"3190:73:53","nodeType":"YulBlock","src":"3190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"},{"name":"length","nativeSrc":"3212:6:53","nodeType":"YulIdentifier","src":"3212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:53","nodeType":"YulIdentifier","src":"3200:6:53"},"nativeSrc":"3200:19:53","nodeType":"YulFunctionCall","src":"3200:19:53"},"nativeSrc":"3200:19:53","nodeType":"YulExpressionStatement","src":"3200:19:53"},{"nativeSrc":"3228:29:53","nodeType":"YulAssignment","src":"3228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:53","nodeType":"YulIdentifier","src":"3247:3:53"},{"kind":"number","nativeSrc":"3252:4:53","nodeType":"YulLiteral","src":"3252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:53","nodeType":"YulIdentifier","src":"3243:3:53"},"nativeSrc":"3243:14:53","nodeType":"YulFunctionCall","src":"3243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:53","nodeType":"YulIdentifier","src":"3228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:53","nodeType":"YulTypedName","src":"3162:3:53","type":""},{"name":"length","nativeSrc":"3167:6:53","nodeType":"YulTypedName","src":"3167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:53","nodeType":"YulTypedName","src":"3178:11:53","type":""}],"src":"3095:168:53"},{"body":{"nativeSrc":"3331:77:53","nodeType":"YulBlock","src":"3331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:53","nodeType":"YulIdentifier","src":"3348:3:53"},{"name":"src","nativeSrc":"3353:3:53","nodeType":"YulIdentifier","src":"3353:3:53"},{"name":"length","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:53","nodeType":"YulIdentifier","src":"3342:5:53"},"nativeSrc":"3342:23:53","nodeType":"YulFunctionCall","src":"3342:23:53"},"nativeSrc":"3342:23:53","nodeType":"YulExpressionStatement","src":"3342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:53","nodeType":"YulIdentifier","src":"3385:3:53"},{"name":"length","nativeSrc":"3390:6:53","nodeType":"YulIdentifier","src":"3390:6:53"}],"functionName":{"name":"add","nativeSrc":"3381:3:53","nodeType":"YulIdentifier","src":"3381:3:53"},"nativeSrc":"3381:16:53","nodeType":"YulFunctionCall","src":"3381:16:53"},{"kind":"number","nativeSrc":"3399:1:53","nodeType":"YulLiteral","src":"3399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:53","nodeType":"YulIdentifier","src":"3374:6:53"},"nativeSrc":"3374:27:53","nodeType":"YulFunctionCall","src":"3374:27:53"},"nativeSrc":"3374:27:53","nodeType":"YulExpressionStatement","src":"3374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:53","nodeType":"YulTypedName","src":"3313:3:53","type":""},{"name":"dst","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""},{"name":"length","nativeSrc":"3323:6:53","nodeType":"YulTypedName","src":"3323:6:53","type":""}],"src":"3269:139:53"},{"body":{"nativeSrc":"3462:54:53","nodeType":"YulBlock","src":"3462:54:53","statements":[{"nativeSrc":"3472:38:53","nodeType":"YulAssignment","src":"3472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:53","nodeType":"YulIdentifier","src":"3490:5:53"},{"kind":"number","nativeSrc":"3497:2:53","nodeType":"YulLiteral","src":"3497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:53","nodeType":"YulIdentifier","src":"3486:3:53"},"nativeSrc":"3486:14:53","nodeType":"YulFunctionCall","src":"3486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:53","nodeType":"YulLiteral","src":"3506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:53","nodeType":"YulIdentifier","src":"3502:3:53"},"nativeSrc":"3502:7:53","nodeType":"YulFunctionCall","src":"3502:7:53"}],"functionName":{"name":"and","nativeSrc":"3482:3:53","nodeType":"YulIdentifier","src":"3482:3:53"},"nativeSrc":"3482:28:53","nodeType":"YulFunctionCall","src":"3482:28:53"},"variableNames":[{"name":"result","nativeSrc":"3472:6:53","nodeType":"YulIdentifier","src":"3472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:53","nodeType":"YulTypedName","src":"3445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:53","nodeType":"YulTypedName","src":"3455:6:53","type":""}],"src":"3414:102:53"},{"body":{"nativeSrc":"3612:283:53","nodeType":"YulBlock","src":"3612:283:53","statements":[{"nativeSrc":"3622:52:53","nodeType":"YulVariableDeclaration","src":"3622:52:53","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:53","nodeType":"YulIdentifier","src":"3668:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:53","nodeType":"YulIdentifier","src":"3636:31:53"},"nativeSrc":"3636:38:53","nodeType":"YulFunctionCall","src":"3636:38:53"},"variables":[{"name":"length","nativeSrc":"3626:6:53","nodeType":"YulTypedName","src":"3626:6:53","type":""}]},{"nativeSrc":"3683:77:53","nodeType":"YulAssignment","src":"3683:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},{"name":"length","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:53","nodeType":"YulIdentifier","src":"3690:57:53"},"nativeSrc":"3690:70:53","nodeType":"YulFunctionCall","src":"3690:70:53"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:53","nodeType":"YulIdentifier","src":"3683:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:53","nodeType":"YulIdentifier","src":"3808:5:53"},{"kind":"number","nativeSrc":"3815:4:53","nodeType":"YulLiteral","src":"3815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:16:53","nodeType":"YulFunctionCall","src":"3804:16:53"},{"name":"pos","nativeSrc":"3822:3:53","nodeType":"YulIdentifier","src":"3822:3:53"},{"name":"length","nativeSrc":"3827:6:53","nodeType":"YulIdentifier","src":"3827:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:53","nodeType":"YulIdentifier","src":"3769:34:53"},"nativeSrc":"3769:65:53","nodeType":"YulFunctionCall","src":"3769:65:53"},"nativeSrc":"3769:65:53","nodeType":"YulExpressionStatement","src":"3769:65:53"},{"nativeSrc":"3843:46:53","nodeType":"YulAssignment","src":"3843:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:53","nodeType":"YulIdentifier","src":"3854:3:53"},{"arguments":[{"name":"length","nativeSrc":"3881:6:53","nodeType":"YulIdentifier","src":"3881:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:53","nodeType":"YulIdentifier","src":"3859:21:53"},"nativeSrc":"3859:29:53","nodeType":"YulFunctionCall","src":"3859:29:53"}],"functionName":{"name":"add","nativeSrc":"3850:3:53","nodeType":"YulIdentifier","src":"3850:3:53"},"nativeSrc":"3850:39:53","nodeType":"YulFunctionCall","src":"3850:39:53"},"variableNames":[{"name":"end","nativeSrc":"3843:3:53","nodeType":"YulIdentifier","src":"3843:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:53","nodeType":"YulTypedName","src":"3593:5:53","type":""},{"name":"pos","nativeSrc":"3600:3:53","nodeType":"YulTypedName","src":"3600:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:53","nodeType":"YulTypedName","src":"3608:3:53","type":""}],"src":"3522:373:53"},{"body":{"nativeSrc":"4039:269:53","nodeType":"YulBlock","src":"4039:269:53","statements":[{"nativeSrc":"4049:26:53","nodeType":"YulAssignment","src":"4049:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4061:9:53","nodeType":"YulIdentifier","src":"4061:9:53"},{"kind":"number","nativeSrc":"4072:2:53","nodeType":"YulLiteral","src":"4072:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4057:3:53","nodeType":"YulIdentifier","src":"4057:3:53"},"nativeSrc":"4057:18:53","nodeType":"YulFunctionCall","src":"4057:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4049:4:53","nodeType":"YulIdentifier","src":"4049:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4123:6:53","nodeType":"YulIdentifier","src":"4123:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4136:9:53","nodeType":"YulIdentifier","src":"4136:9:53"},{"kind":"number","nativeSrc":"4147:1:53","nodeType":"YulLiteral","src":"4147:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4132:3:53","nodeType":"YulIdentifier","src":"4132:3:53"},"nativeSrc":"4132:17:53","nodeType":"YulFunctionCall","src":"4132:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4085:37:53","nodeType":"YulIdentifier","src":"4085:37:53"},"nativeSrc":"4085:65:53","nodeType":"YulFunctionCall","src":"4085:65:53"},"nativeSrc":"4085:65:53","nodeType":"YulExpressionStatement","src":"4085:65:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4171:9:53","nodeType":"YulIdentifier","src":"4171:9:53"},{"kind":"number","nativeSrc":"4182:2:53","nodeType":"YulLiteral","src":"4182:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4167:3:53","nodeType":"YulIdentifier","src":"4167:3:53"},"nativeSrc":"4167:18:53","nodeType":"YulFunctionCall","src":"4167:18:53"},{"arguments":[{"name":"tail","nativeSrc":"4191:4:53","nodeType":"YulIdentifier","src":"4191:4:53"},{"name":"headStart","nativeSrc":"4197:9:53","nodeType":"YulIdentifier","src":"4197:9:53"}],"functionName":{"name":"sub","nativeSrc":"4187:3:53","nodeType":"YulIdentifier","src":"4187:3:53"},"nativeSrc":"4187:20:53","nodeType":"YulFunctionCall","src":"4187:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4160:6:53","nodeType":"YulIdentifier","src":"4160:6:53"},"nativeSrc":"4160:48:53","nodeType":"YulFunctionCall","src":"4160:48:53"},"nativeSrc":"4160:48:53","nodeType":"YulExpressionStatement","src":"4160:48:53"},{"nativeSrc":"4217:84:53","nodeType":"YulAssignment","src":"4217:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"4287:6:53","nodeType":"YulIdentifier","src":"4287:6:53"},{"name":"tail","nativeSrc":"4296:4:53","nodeType":"YulIdentifier","src":"4296:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4225:61:53","nodeType":"YulIdentifier","src":"4225:61:53"},"nativeSrc":"4225:76:53","nodeType":"YulFunctionCall","src":"4225:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:53","nodeType":"YulIdentifier","src":"4217:4:53"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:407:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4003:9:53","nodeType":"YulTypedName","src":"4003:9:53","type":""},{"name":"value1","nativeSrc":"4015:6:53","nodeType":"YulTypedName","src":"4015:6:53","type":""},{"name":"value0","nativeSrc":"4023:6:53","nodeType":"YulTypedName","src":"4023:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4034:4:53","nodeType":"YulTypedName","src":"4034:4:53","type":""}],"src":"3901:407:53"},{"body":{"nativeSrc":"4359:81:53","nodeType":"YulBlock","src":"4359:81:53","statements":[{"nativeSrc":"4369:65:53","nodeType":"YulAssignment","src":"4369:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:53","nodeType":"YulIdentifier","src":"4384:5:53"},{"kind":"number","nativeSrc":"4391:42:53","nodeType":"YulLiteral","src":"4391:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4380:3:53","nodeType":"YulIdentifier","src":"4380:3:53"},"nativeSrc":"4380:54:53","nodeType":"YulFunctionCall","src":"4380:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:53","nodeType":"YulIdentifier","src":"4369:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4314:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:53","nodeType":"YulTypedName","src":"4341:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:53","nodeType":"YulTypedName","src":"4351:7:53","type":""}],"src":"4314:126:53"},{"body":{"nativeSrc":"4478:28:53","nodeType":"YulBlock","src":"4478:28:53","statements":[{"nativeSrc":"4488:12:53","nodeType":"YulAssignment","src":"4488:12:53","value":{"name":"value","nativeSrc":"4495:5:53","nodeType":"YulIdentifier","src":"4495:5:53"},"variableNames":[{"name":"ret","nativeSrc":"4488:3:53","nodeType":"YulIdentifier","src":"4488:3:53"}]}]},"name":"identity","nativeSrc":"4446:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4464:5:53","nodeType":"YulTypedName","src":"4464:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4474:3:53","nodeType":"YulTypedName","src":"4474:3:53","type":""}],"src":"4446:60:53"},{"body":{"nativeSrc":"4572:82:53","nodeType":"YulBlock","src":"4572:82:53","statements":[{"nativeSrc":"4582:66:53","nodeType":"YulAssignment","src":"4582:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4640:5:53","nodeType":"YulIdentifier","src":"4640:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4622:17:53","nodeType":"YulIdentifier","src":"4622:17:53"},"nativeSrc":"4622:24:53","nodeType":"YulFunctionCall","src":"4622:24:53"}],"functionName":{"name":"identity","nativeSrc":"4613:8:53","nodeType":"YulIdentifier","src":"4613:8:53"},"nativeSrc":"4613:34:53","nodeType":"YulFunctionCall","src":"4613:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4595:17:53","nodeType":"YulIdentifier","src":"4595:17:53"},"nativeSrc":"4595:53:53","nodeType":"YulFunctionCall","src":"4595:53:53"},"variableNames":[{"name":"converted","nativeSrc":"4582:9:53","nodeType":"YulIdentifier","src":"4582:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4512:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4552:5:53","nodeType":"YulTypedName","src":"4552:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4562:9:53","nodeType":"YulTypedName","src":"4562:9:53","type":""}],"src":"4512:142:53"},{"body":{"nativeSrc":"4720:66:53","nodeType":"YulBlock","src":"4720:66:53","statements":[{"nativeSrc":"4730:50:53","nodeType":"YulAssignment","src":"4730:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4774:5:53","nodeType":"YulIdentifier","src":"4774:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4743:30:53","nodeType":"YulIdentifier","src":"4743:30:53"},"nativeSrc":"4743:37:53","nodeType":"YulFunctionCall","src":"4743:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4730:9:53","nodeType":"YulIdentifier","src":"4730:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"4660:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4700:5:53","nodeType":"YulTypedName","src":"4700:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4710:9:53","nodeType":"YulTypedName","src":"4710:9:53","type":""}],"src":"4660:126:53"},{"body":{"nativeSrc":"4871:66:53","nodeType":"YulBlock","src":"4871:66:53","statements":[{"nativeSrc":"4881:50:53","nodeType":"YulAssignment","src":"4881:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4925:5:53","nodeType":"YulIdentifier","src":"4925:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4894:30:53","nodeType":"YulIdentifier","src":"4894:30:53"},"nativeSrc":"4894:37:53","nodeType":"YulFunctionCall","src":"4894:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4881:9:53","nodeType":"YulIdentifier","src":"4881:9:53"}]}]},"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"4792:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4851:5:53","nodeType":"YulTypedName","src":"4851:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4861:9:53","nodeType":"YulTypedName","src":"4861:9:53","type":""}],"src":"4792:145:53"},{"body":{"nativeSrc":"5027:85:53","nodeType":"YulBlock","src":"5027:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5044:3:53","nodeType":"YulIdentifier","src":"5044:3:53"},{"arguments":[{"name":"value","nativeSrc":"5099:5:53","nodeType":"YulIdentifier","src":"5099:5:53"}],"functionName":{"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"5049:49:53","nodeType":"YulIdentifier","src":"5049:49:53"},"nativeSrc":"5049:56:53","nodeType":"YulFunctionCall","src":"5049:56:53"}],"functionName":{"name":"mstore","nativeSrc":"5037:6:53","nodeType":"YulIdentifier","src":"5037:6:53"},"nativeSrc":"5037:69:53","nodeType":"YulFunctionCall","src":"5037:69:53"},"nativeSrc":"5037:69:53","nodeType":"YulExpressionStatement","src":"5037:69:53"}]},"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"4943:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5015:5:53","nodeType":"YulTypedName","src":"5015:5:53","type":""},{"name":"pos","nativeSrc":"5022:3:53","nodeType":"YulTypedName","src":"5022:3:53","type":""}],"src":"4943:169:53"},{"body":{"nativeSrc":"5235:143:53","nodeType":"YulBlock","src":"5235:143:53","statements":[{"nativeSrc":"5245:26:53","nodeType":"YulAssignment","src":"5245:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5257:9:53","nodeType":"YulIdentifier","src":"5257:9:53"},{"kind":"number","nativeSrc":"5268:2:53","nodeType":"YulLiteral","src":"5268:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5253:3:53","nodeType":"YulIdentifier","src":"5253:3:53"},"nativeSrc":"5253:18:53","nodeType":"YulFunctionCall","src":"5253:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5245:4:53","nodeType":"YulIdentifier","src":"5245:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5344:6:53","nodeType":"YulIdentifier","src":"5344:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5357:9:53","nodeType":"YulIdentifier","src":"5357:9:53"},{"kind":"number","nativeSrc":"5368:1:53","nodeType":"YulLiteral","src":"5368:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5353:3:53","nodeType":"YulIdentifier","src":"5353:3:53"},"nativeSrc":"5353:17:53","nodeType":"YulFunctionCall","src":"5353:17:53"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"5281:62:53","nodeType":"YulIdentifier","src":"5281:62:53"},"nativeSrc":"5281:90:53","nodeType":"YulFunctionCall","src":"5281:90:53"},"nativeSrc":"5281:90:53","nodeType":"YulExpressionStatement","src":"5281:90:53"}]},"name":"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed","nativeSrc":"5118:260:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5207:9:53","nodeType":"YulTypedName","src":"5207:9:53","type":""},{"name":"value0","nativeSrc":"5219:6:53","nodeType":"YulTypedName","src":"5219:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5230:4:53","nodeType":"YulTypedName","src":"5230:4:53","type":""}],"src":"5118:260:53"},{"body":{"nativeSrc":"5429:32:53","nodeType":"YulBlock","src":"5429:32:53","statements":[{"nativeSrc":"5439:16:53","nodeType":"YulAssignment","src":"5439:16:53","value":{"name":"value","nativeSrc":"5450:5:53","nodeType":"YulIdentifier","src":"5450:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5439:7:53","nodeType":"YulIdentifier","src":"5439:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5384:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5411:5:53","nodeType":"YulTypedName","src":"5411:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5421:7:53","nodeType":"YulTypedName","src":"5421:7:53","type":""}],"src":"5384:77:53"},{"body":{"nativeSrc":"5532:53:53","nodeType":"YulBlock","src":"5532:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5549:3:53","nodeType":"YulIdentifier","src":"5549:3:53"},{"arguments":[{"name":"value","nativeSrc":"5572:5:53","nodeType":"YulIdentifier","src":"5572:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5554:17:53","nodeType":"YulIdentifier","src":"5554:17:53"},"nativeSrc":"5554:24:53","nodeType":"YulFunctionCall","src":"5554:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5542:6:53","nodeType":"YulIdentifier","src":"5542:6:53"},"nativeSrc":"5542:37:53","nodeType":"YulFunctionCall","src":"5542:37:53"},"nativeSrc":"5542:37:53","nodeType":"YulExpressionStatement","src":"5542:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5467:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5520:5:53","nodeType":"YulTypedName","src":"5520:5:53","type":""},{"name":"pos","nativeSrc":"5527:3:53","nodeType":"YulTypedName","src":"5527:3:53","type":""}],"src":"5467:118:53"},{"body":{"nativeSrc":"5689:124:53","nodeType":"YulBlock","src":"5689:124:53","statements":[{"nativeSrc":"5699:26:53","nodeType":"YulAssignment","src":"5699:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5711:9:53","nodeType":"YulIdentifier","src":"5711:9:53"},{"kind":"number","nativeSrc":"5722:2:53","nodeType":"YulLiteral","src":"5722:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5707:3:53","nodeType":"YulIdentifier","src":"5707:3:53"},"nativeSrc":"5707:18:53","nodeType":"YulFunctionCall","src":"5707:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5699:4:53","nodeType":"YulIdentifier","src":"5699:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5779:6:53","nodeType":"YulIdentifier","src":"5779:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5792:9:53","nodeType":"YulIdentifier","src":"5792:9:53"},{"kind":"number","nativeSrc":"5803:1:53","nodeType":"YulLiteral","src":"5803:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5788:3:53","nodeType":"YulIdentifier","src":"5788:3:53"},"nativeSrc":"5788:17:53","nodeType":"YulFunctionCall","src":"5788:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5735:43:53","nodeType":"YulIdentifier","src":"5735:43:53"},"nativeSrc":"5735:71:53","nodeType":"YulFunctionCall","src":"5735:71:53"},"nativeSrc":"5735:71:53","nodeType":"YulExpressionStatement","src":"5735:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5591:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5661:9:53","nodeType":"YulTypedName","src":"5661:9:53","type":""},{"name":"value0","nativeSrc":"5673:6:53","nodeType":"YulTypedName","src":"5673:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5684:4:53","nodeType":"YulTypedName","src":"5684:4:53","type":""}],"src":"5591:222:53"},{"body":{"nativeSrc":"5864:51:53","nodeType":"YulBlock","src":"5864:51:53","statements":[{"nativeSrc":"5874:35:53","nodeType":"YulAssignment","src":"5874:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5903:5:53","nodeType":"YulIdentifier","src":"5903:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5885:17:53","nodeType":"YulIdentifier","src":"5885:17:53"},"nativeSrc":"5885:24:53","nodeType":"YulFunctionCall","src":"5885:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5874:7:53","nodeType":"YulIdentifier","src":"5874:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5819:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5846:5:53","nodeType":"YulTypedName","src":"5846:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5856:7:53","nodeType":"YulTypedName","src":"5856:7:53","type":""}],"src":"5819:96:53"},{"body":{"nativeSrc":"5986:53:53","nodeType":"YulBlock","src":"5986:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6003:3:53","nodeType":"YulIdentifier","src":"6003:3:53"},{"arguments":[{"name":"value","nativeSrc":"6026:5:53","nodeType":"YulIdentifier","src":"6026:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6008:17:53","nodeType":"YulIdentifier","src":"6008:17:53"},"nativeSrc":"6008:24:53","nodeType":"YulFunctionCall","src":"6008:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5996:6:53","nodeType":"YulIdentifier","src":"5996:6:53"},"nativeSrc":"5996:37:53","nodeType":"YulFunctionCall","src":"5996:37:53"},"nativeSrc":"5996:37:53","nodeType":"YulExpressionStatement","src":"5996:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5921:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5974:5:53","nodeType":"YulTypedName","src":"5974:5:53","type":""},{"name":"pos","nativeSrc":"5981:3:53","nodeType":"YulTypedName","src":"5981:3:53","type":""}],"src":"5921:118:53"},{"body":{"nativeSrc":"6143:124:53","nodeType":"YulBlock","src":"6143:124:53","statements":[{"nativeSrc":"6153:26:53","nodeType":"YulAssignment","src":"6153:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6165:9:53","nodeType":"YulIdentifier","src":"6165:9:53"},{"kind":"number","nativeSrc":"6176:2:53","nodeType":"YulLiteral","src":"6176:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6161:3:53","nodeType":"YulIdentifier","src":"6161:3:53"},"nativeSrc":"6161:18:53","nodeType":"YulFunctionCall","src":"6161:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6153:4:53","nodeType":"YulIdentifier","src":"6153:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6233:6:53","nodeType":"YulIdentifier","src":"6233:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6246:9:53","nodeType":"YulIdentifier","src":"6246:9:53"},{"kind":"number","nativeSrc":"6257:1:53","nodeType":"YulLiteral","src":"6257:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6242:3:53","nodeType":"YulIdentifier","src":"6242:3:53"},"nativeSrc":"6242:17:53","nodeType":"YulFunctionCall","src":"6242:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6189:43:53","nodeType":"YulIdentifier","src":"6189:43:53"},"nativeSrc":"6189:71:53","nodeType":"YulFunctionCall","src":"6189:71:53"},"nativeSrc":"6189:71:53","nodeType":"YulExpressionStatement","src":"6189:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6045:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6115:9:53","nodeType":"YulTypedName","src":"6115:9:53","type":""},{"name":"value0","nativeSrc":"6127:6:53","nodeType":"YulTypedName","src":"6127:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6138:4:53","nodeType":"YulTypedName","src":"6138:4:53","type":""}],"src":"6045:222:53"},{"body":{"nativeSrc":"6389:193:53","nodeType":"YulBlock","src":"6389:193:53","statements":[{"nativeSrc":"6399:26:53","nodeType":"YulAssignment","src":"6399:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6411:9:53","nodeType":"YulIdentifier","src":"6411:9:53"},{"kind":"number","nativeSrc":"6422:2:53","nodeType":"YulLiteral","src":"6422:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6407:3:53","nodeType":"YulIdentifier","src":"6407:3:53"},"nativeSrc":"6407:18:53","nodeType":"YulFunctionCall","src":"6407:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6399:4:53","nodeType":"YulIdentifier","src":"6399:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6446:9:53","nodeType":"YulIdentifier","src":"6446:9:53"},{"kind":"number","nativeSrc":"6457:1:53","nodeType":"YulLiteral","src":"6457:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6442:3:53","nodeType":"YulIdentifier","src":"6442:3:53"},"nativeSrc":"6442:17:53","nodeType":"YulFunctionCall","src":"6442:17:53"},{"arguments":[{"name":"tail","nativeSrc":"6465:4:53","nodeType":"YulIdentifier","src":"6465:4:53"},{"name":"headStart","nativeSrc":"6471:9:53","nodeType":"YulIdentifier","src":"6471:9:53"}],"functionName":{"name":"sub","nativeSrc":"6461:3:53","nodeType":"YulIdentifier","src":"6461:3:53"},"nativeSrc":"6461:20:53","nodeType":"YulFunctionCall","src":"6461:20:53"}],"functionName":{"name":"mstore","nativeSrc":"6435:6:53","nodeType":"YulIdentifier","src":"6435:6:53"},"nativeSrc":"6435:47:53","nodeType":"YulFunctionCall","src":"6435:47:53"},"nativeSrc":"6435:47:53","nodeType":"YulExpressionStatement","src":"6435:47:53"},{"nativeSrc":"6491:84:53","nodeType":"YulAssignment","src":"6491:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"6561:6:53","nodeType":"YulIdentifier","src":"6561:6:53"},{"name":"tail","nativeSrc":"6570:4:53","nodeType":"YulIdentifier","src":"6570:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"6499:61:53","nodeType":"YulIdentifier","src":"6499:61:53"},"nativeSrc":"6499:76:53","nodeType":"YulFunctionCall","src":"6499:76:53"},"variableNames":[{"name":"tail","nativeSrc":"6491:4:53","nodeType":"YulIdentifier","src":"6491:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6273:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6361:9:53","nodeType":"YulTypedName","src":"6361:9:53","type":""},{"name":"value0","nativeSrc":"6373:6:53","nodeType":"YulTypedName","src":"6373:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6384:4:53","nodeType":"YulTypedName","src":"6384:4:53","type":""}],"src":"6273:309:53"},{"body":{"nativeSrc":"6651:52:53","nodeType":"YulBlock","src":"6651:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6668:3:53","nodeType":"YulIdentifier","src":"6668:3:53"},{"arguments":[{"name":"value","nativeSrc":"6690:5:53","nodeType":"YulIdentifier","src":"6690:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"6673:16:53","nodeType":"YulIdentifier","src":"6673:16:53"},"nativeSrc":"6673:23:53","nodeType":"YulFunctionCall","src":"6673:23:53"}],"functionName":{"name":"mstore","nativeSrc":"6661:6:53","nodeType":"YulIdentifier","src":"6661:6:53"},"nativeSrc":"6661:36:53","nodeType":"YulFunctionCall","src":"6661:36:53"},"nativeSrc":"6661:36:53","nodeType":"YulExpressionStatement","src":"6661:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"6588:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6639:5:53","nodeType":"YulTypedName","src":"6639:5:53","type":""},{"name":"pos","nativeSrc":"6646:3:53","nodeType":"YulTypedName","src":"6646:3:53","type":""}],"src":"6588:115:53"},{"body":{"nativeSrc":"6805:122:53","nodeType":"YulBlock","src":"6805:122:53","statements":[{"nativeSrc":"6815:26:53","nodeType":"YulAssignment","src":"6815:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6827:9:53","nodeType":"YulIdentifier","src":"6827:9:53"},{"kind":"number","nativeSrc":"6838:2:53","nodeType":"YulLiteral","src":"6838:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6823:3:53","nodeType":"YulIdentifier","src":"6823:3:53"},"nativeSrc":"6823:18:53","nodeType":"YulFunctionCall","src":"6823:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6815:4:53","nodeType":"YulIdentifier","src":"6815:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6893:6:53","nodeType":"YulIdentifier","src":"6893:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6906:9:53","nodeType":"YulIdentifier","src":"6906:9:53"},{"kind":"number","nativeSrc":"6917:1:53","nodeType":"YulLiteral","src":"6917:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6902:3:53","nodeType":"YulIdentifier","src":"6902:3:53"},"nativeSrc":"6902:17:53","nodeType":"YulFunctionCall","src":"6902:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"6851:41:53","nodeType":"YulIdentifier","src":"6851:41:53"},"nativeSrc":"6851:69:53","nodeType":"YulFunctionCall","src":"6851:69:53"},"nativeSrc":"6851:69:53","nodeType":"YulExpressionStatement","src":"6851:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"6709:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6777:9:53","nodeType":"YulTypedName","src":"6777:9:53","type":""},{"name":"value0","nativeSrc":"6789:6:53","nodeType":"YulTypedName","src":"6789:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6800:4:53","nodeType":"YulTypedName","src":"6800:4:53","type":""}],"src":"6709:218:53"},{"body":{"nativeSrc":"7046:34:53","nodeType":"YulBlock","src":"7046:34:53","statements":[{"nativeSrc":"7056:18:53","nodeType":"YulAssignment","src":"7056:18:53","value":{"name":"pos","nativeSrc":"7071:3:53","nodeType":"YulIdentifier","src":"7071:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"7056:11:53","nodeType":"YulIdentifier","src":"7056:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6933:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7018:3:53","nodeType":"YulTypedName","src":"7018:3:53","type":""},{"name":"length","nativeSrc":"7023:6:53","nodeType":"YulTypedName","src":"7023:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7034:11:53","nodeType":"YulTypedName","src":"7034:11:53","type":""}],"src":"6933:147:53"},{"body":{"nativeSrc":"7194:278:53","nodeType":"YulBlock","src":"7194:278:53","statements":[{"nativeSrc":"7204:52:53","nodeType":"YulVariableDeclaration","src":"7204:52:53","value":{"arguments":[{"name":"value","nativeSrc":"7250:5:53","nodeType":"YulIdentifier","src":"7250:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7218:31:53","nodeType":"YulIdentifier","src":"7218:31:53"},"nativeSrc":"7218:38:53","nodeType":"YulFunctionCall","src":"7218:38:53"},"variables":[{"name":"length","nativeSrc":"7208:6:53","nodeType":"YulTypedName","src":"7208:6:53","type":""}]},{"nativeSrc":"7265:95:53","nodeType":"YulAssignment","src":"7265:95:53","value":{"arguments":[{"name":"pos","nativeSrc":"7348:3:53","nodeType":"YulIdentifier","src":"7348:3:53"},{"name":"length","nativeSrc":"7353:6:53","nodeType":"YulIdentifier","src":"7353:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7272:75:53","nodeType":"YulIdentifier","src":"7272:75:53"},"nativeSrc":"7272:88:53","nodeType":"YulFunctionCall","src":"7272:88:53"},"variableNames":[{"name":"pos","nativeSrc":"7265:3:53","nodeType":"YulIdentifier","src":"7265:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7408:5:53","nodeType":"YulIdentifier","src":"7408:5:53"},{"kind":"number","nativeSrc":"7415:4:53","nodeType":"YulLiteral","src":"7415:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7404:3:53","nodeType":"YulIdentifier","src":"7404:3:53"},"nativeSrc":"7404:16:53","nodeType":"YulFunctionCall","src":"7404:16:53"},{"name":"pos","nativeSrc":"7422:3:53","nodeType":"YulIdentifier","src":"7422:3:53"},{"name":"length","nativeSrc":"7427:6:53","nodeType":"YulIdentifier","src":"7427:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7369:34:53","nodeType":"YulIdentifier","src":"7369:34:53"},"nativeSrc":"7369:65:53","nodeType":"YulFunctionCall","src":"7369:65:53"},"nativeSrc":"7369:65:53","nodeType":"YulExpressionStatement","src":"7369:65:53"},{"nativeSrc":"7443:23:53","nodeType":"YulAssignment","src":"7443:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"7454:3:53","nodeType":"YulIdentifier","src":"7454:3:53"},{"name":"length","nativeSrc":"7459:6:53","nodeType":"YulIdentifier","src":"7459:6:53"}],"functionName":{"name":"add","nativeSrc":"7450:3:53","nodeType":"YulIdentifier","src":"7450:3:53"},"nativeSrc":"7450:16:53","nodeType":"YulFunctionCall","src":"7450:16:53"},"variableNames":[{"name":"end","nativeSrc":"7443:3:53","nodeType":"YulIdentifier","src":"7443:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7086:386:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7175:5:53","nodeType":"YulTypedName","src":"7175:5:53","type":""},{"name":"pos","nativeSrc":"7182:3:53","nodeType":"YulTypedName","src":"7182:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7190:3:53","nodeType":"YulTypedName","src":"7190:3:53","type":""}],"src":"7086:386:53"},{"body":{"nativeSrc":"7612:137:53","nodeType":"YulBlock","src":"7612:137:53","statements":[{"nativeSrc":"7623:100:53","nodeType":"YulAssignment","src":"7623:100:53","value":{"arguments":[{"name":"value0","nativeSrc":"7710:6:53","nodeType":"YulIdentifier","src":"7710:6:53"},{"name":"pos","nativeSrc":"7719:3:53","nodeType":"YulIdentifier","src":"7719:3:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7630:79:53","nodeType":"YulIdentifier","src":"7630:79:53"},"nativeSrc":"7630:93:53","nodeType":"YulFunctionCall","src":"7630:93:53"},"variableNames":[{"name":"pos","nativeSrc":"7623:3:53","nodeType":"YulIdentifier","src":"7623:3:53"}]},{"nativeSrc":"7733:10:53","nodeType":"YulAssignment","src":"7733:10:53","value":{"name":"pos","nativeSrc":"7740:3:53","nodeType":"YulIdentifier","src":"7740:3:53"},"variableNames":[{"name":"end","nativeSrc":"7733:3:53","nodeType":"YulIdentifier","src":"7733:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7478:271:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7591:3:53","nodeType":"YulTypedName","src":"7591:3:53","type":""},{"name":"value0","nativeSrc":"7597:6:53","nodeType":"YulTypedName","src":"7597:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7608:3:53","nodeType":"YulTypedName","src":"7608:3:53","type":""}],"src":"7478:271:53"},{"body":{"nativeSrc":"7844:28:53","nodeType":"YulBlock","src":"7844:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7861:1:53","nodeType":"YulLiteral","src":"7861:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7864:1:53","nodeType":"YulLiteral","src":"7864:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7854:6:53","nodeType":"YulIdentifier","src":"7854:6:53"},"nativeSrc":"7854:12:53","nodeType":"YulFunctionCall","src":"7854:12:53"},"nativeSrc":"7854:12:53","nodeType":"YulExpressionStatement","src":"7854:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7755:117:53","nodeType":"YulFunctionDefinition","src":"7755:117:53"},{"body":{"nativeSrc":"7906:152:53","nodeType":"YulBlock","src":"7906:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7923:1:53","nodeType":"YulLiteral","src":"7923:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7926:77:53","nodeType":"YulLiteral","src":"7926:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7916:6:53","nodeType":"YulIdentifier","src":"7916:6:53"},"nativeSrc":"7916:88:53","nodeType":"YulFunctionCall","src":"7916:88:53"},"nativeSrc":"7916:88:53","nodeType":"YulExpressionStatement","src":"7916:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8020:1:53","nodeType":"YulLiteral","src":"8020:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8023:4:53","nodeType":"YulLiteral","src":"8023:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8013:6:53","nodeType":"YulIdentifier","src":"8013:6:53"},"nativeSrc":"8013:15:53","nodeType":"YulFunctionCall","src":"8013:15:53"},"nativeSrc":"8013:15:53","nodeType":"YulExpressionStatement","src":"8013:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8044:1:53","nodeType":"YulLiteral","src":"8044:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8047:4:53","nodeType":"YulLiteral","src":"8047:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8037:6:53","nodeType":"YulIdentifier","src":"8037:6:53"},"nativeSrc":"8037:15:53","nodeType":"YulFunctionCall","src":"8037:15:53"},"nativeSrc":"8037:15:53","nodeType":"YulExpressionStatement","src":"8037:15:53"}]},"name":"panic_error_0x41","nativeSrc":"7878:180:53","nodeType":"YulFunctionDefinition","src":"7878:180:53"},{"body":{"nativeSrc":"8107:238:53","nodeType":"YulBlock","src":"8107:238:53","statements":[{"nativeSrc":"8117:58:53","nodeType":"YulVariableDeclaration","src":"8117:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8139:6:53","nodeType":"YulIdentifier","src":"8139:6:53"},{"arguments":[{"name":"size","nativeSrc":"8169:4:53","nodeType":"YulIdentifier","src":"8169:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8147:21:53","nodeType":"YulIdentifier","src":"8147:21:53"},"nativeSrc":"8147:27:53","nodeType":"YulFunctionCall","src":"8147:27:53"}],"functionName":{"name":"add","nativeSrc":"8135:3:53","nodeType":"YulIdentifier","src":"8135:3:53"},"nativeSrc":"8135:40:53","nodeType":"YulFunctionCall","src":"8135:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8121:10:53","nodeType":"YulTypedName","src":"8121:10:53","type":""}]},{"body":{"nativeSrc":"8286:22:53","nodeType":"YulBlock","src":"8286:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8288:16:53","nodeType":"YulIdentifier","src":"8288:16:53"},"nativeSrc":"8288:18:53","nodeType":"YulFunctionCall","src":"8288:18:53"},"nativeSrc":"8288:18:53","nodeType":"YulExpressionStatement","src":"8288:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8229:10:53","nodeType":"YulIdentifier","src":"8229:10:53"},{"kind":"number","nativeSrc":"8241:18:53","nodeType":"YulLiteral","src":"8241:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8226:2:53","nodeType":"YulIdentifier","src":"8226:2:53"},"nativeSrc":"8226:34:53","nodeType":"YulFunctionCall","src":"8226:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8265:10:53","nodeType":"YulIdentifier","src":"8265:10:53"},{"name":"memPtr","nativeSrc":"8277:6:53","nodeType":"YulIdentifier","src":"8277:6:53"}],"functionName":{"name":"lt","nativeSrc":"8262:2:53","nodeType":"YulIdentifier","src":"8262:2:53"},"nativeSrc":"8262:22:53","nodeType":"YulFunctionCall","src":"8262:22:53"}],"functionName":{"name":"or","nativeSrc":"8223:2:53","nodeType":"YulIdentifier","src":"8223:2:53"},"nativeSrc":"8223:62:53","nodeType":"YulFunctionCall","src":"8223:62:53"},"nativeSrc":"8220:88:53","nodeType":"YulIf","src":"8220:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8324:2:53","nodeType":"YulLiteral","src":"8324:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8328:10:53","nodeType":"YulIdentifier","src":"8328:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8317:6:53","nodeType":"YulIdentifier","src":"8317:6:53"},"nativeSrc":"8317:22:53","nodeType":"YulFunctionCall","src":"8317:22:53"},"nativeSrc":"8317:22:53","nodeType":"YulExpressionStatement","src":"8317:22:53"}]},"name":"finalize_allocation","nativeSrc":"8064:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8093:6:53","nodeType":"YulTypedName","src":"8093:6:53","type":""},{"name":"size","nativeSrc":"8101:4:53","nodeType":"YulTypedName","src":"8101:4:53","type":""}],"src":"8064:281:53"},{"body":{"nativeSrc":"8392:88:53","nodeType":"YulBlock","src":"8392:88:53","statements":[{"nativeSrc":"8402:30:53","nodeType":"YulAssignment","src":"8402:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8412:18:53","nodeType":"YulIdentifier","src":"8412:18:53"},"nativeSrc":"8412:20:53","nodeType":"YulFunctionCall","src":"8412:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8402:6:53","nodeType":"YulIdentifier","src":"8402:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8461:6:53","nodeType":"YulIdentifier","src":"8461:6:53"},{"name":"size","nativeSrc":"8469:4:53","nodeType":"YulIdentifier","src":"8469:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8441:19:53","nodeType":"YulIdentifier","src":"8441:19:53"},"nativeSrc":"8441:33:53","nodeType":"YulFunctionCall","src":"8441:33:53"},"nativeSrc":"8441:33:53","nodeType":"YulExpressionStatement","src":"8441:33:53"}]},"name":"allocate_memory","nativeSrc":"8351:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8376:4:53","nodeType":"YulTypedName","src":"8376:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8385:6:53","nodeType":"YulTypedName","src":"8385:6:53","type":""}],"src":"8351:129:53"},{"body":{"nativeSrc":"8575:28:53","nodeType":"YulBlock","src":"8575:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8592:1:53","nodeType":"YulLiteral","src":"8592:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8595:1:53","nodeType":"YulLiteral","src":"8595:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8585:6:53","nodeType":"YulIdentifier","src":"8585:6:53"},"nativeSrc":"8585:12:53","nodeType":"YulFunctionCall","src":"8585:12:53"},"nativeSrc":"8585:12:53","nodeType":"YulExpressionStatement","src":"8585:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8486:117:53","nodeType":"YulFunctionDefinition","src":"8486:117:53"},{"body":{"nativeSrc":"8652:79:53","nodeType":"YulBlock","src":"8652:79:53","statements":[{"body":{"nativeSrc":"8709:16:53","nodeType":"YulBlock","src":"8709:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8718:1:53","nodeType":"YulLiteral","src":"8718:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8721:1:53","nodeType":"YulLiteral","src":"8721:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8711:6:53","nodeType":"YulIdentifier","src":"8711:6:53"},"nativeSrc":"8711:12:53","nodeType":"YulFunctionCall","src":"8711:12:53"},"nativeSrc":"8711:12:53","nodeType":"YulExpressionStatement","src":"8711:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8675:5:53","nodeType":"YulIdentifier","src":"8675:5:53"},{"arguments":[{"name":"value","nativeSrc":"8700:5:53","nodeType":"YulIdentifier","src":"8700:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8682:17:53","nodeType":"YulIdentifier","src":"8682:17:53"},"nativeSrc":"8682:24:53","nodeType":"YulFunctionCall","src":"8682:24:53"}],"functionName":{"name":"eq","nativeSrc":"8672:2:53","nodeType":"YulIdentifier","src":"8672:2:53"},"nativeSrc":"8672:35:53","nodeType":"YulFunctionCall","src":"8672:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8665:6:53","nodeType":"YulIdentifier","src":"8665:6:53"},"nativeSrc":"8665:43:53","nodeType":"YulFunctionCall","src":"8665:43:53"},"nativeSrc":"8662:63:53","nodeType":"YulIf","src":"8662:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"8609:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8645:5:53","nodeType":"YulTypedName","src":"8645:5:53","type":""}],"src":"8609:122:53"},{"body":{"nativeSrc":"8789:87:53","nodeType":"YulBlock","src":"8789:87:53","statements":[{"nativeSrc":"8799:29:53","nodeType":"YulAssignment","src":"8799:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8821:6:53","nodeType":"YulIdentifier","src":"8821:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8808:12:53","nodeType":"YulIdentifier","src":"8808:12:53"},"nativeSrc":"8808:20:53","nodeType":"YulFunctionCall","src":"8808:20:53"},"variableNames":[{"name":"value","nativeSrc":"8799:5:53","nodeType":"YulIdentifier","src":"8799:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8864:5:53","nodeType":"YulIdentifier","src":"8864:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8837:26:53","nodeType":"YulIdentifier","src":"8837:26:53"},"nativeSrc":"8837:33:53","nodeType":"YulFunctionCall","src":"8837:33:53"},"nativeSrc":"8837:33:53","nodeType":"YulExpressionStatement","src":"8837:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"8737:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8767:6:53","nodeType":"YulTypedName","src":"8767:6:53","type":""},{"name":"end","nativeSrc":"8775:3:53","nodeType":"YulTypedName","src":"8775:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8783:5:53","nodeType":"YulTypedName","src":"8783:5:53","type":""}],"src":"8737:139:53"},{"body":{"nativeSrc":"8925:79:53","nodeType":"YulBlock","src":"8925:79:53","statements":[{"body":{"nativeSrc":"8982:16:53","nodeType":"YulBlock","src":"8982:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8991:1:53","nodeType":"YulLiteral","src":"8991:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8994:1:53","nodeType":"YulLiteral","src":"8994:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8984:6:53","nodeType":"YulIdentifier","src":"8984:6:53"},"nativeSrc":"8984:12:53","nodeType":"YulFunctionCall","src":"8984:12:53"},"nativeSrc":"8984:12:53","nodeType":"YulExpressionStatement","src":"8984:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8948:5:53","nodeType":"YulIdentifier","src":"8948:5:53"},{"arguments":[{"name":"value","nativeSrc":"8973:5:53","nodeType":"YulIdentifier","src":"8973:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8955:17:53","nodeType":"YulIdentifier","src":"8955:17:53"},"nativeSrc":"8955:24:53","nodeType":"YulFunctionCall","src":"8955:24:53"}],"functionName":{"name":"eq","nativeSrc":"8945:2:53","nodeType":"YulIdentifier","src":"8945:2:53"},"nativeSrc":"8945:35:53","nodeType":"YulFunctionCall","src":"8945:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8938:6:53","nodeType":"YulIdentifier","src":"8938:6:53"},"nativeSrc":"8938:43:53","nodeType":"YulFunctionCall","src":"8938:43:53"},"nativeSrc":"8935:63:53","nodeType":"YulIf","src":"8935:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"8882:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8918:5:53","nodeType":"YulTypedName","src":"8918:5:53","type":""}],"src":"8882:122:53"},{"body":{"nativeSrc":"9062:87:53","nodeType":"YulBlock","src":"9062:87:53","statements":[{"nativeSrc":"9072:29:53","nodeType":"YulAssignment","src":"9072:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9094:6:53","nodeType":"YulIdentifier","src":"9094:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9081:12:53","nodeType":"YulIdentifier","src":"9081:12:53"},"nativeSrc":"9081:20:53","nodeType":"YulFunctionCall","src":"9081:20:53"},"variableNames":[{"name":"value","nativeSrc":"9072:5:53","nodeType":"YulIdentifier","src":"9072:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9137:5:53","nodeType":"YulIdentifier","src":"9137:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"9110:26:53","nodeType":"YulIdentifier","src":"9110:26:53"},"nativeSrc":"9110:33:53","nodeType":"YulFunctionCall","src":"9110:33:53"},"nativeSrc":"9110:33:53","nodeType":"YulExpressionStatement","src":"9110:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"9010:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9040:6:53","nodeType":"YulTypedName","src":"9040:6:53","type":""},{"name":"end","nativeSrc":"9048:3:53","nodeType":"YulTypedName","src":"9048:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9056:5:53","nodeType":"YulTypedName","src":"9056:5:53","type":""}],"src":"9010:139:53"},{"body":{"nativeSrc":"9281:825:53","nodeType":"YulBlock","src":"9281:825:53","statements":[{"body":{"nativeSrc":"9325:83:53","nodeType":"YulBlock","src":"9325:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9327:77:53","nodeType":"YulIdentifier","src":"9327:77:53"},"nativeSrc":"9327:79:53","nodeType":"YulFunctionCall","src":"9327:79:53"},"nativeSrc":"9327:79:53","nodeType":"YulExpressionStatement","src":"9327:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9302:3:53","nodeType":"YulIdentifier","src":"9302:3:53"},{"name":"headStart","nativeSrc":"9307:9:53","nodeType":"YulIdentifier","src":"9307:9:53"}],"functionName":{"name":"sub","nativeSrc":"9298:3:53","nodeType":"YulIdentifier","src":"9298:3:53"},"nativeSrc":"9298:19:53","nodeType":"YulFunctionCall","src":"9298:19:53"},{"kind":"number","nativeSrc":"9319:4:53","nodeType":"YulLiteral","src":"9319:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"9294:3:53","nodeType":"YulIdentifier","src":"9294:3:53"},"nativeSrc":"9294:30:53","nodeType":"YulFunctionCall","src":"9294:30:53"},"nativeSrc":"9291:117:53","nodeType":"YulIf","src":"9291:117:53"},{"nativeSrc":"9417:30:53","nodeType":"YulAssignment","src":"9417:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"9442:4:53","nodeType":"YulLiteral","src":"9442:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"9426:15:53","nodeType":"YulIdentifier","src":"9426:15:53"},"nativeSrc":"9426:21:53","nodeType":"YulFunctionCall","src":"9426:21:53"},"variableNames":[{"name":"value","nativeSrc":"9417:5:53","nodeType":"YulIdentifier","src":"9417:5:53"}]},{"nativeSrc":"9457:153:53","nodeType":"YulBlock","src":"9457:153:53","statements":[{"nativeSrc":"9495:15:53","nodeType":"YulVariableDeclaration","src":"9495:15:53","value":{"kind":"number","nativeSrc":"9509:1:53","nodeType":"YulLiteral","src":"9509:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9499:6:53","nodeType":"YulTypedName","src":"9499:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9535:5:53","nodeType":"YulIdentifier","src":"9535:5:53"},{"kind":"number","nativeSrc":"9542:4:53","nodeType":"YulLiteral","src":"9542:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9531:3:53","nodeType":"YulIdentifier","src":"9531:3:53"},"nativeSrc":"9531:16:53","nodeType":"YulFunctionCall","src":"9531:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9574:9:53","nodeType":"YulIdentifier","src":"9574:9:53"},{"name":"offset","nativeSrc":"9585:6:53","nodeType":"YulIdentifier","src":"9585:6:53"}],"functionName":{"name":"add","nativeSrc":"9570:3:53","nodeType":"YulIdentifier","src":"9570:3:53"},"nativeSrc":"9570:22:53","nodeType":"YulFunctionCall","src":"9570:22:53"},{"name":"end","nativeSrc":"9594:3:53","nodeType":"YulIdentifier","src":"9594:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9549:20:53","nodeType":"YulIdentifier","src":"9549:20:53"},"nativeSrc":"9549:49:53","nodeType":"YulFunctionCall","src":"9549:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9524:6:53","nodeType":"YulIdentifier","src":"9524:6:53"},"nativeSrc":"9524:75:53","nodeType":"YulFunctionCall","src":"9524:75:53"},"nativeSrc":"9524:75:53","nodeType":"YulExpressionStatement","src":"9524:75:53"}]},{"nativeSrc":"9620:153:53","nodeType":"YulBlock","src":"9620:153:53","statements":[{"nativeSrc":"9657:16:53","nodeType":"YulVariableDeclaration","src":"9657:16:53","value":{"kind":"number","nativeSrc":"9671:2:53","nodeType":"YulLiteral","src":"9671:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9661:6:53","nodeType":"YulTypedName","src":"9661:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9698:5:53","nodeType":"YulIdentifier","src":"9698:5:53"},{"kind":"number","nativeSrc":"9705:4:53","nodeType":"YulLiteral","src":"9705:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9694:3:53","nodeType":"YulIdentifier","src":"9694:3:53"},"nativeSrc":"9694:16:53","nodeType":"YulFunctionCall","src":"9694:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9737:9:53","nodeType":"YulIdentifier","src":"9737:9:53"},{"name":"offset","nativeSrc":"9748:6:53","nodeType":"YulIdentifier","src":"9748:6:53"}],"functionName":{"name":"add","nativeSrc":"9733:3:53","nodeType":"YulIdentifier","src":"9733:3:53"},"nativeSrc":"9733:22:53","nodeType":"YulFunctionCall","src":"9733:22:53"},{"name":"end","nativeSrc":"9757:3:53","nodeType":"YulIdentifier","src":"9757:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9712:20:53","nodeType":"YulIdentifier","src":"9712:20:53"},"nativeSrc":"9712:49:53","nodeType":"YulFunctionCall","src":"9712:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9687:6:53","nodeType":"YulIdentifier","src":"9687:6:53"},"nativeSrc":"9687:75:53","nodeType":"YulFunctionCall","src":"9687:75:53"},"nativeSrc":"9687:75:53","nodeType":"YulExpressionStatement","src":"9687:75:53"}]},{"nativeSrc":"9783:154:53","nodeType":"YulBlock","src":"9783:154:53","statements":[{"nativeSrc":"9822:16:53","nodeType":"YulVariableDeclaration","src":"9822:16:53","value":{"kind":"number","nativeSrc":"9836:2:53","nodeType":"YulLiteral","src":"9836:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9826:6:53","nodeType":"YulTypedName","src":"9826:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9863:5:53","nodeType":"YulIdentifier","src":"9863:5:53"},{"kind":"number","nativeSrc":"9870:4:53","nodeType":"YulLiteral","src":"9870:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9859:3:53","nodeType":"YulIdentifier","src":"9859:3:53"},"nativeSrc":"9859:16:53","nodeType":"YulFunctionCall","src":"9859:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9901:9:53","nodeType":"YulIdentifier","src":"9901:9:53"},{"name":"offset","nativeSrc":"9912:6:53","nodeType":"YulIdentifier","src":"9912:6:53"}],"functionName":{"name":"add","nativeSrc":"9897:3:53","nodeType":"YulIdentifier","src":"9897:3:53"},"nativeSrc":"9897:22:53","nodeType":"YulFunctionCall","src":"9897:22:53"},{"name":"end","nativeSrc":"9921:3:53","nodeType":"YulIdentifier","src":"9921:3:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"9877:19:53","nodeType":"YulIdentifier","src":"9877:19:53"},"nativeSrc":"9877:48:53","nodeType":"YulFunctionCall","src":"9877:48:53"}],"functionName":{"name":"mstore","nativeSrc":"9852:6:53","nodeType":"YulIdentifier","src":"9852:6:53"},"nativeSrc":"9852:74:53","nodeType":"YulFunctionCall","src":"9852:74:53"},"nativeSrc":"9852:74:53","nodeType":"YulExpressionStatement","src":"9852:74:53"}]},{"nativeSrc":"9947:152:53","nodeType":"YulBlock","src":"9947:152:53","statements":[{"nativeSrc":"9983:16:53","nodeType":"YulVariableDeclaration","src":"9983:16:53","value":{"kind":"number","nativeSrc":"9997:2:53","nodeType":"YulLiteral","src":"9997:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9987:6:53","nodeType":"YulTypedName","src":"9987:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10024:5:53","nodeType":"YulIdentifier","src":"10024:5:53"},{"kind":"number","nativeSrc":"10031:4:53","nodeType":"YulLiteral","src":"10031:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10020:3:53","nodeType":"YulIdentifier","src":"10020:3:53"},"nativeSrc":"10020:16:53","nodeType":"YulFunctionCall","src":"10020:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10063:9:53","nodeType":"YulIdentifier","src":"10063:9:53"},{"name":"offset","nativeSrc":"10074:6:53","nodeType":"YulIdentifier","src":"10074:6:53"}],"functionName":{"name":"add","nativeSrc":"10059:3:53","nodeType":"YulIdentifier","src":"10059:3:53"},"nativeSrc":"10059:22:53","nodeType":"YulFunctionCall","src":"10059:22:53"},{"name":"end","nativeSrc":"10083:3:53","nodeType":"YulIdentifier","src":"10083:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10038:20:53","nodeType":"YulIdentifier","src":"10038:20:53"},"nativeSrc":"10038:49:53","nodeType":"YulFunctionCall","src":"10038:49:53"}],"functionName":{"name":"mstore","nativeSrc":"10013:6:53","nodeType":"YulIdentifier","src":"10013:6:53"},"nativeSrc":"10013:75:53","nodeType":"YulFunctionCall","src":"10013:75:53"},"nativeSrc":"10013:75:53","nodeType":"YulExpressionStatement","src":"10013:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"9196:910:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9256:9:53","nodeType":"YulTypedName","src":"9256:9:53","type":""},{"name":"end","nativeSrc":"9267:3:53","nodeType":"YulTypedName","src":"9267:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9275:5:53","nodeType":"YulTypedName","src":"9275:5:53","type":""}],"src":"9196:910:53"},{"body":{"nativeSrc":"10208:294:53","nodeType":"YulBlock","src":"10208:294:53","statements":[{"body":{"nativeSrc":"10255:83:53","nodeType":"YulBlock","src":"10255:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10257:77:53","nodeType":"YulIdentifier","src":"10257:77:53"},"nativeSrc":"10257:79:53","nodeType":"YulFunctionCall","src":"10257:79:53"},"nativeSrc":"10257:79:53","nodeType":"YulExpressionStatement","src":"10257:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10229:7:53","nodeType":"YulIdentifier","src":"10229:7:53"},{"name":"headStart","nativeSrc":"10238:9:53","nodeType":"YulIdentifier","src":"10238:9:53"}],"functionName":{"name":"sub","nativeSrc":"10225:3:53","nodeType":"YulIdentifier","src":"10225:3:53"},"nativeSrc":"10225:23:53","nodeType":"YulFunctionCall","src":"10225:23:53"},{"kind":"number","nativeSrc":"10250:3:53","nodeType":"YulLiteral","src":"10250:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10221:3:53","nodeType":"YulIdentifier","src":"10221:3:53"},"nativeSrc":"10221:33:53","nodeType":"YulFunctionCall","src":"10221:33:53"},"nativeSrc":"10218:120:53","nodeType":"YulIf","src":"10218:120:53"},{"nativeSrc":"10348:147:53","nodeType":"YulBlock","src":"10348:147:53","statements":[{"nativeSrc":"10363:15:53","nodeType":"YulVariableDeclaration","src":"10363:15:53","value":{"kind":"number","nativeSrc":"10377:1:53","nodeType":"YulLiteral","src":"10377:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10367:6:53","nodeType":"YulTypedName","src":"10367:6:53","type":""}]},{"nativeSrc":"10392:93:53","nodeType":"YulAssignment","src":"10392:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10457:9:53","nodeType":"YulIdentifier","src":"10457:9:53"},{"name":"offset","nativeSrc":"10468:6:53","nodeType":"YulIdentifier","src":"10468:6:53"}],"functionName":{"name":"add","nativeSrc":"10453:3:53","nodeType":"YulIdentifier","src":"10453:3:53"},"nativeSrc":"10453:22:53","nodeType":"YulFunctionCall","src":"10453:22:53"},{"name":"dataEnd","nativeSrc":"10477:7:53","nodeType":"YulIdentifier","src":"10477:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"10402:50:53","nodeType":"YulIdentifier","src":"10402:50:53"},"nativeSrc":"10402:83:53","nodeType":"YulFunctionCall","src":"10402:83:53"},"variableNames":[{"name":"value0","nativeSrc":"10392:6:53","nodeType":"YulIdentifier","src":"10392:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"10112:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10178:9:53","nodeType":"YulTypedName","src":"10178:9:53","type":""},{"name":"dataEnd","nativeSrc":"10189:7:53","nodeType":"YulTypedName","src":"10189:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10201:6:53","nodeType":"YulTypedName","src":"10201:6:53","type":""}],"src":"10112:390:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Validator_$18282_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$18282_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_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 array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\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 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 // struct ContractAction.InitPayload\n function abi_decode_t_struct$_InitPayload_$12783_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // chainId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // value\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$12783_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"12716":[{"length":32,"start":935}]},"linkReferences":{},"object":"608060405260043610610085575f3560e01c8063439fab9111610058578063439fab911461014a5780639a8a059214610172578063d4b839921461019c578063d7768c47146101c6578063ea3d508a1461020257610085565b806301ffc9a71461008957806309c5eabe146100c5578063393df8cb146100f65780633fa4f24514610120575b5f80fd5b348015610094575f80fd5b506100af60048036038101906100aa9190610703565b61022c565b6040516100bc9190610748565b60405180910390f35b6100df60048036038101906100da91906107c2565b6102a5565b6040516100ed92919061087d565b60405180910390f35b348015610101575f80fd5b5061010a6103a5565b6040516101179190610925565b60405180910390f35b34801561012b575f80fd5b506101346103c9565b6040516101419190610956565b60405180910390f35b348015610155575f80fd5b50610170600480360381019061016b91906107c2565b6103cf565b005b34801561017d575f80fd5b5061018661045c565b6040516101939190610956565b60405180910390f35b3480156101a7575f80fd5b506101b0610461565b6040516101bd919061098f565b60405180910390f35b3480156101d1575f80fd5b506101ec60048036038101906101e791906107c2565b610486565b6040516101f991906109a8565b60405180910390f35b34801561020d575f80fd5b506102166104aa565b60405161022391906109d7565b60405180910390f35b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029e575061029d826104bd565b5b9050919050565b5f6060465f54146102ee575f546040517f180098f40000000000000000000000000000000000000000000000000000000081526004016102e59190610956565b60405180910390fd5b5f8060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600254610345600160149054906101000a900460e01b8989610536565b6040516103529190610a2a565b5f6040518083038185875af1925050503d805f811461038c576040519150601f19603f3d011682016040523d82523d5f602084013e610391565b606091505b509150915081819350935050509250929050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6103d8610562565b9050805460038255801561040a5760018160011c14303b106104015763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610422838381019061041d9190610b85565b61058b565b8015610457576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606104a2600160149054906101000a900460e01b8484610536565b905092915050565b600160149054906101000a900460e01b81565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052f575061052e82610610565b5b9050919050565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610593610679565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f610682610562565b9050805460011661069a5763d7e6bcf85f526004601cfd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6106e2816106ae565b81146106ec575f80fd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106a6565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261078257610781610761565b5b8235905067ffffffffffffffff81111561079f5761079e610765565b5b6020830191508360018202830111156107bb576107ba610769565b5b9250929050565b5f80602083850312156107d8576107d76106a6565b5b5f83013567ffffffffffffffff8111156107f5576107f46106aa565b5b6108018582860161076d565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084f8261080d565b6108598185610817565b9350610869818560208601610827565b61087281610835565b840191505092915050565b5f6040820190506108905f830185610739565b81810360208301526108a28184610845565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6108ed6108e86108e3846108ab565b6108ca565b6108ab565b9050919050565b5f6108fe826108d3565b9050919050565b5f61090f826108f4565b9050919050565b61091f81610905565b82525050565b5f6020820190506109385f830184610916565b92915050565b5f819050919050565b6109508161093e565b82525050565b5f6020820190506109695f830184610947565b92915050565b5f610979826108ab565b9050919050565b6109898161096f565b82525050565b5f6020820190506109a25f830184610980565b92915050565b5f6020820190508181035f8301526109c08184610845565b905092915050565b6109d1816106ae565b82525050565b5f6020820190506109ea5f8301846109c8565b92915050565b5f81905092915050565b5f610a048261080d565b610a0e81856109f0565b9350610a1e818560208601610827565b80840191505092915050565b5f610a3582846109fa565b915081905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a7a82610835565b810181811067ffffffffffffffff82111715610a9957610a98610a44565b5b80604052505050565b5f610aab61069d565b9050610ab78282610a71565b919050565b610ac58161093e565b8114610acf575f80fd5b50565b5f81359050610ae081610abc565b92915050565b610aef8161096f565b8114610af9575f80fd5b50565b5f81359050610b0a81610ae6565b92915050565b5f60808284031215610b2557610b24610a40565b5b610b2f6080610aa2565b90505f610b3e84828501610ad2565b5f830152506020610b5184828501610afc565b6020830152506040610b65848285016106ef565b6040830152506060610b7984828501610ad2565b60608301525092915050565b5f60808284031215610b9a57610b996106a6565b5b5f610ba784828501610b10565b9150509291505056fea264697066735822122021c0c7afbc5047b3c02734c3b94bc48232b385dfccec943fdc344e862c9f8f1c64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x85 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x439FAB91 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x202 JUMPI PUSH2 0x85 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x120 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBC SWAP2 SWAP1 PUSH2 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDA SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x2A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP3 SWAP2 SWAP1 PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x10A PUSH2 0x3A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x117 SWAP2 SWAP1 PUSH2 0x925 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x134 PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x155 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x45C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B0 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x4AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x9D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x29E JUMPI POP PUSH2 0x29D DUP3 PUSH2 0x4BD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 CHAINID PUSH0 SLOAD EQ PUSH2 0x2EE JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x180098F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E5 SWAP2 SWAP1 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 SLOAD PUSH2 0x345 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP10 DUP10 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xA2A JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x38C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x391 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x3D8 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x401 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x422 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x58B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x457 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4A2 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x52F JUMPI POP PUSH2 0x52E DUP3 PUSH2 0x610 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x593 PUSH2 0x679 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x682 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0x69A JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6E2 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP2 EQ PUSH2 0x6EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6FD DUP2 PUSH2 0x6D9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x718 JUMPI PUSH2 0x717 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x725 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x742 DUP2 PUSH2 0x72E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x75B PUSH0 DUP4 ADD DUP5 PUSH2 0x739 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x782 JUMPI PUSH2 0x781 PUSH2 0x761 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x79F JUMPI PUSH2 0x79E PUSH2 0x765 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x7BB JUMPI PUSH2 0x7BA PUSH2 0x769 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7F5 JUMPI PUSH2 0x7F4 PUSH2 0x6AA JUMP JUMPDEST JUMPDEST PUSH2 0x801 DUP6 DUP3 DUP7 ADD PUSH2 0x76D JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x84F DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0x859 DUP2 DUP6 PUSH2 0x817 JUMP JUMPDEST SWAP4 POP PUSH2 0x869 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST PUSH2 0x872 DUP2 PUSH2 0x835 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x890 PUSH0 DUP4 ADD DUP6 PUSH2 0x739 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8A2 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8ED PUSH2 0x8E8 PUSH2 0x8E3 DUP5 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x8CA JUMP JUMPDEST PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x8FE DUP3 PUSH2 0x8D3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x90F DUP3 PUSH2 0x8F4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x91F DUP2 PUSH2 0x905 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x938 PUSH0 DUP4 ADD DUP5 PUSH2 0x916 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x950 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x969 PUSH0 DUP4 ADD DUP5 PUSH2 0x947 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x979 DUP3 PUSH2 0x8AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x989 DUP2 PUSH2 0x96F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9A2 PUSH0 DUP4 ADD DUP5 PUSH2 0x980 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9C0 DUP2 DUP5 PUSH2 0x845 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9D1 DUP2 PUSH2 0x6AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9EA PUSH0 DUP4 ADD DUP5 PUSH2 0x9C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA04 DUP3 PUSH2 0x80D JUMP JUMPDEST PUSH2 0xA0E DUP2 DUP6 PUSH2 0x9F0 JUMP JUMPDEST SWAP4 POP PUSH2 0xA1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x827 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA35 DUP3 DUP5 PUSH2 0x9FA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xA7A DUP3 PUSH2 0x835 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xA99 JUMPI PUSH2 0xA98 PUSH2 0xA44 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAB PUSH2 0x69D JUMP JUMPDEST SWAP1 POP PUSH2 0xAB7 DUP3 DUP3 PUSH2 0xA71 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0x93E JUMP JUMPDEST DUP2 EQ PUSH2 0xACF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE0 DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEF DUP2 PUSH2 0x96F JUMP JUMPDEST DUP2 EQ PUSH2 0xAF9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB0A DUP2 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0xA40 JUMP JUMPDEST JUMPDEST PUSH2 0xB2F PUSH1 0x80 PUSH2 0xAA2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xB3E DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0xB51 DUP5 DUP3 DUP6 ADD PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xB65 DUP5 DUP3 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0xB79 DUP5 DUP3 DUP6 ADD PUSH2 0xAD2 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH2 0xB99 PUSH2 0x6A6 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBA7 DUP5 DUP3 DUP6 ADD PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xC0 0xC7 0xAF 0xBC POP SELFBALANCE 0xB3 0xC0 0x27 CALLVALUE 0xC3 0xB9 0x4B 0xC4 DUP3 ORIGIN 0xB3 DUP6 0xDF 0xCC 0xEC SWAP5 EXTCODEHASH 0xDC CALLVALUE 0x4E DUP7 0x2C SWAP16 DUP16 SHR PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"225:2470:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1749:205:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1404:334:32;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1149:36:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1065:20:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1258:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;814:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;879:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1744:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;966:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1749:205:31;1845:4;1883:24;1868:39;;;:11;:39;;;;:79;;;;1911:36;1935:11;1911:23;:36::i;:::-;1868:79;1861:86;;1749:205;;;:::o;1404:334:32:-;1486:4;1492:12;1531:13;1520:7;;:24;1516:68;;1576:7;;1553:31;;;;;;;;;;;:::i;:::-;;;;;;;;1516:68;1595:12;1609:23;1636:6;;;;;;;;;;;:11;;1655:5;;1662:30;1676:8;;;;;;;;;;;1686:5;;1662:13;:30::i;:::-;1636:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:99;;;;1711:7;1720:10;1703:28;;;;;;1404:334;;;;;:::o;1149:36:31:-;;;:::o;1065:20:32:-;;;;:::o;1258:140::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1346:45:32::1;1369:5;;1358:32;;;;;;;:::i;:::-;1346:11;:45::i;:::-;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1258:140:32;;:::o;814:22::-;;;;:::o;879:21::-;;;;;;;;;;;;;:::o;1744:152::-;1821:19;1859:30;1873:8;;;;;;;;;;;1883:5;;1859:13;:30::i;:::-;1852:37;;1744:152;;;;:::o;966:22::-;;;;;;;;;;;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;2124:569:32:-;2214:20;2334:16;2331:1;2327:24;2381:4;2375:11;2364:22;;2415:4;2406:7;2399:21;2469:4;2463;2459:15;2450:7;2446:29;2440:4;2433:43;2586:9;2579:4;2570:7;2566:18;2559:37;2660:16;2642;2635:4;2626:7;2622:18;2609:68;2255:432;2124:569;;;;;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;1902:216:32:-;5662:20:21;:18;:20::i;:::-;2003:5:32::1;:13;;;1993:7;:23;;;;2035:5;:12;;;2026:6;;:21;;;;;;;;;;;;;;;;;;2068:5;:14;;;2057:8;;:25;;;;;;;;;;;;;;;;;;2100:5;:11;;;2092:5;:19;;;;1902:216:::0;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;5764:329:21:-;5826:9;5838:20;:18;:20::i;:::-;5826:32;;5957:1;5951:8;5948:1;5944:16;5934:143;;5993:10;5987:4;5980:24;6058:4;6052;6045:18;5934:143;5920:167;5764:329::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:407::-;4034:4;4072:2;4061:9;4057:18;4049:26;;4085:65;4147:1;4136:9;4132:17;4123:6;4085:65;:::i;:::-;4197:9;4191:4;4187:20;4182:2;4171:9;4167:18;4160:48;4225:76;4296:4;4287:6;4225:76;:::i;:::-;4217:84;;3901:407;;;;;:::o;4314:126::-;4351:7;4391:42;4384:5;4380:54;4369:65;;4314:126;;;:::o;4446:60::-;4474:3;4495:5;4488:12;;4446:60;;;:::o;4512:142::-;4562:9;4595:53;4613:34;4622:24;4640:5;4622:24;:::i;:::-;4613:34;:::i;:::-;4595:53;:::i;:::-;4582:66;;4512:142;;;:::o;4660:126::-;4710:9;4743:37;4774:5;4743:37;:::i;:::-;4730:50;;4660:126;;;:::o;4792:145::-;4861:9;4894:37;4925:5;4894:37;:::i;:::-;4881:50;;4792:145;;;:::o;4943:169::-;5049:56;5099:5;5049:56;:::i;:::-;5044:3;5037:69;4943:169;;:::o;5118:260::-;5230:4;5268:2;5257:9;5253:18;5245:26;;5281:90;5368:1;5357:9;5353:17;5344:6;5281:90;:::i;:::-;5118:260;;;;:::o;5384:77::-;5421:7;5450:5;5439:16;;5384:77;;;:::o;5467:118::-;5554:24;5572:5;5554:24;:::i;:::-;5549:3;5542:37;5467:118;;:::o;5591:222::-;5684:4;5722:2;5711:9;5707:18;5699:26;;5735:71;5803:1;5792:9;5788:17;5779:6;5735:71;:::i;:::-;5591:222;;;;:::o;5819:96::-;5856:7;5885:24;5903:5;5885:24;:::i;:::-;5874:35;;5819:96;;;:::o;5921:118::-;6008:24;6026:5;6008:24;:::i;:::-;6003:3;5996:37;5921:118;;:::o;6045:222::-;6138:4;6176:2;6165:9;6161:18;6153:26;;6189:71;6257:1;6246:9;6242:17;6233:6;6189:71;:::i;:::-;6045:222;;;;:::o;6273:309::-;6384:4;6422:2;6411:9;6407:18;6399:26;;6471:9;6465:4;6461:20;6457:1;6446:9;6442:17;6435:47;6499:76;6570:4;6561:6;6499:76;:::i;:::-;6491:84;;6273:309;;;;:::o;6588:115::-;6673:23;6690:5;6673:23;:::i;:::-;6668:3;6661:36;6588:115;;:::o;6709:218::-;6800:4;6838:2;6827:9;6823:18;6815:26;;6851:69;6917:1;6906:9;6902:17;6893:6;6851:69;:::i;:::-;6709:218;;;;:::o;6933:147::-;7034:11;7071:3;7056:18;;6933:147;;;;:::o;7086:386::-;7190:3;7218:38;7250:5;7218:38;:::i;:::-;7272:88;7353:6;7348:3;7272:88;:::i;:::-;7265:95;;7369:65;7427:6;7422:3;7415:4;7408:5;7404:16;7369:65;:::i;:::-;7459:6;7454:3;7450:16;7443:23;;7194:278;7086:386;;;;:::o;7478:271::-;7608:3;7630:93;7719:3;7710:6;7630:93;:::i;:::-;7623:100;;7740:3;7733:10;;7478:271;;;;:::o;7755:117::-;7864:1;7861;7854:12;7878:180;7926:77;7923:1;7916:88;8023:4;8020:1;8013:15;8047:4;8044:1;8037:15;8064:281;8147:27;8169:4;8147:27;:::i;:::-;8139:6;8135:40;8277:6;8265:10;8262:22;8241:18;8229:10;8226:34;8223:62;8220:88;;;8288:18;;:::i;:::-;8220:88;8328:10;8324:2;8317:22;8107:238;8064:281;;:::o;8351:129::-;8385:6;8412:20;;:::i;:::-;8402:30;;8441:33;8469:4;8461:6;8441:33;:::i;:::-;8351:129;;;:::o;8609:122::-;8682:24;8700:5;8682:24;:::i;:::-;8675:5;8672:35;8662:63;;8721:1;8718;8711:12;8662:63;8609:122;:::o;8737:139::-;8783:5;8821:6;8808:20;8799:29;;8837:33;8864:5;8837:33;:::i;:::-;8737:139;;;;:::o;8882:122::-;8955:24;8973:5;8955:24;:::i;:::-;8948:5;8945:35;8935:63;;8994:1;8991;8984:12;8935:63;8882:122;:::o;9010:139::-;9056:5;9094:6;9081:20;9072:29;;9110:33;9137:5;9110:33;:::i;:::-;9010:139;;;;:::o;9196:910::-;9275:5;9319:4;9307:9;9302:3;9298:19;9294:30;9291:117;;;9327:79;;:::i;:::-;9291:117;9426:21;9442:4;9426:21;:::i;:::-;9417:30;;9509:1;9549:49;9594:3;9585:6;9574:9;9570:22;9549:49;:::i;:::-;9542:4;9535:5;9531:16;9524:75;9457:153;9671:2;9712:49;9757:3;9748:6;9737:9;9733:22;9712:49;:::i;:::-;9705:4;9698:5;9694:16;9687:75;9620:153;9836:2;9877:48;9921:3;9912:6;9901:9;9897:22;9877:48;:::i;:::-;9870:4;9863:5;9859:16;9852:74;9783:154;9997:2;10038:49;10083:3;10074:6;10063:9;10059:22;10038:49;:::i;:::-;10031:4;10024:5;10020:16;10013:75;9947:152;9196:910;;;;:::o;10112:390::-;10201:6;10250:3;10238:9;10229:7;10225:23;10221:33;10218:120;;;10257:79;;:::i;:::-;10218:120;10377:1;10402:83;10477:7;10468:6;10457:9;10453:22;10402:83;:::i;:::-;10392:93;;10348:147;10112:390;;;;:::o"},"methodIdentifiers":{"VALIDATOR()":"393df8cb","chainId()":"9a8a0592","execute(bytes)":"09c5eabe","initialize(bytes)":"439fab91","prepare(bytes)":"d7768c47","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecuteNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"bytes_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"(success, data) A tuple of the success status and the returned data\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"prepare(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"bytes_\":\"The prepared payload\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"ExecuteNotImplemented()\":[{\"notice\":\"Thrown when the `execute` function is not implemented\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"execute(bytes)\":{\"notice\":\"Execute the action\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the owner and the required data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/ContractAction.sol\":\"ContractAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/actions/ContractAction.sol\":{\"keccak256\":\"0x1d216cdb7e8011350fd07c8b796235264da51e788701f6be92605277c7b457d5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5198f63609e67be2f9b9660837f9c576aca3ed3af370d39fd53c184aecb3e0e4\",\"dweb:/ipfs/QmYEhsxWWsw12koqkUFLYT8SVexdpPH8hD3Ezh1aHBdmig\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/actions/ERC721MintAction.sol":{"ERC721MintAction":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"ExecuteNotImplemented","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"validated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_12802":{"entryPoint":null,"id":12802,"parameterSlots":0,"returnSlots":0},"@_12944":{"entryPoint":null,"id":12944,"parameterSlots":0,"returnSlots":0},"@_18250":{"entryPoint":null,"id":18250,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":64,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":433,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":392,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":172,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b5061001e61004060201b60201c565b61002d336100ac60201b60201c565b61003b61004060201b60201c565b6101b5565b5f61004f61018860201b60201c565b9050805460018116156100695763f92ee8a95f526004601cfd5b8160c01c808260011c146100a7578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6100ba6101b160201b60201c565b15610132577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156100f457630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610185565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f90565b6080516114526101cd5f395f61047c01526114525ff3fe608060405260043610610108575f3560e01c80639a8a059211610094578063d7768c4711610063578063d7768c4714610309578063ea3d508a14610345578063f04e283e1461036f578063f2fde38b1461038b578063fee81cf4146103a757610108565b80639a8a05921461023d578063bec9527714610267578063c16e50ef146102a3578063d4b83992146102df57610108565b80633fa4f245116100db5780633fa4f245146101ad578063439fab91146101d757806354d1f13d146101ff578063715018a6146102095780638da5cb5b1461021357610108565b806301ffc9a71461010c57806309c5eabe146101485780632569296214610179578063393df8cb14610183575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610d47565b6103e3565b60405161013f9190610d8c565b60405180910390f35b610162600480360381019061015d9190610e06565b6103f4565b604051610170929190610ec1565b60405180910390f35b610181610429565b005b34801561018e575f80fd5b5061019761047a565b6040516101a49190610f69565b60405180910390f35b3480156101b8575f80fd5b506101c161049e565b6040516101ce9190610f9a565b60405180910390f35b3480156101e2575f80fd5b506101fd60048036038101906101f89190610e06565b6104a4565b005b610207610531565b005b61021161056a565b005b34801561021e575f80fd5b5061022761057d565b6040516102349190610fd3565b60405180910390f35b348015610248575f80fd5b506102516105a5565b60405161025e9190610f9a565b60405180910390f35b348015610272575f80fd5b5061028d60048036038101906102889190611016565b6105aa565b60405161029a9190610d8c565b60405180910390f35b3480156102ae575f80fd5b506102c960048036038101906102c49190610e06565b6105c7565b6040516102d69190610d8c565b60405180910390f35b3480156102ea575f80fd5b506102f3610721565b6040516103009190610fd3565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a9190610e06565b610746565b60405161033c9190611041565b60405180910390f35b348015610350575f80fd5b5061035961075a565b6040516103669190611070565b60405180910390f35b610389600480360381019061038491906110b3565b61076d565b005b6103a560048036038101906103a091906110b3565b6107ab565b005b3480156103b2575f80fd5b506103cd60048036038101906103c891906110b3565b6107d4565b6040516103da9190610f9a565b60405180910390f35b5f6103ed826107ed565b9050919050565b5f60606040517fe1ebb83b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610432610866565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6104ad610870565b905080546003825580156104df5760018160011c14303b106104d65763f92ee8a95f526004601cfd5b818160ff1b1b91505b506104f783838101906104f291906111cf565b610899565b801561052c576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105726108b6565b61057b5f6108ed565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f84848101906105d991906112e5565b915091505f816105e890611377565b5f1c90508273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161065d9190610f9a565b602060405180830381865afa158015610678573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069c91906113f1565b73ffffffffffffffffffffffffffffffffffffffff161480156106da575060035f8281526020019081526020015f205f9054906101000a900460ff16155b1561071457600160035f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055506001935050505061071b565b5f93505050505b92915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061075283836109b3565b905092915050565b600160149054906101000a900460e01b81565b6107756108b6565b63389a75e1600c52805f526020600c20805442111561079b57636f5e88185f526004601cfd5b5f8155506107a8816108ed565b50565b6107b36108b6565b8060601b6107c857637448fbae5f526004601cfd5b6107d1816108ed565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061085f575061085e826109d7565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108a1610a50565b6108aa81610a74565b6108b333610af9565b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146108eb576382b429005f526004601cfd5b565b6108f5610bcf565b1561095a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506109b0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b60606109cf600160149054906101000a900460e01b8484610bd3565b905092915050565b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a495750610a4882610bff565b5b9050919050565b5f610a59610870565b90508054600116610a715763d7e6bcf85f526004601cfd5b50565b610a7c610a50565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b610b01610bcf565b15610b79577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b3b57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610bcc565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c715750610c7082610c78565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d2681610cf2565b8114610d30575f80fd5b50565b5f81359050610d4181610d1d565b92915050565b5f60208284031215610d5c57610d5b610cea565b5b5f610d6984828501610d33565b91505092915050565b5f8115159050919050565b610d8681610d72565b82525050565b5f602082019050610d9f5f830184610d7d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610dc657610dc5610da5565b5b8235905067ffffffffffffffff811115610de357610de2610da9565b5b602083019150836001820283011115610dff57610dfe610dad565b5b9250929050565b5f8060208385031215610e1c57610e1b610cea565b5b5f83013567ffffffffffffffff811115610e3957610e38610cee565b5b610e4585828601610db1565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9382610e51565b610e9d8185610e5b565b9350610ead818560208601610e6b565b610eb681610e79565b840191505092915050565b5f604082019050610ed45f830185610d7d565b8181036020830152610ee68184610e89565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f31610f2c610f2784610eef565b610f0e565b610eef565b9050919050565b5f610f4282610f17565b9050919050565b5f610f5382610f38565b9050919050565b610f6381610f49565b82525050565b5f602082019050610f7c5f830184610f5a565b92915050565b5f819050919050565b610f9481610f82565b82525050565b5f602082019050610fad5f830184610f8b565b92915050565b5f610fbd82610eef565b9050919050565b610fcd81610fb3565b82525050565b5f602082019050610fe65f830184610fc4565b92915050565b610ff581610f82565b8114610fff575f80fd5b50565b5f8135905061101081610fec565b92915050565b5f6020828403121561102b5761102a610cea565b5b5f61103884828501611002565b91505092915050565b5f6020820190508181035f8301526110598184610e89565b905092915050565b61106a81610cf2565b82525050565b5f6020820190506110835f830184611061565b92915050565b61109281610fb3565b811461109c575f80fd5b50565b5f813590506110ad81611089565b92915050565b5f602082840312156110c8576110c7610cea565b5b5f6110d58482850161109f565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61111882610e79565b810181811067ffffffffffffffff82111715611137576111366110e2565b5b80604052505050565b5f611149610ce1565b9050611155828261110f565b919050565b5f6080828403121561116f5761116e6110de565b5b6111796080611140565b90505f61118884828501611002565b5f83015250602061119b8482850161109f565b60208301525060406111af84828501610d33565b60408301525060606111c384828501611002565b60608301525092915050565b5f608082840312156111e4576111e3610cea565b5b5f6111f18482850161115a565b91505092915050565b5f61120482610eef565b9050919050565b611214816111fa565b811461121e575f80fd5b50565b5f8135905061122f8161120b565b92915050565b5f80fd5b5f67ffffffffffffffff821115611253576112526110e2565b5b61125c82610e79565b9050602081019050919050565b828183375f83830152505050565b5f61128961128484611239565b611140565b9050828152602081018484840111156112a5576112a4611235565b5b6112b0848285611269565b509392505050565b5f82601f8301126112cc576112cb610da5565b5b81356112dc848260208601611277565b91505092915050565b5f80604083850312156112fb576112fa610cea565b5b5f61130885828601611221565b925050602083013567ffffffffffffffff81111561132957611328610cee565b5b611335858286016112b8565b9150509250929050565b5f819050602082019050919050565b5f819050919050565b5f611362825161134e565b80915050919050565b5f82821b905092915050565b5f61138182610e51565b8261138b8461133f565b905061139681611357565b925060208210156113d6576113d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261136b565b831692505b5050919050565b5f815190506113eb81611089565b92915050565b5f6020828403121561140657611405610cea565b5b5f611413848285016113dd565b9150509291505056fea26469706673582212201eed06d9c91007e2b028d9b47b4370f06ff230572c76ee6cca214af1f4c9bfb464736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E PUSH2 0x40 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D CALLER PUSH2 0xAC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x3B PUSH2 0x40 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1B5 JUMP JUMPDEST PUSH0 PUSH2 0x4F PUSH2 0x188 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x69 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0xA7 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xBA PUSH2 0x1B1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0x132 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xF4 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x185 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1452 PUSH2 0x1CD PUSH0 CODECOPY PUSH0 PUSH2 0x47C ADD MSTORE PUSH2 0x1452 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A8A0592 GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xD7768C47 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A7 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xBEC95277 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x2DF JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x3FA4F245 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x213 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x183 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xD47 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x3F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP3 SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x429 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x197 PUSH2 0x47A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH2 0x49E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CE SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x207 PUSH2 0x531 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x211 PUSH2 0x56A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x251 PUSH2 0x5A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x1016 JUMP JUMPDEST PUSH2 0x5AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29A SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F3 PUSH2 0x721 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x32A SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x746 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0x75A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x366 SWAP2 SWAP1 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x389 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x384 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x76D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7AB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH2 0x3ED DUP3 PUSH2 0x7ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH32 0xE1EBB83B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x432 PUSH2 0x866 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4AD PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4D6 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x4F7 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x11CF JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x52C JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x572 PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x57B PUSH0 PUSH2 0x8ED JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x5D9 SWAP2 SWAP1 PUSH2 0x12E5 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP2 PUSH2 0x5E8 SWAP1 PUSH2 0x1377 JUMP JUMPDEST PUSH0 SHR SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x65D SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x678 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x69C SWAP2 SWAP1 PUSH2 0x13F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x6DA JUMPI POP PUSH1 0x3 PUSH0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x714 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x71B JUMP JUMPDEST PUSH0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x752 DUP4 DUP4 PUSH2 0x9B3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0x775 PUSH2 0x8B6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x79B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x7A8 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7B3 PUSH2 0x8B6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7C8 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7D1 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x85F JUMPI POP PUSH2 0x85E DUP3 PUSH2 0x9D7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0xA50 JUMP JUMPDEST PUSH2 0x8AA DUP2 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x8B3 CALLER PUSH2 0xAF9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x8EB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x8F5 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0x95A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x9B0 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x9CF PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA49 JUMPI POP PUSH2 0xA48 DUP3 PUSH2 0xBFF JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA59 PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0xA71 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA7C PUSH2 0xA50 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xB01 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0xB79 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB3B JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xBCC JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC71 JUMPI POP PUSH2 0xC70 DUP3 PUSH2 0xC78 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD26 DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP2 EQ PUSH2 0xD30 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD41 DUP2 PUSH2 0xD1D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5C JUMPI PUSH2 0xD5B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD86 DUP2 PUSH2 0xD72 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD9F PUSH0 DUP4 ADD DUP5 PUSH2 0xD7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDC6 JUMPI PUSH2 0xDC5 PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDE3 JUMPI PUSH2 0xDE2 PUSH2 0xDA9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xDFF JUMPI PUSH2 0xDFE PUSH2 0xDAD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1C JUMPI PUSH2 0xE1B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE38 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0xE45 DUP6 DUP3 DUP7 ADD PUSH2 0xDB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE93 DUP3 PUSH2 0xE51 JUMP JUMPDEST PUSH2 0xE9D DUP2 DUP6 PUSH2 0xE5B JUMP JUMPDEST SWAP4 POP PUSH2 0xEAD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE6B JUMP JUMPDEST PUSH2 0xEB6 DUP2 PUSH2 0xE79 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xED4 PUSH0 DUP4 ADD DUP6 PUSH2 0xD7D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF31 PUSH2 0xF2C PUSH2 0xF27 DUP5 PUSH2 0xEEF JUMP JUMPDEST PUSH2 0xF0E JUMP JUMPDEST PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF42 DUP3 PUSH2 0xF17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF53 DUP3 PUSH2 0xF38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF63 DUP2 PUSH2 0xF49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF7C PUSH0 DUP4 ADD DUP5 PUSH2 0xF5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF94 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFAD PUSH0 DUP4 ADD DUP5 PUSH2 0xF8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFBD DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFCD DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFE6 PUSH0 DUP4 ADD DUP5 PUSH2 0xFC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFF5 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP2 EQ PUSH2 0xFFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1010 DUP2 PUSH2 0xFEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1038 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1059 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x106A DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1083 PUSH0 DUP4 ADD DUP5 PUSH2 0x1061 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1092 DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP2 EQ PUSH2 0x109C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10AD DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10C8 JUMPI PUSH2 0x10C7 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10D5 DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1118 DUP3 PUSH2 0xE79 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1137 JUMPI PUSH2 0x1136 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1149 PUSH2 0xCE1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1155 DUP3 DUP3 PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH2 0x116E PUSH2 0x10DE JUMP JUMPDEST JUMPDEST PUSH2 0x1179 PUSH1 0x80 PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1188 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x119B DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x11AF DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x11C3 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11E4 JUMPI PUSH2 0x11E3 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11F1 DUP5 DUP3 DUP6 ADD PUSH2 0x115A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1204 DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1214 DUP2 PUSH2 0x11FA JUMP JUMPDEST DUP2 EQ PUSH2 0x121E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122F DUP2 PUSH2 0x120B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1253 JUMPI PUSH2 0x1252 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST PUSH2 0x125C DUP3 PUSH2 0xE79 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1289 PUSH2 0x1284 DUP5 PUSH2 0x1239 JUMP JUMPDEST PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x12A5 JUMPI PUSH2 0x12A4 PUSH2 0x1235 JUMP JUMPDEST JUMPDEST PUSH2 0x12B0 DUP5 DUP3 DUP6 PUSH2 0x1269 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12CC JUMPI PUSH2 0x12CB PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12DC DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1277 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12FB JUMPI PUSH2 0x12FA PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1308 DUP6 DUP3 DUP7 ADD PUSH2 0x1221 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1329 JUMPI PUSH2 0x1328 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0x1335 DUP6 DUP3 DUP7 ADD PUSH2 0x12B8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1362 DUP3 MLOAD PUSH2 0x134E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1381 DUP3 PUSH2 0xE51 JUMP JUMPDEST DUP3 PUSH2 0x138B DUP5 PUSH2 0x133F JUMP JUMPDEST SWAP1 POP PUSH2 0x1396 DUP2 PUSH2 0x1357 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x13D6 JUMPI PUSH2 0x13D1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x136B JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EB DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1406 JUMPI PUSH2 0x1405 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1413 DUP5 DUP3 DUP6 ADD PUSH2 0x13DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xED MOD 0xD9 0xC9 LT SMOD 0xE2 0xB0 0x28 0xD9 0xB4 PUSH28 0x4370F06FF230572C76EE6CCA214AF1F4C9BFB464736F6C6343000819 STOP CALLER ","sourceMap":"813:3156:33:-:0;;;1296:53;;;;;;;;;;1116:22:32;:20;;;:22;;:::i;:::-;703:28:52;720:10;703:16;;;:28;;:::i;:::-;1320:22:33;:20;;;:22;;:::i;:::-;813:3156;;6525:759:21;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4883:1190:17:-;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4348:78:17:-;4412:10;4348:78;:::o;813:3156:33:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@VALIDATOR_12716":{"entryPoint":1146,"id":12716,"parameterSlots":0,"returnSlots":0},"@_buildPayload_12913":{"entryPoint":3027,"id":12913,"parameterSlots":3,"returnSlots":1},"@_checkInitializing_9187":{"entryPoint":2640,"id":9187,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":2230,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3023,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2160,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2809,"id":6302,"parameterSlots":1,"returnSlots":0},"@_initialize_12902":{"entryPoint":2676,"id":12902,"parameterSlots":1,"returnSlots":0},"@_initialize_13098":{"entryPoint":2201,"id":13098,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":2150,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":2285,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1329,"id":6382,"parameterSlots":0,"returnSlots":0},"@chainId_12786":{"entryPoint":1445,"id":12786,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":1901,"id":6396,"parameterSlots":1,"returnSlots":0},"@execute_12985":{"entryPoint":1012,"id":12985,"parameterSlots":2,"returnSlots":2},"@initialize_12965":{"entryPoint":1188,"id":12965,"parameterSlots":2,"returnSlots":0},"@owner_6404":{"entryPoint":1405,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2004,"id":6414,"parameterSlots":1,"returnSlots":1},"@prepare_12873":{"entryPoint":2483,"id":12873,"parameterSlots":2,"returnSlots":1},"@prepare_13000":{"entryPoint":1862,"id":13000,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1386,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1065,"id":6376,"parameterSlots":0,"returnSlots":0},"@selector_12792":{"entryPoint":1882,"id":12792,"parameterSlots":0,"returnSlots":0},"@supportsInterface_12757":{"entryPoint":2519,"id":12757,"parameterSlots":1,"returnSlots":1},"@supportsInterface_13077":{"entryPoint":995,"id":13077,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":3071,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18281":{"entryPoint":2029,"id":18281,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":3192,"id":2844,"parameterSlots":1,"returnSlots":1},"@target_12789":{"entryPoint":1825,"id":12789,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":1963,"id":6347,"parameterSlots":1,"returnSlots":0},"@validate_13060":{"entryPoint":1479,"id":13060,"parameterSlots":2,"returnSlots":1},"@validated_12936":{"entryPoint":1450,"id":12936,"parameterSlots":0,"returnSlots":0},"@value_12795":{"entryPoint":1182,"id":12795,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4727,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4255,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":5085,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4641,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3379,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3505,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4792,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":4442,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4098,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4275,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":5105,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes_memory_ptr":{"entryPoint":4837,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3399,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3590,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr":{"entryPoint":4559,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4118,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4036,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3453,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4193,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":3721,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack":{"entryPoint":3930,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3979,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3777,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4208,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed":{"entryPoint":3945,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3994,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4416,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3297,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4665,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_memory_ptr":{"entryPoint":4927,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":3665,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":3675,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4019,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4602,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3442,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":4942,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3314,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3823,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3970,"id":null,"parameterSlots":1,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":4983,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$18282_to_t_address":{"entryPoint":3913,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3896,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":3863,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4713,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":3691,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4367,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":3854,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":4322,"id":null,"parameterSlots":0,"returnSlots":0},"read_from_memoryt_bytes32":{"entryPoint":4951,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3497,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3493,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4318,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3501,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4661,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3310,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3306,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3705,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":4971,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_t_address":{"entryPoint":4233,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4619,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3357,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4076,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14402:53","nodeType":"YulBlock","src":"0:14402:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1974:478:53","nodeType":"YulBlock","src":"1974:478:53","statements":[{"body":{"nativeSrc":"2023:83:53","nodeType":"YulBlock","src":"2023:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:53","nodeType":"YulIdentifier","src":"2025:77:53"},"nativeSrc":"2025:79:53","nodeType":"YulFunctionCall","src":"2025:79:53"},"nativeSrc":"2025:79:53","nodeType":"YulExpressionStatement","src":"2025:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:53","nodeType":"YulIdentifier","src":"2002:6:53"},{"kind":"number","nativeSrc":"2010:4:53","nodeType":"YulLiteral","src":"2010:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"},{"name":"end","nativeSrc":"2017:3:53","nodeType":"YulIdentifier","src":"2017:3:53"}],"functionName":{"name":"slt","nativeSrc":"1994:3:53","nodeType":"YulIdentifier","src":"1994:3:53"},"nativeSrc":"1994:27:53","nodeType":"YulFunctionCall","src":"1994:27:53"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:53","nodeType":"YulIdentifier","src":"1987:6:53"},"nativeSrc":"1987:35:53","nodeType":"YulFunctionCall","src":"1987:35:53"},"nativeSrc":"1984:122:53","nodeType":"YulIf","src":"1984:122:53"},{"nativeSrc":"2115:30:53","nodeType":"YulAssignment","src":"2115:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:53","nodeType":"YulIdentifier","src":"2138:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:53","nodeType":"YulIdentifier","src":"2125:12:53"},"nativeSrc":"2125:20:53","nodeType":"YulFunctionCall","src":"2125:20:53"},"variableNames":[{"name":"length","nativeSrc":"2115:6:53","nodeType":"YulIdentifier","src":"2115:6:53"}]},{"body":{"nativeSrc":"2188:83:53","nodeType":"YulBlock","src":"2188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:53","nodeType":"YulIdentifier","src":"2190:77:53"},"nativeSrc":"2190:79:53","nodeType":"YulFunctionCall","src":"2190:79:53"},"nativeSrc":"2190:79:53","nodeType":"YulExpressionStatement","src":"2190:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:53","nodeType":"YulIdentifier","src":"2160:6:53"},{"kind":"number","nativeSrc":"2168:18:53","nodeType":"YulLiteral","src":"2168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:53","nodeType":"YulIdentifier","src":"2157:2:53"},"nativeSrc":"2157:30:53","nodeType":"YulFunctionCall","src":"2157:30:53"},"nativeSrc":"2154:117:53","nodeType":"YulIf","src":"2154:117:53"},{"nativeSrc":"2280:29:53","nodeType":"YulAssignment","src":"2280:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:53","nodeType":"YulIdentifier","src":"2296:6:53"},{"kind":"number","nativeSrc":"2304:4:53","nodeType":"YulLiteral","src":"2304:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:53","nodeType":"YulIdentifier","src":"2292:3:53"},"nativeSrc":"2292:17:53","nodeType":"YulFunctionCall","src":"2292:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:53","nodeType":"YulIdentifier","src":"2280:8:53"}]},{"body":{"nativeSrc":"2363:83:53","nodeType":"YulBlock","src":"2363:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:53","nodeType":"YulIdentifier","src":"2365:77:53"},"nativeSrc":"2365:79:53","nodeType":"YulFunctionCall","src":"2365:79:53"},"nativeSrc":"2365:79:53","nodeType":"YulExpressionStatement","src":"2365:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:53","nodeType":"YulIdentifier","src":"2328:8:53"},{"arguments":[{"name":"length","nativeSrc":"2342:6:53","nodeType":"YulIdentifier","src":"2342:6:53"},{"kind":"number","nativeSrc":"2350:4:53","nodeType":"YulLiteral","src":"2350:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:53","nodeType":"YulIdentifier","src":"2338:3:53"},"nativeSrc":"2338:17:53","nodeType":"YulFunctionCall","src":"2338:17:53"}],"functionName":{"name":"add","nativeSrc":"2324:3:53","nodeType":"YulIdentifier","src":"2324:3:53"},"nativeSrc":"2324:32:53","nodeType":"YulFunctionCall","src":"2324:32:53"},{"name":"end","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"}],"functionName":{"name":"gt","nativeSrc":"2321:2:53","nodeType":"YulIdentifier","src":"2321:2:53"},"nativeSrc":"2321:41:53","nodeType":"YulFunctionCall","src":"2321:41:53"},"nativeSrc":"2318:128:53","nodeType":"YulIf","src":"2318:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:53","nodeType":"YulTypedName","src":"1941:6:53","type":""},{"name":"end","nativeSrc":"1949:3:53","nodeType":"YulTypedName","src":"1949:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:53","nodeType":"YulTypedName","src":"1957:8:53","type":""},{"name":"length","nativeSrc":"1967:6:53","nodeType":"YulTypedName","src":"1967:6:53","type":""}],"src":"1900:552:53"},{"body":{"nativeSrc":"2543:442:53","nodeType":"YulBlock","src":"2543:442:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:296:53","nodeType":"YulBlock","src":"2682:296:53","statements":[{"nativeSrc":"2697:45:53","nodeType":"YulVariableDeclaration","src":"2697:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:53","nodeType":"YulIdentifier","src":"2728:9:53"},{"kind":"number","nativeSrc":"2739:1:53","nodeType":"YulLiteral","src":"2739:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:53","nodeType":"YulIdentifier","src":"2724:3:53"},"nativeSrc":"2724:17:53","nodeType":"YulFunctionCall","src":"2724:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:53","nodeType":"YulIdentifier","src":"2711:12:53"},"nativeSrc":"2711:31:53","nodeType":"YulFunctionCall","src":"2711:31:53"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"body":{"nativeSrc":"2789:83:53","nodeType":"YulBlock","src":"2789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:53","nodeType":"YulIdentifier","src":"2791:77:53"},"nativeSrc":"2791:79:53","nodeType":"YulFunctionCall","src":"2791:79:53"},"nativeSrc":"2791:79:53","nodeType":"YulExpressionStatement","src":"2791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},{"kind":"number","nativeSrc":"2769:18:53","nodeType":"YulLiteral","src":"2769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:53","nodeType":"YulIdentifier","src":"2758:2:53"},"nativeSrc":"2758:30:53","nodeType":"YulFunctionCall","src":"2758:30:53"},"nativeSrc":"2755:117:53","nodeType":"YulIf","src":"2755:117:53"},{"nativeSrc":"2886:82:53","nodeType":"YulAssignment","src":"2886:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"},{"name":"offset","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"}],"functionName":{"name":"add","nativeSrc":"2936:3:53","nodeType":"YulIdentifier","src":"2936:3:53"},"nativeSrc":"2936:22:53","nodeType":"YulFunctionCall","src":"2936:22:53"},{"name":"dataEnd","nativeSrc":"2960:7:53","nodeType":"YulIdentifier","src":"2960:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:53","nodeType":"YulIdentifier","src":"2904:31:53"},"nativeSrc":"2904:64:53","nodeType":"YulFunctionCall","src":"2904:64:53"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:53","nodeType":"YulIdentifier","src":"2886:6:53"},{"name":"value1","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:53","nodeType":"YulTypedName","src":"2505:9:53","type":""},{"name":"dataEnd","nativeSrc":"2516:7:53","nodeType":"YulTypedName","src":"2516:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:53","nodeType":"YulTypedName","src":"2528:6:53","type":""},{"name":"value1","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2458:527:53"},{"body":{"nativeSrc":"3049:40:53","nodeType":"YulBlock","src":"3049:40:53","statements":[{"nativeSrc":"3060:22:53","nodeType":"YulAssignment","src":"3060:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"}],"functionName":{"name":"mload","nativeSrc":"3070:5:53","nodeType":"YulIdentifier","src":"3070:5:53"},"nativeSrc":"3070:12:53","nodeType":"YulFunctionCall","src":"3070:12:53"},"variableNames":[{"name":"length","nativeSrc":"3060:6:53","nodeType":"YulIdentifier","src":"3060:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:53","nodeType":"YulTypedName","src":"3032:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:53","nodeType":"YulTypedName","src":"3042:6:53","type":""}],"src":"2991:98:53"},{"body":{"nativeSrc":"3190:73:53","nodeType":"YulBlock","src":"3190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"},{"name":"length","nativeSrc":"3212:6:53","nodeType":"YulIdentifier","src":"3212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:53","nodeType":"YulIdentifier","src":"3200:6:53"},"nativeSrc":"3200:19:53","nodeType":"YulFunctionCall","src":"3200:19:53"},"nativeSrc":"3200:19:53","nodeType":"YulExpressionStatement","src":"3200:19:53"},{"nativeSrc":"3228:29:53","nodeType":"YulAssignment","src":"3228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:53","nodeType":"YulIdentifier","src":"3247:3:53"},{"kind":"number","nativeSrc":"3252:4:53","nodeType":"YulLiteral","src":"3252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:53","nodeType":"YulIdentifier","src":"3243:3:53"},"nativeSrc":"3243:14:53","nodeType":"YulFunctionCall","src":"3243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:53","nodeType":"YulIdentifier","src":"3228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:53","nodeType":"YulTypedName","src":"3162:3:53","type":""},{"name":"length","nativeSrc":"3167:6:53","nodeType":"YulTypedName","src":"3167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:53","nodeType":"YulTypedName","src":"3178:11:53","type":""}],"src":"3095:168:53"},{"body":{"nativeSrc":"3331:77:53","nodeType":"YulBlock","src":"3331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:53","nodeType":"YulIdentifier","src":"3348:3:53"},{"name":"src","nativeSrc":"3353:3:53","nodeType":"YulIdentifier","src":"3353:3:53"},{"name":"length","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:53","nodeType":"YulIdentifier","src":"3342:5:53"},"nativeSrc":"3342:23:53","nodeType":"YulFunctionCall","src":"3342:23:53"},"nativeSrc":"3342:23:53","nodeType":"YulExpressionStatement","src":"3342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:53","nodeType":"YulIdentifier","src":"3385:3:53"},{"name":"length","nativeSrc":"3390:6:53","nodeType":"YulIdentifier","src":"3390:6:53"}],"functionName":{"name":"add","nativeSrc":"3381:3:53","nodeType":"YulIdentifier","src":"3381:3:53"},"nativeSrc":"3381:16:53","nodeType":"YulFunctionCall","src":"3381:16:53"},{"kind":"number","nativeSrc":"3399:1:53","nodeType":"YulLiteral","src":"3399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:53","nodeType":"YulIdentifier","src":"3374:6:53"},"nativeSrc":"3374:27:53","nodeType":"YulFunctionCall","src":"3374:27:53"},"nativeSrc":"3374:27:53","nodeType":"YulExpressionStatement","src":"3374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:53","nodeType":"YulTypedName","src":"3313:3:53","type":""},{"name":"dst","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""},{"name":"length","nativeSrc":"3323:6:53","nodeType":"YulTypedName","src":"3323:6:53","type":""}],"src":"3269:139:53"},{"body":{"nativeSrc":"3462:54:53","nodeType":"YulBlock","src":"3462:54:53","statements":[{"nativeSrc":"3472:38:53","nodeType":"YulAssignment","src":"3472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:53","nodeType":"YulIdentifier","src":"3490:5:53"},{"kind":"number","nativeSrc":"3497:2:53","nodeType":"YulLiteral","src":"3497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:53","nodeType":"YulIdentifier","src":"3486:3:53"},"nativeSrc":"3486:14:53","nodeType":"YulFunctionCall","src":"3486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:53","nodeType":"YulLiteral","src":"3506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:53","nodeType":"YulIdentifier","src":"3502:3:53"},"nativeSrc":"3502:7:53","nodeType":"YulFunctionCall","src":"3502:7:53"}],"functionName":{"name":"and","nativeSrc":"3482:3:53","nodeType":"YulIdentifier","src":"3482:3:53"},"nativeSrc":"3482:28:53","nodeType":"YulFunctionCall","src":"3482:28:53"},"variableNames":[{"name":"result","nativeSrc":"3472:6:53","nodeType":"YulIdentifier","src":"3472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:53","nodeType":"YulTypedName","src":"3445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:53","nodeType":"YulTypedName","src":"3455:6:53","type":""}],"src":"3414:102:53"},{"body":{"nativeSrc":"3612:283:53","nodeType":"YulBlock","src":"3612:283:53","statements":[{"nativeSrc":"3622:52:53","nodeType":"YulVariableDeclaration","src":"3622:52:53","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:53","nodeType":"YulIdentifier","src":"3668:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:53","nodeType":"YulIdentifier","src":"3636:31:53"},"nativeSrc":"3636:38:53","nodeType":"YulFunctionCall","src":"3636:38:53"},"variables":[{"name":"length","nativeSrc":"3626:6:53","nodeType":"YulTypedName","src":"3626:6:53","type":""}]},{"nativeSrc":"3683:77:53","nodeType":"YulAssignment","src":"3683:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},{"name":"length","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:53","nodeType":"YulIdentifier","src":"3690:57:53"},"nativeSrc":"3690:70:53","nodeType":"YulFunctionCall","src":"3690:70:53"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:53","nodeType":"YulIdentifier","src":"3683:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:53","nodeType":"YulIdentifier","src":"3808:5:53"},{"kind":"number","nativeSrc":"3815:4:53","nodeType":"YulLiteral","src":"3815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:16:53","nodeType":"YulFunctionCall","src":"3804:16:53"},{"name":"pos","nativeSrc":"3822:3:53","nodeType":"YulIdentifier","src":"3822:3:53"},{"name":"length","nativeSrc":"3827:6:53","nodeType":"YulIdentifier","src":"3827:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:53","nodeType":"YulIdentifier","src":"3769:34:53"},"nativeSrc":"3769:65:53","nodeType":"YulFunctionCall","src":"3769:65:53"},"nativeSrc":"3769:65:53","nodeType":"YulExpressionStatement","src":"3769:65:53"},{"nativeSrc":"3843:46:53","nodeType":"YulAssignment","src":"3843:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:53","nodeType":"YulIdentifier","src":"3854:3:53"},{"arguments":[{"name":"length","nativeSrc":"3881:6:53","nodeType":"YulIdentifier","src":"3881:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:53","nodeType":"YulIdentifier","src":"3859:21:53"},"nativeSrc":"3859:29:53","nodeType":"YulFunctionCall","src":"3859:29:53"}],"functionName":{"name":"add","nativeSrc":"3850:3:53","nodeType":"YulIdentifier","src":"3850:3:53"},"nativeSrc":"3850:39:53","nodeType":"YulFunctionCall","src":"3850:39:53"},"variableNames":[{"name":"end","nativeSrc":"3843:3:53","nodeType":"YulIdentifier","src":"3843:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:53","nodeType":"YulTypedName","src":"3593:5:53","type":""},{"name":"pos","nativeSrc":"3600:3:53","nodeType":"YulTypedName","src":"3600:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:53","nodeType":"YulTypedName","src":"3608:3:53","type":""}],"src":"3522:373:53"},{"body":{"nativeSrc":"4039:269:53","nodeType":"YulBlock","src":"4039:269:53","statements":[{"nativeSrc":"4049:26:53","nodeType":"YulAssignment","src":"4049:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4061:9:53","nodeType":"YulIdentifier","src":"4061:9:53"},{"kind":"number","nativeSrc":"4072:2:53","nodeType":"YulLiteral","src":"4072:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4057:3:53","nodeType":"YulIdentifier","src":"4057:3:53"},"nativeSrc":"4057:18:53","nodeType":"YulFunctionCall","src":"4057:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4049:4:53","nodeType":"YulIdentifier","src":"4049:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4123:6:53","nodeType":"YulIdentifier","src":"4123:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4136:9:53","nodeType":"YulIdentifier","src":"4136:9:53"},{"kind":"number","nativeSrc":"4147:1:53","nodeType":"YulLiteral","src":"4147:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4132:3:53","nodeType":"YulIdentifier","src":"4132:3:53"},"nativeSrc":"4132:17:53","nodeType":"YulFunctionCall","src":"4132:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4085:37:53","nodeType":"YulIdentifier","src":"4085:37:53"},"nativeSrc":"4085:65:53","nodeType":"YulFunctionCall","src":"4085:65:53"},"nativeSrc":"4085:65:53","nodeType":"YulExpressionStatement","src":"4085:65:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4171:9:53","nodeType":"YulIdentifier","src":"4171:9:53"},{"kind":"number","nativeSrc":"4182:2:53","nodeType":"YulLiteral","src":"4182:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4167:3:53","nodeType":"YulIdentifier","src":"4167:3:53"},"nativeSrc":"4167:18:53","nodeType":"YulFunctionCall","src":"4167:18:53"},{"arguments":[{"name":"tail","nativeSrc":"4191:4:53","nodeType":"YulIdentifier","src":"4191:4:53"},{"name":"headStart","nativeSrc":"4197:9:53","nodeType":"YulIdentifier","src":"4197:9:53"}],"functionName":{"name":"sub","nativeSrc":"4187:3:53","nodeType":"YulIdentifier","src":"4187:3:53"},"nativeSrc":"4187:20:53","nodeType":"YulFunctionCall","src":"4187:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4160:6:53","nodeType":"YulIdentifier","src":"4160:6:53"},"nativeSrc":"4160:48:53","nodeType":"YulFunctionCall","src":"4160:48:53"},"nativeSrc":"4160:48:53","nodeType":"YulExpressionStatement","src":"4160:48:53"},{"nativeSrc":"4217:84:53","nodeType":"YulAssignment","src":"4217:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"4287:6:53","nodeType":"YulIdentifier","src":"4287:6:53"},{"name":"tail","nativeSrc":"4296:4:53","nodeType":"YulIdentifier","src":"4296:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4225:61:53","nodeType":"YulIdentifier","src":"4225:61:53"},"nativeSrc":"4225:76:53","nodeType":"YulFunctionCall","src":"4225:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:53","nodeType":"YulIdentifier","src":"4217:4:53"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:407:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4003:9:53","nodeType":"YulTypedName","src":"4003:9:53","type":""},{"name":"value1","nativeSrc":"4015:6:53","nodeType":"YulTypedName","src":"4015:6:53","type":""},{"name":"value0","nativeSrc":"4023:6:53","nodeType":"YulTypedName","src":"4023:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4034:4:53","nodeType":"YulTypedName","src":"4034:4:53","type":""}],"src":"3901:407:53"},{"body":{"nativeSrc":"4359:81:53","nodeType":"YulBlock","src":"4359:81:53","statements":[{"nativeSrc":"4369:65:53","nodeType":"YulAssignment","src":"4369:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:53","nodeType":"YulIdentifier","src":"4384:5:53"},{"kind":"number","nativeSrc":"4391:42:53","nodeType":"YulLiteral","src":"4391:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4380:3:53","nodeType":"YulIdentifier","src":"4380:3:53"},"nativeSrc":"4380:54:53","nodeType":"YulFunctionCall","src":"4380:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:53","nodeType":"YulIdentifier","src":"4369:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4314:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:53","nodeType":"YulTypedName","src":"4341:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:53","nodeType":"YulTypedName","src":"4351:7:53","type":""}],"src":"4314:126:53"},{"body":{"nativeSrc":"4478:28:53","nodeType":"YulBlock","src":"4478:28:53","statements":[{"nativeSrc":"4488:12:53","nodeType":"YulAssignment","src":"4488:12:53","value":{"name":"value","nativeSrc":"4495:5:53","nodeType":"YulIdentifier","src":"4495:5:53"},"variableNames":[{"name":"ret","nativeSrc":"4488:3:53","nodeType":"YulIdentifier","src":"4488:3:53"}]}]},"name":"identity","nativeSrc":"4446:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4464:5:53","nodeType":"YulTypedName","src":"4464:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4474:3:53","nodeType":"YulTypedName","src":"4474:3:53","type":""}],"src":"4446:60:53"},{"body":{"nativeSrc":"4572:82:53","nodeType":"YulBlock","src":"4572:82:53","statements":[{"nativeSrc":"4582:66:53","nodeType":"YulAssignment","src":"4582:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4640:5:53","nodeType":"YulIdentifier","src":"4640:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4622:17:53","nodeType":"YulIdentifier","src":"4622:17:53"},"nativeSrc":"4622:24:53","nodeType":"YulFunctionCall","src":"4622:24:53"}],"functionName":{"name":"identity","nativeSrc":"4613:8:53","nodeType":"YulIdentifier","src":"4613:8:53"},"nativeSrc":"4613:34:53","nodeType":"YulFunctionCall","src":"4613:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4595:17:53","nodeType":"YulIdentifier","src":"4595:17:53"},"nativeSrc":"4595:53:53","nodeType":"YulFunctionCall","src":"4595:53:53"},"variableNames":[{"name":"converted","nativeSrc":"4582:9:53","nodeType":"YulIdentifier","src":"4582:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4512:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4552:5:53","nodeType":"YulTypedName","src":"4552:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4562:9:53","nodeType":"YulTypedName","src":"4562:9:53","type":""}],"src":"4512:142:53"},{"body":{"nativeSrc":"4720:66:53","nodeType":"YulBlock","src":"4720:66:53","statements":[{"nativeSrc":"4730:50:53","nodeType":"YulAssignment","src":"4730:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4774:5:53","nodeType":"YulIdentifier","src":"4774:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4743:30:53","nodeType":"YulIdentifier","src":"4743:30:53"},"nativeSrc":"4743:37:53","nodeType":"YulFunctionCall","src":"4743:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4730:9:53","nodeType":"YulIdentifier","src":"4730:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"4660:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4700:5:53","nodeType":"YulTypedName","src":"4700:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4710:9:53","nodeType":"YulTypedName","src":"4710:9:53","type":""}],"src":"4660:126:53"},{"body":{"nativeSrc":"4871:66:53","nodeType":"YulBlock","src":"4871:66:53","statements":[{"nativeSrc":"4881:50:53","nodeType":"YulAssignment","src":"4881:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4925:5:53","nodeType":"YulIdentifier","src":"4925:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4894:30:53","nodeType":"YulIdentifier","src":"4894:30:53"},"nativeSrc":"4894:37:53","nodeType":"YulFunctionCall","src":"4894:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4881:9:53","nodeType":"YulIdentifier","src":"4881:9:53"}]}]},"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"4792:145:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4851:5:53","nodeType":"YulTypedName","src":"4851:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4861:9:53","nodeType":"YulTypedName","src":"4861:9:53","type":""}],"src":"4792:145:53"},{"body":{"nativeSrc":"5027:85:53","nodeType":"YulBlock","src":"5027:85:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5044:3:53","nodeType":"YulIdentifier","src":"5044:3:53"},{"arguments":[{"name":"value","nativeSrc":"5099:5:53","nodeType":"YulIdentifier","src":"5099:5:53"}],"functionName":{"name":"convert_t_contract$_Validator_$18282_to_t_address","nativeSrc":"5049:49:53","nodeType":"YulIdentifier","src":"5049:49:53"},"nativeSrc":"5049:56:53","nodeType":"YulFunctionCall","src":"5049:56:53"}],"functionName":{"name":"mstore","nativeSrc":"5037:6:53","nodeType":"YulIdentifier","src":"5037:6:53"},"nativeSrc":"5037:69:53","nodeType":"YulFunctionCall","src":"5037:69:53"},"nativeSrc":"5037:69:53","nodeType":"YulExpressionStatement","src":"5037:69:53"}]},"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"4943:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5015:5:53","nodeType":"YulTypedName","src":"5015:5:53","type":""},{"name":"pos","nativeSrc":"5022:3:53","nodeType":"YulTypedName","src":"5022:3:53","type":""}],"src":"4943:169:53"},{"body":{"nativeSrc":"5235:143:53","nodeType":"YulBlock","src":"5235:143:53","statements":[{"nativeSrc":"5245:26:53","nodeType":"YulAssignment","src":"5245:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5257:9:53","nodeType":"YulIdentifier","src":"5257:9:53"},{"kind":"number","nativeSrc":"5268:2:53","nodeType":"YulLiteral","src":"5268:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5253:3:53","nodeType":"YulIdentifier","src":"5253:3:53"},"nativeSrc":"5253:18:53","nodeType":"YulFunctionCall","src":"5253:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5245:4:53","nodeType":"YulIdentifier","src":"5245:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5344:6:53","nodeType":"YulIdentifier","src":"5344:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5357:9:53","nodeType":"YulIdentifier","src":"5357:9:53"},{"kind":"number","nativeSrc":"5368:1:53","nodeType":"YulLiteral","src":"5368:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5353:3:53","nodeType":"YulIdentifier","src":"5353:3:53"},"nativeSrc":"5353:17:53","nodeType":"YulFunctionCall","src":"5353:17:53"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack","nativeSrc":"5281:62:53","nodeType":"YulIdentifier","src":"5281:62:53"},"nativeSrc":"5281:90:53","nodeType":"YulFunctionCall","src":"5281:90:53"},"nativeSrc":"5281:90:53","nodeType":"YulExpressionStatement","src":"5281:90:53"}]},"name":"abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed","nativeSrc":"5118:260:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5207:9:53","nodeType":"YulTypedName","src":"5207:9:53","type":""},{"name":"value0","nativeSrc":"5219:6:53","nodeType":"YulTypedName","src":"5219:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5230:4:53","nodeType":"YulTypedName","src":"5230:4:53","type":""}],"src":"5118:260:53"},{"body":{"nativeSrc":"5429:32:53","nodeType":"YulBlock","src":"5429:32:53","statements":[{"nativeSrc":"5439:16:53","nodeType":"YulAssignment","src":"5439:16:53","value":{"name":"value","nativeSrc":"5450:5:53","nodeType":"YulIdentifier","src":"5450:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5439:7:53","nodeType":"YulIdentifier","src":"5439:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5384:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5411:5:53","nodeType":"YulTypedName","src":"5411:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5421:7:53","nodeType":"YulTypedName","src":"5421:7:53","type":""}],"src":"5384:77:53"},{"body":{"nativeSrc":"5532:53:53","nodeType":"YulBlock","src":"5532:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5549:3:53","nodeType":"YulIdentifier","src":"5549:3:53"},{"arguments":[{"name":"value","nativeSrc":"5572:5:53","nodeType":"YulIdentifier","src":"5572:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5554:17:53","nodeType":"YulIdentifier","src":"5554:17:53"},"nativeSrc":"5554:24:53","nodeType":"YulFunctionCall","src":"5554:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5542:6:53","nodeType":"YulIdentifier","src":"5542:6:53"},"nativeSrc":"5542:37:53","nodeType":"YulFunctionCall","src":"5542:37:53"},"nativeSrc":"5542:37:53","nodeType":"YulExpressionStatement","src":"5542:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5467:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5520:5:53","nodeType":"YulTypedName","src":"5520:5:53","type":""},{"name":"pos","nativeSrc":"5527:3:53","nodeType":"YulTypedName","src":"5527:3:53","type":""}],"src":"5467:118:53"},{"body":{"nativeSrc":"5689:124:53","nodeType":"YulBlock","src":"5689:124:53","statements":[{"nativeSrc":"5699:26:53","nodeType":"YulAssignment","src":"5699:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5711:9:53","nodeType":"YulIdentifier","src":"5711:9:53"},{"kind":"number","nativeSrc":"5722:2:53","nodeType":"YulLiteral","src":"5722:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5707:3:53","nodeType":"YulIdentifier","src":"5707:3:53"},"nativeSrc":"5707:18:53","nodeType":"YulFunctionCall","src":"5707:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5699:4:53","nodeType":"YulIdentifier","src":"5699:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5779:6:53","nodeType":"YulIdentifier","src":"5779:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5792:9:53","nodeType":"YulIdentifier","src":"5792:9:53"},{"kind":"number","nativeSrc":"5803:1:53","nodeType":"YulLiteral","src":"5803:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5788:3:53","nodeType":"YulIdentifier","src":"5788:3:53"},"nativeSrc":"5788:17:53","nodeType":"YulFunctionCall","src":"5788:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5735:43:53","nodeType":"YulIdentifier","src":"5735:43:53"},"nativeSrc":"5735:71:53","nodeType":"YulFunctionCall","src":"5735:71:53"},"nativeSrc":"5735:71:53","nodeType":"YulExpressionStatement","src":"5735:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5591:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5661:9:53","nodeType":"YulTypedName","src":"5661:9:53","type":""},{"name":"value0","nativeSrc":"5673:6:53","nodeType":"YulTypedName","src":"5673:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5684:4:53","nodeType":"YulTypedName","src":"5684:4:53","type":""}],"src":"5591:222:53"},{"body":{"nativeSrc":"5864:51:53","nodeType":"YulBlock","src":"5864:51:53","statements":[{"nativeSrc":"5874:35:53","nodeType":"YulAssignment","src":"5874:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5903:5:53","nodeType":"YulIdentifier","src":"5903:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5885:17:53","nodeType":"YulIdentifier","src":"5885:17:53"},"nativeSrc":"5885:24:53","nodeType":"YulFunctionCall","src":"5885:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5874:7:53","nodeType":"YulIdentifier","src":"5874:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5819:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5846:5:53","nodeType":"YulTypedName","src":"5846:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5856:7:53","nodeType":"YulTypedName","src":"5856:7:53","type":""}],"src":"5819:96:53"},{"body":{"nativeSrc":"5986:53:53","nodeType":"YulBlock","src":"5986:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6003:3:53","nodeType":"YulIdentifier","src":"6003:3:53"},{"arguments":[{"name":"value","nativeSrc":"6026:5:53","nodeType":"YulIdentifier","src":"6026:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6008:17:53","nodeType":"YulIdentifier","src":"6008:17:53"},"nativeSrc":"6008:24:53","nodeType":"YulFunctionCall","src":"6008:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5996:6:53","nodeType":"YulIdentifier","src":"5996:6:53"},"nativeSrc":"5996:37:53","nodeType":"YulFunctionCall","src":"5996:37:53"},"nativeSrc":"5996:37:53","nodeType":"YulExpressionStatement","src":"5996:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5921:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5974:5:53","nodeType":"YulTypedName","src":"5974:5:53","type":""},{"name":"pos","nativeSrc":"5981:3:53","nodeType":"YulTypedName","src":"5981:3:53","type":""}],"src":"5921:118:53"},{"body":{"nativeSrc":"6143:124:53","nodeType":"YulBlock","src":"6143:124:53","statements":[{"nativeSrc":"6153:26:53","nodeType":"YulAssignment","src":"6153:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6165:9:53","nodeType":"YulIdentifier","src":"6165:9:53"},{"kind":"number","nativeSrc":"6176:2:53","nodeType":"YulLiteral","src":"6176:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6161:3:53","nodeType":"YulIdentifier","src":"6161:3:53"},"nativeSrc":"6161:18:53","nodeType":"YulFunctionCall","src":"6161:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6153:4:53","nodeType":"YulIdentifier","src":"6153:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6233:6:53","nodeType":"YulIdentifier","src":"6233:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6246:9:53","nodeType":"YulIdentifier","src":"6246:9:53"},{"kind":"number","nativeSrc":"6257:1:53","nodeType":"YulLiteral","src":"6257:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6242:3:53","nodeType":"YulIdentifier","src":"6242:3:53"},"nativeSrc":"6242:17:53","nodeType":"YulFunctionCall","src":"6242:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6189:43:53","nodeType":"YulIdentifier","src":"6189:43:53"},"nativeSrc":"6189:71:53","nodeType":"YulFunctionCall","src":"6189:71:53"},"nativeSrc":"6189:71:53","nodeType":"YulExpressionStatement","src":"6189:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6045:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6115:9:53","nodeType":"YulTypedName","src":"6115:9:53","type":""},{"name":"value0","nativeSrc":"6127:6:53","nodeType":"YulTypedName","src":"6127:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6138:4:53","nodeType":"YulTypedName","src":"6138:4:53","type":""}],"src":"6045:222:53"},{"body":{"nativeSrc":"6316:79:53","nodeType":"YulBlock","src":"6316:79:53","statements":[{"body":{"nativeSrc":"6373:16:53","nodeType":"YulBlock","src":"6373:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6382:1:53","nodeType":"YulLiteral","src":"6382:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6385:1:53","nodeType":"YulLiteral","src":"6385:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6375:6:53","nodeType":"YulIdentifier","src":"6375:6:53"},"nativeSrc":"6375:12:53","nodeType":"YulFunctionCall","src":"6375:12:53"},"nativeSrc":"6375:12:53","nodeType":"YulExpressionStatement","src":"6375:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6339:5:53","nodeType":"YulIdentifier","src":"6339:5:53"},{"arguments":[{"name":"value","nativeSrc":"6364:5:53","nodeType":"YulIdentifier","src":"6364:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6346:17:53","nodeType":"YulIdentifier","src":"6346:17:53"},"nativeSrc":"6346:24:53","nodeType":"YulFunctionCall","src":"6346:24:53"}],"functionName":{"name":"eq","nativeSrc":"6336:2:53","nodeType":"YulIdentifier","src":"6336:2:53"},"nativeSrc":"6336:35:53","nodeType":"YulFunctionCall","src":"6336:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6329:6:53","nodeType":"YulIdentifier","src":"6329:6:53"},"nativeSrc":"6329:43:53","nodeType":"YulFunctionCall","src":"6329:43:53"},"nativeSrc":"6326:63:53","nodeType":"YulIf","src":"6326:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"6273:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6309:5:53","nodeType":"YulTypedName","src":"6309:5:53","type":""}],"src":"6273:122:53"},{"body":{"nativeSrc":"6453:87:53","nodeType":"YulBlock","src":"6453:87:53","statements":[{"nativeSrc":"6463:29:53","nodeType":"YulAssignment","src":"6463:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6485:6:53","nodeType":"YulIdentifier","src":"6485:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6472:12:53","nodeType":"YulIdentifier","src":"6472:12:53"},"nativeSrc":"6472:20:53","nodeType":"YulFunctionCall","src":"6472:20:53"},"variableNames":[{"name":"value","nativeSrc":"6463:5:53","nodeType":"YulIdentifier","src":"6463:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6528:5:53","nodeType":"YulIdentifier","src":"6528:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6501:26:53","nodeType":"YulIdentifier","src":"6501:26:53"},"nativeSrc":"6501:33:53","nodeType":"YulFunctionCall","src":"6501:33:53"},"nativeSrc":"6501:33:53","nodeType":"YulExpressionStatement","src":"6501:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"6401:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6431:6:53","nodeType":"YulTypedName","src":"6431:6:53","type":""},{"name":"end","nativeSrc":"6439:3:53","nodeType":"YulTypedName","src":"6439:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6447:5:53","nodeType":"YulTypedName","src":"6447:5:53","type":""}],"src":"6401:139:53"},{"body":{"nativeSrc":"6612:263:53","nodeType":"YulBlock","src":"6612:263:53","statements":[{"body":{"nativeSrc":"6658:83:53","nodeType":"YulBlock","src":"6658:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6660:77:53","nodeType":"YulIdentifier","src":"6660:77:53"},"nativeSrc":"6660:79:53","nodeType":"YulFunctionCall","src":"6660:79:53"},"nativeSrc":"6660:79:53","nodeType":"YulExpressionStatement","src":"6660:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6633:7:53","nodeType":"YulIdentifier","src":"6633:7:53"},{"name":"headStart","nativeSrc":"6642:9:53","nodeType":"YulIdentifier","src":"6642:9:53"}],"functionName":{"name":"sub","nativeSrc":"6629:3:53","nodeType":"YulIdentifier","src":"6629:3:53"},"nativeSrc":"6629:23:53","nodeType":"YulFunctionCall","src":"6629:23:53"},{"kind":"number","nativeSrc":"6654:2:53","nodeType":"YulLiteral","src":"6654:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6625:3:53","nodeType":"YulIdentifier","src":"6625:3:53"},"nativeSrc":"6625:32:53","nodeType":"YulFunctionCall","src":"6625:32:53"},"nativeSrc":"6622:119:53","nodeType":"YulIf","src":"6622:119:53"},{"nativeSrc":"6751:117:53","nodeType":"YulBlock","src":"6751:117:53","statements":[{"nativeSrc":"6766:15:53","nodeType":"YulVariableDeclaration","src":"6766:15:53","value":{"kind":"number","nativeSrc":"6780:1:53","nodeType":"YulLiteral","src":"6780:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6770:6:53","nodeType":"YulTypedName","src":"6770:6:53","type":""}]},{"nativeSrc":"6795:63:53","nodeType":"YulAssignment","src":"6795:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6830:9:53","nodeType":"YulIdentifier","src":"6830:9:53"},{"name":"offset","nativeSrc":"6841:6:53","nodeType":"YulIdentifier","src":"6841:6:53"}],"functionName":{"name":"add","nativeSrc":"6826:3:53","nodeType":"YulIdentifier","src":"6826:3:53"},"nativeSrc":"6826:22:53","nodeType":"YulFunctionCall","src":"6826:22:53"},{"name":"dataEnd","nativeSrc":"6850:7:53","nodeType":"YulIdentifier","src":"6850:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6805:20:53","nodeType":"YulIdentifier","src":"6805:20:53"},"nativeSrc":"6805:53:53","nodeType":"YulFunctionCall","src":"6805:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6795:6:53","nodeType":"YulIdentifier","src":"6795:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6546:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6582:9:53","nodeType":"YulTypedName","src":"6582:9:53","type":""},{"name":"dataEnd","nativeSrc":"6593:7:53","nodeType":"YulTypedName","src":"6593:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6605:6:53","nodeType":"YulTypedName","src":"6605:6:53","type":""}],"src":"6546:329:53"},{"body":{"nativeSrc":"6997:193:53","nodeType":"YulBlock","src":"6997:193:53","statements":[{"nativeSrc":"7007:26:53","nodeType":"YulAssignment","src":"7007:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7019:9:53","nodeType":"YulIdentifier","src":"7019:9:53"},{"kind":"number","nativeSrc":"7030:2:53","nodeType":"YulLiteral","src":"7030:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7015:3:53","nodeType":"YulIdentifier","src":"7015:3:53"},"nativeSrc":"7015:18:53","nodeType":"YulFunctionCall","src":"7015:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7007:4:53","nodeType":"YulIdentifier","src":"7007:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7054:9:53","nodeType":"YulIdentifier","src":"7054:9:53"},{"kind":"number","nativeSrc":"7065:1:53","nodeType":"YulLiteral","src":"7065:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7050:3:53","nodeType":"YulIdentifier","src":"7050:3:53"},"nativeSrc":"7050:17:53","nodeType":"YulFunctionCall","src":"7050:17:53"},{"arguments":[{"name":"tail","nativeSrc":"7073:4:53","nodeType":"YulIdentifier","src":"7073:4:53"},{"name":"headStart","nativeSrc":"7079:9:53","nodeType":"YulIdentifier","src":"7079:9:53"}],"functionName":{"name":"sub","nativeSrc":"7069:3:53","nodeType":"YulIdentifier","src":"7069:3:53"},"nativeSrc":"7069:20:53","nodeType":"YulFunctionCall","src":"7069:20:53"}],"functionName":{"name":"mstore","nativeSrc":"7043:6:53","nodeType":"YulIdentifier","src":"7043:6:53"},"nativeSrc":"7043:47:53","nodeType":"YulFunctionCall","src":"7043:47:53"},"nativeSrc":"7043:47:53","nodeType":"YulExpressionStatement","src":"7043:47:53"},{"nativeSrc":"7099:84:53","nodeType":"YulAssignment","src":"7099:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"7169:6:53","nodeType":"YulIdentifier","src":"7169:6:53"},{"name":"tail","nativeSrc":"7178:4:53","nodeType":"YulIdentifier","src":"7178:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7107:61:53","nodeType":"YulIdentifier","src":"7107:61:53"},"nativeSrc":"7107:76:53","nodeType":"YulFunctionCall","src":"7107:76:53"},"variableNames":[{"name":"tail","nativeSrc":"7099:4:53","nodeType":"YulIdentifier","src":"7099:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6881:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6969:9:53","nodeType":"YulTypedName","src":"6969:9:53","type":""},{"name":"value0","nativeSrc":"6981:6:53","nodeType":"YulTypedName","src":"6981:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6992:4:53","nodeType":"YulTypedName","src":"6992:4:53","type":""}],"src":"6881:309:53"},{"body":{"nativeSrc":"7259:52:53","nodeType":"YulBlock","src":"7259:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7276:3:53","nodeType":"YulIdentifier","src":"7276:3:53"},{"arguments":[{"name":"value","nativeSrc":"7298:5:53","nodeType":"YulIdentifier","src":"7298:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"7281:16:53","nodeType":"YulIdentifier","src":"7281:16:53"},"nativeSrc":"7281:23:53","nodeType":"YulFunctionCall","src":"7281:23:53"}],"functionName":{"name":"mstore","nativeSrc":"7269:6:53","nodeType":"YulIdentifier","src":"7269:6:53"},"nativeSrc":"7269:36:53","nodeType":"YulFunctionCall","src":"7269:36:53"},"nativeSrc":"7269:36:53","nodeType":"YulExpressionStatement","src":"7269:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"7196:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7247:5:53","nodeType":"YulTypedName","src":"7247:5:53","type":""},{"name":"pos","nativeSrc":"7254:3:53","nodeType":"YulTypedName","src":"7254:3:53","type":""}],"src":"7196:115:53"},{"body":{"nativeSrc":"7413:122:53","nodeType":"YulBlock","src":"7413:122:53","statements":[{"nativeSrc":"7423:26:53","nodeType":"YulAssignment","src":"7423:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7435:9:53","nodeType":"YulIdentifier","src":"7435:9:53"},{"kind":"number","nativeSrc":"7446:2:53","nodeType":"YulLiteral","src":"7446:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7431:3:53","nodeType":"YulIdentifier","src":"7431:3:53"},"nativeSrc":"7431:18:53","nodeType":"YulFunctionCall","src":"7431:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7423:4:53","nodeType":"YulIdentifier","src":"7423:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7501:6:53","nodeType":"YulIdentifier","src":"7501:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7514:9:53","nodeType":"YulIdentifier","src":"7514:9:53"},{"kind":"number","nativeSrc":"7525:1:53","nodeType":"YulLiteral","src":"7525:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7510:3:53","nodeType":"YulIdentifier","src":"7510:3:53"},"nativeSrc":"7510:17:53","nodeType":"YulFunctionCall","src":"7510:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"7459:41:53","nodeType":"YulIdentifier","src":"7459:41:53"},"nativeSrc":"7459:69:53","nodeType":"YulFunctionCall","src":"7459:69:53"},"nativeSrc":"7459:69:53","nodeType":"YulExpressionStatement","src":"7459:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"7317:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7385:9:53","nodeType":"YulTypedName","src":"7385:9:53","type":""},{"name":"value0","nativeSrc":"7397:6:53","nodeType":"YulTypedName","src":"7397:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7408:4:53","nodeType":"YulTypedName","src":"7408:4:53","type":""}],"src":"7317:218:53"},{"body":{"nativeSrc":"7584:79:53","nodeType":"YulBlock","src":"7584:79:53","statements":[{"body":{"nativeSrc":"7641:16:53","nodeType":"YulBlock","src":"7641:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7650:1:53","nodeType":"YulLiteral","src":"7650:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7653:1:53","nodeType":"YulLiteral","src":"7653:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7643:6:53","nodeType":"YulIdentifier","src":"7643:6:53"},"nativeSrc":"7643:12:53","nodeType":"YulFunctionCall","src":"7643:12:53"},"nativeSrc":"7643:12:53","nodeType":"YulExpressionStatement","src":"7643:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7607:5:53","nodeType":"YulIdentifier","src":"7607:5:53"},{"arguments":[{"name":"value","nativeSrc":"7632:5:53","nodeType":"YulIdentifier","src":"7632:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7614:17:53","nodeType":"YulIdentifier","src":"7614:17:53"},"nativeSrc":"7614:24:53","nodeType":"YulFunctionCall","src":"7614:24:53"}],"functionName":{"name":"eq","nativeSrc":"7604:2:53","nodeType":"YulIdentifier","src":"7604:2:53"},"nativeSrc":"7604:35:53","nodeType":"YulFunctionCall","src":"7604:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7597:6:53","nodeType":"YulIdentifier","src":"7597:6:53"},"nativeSrc":"7597:43:53","nodeType":"YulFunctionCall","src":"7597:43:53"},"nativeSrc":"7594:63:53","nodeType":"YulIf","src":"7594:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"7541:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7577:5:53","nodeType":"YulTypedName","src":"7577:5:53","type":""}],"src":"7541:122:53"},{"body":{"nativeSrc":"7721:87:53","nodeType":"YulBlock","src":"7721:87:53","statements":[{"nativeSrc":"7731:29:53","nodeType":"YulAssignment","src":"7731:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7753:6:53","nodeType":"YulIdentifier","src":"7753:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7740:12:53","nodeType":"YulIdentifier","src":"7740:12:53"},"nativeSrc":"7740:20:53","nodeType":"YulFunctionCall","src":"7740:20:53"},"variableNames":[{"name":"value","nativeSrc":"7731:5:53","nodeType":"YulIdentifier","src":"7731:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7796:5:53","nodeType":"YulIdentifier","src":"7796:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7769:26:53","nodeType":"YulIdentifier","src":"7769:26:53"},"nativeSrc":"7769:33:53","nodeType":"YulFunctionCall","src":"7769:33:53"},"nativeSrc":"7769:33:53","nodeType":"YulExpressionStatement","src":"7769:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"7669:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7699:6:53","nodeType":"YulTypedName","src":"7699:6:53","type":""},{"name":"end","nativeSrc":"7707:3:53","nodeType":"YulTypedName","src":"7707:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7715:5:53","nodeType":"YulTypedName","src":"7715:5:53","type":""}],"src":"7669:139:53"},{"body":{"nativeSrc":"7880:263:53","nodeType":"YulBlock","src":"7880:263:53","statements":[{"body":{"nativeSrc":"7926:83:53","nodeType":"YulBlock","src":"7926:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7928:77:53","nodeType":"YulIdentifier","src":"7928:77:53"},"nativeSrc":"7928:79:53","nodeType":"YulFunctionCall","src":"7928:79:53"},"nativeSrc":"7928:79:53","nodeType":"YulExpressionStatement","src":"7928:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7901:7:53","nodeType":"YulIdentifier","src":"7901:7:53"},{"name":"headStart","nativeSrc":"7910:9:53","nodeType":"YulIdentifier","src":"7910:9:53"}],"functionName":{"name":"sub","nativeSrc":"7897:3:53","nodeType":"YulIdentifier","src":"7897:3:53"},"nativeSrc":"7897:23:53","nodeType":"YulFunctionCall","src":"7897:23:53"},{"kind":"number","nativeSrc":"7922:2:53","nodeType":"YulLiteral","src":"7922:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7893:3:53","nodeType":"YulIdentifier","src":"7893:3:53"},"nativeSrc":"7893:32:53","nodeType":"YulFunctionCall","src":"7893:32:53"},"nativeSrc":"7890:119:53","nodeType":"YulIf","src":"7890:119:53"},{"nativeSrc":"8019:117:53","nodeType":"YulBlock","src":"8019:117:53","statements":[{"nativeSrc":"8034:15:53","nodeType":"YulVariableDeclaration","src":"8034:15:53","value":{"kind":"number","nativeSrc":"8048:1:53","nodeType":"YulLiteral","src":"8048:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8038:6:53","nodeType":"YulTypedName","src":"8038:6:53","type":""}]},{"nativeSrc":"8063:63:53","nodeType":"YulAssignment","src":"8063:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8098:9:53","nodeType":"YulIdentifier","src":"8098:9:53"},{"name":"offset","nativeSrc":"8109:6:53","nodeType":"YulIdentifier","src":"8109:6:53"}],"functionName":{"name":"add","nativeSrc":"8094:3:53","nodeType":"YulIdentifier","src":"8094:3:53"},"nativeSrc":"8094:22:53","nodeType":"YulFunctionCall","src":"8094:22:53"},{"name":"dataEnd","nativeSrc":"8118:7:53","nodeType":"YulIdentifier","src":"8118:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8073:20:53","nodeType":"YulIdentifier","src":"8073:20:53"},"nativeSrc":"8073:53:53","nodeType":"YulFunctionCall","src":"8073:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8063:6:53","nodeType":"YulIdentifier","src":"8063:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7814:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7850:9:53","nodeType":"YulTypedName","src":"7850:9:53","type":""},{"name":"dataEnd","nativeSrc":"7861:7:53","nodeType":"YulTypedName","src":"7861:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7873:6:53","nodeType":"YulTypedName","src":"7873:6:53","type":""}],"src":"7814:329:53"},{"body":{"nativeSrc":"8238:28:53","nodeType":"YulBlock","src":"8238:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8255:1:53","nodeType":"YulLiteral","src":"8255:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8258:1:53","nodeType":"YulLiteral","src":"8258:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8248:6:53","nodeType":"YulIdentifier","src":"8248:6:53"},"nativeSrc":"8248:12:53","nodeType":"YulFunctionCall","src":"8248:12:53"},"nativeSrc":"8248:12:53","nodeType":"YulExpressionStatement","src":"8248:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8149:117:53","nodeType":"YulFunctionDefinition","src":"8149:117:53"},{"body":{"nativeSrc":"8300:152:53","nodeType":"YulBlock","src":"8300:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8317:1:53","nodeType":"YulLiteral","src":"8317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8320:77:53","nodeType":"YulLiteral","src":"8320:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8310:6:53","nodeType":"YulIdentifier","src":"8310:6:53"},"nativeSrc":"8310:88:53","nodeType":"YulFunctionCall","src":"8310:88:53"},"nativeSrc":"8310:88:53","nodeType":"YulExpressionStatement","src":"8310:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8414:1:53","nodeType":"YulLiteral","src":"8414:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8417:4:53","nodeType":"YulLiteral","src":"8417:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8407:6:53","nodeType":"YulIdentifier","src":"8407:6:53"},"nativeSrc":"8407:15:53","nodeType":"YulFunctionCall","src":"8407:15:53"},"nativeSrc":"8407:15:53","nodeType":"YulExpressionStatement","src":"8407:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8438:1:53","nodeType":"YulLiteral","src":"8438:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8441:4:53","nodeType":"YulLiteral","src":"8441:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8431:6:53","nodeType":"YulIdentifier","src":"8431:6:53"},"nativeSrc":"8431:15:53","nodeType":"YulFunctionCall","src":"8431:15:53"},"nativeSrc":"8431:15:53","nodeType":"YulExpressionStatement","src":"8431:15:53"}]},"name":"panic_error_0x41","nativeSrc":"8272:180:53","nodeType":"YulFunctionDefinition","src":"8272:180:53"},{"body":{"nativeSrc":"8501:238:53","nodeType":"YulBlock","src":"8501:238:53","statements":[{"nativeSrc":"8511:58:53","nodeType":"YulVariableDeclaration","src":"8511:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8533:6:53","nodeType":"YulIdentifier","src":"8533:6:53"},{"arguments":[{"name":"size","nativeSrc":"8563:4:53","nodeType":"YulIdentifier","src":"8563:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8541:21:53","nodeType":"YulIdentifier","src":"8541:21:53"},"nativeSrc":"8541:27:53","nodeType":"YulFunctionCall","src":"8541:27:53"}],"functionName":{"name":"add","nativeSrc":"8529:3:53","nodeType":"YulIdentifier","src":"8529:3:53"},"nativeSrc":"8529:40:53","nodeType":"YulFunctionCall","src":"8529:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8515:10:53","nodeType":"YulTypedName","src":"8515:10:53","type":""}]},{"body":{"nativeSrc":"8680:22:53","nodeType":"YulBlock","src":"8680:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8682:16:53","nodeType":"YulIdentifier","src":"8682:16:53"},"nativeSrc":"8682:18:53","nodeType":"YulFunctionCall","src":"8682:18:53"},"nativeSrc":"8682:18:53","nodeType":"YulExpressionStatement","src":"8682:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8623:10:53","nodeType":"YulIdentifier","src":"8623:10:53"},{"kind":"number","nativeSrc":"8635:18:53","nodeType":"YulLiteral","src":"8635:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8620:2:53","nodeType":"YulIdentifier","src":"8620:2:53"},"nativeSrc":"8620:34:53","nodeType":"YulFunctionCall","src":"8620:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8659:10:53","nodeType":"YulIdentifier","src":"8659:10:53"},{"name":"memPtr","nativeSrc":"8671:6:53","nodeType":"YulIdentifier","src":"8671:6:53"}],"functionName":{"name":"lt","nativeSrc":"8656:2:53","nodeType":"YulIdentifier","src":"8656:2:53"},"nativeSrc":"8656:22:53","nodeType":"YulFunctionCall","src":"8656:22:53"}],"functionName":{"name":"or","nativeSrc":"8617:2:53","nodeType":"YulIdentifier","src":"8617:2:53"},"nativeSrc":"8617:62:53","nodeType":"YulFunctionCall","src":"8617:62:53"},"nativeSrc":"8614:88:53","nodeType":"YulIf","src":"8614:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8718:2:53","nodeType":"YulLiteral","src":"8718:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8722:10:53","nodeType":"YulIdentifier","src":"8722:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8711:6:53","nodeType":"YulIdentifier","src":"8711:6:53"},"nativeSrc":"8711:22:53","nodeType":"YulFunctionCall","src":"8711:22:53"},"nativeSrc":"8711:22:53","nodeType":"YulExpressionStatement","src":"8711:22:53"}]},"name":"finalize_allocation","nativeSrc":"8458:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8487:6:53","nodeType":"YulTypedName","src":"8487:6:53","type":""},{"name":"size","nativeSrc":"8495:4:53","nodeType":"YulTypedName","src":"8495:4:53","type":""}],"src":"8458:281:53"},{"body":{"nativeSrc":"8786:88:53","nodeType":"YulBlock","src":"8786:88:53","statements":[{"nativeSrc":"8796:30:53","nodeType":"YulAssignment","src":"8796:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8806:18:53","nodeType":"YulIdentifier","src":"8806:18:53"},"nativeSrc":"8806:20:53","nodeType":"YulFunctionCall","src":"8806:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8796:6:53","nodeType":"YulIdentifier","src":"8796:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8855:6:53","nodeType":"YulIdentifier","src":"8855:6:53"},{"name":"size","nativeSrc":"8863:4:53","nodeType":"YulIdentifier","src":"8863:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8835:19:53","nodeType":"YulIdentifier","src":"8835:19:53"},"nativeSrc":"8835:33:53","nodeType":"YulFunctionCall","src":"8835:33:53"},"nativeSrc":"8835:33:53","nodeType":"YulExpressionStatement","src":"8835:33:53"}]},"name":"allocate_memory","nativeSrc":"8745:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8770:4:53","nodeType":"YulTypedName","src":"8770:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8779:6:53","nodeType":"YulTypedName","src":"8779:6:53","type":""}],"src":"8745:129:53"},{"body":{"nativeSrc":"8969:28:53","nodeType":"YulBlock","src":"8969:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8986:1:53","nodeType":"YulLiteral","src":"8986:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8989:1:53","nodeType":"YulLiteral","src":"8989:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8979:6:53","nodeType":"YulIdentifier","src":"8979:6:53"},"nativeSrc":"8979:12:53","nodeType":"YulFunctionCall","src":"8979:12:53"},"nativeSrc":"8979:12:53","nodeType":"YulExpressionStatement","src":"8979:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8880:117:53","nodeType":"YulFunctionDefinition","src":"8880:117:53"},{"body":{"nativeSrc":"9129:825:53","nodeType":"YulBlock","src":"9129:825:53","statements":[{"body":{"nativeSrc":"9173:83:53","nodeType":"YulBlock","src":"9173:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9175:77:53","nodeType":"YulIdentifier","src":"9175:77:53"},"nativeSrc":"9175:79:53","nodeType":"YulFunctionCall","src":"9175:79:53"},"nativeSrc":"9175:79:53","nodeType":"YulExpressionStatement","src":"9175:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9150:3:53","nodeType":"YulIdentifier","src":"9150:3:53"},{"name":"headStart","nativeSrc":"9155:9:53","nodeType":"YulIdentifier","src":"9155:9:53"}],"functionName":{"name":"sub","nativeSrc":"9146:3:53","nodeType":"YulIdentifier","src":"9146:3:53"},"nativeSrc":"9146:19:53","nodeType":"YulFunctionCall","src":"9146:19:53"},{"kind":"number","nativeSrc":"9167:4:53","nodeType":"YulLiteral","src":"9167:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"9142:3:53","nodeType":"YulIdentifier","src":"9142:3:53"},"nativeSrc":"9142:30:53","nodeType":"YulFunctionCall","src":"9142:30:53"},"nativeSrc":"9139:117:53","nodeType":"YulIf","src":"9139:117:53"},{"nativeSrc":"9265:30:53","nodeType":"YulAssignment","src":"9265:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"9290:4:53","nodeType":"YulLiteral","src":"9290:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"9274:15:53","nodeType":"YulIdentifier","src":"9274:15:53"},"nativeSrc":"9274:21:53","nodeType":"YulFunctionCall","src":"9274:21:53"},"variableNames":[{"name":"value","nativeSrc":"9265:5:53","nodeType":"YulIdentifier","src":"9265:5:53"}]},{"nativeSrc":"9305:153:53","nodeType":"YulBlock","src":"9305:153:53","statements":[{"nativeSrc":"9343:15:53","nodeType":"YulVariableDeclaration","src":"9343:15:53","value":{"kind":"number","nativeSrc":"9357:1:53","nodeType":"YulLiteral","src":"9357:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9347:6:53","nodeType":"YulTypedName","src":"9347:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9383:5:53","nodeType":"YulIdentifier","src":"9383:5:53"},{"kind":"number","nativeSrc":"9390:4:53","nodeType":"YulLiteral","src":"9390:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9379:3:53","nodeType":"YulIdentifier","src":"9379:3:53"},"nativeSrc":"9379:16:53","nodeType":"YulFunctionCall","src":"9379:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9422:9:53","nodeType":"YulIdentifier","src":"9422:9:53"},{"name":"offset","nativeSrc":"9433:6:53","nodeType":"YulIdentifier","src":"9433:6:53"}],"functionName":{"name":"add","nativeSrc":"9418:3:53","nodeType":"YulIdentifier","src":"9418:3:53"},"nativeSrc":"9418:22:53","nodeType":"YulFunctionCall","src":"9418:22:53"},{"name":"end","nativeSrc":"9442:3:53","nodeType":"YulIdentifier","src":"9442:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9397:20:53","nodeType":"YulIdentifier","src":"9397:20:53"},"nativeSrc":"9397:49:53","nodeType":"YulFunctionCall","src":"9397:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9372:6:53","nodeType":"YulIdentifier","src":"9372:6:53"},"nativeSrc":"9372:75:53","nodeType":"YulFunctionCall","src":"9372:75:53"},"nativeSrc":"9372:75:53","nodeType":"YulExpressionStatement","src":"9372:75:53"}]},{"nativeSrc":"9468:153:53","nodeType":"YulBlock","src":"9468:153:53","statements":[{"nativeSrc":"9505:16:53","nodeType":"YulVariableDeclaration","src":"9505:16:53","value":{"kind":"number","nativeSrc":"9519:2:53","nodeType":"YulLiteral","src":"9519:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9509:6:53","nodeType":"YulTypedName","src":"9509:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9546:5:53","nodeType":"YulIdentifier","src":"9546:5:53"},{"kind":"number","nativeSrc":"9553:4:53","nodeType":"YulLiteral","src":"9553:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9542:3:53","nodeType":"YulIdentifier","src":"9542:3:53"},"nativeSrc":"9542:16:53","nodeType":"YulFunctionCall","src":"9542:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9585:9:53","nodeType":"YulIdentifier","src":"9585:9:53"},{"name":"offset","nativeSrc":"9596:6:53","nodeType":"YulIdentifier","src":"9596:6:53"}],"functionName":{"name":"add","nativeSrc":"9581:3:53","nodeType":"YulIdentifier","src":"9581:3:53"},"nativeSrc":"9581:22:53","nodeType":"YulFunctionCall","src":"9581:22:53"},{"name":"end","nativeSrc":"9605:3:53","nodeType":"YulIdentifier","src":"9605:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9560:20:53","nodeType":"YulIdentifier","src":"9560:20:53"},"nativeSrc":"9560:49:53","nodeType":"YulFunctionCall","src":"9560:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9535:6:53","nodeType":"YulIdentifier","src":"9535:6:53"},"nativeSrc":"9535:75:53","nodeType":"YulFunctionCall","src":"9535:75:53"},"nativeSrc":"9535:75:53","nodeType":"YulExpressionStatement","src":"9535:75:53"}]},{"nativeSrc":"9631:154:53","nodeType":"YulBlock","src":"9631:154:53","statements":[{"nativeSrc":"9670:16:53","nodeType":"YulVariableDeclaration","src":"9670:16:53","value":{"kind":"number","nativeSrc":"9684:2:53","nodeType":"YulLiteral","src":"9684:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9674:6:53","nodeType":"YulTypedName","src":"9674:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9711:5:53","nodeType":"YulIdentifier","src":"9711:5:53"},{"kind":"number","nativeSrc":"9718:4:53","nodeType":"YulLiteral","src":"9718:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9707:3:53","nodeType":"YulIdentifier","src":"9707:3:53"},"nativeSrc":"9707:16:53","nodeType":"YulFunctionCall","src":"9707:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9749:9:53","nodeType":"YulIdentifier","src":"9749:9:53"},{"name":"offset","nativeSrc":"9760:6:53","nodeType":"YulIdentifier","src":"9760:6:53"}],"functionName":{"name":"add","nativeSrc":"9745:3:53","nodeType":"YulIdentifier","src":"9745:3:53"},"nativeSrc":"9745:22:53","nodeType":"YulFunctionCall","src":"9745:22:53"},{"name":"end","nativeSrc":"9769:3:53","nodeType":"YulIdentifier","src":"9769:3:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"9725:19:53","nodeType":"YulIdentifier","src":"9725:19:53"},"nativeSrc":"9725:48:53","nodeType":"YulFunctionCall","src":"9725:48:53"}],"functionName":{"name":"mstore","nativeSrc":"9700:6:53","nodeType":"YulIdentifier","src":"9700:6:53"},"nativeSrc":"9700:74:53","nodeType":"YulFunctionCall","src":"9700:74:53"},"nativeSrc":"9700:74:53","nodeType":"YulExpressionStatement","src":"9700:74:53"}]},{"nativeSrc":"9795:152:53","nodeType":"YulBlock","src":"9795:152:53","statements":[{"nativeSrc":"9831:16:53","nodeType":"YulVariableDeclaration","src":"9831:16:53","value":{"kind":"number","nativeSrc":"9845:2:53","nodeType":"YulLiteral","src":"9845:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9835:6:53","nodeType":"YulTypedName","src":"9835:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9872:5:53","nodeType":"YulIdentifier","src":"9872:5:53"},{"kind":"number","nativeSrc":"9879:4:53","nodeType":"YulLiteral","src":"9879:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9868:3:53","nodeType":"YulIdentifier","src":"9868:3:53"},"nativeSrc":"9868:16:53","nodeType":"YulFunctionCall","src":"9868:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9911:9:53","nodeType":"YulIdentifier","src":"9911:9:53"},{"name":"offset","nativeSrc":"9922:6:53","nodeType":"YulIdentifier","src":"9922:6:53"}],"functionName":{"name":"add","nativeSrc":"9907:3:53","nodeType":"YulIdentifier","src":"9907:3:53"},"nativeSrc":"9907:22:53","nodeType":"YulFunctionCall","src":"9907:22:53"},{"name":"end","nativeSrc":"9931:3:53","nodeType":"YulIdentifier","src":"9931:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9886:20:53","nodeType":"YulIdentifier","src":"9886:20:53"},"nativeSrc":"9886:49:53","nodeType":"YulFunctionCall","src":"9886:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9861:6:53","nodeType":"YulIdentifier","src":"9861:6:53"},"nativeSrc":"9861:75:53","nodeType":"YulFunctionCall","src":"9861:75:53"},"nativeSrc":"9861:75:53","nodeType":"YulExpressionStatement","src":"9861:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"9044:910:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9104:9:53","nodeType":"YulTypedName","src":"9104:9:53","type":""},{"name":"end","nativeSrc":"9115:3:53","nodeType":"YulTypedName","src":"9115:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9123:5:53","nodeType":"YulTypedName","src":"9123:5:53","type":""}],"src":"9044:910:53"},{"body":{"nativeSrc":"10056:294:53","nodeType":"YulBlock","src":"10056:294:53","statements":[{"body":{"nativeSrc":"10103:83:53","nodeType":"YulBlock","src":"10103:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10105:77:53","nodeType":"YulIdentifier","src":"10105:77:53"},"nativeSrc":"10105:79:53","nodeType":"YulFunctionCall","src":"10105:79:53"},"nativeSrc":"10105:79:53","nodeType":"YulExpressionStatement","src":"10105:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10077:7:53","nodeType":"YulIdentifier","src":"10077:7:53"},{"name":"headStart","nativeSrc":"10086:9:53","nodeType":"YulIdentifier","src":"10086:9:53"}],"functionName":{"name":"sub","nativeSrc":"10073:3:53","nodeType":"YulIdentifier","src":"10073:3:53"},"nativeSrc":"10073:23:53","nodeType":"YulFunctionCall","src":"10073:23:53"},{"kind":"number","nativeSrc":"10098:3:53","nodeType":"YulLiteral","src":"10098:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10069:3:53","nodeType":"YulIdentifier","src":"10069:3:53"},"nativeSrc":"10069:33:53","nodeType":"YulFunctionCall","src":"10069:33:53"},"nativeSrc":"10066:120:53","nodeType":"YulIf","src":"10066:120:53"},{"nativeSrc":"10196:147:53","nodeType":"YulBlock","src":"10196:147:53","statements":[{"nativeSrc":"10211:15:53","nodeType":"YulVariableDeclaration","src":"10211:15:53","value":{"kind":"number","nativeSrc":"10225:1:53","nodeType":"YulLiteral","src":"10225:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10215:6:53","nodeType":"YulTypedName","src":"10215:6:53","type":""}]},{"nativeSrc":"10240:93:53","nodeType":"YulAssignment","src":"10240:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:53","nodeType":"YulIdentifier","src":"10305:9:53"},{"name":"offset","nativeSrc":"10316:6:53","nodeType":"YulIdentifier","src":"10316:6:53"}],"functionName":{"name":"add","nativeSrc":"10301:3:53","nodeType":"YulIdentifier","src":"10301:3:53"},"nativeSrc":"10301:22:53","nodeType":"YulFunctionCall","src":"10301:22:53"},{"name":"dataEnd","nativeSrc":"10325:7:53","nodeType":"YulIdentifier","src":"10325:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"10250:50:53","nodeType":"YulIdentifier","src":"10250:50:53"},"nativeSrc":"10250:83:53","nodeType":"YulFunctionCall","src":"10250:83:53"},"variableNames":[{"name":"value0","nativeSrc":"10240:6:53","nodeType":"YulIdentifier","src":"10240:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr","nativeSrc":"9960:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10026:9:53","nodeType":"YulTypedName","src":"10026:9:53","type":""},{"name":"dataEnd","nativeSrc":"10037:7:53","nodeType":"YulTypedName","src":"10037:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10049:6:53","nodeType":"YulTypedName","src":"10049:6:53","type":""}],"src":"9960:390:53"},{"body":{"nativeSrc":"10409:51:53","nodeType":"YulBlock","src":"10409:51:53","statements":[{"nativeSrc":"10419:35:53","nodeType":"YulAssignment","src":"10419:35:53","value":{"arguments":[{"name":"value","nativeSrc":"10448:5:53","nodeType":"YulIdentifier","src":"10448:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"10430:17:53","nodeType":"YulIdentifier","src":"10430:17:53"},"nativeSrc":"10430:24:53","nodeType":"YulFunctionCall","src":"10430:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"10419:7:53","nodeType":"YulIdentifier","src":"10419:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"10356:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10391:5:53","nodeType":"YulTypedName","src":"10391:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10401:7:53","nodeType":"YulTypedName","src":"10401:7:53","type":""}],"src":"10356:104:53"},{"body":{"nativeSrc":"10517:87:53","nodeType":"YulBlock","src":"10517:87:53","statements":[{"body":{"nativeSrc":"10582:16:53","nodeType":"YulBlock","src":"10582:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10591:1:53","nodeType":"YulLiteral","src":"10591:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10594:1:53","nodeType":"YulLiteral","src":"10594:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10584:6:53","nodeType":"YulIdentifier","src":"10584:6:53"},"nativeSrc":"10584:12:53","nodeType":"YulFunctionCall","src":"10584:12:53"},"nativeSrc":"10584:12:53","nodeType":"YulExpressionStatement","src":"10584:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10540:5:53","nodeType":"YulIdentifier","src":"10540:5:53"},{"arguments":[{"name":"value","nativeSrc":"10573:5:53","nodeType":"YulIdentifier","src":"10573:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"10547:25:53","nodeType":"YulIdentifier","src":"10547:25:53"},"nativeSrc":"10547:32:53","nodeType":"YulFunctionCall","src":"10547:32:53"}],"functionName":{"name":"eq","nativeSrc":"10537:2:53","nodeType":"YulIdentifier","src":"10537:2:53"},"nativeSrc":"10537:43:53","nodeType":"YulFunctionCall","src":"10537:43:53"}],"functionName":{"name":"iszero","nativeSrc":"10530:6:53","nodeType":"YulIdentifier","src":"10530:6:53"},"nativeSrc":"10530:51:53","nodeType":"YulFunctionCall","src":"10530:51:53"},"nativeSrc":"10527:71:53","nodeType":"YulIf","src":"10527:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"10466:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10510:5:53","nodeType":"YulTypedName","src":"10510:5:53","type":""}],"src":"10466:138:53"},{"body":{"nativeSrc":"10670:95:53","nodeType":"YulBlock","src":"10670:95:53","statements":[{"nativeSrc":"10680:29:53","nodeType":"YulAssignment","src":"10680:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10702:6:53","nodeType":"YulIdentifier","src":"10702:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10689:12:53","nodeType":"YulIdentifier","src":"10689:12:53"},"nativeSrc":"10689:20:53","nodeType":"YulFunctionCall","src":"10689:20:53"},"variableNames":[{"name":"value","nativeSrc":"10680:5:53","nodeType":"YulIdentifier","src":"10680:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10753:5:53","nodeType":"YulIdentifier","src":"10753:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"10718:34:53","nodeType":"YulIdentifier","src":"10718:34:53"},"nativeSrc":"10718:41:53","nodeType":"YulFunctionCall","src":"10718:41:53"},"nativeSrc":"10718:41:53","nodeType":"YulExpressionStatement","src":"10718:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"10610:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10648:6:53","nodeType":"YulTypedName","src":"10648:6:53","type":""},{"name":"end","nativeSrc":"10656:3:53","nodeType":"YulTypedName","src":"10656:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10664:5:53","nodeType":"YulTypedName","src":"10664:5:53","type":""}],"src":"10610:155:53"},{"body":{"nativeSrc":"10860:28:53","nodeType":"YulBlock","src":"10860:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10877:1:53","nodeType":"YulLiteral","src":"10877:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10880:1:53","nodeType":"YulLiteral","src":"10880:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10870:6:53","nodeType":"YulIdentifier","src":"10870:6:53"},"nativeSrc":"10870:12:53","nodeType":"YulFunctionCall","src":"10870:12:53"},"nativeSrc":"10870:12:53","nodeType":"YulExpressionStatement","src":"10870:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10771:117:53","nodeType":"YulFunctionDefinition","src":"10771:117:53"},{"body":{"nativeSrc":"10960:241:53","nodeType":"YulBlock","src":"10960:241:53","statements":[{"body":{"nativeSrc":"11065:22:53","nodeType":"YulBlock","src":"11065:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11067:16:53","nodeType":"YulIdentifier","src":"11067:16:53"},"nativeSrc":"11067:18:53","nodeType":"YulFunctionCall","src":"11067:18:53"},"nativeSrc":"11067:18:53","nodeType":"YulExpressionStatement","src":"11067:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"11037:6:53","nodeType":"YulIdentifier","src":"11037:6:53"},{"kind":"number","nativeSrc":"11045:18:53","nodeType":"YulLiteral","src":"11045:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11034:2:53","nodeType":"YulIdentifier","src":"11034:2:53"},"nativeSrc":"11034:30:53","nodeType":"YulFunctionCall","src":"11034:30:53"},"nativeSrc":"11031:56:53","nodeType":"YulIf","src":"11031:56:53"},{"nativeSrc":"11097:37:53","nodeType":"YulAssignment","src":"11097:37:53","value":{"arguments":[{"name":"length","nativeSrc":"11127:6:53","nodeType":"YulIdentifier","src":"11127:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11105:21:53","nodeType":"YulIdentifier","src":"11105:21:53"},"nativeSrc":"11105:29:53","nodeType":"YulFunctionCall","src":"11105:29:53"},"variableNames":[{"name":"size","nativeSrc":"11097:4:53","nodeType":"YulIdentifier","src":"11097:4:53"}]},{"nativeSrc":"11171:23:53","nodeType":"YulAssignment","src":"11171:23:53","value":{"arguments":[{"name":"size","nativeSrc":"11183:4:53","nodeType":"YulIdentifier","src":"11183:4:53"},{"kind":"number","nativeSrc":"11189:4:53","nodeType":"YulLiteral","src":"11189:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11179:3:53","nodeType":"YulIdentifier","src":"11179:3:53"},"nativeSrc":"11179:15:53","nodeType":"YulFunctionCall","src":"11179:15:53"},"variableNames":[{"name":"size","nativeSrc":"11171:4:53","nodeType":"YulIdentifier","src":"11171:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"10894:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10944:6:53","nodeType":"YulTypedName","src":"10944:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10955:4:53","nodeType":"YulTypedName","src":"10955:4:53","type":""}],"src":"10894:307:53"},{"body":{"nativeSrc":"11271:84:53","nodeType":"YulBlock","src":"11271:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11295:3:53","nodeType":"YulIdentifier","src":"11295:3:53"},{"name":"src","nativeSrc":"11300:3:53","nodeType":"YulIdentifier","src":"11300:3:53"},{"name":"length","nativeSrc":"11305:6:53","nodeType":"YulIdentifier","src":"11305:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"11282:12:53","nodeType":"YulIdentifier","src":"11282:12:53"},"nativeSrc":"11282:30:53","nodeType":"YulFunctionCall","src":"11282:30:53"},"nativeSrc":"11282:30:53","nodeType":"YulExpressionStatement","src":"11282:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11332:3:53","nodeType":"YulIdentifier","src":"11332:3:53"},{"name":"length","nativeSrc":"11337:6:53","nodeType":"YulIdentifier","src":"11337:6:53"}],"functionName":{"name":"add","nativeSrc":"11328:3:53","nodeType":"YulIdentifier","src":"11328:3:53"},"nativeSrc":"11328:16:53","nodeType":"YulFunctionCall","src":"11328:16:53"},{"kind":"number","nativeSrc":"11346:1:53","nodeType":"YulLiteral","src":"11346:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11321:6:53","nodeType":"YulIdentifier","src":"11321:6:53"},"nativeSrc":"11321:27:53","nodeType":"YulFunctionCall","src":"11321:27:53"},"nativeSrc":"11321:27:53","nodeType":"YulExpressionStatement","src":"11321:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11207:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11253:3:53","nodeType":"YulTypedName","src":"11253:3:53","type":""},{"name":"dst","nativeSrc":"11258:3:53","nodeType":"YulTypedName","src":"11258:3:53","type":""},{"name":"length","nativeSrc":"11263:6:53","nodeType":"YulTypedName","src":"11263:6:53","type":""}],"src":"11207:148:53"},{"body":{"nativeSrc":"11444:340:53","nodeType":"YulBlock","src":"11444:340:53","statements":[{"nativeSrc":"11454:74:53","nodeType":"YulAssignment","src":"11454:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11520:6:53","nodeType":"YulIdentifier","src":"11520:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11479:40:53","nodeType":"YulIdentifier","src":"11479:40:53"},"nativeSrc":"11479:48:53","nodeType":"YulFunctionCall","src":"11479:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"11463:15:53","nodeType":"YulIdentifier","src":"11463:15:53"},"nativeSrc":"11463:65:53","nodeType":"YulFunctionCall","src":"11463:65:53"},"variableNames":[{"name":"array","nativeSrc":"11454:5:53","nodeType":"YulIdentifier","src":"11454:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11544:5:53","nodeType":"YulIdentifier","src":"11544:5:53"},{"name":"length","nativeSrc":"11551:6:53","nodeType":"YulIdentifier","src":"11551:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11537:6:53","nodeType":"YulIdentifier","src":"11537:6:53"},"nativeSrc":"11537:21:53","nodeType":"YulFunctionCall","src":"11537:21:53"},"nativeSrc":"11537:21:53","nodeType":"YulExpressionStatement","src":"11537:21:53"},{"nativeSrc":"11567:27:53","nodeType":"YulVariableDeclaration","src":"11567:27:53","value":{"arguments":[{"name":"array","nativeSrc":"11582:5:53","nodeType":"YulIdentifier","src":"11582:5:53"},{"kind":"number","nativeSrc":"11589:4:53","nodeType":"YulLiteral","src":"11589:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11578:3:53","nodeType":"YulIdentifier","src":"11578:3:53"},"nativeSrc":"11578:16:53","nodeType":"YulFunctionCall","src":"11578:16:53"},"variables":[{"name":"dst","nativeSrc":"11571:3:53","nodeType":"YulTypedName","src":"11571:3:53","type":""}]},{"body":{"nativeSrc":"11632:83:53","nodeType":"YulBlock","src":"11632:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"11634:77:53","nodeType":"YulIdentifier","src":"11634:77:53"},"nativeSrc":"11634:79:53","nodeType":"YulFunctionCall","src":"11634:79:53"},"nativeSrc":"11634:79:53","nodeType":"YulExpressionStatement","src":"11634:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11613:3:53","nodeType":"YulIdentifier","src":"11613:3:53"},{"name":"length","nativeSrc":"11618:6:53","nodeType":"YulIdentifier","src":"11618:6:53"}],"functionName":{"name":"add","nativeSrc":"11609:3:53","nodeType":"YulIdentifier","src":"11609:3:53"},"nativeSrc":"11609:16:53","nodeType":"YulFunctionCall","src":"11609:16:53"},{"name":"end","nativeSrc":"11627:3:53","nodeType":"YulIdentifier","src":"11627:3:53"}],"functionName":{"name":"gt","nativeSrc":"11606:2:53","nodeType":"YulIdentifier","src":"11606:2:53"},"nativeSrc":"11606:25:53","nodeType":"YulFunctionCall","src":"11606:25:53"},"nativeSrc":"11603:112:53","nodeType":"YulIf","src":"11603:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"11761:3:53","nodeType":"YulIdentifier","src":"11761:3:53"},{"name":"dst","nativeSrc":"11766:3:53","nodeType":"YulIdentifier","src":"11766:3:53"},{"name":"length","nativeSrc":"11771:6:53","nodeType":"YulIdentifier","src":"11771:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11724:36:53","nodeType":"YulIdentifier","src":"11724:36:53"},"nativeSrc":"11724:54:53","nodeType":"YulFunctionCall","src":"11724:54:53"},"nativeSrc":"11724:54:53","nodeType":"YulExpressionStatement","src":"11724:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"11361:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11417:3:53","nodeType":"YulTypedName","src":"11417:3:53","type":""},{"name":"length","nativeSrc":"11422:6:53","nodeType":"YulTypedName","src":"11422:6:53","type":""},{"name":"end","nativeSrc":"11430:3:53","nodeType":"YulTypedName","src":"11430:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11438:5:53","nodeType":"YulTypedName","src":"11438:5:53","type":""}],"src":"11361:423:53"},{"body":{"nativeSrc":"11864:277:53","nodeType":"YulBlock","src":"11864:277:53","statements":[{"body":{"nativeSrc":"11913:83:53","nodeType":"YulBlock","src":"11913:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11915:77:53","nodeType":"YulIdentifier","src":"11915:77:53"},"nativeSrc":"11915:79:53","nodeType":"YulFunctionCall","src":"11915:79:53"},"nativeSrc":"11915:79:53","nodeType":"YulExpressionStatement","src":"11915:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11892:6:53","nodeType":"YulIdentifier","src":"11892:6:53"},{"kind":"number","nativeSrc":"11900:4:53","nodeType":"YulLiteral","src":"11900:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11888:3:53","nodeType":"YulIdentifier","src":"11888:3:53"},"nativeSrc":"11888:17:53","nodeType":"YulFunctionCall","src":"11888:17:53"},{"name":"end","nativeSrc":"11907:3:53","nodeType":"YulIdentifier","src":"11907:3:53"}],"functionName":{"name":"slt","nativeSrc":"11884:3:53","nodeType":"YulIdentifier","src":"11884:3:53"},"nativeSrc":"11884:27:53","nodeType":"YulFunctionCall","src":"11884:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11877:6:53","nodeType":"YulIdentifier","src":"11877:6:53"},"nativeSrc":"11877:35:53","nodeType":"YulFunctionCall","src":"11877:35:53"},"nativeSrc":"11874:122:53","nodeType":"YulIf","src":"11874:122:53"},{"nativeSrc":"12005:34:53","nodeType":"YulVariableDeclaration","src":"12005:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"12032:6:53","nodeType":"YulIdentifier","src":"12032:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12019:12:53","nodeType":"YulIdentifier","src":"12019:12:53"},"nativeSrc":"12019:20:53","nodeType":"YulFunctionCall","src":"12019:20:53"},"variables":[{"name":"length","nativeSrc":"12009:6:53","nodeType":"YulTypedName","src":"12009:6:53","type":""}]},{"nativeSrc":"12048:87:53","nodeType":"YulAssignment","src":"12048:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12108:6:53","nodeType":"YulIdentifier","src":"12108:6:53"},{"kind":"number","nativeSrc":"12116:4:53","nodeType":"YulLiteral","src":"12116:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12104:3:53","nodeType":"YulIdentifier","src":"12104:3:53"},"nativeSrc":"12104:17:53","nodeType":"YulFunctionCall","src":"12104:17:53"},{"name":"length","nativeSrc":"12123:6:53","nodeType":"YulIdentifier","src":"12123:6:53"},{"name":"end","nativeSrc":"12131:3:53","nodeType":"YulIdentifier","src":"12131:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"12057:46:53","nodeType":"YulIdentifier","src":"12057:46:53"},"nativeSrc":"12057:78:53","nodeType":"YulFunctionCall","src":"12057:78:53"},"variableNames":[{"name":"array","nativeSrc":"12048:5:53","nodeType":"YulIdentifier","src":"12048:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"11803:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11842:6:53","nodeType":"YulTypedName","src":"11842:6:53","type":""},{"name":"end","nativeSrc":"11850:3:53","nodeType":"YulTypedName","src":"11850:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11858:5:53","nodeType":"YulTypedName","src":"11858:5:53","type":""}],"src":"11803:338:53"},{"body":{"nativeSrc":"12247:568:53","nodeType":"YulBlock","src":"12247:568:53","statements":[{"body":{"nativeSrc":"12293:83:53","nodeType":"YulBlock","src":"12293:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12295:77:53","nodeType":"YulIdentifier","src":"12295:77:53"},"nativeSrc":"12295:79:53","nodeType":"YulFunctionCall","src":"12295:79:53"},"nativeSrc":"12295:79:53","nodeType":"YulExpressionStatement","src":"12295:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12268:7:53","nodeType":"YulIdentifier","src":"12268:7:53"},{"name":"headStart","nativeSrc":"12277:9:53","nodeType":"YulIdentifier","src":"12277:9:53"}],"functionName":{"name":"sub","nativeSrc":"12264:3:53","nodeType":"YulIdentifier","src":"12264:3:53"},"nativeSrc":"12264:23:53","nodeType":"YulFunctionCall","src":"12264:23:53"},{"kind":"number","nativeSrc":"12289:2:53","nodeType":"YulLiteral","src":"12289:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12260:3:53","nodeType":"YulIdentifier","src":"12260:3:53"},"nativeSrc":"12260:32:53","nodeType":"YulFunctionCall","src":"12260:32:53"},"nativeSrc":"12257:119:53","nodeType":"YulIf","src":"12257:119:53"},{"nativeSrc":"12386:125:53","nodeType":"YulBlock","src":"12386:125:53","statements":[{"nativeSrc":"12401:15:53","nodeType":"YulVariableDeclaration","src":"12401:15:53","value":{"kind":"number","nativeSrc":"12415:1:53","nodeType":"YulLiteral","src":"12415:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12405:6:53","nodeType":"YulTypedName","src":"12405:6:53","type":""}]},{"nativeSrc":"12430:71:53","nodeType":"YulAssignment","src":"12430:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12473:9:53","nodeType":"YulIdentifier","src":"12473:9:53"},{"name":"offset","nativeSrc":"12484:6:53","nodeType":"YulIdentifier","src":"12484:6:53"}],"functionName":{"name":"add","nativeSrc":"12469:3:53","nodeType":"YulIdentifier","src":"12469:3:53"},"nativeSrc":"12469:22:53","nodeType":"YulFunctionCall","src":"12469:22:53"},{"name":"dataEnd","nativeSrc":"12493:7:53","nodeType":"YulIdentifier","src":"12493:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12440:28:53","nodeType":"YulIdentifier","src":"12440:28:53"},"nativeSrc":"12440:61:53","nodeType":"YulFunctionCall","src":"12440:61:53"},"variableNames":[{"name":"value0","nativeSrc":"12430:6:53","nodeType":"YulIdentifier","src":"12430:6:53"}]}]},{"nativeSrc":"12521:287:53","nodeType":"YulBlock","src":"12521:287:53","statements":[{"nativeSrc":"12536:46:53","nodeType":"YulVariableDeclaration","src":"12536:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12567:9:53","nodeType":"YulIdentifier","src":"12567:9:53"},{"kind":"number","nativeSrc":"12578:2:53","nodeType":"YulLiteral","src":"12578:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12563:3:53","nodeType":"YulIdentifier","src":"12563:3:53"},"nativeSrc":"12563:18:53","nodeType":"YulFunctionCall","src":"12563:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12550:12:53","nodeType":"YulIdentifier","src":"12550:12:53"},"nativeSrc":"12550:32:53","nodeType":"YulFunctionCall","src":"12550:32:53"},"variables":[{"name":"offset","nativeSrc":"12540:6:53","nodeType":"YulTypedName","src":"12540:6:53","type":""}]},{"body":{"nativeSrc":"12629:83:53","nodeType":"YulBlock","src":"12629:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12631:77:53","nodeType":"YulIdentifier","src":"12631:77:53"},"nativeSrc":"12631:79:53","nodeType":"YulFunctionCall","src":"12631:79:53"},"nativeSrc":"12631:79:53","nodeType":"YulExpressionStatement","src":"12631:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12601:6:53","nodeType":"YulIdentifier","src":"12601:6:53"},{"kind":"number","nativeSrc":"12609:18:53","nodeType":"YulLiteral","src":"12609:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12598:2:53","nodeType":"YulIdentifier","src":"12598:2:53"},"nativeSrc":"12598:30:53","nodeType":"YulFunctionCall","src":"12598:30:53"},"nativeSrc":"12595:117:53","nodeType":"YulIf","src":"12595:117:53"},{"nativeSrc":"12726:72:53","nodeType":"YulAssignment","src":"12726:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12770:9:53","nodeType":"YulIdentifier","src":"12770:9:53"},{"name":"offset","nativeSrc":"12781:6:53","nodeType":"YulIdentifier","src":"12781:6:53"}],"functionName":{"name":"add","nativeSrc":"12766:3:53","nodeType":"YulIdentifier","src":"12766:3:53"},"nativeSrc":"12766:22:53","nodeType":"YulFunctionCall","src":"12766:22:53"},{"name":"dataEnd","nativeSrc":"12790:7:53","nodeType":"YulIdentifier","src":"12790:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"12736:29:53","nodeType":"YulIdentifier","src":"12736:29:53"},"nativeSrc":"12736:62:53","nodeType":"YulFunctionCall","src":"12736:62:53"},"variableNames":[{"name":"value1","nativeSrc":"12726:6:53","nodeType":"YulIdentifier","src":"12726:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes_memory_ptr","nativeSrc":"12147:668:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12209:9:53","nodeType":"YulTypedName","src":"12209:9:53","type":""},{"name":"dataEnd","nativeSrc":"12220:7:53","nodeType":"YulTypedName","src":"12220:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12232:6:53","nodeType":"YulTypedName","src":"12232:6:53","type":""},{"name":"value1","nativeSrc":"12240:6:53","nodeType":"YulTypedName","src":"12240:6:53","type":""}],"src":"12147:668:53"},{"body":{"nativeSrc":"12877:60:53","nodeType":"YulBlock","src":"12877:60:53","statements":[{"nativeSrc":"12887:11:53","nodeType":"YulAssignment","src":"12887:11:53","value":{"name":"ptr","nativeSrc":"12895:3:53","nodeType":"YulIdentifier","src":"12895:3:53"},"variableNames":[{"name":"data","nativeSrc":"12887:4:53","nodeType":"YulIdentifier","src":"12887:4:53"}]},{"nativeSrc":"12908:22:53","nodeType":"YulAssignment","src":"12908:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"12920:3:53","nodeType":"YulIdentifier","src":"12920:3:53"},{"kind":"number","nativeSrc":"12925:4:53","nodeType":"YulLiteral","src":"12925:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12916:3:53","nodeType":"YulIdentifier","src":"12916:3:53"},"nativeSrc":"12916:14:53","nodeType":"YulFunctionCall","src":"12916:14:53"},"variableNames":[{"name":"data","nativeSrc":"12908:4:53","nodeType":"YulIdentifier","src":"12908:4:53"}]}]},"name":"array_dataslot_t_bytes_memory_ptr","nativeSrc":"12821:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"12864:3:53","nodeType":"YulTypedName","src":"12864:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"12872:4:53","nodeType":"YulTypedName","src":"12872:4:53","type":""}],"src":"12821:116:53"},{"body":{"nativeSrc":"12988:32:53","nodeType":"YulBlock","src":"12988:32:53","statements":[{"nativeSrc":"12998:16:53","nodeType":"YulAssignment","src":"12998:16:53","value":{"name":"value","nativeSrc":"13009:5:53","nodeType":"YulIdentifier","src":"13009:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"12998:7:53","nodeType":"YulIdentifier","src":"12998:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"12943:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12970:5:53","nodeType":"YulTypedName","src":"12970:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12980:7:53","nodeType":"YulTypedName","src":"12980:7:53","type":""}],"src":"12943:77:53"},{"body":{"nativeSrc":"13081:99:53","nodeType":"YulBlock","src":"13081:99:53","statements":[{"nativeSrc":"13092:42:53","nodeType":"YulVariableDeclaration","src":"13092:42:53","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"13129:3:53","nodeType":"YulIdentifier","src":"13129:3:53"}],"functionName":{"name":"mload","nativeSrc":"13123:5:53","nodeType":"YulIdentifier","src":"13123:5:53"},"nativeSrc":"13123:10:53","nodeType":"YulFunctionCall","src":"13123:10:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"13105:17:53","nodeType":"YulIdentifier","src":"13105:17:53"},"nativeSrc":"13105:29:53","nodeType":"YulFunctionCall","src":"13105:29:53"},"variables":[{"name":"value","nativeSrc":"13096:5:53","nodeType":"YulTypedName","src":"13096:5:53","type":""}]},{"nativeSrc":"13144:29:53","nodeType":"YulAssignment","src":"13144:29:53","value":{"name":"value","nativeSrc":"13168:5:53","nodeType":"YulIdentifier","src":"13168:5:53"},"variableNames":[{"name":"returnValue","nativeSrc":"13144:11:53","nodeType":"YulIdentifier","src":"13144:11:53"}]}]},"name":"read_from_memoryt_bytes32","nativeSrc":"13026:154:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13061:3:53","nodeType":"YulTypedName","src":"13061:3:53","type":""}],"returnVariables":[{"name":"returnValue","nativeSrc":"13069:11:53","nodeType":"YulTypedName","src":"13069:11:53","type":""}],"src":"13026:154:53"},{"body":{"nativeSrc":"13239:54:53","nodeType":"YulBlock","src":"13239:54:53","statements":[{"nativeSrc":"13249:37:53","nodeType":"YulAssignment","src":"13249:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"13274:4:53","nodeType":"YulIdentifier","src":"13274:4:53"},{"name":"value","nativeSrc":"13280:5:53","nodeType":"YulIdentifier","src":"13280:5:53"}],"functionName":{"name":"shl","nativeSrc":"13270:3:53","nodeType":"YulIdentifier","src":"13270:3:53"},"nativeSrc":"13270:16:53","nodeType":"YulFunctionCall","src":"13270:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"13249:8:53","nodeType":"YulIdentifier","src":"13249:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"13186:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"13214:4:53","nodeType":"YulTypedName","src":"13214:4:53","type":""},{"name":"value","nativeSrc":"13220:5:53","nodeType":"YulTypedName","src":"13220:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"13230:8:53","nodeType":"YulTypedName","src":"13230:8:53","type":""}],"src":"13186:107:53"},{"body":{"nativeSrc":"13389:504:53","nodeType":"YulBlock","src":"13389:504:53","statements":[{"nativeSrc":"13400:52:53","nodeType":"YulVariableDeclaration","src":"13400:52:53","value":{"arguments":[{"name":"array","nativeSrc":"13446:5:53","nodeType":"YulIdentifier","src":"13446:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13414:31:53","nodeType":"YulIdentifier","src":"13414:31:53"},"nativeSrc":"13414:38:53","nodeType":"YulFunctionCall","src":"13414:38:53"},"variables":[{"name":"length","nativeSrc":"13404:6:53","nodeType":"YulTypedName","src":"13404:6:53","type":""}]},{"nativeSrc":"13461:21:53","nodeType":"YulVariableDeclaration","src":"13461:21:53","value":{"name":"array","nativeSrc":"13477:5:53","nodeType":"YulIdentifier","src":"13477:5:53"},"variables":[{"name":"dataArea","nativeSrc":"13465:8:53","nodeType":"YulTypedName","src":"13465:8:53","type":""}]},{"nativeSrc":"13492:52:53","nodeType":"YulAssignment","src":"13492:52:53","value":{"arguments":[{"name":"array","nativeSrc":"13538:5:53","nodeType":"YulIdentifier","src":"13538:5:53"}],"functionName":{"name":"array_dataslot_t_bytes_memory_ptr","nativeSrc":"13504:33:53","nodeType":"YulIdentifier","src":"13504:33:53"},"nativeSrc":"13504:40:53","nodeType":"YulFunctionCall","src":"13504:40:53"},"variableNames":[{"name":"dataArea","nativeSrc":"13492:8:53","nodeType":"YulIdentifier","src":"13492:8:53"}]},{"nativeSrc":"13554:44:53","nodeType":"YulAssignment","src":"13554:44:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"13589:8:53","nodeType":"YulIdentifier","src":"13589:8:53"}],"functionName":{"name":"read_from_memoryt_bytes32","nativeSrc":"13563:25:53","nodeType":"YulIdentifier","src":"13563:25:53"},"nativeSrc":"13563:35:53","nodeType":"YulFunctionCall","src":"13563:35:53"},"variableNames":[{"name":"value","nativeSrc":"13554:5:53","nodeType":"YulIdentifier","src":"13554:5:53"}]},{"body":{"nativeSrc":"13626:260:53","nodeType":"YulBlock","src":"13626:260:53","statements":[{"nativeSrc":"13640:236:53","nodeType":"YulAssignment","src":"13640:236:53","value":{"arguments":[{"name":"value","nativeSrc":"13670:5:53","nodeType":"YulIdentifier","src":"13670:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13737:1:53","nodeType":"YulLiteral","src":"13737:1:53","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"13744:2:53","nodeType":"YulLiteral","src":"13744:2:53","type":"","value":"32"},{"name":"length","nativeSrc":"13748:6:53","nodeType":"YulIdentifier","src":"13748:6:53"}],"functionName":{"name":"sub","nativeSrc":"13740:3:53","nodeType":"YulIdentifier","src":"13740:3:53"},"nativeSrc":"13740:15:53","nodeType":"YulFunctionCall","src":"13740:15:53"}],"functionName":{"name":"mul","nativeSrc":"13733:3:53","nodeType":"YulIdentifier","src":"13733:3:53"},"nativeSrc":"13733:23:53","nodeType":"YulFunctionCall","src":"13733:23:53"},{"kind":"number","nativeSrc":"13778:66:53","nodeType":"YulLiteral","src":"13778:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"13693:18:53","nodeType":"YulIdentifier","src":"13693:18:53"},"nativeSrc":"13693:169:53","nodeType":"YulFunctionCall","src":"13693:169:53"}],"functionName":{"name":"and","nativeSrc":"13649:3:53","nodeType":"YulIdentifier","src":"13649:3:53"},"nativeSrc":"13649:227:53","nodeType":"YulFunctionCall","src":"13649:227:53"},"variableNames":[{"name":"value","nativeSrc":"13640:5:53","nodeType":"YulIdentifier","src":"13640:5:53"}]}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13614:6:53","nodeType":"YulIdentifier","src":"13614:6:53"},{"kind":"number","nativeSrc":"13622:2:53","nodeType":"YulLiteral","src":"13622:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"13611:2:53","nodeType":"YulIdentifier","src":"13611:2:53"},"nativeSrc":"13611:14:53","nodeType":"YulFunctionCall","src":"13611:14:53"},"nativeSrc":"13608:278:53","nodeType":"YulIf","src":"13608:278:53"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nativeSrc":"13299:594:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"13373:5:53","nodeType":"YulTypedName","src":"13373:5:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13383:5:53","nodeType":"YulTypedName","src":"13383:5:53","type":""}],"src":"13299:594:53"},{"body":{"nativeSrc":"13962:80:53","nodeType":"YulBlock","src":"13962:80:53","statements":[{"nativeSrc":"13972:22:53","nodeType":"YulAssignment","src":"13972:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"13987:6:53","nodeType":"YulIdentifier","src":"13987:6:53"}],"functionName":{"name":"mload","nativeSrc":"13981:5:53","nodeType":"YulIdentifier","src":"13981:5:53"},"nativeSrc":"13981:13:53","nodeType":"YulFunctionCall","src":"13981:13:53"},"variableNames":[{"name":"value","nativeSrc":"13972:5:53","nodeType":"YulIdentifier","src":"13972:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14030:5:53","nodeType":"YulIdentifier","src":"14030:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"14003:26:53","nodeType":"YulIdentifier","src":"14003:26:53"},"nativeSrc":"14003:33:53","nodeType":"YulFunctionCall","src":"14003:33:53"},"nativeSrc":"14003:33:53","nodeType":"YulExpressionStatement","src":"14003:33:53"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"13899:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13940:6:53","nodeType":"YulTypedName","src":"13940:6:53","type":""},{"name":"end","nativeSrc":"13948:3:53","nodeType":"YulTypedName","src":"13948:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13956:5:53","nodeType":"YulTypedName","src":"13956:5:53","type":""}],"src":"13899:143:53"},{"body":{"nativeSrc":"14125:274:53","nodeType":"YulBlock","src":"14125:274:53","statements":[{"body":{"nativeSrc":"14171:83:53","nodeType":"YulBlock","src":"14171:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14173:77:53","nodeType":"YulIdentifier","src":"14173:77:53"},"nativeSrc":"14173:79:53","nodeType":"YulFunctionCall","src":"14173:79:53"},"nativeSrc":"14173:79:53","nodeType":"YulExpressionStatement","src":"14173:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14146:7:53","nodeType":"YulIdentifier","src":"14146:7:53"},{"name":"headStart","nativeSrc":"14155:9:53","nodeType":"YulIdentifier","src":"14155:9:53"}],"functionName":{"name":"sub","nativeSrc":"14142:3:53","nodeType":"YulIdentifier","src":"14142:3:53"},"nativeSrc":"14142:23:53","nodeType":"YulFunctionCall","src":"14142:23:53"},{"kind":"number","nativeSrc":"14167:2:53","nodeType":"YulLiteral","src":"14167:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14138:3:53","nodeType":"YulIdentifier","src":"14138:3:53"},"nativeSrc":"14138:32:53","nodeType":"YulFunctionCall","src":"14138:32:53"},"nativeSrc":"14135:119:53","nodeType":"YulIf","src":"14135:119:53"},{"nativeSrc":"14264:128:53","nodeType":"YulBlock","src":"14264:128:53","statements":[{"nativeSrc":"14279:15:53","nodeType":"YulVariableDeclaration","src":"14279:15:53","value":{"kind":"number","nativeSrc":"14293:1:53","nodeType":"YulLiteral","src":"14293:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14283:6:53","nodeType":"YulTypedName","src":"14283:6:53","type":""}]},{"nativeSrc":"14308:74:53","nodeType":"YulAssignment","src":"14308:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14354:9:53","nodeType":"YulIdentifier","src":"14354:9:53"},{"name":"offset","nativeSrc":"14365:6:53","nodeType":"YulIdentifier","src":"14365:6:53"}],"functionName":{"name":"add","nativeSrc":"14350:3:53","nodeType":"YulIdentifier","src":"14350:3:53"},"nativeSrc":"14350:22:53","nodeType":"YulFunctionCall","src":"14350:22:53"},{"name":"dataEnd","nativeSrc":"14374:7:53","nodeType":"YulIdentifier","src":"14374:7:53"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"14318:31:53","nodeType":"YulIdentifier","src":"14318:31:53"},"nativeSrc":"14318:64:53","nodeType":"YulFunctionCall","src":"14318:64:53"},"variableNames":[{"name":"value0","nativeSrc":"14308:6:53","nodeType":"YulIdentifier","src":"14308:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14048:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14095:9:53","nodeType":"YulTypedName","src":"14095:9:53","type":""},{"name":"dataEnd","nativeSrc":"14106:7:53","nodeType":"YulTypedName","src":"14106:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14118:6:53","nodeType":"YulTypedName","src":"14118:6:53","type":""}],"src":"14048:351:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Validator_$18282_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$18282_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Validator_$18282__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Validator_$18282_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n // struct ContractAction.InitPayload\n function abi_decode_t_struct$_InitPayload_$12783_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // chainId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // value\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$12783_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$12783_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function revert_error_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_address_payablet_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_dataslot_t_bytes_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function read_from_memoryt_bytes32(ptr) -> returnValue {\n\n let value := cleanup_t_bytes32(mload(ptr))\n\n returnValue :=\n\n value\n\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value {\n\n let length := array_length_t_bytes_memory_ptr(array)\n let dataArea := array\n\n dataArea := array_dataslot_t_bytes_memory_ptr(array)\n\n value := read_from_memoryt_bytes32(dataArea)\n\n if lt(length, 32) {\n value := and(\n value,\n shift_left_dynamic(\n mul(8, sub(32, length)),\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n )\n )\n }\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"12716":[{"length":32,"start":1148}]},"linkReferences":{},"object":"608060405260043610610108575f3560e01c80639a8a059211610094578063d7768c4711610063578063d7768c4714610309578063ea3d508a14610345578063f04e283e1461036f578063f2fde38b1461038b578063fee81cf4146103a757610108565b80639a8a05921461023d578063bec9527714610267578063c16e50ef146102a3578063d4b83992146102df57610108565b80633fa4f245116100db5780633fa4f245146101ad578063439fab91146101d757806354d1f13d146101ff578063715018a6146102095780638da5cb5b1461021357610108565b806301ffc9a71461010c57806309c5eabe146101485780632569296214610179578063393df8cb14610183575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610d47565b6103e3565b60405161013f9190610d8c565b60405180910390f35b610162600480360381019061015d9190610e06565b6103f4565b604051610170929190610ec1565b60405180910390f35b610181610429565b005b34801561018e575f80fd5b5061019761047a565b6040516101a49190610f69565b60405180910390f35b3480156101b8575f80fd5b506101c161049e565b6040516101ce9190610f9a565b60405180910390f35b3480156101e2575f80fd5b506101fd60048036038101906101f89190610e06565b6104a4565b005b610207610531565b005b61021161056a565b005b34801561021e575f80fd5b5061022761057d565b6040516102349190610fd3565b60405180910390f35b348015610248575f80fd5b506102516105a5565b60405161025e9190610f9a565b60405180910390f35b348015610272575f80fd5b5061028d60048036038101906102889190611016565b6105aa565b60405161029a9190610d8c565b60405180910390f35b3480156102ae575f80fd5b506102c960048036038101906102c49190610e06565b6105c7565b6040516102d69190610d8c565b60405180910390f35b3480156102ea575f80fd5b506102f3610721565b6040516103009190610fd3565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a9190610e06565b610746565b60405161033c9190611041565b60405180910390f35b348015610350575f80fd5b5061035961075a565b6040516103669190611070565b60405180910390f35b610389600480360381019061038491906110b3565b61076d565b005b6103a560048036038101906103a091906110b3565b6107ab565b005b3480156103b2575f80fd5b506103cd60048036038101906103c891906110b3565b6107d4565b6040516103da9190610f9a565b60405180910390f35b5f6103ed826107ed565b9050919050565b5f60606040517fe1ebb83b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610432610866565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6104ad610870565b905080546003825580156104df5760018160011c14303b106104d65763f92ee8a95f526004601cfd5b818160ff1b1b91505b506104f783838101906104f291906111cf565b610899565b801561052c576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105726108b6565b61057b5f6108ed565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f84848101906105d991906112e5565b915091505f816105e890611377565b5f1c90508273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161065d9190610f9a565b602060405180830381865afa158015610678573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069c91906113f1565b73ffffffffffffffffffffffffffffffffffffffff161480156106da575060035f8281526020019081526020015f205f9054906101000a900460ff16155b1561071457600160035f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055506001935050505061071b565b5f93505050505b92915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061075283836109b3565b905092915050565b600160149054906101000a900460e01b81565b6107756108b6565b63389a75e1600c52805f526020600c20805442111561079b57636f5e88185f526004601cfd5b5f8155506107a8816108ed565b50565b6107b36108b6565b8060601b6107c857637448fbae5f526004601cfd5b6107d1816108ed565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061085f575061085e826109d7565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108a1610a50565b6108aa81610a74565b6108b333610af9565b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146108eb576382b429005f526004601cfd5b565b6108f5610bcf565b1561095a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506109b0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b60606109cf600160149054906101000a900460e01b8484610bd3565b905092915050565b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a495750610a4882610bff565b5b9050919050565b5f610a59610870565b90508054600116610a715763d7e6bcf85f526004601cfd5b50565b610a7c610a50565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b610b01610bcf565b15610b79577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b3b57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610bcc565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c715750610c7082610c78565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d2681610cf2565b8114610d30575f80fd5b50565b5f81359050610d4181610d1d565b92915050565b5f60208284031215610d5c57610d5b610cea565b5b5f610d6984828501610d33565b91505092915050565b5f8115159050919050565b610d8681610d72565b82525050565b5f602082019050610d9f5f830184610d7d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610dc657610dc5610da5565b5b8235905067ffffffffffffffff811115610de357610de2610da9565b5b602083019150836001820283011115610dff57610dfe610dad565b5b9250929050565b5f8060208385031215610e1c57610e1b610cea565b5b5f83013567ffffffffffffffff811115610e3957610e38610cee565b5b610e4585828601610db1565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9382610e51565b610e9d8185610e5b565b9350610ead818560208601610e6b565b610eb681610e79565b840191505092915050565b5f604082019050610ed45f830185610d7d565b8181036020830152610ee68184610e89565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f31610f2c610f2784610eef565b610f0e565b610eef565b9050919050565b5f610f4282610f17565b9050919050565b5f610f5382610f38565b9050919050565b610f6381610f49565b82525050565b5f602082019050610f7c5f830184610f5a565b92915050565b5f819050919050565b610f9481610f82565b82525050565b5f602082019050610fad5f830184610f8b565b92915050565b5f610fbd82610eef565b9050919050565b610fcd81610fb3565b82525050565b5f602082019050610fe65f830184610fc4565b92915050565b610ff581610f82565b8114610fff575f80fd5b50565b5f8135905061101081610fec565b92915050565b5f6020828403121561102b5761102a610cea565b5b5f61103884828501611002565b91505092915050565b5f6020820190508181035f8301526110598184610e89565b905092915050565b61106a81610cf2565b82525050565b5f6020820190506110835f830184611061565b92915050565b61109281610fb3565b811461109c575f80fd5b50565b5f813590506110ad81611089565b92915050565b5f602082840312156110c8576110c7610cea565b5b5f6110d58482850161109f565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61111882610e79565b810181811067ffffffffffffffff82111715611137576111366110e2565b5b80604052505050565b5f611149610ce1565b9050611155828261110f565b919050565b5f6080828403121561116f5761116e6110de565b5b6111796080611140565b90505f61118884828501611002565b5f83015250602061119b8482850161109f565b60208301525060406111af84828501610d33565b60408301525060606111c384828501611002565b60608301525092915050565b5f608082840312156111e4576111e3610cea565b5b5f6111f18482850161115a565b91505092915050565b5f61120482610eef565b9050919050565b611214816111fa565b811461121e575f80fd5b50565b5f8135905061122f8161120b565b92915050565b5f80fd5b5f67ffffffffffffffff821115611253576112526110e2565b5b61125c82610e79565b9050602081019050919050565b828183375f83830152505050565b5f61128961128484611239565b611140565b9050828152602081018484840111156112a5576112a4611235565b5b6112b0848285611269565b509392505050565b5f82601f8301126112cc576112cb610da5565b5b81356112dc848260208601611277565b91505092915050565b5f80604083850312156112fb576112fa610cea565b5b5f61130885828601611221565b925050602083013567ffffffffffffffff81111561132957611328610cee565b5b611335858286016112b8565b9150509250929050565b5f819050602082019050919050565b5f819050919050565b5f611362825161134e565b80915050919050565b5f82821b905092915050565b5f61138182610e51565b8261138b8461133f565b905061139681611357565b925060208210156113d6576113d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261136b565b831692505b5050919050565b5f815190506113eb81611089565b92915050565b5f6020828403121561140657611405610cea565b5b5f611413848285016113dd565b9150509291505056fea26469706673582212201eed06d9c91007e2b028d9b47b4370f06ff230572c76ee6cca214af1f4c9bfb464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A8A0592 GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xD7768C47 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A7 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xBEC95277 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x2DF JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x3FA4F245 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x213 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x183 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xD47 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x3F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP3 SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x429 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x197 PUSH2 0x47A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH2 0x49E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CE SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x207 PUSH2 0x531 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x211 PUSH2 0x56A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x251 PUSH2 0x5A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x1016 JUMP JUMPDEST PUSH2 0x5AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29A SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F3 PUSH2 0x721 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x32A SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x746 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0x75A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x366 SWAP2 SWAP1 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x389 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x384 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x76D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7AB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH2 0x3ED DUP3 PUSH2 0x7ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH32 0xE1EBB83B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x432 PUSH2 0x866 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4AD PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4D6 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x4F7 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x11CF JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x52C JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x572 PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x57B PUSH0 PUSH2 0x8ED JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x5D9 SWAP2 SWAP1 PUSH2 0x12E5 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP2 PUSH2 0x5E8 SWAP1 PUSH2 0x1377 JUMP JUMPDEST PUSH0 SHR SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x65D SWAP2 SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x678 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x69C SWAP2 SWAP1 PUSH2 0x13F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x6DA JUMPI POP PUSH1 0x3 PUSH0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x714 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x71B JUMP JUMPDEST PUSH0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x752 DUP4 DUP4 PUSH2 0x9B3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0x775 PUSH2 0x8B6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x79B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x7A8 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7B3 PUSH2 0x8B6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7C8 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7D1 DUP2 PUSH2 0x8ED JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x85F JUMPI POP PUSH2 0x85E DUP3 PUSH2 0x9D7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0xA50 JUMP JUMPDEST PUSH2 0x8AA DUP2 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x8B3 CALLER PUSH2 0xAF9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x8EB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x8F5 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0x95A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x9B0 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x9CF PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xE671579500000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA49 JUMPI POP PUSH2 0xA48 DUP3 PUSH2 0xBFF JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA59 PUSH2 0x870 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0xA71 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA7C PUSH2 0xA50 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xB01 PUSH2 0xBCF JUMP JUMPDEST ISZERO PUSH2 0xB79 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB3B JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xBCC JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC71 JUMPI POP PUSH2 0xC70 DUP3 PUSH2 0xC78 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD26 DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP2 EQ PUSH2 0xD30 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD41 DUP2 PUSH2 0xD1D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5C JUMPI PUSH2 0xD5B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD86 DUP2 PUSH2 0xD72 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD9F PUSH0 DUP4 ADD DUP5 PUSH2 0xD7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDC6 JUMPI PUSH2 0xDC5 PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDE3 JUMPI PUSH2 0xDE2 PUSH2 0xDA9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xDFF JUMPI PUSH2 0xDFE PUSH2 0xDAD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1C JUMPI PUSH2 0xE1B PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE38 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0xE45 DUP6 DUP3 DUP7 ADD PUSH2 0xDB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE93 DUP3 PUSH2 0xE51 JUMP JUMPDEST PUSH2 0xE9D DUP2 DUP6 PUSH2 0xE5B JUMP JUMPDEST SWAP4 POP PUSH2 0xEAD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE6B JUMP JUMPDEST PUSH2 0xEB6 DUP2 PUSH2 0xE79 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xED4 PUSH0 DUP4 ADD DUP6 PUSH2 0xD7D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF31 PUSH2 0xF2C PUSH2 0xF27 DUP5 PUSH2 0xEEF JUMP JUMPDEST PUSH2 0xF0E JUMP JUMPDEST PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF42 DUP3 PUSH2 0xF17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF53 DUP3 PUSH2 0xF38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF63 DUP2 PUSH2 0xF49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF7C PUSH0 DUP4 ADD DUP5 PUSH2 0xF5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF94 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFAD PUSH0 DUP4 ADD DUP5 PUSH2 0xF8B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFBD DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFCD DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFE6 PUSH0 DUP4 ADD DUP5 PUSH2 0xFC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFF5 DUP2 PUSH2 0xF82 JUMP JUMPDEST DUP2 EQ PUSH2 0xFFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1010 DUP2 PUSH2 0xFEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1038 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1059 DUP2 DUP5 PUSH2 0xE89 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x106A DUP2 PUSH2 0xCF2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1083 PUSH0 DUP4 ADD DUP5 PUSH2 0x1061 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1092 DUP2 PUSH2 0xFB3 JUMP JUMPDEST DUP2 EQ PUSH2 0x109C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10AD DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10C8 JUMPI PUSH2 0x10C7 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10D5 DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1118 DUP3 PUSH2 0xE79 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1137 JUMPI PUSH2 0x1136 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1149 PUSH2 0xCE1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1155 DUP3 DUP3 PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH2 0x116E PUSH2 0x10DE JUMP JUMPDEST JUMPDEST PUSH2 0x1179 PUSH1 0x80 PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1188 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x119B DUP5 DUP3 DUP6 ADD PUSH2 0x109F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x11AF DUP5 DUP3 DUP6 ADD PUSH2 0xD33 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x11C3 DUP5 DUP3 DUP6 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11E4 JUMPI PUSH2 0x11E3 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11F1 DUP5 DUP3 DUP6 ADD PUSH2 0x115A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1204 DUP3 PUSH2 0xEEF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1214 DUP2 PUSH2 0x11FA JUMP JUMPDEST DUP2 EQ PUSH2 0x121E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122F DUP2 PUSH2 0x120B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1253 JUMPI PUSH2 0x1252 PUSH2 0x10E2 JUMP JUMPDEST JUMPDEST PUSH2 0x125C DUP3 PUSH2 0xE79 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1289 PUSH2 0x1284 DUP5 PUSH2 0x1239 JUMP JUMPDEST PUSH2 0x1140 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x12A5 JUMPI PUSH2 0x12A4 PUSH2 0x1235 JUMP JUMPDEST JUMPDEST PUSH2 0x12B0 DUP5 DUP3 DUP6 PUSH2 0x1269 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12CC JUMPI PUSH2 0x12CB PUSH2 0xDA5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12DC DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1277 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12FB JUMPI PUSH2 0x12FA PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1308 DUP6 DUP3 DUP7 ADD PUSH2 0x1221 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1329 JUMPI PUSH2 0x1328 PUSH2 0xCEE JUMP JUMPDEST JUMPDEST PUSH2 0x1335 DUP6 DUP3 DUP7 ADD PUSH2 0x12B8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1362 DUP3 MLOAD PUSH2 0x134E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1381 DUP3 PUSH2 0xE51 JUMP JUMPDEST DUP3 PUSH2 0x138B DUP5 PUSH2 0x133F JUMP JUMPDEST SWAP1 POP PUSH2 0x1396 DUP2 PUSH2 0x1357 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x13D6 JUMPI PUSH2 0x13D1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x136B JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EB DUP2 PUSH2 0x1089 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1406 JUMPI PUSH2 0x1405 PUSH2 0xCEA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1413 DUP5 DUP3 DUP6 ADD PUSH2 0x13DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xED MOD 0xD9 0xC9 LT SMOD 0xE2 0xB0 0x28 0xD9 0xB4 PUSH28 0x4370F06FF230572C76EE6CCA214AF1F4C9BFB464736F6C6343000819 STOP CALLER ","sourceMap":"813:3156:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3630:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2003:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1149:36:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1065:20:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:167:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;814:22:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1006:41:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3161:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;879:21:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2541:127:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;966:22:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3630:170:33;3734:4;3757:36;3781:11;3757:23;:36::i;:::-;3750:43;;3630:170;;;:::o;2003:198::-;2077:12;2091:23;2171;;;;;;;;;;;;;;9021:617:17;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1149:36:31:-;;;:::o;1065:20:32:-;;;;:::o;1576:167:33:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1691:45:33::1;1714:5;;1703:32;;;;;;;:::i;:::-;1691:11;:45::i;:::-;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1576:167:33;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;814:22:32:-;;;;:::o;1006:41:33:-;;;;;;;;;;;;;;;;;;;;;;:::o;3161:433::-;3236:12;3261:14;3277:20;3312:5;;3301:35;;;;;;;:::i;:::-;3260:76;;;;3346:15;3380:7;3372:16;;;:::i;:::-;3364:25;;3346:43;;3439:6;3404:41;;3411:6;;;;;;;;;;;3404:22;;;3427:7;3404:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;;:64;;;;;3450:9;:18;3460:7;3450:18;;;;;;;;;;;;;;;;;;;;;3449:19;3404:64;3400:188;;;3505:4;3484:9;:18;3494:7;3484:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3530:4;3523:11;;;;;;;3400:188;3572:5;3565:12;;;;;3161:433;;;;;:::o;879:21:32:-;;;;;;;;;;;;;:::o;2541:127:33:-;2610:12;2641:20;2655:5;;2641:13;:20::i;:::-;2634:27;;2541:127;;;;:::o;966:22:32:-;;;;;;;;;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1512:208:52:-;1608:4;1646:27;1631:42;;;:11;:42;;;;:82;;;;1677:36;1701:11;1677:23;:36::i;:::-;1631:82;1624:89;;1512:208;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;3806:161:33:-;5662:20:21;:18;:20::i;:::-;3898:24:33::1;3916:5;3898:17;:24::i;:::-;3932:28;3949:10;3932:16;:28::i;:::-;3806:161:::0;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;1744:152:32:-;1821:19;1859:30;1873:8;;;;;;;;;;;1883:5;;1859:13;:30::i;:::-;1852:37;;1744:152;;;;:::o;1749:205:31:-;1845:4;1883:24;1868:39;;;:11;:39;;;;:79;;;;1911:36;1935:11;1911:23;:36::i;:::-;1868:79;1861:86;;1749:205;;;:::o;5764:329:21:-;5826:9;5838:20;:18;:20::i;:::-;5826:32;;5957:1;5951:8;5948:1;5944:16;5934:143;;5993:10;5987:4;5980:24;6058:4;6052;6045:18;5934:143;5920:167;5764:329::o;1902:216:32:-;5662:20:21;:18;:20::i;:::-;2003:5:32::1;:13;;;1993:7;:23;;;;2035:5;:12;;;2026:6;;:21;;;;;;;;;;;;;;;;;;2068:5;:14;;;2057:8;;:25;;;;;;;;;;;;;;;;;;2100:5;:11;;;2092:5;:19;;;;1902:216:::0;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4348:78::-;4412:10;4348:78;:::o;2124:569:32:-;2214:20;2334:16;2331:1;2327:24;2381:4;2375:11;2364:22;;2415:4;2406:7;2399:21;2469:4;2463;2459:15;2450:7;2446:29;2440:4;2433:43;2586:9;2579:4;2570:7;2566:18;2559:37;2660:16;2642;2635:4;2626:7;2622:18;2609:68;2255:432;2124:569;;;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:407::-;4034:4;4072:2;4061:9;4057:18;4049:26;;4085:65;4147:1;4136:9;4132:17;4123:6;4085:65;:::i;:::-;4197:9;4191:4;4187:20;4182:2;4171:9;4167:18;4160:48;4225:76;4296:4;4287:6;4225:76;:::i;:::-;4217:84;;3901:407;;;;;:::o;4314:126::-;4351:7;4391:42;4384:5;4380:54;4369:65;;4314:126;;;:::o;4446:60::-;4474:3;4495:5;4488:12;;4446:60;;;:::o;4512:142::-;4562:9;4595:53;4613:34;4622:24;4640:5;4622:24;:::i;:::-;4613:34;:::i;:::-;4595:53;:::i;:::-;4582:66;;4512:142;;;:::o;4660:126::-;4710:9;4743:37;4774:5;4743:37;:::i;:::-;4730:50;;4660:126;;;:::o;4792:145::-;4861:9;4894:37;4925:5;4894:37;:::i;:::-;4881:50;;4792:145;;;:::o;4943:169::-;5049:56;5099:5;5049:56;:::i;:::-;5044:3;5037:69;4943:169;;:::o;5118:260::-;5230:4;5268:2;5257:9;5253:18;5245:26;;5281:90;5368:1;5357:9;5353:17;5344:6;5281:90;:::i;:::-;5118:260;;;;:::o;5384:77::-;5421:7;5450:5;5439:16;;5384:77;;;:::o;5467:118::-;5554:24;5572:5;5554:24;:::i;:::-;5549:3;5542:37;5467:118;;:::o;5591:222::-;5684:4;5722:2;5711:9;5707:18;5699:26;;5735:71;5803:1;5792:9;5788:17;5779:6;5735:71;:::i;:::-;5591:222;;;;:::o;5819:96::-;5856:7;5885:24;5903:5;5885:24;:::i;:::-;5874:35;;5819:96;;;:::o;5921:118::-;6008:24;6026:5;6008:24;:::i;:::-;6003:3;5996:37;5921:118;;:::o;6045:222::-;6138:4;6176:2;6165:9;6161:18;6153:26;;6189:71;6257:1;6246:9;6242:17;6233:6;6189:71;:::i;:::-;6045:222;;;;:::o;6273:122::-;6346:24;6364:5;6346:24;:::i;:::-;6339:5;6336:35;6326:63;;6385:1;6382;6375:12;6326:63;6273:122;:::o;6401:139::-;6447:5;6485:6;6472:20;6463:29;;6501:33;6528:5;6501:33;:::i;:::-;6401:139;;;;:::o;6546:329::-;6605:6;6654:2;6642:9;6633:7;6629:23;6625:32;6622:119;;;6660:79;;:::i;:::-;6622:119;6780:1;6805:53;6850:7;6841:6;6830:9;6826:22;6805:53;:::i;:::-;6795:63;;6751:117;6546:329;;;;:::o;6881:309::-;6992:4;7030:2;7019:9;7015:18;7007:26;;7079:9;7073:4;7069:20;7065:1;7054:9;7050:17;7043:47;7107:76;7178:4;7169:6;7107:76;:::i;:::-;7099:84;;6881:309;;;;:::o;7196:115::-;7281:23;7298:5;7281:23;:::i;:::-;7276:3;7269:36;7196:115;;:::o;7317:218::-;7408:4;7446:2;7435:9;7431:18;7423:26;;7459:69;7525:1;7514:9;7510:17;7501:6;7459:69;:::i;:::-;7317:218;;;;:::o;7541:122::-;7614:24;7632:5;7614:24;:::i;:::-;7607:5;7604:35;7594:63;;7653:1;7650;7643:12;7594:63;7541:122;:::o;7669:139::-;7715:5;7753:6;7740:20;7731:29;;7769:33;7796:5;7769:33;:::i;:::-;7669:139;;;;:::o;7814:329::-;7873:6;7922:2;7910:9;7901:7;7897:23;7893:32;7890:119;;;7928:79;;:::i;:::-;7890:119;8048:1;8073:53;8118:7;8109:6;8098:9;8094:22;8073:53;:::i;:::-;8063:63;;8019:117;7814:329;;;;:::o;8149:117::-;8258:1;8255;8248:12;8272:180;8320:77;8317:1;8310:88;8417:4;8414:1;8407:15;8441:4;8438:1;8431:15;8458:281;8541:27;8563:4;8541:27;:::i;:::-;8533:6;8529:40;8671:6;8659:10;8656:22;8635:18;8623:10;8620:34;8617:62;8614:88;;;8682:18;;:::i;:::-;8614:88;8722:10;8718:2;8711:22;8501:238;8458:281;;:::o;8745:129::-;8779:6;8806:20;;:::i;:::-;8796:30;;8835:33;8863:4;8855:6;8835:33;:::i;:::-;8745:129;;;:::o;9044:910::-;9123:5;9167:4;9155:9;9150:3;9146:19;9142:30;9139:117;;;9175:79;;:::i;:::-;9139:117;9274:21;9290:4;9274:21;:::i;:::-;9265:30;;9357:1;9397:49;9442:3;9433:6;9422:9;9418:22;9397:49;:::i;:::-;9390:4;9383:5;9379:16;9372:75;9305:153;9519:2;9560:49;9605:3;9596:6;9585:9;9581:22;9560:49;:::i;:::-;9553:4;9546:5;9542:16;9535:75;9468:153;9684:2;9725:48;9769:3;9760:6;9749:9;9745:22;9725:48;:::i;:::-;9718:4;9711:5;9707:16;9700:74;9631:154;9845:2;9886:49;9931:3;9922:6;9911:9;9907:22;9886:49;:::i;:::-;9879:4;9872:5;9868:16;9861:75;9795:152;9044:910;;;;:::o;9960:390::-;10049:6;10098:3;10086:9;10077:7;10073:23;10069:33;10066:120;;;10105:79;;:::i;:::-;10066:120;10225:1;10250:83;10325:7;10316:6;10305:9;10301:22;10250:83;:::i;:::-;10240:93;;10196:147;9960:390;;;;:::o;10356:104::-;10401:7;10430:24;10448:5;10430:24;:::i;:::-;10419:35;;10356:104;;;:::o;10466:138::-;10547:32;10573:5;10547:32;:::i;:::-;10540:5;10537:43;10527:71;;10594:1;10591;10584:12;10527:71;10466:138;:::o;10610:155::-;10664:5;10702:6;10689:20;10680:29;;10718:41;10753:5;10718:41;:::i;:::-;10610:155;;;;:::o;10771:117::-;10880:1;10877;10870:12;10894:307;10955:4;11045:18;11037:6;11034:30;11031:56;;;11067:18;;:::i;:::-;11031:56;11105:29;11127:6;11105:29;:::i;:::-;11097:37;;11189:4;11183;11179:15;11171:23;;10894:307;;;:::o;11207:148::-;11305:6;11300:3;11295;11282:30;11346:1;11337:6;11332:3;11328:16;11321:27;11207:148;;;:::o;11361:423::-;11438:5;11463:65;11479:48;11520:6;11479:48;:::i;:::-;11463:65;:::i;:::-;11454:74;;11551:6;11544:5;11537:21;11589:4;11582:5;11578:16;11627:3;11618:6;11613:3;11609:16;11606:25;11603:112;;;11634:79;;:::i;:::-;11603:112;11724:54;11771:6;11766:3;11761;11724:54;:::i;:::-;11444:340;11361:423;;;;;:::o;11803:338::-;11858:5;11907:3;11900:4;11892:6;11888:17;11884:27;11874:122;;11915:79;;:::i;:::-;11874:122;12032:6;12019:20;12057:78;12131:3;12123:6;12116:4;12108:6;12104:17;12057:78;:::i;:::-;12048:87;;11864:277;11803:338;;;;:::o;12147:668::-;12232:6;12240;12289:2;12277:9;12268:7;12264:23;12260:32;12257:119;;;12295:79;;:::i;:::-;12257:119;12415:1;12440:61;12493:7;12484:6;12473:9;12469:22;12440:61;:::i;:::-;12430:71;;12386:125;12578:2;12567:9;12563:18;12550:32;12609:18;12601:6;12598:30;12595:117;;;12631:79;;:::i;:::-;12595:117;12736:62;12790:7;12781:6;12770:9;12766:22;12736:62;:::i;:::-;12726:72;;12521:287;12147:668;;;;;:::o;12821:116::-;12872:4;12895:3;12887:11;;12925:4;12920:3;12916:14;12908:22;;12821:116;;;:::o;12943:77::-;12980:7;13009:5;12998:16;;12943:77;;;:::o;13026:154::-;13069:11;13105:29;13129:3;13123:10;13105:29;:::i;:::-;13168:5;13144:29;;13081:99;13026:154;;;:::o;13186:107::-;13230:8;13280:5;13274:4;13270:16;13249:37;;13186:107;;;;:::o;13299:594::-;13383:5;13414:38;13446:5;13414:38;:::i;:::-;13477:5;13504:40;13538:5;13504:40;:::i;:::-;13492:52;;13563:35;13589:8;13563:35;:::i;:::-;13554:44;;13622:2;13614:6;13611:14;13608:278;;;13693:169;13778:66;13748:6;13744:2;13740:15;13737:1;13733:23;13693:169;:::i;:::-;13670:5;13649:227;13640:236;;13608:278;13389:504;;13299:594;;;:::o;13899:143::-;13956:5;13987:6;13981:13;13972:22;;14003:33;14030:5;14003:33;:::i;:::-;13899:143;;;;:::o;14048:351::-;14118:6;14167:2;14155:9;14146:7;14142:23;14138:32;14135:119;;;14173:79;;:::i;:::-;14135:119;14293:1;14318:64;14374:7;14365:6;14354:9;14350:22;14318:64;:::i;:::-;14308:74;;14264:128;14048:351;;;;:::o"},"methodIdentifiers":{"VALIDATOR()":"393df8cb","cancelOwnershipHandover()":"54d1f13d","chainId()":"9a8a0592","completeOwnershipHandover(address)":"f04e283e","execute(bytes)":"09c5eabe","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","prepare(bytes)":"d7768c47","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef","validated(uint256)":"bec95277","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecuteNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"validated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The action is expected to be prepared with the data payload for the minting of the tokenThis a minimal generic implementation that should be extended if additional functionality or customizations are requiredIt is expected that the target contract has an externally accessible mint function whose selector\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the call (not used in this implementation)\"},\"returns\":{\"returnData\":\"The return data from the call\",\"success\":\"The success status of the call\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The data payload for the mint action `(address target, bytes4 selector, uint256 value)`\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"prepare(bytes)\":{\"details\":\"Note that the mint value is NOT included in the prepared payload but must be sent with the call\",\"params\":{\"data_\":\"The ABI-encoded payload for the target contract call\"},\"returns\":{\"_0\":\"The encoded payload to be sent to the target contract\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`\",\"params\":{\"data_\":\"The data payload for the action `(address holder, (uint256 tokenId))`\"},\"returns\":{\"success\":\"True if the action has been validated for the user\"}}},\"stateVariables\":{\"validated\":{\"details\":\"This is intended to prevent multiple validations against the same token ID\"}},\"title\":\"ERC721 Mint Action\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"ExecuteNotImplemented()\":[{\"notice\":\"Thrown when the `execute` function is not implemented\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"constructor\":{\"notice\":\"Construct the ERC721 Mint Action\"},\"execute(bytes)\":{\"notice\":\"Execute the action (not yet implemented)\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the owner and the required mint data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"},\"validated(uint256)\":{\"notice\":\"The set of validated tokens\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"notice\":\"A primitive action to mint and/or validate that an ERC721 token has been minted\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/ERC721MintAction.sol\":\"ERC721MintAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/actions/ContractAction.sol\":{\"keccak256\":\"0x1d216cdb7e8011350fd07c8b796235264da51e788701f6be92605277c7b457d5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5198f63609e67be2f9b9660837f9c576aca3ed3af370d39fd53c184aecb3e0e4\",\"dweb:/ipfs/QmYEhsxWWsw12koqkUFLYT8SVexdpPH8hD3Ezh1aHBdmig\"]},\"contracts/actions/ERC721MintAction.sol\":{\"keccak256\":\"0x571450eae6e044c80b531a68e677aa6bc51489ed3fb9892cefa29c04cf9d5a17\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ec0898266404aa6219dd575ca96f727245d5ebe4ac4b400ee9922916381fa91f\",\"dweb:/ipfs/QmVoK8fQCKR8o8N178UDK8Spvi5dB2LVHghaf63WtsP6X9\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/allowlists/AllowList.sol":{"AllowList":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isAllowed(address,bytes)\":{\"params\":{\"data_\":\"The data payload for the authorization check, if applicable\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost AllowList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor to initialize the owner\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Allow List within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/AllowList.sol\":\"AllowList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/allowlists/SimpleAllowList.sol":{"SimpleAllowList":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"inputs":[],"name":"LIST_MANAGER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"allowed_","type":"bool[]"}],"name":"setAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13120":{"entryPoint":null,"id":13120,"parameterSlots":0,"returnSlots":0},"@_13186":{"entryPoint":null,"id":13186,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611311806101b45f395ff3fe608060405260043610610108575f3560e01c8063514e62fc1161009457806398332bbc1161006357806398332bbc146102e8578063e3f756de14610312578063f04e283e1461034e578063f2fde38b1461036a578063fee81cf41461038657610108565b8063514e62fc1461026e57806354d1f13d146102aa578063715018a6146102b45780638da5cb5b146102be57610108565b806325692962116100db57806325692962146101bc5780632de94807146101c65780633abb060414610202578063439fab911461022a5780634a4ee7b11461025257610108565b806301ffc9a71461010c578063183a4f6e146101485780631c10893f146101645780631cd64df414610180575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610c7c565b6103c2565b60405161013f9190610cc1565b60405180910390f35b610162600480360381019061015d9190610d0d565b61043b565b005b61017e60048036038101906101799190610d92565b610448565b005b34801561018b575f80fd5b506101a660048036038101906101a19190610d92565b61045e565b6040516101b39190610cc1565b60405180910390f35b6101c4610474565b005b3480156101d1575f80fd5b506101ec60048036038101906101e79190610dd0565b6104c5565b6040516101f99190610e0a565b60405180910390f35b34801561020d575f80fd5b5061022860048036038101906102239190610ed9565b6104de565b005b348015610235575f80fd5b50610250600480360381019061024b9190610fac565b6105eb565b005b61026c60048036038101906102679190610d92565b610713565b005b348015610279575f80fd5b50610294600480360381019061028f9190610d92565b610729565b6040516102a19190610cc1565b60405180910390f35b6102b2610740565b005b6102bc610779565b005b3480156102c9575f80fd5b506102d261078c565b6040516102df9190611006565b60405180910390f35b3480156102f3575f80fd5b506102fc6107b4565b6040516103099190610e0a565b60405180910390f35b34801561031d575f80fd5b506103386004803603810190610333919061101f565b6107b9565b6040516103459190610cc1565b60405180910390f35b61036860048036038101906103639190610dd0565b61080c565b005b610384600480360381019061037f9190610dd0565b61084a565b005b348015610391575f80fd5b506103ac60048036038101906103a79190610dd0565b610873565b6040516103b99190610e0a565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043457506104338261088c565b5b9050919050565b6104453382610905565b50565b610450610914565b61045a828261094b565b5050565b5f818261046a856104c5565b1614905092915050565b5f61047d61095b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b60026104e981610965565b828290508585905014610528576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156105e3578383828181106105485761054761107c565b5b905060200201602081019061055d91906110d3565b5f808888858181106105725761057161107c565b5b90506020020160208101906105879190610dd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061052a565b505050505050565b5f6105f461098c565b905080546003825580156106265760018160011c14303b1061061d5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906106389190611281565b91509150610645826109b5565b61065082600261094b565b5f5b81518110156106d65760015f808484815181106106725761067161107c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610652565b505050801561070e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b61071b610914565b6107258282610905565b5050565b5f8082610735856104c5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610781610914565b61078a5f610a8b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610814610914565b63389a75e1600c52805f526020600c20805442111561083a57636f5e88185f526004601cfd5b5f81555061084781610a8b565b50565b610852610914565b8060601b61086757637448fbae5f526004601cfd5b61087081610a8b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fe57506108fd82610b51565b5b9050919050565b61091082825f610bba565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610949576382b429005f526004601cfd5b565b61095782826001610bba565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c205416610989576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6109bd610c12565b15610a35577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156109f757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610a88565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610a93610c12565b15610af8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610b4e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b638b78c6d8600c52825f526020600c20805483811783610bdc57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c5b81610c27565b8114610c65575f80fd5b50565b5f81359050610c7681610c52565b92915050565b5f60208284031215610c9157610c90610c1f565b5b5f610c9e84828501610c68565b91505092915050565b5f8115159050919050565b610cbb81610ca7565b82525050565b5f602082019050610cd45f830184610cb2565b92915050565b5f819050919050565b610cec81610cda565b8114610cf6575f80fd5b50565b5f81359050610d0781610ce3565b92915050565b5f60208284031215610d2257610d21610c1f565b5b5f610d2f84828501610cf9565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d6182610d38565b9050919050565b610d7181610d57565b8114610d7b575f80fd5b50565b5f81359050610d8c81610d68565b92915050565b5f8060408385031215610da857610da7610c1f565b5b5f610db585828601610d7e565b9250506020610dc685828601610cf9565b9150509250929050565b5f60208284031215610de557610de4610c1f565b5b5f610df284828501610d7e565b91505092915050565b610e0481610cda565b82525050565b5f602082019050610e1d5f830184610dfb565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4457610e43610e23565b5b8235905067ffffffffffffffff811115610e6157610e60610e27565b5b602083019150836020820283011115610e7d57610e7c610e2b565b5b9250929050565b5f8083601f840112610e9957610e98610e23565b5b8235905067ffffffffffffffff811115610eb657610eb5610e27565b5b602083019150836020820283011115610ed257610ed1610e2b565b5b9250929050565b5f805f8060408587031215610ef157610ef0610c1f565b5b5f85013567ffffffffffffffff811115610f0e57610f0d610c23565b5b610f1a87828801610e2f565b9450945050602085013567ffffffffffffffff811115610f3d57610f3c610c23565b5b610f4987828801610e84565b925092505092959194509250565b5f8083601f840112610f6c57610f6b610e23565b5b8235905067ffffffffffffffff811115610f8957610f88610e27565b5b602083019150836001820283011115610fa557610fa4610e2b565b5b9250929050565b5f8060208385031215610fc257610fc1610c1f565b5b5f83013567ffffffffffffffff811115610fdf57610fde610c23565b5b610feb85828601610f57565b92509250509250929050565b61100081610d57565b82525050565b5f6020820190506110195f830184610ff7565b92915050565b5f805f6040848603121561103657611035610c1f565b5b5f61104386828701610d7e565b935050602084013567ffffffffffffffff81111561106457611063610c23565b5b61107086828701610f57565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6110b281610ca7565b81146110bc575f80fd5b50565b5f813590506110cd816110a9565b92915050565b5f602082840312156110e8576110e7610c1f565b5b5f6110f5848285016110bf565b91505092915050565b5f61110882610d38565b9050919050565b611118816110fe565b8114611122575f80fd5b50565b5f813590506111338161110f565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61117f82611139565b810181811067ffffffffffffffff8211171561119e5761119d611149565b5b80604052505050565b5f6111b0610c16565b90506111bc8282611176565b919050565b5f67ffffffffffffffff8211156111db576111da611149565b5b602082029050602081019050919050565b5f6111fe6111f9846111c1565b6111a7565b9050808382526020820190506020840283018581111561122157611220610e2b565b5b835b8181101561124a57806112368882610d7e565b845260208401935050602081019050611223565b5050509392505050565b5f82601f83011261126857611267610e23565b5b81356112788482602086016111ec565b91505092915050565b5f806040838503121561129757611296610c1f565b5b5f6112a485828601611125565b925050602083013567ffffffffffffffff8111156112c5576112c4610c23565b5b6112d185828601611254565b915050925092905056fea26469706673582212207bbcb52bcd17b2acb05e964af2f520d69a68d6012efbb2f646861e99ee8e53b264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1311 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x514E62FC GT PUSH2 0x94 JUMPI DUP1 PUSH4 0x98332BBC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x98332BBC EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x386 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x514E62FC EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2BE JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x25692962 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x3ABB0604 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x252 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x180 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xC7C JUMP JUMPDEST PUSH2 0x3C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xD0D JUMP JUMPDEST PUSH2 0x43B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A1 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C4 PUSH2 0x474 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0xED9 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x5EB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x267 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x713 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x729 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B2 PUSH2 0x740 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BC PUSH2 0x779 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D2 PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1006 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x309 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x384 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37F SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x391 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x434 JUMPI POP PUSH2 0x433 DUP3 PUSH2 0x88C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x445 CALLER DUP3 PUSH2 0x905 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x450 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x45A DUP3 DUP3 PUSH2 0x94B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x46A DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47D PUSH2 0x95B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH2 0x4E9 DUP2 PUSH2 0x965 JUMP JUMPDEST DUP3 DUP3 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x528 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP6 DUP6 SWAP1 POP DUP2 LT ISZERO PUSH2 0x5E3 JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x548 JUMPI PUSH2 0x547 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x55D SWAP2 SWAP1 PUSH2 0x10D3 JUMP JUMPDEST PUSH0 DUP1 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x572 JUMPI PUSH2 0x571 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x587 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x52A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5F4 PUSH2 0x98C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61D JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x638 SWAP2 SWAP1 PUSH2 0x1281 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x645 DUP3 PUSH2 0x9B5 JUMP JUMPDEST PUSH2 0x650 DUP3 PUSH1 0x2 PUSH2 0x94B JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x672 JUMPI PUSH2 0x671 PUSH2 0x107C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x652 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x70E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x71B PUSH2 0x914 JUMP JUMPDEST PUSH2 0x725 DUP3 DUP3 PUSH2 0x905 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0x735 DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x781 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x78A PUSH0 PUSH2 0xA8B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x814 PUSH2 0x914 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x83A JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x847 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x852 PUSH2 0x914 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x867 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x870 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8FE JUMPI POP PUSH2 0x8FD DUP3 PUSH2 0xB51 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x910 DUP3 DUP3 PUSH0 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x949 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x957 DUP3 DUP3 PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x989 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9BD PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xA35 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x9F7 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xA88 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xA93 PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xAF8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xB4E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0xBDC JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5B DUP2 PUSH2 0xC27 JUMP JUMPDEST DUP2 EQ PUSH2 0xC65 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC76 DUP2 PUSH2 0xC52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC90 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC9E DUP5 DUP3 DUP6 ADD PUSH2 0xC68 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCBB DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCD4 PUSH0 DUP4 ADD DUP5 PUSH2 0xCB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCEC DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP2 EQ PUSH2 0xCF6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD07 DUP2 PUSH2 0xCE3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD22 JUMPI PUSH2 0xD21 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD2F DUP5 DUP3 DUP6 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xD61 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD71 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP2 EQ PUSH2 0xD7B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD8C DUP2 PUSH2 0xD68 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA8 JUMPI PUSH2 0xDA7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDB5 DUP6 DUP3 DUP7 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC6 DUP6 DUP3 DUP7 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE5 JUMPI PUSH2 0xDE4 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDF2 DUP5 DUP3 DUP6 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE04 DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE1D PUSH0 DUP4 ADD DUP5 PUSH2 0xDFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE44 JUMPI PUSH2 0xE43 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE61 JUMPI PUSH2 0xE60 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE7D JUMPI PUSH2 0xE7C PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE99 JUMPI PUSH2 0xE98 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEB6 JUMPI PUSH2 0xEB5 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xED2 JUMPI PUSH2 0xED1 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xEF1 JUMPI PUSH2 0xEF0 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF1A DUP8 DUP3 DUP9 ADD PUSH2 0xE2F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF3D JUMPI PUSH2 0xF3C PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF49 DUP8 DUP3 DUP9 ADD PUSH2 0xE84 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF6C JUMPI PUSH2 0xF6B PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF88 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFA5 JUMPI PUSH2 0xFA4 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFC2 JUMPI PUSH2 0xFC1 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFDF JUMPI PUSH2 0xFDE PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xFEB DUP6 DUP3 DUP7 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1000 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1019 PUSH0 DUP4 ADD DUP5 PUSH2 0xFF7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1036 JUMPI PUSH2 0x1035 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1043 DUP7 DUP3 DUP8 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1064 JUMPI PUSH2 0x1063 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x1070 DUP7 DUP3 DUP8 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x10B2 DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10CD DUP2 PUSH2 0x10A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10F5 DUP5 DUP3 DUP6 ADD PUSH2 0x10BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1108 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1118 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP2 EQ PUSH2 0x1122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1133 DUP2 PUSH2 0x110F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x117F DUP3 PUSH2 0x1139 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x119E JUMPI PUSH2 0x119D PUSH2 0x1149 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11B0 PUSH2 0xC16 JUMP JUMPDEST SWAP1 POP PUSH2 0x11BC DUP3 DUP3 PUSH2 0x1176 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DB JUMPI PUSH2 0x11DA PUSH2 0x1149 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11FE PUSH2 0x11F9 DUP5 PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0x11A7 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 0x1221 JUMPI PUSH2 0x1220 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x124A JUMPI DUP1 PUSH2 0x1236 DUP9 DUP3 PUSH2 0xD7E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1268 JUMPI PUSH2 0x1267 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1278 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x11EC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1297 JUMPI PUSH2 0x1296 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A4 DUP6 DUP3 DUP7 ADD PUSH2 0x1125 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12C5 JUMPI PUSH2 0x12C4 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x12D1 DUP6 DUP3 DUP7 ADD PUSH2 0x1254 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0xBCB52BCD17B2ACB05E964AF2F520D69A68D6012EFBB2F646861E99EE DUP15 MSTORE8 0xB2 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"399:2116:35:-:0;;;909:53;;;;;;;;;;634:28:34;651:10;634:16;;;:28;;:::i;:::-;933:22:35;:20;;;:22;;:::i;:::-;399:2116;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;399:2116:35:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LIST_MANAGER_ROLE_13173":{"entryPoint":1972,"id":13173,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":2324,"id":6322,"parameterSlots":0,"returnSlots":0},"@_checkRoles_6505":{"entryPoint":2405,"id":6505,"parameterSlots":1,"returnSlots":0},"@_grantRoles_6482":{"entryPoint":2379,"id":6482,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3090,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2444,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2485,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":2395,"id":6333,"parameterSlots":0,"returnSlots":1},"@_removeRoles_6497":{"entryPoint":2309,"id":6497,"parameterSlots":2,"returnSlots":0},"@_setOwner_6316":{"entryPoint":2699,"id":6316,"parameterSlots":1,"returnSlots":0},"@_updateRoles_6467":{"entryPoint":3002,"id":6467,"parameterSlots":3,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1856,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2060,"id":6396,"parameterSlots":1,"returnSlots":0},"@grantRoles_6559":{"entryPoint":1096,"id":6559,"parameterSlots":2,"returnSlots":0},"@hasAllRoles_6636":{"entryPoint":1118,"id":6636,"parameterSlots":2,"returnSlots":1},"@hasAnyRole_6617":{"entryPoint":1833,"id":6617,"parameterSlots":2,"returnSlots":1},"@initialize_13242":{"entryPoint":1515,"id":13242,"parameterSlots":2,"returnSlots":0},"@isAllowed_13258":{"entryPoint":1977,"id":13258,"parameterSlots":3,"returnSlots":1},"@owner_6404":{"entryPoint":1932,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2163,"id":6414,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1913,"id":6361,"parameterSlots":0,"returnSlots":0},"@renounceRoles_6588":{"entryPoint":1083,"id":6588,"parameterSlots":1,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1140,"id":6376,"parameterSlots":0,"returnSlots":0},"@revokeRoles_6575":{"entryPoint":1811,"id":6575,"parameterSlots":2,"returnSlots":0},"@rolesOf_6598":{"entryPoint":1221,"id":6598,"parameterSlots":1,"returnSlots":1},"@setAllowed_13306":{"entryPoint":1246,"id":13306,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13153":{"entryPoint":962,"id":13153,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":2188,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":2897,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":2122,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4588,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3454,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":3631,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4692,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3716,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":4287,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3176,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3927,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":3321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3536,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr":{"entryPoint":4737,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":4127,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3474,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3801,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":4307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3196,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4012,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":3341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4087,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3250,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3579,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4102,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3265,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3594,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4519,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3094,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4545,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":3415,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4350,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3239,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3111,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3384,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3290,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":4470,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":4220,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4425,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3623,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3619,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3627,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3107,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3103,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4409,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3432,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4367,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4265,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3154,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3299,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12549:53","nodeType":"YulBlock","src":"0:12549:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1644:79:53","nodeType":"YulBlock","src":"1644:79:53","statements":[{"body":{"nativeSrc":"1701:16:53","nodeType":"YulBlock","src":"1701:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1710:1:53","nodeType":"YulLiteral","src":"1710:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1713:1:53","nodeType":"YulLiteral","src":"1713:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1703:6:53","nodeType":"YulIdentifier","src":"1703:6:53"},"nativeSrc":"1703:12:53","nodeType":"YulFunctionCall","src":"1703:12:53"},"nativeSrc":"1703:12:53","nodeType":"YulExpressionStatement","src":"1703:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1667:5:53","nodeType":"YulIdentifier","src":"1667:5:53"},{"arguments":[{"name":"value","nativeSrc":"1692:5:53","nodeType":"YulIdentifier","src":"1692:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1674:17:53","nodeType":"YulIdentifier","src":"1674:17:53"},"nativeSrc":"1674:24:53","nodeType":"YulFunctionCall","src":"1674:24:53"}],"functionName":{"name":"eq","nativeSrc":"1664:2:53","nodeType":"YulIdentifier","src":"1664:2:53"},"nativeSrc":"1664:35:53","nodeType":"YulFunctionCall","src":"1664:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1657:6:53","nodeType":"YulIdentifier","src":"1657:6:53"},"nativeSrc":"1657:43:53","nodeType":"YulFunctionCall","src":"1657:43:53"},"nativeSrc":"1654:63:53","nodeType":"YulIf","src":"1654:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"1601:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1637:5:53","nodeType":"YulTypedName","src":"1637:5:53","type":""}],"src":"1601:122:53"},{"body":{"nativeSrc":"1781:87:53","nodeType":"YulBlock","src":"1781:87:53","statements":[{"nativeSrc":"1791:29:53","nodeType":"YulAssignment","src":"1791:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1813:6:53","nodeType":"YulIdentifier","src":"1813:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1800:12:53","nodeType":"YulIdentifier","src":"1800:12:53"},"nativeSrc":"1800:20:53","nodeType":"YulFunctionCall","src":"1800:20:53"},"variableNames":[{"name":"value","nativeSrc":"1791:5:53","nodeType":"YulIdentifier","src":"1791:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1856:5:53","nodeType":"YulIdentifier","src":"1856:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1829:26:53","nodeType":"YulIdentifier","src":"1829:26:53"},"nativeSrc":"1829:33:53","nodeType":"YulFunctionCall","src":"1829:33:53"},"nativeSrc":"1829:33:53","nodeType":"YulExpressionStatement","src":"1829:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"1729:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1759:6:53","nodeType":"YulTypedName","src":"1759:6:53","type":""},{"name":"end","nativeSrc":"1767:3:53","nodeType":"YulTypedName","src":"1767:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1775:5:53","nodeType":"YulTypedName","src":"1775:5:53","type":""}],"src":"1729:139:53"},{"body":{"nativeSrc":"1940:263:53","nodeType":"YulBlock","src":"1940:263:53","statements":[{"body":{"nativeSrc":"1986:83:53","nodeType":"YulBlock","src":"1986:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1988:77:53","nodeType":"YulIdentifier","src":"1988:77:53"},"nativeSrc":"1988:79:53","nodeType":"YulFunctionCall","src":"1988:79:53"},"nativeSrc":"1988:79:53","nodeType":"YulExpressionStatement","src":"1988:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1961:7:53","nodeType":"YulIdentifier","src":"1961:7:53"},{"name":"headStart","nativeSrc":"1970:9:53","nodeType":"YulIdentifier","src":"1970:9:53"}],"functionName":{"name":"sub","nativeSrc":"1957:3:53","nodeType":"YulIdentifier","src":"1957:3:53"},"nativeSrc":"1957:23:53","nodeType":"YulFunctionCall","src":"1957:23:53"},{"kind":"number","nativeSrc":"1982:2:53","nodeType":"YulLiteral","src":"1982:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1953:3:53","nodeType":"YulIdentifier","src":"1953:3:53"},"nativeSrc":"1953:32:53","nodeType":"YulFunctionCall","src":"1953:32:53"},"nativeSrc":"1950:119:53","nodeType":"YulIf","src":"1950:119:53"},{"nativeSrc":"2079:117:53","nodeType":"YulBlock","src":"2079:117:53","statements":[{"nativeSrc":"2094:15:53","nodeType":"YulVariableDeclaration","src":"2094:15:53","value":{"kind":"number","nativeSrc":"2108:1:53","nodeType":"YulLiteral","src":"2108:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2098:6:53","nodeType":"YulTypedName","src":"2098:6:53","type":""}]},{"nativeSrc":"2123:63:53","nodeType":"YulAssignment","src":"2123:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2158:9:53","nodeType":"YulIdentifier","src":"2158:9:53"},{"name":"offset","nativeSrc":"2169:6:53","nodeType":"YulIdentifier","src":"2169:6:53"}],"functionName":{"name":"add","nativeSrc":"2154:3:53","nodeType":"YulIdentifier","src":"2154:3:53"},"nativeSrc":"2154:22:53","nodeType":"YulFunctionCall","src":"2154:22:53"},{"name":"dataEnd","nativeSrc":"2178:7:53","nodeType":"YulIdentifier","src":"2178:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2133:20:53","nodeType":"YulIdentifier","src":"2133:20:53"},"nativeSrc":"2133:53:53","nodeType":"YulFunctionCall","src":"2133:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:53","nodeType":"YulIdentifier","src":"2123:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1874:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1910:9:53","nodeType":"YulTypedName","src":"1910:9:53","type":""},{"name":"dataEnd","nativeSrc":"1921:7:53","nodeType":"YulTypedName","src":"1921:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1933:6:53","nodeType":"YulTypedName","src":"1933:6:53","type":""}],"src":"1874:329:53"},{"body":{"nativeSrc":"2254:81:53","nodeType":"YulBlock","src":"2254:81:53","statements":[{"nativeSrc":"2264:65:53","nodeType":"YulAssignment","src":"2264:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2279:5:53","nodeType":"YulIdentifier","src":"2279:5:53"},{"kind":"number","nativeSrc":"2286:42:53","nodeType":"YulLiteral","src":"2286:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2275:3:53","nodeType":"YulIdentifier","src":"2275:3:53"},"nativeSrc":"2275:54:53","nodeType":"YulFunctionCall","src":"2275:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2264:7:53","nodeType":"YulIdentifier","src":"2264:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2209:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2236:5:53","nodeType":"YulTypedName","src":"2236:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2246:7:53","nodeType":"YulTypedName","src":"2246:7:53","type":""}],"src":"2209:126:53"},{"body":{"nativeSrc":"2386:51:53","nodeType":"YulBlock","src":"2386:51:53","statements":[{"nativeSrc":"2396:35:53","nodeType":"YulAssignment","src":"2396:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2425:5:53","nodeType":"YulIdentifier","src":"2425:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2407:17:53","nodeType":"YulIdentifier","src":"2407:17:53"},"nativeSrc":"2407:24:53","nodeType":"YulFunctionCall","src":"2407:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2396:7:53","nodeType":"YulIdentifier","src":"2396:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2341:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2368:5:53","nodeType":"YulTypedName","src":"2368:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2378:7:53","nodeType":"YulTypedName","src":"2378:7:53","type":""}],"src":"2341:96:53"},{"body":{"nativeSrc":"2486:79:53","nodeType":"YulBlock","src":"2486:79:53","statements":[{"body":{"nativeSrc":"2543:16:53","nodeType":"YulBlock","src":"2543:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2552:1:53","nodeType":"YulLiteral","src":"2552:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2555:1:53","nodeType":"YulLiteral","src":"2555:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2545:6:53","nodeType":"YulIdentifier","src":"2545:6:53"},"nativeSrc":"2545:12:53","nodeType":"YulFunctionCall","src":"2545:12:53"},"nativeSrc":"2545:12:53","nodeType":"YulExpressionStatement","src":"2545:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2509:5:53","nodeType":"YulIdentifier","src":"2509:5:53"},{"arguments":[{"name":"value","nativeSrc":"2534:5:53","nodeType":"YulIdentifier","src":"2534:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2516:17:53","nodeType":"YulIdentifier","src":"2516:17:53"},"nativeSrc":"2516:24:53","nodeType":"YulFunctionCall","src":"2516:24:53"}],"functionName":{"name":"eq","nativeSrc":"2506:2:53","nodeType":"YulIdentifier","src":"2506:2:53"},"nativeSrc":"2506:35:53","nodeType":"YulFunctionCall","src":"2506:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2499:6:53","nodeType":"YulIdentifier","src":"2499:6:53"},"nativeSrc":"2499:43:53","nodeType":"YulFunctionCall","src":"2499:43:53"},"nativeSrc":"2496:63:53","nodeType":"YulIf","src":"2496:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"2443:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2479:5:53","nodeType":"YulTypedName","src":"2479:5:53","type":""}],"src":"2443:122:53"},{"body":{"nativeSrc":"2623:87:53","nodeType":"YulBlock","src":"2623:87:53","statements":[{"nativeSrc":"2633:29:53","nodeType":"YulAssignment","src":"2633:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2655:6:53","nodeType":"YulIdentifier","src":"2655:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2642:12:53","nodeType":"YulIdentifier","src":"2642:12:53"},"nativeSrc":"2642:20:53","nodeType":"YulFunctionCall","src":"2642:20:53"},"variableNames":[{"name":"value","nativeSrc":"2633:5:53","nodeType":"YulIdentifier","src":"2633:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2698:5:53","nodeType":"YulIdentifier","src":"2698:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2671:26:53","nodeType":"YulIdentifier","src":"2671:26:53"},"nativeSrc":"2671:33:53","nodeType":"YulFunctionCall","src":"2671:33:53"},"nativeSrc":"2671:33:53","nodeType":"YulExpressionStatement","src":"2671:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"2571:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2601:6:53","nodeType":"YulTypedName","src":"2601:6:53","type":""},{"name":"end","nativeSrc":"2609:3:53","nodeType":"YulTypedName","src":"2609:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2617:5:53","nodeType":"YulTypedName","src":"2617:5:53","type":""}],"src":"2571:139:53"},{"body":{"nativeSrc":"2799:391:53","nodeType":"YulBlock","src":"2799:391:53","statements":[{"body":{"nativeSrc":"2845:83:53","nodeType":"YulBlock","src":"2845:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2847:77:53","nodeType":"YulIdentifier","src":"2847:77:53"},"nativeSrc":"2847:79:53","nodeType":"YulFunctionCall","src":"2847:79:53"},"nativeSrc":"2847:79:53","nodeType":"YulExpressionStatement","src":"2847:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2820:7:53","nodeType":"YulIdentifier","src":"2820:7:53"},{"name":"headStart","nativeSrc":"2829:9:53","nodeType":"YulIdentifier","src":"2829:9:53"}],"functionName":{"name":"sub","nativeSrc":"2816:3:53","nodeType":"YulIdentifier","src":"2816:3:53"},"nativeSrc":"2816:23:53","nodeType":"YulFunctionCall","src":"2816:23:53"},{"kind":"number","nativeSrc":"2841:2:53","nodeType":"YulLiteral","src":"2841:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2812:3:53","nodeType":"YulIdentifier","src":"2812:3:53"},"nativeSrc":"2812:32:53","nodeType":"YulFunctionCall","src":"2812:32:53"},"nativeSrc":"2809:119:53","nodeType":"YulIf","src":"2809:119:53"},{"nativeSrc":"2938:117:53","nodeType":"YulBlock","src":"2938:117:53","statements":[{"nativeSrc":"2953:15:53","nodeType":"YulVariableDeclaration","src":"2953:15:53","value":{"kind":"number","nativeSrc":"2967:1:53","nodeType":"YulLiteral","src":"2967:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2957:6:53","nodeType":"YulTypedName","src":"2957:6:53","type":""}]},{"nativeSrc":"2982:63:53","nodeType":"YulAssignment","src":"2982:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3017:9:53","nodeType":"YulIdentifier","src":"3017:9:53"},{"name":"offset","nativeSrc":"3028:6:53","nodeType":"YulIdentifier","src":"3028:6:53"}],"functionName":{"name":"add","nativeSrc":"3013:3:53","nodeType":"YulIdentifier","src":"3013:3:53"},"nativeSrc":"3013:22:53","nodeType":"YulFunctionCall","src":"3013:22:53"},{"name":"dataEnd","nativeSrc":"3037:7:53","nodeType":"YulIdentifier","src":"3037:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2992:20:53","nodeType":"YulIdentifier","src":"2992:20:53"},"nativeSrc":"2992:53:53","nodeType":"YulFunctionCall","src":"2992:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2982:6:53","nodeType":"YulIdentifier","src":"2982:6:53"}]}]},{"nativeSrc":"3065:118:53","nodeType":"YulBlock","src":"3065:118:53","statements":[{"nativeSrc":"3080:16:53","nodeType":"YulVariableDeclaration","src":"3080:16:53","value":{"kind":"number","nativeSrc":"3094:2:53","nodeType":"YulLiteral","src":"3094:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3084:6:53","nodeType":"YulTypedName","src":"3084:6:53","type":""}]},{"nativeSrc":"3110:63:53","nodeType":"YulAssignment","src":"3110:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3145:9:53","nodeType":"YulIdentifier","src":"3145:9:53"},{"name":"offset","nativeSrc":"3156:6:53","nodeType":"YulIdentifier","src":"3156:6:53"}],"functionName":{"name":"add","nativeSrc":"3141:3:53","nodeType":"YulIdentifier","src":"3141:3:53"},"nativeSrc":"3141:22:53","nodeType":"YulFunctionCall","src":"3141:22:53"},{"name":"dataEnd","nativeSrc":"3165:7:53","nodeType":"YulIdentifier","src":"3165:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3120:20:53","nodeType":"YulIdentifier","src":"3120:20:53"},"nativeSrc":"3120:53:53","nodeType":"YulFunctionCall","src":"3120:53:53"},"variableNames":[{"name":"value1","nativeSrc":"3110:6:53","nodeType":"YulIdentifier","src":"3110:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2716:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2761:9:53","nodeType":"YulTypedName","src":"2761:9:53","type":""},{"name":"dataEnd","nativeSrc":"2772:7:53","nodeType":"YulTypedName","src":"2772:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2784:6:53","nodeType":"YulTypedName","src":"2784:6:53","type":""},{"name":"value1","nativeSrc":"2792:6:53","nodeType":"YulTypedName","src":"2792:6:53","type":""}],"src":"2716:474:53"},{"body":{"nativeSrc":"3262:263:53","nodeType":"YulBlock","src":"3262:263:53","statements":[{"body":{"nativeSrc":"3308:83:53","nodeType":"YulBlock","src":"3308:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3310:77:53","nodeType":"YulIdentifier","src":"3310:77:53"},"nativeSrc":"3310:79:53","nodeType":"YulFunctionCall","src":"3310:79:53"},"nativeSrc":"3310:79:53","nodeType":"YulExpressionStatement","src":"3310:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3283:7:53","nodeType":"YulIdentifier","src":"3283:7:53"},{"name":"headStart","nativeSrc":"3292:9:53","nodeType":"YulIdentifier","src":"3292:9:53"}],"functionName":{"name":"sub","nativeSrc":"3279:3:53","nodeType":"YulIdentifier","src":"3279:3:53"},"nativeSrc":"3279:23:53","nodeType":"YulFunctionCall","src":"3279:23:53"},{"kind":"number","nativeSrc":"3304:2:53","nodeType":"YulLiteral","src":"3304:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3275:3:53","nodeType":"YulIdentifier","src":"3275:3:53"},"nativeSrc":"3275:32:53","nodeType":"YulFunctionCall","src":"3275:32:53"},"nativeSrc":"3272:119:53","nodeType":"YulIf","src":"3272:119:53"},{"nativeSrc":"3401:117:53","nodeType":"YulBlock","src":"3401:117:53","statements":[{"nativeSrc":"3416:15:53","nodeType":"YulVariableDeclaration","src":"3416:15:53","value":{"kind":"number","nativeSrc":"3430:1:53","nodeType":"YulLiteral","src":"3430:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3420:6:53","nodeType":"YulTypedName","src":"3420:6:53","type":""}]},{"nativeSrc":"3445:63:53","nodeType":"YulAssignment","src":"3445:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3480:9:53","nodeType":"YulIdentifier","src":"3480:9:53"},{"name":"offset","nativeSrc":"3491:6:53","nodeType":"YulIdentifier","src":"3491:6:53"}],"functionName":{"name":"add","nativeSrc":"3476:3:53","nodeType":"YulIdentifier","src":"3476:3:53"},"nativeSrc":"3476:22:53","nodeType":"YulFunctionCall","src":"3476:22:53"},{"name":"dataEnd","nativeSrc":"3500:7:53","nodeType":"YulIdentifier","src":"3500:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3455:20:53","nodeType":"YulIdentifier","src":"3455:20:53"},"nativeSrc":"3455:53:53","nodeType":"YulFunctionCall","src":"3455:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3445:6:53","nodeType":"YulIdentifier","src":"3445:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3196:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3232:9:53","nodeType":"YulTypedName","src":"3232:9:53","type":""},{"name":"dataEnd","nativeSrc":"3243:7:53","nodeType":"YulTypedName","src":"3243:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3255:6:53","nodeType":"YulTypedName","src":"3255:6:53","type":""}],"src":"3196:329:53"},{"body":{"nativeSrc":"3596:53:53","nodeType":"YulBlock","src":"3596:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3613:3:53","nodeType":"YulIdentifier","src":"3613:3:53"},{"arguments":[{"name":"value","nativeSrc":"3636:5:53","nodeType":"YulIdentifier","src":"3636:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3618:17:53","nodeType":"YulIdentifier","src":"3618:17:53"},"nativeSrc":"3618:24:53","nodeType":"YulFunctionCall","src":"3618:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3606:6:53","nodeType":"YulIdentifier","src":"3606:6:53"},"nativeSrc":"3606:37:53","nodeType":"YulFunctionCall","src":"3606:37:53"},"nativeSrc":"3606:37:53","nodeType":"YulExpressionStatement","src":"3606:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3531:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3584:5:53","nodeType":"YulTypedName","src":"3584:5:53","type":""},{"name":"pos","nativeSrc":"3591:3:53","nodeType":"YulTypedName","src":"3591:3:53","type":""}],"src":"3531:118:53"},{"body":{"nativeSrc":"3753:124:53","nodeType":"YulBlock","src":"3753:124:53","statements":[{"nativeSrc":"3763:26:53","nodeType":"YulAssignment","src":"3763:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3775:9:53","nodeType":"YulIdentifier","src":"3775:9:53"},{"kind":"number","nativeSrc":"3786:2:53","nodeType":"YulLiteral","src":"3786:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3771:3:53","nodeType":"YulIdentifier","src":"3771:3:53"},"nativeSrc":"3771:18:53","nodeType":"YulFunctionCall","src":"3771:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3763:4:53","nodeType":"YulIdentifier","src":"3763:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3843:6:53","nodeType":"YulIdentifier","src":"3843:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3856:9:53","nodeType":"YulIdentifier","src":"3856:9:53"},{"kind":"number","nativeSrc":"3867:1:53","nodeType":"YulLiteral","src":"3867:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3852:3:53","nodeType":"YulIdentifier","src":"3852:3:53"},"nativeSrc":"3852:17:53","nodeType":"YulFunctionCall","src":"3852:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3799:43:53","nodeType":"YulIdentifier","src":"3799:43:53"},"nativeSrc":"3799:71:53","nodeType":"YulFunctionCall","src":"3799:71:53"},"nativeSrc":"3799:71:53","nodeType":"YulExpressionStatement","src":"3799:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3655:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3725:9:53","nodeType":"YulTypedName","src":"3725:9:53","type":""},{"name":"value0","nativeSrc":"3737:6:53","nodeType":"YulTypedName","src":"3737:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3748:4:53","nodeType":"YulTypedName","src":"3748:4:53","type":""}],"src":"3655:222:53"},{"body":{"nativeSrc":"3972:28:53","nodeType":"YulBlock","src":"3972:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3989:1:53","nodeType":"YulLiteral","src":"3989:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3992:1:53","nodeType":"YulLiteral","src":"3992:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3982:6:53","nodeType":"YulIdentifier","src":"3982:6:53"},"nativeSrc":"3982:12:53","nodeType":"YulFunctionCall","src":"3982:12:53"},"nativeSrc":"3982:12:53","nodeType":"YulExpressionStatement","src":"3982:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3883:117:53","nodeType":"YulFunctionDefinition","src":"3883:117:53"},{"body":{"nativeSrc":"4095:28:53","nodeType":"YulBlock","src":"4095:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4112:1:53","nodeType":"YulLiteral","src":"4112:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4115:1:53","nodeType":"YulLiteral","src":"4115:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4105:6:53","nodeType":"YulIdentifier","src":"4105:6:53"},"nativeSrc":"4105:12:53","nodeType":"YulFunctionCall","src":"4105:12:53"},"nativeSrc":"4105:12:53","nodeType":"YulExpressionStatement","src":"4105:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4006:117:53","nodeType":"YulFunctionDefinition","src":"4006:117:53"},{"body":{"nativeSrc":"4218:28:53","nodeType":"YulBlock","src":"4218:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4235:1:53","nodeType":"YulLiteral","src":"4235:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4238:1:53","nodeType":"YulLiteral","src":"4238:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4228:6:53","nodeType":"YulIdentifier","src":"4228:6:53"},"nativeSrc":"4228:12:53","nodeType":"YulFunctionCall","src":"4228:12:53"},"nativeSrc":"4228:12:53","nodeType":"YulExpressionStatement","src":"4228:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4129:117:53","nodeType":"YulFunctionDefinition","src":"4129:117:53"},{"body":{"nativeSrc":"4359:478:53","nodeType":"YulBlock","src":"4359:478:53","statements":[{"body":{"nativeSrc":"4408:83:53","nodeType":"YulBlock","src":"4408:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4410:77:53","nodeType":"YulIdentifier","src":"4410:77:53"},"nativeSrc":"4410:79:53","nodeType":"YulFunctionCall","src":"4410:79:53"},"nativeSrc":"4410:79:53","nodeType":"YulExpressionStatement","src":"4410:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4387:6:53","nodeType":"YulIdentifier","src":"4387:6:53"},{"kind":"number","nativeSrc":"4395:4:53","nodeType":"YulLiteral","src":"4395:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4383:3:53","nodeType":"YulIdentifier","src":"4383:3:53"},"nativeSrc":"4383:17:53","nodeType":"YulFunctionCall","src":"4383:17:53"},{"name":"end","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"}],"functionName":{"name":"slt","nativeSrc":"4379:3:53","nodeType":"YulIdentifier","src":"4379:3:53"},"nativeSrc":"4379:27:53","nodeType":"YulFunctionCall","src":"4379:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4372:6:53","nodeType":"YulIdentifier","src":"4372:6:53"},"nativeSrc":"4372:35:53","nodeType":"YulFunctionCall","src":"4372:35:53"},"nativeSrc":"4369:122:53","nodeType":"YulIf","src":"4369:122:53"},{"nativeSrc":"4500:30:53","nodeType":"YulAssignment","src":"4500:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4523:6:53","nodeType":"YulIdentifier","src":"4523:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4510:12:53","nodeType":"YulIdentifier","src":"4510:12:53"},"nativeSrc":"4510:20:53","nodeType":"YulFunctionCall","src":"4510:20:53"},"variableNames":[{"name":"length","nativeSrc":"4500:6:53","nodeType":"YulIdentifier","src":"4500:6:53"}]},{"body":{"nativeSrc":"4573:83:53","nodeType":"YulBlock","src":"4573:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4575:77:53","nodeType":"YulIdentifier","src":"4575:77:53"},"nativeSrc":"4575:79:53","nodeType":"YulFunctionCall","src":"4575:79:53"},"nativeSrc":"4575:79:53","nodeType":"YulExpressionStatement","src":"4575:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4545:6:53","nodeType":"YulIdentifier","src":"4545:6:53"},{"kind":"number","nativeSrc":"4553:18:53","nodeType":"YulLiteral","src":"4553:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4542:2:53","nodeType":"YulIdentifier","src":"4542:2:53"},"nativeSrc":"4542:30:53","nodeType":"YulFunctionCall","src":"4542:30:53"},"nativeSrc":"4539:117:53","nodeType":"YulIf","src":"4539:117:53"},{"nativeSrc":"4665:29:53","nodeType":"YulAssignment","src":"4665:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4681:6:53","nodeType":"YulIdentifier","src":"4681:6:53"},{"kind":"number","nativeSrc":"4689:4:53","nodeType":"YulLiteral","src":"4689:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4677:3:53","nodeType":"YulIdentifier","src":"4677:3:53"},"nativeSrc":"4677:17:53","nodeType":"YulFunctionCall","src":"4677:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4665:8:53","nodeType":"YulIdentifier","src":"4665:8:53"}]},{"body":{"nativeSrc":"4748:83:53","nodeType":"YulBlock","src":"4748:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4750:77:53","nodeType":"YulIdentifier","src":"4750:77:53"},"nativeSrc":"4750:79:53","nodeType":"YulFunctionCall","src":"4750:79:53"},"nativeSrc":"4750:79:53","nodeType":"YulExpressionStatement","src":"4750:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4713:8:53","nodeType":"YulIdentifier","src":"4713:8:53"},{"arguments":[{"name":"length","nativeSrc":"4727:6:53","nodeType":"YulIdentifier","src":"4727:6:53"},{"kind":"number","nativeSrc":"4735:4:53","nodeType":"YulLiteral","src":"4735:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4723:3:53","nodeType":"YulIdentifier","src":"4723:3:53"},"nativeSrc":"4723:17:53","nodeType":"YulFunctionCall","src":"4723:17:53"}],"functionName":{"name":"add","nativeSrc":"4709:3:53","nodeType":"YulIdentifier","src":"4709:3:53"},"nativeSrc":"4709:32:53","nodeType":"YulFunctionCall","src":"4709:32:53"},{"name":"end","nativeSrc":"4743:3:53","nodeType":"YulIdentifier","src":"4743:3:53"}],"functionName":{"name":"gt","nativeSrc":"4706:2:53","nodeType":"YulIdentifier","src":"4706:2:53"},"nativeSrc":"4706:41:53","nodeType":"YulFunctionCall","src":"4706:41:53"},"nativeSrc":"4703:128:53","nodeType":"YulIf","src":"4703:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"4269:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4326:6:53","nodeType":"YulTypedName","src":"4326:6:53","type":""},{"name":"end","nativeSrc":"4334:3:53","nodeType":"YulTypedName","src":"4334:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4342:8:53","nodeType":"YulTypedName","src":"4342:8:53","type":""},{"name":"length","nativeSrc":"4352:6:53","nodeType":"YulTypedName","src":"4352:6:53","type":""}],"src":"4269:568:53"},{"body":{"nativeSrc":"4944:478:53","nodeType":"YulBlock","src":"4944:478:53","statements":[{"body":{"nativeSrc":"4993:83:53","nodeType":"YulBlock","src":"4993:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4995:77:53","nodeType":"YulIdentifier","src":"4995:77:53"},"nativeSrc":"4995:79:53","nodeType":"YulFunctionCall","src":"4995:79:53"},"nativeSrc":"4995:79:53","nodeType":"YulExpressionStatement","src":"4995:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4972:6:53","nodeType":"YulIdentifier","src":"4972:6:53"},{"kind":"number","nativeSrc":"4980:4:53","nodeType":"YulLiteral","src":"4980:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4968:3:53","nodeType":"YulIdentifier","src":"4968:3:53"},"nativeSrc":"4968:17:53","nodeType":"YulFunctionCall","src":"4968:17:53"},{"name":"end","nativeSrc":"4987:3:53","nodeType":"YulIdentifier","src":"4987:3:53"}],"functionName":{"name":"slt","nativeSrc":"4964:3:53","nodeType":"YulIdentifier","src":"4964:3:53"},"nativeSrc":"4964:27:53","nodeType":"YulFunctionCall","src":"4964:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4957:6:53","nodeType":"YulIdentifier","src":"4957:6:53"},"nativeSrc":"4957:35:53","nodeType":"YulFunctionCall","src":"4957:35:53"},"nativeSrc":"4954:122:53","nodeType":"YulIf","src":"4954:122:53"},{"nativeSrc":"5085:30:53","nodeType":"YulAssignment","src":"5085:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"5108:6:53","nodeType":"YulIdentifier","src":"5108:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5095:12:53","nodeType":"YulIdentifier","src":"5095:12:53"},"nativeSrc":"5095:20:53","nodeType":"YulFunctionCall","src":"5095:20:53"},"variableNames":[{"name":"length","nativeSrc":"5085:6:53","nodeType":"YulIdentifier","src":"5085:6:53"}]},{"body":{"nativeSrc":"5158:83:53","nodeType":"YulBlock","src":"5158:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"5160:77:53","nodeType":"YulIdentifier","src":"5160:77:53"},"nativeSrc":"5160:79:53","nodeType":"YulFunctionCall","src":"5160:79:53"},"nativeSrc":"5160:79:53","nodeType":"YulExpressionStatement","src":"5160:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5130:6:53","nodeType":"YulIdentifier","src":"5130:6:53"},{"kind":"number","nativeSrc":"5138:18:53","nodeType":"YulLiteral","src":"5138:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5127:2:53","nodeType":"YulIdentifier","src":"5127:2:53"},"nativeSrc":"5127:30:53","nodeType":"YulFunctionCall","src":"5127:30:53"},"nativeSrc":"5124:117:53","nodeType":"YulIf","src":"5124:117:53"},{"nativeSrc":"5250:29:53","nodeType":"YulAssignment","src":"5250:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5266:6:53","nodeType":"YulIdentifier","src":"5266:6:53"},{"kind":"number","nativeSrc":"5274:4:53","nodeType":"YulLiteral","src":"5274:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5262:3:53","nodeType":"YulIdentifier","src":"5262:3:53"},"nativeSrc":"5262:17:53","nodeType":"YulFunctionCall","src":"5262:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"5250:8:53","nodeType":"YulIdentifier","src":"5250:8:53"}]},{"body":{"nativeSrc":"5333:83:53","nodeType":"YulBlock","src":"5333:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5335:77:53","nodeType":"YulIdentifier","src":"5335:77:53"},"nativeSrc":"5335:79:53","nodeType":"YulFunctionCall","src":"5335:79:53"},"nativeSrc":"5335:79:53","nodeType":"YulExpressionStatement","src":"5335:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"5298:8:53","nodeType":"YulIdentifier","src":"5298:8:53"},{"arguments":[{"name":"length","nativeSrc":"5312:6:53","nodeType":"YulIdentifier","src":"5312:6:53"},{"kind":"number","nativeSrc":"5320:4:53","nodeType":"YulLiteral","src":"5320:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"5308:3:53","nodeType":"YulIdentifier","src":"5308:3:53"},"nativeSrc":"5308:17:53","nodeType":"YulFunctionCall","src":"5308:17:53"}],"functionName":{"name":"add","nativeSrc":"5294:3:53","nodeType":"YulIdentifier","src":"5294:3:53"},"nativeSrc":"5294:32:53","nodeType":"YulFunctionCall","src":"5294:32:53"},{"name":"end","nativeSrc":"5328:3:53","nodeType":"YulIdentifier","src":"5328:3:53"}],"functionName":{"name":"gt","nativeSrc":"5291:2:53","nodeType":"YulIdentifier","src":"5291:2:53"},"nativeSrc":"5291:41:53","nodeType":"YulFunctionCall","src":"5291:41:53"},"nativeSrc":"5288:128:53","nodeType":"YulIf","src":"5288:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4857:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4911:6:53","nodeType":"YulTypedName","src":"4911:6:53","type":""},{"name":"end","nativeSrc":"4919:3:53","nodeType":"YulTypedName","src":"4919:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4927:8:53","nodeType":"YulTypedName","src":"4927:8:53","type":""},{"name":"length","nativeSrc":"4937:6:53","nodeType":"YulTypedName","src":"4937:6:53","type":""}],"src":"4857:565:53"},{"body":{"nativeSrc":"5578:778:53","nodeType":"YulBlock","src":"5578:778:53","statements":[{"body":{"nativeSrc":"5624:83:53","nodeType":"YulBlock","src":"5624:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5626:77:53","nodeType":"YulIdentifier","src":"5626:77:53"},"nativeSrc":"5626:79:53","nodeType":"YulFunctionCall","src":"5626:79:53"},"nativeSrc":"5626:79:53","nodeType":"YulExpressionStatement","src":"5626:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5599:7:53","nodeType":"YulIdentifier","src":"5599:7:53"},{"name":"headStart","nativeSrc":"5608:9:53","nodeType":"YulIdentifier","src":"5608:9:53"}],"functionName":{"name":"sub","nativeSrc":"5595:3:53","nodeType":"YulIdentifier","src":"5595:3:53"},"nativeSrc":"5595:23:53","nodeType":"YulFunctionCall","src":"5595:23:53"},{"kind":"number","nativeSrc":"5620:2:53","nodeType":"YulLiteral","src":"5620:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5591:3:53","nodeType":"YulIdentifier","src":"5591:3:53"},"nativeSrc":"5591:32:53","nodeType":"YulFunctionCall","src":"5591:32:53"},"nativeSrc":"5588:119:53","nodeType":"YulIf","src":"5588:119:53"},{"nativeSrc":"5717:312:53","nodeType":"YulBlock","src":"5717:312:53","statements":[{"nativeSrc":"5732:45:53","nodeType":"YulVariableDeclaration","src":"5732:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5763:9:53","nodeType":"YulIdentifier","src":"5763:9:53"},{"kind":"number","nativeSrc":"5774:1:53","nodeType":"YulLiteral","src":"5774:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5759:3:53","nodeType":"YulIdentifier","src":"5759:3:53"},"nativeSrc":"5759:17:53","nodeType":"YulFunctionCall","src":"5759:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"5746:12:53","nodeType":"YulIdentifier","src":"5746:12:53"},"nativeSrc":"5746:31:53","nodeType":"YulFunctionCall","src":"5746:31:53"},"variables":[{"name":"offset","nativeSrc":"5736:6:53","nodeType":"YulTypedName","src":"5736:6:53","type":""}]},{"body":{"nativeSrc":"5824:83:53","nodeType":"YulBlock","src":"5824:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5826:77:53","nodeType":"YulIdentifier","src":"5826:77:53"},"nativeSrc":"5826:79:53","nodeType":"YulFunctionCall","src":"5826:79:53"},"nativeSrc":"5826:79:53","nodeType":"YulExpressionStatement","src":"5826:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5796:6:53","nodeType":"YulIdentifier","src":"5796:6:53"},{"kind":"number","nativeSrc":"5804:18:53","nodeType":"YulLiteral","src":"5804:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5793:2:53","nodeType":"YulIdentifier","src":"5793:2:53"},"nativeSrc":"5793:30:53","nodeType":"YulFunctionCall","src":"5793:30:53"},"nativeSrc":"5790:117:53","nodeType":"YulIf","src":"5790:117:53"},{"nativeSrc":"5921:98:53","nodeType":"YulAssignment","src":"5921:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5991:9:53","nodeType":"YulIdentifier","src":"5991:9:53"},{"name":"offset","nativeSrc":"6002:6:53","nodeType":"YulIdentifier","src":"6002:6:53"}],"functionName":{"name":"add","nativeSrc":"5987:3:53","nodeType":"YulIdentifier","src":"5987:3:53"},"nativeSrc":"5987:22:53","nodeType":"YulFunctionCall","src":"5987:22:53"},{"name":"dataEnd","nativeSrc":"6011:7:53","nodeType":"YulIdentifier","src":"6011:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"5939:47:53","nodeType":"YulIdentifier","src":"5939:47:53"},"nativeSrc":"5939:80:53","nodeType":"YulFunctionCall","src":"5939:80:53"},"variableNames":[{"name":"value0","nativeSrc":"5921:6:53","nodeType":"YulIdentifier","src":"5921:6:53"},{"name":"value1","nativeSrc":"5929:6:53","nodeType":"YulIdentifier","src":"5929:6:53"}]}]},{"nativeSrc":"6039:310:53","nodeType":"YulBlock","src":"6039:310:53","statements":[{"nativeSrc":"6054:46:53","nodeType":"YulVariableDeclaration","src":"6054:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6085:9:53","nodeType":"YulIdentifier","src":"6085:9:53"},{"kind":"number","nativeSrc":"6096:2:53","nodeType":"YulLiteral","src":"6096:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6081:3:53","nodeType":"YulIdentifier","src":"6081:3:53"},"nativeSrc":"6081:18:53","nodeType":"YulFunctionCall","src":"6081:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6068:12:53","nodeType":"YulIdentifier","src":"6068:12:53"},"nativeSrc":"6068:32:53","nodeType":"YulFunctionCall","src":"6068:32:53"},"variables":[{"name":"offset","nativeSrc":"6058:6:53","nodeType":"YulTypedName","src":"6058:6:53","type":""}]},{"body":{"nativeSrc":"6147:83:53","nodeType":"YulBlock","src":"6147:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6149:77:53","nodeType":"YulIdentifier","src":"6149:77:53"},"nativeSrc":"6149:79:53","nodeType":"YulFunctionCall","src":"6149:79:53"},"nativeSrc":"6149:79:53","nodeType":"YulExpressionStatement","src":"6149:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6119:6:53","nodeType":"YulIdentifier","src":"6119:6:53"},{"kind":"number","nativeSrc":"6127:18:53","nodeType":"YulLiteral","src":"6127:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6116:2:53","nodeType":"YulIdentifier","src":"6116:2:53"},"nativeSrc":"6116:30:53","nodeType":"YulFunctionCall","src":"6116:30:53"},"nativeSrc":"6113:117:53","nodeType":"YulIf","src":"6113:117:53"},{"nativeSrc":"6244:95:53","nodeType":"YulAssignment","src":"6244:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6311:9:53","nodeType":"YulIdentifier","src":"6311:9:53"},{"name":"offset","nativeSrc":"6322:6:53","nodeType":"YulIdentifier","src":"6322:6:53"}],"functionName":{"name":"add","nativeSrc":"6307:3:53","nodeType":"YulIdentifier","src":"6307:3:53"},"nativeSrc":"6307:22:53","nodeType":"YulFunctionCall","src":"6307:22:53"},{"name":"dataEnd","nativeSrc":"6331:7:53","nodeType":"YulIdentifier","src":"6331:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"6262:44:53","nodeType":"YulIdentifier","src":"6262:44:53"},"nativeSrc":"6262:77:53","nodeType":"YulFunctionCall","src":"6262:77:53"},"variableNames":[{"name":"value2","nativeSrc":"6244:6:53","nodeType":"YulIdentifier","src":"6244:6:53"},{"name":"value3","nativeSrc":"6252:6:53","nodeType":"YulIdentifier","src":"6252:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5428:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5524:9:53","nodeType":"YulTypedName","src":"5524:9:53","type":""},{"name":"dataEnd","nativeSrc":"5535:7:53","nodeType":"YulTypedName","src":"5535:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5547:6:53","nodeType":"YulTypedName","src":"5547:6:53","type":""},{"name":"value1","nativeSrc":"5555:6:53","nodeType":"YulTypedName","src":"5555:6:53","type":""},{"name":"value2","nativeSrc":"5563:6:53","nodeType":"YulTypedName","src":"5563:6:53","type":""},{"name":"value3","nativeSrc":"5571:6:53","nodeType":"YulTypedName","src":"5571:6:53","type":""}],"src":"5428:928:53"},{"body":{"nativeSrc":"6449:478:53","nodeType":"YulBlock","src":"6449:478:53","statements":[{"body":{"nativeSrc":"6498:83:53","nodeType":"YulBlock","src":"6498:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6500:77:53","nodeType":"YulIdentifier","src":"6500:77:53"},"nativeSrc":"6500:79:53","nodeType":"YulFunctionCall","src":"6500:79:53"},"nativeSrc":"6500:79:53","nodeType":"YulExpressionStatement","src":"6500:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6477:6:53","nodeType":"YulIdentifier","src":"6477:6:53"},{"kind":"number","nativeSrc":"6485:4:53","nodeType":"YulLiteral","src":"6485:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6473:3:53","nodeType":"YulIdentifier","src":"6473:3:53"},"nativeSrc":"6473:17:53","nodeType":"YulFunctionCall","src":"6473:17:53"},{"name":"end","nativeSrc":"6492:3:53","nodeType":"YulIdentifier","src":"6492:3:53"}],"functionName":{"name":"slt","nativeSrc":"6469:3:53","nodeType":"YulIdentifier","src":"6469:3:53"},"nativeSrc":"6469:27:53","nodeType":"YulFunctionCall","src":"6469:27:53"}],"functionName":{"name":"iszero","nativeSrc":"6462:6:53","nodeType":"YulIdentifier","src":"6462:6:53"},"nativeSrc":"6462:35:53","nodeType":"YulFunctionCall","src":"6462:35:53"},"nativeSrc":"6459:122:53","nodeType":"YulIf","src":"6459:122:53"},{"nativeSrc":"6590:30:53","nodeType":"YulAssignment","src":"6590:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"6613:6:53","nodeType":"YulIdentifier","src":"6613:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6600:12:53","nodeType":"YulIdentifier","src":"6600:12:53"},"nativeSrc":"6600:20:53","nodeType":"YulFunctionCall","src":"6600:20:53"},"variableNames":[{"name":"length","nativeSrc":"6590:6:53","nodeType":"YulIdentifier","src":"6590:6:53"}]},{"body":{"nativeSrc":"6663:83:53","nodeType":"YulBlock","src":"6663:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6665:77:53","nodeType":"YulIdentifier","src":"6665:77:53"},"nativeSrc":"6665:79:53","nodeType":"YulFunctionCall","src":"6665:79:53"},"nativeSrc":"6665:79:53","nodeType":"YulExpressionStatement","src":"6665:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6635:6:53","nodeType":"YulIdentifier","src":"6635:6:53"},{"kind":"number","nativeSrc":"6643:18:53","nodeType":"YulLiteral","src":"6643:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6632:2:53","nodeType":"YulIdentifier","src":"6632:2:53"},"nativeSrc":"6632:30:53","nodeType":"YulFunctionCall","src":"6632:30:53"},"nativeSrc":"6629:117:53","nodeType":"YulIf","src":"6629:117:53"},{"nativeSrc":"6755:29:53","nodeType":"YulAssignment","src":"6755:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6771:6:53","nodeType":"YulIdentifier","src":"6771:6:53"},{"kind":"number","nativeSrc":"6779:4:53","nodeType":"YulLiteral","src":"6779:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6767:3:53","nodeType":"YulIdentifier","src":"6767:3:53"},"nativeSrc":"6767:17:53","nodeType":"YulFunctionCall","src":"6767:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"6755:8:53","nodeType":"YulIdentifier","src":"6755:8:53"}]},{"body":{"nativeSrc":"6838:83:53","nodeType":"YulBlock","src":"6838:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6840:77:53","nodeType":"YulIdentifier","src":"6840:77:53"},"nativeSrc":"6840:79:53","nodeType":"YulFunctionCall","src":"6840:79:53"},"nativeSrc":"6840:79:53","nodeType":"YulExpressionStatement","src":"6840:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6803:8:53","nodeType":"YulIdentifier","src":"6803:8:53"},{"arguments":[{"name":"length","nativeSrc":"6817:6:53","nodeType":"YulIdentifier","src":"6817:6:53"},{"kind":"number","nativeSrc":"6825:4:53","nodeType":"YulLiteral","src":"6825:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"6813:3:53","nodeType":"YulIdentifier","src":"6813:3:53"},"nativeSrc":"6813:17:53","nodeType":"YulFunctionCall","src":"6813:17:53"}],"functionName":{"name":"add","nativeSrc":"6799:3:53","nodeType":"YulIdentifier","src":"6799:3:53"},"nativeSrc":"6799:32:53","nodeType":"YulFunctionCall","src":"6799:32:53"},{"name":"end","nativeSrc":"6833:3:53","nodeType":"YulIdentifier","src":"6833:3:53"}],"functionName":{"name":"gt","nativeSrc":"6796:2:53","nodeType":"YulIdentifier","src":"6796:2:53"},"nativeSrc":"6796:41:53","nodeType":"YulFunctionCall","src":"6796:41:53"},"nativeSrc":"6793:128:53","nodeType":"YulIf","src":"6793:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6375:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6416:6:53","nodeType":"YulTypedName","src":"6416:6:53","type":""},{"name":"end","nativeSrc":"6424:3:53","nodeType":"YulTypedName","src":"6424:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6432:8:53","nodeType":"YulTypedName","src":"6432:8:53","type":""},{"name":"length","nativeSrc":"6442:6:53","nodeType":"YulTypedName","src":"6442:6:53","type":""}],"src":"6375:552:53"},{"body":{"nativeSrc":"7018:442:53","nodeType":"YulBlock","src":"7018:442:53","statements":[{"body":{"nativeSrc":"7064:83:53","nodeType":"YulBlock","src":"7064:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7066:77:53","nodeType":"YulIdentifier","src":"7066:77:53"},"nativeSrc":"7066:79:53","nodeType":"YulFunctionCall","src":"7066:79:53"},"nativeSrc":"7066:79:53","nodeType":"YulExpressionStatement","src":"7066:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7039:7:53","nodeType":"YulIdentifier","src":"7039:7:53"},{"name":"headStart","nativeSrc":"7048:9:53","nodeType":"YulIdentifier","src":"7048:9:53"}],"functionName":{"name":"sub","nativeSrc":"7035:3:53","nodeType":"YulIdentifier","src":"7035:3:53"},"nativeSrc":"7035:23:53","nodeType":"YulFunctionCall","src":"7035:23:53"},{"kind":"number","nativeSrc":"7060:2:53","nodeType":"YulLiteral","src":"7060:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7031:3:53","nodeType":"YulIdentifier","src":"7031:3:53"},"nativeSrc":"7031:32:53","nodeType":"YulFunctionCall","src":"7031:32:53"},"nativeSrc":"7028:119:53","nodeType":"YulIf","src":"7028:119:53"},{"nativeSrc":"7157:296:53","nodeType":"YulBlock","src":"7157:296:53","statements":[{"nativeSrc":"7172:45:53","nodeType":"YulVariableDeclaration","src":"7172:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7203:9:53","nodeType":"YulIdentifier","src":"7203:9:53"},{"kind":"number","nativeSrc":"7214:1:53","nodeType":"YulLiteral","src":"7214:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7199:3:53","nodeType":"YulIdentifier","src":"7199:3:53"},"nativeSrc":"7199:17:53","nodeType":"YulFunctionCall","src":"7199:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"7186:12:53","nodeType":"YulIdentifier","src":"7186:12:53"},"nativeSrc":"7186:31:53","nodeType":"YulFunctionCall","src":"7186:31:53"},"variables":[{"name":"offset","nativeSrc":"7176:6:53","nodeType":"YulTypedName","src":"7176:6:53","type":""}]},{"body":{"nativeSrc":"7264:83:53","nodeType":"YulBlock","src":"7264:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7266:77:53","nodeType":"YulIdentifier","src":"7266:77:53"},"nativeSrc":"7266:79:53","nodeType":"YulFunctionCall","src":"7266:79:53"},"nativeSrc":"7266:79:53","nodeType":"YulExpressionStatement","src":"7266:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7236:6:53","nodeType":"YulIdentifier","src":"7236:6:53"},{"kind":"number","nativeSrc":"7244:18:53","nodeType":"YulLiteral","src":"7244:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7233:2:53","nodeType":"YulIdentifier","src":"7233:2:53"},"nativeSrc":"7233:30:53","nodeType":"YulFunctionCall","src":"7233:30:53"},"nativeSrc":"7230:117:53","nodeType":"YulIf","src":"7230:117:53"},{"nativeSrc":"7361:82:53","nodeType":"YulAssignment","src":"7361:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7415:9:53","nodeType":"YulIdentifier","src":"7415:9:53"},{"name":"offset","nativeSrc":"7426:6:53","nodeType":"YulIdentifier","src":"7426:6:53"}],"functionName":{"name":"add","nativeSrc":"7411:3:53","nodeType":"YulIdentifier","src":"7411:3:53"},"nativeSrc":"7411:22:53","nodeType":"YulFunctionCall","src":"7411:22:53"},{"name":"dataEnd","nativeSrc":"7435:7:53","nodeType":"YulIdentifier","src":"7435:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7379:31:53","nodeType":"YulIdentifier","src":"7379:31:53"},"nativeSrc":"7379:64:53","nodeType":"YulFunctionCall","src":"7379:64:53"},"variableNames":[{"name":"value0","nativeSrc":"7361:6:53","nodeType":"YulIdentifier","src":"7361:6:53"},{"name":"value1","nativeSrc":"7369:6:53","nodeType":"YulIdentifier","src":"7369:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"6933:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6980:9:53","nodeType":"YulTypedName","src":"6980:9:53","type":""},{"name":"dataEnd","nativeSrc":"6991:7:53","nodeType":"YulTypedName","src":"6991:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7003:6:53","nodeType":"YulTypedName","src":"7003:6:53","type":""},{"name":"value1","nativeSrc":"7011:6:53","nodeType":"YulTypedName","src":"7011:6:53","type":""}],"src":"6933:527:53"},{"body":{"nativeSrc":"7531:53:53","nodeType":"YulBlock","src":"7531:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7548:3:53","nodeType":"YulIdentifier","src":"7548:3:53"},{"arguments":[{"name":"value","nativeSrc":"7571:5:53","nodeType":"YulIdentifier","src":"7571:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7553:17:53","nodeType":"YulIdentifier","src":"7553:17:53"},"nativeSrc":"7553:24:53","nodeType":"YulFunctionCall","src":"7553:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7541:6:53","nodeType":"YulIdentifier","src":"7541:6:53"},"nativeSrc":"7541:37:53","nodeType":"YulFunctionCall","src":"7541:37:53"},"nativeSrc":"7541:37:53","nodeType":"YulExpressionStatement","src":"7541:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7466:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7519:5:53","nodeType":"YulTypedName","src":"7519:5:53","type":""},{"name":"pos","nativeSrc":"7526:3:53","nodeType":"YulTypedName","src":"7526:3:53","type":""}],"src":"7466:118:53"},{"body":{"nativeSrc":"7688:124:53","nodeType":"YulBlock","src":"7688:124:53","statements":[{"nativeSrc":"7698:26:53","nodeType":"YulAssignment","src":"7698:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7710:9:53","nodeType":"YulIdentifier","src":"7710:9:53"},{"kind":"number","nativeSrc":"7721:2:53","nodeType":"YulLiteral","src":"7721:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7706:3:53","nodeType":"YulIdentifier","src":"7706:3:53"},"nativeSrc":"7706:18:53","nodeType":"YulFunctionCall","src":"7706:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7698:4:53","nodeType":"YulIdentifier","src":"7698:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7778:6:53","nodeType":"YulIdentifier","src":"7778:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7791:9:53","nodeType":"YulIdentifier","src":"7791:9:53"},{"kind":"number","nativeSrc":"7802:1:53","nodeType":"YulLiteral","src":"7802:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7787:3:53","nodeType":"YulIdentifier","src":"7787:3:53"},"nativeSrc":"7787:17:53","nodeType":"YulFunctionCall","src":"7787:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7734:43:53","nodeType":"YulIdentifier","src":"7734:43:53"},"nativeSrc":"7734:71:53","nodeType":"YulFunctionCall","src":"7734:71:53"},"nativeSrc":"7734:71:53","nodeType":"YulExpressionStatement","src":"7734:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7590:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7660:9:53","nodeType":"YulTypedName","src":"7660:9:53","type":""},{"name":"value0","nativeSrc":"7672:6:53","nodeType":"YulTypedName","src":"7672:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7683:4:53","nodeType":"YulTypedName","src":"7683:4:53","type":""}],"src":"7590:222:53"},{"body":{"nativeSrc":"7920:570:53","nodeType":"YulBlock","src":"7920:570:53","statements":[{"body":{"nativeSrc":"7966:83:53","nodeType":"YulBlock","src":"7966:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7968:77:53","nodeType":"YulIdentifier","src":"7968:77:53"},"nativeSrc":"7968:79:53","nodeType":"YulFunctionCall","src":"7968:79:53"},"nativeSrc":"7968:79:53","nodeType":"YulExpressionStatement","src":"7968:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7941:7:53","nodeType":"YulIdentifier","src":"7941:7:53"},{"name":"headStart","nativeSrc":"7950:9:53","nodeType":"YulIdentifier","src":"7950:9:53"}],"functionName":{"name":"sub","nativeSrc":"7937:3:53","nodeType":"YulIdentifier","src":"7937:3:53"},"nativeSrc":"7937:23:53","nodeType":"YulFunctionCall","src":"7937:23:53"},{"kind":"number","nativeSrc":"7962:2:53","nodeType":"YulLiteral","src":"7962:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7933:3:53","nodeType":"YulIdentifier","src":"7933:3:53"},"nativeSrc":"7933:32:53","nodeType":"YulFunctionCall","src":"7933:32:53"},"nativeSrc":"7930:119:53","nodeType":"YulIf","src":"7930:119:53"},{"nativeSrc":"8059:117:53","nodeType":"YulBlock","src":"8059:117:53","statements":[{"nativeSrc":"8074:15:53","nodeType":"YulVariableDeclaration","src":"8074:15:53","value":{"kind":"number","nativeSrc":"8088:1:53","nodeType":"YulLiteral","src":"8088:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8078:6:53","nodeType":"YulTypedName","src":"8078:6:53","type":""}]},{"nativeSrc":"8103:63:53","nodeType":"YulAssignment","src":"8103:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8138:9:53","nodeType":"YulIdentifier","src":"8138:9:53"},{"name":"offset","nativeSrc":"8149:6:53","nodeType":"YulIdentifier","src":"8149:6:53"}],"functionName":{"name":"add","nativeSrc":"8134:3:53","nodeType":"YulIdentifier","src":"8134:3:53"},"nativeSrc":"8134:22:53","nodeType":"YulFunctionCall","src":"8134:22:53"},{"name":"dataEnd","nativeSrc":"8158:7:53","nodeType":"YulIdentifier","src":"8158:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8113:20:53","nodeType":"YulIdentifier","src":"8113:20:53"},"nativeSrc":"8113:53:53","nodeType":"YulFunctionCall","src":"8113:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8103:6:53","nodeType":"YulIdentifier","src":"8103:6:53"}]}]},{"nativeSrc":"8186:297:53","nodeType":"YulBlock","src":"8186:297:53","statements":[{"nativeSrc":"8201:46:53","nodeType":"YulVariableDeclaration","src":"8201:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8232:9:53","nodeType":"YulIdentifier","src":"8232:9:53"},{"kind":"number","nativeSrc":"8243:2:53","nodeType":"YulLiteral","src":"8243:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8228:3:53","nodeType":"YulIdentifier","src":"8228:3:53"},"nativeSrc":"8228:18:53","nodeType":"YulFunctionCall","src":"8228:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8215:12:53","nodeType":"YulIdentifier","src":"8215:12:53"},"nativeSrc":"8215:32:53","nodeType":"YulFunctionCall","src":"8215:32:53"},"variables":[{"name":"offset","nativeSrc":"8205:6:53","nodeType":"YulTypedName","src":"8205:6:53","type":""}]},{"body":{"nativeSrc":"8294:83:53","nodeType":"YulBlock","src":"8294:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8296:77:53","nodeType":"YulIdentifier","src":"8296:77:53"},"nativeSrc":"8296:79:53","nodeType":"YulFunctionCall","src":"8296:79:53"},"nativeSrc":"8296:79:53","nodeType":"YulExpressionStatement","src":"8296:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8266:6:53","nodeType":"YulIdentifier","src":"8266:6:53"},{"kind":"number","nativeSrc":"8274:18:53","nodeType":"YulLiteral","src":"8274:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8263:2:53","nodeType":"YulIdentifier","src":"8263:2:53"},"nativeSrc":"8263:30:53","nodeType":"YulFunctionCall","src":"8263:30:53"},"nativeSrc":"8260:117:53","nodeType":"YulIf","src":"8260:117:53"},{"nativeSrc":"8391:82:53","nodeType":"YulAssignment","src":"8391:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8445:9:53","nodeType":"YulIdentifier","src":"8445:9:53"},{"name":"offset","nativeSrc":"8456:6:53","nodeType":"YulIdentifier","src":"8456:6:53"}],"functionName":{"name":"add","nativeSrc":"8441:3:53","nodeType":"YulIdentifier","src":"8441:3:53"},"nativeSrc":"8441:22:53","nodeType":"YulFunctionCall","src":"8441:22:53"},{"name":"dataEnd","nativeSrc":"8465:7:53","nodeType":"YulIdentifier","src":"8465:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"8409:31:53","nodeType":"YulIdentifier","src":"8409:31:53"},"nativeSrc":"8409:64:53","nodeType":"YulFunctionCall","src":"8409:64:53"},"variableNames":[{"name":"value1","nativeSrc":"8391:6:53","nodeType":"YulIdentifier","src":"8391:6:53"},{"name":"value2","nativeSrc":"8399:6:53","nodeType":"YulIdentifier","src":"8399:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"7818:672:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7874:9:53","nodeType":"YulTypedName","src":"7874:9:53","type":""},{"name":"dataEnd","nativeSrc":"7885:7:53","nodeType":"YulTypedName","src":"7885:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7897:6:53","nodeType":"YulTypedName","src":"7897:6:53","type":""},{"name":"value1","nativeSrc":"7905:6:53","nodeType":"YulTypedName","src":"7905:6:53","type":""},{"name":"value2","nativeSrc":"7913:6:53","nodeType":"YulTypedName","src":"7913:6:53","type":""}],"src":"7818:672:53"},{"body":{"nativeSrc":"8524:152:53","nodeType":"YulBlock","src":"8524:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8541:1:53","nodeType":"YulLiteral","src":"8541:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8544:77:53","nodeType":"YulLiteral","src":"8544:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8534:6:53","nodeType":"YulIdentifier","src":"8534:6:53"},"nativeSrc":"8534:88:53","nodeType":"YulFunctionCall","src":"8534:88:53"},"nativeSrc":"8534:88:53","nodeType":"YulExpressionStatement","src":"8534:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8638:1:53","nodeType":"YulLiteral","src":"8638:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8641:4:53","nodeType":"YulLiteral","src":"8641:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8631:6:53","nodeType":"YulIdentifier","src":"8631:6:53"},"nativeSrc":"8631:15:53","nodeType":"YulFunctionCall","src":"8631:15:53"},"nativeSrc":"8631:15:53","nodeType":"YulExpressionStatement","src":"8631:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8662:1:53","nodeType":"YulLiteral","src":"8662:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8665:4:53","nodeType":"YulLiteral","src":"8665:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8655:6:53","nodeType":"YulIdentifier","src":"8655:6:53"},"nativeSrc":"8655:15:53","nodeType":"YulFunctionCall","src":"8655:15:53"},"nativeSrc":"8655:15:53","nodeType":"YulExpressionStatement","src":"8655:15:53"}]},"name":"panic_error_0x32","nativeSrc":"8496:180:53","nodeType":"YulFunctionDefinition","src":"8496:180:53"},{"body":{"nativeSrc":"8722:76:53","nodeType":"YulBlock","src":"8722:76:53","statements":[{"body":{"nativeSrc":"8776:16:53","nodeType":"YulBlock","src":"8776:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8785:1:53","nodeType":"YulLiteral","src":"8785:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8788:1:53","nodeType":"YulLiteral","src":"8788:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8778:6:53","nodeType":"YulIdentifier","src":"8778:6:53"},"nativeSrc":"8778:12:53","nodeType":"YulFunctionCall","src":"8778:12:53"},"nativeSrc":"8778:12:53","nodeType":"YulExpressionStatement","src":"8778:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8745:5:53","nodeType":"YulIdentifier","src":"8745:5:53"},{"arguments":[{"name":"value","nativeSrc":"8767:5:53","nodeType":"YulIdentifier","src":"8767:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"8752:14:53","nodeType":"YulIdentifier","src":"8752:14:53"},"nativeSrc":"8752:21:53","nodeType":"YulFunctionCall","src":"8752:21:53"}],"functionName":{"name":"eq","nativeSrc":"8742:2:53","nodeType":"YulIdentifier","src":"8742:2:53"},"nativeSrc":"8742:32:53","nodeType":"YulFunctionCall","src":"8742:32:53"}],"functionName":{"name":"iszero","nativeSrc":"8735:6:53","nodeType":"YulIdentifier","src":"8735:6:53"},"nativeSrc":"8735:40:53","nodeType":"YulFunctionCall","src":"8735:40:53"},"nativeSrc":"8732:60:53","nodeType":"YulIf","src":"8732:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"8682:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8715:5:53","nodeType":"YulTypedName","src":"8715:5:53","type":""}],"src":"8682:116:53"},{"body":{"nativeSrc":"8853:84:53","nodeType":"YulBlock","src":"8853:84:53","statements":[{"nativeSrc":"8863:29:53","nodeType":"YulAssignment","src":"8863:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8885:6:53","nodeType":"YulIdentifier","src":"8885:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8872:12:53","nodeType":"YulIdentifier","src":"8872:12:53"},"nativeSrc":"8872:20:53","nodeType":"YulFunctionCall","src":"8872:20:53"},"variableNames":[{"name":"value","nativeSrc":"8863:5:53","nodeType":"YulIdentifier","src":"8863:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8925:5:53","nodeType":"YulIdentifier","src":"8925:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"8901:23:53","nodeType":"YulIdentifier","src":"8901:23:53"},"nativeSrc":"8901:30:53","nodeType":"YulFunctionCall","src":"8901:30:53"},"nativeSrc":"8901:30:53","nodeType":"YulExpressionStatement","src":"8901:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"8804:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8831:6:53","nodeType":"YulTypedName","src":"8831:6:53","type":""},{"name":"end","nativeSrc":"8839:3:53","nodeType":"YulTypedName","src":"8839:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8847:5:53","nodeType":"YulTypedName","src":"8847:5:53","type":""}],"src":"8804:133:53"},{"body":{"nativeSrc":"9006:260:53","nodeType":"YulBlock","src":"9006:260:53","statements":[{"body":{"nativeSrc":"9052:83:53","nodeType":"YulBlock","src":"9052:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9054:77:53","nodeType":"YulIdentifier","src":"9054:77:53"},"nativeSrc":"9054:79:53","nodeType":"YulFunctionCall","src":"9054:79:53"},"nativeSrc":"9054:79:53","nodeType":"YulExpressionStatement","src":"9054:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9027:7:53","nodeType":"YulIdentifier","src":"9027:7:53"},{"name":"headStart","nativeSrc":"9036:9:53","nodeType":"YulIdentifier","src":"9036:9:53"}],"functionName":{"name":"sub","nativeSrc":"9023:3:53","nodeType":"YulIdentifier","src":"9023:3:53"},"nativeSrc":"9023:23:53","nodeType":"YulFunctionCall","src":"9023:23:53"},{"kind":"number","nativeSrc":"9048:2:53","nodeType":"YulLiteral","src":"9048:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9019:3:53","nodeType":"YulIdentifier","src":"9019:3:53"},"nativeSrc":"9019:32:53","nodeType":"YulFunctionCall","src":"9019:32:53"},"nativeSrc":"9016:119:53","nodeType":"YulIf","src":"9016:119:53"},{"nativeSrc":"9145:114:53","nodeType":"YulBlock","src":"9145:114:53","statements":[{"nativeSrc":"9160:15:53","nodeType":"YulVariableDeclaration","src":"9160:15:53","value":{"kind":"number","nativeSrc":"9174:1:53","nodeType":"YulLiteral","src":"9174:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9164:6:53","nodeType":"YulTypedName","src":"9164:6:53","type":""}]},{"nativeSrc":"9189:60:53","nodeType":"YulAssignment","src":"9189:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9221:9:53","nodeType":"YulIdentifier","src":"9221:9:53"},{"name":"offset","nativeSrc":"9232:6:53","nodeType":"YulIdentifier","src":"9232:6:53"}],"functionName":{"name":"add","nativeSrc":"9217:3:53","nodeType":"YulIdentifier","src":"9217:3:53"},"nativeSrc":"9217:22:53","nodeType":"YulFunctionCall","src":"9217:22:53"},{"name":"dataEnd","nativeSrc":"9241:7:53","nodeType":"YulIdentifier","src":"9241:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"9199:17:53","nodeType":"YulIdentifier","src":"9199:17:53"},"nativeSrc":"9199:50:53","nodeType":"YulFunctionCall","src":"9199:50:53"},"variableNames":[{"name":"value0","nativeSrc":"9189:6:53","nodeType":"YulIdentifier","src":"9189:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"8943:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8976:9:53","nodeType":"YulTypedName","src":"8976:9:53","type":""},{"name":"dataEnd","nativeSrc":"8987:7:53","nodeType":"YulTypedName","src":"8987:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8999:6:53","nodeType":"YulTypedName","src":"8999:6:53","type":""}],"src":"8943:323:53"},{"body":{"nativeSrc":"9325:51:53","nodeType":"YulBlock","src":"9325:51:53","statements":[{"nativeSrc":"9335:35:53","nodeType":"YulAssignment","src":"9335:35:53","value":{"arguments":[{"name":"value","nativeSrc":"9364:5:53","nodeType":"YulIdentifier","src":"9364:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"9346:17:53","nodeType":"YulIdentifier","src":"9346:17:53"},"nativeSrc":"9346:24:53","nodeType":"YulFunctionCall","src":"9346:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"9335:7:53","nodeType":"YulIdentifier","src":"9335:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"9272:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9307:5:53","nodeType":"YulTypedName","src":"9307:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"9317:7:53","nodeType":"YulTypedName","src":"9317:7:53","type":""}],"src":"9272:104:53"},{"body":{"nativeSrc":"9433:87:53","nodeType":"YulBlock","src":"9433:87:53","statements":[{"body":{"nativeSrc":"9498:16:53","nodeType":"YulBlock","src":"9498:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9507:1:53","nodeType":"YulLiteral","src":"9507:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9510:1:53","nodeType":"YulLiteral","src":"9510:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9500:6:53","nodeType":"YulIdentifier","src":"9500:6:53"},"nativeSrc":"9500:12:53","nodeType":"YulFunctionCall","src":"9500:12:53"},"nativeSrc":"9500:12:53","nodeType":"YulExpressionStatement","src":"9500:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9456:5:53","nodeType":"YulIdentifier","src":"9456:5:53"},{"arguments":[{"name":"value","nativeSrc":"9489:5:53","nodeType":"YulIdentifier","src":"9489:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"9463:25:53","nodeType":"YulIdentifier","src":"9463:25:53"},"nativeSrc":"9463:32:53","nodeType":"YulFunctionCall","src":"9463:32:53"}],"functionName":{"name":"eq","nativeSrc":"9453:2:53","nodeType":"YulIdentifier","src":"9453:2:53"},"nativeSrc":"9453:43:53","nodeType":"YulFunctionCall","src":"9453:43:53"}],"functionName":{"name":"iszero","nativeSrc":"9446:6:53","nodeType":"YulIdentifier","src":"9446:6:53"},"nativeSrc":"9446:51:53","nodeType":"YulFunctionCall","src":"9446:51:53"},"nativeSrc":"9443:71:53","nodeType":"YulIf","src":"9443:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"9382:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9426:5:53","nodeType":"YulTypedName","src":"9426:5:53","type":""}],"src":"9382:138:53"},{"body":{"nativeSrc":"9586:95:53","nodeType":"YulBlock","src":"9586:95:53","statements":[{"nativeSrc":"9596:29:53","nodeType":"YulAssignment","src":"9596:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9618:6:53","nodeType":"YulIdentifier","src":"9618:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9605:12:53","nodeType":"YulIdentifier","src":"9605:12:53"},"nativeSrc":"9605:20:53","nodeType":"YulFunctionCall","src":"9605:20:53"},"variableNames":[{"name":"value","nativeSrc":"9596:5:53","nodeType":"YulIdentifier","src":"9596:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9669:5:53","nodeType":"YulIdentifier","src":"9669:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"9634:34:53","nodeType":"YulIdentifier","src":"9634:34:53"},"nativeSrc":"9634:41:53","nodeType":"YulFunctionCall","src":"9634:41:53"},"nativeSrc":"9634:41:53","nodeType":"YulExpressionStatement","src":"9634:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"9526:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9564:6:53","nodeType":"YulTypedName","src":"9564:6:53","type":""},{"name":"end","nativeSrc":"9572:3:53","nodeType":"YulTypedName","src":"9572:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9580:5:53","nodeType":"YulTypedName","src":"9580:5:53","type":""}],"src":"9526:155:53"},{"body":{"nativeSrc":"9735:54:53","nodeType":"YulBlock","src":"9735:54:53","statements":[{"nativeSrc":"9745:38:53","nodeType":"YulAssignment","src":"9745:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9763:5:53","nodeType":"YulIdentifier","src":"9763:5:53"},{"kind":"number","nativeSrc":"9770:2:53","nodeType":"YulLiteral","src":"9770:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9759:3:53","nodeType":"YulIdentifier","src":"9759:3:53"},"nativeSrc":"9759:14:53","nodeType":"YulFunctionCall","src":"9759:14:53"},{"arguments":[{"kind":"number","nativeSrc":"9779:2:53","nodeType":"YulLiteral","src":"9779:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9775:3:53","nodeType":"YulIdentifier","src":"9775:3:53"},"nativeSrc":"9775:7:53","nodeType":"YulFunctionCall","src":"9775:7:53"}],"functionName":{"name":"and","nativeSrc":"9755:3:53","nodeType":"YulIdentifier","src":"9755:3:53"},"nativeSrc":"9755:28:53","nodeType":"YulFunctionCall","src":"9755:28:53"},"variableNames":[{"name":"result","nativeSrc":"9745:6:53","nodeType":"YulIdentifier","src":"9745:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9687:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9718:5:53","nodeType":"YulTypedName","src":"9718:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9728:6:53","nodeType":"YulTypedName","src":"9728:6:53","type":""}],"src":"9687:102:53"},{"body":{"nativeSrc":"9823:152:53","nodeType":"YulBlock","src":"9823:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9840:1:53","nodeType":"YulLiteral","src":"9840:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9843:77:53","nodeType":"YulLiteral","src":"9843:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9833:6:53","nodeType":"YulIdentifier","src":"9833:6:53"},"nativeSrc":"9833:88:53","nodeType":"YulFunctionCall","src":"9833:88:53"},"nativeSrc":"9833:88:53","nodeType":"YulExpressionStatement","src":"9833:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9937:1:53","nodeType":"YulLiteral","src":"9937:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9940:4:53","nodeType":"YulLiteral","src":"9940:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9930:6:53","nodeType":"YulIdentifier","src":"9930:6:53"},"nativeSrc":"9930:15:53","nodeType":"YulFunctionCall","src":"9930:15:53"},"nativeSrc":"9930:15:53","nodeType":"YulExpressionStatement","src":"9930:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9961:1:53","nodeType":"YulLiteral","src":"9961:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9964:4:53","nodeType":"YulLiteral","src":"9964:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9954:6:53","nodeType":"YulIdentifier","src":"9954:6:53"},"nativeSrc":"9954:15:53","nodeType":"YulFunctionCall","src":"9954:15:53"},"nativeSrc":"9954:15:53","nodeType":"YulExpressionStatement","src":"9954:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9795:180:53","nodeType":"YulFunctionDefinition","src":"9795:180:53"},{"body":{"nativeSrc":"10024:238:53","nodeType":"YulBlock","src":"10024:238:53","statements":[{"nativeSrc":"10034:58:53","nodeType":"YulVariableDeclaration","src":"10034:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10056:6:53","nodeType":"YulIdentifier","src":"10056:6:53"},{"arguments":[{"name":"size","nativeSrc":"10086:4:53","nodeType":"YulIdentifier","src":"10086:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10064:21:53","nodeType":"YulIdentifier","src":"10064:21:53"},"nativeSrc":"10064:27:53","nodeType":"YulFunctionCall","src":"10064:27:53"}],"functionName":{"name":"add","nativeSrc":"10052:3:53","nodeType":"YulIdentifier","src":"10052:3:53"},"nativeSrc":"10052:40:53","nodeType":"YulFunctionCall","src":"10052:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10038:10:53","nodeType":"YulTypedName","src":"10038:10:53","type":""}]},{"body":{"nativeSrc":"10203:22:53","nodeType":"YulBlock","src":"10203:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10205:16:53","nodeType":"YulIdentifier","src":"10205:16:53"},"nativeSrc":"10205:18:53","nodeType":"YulFunctionCall","src":"10205:18:53"},"nativeSrc":"10205:18:53","nodeType":"YulExpressionStatement","src":"10205:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10146:10:53","nodeType":"YulIdentifier","src":"10146:10:53"},{"kind":"number","nativeSrc":"10158:18:53","nodeType":"YulLiteral","src":"10158:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10143:2:53","nodeType":"YulIdentifier","src":"10143:2:53"},"nativeSrc":"10143:34:53","nodeType":"YulFunctionCall","src":"10143:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10182:10:53","nodeType":"YulIdentifier","src":"10182:10:53"},{"name":"memPtr","nativeSrc":"10194:6:53","nodeType":"YulIdentifier","src":"10194:6:53"}],"functionName":{"name":"lt","nativeSrc":"10179:2:53","nodeType":"YulIdentifier","src":"10179:2:53"},"nativeSrc":"10179:22:53","nodeType":"YulFunctionCall","src":"10179:22:53"}],"functionName":{"name":"or","nativeSrc":"10140:2:53","nodeType":"YulIdentifier","src":"10140:2:53"},"nativeSrc":"10140:62:53","nodeType":"YulFunctionCall","src":"10140:62:53"},"nativeSrc":"10137:88:53","nodeType":"YulIf","src":"10137:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10241:2:53","nodeType":"YulLiteral","src":"10241:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10245:10:53","nodeType":"YulIdentifier","src":"10245:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10234:6:53","nodeType":"YulIdentifier","src":"10234:6:53"},"nativeSrc":"10234:22:53","nodeType":"YulFunctionCall","src":"10234:22:53"},"nativeSrc":"10234:22:53","nodeType":"YulExpressionStatement","src":"10234:22:53"}]},"name":"finalize_allocation","nativeSrc":"9981:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10010:6:53","nodeType":"YulTypedName","src":"10010:6:53","type":""},{"name":"size","nativeSrc":"10018:4:53","nodeType":"YulTypedName","src":"10018:4:53","type":""}],"src":"9981:281:53"},{"body":{"nativeSrc":"10309:88:53","nodeType":"YulBlock","src":"10309:88:53","statements":[{"nativeSrc":"10319:30:53","nodeType":"YulAssignment","src":"10319:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10329:18:53","nodeType":"YulIdentifier","src":"10329:18:53"},"nativeSrc":"10329:20:53","nodeType":"YulFunctionCall","src":"10329:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10319:6:53","nodeType":"YulIdentifier","src":"10319:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10378:6:53","nodeType":"YulIdentifier","src":"10378:6:53"},{"name":"size","nativeSrc":"10386:4:53","nodeType":"YulIdentifier","src":"10386:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10358:19:53","nodeType":"YulIdentifier","src":"10358:19:53"},"nativeSrc":"10358:33:53","nodeType":"YulFunctionCall","src":"10358:33:53"},"nativeSrc":"10358:33:53","nodeType":"YulExpressionStatement","src":"10358:33:53"}]},"name":"allocate_memory","nativeSrc":"10268:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10293:4:53","nodeType":"YulTypedName","src":"10293:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10302:6:53","nodeType":"YulTypedName","src":"10302:6:53","type":""}],"src":"10268:129:53"},{"body":{"nativeSrc":"10485:229:53","nodeType":"YulBlock","src":"10485:229:53","statements":[{"body":{"nativeSrc":"10590:22:53","nodeType":"YulBlock","src":"10590:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10592:16:53","nodeType":"YulIdentifier","src":"10592:16:53"},"nativeSrc":"10592:18:53","nodeType":"YulFunctionCall","src":"10592:18:53"},"nativeSrc":"10592:18:53","nodeType":"YulExpressionStatement","src":"10592:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10562:6:53","nodeType":"YulIdentifier","src":"10562:6:53"},{"kind":"number","nativeSrc":"10570:18:53","nodeType":"YulLiteral","src":"10570:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10559:2:53","nodeType":"YulIdentifier","src":"10559:2:53"},"nativeSrc":"10559:30:53","nodeType":"YulFunctionCall","src":"10559:30:53"},"nativeSrc":"10556:56:53","nodeType":"YulIf","src":"10556:56:53"},{"nativeSrc":"10622:25:53","nodeType":"YulAssignment","src":"10622:25:53","value":{"arguments":[{"name":"length","nativeSrc":"10634:6:53","nodeType":"YulIdentifier","src":"10634:6:53"},{"kind":"number","nativeSrc":"10642:4:53","nodeType":"YulLiteral","src":"10642:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10630:3:53","nodeType":"YulIdentifier","src":"10630:3:53"},"nativeSrc":"10630:17:53","nodeType":"YulFunctionCall","src":"10630:17:53"},"variableNames":[{"name":"size","nativeSrc":"10622:4:53","nodeType":"YulIdentifier","src":"10622:4:53"}]},{"nativeSrc":"10684:23:53","nodeType":"YulAssignment","src":"10684:23:53","value":{"arguments":[{"name":"size","nativeSrc":"10696:4:53","nodeType":"YulIdentifier","src":"10696:4:53"},{"kind":"number","nativeSrc":"10702:4:53","nodeType":"YulLiteral","src":"10702:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10692:3:53","nodeType":"YulIdentifier","src":"10692:3:53"},"nativeSrc":"10692:15:53","nodeType":"YulFunctionCall","src":"10692:15:53"},"variableNames":[{"name":"size","nativeSrc":"10684:4:53","nodeType":"YulIdentifier","src":"10684:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10403:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10469:6:53","nodeType":"YulTypedName","src":"10469:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10480:4:53","nodeType":"YulTypedName","src":"10480:4:53","type":""}],"src":"10403:311:53"},{"body":{"nativeSrc":"10839:608:53","nodeType":"YulBlock","src":"10839:608:53","statements":[{"nativeSrc":"10849:90:53","nodeType":"YulAssignment","src":"10849:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10931:6:53","nodeType":"YulIdentifier","src":"10931:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10874:56:53","nodeType":"YulIdentifier","src":"10874:56:53"},"nativeSrc":"10874:64:53","nodeType":"YulFunctionCall","src":"10874:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10858:15:53","nodeType":"YulIdentifier","src":"10858:15:53"},"nativeSrc":"10858:81:53","nodeType":"YulFunctionCall","src":"10858:81:53"},"variableNames":[{"name":"array","nativeSrc":"10849:5:53","nodeType":"YulIdentifier","src":"10849:5:53"}]},{"nativeSrc":"10948:16:53","nodeType":"YulVariableDeclaration","src":"10948:16:53","value":{"name":"array","nativeSrc":"10959:5:53","nodeType":"YulIdentifier","src":"10959:5:53"},"variables":[{"name":"dst","nativeSrc":"10952:3:53","nodeType":"YulTypedName","src":"10952:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"10981:5:53","nodeType":"YulIdentifier","src":"10981:5:53"},{"name":"length","nativeSrc":"10988:6:53","nodeType":"YulIdentifier","src":"10988:6:53"}],"functionName":{"name":"mstore","nativeSrc":"10974:6:53","nodeType":"YulIdentifier","src":"10974:6:53"},"nativeSrc":"10974:21:53","nodeType":"YulFunctionCall","src":"10974:21:53"},"nativeSrc":"10974:21:53","nodeType":"YulExpressionStatement","src":"10974:21:53"},{"nativeSrc":"11004:23:53","nodeType":"YulAssignment","src":"11004:23:53","value":{"arguments":[{"name":"array","nativeSrc":"11015:5:53","nodeType":"YulIdentifier","src":"11015:5:53"},{"kind":"number","nativeSrc":"11022:4:53","nodeType":"YulLiteral","src":"11022:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11011:3:53","nodeType":"YulIdentifier","src":"11011:3:53"},"nativeSrc":"11011:16:53","nodeType":"YulFunctionCall","src":"11011:16:53"},"variableNames":[{"name":"dst","nativeSrc":"11004:3:53","nodeType":"YulIdentifier","src":"11004:3:53"}]},{"nativeSrc":"11037:44:53","nodeType":"YulVariableDeclaration","src":"11037:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"11055:6:53","nodeType":"YulIdentifier","src":"11055:6:53"},{"arguments":[{"name":"length","nativeSrc":"11067:6:53","nodeType":"YulIdentifier","src":"11067:6:53"},{"kind":"number","nativeSrc":"11075:4:53","nodeType":"YulLiteral","src":"11075:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11063:3:53","nodeType":"YulIdentifier","src":"11063:3:53"},"nativeSrc":"11063:17:53","nodeType":"YulFunctionCall","src":"11063:17:53"}],"functionName":{"name":"add","nativeSrc":"11051:3:53","nodeType":"YulIdentifier","src":"11051:3:53"},"nativeSrc":"11051:30:53","nodeType":"YulFunctionCall","src":"11051:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"11041:6:53","nodeType":"YulTypedName","src":"11041:6:53","type":""}]},{"body":{"nativeSrc":"11109:103:53","nodeType":"YulBlock","src":"11109:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11123:77:53","nodeType":"YulIdentifier","src":"11123:77:53"},"nativeSrc":"11123:79:53","nodeType":"YulFunctionCall","src":"11123:79:53"},"nativeSrc":"11123:79:53","nodeType":"YulExpressionStatement","src":"11123:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11096:6:53","nodeType":"YulIdentifier","src":"11096:6:53"},{"name":"end","nativeSrc":"11104:3:53","nodeType":"YulIdentifier","src":"11104:3:53"}],"functionName":{"name":"gt","nativeSrc":"11093:2:53","nodeType":"YulIdentifier","src":"11093:2:53"},"nativeSrc":"11093:15:53","nodeType":"YulFunctionCall","src":"11093:15:53"},"nativeSrc":"11090:122:53","nodeType":"YulIf","src":"11090:122:53"},{"body":{"nativeSrc":"11297:144:53","nodeType":"YulBlock","src":"11297:144:53","statements":[{"nativeSrc":"11312:21:53","nodeType":"YulVariableDeclaration","src":"11312:21:53","value":{"name":"src","nativeSrc":"11330:3:53","nodeType":"YulIdentifier","src":"11330:3:53"},"variables":[{"name":"elementPos","nativeSrc":"11316:10:53","nodeType":"YulTypedName","src":"11316:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11354:3:53","nodeType":"YulIdentifier","src":"11354:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"11380:10:53","nodeType":"YulIdentifier","src":"11380:10:53"},{"name":"end","nativeSrc":"11392:3:53","nodeType":"YulIdentifier","src":"11392:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11359:20:53","nodeType":"YulIdentifier","src":"11359:20:53"},"nativeSrc":"11359:37:53","nodeType":"YulFunctionCall","src":"11359:37:53"}],"functionName":{"name":"mstore","nativeSrc":"11347:6:53","nodeType":"YulIdentifier","src":"11347:6:53"},"nativeSrc":"11347:50:53","nodeType":"YulFunctionCall","src":"11347:50:53"},"nativeSrc":"11347:50:53","nodeType":"YulExpressionStatement","src":"11347:50:53"},{"nativeSrc":"11410:21:53","nodeType":"YulAssignment","src":"11410:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"11421:3:53","nodeType":"YulIdentifier","src":"11421:3:53"},{"kind":"number","nativeSrc":"11426:4:53","nodeType":"YulLiteral","src":"11426:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11417:3:53","nodeType":"YulIdentifier","src":"11417:3:53"},"nativeSrc":"11417:14:53","nodeType":"YulFunctionCall","src":"11417:14:53"},"variableNames":[{"name":"dst","nativeSrc":"11410:3:53","nodeType":"YulIdentifier","src":"11410:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11250:3:53","nodeType":"YulIdentifier","src":"11250:3:53"},{"name":"srcEnd","nativeSrc":"11255:6:53","nodeType":"YulIdentifier","src":"11255:6:53"}],"functionName":{"name":"lt","nativeSrc":"11247:2:53","nodeType":"YulIdentifier","src":"11247:2:53"},"nativeSrc":"11247:15:53","nodeType":"YulFunctionCall","src":"11247:15:53"},"nativeSrc":"11221:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"11263:25:53","nodeType":"YulBlock","src":"11263:25:53","statements":[{"nativeSrc":"11265:21:53","nodeType":"YulAssignment","src":"11265:21:53","value":{"arguments":[{"name":"src","nativeSrc":"11276:3:53","nodeType":"YulIdentifier","src":"11276:3:53"},{"kind":"number","nativeSrc":"11281:4:53","nodeType":"YulLiteral","src":"11281:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11272:3:53","nodeType":"YulIdentifier","src":"11272:3:53"},"nativeSrc":"11272:14:53","nodeType":"YulFunctionCall","src":"11272:14:53"},"variableNames":[{"name":"src","nativeSrc":"11265:3:53","nodeType":"YulIdentifier","src":"11265:3:53"}]}]},"pre":{"nativeSrc":"11225:21:53","nodeType":"YulBlock","src":"11225:21:53","statements":[{"nativeSrc":"11227:17:53","nodeType":"YulVariableDeclaration","src":"11227:17:53","value":{"name":"offset","nativeSrc":"11238:6:53","nodeType":"YulIdentifier","src":"11238:6:53"},"variables":[{"name":"src","nativeSrc":"11231:3:53","nodeType":"YulTypedName","src":"11231:3:53","type":""}]}]},"src":"11221:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10737:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10809:6:53","nodeType":"YulTypedName","src":"10809:6:53","type":""},{"name":"length","nativeSrc":"10817:6:53","nodeType":"YulTypedName","src":"10817:6:53","type":""},{"name":"end","nativeSrc":"10825:3:53","nodeType":"YulTypedName","src":"10825:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10833:5:53","nodeType":"YulTypedName","src":"10833:5:53","type":""}],"src":"10737:710:53"},{"body":{"nativeSrc":"11547:293:53","nodeType":"YulBlock","src":"11547:293:53","statements":[{"body":{"nativeSrc":"11596:83:53","nodeType":"YulBlock","src":"11596:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11598:77:53","nodeType":"YulIdentifier","src":"11598:77:53"},"nativeSrc":"11598:79:53","nodeType":"YulFunctionCall","src":"11598:79:53"},"nativeSrc":"11598:79:53","nodeType":"YulExpressionStatement","src":"11598:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11575:6:53","nodeType":"YulIdentifier","src":"11575:6:53"},{"kind":"number","nativeSrc":"11583:4:53","nodeType":"YulLiteral","src":"11583:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11571:3:53","nodeType":"YulIdentifier","src":"11571:3:53"},"nativeSrc":"11571:17:53","nodeType":"YulFunctionCall","src":"11571:17:53"},{"name":"end","nativeSrc":"11590:3:53","nodeType":"YulIdentifier","src":"11590:3:53"}],"functionName":{"name":"slt","nativeSrc":"11567:3:53","nodeType":"YulIdentifier","src":"11567:3:53"},"nativeSrc":"11567:27:53","nodeType":"YulFunctionCall","src":"11567:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11560:6:53","nodeType":"YulIdentifier","src":"11560:6:53"},"nativeSrc":"11560:35:53","nodeType":"YulFunctionCall","src":"11560:35:53"},"nativeSrc":"11557:122:53","nodeType":"YulIf","src":"11557:122:53"},{"nativeSrc":"11688:34:53","nodeType":"YulVariableDeclaration","src":"11688:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"11715:6:53","nodeType":"YulIdentifier","src":"11715:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"11702:12:53","nodeType":"YulIdentifier","src":"11702:12:53"},"nativeSrc":"11702:20:53","nodeType":"YulFunctionCall","src":"11702:20:53"},"variables":[{"name":"length","nativeSrc":"11692:6:53","nodeType":"YulTypedName","src":"11692:6:53","type":""}]},{"nativeSrc":"11731:103:53","nodeType":"YulAssignment","src":"11731:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11807:6:53","nodeType":"YulIdentifier","src":"11807:6:53"},{"kind":"number","nativeSrc":"11815:4:53","nodeType":"YulLiteral","src":"11815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11803:3:53","nodeType":"YulIdentifier","src":"11803:3:53"},"nativeSrc":"11803:17:53","nodeType":"YulFunctionCall","src":"11803:17:53"},{"name":"length","nativeSrc":"11822:6:53","nodeType":"YulIdentifier","src":"11822:6:53"},{"name":"end","nativeSrc":"11830:3:53","nodeType":"YulIdentifier","src":"11830:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11740:62:53","nodeType":"YulIdentifier","src":"11740:62:53"},"nativeSrc":"11740:94:53","nodeType":"YulFunctionCall","src":"11740:94:53"},"variableNames":[{"name":"array","nativeSrc":"11731:5:53","nodeType":"YulIdentifier","src":"11731:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11470:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11525:6:53","nodeType":"YulTypedName","src":"11525:6:53","type":""},{"name":"end","nativeSrc":"11533:3:53","nodeType":"YulTypedName","src":"11533:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11541:5:53","nodeType":"YulTypedName","src":"11541:5:53","type":""}],"src":"11470:370:53"},{"body":{"nativeSrc":"11962:584:53","nodeType":"YulBlock","src":"11962:584:53","statements":[{"body":{"nativeSrc":"12008:83:53","nodeType":"YulBlock","src":"12008:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12010:77:53","nodeType":"YulIdentifier","src":"12010:77:53"},"nativeSrc":"12010:79:53","nodeType":"YulFunctionCall","src":"12010:79:53"},"nativeSrc":"12010:79:53","nodeType":"YulExpressionStatement","src":"12010:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11983:7:53","nodeType":"YulIdentifier","src":"11983:7:53"},{"name":"headStart","nativeSrc":"11992:9:53","nodeType":"YulIdentifier","src":"11992:9:53"}],"functionName":{"name":"sub","nativeSrc":"11979:3:53","nodeType":"YulIdentifier","src":"11979:3:53"},"nativeSrc":"11979:23:53","nodeType":"YulFunctionCall","src":"11979:23:53"},{"kind":"number","nativeSrc":"12004:2:53","nodeType":"YulLiteral","src":"12004:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11975:3:53","nodeType":"YulIdentifier","src":"11975:3:53"},"nativeSrc":"11975:32:53","nodeType":"YulFunctionCall","src":"11975:32:53"},"nativeSrc":"11972:119:53","nodeType":"YulIf","src":"11972:119:53"},{"nativeSrc":"12101:125:53","nodeType":"YulBlock","src":"12101:125:53","statements":[{"nativeSrc":"12116:15:53","nodeType":"YulVariableDeclaration","src":"12116:15:53","value":{"kind":"number","nativeSrc":"12130:1:53","nodeType":"YulLiteral","src":"12130:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12120:6:53","nodeType":"YulTypedName","src":"12120:6:53","type":""}]},{"nativeSrc":"12145:71:53","nodeType":"YulAssignment","src":"12145:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12188:9:53","nodeType":"YulIdentifier","src":"12188:9:53"},{"name":"offset","nativeSrc":"12199:6:53","nodeType":"YulIdentifier","src":"12199:6:53"}],"functionName":{"name":"add","nativeSrc":"12184:3:53","nodeType":"YulIdentifier","src":"12184:3:53"},"nativeSrc":"12184:22:53","nodeType":"YulFunctionCall","src":"12184:22:53"},{"name":"dataEnd","nativeSrc":"12208:7:53","nodeType":"YulIdentifier","src":"12208:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12155:28:53","nodeType":"YulIdentifier","src":"12155:28:53"},"nativeSrc":"12155:61:53","nodeType":"YulFunctionCall","src":"12155:61:53"},"variableNames":[{"name":"value0","nativeSrc":"12145:6:53","nodeType":"YulIdentifier","src":"12145:6:53"}]}]},{"nativeSrc":"12236:303:53","nodeType":"YulBlock","src":"12236:303:53","statements":[{"nativeSrc":"12251:46:53","nodeType":"YulVariableDeclaration","src":"12251:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12282:9:53","nodeType":"YulIdentifier","src":"12282:9:53"},{"kind":"number","nativeSrc":"12293:2:53","nodeType":"YulLiteral","src":"12293:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12278:3:53","nodeType":"YulIdentifier","src":"12278:3:53"},"nativeSrc":"12278:18:53","nodeType":"YulFunctionCall","src":"12278:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12265:12:53","nodeType":"YulIdentifier","src":"12265:12:53"},"nativeSrc":"12265:32:53","nodeType":"YulFunctionCall","src":"12265:32:53"},"variables":[{"name":"offset","nativeSrc":"12255:6:53","nodeType":"YulTypedName","src":"12255:6:53","type":""}]},{"body":{"nativeSrc":"12344:83:53","nodeType":"YulBlock","src":"12344:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12346:77:53","nodeType":"YulIdentifier","src":"12346:77:53"},"nativeSrc":"12346:79:53","nodeType":"YulFunctionCall","src":"12346:79:53"},"nativeSrc":"12346:79:53","nodeType":"YulExpressionStatement","src":"12346:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12316:6:53","nodeType":"YulIdentifier","src":"12316:6:53"},{"kind":"number","nativeSrc":"12324:18:53","nodeType":"YulLiteral","src":"12324:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12313:2:53","nodeType":"YulIdentifier","src":"12313:2:53"},"nativeSrc":"12313:30:53","nodeType":"YulFunctionCall","src":"12313:30:53"},"nativeSrc":"12310:117:53","nodeType":"YulIf","src":"12310:117:53"},{"nativeSrc":"12441:88:53","nodeType":"YulAssignment","src":"12441:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12501:9:53","nodeType":"YulIdentifier","src":"12501:9:53"},{"name":"offset","nativeSrc":"12512:6:53","nodeType":"YulIdentifier","src":"12512:6:53"}],"functionName":{"name":"add","nativeSrc":"12497:3:53","nodeType":"YulIdentifier","src":"12497:3:53"},"nativeSrc":"12497:22:53","nodeType":"YulFunctionCall","src":"12497:22:53"},{"name":"dataEnd","nativeSrc":"12521:7:53","nodeType":"YulIdentifier","src":"12521:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12451:45:53","nodeType":"YulIdentifier","src":"12451:45:53"},"nativeSrc":"12451:78:53","nodeType":"YulFunctionCall","src":"12451:78:53"},"variableNames":[{"name":"value1","nativeSrc":"12441:6:53","nodeType":"YulIdentifier","src":"12441:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr","nativeSrc":"11846:700:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11924:9:53","nodeType":"YulTypedName","src":"11924:9:53","type":""},{"name":"dataEnd","nativeSrc":"11935:7:53","nodeType":"YulTypedName","src":"11935:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11947:6:53","nodeType":"YulTypedName","src":"11947:6:53","type":""},{"name":"value1","nativeSrc":"11955:6:53","nodeType":"YulTypedName","src":"11955:6:53","type":""}],"src":"11846:700:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\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 := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_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_address_payablet_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610108575f3560e01c8063514e62fc1161009457806398332bbc1161006357806398332bbc146102e8578063e3f756de14610312578063f04e283e1461034e578063f2fde38b1461036a578063fee81cf41461038657610108565b8063514e62fc1461026e57806354d1f13d146102aa578063715018a6146102b45780638da5cb5b146102be57610108565b806325692962116100db57806325692962146101bc5780632de94807146101c65780633abb060414610202578063439fab911461022a5780634a4ee7b11461025257610108565b806301ffc9a71461010c578063183a4f6e146101485780631c10893f146101645780631cd64df414610180575b5f80fd5b348015610117575f80fd5b50610132600480360381019061012d9190610c7c565b6103c2565b60405161013f9190610cc1565b60405180910390f35b610162600480360381019061015d9190610d0d565b61043b565b005b61017e60048036038101906101799190610d92565b610448565b005b34801561018b575f80fd5b506101a660048036038101906101a19190610d92565b61045e565b6040516101b39190610cc1565b60405180910390f35b6101c4610474565b005b3480156101d1575f80fd5b506101ec60048036038101906101e79190610dd0565b6104c5565b6040516101f99190610e0a565b60405180910390f35b34801561020d575f80fd5b5061022860048036038101906102239190610ed9565b6104de565b005b348015610235575f80fd5b50610250600480360381019061024b9190610fac565b6105eb565b005b61026c60048036038101906102679190610d92565b610713565b005b348015610279575f80fd5b50610294600480360381019061028f9190610d92565b610729565b6040516102a19190610cc1565b60405180910390f35b6102b2610740565b005b6102bc610779565b005b3480156102c9575f80fd5b506102d261078c565b6040516102df9190611006565b60405180910390f35b3480156102f3575f80fd5b506102fc6107b4565b6040516103099190610e0a565b60405180910390f35b34801561031d575f80fd5b506103386004803603810190610333919061101f565b6107b9565b6040516103459190610cc1565b60405180910390f35b61036860048036038101906103639190610dd0565b61080c565b005b610384600480360381019061037f9190610dd0565b61084a565b005b348015610391575f80fd5b506103ac60048036038101906103a79190610dd0565b610873565b6040516103b99190610e0a565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043457506104338261088c565b5b9050919050565b6104453382610905565b50565b610450610914565b61045a828261094b565b5050565b5f818261046a856104c5565b1614905092915050565b5f61047d61095b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b60026104e981610965565b828290508585905014610528576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156105e3578383828181106105485761054761107c565b5b905060200201602081019061055d91906110d3565b5f808888858181106105725761057161107c565b5b90506020020160208101906105879190610dd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061052a565b505050505050565b5f6105f461098c565b905080546003825580156106265760018160011c14303b1061061d5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906106389190611281565b91509150610645826109b5565b61065082600261094b565b5f5b81518110156106d65760015f808484815181106106725761067161107c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610652565b505050801561070e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b61071b610914565b6107258282610905565b5050565b5f8082610735856104c5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610781610914565b61078a5f610a8b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610814610914565b63389a75e1600c52805f526020600c20805442111561083a57636f5e88185f526004601cfd5b5f81555061084781610a8b565b50565b610852610914565b8060601b61086757637448fbae5f526004601cfd5b61087081610a8b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fe57506108fd82610b51565b5b9050919050565b61091082825f610bba565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610949576382b429005f526004601cfd5b565b61095782826001610bba565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c205416610989576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6109bd610c12565b15610a35577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156109f757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610a88565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610a93610c12565b15610af8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610b4e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b638b78c6d8600c52825f526020600c20805483811783610bdc57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c5b81610c27565b8114610c65575f80fd5b50565b5f81359050610c7681610c52565b92915050565b5f60208284031215610c9157610c90610c1f565b5b5f610c9e84828501610c68565b91505092915050565b5f8115159050919050565b610cbb81610ca7565b82525050565b5f602082019050610cd45f830184610cb2565b92915050565b5f819050919050565b610cec81610cda565b8114610cf6575f80fd5b50565b5f81359050610d0781610ce3565b92915050565b5f60208284031215610d2257610d21610c1f565b5b5f610d2f84828501610cf9565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d6182610d38565b9050919050565b610d7181610d57565b8114610d7b575f80fd5b50565b5f81359050610d8c81610d68565b92915050565b5f8060408385031215610da857610da7610c1f565b5b5f610db585828601610d7e565b9250506020610dc685828601610cf9565b9150509250929050565b5f60208284031215610de557610de4610c1f565b5b5f610df284828501610d7e565b91505092915050565b610e0481610cda565b82525050565b5f602082019050610e1d5f830184610dfb565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4457610e43610e23565b5b8235905067ffffffffffffffff811115610e6157610e60610e27565b5b602083019150836020820283011115610e7d57610e7c610e2b565b5b9250929050565b5f8083601f840112610e9957610e98610e23565b5b8235905067ffffffffffffffff811115610eb657610eb5610e27565b5b602083019150836020820283011115610ed257610ed1610e2b565b5b9250929050565b5f805f8060408587031215610ef157610ef0610c1f565b5b5f85013567ffffffffffffffff811115610f0e57610f0d610c23565b5b610f1a87828801610e2f565b9450945050602085013567ffffffffffffffff811115610f3d57610f3c610c23565b5b610f4987828801610e84565b925092505092959194509250565b5f8083601f840112610f6c57610f6b610e23565b5b8235905067ffffffffffffffff811115610f8957610f88610e27565b5b602083019150836001820283011115610fa557610fa4610e2b565b5b9250929050565b5f8060208385031215610fc257610fc1610c1f565b5b5f83013567ffffffffffffffff811115610fdf57610fde610c23565b5b610feb85828601610f57565b92509250509250929050565b61100081610d57565b82525050565b5f6020820190506110195f830184610ff7565b92915050565b5f805f6040848603121561103657611035610c1f565b5b5f61104386828701610d7e565b935050602084013567ffffffffffffffff81111561106457611063610c23565b5b61107086828701610f57565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6110b281610ca7565b81146110bc575f80fd5b50565b5f813590506110cd816110a9565b92915050565b5f602082840312156110e8576110e7610c1f565b5b5f6110f5848285016110bf565b91505092915050565b5f61110882610d38565b9050919050565b611118816110fe565b8114611122575f80fd5b50565b5f813590506111338161110f565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61117f82611139565b810181811067ffffffffffffffff8211171561119e5761119d611149565b5b80604052505050565b5f6111b0610c16565b90506111bc8282611176565b919050565b5f67ffffffffffffffff8211156111db576111da611149565b5b602082029050602081019050919050565b5f6111fe6111f9846111c1565b6111a7565b9050808382526020820190506020840283018581111561122157611220610e2b565b5b835b8181101561124a57806112368882610d7e565b845260208401935050602081019050611223565b5050509392505050565b5f82601f83011261126857611267610e23565b5b81356112788482602086016111ec565b91505092915050565b5f806040838503121561129757611296610c1f565b5b5f6112a485828601611125565b925050602083013567ffffffffffffffff8111156112c5576112c4610c23565b5b6112d185828601611254565b915050925092905056fea26469706673582212207bbcb52bcd17b2acb05e964af2f520d69a68d6012efbb2f646861e99ee8e53b264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x108 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x514E62FC GT PUSH2 0x94 JUMPI DUP1 PUSH4 0x98332BBC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x98332BBC EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x386 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x514E62FC EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2BE JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x25692962 GT PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x3ABB0604 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x252 JUMPI PUSH2 0x108 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x180 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xC7C JUMP JUMPDEST PUSH2 0x3C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xD0D JUMP JUMPDEST PUSH2 0x43B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A1 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C4 PUSH2 0x474 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x228 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0xED9 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x5EB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x267 SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x713 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x729 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B2 PUSH2 0x740 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BC PUSH2 0x779 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D2 PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1006 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x309 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x384 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37F SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x391 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH2 0x873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B9 SWAP2 SWAP1 PUSH2 0xE0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x434 JUMPI POP PUSH2 0x433 DUP3 PUSH2 0x88C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x445 CALLER DUP3 PUSH2 0x905 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x450 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x45A DUP3 DUP3 PUSH2 0x94B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x46A DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47D PUSH2 0x95B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH2 0x4E9 DUP2 PUSH2 0x965 JUMP JUMPDEST DUP3 DUP3 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x528 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP6 DUP6 SWAP1 POP DUP2 LT ISZERO PUSH2 0x5E3 JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x548 JUMPI PUSH2 0x547 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x55D SWAP2 SWAP1 PUSH2 0x10D3 JUMP JUMPDEST PUSH0 DUP1 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x572 JUMPI PUSH2 0x571 PUSH2 0x107C JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x587 SWAP2 SWAP1 PUSH2 0xDD0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x52A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5F4 PUSH2 0x98C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61D JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x638 SWAP2 SWAP1 PUSH2 0x1281 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x645 DUP3 PUSH2 0x9B5 JUMP JUMPDEST PUSH2 0x650 DUP3 PUSH1 0x2 PUSH2 0x94B JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x672 JUMPI PUSH2 0x671 PUSH2 0x107C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x652 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x70E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x71B PUSH2 0x914 JUMP JUMPDEST PUSH2 0x725 DUP3 DUP3 PUSH2 0x905 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0x735 DUP6 PUSH2 0x4C5 JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x781 PUSH2 0x914 JUMP JUMPDEST PUSH2 0x78A PUSH0 PUSH2 0xA8B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x814 PUSH2 0x914 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x83A JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x847 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x852 PUSH2 0x914 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x867 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x870 DUP2 PUSH2 0xA8B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8FE JUMPI POP PUSH2 0x8FD DUP3 PUSH2 0xB51 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x910 DUP3 DUP3 PUSH0 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x949 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x957 DUP3 DUP3 PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x989 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x9BD PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xA35 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x9F7 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xA88 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xA93 PUSH2 0xC12 JUMP JUMPDEST ISZERO PUSH2 0xAF8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xB4E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0xBDC JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5B DUP2 PUSH2 0xC27 JUMP JUMPDEST DUP2 EQ PUSH2 0xC65 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC76 DUP2 PUSH2 0xC52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC90 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC9E DUP5 DUP3 DUP6 ADD PUSH2 0xC68 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCBB DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCD4 PUSH0 DUP4 ADD DUP5 PUSH2 0xCB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCEC DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP2 EQ PUSH2 0xCF6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD07 DUP2 PUSH2 0xCE3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD22 JUMPI PUSH2 0xD21 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD2F DUP5 DUP3 DUP6 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xD61 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD71 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP2 EQ PUSH2 0xD7B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD8C DUP2 PUSH2 0xD68 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA8 JUMPI PUSH2 0xDA7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDB5 DUP6 DUP3 DUP7 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC6 DUP6 DUP3 DUP7 ADD PUSH2 0xCF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDE5 JUMPI PUSH2 0xDE4 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDF2 DUP5 DUP3 DUP6 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE04 DUP2 PUSH2 0xCDA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE1D PUSH0 DUP4 ADD DUP5 PUSH2 0xDFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE44 JUMPI PUSH2 0xE43 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE61 JUMPI PUSH2 0xE60 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE7D JUMPI PUSH2 0xE7C PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE99 JUMPI PUSH2 0xE98 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEB6 JUMPI PUSH2 0xEB5 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xED2 JUMPI PUSH2 0xED1 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xEF1 JUMPI PUSH2 0xEF0 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF1A DUP8 DUP3 DUP9 ADD PUSH2 0xE2F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF3D JUMPI PUSH2 0xF3C PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xF49 DUP8 DUP3 DUP9 ADD PUSH2 0xE84 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF6C JUMPI PUSH2 0xF6B PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF88 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFA5 JUMPI PUSH2 0xFA4 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFC2 JUMPI PUSH2 0xFC1 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFDF JUMPI PUSH2 0xFDE PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0xFEB DUP6 DUP3 DUP7 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1000 DUP2 PUSH2 0xD57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1019 PUSH0 DUP4 ADD DUP5 PUSH2 0xFF7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1036 JUMPI PUSH2 0x1035 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1043 DUP7 DUP3 DUP8 ADD PUSH2 0xD7E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1064 JUMPI PUSH2 0x1063 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x1070 DUP7 DUP3 DUP8 ADD PUSH2 0xF57 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x10B2 DUP2 PUSH2 0xCA7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10CD DUP2 PUSH2 0x10A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E7 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10F5 DUP5 DUP3 DUP6 ADD PUSH2 0x10BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1108 DUP3 PUSH2 0xD38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1118 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP2 EQ PUSH2 0x1122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1133 DUP2 PUSH2 0x110F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x117F DUP3 PUSH2 0x1139 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x119E JUMPI PUSH2 0x119D PUSH2 0x1149 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11B0 PUSH2 0xC16 JUMP JUMPDEST SWAP1 POP PUSH2 0x11BC DUP3 DUP3 PUSH2 0x1176 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DB JUMPI PUSH2 0x11DA PUSH2 0x1149 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11FE PUSH2 0x11F9 DUP5 PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0x11A7 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 0x1221 JUMPI PUSH2 0x1220 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x124A JUMPI DUP1 PUSH2 0x1236 DUP9 DUP3 PUSH2 0xD7E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1268 JUMPI PUSH2 0x1267 PUSH2 0xE23 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1278 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x11EC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1297 JUMPI PUSH2 0x1296 PUSH2 0xC1F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A4 DUP6 DUP3 DUP7 ADD PUSH2 0x1125 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12C5 JUMPI PUSH2 0x12C4 PUSH2 0xC23 JUMP JUMPDEST JUMPDEST PUSH2 0x12D1 DUP6 DUP3 DUP7 ADD PUSH2 0x1254 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0xBCB52BCD17B2ACB05E964AF2F520D69A68D6012EFBB2F646861E99EE DUP15 MSTORE8 0xB2 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"399:2116:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:208:34;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:109:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9588:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11178:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;10567:353:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2201:312:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1138:376;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9856:125:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10982:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;510:50:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1753:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1023:208:34;1119:4;1157:27;1142:42;;;:11;:42;;;;:82;;;;1188:36;1212:11;1188:23;:36::i;:::-;1142:82;1135:89;;1023:208;;;:::o;10127:109:18:-;10198:31;10211:10;10223:5;10198:12;:31::i;:::-;10127:109;:::o;9588:123::-;12517:13:17;:11;:13::i;:::-;9680:24:18::1;9692:4;9698:5;9680:11;:24::i;:::-;9588:123:::0;;:::o;11178:139::-;11257:4;11305:5;11296;11280:13;11288:4;11280:7;:13::i;:::-;:21;:30;11273:37;;11178:139;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;10567:353:18:-;10627:13;10769:15;10763:4;10756:29;10811:4;10805;10798:18;10898:4;10892;10882:21;10876:28;10867:37;;10567:353;;;:::o;2201:312:35:-;554:6;11733:18:18;11745:5;11733:11;:18::i;:::-;2343:8:35::1;;:15;;2326:6;;:13;;:32;2322:72;;2367:27;;;;;;;;;;;;;;2322:72;2410:9;2405:102;2429:6;;:13;;2425:1;:17;2405:102;;;2485:8;;2494:1;2485:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2463:8;:19:::0;2472:6:::1;;2479:1;2472:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2463:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2444:3;;;;;;;2405:102;;;;2201:312:::0;;;;;:::o;1138:376::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1227:14:35::1;1243:27:::0;1285:5:::1;;1274:39;;;;;;;:::i;:::-;1226:87;;;;1323:24;1340:6;1323:16;:24::i;:::-;1357:38;1369:6;554;1357:11;:38::i;:::-;1410:9;1405:103;1429:10;:17;1425:1;:21;1405:103;;;1493:4;1467:8;:23:::0;1476:10:::1;1487:1;1476:13;;;;;;;;:::i;:::-;;;;;;;;1467:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1448:3;;;;;;;1405:103;;;;1216:298;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1138:376:35;;:::o;9856:125:18:-;12517:13:17;:11;:13::i;:::-;9949:25:18::1;9962:4;9968:5;9949:12;:25::i;:::-;9856:125:::0;;:::o;10982:134::-;11060:4;11108:1;11099:5;11083:13;11091:4;11083:7;:13::i;:::-;:21;:26;;11076:33;;10982:134;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;510:50:35:-;554:6;510:50;:::o;1753:149::-;1857:4;1880:8;:15;1889:5;1880:15;;;;;;;;;;;;;;;;;;;;;;;;;1873:22;;1753:149;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;4304:117:18:-;4382:32;4395:4;4401:5;4408;4382:12;:32::i;:::-;4304:117;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;4053:115:18:-;4130:31;4143:4;4149:5;4156:4;4130:12;:31::i;:::-;4053:115;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;4495:554:18:-;4680:15;4674:4;4667:29;4722:8;4716:4;4709:22;4913:5;4905:4;4899;4889:21;4883:28;4879:40;4869:164;;4952:10;4946:4;4939:24;5014:4;5008;5001:18;4869:164;4495:554;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;2952:967:18:-;3118:15;3112:4;3105:29;3160:4;3154;3147:18;3210:4;3204;3194:21;3288:8;3282:15;3395:5;3386:7;3383:18;3639:2;3629:62;;3682:5;3673:7;3669:19;3660:7;3656:33;3645:44;;3629:62;3763:7;3753:8;3746:25;3895:7;3887:4;3881:11;3877:2;3873:20;3841:30;3838:1;3835;3830:73;3091:822;;;2952:967;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:126::-;2246:7;2286:42;2279:5;2275:54;2264:65;;2209:126;;;:::o;2341:96::-;2378:7;2407:24;2425:5;2407:24;:::i;:::-;2396:35;;2341:96;;;:::o;2443:122::-;2516:24;2534:5;2516:24;:::i;:::-;2509:5;2506:35;2496:63;;2555:1;2552;2545:12;2496:63;2443:122;:::o;2571:139::-;2617:5;2655:6;2642:20;2633:29;;2671:33;2698:5;2671:33;:::i;:::-;2571:139;;;;:::o;2716:474::-;2784:6;2792;2841:2;2829:9;2820:7;2816:23;2812:32;2809:119;;;2847:79;;:::i;:::-;2809:119;2967:1;2992:53;3037:7;3028:6;3017:9;3013:22;2992:53;:::i;:::-;2982:63;;2938:117;3094:2;3120:53;3165:7;3156:6;3145:9;3141:22;3120:53;:::i;:::-;3110:63;;3065:118;2716:474;;;;;:::o;3196:329::-;3255:6;3304:2;3292:9;3283:7;3279:23;3275:32;3272:119;;;3310:79;;:::i;:::-;3272:119;3430:1;3455:53;3500:7;3491:6;3480:9;3476:22;3455:53;:::i;:::-;3445:63;;3401:117;3196:329;;;;:::o;3531:118::-;3618:24;3636:5;3618:24;:::i;:::-;3613:3;3606:37;3531:118;;:::o;3655:222::-;3748:4;3786:2;3775:9;3771:18;3763:26;;3799:71;3867:1;3856:9;3852:17;3843:6;3799:71;:::i;:::-;3655:222;;;;:::o;3883:117::-;3992:1;3989;3982:12;4006:117;4115:1;4112;4105:12;4129:117;4238:1;4235;4228:12;4269:568;4342:8;4352:6;4402:3;4395:4;4387:6;4383:17;4379:27;4369:122;;4410:79;;:::i;:::-;4369:122;4523:6;4510:20;4500:30;;4553:18;4545:6;4542:30;4539:117;;;4575:79;;:::i;:::-;4539:117;4689:4;4681:6;4677:17;4665:29;;4743:3;4735:4;4727:6;4723:17;4713:8;4709:32;4706:41;4703:128;;;4750:79;;:::i;:::-;4703:128;4269:568;;;;;:::o;4857:565::-;4927:8;4937:6;4987:3;4980:4;4972:6;4968:17;4964:27;4954:122;;4995:79;;:::i;:::-;4954:122;5108:6;5095:20;5085:30;;5138:18;5130:6;5127:30;5124:117;;;5160:79;;:::i;:::-;5124:117;5274:4;5266:6;5262:17;5250:29;;5328:3;5320:4;5312:6;5308:17;5298:8;5294:32;5291:41;5288:128;;;5335:79;;:::i;:::-;5288:128;4857:565;;;;;:::o;5428:928::-;5547:6;5555;5563;5571;5620:2;5608:9;5599:7;5595:23;5591:32;5588:119;;;5626:79;;:::i;:::-;5588:119;5774:1;5763:9;5759:17;5746:31;5804:18;5796:6;5793:30;5790:117;;;5826:79;;:::i;:::-;5790:117;5939:80;6011:7;6002:6;5991:9;5987:22;5939:80;:::i;:::-;5921:98;;;;5717:312;6096:2;6085:9;6081:18;6068:32;6127:18;6119:6;6116:30;6113:117;;;6149:79;;:::i;:::-;6113:117;6262:77;6331:7;6322:6;6311:9;6307:22;6262:77;:::i;:::-;6244:95;;;;6039:310;5428:928;;;;;;;:::o;6375:552::-;6432:8;6442:6;6492:3;6485:4;6477:6;6473:17;6469:27;6459:122;;6500:79;;:::i;:::-;6459:122;6613:6;6600:20;6590:30;;6643:18;6635:6;6632:30;6629:117;;;6665:79;;:::i;:::-;6629:117;6779:4;6771:6;6767:17;6755:29;;6833:3;6825:4;6817:6;6813:17;6803:8;6799:32;6796:41;6793:128;;;6840:79;;:::i;:::-;6793:128;6375:552;;;;;:::o;6933:527::-;7003:6;7011;7060:2;7048:9;7039:7;7035:23;7031:32;7028:119;;;7066:79;;:::i;:::-;7028:119;7214:1;7203:9;7199:17;7186:31;7244:18;7236:6;7233:30;7230:117;;;7266:79;;:::i;:::-;7230:117;7379:64;7435:7;7426:6;7415:9;7411:22;7379:64;:::i;:::-;7361:82;;;;7157:296;6933:527;;;;;:::o;7466:118::-;7553:24;7571:5;7553:24;:::i;:::-;7548:3;7541:37;7466:118;;:::o;7590:222::-;7683:4;7721:2;7710:9;7706:18;7698:26;;7734:71;7802:1;7791:9;7787:17;7778:6;7734:71;:::i;:::-;7590:222;;;;:::o;7818:672::-;7897:6;7905;7913;7962:2;7950:9;7941:7;7937:23;7933:32;7930:119;;;7968:79;;:::i;:::-;7930:119;8088:1;8113:53;8158:7;8149:6;8138:9;8134:22;8113:53;:::i;:::-;8103:63;;8059:117;8243:2;8232:9;8228:18;8215:32;8274:18;8266:6;8263:30;8260:117;;;8296:79;;:::i;:::-;8260:117;8409:64;8465:7;8456:6;8445:9;8441:22;8409:64;:::i;:::-;8391:82;;;;8186:297;7818:672;;;;;:::o;8496:180::-;8544:77;8541:1;8534:88;8641:4;8638:1;8631:15;8665:4;8662:1;8655:15;8682:116;8752:21;8767:5;8752:21;:::i;:::-;8745:5;8742:32;8732:60;;8788:1;8785;8778:12;8732:60;8682:116;:::o;8804:133::-;8847:5;8885:6;8872:20;8863:29;;8901:30;8925:5;8901:30;:::i;:::-;8804:133;;;;:::o;8943:323::-;8999:6;9048:2;9036:9;9027:7;9023:23;9019:32;9016:119;;;9054:79;;:::i;:::-;9016:119;9174:1;9199:50;9241:7;9232:6;9221:9;9217:22;9199:50;:::i;:::-;9189:60;;9145:114;8943:323;;;;:::o;9272:104::-;9317:7;9346:24;9364:5;9346:24;:::i;:::-;9335:35;;9272:104;;;:::o;9382:138::-;9463:32;9489:5;9463:32;:::i;:::-;9456:5;9453:43;9443:71;;9510:1;9507;9500:12;9443:71;9382:138;:::o;9526:155::-;9580:5;9618:6;9605:20;9596:29;;9634:41;9669:5;9634:41;:::i;:::-;9526:155;;;;:::o;9687:102::-;9728:6;9779:2;9775:7;9770:2;9763:5;9759:14;9755:28;9745:38;;9687:102;;;:::o;9795:180::-;9843:77;9840:1;9833:88;9940:4;9937:1;9930:15;9964:4;9961:1;9954:15;9981:281;10064:27;10086:4;10064:27;:::i;:::-;10056:6;10052:40;10194:6;10182:10;10179:22;10158:18;10146:10;10143:34;10140:62;10137:88;;;10205:18;;:::i;:::-;10137:88;10245:10;10241:2;10234:22;10024:238;9981:281;;:::o;10268:129::-;10302:6;10329:20;;:::i;:::-;10319:30;;10358:33;10386:4;10378:6;10358:33;:::i;:::-;10268:129;;;:::o;10403:311::-;10480:4;10570:18;10562:6;10559:30;10556:56;;;10592:18;;:::i;:::-;10556:56;10642:4;10634:6;10630:17;10622:25;;10702:4;10696;10692:15;10684:23;;10403:311;;;:::o;10737:710::-;10833:5;10858:81;10874:64;10931:6;10874:64;:::i;:::-;10858:81;:::i;:::-;10849:90;;10959:5;10988:6;10981:5;10974:21;11022:4;11015:5;11011:16;11004:23;;11075:4;11067:6;11063:17;11055:6;11051:30;11104:3;11096:6;11093:15;11090:122;;;11123:79;;:::i;:::-;11090:122;11238:6;11221:220;11255:6;11250:3;11247:15;11221:220;;;11330:3;11359:37;11392:3;11380:10;11359:37;:::i;:::-;11354:3;11347:50;11426:4;11421:3;11417:14;11410:21;;11297:144;11281:4;11276:3;11272:14;11265:21;;11221:220;;;11225:21;10839:608;;10737:710;;;;;:::o;11470:370::-;11541:5;11590:3;11583:4;11575:6;11571:17;11567:27;11557:122;;11598:79;;:::i;:::-;11557:122;11715:6;11702:20;11740:94;11830:3;11822:6;11815:4;11807:6;11803:17;11740:94;:::i;:::-;11731:103;;11547:293;11470:370;;;;:::o;11846:700::-;11947:6;11955;12004:2;11992:9;11983:7;11979:23;11975:32;11972:119;;;12010:79;;:::i;:::-;11972:119;12130:1;12155:61;12208:7;12199:6;12188:9;12184:22;12155:61;:::i;:::-;12145:71;;12101:125;12293:2;12282:9;12278:18;12265:32;12324:18;12316:6;12313:30;12310:117;;;12346:79;;:::i;:::-;12310:117;12451:78;12521:7;12512:6;12501:9;12497:22;12451:78;:::i;:::-;12441:88;;12236:303;11846:700;;;;;:::o"},"methodIdentifiers":{"LIST_MANAGER_ROLE()":"98332bbc","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","setAllowed(address[],bool[])":"3abb0604","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LIST_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"allowed_\",\"type\":\"bool[]\"}],\"name\":\"setAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization data `(address owner, address[] allowList)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"setAllowed(address[],bool[])\":{\"details\":\"The length of the `users_` and `allowed_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"allowed_\":\"The allowed status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_allowed\":{\"details\":\"An internal mapping of allowed statuses\"}},\"title\":\"Simple AllowList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"LIST_MANAGER_ROLE()\":{\"notice\":\"The role for managing the allow list\"},\"constructor\":{\"notice\":\"Construct a new SimpleAllowList\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the list of allowed addresses\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized\"},\"setAllowed(address[],bool[])\":{\"notice\":\"Set the allowed status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/SimpleAllowList.sol\":\"SimpleAllowList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/allowlists/SimpleAllowList.sol\":{\"keccak256\":\"0x85f83d5522cac95d1cfe50eaa95d5f8f39fc46bec0566402025505259bd061f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6452442e92e1fdaef23b59b67ce1f7d65cdc96acf7bcac0bb16318f007e08644\",\"dweb:/ipfs/QmeE33irgs9tPnnbzGidzb2iBKo7BSKmto7kMGWTVT3t5k\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/allowlists/SimpleDenyList.sol":{"SimpleDenyList":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"denied_","type":"bool[]"}],"name":"setDenied","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13120":{"entryPoint":null,"id":13120,"parameterSlots":0,"returnSlots":0},"@_13329":{"entryPoint":null,"id":13329,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610faf806101b45f395ff3fe60806040526004361061009b575f3560e01c8063715018a611610063578063715018a61461013f5780638da5cb5b14610149578063e3f756de14610173578063f04e283e146101af578063f2fde38b146101cb578063fee81cf4146101e75761009b565b806301ffc9a71461009f578063141973b0146100db5780632569296214610103578063439fab911461010d57806354d1f13d14610135575b5f80fd5b3480156100aa575f80fd5b506100c560048036038101906100c091906109ad565b610223565b6040516100d291906109f2565b60405180910390f35b3480156100e6575f80fd5b5061010160048036038101906100fc9190610ac1565b61029c565b005b61010b6103a5565b005b348015610118575f80fd5b50610133600480360381019061012e9190610b94565b6103f6565b005b61013d610513565b005b61014761054c565b005b348015610154575f80fd5b5061015d61055f565b60405161016a9190610c1e565b60405180910390f35b34801561017e575f80fd5b5061019960048036038101906101949190610c61565b610587565b6040516101a691906109f2565b60405180910390f35b6101c960048036038101906101c49190610cbe565b6105db565b005b6101e560048036038101906101e09190610cbe565b610619565b005b3480156101f2575f80fd5b5061020d60048036038101906102089190610cbe565b610642565b60405161021a9190610d01565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029557506102948261065b565b5b9050919050565b6102a46106d4565b8181905084849050146102e3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561039e5782828281811061030357610302610d1a565b5b90506020020160208101906103189190610d71565b5f8087878581811061032d5761032c610d1a565b5b90506020020160208101906103429190610cbe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506102e5565b5050505050565b5f6103ae61070b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f6103ff610715565b905080546003825580156104315760018160011c14303b106104285763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906104439190610f1f565b915091506104508261073e565b5f5b81518110156104d65760015f8084848151811061047257610471610d1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610452565b505050801561050e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105546106d4565b61055d5f610814565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161590509392505050565b6105e36106d4565b63389a75e1600c52805f526020600c20805442111561060957636f5e88185f526004601cfd5b5f81555061061681610814565b50565b6106216106d4565b8060601b61063657637448fbae5f526004601cfd5b61063f81610814565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106cd57506106cc826108da565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610709576382b429005f526004601cfd5b565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610746610943565b156107be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561078057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610811565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b61081c610943565b15610881577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506108d7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61098c81610958565b8114610996575f80fd5b50565b5f813590506109a781610983565b92915050565b5f602082840312156109c2576109c1610950565b5b5f6109cf84828501610999565b91505092915050565b5f8115159050919050565b6109ec816109d8565b82525050565b5f602082019050610a055f8301846109e3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610a2c57610a2b610a0b565b5b8235905067ffffffffffffffff811115610a4957610a48610a0f565b5b602083019150836020820283011115610a6557610a64610a13565b5b9250929050565b5f8083601f840112610a8157610a80610a0b565b5b8235905067ffffffffffffffff811115610a9e57610a9d610a0f565b5b602083019150836020820283011115610aba57610ab9610a13565b5b9250929050565b5f805f8060408587031215610ad957610ad8610950565b5b5f85013567ffffffffffffffff811115610af657610af5610954565b5b610b0287828801610a17565b9450945050602085013567ffffffffffffffff811115610b2557610b24610954565b5b610b3187828801610a6c565b925092505092959194509250565b5f8083601f840112610b5457610b53610a0b565b5b8235905067ffffffffffffffff811115610b7157610b70610a0f565b5b602083019150836001820283011115610b8d57610b8c610a13565b5b9250929050565b5f8060208385031215610baa57610ba9610950565b5b5f83013567ffffffffffffffff811115610bc757610bc6610954565b5b610bd385828601610b3f565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c0882610bdf565b9050919050565b610c1881610bfe565b82525050565b5f602082019050610c315f830184610c0f565b92915050565b610c4081610bfe565b8114610c4a575f80fd5b50565b5f81359050610c5b81610c37565b92915050565b5f805f60408486031215610c7857610c77610950565b5b5f610c8586828701610c4d565b935050602084013567ffffffffffffffff811115610ca657610ca5610954565b5b610cb286828701610b3f565b92509250509250925092565b5f60208284031215610cd357610cd2610950565b5b5f610ce084828501610c4d565b91505092915050565b5f819050919050565b610cfb81610ce9565b82525050565b5f602082019050610d145f830184610cf2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610d50816109d8565b8114610d5a575f80fd5b50565b5f81359050610d6b81610d47565b92915050565b5f60208284031215610d8657610d85610950565b5b5f610d9384828501610d5d565b91505092915050565b5f610da682610bdf565b9050919050565b610db681610d9c565b8114610dc0575f80fd5b50565b5f81359050610dd181610dad565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610e1d82610dd7565b810181811067ffffffffffffffff82111715610e3c57610e3b610de7565b5b80604052505050565b5f610e4e610947565b9050610e5a8282610e14565b919050565b5f67ffffffffffffffff821115610e7957610e78610de7565b5b602082029050602081019050919050565b5f610e9c610e9784610e5f565b610e45565b90508083825260208201905060208402830185811115610ebf57610ebe610a13565b5b835b81811015610ee85780610ed48882610c4d565b845260208401935050602081019050610ec1565b5050509392505050565b5f82601f830112610f0657610f05610a0b565b5b8135610f16848260208601610e8a565b91505092915050565b5f8060408385031215610f3557610f34610950565b5b5f610f4285828601610dc3565b925050602083013567ffffffffffffffff811115610f6357610f62610954565b5b610f6f85828601610ef2565b915050925092905056fea2646970667358221220ddfce1aec2fb0f8d518874929c00497c2d81c727e9711b3c7324436f014ef3ef64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFAF DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x1E7 JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x141973B0 EQ PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x135 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x223 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xAC1 JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH2 0x3A5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13D PUSH2 0x513 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x147 PUSH2 0x54C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15D PUSH2 0x55F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C4 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x619 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x208 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0xD01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x295 JUMPI POP PUSH2 0x294 DUP3 PUSH2 0x65B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A4 PUSH2 0x6D4 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x2E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x39E JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x318 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x32D JUMPI PUSH2 0x32C PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2E5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3AE PUSH2 0x70B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x3FF PUSH2 0x715 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x431 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x428 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x443 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x450 DUP3 PUSH2 0x73E JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x472 JUMPI PUSH2 0x471 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x452 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x554 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0x55D PUSH0 PUSH2 0x814 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5E3 PUSH2 0x6D4 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x609 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x616 DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x621 PUSH2 0x6D4 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x636 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x63F DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6CD JUMPI POP PUSH2 0x6CC DUP3 PUSH2 0x8DA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x709 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x746 PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x7BE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x780 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x811 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x81C PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x881 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0x958 JUMP JUMPDEST DUP2 EQ PUSH2 0x996 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9A7 DUP2 PUSH2 0x983 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C2 JUMPI PUSH2 0x9C1 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x9CF DUP5 DUP3 DUP6 ADD PUSH2 0x999 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9EC DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA05 PUSH0 DUP4 ADD DUP5 PUSH2 0x9E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA2C JUMPI PUSH2 0xA2B PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA49 JUMPI PUSH2 0xA48 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xA65 JUMPI PUSH2 0xA64 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA81 JUMPI PUSH2 0xA80 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA9E JUMPI PUSH2 0xA9D PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xABA JUMPI PUSH2 0xAB9 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAF6 JUMPI PUSH2 0xAF5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB02 DUP8 DUP3 DUP9 ADD PUSH2 0xA17 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB31 DUP8 DUP3 DUP9 ADD PUSH2 0xA6C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB54 JUMPI PUSH2 0xB53 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB71 JUMPI PUSH2 0xB70 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB8D JUMPI PUSH2 0xB8C PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBAA JUMPI PUSH2 0xBA9 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBC7 JUMPI PUSH2 0xBC6 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xBD3 DUP6 DUP3 DUP7 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC08 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC18 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC31 PUSH0 DUP4 ADD DUP5 PUSH2 0xC0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC40 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP2 EQ PUSH2 0xC4A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC5B DUP2 PUSH2 0xC37 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC78 JUMPI PUSH2 0xC77 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC85 DUP7 DUP3 DUP8 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCA6 JUMPI PUSH2 0xCA5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xCB2 DUP7 DUP3 DUP8 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCE0 DUP5 DUP3 DUP6 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCFB DUP2 PUSH2 0xCE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD14 PUSH0 DUP4 ADD DUP5 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xD50 DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP2 EQ PUSH2 0xD5A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD6B DUP2 PUSH2 0xD47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD85 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD93 DUP5 DUP3 DUP6 ADD PUSH2 0xD5D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB6 DUP2 PUSH2 0xD9C JUMP JUMPDEST DUP2 EQ PUSH2 0xDC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD1 DUP2 PUSH2 0xDAD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xE1D DUP3 PUSH2 0xDD7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xE3C JUMPI PUSH2 0xE3B PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE4E PUSH2 0x947 JUMP JUMPDEST SWAP1 POP PUSH2 0xE5A DUP3 DUP3 PUSH2 0xE14 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE79 JUMPI PUSH2 0xE78 PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE9C PUSH2 0xE97 DUP5 PUSH2 0xE5F JUMP JUMPDEST PUSH2 0xE45 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 0xEBF JUMPI PUSH2 0xEBE PUSH2 0xA13 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEE8 JUMPI DUP1 PUSH2 0xED4 DUP9 DUP3 PUSH2 0xC4D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC1 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF06 JUMPI PUSH2 0xF05 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xF16 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE8A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xDC3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xF6F DUP6 DUP3 DUP7 ADD PUSH2 0xEF2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xFC 0xE1 0xAE 0xC2 0xFB 0xF DUP14 MLOAD DUP9 PUSH21 0x929C00497C2D81C727E9711B3C7324436F014EF3EF PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"347:1933:36:-:0;;;729:53;;;;;;;;;;634:28:34;651:10;634:16;;;:28;;:::i;:::-;753:22:36;:20;;;:22;;:::i;:::-;347:1933;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;347:1933:36:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":1748,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":2371,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":1813,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":1854,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":1803,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":2068,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1299,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":1499,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_13380":{"entryPoint":1014,"id":13380,"parameterSlots":2,"returnSlots":0},"@isAllowed_13397":{"entryPoint":1415,"id":13397,"parameterSlots":3,"returnSlots":1},"@owner_6404":{"entryPoint":1375,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":1602,"id":6414,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1356,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":933,"id":6376,"parameterSlots":0,"returnSlots":0},"@setDenied_13444":{"entryPoint":668,"id":13444,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13153":{"entryPoint":547,"id":13153,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":1627,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":2266,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":1561,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3722,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3149,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":3523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":2583,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":2668,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":3421,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":2879,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":3262,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr":{"entryPoint":3871,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":3169,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":2753,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":3441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":2477,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":2964,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3087,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2531,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3314,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3102,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2546,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3329,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3653,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":2375,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3679,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":3070,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":3484,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2520,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":2392,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3039,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3305,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":3604,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":3354,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3559,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":2575,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":2571,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":2579,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":2388,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2384,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3543,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3127,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":3501,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3399,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":2435,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:11461:53","nodeType":"YulBlock","src":"0:11461:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1994:478:53","nodeType":"YulBlock","src":"1994:478:53","statements":[{"body":{"nativeSrc":"2043:83:53","nodeType":"YulBlock","src":"2043:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2045:77:53","nodeType":"YulIdentifier","src":"2045:77:53"},"nativeSrc":"2045:79:53","nodeType":"YulFunctionCall","src":"2045:79:53"},"nativeSrc":"2045:79:53","nodeType":"YulExpressionStatement","src":"2045:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2022:6:53","nodeType":"YulIdentifier","src":"2022:6:53"},{"kind":"number","nativeSrc":"2030:4:53","nodeType":"YulLiteral","src":"2030:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2018:3:53","nodeType":"YulIdentifier","src":"2018:3:53"},"nativeSrc":"2018:17:53","nodeType":"YulFunctionCall","src":"2018:17:53"},{"name":"end","nativeSrc":"2037:3:53","nodeType":"YulIdentifier","src":"2037:3:53"}],"functionName":{"name":"slt","nativeSrc":"2014:3:53","nodeType":"YulIdentifier","src":"2014:3:53"},"nativeSrc":"2014:27:53","nodeType":"YulFunctionCall","src":"2014:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2007:6:53","nodeType":"YulIdentifier","src":"2007:6:53"},"nativeSrc":"2007:35:53","nodeType":"YulFunctionCall","src":"2007:35:53"},"nativeSrc":"2004:122:53","nodeType":"YulIf","src":"2004:122:53"},{"nativeSrc":"2135:30:53","nodeType":"YulAssignment","src":"2135:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2158:6:53","nodeType":"YulIdentifier","src":"2158:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2145:12:53","nodeType":"YulIdentifier","src":"2145:12:53"},"nativeSrc":"2145:20:53","nodeType":"YulFunctionCall","src":"2145:20:53"},"variableNames":[{"name":"length","nativeSrc":"2135:6:53","nodeType":"YulIdentifier","src":"2135:6:53"}]},{"body":{"nativeSrc":"2208:83:53","nodeType":"YulBlock","src":"2208:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2210:77:53","nodeType":"YulIdentifier","src":"2210:77:53"},"nativeSrc":"2210:79:53","nodeType":"YulFunctionCall","src":"2210:79:53"},"nativeSrc":"2210:79:53","nodeType":"YulExpressionStatement","src":"2210:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2180:6:53","nodeType":"YulIdentifier","src":"2180:6:53"},{"kind":"number","nativeSrc":"2188:18:53","nodeType":"YulLiteral","src":"2188:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2177:2:53","nodeType":"YulIdentifier","src":"2177:2:53"},"nativeSrc":"2177:30:53","nodeType":"YulFunctionCall","src":"2177:30:53"},"nativeSrc":"2174:117:53","nodeType":"YulIf","src":"2174:117:53"},{"nativeSrc":"2300:29:53","nodeType":"YulAssignment","src":"2300:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2316:6:53","nodeType":"YulIdentifier","src":"2316:6:53"},{"kind":"number","nativeSrc":"2324:4:53","nodeType":"YulLiteral","src":"2324:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2312:3:53","nodeType":"YulIdentifier","src":"2312:3:53"},"nativeSrc":"2312:17:53","nodeType":"YulFunctionCall","src":"2312:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2300:8:53","nodeType":"YulIdentifier","src":"2300:8:53"}]},{"body":{"nativeSrc":"2383:83:53","nodeType":"YulBlock","src":"2383:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2385:77:53","nodeType":"YulIdentifier","src":"2385:77:53"},"nativeSrc":"2385:79:53","nodeType":"YulFunctionCall","src":"2385:79:53"},"nativeSrc":"2385:79:53","nodeType":"YulExpressionStatement","src":"2385:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2348:8:53","nodeType":"YulIdentifier","src":"2348:8:53"},{"arguments":[{"name":"length","nativeSrc":"2362:6:53","nodeType":"YulIdentifier","src":"2362:6:53"},{"kind":"number","nativeSrc":"2370:4:53","nodeType":"YulLiteral","src":"2370:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"},"nativeSrc":"2358:17:53","nodeType":"YulFunctionCall","src":"2358:17:53"}],"functionName":{"name":"add","nativeSrc":"2344:3:53","nodeType":"YulIdentifier","src":"2344:3:53"},"nativeSrc":"2344:32:53","nodeType":"YulFunctionCall","src":"2344:32:53"},{"name":"end","nativeSrc":"2378:3:53","nodeType":"YulIdentifier","src":"2378:3:53"}],"functionName":{"name":"gt","nativeSrc":"2341:2:53","nodeType":"YulIdentifier","src":"2341:2:53"},"nativeSrc":"2341:41:53","nodeType":"YulFunctionCall","src":"2341:41:53"},"nativeSrc":"2338:128:53","nodeType":"YulIf","src":"2338:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"1904:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:53","nodeType":"YulTypedName","src":"1961:6:53","type":""},{"name":"end","nativeSrc":"1969:3:53","nodeType":"YulTypedName","src":"1969:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1977:8:53","nodeType":"YulTypedName","src":"1977:8:53","type":""},{"name":"length","nativeSrc":"1987:6:53","nodeType":"YulTypedName","src":"1987:6:53","type":""}],"src":"1904:568:53"},{"body":{"nativeSrc":"2579:478:53","nodeType":"YulBlock","src":"2579:478:53","statements":[{"body":{"nativeSrc":"2628:83:53","nodeType":"YulBlock","src":"2628:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2630:77:53","nodeType":"YulIdentifier","src":"2630:77:53"},"nativeSrc":"2630:79:53","nodeType":"YulFunctionCall","src":"2630:79:53"},"nativeSrc":"2630:79:53","nodeType":"YulExpressionStatement","src":"2630:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2607:6:53","nodeType":"YulIdentifier","src":"2607:6:53"},{"kind":"number","nativeSrc":"2615:4:53","nodeType":"YulLiteral","src":"2615:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2603:3:53","nodeType":"YulIdentifier","src":"2603:3:53"},"nativeSrc":"2603:17:53","nodeType":"YulFunctionCall","src":"2603:17:53"},{"name":"end","nativeSrc":"2622:3:53","nodeType":"YulIdentifier","src":"2622:3:53"}],"functionName":{"name":"slt","nativeSrc":"2599:3:53","nodeType":"YulIdentifier","src":"2599:3:53"},"nativeSrc":"2599:27:53","nodeType":"YulFunctionCall","src":"2599:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2592:6:53","nodeType":"YulIdentifier","src":"2592:6:53"},"nativeSrc":"2592:35:53","nodeType":"YulFunctionCall","src":"2592:35:53"},"nativeSrc":"2589:122:53","nodeType":"YulIf","src":"2589:122:53"},{"nativeSrc":"2720:30:53","nodeType":"YulAssignment","src":"2720:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2743:6:53","nodeType":"YulIdentifier","src":"2743:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2730:12:53","nodeType":"YulIdentifier","src":"2730:12:53"},"nativeSrc":"2730:20:53","nodeType":"YulFunctionCall","src":"2730:20:53"},"variableNames":[{"name":"length","nativeSrc":"2720:6:53","nodeType":"YulIdentifier","src":"2720:6:53"}]},{"body":{"nativeSrc":"2793:83:53","nodeType":"YulBlock","src":"2793:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2795:77:53","nodeType":"YulIdentifier","src":"2795:77:53"},"nativeSrc":"2795:79:53","nodeType":"YulFunctionCall","src":"2795:79:53"},"nativeSrc":"2795:79:53","nodeType":"YulExpressionStatement","src":"2795:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2765:6:53","nodeType":"YulIdentifier","src":"2765:6:53"},{"kind":"number","nativeSrc":"2773:18:53","nodeType":"YulLiteral","src":"2773:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2762:2:53","nodeType":"YulIdentifier","src":"2762:2:53"},"nativeSrc":"2762:30:53","nodeType":"YulFunctionCall","src":"2762:30:53"},"nativeSrc":"2759:117:53","nodeType":"YulIf","src":"2759:117:53"},{"nativeSrc":"2885:29:53","nodeType":"YulAssignment","src":"2885:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2901:6:53","nodeType":"YulIdentifier","src":"2901:6:53"},{"kind":"number","nativeSrc":"2909:4:53","nodeType":"YulLiteral","src":"2909:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2897:3:53","nodeType":"YulIdentifier","src":"2897:3:53"},"nativeSrc":"2897:17:53","nodeType":"YulFunctionCall","src":"2897:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2885:8:53","nodeType":"YulIdentifier","src":"2885:8:53"}]},{"body":{"nativeSrc":"2968:83:53","nodeType":"YulBlock","src":"2968:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2970:77:53","nodeType":"YulIdentifier","src":"2970:77:53"},"nativeSrc":"2970:79:53","nodeType":"YulFunctionCall","src":"2970:79:53"},"nativeSrc":"2970:79:53","nodeType":"YulExpressionStatement","src":"2970:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2933:8:53","nodeType":"YulIdentifier","src":"2933:8:53"},{"arguments":[{"name":"length","nativeSrc":"2947:6:53","nodeType":"YulIdentifier","src":"2947:6:53"},{"kind":"number","nativeSrc":"2955:4:53","nodeType":"YulLiteral","src":"2955:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2943:3:53","nodeType":"YulIdentifier","src":"2943:3:53"},"nativeSrc":"2943:17:53","nodeType":"YulFunctionCall","src":"2943:17:53"}],"functionName":{"name":"add","nativeSrc":"2929:3:53","nodeType":"YulIdentifier","src":"2929:3:53"},"nativeSrc":"2929:32:53","nodeType":"YulFunctionCall","src":"2929:32:53"},{"name":"end","nativeSrc":"2963:3:53","nodeType":"YulIdentifier","src":"2963:3:53"}],"functionName":{"name":"gt","nativeSrc":"2926:2:53","nodeType":"YulIdentifier","src":"2926:2:53"},"nativeSrc":"2926:41:53","nodeType":"YulFunctionCall","src":"2926:41:53"},"nativeSrc":"2923:128:53","nodeType":"YulIf","src":"2923:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"2492:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2546:6:53","nodeType":"YulTypedName","src":"2546:6:53","type":""},{"name":"end","nativeSrc":"2554:3:53","nodeType":"YulTypedName","src":"2554:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2562:8:53","nodeType":"YulTypedName","src":"2562:8:53","type":""},{"name":"length","nativeSrc":"2572:6:53","nodeType":"YulTypedName","src":"2572:6:53","type":""}],"src":"2492:565:53"},{"body":{"nativeSrc":"3213:778:53","nodeType":"YulBlock","src":"3213:778:53","statements":[{"body":{"nativeSrc":"3259:83:53","nodeType":"YulBlock","src":"3259:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3261:77:53","nodeType":"YulIdentifier","src":"3261:77:53"},"nativeSrc":"3261:79:53","nodeType":"YulFunctionCall","src":"3261:79:53"},"nativeSrc":"3261:79:53","nodeType":"YulExpressionStatement","src":"3261:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3234:7:53","nodeType":"YulIdentifier","src":"3234:7:53"},{"name":"headStart","nativeSrc":"3243:9:53","nodeType":"YulIdentifier","src":"3243:9:53"}],"functionName":{"name":"sub","nativeSrc":"3230:3:53","nodeType":"YulIdentifier","src":"3230:3:53"},"nativeSrc":"3230:23:53","nodeType":"YulFunctionCall","src":"3230:23:53"},{"kind":"number","nativeSrc":"3255:2:53","nodeType":"YulLiteral","src":"3255:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3226:3:53","nodeType":"YulIdentifier","src":"3226:3:53"},"nativeSrc":"3226:32:53","nodeType":"YulFunctionCall","src":"3226:32:53"},"nativeSrc":"3223:119:53","nodeType":"YulIf","src":"3223:119:53"},{"nativeSrc":"3352:312:53","nodeType":"YulBlock","src":"3352:312:53","statements":[{"nativeSrc":"3367:45:53","nodeType":"YulVariableDeclaration","src":"3367:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3398:9:53","nodeType":"YulIdentifier","src":"3398:9:53"},{"kind":"number","nativeSrc":"3409:1:53","nodeType":"YulLiteral","src":"3409:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3394:3:53","nodeType":"YulIdentifier","src":"3394:3:53"},"nativeSrc":"3394:17:53","nodeType":"YulFunctionCall","src":"3394:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3381:12:53","nodeType":"YulIdentifier","src":"3381:12:53"},"nativeSrc":"3381:31:53","nodeType":"YulFunctionCall","src":"3381:31:53"},"variables":[{"name":"offset","nativeSrc":"3371:6:53","nodeType":"YulTypedName","src":"3371:6:53","type":""}]},{"body":{"nativeSrc":"3459:83:53","nodeType":"YulBlock","src":"3459:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3461:77:53","nodeType":"YulIdentifier","src":"3461:77:53"},"nativeSrc":"3461:79:53","nodeType":"YulFunctionCall","src":"3461:79:53"},"nativeSrc":"3461:79:53","nodeType":"YulExpressionStatement","src":"3461:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3431:6:53","nodeType":"YulIdentifier","src":"3431:6:53"},{"kind":"number","nativeSrc":"3439:18:53","nodeType":"YulLiteral","src":"3439:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3428:2:53","nodeType":"YulIdentifier","src":"3428:2:53"},"nativeSrc":"3428:30:53","nodeType":"YulFunctionCall","src":"3428:30:53"},"nativeSrc":"3425:117:53","nodeType":"YulIf","src":"3425:117:53"},{"nativeSrc":"3556:98:53","nodeType":"YulAssignment","src":"3556:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3626:9:53","nodeType":"YulIdentifier","src":"3626:9:53"},{"name":"offset","nativeSrc":"3637:6:53","nodeType":"YulIdentifier","src":"3637:6:53"}],"functionName":{"name":"add","nativeSrc":"3622:3:53","nodeType":"YulIdentifier","src":"3622:3:53"},"nativeSrc":"3622:22:53","nodeType":"YulFunctionCall","src":"3622:22:53"},{"name":"dataEnd","nativeSrc":"3646:7:53","nodeType":"YulIdentifier","src":"3646:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3574:47:53","nodeType":"YulIdentifier","src":"3574:47:53"},"nativeSrc":"3574:80:53","nodeType":"YulFunctionCall","src":"3574:80:53"},"variableNames":[{"name":"value0","nativeSrc":"3556:6:53","nodeType":"YulIdentifier","src":"3556:6:53"},{"name":"value1","nativeSrc":"3564:6:53","nodeType":"YulIdentifier","src":"3564:6:53"}]}]},{"nativeSrc":"3674:310:53","nodeType":"YulBlock","src":"3674:310:53","statements":[{"nativeSrc":"3689:46:53","nodeType":"YulVariableDeclaration","src":"3689:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3720:9:53","nodeType":"YulIdentifier","src":"3720:9:53"},{"kind":"number","nativeSrc":"3731:2:53","nodeType":"YulLiteral","src":"3731:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3716:3:53","nodeType":"YulIdentifier","src":"3716:3:53"},"nativeSrc":"3716:18:53","nodeType":"YulFunctionCall","src":"3716:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"3703:12:53","nodeType":"YulIdentifier","src":"3703:12:53"},"nativeSrc":"3703:32:53","nodeType":"YulFunctionCall","src":"3703:32:53"},"variables":[{"name":"offset","nativeSrc":"3693:6:53","nodeType":"YulTypedName","src":"3693:6:53","type":""}]},{"body":{"nativeSrc":"3782:83:53","nodeType":"YulBlock","src":"3782:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3784:77:53","nodeType":"YulIdentifier","src":"3784:77:53"},"nativeSrc":"3784:79:53","nodeType":"YulFunctionCall","src":"3784:79:53"},"nativeSrc":"3784:79:53","nodeType":"YulExpressionStatement","src":"3784:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3754:6:53","nodeType":"YulIdentifier","src":"3754:6:53"},{"kind":"number","nativeSrc":"3762:18:53","nodeType":"YulLiteral","src":"3762:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3751:2:53","nodeType":"YulIdentifier","src":"3751:2:53"},"nativeSrc":"3751:30:53","nodeType":"YulFunctionCall","src":"3751:30:53"},"nativeSrc":"3748:117:53","nodeType":"YulIf","src":"3748:117:53"},{"nativeSrc":"3879:95:53","nodeType":"YulAssignment","src":"3879:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3946:9:53","nodeType":"YulIdentifier","src":"3946:9:53"},{"name":"offset","nativeSrc":"3957:6:53","nodeType":"YulIdentifier","src":"3957:6:53"}],"functionName":{"name":"add","nativeSrc":"3942:3:53","nodeType":"YulIdentifier","src":"3942:3:53"},"nativeSrc":"3942:22:53","nodeType":"YulFunctionCall","src":"3942:22:53"},{"name":"dataEnd","nativeSrc":"3966:7:53","nodeType":"YulIdentifier","src":"3966:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3897:44:53","nodeType":"YulIdentifier","src":"3897:44:53"},"nativeSrc":"3897:77:53","nodeType":"YulFunctionCall","src":"3897:77:53"},"variableNames":[{"name":"value2","nativeSrc":"3879:6:53","nodeType":"YulIdentifier","src":"3879:6:53"},{"name":"value3","nativeSrc":"3887:6:53","nodeType":"YulIdentifier","src":"3887:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3063:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3159:9:53","nodeType":"YulTypedName","src":"3159:9:53","type":""},{"name":"dataEnd","nativeSrc":"3170:7:53","nodeType":"YulTypedName","src":"3170:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3182:6:53","nodeType":"YulTypedName","src":"3182:6:53","type":""},{"name":"value1","nativeSrc":"3190:6:53","nodeType":"YulTypedName","src":"3190:6:53","type":""},{"name":"value2","nativeSrc":"3198:6:53","nodeType":"YulTypedName","src":"3198:6:53","type":""},{"name":"value3","nativeSrc":"3206:6:53","nodeType":"YulTypedName","src":"3206:6:53","type":""}],"src":"3063:928:53"},{"body":{"nativeSrc":"4084:478:53","nodeType":"YulBlock","src":"4084:478:53","statements":[{"body":{"nativeSrc":"4133:83:53","nodeType":"YulBlock","src":"4133:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4135:77:53","nodeType":"YulIdentifier","src":"4135:77:53"},"nativeSrc":"4135:79:53","nodeType":"YulFunctionCall","src":"4135:79:53"},"nativeSrc":"4135:79:53","nodeType":"YulExpressionStatement","src":"4135:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4112:6:53","nodeType":"YulIdentifier","src":"4112:6:53"},{"kind":"number","nativeSrc":"4120:4:53","nodeType":"YulLiteral","src":"4120:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4108:3:53","nodeType":"YulIdentifier","src":"4108:3:53"},"nativeSrc":"4108:17:53","nodeType":"YulFunctionCall","src":"4108:17:53"},{"name":"end","nativeSrc":"4127:3:53","nodeType":"YulIdentifier","src":"4127:3:53"}],"functionName":{"name":"slt","nativeSrc":"4104:3:53","nodeType":"YulIdentifier","src":"4104:3:53"},"nativeSrc":"4104:27:53","nodeType":"YulFunctionCall","src":"4104:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4097:6:53","nodeType":"YulIdentifier","src":"4097:6:53"},"nativeSrc":"4097:35:53","nodeType":"YulFunctionCall","src":"4097:35:53"},"nativeSrc":"4094:122:53","nodeType":"YulIf","src":"4094:122:53"},{"nativeSrc":"4225:30:53","nodeType":"YulAssignment","src":"4225:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4248:6:53","nodeType":"YulIdentifier","src":"4248:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4235:12:53","nodeType":"YulIdentifier","src":"4235:12:53"},"nativeSrc":"4235:20:53","nodeType":"YulFunctionCall","src":"4235:20:53"},"variableNames":[{"name":"length","nativeSrc":"4225:6:53","nodeType":"YulIdentifier","src":"4225:6:53"}]},{"body":{"nativeSrc":"4298:83:53","nodeType":"YulBlock","src":"4298:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4300:77:53","nodeType":"YulIdentifier","src":"4300:77:53"},"nativeSrc":"4300:79:53","nodeType":"YulFunctionCall","src":"4300:79:53"},"nativeSrc":"4300:79:53","nodeType":"YulExpressionStatement","src":"4300:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4270:6:53","nodeType":"YulIdentifier","src":"4270:6:53"},{"kind":"number","nativeSrc":"4278:18:53","nodeType":"YulLiteral","src":"4278:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4267:2:53","nodeType":"YulIdentifier","src":"4267:2:53"},"nativeSrc":"4267:30:53","nodeType":"YulFunctionCall","src":"4267:30:53"},"nativeSrc":"4264:117:53","nodeType":"YulIf","src":"4264:117:53"},{"nativeSrc":"4390:29:53","nodeType":"YulAssignment","src":"4390:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4406:6:53","nodeType":"YulIdentifier","src":"4406:6:53"},{"kind":"number","nativeSrc":"4414:4:53","nodeType":"YulLiteral","src":"4414:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:17:53","nodeType":"YulFunctionCall","src":"4402:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4390:8:53","nodeType":"YulIdentifier","src":"4390:8:53"}]},{"body":{"nativeSrc":"4473:83:53","nodeType":"YulBlock","src":"4473:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4475:77:53","nodeType":"YulIdentifier","src":"4475:77:53"},"nativeSrc":"4475:79:53","nodeType":"YulFunctionCall","src":"4475:79:53"},"nativeSrc":"4475:79:53","nodeType":"YulExpressionStatement","src":"4475:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4438:8:53","nodeType":"YulIdentifier","src":"4438:8:53"},{"arguments":[{"name":"length","nativeSrc":"4452:6:53","nodeType":"YulIdentifier","src":"4452:6:53"},{"kind":"number","nativeSrc":"4460:4:53","nodeType":"YulLiteral","src":"4460:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"4448:3:53","nodeType":"YulIdentifier","src":"4448:3:53"},"nativeSrc":"4448:17:53","nodeType":"YulFunctionCall","src":"4448:17:53"}],"functionName":{"name":"add","nativeSrc":"4434:3:53","nodeType":"YulIdentifier","src":"4434:3:53"},"nativeSrc":"4434:32:53","nodeType":"YulFunctionCall","src":"4434:32:53"},{"name":"end","nativeSrc":"4468:3:53","nodeType":"YulIdentifier","src":"4468:3:53"}],"functionName":{"name":"gt","nativeSrc":"4431:2:53","nodeType":"YulIdentifier","src":"4431:2:53"},"nativeSrc":"4431:41:53","nodeType":"YulFunctionCall","src":"4431:41:53"},"nativeSrc":"4428:128:53","nodeType":"YulIf","src":"4428:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4010:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4051:6:53","nodeType":"YulTypedName","src":"4051:6:53","type":""},{"name":"end","nativeSrc":"4059:3:53","nodeType":"YulTypedName","src":"4059:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4067:8:53","nodeType":"YulTypedName","src":"4067:8:53","type":""},{"name":"length","nativeSrc":"4077:6:53","nodeType":"YulTypedName","src":"4077:6:53","type":""}],"src":"4010:552:53"},{"body":{"nativeSrc":"4653:442:53","nodeType":"YulBlock","src":"4653:442:53","statements":[{"body":{"nativeSrc":"4699:83:53","nodeType":"YulBlock","src":"4699:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4701:77:53","nodeType":"YulIdentifier","src":"4701:77:53"},"nativeSrc":"4701:79:53","nodeType":"YulFunctionCall","src":"4701:79:53"},"nativeSrc":"4701:79:53","nodeType":"YulExpressionStatement","src":"4701:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4674:7:53","nodeType":"YulIdentifier","src":"4674:7:53"},{"name":"headStart","nativeSrc":"4683:9:53","nodeType":"YulIdentifier","src":"4683:9:53"}],"functionName":{"name":"sub","nativeSrc":"4670:3:53","nodeType":"YulIdentifier","src":"4670:3:53"},"nativeSrc":"4670:23:53","nodeType":"YulFunctionCall","src":"4670:23:53"},{"kind":"number","nativeSrc":"4695:2:53","nodeType":"YulLiteral","src":"4695:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4666:3:53","nodeType":"YulIdentifier","src":"4666:3:53"},"nativeSrc":"4666:32:53","nodeType":"YulFunctionCall","src":"4666:32:53"},"nativeSrc":"4663:119:53","nodeType":"YulIf","src":"4663:119:53"},{"nativeSrc":"4792:296:53","nodeType":"YulBlock","src":"4792:296:53","statements":[{"nativeSrc":"4807:45:53","nodeType":"YulVariableDeclaration","src":"4807:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4838:9:53","nodeType":"YulIdentifier","src":"4838:9:53"},{"kind":"number","nativeSrc":"4849:1:53","nodeType":"YulLiteral","src":"4849:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4834:3:53","nodeType":"YulIdentifier","src":"4834:3:53"},"nativeSrc":"4834:17:53","nodeType":"YulFunctionCall","src":"4834:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4821:12:53","nodeType":"YulIdentifier","src":"4821:12:53"},"nativeSrc":"4821:31:53","nodeType":"YulFunctionCall","src":"4821:31:53"},"variables":[{"name":"offset","nativeSrc":"4811:6:53","nodeType":"YulTypedName","src":"4811:6:53","type":""}]},{"body":{"nativeSrc":"4899:83:53","nodeType":"YulBlock","src":"4899:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4901:77:53","nodeType":"YulIdentifier","src":"4901:77:53"},"nativeSrc":"4901:79:53","nodeType":"YulFunctionCall","src":"4901:79:53"},"nativeSrc":"4901:79:53","nodeType":"YulExpressionStatement","src":"4901:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4871:6:53","nodeType":"YulIdentifier","src":"4871:6:53"},{"kind":"number","nativeSrc":"4879:18:53","nodeType":"YulLiteral","src":"4879:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4868:2:53","nodeType":"YulIdentifier","src":"4868:2:53"},"nativeSrc":"4868:30:53","nodeType":"YulFunctionCall","src":"4868:30:53"},"nativeSrc":"4865:117:53","nodeType":"YulIf","src":"4865:117:53"},{"nativeSrc":"4996:82:53","nodeType":"YulAssignment","src":"4996:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5050:9:53","nodeType":"YulIdentifier","src":"5050:9:53"},{"name":"offset","nativeSrc":"5061:6:53","nodeType":"YulIdentifier","src":"5061:6:53"}],"functionName":{"name":"add","nativeSrc":"5046:3:53","nodeType":"YulIdentifier","src":"5046:3:53"},"nativeSrc":"5046:22:53","nodeType":"YulFunctionCall","src":"5046:22:53"},{"name":"dataEnd","nativeSrc":"5070:7:53","nodeType":"YulIdentifier","src":"5070:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5014:31:53","nodeType":"YulIdentifier","src":"5014:31:53"},"nativeSrc":"5014:64:53","nodeType":"YulFunctionCall","src":"5014:64:53"},"variableNames":[{"name":"value0","nativeSrc":"4996:6:53","nodeType":"YulIdentifier","src":"4996:6:53"},{"name":"value1","nativeSrc":"5004:6:53","nodeType":"YulIdentifier","src":"5004:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"4568:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4615:9:53","nodeType":"YulTypedName","src":"4615:9:53","type":""},{"name":"dataEnd","nativeSrc":"4626:7:53","nodeType":"YulTypedName","src":"4626:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4638:6:53","nodeType":"YulTypedName","src":"4638:6:53","type":""},{"name":"value1","nativeSrc":"4646:6:53","nodeType":"YulTypedName","src":"4646:6:53","type":""}],"src":"4568:527:53"},{"body":{"nativeSrc":"5146:81:53","nodeType":"YulBlock","src":"5146:81:53","statements":[{"nativeSrc":"5156:65:53","nodeType":"YulAssignment","src":"5156:65:53","value":{"arguments":[{"name":"value","nativeSrc":"5171:5:53","nodeType":"YulIdentifier","src":"5171:5:53"},{"kind":"number","nativeSrc":"5178:42:53","nodeType":"YulLiteral","src":"5178:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5167:3:53","nodeType":"YulIdentifier","src":"5167:3:53"},"nativeSrc":"5167:54:53","nodeType":"YulFunctionCall","src":"5167:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5156:7:53","nodeType":"YulIdentifier","src":"5156:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5101:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5128:5:53","nodeType":"YulTypedName","src":"5128:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5138:7:53","nodeType":"YulTypedName","src":"5138:7:53","type":""}],"src":"5101:126:53"},{"body":{"nativeSrc":"5278:51:53","nodeType":"YulBlock","src":"5278:51:53","statements":[{"nativeSrc":"5288:35:53","nodeType":"YulAssignment","src":"5288:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5317:5:53","nodeType":"YulIdentifier","src":"5317:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5299:17:53","nodeType":"YulIdentifier","src":"5299:17:53"},"nativeSrc":"5299:24:53","nodeType":"YulFunctionCall","src":"5299:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5288:7:53","nodeType":"YulIdentifier","src":"5288:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5233:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5260:5:53","nodeType":"YulTypedName","src":"5260:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5270:7:53","nodeType":"YulTypedName","src":"5270:7:53","type":""}],"src":"5233:96:53"},{"body":{"nativeSrc":"5400:53:53","nodeType":"YulBlock","src":"5400:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5417:3:53","nodeType":"YulIdentifier","src":"5417:3:53"},{"arguments":[{"name":"value","nativeSrc":"5440:5:53","nodeType":"YulIdentifier","src":"5440:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5422:17:53","nodeType":"YulIdentifier","src":"5422:17:53"},"nativeSrc":"5422:24:53","nodeType":"YulFunctionCall","src":"5422:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5410:6:53","nodeType":"YulIdentifier","src":"5410:6:53"},"nativeSrc":"5410:37:53","nodeType":"YulFunctionCall","src":"5410:37:53"},"nativeSrc":"5410:37:53","nodeType":"YulExpressionStatement","src":"5410:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5335:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5388:5:53","nodeType":"YulTypedName","src":"5388:5:53","type":""},{"name":"pos","nativeSrc":"5395:3:53","nodeType":"YulTypedName","src":"5395:3:53","type":""}],"src":"5335:118:53"},{"body":{"nativeSrc":"5557:124:53","nodeType":"YulBlock","src":"5557:124:53","statements":[{"nativeSrc":"5567:26:53","nodeType":"YulAssignment","src":"5567:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5579:9:53","nodeType":"YulIdentifier","src":"5579:9:53"},{"kind":"number","nativeSrc":"5590:2:53","nodeType":"YulLiteral","src":"5590:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5575:3:53","nodeType":"YulIdentifier","src":"5575:3:53"},"nativeSrc":"5575:18:53","nodeType":"YulFunctionCall","src":"5575:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5567:4:53","nodeType":"YulIdentifier","src":"5567:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5647:6:53","nodeType":"YulIdentifier","src":"5647:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5660:9:53","nodeType":"YulIdentifier","src":"5660:9:53"},{"kind":"number","nativeSrc":"5671:1:53","nodeType":"YulLiteral","src":"5671:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5656:3:53","nodeType":"YulIdentifier","src":"5656:3:53"},"nativeSrc":"5656:17:53","nodeType":"YulFunctionCall","src":"5656:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5603:43:53","nodeType":"YulIdentifier","src":"5603:43:53"},"nativeSrc":"5603:71:53","nodeType":"YulFunctionCall","src":"5603:71:53"},"nativeSrc":"5603:71:53","nodeType":"YulExpressionStatement","src":"5603:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5459:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5529:9:53","nodeType":"YulTypedName","src":"5529:9:53","type":""},{"name":"value0","nativeSrc":"5541:6:53","nodeType":"YulTypedName","src":"5541:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5552:4:53","nodeType":"YulTypedName","src":"5552:4:53","type":""}],"src":"5459:222:53"},{"body":{"nativeSrc":"5730:79:53","nodeType":"YulBlock","src":"5730:79:53","statements":[{"body":{"nativeSrc":"5787:16:53","nodeType":"YulBlock","src":"5787:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5796:1:53","nodeType":"YulLiteral","src":"5796:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5799:1:53","nodeType":"YulLiteral","src":"5799:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5789:6:53","nodeType":"YulIdentifier","src":"5789:6:53"},"nativeSrc":"5789:12:53","nodeType":"YulFunctionCall","src":"5789:12:53"},"nativeSrc":"5789:12:53","nodeType":"YulExpressionStatement","src":"5789:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5753:5:53","nodeType":"YulIdentifier","src":"5753:5:53"},{"arguments":[{"name":"value","nativeSrc":"5778:5:53","nodeType":"YulIdentifier","src":"5778:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5760:17:53","nodeType":"YulIdentifier","src":"5760:17:53"},"nativeSrc":"5760:24:53","nodeType":"YulFunctionCall","src":"5760:24:53"}],"functionName":{"name":"eq","nativeSrc":"5750:2:53","nodeType":"YulIdentifier","src":"5750:2:53"},"nativeSrc":"5750:35:53","nodeType":"YulFunctionCall","src":"5750:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5743:6:53","nodeType":"YulIdentifier","src":"5743:6:53"},"nativeSrc":"5743:43:53","nodeType":"YulFunctionCall","src":"5743:43:53"},"nativeSrc":"5740:63:53","nodeType":"YulIf","src":"5740:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5687:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5723:5:53","nodeType":"YulTypedName","src":"5723:5:53","type":""}],"src":"5687:122:53"},{"body":{"nativeSrc":"5867:87:53","nodeType":"YulBlock","src":"5867:87:53","statements":[{"nativeSrc":"5877:29:53","nodeType":"YulAssignment","src":"5877:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5899:6:53","nodeType":"YulIdentifier","src":"5899:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5886:12:53","nodeType":"YulIdentifier","src":"5886:12:53"},"nativeSrc":"5886:20:53","nodeType":"YulFunctionCall","src":"5886:20:53"},"variableNames":[{"name":"value","nativeSrc":"5877:5:53","nodeType":"YulIdentifier","src":"5877:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5942:5:53","nodeType":"YulIdentifier","src":"5942:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5915:26:53","nodeType":"YulIdentifier","src":"5915:26:53"},"nativeSrc":"5915:33:53","nodeType":"YulFunctionCall","src":"5915:33:53"},"nativeSrc":"5915:33:53","nodeType":"YulExpressionStatement","src":"5915:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5815:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5845:6:53","nodeType":"YulTypedName","src":"5845:6:53","type":""},{"name":"end","nativeSrc":"5853:3:53","nodeType":"YulTypedName","src":"5853:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5861:5:53","nodeType":"YulTypedName","src":"5861:5:53","type":""}],"src":"5815:139:53"},{"body":{"nativeSrc":"6062:570:53","nodeType":"YulBlock","src":"6062:570:53","statements":[{"body":{"nativeSrc":"6108:83:53","nodeType":"YulBlock","src":"6108:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6110:77:53","nodeType":"YulIdentifier","src":"6110:77:53"},"nativeSrc":"6110:79:53","nodeType":"YulFunctionCall","src":"6110:79:53"},"nativeSrc":"6110:79:53","nodeType":"YulExpressionStatement","src":"6110:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6083:7:53","nodeType":"YulIdentifier","src":"6083:7:53"},{"name":"headStart","nativeSrc":"6092:9:53","nodeType":"YulIdentifier","src":"6092:9:53"}],"functionName":{"name":"sub","nativeSrc":"6079:3:53","nodeType":"YulIdentifier","src":"6079:3:53"},"nativeSrc":"6079:23:53","nodeType":"YulFunctionCall","src":"6079:23:53"},{"kind":"number","nativeSrc":"6104:2:53","nodeType":"YulLiteral","src":"6104:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6075:3:53","nodeType":"YulIdentifier","src":"6075:3:53"},"nativeSrc":"6075:32:53","nodeType":"YulFunctionCall","src":"6075:32:53"},"nativeSrc":"6072:119:53","nodeType":"YulIf","src":"6072:119:53"},{"nativeSrc":"6201:117:53","nodeType":"YulBlock","src":"6201:117:53","statements":[{"nativeSrc":"6216:15:53","nodeType":"YulVariableDeclaration","src":"6216:15:53","value":{"kind":"number","nativeSrc":"6230:1:53","nodeType":"YulLiteral","src":"6230:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6220:6:53","nodeType":"YulTypedName","src":"6220:6:53","type":""}]},{"nativeSrc":"6245:63:53","nodeType":"YulAssignment","src":"6245:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6280:9:53","nodeType":"YulIdentifier","src":"6280:9:53"},{"name":"offset","nativeSrc":"6291:6:53","nodeType":"YulIdentifier","src":"6291:6:53"}],"functionName":{"name":"add","nativeSrc":"6276:3:53","nodeType":"YulIdentifier","src":"6276:3:53"},"nativeSrc":"6276:22:53","nodeType":"YulFunctionCall","src":"6276:22:53"},{"name":"dataEnd","nativeSrc":"6300:7:53","nodeType":"YulIdentifier","src":"6300:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6255:20:53","nodeType":"YulIdentifier","src":"6255:20:53"},"nativeSrc":"6255:53:53","nodeType":"YulFunctionCall","src":"6255:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6245:6:53","nodeType":"YulIdentifier","src":"6245:6:53"}]}]},{"nativeSrc":"6328:297:53","nodeType":"YulBlock","src":"6328:297:53","statements":[{"nativeSrc":"6343:46:53","nodeType":"YulVariableDeclaration","src":"6343:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6374:9:53","nodeType":"YulIdentifier","src":"6374:9:53"},{"kind":"number","nativeSrc":"6385:2:53","nodeType":"YulLiteral","src":"6385:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6370:3:53","nodeType":"YulIdentifier","src":"6370:3:53"},"nativeSrc":"6370:18:53","nodeType":"YulFunctionCall","src":"6370:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6357:12:53","nodeType":"YulIdentifier","src":"6357:12:53"},"nativeSrc":"6357:32:53","nodeType":"YulFunctionCall","src":"6357:32:53"},"variables":[{"name":"offset","nativeSrc":"6347:6:53","nodeType":"YulTypedName","src":"6347:6:53","type":""}]},{"body":{"nativeSrc":"6436:83:53","nodeType":"YulBlock","src":"6436:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6438:77:53","nodeType":"YulIdentifier","src":"6438:77:53"},"nativeSrc":"6438:79:53","nodeType":"YulFunctionCall","src":"6438:79:53"},"nativeSrc":"6438:79:53","nodeType":"YulExpressionStatement","src":"6438:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6408:6:53","nodeType":"YulIdentifier","src":"6408:6:53"},{"kind":"number","nativeSrc":"6416:18:53","nodeType":"YulLiteral","src":"6416:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6405:2:53","nodeType":"YulIdentifier","src":"6405:2:53"},"nativeSrc":"6405:30:53","nodeType":"YulFunctionCall","src":"6405:30:53"},"nativeSrc":"6402:117:53","nodeType":"YulIf","src":"6402:117:53"},{"nativeSrc":"6533:82:53","nodeType":"YulAssignment","src":"6533:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6587:9:53","nodeType":"YulIdentifier","src":"6587:9:53"},{"name":"offset","nativeSrc":"6598:6:53","nodeType":"YulIdentifier","src":"6598:6:53"}],"functionName":{"name":"add","nativeSrc":"6583:3:53","nodeType":"YulIdentifier","src":"6583:3:53"},"nativeSrc":"6583:22:53","nodeType":"YulFunctionCall","src":"6583:22:53"},{"name":"dataEnd","nativeSrc":"6607:7:53","nodeType":"YulIdentifier","src":"6607:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6551:31:53","nodeType":"YulIdentifier","src":"6551:31:53"},"nativeSrc":"6551:64:53","nodeType":"YulFunctionCall","src":"6551:64:53"},"variableNames":[{"name":"value1","nativeSrc":"6533:6:53","nodeType":"YulIdentifier","src":"6533:6:53"},{"name":"value2","nativeSrc":"6541:6:53","nodeType":"YulIdentifier","src":"6541:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"5960:672:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6016:9:53","nodeType":"YulTypedName","src":"6016:9:53","type":""},{"name":"dataEnd","nativeSrc":"6027:7:53","nodeType":"YulTypedName","src":"6027:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6039:6:53","nodeType":"YulTypedName","src":"6039:6:53","type":""},{"name":"value1","nativeSrc":"6047:6:53","nodeType":"YulTypedName","src":"6047:6:53","type":""},{"name":"value2","nativeSrc":"6055:6:53","nodeType":"YulTypedName","src":"6055:6:53","type":""}],"src":"5960:672:53"},{"body":{"nativeSrc":"6704:263:53","nodeType":"YulBlock","src":"6704:263:53","statements":[{"body":{"nativeSrc":"6750:83:53","nodeType":"YulBlock","src":"6750:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6752:77:53","nodeType":"YulIdentifier","src":"6752:77:53"},"nativeSrc":"6752:79:53","nodeType":"YulFunctionCall","src":"6752:79:53"},"nativeSrc":"6752:79:53","nodeType":"YulExpressionStatement","src":"6752:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6725:7:53","nodeType":"YulIdentifier","src":"6725:7:53"},{"name":"headStart","nativeSrc":"6734:9:53","nodeType":"YulIdentifier","src":"6734:9:53"}],"functionName":{"name":"sub","nativeSrc":"6721:3:53","nodeType":"YulIdentifier","src":"6721:3:53"},"nativeSrc":"6721:23:53","nodeType":"YulFunctionCall","src":"6721:23:53"},{"kind":"number","nativeSrc":"6746:2:53","nodeType":"YulLiteral","src":"6746:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6717:3:53","nodeType":"YulIdentifier","src":"6717:3:53"},"nativeSrc":"6717:32:53","nodeType":"YulFunctionCall","src":"6717:32:53"},"nativeSrc":"6714:119:53","nodeType":"YulIf","src":"6714:119:53"},{"nativeSrc":"6843:117:53","nodeType":"YulBlock","src":"6843:117:53","statements":[{"nativeSrc":"6858:15:53","nodeType":"YulVariableDeclaration","src":"6858:15:53","value":{"kind":"number","nativeSrc":"6872:1:53","nodeType":"YulLiteral","src":"6872:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6862:6:53","nodeType":"YulTypedName","src":"6862:6:53","type":""}]},{"nativeSrc":"6887:63:53","nodeType":"YulAssignment","src":"6887:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6922:9:53","nodeType":"YulIdentifier","src":"6922:9:53"},{"name":"offset","nativeSrc":"6933:6:53","nodeType":"YulIdentifier","src":"6933:6:53"}],"functionName":{"name":"add","nativeSrc":"6918:3:53","nodeType":"YulIdentifier","src":"6918:3:53"},"nativeSrc":"6918:22:53","nodeType":"YulFunctionCall","src":"6918:22:53"},{"name":"dataEnd","nativeSrc":"6942:7:53","nodeType":"YulIdentifier","src":"6942:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6897:20:53","nodeType":"YulIdentifier","src":"6897:20:53"},"nativeSrc":"6897:53:53","nodeType":"YulFunctionCall","src":"6897:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6887:6:53","nodeType":"YulIdentifier","src":"6887:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6638:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6674:9:53","nodeType":"YulTypedName","src":"6674:9:53","type":""},{"name":"dataEnd","nativeSrc":"6685:7:53","nodeType":"YulTypedName","src":"6685:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6697:6:53","nodeType":"YulTypedName","src":"6697:6:53","type":""}],"src":"6638:329:53"},{"body":{"nativeSrc":"7018:32:53","nodeType":"YulBlock","src":"7018:32:53","statements":[{"nativeSrc":"7028:16:53","nodeType":"YulAssignment","src":"7028:16:53","value":{"name":"value","nativeSrc":"7039:5:53","nodeType":"YulIdentifier","src":"7039:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"7028:7:53","nodeType":"YulIdentifier","src":"7028:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"6973:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7000:5:53","nodeType":"YulTypedName","src":"7000:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7010:7:53","nodeType":"YulTypedName","src":"7010:7:53","type":""}],"src":"6973:77:53"},{"body":{"nativeSrc":"7121:53:53","nodeType":"YulBlock","src":"7121:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7138:3:53","nodeType":"YulIdentifier","src":"7138:3:53"},{"arguments":[{"name":"value","nativeSrc":"7161:5:53","nodeType":"YulIdentifier","src":"7161:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7143:17:53","nodeType":"YulIdentifier","src":"7143:17:53"},"nativeSrc":"7143:24:53","nodeType":"YulFunctionCall","src":"7143:24:53"}],"functionName":{"name":"mstore","nativeSrc":"7131:6:53","nodeType":"YulIdentifier","src":"7131:6:53"},"nativeSrc":"7131:37:53","nodeType":"YulFunctionCall","src":"7131:37:53"},"nativeSrc":"7131:37:53","nodeType":"YulExpressionStatement","src":"7131:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7056:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7109:5:53","nodeType":"YulTypedName","src":"7109:5:53","type":""},{"name":"pos","nativeSrc":"7116:3:53","nodeType":"YulTypedName","src":"7116:3:53","type":""}],"src":"7056:118:53"},{"body":{"nativeSrc":"7278:124:53","nodeType":"YulBlock","src":"7278:124:53","statements":[{"nativeSrc":"7288:26:53","nodeType":"YulAssignment","src":"7288:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7300:9:53","nodeType":"YulIdentifier","src":"7300:9:53"},{"kind":"number","nativeSrc":"7311:2:53","nodeType":"YulLiteral","src":"7311:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7296:3:53","nodeType":"YulIdentifier","src":"7296:3:53"},"nativeSrc":"7296:18:53","nodeType":"YulFunctionCall","src":"7296:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7288:4:53","nodeType":"YulIdentifier","src":"7288:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7368:6:53","nodeType":"YulIdentifier","src":"7368:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7381:9:53","nodeType":"YulIdentifier","src":"7381:9:53"},{"kind":"number","nativeSrc":"7392:1:53","nodeType":"YulLiteral","src":"7392:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7377:3:53","nodeType":"YulIdentifier","src":"7377:3:53"},"nativeSrc":"7377:17:53","nodeType":"YulFunctionCall","src":"7377:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7324:43:53","nodeType":"YulIdentifier","src":"7324:43:53"},"nativeSrc":"7324:71:53","nodeType":"YulFunctionCall","src":"7324:71:53"},"nativeSrc":"7324:71:53","nodeType":"YulExpressionStatement","src":"7324:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7180:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7250:9:53","nodeType":"YulTypedName","src":"7250:9:53","type":""},{"name":"value0","nativeSrc":"7262:6:53","nodeType":"YulTypedName","src":"7262:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7273:4:53","nodeType":"YulTypedName","src":"7273:4:53","type":""}],"src":"7180:222:53"},{"body":{"nativeSrc":"7436:152:53","nodeType":"YulBlock","src":"7436:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7453:1:53","nodeType":"YulLiteral","src":"7453:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7456:77:53","nodeType":"YulLiteral","src":"7456:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7446:6:53","nodeType":"YulIdentifier","src":"7446:6:53"},"nativeSrc":"7446:88:53","nodeType":"YulFunctionCall","src":"7446:88:53"},"nativeSrc":"7446:88:53","nodeType":"YulExpressionStatement","src":"7446:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7550:1:53","nodeType":"YulLiteral","src":"7550:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7553:4:53","nodeType":"YulLiteral","src":"7553:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7543:6:53","nodeType":"YulIdentifier","src":"7543:6:53"},"nativeSrc":"7543:15:53","nodeType":"YulFunctionCall","src":"7543:15:53"},"nativeSrc":"7543:15:53","nodeType":"YulExpressionStatement","src":"7543:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7574:1:53","nodeType":"YulLiteral","src":"7574:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7577:4:53","nodeType":"YulLiteral","src":"7577:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7567:6:53","nodeType":"YulIdentifier","src":"7567:6:53"},"nativeSrc":"7567:15:53","nodeType":"YulFunctionCall","src":"7567:15:53"},"nativeSrc":"7567:15:53","nodeType":"YulExpressionStatement","src":"7567:15:53"}]},"name":"panic_error_0x32","nativeSrc":"7408:180:53","nodeType":"YulFunctionDefinition","src":"7408:180:53"},{"body":{"nativeSrc":"7634:76:53","nodeType":"YulBlock","src":"7634:76:53","statements":[{"body":{"nativeSrc":"7688:16:53","nodeType":"YulBlock","src":"7688:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7697:1:53","nodeType":"YulLiteral","src":"7697:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7700:1:53","nodeType":"YulLiteral","src":"7700:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7690:6:53","nodeType":"YulIdentifier","src":"7690:6:53"},"nativeSrc":"7690:12:53","nodeType":"YulFunctionCall","src":"7690:12:53"},"nativeSrc":"7690:12:53","nodeType":"YulExpressionStatement","src":"7690:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7657:5:53","nodeType":"YulIdentifier","src":"7657:5:53"},{"arguments":[{"name":"value","nativeSrc":"7679:5:53","nodeType":"YulIdentifier","src":"7679:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"7664:14:53","nodeType":"YulIdentifier","src":"7664:14:53"},"nativeSrc":"7664:21:53","nodeType":"YulFunctionCall","src":"7664:21:53"}],"functionName":{"name":"eq","nativeSrc":"7654:2:53","nodeType":"YulIdentifier","src":"7654:2:53"},"nativeSrc":"7654:32:53","nodeType":"YulFunctionCall","src":"7654:32:53"}],"functionName":{"name":"iszero","nativeSrc":"7647:6:53","nodeType":"YulIdentifier","src":"7647:6:53"},"nativeSrc":"7647:40:53","nodeType":"YulFunctionCall","src":"7647:40:53"},"nativeSrc":"7644:60:53","nodeType":"YulIf","src":"7644:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"7594:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7627:5:53","nodeType":"YulTypedName","src":"7627:5:53","type":""}],"src":"7594:116:53"},{"body":{"nativeSrc":"7765:84:53","nodeType":"YulBlock","src":"7765:84:53","statements":[{"nativeSrc":"7775:29:53","nodeType":"YulAssignment","src":"7775:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7797:6:53","nodeType":"YulIdentifier","src":"7797:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7784:12:53","nodeType":"YulIdentifier","src":"7784:12:53"},"nativeSrc":"7784:20:53","nodeType":"YulFunctionCall","src":"7784:20:53"},"variableNames":[{"name":"value","nativeSrc":"7775:5:53","nodeType":"YulIdentifier","src":"7775:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7837:5:53","nodeType":"YulIdentifier","src":"7837:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"7813:23:53","nodeType":"YulIdentifier","src":"7813:23:53"},"nativeSrc":"7813:30:53","nodeType":"YulFunctionCall","src":"7813:30:53"},"nativeSrc":"7813:30:53","nodeType":"YulExpressionStatement","src":"7813:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"7716:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7743:6:53","nodeType":"YulTypedName","src":"7743:6:53","type":""},{"name":"end","nativeSrc":"7751:3:53","nodeType":"YulTypedName","src":"7751:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7759:5:53","nodeType":"YulTypedName","src":"7759:5:53","type":""}],"src":"7716:133:53"},{"body":{"nativeSrc":"7918:260:53","nodeType":"YulBlock","src":"7918:260:53","statements":[{"body":{"nativeSrc":"7964:83:53","nodeType":"YulBlock","src":"7964:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7966:77:53","nodeType":"YulIdentifier","src":"7966:77:53"},"nativeSrc":"7966:79:53","nodeType":"YulFunctionCall","src":"7966:79:53"},"nativeSrc":"7966:79:53","nodeType":"YulExpressionStatement","src":"7966:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7939:7:53","nodeType":"YulIdentifier","src":"7939:7:53"},{"name":"headStart","nativeSrc":"7948:9:53","nodeType":"YulIdentifier","src":"7948:9:53"}],"functionName":{"name":"sub","nativeSrc":"7935:3:53","nodeType":"YulIdentifier","src":"7935:3:53"},"nativeSrc":"7935:23:53","nodeType":"YulFunctionCall","src":"7935:23:53"},{"kind":"number","nativeSrc":"7960:2:53","nodeType":"YulLiteral","src":"7960:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7931:3:53","nodeType":"YulIdentifier","src":"7931:3:53"},"nativeSrc":"7931:32:53","nodeType":"YulFunctionCall","src":"7931:32:53"},"nativeSrc":"7928:119:53","nodeType":"YulIf","src":"7928:119:53"},{"nativeSrc":"8057:114:53","nodeType":"YulBlock","src":"8057:114:53","statements":[{"nativeSrc":"8072:15:53","nodeType":"YulVariableDeclaration","src":"8072:15:53","value":{"kind":"number","nativeSrc":"8086:1:53","nodeType":"YulLiteral","src":"8086:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8076:6:53","nodeType":"YulTypedName","src":"8076:6:53","type":""}]},{"nativeSrc":"8101:60:53","nodeType":"YulAssignment","src":"8101:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8133:9:53","nodeType":"YulIdentifier","src":"8133:9:53"},{"name":"offset","nativeSrc":"8144:6:53","nodeType":"YulIdentifier","src":"8144:6:53"}],"functionName":{"name":"add","nativeSrc":"8129:3:53","nodeType":"YulIdentifier","src":"8129:3:53"},"nativeSrc":"8129:22:53","nodeType":"YulFunctionCall","src":"8129:22:53"},{"name":"dataEnd","nativeSrc":"8153:7:53","nodeType":"YulIdentifier","src":"8153:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"8111:17:53","nodeType":"YulIdentifier","src":"8111:17:53"},"nativeSrc":"8111:50:53","nodeType":"YulFunctionCall","src":"8111:50:53"},"variableNames":[{"name":"value0","nativeSrc":"8101:6:53","nodeType":"YulIdentifier","src":"8101:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"7855:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7888:9:53","nodeType":"YulTypedName","src":"7888:9:53","type":""},{"name":"dataEnd","nativeSrc":"7899:7:53","nodeType":"YulTypedName","src":"7899:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7911:6:53","nodeType":"YulTypedName","src":"7911:6:53","type":""}],"src":"7855:323:53"},{"body":{"nativeSrc":"8237:51:53","nodeType":"YulBlock","src":"8237:51:53","statements":[{"nativeSrc":"8247:35:53","nodeType":"YulAssignment","src":"8247:35:53","value":{"arguments":[{"name":"value","nativeSrc":"8276:5:53","nodeType":"YulIdentifier","src":"8276:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"8258:17:53","nodeType":"YulIdentifier","src":"8258:17:53"},"nativeSrc":"8258:24:53","nodeType":"YulFunctionCall","src":"8258:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"8247:7:53","nodeType":"YulIdentifier","src":"8247:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"8184:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8219:5:53","nodeType":"YulTypedName","src":"8219:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8229:7:53","nodeType":"YulTypedName","src":"8229:7:53","type":""}],"src":"8184:104:53"},{"body":{"nativeSrc":"8345:87:53","nodeType":"YulBlock","src":"8345:87:53","statements":[{"body":{"nativeSrc":"8410:16:53","nodeType":"YulBlock","src":"8410:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8419:1:53","nodeType":"YulLiteral","src":"8419:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8422:1:53","nodeType":"YulLiteral","src":"8422:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8412:6:53","nodeType":"YulIdentifier","src":"8412:6:53"},"nativeSrc":"8412:12:53","nodeType":"YulFunctionCall","src":"8412:12:53"},"nativeSrc":"8412:12:53","nodeType":"YulExpressionStatement","src":"8412:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8368:5:53","nodeType":"YulIdentifier","src":"8368:5:53"},{"arguments":[{"name":"value","nativeSrc":"8401:5:53","nodeType":"YulIdentifier","src":"8401:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"8375:25:53","nodeType":"YulIdentifier","src":"8375:25:53"},"nativeSrc":"8375:32:53","nodeType":"YulFunctionCall","src":"8375:32:53"}],"functionName":{"name":"eq","nativeSrc":"8365:2:53","nodeType":"YulIdentifier","src":"8365:2:53"},"nativeSrc":"8365:43:53","nodeType":"YulFunctionCall","src":"8365:43:53"}],"functionName":{"name":"iszero","nativeSrc":"8358:6:53","nodeType":"YulIdentifier","src":"8358:6:53"},"nativeSrc":"8358:51:53","nodeType":"YulFunctionCall","src":"8358:51:53"},"nativeSrc":"8355:71:53","nodeType":"YulIf","src":"8355:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"8294:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8338:5:53","nodeType":"YulTypedName","src":"8338:5:53","type":""}],"src":"8294:138:53"},{"body":{"nativeSrc":"8498:95:53","nodeType":"YulBlock","src":"8498:95:53","statements":[{"nativeSrc":"8508:29:53","nodeType":"YulAssignment","src":"8508:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8530:6:53","nodeType":"YulIdentifier","src":"8530:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8517:12:53","nodeType":"YulIdentifier","src":"8517:12:53"},"nativeSrc":"8517:20:53","nodeType":"YulFunctionCall","src":"8517:20:53"},"variableNames":[{"name":"value","nativeSrc":"8508:5:53","nodeType":"YulIdentifier","src":"8508:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8581:5:53","nodeType":"YulIdentifier","src":"8581:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"8546:34:53","nodeType":"YulIdentifier","src":"8546:34:53"},"nativeSrc":"8546:41:53","nodeType":"YulFunctionCall","src":"8546:41:53"},"nativeSrc":"8546:41:53","nodeType":"YulExpressionStatement","src":"8546:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"8438:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8476:6:53","nodeType":"YulTypedName","src":"8476:6:53","type":""},{"name":"end","nativeSrc":"8484:3:53","nodeType":"YulTypedName","src":"8484:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8492:5:53","nodeType":"YulTypedName","src":"8492:5:53","type":""}],"src":"8438:155:53"},{"body":{"nativeSrc":"8647:54:53","nodeType":"YulBlock","src":"8647:54:53","statements":[{"nativeSrc":"8657:38:53","nodeType":"YulAssignment","src":"8657:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8675:5:53","nodeType":"YulIdentifier","src":"8675:5:53"},{"kind":"number","nativeSrc":"8682:2:53","nodeType":"YulLiteral","src":"8682:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"8671:3:53","nodeType":"YulIdentifier","src":"8671:3:53"},"nativeSrc":"8671:14:53","nodeType":"YulFunctionCall","src":"8671:14:53"},{"arguments":[{"kind":"number","nativeSrc":"8691:2:53","nodeType":"YulLiteral","src":"8691:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"8687:3:53","nodeType":"YulIdentifier","src":"8687:3:53"},"nativeSrc":"8687:7:53","nodeType":"YulFunctionCall","src":"8687:7:53"}],"functionName":{"name":"and","nativeSrc":"8667:3:53","nodeType":"YulIdentifier","src":"8667:3:53"},"nativeSrc":"8667:28:53","nodeType":"YulFunctionCall","src":"8667:28:53"},"variableNames":[{"name":"result","nativeSrc":"8657:6:53","nodeType":"YulIdentifier","src":"8657:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"8599:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8630:5:53","nodeType":"YulTypedName","src":"8630:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"8640:6:53","nodeType":"YulTypedName","src":"8640:6:53","type":""}],"src":"8599:102:53"},{"body":{"nativeSrc":"8735:152:53","nodeType":"YulBlock","src":"8735:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8752:1:53","nodeType":"YulLiteral","src":"8752:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8755:77:53","nodeType":"YulLiteral","src":"8755:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8745:6:53","nodeType":"YulIdentifier","src":"8745:6:53"},"nativeSrc":"8745:88:53","nodeType":"YulFunctionCall","src":"8745:88:53"},"nativeSrc":"8745:88:53","nodeType":"YulExpressionStatement","src":"8745:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8849:1:53","nodeType":"YulLiteral","src":"8849:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8852:4:53","nodeType":"YulLiteral","src":"8852:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8842:6:53","nodeType":"YulIdentifier","src":"8842:6:53"},"nativeSrc":"8842:15:53","nodeType":"YulFunctionCall","src":"8842:15:53"},"nativeSrc":"8842:15:53","nodeType":"YulExpressionStatement","src":"8842:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8873:1:53","nodeType":"YulLiteral","src":"8873:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8876:4:53","nodeType":"YulLiteral","src":"8876:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8866:6:53","nodeType":"YulIdentifier","src":"8866:6:53"},"nativeSrc":"8866:15:53","nodeType":"YulFunctionCall","src":"8866:15:53"},"nativeSrc":"8866:15:53","nodeType":"YulExpressionStatement","src":"8866:15:53"}]},"name":"panic_error_0x41","nativeSrc":"8707:180:53","nodeType":"YulFunctionDefinition","src":"8707:180:53"},{"body":{"nativeSrc":"8936:238:53","nodeType":"YulBlock","src":"8936:238:53","statements":[{"nativeSrc":"8946:58:53","nodeType":"YulVariableDeclaration","src":"8946:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8968:6:53","nodeType":"YulIdentifier","src":"8968:6:53"},{"arguments":[{"name":"size","nativeSrc":"8998:4:53","nodeType":"YulIdentifier","src":"8998:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8976:21:53","nodeType":"YulIdentifier","src":"8976:21:53"},"nativeSrc":"8976:27:53","nodeType":"YulFunctionCall","src":"8976:27:53"}],"functionName":{"name":"add","nativeSrc":"8964:3:53","nodeType":"YulIdentifier","src":"8964:3:53"},"nativeSrc":"8964:40:53","nodeType":"YulFunctionCall","src":"8964:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8950:10:53","nodeType":"YulTypedName","src":"8950:10:53","type":""}]},{"body":{"nativeSrc":"9115:22:53","nodeType":"YulBlock","src":"9115:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9117:16:53","nodeType":"YulIdentifier","src":"9117:16:53"},"nativeSrc":"9117:18:53","nodeType":"YulFunctionCall","src":"9117:18:53"},"nativeSrc":"9117:18:53","nodeType":"YulExpressionStatement","src":"9117:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9058:10:53","nodeType":"YulIdentifier","src":"9058:10:53"},{"kind":"number","nativeSrc":"9070:18:53","nodeType":"YulLiteral","src":"9070:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9055:2:53","nodeType":"YulIdentifier","src":"9055:2:53"},"nativeSrc":"9055:34:53","nodeType":"YulFunctionCall","src":"9055:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9094:10:53","nodeType":"YulIdentifier","src":"9094:10:53"},{"name":"memPtr","nativeSrc":"9106:6:53","nodeType":"YulIdentifier","src":"9106:6:53"}],"functionName":{"name":"lt","nativeSrc":"9091:2:53","nodeType":"YulIdentifier","src":"9091:2:53"},"nativeSrc":"9091:22:53","nodeType":"YulFunctionCall","src":"9091:22:53"}],"functionName":{"name":"or","nativeSrc":"9052:2:53","nodeType":"YulIdentifier","src":"9052:2:53"},"nativeSrc":"9052:62:53","nodeType":"YulFunctionCall","src":"9052:62:53"},"nativeSrc":"9049:88:53","nodeType":"YulIf","src":"9049:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9153:2:53","nodeType":"YulLiteral","src":"9153:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"9157:10:53","nodeType":"YulIdentifier","src":"9157:10:53"}],"functionName":{"name":"mstore","nativeSrc":"9146:6:53","nodeType":"YulIdentifier","src":"9146:6:53"},"nativeSrc":"9146:22:53","nodeType":"YulFunctionCall","src":"9146:22:53"},"nativeSrc":"9146:22:53","nodeType":"YulExpressionStatement","src":"9146:22:53"}]},"name":"finalize_allocation","nativeSrc":"8893:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8922:6:53","nodeType":"YulTypedName","src":"8922:6:53","type":""},{"name":"size","nativeSrc":"8930:4:53","nodeType":"YulTypedName","src":"8930:4:53","type":""}],"src":"8893:281:53"},{"body":{"nativeSrc":"9221:88:53","nodeType":"YulBlock","src":"9221:88:53","statements":[{"nativeSrc":"9231:30:53","nodeType":"YulAssignment","src":"9231:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"9241:18:53","nodeType":"YulIdentifier","src":"9241:18:53"},"nativeSrc":"9241:20:53","nodeType":"YulFunctionCall","src":"9241:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"9231:6:53","nodeType":"YulIdentifier","src":"9231:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"9290:6:53","nodeType":"YulIdentifier","src":"9290:6:53"},{"name":"size","nativeSrc":"9298:4:53","nodeType":"YulIdentifier","src":"9298:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"9270:19:53","nodeType":"YulIdentifier","src":"9270:19:53"},"nativeSrc":"9270:33:53","nodeType":"YulFunctionCall","src":"9270:33:53"},"nativeSrc":"9270:33:53","nodeType":"YulExpressionStatement","src":"9270:33:53"}]},"name":"allocate_memory","nativeSrc":"9180:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"9205:4:53","nodeType":"YulTypedName","src":"9205:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"9214:6:53","nodeType":"YulTypedName","src":"9214:6:53","type":""}],"src":"9180:129:53"},{"body":{"nativeSrc":"9397:229:53","nodeType":"YulBlock","src":"9397:229:53","statements":[{"body":{"nativeSrc":"9502:22:53","nodeType":"YulBlock","src":"9502:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9504:16:53","nodeType":"YulIdentifier","src":"9504:16:53"},"nativeSrc":"9504:18:53","nodeType":"YulFunctionCall","src":"9504:18:53"},"nativeSrc":"9504:18:53","nodeType":"YulExpressionStatement","src":"9504:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9474:6:53","nodeType":"YulIdentifier","src":"9474:6:53"},{"kind":"number","nativeSrc":"9482:18:53","nodeType":"YulLiteral","src":"9482:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9471:2:53","nodeType":"YulIdentifier","src":"9471:2:53"},"nativeSrc":"9471:30:53","nodeType":"YulFunctionCall","src":"9471:30:53"},"nativeSrc":"9468:56:53","nodeType":"YulIf","src":"9468:56:53"},{"nativeSrc":"9534:25:53","nodeType":"YulAssignment","src":"9534:25:53","value":{"arguments":[{"name":"length","nativeSrc":"9546:6:53","nodeType":"YulIdentifier","src":"9546:6:53"},{"kind":"number","nativeSrc":"9554:4:53","nodeType":"YulLiteral","src":"9554:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9542:3:53","nodeType":"YulIdentifier","src":"9542:3:53"},"nativeSrc":"9542:17:53","nodeType":"YulFunctionCall","src":"9542:17:53"},"variableNames":[{"name":"size","nativeSrc":"9534:4:53","nodeType":"YulIdentifier","src":"9534:4:53"}]},{"nativeSrc":"9596:23:53","nodeType":"YulAssignment","src":"9596:23:53","value":{"arguments":[{"name":"size","nativeSrc":"9608:4:53","nodeType":"YulIdentifier","src":"9608:4:53"},{"kind":"number","nativeSrc":"9614:4:53","nodeType":"YulLiteral","src":"9614:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9604:3:53","nodeType":"YulIdentifier","src":"9604:3:53"},"nativeSrc":"9604:15:53","nodeType":"YulFunctionCall","src":"9604:15:53"},"variableNames":[{"name":"size","nativeSrc":"9596:4:53","nodeType":"YulIdentifier","src":"9596:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9315:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"9381:6:53","nodeType":"YulTypedName","src":"9381:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"9392:4:53","nodeType":"YulTypedName","src":"9392:4:53","type":""}],"src":"9315:311:53"},{"body":{"nativeSrc":"9751:608:53","nodeType":"YulBlock","src":"9751:608:53","statements":[{"nativeSrc":"9761:90:53","nodeType":"YulAssignment","src":"9761:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9843:6:53","nodeType":"YulIdentifier","src":"9843:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9786:56:53","nodeType":"YulIdentifier","src":"9786:56:53"},"nativeSrc":"9786:64:53","nodeType":"YulFunctionCall","src":"9786:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"9770:15:53","nodeType":"YulIdentifier","src":"9770:15:53"},"nativeSrc":"9770:81:53","nodeType":"YulFunctionCall","src":"9770:81:53"},"variableNames":[{"name":"array","nativeSrc":"9761:5:53","nodeType":"YulIdentifier","src":"9761:5:53"}]},{"nativeSrc":"9860:16:53","nodeType":"YulVariableDeclaration","src":"9860:16:53","value":{"name":"array","nativeSrc":"9871:5:53","nodeType":"YulIdentifier","src":"9871:5:53"},"variables":[{"name":"dst","nativeSrc":"9864:3:53","nodeType":"YulTypedName","src":"9864:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"9893:5:53","nodeType":"YulIdentifier","src":"9893:5:53"},{"name":"length","nativeSrc":"9900:6:53","nodeType":"YulIdentifier","src":"9900:6:53"}],"functionName":{"name":"mstore","nativeSrc":"9886:6:53","nodeType":"YulIdentifier","src":"9886:6:53"},"nativeSrc":"9886:21:53","nodeType":"YulFunctionCall","src":"9886:21:53"},"nativeSrc":"9886:21:53","nodeType":"YulExpressionStatement","src":"9886:21:53"},{"nativeSrc":"9916:23:53","nodeType":"YulAssignment","src":"9916:23:53","value":{"arguments":[{"name":"array","nativeSrc":"9927:5:53","nodeType":"YulIdentifier","src":"9927:5:53"},{"kind":"number","nativeSrc":"9934:4:53","nodeType":"YulLiteral","src":"9934:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9923:3:53","nodeType":"YulIdentifier","src":"9923:3:53"},"nativeSrc":"9923:16:53","nodeType":"YulFunctionCall","src":"9923:16:53"},"variableNames":[{"name":"dst","nativeSrc":"9916:3:53","nodeType":"YulIdentifier","src":"9916:3:53"}]},{"nativeSrc":"9949:44:53","nodeType":"YulVariableDeclaration","src":"9949:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"9967:6:53","nodeType":"YulIdentifier","src":"9967:6:53"},{"arguments":[{"name":"length","nativeSrc":"9979:6:53","nodeType":"YulIdentifier","src":"9979:6:53"},{"kind":"number","nativeSrc":"9987:4:53","nodeType":"YulLiteral","src":"9987:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9975:3:53","nodeType":"YulIdentifier","src":"9975:3:53"},"nativeSrc":"9975:17:53","nodeType":"YulFunctionCall","src":"9975:17:53"}],"functionName":{"name":"add","nativeSrc":"9963:3:53","nodeType":"YulIdentifier","src":"9963:3:53"},"nativeSrc":"9963:30:53","nodeType":"YulFunctionCall","src":"9963:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"9953:6:53","nodeType":"YulTypedName","src":"9953:6:53","type":""}]},{"body":{"nativeSrc":"10021:103:53","nodeType":"YulBlock","src":"10021:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10035:77:53","nodeType":"YulIdentifier","src":"10035:77:53"},"nativeSrc":"10035:79:53","nodeType":"YulFunctionCall","src":"10035:79:53"},"nativeSrc":"10035:79:53","nodeType":"YulExpressionStatement","src":"10035:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"10008:6:53","nodeType":"YulIdentifier","src":"10008:6:53"},{"name":"end","nativeSrc":"10016:3:53","nodeType":"YulIdentifier","src":"10016:3:53"}],"functionName":{"name":"gt","nativeSrc":"10005:2:53","nodeType":"YulIdentifier","src":"10005:2:53"},"nativeSrc":"10005:15:53","nodeType":"YulFunctionCall","src":"10005:15:53"},"nativeSrc":"10002:122:53","nodeType":"YulIf","src":"10002:122:53"},{"body":{"nativeSrc":"10209:144:53","nodeType":"YulBlock","src":"10209:144:53","statements":[{"nativeSrc":"10224:21:53","nodeType":"YulVariableDeclaration","src":"10224:21:53","value":{"name":"src","nativeSrc":"10242:3:53","nodeType":"YulIdentifier","src":"10242:3:53"},"variables":[{"name":"elementPos","nativeSrc":"10228:10:53","nodeType":"YulTypedName","src":"10228:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"10266:3:53","nodeType":"YulIdentifier","src":"10266:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"10292:10:53","nodeType":"YulIdentifier","src":"10292:10:53"},{"name":"end","nativeSrc":"10304:3:53","nodeType":"YulIdentifier","src":"10304:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10271:20:53","nodeType":"YulIdentifier","src":"10271:20:53"},"nativeSrc":"10271:37:53","nodeType":"YulFunctionCall","src":"10271:37:53"}],"functionName":{"name":"mstore","nativeSrc":"10259:6:53","nodeType":"YulIdentifier","src":"10259:6:53"},"nativeSrc":"10259:50:53","nodeType":"YulFunctionCall","src":"10259:50:53"},"nativeSrc":"10259:50:53","nodeType":"YulExpressionStatement","src":"10259:50:53"},{"nativeSrc":"10322:21:53","nodeType":"YulAssignment","src":"10322:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"10333:3:53","nodeType":"YulIdentifier","src":"10333:3:53"},{"kind":"number","nativeSrc":"10338:4:53","nodeType":"YulLiteral","src":"10338:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10329:3:53","nodeType":"YulIdentifier","src":"10329:3:53"},"nativeSrc":"10329:14:53","nodeType":"YulFunctionCall","src":"10329:14:53"},"variableNames":[{"name":"dst","nativeSrc":"10322:3:53","nodeType":"YulIdentifier","src":"10322:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"10162:3:53","nodeType":"YulIdentifier","src":"10162:3:53"},{"name":"srcEnd","nativeSrc":"10167:6:53","nodeType":"YulIdentifier","src":"10167:6:53"}],"functionName":{"name":"lt","nativeSrc":"10159:2:53","nodeType":"YulIdentifier","src":"10159:2:53"},"nativeSrc":"10159:15:53","nodeType":"YulFunctionCall","src":"10159:15:53"},"nativeSrc":"10133:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"10175:25:53","nodeType":"YulBlock","src":"10175:25:53","statements":[{"nativeSrc":"10177:21:53","nodeType":"YulAssignment","src":"10177:21:53","value":{"arguments":[{"name":"src","nativeSrc":"10188:3:53","nodeType":"YulIdentifier","src":"10188:3:53"},{"kind":"number","nativeSrc":"10193:4:53","nodeType":"YulLiteral","src":"10193:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10184:3:53","nodeType":"YulIdentifier","src":"10184:3:53"},"nativeSrc":"10184:14:53","nodeType":"YulFunctionCall","src":"10184:14:53"},"variableNames":[{"name":"src","nativeSrc":"10177:3:53","nodeType":"YulIdentifier","src":"10177:3:53"}]}]},"pre":{"nativeSrc":"10137:21:53","nodeType":"YulBlock","src":"10137:21:53","statements":[{"nativeSrc":"10139:17:53","nodeType":"YulVariableDeclaration","src":"10139:17:53","value":{"name":"offset","nativeSrc":"10150:6:53","nodeType":"YulIdentifier","src":"10150:6:53"},"variables":[{"name":"src","nativeSrc":"10143:3:53","nodeType":"YulTypedName","src":"10143:3:53","type":""}]}]},"src":"10133:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9649:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9721:6:53","nodeType":"YulTypedName","src":"9721:6:53","type":""},{"name":"length","nativeSrc":"9729:6:53","nodeType":"YulTypedName","src":"9729:6:53","type":""},{"name":"end","nativeSrc":"9737:3:53","nodeType":"YulTypedName","src":"9737:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9745:5:53","nodeType":"YulTypedName","src":"9745:5:53","type":""}],"src":"9649:710:53"},{"body":{"nativeSrc":"10459:293:53","nodeType":"YulBlock","src":"10459:293:53","statements":[{"body":{"nativeSrc":"10508:83:53","nodeType":"YulBlock","src":"10508:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10510:77:53","nodeType":"YulIdentifier","src":"10510:77:53"},"nativeSrc":"10510:79:53","nodeType":"YulFunctionCall","src":"10510:79:53"},"nativeSrc":"10510:79:53","nodeType":"YulExpressionStatement","src":"10510:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10487:6:53","nodeType":"YulIdentifier","src":"10487:6:53"},{"kind":"number","nativeSrc":"10495:4:53","nodeType":"YulLiteral","src":"10495:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10483:3:53","nodeType":"YulIdentifier","src":"10483:3:53"},"nativeSrc":"10483:17:53","nodeType":"YulFunctionCall","src":"10483:17:53"},{"name":"end","nativeSrc":"10502:3:53","nodeType":"YulIdentifier","src":"10502:3:53"}],"functionName":{"name":"slt","nativeSrc":"10479:3:53","nodeType":"YulIdentifier","src":"10479:3:53"},"nativeSrc":"10479:27:53","nodeType":"YulFunctionCall","src":"10479:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10472:6:53","nodeType":"YulIdentifier","src":"10472:6:53"},"nativeSrc":"10472:35:53","nodeType":"YulFunctionCall","src":"10472:35:53"},"nativeSrc":"10469:122:53","nodeType":"YulIf","src":"10469:122:53"},{"nativeSrc":"10600:34:53","nodeType":"YulVariableDeclaration","src":"10600:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"10627:6:53","nodeType":"YulIdentifier","src":"10627:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10614:12:53","nodeType":"YulIdentifier","src":"10614:12:53"},"nativeSrc":"10614:20:53","nodeType":"YulFunctionCall","src":"10614:20:53"},"variables":[{"name":"length","nativeSrc":"10604:6:53","nodeType":"YulTypedName","src":"10604:6:53","type":""}]},{"nativeSrc":"10643:103:53","nodeType":"YulAssignment","src":"10643:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10719:6:53","nodeType":"YulIdentifier","src":"10719:6:53"},{"kind":"number","nativeSrc":"10727:4:53","nodeType":"YulLiteral","src":"10727:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10715:3:53","nodeType":"YulIdentifier","src":"10715:3:53"},"nativeSrc":"10715:17:53","nodeType":"YulFunctionCall","src":"10715:17:53"},{"name":"length","nativeSrc":"10734:6:53","nodeType":"YulIdentifier","src":"10734:6:53"},{"name":"end","nativeSrc":"10742:3:53","nodeType":"YulIdentifier","src":"10742:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10652:62:53","nodeType":"YulIdentifier","src":"10652:62:53"},"nativeSrc":"10652:94:53","nodeType":"YulFunctionCall","src":"10652:94:53"},"variableNames":[{"name":"array","nativeSrc":"10643:5:53","nodeType":"YulIdentifier","src":"10643:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10382:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10437:6:53","nodeType":"YulTypedName","src":"10437:6:53","type":""},{"name":"end","nativeSrc":"10445:3:53","nodeType":"YulTypedName","src":"10445:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10453:5:53","nodeType":"YulTypedName","src":"10453:5:53","type":""}],"src":"10382:370:53"},{"body":{"nativeSrc":"10874:584:53","nodeType":"YulBlock","src":"10874:584:53","statements":[{"body":{"nativeSrc":"10920:83:53","nodeType":"YulBlock","src":"10920:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10922:77:53","nodeType":"YulIdentifier","src":"10922:77:53"},"nativeSrc":"10922:79:53","nodeType":"YulFunctionCall","src":"10922:79:53"},"nativeSrc":"10922:79:53","nodeType":"YulExpressionStatement","src":"10922:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10895:7:53","nodeType":"YulIdentifier","src":"10895:7:53"},{"name":"headStart","nativeSrc":"10904:9:53","nodeType":"YulIdentifier","src":"10904:9:53"}],"functionName":{"name":"sub","nativeSrc":"10891:3:53","nodeType":"YulIdentifier","src":"10891:3:53"},"nativeSrc":"10891:23:53","nodeType":"YulFunctionCall","src":"10891:23:53"},{"kind":"number","nativeSrc":"10916:2:53","nodeType":"YulLiteral","src":"10916:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10887:3:53","nodeType":"YulIdentifier","src":"10887:3:53"},"nativeSrc":"10887:32:53","nodeType":"YulFunctionCall","src":"10887:32:53"},"nativeSrc":"10884:119:53","nodeType":"YulIf","src":"10884:119:53"},{"nativeSrc":"11013:125:53","nodeType":"YulBlock","src":"11013:125:53","statements":[{"nativeSrc":"11028:15:53","nodeType":"YulVariableDeclaration","src":"11028:15:53","value":{"kind":"number","nativeSrc":"11042:1:53","nodeType":"YulLiteral","src":"11042:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11032:6:53","nodeType":"YulTypedName","src":"11032:6:53","type":""}]},{"nativeSrc":"11057:71:53","nodeType":"YulAssignment","src":"11057:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11100:9:53","nodeType":"YulIdentifier","src":"11100:9:53"},{"name":"offset","nativeSrc":"11111:6:53","nodeType":"YulIdentifier","src":"11111:6:53"}],"functionName":{"name":"add","nativeSrc":"11096:3:53","nodeType":"YulIdentifier","src":"11096:3:53"},"nativeSrc":"11096:22:53","nodeType":"YulFunctionCall","src":"11096:22:53"},{"name":"dataEnd","nativeSrc":"11120:7:53","nodeType":"YulIdentifier","src":"11120:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"11067:28:53","nodeType":"YulIdentifier","src":"11067:28:53"},"nativeSrc":"11067:61:53","nodeType":"YulFunctionCall","src":"11067:61:53"},"variableNames":[{"name":"value0","nativeSrc":"11057:6:53","nodeType":"YulIdentifier","src":"11057:6:53"}]}]},{"nativeSrc":"11148:303:53","nodeType":"YulBlock","src":"11148:303:53","statements":[{"nativeSrc":"11163:46:53","nodeType":"YulVariableDeclaration","src":"11163:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11194:9:53","nodeType":"YulIdentifier","src":"11194:9:53"},{"kind":"number","nativeSrc":"11205:2:53","nodeType":"YulLiteral","src":"11205:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11190:3:53","nodeType":"YulIdentifier","src":"11190:3:53"},"nativeSrc":"11190:18:53","nodeType":"YulFunctionCall","src":"11190:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11177:12:53","nodeType":"YulIdentifier","src":"11177:12:53"},"nativeSrc":"11177:32:53","nodeType":"YulFunctionCall","src":"11177:32:53"},"variables":[{"name":"offset","nativeSrc":"11167:6:53","nodeType":"YulTypedName","src":"11167:6:53","type":""}]},{"body":{"nativeSrc":"11256:83:53","nodeType":"YulBlock","src":"11256:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11258:77:53","nodeType":"YulIdentifier","src":"11258:77:53"},"nativeSrc":"11258:79:53","nodeType":"YulFunctionCall","src":"11258:79:53"},"nativeSrc":"11258:79:53","nodeType":"YulExpressionStatement","src":"11258:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11228:6:53","nodeType":"YulIdentifier","src":"11228:6:53"},{"kind":"number","nativeSrc":"11236:18:53","nodeType":"YulLiteral","src":"11236:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11225:2:53","nodeType":"YulIdentifier","src":"11225:2:53"},"nativeSrc":"11225:30:53","nodeType":"YulFunctionCall","src":"11225:30:53"},"nativeSrc":"11222:117:53","nodeType":"YulIf","src":"11222:117:53"},{"nativeSrc":"11353:88:53","nodeType":"YulAssignment","src":"11353:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11413:9:53","nodeType":"YulIdentifier","src":"11413:9:53"},{"name":"offset","nativeSrc":"11424:6:53","nodeType":"YulIdentifier","src":"11424:6:53"}],"functionName":{"name":"add","nativeSrc":"11409:3:53","nodeType":"YulIdentifier","src":"11409:3:53"},"nativeSrc":"11409:22:53","nodeType":"YulFunctionCall","src":"11409:22:53"},{"name":"dataEnd","nativeSrc":"11433:7:53","nodeType":"YulIdentifier","src":"11433:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11363:45:53","nodeType":"YulIdentifier","src":"11363:45:53"},"nativeSrc":"11363:78:53","nodeType":"YulFunctionCall","src":"11363:78:53"},"variableNames":[{"name":"value1","nativeSrc":"11353:6:53","nodeType":"YulIdentifier","src":"11353:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr","nativeSrc":"10758:700:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10836:9:53","nodeType":"YulTypedName","src":"10836:9:53","type":""},{"name":"dataEnd","nativeSrc":"10847:7:53","nodeType":"YulTypedName","src":"10847:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10859:6:53","nodeType":"YulTypedName","src":"10859:6:53","type":""},{"name":"value1","nativeSrc":"10867:6:53","nodeType":"YulTypedName","src":"10867:6:53","type":""}],"src":"10758:700:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\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 := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_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_address_payablet_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061009b575f3560e01c8063715018a611610063578063715018a61461013f5780638da5cb5b14610149578063e3f756de14610173578063f04e283e146101af578063f2fde38b146101cb578063fee81cf4146101e75761009b565b806301ffc9a71461009f578063141973b0146100db5780632569296214610103578063439fab911461010d57806354d1f13d14610135575b5f80fd5b3480156100aa575f80fd5b506100c560048036038101906100c091906109ad565b610223565b6040516100d291906109f2565b60405180910390f35b3480156100e6575f80fd5b5061010160048036038101906100fc9190610ac1565b61029c565b005b61010b6103a5565b005b348015610118575f80fd5b50610133600480360381019061012e9190610b94565b6103f6565b005b61013d610513565b005b61014761054c565b005b348015610154575f80fd5b5061015d61055f565b60405161016a9190610c1e565b60405180910390f35b34801561017e575f80fd5b5061019960048036038101906101949190610c61565b610587565b6040516101a691906109f2565b60405180910390f35b6101c960048036038101906101c49190610cbe565b6105db565b005b6101e560048036038101906101e09190610cbe565b610619565b005b3480156101f2575f80fd5b5061020d60048036038101906102089190610cbe565b610642565b60405161021a9190610d01565b60405180910390f35b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061029557506102948261065b565b5b9050919050565b6102a46106d4565b8181905084849050146102e3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561039e5782828281811061030357610302610d1a565b5b90506020020160208101906103189190610d71565b5f8087878581811061032d5761032c610d1a565b5b90506020020160208101906103429190610cbe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506102e5565b5050505050565b5f6103ae61070b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f6103ff610715565b905080546003825580156104315760018160011c14303b106104285763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906104439190610f1f565b915091506104508261073e565b5f5b81518110156104d65760015f8084848151811061047257610471610d1a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610452565b505050801561050e576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105546106d4565b61055d5f610814565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161590509392505050565b6105e36106d4565b63389a75e1600c52805f526020600c20805442111561060957636f5e88185f526004601cfd5b5f81555061061681610814565b50565b6106216106d4565b8060601b61063657637448fbae5f526004601cfd5b61063f81610814565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106cd57506106cc826108da565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610709576382b429005f526004601cfd5b565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610746610943565b156107be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561078057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610811565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b61081c610943565b15610881577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506108d7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61098c81610958565b8114610996575f80fd5b50565b5f813590506109a781610983565b92915050565b5f602082840312156109c2576109c1610950565b5b5f6109cf84828501610999565b91505092915050565b5f8115159050919050565b6109ec816109d8565b82525050565b5f602082019050610a055f8301846109e3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610a2c57610a2b610a0b565b5b8235905067ffffffffffffffff811115610a4957610a48610a0f565b5b602083019150836020820283011115610a6557610a64610a13565b5b9250929050565b5f8083601f840112610a8157610a80610a0b565b5b8235905067ffffffffffffffff811115610a9e57610a9d610a0f565b5b602083019150836020820283011115610aba57610ab9610a13565b5b9250929050565b5f805f8060408587031215610ad957610ad8610950565b5b5f85013567ffffffffffffffff811115610af657610af5610954565b5b610b0287828801610a17565b9450945050602085013567ffffffffffffffff811115610b2557610b24610954565b5b610b3187828801610a6c565b925092505092959194509250565b5f8083601f840112610b5457610b53610a0b565b5b8235905067ffffffffffffffff811115610b7157610b70610a0f565b5b602083019150836001820283011115610b8d57610b8c610a13565b5b9250929050565b5f8060208385031215610baa57610ba9610950565b5b5f83013567ffffffffffffffff811115610bc757610bc6610954565b5b610bd385828601610b3f565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c0882610bdf565b9050919050565b610c1881610bfe565b82525050565b5f602082019050610c315f830184610c0f565b92915050565b610c4081610bfe565b8114610c4a575f80fd5b50565b5f81359050610c5b81610c37565b92915050565b5f805f60408486031215610c7857610c77610950565b5b5f610c8586828701610c4d565b935050602084013567ffffffffffffffff811115610ca657610ca5610954565b5b610cb286828701610b3f565b92509250509250925092565b5f60208284031215610cd357610cd2610950565b5b5f610ce084828501610c4d565b91505092915050565b5f819050919050565b610cfb81610ce9565b82525050565b5f602082019050610d145f830184610cf2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610d50816109d8565b8114610d5a575f80fd5b50565b5f81359050610d6b81610d47565b92915050565b5f60208284031215610d8657610d85610950565b5b5f610d9384828501610d5d565b91505092915050565b5f610da682610bdf565b9050919050565b610db681610d9c565b8114610dc0575f80fd5b50565b5f81359050610dd181610dad565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610e1d82610dd7565b810181811067ffffffffffffffff82111715610e3c57610e3b610de7565b5b80604052505050565b5f610e4e610947565b9050610e5a8282610e14565b919050565b5f67ffffffffffffffff821115610e7957610e78610de7565b5b602082029050602081019050919050565b5f610e9c610e9784610e5f565b610e45565b90508083825260208201905060208402830185811115610ebf57610ebe610a13565b5b835b81811015610ee85780610ed48882610c4d565b845260208401935050602081019050610ec1565b5050509392505050565b5f82601f830112610f0657610f05610a0b565b5b8135610f16848260208601610e8a565b91505092915050565b5f8060408385031215610f3557610f34610950565b5b5f610f4285828601610dc3565b925050602083013567ffffffffffffffff811115610f6357610f62610954565b5b610f6f85828601610ef2565b915050925092905056fea2646970667358221220ddfce1aec2fb0f8d518874929c00497c2d81c727e9711b3c7324436f014ef3ef64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x1E7 JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x141973B0 EQ PUSH2 0xDB JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x135 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH2 0x223 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xAC1 JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH2 0x3A5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13D PUSH2 0x513 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x147 PUSH2 0x54C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15D PUSH2 0x55F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C4 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x619 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x208 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0xD01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xE2089F7900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x295 JUMPI POP PUSH2 0x294 DUP3 PUSH2 0x65B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A4 PUSH2 0x6D4 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x2E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x39E JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x318 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x32D JUMPI PUSH2 0x32C PUSH2 0xD1A JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0xCBE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2E5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3AE PUSH2 0x70B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x3FF PUSH2 0x715 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x431 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x428 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x443 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x450 DUP3 PUSH2 0x73E JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x4D6 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x472 JUMPI PUSH2 0x471 PUSH2 0xD1A JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x452 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x554 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0x55D PUSH0 PUSH2 0x814 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5E3 PUSH2 0x6D4 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x609 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x616 DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x621 PUSH2 0x6D4 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x636 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x63F DUP2 PUSH2 0x814 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6CD JUMPI POP PUSH2 0x6CC DUP3 PUSH2 0x8DA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x709 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x746 PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x7BE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x780 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x811 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x81C PUSH2 0x943 JUMP JUMPDEST ISZERO PUSH2 0x881 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0x958 JUMP JUMPDEST DUP2 EQ PUSH2 0x996 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9A7 DUP2 PUSH2 0x983 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C2 JUMPI PUSH2 0x9C1 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x9CF DUP5 DUP3 DUP6 ADD PUSH2 0x999 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9EC DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA05 PUSH0 DUP4 ADD DUP5 PUSH2 0x9E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA2C JUMPI PUSH2 0xA2B PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA49 JUMPI PUSH2 0xA48 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xA65 JUMPI PUSH2 0xA64 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xA81 JUMPI PUSH2 0xA80 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA9E JUMPI PUSH2 0xA9D PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xABA JUMPI PUSH2 0xAB9 PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAF6 JUMPI PUSH2 0xAF5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB02 DUP8 DUP3 DUP9 ADD PUSH2 0xA17 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB24 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xB31 DUP8 DUP3 DUP9 ADD PUSH2 0xA6C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB54 JUMPI PUSH2 0xB53 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB71 JUMPI PUSH2 0xB70 PUSH2 0xA0F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB8D JUMPI PUSH2 0xB8C PUSH2 0xA13 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBAA JUMPI PUSH2 0xBA9 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBC7 JUMPI PUSH2 0xBC6 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xBD3 DUP6 DUP3 DUP7 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC08 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC18 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC31 PUSH0 DUP4 ADD DUP5 PUSH2 0xC0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC40 DUP2 PUSH2 0xBFE JUMP JUMPDEST DUP2 EQ PUSH2 0xC4A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC5B DUP2 PUSH2 0xC37 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC78 JUMPI PUSH2 0xC77 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC85 DUP7 DUP3 DUP8 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCA6 JUMPI PUSH2 0xCA5 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xCB2 DUP7 DUP3 DUP8 ADD PUSH2 0xB3F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCE0 DUP5 DUP3 DUP6 ADD PUSH2 0xC4D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCFB DUP2 PUSH2 0xCE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD14 PUSH0 DUP4 ADD DUP5 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xD50 DUP2 PUSH2 0x9D8 JUMP JUMPDEST DUP2 EQ PUSH2 0xD5A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD6B DUP2 PUSH2 0xD47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD85 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD93 DUP5 DUP3 DUP6 ADD PUSH2 0xD5D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 DUP3 PUSH2 0xBDF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB6 DUP2 PUSH2 0xD9C JUMP JUMPDEST DUP2 EQ PUSH2 0xDC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD1 DUP2 PUSH2 0xDAD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xE1D DUP3 PUSH2 0xDD7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xE3C JUMPI PUSH2 0xE3B PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE4E PUSH2 0x947 JUMP JUMPDEST SWAP1 POP PUSH2 0xE5A DUP3 DUP3 PUSH2 0xE14 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE79 JUMPI PUSH2 0xE78 PUSH2 0xDE7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE9C PUSH2 0xE97 DUP5 PUSH2 0xE5F JUMP JUMPDEST PUSH2 0xE45 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 0xEBF JUMPI PUSH2 0xEBE PUSH2 0xA13 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEE8 JUMPI DUP1 PUSH2 0xED4 DUP9 DUP3 PUSH2 0xC4D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEC1 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF06 JUMPI PUSH2 0xF05 PUSH2 0xA0B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xF16 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE8A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x950 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xDC3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0x954 JUMP JUMPDEST JUMPDEST PUSH2 0xF6F DUP6 DUP3 DUP7 ADD PUSH2 0xEF2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xFC 0xE1 0xAE 0xC2 0xFB 0xF DUP14 MLOAD DUP9 PUSH21 0x929C00497C2D81C727E9711B3C7324436F014EF3EF PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"347:1933:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:208:34;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1990:288:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9021:617:17;;;:::i;:::-;;964:325:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1546:149:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1023:208:34;1119:4;1157:27;1142:42;;;:11;:42;;;;:82;;;;1188:36;1212:11;1188:23;:36::i;:::-;1142:82;1135:89;;1023:208;;;:::o;1990:288:36:-;12517:13:17;:11;:13::i;:::-;2111:7:36::1;;:14;;2094:6;;:13;;:31;2090:71;;2134:27;;;;;;;;;;;;;;2090:71;2177:9;2172:100;2196:6;;:13;;2192:1;:17;2172:100;;;2251:7;;2259:1;2251:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2230:7;:18:::0;2238:6:::1;;2245:1;2238:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2230:18;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2211:3;;;;;;;2172:100;;;;1990:288:::0;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;964:325:36:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1053:14:36::1;1069:26:::0;1110:5:::1;;1099:39;;;;;;;:::i;:::-;1052:86;;;;1149:24;1166:6;1149:16;:24::i;:::-;1188:9;1183:100;1207:9;:16;1203:1;:20;1183:100;;;1268:4;1244:7;:21:::0;1252:9:::1;1262:1;1252:12;;;;;;;;:::i;:::-;;;;;;;;1244:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1225:3;;;;;;;1183:100;;;;1042:247;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;964:325:36;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1546:149:36:-;1650:4;1674:7;:14;1682:5;1674:14;;;;;;;;;;;;;;;;;;;;;;;;;1673:15;1666:22;;1546:149;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;7878:110::-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1904:568;1977:8;1987:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:122;;2045:79;;:::i;:::-;2004:122;2158:6;2145:20;2135:30;;2188:18;2180:6;2177:30;2174:117;;;2210:79;;:::i;:::-;2174:117;2324:4;2316:6;2312:17;2300:29;;2378:3;2370:4;2362:6;2358:17;2348:8;2344:32;2341:41;2338:128;;;2385:79;;:::i;:::-;2338:128;1904:568;;;;;:::o;2492:565::-;2562:8;2572:6;2622:3;2615:4;2607:6;2603:17;2599:27;2589:122;;2630:79;;:::i;:::-;2589:122;2743:6;2730:20;2720:30;;2773:18;2765:6;2762:30;2759:117;;;2795:79;;:::i;:::-;2759:117;2909:4;2901:6;2897:17;2885:29;;2963:3;2955:4;2947:6;2943:17;2933:8;2929:32;2926:41;2923:128;;;2970:79;;:::i;:::-;2923:128;2492:565;;;;;:::o;3063:928::-;3182:6;3190;3198;3206;3255:2;3243:9;3234:7;3230:23;3226:32;3223:119;;;3261:79;;:::i;:::-;3223:119;3409:1;3398:9;3394:17;3381:31;3439:18;3431:6;3428:30;3425:117;;;3461:79;;:::i;:::-;3425:117;3574:80;3646:7;3637:6;3626:9;3622:22;3574:80;:::i;:::-;3556:98;;;;3352:312;3731:2;3720:9;3716:18;3703:32;3762:18;3754:6;3751:30;3748:117;;;3784:79;;:::i;:::-;3748:117;3897:77;3966:7;3957:6;3946:9;3942:22;3897:77;:::i;:::-;3879:95;;;;3674:310;3063:928;;;;;;;:::o;4010:552::-;4067:8;4077:6;4127:3;4120:4;4112:6;4108:17;4104:27;4094:122;;4135:79;;:::i;:::-;4094:122;4248:6;4235:20;4225:30;;4278:18;4270:6;4267:30;4264:117;;;4300:79;;:::i;:::-;4264:117;4414:4;4406:6;4402:17;4390:29;;4468:3;4460:4;4452:6;4448:17;4438:8;4434:32;4431:41;4428:128;;;4475:79;;:::i;:::-;4428:128;4010:552;;;;;:::o;4568:527::-;4638:6;4646;4695:2;4683:9;4674:7;4670:23;4666:32;4663:119;;;4701:79;;:::i;:::-;4663:119;4849:1;4838:9;4834:17;4821:31;4879:18;4871:6;4868:30;4865:117;;;4901:79;;:::i;:::-;4865:117;5014:64;5070:7;5061:6;5050:9;5046:22;5014:64;:::i;:::-;4996:82;;;;4792:296;4568:527;;;;;:::o;5101:126::-;5138:7;5178:42;5171:5;5167:54;5156:65;;5101:126;;;:::o;5233:96::-;5270:7;5299:24;5317:5;5299:24;:::i;:::-;5288:35;;5233:96;;;:::o;5335:118::-;5422:24;5440:5;5422:24;:::i;:::-;5417:3;5410:37;5335:118;;:::o;5459:222::-;5552:4;5590:2;5579:9;5575:18;5567:26;;5603:71;5671:1;5660:9;5656:17;5647:6;5603:71;:::i;:::-;5459:222;;;;:::o;5687:122::-;5760:24;5778:5;5760:24;:::i;:::-;5753:5;5750:35;5740:63;;5799:1;5796;5789:12;5740:63;5687:122;:::o;5815:139::-;5861:5;5899:6;5886:20;5877:29;;5915:33;5942:5;5915:33;:::i;:::-;5815:139;;;;:::o;5960:672::-;6039:6;6047;6055;6104:2;6092:9;6083:7;6079:23;6075:32;6072:119;;;6110:79;;:::i;:::-;6072:119;6230:1;6255:53;6300:7;6291:6;6280:9;6276:22;6255:53;:::i;:::-;6245:63;;6201:117;6385:2;6374:9;6370:18;6357:32;6416:18;6408:6;6405:30;6402:117;;;6438:79;;:::i;:::-;6402:117;6551:64;6607:7;6598:6;6587:9;6583:22;6551:64;:::i;:::-;6533:82;;;;6328:297;5960:672;;;;;:::o;6638:329::-;6697:6;6746:2;6734:9;6725:7;6721:23;6717:32;6714:119;;;6752:79;;:::i;:::-;6714:119;6872:1;6897:53;6942:7;6933:6;6922:9;6918:22;6897:53;:::i;:::-;6887:63;;6843:117;6638:329;;;;:::o;6973:77::-;7010:7;7039:5;7028:16;;6973:77;;;:::o;7056:118::-;7143:24;7161:5;7143:24;:::i;:::-;7138:3;7131:37;7056:118;;:::o;7180:222::-;7273:4;7311:2;7300:9;7296:18;7288:26;;7324:71;7392:1;7381:9;7377:17;7368:6;7324:71;:::i;:::-;7180:222;;;;:::o;7408:180::-;7456:77;7453:1;7446:88;7553:4;7550:1;7543:15;7577:4;7574:1;7567:15;7594:116;7664:21;7679:5;7664:21;:::i;:::-;7657:5;7654:32;7644:60;;7700:1;7697;7690:12;7644:60;7594:116;:::o;7716:133::-;7759:5;7797:6;7784:20;7775:29;;7813:30;7837:5;7813:30;:::i;:::-;7716:133;;;;:::o;7855:323::-;7911:6;7960:2;7948:9;7939:7;7935:23;7931:32;7928:119;;;7966:79;;:::i;:::-;7928:119;8086:1;8111:50;8153:7;8144:6;8133:9;8129:22;8111:50;:::i;:::-;8101:60;;8057:114;7855:323;;;;:::o;8184:104::-;8229:7;8258:24;8276:5;8258:24;:::i;:::-;8247:35;;8184:104;;;:::o;8294:138::-;8375:32;8401:5;8375:32;:::i;:::-;8368:5;8365:43;8355:71;;8422:1;8419;8412:12;8355:71;8294:138;:::o;8438:155::-;8492:5;8530:6;8517:20;8508:29;;8546:41;8581:5;8546:41;:::i;:::-;8438:155;;;;:::o;8599:102::-;8640:6;8691:2;8687:7;8682:2;8675:5;8671:14;8667:28;8657:38;;8599:102;;;:::o;8707:180::-;8755:77;8752:1;8745:88;8852:4;8849:1;8842:15;8876:4;8873:1;8866:15;8893:281;8976:27;8998:4;8976:27;:::i;:::-;8968:6;8964:40;9106:6;9094:10;9091:22;9070:18;9058:10;9055:34;9052:62;9049:88;;;9117:18;;:::i;:::-;9049:88;9157:10;9153:2;9146:22;8936:238;8893:281;;:::o;9180:129::-;9214:6;9241:20;;:::i;:::-;9231:30;;9270:33;9298:4;9290:6;9270:33;:::i;:::-;9180:129;;;:::o;9315:311::-;9392:4;9482:18;9474:6;9471:30;9468:56;;;9504:18;;:::i;:::-;9468:56;9554:4;9546:6;9542:17;9534:25;;9614:4;9608;9604:15;9596:23;;9315:311;;;:::o;9649:710::-;9745:5;9770:81;9786:64;9843:6;9786:64;:::i;:::-;9770:81;:::i;:::-;9761:90;;9871:5;9900:6;9893:5;9886:21;9934:4;9927:5;9923:16;9916:23;;9987:4;9979:6;9975:17;9967:6;9963:30;10016:3;10008:6;10005:15;10002:122;;;10035:79;;:::i;:::-;10002:122;10150:6;10133:220;10167:6;10162:3;10159:15;10133:220;;;10242:3;10271:37;10304:3;10292:10;10271:37;:::i;:::-;10266:3;10259:50;10338:4;10333:3;10329:14;10322:21;;10209:144;10193:4;10188:3;10184:14;10177:21;;10133:220;;;10137:21;9751:608;;9649:710;;;;;:::o;10382:370::-;10453:5;10502:3;10495:4;10487:6;10483:17;10479:27;10469:122;;10510:79;;:::i;:::-;10469:122;10627:6;10614:20;10652:94;10742:3;10734:6;10727:4;10719:6;10715:17;10652:94;:::i;:::-;10643:103;;10459:293;10382:370;;;;:::o;10758:700::-;10859:6;10867;10916:2;10904:9;10895:7;10891:23;10887:32;10884:119;;;10922:79;;:::i;:::-;10884:119;11042:1;11067:61;11120:7;11111:6;11100:9;11096:22;11067:61;:::i;:::-;11057:71;;11013:125;11205:2;11194:9;11190:18;11177:32;11236:18;11228:6;11225:30;11222:117;;;11258:79;;:::i;:::-;11222:117;11363:78;11433:7;11424:6;11413:9;11409:22;11363:78;:::i;:::-;11353:88;;11148:303;10758:700;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setDenied(address[],bool[])":"141973b0","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"denied_\",\"type\":\"bool[]\"}],\"name\":\"setDenied\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization data `(address owner, address[] denyList)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setDenied(address[],bool[])\":{\"details\":\"The length of the `users_` and `denied_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"denied_\":\"The denied status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_denied\":{\"details\":\"An internal mapping of denied statuses\"}},\"title\":\"SimpleDenyList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Construct a new SimpleDenyList\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the initial list of denied addresses\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized (i.e. not denied)\"},\"setDenied(address[],bool[])\":{\"notice\":\"Set the denied status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/SimpleDenyList.sol\":\"SimpleDenyList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/allowlists/SimpleDenyList.sol\":{\"keccak256\":\"0xde3f7b1fac23f2da8624e7acc9430624696de626dd93ccf3a124fa4eccc150b1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dba72774a18536a5de2e8cdcb70c16cd942763703cd8cec1d87a9369f573e979\",\"dweb:/ipfs/QmY2V1vUwPwR1iMKQXZFaxcC9UKG7mXuzkv1wqk8pyut64\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/budgets/Budget.sol":{"Budget":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts_","type":"address[]"},{"internalType":"bool[]","name":"isAuthorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"isAuthorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"params\":{\"data_\":\"The compressed data for the allocation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"disburse(bytes)\":{\"params\":{\"data_\":\"The compressed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The array of compressed {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The compressed data for the reclamation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"True if the reclamation was successful\"}},\"reconcile(bytes)\":{\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"isAuthorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocate assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget\"},\"constructor\":{\"notice\":\"Initialize the budget and set the owner\"},\"disburse(bytes)\":{\"notice\":\"Disburse assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburse assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"Abstract contract for a generic Budget within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/Budget.sol\":\"Budget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/budgets/SimpleBudget.sol":{"SimpleBudget":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_13548":{"entryPoint":null,"id":13548,"parameterSlots":0,"returnSlots":0},"@_13741":{"entryPoint":null,"id":13741,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612d29806101b45f395ff3fe60806040526004361061014e575f3560e01c80638da5cb5b116100b5578063f2fde38b1161006e578063f2fde38b14610493578063f8724aba146104af578063f9a802c3146104eb578063fa4ca9b114610527578063fe9fbb8014610563578063fee81cf41461059f57610155565b80638da5cb5b1461035d578063bc197c8114610387578063d2514e84146103c3578063f04e283e146103ff578063f1c30ec01461041b578063f23a6e611461045757610155565b806354d1f13d1161010757806354d1f13d14610265578063578bcf351461026f5780635aef467a146102ab57806361400c99146102db578063715018a614610317578063774c33ab1461032157610155565b806301ffc9a71461015757806310098ad51461019357806325692962146101cf5780634359d28a146101d9578063439fab9114610201578063451cc1911461022957610155565b3661015557005b005b348015610162575f80fd5b5061017d60048036038101906101789190611eab565b6105db565b60405161018a9190611ef0565b60405180910390f35b34801561019e575f80fd5b506101b960048036038101906101b49190611f63565b610654565b6040516101c69190611fa6565b60405180910390f35b6101d76106bf565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa9190612075565b610710565b005b34801561020c575f80fd5b5061022760048036038101906102229190612148565b61081a565b005b348015610234575f80fd5b5061024f600480360381019061024a9190612148565b61093f565b60405161025c9190611fa6565b60405180910390f35b61026d610946565b005b34801561027a575f80fd5b5061029560048036038101906102909190611f63565b61097f565b6040516102a29190611fa6565b60405180910390f35b6102c560048036038101906102c09190612148565b6109c4565b6040516102d29190611ef0565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc91906121e8565b610d34565b60405161030e9190611ef0565b60405180910390f35b61031f610d98565b005b34801561032c575f80fd5b506103476004803603810190610342919061225d565b610dab565b6040516103549190611fa6565b60405180910390f35b348015610368575f80fd5b50610371610e01565b60405161037e91906122aa565b60405180910390f35b348015610392575f80fd5b506103ad60048036038101906103a89190612318565b610e29565b6040516103ba91906123fe565b60405180910390f35b3480156103ce575f80fd5b506103e960048036038101906103e49190611f63565b610e40565b6040516103f69190611fa6565b60405180910390f35b61041960048036038101906104149190611f63565b610e98565b005b348015610426575f80fd5b50610441600480360381019061043c9190612148565b610ed6565b60405161044e9190611ef0565b60405180910390f35b348015610462575f80fd5b5061047d60048036038101906104789190612417565b6110bc565b60405161048a91906123fe565b60405180910390f35b6104ad60048036038101906104a89190611f63565b6110d1565b005b3480156104ba575f80fd5b506104d560048036038101906104d0919061225d565b6110fa565b6040516104e29190611fa6565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c919061225d565b61117c565b60405161051e9190611fa6565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190612148565b611255565b60405161055a9190611ef0565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190611f63565b611501565b6040516105969190611ef0565b60405180910390f35b3480156105aa575f80fd5b506105c560048036038101906105c09190611f63565b611590565b6040516105d29190611fa6565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061064d575061064c826115a9565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146106b6576106b1308373ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b6106b8565b475b9050919050565b5f6106c8611655565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071861165f565b818190508484905014610757576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561081357828282818110610777576107766124ad565b5b905060200201602081019061078c9190612504565b60025f8787858181106107a2576107a16124ad565b5b90506020020160208101906107b79190611f63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610759565b5050505050565b5f610823611696565b905080546003825580156108555760018160011c14303b1061084c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061086691906126e8565b9050610874815f01516116bf565b5f5b81602001515181101561090357600160025f8460200151848151811061089f5761089e6124ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610876565b5050801561093a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109d59190612893565b90505f60028111156109ea576109e96128da565b5b815f01516002811115610a00576109ff6128da565b5b03610a76575f8160600151806020019051810190610a1e9190612954565b9050805f01513414610a70578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a6792919061297f565b60405180910390fd5b50610d28565b60016002811115610a8a57610a896128da565b5b815f01516002811115610aa057610a9f6128da565b5b03610b7b575f8160600151806020019051810190610abe9190612954565b9050610af8826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16611795909392919063ffffffff16565b805f0151610b2930846020015173ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b1015610b75578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b6c92919061297f565b60405180910390fd5b50610d27565b600280811115610b8e57610b8d6128da565b5b815f01516002811115610ba457610ba36128da565b5b03610d1d575f8160600151806020019051810190610bc29190612a9f565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b8152600401610c18959493929190612b38565b5f604051808303815f87803b158015610c2f575f80fd5b505af1158015610c41573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401610c8b92919061297f565b602060405180830381865afa158015610ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cca9190612b90565b1015610d1757816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610d0e92919061297f565b60405180910390fd5b50610d26565b5f915050610d2e565b5b5b60019150505b92915050565b5f805f90505b83839050811015610d8c57610d72848483818110610d5b57610d5a6124ad565b5b9050602002810190610d6d9190612bc7565b611255565b610d7f575f915050610d92565b8080600101915050610d3a565b50600190505b92915050565b610da061165f565b610da95f6117ef565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f63bc197c8160e01b905098975050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e8783610654565b610e919190612c56565b9050919050565b610ea061165f565b63389a75e1600c52805f526020600c208054421115610ec657636f5e88185f526004601cfd5b5f815550610ed3816117ef565b50565b5f610edf61165f565b5f8383810190610eef9190612893565b90505f6002811115610f0457610f036128da565b5b815f01516002811115610f1a57610f196128da565b5b1480610f4d575060016002811115610f3557610f346128da565b5b815f01516002811115610f4b57610f4a6128da565b5b145b15610fa6575f8160600151806020019051810190610f6b9190612954565b9050610fa0826020015183604001515f845f015114610f8d57835f0151610f9b565b610f9a8560200151610654565b5b6118b5565b506110b0565b600280811115610fb957610fb86128da565b5b815f01516002811115610fcf57610fce6128da565b5b036110a6575f8160600151806020019051810190610fed9190612a9f565b90506110a082602001518360400151835f01515f856020015114611015578460200151611096565b856020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b815260040161105692919061297f565b602060405180830381865afa158015611071573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110959190612b90565b5b8560400151611acd565b506110af565b5f9150506110b6565b5b60019150505b92915050565b5f63f23a6e6160e01b90509695505050505050565b6110d961165f565b8060601b6110ee57637448fbae5f526004601cfd5b6110f7816117ef565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b815260040161113592919061297f565b602060405180830381865afa158015611150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111749190612b90565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161120492919061297f565b602060405180830381865afa15801561121f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112439190612b90565b61124d9190612c56565b905092915050565b5f61125f33611501565b611295576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906112a59190612893565b9050600160028111156112bb576112ba6128da565b5b815f015160028111156112d1576112d06128da565b5b148061130357505f60028111156112eb576112ea6128da565b5b815f01516002811115611301576113006128da565b5b145b156113a3575f81606001518060200190518101906113219190612954565b90505f6113318360200151610654565b905080825f0151111561138657826020015181835f01516040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161137d93929190612c89565b60405180910390fd5b61139c83602001518460400151845f01516118b5565b50506114f5565b6002808111156113b6576113b56128da565b5b815f015160028111156113cc576113cb6128da565b5b036114eb575f81606001518060200190518101906113ea9190612a9f565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b815260040161142e92919061297f565b602060405180830381865afa158015611449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146d9190612b90565b905080826020015111156114c45782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016114bb93929190612c89565b60405180910390fd5b6114e483602001518460400151845f015185602001518660400151611acd565b50506114f4565b5f9150506114fb565b5b60019150505b92915050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611589575061155a610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061161b575061161a82611cf9565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611694576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6116c7611d72565b1561173f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561170157630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611792565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f511417166117e057637939f4245f526004601cfd5b5f606052806040525050505050565b6117f7611d72565b1561185c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506118b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd2126854036118d35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611953578282826040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161194a93929190612cbe565b60405180910390fd5b61195c83610654565b8111156119ac578261196d84610654565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016119a393929190612c89565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119f79190612c56565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a4057611a3b8282611d76565b611a6c565b611a6b82828573ffffffffffffffffffffffffffffffffffffffff16611d939092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051611ab492919061297f565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403611aeb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b6b578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611b6293929190612cbe565b60405180910390fd5b611b7585846110fa565b821115611bc65784611b8786856110fa565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611bbd93929190612c89565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254611c219190612c56565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401611c69959493929190612b38565b5f604051808303815f87803b158015611c80575f80fd5b505af1158015611c92573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051611cde92919061297f565b60405180910390a23868929eee149b4bd21268555050505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d6b5750611d6a82611ddc565b5b9050919050565b5f90565b5f385f3884865af1611d8f5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611dd3576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611e8a81611e56565b8114611e94575f80fd5b50565b5f81359050611ea581611e81565b92915050565b5f60208284031215611ec057611ebf611e4e565b5b5f611ecd84828501611e97565b91505092915050565b5f8115159050919050565b611eea81611ed6565b82525050565b5f602082019050611f035f830184611ee1565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f3282611f09565b9050919050565b611f4281611f28565b8114611f4c575f80fd5b50565b5f81359050611f5d81611f39565b92915050565b5f60208284031215611f7857611f77611e4e565b5b5f611f8584828501611f4f565b91505092915050565b5f819050919050565b611fa081611f8e565b82525050565b5f602082019050611fb95f830184611f97565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611fe057611fdf611fbf565b5b8235905067ffffffffffffffff811115611ffd57611ffc611fc3565b5b60208301915083602082028301111561201957612018611fc7565b5b9250929050565b5f8083601f84011261203557612034611fbf565b5b8235905067ffffffffffffffff81111561205257612051611fc3565b5b60208301915083602082028301111561206e5761206d611fc7565b5b9250929050565b5f805f806040858703121561208d5761208c611e4e565b5b5f85013567ffffffffffffffff8111156120aa576120a9611e52565b5b6120b687828801611fcb565b9450945050602085013567ffffffffffffffff8111156120d9576120d8611e52565b5b6120e587828801612020565b925092505092959194509250565b5f8083601f84011261210857612107611fbf565b5b8235905067ffffffffffffffff81111561212557612124611fc3565b5b60208301915083600182028301111561214157612140611fc7565b5b9250929050565b5f806020838503121561215e5761215d611e4e565b5b5f83013567ffffffffffffffff81111561217b5761217a611e52565b5b612187858286016120f3565b92509250509250929050565b5f8083601f8401126121a8576121a7611fbf565b5b8235905067ffffffffffffffff8111156121c5576121c4611fc3565b5b6020830191508360208202830111156121e1576121e0611fc7565b5b9250929050565b5f80602083850312156121fe576121fd611e4e565b5b5f83013567ffffffffffffffff81111561221b5761221a611e52565b5b61222785828601612193565b92509250509250929050565b61223c81611f8e565b8114612246575f80fd5b50565b5f8135905061225781612233565b92915050565b5f806040838503121561227357612272611e4e565b5b5f61228085828601611f4f565b925050602061229185828601612249565b9150509250929050565b6122a481611f28565b82525050565b5f6020820190506122bd5f83018461229b565b92915050565b5f8083601f8401126122d8576122d7611fbf565b5b8235905067ffffffffffffffff8111156122f5576122f4611fc3565b5b60208301915083602082028301111561231157612310611fc7565b5b9250929050565b5f805f805f805f8060a0898b03121561233457612333611e4e565b5b5f6123418b828c01611f4f565b98505060206123528b828c01611f4f565b975050604089013567ffffffffffffffff81111561237357612372611e52565b5b61237f8b828c016122c3565b9650965050606089013567ffffffffffffffff8111156123a2576123a1611e52565b5b6123ae8b828c016122c3565b9450945050608089013567ffffffffffffffff8111156123d1576123d0611e52565b5b6123dd8b828c016120f3565b92509250509295985092959890939650565b6123f881611e56565b82525050565b5f6020820190506124115f8301846123ef565b92915050565b5f805f805f8060a0878903121561243157612430611e4e565b5b5f61243e89828a01611f4f565b965050602061244f89828a01611f4f565b955050604061246089828a01612249565b945050606061247189828a01612249565b935050608087013567ffffffffffffffff81111561249257612491611e52565b5b61249e89828a016120f3565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6124e381611ed6565b81146124ed575f80fd5b50565b5f813590506124fe816124da565b92915050565b5f6020828403121561251957612518611e4e565b5b5f612526848285016124f0565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61257982612533565b810181811067ffffffffffffffff8211171561259857612597612543565b5b80604052505050565b5f6125aa611e45565b90506125b68282612570565b919050565b5f80fd5b5f67ffffffffffffffff8211156125d9576125d8612543565b5b602082029050602081019050919050565b5f6125fc6125f7846125bf565b6125a1565b9050808382526020820190506020840283018581111561261f5761261e611fc7565b5b835b8181101561264857806126348882611f4f565b845260208401935050602081019050612621565b5050509392505050565b5f82601f83011261266657612665611fbf565b5b81356126768482602086016125ea565b91505092915050565b5f604082840312156126945761269361252f565b5b61269e60406125a1565b90505f6126ad84828501611f4f565b5f83015250602082013567ffffffffffffffff8111156126d0576126cf6125bb565b5b6126dc84828501612652565b60208301525092915050565b5f602082840312156126fd576126fc611e4e565b5b5f82013567ffffffffffffffff81111561271a57612719611e52565b5b6127268482850161267f565b91505092915050565b6003811061273b575f80fd5b50565b5f8135905061274c8161272f565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127705761276f612543565b5b61277982612533565b9050602081019050919050565b828183375f83830152505050565b5f6127a66127a184612756565b6125a1565b9050828152602081018484840111156127c2576127c1612752565b5b6127cd848285612786565b509392505050565b5f82601f8301126127e9576127e8611fbf565b5b81356127f9848260208601612794565b91505092915050565b5f608082840312156128175761281661252f565b5b61282160806125a1565b90505f6128308482850161273e565b5f83015250602061284384828501611f4f565b602083015250604061285784828501611f4f565b604083015250606082013567ffffffffffffffff81111561287b5761287a6125bb565b5b612887848285016127d5565b60608301525092915050565b5f602082840312156128a8576128a7611e4e565b5b5f82013567ffffffffffffffff8111156128c5576128c4611e52565b5b6128d184828501612802565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f8151905061291581612233565b92915050565b5f602082840312156129305761292f61252f565b5b61293a60206125a1565b90505f61294984828501612907565b5f8301525092915050565b5f6020828403121561296957612968611e4e565b5b5f6129768482850161291b565b91505092915050565b5f6040820190506129925f83018561229b565b61299f6020830184611f97565b9392505050565b8281835e5f83830152505050565b5f6129c66129c184612756565b6125a1565b9050828152602081018484840111156129e2576129e1612752565b5b6129ed8482856129a6565b509392505050565b5f82601f830112612a0957612a08611fbf565b5b8151612a198482602086016129b4565b91505092915050565b5f60608284031215612a3757612a3661252f565b5b612a4160606125a1565b90505f612a5084828501612907565b5f830152506020612a6384828501612907565b602083015250604082015167ffffffffffffffff811115612a8757612a866125bb565b5b612a93848285016129f5565b60408301525092915050565b5f60208284031215612ab457612ab3611e4e565b5b5f82015167ffffffffffffffff811115612ad157612ad0611e52565b5b612add84828501612a22565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612b0a82612ae6565b612b148185612af0565b9350612b248185602086016129a6565b612b2d81612533565b840191505092915050565b5f60a082019050612b4b5f83018861229b565b612b58602083018761229b565b612b656040830186611f97565b612b726060830185611f97565b8181036080830152612b848184612b00565b90509695505050505050565b5f60208284031215612ba557612ba4611e4e565b5b5f612bb284828501612907565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112612be357612be2612bbb565b5b80840192508235915067ffffffffffffffff821115612c0557612c04612bbf565b5b602083019250600182023603831315612c2157612c20612bc3565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c6082611f8e565b9150612c6b83611f8e565b9250828201905080821115612c8357612c82612c29565b5b92915050565b5f606082019050612c9c5f83018661229b565b612ca96020830185611f97565b612cb66040830184611f97565b949350505050565b5f606082019050612cd15f83018661229b565b612cde602083018561229b565b612ceb6040830184611f97565b94935050505056fea2646970667358221220f53b1ed2d8251930b4f97c8116e40d29f46a036a8c5f4fe3d9369cd70e1203db64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2D29 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xF8724ABA EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0xF9A802C3 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x563 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x59F JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3C3 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x457 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x61400C99 EQ PUSH2 0x2DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x774C33AB EQ PUSH2 0x321 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1CF JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x229 JUMPI PUSH2 0x155 JUMP JUMPDEST CALLDATASIZE PUSH2 0x155 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x6BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2075 JUMP JUMPDEST PUSH2 0x710 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x93F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25C SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26D PUSH2 0x946 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C0 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x9C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D2 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x301 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xD34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH2 0xD98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x347 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0xDAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xE01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x22AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x2318 JUMP JUMPDEST PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BA SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x441 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x462 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x478 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A8 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x10FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x511 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50C SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x117C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x54D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x548 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x589 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x584 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C0 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1590 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x64D JUMPI POP PUSH2 0x64C DUP3 PUSH2 0x15A9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6B6 JUMPI PUSH2 0x6B1 ADDRESS DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C8 PUSH2 0x1655 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x718 PUSH2 0x165F JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x757 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x813 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x777 JUMPI PUSH2 0x776 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x78C SWAP2 SWAP1 PUSH2 0x2504 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x7A2 JUMPI PUSH2 0x7A1 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7B7 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x759 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x823 PUSH2 0x1696 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x855 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x84C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x26E8 JUMP JUMPDEST SWAP1 POP PUSH2 0x874 DUP2 PUSH0 ADD MLOAD PUSH2 0x16BF JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x903 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x89F JUMPI PUSH2 0x89E PUSH2 0x24AD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x876 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9D5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x9EA JUMPI PUSH2 0x9E9 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA00 JUMPI PUSH2 0x9FF PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA76 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA1E SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA70 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA67 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH2 0xA89 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA0 JUMPI PUSH2 0xA9F PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB7B JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xAF8 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1795 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB29 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB75 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6C SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD27 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xB8E JUMPI PUSH2 0xB8D PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xD1D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC2 SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A DUP4 PUSH1 0x40 ADD MLOAD ADDRESS DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC18 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC8B SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCA6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCA SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST LT ISZERO PUSH2 0xD17 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD26 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xD2E JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xD8C JUMPI PUSH2 0xD72 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD6D SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH2 0xD7F JUMPI PUSH0 SWAP2 POP POP PUSH2 0xD92 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xD3A JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDA0 PUSH2 0x165F JUMP JUMPDEST PUSH2 0xDA9 PUSH0 PUSH2 0x17EF JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xE87 DUP4 PUSH2 0x654 JUMP JUMPDEST PUSH2 0xE91 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA0 PUSH2 0x165F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xEC6 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xED3 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEDF PUSH2 0x165F JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEEF SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF04 JUMPI PUSH2 0xF03 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF1A JUMPI PUSH2 0xF19 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF4D JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF4B JUMPI PUSH2 0xF4A PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xFA6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xFA0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xF8D JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xF9B JUMP JUMPDEST PUSH2 0xF9A DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST JUMPDEST PUSH2 0x18B5 JUMP JUMPDEST POP PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xFB9 JUMPI PUSH2 0xFB8 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFCF JUMPI PUSH2 0xFCE PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10A6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFED SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH2 0x10A0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH0 DUP6 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1015 JUMPI DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1096 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP8 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1056 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1071 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1095 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST JUMPDEST DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP PUSH2 0x10AF JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x10B6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x165F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x10EE JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x10F7 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1135 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1150 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1174 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1204 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x121F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST PUSH2 0x124D SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x125F CALLER PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x1295 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x12A5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12D1 JUMPI PUSH2 0x12D0 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1303 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12EB JUMPI PUSH2 0x12EA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH2 0x1300 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x13A3 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1331 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH0 ADD MLOAD GT ISZERO PUSH2 0x1386 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x137D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x139C DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD PUSH2 0x18B5 JUMP JUMPDEST POP POP PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x13B6 JUMPI PUSH2 0x13B5 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x14EB JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x13EA SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x142E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1449 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x146D SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x14C4 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14E4 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP POP PUSH2 0x14F4 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x14FB JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1589 JUMPI POP PUSH2 0x155A PUSH2 0xE01 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x161B JUMPI POP PUSH2 0x161A DUP3 PUSH2 0x1CF9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1694 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x16C7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x173F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1701 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1792 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x17E0 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x185C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x18B2 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x18D3 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1953 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x194A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x195C DUP4 PUSH2 0x654 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x19AC JUMPI DUP3 PUSH2 0x196D DUP5 PUSH2 0x654 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x19F7 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A40 JUMPI PUSH2 0x1A3B DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1A6B DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D93 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1AB4 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1AEB JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B6B JUMPI DUP5 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B62 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B75 DUP6 DUP5 PUSH2 0x10FA JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1BC6 JUMPI DUP5 PUSH2 0x1B87 DUP7 DUP6 PUSH2 0x10FA JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BBD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1C21 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C69 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C80 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C92 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1CDE SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1D6B JUMPI POP PUSH2 0x1D6A DUP3 PUSH2 0x1DDC JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1D8F JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1DD3 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8A DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EA5 DUP2 PUSH2 0x1E81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EC0 JUMPI PUSH2 0x1EBF PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1ECD DUP5 DUP3 DUP6 ADD PUSH2 0x1E97 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEA DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F03 PUSH0 DUP4 ADD DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F32 DUP3 PUSH2 0x1F09 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F42 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F5D DUP2 PUSH2 0x1F39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F78 JUMPI PUSH2 0x1F77 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F85 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FA0 DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FB9 PUSH0 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1FE0 JUMPI PUSH2 0x1FDF PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2019 JUMPI PUSH2 0x2018 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2035 JUMPI PUSH2 0x2034 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH2 0x2051 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x206E JUMPI PUSH2 0x206D PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x208D JUMPI PUSH2 0x208C PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20AA JUMPI PUSH2 0x20A9 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20B6 DUP8 DUP3 DUP9 ADD PUSH2 0x1FCB JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20D9 JUMPI PUSH2 0x20D8 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20E5 DUP8 DUP3 DUP9 ADD PUSH2 0x2020 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2108 JUMPI PUSH2 0x2107 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2125 JUMPI PUSH2 0x2124 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2141 JUMPI PUSH2 0x2140 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x215E JUMPI PUSH2 0x215D PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217B JUMPI PUSH2 0x217A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2187 DUP6 DUP3 DUP7 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x21A8 JUMPI PUSH2 0x21A7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21C5 JUMPI PUSH2 0x21C4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x21E1 JUMPI PUSH2 0x21E0 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21FE JUMPI PUSH2 0x21FD PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x221B JUMPI PUSH2 0x221A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2227 DUP6 DUP3 DUP7 ADD PUSH2 0x2193 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x223C DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP2 EQ PUSH2 0x2246 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2257 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2273 JUMPI PUSH2 0x2272 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2280 DUP6 DUP3 DUP7 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2291 DUP6 DUP3 DUP7 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x22A4 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22BD PUSH0 DUP4 ADD DUP5 PUSH2 0x229B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x22D8 JUMPI PUSH2 0x22D7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22F5 JUMPI PUSH2 0x22F4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2311 JUMPI PUSH2 0x2310 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2334 JUMPI PUSH2 0x2333 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2341 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x2352 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2373 JUMPI PUSH2 0x2372 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x237F DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23A2 JUMPI PUSH2 0x23A1 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23AE DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23D1 JUMPI PUSH2 0x23D0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23DD DUP12 DUP3 DUP13 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x23F8 DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2411 PUSH0 DUP4 ADD DUP5 PUSH2 0x23EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2431 JUMPI PUSH2 0x2430 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x243E DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x244F DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2460 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2471 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2492 JUMPI PUSH2 0x2491 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x249E DUP10 DUP3 DUP11 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x24E3 DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP2 EQ PUSH2 0x24ED JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24FE DUP2 PUSH2 0x24DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2526 DUP5 DUP3 DUP6 ADD PUSH2 0x24F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2579 DUP3 PUSH2 0x2533 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2598 JUMPI PUSH2 0x2597 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25AA PUSH2 0x1E45 JUMP JUMPDEST SWAP1 POP PUSH2 0x25B6 DUP3 DUP3 PUSH2 0x2570 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25D9 JUMPI PUSH2 0x25D8 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x25FC PUSH2 0x25F7 DUP5 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x25A1 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 0x261F JUMPI PUSH2 0x261E PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2648 JUMPI DUP1 PUSH2 0x2634 DUP9 DUP3 PUSH2 0x1F4F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2621 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2666 JUMPI PUSH2 0x2665 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2676 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x269E PUSH1 0x40 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x26AD DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26D0 JUMPI PUSH2 0x26CF PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x26DC DUP5 DUP3 DUP6 ADD PUSH2 0x2652 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26FD JUMPI PUSH2 0x26FC PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271A JUMPI PUSH2 0x2719 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2726 DUP5 DUP3 DUP6 ADD PUSH2 0x267F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x273B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x274C DUP2 PUSH2 0x272F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2770 JUMPI PUSH2 0x276F PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH2 0x2779 DUP3 PUSH2 0x2533 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x27A6 PUSH2 0x27A1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27C2 JUMPI PUSH2 0x27C1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x27CD DUP5 DUP3 DUP6 PUSH2 0x2786 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27E9 JUMPI PUSH2 0x27E8 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27F9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2794 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2817 JUMPI PUSH2 0x2816 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2821 PUSH1 0x80 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2830 DUP5 DUP3 DUP6 ADD PUSH2 0x273E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2843 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2857 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2887 DUP5 DUP3 DUP6 ADD PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A8 JUMPI PUSH2 0x28A7 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x28D1 DUP5 DUP3 DUP6 ADD PUSH2 0x2802 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2915 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2930 JUMPI PUSH2 0x292F PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x293A PUSH1 0x20 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2949 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2969 JUMPI PUSH2 0x2968 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2976 DUP5 DUP3 DUP6 ADD PUSH2 0x291B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2992 PUSH0 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x299F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x29C6 PUSH2 0x29C1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x29E2 JUMPI PUSH2 0x29E1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x29ED DUP5 DUP3 DUP6 PUSH2 0x29A6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A09 JUMPI PUSH2 0x2A08 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2A19 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x29B4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A37 JUMPI PUSH2 0x2A36 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2A41 PUSH1 0x60 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A50 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2A63 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A87 JUMPI PUSH2 0x2A86 PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2A93 DUP5 DUP3 DUP6 ADD PUSH2 0x29F5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB4 JUMPI PUSH2 0x2AB3 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD1 JUMPI PUSH2 0x2AD0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADD DUP5 DUP3 DUP6 ADD PUSH2 0x2A22 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2B0A DUP3 PUSH2 0x2AE6 JUMP JUMPDEST PUSH2 0x2B14 DUP2 DUP6 PUSH2 0x2AF0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2B24 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x29A6 JUMP JUMPDEST PUSH2 0x2B2D DUP2 PUSH2 0x2533 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2B4B PUSH0 DUP4 ADD DUP9 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B58 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B65 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2B72 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B84 DUP2 DUP5 PUSH2 0x2B00 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BA5 JUMPI PUSH2 0x2BA4 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2BB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2BE3 JUMPI PUSH2 0x2BE2 PUSH2 0x2BBB JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C05 JUMPI PUSH2 0x2C04 PUSH2 0x2BBF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x2C21 JUMPI PUSH2 0x2C20 PUSH2 0x2BC3 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2C60 DUP3 PUSH2 0x1F8E JUMP JUMPDEST SWAP2 POP PUSH2 0x2C6B DUP4 PUSH2 0x1F8E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C83 JUMPI PUSH2 0x2C82 PUSH2 0x2C29 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2C9C PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CA9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2CB6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2CD1 PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CDE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CEB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 EXTCODESIZE 0x1E 0xD2 0xD8 0x25 NOT ADDRESS 0xB4 0xF9 PUSH29 0x8116E40D29F46A036A8C5F4FE3D9369CD70E1203DB64736F6C63430008 NOT STOP CALLER ","sourceMap":"769:13709:38:-:0;;;1884:53;;;;;;;;;;2803:28:37;2820:10;2803:16;;;:28;;:::i;:::-;1908:22:38;:20;;;:22;;:::i;:::-;769:13709;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;769:13709:38:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_13661":{"entryPoint":null,"id":13661,"parameterSlots":0,"returnSlots":0},"@_13668":{"entryPoint":null,"id":13668,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":5727,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":7538,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":5782,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":5823,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":5717,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":6127,"id":6316,"parameterSlots":1,"returnSlots":0},"@_transferERC1155_14609":{"entryPoint":6861,"id":14609,"parameterSlots":5,"returnSlots":0},"@_transferFungible_14535":{"entryPoint":6325,"id":14535,"parameterSlots":3,"returnSlots":0},"@allocate_13960":{"entryPoint":2500,"id":13960,"parameterSlots":2,"returnSlots":1},"@available_14394":{"entryPoint":1620,"id":14394,"parameterSlots":1,"returnSlots":1},"@available_14416":{"entryPoint":4346,"id":14416,"parameterSlots":2,"returnSlots":1},"@balanceOf_11267":{"entryPoint":5666,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2374,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3736,"id":6396,"parameterSlots":1,"returnSlots":0},"@disburseBatch_14253":{"entryPoint":3380,"id":14253,"parameterSlots":2,"returnSlots":1},"@disburse_14218":{"entryPoint":4693,"id":14218,"parameterSlots":2,"returnSlots":1},"@distributed_14430":{"entryPoint":2431,"id":14430,"parameterSlots":1,"returnSlots":1},"@distributed_14447":{"entryPoint":3499,"id":14447,"parameterSlots":2,"returnSlots":1},"@initialize_13789":{"entryPoint":2074,"id":13789,"parameterSlots":2,"returnSlots":0},"@isAuthorized_14318":{"entryPoint":5377,"id":14318,"parameterSlots":1,"returnSlots":1},"@onERC1155BatchReceived_14655":{"entryPoint":3625,"id":14655,"parameterSlots":8,"returnSlots":1},"@onERC1155Received_14631":{"entryPoint":4284,"id":14631,"parameterSlots":6,"returnSlots":1},"@owner_6404":{"entryPoint":3585,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":5520,"id":6414,"parameterSlots":1,"returnSlots":1},"@reclaim_14077":{"entryPoint":3798,"id":14077,"parameterSlots":2,"returnSlots":1},"@reconcile_14459":{"entryPoint":2367,"id":14459,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":3480,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1727,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11089":{"entryPoint":7542,"id":11089,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_11177":{"entryPoint":6037,"id":11177,"parameterSlots":4,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":7571,"id":11219,"parameterSlots":3,"returnSlots":0},"@setAuthorized_14299":{"entryPoint":1808,"id":14299,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13636":{"entryPoint":5545,"id":13636,"parameterSlots":1,"returnSlots":1},"@supportsInterface_14679":{"entryPoint":1499,"id":14679,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":7417,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":7644,"id":2844,"parameterSlots":1,"returnSlots":1},"@total_14336":{"entryPoint":3648,"id":14336,"parameterSlots":1,"returnSlots":1},"@total_14364":{"entryPoint":4476,"id":14364,"parameterSlots":2,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":4305,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":9706,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":10132,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":10676,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":8015,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":8139,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":9810,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":8224,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":8595,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":8899,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":9456,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":7831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":8435,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":10197,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":10741,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_AssetType_$13471":{"entryPoint":10046,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory":{"entryPoint":10786,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":10523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$13702_memory_ptr":{"entryPoint":9855,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":8777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":10503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8035,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":8984,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr":{"entryPoint":9239,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":8797,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":8309,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":8680,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":9476,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":7851,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":8520,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory":{"entryPoint":10911,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":10580,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$13702_memory_ptr":{"entryPoint":9960,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":10387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":11152,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":8859,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":7905,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":9199,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":11008,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":8087,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":8874,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":11454,"id":null,"parameterSlots":4,"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":11064,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":10623,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":11401,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":7920,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":9214,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":8102,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":11207,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":9633,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":7749,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":9663,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":10070,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":10982,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":10992,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11350,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":7976,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":7894,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":7766,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":7945,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":8078,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":10118,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":10662,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":9584,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":11305,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":10458,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9389,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9539,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":8131,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":8127,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":11199,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":9519,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":11195,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":9659,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":8135,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":11203,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":10066,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":7762,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":7758,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":9523,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":7993,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":9434,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":7809,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_AssetType_$13471":{"entryPoint":10031,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8755,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:28454:53","nodeType":"YulBlock","src":"0:28454:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:81:53","nodeType":"YulBlock","src":"1563:81:53","statements":[{"nativeSrc":"1573:65:53","nodeType":"YulAssignment","src":"1573:65:53","value":{"arguments":[{"name":"value","nativeSrc":"1588:5:53","nodeType":"YulIdentifier","src":"1588:5:53"},{"kind":"number","nativeSrc":"1595:42:53","nodeType":"YulLiteral","src":"1595:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1584:3:53","nodeType":"YulIdentifier","src":"1584:3:53"},"nativeSrc":"1584:54:53","nodeType":"YulFunctionCall","src":"1584:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1518:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:126:53"},{"body":{"nativeSrc":"1695:51:53","nodeType":"YulBlock","src":"1695:51:53","statements":[{"nativeSrc":"1705:35:53","nodeType":"YulAssignment","src":"1705:35:53","value":{"arguments":[{"name":"value","nativeSrc":"1734:5:53","nodeType":"YulIdentifier","src":"1734:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1716:17:53","nodeType":"YulIdentifier","src":"1716:17:53"},"nativeSrc":"1716:24:53","nodeType":"YulFunctionCall","src":"1716:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1705:7:53","nodeType":"YulIdentifier","src":"1705:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"1650:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1677:5:53","nodeType":"YulTypedName","src":"1677:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1687:7:53","nodeType":"YulTypedName","src":"1687:7:53","type":""}],"src":"1650:96:53"},{"body":{"nativeSrc":"1795:79:53","nodeType":"YulBlock","src":"1795:79:53","statements":[{"body":{"nativeSrc":"1852:16:53","nodeType":"YulBlock","src":"1852:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1861:1:53","nodeType":"YulLiteral","src":"1861:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1864:1:53","nodeType":"YulLiteral","src":"1864:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1854:6:53","nodeType":"YulIdentifier","src":"1854:6:53"},"nativeSrc":"1854:12:53","nodeType":"YulFunctionCall","src":"1854:12:53"},"nativeSrc":"1854:12:53","nodeType":"YulExpressionStatement","src":"1854:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1818:5:53","nodeType":"YulIdentifier","src":"1818:5:53"},{"arguments":[{"name":"value","nativeSrc":"1843:5:53","nodeType":"YulIdentifier","src":"1843:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1825:17:53","nodeType":"YulIdentifier","src":"1825:17:53"},"nativeSrc":"1825:24:53","nodeType":"YulFunctionCall","src":"1825:24:53"}],"functionName":{"name":"eq","nativeSrc":"1815:2:53","nodeType":"YulIdentifier","src":"1815:2:53"},"nativeSrc":"1815:35:53","nodeType":"YulFunctionCall","src":"1815:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1808:6:53","nodeType":"YulIdentifier","src":"1808:6:53"},"nativeSrc":"1808:43:53","nodeType":"YulFunctionCall","src":"1808:43:53"},"nativeSrc":"1805:63:53","nodeType":"YulIf","src":"1805:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"1752:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1788:5:53","nodeType":"YulTypedName","src":"1788:5:53","type":""}],"src":"1752:122:53"},{"body":{"nativeSrc":"1932:87:53","nodeType":"YulBlock","src":"1932:87:53","statements":[{"nativeSrc":"1942:29:53","nodeType":"YulAssignment","src":"1942:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1964:6:53","nodeType":"YulIdentifier","src":"1964:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1951:12:53","nodeType":"YulIdentifier","src":"1951:12:53"},"nativeSrc":"1951:20:53","nodeType":"YulFunctionCall","src":"1951:20:53"},"variableNames":[{"name":"value","nativeSrc":"1942:5:53","nodeType":"YulIdentifier","src":"1942:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2007:5:53","nodeType":"YulIdentifier","src":"2007:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1980:26:53","nodeType":"YulIdentifier","src":"1980:26:53"},"nativeSrc":"1980:33:53","nodeType":"YulFunctionCall","src":"1980:33:53"},"nativeSrc":"1980:33:53","nodeType":"YulExpressionStatement","src":"1980:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"1880:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1910:6:53","nodeType":"YulTypedName","src":"1910:6:53","type":""},{"name":"end","nativeSrc":"1918:3:53","nodeType":"YulTypedName","src":"1918:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1926:5:53","nodeType":"YulTypedName","src":"1926:5:53","type":""}],"src":"1880:139:53"},{"body":{"nativeSrc":"2091:263:53","nodeType":"YulBlock","src":"2091:263:53","statements":[{"body":{"nativeSrc":"2137:83:53","nodeType":"YulBlock","src":"2137:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2139:77:53","nodeType":"YulIdentifier","src":"2139:77:53"},"nativeSrc":"2139:79:53","nodeType":"YulFunctionCall","src":"2139:79:53"},"nativeSrc":"2139:79:53","nodeType":"YulExpressionStatement","src":"2139:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2112:7:53","nodeType":"YulIdentifier","src":"2112:7:53"},{"name":"headStart","nativeSrc":"2121:9:53","nodeType":"YulIdentifier","src":"2121:9:53"}],"functionName":{"name":"sub","nativeSrc":"2108:3:53","nodeType":"YulIdentifier","src":"2108:3:53"},"nativeSrc":"2108:23:53","nodeType":"YulFunctionCall","src":"2108:23:53"},{"kind":"number","nativeSrc":"2133:2:53","nodeType":"YulLiteral","src":"2133:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2104:3:53","nodeType":"YulIdentifier","src":"2104:3:53"},"nativeSrc":"2104:32:53","nodeType":"YulFunctionCall","src":"2104:32:53"},"nativeSrc":"2101:119:53","nodeType":"YulIf","src":"2101:119:53"},{"nativeSrc":"2230:117:53","nodeType":"YulBlock","src":"2230:117:53","statements":[{"nativeSrc":"2245:15:53","nodeType":"YulVariableDeclaration","src":"2245:15:53","value":{"kind":"number","nativeSrc":"2259:1:53","nodeType":"YulLiteral","src":"2259:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2249:6:53","nodeType":"YulTypedName","src":"2249:6:53","type":""}]},{"nativeSrc":"2274:63:53","nodeType":"YulAssignment","src":"2274:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2309:9:53","nodeType":"YulIdentifier","src":"2309:9:53"},{"name":"offset","nativeSrc":"2320:6:53","nodeType":"YulIdentifier","src":"2320:6:53"}],"functionName":{"name":"add","nativeSrc":"2305:3:53","nodeType":"YulIdentifier","src":"2305:3:53"},"nativeSrc":"2305:22:53","nodeType":"YulFunctionCall","src":"2305:22:53"},{"name":"dataEnd","nativeSrc":"2329:7:53","nodeType":"YulIdentifier","src":"2329:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2284:20:53","nodeType":"YulIdentifier","src":"2284:20:53"},"nativeSrc":"2284:53:53","nodeType":"YulFunctionCall","src":"2284:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2274:6:53","nodeType":"YulIdentifier","src":"2274:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2025:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2061:9:53","nodeType":"YulTypedName","src":"2061:9:53","type":""},{"name":"dataEnd","nativeSrc":"2072:7:53","nodeType":"YulTypedName","src":"2072:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2084:6:53","nodeType":"YulTypedName","src":"2084:6:53","type":""}],"src":"2025:329:53"},{"body":{"nativeSrc":"2405:32:53","nodeType":"YulBlock","src":"2405:32:53","statements":[{"nativeSrc":"2415:16:53","nodeType":"YulAssignment","src":"2415:16:53","value":{"name":"value","nativeSrc":"2426:5:53","nodeType":"YulIdentifier","src":"2426:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2415:7:53","nodeType":"YulIdentifier","src":"2415:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2360:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2387:5:53","nodeType":"YulTypedName","src":"2387:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2397:7:53","nodeType":"YulTypedName","src":"2397:7:53","type":""}],"src":"2360:77:53"},{"body":{"nativeSrc":"2508:53:53","nodeType":"YulBlock","src":"2508:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2525:3:53","nodeType":"YulIdentifier","src":"2525:3:53"},{"arguments":[{"name":"value","nativeSrc":"2548:5:53","nodeType":"YulIdentifier","src":"2548:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2530:17:53","nodeType":"YulIdentifier","src":"2530:17:53"},"nativeSrc":"2530:24:53","nodeType":"YulFunctionCall","src":"2530:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2518:6:53","nodeType":"YulIdentifier","src":"2518:6:53"},"nativeSrc":"2518:37:53","nodeType":"YulFunctionCall","src":"2518:37:53"},"nativeSrc":"2518:37:53","nodeType":"YulExpressionStatement","src":"2518:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2443:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2496:5:53","nodeType":"YulTypedName","src":"2496:5:53","type":""},{"name":"pos","nativeSrc":"2503:3:53","nodeType":"YulTypedName","src":"2503:3:53","type":""}],"src":"2443:118:53"},{"body":{"nativeSrc":"2665:124:53","nodeType":"YulBlock","src":"2665:124:53","statements":[{"nativeSrc":"2675:26:53","nodeType":"YulAssignment","src":"2675:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2687:9:53","nodeType":"YulIdentifier","src":"2687:9:53"},{"kind":"number","nativeSrc":"2698:2:53","nodeType":"YulLiteral","src":"2698:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2683:3:53","nodeType":"YulIdentifier","src":"2683:3:53"},"nativeSrc":"2683:18:53","nodeType":"YulFunctionCall","src":"2683:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2675:4:53","nodeType":"YulIdentifier","src":"2675:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2755:6:53","nodeType":"YulIdentifier","src":"2755:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2768:9:53","nodeType":"YulIdentifier","src":"2768:9:53"},{"kind":"number","nativeSrc":"2779:1:53","nodeType":"YulLiteral","src":"2779:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2764:3:53","nodeType":"YulIdentifier","src":"2764:3:53"},"nativeSrc":"2764:17:53","nodeType":"YulFunctionCall","src":"2764:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2711:43:53","nodeType":"YulIdentifier","src":"2711:43:53"},"nativeSrc":"2711:71:53","nodeType":"YulFunctionCall","src":"2711:71:53"},"nativeSrc":"2711:71:53","nodeType":"YulExpressionStatement","src":"2711:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2567:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2637:9:53","nodeType":"YulTypedName","src":"2637:9:53","type":""},{"name":"value0","nativeSrc":"2649:6:53","nodeType":"YulTypedName","src":"2649:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2660:4:53","nodeType":"YulTypedName","src":"2660:4:53","type":""}],"src":"2567:222:53"},{"body":{"nativeSrc":"2884:28:53","nodeType":"YulBlock","src":"2884:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2901:1:53","nodeType":"YulLiteral","src":"2901:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2904:1:53","nodeType":"YulLiteral","src":"2904:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"},"nativeSrc":"2894:12:53","nodeType":"YulFunctionCall","src":"2894:12:53"},"nativeSrc":"2894:12:53","nodeType":"YulExpressionStatement","src":"2894:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2795:117:53","nodeType":"YulFunctionDefinition","src":"2795:117:53"},{"body":{"nativeSrc":"3007:28:53","nodeType":"YulBlock","src":"3007:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3024:1:53","nodeType":"YulLiteral","src":"3024:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3027:1:53","nodeType":"YulLiteral","src":"3027:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3017:6:53","nodeType":"YulIdentifier","src":"3017:6:53"},"nativeSrc":"3017:12:53","nodeType":"YulFunctionCall","src":"3017:12:53"},"nativeSrc":"3017:12:53","nodeType":"YulExpressionStatement","src":"3017:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2918:117:53","nodeType":"YulFunctionDefinition","src":"2918:117:53"},{"body":{"nativeSrc":"3130:28:53","nodeType":"YulBlock","src":"3130:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3147:1:53","nodeType":"YulLiteral","src":"3147:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3150:1:53","nodeType":"YulLiteral","src":"3150:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3140:6:53","nodeType":"YulIdentifier","src":"3140:6:53"},"nativeSrc":"3140:12:53","nodeType":"YulFunctionCall","src":"3140:12:53"},"nativeSrc":"3140:12:53","nodeType":"YulExpressionStatement","src":"3140:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3041:117:53","nodeType":"YulFunctionDefinition","src":"3041:117:53"},{"body":{"nativeSrc":"3271:478:53","nodeType":"YulBlock","src":"3271:478:53","statements":[{"body":{"nativeSrc":"3320:83:53","nodeType":"YulBlock","src":"3320:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3322:77:53","nodeType":"YulIdentifier","src":"3322:77:53"},"nativeSrc":"3322:79:53","nodeType":"YulFunctionCall","src":"3322:79:53"},"nativeSrc":"3322:79:53","nodeType":"YulExpressionStatement","src":"3322:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3299:6:53","nodeType":"YulIdentifier","src":"3299:6:53"},{"kind":"number","nativeSrc":"3307:4:53","nodeType":"YulLiteral","src":"3307:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3295:3:53","nodeType":"YulIdentifier","src":"3295:3:53"},"nativeSrc":"3295:17:53","nodeType":"YulFunctionCall","src":"3295:17:53"},{"name":"end","nativeSrc":"3314:3:53","nodeType":"YulIdentifier","src":"3314:3:53"}],"functionName":{"name":"slt","nativeSrc":"3291:3:53","nodeType":"YulIdentifier","src":"3291:3:53"},"nativeSrc":"3291:27:53","nodeType":"YulFunctionCall","src":"3291:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3284:6:53","nodeType":"YulIdentifier","src":"3284:6:53"},"nativeSrc":"3284:35:53","nodeType":"YulFunctionCall","src":"3284:35:53"},"nativeSrc":"3281:122:53","nodeType":"YulIf","src":"3281:122:53"},{"nativeSrc":"3412:30:53","nodeType":"YulAssignment","src":"3412:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3435:6:53","nodeType":"YulIdentifier","src":"3435:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3422:12:53","nodeType":"YulIdentifier","src":"3422:12:53"},"nativeSrc":"3422:20:53","nodeType":"YulFunctionCall","src":"3422:20:53"},"variableNames":[{"name":"length","nativeSrc":"3412:6:53","nodeType":"YulIdentifier","src":"3412:6:53"}]},{"body":{"nativeSrc":"3485:83:53","nodeType":"YulBlock","src":"3485:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3487:77:53","nodeType":"YulIdentifier","src":"3487:77:53"},"nativeSrc":"3487:79:53","nodeType":"YulFunctionCall","src":"3487:79:53"},"nativeSrc":"3487:79:53","nodeType":"YulExpressionStatement","src":"3487:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3457:6:53","nodeType":"YulIdentifier","src":"3457:6:53"},{"kind":"number","nativeSrc":"3465:18:53","nodeType":"YulLiteral","src":"3465:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3454:2:53","nodeType":"YulIdentifier","src":"3454:2:53"},"nativeSrc":"3454:30:53","nodeType":"YulFunctionCall","src":"3454:30:53"},"nativeSrc":"3451:117:53","nodeType":"YulIf","src":"3451:117:53"},{"nativeSrc":"3577:29:53","nodeType":"YulAssignment","src":"3577:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3593:6:53","nodeType":"YulIdentifier","src":"3593:6:53"},{"kind":"number","nativeSrc":"3601:4:53","nodeType":"YulLiteral","src":"3601:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3589:3:53","nodeType":"YulIdentifier","src":"3589:3:53"},"nativeSrc":"3589:17:53","nodeType":"YulFunctionCall","src":"3589:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3577:8:53","nodeType":"YulIdentifier","src":"3577:8:53"}]},{"body":{"nativeSrc":"3660:83:53","nodeType":"YulBlock","src":"3660:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3662:77:53","nodeType":"YulIdentifier","src":"3662:77:53"},"nativeSrc":"3662:79:53","nodeType":"YulFunctionCall","src":"3662:79:53"},"nativeSrc":"3662:79:53","nodeType":"YulExpressionStatement","src":"3662:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3625:8:53","nodeType":"YulIdentifier","src":"3625:8:53"},{"arguments":[{"name":"length","nativeSrc":"3639:6:53","nodeType":"YulIdentifier","src":"3639:6:53"},{"kind":"number","nativeSrc":"3647:4:53","nodeType":"YulLiteral","src":"3647:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3635:3:53","nodeType":"YulIdentifier","src":"3635:3:53"},"nativeSrc":"3635:17:53","nodeType":"YulFunctionCall","src":"3635:17:53"}],"functionName":{"name":"add","nativeSrc":"3621:3:53","nodeType":"YulIdentifier","src":"3621:3:53"},"nativeSrc":"3621:32:53","nodeType":"YulFunctionCall","src":"3621:32:53"},{"name":"end","nativeSrc":"3655:3:53","nodeType":"YulIdentifier","src":"3655:3:53"}],"functionName":{"name":"gt","nativeSrc":"3618:2:53","nodeType":"YulIdentifier","src":"3618:2:53"},"nativeSrc":"3618:41:53","nodeType":"YulFunctionCall","src":"3618:41:53"},"nativeSrc":"3615:128:53","nodeType":"YulIf","src":"3615:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3181:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3238:6:53","nodeType":"YulTypedName","src":"3238:6:53","type":""},{"name":"end","nativeSrc":"3246:3:53","nodeType":"YulTypedName","src":"3246:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3254:8:53","nodeType":"YulTypedName","src":"3254:8:53","type":""},{"name":"length","nativeSrc":"3264:6:53","nodeType":"YulTypedName","src":"3264:6:53","type":""}],"src":"3181:568:53"},{"body":{"nativeSrc":"3856:478:53","nodeType":"YulBlock","src":"3856:478:53","statements":[{"body":{"nativeSrc":"3905:83:53","nodeType":"YulBlock","src":"3905:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3907:77:53","nodeType":"YulIdentifier","src":"3907:77:53"},"nativeSrc":"3907:79:53","nodeType":"YulFunctionCall","src":"3907:79:53"},"nativeSrc":"3907:79:53","nodeType":"YulExpressionStatement","src":"3907:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3884:6:53","nodeType":"YulIdentifier","src":"3884:6:53"},{"kind":"number","nativeSrc":"3892:4:53","nodeType":"YulLiteral","src":"3892:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3880:3:53","nodeType":"YulIdentifier","src":"3880:3:53"},"nativeSrc":"3880:17:53","nodeType":"YulFunctionCall","src":"3880:17:53"},{"name":"end","nativeSrc":"3899:3:53","nodeType":"YulIdentifier","src":"3899:3:53"}],"functionName":{"name":"slt","nativeSrc":"3876:3:53","nodeType":"YulIdentifier","src":"3876:3:53"},"nativeSrc":"3876:27:53","nodeType":"YulFunctionCall","src":"3876:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3869:6:53","nodeType":"YulIdentifier","src":"3869:6:53"},"nativeSrc":"3869:35:53","nodeType":"YulFunctionCall","src":"3869:35:53"},"nativeSrc":"3866:122:53","nodeType":"YulIf","src":"3866:122:53"},{"nativeSrc":"3997:30:53","nodeType":"YulAssignment","src":"3997:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4020:6:53","nodeType":"YulIdentifier","src":"4020:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4007:12:53","nodeType":"YulIdentifier","src":"4007:12:53"},"nativeSrc":"4007:20:53","nodeType":"YulFunctionCall","src":"4007:20:53"},"variableNames":[{"name":"length","nativeSrc":"3997:6:53","nodeType":"YulIdentifier","src":"3997:6:53"}]},{"body":{"nativeSrc":"4070:83:53","nodeType":"YulBlock","src":"4070:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4072:77:53","nodeType":"YulIdentifier","src":"4072:77:53"},"nativeSrc":"4072:79:53","nodeType":"YulFunctionCall","src":"4072:79:53"},"nativeSrc":"4072:79:53","nodeType":"YulExpressionStatement","src":"4072:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4042:6:53","nodeType":"YulIdentifier","src":"4042:6:53"},{"kind":"number","nativeSrc":"4050:18:53","nodeType":"YulLiteral","src":"4050:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4039:2:53","nodeType":"YulIdentifier","src":"4039:2:53"},"nativeSrc":"4039:30:53","nodeType":"YulFunctionCall","src":"4039:30:53"},"nativeSrc":"4036:117:53","nodeType":"YulIf","src":"4036:117:53"},{"nativeSrc":"4162:29:53","nodeType":"YulAssignment","src":"4162:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4178:6:53","nodeType":"YulIdentifier","src":"4178:6:53"},{"kind":"number","nativeSrc":"4186:4:53","nodeType":"YulLiteral","src":"4186:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4174:3:53","nodeType":"YulIdentifier","src":"4174:3:53"},"nativeSrc":"4174:17:53","nodeType":"YulFunctionCall","src":"4174:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4162:8:53","nodeType":"YulIdentifier","src":"4162:8:53"}]},{"body":{"nativeSrc":"4245:83:53","nodeType":"YulBlock","src":"4245:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4247:77:53","nodeType":"YulIdentifier","src":"4247:77:53"},"nativeSrc":"4247:79:53","nodeType":"YulFunctionCall","src":"4247:79:53"},"nativeSrc":"4247:79:53","nodeType":"YulExpressionStatement","src":"4247:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4210:8:53","nodeType":"YulIdentifier","src":"4210:8:53"},{"arguments":[{"name":"length","nativeSrc":"4224:6:53","nodeType":"YulIdentifier","src":"4224:6:53"},{"kind":"number","nativeSrc":"4232:4:53","nodeType":"YulLiteral","src":"4232:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4220:3:53","nodeType":"YulIdentifier","src":"4220:3:53"},"nativeSrc":"4220:17:53","nodeType":"YulFunctionCall","src":"4220:17:53"}],"functionName":{"name":"add","nativeSrc":"4206:3:53","nodeType":"YulIdentifier","src":"4206:3:53"},"nativeSrc":"4206:32:53","nodeType":"YulFunctionCall","src":"4206:32:53"},{"name":"end","nativeSrc":"4240:3:53","nodeType":"YulIdentifier","src":"4240:3:53"}],"functionName":{"name":"gt","nativeSrc":"4203:2:53","nodeType":"YulIdentifier","src":"4203:2:53"},"nativeSrc":"4203:41:53","nodeType":"YulFunctionCall","src":"4203:41:53"},"nativeSrc":"4200:128:53","nodeType":"YulIf","src":"4200:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3769:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3823:6:53","nodeType":"YulTypedName","src":"3823:6:53","type":""},{"name":"end","nativeSrc":"3831:3:53","nodeType":"YulTypedName","src":"3831:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3839:8:53","nodeType":"YulTypedName","src":"3839:8:53","type":""},{"name":"length","nativeSrc":"3849:6:53","nodeType":"YulTypedName","src":"3849:6:53","type":""}],"src":"3769:565:53"},{"body":{"nativeSrc":"4490:778:53","nodeType":"YulBlock","src":"4490:778:53","statements":[{"body":{"nativeSrc":"4536:83:53","nodeType":"YulBlock","src":"4536:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4538:77:53","nodeType":"YulIdentifier","src":"4538:77:53"},"nativeSrc":"4538:79:53","nodeType":"YulFunctionCall","src":"4538:79:53"},"nativeSrc":"4538:79:53","nodeType":"YulExpressionStatement","src":"4538:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4511:7:53","nodeType":"YulIdentifier","src":"4511:7:53"},{"name":"headStart","nativeSrc":"4520:9:53","nodeType":"YulIdentifier","src":"4520:9:53"}],"functionName":{"name":"sub","nativeSrc":"4507:3:53","nodeType":"YulIdentifier","src":"4507:3:53"},"nativeSrc":"4507:23:53","nodeType":"YulFunctionCall","src":"4507:23:53"},{"kind":"number","nativeSrc":"4532:2:53","nodeType":"YulLiteral","src":"4532:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4503:3:53","nodeType":"YulIdentifier","src":"4503:3:53"},"nativeSrc":"4503:32:53","nodeType":"YulFunctionCall","src":"4503:32:53"},"nativeSrc":"4500:119:53","nodeType":"YulIf","src":"4500:119:53"},{"nativeSrc":"4629:312:53","nodeType":"YulBlock","src":"4629:312:53","statements":[{"nativeSrc":"4644:45:53","nodeType":"YulVariableDeclaration","src":"4644:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4675:9:53","nodeType":"YulIdentifier","src":"4675:9:53"},{"kind":"number","nativeSrc":"4686:1:53","nodeType":"YulLiteral","src":"4686:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4671:3:53","nodeType":"YulIdentifier","src":"4671:3:53"},"nativeSrc":"4671:17:53","nodeType":"YulFunctionCall","src":"4671:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4658:12:53","nodeType":"YulIdentifier","src":"4658:12:53"},"nativeSrc":"4658:31:53","nodeType":"YulFunctionCall","src":"4658:31:53"},"variables":[{"name":"offset","nativeSrc":"4648:6:53","nodeType":"YulTypedName","src":"4648:6:53","type":""}]},{"body":{"nativeSrc":"4736:83:53","nodeType":"YulBlock","src":"4736:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4738:77:53","nodeType":"YulIdentifier","src":"4738:77:53"},"nativeSrc":"4738:79:53","nodeType":"YulFunctionCall","src":"4738:79:53"},"nativeSrc":"4738:79:53","nodeType":"YulExpressionStatement","src":"4738:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4708:6:53","nodeType":"YulIdentifier","src":"4708:6:53"},{"kind":"number","nativeSrc":"4716:18:53","nodeType":"YulLiteral","src":"4716:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4705:2:53","nodeType":"YulIdentifier","src":"4705:2:53"},"nativeSrc":"4705:30:53","nodeType":"YulFunctionCall","src":"4705:30:53"},"nativeSrc":"4702:117:53","nodeType":"YulIf","src":"4702:117:53"},{"nativeSrc":"4833:98:53","nodeType":"YulAssignment","src":"4833:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4903:9:53","nodeType":"YulIdentifier","src":"4903:9:53"},{"name":"offset","nativeSrc":"4914:6:53","nodeType":"YulIdentifier","src":"4914:6:53"}],"functionName":{"name":"add","nativeSrc":"4899:3:53","nodeType":"YulIdentifier","src":"4899:3:53"},"nativeSrc":"4899:22:53","nodeType":"YulFunctionCall","src":"4899:22:53"},{"name":"dataEnd","nativeSrc":"4923:7:53","nodeType":"YulIdentifier","src":"4923:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"4851:47:53","nodeType":"YulIdentifier","src":"4851:47:53"},"nativeSrc":"4851:80:53","nodeType":"YulFunctionCall","src":"4851:80:53"},"variableNames":[{"name":"value0","nativeSrc":"4833:6:53","nodeType":"YulIdentifier","src":"4833:6:53"},{"name":"value1","nativeSrc":"4841:6:53","nodeType":"YulIdentifier","src":"4841:6:53"}]}]},{"nativeSrc":"4951:310:53","nodeType":"YulBlock","src":"4951:310:53","statements":[{"nativeSrc":"4966:46:53","nodeType":"YulVariableDeclaration","src":"4966:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4997:9:53","nodeType":"YulIdentifier","src":"4997:9:53"},{"kind":"number","nativeSrc":"5008:2:53","nodeType":"YulLiteral","src":"5008:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4993:3:53","nodeType":"YulIdentifier","src":"4993:3:53"},"nativeSrc":"4993:18:53","nodeType":"YulFunctionCall","src":"4993:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"4980:12:53","nodeType":"YulIdentifier","src":"4980:12:53"},"nativeSrc":"4980:32:53","nodeType":"YulFunctionCall","src":"4980:32:53"},"variables":[{"name":"offset","nativeSrc":"4970:6:53","nodeType":"YulTypedName","src":"4970:6:53","type":""}]},{"body":{"nativeSrc":"5059:83:53","nodeType":"YulBlock","src":"5059:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5061:77:53","nodeType":"YulIdentifier","src":"5061:77:53"},"nativeSrc":"5061:79:53","nodeType":"YulFunctionCall","src":"5061:79:53"},"nativeSrc":"5061:79:53","nodeType":"YulExpressionStatement","src":"5061:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5031:6:53","nodeType":"YulIdentifier","src":"5031:6:53"},{"kind":"number","nativeSrc":"5039:18:53","nodeType":"YulLiteral","src":"5039:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5028:2:53","nodeType":"YulIdentifier","src":"5028:2:53"},"nativeSrc":"5028:30:53","nodeType":"YulFunctionCall","src":"5028:30:53"},"nativeSrc":"5025:117:53","nodeType":"YulIf","src":"5025:117:53"},{"nativeSrc":"5156:95:53","nodeType":"YulAssignment","src":"5156:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5223:9:53","nodeType":"YulIdentifier","src":"5223:9:53"},{"name":"offset","nativeSrc":"5234:6:53","nodeType":"YulIdentifier","src":"5234:6:53"}],"functionName":{"name":"add","nativeSrc":"5219:3:53","nodeType":"YulIdentifier","src":"5219:3:53"},"nativeSrc":"5219:22:53","nodeType":"YulFunctionCall","src":"5219:22:53"},{"name":"dataEnd","nativeSrc":"5243:7:53","nodeType":"YulIdentifier","src":"5243:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5174:44:53","nodeType":"YulIdentifier","src":"5174:44:53"},"nativeSrc":"5174:77:53","nodeType":"YulFunctionCall","src":"5174:77:53"},"variableNames":[{"name":"value2","nativeSrc":"5156:6:53","nodeType":"YulIdentifier","src":"5156:6:53"},{"name":"value3","nativeSrc":"5164:6:53","nodeType":"YulIdentifier","src":"5164:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4340:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4436:9:53","nodeType":"YulTypedName","src":"4436:9:53","type":""},{"name":"dataEnd","nativeSrc":"4447:7:53","nodeType":"YulTypedName","src":"4447:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4459:6:53","nodeType":"YulTypedName","src":"4459:6:53","type":""},{"name":"value1","nativeSrc":"4467:6:53","nodeType":"YulTypedName","src":"4467:6:53","type":""},{"name":"value2","nativeSrc":"4475:6:53","nodeType":"YulTypedName","src":"4475:6:53","type":""},{"name":"value3","nativeSrc":"4483:6:53","nodeType":"YulTypedName","src":"4483:6:53","type":""}],"src":"4340:928:53"},{"body":{"nativeSrc":"5361:478:53","nodeType":"YulBlock","src":"5361:478:53","statements":[{"body":{"nativeSrc":"5410:83:53","nodeType":"YulBlock","src":"5410:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5412:77:53","nodeType":"YulIdentifier","src":"5412:77:53"},"nativeSrc":"5412:79:53","nodeType":"YulFunctionCall","src":"5412:79:53"},"nativeSrc":"5412:79:53","nodeType":"YulExpressionStatement","src":"5412:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5389:6:53","nodeType":"YulIdentifier","src":"5389:6:53"},{"kind":"number","nativeSrc":"5397:4:53","nodeType":"YulLiteral","src":"5397:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5385:3:53","nodeType":"YulIdentifier","src":"5385:3:53"},"nativeSrc":"5385:17:53","nodeType":"YulFunctionCall","src":"5385:17:53"},{"name":"end","nativeSrc":"5404:3:53","nodeType":"YulIdentifier","src":"5404:3:53"}],"functionName":{"name":"slt","nativeSrc":"5381:3:53","nodeType":"YulIdentifier","src":"5381:3:53"},"nativeSrc":"5381:27:53","nodeType":"YulFunctionCall","src":"5381:27:53"}],"functionName":{"name":"iszero","nativeSrc":"5374:6:53","nodeType":"YulIdentifier","src":"5374:6:53"},"nativeSrc":"5374:35:53","nodeType":"YulFunctionCall","src":"5374:35:53"},"nativeSrc":"5371:122:53","nodeType":"YulIf","src":"5371:122:53"},{"nativeSrc":"5502:30:53","nodeType":"YulAssignment","src":"5502:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"5525:6:53","nodeType":"YulIdentifier","src":"5525:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5512:12:53","nodeType":"YulIdentifier","src":"5512:12:53"},"nativeSrc":"5512:20:53","nodeType":"YulFunctionCall","src":"5512:20:53"},"variableNames":[{"name":"length","nativeSrc":"5502:6:53","nodeType":"YulIdentifier","src":"5502:6:53"}]},{"body":{"nativeSrc":"5575:83:53","nodeType":"YulBlock","src":"5575:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"5577:77:53","nodeType":"YulIdentifier","src":"5577:77:53"},"nativeSrc":"5577:79:53","nodeType":"YulFunctionCall","src":"5577:79:53"},"nativeSrc":"5577:79:53","nodeType":"YulExpressionStatement","src":"5577:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5547:6:53","nodeType":"YulIdentifier","src":"5547:6:53"},{"kind":"number","nativeSrc":"5555:18:53","nodeType":"YulLiteral","src":"5555:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5544:2:53","nodeType":"YulIdentifier","src":"5544:2:53"},"nativeSrc":"5544:30:53","nodeType":"YulFunctionCall","src":"5544:30:53"},"nativeSrc":"5541:117:53","nodeType":"YulIf","src":"5541:117:53"},{"nativeSrc":"5667:29:53","nodeType":"YulAssignment","src":"5667:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5683:6:53","nodeType":"YulIdentifier","src":"5683:6:53"},{"kind":"number","nativeSrc":"5691:4:53","nodeType":"YulLiteral","src":"5691:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5679:3:53","nodeType":"YulIdentifier","src":"5679:3:53"},"nativeSrc":"5679:17:53","nodeType":"YulFunctionCall","src":"5679:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"5667:8:53","nodeType":"YulIdentifier","src":"5667:8:53"}]},{"body":{"nativeSrc":"5750:83:53","nodeType":"YulBlock","src":"5750:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5752:77:53","nodeType":"YulIdentifier","src":"5752:77:53"},"nativeSrc":"5752:79:53","nodeType":"YulFunctionCall","src":"5752:79:53"},"nativeSrc":"5752:79:53","nodeType":"YulExpressionStatement","src":"5752:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"5715:8:53","nodeType":"YulIdentifier","src":"5715:8:53"},{"arguments":[{"name":"length","nativeSrc":"5729:6:53","nodeType":"YulIdentifier","src":"5729:6:53"},{"kind":"number","nativeSrc":"5737:4:53","nodeType":"YulLiteral","src":"5737:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"5725:3:53","nodeType":"YulIdentifier","src":"5725:3:53"},"nativeSrc":"5725:17:53","nodeType":"YulFunctionCall","src":"5725:17:53"}],"functionName":{"name":"add","nativeSrc":"5711:3:53","nodeType":"YulIdentifier","src":"5711:3:53"},"nativeSrc":"5711:32:53","nodeType":"YulFunctionCall","src":"5711:32:53"},{"name":"end","nativeSrc":"5745:3:53","nodeType":"YulIdentifier","src":"5745:3:53"}],"functionName":{"name":"gt","nativeSrc":"5708:2:53","nodeType":"YulIdentifier","src":"5708:2:53"},"nativeSrc":"5708:41:53","nodeType":"YulFunctionCall","src":"5708:41:53"},"nativeSrc":"5705:128:53","nodeType":"YulIf","src":"5705:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5287:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5328:6:53","nodeType":"YulTypedName","src":"5328:6:53","type":""},{"name":"end","nativeSrc":"5336:3:53","nodeType":"YulTypedName","src":"5336:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"5344:8:53","nodeType":"YulTypedName","src":"5344:8:53","type":""},{"name":"length","nativeSrc":"5354:6:53","nodeType":"YulTypedName","src":"5354:6:53","type":""}],"src":"5287:552:53"},{"body":{"nativeSrc":"5930:442:53","nodeType":"YulBlock","src":"5930:442:53","statements":[{"body":{"nativeSrc":"5976:83:53","nodeType":"YulBlock","src":"5976:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5978:77:53","nodeType":"YulIdentifier","src":"5978:77:53"},"nativeSrc":"5978:79:53","nodeType":"YulFunctionCall","src":"5978:79:53"},"nativeSrc":"5978:79:53","nodeType":"YulExpressionStatement","src":"5978:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5951:7:53","nodeType":"YulIdentifier","src":"5951:7:53"},{"name":"headStart","nativeSrc":"5960:9:53","nodeType":"YulIdentifier","src":"5960:9:53"}],"functionName":{"name":"sub","nativeSrc":"5947:3:53","nodeType":"YulIdentifier","src":"5947:3:53"},"nativeSrc":"5947:23:53","nodeType":"YulFunctionCall","src":"5947:23:53"},{"kind":"number","nativeSrc":"5972:2:53","nodeType":"YulLiteral","src":"5972:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5943:3:53","nodeType":"YulIdentifier","src":"5943:3:53"},"nativeSrc":"5943:32:53","nodeType":"YulFunctionCall","src":"5943:32:53"},"nativeSrc":"5940:119:53","nodeType":"YulIf","src":"5940:119:53"},{"nativeSrc":"6069:296:53","nodeType":"YulBlock","src":"6069:296:53","statements":[{"nativeSrc":"6084:45:53","nodeType":"YulVariableDeclaration","src":"6084:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6115:9:53","nodeType":"YulIdentifier","src":"6115:9:53"},{"kind":"number","nativeSrc":"6126:1:53","nodeType":"YulLiteral","src":"6126:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6111:3:53","nodeType":"YulIdentifier","src":"6111:3:53"},"nativeSrc":"6111:17:53","nodeType":"YulFunctionCall","src":"6111:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"6098:12:53","nodeType":"YulIdentifier","src":"6098:12:53"},"nativeSrc":"6098:31:53","nodeType":"YulFunctionCall","src":"6098:31:53"},"variables":[{"name":"offset","nativeSrc":"6088:6:53","nodeType":"YulTypedName","src":"6088:6:53","type":""}]},{"body":{"nativeSrc":"6176:83:53","nodeType":"YulBlock","src":"6176:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6178:77:53","nodeType":"YulIdentifier","src":"6178:77:53"},"nativeSrc":"6178:79:53","nodeType":"YulFunctionCall","src":"6178:79:53"},"nativeSrc":"6178:79:53","nodeType":"YulExpressionStatement","src":"6178:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6148:6:53","nodeType":"YulIdentifier","src":"6148:6:53"},{"kind":"number","nativeSrc":"6156:18:53","nodeType":"YulLiteral","src":"6156:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6145:2:53","nodeType":"YulIdentifier","src":"6145:2:53"},"nativeSrc":"6145:30:53","nodeType":"YulFunctionCall","src":"6145:30:53"},"nativeSrc":"6142:117:53","nodeType":"YulIf","src":"6142:117:53"},{"nativeSrc":"6273:82:53","nodeType":"YulAssignment","src":"6273:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6327:9:53","nodeType":"YulIdentifier","src":"6327:9:53"},{"name":"offset","nativeSrc":"6338:6:53","nodeType":"YulIdentifier","src":"6338:6:53"}],"functionName":{"name":"add","nativeSrc":"6323:3:53","nodeType":"YulIdentifier","src":"6323:3:53"},"nativeSrc":"6323:22:53","nodeType":"YulFunctionCall","src":"6323:22:53"},{"name":"dataEnd","nativeSrc":"6347:7:53","nodeType":"YulIdentifier","src":"6347:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6291:31:53","nodeType":"YulIdentifier","src":"6291:31:53"},"nativeSrc":"6291:64:53","nodeType":"YulFunctionCall","src":"6291:64:53"},"variableNames":[{"name":"value0","nativeSrc":"6273:6:53","nodeType":"YulIdentifier","src":"6273:6:53"},{"name":"value1","nativeSrc":"6281:6:53","nodeType":"YulIdentifier","src":"6281:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"5845:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5892:9:53","nodeType":"YulTypedName","src":"5892:9:53","type":""},{"name":"dataEnd","nativeSrc":"5903:7:53","nodeType":"YulTypedName","src":"5903:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5915:6:53","nodeType":"YulTypedName","src":"5915:6:53","type":""},{"name":"value1","nativeSrc":"5923:6:53","nodeType":"YulTypedName","src":"5923:6:53","type":""}],"src":"5845:527:53"},{"body":{"nativeSrc":"6494:478:53","nodeType":"YulBlock","src":"6494:478:53","statements":[{"body":{"nativeSrc":"6543:83:53","nodeType":"YulBlock","src":"6543:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6545:77:53","nodeType":"YulIdentifier","src":"6545:77:53"},"nativeSrc":"6545:79:53","nodeType":"YulFunctionCall","src":"6545:79:53"},"nativeSrc":"6545:79:53","nodeType":"YulExpressionStatement","src":"6545:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6522:6:53","nodeType":"YulIdentifier","src":"6522:6:53"},{"kind":"number","nativeSrc":"6530:4:53","nodeType":"YulLiteral","src":"6530:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6518:3:53","nodeType":"YulIdentifier","src":"6518:3:53"},"nativeSrc":"6518:17:53","nodeType":"YulFunctionCall","src":"6518:17:53"},{"name":"end","nativeSrc":"6537:3:53","nodeType":"YulIdentifier","src":"6537:3:53"}],"functionName":{"name":"slt","nativeSrc":"6514:3:53","nodeType":"YulIdentifier","src":"6514:3:53"},"nativeSrc":"6514:27:53","nodeType":"YulFunctionCall","src":"6514:27:53"}],"functionName":{"name":"iszero","nativeSrc":"6507:6:53","nodeType":"YulIdentifier","src":"6507:6:53"},"nativeSrc":"6507:35:53","nodeType":"YulFunctionCall","src":"6507:35:53"},"nativeSrc":"6504:122:53","nodeType":"YulIf","src":"6504:122:53"},{"nativeSrc":"6635:30:53","nodeType":"YulAssignment","src":"6635:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"6658:6:53","nodeType":"YulIdentifier","src":"6658:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6645:12:53","nodeType":"YulIdentifier","src":"6645:12:53"},"nativeSrc":"6645:20:53","nodeType":"YulFunctionCall","src":"6645:20:53"},"variableNames":[{"name":"length","nativeSrc":"6635:6:53","nodeType":"YulIdentifier","src":"6635:6:53"}]},{"body":{"nativeSrc":"6708:83:53","nodeType":"YulBlock","src":"6708:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6710:77:53","nodeType":"YulIdentifier","src":"6710:77:53"},"nativeSrc":"6710:79:53","nodeType":"YulFunctionCall","src":"6710:79:53"},"nativeSrc":"6710:79:53","nodeType":"YulExpressionStatement","src":"6710:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6680:6:53","nodeType":"YulIdentifier","src":"6680:6:53"},{"kind":"number","nativeSrc":"6688:18:53","nodeType":"YulLiteral","src":"6688:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6677:2:53","nodeType":"YulIdentifier","src":"6677:2:53"},"nativeSrc":"6677:30:53","nodeType":"YulFunctionCall","src":"6677:30:53"},"nativeSrc":"6674:117:53","nodeType":"YulIf","src":"6674:117:53"},{"nativeSrc":"6800:29:53","nodeType":"YulAssignment","src":"6800:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6816:6:53","nodeType":"YulIdentifier","src":"6816:6:53"},{"kind":"number","nativeSrc":"6824:4:53","nodeType":"YulLiteral","src":"6824:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6812:3:53","nodeType":"YulIdentifier","src":"6812:3:53"},"nativeSrc":"6812:17:53","nodeType":"YulFunctionCall","src":"6812:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"6800:8:53","nodeType":"YulIdentifier","src":"6800:8:53"}]},{"body":{"nativeSrc":"6883:83:53","nodeType":"YulBlock","src":"6883:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6885:77:53","nodeType":"YulIdentifier","src":"6885:77:53"},"nativeSrc":"6885:79:53","nodeType":"YulFunctionCall","src":"6885:79:53"},"nativeSrc":"6885:79:53","nodeType":"YulExpressionStatement","src":"6885:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6848:8:53","nodeType":"YulIdentifier","src":"6848:8:53"},{"arguments":[{"name":"length","nativeSrc":"6862:6:53","nodeType":"YulIdentifier","src":"6862:6:53"},{"kind":"number","nativeSrc":"6870:4:53","nodeType":"YulLiteral","src":"6870:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6858:3:53","nodeType":"YulIdentifier","src":"6858:3:53"},"nativeSrc":"6858:17:53","nodeType":"YulFunctionCall","src":"6858:17:53"}],"functionName":{"name":"add","nativeSrc":"6844:3:53","nodeType":"YulIdentifier","src":"6844:3:53"},"nativeSrc":"6844:32:53","nodeType":"YulFunctionCall","src":"6844:32:53"},{"name":"end","nativeSrc":"6878:3:53","nodeType":"YulIdentifier","src":"6878:3:53"}],"functionName":{"name":"gt","nativeSrc":"6841:2:53","nodeType":"YulIdentifier","src":"6841:2:53"},"nativeSrc":"6841:41:53","nodeType":"YulFunctionCall","src":"6841:41:53"},"nativeSrc":"6838:128:53","nodeType":"YulIf","src":"6838:128:53"}]},"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"6393:579:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6461:6:53","nodeType":"YulTypedName","src":"6461:6:53","type":""},{"name":"end","nativeSrc":"6469:3:53","nodeType":"YulTypedName","src":"6469:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6477:8:53","nodeType":"YulTypedName","src":"6477:8:53","type":""},{"name":"length","nativeSrc":"6487:6:53","nodeType":"YulTypedName","src":"6487:6:53","type":""}],"src":"6393:579:53"},{"body":{"nativeSrc":"7090:469:53","nodeType":"YulBlock","src":"7090:469:53","statements":[{"body":{"nativeSrc":"7136:83:53","nodeType":"YulBlock","src":"7136:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7138:77:53","nodeType":"YulIdentifier","src":"7138:77:53"},"nativeSrc":"7138:79:53","nodeType":"YulFunctionCall","src":"7138:79:53"},"nativeSrc":"7138:79:53","nodeType":"YulExpressionStatement","src":"7138:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7111:7:53","nodeType":"YulIdentifier","src":"7111:7:53"},{"name":"headStart","nativeSrc":"7120:9:53","nodeType":"YulIdentifier","src":"7120:9:53"}],"functionName":{"name":"sub","nativeSrc":"7107:3:53","nodeType":"YulIdentifier","src":"7107:3:53"},"nativeSrc":"7107:23:53","nodeType":"YulFunctionCall","src":"7107:23:53"},{"kind":"number","nativeSrc":"7132:2:53","nodeType":"YulLiteral","src":"7132:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7103:3:53","nodeType":"YulIdentifier","src":"7103:3:53"},"nativeSrc":"7103:32:53","nodeType":"YulFunctionCall","src":"7103:32:53"},"nativeSrc":"7100:119:53","nodeType":"YulIf","src":"7100:119:53"},{"nativeSrc":"7229:323:53","nodeType":"YulBlock","src":"7229:323:53","statements":[{"nativeSrc":"7244:45:53","nodeType":"YulVariableDeclaration","src":"7244:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7275:9:53","nodeType":"YulIdentifier","src":"7275:9:53"},{"kind":"number","nativeSrc":"7286:1:53","nodeType":"YulLiteral","src":"7286:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7271:3:53","nodeType":"YulIdentifier","src":"7271:3:53"},"nativeSrc":"7271:17:53","nodeType":"YulFunctionCall","src":"7271:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"7258:12:53","nodeType":"YulIdentifier","src":"7258:12:53"},"nativeSrc":"7258:31:53","nodeType":"YulFunctionCall","src":"7258:31:53"},"variables":[{"name":"offset","nativeSrc":"7248:6:53","nodeType":"YulTypedName","src":"7248:6:53","type":""}]},{"body":{"nativeSrc":"7336:83:53","nodeType":"YulBlock","src":"7336:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7338:77:53","nodeType":"YulIdentifier","src":"7338:77:53"},"nativeSrc":"7338:79:53","nodeType":"YulFunctionCall","src":"7338:79:53"},"nativeSrc":"7338:79:53","nodeType":"YulExpressionStatement","src":"7338:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7308:6:53","nodeType":"YulIdentifier","src":"7308:6:53"},{"kind":"number","nativeSrc":"7316:18:53","nodeType":"YulLiteral","src":"7316:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7305:2:53","nodeType":"YulIdentifier","src":"7305:2:53"},"nativeSrc":"7305:30:53","nodeType":"YulFunctionCall","src":"7305:30:53"},"nativeSrc":"7302:117:53","nodeType":"YulIf","src":"7302:117:53"},{"nativeSrc":"7433:109:53","nodeType":"YulAssignment","src":"7433:109:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7514:9:53","nodeType":"YulIdentifier","src":"7514:9:53"},{"name":"offset","nativeSrc":"7525:6:53","nodeType":"YulIdentifier","src":"7525:6:53"}],"functionName":{"name":"add","nativeSrc":"7510:3:53","nodeType":"YulIdentifier","src":"7510:3:53"},"nativeSrc":"7510:22:53","nodeType":"YulFunctionCall","src":"7510:22:53"},{"name":"dataEnd","nativeSrc":"7534:7:53","nodeType":"YulIdentifier","src":"7534:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7451:58:53","nodeType":"YulIdentifier","src":"7451:58:53"},"nativeSrc":"7451:91:53","nodeType":"YulFunctionCall","src":"7451:91:53"},"variableNames":[{"name":"value0","nativeSrc":"7433:6:53","nodeType":"YulIdentifier","src":"7433:6:53"},{"name":"value1","nativeSrc":"7441:6:53","nodeType":"YulIdentifier","src":"7441:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"6978:581:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7052:9:53","nodeType":"YulTypedName","src":"7052:9:53","type":""},{"name":"dataEnd","nativeSrc":"7063:7:53","nodeType":"YulTypedName","src":"7063:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7075:6:53","nodeType":"YulTypedName","src":"7075:6:53","type":""},{"name":"value1","nativeSrc":"7083:6:53","nodeType":"YulTypedName","src":"7083:6:53","type":""}],"src":"6978:581:53"},{"body":{"nativeSrc":"7608:79:53","nodeType":"YulBlock","src":"7608:79:53","statements":[{"body":{"nativeSrc":"7665:16:53","nodeType":"YulBlock","src":"7665:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7674:1:53","nodeType":"YulLiteral","src":"7674:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7677:1:53","nodeType":"YulLiteral","src":"7677:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7667:6:53","nodeType":"YulIdentifier","src":"7667:6:53"},"nativeSrc":"7667:12:53","nodeType":"YulFunctionCall","src":"7667:12:53"},"nativeSrc":"7667:12:53","nodeType":"YulExpressionStatement","src":"7667:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7631:5:53","nodeType":"YulIdentifier","src":"7631:5:53"},{"arguments":[{"name":"value","nativeSrc":"7656:5:53","nodeType":"YulIdentifier","src":"7656:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7638:17:53","nodeType":"YulIdentifier","src":"7638:17:53"},"nativeSrc":"7638:24:53","nodeType":"YulFunctionCall","src":"7638:24:53"}],"functionName":{"name":"eq","nativeSrc":"7628:2:53","nodeType":"YulIdentifier","src":"7628:2:53"},"nativeSrc":"7628:35:53","nodeType":"YulFunctionCall","src":"7628:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7621:6:53","nodeType":"YulIdentifier","src":"7621:6:53"},"nativeSrc":"7621:43:53","nodeType":"YulFunctionCall","src":"7621:43:53"},"nativeSrc":"7618:63:53","nodeType":"YulIf","src":"7618:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"7565:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7601:5:53","nodeType":"YulTypedName","src":"7601:5:53","type":""}],"src":"7565:122:53"},{"body":{"nativeSrc":"7745:87:53","nodeType":"YulBlock","src":"7745:87:53","statements":[{"nativeSrc":"7755:29:53","nodeType":"YulAssignment","src":"7755:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7777:6:53","nodeType":"YulIdentifier","src":"7777:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7764:12:53","nodeType":"YulIdentifier","src":"7764:12:53"},"nativeSrc":"7764:20:53","nodeType":"YulFunctionCall","src":"7764:20:53"},"variableNames":[{"name":"value","nativeSrc":"7755:5:53","nodeType":"YulIdentifier","src":"7755:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7820:5:53","nodeType":"YulIdentifier","src":"7820:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7793:26:53","nodeType":"YulIdentifier","src":"7793:26:53"},"nativeSrc":"7793:33:53","nodeType":"YulFunctionCall","src":"7793:33:53"},"nativeSrc":"7793:33:53","nodeType":"YulExpressionStatement","src":"7793:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"7693:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7723:6:53","nodeType":"YulTypedName","src":"7723:6:53","type":""},{"name":"end","nativeSrc":"7731:3:53","nodeType":"YulTypedName","src":"7731:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7739:5:53","nodeType":"YulTypedName","src":"7739:5:53","type":""}],"src":"7693:139:53"},{"body":{"nativeSrc":"7921:391:53","nodeType":"YulBlock","src":"7921:391:53","statements":[{"body":{"nativeSrc":"7967:83:53","nodeType":"YulBlock","src":"7967:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7969:77:53","nodeType":"YulIdentifier","src":"7969:77:53"},"nativeSrc":"7969:79:53","nodeType":"YulFunctionCall","src":"7969:79:53"},"nativeSrc":"7969:79:53","nodeType":"YulExpressionStatement","src":"7969:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7942:7:53","nodeType":"YulIdentifier","src":"7942:7:53"},{"name":"headStart","nativeSrc":"7951:9:53","nodeType":"YulIdentifier","src":"7951:9:53"}],"functionName":{"name":"sub","nativeSrc":"7938:3:53","nodeType":"YulIdentifier","src":"7938:3:53"},"nativeSrc":"7938:23:53","nodeType":"YulFunctionCall","src":"7938:23:53"},{"kind":"number","nativeSrc":"7963:2:53","nodeType":"YulLiteral","src":"7963:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7934:3:53","nodeType":"YulIdentifier","src":"7934:3:53"},"nativeSrc":"7934:32:53","nodeType":"YulFunctionCall","src":"7934:32:53"},"nativeSrc":"7931:119:53","nodeType":"YulIf","src":"7931:119:53"},{"nativeSrc":"8060:117:53","nodeType":"YulBlock","src":"8060:117:53","statements":[{"nativeSrc":"8075:15:53","nodeType":"YulVariableDeclaration","src":"8075:15:53","value":{"kind":"number","nativeSrc":"8089:1:53","nodeType":"YulLiteral","src":"8089:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8079:6:53","nodeType":"YulTypedName","src":"8079:6:53","type":""}]},{"nativeSrc":"8104:63:53","nodeType":"YulAssignment","src":"8104:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8139:9:53","nodeType":"YulIdentifier","src":"8139:9:53"},{"name":"offset","nativeSrc":"8150:6:53","nodeType":"YulIdentifier","src":"8150:6:53"}],"functionName":{"name":"add","nativeSrc":"8135:3:53","nodeType":"YulIdentifier","src":"8135:3:53"},"nativeSrc":"8135:22:53","nodeType":"YulFunctionCall","src":"8135:22:53"},{"name":"dataEnd","nativeSrc":"8159:7:53","nodeType":"YulIdentifier","src":"8159:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8114:20:53","nodeType":"YulIdentifier","src":"8114:20:53"},"nativeSrc":"8114:53:53","nodeType":"YulFunctionCall","src":"8114:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8104:6:53","nodeType":"YulIdentifier","src":"8104:6:53"}]}]},{"nativeSrc":"8187:118:53","nodeType":"YulBlock","src":"8187:118:53","statements":[{"nativeSrc":"8202:16:53","nodeType":"YulVariableDeclaration","src":"8202:16:53","value":{"kind":"number","nativeSrc":"8216:2:53","nodeType":"YulLiteral","src":"8216:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8206:6:53","nodeType":"YulTypedName","src":"8206:6:53","type":""}]},{"nativeSrc":"8232:63:53","nodeType":"YulAssignment","src":"8232:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8267:9:53","nodeType":"YulIdentifier","src":"8267:9:53"},{"name":"offset","nativeSrc":"8278:6:53","nodeType":"YulIdentifier","src":"8278:6:53"}],"functionName":{"name":"add","nativeSrc":"8263:3:53","nodeType":"YulIdentifier","src":"8263:3:53"},"nativeSrc":"8263:22:53","nodeType":"YulFunctionCall","src":"8263:22:53"},{"name":"dataEnd","nativeSrc":"8287:7:53","nodeType":"YulIdentifier","src":"8287:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8242:20:53","nodeType":"YulIdentifier","src":"8242:20:53"},"nativeSrc":"8242:53:53","nodeType":"YulFunctionCall","src":"8242:53:53"},"variableNames":[{"name":"value1","nativeSrc":"8232:6:53","nodeType":"YulIdentifier","src":"8232:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"7838:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7883:9:53","nodeType":"YulTypedName","src":"7883:9:53","type":""},{"name":"dataEnd","nativeSrc":"7894:7:53","nodeType":"YulTypedName","src":"7894:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7906:6:53","nodeType":"YulTypedName","src":"7906:6:53","type":""},{"name":"value1","nativeSrc":"7914:6:53","nodeType":"YulTypedName","src":"7914:6:53","type":""}],"src":"7838:474:53"},{"body":{"nativeSrc":"8383:53:53","nodeType":"YulBlock","src":"8383:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8400:3:53","nodeType":"YulIdentifier","src":"8400:3:53"},{"arguments":[{"name":"value","nativeSrc":"8423:5:53","nodeType":"YulIdentifier","src":"8423:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8405:17:53","nodeType":"YulIdentifier","src":"8405:17:53"},"nativeSrc":"8405:24:53","nodeType":"YulFunctionCall","src":"8405:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8393:6:53","nodeType":"YulIdentifier","src":"8393:6:53"},"nativeSrc":"8393:37:53","nodeType":"YulFunctionCall","src":"8393:37:53"},"nativeSrc":"8393:37:53","nodeType":"YulExpressionStatement","src":"8393:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8318:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8371:5:53","nodeType":"YulTypedName","src":"8371:5:53","type":""},{"name":"pos","nativeSrc":"8378:3:53","nodeType":"YulTypedName","src":"8378:3:53","type":""}],"src":"8318:118:53"},{"body":{"nativeSrc":"8540:124:53","nodeType":"YulBlock","src":"8540:124:53","statements":[{"nativeSrc":"8550:26:53","nodeType":"YulAssignment","src":"8550:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8562:9:53","nodeType":"YulIdentifier","src":"8562:9:53"},{"kind":"number","nativeSrc":"8573:2:53","nodeType":"YulLiteral","src":"8573:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8558:3:53","nodeType":"YulIdentifier","src":"8558:3:53"},"nativeSrc":"8558:18:53","nodeType":"YulFunctionCall","src":"8558:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8550:4:53","nodeType":"YulIdentifier","src":"8550:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8630:6:53","nodeType":"YulIdentifier","src":"8630:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8643:9:53","nodeType":"YulIdentifier","src":"8643:9:53"},{"kind":"number","nativeSrc":"8654:1:53","nodeType":"YulLiteral","src":"8654:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8639:3:53","nodeType":"YulIdentifier","src":"8639:3:53"},"nativeSrc":"8639:17:53","nodeType":"YulFunctionCall","src":"8639:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8586:43:53","nodeType":"YulIdentifier","src":"8586:43:53"},"nativeSrc":"8586:71:53","nodeType":"YulFunctionCall","src":"8586:71:53"},"nativeSrc":"8586:71:53","nodeType":"YulExpressionStatement","src":"8586:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8442:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8512:9:53","nodeType":"YulTypedName","src":"8512:9:53","type":""},{"name":"value0","nativeSrc":"8524:6:53","nodeType":"YulTypedName","src":"8524:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8535:4:53","nodeType":"YulTypedName","src":"8535:4:53","type":""}],"src":"8442:222:53"},{"body":{"nativeSrc":"8777:478:53","nodeType":"YulBlock","src":"8777:478:53","statements":[{"body":{"nativeSrc":"8826:83:53","nodeType":"YulBlock","src":"8826:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"8828:77:53","nodeType":"YulIdentifier","src":"8828:77:53"},"nativeSrc":"8828:79:53","nodeType":"YulFunctionCall","src":"8828:79:53"},"nativeSrc":"8828:79:53","nodeType":"YulExpressionStatement","src":"8828:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8805:6:53","nodeType":"YulIdentifier","src":"8805:6:53"},{"kind":"number","nativeSrc":"8813:4:53","nodeType":"YulLiteral","src":"8813:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"8801:3:53","nodeType":"YulIdentifier","src":"8801:3:53"},"nativeSrc":"8801:17:53","nodeType":"YulFunctionCall","src":"8801:17:53"},{"name":"end","nativeSrc":"8820:3:53","nodeType":"YulIdentifier","src":"8820:3:53"}],"functionName":{"name":"slt","nativeSrc":"8797:3:53","nodeType":"YulIdentifier","src":"8797:3:53"},"nativeSrc":"8797:27:53","nodeType":"YulFunctionCall","src":"8797:27:53"}],"functionName":{"name":"iszero","nativeSrc":"8790:6:53","nodeType":"YulIdentifier","src":"8790:6:53"},"nativeSrc":"8790:35:53","nodeType":"YulFunctionCall","src":"8790:35:53"},"nativeSrc":"8787:122:53","nodeType":"YulIf","src":"8787:122:53"},{"nativeSrc":"8918:30:53","nodeType":"YulAssignment","src":"8918:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"8941:6:53","nodeType":"YulIdentifier","src":"8941:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8928:12:53","nodeType":"YulIdentifier","src":"8928:12:53"},"nativeSrc":"8928:20:53","nodeType":"YulFunctionCall","src":"8928:20:53"},"variableNames":[{"name":"length","nativeSrc":"8918:6:53","nodeType":"YulIdentifier","src":"8918:6:53"}]},{"body":{"nativeSrc":"8991:83:53","nodeType":"YulBlock","src":"8991:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"8993:77:53","nodeType":"YulIdentifier","src":"8993:77:53"},"nativeSrc":"8993:79:53","nodeType":"YulFunctionCall","src":"8993:79:53"},"nativeSrc":"8993:79:53","nodeType":"YulExpressionStatement","src":"8993:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8963:6:53","nodeType":"YulIdentifier","src":"8963:6:53"},{"kind":"number","nativeSrc":"8971:18:53","nodeType":"YulLiteral","src":"8971:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8960:2:53","nodeType":"YulIdentifier","src":"8960:2:53"},"nativeSrc":"8960:30:53","nodeType":"YulFunctionCall","src":"8960:30:53"},"nativeSrc":"8957:117:53","nodeType":"YulIf","src":"8957:117:53"},{"nativeSrc":"9083:29:53","nodeType":"YulAssignment","src":"9083:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9099:6:53","nodeType":"YulIdentifier","src":"9099:6:53"},{"kind":"number","nativeSrc":"9107:4:53","nodeType":"YulLiteral","src":"9107:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9095:3:53","nodeType":"YulIdentifier","src":"9095:3:53"},"nativeSrc":"9095:17:53","nodeType":"YulFunctionCall","src":"9095:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"9083:8:53","nodeType":"YulIdentifier","src":"9083:8:53"}]},{"body":{"nativeSrc":"9166:83:53","nodeType":"YulBlock","src":"9166:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9168:77:53","nodeType":"YulIdentifier","src":"9168:77:53"},"nativeSrc":"9168:79:53","nodeType":"YulFunctionCall","src":"9168:79:53"},"nativeSrc":"9168:79:53","nodeType":"YulExpressionStatement","src":"9168:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"9131:8:53","nodeType":"YulIdentifier","src":"9131:8:53"},{"arguments":[{"name":"length","nativeSrc":"9145:6:53","nodeType":"YulIdentifier","src":"9145:6:53"},{"kind":"number","nativeSrc":"9153:4:53","nodeType":"YulLiteral","src":"9153:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9141:3:53","nodeType":"YulIdentifier","src":"9141:3:53"},"nativeSrc":"9141:17:53","nodeType":"YulFunctionCall","src":"9141:17:53"}],"functionName":{"name":"add","nativeSrc":"9127:3:53","nodeType":"YulIdentifier","src":"9127:3:53"},"nativeSrc":"9127:32:53","nodeType":"YulFunctionCall","src":"9127:32:53"},{"name":"end","nativeSrc":"9161:3:53","nodeType":"YulIdentifier","src":"9161:3:53"}],"functionName":{"name":"gt","nativeSrc":"9124:2:53","nodeType":"YulIdentifier","src":"9124:2:53"},"nativeSrc":"9124:41:53","nodeType":"YulFunctionCall","src":"9124:41:53"},"nativeSrc":"9121:128:53","nodeType":"YulIf","src":"9121:128:53"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"8687:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8744:6:53","nodeType":"YulTypedName","src":"8744:6:53","type":""},{"name":"end","nativeSrc":"8752:3:53","nodeType":"YulTypedName","src":"8752:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"8760:8:53","nodeType":"YulTypedName","src":"8760:8:53","type":""},{"name":"length","nativeSrc":"8770:6:53","nodeType":"YulTypedName","src":"8770:6:53","type":""}],"src":"8687:568:53"},{"body":{"nativeSrc":"9484:1346:53","nodeType":"YulBlock","src":"9484:1346:53","statements":[{"body":{"nativeSrc":"9531:83:53","nodeType":"YulBlock","src":"9531:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9533:77:53","nodeType":"YulIdentifier","src":"9533:77:53"},"nativeSrc":"9533:79:53","nodeType":"YulFunctionCall","src":"9533:79:53"},"nativeSrc":"9533:79:53","nodeType":"YulExpressionStatement","src":"9533:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9505:7:53","nodeType":"YulIdentifier","src":"9505:7:53"},{"name":"headStart","nativeSrc":"9514:9:53","nodeType":"YulIdentifier","src":"9514:9:53"}],"functionName":{"name":"sub","nativeSrc":"9501:3:53","nodeType":"YulIdentifier","src":"9501:3:53"},"nativeSrc":"9501:23:53","nodeType":"YulFunctionCall","src":"9501:23:53"},{"kind":"number","nativeSrc":"9526:3:53","nodeType":"YulLiteral","src":"9526:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"9497:3:53","nodeType":"YulIdentifier","src":"9497:3:53"},"nativeSrc":"9497:33:53","nodeType":"YulFunctionCall","src":"9497:33:53"},"nativeSrc":"9494:120:53","nodeType":"YulIf","src":"9494:120:53"},{"nativeSrc":"9624:117:53","nodeType":"YulBlock","src":"9624:117:53","statements":[{"nativeSrc":"9639:15:53","nodeType":"YulVariableDeclaration","src":"9639:15:53","value":{"kind":"number","nativeSrc":"9653:1:53","nodeType":"YulLiteral","src":"9653:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9643:6:53","nodeType":"YulTypedName","src":"9643:6:53","type":""}]},{"nativeSrc":"9668:63:53","nodeType":"YulAssignment","src":"9668:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9703:9:53","nodeType":"YulIdentifier","src":"9703:9:53"},{"name":"offset","nativeSrc":"9714:6:53","nodeType":"YulIdentifier","src":"9714:6:53"}],"functionName":{"name":"add","nativeSrc":"9699:3:53","nodeType":"YulIdentifier","src":"9699:3:53"},"nativeSrc":"9699:22:53","nodeType":"YulFunctionCall","src":"9699:22:53"},{"name":"dataEnd","nativeSrc":"9723:7:53","nodeType":"YulIdentifier","src":"9723:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9678:20:53","nodeType":"YulIdentifier","src":"9678:20:53"},"nativeSrc":"9678:53:53","nodeType":"YulFunctionCall","src":"9678:53:53"},"variableNames":[{"name":"value0","nativeSrc":"9668:6:53","nodeType":"YulIdentifier","src":"9668:6:53"}]}]},{"nativeSrc":"9751:118:53","nodeType":"YulBlock","src":"9751:118:53","statements":[{"nativeSrc":"9766:16:53","nodeType":"YulVariableDeclaration","src":"9766:16:53","value":{"kind":"number","nativeSrc":"9780:2:53","nodeType":"YulLiteral","src":"9780:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9770:6:53","nodeType":"YulTypedName","src":"9770:6:53","type":""}]},{"nativeSrc":"9796:63:53","nodeType":"YulAssignment","src":"9796:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9831:9:53","nodeType":"YulIdentifier","src":"9831:9:53"},{"name":"offset","nativeSrc":"9842:6:53","nodeType":"YulIdentifier","src":"9842:6:53"}],"functionName":{"name":"add","nativeSrc":"9827:3:53","nodeType":"YulIdentifier","src":"9827:3:53"},"nativeSrc":"9827:22:53","nodeType":"YulFunctionCall","src":"9827:22:53"},{"name":"dataEnd","nativeSrc":"9851:7:53","nodeType":"YulIdentifier","src":"9851:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9806:20:53","nodeType":"YulIdentifier","src":"9806:20:53"},"nativeSrc":"9806:53:53","nodeType":"YulFunctionCall","src":"9806:53:53"},"variableNames":[{"name":"value1","nativeSrc":"9796:6:53","nodeType":"YulIdentifier","src":"9796:6:53"}]}]},{"nativeSrc":"9879:313:53","nodeType":"YulBlock","src":"9879:313:53","statements":[{"nativeSrc":"9894:46:53","nodeType":"YulVariableDeclaration","src":"9894:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9925:9:53","nodeType":"YulIdentifier","src":"9925:9:53"},{"kind":"number","nativeSrc":"9936:2:53","nodeType":"YulLiteral","src":"9936:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9921:3:53","nodeType":"YulIdentifier","src":"9921:3:53"},"nativeSrc":"9921:18:53","nodeType":"YulFunctionCall","src":"9921:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9908:12:53","nodeType":"YulIdentifier","src":"9908:12:53"},"nativeSrc":"9908:32:53","nodeType":"YulFunctionCall","src":"9908:32:53"},"variables":[{"name":"offset","nativeSrc":"9898:6:53","nodeType":"YulTypedName","src":"9898:6:53","type":""}]},{"body":{"nativeSrc":"9987:83:53","nodeType":"YulBlock","src":"9987:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9989:77:53","nodeType":"YulIdentifier","src":"9989:77:53"},"nativeSrc":"9989:79:53","nodeType":"YulFunctionCall","src":"9989:79:53"},"nativeSrc":"9989:79:53","nodeType":"YulExpressionStatement","src":"9989:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9959:6:53","nodeType":"YulIdentifier","src":"9959:6:53"},{"kind":"number","nativeSrc":"9967:18:53","nodeType":"YulLiteral","src":"9967:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9956:2:53","nodeType":"YulIdentifier","src":"9956:2:53"},"nativeSrc":"9956:30:53","nodeType":"YulFunctionCall","src":"9956:30:53"},"nativeSrc":"9953:117:53","nodeType":"YulIf","src":"9953:117:53"},{"nativeSrc":"10084:98:53","nodeType":"YulAssignment","src":"10084:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10154:9:53","nodeType":"YulIdentifier","src":"10154:9:53"},{"name":"offset","nativeSrc":"10165:6:53","nodeType":"YulIdentifier","src":"10165:6:53"}],"functionName":{"name":"add","nativeSrc":"10150:3:53","nodeType":"YulIdentifier","src":"10150:3:53"},"nativeSrc":"10150:22:53","nodeType":"YulFunctionCall","src":"10150:22:53"},{"name":"dataEnd","nativeSrc":"10174:7:53","nodeType":"YulIdentifier","src":"10174:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"10102:47:53","nodeType":"YulIdentifier","src":"10102:47:53"},"nativeSrc":"10102:80:53","nodeType":"YulFunctionCall","src":"10102:80:53"},"variableNames":[{"name":"value2","nativeSrc":"10084:6:53","nodeType":"YulIdentifier","src":"10084:6:53"},{"name":"value3","nativeSrc":"10092:6:53","nodeType":"YulIdentifier","src":"10092:6:53"}]}]},{"nativeSrc":"10202:313:53","nodeType":"YulBlock","src":"10202:313:53","statements":[{"nativeSrc":"10217:46:53","nodeType":"YulVariableDeclaration","src":"10217:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10248:9:53","nodeType":"YulIdentifier","src":"10248:9:53"},{"kind":"number","nativeSrc":"10259:2:53","nodeType":"YulLiteral","src":"10259:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10244:3:53","nodeType":"YulIdentifier","src":"10244:3:53"},"nativeSrc":"10244:18:53","nodeType":"YulFunctionCall","src":"10244:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"10231:12:53","nodeType":"YulIdentifier","src":"10231:12:53"},"nativeSrc":"10231:32:53","nodeType":"YulFunctionCall","src":"10231:32:53"},"variables":[{"name":"offset","nativeSrc":"10221:6:53","nodeType":"YulTypedName","src":"10221:6:53","type":""}]},{"body":{"nativeSrc":"10310:83:53","nodeType":"YulBlock","src":"10310:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10312:77:53","nodeType":"YulIdentifier","src":"10312:77:53"},"nativeSrc":"10312:79:53","nodeType":"YulFunctionCall","src":"10312:79:53"},"nativeSrc":"10312:79:53","nodeType":"YulExpressionStatement","src":"10312:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10282:6:53","nodeType":"YulIdentifier","src":"10282:6:53"},{"kind":"number","nativeSrc":"10290:18:53","nodeType":"YulLiteral","src":"10290:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10279:2:53","nodeType":"YulIdentifier","src":"10279:2:53"},"nativeSrc":"10279:30:53","nodeType":"YulFunctionCall","src":"10279:30:53"},"nativeSrc":"10276:117:53","nodeType":"YulIf","src":"10276:117:53"},{"nativeSrc":"10407:98:53","nodeType":"YulAssignment","src":"10407:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10477:9:53","nodeType":"YulIdentifier","src":"10477:9:53"},{"name":"offset","nativeSrc":"10488:6:53","nodeType":"YulIdentifier","src":"10488:6:53"}],"functionName":{"name":"add","nativeSrc":"10473:3:53","nodeType":"YulIdentifier","src":"10473:3:53"},"nativeSrc":"10473:22:53","nodeType":"YulFunctionCall","src":"10473:22:53"},{"name":"dataEnd","nativeSrc":"10497:7:53","nodeType":"YulIdentifier","src":"10497:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"10425:47:53","nodeType":"YulIdentifier","src":"10425:47:53"},"nativeSrc":"10425:80:53","nodeType":"YulFunctionCall","src":"10425:80:53"},"variableNames":[{"name":"value4","nativeSrc":"10407:6:53","nodeType":"YulIdentifier","src":"10407:6:53"},{"name":"value5","nativeSrc":"10415:6:53","nodeType":"YulIdentifier","src":"10415:6:53"}]}]},{"nativeSrc":"10525:298:53","nodeType":"YulBlock","src":"10525:298:53","statements":[{"nativeSrc":"10540:47:53","nodeType":"YulVariableDeclaration","src":"10540:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10571:9:53","nodeType":"YulIdentifier","src":"10571:9:53"},{"kind":"number","nativeSrc":"10582:3:53","nodeType":"YulLiteral","src":"10582:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10567:3:53","nodeType":"YulIdentifier","src":"10567:3:53"},"nativeSrc":"10567:19:53","nodeType":"YulFunctionCall","src":"10567:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"10554:12:53","nodeType":"YulIdentifier","src":"10554:12:53"},"nativeSrc":"10554:33:53","nodeType":"YulFunctionCall","src":"10554:33:53"},"variables":[{"name":"offset","nativeSrc":"10544:6:53","nodeType":"YulTypedName","src":"10544:6:53","type":""}]},{"body":{"nativeSrc":"10634:83:53","nodeType":"YulBlock","src":"10634:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10636:77:53","nodeType":"YulIdentifier","src":"10636:77:53"},"nativeSrc":"10636:79:53","nodeType":"YulFunctionCall","src":"10636:79:53"},"nativeSrc":"10636:79:53","nodeType":"YulExpressionStatement","src":"10636:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10606:6:53","nodeType":"YulIdentifier","src":"10606:6:53"},{"kind":"number","nativeSrc":"10614:18:53","nodeType":"YulLiteral","src":"10614:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10603:2:53","nodeType":"YulIdentifier","src":"10603:2:53"},"nativeSrc":"10603:30:53","nodeType":"YulFunctionCall","src":"10603:30:53"},"nativeSrc":"10600:117:53","nodeType":"YulIf","src":"10600:117:53"},{"nativeSrc":"10731:82:53","nodeType":"YulAssignment","src":"10731:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10785:9:53","nodeType":"YulIdentifier","src":"10785:9:53"},{"name":"offset","nativeSrc":"10796:6:53","nodeType":"YulIdentifier","src":"10796:6:53"}],"functionName":{"name":"add","nativeSrc":"10781:3:53","nodeType":"YulIdentifier","src":"10781:3:53"},"nativeSrc":"10781:22:53","nodeType":"YulFunctionCall","src":"10781:22:53"},{"name":"dataEnd","nativeSrc":"10805:7:53","nodeType":"YulIdentifier","src":"10805:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"10749:31:53","nodeType":"YulIdentifier","src":"10749:31:53"},"nativeSrc":"10749:64:53","nodeType":"YulFunctionCall","src":"10749:64:53"},"variableNames":[{"name":"value6","nativeSrc":"10731:6:53","nodeType":"YulIdentifier","src":"10731:6:53"},{"name":"value7","nativeSrc":"10739:6:53","nodeType":"YulIdentifier","src":"10739:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"9261:1569:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9398:9:53","nodeType":"YulTypedName","src":"9398:9:53","type":""},{"name":"dataEnd","nativeSrc":"9409:7:53","nodeType":"YulTypedName","src":"9409:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9421:6:53","nodeType":"YulTypedName","src":"9421:6:53","type":""},{"name":"value1","nativeSrc":"9429:6:53","nodeType":"YulTypedName","src":"9429:6:53","type":""},{"name":"value2","nativeSrc":"9437:6:53","nodeType":"YulTypedName","src":"9437:6:53","type":""},{"name":"value3","nativeSrc":"9445:6:53","nodeType":"YulTypedName","src":"9445:6:53","type":""},{"name":"value4","nativeSrc":"9453:6:53","nodeType":"YulTypedName","src":"9453:6:53","type":""},{"name":"value5","nativeSrc":"9461:6:53","nodeType":"YulTypedName","src":"9461:6:53","type":""},{"name":"value6","nativeSrc":"9469:6:53","nodeType":"YulTypedName","src":"9469:6:53","type":""},{"name":"value7","nativeSrc":"9477:6:53","nodeType":"YulTypedName","src":"9477:6:53","type":""}],"src":"9261:1569:53"},{"body":{"nativeSrc":"10899:52:53","nodeType":"YulBlock","src":"10899:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10916:3:53","nodeType":"YulIdentifier","src":"10916:3:53"},{"arguments":[{"name":"value","nativeSrc":"10938:5:53","nodeType":"YulIdentifier","src":"10938:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"10921:16:53","nodeType":"YulIdentifier","src":"10921:16:53"},"nativeSrc":"10921:23:53","nodeType":"YulFunctionCall","src":"10921:23:53"}],"functionName":{"name":"mstore","nativeSrc":"10909:6:53","nodeType":"YulIdentifier","src":"10909:6:53"},"nativeSrc":"10909:36:53","nodeType":"YulFunctionCall","src":"10909:36:53"},"nativeSrc":"10909:36:53","nodeType":"YulExpressionStatement","src":"10909:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"10836:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10887:5:53","nodeType":"YulTypedName","src":"10887:5:53","type":""},{"name":"pos","nativeSrc":"10894:3:53","nodeType":"YulTypedName","src":"10894:3:53","type":""}],"src":"10836:115:53"},{"body":{"nativeSrc":"11053:122:53","nodeType":"YulBlock","src":"11053:122:53","statements":[{"nativeSrc":"11063:26:53","nodeType":"YulAssignment","src":"11063:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11075:9:53","nodeType":"YulIdentifier","src":"11075:9:53"},{"kind":"number","nativeSrc":"11086:2:53","nodeType":"YulLiteral","src":"11086:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11071:3:53","nodeType":"YulIdentifier","src":"11071:3:53"},"nativeSrc":"11071:18:53","nodeType":"YulFunctionCall","src":"11071:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11063:4:53","nodeType":"YulIdentifier","src":"11063:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11141:6:53","nodeType":"YulIdentifier","src":"11141:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"11154:9:53","nodeType":"YulIdentifier","src":"11154:9:53"},{"kind":"number","nativeSrc":"11165:1:53","nodeType":"YulLiteral","src":"11165:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11150:3:53","nodeType":"YulIdentifier","src":"11150:3:53"},"nativeSrc":"11150:17:53","nodeType":"YulFunctionCall","src":"11150:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"11099:41:53","nodeType":"YulIdentifier","src":"11099:41:53"},"nativeSrc":"11099:69:53","nodeType":"YulFunctionCall","src":"11099:69:53"},"nativeSrc":"11099:69:53","nodeType":"YulExpressionStatement","src":"11099:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"10957:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11025:9:53","nodeType":"YulTypedName","src":"11025:9:53","type":""},{"name":"value0","nativeSrc":"11037:6:53","nodeType":"YulTypedName","src":"11037:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11048:4:53","nodeType":"YulTypedName","src":"11048:4:53","type":""}],"src":"10957:218:53"},{"body":{"nativeSrc":"11334:956:53","nodeType":"YulBlock","src":"11334:956:53","statements":[{"body":{"nativeSrc":"11381:83:53","nodeType":"YulBlock","src":"11381:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11383:77:53","nodeType":"YulIdentifier","src":"11383:77:53"},"nativeSrc":"11383:79:53","nodeType":"YulFunctionCall","src":"11383:79:53"},"nativeSrc":"11383:79:53","nodeType":"YulExpressionStatement","src":"11383:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11355:7:53","nodeType":"YulIdentifier","src":"11355:7:53"},{"name":"headStart","nativeSrc":"11364:9:53","nodeType":"YulIdentifier","src":"11364:9:53"}],"functionName":{"name":"sub","nativeSrc":"11351:3:53","nodeType":"YulIdentifier","src":"11351:3:53"},"nativeSrc":"11351:23:53","nodeType":"YulFunctionCall","src":"11351:23:53"},{"kind":"number","nativeSrc":"11376:3:53","nodeType":"YulLiteral","src":"11376:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"11347:3:53","nodeType":"YulIdentifier","src":"11347:3:53"},"nativeSrc":"11347:33:53","nodeType":"YulFunctionCall","src":"11347:33:53"},"nativeSrc":"11344:120:53","nodeType":"YulIf","src":"11344:120:53"},{"nativeSrc":"11474:117:53","nodeType":"YulBlock","src":"11474:117:53","statements":[{"nativeSrc":"11489:15:53","nodeType":"YulVariableDeclaration","src":"11489:15:53","value":{"kind":"number","nativeSrc":"11503:1:53","nodeType":"YulLiteral","src":"11503:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11493:6:53","nodeType":"YulTypedName","src":"11493:6:53","type":""}]},{"nativeSrc":"11518:63:53","nodeType":"YulAssignment","src":"11518:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11553:9:53","nodeType":"YulIdentifier","src":"11553:9:53"},{"name":"offset","nativeSrc":"11564:6:53","nodeType":"YulIdentifier","src":"11564:6:53"}],"functionName":{"name":"add","nativeSrc":"11549:3:53","nodeType":"YulIdentifier","src":"11549:3:53"},"nativeSrc":"11549:22:53","nodeType":"YulFunctionCall","src":"11549:22:53"},{"name":"dataEnd","nativeSrc":"11573:7:53","nodeType":"YulIdentifier","src":"11573:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11528:20:53","nodeType":"YulIdentifier","src":"11528:20:53"},"nativeSrc":"11528:53:53","nodeType":"YulFunctionCall","src":"11528:53:53"},"variableNames":[{"name":"value0","nativeSrc":"11518:6:53","nodeType":"YulIdentifier","src":"11518:6:53"}]}]},{"nativeSrc":"11601:118:53","nodeType":"YulBlock","src":"11601:118:53","statements":[{"nativeSrc":"11616:16:53","nodeType":"YulVariableDeclaration","src":"11616:16:53","value":{"kind":"number","nativeSrc":"11630:2:53","nodeType":"YulLiteral","src":"11630:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11620:6:53","nodeType":"YulTypedName","src":"11620:6:53","type":""}]},{"nativeSrc":"11646:63:53","nodeType":"YulAssignment","src":"11646:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11681:9:53","nodeType":"YulIdentifier","src":"11681:9:53"},{"name":"offset","nativeSrc":"11692:6:53","nodeType":"YulIdentifier","src":"11692:6:53"}],"functionName":{"name":"add","nativeSrc":"11677:3:53","nodeType":"YulIdentifier","src":"11677:3:53"},"nativeSrc":"11677:22:53","nodeType":"YulFunctionCall","src":"11677:22:53"},{"name":"dataEnd","nativeSrc":"11701:7:53","nodeType":"YulIdentifier","src":"11701:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11656:20:53","nodeType":"YulIdentifier","src":"11656:20:53"},"nativeSrc":"11656:53:53","nodeType":"YulFunctionCall","src":"11656:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11646:6:53","nodeType":"YulIdentifier","src":"11646:6:53"}]}]},{"nativeSrc":"11729:118:53","nodeType":"YulBlock","src":"11729:118:53","statements":[{"nativeSrc":"11744:16:53","nodeType":"YulVariableDeclaration","src":"11744:16:53","value":{"kind":"number","nativeSrc":"11758:2:53","nodeType":"YulLiteral","src":"11758:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11748:6:53","nodeType":"YulTypedName","src":"11748:6:53","type":""}]},{"nativeSrc":"11774:63:53","nodeType":"YulAssignment","src":"11774:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11809:9:53","nodeType":"YulIdentifier","src":"11809:9:53"},{"name":"offset","nativeSrc":"11820:6:53","nodeType":"YulIdentifier","src":"11820:6:53"}],"functionName":{"name":"add","nativeSrc":"11805:3:53","nodeType":"YulIdentifier","src":"11805:3:53"},"nativeSrc":"11805:22:53","nodeType":"YulFunctionCall","src":"11805:22:53"},{"name":"dataEnd","nativeSrc":"11829:7:53","nodeType":"YulIdentifier","src":"11829:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11784:20:53","nodeType":"YulIdentifier","src":"11784:20:53"},"nativeSrc":"11784:53:53","nodeType":"YulFunctionCall","src":"11784:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11774:6:53","nodeType":"YulIdentifier","src":"11774:6:53"}]}]},{"nativeSrc":"11857:118:53","nodeType":"YulBlock","src":"11857:118:53","statements":[{"nativeSrc":"11872:16:53","nodeType":"YulVariableDeclaration","src":"11872:16:53","value":{"kind":"number","nativeSrc":"11886:2:53","nodeType":"YulLiteral","src":"11886:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11876:6:53","nodeType":"YulTypedName","src":"11876:6:53","type":""}]},{"nativeSrc":"11902:63:53","nodeType":"YulAssignment","src":"11902:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11937:9:53","nodeType":"YulIdentifier","src":"11937:9:53"},{"name":"offset","nativeSrc":"11948:6:53","nodeType":"YulIdentifier","src":"11948:6:53"}],"functionName":{"name":"add","nativeSrc":"11933:3:53","nodeType":"YulIdentifier","src":"11933:3:53"},"nativeSrc":"11933:22:53","nodeType":"YulFunctionCall","src":"11933:22:53"},{"name":"dataEnd","nativeSrc":"11957:7:53","nodeType":"YulIdentifier","src":"11957:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11912:20:53","nodeType":"YulIdentifier","src":"11912:20:53"},"nativeSrc":"11912:53:53","nodeType":"YulFunctionCall","src":"11912:53:53"},"variableNames":[{"name":"value3","nativeSrc":"11902:6:53","nodeType":"YulIdentifier","src":"11902:6:53"}]}]},{"nativeSrc":"11985:298:53","nodeType":"YulBlock","src":"11985:298:53","statements":[{"nativeSrc":"12000:47:53","nodeType":"YulVariableDeclaration","src":"12000:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12031:9:53","nodeType":"YulIdentifier","src":"12031:9:53"},{"kind":"number","nativeSrc":"12042:3:53","nodeType":"YulLiteral","src":"12042:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12027:3:53","nodeType":"YulIdentifier","src":"12027:3:53"},"nativeSrc":"12027:19:53","nodeType":"YulFunctionCall","src":"12027:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"12014:12:53","nodeType":"YulIdentifier","src":"12014:12:53"},"nativeSrc":"12014:33:53","nodeType":"YulFunctionCall","src":"12014:33:53"},"variables":[{"name":"offset","nativeSrc":"12004:6:53","nodeType":"YulTypedName","src":"12004:6:53","type":""}]},{"body":{"nativeSrc":"12094:83:53","nodeType":"YulBlock","src":"12094:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12096:77:53","nodeType":"YulIdentifier","src":"12096:77:53"},"nativeSrc":"12096:79:53","nodeType":"YulFunctionCall","src":"12096:79:53"},"nativeSrc":"12096:79:53","nodeType":"YulExpressionStatement","src":"12096:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12066:6:53","nodeType":"YulIdentifier","src":"12066:6:53"},{"kind":"number","nativeSrc":"12074:18:53","nodeType":"YulLiteral","src":"12074:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12063:2:53","nodeType":"YulIdentifier","src":"12063:2:53"},"nativeSrc":"12063:30:53","nodeType":"YulFunctionCall","src":"12063:30:53"},"nativeSrc":"12060:117:53","nodeType":"YulIf","src":"12060:117:53"},{"nativeSrc":"12191:82:53","nodeType":"YulAssignment","src":"12191:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12245:9:53","nodeType":"YulIdentifier","src":"12245:9:53"},{"name":"offset","nativeSrc":"12256:6:53","nodeType":"YulIdentifier","src":"12256:6:53"}],"functionName":{"name":"add","nativeSrc":"12241:3:53","nodeType":"YulIdentifier","src":"12241:3:53"},"nativeSrc":"12241:22:53","nodeType":"YulFunctionCall","src":"12241:22:53"},{"name":"dataEnd","nativeSrc":"12265:7:53","nodeType":"YulIdentifier","src":"12265:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"12209:31:53","nodeType":"YulIdentifier","src":"12209:31:53"},"nativeSrc":"12209:64:53","nodeType":"YulFunctionCall","src":"12209:64:53"},"variableNames":[{"name":"value4","nativeSrc":"12191:6:53","nodeType":"YulIdentifier","src":"12191:6:53"},{"name":"value5","nativeSrc":"12199:6:53","nodeType":"YulIdentifier","src":"12199:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr","nativeSrc":"11181:1109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11264:9:53","nodeType":"YulTypedName","src":"11264:9:53","type":""},{"name":"dataEnd","nativeSrc":"11275:7:53","nodeType":"YulTypedName","src":"11275:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11287:6:53","nodeType":"YulTypedName","src":"11287:6:53","type":""},{"name":"value1","nativeSrc":"11295:6:53","nodeType":"YulTypedName","src":"11295:6:53","type":""},{"name":"value2","nativeSrc":"11303:6:53","nodeType":"YulTypedName","src":"11303:6:53","type":""},{"name":"value3","nativeSrc":"11311:6:53","nodeType":"YulTypedName","src":"11311:6:53","type":""},{"name":"value4","nativeSrc":"11319:6:53","nodeType":"YulTypedName","src":"11319:6:53","type":""},{"name":"value5","nativeSrc":"11327:6:53","nodeType":"YulTypedName","src":"11327:6:53","type":""}],"src":"11181:1109:53"},{"body":{"nativeSrc":"12324:152:53","nodeType":"YulBlock","src":"12324:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12341:1:53","nodeType":"YulLiteral","src":"12341:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12344:77:53","nodeType":"YulLiteral","src":"12344:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12334:6:53","nodeType":"YulIdentifier","src":"12334:6:53"},"nativeSrc":"12334:88:53","nodeType":"YulFunctionCall","src":"12334:88:53"},"nativeSrc":"12334:88:53","nodeType":"YulExpressionStatement","src":"12334:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12438:1:53","nodeType":"YulLiteral","src":"12438:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"12441:4:53","nodeType":"YulLiteral","src":"12441:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"12431:6:53","nodeType":"YulIdentifier","src":"12431:6:53"},"nativeSrc":"12431:15:53","nodeType":"YulFunctionCall","src":"12431:15:53"},"nativeSrc":"12431:15:53","nodeType":"YulExpressionStatement","src":"12431:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12462:1:53","nodeType":"YulLiteral","src":"12462:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12465:4:53","nodeType":"YulLiteral","src":"12465:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12455:6:53","nodeType":"YulIdentifier","src":"12455:6:53"},"nativeSrc":"12455:15:53","nodeType":"YulFunctionCall","src":"12455:15:53"},"nativeSrc":"12455:15:53","nodeType":"YulExpressionStatement","src":"12455:15:53"}]},"name":"panic_error_0x32","nativeSrc":"12296:180:53","nodeType":"YulFunctionDefinition","src":"12296:180:53"},{"body":{"nativeSrc":"12522:76:53","nodeType":"YulBlock","src":"12522:76:53","statements":[{"body":{"nativeSrc":"12576:16:53","nodeType":"YulBlock","src":"12576:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12585:1:53","nodeType":"YulLiteral","src":"12585:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12588:1:53","nodeType":"YulLiteral","src":"12588:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12578:6:53","nodeType":"YulIdentifier","src":"12578:6:53"},"nativeSrc":"12578:12:53","nodeType":"YulFunctionCall","src":"12578:12:53"},"nativeSrc":"12578:12:53","nodeType":"YulExpressionStatement","src":"12578:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12545:5:53","nodeType":"YulIdentifier","src":"12545:5:53"},{"arguments":[{"name":"value","nativeSrc":"12567:5:53","nodeType":"YulIdentifier","src":"12567:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12552:14:53","nodeType":"YulIdentifier","src":"12552:14:53"},"nativeSrc":"12552:21:53","nodeType":"YulFunctionCall","src":"12552:21:53"}],"functionName":{"name":"eq","nativeSrc":"12542:2:53","nodeType":"YulIdentifier","src":"12542:2:53"},"nativeSrc":"12542:32:53","nodeType":"YulFunctionCall","src":"12542:32:53"}],"functionName":{"name":"iszero","nativeSrc":"12535:6:53","nodeType":"YulIdentifier","src":"12535:6:53"},"nativeSrc":"12535:40:53","nodeType":"YulFunctionCall","src":"12535:40:53"},"nativeSrc":"12532:60:53","nodeType":"YulIf","src":"12532:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"12482:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12515:5:53","nodeType":"YulTypedName","src":"12515:5:53","type":""}],"src":"12482:116:53"},{"body":{"nativeSrc":"12653:84:53","nodeType":"YulBlock","src":"12653:84:53","statements":[{"nativeSrc":"12663:29:53","nodeType":"YulAssignment","src":"12663:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12685:6:53","nodeType":"YulIdentifier","src":"12685:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12672:12:53","nodeType":"YulIdentifier","src":"12672:12:53"},"nativeSrc":"12672:20:53","nodeType":"YulFunctionCall","src":"12672:20:53"},"variableNames":[{"name":"value","nativeSrc":"12663:5:53","nodeType":"YulIdentifier","src":"12663:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12725:5:53","nodeType":"YulIdentifier","src":"12725:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12701:23:53","nodeType":"YulIdentifier","src":"12701:23:53"},"nativeSrc":"12701:30:53","nodeType":"YulFunctionCall","src":"12701:30:53"},"nativeSrc":"12701:30:53","nodeType":"YulExpressionStatement","src":"12701:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"12604:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12631:6:53","nodeType":"YulTypedName","src":"12631:6:53","type":""},{"name":"end","nativeSrc":"12639:3:53","nodeType":"YulTypedName","src":"12639:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12647:5:53","nodeType":"YulTypedName","src":"12647:5:53","type":""}],"src":"12604:133:53"},{"body":{"nativeSrc":"12806:260:53","nodeType":"YulBlock","src":"12806:260:53","statements":[{"body":{"nativeSrc":"12852:83:53","nodeType":"YulBlock","src":"12852:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12854:77:53","nodeType":"YulIdentifier","src":"12854:77:53"},"nativeSrc":"12854:79:53","nodeType":"YulFunctionCall","src":"12854:79:53"},"nativeSrc":"12854:79:53","nodeType":"YulExpressionStatement","src":"12854:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12827:7:53","nodeType":"YulIdentifier","src":"12827:7:53"},{"name":"headStart","nativeSrc":"12836:9:53","nodeType":"YulIdentifier","src":"12836:9:53"}],"functionName":{"name":"sub","nativeSrc":"12823:3:53","nodeType":"YulIdentifier","src":"12823:3:53"},"nativeSrc":"12823:23:53","nodeType":"YulFunctionCall","src":"12823:23:53"},{"kind":"number","nativeSrc":"12848:2:53","nodeType":"YulLiteral","src":"12848:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12819:3:53","nodeType":"YulIdentifier","src":"12819:3:53"},"nativeSrc":"12819:32:53","nodeType":"YulFunctionCall","src":"12819:32:53"},"nativeSrc":"12816:119:53","nodeType":"YulIf","src":"12816:119:53"},{"nativeSrc":"12945:114:53","nodeType":"YulBlock","src":"12945:114:53","statements":[{"nativeSrc":"12960:15:53","nodeType":"YulVariableDeclaration","src":"12960:15:53","value":{"kind":"number","nativeSrc":"12974:1:53","nodeType":"YulLiteral","src":"12974:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12964:6:53","nodeType":"YulTypedName","src":"12964:6:53","type":""}]},{"nativeSrc":"12989:60:53","nodeType":"YulAssignment","src":"12989:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13021:9:53","nodeType":"YulIdentifier","src":"13021:9:53"},{"name":"offset","nativeSrc":"13032:6:53","nodeType":"YulIdentifier","src":"13032:6:53"}],"functionName":{"name":"add","nativeSrc":"13017:3:53","nodeType":"YulIdentifier","src":"13017:3:53"},"nativeSrc":"13017:22:53","nodeType":"YulFunctionCall","src":"13017:22:53"},{"name":"dataEnd","nativeSrc":"13041:7:53","nodeType":"YulIdentifier","src":"13041:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"12999:17:53","nodeType":"YulIdentifier","src":"12999:17:53"},"nativeSrc":"12999:50:53","nodeType":"YulFunctionCall","src":"12999:50:53"},"variableNames":[{"name":"value0","nativeSrc":"12989:6:53","nodeType":"YulIdentifier","src":"12989:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"12743:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12776:9:53","nodeType":"YulTypedName","src":"12776:9:53","type":""},{"name":"dataEnd","nativeSrc":"12787:7:53","nodeType":"YulTypedName","src":"12787:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12799:6:53","nodeType":"YulTypedName","src":"12799:6:53","type":""}],"src":"12743:323:53"},{"body":{"nativeSrc":"13161:28:53","nodeType":"YulBlock","src":"13161:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13178:1:53","nodeType":"YulLiteral","src":"13178:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13181:1:53","nodeType":"YulLiteral","src":"13181:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13171:6:53","nodeType":"YulIdentifier","src":"13171:6:53"},"nativeSrc":"13171:12:53","nodeType":"YulFunctionCall","src":"13171:12:53"},"nativeSrc":"13171:12:53","nodeType":"YulExpressionStatement","src":"13171:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"13072:117:53","nodeType":"YulFunctionDefinition","src":"13072:117:53"},{"body":{"nativeSrc":"13243:54:53","nodeType":"YulBlock","src":"13243:54:53","statements":[{"nativeSrc":"13253:38:53","nodeType":"YulAssignment","src":"13253:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13271:5:53","nodeType":"YulIdentifier","src":"13271:5:53"},{"kind":"number","nativeSrc":"13278:2:53","nodeType":"YulLiteral","src":"13278:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13267:3:53","nodeType":"YulIdentifier","src":"13267:3:53"},"nativeSrc":"13267:14:53","nodeType":"YulFunctionCall","src":"13267:14:53"},{"arguments":[{"kind":"number","nativeSrc":"13287:2:53","nodeType":"YulLiteral","src":"13287:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13283:3:53","nodeType":"YulIdentifier","src":"13283:3:53"},"nativeSrc":"13283:7:53","nodeType":"YulFunctionCall","src":"13283:7:53"}],"functionName":{"name":"and","nativeSrc":"13263:3:53","nodeType":"YulIdentifier","src":"13263:3:53"},"nativeSrc":"13263:28:53","nodeType":"YulFunctionCall","src":"13263:28:53"},"variableNames":[{"name":"result","nativeSrc":"13253:6:53","nodeType":"YulIdentifier","src":"13253:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"13195:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13226:5:53","nodeType":"YulTypedName","src":"13226:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"13236:6:53","nodeType":"YulTypedName","src":"13236:6:53","type":""}],"src":"13195:102:53"},{"body":{"nativeSrc":"13331:152:53","nodeType":"YulBlock","src":"13331:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13348:1:53","nodeType":"YulLiteral","src":"13348:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13351:77:53","nodeType":"YulLiteral","src":"13351:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"13341:6:53","nodeType":"YulIdentifier","src":"13341:6:53"},"nativeSrc":"13341:88:53","nodeType":"YulFunctionCall","src":"13341:88:53"},"nativeSrc":"13341:88:53","nodeType":"YulExpressionStatement","src":"13341:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13445:1:53","nodeType":"YulLiteral","src":"13445:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"13448:4:53","nodeType":"YulLiteral","src":"13448:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"13438:6:53","nodeType":"YulIdentifier","src":"13438:6:53"},"nativeSrc":"13438:15:53","nodeType":"YulFunctionCall","src":"13438:15:53"},"nativeSrc":"13438:15:53","nodeType":"YulExpressionStatement","src":"13438:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13469:1:53","nodeType":"YulLiteral","src":"13469:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13472:4:53","nodeType":"YulLiteral","src":"13472:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13462:6:53","nodeType":"YulIdentifier","src":"13462:6:53"},"nativeSrc":"13462:15:53","nodeType":"YulFunctionCall","src":"13462:15:53"},"nativeSrc":"13462:15:53","nodeType":"YulExpressionStatement","src":"13462:15:53"}]},"name":"panic_error_0x41","nativeSrc":"13303:180:53","nodeType":"YulFunctionDefinition","src":"13303:180:53"},{"body":{"nativeSrc":"13532:238:53","nodeType":"YulBlock","src":"13532:238:53","statements":[{"nativeSrc":"13542:58:53","nodeType":"YulVariableDeclaration","src":"13542:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"13564:6:53","nodeType":"YulIdentifier","src":"13564:6:53"},{"arguments":[{"name":"size","nativeSrc":"13594:4:53","nodeType":"YulIdentifier","src":"13594:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13572:21:53","nodeType":"YulIdentifier","src":"13572:21:53"},"nativeSrc":"13572:27:53","nodeType":"YulFunctionCall","src":"13572:27:53"}],"functionName":{"name":"add","nativeSrc":"13560:3:53","nodeType":"YulIdentifier","src":"13560:3:53"},"nativeSrc":"13560:40:53","nodeType":"YulFunctionCall","src":"13560:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"13546:10:53","nodeType":"YulTypedName","src":"13546:10:53","type":""}]},{"body":{"nativeSrc":"13711:22:53","nodeType":"YulBlock","src":"13711:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"13713:16:53","nodeType":"YulIdentifier","src":"13713:16:53"},"nativeSrc":"13713:18:53","nodeType":"YulFunctionCall","src":"13713:18:53"},"nativeSrc":"13713:18:53","nodeType":"YulExpressionStatement","src":"13713:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"13654:10:53","nodeType":"YulIdentifier","src":"13654:10:53"},{"kind":"number","nativeSrc":"13666:18:53","nodeType":"YulLiteral","src":"13666:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13651:2:53","nodeType":"YulIdentifier","src":"13651:2:53"},"nativeSrc":"13651:34:53","nodeType":"YulFunctionCall","src":"13651:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"13690:10:53","nodeType":"YulIdentifier","src":"13690:10:53"},{"name":"memPtr","nativeSrc":"13702:6:53","nodeType":"YulIdentifier","src":"13702:6:53"}],"functionName":{"name":"lt","nativeSrc":"13687:2:53","nodeType":"YulIdentifier","src":"13687:2:53"},"nativeSrc":"13687:22:53","nodeType":"YulFunctionCall","src":"13687:22:53"}],"functionName":{"name":"or","nativeSrc":"13648:2:53","nodeType":"YulIdentifier","src":"13648:2:53"},"nativeSrc":"13648:62:53","nodeType":"YulFunctionCall","src":"13648:62:53"},"nativeSrc":"13645:88:53","nodeType":"YulIf","src":"13645:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13749:2:53","nodeType":"YulLiteral","src":"13749:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"13753:10:53","nodeType":"YulIdentifier","src":"13753:10:53"}],"functionName":{"name":"mstore","nativeSrc":"13742:6:53","nodeType":"YulIdentifier","src":"13742:6:53"},"nativeSrc":"13742:22:53","nodeType":"YulFunctionCall","src":"13742:22:53"},"nativeSrc":"13742:22:53","nodeType":"YulExpressionStatement","src":"13742:22:53"}]},"name":"finalize_allocation","nativeSrc":"13489:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13518:6:53","nodeType":"YulTypedName","src":"13518:6:53","type":""},{"name":"size","nativeSrc":"13526:4:53","nodeType":"YulTypedName","src":"13526:4:53","type":""}],"src":"13489:281:53"},{"body":{"nativeSrc":"13817:88:53","nodeType":"YulBlock","src":"13817:88:53","statements":[{"nativeSrc":"13827:30:53","nodeType":"YulAssignment","src":"13827:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"13837:18:53","nodeType":"YulIdentifier","src":"13837:18:53"},"nativeSrc":"13837:20:53","nodeType":"YulFunctionCall","src":"13837:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"13827:6:53","nodeType":"YulIdentifier","src":"13827:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"13886:6:53","nodeType":"YulIdentifier","src":"13886:6:53"},{"name":"size","nativeSrc":"13894:4:53","nodeType":"YulIdentifier","src":"13894:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"13866:19:53","nodeType":"YulIdentifier","src":"13866:19:53"},"nativeSrc":"13866:33:53","nodeType":"YulFunctionCall","src":"13866:33:53"},"nativeSrc":"13866:33:53","nodeType":"YulExpressionStatement","src":"13866:33:53"}]},"name":"allocate_memory","nativeSrc":"13776:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"13801:4:53","nodeType":"YulTypedName","src":"13801:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"13810:6:53","nodeType":"YulTypedName","src":"13810:6:53","type":""}],"src":"13776:129:53"},{"body":{"nativeSrc":"14000:28:53","nodeType":"YulBlock","src":"14000:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14017:1:53","nodeType":"YulLiteral","src":"14017:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14020:1:53","nodeType":"YulLiteral","src":"14020:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14010:6:53","nodeType":"YulIdentifier","src":"14010:6:53"},"nativeSrc":"14010:12:53","nodeType":"YulFunctionCall","src":"14010:12:53"},"nativeSrc":"14010:12:53","nodeType":"YulExpressionStatement","src":"14010:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"13911:117:53","nodeType":"YulFunctionDefinition","src":"13911:117:53"},{"body":{"nativeSrc":"14116:229:53","nodeType":"YulBlock","src":"14116:229:53","statements":[{"body":{"nativeSrc":"14221:22:53","nodeType":"YulBlock","src":"14221:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"14223:16:53","nodeType":"YulIdentifier","src":"14223:16:53"},"nativeSrc":"14223:18:53","nodeType":"YulFunctionCall","src":"14223:18:53"},"nativeSrc":"14223:18:53","nodeType":"YulExpressionStatement","src":"14223:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14193:6:53","nodeType":"YulIdentifier","src":"14193:6:53"},{"kind":"number","nativeSrc":"14201:18:53","nodeType":"YulLiteral","src":"14201:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14190:2:53","nodeType":"YulIdentifier","src":"14190:2:53"},"nativeSrc":"14190:30:53","nodeType":"YulFunctionCall","src":"14190:30:53"},"nativeSrc":"14187:56:53","nodeType":"YulIf","src":"14187:56:53"},{"nativeSrc":"14253:25:53","nodeType":"YulAssignment","src":"14253:25:53","value":{"arguments":[{"name":"length","nativeSrc":"14265:6:53","nodeType":"YulIdentifier","src":"14265:6:53"},{"kind":"number","nativeSrc":"14273:4:53","nodeType":"YulLiteral","src":"14273:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"14261:3:53","nodeType":"YulIdentifier","src":"14261:3:53"},"nativeSrc":"14261:17:53","nodeType":"YulFunctionCall","src":"14261:17:53"},"variableNames":[{"name":"size","nativeSrc":"14253:4:53","nodeType":"YulIdentifier","src":"14253:4:53"}]},{"nativeSrc":"14315:23:53","nodeType":"YulAssignment","src":"14315:23:53","value":{"arguments":[{"name":"size","nativeSrc":"14327:4:53","nodeType":"YulIdentifier","src":"14327:4:53"},{"kind":"number","nativeSrc":"14333:4:53","nodeType":"YulLiteral","src":"14333:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14323:3:53","nodeType":"YulIdentifier","src":"14323:3:53"},"nativeSrc":"14323:15:53","nodeType":"YulFunctionCall","src":"14323:15:53"},"variableNames":[{"name":"size","nativeSrc":"14315:4:53","nodeType":"YulIdentifier","src":"14315:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14034:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14100:6:53","nodeType":"YulTypedName","src":"14100:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14111:4:53","nodeType":"YulTypedName","src":"14111:4:53","type":""}],"src":"14034:311:53"},{"body":{"nativeSrc":"14470:608:53","nodeType":"YulBlock","src":"14470:608:53","statements":[{"nativeSrc":"14480:90:53","nodeType":"YulAssignment","src":"14480:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14562:6:53","nodeType":"YulIdentifier","src":"14562:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14505:56:53","nodeType":"YulIdentifier","src":"14505:56:53"},"nativeSrc":"14505:64:53","nodeType":"YulFunctionCall","src":"14505:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"14489:15:53","nodeType":"YulIdentifier","src":"14489:15:53"},"nativeSrc":"14489:81:53","nodeType":"YulFunctionCall","src":"14489:81:53"},"variableNames":[{"name":"array","nativeSrc":"14480:5:53","nodeType":"YulIdentifier","src":"14480:5:53"}]},{"nativeSrc":"14579:16:53","nodeType":"YulVariableDeclaration","src":"14579:16:53","value":{"name":"array","nativeSrc":"14590:5:53","nodeType":"YulIdentifier","src":"14590:5:53"},"variables":[{"name":"dst","nativeSrc":"14583:3:53","nodeType":"YulTypedName","src":"14583:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"14612:5:53","nodeType":"YulIdentifier","src":"14612:5:53"},{"name":"length","nativeSrc":"14619:6:53","nodeType":"YulIdentifier","src":"14619:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14605:6:53","nodeType":"YulIdentifier","src":"14605:6:53"},"nativeSrc":"14605:21:53","nodeType":"YulFunctionCall","src":"14605:21:53"},"nativeSrc":"14605:21:53","nodeType":"YulExpressionStatement","src":"14605:21:53"},{"nativeSrc":"14635:23:53","nodeType":"YulAssignment","src":"14635:23:53","value":{"arguments":[{"name":"array","nativeSrc":"14646:5:53","nodeType":"YulIdentifier","src":"14646:5:53"},{"kind":"number","nativeSrc":"14653:4:53","nodeType":"YulLiteral","src":"14653:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14642:3:53","nodeType":"YulIdentifier","src":"14642:3:53"},"nativeSrc":"14642:16:53","nodeType":"YulFunctionCall","src":"14642:16:53"},"variableNames":[{"name":"dst","nativeSrc":"14635:3:53","nodeType":"YulIdentifier","src":"14635:3:53"}]},{"nativeSrc":"14668:44:53","nodeType":"YulVariableDeclaration","src":"14668:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"14686:6:53","nodeType":"YulIdentifier","src":"14686:6:53"},{"arguments":[{"name":"length","nativeSrc":"14698:6:53","nodeType":"YulIdentifier","src":"14698:6:53"},{"kind":"number","nativeSrc":"14706:4:53","nodeType":"YulLiteral","src":"14706:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"14694:3:53","nodeType":"YulIdentifier","src":"14694:3:53"},"nativeSrc":"14694:17:53","nodeType":"YulFunctionCall","src":"14694:17:53"}],"functionName":{"name":"add","nativeSrc":"14682:3:53","nodeType":"YulIdentifier","src":"14682:3:53"},"nativeSrc":"14682:30:53","nodeType":"YulFunctionCall","src":"14682:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"14672:6:53","nodeType":"YulTypedName","src":"14672:6:53","type":""}]},{"body":{"nativeSrc":"14740:103:53","nodeType":"YulBlock","src":"14740:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"14754:77:53","nodeType":"YulIdentifier","src":"14754:77:53"},"nativeSrc":"14754:79:53","nodeType":"YulFunctionCall","src":"14754:79:53"},"nativeSrc":"14754:79:53","nodeType":"YulExpressionStatement","src":"14754:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"14727:6:53","nodeType":"YulIdentifier","src":"14727:6:53"},{"name":"end","nativeSrc":"14735:3:53","nodeType":"YulIdentifier","src":"14735:3:53"}],"functionName":{"name":"gt","nativeSrc":"14724:2:53","nodeType":"YulIdentifier","src":"14724:2:53"},"nativeSrc":"14724:15:53","nodeType":"YulFunctionCall","src":"14724:15:53"},"nativeSrc":"14721:122:53","nodeType":"YulIf","src":"14721:122:53"},{"body":{"nativeSrc":"14928:144:53","nodeType":"YulBlock","src":"14928:144:53","statements":[{"nativeSrc":"14943:21:53","nodeType":"YulVariableDeclaration","src":"14943:21:53","value":{"name":"src","nativeSrc":"14961:3:53","nodeType":"YulIdentifier","src":"14961:3:53"},"variables":[{"name":"elementPos","nativeSrc":"14947:10:53","nodeType":"YulTypedName","src":"14947:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"14985:3:53","nodeType":"YulIdentifier","src":"14985:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"15011:10:53","nodeType":"YulIdentifier","src":"15011:10:53"},{"name":"end","nativeSrc":"15023:3:53","nodeType":"YulIdentifier","src":"15023:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"14990:20:53","nodeType":"YulIdentifier","src":"14990:20:53"},"nativeSrc":"14990:37:53","nodeType":"YulFunctionCall","src":"14990:37:53"}],"functionName":{"name":"mstore","nativeSrc":"14978:6:53","nodeType":"YulIdentifier","src":"14978:6:53"},"nativeSrc":"14978:50:53","nodeType":"YulFunctionCall","src":"14978:50:53"},"nativeSrc":"14978:50:53","nodeType":"YulExpressionStatement","src":"14978:50:53"},{"nativeSrc":"15041:21:53","nodeType":"YulAssignment","src":"15041:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"15052:3:53","nodeType":"YulIdentifier","src":"15052:3:53"},{"kind":"number","nativeSrc":"15057:4:53","nodeType":"YulLiteral","src":"15057:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15048:3:53","nodeType":"YulIdentifier","src":"15048:3:53"},"nativeSrc":"15048:14:53","nodeType":"YulFunctionCall","src":"15048:14:53"},"variableNames":[{"name":"dst","nativeSrc":"15041:3:53","nodeType":"YulIdentifier","src":"15041:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"14881:3:53","nodeType":"YulIdentifier","src":"14881:3:53"},{"name":"srcEnd","nativeSrc":"14886:6:53","nodeType":"YulIdentifier","src":"14886:6:53"}],"functionName":{"name":"lt","nativeSrc":"14878:2:53","nodeType":"YulIdentifier","src":"14878:2:53"},"nativeSrc":"14878:15:53","nodeType":"YulFunctionCall","src":"14878:15:53"},"nativeSrc":"14852:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"14894:25:53","nodeType":"YulBlock","src":"14894:25:53","statements":[{"nativeSrc":"14896:21:53","nodeType":"YulAssignment","src":"14896:21:53","value":{"arguments":[{"name":"src","nativeSrc":"14907:3:53","nodeType":"YulIdentifier","src":"14907:3:53"},{"kind":"number","nativeSrc":"14912:4:53","nodeType":"YulLiteral","src":"14912:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14903:3:53","nodeType":"YulIdentifier","src":"14903:3:53"},"nativeSrc":"14903:14:53","nodeType":"YulFunctionCall","src":"14903:14:53"},"variableNames":[{"name":"src","nativeSrc":"14896:3:53","nodeType":"YulIdentifier","src":"14896:3:53"}]}]},"pre":{"nativeSrc":"14856:21:53","nodeType":"YulBlock","src":"14856:21:53","statements":[{"nativeSrc":"14858:17:53","nodeType":"YulVariableDeclaration","src":"14858:17:53","value":{"name":"offset","nativeSrc":"14869:6:53","nodeType":"YulIdentifier","src":"14869:6:53"},"variables":[{"name":"src","nativeSrc":"14862:3:53","nodeType":"YulTypedName","src":"14862:3:53","type":""}]}]},"src":"14852:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14368:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14440:6:53","nodeType":"YulTypedName","src":"14440:6:53","type":""},{"name":"length","nativeSrc":"14448:6:53","nodeType":"YulTypedName","src":"14448:6:53","type":""},{"name":"end","nativeSrc":"14456:3:53","nodeType":"YulTypedName","src":"14456:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"14464:5:53","nodeType":"YulTypedName","src":"14464:5:53","type":""}],"src":"14368:710:53"},{"body":{"nativeSrc":"15178:293:53","nodeType":"YulBlock","src":"15178:293:53","statements":[{"body":{"nativeSrc":"15227:83:53","nodeType":"YulBlock","src":"15227:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15229:77:53","nodeType":"YulIdentifier","src":"15229:77:53"},"nativeSrc":"15229:79:53","nodeType":"YulFunctionCall","src":"15229:79:53"},"nativeSrc":"15229:79:53","nodeType":"YulExpressionStatement","src":"15229:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15206:6:53","nodeType":"YulIdentifier","src":"15206:6:53"},{"kind":"number","nativeSrc":"15214:4:53","nodeType":"YulLiteral","src":"15214:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15202:3:53","nodeType":"YulIdentifier","src":"15202:3:53"},"nativeSrc":"15202:17:53","nodeType":"YulFunctionCall","src":"15202:17:53"},{"name":"end","nativeSrc":"15221:3:53","nodeType":"YulIdentifier","src":"15221:3:53"}],"functionName":{"name":"slt","nativeSrc":"15198:3:53","nodeType":"YulIdentifier","src":"15198:3:53"},"nativeSrc":"15198:27:53","nodeType":"YulFunctionCall","src":"15198:27:53"}],"functionName":{"name":"iszero","nativeSrc":"15191:6:53","nodeType":"YulIdentifier","src":"15191:6:53"},"nativeSrc":"15191:35:53","nodeType":"YulFunctionCall","src":"15191:35:53"},"nativeSrc":"15188:122:53","nodeType":"YulIf","src":"15188:122:53"},{"nativeSrc":"15319:34:53","nodeType":"YulVariableDeclaration","src":"15319:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"15346:6:53","nodeType":"YulIdentifier","src":"15346:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15333:12:53","nodeType":"YulIdentifier","src":"15333:12:53"},"nativeSrc":"15333:20:53","nodeType":"YulFunctionCall","src":"15333:20:53"},"variables":[{"name":"length","nativeSrc":"15323:6:53","nodeType":"YulTypedName","src":"15323:6:53","type":""}]},{"nativeSrc":"15362:103:53","nodeType":"YulAssignment","src":"15362:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15438:6:53","nodeType":"YulIdentifier","src":"15438:6:53"},{"kind":"number","nativeSrc":"15446:4:53","nodeType":"YulLiteral","src":"15446:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15434:3:53","nodeType":"YulIdentifier","src":"15434:3:53"},"nativeSrc":"15434:17:53","nodeType":"YulFunctionCall","src":"15434:17:53"},{"name":"length","nativeSrc":"15453:6:53","nodeType":"YulIdentifier","src":"15453:6:53"},{"name":"end","nativeSrc":"15461:3:53","nodeType":"YulIdentifier","src":"15461:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"15371:62:53","nodeType":"YulIdentifier","src":"15371:62:53"},"nativeSrc":"15371:94:53","nodeType":"YulFunctionCall","src":"15371:94:53"},"variableNames":[{"name":"array","nativeSrc":"15362:5:53","nodeType":"YulIdentifier","src":"15362:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"15101:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15156:6:53","nodeType":"YulTypedName","src":"15156:6:53","type":""},{"name":"end","nativeSrc":"15164:3:53","nodeType":"YulTypedName","src":"15164:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15172:5:53","nodeType":"YulTypedName","src":"15172:5:53","type":""}],"src":"15101:370:53"},{"body":{"nativeSrc":"15601:686:53","nodeType":"YulBlock","src":"15601:686:53","statements":[{"body":{"nativeSrc":"15645:83:53","nodeType":"YulBlock","src":"15645:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"15647:77:53","nodeType":"YulIdentifier","src":"15647:77:53"},"nativeSrc":"15647:79:53","nodeType":"YulFunctionCall","src":"15647:79:53"},"nativeSrc":"15647:79:53","nodeType":"YulExpressionStatement","src":"15647:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"15622:3:53","nodeType":"YulIdentifier","src":"15622:3:53"},{"name":"headStart","nativeSrc":"15627:9:53","nodeType":"YulIdentifier","src":"15627:9:53"}],"functionName":{"name":"sub","nativeSrc":"15618:3:53","nodeType":"YulIdentifier","src":"15618:3:53"},"nativeSrc":"15618:19:53","nodeType":"YulFunctionCall","src":"15618:19:53"},{"kind":"number","nativeSrc":"15639:4:53","nodeType":"YulLiteral","src":"15639:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"15614:3:53","nodeType":"YulIdentifier","src":"15614:3:53"},"nativeSrc":"15614:30:53","nodeType":"YulFunctionCall","src":"15614:30:53"},"nativeSrc":"15611:117:53","nodeType":"YulIf","src":"15611:117:53"},{"nativeSrc":"15737:30:53","nodeType":"YulAssignment","src":"15737:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"15762:4:53","nodeType":"YulLiteral","src":"15762:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"15746:15:53","nodeType":"YulIdentifier","src":"15746:15:53"},"nativeSrc":"15746:21:53","nodeType":"YulFunctionCall","src":"15746:21:53"},"variableNames":[{"name":"value","nativeSrc":"15737:5:53","nodeType":"YulIdentifier","src":"15737:5:53"}]},{"nativeSrc":"15777:151:53","nodeType":"YulBlock","src":"15777:151:53","statements":[{"nativeSrc":"15813:15:53","nodeType":"YulVariableDeclaration","src":"15813:15:53","value":{"kind":"number","nativeSrc":"15827:1:53","nodeType":"YulLiteral","src":"15827:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15817:6:53","nodeType":"YulTypedName","src":"15817:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15853:5:53","nodeType":"YulIdentifier","src":"15853:5:53"},{"kind":"number","nativeSrc":"15860:4:53","nodeType":"YulLiteral","src":"15860:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15849:3:53","nodeType":"YulIdentifier","src":"15849:3:53"},"nativeSrc":"15849:16:53","nodeType":"YulFunctionCall","src":"15849:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15892:9:53","nodeType":"YulIdentifier","src":"15892:9:53"},{"name":"offset","nativeSrc":"15903:6:53","nodeType":"YulIdentifier","src":"15903:6:53"}],"functionName":{"name":"add","nativeSrc":"15888:3:53","nodeType":"YulIdentifier","src":"15888:3:53"},"nativeSrc":"15888:22:53","nodeType":"YulFunctionCall","src":"15888:22:53"},{"name":"end","nativeSrc":"15912:3:53","nodeType":"YulIdentifier","src":"15912:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15867:20:53","nodeType":"YulIdentifier","src":"15867:20:53"},"nativeSrc":"15867:49:53","nodeType":"YulFunctionCall","src":"15867:49:53"}],"functionName":{"name":"mstore","nativeSrc":"15842:6:53","nodeType":"YulIdentifier","src":"15842:6:53"},"nativeSrc":"15842:75:53","nodeType":"YulFunctionCall","src":"15842:75:53"},"nativeSrc":"15842:75:53","nodeType":"YulExpressionStatement","src":"15842:75:53"}]},{"nativeSrc":"15938:342:53","nodeType":"YulBlock","src":"15938:342:53","statements":[{"nativeSrc":"15979:46:53","nodeType":"YulVariableDeclaration","src":"15979:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16010:9:53","nodeType":"YulIdentifier","src":"16010:9:53"},{"kind":"number","nativeSrc":"16021:2:53","nodeType":"YulLiteral","src":"16021:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16006:3:53","nodeType":"YulIdentifier","src":"16006:3:53"},"nativeSrc":"16006:18:53","nodeType":"YulFunctionCall","src":"16006:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"15993:12:53","nodeType":"YulIdentifier","src":"15993:12:53"},"nativeSrc":"15993:32:53","nodeType":"YulFunctionCall","src":"15993:32:53"},"variables":[{"name":"offset","nativeSrc":"15983:6:53","nodeType":"YulTypedName","src":"15983:6:53","type":""}]},{"body":{"nativeSrc":"16072:83:53","nodeType":"YulBlock","src":"16072:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16074:77:53","nodeType":"YulIdentifier","src":"16074:77:53"},"nativeSrc":"16074:79:53","nodeType":"YulFunctionCall","src":"16074:79:53"},"nativeSrc":"16074:79:53","nodeType":"YulExpressionStatement","src":"16074:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16044:6:53","nodeType":"YulIdentifier","src":"16044:6:53"},{"kind":"number","nativeSrc":"16052:18:53","nodeType":"YulLiteral","src":"16052:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16041:2:53","nodeType":"YulIdentifier","src":"16041:2:53"},"nativeSrc":"16041:30:53","nodeType":"YulFunctionCall","src":"16041:30:53"},"nativeSrc":"16038:117:53","nodeType":"YulIf","src":"16038:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16180:5:53","nodeType":"YulIdentifier","src":"16180:5:53"},{"kind":"number","nativeSrc":"16187:4:53","nodeType":"YulLiteral","src":"16187:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16176:3:53","nodeType":"YulIdentifier","src":"16176:3:53"},"nativeSrc":"16176:16:53","nodeType":"YulFunctionCall","src":"16176:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16244:9:53","nodeType":"YulIdentifier","src":"16244:9:53"},{"name":"offset","nativeSrc":"16255:6:53","nodeType":"YulIdentifier","src":"16255:6:53"}],"functionName":{"name":"add","nativeSrc":"16240:3:53","nodeType":"YulIdentifier","src":"16240:3:53"},"nativeSrc":"16240:22:53","nodeType":"YulFunctionCall","src":"16240:22:53"},{"name":"end","nativeSrc":"16264:3:53","nodeType":"YulIdentifier","src":"16264:3:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"16194:45:53","nodeType":"YulIdentifier","src":"16194:45:53"},"nativeSrc":"16194:74:53","nodeType":"YulFunctionCall","src":"16194:74:53"}],"functionName":{"name":"mstore","nativeSrc":"16169:6:53","nodeType":"YulIdentifier","src":"16169:6:53"},"nativeSrc":"16169:100:53","nodeType":"YulFunctionCall","src":"16169:100:53"},"nativeSrc":"16169:100:53","nodeType":"YulExpressionStatement","src":"16169:100:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$13702_memory_ptr","nativeSrc":"15516:771:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15576:9:53","nodeType":"YulTypedName","src":"15576:9:53","type":""},{"name":"end","nativeSrc":"15587:3:53","nodeType":"YulTypedName","src":"15587:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15595:5:53","nodeType":"YulTypedName","src":"15595:5:53","type":""}],"src":"15516:771:53"},{"body":{"nativeSrc":"16389:453:53","nodeType":"YulBlock","src":"16389:453:53","statements":[{"body":{"nativeSrc":"16435:83:53","nodeType":"YulBlock","src":"16435:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16437:77:53","nodeType":"YulIdentifier","src":"16437:77:53"},"nativeSrc":"16437:79:53","nodeType":"YulFunctionCall","src":"16437:79:53"},"nativeSrc":"16437:79:53","nodeType":"YulExpressionStatement","src":"16437:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16410:7:53","nodeType":"YulIdentifier","src":"16410:7:53"},{"name":"headStart","nativeSrc":"16419:9:53","nodeType":"YulIdentifier","src":"16419:9:53"}],"functionName":{"name":"sub","nativeSrc":"16406:3:53","nodeType":"YulIdentifier","src":"16406:3:53"},"nativeSrc":"16406:23:53","nodeType":"YulFunctionCall","src":"16406:23:53"},{"kind":"number","nativeSrc":"16431:2:53","nodeType":"YulLiteral","src":"16431:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16402:3:53","nodeType":"YulIdentifier","src":"16402:3:53"},"nativeSrc":"16402:32:53","nodeType":"YulFunctionCall","src":"16402:32:53"},"nativeSrc":"16399:119:53","nodeType":"YulIf","src":"16399:119:53"},{"nativeSrc":"16528:307:53","nodeType":"YulBlock","src":"16528:307:53","statements":[{"nativeSrc":"16543:45:53","nodeType":"YulVariableDeclaration","src":"16543:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16574:9:53","nodeType":"YulIdentifier","src":"16574:9:53"},{"kind":"number","nativeSrc":"16585:1:53","nodeType":"YulLiteral","src":"16585:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16570:3:53","nodeType":"YulIdentifier","src":"16570:3:53"},"nativeSrc":"16570:17:53","nodeType":"YulFunctionCall","src":"16570:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"16557:12:53","nodeType":"YulIdentifier","src":"16557:12:53"},"nativeSrc":"16557:31:53","nodeType":"YulFunctionCall","src":"16557:31:53"},"variables":[{"name":"offset","nativeSrc":"16547:6:53","nodeType":"YulTypedName","src":"16547:6:53","type":""}]},{"body":{"nativeSrc":"16635:83:53","nodeType":"YulBlock","src":"16635:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"16637:77:53","nodeType":"YulIdentifier","src":"16637:77:53"},"nativeSrc":"16637:79:53","nodeType":"YulFunctionCall","src":"16637:79:53"},"nativeSrc":"16637:79:53","nodeType":"YulExpressionStatement","src":"16637:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16607:6:53","nodeType":"YulIdentifier","src":"16607:6:53"},{"kind":"number","nativeSrc":"16615:18:53","nodeType":"YulLiteral","src":"16615:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16604:2:53","nodeType":"YulIdentifier","src":"16604:2:53"},"nativeSrc":"16604:30:53","nodeType":"YulFunctionCall","src":"16604:30:53"},"nativeSrc":"16601:117:53","nodeType":"YulIf","src":"16601:117:53"},{"nativeSrc":"16732:93:53","nodeType":"YulAssignment","src":"16732:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16797:9:53","nodeType":"YulIdentifier","src":"16797:9:53"},{"name":"offset","nativeSrc":"16808:6:53","nodeType":"YulIdentifier","src":"16808:6:53"}],"functionName":{"name":"add","nativeSrc":"16793:3:53","nodeType":"YulIdentifier","src":"16793:3:53"},"nativeSrc":"16793:22:53","nodeType":"YulFunctionCall","src":"16793:22:53"},{"name":"dataEnd","nativeSrc":"16817:7:53","nodeType":"YulIdentifier","src":"16817:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$13702_memory_ptr","nativeSrc":"16742:50:53","nodeType":"YulIdentifier","src":"16742:50:53"},"nativeSrc":"16742:83:53","nodeType":"YulFunctionCall","src":"16742:83:53"},"variableNames":[{"name":"value0","nativeSrc":"16732:6:53","nodeType":"YulIdentifier","src":"16732:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$13702_memory_ptr","nativeSrc":"16293:549:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16359:9:53","nodeType":"YulTypedName","src":"16359:9:53","type":""},{"name":"dataEnd","nativeSrc":"16370:7:53","nodeType":"YulTypedName","src":"16370:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16382:6:53","nodeType":"YulTypedName","src":"16382:6:53","type":""}],"src":"16293:549:53"},{"body":{"nativeSrc":"16906:56:53","nodeType":"YulBlock","src":"16906:56:53","statements":[{"body":{"nativeSrc":"16940:16:53","nodeType":"YulBlock","src":"16940:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16949:1:53","nodeType":"YulLiteral","src":"16949:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"16952:1:53","nodeType":"YulLiteral","src":"16952:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16942:6:53","nodeType":"YulIdentifier","src":"16942:6:53"},"nativeSrc":"16942:12:53","nodeType":"YulFunctionCall","src":"16942:12:53"},"nativeSrc":"16942:12:53","nodeType":"YulExpressionStatement","src":"16942:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16929:5:53","nodeType":"YulIdentifier","src":"16929:5:53"},{"kind":"number","nativeSrc":"16936:1:53","nodeType":"YulLiteral","src":"16936:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"16926:2:53","nodeType":"YulIdentifier","src":"16926:2:53"},"nativeSrc":"16926:12:53","nodeType":"YulFunctionCall","src":"16926:12:53"}],"functionName":{"name":"iszero","nativeSrc":"16919:6:53","nodeType":"YulIdentifier","src":"16919:6:53"},"nativeSrc":"16919:20:53","nodeType":"YulFunctionCall","src":"16919:20:53"},"nativeSrc":"16916:40:53","nodeType":"YulIf","src":"16916:40:53"}]},"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"16848:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16899:5:53","nodeType":"YulTypedName","src":"16899:5:53","type":""}],"src":"16848:114:53"},{"body":{"nativeSrc":"17035:102:53","nodeType":"YulBlock","src":"17035:102:53","statements":[{"nativeSrc":"17045:29:53","nodeType":"YulAssignment","src":"17045:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"17067:6:53","nodeType":"YulIdentifier","src":"17067:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"17054:12:53","nodeType":"YulIdentifier","src":"17054:12:53"},"nativeSrc":"17054:20:53","nodeType":"YulFunctionCall","src":"17054:20:53"},"variableNames":[{"name":"value","nativeSrc":"17045:5:53","nodeType":"YulIdentifier","src":"17045:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17125:5:53","nodeType":"YulIdentifier","src":"17125:5:53"}],"functionName":{"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"17083:41:53","nodeType":"YulIdentifier","src":"17083:41:53"},"nativeSrc":"17083:48:53","nodeType":"YulFunctionCall","src":"17083:48:53"},"nativeSrc":"17083:48:53","nodeType":"YulExpressionStatement","src":"17083:48:53"}]},"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"16968:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17013:6:53","nodeType":"YulTypedName","src":"17013:6:53","type":""},{"name":"end","nativeSrc":"17021:3:53","nodeType":"YulTypedName","src":"17021:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17029:5:53","nodeType":"YulTypedName","src":"17029:5:53","type":""}],"src":"16968:169:53"},{"body":{"nativeSrc":"17232:28:53","nodeType":"YulBlock","src":"17232:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17249:1:53","nodeType":"YulLiteral","src":"17249:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17252:1:53","nodeType":"YulLiteral","src":"17252:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17242:6:53","nodeType":"YulIdentifier","src":"17242:6:53"},"nativeSrc":"17242:12:53","nodeType":"YulFunctionCall","src":"17242:12:53"},"nativeSrc":"17242:12:53","nodeType":"YulExpressionStatement","src":"17242:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"17143:117:53","nodeType":"YulFunctionDefinition","src":"17143:117:53"},{"body":{"nativeSrc":"17332:241:53","nodeType":"YulBlock","src":"17332:241:53","statements":[{"body":{"nativeSrc":"17437:22:53","nodeType":"YulBlock","src":"17437:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"17439:16:53","nodeType":"YulIdentifier","src":"17439:16:53"},"nativeSrc":"17439:18:53","nodeType":"YulFunctionCall","src":"17439:18:53"},"nativeSrc":"17439:18:53","nodeType":"YulExpressionStatement","src":"17439:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"17409:6:53","nodeType":"YulIdentifier","src":"17409:6:53"},{"kind":"number","nativeSrc":"17417:18:53","nodeType":"YulLiteral","src":"17417:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17406:2:53","nodeType":"YulIdentifier","src":"17406:2:53"},"nativeSrc":"17406:30:53","nodeType":"YulFunctionCall","src":"17406:30:53"},"nativeSrc":"17403:56:53","nodeType":"YulIf","src":"17403:56:53"},{"nativeSrc":"17469:37:53","nodeType":"YulAssignment","src":"17469:37:53","value":{"arguments":[{"name":"length","nativeSrc":"17499:6:53","nodeType":"YulIdentifier","src":"17499:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17477:21:53","nodeType":"YulIdentifier","src":"17477:21:53"},"nativeSrc":"17477:29:53","nodeType":"YulFunctionCall","src":"17477:29:53"},"variableNames":[{"name":"size","nativeSrc":"17469:4:53","nodeType":"YulIdentifier","src":"17469:4:53"}]},{"nativeSrc":"17543:23:53","nodeType":"YulAssignment","src":"17543:23:53","value":{"arguments":[{"name":"size","nativeSrc":"17555:4:53","nodeType":"YulIdentifier","src":"17555:4:53"},{"kind":"number","nativeSrc":"17561:4:53","nodeType":"YulLiteral","src":"17561:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17551:3:53","nodeType":"YulIdentifier","src":"17551:3:53"},"nativeSrc":"17551:15:53","nodeType":"YulFunctionCall","src":"17551:15:53"},"variableNames":[{"name":"size","nativeSrc":"17543:4:53","nodeType":"YulIdentifier","src":"17543:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17266:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"17316:6:53","nodeType":"YulTypedName","src":"17316:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"17327:4:53","nodeType":"YulTypedName","src":"17327:4:53","type":""}],"src":"17266:307:53"},{"body":{"nativeSrc":"17643:84:53","nodeType":"YulBlock","src":"17643:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"17667:3:53","nodeType":"YulIdentifier","src":"17667:3:53"},{"name":"src","nativeSrc":"17672:3:53","nodeType":"YulIdentifier","src":"17672:3:53"},{"name":"length","nativeSrc":"17677:6:53","nodeType":"YulIdentifier","src":"17677:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"17654:12:53","nodeType":"YulIdentifier","src":"17654:12:53"},"nativeSrc":"17654:30:53","nodeType":"YulFunctionCall","src":"17654:30:53"},"nativeSrc":"17654:30:53","nodeType":"YulExpressionStatement","src":"17654:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17704:3:53","nodeType":"YulIdentifier","src":"17704:3:53"},{"name":"length","nativeSrc":"17709:6:53","nodeType":"YulIdentifier","src":"17709:6:53"}],"functionName":{"name":"add","nativeSrc":"17700:3:53","nodeType":"YulIdentifier","src":"17700:3:53"},"nativeSrc":"17700:16:53","nodeType":"YulFunctionCall","src":"17700:16:53"},{"kind":"number","nativeSrc":"17718:1:53","nodeType":"YulLiteral","src":"17718:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17693:6:53","nodeType":"YulIdentifier","src":"17693:6:53"},"nativeSrc":"17693:27:53","nodeType":"YulFunctionCall","src":"17693:27:53"},"nativeSrc":"17693:27:53","nodeType":"YulExpressionStatement","src":"17693:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17579:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17625:3:53","nodeType":"YulTypedName","src":"17625:3:53","type":""},{"name":"dst","nativeSrc":"17630:3:53","nodeType":"YulTypedName","src":"17630:3:53","type":""},{"name":"length","nativeSrc":"17635:6:53","nodeType":"YulTypedName","src":"17635:6:53","type":""}],"src":"17579:148:53"},{"body":{"nativeSrc":"17816:340:53","nodeType":"YulBlock","src":"17816:340:53","statements":[{"nativeSrc":"17826:74:53","nodeType":"YulAssignment","src":"17826:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17892:6:53","nodeType":"YulIdentifier","src":"17892:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17851:40:53","nodeType":"YulIdentifier","src":"17851:40:53"},"nativeSrc":"17851:48:53","nodeType":"YulFunctionCall","src":"17851:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"17835:15:53","nodeType":"YulIdentifier","src":"17835:15:53"},"nativeSrc":"17835:65:53","nodeType":"YulFunctionCall","src":"17835:65:53"},"variableNames":[{"name":"array","nativeSrc":"17826:5:53","nodeType":"YulIdentifier","src":"17826:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"17916:5:53","nodeType":"YulIdentifier","src":"17916:5:53"},{"name":"length","nativeSrc":"17923:6:53","nodeType":"YulIdentifier","src":"17923:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17909:6:53","nodeType":"YulIdentifier","src":"17909:6:53"},"nativeSrc":"17909:21:53","nodeType":"YulFunctionCall","src":"17909:21:53"},"nativeSrc":"17909:21:53","nodeType":"YulExpressionStatement","src":"17909:21:53"},{"nativeSrc":"17939:27:53","nodeType":"YulVariableDeclaration","src":"17939:27:53","value":{"arguments":[{"name":"array","nativeSrc":"17954:5:53","nodeType":"YulIdentifier","src":"17954:5:53"},{"kind":"number","nativeSrc":"17961:4:53","nodeType":"YulLiteral","src":"17961:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17950:3:53","nodeType":"YulIdentifier","src":"17950:3:53"},"nativeSrc":"17950:16:53","nodeType":"YulFunctionCall","src":"17950:16:53"},"variables":[{"name":"dst","nativeSrc":"17943:3:53","nodeType":"YulTypedName","src":"17943:3:53","type":""}]},{"body":{"nativeSrc":"18004:83:53","nodeType":"YulBlock","src":"18004:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"18006:77:53","nodeType":"YulIdentifier","src":"18006:77:53"},"nativeSrc":"18006:79:53","nodeType":"YulFunctionCall","src":"18006:79:53"},"nativeSrc":"18006:79:53","nodeType":"YulExpressionStatement","src":"18006:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17985:3:53","nodeType":"YulIdentifier","src":"17985:3:53"},{"name":"length","nativeSrc":"17990:6:53","nodeType":"YulIdentifier","src":"17990:6:53"}],"functionName":{"name":"add","nativeSrc":"17981:3:53","nodeType":"YulIdentifier","src":"17981:3:53"},"nativeSrc":"17981:16:53","nodeType":"YulFunctionCall","src":"17981:16:53"},{"name":"end","nativeSrc":"17999:3:53","nodeType":"YulIdentifier","src":"17999:3:53"}],"functionName":{"name":"gt","nativeSrc":"17978:2:53","nodeType":"YulIdentifier","src":"17978:2:53"},"nativeSrc":"17978:25:53","nodeType":"YulFunctionCall","src":"17978:25:53"},"nativeSrc":"17975:112:53","nodeType":"YulIf","src":"17975:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"18133:3:53","nodeType":"YulIdentifier","src":"18133:3:53"},{"name":"dst","nativeSrc":"18138:3:53","nodeType":"YulIdentifier","src":"18138:3:53"},{"name":"length","nativeSrc":"18143:6:53","nodeType":"YulIdentifier","src":"18143:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"18096:36:53","nodeType":"YulIdentifier","src":"18096:36:53"},"nativeSrc":"18096:54:53","nodeType":"YulFunctionCall","src":"18096:54:53"},"nativeSrc":"18096:54:53","nodeType":"YulExpressionStatement","src":"18096:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17733:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17789:3:53","nodeType":"YulTypedName","src":"17789:3:53","type":""},{"name":"length","nativeSrc":"17794:6:53","nodeType":"YulTypedName","src":"17794:6:53","type":""},{"name":"end","nativeSrc":"17802:3:53","nodeType":"YulTypedName","src":"17802:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17810:5:53","nodeType":"YulTypedName","src":"17810:5:53","type":""}],"src":"17733:423:53"},{"body":{"nativeSrc":"18236:277:53","nodeType":"YulBlock","src":"18236:277:53","statements":[{"body":{"nativeSrc":"18285:83:53","nodeType":"YulBlock","src":"18285:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"18287:77:53","nodeType":"YulIdentifier","src":"18287:77:53"},"nativeSrc":"18287:79:53","nodeType":"YulFunctionCall","src":"18287:79:53"},"nativeSrc":"18287:79:53","nodeType":"YulExpressionStatement","src":"18287:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18264:6:53","nodeType":"YulIdentifier","src":"18264:6:53"},{"kind":"number","nativeSrc":"18272:4:53","nodeType":"YulLiteral","src":"18272:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"18260:3:53","nodeType":"YulIdentifier","src":"18260:3:53"},"nativeSrc":"18260:17:53","nodeType":"YulFunctionCall","src":"18260:17:53"},{"name":"end","nativeSrc":"18279:3:53","nodeType":"YulIdentifier","src":"18279:3:53"}],"functionName":{"name":"slt","nativeSrc":"18256:3:53","nodeType":"YulIdentifier","src":"18256:3:53"},"nativeSrc":"18256:27:53","nodeType":"YulFunctionCall","src":"18256:27:53"}],"functionName":{"name":"iszero","nativeSrc":"18249:6:53","nodeType":"YulIdentifier","src":"18249:6:53"},"nativeSrc":"18249:35:53","nodeType":"YulFunctionCall","src":"18249:35:53"},"nativeSrc":"18246:122:53","nodeType":"YulIf","src":"18246:122:53"},{"nativeSrc":"18377:34:53","nodeType":"YulVariableDeclaration","src":"18377:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"18404:6:53","nodeType":"YulIdentifier","src":"18404:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"18391:12:53","nodeType":"YulIdentifier","src":"18391:12:53"},"nativeSrc":"18391:20:53","nodeType":"YulFunctionCall","src":"18391:20:53"},"variables":[{"name":"length","nativeSrc":"18381:6:53","nodeType":"YulTypedName","src":"18381:6:53","type":""}]},{"nativeSrc":"18420:87:53","nodeType":"YulAssignment","src":"18420:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18480:6:53","nodeType":"YulIdentifier","src":"18480:6:53"},{"kind":"number","nativeSrc":"18488:4:53","nodeType":"YulLiteral","src":"18488:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18476:3:53","nodeType":"YulIdentifier","src":"18476:3:53"},"nativeSrc":"18476:17:53","nodeType":"YulFunctionCall","src":"18476:17:53"},{"name":"length","nativeSrc":"18495:6:53","nodeType":"YulIdentifier","src":"18495:6:53"},{"name":"end","nativeSrc":"18503:3:53","nodeType":"YulIdentifier","src":"18503:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"18429:46:53","nodeType":"YulIdentifier","src":"18429:46:53"},"nativeSrc":"18429:78:53","nodeType":"YulFunctionCall","src":"18429:78:53"},"variableNames":[{"name":"array","nativeSrc":"18420:5:53","nodeType":"YulIdentifier","src":"18420:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"18175:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18214:6:53","nodeType":"YulTypedName","src":"18214:6:53","type":""},{"name":"end","nativeSrc":"18222:3:53","nodeType":"YulTypedName","src":"18222:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"18230:5:53","nodeType":"YulTypedName","src":"18230:5:53","type":""}],"src":"18175:338:53"},{"body":{"nativeSrc":"18631:1008:53","nodeType":"YulBlock","src":"18631:1008:53","statements":[{"body":{"nativeSrc":"18675:83:53","nodeType":"YulBlock","src":"18675:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18677:77:53","nodeType":"YulIdentifier","src":"18677:77:53"},"nativeSrc":"18677:79:53","nodeType":"YulFunctionCall","src":"18677:79:53"},"nativeSrc":"18677:79:53","nodeType":"YulExpressionStatement","src":"18677:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18652:3:53","nodeType":"YulIdentifier","src":"18652:3:53"},{"name":"headStart","nativeSrc":"18657:9:53","nodeType":"YulIdentifier","src":"18657:9:53"}],"functionName":{"name":"sub","nativeSrc":"18648:3:53","nodeType":"YulIdentifier","src":"18648:3:53"},"nativeSrc":"18648:19:53","nodeType":"YulFunctionCall","src":"18648:19:53"},{"kind":"number","nativeSrc":"18669:4:53","nodeType":"YulLiteral","src":"18669:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"18644:3:53","nodeType":"YulIdentifier","src":"18644:3:53"},"nativeSrc":"18644:30:53","nodeType":"YulFunctionCall","src":"18644:30:53"},"nativeSrc":"18641:117:53","nodeType":"YulIf","src":"18641:117:53"},{"nativeSrc":"18767:30:53","nodeType":"YulAssignment","src":"18767:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"18792:4:53","nodeType":"YulLiteral","src":"18792:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"18776:15:53","nodeType":"YulIdentifier","src":"18776:15:53"},"nativeSrc":"18776:21:53","nodeType":"YulFunctionCall","src":"18776:21:53"},"variableNames":[{"name":"value","nativeSrc":"18767:5:53","nodeType":"YulIdentifier","src":"18767:5:53"}]},{"nativeSrc":"18807:170:53","nodeType":"YulBlock","src":"18807:170:53","statements":[{"nativeSrc":"18847:15:53","nodeType":"YulVariableDeclaration","src":"18847:15:53","value":{"kind":"number","nativeSrc":"18861:1:53","nodeType":"YulLiteral","src":"18861:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18851:6:53","nodeType":"YulTypedName","src":"18851:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18887:5:53","nodeType":"YulIdentifier","src":"18887:5:53"},{"kind":"number","nativeSrc":"18894:4:53","nodeType":"YulLiteral","src":"18894:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18883:3:53","nodeType":"YulIdentifier","src":"18883:3:53"},"nativeSrc":"18883:16:53","nodeType":"YulFunctionCall","src":"18883:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18941:9:53","nodeType":"YulIdentifier","src":"18941:9:53"},{"name":"offset","nativeSrc":"18952:6:53","nodeType":"YulIdentifier","src":"18952:6:53"}],"functionName":{"name":"add","nativeSrc":"18937:3:53","nodeType":"YulIdentifier","src":"18937:3:53"},"nativeSrc":"18937:22:53","nodeType":"YulFunctionCall","src":"18937:22:53"},{"name":"end","nativeSrc":"18961:3:53","nodeType":"YulIdentifier","src":"18961:3:53"}],"functionName":{"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"18901:35:53","nodeType":"YulIdentifier","src":"18901:35:53"},"nativeSrc":"18901:64:53","nodeType":"YulFunctionCall","src":"18901:64:53"}],"functionName":{"name":"mstore","nativeSrc":"18876:6:53","nodeType":"YulIdentifier","src":"18876:6:53"},"nativeSrc":"18876:90:53","nodeType":"YulFunctionCall","src":"18876:90:53"},"nativeSrc":"18876:90:53","nodeType":"YulExpressionStatement","src":"18876:90:53"}]},{"nativeSrc":"18987:152:53","nodeType":"YulBlock","src":"18987:152:53","statements":[{"nativeSrc":"19023:16:53","nodeType":"YulVariableDeclaration","src":"19023:16:53","value":{"kind":"number","nativeSrc":"19037:2:53","nodeType":"YulLiteral","src":"19037:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"19027:6:53","nodeType":"YulTypedName","src":"19027:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19064:5:53","nodeType":"YulIdentifier","src":"19064:5:53"},{"kind":"number","nativeSrc":"19071:4:53","nodeType":"YulLiteral","src":"19071:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19060:3:53","nodeType":"YulIdentifier","src":"19060:3:53"},"nativeSrc":"19060:16:53","nodeType":"YulFunctionCall","src":"19060:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19103:9:53","nodeType":"YulIdentifier","src":"19103:9:53"},{"name":"offset","nativeSrc":"19114:6:53","nodeType":"YulIdentifier","src":"19114:6:53"}],"functionName":{"name":"add","nativeSrc":"19099:3:53","nodeType":"YulIdentifier","src":"19099:3:53"},"nativeSrc":"19099:22:53","nodeType":"YulFunctionCall","src":"19099:22:53"},{"name":"end","nativeSrc":"19123:3:53","nodeType":"YulIdentifier","src":"19123:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19078:20:53","nodeType":"YulIdentifier","src":"19078:20:53"},"nativeSrc":"19078:49:53","nodeType":"YulFunctionCall","src":"19078:49:53"}],"functionName":{"name":"mstore","nativeSrc":"19053:6:53","nodeType":"YulIdentifier","src":"19053:6:53"},"nativeSrc":"19053:75:53","nodeType":"YulFunctionCall","src":"19053:75:53"},"nativeSrc":"19053:75:53","nodeType":"YulExpressionStatement","src":"19053:75:53"}]},{"nativeSrc":"19149:153:53","nodeType":"YulBlock","src":"19149:153:53","statements":[{"nativeSrc":"19186:16:53","nodeType":"YulVariableDeclaration","src":"19186:16:53","value":{"kind":"number","nativeSrc":"19200:2:53","nodeType":"YulLiteral","src":"19200:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"19190:6:53","nodeType":"YulTypedName","src":"19190:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19227:5:53","nodeType":"YulIdentifier","src":"19227:5:53"},{"kind":"number","nativeSrc":"19234:4:53","nodeType":"YulLiteral","src":"19234:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"19223:3:53","nodeType":"YulIdentifier","src":"19223:3:53"},"nativeSrc":"19223:16:53","nodeType":"YulFunctionCall","src":"19223:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19266:9:53","nodeType":"YulIdentifier","src":"19266:9:53"},{"name":"offset","nativeSrc":"19277:6:53","nodeType":"YulIdentifier","src":"19277:6:53"}],"functionName":{"name":"add","nativeSrc":"19262:3:53","nodeType":"YulIdentifier","src":"19262:3:53"},"nativeSrc":"19262:22:53","nodeType":"YulFunctionCall","src":"19262:22:53"},{"name":"end","nativeSrc":"19286:3:53","nodeType":"YulIdentifier","src":"19286:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19241:20:53","nodeType":"YulIdentifier","src":"19241:20:53"},"nativeSrc":"19241:49:53","nodeType":"YulFunctionCall","src":"19241:49:53"}],"functionName":{"name":"mstore","nativeSrc":"19216:6:53","nodeType":"YulIdentifier","src":"19216:6:53"},"nativeSrc":"19216:75:53","nodeType":"YulFunctionCall","src":"19216:75:53"},"nativeSrc":"19216:75:53","nodeType":"YulExpressionStatement","src":"19216:75:53"}]},{"nativeSrc":"19312:320:53","nodeType":"YulBlock","src":"19312:320:53","statements":[{"nativeSrc":"19347:46:53","nodeType":"YulVariableDeclaration","src":"19347:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19378:9:53","nodeType":"YulIdentifier","src":"19378:9:53"},{"kind":"number","nativeSrc":"19389:2:53","nodeType":"YulLiteral","src":"19389:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19374:3:53","nodeType":"YulIdentifier","src":"19374:3:53"},"nativeSrc":"19374:18:53","nodeType":"YulFunctionCall","src":"19374:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"19361:12:53","nodeType":"YulIdentifier","src":"19361:12:53"},"nativeSrc":"19361:32:53","nodeType":"YulFunctionCall","src":"19361:32:53"},"variables":[{"name":"offset","nativeSrc":"19351:6:53","nodeType":"YulTypedName","src":"19351:6:53","type":""}]},{"body":{"nativeSrc":"19440:83:53","nodeType":"YulBlock","src":"19440:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"19442:77:53","nodeType":"YulIdentifier","src":"19442:77:53"},"nativeSrc":"19442:79:53","nodeType":"YulFunctionCall","src":"19442:79:53"},"nativeSrc":"19442:79:53","nodeType":"YulExpressionStatement","src":"19442:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19412:6:53","nodeType":"YulIdentifier","src":"19412:6:53"},{"kind":"number","nativeSrc":"19420:18:53","nodeType":"YulLiteral","src":"19420:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19409:2:53","nodeType":"YulIdentifier","src":"19409:2:53"},"nativeSrc":"19409:30:53","nodeType":"YulFunctionCall","src":"19409:30:53"},"nativeSrc":"19406:117:53","nodeType":"YulIf","src":"19406:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19548:5:53","nodeType":"YulIdentifier","src":"19548:5:53"},{"kind":"number","nativeSrc":"19555:4:53","nodeType":"YulLiteral","src":"19555:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"19544:3:53","nodeType":"YulIdentifier","src":"19544:3:53"},"nativeSrc":"19544:16:53","nodeType":"YulFunctionCall","src":"19544:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19596:9:53","nodeType":"YulIdentifier","src":"19596:9:53"},{"name":"offset","nativeSrc":"19607:6:53","nodeType":"YulIdentifier","src":"19607:6:53"}],"functionName":{"name":"add","nativeSrc":"19592:3:53","nodeType":"YulIdentifier","src":"19592:3:53"},"nativeSrc":"19592:22:53","nodeType":"YulFunctionCall","src":"19592:22:53"},{"name":"end","nativeSrc":"19616:3:53","nodeType":"YulIdentifier","src":"19616:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"19562:29:53","nodeType":"YulIdentifier","src":"19562:29:53"},"nativeSrc":"19562:58:53","nodeType":"YulFunctionCall","src":"19562:58:53"}],"functionName":{"name":"mstore","nativeSrc":"19537:6:53","nodeType":"YulIdentifier","src":"19537:6:53"},"nativeSrc":"19537:84:53","nodeType":"YulFunctionCall","src":"19537:84:53"},"nativeSrc":"19537:84:53","nodeType":"YulExpressionStatement","src":"19537:84:53"}]}]},"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"18549:1090:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18606:9:53","nodeType":"YulTypedName","src":"18606:9:53","type":""},{"name":"end","nativeSrc":"18617:3:53","nodeType":"YulTypedName","src":"18617:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18625:5:53","nodeType":"YulTypedName","src":"18625:5:53","type":""}],"src":"18549:1090:53"},{"body":{"nativeSrc":"19738:450:53","nodeType":"YulBlock","src":"19738:450:53","statements":[{"body":{"nativeSrc":"19784:83:53","nodeType":"YulBlock","src":"19784:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19786:77:53","nodeType":"YulIdentifier","src":"19786:77:53"},"nativeSrc":"19786:79:53","nodeType":"YulFunctionCall","src":"19786:79:53"},"nativeSrc":"19786:79:53","nodeType":"YulExpressionStatement","src":"19786:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19759:7:53","nodeType":"YulIdentifier","src":"19759:7:53"},{"name":"headStart","nativeSrc":"19768:9:53","nodeType":"YulIdentifier","src":"19768:9:53"}],"functionName":{"name":"sub","nativeSrc":"19755:3:53","nodeType":"YulIdentifier","src":"19755:3:53"},"nativeSrc":"19755:23:53","nodeType":"YulFunctionCall","src":"19755:23:53"},{"kind":"number","nativeSrc":"19780:2:53","nodeType":"YulLiteral","src":"19780:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19751:3:53","nodeType":"YulIdentifier","src":"19751:3:53"},"nativeSrc":"19751:32:53","nodeType":"YulFunctionCall","src":"19751:32:53"},"nativeSrc":"19748:119:53","nodeType":"YulIf","src":"19748:119:53"},{"nativeSrc":"19877:304:53","nodeType":"YulBlock","src":"19877:304:53","statements":[{"nativeSrc":"19892:45:53","nodeType":"YulVariableDeclaration","src":"19892:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19923:9:53","nodeType":"YulIdentifier","src":"19923:9:53"},{"kind":"number","nativeSrc":"19934:1:53","nodeType":"YulLiteral","src":"19934:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19919:3:53","nodeType":"YulIdentifier","src":"19919:3:53"},"nativeSrc":"19919:17:53","nodeType":"YulFunctionCall","src":"19919:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"19906:12:53","nodeType":"YulIdentifier","src":"19906:12:53"},"nativeSrc":"19906:31:53","nodeType":"YulFunctionCall","src":"19906:31:53"},"variables":[{"name":"offset","nativeSrc":"19896:6:53","nodeType":"YulTypedName","src":"19896:6:53","type":""}]},{"body":{"nativeSrc":"19984:83:53","nodeType":"YulBlock","src":"19984:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19986:77:53","nodeType":"YulIdentifier","src":"19986:77:53"},"nativeSrc":"19986:79:53","nodeType":"YulFunctionCall","src":"19986:79:53"},"nativeSrc":"19986:79:53","nodeType":"YulExpressionStatement","src":"19986:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19956:6:53","nodeType":"YulIdentifier","src":"19956:6:53"},{"kind":"number","nativeSrc":"19964:18:53","nodeType":"YulLiteral","src":"19964:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19953:2:53","nodeType":"YulIdentifier","src":"19953:2:53"},"nativeSrc":"19953:30:53","nodeType":"YulFunctionCall","src":"19953:30:53"},"nativeSrc":"19950:117:53","nodeType":"YulIf","src":"19950:117:53"},{"nativeSrc":"20081:90:53","nodeType":"YulAssignment","src":"20081:90:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20143:9:53","nodeType":"YulIdentifier","src":"20143:9:53"},{"name":"offset","nativeSrc":"20154:6:53","nodeType":"YulIdentifier","src":"20154:6:53"}],"functionName":{"name":"add","nativeSrc":"20139:3:53","nodeType":"YulIdentifier","src":"20139:3:53"},"nativeSrc":"20139:22:53","nodeType":"YulFunctionCall","src":"20139:22:53"},{"name":"dataEnd","nativeSrc":"20163:7:53","nodeType":"YulIdentifier","src":"20163:7:53"}],"functionName":{"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"20091:47:53","nodeType":"YulIdentifier","src":"20091:47:53"},"nativeSrc":"20091:80:53","nodeType":"YulFunctionCall","src":"20091:80:53"},"variableNames":[{"name":"value0","nativeSrc":"20081:6:53","nodeType":"YulIdentifier","src":"20081:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"19645:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19708:9:53","nodeType":"YulTypedName","src":"19708:9:53","type":""},{"name":"dataEnd","nativeSrc":"19719:7:53","nodeType":"YulTypedName","src":"19719:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19731:6:53","nodeType":"YulTypedName","src":"19731:6:53","type":""}],"src":"19645:543:53"},{"body":{"nativeSrc":"20222:152:53","nodeType":"YulBlock","src":"20222:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20239:1:53","nodeType":"YulLiteral","src":"20239:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20242:77:53","nodeType":"YulLiteral","src":"20242:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20232:6:53","nodeType":"YulIdentifier","src":"20232:6:53"},"nativeSrc":"20232:88:53","nodeType":"YulFunctionCall","src":"20232:88:53"},"nativeSrc":"20232:88:53","nodeType":"YulExpressionStatement","src":"20232:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20336:1:53","nodeType":"YulLiteral","src":"20336:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"20339:4:53","nodeType":"YulLiteral","src":"20339:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"20329:6:53","nodeType":"YulIdentifier","src":"20329:6:53"},"nativeSrc":"20329:15:53","nodeType":"YulFunctionCall","src":"20329:15:53"},"nativeSrc":"20329:15:53","nodeType":"YulExpressionStatement","src":"20329:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20360:1:53","nodeType":"YulLiteral","src":"20360:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20363:4:53","nodeType":"YulLiteral","src":"20363:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20353:6:53","nodeType":"YulIdentifier","src":"20353:6:53"},"nativeSrc":"20353:15:53","nodeType":"YulFunctionCall","src":"20353:15:53"},"nativeSrc":"20353:15:53","nodeType":"YulExpressionStatement","src":"20353:15:53"}]},"name":"panic_error_0x21","nativeSrc":"20194:180:53","nodeType":"YulFunctionDefinition","src":"20194:180:53"},{"body":{"nativeSrc":"20443:80:53","nodeType":"YulBlock","src":"20443:80:53","statements":[{"nativeSrc":"20453:22:53","nodeType":"YulAssignment","src":"20453:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"20468:6:53","nodeType":"YulIdentifier","src":"20468:6:53"}],"functionName":{"name":"mload","nativeSrc":"20462:5:53","nodeType":"YulIdentifier","src":"20462:5:53"},"nativeSrc":"20462:13:53","nodeType":"YulFunctionCall","src":"20462:13:53"},"variableNames":[{"name":"value","nativeSrc":"20453:5:53","nodeType":"YulIdentifier","src":"20453:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"20511:5:53","nodeType":"YulIdentifier","src":"20511:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"20484:26:53","nodeType":"YulIdentifier","src":"20484:26:53"},"nativeSrc":"20484:33:53","nodeType":"YulFunctionCall","src":"20484:33:53"},"nativeSrc":"20484:33:53","nodeType":"YulExpressionStatement","src":"20484:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"20380:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20421:6:53","nodeType":"YulTypedName","src":"20421:6:53","type":""},{"name":"end","nativeSrc":"20429:3:53","nodeType":"YulTypedName","src":"20429:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20437:5:53","nodeType":"YulTypedName","src":"20437:5:53","type":""}],"src":"20380:143:53"},{"body":{"nativeSrc":"20666:346:53","nodeType":"YulBlock","src":"20666:346:53","statements":[{"body":{"nativeSrc":"20710:83:53","nodeType":"YulBlock","src":"20710:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"20712:77:53","nodeType":"YulIdentifier","src":"20712:77:53"},"nativeSrc":"20712:79:53","nodeType":"YulFunctionCall","src":"20712:79:53"},"nativeSrc":"20712:79:53","nodeType":"YulExpressionStatement","src":"20712:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"20687:3:53","nodeType":"YulIdentifier","src":"20687:3:53"},{"name":"headStart","nativeSrc":"20692:9:53","nodeType":"YulIdentifier","src":"20692:9:53"}],"functionName":{"name":"sub","nativeSrc":"20683:3:53","nodeType":"YulIdentifier","src":"20683:3:53"},"nativeSrc":"20683:19:53","nodeType":"YulFunctionCall","src":"20683:19:53"},{"kind":"number","nativeSrc":"20704:4:53","nodeType":"YulLiteral","src":"20704:4:53","type":"","value":"0x20"}],"functionName":{"name":"slt","nativeSrc":"20679:3:53","nodeType":"YulIdentifier","src":"20679:3:53"},"nativeSrc":"20679:30:53","nodeType":"YulFunctionCall","src":"20679:30:53"},"nativeSrc":"20676:117:53","nodeType":"YulIf","src":"20676:117:53"},{"nativeSrc":"20802:30:53","nodeType":"YulAssignment","src":"20802:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"20827:4:53","nodeType":"YulLiteral","src":"20827:4:53","type":"","value":"0x20"}],"functionName":{"name":"allocate_memory","nativeSrc":"20811:15:53","nodeType":"YulIdentifier","src":"20811:15:53"},"nativeSrc":"20811:21:53","nodeType":"YulFunctionCall","src":"20811:21:53"},"variableNames":[{"name":"value","nativeSrc":"20802:5:53","nodeType":"YulIdentifier","src":"20802:5:53"}]},{"nativeSrc":"20842:163:53","nodeType":"YulBlock","src":"20842:163:53","statements":[{"nativeSrc":"20879:15:53","nodeType":"YulVariableDeclaration","src":"20879:15:53","value":{"kind":"number","nativeSrc":"20893:1:53","nodeType":"YulLiteral","src":"20893:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"20883:6:53","nodeType":"YulTypedName","src":"20883:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20919:5:53","nodeType":"YulIdentifier","src":"20919:5:53"},{"kind":"number","nativeSrc":"20926:4:53","nodeType":"YulLiteral","src":"20926:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20915:3:53","nodeType":"YulIdentifier","src":"20915:3:53"},"nativeSrc":"20915:16:53","nodeType":"YulFunctionCall","src":"20915:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20969:9:53","nodeType":"YulIdentifier","src":"20969:9:53"},{"name":"offset","nativeSrc":"20980:6:53","nodeType":"YulIdentifier","src":"20980:6:53"}],"functionName":{"name":"add","nativeSrc":"20965:3:53","nodeType":"YulIdentifier","src":"20965:3:53"},"nativeSrc":"20965:22:53","nodeType":"YulFunctionCall","src":"20965:22:53"},{"name":"end","nativeSrc":"20989:3:53","nodeType":"YulIdentifier","src":"20989:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"20933:31:53","nodeType":"YulIdentifier","src":"20933:31:53"},"nativeSrc":"20933:60:53","nodeType":"YulFunctionCall","src":"20933:60:53"}],"functionName":{"name":"mstore","nativeSrc":"20908:6:53","nodeType":"YulIdentifier","src":"20908:6:53"},"nativeSrc":"20908:86:53","nodeType":"YulFunctionCall","src":"20908:86:53"},"nativeSrc":"20908:86:53","nodeType":"YulExpressionStatement","src":"20908:86:53"}]}]},"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"20566:446:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20641:9:53","nodeType":"YulTypedName","src":"20641:9:53","type":""},{"name":"end","nativeSrc":"20652:3:53","nodeType":"YulTypedName","src":"20652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20660:5:53","nodeType":"YulTypedName","src":"20660:5:53","type":""}],"src":"20566:446:53"},{"body":{"nativeSrc":"21129:308:53","nodeType":"YulBlock","src":"21129:308:53","statements":[{"body":{"nativeSrc":"21175:83:53","nodeType":"YulBlock","src":"21175:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"21177:77:53","nodeType":"YulIdentifier","src":"21177:77:53"},"nativeSrc":"21177:79:53","nodeType":"YulFunctionCall","src":"21177:79:53"},"nativeSrc":"21177:79:53","nodeType":"YulExpressionStatement","src":"21177:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"21150:7:53","nodeType":"YulIdentifier","src":"21150:7:53"},{"name":"headStart","nativeSrc":"21159:9:53","nodeType":"YulIdentifier","src":"21159:9:53"}],"functionName":{"name":"sub","nativeSrc":"21146:3:53","nodeType":"YulIdentifier","src":"21146:3:53"},"nativeSrc":"21146:23:53","nodeType":"YulFunctionCall","src":"21146:23:53"},{"kind":"number","nativeSrc":"21171:2:53","nodeType":"YulLiteral","src":"21171:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"21142:3:53","nodeType":"YulIdentifier","src":"21142:3:53"},"nativeSrc":"21142:32:53","nodeType":"YulFunctionCall","src":"21142:32:53"},"nativeSrc":"21139:119:53","nodeType":"YulIf","src":"21139:119:53"},{"nativeSrc":"21268:162:53","nodeType":"YulBlock","src":"21268:162:53","statements":[{"nativeSrc":"21283:15:53","nodeType":"YulVariableDeclaration","src":"21283:15:53","value":{"kind":"number","nativeSrc":"21297:1:53","nodeType":"YulLiteral","src":"21297:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21287:6:53","nodeType":"YulTypedName","src":"21287:6:53","type":""}]},{"nativeSrc":"21312:108:53","nodeType":"YulAssignment","src":"21312:108:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21392:9:53","nodeType":"YulIdentifier","src":"21392:9:53"},{"name":"offset","nativeSrc":"21403:6:53","nodeType":"YulIdentifier","src":"21403:6:53"}],"functionName":{"name":"add","nativeSrc":"21388:3:53","nodeType":"YulIdentifier","src":"21388:3:53"},"nativeSrc":"21388:22:53","nodeType":"YulFunctionCall","src":"21388:22:53"},{"name":"dataEnd","nativeSrc":"21412:7:53","nodeType":"YulIdentifier","src":"21412:7:53"}],"functionName":{"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"21322:65:53","nodeType":"YulIdentifier","src":"21322:65:53"},"nativeSrc":"21322:98:53","nodeType":"YulFunctionCall","src":"21322:98:53"},"variableNames":[{"name":"value0","nativeSrc":"21312:6:53","nodeType":"YulIdentifier","src":"21312:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"21018:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21099:9:53","nodeType":"YulTypedName","src":"21099:9:53","type":""},{"name":"dataEnd","nativeSrc":"21110:7:53","nodeType":"YulTypedName","src":"21110:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"21122:6:53","nodeType":"YulTypedName","src":"21122:6:53","type":""}],"src":"21018:419:53"},{"body":{"nativeSrc":"21569:206:53","nodeType":"YulBlock","src":"21569:206:53","statements":[{"nativeSrc":"21579:26:53","nodeType":"YulAssignment","src":"21579:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21591:9:53","nodeType":"YulIdentifier","src":"21591:9:53"},{"kind":"number","nativeSrc":"21602:2:53","nodeType":"YulLiteral","src":"21602:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21587:3:53","nodeType":"YulIdentifier","src":"21587:3:53"},"nativeSrc":"21587:18:53","nodeType":"YulFunctionCall","src":"21587:18:53"},"variableNames":[{"name":"tail","nativeSrc":"21579:4:53","nodeType":"YulIdentifier","src":"21579:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21659:6:53","nodeType":"YulIdentifier","src":"21659:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21672:9:53","nodeType":"YulIdentifier","src":"21672:9:53"},{"kind":"number","nativeSrc":"21683:1:53","nodeType":"YulLiteral","src":"21683:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21668:3:53","nodeType":"YulIdentifier","src":"21668:3:53"},"nativeSrc":"21668:17:53","nodeType":"YulFunctionCall","src":"21668:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21615:43:53","nodeType":"YulIdentifier","src":"21615:43:53"},"nativeSrc":"21615:71:53","nodeType":"YulFunctionCall","src":"21615:71:53"},"nativeSrc":"21615:71:53","nodeType":"YulExpressionStatement","src":"21615:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21740:6:53","nodeType":"YulIdentifier","src":"21740:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21753:9:53","nodeType":"YulIdentifier","src":"21753:9:53"},{"kind":"number","nativeSrc":"21764:2:53","nodeType":"YulLiteral","src":"21764:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21749:3:53","nodeType":"YulIdentifier","src":"21749:3:53"},"nativeSrc":"21749:18:53","nodeType":"YulFunctionCall","src":"21749:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21696:43:53","nodeType":"YulIdentifier","src":"21696:43:53"},"nativeSrc":"21696:72:53","nodeType":"YulFunctionCall","src":"21696:72:53"},"nativeSrc":"21696:72:53","nodeType":"YulExpressionStatement","src":"21696:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"21443:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21533:9:53","nodeType":"YulTypedName","src":"21533:9:53","type":""},{"name":"value1","nativeSrc":"21545:6:53","nodeType":"YulTypedName","src":"21545:6:53","type":""},{"name":"value0","nativeSrc":"21553:6:53","nodeType":"YulTypedName","src":"21553:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21564:4:53","nodeType":"YulTypedName","src":"21564:4:53","type":""}],"src":"21443:332:53"},{"body":{"nativeSrc":"21843:77:53","nodeType":"YulBlock","src":"21843:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"21860:3:53","nodeType":"YulIdentifier","src":"21860:3:53"},{"name":"src","nativeSrc":"21865:3:53","nodeType":"YulIdentifier","src":"21865:3:53"},{"name":"length","nativeSrc":"21870:6:53","nodeType":"YulIdentifier","src":"21870:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"21854:5:53","nodeType":"YulIdentifier","src":"21854:5:53"},"nativeSrc":"21854:23:53","nodeType":"YulFunctionCall","src":"21854:23:53"},"nativeSrc":"21854:23:53","nodeType":"YulExpressionStatement","src":"21854:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"21897:3:53","nodeType":"YulIdentifier","src":"21897:3:53"},{"name":"length","nativeSrc":"21902:6:53","nodeType":"YulIdentifier","src":"21902:6:53"}],"functionName":{"name":"add","nativeSrc":"21893:3:53","nodeType":"YulIdentifier","src":"21893:3:53"},"nativeSrc":"21893:16:53","nodeType":"YulFunctionCall","src":"21893:16:53"},{"kind":"number","nativeSrc":"21911:1:53","nodeType":"YulLiteral","src":"21911:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"21886:6:53","nodeType":"YulIdentifier","src":"21886:6:53"},"nativeSrc":"21886:27:53","nodeType":"YulFunctionCall","src":"21886:27:53"},"nativeSrc":"21886:27:53","nodeType":"YulExpressionStatement","src":"21886:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"21781:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"21825:3:53","nodeType":"YulTypedName","src":"21825:3:53","type":""},{"name":"dst","nativeSrc":"21830:3:53","nodeType":"YulTypedName","src":"21830:3:53","type":""},{"name":"length","nativeSrc":"21835:6:53","nodeType":"YulTypedName","src":"21835:6:53","type":""}],"src":"21781:139:53"},{"body":{"nativeSrc":"22020:338:53","nodeType":"YulBlock","src":"22020:338:53","statements":[{"nativeSrc":"22030:74:53","nodeType":"YulAssignment","src":"22030:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"22096:6:53","nodeType":"YulIdentifier","src":"22096:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"22055:40:53","nodeType":"YulIdentifier","src":"22055:40:53"},"nativeSrc":"22055:48:53","nodeType":"YulFunctionCall","src":"22055:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"22039:15:53","nodeType":"YulIdentifier","src":"22039:15:53"},"nativeSrc":"22039:65:53","nodeType":"YulFunctionCall","src":"22039:65:53"},"variableNames":[{"name":"array","nativeSrc":"22030:5:53","nodeType":"YulIdentifier","src":"22030:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22120:5:53","nodeType":"YulIdentifier","src":"22120:5:53"},{"name":"length","nativeSrc":"22127:6:53","nodeType":"YulIdentifier","src":"22127:6:53"}],"functionName":{"name":"mstore","nativeSrc":"22113:6:53","nodeType":"YulIdentifier","src":"22113:6:53"},"nativeSrc":"22113:21:53","nodeType":"YulFunctionCall","src":"22113:21:53"},"nativeSrc":"22113:21:53","nodeType":"YulExpressionStatement","src":"22113:21:53"},{"nativeSrc":"22143:27:53","nodeType":"YulVariableDeclaration","src":"22143:27:53","value":{"arguments":[{"name":"array","nativeSrc":"22158:5:53","nodeType":"YulIdentifier","src":"22158:5:53"},{"kind":"number","nativeSrc":"22165:4:53","nodeType":"YulLiteral","src":"22165:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22154:3:53","nodeType":"YulIdentifier","src":"22154:3:53"},"nativeSrc":"22154:16:53","nodeType":"YulFunctionCall","src":"22154:16:53"},"variables":[{"name":"dst","nativeSrc":"22147:3:53","nodeType":"YulTypedName","src":"22147:3:53","type":""}]},{"body":{"nativeSrc":"22208:83:53","nodeType":"YulBlock","src":"22208:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"22210:77:53","nodeType":"YulIdentifier","src":"22210:77:53"},"nativeSrc":"22210:79:53","nodeType":"YulFunctionCall","src":"22210:79:53"},"nativeSrc":"22210:79:53","nodeType":"YulExpressionStatement","src":"22210:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22189:3:53","nodeType":"YulIdentifier","src":"22189:3:53"},{"name":"length","nativeSrc":"22194:6:53","nodeType":"YulIdentifier","src":"22194:6:53"}],"functionName":{"name":"add","nativeSrc":"22185:3:53","nodeType":"YulIdentifier","src":"22185:3:53"},"nativeSrc":"22185:16:53","nodeType":"YulFunctionCall","src":"22185:16:53"},{"name":"end","nativeSrc":"22203:3:53","nodeType":"YulIdentifier","src":"22203:3:53"}],"functionName":{"name":"gt","nativeSrc":"22182:2:53","nodeType":"YulIdentifier","src":"22182:2:53"},"nativeSrc":"22182:25:53","nodeType":"YulFunctionCall","src":"22182:25:53"},"nativeSrc":"22179:112:53","nodeType":"YulIf","src":"22179:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"22335:3:53","nodeType":"YulIdentifier","src":"22335:3:53"},{"name":"dst","nativeSrc":"22340:3:53","nodeType":"YulIdentifier","src":"22340:3:53"},{"name":"length","nativeSrc":"22345:6:53","nodeType":"YulIdentifier","src":"22345:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22300:34:53","nodeType":"YulIdentifier","src":"22300:34:53"},"nativeSrc":"22300:52:53","nodeType":"YulFunctionCall","src":"22300:52:53"},"nativeSrc":"22300:52:53","nodeType":"YulExpressionStatement","src":"22300:52:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"21926:432:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"21993:3:53","nodeType":"YulTypedName","src":"21993:3:53","type":""},{"name":"length","nativeSrc":"21998:6:53","nodeType":"YulTypedName","src":"21998:6:53","type":""},{"name":"end","nativeSrc":"22006:3:53","nodeType":"YulTypedName","src":"22006:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22014:5:53","nodeType":"YulTypedName","src":"22014:5:53","type":""}],"src":"21926:432:53"},{"body":{"nativeSrc":"22449:281:53","nodeType":"YulBlock","src":"22449:281:53","statements":[{"body":{"nativeSrc":"22498:83:53","nodeType":"YulBlock","src":"22498:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"22500:77:53","nodeType":"YulIdentifier","src":"22500:77:53"},"nativeSrc":"22500:79:53","nodeType":"YulFunctionCall","src":"22500:79:53"},"nativeSrc":"22500:79:53","nodeType":"YulExpressionStatement","src":"22500:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22477:6:53","nodeType":"YulIdentifier","src":"22477:6:53"},{"kind":"number","nativeSrc":"22485:4:53","nodeType":"YulLiteral","src":"22485:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22473:3:53","nodeType":"YulIdentifier","src":"22473:3:53"},"nativeSrc":"22473:17:53","nodeType":"YulFunctionCall","src":"22473:17:53"},{"name":"end","nativeSrc":"22492:3:53","nodeType":"YulIdentifier","src":"22492:3:53"}],"functionName":{"name":"slt","nativeSrc":"22469:3:53","nodeType":"YulIdentifier","src":"22469:3:53"},"nativeSrc":"22469:27:53","nodeType":"YulFunctionCall","src":"22469:27:53"}],"functionName":{"name":"iszero","nativeSrc":"22462:6:53","nodeType":"YulIdentifier","src":"22462:6:53"},"nativeSrc":"22462:35:53","nodeType":"YulFunctionCall","src":"22462:35:53"},"nativeSrc":"22459:122:53","nodeType":"YulIf","src":"22459:122:53"},{"nativeSrc":"22590:27:53","nodeType":"YulVariableDeclaration","src":"22590:27:53","value":{"arguments":[{"name":"offset","nativeSrc":"22610:6:53","nodeType":"YulIdentifier","src":"22610:6:53"}],"functionName":{"name":"mload","nativeSrc":"22604:5:53","nodeType":"YulIdentifier","src":"22604:5:53"},"nativeSrc":"22604:13:53","nodeType":"YulFunctionCall","src":"22604:13:53"},"variables":[{"name":"length","nativeSrc":"22594:6:53","nodeType":"YulTypedName","src":"22594:6:53","type":""}]},{"nativeSrc":"22626:98:53","nodeType":"YulAssignment","src":"22626:98:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22697:6:53","nodeType":"YulIdentifier","src":"22697:6:53"},{"kind":"number","nativeSrc":"22705:4:53","nodeType":"YulLiteral","src":"22705:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22693:3:53","nodeType":"YulIdentifier","src":"22693:3:53"},"nativeSrc":"22693:17:53","nodeType":"YulFunctionCall","src":"22693:17:53"},{"name":"length","nativeSrc":"22712:6:53","nodeType":"YulIdentifier","src":"22712:6:53"},{"name":"end","nativeSrc":"22720:3:53","nodeType":"YulIdentifier","src":"22720:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"22635:57:53","nodeType":"YulIdentifier","src":"22635:57:53"},"nativeSrc":"22635:89:53","nodeType":"YulFunctionCall","src":"22635:89:53"},"variableNames":[{"name":"array","nativeSrc":"22626:5:53","nodeType":"YulIdentifier","src":"22626:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"22377:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22427:6:53","nodeType":"YulTypedName","src":"22427:6:53","type":""},{"name":"end","nativeSrc":"22435:3:53","nodeType":"YulTypedName","src":"22435:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22443:5:53","nodeType":"YulTypedName","src":"22443:5:53","type":""}],"src":"22377:353:53"},{"body":{"nativeSrc":"22871:855:53","nodeType":"YulBlock","src":"22871:855:53","statements":[{"body":{"nativeSrc":"22915:83:53","nodeType":"YulBlock","src":"22915:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"22917:77:53","nodeType":"YulIdentifier","src":"22917:77:53"},"nativeSrc":"22917:79:53","nodeType":"YulFunctionCall","src":"22917:79:53"},"nativeSrc":"22917:79:53","nodeType":"YulExpressionStatement","src":"22917:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"22892:3:53","nodeType":"YulIdentifier","src":"22892:3:53"},{"name":"headStart","nativeSrc":"22897:9:53","nodeType":"YulIdentifier","src":"22897:9:53"}],"functionName":{"name":"sub","nativeSrc":"22888:3:53","nodeType":"YulIdentifier","src":"22888:3:53"},"nativeSrc":"22888:19:53","nodeType":"YulFunctionCall","src":"22888:19:53"},{"kind":"number","nativeSrc":"22909:4:53","nodeType":"YulLiteral","src":"22909:4:53","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"22884:3:53","nodeType":"YulIdentifier","src":"22884:3:53"},"nativeSrc":"22884:30:53","nodeType":"YulFunctionCall","src":"22884:30:53"},"nativeSrc":"22881:117:53","nodeType":"YulIf","src":"22881:117:53"},{"nativeSrc":"23007:30:53","nodeType":"YulAssignment","src":"23007:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"23032:4:53","nodeType":"YulLiteral","src":"23032:4:53","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"23016:15:53","nodeType":"YulIdentifier","src":"23016:15:53"},"nativeSrc":"23016:21:53","nodeType":"YulFunctionCall","src":"23016:21:53"},"variableNames":[{"name":"value","nativeSrc":"23007:5:53","nodeType":"YulIdentifier","src":"23007:5:53"}]},{"nativeSrc":"23047:164:53","nodeType":"YulBlock","src":"23047:164:53","statements":[{"nativeSrc":"23085:15:53","nodeType":"YulVariableDeclaration","src":"23085:15:53","value":{"kind":"number","nativeSrc":"23099:1:53","nodeType":"YulLiteral","src":"23099:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23089:6:53","nodeType":"YulTypedName","src":"23089:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23125:5:53","nodeType":"YulIdentifier","src":"23125:5:53"},{"kind":"number","nativeSrc":"23132:4:53","nodeType":"YulLiteral","src":"23132:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23121:3:53","nodeType":"YulIdentifier","src":"23121:3:53"},"nativeSrc":"23121:16:53","nodeType":"YulFunctionCall","src":"23121:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23175:9:53","nodeType":"YulIdentifier","src":"23175:9:53"},{"name":"offset","nativeSrc":"23186:6:53","nodeType":"YulIdentifier","src":"23186:6:53"}],"functionName":{"name":"add","nativeSrc":"23171:3:53","nodeType":"YulIdentifier","src":"23171:3:53"},"nativeSrc":"23171:22:53","nodeType":"YulFunctionCall","src":"23171:22:53"},{"name":"end","nativeSrc":"23195:3:53","nodeType":"YulIdentifier","src":"23195:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23139:31:53","nodeType":"YulIdentifier","src":"23139:31:53"},"nativeSrc":"23139:60:53","nodeType":"YulFunctionCall","src":"23139:60:53"}],"functionName":{"name":"mstore","nativeSrc":"23114:6:53","nodeType":"YulIdentifier","src":"23114:6:53"},"nativeSrc":"23114:86:53","nodeType":"YulFunctionCall","src":"23114:86:53"},"nativeSrc":"23114:86:53","nodeType":"YulExpressionStatement","src":"23114:86:53"}]},{"nativeSrc":"23221:164:53","nodeType":"YulBlock","src":"23221:164:53","statements":[{"nativeSrc":"23258:16:53","nodeType":"YulVariableDeclaration","src":"23258:16:53","value":{"kind":"number","nativeSrc":"23272:2:53","nodeType":"YulLiteral","src":"23272:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"23262:6:53","nodeType":"YulTypedName","src":"23262:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23299:5:53","nodeType":"YulIdentifier","src":"23299:5:53"},{"kind":"number","nativeSrc":"23306:4:53","nodeType":"YulLiteral","src":"23306:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23295:3:53","nodeType":"YulIdentifier","src":"23295:3:53"},"nativeSrc":"23295:16:53","nodeType":"YulFunctionCall","src":"23295:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23349:9:53","nodeType":"YulIdentifier","src":"23349:9:53"},{"name":"offset","nativeSrc":"23360:6:53","nodeType":"YulIdentifier","src":"23360:6:53"}],"functionName":{"name":"add","nativeSrc":"23345:3:53","nodeType":"YulIdentifier","src":"23345:3:53"},"nativeSrc":"23345:22:53","nodeType":"YulFunctionCall","src":"23345:22:53"},{"name":"end","nativeSrc":"23369:3:53","nodeType":"YulIdentifier","src":"23369:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23313:31:53","nodeType":"YulIdentifier","src":"23313:31:53"},"nativeSrc":"23313:60:53","nodeType":"YulFunctionCall","src":"23313:60:53"}],"functionName":{"name":"mstore","nativeSrc":"23288:6:53","nodeType":"YulIdentifier","src":"23288:6:53"},"nativeSrc":"23288:86:53","nodeType":"YulFunctionCall","src":"23288:86:53"},"nativeSrc":"23288:86:53","nodeType":"YulExpressionStatement","src":"23288:86:53"}]},{"nativeSrc":"23395:324:53","nodeType":"YulBlock","src":"23395:324:53","statements":[{"nativeSrc":"23430:39:53","nodeType":"YulVariableDeclaration","src":"23430:39:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23454:9:53","nodeType":"YulIdentifier","src":"23454:9:53"},{"kind":"number","nativeSrc":"23465:2:53","nodeType":"YulLiteral","src":"23465:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23450:3:53","nodeType":"YulIdentifier","src":"23450:3:53"},"nativeSrc":"23450:18:53","nodeType":"YulFunctionCall","src":"23450:18:53"}],"functionName":{"name":"mload","nativeSrc":"23444:5:53","nodeType":"YulIdentifier","src":"23444:5:53"},"nativeSrc":"23444:25:53","nodeType":"YulFunctionCall","src":"23444:25:53"},"variables":[{"name":"offset","nativeSrc":"23434:6:53","nodeType":"YulTypedName","src":"23434:6:53","type":""}]},{"body":{"nativeSrc":"23516:83:53","nodeType":"YulBlock","src":"23516:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"23518:77:53","nodeType":"YulIdentifier","src":"23518:77:53"},"nativeSrc":"23518:79:53","nodeType":"YulFunctionCall","src":"23518:79:53"},"nativeSrc":"23518:79:53","nodeType":"YulExpressionStatement","src":"23518:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"23488:6:53","nodeType":"YulIdentifier","src":"23488:6:53"},{"kind":"number","nativeSrc":"23496:18:53","nodeType":"YulLiteral","src":"23496:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23485:2:53","nodeType":"YulIdentifier","src":"23485:2:53"},"nativeSrc":"23485:30:53","nodeType":"YulFunctionCall","src":"23485:30:53"},"nativeSrc":"23482:117:53","nodeType":"YulIf","src":"23482:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23624:5:53","nodeType":"YulIdentifier","src":"23624:5:53"},{"kind":"number","nativeSrc":"23631:4:53","nodeType":"YulLiteral","src":"23631:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23620:3:53","nodeType":"YulIdentifier","src":"23620:3:53"},"nativeSrc":"23620:16:53","nodeType":"YulFunctionCall","src":"23620:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23683:9:53","nodeType":"YulIdentifier","src":"23683:9:53"},{"name":"offset","nativeSrc":"23694:6:53","nodeType":"YulIdentifier","src":"23694:6:53"}],"functionName":{"name":"add","nativeSrc":"23679:3:53","nodeType":"YulIdentifier","src":"23679:3:53"},"nativeSrc":"23679:22:53","nodeType":"YulFunctionCall","src":"23679:22:53"},{"name":"end","nativeSrc":"23703:3:53","nodeType":"YulIdentifier","src":"23703:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"23638:40:53","nodeType":"YulIdentifier","src":"23638:40:53"},"nativeSrc":"23638:69:53","nodeType":"YulFunctionCall","src":"23638:69:53"}],"functionName":{"name":"mstore","nativeSrc":"23613:6:53","nodeType":"YulIdentifier","src":"23613:6:53"},"nativeSrc":"23613:95:53","nodeType":"YulFunctionCall","src":"23613:95:53"},"nativeSrc":"23613:95:53","nodeType":"YulExpressionStatement","src":"23613:95:53"}]}]},"name":"abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory","nativeSrc":"22772:954:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22846:9:53","nodeType":"YulTypedName","src":"22846:9:53","type":""},{"name":"end","nativeSrc":"22857:3:53","nodeType":"YulTypedName","src":"22857:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22865:5:53","nodeType":"YulTypedName","src":"22865:5:53","type":""}],"src":"22772:954:53"},{"body":{"nativeSrc":"23842:460:53","nodeType":"YulBlock","src":"23842:460:53","statements":[{"body":{"nativeSrc":"23888:83:53","nodeType":"YulBlock","src":"23888:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"23890:77:53","nodeType":"YulIdentifier","src":"23890:77:53"},"nativeSrc":"23890:79:53","nodeType":"YulFunctionCall","src":"23890:79:53"},"nativeSrc":"23890:79:53","nodeType":"YulExpressionStatement","src":"23890:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23863:7:53","nodeType":"YulIdentifier","src":"23863:7:53"},{"name":"headStart","nativeSrc":"23872:9:53","nodeType":"YulIdentifier","src":"23872:9:53"}],"functionName":{"name":"sub","nativeSrc":"23859:3:53","nodeType":"YulIdentifier","src":"23859:3:53"},"nativeSrc":"23859:23:53","nodeType":"YulFunctionCall","src":"23859:23:53"},{"kind":"number","nativeSrc":"23884:2:53","nodeType":"YulLiteral","src":"23884:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23855:3:53","nodeType":"YulIdentifier","src":"23855:3:53"},"nativeSrc":"23855:32:53","nodeType":"YulFunctionCall","src":"23855:32:53"},"nativeSrc":"23852:119:53","nodeType":"YulIf","src":"23852:119:53"},{"nativeSrc":"23981:314:53","nodeType":"YulBlock","src":"23981:314:53","statements":[{"nativeSrc":"23996:38:53","nodeType":"YulVariableDeclaration","src":"23996:38:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24020:9:53","nodeType":"YulIdentifier","src":"24020:9:53"},{"kind":"number","nativeSrc":"24031:1:53","nodeType":"YulLiteral","src":"24031:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24016:3:53","nodeType":"YulIdentifier","src":"24016:3:53"},"nativeSrc":"24016:17:53","nodeType":"YulFunctionCall","src":"24016:17:53"}],"functionName":{"name":"mload","nativeSrc":"24010:5:53","nodeType":"YulIdentifier","src":"24010:5:53"},"nativeSrc":"24010:24:53","nodeType":"YulFunctionCall","src":"24010:24:53"},"variables":[{"name":"offset","nativeSrc":"24000:6:53","nodeType":"YulTypedName","src":"24000:6:53","type":""}]},{"body":{"nativeSrc":"24081:83:53","nodeType":"YulBlock","src":"24081:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"24083:77:53","nodeType":"YulIdentifier","src":"24083:77:53"},"nativeSrc":"24083:79:53","nodeType":"YulFunctionCall","src":"24083:79:53"},"nativeSrc":"24083:79:53","nodeType":"YulExpressionStatement","src":"24083:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24053:6:53","nodeType":"YulIdentifier","src":"24053:6:53"},{"kind":"number","nativeSrc":"24061:18:53","nodeType":"YulLiteral","src":"24061:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24050:2:53","nodeType":"YulIdentifier","src":"24050:2:53"},"nativeSrc":"24050:30:53","nodeType":"YulFunctionCall","src":"24050:30:53"},"nativeSrc":"24047:117:53","nodeType":"YulIf","src":"24047:117:53"},{"nativeSrc":"24178:107:53","nodeType":"YulAssignment","src":"24178:107:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24257:9:53","nodeType":"YulIdentifier","src":"24257:9:53"},{"name":"offset","nativeSrc":"24268:6:53","nodeType":"YulIdentifier","src":"24268:6:53"}],"functionName":{"name":"add","nativeSrc":"24253:3:53","nodeType":"YulIdentifier","src":"24253:3:53"},"nativeSrc":"24253:22:53","nodeType":"YulFunctionCall","src":"24253:22:53"},{"name":"dataEnd","nativeSrc":"24277:7:53","nodeType":"YulIdentifier","src":"24277:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory","nativeSrc":"24188:64:53","nodeType":"YulIdentifier","src":"24188:64:53"},"nativeSrc":"24188:97:53","nodeType":"YulFunctionCall","src":"24188:97:53"},"variableNames":[{"name":"value0","nativeSrc":"24178:6:53","nodeType":"YulIdentifier","src":"24178:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory","nativeSrc":"23732:570:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23812:9:53","nodeType":"YulTypedName","src":"23812:9:53","type":""},{"name":"dataEnd","nativeSrc":"23823:7:53","nodeType":"YulTypedName","src":"23823:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23835:6:53","nodeType":"YulTypedName","src":"23835:6:53","type":""}],"src":"23732:570:53"},{"body":{"nativeSrc":"24366:40:53","nodeType":"YulBlock","src":"24366:40:53","statements":[{"nativeSrc":"24377:22:53","nodeType":"YulAssignment","src":"24377:22:53","value":{"arguments":[{"name":"value","nativeSrc":"24393:5:53","nodeType":"YulIdentifier","src":"24393:5:53"}],"functionName":{"name":"mload","nativeSrc":"24387:5:53","nodeType":"YulIdentifier","src":"24387:5:53"},"nativeSrc":"24387:12:53","nodeType":"YulFunctionCall","src":"24387:12:53"},"variableNames":[{"name":"length","nativeSrc":"24377:6:53","nodeType":"YulIdentifier","src":"24377:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"24308:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24349:5:53","nodeType":"YulTypedName","src":"24349:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"24359:6:53","nodeType":"YulTypedName","src":"24359:6:53","type":""}],"src":"24308:98:53"},{"body":{"nativeSrc":"24507:73:53","nodeType":"YulBlock","src":"24507:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"24524:3:53","nodeType":"YulIdentifier","src":"24524:3:53"},{"name":"length","nativeSrc":"24529:6:53","nodeType":"YulIdentifier","src":"24529:6:53"}],"functionName":{"name":"mstore","nativeSrc":"24517:6:53","nodeType":"YulIdentifier","src":"24517:6:53"},"nativeSrc":"24517:19:53","nodeType":"YulFunctionCall","src":"24517:19:53"},"nativeSrc":"24517:19:53","nodeType":"YulExpressionStatement","src":"24517:19:53"},{"nativeSrc":"24545:29:53","nodeType":"YulAssignment","src":"24545:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"24564:3:53","nodeType":"YulIdentifier","src":"24564:3:53"},{"kind":"number","nativeSrc":"24569:4:53","nodeType":"YulLiteral","src":"24569:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24560:3:53","nodeType":"YulIdentifier","src":"24560:3:53"},"nativeSrc":"24560:14:53","nodeType":"YulFunctionCall","src":"24560:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"24545:11:53","nodeType":"YulIdentifier","src":"24545:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"24412:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"24479:3:53","nodeType":"YulTypedName","src":"24479:3:53","type":""},{"name":"length","nativeSrc":"24484:6:53","nodeType":"YulTypedName","src":"24484:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"24495:11:53","nodeType":"YulTypedName","src":"24495:11:53","type":""}],"src":"24412:168:53"},{"body":{"nativeSrc":"24676:283:53","nodeType":"YulBlock","src":"24676:283:53","statements":[{"nativeSrc":"24686:52:53","nodeType":"YulVariableDeclaration","src":"24686:52:53","value":{"arguments":[{"name":"value","nativeSrc":"24732:5:53","nodeType":"YulIdentifier","src":"24732:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"24700:31:53","nodeType":"YulIdentifier","src":"24700:31:53"},"nativeSrc":"24700:38:53","nodeType":"YulFunctionCall","src":"24700:38:53"},"variables":[{"name":"length","nativeSrc":"24690:6:53","nodeType":"YulTypedName","src":"24690:6:53","type":""}]},{"nativeSrc":"24747:77:53","nodeType":"YulAssignment","src":"24747:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"24812:3:53","nodeType":"YulIdentifier","src":"24812:3:53"},{"name":"length","nativeSrc":"24817:6:53","nodeType":"YulIdentifier","src":"24817:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"24754:57:53","nodeType":"YulIdentifier","src":"24754:57:53"},"nativeSrc":"24754:70:53","nodeType":"YulFunctionCall","src":"24754:70:53"},"variableNames":[{"name":"pos","nativeSrc":"24747:3:53","nodeType":"YulIdentifier","src":"24747:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24872:5:53","nodeType":"YulIdentifier","src":"24872:5:53"},{"kind":"number","nativeSrc":"24879:4:53","nodeType":"YulLiteral","src":"24879:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24868:3:53","nodeType":"YulIdentifier","src":"24868:3:53"},"nativeSrc":"24868:16:53","nodeType":"YulFunctionCall","src":"24868:16:53"},{"name":"pos","nativeSrc":"24886:3:53","nodeType":"YulIdentifier","src":"24886:3:53"},{"name":"length","nativeSrc":"24891:6:53","nodeType":"YulIdentifier","src":"24891:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"24833:34:53","nodeType":"YulIdentifier","src":"24833:34:53"},"nativeSrc":"24833:65:53","nodeType":"YulFunctionCall","src":"24833:65:53"},"nativeSrc":"24833:65:53","nodeType":"YulExpressionStatement","src":"24833:65:53"},{"nativeSrc":"24907:46:53","nodeType":"YulAssignment","src":"24907:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"24918:3:53","nodeType":"YulIdentifier","src":"24918:3:53"},{"arguments":[{"name":"length","nativeSrc":"24945:6:53","nodeType":"YulIdentifier","src":"24945:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"24923:21:53","nodeType":"YulIdentifier","src":"24923:21:53"},"nativeSrc":"24923:29:53","nodeType":"YulFunctionCall","src":"24923:29:53"}],"functionName":{"name":"add","nativeSrc":"24914:3:53","nodeType":"YulIdentifier","src":"24914:3:53"},"nativeSrc":"24914:39:53","nodeType":"YulFunctionCall","src":"24914:39:53"},"variableNames":[{"name":"end","nativeSrc":"24907:3:53","nodeType":"YulIdentifier","src":"24907:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"24586:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24657:5:53","nodeType":"YulTypedName","src":"24657:5:53","type":""},{"name":"pos","nativeSrc":"24664:3:53","nodeType":"YulTypedName","src":"24664:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24672:3:53","nodeType":"YulTypedName","src":"24672:3:53","type":""}],"src":"24586:373:53"},{"body":{"nativeSrc":"25193:523:53","nodeType":"YulBlock","src":"25193:523:53","statements":[{"nativeSrc":"25203:27:53","nodeType":"YulAssignment","src":"25203:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"25215:9:53","nodeType":"YulIdentifier","src":"25215:9:53"},{"kind":"number","nativeSrc":"25226:3:53","nodeType":"YulLiteral","src":"25226:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"25211:3:53","nodeType":"YulIdentifier","src":"25211:3:53"},"nativeSrc":"25211:19:53","nodeType":"YulFunctionCall","src":"25211:19:53"},"variableNames":[{"name":"tail","nativeSrc":"25203:4:53","nodeType":"YulIdentifier","src":"25203:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25284:6:53","nodeType":"YulIdentifier","src":"25284:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25297:9:53","nodeType":"YulIdentifier","src":"25297:9:53"},{"kind":"number","nativeSrc":"25308:1:53","nodeType":"YulLiteral","src":"25308:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25293:3:53","nodeType":"YulIdentifier","src":"25293:3:53"},"nativeSrc":"25293:17:53","nodeType":"YulFunctionCall","src":"25293:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25240:43:53","nodeType":"YulIdentifier","src":"25240:43:53"},"nativeSrc":"25240:71:53","nodeType":"YulFunctionCall","src":"25240:71:53"},"nativeSrc":"25240:71:53","nodeType":"YulExpressionStatement","src":"25240:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"25365:6:53","nodeType":"YulIdentifier","src":"25365:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25378:9:53","nodeType":"YulIdentifier","src":"25378:9:53"},{"kind":"number","nativeSrc":"25389:2:53","nodeType":"YulLiteral","src":"25389:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25374:3:53","nodeType":"YulIdentifier","src":"25374:3:53"},"nativeSrc":"25374:18:53","nodeType":"YulFunctionCall","src":"25374:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25321:43:53","nodeType":"YulIdentifier","src":"25321:43:53"},"nativeSrc":"25321:72:53","nodeType":"YulFunctionCall","src":"25321:72:53"},"nativeSrc":"25321:72:53","nodeType":"YulExpressionStatement","src":"25321:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"25447:6:53","nodeType":"YulIdentifier","src":"25447:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25460:9:53","nodeType":"YulIdentifier","src":"25460:9:53"},{"kind":"number","nativeSrc":"25471:2:53","nodeType":"YulLiteral","src":"25471:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25456:3:53","nodeType":"YulIdentifier","src":"25456:3:53"},"nativeSrc":"25456:18:53","nodeType":"YulFunctionCall","src":"25456:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"25403:43:53","nodeType":"YulIdentifier","src":"25403:43:53"},"nativeSrc":"25403:72:53","nodeType":"YulFunctionCall","src":"25403:72:53"},"nativeSrc":"25403:72:53","nodeType":"YulExpressionStatement","src":"25403:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"25529:6:53","nodeType":"YulIdentifier","src":"25529:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"25542:9:53","nodeType":"YulIdentifier","src":"25542:9:53"},{"kind":"number","nativeSrc":"25553:2:53","nodeType":"YulLiteral","src":"25553:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25538:3:53","nodeType":"YulIdentifier","src":"25538:3:53"},"nativeSrc":"25538:18:53","nodeType":"YulFunctionCall","src":"25538:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"25485:43:53","nodeType":"YulIdentifier","src":"25485:43:53"},"nativeSrc":"25485:72:53","nodeType":"YulFunctionCall","src":"25485:72:53"},"nativeSrc":"25485:72:53","nodeType":"YulExpressionStatement","src":"25485:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25578:9:53","nodeType":"YulIdentifier","src":"25578:9:53"},{"kind":"number","nativeSrc":"25589:3:53","nodeType":"YulLiteral","src":"25589:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25574:3:53","nodeType":"YulIdentifier","src":"25574:3:53"},"nativeSrc":"25574:19:53","nodeType":"YulFunctionCall","src":"25574:19:53"},{"arguments":[{"name":"tail","nativeSrc":"25599:4:53","nodeType":"YulIdentifier","src":"25599:4:53"},{"name":"headStart","nativeSrc":"25605:9:53","nodeType":"YulIdentifier","src":"25605:9:53"}],"functionName":{"name":"sub","nativeSrc":"25595:3:53","nodeType":"YulIdentifier","src":"25595:3:53"},"nativeSrc":"25595:20:53","nodeType":"YulFunctionCall","src":"25595:20:53"}],"functionName":{"name":"mstore","nativeSrc":"25567:6:53","nodeType":"YulIdentifier","src":"25567:6:53"},"nativeSrc":"25567:49:53","nodeType":"YulFunctionCall","src":"25567:49:53"},"nativeSrc":"25567:49:53","nodeType":"YulExpressionStatement","src":"25567:49:53"},{"nativeSrc":"25625:84:53","nodeType":"YulAssignment","src":"25625:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"25695:6:53","nodeType":"YulIdentifier","src":"25695:6:53"},{"name":"tail","nativeSrc":"25704:4:53","nodeType":"YulIdentifier","src":"25704:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"25633:61:53","nodeType":"YulIdentifier","src":"25633:61:53"},"nativeSrc":"25633:76:53","nodeType":"YulFunctionCall","src":"25633:76:53"},"variableNames":[{"name":"tail","nativeSrc":"25625:4:53","nodeType":"YulIdentifier","src":"25625:4:53"}]}]},"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":"24965:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25133:9:53","nodeType":"YulTypedName","src":"25133:9:53","type":""},{"name":"value4","nativeSrc":"25145:6:53","nodeType":"YulTypedName","src":"25145:6:53","type":""},{"name":"value3","nativeSrc":"25153:6:53","nodeType":"YulTypedName","src":"25153:6:53","type":""},{"name":"value2","nativeSrc":"25161:6:53","nodeType":"YulTypedName","src":"25161:6:53","type":""},{"name":"value1","nativeSrc":"25169:6:53","nodeType":"YulTypedName","src":"25169:6:53","type":""},{"name":"value0","nativeSrc":"25177:6:53","nodeType":"YulTypedName","src":"25177:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25188:4:53","nodeType":"YulTypedName","src":"25188:4:53","type":""}],"src":"24965:751:53"},{"body":{"nativeSrc":"25799:274:53","nodeType":"YulBlock","src":"25799:274:53","statements":[{"body":{"nativeSrc":"25845:83:53","nodeType":"YulBlock","src":"25845:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"25847:77:53","nodeType":"YulIdentifier","src":"25847:77:53"},"nativeSrc":"25847:79:53","nodeType":"YulFunctionCall","src":"25847:79:53"},"nativeSrc":"25847:79:53","nodeType":"YulExpressionStatement","src":"25847:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25820:7:53","nodeType":"YulIdentifier","src":"25820:7:53"},{"name":"headStart","nativeSrc":"25829:9:53","nodeType":"YulIdentifier","src":"25829:9:53"}],"functionName":{"name":"sub","nativeSrc":"25816:3:53","nodeType":"YulIdentifier","src":"25816:3:53"},"nativeSrc":"25816:23:53","nodeType":"YulFunctionCall","src":"25816:23:53"},{"kind":"number","nativeSrc":"25841:2:53","nodeType":"YulLiteral","src":"25841:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25812:3:53","nodeType":"YulIdentifier","src":"25812:3:53"},"nativeSrc":"25812:32:53","nodeType":"YulFunctionCall","src":"25812:32:53"},"nativeSrc":"25809:119:53","nodeType":"YulIf","src":"25809:119:53"},{"nativeSrc":"25938:128:53","nodeType":"YulBlock","src":"25938:128:53","statements":[{"nativeSrc":"25953:15:53","nodeType":"YulVariableDeclaration","src":"25953:15:53","value":{"kind":"number","nativeSrc":"25967:1:53","nodeType":"YulLiteral","src":"25967:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"25957:6:53","nodeType":"YulTypedName","src":"25957:6:53","type":""}]},{"nativeSrc":"25982:74:53","nodeType":"YulAssignment","src":"25982:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26028:9:53","nodeType":"YulIdentifier","src":"26028:9:53"},{"name":"offset","nativeSrc":"26039:6:53","nodeType":"YulIdentifier","src":"26039:6:53"}],"functionName":{"name":"add","nativeSrc":"26024:3:53","nodeType":"YulIdentifier","src":"26024:3:53"},"nativeSrc":"26024:22:53","nodeType":"YulFunctionCall","src":"26024:22:53"},{"name":"dataEnd","nativeSrc":"26048:7:53","nodeType":"YulIdentifier","src":"26048:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"25992:31:53","nodeType":"YulIdentifier","src":"25992:31:53"},"nativeSrc":"25992:64:53","nodeType":"YulFunctionCall","src":"25992:64:53"},"variableNames":[{"name":"value0","nativeSrc":"25982:6:53","nodeType":"YulIdentifier","src":"25982:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"25722:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25769:9:53","nodeType":"YulTypedName","src":"25769:9:53","type":""},{"name":"dataEnd","nativeSrc":"25780:7:53","nodeType":"YulTypedName","src":"25780:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25792:6:53","nodeType":"YulTypedName","src":"25792:6:53","type":""}],"src":"25722:351:53"},{"body":{"nativeSrc":"26168:28:53","nodeType":"YulBlock","src":"26168:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26185:1:53","nodeType":"YulLiteral","src":"26185:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26188:1:53","nodeType":"YulLiteral","src":"26188:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26178:6:53","nodeType":"YulIdentifier","src":"26178:6:53"},"nativeSrc":"26178:12:53","nodeType":"YulFunctionCall","src":"26178:12:53"},"nativeSrc":"26178:12:53","nodeType":"YulExpressionStatement","src":"26178:12:53"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"26079:117:53","nodeType":"YulFunctionDefinition","src":"26079:117:53"},{"body":{"nativeSrc":"26291:28:53","nodeType":"YulBlock","src":"26291:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26308:1:53","nodeType":"YulLiteral","src":"26308:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26311:1:53","nodeType":"YulLiteral","src":"26311:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26301:6:53","nodeType":"YulIdentifier","src":"26301:6:53"},"nativeSrc":"26301:12:53","nodeType":"YulFunctionCall","src":"26301:12:53"},"nativeSrc":"26301:12:53","nodeType":"YulExpressionStatement","src":"26301:12:53"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"26202:117:53","nodeType":"YulFunctionDefinition","src":"26202:117:53"},{"body":{"nativeSrc":"26414:28:53","nodeType":"YulBlock","src":"26414:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26431:1:53","nodeType":"YulLiteral","src":"26431:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26434:1:53","nodeType":"YulLiteral","src":"26434:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26424:6:53","nodeType":"YulIdentifier","src":"26424:6:53"},"nativeSrc":"26424:12:53","nodeType":"YulFunctionCall","src":"26424:12:53"},"nativeSrc":"26424:12:53","nodeType":"YulExpressionStatement","src":"26424:12:53"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"26325:117:53","nodeType":"YulFunctionDefinition","src":"26325:117:53"},{"body":{"nativeSrc":"26538:634:53","nodeType":"YulBlock","src":"26538:634:53","statements":[{"nativeSrc":"26548:51:53","nodeType":"YulVariableDeclaration","src":"26548:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"26587:11:53","nodeType":"YulIdentifier","src":"26587:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"26574:12:53","nodeType":"YulIdentifier","src":"26574:12:53"},"nativeSrc":"26574:25:53","nodeType":"YulFunctionCall","src":"26574:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"26552:18:53","nodeType":"YulTypedName","src":"26552:18:53","type":""}]},{"body":{"nativeSrc":"26693:83:53","nodeType":"YulBlock","src":"26693:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"26695:77:53","nodeType":"YulIdentifier","src":"26695:77:53"},"nativeSrc":"26695:79:53","nodeType":"YulFunctionCall","src":"26695:79:53"},"nativeSrc":"26695:79:53","nodeType":"YulExpressionStatement","src":"26695:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"26622:18:53","nodeType":"YulIdentifier","src":"26622:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"26650:12:53","nodeType":"YulIdentifier","src":"26650:12:53"},"nativeSrc":"26650:14:53","nodeType":"YulFunctionCall","src":"26650:14:53"},{"name":"base_ref","nativeSrc":"26666:8:53","nodeType":"YulIdentifier","src":"26666:8:53"}],"functionName":{"name":"sub","nativeSrc":"26646:3:53","nodeType":"YulIdentifier","src":"26646:3:53"},"nativeSrc":"26646:29:53","nodeType":"YulFunctionCall","src":"26646:29:53"},{"arguments":[{"kind":"number","nativeSrc":"26681:4:53","nodeType":"YulLiteral","src":"26681:4:53","type":"","value":"0x20"},{"kind":"number","nativeSrc":"26687:1:53","nodeType":"YulLiteral","src":"26687:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26677:3:53","nodeType":"YulIdentifier","src":"26677:3:53"},"nativeSrc":"26677:12:53","nodeType":"YulFunctionCall","src":"26677:12:53"}],"functionName":{"name":"sub","nativeSrc":"26642:3:53","nodeType":"YulIdentifier","src":"26642:3:53"},"nativeSrc":"26642:48:53","nodeType":"YulFunctionCall","src":"26642:48:53"}],"functionName":{"name":"slt","nativeSrc":"26618:3:53","nodeType":"YulIdentifier","src":"26618:3:53"},"nativeSrc":"26618:73:53","nodeType":"YulFunctionCall","src":"26618:73:53"}],"functionName":{"name":"iszero","nativeSrc":"26611:6:53","nodeType":"YulIdentifier","src":"26611:6:53"},"nativeSrc":"26611:81:53","nodeType":"YulFunctionCall","src":"26611:81:53"},"nativeSrc":"26608:168:53","nodeType":"YulIf","src":"26608:168:53"},{"nativeSrc":"26785:41:53","nodeType":"YulAssignment","src":"26785:41:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"26797:8:53","nodeType":"YulIdentifier","src":"26797:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"26807:18:53","nodeType":"YulIdentifier","src":"26807:18:53"}],"functionName":{"name":"add","nativeSrc":"26793:3:53","nodeType":"YulIdentifier","src":"26793:3:53"},"nativeSrc":"26793:33:53","nodeType":"YulFunctionCall","src":"26793:33:53"},"variableNames":[{"name":"addr","nativeSrc":"26785:4:53","nodeType":"YulIdentifier","src":"26785:4:53"}]},{"nativeSrc":"26836:28:53","nodeType":"YulAssignment","src":"26836:28:53","value":{"arguments":[{"name":"addr","nativeSrc":"26859:4:53","nodeType":"YulIdentifier","src":"26859:4:53"}],"functionName":{"name":"calldataload","nativeSrc":"26846:12:53","nodeType":"YulIdentifier","src":"26846:12:53"},"nativeSrc":"26846:18:53","nodeType":"YulFunctionCall","src":"26846:18:53"},"variableNames":[{"name":"length","nativeSrc":"26836:6:53","nodeType":"YulIdentifier","src":"26836:6:53"}]},{"body":{"nativeSrc":"26907:83:53","nodeType":"YulBlock","src":"26907:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"26909:77:53","nodeType":"YulIdentifier","src":"26909:77:53"},"nativeSrc":"26909:79:53","nodeType":"YulFunctionCall","src":"26909:79:53"},"nativeSrc":"26909:79:53","nodeType":"YulExpressionStatement","src":"26909:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"26879:6:53","nodeType":"YulIdentifier","src":"26879:6:53"},{"kind":"number","nativeSrc":"26887:18:53","nodeType":"YulLiteral","src":"26887:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26876:2:53","nodeType":"YulIdentifier","src":"26876:2:53"},"nativeSrc":"26876:30:53","nodeType":"YulFunctionCall","src":"26876:30:53"},"nativeSrc":"26873:117:53","nodeType":"YulIf","src":"26873:117:53"},{"nativeSrc":"26999:21:53","nodeType":"YulAssignment","src":"26999:21:53","value":{"arguments":[{"name":"addr","nativeSrc":"27011:4:53","nodeType":"YulIdentifier","src":"27011:4:53"},{"kind":"number","nativeSrc":"27017:2:53","nodeType":"YulLiteral","src":"27017:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27007:3:53","nodeType":"YulIdentifier","src":"27007:3:53"},"nativeSrc":"27007:13:53","nodeType":"YulFunctionCall","src":"27007:13:53"},"variableNames":[{"name":"addr","nativeSrc":"26999:4:53","nodeType":"YulIdentifier","src":"26999:4:53"}]},{"body":{"nativeSrc":"27082:83:53","nodeType":"YulBlock","src":"27082:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"27084:77:53","nodeType":"YulIdentifier","src":"27084:77:53"},"nativeSrc":"27084:79:53","nodeType":"YulFunctionCall","src":"27084:79:53"},"nativeSrc":"27084:79:53","nodeType":"YulExpressionStatement","src":"27084:79:53"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"27036:4:53","nodeType":"YulIdentifier","src":"27036:4:53"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"27046:12:53","nodeType":"YulIdentifier","src":"27046:12:53"},"nativeSrc":"27046:14:53","nodeType":"YulFunctionCall","src":"27046:14:53"},{"arguments":[{"name":"length","nativeSrc":"27066:6:53","nodeType":"YulIdentifier","src":"27066:6:53"},{"kind":"number","nativeSrc":"27074:4:53","nodeType":"YulLiteral","src":"27074:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"27062:3:53","nodeType":"YulIdentifier","src":"27062:3:53"},"nativeSrc":"27062:17:53","nodeType":"YulFunctionCall","src":"27062:17:53"}],"functionName":{"name":"sub","nativeSrc":"27042:3:53","nodeType":"YulIdentifier","src":"27042:3:53"},"nativeSrc":"27042:38:53","nodeType":"YulFunctionCall","src":"27042:38:53"}],"functionName":{"name":"sgt","nativeSrc":"27032:3:53","nodeType":"YulIdentifier","src":"27032:3:53"},"nativeSrc":"27032:49:53","nodeType":"YulFunctionCall","src":"27032:49:53"},"nativeSrc":"27029:136:53","nodeType":"YulIf","src":"27029:136:53"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"26448:724:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"26499:8:53","nodeType":"YulTypedName","src":"26499:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"26509:11:53","nodeType":"YulTypedName","src":"26509:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"26525:4:53","nodeType":"YulTypedName","src":"26525:4:53","type":""},{"name":"length","nativeSrc":"26531:6:53","nodeType":"YulTypedName","src":"26531:6:53","type":""}],"src":"26448:724:53"},{"body":{"nativeSrc":"27206:152:53","nodeType":"YulBlock","src":"27206:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27223:1:53","nodeType":"YulLiteral","src":"27223:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27226:77:53","nodeType":"YulLiteral","src":"27226:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"27216:6:53","nodeType":"YulIdentifier","src":"27216:6:53"},"nativeSrc":"27216:88:53","nodeType":"YulFunctionCall","src":"27216:88:53"},"nativeSrc":"27216:88:53","nodeType":"YulExpressionStatement","src":"27216:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27320:1:53","nodeType":"YulLiteral","src":"27320:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"27323:4:53","nodeType":"YulLiteral","src":"27323:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"27313:6:53","nodeType":"YulIdentifier","src":"27313:6:53"},"nativeSrc":"27313:15:53","nodeType":"YulFunctionCall","src":"27313:15:53"},"nativeSrc":"27313:15:53","nodeType":"YulExpressionStatement","src":"27313:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27344:1:53","nodeType":"YulLiteral","src":"27344:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27347:4:53","nodeType":"YulLiteral","src":"27347:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"27337:6:53","nodeType":"YulIdentifier","src":"27337:6:53"},"nativeSrc":"27337:15:53","nodeType":"YulFunctionCall","src":"27337:15:53"},"nativeSrc":"27337:15:53","nodeType":"YulExpressionStatement","src":"27337:15:53"}]},"name":"panic_error_0x11","nativeSrc":"27178:180:53","nodeType":"YulFunctionDefinition","src":"27178:180:53"},{"body":{"nativeSrc":"27408:147:53","nodeType":"YulBlock","src":"27408:147:53","statements":[{"nativeSrc":"27418:25:53","nodeType":"YulAssignment","src":"27418:25:53","value":{"arguments":[{"name":"x","nativeSrc":"27441:1:53","nodeType":"YulIdentifier","src":"27441:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27423:17:53","nodeType":"YulIdentifier","src":"27423:17:53"},"nativeSrc":"27423:20:53","nodeType":"YulFunctionCall","src":"27423:20:53"},"variableNames":[{"name":"x","nativeSrc":"27418:1:53","nodeType":"YulIdentifier","src":"27418:1:53"}]},{"nativeSrc":"27452:25:53","nodeType":"YulAssignment","src":"27452:25:53","value":{"arguments":[{"name":"y","nativeSrc":"27475:1:53","nodeType":"YulIdentifier","src":"27475:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27457:17:53","nodeType":"YulIdentifier","src":"27457:17:53"},"nativeSrc":"27457:20:53","nodeType":"YulFunctionCall","src":"27457:20:53"},"variableNames":[{"name":"y","nativeSrc":"27452:1:53","nodeType":"YulIdentifier","src":"27452:1:53"}]},{"nativeSrc":"27486:16:53","nodeType":"YulAssignment","src":"27486:16:53","value":{"arguments":[{"name":"x","nativeSrc":"27497:1:53","nodeType":"YulIdentifier","src":"27497:1:53"},{"name":"y","nativeSrc":"27500:1:53","nodeType":"YulIdentifier","src":"27500:1:53"}],"functionName":{"name":"add","nativeSrc":"27493:3:53","nodeType":"YulIdentifier","src":"27493:3:53"},"nativeSrc":"27493:9:53","nodeType":"YulFunctionCall","src":"27493:9:53"},"variableNames":[{"name":"sum","nativeSrc":"27486:3:53","nodeType":"YulIdentifier","src":"27486:3:53"}]},{"body":{"nativeSrc":"27526:22:53","nodeType":"YulBlock","src":"27526:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27528:16:53","nodeType":"YulIdentifier","src":"27528:16:53"},"nativeSrc":"27528:18:53","nodeType":"YulFunctionCall","src":"27528:18:53"},"nativeSrc":"27528:18:53","nodeType":"YulExpressionStatement","src":"27528:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"27518:1:53","nodeType":"YulIdentifier","src":"27518:1:53"},{"name":"sum","nativeSrc":"27521:3:53","nodeType":"YulIdentifier","src":"27521:3:53"}],"functionName":{"name":"gt","nativeSrc":"27515:2:53","nodeType":"YulIdentifier","src":"27515:2:53"},"nativeSrc":"27515:10:53","nodeType":"YulFunctionCall","src":"27515:10:53"},"nativeSrc":"27512:36:53","nodeType":"YulIf","src":"27512:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"27364:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27395:1:53","nodeType":"YulTypedName","src":"27395:1:53","type":""},{"name":"y","nativeSrc":"27398:1:53","nodeType":"YulTypedName","src":"27398:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"27404:3:53","nodeType":"YulTypedName","src":"27404:3:53","type":""}],"src":"27364:191:53"},{"body":{"nativeSrc":"27715:288:53","nodeType":"YulBlock","src":"27715:288:53","statements":[{"nativeSrc":"27725:26:53","nodeType":"YulAssignment","src":"27725:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"27737:9:53","nodeType":"YulIdentifier","src":"27737:9:53"},{"kind":"number","nativeSrc":"27748:2:53","nodeType":"YulLiteral","src":"27748:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27733:3:53","nodeType":"YulIdentifier","src":"27733:3:53"},"nativeSrc":"27733:18:53","nodeType":"YulFunctionCall","src":"27733:18:53"},"variableNames":[{"name":"tail","nativeSrc":"27725:4:53","nodeType":"YulIdentifier","src":"27725:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"27805:6:53","nodeType":"YulIdentifier","src":"27805:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27818:9:53","nodeType":"YulIdentifier","src":"27818:9:53"},{"kind":"number","nativeSrc":"27829:1:53","nodeType":"YulLiteral","src":"27829:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27814:3:53","nodeType":"YulIdentifier","src":"27814:3:53"},"nativeSrc":"27814:17:53","nodeType":"YulFunctionCall","src":"27814:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"27761:43:53","nodeType":"YulIdentifier","src":"27761:43:53"},"nativeSrc":"27761:71:53","nodeType":"YulFunctionCall","src":"27761:71:53"},"nativeSrc":"27761:71:53","nodeType":"YulExpressionStatement","src":"27761:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"27886:6:53","nodeType":"YulIdentifier","src":"27886:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27899:9:53","nodeType":"YulIdentifier","src":"27899:9:53"},{"kind":"number","nativeSrc":"27910:2:53","nodeType":"YulLiteral","src":"27910:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27895:3:53","nodeType":"YulIdentifier","src":"27895:3:53"},"nativeSrc":"27895:18:53","nodeType":"YulFunctionCall","src":"27895:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"27842:43:53","nodeType":"YulIdentifier","src":"27842:43:53"},"nativeSrc":"27842:72:53","nodeType":"YulFunctionCall","src":"27842:72:53"},"nativeSrc":"27842:72:53","nodeType":"YulExpressionStatement","src":"27842:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"27968:6:53","nodeType":"YulIdentifier","src":"27968:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27981:9:53","nodeType":"YulIdentifier","src":"27981:9:53"},{"kind":"number","nativeSrc":"27992:2:53","nodeType":"YulLiteral","src":"27992:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27977:3:53","nodeType":"YulIdentifier","src":"27977:3:53"},"nativeSrc":"27977:18:53","nodeType":"YulFunctionCall","src":"27977:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"27924:43:53","nodeType":"YulIdentifier","src":"27924:43:53"},"nativeSrc":"27924:72:53","nodeType":"YulFunctionCall","src":"27924:72:53"},"nativeSrc":"27924:72:53","nodeType":"YulExpressionStatement","src":"27924:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"27561:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27671:9:53","nodeType":"YulTypedName","src":"27671:9:53","type":""},{"name":"value2","nativeSrc":"27683:6:53","nodeType":"YulTypedName","src":"27683:6:53","type":""},{"name":"value1","nativeSrc":"27691:6:53","nodeType":"YulTypedName","src":"27691:6:53","type":""},{"name":"value0","nativeSrc":"27699:6:53","nodeType":"YulTypedName","src":"27699:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27710:4:53","nodeType":"YulTypedName","src":"27710:4:53","type":""}],"src":"27561:442:53"},{"body":{"nativeSrc":"28163:288:53","nodeType":"YulBlock","src":"28163:288:53","statements":[{"nativeSrc":"28173:26:53","nodeType":"YulAssignment","src":"28173:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"28185:9:53","nodeType":"YulIdentifier","src":"28185:9:53"},{"kind":"number","nativeSrc":"28196:2:53","nodeType":"YulLiteral","src":"28196:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28181:3:53","nodeType":"YulIdentifier","src":"28181:3:53"},"nativeSrc":"28181:18:53","nodeType":"YulFunctionCall","src":"28181:18:53"},"variableNames":[{"name":"tail","nativeSrc":"28173:4:53","nodeType":"YulIdentifier","src":"28173:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28253:6:53","nodeType":"YulIdentifier","src":"28253:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28266:9:53","nodeType":"YulIdentifier","src":"28266:9:53"},{"kind":"number","nativeSrc":"28277:1:53","nodeType":"YulLiteral","src":"28277:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28262:3:53","nodeType":"YulIdentifier","src":"28262:3:53"},"nativeSrc":"28262:17:53","nodeType":"YulFunctionCall","src":"28262:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28209:43:53","nodeType":"YulIdentifier","src":"28209:43:53"},"nativeSrc":"28209:71:53","nodeType":"YulFunctionCall","src":"28209:71:53"},"nativeSrc":"28209:71:53","nodeType":"YulExpressionStatement","src":"28209:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"28334:6:53","nodeType":"YulIdentifier","src":"28334:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28347:9:53","nodeType":"YulIdentifier","src":"28347:9:53"},{"kind":"number","nativeSrc":"28358:2:53","nodeType":"YulLiteral","src":"28358:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28343:3:53","nodeType":"YulIdentifier","src":"28343:3:53"},"nativeSrc":"28343:18:53","nodeType":"YulFunctionCall","src":"28343:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28290:43:53","nodeType":"YulIdentifier","src":"28290:43:53"},"nativeSrc":"28290:72:53","nodeType":"YulFunctionCall","src":"28290:72:53"},"nativeSrc":"28290:72:53","nodeType":"YulExpressionStatement","src":"28290:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"28416:6:53","nodeType":"YulIdentifier","src":"28416:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"28429:9:53","nodeType":"YulIdentifier","src":"28429:9:53"},{"kind":"number","nativeSrc":"28440:2:53","nodeType":"YulLiteral","src":"28440:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28425:3:53","nodeType":"YulIdentifier","src":"28425:3:53"},"nativeSrc":"28425:18:53","nodeType":"YulFunctionCall","src":"28425:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"28372:43:53","nodeType":"YulIdentifier","src":"28372:43:53"},"nativeSrc":"28372:72:53","nodeType":"YulFunctionCall","src":"28372:72:53"},"nativeSrc":"28372:72:53","nodeType":"YulExpressionStatement","src":"28372:72:53"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"28009:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28119:9:53","nodeType":"YulTypedName","src":"28119:9:53","type":""},{"name":"value2","nativeSrc":"28131:6:53","nodeType":"YulTypedName","src":"28131:6:53","type":""},{"name":"value1","nativeSrc":"28139:6:53","nodeType":"YulTypedName","src":"28139:6:53","type":""},{"name":"value0","nativeSrc":"28147:6:53","nodeType":"YulTypedName","src":"28147:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28158:4:53","nodeType":"YulTypedName","src":"28158:4:53","type":""}],"src":"28009:442:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\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_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\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, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value6, value7 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\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_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\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, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function 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 // struct SimpleBudget.InitPayload\n function abi_decode_t_struct$_InitPayload_$13702_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // authorized\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$13702_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$13702_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_AssetType_$13471(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_AssetType_$13471(value)\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 // struct Budget.Transfer\n function abi_decode_t_struct$_Transfer_$13482_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // assetType\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_enum$_AssetType_$13471(add(headStart, offset), end))\n\n }\n\n {\n // asset\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Transfer_$13482_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\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 // struct Budget.FungiblePayload\n function abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x20) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x20)\n\n {\n // amount\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_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_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct Budget.ERC1155Payload\n function abi_decode_t_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // tokenId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // amount\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ERC1155Payload_$13494_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_struct$_ERC1155Payload_$13494_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_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_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 revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\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_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061014e575f3560e01c80638da5cb5b116100b5578063f2fde38b1161006e578063f2fde38b14610493578063f8724aba146104af578063f9a802c3146104eb578063fa4ca9b114610527578063fe9fbb8014610563578063fee81cf41461059f57610155565b80638da5cb5b1461035d578063bc197c8114610387578063d2514e84146103c3578063f04e283e146103ff578063f1c30ec01461041b578063f23a6e611461045757610155565b806354d1f13d1161010757806354d1f13d14610265578063578bcf351461026f5780635aef467a146102ab57806361400c99146102db578063715018a614610317578063774c33ab1461032157610155565b806301ffc9a71461015757806310098ad51461019357806325692962146101cf5780634359d28a146101d9578063439fab9114610201578063451cc1911461022957610155565b3661015557005b005b348015610162575f80fd5b5061017d60048036038101906101789190611eab565b6105db565b60405161018a9190611ef0565b60405180910390f35b34801561019e575f80fd5b506101b960048036038101906101b49190611f63565b610654565b6040516101c69190611fa6565b60405180910390f35b6101d76106bf565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa9190612075565b610710565b005b34801561020c575f80fd5b5061022760048036038101906102229190612148565b61081a565b005b348015610234575f80fd5b5061024f600480360381019061024a9190612148565b61093f565b60405161025c9190611fa6565b60405180910390f35b61026d610946565b005b34801561027a575f80fd5b5061029560048036038101906102909190611f63565b61097f565b6040516102a29190611fa6565b60405180910390f35b6102c560048036038101906102c09190612148565b6109c4565b6040516102d29190611ef0565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc91906121e8565b610d34565b60405161030e9190611ef0565b60405180910390f35b61031f610d98565b005b34801561032c575f80fd5b506103476004803603810190610342919061225d565b610dab565b6040516103549190611fa6565b60405180910390f35b348015610368575f80fd5b50610371610e01565b60405161037e91906122aa565b60405180910390f35b348015610392575f80fd5b506103ad60048036038101906103a89190612318565b610e29565b6040516103ba91906123fe565b60405180910390f35b3480156103ce575f80fd5b506103e960048036038101906103e49190611f63565b610e40565b6040516103f69190611fa6565b60405180910390f35b61041960048036038101906104149190611f63565b610e98565b005b348015610426575f80fd5b50610441600480360381019061043c9190612148565b610ed6565b60405161044e9190611ef0565b60405180910390f35b348015610462575f80fd5b5061047d60048036038101906104789190612417565b6110bc565b60405161048a91906123fe565b60405180910390f35b6104ad60048036038101906104a89190611f63565b6110d1565b005b3480156104ba575f80fd5b506104d560048036038101906104d0919061225d565b6110fa565b6040516104e29190611fa6565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c919061225d565b61117c565b60405161051e9190611fa6565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190612148565b611255565b60405161055a9190611ef0565b60405180910390f35b34801561056e575f80fd5b5061058960048036038101906105849190611f63565b611501565b6040516105969190611ef0565b60405180910390f35b3480156105aa575f80fd5b506105c560048036038101906105c09190611f63565b611590565b6040516105d29190611fa6565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061064d575061064c826115a9565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146106b6576106b1308373ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b6106b8565b475b9050919050565b5f6106c8611655565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61071861165f565b818190508484905014610757576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561081357828282818110610777576107766124ad565b5b905060200201602081019061078c9190612504565b60025f8787858181106107a2576107a16124ad565b5b90506020020160208101906107b79190611f63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610759565b5050505050565b5f610823611696565b905080546003825580156108555760018160011c14303b1061084c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061086691906126e8565b9050610874815f01516116bf565b5f5b81602001515181101561090357600160025f8460200151848151811061089f5761089e6124ad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610876565b5050801561093a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109d59190612893565b90505f60028111156109ea576109e96128da565b5b815f01516002811115610a00576109ff6128da565b5b03610a76575f8160600151806020019051810190610a1e9190612954565b9050805f01513414610a70578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a6792919061297f565b60405180910390fd5b50610d28565b60016002811115610a8a57610a896128da565b5b815f01516002811115610aa057610a9f6128da565b5b03610b7b575f8160600151806020019051810190610abe9190612954565b9050610af8826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16611795909392919063ffffffff16565b805f0151610b2930846020015173ffffffffffffffffffffffffffffffffffffffff1661162290919063ffffffff16565b1015610b75578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b6c92919061297f565b60405180910390fd5b50610d27565b600280811115610b8e57610b8d6128da565b5b815f01516002811115610ba457610ba36128da565b5b03610d1d575f8160600151806020019051810190610bc29190612a9f565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b8152600401610c18959493929190612b38565b5f604051808303815f87803b158015610c2f575f80fd5b505af1158015610c41573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401610c8b92919061297f565b602060405180830381865afa158015610ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cca9190612b90565b1015610d1757816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610d0e92919061297f565b60405180910390fd5b50610d26565b5f915050610d2e565b5b5b60019150505b92915050565b5f805f90505b83839050811015610d8c57610d72848483818110610d5b57610d5a6124ad565b5b9050602002810190610d6d9190612bc7565b611255565b610d7f575f915050610d92565b8080600101915050610d3a565b50600190505b92915050565b610da061165f565b610da95f6117ef565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f63bc197c8160e01b905098975050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e8783610654565b610e919190612c56565b9050919050565b610ea061165f565b63389a75e1600c52805f526020600c208054421115610ec657636f5e88185f526004601cfd5b5f815550610ed3816117ef565b50565b5f610edf61165f565b5f8383810190610eef9190612893565b90505f6002811115610f0457610f036128da565b5b815f01516002811115610f1a57610f196128da565b5b1480610f4d575060016002811115610f3557610f346128da565b5b815f01516002811115610f4b57610f4a6128da565b5b145b15610fa6575f8160600151806020019051810190610f6b9190612954565b9050610fa0826020015183604001515f845f015114610f8d57835f0151610f9b565b610f9a8560200151610654565b5b6118b5565b506110b0565b600280811115610fb957610fb86128da565b5b815f01516002811115610fcf57610fce6128da565b5b036110a6575f8160600151806020019051810190610fed9190612a9f565b90506110a082602001518360400151835f01515f856020015114611015578460200151611096565b856020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b815260040161105692919061297f565b602060405180830381865afa158015611071573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110959190612b90565b5b8560400151611acd565b506110af565b5f9150506110b6565b5b60019150505b92915050565b5f63f23a6e6160e01b90509695505050505050565b6110d961165f565b8060601b6110ee57637448fbae5f526004601cfd5b6110f7816117ef565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b815260040161113592919061297f565b602060405180830381865afa158015611150573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111749190612b90565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161120492919061297f565b602060405180830381865afa15801561121f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112439190612b90565b61124d9190612c56565b905092915050565b5f61125f33611501565b611295576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906112a59190612893565b9050600160028111156112bb576112ba6128da565b5b815f015160028111156112d1576112d06128da565b5b148061130357505f60028111156112eb576112ea6128da565b5b815f01516002811115611301576113006128da565b5b145b156113a3575f81606001518060200190518101906113219190612954565b90505f6113318360200151610654565b905080825f0151111561138657826020015181835f01516040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161137d93929190612c89565b60405180910390fd5b61139c83602001518460400151845f01516118b5565b50506114f5565b6002808111156113b6576113b56128da565b5b815f015160028111156113cc576113cb6128da565b5b036114eb575f81606001518060200190518101906113ea9190612a9f565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b815260040161142e92919061297f565b602060405180830381865afa158015611449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146d9190612b90565b905080826020015111156114c45782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016114bb93929190612c89565b60405180910390fd5b6114e483602001518460400151845f015185602001518660400151611acd565b50506114f4565b5f9150506114fb565b5b60019150505b92915050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611589575061155a610e01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061161b575061161a82611cf9565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611694576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6116c7611d72565b1561173f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561170157630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611792565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f511417166117e057637939f4245f526004601cfd5b5f606052806040525050505050565b6117f7611d72565b1561185c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506118b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd2126854036118d35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611953578282826040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161194a93929190612cbe565b60405180910390fd5b61195c83610654565b8111156119ac578261196d84610654565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016119a393929190612c89565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119f79190612c56565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a4057611a3b8282611d76565b611a6c565b611a6b82828573ffffffffffffffffffffffffffffffffffffffff16611d939092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051611ab492919061297f565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403611aeb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b6b578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611b6293929190612cbe565b60405180910390fd5b611b7585846110fa565b821115611bc65784611b8786856110fa565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611bbd93929190612c89565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254611c219190612c56565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401611c69959493929190612b38565b5f604051808303815f87803b158015611c80575f80fd5b505af1158015611c92573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051611cde92919061297f565b60405180910390a23868929eee149b4bd21268555050505050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d6b5750611d6a82611ddc565b5b9050919050565b5f90565b5f385f3884865af1611d8f5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611dd3576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611e8a81611e56565b8114611e94575f80fd5b50565b5f81359050611ea581611e81565b92915050565b5f60208284031215611ec057611ebf611e4e565b5b5f611ecd84828501611e97565b91505092915050565b5f8115159050919050565b611eea81611ed6565b82525050565b5f602082019050611f035f830184611ee1565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f3282611f09565b9050919050565b611f4281611f28565b8114611f4c575f80fd5b50565b5f81359050611f5d81611f39565b92915050565b5f60208284031215611f7857611f77611e4e565b5b5f611f8584828501611f4f565b91505092915050565b5f819050919050565b611fa081611f8e565b82525050565b5f602082019050611fb95f830184611f97565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611fe057611fdf611fbf565b5b8235905067ffffffffffffffff811115611ffd57611ffc611fc3565b5b60208301915083602082028301111561201957612018611fc7565b5b9250929050565b5f8083601f84011261203557612034611fbf565b5b8235905067ffffffffffffffff81111561205257612051611fc3565b5b60208301915083602082028301111561206e5761206d611fc7565b5b9250929050565b5f805f806040858703121561208d5761208c611e4e565b5b5f85013567ffffffffffffffff8111156120aa576120a9611e52565b5b6120b687828801611fcb565b9450945050602085013567ffffffffffffffff8111156120d9576120d8611e52565b5b6120e587828801612020565b925092505092959194509250565b5f8083601f84011261210857612107611fbf565b5b8235905067ffffffffffffffff81111561212557612124611fc3565b5b60208301915083600182028301111561214157612140611fc7565b5b9250929050565b5f806020838503121561215e5761215d611e4e565b5b5f83013567ffffffffffffffff81111561217b5761217a611e52565b5b612187858286016120f3565b92509250509250929050565b5f8083601f8401126121a8576121a7611fbf565b5b8235905067ffffffffffffffff8111156121c5576121c4611fc3565b5b6020830191508360208202830111156121e1576121e0611fc7565b5b9250929050565b5f80602083850312156121fe576121fd611e4e565b5b5f83013567ffffffffffffffff81111561221b5761221a611e52565b5b61222785828601612193565b92509250509250929050565b61223c81611f8e565b8114612246575f80fd5b50565b5f8135905061225781612233565b92915050565b5f806040838503121561227357612272611e4e565b5b5f61228085828601611f4f565b925050602061229185828601612249565b9150509250929050565b6122a481611f28565b82525050565b5f6020820190506122bd5f83018461229b565b92915050565b5f8083601f8401126122d8576122d7611fbf565b5b8235905067ffffffffffffffff8111156122f5576122f4611fc3565b5b60208301915083602082028301111561231157612310611fc7565b5b9250929050565b5f805f805f805f8060a0898b03121561233457612333611e4e565b5b5f6123418b828c01611f4f565b98505060206123528b828c01611f4f565b975050604089013567ffffffffffffffff81111561237357612372611e52565b5b61237f8b828c016122c3565b9650965050606089013567ffffffffffffffff8111156123a2576123a1611e52565b5b6123ae8b828c016122c3565b9450945050608089013567ffffffffffffffff8111156123d1576123d0611e52565b5b6123dd8b828c016120f3565b92509250509295985092959890939650565b6123f881611e56565b82525050565b5f6020820190506124115f8301846123ef565b92915050565b5f805f805f8060a0878903121561243157612430611e4e565b5b5f61243e89828a01611f4f565b965050602061244f89828a01611f4f565b955050604061246089828a01612249565b945050606061247189828a01612249565b935050608087013567ffffffffffffffff81111561249257612491611e52565b5b61249e89828a016120f3565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6124e381611ed6565b81146124ed575f80fd5b50565b5f813590506124fe816124da565b92915050565b5f6020828403121561251957612518611e4e565b5b5f612526848285016124f0565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61257982612533565b810181811067ffffffffffffffff8211171561259857612597612543565b5b80604052505050565b5f6125aa611e45565b90506125b68282612570565b919050565b5f80fd5b5f67ffffffffffffffff8211156125d9576125d8612543565b5b602082029050602081019050919050565b5f6125fc6125f7846125bf565b6125a1565b9050808382526020820190506020840283018581111561261f5761261e611fc7565b5b835b8181101561264857806126348882611f4f565b845260208401935050602081019050612621565b5050509392505050565b5f82601f83011261266657612665611fbf565b5b81356126768482602086016125ea565b91505092915050565b5f604082840312156126945761269361252f565b5b61269e60406125a1565b90505f6126ad84828501611f4f565b5f83015250602082013567ffffffffffffffff8111156126d0576126cf6125bb565b5b6126dc84828501612652565b60208301525092915050565b5f602082840312156126fd576126fc611e4e565b5b5f82013567ffffffffffffffff81111561271a57612719611e52565b5b6127268482850161267f565b91505092915050565b6003811061273b575f80fd5b50565b5f8135905061274c8161272f565b92915050565b5f80fd5b5f67ffffffffffffffff8211156127705761276f612543565b5b61277982612533565b9050602081019050919050565b828183375f83830152505050565b5f6127a66127a184612756565b6125a1565b9050828152602081018484840111156127c2576127c1612752565b5b6127cd848285612786565b509392505050565b5f82601f8301126127e9576127e8611fbf565b5b81356127f9848260208601612794565b91505092915050565b5f608082840312156128175761281661252f565b5b61282160806125a1565b90505f6128308482850161273e565b5f83015250602061284384828501611f4f565b602083015250604061285784828501611f4f565b604083015250606082013567ffffffffffffffff81111561287b5761287a6125bb565b5b612887848285016127d5565b60608301525092915050565b5f602082840312156128a8576128a7611e4e565b5b5f82013567ffffffffffffffff8111156128c5576128c4611e52565b5b6128d184828501612802565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f8151905061291581612233565b92915050565b5f602082840312156129305761292f61252f565b5b61293a60206125a1565b90505f61294984828501612907565b5f8301525092915050565b5f6020828403121561296957612968611e4e565b5b5f6129768482850161291b565b91505092915050565b5f6040820190506129925f83018561229b565b61299f6020830184611f97565b9392505050565b8281835e5f83830152505050565b5f6129c66129c184612756565b6125a1565b9050828152602081018484840111156129e2576129e1612752565b5b6129ed8482856129a6565b509392505050565b5f82601f830112612a0957612a08611fbf565b5b8151612a198482602086016129b4565b91505092915050565b5f60608284031215612a3757612a3661252f565b5b612a4160606125a1565b90505f612a5084828501612907565b5f830152506020612a6384828501612907565b602083015250604082015167ffffffffffffffff811115612a8757612a866125bb565b5b612a93848285016129f5565b60408301525092915050565b5f60208284031215612ab457612ab3611e4e565b5b5f82015167ffffffffffffffff811115612ad157612ad0611e52565b5b612add84828501612a22565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612b0a82612ae6565b612b148185612af0565b9350612b248185602086016129a6565b612b2d81612533565b840191505092915050565b5f60a082019050612b4b5f83018861229b565b612b58602083018761229b565b612b656040830186611f97565b612b726060830185611f97565b8181036080830152612b848184612b00565b90509695505050505050565b5f60208284031215612ba557612ba4611e4e565b5b5f612bb284828501612907565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112612be357612be2612bbb565b5b80840192508235915067ffffffffffffffff821115612c0557612c04612bbf565b5b602083019250600182023603831315612c2157612c20612bc3565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c6082611f8e565b9150612c6b83611f8e565b9250828201905080821115612c8357612c82612c29565b5b92915050565b5f606082019050612c9c5f83018661229b565b612ca96020830185611f97565b612cb66040830184611f97565b949350505050565b5f606082019050612cd15f83018661229b565b612cde602083018561229b565b612ceb6040830184611f97565b94935050505056fea2646970667358221220f53b1ed2d8251930b4f97c8116e40d29f46a036a8c5f4fe3d9369cd70e1203db64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xF8724ABA EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0xF9A802C3 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x563 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x59F JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3C3 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x457 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x61400C99 EQ PUSH2 0x2DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0x774C33AB EQ PUSH2 0x321 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1CF JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x229 JUMPI PUSH2 0x155 JUMP JUMPDEST CALLDATASIZE PUSH2 0x155 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x6BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2075 JUMP JUMPDEST PUSH2 0x710 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x93F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25C SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26D PUSH2 0x946 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C0 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x9C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D2 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x301 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xD34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH2 0xD98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x347 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0xDAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xE01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x22AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x2318 JUMP JUMPDEST PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BA SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F6 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0xE98 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x441 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0xED6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x462 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x47D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x478 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x23FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A8 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x10FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x511 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50C SWAP2 SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0x117C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x54D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x548 SWAP2 SWAP1 PUSH2 0x2148 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55A SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x589 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x584 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C0 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH2 0x1590 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D2 SWAP2 SWAP1 PUSH2 0x1FA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x64D JUMPI POP PUSH2 0x64C DUP3 PUSH2 0x15A9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6B6 JUMPI PUSH2 0x6B1 ADDRESS DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C8 PUSH2 0x1655 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x718 PUSH2 0x165F JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x757 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x813 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x777 JUMPI PUSH2 0x776 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x78C SWAP2 SWAP1 PUSH2 0x2504 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x7A2 JUMPI PUSH2 0x7A1 PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7B7 SWAP2 SWAP1 PUSH2 0x1F63 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x759 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x823 PUSH2 0x1696 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x855 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x84C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x26E8 JUMP JUMPDEST SWAP1 POP PUSH2 0x874 DUP2 PUSH0 ADD MLOAD PUSH2 0x16BF JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x903 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x89F JUMPI PUSH2 0x89E PUSH2 0x24AD JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x876 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9D5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x9EA JUMPI PUSH2 0x9E9 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA00 JUMPI PUSH2 0x9FF PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA76 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA1E SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA70 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA67 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH2 0xA89 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA0 JUMPI PUSH2 0xA9F PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB7B JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xABE SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xAF8 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1795 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB29 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1622 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB75 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6C SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD27 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xB8E JUMPI PUSH2 0xB8D PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0xD1D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC2 SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A DUP4 PUSH1 0x40 ADD MLOAD ADDRESS DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC18 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC8B SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCA6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCA SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST LT ISZERO PUSH2 0xD17 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xD26 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xD2E JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xD8C JUMPI PUSH2 0xD72 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0x24AD JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD6D SWAP2 SWAP1 PUSH2 0x2BC7 JUMP JUMPDEST PUSH2 0x1255 JUMP JUMPDEST PUSH2 0xD7F JUMPI PUSH0 SWAP2 POP POP PUSH2 0xD92 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xD3A JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDA0 PUSH2 0x165F JUMP JUMPDEST PUSH2 0xDA9 PUSH0 PUSH2 0x17EF JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xE87 DUP4 PUSH2 0x654 JUMP JUMPDEST PUSH2 0xE91 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA0 PUSH2 0x165F JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xEC6 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xED3 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEDF PUSH2 0x165F JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEEF SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF04 JUMPI PUSH2 0xF03 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF1A JUMPI PUSH2 0xF19 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF4D JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF35 JUMPI PUSH2 0xF34 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF4B JUMPI PUSH2 0xF4A PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xFA6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH2 0xFA0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xF8D JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xF9B JUMP JUMPDEST PUSH2 0xF9A DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST JUMPDEST PUSH2 0x18B5 JUMP JUMPDEST POP PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xFB9 JUMPI PUSH2 0xFB8 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFCF JUMPI PUSH2 0xFCE PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10A6 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFED SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH2 0x10A0 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH0 DUP6 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1015 JUMPI DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1096 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP8 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1056 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1071 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1095 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST JUMPDEST DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP PUSH2 0x10AF JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x10B6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10D9 PUSH2 0x165F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x10EE JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x10F7 DUP2 PUSH2 0x17EF JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1135 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1150 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1174 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1204 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x121F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST PUSH2 0x124D SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x125F CALLER PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x1295 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x12A5 SWAP2 SWAP1 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12D1 JUMPI PUSH2 0x12D0 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1303 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12EB JUMPI PUSH2 0x12EA PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH2 0x1300 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x13A3 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2954 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1331 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x654 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH0 ADD MLOAD GT ISZERO PUSH2 0x1386 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x137D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x139C DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD PUSH2 0x18B5 JUMP JUMPDEST POP POP PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x13B6 JUMPI PUSH2 0x13B5 PUSH2 0x28DA JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x28DA JUMP JUMPDEST JUMPDEST SUB PUSH2 0x14EB JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x13EA SWAP2 SWAP1 PUSH2 0x2A9F JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x142E SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1449 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x146D SWAP2 SWAP1 PUSH2 0x2B90 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x14C4 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14E4 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x1ACD JUMP JUMPDEST POP POP PUSH2 0x14F4 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x14FB JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1589 JUMPI POP PUSH2 0x155A PUSH2 0xE01 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x161B JUMPI POP PUSH2 0x161A DUP3 PUSH2 0x1CF9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1694 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x16C7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x173F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1701 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1792 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x17E0 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x1D72 JUMP JUMPDEST ISZERO PUSH2 0x185C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x18B2 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x18D3 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1953 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x194A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x195C DUP4 PUSH2 0x654 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x19AC JUMPI DUP3 PUSH2 0x196D DUP5 PUSH2 0x654 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x19F7 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A40 JUMPI PUSH2 0x1A3B DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1A6B DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D93 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1AB4 SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1AEB JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B6B JUMPI DUP5 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B62 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B75 DUP6 DUP5 PUSH2 0x10FA JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1BC6 JUMPI DUP5 PUSH2 0x1B87 DUP7 DUP6 PUSH2 0x10FA JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BBD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1C21 SWAP2 SWAP1 PUSH2 0x2C56 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C69 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C80 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C92 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1CDE SWAP3 SWAP2 SWAP1 PUSH2 0x297F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1D6B JUMPI POP PUSH2 0x1D6A DUP3 PUSH2 0x1DDC JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1D8F JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1DD3 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8A DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E94 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EA5 DUP2 PUSH2 0x1E81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EC0 JUMPI PUSH2 0x1EBF PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1ECD DUP5 DUP3 DUP6 ADD PUSH2 0x1E97 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EEA DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F03 PUSH0 DUP4 ADD DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F32 DUP3 PUSH2 0x1F09 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F42 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F5D DUP2 PUSH2 0x1F39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F78 JUMPI PUSH2 0x1F77 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F85 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FA0 DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FB9 PUSH0 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1FE0 JUMPI PUSH2 0x1FDF PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2019 JUMPI PUSH2 0x2018 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2035 JUMPI PUSH2 0x2034 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH2 0x2051 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x206E JUMPI PUSH2 0x206D PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x208D JUMPI PUSH2 0x208C PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20AA JUMPI PUSH2 0x20A9 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20B6 DUP8 DUP3 DUP9 ADD PUSH2 0x1FCB JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20D9 JUMPI PUSH2 0x20D8 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x20E5 DUP8 DUP3 DUP9 ADD PUSH2 0x2020 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2108 JUMPI PUSH2 0x2107 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2125 JUMPI PUSH2 0x2124 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2141 JUMPI PUSH2 0x2140 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x215E JUMPI PUSH2 0x215D PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217B JUMPI PUSH2 0x217A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2187 DUP6 DUP3 DUP7 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x21A8 JUMPI PUSH2 0x21A7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21C5 JUMPI PUSH2 0x21C4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x21E1 JUMPI PUSH2 0x21E0 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21FE JUMPI PUSH2 0x21FD PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x221B JUMPI PUSH2 0x221A PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2227 DUP6 DUP3 DUP7 ADD PUSH2 0x2193 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x223C DUP2 PUSH2 0x1F8E JUMP JUMPDEST DUP2 EQ PUSH2 0x2246 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2257 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2273 JUMPI PUSH2 0x2272 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2280 DUP6 DUP3 DUP7 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2291 DUP6 DUP3 DUP7 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x22A4 DUP2 PUSH2 0x1F28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22BD PUSH0 DUP4 ADD DUP5 PUSH2 0x229B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x22D8 JUMPI PUSH2 0x22D7 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22F5 JUMPI PUSH2 0x22F4 PUSH2 0x1FC3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2311 JUMPI PUSH2 0x2310 PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2334 JUMPI PUSH2 0x2333 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2341 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x2352 DUP12 DUP3 DUP13 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2373 JUMPI PUSH2 0x2372 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x237F DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23A2 JUMPI PUSH2 0x23A1 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23AE DUP12 DUP3 DUP13 ADD PUSH2 0x22C3 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23D1 JUMPI PUSH2 0x23D0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x23DD DUP12 DUP3 DUP13 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x23F8 DUP2 PUSH2 0x1E56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2411 PUSH0 DUP4 ADD DUP5 PUSH2 0x23EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2431 JUMPI PUSH2 0x2430 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x243E DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x244F DUP10 DUP3 DUP11 ADD PUSH2 0x1F4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2460 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2471 DUP10 DUP3 DUP11 ADD PUSH2 0x2249 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2492 JUMPI PUSH2 0x2491 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x249E DUP10 DUP3 DUP11 ADD PUSH2 0x20F3 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x24E3 DUP2 PUSH2 0x1ED6 JUMP JUMPDEST DUP2 EQ PUSH2 0x24ED JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24FE DUP2 PUSH2 0x24DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2519 JUMPI PUSH2 0x2518 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2526 DUP5 DUP3 DUP6 ADD PUSH2 0x24F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2579 DUP3 PUSH2 0x2533 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2598 JUMPI PUSH2 0x2597 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x25AA PUSH2 0x1E45 JUMP JUMPDEST SWAP1 POP PUSH2 0x25B6 DUP3 DUP3 PUSH2 0x2570 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25D9 JUMPI PUSH2 0x25D8 PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x25FC PUSH2 0x25F7 DUP5 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x25A1 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 0x261F JUMPI PUSH2 0x261E PUSH2 0x1FC7 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2648 JUMPI DUP1 PUSH2 0x2634 DUP9 DUP3 PUSH2 0x1F4F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2621 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2666 JUMPI PUSH2 0x2665 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2676 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x269E PUSH1 0x40 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x26AD DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26D0 JUMPI PUSH2 0x26CF PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x26DC DUP5 DUP3 DUP6 ADD PUSH2 0x2652 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26FD JUMPI PUSH2 0x26FC PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271A JUMPI PUSH2 0x2719 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2726 DUP5 DUP3 DUP6 ADD PUSH2 0x267F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x273B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x274C DUP2 PUSH2 0x272F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2770 JUMPI PUSH2 0x276F PUSH2 0x2543 JUMP JUMPDEST JUMPDEST PUSH2 0x2779 DUP3 PUSH2 0x2533 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x27A6 PUSH2 0x27A1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27C2 JUMPI PUSH2 0x27C1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x27CD DUP5 DUP3 DUP6 PUSH2 0x2786 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27E9 JUMPI PUSH2 0x27E8 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27F9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2794 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2817 JUMPI PUSH2 0x2816 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2821 PUSH1 0x80 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2830 DUP5 DUP3 DUP6 ADD PUSH2 0x273E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2843 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2857 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287A PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2887 DUP5 DUP3 DUP6 ADD PUSH2 0x27D5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A8 JUMPI PUSH2 0x28A7 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x28D1 DUP5 DUP3 DUP6 ADD PUSH2 0x2802 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2915 DUP2 PUSH2 0x2233 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2930 JUMPI PUSH2 0x292F PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x293A PUSH1 0x20 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2949 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2969 JUMPI PUSH2 0x2968 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2976 DUP5 DUP3 DUP6 ADD PUSH2 0x291B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2992 PUSH0 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x299F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x29C6 PUSH2 0x29C1 DUP5 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x29E2 JUMPI PUSH2 0x29E1 PUSH2 0x2752 JUMP JUMPDEST JUMPDEST PUSH2 0x29ED DUP5 DUP3 DUP6 PUSH2 0x29A6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A09 JUMPI PUSH2 0x2A08 PUSH2 0x1FBF JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2A19 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x29B4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A37 JUMPI PUSH2 0x2A36 PUSH2 0x252F JUMP JUMPDEST JUMPDEST PUSH2 0x2A41 PUSH1 0x60 PUSH2 0x25A1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A50 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2A63 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A87 JUMPI PUSH2 0x2A86 PUSH2 0x25BB JUMP JUMPDEST JUMPDEST PUSH2 0x2A93 DUP5 DUP3 DUP6 ADD PUSH2 0x29F5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB4 JUMPI PUSH2 0x2AB3 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD1 JUMPI PUSH2 0x2AD0 PUSH2 0x1E52 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADD DUP5 DUP3 DUP6 ADD PUSH2 0x2A22 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2B0A DUP3 PUSH2 0x2AE6 JUMP JUMPDEST PUSH2 0x2B14 DUP2 DUP6 PUSH2 0x2AF0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2B24 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x29A6 JUMP JUMPDEST PUSH2 0x2B2D DUP2 PUSH2 0x2533 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2B4B PUSH0 DUP4 ADD DUP9 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B58 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2B65 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2B72 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B84 DUP2 DUP5 PUSH2 0x2B00 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BA5 JUMPI PUSH2 0x2BA4 PUSH2 0x1E4E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2BB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2907 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2BE3 JUMPI PUSH2 0x2BE2 PUSH2 0x2BBB JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C05 JUMPI PUSH2 0x2C04 PUSH2 0x2BBF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x2C21 JUMPI PUSH2 0x2C20 PUSH2 0x2BC3 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2C60 DUP3 PUSH2 0x1F8E JUMP JUMPDEST SWAP2 POP PUSH2 0x2C6B DUP4 PUSH2 0x1F8E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C83 JUMPI PUSH2 0x2C82 PUSH2 0x2C29 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2C9C PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CA9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1F97 JUMP JUMPDEST PUSH2 0x2CB6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2CD1 PUSH0 DUP4 ADD DUP7 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CDE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x229B JUMP JUMPDEST PUSH2 0x2CEB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1F97 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 EXTCODESIZE 0x1E 0xD2 0xD8 0x25 NOT ADDRESS 0xB4 0xF9 PUSH29 0x8116E40D29F46A036A8C5F4FE3D9369CD70E1203DB64736F6C63430008 NOT STOP CALLER ","sourceMap":"769:13709:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14255:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9709:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;7817:359:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2070:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11144:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;10508:138:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2745:1677;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7553:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;10884:156:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13920:299:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8685:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4851:1015:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13447:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10129:166:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9098:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6148:1181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8209:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11693:435:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14255:221:38;14357:4;14395:34;14380:49;;;:11;:49;;;;:89;;;;14433:36;14457:11;14433:23;:36::i;:::-;14380:89;14373:96;;14255:221;;;:::o;9709:184::-;9782:7;9826:1;9808:20;;:6;:20;;;:78;;9855:31;9880:4;9855:6;:16;;;;:31;;;;:::i;:::-;9808:78;;;9831:21;9808:78;9801:85;;9709:184;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;7817:359:38:-;12517:13:17;:11;:13::i;:::-;8003:11:38::1;;:18;;7984:8;;:15;;:37;7980:66;;8030:16;;;;;;;;;;;;;;7980:66;8061:9;8056:114;8080:8;;:15;;8076:1;:19;8056:114;;;8145:11;;8157:1;8145:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8116:13;:26;8130:8;;8139:1;8130:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8116:26;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;8097:3;;;;;;;8056:114;;;;7817:359:::0;;;;:::o;2070:322::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2158:24:38::1;2196:5;;2185:32;;;;;;;:::i;:::-;2158:59;;2227:29;2244:5;:11;;;2227:16;:29::i;:::-;2271:9;2266:120;2290:5;:16;;;:23;2286:1;:27;2266:120;;;2371:4;2334:13;:34;2348:5;:16;;;2365:1;2348:19;;;;;;;;:::i;:::-;;;;;;;;2334:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;2315:3;;;;;;;2266:120;;;;2148:244;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2070:322:38;;:::o;11144:104::-;11214:7;11144:104;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;10508:138:38:-;10585:7;10611:20;:28;10632:6;10611:28;;;;;;;;;;;;;;;;10604:35;;10508:138;;;:::o;2745:1677::-;2828:4;2844:23;2881:5;;2870:29;;;;;;;:::i;:::-;2844:55;;2934:13;2913:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;2909:1485;;2963:30;3007:7;:12;;;2996:43;;;;;;;;;;;;:::i;:::-;2963:76;;3145:7;:14;;;3132:9;:27;3128:121;;3204:7;:13;;;3219:7;:14;;;3186:48;;;;;;;;;;;;:::i;:::-;;;;;;;;3128:121;2949:310;2909:1485;;;3290:15;3269:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;3265:1129;;3321:30;3365:7;:12;;;3354:43;;;;;;;;;;;;:::i;:::-;3321:76;;3483:77;3514:7;:14;;;3538:4;3545:7;:14;;;3483:7;:13;;;:30;;;;:77;;;;;;:::i;:::-;3619:7;:14;;;3578:38;3610:4;3578:7;:13;;;:23;;;;:38;;;;:::i;:::-;:55;3574:149;;;3678:7;:13;;;3693:7;:14;;;3660:48;;;;;;;;;;;;:::i;:::-;;;;;;;;3574:149;3307:426;3265:1129;;;3764:17;3743:38;;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;;3739:655;;3797:29;3840:7;:12;;;3829:42;;;;;;;;;;;;:::i;:::-;3797:74;;3974:7;:13;;;3965:40;;;4023:7;:14;;;4047:4;4054:7;:15;;;4071:7;:14;;;4087:7;:12;;;3965:148;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4199:7;:14;;;4140:7;:13;;;4131:33;;;4173:4;4180:7;:15;;;4131:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;4127:176;;;4258:7;:13;;;4273:7;:14;;;4240:48;;;;;;;;;;;;:::i;:::-;;;;;;;;4127:176;3783:530;3739:655;;;4378:5;4371:12;;;;;3739:655;3265:1129;2909:1485;4411:4;4404:11;;;2745:1677;;;;;:::o;7553:231::-;7635:4;7656:9;7668:1;7656:13;;7651:105;7675:5;;:12;;7671:1;:16;7651:105;;;7713:18;7722:5;;7728:1;7722:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;7713;:18::i;:::-;7708:37;;7740:5;7733:12;;;;;7708:37;7689:3;;;;;;;7651:105;;;;7773:4;7766:11;;7553:231;;;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;10884:156:38:-;10970:7;10996:19;:27;11016:6;10996:27;;;;;;;;;;;;;;;:37;11024:8;10996:37;;;;;;;;;;;;10989:44;;10884:156;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;13920:299:38:-;14090:6;14164:48;;;14157:55;;13920:299;;;;;;;;;;:::o;8685:152::-;8756:7;8802:20;:28;8823:6;8802:28;;;;;;;;;;;;;;;;8782:17;8792:6;8782:9;:17::i;:::-;:48;;;;:::i;:::-;8775:55;;8685:152;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;4851:1015:38:-;4935:4;12517:13:17;:11;:13::i;:::-;4951:23:38::1;4988:5;;4977:29;;;;;;;:::i;:::-;4951:55;;5041:13;5020:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;:74;;;;5079:15;5058:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;5020:74;5016:822;;;5110:30;5154:7;:12;;;5143:43;;;;;;;;;;;;:::i;:::-;5110:76;;5200:143;5235:7;:13;;;5250:7;:14;;;5284:1;5266:7;:14;;;:19;:63;;5315:7;:14;;;5266:63;;;5288:24;5298:7;:13;;;5288:9;:24::i;:::-;5266:63;5200:17;:143::i;:::-;5096:258;5016:822;;;5385:17;5364:38:::0;::::1;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;::::0;5360:478:::1;;5418:29;5461:7;:12;;;5450:42;;;;;;;;;;;;:::i;:::-;5418:74;;5506:278;5540:7;:13;;;5571:7;:14;;;5603:7;:15;;;5654:1;5636:7;:14;;;:19;:104;;5726:7;:14;;;5636:104;;;5667:7;:13;;;5658:33;;;5700:4;5707:7;:15;;;5658:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5636:104;5758:7;:12;;;5506:16;:278::i;:::-;5404:391;5360:478;;;5822:5;5815:12;;;;;5360:478;5016:822;5855:4;5848:11;;;12540:1:17;4851:1015:38::0;;;;:::o;13447:267::-;13590:6;13664:43;;;13657:50;;13447:267;;;;;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;10129:166:38:-;10211:7;10246:6;10237:26;;;10272:4;10279:8;10237:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10230:58;;10129:166;;;;:::o;9098:204::-;9178:7;9258:19;:27;9278:6;9258:27;;;;;;;;;;;;;;;:37;9286:8;9258:37;;;;;;;;;;;;9213:6;9204:26;;;9239:4;9246:8;9204:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:91;;;;:::i;:::-;9197:98;;9098:204;;;;:::o;6148:1181::-;6236:4;1575:24;1588:10;1575:12;:24::i;:::-;1570:52;;1608:14;;;;;;;;;;;;;;1570:52;6252:23:::1;6289:5;;6278:29;;;;;;;:::i;:::-;6252:55;;6342:15;6321:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;:74;;;;6382:13;6361:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;6321:74;6317:984;;;6411:30;6455:7;:12;;;6444:43;;;;;;;;;;;;:::i;:::-;6411:76;;6502:13;6518:24;6528:7;:13;;;6518:9;:24::i;:::-;6502:40;;6577:5;6560:7;:14;;;:22;6556:123;;;6627:7;:13;;;6642:5;6649:7;:14;;;6609:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;6556:123;6693:64;6711:7;:13;;;6726:7;:14;;;6742:7;:14;;;6693:17;:64::i;:::-;6397:371;;6317:984;;;6799:17;6778:38:::0;::::1;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;::::0;6774:527:::1;;6832:29;6875:7;:12;;;6864:42;;;;;;;;;;;;:::i;:::-;6832:74;;6921:13;6946:7;:13;;;6937:33;;;6979:4;6986:7;:15;;;6937:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6921:81;;7037:5;7020:7;:14;;;:22;7016:123;;;7087:7;:13;;;7102:5;7109:7;:14;;;7069:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;7016:123;7153:94;7170:7;:13;;;7185:7;:14;;;7201:7;:15;;;7218:7;:14;;;7234:7;:12;;;7153:16;:94::i;:::-;6818:440;;6774:527;;;7285:5;7278:12;;;;;6774:527;6317:984;7318:4;7311:11;;;1632:1;6148:1181:::0;;;;:::o;8209:154::-;8287:4;8310:13;:23;8324:8;8310:23;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;8349:7;:5;:7::i;:::-;8337:19;;:8;:19;;;8310:46;8303:53;;8209:154;;;:::o;11693:435:17:-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;5102:205:37:-;5198:4;5236:24;5221:39;;;:11;:39;;;;:79;;;;5264:36;5288:11;5264:23;:36::i;:::-;5221:79;5214:86;;5102:205;;;:::o;19260:739:27:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;9109:1139:27:-;9292:4;9286:11;9357:6;9351:4;9344:20;9422:2;9416:4;9409:16;9487:4;9483:2;9479:13;9473:4;9466:27;9549:34;9543:4;9536:48;9950:4;9944;9938;9932;9929:1;9922:5;9915;9910:45;9844:16;9837:24;9833:1;9826:4;9820:11;9817:18;9814:48;9729:244;9702:404;;10019:10;10013:4;10006:24;10087:4;10081;10074:18;9702:404;10132:1;10126:4;10119:15;10194:1;10188:4;10181:15;9263:979;9109:1139;;;;:::o;6145:1089:17:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;11707:708:38:-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;11918:1:38::1;11903:17;;:3;:17;;::::0;11899:66:::1;;11944:6;11952:3;11957:7;11929:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;11899:66;11989:17;11999:6;11989:9;:17::i;:::-;11979:7;:27;11975:118;;;12047:6;12055:17;12065:6;12055:9;:17::i;:::-;12074:7;12029:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;11975:118;12135:7;12103:20;:28:::0;12124:6:::1;12103:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;12222:1;12204:20;;:6;:20;;::::0;12200:160:::1;;12240:45;12272:3;12277:7;12240:31;:45::i;:::-;12200:160;;;12316:33;12336:3;12341:7;12316:6;:19;;;;:33;;;;;:::i;:::-;12200:160;12387:6;12375:33;;;12395:3;12400:7;12375:33;;;;;;;:::i;:::-;;;;;;;;1937:10:26::0;1913:22;1906:42;11707:708:38;;;:::o;12421:820::-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;12697:1:38::1;12682:17;;:3;:17;;::::0;12678:66:::1;;12723:6;12731:3;12736:7;12708:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;12678:66;12768:27;12778:6;12786:8;12768:9;:27::i;:::-;12758:7;:37;12754:138;;;12836:6;12844:27;12854:6;12862:8;12844:9;:27::i;:::-;12873:7;12818:63;;;;;;;;;;;;;:::i;:::-;;;;;;;;12754:138;12943:7;12902:19;:27;12922:6;12902:27;;;;;;;;;;;;;;;:37;12930:8;12902:37;;;;;;;;;;;;:48;;;;;;;:::i;:::-;;;;;;;;13115:6;13106:33;;;13148:4;13155:3;13160:8;13170:7;13179:5;13106:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13213:6;13201:33;;;13221:3;13226:7;13201:33;;;;;;;:::i;:::-;;;;;;;;1937:10:26::0;1913:22;1906:42;12421:820:38;;;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;4031:342:27:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;13466:939::-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:329::-;2084:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:119;;;2139:79;;:::i;:::-;2101:119;2259:1;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2230:117;2025:329;;;;:::o;2360:77::-;2397:7;2426:5;2415:16;;2360:77;;;:::o;2443:118::-;2530:24;2548:5;2530:24;:::i;:::-;2525:3;2518:37;2443:118;;:::o;2567:222::-;2660:4;2698:2;2687:9;2683:18;2675:26;;2711:71;2779:1;2768:9;2764:17;2755:6;2711:71;:::i;:::-;2567:222;;;;:::o;2795:117::-;2904:1;2901;2894:12;2918:117;3027:1;3024;3017:12;3041:117;3150:1;3147;3140:12;3181:568;3254:8;3264:6;3314:3;3307:4;3299:6;3295:17;3291:27;3281:122;;3322:79;;:::i;:::-;3281:122;3435:6;3422:20;3412:30;;3465:18;3457:6;3454:30;3451:117;;;3487:79;;:::i;:::-;3451:117;3601:4;3593:6;3589:17;3577:29;;3655:3;3647:4;3639:6;3635:17;3625:8;3621:32;3618:41;3615:128;;;3662:79;;:::i;:::-;3615:128;3181:568;;;;;:::o;3769:565::-;3839:8;3849:6;3899:3;3892:4;3884:6;3880:17;3876:27;3866:122;;3907:79;;:::i;:::-;3866:122;4020:6;4007:20;3997:30;;4050:18;4042:6;4039:30;4036:117;;;4072:79;;:::i;:::-;4036:117;4186:4;4178:6;4174:17;4162:29;;4240:3;4232:4;4224:6;4220:17;4210:8;4206:32;4203:41;4200:128;;;4247:79;;:::i;:::-;4200:128;3769:565;;;;;:::o;4340:928::-;4459:6;4467;4475;4483;4532:2;4520:9;4511:7;4507:23;4503:32;4500:119;;;4538:79;;:::i;:::-;4500:119;4686:1;4675:9;4671:17;4658:31;4716:18;4708:6;4705:30;4702:117;;;4738:79;;:::i;:::-;4702:117;4851:80;4923:7;4914:6;4903:9;4899:22;4851:80;:::i;:::-;4833:98;;;;4629:312;5008:2;4997:9;4993:18;4980:32;5039:18;5031:6;5028:30;5025:117;;;5061:79;;:::i;:::-;5025:117;5174:77;5243:7;5234:6;5223:9;5219:22;5174:77;:::i;:::-;5156:95;;;;4951:310;4340:928;;;;;;;:::o;5287:552::-;5344:8;5354:6;5404:3;5397:4;5389:6;5385:17;5381:27;5371:122;;5412:79;;:::i;:::-;5371:122;5525:6;5512:20;5502:30;;5555:18;5547:6;5544:30;5541:117;;;5577:79;;:::i;:::-;5541:117;5691:4;5683:6;5679:17;5667:29;;5745:3;5737:4;5729:6;5725:17;5715:8;5711:32;5708:41;5705:128;;;5752:79;;:::i;:::-;5705:128;5287:552;;;;;:::o;5845:527::-;5915:6;5923;5972:2;5960:9;5951:7;5947:23;5943:32;5940:119;;;5978:79;;:::i;:::-;5940:119;6126:1;6115:9;6111:17;6098:31;6156:18;6148:6;6145:30;6142:117;;;6178:79;;:::i;:::-;6142:117;6291:64;6347:7;6338:6;6327:9;6323:22;6291:64;:::i;:::-;6273:82;;;;6069:296;5845:527;;;;;:::o;6393:579::-;6477:8;6487:6;6537:3;6530:4;6522:6;6518:17;6514:27;6504:122;;6545:79;;:::i;:::-;6504:122;6658:6;6645:20;6635:30;;6688:18;6680:6;6677:30;6674:117;;;6710:79;;:::i;:::-;6674:117;6824:4;6816:6;6812:17;6800:29;;6878:3;6870:4;6862:6;6858:17;6848:8;6844:32;6841:41;6838:128;;;6885:79;;:::i;:::-;6838:128;6393:579;;;;;:::o;6978:581::-;7075:6;7083;7132:2;7120:9;7111:7;7107:23;7103:32;7100:119;;;7138:79;;:::i;:::-;7100:119;7286:1;7275:9;7271:17;7258:31;7316:18;7308:6;7305:30;7302:117;;;7338:79;;:::i;:::-;7302:117;7451:91;7534:7;7525:6;7514:9;7510:22;7451:91;:::i;:::-;7433:109;;;;7229:323;6978:581;;;;;:::o;7565:122::-;7638:24;7656:5;7638:24;:::i;:::-;7631:5;7628:35;7618:63;;7677:1;7674;7667:12;7618:63;7565:122;:::o;7693:139::-;7739:5;7777:6;7764:20;7755:29;;7793:33;7820:5;7793:33;:::i;:::-;7693:139;;;;:::o;7838:474::-;7906:6;7914;7963:2;7951:9;7942:7;7938:23;7934:32;7931:119;;;7969:79;;:::i;:::-;7931:119;8089:1;8114:53;8159:7;8150:6;8139:9;8135:22;8114:53;:::i;:::-;8104:63;;8060:117;8216:2;8242:53;8287:7;8278:6;8267:9;8263:22;8242:53;:::i;:::-;8232:63;;8187:118;7838:474;;;;;:::o;8318:118::-;8405:24;8423:5;8405:24;:::i;:::-;8400:3;8393:37;8318:118;;:::o;8442:222::-;8535:4;8573:2;8562:9;8558:18;8550:26;;8586:71;8654:1;8643:9;8639:17;8630:6;8586:71;:::i;:::-;8442:222;;;;:::o;8687:568::-;8760:8;8770:6;8820:3;8813:4;8805:6;8801:17;8797:27;8787:122;;8828:79;;:::i;:::-;8787:122;8941:6;8928:20;8918:30;;8971:18;8963:6;8960:30;8957:117;;;8993:79;;:::i;:::-;8957:117;9107:4;9099:6;9095:17;9083:29;;9161:3;9153:4;9145:6;9141:17;9131:8;9127:32;9124:41;9121:128;;;9168:79;;:::i;:::-;9121:128;8687:568;;;;;:::o;9261:1569::-;9421:6;9429;9437;9445;9453;9461;9469;9477;9526:3;9514:9;9505:7;9501:23;9497:33;9494:120;;;9533:79;;:::i;:::-;9494:120;9653:1;9678:53;9723:7;9714:6;9703:9;9699:22;9678:53;:::i;:::-;9668:63;;9624:117;9780:2;9806:53;9851:7;9842:6;9831:9;9827:22;9806:53;:::i;:::-;9796:63;;9751:118;9936:2;9925:9;9921:18;9908:32;9967:18;9959:6;9956:30;9953:117;;;9989:79;;:::i;:::-;9953:117;10102:80;10174:7;10165:6;10154:9;10150:22;10102:80;:::i;:::-;10084:98;;;;9879:313;10259:2;10248:9;10244:18;10231:32;10290:18;10282:6;10279:30;10276:117;;;10312:79;;:::i;:::-;10276:117;10425:80;10497:7;10488:6;10477:9;10473:22;10425:80;:::i;:::-;10407:98;;;;10202:313;10582:3;10571:9;10567:19;10554:33;10614:18;10606:6;10603:30;10600:117;;;10636:79;;:::i;:::-;10600:117;10749:64;10805:7;10796:6;10785:9;10781:22;10749:64;:::i;:::-;10731:82;;;;10525:298;9261:1569;;;;;;;;;;;:::o;10836:115::-;10921:23;10938:5;10921:23;:::i;:::-;10916:3;10909:36;10836:115;;:::o;10957:218::-;11048:4;11086:2;11075:9;11071:18;11063:26;;11099:69;11165:1;11154:9;11150:17;11141:6;11099:69;:::i;:::-;10957:218;;;;:::o;11181:1109::-;11287:6;11295;11303;11311;11319;11327;11376:3;11364:9;11355:7;11351:23;11347:33;11344:120;;;11383:79;;:::i;:::-;11344:120;11503:1;11528:53;11573:7;11564:6;11553:9;11549:22;11528:53;:::i;:::-;11518:63;;11474:117;11630:2;11656:53;11701:7;11692:6;11681:9;11677:22;11656:53;:::i;:::-;11646:63;;11601:118;11758:2;11784:53;11829:7;11820:6;11809:9;11805:22;11784:53;:::i;:::-;11774:63;;11729:118;11886:2;11912:53;11957:7;11948:6;11937:9;11933:22;11912:53;:::i;:::-;11902:63;;11857:118;12042:3;12031:9;12027:19;12014:33;12074:18;12066:6;12063:30;12060:117;;;12096:79;;:::i;:::-;12060:117;12209:64;12265:7;12256:6;12245:9;12241:22;12209:64;:::i;:::-;12191:82;;;;11985:298;11181:1109;;;;;;;;:::o;12296:180::-;12344:77;12341:1;12334:88;12441:4;12438:1;12431:15;12465:4;12462:1;12455:15;12482:116;12552:21;12567:5;12552:21;:::i;:::-;12545:5;12542:32;12532:60;;12588:1;12585;12578:12;12532:60;12482:116;:::o;12604:133::-;12647:5;12685:6;12672:20;12663:29;;12701:30;12725:5;12701:30;:::i;:::-;12604:133;;;;:::o;12743:323::-;12799:6;12848:2;12836:9;12827:7;12823:23;12819:32;12816:119;;;12854:79;;:::i;:::-;12816:119;12974:1;12999:50;13041:7;13032:6;13021:9;13017:22;12999:50;:::i;:::-;12989:60;;12945:114;12743:323;;;;:::o;13072:117::-;13181:1;13178;13171:12;13195:102;13236:6;13287:2;13283:7;13278:2;13271:5;13267:14;13263:28;13253:38;;13195:102;;;:::o;13303:180::-;13351:77;13348:1;13341:88;13448:4;13445:1;13438:15;13472:4;13469:1;13462:15;13489:281;13572:27;13594:4;13572:27;:::i;:::-;13564:6;13560:40;13702:6;13690:10;13687:22;13666:18;13654:10;13651:34;13648:62;13645:88;;;13713:18;;:::i;:::-;13645:88;13753:10;13749:2;13742:22;13532:238;13489:281;;:::o;13776:129::-;13810:6;13837:20;;:::i;:::-;13827:30;;13866:33;13894:4;13886:6;13866:33;:::i;:::-;13776:129;;;:::o;13911:117::-;14020:1;14017;14010:12;14034:311;14111:4;14201:18;14193:6;14190:30;14187:56;;;14223:18;;:::i;:::-;14187:56;14273:4;14265:6;14261:17;14253:25;;14333:4;14327;14323:15;14315:23;;14034:311;;;:::o;14368:710::-;14464:5;14489:81;14505:64;14562:6;14505:64;:::i;:::-;14489:81;:::i;:::-;14480:90;;14590:5;14619:6;14612:5;14605:21;14653:4;14646:5;14642:16;14635:23;;14706:4;14698:6;14694:17;14686:6;14682:30;14735:3;14727:6;14724:15;14721:122;;;14754:79;;:::i;:::-;14721:122;14869:6;14852:220;14886:6;14881:3;14878:15;14852:220;;;14961:3;14990:37;15023:3;15011:10;14990:37;:::i;:::-;14985:3;14978:50;15057:4;15052:3;15048:14;15041:21;;14928:144;14912:4;14907:3;14903:14;14896:21;;14852:220;;;14856:21;14470:608;;14368:710;;;;;:::o;15101:370::-;15172:5;15221:3;15214:4;15206:6;15202:17;15198:27;15188:122;;15229:79;;:::i;:::-;15188:122;15346:6;15333:20;15371:94;15461:3;15453:6;15446:4;15438:6;15434:17;15371:94;:::i;:::-;15362:103;;15178:293;15101:370;;;;:::o;15516:771::-;15595:5;15639:4;15627:9;15622:3;15618:19;15614:30;15611:117;;;15647:79;;:::i;:::-;15611:117;15746:21;15762:4;15746:21;:::i;:::-;15737:30;;15827:1;15867:49;15912:3;15903:6;15892:9;15888:22;15867:49;:::i;:::-;15860:4;15853:5;15849:16;15842:75;15777:151;16021:2;16010:9;16006:18;15993:32;16052:18;16044:6;16041:30;16038:117;;;16074:79;;:::i;:::-;16038:117;16194:74;16264:3;16255:6;16244:9;16240:22;16194:74;:::i;:::-;16187:4;16180:5;16176:16;16169:100;15938:342;15516:771;;;;:::o;16293:549::-;16382:6;16431:2;16419:9;16410:7;16406:23;16402:32;16399:119;;;16437:79;;:::i;:::-;16399:119;16585:1;16574:9;16570:17;16557:31;16615:18;16607:6;16604:30;16601:117;;;16637:79;;:::i;:::-;16601:117;16742:83;16817:7;16808:6;16797:9;16793:22;16742:83;:::i;:::-;16732:93;;16528:307;16293:549;;;;:::o;16848:114::-;16936:1;16929:5;16926:12;16916:40;;16952:1;16949;16942:12;16916:40;16848:114;:::o;16968:169::-;17029:5;17067:6;17054:20;17045:29;;17083:48;17125:5;17083:48;:::i;:::-;16968:169;;;;:::o;17143:117::-;17252:1;17249;17242:12;17266:307;17327:4;17417:18;17409:6;17406:30;17403:56;;;17439:18;;:::i;:::-;17403:56;17477:29;17499:6;17477:29;:::i;:::-;17469:37;;17561:4;17555;17551:15;17543:23;;17266:307;;;:::o;17579:148::-;17677:6;17672:3;17667;17654:30;17718:1;17709:6;17704:3;17700:16;17693:27;17579:148;;;:::o;17733:423::-;17810:5;17835:65;17851:48;17892:6;17851:48;:::i;:::-;17835:65;:::i;:::-;17826:74;;17923:6;17916:5;17909:21;17961:4;17954:5;17950:16;17999:3;17990:6;17985:3;17981:16;17978:25;17975:112;;;18006:79;;:::i;:::-;17975:112;18096:54;18143:6;18138:3;18133;18096:54;:::i;:::-;17816:340;17733:423;;;;;:::o;18175:338::-;18230:5;18279:3;18272:4;18264:6;18260:17;18256:27;18246:122;;18287:79;;:::i;:::-;18246:122;18404:6;18391:20;18429:78;18503:3;18495:6;18488:4;18480:6;18476:17;18429:78;:::i;:::-;18420:87;;18236:277;18175:338;;;;:::o;18549:1090::-;18625:5;18669:4;18657:9;18652:3;18648:19;18644:30;18641:117;;;18677:79;;:::i;:::-;18641:117;18776:21;18792:4;18776:21;:::i;:::-;18767:30;;18861:1;18901:64;18961:3;18952:6;18941:9;18937:22;18901:64;:::i;:::-;18894:4;18887:5;18883:16;18876:90;18807:170;19037:2;19078:49;19123:3;19114:6;19103:9;19099:22;19078:49;:::i;:::-;19071:4;19064:5;19060:16;19053:75;18987:152;19200:2;19241:49;19286:3;19277:6;19266:9;19262:22;19241:49;:::i;:::-;19234:4;19227:5;19223:16;19216:75;19149:153;19389:2;19378:9;19374:18;19361:32;19420:18;19412:6;19409:30;19406:117;;;19442:79;;:::i;:::-;19406:117;19562:58;19616:3;19607:6;19596:9;19592:22;19562:58;:::i;:::-;19555:4;19548:5;19544:16;19537:84;19312:320;18549:1090;;;;:::o;19645:543::-;19731:6;19780:2;19768:9;19759:7;19755:23;19751:32;19748:119;;;19786:79;;:::i;:::-;19748:119;19934:1;19923:9;19919:17;19906:31;19964:18;19956:6;19953:30;19950:117;;;19986:79;;:::i;:::-;19950:117;20091:80;20163:7;20154:6;20143:9;20139:22;20091:80;:::i;:::-;20081:90;;19877:304;19645:543;;;;:::o;20194:180::-;20242:77;20239:1;20232:88;20339:4;20336:1;20329:15;20363:4;20360:1;20353:15;20380:143;20437:5;20468:6;20462:13;20453:22;;20484:33;20511:5;20484:33;:::i;:::-;20380:143;;;;:::o;20566:446::-;20660:5;20704:4;20692:9;20687:3;20683:19;20679:30;20676:117;;;20712:79;;:::i;:::-;20676:117;20811:21;20827:4;20811:21;:::i;:::-;20802:30;;20893:1;20933:60;20989:3;20980:6;20969:9;20965:22;20933:60;:::i;:::-;20926:4;20919:5;20915:16;20908:86;20842:163;20566:446;;;;:::o;21018:419::-;21122:6;21171:2;21159:9;21150:7;21146:23;21142:32;21139:119;;;21177:79;;:::i;:::-;21139:119;21297:1;21322:98;21412:7;21403:6;21392:9;21388:22;21322:98;:::i;:::-;21312:108;;21268:162;21018:419;;;;:::o;21443:332::-;21564:4;21602:2;21591:9;21587:18;21579:26;;21615:71;21683:1;21672:9;21668:17;21659:6;21615:71;:::i;:::-;21696:72;21764:2;21753:9;21749:18;21740:6;21696:72;:::i;:::-;21443:332;;;;;:::o;21781:139::-;21870:6;21865:3;21860;21854:23;21911:1;21902:6;21897:3;21893:16;21886:27;21781:139;;;:::o;21926:432::-;22014:5;22039:65;22055:48;22096:6;22055:48;:::i;:::-;22039:65;:::i;:::-;22030:74;;22127:6;22120:5;22113:21;22165:4;22158:5;22154:16;22203:3;22194:6;22189:3;22185:16;22182:25;22179:112;;;22210:79;;:::i;:::-;22179:112;22300:52;22345:6;22340:3;22335;22300:52;:::i;:::-;22020:338;21926:432;;;;;:::o;22377:353::-;22443:5;22492:3;22485:4;22477:6;22473:17;22469:27;22459:122;;22500:79;;:::i;:::-;22459:122;22610:6;22604:13;22635:89;22720:3;22712:6;22705:4;22697:6;22693:17;22635:89;:::i;:::-;22626:98;;22449:281;22377:353;;;;:::o;22772:954::-;22865:5;22909:4;22897:9;22892:3;22888:19;22884:30;22881:117;;;22917:79;;:::i;:::-;22881:117;23016:21;23032:4;23016:21;:::i;:::-;23007:30;;23099:1;23139:60;23195:3;23186:6;23175:9;23171:22;23139:60;:::i;:::-;23132:4;23125:5;23121:16;23114:86;23047:164;23272:2;23313:60;23369:3;23360:6;23349:9;23345:22;23313:60;:::i;:::-;23306:4;23299:5;23295:16;23288:86;23221:164;23465:2;23454:9;23450:18;23444:25;23496:18;23488:6;23485:30;23482:117;;;23518:79;;:::i;:::-;23482:117;23638:69;23703:3;23694:6;23683:9;23679:22;23638:69;:::i;:::-;23631:4;23624:5;23620:16;23613:95;23395:324;22772:954;;;;:::o;23732:570::-;23835:6;23884:2;23872:9;23863:7;23859:23;23855:32;23852:119;;;23890:79;;:::i;:::-;23852:119;24031:1;24020:9;24016:17;24010:24;24061:18;24053:6;24050:30;24047:117;;;24083:79;;:::i;:::-;24047:117;24188:97;24277:7;24268:6;24257:9;24253:22;24188:97;:::i;:::-;24178:107;;23981:314;23732:570;;;;:::o;24308:98::-;24359:6;24393:5;24387:12;24377:22;;24308:98;;;:::o;24412:168::-;24495:11;24529:6;24524:3;24517:19;24569:4;24564:3;24560:14;24545:29;;24412:168;;;;:::o;24586:373::-;24672:3;24700:38;24732:5;24700:38;:::i;:::-;24754:70;24817:6;24812:3;24754:70;:::i;:::-;24747:77;;24833:65;24891:6;24886:3;24879:4;24872:5;24868:16;24833:65;:::i;:::-;24923:29;24945:6;24923:29;:::i;:::-;24918:3;24914:39;24907:46;;24676:283;24586:373;;;;:::o;24965:751::-;25188:4;25226:3;25215:9;25211:19;25203:27;;25240:71;25308:1;25297:9;25293:17;25284:6;25240:71;:::i;:::-;25321:72;25389:2;25378:9;25374:18;25365:6;25321:72;:::i;:::-;25403;25471:2;25460:9;25456:18;25447:6;25403:72;:::i;:::-;25485;25553:2;25542:9;25538:18;25529:6;25485:72;:::i;:::-;25605:9;25599:4;25595:20;25589:3;25578:9;25574:19;25567:49;25633:76;25704:4;25695:6;25633:76;:::i;:::-;25625:84;;24965:751;;;;;;;;:::o;25722:351::-;25792:6;25841:2;25829:9;25820:7;25816:23;25812:32;25809:119;;;25847:79;;:::i;:::-;25809:119;25967:1;25992:64;26048:7;26039:6;26028:9;26024:22;25992:64;:::i;:::-;25982:74;;25938:128;25722:351;;;;:::o;26079:117::-;26188:1;26185;26178:12;26202:117;26311:1;26308;26301:12;26325:117;26434:1;26431;26424:12;26448:724;26525:4;26531:6;26587:11;26574:25;26687:1;26681:4;26677:12;26666:8;26650:14;26646:29;26642:48;26622:18;26618:73;26608:168;;26695:79;;:::i;:::-;26608:168;26807:18;26797:8;26793:33;26785:41;;26859:4;26846:18;26836:28;;26887:18;26879:6;26876:30;26873:117;;;26909:79;;:::i;:::-;26873:117;27017:2;27011:4;27007:13;26999:21;;27074:4;27066:6;27062:17;27046:14;27042:38;27036:4;27032:49;27029:136;;;27084:79;;:::i;:::-;27029:136;26538:634;26448:724;;;;;:::o;27178:180::-;27226:77;27223:1;27216:88;27323:4;27320:1;27313:15;27347:4;27344:1;27337:15;27364:191;27404:3;27423:20;27441:1;27423:20;:::i;:::-;27418:25;;27457:20;27475:1;27457:20;:::i;:::-;27452:25;;27500:1;27497;27493:9;27486:16;;27521:3;27518:1;27515:10;27512:36;;;27528:18;;:::i;:::-;27512:36;27364:191;;;;:::o;27561:442::-;27710:4;27748:2;27737:9;27733:18;27725:26;;27761:71;27829:1;27818:9;27814:17;27805:6;27761:71;:::i;:::-;27842:72;27910:2;27899:9;27895:18;27886:6;27842:72;:::i;:::-;27924;27992:2;27981:9;27977:18;27968:6;27924:72;:::i;:::-;27561:442;;;;;;:::o;28009:::-;28158:4;28196:2;28185:9;28181:18;28173:26;;28209:71;28277:1;28266:9;28262:17;28253:6;28209:71;:::i;:::-;28290:72;28358:2;28347:9;28343:18;28334:6;28290:72;:::i;:::-;28372;28440:2;28429:9;28425:18;28416:6;28372:72;:::i;:::-;28009:442;;;;;;:::o"},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","available(address,uint256)":"f8724aba","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","distributed(address,uint256)":"774c33ab","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","total(address,uint256)":"f9a802c3","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This type of budget supports ETH, ERC20, and ERC1155 assets only\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is simply the current balance held by the budgetIf the zero address is passed, this function will return the native balance\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"available(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"disburse(bytes)\":{\"details\":\"If the asset transfer fails, the disbursement will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"distributed(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budgetIf the amount is zero, the entire balance of the asset will be transferred to the receiverIf the asset transfer fails, the reclamation will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"isAuthorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is simply the sum of the current balance and the distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"total(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_distributedERC1155\":{\"details\":\"The total amount of each ERC1155 asset and token ID distributed from the budget\"},\"_distributedFungible\":{\"details\":\"The total amount of each fungible asset distributed from the budget\"},\"_isAuthorized\":{\"details\":\"The mapping of authorized addresses\"}},\"title\":\"Simple Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget\"},\"available(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets available for distribution from the budget\"},\"constructor\":{\"notice\":\"Construct a new SimpleBudget\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"distributed(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets that have been distributed from the budget\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"},\"total(address,uint256)\":{\"notice\":\"Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/SimpleBudget.sol\":\"SimpleBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/budgets/SimpleBudget.sol\":{\"keccak256\":\"0xaaf0cbaba09803c2d134ecd251b2622fac9211879e540e400ff3b6b75935a262\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5da1c01840cbe1d527ea7753f952ff03f07bd99725bb8fb8aba99166661ce9b8\",\"dweb:/ipfs/QmddFuosP3gYFtH7nvuzAqkMqQKhDr24qNNcVK6g7ADDDD\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/budgets/VestingBudget.sol":{"VestingBudget":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cliff","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_13548":{"entryPoint":null,"id":13548,"parameterSlots":0,"returnSlots":0},"@_14752":{"entryPoint":null,"id":14752,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6124a3806101b45f395ff3fe608060405260043610610143575f3560e01c806361400c99116100b5578063f04e283e1161006e578063f04e283e14610424578063f1c30ec014610440578063f2fde38b1461047c578063fa4ca9b114610498578063fe9fbb80146104d4578063fee81cf4146105105761014a565b806361400c9914610324578063715018a6146103605780638da5cb5b1461036a578063be9a655514610394578063d2514e84146103be578063efbe1c1c146103fa5761014a565b80634359d28a116101075780634359d28a14610222578063439fab911461024a578063451cc1911461027257806354d1f13d146102ae578063578bcf35146102b85780635aef467a146102f45761014a565b806301ffc9a71461014c5780630fb5a6b41461018857806310098ad5146101b257806313d033c0146101ee57806325692962146102185761014a565b3661014a57005b005b348015610157575f80fd5b50610172600480360381019061016d919061188e565b61054c565b60405161017f91906118d3565b60405180910390f35b348015610193575f80fd5b5061019c6105c5565b6040516101a9919061190e565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d39190611981565b6105df565b6040516101e591906119c4565b60405180910390f35b3480156101f9575f80fd5b50610202610638565b60405161020f919061190e565b60405180910390f35b610220610652565b005b34801561022d575f80fd5b5061024860048036038101906102439190611a93565b6106a3565b005b348015610255575f80fd5b50610270600480360381019061026b9190611b66565b6107ad565b005b34801561027d575f80fd5b5061029860048036038101906102939190611b66565b610957565b6040516102a591906119c4565b60405180910390f35b6102b661095e565b005b3480156102c3575f80fd5b506102de60048036038101906102d99190611981565b610997565b6040516102eb91906119c4565b60405180910390f35b61030e60048036038101906103099190611b66565b6109dc565b60405161031b91906118d3565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190611c06565b610ba9565b60405161035791906118d3565b60405180910390f35b610368610c0d565b005b348015610375575f80fd5b5061037e610c20565b60405161038b9190611c60565b60405180910390f35b34801561039f575f80fd5b506103a8610c48565b6040516103b5919061190e565b60405180910390f35b3480156103c9575f80fd5b506103e460048036038101906103df9190611981565b610c61565b6040516103f191906119c4565b60405180910390f35b348015610405575f80fd5b5061040e610d18565b60405161041b91906119c4565b60405180910390f35b61043e60048036038101906104399190611981565b610d5f565b005b34801561044b575f80fd5b5061046660048036038101906104619190611b66565b610d9d565b60405161047391906118d3565b60405180910390f35b61049660048036038101906104919190611981565b610e82565b005b3480156104a3575f80fd5b506104be60048036038101906104b99190611b66565b610eab565b6040516104cb91906118d3565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190611981565b610faa565b60405161050791906118d3565b60405180910390f35b34801561051b575f80fd5b5061053660048036038101906105319190611981565b611039565b60405161054391906119c4565b60405180910390f35b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105be57506105bd82611052565b5b9050919050565b600260089054906101000a900467ffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461062783426110cb565b6106319190611ca6565b9050919050565b600260109054906101000a900467ffffffffffffffff1681565b5f61065b61118c565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6106ab611196565b8181905084849050146106ea576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156107a65782828281811061070a57610709611cd9565b5b905060200201602081019061071f9190611d30565b60015f87878581811061073557610734611cd9565b5b905060200201602081019061074a9190611981565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ec565b5050505050565b5f6107b66111cd565b905080546003825580156107e85760018160011c14303b106107df5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107f99190611f7a565b9050806040015160025f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060600151600260086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060800151600260106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061088d815f01516111f6565b5f5b81602001515181101561091b576001805f846020015184815181106108b7576108b6611cd9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061088f565b50508015610952576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109ed9190612125565b90505f6002811115610a0257610a0161216c565b5b815f01516002811115610a1857610a1761216c565b5b03610a8e575f8160600151806020019051810190610a3691906121fc565b9050805f01513414610a88578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a7f929190612227565b60405180910390fd5b50610b9d565b60016002811115610aa257610aa161216c565b5b815f01516002811115610ab857610ab761216c565b5b03610b93575f8160600151806020019051810190610ad691906121fc565b9050610b10826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166112cc909392919063ffffffff16565b805f0151610b4130846020015173ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b1015610b8d578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b84929190612227565b60405180910390fd5b50610b9c565b5f915050610ba3565b5b60019150505b92915050565b5f805f90505b83839050811015610c0157610be7848483818110610bd057610bcf611cd9565b5b9050602002810190610be2919061225a565b610eab565b610bf4575f915050610c07565b8080600101915050610baf565b50600190505b92915050565b610c15611196565b610c1e5f611359565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900467ffffffffffffffff1681565b5f805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610cc457610cbf308473ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b610cc6565b475b9050805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d1091906122bc565b915050919050565b5f600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16610d5091906122ef565b67ffffffffffffffff16905090565b610d67611196565b63389a75e1600c52805f526020600c208054421115610d8d57636f5e88185f526004601cfd5b5f815550610d9a81611359565b50565b5f610da6611196565b5f8383810190610db69190612125565b90505f6002811115610dcb57610dca61216c565b5b815f01516002811115610de157610de061216c565b5b1480610e14575060016002811115610dfc57610dfb61216c565b5b815f01516002811115610e1257610e1161216c565b5b145b15610e6d575f8160600151806020019051810190610e3291906121fc565b9050610e67826020015183604001515f845f015114610e5457835f0151610e62565b610e6185602001516105df565b5b61141f565b50610e76565b5f915050610e7c565b60019150505b92915050565b610e8a611196565b8060601b610e9f57637448fbae5f526004601cfd5b610ea881611359565b50565b5f610eb533610faa565b610eeb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610efb9190612125565b905060016002811115610f1157610f1061216c565b5b815f01516002811115610f2757610f2661216c565b5b1480610f5957505f6002811115610f4157610f4061216c565b5b815f01516002811115610f5757610f5661216c565b5b145b15610f95575f8160600151806020019051810190610f7791906121fc565b9050610f8f82602001518360400151835f015161141f565b50610f9e565b5f915050610fa4565b60019150505b92915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110325750611003610c20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110c457506110c382611637565b5b9050919050565b5f805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461112e57611129308573ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b611130565b475b90506111835f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548261117d91906122bc565b846116a0565b91505092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146111cb576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6111fe6117be565b15611276577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561123857630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506112c9565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661131757637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113616117be565b156113c6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061141c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd21268540361143d5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bd578282826040517fbf182be80000000000000000000000000000000000000000000000000000000081526004016114b49392919061232a565b60405180910390fd5b6114c6836105df565b81111561151657826114d7846105df565b826040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161150d9392919061235f565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461156191906122bc565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115aa576115a582826117c2565b6115d6565b6115d582828573ffffffffffffffffffffffffffffffffffffffff166117df9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161161e929190612227565b60405180910390a23868929eee149b4bd2126855505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f600260109054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff166116d891906122ef565b67ffffffffffffffff168267ffffffffffffffff1610156116fb575f90506117b8565b600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661173291906122ef565b67ffffffffffffffff168267ffffffffffffffff1610611754578290506117b8565b600260089054906101000a900467ffffffffffffffff1667ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16836117969190612394565b67ffffffffffffffff16846117ab91906123cf565b6117b5919061243d565b90505b92915050565b5f90565b5f385f3884865af16117db5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661181f576390b8ec185f526004601cfd5b5f603452505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61186d81611839565b8114611877575f80fd5b50565b5f8135905061188881611864565b92915050565b5f602082840312156118a3576118a2611831565b5b5f6118b08482850161187a565b91505092915050565b5f8115159050919050565b6118cd816118b9565b82525050565b5f6020820190506118e65f8301846118c4565b92915050565b5f67ffffffffffffffff82169050919050565b611908816118ec565b82525050565b5f6020820190506119215f8301846118ff565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195082611927565b9050919050565b61196081611946565b811461196a575f80fd5b50565b5f8135905061197b81611957565b92915050565b5f6020828403121561199657611995611831565b5b5f6119a38482850161196d565b91505092915050565b5f819050919050565b6119be816119ac565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126119fe576119fd6119dd565b5b8235905067ffffffffffffffff811115611a1b57611a1a6119e1565b5b602083019150836020820283011115611a3757611a366119e5565b5b9250929050565b5f8083601f840112611a5357611a526119dd565b5b8235905067ffffffffffffffff811115611a7057611a6f6119e1565b5b602083019150836020820283011115611a8c57611a8b6119e5565b5b9250929050565b5f805f8060408587031215611aab57611aaa611831565b5b5f85013567ffffffffffffffff811115611ac857611ac7611835565b5b611ad4878288016119e9565b9450945050602085013567ffffffffffffffff811115611af757611af6611835565b5b611b0387828801611a3e565b925092505092959194509250565b5f8083601f840112611b2657611b256119dd565b5b8235905067ffffffffffffffff811115611b4357611b426119e1565b5b602083019150836001820283011115611b5f57611b5e6119e5565b5b9250929050565b5f8060208385031215611b7c57611b7b611831565b5b5f83013567ffffffffffffffff811115611b9957611b98611835565b5b611ba585828601611b11565b92509250509250929050565b5f8083601f840112611bc657611bc56119dd565b5b8235905067ffffffffffffffff811115611be357611be26119e1565b5b602083019150836020820283011115611bff57611bfe6119e5565b5b9250929050565b5f8060208385031215611c1c57611c1b611831565b5b5f83013567ffffffffffffffff811115611c3957611c38611835565b5b611c4585828601611bb1565b92509250509250929050565b611c5a81611946565b82525050565b5f602082019050611c735f830184611c51565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cb0826119ac565b9150611cbb836119ac565b9250828203905081811115611cd357611cd2611c79565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611d0f816118b9565b8114611d19575f80fd5b50565b5f81359050611d2a81611d06565b92915050565b5f60208284031215611d4557611d44611831565b5b5f611d5284828501611d1c565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611da582611d5f565b810181811067ffffffffffffffff82111715611dc457611dc3611d6f565b5b80604052505050565b5f611dd6611828565b9050611de28282611d9c565b919050565b5f80fd5b5f67ffffffffffffffff821115611e0557611e04611d6f565b5b602082029050602081019050919050565b5f611e28611e2384611deb565b611dcd565b90508083825260208201905060208402830185811115611e4b57611e4a6119e5565b5b835b81811015611e745780611e60888261196d565b845260208401935050602081019050611e4d565b5050509392505050565b5f82601f830112611e9257611e916119dd565b5b8135611ea2848260208601611e16565b91505092915050565b611eb4816118ec565b8114611ebe575f80fd5b50565b5f81359050611ecf81611eab565b92915050565b5f60a08284031215611eea57611ee9611d5b565b5b611ef460a0611dcd565b90505f611f038482850161196d565b5f83015250602082013567ffffffffffffffff811115611f2657611f25611de7565b5b611f3284828501611e7e565b6020830152506040611f4684828501611ec1565b6040830152506060611f5a84828501611ec1565b6060830152506080611f6e84828501611ec1565b60808301525092915050565b5f60208284031215611f8f57611f8e611831565b5b5f82013567ffffffffffffffff811115611fac57611fab611835565b5b611fb884828501611ed5565b91505092915050565b60038110611fcd575f80fd5b50565b5f81359050611fde81611fc1565b92915050565b5f80fd5b5f67ffffffffffffffff82111561200257612001611d6f565b5b61200b82611d5f565b9050602081019050919050565b828183375f83830152505050565b5f61203861203384611fe8565b611dcd565b90508281526020810184848401111561205457612053611fe4565b5b61205f848285612018565b509392505050565b5f82601f83011261207b5761207a6119dd565b5b813561208b848260208601612026565b91505092915050565b5f608082840312156120a9576120a8611d5b565b5b6120b36080611dcd565b90505f6120c284828501611fd0565b5f8301525060206120d58482850161196d565b60208301525060406120e98482850161196d565b604083015250606082013567ffffffffffffffff81111561210d5761210c611de7565b5b61211984828501612067565b60608301525092915050565b5f6020828403121561213a57612139611831565b5b5f82013567ffffffffffffffff81111561215757612156611835565b5b61216384828501612094565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6121a2816119ac565b81146121ac575f80fd5b50565b5f815190506121bd81612199565b92915050565b5f602082840312156121d8576121d7611d5b565b5b6121e26020611dcd565b90505f6121f1848285016121af565b5f8301525092915050565b5f6020828403121561221157612210611831565b5b5f61221e848285016121c3565b91505092915050565b5f60408201905061223a5f830185611c51565b61224760208301846119b5565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f80833560016020038436030381126122765761227561224e565b5b80840192508235915067ffffffffffffffff82111561229857612297612252565b5b6020830192506001820236038313156122b4576122b3612256565b5b509250929050565b5f6122c6826119ac565b91506122d1836119ac565b92508282019050808211156122e9576122e8611c79565b5b92915050565b5f6122f9826118ec565b9150612304836118ec565b9250828201905067ffffffffffffffff81111561232457612323611c79565b5b92915050565b5f60608201905061233d5f830186611c51565b61234a6020830185611c51565b61235760408301846119b5565b949350505050565b5f6060820190506123725f830186611c51565b61237f60208301856119b5565b61238c60408301846119b5565b949350505050565b5f61239e826118ec565b91506123a9836118ec565b9250828203905067ffffffffffffffff8111156123c9576123c8611c79565b5b92915050565b5f6123d9826119ac565b91506123e4836119ac565b92508282026123f2816119ac565b9150828204841483151761240957612408611c79565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612447826119ac565b9150612452836119ac565b92508261246257612461612410565b5b82820490509291505056fea26469706673582212200800c5718970c108b16c08f87d484853c64c49e10cd30ba20a5593885273a25764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x24A3 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x143 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61400C99 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF04E283E GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x440 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x510 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x61400C99 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0xEFBE1C1C EQ PUSH2 0x3FA JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x4359D28A GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2F4 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xFB5A6B4 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x13D033C0 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x218 JUMPI PUSH2 0x14A JUMP JUMPDEST CALLDATASIZE PUSH2 0x14A JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x188E JUMP JUMPDEST PUSH2 0x54C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x202 PUSH2 0x638 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20F SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x220 PUSH2 0x652 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0x1A93 JUMP JUMPDEST PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x298 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B6 PUSH2 0x95E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D9 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x997 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EB SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x9DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x34A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x345 SWAP2 SWAP1 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x357 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH2 0xC0D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37E PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A8 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B5 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DF SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x40E PUSH2 0xD18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x41B SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x439 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xD5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xD9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x473 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x496 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x491 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B9 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CB SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F5 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xFAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x507 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x536 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x1039 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x543 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5BE JUMPI POP PUSH2 0x5BD DUP3 PUSH2 0x1052 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x627 DUP4 TIMESTAMP PUSH2 0x10CB JUMP JUMPDEST PUSH2 0x631 SWAP2 SWAP1 PUSH2 0x1CA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x65B PUSH2 0x118C JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x1196 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x6EA JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x70A JUMPI PUSH2 0x709 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x1D30 JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x735 JUMPI PUSH2 0x734 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x74A SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x7B6 PUSH2 0x11CD JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x7DF JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x1F7A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x80 ADD MLOAD PUSH1 0x2 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x88D DUP2 PUSH0 ADD MLOAD PUSH2 0x11F6 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x91B JUMPI PUSH1 0x1 DUP1 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x8B7 JUMPI PUSH2 0x8B6 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x88F JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x952 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9ED SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA17 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA8E JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA36 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA88 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA7F SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAB8 JUMPI PUSH2 0xAB7 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB93 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAD6 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xB10 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CC SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB41 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB8D JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB84 SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9C JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xBA3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xBE7 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xBD0 JUMPI PUSH2 0xBCF PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xBE2 SWAP2 SWAP1 PUSH2 0x225A JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH2 0xBF4 JUMPI PUSH0 SWAP2 POP POP PUSH2 0xC07 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xBAF JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC15 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0xC1E PUSH0 PUSH2 0x1359 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC4 JUMPI PUSH2 0xCBF ADDRESS DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xCC6 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xD10 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD50 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xD67 PUSH2 0x1196 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD8D JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD9A DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 PUSH2 0x1196 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xDB6 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDE1 JUMPI PUSH2 0xDE0 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xE14 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI PUSH2 0xDFB PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE12 JUMPI PUSH2 0xE11 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xE6D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE32 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xE67 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xE54 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xE62 JUMP JUMPDEST PUSH2 0xE61 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x5DF JUMP JUMPDEST JUMPDEST PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xE76 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x1196 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE9F JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xEA8 DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEB5 CALLER PUSH2 0xFAA JUMP JUMPDEST PUSH2 0xEEB JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEFB SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF11 JUMPI PUSH2 0xF10 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF27 JUMPI PUSH2 0xF26 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF59 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF41 JUMPI PUSH2 0xF40 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF57 JUMPI PUSH2 0xF56 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xF95 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF77 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xF8F DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xF9E JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xFA4 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1032 JUMPI POP PUSH2 0x1003 PUSH2 0xC20 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x10C4 JUMPI POP PUSH2 0x10C3 DUP3 PUSH2 0x1637 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x112E JUMPI PUSH2 0x1129 ADDRESS DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1130 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP PUSH2 0x1183 PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP3 PUSH2 0x117D SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST DUP5 PUSH2 0x16A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x11CB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x1276 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1238 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x12C9 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1317 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1361 PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x13C6 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x141C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x143D JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BD JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x232A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14C6 DUP4 PUSH2 0x5DF JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1516 JUMPI DUP3 PUSH2 0x14D7 DUP5 PUSH2 0x5DF JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AA JUMPI PUSH2 0x15A5 DUP3 DUP3 PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST PUSH2 0x15D5 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x17DF SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x161E SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x16D8 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x16FB JUMPI PUSH0 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x1732 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT PUSH2 0x1754 JUMPI DUP3 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1796 SWAP2 SWAP1 PUSH2 0x2394 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH2 0x17AB SWAP2 SWAP1 PUSH2 0x23CF JUMP JUMPDEST PUSH2 0x17B5 SWAP2 SWAP1 PUSH2 0x243D JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x17DB JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x181F JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x1839 JUMP JUMPDEST DUP2 EQ PUSH2 0x1877 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1888 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18A3 JUMPI PUSH2 0x18A2 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18B0 DUP5 DUP3 DUP6 ADD PUSH2 0x187A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18CD DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18E6 PUSH0 DUP4 ADD DUP5 PUSH2 0x18C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1908 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1921 PUSH0 DUP4 ADD DUP5 PUSH2 0x18FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1950 DUP3 PUSH2 0x1927 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1960 DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP2 EQ PUSH2 0x196A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x197B DUP2 PUSH2 0x1957 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1996 JUMPI PUSH2 0x1995 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19A3 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19BE DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19D7 PUSH0 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A1B JUMPI PUSH2 0x1A1A PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A37 JUMPI PUSH2 0x1A36 PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A53 JUMPI PUSH2 0x1A52 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A70 JUMPI PUSH2 0x1A6F PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A8C JUMPI PUSH2 0x1A8B PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1AAB JUMPI PUSH2 0x1AAA PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AC8 JUMPI PUSH2 0x1AC7 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1AD4 DUP8 DUP3 DUP9 ADD PUSH2 0x19E9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AF7 JUMPI PUSH2 0x1AF6 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1B03 DUP8 DUP3 DUP9 ADD PUSH2 0x1A3E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B26 JUMPI PUSH2 0x1B25 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B43 JUMPI PUSH2 0x1B42 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B5F JUMPI PUSH2 0x1B5E PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7C JUMPI PUSH2 0x1B7B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B99 JUMPI PUSH2 0x1B98 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1BA5 DUP6 DUP3 DUP7 ADD PUSH2 0x1B11 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BC6 JUMPI PUSH2 0x1BC5 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE3 JUMPI PUSH2 0x1BE2 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1BFF JUMPI PUSH2 0x1BFE PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C1C JUMPI PUSH2 0x1C1B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C39 JUMPI PUSH2 0x1C38 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1C45 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C5A DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1C73 PUSH0 DUP4 ADD DUP5 PUSH2 0x1C51 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1CB0 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x1CBB DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1CD3 JUMPI PUSH2 0x1CD2 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1D0F DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D19 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D2A DUP2 PUSH2 0x1D06 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D45 JUMPI PUSH2 0x1D44 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1D52 DUP5 DUP3 DUP6 ADD PUSH2 0x1D1C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1DA5 DUP3 PUSH2 0x1D5F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1DC4 JUMPI PUSH2 0x1DC3 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1DD6 PUSH2 0x1828 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DE2 DUP3 DUP3 PUSH2 0x1D9C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1E05 JUMPI PUSH2 0x1E04 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1E28 PUSH2 0x1E23 DUP5 PUSH2 0x1DEB JUMP JUMPDEST PUSH2 0x1DCD 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 0x1E4B JUMPI PUSH2 0x1E4A PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E74 JUMPI DUP1 PUSH2 0x1E60 DUP9 DUP3 PUSH2 0x196D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E4D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1E92 JUMPI PUSH2 0x1E91 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EA2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1E16 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EB4 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP2 EQ PUSH2 0x1EBE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1ECF DUP2 PUSH2 0x1EAB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EEA JUMPI PUSH2 0x1EE9 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x1EF4 PUSH1 0xA0 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F03 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F26 JUMPI PUSH2 0x1F25 PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 ADD PUSH2 0x1E7E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1F46 DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1F5A DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1F6E DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8F JUMPI PUSH2 0x1F8E PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FAC JUMPI PUSH2 0x1FAB PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1FB8 DUP5 DUP3 DUP6 ADD PUSH2 0x1ED5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1FCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FDE DUP2 PUSH2 0x1FC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH2 0x200B DUP3 PUSH2 0x1D5F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2038 PUSH2 0x2033 DUP5 PUSH2 0x1FE8 JUMP JUMPDEST PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2054 JUMPI PUSH2 0x2053 PUSH2 0x1FE4 JUMP JUMPDEST JUMPDEST PUSH2 0x205F DUP5 DUP3 DUP6 PUSH2 0x2018 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x207B JUMPI PUSH2 0x207A PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x208B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2026 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A9 JUMPI PUSH2 0x20A8 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x20B3 PUSH1 0x80 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x20C2 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD0 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x20D5 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x20E9 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x2119 DUP5 DUP3 DUP6 ADD PUSH2 0x2067 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x213A JUMPI PUSH2 0x2139 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2156 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x2163 DUP5 DUP3 DUP6 ADD PUSH2 0x2094 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x21A2 DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP2 EQ PUSH2 0x21AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x21BD DUP2 PUSH2 0x2199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21D8 JUMPI PUSH2 0x21D7 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x21E2 PUSH1 0x20 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x21F1 DUP5 DUP3 DUP6 ADD PUSH2 0x21AF JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x221E DUP5 DUP3 DUP6 ADD PUSH2 0x21C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x223A PUSH0 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2247 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2276 JUMPI PUSH2 0x2275 PUSH2 0x224E JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2298 JUMPI PUSH2 0x2297 PUSH2 0x2252 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x22B4 JUMPI PUSH2 0x22B3 PUSH2 0x2256 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C6 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x22D1 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x22E9 JUMPI PUSH2 0x22E8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22F9 DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x2304 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2324 JUMPI PUSH2 0x2323 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x233D PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x234A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2357 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2372 PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x237F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x238C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x239E DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x23A9 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23C9 JUMPI PUSH2 0x23C8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23D9 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x23E4 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x23F2 DUP2 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2409 JUMPI PUSH2 0x2408 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2447 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2452 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2462 JUMPI PUSH2 0x2461 PUSH2 0x2410 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD STOP 0xC5 PUSH18 0x8970C108B16C08F87D484853C64C49E10CD3 SIGNEXTEND LOG2 EXP SSTORE SWAP4 DUP9 MSTORE PUSH20 0xA25764736F6C6343000819003300000000000000 ","sourceMap":"1481:10635:39:-:0;;;2751:53;;;;;;;;;;2803:28:37;2820:10;2803:16;;;:28;;:::i;:::-;2775:22:39;:20;;;:22;;:::i;:::-;1481:10635;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;1481:10635:39:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_13661":{"entryPoint":null,"id":13661,"parameterSlots":0,"returnSlots":0},"@_13668":{"entryPoint":null,"id":13668,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":4502,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":6078,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":4557,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":4598,"id":6302,"parameterSlots":1,"returnSlots":0},"@_linearVestedAmount_15409":{"entryPoint":5792,"id":15409,"parameterSlots":2,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4492,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":4953,"id":6316,"parameterSlots":1,"returnSlots":0},"@_transferFungible_15328":{"entryPoint":5151,"id":15328,"parameterSlots":3,"returnSlots":0},"@_vestedAllocation_15370":{"entryPoint":4299,"id":15370,"parameterSlots":2,"returnSlots":1},"@allocate_14925":{"entryPoint":2524,"id":14925,"parameterSlots":2,"returnSlots":1},"@available_15226":{"entryPoint":1503,"id":15226,"parameterSlots":1,"returnSlots":1},"@balanceOf_11267":{"entryPoint":4902,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2398,"id":6382,"parameterSlots":0,"returnSlots":0},"@cliff_14730":{"entryPoint":1592,"id":14730,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3423,"id":6396,"parameterSlots":1,"returnSlots":0},"@disburseBatch_15089":{"entryPoint":2985,"id":15089,"parameterSlots":2,"returnSlots":1},"@disburse_15054":{"entryPoint":3755,"id":15054,"parameterSlots":2,"returnSlots":1},"@distributed_15240":{"entryPoint":2455,"id":15240,"parameterSlots":1,"returnSlots":1},"@duration_14727":{"entryPoint":1477,"id":14727,"parameterSlots":0,"returnSlots":0},"@end_15165":{"entryPoint":3352,"id":15165,"parameterSlots":0,"returnSlots":1},"@initialize_14815":{"entryPoint":1965,"id":14815,"parameterSlots":2,"returnSlots":0},"@isAuthorized_15154":{"entryPoint":4010,"id":15154,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":3104,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4153,"id":6414,"parameterSlots":1,"returnSlots":1},"@reclaim_14994":{"entryPoint":3485,"id":14994,"parameterSlots":2,"returnSlots":1},"@reconcile_15252":{"entryPoint":2391,"id":15252,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":3085,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1618,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11089":{"entryPoint":6082,"id":11089,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_11177":{"entryPoint":4812,"id":11177,"parameterSlots":4,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":6111,"id":11219,"parameterSlots":3,"returnSlots":0},"@setAuthorized_15135":{"entryPoint":1699,"id":15135,"parameterSlots":4,"returnSlots":0},"@start_14724":{"entryPoint":3144,"id":14724,"parameterSlots":0,"returnSlots":0},"@supportsInterface_13636":{"entryPoint":1356,"id":13636,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":4178,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":5687,"id":2844,"parameterSlots":1,"returnSlots":1},"@total_15203":{"entryPoint":3169,"id":15203,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":3714,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7702,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":8230,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6509,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":6633,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7806,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":6718,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":7089,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":7452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":6266,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":6929,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":8295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_AssetType_$13471":{"entryPoint":8144,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":8643,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$14711_memory_ptr":{"entryPoint":7893,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":8340,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":7873,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6529,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":6803,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":7174,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":7472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":6286,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":7014,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory":{"entryPoint":8700,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$14711_memory_ptr":{"entryPoint":8058,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr":{"entryPoint":8485,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7249,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6340,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6581,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":6399,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7264,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":9002,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":8743,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":9055,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":6355,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":6596,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":6414,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":8794,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":7629,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":6184,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7659,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":8168,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":8892,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":8943,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":9277,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":9167,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":7334,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint64":{"entryPoint":9108,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6470,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":6329,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":6201,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":6439,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6572,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":6380,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":8216,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":7580,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":7289,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":9232,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":8556,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7385,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7535,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":6625,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6621,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":8786,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":7515,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":8782,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":7655,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":6629,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":8790,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":8164,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6197,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6193,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":7519,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":6487,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7430,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":6244,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_AssetType_$13471":{"entryPoint":8129,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8601,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":7851,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:22532:53","nodeType":"YulBlock","src":"0:22532:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1562:57:53","nodeType":"YulBlock","src":"1562:57:53","statements":[{"nativeSrc":"1572:41:53","nodeType":"YulAssignment","src":"1572:41:53","value":{"arguments":[{"name":"value","nativeSrc":"1587:5:53","nodeType":"YulIdentifier","src":"1587:5:53"},{"kind":"number","nativeSrc":"1594:18:53","nodeType":"YulLiteral","src":"1594:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1583:3:53","nodeType":"YulIdentifier","src":"1583:3:53"},"nativeSrc":"1583:30:53","nodeType":"YulFunctionCall","src":"1583:30:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1572:7:53","nodeType":"YulIdentifier","src":"1572:7:53"}]}]},"name":"cleanup_t_uint64","nativeSrc":"1518:101:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1544:5:53","nodeType":"YulTypedName","src":"1544:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1554:7:53","nodeType":"YulTypedName","src":"1554:7:53","type":""}],"src":"1518:101:53"},{"body":{"nativeSrc":"1688:52:53","nodeType":"YulBlock","src":"1688:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1705:3:53","nodeType":"YulIdentifier","src":"1705:3:53"},{"arguments":[{"name":"value","nativeSrc":"1727:5:53","nodeType":"YulIdentifier","src":"1727:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"1710:16:53","nodeType":"YulIdentifier","src":"1710:16:53"},"nativeSrc":"1710:23:53","nodeType":"YulFunctionCall","src":"1710:23:53"}],"functionName":{"name":"mstore","nativeSrc":"1698:6:53","nodeType":"YulIdentifier","src":"1698:6:53"},"nativeSrc":"1698:36:53","nodeType":"YulFunctionCall","src":"1698:36:53"},"nativeSrc":"1698:36:53","nodeType":"YulExpressionStatement","src":"1698:36:53"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"1625:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1676:5:53","nodeType":"YulTypedName","src":"1676:5:53","type":""},{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulTypedName","src":"1683:3:53","type":""}],"src":"1625:115:53"},{"body":{"nativeSrc":"1842:122:53","nodeType":"YulBlock","src":"1842:122:53","statements":[{"nativeSrc":"1852:26:53","nodeType":"YulAssignment","src":"1852:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1864:9:53","nodeType":"YulIdentifier","src":"1864:9:53"},{"kind":"number","nativeSrc":"1875:2:53","nodeType":"YulLiteral","src":"1875:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1860:3:53","nodeType":"YulIdentifier","src":"1860:3:53"},"nativeSrc":"1860:18:53","nodeType":"YulFunctionCall","src":"1860:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1852:4:53","nodeType":"YulIdentifier","src":"1852:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1930:6:53","nodeType":"YulIdentifier","src":"1930:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1943:9:53","nodeType":"YulIdentifier","src":"1943:9:53"},{"kind":"number","nativeSrc":"1954:1:53","nodeType":"YulLiteral","src":"1954:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1939:3:53","nodeType":"YulIdentifier","src":"1939:3:53"},"nativeSrc":"1939:17:53","nodeType":"YulFunctionCall","src":"1939:17:53"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"1888:41:53","nodeType":"YulIdentifier","src":"1888:41:53"},"nativeSrc":"1888:69:53","nodeType":"YulFunctionCall","src":"1888:69:53"},"nativeSrc":"1888:69:53","nodeType":"YulExpressionStatement","src":"1888:69:53"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"1746:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1814:9:53","nodeType":"YulTypedName","src":"1814:9:53","type":""},{"name":"value0","nativeSrc":"1826:6:53","nodeType":"YulTypedName","src":"1826:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1837:4:53","nodeType":"YulTypedName","src":"1837:4:53","type":""}],"src":"1746:218:53"},{"body":{"nativeSrc":"2015:81:53","nodeType":"YulBlock","src":"2015:81:53","statements":[{"nativeSrc":"2025:65:53","nodeType":"YulAssignment","src":"2025:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2040:5:53","nodeType":"YulIdentifier","src":"2040:5:53"},{"kind":"number","nativeSrc":"2047:42:53","nodeType":"YulLiteral","src":"2047:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2036:3:53","nodeType":"YulIdentifier","src":"2036:3:53"},"nativeSrc":"2036:54:53","nodeType":"YulFunctionCall","src":"2036:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2025:7:53","nodeType":"YulIdentifier","src":"2025:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1970:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1997:5:53","nodeType":"YulTypedName","src":"1997:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2007:7:53","nodeType":"YulTypedName","src":"2007:7:53","type":""}],"src":"1970:126:53"},{"body":{"nativeSrc":"2147:51:53","nodeType":"YulBlock","src":"2147:51:53","statements":[{"nativeSrc":"2157:35:53","nodeType":"YulAssignment","src":"2157:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2186:5:53","nodeType":"YulIdentifier","src":"2186:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2168:17:53","nodeType":"YulIdentifier","src":"2168:17:53"},"nativeSrc":"2168:24:53","nodeType":"YulFunctionCall","src":"2168:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2157:7:53","nodeType":"YulIdentifier","src":"2157:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2102:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2129:5:53","nodeType":"YulTypedName","src":"2129:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2139:7:53","nodeType":"YulTypedName","src":"2139:7:53","type":""}],"src":"2102:96:53"},{"body":{"nativeSrc":"2247:79:53","nodeType":"YulBlock","src":"2247:79:53","statements":[{"body":{"nativeSrc":"2304:16:53","nodeType":"YulBlock","src":"2304:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2313:1:53","nodeType":"YulLiteral","src":"2313:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2316:1:53","nodeType":"YulLiteral","src":"2316:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2306:6:53","nodeType":"YulIdentifier","src":"2306:6:53"},"nativeSrc":"2306:12:53","nodeType":"YulFunctionCall","src":"2306:12:53"},"nativeSrc":"2306:12:53","nodeType":"YulExpressionStatement","src":"2306:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2270:5:53","nodeType":"YulIdentifier","src":"2270:5:53"},{"arguments":[{"name":"value","nativeSrc":"2295:5:53","nodeType":"YulIdentifier","src":"2295:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2277:17:53","nodeType":"YulIdentifier","src":"2277:17:53"},"nativeSrc":"2277:24:53","nodeType":"YulFunctionCall","src":"2277:24:53"}],"functionName":{"name":"eq","nativeSrc":"2267:2:53","nodeType":"YulIdentifier","src":"2267:2:53"},"nativeSrc":"2267:35:53","nodeType":"YulFunctionCall","src":"2267:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2260:6:53","nodeType":"YulIdentifier","src":"2260:6:53"},"nativeSrc":"2260:43:53","nodeType":"YulFunctionCall","src":"2260:43:53"},"nativeSrc":"2257:63:53","nodeType":"YulIf","src":"2257:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"2204:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2240:5:53","nodeType":"YulTypedName","src":"2240:5:53","type":""}],"src":"2204:122:53"},{"body":{"nativeSrc":"2384:87:53","nodeType":"YulBlock","src":"2384:87:53","statements":[{"nativeSrc":"2394:29:53","nodeType":"YulAssignment","src":"2394:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2416:6:53","nodeType":"YulIdentifier","src":"2416:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2403:12:53","nodeType":"YulIdentifier","src":"2403:12:53"},"nativeSrc":"2403:20:53","nodeType":"YulFunctionCall","src":"2403:20:53"},"variableNames":[{"name":"value","nativeSrc":"2394:5:53","nodeType":"YulIdentifier","src":"2394:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2459:5:53","nodeType":"YulIdentifier","src":"2459:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2432:26:53","nodeType":"YulIdentifier","src":"2432:26:53"},"nativeSrc":"2432:33:53","nodeType":"YulFunctionCall","src":"2432:33:53"},"nativeSrc":"2432:33:53","nodeType":"YulExpressionStatement","src":"2432:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"2332:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2362:6:53","nodeType":"YulTypedName","src":"2362:6:53","type":""},{"name":"end","nativeSrc":"2370:3:53","nodeType":"YulTypedName","src":"2370:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2378:5:53","nodeType":"YulTypedName","src":"2378:5:53","type":""}],"src":"2332:139:53"},{"body":{"nativeSrc":"2543:263:53","nodeType":"YulBlock","src":"2543:263:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:117:53","nodeType":"YulBlock","src":"2682:117:53","statements":[{"nativeSrc":"2697:15:53","nodeType":"YulVariableDeclaration","src":"2697:15:53","value":{"kind":"number","nativeSrc":"2711:1:53","nodeType":"YulLiteral","src":"2711:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"nativeSrc":"2726:63:53","nodeType":"YulAssignment","src":"2726:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2761:9:53","nodeType":"YulIdentifier","src":"2761:9:53"},{"name":"offset","nativeSrc":"2772:6:53","nodeType":"YulIdentifier","src":"2772:6:53"}],"functionName":{"name":"add","nativeSrc":"2757:3:53","nodeType":"YulIdentifier","src":"2757:3:53"},"nativeSrc":"2757:22:53","nodeType":"YulFunctionCall","src":"2757:22:53"},{"name":"dataEnd","nativeSrc":"2781:7:53","nodeType":"YulIdentifier","src":"2781:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2736:20:53","nodeType":"YulIdentifier","src":"2736:20:53"},"nativeSrc":"2736:53:53","nodeType":"YulFunctionCall","src":"2736:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2726:6:53","nodeType":"YulIdentifier","src":"2726:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2477:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2513:9:53","nodeType":"YulTypedName","src":"2513:9:53","type":""},{"name":"dataEnd","nativeSrc":"2524:7:53","nodeType":"YulTypedName","src":"2524:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2477:329:53"},{"body":{"nativeSrc":"2857:32:53","nodeType":"YulBlock","src":"2857:32:53","statements":[{"nativeSrc":"2867:16:53","nodeType":"YulAssignment","src":"2867:16:53","value":{"name":"value","nativeSrc":"2878:5:53","nodeType":"YulIdentifier","src":"2878:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2867:7:53","nodeType":"YulIdentifier","src":"2867:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2812:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2839:5:53","nodeType":"YulTypedName","src":"2839:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2849:7:53","nodeType":"YulTypedName","src":"2849:7:53","type":""}],"src":"2812:77:53"},{"body":{"nativeSrc":"2960:53:53","nodeType":"YulBlock","src":"2960:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2977:3:53","nodeType":"YulIdentifier","src":"2977:3:53"},{"arguments":[{"name":"value","nativeSrc":"3000:5:53","nodeType":"YulIdentifier","src":"3000:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2982:17:53","nodeType":"YulIdentifier","src":"2982:17:53"},"nativeSrc":"2982:24:53","nodeType":"YulFunctionCall","src":"2982:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2970:6:53","nodeType":"YulIdentifier","src":"2970:6:53"},"nativeSrc":"2970:37:53","nodeType":"YulFunctionCall","src":"2970:37:53"},"nativeSrc":"2970:37:53","nodeType":"YulExpressionStatement","src":"2970:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2895:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2948:5:53","nodeType":"YulTypedName","src":"2948:5:53","type":""},{"name":"pos","nativeSrc":"2955:3:53","nodeType":"YulTypedName","src":"2955:3:53","type":""}],"src":"2895:118:53"},{"body":{"nativeSrc":"3117:124:53","nodeType":"YulBlock","src":"3117:124:53","statements":[{"nativeSrc":"3127:26:53","nodeType":"YulAssignment","src":"3127:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3139:9:53","nodeType":"YulIdentifier","src":"3139:9:53"},{"kind":"number","nativeSrc":"3150:2:53","nodeType":"YulLiteral","src":"3150:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3135:3:53","nodeType":"YulIdentifier","src":"3135:3:53"},"nativeSrc":"3135:18:53","nodeType":"YulFunctionCall","src":"3135:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3127:4:53","nodeType":"YulIdentifier","src":"3127:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3207:6:53","nodeType":"YulIdentifier","src":"3207:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3220:9:53","nodeType":"YulIdentifier","src":"3220:9:53"},{"kind":"number","nativeSrc":"3231:1:53","nodeType":"YulLiteral","src":"3231:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3216:3:53","nodeType":"YulIdentifier","src":"3216:3:53"},"nativeSrc":"3216:17:53","nodeType":"YulFunctionCall","src":"3216:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3163:43:53","nodeType":"YulIdentifier","src":"3163:43:53"},"nativeSrc":"3163:71:53","nodeType":"YulFunctionCall","src":"3163:71:53"},"nativeSrc":"3163:71:53","nodeType":"YulExpressionStatement","src":"3163:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3019:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3089:9:53","nodeType":"YulTypedName","src":"3089:9:53","type":""},{"name":"value0","nativeSrc":"3101:6:53","nodeType":"YulTypedName","src":"3101:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3112:4:53","nodeType":"YulTypedName","src":"3112:4:53","type":""}],"src":"3019:222:53"},{"body":{"nativeSrc":"3336:28:53","nodeType":"YulBlock","src":"3336:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3353:1:53","nodeType":"YulLiteral","src":"3353:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3356:1:53","nodeType":"YulLiteral","src":"3356:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3346:6:53","nodeType":"YulIdentifier","src":"3346:6:53"},"nativeSrc":"3346:12:53","nodeType":"YulFunctionCall","src":"3346:12:53"},"nativeSrc":"3346:12:53","nodeType":"YulExpressionStatement","src":"3346:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3247:117:53","nodeType":"YulFunctionDefinition","src":"3247:117:53"},{"body":{"nativeSrc":"3459:28:53","nodeType":"YulBlock","src":"3459:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3476:1:53","nodeType":"YulLiteral","src":"3476:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3479:1:53","nodeType":"YulLiteral","src":"3479:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3469:6:53","nodeType":"YulIdentifier","src":"3469:6:53"},"nativeSrc":"3469:12:53","nodeType":"YulFunctionCall","src":"3469:12:53"},"nativeSrc":"3469:12:53","nodeType":"YulExpressionStatement","src":"3469:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3370:117:53","nodeType":"YulFunctionDefinition","src":"3370:117:53"},{"body":{"nativeSrc":"3582:28:53","nodeType":"YulBlock","src":"3582:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3599:1:53","nodeType":"YulLiteral","src":"3599:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3602:1:53","nodeType":"YulLiteral","src":"3602:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3592:6:53","nodeType":"YulIdentifier","src":"3592:6:53"},"nativeSrc":"3592:12:53","nodeType":"YulFunctionCall","src":"3592:12:53"},"nativeSrc":"3592:12:53","nodeType":"YulExpressionStatement","src":"3592:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3493:117:53","nodeType":"YulFunctionDefinition","src":"3493:117:53"},{"body":{"nativeSrc":"3723:478:53","nodeType":"YulBlock","src":"3723:478:53","statements":[{"body":{"nativeSrc":"3772:83:53","nodeType":"YulBlock","src":"3772:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3774:77:53","nodeType":"YulIdentifier","src":"3774:77:53"},"nativeSrc":"3774:79:53","nodeType":"YulFunctionCall","src":"3774:79:53"},"nativeSrc":"3774:79:53","nodeType":"YulExpressionStatement","src":"3774:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3751:6:53","nodeType":"YulIdentifier","src":"3751:6:53"},{"kind":"number","nativeSrc":"3759:4:53","nodeType":"YulLiteral","src":"3759:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3747:3:53","nodeType":"YulIdentifier","src":"3747:3:53"},"nativeSrc":"3747:17:53","nodeType":"YulFunctionCall","src":"3747:17:53"},{"name":"end","nativeSrc":"3766:3:53","nodeType":"YulIdentifier","src":"3766:3:53"}],"functionName":{"name":"slt","nativeSrc":"3743:3:53","nodeType":"YulIdentifier","src":"3743:3:53"},"nativeSrc":"3743:27:53","nodeType":"YulFunctionCall","src":"3743:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3736:6:53","nodeType":"YulIdentifier","src":"3736:6:53"},"nativeSrc":"3736:35:53","nodeType":"YulFunctionCall","src":"3736:35:53"},"nativeSrc":"3733:122:53","nodeType":"YulIf","src":"3733:122:53"},{"nativeSrc":"3864:30:53","nodeType":"YulAssignment","src":"3864:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3887:6:53","nodeType":"YulIdentifier","src":"3887:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3874:12:53","nodeType":"YulIdentifier","src":"3874:12:53"},"nativeSrc":"3874:20:53","nodeType":"YulFunctionCall","src":"3874:20:53"},"variableNames":[{"name":"length","nativeSrc":"3864:6:53","nodeType":"YulIdentifier","src":"3864:6:53"}]},{"body":{"nativeSrc":"3937:83:53","nodeType":"YulBlock","src":"3937:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3939:77:53","nodeType":"YulIdentifier","src":"3939:77:53"},"nativeSrc":"3939:79:53","nodeType":"YulFunctionCall","src":"3939:79:53"},"nativeSrc":"3939:79:53","nodeType":"YulExpressionStatement","src":"3939:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3909:6:53","nodeType":"YulIdentifier","src":"3909:6:53"},{"kind":"number","nativeSrc":"3917:18:53","nodeType":"YulLiteral","src":"3917:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3906:2:53","nodeType":"YulIdentifier","src":"3906:2:53"},"nativeSrc":"3906:30:53","nodeType":"YulFunctionCall","src":"3906:30:53"},"nativeSrc":"3903:117:53","nodeType":"YulIf","src":"3903:117:53"},{"nativeSrc":"4029:29:53","nodeType":"YulAssignment","src":"4029:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4045:6:53","nodeType":"YulIdentifier","src":"4045:6:53"},{"kind":"number","nativeSrc":"4053:4:53","nodeType":"YulLiteral","src":"4053:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4041:3:53","nodeType":"YulIdentifier","src":"4041:3:53"},"nativeSrc":"4041:17:53","nodeType":"YulFunctionCall","src":"4041:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4029:8:53","nodeType":"YulIdentifier","src":"4029:8:53"}]},{"body":{"nativeSrc":"4112:83:53","nodeType":"YulBlock","src":"4112:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4114:77:53","nodeType":"YulIdentifier","src":"4114:77:53"},"nativeSrc":"4114:79:53","nodeType":"YulFunctionCall","src":"4114:79:53"},"nativeSrc":"4114:79:53","nodeType":"YulExpressionStatement","src":"4114:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4077:8:53","nodeType":"YulIdentifier","src":"4077:8:53"},{"arguments":[{"name":"length","nativeSrc":"4091:6:53","nodeType":"YulIdentifier","src":"4091:6:53"},{"kind":"number","nativeSrc":"4099:4:53","nodeType":"YulLiteral","src":"4099:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4087:3:53","nodeType":"YulIdentifier","src":"4087:3:53"},"nativeSrc":"4087:17:53","nodeType":"YulFunctionCall","src":"4087:17:53"}],"functionName":{"name":"add","nativeSrc":"4073:3:53","nodeType":"YulIdentifier","src":"4073:3:53"},"nativeSrc":"4073:32:53","nodeType":"YulFunctionCall","src":"4073:32:53"},{"name":"end","nativeSrc":"4107:3:53","nodeType":"YulIdentifier","src":"4107:3:53"}],"functionName":{"name":"gt","nativeSrc":"4070:2:53","nodeType":"YulIdentifier","src":"4070:2:53"},"nativeSrc":"4070:41:53","nodeType":"YulFunctionCall","src":"4070:41:53"},"nativeSrc":"4067:128:53","nodeType":"YulIf","src":"4067:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3633:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3690:6:53","nodeType":"YulTypedName","src":"3690:6:53","type":""},{"name":"end","nativeSrc":"3698:3:53","nodeType":"YulTypedName","src":"3698:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3706:8:53","nodeType":"YulTypedName","src":"3706:8:53","type":""},{"name":"length","nativeSrc":"3716:6:53","nodeType":"YulTypedName","src":"3716:6:53","type":""}],"src":"3633:568:53"},{"body":{"nativeSrc":"4308:478:53","nodeType":"YulBlock","src":"4308:478:53","statements":[{"body":{"nativeSrc":"4357:83:53","nodeType":"YulBlock","src":"4357:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4359:77:53","nodeType":"YulIdentifier","src":"4359:77:53"},"nativeSrc":"4359:79:53","nodeType":"YulFunctionCall","src":"4359:79:53"},"nativeSrc":"4359:79:53","nodeType":"YulExpressionStatement","src":"4359:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4336:6:53","nodeType":"YulIdentifier","src":"4336:6:53"},{"kind":"number","nativeSrc":"4344:4:53","nodeType":"YulLiteral","src":"4344:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4332:3:53","nodeType":"YulIdentifier","src":"4332:3:53"},"nativeSrc":"4332:17:53","nodeType":"YulFunctionCall","src":"4332:17:53"},{"name":"end","nativeSrc":"4351:3:53","nodeType":"YulIdentifier","src":"4351:3:53"}],"functionName":{"name":"slt","nativeSrc":"4328:3:53","nodeType":"YulIdentifier","src":"4328:3:53"},"nativeSrc":"4328:27:53","nodeType":"YulFunctionCall","src":"4328:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4321:6:53","nodeType":"YulIdentifier","src":"4321:6:53"},"nativeSrc":"4321:35:53","nodeType":"YulFunctionCall","src":"4321:35:53"},"nativeSrc":"4318:122:53","nodeType":"YulIf","src":"4318:122:53"},{"nativeSrc":"4449:30:53","nodeType":"YulAssignment","src":"4449:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4472:6:53","nodeType":"YulIdentifier","src":"4472:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4459:12:53","nodeType":"YulIdentifier","src":"4459:12:53"},"nativeSrc":"4459:20:53","nodeType":"YulFunctionCall","src":"4459:20:53"},"variableNames":[{"name":"length","nativeSrc":"4449:6:53","nodeType":"YulIdentifier","src":"4449:6:53"}]},{"body":{"nativeSrc":"4522:83:53","nodeType":"YulBlock","src":"4522:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4524:77:53","nodeType":"YulIdentifier","src":"4524:77:53"},"nativeSrc":"4524:79:53","nodeType":"YulFunctionCall","src":"4524:79:53"},"nativeSrc":"4524:79:53","nodeType":"YulExpressionStatement","src":"4524:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4494:6:53","nodeType":"YulIdentifier","src":"4494:6:53"},{"kind":"number","nativeSrc":"4502:18:53","nodeType":"YulLiteral","src":"4502:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4491:2:53","nodeType":"YulIdentifier","src":"4491:2:53"},"nativeSrc":"4491:30:53","nodeType":"YulFunctionCall","src":"4491:30:53"},"nativeSrc":"4488:117:53","nodeType":"YulIf","src":"4488:117:53"},{"nativeSrc":"4614:29:53","nodeType":"YulAssignment","src":"4614:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4630:6:53","nodeType":"YulIdentifier","src":"4630:6:53"},{"kind":"number","nativeSrc":"4638:4:53","nodeType":"YulLiteral","src":"4638:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4626:3:53","nodeType":"YulIdentifier","src":"4626:3:53"},"nativeSrc":"4626:17:53","nodeType":"YulFunctionCall","src":"4626:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4614:8:53","nodeType":"YulIdentifier","src":"4614:8:53"}]},{"body":{"nativeSrc":"4697:83:53","nodeType":"YulBlock","src":"4697:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4699:77:53","nodeType":"YulIdentifier","src":"4699:77:53"},"nativeSrc":"4699:79:53","nodeType":"YulFunctionCall","src":"4699:79:53"},"nativeSrc":"4699:79:53","nodeType":"YulExpressionStatement","src":"4699:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4662:8:53","nodeType":"YulIdentifier","src":"4662:8:53"},{"arguments":[{"name":"length","nativeSrc":"4676:6:53","nodeType":"YulIdentifier","src":"4676:6:53"},{"kind":"number","nativeSrc":"4684:4:53","nodeType":"YulLiteral","src":"4684:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4672:3:53","nodeType":"YulIdentifier","src":"4672:3:53"},"nativeSrc":"4672:17:53","nodeType":"YulFunctionCall","src":"4672:17:53"}],"functionName":{"name":"add","nativeSrc":"4658:3:53","nodeType":"YulIdentifier","src":"4658:3:53"},"nativeSrc":"4658:32:53","nodeType":"YulFunctionCall","src":"4658:32:53"},{"name":"end","nativeSrc":"4692:3:53","nodeType":"YulIdentifier","src":"4692:3:53"}],"functionName":{"name":"gt","nativeSrc":"4655:2:53","nodeType":"YulIdentifier","src":"4655:2:53"},"nativeSrc":"4655:41:53","nodeType":"YulFunctionCall","src":"4655:41:53"},"nativeSrc":"4652:128:53","nodeType":"YulIf","src":"4652:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4221:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4275:6:53","nodeType":"YulTypedName","src":"4275:6:53","type":""},{"name":"end","nativeSrc":"4283:3:53","nodeType":"YulTypedName","src":"4283:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4291:8:53","nodeType":"YulTypedName","src":"4291:8:53","type":""},{"name":"length","nativeSrc":"4301:6:53","nodeType":"YulTypedName","src":"4301:6:53","type":""}],"src":"4221:565:53"},{"body":{"nativeSrc":"4942:778:53","nodeType":"YulBlock","src":"4942:778:53","statements":[{"body":{"nativeSrc":"4988:83:53","nodeType":"YulBlock","src":"4988:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4990:77:53","nodeType":"YulIdentifier","src":"4990:77:53"},"nativeSrc":"4990:79:53","nodeType":"YulFunctionCall","src":"4990:79:53"},"nativeSrc":"4990:79:53","nodeType":"YulExpressionStatement","src":"4990:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4963:7:53","nodeType":"YulIdentifier","src":"4963:7:53"},{"name":"headStart","nativeSrc":"4972:9:53","nodeType":"YulIdentifier","src":"4972:9:53"}],"functionName":{"name":"sub","nativeSrc":"4959:3:53","nodeType":"YulIdentifier","src":"4959:3:53"},"nativeSrc":"4959:23:53","nodeType":"YulFunctionCall","src":"4959:23:53"},{"kind":"number","nativeSrc":"4984:2:53","nodeType":"YulLiteral","src":"4984:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4955:3:53","nodeType":"YulIdentifier","src":"4955:3:53"},"nativeSrc":"4955:32:53","nodeType":"YulFunctionCall","src":"4955:32:53"},"nativeSrc":"4952:119:53","nodeType":"YulIf","src":"4952:119:53"},{"nativeSrc":"5081:312:53","nodeType":"YulBlock","src":"5081:312:53","statements":[{"nativeSrc":"5096:45:53","nodeType":"YulVariableDeclaration","src":"5096:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5127:9:53","nodeType":"YulIdentifier","src":"5127:9:53"},{"kind":"number","nativeSrc":"5138:1:53","nodeType":"YulLiteral","src":"5138:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5123:3:53","nodeType":"YulIdentifier","src":"5123:3:53"},"nativeSrc":"5123:17:53","nodeType":"YulFunctionCall","src":"5123:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"5110:12:53","nodeType":"YulIdentifier","src":"5110:12:53"},"nativeSrc":"5110:31:53","nodeType":"YulFunctionCall","src":"5110:31:53"},"variables":[{"name":"offset","nativeSrc":"5100:6:53","nodeType":"YulTypedName","src":"5100:6:53","type":""}]},{"body":{"nativeSrc":"5188:83:53","nodeType":"YulBlock","src":"5188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5190:77:53","nodeType":"YulIdentifier","src":"5190:77:53"},"nativeSrc":"5190:79:53","nodeType":"YulFunctionCall","src":"5190:79:53"},"nativeSrc":"5190:79:53","nodeType":"YulExpressionStatement","src":"5190:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5160:6:53","nodeType":"YulIdentifier","src":"5160:6:53"},{"kind":"number","nativeSrc":"5168:18:53","nodeType":"YulLiteral","src":"5168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5157:2:53","nodeType":"YulIdentifier","src":"5157:2:53"},"nativeSrc":"5157:30:53","nodeType":"YulFunctionCall","src":"5157:30:53"},"nativeSrc":"5154:117:53","nodeType":"YulIf","src":"5154:117:53"},{"nativeSrc":"5285:98:53","nodeType":"YulAssignment","src":"5285:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5355:9:53","nodeType":"YulIdentifier","src":"5355:9:53"},{"name":"offset","nativeSrc":"5366:6:53","nodeType":"YulIdentifier","src":"5366:6:53"}],"functionName":{"name":"add","nativeSrc":"5351:3:53","nodeType":"YulIdentifier","src":"5351:3:53"},"nativeSrc":"5351:22:53","nodeType":"YulFunctionCall","src":"5351:22:53"},{"name":"dataEnd","nativeSrc":"5375:7:53","nodeType":"YulIdentifier","src":"5375:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"5303:47:53","nodeType":"YulIdentifier","src":"5303:47:53"},"nativeSrc":"5303:80:53","nodeType":"YulFunctionCall","src":"5303:80:53"},"variableNames":[{"name":"value0","nativeSrc":"5285:6:53","nodeType":"YulIdentifier","src":"5285:6:53"},{"name":"value1","nativeSrc":"5293:6:53","nodeType":"YulIdentifier","src":"5293:6:53"}]}]},{"nativeSrc":"5403:310:53","nodeType":"YulBlock","src":"5403:310:53","statements":[{"nativeSrc":"5418:46:53","nodeType":"YulVariableDeclaration","src":"5418:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5449:9:53","nodeType":"YulIdentifier","src":"5449:9:53"},{"kind":"number","nativeSrc":"5460:2:53","nodeType":"YulLiteral","src":"5460:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5445:3:53","nodeType":"YulIdentifier","src":"5445:3:53"},"nativeSrc":"5445:18:53","nodeType":"YulFunctionCall","src":"5445:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"5432:12:53","nodeType":"YulIdentifier","src":"5432:12:53"},"nativeSrc":"5432:32:53","nodeType":"YulFunctionCall","src":"5432:32:53"},"variables":[{"name":"offset","nativeSrc":"5422:6:53","nodeType":"YulTypedName","src":"5422:6:53","type":""}]},{"body":{"nativeSrc":"5511:83:53","nodeType":"YulBlock","src":"5511:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5513:77:53","nodeType":"YulIdentifier","src":"5513:77:53"},"nativeSrc":"5513:79:53","nodeType":"YulFunctionCall","src":"5513:79:53"},"nativeSrc":"5513:79:53","nodeType":"YulExpressionStatement","src":"5513:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5483:6:53","nodeType":"YulIdentifier","src":"5483:6:53"},{"kind":"number","nativeSrc":"5491:18:53","nodeType":"YulLiteral","src":"5491:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5480:2:53","nodeType":"YulIdentifier","src":"5480:2:53"},"nativeSrc":"5480:30:53","nodeType":"YulFunctionCall","src":"5480:30:53"},"nativeSrc":"5477:117:53","nodeType":"YulIf","src":"5477:117:53"},{"nativeSrc":"5608:95:53","nodeType":"YulAssignment","src":"5608:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5675:9:53","nodeType":"YulIdentifier","src":"5675:9:53"},{"name":"offset","nativeSrc":"5686:6:53","nodeType":"YulIdentifier","src":"5686:6:53"}],"functionName":{"name":"add","nativeSrc":"5671:3:53","nodeType":"YulIdentifier","src":"5671:3:53"},"nativeSrc":"5671:22:53","nodeType":"YulFunctionCall","src":"5671:22:53"},{"name":"dataEnd","nativeSrc":"5695:7:53","nodeType":"YulIdentifier","src":"5695:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5626:44:53","nodeType":"YulIdentifier","src":"5626:44:53"},"nativeSrc":"5626:77:53","nodeType":"YulFunctionCall","src":"5626:77:53"},"variableNames":[{"name":"value2","nativeSrc":"5608:6:53","nodeType":"YulIdentifier","src":"5608:6:53"},{"name":"value3","nativeSrc":"5616:6:53","nodeType":"YulIdentifier","src":"5616:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4792:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4888:9:53","nodeType":"YulTypedName","src":"4888:9:53","type":""},{"name":"dataEnd","nativeSrc":"4899:7:53","nodeType":"YulTypedName","src":"4899:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4911:6:53","nodeType":"YulTypedName","src":"4911:6:53","type":""},{"name":"value1","nativeSrc":"4919:6:53","nodeType":"YulTypedName","src":"4919:6:53","type":""},{"name":"value2","nativeSrc":"4927:6:53","nodeType":"YulTypedName","src":"4927:6:53","type":""},{"name":"value3","nativeSrc":"4935:6:53","nodeType":"YulTypedName","src":"4935:6:53","type":""}],"src":"4792:928:53"},{"body":{"nativeSrc":"5813:478:53","nodeType":"YulBlock","src":"5813:478:53","statements":[{"body":{"nativeSrc":"5862:83:53","nodeType":"YulBlock","src":"5862:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5864:77:53","nodeType":"YulIdentifier","src":"5864:77:53"},"nativeSrc":"5864:79:53","nodeType":"YulFunctionCall","src":"5864:79:53"},"nativeSrc":"5864:79:53","nodeType":"YulExpressionStatement","src":"5864:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5841:6:53","nodeType":"YulIdentifier","src":"5841:6:53"},{"kind":"number","nativeSrc":"5849:4:53","nodeType":"YulLiteral","src":"5849:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5837:3:53","nodeType":"YulIdentifier","src":"5837:3:53"},"nativeSrc":"5837:17:53","nodeType":"YulFunctionCall","src":"5837:17:53"},{"name":"end","nativeSrc":"5856:3:53","nodeType":"YulIdentifier","src":"5856:3:53"}],"functionName":{"name":"slt","nativeSrc":"5833:3:53","nodeType":"YulIdentifier","src":"5833:3:53"},"nativeSrc":"5833:27:53","nodeType":"YulFunctionCall","src":"5833:27:53"}],"functionName":{"name":"iszero","nativeSrc":"5826:6:53","nodeType":"YulIdentifier","src":"5826:6:53"},"nativeSrc":"5826:35:53","nodeType":"YulFunctionCall","src":"5826:35:53"},"nativeSrc":"5823:122:53","nodeType":"YulIf","src":"5823:122:53"},{"nativeSrc":"5954:30:53","nodeType":"YulAssignment","src":"5954:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"5977:6:53","nodeType":"YulIdentifier","src":"5977:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5964:12:53","nodeType":"YulIdentifier","src":"5964:12:53"},"nativeSrc":"5964:20:53","nodeType":"YulFunctionCall","src":"5964:20:53"},"variableNames":[{"name":"length","nativeSrc":"5954:6:53","nodeType":"YulIdentifier","src":"5954:6:53"}]},{"body":{"nativeSrc":"6027:83:53","nodeType":"YulBlock","src":"6027:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6029:77:53","nodeType":"YulIdentifier","src":"6029:77:53"},"nativeSrc":"6029:79:53","nodeType":"YulFunctionCall","src":"6029:79:53"},"nativeSrc":"6029:79:53","nodeType":"YulExpressionStatement","src":"6029:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5999:6:53","nodeType":"YulIdentifier","src":"5999:6:53"},{"kind":"number","nativeSrc":"6007:18:53","nodeType":"YulLiteral","src":"6007:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5996:2:53","nodeType":"YulIdentifier","src":"5996:2:53"},"nativeSrc":"5996:30:53","nodeType":"YulFunctionCall","src":"5996:30:53"},"nativeSrc":"5993:117:53","nodeType":"YulIf","src":"5993:117:53"},{"nativeSrc":"6119:29:53","nodeType":"YulAssignment","src":"6119:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6135:6:53","nodeType":"YulIdentifier","src":"6135:6:53"},{"kind":"number","nativeSrc":"6143:4:53","nodeType":"YulLiteral","src":"6143:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6131:3:53","nodeType":"YulIdentifier","src":"6131:3:53"},"nativeSrc":"6131:17:53","nodeType":"YulFunctionCall","src":"6131:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"6119:8:53","nodeType":"YulIdentifier","src":"6119:8:53"}]},{"body":{"nativeSrc":"6202:83:53","nodeType":"YulBlock","src":"6202:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6204:77:53","nodeType":"YulIdentifier","src":"6204:77:53"},"nativeSrc":"6204:79:53","nodeType":"YulFunctionCall","src":"6204:79:53"},"nativeSrc":"6204:79:53","nodeType":"YulExpressionStatement","src":"6204:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6167:8:53","nodeType":"YulIdentifier","src":"6167:8:53"},{"arguments":[{"name":"length","nativeSrc":"6181:6:53","nodeType":"YulIdentifier","src":"6181:6:53"},{"kind":"number","nativeSrc":"6189:4:53","nodeType":"YulLiteral","src":"6189:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"6177:3:53","nodeType":"YulIdentifier","src":"6177:3:53"},"nativeSrc":"6177:17:53","nodeType":"YulFunctionCall","src":"6177:17:53"}],"functionName":{"name":"add","nativeSrc":"6163:3:53","nodeType":"YulIdentifier","src":"6163:3:53"},"nativeSrc":"6163:32:53","nodeType":"YulFunctionCall","src":"6163:32:53"},{"name":"end","nativeSrc":"6197:3:53","nodeType":"YulIdentifier","src":"6197:3:53"}],"functionName":{"name":"gt","nativeSrc":"6160:2:53","nodeType":"YulIdentifier","src":"6160:2:53"},"nativeSrc":"6160:41:53","nodeType":"YulFunctionCall","src":"6160:41:53"},"nativeSrc":"6157:128:53","nodeType":"YulIf","src":"6157:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5739:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5780:6:53","nodeType":"YulTypedName","src":"5780:6:53","type":""},{"name":"end","nativeSrc":"5788:3:53","nodeType":"YulTypedName","src":"5788:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"5796:8:53","nodeType":"YulTypedName","src":"5796:8:53","type":""},{"name":"length","nativeSrc":"5806:6:53","nodeType":"YulTypedName","src":"5806:6:53","type":""}],"src":"5739:552:53"},{"body":{"nativeSrc":"6382:442:53","nodeType":"YulBlock","src":"6382:442:53","statements":[{"body":{"nativeSrc":"6428:83:53","nodeType":"YulBlock","src":"6428:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6430:77:53","nodeType":"YulIdentifier","src":"6430:77:53"},"nativeSrc":"6430:79:53","nodeType":"YulFunctionCall","src":"6430:79:53"},"nativeSrc":"6430:79:53","nodeType":"YulExpressionStatement","src":"6430:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6403:7:53","nodeType":"YulIdentifier","src":"6403:7:53"},{"name":"headStart","nativeSrc":"6412:9:53","nodeType":"YulIdentifier","src":"6412:9:53"}],"functionName":{"name":"sub","nativeSrc":"6399:3:53","nodeType":"YulIdentifier","src":"6399:3:53"},"nativeSrc":"6399:23:53","nodeType":"YulFunctionCall","src":"6399:23:53"},{"kind":"number","nativeSrc":"6424:2:53","nodeType":"YulLiteral","src":"6424:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6395:3:53","nodeType":"YulIdentifier","src":"6395:3:53"},"nativeSrc":"6395:32:53","nodeType":"YulFunctionCall","src":"6395:32:53"},"nativeSrc":"6392:119:53","nodeType":"YulIf","src":"6392:119:53"},{"nativeSrc":"6521:296:53","nodeType":"YulBlock","src":"6521:296:53","statements":[{"nativeSrc":"6536:45:53","nodeType":"YulVariableDeclaration","src":"6536:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6567:9:53","nodeType":"YulIdentifier","src":"6567:9:53"},{"kind":"number","nativeSrc":"6578:1:53","nodeType":"YulLiteral","src":"6578:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6563:3:53","nodeType":"YulIdentifier","src":"6563:3:53"},"nativeSrc":"6563:17:53","nodeType":"YulFunctionCall","src":"6563:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"6550:12:53","nodeType":"YulIdentifier","src":"6550:12:53"},"nativeSrc":"6550:31:53","nodeType":"YulFunctionCall","src":"6550:31:53"},"variables":[{"name":"offset","nativeSrc":"6540:6:53","nodeType":"YulTypedName","src":"6540:6:53","type":""}]},{"body":{"nativeSrc":"6628:83:53","nodeType":"YulBlock","src":"6628:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6630:77:53","nodeType":"YulIdentifier","src":"6630:77:53"},"nativeSrc":"6630:79:53","nodeType":"YulFunctionCall","src":"6630:79:53"},"nativeSrc":"6630:79:53","nodeType":"YulExpressionStatement","src":"6630:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6600:6:53","nodeType":"YulIdentifier","src":"6600:6:53"},{"kind":"number","nativeSrc":"6608:18:53","nodeType":"YulLiteral","src":"6608:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6597:2:53","nodeType":"YulIdentifier","src":"6597:2:53"},"nativeSrc":"6597:30:53","nodeType":"YulFunctionCall","src":"6597:30:53"},"nativeSrc":"6594:117:53","nodeType":"YulIf","src":"6594:117:53"},{"nativeSrc":"6725:82:53","nodeType":"YulAssignment","src":"6725:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6779:9:53","nodeType":"YulIdentifier","src":"6779:9:53"},{"name":"offset","nativeSrc":"6790:6:53","nodeType":"YulIdentifier","src":"6790:6:53"}],"functionName":{"name":"add","nativeSrc":"6775:3:53","nodeType":"YulIdentifier","src":"6775:3:53"},"nativeSrc":"6775:22:53","nodeType":"YulFunctionCall","src":"6775:22:53"},{"name":"dataEnd","nativeSrc":"6799:7:53","nodeType":"YulIdentifier","src":"6799:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6743:31:53","nodeType":"YulIdentifier","src":"6743:31:53"},"nativeSrc":"6743:64:53","nodeType":"YulFunctionCall","src":"6743:64:53"},"variableNames":[{"name":"value0","nativeSrc":"6725:6:53","nodeType":"YulIdentifier","src":"6725:6:53"},{"name":"value1","nativeSrc":"6733:6:53","nodeType":"YulIdentifier","src":"6733:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"6297:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6344:9:53","nodeType":"YulTypedName","src":"6344:9:53","type":""},{"name":"dataEnd","nativeSrc":"6355:7:53","nodeType":"YulTypedName","src":"6355:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6367:6:53","nodeType":"YulTypedName","src":"6367:6:53","type":""},{"name":"value1","nativeSrc":"6375:6:53","nodeType":"YulTypedName","src":"6375:6:53","type":""}],"src":"6297:527:53"},{"body":{"nativeSrc":"6946:478:53","nodeType":"YulBlock","src":"6946:478:53","statements":[{"body":{"nativeSrc":"6995:83:53","nodeType":"YulBlock","src":"6995:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6997:77:53","nodeType":"YulIdentifier","src":"6997:77:53"},"nativeSrc":"6997:79:53","nodeType":"YulFunctionCall","src":"6997:79:53"},"nativeSrc":"6997:79:53","nodeType":"YulExpressionStatement","src":"6997:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6974:6:53","nodeType":"YulIdentifier","src":"6974:6:53"},{"kind":"number","nativeSrc":"6982:4:53","nodeType":"YulLiteral","src":"6982:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6970:3:53","nodeType":"YulIdentifier","src":"6970:3:53"},"nativeSrc":"6970:17:53","nodeType":"YulFunctionCall","src":"6970:17:53"},{"name":"end","nativeSrc":"6989:3:53","nodeType":"YulIdentifier","src":"6989:3:53"}],"functionName":{"name":"slt","nativeSrc":"6966:3:53","nodeType":"YulIdentifier","src":"6966:3:53"},"nativeSrc":"6966:27:53","nodeType":"YulFunctionCall","src":"6966:27:53"}],"functionName":{"name":"iszero","nativeSrc":"6959:6:53","nodeType":"YulIdentifier","src":"6959:6:53"},"nativeSrc":"6959:35:53","nodeType":"YulFunctionCall","src":"6959:35:53"},"nativeSrc":"6956:122:53","nodeType":"YulIf","src":"6956:122:53"},{"nativeSrc":"7087:30:53","nodeType":"YulAssignment","src":"7087:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"7110:6:53","nodeType":"YulIdentifier","src":"7110:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7097:12:53","nodeType":"YulIdentifier","src":"7097:12:53"},"nativeSrc":"7097:20:53","nodeType":"YulFunctionCall","src":"7097:20:53"},"variableNames":[{"name":"length","nativeSrc":"7087:6:53","nodeType":"YulIdentifier","src":"7087:6:53"}]},{"body":{"nativeSrc":"7160:83:53","nodeType":"YulBlock","src":"7160:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7162:77:53","nodeType":"YulIdentifier","src":"7162:77:53"},"nativeSrc":"7162:79:53","nodeType":"YulFunctionCall","src":"7162:79:53"},"nativeSrc":"7162:79:53","nodeType":"YulExpressionStatement","src":"7162:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7132:6:53","nodeType":"YulIdentifier","src":"7132:6:53"},{"kind":"number","nativeSrc":"7140:18:53","nodeType":"YulLiteral","src":"7140:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7129:2:53","nodeType":"YulIdentifier","src":"7129:2:53"},"nativeSrc":"7129:30:53","nodeType":"YulFunctionCall","src":"7129:30:53"},"nativeSrc":"7126:117:53","nodeType":"YulIf","src":"7126:117:53"},{"nativeSrc":"7252:29:53","nodeType":"YulAssignment","src":"7252:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7268:6:53","nodeType":"YulIdentifier","src":"7268:6:53"},{"kind":"number","nativeSrc":"7276:4:53","nodeType":"YulLiteral","src":"7276:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7264:3:53","nodeType":"YulIdentifier","src":"7264:3:53"},"nativeSrc":"7264:17:53","nodeType":"YulFunctionCall","src":"7264:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"7252:8:53","nodeType":"YulIdentifier","src":"7252:8:53"}]},{"body":{"nativeSrc":"7335:83:53","nodeType":"YulBlock","src":"7335:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7337:77:53","nodeType":"YulIdentifier","src":"7337:77:53"},"nativeSrc":"7337:79:53","nodeType":"YulFunctionCall","src":"7337:79:53"},"nativeSrc":"7337:79:53","nodeType":"YulExpressionStatement","src":"7337:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7300:8:53","nodeType":"YulIdentifier","src":"7300:8:53"},{"arguments":[{"name":"length","nativeSrc":"7314:6:53","nodeType":"YulIdentifier","src":"7314:6:53"},{"kind":"number","nativeSrc":"7322:4:53","nodeType":"YulLiteral","src":"7322:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7310:3:53","nodeType":"YulIdentifier","src":"7310:3:53"},"nativeSrc":"7310:17:53","nodeType":"YulFunctionCall","src":"7310:17:53"}],"functionName":{"name":"add","nativeSrc":"7296:3:53","nodeType":"YulIdentifier","src":"7296:3:53"},"nativeSrc":"7296:32:53","nodeType":"YulFunctionCall","src":"7296:32:53"},{"name":"end","nativeSrc":"7330:3:53","nodeType":"YulIdentifier","src":"7330:3:53"}],"functionName":{"name":"gt","nativeSrc":"7293:2:53","nodeType":"YulIdentifier","src":"7293:2:53"},"nativeSrc":"7293:41:53","nodeType":"YulFunctionCall","src":"7293:41:53"},"nativeSrc":"7290:128:53","nodeType":"YulIf","src":"7290:128:53"}]},"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"6845:579:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6913:6:53","nodeType":"YulTypedName","src":"6913:6:53","type":""},{"name":"end","nativeSrc":"6921:3:53","nodeType":"YulTypedName","src":"6921:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6929:8:53","nodeType":"YulTypedName","src":"6929:8:53","type":""},{"name":"length","nativeSrc":"6939:6:53","nodeType":"YulTypedName","src":"6939:6:53","type":""}],"src":"6845:579:53"},{"body":{"nativeSrc":"7542:469:53","nodeType":"YulBlock","src":"7542:469:53","statements":[{"body":{"nativeSrc":"7588:83:53","nodeType":"YulBlock","src":"7588:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7590:77:53","nodeType":"YulIdentifier","src":"7590:77:53"},"nativeSrc":"7590:79:53","nodeType":"YulFunctionCall","src":"7590:79:53"},"nativeSrc":"7590:79:53","nodeType":"YulExpressionStatement","src":"7590:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7563:7:53","nodeType":"YulIdentifier","src":"7563:7:53"},{"name":"headStart","nativeSrc":"7572:9:53","nodeType":"YulIdentifier","src":"7572:9:53"}],"functionName":{"name":"sub","nativeSrc":"7559:3:53","nodeType":"YulIdentifier","src":"7559:3:53"},"nativeSrc":"7559:23:53","nodeType":"YulFunctionCall","src":"7559:23:53"},{"kind":"number","nativeSrc":"7584:2:53","nodeType":"YulLiteral","src":"7584:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7555:3:53","nodeType":"YulIdentifier","src":"7555:3:53"},"nativeSrc":"7555:32:53","nodeType":"YulFunctionCall","src":"7555:32:53"},"nativeSrc":"7552:119:53","nodeType":"YulIf","src":"7552:119:53"},{"nativeSrc":"7681:323:53","nodeType":"YulBlock","src":"7681:323:53","statements":[{"nativeSrc":"7696:45:53","nodeType":"YulVariableDeclaration","src":"7696:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7727:9:53","nodeType":"YulIdentifier","src":"7727:9:53"},{"kind":"number","nativeSrc":"7738:1:53","nodeType":"YulLiteral","src":"7738:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7723:3:53","nodeType":"YulIdentifier","src":"7723:3:53"},"nativeSrc":"7723:17:53","nodeType":"YulFunctionCall","src":"7723:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"7710:12:53","nodeType":"YulIdentifier","src":"7710:12:53"},"nativeSrc":"7710:31:53","nodeType":"YulFunctionCall","src":"7710:31:53"},"variables":[{"name":"offset","nativeSrc":"7700:6:53","nodeType":"YulTypedName","src":"7700:6:53","type":""}]},{"body":{"nativeSrc":"7788:83:53","nodeType":"YulBlock","src":"7788:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7790:77:53","nodeType":"YulIdentifier","src":"7790:77:53"},"nativeSrc":"7790:79:53","nodeType":"YulFunctionCall","src":"7790:79:53"},"nativeSrc":"7790:79:53","nodeType":"YulExpressionStatement","src":"7790:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7760:6:53","nodeType":"YulIdentifier","src":"7760:6:53"},{"kind":"number","nativeSrc":"7768:18:53","nodeType":"YulLiteral","src":"7768:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7757:2:53","nodeType":"YulIdentifier","src":"7757:2:53"},"nativeSrc":"7757:30:53","nodeType":"YulFunctionCall","src":"7757:30:53"},"nativeSrc":"7754:117:53","nodeType":"YulIf","src":"7754:117:53"},{"nativeSrc":"7885:109:53","nodeType":"YulAssignment","src":"7885:109:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7966:9:53","nodeType":"YulIdentifier","src":"7966:9:53"},{"name":"offset","nativeSrc":"7977:6:53","nodeType":"YulIdentifier","src":"7977:6:53"}],"functionName":{"name":"add","nativeSrc":"7962:3:53","nodeType":"YulIdentifier","src":"7962:3:53"},"nativeSrc":"7962:22:53","nodeType":"YulFunctionCall","src":"7962:22:53"},{"name":"dataEnd","nativeSrc":"7986:7:53","nodeType":"YulIdentifier","src":"7986:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7903:58:53","nodeType":"YulIdentifier","src":"7903:58:53"},"nativeSrc":"7903:91:53","nodeType":"YulFunctionCall","src":"7903:91:53"},"variableNames":[{"name":"value0","nativeSrc":"7885:6:53","nodeType":"YulIdentifier","src":"7885:6:53"},{"name":"value1","nativeSrc":"7893:6:53","nodeType":"YulIdentifier","src":"7893:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7430:581:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7504:9:53","nodeType":"YulTypedName","src":"7504:9:53","type":""},{"name":"dataEnd","nativeSrc":"7515:7:53","nodeType":"YulTypedName","src":"7515:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7527:6:53","nodeType":"YulTypedName","src":"7527:6:53","type":""},{"name":"value1","nativeSrc":"7535:6:53","nodeType":"YulTypedName","src":"7535:6:53","type":""}],"src":"7430:581:53"},{"body":{"nativeSrc":"8082:53:53","nodeType":"YulBlock","src":"8082:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8099:3:53","nodeType":"YulIdentifier","src":"8099:3:53"},{"arguments":[{"name":"value","nativeSrc":"8122:5:53","nodeType":"YulIdentifier","src":"8122:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8104:17:53","nodeType":"YulIdentifier","src":"8104:17:53"},"nativeSrc":"8104:24:53","nodeType":"YulFunctionCall","src":"8104:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8092:6:53","nodeType":"YulIdentifier","src":"8092:6:53"},"nativeSrc":"8092:37:53","nodeType":"YulFunctionCall","src":"8092:37:53"},"nativeSrc":"8092:37:53","nodeType":"YulExpressionStatement","src":"8092:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8017:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8070:5:53","nodeType":"YulTypedName","src":"8070:5:53","type":""},{"name":"pos","nativeSrc":"8077:3:53","nodeType":"YulTypedName","src":"8077:3:53","type":""}],"src":"8017:118:53"},{"body":{"nativeSrc":"8239:124:53","nodeType":"YulBlock","src":"8239:124:53","statements":[{"nativeSrc":"8249:26:53","nodeType":"YulAssignment","src":"8249:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8261:9:53","nodeType":"YulIdentifier","src":"8261:9:53"},{"kind":"number","nativeSrc":"8272:2:53","nodeType":"YulLiteral","src":"8272:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8257:3:53","nodeType":"YulIdentifier","src":"8257:3:53"},"nativeSrc":"8257:18:53","nodeType":"YulFunctionCall","src":"8257:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8249:4:53","nodeType":"YulIdentifier","src":"8249:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8329:6:53","nodeType":"YulIdentifier","src":"8329:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8342:9:53","nodeType":"YulIdentifier","src":"8342:9:53"},{"kind":"number","nativeSrc":"8353:1:53","nodeType":"YulLiteral","src":"8353:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8338:3:53","nodeType":"YulIdentifier","src":"8338:3:53"},"nativeSrc":"8338:17:53","nodeType":"YulFunctionCall","src":"8338:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8285:43:53","nodeType":"YulIdentifier","src":"8285:43:53"},"nativeSrc":"8285:71:53","nodeType":"YulFunctionCall","src":"8285:71:53"},"nativeSrc":"8285:71:53","nodeType":"YulExpressionStatement","src":"8285:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8141:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8211:9:53","nodeType":"YulTypedName","src":"8211:9:53","type":""},{"name":"value0","nativeSrc":"8223:6:53","nodeType":"YulTypedName","src":"8223:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8234:4:53","nodeType":"YulTypedName","src":"8234:4:53","type":""}],"src":"8141:222:53"},{"body":{"nativeSrc":"8397:152:53","nodeType":"YulBlock","src":"8397:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8414:1:53","nodeType":"YulLiteral","src":"8414:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8417:77:53","nodeType":"YulLiteral","src":"8417:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8407:6:53","nodeType":"YulIdentifier","src":"8407:6:53"},"nativeSrc":"8407:88:53","nodeType":"YulFunctionCall","src":"8407:88:53"},"nativeSrc":"8407:88:53","nodeType":"YulExpressionStatement","src":"8407:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8511:1:53","nodeType":"YulLiteral","src":"8511:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8514:4:53","nodeType":"YulLiteral","src":"8514:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8504:6:53","nodeType":"YulIdentifier","src":"8504:6:53"},"nativeSrc":"8504:15:53","nodeType":"YulFunctionCall","src":"8504:15:53"},"nativeSrc":"8504:15:53","nodeType":"YulExpressionStatement","src":"8504:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8535:1:53","nodeType":"YulLiteral","src":"8535:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8538:4:53","nodeType":"YulLiteral","src":"8538:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8528:6:53","nodeType":"YulIdentifier","src":"8528:6:53"},"nativeSrc":"8528:15:53","nodeType":"YulFunctionCall","src":"8528:15:53"},"nativeSrc":"8528:15:53","nodeType":"YulExpressionStatement","src":"8528:15:53"}]},"name":"panic_error_0x11","nativeSrc":"8369:180:53","nodeType":"YulFunctionDefinition","src":"8369:180:53"},{"body":{"nativeSrc":"8600:149:53","nodeType":"YulBlock","src":"8600:149:53","statements":[{"nativeSrc":"8610:25:53","nodeType":"YulAssignment","src":"8610:25:53","value":{"arguments":[{"name":"x","nativeSrc":"8633:1:53","nodeType":"YulIdentifier","src":"8633:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8615:17:53","nodeType":"YulIdentifier","src":"8615:17:53"},"nativeSrc":"8615:20:53","nodeType":"YulFunctionCall","src":"8615:20:53"},"variableNames":[{"name":"x","nativeSrc":"8610:1:53","nodeType":"YulIdentifier","src":"8610:1:53"}]},{"nativeSrc":"8644:25:53","nodeType":"YulAssignment","src":"8644:25:53","value":{"arguments":[{"name":"y","nativeSrc":"8667:1:53","nodeType":"YulIdentifier","src":"8667:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8649:17:53","nodeType":"YulIdentifier","src":"8649:17:53"},"nativeSrc":"8649:20:53","nodeType":"YulFunctionCall","src":"8649:20:53"},"variableNames":[{"name":"y","nativeSrc":"8644:1:53","nodeType":"YulIdentifier","src":"8644:1:53"}]},{"nativeSrc":"8678:17:53","nodeType":"YulAssignment","src":"8678:17:53","value":{"arguments":[{"name":"x","nativeSrc":"8690:1:53","nodeType":"YulIdentifier","src":"8690:1:53"},{"name":"y","nativeSrc":"8693:1:53","nodeType":"YulIdentifier","src":"8693:1:53"}],"functionName":{"name":"sub","nativeSrc":"8686:3:53","nodeType":"YulIdentifier","src":"8686:3:53"},"nativeSrc":"8686:9:53","nodeType":"YulFunctionCall","src":"8686:9:53"},"variableNames":[{"name":"diff","nativeSrc":"8678:4:53","nodeType":"YulIdentifier","src":"8678:4:53"}]},{"body":{"nativeSrc":"8720:22:53","nodeType":"YulBlock","src":"8720:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8722:16:53","nodeType":"YulIdentifier","src":"8722:16:53"},"nativeSrc":"8722:18:53","nodeType":"YulFunctionCall","src":"8722:18:53"},"nativeSrc":"8722:18:53","nodeType":"YulExpressionStatement","src":"8722:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"8711:4:53","nodeType":"YulIdentifier","src":"8711:4:53"},{"name":"x","nativeSrc":"8717:1:53","nodeType":"YulIdentifier","src":"8717:1:53"}],"functionName":{"name":"gt","nativeSrc":"8708:2:53","nodeType":"YulIdentifier","src":"8708:2:53"},"nativeSrc":"8708:11:53","nodeType":"YulFunctionCall","src":"8708:11:53"},"nativeSrc":"8705:37:53","nodeType":"YulIf","src":"8705:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"8555:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8586:1:53","nodeType":"YulTypedName","src":"8586:1:53","type":""},{"name":"y","nativeSrc":"8589:1:53","nodeType":"YulTypedName","src":"8589:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"8595:4:53","nodeType":"YulTypedName","src":"8595:4:53","type":""}],"src":"8555:194:53"},{"body":{"nativeSrc":"8783:152:53","nodeType":"YulBlock","src":"8783:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8800:1:53","nodeType":"YulLiteral","src":"8800:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8803:77:53","nodeType":"YulLiteral","src":"8803:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8793:6:53","nodeType":"YulIdentifier","src":"8793:6:53"},"nativeSrc":"8793:88:53","nodeType":"YulFunctionCall","src":"8793:88:53"},"nativeSrc":"8793:88:53","nodeType":"YulExpressionStatement","src":"8793:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8897:1:53","nodeType":"YulLiteral","src":"8897:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8900:4:53","nodeType":"YulLiteral","src":"8900:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8890:6:53","nodeType":"YulIdentifier","src":"8890:6:53"},"nativeSrc":"8890:15:53","nodeType":"YulFunctionCall","src":"8890:15:53"},"nativeSrc":"8890:15:53","nodeType":"YulExpressionStatement","src":"8890:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8921:1:53","nodeType":"YulLiteral","src":"8921:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8924:4:53","nodeType":"YulLiteral","src":"8924:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8914:6:53","nodeType":"YulIdentifier","src":"8914:6:53"},"nativeSrc":"8914:15:53","nodeType":"YulFunctionCall","src":"8914:15:53"},"nativeSrc":"8914:15:53","nodeType":"YulExpressionStatement","src":"8914:15:53"}]},"name":"panic_error_0x32","nativeSrc":"8755:180:53","nodeType":"YulFunctionDefinition","src":"8755:180:53"},{"body":{"nativeSrc":"8981:76:53","nodeType":"YulBlock","src":"8981:76:53","statements":[{"body":{"nativeSrc":"9035:16:53","nodeType":"YulBlock","src":"9035:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9044:1:53","nodeType":"YulLiteral","src":"9044:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9047:1:53","nodeType":"YulLiteral","src":"9047:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9037:6:53","nodeType":"YulIdentifier","src":"9037:6:53"},"nativeSrc":"9037:12:53","nodeType":"YulFunctionCall","src":"9037:12:53"},"nativeSrc":"9037:12:53","nodeType":"YulExpressionStatement","src":"9037:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9004:5:53","nodeType":"YulIdentifier","src":"9004:5:53"},{"arguments":[{"name":"value","nativeSrc":"9026:5:53","nodeType":"YulIdentifier","src":"9026:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"9011:14:53","nodeType":"YulIdentifier","src":"9011:14:53"},"nativeSrc":"9011:21:53","nodeType":"YulFunctionCall","src":"9011:21:53"}],"functionName":{"name":"eq","nativeSrc":"9001:2:53","nodeType":"YulIdentifier","src":"9001:2:53"},"nativeSrc":"9001:32:53","nodeType":"YulFunctionCall","src":"9001:32:53"}],"functionName":{"name":"iszero","nativeSrc":"8994:6:53","nodeType":"YulIdentifier","src":"8994:6:53"},"nativeSrc":"8994:40:53","nodeType":"YulFunctionCall","src":"8994:40:53"},"nativeSrc":"8991:60:53","nodeType":"YulIf","src":"8991:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"8941:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8974:5:53","nodeType":"YulTypedName","src":"8974:5:53","type":""}],"src":"8941:116:53"},{"body":{"nativeSrc":"9112:84:53","nodeType":"YulBlock","src":"9112:84:53","statements":[{"nativeSrc":"9122:29:53","nodeType":"YulAssignment","src":"9122:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9144:6:53","nodeType":"YulIdentifier","src":"9144:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9131:12:53","nodeType":"YulIdentifier","src":"9131:12:53"},"nativeSrc":"9131:20:53","nodeType":"YulFunctionCall","src":"9131:20:53"},"variableNames":[{"name":"value","nativeSrc":"9122:5:53","nodeType":"YulIdentifier","src":"9122:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9184:5:53","nodeType":"YulIdentifier","src":"9184:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"9160:23:53","nodeType":"YulIdentifier","src":"9160:23:53"},"nativeSrc":"9160:30:53","nodeType":"YulFunctionCall","src":"9160:30:53"},"nativeSrc":"9160:30:53","nodeType":"YulExpressionStatement","src":"9160:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"9063:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9090:6:53","nodeType":"YulTypedName","src":"9090:6:53","type":""},{"name":"end","nativeSrc":"9098:3:53","nodeType":"YulTypedName","src":"9098:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9106:5:53","nodeType":"YulTypedName","src":"9106:5:53","type":""}],"src":"9063:133:53"},{"body":{"nativeSrc":"9265:260:53","nodeType":"YulBlock","src":"9265:260:53","statements":[{"body":{"nativeSrc":"9311:83:53","nodeType":"YulBlock","src":"9311:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9313:77:53","nodeType":"YulIdentifier","src":"9313:77:53"},"nativeSrc":"9313:79:53","nodeType":"YulFunctionCall","src":"9313:79:53"},"nativeSrc":"9313:79:53","nodeType":"YulExpressionStatement","src":"9313:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9286:7:53","nodeType":"YulIdentifier","src":"9286:7:53"},{"name":"headStart","nativeSrc":"9295:9:53","nodeType":"YulIdentifier","src":"9295:9:53"}],"functionName":{"name":"sub","nativeSrc":"9282:3:53","nodeType":"YulIdentifier","src":"9282:3:53"},"nativeSrc":"9282:23:53","nodeType":"YulFunctionCall","src":"9282:23:53"},{"kind":"number","nativeSrc":"9307:2:53","nodeType":"YulLiteral","src":"9307:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9278:3:53","nodeType":"YulIdentifier","src":"9278:3:53"},"nativeSrc":"9278:32:53","nodeType":"YulFunctionCall","src":"9278:32:53"},"nativeSrc":"9275:119:53","nodeType":"YulIf","src":"9275:119:53"},{"nativeSrc":"9404:114:53","nodeType":"YulBlock","src":"9404:114:53","statements":[{"nativeSrc":"9419:15:53","nodeType":"YulVariableDeclaration","src":"9419:15:53","value":{"kind":"number","nativeSrc":"9433:1:53","nodeType":"YulLiteral","src":"9433:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9423:6:53","nodeType":"YulTypedName","src":"9423:6:53","type":""}]},{"nativeSrc":"9448:60:53","nodeType":"YulAssignment","src":"9448:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9480:9:53","nodeType":"YulIdentifier","src":"9480:9:53"},{"name":"offset","nativeSrc":"9491:6:53","nodeType":"YulIdentifier","src":"9491:6:53"}],"functionName":{"name":"add","nativeSrc":"9476:3:53","nodeType":"YulIdentifier","src":"9476:3:53"},"nativeSrc":"9476:22:53","nodeType":"YulFunctionCall","src":"9476:22:53"},{"name":"dataEnd","nativeSrc":"9500:7:53","nodeType":"YulIdentifier","src":"9500:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"9458:17:53","nodeType":"YulIdentifier","src":"9458:17:53"},"nativeSrc":"9458:50:53","nodeType":"YulFunctionCall","src":"9458:50:53"},"variableNames":[{"name":"value0","nativeSrc":"9448:6:53","nodeType":"YulIdentifier","src":"9448:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"9202:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9235:9:53","nodeType":"YulTypedName","src":"9235:9:53","type":""},{"name":"dataEnd","nativeSrc":"9246:7:53","nodeType":"YulTypedName","src":"9246:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9258:6:53","nodeType":"YulTypedName","src":"9258:6:53","type":""}],"src":"9202:323:53"},{"body":{"nativeSrc":"9620:28:53","nodeType":"YulBlock","src":"9620:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9637:1:53","nodeType":"YulLiteral","src":"9637:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9640:1:53","nodeType":"YulLiteral","src":"9640:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9630:6:53","nodeType":"YulIdentifier","src":"9630:6:53"},"nativeSrc":"9630:12:53","nodeType":"YulFunctionCall","src":"9630:12:53"},"nativeSrc":"9630:12:53","nodeType":"YulExpressionStatement","src":"9630:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9531:117:53","nodeType":"YulFunctionDefinition","src":"9531:117:53"},{"body":{"nativeSrc":"9702:54:53","nodeType":"YulBlock","src":"9702:54:53","statements":[{"nativeSrc":"9712:38:53","nodeType":"YulAssignment","src":"9712:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9730:5:53","nodeType":"YulIdentifier","src":"9730:5:53"},{"kind":"number","nativeSrc":"9737:2:53","nodeType":"YulLiteral","src":"9737:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9726:3:53","nodeType":"YulIdentifier","src":"9726:3:53"},"nativeSrc":"9726:14:53","nodeType":"YulFunctionCall","src":"9726:14:53"},{"arguments":[{"kind":"number","nativeSrc":"9746:2:53","nodeType":"YulLiteral","src":"9746:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9742:3:53","nodeType":"YulIdentifier","src":"9742:3:53"},"nativeSrc":"9742:7:53","nodeType":"YulFunctionCall","src":"9742:7:53"}],"functionName":{"name":"and","nativeSrc":"9722:3:53","nodeType":"YulIdentifier","src":"9722:3:53"},"nativeSrc":"9722:28:53","nodeType":"YulFunctionCall","src":"9722:28:53"},"variableNames":[{"name":"result","nativeSrc":"9712:6:53","nodeType":"YulIdentifier","src":"9712:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9654:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9685:5:53","nodeType":"YulTypedName","src":"9685:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9695:6:53","nodeType":"YulTypedName","src":"9695:6:53","type":""}],"src":"9654:102:53"},{"body":{"nativeSrc":"9790:152:53","nodeType":"YulBlock","src":"9790:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9807:1:53","nodeType":"YulLiteral","src":"9807:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9810:77:53","nodeType":"YulLiteral","src":"9810:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9800:6:53","nodeType":"YulIdentifier","src":"9800:6:53"},"nativeSrc":"9800:88:53","nodeType":"YulFunctionCall","src":"9800:88:53"},"nativeSrc":"9800:88:53","nodeType":"YulExpressionStatement","src":"9800:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9904:1:53","nodeType":"YulLiteral","src":"9904:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9907:4:53","nodeType":"YulLiteral","src":"9907:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9897:6:53","nodeType":"YulIdentifier","src":"9897:6:53"},"nativeSrc":"9897:15:53","nodeType":"YulFunctionCall","src":"9897:15:53"},"nativeSrc":"9897:15:53","nodeType":"YulExpressionStatement","src":"9897:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9928:1:53","nodeType":"YulLiteral","src":"9928:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9931:4:53","nodeType":"YulLiteral","src":"9931:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9921:6:53","nodeType":"YulIdentifier","src":"9921:6:53"},"nativeSrc":"9921:15:53","nodeType":"YulFunctionCall","src":"9921:15:53"},"nativeSrc":"9921:15:53","nodeType":"YulExpressionStatement","src":"9921:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9762:180:53","nodeType":"YulFunctionDefinition","src":"9762:180:53"},{"body":{"nativeSrc":"9991:238:53","nodeType":"YulBlock","src":"9991:238:53","statements":[{"nativeSrc":"10001:58:53","nodeType":"YulVariableDeclaration","src":"10001:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10023:6:53","nodeType":"YulIdentifier","src":"10023:6:53"},{"arguments":[{"name":"size","nativeSrc":"10053:4:53","nodeType":"YulIdentifier","src":"10053:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10031:21:53","nodeType":"YulIdentifier","src":"10031:21:53"},"nativeSrc":"10031:27:53","nodeType":"YulFunctionCall","src":"10031:27:53"}],"functionName":{"name":"add","nativeSrc":"10019:3:53","nodeType":"YulIdentifier","src":"10019:3:53"},"nativeSrc":"10019:40:53","nodeType":"YulFunctionCall","src":"10019:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10005:10:53","nodeType":"YulTypedName","src":"10005:10:53","type":""}]},{"body":{"nativeSrc":"10170:22:53","nodeType":"YulBlock","src":"10170:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10172:16:53","nodeType":"YulIdentifier","src":"10172:16:53"},"nativeSrc":"10172:18:53","nodeType":"YulFunctionCall","src":"10172:18:53"},"nativeSrc":"10172:18:53","nodeType":"YulExpressionStatement","src":"10172:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10113:10:53","nodeType":"YulIdentifier","src":"10113:10:53"},{"kind":"number","nativeSrc":"10125:18:53","nodeType":"YulLiteral","src":"10125:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10110:2:53","nodeType":"YulIdentifier","src":"10110:2:53"},"nativeSrc":"10110:34:53","nodeType":"YulFunctionCall","src":"10110:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10149:10:53","nodeType":"YulIdentifier","src":"10149:10:53"},{"name":"memPtr","nativeSrc":"10161:6:53","nodeType":"YulIdentifier","src":"10161:6:53"}],"functionName":{"name":"lt","nativeSrc":"10146:2:53","nodeType":"YulIdentifier","src":"10146:2:53"},"nativeSrc":"10146:22:53","nodeType":"YulFunctionCall","src":"10146:22:53"}],"functionName":{"name":"or","nativeSrc":"10107:2:53","nodeType":"YulIdentifier","src":"10107:2:53"},"nativeSrc":"10107:62:53","nodeType":"YulFunctionCall","src":"10107:62:53"},"nativeSrc":"10104:88:53","nodeType":"YulIf","src":"10104:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10208:2:53","nodeType":"YulLiteral","src":"10208:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10212:10:53","nodeType":"YulIdentifier","src":"10212:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10201:6:53","nodeType":"YulIdentifier","src":"10201:6:53"},"nativeSrc":"10201:22:53","nodeType":"YulFunctionCall","src":"10201:22:53"},"nativeSrc":"10201:22:53","nodeType":"YulExpressionStatement","src":"10201:22:53"}]},"name":"finalize_allocation","nativeSrc":"9948:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9977:6:53","nodeType":"YulTypedName","src":"9977:6:53","type":""},{"name":"size","nativeSrc":"9985:4:53","nodeType":"YulTypedName","src":"9985:4:53","type":""}],"src":"9948:281:53"},{"body":{"nativeSrc":"10276:88:53","nodeType":"YulBlock","src":"10276:88:53","statements":[{"nativeSrc":"10286:30:53","nodeType":"YulAssignment","src":"10286:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10296:18:53","nodeType":"YulIdentifier","src":"10296:18:53"},"nativeSrc":"10296:20:53","nodeType":"YulFunctionCall","src":"10296:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10286:6:53","nodeType":"YulIdentifier","src":"10286:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10345:6:53","nodeType":"YulIdentifier","src":"10345:6:53"},{"name":"size","nativeSrc":"10353:4:53","nodeType":"YulIdentifier","src":"10353:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10325:19:53","nodeType":"YulIdentifier","src":"10325:19:53"},"nativeSrc":"10325:33:53","nodeType":"YulFunctionCall","src":"10325:33:53"},"nativeSrc":"10325:33:53","nodeType":"YulExpressionStatement","src":"10325:33:53"}]},"name":"allocate_memory","nativeSrc":"10235:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10260:4:53","nodeType":"YulTypedName","src":"10260:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10269:6:53","nodeType":"YulTypedName","src":"10269:6:53","type":""}],"src":"10235:129:53"},{"body":{"nativeSrc":"10459:28:53","nodeType":"YulBlock","src":"10459:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10476:1:53","nodeType":"YulLiteral","src":"10476:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10479:1:53","nodeType":"YulLiteral","src":"10479:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10469:6:53","nodeType":"YulIdentifier","src":"10469:6:53"},"nativeSrc":"10469:12:53","nodeType":"YulFunctionCall","src":"10469:12:53"},"nativeSrc":"10469:12:53","nodeType":"YulExpressionStatement","src":"10469:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10370:117:53","nodeType":"YulFunctionDefinition","src":"10370:117:53"},{"body":{"nativeSrc":"10575:229:53","nodeType":"YulBlock","src":"10575:229:53","statements":[{"body":{"nativeSrc":"10680:22:53","nodeType":"YulBlock","src":"10680:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10682:16:53","nodeType":"YulIdentifier","src":"10682:16:53"},"nativeSrc":"10682:18:53","nodeType":"YulFunctionCall","src":"10682:18:53"},"nativeSrc":"10682:18:53","nodeType":"YulExpressionStatement","src":"10682:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10652:6:53","nodeType":"YulIdentifier","src":"10652:6:53"},{"kind":"number","nativeSrc":"10660:18:53","nodeType":"YulLiteral","src":"10660:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10649:2:53","nodeType":"YulIdentifier","src":"10649:2:53"},"nativeSrc":"10649:30:53","nodeType":"YulFunctionCall","src":"10649:30:53"},"nativeSrc":"10646:56:53","nodeType":"YulIf","src":"10646:56:53"},{"nativeSrc":"10712:25:53","nodeType":"YulAssignment","src":"10712:25:53","value":{"arguments":[{"name":"length","nativeSrc":"10724:6:53","nodeType":"YulIdentifier","src":"10724:6:53"},{"kind":"number","nativeSrc":"10732:4:53","nodeType":"YulLiteral","src":"10732:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10720:3:53","nodeType":"YulIdentifier","src":"10720:3:53"},"nativeSrc":"10720:17:53","nodeType":"YulFunctionCall","src":"10720:17:53"},"variableNames":[{"name":"size","nativeSrc":"10712:4:53","nodeType":"YulIdentifier","src":"10712:4:53"}]},{"nativeSrc":"10774:23:53","nodeType":"YulAssignment","src":"10774:23:53","value":{"arguments":[{"name":"size","nativeSrc":"10786:4:53","nodeType":"YulIdentifier","src":"10786:4:53"},{"kind":"number","nativeSrc":"10792:4:53","nodeType":"YulLiteral","src":"10792:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10782:3:53","nodeType":"YulIdentifier","src":"10782:3:53"},"nativeSrc":"10782:15:53","nodeType":"YulFunctionCall","src":"10782:15:53"},"variableNames":[{"name":"size","nativeSrc":"10774:4:53","nodeType":"YulIdentifier","src":"10774:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10493:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10559:6:53","nodeType":"YulTypedName","src":"10559:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10570:4:53","nodeType":"YulTypedName","src":"10570:4:53","type":""}],"src":"10493:311:53"},{"body":{"nativeSrc":"10929:608:53","nodeType":"YulBlock","src":"10929:608:53","statements":[{"nativeSrc":"10939:90:53","nodeType":"YulAssignment","src":"10939:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11021:6:53","nodeType":"YulIdentifier","src":"11021:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10964:56:53","nodeType":"YulIdentifier","src":"10964:56:53"},"nativeSrc":"10964:64:53","nodeType":"YulFunctionCall","src":"10964:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10948:15:53","nodeType":"YulIdentifier","src":"10948:15:53"},"nativeSrc":"10948:81:53","nodeType":"YulFunctionCall","src":"10948:81:53"},"variableNames":[{"name":"array","nativeSrc":"10939:5:53","nodeType":"YulIdentifier","src":"10939:5:53"}]},{"nativeSrc":"11038:16:53","nodeType":"YulVariableDeclaration","src":"11038:16:53","value":{"name":"array","nativeSrc":"11049:5:53","nodeType":"YulIdentifier","src":"11049:5:53"},"variables":[{"name":"dst","nativeSrc":"11042:3:53","nodeType":"YulTypedName","src":"11042:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11071:5:53","nodeType":"YulIdentifier","src":"11071:5:53"},{"name":"length","nativeSrc":"11078:6:53","nodeType":"YulIdentifier","src":"11078:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11064:6:53","nodeType":"YulIdentifier","src":"11064:6:53"},"nativeSrc":"11064:21:53","nodeType":"YulFunctionCall","src":"11064:21:53"},"nativeSrc":"11064:21:53","nodeType":"YulExpressionStatement","src":"11064:21:53"},{"nativeSrc":"11094:23:53","nodeType":"YulAssignment","src":"11094:23:53","value":{"arguments":[{"name":"array","nativeSrc":"11105:5:53","nodeType":"YulIdentifier","src":"11105:5:53"},{"kind":"number","nativeSrc":"11112:4:53","nodeType":"YulLiteral","src":"11112:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11101:3:53","nodeType":"YulIdentifier","src":"11101:3:53"},"nativeSrc":"11101:16:53","nodeType":"YulFunctionCall","src":"11101:16:53"},"variableNames":[{"name":"dst","nativeSrc":"11094:3:53","nodeType":"YulIdentifier","src":"11094:3:53"}]},{"nativeSrc":"11127:44:53","nodeType":"YulVariableDeclaration","src":"11127:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"11145:6:53","nodeType":"YulIdentifier","src":"11145:6:53"},{"arguments":[{"name":"length","nativeSrc":"11157:6:53","nodeType":"YulIdentifier","src":"11157:6:53"},{"kind":"number","nativeSrc":"11165:4:53","nodeType":"YulLiteral","src":"11165:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11153:3:53","nodeType":"YulIdentifier","src":"11153:3:53"},"nativeSrc":"11153:17:53","nodeType":"YulFunctionCall","src":"11153:17:53"}],"functionName":{"name":"add","nativeSrc":"11141:3:53","nodeType":"YulIdentifier","src":"11141:3:53"},"nativeSrc":"11141:30:53","nodeType":"YulFunctionCall","src":"11141:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"11131:6:53","nodeType":"YulTypedName","src":"11131:6:53","type":""}]},{"body":{"nativeSrc":"11199:103:53","nodeType":"YulBlock","src":"11199:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11213:77:53","nodeType":"YulIdentifier","src":"11213:77:53"},"nativeSrc":"11213:79:53","nodeType":"YulFunctionCall","src":"11213:79:53"},"nativeSrc":"11213:79:53","nodeType":"YulExpressionStatement","src":"11213:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11186:6:53","nodeType":"YulIdentifier","src":"11186:6:53"},{"name":"end","nativeSrc":"11194:3:53","nodeType":"YulIdentifier","src":"11194:3:53"}],"functionName":{"name":"gt","nativeSrc":"11183:2:53","nodeType":"YulIdentifier","src":"11183:2:53"},"nativeSrc":"11183:15:53","nodeType":"YulFunctionCall","src":"11183:15:53"},"nativeSrc":"11180:122:53","nodeType":"YulIf","src":"11180:122:53"},{"body":{"nativeSrc":"11387:144:53","nodeType":"YulBlock","src":"11387:144:53","statements":[{"nativeSrc":"11402:21:53","nodeType":"YulVariableDeclaration","src":"11402:21:53","value":{"name":"src","nativeSrc":"11420:3:53","nodeType":"YulIdentifier","src":"11420:3:53"},"variables":[{"name":"elementPos","nativeSrc":"11406:10:53","nodeType":"YulTypedName","src":"11406:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11444:3:53","nodeType":"YulIdentifier","src":"11444:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"11470:10:53","nodeType":"YulIdentifier","src":"11470:10:53"},{"name":"end","nativeSrc":"11482:3:53","nodeType":"YulIdentifier","src":"11482:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11449:20:53","nodeType":"YulIdentifier","src":"11449:20:53"},"nativeSrc":"11449:37:53","nodeType":"YulFunctionCall","src":"11449:37:53"}],"functionName":{"name":"mstore","nativeSrc":"11437:6:53","nodeType":"YulIdentifier","src":"11437:6:53"},"nativeSrc":"11437:50:53","nodeType":"YulFunctionCall","src":"11437:50:53"},"nativeSrc":"11437:50:53","nodeType":"YulExpressionStatement","src":"11437:50:53"},{"nativeSrc":"11500:21:53","nodeType":"YulAssignment","src":"11500:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"11511:3:53","nodeType":"YulIdentifier","src":"11511:3:53"},{"kind":"number","nativeSrc":"11516:4:53","nodeType":"YulLiteral","src":"11516:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11507:3:53","nodeType":"YulIdentifier","src":"11507:3:53"},"nativeSrc":"11507:14:53","nodeType":"YulFunctionCall","src":"11507:14:53"},"variableNames":[{"name":"dst","nativeSrc":"11500:3:53","nodeType":"YulIdentifier","src":"11500:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11340:3:53","nodeType":"YulIdentifier","src":"11340:3:53"},{"name":"srcEnd","nativeSrc":"11345:6:53","nodeType":"YulIdentifier","src":"11345:6:53"}],"functionName":{"name":"lt","nativeSrc":"11337:2:53","nodeType":"YulIdentifier","src":"11337:2:53"},"nativeSrc":"11337:15:53","nodeType":"YulFunctionCall","src":"11337:15:53"},"nativeSrc":"11311:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"11353:25:53","nodeType":"YulBlock","src":"11353:25:53","statements":[{"nativeSrc":"11355:21:53","nodeType":"YulAssignment","src":"11355:21:53","value":{"arguments":[{"name":"src","nativeSrc":"11366:3:53","nodeType":"YulIdentifier","src":"11366:3:53"},{"kind":"number","nativeSrc":"11371:4:53","nodeType":"YulLiteral","src":"11371:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11362:3:53","nodeType":"YulIdentifier","src":"11362:3:53"},"nativeSrc":"11362:14:53","nodeType":"YulFunctionCall","src":"11362:14:53"},"variableNames":[{"name":"src","nativeSrc":"11355:3:53","nodeType":"YulIdentifier","src":"11355:3:53"}]}]},"pre":{"nativeSrc":"11315:21:53","nodeType":"YulBlock","src":"11315:21:53","statements":[{"nativeSrc":"11317:17:53","nodeType":"YulVariableDeclaration","src":"11317:17:53","value":{"name":"offset","nativeSrc":"11328:6:53","nodeType":"YulIdentifier","src":"11328:6:53"},"variables":[{"name":"src","nativeSrc":"11321:3:53","nodeType":"YulTypedName","src":"11321:3:53","type":""}]}]},"src":"11311:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10827:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10899:6:53","nodeType":"YulTypedName","src":"10899:6:53","type":""},{"name":"length","nativeSrc":"10907:6:53","nodeType":"YulTypedName","src":"10907:6:53","type":""},{"name":"end","nativeSrc":"10915:3:53","nodeType":"YulTypedName","src":"10915:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10923:5:53","nodeType":"YulTypedName","src":"10923:5:53","type":""}],"src":"10827:710:53"},{"body":{"nativeSrc":"11637:293:53","nodeType":"YulBlock","src":"11637:293:53","statements":[{"body":{"nativeSrc":"11686:83:53","nodeType":"YulBlock","src":"11686:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11688:77:53","nodeType":"YulIdentifier","src":"11688:77:53"},"nativeSrc":"11688:79:53","nodeType":"YulFunctionCall","src":"11688:79:53"},"nativeSrc":"11688:79:53","nodeType":"YulExpressionStatement","src":"11688:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11665:6:53","nodeType":"YulIdentifier","src":"11665:6:53"},{"kind":"number","nativeSrc":"11673:4:53","nodeType":"YulLiteral","src":"11673:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11661:3:53","nodeType":"YulIdentifier","src":"11661:3:53"},"nativeSrc":"11661:17:53","nodeType":"YulFunctionCall","src":"11661:17:53"},{"name":"end","nativeSrc":"11680:3:53","nodeType":"YulIdentifier","src":"11680:3:53"}],"functionName":{"name":"slt","nativeSrc":"11657:3:53","nodeType":"YulIdentifier","src":"11657:3:53"},"nativeSrc":"11657:27:53","nodeType":"YulFunctionCall","src":"11657:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11650:6:53","nodeType":"YulIdentifier","src":"11650:6:53"},"nativeSrc":"11650:35:53","nodeType":"YulFunctionCall","src":"11650:35:53"},"nativeSrc":"11647:122:53","nodeType":"YulIf","src":"11647:122:53"},{"nativeSrc":"11778:34:53","nodeType":"YulVariableDeclaration","src":"11778:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"11805:6:53","nodeType":"YulIdentifier","src":"11805:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"11792:12:53","nodeType":"YulIdentifier","src":"11792:12:53"},"nativeSrc":"11792:20:53","nodeType":"YulFunctionCall","src":"11792:20:53"},"variables":[{"name":"length","nativeSrc":"11782:6:53","nodeType":"YulTypedName","src":"11782:6:53","type":""}]},{"nativeSrc":"11821:103:53","nodeType":"YulAssignment","src":"11821:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11897:6:53","nodeType":"YulIdentifier","src":"11897:6:53"},{"kind":"number","nativeSrc":"11905:4:53","nodeType":"YulLiteral","src":"11905:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11893:3:53","nodeType":"YulIdentifier","src":"11893:3:53"},"nativeSrc":"11893:17:53","nodeType":"YulFunctionCall","src":"11893:17:53"},{"name":"length","nativeSrc":"11912:6:53","nodeType":"YulIdentifier","src":"11912:6:53"},{"name":"end","nativeSrc":"11920:3:53","nodeType":"YulIdentifier","src":"11920:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11830:62:53","nodeType":"YulIdentifier","src":"11830:62:53"},"nativeSrc":"11830:94:53","nodeType":"YulFunctionCall","src":"11830:94:53"},"variableNames":[{"name":"array","nativeSrc":"11821:5:53","nodeType":"YulIdentifier","src":"11821:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11560:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11615:6:53","nodeType":"YulTypedName","src":"11615:6:53","type":""},{"name":"end","nativeSrc":"11623:3:53","nodeType":"YulTypedName","src":"11623:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11631:5:53","nodeType":"YulTypedName","src":"11631:5:53","type":""}],"src":"11560:370:53"},{"body":{"nativeSrc":"11978:78:53","nodeType":"YulBlock","src":"11978:78:53","statements":[{"body":{"nativeSrc":"12034:16:53","nodeType":"YulBlock","src":"12034:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12043:1:53","nodeType":"YulLiteral","src":"12043:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12046:1:53","nodeType":"YulLiteral","src":"12046:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12036:6:53","nodeType":"YulIdentifier","src":"12036:6:53"},"nativeSrc":"12036:12:53","nodeType":"YulFunctionCall","src":"12036:12:53"},"nativeSrc":"12036:12:53","nodeType":"YulExpressionStatement","src":"12036:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12001:5:53","nodeType":"YulIdentifier","src":"12001:5:53"},{"arguments":[{"name":"value","nativeSrc":"12025:5:53","nodeType":"YulIdentifier","src":"12025:5:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"12008:16:53","nodeType":"YulIdentifier","src":"12008:16:53"},"nativeSrc":"12008:23:53","nodeType":"YulFunctionCall","src":"12008:23:53"}],"functionName":{"name":"eq","nativeSrc":"11998:2:53","nodeType":"YulIdentifier","src":"11998:2:53"},"nativeSrc":"11998:34:53","nodeType":"YulFunctionCall","src":"11998:34:53"}],"functionName":{"name":"iszero","nativeSrc":"11991:6:53","nodeType":"YulIdentifier","src":"11991:6:53"},"nativeSrc":"11991:42:53","nodeType":"YulFunctionCall","src":"11991:42:53"},"nativeSrc":"11988:62:53","nodeType":"YulIf","src":"11988:62:53"}]},"name":"validator_revert_t_uint64","nativeSrc":"11936:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11971:5:53","nodeType":"YulTypedName","src":"11971:5:53","type":""}],"src":"11936:120:53"},{"body":{"nativeSrc":"12113:86:53","nodeType":"YulBlock","src":"12113:86:53","statements":[{"nativeSrc":"12123:29:53","nodeType":"YulAssignment","src":"12123:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12145:6:53","nodeType":"YulIdentifier","src":"12145:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12132:12:53","nodeType":"YulIdentifier","src":"12132:12:53"},"nativeSrc":"12132:20:53","nodeType":"YulFunctionCall","src":"12132:20:53"},"variableNames":[{"name":"value","nativeSrc":"12123:5:53","nodeType":"YulIdentifier","src":"12123:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12187:5:53","nodeType":"YulIdentifier","src":"12187:5:53"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"12161:25:53","nodeType":"YulIdentifier","src":"12161:25:53"},"nativeSrc":"12161:32:53","nodeType":"YulFunctionCall","src":"12161:32:53"},"nativeSrc":"12161:32:53","nodeType":"YulExpressionStatement","src":"12161:32:53"}]},"name":"abi_decode_t_uint64","nativeSrc":"12062:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12091:6:53","nodeType":"YulTypedName","src":"12091:6:53","type":""},{"name":"end","nativeSrc":"12099:3:53","nodeType":"YulTypedName","src":"12099:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12107:5:53","nodeType":"YulTypedName","src":"12107:5:53","type":""}],"src":"12062:137:53"},{"body":{"nativeSrc":"12330:1173:53","nodeType":"YulBlock","src":"12330:1173:53","statements":[{"body":{"nativeSrc":"12374:83:53","nodeType":"YulBlock","src":"12374:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"12376:77:53","nodeType":"YulIdentifier","src":"12376:77:53"},"nativeSrc":"12376:79:53","nodeType":"YulFunctionCall","src":"12376:79:53"},"nativeSrc":"12376:79:53","nodeType":"YulExpressionStatement","src":"12376:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"12351:3:53","nodeType":"YulIdentifier","src":"12351:3:53"},{"name":"headStart","nativeSrc":"12356:9:53","nodeType":"YulIdentifier","src":"12356:9:53"}],"functionName":{"name":"sub","nativeSrc":"12347:3:53","nodeType":"YulIdentifier","src":"12347:3:53"},"nativeSrc":"12347:19:53","nodeType":"YulFunctionCall","src":"12347:19:53"},{"kind":"number","nativeSrc":"12368:4:53","nodeType":"YulLiteral","src":"12368:4:53","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"12343:3:53","nodeType":"YulIdentifier","src":"12343:3:53"},"nativeSrc":"12343:30:53","nodeType":"YulFunctionCall","src":"12343:30:53"},"nativeSrc":"12340:117:53","nodeType":"YulIf","src":"12340:117:53"},{"nativeSrc":"12466:30:53","nodeType":"YulAssignment","src":"12466:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"12491:4:53","nodeType":"YulLiteral","src":"12491:4:53","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"12475:15:53","nodeType":"YulIdentifier","src":"12475:15:53"},"nativeSrc":"12475:21:53","nodeType":"YulFunctionCall","src":"12475:21:53"},"variableNames":[{"name":"value","nativeSrc":"12466:5:53","nodeType":"YulIdentifier","src":"12466:5:53"}]},{"nativeSrc":"12506:151:53","nodeType":"YulBlock","src":"12506:151:53","statements":[{"nativeSrc":"12542:15:53","nodeType":"YulVariableDeclaration","src":"12542:15:53","value":{"kind":"number","nativeSrc":"12556:1:53","nodeType":"YulLiteral","src":"12556:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12546:6:53","nodeType":"YulTypedName","src":"12546:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12582:5:53","nodeType":"YulIdentifier","src":"12582:5:53"},{"kind":"number","nativeSrc":"12589:4:53","nodeType":"YulLiteral","src":"12589:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"12578:3:53","nodeType":"YulIdentifier","src":"12578:3:53"},"nativeSrc":"12578:16:53","nodeType":"YulFunctionCall","src":"12578:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12621:9:53","nodeType":"YulIdentifier","src":"12621:9:53"},{"name":"offset","nativeSrc":"12632:6:53","nodeType":"YulIdentifier","src":"12632:6:53"}],"functionName":{"name":"add","nativeSrc":"12617:3:53","nodeType":"YulIdentifier","src":"12617:3:53"},"nativeSrc":"12617:22:53","nodeType":"YulFunctionCall","src":"12617:22:53"},{"name":"end","nativeSrc":"12641:3:53","nodeType":"YulIdentifier","src":"12641:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12596:20:53","nodeType":"YulIdentifier","src":"12596:20:53"},"nativeSrc":"12596:49:53","nodeType":"YulFunctionCall","src":"12596:49:53"}],"functionName":{"name":"mstore","nativeSrc":"12571:6:53","nodeType":"YulIdentifier","src":"12571:6:53"},"nativeSrc":"12571:75:53","nodeType":"YulFunctionCall","src":"12571:75:53"},"nativeSrc":"12571:75:53","nodeType":"YulExpressionStatement","src":"12571:75:53"}]},{"nativeSrc":"12667:342:53","nodeType":"YulBlock","src":"12667:342:53","statements":[{"nativeSrc":"12708:46:53","nodeType":"YulVariableDeclaration","src":"12708:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12739:9:53","nodeType":"YulIdentifier","src":"12739:9:53"},{"kind":"number","nativeSrc":"12750:2:53","nodeType":"YulLiteral","src":"12750:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12735:3:53","nodeType":"YulIdentifier","src":"12735:3:53"},"nativeSrc":"12735:18:53","nodeType":"YulFunctionCall","src":"12735:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12722:12:53","nodeType":"YulIdentifier","src":"12722:12:53"},"nativeSrc":"12722:32:53","nodeType":"YulFunctionCall","src":"12722:32:53"},"variables":[{"name":"offset","nativeSrc":"12712:6:53","nodeType":"YulTypedName","src":"12712:6:53","type":""}]},{"body":{"nativeSrc":"12801:83:53","nodeType":"YulBlock","src":"12801:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"12803:77:53","nodeType":"YulIdentifier","src":"12803:77:53"},"nativeSrc":"12803:79:53","nodeType":"YulFunctionCall","src":"12803:79:53"},"nativeSrc":"12803:79:53","nodeType":"YulExpressionStatement","src":"12803:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12773:6:53","nodeType":"YulIdentifier","src":"12773:6:53"},{"kind":"number","nativeSrc":"12781:18:53","nodeType":"YulLiteral","src":"12781:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12770:2:53","nodeType":"YulIdentifier","src":"12770:2:53"},"nativeSrc":"12770:30:53","nodeType":"YulFunctionCall","src":"12770:30:53"},"nativeSrc":"12767:117:53","nodeType":"YulIf","src":"12767:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12909:5:53","nodeType":"YulIdentifier","src":"12909:5:53"},{"kind":"number","nativeSrc":"12916:4:53","nodeType":"YulLiteral","src":"12916:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12905:3:53","nodeType":"YulIdentifier","src":"12905:3:53"},"nativeSrc":"12905:16:53","nodeType":"YulFunctionCall","src":"12905:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12973:9:53","nodeType":"YulIdentifier","src":"12973:9:53"},{"name":"offset","nativeSrc":"12984:6:53","nodeType":"YulIdentifier","src":"12984:6:53"}],"functionName":{"name":"add","nativeSrc":"12969:3:53","nodeType":"YulIdentifier","src":"12969:3:53"},"nativeSrc":"12969:22:53","nodeType":"YulFunctionCall","src":"12969:22:53"},{"name":"end","nativeSrc":"12993:3:53","nodeType":"YulIdentifier","src":"12993:3:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12923:45:53","nodeType":"YulIdentifier","src":"12923:45:53"},"nativeSrc":"12923:74:53","nodeType":"YulFunctionCall","src":"12923:74:53"}],"functionName":{"name":"mstore","nativeSrc":"12898:6:53","nodeType":"YulIdentifier","src":"12898:6:53"},"nativeSrc":"12898:100:53","nodeType":"YulFunctionCall","src":"12898:100:53"},"nativeSrc":"12898:100:53","nodeType":"YulExpressionStatement","src":"12898:100:53"}]},{"nativeSrc":"13019:151:53","nodeType":"YulBlock","src":"13019:151:53","statements":[{"nativeSrc":"13055:16:53","nodeType":"YulVariableDeclaration","src":"13055:16:53","value":{"kind":"number","nativeSrc":"13069:2:53","nodeType":"YulLiteral","src":"13069:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"13059:6:53","nodeType":"YulTypedName","src":"13059:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13096:5:53","nodeType":"YulIdentifier","src":"13096:5:53"},{"kind":"number","nativeSrc":"13103:4:53","nodeType":"YulLiteral","src":"13103:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13092:3:53","nodeType":"YulIdentifier","src":"13092:3:53"},"nativeSrc":"13092:16:53","nodeType":"YulFunctionCall","src":"13092:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13134:9:53","nodeType":"YulIdentifier","src":"13134:9:53"},{"name":"offset","nativeSrc":"13145:6:53","nodeType":"YulIdentifier","src":"13145:6:53"}],"functionName":{"name":"add","nativeSrc":"13130:3:53","nodeType":"YulIdentifier","src":"13130:3:53"},"nativeSrc":"13130:22:53","nodeType":"YulFunctionCall","src":"13130:22:53"},{"name":"end","nativeSrc":"13154:3:53","nodeType":"YulIdentifier","src":"13154:3:53"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13110:19:53","nodeType":"YulIdentifier","src":"13110:19:53"},"nativeSrc":"13110:48:53","nodeType":"YulFunctionCall","src":"13110:48:53"}],"functionName":{"name":"mstore","nativeSrc":"13085:6:53","nodeType":"YulIdentifier","src":"13085:6:53"},"nativeSrc":"13085:74:53","nodeType":"YulFunctionCall","src":"13085:74:53"},"nativeSrc":"13085:74:53","nodeType":"YulExpressionStatement","src":"13085:74:53"}]},{"nativeSrc":"13180:154:53","nodeType":"YulBlock","src":"13180:154:53","statements":[{"nativeSrc":"13219:16:53","nodeType":"YulVariableDeclaration","src":"13219:16:53","value":{"kind":"number","nativeSrc":"13233:2:53","nodeType":"YulLiteral","src":"13233:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"13223:6:53","nodeType":"YulTypedName","src":"13223:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13260:5:53","nodeType":"YulIdentifier","src":"13260:5:53"},{"kind":"number","nativeSrc":"13267:4:53","nodeType":"YulLiteral","src":"13267:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"13256:3:53","nodeType":"YulIdentifier","src":"13256:3:53"},"nativeSrc":"13256:16:53","nodeType":"YulFunctionCall","src":"13256:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13298:9:53","nodeType":"YulIdentifier","src":"13298:9:53"},{"name":"offset","nativeSrc":"13309:6:53","nodeType":"YulIdentifier","src":"13309:6:53"}],"functionName":{"name":"add","nativeSrc":"13294:3:53","nodeType":"YulIdentifier","src":"13294:3:53"},"nativeSrc":"13294:22:53","nodeType":"YulFunctionCall","src":"13294:22:53"},{"name":"end","nativeSrc":"13318:3:53","nodeType":"YulIdentifier","src":"13318:3:53"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13274:19:53","nodeType":"YulIdentifier","src":"13274:19:53"},"nativeSrc":"13274:48:53","nodeType":"YulFunctionCall","src":"13274:48:53"}],"functionName":{"name":"mstore","nativeSrc":"13249:6:53","nodeType":"YulIdentifier","src":"13249:6:53"},"nativeSrc":"13249:74:53","nodeType":"YulFunctionCall","src":"13249:74:53"},"nativeSrc":"13249:74:53","nodeType":"YulExpressionStatement","src":"13249:74:53"}]},{"nativeSrc":"13344:152:53","nodeType":"YulBlock","src":"13344:152:53","statements":[{"nativeSrc":"13380:17:53","nodeType":"YulVariableDeclaration","src":"13380:17:53","value":{"kind":"number","nativeSrc":"13394:3:53","nodeType":"YulLiteral","src":"13394:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"13384:6:53","nodeType":"YulTypedName","src":"13384:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13422:5:53","nodeType":"YulIdentifier","src":"13422:5:53"},{"kind":"number","nativeSrc":"13429:4:53","nodeType":"YulLiteral","src":"13429:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13418:3:53","nodeType":"YulIdentifier","src":"13418:3:53"},"nativeSrc":"13418:16:53","nodeType":"YulFunctionCall","src":"13418:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13460:9:53","nodeType":"YulIdentifier","src":"13460:9:53"},{"name":"offset","nativeSrc":"13471:6:53","nodeType":"YulIdentifier","src":"13471:6:53"}],"functionName":{"name":"add","nativeSrc":"13456:3:53","nodeType":"YulIdentifier","src":"13456:3:53"},"nativeSrc":"13456:22:53","nodeType":"YulFunctionCall","src":"13456:22:53"},{"name":"end","nativeSrc":"13480:3:53","nodeType":"YulIdentifier","src":"13480:3:53"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13436:19:53","nodeType":"YulIdentifier","src":"13436:19:53"},"nativeSrc":"13436:48:53","nodeType":"YulFunctionCall","src":"13436:48:53"}],"functionName":{"name":"mstore","nativeSrc":"13411:6:53","nodeType":"YulIdentifier","src":"13411:6:53"},"nativeSrc":"13411:74:53","nodeType":"YulFunctionCall","src":"13411:74:53"},"nativeSrc":"13411:74:53","nodeType":"YulExpressionStatement","src":"13411:74:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$14711_memory_ptr","nativeSrc":"12245:1258:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12305:9:53","nodeType":"YulTypedName","src":"12305:9:53","type":""},{"name":"end","nativeSrc":"12316:3:53","nodeType":"YulTypedName","src":"12316:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12324:5:53","nodeType":"YulTypedName","src":"12324:5:53","type":""}],"src":"12245:1258:53"},{"body":{"nativeSrc":"13605:453:53","nodeType":"YulBlock","src":"13605:453:53","statements":[{"body":{"nativeSrc":"13651:83:53","nodeType":"YulBlock","src":"13651:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13653:77:53","nodeType":"YulIdentifier","src":"13653:77:53"},"nativeSrc":"13653:79:53","nodeType":"YulFunctionCall","src":"13653:79:53"},"nativeSrc":"13653:79:53","nodeType":"YulExpressionStatement","src":"13653:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13626:7:53","nodeType":"YulIdentifier","src":"13626:7:53"},{"name":"headStart","nativeSrc":"13635:9:53","nodeType":"YulIdentifier","src":"13635:9:53"}],"functionName":{"name":"sub","nativeSrc":"13622:3:53","nodeType":"YulIdentifier","src":"13622:3:53"},"nativeSrc":"13622:23:53","nodeType":"YulFunctionCall","src":"13622:23:53"},{"kind":"number","nativeSrc":"13647:2:53","nodeType":"YulLiteral","src":"13647:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13618:3:53","nodeType":"YulIdentifier","src":"13618:3:53"},"nativeSrc":"13618:32:53","nodeType":"YulFunctionCall","src":"13618:32:53"},"nativeSrc":"13615:119:53","nodeType":"YulIf","src":"13615:119:53"},{"nativeSrc":"13744:307:53","nodeType":"YulBlock","src":"13744:307:53","statements":[{"nativeSrc":"13759:45:53","nodeType":"YulVariableDeclaration","src":"13759:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13790:9:53","nodeType":"YulIdentifier","src":"13790:9:53"},{"kind":"number","nativeSrc":"13801:1:53","nodeType":"YulLiteral","src":"13801:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13786:3:53","nodeType":"YulIdentifier","src":"13786:3:53"},"nativeSrc":"13786:17:53","nodeType":"YulFunctionCall","src":"13786:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"13773:12:53","nodeType":"YulIdentifier","src":"13773:12:53"},"nativeSrc":"13773:31:53","nodeType":"YulFunctionCall","src":"13773:31:53"},"variables":[{"name":"offset","nativeSrc":"13763:6:53","nodeType":"YulTypedName","src":"13763:6:53","type":""}]},{"body":{"nativeSrc":"13851:83:53","nodeType":"YulBlock","src":"13851:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13853:77:53","nodeType":"YulIdentifier","src":"13853:77:53"},"nativeSrc":"13853:79:53","nodeType":"YulFunctionCall","src":"13853:79:53"},"nativeSrc":"13853:79:53","nodeType":"YulExpressionStatement","src":"13853:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13823:6:53","nodeType":"YulIdentifier","src":"13823:6:53"},{"kind":"number","nativeSrc":"13831:18:53","nodeType":"YulLiteral","src":"13831:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13820:2:53","nodeType":"YulIdentifier","src":"13820:2:53"},"nativeSrc":"13820:30:53","nodeType":"YulFunctionCall","src":"13820:30:53"},"nativeSrc":"13817:117:53","nodeType":"YulIf","src":"13817:117:53"},{"nativeSrc":"13948:93:53","nodeType":"YulAssignment","src":"13948:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14013:9:53","nodeType":"YulIdentifier","src":"14013:9:53"},{"name":"offset","nativeSrc":"14024:6:53","nodeType":"YulIdentifier","src":"14024:6:53"}],"functionName":{"name":"add","nativeSrc":"14009:3:53","nodeType":"YulIdentifier","src":"14009:3:53"},"nativeSrc":"14009:22:53","nodeType":"YulFunctionCall","src":"14009:22:53"},{"name":"dataEnd","nativeSrc":"14033:7:53","nodeType":"YulIdentifier","src":"14033:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$14711_memory_ptr","nativeSrc":"13958:50:53","nodeType":"YulIdentifier","src":"13958:50:53"},"nativeSrc":"13958:83:53","nodeType":"YulFunctionCall","src":"13958:83:53"},"variableNames":[{"name":"value0","nativeSrc":"13948:6:53","nodeType":"YulIdentifier","src":"13948:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$14711_memory_ptr","nativeSrc":"13509:549:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13575:9:53","nodeType":"YulTypedName","src":"13575:9:53","type":""},{"name":"dataEnd","nativeSrc":"13586:7:53","nodeType":"YulTypedName","src":"13586:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13598:6:53","nodeType":"YulTypedName","src":"13598:6:53","type":""}],"src":"13509:549:53"},{"body":{"nativeSrc":"14122:56:53","nodeType":"YulBlock","src":"14122:56:53","statements":[{"body":{"nativeSrc":"14156:16:53","nodeType":"YulBlock","src":"14156:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14165:1:53","nodeType":"YulLiteral","src":"14165:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14168:1:53","nodeType":"YulLiteral","src":"14168:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14158:6:53","nodeType":"YulIdentifier","src":"14158:6:53"},"nativeSrc":"14158:12:53","nodeType":"YulFunctionCall","src":"14158:12:53"},"nativeSrc":"14158:12:53","nodeType":"YulExpressionStatement","src":"14158:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14145:5:53","nodeType":"YulIdentifier","src":"14145:5:53"},{"kind":"number","nativeSrc":"14152:1:53","nodeType":"YulLiteral","src":"14152:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"14142:2:53","nodeType":"YulIdentifier","src":"14142:2:53"},"nativeSrc":"14142:12:53","nodeType":"YulFunctionCall","src":"14142:12:53"}],"functionName":{"name":"iszero","nativeSrc":"14135:6:53","nodeType":"YulIdentifier","src":"14135:6:53"},"nativeSrc":"14135:20:53","nodeType":"YulFunctionCall","src":"14135:20:53"},"nativeSrc":"14132:40:53","nodeType":"YulIf","src":"14132:40:53"}]},"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"14064:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14115:5:53","nodeType":"YulTypedName","src":"14115:5:53","type":""}],"src":"14064:114:53"},{"body":{"nativeSrc":"14251:102:53","nodeType":"YulBlock","src":"14251:102:53","statements":[{"nativeSrc":"14261:29:53","nodeType":"YulAssignment","src":"14261:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"14283:6:53","nodeType":"YulIdentifier","src":"14283:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"14270:12:53","nodeType":"YulIdentifier","src":"14270:12:53"},"nativeSrc":"14270:20:53","nodeType":"YulFunctionCall","src":"14270:20:53"},"variableNames":[{"name":"value","nativeSrc":"14261:5:53","nodeType":"YulIdentifier","src":"14261:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14341:5:53","nodeType":"YulIdentifier","src":"14341:5:53"}],"functionName":{"name":"validator_revert_t_enum$_AssetType_$13471","nativeSrc":"14299:41:53","nodeType":"YulIdentifier","src":"14299:41:53"},"nativeSrc":"14299:48:53","nodeType":"YulFunctionCall","src":"14299:48:53"},"nativeSrc":"14299:48:53","nodeType":"YulExpressionStatement","src":"14299:48:53"}]},"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"14184:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14229:6:53","nodeType":"YulTypedName","src":"14229:6:53","type":""},{"name":"end","nativeSrc":"14237:3:53","nodeType":"YulTypedName","src":"14237:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14245:5:53","nodeType":"YulTypedName","src":"14245:5:53","type":""}],"src":"14184:169:53"},{"body":{"nativeSrc":"14448:28:53","nodeType":"YulBlock","src":"14448:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14465:1:53","nodeType":"YulLiteral","src":"14465:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14468:1:53","nodeType":"YulLiteral","src":"14468:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14458:6:53","nodeType":"YulIdentifier","src":"14458:6:53"},"nativeSrc":"14458:12:53","nodeType":"YulFunctionCall","src":"14458:12:53"},"nativeSrc":"14458:12:53","nodeType":"YulExpressionStatement","src":"14458:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14359:117:53","nodeType":"YulFunctionDefinition","src":"14359:117:53"},{"body":{"nativeSrc":"14548:241:53","nodeType":"YulBlock","src":"14548:241:53","statements":[{"body":{"nativeSrc":"14653:22:53","nodeType":"YulBlock","src":"14653:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"14655:16:53","nodeType":"YulIdentifier","src":"14655:16:53"},"nativeSrc":"14655:18:53","nodeType":"YulFunctionCall","src":"14655:18:53"},"nativeSrc":"14655:18:53","nodeType":"YulExpressionStatement","src":"14655:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14625:6:53","nodeType":"YulIdentifier","src":"14625:6:53"},{"kind":"number","nativeSrc":"14633:18:53","nodeType":"YulLiteral","src":"14633:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14622:2:53","nodeType":"YulIdentifier","src":"14622:2:53"},"nativeSrc":"14622:30:53","nodeType":"YulFunctionCall","src":"14622:30:53"},"nativeSrc":"14619:56:53","nodeType":"YulIf","src":"14619:56:53"},{"nativeSrc":"14685:37:53","nodeType":"YulAssignment","src":"14685:37:53","value":{"arguments":[{"name":"length","nativeSrc":"14715:6:53","nodeType":"YulIdentifier","src":"14715:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"14693:21:53","nodeType":"YulIdentifier","src":"14693:21:53"},"nativeSrc":"14693:29:53","nodeType":"YulFunctionCall","src":"14693:29:53"},"variableNames":[{"name":"size","nativeSrc":"14685:4:53","nodeType":"YulIdentifier","src":"14685:4:53"}]},{"nativeSrc":"14759:23:53","nodeType":"YulAssignment","src":"14759:23:53","value":{"arguments":[{"name":"size","nativeSrc":"14771:4:53","nodeType":"YulIdentifier","src":"14771:4:53"},{"kind":"number","nativeSrc":"14777:4:53","nodeType":"YulLiteral","src":"14777:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14767:3:53","nodeType":"YulIdentifier","src":"14767:3:53"},"nativeSrc":"14767:15:53","nodeType":"YulFunctionCall","src":"14767:15:53"},"variableNames":[{"name":"size","nativeSrc":"14759:4:53","nodeType":"YulIdentifier","src":"14759:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14482:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14532:6:53","nodeType":"YulTypedName","src":"14532:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14543:4:53","nodeType":"YulTypedName","src":"14543:4:53","type":""}],"src":"14482:307:53"},{"body":{"nativeSrc":"14859:84:53","nodeType":"YulBlock","src":"14859:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"14883:3:53","nodeType":"YulIdentifier","src":"14883:3:53"},{"name":"src","nativeSrc":"14888:3:53","nodeType":"YulIdentifier","src":"14888:3:53"},{"name":"length","nativeSrc":"14893:6:53","nodeType":"YulIdentifier","src":"14893:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"14870:12:53","nodeType":"YulIdentifier","src":"14870:12:53"},"nativeSrc":"14870:30:53","nodeType":"YulFunctionCall","src":"14870:30:53"},"nativeSrc":"14870:30:53","nodeType":"YulExpressionStatement","src":"14870:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"14920:3:53","nodeType":"YulIdentifier","src":"14920:3:53"},{"name":"length","nativeSrc":"14925:6:53","nodeType":"YulIdentifier","src":"14925:6:53"}],"functionName":{"name":"add","nativeSrc":"14916:3:53","nodeType":"YulIdentifier","src":"14916:3:53"},"nativeSrc":"14916:16:53","nodeType":"YulFunctionCall","src":"14916:16:53"},{"kind":"number","nativeSrc":"14934:1:53","nodeType":"YulLiteral","src":"14934:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14909:6:53","nodeType":"YulIdentifier","src":"14909:6:53"},"nativeSrc":"14909:27:53","nodeType":"YulFunctionCall","src":"14909:27:53"},"nativeSrc":"14909:27:53","nodeType":"YulExpressionStatement","src":"14909:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"14795:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"14841:3:53","nodeType":"YulTypedName","src":"14841:3:53","type":""},{"name":"dst","nativeSrc":"14846:3:53","nodeType":"YulTypedName","src":"14846:3:53","type":""},{"name":"length","nativeSrc":"14851:6:53","nodeType":"YulTypedName","src":"14851:6:53","type":""}],"src":"14795:148:53"},{"body":{"nativeSrc":"15032:340:53","nodeType":"YulBlock","src":"15032:340:53","statements":[{"nativeSrc":"15042:74:53","nodeType":"YulAssignment","src":"15042:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"15108:6:53","nodeType":"YulIdentifier","src":"15108:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"15067:40:53","nodeType":"YulIdentifier","src":"15067:40:53"},"nativeSrc":"15067:48:53","nodeType":"YulFunctionCall","src":"15067:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"15051:15:53","nodeType":"YulIdentifier","src":"15051:15:53"},"nativeSrc":"15051:65:53","nodeType":"YulFunctionCall","src":"15051:65:53"},"variableNames":[{"name":"array","nativeSrc":"15042:5:53","nodeType":"YulIdentifier","src":"15042:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"15132:5:53","nodeType":"YulIdentifier","src":"15132:5:53"},{"name":"length","nativeSrc":"15139:6:53","nodeType":"YulIdentifier","src":"15139:6:53"}],"functionName":{"name":"mstore","nativeSrc":"15125:6:53","nodeType":"YulIdentifier","src":"15125:6:53"},"nativeSrc":"15125:21:53","nodeType":"YulFunctionCall","src":"15125:21:53"},"nativeSrc":"15125:21:53","nodeType":"YulExpressionStatement","src":"15125:21:53"},{"nativeSrc":"15155:27:53","nodeType":"YulVariableDeclaration","src":"15155:27:53","value":{"arguments":[{"name":"array","nativeSrc":"15170:5:53","nodeType":"YulIdentifier","src":"15170:5:53"},{"kind":"number","nativeSrc":"15177:4:53","nodeType":"YulLiteral","src":"15177:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15166:3:53","nodeType":"YulIdentifier","src":"15166:3:53"},"nativeSrc":"15166:16:53","nodeType":"YulFunctionCall","src":"15166:16:53"},"variables":[{"name":"dst","nativeSrc":"15159:3:53","nodeType":"YulTypedName","src":"15159:3:53","type":""}]},{"body":{"nativeSrc":"15220:83:53","nodeType":"YulBlock","src":"15220:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"15222:77:53","nodeType":"YulIdentifier","src":"15222:77:53"},"nativeSrc":"15222:79:53","nodeType":"YulFunctionCall","src":"15222:79:53"},"nativeSrc":"15222:79:53","nodeType":"YulExpressionStatement","src":"15222:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15201:3:53","nodeType":"YulIdentifier","src":"15201:3:53"},{"name":"length","nativeSrc":"15206:6:53","nodeType":"YulIdentifier","src":"15206:6:53"}],"functionName":{"name":"add","nativeSrc":"15197:3:53","nodeType":"YulIdentifier","src":"15197:3:53"},"nativeSrc":"15197:16:53","nodeType":"YulFunctionCall","src":"15197:16:53"},{"name":"end","nativeSrc":"15215:3:53","nodeType":"YulIdentifier","src":"15215:3:53"}],"functionName":{"name":"gt","nativeSrc":"15194:2:53","nodeType":"YulIdentifier","src":"15194:2:53"},"nativeSrc":"15194:25:53","nodeType":"YulFunctionCall","src":"15194:25:53"},"nativeSrc":"15191:112:53","nodeType":"YulIf","src":"15191:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"15349:3:53","nodeType":"YulIdentifier","src":"15349:3:53"},{"name":"dst","nativeSrc":"15354:3:53","nodeType":"YulIdentifier","src":"15354:3:53"},{"name":"length","nativeSrc":"15359:6:53","nodeType":"YulIdentifier","src":"15359:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15312:36:53","nodeType":"YulIdentifier","src":"15312:36:53"},"nativeSrc":"15312:54:53","nodeType":"YulFunctionCall","src":"15312:54:53"},"nativeSrc":"15312:54:53","nodeType":"YulExpressionStatement","src":"15312:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"14949:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15005:3:53","nodeType":"YulTypedName","src":"15005:3:53","type":""},{"name":"length","nativeSrc":"15010:6:53","nodeType":"YulTypedName","src":"15010:6:53","type":""},{"name":"end","nativeSrc":"15018:3:53","nodeType":"YulTypedName","src":"15018:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15026:5:53","nodeType":"YulTypedName","src":"15026:5:53","type":""}],"src":"14949:423:53"},{"body":{"nativeSrc":"15452:277:53","nodeType":"YulBlock","src":"15452:277:53","statements":[{"body":{"nativeSrc":"15501:83:53","nodeType":"YulBlock","src":"15501:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15503:77:53","nodeType":"YulIdentifier","src":"15503:77:53"},"nativeSrc":"15503:79:53","nodeType":"YulFunctionCall","src":"15503:79:53"},"nativeSrc":"15503:79:53","nodeType":"YulExpressionStatement","src":"15503:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15480:6:53","nodeType":"YulIdentifier","src":"15480:6:53"},{"kind":"number","nativeSrc":"15488:4:53","nodeType":"YulLiteral","src":"15488:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15476:3:53","nodeType":"YulIdentifier","src":"15476:3:53"},"nativeSrc":"15476:17:53","nodeType":"YulFunctionCall","src":"15476:17:53"},{"name":"end","nativeSrc":"15495:3:53","nodeType":"YulIdentifier","src":"15495:3:53"}],"functionName":{"name":"slt","nativeSrc":"15472:3:53","nodeType":"YulIdentifier","src":"15472:3:53"},"nativeSrc":"15472:27:53","nodeType":"YulFunctionCall","src":"15472:27:53"}],"functionName":{"name":"iszero","nativeSrc":"15465:6:53","nodeType":"YulIdentifier","src":"15465:6:53"},"nativeSrc":"15465:35:53","nodeType":"YulFunctionCall","src":"15465:35:53"},"nativeSrc":"15462:122:53","nodeType":"YulIf","src":"15462:122:53"},{"nativeSrc":"15593:34:53","nodeType":"YulVariableDeclaration","src":"15593:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"15620:6:53","nodeType":"YulIdentifier","src":"15620:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15607:12:53","nodeType":"YulIdentifier","src":"15607:12:53"},"nativeSrc":"15607:20:53","nodeType":"YulFunctionCall","src":"15607:20:53"},"variables":[{"name":"length","nativeSrc":"15597:6:53","nodeType":"YulTypedName","src":"15597:6:53","type":""}]},{"nativeSrc":"15636:87:53","nodeType":"YulAssignment","src":"15636:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15696:6:53","nodeType":"YulIdentifier","src":"15696:6:53"},{"kind":"number","nativeSrc":"15704:4:53","nodeType":"YulLiteral","src":"15704:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15692:3:53","nodeType":"YulIdentifier","src":"15692:3:53"},"nativeSrc":"15692:17:53","nodeType":"YulFunctionCall","src":"15692:17:53"},{"name":"length","nativeSrc":"15711:6:53","nodeType":"YulIdentifier","src":"15711:6:53"},{"name":"end","nativeSrc":"15719:3:53","nodeType":"YulIdentifier","src":"15719:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15645:46:53","nodeType":"YulIdentifier","src":"15645:46:53"},"nativeSrc":"15645:78:53","nodeType":"YulFunctionCall","src":"15645:78:53"},"variableNames":[{"name":"array","nativeSrc":"15636:5:53","nodeType":"YulIdentifier","src":"15636:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15391:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15430:6:53","nodeType":"YulTypedName","src":"15430:6:53","type":""},{"name":"end","nativeSrc":"15438:3:53","nodeType":"YulTypedName","src":"15438:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15446:5:53","nodeType":"YulTypedName","src":"15446:5:53","type":""}],"src":"15391:338:53"},{"body":{"nativeSrc":"15847:1008:53","nodeType":"YulBlock","src":"15847:1008:53","statements":[{"body":{"nativeSrc":"15891:83:53","nodeType":"YulBlock","src":"15891:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"15893:77:53","nodeType":"YulIdentifier","src":"15893:77:53"},"nativeSrc":"15893:79:53","nodeType":"YulFunctionCall","src":"15893:79:53"},"nativeSrc":"15893:79:53","nodeType":"YulExpressionStatement","src":"15893:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"15868:3:53","nodeType":"YulIdentifier","src":"15868:3:53"},{"name":"headStart","nativeSrc":"15873:9:53","nodeType":"YulIdentifier","src":"15873:9:53"}],"functionName":{"name":"sub","nativeSrc":"15864:3:53","nodeType":"YulIdentifier","src":"15864:3:53"},"nativeSrc":"15864:19:53","nodeType":"YulFunctionCall","src":"15864:19:53"},{"kind":"number","nativeSrc":"15885:4:53","nodeType":"YulLiteral","src":"15885:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"15860:3:53","nodeType":"YulIdentifier","src":"15860:3:53"},"nativeSrc":"15860:30:53","nodeType":"YulFunctionCall","src":"15860:30:53"},"nativeSrc":"15857:117:53","nodeType":"YulIf","src":"15857:117:53"},{"nativeSrc":"15983:30:53","nodeType":"YulAssignment","src":"15983:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"16008:4:53","nodeType":"YulLiteral","src":"16008:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"15992:15:53","nodeType":"YulIdentifier","src":"15992:15:53"},"nativeSrc":"15992:21:53","nodeType":"YulFunctionCall","src":"15992:21:53"},"variableNames":[{"name":"value","nativeSrc":"15983:5:53","nodeType":"YulIdentifier","src":"15983:5:53"}]},{"nativeSrc":"16023:170:53","nodeType":"YulBlock","src":"16023:170:53","statements":[{"nativeSrc":"16063:15:53","nodeType":"YulVariableDeclaration","src":"16063:15:53","value":{"kind":"number","nativeSrc":"16077:1:53","nodeType":"YulLiteral","src":"16077:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16067:6:53","nodeType":"YulTypedName","src":"16067:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16103:5:53","nodeType":"YulIdentifier","src":"16103:5:53"},{"kind":"number","nativeSrc":"16110:4:53","nodeType":"YulLiteral","src":"16110:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16099:3:53","nodeType":"YulIdentifier","src":"16099:3:53"},"nativeSrc":"16099:16:53","nodeType":"YulFunctionCall","src":"16099:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16157:9:53","nodeType":"YulIdentifier","src":"16157:9:53"},{"name":"offset","nativeSrc":"16168:6:53","nodeType":"YulIdentifier","src":"16168:6:53"}],"functionName":{"name":"add","nativeSrc":"16153:3:53","nodeType":"YulIdentifier","src":"16153:3:53"},"nativeSrc":"16153:22:53","nodeType":"YulFunctionCall","src":"16153:22:53"},{"name":"end","nativeSrc":"16177:3:53","nodeType":"YulIdentifier","src":"16177:3:53"}],"functionName":{"name":"abi_decode_t_enum$_AssetType_$13471","nativeSrc":"16117:35:53","nodeType":"YulIdentifier","src":"16117:35:53"},"nativeSrc":"16117:64:53","nodeType":"YulFunctionCall","src":"16117:64:53"}],"functionName":{"name":"mstore","nativeSrc":"16092:6:53","nodeType":"YulIdentifier","src":"16092:6:53"},"nativeSrc":"16092:90:53","nodeType":"YulFunctionCall","src":"16092:90:53"},"nativeSrc":"16092:90:53","nodeType":"YulExpressionStatement","src":"16092:90:53"}]},{"nativeSrc":"16203:152:53","nodeType":"YulBlock","src":"16203:152:53","statements":[{"nativeSrc":"16239:16:53","nodeType":"YulVariableDeclaration","src":"16239:16:53","value":{"kind":"number","nativeSrc":"16253:2:53","nodeType":"YulLiteral","src":"16253:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16243:6:53","nodeType":"YulTypedName","src":"16243:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16280:5:53","nodeType":"YulIdentifier","src":"16280:5:53"},{"kind":"number","nativeSrc":"16287:4:53","nodeType":"YulLiteral","src":"16287:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16276:3:53","nodeType":"YulIdentifier","src":"16276:3:53"},"nativeSrc":"16276:16:53","nodeType":"YulFunctionCall","src":"16276:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16319:9:53","nodeType":"YulIdentifier","src":"16319:9:53"},{"name":"offset","nativeSrc":"16330:6:53","nodeType":"YulIdentifier","src":"16330:6:53"}],"functionName":{"name":"add","nativeSrc":"16315:3:53","nodeType":"YulIdentifier","src":"16315:3:53"},"nativeSrc":"16315:22:53","nodeType":"YulFunctionCall","src":"16315:22:53"},{"name":"end","nativeSrc":"16339:3:53","nodeType":"YulIdentifier","src":"16339:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16294:20:53","nodeType":"YulIdentifier","src":"16294:20:53"},"nativeSrc":"16294:49:53","nodeType":"YulFunctionCall","src":"16294:49:53"}],"functionName":{"name":"mstore","nativeSrc":"16269:6:53","nodeType":"YulIdentifier","src":"16269:6:53"},"nativeSrc":"16269:75:53","nodeType":"YulFunctionCall","src":"16269:75:53"},"nativeSrc":"16269:75:53","nodeType":"YulExpressionStatement","src":"16269:75:53"}]},{"nativeSrc":"16365:153:53","nodeType":"YulBlock","src":"16365:153:53","statements":[{"nativeSrc":"16402:16:53","nodeType":"YulVariableDeclaration","src":"16402:16:53","value":{"kind":"number","nativeSrc":"16416:2:53","nodeType":"YulLiteral","src":"16416:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16406:6:53","nodeType":"YulTypedName","src":"16406:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16443:5:53","nodeType":"YulIdentifier","src":"16443:5:53"},{"kind":"number","nativeSrc":"16450:4:53","nodeType":"YulLiteral","src":"16450:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16439:3:53","nodeType":"YulIdentifier","src":"16439:3:53"},"nativeSrc":"16439:16:53","nodeType":"YulFunctionCall","src":"16439:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16482:9:53","nodeType":"YulIdentifier","src":"16482:9:53"},{"name":"offset","nativeSrc":"16493:6:53","nodeType":"YulIdentifier","src":"16493:6:53"}],"functionName":{"name":"add","nativeSrc":"16478:3:53","nodeType":"YulIdentifier","src":"16478:3:53"},"nativeSrc":"16478:22:53","nodeType":"YulFunctionCall","src":"16478:22:53"},{"name":"end","nativeSrc":"16502:3:53","nodeType":"YulIdentifier","src":"16502:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16457:20:53","nodeType":"YulIdentifier","src":"16457:20:53"},"nativeSrc":"16457:49:53","nodeType":"YulFunctionCall","src":"16457:49:53"}],"functionName":{"name":"mstore","nativeSrc":"16432:6:53","nodeType":"YulIdentifier","src":"16432:6:53"},"nativeSrc":"16432:75:53","nodeType":"YulFunctionCall","src":"16432:75:53"},"nativeSrc":"16432:75:53","nodeType":"YulExpressionStatement","src":"16432:75:53"}]},{"nativeSrc":"16528:320:53","nodeType":"YulBlock","src":"16528:320:53","statements":[{"nativeSrc":"16563:46:53","nodeType":"YulVariableDeclaration","src":"16563:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16594:9:53","nodeType":"YulIdentifier","src":"16594:9:53"},{"kind":"number","nativeSrc":"16605:2:53","nodeType":"YulLiteral","src":"16605:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16590:3:53","nodeType":"YulIdentifier","src":"16590:3:53"},"nativeSrc":"16590:18:53","nodeType":"YulFunctionCall","src":"16590:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"16577:12:53","nodeType":"YulIdentifier","src":"16577:12:53"},"nativeSrc":"16577:32:53","nodeType":"YulFunctionCall","src":"16577:32:53"},"variables":[{"name":"offset","nativeSrc":"16567:6:53","nodeType":"YulTypedName","src":"16567:6:53","type":""}]},{"body":{"nativeSrc":"16656:83:53","nodeType":"YulBlock","src":"16656:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16658:77:53","nodeType":"YulIdentifier","src":"16658:77:53"},"nativeSrc":"16658:79:53","nodeType":"YulFunctionCall","src":"16658:79:53"},"nativeSrc":"16658:79:53","nodeType":"YulExpressionStatement","src":"16658:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16628:6:53","nodeType":"YulIdentifier","src":"16628:6:53"},{"kind":"number","nativeSrc":"16636:18:53","nodeType":"YulLiteral","src":"16636:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16625:2:53","nodeType":"YulIdentifier","src":"16625:2:53"},"nativeSrc":"16625:30:53","nodeType":"YulFunctionCall","src":"16625:30:53"},"nativeSrc":"16622:117:53","nodeType":"YulIf","src":"16622:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16764:5:53","nodeType":"YulIdentifier","src":"16764:5:53"},{"kind":"number","nativeSrc":"16771:4:53","nodeType":"YulLiteral","src":"16771:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16760:3:53","nodeType":"YulIdentifier","src":"16760:3:53"},"nativeSrc":"16760:16:53","nodeType":"YulFunctionCall","src":"16760:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16812:9:53","nodeType":"YulIdentifier","src":"16812:9:53"},{"name":"offset","nativeSrc":"16823:6:53","nodeType":"YulIdentifier","src":"16823:6:53"}],"functionName":{"name":"add","nativeSrc":"16808:3:53","nodeType":"YulIdentifier","src":"16808:3:53"},"nativeSrc":"16808:22:53","nodeType":"YulFunctionCall","src":"16808:22:53"},{"name":"end","nativeSrc":"16832:3:53","nodeType":"YulIdentifier","src":"16832:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"16778:29:53","nodeType":"YulIdentifier","src":"16778:29:53"},"nativeSrc":"16778:58:53","nodeType":"YulFunctionCall","src":"16778:58:53"}],"functionName":{"name":"mstore","nativeSrc":"16753:6:53","nodeType":"YulIdentifier","src":"16753:6:53"},"nativeSrc":"16753:84:53","nodeType":"YulFunctionCall","src":"16753:84:53"},"nativeSrc":"16753:84:53","nodeType":"YulExpressionStatement","src":"16753:84:53"}]}]},"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"15765:1090:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15822:9:53","nodeType":"YulTypedName","src":"15822:9:53","type":""},{"name":"end","nativeSrc":"15833:3:53","nodeType":"YulTypedName","src":"15833:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15841:5:53","nodeType":"YulTypedName","src":"15841:5:53","type":""}],"src":"15765:1090:53"},{"body":{"nativeSrc":"16954:450:53","nodeType":"YulBlock","src":"16954:450:53","statements":[{"body":{"nativeSrc":"17000:83:53","nodeType":"YulBlock","src":"17000:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17002:77:53","nodeType":"YulIdentifier","src":"17002:77:53"},"nativeSrc":"17002:79:53","nodeType":"YulFunctionCall","src":"17002:79:53"},"nativeSrc":"17002:79:53","nodeType":"YulExpressionStatement","src":"17002:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16975:7:53","nodeType":"YulIdentifier","src":"16975:7:53"},{"name":"headStart","nativeSrc":"16984:9:53","nodeType":"YulIdentifier","src":"16984:9:53"}],"functionName":{"name":"sub","nativeSrc":"16971:3:53","nodeType":"YulIdentifier","src":"16971:3:53"},"nativeSrc":"16971:23:53","nodeType":"YulFunctionCall","src":"16971:23:53"},{"kind":"number","nativeSrc":"16996:2:53","nodeType":"YulLiteral","src":"16996:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16967:3:53","nodeType":"YulIdentifier","src":"16967:3:53"},"nativeSrc":"16967:32:53","nodeType":"YulFunctionCall","src":"16967:32:53"},"nativeSrc":"16964:119:53","nodeType":"YulIf","src":"16964:119:53"},{"nativeSrc":"17093:304:53","nodeType":"YulBlock","src":"17093:304:53","statements":[{"nativeSrc":"17108:45:53","nodeType":"YulVariableDeclaration","src":"17108:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17139:9:53","nodeType":"YulIdentifier","src":"17139:9:53"},{"kind":"number","nativeSrc":"17150:1:53","nodeType":"YulLiteral","src":"17150:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17135:3:53","nodeType":"YulIdentifier","src":"17135:3:53"},"nativeSrc":"17135:17:53","nodeType":"YulFunctionCall","src":"17135:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"17122:12:53","nodeType":"YulIdentifier","src":"17122:12:53"},"nativeSrc":"17122:31:53","nodeType":"YulFunctionCall","src":"17122:31:53"},"variables":[{"name":"offset","nativeSrc":"17112:6:53","nodeType":"YulTypedName","src":"17112:6:53","type":""}]},{"body":{"nativeSrc":"17200:83:53","nodeType":"YulBlock","src":"17200:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17202:77:53","nodeType":"YulIdentifier","src":"17202:77:53"},"nativeSrc":"17202:79:53","nodeType":"YulFunctionCall","src":"17202:79:53"},"nativeSrc":"17202:79:53","nodeType":"YulExpressionStatement","src":"17202:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17172:6:53","nodeType":"YulIdentifier","src":"17172:6:53"},{"kind":"number","nativeSrc":"17180:18:53","nodeType":"YulLiteral","src":"17180:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17169:2:53","nodeType":"YulIdentifier","src":"17169:2:53"},"nativeSrc":"17169:30:53","nodeType":"YulFunctionCall","src":"17169:30:53"},"nativeSrc":"17166:117:53","nodeType":"YulIf","src":"17166:117:53"},{"nativeSrc":"17297:90:53","nodeType":"YulAssignment","src":"17297:90:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17359:9:53","nodeType":"YulIdentifier","src":"17359:9:53"},{"name":"offset","nativeSrc":"17370:6:53","nodeType":"YulIdentifier","src":"17370:6:53"}],"functionName":{"name":"add","nativeSrc":"17355:3:53","nodeType":"YulIdentifier","src":"17355:3:53"},"nativeSrc":"17355:22:53","nodeType":"YulFunctionCall","src":"17355:22:53"},{"name":"dataEnd","nativeSrc":"17379:7:53","nodeType":"YulIdentifier","src":"17379:7:53"}],"functionName":{"name":"abi_decode_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"17307:47:53","nodeType":"YulIdentifier","src":"17307:47:53"},"nativeSrc":"17307:80:53","nodeType":"YulFunctionCall","src":"17307:80:53"},"variableNames":[{"name":"value0","nativeSrc":"17297:6:53","nodeType":"YulIdentifier","src":"17297:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr","nativeSrc":"16861:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16924:9:53","nodeType":"YulTypedName","src":"16924:9:53","type":""},{"name":"dataEnd","nativeSrc":"16935:7:53","nodeType":"YulTypedName","src":"16935:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16947:6:53","nodeType":"YulTypedName","src":"16947:6:53","type":""}],"src":"16861:543:53"},{"body":{"nativeSrc":"17438:152:53","nodeType":"YulBlock","src":"17438:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17455:1:53","nodeType":"YulLiteral","src":"17455:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17458:77:53","nodeType":"YulLiteral","src":"17458:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17448:6:53","nodeType":"YulIdentifier","src":"17448:6:53"},"nativeSrc":"17448:88:53","nodeType":"YulFunctionCall","src":"17448:88:53"},"nativeSrc":"17448:88:53","nodeType":"YulExpressionStatement","src":"17448:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17552:1:53","nodeType":"YulLiteral","src":"17552:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"17555:4:53","nodeType":"YulLiteral","src":"17555:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"17545:6:53","nodeType":"YulIdentifier","src":"17545:6:53"},"nativeSrc":"17545:15:53","nodeType":"YulFunctionCall","src":"17545:15:53"},"nativeSrc":"17545:15:53","nodeType":"YulExpressionStatement","src":"17545:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17576:1:53","nodeType":"YulLiteral","src":"17576:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17579:4:53","nodeType":"YulLiteral","src":"17579:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17569:6:53","nodeType":"YulIdentifier","src":"17569:6:53"},"nativeSrc":"17569:15:53","nodeType":"YulFunctionCall","src":"17569:15:53"},"nativeSrc":"17569:15:53","nodeType":"YulExpressionStatement","src":"17569:15:53"}]},"name":"panic_error_0x21","nativeSrc":"17410:180:53","nodeType":"YulFunctionDefinition","src":"17410:180:53"},{"body":{"nativeSrc":"17639:79:53","nodeType":"YulBlock","src":"17639:79:53","statements":[{"body":{"nativeSrc":"17696:16:53","nodeType":"YulBlock","src":"17696:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17705:1:53","nodeType":"YulLiteral","src":"17705:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17708:1:53","nodeType":"YulLiteral","src":"17708:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17698:6:53","nodeType":"YulIdentifier","src":"17698:6:53"},"nativeSrc":"17698:12:53","nodeType":"YulFunctionCall","src":"17698:12:53"},"nativeSrc":"17698:12:53","nodeType":"YulExpressionStatement","src":"17698:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17662:5:53","nodeType":"YulIdentifier","src":"17662:5:53"},{"arguments":[{"name":"value","nativeSrc":"17687:5:53","nodeType":"YulIdentifier","src":"17687:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"17669:17:53","nodeType":"YulIdentifier","src":"17669:17:53"},"nativeSrc":"17669:24:53","nodeType":"YulFunctionCall","src":"17669:24:53"}],"functionName":{"name":"eq","nativeSrc":"17659:2:53","nodeType":"YulIdentifier","src":"17659:2:53"},"nativeSrc":"17659:35:53","nodeType":"YulFunctionCall","src":"17659:35:53"}],"functionName":{"name":"iszero","nativeSrc":"17652:6:53","nodeType":"YulIdentifier","src":"17652:6:53"},"nativeSrc":"17652:43:53","nodeType":"YulFunctionCall","src":"17652:43:53"},"nativeSrc":"17649:63:53","nodeType":"YulIf","src":"17649:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"17596:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17632:5:53","nodeType":"YulTypedName","src":"17632:5:53","type":""}],"src":"17596:122:53"},{"body":{"nativeSrc":"17787:80:53","nodeType":"YulBlock","src":"17787:80:53","statements":[{"nativeSrc":"17797:22:53","nodeType":"YulAssignment","src":"17797:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"17812:6:53","nodeType":"YulIdentifier","src":"17812:6:53"}],"functionName":{"name":"mload","nativeSrc":"17806:5:53","nodeType":"YulIdentifier","src":"17806:5:53"},"nativeSrc":"17806:13:53","nodeType":"YulFunctionCall","src":"17806:13:53"},"variableNames":[{"name":"value","nativeSrc":"17797:5:53","nodeType":"YulIdentifier","src":"17797:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17855:5:53","nodeType":"YulIdentifier","src":"17855:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"17828:26:53","nodeType":"YulIdentifier","src":"17828:26:53"},"nativeSrc":"17828:33:53","nodeType":"YulFunctionCall","src":"17828:33:53"},"nativeSrc":"17828:33:53","nodeType":"YulExpressionStatement","src":"17828:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"17724:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17765:6:53","nodeType":"YulTypedName","src":"17765:6:53","type":""},{"name":"end","nativeSrc":"17773:3:53","nodeType":"YulTypedName","src":"17773:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17781:5:53","nodeType":"YulTypedName","src":"17781:5:53","type":""}],"src":"17724:143:53"},{"body":{"nativeSrc":"18010:346:53","nodeType":"YulBlock","src":"18010:346:53","statements":[{"body":{"nativeSrc":"18054:83:53","nodeType":"YulBlock","src":"18054:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18056:77:53","nodeType":"YulIdentifier","src":"18056:77:53"},"nativeSrc":"18056:79:53","nodeType":"YulFunctionCall","src":"18056:79:53"},"nativeSrc":"18056:79:53","nodeType":"YulExpressionStatement","src":"18056:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18031:3:53","nodeType":"YulIdentifier","src":"18031:3:53"},{"name":"headStart","nativeSrc":"18036:9:53","nodeType":"YulIdentifier","src":"18036:9:53"}],"functionName":{"name":"sub","nativeSrc":"18027:3:53","nodeType":"YulIdentifier","src":"18027:3:53"},"nativeSrc":"18027:19:53","nodeType":"YulFunctionCall","src":"18027:19:53"},{"kind":"number","nativeSrc":"18048:4:53","nodeType":"YulLiteral","src":"18048:4:53","type":"","value":"0x20"}],"functionName":{"name":"slt","nativeSrc":"18023:3:53","nodeType":"YulIdentifier","src":"18023:3:53"},"nativeSrc":"18023:30:53","nodeType":"YulFunctionCall","src":"18023:30:53"},"nativeSrc":"18020:117:53","nodeType":"YulIf","src":"18020:117:53"},{"nativeSrc":"18146:30:53","nodeType":"YulAssignment","src":"18146:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"18171:4:53","nodeType":"YulLiteral","src":"18171:4:53","type":"","value":"0x20"}],"functionName":{"name":"allocate_memory","nativeSrc":"18155:15:53","nodeType":"YulIdentifier","src":"18155:15:53"},"nativeSrc":"18155:21:53","nodeType":"YulFunctionCall","src":"18155:21:53"},"variableNames":[{"name":"value","nativeSrc":"18146:5:53","nodeType":"YulIdentifier","src":"18146:5:53"}]},{"nativeSrc":"18186:163:53","nodeType":"YulBlock","src":"18186:163:53","statements":[{"nativeSrc":"18223:15:53","nodeType":"YulVariableDeclaration","src":"18223:15:53","value":{"kind":"number","nativeSrc":"18237:1:53","nodeType":"YulLiteral","src":"18237:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18227:6:53","nodeType":"YulTypedName","src":"18227:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18263:5:53","nodeType":"YulIdentifier","src":"18263:5:53"},{"kind":"number","nativeSrc":"18270:4:53","nodeType":"YulLiteral","src":"18270:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18259:3:53","nodeType":"YulIdentifier","src":"18259:3:53"},"nativeSrc":"18259:16:53","nodeType":"YulFunctionCall","src":"18259:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18313:9:53","nodeType":"YulIdentifier","src":"18313:9:53"},{"name":"offset","nativeSrc":"18324:6:53","nodeType":"YulIdentifier","src":"18324:6:53"}],"functionName":{"name":"add","nativeSrc":"18309:3:53","nodeType":"YulIdentifier","src":"18309:3:53"},"nativeSrc":"18309:22:53","nodeType":"YulFunctionCall","src":"18309:22:53"},{"name":"end","nativeSrc":"18333:3:53","nodeType":"YulIdentifier","src":"18333:3:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"18277:31:53","nodeType":"YulIdentifier","src":"18277:31:53"},"nativeSrc":"18277:60:53","nodeType":"YulFunctionCall","src":"18277:60:53"}],"functionName":{"name":"mstore","nativeSrc":"18252:6:53","nodeType":"YulIdentifier","src":"18252:6:53"},"nativeSrc":"18252:86:53","nodeType":"YulFunctionCall","src":"18252:86:53"},"nativeSrc":"18252:86:53","nodeType":"YulExpressionStatement","src":"18252:86:53"}]}]},"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"17910:446:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17985:9:53","nodeType":"YulTypedName","src":"17985:9:53","type":""},{"name":"end","nativeSrc":"17996:3:53","nodeType":"YulTypedName","src":"17996:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18004:5:53","nodeType":"YulTypedName","src":"18004:5:53","type":""}],"src":"17910:446:53"},{"body":{"nativeSrc":"18473:308:53","nodeType":"YulBlock","src":"18473:308:53","statements":[{"body":{"nativeSrc":"18519:83:53","nodeType":"YulBlock","src":"18519:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18521:77:53","nodeType":"YulIdentifier","src":"18521:77:53"},"nativeSrc":"18521:79:53","nodeType":"YulFunctionCall","src":"18521:79:53"},"nativeSrc":"18521:79:53","nodeType":"YulExpressionStatement","src":"18521:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18494:7:53","nodeType":"YulIdentifier","src":"18494:7:53"},{"name":"headStart","nativeSrc":"18503:9:53","nodeType":"YulIdentifier","src":"18503:9:53"}],"functionName":{"name":"sub","nativeSrc":"18490:3:53","nodeType":"YulIdentifier","src":"18490:3:53"},"nativeSrc":"18490:23:53","nodeType":"YulFunctionCall","src":"18490:23:53"},{"kind":"number","nativeSrc":"18515:2:53","nodeType":"YulLiteral","src":"18515:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18486:3:53","nodeType":"YulIdentifier","src":"18486:3:53"},"nativeSrc":"18486:32:53","nodeType":"YulFunctionCall","src":"18486:32:53"},"nativeSrc":"18483:119:53","nodeType":"YulIf","src":"18483:119:53"},{"nativeSrc":"18612:162:53","nodeType":"YulBlock","src":"18612:162:53","statements":[{"nativeSrc":"18627:15:53","nodeType":"YulVariableDeclaration","src":"18627:15:53","value":{"kind":"number","nativeSrc":"18641:1:53","nodeType":"YulLiteral","src":"18641:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18631:6:53","nodeType":"YulTypedName","src":"18631:6:53","type":""}]},{"nativeSrc":"18656:108:53","nodeType":"YulAssignment","src":"18656:108:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18736:9:53","nodeType":"YulIdentifier","src":"18736:9:53"},{"name":"offset","nativeSrc":"18747:6:53","nodeType":"YulIdentifier","src":"18747:6:53"}],"functionName":{"name":"add","nativeSrc":"18732:3:53","nodeType":"YulIdentifier","src":"18732:3:53"},"nativeSrc":"18732:22:53","nodeType":"YulFunctionCall","src":"18732:22:53"},{"name":"dataEnd","nativeSrc":"18756:7:53","nodeType":"YulIdentifier","src":"18756:7:53"}],"functionName":{"name":"abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"18666:65:53","nodeType":"YulIdentifier","src":"18666:65:53"},"nativeSrc":"18666:98:53","nodeType":"YulFunctionCall","src":"18666:98:53"},"variableNames":[{"name":"value0","nativeSrc":"18656:6:53","nodeType":"YulIdentifier","src":"18656:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory","nativeSrc":"18362:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18443:9:53","nodeType":"YulTypedName","src":"18443:9:53","type":""},{"name":"dataEnd","nativeSrc":"18454:7:53","nodeType":"YulTypedName","src":"18454:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18466:6:53","nodeType":"YulTypedName","src":"18466:6:53","type":""}],"src":"18362:419:53"},{"body":{"nativeSrc":"18913:206:53","nodeType":"YulBlock","src":"18913:206:53","statements":[{"nativeSrc":"18923:26:53","nodeType":"YulAssignment","src":"18923:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18935:9:53","nodeType":"YulIdentifier","src":"18935:9:53"},{"kind":"number","nativeSrc":"18946:2:53","nodeType":"YulLiteral","src":"18946:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18931:3:53","nodeType":"YulIdentifier","src":"18931:3:53"},"nativeSrc":"18931:18:53","nodeType":"YulFunctionCall","src":"18931:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18923:4:53","nodeType":"YulIdentifier","src":"18923:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19003:6:53","nodeType":"YulIdentifier","src":"19003:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19016:9:53","nodeType":"YulIdentifier","src":"19016:9:53"},{"kind":"number","nativeSrc":"19027:1:53","nodeType":"YulLiteral","src":"19027:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19012:3:53","nodeType":"YulIdentifier","src":"19012:3:53"},"nativeSrc":"19012:17:53","nodeType":"YulFunctionCall","src":"19012:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18959:43:53","nodeType":"YulIdentifier","src":"18959:43:53"},"nativeSrc":"18959:71:53","nodeType":"YulFunctionCall","src":"18959:71:53"},"nativeSrc":"18959:71:53","nodeType":"YulExpressionStatement","src":"18959:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19084:6:53","nodeType":"YulIdentifier","src":"19084:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19097:9:53","nodeType":"YulIdentifier","src":"19097:9:53"},{"kind":"number","nativeSrc":"19108:2:53","nodeType":"YulLiteral","src":"19108:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19093:3:53","nodeType":"YulIdentifier","src":"19093:3:53"},"nativeSrc":"19093:18:53","nodeType":"YulFunctionCall","src":"19093:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19040:43:53","nodeType":"YulIdentifier","src":"19040:43:53"},"nativeSrc":"19040:72:53","nodeType":"YulFunctionCall","src":"19040:72:53"},"nativeSrc":"19040:72:53","nodeType":"YulExpressionStatement","src":"19040:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"18787:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18877:9:53","nodeType":"YulTypedName","src":"18877:9:53","type":""},{"name":"value1","nativeSrc":"18889:6:53","nodeType":"YulTypedName","src":"18889:6:53","type":""},{"name":"value0","nativeSrc":"18897:6:53","nodeType":"YulTypedName","src":"18897:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18908:4:53","nodeType":"YulTypedName","src":"18908:4:53","type":""}],"src":"18787:332:53"},{"body":{"nativeSrc":"19214:28:53","nodeType":"YulBlock","src":"19214:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19231:1:53","nodeType":"YulLiteral","src":"19231:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19234:1:53","nodeType":"YulLiteral","src":"19234:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19224:6:53","nodeType":"YulIdentifier","src":"19224:6:53"},"nativeSrc":"19224:12:53","nodeType":"YulFunctionCall","src":"19224:12:53"},"nativeSrc":"19224:12:53","nodeType":"YulExpressionStatement","src":"19224:12:53"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"19125:117:53","nodeType":"YulFunctionDefinition","src":"19125:117:53"},{"body":{"nativeSrc":"19337:28:53","nodeType":"YulBlock","src":"19337:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19354:1:53","nodeType":"YulLiteral","src":"19354:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19357:1:53","nodeType":"YulLiteral","src":"19357:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19347:6:53","nodeType":"YulIdentifier","src":"19347:6:53"},"nativeSrc":"19347:12:53","nodeType":"YulFunctionCall","src":"19347:12:53"},"nativeSrc":"19347:12:53","nodeType":"YulExpressionStatement","src":"19347:12:53"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"19248:117:53","nodeType":"YulFunctionDefinition","src":"19248:117:53"},{"body":{"nativeSrc":"19460:28:53","nodeType":"YulBlock","src":"19460:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19477:1:53","nodeType":"YulLiteral","src":"19477:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19480:1:53","nodeType":"YulLiteral","src":"19480:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19470:6:53","nodeType":"YulIdentifier","src":"19470:6:53"},"nativeSrc":"19470:12:53","nodeType":"YulFunctionCall","src":"19470:12:53"},"nativeSrc":"19470:12:53","nodeType":"YulExpressionStatement","src":"19470:12:53"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"19371:117:53","nodeType":"YulFunctionDefinition","src":"19371:117:53"},{"body":{"nativeSrc":"19584:634:53","nodeType":"YulBlock","src":"19584:634:53","statements":[{"nativeSrc":"19594:51:53","nodeType":"YulVariableDeclaration","src":"19594:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"19633:11:53","nodeType":"YulIdentifier","src":"19633:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"19620:12:53","nodeType":"YulIdentifier","src":"19620:12:53"},"nativeSrc":"19620:25:53","nodeType":"YulFunctionCall","src":"19620:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"19598:18:53","nodeType":"YulTypedName","src":"19598:18:53","type":""}]},{"body":{"nativeSrc":"19739:83:53","nodeType":"YulBlock","src":"19739:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"19741:77:53","nodeType":"YulIdentifier","src":"19741:77:53"},"nativeSrc":"19741:79:53","nodeType":"YulFunctionCall","src":"19741:79:53"},"nativeSrc":"19741:79:53","nodeType":"YulExpressionStatement","src":"19741:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"19668:18:53","nodeType":"YulIdentifier","src":"19668:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"19696:12:53","nodeType":"YulIdentifier","src":"19696:12:53"},"nativeSrc":"19696:14:53","nodeType":"YulFunctionCall","src":"19696:14:53"},{"name":"base_ref","nativeSrc":"19712:8:53","nodeType":"YulIdentifier","src":"19712:8:53"}],"functionName":{"name":"sub","nativeSrc":"19692:3:53","nodeType":"YulIdentifier","src":"19692:3:53"},"nativeSrc":"19692:29:53","nodeType":"YulFunctionCall","src":"19692:29:53"},{"arguments":[{"kind":"number","nativeSrc":"19727:4:53","nodeType":"YulLiteral","src":"19727:4:53","type":"","value":"0x20"},{"kind":"number","nativeSrc":"19733:1:53","nodeType":"YulLiteral","src":"19733:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"19723:3:53","nodeType":"YulIdentifier","src":"19723:3:53"},"nativeSrc":"19723:12:53","nodeType":"YulFunctionCall","src":"19723:12:53"}],"functionName":{"name":"sub","nativeSrc":"19688:3:53","nodeType":"YulIdentifier","src":"19688:3:53"},"nativeSrc":"19688:48:53","nodeType":"YulFunctionCall","src":"19688:48:53"}],"functionName":{"name":"slt","nativeSrc":"19664:3:53","nodeType":"YulIdentifier","src":"19664:3:53"},"nativeSrc":"19664:73:53","nodeType":"YulFunctionCall","src":"19664:73:53"}],"functionName":{"name":"iszero","nativeSrc":"19657:6:53","nodeType":"YulIdentifier","src":"19657:6:53"},"nativeSrc":"19657:81:53","nodeType":"YulFunctionCall","src":"19657:81:53"},"nativeSrc":"19654:168:53","nodeType":"YulIf","src":"19654:168:53"},{"nativeSrc":"19831:41:53","nodeType":"YulAssignment","src":"19831:41:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"19843:8:53","nodeType":"YulIdentifier","src":"19843:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"19853:18:53","nodeType":"YulIdentifier","src":"19853:18:53"}],"functionName":{"name":"add","nativeSrc":"19839:3:53","nodeType":"YulIdentifier","src":"19839:3:53"},"nativeSrc":"19839:33:53","nodeType":"YulFunctionCall","src":"19839:33:53"},"variableNames":[{"name":"addr","nativeSrc":"19831:4:53","nodeType":"YulIdentifier","src":"19831:4:53"}]},{"nativeSrc":"19882:28:53","nodeType":"YulAssignment","src":"19882:28:53","value":{"arguments":[{"name":"addr","nativeSrc":"19905:4:53","nodeType":"YulIdentifier","src":"19905:4:53"}],"functionName":{"name":"calldataload","nativeSrc":"19892:12:53","nodeType":"YulIdentifier","src":"19892:12:53"},"nativeSrc":"19892:18:53","nodeType":"YulFunctionCall","src":"19892:18:53"},"variableNames":[{"name":"length","nativeSrc":"19882:6:53","nodeType":"YulIdentifier","src":"19882:6:53"}]},{"body":{"nativeSrc":"19953:83:53","nodeType":"YulBlock","src":"19953:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"19955:77:53","nodeType":"YulIdentifier","src":"19955:77:53"},"nativeSrc":"19955:79:53","nodeType":"YulFunctionCall","src":"19955:79:53"},"nativeSrc":"19955:79:53","nodeType":"YulExpressionStatement","src":"19955:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"19925:6:53","nodeType":"YulIdentifier","src":"19925:6:53"},{"kind":"number","nativeSrc":"19933:18:53","nodeType":"YulLiteral","src":"19933:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19922:2:53","nodeType":"YulIdentifier","src":"19922:2:53"},"nativeSrc":"19922:30:53","nodeType":"YulFunctionCall","src":"19922:30:53"},"nativeSrc":"19919:117:53","nodeType":"YulIf","src":"19919:117:53"},{"nativeSrc":"20045:21:53","nodeType":"YulAssignment","src":"20045:21:53","value":{"arguments":[{"name":"addr","nativeSrc":"20057:4:53","nodeType":"YulIdentifier","src":"20057:4:53"},{"kind":"number","nativeSrc":"20063:2:53","nodeType":"YulLiteral","src":"20063:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20053:3:53","nodeType":"YulIdentifier","src":"20053:3:53"},"nativeSrc":"20053:13:53","nodeType":"YulFunctionCall","src":"20053:13:53"},"variableNames":[{"name":"addr","nativeSrc":"20045:4:53","nodeType":"YulIdentifier","src":"20045:4:53"}]},{"body":{"nativeSrc":"20128:83:53","nodeType":"YulBlock","src":"20128:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"20130:77:53","nodeType":"YulIdentifier","src":"20130:77:53"},"nativeSrc":"20130:79:53","nodeType":"YulFunctionCall","src":"20130:79:53"},"nativeSrc":"20130:79:53","nodeType":"YulExpressionStatement","src":"20130:79:53"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"20082:4:53","nodeType":"YulIdentifier","src":"20082:4:53"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20092:12:53","nodeType":"YulIdentifier","src":"20092:12:53"},"nativeSrc":"20092:14:53","nodeType":"YulFunctionCall","src":"20092:14:53"},{"arguments":[{"name":"length","nativeSrc":"20112:6:53","nodeType":"YulIdentifier","src":"20112:6:53"},{"kind":"number","nativeSrc":"20120:4:53","nodeType":"YulLiteral","src":"20120:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"20108:3:53","nodeType":"YulIdentifier","src":"20108:3:53"},"nativeSrc":"20108:17:53","nodeType":"YulFunctionCall","src":"20108:17:53"}],"functionName":{"name":"sub","nativeSrc":"20088:3:53","nodeType":"YulIdentifier","src":"20088:3:53"},"nativeSrc":"20088:38:53","nodeType":"YulFunctionCall","src":"20088:38:53"}],"functionName":{"name":"sgt","nativeSrc":"20078:3:53","nodeType":"YulIdentifier","src":"20078:3:53"},"nativeSrc":"20078:49:53","nodeType":"YulFunctionCall","src":"20078:49:53"},"nativeSrc":"20075:136:53","nodeType":"YulIf","src":"20075:136:53"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"19494:724:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"19545:8:53","nodeType":"YulTypedName","src":"19545:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"19555:11:53","nodeType":"YulTypedName","src":"19555:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"19571:4:53","nodeType":"YulTypedName","src":"19571:4:53","type":""},{"name":"length","nativeSrc":"19577:6:53","nodeType":"YulTypedName","src":"19577:6:53","type":""}],"src":"19494:724:53"},{"body":{"nativeSrc":"20268:147:53","nodeType":"YulBlock","src":"20268:147:53","statements":[{"nativeSrc":"20278:25:53","nodeType":"YulAssignment","src":"20278:25:53","value":{"arguments":[{"name":"x","nativeSrc":"20301:1:53","nodeType":"YulIdentifier","src":"20301:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20283:17:53","nodeType":"YulIdentifier","src":"20283:17:53"},"nativeSrc":"20283:20:53","nodeType":"YulFunctionCall","src":"20283:20:53"},"variableNames":[{"name":"x","nativeSrc":"20278:1:53","nodeType":"YulIdentifier","src":"20278:1:53"}]},{"nativeSrc":"20312:25:53","nodeType":"YulAssignment","src":"20312:25:53","value":{"arguments":[{"name":"y","nativeSrc":"20335:1:53","nodeType":"YulIdentifier","src":"20335:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20317:17:53","nodeType":"YulIdentifier","src":"20317:17:53"},"nativeSrc":"20317:20:53","nodeType":"YulFunctionCall","src":"20317:20:53"},"variableNames":[{"name":"y","nativeSrc":"20312:1:53","nodeType":"YulIdentifier","src":"20312:1:53"}]},{"nativeSrc":"20346:16:53","nodeType":"YulAssignment","src":"20346:16:53","value":{"arguments":[{"name":"x","nativeSrc":"20357:1:53","nodeType":"YulIdentifier","src":"20357:1:53"},{"name":"y","nativeSrc":"20360:1:53","nodeType":"YulIdentifier","src":"20360:1:53"}],"functionName":{"name":"add","nativeSrc":"20353:3:53","nodeType":"YulIdentifier","src":"20353:3:53"},"nativeSrc":"20353:9:53","nodeType":"YulFunctionCall","src":"20353:9:53"},"variableNames":[{"name":"sum","nativeSrc":"20346:3:53","nodeType":"YulIdentifier","src":"20346:3:53"}]},{"body":{"nativeSrc":"20386:22:53","nodeType":"YulBlock","src":"20386:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20388:16:53","nodeType":"YulIdentifier","src":"20388:16:53"},"nativeSrc":"20388:18:53","nodeType":"YulFunctionCall","src":"20388:18:53"},"nativeSrc":"20388:18:53","nodeType":"YulExpressionStatement","src":"20388:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"20378:1:53","nodeType":"YulIdentifier","src":"20378:1:53"},{"name":"sum","nativeSrc":"20381:3:53","nodeType":"YulIdentifier","src":"20381:3:53"}],"functionName":{"name":"gt","nativeSrc":"20375:2:53","nodeType":"YulIdentifier","src":"20375:2:53"},"nativeSrc":"20375:10:53","nodeType":"YulFunctionCall","src":"20375:10:53"},"nativeSrc":"20372:36:53","nodeType":"YulIf","src":"20372:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"20224:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20255:1:53","nodeType":"YulTypedName","src":"20255:1:53","type":""},{"name":"y","nativeSrc":"20258:1:53","nodeType":"YulTypedName","src":"20258:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"20264:3:53","nodeType":"YulTypedName","src":"20264:3:53","type":""}],"src":"20224:191:53"},{"body":{"nativeSrc":"20464:162:53","nodeType":"YulBlock","src":"20464:162:53","statements":[{"nativeSrc":"20474:24:53","nodeType":"YulAssignment","src":"20474:24:53","value":{"arguments":[{"name":"x","nativeSrc":"20496:1:53","nodeType":"YulIdentifier","src":"20496:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"20479:16:53","nodeType":"YulIdentifier","src":"20479:16:53"},"nativeSrc":"20479:19:53","nodeType":"YulFunctionCall","src":"20479:19:53"},"variableNames":[{"name":"x","nativeSrc":"20474:1:53","nodeType":"YulIdentifier","src":"20474:1:53"}]},{"nativeSrc":"20507:24:53","nodeType":"YulAssignment","src":"20507:24:53","value":{"arguments":[{"name":"y","nativeSrc":"20529:1:53","nodeType":"YulIdentifier","src":"20529:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"20512:16:53","nodeType":"YulIdentifier","src":"20512:16:53"},"nativeSrc":"20512:19:53","nodeType":"YulFunctionCall","src":"20512:19:53"},"variableNames":[{"name":"y","nativeSrc":"20507:1:53","nodeType":"YulIdentifier","src":"20507:1:53"}]},{"nativeSrc":"20540:16:53","nodeType":"YulAssignment","src":"20540:16:53","value":{"arguments":[{"name":"x","nativeSrc":"20551:1:53","nodeType":"YulIdentifier","src":"20551:1:53"},{"name":"y","nativeSrc":"20554:1:53","nodeType":"YulIdentifier","src":"20554:1:53"}],"functionName":{"name":"add","nativeSrc":"20547:3:53","nodeType":"YulIdentifier","src":"20547:3:53"},"nativeSrc":"20547:9:53","nodeType":"YulFunctionCall","src":"20547:9:53"},"variableNames":[{"name":"sum","nativeSrc":"20540:3:53","nodeType":"YulIdentifier","src":"20540:3:53"}]},{"body":{"nativeSrc":"20597:22:53","nodeType":"YulBlock","src":"20597:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20599:16:53","nodeType":"YulIdentifier","src":"20599:16:53"},"nativeSrc":"20599:18:53","nodeType":"YulFunctionCall","src":"20599:18:53"},"nativeSrc":"20599:18:53","nodeType":"YulExpressionStatement","src":"20599:18:53"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"20572:3:53","nodeType":"YulIdentifier","src":"20572:3:53"},{"kind":"number","nativeSrc":"20577:18:53","nodeType":"YulLiteral","src":"20577:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20569:2:53","nodeType":"YulIdentifier","src":"20569:2:53"},"nativeSrc":"20569:27:53","nodeType":"YulFunctionCall","src":"20569:27:53"},"nativeSrc":"20566:53:53","nodeType":"YulIf","src":"20566:53:53"}]},"name":"checked_add_t_uint64","nativeSrc":"20421:205:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20451:1:53","nodeType":"YulTypedName","src":"20451:1:53","type":""},{"name":"y","nativeSrc":"20454:1:53","nodeType":"YulTypedName","src":"20454:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"20460:3:53","nodeType":"YulTypedName","src":"20460:3:53","type":""}],"src":"20421:205:53"},{"body":{"nativeSrc":"20786:288:53","nodeType":"YulBlock","src":"20786:288:53","statements":[{"nativeSrc":"20796:26:53","nodeType":"YulAssignment","src":"20796:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"20808:9:53","nodeType":"YulIdentifier","src":"20808:9:53"},{"kind":"number","nativeSrc":"20819:2:53","nodeType":"YulLiteral","src":"20819:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20804:3:53","nodeType":"YulIdentifier","src":"20804:3:53"},"nativeSrc":"20804:18:53","nodeType":"YulFunctionCall","src":"20804:18:53"},"variableNames":[{"name":"tail","nativeSrc":"20796:4:53","nodeType":"YulIdentifier","src":"20796:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"20876:6:53","nodeType":"YulIdentifier","src":"20876:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"20889:9:53","nodeType":"YulIdentifier","src":"20889:9:53"},{"kind":"number","nativeSrc":"20900:1:53","nodeType":"YulLiteral","src":"20900:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20885:3:53","nodeType":"YulIdentifier","src":"20885:3:53"},"nativeSrc":"20885:17:53","nodeType":"YulFunctionCall","src":"20885:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20832:43:53","nodeType":"YulIdentifier","src":"20832:43:53"},"nativeSrc":"20832:71:53","nodeType":"YulFunctionCall","src":"20832:71:53"},"nativeSrc":"20832:71:53","nodeType":"YulExpressionStatement","src":"20832:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"20957:6:53","nodeType":"YulIdentifier","src":"20957:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"20970:9:53","nodeType":"YulIdentifier","src":"20970:9:53"},{"kind":"number","nativeSrc":"20981:2:53","nodeType":"YulLiteral","src":"20981:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20966:3:53","nodeType":"YulIdentifier","src":"20966:3:53"},"nativeSrc":"20966:18:53","nodeType":"YulFunctionCall","src":"20966:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20913:43:53","nodeType":"YulIdentifier","src":"20913:43:53"},"nativeSrc":"20913:72:53","nodeType":"YulFunctionCall","src":"20913:72:53"},"nativeSrc":"20913:72:53","nodeType":"YulExpressionStatement","src":"20913:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21039:6:53","nodeType":"YulIdentifier","src":"21039:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21052:9:53","nodeType":"YulIdentifier","src":"21052:9:53"},{"kind":"number","nativeSrc":"21063:2:53","nodeType":"YulLiteral","src":"21063:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21048:3:53","nodeType":"YulIdentifier","src":"21048:3:53"},"nativeSrc":"21048:18:53","nodeType":"YulFunctionCall","src":"21048:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"20995:43:53","nodeType":"YulIdentifier","src":"20995:43:53"},"nativeSrc":"20995:72:53","nodeType":"YulFunctionCall","src":"20995:72:53"},"nativeSrc":"20995:72:53","nodeType":"YulExpressionStatement","src":"20995:72:53"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"20632:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20742:9:53","nodeType":"YulTypedName","src":"20742:9:53","type":""},{"name":"value2","nativeSrc":"20754:6:53","nodeType":"YulTypedName","src":"20754:6:53","type":""},{"name":"value1","nativeSrc":"20762:6:53","nodeType":"YulTypedName","src":"20762:6:53","type":""},{"name":"value0","nativeSrc":"20770:6:53","nodeType":"YulTypedName","src":"20770:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20781:4:53","nodeType":"YulTypedName","src":"20781:4:53","type":""}],"src":"20632:442:53"},{"body":{"nativeSrc":"21234:288:53","nodeType":"YulBlock","src":"21234:288:53","statements":[{"nativeSrc":"21244:26:53","nodeType":"YulAssignment","src":"21244:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21256:9:53","nodeType":"YulIdentifier","src":"21256:9:53"},{"kind":"number","nativeSrc":"21267:2:53","nodeType":"YulLiteral","src":"21267:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21252:3:53","nodeType":"YulIdentifier","src":"21252:3:53"},"nativeSrc":"21252:18:53","nodeType":"YulFunctionCall","src":"21252:18:53"},"variableNames":[{"name":"tail","nativeSrc":"21244:4:53","nodeType":"YulIdentifier","src":"21244:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21324:6:53","nodeType":"YulIdentifier","src":"21324:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21337:9:53","nodeType":"YulIdentifier","src":"21337:9:53"},{"kind":"number","nativeSrc":"21348:1:53","nodeType":"YulLiteral","src":"21348:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21333:3:53","nodeType":"YulIdentifier","src":"21333:3:53"},"nativeSrc":"21333:17:53","nodeType":"YulFunctionCall","src":"21333:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21280:43:53","nodeType":"YulIdentifier","src":"21280:43:53"},"nativeSrc":"21280:71:53","nodeType":"YulFunctionCall","src":"21280:71:53"},"nativeSrc":"21280:71:53","nodeType":"YulExpressionStatement","src":"21280:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21405:6:53","nodeType":"YulIdentifier","src":"21405:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21418:9:53","nodeType":"YulIdentifier","src":"21418:9:53"},{"kind":"number","nativeSrc":"21429:2:53","nodeType":"YulLiteral","src":"21429:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21414:3:53","nodeType":"YulIdentifier","src":"21414:3:53"},"nativeSrc":"21414:18:53","nodeType":"YulFunctionCall","src":"21414:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21361:43:53","nodeType":"YulIdentifier","src":"21361:43:53"},"nativeSrc":"21361:72:53","nodeType":"YulFunctionCall","src":"21361:72:53"},"nativeSrc":"21361:72:53","nodeType":"YulExpressionStatement","src":"21361:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21487:6:53","nodeType":"YulIdentifier","src":"21487:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21500:9:53","nodeType":"YulIdentifier","src":"21500:9:53"},{"kind":"number","nativeSrc":"21511:2:53","nodeType":"YulLiteral","src":"21511:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21496:3:53","nodeType":"YulIdentifier","src":"21496:3:53"},"nativeSrc":"21496:18:53","nodeType":"YulFunctionCall","src":"21496:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21443:43:53","nodeType":"YulIdentifier","src":"21443:43:53"},"nativeSrc":"21443:72:53","nodeType":"YulFunctionCall","src":"21443:72:53"},"nativeSrc":"21443:72:53","nodeType":"YulExpressionStatement","src":"21443:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"21080:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21190:9:53","nodeType":"YulTypedName","src":"21190:9:53","type":""},{"name":"value2","nativeSrc":"21202:6:53","nodeType":"YulTypedName","src":"21202:6:53","type":""},{"name":"value1","nativeSrc":"21210:6:53","nodeType":"YulTypedName","src":"21210:6:53","type":""},{"name":"value0","nativeSrc":"21218:6:53","nodeType":"YulTypedName","src":"21218:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21229:4:53","nodeType":"YulTypedName","src":"21229:4:53","type":""}],"src":"21080:442:53"},{"body":{"nativeSrc":"21572:164:53","nodeType":"YulBlock","src":"21572:164:53","statements":[{"nativeSrc":"21582:24:53","nodeType":"YulAssignment","src":"21582:24:53","value":{"arguments":[{"name":"x","nativeSrc":"21604:1:53","nodeType":"YulIdentifier","src":"21604:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"21587:16:53","nodeType":"YulIdentifier","src":"21587:16:53"},"nativeSrc":"21587:19:53","nodeType":"YulFunctionCall","src":"21587:19:53"},"variableNames":[{"name":"x","nativeSrc":"21582:1:53","nodeType":"YulIdentifier","src":"21582:1:53"}]},{"nativeSrc":"21615:24:53","nodeType":"YulAssignment","src":"21615:24:53","value":{"arguments":[{"name":"y","nativeSrc":"21637:1:53","nodeType":"YulIdentifier","src":"21637:1:53"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"21620:16:53","nodeType":"YulIdentifier","src":"21620:16:53"},"nativeSrc":"21620:19:53","nodeType":"YulFunctionCall","src":"21620:19:53"},"variableNames":[{"name":"y","nativeSrc":"21615:1:53","nodeType":"YulIdentifier","src":"21615:1:53"}]},{"nativeSrc":"21648:17:53","nodeType":"YulAssignment","src":"21648:17:53","value":{"arguments":[{"name":"x","nativeSrc":"21660:1:53","nodeType":"YulIdentifier","src":"21660:1:53"},{"name":"y","nativeSrc":"21663:1:53","nodeType":"YulIdentifier","src":"21663:1:53"}],"functionName":{"name":"sub","nativeSrc":"21656:3:53","nodeType":"YulIdentifier","src":"21656:3:53"},"nativeSrc":"21656:9:53","nodeType":"YulFunctionCall","src":"21656:9:53"},"variableNames":[{"name":"diff","nativeSrc":"21648:4:53","nodeType":"YulIdentifier","src":"21648:4:53"}]},{"body":{"nativeSrc":"21707:22:53","nodeType":"YulBlock","src":"21707:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21709:16:53","nodeType":"YulIdentifier","src":"21709:16:53"},"nativeSrc":"21709:18:53","nodeType":"YulFunctionCall","src":"21709:18:53"},"nativeSrc":"21709:18:53","nodeType":"YulExpressionStatement","src":"21709:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21681:4:53","nodeType":"YulIdentifier","src":"21681:4:53"},{"kind":"number","nativeSrc":"21687:18:53","nodeType":"YulLiteral","src":"21687:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21678:2:53","nodeType":"YulIdentifier","src":"21678:2:53"},"nativeSrc":"21678:28:53","nodeType":"YulFunctionCall","src":"21678:28:53"},"nativeSrc":"21675:54:53","nodeType":"YulIf","src":"21675:54:53"}]},"name":"checked_sub_t_uint64","nativeSrc":"21528:208:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21558:1:53","nodeType":"YulTypedName","src":"21558:1:53","type":""},{"name":"y","nativeSrc":"21561:1:53","nodeType":"YulTypedName","src":"21561:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21567:4:53","nodeType":"YulTypedName","src":"21567:4:53","type":""}],"src":"21528:208:53"},{"body":{"nativeSrc":"21790:362:53","nodeType":"YulBlock","src":"21790:362:53","statements":[{"nativeSrc":"21800:25:53","nodeType":"YulAssignment","src":"21800:25:53","value":{"arguments":[{"name":"x","nativeSrc":"21823:1:53","nodeType":"YulIdentifier","src":"21823:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21805:17:53","nodeType":"YulIdentifier","src":"21805:17:53"},"nativeSrc":"21805:20:53","nodeType":"YulFunctionCall","src":"21805:20:53"},"variableNames":[{"name":"x","nativeSrc":"21800:1:53","nodeType":"YulIdentifier","src":"21800:1:53"}]},{"nativeSrc":"21834:25:53","nodeType":"YulAssignment","src":"21834:25:53","value":{"arguments":[{"name":"y","nativeSrc":"21857:1:53","nodeType":"YulIdentifier","src":"21857:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21839:17:53","nodeType":"YulIdentifier","src":"21839:17:53"},"nativeSrc":"21839:20:53","nodeType":"YulFunctionCall","src":"21839:20:53"},"variableNames":[{"name":"y","nativeSrc":"21834:1:53","nodeType":"YulIdentifier","src":"21834:1:53"}]},{"nativeSrc":"21868:28:53","nodeType":"YulVariableDeclaration","src":"21868:28:53","value":{"arguments":[{"name":"x","nativeSrc":"21891:1:53","nodeType":"YulIdentifier","src":"21891:1:53"},{"name":"y","nativeSrc":"21894:1:53","nodeType":"YulIdentifier","src":"21894:1:53"}],"functionName":{"name":"mul","nativeSrc":"21887:3:53","nodeType":"YulIdentifier","src":"21887:3:53"},"nativeSrc":"21887:9:53","nodeType":"YulFunctionCall","src":"21887:9:53"},"variables":[{"name":"product_raw","nativeSrc":"21872:11:53","nodeType":"YulTypedName","src":"21872:11:53","type":""}]},{"nativeSrc":"21905:41:53","nodeType":"YulAssignment","src":"21905:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"21934:11:53","nodeType":"YulIdentifier","src":"21934:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21916:17:53","nodeType":"YulIdentifier","src":"21916:17:53"},"nativeSrc":"21916:30:53","nodeType":"YulFunctionCall","src":"21916:30:53"},"variableNames":[{"name":"product","nativeSrc":"21905:7:53","nodeType":"YulIdentifier","src":"21905:7:53"}]},{"body":{"nativeSrc":"22123:22:53","nodeType":"YulBlock","src":"22123:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22125:16:53","nodeType":"YulIdentifier","src":"22125:16:53"},"nativeSrc":"22125:18:53","nodeType":"YulFunctionCall","src":"22125:18:53"},"nativeSrc":"22125:18:53","nodeType":"YulExpressionStatement","src":"22125:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"22056:1:53","nodeType":"YulIdentifier","src":"22056:1:53"}],"functionName":{"name":"iszero","nativeSrc":"22049:6:53","nodeType":"YulIdentifier","src":"22049:6:53"},"nativeSrc":"22049:9:53","nodeType":"YulFunctionCall","src":"22049:9:53"},{"arguments":[{"name":"y","nativeSrc":"22079:1:53","nodeType":"YulIdentifier","src":"22079:1:53"},{"arguments":[{"name":"product","nativeSrc":"22086:7:53","nodeType":"YulIdentifier","src":"22086:7:53"},{"name":"x","nativeSrc":"22095:1:53","nodeType":"YulIdentifier","src":"22095:1:53"}],"functionName":{"name":"div","nativeSrc":"22082:3:53","nodeType":"YulIdentifier","src":"22082:3:53"},"nativeSrc":"22082:15:53","nodeType":"YulFunctionCall","src":"22082:15:53"}],"functionName":{"name":"eq","nativeSrc":"22076:2:53","nodeType":"YulIdentifier","src":"22076:2:53"},"nativeSrc":"22076:22:53","nodeType":"YulFunctionCall","src":"22076:22:53"}],"functionName":{"name":"or","nativeSrc":"22029:2:53","nodeType":"YulIdentifier","src":"22029:2:53"},"nativeSrc":"22029:83:53","nodeType":"YulFunctionCall","src":"22029:83:53"}],"functionName":{"name":"iszero","nativeSrc":"22009:6:53","nodeType":"YulIdentifier","src":"22009:6:53"},"nativeSrc":"22009:113:53","nodeType":"YulFunctionCall","src":"22009:113:53"},"nativeSrc":"22006:139:53","nodeType":"YulIf","src":"22006:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"21742:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21773:1:53","nodeType":"YulTypedName","src":"21773:1:53","type":""},{"name":"y","nativeSrc":"21776:1:53","nodeType":"YulTypedName","src":"21776:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"21782:7:53","nodeType":"YulTypedName","src":"21782:7:53","type":""}],"src":"21742:410:53"},{"body":{"nativeSrc":"22186:152:53","nodeType":"YulBlock","src":"22186:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22203:1:53","nodeType":"YulLiteral","src":"22203:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22206:77:53","nodeType":"YulLiteral","src":"22206:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"22196:6:53","nodeType":"YulIdentifier","src":"22196:6:53"},"nativeSrc":"22196:88:53","nodeType":"YulFunctionCall","src":"22196:88:53"},"nativeSrc":"22196:88:53","nodeType":"YulExpressionStatement","src":"22196:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22300:1:53","nodeType":"YulLiteral","src":"22300:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"22303:4:53","nodeType":"YulLiteral","src":"22303:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"22293:6:53","nodeType":"YulIdentifier","src":"22293:6:53"},"nativeSrc":"22293:15:53","nodeType":"YulFunctionCall","src":"22293:15:53"},"nativeSrc":"22293:15:53","nodeType":"YulExpressionStatement","src":"22293:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22324:1:53","nodeType":"YulLiteral","src":"22324:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22327:4:53","nodeType":"YulLiteral","src":"22327:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"22317:6:53","nodeType":"YulIdentifier","src":"22317:6:53"},"nativeSrc":"22317:15:53","nodeType":"YulFunctionCall","src":"22317:15:53"},"nativeSrc":"22317:15:53","nodeType":"YulExpressionStatement","src":"22317:15:53"}]},"name":"panic_error_0x12","nativeSrc":"22158:180:53","nodeType":"YulFunctionDefinition","src":"22158:180:53"},{"body":{"nativeSrc":"22386:143:53","nodeType":"YulBlock","src":"22386:143:53","statements":[{"nativeSrc":"22396:25:53","nodeType":"YulAssignment","src":"22396:25:53","value":{"arguments":[{"name":"x","nativeSrc":"22419:1:53","nodeType":"YulIdentifier","src":"22419:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22401:17:53","nodeType":"YulIdentifier","src":"22401:17:53"},"nativeSrc":"22401:20:53","nodeType":"YulFunctionCall","src":"22401:20:53"},"variableNames":[{"name":"x","nativeSrc":"22396:1:53","nodeType":"YulIdentifier","src":"22396:1:53"}]},{"nativeSrc":"22430:25:53","nodeType":"YulAssignment","src":"22430:25:53","value":{"arguments":[{"name":"y","nativeSrc":"22453:1:53","nodeType":"YulIdentifier","src":"22453:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22435:17:53","nodeType":"YulIdentifier","src":"22435:17:53"},"nativeSrc":"22435:20:53","nodeType":"YulFunctionCall","src":"22435:20:53"},"variableNames":[{"name":"y","nativeSrc":"22430:1:53","nodeType":"YulIdentifier","src":"22430:1:53"}]},{"body":{"nativeSrc":"22477:22:53","nodeType":"YulBlock","src":"22477:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"22479:16:53","nodeType":"YulIdentifier","src":"22479:16:53"},"nativeSrc":"22479:18:53","nodeType":"YulFunctionCall","src":"22479:18:53"},"nativeSrc":"22479:18:53","nodeType":"YulExpressionStatement","src":"22479:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"22474:1:53","nodeType":"YulIdentifier","src":"22474:1:53"}],"functionName":{"name":"iszero","nativeSrc":"22467:6:53","nodeType":"YulIdentifier","src":"22467:6:53"},"nativeSrc":"22467:9:53","nodeType":"YulFunctionCall","src":"22467:9:53"},"nativeSrc":"22464:35:53","nodeType":"YulIf","src":"22464:35:53"},{"nativeSrc":"22509:14:53","nodeType":"YulAssignment","src":"22509:14:53","value":{"arguments":[{"name":"x","nativeSrc":"22518:1:53","nodeType":"YulIdentifier","src":"22518:1:53"},{"name":"y","nativeSrc":"22521:1:53","nodeType":"YulIdentifier","src":"22521:1:53"}],"functionName":{"name":"div","nativeSrc":"22514:3:53","nodeType":"YulIdentifier","src":"22514:3:53"},"nativeSrc":"22514:9:53","nodeType":"YulFunctionCall","src":"22514:9:53"},"variableNames":[{"name":"r","nativeSrc":"22509:1:53","nodeType":"YulIdentifier","src":"22509:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"22344:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"22375:1:53","nodeType":"YulTypedName","src":"22375:1:53","type":""},{"name":"y","nativeSrc":"22378:1:53","nodeType":"YulTypedName","src":"22378:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"22384:1:53","nodeType":"YulTypedName","src":"22384:1:53","type":""}],"src":"22344:185:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function 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 validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n // struct VestingBudget.InitPayload\n function abi_decode_t_struct$_InitPayload_$14711_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // authorized\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // start\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n {\n // duration\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n {\n // cliff\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$14711_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$14711_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_AssetType_$13471(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_AssetType_$13471(value)\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 // struct Budget.Transfer\n function abi_decode_t_struct$_Transfer_$13482_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // assetType\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_enum$_AssetType_$13471(add(headStart, offset), end))\n\n }\n\n {\n // asset\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Transfer_$13482_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Transfer_$13482_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\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 // struct Budget.FungiblePayload\n function abi_decode_t_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x20) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x20)\n\n {\n // amount\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr_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_struct$_FungiblePayload_$13486_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\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 checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_sub_t_uint64(x, y) -> diff {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n diff := sub(x, y)\n\n if gt(diff, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610143575f3560e01c806361400c99116100b5578063f04e283e1161006e578063f04e283e14610424578063f1c30ec014610440578063f2fde38b1461047c578063fa4ca9b114610498578063fe9fbb80146104d4578063fee81cf4146105105761014a565b806361400c9914610324578063715018a6146103605780638da5cb5b1461036a578063be9a655514610394578063d2514e84146103be578063efbe1c1c146103fa5761014a565b80634359d28a116101075780634359d28a14610222578063439fab911461024a578063451cc1911461027257806354d1f13d146102ae578063578bcf35146102b85780635aef467a146102f45761014a565b806301ffc9a71461014c5780630fb5a6b41461018857806310098ad5146101b257806313d033c0146101ee57806325692962146102185761014a565b3661014a57005b005b348015610157575f80fd5b50610172600480360381019061016d919061188e565b61054c565b60405161017f91906118d3565b60405180910390f35b348015610193575f80fd5b5061019c6105c5565b6040516101a9919061190e565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d39190611981565b6105df565b6040516101e591906119c4565b60405180910390f35b3480156101f9575f80fd5b50610202610638565b60405161020f919061190e565b60405180910390f35b610220610652565b005b34801561022d575f80fd5b5061024860048036038101906102439190611a93565b6106a3565b005b348015610255575f80fd5b50610270600480360381019061026b9190611b66565b6107ad565b005b34801561027d575f80fd5b5061029860048036038101906102939190611b66565b610957565b6040516102a591906119c4565b60405180910390f35b6102b661095e565b005b3480156102c3575f80fd5b506102de60048036038101906102d99190611981565b610997565b6040516102eb91906119c4565b60405180910390f35b61030e60048036038101906103099190611b66565b6109dc565b60405161031b91906118d3565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190611c06565b610ba9565b60405161035791906118d3565b60405180910390f35b610368610c0d565b005b348015610375575f80fd5b5061037e610c20565b60405161038b9190611c60565b60405180910390f35b34801561039f575f80fd5b506103a8610c48565b6040516103b5919061190e565b60405180910390f35b3480156103c9575f80fd5b506103e460048036038101906103df9190611981565b610c61565b6040516103f191906119c4565b60405180910390f35b348015610405575f80fd5b5061040e610d18565b60405161041b91906119c4565b60405180910390f35b61043e60048036038101906104399190611981565b610d5f565b005b34801561044b575f80fd5b5061046660048036038101906104619190611b66565b610d9d565b60405161047391906118d3565b60405180910390f35b61049660048036038101906104919190611981565b610e82565b005b3480156104a3575f80fd5b506104be60048036038101906104b99190611b66565b610eab565b6040516104cb91906118d3565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190611981565b610faa565b60405161050791906118d3565b60405180910390f35b34801561051b575f80fd5b5061053660048036038101906105319190611981565b611039565b60405161054391906119c4565b60405180910390f35b5f7f5cd687ca000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105be57506105bd82611052565b5b9050919050565b600260089054906101000a900467ffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461062783426110cb565b6106319190611ca6565b9050919050565b600260109054906101000a900467ffffffffffffffff1681565b5f61065b61118c565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6106ab611196565b8181905084849050146106ea576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156107a65782828281811061070a57610709611cd9565b5b905060200201602081019061071f9190611d30565b60015f87878581811061073557610734611cd9565b5b905060200201602081019061074a9190611981565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ec565b5050505050565b5f6107b66111cd565b905080546003825580156107e85760018160011c14303b106107df5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107f99190611f7a565b9050806040015160025f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060600151600260086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060800151600260106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061088d815f01516111f6565b5f5b81602001515181101561091b576001805f846020015184815181106108b7576108b6611cd9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061088f565b50508015610952576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906109ed9190612125565b90505f6002811115610a0257610a0161216c565b5b815f01516002811115610a1857610a1761216c565b5b03610a8e575f8160600151806020019051810190610a3691906121fc565b9050805f01513414610a88578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610a7f929190612227565b60405180910390fd5b50610b9d565b60016002811115610aa257610aa161216c565b5b815f01516002811115610ab857610ab761216c565b5b03610b93575f8160600151806020019051810190610ad691906121fc565b9050610b10826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166112cc909392919063ffffffff16565b805f0151610b4130846020015173ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b1015610b8d578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610b84929190612227565b60405180910390fd5b50610b9c565b5f915050610ba3565b5b60019150505b92915050565b5f805f90505b83839050811015610c0157610be7848483818110610bd057610bcf611cd9565b5b9050602002810190610be2919061225a565b610eab565b610bf4575f915050610c07565b8080600101915050610baf565b50600190505b92915050565b610c15611196565b610c1e5f611359565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900467ffffffffffffffff1681565b5f805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610cc457610cbf308473ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b610cc6565b475b9050805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d1091906122bc565b915050919050565b5f600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16610d5091906122ef565b67ffffffffffffffff16905090565b610d67611196565b63389a75e1600c52805f526020600c208054421115610d8d57636f5e88185f526004601cfd5b5f815550610d9a81611359565b50565b5f610da6611196565b5f8383810190610db69190612125565b90505f6002811115610dcb57610dca61216c565b5b815f01516002811115610de157610de061216c565b5b1480610e14575060016002811115610dfc57610dfb61216c565b5b815f01516002811115610e1257610e1161216c565b5b145b15610e6d575f8160600151806020019051810190610e3291906121fc565b9050610e67826020015183604001515f845f015114610e5457835f0151610e62565b610e6185602001516105df565b5b61141f565b50610e76565b5f915050610e7c565b60019150505b92915050565b610e8a611196565b8060601b610e9f57637448fbae5f526004601cfd5b610ea881611359565b50565b5f610eb533610faa565b610eeb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610efb9190612125565b905060016002811115610f1157610f1061216c565b5b815f01516002811115610f2757610f2661216c565b5b1480610f5957505f6002811115610f4157610f4061216c565b5b815f01516002811115610f5757610f5661216c565b5b145b15610f95575f8160600151806020019051810190610f7791906121fc565b9050610f8f82602001518360400151835f015161141f565b50610f9e565b5f915050610fa4565b60019150505b92915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110325750611003610c20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110c457506110c382611637565b5b9050919050565b5f805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461112e57611129308573ffffffffffffffffffffffffffffffffffffffff1661132690919063ffffffff16565b611130565b475b90506111835f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548261117d91906122bc565b846116a0565b91505092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146111cb576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6111fe6117be565b15611276577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561123857630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506112c9565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661131757637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113616117be565b156113c6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061141c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd21268540361143d5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bd578282826040517fbf182be80000000000000000000000000000000000000000000000000000000081526004016114b49392919061232a565b60405180910390fd5b6114c6836105df565b81111561151657826114d7846105df565b826040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161150d9392919061235f565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461156191906122bc565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115aa576115a582826117c2565b6115d6565b6115d582828573ffffffffffffffffffffffffffffffffffffffff166117df9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161161e929190612227565b60405180910390a23868929eee149b4bd2126855505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f600260109054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff166116d891906122ef565b67ffffffffffffffff168267ffffffffffffffff1610156116fb575f90506117b8565b600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661173291906122ef565b67ffffffffffffffff168267ffffffffffffffff1610611754578290506117b8565b600260089054906101000a900467ffffffffffffffff1667ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16836117969190612394565b67ffffffffffffffff16846117ab91906123cf565b6117b5919061243d565b90505b92915050565b5f90565b5f385f3884865af16117db5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661181f576390b8ec185f526004601cfd5b5f603452505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61186d81611839565b8114611877575f80fd5b50565b5f8135905061188881611864565b92915050565b5f602082840312156118a3576118a2611831565b5b5f6118b08482850161187a565b91505092915050565b5f8115159050919050565b6118cd816118b9565b82525050565b5f6020820190506118e65f8301846118c4565b92915050565b5f67ffffffffffffffff82169050919050565b611908816118ec565b82525050565b5f6020820190506119215f8301846118ff565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195082611927565b9050919050565b61196081611946565b811461196a575f80fd5b50565b5f8135905061197b81611957565b92915050565b5f6020828403121561199657611995611831565b5b5f6119a38482850161196d565b91505092915050565b5f819050919050565b6119be816119ac565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126119fe576119fd6119dd565b5b8235905067ffffffffffffffff811115611a1b57611a1a6119e1565b5b602083019150836020820283011115611a3757611a366119e5565b5b9250929050565b5f8083601f840112611a5357611a526119dd565b5b8235905067ffffffffffffffff811115611a7057611a6f6119e1565b5b602083019150836020820283011115611a8c57611a8b6119e5565b5b9250929050565b5f805f8060408587031215611aab57611aaa611831565b5b5f85013567ffffffffffffffff811115611ac857611ac7611835565b5b611ad4878288016119e9565b9450945050602085013567ffffffffffffffff811115611af757611af6611835565b5b611b0387828801611a3e565b925092505092959194509250565b5f8083601f840112611b2657611b256119dd565b5b8235905067ffffffffffffffff811115611b4357611b426119e1565b5b602083019150836001820283011115611b5f57611b5e6119e5565b5b9250929050565b5f8060208385031215611b7c57611b7b611831565b5b5f83013567ffffffffffffffff811115611b9957611b98611835565b5b611ba585828601611b11565b92509250509250929050565b5f8083601f840112611bc657611bc56119dd565b5b8235905067ffffffffffffffff811115611be357611be26119e1565b5b602083019150836020820283011115611bff57611bfe6119e5565b5b9250929050565b5f8060208385031215611c1c57611c1b611831565b5b5f83013567ffffffffffffffff811115611c3957611c38611835565b5b611c4585828601611bb1565b92509250509250929050565b611c5a81611946565b82525050565b5f602082019050611c735f830184611c51565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cb0826119ac565b9150611cbb836119ac565b9250828203905081811115611cd357611cd2611c79565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611d0f816118b9565b8114611d19575f80fd5b50565b5f81359050611d2a81611d06565b92915050565b5f60208284031215611d4557611d44611831565b5b5f611d5284828501611d1c565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611da582611d5f565b810181811067ffffffffffffffff82111715611dc457611dc3611d6f565b5b80604052505050565b5f611dd6611828565b9050611de28282611d9c565b919050565b5f80fd5b5f67ffffffffffffffff821115611e0557611e04611d6f565b5b602082029050602081019050919050565b5f611e28611e2384611deb565b611dcd565b90508083825260208201905060208402830185811115611e4b57611e4a6119e5565b5b835b81811015611e745780611e60888261196d565b845260208401935050602081019050611e4d565b5050509392505050565b5f82601f830112611e9257611e916119dd565b5b8135611ea2848260208601611e16565b91505092915050565b611eb4816118ec565b8114611ebe575f80fd5b50565b5f81359050611ecf81611eab565b92915050565b5f60a08284031215611eea57611ee9611d5b565b5b611ef460a0611dcd565b90505f611f038482850161196d565b5f83015250602082013567ffffffffffffffff811115611f2657611f25611de7565b5b611f3284828501611e7e565b6020830152506040611f4684828501611ec1565b6040830152506060611f5a84828501611ec1565b6060830152506080611f6e84828501611ec1565b60808301525092915050565b5f60208284031215611f8f57611f8e611831565b5b5f82013567ffffffffffffffff811115611fac57611fab611835565b5b611fb884828501611ed5565b91505092915050565b60038110611fcd575f80fd5b50565b5f81359050611fde81611fc1565b92915050565b5f80fd5b5f67ffffffffffffffff82111561200257612001611d6f565b5b61200b82611d5f565b9050602081019050919050565b828183375f83830152505050565b5f61203861203384611fe8565b611dcd565b90508281526020810184848401111561205457612053611fe4565b5b61205f848285612018565b509392505050565b5f82601f83011261207b5761207a6119dd565b5b813561208b848260208601612026565b91505092915050565b5f608082840312156120a9576120a8611d5b565b5b6120b36080611dcd565b90505f6120c284828501611fd0565b5f8301525060206120d58482850161196d565b60208301525060406120e98482850161196d565b604083015250606082013567ffffffffffffffff81111561210d5761210c611de7565b5b61211984828501612067565b60608301525092915050565b5f6020828403121561213a57612139611831565b5b5f82013567ffffffffffffffff81111561215757612156611835565b5b61216384828501612094565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6121a2816119ac565b81146121ac575f80fd5b50565b5f815190506121bd81612199565b92915050565b5f602082840312156121d8576121d7611d5b565b5b6121e26020611dcd565b90505f6121f1848285016121af565b5f8301525092915050565b5f6020828403121561221157612210611831565b5b5f61221e848285016121c3565b91505092915050565b5f60408201905061223a5f830185611c51565b61224760208301846119b5565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f80833560016020038436030381126122765761227561224e565b5b80840192508235915067ffffffffffffffff82111561229857612297612252565b5b6020830192506001820236038313156122b4576122b3612256565b5b509250929050565b5f6122c6826119ac565b91506122d1836119ac565b92508282019050808211156122e9576122e8611c79565b5b92915050565b5f6122f9826118ec565b9150612304836118ec565b9250828201905067ffffffffffffffff81111561232457612323611c79565b5b92915050565b5f60608201905061233d5f830186611c51565b61234a6020830185611c51565b61235760408301846119b5565b949350505050565b5f6060820190506123725f830186611c51565b61237f60208301856119b5565b61238c60408301846119b5565b949350505050565b5f61239e826118ec565b91506123a9836118ec565b9250828203905067ffffffffffffffff8111156123c9576123c8611c79565b5b92915050565b5f6123d9826119ac565b91506123e4836119ac565b92508282026123f2816119ac565b9150828204841483151761240957612408611c79565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612447826119ac565b9150612452836119ac565b92508261246257612461612410565b5b82820490509291505056fea26469706673582212200800c5718970c108b16c08f87d484853c64c49e10cd30ba20a5593885273a25764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x143 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61400C99 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF04E283E GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x440 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x510 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x61400C99 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0xEFBE1C1C EQ PUSH2 0x3FA JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x4359D28A GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2F4 JUMPI PUSH2 0x14A JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xFB5A6B4 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x13D033C0 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x218 JUMPI PUSH2 0x14A JUMP JUMPDEST CALLDATASIZE PUSH2 0x14A JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x188E JUMP JUMPDEST PUSH2 0x54C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x202 PUSH2 0x638 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20F SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x220 PUSH2 0x652 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0x1A93 JUMP JUMPDEST PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x298 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A5 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B6 PUSH2 0x95E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D9 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x997 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EB SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0x9DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x34A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x345 SWAP2 SWAP1 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x357 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x368 PUSH2 0xC0D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37E PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A8 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B5 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DF SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x40E PUSH2 0xD18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x41B SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x439 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xD5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xD9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x473 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x496 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x491 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B9 SWAP2 SWAP1 PUSH2 0x1B66 JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CB SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F5 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0xFAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x507 SWAP2 SWAP1 PUSH2 0x18D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x536 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x1039 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x543 SWAP2 SWAP1 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x5CD687CA00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5BE JUMPI POP PUSH2 0x5BD DUP3 PUSH2 0x1052 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x627 DUP4 TIMESTAMP PUSH2 0x10CB JUMP JUMPDEST PUSH2 0x631 SWAP2 SWAP1 PUSH2 0x1CA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x65B PUSH2 0x118C JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x1196 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x6EA JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x70A JUMPI PUSH2 0x709 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x1D30 JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x735 JUMPI PUSH2 0x734 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x74A SWAP2 SWAP1 PUSH2 0x1981 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x7B6 PUSH2 0x11CD JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x7DF JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x1F7A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x80 ADD MLOAD PUSH1 0x2 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x88D DUP2 PUSH0 ADD MLOAD PUSH2 0x11F6 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x91B JUMPI PUSH1 0x1 DUP1 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x8B7 JUMPI PUSH2 0x8B6 PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x88F JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x952 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9ED SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA17 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA8E JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA36 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xA88 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA7F SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAB8 JUMPI PUSH2 0xAB7 PUSH2 0x216C JUMP JUMPDEST JUMPDEST SUB PUSH2 0xB93 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAD6 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xB10 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CC SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB41 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xB8D JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB84 SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xB9C JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xBA3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xBE7 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xBD0 JUMPI PUSH2 0xBCF PUSH2 0x1CD9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xBE2 SWAP2 SWAP1 PUSH2 0x225A JUMP JUMPDEST PUSH2 0xEAB JUMP JUMPDEST PUSH2 0xBF4 JUMPI PUSH0 SWAP2 POP POP PUSH2 0xC07 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xBAF JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC15 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0xC1E PUSH0 PUSH2 0x1359 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC4 JUMPI PUSH2 0xCBF ADDRESS DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xCC6 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xD10 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD50 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xD67 PUSH2 0x1196 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD8D JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD9A DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xDA6 PUSH2 0x1196 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xDB6 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDE1 JUMPI PUSH2 0xDE0 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xE14 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI PUSH2 0xDFB PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE12 JUMPI PUSH2 0xE11 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xE6D JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE32 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xE67 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xE54 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xE62 JUMP JUMPDEST PUSH2 0xE61 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x5DF JUMP JUMPDEST JUMPDEST PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xE76 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x1196 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE9F JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xEA8 DUP2 PUSH2 0x1359 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xEB5 CALLER PUSH2 0xFAA JUMP JUMPDEST PUSH2 0xEEB JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEFB SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF11 JUMPI PUSH2 0xF10 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF27 JUMPI PUSH2 0xF26 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xF59 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF41 JUMPI PUSH2 0xF40 PUSH2 0x216C JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF57 JUMPI PUSH2 0xF56 PUSH2 0x216C JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xF95 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF77 SWAP2 SWAP1 PUSH2 0x21FC JUMP JUMPDEST SWAP1 POP PUSH2 0xF8F DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x141F JUMP JUMPDEST POP PUSH2 0xF9E JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xFA4 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x1032 JUMPI POP PUSH2 0x1003 PUSH2 0xC20 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x10C4 JUMPI POP PUSH2 0x10C3 DUP3 PUSH2 0x1637 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x112E JUMPI PUSH2 0x1129 ADDRESS DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1326 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1130 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP PUSH2 0x1183 PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP3 PUSH2 0x117D SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST DUP5 PUSH2 0x16A0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x11CB JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x1276 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1238 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x12C9 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1317 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1361 PUSH2 0x17BE JUMP JUMPDEST ISZERO PUSH2 0x13C6 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x141C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x143D JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BD JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x232A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14C6 DUP4 PUSH2 0x5DF JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1516 JUMPI DUP3 PUSH2 0x14D7 DUP5 PUSH2 0x5DF JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x235F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x22BC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15AA JUMPI PUSH2 0x15A5 DUP3 DUP3 PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST PUSH2 0x15D5 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x17DF SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x161E SWAP3 SWAP2 SWAP1 PUSH2 0x2227 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x16D8 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x16FB JUMPI PUSH0 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x1732 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT PUSH2 0x1754 JUMPI DUP3 SWAP1 POP PUSH2 0x17B8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1796 SWAP2 SWAP1 PUSH2 0x2394 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH2 0x17AB SWAP2 SWAP1 PUSH2 0x23CF JUMP JUMPDEST PUSH2 0x17B5 SWAP2 SWAP1 PUSH2 0x243D JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x17DB JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x181F JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x1839 JUMP JUMPDEST DUP2 EQ PUSH2 0x1877 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1888 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18A3 JUMPI PUSH2 0x18A2 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18B0 DUP5 DUP3 DUP6 ADD PUSH2 0x187A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18CD DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18E6 PUSH0 DUP4 ADD DUP5 PUSH2 0x18C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1908 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1921 PUSH0 DUP4 ADD DUP5 PUSH2 0x18FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1950 DUP3 PUSH2 0x1927 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1960 DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP2 EQ PUSH2 0x196A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x197B DUP2 PUSH2 0x1957 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1996 JUMPI PUSH2 0x1995 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19A3 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19BE DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19D7 PUSH0 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A1B JUMPI PUSH2 0x1A1A PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A37 JUMPI PUSH2 0x1A36 PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A53 JUMPI PUSH2 0x1A52 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A70 JUMPI PUSH2 0x1A6F PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1A8C JUMPI PUSH2 0x1A8B PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1AAB JUMPI PUSH2 0x1AAA PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AC8 JUMPI PUSH2 0x1AC7 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1AD4 DUP8 DUP3 DUP9 ADD PUSH2 0x19E9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AF7 JUMPI PUSH2 0x1AF6 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1B03 DUP8 DUP3 DUP9 ADD PUSH2 0x1A3E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B26 JUMPI PUSH2 0x1B25 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B43 JUMPI PUSH2 0x1B42 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B5F JUMPI PUSH2 0x1B5E PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7C JUMPI PUSH2 0x1B7B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B99 JUMPI PUSH2 0x1B98 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1BA5 DUP6 DUP3 DUP7 ADD PUSH2 0x1B11 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1BC6 JUMPI PUSH2 0x1BC5 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE3 JUMPI PUSH2 0x1BE2 PUSH2 0x19E1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1BFF JUMPI PUSH2 0x1BFE PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C1C JUMPI PUSH2 0x1C1B PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C39 JUMPI PUSH2 0x1C38 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1C45 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB1 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C5A DUP2 PUSH2 0x1946 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1C73 PUSH0 DUP4 ADD DUP5 PUSH2 0x1C51 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1CB0 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x1CBB DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1CD3 JUMPI PUSH2 0x1CD2 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1D0F DUP2 PUSH2 0x18B9 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D19 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D2A DUP2 PUSH2 0x1D06 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D45 JUMPI PUSH2 0x1D44 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1D52 DUP5 DUP3 DUP6 ADD PUSH2 0x1D1C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1DA5 DUP3 PUSH2 0x1D5F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1DC4 JUMPI PUSH2 0x1DC3 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1DD6 PUSH2 0x1828 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DE2 DUP3 DUP3 PUSH2 0x1D9C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1E05 JUMPI PUSH2 0x1E04 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1E28 PUSH2 0x1E23 DUP5 PUSH2 0x1DEB JUMP JUMPDEST PUSH2 0x1DCD 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 0x1E4B JUMPI PUSH2 0x1E4A PUSH2 0x19E5 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E74 JUMPI DUP1 PUSH2 0x1E60 DUP9 DUP3 PUSH2 0x196D JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E4D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1E92 JUMPI PUSH2 0x1E91 PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EA2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1E16 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EB4 DUP2 PUSH2 0x18EC JUMP JUMPDEST DUP2 EQ PUSH2 0x1EBE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1ECF DUP2 PUSH2 0x1EAB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EEA JUMPI PUSH2 0x1EE9 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x1EF4 PUSH1 0xA0 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F03 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F26 JUMPI PUSH2 0x1F25 PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 ADD PUSH2 0x1E7E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1F46 DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1F5A DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1F6E DUP5 DUP3 DUP6 ADD PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8F JUMPI PUSH2 0x1F8E PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FAC JUMPI PUSH2 0x1FAB PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x1FB8 DUP5 DUP3 DUP6 ADD PUSH2 0x1ED5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1FCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FDE DUP2 PUSH2 0x1FC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1D6F JUMP JUMPDEST JUMPDEST PUSH2 0x200B DUP3 PUSH2 0x1D5F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2038 PUSH2 0x2033 DUP5 PUSH2 0x1FE8 JUMP JUMPDEST PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2054 JUMPI PUSH2 0x2053 PUSH2 0x1FE4 JUMP JUMPDEST JUMPDEST PUSH2 0x205F DUP5 DUP3 DUP6 PUSH2 0x2018 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x207B JUMPI PUSH2 0x207A PUSH2 0x19DD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x208B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2026 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A9 JUMPI PUSH2 0x20A8 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x20B3 PUSH1 0x80 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x20C2 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD0 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x20D5 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x20E9 DUP5 DUP3 DUP6 ADD PUSH2 0x196D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x1DE7 JUMP JUMPDEST JUMPDEST PUSH2 0x2119 DUP5 DUP3 DUP6 ADD PUSH2 0x2067 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x213A JUMPI PUSH2 0x2139 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2156 PUSH2 0x1835 JUMP JUMPDEST JUMPDEST PUSH2 0x2163 DUP5 DUP3 DUP6 ADD PUSH2 0x2094 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x21A2 DUP2 PUSH2 0x19AC JUMP JUMPDEST DUP2 EQ PUSH2 0x21AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x21BD DUP2 PUSH2 0x2199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21D8 JUMPI PUSH2 0x21D7 PUSH2 0x1D5B JUMP JUMPDEST JUMPDEST PUSH2 0x21E2 PUSH1 0x20 PUSH2 0x1DCD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x21F1 DUP5 DUP3 DUP6 ADD PUSH2 0x21AF JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x1831 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x221E DUP5 DUP3 DUP6 ADD PUSH2 0x21C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x223A PUSH0 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2247 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2276 JUMPI PUSH2 0x2275 PUSH2 0x224E JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2298 JUMPI PUSH2 0x2297 PUSH2 0x2252 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x22B4 JUMPI PUSH2 0x22B3 PUSH2 0x2256 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C6 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x22D1 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x22E9 JUMPI PUSH2 0x22E8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x22F9 DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x2304 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2324 JUMPI PUSH2 0x2323 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x233D PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x234A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x2357 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2372 PUSH0 DUP4 ADD DUP7 PUSH2 0x1C51 JUMP JUMPDEST PUSH2 0x237F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x19B5 JUMP JUMPDEST PUSH2 0x238C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x239E DUP3 PUSH2 0x18EC JUMP JUMPDEST SWAP2 POP PUSH2 0x23A9 DUP4 PUSH2 0x18EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23C9 JUMPI PUSH2 0x23C8 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23D9 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x23E4 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x23F2 DUP2 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2409 JUMPI PUSH2 0x2408 PUSH2 0x1C79 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2447 DUP3 PUSH2 0x19AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2452 DUP4 PUSH2 0x19AC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2462 JUMPI PUSH2 0x2461 PUSH2 0x2410 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD STOP 0xC5 PUSH18 0x8970C108B16C08F87D484853C64C49E10CD3 SIGNEXTEND LOG2 EXP SSTORE SWAP4 DUP9 MSTORE PUSH20 0xA25764736F6C6343000819003300000000000000 ","sourceMap":"1481:10635:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5102:205:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2197:22:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8880:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2288:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;7143:359:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2917:417;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9522:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;9280:138:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3687:1097;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6879:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2105:19:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8236:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7805:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5291:574:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6156:499:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11693:435:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5102:205:37;5198:4;5236:24;5221:39;;;:11;:39;;;;:79;;;;5264:36;5288:11;5264:23;:36::i;:::-;5221:79;5214:86;;5102:205;;;:::o;2197:22:39:-;;;;;;;;;;;;;:::o;8880:187::-;8953:7;9032:20;:28;9053:6;9032:28;;;;;;;;;;;;;;;;8979:50;8997:6;9012:15;8979:17;:50::i;:::-;:81;;;;:::i;:::-;8972:88;;8880:187;;;:::o;2288:19::-;;;;;;;;;;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;7143:359:39:-;12517:13:17;:11;:13::i;:::-;7329:11:39::1;;:18;;7310:8;;:15;;:37;7306:66;;7356:16;;;;;;;;;;;;;;7306:66;7387:9;7382:114;7406:8;;:15;;7402:1;:19;7382:114;;;7471:11;;7483:1;7471:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7442:13;:26;7456:8;;7465:1;7456:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7442:26;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;7423:3;;;;;;;7382:114;;;;7143:359:::0;;;;:::o;2917:417::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;3005:24:39::1;3043:5;;3032:32;;;;;;;:::i;:::-;3005:59;;3083:5;:11;;;3075:5;;:19;;;;;;;;;;;;;;;;;;3115:5;:14;;;3104:8;;:25;;;;;;;;;;;;;;;;;;3147:5;:11;;;3139:5;;:19;;;;;;;;;;;;;;;;;;3169:29;3186:5;:11;;;3169:16;:29::i;:::-;3213:9;3208:120;3232:5;:16;;;:23;3228:1;:27;3208:120;;;3313:4;3276:13:::0;:34:::1;3290:5;:16;;;3307:1;3290:19;;;;;;;;:::i;:::-;;;;;;;;3276:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;3257:3;;;;;;;3208:120;;;;2995:339;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2917:417:39;;:::o;9522:104::-;9592:7;9522:104;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;9280:138:39:-;9357:7;9383:20;:28;9404:6;9383:28;;;;;;;;;;;;;;;;9376:35;;9280:138;;;:::o;3687:1097::-;3770:4;3786:23;3823:5;;3812:29;;;;;;;:::i;:::-;3786:55;;3876:13;3855:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;3851:905;;3905:30;3949:7;:12;;;3938:43;;;;;;;;;;;;:::i;:::-;3905:76;;4087:7;:14;;;4074:9;:27;4070:121;;4146:7;:13;;;4161:7;:14;;;4128:48;;;;;;;;;;;;:::i;:::-;;;;;;;;4070:121;3891:310;3851:905;;;4232:15;4211:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;4207:549;;4263:30;4307:7;:12;;;4296:43;;;;;;;;;;;;:::i;:::-;4263:76;;4425:77;4456:7;:14;;;4480:4;4487:7;:14;;;4425:7;:13;;;:30;;;;:77;;;;;;:::i;:::-;4561:7;:14;;;4520:38;4552:4;4520:7;:13;;;:23;;;;:38;;;;:::i;:::-;:55;4516:149;;;4620:7;:13;;;4635:7;:14;;;4602:48;;;;;;;;;;;;:::i;:::-;;;;;;;;4516:149;4249:426;4207:549;;;4740:5;4733:12;;;;;4207:549;3851:905;4773:4;4766:11;;;3687:1097;;;;;:::o;6879:231::-;6961:4;6982:9;6994:1;6982:13;;6977:105;7001:5;;:12;;6997:1;:16;6977:105;;;7039:18;7048:5;;7054:1;7048:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;7039;:18::i;:::-;7034:37;;7066:5;7059:12;;;;;7034:37;7015:3;;;;;;;6977:105;;;;7099:4;7092:11;;6879:231;;;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;2105:19:39:-;;;;;;;;;;;;;:::o;8236:248::-;8307:7;8326:15;8362:1;8344:20;;:6;:20;;;:78;;8391:31;8416:4;8391:6;:16;;;;:31;;;;:::i;:::-;8344:78;;;8367:21;8344:78;8326:96;;8470:7;8439:20;:28;8460:6;8439:28;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;8432:45;;;8236:248;;;:::o;7805:95::-;7851:7;7885:8;;;;;;;;;;;7877:5;;;;;;;;;;;:16;;;;:::i;:::-;7870:23;;;;7805:95;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;5291:574:39:-;5375:4;12517:13:17;:11;:13::i;:::-;5391:23:39::1;5428:5;;5417:29;;;;;;;:::i;:::-;5391:55;;5481:13;5460:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;:74;;;;5519:15;5498:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;5460:74;5456:381;;;5550:30;5594:7;:12;;;5583:43;;;;;;;;;;;;:::i;:::-;5550:76;;5640:143;5675:7;:13;;;5690:7;:14;;;5724:1;5706:7;:14;;;:19;:63;;5755:7;:14;;;5706:63;;;5728:24;5738:7;:13;;;5728:9;:24::i;:::-;5706:63;5640:17;:143::i;:::-;5536:258;5456:381;;;5821:5;5814:12;;;;;5456:381;5854:4;5847:11;;;12540:1:17;5291:574:39::0;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;6156:499:39:-;6244:4;2441:24;2454:10;2441:12;:24::i;:::-;2436:52;;2474:14;;;;;;;;;;;;;;2436:52;6260:23:::1;6297:5;;6286:29;;;;;;;:::i;:::-;6260:55;;6350:15;6329:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;:74;;;;6390:13;6369:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;6329:74;6325:302;;;6419:30;6463:7;:12;;;6452:43;;;;;;;;;;;;:::i;:::-;6419:76;;6509:64;6527:7;:13;;;6542:7;:14;;;6558:7;:14;;;6509:17;:64::i;:::-;6405:179;6325:302;;;6611:5;6604:12;;;;;6325:302;6644:4;6637:11;;;2498:1;6156:499:::0;;;;:::o;7535:154::-;7613:4;7636:13;:23;7650:8;7636:23;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;7675:7;:5;:7::i;:::-;7663:19;;:8;:19;;;7636:46;7629:53;;7535:154;;;:::o;11693:435:17:-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;11074:303:39:-;11167:7;11186:15;11222:1;11204:20;;:6;:20;;;:78;;11251:31;11276:4;11251:6;:16;;;;:31;;;;:::i;:::-;11204:78;;;11227:21;11204:78;11186:96;;11299:71;11329:20;:28;11350:6;11329:28;;;;;;;;;;;;;;;;11319:7;:38;;;;:::i;:::-;11359:10;11299:19;:71::i;:::-;11292:78;;;11074:303;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;9109:1139:27:-;9292:4;9286:11;9357:6;9351:4;9344:20;9422:2;9416:4;9409:16;9487:4;9483:2;9479:13;9473:4;9466:27;9549:34;9543:4;9536:48;9950:4;9944;9938;9932;9929:1;9922:5;9915;9910:45;9844:16;9837:24;9833:1;9826:4;9820:11;9817:18;9814:48;9729:244;9702:404;;10019:10;10013:4;10006:24;10087:4;10081;10074:18;9702:404;10132:1;10126:4;10119:15;10194:1;10188:4;10181:15;9263:979;9109:1139;;;;:::o;19260:739::-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;6145:1089:17:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;10085:708:39:-;1635:9:26;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;10296:1:39::1;10281:17;;:3;:17;;::::0;10277:66:::1;;10322:6;10330:3;10335:7;10307:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;10277:66;10367:17;10377:6;10367:9;:17::i;:::-;10357:7;:27;10353:118;;;10425:6;10433:17;10443:6;10433:9;:17::i;:::-;10452:7;10407:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;10353:118;10513:7;10481:20;:28:::0;10502:6:::1;10481:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;10600:1;10582:20;;:6;:20;;::::0;10578:160:::1;;10618:45;10650:3;10655:7;10618:31;:45::i;:::-;10578:160;;;10694:33;10714:3;10719:7;10694:6;:19;;;;:33;;;;;:::i;:::-;10578:160;10765:6;10753:33;;;10773:3;10778:7;10753:33;;;;;;;:::i;:::-;;;;;;;;1937:10:26::0;1913:22;1906:42;10085:708:39;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;11748:366:39:-;11851:7;11894:5;;;;;;;;;;;11886;;;;;;;;;;;:13;;;;:::i;:::-;11874:25;;:9;:25;;;11870:238;;;11922:1;11915:8;;;;11870:238;11965:8;;;;;;;;;;;11957:5;;;;;;;;;;;:16;;;;:::i;:::-;11944:29;;:9;:29;;;11940:168;;11996:15;11989:22;;;;11940:168;12089:8;;;;;;;;;;;12049:48;;12080:5;;;;;;;;;;;12068:9;:17;;;;:::i;:::-;12049:37;;:15;:37;;;;:::i;:::-;:48;;;;:::i;:::-;12042:55;;11748:366;;;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;4031:342:27:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;13466:939::-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:101::-;1554:7;1594:18;1587:5;1583:30;1572:41;;1518:101;;;:::o;1625:115::-;1710:23;1727:5;1710:23;:::i;:::-;1705:3;1698:36;1625:115;;:::o;1746:218::-;1837:4;1875:2;1864:9;1860:18;1852:26;;1888:69;1954:1;1943:9;1939:17;1930:6;1888:69;:::i;:::-;1746:218;;;;:::o;1970:126::-;2007:7;2047:42;2040:5;2036:54;2025:65;;1970:126;;;:::o;2102:96::-;2139:7;2168:24;2186:5;2168:24;:::i;:::-;2157:35;;2102:96;;;:::o;2204:122::-;2277:24;2295:5;2277:24;:::i;:::-;2270:5;2267:35;2257:63;;2316:1;2313;2306:12;2257:63;2204:122;:::o;2332:139::-;2378:5;2416:6;2403:20;2394:29;;2432:33;2459:5;2432:33;:::i;:::-;2332:139;;;;:::o;2477:329::-;2536:6;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2711:1;2736:53;2781:7;2772:6;2761:9;2757:22;2736:53;:::i;:::-;2726:63;;2682:117;2477:329;;;;:::o;2812:77::-;2849:7;2878:5;2867:16;;2812:77;;;:::o;2895:118::-;2982:24;3000:5;2982:24;:::i;:::-;2977:3;2970:37;2895:118;;:::o;3019:222::-;3112:4;3150:2;3139:9;3135:18;3127:26;;3163:71;3231:1;3220:9;3216:17;3207:6;3163:71;:::i;:::-;3019:222;;;;:::o;3247:117::-;3356:1;3353;3346:12;3370:117;3479:1;3476;3469:12;3493:117;3602:1;3599;3592:12;3633:568;3706:8;3716:6;3766:3;3759:4;3751:6;3747:17;3743:27;3733:122;;3774:79;;:::i;:::-;3733:122;3887:6;3874:20;3864:30;;3917:18;3909:6;3906:30;3903:117;;;3939:79;;:::i;:::-;3903:117;4053:4;4045:6;4041:17;4029:29;;4107:3;4099:4;4091:6;4087:17;4077:8;4073:32;4070:41;4067:128;;;4114:79;;:::i;:::-;4067:128;3633:568;;;;;:::o;4221:565::-;4291:8;4301:6;4351:3;4344:4;4336:6;4332:17;4328:27;4318:122;;4359:79;;:::i;:::-;4318:122;4472:6;4459:20;4449:30;;4502:18;4494:6;4491:30;4488:117;;;4524:79;;:::i;:::-;4488:117;4638:4;4630:6;4626:17;4614:29;;4692:3;4684:4;4676:6;4672:17;4662:8;4658:32;4655:41;4652:128;;;4699:79;;:::i;:::-;4652:128;4221:565;;;;;:::o;4792:928::-;4911:6;4919;4927;4935;4984:2;4972:9;4963:7;4959:23;4955:32;4952:119;;;4990:79;;:::i;:::-;4952:119;5138:1;5127:9;5123:17;5110:31;5168:18;5160:6;5157:30;5154:117;;;5190:79;;:::i;:::-;5154:117;5303:80;5375:7;5366:6;5355:9;5351:22;5303:80;:::i;:::-;5285:98;;;;5081:312;5460:2;5449:9;5445:18;5432:32;5491:18;5483:6;5480:30;5477:117;;;5513:79;;:::i;:::-;5477:117;5626:77;5695:7;5686:6;5675:9;5671:22;5626:77;:::i;:::-;5608:95;;;;5403:310;4792:928;;;;;;;:::o;5739:552::-;5796:8;5806:6;5856:3;5849:4;5841:6;5837:17;5833:27;5823:122;;5864:79;;:::i;:::-;5823:122;5977:6;5964:20;5954:30;;6007:18;5999:6;5996:30;5993:117;;;6029:79;;:::i;:::-;5993:117;6143:4;6135:6;6131:17;6119:29;;6197:3;6189:4;6181:6;6177:17;6167:8;6163:32;6160:41;6157:128;;;6204:79;;:::i;:::-;6157:128;5739:552;;;;;:::o;6297:527::-;6367:6;6375;6424:2;6412:9;6403:7;6399:23;6395:32;6392:119;;;6430:79;;:::i;:::-;6392:119;6578:1;6567:9;6563:17;6550:31;6608:18;6600:6;6597:30;6594:117;;;6630:79;;:::i;:::-;6594:117;6743:64;6799:7;6790:6;6779:9;6775:22;6743:64;:::i;:::-;6725:82;;;;6521:296;6297:527;;;;;:::o;6845:579::-;6929:8;6939:6;6989:3;6982:4;6974:6;6970:17;6966:27;6956:122;;6997:79;;:::i;:::-;6956:122;7110:6;7097:20;7087:30;;7140:18;7132:6;7129:30;7126:117;;;7162:79;;:::i;:::-;7126:117;7276:4;7268:6;7264:17;7252:29;;7330:3;7322:4;7314:6;7310:17;7300:8;7296:32;7293:41;7290:128;;;7337:79;;:::i;:::-;7290:128;6845:579;;;;;:::o;7430:581::-;7527:6;7535;7584:2;7572:9;7563:7;7559:23;7555:32;7552:119;;;7590:79;;:::i;:::-;7552:119;7738:1;7727:9;7723:17;7710:31;7768:18;7760:6;7757:30;7754:117;;;7790:79;;:::i;:::-;7754:117;7903:91;7986:7;7977:6;7966:9;7962:22;7903:91;:::i;:::-;7885:109;;;;7681:323;7430:581;;;;;:::o;8017:118::-;8104:24;8122:5;8104:24;:::i;:::-;8099:3;8092:37;8017:118;;:::o;8141:222::-;8234:4;8272:2;8261:9;8257:18;8249:26;;8285:71;8353:1;8342:9;8338:17;8329:6;8285:71;:::i;:::-;8141:222;;;;:::o;8369:180::-;8417:77;8414:1;8407:88;8514:4;8511:1;8504:15;8538:4;8535:1;8528:15;8555:194;8595:4;8615:20;8633:1;8615:20;:::i;:::-;8610:25;;8649:20;8667:1;8649:20;:::i;:::-;8644:25;;8693:1;8690;8686:9;8678:17;;8717:1;8711:4;8708:11;8705:37;;;8722:18;;:::i;:::-;8705:37;8555:194;;;;:::o;8755:180::-;8803:77;8800:1;8793:88;8900:4;8897:1;8890:15;8924:4;8921:1;8914:15;8941:116;9011:21;9026:5;9011:21;:::i;:::-;9004:5;9001:32;8991:60;;9047:1;9044;9037:12;8991:60;8941:116;:::o;9063:133::-;9106:5;9144:6;9131:20;9122:29;;9160:30;9184:5;9160:30;:::i;:::-;9063:133;;;;:::o;9202:323::-;9258:6;9307:2;9295:9;9286:7;9282:23;9278:32;9275:119;;;9313:79;;:::i;:::-;9275:119;9433:1;9458:50;9500:7;9491:6;9480:9;9476:22;9458:50;:::i;:::-;9448:60;;9404:114;9202:323;;;;:::o;9531:117::-;9640:1;9637;9630:12;9654:102;9695:6;9746:2;9742:7;9737:2;9730:5;9726:14;9722:28;9712:38;;9654:102;;;:::o;9762:180::-;9810:77;9807:1;9800:88;9907:4;9904:1;9897:15;9931:4;9928:1;9921:15;9948:281;10031:27;10053:4;10031:27;:::i;:::-;10023:6;10019:40;10161:6;10149:10;10146:22;10125:18;10113:10;10110:34;10107:62;10104:88;;;10172:18;;:::i;:::-;10104:88;10212:10;10208:2;10201:22;9991:238;9948:281;;:::o;10235:129::-;10269:6;10296:20;;:::i;:::-;10286:30;;10325:33;10353:4;10345:6;10325:33;:::i;:::-;10235:129;;;:::o;10370:117::-;10479:1;10476;10469:12;10493:311;10570:4;10660:18;10652:6;10649:30;10646:56;;;10682:18;;:::i;:::-;10646:56;10732:4;10724:6;10720:17;10712:25;;10792:4;10786;10782:15;10774:23;;10493:311;;;:::o;10827:710::-;10923:5;10948:81;10964:64;11021:6;10964:64;:::i;:::-;10948:81;:::i;:::-;10939:90;;11049:5;11078:6;11071:5;11064:21;11112:4;11105:5;11101:16;11094:23;;11165:4;11157:6;11153:17;11145:6;11141:30;11194:3;11186:6;11183:15;11180:122;;;11213:79;;:::i;:::-;11180:122;11328:6;11311:220;11345:6;11340:3;11337:15;11311:220;;;11420:3;11449:37;11482:3;11470:10;11449:37;:::i;:::-;11444:3;11437:50;11516:4;11511:3;11507:14;11500:21;;11387:144;11371:4;11366:3;11362:14;11355:21;;11311:220;;;11315:21;10929:608;;10827:710;;;;;:::o;11560:370::-;11631:5;11680:3;11673:4;11665:6;11661:17;11657:27;11647:122;;11688:79;;:::i;:::-;11647:122;11805:6;11792:20;11830:94;11920:3;11912:6;11905:4;11897:6;11893:17;11830:94;:::i;:::-;11821:103;;11637:293;11560:370;;;;:::o;11936:120::-;12008:23;12025:5;12008:23;:::i;:::-;12001:5;11998:34;11988:62;;12046:1;12043;12036:12;11988:62;11936:120;:::o;12062:137::-;12107:5;12145:6;12132:20;12123:29;;12161:32;12187:5;12161:32;:::i;:::-;12062:137;;;;:::o;12245:1258::-;12324:5;12368:4;12356:9;12351:3;12347:19;12343:30;12340:117;;;12376:79;;:::i;:::-;12340:117;12475:21;12491:4;12475:21;:::i;:::-;12466:30;;12556:1;12596:49;12641:3;12632:6;12621:9;12617:22;12596:49;:::i;:::-;12589:4;12582:5;12578:16;12571:75;12506:151;12750:2;12739:9;12735:18;12722:32;12781:18;12773:6;12770:30;12767:117;;;12803:79;;:::i;:::-;12767:117;12923:74;12993:3;12984:6;12973:9;12969:22;12923:74;:::i;:::-;12916:4;12909:5;12905:16;12898:100;12667:342;13069:2;13110:48;13154:3;13145:6;13134:9;13130:22;13110:48;:::i;:::-;13103:4;13096:5;13092:16;13085:74;13019:151;13233:2;13274:48;13318:3;13309:6;13298:9;13294:22;13274:48;:::i;:::-;13267:4;13260:5;13256:16;13249:74;13180:154;13394:3;13436:48;13480:3;13471:6;13460:9;13456:22;13436:48;:::i;:::-;13429:4;13422:5;13418:16;13411:74;13344:152;12245:1258;;;;:::o;13509:549::-;13598:6;13647:2;13635:9;13626:7;13622:23;13618:32;13615:119;;;13653:79;;:::i;:::-;13615:119;13801:1;13790:9;13786:17;13773:31;13831:18;13823:6;13820:30;13817:117;;;13853:79;;:::i;:::-;13817:117;13958:83;14033:7;14024:6;14013:9;14009:22;13958:83;:::i;:::-;13948:93;;13744:307;13509:549;;;;:::o;14064:114::-;14152:1;14145:5;14142:12;14132:40;;14168:1;14165;14158:12;14132:40;14064:114;:::o;14184:169::-;14245:5;14283:6;14270:20;14261:29;;14299:48;14341:5;14299:48;:::i;:::-;14184:169;;;;:::o;14359:117::-;14468:1;14465;14458:12;14482:307;14543:4;14633:18;14625:6;14622:30;14619:56;;;14655:18;;:::i;:::-;14619:56;14693:29;14715:6;14693:29;:::i;:::-;14685:37;;14777:4;14771;14767:15;14759:23;;14482:307;;;:::o;14795:148::-;14893:6;14888:3;14883;14870:30;14934:1;14925:6;14920:3;14916:16;14909:27;14795:148;;;:::o;14949:423::-;15026:5;15051:65;15067:48;15108:6;15067:48;:::i;:::-;15051:65;:::i;:::-;15042:74;;15139:6;15132:5;15125:21;15177:4;15170:5;15166:16;15215:3;15206:6;15201:3;15197:16;15194:25;15191:112;;;15222:79;;:::i;:::-;15191:112;15312:54;15359:6;15354:3;15349;15312:54;:::i;:::-;15032:340;14949:423;;;;;:::o;15391:338::-;15446:5;15495:3;15488:4;15480:6;15476:17;15472:27;15462:122;;15503:79;;:::i;:::-;15462:122;15620:6;15607:20;15645:78;15719:3;15711:6;15704:4;15696:6;15692:17;15645:78;:::i;:::-;15636:87;;15452:277;15391:338;;;;:::o;15765:1090::-;15841:5;15885:4;15873:9;15868:3;15864:19;15860:30;15857:117;;;15893:79;;:::i;:::-;15857:117;15992:21;16008:4;15992:21;:::i;:::-;15983:30;;16077:1;16117:64;16177:3;16168:6;16157:9;16153:22;16117:64;:::i;:::-;16110:4;16103:5;16099:16;16092:90;16023:170;16253:2;16294:49;16339:3;16330:6;16319:9;16315:22;16294:49;:::i;:::-;16287:4;16280:5;16276:16;16269:75;16203:152;16416:2;16457:49;16502:3;16493:6;16482:9;16478:22;16457:49;:::i;:::-;16450:4;16443:5;16439:16;16432:75;16365:153;16605:2;16594:9;16590:18;16577:32;16636:18;16628:6;16625:30;16622:117;;;16658:79;;:::i;:::-;16622:117;16778:58;16832:3;16823:6;16812:9;16808:22;16778:58;:::i;:::-;16771:4;16764:5;16760:16;16753:84;16528:320;15765:1090;;;;:::o;16861:543::-;16947:6;16996:2;16984:9;16975:7;16971:23;16967:32;16964:119;;;17002:79;;:::i;:::-;16964:119;17150:1;17139:9;17135:17;17122:31;17180:18;17172:6;17169:30;17166:117;;;17202:79;;:::i;:::-;17166:117;17307:80;17379:7;17370:6;17359:9;17355:22;17307:80;:::i;:::-;17297:90;;17093:304;16861:543;;;;:::o;17410:180::-;17458:77;17455:1;17448:88;17555:4;17552:1;17545:15;17579:4;17576:1;17569:15;17596:122;17669:24;17687:5;17669:24;:::i;:::-;17662:5;17659:35;17649:63;;17708:1;17705;17698:12;17649:63;17596:122;:::o;17724:143::-;17781:5;17812:6;17806:13;17797:22;;17828:33;17855:5;17828:33;:::i;:::-;17724:143;;;;:::o;17910:446::-;18004:5;18048:4;18036:9;18031:3;18027:19;18023:30;18020:117;;;18056:79;;:::i;:::-;18020:117;18155:21;18171:4;18155:21;:::i;:::-;18146:30;;18237:1;18277:60;18333:3;18324:6;18313:9;18309:22;18277:60;:::i;:::-;18270:4;18263:5;18259:16;18252:86;18186:163;17910:446;;;;:::o;18362:419::-;18466:6;18515:2;18503:9;18494:7;18490:23;18486:32;18483:119;;;18521:79;;:::i;:::-;18483:119;18641:1;18666:98;18756:7;18747:6;18736:9;18732:22;18666:98;:::i;:::-;18656:108;;18612:162;18362:419;;;;:::o;18787:332::-;18908:4;18946:2;18935:9;18931:18;18923:26;;18959:71;19027:1;19016:9;19012:17;19003:6;18959:71;:::i;:::-;19040:72;19108:2;19097:9;19093:18;19084:6;19040:72;:::i;:::-;18787:332;;;;;:::o;19125:117::-;19234:1;19231;19224:12;19248:117;19357:1;19354;19347:12;19371:117;19480:1;19477;19470:12;19494:724;19571:4;19577:6;19633:11;19620:25;19733:1;19727:4;19723:12;19712:8;19696:14;19692:29;19688:48;19668:18;19664:73;19654:168;;19741:79;;:::i;:::-;19654:168;19853:18;19843:8;19839:33;19831:41;;19905:4;19892:18;19882:28;;19933:18;19925:6;19922:30;19919:117;;;19955:79;;:::i;:::-;19919:117;20063:2;20057:4;20053:13;20045:21;;20120:4;20112:6;20108:17;20092:14;20088:38;20082:4;20078:49;20075:136;;;20130:79;;:::i;:::-;20075:136;19584:634;19494:724;;;;;:::o;20224:191::-;20264:3;20283:20;20301:1;20283:20;:::i;:::-;20278:25;;20317:20;20335:1;20317:20;:::i;:::-;20312:25;;20360:1;20357;20353:9;20346:16;;20381:3;20378:1;20375:10;20372:36;;;20388:18;;:::i;:::-;20372:36;20224:191;;;;:::o;20421:205::-;20460:3;20479:19;20496:1;20479:19;:::i;:::-;20474:24;;20512:19;20529:1;20512:19;:::i;:::-;20507:24;;20554:1;20551;20547:9;20540:16;;20577:18;20572:3;20569:27;20566:53;;;20599:18;;:::i;:::-;20566:53;20421:205;;;;:::o;20632:442::-;20781:4;20819:2;20808:9;20804:18;20796:26;;20832:71;20900:1;20889:9;20885:17;20876:6;20832:71;:::i;:::-;20913:72;20981:2;20970:9;20966:18;20957:6;20913:72;:::i;:::-;20995;21063:2;21052:9;21048:18;21039:6;20995:72;:::i;:::-;20632:442;;;;;;:::o;21080:::-;21229:4;21267:2;21256:9;21252:18;21244:26;;21280:71;21348:1;21337:9;21333:17;21324:6;21280:71;:::i;:::-;21361:72;21429:2;21418:9;21414:18;21405:6;21361:72;:::i;:::-;21443;21511:2;21500:9;21496:18;21487:6;21443:72;:::i;:::-;21080:442;;;;;;:::o;21528:208::-;21567:4;21587:19;21604:1;21587:19;:::i;:::-;21582:24;;21620:19;21637:1;21620:19;:::i;:::-;21615:24;;21663:1;21660;21656:9;21648:17;;21687:18;21681:4;21678:28;21675:54;;;21709:18;;:::i;:::-;21675:54;21528:208;;;;:::o;21742:410::-;21782:7;21805:20;21823:1;21805:20;:::i;:::-;21800:25;;21839:20;21857:1;21839:20;:::i;:::-;21834:25;;21894:1;21891;21887:9;21916:30;21934:11;21916:30;:::i;:::-;21905:41;;22095:1;22086:7;22082:15;22079:1;22076:22;22056:1;22049:9;22029:83;22006:139;;22125:18;;:::i;:::-;22006:139;21790:362;21742:410;;;;:::o;22158:180::-;22206:77;22203:1;22196:88;22303:4;22300:1;22293:15;22327:4;22324:1;22317:15;22344:185;22384:1;22401:20;22419:1;22401:20;:::i;:::-;22396:25;;22435:20;22453:1;22435:20;:::i;:::-;22430:25;;22474:1;22464:35;;22479:18;;:::i;:::-;22464:35;22521:1;22518;22514:9;22509:14;;22344:185;;;;:::o"},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","cancelOwnershipHandover()":"54d1f13d","cliff()":"13d033c0","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","duration()":"0fb5a6b4","end()":"efbe1c1c","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","start()":"be9a6555","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cliff\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"duration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"start\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Take note of the following when making use of this budget type: - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior. - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution. - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero. - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is equal to the total vested amount minus any already distributed\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets currently available for distribution\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"disburse(bytes)\":{\"details\":\"The maximum amount that can be disbursed is the {available} amount\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"end()\":{\"returns\":{\"_0\":\"The end time of the vesting schedule\"}},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget (see {InitPayload})\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting scheduleIf the amount is zero, the entire available balance of the asset will be transferred to the receiverIf the asset transfer fails for any reason, the function will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"isAuthorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is equal to the sum of the total current balance and the total distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_distributedFungible\":{\"details\":\"The total amount of each fungible asset distributed from the budget\"},\"_isAuthorized\":{\"details\":\"The mapping of authorized addresses\"}},\"title\":\"Vesting Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget as of the current block timestamp\"},\"cliff()\":{\"notice\":\"The duration of the cliff period (in seconds)\"},\"constructor\":{\"notice\":\"Construct a new VestingBudget\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"duration()\":{\"notice\":\"The duration of the vesting schedule (in seconds)\"},\"end()\":{\"notice\":\"Get the end time of the vesting schedule\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"start()\":{\"notice\":\"The timestamp at which the vesting schedule begins\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A vesting-based budget implementation that allows for the distribution of assets over time\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/VestingBudget.sol\":\"VestingBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/budgets/VestingBudget.sol\":{\"keccak256\":\"0x31f6625abbd3668413280d8dd96560b63dde6074e0aee92f04808c02a335e024\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a4dc39be3f8e13624ffbdec0acb458a1c229fa3514191e144db1dcec5ee51cca\",\"dweb:/ipfs/QmW1ysAbpEnXJwunqnuEkA1vGRgNJ3ojXGYMJAsXg8zHz2\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/AllowListIncentive.sol":{"AllowListIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"allowList","outputs":[{"internalType":"contract SimpleAllowList","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_15443":{"entryPoint":null,"id":15443,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611754806101b45f395ff3fe6080604052600436106100fd575f3560e01c8063a4d66daf11610094578063e18e650811610063578063e18e6508146102df578063f04e283e1461031b578063f1c30ec014610337578063f2fde38b14610373578063fee81cf41461038f576100fd565b8063a4d66daf14610213578063c63ff8dd1461023d578063c884ef8314610279578063dcc59b6f146102b5576100fd565b806354d1f13d116100d057806354d1f13d146101ab578063715018a6146101b557806387b9d25c146101bf5780638da5cb5b146101e9576100fd565b806301ffc9a714610101578063256929621461013d578063439fab91146101475780634e7165a21461016f575b5f80fd5b34801561010c575f80fd5b5061012760048036038101906101229190610e8d565b6103cb565b6040516101349190610ed2565b60405180910390f35b610145610444565b005b348015610152575f80fd5b5061016d60048036038101906101689190610f4c565b610495565b005b34801561017a575f80fd5b5061019560048036038101906101909190610f4c565b610575565b6040516101a29190611007565b60405180910390f35b6101b36105cc565b005b6101bd610605565b005b3480156101ca575f80fd5b506101d3610618565b6040516101e091906110a1565b60405180910390f35b3480156101f4575f80fd5b506101fd61063d565b60405161020a91906110da565b60405180910390f35b34801561021e575f80fd5b50610227610665565b604051610234919061110b565b60405180910390f35b348015610248575f80fd5b50610263600480360381019061025e9190610f4c565b61066b565b6040516102709190610ed2565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a919061114e565b61082a565b6040516102ac9190610ed2565b60405180910390f35b3480156102c0575f80fd5b506102c9610847565b6040516102d6919061110b565b60405180910390f35b3480156102ea575f80fd5b5061030560048036038101906103009190610f4c565b61084c565b6040516103129190610ed2565b60405180910390f35b6103356004803603810190610330919061114e565b610969565b005b348015610342575f80fd5b5061035d60048036038101906103589190610f4c565b6109a7565b60405161036a9190610ed2565b60405180910390f35b61038d6004803603810190610388919061114e565b6109da565b005b34801561039a575f80fd5b506103b560048036038101906103b0919061114e565b610a03565b6040516103c2919061110b565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043d575061043c82610a1c565b5b9050919050565b5f61044d610a95565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61049e610a9f565b905080546003825580156104d05760018160011c14303b106104c75763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104e191906112ab565b90506104ec33610ac8565b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600381905550508015610570576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156105915761059061117d565b5b6040519080825280601f01601f1916602001820160405280156105c35781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61060d610b9e565b6106165f610bd5565b565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b5f610674610b9e565b5f838381019061068491906113ef565b90506003545f8081548092919061069a90611463565b919050551015806106f4575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561072b576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f80610790835f0151610c9b565b9150915060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b81526004016107f0929190611618565b5f604051808303815f87803b158015610807575f80fd5b505af1158015610819573d5f803e3d5ffd5b505050506001935050505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f80838381019061085d91906113ef565b90506003545f541080156108bb575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610960575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de825f01516040518263ffffffff1660e01b815260040161091f9190611670565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e91906116c6565b155b91505092915050565b610971610b9e565b63389a75e1600c52805f526020600c20805442111561099757636f5e88185f526004601cfd5b5f8155506109a481610bd5565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109e2610b9e565b8060601b6109f757637448fbae5f526004601cfd5b610a0081610bd5565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a8e5750610a8d82610dba565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610ad0610e23565b15610b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b0a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610b9b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610bd3576382b429005f526004601cfd5b565b610bdd610e23565b15610c42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610c98565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610cba57610cb961117d565b5b604051908082528060200260200182016040528015610ce85781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610d0757610d0661117d565b5b604051908082528060200260200182016040528015610d355781602001602082028036833780820191505090505b50905084825f81518110610d4c57610d4b6116f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610d9b57610d9a6116f1565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6c81610e38565b8114610e76575f80fd5b50565b5f81359050610e8781610e63565b92915050565b5f60208284031215610ea257610ea1610e30565b5b5f610eaf84828501610e79565b91505092915050565b5f8115159050919050565b610ecc81610eb8565b82525050565b5f602082019050610ee55f830184610ec3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f0c57610f0b610eeb565b5b8235905067ffffffffffffffff811115610f2957610f28610eef565b5b602083019150836001820283011115610f4557610f44610ef3565b5b9250929050565b5f8060208385031215610f6257610f61610e30565b5b5f83013567ffffffffffffffff811115610f7f57610f7e610e34565b5b610f8b85828601610ef7565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fd982610f97565b610fe38185610fa1565b9350610ff3818560208601610fb1565b610ffc81610fbf565b840191505092915050565b5f6020820190508181035f83015261101f8184610fcf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61106961106461105f84611027565b611046565b611027565b9050919050565b5f61107a8261104f565b9050919050565b5f61108b82611070565b9050919050565b61109b81611081565b82525050565b5f6020820190506110b45f830184611092565b92915050565b5f6110c482611027565b9050919050565b6110d4816110ba565b82525050565b5f6020820190506110ed5f8301846110cb565b92915050565b5f819050919050565b611105816110f3565b82525050565b5f60208201905061111e5f8301846110fc565b92915050565b61112d816110ba565b8114611137575f80fd5b50565b5f8135905061114881611124565b92915050565b5f6020828403121561116357611162610e30565b5b5f6111708482850161113a565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111b382610fbf565b810181811067ffffffffffffffff821117156111d2576111d161117d565b5b80604052505050565b5f6111e4610e27565b90506111f082826111aa565b919050565b5f80fd5b5f611203826110ba565b9050919050565b611213816111f9565b811461121d575f80fd5b50565b5f8135905061122e8161120a565b92915050565b61123d816110f3565b8114611247575f80fd5b50565b5f8135905061125881611234565b92915050565b5f6040828403121561127357611272611179565b5b61127d60406111db565b90505f61128c84828501611220565b5f83015250602061129f8482850161124a565b60208301525092915050565b5f604082840312156112c0576112bf610e30565b5b5f6112cd8482850161125e565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112f4576112f361117d565b5b6112fd82610fbf565b9050602081019050919050565b828183375f83830152505050565b5f61132a611325846112da565b6111db565b905082815260208101848484011115611346576113456112d6565b5b61135184828561130a565b509392505050565b5f82601f83011261136d5761136c610eeb565b5b813561137d848260208601611318565b91505092915050565b5f6040828403121561139b5761139a611179565b5b6113a560406111db565b90505f6113b48482850161113a565b5f83015250602082013567ffffffffffffffff8111156113d7576113d66111f5565b5b6113e384828501611359565b60208301525092915050565b5f6020828403121561140457611403610e30565b5b5f82013567ffffffffffffffff81111561142157611420610e34565b5b61142d84828501611386565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61146d826110f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361149f5761149e611436565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114dc816110ba565b82525050565b5f6114ed83836114d3565b60208301905092915050565b5f602082019050919050565b5f61150f826114aa565b61151981856114b4565b9350611524836114c4565b805f5b8381101561155457815161153b88826114e2565b9750611546836114f9565b925050600181019050611527565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61159381610eb8565b82525050565b5f6115a4838361158a565b60208301905092915050565b5f602082019050919050565b5f6115c682611561565b6115d0818561156b565b93506115db8361157b565b805f5b8381101561160b5781516115f28882611599565b97506115fd836115b0565b9250506001810190506115de565b5085935050505092915050565b5f6040820190508181035f8301526116308185611505565b9050818103602083015261164481846115bc565b90509392505050565b50565b5f61165b5f83610fa1565b91506116668261164d565b5f82019050919050565b5f6040820190506116835f8301846110cb565b818103602083015261169481611650565b905092915050565b6116a581610eb8565b81146116af575f80fd5b50565b5f815190506116c08161169c565b92915050565b5f602082840312156116db576116da610e30565b5b5f6116e8848285016116b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122083d54774cb29726df516d619eb145b34471849b496d1f77c14ec02f035cc0aab64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1754 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xFD JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x31B JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x38F JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2B5 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x87B9D25C EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E9 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x16F JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0xE8D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH2 0x444 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x495 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x575 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B3 PUSH2 0x5CC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BD PUSH2 0x605 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x618 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x10A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH2 0x63D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x10DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x665 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x263 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x66B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x270 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x284 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x29F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29A SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AC SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x305 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x84C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x312 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x969 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x35D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x358 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36A SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x388 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0xA03 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43D JUMPI POP PUSH2 0x43C DUP3 PUSH2 0xA1C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x44D PUSH2 0xA95 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x49E PUSH2 0xA9F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4C7 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4E1 SWAP2 SWAP1 PUSH2 0x12AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4EC CALLER PUSH2 0xAC8 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x591 JUMPI PUSH2 0x590 PUSH2 0x117D 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 0x5C3 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x60D PUSH2 0xB9E JUMP JUMPDEST PUSH2 0x616 PUSH0 PUSH2 0xBD5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x674 PUSH2 0xB9E JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x684 SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x69A SWAP1 PUSH2 0x1463 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE LT ISZERO DUP1 PUSH2 0x6F4 JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x72B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP1 PUSH2 0x790 DUP4 PUSH0 ADD MLOAD PUSH2 0xC9B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3ABB0604 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x1618 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x807 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x819 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x85D SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT DUP1 ISZERO PUSH2 0x8BB JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x960 JUMPI POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3F756DE DUP3 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91F SWAP2 SWAP1 PUSH2 0x1670 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x95E SWAP2 SWAP1 PUSH2 0x16C6 JUMP JUMPDEST ISZERO JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x971 PUSH2 0xB9E JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x997 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x9A4 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9E2 PUSH2 0xB9E JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x9F7 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xA00 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA8E JUMPI POP PUSH2 0xA8D DUP3 PUSH2 0xDBA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD0 PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xB48 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB0A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xB9B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xBD3 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xBDD PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xC42 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xC98 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCBA JUMPI PUSH2 0xCB9 PUSH2 0x117D 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 0xCE8 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 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0x117D 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 0xD35 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 DUP5 DUP3 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD4C JUMPI PUSH2 0xD4B PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x1 DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD9B JUMPI PUSH2 0xD9A PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE38 JUMP JUMPDEST DUP2 EQ PUSH2 0xE76 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE87 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA2 JUMPI PUSH2 0xEA1 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEAF DUP5 DUP3 DUP6 ADD PUSH2 0xE79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xECC DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE5 PUSH0 DUP4 ADD DUP5 PUSH2 0xEC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF0C JUMPI PUSH2 0xF0B PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF29 JUMPI PUSH2 0xF28 PUSH2 0xEEF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0xEF3 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF7F JUMPI PUSH2 0xF7E PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0xF8B DUP6 DUP3 DUP7 ADD PUSH2 0xEF7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFD9 DUP3 PUSH2 0xF97 JUMP JUMPDEST PUSH2 0xFE3 DUP2 DUP6 PUSH2 0xFA1 JUMP JUMPDEST SWAP4 POP PUSH2 0xFF3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFB1 JUMP JUMPDEST PUSH2 0xFFC DUP2 PUSH2 0xFBF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x101F DUP2 DUP5 PUSH2 0xFCF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1069 PUSH2 0x1064 PUSH2 0x105F DUP5 PUSH2 0x1027 JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x107A DUP3 PUSH2 0x104F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108B DUP3 PUSH2 0x1070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x109B DUP2 PUSH2 0x1081 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1092 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10C4 DUP3 PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10D4 DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10ED PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1105 DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x111E PUSH0 DUP4 ADD DUP5 PUSH2 0x10FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x112D DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP2 EQ PUSH2 0x1137 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1148 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1163 JUMPI PUSH2 0x1162 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1170 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11B3 DUP3 PUSH2 0xFBF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11D2 JUMPI PUSH2 0x11D1 PUSH2 0x117D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11E4 PUSH2 0xE27 JUMP JUMPDEST SWAP1 POP PUSH2 0x11F0 DUP3 DUP3 PUSH2 0x11AA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1203 DUP3 PUSH2 0x10BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1213 DUP2 PUSH2 0x11F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x121D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122E DUP2 PUSH2 0x120A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x123D DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1247 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1258 DUP2 PUSH2 0x1234 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1273 JUMPI PUSH2 0x1272 PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x127D PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x128C DUP5 DUP3 DUP6 ADD PUSH2 0x1220 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x129F DUP5 DUP3 DUP6 ADD PUSH2 0x124A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12C0 JUMPI PUSH2 0x12BF PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CD DUP5 DUP3 DUP6 ADD PUSH2 0x125E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12F4 JUMPI PUSH2 0x12F3 PUSH2 0x117D JUMP JUMPDEST JUMPDEST PUSH2 0x12FD DUP3 PUSH2 0xFBF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x132A PUSH2 0x1325 DUP5 PUSH2 0x12DA JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1346 JUMPI PUSH2 0x1345 PUSH2 0x12D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1351 DUP5 DUP3 DUP6 PUSH2 0x130A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x136D JUMPI PUSH2 0x136C PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x137D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1318 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x139B JUMPI PUSH2 0x139A PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x13A5 PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x13B4 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13D7 JUMPI PUSH2 0x13D6 PUSH2 0x11F5 JUMP JUMPDEST JUMPDEST PUSH2 0x13E3 DUP5 DUP3 DUP6 ADD PUSH2 0x1359 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1404 JUMPI PUSH2 0x1403 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1421 JUMPI PUSH2 0x1420 PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0x142D DUP5 DUP3 DUP6 ADD PUSH2 0x1386 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x146D DUP3 PUSH2 0x10F3 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x149F JUMPI PUSH2 0x149E PUSH2 0x1436 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14DC DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14ED DUP4 DUP4 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x150F DUP3 PUSH2 0x14AA JUMP JUMPDEST PUSH2 0x1519 DUP2 DUP6 PUSH2 0x14B4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1524 DUP4 PUSH2 0x14C4 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1554 JUMPI DUP2 MLOAD PUSH2 0x153B DUP9 DUP3 PUSH2 0x14E2 JUMP JUMPDEST SWAP8 POP PUSH2 0x1546 DUP4 PUSH2 0x14F9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1527 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1593 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x158A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x15C6 DUP3 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x15D0 DUP2 DUP6 PUSH2 0x156B JUMP JUMPDEST SWAP4 POP PUSH2 0x15DB DUP4 PUSH2 0x157B JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x160B JUMPI DUP2 MLOAD PUSH2 0x15F2 DUP9 DUP3 PUSH2 0x1599 JUMP JUMPDEST SWAP8 POP PUSH2 0x15FD DUP4 PUSH2 0x15B0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x15DE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1630 DUP2 DUP6 PUSH2 0x1505 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1644 DUP2 DUP5 PUSH2 0x15BC JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x165B PUSH0 DUP4 PUSH2 0xFA1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1666 DUP3 PUSH2 0x164D JUMP JUMPDEST PUSH0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1683 PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1694 DUP2 PUSH2 0x1650 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16A5 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0x16AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x16C0 DUP2 PUSH2 0x169C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DB JUMPI PUSH2 0x16DA PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16E8 DUP5 DUP3 DUP6 ADD PUSH2 0x16B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD5 SELFBALANCE PUSH21 0xCB29726DF516D619EB145B34471849B496D1F77C14 0xEC MUL CREATE CALLDATALOAD 0xCC EXP 0xAB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"646:2945:40:-:0;;;1285:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;1309:22:40;:20;;;:22;;:::i;:::-;646:2945;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;646:2945:40:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":2974,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3619,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2719,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2760,"id":6302,"parameterSlots":1,"returnSlots":0},"@_makeAllowListPayload_15661":{"entryPoint":3227,"id":15661,"parameterSlots":1,"returnSlots":2},"@_ownershipHandoverValidFor_6333":{"entryPoint":2709,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":3029,"id":6316,"parameterSlots":1,"returnSlots":0},"@allowList_15432":{"entryPoint":1560,"id":15432,"parameterSlots":0,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1484,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_15542":{"entryPoint":1643,"id":15542,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":2090,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":2119,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2409,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_15478":{"entryPoint":1173,"id":15478,"parameterSlots":2,"returnSlots":0},"@isClaimable_15595":{"entryPoint":2124,"id":15595,"parameterSlots":2,"returnSlots":1},"@limit_15435":{"entryPoint":1637,"id":15435,"parameterSlots":0,"returnSlots":0},"@owner_6404":{"entryPoint":1597,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2563,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_15610":{"entryPoint":1397,"id":15610,"parameterSlots":2,"returnSlots":1},"@reclaim_15557":{"entryPoint":2471,"id":15557,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1541,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1092,"id":6376,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":971,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":2588,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":3514,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":2522,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4888,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4410,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":5810,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3831,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4953,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_SimpleAllowList_$13307":{"entryPoint":4640,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":4998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$15428_memory_ptr":{"entryPoint":4702,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4682,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4430,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5830,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3725,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3916,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":5103,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$15428_memory_ptr":{"entryPoint":4779,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_address_to_t_address":{"entryPoint":5346,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_bool_to_t_bool":{"entryPoint":5529,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":5331,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4299,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack":{"entryPoint":5381,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack":{"entryPoint":5564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool":{"entryPoint":5514,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3779,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4047,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack":{"entryPoint":4242,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack":{"entryPoint":5712,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4348,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4314,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5744,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":5656,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3794,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4103,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_SimpleAllowList_$13307__to_t_address__fromStack_reversed":{"entryPoint":4257,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4363,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4571,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3623,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4826,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5316,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5499,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5290,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5473,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":3991,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5369,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5552,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack":{"entryPoint":5300,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack":{"entryPoint":5483,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4001,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4282,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3768,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3640,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_SimpleAllowList_$13307":{"entryPoint":4601,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4135,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4339,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_SimpleAllowList_$13307_to_t_address":{"entryPoint":4225,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":4208,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":4175,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4874,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4017,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4522,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":4166,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":5219,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5174,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":5873,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4477,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3823,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3819,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4473,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":4597,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3827,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4822,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3636,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3632,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4031,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470":{"entryPoint":5709,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4388,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":5788,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3683,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_SimpleAllowList_$13307":{"entryPoint":4618,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4660,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:18301:53","nodeType":"YulBlock","src":"0:18301:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1974:478:53","nodeType":"YulBlock","src":"1974:478:53","statements":[{"body":{"nativeSrc":"2023:83:53","nodeType":"YulBlock","src":"2023:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:53","nodeType":"YulIdentifier","src":"2025:77:53"},"nativeSrc":"2025:79:53","nodeType":"YulFunctionCall","src":"2025:79:53"},"nativeSrc":"2025:79:53","nodeType":"YulExpressionStatement","src":"2025:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:53","nodeType":"YulIdentifier","src":"2002:6:53"},{"kind":"number","nativeSrc":"2010:4:53","nodeType":"YulLiteral","src":"2010:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"},{"name":"end","nativeSrc":"2017:3:53","nodeType":"YulIdentifier","src":"2017:3:53"}],"functionName":{"name":"slt","nativeSrc":"1994:3:53","nodeType":"YulIdentifier","src":"1994:3:53"},"nativeSrc":"1994:27:53","nodeType":"YulFunctionCall","src":"1994:27:53"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:53","nodeType":"YulIdentifier","src":"1987:6:53"},"nativeSrc":"1987:35:53","nodeType":"YulFunctionCall","src":"1987:35:53"},"nativeSrc":"1984:122:53","nodeType":"YulIf","src":"1984:122:53"},{"nativeSrc":"2115:30:53","nodeType":"YulAssignment","src":"2115:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:53","nodeType":"YulIdentifier","src":"2138:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:53","nodeType":"YulIdentifier","src":"2125:12:53"},"nativeSrc":"2125:20:53","nodeType":"YulFunctionCall","src":"2125:20:53"},"variableNames":[{"name":"length","nativeSrc":"2115:6:53","nodeType":"YulIdentifier","src":"2115:6:53"}]},{"body":{"nativeSrc":"2188:83:53","nodeType":"YulBlock","src":"2188:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:53","nodeType":"YulIdentifier","src":"2190:77:53"},"nativeSrc":"2190:79:53","nodeType":"YulFunctionCall","src":"2190:79:53"},"nativeSrc":"2190:79:53","nodeType":"YulExpressionStatement","src":"2190:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:53","nodeType":"YulIdentifier","src":"2160:6:53"},{"kind":"number","nativeSrc":"2168:18:53","nodeType":"YulLiteral","src":"2168:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:53","nodeType":"YulIdentifier","src":"2157:2:53"},"nativeSrc":"2157:30:53","nodeType":"YulFunctionCall","src":"2157:30:53"},"nativeSrc":"2154:117:53","nodeType":"YulIf","src":"2154:117:53"},{"nativeSrc":"2280:29:53","nodeType":"YulAssignment","src":"2280:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:53","nodeType":"YulIdentifier","src":"2296:6:53"},{"kind":"number","nativeSrc":"2304:4:53","nodeType":"YulLiteral","src":"2304:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:53","nodeType":"YulIdentifier","src":"2292:3:53"},"nativeSrc":"2292:17:53","nodeType":"YulFunctionCall","src":"2292:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:53","nodeType":"YulIdentifier","src":"2280:8:53"}]},{"body":{"nativeSrc":"2363:83:53","nodeType":"YulBlock","src":"2363:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:53","nodeType":"YulIdentifier","src":"2365:77:53"},"nativeSrc":"2365:79:53","nodeType":"YulFunctionCall","src":"2365:79:53"},"nativeSrc":"2365:79:53","nodeType":"YulExpressionStatement","src":"2365:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:53","nodeType":"YulIdentifier","src":"2328:8:53"},{"arguments":[{"name":"length","nativeSrc":"2342:6:53","nodeType":"YulIdentifier","src":"2342:6:53"},{"kind":"number","nativeSrc":"2350:4:53","nodeType":"YulLiteral","src":"2350:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:53","nodeType":"YulIdentifier","src":"2338:3:53"},"nativeSrc":"2338:17:53","nodeType":"YulFunctionCall","src":"2338:17:53"}],"functionName":{"name":"add","nativeSrc":"2324:3:53","nodeType":"YulIdentifier","src":"2324:3:53"},"nativeSrc":"2324:32:53","nodeType":"YulFunctionCall","src":"2324:32:53"},{"name":"end","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"}],"functionName":{"name":"gt","nativeSrc":"2321:2:53","nodeType":"YulIdentifier","src":"2321:2:53"},"nativeSrc":"2321:41:53","nodeType":"YulFunctionCall","src":"2321:41:53"},"nativeSrc":"2318:128:53","nodeType":"YulIf","src":"2318:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:53","nodeType":"YulTypedName","src":"1941:6:53","type":""},{"name":"end","nativeSrc":"1949:3:53","nodeType":"YulTypedName","src":"1949:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:53","nodeType":"YulTypedName","src":"1957:8:53","type":""},{"name":"length","nativeSrc":"1967:6:53","nodeType":"YulTypedName","src":"1967:6:53","type":""}],"src":"1900:552:53"},{"body":{"nativeSrc":"2543:442:53","nodeType":"YulBlock","src":"2543:442:53","statements":[{"body":{"nativeSrc":"2589:83:53","nodeType":"YulBlock","src":"2589:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:53","nodeType":"YulIdentifier","src":"2591:77:53"},"nativeSrc":"2591:79:53","nodeType":"YulFunctionCall","src":"2591:79:53"},"nativeSrc":"2591:79:53","nodeType":"YulExpressionStatement","src":"2591:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:53","nodeType":"YulIdentifier","src":"2564:7:53"},{"name":"headStart","nativeSrc":"2573:9:53","nodeType":"YulIdentifier","src":"2573:9:53"}],"functionName":{"name":"sub","nativeSrc":"2560:3:53","nodeType":"YulIdentifier","src":"2560:3:53"},"nativeSrc":"2560:23:53","nodeType":"YulFunctionCall","src":"2560:23:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:53","nodeType":"YulIdentifier","src":"2556:3:53"},"nativeSrc":"2556:32:53","nodeType":"YulFunctionCall","src":"2556:32:53"},"nativeSrc":"2553:119:53","nodeType":"YulIf","src":"2553:119:53"},{"nativeSrc":"2682:296:53","nodeType":"YulBlock","src":"2682:296:53","statements":[{"nativeSrc":"2697:45:53","nodeType":"YulVariableDeclaration","src":"2697:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:53","nodeType":"YulIdentifier","src":"2728:9:53"},{"kind":"number","nativeSrc":"2739:1:53","nodeType":"YulLiteral","src":"2739:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:53","nodeType":"YulIdentifier","src":"2724:3:53"},"nativeSrc":"2724:17:53","nodeType":"YulFunctionCall","src":"2724:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:53","nodeType":"YulIdentifier","src":"2711:12:53"},"nativeSrc":"2711:31:53","nodeType":"YulFunctionCall","src":"2711:31:53"},"variables":[{"name":"offset","nativeSrc":"2701:6:53","nodeType":"YulTypedName","src":"2701:6:53","type":""}]},{"body":{"nativeSrc":"2789:83:53","nodeType":"YulBlock","src":"2789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:53","nodeType":"YulIdentifier","src":"2791:77:53"},"nativeSrc":"2791:79:53","nodeType":"YulFunctionCall","src":"2791:79:53"},"nativeSrc":"2791:79:53","nodeType":"YulExpressionStatement","src":"2791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},{"kind":"number","nativeSrc":"2769:18:53","nodeType":"YulLiteral","src":"2769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:53","nodeType":"YulIdentifier","src":"2758:2:53"},"nativeSrc":"2758:30:53","nodeType":"YulFunctionCall","src":"2758:30:53"},"nativeSrc":"2755:117:53","nodeType":"YulIf","src":"2755:117:53"},{"nativeSrc":"2886:82:53","nodeType":"YulAssignment","src":"2886:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"},{"name":"offset","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"}],"functionName":{"name":"add","nativeSrc":"2936:3:53","nodeType":"YulIdentifier","src":"2936:3:53"},"nativeSrc":"2936:22:53","nodeType":"YulFunctionCall","src":"2936:22:53"},{"name":"dataEnd","nativeSrc":"2960:7:53","nodeType":"YulIdentifier","src":"2960:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:53","nodeType":"YulIdentifier","src":"2904:31:53"},"nativeSrc":"2904:64:53","nodeType":"YulFunctionCall","src":"2904:64:53"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:53","nodeType":"YulIdentifier","src":"2886:6:53"},{"name":"value1","nativeSrc":"2894:6:53","nodeType":"YulIdentifier","src":"2894:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:53","nodeType":"YulTypedName","src":"2505:9:53","type":""},{"name":"dataEnd","nativeSrc":"2516:7:53","nodeType":"YulTypedName","src":"2516:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:53","nodeType":"YulTypedName","src":"2528:6:53","type":""},{"name":"value1","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"src":"2458:527:53"},{"body":{"nativeSrc":"3049:40:53","nodeType":"YulBlock","src":"3049:40:53","statements":[{"nativeSrc":"3060:22:53","nodeType":"YulAssignment","src":"3060:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"}],"functionName":{"name":"mload","nativeSrc":"3070:5:53","nodeType":"YulIdentifier","src":"3070:5:53"},"nativeSrc":"3070:12:53","nodeType":"YulFunctionCall","src":"3070:12:53"},"variableNames":[{"name":"length","nativeSrc":"3060:6:53","nodeType":"YulIdentifier","src":"3060:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:53","nodeType":"YulTypedName","src":"3032:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:53","nodeType":"YulTypedName","src":"3042:6:53","type":""}],"src":"2991:98:53"},{"body":{"nativeSrc":"3190:73:53","nodeType":"YulBlock","src":"3190:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"},{"name":"length","nativeSrc":"3212:6:53","nodeType":"YulIdentifier","src":"3212:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:53","nodeType":"YulIdentifier","src":"3200:6:53"},"nativeSrc":"3200:19:53","nodeType":"YulFunctionCall","src":"3200:19:53"},"nativeSrc":"3200:19:53","nodeType":"YulExpressionStatement","src":"3200:19:53"},{"nativeSrc":"3228:29:53","nodeType":"YulAssignment","src":"3228:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:53","nodeType":"YulIdentifier","src":"3247:3:53"},{"kind":"number","nativeSrc":"3252:4:53","nodeType":"YulLiteral","src":"3252:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:53","nodeType":"YulIdentifier","src":"3243:3:53"},"nativeSrc":"3243:14:53","nodeType":"YulFunctionCall","src":"3243:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:53","nodeType":"YulIdentifier","src":"3228:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:53","nodeType":"YulTypedName","src":"3162:3:53","type":""},{"name":"length","nativeSrc":"3167:6:53","nodeType":"YulTypedName","src":"3167:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:53","nodeType":"YulTypedName","src":"3178:11:53","type":""}],"src":"3095:168:53"},{"body":{"nativeSrc":"3331:77:53","nodeType":"YulBlock","src":"3331:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:53","nodeType":"YulIdentifier","src":"3348:3:53"},{"name":"src","nativeSrc":"3353:3:53","nodeType":"YulIdentifier","src":"3353:3:53"},{"name":"length","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:53","nodeType":"YulIdentifier","src":"3342:5:53"},"nativeSrc":"3342:23:53","nodeType":"YulFunctionCall","src":"3342:23:53"},"nativeSrc":"3342:23:53","nodeType":"YulExpressionStatement","src":"3342:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:53","nodeType":"YulIdentifier","src":"3385:3:53"},{"name":"length","nativeSrc":"3390:6:53","nodeType":"YulIdentifier","src":"3390:6:53"}],"functionName":{"name":"add","nativeSrc":"3381:3:53","nodeType":"YulIdentifier","src":"3381:3:53"},"nativeSrc":"3381:16:53","nodeType":"YulFunctionCall","src":"3381:16:53"},{"kind":"number","nativeSrc":"3399:1:53","nodeType":"YulLiteral","src":"3399:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:53","nodeType":"YulIdentifier","src":"3374:6:53"},"nativeSrc":"3374:27:53","nodeType":"YulFunctionCall","src":"3374:27:53"},"nativeSrc":"3374:27:53","nodeType":"YulExpressionStatement","src":"3374:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:53","nodeType":"YulTypedName","src":"3313:3:53","type":""},{"name":"dst","nativeSrc":"3318:3:53","nodeType":"YulTypedName","src":"3318:3:53","type":""},{"name":"length","nativeSrc":"3323:6:53","nodeType":"YulTypedName","src":"3323:6:53","type":""}],"src":"3269:139:53"},{"body":{"nativeSrc":"3462:54:53","nodeType":"YulBlock","src":"3462:54:53","statements":[{"nativeSrc":"3472:38:53","nodeType":"YulAssignment","src":"3472:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:53","nodeType":"YulIdentifier","src":"3490:5:53"},{"kind":"number","nativeSrc":"3497:2:53","nodeType":"YulLiteral","src":"3497:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:53","nodeType":"YulIdentifier","src":"3486:3:53"},"nativeSrc":"3486:14:53","nodeType":"YulFunctionCall","src":"3486:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:53","nodeType":"YulLiteral","src":"3506:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:53","nodeType":"YulIdentifier","src":"3502:3:53"},"nativeSrc":"3502:7:53","nodeType":"YulFunctionCall","src":"3502:7:53"}],"functionName":{"name":"and","nativeSrc":"3482:3:53","nodeType":"YulIdentifier","src":"3482:3:53"},"nativeSrc":"3482:28:53","nodeType":"YulFunctionCall","src":"3482:28:53"},"variableNames":[{"name":"result","nativeSrc":"3472:6:53","nodeType":"YulIdentifier","src":"3472:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:53","nodeType":"YulTypedName","src":"3445:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:53","nodeType":"YulTypedName","src":"3455:6:53","type":""}],"src":"3414:102:53"},{"body":{"nativeSrc":"3612:283:53","nodeType":"YulBlock","src":"3612:283:53","statements":[{"nativeSrc":"3622:52:53","nodeType":"YulVariableDeclaration","src":"3622:52:53","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:53","nodeType":"YulIdentifier","src":"3668:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:53","nodeType":"YulIdentifier","src":"3636:31:53"},"nativeSrc":"3636:38:53","nodeType":"YulFunctionCall","src":"3636:38:53"},"variables":[{"name":"length","nativeSrc":"3626:6:53","nodeType":"YulTypedName","src":"3626:6:53","type":""}]},{"nativeSrc":"3683:77:53","nodeType":"YulAssignment","src":"3683:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},{"name":"length","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:53","nodeType":"YulIdentifier","src":"3690:57:53"},"nativeSrc":"3690:70:53","nodeType":"YulFunctionCall","src":"3690:70:53"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:53","nodeType":"YulIdentifier","src":"3683:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:53","nodeType":"YulIdentifier","src":"3808:5:53"},{"kind":"number","nativeSrc":"3815:4:53","nodeType":"YulLiteral","src":"3815:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:16:53","nodeType":"YulFunctionCall","src":"3804:16:53"},{"name":"pos","nativeSrc":"3822:3:53","nodeType":"YulIdentifier","src":"3822:3:53"},{"name":"length","nativeSrc":"3827:6:53","nodeType":"YulIdentifier","src":"3827:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:53","nodeType":"YulIdentifier","src":"3769:34:53"},"nativeSrc":"3769:65:53","nodeType":"YulFunctionCall","src":"3769:65:53"},"nativeSrc":"3769:65:53","nodeType":"YulExpressionStatement","src":"3769:65:53"},{"nativeSrc":"3843:46:53","nodeType":"YulAssignment","src":"3843:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:53","nodeType":"YulIdentifier","src":"3854:3:53"},{"arguments":[{"name":"length","nativeSrc":"3881:6:53","nodeType":"YulIdentifier","src":"3881:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:53","nodeType":"YulIdentifier","src":"3859:21:53"},"nativeSrc":"3859:29:53","nodeType":"YulFunctionCall","src":"3859:29:53"}],"functionName":{"name":"add","nativeSrc":"3850:3:53","nodeType":"YulIdentifier","src":"3850:3:53"},"nativeSrc":"3850:39:53","nodeType":"YulFunctionCall","src":"3850:39:53"},"variableNames":[{"name":"end","nativeSrc":"3843:3:53","nodeType":"YulIdentifier","src":"3843:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:53","nodeType":"YulTypedName","src":"3593:5:53","type":""},{"name":"pos","nativeSrc":"3600:3:53","nodeType":"YulTypedName","src":"3600:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:53","nodeType":"YulTypedName","src":"3608:3:53","type":""}],"src":"3522:373:53"},{"body":{"nativeSrc":"4017:193:53","nodeType":"YulBlock","src":"4017:193:53","statements":[{"nativeSrc":"4027:26:53","nodeType":"YulAssignment","src":"4027:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4039:9:53","nodeType":"YulIdentifier","src":"4039:9:53"},{"kind":"number","nativeSrc":"4050:2:53","nodeType":"YulLiteral","src":"4050:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4035:3:53","nodeType":"YulIdentifier","src":"4035:3:53"},"nativeSrc":"4035:18:53","nodeType":"YulFunctionCall","src":"4035:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4027:4:53","nodeType":"YulIdentifier","src":"4027:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4074:9:53","nodeType":"YulIdentifier","src":"4074:9:53"},{"kind":"number","nativeSrc":"4085:1:53","nodeType":"YulLiteral","src":"4085:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4070:3:53","nodeType":"YulIdentifier","src":"4070:3:53"},"nativeSrc":"4070:17:53","nodeType":"YulFunctionCall","src":"4070:17:53"},{"arguments":[{"name":"tail","nativeSrc":"4093:4:53","nodeType":"YulIdentifier","src":"4093:4:53"},{"name":"headStart","nativeSrc":"4099:9:53","nodeType":"YulIdentifier","src":"4099:9:53"}],"functionName":{"name":"sub","nativeSrc":"4089:3:53","nodeType":"YulIdentifier","src":"4089:3:53"},"nativeSrc":"4089:20:53","nodeType":"YulFunctionCall","src":"4089:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4063:6:53","nodeType":"YulIdentifier","src":"4063:6:53"},"nativeSrc":"4063:47:53","nodeType":"YulFunctionCall","src":"4063:47:53"},"nativeSrc":"4063:47:53","nodeType":"YulExpressionStatement","src":"4063:47:53"},{"nativeSrc":"4119:84:53","nodeType":"YulAssignment","src":"4119:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"4189:6:53","nodeType":"YulIdentifier","src":"4189:6:53"},{"name":"tail","nativeSrc":"4198:4:53","nodeType":"YulIdentifier","src":"4198:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4127:61:53","nodeType":"YulIdentifier","src":"4127:61:53"},"nativeSrc":"4127:76:53","nodeType":"YulFunctionCall","src":"4127:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4119:4:53","nodeType":"YulIdentifier","src":"4119:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3989:9:53","nodeType":"YulTypedName","src":"3989:9:53","type":""},{"name":"value0","nativeSrc":"4001:6:53","nodeType":"YulTypedName","src":"4001:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4012:4:53","nodeType":"YulTypedName","src":"4012:4:53","type":""}],"src":"3901:309:53"},{"body":{"nativeSrc":"4261:81:53","nodeType":"YulBlock","src":"4261:81:53","statements":[{"nativeSrc":"4271:65:53","nodeType":"YulAssignment","src":"4271:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4286:5:53","nodeType":"YulIdentifier","src":"4286:5:53"},{"kind":"number","nativeSrc":"4293:42:53","nodeType":"YulLiteral","src":"4293:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4282:3:53","nodeType":"YulIdentifier","src":"4282:3:53"},"nativeSrc":"4282:54:53","nodeType":"YulFunctionCall","src":"4282:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4271:7:53","nodeType":"YulIdentifier","src":"4271:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4216:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4243:5:53","nodeType":"YulTypedName","src":"4243:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4253:7:53","nodeType":"YulTypedName","src":"4253:7:53","type":""}],"src":"4216:126:53"},{"body":{"nativeSrc":"4380:28:53","nodeType":"YulBlock","src":"4380:28:53","statements":[{"nativeSrc":"4390:12:53","nodeType":"YulAssignment","src":"4390:12:53","value":{"name":"value","nativeSrc":"4397:5:53","nodeType":"YulIdentifier","src":"4397:5:53"},"variableNames":[{"name":"ret","nativeSrc":"4390:3:53","nodeType":"YulIdentifier","src":"4390:3:53"}]}]},"name":"identity","nativeSrc":"4348:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4366:5:53","nodeType":"YulTypedName","src":"4366:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4376:3:53","nodeType":"YulTypedName","src":"4376:3:53","type":""}],"src":"4348:60:53"},{"body":{"nativeSrc":"4474:82:53","nodeType":"YulBlock","src":"4474:82:53","statements":[{"nativeSrc":"4484:66:53","nodeType":"YulAssignment","src":"4484:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4542:5:53","nodeType":"YulIdentifier","src":"4542:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4524:17:53","nodeType":"YulIdentifier","src":"4524:17:53"},"nativeSrc":"4524:24:53","nodeType":"YulFunctionCall","src":"4524:24:53"}],"functionName":{"name":"identity","nativeSrc":"4515:8:53","nodeType":"YulIdentifier","src":"4515:8:53"},"nativeSrc":"4515:34:53","nodeType":"YulFunctionCall","src":"4515:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4497:17:53","nodeType":"YulIdentifier","src":"4497:17:53"},"nativeSrc":"4497:53:53","nodeType":"YulFunctionCall","src":"4497:53:53"},"variableNames":[{"name":"converted","nativeSrc":"4484:9:53","nodeType":"YulIdentifier","src":"4484:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4414:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4454:5:53","nodeType":"YulTypedName","src":"4454:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4464:9:53","nodeType":"YulTypedName","src":"4464:9:53","type":""}],"src":"4414:142:53"},{"body":{"nativeSrc":"4622:66:53","nodeType":"YulBlock","src":"4622:66:53","statements":[{"nativeSrc":"4632:50:53","nodeType":"YulAssignment","src":"4632:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4676:5:53","nodeType":"YulIdentifier","src":"4676:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4645:30:53","nodeType":"YulIdentifier","src":"4645:30:53"},"nativeSrc":"4645:37:53","nodeType":"YulFunctionCall","src":"4645:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4632:9:53","nodeType":"YulIdentifier","src":"4632:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"4562:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4602:5:53","nodeType":"YulTypedName","src":"4602:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4612:9:53","nodeType":"YulTypedName","src":"4612:9:53","type":""}],"src":"4562:126:53"},{"body":{"nativeSrc":"4779:66:53","nodeType":"YulBlock","src":"4779:66:53","statements":[{"nativeSrc":"4789:50:53","nodeType":"YulAssignment","src":"4789:50:53","value":{"arguments":[{"name":"value","nativeSrc":"4833:5:53","nodeType":"YulIdentifier","src":"4833:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4802:30:53","nodeType":"YulIdentifier","src":"4802:30:53"},"nativeSrc":"4802:37:53","nodeType":"YulFunctionCall","src":"4802:37:53"},"variableNames":[{"name":"converted","nativeSrc":"4789:9:53","nodeType":"YulIdentifier","src":"4789:9:53"}]}]},"name":"convert_t_contract$_SimpleAllowList_$13307_to_t_address","nativeSrc":"4694:151:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4759:5:53","nodeType":"YulTypedName","src":"4759:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4769:9:53","nodeType":"YulTypedName","src":"4769:9:53","type":""}],"src":"4694:151:53"},{"body":{"nativeSrc":"4941:91:53","nodeType":"YulBlock","src":"4941:91:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4958:3:53","nodeType":"YulIdentifier","src":"4958:3:53"},{"arguments":[{"name":"value","nativeSrc":"5019:5:53","nodeType":"YulIdentifier","src":"5019:5:53"}],"functionName":{"name":"convert_t_contract$_SimpleAllowList_$13307_to_t_address","nativeSrc":"4963:55:53","nodeType":"YulIdentifier","src":"4963:55:53"},"nativeSrc":"4963:62:53","nodeType":"YulFunctionCall","src":"4963:62:53"}],"functionName":{"name":"mstore","nativeSrc":"4951:6:53","nodeType":"YulIdentifier","src":"4951:6:53"},"nativeSrc":"4951:75:53","nodeType":"YulFunctionCall","src":"4951:75:53"},"nativeSrc":"4951:75:53","nodeType":"YulExpressionStatement","src":"4951:75:53"}]},"name":"abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack","nativeSrc":"4851:181:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4929:5:53","nodeType":"YulTypedName","src":"4929:5:53","type":""},{"name":"pos","nativeSrc":"4936:3:53","nodeType":"YulTypedName","src":"4936:3:53","type":""}],"src":"4851:181:53"},{"body":{"nativeSrc":"5161:149:53","nodeType":"YulBlock","src":"5161:149:53","statements":[{"nativeSrc":"5171:26:53","nodeType":"YulAssignment","src":"5171:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5183:9:53","nodeType":"YulIdentifier","src":"5183:9:53"},{"kind":"number","nativeSrc":"5194:2:53","nodeType":"YulLiteral","src":"5194:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5179:3:53","nodeType":"YulIdentifier","src":"5179:3:53"},"nativeSrc":"5179:18:53","nodeType":"YulFunctionCall","src":"5179:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5171:4:53","nodeType":"YulIdentifier","src":"5171:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5276:6:53","nodeType":"YulIdentifier","src":"5276:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5289:9:53","nodeType":"YulIdentifier","src":"5289:9:53"},{"kind":"number","nativeSrc":"5300:1:53","nodeType":"YulLiteral","src":"5300:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5285:3:53","nodeType":"YulIdentifier","src":"5285:3:53"},"nativeSrc":"5285:17:53","nodeType":"YulFunctionCall","src":"5285:17:53"}],"functionName":{"name":"abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack","nativeSrc":"5207:68:53","nodeType":"YulIdentifier","src":"5207:68:53"},"nativeSrc":"5207:96:53","nodeType":"YulFunctionCall","src":"5207:96:53"},"nativeSrc":"5207:96:53","nodeType":"YulExpressionStatement","src":"5207:96:53"}]},"name":"abi_encode_tuple_t_contract$_SimpleAllowList_$13307__to_t_address__fromStack_reversed","nativeSrc":"5038:272:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5133:9:53","nodeType":"YulTypedName","src":"5133:9:53","type":""},{"name":"value0","nativeSrc":"5145:6:53","nodeType":"YulTypedName","src":"5145:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5156:4:53","nodeType":"YulTypedName","src":"5156:4:53","type":""}],"src":"5038:272:53"},{"body":{"nativeSrc":"5361:51:53","nodeType":"YulBlock","src":"5361:51:53","statements":[{"nativeSrc":"5371:35:53","nodeType":"YulAssignment","src":"5371:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5400:5:53","nodeType":"YulIdentifier","src":"5400:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5382:17:53","nodeType":"YulIdentifier","src":"5382:17:53"},"nativeSrc":"5382:24:53","nodeType":"YulFunctionCall","src":"5382:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5371:7:53","nodeType":"YulIdentifier","src":"5371:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5316:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5343:5:53","nodeType":"YulTypedName","src":"5343:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5353:7:53","nodeType":"YulTypedName","src":"5353:7:53","type":""}],"src":"5316:96:53"},{"body":{"nativeSrc":"5483:53:53","nodeType":"YulBlock","src":"5483:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5500:3:53","nodeType":"YulIdentifier","src":"5500:3:53"},{"arguments":[{"name":"value","nativeSrc":"5523:5:53","nodeType":"YulIdentifier","src":"5523:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5505:17:53","nodeType":"YulIdentifier","src":"5505:17:53"},"nativeSrc":"5505:24:53","nodeType":"YulFunctionCall","src":"5505:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5493:6:53","nodeType":"YulIdentifier","src":"5493:6:53"},"nativeSrc":"5493:37:53","nodeType":"YulFunctionCall","src":"5493:37:53"},"nativeSrc":"5493:37:53","nodeType":"YulExpressionStatement","src":"5493:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5418:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5471:5:53","nodeType":"YulTypedName","src":"5471:5:53","type":""},{"name":"pos","nativeSrc":"5478:3:53","nodeType":"YulTypedName","src":"5478:3:53","type":""}],"src":"5418:118:53"},{"body":{"nativeSrc":"5640:124:53","nodeType":"YulBlock","src":"5640:124:53","statements":[{"nativeSrc":"5650:26:53","nodeType":"YulAssignment","src":"5650:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5662:9:53","nodeType":"YulIdentifier","src":"5662:9:53"},{"kind":"number","nativeSrc":"5673:2:53","nodeType":"YulLiteral","src":"5673:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5658:3:53","nodeType":"YulIdentifier","src":"5658:3:53"},"nativeSrc":"5658:18:53","nodeType":"YulFunctionCall","src":"5658:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5650:4:53","nodeType":"YulIdentifier","src":"5650:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5730:6:53","nodeType":"YulIdentifier","src":"5730:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5743:9:53","nodeType":"YulIdentifier","src":"5743:9:53"},{"kind":"number","nativeSrc":"5754:1:53","nodeType":"YulLiteral","src":"5754:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5739:3:53","nodeType":"YulIdentifier","src":"5739:3:53"},"nativeSrc":"5739:17:53","nodeType":"YulFunctionCall","src":"5739:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5686:43:53","nodeType":"YulIdentifier","src":"5686:43:53"},"nativeSrc":"5686:71:53","nodeType":"YulFunctionCall","src":"5686:71:53"},"nativeSrc":"5686:71:53","nodeType":"YulExpressionStatement","src":"5686:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5542:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5612:9:53","nodeType":"YulTypedName","src":"5612:9:53","type":""},{"name":"value0","nativeSrc":"5624:6:53","nodeType":"YulTypedName","src":"5624:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5635:4:53","nodeType":"YulTypedName","src":"5635:4:53","type":""}],"src":"5542:222:53"},{"body":{"nativeSrc":"5815:32:53","nodeType":"YulBlock","src":"5815:32:53","statements":[{"nativeSrc":"5825:16:53","nodeType":"YulAssignment","src":"5825:16:53","value":{"name":"value","nativeSrc":"5836:5:53","nodeType":"YulIdentifier","src":"5836:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5825:7:53","nodeType":"YulIdentifier","src":"5825:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5770:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5797:5:53","nodeType":"YulTypedName","src":"5797:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5807:7:53","nodeType":"YulTypedName","src":"5807:7:53","type":""}],"src":"5770:77:53"},{"body":{"nativeSrc":"5918:53:53","nodeType":"YulBlock","src":"5918:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5935:3:53","nodeType":"YulIdentifier","src":"5935:3:53"},{"arguments":[{"name":"value","nativeSrc":"5958:5:53","nodeType":"YulIdentifier","src":"5958:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5940:17:53","nodeType":"YulIdentifier","src":"5940:17:53"},"nativeSrc":"5940:24:53","nodeType":"YulFunctionCall","src":"5940:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5928:6:53","nodeType":"YulIdentifier","src":"5928:6:53"},"nativeSrc":"5928:37:53","nodeType":"YulFunctionCall","src":"5928:37:53"},"nativeSrc":"5928:37:53","nodeType":"YulExpressionStatement","src":"5928:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5853:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5906:5:53","nodeType":"YulTypedName","src":"5906:5:53","type":""},{"name":"pos","nativeSrc":"5913:3:53","nodeType":"YulTypedName","src":"5913:3:53","type":""}],"src":"5853:118:53"},{"body":{"nativeSrc":"6075:124:53","nodeType":"YulBlock","src":"6075:124:53","statements":[{"nativeSrc":"6085:26:53","nodeType":"YulAssignment","src":"6085:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6097:9:53","nodeType":"YulIdentifier","src":"6097:9:53"},{"kind":"number","nativeSrc":"6108:2:53","nodeType":"YulLiteral","src":"6108:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6093:3:53","nodeType":"YulIdentifier","src":"6093:3:53"},"nativeSrc":"6093:18:53","nodeType":"YulFunctionCall","src":"6093:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6085:4:53","nodeType":"YulIdentifier","src":"6085:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6165:6:53","nodeType":"YulIdentifier","src":"6165:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6178:9:53","nodeType":"YulIdentifier","src":"6178:9:53"},{"kind":"number","nativeSrc":"6189:1:53","nodeType":"YulLiteral","src":"6189:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6174:3:53","nodeType":"YulIdentifier","src":"6174:3:53"},"nativeSrc":"6174:17:53","nodeType":"YulFunctionCall","src":"6174:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6121:43:53","nodeType":"YulIdentifier","src":"6121:43:53"},"nativeSrc":"6121:71:53","nodeType":"YulFunctionCall","src":"6121:71:53"},"nativeSrc":"6121:71:53","nodeType":"YulExpressionStatement","src":"6121:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5977:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6047:9:53","nodeType":"YulTypedName","src":"6047:9:53","type":""},{"name":"value0","nativeSrc":"6059:6:53","nodeType":"YulTypedName","src":"6059:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6070:4:53","nodeType":"YulTypedName","src":"6070:4:53","type":""}],"src":"5977:222:53"},{"body":{"nativeSrc":"6248:79:53","nodeType":"YulBlock","src":"6248:79:53","statements":[{"body":{"nativeSrc":"6305:16:53","nodeType":"YulBlock","src":"6305:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6314:1:53","nodeType":"YulLiteral","src":"6314:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6317:1:53","nodeType":"YulLiteral","src":"6317:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6307:6:53","nodeType":"YulIdentifier","src":"6307:6:53"},"nativeSrc":"6307:12:53","nodeType":"YulFunctionCall","src":"6307:12:53"},"nativeSrc":"6307:12:53","nodeType":"YulExpressionStatement","src":"6307:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6271:5:53","nodeType":"YulIdentifier","src":"6271:5:53"},{"arguments":[{"name":"value","nativeSrc":"6296:5:53","nodeType":"YulIdentifier","src":"6296:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6278:17:53","nodeType":"YulIdentifier","src":"6278:17:53"},"nativeSrc":"6278:24:53","nodeType":"YulFunctionCall","src":"6278:24:53"}],"functionName":{"name":"eq","nativeSrc":"6268:2:53","nodeType":"YulIdentifier","src":"6268:2:53"},"nativeSrc":"6268:35:53","nodeType":"YulFunctionCall","src":"6268:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6261:6:53","nodeType":"YulIdentifier","src":"6261:6:53"},"nativeSrc":"6261:43:53","nodeType":"YulFunctionCall","src":"6261:43:53"},"nativeSrc":"6258:63:53","nodeType":"YulIf","src":"6258:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"6205:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6241:5:53","nodeType":"YulTypedName","src":"6241:5:53","type":""}],"src":"6205:122:53"},{"body":{"nativeSrc":"6385:87:53","nodeType":"YulBlock","src":"6385:87:53","statements":[{"nativeSrc":"6395:29:53","nodeType":"YulAssignment","src":"6395:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6417:6:53","nodeType":"YulIdentifier","src":"6417:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6404:12:53","nodeType":"YulIdentifier","src":"6404:12:53"},"nativeSrc":"6404:20:53","nodeType":"YulFunctionCall","src":"6404:20:53"},"variableNames":[{"name":"value","nativeSrc":"6395:5:53","nodeType":"YulIdentifier","src":"6395:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6460:5:53","nodeType":"YulIdentifier","src":"6460:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6433:26:53","nodeType":"YulIdentifier","src":"6433:26:53"},"nativeSrc":"6433:33:53","nodeType":"YulFunctionCall","src":"6433:33:53"},"nativeSrc":"6433:33:53","nodeType":"YulExpressionStatement","src":"6433:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"6333:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6363:6:53","nodeType":"YulTypedName","src":"6363:6:53","type":""},{"name":"end","nativeSrc":"6371:3:53","nodeType":"YulTypedName","src":"6371:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6379:5:53","nodeType":"YulTypedName","src":"6379:5:53","type":""}],"src":"6333:139:53"},{"body":{"nativeSrc":"6544:263:53","nodeType":"YulBlock","src":"6544:263:53","statements":[{"body":{"nativeSrc":"6590:83:53","nodeType":"YulBlock","src":"6590:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6592:77:53","nodeType":"YulIdentifier","src":"6592:77:53"},"nativeSrc":"6592:79:53","nodeType":"YulFunctionCall","src":"6592:79:53"},"nativeSrc":"6592:79:53","nodeType":"YulExpressionStatement","src":"6592:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6565:7:53","nodeType":"YulIdentifier","src":"6565:7:53"},{"name":"headStart","nativeSrc":"6574:9:53","nodeType":"YulIdentifier","src":"6574:9:53"}],"functionName":{"name":"sub","nativeSrc":"6561:3:53","nodeType":"YulIdentifier","src":"6561:3:53"},"nativeSrc":"6561:23:53","nodeType":"YulFunctionCall","src":"6561:23:53"},{"kind":"number","nativeSrc":"6586:2:53","nodeType":"YulLiteral","src":"6586:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6557:3:53","nodeType":"YulIdentifier","src":"6557:3:53"},"nativeSrc":"6557:32:53","nodeType":"YulFunctionCall","src":"6557:32:53"},"nativeSrc":"6554:119:53","nodeType":"YulIf","src":"6554:119:53"},{"nativeSrc":"6683:117:53","nodeType":"YulBlock","src":"6683:117:53","statements":[{"nativeSrc":"6698:15:53","nodeType":"YulVariableDeclaration","src":"6698:15:53","value":{"kind":"number","nativeSrc":"6712:1:53","nodeType":"YulLiteral","src":"6712:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6702:6:53","nodeType":"YulTypedName","src":"6702:6:53","type":""}]},{"nativeSrc":"6727:63:53","nodeType":"YulAssignment","src":"6727:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6762:9:53","nodeType":"YulIdentifier","src":"6762:9:53"},{"name":"offset","nativeSrc":"6773:6:53","nodeType":"YulIdentifier","src":"6773:6:53"}],"functionName":{"name":"add","nativeSrc":"6758:3:53","nodeType":"YulIdentifier","src":"6758:3:53"},"nativeSrc":"6758:22:53","nodeType":"YulFunctionCall","src":"6758:22:53"},{"name":"dataEnd","nativeSrc":"6782:7:53","nodeType":"YulIdentifier","src":"6782:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6737:20:53","nodeType":"YulIdentifier","src":"6737:20:53"},"nativeSrc":"6737:53:53","nodeType":"YulFunctionCall","src":"6737:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6727:6:53","nodeType":"YulIdentifier","src":"6727:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6478:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6514:9:53","nodeType":"YulTypedName","src":"6514:9:53","type":""},{"name":"dataEnd","nativeSrc":"6525:7:53","nodeType":"YulTypedName","src":"6525:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6537:6:53","nodeType":"YulTypedName","src":"6537:6:53","type":""}],"src":"6478:329:53"},{"body":{"nativeSrc":"6902:28:53","nodeType":"YulBlock","src":"6902:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6919:1:53","nodeType":"YulLiteral","src":"6919:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6922:1:53","nodeType":"YulLiteral","src":"6922:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6912:6:53","nodeType":"YulIdentifier","src":"6912:6:53"},"nativeSrc":"6912:12:53","nodeType":"YulFunctionCall","src":"6912:12:53"},"nativeSrc":"6912:12:53","nodeType":"YulExpressionStatement","src":"6912:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"6813:117:53","nodeType":"YulFunctionDefinition","src":"6813:117:53"},{"body":{"nativeSrc":"6964:152:53","nodeType":"YulBlock","src":"6964:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6981:1:53","nodeType":"YulLiteral","src":"6981:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6984:77:53","nodeType":"YulLiteral","src":"6984:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6974:6:53","nodeType":"YulIdentifier","src":"6974:6:53"},"nativeSrc":"6974:88:53","nodeType":"YulFunctionCall","src":"6974:88:53"},"nativeSrc":"6974:88:53","nodeType":"YulExpressionStatement","src":"6974:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7078:1:53","nodeType":"YulLiteral","src":"7078:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7081:4:53","nodeType":"YulLiteral","src":"7081:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7071:6:53","nodeType":"YulIdentifier","src":"7071:6:53"},"nativeSrc":"7071:15:53","nodeType":"YulFunctionCall","src":"7071:15:53"},"nativeSrc":"7071:15:53","nodeType":"YulExpressionStatement","src":"7071:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7102:1:53","nodeType":"YulLiteral","src":"7102:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7105:4:53","nodeType":"YulLiteral","src":"7105:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7095:6:53","nodeType":"YulIdentifier","src":"7095:6:53"},"nativeSrc":"7095:15:53","nodeType":"YulFunctionCall","src":"7095:15:53"},"nativeSrc":"7095:15:53","nodeType":"YulExpressionStatement","src":"7095:15:53"}]},"name":"panic_error_0x41","nativeSrc":"6936:180:53","nodeType":"YulFunctionDefinition","src":"6936:180:53"},{"body":{"nativeSrc":"7165:238:53","nodeType":"YulBlock","src":"7165:238:53","statements":[{"nativeSrc":"7175:58:53","nodeType":"YulVariableDeclaration","src":"7175:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"7197:6:53","nodeType":"YulIdentifier","src":"7197:6:53"},{"arguments":[{"name":"size","nativeSrc":"7227:4:53","nodeType":"YulIdentifier","src":"7227:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7205:21:53","nodeType":"YulIdentifier","src":"7205:21:53"},"nativeSrc":"7205:27:53","nodeType":"YulFunctionCall","src":"7205:27:53"}],"functionName":{"name":"add","nativeSrc":"7193:3:53","nodeType":"YulIdentifier","src":"7193:3:53"},"nativeSrc":"7193:40:53","nodeType":"YulFunctionCall","src":"7193:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"7179:10:53","nodeType":"YulTypedName","src":"7179:10:53","type":""}]},{"body":{"nativeSrc":"7344:22:53","nodeType":"YulBlock","src":"7344:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7346:16:53","nodeType":"YulIdentifier","src":"7346:16:53"},"nativeSrc":"7346:18:53","nodeType":"YulFunctionCall","src":"7346:18:53"},"nativeSrc":"7346:18:53","nodeType":"YulExpressionStatement","src":"7346:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"7287:10:53","nodeType":"YulIdentifier","src":"7287:10:53"},{"kind":"number","nativeSrc":"7299:18:53","nodeType":"YulLiteral","src":"7299:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7284:2:53","nodeType":"YulIdentifier","src":"7284:2:53"},"nativeSrc":"7284:34:53","nodeType":"YulFunctionCall","src":"7284:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"7323:10:53","nodeType":"YulIdentifier","src":"7323:10:53"},{"name":"memPtr","nativeSrc":"7335:6:53","nodeType":"YulIdentifier","src":"7335:6:53"}],"functionName":{"name":"lt","nativeSrc":"7320:2:53","nodeType":"YulIdentifier","src":"7320:2:53"},"nativeSrc":"7320:22:53","nodeType":"YulFunctionCall","src":"7320:22:53"}],"functionName":{"name":"or","nativeSrc":"7281:2:53","nodeType":"YulIdentifier","src":"7281:2:53"},"nativeSrc":"7281:62:53","nodeType":"YulFunctionCall","src":"7281:62:53"},"nativeSrc":"7278:88:53","nodeType":"YulIf","src":"7278:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7382:2:53","nodeType":"YulLiteral","src":"7382:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"7386:10:53","nodeType":"YulIdentifier","src":"7386:10:53"}],"functionName":{"name":"mstore","nativeSrc":"7375:6:53","nodeType":"YulIdentifier","src":"7375:6:53"},"nativeSrc":"7375:22:53","nodeType":"YulFunctionCall","src":"7375:22:53"},"nativeSrc":"7375:22:53","nodeType":"YulExpressionStatement","src":"7375:22:53"}]},"name":"finalize_allocation","nativeSrc":"7122:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7151:6:53","nodeType":"YulTypedName","src":"7151:6:53","type":""},{"name":"size","nativeSrc":"7159:4:53","nodeType":"YulTypedName","src":"7159:4:53","type":""}],"src":"7122:281:53"},{"body":{"nativeSrc":"7450:88:53","nodeType":"YulBlock","src":"7450:88:53","statements":[{"nativeSrc":"7460:30:53","nodeType":"YulAssignment","src":"7460:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"7470:18:53","nodeType":"YulIdentifier","src":"7470:18:53"},"nativeSrc":"7470:20:53","nodeType":"YulFunctionCall","src":"7470:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"7460:6:53","nodeType":"YulIdentifier","src":"7460:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"7519:6:53","nodeType":"YulIdentifier","src":"7519:6:53"},{"name":"size","nativeSrc":"7527:4:53","nodeType":"YulIdentifier","src":"7527:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"7499:19:53","nodeType":"YulIdentifier","src":"7499:19:53"},"nativeSrc":"7499:33:53","nodeType":"YulFunctionCall","src":"7499:33:53"},"nativeSrc":"7499:33:53","nodeType":"YulExpressionStatement","src":"7499:33:53"}]},"name":"allocate_memory","nativeSrc":"7409:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"7434:4:53","nodeType":"YulTypedName","src":"7434:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"7443:6:53","nodeType":"YulTypedName","src":"7443:6:53","type":""}],"src":"7409:129:53"},{"body":{"nativeSrc":"7633:28:53","nodeType":"YulBlock","src":"7633:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7650:1:53","nodeType":"YulLiteral","src":"7650:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7653:1:53","nodeType":"YulLiteral","src":"7653:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7643:6:53","nodeType":"YulIdentifier","src":"7643:6:53"},"nativeSrc":"7643:12:53","nodeType":"YulFunctionCall","src":"7643:12:53"},"nativeSrc":"7643:12:53","nodeType":"YulExpressionStatement","src":"7643:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"7544:117:53","nodeType":"YulFunctionDefinition","src":"7544:117:53"},{"body":{"nativeSrc":"7737:51:53","nodeType":"YulBlock","src":"7737:51:53","statements":[{"nativeSrc":"7747:35:53","nodeType":"YulAssignment","src":"7747:35:53","value":{"arguments":[{"name":"value","nativeSrc":"7776:5:53","nodeType":"YulIdentifier","src":"7776:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7758:17:53","nodeType":"YulIdentifier","src":"7758:17:53"},"nativeSrc":"7758:24:53","nodeType":"YulFunctionCall","src":"7758:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"7747:7:53","nodeType":"YulIdentifier","src":"7747:7:53"}]}]},"name":"cleanup_t_contract$_SimpleAllowList_$13307","nativeSrc":"7667:121:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7719:5:53","nodeType":"YulTypedName","src":"7719:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7729:7:53","nodeType":"YulTypedName","src":"7729:7:53","type":""}],"src":"7667:121:53"},{"body":{"nativeSrc":"7862:104:53","nodeType":"YulBlock","src":"7862:104:53","statements":[{"body":{"nativeSrc":"7944:16:53","nodeType":"YulBlock","src":"7944:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7953:1:53","nodeType":"YulLiteral","src":"7953:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7956:1:53","nodeType":"YulLiteral","src":"7956:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7946:6:53","nodeType":"YulIdentifier","src":"7946:6:53"},"nativeSrc":"7946:12:53","nodeType":"YulFunctionCall","src":"7946:12:53"},"nativeSrc":"7946:12:53","nodeType":"YulExpressionStatement","src":"7946:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7885:5:53","nodeType":"YulIdentifier","src":"7885:5:53"},{"arguments":[{"name":"value","nativeSrc":"7935:5:53","nodeType":"YulIdentifier","src":"7935:5:53"}],"functionName":{"name":"cleanup_t_contract$_SimpleAllowList_$13307","nativeSrc":"7892:42:53","nodeType":"YulIdentifier","src":"7892:42:53"},"nativeSrc":"7892:49:53","nodeType":"YulFunctionCall","src":"7892:49:53"}],"functionName":{"name":"eq","nativeSrc":"7882:2:53","nodeType":"YulIdentifier","src":"7882:2:53"},"nativeSrc":"7882:60:53","nodeType":"YulFunctionCall","src":"7882:60:53"}],"functionName":{"name":"iszero","nativeSrc":"7875:6:53","nodeType":"YulIdentifier","src":"7875:6:53"},"nativeSrc":"7875:68:53","nodeType":"YulFunctionCall","src":"7875:68:53"},"nativeSrc":"7872:88:53","nodeType":"YulIf","src":"7872:88:53"}]},"name":"validator_revert_t_contract$_SimpleAllowList_$13307","nativeSrc":"7794:172:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7855:5:53","nodeType":"YulTypedName","src":"7855:5:53","type":""}],"src":"7794:172:53"},{"body":{"nativeSrc":"8049:112:53","nodeType":"YulBlock","src":"8049:112:53","statements":[{"nativeSrc":"8059:29:53","nodeType":"YulAssignment","src":"8059:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8081:6:53","nodeType":"YulIdentifier","src":"8081:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8068:12:53","nodeType":"YulIdentifier","src":"8068:12:53"},"nativeSrc":"8068:20:53","nodeType":"YulFunctionCall","src":"8068:20:53"},"variableNames":[{"name":"value","nativeSrc":"8059:5:53","nodeType":"YulIdentifier","src":"8059:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8149:5:53","nodeType":"YulIdentifier","src":"8149:5:53"}],"functionName":{"name":"validator_revert_t_contract$_SimpleAllowList_$13307","nativeSrc":"8097:51:53","nodeType":"YulIdentifier","src":"8097:51:53"},"nativeSrc":"8097:58:53","nodeType":"YulFunctionCall","src":"8097:58:53"},"nativeSrc":"8097:58:53","nodeType":"YulExpressionStatement","src":"8097:58:53"}]},"name":"abi_decode_t_contract$_SimpleAllowList_$13307","nativeSrc":"7972:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8027:6:53","nodeType":"YulTypedName","src":"8027:6:53","type":""},{"name":"end","nativeSrc":"8035:3:53","nodeType":"YulTypedName","src":"8035:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8043:5:53","nodeType":"YulTypedName","src":"8043:5:53","type":""}],"src":"7972:189:53"},{"body":{"nativeSrc":"8210:79:53","nodeType":"YulBlock","src":"8210:79:53","statements":[{"body":{"nativeSrc":"8267:16:53","nodeType":"YulBlock","src":"8267:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8276:1:53","nodeType":"YulLiteral","src":"8276:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8279:1:53","nodeType":"YulLiteral","src":"8279:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8269:6:53","nodeType":"YulIdentifier","src":"8269:6:53"},"nativeSrc":"8269:12:53","nodeType":"YulFunctionCall","src":"8269:12:53"},"nativeSrc":"8269:12:53","nodeType":"YulExpressionStatement","src":"8269:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8233:5:53","nodeType":"YulIdentifier","src":"8233:5:53"},{"arguments":[{"name":"value","nativeSrc":"8258:5:53","nodeType":"YulIdentifier","src":"8258:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8240:17:53","nodeType":"YulIdentifier","src":"8240:17:53"},"nativeSrc":"8240:24:53","nodeType":"YulFunctionCall","src":"8240:24:53"}],"functionName":{"name":"eq","nativeSrc":"8230:2:53","nodeType":"YulIdentifier","src":"8230:2:53"},"nativeSrc":"8230:35:53","nodeType":"YulFunctionCall","src":"8230:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8223:6:53","nodeType":"YulIdentifier","src":"8223:6:53"},"nativeSrc":"8223:43:53","nodeType":"YulFunctionCall","src":"8223:43:53"},"nativeSrc":"8220:63:53","nodeType":"YulIf","src":"8220:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"8167:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8203:5:53","nodeType":"YulTypedName","src":"8203:5:53","type":""}],"src":"8167:122:53"},{"body":{"nativeSrc":"8347:87:53","nodeType":"YulBlock","src":"8347:87:53","statements":[{"nativeSrc":"8357:29:53","nodeType":"YulAssignment","src":"8357:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8379:6:53","nodeType":"YulIdentifier","src":"8379:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8366:12:53","nodeType":"YulIdentifier","src":"8366:12:53"},"nativeSrc":"8366:20:53","nodeType":"YulFunctionCall","src":"8366:20:53"},"variableNames":[{"name":"value","nativeSrc":"8357:5:53","nodeType":"YulIdentifier","src":"8357:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8422:5:53","nodeType":"YulIdentifier","src":"8422:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8395:26:53","nodeType":"YulIdentifier","src":"8395:26:53"},"nativeSrc":"8395:33:53","nodeType":"YulFunctionCall","src":"8395:33:53"},"nativeSrc":"8395:33:53","nodeType":"YulExpressionStatement","src":"8395:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"8295:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8325:6:53","nodeType":"YulTypedName","src":"8325:6:53","type":""},{"name":"end","nativeSrc":"8333:3:53","nodeType":"YulTypedName","src":"8333:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8341:5:53","nodeType":"YulTypedName","src":"8341:5:53","type":""}],"src":"8295:139:53"},{"body":{"nativeSrc":"8570:525:53","nodeType":"YulBlock","src":"8570:525:53","statements":[{"body":{"nativeSrc":"8614:83:53","nodeType":"YulBlock","src":"8614:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8616:77:53","nodeType":"YulIdentifier","src":"8616:77:53"},"nativeSrc":"8616:79:53","nodeType":"YulFunctionCall","src":"8616:79:53"},"nativeSrc":"8616:79:53","nodeType":"YulExpressionStatement","src":"8616:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"8591:3:53","nodeType":"YulIdentifier","src":"8591:3:53"},{"name":"headStart","nativeSrc":"8596:9:53","nodeType":"YulIdentifier","src":"8596:9:53"}],"functionName":{"name":"sub","nativeSrc":"8587:3:53","nodeType":"YulIdentifier","src":"8587:3:53"},"nativeSrc":"8587:19:53","nodeType":"YulFunctionCall","src":"8587:19:53"},{"kind":"number","nativeSrc":"8608:4:53","nodeType":"YulLiteral","src":"8608:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"8583:3:53","nodeType":"YulIdentifier","src":"8583:3:53"},"nativeSrc":"8583:30:53","nodeType":"YulFunctionCall","src":"8583:30:53"},"nativeSrc":"8580:117:53","nodeType":"YulIf","src":"8580:117:53"},{"nativeSrc":"8706:30:53","nodeType":"YulAssignment","src":"8706:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"8731:4:53","nodeType":"YulLiteral","src":"8731:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"8715:15:53","nodeType":"YulIdentifier","src":"8715:15:53"},"nativeSrc":"8715:21:53","nodeType":"YulFunctionCall","src":"8715:21:53"},"variableNames":[{"name":"value","nativeSrc":"8706:5:53","nodeType":"YulIdentifier","src":"8706:5:53"}]},{"nativeSrc":"8746:180:53","nodeType":"YulBlock","src":"8746:180:53","statements":[{"nativeSrc":"8786:15:53","nodeType":"YulVariableDeclaration","src":"8786:15:53","value":{"kind":"number","nativeSrc":"8800:1:53","nodeType":"YulLiteral","src":"8800:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8790:6:53","nodeType":"YulTypedName","src":"8790:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8826:5:53","nodeType":"YulIdentifier","src":"8826:5:53"},{"kind":"number","nativeSrc":"8833:4:53","nodeType":"YulLiteral","src":"8833:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"8822:3:53","nodeType":"YulIdentifier","src":"8822:3:53"},"nativeSrc":"8822:16:53","nodeType":"YulFunctionCall","src":"8822:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8890:9:53","nodeType":"YulIdentifier","src":"8890:9:53"},{"name":"offset","nativeSrc":"8901:6:53","nodeType":"YulIdentifier","src":"8901:6:53"}],"functionName":{"name":"add","nativeSrc":"8886:3:53","nodeType":"YulIdentifier","src":"8886:3:53"},"nativeSrc":"8886:22:53","nodeType":"YulFunctionCall","src":"8886:22:53"},{"name":"end","nativeSrc":"8910:3:53","nodeType":"YulIdentifier","src":"8910:3:53"}],"functionName":{"name":"abi_decode_t_contract$_SimpleAllowList_$13307","nativeSrc":"8840:45:53","nodeType":"YulIdentifier","src":"8840:45:53"},"nativeSrc":"8840:74:53","nodeType":"YulFunctionCall","src":"8840:74:53"}],"functionName":{"name":"mstore","nativeSrc":"8815:6:53","nodeType":"YulIdentifier","src":"8815:6:53"},"nativeSrc":"8815:100:53","nodeType":"YulFunctionCall","src":"8815:100:53"},"nativeSrc":"8815:100:53","nodeType":"YulExpressionStatement","src":"8815:100:53"}]},{"nativeSrc":"8936:152:53","nodeType":"YulBlock","src":"8936:152:53","statements":[{"nativeSrc":"8972:16:53","nodeType":"YulVariableDeclaration","src":"8972:16:53","value":{"kind":"number","nativeSrc":"8986:2:53","nodeType":"YulLiteral","src":"8986:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8976:6:53","nodeType":"YulTypedName","src":"8976:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9013:5:53","nodeType":"YulIdentifier","src":"9013:5:53"},{"kind":"number","nativeSrc":"9020:4:53","nodeType":"YulLiteral","src":"9020:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9009:3:53","nodeType":"YulIdentifier","src":"9009:3:53"},"nativeSrc":"9009:16:53","nodeType":"YulFunctionCall","src":"9009:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9052:9:53","nodeType":"YulIdentifier","src":"9052:9:53"},{"name":"offset","nativeSrc":"9063:6:53","nodeType":"YulIdentifier","src":"9063:6:53"}],"functionName":{"name":"add","nativeSrc":"9048:3:53","nodeType":"YulIdentifier","src":"9048:3:53"},"nativeSrc":"9048:22:53","nodeType":"YulFunctionCall","src":"9048:22:53"},{"name":"end","nativeSrc":"9072:3:53","nodeType":"YulIdentifier","src":"9072:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9027:20:53","nodeType":"YulIdentifier","src":"9027:20:53"},"nativeSrc":"9027:49:53","nodeType":"YulFunctionCall","src":"9027:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9002:6:53","nodeType":"YulIdentifier","src":"9002:6:53"},"nativeSrc":"9002:75:53","nodeType":"YulFunctionCall","src":"9002:75:53"},"nativeSrc":"9002:75:53","nodeType":"YulExpressionStatement","src":"9002:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$15428_memory_ptr","nativeSrc":"8485:610:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8545:9:53","nodeType":"YulTypedName","src":"8545:9:53","type":""},{"name":"end","nativeSrc":"8556:3:53","nodeType":"YulTypedName","src":"8556:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8564:5:53","nodeType":"YulTypedName","src":"8564:5:53","type":""}],"src":"8485:610:53"},{"body":{"nativeSrc":"9197:293:53","nodeType":"YulBlock","src":"9197:293:53","statements":[{"body":{"nativeSrc":"9243:83:53","nodeType":"YulBlock","src":"9243:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9245:77:53","nodeType":"YulIdentifier","src":"9245:77:53"},"nativeSrc":"9245:79:53","nodeType":"YulFunctionCall","src":"9245:79:53"},"nativeSrc":"9245:79:53","nodeType":"YulExpressionStatement","src":"9245:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9218:7:53","nodeType":"YulIdentifier","src":"9218:7:53"},{"name":"headStart","nativeSrc":"9227:9:53","nodeType":"YulIdentifier","src":"9227:9:53"}],"functionName":{"name":"sub","nativeSrc":"9214:3:53","nodeType":"YulIdentifier","src":"9214:3:53"},"nativeSrc":"9214:23:53","nodeType":"YulFunctionCall","src":"9214:23:53"},{"kind":"number","nativeSrc":"9239:2:53","nodeType":"YulLiteral","src":"9239:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9210:3:53","nodeType":"YulIdentifier","src":"9210:3:53"},"nativeSrc":"9210:32:53","nodeType":"YulFunctionCall","src":"9210:32:53"},"nativeSrc":"9207:119:53","nodeType":"YulIf","src":"9207:119:53"},{"nativeSrc":"9336:147:53","nodeType":"YulBlock","src":"9336:147:53","statements":[{"nativeSrc":"9351:15:53","nodeType":"YulVariableDeclaration","src":"9351:15:53","value":{"kind":"number","nativeSrc":"9365:1:53","nodeType":"YulLiteral","src":"9365:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9355:6:53","nodeType":"YulTypedName","src":"9355:6:53","type":""}]},{"nativeSrc":"9380:93:53","nodeType":"YulAssignment","src":"9380:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9445:9:53","nodeType":"YulIdentifier","src":"9445:9:53"},{"name":"offset","nativeSrc":"9456:6:53","nodeType":"YulIdentifier","src":"9456:6:53"}],"functionName":{"name":"add","nativeSrc":"9441:3:53","nodeType":"YulIdentifier","src":"9441:3:53"},"nativeSrc":"9441:22:53","nodeType":"YulFunctionCall","src":"9441:22:53"},{"name":"dataEnd","nativeSrc":"9465:7:53","nodeType":"YulIdentifier","src":"9465:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$15428_memory_ptr","nativeSrc":"9390:50:53","nodeType":"YulIdentifier","src":"9390:50:53"},"nativeSrc":"9390:83:53","nodeType":"YulFunctionCall","src":"9390:83:53"},"variableNames":[{"name":"value0","nativeSrc":"9380:6:53","nodeType":"YulIdentifier","src":"9380:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$15428_memory_ptr","nativeSrc":"9101:389:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9167:9:53","nodeType":"YulTypedName","src":"9167:9:53","type":""},{"name":"dataEnd","nativeSrc":"9178:7:53","nodeType":"YulTypedName","src":"9178:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9190:6:53","nodeType":"YulTypedName","src":"9190:6:53","type":""}],"src":"9101:389:53"},{"body":{"nativeSrc":"9585:28:53","nodeType":"YulBlock","src":"9585:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9602:1:53","nodeType":"YulLiteral","src":"9602:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9605:1:53","nodeType":"YulLiteral","src":"9605:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9595:6:53","nodeType":"YulIdentifier","src":"9595:6:53"},"nativeSrc":"9595:12:53","nodeType":"YulFunctionCall","src":"9595:12:53"},"nativeSrc":"9595:12:53","nodeType":"YulExpressionStatement","src":"9595:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"9496:117:53","nodeType":"YulFunctionDefinition","src":"9496:117:53"},{"body":{"nativeSrc":"9685:241:53","nodeType":"YulBlock","src":"9685:241:53","statements":[{"body":{"nativeSrc":"9790:22:53","nodeType":"YulBlock","src":"9790:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9792:16:53","nodeType":"YulIdentifier","src":"9792:16:53"},"nativeSrc":"9792:18:53","nodeType":"YulFunctionCall","src":"9792:18:53"},"nativeSrc":"9792:18:53","nodeType":"YulExpressionStatement","src":"9792:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9762:6:53","nodeType":"YulIdentifier","src":"9762:6:53"},{"kind":"number","nativeSrc":"9770:18:53","nodeType":"YulLiteral","src":"9770:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9759:2:53","nodeType":"YulIdentifier","src":"9759:2:53"},"nativeSrc":"9759:30:53","nodeType":"YulFunctionCall","src":"9759:30:53"},"nativeSrc":"9756:56:53","nodeType":"YulIf","src":"9756:56:53"},{"nativeSrc":"9822:37:53","nodeType":"YulAssignment","src":"9822:37:53","value":{"arguments":[{"name":"length","nativeSrc":"9852:6:53","nodeType":"YulIdentifier","src":"9852:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9830:21:53","nodeType":"YulIdentifier","src":"9830:21:53"},"nativeSrc":"9830:29:53","nodeType":"YulFunctionCall","src":"9830:29:53"},"variableNames":[{"name":"size","nativeSrc":"9822:4:53","nodeType":"YulIdentifier","src":"9822:4:53"}]},{"nativeSrc":"9896:23:53","nodeType":"YulAssignment","src":"9896:23:53","value":{"arguments":[{"name":"size","nativeSrc":"9908:4:53","nodeType":"YulIdentifier","src":"9908:4:53"},{"kind":"number","nativeSrc":"9914:4:53","nodeType":"YulLiteral","src":"9914:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9904:3:53","nodeType":"YulIdentifier","src":"9904:3:53"},"nativeSrc":"9904:15:53","nodeType":"YulFunctionCall","src":"9904:15:53"},"variableNames":[{"name":"size","nativeSrc":"9896:4:53","nodeType":"YulIdentifier","src":"9896:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"9619:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"9669:6:53","nodeType":"YulTypedName","src":"9669:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"9680:4:53","nodeType":"YulTypedName","src":"9680:4:53","type":""}],"src":"9619:307:53"},{"body":{"nativeSrc":"9996:84:53","nodeType":"YulBlock","src":"9996:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10020:3:53","nodeType":"YulIdentifier","src":"10020:3:53"},{"name":"src","nativeSrc":"10025:3:53","nodeType":"YulIdentifier","src":"10025:3:53"},{"name":"length","nativeSrc":"10030:6:53","nodeType":"YulIdentifier","src":"10030:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"10007:12:53","nodeType":"YulIdentifier","src":"10007:12:53"},"nativeSrc":"10007:30:53","nodeType":"YulFunctionCall","src":"10007:30:53"},"nativeSrc":"10007:30:53","nodeType":"YulExpressionStatement","src":"10007:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10057:3:53","nodeType":"YulIdentifier","src":"10057:3:53"},{"name":"length","nativeSrc":"10062:6:53","nodeType":"YulIdentifier","src":"10062:6:53"}],"functionName":{"name":"add","nativeSrc":"10053:3:53","nodeType":"YulIdentifier","src":"10053:3:53"},"nativeSrc":"10053:16:53","nodeType":"YulFunctionCall","src":"10053:16:53"},{"kind":"number","nativeSrc":"10071:1:53","nodeType":"YulLiteral","src":"10071:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10046:6:53","nodeType":"YulIdentifier","src":"10046:6:53"},"nativeSrc":"10046:27:53","nodeType":"YulFunctionCall","src":"10046:27:53"},"nativeSrc":"10046:27:53","nodeType":"YulExpressionStatement","src":"10046:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9932:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9978:3:53","nodeType":"YulTypedName","src":"9978:3:53","type":""},{"name":"dst","nativeSrc":"9983:3:53","nodeType":"YulTypedName","src":"9983:3:53","type":""},{"name":"length","nativeSrc":"9988:6:53","nodeType":"YulTypedName","src":"9988:6:53","type":""}],"src":"9932:148:53"},{"body":{"nativeSrc":"10169:340:53","nodeType":"YulBlock","src":"10169:340:53","statements":[{"nativeSrc":"10179:74:53","nodeType":"YulAssignment","src":"10179:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10245:6:53","nodeType":"YulIdentifier","src":"10245:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"10204:40:53","nodeType":"YulIdentifier","src":"10204:40:53"},"nativeSrc":"10204:48:53","nodeType":"YulFunctionCall","src":"10204:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10188:15:53","nodeType":"YulIdentifier","src":"10188:15:53"},"nativeSrc":"10188:65:53","nodeType":"YulFunctionCall","src":"10188:65:53"},"variableNames":[{"name":"array","nativeSrc":"10179:5:53","nodeType":"YulIdentifier","src":"10179:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"10269:5:53","nodeType":"YulIdentifier","src":"10269:5:53"},{"name":"length","nativeSrc":"10276:6:53","nodeType":"YulIdentifier","src":"10276:6:53"}],"functionName":{"name":"mstore","nativeSrc":"10262:6:53","nodeType":"YulIdentifier","src":"10262:6:53"},"nativeSrc":"10262:21:53","nodeType":"YulFunctionCall","src":"10262:21:53"},"nativeSrc":"10262:21:53","nodeType":"YulExpressionStatement","src":"10262:21:53"},{"nativeSrc":"10292:27:53","nodeType":"YulVariableDeclaration","src":"10292:27:53","value":{"arguments":[{"name":"array","nativeSrc":"10307:5:53","nodeType":"YulIdentifier","src":"10307:5:53"},{"kind":"number","nativeSrc":"10314:4:53","nodeType":"YulLiteral","src":"10314:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10303:3:53","nodeType":"YulIdentifier","src":"10303:3:53"},"nativeSrc":"10303:16:53","nodeType":"YulFunctionCall","src":"10303:16:53"},"variables":[{"name":"dst","nativeSrc":"10296:3:53","nodeType":"YulTypedName","src":"10296:3:53","type":""}]},{"body":{"nativeSrc":"10357:83:53","nodeType":"YulBlock","src":"10357:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10359:77:53","nodeType":"YulIdentifier","src":"10359:77:53"},"nativeSrc":"10359:79:53","nodeType":"YulFunctionCall","src":"10359:79:53"},"nativeSrc":"10359:79:53","nodeType":"YulExpressionStatement","src":"10359:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10338:3:53","nodeType":"YulIdentifier","src":"10338:3:53"},{"name":"length","nativeSrc":"10343:6:53","nodeType":"YulIdentifier","src":"10343:6:53"}],"functionName":{"name":"add","nativeSrc":"10334:3:53","nodeType":"YulIdentifier","src":"10334:3:53"},"nativeSrc":"10334:16:53","nodeType":"YulFunctionCall","src":"10334:16:53"},{"name":"end","nativeSrc":"10352:3:53","nodeType":"YulIdentifier","src":"10352:3:53"}],"functionName":{"name":"gt","nativeSrc":"10331:2:53","nodeType":"YulIdentifier","src":"10331:2:53"},"nativeSrc":"10331:25:53","nodeType":"YulFunctionCall","src":"10331:25:53"},"nativeSrc":"10328:112:53","nodeType":"YulIf","src":"10328:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"10486:3:53","nodeType":"YulIdentifier","src":"10486:3:53"},{"name":"dst","nativeSrc":"10491:3:53","nodeType":"YulIdentifier","src":"10491:3:53"},{"name":"length","nativeSrc":"10496:6:53","nodeType":"YulIdentifier","src":"10496:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"10449:36:53","nodeType":"YulIdentifier","src":"10449:36:53"},"nativeSrc":"10449:54:53","nodeType":"YulFunctionCall","src":"10449:54:53"},"nativeSrc":"10449:54:53","nodeType":"YulExpressionStatement","src":"10449:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"10086:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10142:3:53","nodeType":"YulTypedName","src":"10142:3:53","type":""},{"name":"length","nativeSrc":"10147:6:53","nodeType":"YulTypedName","src":"10147:6:53","type":""},{"name":"end","nativeSrc":"10155:3:53","nodeType":"YulTypedName","src":"10155:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10163:5:53","nodeType":"YulTypedName","src":"10163:5:53","type":""}],"src":"10086:423:53"},{"body":{"nativeSrc":"10589:277:53","nodeType":"YulBlock","src":"10589:277:53","statements":[{"body":{"nativeSrc":"10638:83:53","nodeType":"YulBlock","src":"10638:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10640:77:53","nodeType":"YulIdentifier","src":"10640:77:53"},"nativeSrc":"10640:79:53","nodeType":"YulFunctionCall","src":"10640:79:53"},"nativeSrc":"10640:79:53","nodeType":"YulExpressionStatement","src":"10640:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10617:6:53","nodeType":"YulIdentifier","src":"10617:6:53"},{"kind":"number","nativeSrc":"10625:4:53","nodeType":"YulLiteral","src":"10625:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10613:3:53","nodeType":"YulIdentifier","src":"10613:3:53"},"nativeSrc":"10613:17:53","nodeType":"YulFunctionCall","src":"10613:17:53"},{"name":"end","nativeSrc":"10632:3:53","nodeType":"YulIdentifier","src":"10632:3:53"}],"functionName":{"name":"slt","nativeSrc":"10609:3:53","nodeType":"YulIdentifier","src":"10609:3:53"},"nativeSrc":"10609:27:53","nodeType":"YulFunctionCall","src":"10609:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10602:6:53","nodeType":"YulIdentifier","src":"10602:6:53"},"nativeSrc":"10602:35:53","nodeType":"YulFunctionCall","src":"10602:35:53"},"nativeSrc":"10599:122:53","nodeType":"YulIf","src":"10599:122:53"},{"nativeSrc":"10730:34:53","nodeType":"YulVariableDeclaration","src":"10730:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"10757:6:53","nodeType":"YulIdentifier","src":"10757:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10744:12:53","nodeType":"YulIdentifier","src":"10744:12:53"},"nativeSrc":"10744:20:53","nodeType":"YulFunctionCall","src":"10744:20:53"},"variables":[{"name":"length","nativeSrc":"10734:6:53","nodeType":"YulTypedName","src":"10734:6:53","type":""}]},{"nativeSrc":"10773:87:53","nodeType":"YulAssignment","src":"10773:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10833:6:53","nodeType":"YulIdentifier","src":"10833:6:53"},{"kind":"number","nativeSrc":"10841:4:53","nodeType":"YulLiteral","src":"10841:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10829:3:53","nodeType":"YulIdentifier","src":"10829:3:53"},"nativeSrc":"10829:17:53","nodeType":"YulFunctionCall","src":"10829:17:53"},{"name":"length","nativeSrc":"10848:6:53","nodeType":"YulIdentifier","src":"10848:6:53"},{"name":"end","nativeSrc":"10856:3:53","nodeType":"YulIdentifier","src":"10856:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"10782:46:53","nodeType":"YulIdentifier","src":"10782:46:53"},"nativeSrc":"10782:78:53","nodeType":"YulFunctionCall","src":"10782:78:53"},"variableNames":[{"name":"array","nativeSrc":"10773:5:53","nodeType":"YulIdentifier","src":"10773:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10528:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10567:6:53","nodeType":"YulTypedName","src":"10567:6:53","type":""},{"name":"end","nativeSrc":"10575:3:53","nodeType":"YulTypedName","src":"10575:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10583:5:53","nodeType":"YulTypedName","src":"10583:5:53","type":""}],"src":"10528:338:53"},{"body":{"nativeSrc":"10995:665:53","nodeType":"YulBlock","src":"10995:665:53","statements":[{"body":{"nativeSrc":"11039:83:53","nodeType":"YulBlock","src":"11039:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"11041:77:53","nodeType":"YulIdentifier","src":"11041:77:53"},"nativeSrc":"11041:79:53","nodeType":"YulFunctionCall","src":"11041:79:53"},"nativeSrc":"11041:79:53","nodeType":"YulExpressionStatement","src":"11041:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"11016:3:53","nodeType":"YulIdentifier","src":"11016:3:53"},{"name":"headStart","nativeSrc":"11021:9:53","nodeType":"YulIdentifier","src":"11021:9:53"}],"functionName":{"name":"sub","nativeSrc":"11012:3:53","nodeType":"YulIdentifier","src":"11012:3:53"},"nativeSrc":"11012:19:53","nodeType":"YulFunctionCall","src":"11012:19:53"},{"kind":"number","nativeSrc":"11033:4:53","nodeType":"YulLiteral","src":"11033:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"11008:3:53","nodeType":"YulIdentifier","src":"11008:3:53"},"nativeSrc":"11008:30:53","nodeType":"YulFunctionCall","src":"11008:30:53"},"nativeSrc":"11005:117:53","nodeType":"YulIf","src":"11005:117:53"},{"nativeSrc":"11131:30:53","nodeType":"YulAssignment","src":"11131:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"11156:4:53","nodeType":"YulLiteral","src":"11156:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"11140:15:53","nodeType":"YulIdentifier","src":"11140:15:53"},"nativeSrc":"11140:21:53","nodeType":"YulFunctionCall","src":"11140:21:53"},"variableNames":[{"name":"value","nativeSrc":"11131:5:53","nodeType":"YulIdentifier","src":"11131:5:53"}]},{"nativeSrc":"11171:152:53","nodeType":"YulBlock","src":"11171:152:53","statements":[{"nativeSrc":"11208:15:53","nodeType":"YulVariableDeclaration","src":"11208:15:53","value":{"kind":"number","nativeSrc":"11222:1:53","nodeType":"YulLiteral","src":"11222:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11212:6:53","nodeType":"YulTypedName","src":"11212:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11248:5:53","nodeType":"YulIdentifier","src":"11248:5:53"},{"kind":"number","nativeSrc":"11255:4:53","nodeType":"YulLiteral","src":"11255:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11244:3:53","nodeType":"YulIdentifier","src":"11244:3:53"},"nativeSrc":"11244:16:53","nodeType":"YulFunctionCall","src":"11244:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11287:9:53","nodeType":"YulIdentifier","src":"11287:9:53"},{"name":"offset","nativeSrc":"11298:6:53","nodeType":"YulIdentifier","src":"11298:6:53"}],"functionName":{"name":"add","nativeSrc":"11283:3:53","nodeType":"YulIdentifier","src":"11283:3:53"},"nativeSrc":"11283:22:53","nodeType":"YulFunctionCall","src":"11283:22:53"},{"name":"end","nativeSrc":"11307:3:53","nodeType":"YulIdentifier","src":"11307:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11262:20:53","nodeType":"YulIdentifier","src":"11262:20:53"},"nativeSrc":"11262:49:53","nodeType":"YulFunctionCall","src":"11262:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11237:6:53","nodeType":"YulIdentifier","src":"11237:6:53"},"nativeSrc":"11237:75:53","nodeType":"YulFunctionCall","src":"11237:75:53"},"nativeSrc":"11237:75:53","nodeType":"YulExpressionStatement","src":"11237:75:53"}]},{"nativeSrc":"11333:320:53","nodeType":"YulBlock","src":"11333:320:53","statements":[{"nativeSrc":"11368:46:53","nodeType":"YulVariableDeclaration","src":"11368:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11399:9:53","nodeType":"YulIdentifier","src":"11399:9:53"},{"kind":"number","nativeSrc":"11410:2:53","nodeType":"YulLiteral","src":"11410:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11395:3:53","nodeType":"YulIdentifier","src":"11395:3:53"},"nativeSrc":"11395:18:53","nodeType":"YulFunctionCall","src":"11395:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11382:12:53","nodeType":"YulIdentifier","src":"11382:12:53"},"nativeSrc":"11382:32:53","nodeType":"YulFunctionCall","src":"11382:32:53"},"variables":[{"name":"offset","nativeSrc":"11372:6:53","nodeType":"YulTypedName","src":"11372:6:53","type":""}]},{"body":{"nativeSrc":"11461:83:53","nodeType":"YulBlock","src":"11461:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"11463:77:53","nodeType":"YulIdentifier","src":"11463:77:53"},"nativeSrc":"11463:79:53","nodeType":"YulFunctionCall","src":"11463:79:53"},"nativeSrc":"11463:79:53","nodeType":"YulExpressionStatement","src":"11463:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11433:6:53","nodeType":"YulIdentifier","src":"11433:6:53"},{"kind":"number","nativeSrc":"11441:18:53","nodeType":"YulLiteral","src":"11441:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11430:2:53","nodeType":"YulIdentifier","src":"11430:2:53"},"nativeSrc":"11430:30:53","nodeType":"YulFunctionCall","src":"11430:30:53"},"nativeSrc":"11427:117:53","nodeType":"YulIf","src":"11427:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11569:5:53","nodeType":"YulIdentifier","src":"11569:5:53"},{"kind":"number","nativeSrc":"11576:4:53","nodeType":"YulLiteral","src":"11576:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11565:3:53","nodeType":"YulIdentifier","src":"11565:3:53"},"nativeSrc":"11565:16:53","nodeType":"YulFunctionCall","src":"11565:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11617:9:53","nodeType":"YulIdentifier","src":"11617:9:53"},{"name":"offset","nativeSrc":"11628:6:53","nodeType":"YulIdentifier","src":"11628:6:53"}],"functionName":{"name":"add","nativeSrc":"11613:3:53","nodeType":"YulIdentifier","src":"11613:3:53"},"nativeSrc":"11613:22:53","nodeType":"YulFunctionCall","src":"11613:22:53"},{"name":"end","nativeSrc":"11637:3:53","nodeType":"YulIdentifier","src":"11637:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"11583:29:53","nodeType":"YulIdentifier","src":"11583:29:53"},"nativeSrc":"11583:58:53","nodeType":"YulFunctionCall","src":"11583:58:53"}],"functionName":{"name":"mstore","nativeSrc":"11558:6:53","nodeType":"YulIdentifier","src":"11558:6:53"},"nativeSrc":"11558:84:53","nodeType":"YulFunctionCall","src":"11558:84:53"},"nativeSrc":"11558:84:53","nodeType":"YulExpressionStatement","src":"11558:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"10909:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10970:9:53","nodeType":"YulTypedName","src":"10970:9:53","type":""},{"name":"end","nativeSrc":"10981:3:53","nodeType":"YulTypedName","src":"10981:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10989:5:53","nodeType":"YulTypedName","src":"10989:5:53","type":""}],"src":"10909:751:53"},{"body":{"nativeSrc":"11763:454:53","nodeType":"YulBlock","src":"11763:454:53","statements":[{"body":{"nativeSrc":"11809:83:53","nodeType":"YulBlock","src":"11809:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11811:77:53","nodeType":"YulIdentifier","src":"11811:77:53"},"nativeSrc":"11811:79:53","nodeType":"YulFunctionCall","src":"11811:79:53"},"nativeSrc":"11811:79:53","nodeType":"YulExpressionStatement","src":"11811:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11784:7:53","nodeType":"YulIdentifier","src":"11784:7:53"},{"name":"headStart","nativeSrc":"11793:9:53","nodeType":"YulIdentifier","src":"11793:9:53"}],"functionName":{"name":"sub","nativeSrc":"11780:3:53","nodeType":"YulIdentifier","src":"11780:3:53"},"nativeSrc":"11780:23:53","nodeType":"YulFunctionCall","src":"11780:23:53"},{"kind":"number","nativeSrc":"11805:2:53","nodeType":"YulLiteral","src":"11805:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11776:3:53","nodeType":"YulIdentifier","src":"11776:3:53"},"nativeSrc":"11776:32:53","nodeType":"YulFunctionCall","src":"11776:32:53"},"nativeSrc":"11773:119:53","nodeType":"YulIf","src":"11773:119:53"},{"nativeSrc":"11902:308:53","nodeType":"YulBlock","src":"11902:308:53","statements":[{"nativeSrc":"11917:45:53","nodeType":"YulVariableDeclaration","src":"11917:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11948:9:53","nodeType":"YulIdentifier","src":"11948:9:53"},{"kind":"number","nativeSrc":"11959:1:53","nodeType":"YulLiteral","src":"11959:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11944:3:53","nodeType":"YulIdentifier","src":"11944:3:53"},"nativeSrc":"11944:17:53","nodeType":"YulFunctionCall","src":"11944:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"11931:12:53","nodeType":"YulIdentifier","src":"11931:12:53"},"nativeSrc":"11931:31:53","nodeType":"YulFunctionCall","src":"11931:31:53"},"variables":[{"name":"offset","nativeSrc":"11921:6:53","nodeType":"YulTypedName","src":"11921:6:53","type":""}]},{"body":{"nativeSrc":"12009:83:53","nodeType":"YulBlock","src":"12009:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12011:77:53","nodeType":"YulIdentifier","src":"12011:77:53"},"nativeSrc":"12011:79:53","nodeType":"YulFunctionCall","src":"12011:79:53"},"nativeSrc":"12011:79:53","nodeType":"YulExpressionStatement","src":"12011:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11981:6:53","nodeType":"YulIdentifier","src":"11981:6:53"},{"kind":"number","nativeSrc":"11989:18:53","nodeType":"YulLiteral","src":"11989:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11978:2:53","nodeType":"YulIdentifier","src":"11978:2:53"},"nativeSrc":"11978:30:53","nodeType":"YulFunctionCall","src":"11978:30:53"},"nativeSrc":"11975:117:53","nodeType":"YulIf","src":"11975:117:53"},{"nativeSrc":"12106:94:53","nodeType":"YulAssignment","src":"12106:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12172:9:53","nodeType":"YulIdentifier","src":"12172:9:53"},{"name":"offset","nativeSrc":"12183:6:53","nodeType":"YulIdentifier","src":"12183:6:53"}],"functionName":{"name":"add","nativeSrc":"12168:3:53","nodeType":"YulIdentifier","src":"12168:3:53"},"nativeSrc":"12168:22:53","nodeType":"YulFunctionCall","src":"12168:22:53"},{"name":"dataEnd","nativeSrc":"12192:7:53","nodeType":"YulIdentifier","src":"12192:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"12116:51:53","nodeType":"YulIdentifier","src":"12116:51:53"},"nativeSrc":"12116:84:53","nodeType":"YulFunctionCall","src":"12116:84:53"},"variableNames":[{"name":"value0","nativeSrc":"12106:6:53","nodeType":"YulIdentifier","src":"12106:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"11666:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11733:9:53","nodeType":"YulTypedName","src":"11733:9:53","type":""},{"name":"dataEnd","nativeSrc":"11744:7:53","nodeType":"YulTypedName","src":"11744:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11756:6:53","nodeType":"YulTypedName","src":"11756:6:53","type":""}],"src":"11666:551:53"},{"body":{"nativeSrc":"12251:152:53","nodeType":"YulBlock","src":"12251:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12268:1:53","nodeType":"YulLiteral","src":"12268:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12271:77:53","nodeType":"YulLiteral","src":"12271:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12261:6:53","nodeType":"YulIdentifier","src":"12261:6:53"},"nativeSrc":"12261:88:53","nodeType":"YulFunctionCall","src":"12261:88:53"},"nativeSrc":"12261:88:53","nodeType":"YulExpressionStatement","src":"12261:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12365:1:53","nodeType":"YulLiteral","src":"12365:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"12368:4:53","nodeType":"YulLiteral","src":"12368:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"12358:6:53","nodeType":"YulIdentifier","src":"12358:6:53"},"nativeSrc":"12358:15:53","nodeType":"YulFunctionCall","src":"12358:15:53"},"nativeSrc":"12358:15:53","nodeType":"YulExpressionStatement","src":"12358:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12389:1:53","nodeType":"YulLiteral","src":"12389:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12392:4:53","nodeType":"YulLiteral","src":"12392:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12382:6:53","nodeType":"YulIdentifier","src":"12382:6:53"},"nativeSrc":"12382:15:53","nodeType":"YulFunctionCall","src":"12382:15:53"},"nativeSrc":"12382:15:53","nodeType":"YulExpressionStatement","src":"12382:15:53"}]},"name":"panic_error_0x11","nativeSrc":"12223:180:53","nodeType":"YulFunctionDefinition","src":"12223:180:53"},{"body":{"nativeSrc":"12452:190:53","nodeType":"YulBlock","src":"12452:190:53","statements":[{"nativeSrc":"12462:33:53","nodeType":"YulAssignment","src":"12462:33:53","value":{"arguments":[{"name":"value","nativeSrc":"12489:5:53","nodeType":"YulIdentifier","src":"12489:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12471:17:53","nodeType":"YulIdentifier","src":"12471:17:53"},"nativeSrc":"12471:24:53","nodeType":"YulFunctionCall","src":"12471:24:53"},"variableNames":[{"name":"value","nativeSrc":"12462:5:53","nodeType":"YulIdentifier","src":"12462:5:53"}]},{"body":{"nativeSrc":"12585:22:53","nodeType":"YulBlock","src":"12585:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12587:16:53","nodeType":"YulIdentifier","src":"12587:16:53"},"nativeSrc":"12587:18:53","nodeType":"YulFunctionCall","src":"12587:18:53"},"nativeSrc":"12587:18:53","nodeType":"YulExpressionStatement","src":"12587:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"12510:5:53","nodeType":"YulIdentifier","src":"12510:5:53"},{"kind":"number","nativeSrc":"12517:66:53","nodeType":"YulLiteral","src":"12517:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"12507:2:53","nodeType":"YulIdentifier","src":"12507:2:53"},"nativeSrc":"12507:77:53","nodeType":"YulFunctionCall","src":"12507:77:53"},"nativeSrc":"12504:103:53","nodeType":"YulIf","src":"12504:103:53"},{"nativeSrc":"12616:20:53","nodeType":"YulAssignment","src":"12616:20:53","value":{"arguments":[{"name":"value","nativeSrc":"12627:5:53","nodeType":"YulIdentifier","src":"12627:5:53"},{"kind":"number","nativeSrc":"12634:1:53","nodeType":"YulLiteral","src":"12634:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12623:3:53","nodeType":"YulIdentifier","src":"12623:3:53"},"nativeSrc":"12623:13:53","nodeType":"YulFunctionCall","src":"12623:13:53"},"variableNames":[{"name":"ret","nativeSrc":"12616:3:53","nodeType":"YulIdentifier","src":"12616:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"12409:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12438:5:53","nodeType":"YulTypedName","src":"12438:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"12448:3:53","nodeType":"YulTypedName","src":"12448:3:53","type":""}],"src":"12409:233:53"},{"body":{"nativeSrc":"12722:40:53","nodeType":"YulBlock","src":"12722:40:53","statements":[{"nativeSrc":"12733:22:53","nodeType":"YulAssignment","src":"12733:22:53","value":{"arguments":[{"name":"value","nativeSrc":"12749:5:53","nodeType":"YulIdentifier","src":"12749:5:53"}],"functionName":{"name":"mload","nativeSrc":"12743:5:53","nodeType":"YulIdentifier","src":"12743:5:53"},"nativeSrc":"12743:12:53","nodeType":"YulFunctionCall","src":"12743:12:53"},"variableNames":[{"name":"length","nativeSrc":"12733:6:53","nodeType":"YulIdentifier","src":"12733:6:53"}]}]},"name":"array_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12648:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12705:5:53","nodeType":"YulTypedName","src":"12705:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"12715:6:53","nodeType":"YulTypedName","src":"12715:6:53","type":""}],"src":"12648:114:53"},{"body":{"nativeSrc":"12879:73:53","nodeType":"YulBlock","src":"12879:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12896:3:53","nodeType":"YulIdentifier","src":"12896:3:53"},{"name":"length","nativeSrc":"12901:6:53","nodeType":"YulIdentifier","src":"12901:6:53"}],"functionName":{"name":"mstore","nativeSrc":"12889:6:53","nodeType":"YulIdentifier","src":"12889:6:53"},"nativeSrc":"12889:19:53","nodeType":"YulFunctionCall","src":"12889:19:53"},"nativeSrc":"12889:19:53","nodeType":"YulExpressionStatement","src":"12889:19:53"},{"nativeSrc":"12917:29:53","nodeType":"YulAssignment","src":"12917:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"12936:3:53","nodeType":"YulIdentifier","src":"12936:3:53"},{"kind":"number","nativeSrc":"12941:4:53","nodeType":"YulLiteral","src":"12941:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12932:3:53","nodeType":"YulIdentifier","src":"12932:3:53"},"nativeSrc":"12932:14:53","nodeType":"YulFunctionCall","src":"12932:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"12917:11:53","nodeType":"YulIdentifier","src":"12917:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"12768:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12851:3:53","nodeType":"YulTypedName","src":"12851:3:53","type":""},{"name":"length","nativeSrc":"12856:6:53","nodeType":"YulTypedName","src":"12856:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12867:11:53","nodeType":"YulTypedName","src":"12867:11:53","type":""}],"src":"12768:184:53"},{"body":{"nativeSrc":"13030:60:53","nodeType":"YulBlock","src":"13030:60:53","statements":[{"nativeSrc":"13040:11:53","nodeType":"YulAssignment","src":"13040:11:53","value":{"name":"ptr","nativeSrc":"13048:3:53","nodeType":"YulIdentifier","src":"13048:3:53"},"variableNames":[{"name":"data","nativeSrc":"13040:4:53","nodeType":"YulIdentifier","src":"13040:4:53"}]},{"nativeSrc":"13061:22:53","nodeType":"YulAssignment","src":"13061:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13073:3:53","nodeType":"YulIdentifier","src":"13073:3:53"},{"kind":"number","nativeSrc":"13078:4:53","nodeType":"YulLiteral","src":"13078:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13069:3:53","nodeType":"YulIdentifier","src":"13069:3:53"},"nativeSrc":"13069:14:53","nodeType":"YulFunctionCall","src":"13069:14:53"},"variableNames":[{"name":"data","nativeSrc":"13061:4:53","nodeType":"YulIdentifier","src":"13061:4:53"}]}]},"name":"array_dataslot_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12958:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13017:3:53","nodeType":"YulTypedName","src":"13017:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"13025:4:53","nodeType":"YulTypedName","src":"13025:4:53","type":""}],"src":"12958:132:53"},{"body":{"nativeSrc":"13151:53:53","nodeType":"YulBlock","src":"13151:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13168:3:53","nodeType":"YulIdentifier","src":"13168:3:53"},{"arguments":[{"name":"value","nativeSrc":"13191:5:53","nodeType":"YulIdentifier","src":"13191:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"13173:17:53","nodeType":"YulIdentifier","src":"13173:17:53"},"nativeSrc":"13173:24:53","nodeType":"YulFunctionCall","src":"13173:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13161:6:53","nodeType":"YulIdentifier","src":"13161:6:53"},"nativeSrc":"13161:37:53","nodeType":"YulFunctionCall","src":"13161:37:53"},"nativeSrc":"13161:37:53","nodeType":"YulExpressionStatement","src":"13161:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"13096:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13139:5:53","nodeType":"YulTypedName","src":"13139:5:53","type":""},{"name":"pos","nativeSrc":"13146:3:53","nodeType":"YulTypedName","src":"13146:3:53","type":""}],"src":"13096:108:53"},{"body":{"nativeSrc":"13290:99:53","nodeType":"YulBlock","src":"13290:99:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13334:6:53","nodeType":"YulIdentifier","src":"13334:6:53"},{"name":"pos","nativeSrc":"13342:3:53","nodeType":"YulIdentifier","src":"13342:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"13300:33:53","nodeType":"YulIdentifier","src":"13300:33:53"},"nativeSrc":"13300:46:53","nodeType":"YulFunctionCall","src":"13300:46:53"},"nativeSrc":"13300:46:53","nodeType":"YulExpressionStatement","src":"13300:46:53"},{"nativeSrc":"13355:28:53","nodeType":"YulAssignment","src":"13355:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"13373:3:53","nodeType":"YulIdentifier","src":"13373:3:53"},{"kind":"number","nativeSrc":"13378:4:53","nodeType":"YulLiteral","src":"13378:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13369:3:53","nodeType":"YulIdentifier","src":"13369:3:53"},"nativeSrc":"13369:14:53","nodeType":"YulFunctionCall","src":"13369:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"13355:10:53","nodeType":"YulIdentifier","src":"13355:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"13210:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"13263:6:53","nodeType":"YulTypedName","src":"13263:6:53","type":""},{"name":"pos","nativeSrc":"13271:3:53","nodeType":"YulTypedName","src":"13271:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"13279:10:53","nodeType":"YulTypedName","src":"13279:10:53","type":""}],"src":"13210:179:53"},{"body":{"nativeSrc":"13470:38:53","nodeType":"YulBlock","src":"13470:38:53","statements":[{"nativeSrc":"13480:22:53","nodeType":"YulAssignment","src":"13480:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13492:3:53","nodeType":"YulIdentifier","src":"13492:3:53"},{"kind":"number","nativeSrc":"13497:4:53","nodeType":"YulLiteral","src":"13497:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13488:3:53","nodeType":"YulIdentifier","src":"13488:3:53"},"nativeSrc":"13488:14:53","nodeType":"YulFunctionCall","src":"13488:14:53"},"variableNames":[{"name":"next","nativeSrc":"13480:4:53","nodeType":"YulIdentifier","src":"13480:4:53"}]}]},"name":"array_nextElement_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13395:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13457:3:53","nodeType":"YulTypedName","src":"13457:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"13465:4:53","nodeType":"YulTypedName","src":"13465:4:53","type":""}],"src":"13395:113:53"},{"body":{"nativeSrc":"13668:608:53","nodeType":"YulBlock","src":"13668:608:53","statements":[{"nativeSrc":"13678:68:53","nodeType":"YulVariableDeclaration","src":"13678:68:53","value":{"arguments":[{"name":"value","nativeSrc":"13740:5:53","nodeType":"YulIdentifier","src":"13740:5:53"}],"functionName":{"name":"array_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13692:47:53","nodeType":"YulIdentifier","src":"13692:47:53"},"nativeSrc":"13692:54:53","nodeType":"YulFunctionCall","src":"13692:54:53"},"variables":[{"name":"length","nativeSrc":"13682:6:53","nodeType":"YulTypedName","src":"13682:6:53","type":""}]},{"nativeSrc":"13755:93:53","nodeType":"YulAssignment","src":"13755:93:53","value":{"arguments":[{"name":"pos","nativeSrc":"13836:3:53","nodeType":"YulIdentifier","src":"13836:3:53"},{"name":"length","nativeSrc":"13841:6:53","nodeType":"YulIdentifier","src":"13841:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"13762:73:53","nodeType":"YulIdentifier","src":"13762:73:53"},"nativeSrc":"13762:86:53","nodeType":"YulFunctionCall","src":"13762:86:53"},"variableNames":[{"name":"pos","nativeSrc":"13755:3:53","nodeType":"YulIdentifier","src":"13755:3:53"}]},{"nativeSrc":"13857:71:53","nodeType":"YulVariableDeclaration","src":"13857:71:53","value":{"arguments":[{"name":"value","nativeSrc":"13922:5:53","nodeType":"YulIdentifier","src":"13922:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13872:49:53","nodeType":"YulIdentifier","src":"13872:49:53"},"nativeSrc":"13872:56:53","nodeType":"YulFunctionCall","src":"13872:56:53"},"variables":[{"name":"baseRef","nativeSrc":"13861:7:53","nodeType":"YulTypedName","src":"13861:7:53","type":""}]},{"nativeSrc":"13937:21:53","nodeType":"YulVariableDeclaration","src":"13937:21:53","value":{"name":"baseRef","nativeSrc":"13951:7:53","nodeType":"YulIdentifier","src":"13951:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"13941:6:53","nodeType":"YulTypedName","src":"13941:6:53","type":""}]},{"body":{"nativeSrc":"14027:224:53","nodeType":"YulBlock","src":"14027:224:53","statements":[{"nativeSrc":"14041:34:53","nodeType":"YulVariableDeclaration","src":"14041:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14068:6:53","nodeType":"YulIdentifier","src":"14068:6:53"}],"functionName":{"name":"mload","nativeSrc":"14062:5:53","nodeType":"YulIdentifier","src":"14062:5:53"},"nativeSrc":"14062:13:53","nodeType":"YulFunctionCall","src":"14062:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"14045:13:53","nodeType":"YulTypedName","src":"14045:13:53","type":""}]},{"nativeSrc":"14088:70:53","nodeType":"YulAssignment","src":"14088:70:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"14139:13:53","nodeType":"YulIdentifier","src":"14139:13:53"},{"name":"pos","nativeSrc":"14154:3:53","nodeType":"YulIdentifier","src":"14154:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"14095:43:53","nodeType":"YulIdentifier","src":"14095:43:53"},"nativeSrc":"14095:63:53","nodeType":"YulFunctionCall","src":"14095:63:53"},"variableNames":[{"name":"pos","nativeSrc":"14088:3:53","nodeType":"YulIdentifier","src":"14088:3:53"}]},{"nativeSrc":"14171:70:53","nodeType":"YulAssignment","src":"14171:70:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14234:6:53","nodeType":"YulIdentifier","src":"14234:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14181:52:53","nodeType":"YulIdentifier","src":"14181:52:53"},"nativeSrc":"14181:60:53","nodeType":"YulFunctionCall","src":"14181:60:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"14171:6:53","nodeType":"YulIdentifier","src":"14171:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"13989:1:53","nodeType":"YulIdentifier","src":"13989:1:53"},{"name":"length","nativeSrc":"13992:6:53","nodeType":"YulIdentifier","src":"13992:6:53"}],"functionName":{"name":"lt","nativeSrc":"13986:2:53","nodeType":"YulIdentifier","src":"13986:2:53"},"nativeSrc":"13986:13:53","nodeType":"YulFunctionCall","src":"13986:13:53"},"nativeSrc":"13967:284:53","nodeType":"YulForLoop","post":{"nativeSrc":"14000:18:53","nodeType":"YulBlock","src":"14000:18:53","statements":[{"nativeSrc":"14002:14:53","nodeType":"YulAssignment","src":"14002:14:53","value":{"arguments":[{"name":"i","nativeSrc":"14011:1:53","nodeType":"YulIdentifier","src":"14011:1:53"},{"kind":"number","nativeSrc":"14014:1:53","nodeType":"YulLiteral","src":"14014:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14007:3:53","nodeType":"YulIdentifier","src":"14007:3:53"},"nativeSrc":"14007:9:53","nodeType":"YulFunctionCall","src":"14007:9:53"},"variableNames":[{"name":"i","nativeSrc":"14002:1:53","nodeType":"YulIdentifier","src":"14002:1:53"}]}]},"pre":{"nativeSrc":"13971:14:53","nodeType":"YulBlock","src":"13971:14:53","statements":[{"nativeSrc":"13973:10:53","nodeType":"YulVariableDeclaration","src":"13973:10:53","value":{"kind":"number","nativeSrc":"13982:1:53","nodeType":"YulLiteral","src":"13982:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"13977:1:53","nodeType":"YulTypedName","src":"13977:1:53","type":""}]}]},"src":"13967:284:53"},{"nativeSrc":"14260:10:53","nodeType":"YulAssignment","src":"14260:10:53","value":{"name":"pos","nativeSrc":"14267:3:53","nodeType":"YulIdentifier","src":"14267:3:53"},"variableNames":[{"name":"end","nativeSrc":"14260:3:53","nodeType":"YulIdentifier","src":"14260:3:53"}]}]},"name":"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"13544:732:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13647:5:53","nodeType":"YulTypedName","src":"13647:5:53","type":""},{"name":"pos","nativeSrc":"13654:3:53","nodeType":"YulTypedName","src":"13654:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13663:3:53","nodeType":"YulTypedName","src":"13663:3:53","type":""}],"src":"13544:732:53"},{"body":{"nativeSrc":"14353:40:53","nodeType":"YulBlock","src":"14353:40:53","statements":[{"nativeSrc":"14364:22:53","nodeType":"YulAssignment","src":"14364:22:53","value":{"arguments":[{"name":"value","nativeSrc":"14380:5:53","nodeType":"YulIdentifier","src":"14380:5:53"}],"functionName":{"name":"mload","nativeSrc":"14374:5:53","nodeType":"YulIdentifier","src":"14374:5:53"},"nativeSrc":"14374:12:53","nodeType":"YulFunctionCall","src":"14374:12:53"},"variableNames":[{"name":"length","nativeSrc":"14364:6:53","nodeType":"YulIdentifier","src":"14364:6:53"}]}]},"name":"array_length_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14282:111:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14336:5:53","nodeType":"YulTypedName","src":"14336:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"14346:6:53","nodeType":"YulTypedName","src":"14346:6:53","type":""}],"src":"14282:111:53"},{"body":{"nativeSrc":"14507:73:53","nodeType":"YulBlock","src":"14507:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14524:3:53","nodeType":"YulIdentifier","src":"14524:3:53"},{"name":"length","nativeSrc":"14529:6:53","nodeType":"YulIdentifier","src":"14529:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14517:6:53","nodeType":"YulIdentifier","src":"14517:6:53"},"nativeSrc":"14517:19:53","nodeType":"YulFunctionCall","src":"14517:19:53"},"nativeSrc":"14517:19:53","nodeType":"YulExpressionStatement","src":"14517:19:53"},{"nativeSrc":"14545:29:53","nodeType":"YulAssignment","src":"14545:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"14564:3:53","nodeType":"YulIdentifier","src":"14564:3:53"},{"kind":"number","nativeSrc":"14569:4:53","nodeType":"YulLiteral","src":"14569:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14560:3:53","nodeType":"YulIdentifier","src":"14560:3:53"},"nativeSrc":"14560:14:53","nodeType":"YulFunctionCall","src":"14560:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"14545:11:53","nodeType":"YulIdentifier","src":"14545:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"14399:181:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14479:3:53","nodeType":"YulTypedName","src":"14479:3:53","type":""},{"name":"length","nativeSrc":"14484:6:53","nodeType":"YulTypedName","src":"14484:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14495:11:53","nodeType":"YulTypedName","src":"14495:11:53","type":""}],"src":"14399:181:53"},{"body":{"nativeSrc":"14655:60:53","nodeType":"YulBlock","src":"14655:60:53","statements":[{"nativeSrc":"14665:11:53","nodeType":"YulAssignment","src":"14665:11:53","value":{"name":"ptr","nativeSrc":"14673:3:53","nodeType":"YulIdentifier","src":"14673:3:53"},"variableNames":[{"name":"data","nativeSrc":"14665:4:53","nodeType":"YulIdentifier","src":"14665:4:53"}]},{"nativeSrc":"14686:22:53","nodeType":"YulAssignment","src":"14686:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"14698:3:53","nodeType":"YulIdentifier","src":"14698:3:53"},{"kind":"number","nativeSrc":"14703:4:53","nodeType":"YulLiteral","src":"14703:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14694:3:53","nodeType":"YulIdentifier","src":"14694:3:53"},"nativeSrc":"14694:14:53","nodeType":"YulFunctionCall","src":"14694:14:53"},"variableNames":[{"name":"data","nativeSrc":"14686:4:53","nodeType":"YulIdentifier","src":"14686:4:53"}]}]},"name":"array_dataslot_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14586:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14642:3:53","nodeType":"YulTypedName","src":"14642:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"14650:4:53","nodeType":"YulTypedName","src":"14650:4:53","type":""}],"src":"14586:129:53"},{"body":{"nativeSrc":"14770:50:53","nodeType":"YulBlock","src":"14770:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14787:3:53","nodeType":"YulIdentifier","src":"14787:3:53"},{"arguments":[{"name":"value","nativeSrc":"14807:5:53","nodeType":"YulIdentifier","src":"14807:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"14792:14:53","nodeType":"YulIdentifier","src":"14792:14:53"},"nativeSrc":"14792:21:53","nodeType":"YulFunctionCall","src":"14792:21:53"}],"functionName":{"name":"mstore","nativeSrc":"14780:6:53","nodeType":"YulIdentifier","src":"14780:6:53"},"nativeSrc":"14780:34:53","nodeType":"YulFunctionCall","src":"14780:34:53"},"nativeSrc":"14780:34:53","nodeType":"YulExpressionStatement","src":"14780:34:53"}]},"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"14721:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14758:5:53","nodeType":"YulTypedName","src":"14758:5:53","type":""},{"name":"pos","nativeSrc":"14765:3:53","nodeType":"YulTypedName","src":"14765:3:53","type":""}],"src":"14721:99:53"},{"body":{"nativeSrc":"14900:93:53","nodeType":"YulBlock","src":"14900:93:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"14938:6:53","nodeType":"YulIdentifier","src":"14938:6:53"},{"name":"pos","nativeSrc":"14946:3:53","nodeType":"YulIdentifier","src":"14946:3:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"14910:27:53","nodeType":"YulIdentifier","src":"14910:27:53"},"nativeSrc":"14910:40:53","nodeType":"YulFunctionCall","src":"14910:40:53"},"nativeSrc":"14910:40:53","nodeType":"YulExpressionStatement","src":"14910:40:53"},{"nativeSrc":"14959:28:53","nodeType":"YulAssignment","src":"14959:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"14977:3:53","nodeType":"YulIdentifier","src":"14977:3:53"},{"kind":"number","nativeSrc":"14982:4:53","nodeType":"YulLiteral","src":"14982:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14973:3:53","nodeType":"YulIdentifier","src":"14973:3:53"},"nativeSrc":"14973:14:53","nodeType":"YulFunctionCall","src":"14973:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"14959:10:53","nodeType":"YulIdentifier","src":"14959:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"14826:167:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"14873:6:53","nodeType":"YulTypedName","src":"14873:6:53","type":""},{"name":"pos","nativeSrc":"14881:3:53","nodeType":"YulTypedName","src":"14881:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"14889:10:53","nodeType":"YulTypedName","src":"14889:10:53","type":""}],"src":"14826:167:53"},{"body":{"nativeSrc":"15071:38:53","nodeType":"YulBlock","src":"15071:38:53","statements":[{"nativeSrc":"15081:22:53","nodeType":"YulAssignment","src":"15081:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"15093:3:53","nodeType":"YulIdentifier","src":"15093:3:53"},{"kind":"number","nativeSrc":"15098:4:53","nodeType":"YulLiteral","src":"15098:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15089:3:53","nodeType":"YulIdentifier","src":"15089:3:53"},"nativeSrc":"15089:14:53","nodeType":"YulFunctionCall","src":"15089:14:53"},"variableNames":[{"name":"next","nativeSrc":"15081:4:53","nodeType":"YulIdentifier","src":"15081:4:53"}]}]},"name":"array_nextElement_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14999:110:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"15058:3:53","nodeType":"YulTypedName","src":"15058:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"15066:4:53","nodeType":"YulTypedName","src":"15066:4:53","type":""}],"src":"14999:110:53"},{"body":{"nativeSrc":"15257:590:53","nodeType":"YulBlock","src":"15257:590:53","statements":[{"nativeSrc":"15267:65:53","nodeType":"YulVariableDeclaration","src":"15267:65:53","value":{"arguments":[{"name":"value","nativeSrc":"15326:5:53","nodeType":"YulIdentifier","src":"15326:5:53"}],"functionName":{"name":"array_length_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15281:44:53","nodeType":"YulIdentifier","src":"15281:44:53"},"nativeSrc":"15281:51:53","nodeType":"YulFunctionCall","src":"15281:51:53"},"variables":[{"name":"length","nativeSrc":"15271:6:53","nodeType":"YulTypedName","src":"15271:6:53","type":""}]},{"nativeSrc":"15341:90:53","nodeType":"YulAssignment","src":"15341:90:53","value":{"arguments":[{"name":"pos","nativeSrc":"15419:3:53","nodeType":"YulIdentifier","src":"15419:3:53"},{"name":"length","nativeSrc":"15424:6:53","nodeType":"YulIdentifier","src":"15424:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"15348:70:53","nodeType":"YulIdentifier","src":"15348:70:53"},"nativeSrc":"15348:83:53","nodeType":"YulFunctionCall","src":"15348:83:53"},"variableNames":[{"name":"pos","nativeSrc":"15341:3:53","nodeType":"YulIdentifier","src":"15341:3:53"}]},{"nativeSrc":"15440:68:53","nodeType":"YulVariableDeclaration","src":"15440:68:53","value":{"arguments":[{"name":"value","nativeSrc":"15502:5:53","nodeType":"YulIdentifier","src":"15502:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15455:46:53","nodeType":"YulIdentifier","src":"15455:46:53"},"nativeSrc":"15455:53:53","nodeType":"YulFunctionCall","src":"15455:53:53"},"variables":[{"name":"baseRef","nativeSrc":"15444:7:53","nodeType":"YulTypedName","src":"15444:7:53","type":""}]},{"nativeSrc":"15517:21:53","nodeType":"YulVariableDeclaration","src":"15517:21:53","value":{"name":"baseRef","nativeSrc":"15531:7:53","nodeType":"YulIdentifier","src":"15531:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"15521:6:53","nodeType":"YulTypedName","src":"15521:6:53","type":""}]},{"body":{"nativeSrc":"15607:215:53","nodeType":"YulBlock","src":"15607:215:53","statements":[{"nativeSrc":"15621:34:53","nodeType":"YulVariableDeclaration","src":"15621:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15648:6:53","nodeType":"YulIdentifier","src":"15648:6:53"}],"functionName":{"name":"mload","nativeSrc":"15642:5:53","nodeType":"YulIdentifier","src":"15642:5:53"},"nativeSrc":"15642:13:53","nodeType":"YulFunctionCall","src":"15642:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"15625:13:53","nodeType":"YulTypedName","src":"15625:13:53","type":""}]},{"nativeSrc":"15668:64:53","nodeType":"YulAssignment","src":"15668:64:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"15713:13:53","nodeType":"YulIdentifier","src":"15713:13:53"},{"name":"pos","nativeSrc":"15728:3:53","nodeType":"YulIdentifier","src":"15728:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"15675:37:53","nodeType":"YulIdentifier","src":"15675:37:53"},"nativeSrc":"15675:57:53","nodeType":"YulFunctionCall","src":"15675:57:53"},"variableNames":[{"name":"pos","nativeSrc":"15668:3:53","nodeType":"YulIdentifier","src":"15668:3:53"}]},{"nativeSrc":"15745:67:53","nodeType":"YulAssignment","src":"15745:67:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15805:6:53","nodeType":"YulIdentifier","src":"15805:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15755:49:53","nodeType":"YulIdentifier","src":"15755:49:53"},"nativeSrc":"15755:57:53","nodeType":"YulFunctionCall","src":"15755:57:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"15745:6:53","nodeType":"YulIdentifier","src":"15745:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15569:1:53","nodeType":"YulIdentifier","src":"15569:1:53"},{"name":"length","nativeSrc":"15572:6:53","nodeType":"YulIdentifier","src":"15572:6:53"}],"functionName":{"name":"lt","nativeSrc":"15566:2:53","nodeType":"YulIdentifier","src":"15566:2:53"},"nativeSrc":"15566:13:53","nodeType":"YulFunctionCall","src":"15566:13:53"},"nativeSrc":"15547:275:53","nodeType":"YulForLoop","post":{"nativeSrc":"15580:18:53","nodeType":"YulBlock","src":"15580:18:53","statements":[{"nativeSrc":"15582:14:53","nodeType":"YulAssignment","src":"15582:14:53","value":{"arguments":[{"name":"i","nativeSrc":"15591:1:53","nodeType":"YulIdentifier","src":"15591:1:53"},{"kind":"number","nativeSrc":"15594:1:53","nodeType":"YulLiteral","src":"15594:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15587:3:53","nodeType":"YulIdentifier","src":"15587:3:53"},"nativeSrc":"15587:9:53","nodeType":"YulFunctionCall","src":"15587:9:53"},"variableNames":[{"name":"i","nativeSrc":"15582:1:53","nodeType":"YulIdentifier","src":"15582:1:53"}]}]},"pre":{"nativeSrc":"15551:14:53","nodeType":"YulBlock","src":"15551:14:53","statements":[{"nativeSrc":"15553:10:53","nodeType":"YulVariableDeclaration","src":"15553:10:53","value":{"kind":"number","nativeSrc":"15562:1:53","nodeType":"YulLiteral","src":"15562:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15557:1:53","nodeType":"YulTypedName","src":"15557:1:53","type":""}]}]},"src":"15547:275:53"},{"nativeSrc":"15831:10:53","nodeType":"YulAssignment","src":"15831:10:53","value":{"name":"pos","nativeSrc":"15838:3:53","nodeType":"YulIdentifier","src":"15838:3:53"},"variableNames":[{"name":"end","nativeSrc":"15831:3:53","nodeType":"YulIdentifier","src":"15831:3:53"}]}]},"name":"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"15139:708:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15236:5:53","nodeType":"YulTypedName","src":"15236:5:53","type":""},{"name":"pos","nativeSrc":"15243:3:53","nodeType":"YulTypedName","src":"15243:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15252:3:53","nodeType":"YulTypedName","src":"15252:3:53","type":""}],"src":"15139:708:53"},{"body":{"nativeSrc":"16073:402:53","nodeType":"YulBlock","src":"16073:402:53","statements":[{"nativeSrc":"16083:26:53","nodeType":"YulAssignment","src":"16083:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16095:9:53","nodeType":"YulIdentifier","src":"16095:9:53"},{"kind":"number","nativeSrc":"16106:2:53","nodeType":"YulLiteral","src":"16106:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16091:3:53","nodeType":"YulIdentifier","src":"16091:3:53"},"nativeSrc":"16091:18:53","nodeType":"YulFunctionCall","src":"16091:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16083:4:53","nodeType":"YulIdentifier","src":"16083:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16130:9:53","nodeType":"YulIdentifier","src":"16130:9:53"},{"kind":"number","nativeSrc":"16141:1:53","nodeType":"YulLiteral","src":"16141:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16126:3:53","nodeType":"YulIdentifier","src":"16126:3:53"},"nativeSrc":"16126:17:53","nodeType":"YulFunctionCall","src":"16126:17:53"},{"arguments":[{"name":"tail","nativeSrc":"16149:4:53","nodeType":"YulIdentifier","src":"16149:4:53"},{"name":"headStart","nativeSrc":"16155:9:53","nodeType":"YulIdentifier","src":"16155:9:53"}],"functionName":{"name":"sub","nativeSrc":"16145:3:53","nodeType":"YulIdentifier","src":"16145:3:53"},"nativeSrc":"16145:20:53","nodeType":"YulFunctionCall","src":"16145:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16119:6:53","nodeType":"YulIdentifier","src":"16119:6:53"},"nativeSrc":"16119:47:53","nodeType":"YulFunctionCall","src":"16119:47:53"},"nativeSrc":"16119:47:53","nodeType":"YulExpressionStatement","src":"16119:47:53"},{"nativeSrc":"16175:116:53","nodeType":"YulAssignment","src":"16175:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"16277:6:53","nodeType":"YulIdentifier","src":"16277:6:53"},{"name":"tail","nativeSrc":"16286:4:53","nodeType":"YulIdentifier","src":"16286:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"16183:93:53","nodeType":"YulIdentifier","src":"16183:93:53"},"nativeSrc":"16183:108:53","nodeType":"YulFunctionCall","src":"16183:108:53"},"variableNames":[{"name":"tail","nativeSrc":"16175:4:53","nodeType":"YulIdentifier","src":"16175:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16312:9:53","nodeType":"YulIdentifier","src":"16312:9:53"},{"kind":"number","nativeSrc":"16323:2:53","nodeType":"YulLiteral","src":"16323:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16308:3:53","nodeType":"YulIdentifier","src":"16308:3:53"},"nativeSrc":"16308:18:53","nodeType":"YulFunctionCall","src":"16308:18:53"},{"arguments":[{"name":"tail","nativeSrc":"16332:4:53","nodeType":"YulIdentifier","src":"16332:4:53"},{"name":"headStart","nativeSrc":"16338:9:53","nodeType":"YulIdentifier","src":"16338:9:53"}],"functionName":{"name":"sub","nativeSrc":"16328:3:53","nodeType":"YulIdentifier","src":"16328:3:53"},"nativeSrc":"16328:20:53","nodeType":"YulFunctionCall","src":"16328:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16301:6:53","nodeType":"YulIdentifier","src":"16301:6:53"},"nativeSrc":"16301:48:53","nodeType":"YulFunctionCall","src":"16301:48:53"},"nativeSrc":"16301:48:53","nodeType":"YulExpressionStatement","src":"16301:48:53"},{"nativeSrc":"16358:110:53","nodeType":"YulAssignment","src":"16358:110:53","value":{"arguments":[{"name":"value1","nativeSrc":"16454:6:53","nodeType":"YulIdentifier","src":"16454:6:53"},{"name":"tail","nativeSrc":"16463:4:53","nodeType":"YulIdentifier","src":"16463:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"16366:87:53","nodeType":"YulIdentifier","src":"16366:87:53"},"nativeSrc":"16366:102:53","nodeType":"YulFunctionCall","src":"16366:102:53"},"variableNames":[{"name":"tail","nativeSrc":"16358:4:53","nodeType":"YulIdentifier","src":"16358:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"15853:622:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16037:9:53","nodeType":"YulTypedName","src":"16037:9:53","type":""},{"name":"value1","nativeSrc":"16049:6:53","nodeType":"YulTypedName","src":"16049:6:53","type":""},{"name":"value0","nativeSrc":"16057:6:53","nodeType":"YulTypedName","src":"16057:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16068:4:53","nodeType":"YulTypedName","src":"16068:4:53","type":""}],"src":"15853:622:53"},{"body":{"nativeSrc":"16587:8:53","nodeType":"YulBlock","src":"16587:8:53","statements":[]},"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"16481:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16579:6:53","nodeType":"YulTypedName","src":"16579:6:53","type":""}],"src":"16481:114:53"},{"body":{"nativeSrc":"16746:217:53","nodeType":"YulBlock","src":"16746:217:53","statements":[{"nativeSrc":"16756:72:53","nodeType":"YulAssignment","src":"16756:72:53","value":{"arguments":[{"name":"pos","nativeSrc":"16821:3:53","nodeType":"YulIdentifier","src":"16821:3:53"},{"kind":"number","nativeSrc":"16826:1:53","nodeType":"YulLiteral","src":"16826:1:53","type":"","value":"0"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"16763:57:53","nodeType":"YulIdentifier","src":"16763:57:53"},"nativeSrc":"16763:65:53","nodeType":"YulFunctionCall","src":"16763:65:53"},"variableNames":[{"name":"pos","nativeSrc":"16756:3:53","nodeType":"YulIdentifier","src":"16756:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16926:3:53","nodeType":"YulIdentifier","src":"16926:3:53"}],"functionName":{"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"16837:88:53","nodeType":"YulIdentifier","src":"16837:88:53"},"nativeSrc":"16837:93:53","nodeType":"YulFunctionCall","src":"16837:93:53"},"nativeSrc":"16837:93:53","nodeType":"YulExpressionStatement","src":"16837:93:53"},{"nativeSrc":"16939:18:53","nodeType":"YulAssignment","src":"16939:18:53","value":{"arguments":[{"name":"pos","nativeSrc":"16950:3:53","nodeType":"YulIdentifier","src":"16950:3:53"},{"kind":"number","nativeSrc":"16955:1:53","nodeType":"YulLiteral","src":"16955:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16946:3:53","nodeType":"YulIdentifier","src":"16946:3:53"},"nativeSrc":"16946:11:53","nodeType":"YulFunctionCall","src":"16946:11:53"},"variableNames":[{"name":"end","nativeSrc":"16939:3:53","nodeType":"YulIdentifier","src":"16939:3:53"}]}]},"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16601:362:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16734:3:53","nodeType":"YulTypedName","src":"16734:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16742:3:53","nodeType":"YulTypedName","src":"16742:3:53","type":""}],"src":"16601:362:53"},{"body":{"nativeSrc":"17167:329:53","nodeType":"YulBlock","src":"17167:329:53","statements":[{"nativeSrc":"17177:26:53","nodeType":"YulAssignment","src":"17177:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17189:9:53","nodeType":"YulIdentifier","src":"17189:9:53"},{"kind":"number","nativeSrc":"17200:2:53","nodeType":"YulLiteral","src":"17200:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17185:3:53","nodeType":"YulIdentifier","src":"17185:3:53"},"nativeSrc":"17185:18:53","nodeType":"YulFunctionCall","src":"17185:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17177:4:53","nodeType":"YulIdentifier","src":"17177:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17257:6:53","nodeType":"YulIdentifier","src":"17257:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17270:9:53","nodeType":"YulIdentifier","src":"17270:9:53"},{"kind":"number","nativeSrc":"17281:1:53","nodeType":"YulLiteral","src":"17281:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17266:3:53","nodeType":"YulIdentifier","src":"17266:3:53"},"nativeSrc":"17266:17:53","nodeType":"YulFunctionCall","src":"17266:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17213:43:53","nodeType":"YulIdentifier","src":"17213:43:53"},"nativeSrc":"17213:71:53","nodeType":"YulFunctionCall","src":"17213:71:53"},"nativeSrc":"17213:71:53","nodeType":"YulExpressionStatement","src":"17213:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17305:9:53","nodeType":"YulIdentifier","src":"17305:9:53"},{"kind":"number","nativeSrc":"17316:2:53","nodeType":"YulLiteral","src":"17316:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17301:3:53","nodeType":"YulIdentifier","src":"17301:3:53"},"nativeSrc":"17301:18:53","nodeType":"YulFunctionCall","src":"17301:18:53"},{"arguments":[{"name":"tail","nativeSrc":"17325:4:53","nodeType":"YulIdentifier","src":"17325:4:53"},{"name":"headStart","nativeSrc":"17331:9:53","nodeType":"YulIdentifier","src":"17331:9:53"}],"functionName":{"name":"sub","nativeSrc":"17321:3:53","nodeType":"YulIdentifier","src":"17321:3:53"},"nativeSrc":"17321:20:53","nodeType":"YulFunctionCall","src":"17321:20:53"}],"functionName":{"name":"mstore","nativeSrc":"17294:6:53","nodeType":"YulIdentifier","src":"17294:6:53"},"nativeSrc":"17294:48:53","nodeType":"YulFunctionCall","src":"17294:48:53"},"nativeSrc":"17294:48:53","nodeType":"YulExpressionStatement","src":"17294:48:53"},{"nativeSrc":"17351:138:53","nodeType":"YulAssignment","src":"17351:138:53","value":{"arguments":[{"name":"tail","nativeSrc":"17484:4:53","nodeType":"YulIdentifier","src":"17484:4:53"}],"functionName":{"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17359:123:53","nodeType":"YulIdentifier","src":"17359:123:53"},"nativeSrc":"17359:130:53","nodeType":"YulFunctionCall","src":"17359:130:53"},"variableNames":[{"name":"tail","nativeSrc":"17351:4:53","nodeType":"YulIdentifier","src":"17351:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16969:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17139:9:53","nodeType":"YulTypedName","src":"17139:9:53","type":""},{"name":"value0","nativeSrc":"17151:6:53","nodeType":"YulTypedName","src":"17151:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17162:4:53","nodeType":"YulTypedName","src":"17162:4:53","type":""}],"src":"16969:527:53"},{"body":{"nativeSrc":"17542:76:53","nodeType":"YulBlock","src":"17542:76:53","statements":[{"body":{"nativeSrc":"17596:16:53","nodeType":"YulBlock","src":"17596:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17605:1:53","nodeType":"YulLiteral","src":"17605:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17608:1:53","nodeType":"YulLiteral","src":"17608:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17598:6:53","nodeType":"YulIdentifier","src":"17598:6:53"},"nativeSrc":"17598:12:53","nodeType":"YulFunctionCall","src":"17598:12:53"},"nativeSrc":"17598:12:53","nodeType":"YulExpressionStatement","src":"17598:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17565:5:53","nodeType":"YulIdentifier","src":"17565:5:53"},{"arguments":[{"name":"value","nativeSrc":"17587:5:53","nodeType":"YulIdentifier","src":"17587:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"17572:14:53","nodeType":"YulIdentifier","src":"17572:14:53"},"nativeSrc":"17572:21:53","nodeType":"YulFunctionCall","src":"17572:21:53"}],"functionName":{"name":"eq","nativeSrc":"17562:2:53","nodeType":"YulIdentifier","src":"17562:2:53"},"nativeSrc":"17562:32:53","nodeType":"YulFunctionCall","src":"17562:32:53"}],"functionName":{"name":"iszero","nativeSrc":"17555:6:53","nodeType":"YulIdentifier","src":"17555:6:53"},"nativeSrc":"17555:40:53","nodeType":"YulFunctionCall","src":"17555:40:53"},"nativeSrc":"17552:60:53","nodeType":"YulIf","src":"17552:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"17502:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17535:5:53","nodeType":"YulTypedName","src":"17535:5:53","type":""}],"src":"17502:116:53"},{"body":{"nativeSrc":"17684:77:53","nodeType":"YulBlock","src":"17684:77:53","statements":[{"nativeSrc":"17694:22:53","nodeType":"YulAssignment","src":"17694:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"17709:6:53","nodeType":"YulIdentifier","src":"17709:6:53"}],"functionName":{"name":"mload","nativeSrc":"17703:5:53","nodeType":"YulIdentifier","src":"17703:5:53"},"nativeSrc":"17703:13:53","nodeType":"YulFunctionCall","src":"17703:13:53"},"variableNames":[{"name":"value","nativeSrc":"17694:5:53","nodeType":"YulIdentifier","src":"17694:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17749:5:53","nodeType":"YulIdentifier","src":"17749:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"17725:23:53","nodeType":"YulIdentifier","src":"17725:23:53"},"nativeSrc":"17725:30:53","nodeType":"YulFunctionCall","src":"17725:30:53"},"nativeSrc":"17725:30:53","nodeType":"YulExpressionStatement","src":"17725:30:53"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17624:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17662:6:53","nodeType":"YulTypedName","src":"17662:6:53","type":""},{"name":"end","nativeSrc":"17670:3:53","nodeType":"YulTypedName","src":"17670:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17678:5:53","nodeType":"YulTypedName","src":"17678:5:53","type":""}],"src":"17624:137:53"},{"body":{"nativeSrc":"17841:271:53","nodeType":"YulBlock","src":"17841:271:53","statements":[{"body":{"nativeSrc":"17887:83:53","nodeType":"YulBlock","src":"17887:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17889:77:53","nodeType":"YulIdentifier","src":"17889:77:53"},"nativeSrc":"17889:79:53","nodeType":"YulFunctionCall","src":"17889:79:53"},"nativeSrc":"17889:79:53","nodeType":"YulExpressionStatement","src":"17889:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17862:7:53","nodeType":"YulIdentifier","src":"17862:7:53"},{"name":"headStart","nativeSrc":"17871:9:53","nodeType":"YulIdentifier","src":"17871:9:53"}],"functionName":{"name":"sub","nativeSrc":"17858:3:53","nodeType":"YulIdentifier","src":"17858:3:53"},"nativeSrc":"17858:23:53","nodeType":"YulFunctionCall","src":"17858:23:53"},{"kind":"number","nativeSrc":"17883:2:53","nodeType":"YulLiteral","src":"17883:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17854:3:53","nodeType":"YulIdentifier","src":"17854:3:53"},"nativeSrc":"17854:32:53","nodeType":"YulFunctionCall","src":"17854:32:53"},"nativeSrc":"17851:119:53","nodeType":"YulIf","src":"17851:119:53"},{"nativeSrc":"17980:125:53","nodeType":"YulBlock","src":"17980:125:53","statements":[{"nativeSrc":"17995:15:53","nodeType":"YulVariableDeclaration","src":"17995:15:53","value":{"kind":"number","nativeSrc":"18009:1:53","nodeType":"YulLiteral","src":"18009:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17999:6:53","nodeType":"YulTypedName","src":"17999:6:53","type":""}]},{"nativeSrc":"18024:71:53","nodeType":"YulAssignment","src":"18024:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18067:9:53","nodeType":"YulIdentifier","src":"18067:9:53"},{"name":"offset","nativeSrc":"18078:6:53","nodeType":"YulIdentifier","src":"18078:6:53"}],"functionName":{"name":"add","nativeSrc":"18063:3:53","nodeType":"YulIdentifier","src":"18063:3:53"},"nativeSrc":"18063:22:53","nodeType":"YulFunctionCall","src":"18063:22:53"},{"name":"dataEnd","nativeSrc":"18087:7:53","nodeType":"YulIdentifier","src":"18087:7:53"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18034:28:53","nodeType":"YulIdentifier","src":"18034:28:53"},"nativeSrc":"18034:61:53","nodeType":"YulFunctionCall","src":"18034:61:53"},"variableNames":[{"name":"value0","nativeSrc":"18024:6:53","nodeType":"YulIdentifier","src":"18024:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"17767:345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17811:9:53","nodeType":"YulTypedName","src":"17811:9:53","type":""},{"name":"dataEnd","nativeSrc":"17822:7:53","nodeType":"YulTypedName","src":"17822:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17834:6:53","nodeType":"YulTypedName","src":"17834:6:53","type":""}],"src":"17767:345:53"},{"body":{"nativeSrc":"18146:152:53","nodeType":"YulBlock","src":"18146:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18163:1:53","nodeType":"YulLiteral","src":"18163:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18166:77:53","nodeType":"YulLiteral","src":"18166:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18156:6:53","nodeType":"YulIdentifier","src":"18156:6:53"},"nativeSrc":"18156:88:53","nodeType":"YulFunctionCall","src":"18156:88:53"},"nativeSrc":"18156:88:53","nodeType":"YulExpressionStatement","src":"18156:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18260:1:53","nodeType":"YulLiteral","src":"18260:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"18263:4:53","nodeType":"YulLiteral","src":"18263:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"18253:6:53","nodeType":"YulIdentifier","src":"18253:6:53"},"nativeSrc":"18253:15:53","nodeType":"YulFunctionCall","src":"18253:15:53"},"nativeSrc":"18253:15:53","nodeType":"YulExpressionStatement","src":"18253:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18284:1:53","nodeType":"YulLiteral","src":"18284:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18287:4:53","nodeType":"YulLiteral","src":"18287:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18277:6:53","nodeType":"YulIdentifier","src":"18277:6:53"},"nativeSrc":"18277:15:53","nodeType":"YulFunctionCall","src":"18277:15:53"},"nativeSrc":"18277:15:53","nodeType":"YulExpressionStatement","src":"18277:15:53"}]},"name":"panic_error_0x32","nativeSrc":"18118:180:53","nodeType":"YulFunctionDefinition","src":"18118:180:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_SimpleAllowList_$13307_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_SimpleAllowList_$13307_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_SimpleAllowList_$13307__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_SimpleAllowList_$13307_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_SimpleAllowList_$13307(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_SimpleAllowList_$13307(value) {\n if iszero(eq(value, cleanup_t_contract$_SimpleAllowList_$13307(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_SimpleAllowList_$13307(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_SimpleAllowList_$13307(value)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct AllowListIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$15428_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // allowList\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_SimpleAllowList_$13307(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$15428_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$15428_memory_ptr(add(headStart, offset), dataEnd)\n }\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$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_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$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_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function array_length_t_array$_t_bool_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bool_$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_bool_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bool_to_t_bool(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encodeUpdatedPos_t_bool_to_t_bool(value0, pos) -> updatedPos {\n abi_encode_t_bool_to_t_bool(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bool_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bool[] -> bool[]\n function abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bool_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bool_$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_bool_to_t_bool(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bool_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$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_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack( tail)\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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100fd575f3560e01c8063a4d66daf11610094578063e18e650811610063578063e18e6508146102df578063f04e283e1461031b578063f1c30ec014610337578063f2fde38b14610373578063fee81cf41461038f576100fd565b8063a4d66daf14610213578063c63ff8dd1461023d578063c884ef8314610279578063dcc59b6f146102b5576100fd565b806354d1f13d116100d057806354d1f13d146101ab578063715018a6146101b557806387b9d25c146101bf5780638da5cb5b146101e9576100fd565b806301ffc9a714610101578063256929621461013d578063439fab91146101475780634e7165a21461016f575b5f80fd5b34801561010c575f80fd5b5061012760048036038101906101229190610e8d565b6103cb565b6040516101349190610ed2565b60405180910390f35b610145610444565b005b348015610152575f80fd5b5061016d60048036038101906101689190610f4c565b610495565b005b34801561017a575f80fd5b5061019560048036038101906101909190610f4c565b610575565b6040516101a29190611007565b60405180910390f35b6101b36105cc565b005b6101bd610605565b005b3480156101ca575f80fd5b506101d3610618565b6040516101e091906110a1565b60405180910390f35b3480156101f4575f80fd5b506101fd61063d565b60405161020a91906110da565b60405180910390f35b34801561021e575f80fd5b50610227610665565b604051610234919061110b565b60405180910390f35b348015610248575f80fd5b50610263600480360381019061025e9190610f4c565b61066b565b6040516102709190610ed2565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a919061114e565b61082a565b6040516102ac9190610ed2565b60405180910390f35b3480156102c0575f80fd5b506102c9610847565b6040516102d6919061110b565b60405180910390f35b3480156102ea575f80fd5b5061030560048036038101906103009190610f4c565b61084c565b6040516103129190610ed2565b60405180910390f35b6103356004803603810190610330919061114e565b610969565b005b348015610342575f80fd5b5061035d60048036038101906103589190610f4c565b6109a7565b60405161036a9190610ed2565b60405180910390f35b61038d6004803603810190610388919061114e565b6109da565b005b34801561039a575f80fd5b506103b560048036038101906103b0919061114e565b610a03565b6040516103c2919061110b565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043d575061043c82610a1c565b5b9050919050565b5f61044d610a95565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61049e610a9f565b905080546003825580156104d05760018160011c14303b106104c75763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104e191906112ab565b90506104ec33610ac8565b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600381905550508015610570576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156105915761059061117d565b5b6040519080825280601f01601f1916602001820160405280156105c35781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61060d610b9e565b6106165f610bd5565b565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b5f610674610b9e565b5f838381019061068491906113ef565b90506003545f8081548092919061069a90611463565b919050551015806106f4575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561072b576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f80610790835f0151610c9b565b9150915060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b81526004016107f0929190611618565b5f604051808303815f87803b158015610807575f80fd5b505af1158015610819573d5f803e3d5ffd5b505050506001935050505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f80838381019061085d91906113ef565b90506003545f541080156108bb575060015f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610960575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de825f01516040518263ffffffff1660e01b815260040161091f9190611670565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e91906116c6565b155b91505092915050565b610971610b9e565b63389a75e1600c52805f526020600c20805442111561099757636f5e88185f526004601cfd5b5f8155506109a481610bd5565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109e2610b9e565b8060601b6109f757637448fbae5f526004601cfd5b610a0081610bd5565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a8e5750610a8d82610dba565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610ad0610e23565b15610b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b0a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610b9b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610bd3576382b429005f526004601cfd5b565b610bdd610e23565b15610c42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610c98565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610cba57610cb961117d565b5b604051908082528060200260200182016040528015610ce85781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610d0757610d0661117d565b5b604051908082528060200260200182016040528015610d355781602001602082028036833780820191505090505b50905084825f81518110610d4c57610d4b6116f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610d9b57610d9a6116f1565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6c81610e38565b8114610e76575f80fd5b50565b5f81359050610e8781610e63565b92915050565b5f60208284031215610ea257610ea1610e30565b5b5f610eaf84828501610e79565b91505092915050565b5f8115159050919050565b610ecc81610eb8565b82525050565b5f602082019050610ee55f830184610ec3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f0c57610f0b610eeb565b5b8235905067ffffffffffffffff811115610f2957610f28610eef565b5b602083019150836001820283011115610f4557610f44610ef3565b5b9250929050565b5f8060208385031215610f6257610f61610e30565b5b5f83013567ffffffffffffffff811115610f7f57610f7e610e34565b5b610f8b85828601610ef7565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fd982610f97565b610fe38185610fa1565b9350610ff3818560208601610fb1565b610ffc81610fbf565b840191505092915050565b5f6020820190508181035f83015261101f8184610fcf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61106961106461105f84611027565b611046565b611027565b9050919050565b5f61107a8261104f565b9050919050565b5f61108b82611070565b9050919050565b61109b81611081565b82525050565b5f6020820190506110b45f830184611092565b92915050565b5f6110c482611027565b9050919050565b6110d4816110ba565b82525050565b5f6020820190506110ed5f8301846110cb565b92915050565b5f819050919050565b611105816110f3565b82525050565b5f60208201905061111e5f8301846110fc565b92915050565b61112d816110ba565b8114611137575f80fd5b50565b5f8135905061114881611124565b92915050565b5f6020828403121561116357611162610e30565b5b5f6111708482850161113a565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111b382610fbf565b810181811067ffffffffffffffff821117156111d2576111d161117d565b5b80604052505050565b5f6111e4610e27565b90506111f082826111aa565b919050565b5f80fd5b5f611203826110ba565b9050919050565b611213816111f9565b811461121d575f80fd5b50565b5f8135905061122e8161120a565b92915050565b61123d816110f3565b8114611247575f80fd5b50565b5f8135905061125881611234565b92915050565b5f6040828403121561127357611272611179565b5b61127d60406111db565b90505f61128c84828501611220565b5f83015250602061129f8482850161124a565b60208301525092915050565b5f604082840312156112c0576112bf610e30565b5b5f6112cd8482850161125e565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112f4576112f361117d565b5b6112fd82610fbf565b9050602081019050919050565b828183375f83830152505050565b5f61132a611325846112da565b6111db565b905082815260208101848484011115611346576113456112d6565b5b61135184828561130a565b509392505050565b5f82601f83011261136d5761136c610eeb565b5b813561137d848260208601611318565b91505092915050565b5f6040828403121561139b5761139a611179565b5b6113a560406111db565b90505f6113b48482850161113a565b5f83015250602082013567ffffffffffffffff8111156113d7576113d66111f5565b5b6113e384828501611359565b60208301525092915050565b5f6020828403121561140457611403610e30565b5b5f82013567ffffffffffffffff81111561142157611420610e34565b5b61142d84828501611386565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61146d826110f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361149f5761149e611436565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114dc816110ba565b82525050565b5f6114ed83836114d3565b60208301905092915050565b5f602082019050919050565b5f61150f826114aa565b61151981856114b4565b9350611524836114c4565b805f5b8381101561155457815161153b88826114e2565b9750611546836114f9565b925050600181019050611527565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61159381610eb8565b82525050565b5f6115a4838361158a565b60208301905092915050565b5f602082019050919050565b5f6115c682611561565b6115d0818561156b565b93506115db8361157b565b805f5b8381101561160b5781516115f28882611599565b97506115fd836115b0565b9250506001810190506115de565b5085935050505092915050565b5f6040820190508181035f8301526116308185611505565b9050818103602083015261164481846115bc565b90509392505050565b50565b5f61165b5f83610fa1565b91506116668261164d565b5f82019050919050565b5f6040820190506116835f8301846110cb565b818103602083015261169481611650565b905092915050565b6116a581610eb8565b81146116af575f80fd5b50565b5f815190506116c08161169c565b92915050565b5f602082840312156116db576116da610e30565b5b5f6116e8848285016116b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122083d54774cb29726df516d619eb145b34471849b496d1f77c14ec02f035cc0aab64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xFD JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x94 JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x31B JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x38F JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2B5 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x87B9D25C EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E9 JUMPI PUSH2 0xFD JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x16F JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0xE8D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH2 0x444 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x495 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x575 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B3 PUSH2 0x5CC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BD PUSH2 0x605 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x618 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x10A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FD PUSH2 0x63D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x10DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x665 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x263 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x66B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x270 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x284 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x29F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29A SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AC SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x305 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x300 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x84C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x312 SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x969 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x35D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x358 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36A SWAP2 SWAP1 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x388 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x114E JUMP JUMPDEST PUSH2 0xA03 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x110B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43D JUMPI POP PUSH2 0x43C DUP3 PUSH2 0xA1C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x44D PUSH2 0xA95 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x49E PUSH2 0xA9F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4C7 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4E1 SWAP2 SWAP1 PUSH2 0x12AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4EC CALLER PUSH2 0xAC8 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x591 JUMPI PUSH2 0x590 PUSH2 0x117D 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 0x5C3 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x60D PUSH2 0xB9E JUMP JUMPDEST PUSH2 0x616 PUSH0 PUSH2 0xBD5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x674 PUSH2 0xB9E JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x684 SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x69A SWAP1 PUSH2 0x1463 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE LT ISZERO DUP1 PUSH2 0x6F4 JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x72B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP1 PUSH2 0x790 DUP4 PUSH0 ADD MLOAD PUSH2 0xC9B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3ABB0604 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F0 SWAP3 SWAP2 SWAP1 PUSH2 0x1618 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x807 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x819 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x85D SWAP2 SWAP1 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT DUP1 ISZERO PUSH2 0x8BB JUMPI POP PUSH1 0x1 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x960 JUMPI POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3F756DE DUP3 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91F SWAP2 SWAP1 PUSH2 0x1670 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x95E SWAP2 SWAP1 PUSH2 0x16C6 JUMP JUMPDEST ISZERO JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x971 PUSH2 0xB9E JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x997 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x9A4 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9E2 PUSH2 0xB9E JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x9F7 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xA00 DUP2 PUSH2 0xBD5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xA8E JUMPI POP PUSH2 0xA8D DUP3 PUSH2 0xDBA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD0 PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xB48 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xB0A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xB9B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xBD3 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xBDD PUSH2 0xE23 JUMP JUMPDEST ISZERO PUSH2 0xC42 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xC98 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCBA JUMPI PUSH2 0xCB9 PUSH2 0x117D 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 0xCE8 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 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0x117D 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 0xD35 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 DUP5 DUP3 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD4C JUMPI PUSH2 0xD4B PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x1 DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xD9B JUMPI PUSH2 0xD9A PUSH2 0x16F1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE38 JUMP JUMPDEST DUP2 EQ PUSH2 0xE76 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE87 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA2 JUMPI PUSH2 0xEA1 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEAF DUP5 DUP3 DUP6 ADD PUSH2 0xE79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xECC DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE5 PUSH0 DUP4 ADD DUP5 PUSH2 0xEC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF0C JUMPI PUSH2 0xF0B PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF29 JUMPI PUSH2 0xF28 PUSH2 0xEEF JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0xEF3 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF7F JUMPI PUSH2 0xF7E PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0xF8B DUP6 DUP3 DUP7 ADD PUSH2 0xEF7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFD9 DUP3 PUSH2 0xF97 JUMP JUMPDEST PUSH2 0xFE3 DUP2 DUP6 PUSH2 0xFA1 JUMP JUMPDEST SWAP4 POP PUSH2 0xFF3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFB1 JUMP JUMPDEST PUSH2 0xFFC DUP2 PUSH2 0xFBF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x101F DUP2 DUP5 PUSH2 0xFCF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1069 PUSH2 0x1064 PUSH2 0x105F DUP5 PUSH2 0x1027 JUMP JUMPDEST PUSH2 0x1046 JUMP JUMPDEST PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x107A DUP3 PUSH2 0x104F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108B DUP3 PUSH2 0x1070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x109B DUP2 PUSH2 0x1081 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1092 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10C4 DUP3 PUSH2 0x1027 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10D4 DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10ED PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1105 DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x111E PUSH0 DUP4 ADD DUP5 PUSH2 0x10FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x112D DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP2 EQ PUSH2 0x1137 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1148 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1163 JUMPI PUSH2 0x1162 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1170 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11B3 DUP3 PUSH2 0xFBF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11D2 JUMPI PUSH2 0x11D1 PUSH2 0x117D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11E4 PUSH2 0xE27 JUMP JUMPDEST SWAP1 POP PUSH2 0x11F0 DUP3 DUP3 PUSH2 0x11AA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1203 DUP3 PUSH2 0x10BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1213 DUP2 PUSH2 0x11F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x121D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x122E DUP2 PUSH2 0x120A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x123D DUP2 PUSH2 0x10F3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1247 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1258 DUP2 PUSH2 0x1234 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1273 JUMPI PUSH2 0x1272 PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x127D PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x128C DUP5 DUP3 DUP6 ADD PUSH2 0x1220 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x129F DUP5 DUP3 DUP6 ADD PUSH2 0x124A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12C0 JUMPI PUSH2 0x12BF PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CD DUP5 DUP3 DUP6 ADD PUSH2 0x125E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12F4 JUMPI PUSH2 0x12F3 PUSH2 0x117D JUMP JUMPDEST JUMPDEST PUSH2 0x12FD DUP3 PUSH2 0xFBF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x132A PUSH2 0x1325 DUP5 PUSH2 0x12DA JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1346 JUMPI PUSH2 0x1345 PUSH2 0x12D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1351 DUP5 DUP3 DUP6 PUSH2 0x130A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x136D JUMPI PUSH2 0x136C PUSH2 0xEEB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x137D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1318 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x139B JUMPI PUSH2 0x139A PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH2 0x13A5 PUSH1 0x40 PUSH2 0x11DB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x13B4 DUP5 DUP3 DUP6 ADD PUSH2 0x113A JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13D7 JUMPI PUSH2 0x13D6 PUSH2 0x11F5 JUMP JUMPDEST JUMPDEST PUSH2 0x13E3 DUP5 DUP3 DUP6 ADD PUSH2 0x1359 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1404 JUMPI PUSH2 0x1403 PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1421 JUMPI PUSH2 0x1420 PUSH2 0xE34 JUMP JUMPDEST JUMPDEST PUSH2 0x142D DUP5 DUP3 DUP6 ADD PUSH2 0x1386 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x146D DUP3 PUSH2 0x10F3 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x149F JUMPI PUSH2 0x149E PUSH2 0x1436 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14DC DUP2 PUSH2 0x10BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14ED DUP4 DUP4 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x150F DUP3 PUSH2 0x14AA JUMP JUMPDEST PUSH2 0x1519 DUP2 DUP6 PUSH2 0x14B4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1524 DUP4 PUSH2 0x14C4 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1554 JUMPI DUP2 MLOAD PUSH2 0x153B DUP9 DUP3 PUSH2 0x14E2 JUMP JUMPDEST SWAP8 POP PUSH2 0x1546 DUP4 PUSH2 0x14F9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1527 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1593 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x158A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x15C6 DUP3 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x15D0 DUP2 DUP6 PUSH2 0x156B JUMP JUMPDEST SWAP4 POP PUSH2 0x15DB DUP4 PUSH2 0x157B JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x160B JUMPI DUP2 MLOAD PUSH2 0x15F2 DUP9 DUP3 PUSH2 0x1599 JUMP JUMPDEST SWAP8 POP PUSH2 0x15FD DUP4 PUSH2 0x15B0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x15DE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1630 DUP2 DUP6 PUSH2 0x1505 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1644 DUP2 DUP5 PUSH2 0x15BC JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x165B PUSH0 DUP4 PUSH2 0xFA1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1666 DUP3 PUSH2 0x164D JUMP JUMPDEST PUSH0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1683 PUSH0 DUP4 ADD DUP5 PUSH2 0x10CB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1694 DUP2 PUSH2 0x1650 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16A5 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0x16AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x16C0 DUP2 PUSH2 0x169C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DB JUMPI PUSH2 0x16DA PUSH2 0xE30 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16E8 DUP5 DUP3 DUP6 ADD PUSH2 0x16B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD5 SELFBALANCE PUSH21 0xCB29726DF516D619EB145B34471849B496D1F77C14 0xEC MUL CREATE CALLDATALOAD 0xCC EXP 0xAB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"646:2945:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1511:250:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2989:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;895:32:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1014:20:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1887:451;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2594:269:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2436:122:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1511:250:40:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1591:24:40::1;1629:5;;1618:32;;;;;;;:::i;:::-;1591:59;;1660:28;1677:10;1660:16;:28::i;:::-;1710:5;:15;;;1698:9;;:27;;;;;;;;;;;;;;;;;;1743:5;:11;;;1735:5;:19;;;;1581:180;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1511:250:40;;:::o;2989:117::-;3056:12;3097:1;3087:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3080:19;;2989:117;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;895:32:40:-;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1014:20:40:-;;;;:::o;1887:451::-;1969:4;12517:13:17;:11;:13::i;:::-;1985:26:40::1;2025:5;;2014:33;;;;;;;:::i;:::-;1985:62;;2073:5;;2061:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;:17;;:43;;;;2082:7;:22;2090:6;:13;;;2082:22;;;;;;;;;;;;;;;;;;;;;;;;;2061:43;2057:70;;;2113:14;;;;;;;;;;;;;;2057:70;2162:4;2137:7:::0;:22:::1;2145:6;:13;;;2137:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2178:22;2202:21:::0;2227:36:::1;2249:6;:13;;;2227:21;:36::i;:::-;2177:86;;;;2274:9;;;;;;;;;;;:20;;;2295:5;2302:7;2274:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2327:4;2320:11;;;;;1887:451:::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;2594:269:40:-;2677:4;2693:26;2733:5;;2722:33;;;;;;;:::i;:::-;2693:62;;2781:5;;2772:6;;:14;:41;;;;;2791:7;:22;2799:6;:13;;;2791:22;;;;;;;;;;;;;;;;;;;;;;;;;2790:23;2772:41;:84;;;;;2818:9;;;;;;;;;;;:19;;;2838:6;:13;;;2818:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2817:39;2772:84;2765:91;;;2594:269;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2436:122:40:-;2501:4;2524:27;;;;;;;;;;;;;;8348:349:17;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;3292:297:40:-;3363:16;3381:13;3406:22;3445:1;3431:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3406:41;;3457:21;3492:1;3481:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3457:37;;3515:7;3504:5;3510:1;3504:8;;;;;;;;:::i;:::-;;;;;;;:18;;;;;;;;;;;3545:4;3532:7;3540:1;3532:10;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;;;3567:5;3574:7;3559:23;;;;;;3292:297;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:309::-;4012:4;4050:2;4039:9;4035:18;4027:26;;4099:9;4093:4;4089:20;4085:1;4074:9;4070:17;4063:47;4127:76;4198:4;4189:6;4127:76;:::i;:::-;4119:84;;3901:309;;;;:::o;4216:126::-;4253:7;4293:42;4286:5;4282:54;4271:65;;4216:126;;;:::o;4348:60::-;4376:3;4397:5;4390:12;;4348:60;;;:::o;4414:142::-;4464:9;4497:53;4515:34;4524:24;4542:5;4524:24;:::i;:::-;4515:34;:::i;:::-;4497:53;:::i;:::-;4484:66;;4414:142;;;:::o;4562:126::-;4612:9;4645:37;4676:5;4645:37;:::i;:::-;4632:50;;4562:126;;;:::o;4694:151::-;4769:9;4802:37;4833:5;4802:37;:::i;:::-;4789:50;;4694:151;;;:::o;4851:181::-;4963:62;5019:5;4963:62;:::i;:::-;4958:3;4951:75;4851:181;;:::o;5038:272::-;5156:4;5194:2;5183:9;5179:18;5171:26;;5207:96;5300:1;5289:9;5285:17;5276:6;5207:96;:::i;:::-;5038:272;;;;:::o;5316:96::-;5353:7;5382:24;5400:5;5382:24;:::i;:::-;5371:35;;5316:96;;;:::o;5418:118::-;5505:24;5523:5;5505:24;:::i;:::-;5500:3;5493:37;5418:118;;:::o;5542:222::-;5635:4;5673:2;5662:9;5658:18;5650:26;;5686:71;5754:1;5743:9;5739:17;5730:6;5686:71;:::i;:::-;5542:222;;;;:::o;5770:77::-;5807:7;5836:5;5825:16;;5770:77;;;:::o;5853:118::-;5940:24;5958:5;5940:24;:::i;:::-;5935:3;5928:37;5853:118;;:::o;5977:222::-;6070:4;6108:2;6097:9;6093:18;6085:26;;6121:71;6189:1;6178:9;6174:17;6165:6;6121:71;:::i;:::-;5977:222;;;;:::o;6205:122::-;6278:24;6296:5;6278:24;:::i;:::-;6271:5;6268:35;6258:63;;6317:1;6314;6307:12;6258:63;6205:122;:::o;6333:139::-;6379:5;6417:6;6404:20;6395:29;;6433:33;6460:5;6433:33;:::i;:::-;6333:139;;;;:::o;6478:329::-;6537:6;6586:2;6574:9;6565:7;6561:23;6557:32;6554:119;;;6592:79;;:::i;:::-;6554:119;6712:1;6737:53;6782:7;6773:6;6762:9;6758:22;6737:53;:::i;:::-;6727:63;;6683:117;6478:329;;;;:::o;6813:117::-;6922:1;6919;6912:12;6936:180;6984:77;6981:1;6974:88;7081:4;7078:1;7071:15;7105:4;7102:1;7095:15;7122:281;7205:27;7227:4;7205:27;:::i;:::-;7197:6;7193:40;7335:6;7323:10;7320:22;7299:18;7287:10;7284:34;7281:62;7278:88;;;7346:18;;:::i;:::-;7278:88;7386:10;7382:2;7375:22;7165:238;7122:281;;:::o;7409:129::-;7443:6;7470:20;;:::i;:::-;7460:30;;7499:33;7527:4;7519:6;7499:33;:::i;:::-;7409:129;;;:::o;7544:117::-;7653:1;7650;7643:12;7667:121;7729:7;7758:24;7776:5;7758:24;:::i;:::-;7747:35;;7667:121;;;:::o;7794:172::-;7892:49;7935:5;7892:49;:::i;:::-;7885:5;7882:60;7872:88;;7956:1;7953;7946:12;7872:88;7794:172;:::o;7972:189::-;8043:5;8081:6;8068:20;8059:29;;8097:58;8149:5;8097:58;:::i;:::-;7972:189;;;;:::o;8167:122::-;8240:24;8258:5;8240:24;:::i;:::-;8233:5;8230:35;8220:63;;8279:1;8276;8269:12;8220:63;8167:122;:::o;8295:139::-;8341:5;8379:6;8366:20;8357:29;;8395:33;8422:5;8395:33;:::i;:::-;8295:139;;;;:::o;8485:610::-;8564:5;8608:4;8596:9;8591:3;8587:19;8583:30;8580:117;;;8616:79;;:::i;:::-;8580:117;8715:21;8731:4;8715:21;:::i;:::-;8706:30;;8800:1;8840:74;8910:3;8901:6;8890:9;8886:22;8840:74;:::i;:::-;8833:4;8826:5;8822:16;8815:100;8746:180;8986:2;9027:49;9072:3;9063:6;9052:9;9048:22;9027:49;:::i;:::-;9020:4;9013:5;9009:16;9002:75;8936:152;8485:610;;;;:::o;9101:389::-;9190:6;9239:2;9227:9;9218:7;9214:23;9210:32;9207:119;;;9245:79;;:::i;:::-;9207:119;9365:1;9390:83;9465:7;9456:6;9445:9;9441:22;9390:83;:::i;:::-;9380:93;;9336:147;9101:389;;;;:::o;9496:117::-;9605:1;9602;9595:12;9619:307;9680:4;9770:18;9762:6;9759:30;9756:56;;;9792:18;;:::i;:::-;9756:56;9830:29;9852:6;9830:29;:::i;:::-;9822:37;;9914:4;9908;9904:15;9896:23;;9619:307;;;:::o;9932:148::-;10030:6;10025:3;10020;10007:30;10071:1;10062:6;10057:3;10053:16;10046:27;9932:148;;;:::o;10086:423::-;10163:5;10188:65;10204:48;10245:6;10204:48;:::i;:::-;10188:65;:::i;:::-;10179:74;;10276:6;10269:5;10262:21;10314:4;10307:5;10303:16;10352:3;10343:6;10338:3;10334:16;10331:25;10328:112;;;10359:79;;:::i;:::-;10328:112;10449:54;10496:6;10491:3;10486;10449:54;:::i;:::-;10169:340;10086:423;;;;;:::o;10528:338::-;10583:5;10632:3;10625:4;10617:6;10613:17;10609:27;10599:122;;10640:79;;:::i;:::-;10599:122;10757:6;10744:20;10782:78;10856:3;10848:6;10841:4;10833:6;10829:17;10782:78;:::i;:::-;10773:87;;10589:277;10528:338;;;;:::o;10909:751::-;10989:5;11033:4;11021:9;11016:3;11012:19;11008:30;11005:117;;;11041:79;;:::i;:::-;11005:117;11140:21;11156:4;11140:21;:::i;:::-;11131:30;;11222:1;11262:49;11307:3;11298:6;11287:9;11283:22;11262:49;:::i;:::-;11255:4;11248:5;11244:16;11237:75;11171:152;11410:2;11399:9;11395:18;11382:32;11441:18;11433:6;11430:30;11427:117;;;11463:79;;:::i;:::-;11427:117;11583:58;11637:3;11628:6;11617:9;11613:22;11583:58;:::i;:::-;11576:4;11569:5;11565:16;11558:84;11333:320;10909:751;;;;:::o;11666:551::-;11756:6;11805:2;11793:9;11784:7;11780:23;11776:32;11773:119;;;11811:79;;:::i;:::-;11773:119;11959:1;11948:9;11944:17;11931:31;11989:18;11981:6;11978:30;11975:117;;;12011:79;;:::i;:::-;11975:117;12116:84;12192:7;12183:6;12172:9;12168:22;12116:84;:::i;:::-;12106:94;;11902:308;11666:551;;;;:::o;12223:180::-;12271:77;12268:1;12261:88;12368:4;12365:1;12358:15;12392:4;12389:1;12382:15;12409:233;12448:3;12471:24;12489:5;12471:24;:::i;:::-;12462:33;;12517:66;12510:5;12507:77;12504:103;;12587:18;;:::i;:::-;12504:103;12634:1;12627:5;12623:13;12616:20;;12409:233;;;:::o;12648:114::-;12715:6;12749:5;12743:12;12733:22;;12648:114;;;:::o;12768:184::-;12867:11;12901:6;12896:3;12889:19;12941:4;12936:3;12932:14;12917:29;;12768:184;;;;:::o;12958:132::-;13025:4;13048:3;13040:11;;13078:4;13073:3;13069:14;13061:22;;12958:132;;;:::o;13096:108::-;13173:24;13191:5;13173:24;:::i;:::-;13168:3;13161:37;13096:108;;:::o;13210:179::-;13279:10;13300:46;13342:3;13334:6;13300:46;:::i;:::-;13378:4;13373:3;13369:14;13355:28;;13210:179;;;;:::o;13395:113::-;13465:4;13497;13492:3;13488:14;13480:22;;13395:113;;;:::o;13544:732::-;13663:3;13692:54;13740:5;13692:54;:::i;:::-;13762:86;13841:6;13836:3;13762:86;:::i;:::-;13755:93;;13872:56;13922:5;13872:56;:::i;:::-;13951:7;13982:1;13967:284;13992:6;13989:1;13986:13;13967:284;;;14068:6;14062:13;14095:63;14154:3;14139:13;14095:63;:::i;:::-;14088:70;;14181:60;14234:6;14181:60;:::i;:::-;14171:70;;14027:224;14014:1;14011;14007:9;14002:14;;13967:284;;;13971:14;14267:3;14260:10;;13668:608;;;13544:732;;;;:::o;14282:111::-;14346:6;14380:5;14374:12;14364:22;;14282:111;;;:::o;14399:181::-;14495:11;14529:6;14524:3;14517:19;14569:4;14564:3;14560:14;14545:29;;14399:181;;;;:::o;14586:129::-;14650:4;14673:3;14665:11;;14703:4;14698:3;14694:14;14686:22;;14586:129;;;:::o;14721:99::-;14792:21;14807:5;14792:21;:::i;:::-;14787:3;14780:34;14721:99;;:::o;14826:167::-;14889:10;14910:40;14946:3;14938:6;14910:40;:::i;:::-;14982:4;14977:3;14973:14;14959:28;;14826:167;;;;:::o;14999:110::-;15066:4;15098;15093:3;15089:14;15081:22;;14999:110;;;:::o;15139:708::-;15252:3;15281:51;15326:5;15281:51;:::i;:::-;15348:83;15424:6;15419:3;15348:83;:::i;:::-;15341:90;;15455:53;15502:5;15455:53;:::i;:::-;15531:7;15562:1;15547:275;15572:6;15569:1;15566:13;15547:275;;;15648:6;15642:13;15675:57;15728:3;15713:13;15675:57;:::i;:::-;15668:64;;15755:57;15805:6;15755:57;:::i;:::-;15745:67;;15607:215;15594:1;15591;15587:9;15582:14;;15547:275;;;15551:14;15838:3;15831:10;;15257:590;;;15139:708;;;;:::o;15853:622::-;16068:4;16106:2;16095:9;16091:18;16083:26;;16155:9;16149:4;16145:20;16141:1;16130:9;16126:17;16119:47;16183:108;16286:4;16277:6;16183:108;:::i;:::-;16175:116;;16338:9;16332:4;16328:20;16323:2;16312:9;16308:18;16301:48;16366:102;16463:4;16454:6;16366:102;:::i;:::-;16358:110;;15853:622;;;;;:::o;16481:114::-;;:::o;16601:362::-;16742:3;16763:65;16826:1;16821:3;16763:65;:::i;:::-;16756:72;;16837:93;16926:3;16837:93;:::i;:::-;16955:1;16950:3;16946:11;16939:18;;16601:362;;;:::o;16969:527::-;17162:4;17200:2;17189:9;17185:18;17177:26;;17213:71;17281:1;17270:9;17266:17;17257:6;17213:71;:::i;:::-;17331:9;17325:4;17321:20;17316:2;17305:9;17301:18;17294:48;17359:130;17484:4;17359:130;:::i;:::-;17351:138;;16969:527;;;;:::o;17502:116::-;17572:21;17587:5;17572:21;:::i;:::-;17565:5;17562:32;17552:60;;17608:1;17605;17598:12;17552:60;17502:116;:::o;17624:137::-;17678:5;17709:6;17703:13;17694:22;;17725:30;17749:5;17725:30;:::i;:::-;17624:137;;;;:::o;17767:345::-;17834:6;17883:2;17871:9;17862:7;17858:23;17854:32;17851:119;;;17889:79;;:::i;:::-;17851:119;18009:1;18034:61;18087:7;18078:6;18067:9;18063:22;18034:61;:::i;:::-;18024:71;;17980:125;17767:345;;;;:::o;18118:180::-;18166:77;18163:1;18156:88;18263:4;18260:1;18253:15;18287:4;18284:1;18277:15"},"methodIdentifiers":{"allowList()":"87b9d25c","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowList\",\"outputs\":[{\"internalType\":\"contract SimpleAllowList\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not already be on the allow list; and - The maximum number of claims must not have been reached; and - This contract must be authorized to modify the allow list\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The claim data\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The packed initialization data `(SimpleAllowList allowList, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"No preflight approval is required for this incentive (no tokens are handled)\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"SimpleAllowList Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"allowList()\":{\"notice\":\"The SimpleAllowList contract\"},\"claim(bytes)\":{\"notice\":\"Claim a slot on the {SimpleAllowList}\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new AllowListIncentive\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/AllowListIncentive.sol\":\"AllowListIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/allowlists/SimpleAllowList.sol\":{\"keccak256\":\"0x85f83d5522cac95d1cfe50eaa95d5f8f39fc46bec0566402025505259bd061f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6452442e92e1fdaef23b59b67ce1f7d65cdc96acf7bcac0bb16318f007e08644\",\"dweb:/ipfs/QmeE33irgs9tPnnbzGidzb2iBKo7BSKmto7kMGWTVT3t5k\"]},\"contracts/incentives/AllowListIncentive.sol\":{\"keccak256\":\"0xc0cb04dc3a4448f63b0235b5bdfcb7425817e086d3b4f26bfce499d2d3b8f188\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a45795c4791721a7b3563518baf02dc20eec9f70d951f1f984796a07e91f98e1\",\"dweb:/ipfs/Qmbp2oiK9zKaRbQfvZjF7fsm9FzxQVgERSC8NH22GAgxNY\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/CGDAIncentive.sol":{"CGDAIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cgdaParams","outputs":[{"internalType":"uint256","name":"rewardDecay","type":"uint256"},{"internalType":"uint256","name":"rewardBoost","type":"uint256"},{"internalType":"uint256","name":"lastClaimTime","type":"uint256"},{"internalType":"uint256","name":"currentReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBudget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_15716":{"entryPoint":null,"id":15716,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611b50806101b45f395ff3fe608060405260043610610113575f3560e01c80638da5cb5b1161009f578063e18e650811610063578063e18e65081461034c578063f04e283e14610388578063f1c30ec0146103a4578063f2fde38b146103e0578063fee81cf4146103fc57610113565b80638da5cb5b14610256578063c63ff8dd14610280578063c78da39a146102bc578063c884ef83146102e6578063dcc59b6f1461032257610113565b8063439fab91116100e6578063439fab91146101b15780634e7165a2146101d957806354d1f13d14610215578063715018a61461021f57806375ef18d01461022957610113565b806301ffc9a71461011757806307621eca14610153578063256929621461017d57806338d52e0f14610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611188565b610438565b60405161014a91906111cd565b60405180910390f35b34801561015e575f80fd5b506101676104b1565b60405161017491906111fe565b60405180910390f35b61018561055a565b005b348015610192575f80fd5b5061019b6105ab565b6040516101a89190611256565b60405180910390f35b3480156101bc575f80fd5b506101d760048036038101906101d291906112d0565b6105d0565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa91906112d0565b6107f8565b60405161020c919061138b565b60405180910390f35b61021d6108c8565b005b610227610901565b005b348015610234575f80fd5b5061023d610914565b60405161024d94939291906113ab565b60405180910390f35b348015610261575f80fd5b5061026a610931565b6040516102779190611256565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a191906112d0565b610959565b6040516102b391906111cd565b60405180910390f35b3480156102c7575f80fd5b506102d0610b02565b6040516102dd91906111fe565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190611418565b610b08565b60405161031991906111cd565b60405180910390f35b34801561032d575f80fd5b50610336610b25565b60405161034391906111fe565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d91906112d0565b610b2a565b60405161037f91906111cd565b60405180910390f35b6103a2600480360381019061039d9190611418565b610b52565b005b3480156103af575f80fd5b506103ca60048036038101906103c591906112d0565b610b90565b6040516103d791906111cd565b60405180910390f35b6103fa60048036038101906103f59190611418565b610cb9565b005b348015610407575f80fd5b50610422600480360381019061041d9190611418565b610ce2565b60405161042f91906111fe565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104aa57506104a982610cfb565b5b9050919050565b5f80600360020154426104c49190611470565b90505f6105113060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b90505f610e106003600101548461052891906114a3565b6105329190611511565b60038001546105419190611541565b90508181116105505780610552565b815b935050505090565b5f610563610da7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105d9610db1565b9050805460038255801561060b5760018160011c14303b106106025763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061061c91906116a7565b90505f61064b30835f015173ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b905081608001518110156106a157815f01518183608001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610698939291906116d2565b60405180910390fd5b5f826020015114806106b657505f8260400151145b806106c457505f8260600151145b806106d6575081602001518260800151105b1561070d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052808360400151815260200183606001518152602001428152602001836020015181525060035f820151815f015560208201518160010155604082015181600201556060820151816003015590505081608001516007819055506107bc33610dda565b505080156107f3576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f838381019061080a91906116a7565b905060405180608001604052806001600281111561082b5761082a611707565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060200160405280846080015181525060405160200161088e919061175d565b6040516020818303038152906040528152506040516020016108b09190611873565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610909610eb0565b6109125f610ee7565b565b6003805f0154908060010154908060020154908060030154905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f610962610eb0565b5f838381019061097291906119ac565b9050610980815f0151610fad565b6109b6576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906109c7906119f3565b91905055505f6109d56104b1565b90504260036002018190555060035f015481116109f65760035f0154610a07565b60035f015481610a069190611470565b5b6003800181905550610a5e825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610ad293929190611a9f565b604051602081830303815290604052604051610aee919061138b565b60405180910390a260019250505092915050565b60075481565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610b3b91906119ac565b9050610b49815f0151610fad565b91505092915050565b610b5a610eb0565b63389a75e1600c52805f526020600c208054421115610b8057636f5e88185f526004601cfd5b5f815550610b8d81610ee7565b50565b5f610b99610eb0565b5f8383810190610ba991906119ac565b90505f8160200151806020019051810190610bc49190611aef565b9050610c15825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610c8993929190611a9f565b604051602081830303815290604052604051610ca5919061138b565b60405180910390a260019250505092915050565b610cc1610eb0565b8060601b610cd657637448fbae5f526004601cfd5b610cdf81610ee7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d6d5750610d6c826110b5565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610de261111e565b15610e5a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610e1c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ead565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ee5576382b429005f526004601cfd5b565b610eef61111e565b15610f54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610faa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f80610fb76104b1565b90505f8111801561101157508061100e3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b10155b8015611064575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b915050919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166110ac576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61116781611133565b8114611171575f80fd5b50565b5f813590506111828161115e565b92915050565b5f6020828403121561119d5761119c61112b565b5b5f6111aa84828501611174565b91505092915050565b5f8115159050919050565b6111c7816111b3565b82525050565b5f6020820190506111e05f8301846111be565b92915050565b5f819050919050565b6111f8816111e6565b82525050565b5f6020820190506112115f8301846111ef565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61124082611217565b9050919050565b61125081611236565b82525050565b5f6020820190506112695f830184611247565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112905761128f61126f565b5b8235905067ffffffffffffffff8111156112ad576112ac611273565b5b6020830191508360018202830111156112c9576112c8611277565b5b9250929050565b5f80602083850312156112e6576112e561112b565b5b5f83013567ffffffffffffffff8111156113035761130261112f565b5b61130f8582860161127b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61135d8261131b565b6113678185611325565b9350611377818560208601611335565b61138081611343565b840191505092915050565b5f6020820190508181035f8301526113a38184611353565b905092915050565b5f6080820190506113be5f8301876111ef565b6113cb60208301866111ef565b6113d860408301856111ef565b6113e560608301846111ef565b95945050505050565b6113f781611236565b8114611401575f80fd5b50565b5f81359050611412816113ee565b92915050565b5f6020828403121561142d5761142c61112b565b5b5f61143a84828501611404565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61147a826111e6565b9150611485836111e6565b925082820390508181111561149d5761149c611443565b5b92915050565b5f6114ad826111e6565b91506114b8836111e6565b92508282026114c6816111e6565b915082820484148315176114dd576114dc611443565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61151b826111e6565b9150611526836111e6565b925082611536576115356114e4565b5b828204905092915050565b5f61154b826111e6565b9150611556836111e6565b925082820190508082111561156e5761156d611443565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6115ae82611343565b810181811067ffffffffffffffff821117156115cd576115cc611578565b5b80604052505050565b5f6115df611122565b90506115eb82826115a5565b919050565b5f80fd5b6115fd816111e6565b8114611607575f80fd5b50565b5f81359050611618816115f4565b92915050565b5f60a0828403121561163357611632611574565b5b61163d60a06115d6565b90505f61164c84828501611404565b5f83015250602061165f8482850161160a565b60208301525060406116738482850161160a565b60408301525060606116878482850161160a565b606083015250608061169b8482850161160a565b60808301525092915050565b5f60a082840312156116bc576116bb61112b565b5b5f6116c98482850161161e565b91505092915050565b5f6060820190506116e55f830186611247565b6116f260208301856111ef565b6116ff60408301846111ef565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61173d816111e6565b82525050565b602082015f8201516117575f850182611734565b50505050565b5f6020820190506117705f830184611743565b92915050565b6003811061178757611786611707565b5b50565b5f81905061179782611776565b919050565b5f6117a68261178a565b9050919050565b6117b68161179c565b82525050565b6117c581611236565b82525050565b5f82825260208201905092915050565b5f6117e58261131b565b6117ef81856117cb565b93506117ff818560208601611335565b61180881611343565b840191505092915050565b5f608083015f8301516118285f8601826117ad565b50602083015161183b60208601826117bc565b50604083015161184e60408601826117bc565b506060830151848203606086015261186682826117db565b9150508091505092915050565b5f6020820190508181035f83015261188b8184611813565b905092915050565b5f80fd5b5f67ffffffffffffffff8211156118b1576118b0611578565b5b6118ba82611343565b9050602081019050919050565b828183375f83830152505050565b5f6118e76118e284611897565b6115d6565b90508281526020810184848401111561190357611902611893565b5b61190e8482856118c7565b509392505050565b5f82601f83011261192a5761192961126f565b5b813561193a8482602086016118d5565b91505092915050565b5f6040828403121561195857611957611574565b5b61196260406115d6565b90505f61197184828501611404565b5f83015250602082013567ffffffffffffffff811115611994576119936115f0565b5b6119a084828501611916565b60208301525092915050565b5f602082840312156119c1576119c061112b565b5b5f82013567ffffffffffffffff8111156119de576119dd61112f565b5b6119ea84828501611943565b91505092915050565b5f6119fd826111e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a2f57611a2e611443565b5b600182019050919050565b5f8160601b9050919050565b5f611a5082611a3a565b9050919050565b5f611a6182611a46565b9050919050565b611a79611a7482611236565b611a57565b82525050565b5f819050919050565b611a99611a94826111e6565b611a7f565b82525050565b5f611aaa8286611a68565b601482019150611aba8285611a68565b601482019150611aca8284611a88565b602082019150819050949350505050565b5f81519050611ae9816115f4565b92915050565b5f60208284031215611b0457611b0361112b565b5b5f611b1184828501611adb565b9150509291505056fea26469706673582212204e6c9519f1b738c96d6ba1e0a87f71231432193bb2d41d56057c7c52c76b10a164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1B50 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3FC JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xC78DA39A EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x322 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x75EF18D0 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x438 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x55A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x5D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x7F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH2 0x8C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x227 PUSH2 0x901 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x914 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x13AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x931 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x959 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0xB25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x343 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x372 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36D SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB2A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB90 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCB9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x422 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCE2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4AA JUMPI POP PUSH2 0x4A9 DUP3 PUSH2 0xCFB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x511 ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xE10 PUSH1 0x3 PUSH1 0x1 ADD SLOAD DUP5 PUSH2 0x528 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x532 SWAP2 SWAP1 PUSH2 0x1511 JUMP JUMPDEST PUSH1 0x3 DUP1 ADD SLOAD PUSH2 0x541 SWAP2 SWAP1 PUSH2 0x1541 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x550 JUMPI DUP1 PUSH2 0x552 JUMP JUMPDEST DUP2 JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x563 PUSH2 0xDA7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5D9 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x60B JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x602 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x61C SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x64B ADDRESS DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x80 ADD MLOAD DUP2 LT ISZERO PUSH2 0x6A1 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x698 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x16D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x20 ADD MLOAD EQ DUP1 PUSH2 0x6B6 JUMPI POP PUSH0 DUP3 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6C4 JUMPI POP PUSH0 DUP3 PUSH1 0x60 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6D6 JUMPI POP DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD LT JUMPDEST ISZERO PUSH2 0x70D JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE POP PUSH1 0x3 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH2 0x7BC CALLER PUSH2 0xDDA JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x80A SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x82B JUMPI PUSH2 0x82A PUSH2 0x1707 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x175D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8B0 SWAP2 SWAP1 PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x909 PUSH2 0xEB0 JUMP JUMPDEST PUSH2 0x912 PUSH0 PUSH2 0xEE7 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 DUP1 PUSH0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x962 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0x980 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x9B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x9C7 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH0 PUSH2 0x9D5 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x3 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH0 ADD SLOAD DUP2 GT PUSH2 0x9F6 JUMPI PUSH1 0x3 PUSH0 ADD SLOAD PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x3 PUSH0 ADD SLOAD DUP2 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP1 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xA5E DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xAEE SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xB3B SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0xB49 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5A PUSH2 0xEB0 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xB80 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xB8D DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xB99 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBA9 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC4 SWAP2 SWAP1 PUSH2 0x1AEF JUMP JUMPDEST SWAP1 POP PUSH2 0xC15 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC89 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCA5 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC1 PUSH2 0xEB0 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xCD6 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xCDF DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD6D JUMPI POP PUSH2 0xD6C DUP3 PUSH2 0x10B5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDE2 PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xE5A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xE1C JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xEAD JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xEE5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xEEF PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xF54 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xFAA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xFB7 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x1011 JUMPI POP DUP1 PUSH2 0x100E ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1064 JUMPI POP PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x10AC JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1133 JUMP JUMPDEST DUP2 EQ PUSH2 0x1171 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1182 DUP2 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x119D JUMPI PUSH2 0x119C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11AA DUP5 DUP3 DUP6 ADD PUSH2 0x1174 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11C7 DUP2 PUSH2 0x11B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11E0 PUSH0 DUP4 ADD DUP5 PUSH2 0x11BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11F8 DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1211 PUSH0 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1240 DUP3 PUSH2 0x1217 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1250 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1269 PUSH0 DUP4 ADD DUP5 PUSH2 0x1247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1290 JUMPI PUSH2 0x128F PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12AD JUMPI PUSH2 0x12AC PUSH2 0x1273 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x12C9 JUMPI PUSH2 0x12C8 PUSH2 0x1277 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12E6 JUMPI PUSH2 0x12E5 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1303 JUMPI PUSH2 0x1302 PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x130F DUP6 DUP3 DUP7 ADD PUSH2 0x127B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x135D DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x1367 DUP2 DUP6 PUSH2 0x1325 JUMP JUMPDEST SWAP4 POP PUSH2 0x1377 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1380 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x13A3 DUP2 DUP5 PUSH2 0x1353 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x13BE PUSH0 DUP4 ADD DUP8 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13CB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13D8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13E5 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13F7 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP2 EQ PUSH2 0x1401 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1412 DUP2 PUSH2 0x13EE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x142D JUMPI PUSH2 0x142C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x143A DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x147A DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1485 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x149D JUMPI PUSH2 0x149C PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14AD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x14B8 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x14C6 DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x14DD JUMPI PUSH2 0x14DC PUSH2 0x1443 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x151B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1526 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1536 JUMPI PUSH2 0x1535 PUSH2 0x14E4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x154B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1556 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x156E JUMPI PUSH2 0x156D PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x15AE DUP3 PUSH2 0x1343 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x15CD JUMPI PUSH2 0x15CC PUSH2 0x1578 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15DF PUSH2 0x1122 JUMP JUMPDEST SWAP1 POP PUSH2 0x15EB DUP3 DUP3 PUSH2 0x15A5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x15FD DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1607 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1618 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1633 JUMPI PUSH2 0x1632 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x163D PUSH1 0xA0 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x164C DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x165F DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1673 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1687 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x169B DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16C9 DUP5 DUP3 DUP6 ADD PUSH2 0x161E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x16E5 PUSH0 DUP4 ADD DUP7 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0x16F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x16FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x173D DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1757 PUSH0 DUP6 ADD DUP3 PUSH2 0x1734 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1770 PUSH0 DUP4 ADD DUP5 PUSH2 0x1743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1787 JUMPI PUSH2 0x1786 PUSH2 0x1707 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1797 DUP3 PUSH2 0x1776 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x17A6 DUP3 PUSH2 0x178A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17B6 DUP2 PUSH2 0x179C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x17E5 DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x17EF DUP2 DUP6 PUSH2 0x17CB JUMP JUMPDEST SWAP4 POP PUSH2 0x17FF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1808 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1828 PUSH0 DUP7 ADD DUP3 PUSH2 0x17AD JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x183B PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x184E PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1866 DUP3 DUP3 PUSH2 0x17DB JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x188B DUP2 DUP5 PUSH2 0x1813 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18B1 JUMPI PUSH2 0x18B0 PUSH2 0x1578 JUMP JUMPDEST JUMPDEST PUSH2 0x18BA DUP3 PUSH2 0x1343 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x18E7 PUSH2 0x18E2 DUP5 PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1903 JUMPI PUSH2 0x1902 PUSH2 0x1893 JUMP JUMPDEST JUMPDEST PUSH2 0x190E DUP5 DUP3 DUP6 PUSH2 0x18C7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192A JUMPI PUSH2 0x1929 PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x193A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x18D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1958 JUMPI PUSH2 0x1957 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x1962 PUSH1 0x40 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1971 DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1994 JUMPI PUSH2 0x1993 PUSH2 0x15F0 JUMP JUMPDEST JUMPDEST PUSH2 0x19A0 DUP5 DUP3 DUP6 ADD PUSH2 0x1916 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C1 JUMPI PUSH2 0x19C0 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19DE JUMPI PUSH2 0x19DD PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x19EA DUP5 DUP3 DUP6 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19FD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1A2F JUMPI PUSH2 0x1A2E PUSH2 0x1443 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A50 DUP3 PUSH2 0x1A3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A61 DUP3 PUSH2 0x1A46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A79 PUSH2 0x1A74 DUP3 PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1A57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A99 PUSH2 0x1A94 DUP3 PUSH2 0x11E6 JUMP JUMPDEST PUSH2 0x1A7F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AAA DUP3 DUP7 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ABA DUP3 DUP6 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ACA DUP3 DUP5 PUSH2 0x1A88 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1AE9 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B04 JUMPI PUSH2 0x1B03 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1B11 DUP5 DUP3 DUP6 ADD PUSH2 0x1ADB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E PUSH13 0x9519F1B738C96D6BA1E0A87F71 0x23 EQ ORIGIN NOT EXTCODESIZE 0xB2 0xD4 SAR JUMP SDIV PUSH29 0x7C52C76B10A164736F6C63430008190033000000000000000000000000 ","sourceMap":"453:6430:41:-:0;;;2036:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;2060:22:41;:20;;;:22;;:::i;:::-;453:6430;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;453:6430:41:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":3760,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":4382,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":3505,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":3546,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_16102":{"entryPoint":4013,"id":16102,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":3495,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":3815,"id":6316,"parameterSlots":1,"returnSlots":0},"@asset_15681":{"entryPoint":1451,"id":15681,"parameterSlots":0,"returnSlots":0},"@balanceOf_11267":{"entryPoint":3444,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2248,"id":6382,"parameterSlots":0,"returnSlots":0},"@cgdaParams_15706":{"entryPoint":2324,"id":15706,"parameterSlots":0,"returnSlots":0},"@claim_15901":{"entryPoint":2393,"id":15901,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":2824,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":2853,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2898,"id":6396,"parameterSlots":1,"returnSlots":0},"@currentReward_16070":{"entryPoint":1201,"id":16070,"parameterSlots":0,"returnSlots":1},"@initialize_15817":{"entryPoint":1488,"id":15817,"parameterSlots":2,"returnSlots":0},"@isClaimable_15981":{"entryPoint":2858,"id":15981,"parameterSlots":2,"returnSlots":1},"@owner_6404":{"entryPoint":2353,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":3298,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_16025":{"entryPoint":2040,"id":16025,"parameterSlots":2,"returnSlots":1},"@reclaim_15956":{"entryPoint":2960,"id":15956,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":2305,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1370,"id":6376,"parameterSlots":0,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":4204,"id":11219,"parameterSlots":3,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":1080,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":3323,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":4277,"id":2844,"parameterSlots":1,"returnSlots":1},"@totalBudget_15708":{"entryPoint":2818,"id":15708,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":3257,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6357,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5124,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":4468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":4731,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6422,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":6467,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$15693_memory_ptr":{"entryPoint":5662,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5642,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":6875,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5144,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":4488,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4816,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":6572,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$15693_memory_ptr":{"entryPoint":5799,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":6895,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":6076,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4679,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":6760,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4542,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":6107,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":6061,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack":{"entryPoint":5955,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack":{"entryPoint":6163,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":5940,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4591,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":6792,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":6815,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4694,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":5842,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4557,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5003,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed":{"entryPoint":5981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed":{"entryPoint":6259,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4606,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":5035,"id":null,"parameterSlots":5,"returnSlots":1},"allocate_memory":{"entryPoint":5590,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":4386,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6295,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4891,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":6091,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4901,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5441,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":5393,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5283,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5232,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4662,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":4531,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":4403,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$13471":{"entryPoint":6026,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4631,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4582,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":6044,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6343,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4917,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":5541,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":6643,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":6743,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":6726,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":6783,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5187,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":5348,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":5895,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5496,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":4723,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4719,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":5492,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":5616,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":4727,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6291,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":4399,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":4395,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4931,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":6714,"id":null,"parameterSlots":1,"returnSlots":1},"validator_assert_t_enum$_AssetType_$13471":{"entryPoint":6006,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5102,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":4446,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5620,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:19350:53","nodeType":"YulBlock","src":"0:19350:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"1998:81:53","nodeType":"YulBlock","src":"1998:81:53","statements":[{"nativeSrc":"2008:65:53","nodeType":"YulAssignment","src":"2008:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulIdentifier","src":"2023:5:53"},{"kind":"number","nativeSrc":"2030:42:53","nodeType":"YulLiteral","src":"2030:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2019:3:53","nodeType":"YulIdentifier","src":"2019:3:53"},"nativeSrc":"2019:54:53","nodeType":"YulFunctionCall","src":"2019:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2008:7:53","nodeType":"YulIdentifier","src":"2008:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1953:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1980:5:53","nodeType":"YulTypedName","src":"1980:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1990:7:53","nodeType":"YulTypedName","src":"1990:7:53","type":""}],"src":"1953:126:53"},{"body":{"nativeSrc":"2130:51:53","nodeType":"YulBlock","src":"2130:51:53","statements":[{"nativeSrc":"2140:35:53","nodeType":"YulAssignment","src":"2140:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2169:5:53","nodeType":"YulIdentifier","src":"2169:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2151:17:53","nodeType":"YulIdentifier","src":"2151:17:53"},"nativeSrc":"2151:24:53","nodeType":"YulFunctionCall","src":"2151:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2140:7:53","nodeType":"YulIdentifier","src":"2140:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2085:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2112:5:53","nodeType":"YulTypedName","src":"2112:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2122:7:53","nodeType":"YulTypedName","src":"2122:7:53","type":""}],"src":"2085:96:53"},{"body":{"nativeSrc":"2252:53:53","nodeType":"YulBlock","src":"2252:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2269:3:53","nodeType":"YulIdentifier","src":"2269:3:53"},{"arguments":[{"name":"value","nativeSrc":"2292:5:53","nodeType":"YulIdentifier","src":"2292:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2274:17:53","nodeType":"YulIdentifier","src":"2274:17:53"},"nativeSrc":"2274:24:53","nodeType":"YulFunctionCall","src":"2274:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2262:6:53","nodeType":"YulIdentifier","src":"2262:6:53"},"nativeSrc":"2262:37:53","nodeType":"YulFunctionCall","src":"2262:37:53"},"nativeSrc":"2262:37:53","nodeType":"YulExpressionStatement","src":"2262:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2187:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2240:5:53","nodeType":"YulTypedName","src":"2240:5:53","type":""},{"name":"pos","nativeSrc":"2247:3:53","nodeType":"YulTypedName","src":"2247:3:53","type":""}],"src":"2187:118:53"},{"body":{"nativeSrc":"2409:124:53","nodeType":"YulBlock","src":"2409:124:53","statements":[{"nativeSrc":"2419:26:53","nodeType":"YulAssignment","src":"2419:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2431:9:53","nodeType":"YulIdentifier","src":"2431:9:53"},{"kind":"number","nativeSrc":"2442:2:53","nodeType":"YulLiteral","src":"2442:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2427:3:53","nodeType":"YulIdentifier","src":"2427:3:53"},"nativeSrc":"2427:18:53","nodeType":"YulFunctionCall","src":"2427:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2419:4:53","nodeType":"YulIdentifier","src":"2419:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2499:6:53","nodeType":"YulIdentifier","src":"2499:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2512:9:53","nodeType":"YulIdentifier","src":"2512:9:53"},{"kind":"number","nativeSrc":"2523:1:53","nodeType":"YulLiteral","src":"2523:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2508:3:53","nodeType":"YulIdentifier","src":"2508:3:53"},"nativeSrc":"2508:17:53","nodeType":"YulFunctionCall","src":"2508:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2455:43:53","nodeType":"YulIdentifier","src":"2455:43:53"},"nativeSrc":"2455:71:53","nodeType":"YulFunctionCall","src":"2455:71:53"},"nativeSrc":"2455:71:53","nodeType":"YulExpressionStatement","src":"2455:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2311:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2381:9:53","nodeType":"YulTypedName","src":"2381:9:53","type":""},{"name":"value0","nativeSrc":"2393:6:53","nodeType":"YulTypedName","src":"2393:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2404:4:53","nodeType":"YulTypedName","src":"2404:4:53","type":""}],"src":"2311:222:53"},{"body":{"nativeSrc":"2628:28:53","nodeType":"YulBlock","src":"2628:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2645:1:53","nodeType":"YulLiteral","src":"2645:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2648:1:53","nodeType":"YulLiteral","src":"2648:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2638:6:53","nodeType":"YulIdentifier","src":"2638:6:53"},"nativeSrc":"2638:12:53","nodeType":"YulFunctionCall","src":"2638:12:53"},"nativeSrc":"2638:12:53","nodeType":"YulExpressionStatement","src":"2638:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2539:117:53","nodeType":"YulFunctionDefinition","src":"2539:117:53"},{"body":{"nativeSrc":"2751:28:53","nodeType":"YulBlock","src":"2751:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2768:1:53","nodeType":"YulLiteral","src":"2768:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2771:1:53","nodeType":"YulLiteral","src":"2771:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},"nativeSrc":"2761:12:53","nodeType":"YulFunctionCall","src":"2761:12:53"},"nativeSrc":"2761:12:53","nodeType":"YulExpressionStatement","src":"2761:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2662:117:53","nodeType":"YulFunctionDefinition","src":"2662:117:53"},{"body":{"nativeSrc":"2874:28:53","nodeType":"YulBlock","src":"2874:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2891:1:53","nodeType":"YulLiteral","src":"2891:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2894:1:53","nodeType":"YulLiteral","src":"2894:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2884:6:53","nodeType":"YulIdentifier","src":"2884:6:53"},"nativeSrc":"2884:12:53","nodeType":"YulFunctionCall","src":"2884:12:53"},"nativeSrc":"2884:12:53","nodeType":"YulExpressionStatement","src":"2884:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2785:117:53","nodeType":"YulFunctionDefinition","src":"2785:117:53"},{"body":{"nativeSrc":"2995:478:53","nodeType":"YulBlock","src":"2995:478:53","statements":[{"body":{"nativeSrc":"3044:83:53","nodeType":"YulBlock","src":"3044:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3046:77:53","nodeType":"YulIdentifier","src":"3046:77:53"},"nativeSrc":"3046:79:53","nodeType":"YulFunctionCall","src":"3046:79:53"},"nativeSrc":"3046:79:53","nodeType":"YulExpressionStatement","src":"3046:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3023:6:53","nodeType":"YulIdentifier","src":"3023:6:53"},{"kind":"number","nativeSrc":"3031:4:53","nodeType":"YulLiteral","src":"3031:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3019:3:53","nodeType":"YulIdentifier","src":"3019:3:53"},"nativeSrc":"3019:17:53","nodeType":"YulFunctionCall","src":"3019:17:53"},{"name":"end","nativeSrc":"3038:3:53","nodeType":"YulIdentifier","src":"3038:3:53"}],"functionName":{"name":"slt","nativeSrc":"3015:3:53","nodeType":"YulIdentifier","src":"3015:3:53"},"nativeSrc":"3015:27:53","nodeType":"YulFunctionCall","src":"3015:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3008:6:53","nodeType":"YulIdentifier","src":"3008:6:53"},"nativeSrc":"3008:35:53","nodeType":"YulFunctionCall","src":"3008:35:53"},"nativeSrc":"3005:122:53","nodeType":"YulIf","src":"3005:122:53"},{"nativeSrc":"3136:30:53","nodeType":"YulAssignment","src":"3136:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3159:6:53","nodeType":"YulIdentifier","src":"3159:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:53","nodeType":"YulIdentifier","src":"3146:12:53"},"nativeSrc":"3146:20:53","nodeType":"YulFunctionCall","src":"3146:20:53"},"variableNames":[{"name":"length","nativeSrc":"3136:6:53","nodeType":"YulIdentifier","src":"3136:6:53"}]},{"body":{"nativeSrc":"3209:83:53","nodeType":"YulBlock","src":"3209:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3211:77:53","nodeType":"YulIdentifier","src":"3211:77:53"},"nativeSrc":"3211:79:53","nodeType":"YulFunctionCall","src":"3211:79:53"},"nativeSrc":"3211:79:53","nodeType":"YulExpressionStatement","src":"3211:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3181:6:53","nodeType":"YulIdentifier","src":"3181:6:53"},{"kind":"number","nativeSrc":"3189:18:53","nodeType":"YulLiteral","src":"3189:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3178:2:53","nodeType":"YulIdentifier","src":"3178:2:53"},"nativeSrc":"3178:30:53","nodeType":"YulFunctionCall","src":"3178:30:53"},"nativeSrc":"3175:117:53","nodeType":"YulIf","src":"3175:117:53"},{"nativeSrc":"3301:29:53","nodeType":"YulAssignment","src":"3301:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3317:6:53","nodeType":"YulIdentifier","src":"3317:6:53"},{"kind":"number","nativeSrc":"3325:4:53","nodeType":"YulLiteral","src":"3325:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3313:3:53","nodeType":"YulIdentifier","src":"3313:3:53"},"nativeSrc":"3313:17:53","nodeType":"YulFunctionCall","src":"3313:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3301:8:53","nodeType":"YulIdentifier","src":"3301:8:53"}]},{"body":{"nativeSrc":"3384:83:53","nodeType":"YulBlock","src":"3384:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3386:77:53","nodeType":"YulIdentifier","src":"3386:77:53"},"nativeSrc":"3386:79:53","nodeType":"YulFunctionCall","src":"3386:79:53"},"nativeSrc":"3386:79:53","nodeType":"YulExpressionStatement","src":"3386:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3349:8:53","nodeType":"YulIdentifier","src":"3349:8:53"},{"arguments":[{"name":"length","nativeSrc":"3363:6:53","nodeType":"YulIdentifier","src":"3363:6:53"},{"kind":"number","nativeSrc":"3371:4:53","nodeType":"YulLiteral","src":"3371:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3359:3:53","nodeType":"YulIdentifier","src":"3359:3:53"},"nativeSrc":"3359:17:53","nodeType":"YulFunctionCall","src":"3359:17:53"}],"functionName":{"name":"add","nativeSrc":"3345:3:53","nodeType":"YulIdentifier","src":"3345:3:53"},"nativeSrc":"3345:32:53","nodeType":"YulFunctionCall","src":"3345:32:53"},{"name":"end","nativeSrc":"3379:3:53","nodeType":"YulIdentifier","src":"3379:3:53"}],"functionName":{"name":"gt","nativeSrc":"3342:2:53","nodeType":"YulIdentifier","src":"3342:2:53"},"nativeSrc":"3342:41:53","nodeType":"YulFunctionCall","src":"3342:41:53"},"nativeSrc":"3339:128:53","nodeType":"YulIf","src":"3339:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2921:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2962:6:53","nodeType":"YulTypedName","src":"2962:6:53","type":""},{"name":"end","nativeSrc":"2970:3:53","nodeType":"YulTypedName","src":"2970:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2978:8:53","nodeType":"YulTypedName","src":"2978:8:53","type":""},{"name":"length","nativeSrc":"2988:6:53","nodeType":"YulTypedName","src":"2988:6:53","type":""}],"src":"2921:552:53"},{"body":{"nativeSrc":"3564:442:53","nodeType":"YulBlock","src":"3564:442:53","statements":[{"body":{"nativeSrc":"3610:83:53","nodeType":"YulBlock","src":"3610:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3612:77:53","nodeType":"YulIdentifier","src":"3612:77:53"},"nativeSrc":"3612:79:53","nodeType":"YulFunctionCall","src":"3612:79:53"},"nativeSrc":"3612:79:53","nodeType":"YulExpressionStatement","src":"3612:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3585:7:53","nodeType":"YulIdentifier","src":"3585:7:53"},{"name":"headStart","nativeSrc":"3594:9:53","nodeType":"YulIdentifier","src":"3594:9:53"}],"functionName":{"name":"sub","nativeSrc":"3581:3:53","nodeType":"YulIdentifier","src":"3581:3:53"},"nativeSrc":"3581:23:53","nodeType":"YulFunctionCall","src":"3581:23:53"},{"kind":"number","nativeSrc":"3606:2:53","nodeType":"YulLiteral","src":"3606:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3577:3:53","nodeType":"YulIdentifier","src":"3577:3:53"},"nativeSrc":"3577:32:53","nodeType":"YulFunctionCall","src":"3577:32:53"},"nativeSrc":"3574:119:53","nodeType":"YulIf","src":"3574:119:53"},{"nativeSrc":"3703:296:53","nodeType":"YulBlock","src":"3703:296:53","statements":[{"nativeSrc":"3718:45:53","nodeType":"YulVariableDeclaration","src":"3718:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3749:9:53","nodeType":"YulIdentifier","src":"3749:9:53"},{"kind":"number","nativeSrc":"3760:1:53","nodeType":"YulLiteral","src":"3760:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3745:3:53","nodeType":"YulIdentifier","src":"3745:3:53"},"nativeSrc":"3745:17:53","nodeType":"YulFunctionCall","src":"3745:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3732:12:53","nodeType":"YulIdentifier","src":"3732:12:53"},"nativeSrc":"3732:31:53","nodeType":"YulFunctionCall","src":"3732:31:53"},"variables":[{"name":"offset","nativeSrc":"3722:6:53","nodeType":"YulTypedName","src":"3722:6:53","type":""}]},{"body":{"nativeSrc":"3810:83:53","nodeType":"YulBlock","src":"3810:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3812:77:53","nodeType":"YulIdentifier","src":"3812:77:53"},"nativeSrc":"3812:79:53","nodeType":"YulFunctionCall","src":"3812:79:53"},"nativeSrc":"3812:79:53","nodeType":"YulExpressionStatement","src":"3812:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3782:6:53","nodeType":"YulIdentifier","src":"3782:6:53"},{"kind":"number","nativeSrc":"3790:18:53","nodeType":"YulLiteral","src":"3790:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3779:2:53","nodeType":"YulIdentifier","src":"3779:2:53"},"nativeSrc":"3779:30:53","nodeType":"YulFunctionCall","src":"3779:30:53"},"nativeSrc":"3776:117:53","nodeType":"YulIf","src":"3776:117:53"},{"nativeSrc":"3907:82:53","nodeType":"YulAssignment","src":"3907:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3961:9:53","nodeType":"YulIdentifier","src":"3961:9:53"},{"name":"offset","nativeSrc":"3972:6:53","nodeType":"YulIdentifier","src":"3972:6:53"}],"functionName":{"name":"add","nativeSrc":"3957:3:53","nodeType":"YulIdentifier","src":"3957:3:53"},"nativeSrc":"3957:22:53","nodeType":"YulFunctionCall","src":"3957:22:53"},{"name":"dataEnd","nativeSrc":"3981:7:53","nodeType":"YulIdentifier","src":"3981:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3925:31:53","nodeType":"YulIdentifier","src":"3925:31:53"},"nativeSrc":"3925:64:53","nodeType":"YulFunctionCall","src":"3925:64:53"},"variableNames":[{"name":"value0","nativeSrc":"3907:6:53","nodeType":"YulIdentifier","src":"3907:6:53"},{"name":"value1","nativeSrc":"3915:6:53","nodeType":"YulIdentifier","src":"3915:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3479:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3526:9:53","nodeType":"YulTypedName","src":"3526:9:53","type":""},{"name":"dataEnd","nativeSrc":"3537:7:53","nodeType":"YulTypedName","src":"3537:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3549:6:53","nodeType":"YulTypedName","src":"3549:6:53","type":""},{"name":"value1","nativeSrc":"3557:6:53","nodeType":"YulTypedName","src":"3557:6:53","type":""}],"src":"3479:527:53"},{"body":{"nativeSrc":"4070:40:53","nodeType":"YulBlock","src":"4070:40:53","statements":[{"nativeSrc":"4081:22:53","nodeType":"YulAssignment","src":"4081:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4097:5:53","nodeType":"YulIdentifier","src":"4097:5:53"}],"functionName":{"name":"mload","nativeSrc":"4091:5:53","nodeType":"YulIdentifier","src":"4091:5:53"},"nativeSrc":"4091:12:53","nodeType":"YulFunctionCall","src":"4091:12:53"},"variableNames":[{"name":"length","nativeSrc":"4081:6:53","nodeType":"YulIdentifier","src":"4081:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4012:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4053:5:53","nodeType":"YulTypedName","src":"4053:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4063:6:53","nodeType":"YulTypedName","src":"4063:6:53","type":""}],"src":"4012:98:53"},{"body":{"nativeSrc":"4211:73:53","nodeType":"YulBlock","src":"4211:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4228:3:53","nodeType":"YulIdentifier","src":"4228:3:53"},{"name":"length","nativeSrc":"4233:6:53","nodeType":"YulIdentifier","src":"4233:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4221:6:53","nodeType":"YulIdentifier","src":"4221:6:53"},"nativeSrc":"4221:19:53","nodeType":"YulFunctionCall","src":"4221:19:53"},"nativeSrc":"4221:19:53","nodeType":"YulExpressionStatement","src":"4221:19:53"},{"nativeSrc":"4249:29:53","nodeType":"YulAssignment","src":"4249:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4268:3:53","nodeType":"YulIdentifier","src":"4268:3:53"},{"kind":"number","nativeSrc":"4273:4:53","nodeType":"YulLiteral","src":"4273:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4264:3:53","nodeType":"YulIdentifier","src":"4264:3:53"},"nativeSrc":"4264:14:53","nodeType":"YulFunctionCall","src":"4264:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4249:11:53","nodeType":"YulIdentifier","src":"4249:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4116:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4183:3:53","nodeType":"YulTypedName","src":"4183:3:53","type":""},{"name":"length","nativeSrc":"4188:6:53","nodeType":"YulTypedName","src":"4188:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4199:11:53","nodeType":"YulTypedName","src":"4199:11:53","type":""}],"src":"4116:168:53"},{"body":{"nativeSrc":"4352:77:53","nodeType":"YulBlock","src":"4352:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4369:3:53","nodeType":"YulIdentifier","src":"4369:3:53"},{"name":"src","nativeSrc":"4374:3:53","nodeType":"YulIdentifier","src":"4374:3:53"},{"name":"length","nativeSrc":"4379:6:53","nodeType":"YulIdentifier","src":"4379:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4363:5:53","nodeType":"YulIdentifier","src":"4363:5:53"},"nativeSrc":"4363:23:53","nodeType":"YulFunctionCall","src":"4363:23:53"},"nativeSrc":"4363:23:53","nodeType":"YulExpressionStatement","src":"4363:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4406:3:53","nodeType":"YulIdentifier","src":"4406:3:53"},{"name":"length","nativeSrc":"4411:6:53","nodeType":"YulIdentifier","src":"4411:6:53"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:16:53","nodeType":"YulFunctionCall","src":"4402:16:53"},{"kind":"number","nativeSrc":"4420:1:53","nodeType":"YulLiteral","src":"4420:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4395:6:53","nodeType":"YulIdentifier","src":"4395:6:53"},"nativeSrc":"4395:27:53","nodeType":"YulFunctionCall","src":"4395:27:53"},"nativeSrc":"4395:27:53","nodeType":"YulExpressionStatement","src":"4395:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4290:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4334:3:53","nodeType":"YulTypedName","src":"4334:3:53","type":""},{"name":"dst","nativeSrc":"4339:3:53","nodeType":"YulTypedName","src":"4339:3:53","type":""},{"name":"length","nativeSrc":"4344:6:53","nodeType":"YulTypedName","src":"4344:6:53","type":""}],"src":"4290:139:53"},{"body":{"nativeSrc":"4483:54:53","nodeType":"YulBlock","src":"4483:54:53","statements":[{"nativeSrc":"4493:38:53","nodeType":"YulAssignment","src":"4493:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4511:5:53","nodeType":"YulIdentifier","src":"4511:5:53"},{"kind":"number","nativeSrc":"4518:2:53","nodeType":"YulLiteral","src":"4518:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4507:3:53","nodeType":"YulIdentifier","src":"4507:3:53"},"nativeSrc":"4507:14:53","nodeType":"YulFunctionCall","src":"4507:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4527:2:53","nodeType":"YulLiteral","src":"4527:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4523:3:53","nodeType":"YulIdentifier","src":"4523:3:53"},"nativeSrc":"4523:7:53","nodeType":"YulFunctionCall","src":"4523:7:53"}],"functionName":{"name":"and","nativeSrc":"4503:3:53","nodeType":"YulIdentifier","src":"4503:3:53"},"nativeSrc":"4503:28:53","nodeType":"YulFunctionCall","src":"4503:28:53"},"variableNames":[{"name":"result","nativeSrc":"4493:6:53","nodeType":"YulIdentifier","src":"4493:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4435:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4466:5:53","nodeType":"YulTypedName","src":"4466:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4476:6:53","nodeType":"YulTypedName","src":"4476:6:53","type":""}],"src":"4435:102:53"},{"body":{"nativeSrc":"4633:283:53","nodeType":"YulBlock","src":"4633:283:53","statements":[{"nativeSrc":"4643:52:53","nodeType":"YulVariableDeclaration","src":"4643:52:53","value":{"arguments":[{"name":"value","nativeSrc":"4689:5:53","nodeType":"YulIdentifier","src":"4689:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4657:31:53","nodeType":"YulIdentifier","src":"4657:31:53"},"nativeSrc":"4657:38:53","nodeType":"YulFunctionCall","src":"4657:38:53"},"variables":[{"name":"length","nativeSrc":"4647:6:53","nodeType":"YulTypedName","src":"4647:6:53","type":""}]},{"nativeSrc":"4704:77:53","nodeType":"YulAssignment","src":"4704:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"4769:3:53","nodeType":"YulIdentifier","src":"4769:3:53"},{"name":"length","nativeSrc":"4774:6:53","nodeType":"YulIdentifier","src":"4774:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4711:57:53","nodeType":"YulIdentifier","src":"4711:57:53"},"nativeSrc":"4711:70:53","nodeType":"YulFunctionCall","src":"4711:70:53"},"variableNames":[{"name":"pos","nativeSrc":"4704:3:53","nodeType":"YulIdentifier","src":"4704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4829:5:53","nodeType":"YulIdentifier","src":"4829:5:53"},{"kind":"number","nativeSrc":"4836:4:53","nodeType":"YulLiteral","src":"4836:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4825:3:53","nodeType":"YulIdentifier","src":"4825:3:53"},"nativeSrc":"4825:16:53","nodeType":"YulFunctionCall","src":"4825:16:53"},{"name":"pos","nativeSrc":"4843:3:53","nodeType":"YulIdentifier","src":"4843:3:53"},{"name":"length","nativeSrc":"4848:6:53","nodeType":"YulIdentifier","src":"4848:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4790:34:53","nodeType":"YulIdentifier","src":"4790:34:53"},"nativeSrc":"4790:65:53","nodeType":"YulFunctionCall","src":"4790:65:53"},"nativeSrc":"4790:65:53","nodeType":"YulExpressionStatement","src":"4790:65:53"},{"nativeSrc":"4864:46:53","nodeType":"YulAssignment","src":"4864:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4875:3:53","nodeType":"YulIdentifier","src":"4875:3:53"},{"arguments":[{"name":"length","nativeSrc":"4902:6:53","nodeType":"YulIdentifier","src":"4902:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4880:21:53","nodeType":"YulIdentifier","src":"4880:21:53"},"nativeSrc":"4880:29:53","nodeType":"YulFunctionCall","src":"4880:29:53"}],"functionName":{"name":"add","nativeSrc":"4871:3:53","nodeType":"YulIdentifier","src":"4871:3:53"},"nativeSrc":"4871:39:53","nodeType":"YulFunctionCall","src":"4871:39:53"},"variableNames":[{"name":"end","nativeSrc":"4864:3:53","nodeType":"YulIdentifier","src":"4864:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4543:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4614:5:53","nodeType":"YulTypedName","src":"4614:5:53","type":""},{"name":"pos","nativeSrc":"4621:3:53","nodeType":"YulTypedName","src":"4621:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4629:3:53","nodeType":"YulTypedName","src":"4629:3:53","type":""}],"src":"4543:373:53"},{"body":{"nativeSrc":"5038:193:53","nodeType":"YulBlock","src":"5038:193:53","statements":[{"nativeSrc":"5048:26:53","nodeType":"YulAssignment","src":"5048:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5060:9:53","nodeType":"YulIdentifier","src":"5060:9:53"},{"kind":"number","nativeSrc":"5071:2:53","nodeType":"YulLiteral","src":"5071:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5056:3:53","nodeType":"YulIdentifier","src":"5056:3:53"},"nativeSrc":"5056:18:53","nodeType":"YulFunctionCall","src":"5056:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5048:4:53","nodeType":"YulIdentifier","src":"5048:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5095:9:53","nodeType":"YulIdentifier","src":"5095:9:53"},{"kind":"number","nativeSrc":"5106:1:53","nodeType":"YulLiteral","src":"5106:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5091:3:53","nodeType":"YulIdentifier","src":"5091:3:53"},"nativeSrc":"5091:17:53","nodeType":"YulFunctionCall","src":"5091:17:53"},{"arguments":[{"name":"tail","nativeSrc":"5114:4:53","nodeType":"YulIdentifier","src":"5114:4:53"},{"name":"headStart","nativeSrc":"5120:9:53","nodeType":"YulIdentifier","src":"5120:9:53"}],"functionName":{"name":"sub","nativeSrc":"5110:3:53","nodeType":"YulIdentifier","src":"5110:3:53"},"nativeSrc":"5110:20:53","nodeType":"YulFunctionCall","src":"5110:20:53"}],"functionName":{"name":"mstore","nativeSrc":"5084:6:53","nodeType":"YulIdentifier","src":"5084:6:53"},"nativeSrc":"5084:47:53","nodeType":"YulFunctionCall","src":"5084:47:53"},"nativeSrc":"5084:47:53","nodeType":"YulExpressionStatement","src":"5084:47:53"},{"nativeSrc":"5140:84:53","nodeType":"YulAssignment","src":"5140:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"5210:6:53","nodeType":"YulIdentifier","src":"5210:6:53"},{"name":"tail","nativeSrc":"5219:4:53","nodeType":"YulIdentifier","src":"5219:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5148:61:53","nodeType":"YulIdentifier","src":"5148:61:53"},"nativeSrc":"5148:76:53","nodeType":"YulFunctionCall","src":"5148:76:53"},"variableNames":[{"name":"tail","nativeSrc":"5140:4:53","nodeType":"YulIdentifier","src":"5140:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4922:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5010:9:53","nodeType":"YulTypedName","src":"5010:9:53","type":""},{"name":"value0","nativeSrc":"5022:6:53","nodeType":"YulTypedName","src":"5022:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5033:4:53","nodeType":"YulTypedName","src":"5033:4:53","type":""}],"src":"4922:309:53"},{"body":{"nativeSrc":"5419:371:53","nodeType":"YulBlock","src":"5419:371:53","statements":[{"nativeSrc":"5429:27:53","nodeType":"YulAssignment","src":"5429:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5441:9:53","nodeType":"YulIdentifier","src":"5441:9:53"},{"kind":"number","nativeSrc":"5452:3:53","nodeType":"YulLiteral","src":"5452:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5437:3:53","nodeType":"YulIdentifier","src":"5437:3:53"},"nativeSrc":"5437:19:53","nodeType":"YulFunctionCall","src":"5437:19:53"},"variableNames":[{"name":"tail","nativeSrc":"5429:4:53","nodeType":"YulIdentifier","src":"5429:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5510:6:53","nodeType":"YulIdentifier","src":"5510:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5523:9:53","nodeType":"YulIdentifier","src":"5523:9:53"},{"kind":"number","nativeSrc":"5534:1:53","nodeType":"YulLiteral","src":"5534:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5519:3:53","nodeType":"YulIdentifier","src":"5519:3:53"},"nativeSrc":"5519:17:53","nodeType":"YulFunctionCall","src":"5519:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5466:43:53","nodeType":"YulIdentifier","src":"5466:43:53"},"nativeSrc":"5466:71:53","nodeType":"YulFunctionCall","src":"5466:71:53"},"nativeSrc":"5466:71:53","nodeType":"YulExpressionStatement","src":"5466:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5591:6:53","nodeType":"YulIdentifier","src":"5591:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5604:9:53","nodeType":"YulIdentifier","src":"5604:9:53"},{"kind":"number","nativeSrc":"5615:2:53","nodeType":"YulLiteral","src":"5615:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5600:3:53","nodeType":"YulIdentifier","src":"5600:3:53"},"nativeSrc":"5600:18:53","nodeType":"YulFunctionCall","src":"5600:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5547:43:53","nodeType":"YulIdentifier","src":"5547:43:53"},"nativeSrc":"5547:72:53","nodeType":"YulFunctionCall","src":"5547:72:53"},"nativeSrc":"5547:72:53","nodeType":"YulExpressionStatement","src":"5547:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"5673:6:53","nodeType":"YulIdentifier","src":"5673:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5686:9:53","nodeType":"YulIdentifier","src":"5686:9:53"},{"kind":"number","nativeSrc":"5697:2:53","nodeType":"YulLiteral","src":"5697:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5682:3:53","nodeType":"YulIdentifier","src":"5682:3:53"},"nativeSrc":"5682:18:53","nodeType":"YulFunctionCall","src":"5682:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5629:43:53","nodeType":"YulIdentifier","src":"5629:43:53"},"nativeSrc":"5629:72:53","nodeType":"YulFunctionCall","src":"5629:72:53"},"nativeSrc":"5629:72:53","nodeType":"YulExpressionStatement","src":"5629:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"5755:6:53","nodeType":"YulIdentifier","src":"5755:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5768:9:53","nodeType":"YulIdentifier","src":"5768:9:53"},{"kind":"number","nativeSrc":"5779:2:53","nodeType":"YulLiteral","src":"5779:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5764:3:53","nodeType":"YulIdentifier","src":"5764:3:53"},"nativeSrc":"5764:18:53","nodeType":"YulFunctionCall","src":"5764:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5711:43:53","nodeType":"YulIdentifier","src":"5711:43:53"},"nativeSrc":"5711:72:53","nodeType":"YulFunctionCall","src":"5711:72:53"},"nativeSrc":"5711:72:53","nodeType":"YulExpressionStatement","src":"5711:72:53"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"5237:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5367:9:53","nodeType":"YulTypedName","src":"5367:9:53","type":""},{"name":"value3","nativeSrc":"5379:6:53","nodeType":"YulTypedName","src":"5379:6:53","type":""},{"name":"value2","nativeSrc":"5387:6:53","nodeType":"YulTypedName","src":"5387:6:53","type":""},{"name":"value1","nativeSrc":"5395:6:53","nodeType":"YulTypedName","src":"5395:6:53","type":""},{"name":"value0","nativeSrc":"5403:6:53","nodeType":"YulTypedName","src":"5403:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5414:4:53","nodeType":"YulTypedName","src":"5414:4:53","type":""}],"src":"5237:553:53"},{"body":{"nativeSrc":"5839:79:53","nodeType":"YulBlock","src":"5839:79:53","statements":[{"body":{"nativeSrc":"5896:16:53","nodeType":"YulBlock","src":"5896:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5905:1:53","nodeType":"YulLiteral","src":"5905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5908:1:53","nodeType":"YulLiteral","src":"5908:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5898:6:53","nodeType":"YulIdentifier","src":"5898:6:53"},"nativeSrc":"5898:12:53","nodeType":"YulFunctionCall","src":"5898:12:53"},"nativeSrc":"5898:12:53","nodeType":"YulExpressionStatement","src":"5898:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5862:5:53","nodeType":"YulIdentifier","src":"5862:5:53"},{"arguments":[{"name":"value","nativeSrc":"5887:5:53","nodeType":"YulIdentifier","src":"5887:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5869:17:53","nodeType":"YulIdentifier","src":"5869:17:53"},"nativeSrc":"5869:24:53","nodeType":"YulFunctionCall","src":"5869:24:53"}],"functionName":{"name":"eq","nativeSrc":"5859:2:53","nodeType":"YulIdentifier","src":"5859:2:53"},"nativeSrc":"5859:35:53","nodeType":"YulFunctionCall","src":"5859:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5852:6:53","nodeType":"YulIdentifier","src":"5852:6:53"},"nativeSrc":"5852:43:53","nodeType":"YulFunctionCall","src":"5852:43:53"},"nativeSrc":"5849:63:53","nodeType":"YulIf","src":"5849:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5796:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5832:5:53","nodeType":"YulTypedName","src":"5832:5:53","type":""}],"src":"5796:122:53"},{"body":{"nativeSrc":"5976:87:53","nodeType":"YulBlock","src":"5976:87:53","statements":[{"nativeSrc":"5986:29:53","nodeType":"YulAssignment","src":"5986:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6008:6:53","nodeType":"YulIdentifier","src":"6008:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5995:12:53","nodeType":"YulIdentifier","src":"5995:12:53"},"nativeSrc":"5995:20:53","nodeType":"YulFunctionCall","src":"5995:20:53"},"variableNames":[{"name":"value","nativeSrc":"5986:5:53","nodeType":"YulIdentifier","src":"5986:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6051:5:53","nodeType":"YulIdentifier","src":"6051:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6024:26:53","nodeType":"YulIdentifier","src":"6024:26:53"},"nativeSrc":"6024:33:53","nodeType":"YulFunctionCall","src":"6024:33:53"},"nativeSrc":"6024:33:53","nodeType":"YulExpressionStatement","src":"6024:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5924:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5954:6:53","nodeType":"YulTypedName","src":"5954:6:53","type":""},{"name":"end","nativeSrc":"5962:3:53","nodeType":"YulTypedName","src":"5962:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5970:5:53","nodeType":"YulTypedName","src":"5970:5:53","type":""}],"src":"5924:139:53"},{"body":{"nativeSrc":"6135:263:53","nodeType":"YulBlock","src":"6135:263:53","statements":[{"body":{"nativeSrc":"6181:83:53","nodeType":"YulBlock","src":"6181:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6183:77:53","nodeType":"YulIdentifier","src":"6183:77:53"},"nativeSrc":"6183:79:53","nodeType":"YulFunctionCall","src":"6183:79:53"},"nativeSrc":"6183:79:53","nodeType":"YulExpressionStatement","src":"6183:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6156:7:53","nodeType":"YulIdentifier","src":"6156:7:53"},{"name":"headStart","nativeSrc":"6165:9:53","nodeType":"YulIdentifier","src":"6165:9:53"}],"functionName":{"name":"sub","nativeSrc":"6152:3:53","nodeType":"YulIdentifier","src":"6152:3:53"},"nativeSrc":"6152:23:53","nodeType":"YulFunctionCall","src":"6152:23:53"},{"kind":"number","nativeSrc":"6177:2:53","nodeType":"YulLiteral","src":"6177:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6148:3:53","nodeType":"YulIdentifier","src":"6148:3:53"},"nativeSrc":"6148:32:53","nodeType":"YulFunctionCall","src":"6148:32:53"},"nativeSrc":"6145:119:53","nodeType":"YulIf","src":"6145:119:53"},{"nativeSrc":"6274:117:53","nodeType":"YulBlock","src":"6274:117:53","statements":[{"nativeSrc":"6289:15:53","nodeType":"YulVariableDeclaration","src":"6289:15:53","value":{"kind":"number","nativeSrc":"6303:1:53","nodeType":"YulLiteral","src":"6303:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6293:6:53","nodeType":"YulTypedName","src":"6293:6:53","type":""}]},{"nativeSrc":"6318:63:53","nodeType":"YulAssignment","src":"6318:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6353:9:53","nodeType":"YulIdentifier","src":"6353:9:53"},{"name":"offset","nativeSrc":"6364:6:53","nodeType":"YulIdentifier","src":"6364:6:53"}],"functionName":{"name":"add","nativeSrc":"6349:3:53","nodeType":"YulIdentifier","src":"6349:3:53"},"nativeSrc":"6349:22:53","nodeType":"YulFunctionCall","src":"6349:22:53"},{"name":"dataEnd","nativeSrc":"6373:7:53","nodeType":"YulIdentifier","src":"6373:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6328:20:53","nodeType":"YulIdentifier","src":"6328:20:53"},"nativeSrc":"6328:53:53","nodeType":"YulFunctionCall","src":"6328:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6318:6:53","nodeType":"YulIdentifier","src":"6318:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6069:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6105:9:53","nodeType":"YulTypedName","src":"6105:9:53","type":""},{"name":"dataEnd","nativeSrc":"6116:7:53","nodeType":"YulTypedName","src":"6116:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6128:6:53","nodeType":"YulTypedName","src":"6128:6:53","type":""}],"src":"6069:329:53"},{"body":{"nativeSrc":"6432:152:53","nodeType":"YulBlock","src":"6432:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6449:1:53","nodeType":"YulLiteral","src":"6449:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6452:77:53","nodeType":"YulLiteral","src":"6452:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6442:6:53","nodeType":"YulIdentifier","src":"6442:6:53"},"nativeSrc":"6442:88:53","nodeType":"YulFunctionCall","src":"6442:88:53"},"nativeSrc":"6442:88:53","nodeType":"YulExpressionStatement","src":"6442:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6546:1:53","nodeType":"YulLiteral","src":"6546:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6549:4:53","nodeType":"YulLiteral","src":"6549:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6539:6:53","nodeType":"YulIdentifier","src":"6539:6:53"},"nativeSrc":"6539:15:53","nodeType":"YulFunctionCall","src":"6539:15:53"},"nativeSrc":"6539:15:53","nodeType":"YulExpressionStatement","src":"6539:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6570:1:53","nodeType":"YulLiteral","src":"6570:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6573:4:53","nodeType":"YulLiteral","src":"6573:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6563:6:53","nodeType":"YulIdentifier","src":"6563:6:53"},"nativeSrc":"6563:15:53","nodeType":"YulFunctionCall","src":"6563:15:53"},"nativeSrc":"6563:15:53","nodeType":"YulExpressionStatement","src":"6563:15:53"}]},"name":"panic_error_0x11","nativeSrc":"6404:180:53","nodeType":"YulFunctionDefinition","src":"6404:180:53"},{"body":{"nativeSrc":"6635:149:53","nodeType":"YulBlock","src":"6635:149:53","statements":[{"nativeSrc":"6645:25:53","nodeType":"YulAssignment","src":"6645:25:53","value":{"arguments":[{"name":"x","nativeSrc":"6668:1:53","nodeType":"YulIdentifier","src":"6668:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6650:17:53","nodeType":"YulIdentifier","src":"6650:17:53"},"nativeSrc":"6650:20:53","nodeType":"YulFunctionCall","src":"6650:20:53"},"variableNames":[{"name":"x","nativeSrc":"6645:1:53","nodeType":"YulIdentifier","src":"6645:1:53"}]},{"nativeSrc":"6679:25:53","nodeType":"YulAssignment","src":"6679:25:53","value":{"arguments":[{"name":"y","nativeSrc":"6702:1:53","nodeType":"YulIdentifier","src":"6702:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6684:17:53","nodeType":"YulIdentifier","src":"6684:17:53"},"nativeSrc":"6684:20:53","nodeType":"YulFunctionCall","src":"6684:20:53"},"variableNames":[{"name":"y","nativeSrc":"6679:1:53","nodeType":"YulIdentifier","src":"6679:1:53"}]},{"nativeSrc":"6713:17:53","nodeType":"YulAssignment","src":"6713:17:53","value":{"arguments":[{"name":"x","nativeSrc":"6725:1:53","nodeType":"YulIdentifier","src":"6725:1:53"},{"name":"y","nativeSrc":"6728:1:53","nodeType":"YulIdentifier","src":"6728:1:53"}],"functionName":{"name":"sub","nativeSrc":"6721:3:53","nodeType":"YulIdentifier","src":"6721:3:53"},"nativeSrc":"6721:9:53","nodeType":"YulFunctionCall","src":"6721:9:53"},"variableNames":[{"name":"diff","nativeSrc":"6713:4:53","nodeType":"YulIdentifier","src":"6713:4:53"}]},{"body":{"nativeSrc":"6755:22:53","nodeType":"YulBlock","src":"6755:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6757:16:53","nodeType":"YulIdentifier","src":"6757:16:53"},"nativeSrc":"6757:18:53","nodeType":"YulFunctionCall","src":"6757:18:53"},"nativeSrc":"6757:18:53","nodeType":"YulExpressionStatement","src":"6757:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6746:4:53","nodeType":"YulIdentifier","src":"6746:4:53"},{"name":"x","nativeSrc":"6752:1:53","nodeType":"YulIdentifier","src":"6752:1:53"}],"functionName":{"name":"gt","nativeSrc":"6743:2:53","nodeType":"YulIdentifier","src":"6743:2:53"},"nativeSrc":"6743:11:53","nodeType":"YulFunctionCall","src":"6743:11:53"},"nativeSrc":"6740:37:53","nodeType":"YulIf","src":"6740:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"6590:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6621:1:53","nodeType":"YulTypedName","src":"6621:1:53","type":""},{"name":"y","nativeSrc":"6624:1:53","nodeType":"YulTypedName","src":"6624:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6630:4:53","nodeType":"YulTypedName","src":"6630:4:53","type":""}],"src":"6590:194:53"},{"body":{"nativeSrc":"6838:362:53","nodeType":"YulBlock","src":"6838:362:53","statements":[{"nativeSrc":"6848:25:53","nodeType":"YulAssignment","src":"6848:25:53","value":{"arguments":[{"name":"x","nativeSrc":"6871:1:53","nodeType":"YulIdentifier","src":"6871:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6853:17:53","nodeType":"YulIdentifier","src":"6853:17:53"},"nativeSrc":"6853:20:53","nodeType":"YulFunctionCall","src":"6853:20:53"},"variableNames":[{"name":"x","nativeSrc":"6848:1:53","nodeType":"YulIdentifier","src":"6848:1:53"}]},{"nativeSrc":"6882:25:53","nodeType":"YulAssignment","src":"6882:25:53","value":{"arguments":[{"name":"y","nativeSrc":"6905:1:53","nodeType":"YulIdentifier","src":"6905:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6887:17:53","nodeType":"YulIdentifier","src":"6887:17:53"},"nativeSrc":"6887:20:53","nodeType":"YulFunctionCall","src":"6887:20:53"},"variableNames":[{"name":"y","nativeSrc":"6882:1:53","nodeType":"YulIdentifier","src":"6882:1:53"}]},{"nativeSrc":"6916:28:53","nodeType":"YulVariableDeclaration","src":"6916:28:53","value":{"arguments":[{"name":"x","nativeSrc":"6939:1:53","nodeType":"YulIdentifier","src":"6939:1:53"},{"name":"y","nativeSrc":"6942:1:53","nodeType":"YulIdentifier","src":"6942:1:53"}],"functionName":{"name":"mul","nativeSrc":"6935:3:53","nodeType":"YulIdentifier","src":"6935:3:53"},"nativeSrc":"6935:9:53","nodeType":"YulFunctionCall","src":"6935:9:53"},"variables":[{"name":"product_raw","nativeSrc":"6920:11:53","nodeType":"YulTypedName","src":"6920:11:53","type":""}]},{"nativeSrc":"6953:41:53","nodeType":"YulAssignment","src":"6953:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"6982:11:53","nodeType":"YulIdentifier","src":"6982:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6964:17:53","nodeType":"YulIdentifier","src":"6964:17:53"},"nativeSrc":"6964:30:53","nodeType":"YulFunctionCall","src":"6964:30:53"},"variableNames":[{"name":"product","nativeSrc":"6953:7:53","nodeType":"YulIdentifier","src":"6953:7:53"}]},{"body":{"nativeSrc":"7171:22:53","nodeType":"YulBlock","src":"7171:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7173:16:53","nodeType":"YulIdentifier","src":"7173:16:53"},"nativeSrc":"7173:18:53","nodeType":"YulFunctionCall","src":"7173:18:53"},"nativeSrc":"7173:18:53","nodeType":"YulExpressionStatement","src":"7173:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7104:1:53","nodeType":"YulIdentifier","src":"7104:1:53"}],"functionName":{"name":"iszero","nativeSrc":"7097:6:53","nodeType":"YulIdentifier","src":"7097:6:53"},"nativeSrc":"7097:9:53","nodeType":"YulFunctionCall","src":"7097:9:53"},{"arguments":[{"name":"y","nativeSrc":"7127:1:53","nodeType":"YulIdentifier","src":"7127:1:53"},{"arguments":[{"name":"product","nativeSrc":"7134:7:53","nodeType":"YulIdentifier","src":"7134:7:53"},{"name":"x","nativeSrc":"7143:1:53","nodeType":"YulIdentifier","src":"7143:1:53"}],"functionName":{"name":"div","nativeSrc":"7130:3:53","nodeType":"YulIdentifier","src":"7130:3:53"},"nativeSrc":"7130:15:53","nodeType":"YulFunctionCall","src":"7130:15:53"}],"functionName":{"name":"eq","nativeSrc":"7124:2:53","nodeType":"YulIdentifier","src":"7124:2:53"},"nativeSrc":"7124:22:53","nodeType":"YulFunctionCall","src":"7124:22:53"}],"functionName":{"name":"or","nativeSrc":"7077:2:53","nodeType":"YulIdentifier","src":"7077:2:53"},"nativeSrc":"7077:83:53","nodeType":"YulFunctionCall","src":"7077:83:53"}],"functionName":{"name":"iszero","nativeSrc":"7057:6:53","nodeType":"YulIdentifier","src":"7057:6:53"},"nativeSrc":"7057:113:53","nodeType":"YulFunctionCall","src":"7057:113:53"},"nativeSrc":"7054:139:53","nodeType":"YulIf","src":"7054:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"6790:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6821:1:53","nodeType":"YulTypedName","src":"6821:1:53","type":""},{"name":"y","nativeSrc":"6824:1:53","nodeType":"YulTypedName","src":"6824:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6830:7:53","nodeType":"YulTypedName","src":"6830:7:53","type":""}],"src":"6790:410:53"},{"body":{"nativeSrc":"7234:152:53","nodeType":"YulBlock","src":"7234:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7251:1:53","nodeType":"YulLiteral","src":"7251:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7254:77:53","nodeType":"YulLiteral","src":"7254:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7244:6:53","nodeType":"YulIdentifier","src":"7244:6:53"},"nativeSrc":"7244:88:53","nodeType":"YulFunctionCall","src":"7244:88:53"},"nativeSrc":"7244:88:53","nodeType":"YulExpressionStatement","src":"7244:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7348:1:53","nodeType":"YulLiteral","src":"7348:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7351:4:53","nodeType":"YulLiteral","src":"7351:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7341:6:53","nodeType":"YulIdentifier","src":"7341:6:53"},"nativeSrc":"7341:15:53","nodeType":"YulFunctionCall","src":"7341:15:53"},"nativeSrc":"7341:15:53","nodeType":"YulExpressionStatement","src":"7341:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7372:1:53","nodeType":"YulLiteral","src":"7372:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7375:4:53","nodeType":"YulLiteral","src":"7375:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7365:6:53","nodeType":"YulIdentifier","src":"7365:6:53"},"nativeSrc":"7365:15:53","nodeType":"YulFunctionCall","src":"7365:15:53"},"nativeSrc":"7365:15:53","nodeType":"YulExpressionStatement","src":"7365:15:53"}]},"name":"panic_error_0x12","nativeSrc":"7206:180:53","nodeType":"YulFunctionDefinition","src":"7206:180:53"},{"body":{"nativeSrc":"7434:143:53","nodeType":"YulBlock","src":"7434:143:53","statements":[{"nativeSrc":"7444:25:53","nodeType":"YulAssignment","src":"7444:25:53","value":{"arguments":[{"name":"x","nativeSrc":"7467:1:53","nodeType":"YulIdentifier","src":"7467:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7449:17:53","nodeType":"YulIdentifier","src":"7449:17:53"},"nativeSrc":"7449:20:53","nodeType":"YulFunctionCall","src":"7449:20:53"},"variableNames":[{"name":"x","nativeSrc":"7444:1:53","nodeType":"YulIdentifier","src":"7444:1:53"}]},{"nativeSrc":"7478:25:53","nodeType":"YulAssignment","src":"7478:25:53","value":{"arguments":[{"name":"y","nativeSrc":"7501:1:53","nodeType":"YulIdentifier","src":"7501:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7483:17:53","nodeType":"YulIdentifier","src":"7483:17:53"},"nativeSrc":"7483:20:53","nodeType":"YulFunctionCall","src":"7483:20:53"},"variableNames":[{"name":"y","nativeSrc":"7478:1:53","nodeType":"YulIdentifier","src":"7478:1:53"}]},{"body":{"nativeSrc":"7525:22:53","nodeType":"YulBlock","src":"7525:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"7527:16:53","nodeType":"YulIdentifier","src":"7527:16:53"},"nativeSrc":"7527:18:53","nodeType":"YulFunctionCall","src":"7527:18:53"},"nativeSrc":"7527:18:53","nodeType":"YulExpressionStatement","src":"7527:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"7522:1:53","nodeType":"YulIdentifier","src":"7522:1:53"}],"functionName":{"name":"iszero","nativeSrc":"7515:6:53","nodeType":"YulIdentifier","src":"7515:6:53"},"nativeSrc":"7515:9:53","nodeType":"YulFunctionCall","src":"7515:9:53"},"nativeSrc":"7512:35:53","nodeType":"YulIf","src":"7512:35:53"},{"nativeSrc":"7557:14:53","nodeType":"YulAssignment","src":"7557:14:53","value":{"arguments":[{"name":"x","nativeSrc":"7566:1:53","nodeType":"YulIdentifier","src":"7566:1:53"},{"name":"y","nativeSrc":"7569:1:53","nodeType":"YulIdentifier","src":"7569:1:53"}],"functionName":{"name":"div","nativeSrc":"7562:3:53","nodeType":"YulIdentifier","src":"7562:3:53"},"nativeSrc":"7562:9:53","nodeType":"YulFunctionCall","src":"7562:9:53"},"variableNames":[{"name":"r","nativeSrc":"7557:1:53","nodeType":"YulIdentifier","src":"7557:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"7392:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7423:1:53","nodeType":"YulTypedName","src":"7423:1:53","type":""},{"name":"y","nativeSrc":"7426:1:53","nodeType":"YulTypedName","src":"7426:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"7432:1:53","nodeType":"YulTypedName","src":"7432:1:53","type":""}],"src":"7392:185:53"},{"body":{"nativeSrc":"7627:147:53","nodeType":"YulBlock","src":"7627:147:53","statements":[{"nativeSrc":"7637:25:53","nodeType":"YulAssignment","src":"7637:25:53","value":{"arguments":[{"name":"x","nativeSrc":"7660:1:53","nodeType":"YulIdentifier","src":"7660:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7642:17:53","nodeType":"YulIdentifier","src":"7642:17:53"},"nativeSrc":"7642:20:53","nodeType":"YulFunctionCall","src":"7642:20:53"},"variableNames":[{"name":"x","nativeSrc":"7637:1:53","nodeType":"YulIdentifier","src":"7637:1:53"}]},{"nativeSrc":"7671:25:53","nodeType":"YulAssignment","src":"7671:25:53","value":{"arguments":[{"name":"y","nativeSrc":"7694:1:53","nodeType":"YulIdentifier","src":"7694:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7676:17:53","nodeType":"YulIdentifier","src":"7676:17:53"},"nativeSrc":"7676:20:53","nodeType":"YulFunctionCall","src":"7676:20:53"},"variableNames":[{"name":"y","nativeSrc":"7671:1:53","nodeType":"YulIdentifier","src":"7671:1:53"}]},{"nativeSrc":"7705:16:53","nodeType":"YulAssignment","src":"7705:16:53","value":{"arguments":[{"name":"x","nativeSrc":"7716:1:53","nodeType":"YulIdentifier","src":"7716:1:53"},{"name":"y","nativeSrc":"7719:1:53","nodeType":"YulIdentifier","src":"7719:1:53"}],"functionName":{"name":"add","nativeSrc":"7712:3:53","nodeType":"YulIdentifier","src":"7712:3:53"},"nativeSrc":"7712:9:53","nodeType":"YulFunctionCall","src":"7712:9:53"},"variableNames":[{"name":"sum","nativeSrc":"7705:3:53","nodeType":"YulIdentifier","src":"7705:3:53"}]},{"body":{"nativeSrc":"7745:22:53","nodeType":"YulBlock","src":"7745:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7747:16:53","nodeType":"YulIdentifier","src":"7747:16:53"},"nativeSrc":"7747:18:53","nodeType":"YulFunctionCall","src":"7747:18:53"},"nativeSrc":"7747:18:53","nodeType":"YulExpressionStatement","src":"7747:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7737:1:53","nodeType":"YulIdentifier","src":"7737:1:53"},{"name":"sum","nativeSrc":"7740:3:53","nodeType":"YulIdentifier","src":"7740:3:53"}],"functionName":{"name":"gt","nativeSrc":"7734:2:53","nodeType":"YulIdentifier","src":"7734:2:53"},"nativeSrc":"7734:10:53","nodeType":"YulFunctionCall","src":"7734:10:53"},"nativeSrc":"7731:36:53","nodeType":"YulIf","src":"7731:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"7583:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7614:1:53","nodeType":"YulTypedName","src":"7614:1:53","type":""},{"name":"y","nativeSrc":"7617:1:53","nodeType":"YulTypedName","src":"7617:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7623:3:53","nodeType":"YulTypedName","src":"7623:3:53","type":""}],"src":"7583:191:53"},{"body":{"nativeSrc":"7869:28:53","nodeType":"YulBlock","src":"7869:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7886:1:53","nodeType":"YulLiteral","src":"7886:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7889:1:53","nodeType":"YulLiteral","src":"7889:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7879:6:53","nodeType":"YulIdentifier","src":"7879:6:53"},"nativeSrc":"7879:12:53","nodeType":"YulFunctionCall","src":"7879:12:53"},"nativeSrc":"7879:12:53","nodeType":"YulExpressionStatement","src":"7879:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7780:117:53","nodeType":"YulFunctionDefinition","src":"7780:117:53"},{"body":{"nativeSrc":"7931:152:53","nodeType":"YulBlock","src":"7931:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7948:1:53","nodeType":"YulLiteral","src":"7948:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7951:77:53","nodeType":"YulLiteral","src":"7951:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7941:6:53","nodeType":"YulIdentifier","src":"7941:6:53"},"nativeSrc":"7941:88:53","nodeType":"YulFunctionCall","src":"7941:88:53"},"nativeSrc":"7941:88:53","nodeType":"YulExpressionStatement","src":"7941:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8045:1:53","nodeType":"YulLiteral","src":"8045:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8048:4:53","nodeType":"YulLiteral","src":"8048:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8038:6:53","nodeType":"YulIdentifier","src":"8038:6:53"},"nativeSrc":"8038:15:53","nodeType":"YulFunctionCall","src":"8038:15:53"},"nativeSrc":"8038:15:53","nodeType":"YulExpressionStatement","src":"8038:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8069:1:53","nodeType":"YulLiteral","src":"8069:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8072:4:53","nodeType":"YulLiteral","src":"8072:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8062:6:53","nodeType":"YulIdentifier","src":"8062:6:53"},"nativeSrc":"8062:15:53","nodeType":"YulFunctionCall","src":"8062:15:53"},"nativeSrc":"8062:15:53","nodeType":"YulExpressionStatement","src":"8062:15:53"}]},"name":"panic_error_0x41","nativeSrc":"7903:180:53","nodeType":"YulFunctionDefinition","src":"7903:180:53"},{"body":{"nativeSrc":"8132:238:53","nodeType":"YulBlock","src":"8132:238:53","statements":[{"nativeSrc":"8142:58:53","nodeType":"YulVariableDeclaration","src":"8142:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"8164:6:53","nodeType":"YulIdentifier","src":"8164:6:53"},{"arguments":[{"name":"size","nativeSrc":"8194:4:53","nodeType":"YulIdentifier","src":"8194:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8172:21:53","nodeType":"YulIdentifier","src":"8172:21:53"},"nativeSrc":"8172:27:53","nodeType":"YulFunctionCall","src":"8172:27:53"}],"functionName":{"name":"add","nativeSrc":"8160:3:53","nodeType":"YulIdentifier","src":"8160:3:53"},"nativeSrc":"8160:40:53","nodeType":"YulFunctionCall","src":"8160:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"8146:10:53","nodeType":"YulTypedName","src":"8146:10:53","type":""}]},{"body":{"nativeSrc":"8311:22:53","nodeType":"YulBlock","src":"8311:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8313:16:53","nodeType":"YulIdentifier","src":"8313:16:53"},"nativeSrc":"8313:18:53","nodeType":"YulFunctionCall","src":"8313:18:53"},"nativeSrc":"8313:18:53","nodeType":"YulExpressionStatement","src":"8313:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8254:10:53","nodeType":"YulIdentifier","src":"8254:10:53"},{"kind":"number","nativeSrc":"8266:18:53","nodeType":"YulLiteral","src":"8266:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8251:2:53","nodeType":"YulIdentifier","src":"8251:2:53"},"nativeSrc":"8251:34:53","nodeType":"YulFunctionCall","src":"8251:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8290:10:53","nodeType":"YulIdentifier","src":"8290:10:53"},{"name":"memPtr","nativeSrc":"8302:6:53","nodeType":"YulIdentifier","src":"8302:6:53"}],"functionName":{"name":"lt","nativeSrc":"8287:2:53","nodeType":"YulIdentifier","src":"8287:2:53"},"nativeSrc":"8287:22:53","nodeType":"YulFunctionCall","src":"8287:22:53"}],"functionName":{"name":"or","nativeSrc":"8248:2:53","nodeType":"YulIdentifier","src":"8248:2:53"},"nativeSrc":"8248:62:53","nodeType":"YulFunctionCall","src":"8248:62:53"},"nativeSrc":"8245:88:53","nodeType":"YulIf","src":"8245:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8349:2:53","nodeType":"YulLiteral","src":"8349:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8353:10:53","nodeType":"YulIdentifier","src":"8353:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8342:6:53","nodeType":"YulIdentifier","src":"8342:6:53"},"nativeSrc":"8342:22:53","nodeType":"YulFunctionCall","src":"8342:22:53"},"nativeSrc":"8342:22:53","nodeType":"YulExpressionStatement","src":"8342:22:53"}]},"name":"finalize_allocation","nativeSrc":"8089:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8118:6:53","nodeType":"YulTypedName","src":"8118:6:53","type":""},{"name":"size","nativeSrc":"8126:4:53","nodeType":"YulTypedName","src":"8126:4:53","type":""}],"src":"8089:281:53"},{"body":{"nativeSrc":"8417:88:53","nodeType":"YulBlock","src":"8417:88:53","statements":[{"nativeSrc":"8427:30:53","nodeType":"YulAssignment","src":"8427:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8437:18:53","nodeType":"YulIdentifier","src":"8437:18:53"},"nativeSrc":"8437:20:53","nodeType":"YulFunctionCall","src":"8437:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8427:6:53","nodeType":"YulIdentifier","src":"8427:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8486:6:53","nodeType":"YulIdentifier","src":"8486:6:53"},{"name":"size","nativeSrc":"8494:4:53","nodeType":"YulIdentifier","src":"8494:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8466:19:53","nodeType":"YulIdentifier","src":"8466:19:53"},"nativeSrc":"8466:33:53","nodeType":"YulFunctionCall","src":"8466:33:53"},"nativeSrc":"8466:33:53","nodeType":"YulExpressionStatement","src":"8466:33:53"}]},"name":"allocate_memory","nativeSrc":"8376:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8401:4:53","nodeType":"YulTypedName","src":"8401:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8410:6:53","nodeType":"YulTypedName","src":"8410:6:53","type":""}],"src":"8376:129:53"},{"body":{"nativeSrc":"8600:28:53","nodeType":"YulBlock","src":"8600:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8617:1:53","nodeType":"YulLiteral","src":"8617:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8620:1:53","nodeType":"YulLiteral","src":"8620:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8610:6:53","nodeType":"YulIdentifier","src":"8610:6:53"},"nativeSrc":"8610:12:53","nodeType":"YulFunctionCall","src":"8610:12:53"},"nativeSrc":"8610:12:53","nodeType":"YulExpressionStatement","src":"8610:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8511:117:53","nodeType":"YulFunctionDefinition","src":"8511:117:53"},{"body":{"nativeSrc":"8677:79:53","nodeType":"YulBlock","src":"8677:79:53","statements":[{"body":{"nativeSrc":"8734:16:53","nodeType":"YulBlock","src":"8734:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8743:1:53","nodeType":"YulLiteral","src":"8743:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8746:1:53","nodeType":"YulLiteral","src":"8746:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8736:6:53","nodeType":"YulIdentifier","src":"8736:6:53"},"nativeSrc":"8736:12:53","nodeType":"YulFunctionCall","src":"8736:12:53"},"nativeSrc":"8736:12:53","nodeType":"YulExpressionStatement","src":"8736:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8700:5:53","nodeType":"YulIdentifier","src":"8700:5:53"},{"arguments":[{"name":"value","nativeSrc":"8725:5:53","nodeType":"YulIdentifier","src":"8725:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8707:17:53","nodeType":"YulIdentifier","src":"8707:17:53"},"nativeSrc":"8707:24:53","nodeType":"YulFunctionCall","src":"8707:24:53"}],"functionName":{"name":"eq","nativeSrc":"8697:2:53","nodeType":"YulIdentifier","src":"8697:2:53"},"nativeSrc":"8697:35:53","nodeType":"YulFunctionCall","src":"8697:35:53"}],"functionName":{"name":"iszero","nativeSrc":"8690:6:53","nodeType":"YulIdentifier","src":"8690:6:53"},"nativeSrc":"8690:43:53","nodeType":"YulFunctionCall","src":"8690:43:53"},"nativeSrc":"8687:63:53","nodeType":"YulIf","src":"8687:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"8634:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8670:5:53","nodeType":"YulTypedName","src":"8670:5:53","type":""}],"src":"8634:122:53"},{"body":{"nativeSrc":"8814:87:53","nodeType":"YulBlock","src":"8814:87:53","statements":[{"nativeSrc":"8824:29:53","nodeType":"YulAssignment","src":"8824:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"8846:6:53","nodeType":"YulIdentifier","src":"8846:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8833:12:53","nodeType":"YulIdentifier","src":"8833:12:53"},"nativeSrc":"8833:20:53","nodeType":"YulFunctionCall","src":"8833:20:53"},"variableNames":[{"name":"value","nativeSrc":"8824:5:53","nodeType":"YulIdentifier","src":"8824:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8889:5:53","nodeType":"YulIdentifier","src":"8889:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8862:26:53","nodeType":"YulIdentifier","src":"8862:26:53"},"nativeSrc":"8862:33:53","nodeType":"YulFunctionCall","src":"8862:33:53"},"nativeSrc":"8862:33:53","nodeType":"YulExpressionStatement","src":"8862:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"8762:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8792:6:53","nodeType":"YulTypedName","src":"8792:6:53","type":""},{"name":"end","nativeSrc":"8800:3:53","nodeType":"YulTypedName","src":"8800:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8808:5:53","nodeType":"YulTypedName","src":"8808:5:53","type":""}],"src":"8762:139:53"},{"body":{"nativeSrc":"9032:1009:53","nodeType":"YulBlock","src":"9032:1009:53","statements":[{"body":{"nativeSrc":"9076:83:53","nodeType":"YulBlock","src":"9076:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9078:77:53","nodeType":"YulIdentifier","src":"9078:77:53"},"nativeSrc":"9078:79:53","nodeType":"YulFunctionCall","src":"9078:79:53"},"nativeSrc":"9078:79:53","nodeType":"YulExpressionStatement","src":"9078:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9053:3:53","nodeType":"YulIdentifier","src":"9053:3:53"},{"name":"headStart","nativeSrc":"9058:9:53","nodeType":"YulIdentifier","src":"9058:9:53"}],"functionName":{"name":"sub","nativeSrc":"9049:3:53","nodeType":"YulIdentifier","src":"9049:3:53"},"nativeSrc":"9049:19:53","nodeType":"YulFunctionCall","src":"9049:19:53"},{"kind":"number","nativeSrc":"9070:4:53","nodeType":"YulLiteral","src":"9070:4:53","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"9045:3:53","nodeType":"YulIdentifier","src":"9045:3:53"},"nativeSrc":"9045:30:53","nodeType":"YulFunctionCall","src":"9045:30:53"},"nativeSrc":"9042:117:53","nodeType":"YulIf","src":"9042:117:53"},{"nativeSrc":"9168:30:53","nodeType":"YulAssignment","src":"9168:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"9193:4:53","nodeType":"YulLiteral","src":"9193:4:53","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"9177:15:53","nodeType":"YulIdentifier","src":"9177:15:53"},"nativeSrc":"9177:21:53","nodeType":"YulFunctionCall","src":"9177:21:53"},"variableNames":[{"name":"value","nativeSrc":"9168:5:53","nodeType":"YulIdentifier","src":"9168:5:53"}]},{"nativeSrc":"9208:151:53","nodeType":"YulBlock","src":"9208:151:53","statements":[{"nativeSrc":"9244:15:53","nodeType":"YulVariableDeclaration","src":"9244:15:53","value":{"kind":"number","nativeSrc":"9258:1:53","nodeType":"YulLiteral","src":"9258:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9248:6:53","nodeType":"YulTypedName","src":"9248:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9284:5:53","nodeType":"YulIdentifier","src":"9284:5:53"},{"kind":"number","nativeSrc":"9291:4:53","nodeType":"YulLiteral","src":"9291:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9280:3:53","nodeType":"YulIdentifier","src":"9280:3:53"},"nativeSrc":"9280:16:53","nodeType":"YulFunctionCall","src":"9280:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9323:9:53","nodeType":"YulIdentifier","src":"9323:9:53"},{"name":"offset","nativeSrc":"9334:6:53","nodeType":"YulIdentifier","src":"9334:6:53"}],"functionName":{"name":"add","nativeSrc":"9319:3:53","nodeType":"YulIdentifier","src":"9319:3:53"},"nativeSrc":"9319:22:53","nodeType":"YulFunctionCall","src":"9319:22:53"},{"name":"end","nativeSrc":"9343:3:53","nodeType":"YulIdentifier","src":"9343:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9298:20:53","nodeType":"YulIdentifier","src":"9298:20:53"},"nativeSrc":"9298:49:53","nodeType":"YulFunctionCall","src":"9298:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9273:6:53","nodeType":"YulIdentifier","src":"9273:6:53"},"nativeSrc":"9273:75:53","nodeType":"YulFunctionCall","src":"9273:75:53"},"nativeSrc":"9273:75:53","nodeType":"YulExpressionStatement","src":"9273:75:53"}]},{"nativeSrc":"9369:160:53","nodeType":"YulBlock","src":"9369:160:53","statements":[{"nativeSrc":"9413:16:53","nodeType":"YulVariableDeclaration","src":"9413:16:53","value":{"kind":"number","nativeSrc":"9427:2:53","nodeType":"YulLiteral","src":"9427:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9417:6:53","nodeType":"YulTypedName","src":"9417:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9454:5:53","nodeType":"YulIdentifier","src":"9454:5:53"},{"kind":"number","nativeSrc":"9461:4:53","nodeType":"YulLiteral","src":"9461:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9450:3:53","nodeType":"YulIdentifier","src":"9450:3:53"},"nativeSrc":"9450:16:53","nodeType":"YulFunctionCall","src":"9450:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9493:9:53","nodeType":"YulIdentifier","src":"9493:9:53"},{"name":"offset","nativeSrc":"9504:6:53","nodeType":"YulIdentifier","src":"9504:6:53"}],"functionName":{"name":"add","nativeSrc":"9489:3:53","nodeType":"YulIdentifier","src":"9489:3:53"},"nativeSrc":"9489:22:53","nodeType":"YulFunctionCall","src":"9489:22:53"},{"name":"end","nativeSrc":"9513:3:53","nodeType":"YulIdentifier","src":"9513:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9468:20:53","nodeType":"YulIdentifier","src":"9468:20:53"},"nativeSrc":"9468:49:53","nodeType":"YulFunctionCall","src":"9468:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9443:6:53","nodeType":"YulIdentifier","src":"9443:6:53"},"nativeSrc":"9443:75:53","nodeType":"YulFunctionCall","src":"9443:75:53"},"nativeSrc":"9443:75:53","nodeType":"YulExpressionStatement","src":"9443:75:53"}]},{"nativeSrc":"9539:158:53","nodeType":"YulBlock","src":"9539:158:53","statements":[{"nativeSrc":"9581:16:53","nodeType":"YulVariableDeclaration","src":"9581:16:53","value":{"kind":"number","nativeSrc":"9595:2:53","nodeType":"YulLiteral","src":"9595:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9585:6:53","nodeType":"YulTypedName","src":"9585:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9622:5:53","nodeType":"YulIdentifier","src":"9622:5:53"},{"kind":"number","nativeSrc":"9629:4:53","nodeType":"YulLiteral","src":"9629:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9618:3:53","nodeType":"YulIdentifier","src":"9618:3:53"},"nativeSrc":"9618:16:53","nodeType":"YulFunctionCall","src":"9618:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9661:9:53","nodeType":"YulIdentifier","src":"9661:9:53"},{"name":"offset","nativeSrc":"9672:6:53","nodeType":"YulIdentifier","src":"9672:6:53"}],"functionName":{"name":"add","nativeSrc":"9657:3:53","nodeType":"YulIdentifier","src":"9657:3:53"},"nativeSrc":"9657:22:53","nodeType":"YulFunctionCall","src":"9657:22:53"},{"name":"end","nativeSrc":"9681:3:53","nodeType":"YulIdentifier","src":"9681:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9636:20:53","nodeType":"YulIdentifier","src":"9636:20:53"},"nativeSrc":"9636:49:53","nodeType":"YulFunctionCall","src":"9636:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9611:6:53","nodeType":"YulIdentifier","src":"9611:6:53"},"nativeSrc":"9611:75:53","nodeType":"YulFunctionCall","src":"9611:75:53"},"nativeSrc":"9611:75:53","nodeType":"YulExpressionStatement","src":"9611:75:53"}]},{"nativeSrc":"9707:158:53","nodeType":"YulBlock","src":"9707:158:53","statements":[{"nativeSrc":"9749:16:53","nodeType":"YulVariableDeclaration","src":"9749:16:53","value":{"kind":"number","nativeSrc":"9763:2:53","nodeType":"YulLiteral","src":"9763:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9753:6:53","nodeType":"YulTypedName","src":"9753:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9790:5:53","nodeType":"YulIdentifier","src":"9790:5:53"},{"kind":"number","nativeSrc":"9797:4:53","nodeType":"YulLiteral","src":"9797:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9786:3:53","nodeType":"YulIdentifier","src":"9786:3:53"},"nativeSrc":"9786:16:53","nodeType":"YulFunctionCall","src":"9786:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9829:9:53","nodeType":"YulIdentifier","src":"9829:9:53"},{"name":"offset","nativeSrc":"9840:6:53","nodeType":"YulIdentifier","src":"9840:6:53"}],"functionName":{"name":"add","nativeSrc":"9825:3:53","nodeType":"YulIdentifier","src":"9825:3:53"},"nativeSrc":"9825:22:53","nodeType":"YulFunctionCall","src":"9825:22:53"},{"name":"end","nativeSrc":"9849:3:53","nodeType":"YulIdentifier","src":"9849:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9804:20:53","nodeType":"YulIdentifier","src":"9804:20:53"},"nativeSrc":"9804:49:53","nodeType":"YulFunctionCall","src":"9804:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9779:6:53","nodeType":"YulIdentifier","src":"9779:6:53"},"nativeSrc":"9779:75:53","nodeType":"YulFunctionCall","src":"9779:75:53"},"nativeSrc":"9779:75:53","nodeType":"YulExpressionStatement","src":"9779:75:53"}]},{"nativeSrc":"9875:159:53","nodeType":"YulBlock","src":"9875:159:53","statements":[{"nativeSrc":"9917:17:53","nodeType":"YulVariableDeclaration","src":"9917:17:53","value":{"kind":"number","nativeSrc":"9931:3:53","nodeType":"YulLiteral","src":"9931:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"9921:6:53","nodeType":"YulTypedName","src":"9921:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9959:5:53","nodeType":"YulIdentifier","src":"9959:5:53"},{"kind":"number","nativeSrc":"9966:4:53","nodeType":"YulLiteral","src":"9966:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"9955:3:53","nodeType":"YulIdentifier","src":"9955:3:53"},"nativeSrc":"9955:16:53","nodeType":"YulFunctionCall","src":"9955:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9998:9:53","nodeType":"YulIdentifier","src":"9998:9:53"},{"name":"offset","nativeSrc":"10009:6:53","nodeType":"YulIdentifier","src":"10009:6:53"}],"functionName":{"name":"add","nativeSrc":"9994:3:53","nodeType":"YulIdentifier","src":"9994:3:53"},"nativeSrc":"9994:22:53","nodeType":"YulFunctionCall","src":"9994:22:53"},{"name":"end","nativeSrc":"10018:3:53","nodeType":"YulIdentifier","src":"10018:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9973:20:53","nodeType":"YulIdentifier","src":"9973:20:53"},"nativeSrc":"9973:49:53","nodeType":"YulFunctionCall","src":"9973:49:53"}],"functionName":{"name":"mstore","nativeSrc":"9948:6:53","nodeType":"YulIdentifier","src":"9948:6:53"},"nativeSrc":"9948:75:53","nodeType":"YulFunctionCall","src":"9948:75:53"},"nativeSrc":"9948:75:53","nodeType":"YulExpressionStatement","src":"9948:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$15693_memory_ptr","nativeSrc":"8947:1094:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9007:9:53","nodeType":"YulTypedName","src":"9007:9:53","type":""},{"name":"end","nativeSrc":"9018:3:53","nodeType":"YulTypedName","src":"9018:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9026:5:53","nodeType":"YulTypedName","src":"9026:5:53","type":""}],"src":"8947:1094:53"},{"body":{"nativeSrc":"10143:294:53","nodeType":"YulBlock","src":"10143:294:53","statements":[{"body":{"nativeSrc":"10190:83:53","nodeType":"YulBlock","src":"10190:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10192:77:53","nodeType":"YulIdentifier","src":"10192:77:53"},"nativeSrc":"10192:79:53","nodeType":"YulFunctionCall","src":"10192:79:53"},"nativeSrc":"10192:79:53","nodeType":"YulExpressionStatement","src":"10192:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10164:7:53","nodeType":"YulIdentifier","src":"10164:7:53"},{"name":"headStart","nativeSrc":"10173:9:53","nodeType":"YulIdentifier","src":"10173:9:53"}],"functionName":{"name":"sub","nativeSrc":"10160:3:53","nodeType":"YulIdentifier","src":"10160:3:53"},"nativeSrc":"10160:23:53","nodeType":"YulFunctionCall","src":"10160:23:53"},{"kind":"number","nativeSrc":"10185:3:53","nodeType":"YulLiteral","src":"10185:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"10156:3:53","nodeType":"YulIdentifier","src":"10156:3:53"},"nativeSrc":"10156:33:53","nodeType":"YulFunctionCall","src":"10156:33:53"},"nativeSrc":"10153:120:53","nodeType":"YulIf","src":"10153:120:53"},{"nativeSrc":"10283:147:53","nodeType":"YulBlock","src":"10283:147:53","statements":[{"nativeSrc":"10298:15:53","nodeType":"YulVariableDeclaration","src":"10298:15:53","value":{"kind":"number","nativeSrc":"10312:1:53","nodeType":"YulLiteral","src":"10312:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10302:6:53","nodeType":"YulTypedName","src":"10302:6:53","type":""}]},{"nativeSrc":"10327:93:53","nodeType":"YulAssignment","src":"10327:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10392:9:53","nodeType":"YulIdentifier","src":"10392:9:53"},{"name":"offset","nativeSrc":"10403:6:53","nodeType":"YulIdentifier","src":"10403:6:53"}],"functionName":{"name":"add","nativeSrc":"10388:3:53","nodeType":"YulIdentifier","src":"10388:3:53"},"nativeSrc":"10388:22:53","nodeType":"YulFunctionCall","src":"10388:22:53"},{"name":"dataEnd","nativeSrc":"10412:7:53","nodeType":"YulIdentifier","src":"10412:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$15693_memory_ptr","nativeSrc":"10337:50:53","nodeType":"YulIdentifier","src":"10337:50:53"},"nativeSrc":"10337:83:53","nodeType":"YulFunctionCall","src":"10337:83:53"},"variableNames":[{"name":"value0","nativeSrc":"10327:6:53","nodeType":"YulIdentifier","src":"10327:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$15693_memory_ptr","nativeSrc":"10047:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10113:9:53","nodeType":"YulTypedName","src":"10113:9:53","type":""},{"name":"dataEnd","nativeSrc":"10124:7:53","nodeType":"YulTypedName","src":"10124:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10136:6:53","nodeType":"YulTypedName","src":"10136:6:53","type":""}],"src":"10047:390:53"},{"body":{"nativeSrc":"10597:288:53","nodeType":"YulBlock","src":"10597:288:53","statements":[{"nativeSrc":"10607:26:53","nodeType":"YulAssignment","src":"10607:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"10619:9:53","nodeType":"YulIdentifier","src":"10619:9:53"},{"kind":"number","nativeSrc":"10630:2:53","nodeType":"YulLiteral","src":"10630:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10615:3:53","nodeType":"YulIdentifier","src":"10615:3:53"},"nativeSrc":"10615:18:53","nodeType":"YulFunctionCall","src":"10615:18:53"},"variableNames":[{"name":"tail","nativeSrc":"10607:4:53","nodeType":"YulIdentifier","src":"10607:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10687:6:53","nodeType":"YulIdentifier","src":"10687:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10700:9:53","nodeType":"YulIdentifier","src":"10700:9:53"},{"kind":"number","nativeSrc":"10711:1:53","nodeType":"YulLiteral","src":"10711:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10696:3:53","nodeType":"YulIdentifier","src":"10696:3:53"},"nativeSrc":"10696:17:53","nodeType":"YulFunctionCall","src":"10696:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10643:43:53","nodeType":"YulIdentifier","src":"10643:43:53"},"nativeSrc":"10643:71:53","nodeType":"YulFunctionCall","src":"10643:71:53"},"nativeSrc":"10643:71:53","nodeType":"YulExpressionStatement","src":"10643:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"10768:6:53","nodeType":"YulIdentifier","src":"10768:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10781:9:53","nodeType":"YulIdentifier","src":"10781:9:53"},{"kind":"number","nativeSrc":"10792:2:53","nodeType":"YulLiteral","src":"10792:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10777:3:53","nodeType":"YulIdentifier","src":"10777:3:53"},"nativeSrc":"10777:18:53","nodeType":"YulFunctionCall","src":"10777:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"10724:43:53","nodeType":"YulIdentifier","src":"10724:43:53"},"nativeSrc":"10724:72:53","nodeType":"YulFunctionCall","src":"10724:72:53"},"nativeSrc":"10724:72:53","nodeType":"YulExpressionStatement","src":"10724:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"10850:6:53","nodeType":"YulIdentifier","src":"10850:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"10863:9:53","nodeType":"YulIdentifier","src":"10863:9:53"},{"kind":"number","nativeSrc":"10874:2:53","nodeType":"YulLiteral","src":"10874:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10859:3:53","nodeType":"YulIdentifier","src":"10859:3:53"},"nativeSrc":"10859:18:53","nodeType":"YulFunctionCall","src":"10859:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"10806:43:53","nodeType":"YulIdentifier","src":"10806:43:53"},"nativeSrc":"10806:72:53","nodeType":"YulFunctionCall","src":"10806:72:53"},"nativeSrc":"10806:72:53","nodeType":"YulExpressionStatement","src":"10806:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"10443:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10553:9:53","nodeType":"YulTypedName","src":"10553:9:53","type":""},{"name":"value2","nativeSrc":"10565:6:53","nodeType":"YulTypedName","src":"10565:6:53","type":""},{"name":"value1","nativeSrc":"10573:6:53","nodeType":"YulTypedName","src":"10573:6:53","type":""},{"name":"value0","nativeSrc":"10581:6:53","nodeType":"YulTypedName","src":"10581:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10592:4:53","nodeType":"YulTypedName","src":"10592:4:53","type":""}],"src":"10443:442:53"},{"body":{"nativeSrc":"10919:152:53","nodeType":"YulBlock","src":"10919:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10936:1:53","nodeType":"YulLiteral","src":"10936:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10939:77:53","nodeType":"YulLiteral","src":"10939:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10929:6:53","nodeType":"YulIdentifier","src":"10929:6:53"},"nativeSrc":"10929:88:53","nodeType":"YulFunctionCall","src":"10929:88:53"},"nativeSrc":"10929:88:53","nodeType":"YulExpressionStatement","src":"10929:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11033:1:53","nodeType":"YulLiteral","src":"11033:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11036:4:53","nodeType":"YulLiteral","src":"11036:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"11026:6:53","nodeType":"YulIdentifier","src":"11026:6:53"},"nativeSrc":"11026:15:53","nodeType":"YulFunctionCall","src":"11026:15:53"},"nativeSrc":"11026:15:53","nodeType":"YulExpressionStatement","src":"11026:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11057:1:53","nodeType":"YulLiteral","src":"11057:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11060:4:53","nodeType":"YulLiteral","src":"11060:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11050:6:53","nodeType":"YulIdentifier","src":"11050:6:53"},"nativeSrc":"11050:15:53","nodeType":"YulFunctionCall","src":"11050:15:53"},"nativeSrc":"11050:15:53","nodeType":"YulExpressionStatement","src":"11050:15:53"}]},"name":"panic_error_0x21","nativeSrc":"10891:180:53","nodeType":"YulFunctionDefinition","src":"10891:180:53"},{"body":{"nativeSrc":"11132:53:53","nodeType":"YulBlock","src":"11132:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11149:3:53","nodeType":"YulIdentifier","src":"11149:3:53"},{"arguments":[{"name":"value","nativeSrc":"11172:5:53","nodeType":"YulIdentifier","src":"11172:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11154:17:53","nodeType":"YulIdentifier","src":"11154:17:53"},"nativeSrc":"11154:24:53","nodeType":"YulFunctionCall","src":"11154:24:53"}],"functionName":{"name":"mstore","nativeSrc":"11142:6:53","nodeType":"YulIdentifier","src":"11142:6:53"},"nativeSrc":"11142:37:53","nodeType":"YulFunctionCall","src":"11142:37:53"},"nativeSrc":"11142:37:53","nodeType":"YulExpressionStatement","src":"11142:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"11077:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11120:5:53","nodeType":"YulTypedName","src":"11120:5:53","type":""},{"name":"pos","nativeSrc":"11127:3:53","nodeType":"YulTypedName","src":"11127:3:53","type":""}],"src":"11077:108:53"},{"body":{"nativeSrc":"11395:219:53","nodeType":"YulBlock","src":"11395:219:53","statements":[{"nativeSrc":"11405:26:53","nodeType":"YulVariableDeclaration","src":"11405:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"11421:3:53","nodeType":"YulIdentifier","src":"11421:3:53"},{"kind":"number","nativeSrc":"11426:4:53","nodeType":"YulLiteral","src":"11426:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11417:3:53","nodeType":"YulIdentifier","src":"11417:3:53"},"nativeSrc":"11417:14:53","nodeType":"YulFunctionCall","src":"11417:14:53"},"variables":[{"name":"tail","nativeSrc":"11409:4:53","nodeType":"YulTypedName","src":"11409:4:53","type":""}]},{"nativeSrc":"11441:166:53","nodeType":"YulBlock","src":"11441:166:53","statements":[{"nativeSrc":"11478:43:53","nodeType":"YulVariableDeclaration","src":"11478:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11508:5:53","nodeType":"YulIdentifier","src":"11508:5:53"},{"kind":"number","nativeSrc":"11515:4:53","nodeType":"YulLiteral","src":"11515:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11504:3:53","nodeType":"YulIdentifier","src":"11504:3:53"},"nativeSrc":"11504:16:53","nodeType":"YulFunctionCall","src":"11504:16:53"}],"functionName":{"name":"mload","nativeSrc":"11498:5:53","nodeType":"YulIdentifier","src":"11498:5:53"},"nativeSrc":"11498:23:53","nodeType":"YulFunctionCall","src":"11498:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"11482:12:53","nodeType":"YulTypedName","src":"11482:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"11568:12:53","nodeType":"YulIdentifier","src":"11568:12:53"},{"arguments":[{"name":"pos","nativeSrc":"11586:3:53","nodeType":"YulIdentifier","src":"11586:3:53"},{"kind":"number","nativeSrc":"11591:4:53","nodeType":"YulLiteral","src":"11591:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11582:3:53","nodeType":"YulIdentifier","src":"11582:3:53"},"nativeSrc":"11582:14:53","nodeType":"YulFunctionCall","src":"11582:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"11534:33:53","nodeType":"YulIdentifier","src":"11534:33:53"},"nativeSrc":"11534:63:53","nodeType":"YulFunctionCall","src":"11534:63:53"},"nativeSrc":"11534:63:53","nodeType":"YulExpressionStatement","src":"11534:63:53"}]}]},"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"11261:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11382:5:53","nodeType":"YulTypedName","src":"11382:5:53","type":""},{"name":"pos","nativeSrc":"11389:3:53","nodeType":"YulTypedName","src":"11389:3:53","type":""}],"src":"11261:353:53"},{"body":{"nativeSrc":"11786:192:53","nodeType":"YulBlock","src":"11786:192:53","statements":[{"nativeSrc":"11796:26:53","nodeType":"YulAssignment","src":"11796:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11808:9:53","nodeType":"YulIdentifier","src":"11808:9:53"},{"kind":"number","nativeSrc":"11819:2:53","nodeType":"YulLiteral","src":"11819:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11804:3:53","nodeType":"YulIdentifier","src":"11804:3:53"},"nativeSrc":"11804:18:53","nodeType":"YulFunctionCall","src":"11804:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11796:4:53","nodeType":"YulIdentifier","src":"11796:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11944:6:53","nodeType":"YulIdentifier","src":"11944:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"11957:9:53","nodeType":"YulIdentifier","src":"11957:9:53"},{"kind":"number","nativeSrc":"11968:1:53","nodeType":"YulLiteral","src":"11968:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11953:3:53","nodeType":"YulIdentifier","src":"11953:3:53"},"nativeSrc":"11953:17:53","nodeType":"YulFunctionCall","src":"11953:17:53"}],"functionName":{"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"11832:111:53","nodeType":"YulIdentifier","src":"11832:111:53"},"nativeSrc":"11832:139:53","nodeType":"YulFunctionCall","src":"11832:139:53"},"nativeSrc":"11832:139:53","nodeType":"YulExpressionStatement","src":"11832:139:53"}]},"name":"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed","nativeSrc":"11620:358:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11758:9:53","nodeType":"YulTypedName","src":"11758:9:53","type":""},{"name":"value0","nativeSrc":"11770:6:53","nodeType":"YulTypedName","src":"11770:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11781:4:53","nodeType":"YulTypedName","src":"11781:4:53","type":""}],"src":"11620:358:53"},{"body":{"nativeSrc":"12042:62:53","nodeType":"YulBlock","src":"12042:62:53","statements":[{"body":{"nativeSrc":"12076:22:53","nodeType":"YulBlock","src":"12076:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"12078:16:53","nodeType":"YulIdentifier","src":"12078:16:53"},"nativeSrc":"12078:18:53","nodeType":"YulFunctionCall","src":"12078:18:53"},"nativeSrc":"12078:18:53","nodeType":"YulExpressionStatement","src":"12078:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12065:5:53","nodeType":"YulIdentifier","src":"12065:5:53"},{"kind":"number","nativeSrc":"12072:1:53","nodeType":"YulLiteral","src":"12072:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"12062:2:53","nodeType":"YulIdentifier","src":"12062:2:53"},"nativeSrc":"12062:12:53","nodeType":"YulFunctionCall","src":"12062:12:53"}],"functionName":{"name":"iszero","nativeSrc":"12055:6:53","nodeType":"YulIdentifier","src":"12055:6:53"},"nativeSrc":"12055:20:53","nodeType":"YulFunctionCall","src":"12055:20:53"},"nativeSrc":"12052:46:53","nodeType":"YulIf","src":"12052:46:53"}]},"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"11984:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12035:5:53","nodeType":"YulTypedName","src":"12035:5:53","type":""}],"src":"11984:120:53"},{"body":{"nativeSrc":"12170:81:53","nodeType":"YulBlock","src":"12170:81:53","statements":[{"nativeSrc":"12180:16:53","nodeType":"YulAssignment","src":"12180:16:53","value":{"name":"value","nativeSrc":"12191:5:53","nodeType":"YulIdentifier","src":"12191:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"12180:7:53","nodeType":"YulIdentifier","src":"12180:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12239:5:53","nodeType":"YulIdentifier","src":"12239:5:53"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"12197:41:53","nodeType":"YulIdentifier","src":"12197:41:53"},"nativeSrc":"12197:48:53","nodeType":"YulFunctionCall","src":"12197:48:53"},"nativeSrc":"12197:48:53","nodeType":"YulExpressionStatement","src":"12197:48:53"}]},"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"12110:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12152:5:53","nodeType":"YulTypedName","src":"12152:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12162:7:53","nodeType":"YulTypedName","src":"12162:7:53","type":""}],"src":"12110:141:53"},{"body":{"nativeSrc":"12330:68:53","nodeType":"YulBlock","src":"12330:68:53","statements":[{"nativeSrc":"12340:52:53","nodeType":"YulAssignment","src":"12340:52:53","value":{"arguments":[{"name":"value","nativeSrc":"12386:5:53","nodeType":"YulIdentifier","src":"12386:5:53"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"12353:32:53","nodeType":"YulIdentifier","src":"12353:32:53"},"nativeSrc":"12353:39:53","nodeType":"YulFunctionCall","src":"12353:39:53"},"variableNames":[{"name":"converted","nativeSrc":"12340:9:53","nodeType":"YulIdentifier","src":"12340:9:53"}]}]},"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"12257:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12310:5:53","nodeType":"YulTypedName","src":"12310:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12320:9:53","nodeType":"YulTypedName","src":"12320:9:53","type":""}],"src":"12257:141:53"},{"body":{"nativeSrc":"12472:79:53","nodeType":"YulBlock","src":"12472:79:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12489:3:53","nodeType":"YulIdentifier","src":"12489:3:53"},{"arguments":[{"name":"value","nativeSrc":"12538:5:53","nodeType":"YulIdentifier","src":"12538:5:53"}],"functionName":{"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"12494:43:53","nodeType":"YulIdentifier","src":"12494:43:53"},"nativeSrc":"12494:50:53","nodeType":"YulFunctionCall","src":"12494:50:53"}],"functionName":{"name":"mstore","nativeSrc":"12482:6:53","nodeType":"YulIdentifier","src":"12482:6:53"},"nativeSrc":"12482:63:53","nodeType":"YulFunctionCall","src":"12482:63:53"},"nativeSrc":"12482:63:53","nodeType":"YulExpressionStatement","src":"12482:63:53"}]},"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"12404:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12460:5:53","nodeType":"YulTypedName","src":"12460:5:53","type":""},{"name":"pos","nativeSrc":"12467:3:53","nodeType":"YulTypedName","src":"12467:3:53","type":""}],"src":"12404:147:53"},{"body":{"nativeSrc":"12612:53:53","nodeType":"YulBlock","src":"12612:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12629:3:53","nodeType":"YulIdentifier","src":"12629:3:53"},{"arguments":[{"name":"value","nativeSrc":"12652:5:53","nodeType":"YulIdentifier","src":"12652:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"12634:17:53","nodeType":"YulIdentifier","src":"12634:17:53"},"nativeSrc":"12634:24:53","nodeType":"YulFunctionCall","src":"12634:24:53"}],"functionName":{"name":"mstore","nativeSrc":"12622:6:53","nodeType":"YulIdentifier","src":"12622:6:53"},"nativeSrc":"12622:37:53","nodeType":"YulFunctionCall","src":"12622:37:53"},"nativeSrc":"12622:37:53","nodeType":"YulExpressionStatement","src":"12622:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"12557:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12600:5:53","nodeType":"YulTypedName","src":"12600:5:53","type":""},{"name":"pos","nativeSrc":"12607:3:53","nodeType":"YulTypedName","src":"12607:3:53","type":""}],"src":"12557:108:53"},{"body":{"nativeSrc":"12756:73:53","nodeType":"YulBlock","src":"12756:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12773:3:53","nodeType":"YulIdentifier","src":"12773:3:53"},{"name":"length","nativeSrc":"12778:6:53","nodeType":"YulIdentifier","src":"12778:6:53"}],"functionName":{"name":"mstore","nativeSrc":"12766:6:53","nodeType":"YulIdentifier","src":"12766:6:53"},"nativeSrc":"12766:19:53","nodeType":"YulFunctionCall","src":"12766:19:53"},"nativeSrc":"12766:19:53","nodeType":"YulExpressionStatement","src":"12766:19:53"},{"nativeSrc":"12794:29:53","nodeType":"YulAssignment","src":"12794:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"12813:3:53","nodeType":"YulIdentifier","src":"12813:3:53"},{"kind":"number","nativeSrc":"12818:4:53","nodeType":"YulLiteral","src":"12818:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12809:3:53","nodeType":"YulIdentifier","src":"12809:3:53"},"nativeSrc":"12809:14:53","nodeType":"YulFunctionCall","src":"12809:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"12794:11:53","nodeType":"YulIdentifier","src":"12794:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"12671:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12728:3:53","nodeType":"YulTypedName","src":"12728:3:53","type":""},{"name":"length","nativeSrc":"12733:6:53","nodeType":"YulTypedName","src":"12733:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12744:11:53","nodeType":"YulTypedName","src":"12744:11:53","type":""}],"src":"12671:158:53"},{"body":{"nativeSrc":"12915:273:53","nodeType":"YulBlock","src":"12915:273:53","statements":[{"nativeSrc":"12925:52:53","nodeType":"YulVariableDeclaration","src":"12925:52:53","value":{"arguments":[{"name":"value","nativeSrc":"12971:5:53","nodeType":"YulIdentifier","src":"12971:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"12939:31:53","nodeType":"YulIdentifier","src":"12939:31:53"},"nativeSrc":"12939:38:53","nodeType":"YulFunctionCall","src":"12939:38:53"},"variables":[{"name":"length","nativeSrc":"12929:6:53","nodeType":"YulTypedName","src":"12929:6:53","type":""}]},{"nativeSrc":"12986:67:53","nodeType":"YulAssignment","src":"12986:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"13041:3:53","nodeType":"YulIdentifier","src":"13041:3:53"},{"name":"length","nativeSrc":"13046:6:53","nodeType":"YulIdentifier","src":"13046:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"12993:47:53","nodeType":"YulIdentifier","src":"12993:47:53"},"nativeSrc":"12993:60:53","nodeType":"YulFunctionCall","src":"12993:60:53"},"variableNames":[{"name":"pos","nativeSrc":"12986:3:53","nodeType":"YulIdentifier","src":"12986:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13101:5:53","nodeType":"YulIdentifier","src":"13101:5:53"},{"kind":"number","nativeSrc":"13108:4:53","nodeType":"YulLiteral","src":"13108:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13097:3:53","nodeType":"YulIdentifier","src":"13097:3:53"},"nativeSrc":"13097:16:53","nodeType":"YulFunctionCall","src":"13097:16:53"},{"name":"pos","nativeSrc":"13115:3:53","nodeType":"YulIdentifier","src":"13115:3:53"},{"name":"length","nativeSrc":"13120:6:53","nodeType":"YulIdentifier","src":"13120:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13062:34:53","nodeType":"YulIdentifier","src":"13062:34:53"},"nativeSrc":"13062:65:53","nodeType":"YulFunctionCall","src":"13062:65:53"},"nativeSrc":"13062:65:53","nodeType":"YulExpressionStatement","src":"13062:65:53"},{"nativeSrc":"13136:46:53","nodeType":"YulAssignment","src":"13136:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"13147:3:53","nodeType":"YulIdentifier","src":"13147:3:53"},{"arguments":[{"name":"length","nativeSrc":"13174:6:53","nodeType":"YulIdentifier","src":"13174:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13152:21:53","nodeType":"YulIdentifier","src":"13152:21:53"},"nativeSrc":"13152:29:53","nodeType":"YulFunctionCall","src":"13152:29:53"}],"functionName":{"name":"add","nativeSrc":"13143:3:53","nodeType":"YulIdentifier","src":"13143:3:53"},"nativeSrc":"13143:39:53","nodeType":"YulFunctionCall","src":"13143:39:53"},"variableNames":[{"name":"end","nativeSrc":"13136:3:53","nodeType":"YulIdentifier","src":"13136:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"12835:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12896:5:53","nodeType":"YulTypedName","src":"12896:5:53","type":""},{"name":"pos","nativeSrc":"12903:3:53","nodeType":"YulTypedName","src":"12903:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12911:3:53","nodeType":"YulTypedName","src":"12911:3:53","type":""}],"src":"12835:353:53"},{"body":{"nativeSrc":"13378:849:53","nodeType":"YulBlock","src":"13378:849:53","statements":[{"nativeSrc":"13388:26:53","nodeType":"YulVariableDeclaration","src":"13388:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"13404:3:53","nodeType":"YulIdentifier","src":"13404:3:53"},{"kind":"number","nativeSrc":"13409:4:53","nodeType":"YulLiteral","src":"13409:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13400:3:53","nodeType":"YulIdentifier","src":"13400:3:53"},"nativeSrc":"13400:14:53","nodeType":"YulFunctionCall","src":"13400:14:53"},"variables":[{"name":"tail","nativeSrc":"13392:4:53","nodeType":"YulTypedName","src":"13392:4:53","type":""}]},{"nativeSrc":"13424:182:53","nodeType":"YulBlock","src":"13424:182:53","statements":[{"nativeSrc":"13464:43:53","nodeType":"YulVariableDeclaration","src":"13464:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13494:5:53","nodeType":"YulIdentifier","src":"13494:5:53"},{"kind":"number","nativeSrc":"13501:4:53","nodeType":"YulLiteral","src":"13501:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13490:3:53","nodeType":"YulIdentifier","src":"13490:3:53"},"nativeSrc":"13490:16:53","nodeType":"YulFunctionCall","src":"13490:16:53"}],"functionName":{"name":"mload","nativeSrc":"13484:5:53","nodeType":"YulIdentifier","src":"13484:5:53"},"nativeSrc":"13484:23:53","nodeType":"YulFunctionCall","src":"13484:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13468:12:53","nodeType":"YulTypedName","src":"13468:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13567:12:53","nodeType":"YulIdentifier","src":"13567:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13585:3:53","nodeType":"YulIdentifier","src":"13585:3:53"},{"kind":"number","nativeSrc":"13590:4:53","nodeType":"YulLiteral","src":"13590:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13581:3:53","nodeType":"YulIdentifier","src":"13581:3:53"},"nativeSrc":"13581:14:53","nodeType":"YulFunctionCall","src":"13581:14:53"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"13520:46:53","nodeType":"YulIdentifier","src":"13520:46:53"},"nativeSrc":"13520:76:53","nodeType":"YulFunctionCall","src":"13520:76:53"},"nativeSrc":"13520:76:53","nodeType":"YulExpressionStatement","src":"13520:76:53"}]},{"nativeSrc":"13616:165:53","nodeType":"YulBlock","src":"13616:165:53","statements":[{"nativeSrc":"13652:43:53","nodeType":"YulVariableDeclaration","src":"13652:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13682:5:53","nodeType":"YulIdentifier","src":"13682:5:53"},{"kind":"number","nativeSrc":"13689:4:53","nodeType":"YulLiteral","src":"13689:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13678:3:53","nodeType":"YulIdentifier","src":"13678:3:53"},"nativeSrc":"13678:16:53","nodeType":"YulFunctionCall","src":"13678:16:53"}],"functionName":{"name":"mload","nativeSrc":"13672:5:53","nodeType":"YulIdentifier","src":"13672:5:53"},"nativeSrc":"13672:23:53","nodeType":"YulFunctionCall","src":"13672:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13656:12:53","nodeType":"YulTypedName","src":"13656:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13742:12:53","nodeType":"YulIdentifier","src":"13742:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13760:3:53","nodeType":"YulIdentifier","src":"13760:3:53"},{"kind":"number","nativeSrc":"13765:4:53","nodeType":"YulLiteral","src":"13765:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13756:3:53","nodeType":"YulIdentifier","src":"13756:3:53"},"nativeSrc":"13756:14:53","nodeType":"YulFunctionCall","src":"13756:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"13708:33:53","nodeType":"YulIdentifier","src":"13708:33:53"},"nativeSrc":"13708:63:53","nodeType":"YulFunctionCall","src":"13708:63:53"},"nativeSrc":"13708:63:53","nodeType":"YulExpressionStatement","src":"13708:63:53"}]},{"nativeSrc":"13791:166:53","nodeType":"YulBlock","src":"13791:166:53","statements":[{"nativeSrc":"13828:43:53","nodeType":"YulVariableDeclaration","src":"13828:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13858:5:53","nodeType":"YulIdentifier","src":"13858:5:53"},{"kind":"number","nativeSrc":"13865:4:53","nodeType":"YulLiteral","src":"13865:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13854:3:53","nodeType":"YulIdentifier","src":"13854:3:53"},"nativeSrc":"13854:16:53","nodeType":"YulFunctionCall","src":"13854:16:53"}],"functionName":{"name":"mload","nativeSrc":"13848:5:53","nodeType":"YulIdentifier","src":"13848:5:53"},"nativeSrc":"13848:23:53","nodeType":"YulFunctionCall","src":"13848:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13832:12:53","nodeType":"YulTypedName","src":"13832:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13918:12:53","nodeType":"YulIdentifier","src":"13918:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13936:3:53","nodeType":"YulIdentifier","src":"13936:3:53"},{"kind":"number","nativeSrc":"13941:4:53","nodeType":"YulLiteral","src":"13941:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13932:3:53","nodeType":"YulIdentifier","src":"13932:3:53"},"nativeSrc":"13932:14:53","nodeType":"YulFunctionCall","src":"13932:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"13884:33:53","nodeType":"YulIdentifier","src":"13884:33:53"},"nativeSrc":"13884:63:53","nodeType":"YulFunctionCall","src":"13884:63:53"},"nativeSrc":"13884:63:53","nodeType":"YulExpressionStatement","src":"13884:63:53"}]},{"nativeSrc":"13967:233:53","nodeType":"YulBlock","src":"13967:233:53","statements":[{"nativeSrc":"14002:43:53","nodeType":"YulVariableDeclaration","src":"14002:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14032:5:53","nodeType":"YulIdentifier","src":"14032:5:53"},{"kind":"number","nativeSrc":"14039:4:53","nodeType":"YulLiteral","src":"14039:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14028:3:53","nodeType":"YulIdentifier","src":"14028:3:53"},"nativeSrc":"14028:16:53","nodeType":"YulFunctionCall","src":"14028:16:53"}],"functionName":{"name":"mload","nativeSrc":"14022:5:53","nodeType":"YulIdentifier","src":"14022:5:53"},"nativeSrc":"14022:23:53","nodeType":"YulFunctionCall","src":"14022:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"14006:12:53","nodeType":"YulTypedName","src":"14006:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14070:3:53","nodeType":"YulIdentifier","src":"14070:3:53"},{"kind":"number","nativeSrc":"14075:4:53","nodeType":"YulLiteral","src":"14075:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14066:3:53","nodeType":"YulIdentifier","src":"14066:3:53"},"nativeSrc":"14066:14:53","nodeType":"YulFunctionCall","src":"14066:14:53"},{"arguments":[{"name":"tail","nativeSrc":"14086:4:53","nodeType":"YulIdentifier","src":"14086:4:53"},{"name":"pos","nativeSrc":"14092:3:53","nodeType":"YulIdentifier","src":"14092:3:53"}],"functionName":{"name":"sub","nativeSrc":"14082:3:53","nodeType":"YulIdentifier","src":"14082:3:53"},"nativeSrc":"14082:14:53","nodeType":"YulFunctionCall","src":"14082:14:53"}],"functionName":{"name":"mstore","nativeSrc":"14059:6:53","nodeType":"YulIdentifier","src":"14059:6:53"},"nativeSrc":"14059:38:53","nodeType":"YulFunctionCall","src":"14059:38:53"},"nativeSrc":"14059:38:53","nodeType":"YulExpressionStatement","src":"14059:38:53"},{"nativeSrc":"14110:79:53","nodeType":"YulAssignment","src":"14110:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"14170:12:53","nodeType":"YulIdentifier","src":"14170:12:53"},{"name":"tail","nativeSrc":"14184:4:53","nodeType":"YulIdentifier","src":"14184:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"14118:51:53","nodeType":"YulIdentifier","src":"14118:51:53"},"nativeSrc":"14118:71:53","nodeType":"YulFunctionCall","src":"14118:71:53"},"variableNames":[{"name":"tail","nativeSrc":"14110:4:53","nodeType":"YulIdentifier","src":"14110:4:53"}]}]},{"nativeSrc":"14210:11:53","nodeType":"YulAssignment","src":"14210:11:53","value":{"name":"tail","nativeSrc":"14217:4:53","nodeType":"YulIdentifier","src":"14217:4:53"},"variableNames":[{"name":"end","nativeSrc":"14210:3:53","nodeType":"YulIdentifier","src":"14210:3:53"}]}]},"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"13250:977:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13357:5:53","nodeType":"YulTypedName","src":"13357:5:53","type":""},{"name":"pos","nativeSrc":"13364:3:53","nodeType":"YulTypedName","src":"13364:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13373:3:53","nodeType":"YulTypedName","src":"13373:3:53","type":""}],"src":"13250:977:53"},{"body":{"nativeSrc":"14385:229:53","nodeType":"YulBlock","src":"14385:229:53","statements":[{"nativeSrc":"14395:26:53","nodeType":"YulAssignment","src":"14395:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14407:9:53","nodeType":"YulIdentifier","src":"14407:9:53"},{"kind":"number","nativeSrc":"14418:2:53","nodeType":"YulLiteral","src":"14418:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14403:3:53","nodeType":"YulIdentifier","src":"14403:3:53"},"nativeSrc":"14403:18:53","nodeType":"YulFunctionCall","src":"14403:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14395:4:53","nodeType":"YulIdentifier","src":"14395:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14442:9:53","nodeType":"YulIdentifier","src":"14442:9:53"},{"kind":"number","nativeSrc":"14453:1:53","nodeType":"YulLiteral","src":"14453:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14438:3:53","nodeType":"YulIdentifier","src":"14438:3:53"},"nativeSrc":"14438:17:53","nodeType":"YulFunctionCall","src":"14438:17:53"},{"arguments":[{"name":"tail","nativeSrc":"14461:4:53","nodeType":"YulIdentifier","src":"14461:4:53"},{"name":"headStart","nativeSrc":"14467:9:53","nodeType":"YulIdentifier","src":"14467:9:53"}],"functionName":{"name":"sub","nativeSrc":"14457:3:53","nodeType":"YulIdentifier","src":"14457:3:53"},"nativeSrc":"14457:20:53","nodeType":"YulFunctionCall","src":"14457:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14431:6:53","nodeType":"YulIdentifier","src":"14431:6:53"},"nativeSrc":"14431:47:53","nodeType":"YulFunctionCall","src":"14431:47:53"},"nativeSrc":"14431:47:53","nodeType":"YulExpressionStatement","src":"14431:47:53"},{"nativeSrc":"14487:120:53","nodeType":"YulAssignment","src":"14487:120:53","value":{"arguments":[{"name":"value0","nativeSrc":"14593:6:53","nodeType":"YulIdentifier","src":"14593:6:53"},{"name":"tail","nativeSrc":"14602:4:53","nodeType":"YulIdentifier","src":"14602:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"14495:97:53","nodeType":"YulIdentifier","src":"14495:97:53"},"nativeSrc":"14495:112:53","nodeType":"YulFunctionCall","src":"14495:112:53"},"variableNames":[{"name":"tail","nativeSrc":"14487:4:53","nodeType":"YulIdentifier","src":"14487:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed","nativeSrc":"14233:381:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14357:9:53","nodeType":"YulTypedName","src":"14357:9:53","type":""},{"name":"value0","nativeSrc":"14369:6:53","nodeType":"YulTypedName","src":"14369:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14380:4:53","nodeType":"YulTypedName","src":"14380:4:53","type":""}],"src":"14233:381:53"},{"body":{"nativeSrc":"14709:28:53","nodeType":"YulBlock","src":"14709:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14726:1:53","nodeType":"YulLiteral","src":"14726:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14729:1:53","nodeType":"YulLiteral","src":"14729:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14719:6:53","nodeType":"YulIdentifier","src":"14719:6:53"},"nativeSrc":"14719:12:53","nodeType":"YulFunctionCall","src":"14719:12:53"},"nativeSrc":"14719:12:53","nodeType":"YulExpressionStatement","src":"14719:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14620:117:53","nodeType":"YulFunctionDefinition","src":"14620:117:53"},{"body":{"nativeSrc":"14809:241:53","nodeType":"YulBlock","src":"14809:241:53","statements":[{"body":{"nativeSrc":"14914:22:53","nodeType":"YulBlock","src":"14914:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"14916:16:53","nodeType":"YulIdentifier","src":"14916:16:53"},"nativeSrc":"14916:18:53","nodeType":"YulFunctionCall","src":"14916:18:53"},"nativeSrc":"14916:18:53","nodeType":"YulExpressionStatement","src":"14916:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14886:6:53","nodeType":"YulIdentifier","src":"14886:6:53"},{"kind":"number","nativeSrc":"14894:18:53","nodeType":"YulLiteral","src":"14894:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14883:2:53","nodeType":"YulIdentifier","src":"14883:2:53"},"nativeSrc":"14883:30:53","nodeType":"YulFunctionCall","src":"14883:30:53"},"nativeSrc":"14880:56:53","nodeType":"YulIf","src":"14880:56:53"},{"nativeSrc":"14946:37:53","nodeType":"YulAssignment","src":"14946:37:53","value":{"arguments":[{"name":"length","nativeSrc":"14976:6:53","nodeType":"YulIdentifier","src":"14976:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"14954:21:53","nodeType":"YulIdentifier","src":"14954:21:53"},"nativeSrc":"14954:29:53","nodeType":"YulFunctionCall","src":"14954:29:53"},"variableNames":[{"name":"size","nativeSrc":"14946:4:53","nodeType":"YulIdentifier","src":"14946:4:53"}]},{"nativeSrc":"15020:23:53","nodeType":"YulAssignment","src":"15020:23:53","value":{"arguments":[{"name":"size","nativeSrc":"15032:4:53","nodeType":"YulIdentifier","src":"15032:4:53"},{"kind":"number","nativeSrc":"15038:4:53","nodeType":"YulLiteral","src":"15038:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15028:3:53","nodeType":"YulIdentifier","src":"15028:3:53"},"nativeSrc":"15028:15:53","nodeType":"YulFunctionCall","src":"15028:15:53"},"variableNames":[{"name":"size","nativeSrc":"15020:4:53","nodeType":"YulIdentifier","src":"15020:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14743:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14793:6:53","nodeType":"YulTypedName","src":"14793:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14804:4:53","nodeType":"YulTypedName","src":"14804:4:53","type":""}],"src":"14743:307:53"},{"body":{"nativeSrc":"15120:84:53","nodeType":"YulBlock","src":"15120:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"15144:3:53","nodeType":"YulIdentifier","src":"15144:3:53"},{"name":"src","nativeSrc":"15149:3:53","nodeType":"YulIdentifier","src":"15149:3:53"},{"name":"length","nativeSrc":"15154:6:53","nodeType":"YulIdentifier","src":"15154:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"15131:12:53","nodeType":"YulIdentifier","src":"15131:12:53"},"nativeSrc":"15131:30:53","nodeType":"YulFunctionCall","src":"15131:30:53"},"nativeSrc":"15131:30:53","nodeType":"YulExpressionStatement","src":"15131:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"15181:3:53","nodeType":"YulIdentifier","src":"15181:3:53"},{"name":"length","nativeSrc":"15186:6:53","nodeType":"YulIdentifier","src":"15186:6:53"}],"functionName":{"name":"add","nativeSrc":"15177:3:53","nodeType":"YulIdentifier","src":"15177:3:53"},"nativeSrc":"15177:16:53","nodeType":"YulFunctionCall","src":"15177:16:53"},{"kind":"number","nativeSrc":"15195:1:53","nodeType":"YulLiteral","src":"15195:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15170:6:53","nodeType":"YulIdentifier","src":"15170:6:53"},"nativeSrc":"15170:27:53","nodeType":"YulFunctionCall","src":"15170:27:53"},"nativeSrc":"15170:27:53","nodeType":"YulExpressionStatement","src":"15170:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15056:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15102:3:53","nodeType":"YulTypedName","src":"15102:3:53","type":""},{"name":"dst","nativeSrc":"15107:3:53","nodeType":"YulTypedName","src":"15107:3:53","type":""},{"name":"length","nativeSrc":"15112:6:53","nodeType":"YulTypedName","src":"15112:6:53","type":""}],"src":"15056:148:53"},{"body":{"nativeSrc":"15293:340:53","nodeType":"YulBlock","src":"15293:340:53","statements":[{"nativeSrc":"15303:74:53","nodeType":"YulAssignment","src":"15303:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"15369:6:53","nodeType":"YulIdentifier","src":"15369:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"15328:40:53","nodeType":"YulIdentifier","src":"15328:40:53"},"nativeSrc":"15328:48:53","nodeType":"YulFunctionCall","src":"15328:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"15312:15:53","nodeType":"YulIdentifier","src":"15312:15:53"},"nativeSrc":"15312:65:53","nodeType":"YulFunctionCall","src":"15312:65:53"},"variableNames":[{"name":"array","nativeSrc":"15303:5:53","nodeType":"YulIdentifier","src":"15303:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"15393:5:53","nodeType":"YulIdentifier","src":"15393:5:53"},{"name":"length","nativeSrc":"15400:6:53","nodeType":"YulIdentifier","src":"15400:6:53"}],"functionName":{"name":"mstore","nativeSrc":"15386:6:53","nodeType":"YulIdentifier","src":"15386:6:53"},"nativeSrc":"15386:21:53","nodeType":"YulFunctionCall","src":"15386:21:53"},"nativeSrc":"15386:21:53","nodeType":"YulExpressionStatement","src":"15386:21:53"},{"nativeSrc":"15416:27:53","nodeType":"YulVariableDeclaration","src":"15416:27:53","value":{"arguments":[{"name":"array","nativeSrc":"15431:5:53","nodeType":"YulIdentifier","src":"15431:5:53"},{"kind":"number","nativeSrc":"15438:4:53","nodeType":"YulLiteral","src":"15438:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15427:3:53","nodeType":"YulIdentifier","src":"15427:3:53"},"nativeSrc":"15427:16:53","nodeType":"YulFunctionCall","src":"15427:16:53"},"variables":[{"name":"dst","nativeSrc":"15420:3:53","nodeType":"YulTypedName","src":"15420:3:53","type":""}]},{"body":{"nativeSrc":"15481:83:53","nodeType":"YulBlock","src":"15481:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"15483:77:53","nodeType":"YulIdentifier","src":"15483:77:53"},"nativeSrc":"15483:79:53","nodeType":"YulFunctionCall","src":"15483:79:53"},"nativeSrc":"15483:79:53","nodeType":"YulExpressionStatement","src":"15483:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15462:3:53","nodeType":"YulIdentifier","src":"15462:3:53"},{"name":"length","nativeSrc":"15467:6:53","nodeType":"YulIdentifier","src":"15467:6:53"}],"functionName":{"name":"add","nativeSrc":"15458:3:53","nodeType":"YulIdentifier","src":"15458:3:53"},"nativeSrc":"15458:16:53","nodeType":"YulFunctionCall","src":"15458:16:53"},{"name":"end","nativeSrc":"15476:3:53","nodeType":"YulIdentifier","src":"15476:3:53"}],"functionName":{"name":"gt","nativeSrc":"15455:2:53","nodeType":"YulIdentifier","src":"15455:2:53"},"nativeSrc":"15455:25:53","nodeType":"YulFunctionCall","src":"15455:25:53"},"nativeSrc":"15452:112:53","nodeType":"YulIf","src":"15452:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"15610:3:53","nodeType":"YulIdentifier","src":"15610:3:53"},{"name":"dst","nativeSrc":"15615:3:53","nodeType":"YulIdentifier","src":"15615:3:53"},{"name":"length","nativeSrc":"15620:6:53","nodeType":"YulIdentifier","src":"15620:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15573:36:53","nodeType":"YulIdentifier","src":"15573:36:53"},"nativeSrc":"15573:54:53","nodeType":"YulFunctionCall","src":"15573:54:53"},"nativeSrc":"15573:54:53","nodeType":"YulExpressionStatement","src":"15573:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15210:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15266:3:53","nodeType":"YulTypedName","src":"15266:3:53","type":""},{"name":"length","nativeSrc":"15271:6:53","nodeType":"YulTypedName","src":"15271:6:53","type":""},{"name":"end","nativeSrc":"15279:3:53","nodeType":"YulTypedName","src":"15279:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15287:5:53","nodeType":"YulTypedName","src":"15287:5:53","type":""}],"src":"15210:423:53"},{"body":{"nativeSrc":"15713:277:53","nodeType":"YulBlock","src":"15713:277:53","statements":[{"body":{"nativeSrc":"15762:83:53","nodeType":"YulBlock","src":"15762:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15764:77:53","nodeType":"YulIdentifier","src":"15764:77:53"},"nativeSrc":"15764:79:53","nodeType":"YulFunctionCall","src":"15764:79:53"},"nativeSrc":"15764:79:53","nodeType":"YulExpressionStatement","src":"15764:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15741:6:53","nodeType":"YulIdentifier","src":"15741:6:53"},{"kind":"number","nativeSrc":"15749:4:53","nodeType":"YulLiteral","src":"15749:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15737:3:53","nodeType":"YulIdentifier","src":"15737:3:53"},"nativeSrc":"15737:17:53","nodeType":"YulFunctionCall","src":"15737:17:53"},{"name":"end","nativeSrc":"15756:3:53","nodeType":"YulIdentifier","src":"15756:3:53"}],"functionName":{"name":"slt","nativeSrc":"15733:3:53","nodeType":"YulIdentifier","src":"15733:3:53"},"nativeSrc":"15733:27:53","nodeType":"YulFunctionCall","src":"15733:27:53"}],"functionName":{"name":"iszero","nativeSrc":"15726:6:53","nodeType":"YulIdentifier","src":"15726:6:53"},"nativeSrc":"15726:35:53","nodeType":"YulFunctionCall","src":"15726:35:53"},"nativeSrc":"15723:122:53","nodeType":"YulIf","src":"15723:122:53"},{"nativeSrc":"15854:34:53","nodeType":"YulVariableDeclaration","src":"15854:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"15881:6:53","nodeType":"YulIdentifier","src":"15881:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15868:12:53","nodeType":"YulIdentifier","src":"15868:12:53"},"nativeSrc":"15868:20:53","nodeType":"YulFunctionCall","src":"15868:20:53"},"variables":[{"name":"length","nativeSrc":"15858:6:53","nodeType":"YulTypedName","src":"15858:6:53","type":""}]},{"nativeSrc":"15897:87:53","nodeType":"YulAssignment","src":"15897:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15957:6:53","nodeType":"YulIdentifier","src":"15957:6:53"},{"kind":"number","nativeSrc":"15965:4:53","nodeType":"YulLiteral","src":"15965:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15953:3:53","nodeType":"YulIdentifier","src":"15953:3:53"},"nativeSrc":"15953:17:53","nodeType":"YulFunctionCall","src":"15953:17:53"},{"name":"length","nativeSrc":"15972:6:53","nodeType":"YulIdentifier","src":"15972:6:53"},{"name":"end","nativeSrc":"15980:3:53","nodeType":"YulIdentifier","src":"15980:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15906:46:53","nodeType":"YulIdentifier","src":"15906:46:53"},"nativeSrc":"15906:78:53","nodeType":"YulFunctionCall","src":"15906:78:53"},"variableNames":[{"name":"array","nativeSrc":"15897:5:53","nodeType":"YulIdentifier","src":"15897:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15652:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15691:6:53","nodeType":"YulTypedName","src":"15691:6:53","type":""},{"name":"end","nativeSrc":"15699:3:53","nodeType":"YulTypedName","src":"15699:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15707:5:53","nodeType":"YulTypedName","src":"15707:5:53","type":""}],"src":"15652:338:53"},{"body":{"nativeSrc":"16119:665:53","nodeType":"YulBlock","src":"16119:665:53","statements":[{"body":{"nativeSrc":"16163:83:53","nodeType":"YulBlock","src":"16163:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"16165:77:53","nodeType":"YulIdentifier","src":"16165:77:53"},"nativeSrc":"16165:79:53","nodeType":"YulFunctionCall","src":"16165:79:53"},"nativeSrc":"16165:79:53","nodeType":"YulExpressionStatement","src":"16165:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"16140:3:53","nodeType":"YulIdentifier","src":"16140:3:53"},{"name":"headStart","nativeSrc":"16145:9:53","nodeType":"YulIdentifier","src":"16145:9:53"}],"functionName":{"name":"sub","nativeSrc":"16136:3:53","nodeType":"YulIdentifier","src":"16136:3:53"},"nativeSrc":"16136:19:53","nodeType":"YulFunctionCall","src":"16136:19:53"},{"kind":"number","nativeSrc":"16157:4:53","nodeType":"YulLiteral","src":"16157:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"16132:3:53","nodeType":"YulIdentifier","src":"16132:3:53"},"nativeSrc":"16132:30:53","nodeType":"YulFunctionCall","src":"16132:30:53"},"nativeSrc":"16129:117:53","nodeType":"YulIf","src":"16129:117:53"},{"nativeSrc":"16255:30:53","nodeType":"YulAssignment","src":"16255:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"16280:4:53","nodeType":"YulLiteral","src":"16280:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"16264:15:53","nodeType":"YulIdentifier","src":"16264:15:53"},"nativeSrc":"16264:21:53","nodeType":"YulFunctionCall","src":"16264:21:53"},"variableNames":[{"name":"value","nativeSrc":"16255:5:53","nodeType":"YulIdentifier","src":"16255:5:53"}]},{"nativeSrc":"16295:152:53","nodeType":"YulBlock","src":"16295:152:53","statements":[{"nativeSrc":"16332:15:53","nodeType":"YulVariableDeclaration","src":"16332:15:53","value":{"kind":"number","nativeSrc":"16346:1:53","nodeType":"YulLiteral","src":"16346:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16336:6:53","nodeType":"YulTypedName","src":"16336:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16372:5:53","nodeType":"YulIdentifier","src":"16372:5:53"},{"kind":"number","nativeSrc":"16379:4:53","nodeType":"YulLiteral","src":"16379:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16368:3:53","nodeType":"YulIdentifier","src":"16368:3:53"},"nativeSrc":"16368:16:53","nodeType":"YulFunctionCall","src":"16368:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16411:9:53","nodeType":"YulIdentifier","src":"16411:9:53"},{"name":"offset","nativeSrc":"16422:6:53","nodeType":"YulIdentifier","src":"16422:6:53"}],"functionName":{"name":"add","nativeSrc":"16407:3:53","nodeType":"YulIdentifier","src":"16407:3:53"},"nativeSrc":"16407:22:53","nodeType":"YulFunctionCall","src":"16407:22:53"},{"name":"end","nativeSrc":"16431:3:53","nodeType":"YulIdentifier","src":"16431:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16386:20:53","nodeType":"YulIdentifier","src":"16386:20:53"},"nativeSrc":"16386:49:53","nodeType":"YulFunctionCall","src":"16386:49:53"}],"functionName":{"name":"mstore","nativeSrc":"16361:6:53","nodeType":"YulIdentifier","src":"16361:6:53"},"nativeSrc":"16361:75:53","nodeType":"YulFunctionCall","src":"16361:75:53"},"nativeSrc":"16361:75:53","nodeType":"YulExpressionStatement","src":"16361:75:53"}]},{"nativeSrc":"16457:320:53","nodeType":"YulBlock","src":"16457:320:53","statements":[{"nativeSrc":"16492:46:53","nodeType":"YulVariableDeclaration","src":"16492:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16523:9:53","nodeType":"YulIdentifier","src":"16523:9:53"},{"kind":"number","nativeSrc":"16534:2:53","nodeType":"YulLiteral","src":"16534:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16519:3:53","nodeType":"YulIdentifier","src":"16519:3:53"},"nativeSrc":"16519:18:53","nodeType":"YulFunctionCall","src":"16519:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"16506:12:53","nodeType":"YulIdentifier","src":"16506:12:53"},"nativeSrc":"16506:32:53","nodeType":"YulFunctionCall","src":"16506:32:53"},"variables":[{"name":"offset","nativeSrc":"16496:6:53","nodeType":"YulTypedName","src":"16496:6:53","type":""}]},{"body":{"nativeSrc":"16585:83:53","nodeType":"YulBlock","src":"16585:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16587:77:53","nodeType":"YulIdentifier","src":"16587:77:53"},"nativeSrc":"16587:79:53","nodeType":"YulFunctionCall","src":"16587:79:53"},"nativeSrc":"16587:79:53","nodeType":"YulExpressionStatement","src":"16587:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16557:6:53","nodeType":"YulIdentifier","src":"16557:6:53"},{"kind":"number","nativeSrc":"16565:18:53","nodeType":"YulLiteral","src":"16565:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16554:2:53","nodeType":"YulIdentifier","src":"16554:2:53"},"nativeSrc":"16554:30:53","nodeType":"YulFunctionCall","src":"16554:30:53"},"nativeSrc":"16551:117:53","nodeType":"YulIf","src":"16551:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16693:5:53","nodeType":"YulIdentifier","src":"16693:5:53"},{"kind":"number","nativeSrc":"16700:4:53","nodeType":"YulLiteral","src":"16700:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16689:3:53","nodeType":"YulIdentifier","src":"16689:3:53"},"nativeSrc":"16689:16:53","nodeType":"YulFunctionCall","src":"16689:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16741:9:53","nodeType":"YulIdentifier","src":"16741:9:53"},{"name":"offset","nativeSrc":"16752:6:53","nodeType":"YulIdentifier","src":"16752:6:53"}],"functionName":{"name":"add","nativeSrc":"16737:3:53","nodeType":"YulIdentifier","src":"16737:3:53"},"nativeSrc":"16737:22:53","nodeType":"YulFunctionCall","src":"16737:22:53"},{"name":"end","nativeSrc":"16761:3:53","nodeType":"YulIdentifier","src":"16761:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"16707:29:53","nodeType":"YulIdentifier","src":"16707:29:53"},"nativeSrc":"16707:58:53","nodeType":"YulFunctionCall","src":"16707:58:53"}],"functionName":{"name":"mstore","nativeSrc":"16682:6:53","nodeType":"YulIdentifier","src":"16682:6:53"},"nativeSrc":"16682:84:53","nodeType":"YulFunctionCall","src":"16682:84:53"},"nativeSrc":"16682:84:53","nodeType":"YulExpressionStatement","src":"16682:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"16033:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16094:9:53","nodeType":"YulTypedName","src":"16094:9:53","type":""},{"name":"end","nativeSrc":"16105:3:53","nodeType":"YulTypedName","src":"16105:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16113:5:53","nodeType":"YulTypedName","src":"16113:5:53","type":""}],"src":"16033:751:53"},{"body":{"nativeSrc":"16887:454:53","nodeType":"YulBlock","src":"16887:454:53","statements":[{"body":{"nativeSrc":"16933:83:53","nodeType":"YulBlock","src":"16933:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16935:77:53","nodeType":"YulIdentifier","src":"16935:77:53"},"nativeSrc":"16935:79:53","nodeType":"YulFunctionCall","src":"16935:79:53"},"nativeSrc":"16935:79:53","nodeType":"YulExpressionStatement","src":"16935:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16908:7:53","nodeType":"YulIdentifier","src":"16908:7:53"},{"name":"headStart","nativeSrc":"16917:9:53","nodeType":"YulIdentifier","src":"16917:9:53"}],"functionName":{"name":"sub","nativeSrc":"16904:3:53","nodeType":"YulIdentifier","src":"16904:3:53"},"nativeSrc":"16904:23:53","nodeType":"YulFunctionCall","src":"16904:23:53"},{"kind":"number","nativeSrc":"16929:2:53","nodeType":"YulLiteral","src":"16929:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16900:3:53","nodeType":"YulIdentifier","src":"16900:3:53"},"nativeSrc":"16900:32:53","nodeType":"YulFunctionCall","src":"16900:32:53"},"nativeSrc":"16897:119:53","nodeType":"YulIf","src":"16897:119:53"},{"nativeSrc":"17026:308:53","nodeType":"YulBlock","src":"17026:308:53","statements":[{"nativeSrc":"17041:45:53","nodeType":"YulVariableDeclaration","src":"17041:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17072:9:53","nodeType":"YulIdentifier","src":"17072:9:53"},{"kind":"number","nativeSrc":"17083:1:53","nodeType":"YulLiteral","src":"17083:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17068:3:53","nodeType":"YulIdentifier","src":"17068:3:53"},"nativeSrc":"17068:17:53","nodeType":"YulFunctionCall","src":"17068:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"17055:12:53","nodeType":"YulIdentifier","src":"17055:12:53"},"nativeSrc":"17055:31:53","nodeType":"YulFunctionCall","src":"17055:31:53"},"variables":[{"name":"offset","nativeSrc":"17045:6:53","nodeType":"YulTypedName","src":"17045:6:53","type":""}]},{"body":{"nativeSrc":"17133:83:53","nodeType":"YulBlock","src":"17133:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17135:77:53","nodeType":"YulIdentifier","src":"17135:77:53"},"nativeSrc":"17135:79:53","nodeType":"YulFunctionCall","src":"17135:79:53"},"nativeSrc":"17135:79:53","nodeType":"YulExpressionStatement","src":"17135:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17105:6:53","nodeType":"YulIdentifier","src":"17105:6:53"},{"kind":"number","nativeSrc":"17113:18:53","nodeType":"YulLiteral","src":"17113:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17102:2:53","nodeType":"YulIdentifier","src":"17102:2:53"},"nativeSrc":"17102:30:53","nodeType":"YulFunctionCall","src":"17102:30:53"},"nativeSrc":"17099:117:53","nodeType":"YulIf","src":"17099:117:53"},{"nativeSrc":"17230:94:53","nodeType":"YulAssignment","src":"17230:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17296:9:53","nodeType":"YulIdentifier","src":"17296:9:53"},{"name":"offset","nativeSrc":"17307:6:53","nodeType":"YulIdentifier","src":"17307:6:53"}],"functionName":{"name":"add","nativeSrc":"17292:3:53","nodeType":"YulIdentifier","src":"17292:3:53"},"nativeSrc":"17292:22:53","nodeType":"YulFunctionCall","src":"17292:22:53"},{"name":"dataEnd","nativeSrc":"17316:7:53","nodeType":"YulIdentifier","src":"17316:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"17240:51:53","nodeType":"YulIdentifier","src":"17240:51:53"},"nativeSrc":"17240:84:53","nodeType":"YulFunctionCall","src":"17240:84:53"},"variableNames":[{"name":"value0","nativeSrc":"17230:6:53","nodeType":"YulIdentifier","src":"17230:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"16790:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16857:9:53","nodeType":"YulTypedName","src":"16857:9:53","type":""},{"name":"dataEnd","nativeSrc":"16868:7:53","nodeType":"YulTypedName","src":"16868:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16880:6:53","nodeType":"YulTypedName","src":"16880:6:53","type":""}],"src":"16790:551:53"},{"body":{"nativeSrc":"17390:190:53","nodeType":"YulBlock","src":"17390:190:53","statements":[{"nativeSrc":"17400:33:53","nodeType":"YulAssignment","src":"17400:33:53","value":{"arguments":[{"name":"value","nativeSrc":"17427:5:53","nodeType":"YulIdentifier","src":"17427:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"17409:17:53","nodeType":"YulIdentifier","src":"17409:17:53"},"nativeSrc":"17409:24:53","nodeType":"YulFunctionCall","src":"17409:24:53"},"variableNames":[{"name":"value","nativeSrc":"17400:5:53","nodeType":"YulIdentifier","src":"17400:5:53"}]},{"body":{"nativeSrc":"17523:22:53","nodeType":"YulBlock","src":"17523:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"17525:16:53","nodeType":"YulIdentifier","src":"17525:16:53"},"nativeSrc":"17525:18:53","nodeType":"YulFunctionCall","src":"17525:18:53"},"nativeSrc":"17525:18:53","nodeType":"YulExpressionStatement","src":"17525:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"17448:5:53","nodeType":"YulIdentifier","src":"17448:5:53"},{"kind":"number","nativeSrc":"17455:66:53","nodeType":"YulLiteral","src":"17455:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"17445:2:53","nodeType":"YulIdentifier","src":"17445:2:53"},"nativeSrc":"17445:77:53","nodeType":"YulFunctionCall","src":"17445:77:53"},"nativeSrc":"17442:103:53","nodeType":"YulIf","src":"17442:103:53"},{"nativeSrc":"17554:20:53","nodeType":"YulAssignment","src":"17554:20:53","value":{"arguments":[{"name":"value","nativeSrc":"17565:5:53","nodeType":"YulIdentifier","src":"17565:5:53"},{"kind":"number","nativeSrc":"17572:1:53","nodeType":"YulLiteral","src":"17572:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17561:3:53","nodeType":"YulIdentifier","src":"17561:3:53"},"nativeSrc":"17561:13:53","nodeType":"YulFunctionCall","src":"17561:13:53"},"variableNames":[{"name":"ret","nativeSrc":"17554:3:53","nodeType":"YulIdentifier","src":"17554:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"17347:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17376:5:53","nodeType":"YulTypedName","src":"17376:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"17386:3:53","nodeType":"YulTypedName","src":"17386:3:53","type":""}],"src":"17347:233:53"},{"body":{"nativeSrc":"17628:52:53","nodeType":"YulBlock","src":"17628:52:53","statements":[{"nativeSrc":"17638:35:53","nodeType":"YulAssignment","src":"17638:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"17663:2:53","nodeType":"YulLiteral","src":"17663:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"17667:5:53","nodeType":"YulIdentifier","src":"17667:5:53"}],"functionName":{"name":"shl","nativeSrc":"17659:3:53","nodeType":"YulIdentifier","src":"17659:3:53"},"nativeSrc":"17659:14:53","nodeType":"YulFunctionCall","src":"17659:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"17638:8:53","nodeType":"YulIdentifier","src":"17638:8:53"}]}]},"name":"shift_left_96","nativeSrc":"17586:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17609:5:53","nodeType":"YulTypedName","src":"17609:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"17619:8:53","nodeType":"YulTypedName","src":"17619:8:53","type":""}],"src":"17586:94:53"},{"body":{"nativeSrc":"17733:47:53","nodeType":"YulBlock","src":"17733:47:53","statements":[{"nativeSrc":"17743:31:53","nodeType":"YulAssignment","src":"17743:31:53","value":{"arguments":[{"name":"value","nativeSrc":"17768:5:53","nodeType":"YulIdentifier","src":"17768:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"17754:13:53","nodeType":"YulIdentifier","src":"17754:13:53"},"nativeSrc":"17754:20:53","nodeType":"YulFunctionCall","src":"17754:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"17743:7:53","nodeType":"YulIdentifier","src":"17743:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"17686:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17715:5:53","nodeType":"YulTypedName","src":"17715:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"17725:7:53","nodeType":"YulTypedName","src":"17725:7:53","type":""}],"src":"17686:94:53"},{"body":{"nativeSrc":"17833:53:53","nodeType":"YulBlock","src":"17833:53:53","statements":[{"nativeSrc":"17843:37:53","nodeType":"YulAssignment","src":"17843:37:53","value":{"arguments":[{"name":"value","nativeSrc":"17874:5:53","nodeType":"YulIdentifier","src":"17874:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"17854:19:53","nodeType":"YulIdentifier","src":"17854:19:53"},"nativeSrc":"17854:26:53","nodeType":"YulFunctionCall","src":"17854:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"17843:7:53","nodeType":"YulIdentifier","src":"17843:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"17786:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17815:5:53","nodeType":"YulTypedName","src":"17815:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"17825:7:53","nodeType":"YulTypedName","src":"17825:7:53","type":""}],"src":"17786:100:53"},{"body":{"nativeSrc":"17975:74:53","nodeType":"YulBlock","src":"17975:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17992:3:53","nodeType":"YulIdentifier","src":"17992:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18035:5:53","nodeType":"YulIdentifier","src":"18035:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"18017:17:53","nodeType":"YulIdentifier","src":"18017:17:53"},"nativeSrc":"18017:24:53","nodeType":"YulFunctionCall","src":"18017:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"17997:19:53","nodeType":"YulIdentifier","src":"17997:19:53"},"nativeSrc":"17997:45:53","nodeType":"YulFunctionCall","src":"17997:45:53"}],"functionName":{"name":"mstore","nativeSrc":"17985:6:53","nodeType":"YulIdentifier","src":"17985:6:53"},"nativeSrc":"17985:58:53","nodeType":"YulFunctionCall","src":"17985:58:53"},"nativeSrc":"17985:58:53","nodeType":"YulExpressionStatement","src":"17985:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17892:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17963:5:53","nodeType":"YulTypedName","src":"17963:5:53","type":""},{"name":"pos","nativeSrc":"17970:3:53","nodeType":"YulTypedName","src":"17970:3:53","type":""}],"src":"17892:157:53"},{"body":{"nativeSrc":"18102:32:53","nodeType":"YulBlock","src":"18102:32:53","statements":[{"nativeSrc":"18112:16:53","nodeType":"YulAssignment","src":"18112:16:53","value":{"name":"value","nativeSrc":"18123:5:53","nodeType":"YulIdentifier","src":"18123:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"18112:7:53","nodeType":"YulIdentifier","src":"18112:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"18055:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18084:5:53","nodeType":"YulTypedName","src":"18084:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"18094:7:53","nodeType":"YulTypedName","src":"18094:7:53","type":""}],"src":"18055:79:53"},{"body":{"nativeSrc":"18223:74:53","nodeType":"YulBlock","src":"18223:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18240:3:53","nodeType":"YulIdentifier","src":"18240:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18283:5:53","nodeType":"YulIdentifier","src":"18283:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"18265:17:53","nodeType":"YulIdentifier","src":"18265:17:53"},"nativeSrc":"18265:24:53","nodeType":"YulFunctionCall","src":"18265:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"18245:19:53","nodeType":"YulIdentifier","src":"18245:19:53"},"nativeSrc":"18245:45:53","nodeType":"YulFunctionCall","src":"18245:45:53"}],"functionName":{"name":"mstore","nativeSrc":"18233:6:53","nodeType":"YulIdentifier","src":"18233:6:53"},"nativeSrc":"18233:58:53","nodeType":"YulFunctionCall","src":"18233:58:53"},"nativeSrc":"18233:58:53","nodeType":"YulExpressionStatement","src":"18233:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"18140:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18211:5:53","nodeType":"YulTypedName","src":"18211:5:53","type":""},{"name":"pos","nativeSrc":"18218:3:53","nodeType":"YulTypedName","src":"18218:3:53","type":""}],"src":"18140:157:53"},{"body":{"nativeSrc":"18475:366:53","nodeType":"YulBlock","src":"18475:366:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"18548:6:53","nodeType":"YulIdentifier","src":"18548:6:53"},{"name":"pos","nativeSrc":"18557:3:53","nodeType":"YulIdentifier","src":"18557:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"18486:61:53","nodeType":"YulIdentifier","src":"18486:61:53"},"nativeSrc":"18486:75:53","nodeType":"YulFunctionCall","src":"18486:75:53"},"nativeSrc":"18486:75:53","nodeType":"YulExpressionStatement","src":"18486:75:53"},{"nativeSrc":"18570:19:53","nodeType":"YulAssignment","src":"18570:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"18581:3:53","nodeType":"YulIdentifier","src":"18581:3:53"},{"kind":"number","nativeSrc":"18586:2:53","nodeType":"YulLiteral","src":"18586:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"18577:3:53","nodeType":"YulIdentifier","src":"18577:3:53"},"nativeSrc":"18577:12:53","nodeType":"YulFunctionCall","src":"18577:12:53"},"variableNames":[{"name":"pos","nativeSrc":"18570:3:53","nodeType":"YulIdentifier","src":"18570:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18661:6:53","nodeType":"YulIdentifier","src":"18661:6:53"},{"name":"pos","nativeSrc":"18670:3:53","nodeType":"YulIdentifier","src":"18670:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"18599:61:53","nodeType":"YulIdentifier","src":"18599:61:53"},"nativeSrc":"18599:75:53","nodeType":"YulFunctionCall","src":"18599:75:53"},"nativeSrc":"18599:75:53","nodeType":"YulExpressionStatement","src":"18599:75:53"},{"nativeSrc":"18683:19:53","nodeType":"YulAssignment","src":"18683:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"18694:3:53","nodeType":"YulIdentifier","src":"18694:3:53"},{"kind":"number","nativeSrc":"18699:2:53","nodeType":"YulLiteral","src":"18699:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"18690:3:53","nodeType":"YulIdentifier","src":"18690:3:53"},"nativeSrc":"18690:12:53","nodeType":"YulFunctionCall","src":"18690:12:53"},"variableNames":[{"name":"pos","nativeSrc":"18683:3:53","nodeType":"YulIdentifier","src":"18683:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"18774:6:53","nodeType":"YulIdentifier","src":"18774:6:53"},{"name":"pos","nativeSrc":"18783:3:53","nodeType":"YulIdentifier","src":"18783:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"18712:61:53","nodeType":"YulIdentifier","src":"18712:61:53"},"nativeSrc":"18712:75:53","nodeType":"YulFunctionCall","src":"18712:75:53"},"nativeSrc":"18712:75:53","nodeType":"YulExpressionStatement","src":"18712:75:53"},{"nativeSrc":"18796:19:53","nodeType":"YulAssignment","src":"18796:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"18807:3:53","nodeType":"YulIdentifier","src":"18807:3:53"},{"kind":"number","nativeSrc":"18812:2:53","nodeType":"YulLiteral","src":"18812:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18803:3:53","nodeType":"YulIdentifier","src":"18803:3:53"},"nativeSrc":"18803:12:53","nodeType":"YulFunctionCall","src":"18803:12:53"},"variableNames":[{"name":"pos","nativeSrc":"18796:3:53","nodeType":"YulIdentifier","src":"18796:3:53"}]},{"nativeSrc":"18825:10:53","nodeType":"YulAssignment","src":"18825:10:53","value":{"name":"pos","nativeSrc":"18832:3:53","nodeType":"YulIdentifier","src":"18832:3:53"},"variableNames":[{"name":"end","nativeSrc":"18825:3:53","nodeType":"YulIdentifier","src":"18825:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"18303:538:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18438:3:53","nodeType":"YulTypedName","src":"18438:3:53","type":""},{"name":"value2","nativeSrc":"18444:6:53","nodeType":"YulTypedName","src":"18444:6:53","type":""},{"name":"value1","nativeSrc":"18452:6:53","nodeType":"YulTypedName","src":"18452:6:53","type":""},{"name":"value0","nativeSrc":"18460:6:53","nodeType":"YulTypedName","src":"18460:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18471:3:53","nodeType":"YulTypedName","src":"18471:3:53","type":""}],"src":"18303:538:53"},{"body":{"nativeSrc":"18910:80:53","nodeType":"YulBlock","src":"18910:80:53","statements":[{"nativeSrc":"18920:22:53","nodeType":"YulAssignment","src":"18920:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"18935:6:53","nodeType":"YulIdentifier","src":"18935:6:53"}],"functionName":{"name":"mload","nativeSrc":"18929:5:53","nodeType":"YulIdentifier","src":"18929:5:53"},"nativeSrc":"18929:13:53","nodeType":"YulFunctionCall","src":"18929:13:53"},"variableNames":[{"name":"value","nativeSrc":"18920:5:53","nodeType":"YulIdentifier","src":"18920:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18978:5:53","nodeType":"YulIdentifier","src":"18978:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"18951:26:53","nodeType":"YulIdentifier","src":"18951:26:53"},"nativeSrc":"18951:33:53","nodeType":"YulFunctionCall","src":"18951:33:53"},"nativeSrc":"18951:33:53","nodeType":"YulExpressionStatement","src":"18951:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"18847:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18888:6:53","nodeType":"YulTypedName","src":"18888:6:53","type":""},{"name":"end","nativeSrc":"18896:3:53","nodeType":"YulTypedName","src":"18896:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18904:5:53","nodeType":"YulTypedName","src":"18904:5:53","type":""}],"src":"18847:143:53"},{"body":{"nativeSrc":"19073:274:53","nodeType":"YulBlock","src":"19073:274:53","statements":[{"body":{"nativeSrc":"19119:83:53","nodeType":"YulBlock","src":"19119:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19121:77:53","nodeType":"YulIdentifier","src":"19121:77:53"},"nativeSrc":"19121:79:53","nodeType":"YulFunctionCall","src":"19121:79:53"},"nativeSrc":"19121:79:53","nodeType":"YulExpressionStatement","src":"19121:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19094:7:53","nodeType":"YulIdentifier","src":"19094:7:53"},{"name":"headStart","nativeSrc":"19103:9:53","nodeType":"YulIdentifier","src":"19103:9:53"}],"functionName":{"name":"sub","nativeSrc":"19090:3:53","nodeType":"YulIdentifier","src":"19090:3:53"},"nativeSrc":"19090:23:53","nodeType":"YulFunctionCall","src":"19090:23:53"},{"kind":"number","nativeSrc":"19115:2:53","nodeType":"YulLiteral","src":"19115:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19086:3:53","nodeType":"YulIdentifier","src":"19086:3:53"},"nativeSrc":"19086:32:53","nodeType":"YulFunctionCall","src":"19086:32:53"},"nativeSrc":"19083:119:53","nodeType":"YulIf","src":"19083:119:53"},{"nativeSrc":"19212:128:53","nodeType":"YulBlock","src":"19212:128:53","statements":[{"nativeSrc":"19227:15:53","nodeType":"YulVariableDeclaration","src":"19227:15:53","value":{"kind":"number","nativeSrc":"19241:1:53","nodeType":"YulLiteral","src":"19241:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19231:6:53","nodeType":"YulTypedName","src":"19231:6:53","type":""}]},{"nativeSrc":"19256:74:53","nodeType":"YulAssignment","src":"19256:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19302:9:53","nodeType":"YulIdentifier","src":"19302:9:53"},{"name":"offset","nativeSrc":"19313:6:53","nodeType":"YulIdentifier","src":"19313:6:53"}],"functionName":{"name":"add","nativeSrc":"19298:3:53","nodeType":"YulIdentifier","src":"19298:3:53"},"nativeSrc":"19298:22:53","nodeType":"YulFunctionCall","src":"19298:22:53"},{"name":"dataEnd","nativeSrc":"19322:7:53","nodeType":"YulIdentifier","src":"19322:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19266:31:53","nodeType":"YulIdentifier","src":"19266:31:53"},"nativeSrc":"19266:64:53","nodeType":"YulFunctionCall","src":"19266:64:53"},"variableNames":[{"name":"value0","nativeSrc":"19256:6:53","nodeType":"YulIdentifier","src":"19256:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"18996:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19043:9:53","nodeType":"YulTypedName","src":"19043:9:53","type":""},{"name":"dataEnd","nativeSrc":"19054:7:53","nodeType":"YulTypedName","src":"19054:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19066:6:53","nodeType":"YulTypedName","src":"19066:6:53","type":""}],"src":"18996:351:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\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 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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\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 revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct CGDAIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$15693_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // initialReward\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // rewardDecay\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // rewardBoost\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // totalBudget\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$15693_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$15693_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct Budget.FungiblePayload -> struct Budget.FungiblePayload\n function abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x20)\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_assert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$13471(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$13471(value)\n }\n\n function convert_t_enum$_AssetType_$13471_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$13471(value)\n }\n\n function abi_encode_t_enum$_AssetType_$13471_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$13471_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$13471_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value0, tail)\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\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}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c80638da5cb5b1161009f578063e18e650811610063578063e18e65081461034c578063f04e283e14610388578063f1c30ec0146103a4578063f2fde38b146103e0578063fee81cf4146103fc57610113565b80638da5cb5b14610256578063c63ff8dd14610280578063c78da39a146102bc578063c884ef83146102e6578063dcc59b6f1461032257610113565b8063439fab91116100e6578063439fab91146101b15780634e7165a2146101d957806354d1f13d14610215578063715018a61461021f57806375ef18d01461022957610113565b806301ffc9a71461011757806307621eca14610153578063256929621461017d57806338d52e0f14610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611188565b610438565b60405161014a91906111cd565b60405180910390f35b34801561015e575f80fd5b506101676104b1565b60405161017491906111fe565b60405180910390f35b61018561055a565b005b348015610192575f80fd5b5061019b6105ab565b6040516101a89190611256565b60405180910390f35b3480156101bc575f80fd5b506101d760048036038101906101d291906112d0565b6105d0565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa91906112d0565b6107f8565b60405161020c919061138b565b60405180910390f35b61021d6108c8565b005b610227610901565b005b348015610234575f80fd5b5061023d610914565b60405161024d94939291906113ab565b60405180910390f35b348015610261575f80fd5b5061026a610931565b6040516102779190611256565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a191906112d0565b610959565b6040516102b391906111cd565b60405180910390f35b3480156102c7575f80fd5b506102d0610b02565b6040516102dd91906111fe565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190611418565b610b08565b60405161031991906111cd565b60405180910390f35b34801561032d575f80fd5b50610336610b25565b60405161034391906111fe565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d91906112d0565b610b2a565b60405161037f91906111cd565b60405180910390f35b6103a2600480360381019061039d9190611418565b610b52565b005b3480156103af575f80fd5b506103ca60048036038101906103c591906112d0565b610b90565b6040516103d791906111cd565b60405180910390f35b6103fa60048036038101906103f59190611418565b610cb9565b005b348015610407575f80fd5b50610422600480360381019061041d9190611418565b610ce2565b60405161042f91906111fe565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104aa57506104a982610cfb565b5b9050919050565b5f80600360020154426104c49190611470565b90505f6105113060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b90505f610e106003600101548461052891906114a3565b6105329190611511565b60038001546105419190611541565b90508181116105505780610552565b815b935050505090565b5f610563610da7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105d9610db1565b9050805460038255801561060b5760018160011c14303b106106025763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f838381019061061c91906116a7565b90505f61064b30835f015173ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b905081608001518110156106a157815f01518183608001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610698939291906116d2565b60405180910390fd5b5f826020015114806106b657505f8260400151145b806106c457505f8260600151145b806106d6575081602001518260800151105b1561070d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052808360400151815260200183606001518152602001428152602001836020015181525060035f820151815f015560208201518160010155604082015181600201556060820151816003015590505081608001516007819055506107bc33610dda565b505080156107f3576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f838381019061080a91906116a7565b905060405180608001604052806001600281111561082b5761082a611707565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060200160405280846080015181525060405160200161088e919061175d565b6040516020818303038152906040528152506040516020016108b09190611873565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610909610eb0565b6109125f610ee7565b565b6003805f0154908060010154908060020154908060030154905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f610962610eb0565b5f838381019061097291906119ac565b9050610980815f0151610fad565b6109b6576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906109c7906119f3565b91905055505f6109d56104b1565b90504260036002018190555060035f015481116109f65760035f0154610a07565b60035f015481610a069190611470565b5b6003800181905550610a5e825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610ad293929190611a9f565b604051602081830303815290604052604051610aee919061138b565b60405180910390a260019250505092915050565b60075481565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610b3b91906119ac565b9050610b49815f0151610fad565b91505092915050565b610b5a610eb0565b63389a75e1600c52805f526020600c208054421115610b8057636f5e88185f526004601cfd5b5f815550610b8d81610ee7565b50565b5f610b99610eb0565b5f8383810190610ba991906119ac565b90505f8160200151806020019051810190610bc49190611aef565b9050610c15825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610c8993929190611a9f565b604051602081830303815290604052604051610ca5919061138b565b60405180910390a260019250505092915050565b610cc1610eb0565b8060601b610cd657637448fbae5f526004601cfd5b610cdf81610ee7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d6d5750610d6c826110b5565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610de261111e565b15610e5a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610e1c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ead565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ee5576382b429005f526004601cfd5b565b610eef61111e565b15610f54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610faa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f80610fb76104b1565b90505f8111801561101157508061100e3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7490919063ffffffff16565b10155b8015611064575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b915050919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166110ac576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61116781611133565b8114611171575f80fd5b50565b5f813590506111828161115e565b92915050565b5f6020828403121561119d5761119c61112b565b5b5f6111aa84828501611174565b91505092915050565b5f8115159050919050565b6111c7816111b3565b82525050565b5f6020820190506111e05f8301846111be565b92915050565b5f819050919050565b6111f8816111e6565b82525050565b5f6020820190506112115f8301846111ef565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61124082611217565b9050919050565b61125081611236565b82525050565b5f6020820190506112695f830184611247565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112905761128f61126f565b5b8235905067ffffffffffffffff8111156112ad576112ac611273565b5b6020830191508360018202830111156112c9576112c8611277565b5b9250929050565b5f80602083850312156112e6576112e561112b565b5b5f83013567ffffffffffffffff8111156113035761130261112f565b5b61130f8582860161127b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61135d8261131b565b6113678185611325565b9350611377818560208601611335565b61138081611343565b840191505092915050565b5f6020820190508181035f8301526113a38184611353565b905092915050565b5f6080820190506113be5f8301876111ef565b6113cb60208301866111ef565b6113d860408301856111ef565b6113e560608301846111ef565b95945050505050565b6113f781611236565b8114611401575f80fd5b50565b5f81359050611412816113ee565b92915050565b5f6020828403121561142d5761142c61112b565b5b5f61143a84828501611404565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61147a826111e6565b9150611485836111e6565b925082820390508181111561149d5761149c611443565b5b92915050565b5f6114ad826111e6565b91506114b8836111e6565b92508282026114c6816111e6565b915082820484148315176114dd576114dc611443565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61151b826111e6565b9150611526836111e6565b925082611536576115356114e4565b5b828204905092915050565b5f61154b826111e6565b9150611556836111e6565b925082820190508082111561156e5761156d611443565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6115ae82611343565b810181811067ffffffffffffffff821117156115cd576115cc611578565b5b80604052505050565b5f6115df611122565b90506115eb82826115a5565b919050565b5f80fd5b6115fd816111e6565b8114611607575f80fd5b50565b5f81359050611618816115f4565b92915050565b5f60a0828403121561163357611632611574565b5b61163d60a06115d6565b90505f61164c84828501611404565b5f83015250602061165f8482850161160a565b60208301525060406116738482850161160a565b60408301525060606116878482850161160a565b606083015250608061169b8482850161160a565b60808301525092915050565b5f60a082840312156116bc576116bb61112b565b5b5f6116c98482850161161e565b91505092915050565b5f6060820190506116e55f830186611247565b6116f260208301856111ef565b6116ff60408301846111ef565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61173d816111e6565b82525050565b602082015f8201516117575f850182611734565b50505050565b5f6020820190506117705f830184611743565b92915050565b6003811061178757611786611707565b5b50565b5f81905061179782611776565b919050565b5f6117a68261178a565b9050919050565b6117b68161179c565b82525050565b6117c581611236565b82525050565b5f82825260208201905092915050565b5f6117e58261131b565b6117ef81856117cb565b93506117ff818560208601611335565b61180881611343565b840191505092915050565b5f608083015f8301516118285f8601826117ad565b50602083015161183b60208601826117bc565b50604083015161184e60408601826117bc565b506060830151848203606086015261186682826117db565b9150508091505092915050565b5f6020820190508181035f83015261188b8184611813565b905092915050565b5f80fd5b5f67ffffffffffffffff8211156118b1576118b0611578565b5b6118ba82611343565b9050602081019050919050565b828183375f83830152505050565b5f6118e76118e284611897565b6115d6565b90508281526020810184848401111561190357611902611893565b5b61190e8482856118c7565b509392505050565b5f82601f83011261192a5761192961126f565b5b813561193a8482602086016118d5565b91505092915050565b5f6040828403121561195857611957611574565b5b61196260406115d6565b90505f61197184828501611404565b5f83015250602082013567ffffffffffffffff811115611994576119936115f0565b5b6119a084828501611916565b60208301525092915050565b5f602082840312156119c1576119c061112b565b5b5f82013567ffffffffffffffff8111156119de576119dd61112f565b5b6119ea84828501611943565b91505092915050565b5f6119fd826111e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a2f57611a2e611443565b5b600182019050919050565b5f8160601b9050919050565b5f611a5082611a3a565b9050919050565b5f611a6182611a46565b9050919050565b611a79611a7482611236565b611a57565b82525050565b5f819050919050565b611a99611a94826111e6565b611a7f565b82525050565b5f611aaa8286611a68565b601482019150611aba8285611a68565b601482019150611aca8284611a88565b602082019150819050949350505050565b5f81519050611ae9816115f4565b92915050565b5f60208284031215611b0457611b0361112b565b5b5f611b1184828501611adb565b9150509291505056fea26469706673582212204e6c9519f1b738c96d6ba1e0a87f71231432193bb2d41d56057c7c52c76b10a164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3FC JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xC78DA39A EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x322 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x75EF18D0 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x438 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x55A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x5D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x7F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH2 0x8C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x227 PUSH2 0x901 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x914 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x13AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x931 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x959 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0xB25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x343 SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x372 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36D SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB2A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37F SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xB52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0xB90 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x11CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCB9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x422 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0x1418 JUMP JUMPDEST PUSH2 0xCE2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4AA JUMPI POP PUSH2 0x4A9 DUP3 PUSH2 0xCFB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x511 ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xE10 PUSH1 0x3 PUSH1 0x1 ADD SLOAD DUP5 PUSH2 0x528 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x532 SWAP2 SWAP1 PUSH2 0x1511 JUMP JUMPDEST PUSH1 0x3 DUP1 ADD SLOAD PUSH2 0x541 SWAP2 SWAP1 PUSH2 0x1541 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x550 JUMPI DUP1 PUSH2 0x552 JUMP JUMPDEST DUP2 JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x563 PUSH2 0xDA7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5D9 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x60B JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x602 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x61C SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x64B ADDRESS DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x80 ADD MLOAD DUP2 LT ISZERO PUSH2 0x6A1 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x698 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x16D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x20 ADD MLOAD EQ DUP1 PUSH2 0x6B6 JUMPI POP PUSH0 DUP3 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6C4 JUMPI POP PUSH0 DUP3 PUSH1 0x60 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x6D6 JUMPI POP DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD LT JUMPDEST ISZERO PUSH2 0x70D JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE POP PUSH1 0x3 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH2 0x7BC CALLER PUSH2 0xDDA JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x80A SWAP2 SWAP1 PUSH2 0x16A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x82B JUMPI PUSH2 0x82A PUSH2 0x1707 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x175D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8B0 SWAP2 SWAP1 PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x909 PUSH2 0xEB0 JUMP JUMPDEST PUSH2 0x912 PUSH0 PUSH2 0xEE7 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 DUP1 PUSH0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x962 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0x980 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x9B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x9C7 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH0 PUSH2 0x9D5 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x3 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH0 ADD SLOAD DUP2 GT PUSH2 0x9F6 JUMPI PUSH1 0x3 PUSH0 ADD SLOAD PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x3 PUSH0 ADD SLOAD DUP2 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP1 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xA5E DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xAEE SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xB3B SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH2 0xB49 DUP2 PUSH0 ADD MLOAD PUSH2 0xFAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5A PUSH2 0xEB0 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xB80 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xB8D DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xB99 PUSH2 0xEB0 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBA9 SWAP2 SWAP1 PUSH2 0x19AC JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBC4 SWAP2 SWAP1 PUSH2 0x1AEF JUMP JUMPDEST SWAP1 POP PUSH2 0xC15 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC89 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCA5 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC1 PUSH2 0xEB0 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xCD6 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xCDF DUP2 PUSH2 0xEE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD6D JUMPI POP PUSH2 0xD6C DUP3 PUSH2 0x10B5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDE2 PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xE5A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xE1C JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xEAD JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xEE5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xEEF PUSH2 0x111E JUMP JUMPDEST ISZERO PUSH2 0xF54 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xFAA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xFB7 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x1011 JUMPI POP DUP1 PUSH2 0x100E ADDRESS PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD74 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1064 JUMPI POP PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x10AC JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1133 JUMP JUMPDEST DUP2 EQ PUSH2 0x1171 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1182 DUP2 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x119D JUMPI PUSH2 0x119C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11AA DUP5 DUP3 DUP6 ADD PUSH2 0x1174 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11C7 DUP2 PUSH2 0x11B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11E0 PUSH0 DUP4 ADD DUP5 PUSH2 0x11BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11F8 DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1211 PUSH0 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1240 DUP3 PUSH2 0x1217 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1250 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1269 PUSH0 DUP4 ADD DUP5 PUSH2 0x1247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1290 JUMPI PUSH2 0x128F PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12AD JUMPI PUSH2 0x12AC PUSH2 0x1273 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x12C9 JUMPI PUSH2 0x12C8 PUSH2 0x1277 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12E6 JUMPI PUSH2 0x12E5 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1303 JUMPI PUSH2 0x1302 PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x130F DUP6 DUP3 DUP7 ADD PUSH2 0x127B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x135D DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x1367 DUP2 DUP6 PUSH2 0x1325 JUMP JUMPDEST SWAP4 POP PUSH2 0x1377 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1380 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x13A3 DUP2 DUP5 PUSH2 0x1353 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x13BE PUSH0 DUP4 ADD DUP8 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13CB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13D8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x13E5 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13F7 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP2 EQ PUSH2 0x1401 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1412 DUP2 PUSH2 0x13EE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x142D JUMPI PUSH2 0x142C PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x143A DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x147A DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1485 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x149D JUMPI PUSH2 0x149C PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14AD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x14B8 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x14C6 DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x14DD JUMPI PUSH2 0x14DC PUSH2 0x1443 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x151B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1526 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1536 JUMPI PUSH2 0x1535 PUSH2 0x14E4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x154B DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1556 DUP4 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x156E JUMPI PUSH2 0x156D PUSH2 0x1443 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x15AE DUP3 PUSH2 0x1343 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x15CD JUMPI PUSH2 0x15CC PUSH2 0x1578 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15DF PUSH2 0x1122 JUMP JUMPDEST SWAP1 POP PUSH2 0x15EB DUP3 DUP3 PUSH2 0x15A5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x15FD DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1607 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1618 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1633 JUMPI PUSH2 0x1632 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x163D PUSH1 0xA0 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x164C DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x165F DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1673 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1687 DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x169B DUP5 DUP3 DUP6 ADD PUSH2 0x160A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16C9 DUP5 DUP3 DUP6 ADD PUSH2 0x161E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x16E5 PUSH0 DUP4 ADD DUP7 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0x16F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x16FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x11EF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x173D DUP2 PUSH2 0x11E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1757 PUSH0 DUP6 ADD DUP3 PUSH2 0x1734 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1770 PUSH0 DUP4 ADD DUP5 PUSH2 0x1743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1787 JUMPI PUSH2 0x1786 PUSH2 0x1707 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1797 DUP3 PUSH2 0x1776 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x17A6 DUP3 PUSH2 0x178A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17B6 DUP2 PUSH2 0x179C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP2 PUSH2 0x1236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x17E5 DUP3 PUSH2 0x131B JUMP JUMPDEST PUSH2 0x17EF DUP2 DUP6 PUSH2 0x17CB JUMP JUMPDEST SWAP4 POP PUSH2 0x17FF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH2 0x1808 DUP2 PUSH2 0x1343 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1828 PUSH0 DUP7 ADD DUP3 PUSH2 0x17AD JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x183B PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x184E PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x17BC JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1866 DUP3 DUP3 PUSH2 0x17DB JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x188B DUP2 DUP5 PUSH2 0x1813 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18B1 JUMPI PUSH2 0x18B0 PUSH2 0x1578 JUMP JUMPDEST JUMPDEST PUSH2 0x18BA DUP3 PUSH2 0x1343 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x18E7 PUSH2 0x18E2 DUP5 PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1903 JUMPI PUSH2 0x1902 PUSH2 0x1893 JUMP JUMPDEST JUMPDEST PUSH2 0x190E DUP5 DUP3 DUP6 PUSH2 0x18C7 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192A JUMPI PUSH2 0x1929 PUSH2 0x126F JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x193A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x18D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1958 JUMPI PUSH2 0x1957 PUSH2 0x1574 JUMP JUMPDEST JUMPDEST PUSH2 0x1962 PUSH1 0x40 PUSH2 0x15D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1971 DUP5 DUP3 DUP6 ADD PUSH2 0x1404 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1994 JUMPI PUSH2 0x1993 PUSH2 0x15F0 JUMP JUMPDEST JUMPDEST PUSH2 0x19A0 DUP5 DUP3 DUP6 ADD PUSH2 0x1916 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C1 JUMPI PUSH2 0x19C0 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19DE JUMPI PUSH2 0x19DD PUSH2 0x112F JUMP JUMPDEST JUMPDEST PUSH2 0x19EA DUP5 DUP3 DUP6 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19FD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1A2F JUMPI PUSH2 0x1A2E PUSH2 0x1443 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A50 DUP3 PUSH2 0x1A3A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A61 DUP3 PUSH2 0x1A46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A79 PUSH2 0x1A74 DUP3 PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1A57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A99 PUSH2 0x1A94 DUP3 PUSH2 0x11E6 JUMP JUMPDEST PUSH2 0x1A7F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AAA DUP3 DUP7 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ABA DUP3 DUP6 PUSH2 0x1A68 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1ACA DUP3 DUP5 PUSH2 0x1A88 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1AE9 DUP2 PUSH2 0x15F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B04 JUMPI PUSH2 0x1B03 PUSH2 0x112B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1B11 DUP5 DUP3 DUP6 ADD PUSH2 0x1ADB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E PUSH13 0x9519F1B738C96D6BA1E0A87F71 0x23 EQ ORIGIN NOT EXTCODESIZE 0xB2 0xD4 SAR JUMP SDIV PUSH29 0x7C52C76B10A164736F6C63430008190033000000000000000000000000 ","sourceMap":"453:6430:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6091:569:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;595:20:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2189:914;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5046:467;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;1804:32:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3175:752:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1842:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4452:212:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3963:453:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;6091:569:41:-;6137:7;6156:26;6203:10;:24;;;6185:15;:42;;;;:::i;:::-;6156:71;;6237:17;6257:30;6281:4;6257:5;;;;;;;;;;;:15;;;;:30;;;;:::i;:::-;6237:50;;6474:23;6575:4;6549:10;:22;;;6528:18;:43;;;;:::i;:::-;6527:52;;;;:::i;:::-;6500:10;:24;;;:79;;;;:::i;:::-;6474:105;;6614:9;6596:15;:27;:57;;6638:15;6596:57;;;6626:9;6596:57;6589:64;;;;;6091:569;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;595:20:41:-;;;;;;;;;;;;;:::o;2189:914::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2269:24:41::1;2307:5;;2296:32;;;;;;;:::i;:::-;2269:59;;2339:17;2359:36;2389:4;2359:5;:11;;;:21;;;;:36;;;;:::i;:::-;2339:56;;2421:5;:17;;;2409:9;:29;2405:138;;;2490:5;:11;;;2503:9;2514:5;:17;;;2461:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;2405:138;2593:1;2570:5;:19;;;:24;:50;;;;2619:1;2598:5;:17;;;:22;2570:50;:76;;;;2645:1;2624:5;:17;;;:22;2570:76;:135;;;;2686:5;:19;;;2666:5;:17;;;:39;2570:135;2553:204;;;2723:34;;;;;;;;;;;;;;2553:204;2776:5;:11;;;2768:5;;:19;;;;;;;;;;;;;;;;;;2810:206;;;;;;;;2852:5;:17;;;2810:206;;;;2896:5;:17;;;2810:206;;;;2942:15;2810:206;;;;2986:5;:19;;;2810:206;;::::0;2797:10:::1;:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3041:5;:17;;;3027:11;:31;;;;3068:28;3085:10;3068:16;:28::i;:::-;2259:844;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2189:914:41;;:::o;5046:467::-;5127:12;5151:24;5189:5;;5178:32;;;;;;;:::i;:::-;5151:59;;5252:244;;;;;;;;5297:22;5252:244;;;;;;;;:::i;:::-;;;;;;5344:5;:11;;;5252:244;;;;;;5389:4;5252:244;;;;;;5429:51;;;;;;;;5461:5;:17;;;5429:51;;;5418:63;;;;;;;;:::i;:::-;;;;;;;;;;;;;5252:244;;;5228:278;;;;;;;;:::i;:::-;;;;;;;;;;;;;5221:285;;;5046:467;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;1804:32:41:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;3175:752:41:-;3257:4;12517:13:17;:11;:13::i;:::-;3273:26:41::1;3313:5;;3302:33;;;;;;;:::i;:::-;3273:62;;3350:27;3363:6;:13;;;3350:12;:27::i;:::-;3345:55;;3386:14;;;;;;;;;;;;;;3345:55;3410:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;3490:14;3507:15;:13;:15::i;:::-;3490:32;;3559:15;3532:10;:24;;:42;;;;3632:10;:22;;;3623:6;:31;:90;;3691:10;:22;;;3623:90;;;3666:10;:22;;;3657:6;:31;;;;:::i;:::-;3623:90;3584:10;:24:::0;::::1;:129;;;;3772:41;3791:6;:13;;;3806:6;3772:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;3837:6;:13;;;3829:70;;;3869:5;;;;;;;;;;;3876:6;:13;;;3891:6;3852:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3829:70;;;;;;:::i;:::-;;;;;;;;3916:4;3909:11;;;;3175:752:::0;;;;:::o;1842:26::-;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;4452:212:41:-;4535:4;4551:26;4591:5;;4580:33;;;;;;;:::i;:::-;4551:62;;4630:27;4643:6;:13;;;4630:12;:27::i;:::-;4623:34;;;4452:212;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;3963:453:41:-;4047:4;12517:13:17;:11;:13::i;:::-;4063:26:41::1;4103:5;;4092:33;;;;;;;:::i;:::-;4063:62;;4136:14;4165:6;:11;;;4154:34;;;;;;;;;;;;:::i;:::-;4135:53;;4261:41;4280:6;:13;;;4295:6;4261:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;4325:6;:13;;;4317:70;;;4357:5;;;;;;;;;;;4364:6;:13;;;4379:6;4340:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4317:70;;;;;;:::i;:::-;;;;;;;;4405:4;4398:11;;;;3963:453:::0;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;19260:739:27:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;6666:215:41:-;6731:4;6747:14;6764:15;:13;:15::i;:::-;6747:32;;6805:1;6796:6;:10;:54;;;;;6844:6;6810:30;6834:4;6810:5;;;;;;;;;;;:15;;;;:30;;;;:::i;:::-;:40;;6796:54;:78;;;;;6855:7;:19;6863:10;6855:19;;;;;;;;;;;;;;;;;;;;;;;;;6854:20;6796:78;6789:85;;;6666:215;;;:::o;13466:939:27:-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:126::-;1990:7;2030:42;2023:5;2019:54;2008:65;;1953:126;;;:::o;2085:96::-;2122:7;2151:24;2169:5;2151:24;:::i;:::-;2140:35;;2085:96;;;:::o;2187:118::-;2274:24;2292:5;2274:24;:::i;:::-;2269:3;2262:37;2187:118;;:::o;2311:222::-;2404:4;2442:2;2431:9;2427:18;2419:26;;2455:71;2523:1;2512:9;2508:17;2499:6;2455:71;:::i;:::-;2311:222;;;;:::o;2539:117::-;2648:1;2645;2638:12;2662:117;2771:1;2768;2761:12;2785:117;2894:1;2891;2884:12;2921:552;2978:8;2988:6;3038:3;3031:4;3023:6;3019:17;3015:27;3005:122;;3046:79;;:::i;:::-;3005:122;3159:6;3146:20;3136:30;;3189:18;3181:6;3178:30;3175:117;;;3211:79;;:::i;:::-;3175:117;3325:4;3317:6;3313:17;3301:29;;3379:3;3371:4;3363:6;3359:17;3349:8;3345:32;3342:41;3339:128;;;3386:79;;:::i;:::-;3339:128;2921:552;;;;;:::o;3479:527::-;3549:6;3557;3606:2;3594:9;3585:7;3581:23;3577:32;3574:119;;;3612:79;;:::i;:::-;3574:119;3760:1;3749:9;3745:17;3732:31;3790:18;3782:6;3779:30;3776:117;;;3812:79;;:::i;:::-;3776:117;3925:64;3981:7;3972:6;3961:9;3957:22;3925:64;:::i;:::-;3907:82;;;;3703:296;3479:527;;;;;:::o;4012:98::-;4063:6;4097:5;4091:12;4081:22;;4012:98;;;:::o;4116:168::-;4199:11;4233:6;4228:3;4221:19;4273:4;4268:3;4264:14;4249:29;;4116:168;;;;:::o;4290:139::-;4379:6;4374:3;4369;4363:23;4420:1;4411:6;4406:3;4402:16;4395:27;4290:139;;;:::o;4435:102::-;4476:6;4527:2;4523:7;4518:2;4511:5;4507:14;4503:28;4493:38;;4435:102;;;:::o;4543:373::-;4629:3;4657:38;4689:5;4657:38;:::i;:::-;4711:70;4774:6;4769:3;4711:70;:::i;:::-;4704:77;;4790:65;4848:6;4843:3;4836:4;4829:5;4825:16;4790:65;:::i;:::-;4880:29;4902:6;4880:29;:::i;:::-;4875:3;4871:39;4864:46;;4633:283;4543:373;;;;:::o;4922:309::-;5033:4;5071:2;5060:9;5056:18;5048:26;;5120:9;5114:4;5110:20;5106:1;5095:9;5091:17;5084:47;5148:76;5219:4;5210:6;5148:76;:::i;:::-;5140:84;;4922:309;;;;:::o;5237:553::-;5414:4;5452:3;5441:9;5437:19;5429:27;;5466:71;5534:1;5523:9;5519:17;5510:6;5466:71;:::i;:::-;5547:72;5615:2;5604:9;5600:18;5591:6;5547:72;:::i;:::-;5629;5697:2;5686:9;5682:18;5673:6;5629:72;:::i;:::-;5711;5779:2;5768:9;5764:18;5755:6;5711:72;:::i;:::-;5237:553;;;;;;;:::o;5796:122::-;5869:24;5887:5;5869:24;:::i;:::-;5862:5;5859:35;5849:63;;5908:1;5905;5898:12;5849:63;5796:122;:::o;5924:139::-;5970:5;6008:6;5995:20;5986:29;;6024:33;6051:5;6024:33;:::i;:::-;5924:139;;;;:::o;6069:329::-;6128:6;6177:2;6165:9;6156:7;6152:23;6148:32;6145:119;;;6183:79;;:::i;:::-;6145:119;6303:1;6328:53;6373:7;6364:6;6353:9;6349:22;6328:53;:::i;:::-;6318:63;;6274:117;6069:329;;;;:::o;6404:180::-;6452:77;6449:1;6442:88;6549:4;6546:1;6539:15;6573:4;6570:1;6563:15;6590:194;6630:4;6650:20;6668:1;6650:20;:::i;:::-;6645:25;;6684:20;6702:1;6684:20;:::i;:::-;6679:25;;6728:1;6725;6721:9;6713:17;;6752:1;6746:4;6743:11;6740:37;;;6757:18;;:::i;:::-;6740:37;6590:194;;;;:::o;6790:410::-;6830:7;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6942:1;6939;6935:9;6964:30;6982:11;6964:30;:::i;:::-;6953:41;;7143:1;7134:7;7130:15;7127:1;7124:22;7104:1;7097:9;7077:83;7054:139;;7173:18;;:::i;:::-;7054:139;6838:362;6790:410;;;;:::o;7206:180::-;7254:77;7251:1;7244:88;7351:4;7348:1;7341:15;7375:4;7372:1;7365:15;7392:185;7432:1;7449:20;7467:1;7449:20;:::i;:::-;7444:25;;7483:20;7501:1;7483:20;:::i;:::-;7478:25;;7522:1;7512:35;;7527:18;;:::i;:::-;7512:35;7569:1;7566;7562:9;7557:14;;7392:185;;;;:::o;7583:191::-;7623:3;7642:20;7660:1;7642:20;:::i;:::-;7637:25;;7676:20;7694:1;7676:20;:::i;:::-;7671:25;;7719:1;7716;7712:9;7705:16;;7740:3;7737:1;7734:10;7731:36;;;7747:18;;:::i;:::-;7731:36;7583:191;;;;:::o;7780:117::-;7889:1;7886;7879:12;7903:180;7951:77;7948:1;7941:88;8048:4;8045:1;8038:15;8072:4;8069:1;8062:15;8089:281;8172:27;8194:4;8172:27;:::i;:::-;8164:6;8160:40;8302:6;8290:10;8287:22;8266:18;8254:10;8251:34;8248:62;8245:88;;;8313:18;;:::i;:::-;8245:88;8353:10;8349:2;8342:22;8132:238;8089:281;;:::o;8376:129::-;8410:6;8437:20;;:::i;:::-;8427:30;;8466:33;8494:4;8486:6;8466:33;:::i;:::-;8376:129;;;:::o;8511:117::-;8620:1;8617;8610:12;8634:122;8707:24;8725:5;8707:24;:::i;:::-;8700:5;8697:35;8687:63;;8746:1;8743;8736:12;8687:63;8634:122;:::o;8762:139::-;8808:5;8846:6;8833:20;8824:29;;8862:33;8889:5;8862:33;:::i;:::-;8762:139;;;;:::o;8947:1094::-;9026:5;9070:4;9058:9;9053:3;9049:19;9045:30;9042:117;;;9078:79;;:::i;:::-;9042:117;9177:21;9193:4;9177:21;:::i;:::-;9168:30;;9258:1;9298:49;9343:3;9334:6;9323:9;9319:22;9298:49;:::i;:::-;9291:4;9284:5;9280:16;9273:75;9208:151;9427:2;9468:49;9513:3;9504:6;9493:9;9489:22;9468:49;:::i;:::-;9461:4;9454:5;9450:16;9443:75;9369:160;9595:2;9636:49;9681:3;9672:6;9661:9;9657:22;9636:49;:::i;:::-;9629:4;9622:5;9618:16;9611:75;9539:158;9763:2;9804:49;9849:3;9840:6;9829:9;9825:22;9804:49;:::i;:::-;9797:4;9790:5;9786:16;9779:75;9707:158;9931:3;9973:49;10018:3;10009:6;9998:9;9994:22;9973:49;:::i;:::-;9966:4;9959:5;9955:16;9948:75;9875:159;8947:1094;;;;:::o;10047:390::-;10136:6;10185:3;10173:9;10164:7;10160:23;10156:33;10153:120;;;10192:79;;:::i;:::-;10153:120;10312:1;10337:83;10412:7;10403:6;10392:9;10388:22;10337:83;:::i;:::-;10327:93;;10283:147;10047:390;;;;:::o;10443:442::-;10592:4;10630:2;10619:9;10615:18;10607:26;;10643:71;10711:1;10700:9;10696:17;10687:6;10643:71;:::i;:::-;10724:72;10792:2;10781:9;10777:18;10768:6;10724:72;:::i;:::-;10806;10874:2;10863:9;10859:18;10850:6;10806:72;:::i;:::-;10443:442;;;;;;:::o;10891:180::-;10939:77;10936:1;10929:88;11036:4;11033:1;11026:15;11060:4;11057:1;11050:15;11077:108;11154:24;11172:5;11154:24;:::i;:::-;11149:3;11142:37;11077:108;;:::o;11261:353::-;11426:4;11421:3;11417:14;11515:4;11508:5;11504:16;11498:23;11534:63;11591:4;11586:3;11582:14;11568:12;11534:63;:::i;:::-;11441:166;11395:219;11261:353;;:::o;11620:358::-;11781:4;11819:2;11808:9;11804:18;11796:26;;11832:139;11968:1;11957:9;11953:17;11944:6;11832:139;:::i;:::-;11620:358;;;;:::o;11984:120::-;12072:1;12065:5;12062:12;12052:46;;12078:18;;:::i;:::-;12052:46;11984:120;:::o;12110:141::-;12162:7;12191:5;12180:16;;12197:48;12239:5;12197:48;:::i;:::-;12110:141;;;:::o;12257:::-;12320:9;12353:39;12386:5;12353:39;:::i;:::-;12340:52;;12257:141;;;:::o;12404:147::-;12494:50;12538:5;12494:50;:::i;:::-;12489:3;12482:63;12404:147;;:::o;12557:108::-;12634:24;12652:5;12634:24;:::i;:::-;12629:3;12622:37;12557:108;;:::o;12671:158::-;12744:11;12778:6;12773:3;12766:19;12818:4;12813:3;12809:14;12794:29;;12671:158;;;;:::o;12835:353::-;12911:3;12939:38;12971:5;12939:38;:::i;:::-;12993:60;13046:6;13041:3;12993:60;:::i;:::-;12986:67;;13062:65;13120:6;13115:3;13108:4;13101:5;13097:16;13062:65;:::i;:::-;13152:29;13174:6;13152:29;:::i;:::-;13147:3;13143:39;13136:46;;12915:273;12835:353;;;;:::o;13250:977::-;13373:3;13409:4;13404:3;13400:14;13501:4;13494:5;13490:16;13484:23;13520:76;13590:4;13585:3;13581:14;13567:12;13520:76;:::i;:::-;13424:182;13689:4;13682:5;13678:16;13672:23;13708:63;13765:4;13760:3;13756:14;13742:12;13708:63;:::i;:::-;13616:165;13865:4;13858:5;13854:16;13848:23;13884:63;13941:4;13936:3;13932:14;13918:12;13884:63;:::i;:::-;13791:166;14039:4;14032:5;14028:16;14022:23;14092:3;14086:4;14082:14;14075:4;14070:3;14066:14;14059:38;14118:71;14184:4;14170:12;14118:71;:::i;:::-;14110:79;;13967:233;14217:4;14210:11;;13378:849;13250:977;;;;:::o;14233:381::-;14380:4;14418:2;14407:9;14403:18;14395:26;;14467:9;14461:4;14457:20;14453:1;14442:9;14438:17;14431:47;14495:112;14602:4;14593:6;14495:112;:::i;:::-;14487:120;;14233:381;;;;:::o;14620:117::-;14729:1;14726;14719:12;14743:307;14804:4;14894:18;14886:6;14883:30;14880:56;;;14916:18;;:::i;:::-;14880:56;14954:29;14976:6;14954:29;:::i;:::-;14946:37;;15038:4;15032;15028:15;15020:23;;14743:307;;;:::o;15056:148::-;15154:6;15149:3;15144;15131:30;15195:1;15186:6;15181:3;15177:16;15170:27;15056:148;;;:::o;15210:423::-;15287:5;15312:65;15328:48;15369:6;15328:48;:::i;:::-;15312:65;:::i;:::-;15303:74;;15400:6;15393:5;15386:21;15438:4;15431:5;15427:16;15476:3;15467:6;15462:3;15458:16;15455:25;15452:112;;;15483:79;;:::i;:::-;15452:112;15573:54;15620:6;15615:3;15610;15573:54;:::i;:::-;15293:340;15210:423;;;;;:::o;15652:338::-;15707:5;15756:3;15749:4;15741:6;15737:17;15733:27;15723:122;;15764:79;;:::i;:::-;15723:122;15881:6;15868:20;15906:78;15980:3;15972:6;15965:4;15957:6;15953:17;15906:78;:::i;:::-;15897:87;;15713:277;15652:338;;;;:::o;16033:751::-;16113:5;16157:4;16145:9;16140:3;16136:19;16132:30;16129:117;;;16165:79;;:::i;:::-;16129:117;16264:21;16280:4;16264:21;:::i;:::-;16255:30;;16346:1;16386:49;16431:3;16422:6;16411:9;16407:22;16386:49;:::i;:::-;16379:4;16372:5;16368:16;16361:75;16295:152;16534:2;16523:9;16519:18;16506:32;16565:18;16557:6;16554:30;16551:117;;;16587:79;;:::i;:::-;16551:117;16707:58;16761:3;16752:6;16741:9;16737:22;16707:58;:::i;:::-;16700:4;16693:5;16689:16;16682:84;16457:320;16033:751;;;;:::o;16790:551::-;16880:6;16929:2;16917:9;16908:7;16904:23;16900:32;16897:119;;;16935:79;;:::i;:::-;16897:119;17083:1;17072:9;17068:17;17055:31;17113:18;17105:6;17102:30;17099:117;;;17135:79;;:::i;:::-;17099:117;17240:84;17316:7;17307:6;17296:9;17292:22;17240:84;:::i;:::-;17230:94;;17026:308;16790:551;;;;:::o;17347:233::-;17386:3;17409:24;17427:5;17409:24;:::i;:::-;17400:33;;17455:66;17448:5;17445:77;17442:103;;17525:18;;:::i;:::-;17442:103;17572:1;17565:5;17561:13;17554:20;;17347:233;;;:::o;17586:94::-;17619:8;17667:5;17663:2;17659:14;17638:35;;17586:94;;;:::o;17686:::-;17725:7;17754:20;17768:5;17754:20;:::i;:::-;17743:31;;17686:94;;;:::o;17786:100::-;17825:7;17854:26;17874:5;17854:26;:::i;:::-;17843:37;;17786:100;;;:::o;17892:157::-;17997:45;18017:24;18035:5;18017:24;:::i;:::-;17997:45;:::i;:::-;17992:3;17985:58;17892:157;;:::o;18055:79::-;18094:7;18123:5;18112:16;;18055:79;;;:::o;18140:157::-;18245:45;18265:24;18283:5;18265:24;:::i;:::-;18245:45;:::i;:::-;18240:3;18233:58;18140:157;;:::o;18303:538::-;18471:3;18486:75;18557:3;18548:6;18486:75;:::i;:::-;18586:2;18581:3;18577:12;18570:19;;18599:75;18670:3;18661:6;18599:75;:::i;:::-;18699:2;18694:3;18690:12;18683:19;;18712:75;18783:3;18774:6;18712:75;:::i;:::-;18812:2;18807:3;18803:12;18796:19;;18832:3;18825:10;;18303:538;;;;;;:::o;18847:143::-;18904:5;18935:6;18929:13;18920:22;;18951:33;18978:5;18951:33;:::i;:::-;18847:143;;;;:::o;18996:351::-;19066:6;19115:2;19103:9;19094:7;19090:23;19086:32;19083:119;;;19121:79;;:::i;:::-;19083:119;19241:1;19266:64;19322:7;19313:6;19302:9;19298:22;19266:64;:::i;:::-;19256:74;;19212:128;18996:351;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","cgdaParams()":"75ef18d0","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","totalBudget()":"c78da39a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cgdaParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rewardDecay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardBoost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastClaimTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentReward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor.\"},\"currentReward()\":{\"details\":\"The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\",\"returns\":{\"_0\":\"The current reward\"}},\"initialize(bytes)\":{\"params\":{\"data_\":\"Initialization parameters.\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\"},\"returns\":{\"_0\":\"The amount of tokens required\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Continuous Gradual Dutch Auction Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The ERC20-like token used for the incentive\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new CGDAIncentive\"},\"currentReward()\":{\"notice\":\"Calculates the current reward based on the time since the last claim.\"},\"initialize(bytes)\":{\"notice\":\"Initialize the CGDA Incentive\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"preflight(bytes)\":{\"notice\":\"Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/CGDAIncentive.sol\":\"CGDAIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/CGDAIncentive.sol\":{\"keccak256\":\"0xd98d6810556d7431caa965e8ed9fe3c21dbb34f82b6cb45d72e9720b04b355a2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3fac6c8979086bc5fb618400fdcf8002b6e9f38554386c4e231be081f4c4e0cd\",\"dweb:/ipfs/QmQcc5CbmKKkZFqDgmPx3Ng5FtJYTS7EUtKFGNgzNy4GGd\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/ERC1155Incentive.sol":{"ERC1155Incentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"contract IERC1155","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"extraData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum ERC1155Incentive.Strategy","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_16165":{"entryPoint":null,"id":16165,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612506806101b45f395ff3fe608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212202ed8acb107de7b597b4d8e9d724512284925aed3800f1f109954572877ab5e3a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2506 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x134 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA8C62E76 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x428 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x4BC JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x32E JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x3A6 JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xFC JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0x609D3334 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x29E JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17D70F7C EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x19E JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D2 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x159 SWAP2 SWAP1 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x195 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A6 PUSH2 0x577 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x5C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C9 SWAP2 SWAP1 PUSH2 0x1507 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH2 0x973 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x272 PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x288 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x167C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B2 PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DC PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x325 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x354 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34F SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x390 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3BA PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C7 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD19 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x426 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x421 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x433 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x44E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x449 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x18F4 JUMP JUMPDEST PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4BA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xF90 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DD SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xFB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0xFD2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x580 PUSH2 0x104B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5F6 PUSH2 0x1055 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x628 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x64E JUMPI PUSH2 0x64D PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x69C JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71B SWAP3 SWAP2 SWAP1 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x736 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x75A SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD DUP2 LT ISZERO PUSH2 0x7B0 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x81C JUMPI PUSH2 0x81B PUSH2 0x1695 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84A SWAP2 SWAP1 PUSH2 0x1E90 JUMP JUMPDEST POP PUSH2 0x854 CALLER PUSH2 0x107E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x88B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x8A2 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x8C2 JUMPI PUSH2 0x8C1 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x939 SWAP2 SWAP1 PUSH2 0x2003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x95B SWAP2 SWAP1 PUSH2 0x20D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH2 0x9B9 SWAP1 PUSH2 0x1CCC 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 0x9E5 SWAP1 PUSH2 0x1CCC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA30 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA07 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA30 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA13 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0xA49 PUSH0 PUSH2 0x118B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAC PUSH2 0x1154 JUMP JUMPDEST PUSH0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xABF JUMPI PUSH2 0xABE PUSH2 0x1695 JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xAE1 JUMPI PUSH2 0xAE0 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xCED JUMPI PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAF6 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xB04 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B SWAP1 PUSH2 0x21D5 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC13 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCDB SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xCF1 JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD2A SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xD38 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1154 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD6F JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD7C DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xD88 PUSH2 0x1154 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD98 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xDB3 SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD DUP2 GT ISZERO PUSH2 0xE1D JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x23F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE14 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xE2E SWAP2 SWAP1 PUSH2 0x2445 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA0 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2478 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF4B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF98 PUSH2 0x1154 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xFAD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xFB6 DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1044 JUMPI POP PUSH2 0x1043 DUP3 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1086 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x10FE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x10C0 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1151 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1189 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1193 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x11F8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x124E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1324 JUMPI POP PUSH2 0x1323 DUP3 PUSH2 0x132F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13DD DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP2 EQ PUSH2 0x13E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13F8 DUP2 PUSH2 0x13D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1412 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1420 DUP5 DUP3 DUP6 ADD PUSH2 0x13EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x143D DUP2 PUSH2 0x1429 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1456 PUSH0 DUP4 ADD DUP5 PUSH2 0x1434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1487 PUSH0 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14CF PUSH2 0x14CA PUSH2 0x14C5 DUP5 PUSH2 0x148D JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14E0 DUP3 PUSH2 0x14B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14F1 DUP3 PUSH2 0x14D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1501 DUP2 PUSH2 0x14E7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x151A PUSH0 DUP4 ADD DUP5 PUSH2 0x14F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1541 JUMPI PUSH2 0x1540 PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x155E JUMPI PUSH2 0x155D PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x157A JUMPI PUSH2 0x1579 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1597 JUMPI PUSH2 0x1596 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15B4 JUMPI PUSH2 0x15B3 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x15C0 DUP6 DUP3 DUP7 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x160E DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1618 DUP2 DUP6 PUSH2 0x15D6 JUMP JUMPDEST SWAP4 POP PUSH2 0x1628 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1631 DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1654 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1666 DUP3 PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1676 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168F PUSH0 DUP4 ADD DUP5 PUSH2 0x166D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x16D3 JUMPI PUSH2 0x16D2 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x16E3 DUP3 PUSH2 0x16C2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x16F2 DUP3 PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1702 DUP2 PUSH2 0x16E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x171B PUSH0 DUP4 ADD DUP5 PUSH2 0x16F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x172A DUP2 PUSH2 0x165C JUMP JUMPDEST DUP2 EQ PUSH2 0x1734 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1745 DUP2 PUSH2 0x1721 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1760 JUMPI PUSH2 0x175F PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH2 0x177C PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1799 JUMPI PUSH2 0x1798 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x17BC JUMPI PUSH2 0x17BB PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x17C9 DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x17DA DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17FB JUMPI PUSH2 0x17FA PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1807 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x182A JUMPI PUSH2 0x1829 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1836 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1859 JUMPI PUSH2 0x1858 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1865 DUP12 DUP3 DUP13 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x1880 DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1899 PUSH0 DUP4 ADD DUP5 PUSH2 0x1877 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18B4 JUMPI PUSH2 0x18B3 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18C1 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18D3 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP2 EQ PUSH2 0x18DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18EE DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x190E JUMPI PUSH2 0x190D PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x191B DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x192C DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x193D DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x194E DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x196F JUMPI PUSH2 0x196E PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x197B DUP10 DUP3 DUP11 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x19C4 DUP3 PUSH2 0x15F4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x19E3 JUMPI PUSH2 0x19E2 PUSH2 0x198E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19F5 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A01 DUP3 DUP3 PUSH2 0x19BB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1A14 DUP3 PUSH2 0x165C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A24 DUP2 PUSH2 0x1A0A JUMP JUMPDEST DUP2 EQ PUSH2 0x1A2E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A3F DUP2 PUSH2 0x1A1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1A51 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A62 DUP2 PUSH2 0x1A45 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1A8F DUP3 PUSH2 0x15F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ABC PUSH2 0x1AB7 DUP5 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1AD8 JUMPI PUSH2 0x1AD7 PUSH2 0x1A68 JUMP JUMPDEST JUMPDEST PUSH2 0x1AE3 DUP5 DUP3 DUP6 PUSH2 0x1A9C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1AFF JUMPI PUSH2 0x1AFE PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B0F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1AAA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B2D JUMPI PUSH2 0x1B2C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x1B37 PUSH1 0xA0 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1B46 DUP5 DUP3 DUP6 ADD PUSH2 0x1A31 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1B59 DUP5 DUP3 DUP6 ADD PUSH2 0x1A54 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1B6D DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1B81 DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA5 JUMPI PUSH2 0x1BA4 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x1BB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BD2 JUMPI PUSH2 0x1BD1 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BEF JUMPI PUSH2 0x1BEE PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1BFB DUP5 DUP3 DUP6 ADD PUSH2 0x1B18 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C17 PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C39 DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C54 JUMPI PUSH2 0x1C53 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C61 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1C7D PUSH0 DUP4 ADD DUP7 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x1C97 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1CE3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1CF6 JUMPI PUSH2 0x1CF5 PUSH2 0x1C9F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1D58 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1D1D JUMP JUMPDEST PUSH2 0x1D62 DUP7 DUP4 PUSH2 0x1D1D 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 PUSH0 PUSH2 0x1D94 PUSH2 0x1D8F PUSH2 0x1D8A DUP5 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DAD DUP4 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x1DC1 PUSH2 0x1DB9 DUP3 PUSH2 0x1D9B JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1D29 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1DD5 PUSH2 0x1DC9 JUMP JUMPDEST PUSH2 0x1DE0 DUP2 DUP5 DUP5 PUSH2 0x1DA4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E03 JUMPI PUSH2 0x1DF8 PUSH0 DUP3 PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DE6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1E48 JUMPI PUSH2 0x1E19 DUP2 PUSH2 0x1CFC JUMP JUMPDEST PUSH2 0x1E22 DUP5 PUSH2 0x1D0E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1E31 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1E45 PUSH2 0x1E3D DUP6 PUSH2 0x1D0E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1DE5 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E68 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1E4D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E80 DUP4 DUP4 PUSH2 0x1E59 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E99 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EB2 JUMPI PUSH2 0x1EB1 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1EBC DUP3 SLOAD PUSH2 0x1CCC JUMP JUMPDEST PUSH2 0x1EC7 DUP3 DUP3 DUP6 PUSH2 0x1E07 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1EF8 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1EE6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1EF0 DUP6 DUP3 PUSH2 0x1E75 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1F57 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1F06 DUP7 PUSH2 0x1CFC JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1F2D 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 0x1F08 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1F4A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1F46 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1E59 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 0x1F68 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F88 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1F92 DUP2 DUP6 PUSH2 0x1F6E JUMP JUMPDEST SWAP4 POP PUSH2 0x1FA2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1FAB DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1FCB PUSH0 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1FDE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1FF6 DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x201B DUP2 DUP5 PUSH2 0x1FB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2034 JUMPI PUSH2 0x2033 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x2044 DUP3 PUSH2 0x2023 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2053 DUP3 PUSH2 0x2037 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2063 DUP2 PUSH2 0x2049 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2072 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x208D PUSH0 DUP7 ADD DUP3 PUSH2 0x205A JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x20A0 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x20B3 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x20CB DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20F0 DUP2 DUP5 PUSH2 0x2078 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x2117 PUSH1 0x40 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2126 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2149 JUMPI PUSH2 0x2148 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x2155 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2176 JUMPI PUSH2 0x2175 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2193 JUMPI PUSH2 0x2192 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x219F DUP5 DUP3 DUP6 ADD PUSH2 0x20F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x21DF DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x223F PUSH2 0x223A PUSH2 0x2235 DUP5 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2225 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2268 PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2275 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2282 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x228F PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2246 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x22A1 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C3 DUP3 PUSH2 0x22AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22D4 DUP3 PUSH2 0x22B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EC PUSH2 0x22E7 DUP3 PUSH2 0x14E7 JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2303 PUSH2 0x22FE DUP3 PUSH2 0x165C JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2323 PUSH2 0x231E DUP3 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x2309 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x233D DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x2347 DUP2 DUP6 PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP PUSH2 0x2357 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x236E DUP3 DUP9 PUSH2 0x22DB JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x237E DUP3 DUP8 PUSH2 0x22F2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x238E DUP3 DUP7 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x239E DUP3 DUP6 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x23AE DUP3 DUP5 PUSH2 0x2333 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x23D2 PUSH0 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x23EA DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x240F DUP2 DUP5 PUSH2 0x23BD JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x242A PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x243C DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x244F DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH2 0x245A DUP4 PUSH2 0x145C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2472 JUMPI PUSH2 0x2471 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x248B PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2498 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x24A5 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x24B2 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x24C4 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xD8 0xAC 0xB1 SMOD 0xDE PUSH28 0x597B4D8E9D724512284925AED3800F1F109954572877AB5E3A64736F PUSH13 0x63430008190033000000000000 ","sourceMap":"603:6802:42:-:0;;;1913:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;1937:22:42;:20;;;:22;;:::i;:::-;603:6802;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;603:6802:42:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":4436,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":4907,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":4181,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":4222,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_16554":{"entryPoint":4689,"id":16554,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4171,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":4491,"id":6316,"parameterSlots":1,"returnSlots":0},"@asset_16144":{"entryPoint":1480,"id":16144,"parameterSlots":0,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":2419,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_16352":{"entryPoint":2723,"id":16352,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":3319,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":3348,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3393,"id":6396,"parameterSlots":1,"returnSlots":0},"@extraData_16157":{"entryPoint":2476,"id":16157,"parameterSlots":0,"returnSlots":0},"@initialize_16268":{"entryPoint":1517,"id":16268,"parameterSlots":2,"returnSlots":0},"@isClaimable_16512":{"entryPoint":3353,"id":16512,"parameterSlots":2,"returnSlots":1},"@limit_16151":{"entryPoint":2675,"id":16151,"parameterSlots":0,"returnSlots":0},"@onERC1155BatchReceived_16600":{"entryPoint":2700,"id":16600,"parameterSlots":8,"returnSlots":1},"@onERC1155Received_16576":{"entryPoint":3963,"id":16576,"parameterSlots":6,"returnSlots":1},"@owner_6404":{"entryPoint":2635,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4025,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_16487":{"entryPoint":2192,"id":16487,"parameterSlots":2,"returnSlots":1},"@reclaim_16436":{"entryPoint":3455,"id":16436,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":2616,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1399,"id":6376,"parameterSlots":0,"returnSlots":0},"@strategy_16148":{"entryPoint":2681,"id":16148,"parameterSlots":0,"returnSlots":0},"@supportsInterface_16536":{"entryPoint":1272,"id":16536,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17259":{"entryPoint":4050,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":4786,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":4911,"id":2844,"parameterSlots":1,"returnSlots":1},"@tokenId_16154":{"entryPoint":1393,"id":16154,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6347":{"entryPoint":3984,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6826,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5943,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":5963,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes4":{"entryPoint":5098,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":5420,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6891,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IERC1155_$1190":{"entryPoint":6705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_Strategy_$16126":{"entryPoint":6740,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8440,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$16140_memory_ptr":{"entryPoint":6936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6368,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":7211,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6303,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":6048,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr":{"entryPoint":6388,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_bytes4":{"entryPoint":5118,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":5505,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8545,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$16140_memory_ptr":{"entryPoint":7101,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":7231,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":8297,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5741,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":8946,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5172,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":6263,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":8062,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":5636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":9011,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack":{"entryPoint":5368,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":8923,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":8282,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack":{"entryPoint":5881,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack":{"entryPoint":8774,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack":{"entryPoint":9149,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack":{"entryPoint":8118,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack":{"entryPoint":8312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":8031,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5221,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":8978,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_contract$_IERC1155_$1190_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9059,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5756,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_rational_1_by_1_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8789,"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":9336,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9239,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":7172,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7274,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5187,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":6278,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5692,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC1155_$1190__to_t_address__fromStack_reversed":{"entryPoint":5383,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_Strategy_$16126__to_t_uint8__fromStack_reversed":{"entryPoint":5896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed":{"entryPoint":9207,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr__to_t_struct$_ERC1155Payload_$13494_memory_ptr__fromStack_reversed":{"entryPoint":8195,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed":{"entryPoint":8408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5236,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6636,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5016,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6764,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":7420,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":5580,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":8046,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":5590,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":9001,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":9285,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":7687,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":5724,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5161,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5033,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IERC1155_$1190":{"entryPoint":6666,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$13471":{"entryPoint":8247,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_Strategy_$16126":{"entryPoint":5846,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":8732,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5261,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5212,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":7653,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_IERC1155_$1190_to_t_address":{"entryPoint":5351,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":8265,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_Strategy_$16126_to_t_uint8":{"entryPoint":5864,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint256":{"entryPoint":8741,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":5334,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":5301,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":7546,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":7824,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6812,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5606,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":7438,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":7372,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":7797,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":6587,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":5292,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":8661,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":8906,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":8889,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":8969,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":7769,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":8616,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":5781,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":7327,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6542,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":7579,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":5412,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":5408,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":6538,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":6662,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":5416,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6760,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5029,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5025,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":5620,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":8877,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":7453,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":7757,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":7629,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":7465,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":7588,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_AssetType_$13471":{"entryPoint":8227,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_Strategy_$16126":{"entryPoint":5826,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5921,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5076,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IERC1155_$1190":{"entryPoint":6683,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_Strategy_$16126":{"entryPoint":6725,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6346,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":7625,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:34434:53","nodeType":"YulBlock","src":"0:34434:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"1998:81:53","nodeType":"YulBlock","src":"1998:81:53","statements":[{"nativeSrc":"2008:65:53","nodeType":"YulAssignment","src":"2008:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulIdentifier","src":"2023:5:53"},{"kind":"number","nativeSrc":"2030:42:53","nodeType":"YulLiteral","src":"2030:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2019:3:53","nodeType":"YulIdentifier","src":"2019:3:53"},"nativeSrc":"2019:54:53","nodeType":"YulFunctionCall","src":"2019:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2008:7:53","nodeType":"YulIdentifier","src":"2008:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1953:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1980:5:53","nodeType":"YulTypedName","src":"1980:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1990:7:53","nodeType":"YulTypedName","src":"1990:7:53","type":""}],"src":"1953:126:53"},{"body":{"nativeSrc":"2117:28:53","nodeType":"YulBlock","src":"2117:28:53","statements":[{"nativeSrc":"2127:12:53","nodeType":"YulAssignment","src":"2127:12:53","value":{"name":"value","nativeSrc":"2134:5:53","nodeType":"YulIdentifier","src":"2134:5:53"},"variableNames":[{"name":"ret","nativeSrc":"2127:3:53","nodeType":"YulIdentifier","src":"2127:3:53"}]}]},"name":"identity","nativeSrc":"2085:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:53","nodeType":"YulTypedName","src":"2103:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2113:3:53","nodeType":"YulTypedName","src":"2113:3:53","type":""}],"src":"2085:60:53"},{"body":{"nativeSrc":"2211:82:53","nodeType":"YulBlock","src":"2211:82:53","statements":[{"nativeSrc":"2221:66:53","nodeType":"YulAssignment","src":"2221:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2279:5:53","nodeType":"YulIdentifier","src":"2279:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2261:17:53","nodeType":"YulIdentifier","src":"2261:17:53"},"nativeSrc":"2261:24:53","nodeType":"YulFunctionCall","src":"2261:24:53"}],"functionName":{"name":"identity","nativeSrc":"2252:8:53","nodeType":"YulIdentifier","src":"2252:8:53"},"nativeSrc":"2252:34:53","nodeType":"YulFunctionCall","src":"2252:34:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2234:17:53","nodeType":"YulIdentifier","src":"2234:17:53"},"nativeSrc":"2234:53:53","nodeType":"YulFunctionCall","src":"2234:53:53"},"variableNames":[{"name":"converted","nativeSrc":"2221:9:53","nodeType":"YulIdentifier","src":"2221:9:53"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2151:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2191:5:53","nodeType":"YulTypedName","src":"2191:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2201:9:53","nodeType":"YulTypedName","src":"2201:9:53","type":""}],"src":"2151:142:53"},{"body":{"nativeSrc":"2359:66:53","nodeType":"YulBlock","src":"2359:66:53","statements":[{"nativeSrc":"2369:50:53","nodeType":"YulAssignment","src":"2369:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2413:5:53","nodeType":"YulIdentifier","src":"2413:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2382:30:53","nodeType":"YulIdentifier","src":"2382:30:53"},"nativeSrc":"2382:37:53","nodeType":"YulFunctionCall","src":"2382:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2369:9:53","nodeType":"YulIdentifier","src":"2369:9:53"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2299:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2339:5:53","nodeType":"YulTypedName","src":"2339:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2349:9:53","nodeType":"YulTypedName","src":"2349:9:53","type":""}],"src":"2299:126:53"},{"body":{"nativeSrc":"2508:66:53","nodeType":"YulBlock","src":"2508:66:53","statements":[{"nativeSrc":"2518:50:53","nodeType":"YulAssignment","src":"2518:50:53","value":{"arguments":[{"name":"value","nativeSrc":"2562:5:53","nodeType":"YulIdentifier","src":"2562:5:53"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2531:30:53","nodeType":"YulIdentifier","src":"2531:30:53"},"nativeSrc":"2531:37:53","nodeType":"YulFunctionCall","src":"2531:37:53"},"variableNames":[{"name":"converted","nativeSrc":"2518:9:53","nodeType":"YulIdentifier","src":"2518:9:53"}]}]},"name":"convert_t_contract$_IERC1155_$1190_to_t_address","nativeSrc":"2431:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2488:5:53","nodeType":"YulTypedName","src":"2488:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2498:9:53","nodeType":"YulTypedName","src":"2498:9:53","type":""}],"src":"2431:143:53"},{"body":{"nativeSrc":"2662:83:53","nodeType":"YulBlock","src":"2662:83:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2679:3:53","nodeType":"YulIdentifier","src":"2679:3:53"},{"arguments":[{"name":"value","nativeSrc":"2732:5:53","nodeType":"YulIdentifier","src":"2732:5:53"}],"functionName":{"name":"convert_t_contract$_IERC1155_$1190_to_t_address","nativeSrc":"2684:47:53","nodeType":"YulIdentifier","src":"2684:47:53"},"nativeSrc":"2684:54:53","nodeType":"YulFunctionCall","src":"2684:54:53"}],"functionName":{"name":"mstore","nativeSrc":"2672:6:53","nodeType":"YulIdentifier","src":"2672:6:53"},"nativeSrc":"2672:67:53","nodeType":"YulFunctionCall","src":"2672:67:53"},"nativeSrc":"2672:67:53","nodeType":"YulExpressionStatement","src":"2672:67:53"}]},"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack","nativeSrc":"2580:165:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2650:5:53","nodeType":"YulTypedName","src":"2650:5:53","type":""},{"name":"pos","nativeSrc":"2657:3:53","nodeType":"YulTypedName","src":"2657:3:53","type":""}],"src":"2580:165:53"},{"body":{"nativeSrc":"2866:141:53","nodeType":"YulBlock","src":"2866:141:53","statements":[{"nativeSrc":"2876:26:53","nodeType":"YulAssignment","src":"2876:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2888:9:53","nodeType":"YulIdentifier","src":"2888:9:53"},{"kind":"number","nativeSrc":"2899:2:53","nodeType":"YulLiteral","src":"2899:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2884:3:53","nodeType":"YulIdentifier","src":"2884:3:53"},"nativeSrc":"2884:18:53","nodeType":"YulFunctionCall","src":"2884:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2876:4:53","nodeType":"YulIdentifier","src":"2876:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2973:6:53","nodeType":"YulIdentifier","src":"2973:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2986:9:53","nodeType":"YulIdentifier","src":"2986:9:53"},{"kind":"number","nativeSrc":"2997:1:53","nodeType":"YulLiteral","src":"2997:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2982:3:53","nodeType":"YulIdentifier","src":"2982:3:53"},"nativeSrc":"2982:17:53","nodeType":"YulFunctionCall","src":"2982:17:53"}],"functionName":{"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack","nativeSrc":"2912:60:53","nodeType":"YulIdentifier","src":"2912:60:53"},"nativeSrc":"2912:88:53","nodeType":"YulFunctionCall","src":"2912:88:53"},"nativeSrc":"2912:88:53","nodeType":"YulExpressionStatement","src":"2912:88:53"}]},"name":"abi_encode_tuple_t_contract$_IERC1155_$1190__to_t_address__fromStack_reversed","nativeSrc":"2751:256:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2838:9:53","nodeType":"YulTypedName","src":"2838:9:53","type":""},{"name":"value0","nativeSrc":"2850:6:53","nodeType":"YulTypedName","src":"2850:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2861:4:53","nodeType":"YulTypedName","src":"2861:4:53","type":""}],"src":"2751:256:53"},{"body":{"nativeSrc":"3102:28:53","nodeType":"YulBlock","src":"3102:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3119:1:53","nodeType":"YulLiteral","src":"3119:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3122:1:53","nodeType":"YulLiteral","src":"3122:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3112:6:53","nodeType":"YulIdentifier","src":"3112:6:53"},"nativeSrc":"3112:12:53","nodeType":"YulFunctionCall","src":"3112:12:53"},"nativeSrc":"3112:12:53","nodeType":"YulExpressionStatement","src":"3112:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3013:117:53","nodeType":"YulFunctionDefinition","src":"3013:117:53"},{"body":{"nativeSrc":"3225:28:53","nodeType":"YulBlock","src":"3225:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3242:1:53","nodeType":"YulLiteral","src":"3242:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3245:1:53","nodeType":"YulLiteral","src":"3245:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3235:6:53","nodeType":"YulIdentifier","src":"3235:6:53"},"nativeSrc":"3235:12:53","nodeType":"YulFunctionCall","src":"3235:12:53"},"nativeSrc":"3235:12:53","nodeType":"YulExpressionStatement","src":"3235:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3136:117:53","nodeType":"YulFunctionDefinition","src":"3136:117:53"},{"body":{"nativeSrc":"3348:28:53","nodeType":"YulBlock","src":"3348:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3365:1:53","nodeType":"YulLiteral","src":"3365:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3368:1:53","nodeType":"YulLiteral","src":"3368:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"},"nativeSrc":"3358:12:53","nodeType":"YulFunctionCall","src":"3358:12:53"},"nativeSrc":"3358:12:53","nodeType":"YulExpressionStatement","src":"3358:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3259:117:53","nodeType":"YulFunctionDefinition","src":"3259:117:53"},{"body":{"nativeSrc":"3469:478:53","nodeType":"YulBlock","src":"3469:478:53","statements":[{"body":{"nativeSrc":"3518:83:53","nodeType":"YulBlock","src":"3518:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3520:77:53","nodeType":"YulIdentifier","src":"3520:77:53"},"nativeSrc":"3520:79:53","nodeType":"YulFunctionCall","src":"3520:79:53"},"nativeSrc":"3520:79:53","nodeType":"YulExpressionStatement","src":"3520:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3497:6:53","nodeType":"YulIdentifier","src":"3497:6:53"},{"kind":"number","nativeSrc":"3505:4:53","nodeType":"YulLiteral","src":"3505:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3493:3:53","nodeType":"YulIdentifier","src":"3493:3:53"},"nativeSrc":"3493:17:53","nodeType":"YulFunctionCall","src":"3493:17:53"},{"name":"end","nativeSrc":"3512:3:53","nodeType":"YulIdentifier","src":"3512:3:53"}],"functionName":{"name":"slt","nativeSrc":"3489:3:53","nodeType":"YulIdentifier","src":"3489:3:53"},"nativeSrc":"3489:27:53","nodeType":"YulFunctionCall","src":"3489:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3482:6:53","nodeType":"YulIdentifier","src":"3482:6:53"},"nativeSrc":"3482:35:53","nodeType":"YulFunctionCall","src":"3482:35:53"},"nativeSrc":"3479:122:53","nodeType":"YulIf","src":"3479:122:53"},{"nativeSrc":"3610:30:53","nodeType":"YulAssignment","src":"3610:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3633:6:53","nodeType":"YulIdentifier","src":"3633:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3620:12:53","nodeType":"YulIdentifier","src":"3620:12:53"},"nativeSrc":"3620:20:53","nodeType":"YulFunctionCall","src":"3620:20:53"},"variableNames":[{"name":"length","nativeSrc":"3610:6:53","nodeType":"YulIdentifier","src":"3610:6:53"}]},{"body":{"nativeSrc":"3683:83:53","nodeType":"YulBlock","src":"3683:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3685:77:53","nodeType":"YulIdentifier","src":"3685:77:53"},"nativeSrc":"3685:79:53","nodeType":"YulFunctionCall","src":"3685:79:53"},"nativeSrc":"3685:79:53","nodeType":"YulExpressionStatement","src":"3685:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3655:6:53","nodeType":"YulIdentifier","src":"3655:6:53"},{"kind":"number","nativeSrc":"3663:18:53","nodeType":"YulLiteral","src":"3663:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3652:2:53","nodeType":"YulIdentifier","src":"3652:2:53"},"nativeSrc":"3652:30:53","nodeType":"YulFunctionCall","src":"3652:30:53"},"nativeSrc":"3649:117:53","nodeType":"YulIf","src":"3649:117:53"},{"nativeSrc":"3775:29:53","nodeType":"YulAssignment","src":"3775:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3791:6:53","nodeType":"YulIdentifier","src":"3791:6:53"},{"kind":"number","nativeSrc":"3799:4:53","nodeType":"YulLiteral","src":"3799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3787:3:53","nodeType":"YulIdentifier","src":"3787:3:53"},"nativeSrc":"3787:17:53","nodeType":"YulFunctionCall","src":"3787:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3775:8:53","nodeType":"YulIdentifier","src":"3775:8:53"}]},{"body":{"nativeSrc":"3858:83:53","nodeType":"YulBlock","src":"3858:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3860:77:53","nodeType":"YulIdentifier","src":"3860:77:53"},"nativeSrc":"3860:79:53","nodeType":"YulFunctionCall","src":"3860:79:53"},"nativeSrc":"3860:79:53","nodeType":"YulExpressionStatement","src":"3860:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3823:8:53","nodeType":"YulIdentifier","src":"3823:8:53"},{"arguments":[{"name":"length","nativeSrc":"3837:6:53","nodeType":"YulIdentifier","src":"3837:6:53"},{"kind":"number","nativeSrc":"3845:4:53","nodeType":"YulLiteral","src":"3845:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3833:3:53","nodeType":"YulIdentifier","src":"3833:3:53"},"nativeSrc":"3833:17:53","nodeType":"YulFunctionCall","src":"3833:17:53"}],"functionName":{"name":"add","nativeSrc":"3819:3:53","nodeType":"YulIdentifier","src":"3819:3:53"},"nativeSrc":"3819:32:53","nodeType":"YulFunctionCall","src":"3819:32:53"},{"name":"end","nativeSrc":"3853:3:53","nodeType":"YulIdentifier","src":"3853:3:53"}],"functionName":{"name":"gt","nativeSrc":"3816:2:53","nodeType":"YulIdentifier","src":"3816:2:53"},"nativeSrc":"3816:41:53","nodeType":"YulFunctionCall","src":"3816:41:53"},"nativeSrc":"3813:128:53","nodeType":"YulIf","src":"3813:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3395:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3436:6:53","nodeType":"YulTypedName","src":"3436:6:53","type":""},{"name":"end","nativeSrc":"3444:3:53","nodeType":"YulTypedName","src":"3444:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3452:8:53","nodeType":"YulTypedName","src":"3452:8:53","type":""},{"name":"length","nativeSrc":"3462:6:53","nodeType":"YulTypedName","src":"3462:6:53","type":""}],"src":"3395:552:53"},{"body":{"nativeSrc":"4038:442:53","nodeType":"YulBlock","src":"4038:442:53","statements":[{"body":{"nativeSrc":"4084:83:53","nodeType":"YulBlock","src":"4084:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4086:77:53","nodeType":"YulIdentifier","src":"4086:77:53"},"nativeSrc":"4086:79:53","nodeType":"YulFunctionCall","src":"4086:79:53"},"nativeSrc":"4086:79:53","nodeType":"YulExpressionStatement","src":"4086:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4059:7:53","nodeType":"YulIdentifier","src":"4059:7:53"},{"name":"headStart","nativeSrc":"4068:9:53","nodeType":"YulIdentifier","src":"4068:9:53"}],"functionName":{"name":"sub","nativeSrc":"4055:3:53","nodeType":"YulIdentifier","src":"4055:3:53"},"nativeSrc":"4055:23:53","nodeType":"YulFunctionCall","src":"4055:23:53"},{"kind":"number","nativeSrc":"4080:2:53","nodeType":"YulLiteral","src":"4080:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4051:3:53","nodeType":"YulIdentifier","src":"4051:3:53"},"nativeSrc":"4051:32:53","nodeType":"YulFunctionCall","src":"4051:32:53"},"nativeSrc":"4048:119:53","nodeType":"YulIf","src":"4048:119:53"},{"nativeSrc":"4177:296:53","nodeType":"YulBlock","src":"4177:296:53","statements":[{"nativeSrc":"4192:45:53","nodeType":"YulVariableDeclaration","src":"4192:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4223:9:53","nodeType":"YulIdentifier","src":"4223:9:53"},{"kind":"number","nativeSrc":"4234:1:53","nodeType":"YulLiteral","src":"4234:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4219:3:53","nodeType":"YulIdentifier","src":"4219:3:53"},"nativeSrc":"4219:17:53","nodeType":"YulFunctionCall","src":"4219:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4206:12:53","nodeType":"YulIdentifier","src":"4206:12:53"},"nativeSrc":"4206:31:53","nodeType":"YulFunctionCall","src":"4206:31:53"},"variables":[{"name":"offset","nativeSrc":"4196:6:53","nodeType":"YulTypedName","src":"4196:6:53","type":""}]},{"body":{"nativeSrc":"4284:83:53","nodeType":"YulBlock","src":"4284:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4286:77:53","nodeType":"YulIdentifier","src":"4286:77:53"},"nativeSrc":"4286:79:53","nodeType":"YulFunctionCall","src":"4286:79:53"},"nativeSrc":"4286:79:53","nodeType":"YulExpressionStatement","src":"4286:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4256:6:53","nodeType":"YulIdentifier","src":"4256:6:53"},{"kind":"number","nativeSrc":"4264:18:53","nodeType":"YulLiteral","src":"4264:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4253:2:53","nodeType":"YulIdentifier","src":"4253:2:53"},"nativeSrc":"4253:30:53","nodeType":"YulFunctionCall","src":"4253:30:53"},"nativeSrc":"4250:117:53","nodeType":"YulIf","src":"4250:117:53"},{"nativeSrc":"4381:82:53","nodeType":"YulAssignment","src":"4381:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4435:9:53","nodeType":"YulIdentifier","src":"4435:9:53"},{"name":"offset","nativeSrc":"4446:6:53","nodeType":"YulIdentifier","src":"4446:6:53"}],"functionName":{"name":"add","nativeSrc":"4431:3:53","nodeType":"YulIdentifier","src":"4431:3:53"},"nativeSrc":"4431:22:53","nodeType":"YulFunctionCall","src":"4431:22:53"},{"name":"dataEnd","nativeSrc":"4455:7:53","nodeType":"YulIdentifier","src":"4455:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4399:31:53","nodeType":"YulIdentifier","src":"4399:31:53"},"nativeSrc":"4399:64:53","nodeType":"YulFunctionCall","src":"4399:64:53"},"variableNames":[{"name":"value0","nativeSrc":"4381:6:53","nodeType":"YulIdentifier","src":"4381:6:53"},{"name":"value1","nativeSrc":"4389:6:53","nodeType":"YulIdentifier","src":"4389:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3953:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4000:9:53","nodeType":"YulTypedName","src":"4000:9:53","type":""},{"name":"dataEnd","nativeSrc":"4011:7:53","nodeType":"YulTypedName","src":"4011:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4023:6:53","nodeType":"YulTypedName","src":"4023:6:53","type":""},{"name":"value1","nativeSrc":"4031:6:53","nodeType":"YulTypedName","src":"4031:6:53","type":""}],"src":"3953:527:53"},{"body":{"nativeSrc":"4544:40:53","nodeType":"YulBlock","src":"4544:40:53","statements":[{"nativeSrc":"4555:22:53","nodeType":"YulAssignment","src":"4555:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4571:5:53","nodeType":"YulIdentifier","src":"4571:5:53"}],"functionName":{"name":"mload","nativeSrc":"4565:5:53","nodeType":"YulIdentifier","src":"4565:5:53"},"nativeSrc":"4565:12:53","nodeType":"YulFunctionCall","src":"4565:12:53"},"variableNames":[{"name":"length","nativeSrc":"4555:6:53","nodeType":"YulIdentifier","src":"4555:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4486:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4527:5:53","nodeType":"YulTypedName","src":"4527:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4537:6:53","nodeType":"YulTypedName","src":"4537:6:53","type":""}],"src":"4486:98:53"},{"body":{"nativeSrc":"4685:73:53","nodeType":"YulBlock","src":"4685:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4702:3:53","nodeType":"YulIdentifier","src":"4702:3:53"},{"name":"length","nativeSrc":"4707:6:53","nodeType":"YulIdentifier","src":"4707:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4695:6:53","nodeType":"YulIdentifier","src":"4695:6:53"},"nativeSrc":"4695:19:53","nodeType":"YulFunctionCall","src":"4695:19:53"},"nativeSrc":"4695:19:53","nodeType":"YulExpressionStatement","src":"4695:19:53"},{"nativeSrc":"4723:29:53","nodeType":"YulAssignment","src":"4723:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4742:3:53","nodeType":"YulIdentifier","src":"4742:3:53"},{"kind":"number","nativeSrc":"4747:4:53","nodeType":"YulLiteral","src":"4747:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4738:3:53","nodeType":"YulIdentifier","src":"4738:3:53"},"nativeSrc":"4738:14:53","nodeType":"YulFunctionCall","src":"4738:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4723:11:53","nodeType":"YulIdentifier","src":"4723:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4590:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4657:3:53","nodeType":"YulTypedName","src":"4657:3:53","type":""},{"name":"length","nativeSrc":"4662:6:53","nodeType":"YulTypedName","src":"4662:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4673:11:53","nodeType":"YulTypedName","src":"4673:11:53","type":""}],"src":"4590:168:53"},{"body":{"nativeSrc":"4826:77:53","nodeType":"YulBlock","src":"4826:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4843:3:53","nodeType":"YulIdentifier","src":"4843:3:53"},{"name":"src","nativeSrc":"4848:3:53","nodeType":"YulIdentifier","src":"4848:3:53"},{"name":"length","nativeSrc":"4853:6:53","nodeType":"YulIdentifier","src":"4853:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4837:5:53","nodeType":"YulIdentifier","src":"4837:5:53"},"nativeSrc":"4837:23:53","nodeType":"YulFunctionCall","src":"4837:23:53"},"nativeSrc":"4837:23:53","nodeType":"YulExpressionStatement","src":"4837:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4880:3:53","nodeType":"YulIdentifier","src":"4880:3:53"},{"name":"length","nativeSrc":"4885:6:53","nodeType":"YulIdentifier","src":"4885:6:53"}],"functionName":{"name":"add","nativeSrc":"4876:3:53","nodeType":"YulIdentifier","src":"4876:3:53"},"nativeSrc":"4876:16:53","nodeType":"YulFunctionCall","src":"4876:16:53"},{"kind":"number","nativeSrc":"4894:1:53","nodeType":"YulLiteral","src":"4894:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4869:6:53","nodeType":"YulIdentifier","src":"4869:6:53"},"nativeSrc":"4869:27:53","nodeType":"YulFunctionCall","src":"4869:27:53"},"nativeSrc":"4869:27:53","nodeType":"YulExpressionStatement","src":"4869:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4764:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4808:3:53","nodeType":"YulTypedName","src":"4808:3:53","type":""},{"name":"dst","nativeSrc":"4813:3:53","nodeType":"YulTypedName","src":"4813:3:53","type":""},{"name":"length","nativeSrc":"4818:6:53","nodeType":"YulTypedName","src":"4818:6:53","type":""}],"src":"4764:139:53"},{"body":{"nativeSrc":"4957:54:53","nodeType":"YulBlock","src":"4957:54:53","statements":[{"nativeSrc":"4967:38:53","nodeType":"YulAssignment","src":"4967:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4985:5:53","nodeType":"YulIdentifier","src":"4985:5:53"},{"kind":"number","nativeSrc":"4992:2:53","nodeType":"YulLiteral","src":"4992:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4981:3:53","nodeType":"YulIdentifier","src":"4981:3:53"},"nativeSrc":"4981:14:53","nodeType":"YulFunctionCall","src":"4981:14:53"},{"arguments":[{"kind":"number","nativeSrc":"5001:2:53","nodeType":"YulLiteral","src":"5001:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4997:3:53","nodeType":"YulIdentifier","src":"4997:3:53"},"nativeSrc":"4997:7:53","nodeType":"YulFunctionCall","src":"4997:7:53"}],"functionName":{"name":"and","nativeSrc":"4977:3:53","nodeType":"YulIdentifier","src":"4977:3:53"},"nativeSrc":"4977:28:53","nodeType":"YulFunctionCall","src":"4977:28:53"},"variableNames":[{"name":"result","nativeSrc":"4967:6:53","nodeType":"YulIdentifier","src":"4967:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4909:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4940:5:53","nodeType":"YulTypedName","src":"4940:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4950:6:53","nodeType":"YulTypedName","src":"4950:6:53","type":""}],"src":"4909:102:53"},{"body":{"nativeSrc":"5107:283:53","nodeType":"YulBlock","src":"5107:283:53","statements":[{"nativeSrc":"5117:52:53","nodeType":"YulVariableDeclaration","src":"5117:52:53","value":{"arguments":[{"name":"value","nativeSrc":"5163:5:53","nodeType":"YulIdentifier","src":"5163:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5131:31:53","nodeType":"YulIdentifier","src":"5131:31:53"},"nativeSrc":"5131:38:53","nodeType":"YulFunctionCall","src":"5131:38:53"},"variables":[{"name":"length","nativeSrc":"5121:6:53","nodeType":"YulTypedName","src":"5121:6:53","type":""}]},{"nativeSrc":"5178:77:53","nodeType":"YulAssignment","src":"5178:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"5243:3:53","nodeType":"YulIdentifier","src":"5243:3:53"},{"name":"length","nativeSrc":"5248:6:53","nodeType":"YulIdentifier","src":"5248:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"5185:57:53","nodeType":"YulIdentifier","src":"5185:57:53"},"nativeSrc":"5185:70:53","nodeType":"YulFunctionCall","src":"5185:70:53"},"variableNames":[{"name":"pos","nativeSrc":"5178:3:53","nodeType":"YulIdentifier","src":"5178:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5303:5:53","nodeType":"YulIdentifier","src":"5303:5:53"},{"kind":"number","nativeSrc":"5310:4:53","nodeType":"YulLiteral","src":"5310:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5299:3:53","nodeType":"YulIdentifier","src":"5299:3:53"},"nativeSrc":"5299:16:53","nodeType":"YulFunctionCall","src":"5299:16:53"},{"name":"pos","nativeSrc":"5317:3:53","nodeType":"YulIdentifier","src":"5317:3:53"},{"name":"length","nativeSrc":"5322:6:53","nodeType":"YulIdentifier","src":"5322:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5264:34:53","nodeType":"YulIdentifier","src":"5264:34:53"},"nativeSrc":"5264:65:53","nodeType":"YulFunctionCall","src":"5264:65:53"},"nativeSrc":"5264:65:53","nodeType":"YulExpressionStatement","src":"5264:65:53"},{"nativeSrc":"5338:46:53","nodeType":"YulAssignment","src":"5338:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"5349:3:53","nodeType":"YulIdentifier","src":"5349:3:53"},{"arguments":[{"name":"length","nativeSrc":"5376:6:53","nodeType":"YulIdentifier","src":"5376:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5354:21:53","nodeType":"YulIdentifier","src":"5354:21:53"},"nativeSrc":"5354:29:53","nodeType":"YulFunctionCall","src":"5354:29:53"}],"functionName":{"name":"add","nativeSrc":"5345:3:53","nodeType":"YulIdentifier","src":"5345:3:53"},"nativeSrc":"5345:39:53","nodeType":"YulFunctionCall","src":"5345:39:53"},"variableNames":[{"name":"end","nativeSrc":"5338:3:53","nodeType":"YulIdentifier","src":"5338:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5017:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5088:5:53","nodeType":"YulTypedName","src":"5088:5:53","type":""},{"name":"pos","nativeSrc":"5095:3:53","nodeType":"YulTypedName","src":"5095:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5103:3:53","nodeType":"YulTypedName","src":"5103:3:53","type":""}],"src":"5017:373:53"},{"body":{"nativeSrc":"5512:193:53","nodeType":"YulBlock","src":"5512:193:53","statements":[{"nativeSrc":"5522:26:53","nodeType":"YulAssignment","src":"5522:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5534:9:53","nodeType":"YulIdentifier","src":"5534:9:53"},{"kind":"number","nativeSrc":"5545:2:53","nodeType":"YulLiteral","src":"5545:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5530:3:53","nodeType":"YulIdentifier","src":"5530:3:53"},"nativeSrc":"5530:18:53","nodeType":"YulFunctionCall","src":"5530:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5522:4:53","nodeType":"YulIdentifier","src":"5522:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5569:9:53","nodeType":"YulIdentifier","src":"5569:9:53"},{"kind":"number","nativeSrc":"5580:1:53","nodeType":"YulLiteral","src":"5580:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5565:3:53","nodeType":"YulIdentifier","src":"5565:3:53"},"nativeSrc":"5565:17:53","nodeType":"YulFunctionCall","src":"5565:17:53"},{"arguments":[{"name":"tail","nativeSrc":"5588:4:53","nodeType":"YulIdentifier","src":"5588:4:53"},{"name":"headStart","nativeSrc":"5594:9:53","nodeType":"YulIdentifier","src":"5594:9:53"}],"functionName":{"name":"sub","nativeSrc":"5584:3:53","nodeType":"YulIdentifier","src":"5584:3:53"},"nativeSrc":"5584:20:53","nodeType":"YulFunctionCall","src":"5584:20:53"}],"functionName":{"name":"mstore","nativeSrc":"5558:6:53","nodeType":"YulIdentifier","src":"5558:6:53"},"nativeSrc":"5558:47:53","nodeType":"YulFunctionCall","src":"5558:47:53"},"nativeSrc":"5558:47:53","nodeType":"YulExpressionStatement","src":"5558:47:53"},{"nativeSrc":"5614:84:53","nodeType":"YulAssignment","src":"5614:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"5684:6:53","nodeType":"YulIdentifier","src":"5684:6:53"},{"name":"tail","nativeSrc":"5693:4:53","nodeType":"YulIdentifier","src":"5693:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5622:61:53","nodeType":"YulIdentifier","src":"5622:61:53"},"nativeSrc":"5622:76:53","nodeType":"YulFunctionCall","src":"5622:76:53"},"variableNames":[{"name":"tail","nativeSrc":"5614:4:53","nodeType":"YulIdentifier","src":"5614:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5396:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5484:9:53","nodeType":"YulTypedName","src":"5484:9:53","type":""},{"name":"value0","nativeSrc":"5496:6:53","nodeType":"YulTypedName","src":"5496:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5507:4:53","nodeType":"YulTypedName","src":"5507:4:53","type":""}],"src":"5396:309:53"},{"body":{"nativeSrc":"5756:51:53","nodeType":"YulBlock","src":"5756:51:53","statements":[{"nativeSrc":"5766:35:53","nodeType":"YulAssignment","src":"5766:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5795:5:53","nodeType":"YulIdentifier","src":"5795:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5777:17:53","nodeType":"YulIdentifier","src":"5777:17:53"},"nativeSrc":"5777:24:53","nodeType":"YulFunctionCall","src":"5777:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5766:7:53","nodeType":"YulIdentifier","src":"5766:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5711:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5738:5:53","nodeType":"YulTypedName","src":"5738:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5748:7:53","nodeType":"YulTypedName","src":"5748:7:53","type":""}],"src":"5711:96:53"},{"body":{"nativeSrc":"5878:53:53","nodeType":"YulBlock","src":"5878:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5895:3:53","nodeType":"YulIdentifier","src":"5895:3:53"},{"arguments":[{"name":"value","nativeSrc":"5918:5:53","nodeType":"YulIdentifier","src":"5918:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5900:17:53","nodeType":"YulIdentifier","src":"5900:17:53"},"nativeSrc":"5900:24:53","nodeType":"YulFunctionCall","src":"5900:24:53"}],"functionName":{"name":"mstore","nativeSrc":"5888:6:53","nodeType":"YulIdentifier","src":"5888:6:53"},"nativeSrc":"5888:37:53","nodeType":"YulFunctionCall","src":"5888:37:53"},"nativeSrc":"5888:37:53","nodeType":"YulExpressionStatement","src":"5888:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5813:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5866:5:53","nodeType":"YulTypedName","src":"5866:5:53","type":""},{"name":"pos","nativeSrc":"5873:3:53","nodeType":"YulTypedName","src":"5873:3:53","type":""}],"src":"5813:118:53"},{"body":{"nativeSrc":"6035:124:53","nodeType":"YulBlock","src":"6035:124:53","statements":[{"nativeSrc":"6045:26:53","nodeType":"YulAssignment","src":"6045:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6057:9:53","nodeType":"YulIdentifier","src":"6057:9:53"},{"kind":"number","nativeSrc":"6068:2:53","nodeType":"YulLiteral","src":"6068:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6053:3:53","nodeType":"YulIdentifier","src":"6053:3:53"},"nativeSrc":"6053:18:53","nodeType":"YulFunctionCall","src":"6053:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6045:4:53","nodeType":"YulIdentifier","src":"6045:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6125:6:53","nodeType":"YulIdentifier","src":"6125:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6138:9:53","nodeType":"YulIdentifier","src":"6138:9:53"},{"kind":"number","nativeSrc":"6149:1:53","nodeType":"YulLiteral","src":"6149:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6134:3:53","nodeType":"YulIdentifier","src":"6134:3:53"},"nativeSrc":"6134:17:53","nodeType":"YulFunctionCall","src":"6134:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6081:43:53","nodeType":"YulIdentifier","src":"6081:43:53"},"nativeSrc":"6081:71:53","nodeType":"YulFunctionCall","src":"6081:71:53"},"nativeSrc":"6081:71:53","nodeType":"YulExpressionStatement","src":"6081:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5937:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6007:9:53","nodeType":"YulTypedName","src":"6007:9:53","type":""},{"name":"value0","nativeSrc":"6019:6:53","nodeType":"YulTypedName","src":"6019:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6030:4:53","nodeType":"YulTypedName","src":"6030:4:53","type":""}],"src":"5937:222:53"},{"body":{"nativeSrc":"6193:152:53","nodeType":"YulBlock","src":"6193:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6210:1:53","nodeType":"YulLiteral","src":"6210:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6213:77:53","nodeType":"YulLiteral","src":"6213:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6203:6:53","nodeType":"YulIdentifier","src":"6203:6:53"},"nativeSrc":"6203:88:53","nodeType":"YulFunctionCall","src":"6203:88:53"},"nativeSrc":"6203:88:53","nodeType":"YulExpressionStatement","src":"6203:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6307:1:53","nodeType":"YulLiteral","src":"6307:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6310:4:53","nodeType":"YulLiteral","src":"6310:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"6300:6:53","nodeType":"YulIdentifier","src":"6300:6:53"},"nativeSrc":"6300:15:53","nodeType":"YulFunctionCall","src":"6300:15:53"},"nativeSrc":"6300:15:53","nodeType":"YulExpressionStatement","src":"6300:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6331:1:53","nodeType":"YulLiteral","src":"6331:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6334:4:53","nodeType":"YulLiteral","src":"6334:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6324:6:53","nodeType":"YulIdentifier","src":"6324:6:53"},"nativeSrc":"6324:15:53","nodeType":"YulFunctionCall","src":"6324:15:53"},"nativeSrc":"6324:15:53","nodeType":"YulExpressionStatement","src":"6324:15:53"}]},"name":"panic_error_0x21","nativeSrc":"6165:180:53","nodeType":"YulFunctionDefinition","src":"6165:180:53"},{"body":{"nativeSrc":"6408:62:53","nodeType":"YulBlock","src":"6408:62:53","statements":[{"body":{"nativeSrc":"6442:22:53","nodeType":"YulBlock","src":"6442:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"6444:16:53","nodeType":"YulIdentifier","src":"6444:16:53"},"nativeSrc":"6444:18:53","nodeType":"YulFunctionCall","src":"6444:18:53"},"nativeSrc":"6444:18:53","nodeType":"YulExpressionStatement","src":"6444:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6431:5:53","nodeType":"YulIdentifier","src":"6431:5:53"},{"kind":"number","nativeSrc":"6438:1:53","nodeType":"YulLiteral","src":"6438:1:53","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"6428:2:53","nodeType":"YulIdentifier","src":"6428:2:53"},"nativeSrc":"6428:12:53","nodeType":"YulFunctionCall","src":"6428:12:53"}],"functionName":{"name":"iszero","nativeSrc":"6421:6:53","nodeType":"YulIdentifier","src":"6421:6:53"},"nativeSrc":"6421:20:53","nodeType":"YulFunctionCall","src":"6421:20:53"},"nativeSrc":"6418:46:53","nodeType":"YulIf","src":"6418:46:53"}]},"name":"validator_assert_t_enum$_Strategy_$16126","nativeSrc":"6351:119:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6401:5:53","nodeType":"YulTypedName","src":"6401:5:53","type":""}],"src":"6351:119:53"},{"body":{"nativeSrc":"6535:80:53","nodeType":"YulBlock","src":"6535:80:53","statements":[{"nativeSrc":"6545:16:53","nodeType":"YulAssignment","src":"6545:16:53","value":{"name":"value","nativeSrc":"6556:5:53","nodeType":"YulIdentifier","src":"6556:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"6545:7:53","nodeType":"YulIdentifier","src":"6545:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6603:5:53","nodeType":"YulIdentifier","src":"6603:5:53"}],"functionName":{"name":"validator_assert_t_enum$_Strategy_$16126","nativeSrc":"6562:40:53","nodeType":"YulIdentifier","src":"6562:40:53"},"nativeSrc":"6562:47:53","nodeType":"YulFunctionCall","src":"6562:47:53"},"nativeSrc":"6562:47:53","nodeType":"YulExpressionStatement","src":"6562:47:53"}]},"name":"cleanup_t_enum$_Strategy_$16126","nativeSrc":"6476:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6517:5:53","nodeType":"YulTypedName","src":"6517:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6527:7:53","nodeType":"YulTypedName","src":"6527:7:53","type":""}],"src":"6476:139:53"},{"body":{"nativeSrc":"6693:67:53","nodeType":"YulBlock","src":"6693:67:53","statements":[{"nativeSrc":"6703:51:53","nodeType":"YulAssignment","src":"6703:51:53","value":{"arguments":[{"name":"value","nativeSrc":"6748:5:53","nodeType":"YulIdentifier","src":"6748:5:53"}],"functionName":{"name":"cleanup_t_enum$_Strategy_$16126","nativeSrc":"6716:31:53","nodeType":"YulIdentifier","src":"6716:31:53"},"nativeSrc":"6716:38:53","nodeType":"YulFunctionCall","src":"6716:38:53"},"variableNames":[{"name":"converted","nativeSrc":"6703:9:53","nodeType":"YulIdentifier","src":"6703:9:53"}]}]},"name":"convert_t_enum$_Strategy_$16126_to_t_uint8","nativeSrc":"6621:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6673:5:53","nodeType":"YulTypedName","src":"6673:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6683:9:53","nodeType":"YulTypedName","src":"6683:9:53","type":""}],"src":"6621:139:53"},{"body":{"nativeSrc":"6843:78:53","nodeType":"YulBlock","src":"6843:78:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6860:3:53","nodeType":"YulIdentifier","src":"6860:3:53"},{"arguments":[{"name":"value","nativeSrc":"6908:5:53","nodeType":"YulIdentifier","src":"6908:5:53"}],"functionName":{"name":"convert_t_enum$_Strategy_$16126_to_t_uint8","nativeSrc":"6865:42:53","nodeType":"YulIdentifier","src":"6865:42:53"},"nativeSrc":"6865:49:53","nodeType":"YulFunctionCall","src":"6865:49:53"}],"functionName":{"name":"mstore","nativeSrc":"6853:6:53","nodeType":"YulIdentifier","src":"6853:6:53"},"nativeSrc":"6853:62:53","nodeType":"YulFunctionCall","src":"6853:62:53"},"nativeSrc":"6853:62:53","nodeType":"YulExpressionStatement","src":"6853:62:53"}]},"name":"abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack","nativeSrc":"6766:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6831:5:53","nodeType":"YulTypedName","src":"6831:5:53","type":""},{"name":"pos","nativeSrc":"6838:3:53","nodeType":"YulTypedName","src":"6838:3:53","type":""}],"src":"6766:155:53"},{"body":{"nativeSrc":"7037:136:53","nodeType":"YulBlock","src":"7037:136:53","statements":[{"nativeSrc":"7047:26:53","nodeType":"YulAssignment","src":"7047:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7059:9:53","nodeType":"YulIdentifier","src":"7059:9:53"},{"kind":"number","nativeSrc":"7070:2:53","nodeType":"YulLiteral","src":"7070:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7055:3:53","nodeType":"YulIdentifier","src":"7055:3:53"},"nativeSrc":"7055:18:53","nodeType":"YulFunctionCall","src":"7055:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7047:4:53","nodeType":"YulIdentifier","src":"7047:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7139:6:53","nodeType":"YulIdentifier","src":"7139:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7152:9:53","nodeType":"YulIdentifier","src":"7152:9:53"},{"kind":"number","nativeSrc":"7163:1:53","nodeType":"YulLiteral","src":"7163:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7148:3:53","nodeType":"YulIdentifier","src":"7148:3:53"},"nativeSrc":"7148:17:53","nodeType":"YulFunctionCall","src":"7148:17:53"}],"functionName":{"name":"abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack","nativeSrc":"7083:55:53","nodeType":"YulIdentifier","src":"7083:55:53"},"nativeSrc":"7083:83:53","nodeType":"YulFunctionCall","src":"7083:83:53"},"nativeSrc":"7083:83:53","nodeType":"YulExpressionStatement","src":"7083:83:53"}]},"name":"abi_encode_tuple_t_enum$_Strategy_$16126__to_t_uint8__fromStack_reversed","nativeSrc":"6927:246:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7009:9:53","nodeType":"YulTypedName","src":"7009:9:53","type":""},{"name":"value0","nativeSrc":"7021:6:53","nodeType":"YulTypedName","src":"7021:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7032:4:53","nodeType":"YulTypedName","src":"7032:4:53","type":""}],"src":"6927:246:53"},{"body":{"nativeSrc":"7222:79:53","nodeType":"YulBlock","src":"7222:79:53","statements":[{"body":{"nativeSrc":"7279:16:53","nodeType":"YulBlock","src":"7279:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7288:1:53","nodeType":"YulLiteral","src":"7288:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7291:1:53","nodeType":"YulLiteral","src":"7291:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7281:6:53","nodeType":"YulIdentifier","src":"7281:6:53"},"nativeSrc":"7281:12:53","nodeType":"YulFunctionCall","src":"7281:12:53"},"nativeSrc":"7281:12:53","nodeType":"YulExpressionStatement","src":"7281:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7245:5:53","nodeType":"YulIdentifier","src":"7245:5:53"},{"arguments":[{"name":"value","nativeSrc":"7270:5:53","nodeType":"YulIdentifier","src":"7270:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7252:17:53","nodeType":"YulIdentifier","src":"7252:17:53"},"nativeSrc":"7252:24:53","nodeType":"YulFunctionCall","src":"7252:24:53"}],"functionName":{"name":"eq","nativeSrc":"7242:2:53","nodeType":"YulIdentifier","src":"7242:2:53"},"nativeSrc":"7242:35:53","nodeType":"YulFunctionCall","src":"7242:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7235:6:53","nodeType":"YulIdentifier","src":"7235:6:53"},"nativeSrc":"7235:43:53","nodeType":"YulFunctionCall","src":"7235:43:53"},"nativeSrc":"7232:63:53","nodeType":"YulIf","src":"7232:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"7179:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7215:5:53","nodeType":"YulTypedName","src":"7215:5:53","type":""}],"src":"7179:122:53"},{"body":{"nativeSrc":"7359:87:53","nodeType":"YulBlock","src":"7359:87:53","statements":[{"nativeSrc":"7369:29:53","nodeType":"YulAssignment","src":"7369:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7391:6:53","nodeType":"YulIdentifier","src":"7391:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7378:12:53","nodeType":"YulIdentifier","src":"7378:12:53"},"nativeSrc":"7378:20:53","nodeType":"YulFunctionCall","src":"7378:20:53"},"variableNames":[{"name":"value","nativeSrc":"7369:5:53","nodeType":"YulIdentifier","src":"7369:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7434:5:53","nodeType":"YulIdentifier","src":"7434:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7407:26:53","nodeType":"YulIdentifier","src":"7407:26:53"},"nativeSrc":"7407:33:53","nodeType":"YulFunctionCall","src":"7407:33:53"},"nativeSrc":"7407:33:53","nodeType":"YulExpressionStatement","src":"7407:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"7307:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7337:6:53","nodeType":"YulTypedName","src":"7337:6:53","type":""},{"name":"end","nativeSrc":"7345:3:53","nodeType":"YulTypedName","src":"7345:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7353:5:53","nodeType":"YulTypedName","src":"7353:5:53","type":""}],"src":"7307:139:53"},{"body":{"nativeSrc":"7559:478:53","nodeType":"YulBlock","src":"7559:478:53","statements":[{"body":{"nativeSrc":"7608:83:53","nodeType":"YulBlock","src":"7608:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7610:77:53","nodeType":"YulIdentifier","src":"7610:77:53"},"nativeSrc":"7610:79:53","nodeType":"YulFunctionCall","src":"7610:79:53"},"nativeSrc":"7610:79:53","nodeType":"YulExpressionStatement","src":"7610:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7587:6:53","nodeType":"YulIdentifier","src":"7587:6:53"},{"kind":"number","nativeSrc":"7595:4:53","nodeType":"YulLiteral","src":"7595:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7583:3:53","nodeType":"YulIdentifier","src":"7583:3:53"},"nativeSrc":"7583:17:53","nodeType":"YulFunctionCall","src":"7583:17:53"},{"name":"end","nativeSrc":"7602:3:53","nodeType":"YulIdentifier","src":"7602:3:53"}],"functionName":{"name":"slt","nativeSrc":"7579:3:53","nodeType":"YulIdentifier","src":"7579:3:53"},"nativeSrc":"7579:27:53","nodeType":"YulFunctionCall","src":"7579:27:53"}],"functionName":{"name":"iszero","nativeSrc":"7572:6:53","nodeType":"YulIdentifier","src":"7572:6:53"},"nativeSrc":"7572:35:53","nodeType":"YulFunctionCall","src":"7572:35:53"},"nativeSrc":"7569:122:53","nodeType":"YulIf","src":"7569:122:53"},{"nativeSrc":"7700:30:53","nodeType":"YulAssignment","src":"7700:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"7723:6:53","nodeType":"YulIdentifier","src":"7723:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7710:12:53","nodeType":"YulIdentifier","src":"7710:12:53"},"nativeSrc":"7710:20:53","nodeType":"YulFunctionCall","src":"7710:20:53"},"variableNames":[{"name":"length","nativeSrc":"7700:6:53","nodeType":"YulIdentifier","src":"7700:6:53"}]},{"body":{"nativeSrc":"7773:83:53","nodeType":"YulBlock","src":"7773:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7775:77:53","nodeType":"YulIdentifier","src":"7775:77:53"},"nativeSrc":"7775:79:53","nodeType":"YulFunctionCall","src":"7775:79:53"},"nativeSrc":"7775:79:53","nodeType":"YulExpressionStatement","src":"7775:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7745:6:53","nodeType":"YulIdentifier","src":"7745:6:53"},{"kind":"number","nativeSrc":"7753:18:53","nodeType":"YulLiteral","src":"7753:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7742:2:53","nodeType":"YulIdentifier","src":"7742:2:53"},"nativeSrc":"7742:30:53","nodeType":"YulFunctionCall","src":"7742:30:53"},"nativeSrc":"7739:117:53","nodeType":"YulIf","src":"7739:117:53"},{"nativeSrc":"7865:29:53","nodeType":"YulAssignment","src":"7865:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7881:6:53","nodeType":"YulIdentifier","src":"7881:6:53"},{"kind":"number","nativeSrc":"7889:4:53","nodeType":"YulLiteral","src":"7889:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7877:3:53","nodeType":"YulIdentifier","src":"7877:3:53"},"nativeSrc":"7877:17:53","nodeType":"YulFunctionCall","src":"7877:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"7865:8:53","nodeType":"YulIdentifier","src":"7865:8:53"}]},{"body":{"nativeSrc":"7948:83:53","nodeType":"YulBlock","src":"7948:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7950:77:53","nodeType":"YulIdentifier","src":"7950:77:53"},"nativeSrc":"7950:79:53","nodeType":"YulFunctionCall","src":"7950:79:53"},"nativeSrc":"7950:79:53","nodeType":"YulExpressionStatement","src":"7950:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7913:8:53","nodeType":"YulIdentifier","src":"7913:8:53"},{"arguments":[{"name":"length","nativeSrc":"7927:6:53","nodeType":"YulIdentifier","src":"7927:6:53"},{"kind":"number","nativeSrc":"7935:4:53","nodeType":"YulLiteral","src":"7935:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7923:3:53","nodeType":"YulIdentifier","src":"7923:3:53"},"nativeSrc":"7923:17:53","nodeType":"YulFunctionCall","src":"7923:17:53"}],"functionName":{"name":"add","nativeSrc":"7909:3:53","nodeType":"YulIdentifier","src":"7909:3:53"},"nativeSrc":"7909:32:53","nodeType":"YulFunctionCall","src":"7909:32:53"},{"name":"end","nativeSrc":"7943:3:53","nodeType":"YulIdentifier","src":"7943:3:53"}],"functionName":{"name":"gt","nativeSrc":"7906:2:53","nodeType":"YulIdentifier","src":"7906:2:53"},"nativeSrc":"7906:41:53","nodeType":"YulFunctionCall","src":"7906:41:53"},"nativeSrc":"7903:128:53","nodeType":"YulIf","src":"7903:128:53"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"7469:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7526:6:53","nodeType":"YulTypedName","src":"7526:6:53","type":""},{"name":"end","nativeSrc":"7534:3:53","nodeType":"YulTypedName","src":"7534:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7542:8:53","nodeType":"YulTypedName","src":"7542:8:53","type":""},{"name":"length","nativeSrc":"7552:6:53","nodeType":"YulTypedName","src":"7552:6:53","type":""}],"src":"7469:568:53"},{"body":{"nativeSrc":"8266:1346:53","nodeType":"YulBlock","src":"8266:1346:53","statements":[{"body":{"nativeSrc":"8313:83:53","nodeType":"YulBlock","src":"8313:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8315:77:53","nodeType":"YulIdentifier","src":"8315:77:53"},"nativeSrc":"8315:79:53","nodeType":"YulFunctionCall","src":"8315:79:53"},"nativeSrc":"8315:79:53","nodeType":"YulExpressionStatement","src":"8315:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8287:7:53","nodeType":"YulIdentifier","src":"8287:7:53"},{"name":"headStart","nativeSrc":"8296:9:53","nodeType":"YulIdentifier","src":"8296:9:53"}],"functionName":{"name":"sub","nativeSrc":"8283:3:53","nodeType":"YulIdentifier","src":"8283:3:53"},"nativeSrc":"8283:23:53","nodeType":"YulFunctionCall","src":"8283:23:53"},{"kind":"number","nativeSrc":"8308:3:53","nodeType":"YulLiteral","src":"8308:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"8279:3:53","nodeType":"YulIdentifier","src":"8279:3:53"},"nativeSrc":"8279:33:53","nodeType":"YulFunctionCall","src":"8279:33:53"},"nativeSrc":"8276:120:53","nodeType":"YulIf","src":"8276:120:53"},{"nativeSrc":"8406:117:53","nodeType":"YulBlock","src":"8406:117:53","statements":[{"nativeSrc":"8421:15:53","nodeType":"YulVariableDeclaration","src":"8421:15:53","value":{"kind":"number","nativeSrc":"8435:1:53","nodeType":"YulLiteral","src":"8435:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8425:6:53","nodeType":"YulTypedName","src":"8425:6:53","type":""}]},{"nativeSrc":"8450:63:53","nodeType":"YulAssignment","src":"8450:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8485:9:53","nodeType":"YulIdentifier","src":"8485:9:53"},{"name":"offset","nativeSrc":"8496:6:53","nodeType":"YulIdentifier","src":"8496:6:53"}],"functionName":{"name":"add","nativeSrc":"8481:3:53","nodeType":"YulIdentifier","src":"8481:3:53"},"nativeSrc":"8481:22:53","nodeType":"YulFunctionCall","src":"8481:22:53"},{"name":"dataEnd","nativeSrc":"8505:7:53","nodeType":"YulIdentifier","src":"8505:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8460:20:53","nodeType":"YulIdentifier","src":"8460:20:53"},"nativeSrc":"8460:53:53","nodeType":"YulFunctionCall","src":"8460:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8450:6:53","nodeType":"YulIdentifier","src":"8450:6:53"}]}]},{"nativeSrc":"8533:118:53","nodeType":"YulBlock","src":"8533:118:53","statements":[{"nativeSrc":"8548:16:53","nodeType":"YulVariableDeclaration","src":"8548:16:53","value":{"kind":"number","nativeSrc":"8562:2:53","nodeType":"YulLiteral","src":"8562:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8552:6:53","nodeType":"YulTypedName","src":"8552:6:53","type":""}]},{"nativeSrc":"8578:63:53","nodeType":"YulAssignment","src":"8578:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8613:9:53","nodeType":"YulIdentifier","src":"8613:9:53"},{"name":"offset","nativeSrc":"8624:6:53","nodeType":"YulIdentifier","src":"8624:6:53"}],"functionName":{"name":"add","nativeSrc":"8609:3:53","nodeType":"YulIdentifier","src":"8609:3:53"},"nativeSrc":"8609:22:53","nodeType":"YulFunctionCall","src":"8609:22:53"},{"name":"dataEnd","nativeSrc":"8633:7:53","nodeType":"YulIdentifier","src":"8633:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8588:20:53","nodeType":"YulIdentifier","src":"8588:20:53"},"nativeSrc":"8588:53:53","nodeType":"YulFunctionCall","src":"8588:53:53"},"variableNames":[{"name":"value1","nativeSrc":"8578:6:53","nodeType":"YulIdentifier","src":"8578:6:53"}]}]},{"nativeSrc":"8661:313:53","nodeType":"YulBlock","src":"8661:313:53","statements":[{"nativeSrc":"8676:46:53","nodeType":"YulVariableDeclaration","src":"8676:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8707:9:53","nodeType":"YulIdentifier","src":"8707:9:53"},{"kind":"number","nativeSrc":"8718:2:53","nodeType":"YulLiteral","src":"8718:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8703:3:53","nodeType":"YulIdentifier","src":"8703:3:53"},"nativeSrc":"8703:18:53","nodeType":"YulFunctionCall","src":"8703:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8690:12:53","nodeType":"YulIdentifier","src":"8690:12:53"},"nativeSrc":"8690:32:53","nodeType":"YulFunctionCall","src":"8690:32:53"},"variables":[{"name":"offset","nativeSrc":"8680:6:53","nodeType":"YulTypedName","src":"8680:6:53","type":""}]},{"body":{"nativeSrc":"8769:83:53","nodeType":"YulBlock","src":"8769:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8771:77:53","nodeType":"YulIdentifier","src":"8771:77:53"},"nativeSrc":"8771:79:53","nodeType":"YulFunctionCall","src":"8771:79:53"},"nativeSrc":"8771:79:53","nodeType":"YulExpressionStatement","src":"8771:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8741:6:53","nodeType":"YulIdentifier","src":"8741:6:53"},{"kind":"number","nativeSrc":"8749:18:53","nodeType":"YulLiteral","src":"8749:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8738:2:53","nodeType":"YulIdentifier","src":"8738:2:53"},"nativeSrc":"8738:30:53","nodeType":"YulFunctionCall","src":"8738:30:53"},"nativeSrc":"8735:117:53","nodeType":"YulIf","src":"8735:117:53"},{"nativeSrc":"8866:98:53","nodeType":"YulAssignment","src":"8866:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8936:9:53","nodeType":"YulIdentifier","src":"8936:9:53"},{"name":"offset","nativeSrc":"8947:6:53","nodeType":"YulIdentifier","src":"8947:6:53"}],"functionName":{"name":"add","nativeSrc":"8932:3:53","nodeType":"YulIdentifier","src":"8932:3:53"},"nativeSrc":"8932:22:53","nodeType":"YulFunctionCall","src":"8932:22:53"},{"name":"dataEnd","nativeSrc":"8956:7:53","nodeType":"YulIdentifier","src":"8956:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"8884:47:53","nodeType":"YulIdentifier","src":"8884:47:53"},"nativeSrc":"8884:80:53","nodeType":"YulFunctionCall","src":"8884:80:53"},"variableNames":[{"name":"value2","nativeSrc":"8866:6:53","nodeType":"YulIdentifier","src":"8866:6:53"},{"name":"value3","nativeSrc":"8874:6:53","nodeType":"YulIdentifier","src":"8874:6:53"}]}]},{"nativeSrc":"8984:313:53","nodeType":"YulBlock","src":"8984:313:53","statements":[{"nativeSrc":"8999:46:53","nodeType":"YulVariableDeclaration","src":"8999:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9030:9:53","nodeType":"YulIdentifier","src":"9030:9:53"},{"kind":"number","nativeSrc":"9041:2:53","nodeType":"YulLiteral","src":"9041:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9026:3:53","nodeType":"YulIdentifier","src":"9026:3:53"},"nativeSrc":"9026:18:53","nodeType":"YulFunctionCall","src":"9026:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9013:12:53","nodeType":"YulIdentifier","src":"9013:12:53"},"nativeSrc":"9013:32:53","nodeType":"YulFunctionCall","src":"9013:32:53"},"variables":[{"name":"offset","nativeSrc":"9003:6:53","nodeType":"YulTypedName","src":"9003:6:53","type":""}]},{"body":{"nativeSrc":"9092:83:53","nodeType":"YulBlock","src":"9092:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9094:77:53","nodeType":"YulIdentifier","src":"9094:77:53"},"nativeSrc":"9094:79:53","nodeType":"YulFunctionCall","src":"9094:79:53"},"nativeSrc":"9094:79:53","nodeType":"YulExpressionStatement","src":"9094:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9064:6:53","nodeType":"YulIdentifier","src":"9064:6:53"},{"kind":"number","nativeSrc":"9072:18:53","nodeType":"YulLiteral","src":"9072:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9061:2:53","nodeType":"YulIdentifier","src":"9061:2:53"},"nativeSrc":"9061:30:53","nodeType":"YulFunctionCall","src":"9061:30:53"},"nativeSrc":"9058:117:53","nodeType":"YulIf","src":"9058:117:53"},{"nativeSrc":"9189:98:53","nodeType":"YulAssignment","src":"9189:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9259:9:53","nodeType":"YulIdentifier","src":"9259:9:53"},{"name":"offset","nativeSrc":"9270:6:53","nodeType":"YulIdentifier","src":"9270:6:53"}],"functionName":{"name":"add","nativeSrc":"9255:3:53","nodeType":"YulIdentifier","src":"9255:3:53"},"nativeSrc":"9255:22:53","nodeType":"YulFunctionCall","src":"9255:22:53"},{"name":"dataEnd","nativeSrc":"9279:7:53","nodeType":"YulIdentifier","src":"9279:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"9207:47:53","nodeType":"YulIdentifier","src":"9207:47:53"},"nativeSrc":"9207:80:53","nodeType":"YulFunctionCall","src":"9207:80:53"},"variableNames":[{"name":"value4","nativeSrc":"9189:6:53","nodeType":"YulIdentifier","src":"9189:6:53"},{"name":"value5","nativeSrc":"9197:6:53","nodeType":"YulIdentifier","src":"9197:6:53"}]}]},{"nativeSrc":"9307:298:53","nodeType":"YulBlock","src":"9307:298:53","statements":[{"nativeSrc":"9322:47:53","nodeType":"YulVariableDeclaration","src":"9322:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9353:9:53","nodeType":"YulIdentifier","src":"9353:9:53"},{"kind":"number","nativeSrc":"9364:3:53","nodeType":"YulLiteral","src":"9364:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9349:3:53","nodeType":"YulIdentifier","src":"9349:3:53"},"nativeSrc":"9349:19:53","nodeType":"YulFunctionCall","src":"9349:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"9336:12:53","nodeType":"YulIdentifier","src":"9336:12:53"},"nativeSrc":"9336:33:53","nodeType":"YulFunctionCall","src":"9336:33:53"},"variables":[{"name":"offset","nativeSrc":"9326:6:53","nodeType":"YulTypedName","src":"9326:6:53","type":""}]},{"body":{"nativeSrc":"9416:83:53","nodeType":"YulBlock","src":"9416:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9418:77:53","nodeType":"YulIdentifier","src":"9418:77:53"},"nativeSrc":"9418:79:53","nodeType":"YulFunctionCall","src":"9418:79:53"},"nativeSrc":"9418:79:53","nodeType":"YulExpressionStatement","src":"9418:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9388:6:53","nodeType":"YulIdentifier","src":"9388:6:53"},{"kind":"number","nativeSrc":"9396:18:53","nodeType":"YulLiteral","src":"9396:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9385:2:53","nodeType":"YulIdentifier","src":"9385:2:53"},"nativeSrc":"9385:30:53","nodeType":"YulFunctionCall","src":"9385:30:53"},"nativeSrc":"9382:117:53","nodeType":"YulIf","src":"9382:117:53"},{"nativeSrc":"9513:82:53","nodeType":"YulAssignment","src":"9513:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9567:9:53","nodeType":"YulIdentifier","src":"9567:9:53"},{"name":"offset","nativeSrc":"9578:6:53","nodeType":"YulIdentifier","src":"9578:6:53"}],"functionName":{"name":"add","nativeSrc":"9563:3:53","nodeType":"YulIdentifier","src":"9563:3:53"},"nativeSrc":"9563:22:53","nodeType":"YulFunctionCall","src":"9563:22:53"},{"name":"dataEnd","nativeSrc":"9587:7:53","nodeType":"YulIdentifier","src":"9587:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"9531:31:53","nodeType":"YulIdentifier","src":"9531:31:53"},"nativeSrc":"9531:64:53","nodeType":"YulFunctionCall","src":"9531:64:53"},"variableNames":[{"name":"value6","nativeSrc":"9513:6:53","nodeType":"YulIdentifier","src":"9513:6:53"},{"name":"value7","nativeSrc":"9521:6:53","nodeType":"YulIdentifier","src":"9521:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"8043:1569:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8180:9:53","nodeType":"YulTypedName","src":"8180:9:53","type":""},{"name":"dataEnd","nativeSrc":"8191:7:53","nodeType":"YulTypedName","src":"8191:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8203:6:53","nodeType":"YulTypedName","src":"8203:6:53","type":""},{"name":"value1","nativeSrc":"8211:6:53","nodeType":"YulTypedName","src":"8211:6:53","type":""},{"name":"value2","nativeSrc":"8219:6:53","nodeType":"YulTypedName","src":"8219:6:53","type":""},{"name":"value3","nativeSrc":"8227:6:53","nodeType":"YulTypedName","src":"8227:6:53","type":""},{"name":"value4","nativeSrc":"8235:6:53","nodeType":"YulTypedName","src":"8235:6:53","type":""},{"name":"value5","nativeSrc":"8243:6:53","nodeType":"YulTypedName","src":"8243:6:53","type":""},{"name":"value6","nativeSrc":"8251:6:53","nodeType":"YulTypedName","src":"8251:6:53","type":""},{"name":"value7","nativeSrc":"8259:6:53","nodeType":"YulTypedName","src":"8259:6:53","type":""}],"src":"8043:1569:53"},{"body":{"nativeSrc":"9681:52:53","nodeType":"YulBlock","src":"9681:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9698:3:53","nodeType":"YulIdentifier","src":"9698:3:53"},{"arguments":[{"name":"value","nativeSrc":"9720:5:53","nodeType":"YulIdentifier","src":"9720:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"9703:16:53","nodeType":"YulIdentifier","src":"9703:16:53"},"nativeSrc":"9703:23:53","nodeType":"YulFunctionCall","src":"9703:23:53"}],"functionName":{"name":"mstore","nativeSrc":"9691:6:53","nodeType":"YulIdentifier","src":"9691:6:53"},"nativeSrc":"9691:36:53","nodeType":"YulFunctionCall","src":"9691:36:53"},"nativeSrc":"9691:36:53","nodeType":"YulExpressionStatement","src":"9691:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"9618:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9669:5:53","nodeType":"YulTypedName","src":"9669:5:53","type":""},{"name":"pos","nativeSrc":"9676:3:53","nodeType":"YulTypedName","src":"9676:3:53","type":""}],"src":"9618:115:53"},{"body":{"nativeSrc":"9835:122:53","nodeType":"YulBlock","src":"9835:122:53","statements":[{"nativeSrc":"9845:26:53","nodeType":"YulAssignment","src":"9845:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9857:9:53","nodeType":"YulIdentifier","src":"9857:9:53"},{"kind":"number","nativeSrc":"9868:2:53","nodeType":"YulLiteral","src":"9868:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9853:3:53","nodeType":"YulIdentifier","src":"9853:3:53"},"nativeSrc":"9853:18:53","nodeType":"YulFunctionCall","src":"9853:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9845:4:53","nodeType":"YulIdentifier","src":"9845:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9923:6:53","nodeType":"YulIdentifier","src":"9923:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9936:9:53","nodeType":"YulIdentifier","src":"9936:9:53"},{"kind":"number","nativeSrc":"9947:1:53","nodeType":"YulLiteral","src":"9947:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9932:3:53","nodeType":"YulIdentifier","src":"9932:3:53"},"nativeSrc":"9932:17:53","nodeType":"YulFunctionCall","src":"9932:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"9881:41:53","nodeType":"YulIdentifier","src":"9881:41:53"},"nativeSrc":"9881:69:53","nodeType":"YulFunctionCall","src":"9881:69:53"},"nativeSrc":"9881:69:53","nodeType":"YulExpressionStatement","src":"9881:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"9739:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9807:9:53","nodeType":"YulTypedName","src":"9807:9:53","type":""},{"name":"value0","nativeSrc":"9819:6:53","nodeType":"YulTypedName","src":"9819:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9830:4:53","nodeType":"YulTypedName","src":"9830:4:53","type":""}],"src":"9739:218:53"},{"body":{"nativeSrc":"10029:263:53","nodeType":"YulBlock","src":"10029:263:53","statements":[{"body":{"nativeSrc":"10075:83:53","nodeType":"YulBlock","src":"10075:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10077:77:53","nodeType":"YulIdentifier","src":"10077:77:53"},"nativeSrc":"10077:79:53","nodeType":"YulFunctionCall","src":"10077:79:53"},"nativeSrc":"10077:79:53","nodeType":"YulExpressionStatement","src":"10077:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10050:7:53","nodeType":"YulIdentifier","src":"10050:7:53"},{"name":"headStart","nativeSrc":"10059:9:53","nodeType":"YulIdentifier","src":"10059:9:53"}],"functionName":{"name":"sub","nativeSrc":"10046:3:53","nodeType":"YulIdentifier","src":"10046:3:53"},"nativeSrc":"10046:23:53","nodeType":"YulFunctionCall","src":"10046:23:53"},{"kind":"number","nativeSrc":"10071:2:53","nodeType":"YulLiteral","src":"10071:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10042:3:53","nodeType":"YulIdentifier","src":"10042:3:53"},"nativeSrc":"10042:32:53","nodeType":"YulFunctionCall","src":"10042:32:53"},"nativeSrc":"10039:119:53","nodeType":"YulIf","src":"10039:119:53"},{"nativeSrc":"10168:117:53","nodeType":"YulBlock","src":"10168:117:53","statements":[{"nativeSrc":"10183:15:53","nodeType":"YulVariableDeclaration","src":"10183:15:53","value":{"kind":"number","nativeSrc":"10197:1:53","nodeType":"YulLiteral","src":"10197:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10187:6:53","nodeType":"YulTypedName","src":"10187:6:53","type":""}]},{"nativeSrc":"10212:63:53","nodeType":"YulAssignment","src":"10212:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10247:9:53","nodeType":"YulIdentifier","src":"10247:9:53"},{"name":"offset","nativeSrc":"10258:6:53","nodeType":"YulIdentifier","src":"10258:6:53"}],"functionName":{"name":"add","nativeSrc":"10243:3:53","nodeType":"YulIdentifier","src":"10243:3:53"},"nativeSrc":"10243:22:53","nodeType":"YulFunctionCall","src":"10243:22:53"},{"name":"dataEnd","nativeSrc":"10267:7:53","nodeType":"YulIdentifier","src":"10267:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10222:20:53","nodeType":"YulIdentifier","src":"10222:20:53"},"nativeSrc":"10222:53:53","nodeType":"YulFunctionCall","src":"10222:53:53"},"variableNames":[{"name":"value0","nativeSrc":"10212:6:53","nodeType":"YulIdentifier","src":"10212:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"9963:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9999:9:53","nodeType":"YulTypedName","src":"9999:9:53","type":""},{"name":"dataEnd","nativeSrc":"10010:7:53","nodeType":"YulTypedName","src":"10010:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10022:6:53","nodeType":"YulTypedName","src":"10022:6:53","type":""}],"src":"9963:329:53"},{"body":{"nativeSrc":"10341:79:53","nodeType":"YulBlock","src":"10341:79:53","statements":[{"body":{"nativeSrc":"10398:16:53","nodeType":"YulBlock","src":"10398:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10407:1:53","nodeType":"YulLiteral","src":"10407:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10410:1:53","nodeType":"YulLiteral","src":"10410:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10400:6:53","nodeType":"YulIdentifier","src":"10400:6:53"},"nativeSrc":"10400:12:53","nodeType":"YulFunctionCall","src":"10400:12:53"},"nativeSrc":"10400:12:53","nodeType":"YulExpressionStatement","src":"10400:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10364:5:53","nodeType":"YulIdentifier","src":"10364:5:53"},{"arguments":[{"name":"value","nativeSrc":"10389:5:53","nodeType":"YulIdentifier","src":"10389:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10371:17:53","nodeType":"YulIdentifier","src":"10371:17:53"},"nativeSrc":"10371:24:53","nodeType":"YulFunctionCall","src":"10371:24:53"}],"functionName":{"name":"eq","nativeSrc":"10361:2:53","nodeType":"YulIdentifier","src":"10361:2:53"},"nativeSrc":"10361:35:53","nodeType":"YulFunctionCall","src":"10361:35:53"}],"functionName":{"name":"iszero","nativeSrc":"10354:6:53","nodeType":"YulIdentifier","src":"10354:6:53"},"nativeSrc":"10354:43:53","nodeType":"YulFunctionCall","src":"10354:43:53"},"nativeSrc":"10351:63:53","nodeType":"YulIf","src":"10351:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"10298:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10334:5:53","nodeType":"YulTypedName","src":"10334:5:53","type":""}],"src":"10298:122:53"},{"body":{"nativeSrc":"10478:87:53","nodeType":"YulBlock","src":"10478:87:53","statements":[{"nativeSrc":"10488:29:53","nodeType":"YulAssignment","src":"10488:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10510:6:53","nodeType":"YulIdentifier","src":"10510:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10497:12:53","nodeType":"YulIdentifier","src":"10497:12:53"},"nativeSrc":"10497:20:53","nodeType":"YulFunctionCall","src":"10497:20:53"},"variableNames":[{"name":"value","nativeSrc":"10488:5:53","nodeType":"YulIdentifier","src":"10488:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10553:5:53","nodeType":"YulIdentifier","src":"10553:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"10526:26:53","nodeType":"YulIdentifier","src":"10526:26:53"},"nativeSrc":"10526:33:53","nodeType":"YulFunctionCall","src":"10526:33:53"},"nativeSrc":"10526:33:53","nodeType":"YulExpressionStatement","src":"10526:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"10426:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10456:6:53","nodeType":"YulTypedName","src":"10456:6:53","type":""},{"name":"end","nativeSrc":"10464:3:53","nodeType":"YulTypedName","src":"10464:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10472:5:53","nodeType":"YulTypedName","src":"10472:5:53","type":""}],"src":"10426:139:53"},{"body":{"nativeSrc":"10724:956:53","nodeType":"YulBlock","src":"10724:956:53","statements":[{"body":{"nativeSrc":"10771:83:53","nodeType":"YulBlock","src":"10771:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10773:77:53","nodeType":"YulIdentifier","src":"10773:77:53"},"nativeSrc":"10773:79:53","nodeType":"YulFunctionCall","src":"10773:79:53"},"nativeSrc":"10773:79:53","nodeType":"YulExpressionStatement","src":"10773:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10745:7:53","nodeType":"YulIdentifier","src":"10745:7:53"},{"name":"headStart","nativeSrc":"10754:9:53","nodeType":"YulIdentifier","src":"10754:9:53"}],"functionName":{"name":"sub","nativeSrc":"10741:3:53","nodeType":"YulIdentifier","src":"10741:3:53"},"nativeSrc":"10741:23:53","nodeType":"YulFunctionCall","src":"10741:23:53"},{"kind":"number","nativeSrc":"10766:3:53","nodeType":"YulLiteral","src":"10766:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"10737:3:53","nodeType":"YulIdentifier","src":"10737:3:53"},"nativeSrc":"10737:33:53","nodeType":"YulFunctionCall","src":"10737:33:53"},"nativeSrc":"10734:120:53","nodeType":"YulIf","src":"10734:120:53"},{"nativeSrc":"10864:117:53","nodeType":"YulBlock","src":"10864:117:53","statements":[{"nativeSrc":"10879:15:53","nodeType":"YulVariableDeclaration","src":"10879:15:53","value":{"kind":"number","nativeSrc":"10893:1:53","nodeType":"YulLiteral","src":"10893:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10883:6:53","nodeType":"YulTypedName","src":"10883:6:53","type":""}]},{"nativeSrc":"10908:63:53","nodeType":"YulAssignment","src":"10908:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10943:9:53","nodeType":"YulIdentifier","src":"10943:9:53"},{"name":"offset","nativeSrc":"10954:6:53","nodeType":"YulIdentifier","src":"10954:6:53"}],"functionName":{"name":"add","nativeSrc":"10939:3:53","nodeType":"YulIdentifier","src":"10939:3:53"},"nativeSrc":"10939:22:53","nodeType":"YulFunctionCall","src":"10939:22:53"},{"name":"dataEnd","nativeSrc":"10963:7:53","nodeType":"YulIdentifier","src":"10963:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10918:20:53","nodeType":"YulIdentifier","src":"10918:20:53"},"nativeSrc":"10918:53:53","nodeType":"YulFunctionCall","src":"10918:53:53"},"variableNames":[{"name":"value0","nativeSrc":"10908:6:53","nodeType":"YulIdentifier","src":"10908:6:53"}]}]},{"nativeSrc":"10991:118:53","nodeType":"YulBlock","src":"10991:118:53","statements":[{"nativeSrc":"11006:16:53","nodeType":"YulVariableDeclaration","src":"11006:16:53","value":{"kind":"number","nativeSrc":"11020:2:53","nodeType":"YulLiteral","src":"11020:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11010:6:53","nodeType":"YulTypedName","src":"11010:6:53","type":""}]},{"nativeSrc":"11036:63:53","nodeType":"YulAssignment","src":"11036:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11071:9:53","nodeType":"YulIdentifier","src":"11071:9:53"},{"name":"offset","nativeSrc":"11082:6:53","nodeType":"YulIdentifier","src":"11082:6:53"}],"functionName":{"name":"add","nativeSrc":"11067:3:53","nodeType":"YulIdentifier","src":"11067:3:53"},"nativeSrc":"11067:22:53","nodeType":"YulFunctionCall","src":"11067:22:53"},{"name":"dataEnd","nativeSrc":"11091:7:53","nodeType":"YulIdentifier","src":"11091:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11046:20:53","nodeType":"YulIdentifier","src":"11046:20:53"},"nativeSrc":"11046:53:53","nodeType":"YulFunctionCall","src":"11046:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11036:6:53","nodeType":"YulIdentifier","src":"11036:6:53"}]}]},{"nativeSrc":"11119:118:53","nodeType":"YulBlock","src":"11119:118:53","statements":[{"nativeSrc":"11134:16:53","nodeType":"YulVariableDeclaration","src":"11134:16:53","value":{"kind":"number","nativeSrc":"11148:2:53","nodeType":"YulLiteral","src":"11148:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11138:6:53","nodeType":"YulTypedName","src":"11138:6:53","type":""}]},{"nativeSrc":"11164:63:53","nodeType":"YulAssignment","src":"11164:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11199:9:53","nodeType":"YulIdentifier","src":"11199:9:53"},{"name":"offset","nativeSrc":"11210:6:53","nodeType":"YulIdentifier","src":"11210:6:53"}],"functionName":{"name":"add","nativeSrc":"11195:3:53","nodeType":"YulIdentifier","src":"11195:3:53"},"nativeSrc":"11195:22:53","nodeType":"YulFunctionCall","src":"11195:22:53"},{"name":"dataEnd","nativeSrc":"11219:7:53","nodeType":"YulIdentifier","src":"11219:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11174:20:53","nodeType":"YulIdentifier","src":"11174:20:53"},"nativeSrc":"11174:53:53","nodeType":"YulFunctionCall","src":"11174:53:53"},"variableNames":[{"name":"value2","nativeSrc":"11164:6:53","nodeType":"YulIdentifier","src":"11164:6:53"}]}]},{"nativeSrc":"11247:118:53","nodeType":"YulBlock","src":"11247:118:53","statements":[{"nativeSrc":"11262:16:53","nodeType":"YulVariableDeclaration","src":"11262:16:53","value":{"kind":"number","nativeSrc":"11276:2:53","nodeType":"YulLiteral","src":"11276:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11266:6:53","nodeType":"YulTypedName","src":"11266:6:53","type":""}]},{"nativeSrc":"11292:63:53","nodeType":"YulAssignment","src":"11292:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11327:9:53","nodeType":"YulIdentifier","src":"11327:9:53"},{"name":"offset","nativeSrc":"11338:6:53","nodeType":"YulIdentifier","src":"11338:6:53"}],"functionName":{"name":"add","nativeSrc":"11323:3:53","nodeType":"YulIdentifier","src":"11323:3:53"},"nativeSrc":"11323:22:53","nodeType":"YulFunctionCall","src":"11323:22:53"},{"name":"dataEnd","nativeSrc":"11347:7:53","nodeType":"YulIdentifier","src":"11347:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11302:20:53","nodeType":"YulIdentifier","src":"11302:20:53"},"nativeSrc":"11302:53:53","nodeType":"YulFunctionCall","src":"11302:53:53"},"variableNames":[{"name":"value3","nativeSrc":"11292:6:53","nodeType":"YulIdentifier","src":"11292:6:53"}]}]},{"nativeSrc":"11375:298:53","nodeType":"YulBlock","src":"11375:298:53","statements":[{"nativeSrc":"11390:47:53","nodeType":"YulVariableDeclaration","src":"11390:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11421:9:53","nodeType":"YulIdentifier","src":"11421:9:53"},{"kind":"number","nativeSrc":"11432:3:53","nodeType":"YulLiteral","src":"11432:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11417:3:53","nodeType":"YulIdentifier","src":"11417:3:53"},"nativeSrc":"11417:19:53","nodeType":"YulFunctionCall","src":"11417:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"11404:12:53","nodeType":"YulIdentifier","src":"11404:12:53"},"nativeSrc":"11404:33:53","nodeType":"YulFunctionCall","src":"11404:33:53"},"variables":[{"name":"offset","nativeSrc":"11394:6:53","nodeType":"YulTypedName","src":"11394:6:53","type":""}]},{"body":{"nativeSrc":"11484:83:53","nodeType":"YulBlock","src":"11484:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11486:77:53","nodeType":"YulIdentifier","src":"11486:77:53"},"nativeSrc":"11486:79:53","nodeType":"YulFunctionCall","src":"11486:79:53"},"nativeSrc":"11486:79:53","nodeType":"YulExpressionStatement","src":"11486:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11456:6:53","nodeType":"YulIdentifier","src":"11456:6:53"},{"kind":"number","nativeSrc":"11464:18:53","nodeType":"YulLiteral","src":"11464:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11453:2:53","nodeType":"YulIdentifier","src":"11453:2:53"},"nativeSrc":"11453:30:53","nodeType":"YulFunctionCall","src":"11453:30:53"},"nativeSrc":"11450:117:53","nodeType":"YulIf","src":"11450:117:53"},{"nativeSrc":"11581:82:53","nodeType":"YulAssignment","src":"11581:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11635:9:53","nodeType":"YulIdentifier","src":"11635:9:53"},{"name":"offset","nativeSrc":"11646:6:53","nodeType":"YulIdentifier","src":"11646:6:53"}],"functionName":{"name":"add","nativeSrc":"11631:3:53","nodeType":"YulIdentifier","src":"11631:3:53"},"nativeSrc":"11631:22:53","nodeType":"YulFunctionCall","src":"11631:22:53"},{"name":"dataEnd","nativeSrc":"11655:7:53","nodeType":"YulIdentifier","src":"11655:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"11599:31:53","nodeType":"YulIdentifier","src":"11599:31:53"},"nativeSrc":"11599:64:53","nodeType":"YulFunctionCall","src":"11599:64:53"},"variableNames":[{"name":"value4","nativeSrc":"11581:6:53","nodeType":"YulIdentifier","src":"11581:6:53"},{"name":"value5","nativeSrc":"11589:6:53","nodeType":"YulIdentifier","src":"11589:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr","nativeSrc":"10571:1109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10654:9:53","nodeType":"YulTypedName","src":"10654:9:53","type":""},{"name":"dataEnd","nativeSrc":"10665:7:53","nodeType":"YulTypedName","src":"10665:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10677:6:53","nodeType":"YulTypedName","src":"10677:6:53","type":""},{"name":"value1","nativeSrc":"10685:6:53","nodeType":"YulTypedName","src":"10685:6:53","type":""},{"name":"value2","nativeSrc":"10693:6:53","nodeType":"YulTypedName","src":"10693:6:53","type":""},{"name":"value3","nativeSrc":"10701:6:53","nodeType":"YulTypedName","src":"10701:6:53","type":""},{"name":"value4","nativeSrc":"10709:6:53","nodeType":"YulTypedName","src":"10709:6:53","type":""},{"name":"value5","nativeSrc":"10717:6:53","nodeType":"YulTypedName","src":"10717:6:53","type":""}],"src":"10571:1109:53"},{"body":{"nativeSrc":"11775:28:53","nodeType":"YulBlock","src":"11775:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11792:1:53","nodeType":"YulLiteral","src":"11792:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11795:1:53","nodeType":"YulLiteral","src":"11795:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11785:6:53","nodeType":"YulIdentifier","src":"11785:6:53"},"nativeSrc":"11785:12:53","nodeType":"YulFunctionCall","src":"11785:12:53"},"nativeSrc":"11785:12:53","nodeType":"YulExpressionStatement","src":"11785:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"11686:117:53","nodeType":"YulFunctionDefinition","src":"11686:117:53"},{"body":{"nativeSrc":"11837:152:53","nodeType":"YulBlock","src":"11837:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11854:1:53","nodeType":"YulLiteral","src":"11854:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11857:77:53","nodeType":"YulLiteral","src":"11857:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11847:6:53","nodeType":"YulIdentifier","src":"11847:6:53"},"nativeSrc":"11847:88:53","nodeType":"YulFunctionCall","src":"11847:88:53"},"nativeSrc":"11847:88:53","nodeType":"YulExpressionStatement","src":"11847:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11951:1:53","nodeType":"YulLiteral","src":"11951:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11954:4:53","nodeType":"YulLiteral","src":"11954:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"11944:6:53","nodeType":"YulIdentifier","src":"11944:6:53"},"nativeSrc":"11944:15:53","nodeType":"YulFunctionCall","src":"11944:15:53"},"nativeSrc":"11944:15:53","nodeType":"YulExpressionStatement","src":"11944:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11975:1:53","nodeType":"YulLiteral","src":"11975:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11978:4:53","nodeType":"YulLiteral","src":"11978:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11968:6:53","nodeType":"YulIdentifier","src":"11968:6:53"},"nativeSrc":"11968:15:53","nodeType":"YulFunctionCall","src":"11968:15:53"},"nativeSrc":"11968:15:53","nodeType":"YulExpressionStatement","src":"11968:15:53"}]},"name":"panic_error_0x41","nativeSrc":"11809:180:53","nodeType":"YulFunctionDefinition","src":"11809:180:53"},{"body":{"nativeSrc":"12038:238:53","nodeType":"YulBlock","src":"12038:238:53","statements":[{"nativeSrc":"12048:58:53","nodeType":"YulVariableDeclaration","src":"12048:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"12070:6:53","nodeType":"YulIdentifier","src":"12070:6:53"},{"arguments":[{"name":"size","nativeSrc":"12100:4:53","nodeType":"YulIdentifier","src":"12100:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"12078:21:53","nodeType":"YulIdentifier","src":"12078:21:53"},"nativeSrc":"12078:27:53","nodeType":"YulFunctionCall","src":"12078:27:53"}],"functionName":{"name":"add","nativeSrc":"12066:3:53","nodeType":"YulIdentifier","src":"12066:3:53"},"nativeSrc":"12066:40:53","nodeType":"YulFunctionCall","src":"12066:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"12052:10:53","nodeType":"YulTypedName","src":"12052:10:53","type":""}]},{"body":{"nativeSrc":"12217:22:53","nodeType":"YulBlock","src":"12217:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"12219:16:53","nodeType":"YulIdentifier","src":"12219:16:53"},"nativeSrc":"12219:18:53","nodeType":"YulFunctionCall","src":"12219:18:53"},"nativeSrc":"12219:18:53","nodeType":"YulExpressionStatement","src":"12219:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"12160:10:53","nodeType":"YulIdentifier","src":"12160:10:53"},{"kind":"number","nativeSrc":"12172:18:53","nodeType":"YulLiteral","src":"12172:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12157:2:53","nodeType":"YulIdentifier","src":"12157:2:53"},"nativeSrc":"12157:34:53","nodeType":"YulFunctionCall","src":"12157:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"12196:10:53","nodeType":"YulIdentifier","src":"12196:10:53"},{"name":"memPtr","nativeSrc":"12208:6:53","nodeType":"YulIdentifier","src":"12208:6:53"}],"functionName":{"name":"lt","nativeSrc":"12193:2:53","nodeType":"YulIdentifier","src":"12193:2:53"},"nativeSrc":"12193:22:53","nodeType":"YulFunctionCall","src":"12193:22:53"}],"functionName":{"name":"or","nativeSrc":"12154:2:53","nodeType":"YulIdentifier","src":"12154:2:53"},"nativeSrc":"12154:62:53","nodeType":"YulFunctionCall","src":"12154:62:53"},"nativeSrc":"12151:88:53","nodeType":"YulIf","src":"12151:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12255:2:53","nodeType":"YulLiteral","src":"12255:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"12259:10:53","nodeType":"YulIdentifier","src":"12259:10:53"}],"functionName":{"name":"mstore","nativeSrc":"12248:6:53","nodeType":"YulIdentifier","src":"12248:6:53"},"nativeSrc":"12248:22:53","nodeType":"YulFunctionCall","src":"12248:22:53"},"nativeSrc":"12248:22:53","nodeType":"YulExpressionStatement","src":"12248:22:53"}]},"name":"finalize_allocation","nativeSrc":"11995:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12024:6:53","nodeType":"YulTypedName","src":"12024:6:53","type":""},{"name":"size","nativeSrc":"12032:4:53","nodeType":"YulTypedName","src":"12032:4:53","type":""}],"src":"11995:281:53"},{"body":{"nativeSrc":"12323:88:53","nodeType":"YulBlock","src":"12323:88:53","statements":[{"nativeSrc":"12333:30:53","nodeType":"YulAssignment","src":"12333:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"12343:18:53","nodeType":"YulIdentifier","src":"12343:18:53"},"nativeSrc":"12343:20:53","nodeType":"YulFunctionCall","src":"12343:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"12333:6:53","nodeType":"YulIdentifier","src":"12333:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"12392:6:53","nodeType":"YulIdentifier","src":"12392:6:53"},{"name":"size","nativeSrc":"12400:4:53","nodeType":"YulIdentifier","src":"12400:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"12372:19:53","nodeType":"YulIdentifier","src":"12372:19:53"},"nativeSrc":"12372:33:53","nodeType":"YulFunctionCall","src":"12372:33:53"},"nativeSrc":"12372:33:53","nodeType":"YulExpressionStatement","src":"12372:33:53"}]},"name":"allocate_memory","nativeSrc":"12282:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"12307:4:53","nodeType":"YulTypedName","src":"12307:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"12316:6:53","nodeType":"YulTypedName","src":"12316:6:53","type":""}],"src":"12282:129:53"},{"body":{"nativeSrc":"12506:28:53","nodeType":"YulBlock","src":"12506:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12523:1:53","nodeType":"YulLiteral","src":"12523:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12526:1:53","nodeType":"YulLiteral","src":"12526:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12516:6:53","nodeType":"YulIdentifier","src":"12516:6:53"},"nativeSrc":"12516:12:53","nodeType":"YulFunctionCall","src":"12516:12:53"},"nativeSrc":"12516:12:53","nodeType":"YulExpressionStatement","src":"12516:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"12417:117:53","nodeType":"YulFunctionDefinition","src":"12417:117:53"},{"body":{"nativeSrc":"12602:51:53","nodeType":"YulBlock","src":"12602:51:53","statements":[{"nativeSrc":"12612:35:53","nodeType":"YulAssignment","src":"12612:35:53","value":{"arguments":[{"name":"value","nativeSrc":"12641:5:53","nodeType":"YulIdentifier","src":"12641:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"12623:17:53","nodeType":"YulIdentifier","src":"12623:17:53"},"nativeSrc":"12623:24:53","nodeType":"YulFunctionCall","src":"12623:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"12612:7:53","nodeType":"YulIdentifier","src":"12612:7:53"}]}]},"name":"cleanup_t_contract$_IERC1155_$1190","nativeSrc":"12540:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12584:5:53","nodeType":"YulTypedName","src":"12584:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12594:7:53","nodeType":"YulTypedName","src":"12594:7:53","type":""}],"src":"12540:113:53"},{"body":{"nativeSrc":"12719:96:53","nodeType":"YulBlock","src":"12719:96:53","statements":[{"body":{"nativeSrc":"12793:16:53","nodeType":"YulBlock","src":"12793:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12802:1:53","nodeType":"YulLiteral","src":"12802:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12805:1:53","nodeType":"YulLiteral","src":"12805:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12795:6:53","nodeType":"YulIdentifier","src":"12795:6:53"},"nativeSrc":"12795:12:53","nodeType":"YulFunctionCall","src":"12795:12:53"},"nativeSrc":"12795:12:53","nodeType":"YulExpressionStatement","src":"12795:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12742:5:53","nodeType":"YulIdentifier","src":"12742:5:53"},{"arguments":[{"name":"value","nativeSrc":"12784:5:53","nodeType":"YulIdentifier","src":"12784:5:53"}],"functionName":{"name":"cleanup_t_contract$_IERC1155_$1190","nativeSrc":"12749:34:53","nodeType":"YulIdentifier","src":"12749:34:53"},"nativeSrc":"12749:41:53","nodeType":"YulFunctionCall","src":"12749:41:53"}],"functionName":{"name":"eq","nativeSrc":"12739:2:53","nodeType":"YulIdentifier","src":"12739:2:53"},"nativeSrc":"12739:52:53","nodeType":"YulFunctionCall","src":"12739:52:53"}],"functionName":{"name":"iszero","nativeSrc":"12732:6:53","nodeType":"YulIdentifier","src":"12732:6:53"},"nativeSrc":"12732:60:53","nodeType":"YulFunctionCall","src":"12732:60:53"},"nativeSrc":"12729:80:53","nodeType":"YulIf","src":"12729:80:53"}]},"name":"validator_revert_t_contract$_IERC1155_$1190","nativeSrc":"12659:156:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12712:5:53","nodeType":"YulTypedName","src":"12712:5:53","type":""}],"src":"12659:156:53"},{"body":{"nativeSrc":"12890:104:53","nodeType":"YulBlock","src":"12890:104:53","statements":[{"nativeSrc":"12900:29:53","nodeType":"YulAssignment","src":"12900:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12922:6:53","nodeType":"YulIdentifier","src":"12922:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12909:12:53","nodeType":"YulIdentifier","src":"12909:12:53"},"nativeSrc":"12909:20:53","nodeType":"YulFunctionCall","src":"12909:20:53"},"variableNames":[{"name":"value","nativeSrc":"12900:5:53","nodeType":"YulIdentifier","src":"12900:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12982:5:53","nodeType":"YulIdentifier","src":"12982:5:53"}],"functionName":{"name":"validator_revert_t_contract$_IERC1155_$1190","nativeSrc":"12938:43:53","nodeType":"YulIdentifier","src":"12938:43:53"},"nativeSrc":"12938:50:53","nodeType":"YulFunctionCall","src":"12938:50:53"},"nativeSrc":"12938:50:53","nodeType":"YulExpressionStatement","src":"12938:50:53"}]},"name":"abi_decode_t_contract$_IERC1155_$1190","nativeSrc":"12821:173:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12868:6:53","nodeType":"YulTypedName","src":"12868:6:53","type":""},{"name":"end","nativeSrc":"12876:3:53","nodeType":"YulTypedName","src":"12876:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12884:5:53","nodeType":"YulTypedName","src":"12884:5:53","type":""}],"src":"12821:173:53"},{"body":{"nativeSrc":"13057:56:53","nodeType":"YulBlock","src":"13057:56:53","statements":[{"body":{"nativeSrc":"13091:16:53","nodeType":"YulBlock","src":"13091:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13100:1:53","nodeType":"YulLiteral","src":"13100:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13103:1:53","nodeType":"YulLiteral","src":"13103:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13093:6:53","nodeType":"YulIdentifier","src":"13093:6:53"},"nativeSrc":"13093:12:53","nodeType":"YulFunctionCall","src":"13093:12:53"},"nativeSrc":"13093:12:53","nodeType":"YulExpressionStatement","src":"13093:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13080:5:53","nodeType":"YulIdentifier","src":"13080:5:53"},{"kind":"number","nativeSrc":"13087:1:53","nodeType":"YulLiteral","src":"13087:1:53","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"13077:2:53","nodeType":"YulIdentifier","src":"13077:2:53"},"nativeSrc":"13077:12:53","nodeType":"YulFunctionCall","src":"13077:12:53"}],"functionName":{"name":"iszero","nativeSrc":"13070:6:53","nodeType":"YulIdentifier","src":"13070:6:53"},"nativeSrc":"13070:20:53","nodeType":"YulFunctionCall","src":"13070:20:53"},"nativeSrc":"13067:40:53","nodeType":"YulIf","src":"13067:40:53"}]},"name":"validator_revert_t_enum$_Strategy_$16126","nativeSrc":"13000:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13050:5:53","nodeType":"YulTypedName","src":"13050:5:53","type":""}],"src":"13000:113:53"},{"body":{"nativeSrc":"13185:101:53","nodeType":"YulBlock","src":"13185:101:53","statements":[{"nativeSrc":"13195:29:53","nodeType":"YulAssignment","src":"13195:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"13217:6:53","nodeType":"YulIdentifier","src":"13217:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"13204:12:53","nodeType":"YulIdentifier","src":"13204:12:53"},"nativeSrc":"13204:20:53","nodeType":"YulFunctionCall","src":"13204:20:53"},"variableNames":[{"name":"value","nativeSrc":"13195:5:53","nodeType":"YulIdentifier","src":"13195:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13274:5:53","nodeType":"YulIdentifier","src":"13274:5:53"}],"functionName":{"name":"validator_revert_t_enum$_Strategy_$16126","nativeSrc":"13233:40:53","nodeType":"YulIdentifier","src":"13233:40:53"},"nativeSrc":"13233:47:53","nodeType":"YulFunctionCall","src":"13233:47:53"},"nativeSrc":"13233:47:53","nodeType":"YulExpressionStatement","src":"13233:47:53"}]},"name":"abi_decode_t_enum$_Strategy_$16126","nativeSrc":"13119:167:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13163:6:53","nodeType":"YulTypedName","src":"13163:6:53","type":""},{"name":"end","nativeSrc":"13171:3:53","nodeType":"YulTypedName","src":"13171:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13179:5:53","nodeType":"YulTypedName","src":"13179:5:53","type":""}],"src":"13119:167:53"},{"body":{"nativeSrc":"13381:28:53","nodeType":"YulBlock","src":"13381:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13398:1:53","nodeType":"YulLiteral","src":"13398:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13401:1:53","nodeType":"YulLiteral","src":"13401:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13391:6:53","nodeType":"YulIdentifier","src":"13391:6:53"},"nativeSrc":"13391:12:53","nodeType":"YulFunctionCall","src":"13391:12:53"},"nativeSrc":"13391:12:53","nodeType":"YulExpressionStatement","src":"13391:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"13292:117:53","nodeType":"YulFunctionDefinition","src":"13292:117:53"},{"body":{"nativeSrc":"13481:241:53","nodeType":"YulBlock","src":"13481:241:53","statements":[{"body":{"nativeSrc":"13586:22:53","nodeType":"YulBlock","src":"13586:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"13588:16:53","nodeType":"YulIdentifier","src":"13588:16:53"},"nativeSrc":"13588:18:53","nodeType":"YulFunctionCall","src":"13588:18:53"},"nativeSrc":"13588:18:53","nodeType":"YulExpressionStatement","src":"13588:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13558:6:53","nodeType":"YulIdentifier","src":"13558:6:53"},{"kind":"number","nativeSrc":"13566:18:53","nodeType":"YulLiteral","src":"13566:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13555:2:53","nodeType":"YulIdentifier","src":"13555:2:53"},"nativeSrc":"13555:30:53","nodeType":"YulFunctionCall","src":"13555:30:53"},"nativeSrc":"13552:56:53","nodeType":"YulIf","src":"13552:56:53"},{"nativeSrc":"13618:37:53","nodeType":"YulAssignment","src":"13618:37:53","value":{"arguments":[{"name":"length","nativeSrc":"13648:6:53","nodeType":"YulIdentifier","src":"13648:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13626:21:53","nodeType":"YulIdentifier","src":"13626:21:53"},"nativeSrc":"13626:29:53","nodeType":"YulFunctionCall","src":"13626:29:53"},"variableNames":[{"name":"size","nativeSrc":"13618:4:53","nodeType":"YulIdentifier","src":"13618:4:53"}]},{"nativeSrc":"13692:23:53","nodeType":"YulAssignment","src":"13692:23:53","value":{"arguments":[{"name":"size","nativeSrc":"13704:4:53","nodeType":"YulIdentifier","src":"13704:4:53"},{"kind":"number","nativeSrc":"13710:4:53","nodeType":"YulLiteral","src":"13710:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13700:3:53","nodeType":"YulIdentifier","src":"13700:3:53"},"nativeSrc":"13700:15:53","nodeType":"YulFunctionCall","src":"13700:15:53"},"variableNames":[{"name":"size","nativeSrc":"13692:4:53","nodeType":"YulIdentifier","src":"13692:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"13415:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"13465:6:53","nodeType":"YulTypedName","src":"13465:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"13476:4:53","nodeType":"YulTypedName","src":"13476:4:53","type":""}],"src":"13415:307:53"},{"body":{"nativeSrc":"13792:84:53","nodeType":"YulBlock","src":"13792:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13816:3:53","nodeType":"YulIdentifier","src":"13816:3:53"},{"name":"src","nativeSrc":"13821:3:53","nodeType":"YulIdentifier","src":"13821:3:53"},{"name":"length","nativeSrc":"13826:6:53","nodeType":"YulIdentifier","src":"13826:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"13803:12:53","nodeType":"YulIdentifier","src":"13803:12:53"},"nativeSrc":"13803:30:53","nodeType":"YulFunctionCall","src":"13803:30:53"},"nativeSrc":"13803:30:53","nodeType":"YulExpressionStatement","src":"13803:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13853:3:53","nodeType":"YulIdentifier","src":"13853:3:53"},{"name":"length","nativeSrc":"13858:6:53","nodeType":"YulIdentifier","src":"13858:6:53"}],"functionName":{"name":"add","nativeSrc":"13849:3:53","nodeType":"YulIdentifier","src":"13849:3:53"},"nativeSrc":"13849:16:53","nodeType":"YulFunctionCall","src":"13849:16:53"},{"kind":"number","nativeSrc":"13867:1:53","nodeType":"YulLiteral","src":"13867:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13842:6:53","nodeType":"YulIdentifier","src":"13842:6:53"},"nativeSrc":"13842:27:53","nodeType":"YulFunctionCall","src":"13842:27:53"},"nativeSrc":"13842:27:53","nodeType":"YulExpressionStatement","src":"13842:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13728:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13774:3:53","nodeType":"YulTypedName","src":"13774:3:53","type":""},{"name":"dst","nativeSrc":"13779:3:53","nodeType":"YulTypedName","src":"13779:3:53","type":""},{"name":"length","nativeSrc":"13784:6:53","nodeType":"YulTypedName","src":"13784:6:53","type":""}],"src":"13728:148:53"},{"body":{"nativeSrc":"13965:340:53","nodeType":"YulBlock","src":"13965:340:53","statements":[{"nativeSrc":"13975:74:53","nodeType":"YulAssignment","src":"13975:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14041:6:53","nodeType":"YulIdentifier","src":"14041:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14000:40:53","nodeType":"YulIdentifier","src":"14000:40:53"},"nativeSrc":"14000:48:53","nodeType":"YulFunctionCall","src":"14000:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"13984:15:53","nodeType":"YulIdentifier","src":"13984:15:53"},"nativeSrc":"13984:65:53","nodeType":"YulFunctionCall","src":"13984:65:53"},"variableNames":[{"name":"array","nativeSrc":"13975:5:53","nodeType":"YulIdentifier","src":"13975:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"14065:5:53","nodeType":"YulIdentifier","src":"14065:5:53"},{"name":"length","nativeSrc":"14072:6:53","nodeType":"YulIdentifier","src":"14072:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14058:6:53","nodeType":"YulIdentifier","src":"14058:6:53"},"nativeSrc":"14058:21:53","nodeType":"YulFunctionCall","src":"14058:21:53"},"nativeSrc":"14058:21:53","nodeType":"YulExpressionStatement","src":"14058:21:53"},{"nativeSrc":"14088:27:53","nodeType":"YulVariableDeclaration","src":"14088:27:53","value":{"arguments":[{"name":"array","nativeSrc":"14103:5:53","nodeType":"YulIdentifier","src":"14103:5:53"},{"kind":"number","nativeSrc":"14110:4:53","nodeType":"YulLiteral","src":"14110:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14099:3:53","nodeType":"YulIdentifier","src":"14099:3:53"},"nativeSrc":"14099:16:53","nodeType":"YulFunctionCall","src":"14099:16:53"},"variables":[{"name":"dst","nativeSrc":"14092:3:53","nodeType":"YulTypedName","src":"14092:3:53","type":""}]},{"body":{"nativeSrc":"14153:83:53","nodeType":"YulBlock","src":"14153:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14155:77:53","nodeType":"YulIdentifier","src":"14155:77:53"},"nativeSrc":"14155:79:53","nodeType":"YulFunctionCall","src":"14155:79:53"},"nativeSrc":"14155:79:53","nodeType":"YulExpressionStatement","src":"14155:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"14134:3:53","nodeType":"YulIdentifier","src":"14134:3:53"},{"name":"length","nativeSrc":"14139:6:53","nodeType":"YulIdentifier","src":"14139:6:53"}],"functionName":{"name":"add","nativeSrc":"14130:3:53","nodeType":"YulIdentifier","src":"14130:3:53"},"nativeSrc":"14130:16:53","nodeType":"YulFunctionCall","src":"14130:16:53"},{"name":"end","nativeSrc":"14148:3:53","nodeType":"YulIdentifier","src":"14148:3:53"}],"functionName":{"name":"gt","nativeSrc":"14127:2:53","nodeType":"YulIdentifier","src":"14127:2:53"},"nativeSrc":"14127:25:53","nodeType":"YulFunctionCall","src":"14127:25:53"},"nativeSrc":"14124:112:53","nodeType":"YulIf","src":"14124:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"14282:3:53","nodeType":"YulIdentifier","src":"14282:3:53"},{"name":"dst","nativeSrc":"14287:3:53","nodeType":"YulIdentifier","src":"14287:3:53"},{"name":"length","nativeSrc":"14292:6:53","nodeType":"YulIdentifier","src":"14292:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"14245:36:53","nodeType":"YulIdentifier","src":"14245:36:53"},"nativeSrc":"14245:54:53","nodeType":"YulFunctionCall","src":"14245:54:53"},"nativeSrc":"14245:54:53","nodeType":"YulExpressionStatement","src":"14245:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"13882:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13938:3:53","nodeType":"YulTypedName","src":"13938:3:53","type":""},{"name":"length","nativeSrc":"13943:6:53","nodeType":"YulTypedName","src":"13943:6:53","type":""},{"name":"end","nativeSrc":"13951:3:53","nodeType":"YulTypedName","src":"13951:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"13959:5:53","nodeType":"YulTypedName","src":"13959:5:53","type":""}],"src":"13882:423:53"},{"body":{"nativeSrc":"14385:277:53","nodeType":"YulBlock","src":"14385:277:53","statements":[{"body":{"nativeSrc":"14434:83:53","nodeType":"YulBlock","src":"14434:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"14436:77:53","nodeType":"YulIdentifier","src":"14436:77:53"},"nativeSrc":"14436:79:53","nodeType":"YulFunctionCall","src":"14436:79:53"},"nativeSrc":"14436:79:53","nodeType":"YulExpressionStatement","src":"14436:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14413:6:53","nodeType":"YulIdentifier","src":"14413:6:53"},{"kind":"number","nativeSrc":"14421:4:53","nodeType":"YulLiteral","src":"14421:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"14409:3:53","nodeType":"YulIdentifier","src":"14409:3:53"},"nativeSrc":"14409:17:53","nodeType":"YulFunctionCall","src":"14409:17:53"},{"name":"end","nativeSrc":"14428:3:53","nodeType":"YulIdentifier","src":"14428:3:53"}],"functionName":{"name":"slt","nativeSrc":"14405:3:53","nodeType":"YulIdentifier","src":"14405:3:53"},"nativeSrc":"14405:27:53","nodeType":"YulFunctionCall","src":"14405:27:53"}],"functionName":{"name":"iszero","nativeSrc":"14398:6:53","nodeType":"YulIdentifier","src":"14398:6:53"},"nativeSrc":"14398:35:53","nodeType":"YulFunctionCall","src":"14398:35:53"},"nativeSrc":"14395:122:53","nodeType":"YulIf","src":"14395:122:53"},{"nativeSrc":"14526:34:53","nodeType":"YulVariableDeclaration","src":"14526:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"14553:6:53","nodeType":"YulIdentifier","src":"14553:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"14540:12:53","nodeType":"YulIdentifier","src":"14540:12:53"},"nativeSrc":"14540:20:53","nodeType":"YulFunctionCall","src":"14540:20:53"},"variables":[{"name":"length","nativeSrc":"14530:6:53","nodeType":"YulTypedName","src":"14530:6:53","type":""}]},{"nativeSrc":"14569:87:53","nodeType":"YulAssignment","src":"14569:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14629:6:53","nodeType":"YulIdentifier","src":"14629:6:53"},{"kind":"number","nativeSrc":"14637:4:53","nodeType":"YulLiteral","src":"14637:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14625:3:53","nodeType":"YulIdentifier","src":"14625:3:53"},"nativeSrc":"14625:17:53","nodeType":"YulFunctionCall","src":"14625:17:53"},{"name":"length","nativeSrc":"14644:6:53","nodeType":"YulIdentifier","src":"14644:6:53"},{"name":"end","nativeSrc":"14652:3:53","nodeType":"YulIdentifier","src":"14652:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"14578:46:53","nodeType":"YulIdentifier","src":"14578:46:53"},"nativeSrc":"14578:78:53","nodeType":"YulFunctionCall","src":"14578:78:53"},"variableNames":[{"name":"array","nativeSrc":"14569:5:53","nodeType":"YulIdentifier","src":"14569:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"14324:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14363:6:53","nodeType":"YulTypedName","src":"14363:6:53","type":""},{"name":"end","nativeSrc":"14371:3:53","nodeType":"YulTypedName","src":"14371:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"14379:5:53","nodeType":"YulTypedName","src":"14379:5:53","type":""}],"src":"14324:338:53"},{"body":{"nativeSrc":"14796:1192:53","nodeType":"YulBlock","src":"14796:1192:53","statements":[{"body":{"nativeSrc":"14840:83:53","nodeType":"YulBlock","src":"14840:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"14842:77:53","nodeType":"YulIdentifier","src":"14842:77:53"},"nativeSrc":"14842:79:53","nodeType":"YulFunctionCall","src":"14842:79:53"},"nativeSrc":"14842:79:53","nodeType":"YulExpressionStatement","src":"14842:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"14817:3:53","nodeType":"YulIdentifier","src":"14817:3:53"},{"name":"headStart","nativeSrc":"14822:9:53","nodeType":"YulIdentifier","src":"14822:9:53"}],"functionName":{"name":"sub","nativeSrc":"14813:3:53","nodeType":"YulIdentifier","src":"14813:3:53"},"nativeSrc":"14813:19:53","nodeType":"YulFunctionCall","src":"14813:19:53"},{"kind":"number","nativeSrc":"14834:4:53","nodeType":"YulLiteral","src":"14834:4:53","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"14809:3:53","nodeType":"YulIdentifier","src":"14809:3:53"},"nativeSrc":"14809:30:53","nodeType":"YulFunctionCall","src":"14809:30:53"},"nativeSrc":"14806:117:53","nodeType":"YulIf","src":"14806:117:53"},{"nativeSrc":"14932:30:53","nodeType":"YulAssignment","src":"14932:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"14957:4:53","nodeType":"YulLiteral","src":"14957:4:53","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"14941:15:53","nodeType":"YulIdentifier","src":"14941:15:53"},"nativeSrc":"14941:21:53","nodeType":"YulFunctionCall","src":"14941:21:53"},"variableNames":[{"name":"value","nativeSrc":"14932:5:53","nodeType":"YulIdentifier","src":"14932:5:53"}]},{"nativeSrc":"14972:168:53","nodeType":"YulBlock","src":"14972:168:53","statements":[{"nativeSrc":"15008:15:53","nodeType":"YulVariableDeclaration","src":"15008:15:53","value":{"kind":"number","nativeSrc":"15022:1:53","nodeType":"YulLiteral","src":"15022:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15012:6:53","nodeType":"YulTypedName","src":"15012:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15048:5:53","nodeType":"YulIdentifier","src":"15048:5:53"},{"kind":"number","nativeSrc":"15055:4:53","nodeType":"YulLiteral","src":"15055:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15044:3:53","nodeType":"YulIdentifier","src":"15044:3:53"},"nativeSrc":"15044:16:53","nodeType":"YulFunctionCall","src":"15044:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15104:9:53","nodeType":"YulIdentifier","src":"15104:9:53"},{"name":"offset","nativeSrc":"15115:6:53","nodeType":"YulIdentifier","src":"15115:6:53"}],"functionName":{"name":"add","nativeSrc":"15100:3:53","nodeType":"YulIdentifier","src":"15100:3:53"},"nativeSrc":"15100:22:53","nodeType":"YulFunctionCall","src":"15100:22:53"},{"name":"end","nativeSrc":"15124:3:53","nodeType":"YulIdentifier","src":"15124:3:53"}],"functionName":{"name":"abi_decode_t_contract$_IERC1155_$1190","nativeSrc":"15062:37:53","nodeType":"YulIdentifier","src":"15062:37:53"},"nativeSrc":"15062:66:53","nodeType":"YulFunctionCall","src":"15062:66:53"}],"functionName":{"name":"mstore","nativeSrc":"15037:6:53","nodeType":"YulIdentifier","src":"15037:6:53"},"nativeSrc":"15037:92:53","nodeType":"YulFunctionCall","src":"15037:92:53"},"nativeSrc":"15037:92:53","nodeType":"YulExpressionStatement","src":"15037:92:53"}]},{"nativeSrc":"15150:169:53","nodeType":"YulBlock","src":"15150:169:53","statements":[{"nativeSrc":"15189:16:53","nodeType":"YulVariableDeclaration","src":"15189:16:53","value":{"kind":"number","nativeSrc":"15203:2:53","nodeType":"YulLiteral","src":"15203:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15193:6:53","nodeType":"YulTypedName","src":"15193:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15230:5:53","nodeType":"YulIdentifier","src":"15230:5:53"},{"kind":"number","nativeSrc":"15237:4:53","nodeType":"YulLiteral","src":"15237:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15226:3:53","nodeType":"YulIdentifier","src":"15226:3:53"},"nativeSrc":"15226:16:53","nodeType":"YulFunctionCall","src":"15226:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15283:9:53","nodeType":"YulIdentifier","src":"15283:9:53"},{"name":"offset","nativeSrc":"15294:6:53","nodeType":"YulIdentifier","src":"15294:6:53"}],"functionName":{"name":"add","nativeSrc":"15279:3:53","nodeType":"YulIdentifier","src":"15279:3:53"},"nativeSrc":"15279:22:53","nodeType":"YulFunctionCall","src":"15279:22:53"},{"name":"end","nativeSrc":"15303:3:53","nodeType":"YulIdentifier","src":"15303:3:53"}],"functionName":{"name":"abi_decode_t_enum$_Strategy_$16126","nativeSrc":"15244:34:53","nodeType":"YulIdentifier","src":"15244:34:53"},"nativeSrc":"15244:63:53","nodeType":"YulFunctionCall","src":"15244:63:53"}],"functionName":{"name":"mstore","nativeSrc":"15219:6:53","nodeType":"YulIdentifier","src":"15219:6:53"},"nativeSrc":"15219:89:53","nodeType":"YulFunctionCall","src":"15219:89:53"},"nativeSrc":"15219:89:53","nodeType":"YulExpressionStatement","src":"15219:89:53"}]},{"nativeSrc":"15329:154:53","nodeType":"YulBlock","src":"15329:154:53","statements":[{"nativeSrc":"15367:16:53","nodeType":"YulVariableDeclaration","src":"15367:16:53","value":{"kind":"number","nativeSrc":"15381:2:53","nodeType":"YulLiteral","src":"15381:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"15371:6:53","nodeType":"YulTypedName","src":"15371:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15408:5:53","nodeType":"YulIdentifier","src":"15408:5:53"},{"kind":"number","nativeSrc":"15415:4:53","nodeType":"YulLiteral","src":"15415:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15404:3:53","nodeType":"YulIdentifier","src":"15404:3:53"},"nativeSrc":"15404:16:53","nodeType":"YulFunctionCall","src":"15404:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15447:9:53","nodeType":"YulIdentifier","src":"15447:9:53"},{"name":"offset","nativeSrc":"15458:6:53","nodeType":"YulIdentifier","src":"15458:6:53"}],"functionName":{"name":"add","nativeSrc":"15443:3:53","nodeType":"YulIdentifier","src":"15443:3:53"},"nativeSrc":"15443:22:53","nodeType":"YulFunctionCall","src":"15443:22:53"},{"name":"end","nativeSrc":"15467:3:53","nodeType":"YulIdentifier","src":"15467:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"15422:20:53","nodeType":"YulIdentifier","src":"15422:20:53"},"nativeSrc":"15422:49:53","nodeType":"YulFunctionCall","src":"15422:49:53"}],"functionName":{"name":"mstore","nativeSrc":"15397:6:53","nodeType":"YulIdentifier","src":"15397:6:53"},"nativeSrc":"15397:75:53","nodeType":"YulFunctionCall","src":"15397:75:53"},"nativeSrc":"15397:75:53","nodeType":"YulExpressionStatement","src":"15397:75:53"}]},{"nativeSrc":"15493:152:53","nodeType":"YulBlock","src":"15493:152:53","statements":[{"nativeSrc":"15529:16:53","nodeType":"YulVariableDeclaration","src":"15529:16:53","value":{"kind":"number","nativeSrc":"15543:2:53","nodeType":"YulLiteral","src":"15543:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"15533:6:53","nodeType":"YulTypedName","src":"15533:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15570:5:53","nodeType":"YulIdentifier","src":"15570:5:53"},{"kind":"number","nativeSrc":"15577:4:53","nodeType":"YulLiteral","src":"15577:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15566:3:53","nodeType":"YulIdentifier","src":"15566:3:53"},"nativeSrc":"15566:16:53","nodeType":"YulFunctionCall","src":"15566:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15609:9:53","nodeType":"YulIdentifier","src":"15609:9:53"},{"name":"offset","nativeSrc":"15620:6:53","nodeType":"YulIdentifier","src":"15620:6:53"}],"functionName":{"name":"add","nativeSrc":"15605:3:53","nodeType":"YulIdentifier","src":"15605:3:53"},"nativeSrc":"15605:22:53","nodeType":"YulFunctionCall","src":"15605:22:53"},{"name":"end","nativeSrc":"15629:3:53","nodeType":"YulIdentifier","src":"15629:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"15584:20:53","nodeType":"YulIdentifier","src":"15584:20:53"},"nativeSrc":"15584:49:53","nodeType":"YulFunctionCall","src":"15584:49:53"}],"functionName":{"name":"mstore","nativeSrc":"15559:6:53","nodeType":"YulIdentifier","src":"15559:6:53"},"nativeSrc":"15559:75:53","nodeType":"YulFunctionCall","src":"15559:75:53"},"nativeSrc":"15559:75:53","nodeType":"YulExpressionStatement","src":"15559:75:53"}]},{"nativeSrc":"15655:326:53","nodeType":"YulBlock","src":"15655:326:53","statements":[{"nativeSrc":"15695:47:53","nodeType":"YulVariableDeclaration","src":"15695:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15726:9:53","nodeType":"YulIdentifier","src":"15726:9:53"},{"kind":"number","nativeSrc":"15737:3:53","nodeType":"YulLiteral","src":"15737:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15722:3:53","nodeType":"YulIdentifier","src":"15722:3:53"},"nativeSrc":"15722:19:53","nodeType":"YulFunctionCall","src":"15722:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"15709:12:53","nodeType":"YulIdentifier","src":"15709:12:53"},"nativeSrc":"15709:33:53","nodeType":"YulFunctionCall","src":"15709:33:53"},"variables":[{"name":"offset","nativeSrc":"15699:6:53","nodeType":"YulTypedName","src":"15699:6:53","type":""}]},{"body":{"nativeSrc":"15789:83:53","nodeType":"YulBlock","src":"15789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"15791:77:53","nodeType":"YulIdentifier","src":"15791:77:53"},"nativeSrc":"15791:79:53","nodeType":"YulFunctionCall","src":"15791:79:53"},"nativeSrc":"15791:79:53","nodeType":"YulExpressionStatement","src":"15791:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15761:6:53","nodeType":"YulIdentifier","src":"15761:6:53"},{"kind":"number","nativeSrc":"15769:18:53","nodeType":"YulLiteral","src":"15769:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15758:2:53","nodeType":"YulIdentifier","src":"15758:2:53"},"nativeSrc":"15758:30:53","nodeType":"YulFunctionCall","src":"15758:30:53"},"nativeSrc":"15755:117:53","nodeType":"YulIf","src":"15755:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15897:5:53","nodeType":"YulIdentifier","src":"15897:5:53"},{"kind":"number","nativeSrc":"15904:4:53","nodeType":"YulLiteral","src":"15904:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15893:3:53","nodeType":"YulIdentifier","src":"15893:3:53"},"nativeSrc":"15893:16:53","nodeType":"YulFunctionCall","src":"15893:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15945:9:53","nodeType":"YulIdentifier","src":"15945:9:53"},{"name":"offset","nativeSrc":"15956:6:53","nodeType":"YulIdentifier","src":"15956:6:53"}],"functionName":{"name":"add","nativeSrc":"15941:3:53","nodeType":"YulIdentifier","src":"15941:3:53"},"nativeSrc":"15941:22:53","nodeType":"YulFunctionCall","src":"15941:22:53"},{"name":"end","nativeSrc":"15965:3:53","nodeType":"YulIdentifier","src":"15965:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15911:29:53","nodeType":"YulIdentifier","src":"15911:29:53"},"nativeSrc":"15911:58:53","nodeType":"YulFunctionCall","src":"15911:58:53"}],"functionName":{"name":"mstore","nativeSrc":"15886:6:53","nodeType":"YulIdentifier","src":"15886:6:53"},"nativeSrc":"15886:84:53","nodeType":"YulFunctionCall","src":"15886:84:53"},"nativeSrc":"15886:84:53","nodeType":"YulExpressionStatement","src":"15886:84:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$16140_memory_ptr","nativeSrc":"14711:1277:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14771:9:53","nodeType":"YulTypedName","src":"14771:9:53","type":""},{"name":"end","nativeSrc":"14782:3:53","nodeType":"YulTypedName","src":"14782:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14790:5:53","nodeType":"YulTypedName","src":"14790:5:53","type":""}],"src":"14711:1277:53"},{"body":{"nativeSrc":"16090:453:53","nodeType":"YulBlock","src":"16090:453:53","statements":[{"body":{"nativeSrc":"16136:83:53","nodeType":"YulBlock","src":"16136:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16138:77:53","nodeType":"YulIdentifier","src":"16138:77:53"},"nativeSrc":"16138:79:53","nodeType":"YulFunctionCall","src":"16138:79:53"},"nativeSrc":"16138:79:53","nodeType":"YulExpressionStatement","src":"16138:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16111:7:53","nodeType":"YulIdentifier","src":"16111:7:53"},{"name":"headStart","nativeSrc":"16120:9:53","nodeType":"YulIdentifier","src":"16120:9:53"}],"functionName":{"name":"sub","nativeSrc":"16107:3:53","nodeType":"YulIdentifier","src":"16107:3:53"},"nativeSrc":"16107:23:53","nodeType":"YulFunctionCall","src":"16107:23:53"},{"kind":"number","nativeSrc":"16132:2:53","nodeType":"YulLiteral","src":"16132:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16103:3:53","nodeType":"YulIdentifier","src":"16103:3:53"},"nativeSrc":"16103:32:53","nodeType":"YulFunctionCall","src":"16103:32:53"},"nativeSrc":"16100:119:53","nodeType":"YulIf","src":"16100:119:53"},{"nativeSrc":"16229:307:53","nodeType":"YulBlock","src":"16229:307:53","statements":[{"nativeSrc":"16244:45:53","nodeType":"YulVariableDeclaration","src":"16244:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16275:9:53","nodeType":"YulIdentifier","src":"16275:9:53"},{"kind":"number","nativeSrc":"16286:1:53","nodeType":"YulLiteral","src":"16286:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16271:3:53","nodeType":"YulIdentifier","src":"16271:3:53"},"nativeSrc":"16271:17:53","nodeType":"YulFunctionCall","src":"16271:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"16258:12:53","nodeType":"YulIdentifier","src":"16258:12:53"},"nativeSrc":"16258:31:53","nodeType":"YulFunctionCall","src":"16258:31:53"},"variables":[{"name":"offset","nativeSrc":"16248:6:53","nodeType":"YulTypedName","src":"16248:6:53","type":""}]},{"body":{"nativeSrc":"16336:83:53","nodeType":"YulBlock","src":"16336:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"16338:77:53","nodeType":"YulIdentifier","src":"16338:77:53"},"nativeSrc":"16338:79:53","nodeType":"YulFunctionCall","src":"16338:79:53"},"nativeSrc":"16338:79:53","nodeType":"YulExpressionStatement","src":"16338:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16308:6:53","nodeType":"YulIdentifier","src":"16308:6:53"},{"kind":"number","nativeSrc":"16316:18:53","nodeType":"YulLiteral","src":"16316:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16305:2:53","nodeType":"YulIdentifier","src":"16305:2:53"},"nativeSrc":"16305:30:53","nodeType":"YulFunctionCall","src":"16305:30:53"},"nativeSrc":"16302:117:53","nodeType":"YulIf","src":"16302:117:53"},{"nativeSrc":"16433:93:53","nodeType":"YulAssignment","src":"16433:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16498:9:53","nodeType":"YulIdentifier","src":"16498:9:53"},{"name":"offset","nativeSrc":"16509:6:53","nodeType":"YulIdentifier","src":"16509:6:53"}],"functionName":{"name":"add","nativeSrc":"16494:3:53","nodeType":"YulIdentifier","src":"16494:3:53"},"nativeSrc":"16494:22:53","nodeType":"YulFunctionCall","src":"16494:22:53"},{"name":"dataEnd","nativeSrc":"16518:7:53","nodeType":"YulIdentifier","src":"16518:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$16140_memory_ptr","nativeSrc":"16443:50:53","nodeType":"YulIdentifier","src":"16443:50:53"},"nativeSrc":"16443:83:53","nodeType":"YulFunctionCall","src":"16443:83:53"},"variableNames":[{"name":"value0","nativeSrc":"16433:6:53","nodeType":"YulIdentifier","src":"16433:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$16140_memory_ptr","nativeSrc":"15994:549:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16060:9:53","nodeType":"YulTypedName","src":"16060:9:53","type":""},{"name":"dataEnd","nativeSrc":"16071:7:53","nodeType":"YulTypedName","src":"16071:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16083:6:53","nodeType":"YulTypedName","src":"16083:6:53","type":""}],"src":"15994:549:53"},{"body":{"nativeSrc":"16675:206:53","nodeType":"YulBlock","src":"16675:206:53","statements":[{"nativeSrc":"16685:26:53","nodeType":"YulAssignment","src":"16685:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16697:9:53","nodeType":"YulIdentifier","src":"16697:9:53"},{"kind":"number","nativeSrc":"16708:2:53","nodeType":"YulLiteral","src":"16708:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16693:3:53","nodeType":"YulIdentifier","src":"16693:3:53"},"nativeSrc":"16693:18:53","nodeType":"YulFunctionCall","src":"16693:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16685:4:53","nodeType":"YulIdentifier","src":"16685:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16765:6:53","nodeType":"YulIdentifier","src":"16765:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"16778:9:53","nodeType":"YulIdentifier","src":"16778:9:53"},{"kind":"number","nativeSrc":"16789:1:53","nodeType":"YulLiteral","src":"16789:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16774:3:53","nodeType":"YulIdentifier","src":"16774:3:53"},"nativeSrc":"16774:17:53","nodeType":"YulFunctionCall","src":"16774:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"16721:43:53","nodeType":"YulIdentifier","src":"16721:43:53"},"nativeSrc":"16721:71:53","nodeType":"YulFunctionCall","src":"16721:71:53"},"nativeSrc":"16721:71:53","nodeType":"YulExpressionStatement","src":"16721:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"16846:6:53","nodeType":"YulIdentifier","src":"16846:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"16859:9:53","nodeType":"YulIdentifier","src":"16859:9:53"},{"kind":"number","nativeSrc":"16870:2:53","nodeType":"YulLiteral","src":"16870:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16855:3:53","nodeType":"YulIdentifier","src":"16855:3:53"},"nativeSrc":"16855:18:53","nodeType":"YulFunctionCall","src":"16855:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"16802:43:53","nodeType":"YulIdentifier","src":"16802:43:53"},"nativeSrc":"16802:72:53","nodeType":"YulFunctionCall","src":"16802:72:53"},"nativeSrc":"16802:72:53","nodeType":"YulExpressionStatement","src":"16802:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"16549:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16639:9:53","nodeType":"YulTypedName","src":"16639:9:53","type":""},{"name":"value1","nativeSrc":"16651:6:53","nodeType":"YulTypedName","src":"16651:6:53","type":""},{"name":"value0","nativeSrc":"16659:6:53","nodeType":"YulTypedName","src":"16659:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16670:4:53","nodeType":"YulTypedName","src":"16670:4:53","type":""}],"src":"16549:332:53"},{"body":{"nativeSrc":"16950:80:53","nodeType":"YulBlock","src":"16950:80:53","statements":[{"nativeSrc":"16960:22:53","nodeType":"YulAssignment","src":"16960:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"16975:6:53","nodeType":"YulIdentifier","src":"16975:6:53"}],"functionName":{"name":"mload","nativeSrc":"16969:5:53","nodeType":"YulIdentifier","src":"16969:5:53"},"nativeSrc":"16969:13:53","nodeType":"YulFunctionCall","src":"16969:13:53"},"variableNames":[{"name":"value","nativeSrc":"16960:5:53","nodeType":"YulIdentifier","src":"16960:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17018:5:53","nodeType":"YulIdentifier","src":"17018:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"16991:26:53","nodeType":"YulIdentifier","src":"16991:26:53"},"nativeSrc":"16991:33:53","nodeType":"YulFunctionCall","src":"16991:33:53"},"nativeSrc":"16991:33:53","nodeType":"YulExpressionStatement","src":"16991:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"16887:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"16928:6:53","nodeType":"YulTypedName","src":"16928:6:53","type":""},{"name":"end","nativeSrc":"16936:3:53","nodeType":"YulTypedName","src":"16936:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16944:5:53","nodeType":"YulTypedName","src":"16944:5:53","type":""}],"src":"16887:143:53"},{"body":{"nativeSrc":"17113:274:53","nodeType":"YulBlock","src":"17113:274:53","statements":[{"body":{"nativeSrc":"17159:83:53","nodeType":"YulBlock","src":"17159:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17161:77:53","nodeType":"YulIdentifier","src":"17161:77:53"},"nativeSrc":"17161:79:53","nodeType":"YulFunctionCall","src":"17161:79:53"},"nativeSrc":"17161:79:53","nodeType":"YulExpressionStatement","src":"17161:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17134:7:53","nodeType":"YulIdentifier","src":"17134:7:53"},{"name":"headStart","nativeSrc":"17143:9:53","nodeType":"YulIdentifier","src":"17143:9:53"}],"functionName":{"name":"sub","nativeSrc":"17130:3:53","nodeType":"YulIdentifier","src":"17130:3:53"},"nativeSrc":"17130:23:53","nodeType":"YulFunctionCall","src":"17130:23:53"},{"kind":"number","nativeSrc":"17155:2:53","nodeType":"YulLiteral","src":"17155:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17126:3:53","nodeType":"YulIdentifier","src":"17126:3:53"},"nativeSrc":"17126:32:53","nodeType":"YulFunctionCall","src":"17126:32:53"},"nativeSrc":"17123:119:53","nodeType":"YulIf","src":"17123:119:53"},{"nativeSrc":"17252:128:53","nodeType":"YulBlock","src":"17252:128:53","statements":[{"nativeSrc":"17267:15:53","nodeType":"YulVariableDeclaration","src":"17267:15:53","value":{"kind":"number","nativeSrc":"17281:1:53","nodeType":"YulLiteral","src":"17281:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17271:6:53","nodeType":"YulTypedName","src":"17271:6:53","type":""}]},{"nativeSrc":"17296:74:53","nodeType":"YulAssignment","src":"17296:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17342:9:53","nodeType":"YulIdentifier","src":"17342:9:53"},{"name":"offset","nativeSrc":"17353:6:53","nodeType":"YulIdentifier","src":"17353:6:53"}],"functionName":{"name":"add","nativeSrc":"17338:3:53","nodeType":"YulIdentifier","src":"17338:3:53"},"nativeSrc":"17338:22:53","nodeType":"YulFunctionCall","src":"17338:22:53"},{"name":"dataEnd","nativeSrc":"17362:7:53","nodeType":"YulIdentifier","src":"17362:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"17306:31:53","nodeType":"YulIdentifier","src":"17306:31:53"},"nativeSrc":"17306:64:53","nodeType":"YulFunctionCall","src":"17306:64:53"},"variableNames":[{"name":"value0","nativeSrc":"17296:6:53","nodeType":"YulIdentifier","src":"17296:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"17036:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17083:9:53","nodeType":"YulTypedName","src":"17083:9:53","type":""},{"name":"dataEnd","nativeSrc":"17094:7:53","nodeType":"YulTypedName","src":"17094:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17106:6:53","nodeType":"YulTypedName","src":"17106:6:53","type":""}],"src":"17036:351:53"},{"body":{"nativeSrc":"17547:288:53","nodeType":"YulBlock","src":"17547:288:53","statements":[{"nativeSrc":"17557:26:53","nodeType":"YulAssignment","src":"17557:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17569:9:53","nodeType":"YulIdentifier","src":"17569:9:53"},{"kind":"number","nativeSrc":"17580:2:53","nodeType":"YulLiteral","src":"17580:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17565:3:53","nodeType":"YulIdentifier","src":"17565:3:53"},"nativeSrc":"17565:18:53","nodeType":"YulFunctionCall","src":"17565:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17557:4:53","nodeType":"YulIdentifier","src":"17557:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17637:6:53","nodeType":"YulIdentifier","src":"17637:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17650:9:53","nodeType":"YulIdentifier","src":"17650:9:53"},{"kind":"number","nativeSrc":"17661:1:53","nodeType":"YulLiteral","src":"17661:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17646:3:53","nodeType":"YulIdentifier","src":"17646:3:53"},"nativeSrc":"17646:17:53","nodeType":"YulFunctionCall","src":"17646:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17593:43:53","nodeType":"YulIdentifier","src":"17593:43:53"},"nativeSrc":"17593:71:53","nodeType":"YulFunctionCall","src":"17593:71:53"},"nativeSrc":"17593:71:53","nodeType":"YulExpressionStatement","src":"17593:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"17718:6:53","nodeType":"YulIdentifier","src":"17718:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17731:9:53","nodeType":"YulIdentifier","src":"17731:9:53"},{"kind":"number","nativeSrc":"17742:2:53","nodeType":"YulLiteral","src":"17742:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17727:3:53","nodeType":"YulIdentifier","src":"17727:3:53"},"nativeSrc":"17727:18:53","nodeType":"YulFunctionCall","src":"17727:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"17674:43:53","nodeType":"YulIdentifier","src":"17674:43:53"},"nativeSrc":"17674:72:53","nodeType":"YulFunctionCall","src":"17674:72:53"},"nativeSrc":"17674:72:53","nodeType":"YulExpressionStatement","src":"17674:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"17800:6:53","nodeType":"YulIdentifier","src":"17800:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"17813:9:53","nodeType":"YulIdentifier","src":"17813:9:53"},{"kind":"number","nativeSrc":"17824:2:53","nodeType":"YulLiteral","src":"17824:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17809:3:53","nodeType":"YulIdentifier","src":"17809:3:53"},"nativeSrc":"17809:18:53","nodeType":"YulFunctionCall","src":"17809:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"17756:43:53","nodeType":"YulIdentifier","src":"17756:43:53"},"nativeSrc":"17756:72:53","nodeType":"YulFunctionCall","src":"17756:72:53"},"nativeSrc":"17756:72:53","nodeType":"YulExpressionStatement","src":"17756:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"17393:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17503:9:53","nodeType":"YulTypedName","src":"17503:9:53","type":""},{"name":"value2","nativeSrc":"17515:6:53","nodeType":"YulTypedName","src":"17515:6:53","type":""},{"name":"value1","nativeSrc":"17523:6:53","nodeType":"YulTypedName","src":"17523:6:53","type":""},{"name":"value0","nativeSrc":"17531:6:53","nodeType":"YulTypedName","src":"17531:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17542:4:53","nodeType":"YulTypedName","src":"17542:4:53","type":""}],"src":"17393:442:53"},{"body":{"nativeSrc":"17869:152:53","nodeType":"YulBlock","src":"17869:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17886:1:53","nodeType":"YulLiteral","src":"17886:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17889:77:53","nodeType":"YulLiteral","src":"17889:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17879:6:53","nodeType":"YulIdentifier","src":"17879:6:53"},"nativeSrc":"17879:88:53","nodeType":"YulFunctionCall","src":"17879:88:53"},"nativeSrc":"17879:88:53","nodeType":"YulExpressionStatement","src":"17879:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17983:1:53","nodeType":"YulLiteral","src":"17983:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"17986:4:53","nodeType":"YulLiteral","src":"17986:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"17976:6:53","nodeType":"YulIdentifier","src":"17976:6:53"},"nativeSrc":"17976:15:53","nodeType":"YulFunctionCall","src":"17976:15:53"},"nativeSrc":"17976:15:53","nodeType":"YulExpressionStatement","src":"17976:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18007:1:53","nodeType":"YulLiteral","src":"18007:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18010:4:53","nodeType":"YulLiteral","src":"18010:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18000:6:53","nodeType":"YulIdentifier","src":"18000:6:53"},"nativeSrc":"18000:15:53","nodeType":"YulFunctionCall","src":"18000:15:53"},"nativeSrc":"18000:15:53","nodeType":"YulExpressionStatement","src":"18000:15:53"}]},"name":"panic_error_0x22","nativeSrc":"17841:180:53","nodeType":"YulFunctionDefinition","src":"17841:180:53"},{"body":{"nativeSrc":"18078:269:53","nodeType":"YulBlock","src":"18078:269:53","statements":[{"nativeSrc":"18088:22:53","nodeType":"YulAssignment","src":"18088:22:53","value":{"arguments":[{"name":"data","nativeSrc":"18102:4:53","nodeType":"YulIdentifier","src":"18102:4:53"},{"kind":"number","nativeSrc":"18108:1:53","nodeType":"YulLiteral","src":"18108:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"18098:3:53","nodeType":"YulIdentifier","src":"18098:3:53"},"nativeSrc":"18098:12:53","nodeType":"YulFunctionCall","src":"18098:12:53"},"variableNames":[{"name":"length","nativeSrc":"18088:6:53","nodeType":"YulIdentifier","src":"18088:6:53"}]},{"nativeSrc":"18119:38:53","nodeType":"YulVariableDeclaration","src":"18119:38:53","value":{"arguments":[{"name":"data","nativeSrc":"18149:4:53","nodeType":"YulIdentifier","src":"18149:4:53"},{"kind":"number","nativeSrc":"18155:1:53","nodeType":"YulLiteral","src":"18155:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"18145:3:53","nodeType":"YulIdentifier","src":"18145:3:53"},"nativeSrc":"18145:12:53","nodeType":"YulFunctionCall","src":"18145:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"18123:18:53","nodeType":"YulTypedName","src":"18123:18:53","type":""}]},{"body":{"nativeSrc":"18196:51:53","nodeType":"YulBlock","src":"18196:51:53","statements":[{"nativeSrc":"18210:27:53","nodeType":"YulAssignment","src":"18210:27:53","value":{"arguments":[{"name":"length","nativeSrc":"18224:6:53","nodeType":"YulIdentifier","src":"18224:6:53"},{"kind":"number","nativeSrc":"18232:4:53","nodeType":"YulLiteral","src":"18232:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"18220:3:53","nodeType":"YulIdentifier","src":"18220:3:53"},"nativeSrc":"18220:17:53","nodeType":"YulFunctionCall","src":"18220:17:53"},"variableNames":[{"name":"length","nativeSrc":"18210:6:53","nodeType":"YulIdentifier","src":"18210:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"18176:18:53","nodeType":"YulIdentifier","src":"18176:18:53"}],"functionName":{"name":"iszero","nativeSrc":"18169:6:53","nodeType":"YulIdentifier","src":"18169:6:53"},"nativeSrc":"18169:26:53","nodeType":"YulFunctionCall","src":"18169:26:53"},"nativeSrc":"18166:81:53","nodeType":"YulIf","src":"18166:81:53"},{"body":{"nativeSrc":"18299:42:53","nodeType":"YulBlock","src":"18299:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"18313:16:53","nodeType":"YulIdentifier","src":"18313:16:53"},"nativeSrc":"18313:18:53","nodeType":"YulFunctionCall","src":"18313:18:53"},"nativeSrc":"18313:18:53","nodeType":"YulExpressionStatement","src":"18313:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"18263:18:53","nodeType":"YulIdentifier","src":"18263:18:53"},{"arguments":[{"name":"length","nativeSrc":"18286:6:53","nodeType":"YulIdentifier","src":"18286:6:53"},{"kind":"number","nativeSrc":"18294:2:53","nodeType":"YulLiteral","src":"18294:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"18283:2:53","nodeType":"YulIdentifier","src":"18283:2:53"},"nativeSrc":"18283:14:53","nodeType":"YulFunctionCall","src":"18283:14:53"}],"functionName":{"name":"eq","nativeSrc":"18260:2:53","nodeType":"YulIdentifier","src":"18260:2:53"},"nativeSrc":"18260:38:53","nodeType":"YulFunctionCall","src":"18260:38:53"},"nativeSrc":"18257:84:53","nodeType":"YulIf","src":"18257:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"18027:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"18062:4:53","nodeType":"YulTypedName","src":"18062:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"18071:6:53","nodeType":"YulTypedName","src":"18071:6:53","type":""}],"src":"18027:320:53"},{"body":{"nativeSrc":"18406:87:53","nodeType":"YulBlock","src":"18406:87:53","statements":[{"nativeSrc":"18416:11:53","nodeType":"YulAssignment","src":"18416:11:53","value":{"name":"ptr","nativeSrc":"18424:3:53","nodeType":"YulIdentifier","src":"18424:3:53"},"variableNames":[{"name":"data","nativeSrc":"18416:4:53","nodeType":"YulIdentifier","src":"18416:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18444:1:53","nodeType":"YulLiteral","src":"18444:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"18447:3:53","nodeType":"YulIdentifier","src":"18447:3:53"}],"functionName":{"name":"mstore","nativeSrc":"18437:6:53","nodeType":"YulIdentifier","src":"18437:6:53"},"nativeSrc":"18437:14:53","nodeType":"YulFunctionCall","src":"18437:14:53"},"nativeSrc":"18437:14:53","nodeType":"YulExpressionStatement","src":"18437:14:53"},{"nativeSrc":"18460:26:53","nodeType":"YulAssignment","src":"18460:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"18478:1:53","nodeType":"YulLiteral","src":"18478:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18481:4:53","nodeType":"YulLiteral","src":"18481:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18468:9:53","nodeType":"YulIdentifier","src":"18468:9:53"},"nativeSrc":"18468:18:53","nodeType":"YulFunctionCall","src":"18468:18:53"},"variableNames":[{"name":"data","nativeSrc":"18460:4:53","nodeType":"YulIdentifier","src":"18460:4:53"}]}]},"name":"array_dataslot_t_bytes_storage","nativeSrc":"18353:140:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"18393:3:53","nodeType":"YulTypedName","src":"18393:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"18401:4:53","nodeType":"YulTypedName","src":"18401:4:53","type":""}],"src":"18353:140:53"},{"body":{"nativeSrc":"18543:49:53","nodeType":"YulBlock","src":"18543:49:53","statements":[{"nativeSrc":"18553:33:53","nodeType":"YulAssignment","src":"18553:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18571:5:53","nodeType":"YulIdentifier","src":"18571:5:53"},{"kind":"number","nativeSrc":"18578:2:53","nodeType":"YulLiteral","src":"18578:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"18567:3:53","nodeType":"YulIdentifier","src":"18567:3:53"},"nativeSrc":"18567:14:53","nodeType":"YulFunctionCall","src":"18567:14:53"},{"kind":"number","nativeSrc":"18583:2:53","nodeType":"YulLiteral","src":"18583:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"18563:3:53","nodeType":"YulIdentifier","src":"18563:3:53"},"nativeSrc":"18563:23:53","nodeType":"YulFunctionCall","src":"18563:23:53"},"variableNames":[{"name":"result","nativeSrc":"18553:6:53","nodeType":"YulIdentifier","src":"18553:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"18499:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18526:5:53","nodeType":"YulTypedName","src":"18526:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"18536:6:53","nodeType":"YulTypedName","src":"18536:6:53","type":""}],"src":"18499:93:53"},{"body":{"nativeSrc":"18651:54:53","nodeType":"YulBlock","src":"18651:54:53","statements":[{"nativeSrc":"18661:37:53","nodeType":"YulAssignment","src":"18661:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"18686:4:53","nodeType":"YulIdentifier","src":"18686:4:53"},{"name":"value","nativeSrc":"18692:5:53","nodeType":"YulIdentifier","src":"18692:5:53"}],"functionName":{"name":"shl","nativeSrc":"18682:3:53","nodeType":"YulIdentifier","src":"18682:3:53"},"nativeSrc":"18682:16:53","nodeType":"YulFunctionCall","src":"18682:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"18661:8:53","nodeType":"YulIdentifier","src":"18661:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"18598:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"18626:4:53","nodeType":"YulTypedName","src":"18626:4:53","type":""},{"name":"value","nativeSrc":"18632:5:53","nodeType":"YulTypedName","src":"18632:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"18642:8:53","nodeType":"YulTypedName","src":"18642:8:53","type":""}],"src":"18598:107:53"},{"body":{"nativeSrc":"18787:317:53","nodeType":"YulBlock","src":"18787:317:53","statements":[{"nativeSrc":"18797:35:53","nodeType":"YulVariableDeclaration","src":"18797:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"18818:10:53","nodeType":"YulIdentifier","src":"18818:10:53"},{"kind":"number","nativeSrc":"18830:1:53","nodeType":"YulLiteral","src":"18830:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"18814:3:53","nodeType":"YulIdentifier","src":"18814:3:53"},"nativeSrc":"18814:18:53","nodeType":"YulFunctionCall","src":"18814:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"18801:9:53","nodeType":"YulTypedName","src":"18801:9:53","type":""}]},{"nativeSrc":"18841:109:53","nodeType":"YulVariableDeclaration","src":"18841:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"18872:9:53","nodeType":"YulIdentifier","src":"18872:9:53"},{"kind":"number","nativeSrc":"18883:66:53","nodeType":"YulLiteral","src":"18883:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"18853:18:53","nodeType":"YulIdentifier","src":"18853:18:53"},"nativeSrc":"18853:97:53","nodeType":"YulFunctionCall","src":"18853:97:53"},"variables":[{"name":"mask","nativeSrc":"18845:4:53","nodeType":"YulTypedName","src":"18845:4:53","type":""}]},{"nativeSrc":"18959:51:53","nodeType":"YulAssignment","src":"18959:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"18990:9:53","nodeType":"YulIdentifier","src":"18990:9:53"},{"name":"toInsert","nativeSrc":"19001:8:53","nodeType":"YulIdentifier","src":"19001:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"18971:18:53","nodeType":"YulIdentifier","src":"18971:18:53"},"nativeSrc":"18971:39:53","nodeType":"YulFunctionCall","src":"18971:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"18959:8:53","nodeType":"YulIdentifier","src":"18959:8:53"}]},{"nativeSrc":"19019:30:53","nodeType":"YulAssignment","src":"19019:30:53","value":{"arguments":[{"name":"value","nativeSrc":"19032:5:53","nodeType":"YulIdentifier","src":"19032:5:53"},{"arguments":[{"name":"mask","nativeSrc":"19043:4:53","nodeType":"YulIdentifier","src":"19043:4:53"}],"functionName":{"name":"not","nativeSrc":"19039:3:53","nodeType":"YulIdentifier","src":"19039:3:53"},"nativeSrc":"19039:9:53","nodeType":"YulFunctionCall","src":"19039:9:53"}],"functionName":{"name":"and","nativeSrc":"19028:3:53","nodeType":"YulIdentifier","src":"19028:3:53"},"nativeSrc":"19028:21:53","nodeType":"YulFunctionCall","src":"19028:21:53"},"variableNames":[{"name":"value","nativeSrc":"19019:5:53","nodeType":"YulIdentifier","src":"19019:5:53"}]},{"nativeSrc":"19058:40:53","nodeType":"YulAssignment","src":"19058:40:53","value":{"arguments":[{"name":"value","nativeSrc":"19071:5:53","nodeType":"YulIdentifier","src":"19071:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"19082:8:53","nodeType":"YulIdentifier","src":"19082:8:53"},{"name":"mask","nativeSrc":"19092:4:53","nodeType":"YulIdentifier","src":"19092:4:53"}],"functionName":{"name":"and","nativeSrc":"19078:3:53","nodeType":"YulIdentifier","src":"19078:3:53"},"nativeSrc":"19078:19:53","nodeType":"YulFunctionCall","src":"19078:19:53"}],"functionName":{"name":"or","nativeSrc":"19068:2:53","nodeType":"YulIdentifier","src":"19068:2:53"},"nativeSrc":"19068:30:53","nodeType":"YulFunctionCall","src":"19068:30:53"},"variableNames":[{"name":"result","nativeSrc":"19058:6:53","nodeType":"YulIdentifier","src":"19058:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"18711:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18748:5:53","nodeType":"YulTypedName","src":"18748:5:53","type":""},{"name":"shiftBytes","nativeSrc":"18755:10:53","nodeType":"YulTypedName","src":"18755:10:53","type":""},{"name":"toInsert","nativeSrc":"18767:8:53","nodeType":"YulTypedName","src":"18767:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"18780:6:53","nodeType":"YulTypedName","src":"18780:6:53","type":""}],"src":"18711:393:53"},{"body":{"nativeSrc":"19170:82:53","nodeType":"YulBlock","src":"19170:82:53","statements":[{"nativeSrc":"19180:66:53","nodeType":"YulAssignment","src":"19180:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19238:5:53","nodeType":"YulIdentifier","src":"19238:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19220:17:53","nodeType":"YulIdentifier","src":"19220:17:53"},"nativeSrc":"19220:24:53","nodeType":"YulFunctionCall","src":"19220:24:53"}],"functionName":{"name":"identity","nativeSrc":"19211:8:53","nodeType":"YulIdentifier","src":"19211:8:53"},"nativeSrc":"19211:34:53","nodeType":"YulFunctionCall","src":"19211:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19193:17:53","nodeType":"YulIdentifier","src":"19193:17:53"},"nativeSrc":"19193:53:53","nodeType":"YulFunctionCall","src":"19193:53:53"},"variableNames":[{"name":"converted","nativeSrc":"19180:9:53","nodeType":"YulIdentifier","src":"19180:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"19110:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19150:5:53","nodeType":"YulTypedName","src":"19150:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"19160:9:53","nodeType":"YulTypedName","src":"19160:9:53","type":""}],"src":"19110:142:53"},{"body":{"nativeSrc":"19305:28:53","nodeType":"YulBlock","src":"19305:28:53","statements":[{"nativeSrc":"19315:12:53","nodeType":"YulAssignment","src":"19315:12:53","value":{"name":"value","nativeSrc":"19322:5:53","nodeType":"YulIdentifier","src":"19322:5:53"},"variableNames":[{"name":"ret","nativeSrc":"19315:3:53","nodeType":"YulIdentifier","src":"19315:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"19258:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19291:5:53","nodeType":"YulTypedName","src":"19291:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"19301:3:53","nodeType":"YulTypedName","src":"19301:3:53","type":""}],"src":"19258:75:53"},{"body":{"nativeSrc":"19415:193:53","nodeType":"YulBlock","src":"19415:193:53","statements":[{"nativeSrc":"19425:63:53","nodeType":"YulVariableDeclaration","src":"19425:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"19480:7:53","nodeType":"YulIdentifier","src":"19480:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"19449:30:53","nodeType":"YulIdentifier","src":"19449:30:53"},"nativeSrc":"19449:39:53","nodeType":"YulFunctionCall","src":"19449:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"19429:16:53","nodeType":"YulTypedName","src":"19429:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19504:4:53","nodeType":"YulIdentifier","src":"19504:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"19544:4:53","nodeType":"YulIdentifier","src":"19544:4:53"}],"functionName":{"name":"sload","nativeSrc":"19538:5:53","nodeType":"YulIdentifier","src":"19538:5:53"},"nativeSrc":"19538:11:53","nodeType":"YulFunctionCall","src":"19538:11:53"},{"name":"offset","nativeSrc":"19551:6:53","nodeType":"YulIdentifier","src":"19551:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"19583:16:53","nodeType":"YulIdentifier","src":"19583:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"19559:23:53","nodeType":"YulIdentifier","src":"19559:23:53"},"nativeSrc":"19559:41:53","nodeType":"YulFunctionCall","src":"19559:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"19510:27:53","nodeType":"YulIdentifier","src":"19510:27:53"},"nativeSrc":"19510:91:53","nodeType":"YulFunctionCall","src":"19510:91:53"}],"functionName":{"name":"sstore","nativeSrc":"19497:6:53","nodeType":"YulIdentifier","src":"19497:6:53"},"nativeSrc":"19497:105:53","nodeType":"YulFunctionCall","src":"19497:105:53"},"nativeSrc":"19497:105:53","nodeType":"YulExpressionStatement","src":"19497:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"19339:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19392:4:53","nodeType":"YulTypedName","src":"19392:4:53","type":""},{"name":"offset","nativeSrc":"19398:6:53","nodeType":"YulTypedName","src":"19398:6:53","type":""},{"name":"value_0","nativeSrc":"19406:7:53","nodeType":"YulTypedName","src":"19406:7:53","type":""}],"src":"19339:269:53"},{"body":{"nativeSrc":"19663:24:53","nodeType":"YulBlock","src":"19663:24:53","statements":[{"nativeSrc":"19673:8:53","nodeType":"YulAssignment","src":"19673:8:53","value":{"kind":"number","nativeSrc":"19680:1:53","nodeType":"YulLiteral","src":"19680:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"19673:3:53","nodeType":"YulIdentifier","src":"19673:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"19614:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"19659:3:53","nodeType":"YulTypedName","src":"19659:3:53","type":""}],"src":"19614:73:53"},{"body":{"nativeSrc":"19746:136:53","nodeType":"YulBlock","src":"19746:136:53","statements":[{"nativeSrc":"19756:46:53","nodeType":"YulVariableDeclaration","src":"19756:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"19770:30:53","nodeType":"YulIdentifier","src":"19770:30:53"},"nativeSrc":"19770:32:53","nodeType":"YulFunctionCall","src":"19770:32:53"},"variables":[{"name":"zero_0","nativeSrc":"19760:6:53","nodeType":"YulTypedName","src":"19760:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19855:4:53","nodeType":"YulIdentifier","src":"19855:4:53"},{"name":"offset","nativeSrc":"19861:6:53","nodeType":"YulIdentifier","src":"19861:6:53"},{"name":"zero_0","nativeSrc":"19869:6:53","nodeType":"YulIdentifier","src":"19869:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"19811:43:53","nodeType":"YulIdentifier","src":"19811:43:53"},"nativeSrc":"19811:65:53","nodeType":"YulFunctionCall","src":"19811:65:53"},"nativeSrc":"19811:65:53","nodeType":"YulExpressionStatement","src":"19811:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"19693:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19732:4:53","nodeType":"YulTypedName","src":"19732:4:53","type":""},{"name":"offset","nativeSrc":"19738:6:53","nodeType":"YulTypedName","src":"19738:6:53","type":""}],"src":"19693:189:53"},{"body":{"nativeSrc":"19938:136:53","nodeType":"YulBlock","src":"19938:136:53","statements":[{"body":{"nativeSrc":"20005:63:53","nodeType":"YulBlock","src":"20005:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"20049:5:53","nodeType":"YulIdentifier","src":"20049:5:53"},{"kind":"number","nativeSrc":"20056:1:53","nodeType":"YulLiteral","src":"20056:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"20019:29:53","nodeType":"YulIdentifier","src":"20019:29:53"},"nativeSrc":"20019:39:53","nodeType":"YulFunctionCall","src":"20019:39:53"},"nativeSrc":"20019:39:53","nodeType":"YulExpressionStatement","src":"20019:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"19958:5:53","nodeType":"YulIdentifier","src":"19958:5:53"},{"name":"end","nativeSrc":"19965:3:53","nodeType":"YulIdentifier","src":"19965:3:53"}],"functionName":{"name":"lt","nativeSrc":"19955:2:53","nodeType":"YulIdentifier","src":"19955:2:53"},"nativeSrc":"19955:14:53","nodeType":"YulFunctionCall","src":"19955:14:53"},"nativeSrc":"19948:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"19970:26:53","nodeType":"YulBlock","src":"19970:26:53","statements":[{"nativeSrc":"19972:22:53","nodeType":"YulAssignment","src":"19972:22:53","value":{"arguments":[{"name":"start","nativeSrc":"19985:5:53","nodeType":"YulIdentifier","src":"19985:5:53"},{"kind":"number","nativeSrc":"19992:1:53","nodeType":"YulLiteral","src":"19992:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19981:3:53","nodeType":"YulIdentifier","src":"19981:3:53"},"nativeSrc":"19981:13:53","nodeType":"YulFunctionCall","src":"19981:13:53"},"variableNames":[{"name":"start","nativeSrc":"19972:5:53","nodeType":"YulIdentifier","src":"19972:5:53"}]}]},"pre":{"nativeSrc":"19952:2:53","nodeType":"YulBlock","src":"19952:2:53","statements":[]},"src":"19948:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"19888:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"19926:5:53","nodeType":"YulTypedName","src":"19926:5:53","type":""},{"name":"end","nativeSrc":"19933:3:53","nodeType":"YulTypedName","src":"19933:3:53","type":""}],"src":"19888:186:53"},{"body":{"nativeSrc":"20158:463:53","nodeType":"YulBlock","src":"20158:463:53","statements":[{"body":{"nativeSrc":"20184:430:53","nodeType":"YulBlock","src":"20184:430:53","statements":[{"nativeSrc":"20198:53:53","nodeType":"YulVariableDeclaration","src":"20198:53:53","value":{"arguments":[{"name":"array","nativeSrc":"20245:5:53","nodeType":"YulIdentifier","src":"20245:5:53"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"20214:30:53","nodeType":"YulIdentifier","src":"20214:30:53"},"nativeSrc":"20214:37:53","nodeType":"YulFunctionCall","src":"20214:37:53"},"variables":[{"name":"dataArea","nativeSrc":"20202:8:53","nodeType":"YulTypedName","src":"20202:8:53","type":""}]},{"nativeSrc":"20264:63:53","nodeType":"YulVariableDeclaration","src":"20264:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"20287:8:53","nodeType":"YulIdentifier","src":"20287:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"20315:10:53","nodeType":"YulIdentifier","src":"20315:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"20297:17:53","nodeType":"YulIdentifier","src":"20297:17:53"},"nativeSrc":"20297:29:53","nodeType":"YulFunctionCall","src":"20297:29:53"}],"functionName":{"name":"add","nativeSrc":"20283:3:53","nodeType":"YulIdentifier","src":"20283:3:53"},"nativeSrc":"20283:44:53","nodeType":"YulFunctionCall","src":"20283:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"20268:11:53","nodeType":"YulTypedName","src":"20268:11:53","type":""}]},{"body":{"nativeSrc":"20484:27:53","nodeType":"YulBlock","src":"20484:27:53","statements":[{"nativeSrc":"20486:23:53","nodeType":"YulAssignment","src":"20486:23:53","value":{"name":"dataArea","nativeSrc":"20501:8:53","nodeType":"YulIdentifier","src":"20501:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"20486:11:53","nodeType":"YulIdentifier","src":"20486:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"20468:10:53","nodeType":"YulIdentifier","src":"20468:10:53"},{"kind":"number","nativeSrc":"20480:2:53","nodeType":"YulLiteral","src":"20480:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"20465:2:53","nodeType":"YulIdentifier","src":"20465:2:53"},"nativeSrc":"20465:18:53","nodeType":"YulFunctionCall","src":"20465:18:53"},"nativeSrc":"20462:49:53","nodeType":"YulIf","src":"20462:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"20553:11:53","nodeType":"YulIdentifier","src":"20553:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"20570:8:53","nodeType":"YulIdentifier","src":"20570:8:53"},{"arguments":[{"name":"len","nativeSrc":"20598:3:53","nodeType":"YulIdentifier","src":"20598:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"20580:17:53","nodeType":"YulIdentifier","src":"20580:17:53"},"nativeSrc":"20580:22:53","nodeType":"YulFunctionCall","src":"20580:22:53"}],"functionName":{"name":"add","nativeSrc":"20566:3:53","nodeType":"YulIdentifier","src":"20566:3:53"},"nativeSrc":"20566:37:53","nodeType":"YulFunctionCall","src":"20566:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"20524:28:53","nodeType":"YulIdentifier","src":"20524:28:53"},"nativeSrc":"20524:80:53","nodeType":"YulFunctionCall","src":"20524:80:53"},"nativeSrc":"20524:80:53","nodeType":"YulExpressionStatement","src":"20524:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"20175:3:53","nodeType":"YulIdentifier","src":"20175:3:53"},{"kind":"number","nativeSrc":"20180:2:53","nodeType":"YulLiteral","src":"20180:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"20172:2:53","nodeType":"YulIdentifier","src":"20172:2:53"},"nativeSrc":"20172:11:53","nodeType":"YulFunctionCall","src":"20172:11:53"},"nativeSrc":"20169:445:53","nodeType":"YulIf","src":"20169:445:53"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"20080:541:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"20134:5:53","nodeType":"YulTypedName","src":"20134:5:53","type":""},{"name":"len","nativeSrc":"20141:3:53","nodeType":"YulTypedName","src":"20141:3:53","type":""},{"name":"startIndex","nativeSrc":"20146:10:53","nodeType":"YulTypedName","src":"20146:10:53","type":""}],"src":"20080:541:53"},{"body":{"nativeSrc":"20690:54:53","nodeType":"YulBlock","src":"20690:54:53","statements":[{"nativeSrc":"20700:37:53","nodeType":"YulAssignment","src":"20700:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"20725:4:53","nodeType":"YulIdentifier","src":"20725:4:53"},{"name":"value","nativeSrc":"20731:5:53","nodeType":"YulIdentifier","src":"20731:5:53"}],"functionName":{"name":"shr","nativeSrc":"20721:3:53","nodeType":"YulIdentifier","src":"20721:3:53"},"nativeSrc":"20721:16:53","nodeType":"YulFunctionCall","src":"20721:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"20700:8:53","nodeType":"YulIdentifier","src":"20700:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"20627:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"20665:4:53","nodeType":"YulTypedName","src":"20665:4:53","type":""},{"name":"value","nativeSrc":"20671:5:53","nodeType":"YulTypedName","src":"20671:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"20681:8:53","nodeType":"YulTypedName","src":"20681:8:53","type":""}],"src":"20627:117:53"},{"body":{"nativeSrc":"20801:118:53","nodeType":"YulBlock","src":"20801:118:53","statements":[{"nativeSrc":"20811:68:53","nodeType":"YulVariableDeclaration","src":"20811:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20860:1:53","nodeType":"YulLiteral","src":"20860:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"20863:5:53","nodeType":"YulIdentifier","src":"20863:5:53"}],"functionName":{"name":"mul","nativeSrc":"20856:3:53","nodeType":"YulIdentifier","src":"20856:3:53"},"nativeSrc":"20856:13:53","nodeType":"YulFunctionCall","src":"20856:13:53"},{"arguments":[{"kind":"number","nativeSrc":"20875:1:53","nodeType":"YulLiteral","src":"20875:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"20871:3:53","nodeType":"YulIdentifier","src":"20871:3:53"},"nativeSrc":"20871:6:53","nodeType":"YulFunctionCall","src":"20871:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"20827:28:53","nodeType":"YulIdentifier","src":"20827:28:53"},"nativeSrc":"20827:51:53","nodeType":"YulFunctionCall","src":"20827:51:53"}],"functionName":{"name":"not","nativeSrc":"20823:3:53","nodeType":"YulIdentifier","src":"20823:3:53"},"nativeSrc":"20823:56:53","nodeType":"YulFunctionCall","src":"20823:56:53"},"variables":[{"name":"mask","nativeSrc":"20815:4:53","nodeType":"YulTypedName","src":"20815:4:53","type":""}]},{"nativeSrc":"20888:25:53","nodeType":"YulAssignment","src":"20888:25:53","value":{"arguments":[{"name":"data","nativeSrc":"20902:4:53","nodeType":"YulIdentifier","src":"20902:4:53"},{"name":"mask","nativeSrc":"20908:4:53","nodeType":"YulIdentifier","src":"20908:4:53"}],"functionName":{"name":"and","nativeSrc":"20898:3:53","nodeType":"YulIdentifier","src":"20898:3:53"},"nativeSrc":"20898:15:53","nodeType":"YulFunctionCall","src":"20898:15:53"},"variableNames":[{"name":"result","nativeSrc":"20888:6:53","nodeType":"YulIdentifier","src":"20888:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"20750:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"20778:4:53","nodeType":"YulTypedName","src":"20778:4:53","type":""},{"name":"bytes","nativeSrc":"20784:5:53","nodeType":"YulTypedName","src":"20784:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"20794:6:53","nodeType":"YulTypedName","src":"20794:6:53","type":""}],"src":"20750:169:53"},{"body":{"nativeSrc":"21005:214:53","nodeType":"YulBlock","src":"21005:214:53","statements":[{"nativeSrc":"21138:37:53","nodeType":"YulAssignment","src":"21138:37:53","value":{"arguments":[{"name":"data","nativeSrc":"21165:4:53","nodeType":"YulIdentifier","src":"21165:4:53"},{"name":"len","nativeSrc":"21171:3:53","nodeType":"YulIdentifier","src":"21171:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"21146:18:53","nodeType":"YulIdentifier","src":"21146:18:53"},"nativeSrc":"21146:29:53","nodeType":"YulFunctionCall","src":"21146:29:53"},"variableNames":[{"name":"data","nativeSrc":"21138:4:53","nodeType":"YulIdentifier","src":"21138:4:53"}]},{"nativeSrc":"21184:29:53","nodeType":"YulAssignment","src":"21184:29:53","value":{"arguments":[{"name":"data","nativeSrc":"21195:4:53","nodeType":"YulIdentifier","src":"21195:4:53"},{"arguments":[{"kind":"number","nativeSrc":"21205:1:53","nodeType":"YulLiteral","src":"21205:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"21208:3:53","nodeType":"YulIdentifier","src":"21208:3:53"}],"functionName":{"name":"mul","nativeSrc":"21201:3:53","nodeType":"YulIdentifier","src":"21201:3:53"},"nativeSrc":"21201:11:53","nodeType":"YulFunctionCall","src":"21201:11:53"}],"functionName":{"name":"or","nativeSrc":"21192:2:53","nodeType":"YulIdentifier","src":"21192:2:53"},"nativeSrc":"21192:21:53","nodeType":"YulFunctionCall","src":"21192:21:53"},"variableNames":[{"name":"used","nativeSrc":"21184:4:53","nodeType":"YulIdentifier","src":"21184:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"20924:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"20986:4:53","nodeType":"YulTypedName","src":"20986:4:53","type":""},{"name":"len","nativeSrc":"20992:3:53","nodeType":"YulTypedName","src":"20992:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"21000:4:53","nodeType":"YulTypedName","src":"21000:4:53","type":""}],"src":"20924:295:53"},{"body":{"nativeSrc":"21314:1300:53","nodeType":"YulBlock","src":"21314:1300:53","statements":[{"nativeSrc":"21325:50:53","nodeType":"YulVariableDeclaration","src":"21325:50:53","value":{"arguments":[{"name":"src","nativeSrc":"21371:3:53","nodeType":"YulIdentifier","src":"21371:3:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"21339:31:53","nodeType":"YulIdentifier","src":"21339:31:53"},"nativeSrc":"21339:36:53","nodeType":"YulFunctionCall","src":"21339:36:53"},"variables":[{"name":"newLen","nativeSrc":"21329:6:53","nodeType":"YulTypedName","src":"21329:6:53","type":""}]},{"body":{"nativeSrc":"21460:22:53","nodeType":"YulBlock","src":"21460:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"21462:16:53","nodeType":"YulIdentifier","src":"21462:16:53"},"nativeSrc":"21462:18:53","nodeType":"YulFunctionCall","src":"21462:18:53"},"nativeSrc":"21462:18:53","nodeType":"YulExpressionStatement","src":"21462:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"21432:6:53","nodeType":"YulIdentifier","src":"21432:6:53"},{"kind":"number","nativeSrc":"21440:18:53","nodeType":"YulLiteral","src":"21440:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21429:2:53","nodeType":"YulIdentifier","src":"21429:2:53"},"nativeSrc":"21429:30:53","nodeType":"YulFunctionCall","src":"21429:30:53"},"nativeSrc":"21426:56:53","nodeType":"YulIf","src":"21426:56:53"},{"nativeSrc":"21492:52:53","nodeType":"YulVariableDeclaration","src":"21492:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"21538:4:53","nodeType":"YulIdentifier","src":"21538:4:53"}],"functionName":{"name":"sload","nativeSrc":"21532:5:53","nodeType":"YulIdentifier","src":"21532:5:53"},"nativeSrc":"21532:11:53","nodeType":"YulFunctionCall","src":"21532:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"21506:25:53","nodeType":"YulIdentifier","src":"21506:25:53"},"nativeSrc":"21506:38:53","nodeType":"YulFunctionCall","src":"21506:38:53"},"variables":[{"name":"oldLen","nativeSrc":"21496:6:53","nodeType":"YulTypedName","src":"21496:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21636:4:53","nodeType":"YulIdentifier","src":"21636:4:53"},{"name":"oldLen","nativeSrc":"21642:6:53","nodeType":"YulIdentifier","src":"21642:6:53"},{"name":"newLen","nativeSrc":"21650:6:53","nodeType":"YulIdentifier","src":"21650:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"21591:44:53","nodeType":"YulIdentifier","src":"21591:44:53"},"nativeSrc":"21591:66:53","nodeType":"YulFunctionCall","src":"21591:66:53"},"nativeSrc":"21591:66:53","nodeType":"YulExpressionStatement","src":"21591:66:53"},{"nativeSrc":"21667:18:53","nodeType":"YulVariableDeclaration","src":"21667:18:53","value":{"kind":"number","nativeSrc":"21684:1:53","nodeType":"YulLiteral","src":"21684:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"21671:9:53","nodeType":"YulTypedName","src":"21671:9:53","type":""}]},{"nativeSrc":"21695:17:53","nodeType":"YulAssignment","src":"21695:17:53","value":{"kind":"number","nativeSrc":"21708:4:53","nodeType":"YulLiteral","src":"21708:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"21695:9:53","nodeType":"YulIdentifier","src":"21695:9:53"}]},{"cases":[{"body":{"nativeSrc":"21759:610:53","nodeType":"YulBlock","src":"21759:610:53","statements":[{"nativeSrc":"21773:37:53","nodeType":"YulVariableDeclaration","src":"21773:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"21792:6:53","nodeType":"YulIdentifier","src":"21792:6:53"},{"arguments":[{"kind":"number","nativeSrc":"21804:4:53","nodeType":"YulLiteral","src":"21804:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"21800:3:53","nodeType":"YulIdentifier","src":"21800:3:53"},"nativeSrc":"21800:9:53","nodeType":"YulFunctionCall","src":"21800:9:53"}],"functionName":{"name":"and","nativeSrc":"21788:3:53","nodeType":"YulIdentifier","src":"21788:3:53"},"nativeSrc":"21788:22:53","nodeType":"YulFunctionCall","src":"21788:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"21777:7:53","nodeType":"YulTypedName","src":"21777:7:53","type":""}]},{"nativeSrc":"21824:50:53","nodeType":"YulVariableDeclaration","src":"21824:50:53","value":{"arguments":[{"name":"slot","nativeSrc":"21869:4:53","nodeType":"YulIdentifier","src":"21869:4:53"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"21838:30:53","nodeType":"YulIdentifier","src":"21838:30:53"},"nativeSrc":"21838:36:53","nodeType":"YulFunctionCall","src":"21838:36:53"},"variables":[{"name":"dstPtr","nativeSrc":"21828:6:53","nodeType":"YulTypedName","src":"21828:6:53","type":""}]},{"nativeSrc":"21887:10:53","nodeType":"YulVariableDeclaration","src":"21887:10:53","value":{"kind":"number","nativeSrc":"21896:1:53","nodeType":"YulLiteral","src":"21896:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"21891:1:53","nodeType":"YulTypedName","src":"21891:1:53","type":""}]},{"body":{"nativeSrc":"21955:163:53","nodeType":"YulBlock","src":"21955:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"21980:6:53","nodeType":"YulIdentifier","src":"21980:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"21998:3:53","nodeType":"YulIdentifier","src":"21998:3:53"},{"name":"srcOffset","nativeSrc":"22003:9:53","nodeType":"YulIdentifier","src":"22003:9:53"}],"functionName":{"name":"add","nativeSrc":"21994:3:53","nodeType":"YulIdentifier","src":"21994:3:53"},"nativeSrc":"21994:19:53","nodeType":"YulFunctionCall","src":"21994:19:53"}],"functionName":{"name":"mload","nativeSrc":"21988:5:53","nodeType":"YulIdentifier","src":"21988:5:53"},"nativeSrc":"21988:26:53","nodeType":"YulFunctionCall","src":"21988:26:53"}],"functionName":{"name":"sstore","nativeSrc":"21973:6:53","nodeType":"YulIdentifier","src":"21973:6:53"},"nativeSrc":"21973:42:53","nodeType":"YulFunctionCall","src":"21973:42:53"},"nativeSrc":"21973:42:53","nodeType":"YulExpressionStatement","src":"21973:42:53"},{"nativeSrc":"22032:24:53","nodeType":"YulAssignment","src":"22032:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"22046:6:53","nodeType":"YulIdentifier","src":"22046:6:53"},{"kind":"number","nativeSrc":"22054:1:53","nodeType":"YulLiteral","src":"22054:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22042:3:53","nodeType":"YulIdentifier","src":"22042:3:53"},"nativeSrc":"22042:14:53","nodeType":"YulFunctionCall","src":"22042:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"22032:6:53","nodeType":"YulIdentifier","src":"22032:6:53"}]},{"nativeSrc":"22073:31:53","nodeType":"YulAssignment","src":"22073:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"22090:9:53","nodeType":"YulIdentifier","src":"22090:9:53"},{"kind":"number","nativeSrc":"22101:2:53","nodeType":"YulLiteral","src":"22101:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22086:3:53","nodeType":"YulIdentifier","src":"22086:3:53"},"nativeSrc":"22086:18:53","nodeType":"YulFunctionCall","src":"22086:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"22073:9:53","nodeType":"YulIdentifier","src":"22073:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"21921:1:53","nodeType":"YulIdentifier","src":"21921:1:53"},{"name":"loopEnd","nativeSrc":"21924:7:53","nodeType":"YulIdentifier","src":"21924:7:53"}],"functionName":{"name":"lt","nativeSrc":"21918:2:53","nodeType":"YulIdentifier","src":"21918:2:53"},"nativeSrc":"21918:14:53","nodeType":"YulFunctionCall","src":"21918:14:53"},"nativeSrc":"21910:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"21933:21:53","nodeType":"YulBlock","src":"21933:21:53","statements":[{"nativeSrc":"21935:17:53","nodeType":"YulAssignment","src":"21935:17:53","value":{"arguments":[{"name":"i","nativeSrc":"21944:1:53","nodeType":"YulIdentifier","src":"21944:1:53"},{"kind":"number","nativeSrc":"21947:4:53","nodeType":"YulLiteral","src":"21947:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21940:3:53","nodeType":"YulIdentifier","src":"21940:3:53"},"nativeSrc":"21940:12:53","nodeType":"YulFunctionCall","src":"21940:12:53"},"variableNames":[{"name":"i","nativeSrc":"21935:1:53","nodeType":"YulIdentifier","src":"21935:1:53"}]}]},"pre":{"nativeSrc":"21914:3:53","nodeType":"YulBlock","src":"21914:3:53","statements":[]},"src":"21910:208:53"},{"body":{"nativeSrc":"22154:156:53","nodeType":"YulBlock","src":"22154:156:53","statements":[{"nativeSrc":"22172:43:53","nodeType":"YulVariableDeclaration","src":"22172:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22199:3:53","nodeType":"YulIdentifier","src":"22199:3:53"},{"name":"srcOffset","nativeSrc":"22204:9:53","nodeType":"YulIdentifier","src":"22204:9:53"}],"functionName":{"name":"add","nativeSrc":"22195:3:53","nodeType":"YulIdentifier","src":"22195:3:53"},"nativeSrc":"22195:19:53","nodeType":"YulFunctionCall","src":"22195:19:53"}],"functionName":{"name":"mload","nativeSrc":"22189:5:53","nodeType":"YulIdentifier","src":"22189:5:53"},"nativeSrc":"22189:26:53","nodeType":"YulFunctionCall","src":"22189:26:53"},"variables":[{"name":"lastValue","nativeSrc":"22176:9:53","nodeType":"YulTypedName","src":"22176:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"22239:6:53","nodeType":"YulIdentifier","src":"22239:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"22266:9:53","nodeType":"YulIdentifier","src":"22266:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"22281:6:53","nodeType":"YulIdentifier","src":"22281:6:53"},{"kind":"number","nativeSrc":"22289:4:53","nodeType":"YulLiteral","src":"22289:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"22277:3:53","nodeType":"YulIdentifier","src":"22277:3:53"},"nativeSrc":"22277:17:53","nodeType":"YulFunctionCall","src":"22277:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"22247:18:53","nodeType":"YulIdentifier","src":"22247:18:53"},"nativeSrc":"22247:48:53","nodeType":"YulFunctionCall","src":"22247:48:53"}],"functionName":{"name":"sstore","nativeSrc":"22232:6:53","nodeType":"YulIdentifier","src":"22232:6:53"},"nativeSrc":"22232:64:53","nodeType":"YulFunctionCall","src":"22232:64:53"},"nativeSrc":"22232:64:53","nodeType":"YulExpressionStatement","src":"22232:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"22137:7:53","nodeType":"YulIdentifier","src":"22137:7:53"},{"name":"newLen","nativeSrc":"22146:6:53","nodeType":"YulIdentifier","src":"22146:6:53"}],"functionName":{"name":"lt","nativeSrc":"22134:2:53","nodeType":"YulIdentifier","src":"22134:2:53"},"nativeSrc":"22134:19:53","nodeType":"YulFunctionCall","src":"22134:19:53"},"nativeSrc":"22131:179:53","nodeType":"YulIf","src":"22131:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22330:4:53","nodeType":"YulIdentifier","src":"22330:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"22344:6:53","nodeType":"YulIdentifier","src":"22344:6:53"},{"kind":"number","nativeSrc":"22352:1:53","nodeType":"YulLiteral","src":"22352:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"22340:3:53","nodeType":"YulIdentifier","src":"22340:3:53"},"nativeSrc":"22340:14:53","nodeType":"YulFunctionCall","src":"22340:14:53"},{"kind":"number","nativeSrc":"22356:1:53","nodeType":"YulLiteral","src":"22356:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22336:3:53","nodeType":"YulIdentifier","src":"22336:3:53"},"nativeSrc":"22336:22:53","nodeType":"YulFunctionCall","src":"22336:22:53"}],"functionName":{"name":"sstore","nativeSrc":"22323:6:53","nodeType":"YulIdentifier","src":"22323:6:53"},"nativeSrc":"22323:36:53","nodeType":"YulFunctionCall","src":"22323:36:53"},"nativeSrc":"22323:36:53","nodeType":"YulExpressionStatement","src":"22323:36:53"}]},"nativeSrc":"21752:617:53","nodeType":"YulCase","src":"21752:617:53","value":{"kind":"number","nativeSrc":"21757:1:53","nodeType":"YulLiteral","src":"21757:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"22386:222:53","nodeType":"YulBlock","src":"22386:222:53","statements":[{"nativeSrc":"22400:14:53","nodeType":"YulVariableDeclaration","src":"22400:14:53","value":{"kind":"number","nativeSrc":"22413:1:53","nodeType":"YulLiteral","src":"22413:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"22404:5:53","nodeType":"YulTypedName","src":"22404:5:53","type":""}]},{"body":{"nativeSrc":"22437:67:53","nodeType":"YulBlock","src":"22437:67:53","statements":[{"nativeSrc":"22455:35:53","nodeType":"YulAssignment","src":"22455:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22474:3:53","nodeType":"YulIdentifier","src":"22474:3:53"},{"name":"srcOffset","nativeSrc":"22479:9:53","nodeType":"YulIdentifier","src":"22479:9:53"}],"functionName":{"name":"add","nativeSrc":"22470:3:53","nodeType":"YulIdentifier","src":"22470:3:53"},"nativeSrc":"22470:19:53","nodeType":"YulFunctionCall","src":"22470:19:53"}],"functionName":{"name":"mload","nativeSrc":"22464:5:53","nodeType":"YulIdentifier","src":"22464:5:53"},"nativeSrc":"22464:26:53","nodeType":"YulFunctionCall","src":"22464:26:53"},"variableNames":[{"name":"value","nativeSrc":"22455:5:53","nodeType":"YulIdentifier","src":"22455:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"22430:6:53","nodeType":"YulIdentifier","src":"22430:6:53"},"nativeSrc":"22427:77:53","nodeType":"YulIf","src":"22427:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22524:4:53","nodeType":"YulIdentifier","src":"22524:4:53"},{"arguments":[{"name":"value","nativeSrc":"22583:5:53","nodeType":"YulIdentifier","src":"22583:5:53"},{"name":"newLen","nativeSrc":"22590:6:53","nodeType":"YulIdentifier","src":"22590:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"22530:52:53","nodeType":"YulIdentifier","src":"22530:52:53"},"nativeSrc":"22530:67:53","nodeType":"YulFunctionCall","src":"22530:67:53"}],"functionName":{"name":"sstore","nativeSrc":"22517:6:53","nodeType":"YulIdentifier","src":"22517:6:53"},"nativeSrc":"22517:81:53","nodeType":"YulFunctionCall","src":"22517:81:53"},"nativeSrc":"22517:81:53","nodeType":"YulExpressionStatement","src":"22517:81:53"}]},"nativeSrc":"22378:230:53","nodeType":"YulCase","src":"22378:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"21732:6:53","nodeType":"YulIdentifier","src":"21732:6:53"},{"kind":"number","nativeSrc":"21740:2:53","nodeType":"YulLiteral","src":"21740:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"21729:2:53","nodeType":"YulIdentifier","src":"21729:2:53"},"nativeSrc":"21729:14:53","nodeType":"YulFunctionCall","src":"21729:14:53"},"nativeSrc":"21722:886:53","nodeType":"YulSwitch","src":"21722:886:53"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"21224:1390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21303:4:53","nodeType":"YulTypedName","src":"21303:4:53","type":""},{"name":"src","nativeSrc":"21309:3:53","nodeType":"YulTypedName","src":"21309:3:53","type":""}],"src":"21224:1390:53"},{"body":{"nativeSrc":"22675:53:53","nodeType":"YulBlock","src":"22675:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22692:3:53","nodeType":"YulIdentifier","src":"22692:3:53"},{"arguments":[{"name":"value","nativeSrc":"22715:5:53","nodeType":"YulIdentifier","src":"22715:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22697:17:53","nodeType":"YulIdentifier","src":"22697:17:53"},"nativeSrc":"22697:24:53","nodeType":"YulFunctionCall","src":"22697:24:53"}],"functionName":{"name":"mstore","nativeSrc":"22685:6:53","nodeType":"YulIdentifier","src":"22685:6:53"},"nativeSrc":"22685:37:53","nodeType":"YulFunctionCall","src":"22685:37:53"},"nativeSrc":"22685:37:53","nodeType":"YulExpressionStatement","src":"22685:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"22620:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22663:5:53","nodeType":"YulTypedName","src":"22663:5:53","type":""},{"name":"pos","nativeSrc":"22670:3:53","nodeType":"YulTypedName","src":"22670:3:53","type":""}],"src":"22620:108:53"},{"body":{"nativeSrc":"22819:73:53","nodeType":"YulBlock","src":"22819:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22836:3:53","nodeType":"YulIdentifier","src":"22836:3:53"},{"name":"length","nativeSrc":"22841:6:53","nodeType":"YulIdentifier","src":"22841:6:53"}],"functionName":{"name":"mstore","nativeSrc":"22829:6:53","nodeType":"YulIdentifier","src":"22829:6:53"},"nativeSrc":"22829:19:53","nodeType":"YulFunctionCall","src":"22829:19:53"},"nativeSrc":"22829:19:53","nodeType":"YulExpressionStatement","src":"22829:19:53"},{"nativeSrc":"22857:29:53","nodeType":"YulAssignment","src":"22857:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"22876:3:53","nodeType":"YulIdentifier","src":"22876:3:53"},{"kind":"number","nativeSrc":"22881:4:53","nodeType":"YulLiteral","src":"22881:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22872:3:53","nodeType":"YulIdentifier","src":"22872:3:53"},"nativeSrc":"22872:14:53","nodeType":"YulFunctionCall","src":"22872:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"22857:11:53","nodeType":"YulIdentifier","src":"22857:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"22734:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"22791:3:53","nodeType":"YulTypedName","src":"22791:3:53","type":""},{"name":"length","nativeSrc":"22796:6:53","nodeType":"YulTypedName","src":"22796:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"22807:11:53","nodeType":"YulTypedName","src":"22807:11:53","type":""}],"src":"22734:158:53"},{"body":{"nativeSrc":"22978:273:53","nodeType":"YulBlock","src":"22978:273:53","statements":[{"nativeSrc":"22988:52:53","nodeType":"YulVariableDeclaration","src":"22988:52:53","value":{"arguments":[{"name":"value","nativeSrc":"23034:5:53","nodeType":"YulIdentifier","src":"23034:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"23002:31:53","nodeType":"YulIdentifier","src":"23002:31:53"},"nativeSrc":"23002:38:53","nodeType":"YulFunctionCall","src":"23002:38:53"},"variables":[{"name":"length","nativeSrc":"22992:6:53","nodeType":"YulTypedName","src":"22992:6:53","type":""}]},{"nativeSrc":"23049:67:53","nodeType":"YulAssignment","src":"23049:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"23104:3:53","nodeType":"YulIdentifier","src":"23104:3:53"},{"name":"length","nativeSrc":"23109:6:53","nodeType":"YulIdentifier","src":"23109:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"23056:47:53","nodeType":"YulIdentifier","src":"23056:47:53"},"nativeSrc":"23056:60:53","nodeType":"YulFunctionCall","src":"23056:60:53"},"variableNames":[{"name":"pos","nativeSrc":"23049:3:53","nodeType":"YulIdentifier","src":"23049:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23164:5:53","nodeType":"YulIdentifier","src":"23164:5:53"},{"kind":"number","nativeSrc":"23171:4:53","nodeType":"YulLiteral","src":"23171:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23160:3:53","nodeType":"YulIdentifier","src":"23160:3:53"},"nativeSrc":"23160:16:53","nodeType":"YulFunctionCall","src":"23160:16:53"},{"name":"pos","nativeSrc":"23178:3:53","nodeType":"YulIdentifier","src":"23178:3:53"},{"name":"length","nativeSrc":"23183:6:53","nodeType":"YulIdentifier","src":"23183:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23125:34:53","nodeType":"YulIdentifier","src":"23125:34:53"},"nativeSrc":"23125:65:53","nodeType":"YulFunctionCall","src":"23125:65:53"},"nativeSrc":"23125:65:53","nodeType":"YulExpressionStatement","src":"23125:65:53"},{"nativeSrc":"23199:46:53","nodeType":"YulAssignment","src":"23199:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"23210:3:53","nodeType":"YulIdentifier","src":"23210:3:53"},{"arguments":[{"name":"length","nativeSrc":"23237:6:53","nodeType":"YulIdentifier","src":"23237:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"23215:21:53","nodeType":"YulIdentifier","src":"23215:21:53"},"nativeSrc":"23215:29:53","nodeType":"YulFunctionCall","src":"23215:29:53"}],"functionName":{"name":"add","nativeSrc":"23206:3:53","nodeType":"YulIdentifier","src":"23206:3:53"},"nativeSrc":"23206:39:53","nodeType":"YulFunctionCall","src":"23206:39:53"},"variableNames":[{"name":"end","nativeSrc":"23199:3:53","nodeType":"YulIdentifier","src":"23199:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"22898:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22959:5:53","nodeType":"YulTypedName","src":"22959:5:53","type":""},{"name":"pos","nativeSrc":"22966:3:53","nodeType":"YulTypedName","src":"22966:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22974:3:53","nodeType":"YulTypedName","src":"22974:3:53","type":""}],"src":"22898:353:53"},{"body":{"nativeSrc":"23465:659:53","nodeType":"YulBlock","src":"23465:659:53","statements":[{"nativeSrc":"23475:26:53","nodeType":"YulVariableDeclaration","src":"23475:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"23491:3:53","nodeType":"YulIdentifier","src":"23491:3:53"},{"kind":"number","nativeSrc":"23496:4:53","nodeType":"YulLiteral","src":"23496:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"23487:3:53","nodeType":"YulIdentifier","src":"23487:3:53"},"nativeSrc":"23487:14:53","nodeType":"YulFunctionCall","src":"23487:14:53"},"variables":[{"name":"tail","nativeSrc":"23479:4:53","nodeType":"YulTypedName","src":"23479:4:53","type":""}]},{"nativeSrc":"23511:167:53","nodeType":"YulBlock","src":"23511:167:53","statements":[{"nativeSrc":"23549:43:53","nodeType":"YulVariableDeclaration","src":"23549:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23579:5:53","nodeType":"YulIdentifier","src":"23579:5:53"},{"kind":"number","nativeSrc":"23586:4:53","nodeType":"YulLiteral","src":"23586:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23575:3:53","nodeType":"YulIdentifier","src":"23575:3:53"},"nativeSrc":"23575:16:53","nodeType":"YulFunctionCall","src":"23575:16:53"}],"functionName":{"name":"mload","nativeSrc":"23569:5:53","nodeType":"YulIdentifier","src":"23569:5:53"},"nativeSrc":"23569:23:53","nodeType":"YulFunctionCall","src":"23569:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"23553:12:53","nodeType":"YulTypedName","src":"23553:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"23639:12:53","nodeType":"YulIdentifier","src":"23639:12:53"},{"arguments":[{"name":"pos","nativeSrc":"23657:3:53","nodeType":"YulIdentifier","src":"23657:3:53"},{"kind":"number","nativeSrc":"23662:4:53","nodeType":"YulLiteral","src":"23662:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23653:3:53","nodeType":"YulIdentifier","src":"23653:3:53"},"nativeSrc":"23653:14:53","nodeType":"YulFunctionCall","src":"23653:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"23605:33:53","nodeType":"YulIdentifier","src":"23605:33:53"},"nativeSrc":"23605:63:53","nodeType":"YulFunctionCall","src":"23605:63:53"},"nativeSrc":"23605:63:53","nodeType":"YulExpressionStatement","src":"23605:63:53"}]},{"nativeSrc":"23688:166:53","nodeType":"YulBlock","src":"23688:166:53","statements":[{"nativeSrc":"23725:43:53","nodeType":"YulVariableDeclaration","src":"23725:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23755:5:53","nodeType":"YulIdentifier","src":"23755:5:53"},{"kind":"number","nativeSrc":"23762:4:53","nodeType":"YulLiteral","src":"23762:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23751:3:53","nodeType":"YulIdentifier","src":"23751:3:53"},"nativeSrc":"23751:16:53","nodeType":"YulFunctionCall","src":"23751:16:53"}],"functionName":{"name":"mload","nativeSrc":"23745:5:53","nodeType":"YulIdentifier","src":"23745:5:53"},"nativeSrc":"23745:23:53","nodeType":"YulFunctionCall","src":"23745:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"23729:12:53","nodeType":"YulTypedName","src":"23729:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"23815:12:53","nodeType":"YulIdentifier","src":"23815:12:53"},{"arguments":[{"name":"pos","nativeSrc":"23833:3:53","nodeType":"YulIdentifier","src":"23833:3:53"},{"kind":"number","nativeSrc":"23838:4:53","nodeType":"YulLiteral","src":"23838:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23829:3:53","nodeType":"YulIdentifier","src":"23829:3:53"},"nativeSrc":"23829:14:53","nodeType":"YulFunctionCall","src":"23829:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"23781:33:53","nodeType":"YulIdentifier","src":"23781:33:53"},"nativeSrc":"23781:63:53","nodeType":"YulFunctionCall","src":"23781:63:53"},"nativeSrc":"23781:63:53","nodeType":"YulExpressionStatement","src":"23781:63:53"}]},{"nativeSrc":"23864:233:53","nodeType":"YulBlock","src":"23864:233:53","statements":[{"nativeSrc":"23899:43:53","nodeType":"YulVariableDeclaration","src":"23899:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23929:5:53","nodeType":"YulIdentifier","src":"23929:5:53"},{"kind":"number","nativeSrc":"23936:4:53","nodeType":"YulLiteral","src":"23936:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23925:3:53","nodeType":"YulIdentifier","src":"23925:3:53"},"nativeSrc":"23925:16:53","nodeType":"YulFunctionCall","src":"23925:16:53"}],"functionName":{"name":"mload","nativeSrc":"23919:5:53","nodeType":"YulIdentifier","src":"23919:5:53"},"nativeSrc":"23919:23:53","nodeType":"YulFunctionCall","src":"23919:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"23903:12:53","nodeType":"YulTypedName","src":"23903:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23967:3:53","nodeType":"YulIdentifier","src":"23967:3:53"},{"kind":"number","nativeSrc":"23972:4:53","nodeType":"YulLiteral","src":"23972:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23963:3:53","nodeType":"YulIdentifier","src":"23963:3:53"},"nativeSrc":"23963:14:53","nodeType":"YulFunctionCall","src":"23963:14:53"},{"arguments":[{"name":"tail","nativeSrc":"23983:4:53","nodeType":"YulIdentifier","src":"23983:4:53"},{"name":"pos","nativeSrc":"23989:3:53","nodeType":"YulIdentifier","src":"23989:3:53"}],"functionName":{"name":"sub","nativeSrc":"23979:3:53","nodeType":"YulIdentifier","src":"23979:3:53"},"nativeSrc":"23979:14:53","nodeType":"YulFunctionCall","src":"23979:14:53"}],"functionName":{"name":"mstore","nativeSrc":"23956:6:53","nodeType":"YulIdentifier","src":"23956:6:53"},"nativeSrc":"23956:38:53","nodeType":"YulFunctionCall","src":"23956:38:53"},"nativeSrc":"23956:38:53","nodeType":"YulExpressionStatement","src":"23956:38:53"},{"nativeSrc":"24007:79:53","nodeType":"YulAssignment","src":"24007:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"24067:12:53","nodeType":"YulIdentifier","src":"24067:12:53"},{"name":"tail","nativeSrc":"24081:4:53","nodeType":"YulIdentifier","src":"24081:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"24015:51:53","nodeType":"YulIdentifier","src":"24015:51:53"},"nativeSrc":"24015:71:53","nodeType":"YulFunctionCall","src":"24015:71:53"},"variableNames":[{"name":"tail","nativeSrc":"24007:4:53","nodeType":"YulIdentifier","src":"24007:4:53"}]}]},{"nativeSrc":"24107:11:53","nodeType":"YulAssignment","src":"24107:11:53","value":{"name":"tail","nativeSrc":"24114:4:53","nodeType":"YulIdentifier","src":"24114:4:53"},"variableNames":[{"name":"end","nativeSrc":"24107:3:53","nodeType":"YulIdentifier","src":"24107:3:53"}]}]},"name":"abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack","nativeSrc":"23325:799:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23444:5:53","nodeType":"YulTypedName","src":"23444:5:53","type":""},{"name":"pos","nativeSrc":"23451:3:53","nodeType":"YulTypedName","src":"23451:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"23460:3:53","nodeType":"YulTypedName","src":"23460:3:53","type":""}],"src":"23325:799:53"},{"body":{"nativeSrc":"24294:241:53","nodeType":"YulBlock","src":"24294:241:53","statements":[{"nativeSrc":"24304:26:53","nodeType":"YulAssignment","src":"24304:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"24316:9:53","nodeType":"YulIdentifier","src":"24316:9:53"},{"kind":"number","nativeSrc":"24327:2:53","nodeType":"YulLiteral","src":"24327:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24312:3:53","nodeType":"YulIdentifier","src":"24312:3:53"},"nativeSrc":"24312:18:53","nodeType":"YulFunctionCall","src":"24312:18:53"},"variableNames":[{"name":"tail","nativeSrc":"24304:4:53","nodeType":"YulIdentifier","src":"24304:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24351:9:53","nodeType":"YulIdentifier","src":"24351:9:53"},{"kind":"number","nativeSrc":"24362:1:53","nodeType":"YulLiteral","src":"24362:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24347:3:53","nodeType":"YulIdentifier","src":"24347:3:53"},"nativeSrc":"24347:17:53","nodeType":"YulFunctionCall","src":"24347:17:53"},{"arguments":[{"name":"tail","nativeSrc":"24370:4:53","nodeType":"YulIdentifier","src":"24370:4:53"},{"name":"headStart","nativeSrc":"24376:9:53","nodeType":"YulIdentifier","src":"24376:9:53"}],"functionName":{"name":"sub","nativeSrc":"24366:3:53","nodeType":"YulIdentifier","src":"24366:3:53"},"nativeSrc":"24366:20:53","nodeType":"YulFunctionCall","src":"24366:20:53"}],"functionName":{"name":"mstore","nativeSrc":"24340:6:53","nodeType":"YulIdentifier","src":"24340:6:53"},"nativeSrc":"24340:47:53","nodeType":"YulFunctionCall","src":"24340:47:53"},"nativeSrc":"24340:47:53","nodeType":"YulExpressionStatement","src":"24340:47:53"},{"nativeSrc":"24396:132:53","nodeType":"YulAssignment","src":"24396:132:53","value":{"arguments":[{"name":"value0","nativeSrc":"24514:6:53","nodeType":"YulIdentifier","src":"24514:6:53"},{"name":"tail","nativeSrc":"24523:4:53","nodeType":"YulIdentifier","src":"24523:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack","nativeSrc":"24404:109:53","nodeType":"YulIdentifier","src":"24404:109:53"},"nativeSrc":"24404:124:53","nodeType":"YulFunctionCall","src":"24404:124:53"},"variableNames":[{"name":"tail","nativeSrc":"24396:4:53","nodeType":"YulIdentifier","src":"24396:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr__to_t_struct$_ERC1155Payload_$13494_memory_ptr__fromStack_reversed","nativeSrc":"24130:405:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24266:9:53","nodeType":"YulTypedName","src":"24266:9:53","type":""},{"name":"value0","nativeSrc":"24278:6:53","nodeType":"YulTypedName","src":"24278:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24289:4:53","nodeType":"YulTypedName","src":"24289:4:53","type":""}],"src":"24130:405:53"},{"body":{"nativeSrc":"24599:62:53","nodeType":"YulBlock","src":"24599:62:53","statements":[{"body":{"nativeSrc":"24633:22:53","nodeType":"YulBlock","src":"24633:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"24635:16:53","nodeType":"YulIdentifier","src":"24635:16:53"},"nativeSrc":"24635:18:53","nodeType":"YulFunctionCall","src":"24635:18:53"},"nativeSrc":"24635:18:53","nodeType":"YulExpressionStatement","src":"24635:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24622:5:53","nodeType":"YulIdentifier","src":"24622:5:53"},{"kind":"number","nativeSrc":"24629:1:53","nodeType":"YulLiteral","src":"24629:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"24619:2:53","nodeType":"YulIdentifier","src":"24619:2:53"},"nativeSrc":"24619:12:53","nodeType":"YulFunctionCall","src":"24619:12:53"}],"functionName":{"name":"iszero","nativeSrc":"24612:6:53","nodeType":"YulIdentifier","src":"24612:6:53"},"nativeSrc":"24612:20:53","nodeType":"YulFunctionCall","src":"24612:20:53"},"nativeSrc":"24609:46:53","nodeType":"YulIf","src":"24609:46:53"}]},"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"24541:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24592:5:53","nodeType":"YulTypedName","src":"24592:5:53","type":""}],"src":"24541:120:53"},{"body":{"nativeSrc":"24727:81:53","nodeType":"YulBlock","src":"24727:81:53","statements":[{"nativeSrc":"24737:16:53","nodeType":"YulAssignment","src":"24737:16:53","value":{"name":"value","nativeSrc":"24748:5:53","nodeType":"YulIdentifier","src":"24748:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"24737:7:53","nodeType":"YulIdentifier","src":"24737:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24796:5:53","nodeType":"YulIdentifier","src":"24796:5:53"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"24754:41:53","nodeType":"YulIdentifier","src":"24754:41:53"},"nativeSrc":"24754:48:53","nodeType":"YulFunctionCall","src":"24754:48:53"},"nativeSrc":"24754:48:53","nodeType":"YulExpressionStatement","src":"24754:48:53"}]},"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"24667:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24709:5:53","nodeType":"YulTypedName","src":"24709:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"24719:7:53","nodeType":"YulTypedName","src":"24719:7:53","type":""}],"src":"24667:141:53"},{"body":{"nativeSrc":"24887:68:53","nodeType":"YulBlock","src":"24887:68:53","statements":[{"nativeSrc":"24897:52:53","nodeType":"YulAssignment","src":"24897:52:53","value":{"arguments":[{"name":"value","nativeSrc":"24943:5:53","nodeType":"YulIdentifier","src":"24943:5:53"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"24910:32:53","nodeType":"YulIdentifier","src":"24910:32:53"},"nativeSrc":"24910:39:53","nodeType":"YulFunctionCall","src":"24910:39:53"},"variableNames":[{"name":"converted","nativeSrc":"24897:9:53","nodeType":"YulIdentifier","src":"24897:9:53"}]}]},"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"24814:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24867:5:53","nodeType":"YulTypedName","src":"24867:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"24877:9:53","nodeType":"YulTypedName","src":"24877:9:53","type":""}],"src":"24814:141:53"},{"body":{"nativeSrc":"25029:79:53","nodeType":"YulBlock","src":"25029:79:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25046:3:53","nodeType":"YulIdentifier","src":"25046:3:53"},{"arguments":[{"name":"value","nativeSrc":"25095:5:53","nodeType":"YulIdentifier","src":"25095:5:53"}],"functionName":{"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"25051:43:53","nodeType":"YulIdentifier","src":"25051:43:53"},"nativeSrc":"25051:50:53","nodeType":"YulFunctionCall","src":"25051:50:53"}],"functionName":{"name":"mstore","nativeSrc":"25039:6:53","nodeType":"YulIdentifier","src":"25039:6:53"},"nativeSrc":"25039:63:53","nodeType":"YulFunctionCall","src":"25039:63:53"},"nativeSrc":"25039:63:53","nodeType":"YulExpressionStatement","src":"25039:63:53"}]},"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"24961:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25017:5:53","nodeType":"YulTypedName","src":"25017:5:53","type":""},{"name":"pos","nativeSrc":"25024:3:53","nodeType":"YulTypedName","src":"25024:3:53","type":""}],"src":"24961:147:53"},{"body":{"nativeSrc":"25169:53:53","nodeType":"YulBlock","src":"25169:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25186:3:53","nodeType":"YulIdentifier","src":"25186:3:53"},{"arguments":[{"name":"value","nativeSrc":"25209:5:53","nodeType":"YulIdentifier","src":"25209:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"25191:17:53","nodeType":"YulIdentifier","src":"25191:17:53"},"nativeSrc":"25191:24:53","nodeType":"YulFunctionCall","src":"25191:24:53"}],"functionName":{"name":"mstore","nativeSrc":"25179:6:53","nodeType":"YulIdentifier","src":"25179:6:53"},"nativeSrc":"25179:37:53","nodeType":"YulFunctionCall","src":"25179:37:53"},"nativeSrc":"25179:37:53","nodeType":"YulExpressionStatement","src":"25179:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"25114:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25157:5:53","nodeType":"YulTypedName","src":"25157:5:53","type":""},{"name":"pos","nativeSrc":"25164:3:53","nodeType":"YulTypedName","src":"25164:3:53","type":""}],"src":"25114:108:53"},{"body":{"nativeSrc":"25412:849:53","nodeType":"YulBlock","src":"25412:849:53","statements":[{"nativeSrc":"25422:26:53","nodeType":"YulVariableDeclaration","src":"25422:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"25438:3:53","nodeType":"YulIdentifier","src":"25438:3:53"},{"kind":"number","nativeSrc":"25443:4:53","nodeType":"YulLiteral","src":"25443:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25434:3:53","nodeType":"YulIdentifier","src":"25434:3:53"},"nativeSrc":"25434:14:53","nodeType":"YulFunctionCall","src":"25434:14:53"},"variables":[{"name":"tail","nativeSrc":"25426:4:53","nodeType":"YulTypedName","src":"25426:4:53","type":""}]},{"nativeSrc":"25458:182:53","nodeType":"YulBlock","src":"25458:182:53","statements":[{"nativeSrc":"25498:43:53","nodeType":"YulVariableDeclaration","src":"25498:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25528:5:53","nodeType":"YulIdentifier","src":"25528:5:53"},{"kind":"number","nativeSrc":"25535:4:53","nodeType":"YulLiteral","src":"25535:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25524:3:53","nodeType":"YulIdentifier","src":"25524:3:53"},"nativeSrc":"25524:16:53","nodeType":"YulFunctionCall","src":"25524:16:53"}],"functionName":{"name":"mload","nativeSrc":"25518:5:53","nodeType":"YulIdentifier","src":"25518:5:53"},"nativeSrc":"25518:23:53","nodeType":"YulFunctionCall","src":"25518:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"25502:12:53","nodeType":"YulTypedName","src":"25502:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25601:12:53","nodeType":"YulIdentifier","src":"25601:12:53"},{"arguments":[{"name":"pos","nativeSrc":"25619:3:53","nodeType":"YulIdentifier","src":"25619:3:53"},{"kind":"number","nativeSrc":"25624:4:53","nodeType":"YulLiteral","src":"25624:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25615:3:53","nodeType":"YulIdentifier","src":"25615:3:53"},"nativeSrc":"25615:14:53","nodeType":"YulFunctionCall","src":"25615:14:53"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"25554:46:53","nodeType":"YulIdentifier","src":"25554:46:53"},"nativeSrc":"25554:76:53","nodeType":"YulFunctionCall","src":"25554:76:53"},"nativeSrc":"25554:76:53","nodeType":"YulExpressionStatement","src":"25554:76:53"}]},{"nativeSrc":"25650:165:53","nodeType":"YulBlock","src":"25650:165:53","statements":[{"nativeSrc":"25686:43:53","nodeType":"YulVariableDeclaration","src":"25686:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25716:5:53","nodeType":"YulIdentifier","src":"25716:5:53"},{"kind":"number","nativeSrc":"25723:4:53","nodeType":"YulLiteral","src":"25723:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25712:3:53","nodeType":"YulIdentifier","src":"25712:3:53"},"nativeSrc":"25712:16:53","nodeType":"YulFunctionCall","src":"25712:16:53"}],"functionName":{"name":"mload","nativeSrc":"25706:5:53","nodeType":"YulIdentifier","src":"25706:5:53"},"nativeSrc":"25706:23:53","nodeType":"YulFunctionCall","src":"25706:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"25690:12:53","nodeType":"YulTypedName","src":"25690:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25776:12:53","nodeType":"YulIdentifier","src":"25776:12:53"},{"arguments":[{"name":"pos","nativeSrc":"25794:3:53","nodeType":"YulIdentifier","src":"25794:3:53"},{"kind":"number","nativeSrc":"25799:4:53","nodeType":"YulLiteral","src":"25799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25790:3:53","nodeType":"YulIdentifier","src":"25790:3:53"},"nativeSrc":"25790:14:53","nodeType":"YulFunctionCall","src":"25790:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"25742:33:53","nodeType":"YulIdentifier","src":"25742:33:53"},"nativeSrc":"25742:63:53","nodeType":"YulFunctionCall","src":"25742:63:53"},"nativeSrc":"25742:63:53","nodeType":"YulExpressionStatement","src":"25742:63:53"}]},{"nativeSrc":"25825:166:53","nodeType":"YulBlock","src":"25825:166:53","statements":[{"nativeSrc":"25862:43:53","nodeType":"YulVariableDeclaration","src":"25862:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25892:5:53","nodeType":"YulIdentifier","src":"25892:5:53"},{"kind":"number","nativeSrc":"25899:4:53","nodeType":"YulLiteral","src":"25899:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25888:3:53","nodeType":"YulIdentifier","src":"25888:3:53"},"nativeSrc":"25888:16:53","nodeType":"YulFunctionCall","src":"25888:16:53"}],"functionName":{"name":"mload","nativeSrc":"25882:5:53","nodeType":"YulIdentifier","src":"25882:5:53"},"nativeSrc":"25882:23:53","nodeType":"YulFunctionCall","src":"25882:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"25866:12:53","nodeType":"YulTypedName","src":"25866:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25952:12:53","nodeType":"YulIdentifier","src":"25952:12:53"},{"arguments":[{"name":"pos","nativeSrc":"25970:3:53","nodeType":"YulIdentifier","src":"25970:3:53"},{"kind":"number","nativeSrc":"25975:4:53","nodeType":"YulLiteral","src":"25975:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25966:3:53","nodeType":"YulIdentifier","src":"25966:3:53"},"nativeSrc":"25966:14:53","nodeType":"YulFunctionCall","src":"25966:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"25918:33:53","nodeType":"YulIdentifier","src":"25918:33:53"},"nativeSrc":"25918:63:53","nodeType":"YulFunctionCall","src":"25918:63:53"},"nativeSrc":"25918:63:53","nodeType":"YulExpressionStatement","src":"25918:63:53"}]},{"nativeSrc":"26001:233:53","nodeType":"YulBlock","src":"26001:233:53","statements":[{"nativeSrc":"26036:43:53","nodeType":"YulVariableDeclaration","src":"26036:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26066:5:53","nodeType":"YulIdentifier","src":"26066:5:53"},{"kind":"number","nativeSrc":"26073:4:53","nodeType":"YulLiteral","src":"26073:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26062:3:53","nodeType":"YulIdentifier","src":"26062:3:53"},"nativeSrc":"26062:16:53","nodeType":"YulFunctionCall","src":"26062:16:53"}],"functionName":{"name":"mload","nativeSrc":"26056:5:53","nodeType":"YulIdentifier","src":"26056:5:53"},"nativeSrc":"26056:23:53","nodeType":"YulFunctionCall","src":"26056:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"26040:12:53","nodeType":"YulTypedName","src":"26040:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"26104:3:53","nodeType":"YulIdentifier","src":"26104:3:53"},{"kind":"number","nativeSrc":"26109:4:53","nodeType":"YulLiteral","src":"26109:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26100:3:53","nodeType":"YulIdentifier","src":"26100:3:53"},"nativeSrc":"26100:14:53","nodeType":"YulFunctionCall","src":"26100:14:53"},{"arguments":[{"name":"tail","nativeSrc":"26120:4:53","nodeType":"YulIdentifier","src":"26120:4:53"},{"name":"pos","nativeSrc":"26126:3:53","nodeType":"YulIdentifier","src":"26126:3:53"}],"functionName":{"name":"sub","nativeSrc":"26116:3:53","nodeType":"YulIdentifier","src":"26116:3:53"},"nativeSrc":"26116:14:53","nodeType":"YulFunctionCall","src":"26116:14:53"}],"functionName":{"name":"mstore","nativeSrc":"26093:6:53","nodeType":"YulIdentifier","src":"26093:6:53"},"nativeSrc":"26093:38:53","nodeType":"YulFunctionCall","src":"26093:38:53"},"nativeSrc":"26093:38:53","nodeType":"YulExpressionStatement","src":"26093:38:53"},{"nativeSrc":"26144:79:53","nodeType":"YulAssignment","src":"26144:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"26204:12:53","nodeType":"YulIdentifier","src":"26204:12:53"},{"name":"tail","nativeSrc":"26218:4:53","nodeType":"YulIdentifier","src":"26218:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"26152:51:53","nodeType":"YulIdentifier","src":"26152:51:53"},"nativeSrc":"26152:71:53","nodeType":"YulFunctionCall","src":"26152:71:53"},"variableNames":[{"name":"tail","nativeSrc":"26144:4:53","nodeType":"YulIdentifier","src":"26144:4:53"}]}]},{"nativeSrc":"26244:11:53","nodeType":"YulAssignment","src":"26244:11:53","value":{"name":"tail","nativeSrc":"26251:4:53","nodeType":"YulIdentifier","src":"26251:4:53"},"variableNames":[{"name":"end","nativeSrc":"26244:3:53","nodeType":"YulIdentifier","src":"26244:3:53"}]}]},"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"25284:977:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25391:5:53","nodeType":"YulTypedName","src":"25391:5:53","type":""},{"name":"pos","nativeSrc":"25398:3:53","nodeType":"YulTypedName","src":"25398:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25407:3:53","nodeType":"YulTypedName","src":"25407:3:53","type":""}],"src":"25284:977:53"},{"body":{"nativeSrc":"26419:229:53","nodeType":"YulBlock","src":"26419:229:53","statements":[{"nativeSrc":"26429:26:53","nodeType":"YulAssignment","src":"26429:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"26441:9:53","nodeType":"YulIdentifier","src":"26441:9:53"},{"kind":"number","nativeSrc":"26452:2:53","nodeType":"YulLiteral","src":"26452:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26437:3:53","nodeType":"YulIdentifier","src":"26437:3:53"},"nativeSrc":"26437:18:53","nodeType":"YulFunctionCall","src":"26437:18:53"},"variableNames":[{"name":"tail","nativeSrc":"26429:4:53","nodeType":"YulIdentifier","src":"26429:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26476:9:53","nodeType":"YulIdentifier","src":"26476:9:53"},{"kind":"number","nativeSrc":"26487:1:53","nodeType":"YulLiteral","src":"26487:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"26472:3:53","nodeType":"YulIdentifier","src":"26472:3:53"},"nativeSrc":"26472:17:53","nodeType":"YulFunctionCall","src":"26472:17:53"},{"arguments":[{"name":"tail","nativeSrc":"26495:4:53","nodeType":"YulIdentifier","src":"26495:4:53"},{"name":"headStart","nativeSrc":"26501:9:53","nodeType":"YulIdentifier","src":"26501:9:53"}],"functionName":{"name":"sub","nativeSrc":"26491:3:53","nodeType":"YulIdentifier","src":"26491:3:53"},"nativeSrc":"26491:20:53","nodeType":"YulFunctionCall","src":"26491:20:53"}],"functionName":{"name":"mstore","nativeSrc":"26465:6:53","nodeType":"YulIdentifier","src":"26465:6:53"},"nativeSrc":"26465:47:53","nodeType":"YulFunctionCall","src":"26465:47:53"},"nativeSrc":"26465:47:53","nodeType":"YulExpressionStatement","src":"26465:47:53"},{"nativeSrc":"26521:120:53","nodeType":"YulAssignment","src":"26521:120:53","value":{"arguments":[{"name":"value0","nativeSrc":"26627:6:53","nodeType":"YulIdentifier","src":"26627:6:53"},{"name":"tail","nativeSrc":"26636:4:53","nodeType":"YulIdentifier","src":"26636:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"26529:97:53","nodeType":"YulIdentifier","src":"26529:97:53"},"nativeSrc":"26529:112:53","nodeType":"YulFunctionCall","src":"26529:112:53"},"variableNames":[{"name":"tail","nativeSrc":"26521:4:53","nodeType":"YulIdentifier","src":"26521:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed","nativeSrc":"26267:381:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26391:9:53","nodeType":"YulTypedName","src":"26391:9:53","type":""},{"name":"value0","nativeSrc":"26403:6:53","nodeType":"YulTypedName","src":"26403:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26414:4:53","nodeType":"YulTypedName","src":"26414:4:53","type":""}],"src":"26267:381:53"},{"body":{"nativeSrc":"26777:665:53","nodeType":"YulBlock","src":"26777:665:53","statements":[{"body":{"nativeSrc":"26821:83:53","nodeType":"YulBlock","src":"26821:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"26823:77:53","nodeType":"YulIdentifier","src":"26823:77:53"},"nativeSrc":"26823:79:53","nodeType":"YulFunctionCall","src":"26823:79:53"},"nativeSrc":"26823:79:53","nodeType":"YulExpressionStatement","src":"26823:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"26798:3:53","nodeType":"YulIdentifier","src":"26798:3:53"},{"name":"headStart","nativeSrc":"26803:9:53","nodeType":"YulIdentifier","src":"26803:9:53"}],"functionName":{"name":"sub","nativeSrc":"26794:3:53","nodeType":"YulIdentifier","src":"26794:3:53"},"nativeSrc":"26794:19:53","nodeType":"YulFunctionCall","src":"26794:19:53"},{"kind":"number","nativeSrc":"26815:4:53","nodeType":"YulLiteral","src":"26815:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"26790:3:53","nodeType":"YulIdentifier","src":"26790:3:53"},"nativeSrc":"26790:30:53","nodeType":"YulFunctionCall","src":"26790:30:53"},"nativeSrc":"26787:117:53","nodeType":"YulIf","src":"26787:117:53"},{"nativeSrc":"26913:30:53","nodeType":"YulAssignment","src":"26913:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"26938:4:53","nodeType":"YulLiteral","src":"26938:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"26922:15:53","nodeType":"YulIdentifier","src":"26922:15:53"},"nativeSrc":"26922:21:53","nodeType":"YulFunctionCall","src":"26922:21:53"},"variableNames":[{"name":"value","nativeSrc":"26913:5:53","nodeType":"YulIdentifier","src":"26913:5:53"}]},{"nativeSrc":"26953:152:53","nodeType":"YulBlock","src":"26953:152:53","statements":[{"nativeSrc":"26990:15:53","nodeType":"YulVariableDeclaration","src":"26990:15:53","value":{"kind":"number","nativeSrc":"27004:1:53","nodeType":"YulLiteral","src":"27004:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"26994:6:53","nodeType":"YulTypedName","src":"26994:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27030:5:53","nodeType":"YulIdentifier","src":"27030:5:53"},{"kind":"number","nativeSrc":"27037:4:53","nodeType":"YulLiteral","src":"27037:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"27026:3:53","nodeType":"YulIdentifier","src":"27026:3:53"},"nativeSrc":"27026:16:53","nodeType":"YulFunctionCall","src":"27026:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27069:9:53","nodeType":"YulIdentifier","src":"27069:9:53"},{"name":"offset","nativeSrc":"27080:6:53","nodeType":"YulIdentifier","src":"27080:6:53"}],"functionName":{"name":"add","nativeSrc":"27065:3:53","nodeType":"YulIdentifier","src":"27065:3:53"},"nativeSrc":"27065:22:53","nodeType":"YulFunctionCall","src":"27065:22:53"},{"name":"end","nativeSrc":"27089:3:53","nodeType":"YulIdentifier","src":"27089:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"27044:20:53","nodeType":"YulIdentifier","src":"27044:20:53"},"nativeSrc":"27044:49:53","nodeType":"YulFunctionCall","src":"27044:49:53"}],"functionName":{"name":"mstore","nativeSrc":"27019:6:53","nodeType":"YulIdentifier","src":"27019:6:53"},"nativeSrc":"27019:75:53","nodeType":"YulFunctionCall","src":"27019:75:53"},"nativeSrc":"27019:75:53","nodeType":"YulExpressionStatement","src":"27019:75:53"}]},{"nativeSrc":"27115:320:53","nodeType":"YulBlock","src":"27115:320:53","statements":[{"nativeSrc":"27150:46:53","nodeType":"YulVariableDeclaration","src":"27150:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27181:9:53","nodeType":"YulIdentifier","src":"27181:9:53"},{"kind":"number","nativeSrc":"27192:2:53","nodeType":"YulLiteral","src":"27192:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27177:3:53","nodeType":"YulIdentifier","src":"27177:3:53"},"nativeSrc":"27177:18:53","nodeType":"YulFunctionCall","src":"27177:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"27164:12:53","nodeType":"YulIdentifier","src":"27164:12:53"},"nativeSrc":"27164:32:53","nodeType":"YulFunctionCall","src":"27164:32:53"},"variables":[{"name":"offset","nativeSrc":"27154:6:53","nodeType":"YulTypedName","src":"27154:6:53","type":""}]},{"body":{"nativeSrc":"27243:83:53","nodeType":"YulBlock","src":"27243:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"27245:77:53","nodeType":"YulIdentifier","src":"27245:77:53"},"nativeSrc":"27245:79:53","nodeType":"YulFunctionCall","src":"27245:79:53"},"nativeSrc":"27245:79:53","nodeType":"YulExpressionStatement","src":"27245:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27215:6:53","nodeType":"YulIdentifier","src":"27215:6:53"},{"kind":"number","nativeSrc":"27223:18:53","nodeType":"YulLiteral","src":"27223:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27212:2:53","nodeType":"YulIdentifier","src":"27212:2:53"},"nativeSrc":"27212:30:53","nodeType":"YulFunctionCall","src":"27212:30:53"},"nativeSrc":"27209:117:53","nodeType":"YulIf","src":"27209:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27351:5:53","nodeType":"YulIdentifier","src":"27351:5:53"},{"kind":"number","nativeSrc":"27358:4:53","nodeType":"YulLiteral","src":"27358:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27347:3:53","nodeType":"YulIdentifier","src":"27347:3:53"},"nativeSrc":"27347:16:53","nodeType":"YulFunctionCall","src":"27347:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27399:9:53","nodeType":"YulIdentifier","src":"27399:9:53"},{"name":"offset","nativeSrc":"27410:6:53","nodeType":"YulIdentifier","src":"27410:6:53"}],"functionName":{"name":"add","nativeSrc":"27395:3:53","nodeType":"YulIdentifier","src":"27395:3:53"},"nativeSrc":"27395:22:53","nodeType":"YulFunctionCall","src":"27395:22:53"},{"name":"end","nativeSrc":"27419:3:53","nodeType":"YulIdentifier","src":"27419:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"27365:29:53","nodeType":"YulIdentifier","src":"27365:29:53"},"nativeSrc":"27365:58:53","nodeType":"YulFunctionCall","src":"27365:58:53"}],"functionName":{"name":"mstore","nativeSrc":"27340:6:53","nodeType":"YulIdentifier","src":"27340:6:53"},"nativeSrc":"27340:84:53","nodeType":"YulFunctionCall","src":"27340:84:53"},"nativeSrc":"27340:84:53","nodeType":"YulExpressionStatement","src":"27340:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"26691:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26752:9:53","nodeType":"YulTypedName","src":"26752:9:53","type":""},{"name":"end","nativeSrc":"26763:3:53","nodeType":"YulTypedName","src":"26763:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"26771:5:53","nodeType":"YulTypedName","src":"26771:5:53","type":""}],"src":"26691:751:53"},{"body":{"nativeSrc":"27545:454:53","nodeType":"YulBlock","src":"27545:454:53","statements":[{"body":{"nativeSrc":"27591:83:53","nodeType":"YulBlock","src":"27591:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"27593:77:53","nodeType":"YulIdentifier","src":"27593:77:53"},"nativeSrc":"27593:79:53","nodeType":"YulFunctionCall","src":"27593:79:53"},"nativeSrc":"27593:79:53","nodeType":"YulExpressionStatement","src":"27593:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27566:7:53","nodeType":"YulIdentifier","src":"27566:7:53"},{"name":"headStart","nativeSrc":"27575:9:53","nodeType":"YulIdentifier","src":"27575:9:53"}],"functionName":{"name":"sub","nativeSrc":"27562:3:53","nodeType":"YulIdentifier","src":"27562:3:53"},"nativeSrc":"27562:23:53","nodeType":"YulFunctionCall","src":"27562:23:53"},{"kind":"number","nativeSrc":"27587:2:53","nodeType":"YulLiteral","src":"27587:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27558:3:53","nodeType":"YulIdentifier","src":"27558:3:53"},"nativeSrc":"27558:32:53","nodeType":"YulFunctionCall","src":"27558:32:53"},"nativeSrc":"27555:119:53","nodeType":"YulIf","src":"27555:119:53"},{"nativeSrc":"27684:308:53","nodeType":"YulBlock","src":"27684:308:53","statements":[{"nativeSrc":"27699:45:53","nodeType":"YulVariableDeclaration","src":"27699:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27730:9:53","nodeType":"YulIdentifier","src":"27730:9:53"},{"kind":"number","nativeSrc":"27741:1:53","nodeType":"YulLiteral","src":"27741:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27726:3:53","nodeType":"YulIdentifier","src":"27726:3:53"},"nativeSrc":"27726:17:53","nodeType":"YulFunctionCall","src":"27726:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"27713:12:53","nodeType":"YulIdentifier","src":"27713:12:53"},"nativeSrc":"27713:31:53","nodeType":"YulFunctionCall","src":"27713:31:53"},"variables":[{"name":"offset","nativeSrc":"27703:6:53","nodeType":"YulTypedName","src":"27703:6:53","type":""}]},{"body":{"nativeSrc":"27791:83:53","nodeType":"YulBlock","src":"27791:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27793:77:53","nodeType":"YulIdentifier","src":"27793:77:53"},"nativeSrc":"27793:79:53","nodeType":"YulFunctionCall","src":"27793:79:53"},"nativeSrc":"27793:79:53","nodeType":"YulExpressionStatement","src":"27793:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27763:6:53","nodeType":"YulIdentifier","src":"27763:6:53"},{"kind":"number","nativeSrc":"27771:18:53","nodeType":"YulLiteral","src":"27771:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27760:2:53","nodeType":"YulIdentifier","src":"27760:2:53"},"nativeSrc":"27760:30:53","nodeType":"YulFunctionCall","src":"27760:30:53"},"nativeSrc":"27757:117:53","nodeType":"YulIf","src":"27757:117:53"},{"nativeSrc":"27888:94:53","nodeType":"YulAssignment","src":"27888:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27954:9:53","nodeType":"YulIdentifier","src":"27954:9:53"},{"name":"offset","nativeSrc":"27965:6:53","nodeType":"YulIdentifier","src":"27965:6:53"}],"functionName":{"name":"add","nativeSrc":"27950:3:53","nodeType":"YulIdentifier","src":"27950:3:53"},"nativeSrc":"27950:22:53","nodeType":"YulFunctionCall","src":"27950:22:53"},{"name":"dataEnd","nativeSrc":"27974:7:53","nodeType":"YulIdentifier","src":"27974:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"27898:51:53","nodeType":"YulIdentifier","src":"27898:51:53"},"nativeSrc":"27898:84:53","nodeType":"YulFunctionCall","src":"27898:84:53"},"variableNames":[{"name":"value0","nativeSrc":"27888:6:53","nodeType":"YulIdentifier","src":"27888:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"27448:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27515:9:53","nodeType":"YulTypedName","src":"27515:9:53","type":""},{"name":"dataEnd","nativeSrc":"27526:7:53","nodeType":"YulTypedName","src":"27526:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27538:6:53","nodeType":"YulTypedName","src":"27538:6:53","type":""}],"src":"27448:551:53"},{"body":{"nativeSrc":"28033:152:53","nodeType":"YulBlock","src":"28033:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28050:1:53","nodeType":"YulLiteral","src":"28050:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28053:77:53","nodeType":"YulLiteral","src":"28053:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"28043:6:53","nodeType":"YulIdentifier","src":"28043:6:53"},"nativeSrc":"28043:88:53","nodeType":"YulFunctionCall","src":"28043:88:53"},"nativeSrc":"28043:88:53","nodeType":"YulExpressionStatement","src":"28043:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28147:1:53","nodeType":"YulLiteral","src":"28147:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"28150:4:53","nodeType":"YulLiteral","src":"28150:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"28140:6:53","nodeType":"YulIdentifier","src":"28140:6:53"},"nativeSrc":"28140:15:53","nodeType":"YulFunctionCall","src":"28140:15:53"},"nativeSrc":"28140:15:53","nodeType":"YulExpressionStatement","src":"28140:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28171:1:53","nodeType":"YulLiteral","src":"28171:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28174:4:53","nodeType":"YulLiteral","src":"28174:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28164:6:53","nodeType":"YulIdentifier","src":"28164:6:53"},"nativeSrc":"28164:15:53","nodeType":"YulFunctionCall","src":"28164:15:53"},"nativeSrc":"28164:15:53","nodeType":"YulExpressionStatement","src":"28164:15:53"}]},"name":"panic_error_0x11","nativeSrc":"28005:180:53","nodeType":"YulFunctionDefinition","src":"28005:180:53"},{"body":{"nativeSrc":"28234:190:53","nodeType":"YulBlock","src":"28234:190:53","statements":[{"nativeSrc":"28244:33:53","nodeType":"YulAssignment","src":"28244:33:53","value":{"arguments":[{"name":"value","nativeSrc":"28271:5:53","nodeType":"YulIdentifier","src":"28271:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28253:17:53","nodeType":"YulIdentifier","src":"28253:17:53"},"nativeSrc":"28253:24:53","nodeType":"YulFunctionCall","src":"28253:24:53"},"variableNames":[{"name":"value","nativeSrc":"28244:5:53","nodeType":"YulIdentifier","src":"28244:5:53"}]},{"body":{"nativeSrc":"28367:22:53","nodeType":"YulBlock","src":"28367:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28369:16:53","nodeType":"YulIdentifier","src":"28369:16:53"},"nativeSrc":"28369:18:53","nodeType":"YulFunctionCall","src":"28369:18:53"},"nativeSrc":"28369:18:53","nodeType":"YulExpressionStatement","src":"28369:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"28292:5:53","nodeType":"YulIdentifier","src":"28292:5:53"},{"kind":"number","nativeSrc":"28299:66:53","nodeType":"YulLiteral","src":"28299:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"28289:2:53","nodeType":"YulIdentifier","src":"28289:2:53"},"nativeSrc":"28289:77:53","nodeType":"YulFunctionCall","src":"28289:77:53"},"nativeSrc":"28286:103:53","nodeType":"YulIf","src":"28286:103:53"},{"nativeSrc":"28398:20:53","nodeType":"YulAssignment","src":"28398:20:53","value":{"arguments":[{"name":"value","nativeSrc":"28409:5:53","nodeType":"YulIdentifier","src":"28409:5:53"},{"kind":"number","nativeSrc":"28416:1:53","nodeType":"YulLiteral","src":"28416:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28405:3:53","nodeType":"YulIdentifier","src":"28405:3:53"},"nativeSrc":"28405:13:53","nodeType":"YulFunctionCall","src":"28405:13:53"},"variableNames":[{"name":"ret","nativeSrc":"28398:3:53","nodeType":"YulIdentifier","src":"28398:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"28191:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28220:5:53","nodeType":"YulTypedName","src":"28220:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"28230:3:53","nodeType":"YulTypedName","src":"28230:3:53","type":""}],"src":"28191:233:53"},{"body":{"nativeSrc":"28483:32:53","nodeType":"YulBlock","src":"28483:32:53","statements":[{"nativeSrc":"28493:16:53","nodeType":"YulAssignment","src":"28493:16:53","value":{"name":"value","nativeSrc":"28504:5:53","nodeType":"YulIdentifier","src":"28504:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"28493:7:53","nodeType":"YulIdentifier","src":"28493:7:53"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"28430:85:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28465:5:53","nodeType":"YulTypedName","src":"28465:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"28475:7:53","nodeType":"YulTypedName","src":"28475:7:53","type":""}],"src":"28430:85:53"},{"body":{"nativeSrc":"28589:90:53","nodeType":"YulBlock","src":"28589:90:53","statements":[{"nativeSrc":"28599:74:53","nodeType":"YulAssignment","src":"28599:74:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"28665:5:53","nodeType":"YulIdentifier","src":"28665:5:53"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"28639:25:53","nodeType":"YulIdentifier","src":"28639:25:53"},"nativeSrc":"28639:32:53","nodeType":"YulFunctionCall","src":"28639:32:53"}],"functionName":{"name":"identity","nativeSrc":"28630:8:53","nodeType":"YulIdentifier","src":"28630:8:53"},"nativeSrc":"28630:42:53","nodeType":"YulFunctionCall","src":"28630:42:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28612:17:53","nodeType":"YulIdentifier","src":"28612:17:53"},"nativeSrc":"28612:61:53","nodeType":"YulFunctionCall","src":"28612:61:53"},"variableNames":[{"name":"converted","nativeSrc":"28599:9:53","nodeType":"YulIdentifier","src":"28599:9:53"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint256","nativeSrc":"28521:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28569:5:53","nodeType":"YulTypedName","src":"28569:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"28579:9:53","nodeType":"YulTypedName","src":"28579:9:53","type":""}],"src":"28521:158:53"},{"body":{"nativeSrc":"28758:74:53","nodeType":"YulBlock","src":"28758:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"28775:3:53","nodeType":"YulIdentifier","src":"28775:3:53"},{"arguments":[{"name":"value","nativeSrc":"28819:5:53","nodeType":"YulIdentifier","src":"28819:5:53"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint256","nativeSrc":"28780:38:53","nodeType":"YulIdentifier","src":"28780:38:53"},"nativeSrc":"28780:45:53","nodeType":"YulFunctionCall","src":"28780:45:53"}],"functionName":{"name":"mstore","nativeSrc":"28768:6:53","nodeType":"YulIdentifier","src":"28768:6:53"},"nativeSrc":"28768:58:53","nodeType":"YulFunctionCall","src":"28768:58:53"},"nativeSrc":"28768:58:53","nodeType":"YulExpressionStatement","src":"28768:58:53"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack","nativeSrc":"28685:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28746:5:53","nodeType":"YulTypedName","src":"28746:5:53","type":""},{"name":"pos","nativeSrc":"28753:3:53","nodeType":"YulTypedName","src":"28753:3:53","type":""}],"src":"28685:147:53"},{"body":{"nativeSrc":"29074:531:53","nodeType":"YulBlock","src":"29074:531:53","statements":[{"nativeSrc":"29084:27:53","nodeType":"YulAssignment","src":"29084:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"29096:9:53","nodeType":"YulIdentifier","src":"29096:9:53"},{"kind":"number","nativeSrc":"29107:3:53","nodeType":"YulLiteral","src":"29107:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"29092:3:53","nodeType":"YulIdentifier","src":"29092:3:53"},"nativeSrc":"29092:19:53","nodeType":"YulFunctionCall","src":"29092:19:53"},"variableNames":[{"name":"tail","nativeSrc":"29084:4:53","nodeType":"YulIdentifier","src":"29084:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29165:6:53","nodeType":"YulIdentifier","src":"29165:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29178:9:53","nodeType":"YulIdentifier","src":"29178:9:53"},{"kind":"number","nativeSrc":"29189:1:53","nodeType":"YulLiteral","src":"29189:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29174:3:53","nodeType":"YulIdentifier","src":"29174:3:53"},"nativeSrc":"29174:17:53","nodeType":"YulFunctionCall","src":"29174:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29121:43:53","nodeType":"YulIdentifier","src":"29121:43:53"},"nativeSrc":"29121:71:53","nodeType":"YulFunctionCall","src":"29121:71:53"},"nativeSrc":"29121:71:53","nodeType":"YulExpressionStatement","src":"29121:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29246:6:53","nodeType":"YulIdentifier","src":"29246:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29259:9:53","nodeType":"YulIdentifier","src":"29259:9:53"},{"kind":"number","nativeSrc":"29270:2:53","nodeType":"YulLiteral","src":"29270:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29255:3:53","nodeType":"YulIdentifier","src":"29255:3:53"},"nativeSrc":"29255:18:53","nodeType":"YulFunctionCall","src":"29255:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29202:43:53","nodeType":"YulIdentifier","src":"29202:43:53"},"nativeSrc":"29202:72:53","nodeType":"YulFunctionCall","src":"29202:72:53"},"nativeSrc":"29202:72:53","nodeType":"YulExpressionStatement","src":"29202:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"29328:6:53","nodeType":"YulIdentifier","src":"29328:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29341:9:53","nodeType":"YulIdentifier","src":"29341:9:53"},{"kind":"number","nativeSrc":"29352:2:53","nodeType":"YulLiteral","src":"29352:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29337:3:53","nodeType":"YulIdentifier","src":"29337:3:53"},"nativeSrc":"29337:18:53","nodeType":"YulFunctionCall","src":"29337:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"29284:43:53","nodeType":"YulIdentifier","src":"29284:43:53"},"nativeSrc":"29284:72:53","nodeType":"YulFunctionCall","src":"29284:72:53"},"nativeSrc":"29284:72:53","nodeType":"YulExpressionStatement","src":"29284:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"29418:6:53","nodeType":"YulIdentifier","src":"29418:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"29431:9:53","nodeType":"YulIdentifier","src":"29431:9:53"},{"kind":"number","nativeSrc":"29442:2:53","nodeType":"YulLiteral","src":"29442:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29427:3:53","nodeType":"YulIdentifier","src":"29427:3:53"},"nativeSrc":"29427:18:53","nodeType":"YulFunctionCall","src":"29427:18:53"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack","nativeSrc":"29366:51:53","nodeType":"YulIdentifier","src":"29366:51:53"},"nativeSrc":"29366:80:53","nodeType":"YulFunctionCall","src":"29366:80:53"},"nativeSrc":"29366:80:53","nodeType":"YulExpressionStatement","src":"29366:80:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29467:9:53","nodeType":"YulIdentifier","src":"29467:9:53"},{"kind":"number","nativeSrc":"29478:3:53","nodeType":"YulLiteral","src":"29478:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29463:3:53","nodeType":"YulIdentifier","src":"29463:3:53"},"nativeSrc":"29463:19:53","nodeType":"YulFunctionCall","src":"29463:19:53"},{"arguments":[{"name":"tail","nativeSrc":"29488:4:53","nodeType":"YulIdentifier","src":"29488:4:53"},{"name":"headStart","nativeSrc":"29494:9:53","nodeType":"YulIdentifier","src":"29494:9:53"}],"functionName":{"name":"sub","nativeSrc":"29484:3:53","nodeType":"YulIdentifier","src":"29484:3:53"},"nativeSrc":"29484:20:53","nodeType":"YulFunctionCall","src":"29484:20:53"}],"functionName":{"name":"mstore","nativeSrc":"29456:6:53","nodeType":"YulIdentifier","src":"29456:6:53"},"nativeSrc":"29456:49:53","nodeType":"YulFunctionCall","src":"29456:49:53"},"nativeSrc":"29456:49:53","nodeType":"YulExpressionStatement","src":"29456:49:53"},{"nativeSrc":"29514:84:53","nodeType":"YulAssignment","src":"29514:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"29584:6:53","nodeType":"YulIdentifier","src":"29584:6:53"},{"name":"tail","nativeSrc":"29593:4:53","nodeType":"YulIdentifier","src":"29593:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"29522:61:53","nodeType":"YulIdentifier","src":"29522:61:53"},"nativeSrc":"29522:76:53","nodeType":"YulFunctionCall","src":"29522:76:53"},"variableNames":[{"name":"tail","nativeSrc":"29514:4:53","nodeType":"YulIdentifier","src":"29514:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_rational_1_by_1_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"28838:767:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29014:9:53","nodeType":"YulTypedName","src":"29014:9:53","type":""},{"name":"value4","nativeSrc":"29026:6:53","nodeType":"YulTypedName","src":"29026:6:53","type":""},{"name":"value3","nativeSrc":"29034:6:53","nodeType":"YulTypedName","src":"29034:6:53","type":""},{"name":"value2","nativeSrc":"29042:6:53","nodeType":"YulTypedName","src":"29042:6:53","type":""},{"name":"value1","nativeSrc":"29050:6:53","nodeType":"YulTypedName","src":"29050:6:53","type":""},{"name":"value0","nativeSrc":"29058:6:53","nodeType":"YulTypedName","src":"29058:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29069:4:53","nodeType":"YulTypedName","src":"29069:4:53","type":""}],"src":"28838:767:53"},{"body":{"nativeSrc":"29653:52:53","nodeType":"YulBlock","src":"29653:52:53","statements":[{"nativeSrc":"29663:35:53","nodeType":"YulAssignment","src":"29663:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"29688:2:53","nodeType":"YulLiteral","src":"29688:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"29692:5:53","nodeType":"YulIdentifier","src":"29692:5:53"}],"functionName":{"name":"shl","nativeSrc":"29684:3:53","nodeType":"YulIdentifier","src":"29684:3:53"},"nativeSrc":"29684:14:53","nodeType":"YulFunctionCall","src":"29684:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"29663:8:53","nodeType":"YulIdentifier","src":"29663:8:53"}]}]},"name":"shift_left_96","nativeSrc":"29611:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29634:5:53","nodeType":"YulTypedName","src":"29634:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"29644:8:53","nodeType":"YulTypedName","src":"29644:8:53","type":""}],"src":"29611:94:53"},{"body":{"nativeSrc":"29758:47:53","nodeType":"YulBlock","src":"29758:47:53","statements":[{"nativeSrc":"29768:31:53","nodeType":"YulAssignment","src":"29768:31:53","value":{"arguments":[{"name":"value","nativeSrc":"29793:5:53","nodeType":"YulIdentifier","src":"29793:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"29779:13:53","nodeType":"YulIdentifier","src":"29779:13:53"},"nativeSrc":"29779:20:53","nodeType":"YulFunctionCall","src":"29779:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"29768:7:53","nodeType":"YulIdentifier","src":"29768:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"29711:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29740:5:53","nodeType":"YulTypedName","src":"29740:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"29750:7:53","nodeType":"YulTypedName","src":"29750:7:53","type":""}],"src":"29711:94:53"},{"body":{"nativeSrc":"29858:53:53","nodeType":"YulBlock","src":"29858:53:53","statements":[{"nativeSrc":"29868:37:53","nodeType":"YulAssignment","src":"29868:37:53","value":{"arguments":[{"name":"value","nativeSrc":"29899:5:53","nodeType":"YulIdentifier","src":"29899:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"29879:19:53","nodeType":"YulIdentifier","src":"29879:19:53"},"nativeSrc":"29879:26:53","nodeType":"YulFunctionCall","src":"29879:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"29868:7:53","nodeType":"YulIdentifier","src":"29868:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"29811:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29840:5:53","nodeType":"YulTypedName","src":"29840:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"29850:7:53","nodeType":"YulTypedName","src":"29850:7:53","type":""}],"src":"29811:100:53"},{"body":{"nativeSrc":"30017:104:53","nodeType":"YulBlock","src":"30017:104:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30034:3:53","nodeType":"YulIdentifier","src":"30034:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30107:5:53","nodeType":"YulIdentifier","src":"30107:5:53"}],"functionName":{"name":"convert_t_contract$_IERC1155_$1190_to_t_address","nativeSrc":"30059:47:53","nodeType":"YulIdentifier","src":"30059:47:53"},"nativeSrc":"30059:54:53","nodeType":"YulFunctionCall","src":"30059:54:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"30039:19:53","nodeType":"YulIdentifier","src":"30039:19:53"},"nativeSrc":"30039:75:53","nodeType":"YulFunctionCall","src":"30039:75:53"}],"functionName":{"name":"mstore","nativeSrc":"30027:6:53","nodeType":"YulIdentifier","src":"30027:6:53"},"nativeSrc":"30027:88:53","nodeType":"YulFunctionCall","src":"30027:88:53"},"nativeSrc":"30027:88:53","nodeType":"YulExpressionStatement","src":"30027:88:53"}]},"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"29917:204:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30005:5:53","nodeType":"YulTypedName","src":"30005:5:53","type":""},{"name":"pos","nativeSrc":"30012:3:53","nodeType":"YulTypedName","src":"30012:3:53","type":""}],"src":"29917:204:53"},{"body":{"nativeSrc":"30210:74:53","nodeType":"YulBlock","src":"30210:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30227:3:53","nodeType":"YulIdentifier","src":"30227:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30270:5:53","nodeType":"YulIdentifier","src":"30270:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"30252:17:53","nodeType":"YulIdentifier","src":"30252:17:53"},"nativeSrc":"30252:24:53","nodeType":"YulFunctionCall","src":"30252:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"30232:19:53","nodeType":"YulIdentifier","src":"30232:19:53"},"nativeSrc":"30232:45:53","nodeType":"YulFunctionCall","src":"30232:45:53"}],"functionName":{"name":"mstore","nativeSrc":"30220:6:53","nodeType":"YulIdentifier","src":"30220:6:53"},"nativeSrc":"30220:58:53","nodeType":"YulFunctionCall","src":"30220:58:53"},"nativeSrc":"30220:58:53","nodeType":"YulExpressionStatement","src":"30220:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"30127:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30198:5:53","nodeType":"YulTypedName","src":"30198:5:53","type":""},{"name":"pos","nativeSrc":"30205:3:53","nodeType":"YulTypedName","src":"30205:3:53","type":""}],"src":"30127:157:53"},{"body":{"nativeSrc":"30337:32:53","nodeType":"YulBlock","src":"30337:32:53","statements":[{"nativeSrc":"30347:16:53","nodeType":"YulAssignment","src":"30347:16:53","value":{"name":"value","nativeSrc":"30358:5:53","nodeType":"YulIdentifier","src":"30358:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"30347:7:53","nodeType":"YulIdentifier","src":"30347:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"30290:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30319:5:53","nodeType":"YulTypedName","src":"30319:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"30329:7:53","nodeType":"YulTypedName","src":"30329:7:53","type":""}],"src":"30290:79:53"},{"body":{"nativeSrc":"30458:74:53","nodeType":"YulBlock","src":"30458:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30475:3:53","nodeType":"YulIdentifier","src":"30475:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30518:5:53","nodeType":"YulIdentifier","src":"30518:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"30500:17:53","nodeType":"YulIdentifier","src":"30500:17:53"},"nativeSrc":"30500:24:53","nodeType":"YulFunctionCall","src":"30500:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"30480:19:53","nodeType":"YulIdentifier","src":"30480:19:53"},"nativeSrc":"30480:45:53","nodeType":"YulFunctionCall","src":"30480:45:53"}],"functionName":{"name":"mstore","nativeSrc":"30468:6:53","nodeType":"YulIdentifier","src":"30468:6:53"},"nativeSrc":"30468:58:53","nodeType":"YulFunctionCall","src":"30468:58:53"},"nativeSrc":"30468:58:53","nodeType":"YulExpressionStatement","src":"30468:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"30375:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30446:5:53","nodeType":"YulTypedName","src":"30446:5:53","type":""},{"name":"pos","nativeSrc":"30453:3:53","nodeType":"YulTypedName","src":"30453:3:53","type":""}],"src":"30375:157:53"},{"body":{"nativeSrc":"30651:34:53","nodeType":"YulBlock","src":"30651:34:53","statements":[{"nativeSrc":"30661:18:53","nodeType":"YulAssignment","src":"30661:18:53","value":{"name":"pos","nativeSrc":"30676:3:53","nodeType":"YulIdentifier","src":"30676:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"30661:11:53","nodeType":"YulIdentifier","src":"30661:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30538:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30623:3:53","nodeType":"YulTypedName","src":"30623:3:53","type":""},{"name":"length","nativeSrc":"30628:6:53","nodeType":"YulTypedName","src":"30628:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"30639:11:53","nodeType":"YulTypedName","src":"30639:11:53","type":""}],"src":"30538:147:53"},{"body":{"nativeSrc":"30799:278:53","nodeType":"YulBlock","src":"30799:278:53","statements":[{"nativeSrc":"30809:52:53","nodeType":"YulVariableDeclaration","src":"30809:52:53","value":{"arguments":[{"name":"value","nativeSrc":"30855:5:53","nodeType":"YulIdentifier","src":"30855:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"30823:31:53","nodeType":"YulIdentifier","src":"30823:31:53"},"nativeSrc":"30823:38:53","nodeType":"YulFunctionCall","src":"30823:38:53"},"variables":[{"name":"length","nativeSrc":"30813:6:53","nodeType":"YulTypedName","src":"30813:6:53","type":""}]},{"nativeSrc":"30870:95:53","nodeType":"YulAssignment","src":"30870:95:53","value":{"arguments":[{"name":"pos","nativeSrc":"30953:3:53","nodeType":"YulIdentifier","src":"30953:3:53"},{"name":"length","nativeSrc":"30958:6:53","nodeType":"YulIdentifier","src":"30958:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30877:75:53","nodeType":"YulIdentifier","src":"30877:75:53"},"nativeSrc":"30877:88:53","nodeType":"YulFunctionCall","src":"30877:88:53"},"variableNames":[{"name":"pos","nativeSrc":"30870:3:53","nodeType":"YulIdentifier","src":"30870:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31013:5:53","nodeType":"YulIdentifier","src":"31013:5:53"},{"kind":"number","nativeSrc":"31020:4:53","nodeType":"YulLiteral","src":"31020:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31009:3:53","nodeType":"YulIdentifier","src":"31009:3:53"},"nativeSrc":"31009:16:53","nodeType":"YulFunctionCall","src":"31009:16:53"},{"name":"pos","nativeSrc":"31027:3:53","nodeType":"YulIdentifier","src":"31027:3:53"},{"name":"length","nativeSrc":"31032:6:53","nodeType":"YulIdentifier","src":"31032:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"30974:34:53","nodeType":"YulIdentifier","src":"30974:34:53"},"nativeSrc":"30974:65:53","nodeType":"YulFunctionCall","src":"30974:65:53"},"nativeSrc":"30974:65:53","nodeType":"YulExpressionStatement","src":"30974:65:53"},{"nativeSrc":"31048:23:53","nodeType":"YulAssignment","src":"31048:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"31059:3:53","nodeType":"YulIdentifier","src":"31059:3:53"},{"name":"length","nativeSrc":"31064:6:53","nodeType":"YulIdentifier","src":"31064:6:53"}],"functionName":{"name":"add","nativeSrc":"31055:3:53","nodeType":"YulIdentifier","src":"31055:3:53"},"nativeSrc":"31055:16:53","nodeType":"YulFunctionCall","src":"31055:16:53"},"variableNames":[{"name":"end","nativeSrc":"31048:3:53","nodeType":"YulIdentifier","src":"31048:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30691:386:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30780:5:53","nodeType":"YulTypedName","src":"30780:5:53","type":""},{"name":"pos","nativeSrc":"30787:3:53","nodeType":"YulTypedName","src":"30787:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30795:3:53","nodeType":"YulTypedName","src":"30795:3:53","type":""}],"src":"30691:386:53"},{"body":{"nativeSrc":"31346:606:53","nodeType":"YulBlock","src":"31346:606:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"31436:6:53","nodeType":"YulIdentifier","src":"31436:6:53"},{"name":"pos","nativeSrc":"31445:3:53","nodeType":"YulIdentifier","src":"31445:3:53"}],"functionName":{"name":"abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"31357:78:53","nodeType":"YulIdentifier","src":"31357:78:53"},"nativeSrc":"31357:92:53","nodeType":"YulFunctionCall","src":"31357:92:53"},"nativeSrc":"31357:92:53","nodeType":"YulExpressionStatement","src":"31357:92:53"},{"nativeSrc":"31458:19:53","nodeType":"YulAssignment","src":"31458:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31469:3:53","nodeType":"YulIdentifier","src":"31469:3:53"},{"kind":"number","nativeSrc":"31474:2:53","nodeType":"YulLiteral","src":"31474:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"31465:3:53","nodeType":"YulIdentifier","src":"31465:3:53"},"nativeSrc":"31465:12:53","nodeType":"YulFunctionCall","src":"31465:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31458:3:53","nodeType":"YulIdentifier","src":"31458:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"31549:6:53","nodeType":"YulIdentifier","src":"31549:6:53"},{"name":"pos","nativeSrc":"31558:3:53","nodeType":"YulIdentifier","src":"31558:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"31487:61:53","nodeType":"YulIdentifier","src":"31487:61:53"},"nativeSrc":"31487:75:53","nodeType":"YulFunctionCall","src":"31487:75:53"},"nativeSrc":"31487:75:53","nodeType":"YulExpressionStatement","src":"31487:75:53"},{"nativeSrc":"31571:19:53","nodeType":"YulAssignment","src":"31571:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31582:3:53","nodeType":"YulIdentifier","src":"31582:3:53"},{"kind":"number","nativeSrc":"31587:2:53","nodeType":"YulLiteral","src":"31587:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"31578:3:53","nodeType":"YulIdentifier","src":"31578:3:53"},"nativeSrc":"31578:12:53","nodeType":"YulFunctionCall","src":"31578:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31571:3:53","nodeType":"YulIdentifier","src":"31571:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"31662:6:53","nodeType":"YulIdentifier","src":"31662:6:53"},{"name":"pos","nativeSrc":"31671:3:53","nodeType":"YulIdentifier","src":"31671:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"31600:61:53","nodeType":"YulIdentifier","src":"31600:61:53"},"nativeSrc":"31600:75:53","nodeType":"YulFunctionCall","src":"31600:75:53"},"nativeSrc":"31600:75:53","nodeType":"YulExpressionStatement","src":"31600:75:53"},{"nativeSrc":"31684:19:53","nodeType":"YulAssignment","src":"31684:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31695:3:53","nodeType":"YulIdentifier","src":"31695:3:53"},{"kind":"number","nativeSrc":"31700:2:53","nodeType":"YulLiteral","src":"31700:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31691:3:53","nodeType":"YulIdentifier","src":"31691:3:53"},"nativeSrc":"31691:12:53","nodeType":"YulFunctionCall","src":"31691:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31684:3:53","nodeType":"YulIdentifier","src":"31684:3:53"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"31775:6:53","nodeType":"YulIdentifier","src":"31775:6:53"},{"name":"pos","nativeSrc":"31784:3:53","nodeType":"YulIdentifier","src":"31784:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"31713:61:53","nodeType":"YulIdentifier","src":"31713:61:53"},"nativeSrc":"31713:75:53","nodeType":"YulFunctionCall","src":"31713:75:53"},"nativeSrc":"31713:75:53","nodeType":"YulExpressionStatement","src":"31713:75:53"},{"nativeSrc":"31797:19:53","nodeType":"YulAssignment","src":"31797:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31808:3:53","nodeType":"YulIdentifier","src":"31808:3:53"},{"kind":"number","nativeSrc":"31813:2:53","nodeType":"YulLiteral","src":"31813:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31804:3:53","nodeType":"YulIdentifier","src":"31804:3:53"},"nativeSrc":"31804:12:53","nodeType":"YulFunctionCall","src":"31804:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31797:3:53","nodeType":"YulIdentifier","src":"31797:3:53"}]},{"nativeSrc":"31826:100:53","nodeType":"YulAssignment","src":"31826:100:53","value":{"arguments":[{"name":"value4","nativeSrc":"31913:6:53","nodeType":"YulIdentifier","src":"31913:6:53"},{"name":"pos","nativeSrc":"31922:3:53","nodeType":"YulIdentifier","src":"31922:3:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31833:79:53","nodeType":"YulIdentifier","src":"31833:79:53"},"nativeSrc":"31833:93:53","nodeType":"YulFunctionCall","src":"31833:93:53"},"variableNames":[{"name":"pos","nativeSrc":"31826:3:53","nodeType":"YulIdentifier","src":"31826:3:53"}]},{"nativeSrc":"31936:10:53","nodeType":"YulAssignment","src":"31936:10:53","value":{"name":"pos","nativeSrc":"31943:3:53","nodeType":"YulIdentifier","src":"31943:3:53"},"variableNames":[{"name":"end","nativeSrc":"31936:3:53","nodeType":"YulIdentifier","src":"31936:3:53"}]}]},"name":"abi_encode_tuple_packed_t_contract$_IERC1155_$1190_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"31083:869:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31293:3:53","nodeType":"YulTypedName","src":"31293:3:53","type":""},{"name":"value4","nativeSrc":"31299:6:53","nodeType":"YulTypedName","src":"31299:6:53","type":""},{"name":"value3","nativeSrc":"31307:6:53","nodeType":"YulTypedName","src":"31307:6:53","type":""},{"name":"value2","nativeSrc":"31315:6:53","nodeType":"YulTypedName","src":"31315:6:53","type":""},{"name":"value1","nativeSrc":"31323:6:53","nodeType":"YulTypedName","src":"31323:6:53","type":""},{"name":"value0","nativeSrc":"31331:6:53","nodeType":"YulTypedName","src":"31331:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31342:3:53","nodeType":"YulTypedName","src":"31342:3:53","type":""}],"src":"31083:869:53"},{"body":{"nativeSrc":"32164:482:53","nodeType":"YulBlock","src":"32164:482:53","statements":[{"nativeSrc":"32174:26:53","nodeType":"YulVariableDeclaration","src":"32174:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"32190:3:53","nodeType":"YulIdentifier","src":"32190:3:53"},{"kind":"number","nativeSrc":"32195:4:53","nodeType":"YulLiteral","src":"32195:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"32186:3:53","nodeType":"YulIdentifier","src":"32186:3:53"},"nativeSrc":"32186:14:53","nodeType":"YulFunctionCall","src":"32186:14:53"},"variables":[{"name":"tail","nativeSrc":"32178:4:53","nodeType":"YulTypedName","src":"32178:4:53","type":""}]},{"nativeSrc":"32210:166:53","nodeType":"YulBlock","src":"32210:166:53","statements":[{"nativeSrc":"32247:43:53","nodeType":"YulVariableDeclaration","src":"32247:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32277:5:53","nodeType":"YulIdentifier","src":"32277:5:53"},{"kind":"number","nativeSrc":"32284:4:53","nodeType":"YulLiteral","src":"32284:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"32273:3:53","nodeType":"YulIdentifier","src":"32273:3:53"},"nativeSrc":"32273:16:53","nodeType":"YulFunctionCall","src":"32273:16:53"}],"functionName":{"name":"mload","nativeSrc":"32267:5:53","nodeType":"YulIdentifier","src":"32267:5:53"},"nativeSrc":"32267:23:53","nodeType":"YulFunctionCall","src":"32267:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"32251:12:53","nodeType":"YulTypedName","src":"32251:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"32337:12:53","nodeType":"YulIdentifier","src":"32337:12:53"},{"arguments":[{"name":"pos","nativeSrc":"32355:3:53","nodeType":"YulIdentifier","src":"32355:3:53"},{"kind":"number","nativeSrc":"32360:4:53","nodeType":"YulLiteral","src":"32360:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"32351:3:53","nodeType":"YulIdentifier","src":"32351:3:53"},"nativeSrc":"32351:14:53","nodeType":"YulFunctionCall","src":"32351:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"32303:33:53","nodeType":"YulIdentifier","src":"32303:33:53"},"nativeSrc":"32303:63:53","nodeType":"YulFunctionCall","src":"32303:63:53"},"nativeSrc":"32303:63:53","nodeType":"YulExpressionStatement","src":"32303:63:53"}]},{"nativeSrc":"32386:233:53","nodeType":"YulBlock","src":"32386:233:53","statements":[{"nativeSrc":"32421:43:53","nodeType":"YulVariableDeclaration","src":"32421:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32451:5:53","nodeType":"YulIdentifier","src":"32451:5:53"},{"kind":"number","nativeSrc":"32458:4:53","nodeType":"YulLiteral","src":"32458:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32447:3:53","nodeType":"YulIdentifier","src":"32447:3:53"},"nativeSrc":"32447:16:53","nodeType":"YulFunctionCall","src":"32447:16:53"}],"functionName":{"name":"mload","nativeSrc":"32441:5:53","nodeType":"YulIdentifier","src":"32441:5:53"},"nativeSrc":"32441:23:53","nodeType":"YulFunctionCall","src":"32441:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"32425:12:53","nodeType":"YulTypedName","src":"32425:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32489:3:53","nodeType":"YulIdentifier","src":"32489:3:53"},{"kind":"number","nativeSrc":"32494:4:53","nodeType":"YulLiteral","src":"32494:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32485:3:53","nodeType":"YulIdentifier","src":"32485:3:53"},"nativeSrc":"32485:14:53","nodeType":"YulFunctionCall","src":"32485:14:53"},{"arguments":[{"name":"tail","nativeSrc":"32505:4:53","nodeType":"YulIdentifier","src":"32505:4:53"},{"name":"pos","nativeSrc":"32511:3:53","nodeType":"YulIdentifier","src":"32511:3:53"}],"functionName":{"name":"sub","nativeSrc":"32501:3:53","nodeType":"YulIdentifier","src":"32501:3:53"},"nativeSrc":"32501:14:53","nodeType":"YulFunctionCall","src":"32501:14:53"}],"functionName":{"name":"mstore","nativeSrc":"32478:6:53","nodeType":"YulIdentifier","src":"32478:6:53"},"nativeSrc":"32478:38:53","nodeType":"YulFunctionCall","src":"32478:38:53"},"nativeSrc":"32478:38:53","nodeType":"YulExpressionStatement","src":"32478:38:53"},{"nativeSrc":"32529:79:53","nodeType":"YulAssignment","src":"32529:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"32589:12:53","nodeType":"YulIdentifier","src":"32589:12:53"},{"name":"tail","nativeSrc":"32603:4:53","nodeType":"YulIdentifier","src":"32603:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"32537:51:53","nodeType":"YulIdentifier","src":"32537:51:53"},"nativeSrc":"32537:71:53","nodeType":"YulFunctionCall","src":"32537:71:53"},"variableNames":[{"name":"tail","nativeSrc":"32529:4:53","nodeType":"YulIdentifier","src":"32529:4:53"}]}]},{"nativeSrc":"32629:11:53","nodeType":"YulAssignment","src":"32629:11:53","value":{"name":"tail","nativeSrc":"32636:4:53","nodeType":"YulIdentifier","src":"32636:4:53"},"variableNames":[{"name":"end","nativeSrc":"32629:3:53","nodeType":"YulIdentifier","src":"32629:3:53"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"32028:618:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"32143:5:53","nodeType":"YulTypedName","src":"32143:5:53","type":""},{"name":"pos","nativeSrc":"32150:3:53","nodeType":"YulTypedName","src":"32150:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32159:3:53","nodeType":"YulTypedName","src":"32159:3:53","type":""}],"src":"32028:618:53"},{"body":{"nativeSrc":"32812:237:53","nodeType":"YulBlock","src":"32812:237:53","statements":[{"nativeSrc":"32822:26:53","nodeType":"YulAssignment","src":"32822:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"32834:9:53","nodeType":"YulIdentifier","src":"32834:9:53"},{"kind":"number","nativeSrc":"32845:2:53","nodeType":"YulLiteral","src":"32845:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32830:3:53","nodeType":"YulIdentifier","src":"32830:3:53"},"nativeSrc":"32830:18:53","nodeType":"YulFunctionCall","src":"32830:18:53"},"variableNames":[{"name":"tail","nativeSrc":"32822:4:53","nodeType":"YulIdentifier","src":"32822:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32869:9:53","nodeType":"YulIdentifier","src":"32869:9:53"},{"kind":"number","nativeSrc":"32880:1:53","nodeType":"YulLiteral","src":"32880:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32865:3:53","nodeType":"YulIdentifier","src":"32865:3:53"},"nativeSrc":"32865:17:53","nodeType":"YulFunctionCall","src":"32865:17:53"},{"arguments":[{"name":"tail","nativeSrc":"32888:4:53","nodeType":"YulIdentifier","src":"32888:4:53"},{"name":"headStart","nativeSrc":"32894:9:53","nodeType":"YulIdentifier","src":"32894:9:53"}],"functionName":{"name":"sub","nativeSrc":"32884:3:53","nodeType":"YulIdentifier","src":"32884:3:53"},"nativeSrc":"32884:20:53","nodeType":"YulFunctionCall","src":"32884:20:53"}],"functionName":{"name":"mstore","nativeSrc":"32858:6:53","nodeType":"YulIdentifier","src":"32858:6:53"},"nativeSrc":"32858:47:53","nodeType":"YulFunctionCall","src":"32858:47:53"},"nativeSrc":"32858:47:53","nodeType":"YulExpressionStatement","src":"32858:47:53"},{"nativeSrc":"32914:128:53","nodeType":"YulAssignment","src":"32914:128:53","value":{"arguments":[{"name":"value0","nativeSrc":"33028:6:53","nodeType":"YulIdentifier","src":"33028:6:53"},{"name":"tail","nativeSrc":"33037:4:53","nodeType":"YulIdentifier","src":"33037:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"32922:105:53","nodeType":"YulIdentifier","src":"32922:105:53"},"nativeSrc":"32922:120:53","nodeType":"YulFunctionCall","src":"32922:120:53"},"variableNames":[{"name":"tail","nativeSrc":"32914:4:53","nodeType":"YulIdentifier","src":"32914:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed","nativeSrc":"32652:397:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32784:9:53","nodeType":"YulTypedName","src":"32784:9:53","type":""},{"name":"value0","nativeSrc":"32796:6:53","nodeType":"YulTypedName","src":"32796:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32807:4:53","nodeType":"YulTypedName","src":"32807:4:53","type":""}],"src":"32652:397:53"},{"body":{"nativeSrc":"33199:275:53","nodeType":"YulBlock","src":"33199:275:53","statements":[{"nativeSrc":"33209:26:53","nodeType":"YulAssignment","src":"33209:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33221:9:53","nodeType":"YulIdentifier","src":"33221:9:53"},{"kind":"number","nativeSrc":"33232:2:53","nodeType":"YulLiteral","src":"33232:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33217:3:53","nodeType":"YulIdentifier","src":"33217:3:53"},"nativeSrc":"33217:18:53","nodeType":"YulFunctionCall","src":"33217:18:53"},"variableNames":[{"name":"tail","nativeSrc":"33209:4:53","nodeType":"YulIdentifier","src":"33209:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"33289:6:53","nodeType":"YulIdentifier","src":"33289:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"33302:9:53","nodeType":"YulIdentifier","src":"33302:9:53"},{"kind":"number","nativeSrc":"33313:1:53","nodeType":"YulLiteral","src":"33313:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33298:3:53","nodeType":"YulIdentifier","src":"33298:3:53"},"nativeSrc":"33298:17:53","nodeType":"YulFunctionCall","src":"33298:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"33245:43:53","nodeType":"YulIdentifier","src":"33245:43:53"},"nativeSrc":"33245:71:53","nodeType":"YulFunctionCall","src":"33245:71:53"},"nativeSrc":"33245:71:53","nodeType":"YulExpressionStatement","src":"33245:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33337:9:53","nodeType":"YulIdentifier","src":"33337:9:53"},{"kind":"number","nativeSrc":"33348:2:53","nodeType":"YulLiteral","src":"33348:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33333:3:53","nodeType":"YulIdentifier","src":"33333:3:53"},"nativeSrc":"33333:18:53","nodeType":"YulFunctionCall","src":"33333:18:53"},{"arguments":[{"name":"tail","nativeSrc":"33357:4:53","nodeType":"YulIdentifier","src":"33357:4:53"},{"name":"headStart","nativeSrc":"33363:9:53","nodeType":"YulIdentifier","src":"33363:9:53"}],"functionName":{"name":"sub","nativeSrc":"33353:3:53","nodeType":"YulIdentifier","src":"33353:3:53"},"nativeSrc":"33353:20:53","nodeType":"YulFunctionCall","src":"33353:20:53"}],"functionName":{"name":"mstore","nativeSrc":"33326:6:53","nodeType":"YulIdentifier","src":"33326:6:53"},"nativeSrc":"33326:48:53","nodeType":"YulFunctionCall","src":"33326:48:53"},"nativeSrc":"33326:48:53","nodeType":"YulExpressionStatement","src":"33326:48:53"},{"nativeSrc":"33383:84:53","nodeType":"YulAssignment","src":"33383:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"33453:6:53","nodeType":"YulIdentifier","src":"33453:6:53"},{"name":"tail","nativeSrc":"33462:4:53","nodeType":"YulIdentifier","src":"33462:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"33391:61:53","nodeType":"YulIdentifier","src":"33391:61:53"},"nativeSrc":"33391:76:53","nodeType":"YulFunctionCall","src":"33391:76:53"},"variableNames":[{"name":"tail","nativeSrc":"33383:4:53","nodeType":"YulIdentifier","src":"33383:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"33055:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33163:9:53","nodeType":"YulTypedName","src":"33163:9:53","type":""},{"name":"value1","nativeSrc":"33175:6:53","nodeType":"YulTypedName","src":"33175:6:53","type":""},{"name":"value0","nativeSrc":"33183:6:53","nodeType":"YulTypedName","src":"33183:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33194:4:53","nodeType":"YulTypedName","src":"33194:4:53","type":""}],"src":"33055:419:53"},{"body":{"nativeSrc":"33525:149:53","nodeType":"YulBlock","src":"33525:149:53","statements":[{"nativeSrc":"33535:25:53","nodeType":"YulAssignment","src":"33535:25:53","value":{"arguments":[{"name":"x","nativeSrc":"33558:1:53","nodeType":"YulIdentifier","src":"33558:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33540:17:53","nodeType":"YulIdentifier","src":"33540:17:53"},"nativeSrc":"33540:20:53","nodeType":"YulFunctionCall","src":"33540:20:53"},"variableNames":[{"name":"x","nativeSrc":"33535:1:53","nodeType":"YulIdentifier","src":"33535:1:53"}]},{"nativeSrc":"33569:25:53","nodeType":"YulAssignment","src":"33569:25:53","value":{"arguments":[{"name":"y","nativeSrc":"33592:1:53","nodeType":"YulIdentifier","src":"33592:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33574:17:53","nodeType":"YulIdentifier","src":"33574:17:53"},"nativeSrc":"33574:20:53","nodeType":"YulFunctionCall","src":"33574:20:53"},"variableNames":[{"name":"y","nativeSrc":"33569:1:53","nodeType":"YulIdentifier","src":"33569:1:53"}]},{"nativeSrc":"33603:17:53","nodeType":"YulAssignment","src":"33603:17:53","value":{"arguments":[{"name":"x","nativeSrc":"33615:1:53","nodeType":"YulIdentifier","src":"33615:1:53"},{"name":"y","nativeSrc":"33618:1:53","nodeType":"YulIdentifier","src":"33618:1:53"}],"functionName":{"name":"sub","nativeSrc":"33611:3:53","nodeType":"YulIdentifier","src":"33611:3:53"},"nativeSrc":"33611:9:53","nodeType":"YulFunctionCall","src":"33611:9:53"},"variableNames":[{"name":"diff","nativeSrc":"33603:4:53","nodeType":"YulIdentifier","src":"33603:4:53"}]},{"body":{"nativeSrc":"33645:22:53","nodeType":"YulBlock","src":"33645:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33647:16:53","nodeType":"YulIdentifier","src":"33647:16:53"},"nativeSrc":"33647:18:53","nodeType":"YulFunctionCall","src":"33647:18:53"},"nativeSrc":"33647:18:53","nodeType":"YulExpressionStatement","src":"33647:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"33636:4:53","nodeType":"YulIdentifier","src":"33636:4:53"},{"name":"x","nativeSrc":"33642:1:53","nodeType":"YulIdentifier","src":"33642:1:53"}],"functionName":{"name":"gt","nativeSrc":"33633:2:53","nodeType":"YulIdentifier","src":"33633:2:53"},"nativeSrc":"33633:11:53","nodeType":"YulFunctionCall","src":"33633:11:53"},"nativeSrc":"33630:37:53","nodeType":"YulIf","src":"33630:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"33480:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"33511:1:53","nodeType":"YulTypedName","src":"33511:1:53","type":""},{"name":"y","nativeSrc":"33514:1:53","nodeType":"YulTypedName","src":"33514:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"33520:4:53","nodeType":"YulTypedName","src":"33520:4:53","type":""}],"src":"33480:194:53"},{"body":{"nativeSrc":"33908:523:53","nodeType":"YulBlock","src":"33908:523:53","statements":[{"nativeSrc":"33918:27:53","nodeType":"YulAssignment","src":"33918:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33930:9:53","nodeType":"YulIdentifier","src":"33930:9:53"},{"kind":"number","nativeSrc":"33941:3:53","nodeType":"YulLiteral","src":"33941:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"33926:3:53","nodeType":"YulIdentifier","src":"33926:3:53"},"nativeSrc":"33926:19:53","nodeType":"YulFunctionCall","src":"33926:19:53"},"variableNames":[{"name":"tail","nativeSrc":"33918:4:53","nodeType":"YulIdentifier","src":"33918:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"33999:6:53","nodeType":"YulIdentifier","src":"33999:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34012:9:53","nodeType":"YulIdentifier","src":"34012:9:53"},{"kind":"number","nativeSrc":"34023:1:53","nodeType":"YulLiteral","src":"34023:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34008:3:53","nodeType":"YulIdentifier","src":"34008:3:53"},"nativeSrc":"34008:17:53","nodeType":"YulFunctionCall","src":"34008:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"33955:43:53","nodeType":"YulIdentifier","src":"33955:43:53"},"nativeSrc":"33955:71:53","nodeType":"YulFunctionCall","src":"33955:71:53"},"nativeSrc":"33955:71:53","nodeType":"YulExpressionStatement","src":"33955:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"34080:6:53","nodeType":"YulIdentifier","src":"34080:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34093:9:53","nodeType":"YulIdentifier","src":"34093:9:53"},{"kind":"number","nativeSrc":"34104:2:53","nodeType":"YulLiteral","src":"34104:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34089:3:53","nodeType":"YulIdentifier","src":"34089:3:53"},"nativeSrc":"34089:18:53","nodeType":"YulFunctionCall","src":"34089:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"34036:43:53","nodeType":"YulIdentifier","src":"34036:43:53"},"nativeSrc":"34036:72:53","nodeType":"YulFunctionCall","src":"34036:72:53"},"nativeSrc":"34036:72:53","nodeType":"YulExpressionStatement","src":"34036:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"34162:6:53","nodeType":"YulIdentifier","src":"34162:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34175:9:53","nodeType":"YulIdentifier","src":"34175:9:53"},{"kind":"number","nativeSrc":"34186:2:53","nodeType":"YulLiteral","src":"34186:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34171:3:53","nodeType":"YulIdentifier","src":"34171:3:53"},"nativeSrc":"34171:18:53","nodeType":"YulFunctionCall","src":"34171:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"34118:43:53","nodeType":"YulIdentifier","src":"34118:43:53"},"nativeSrc":"34118:72:53","nodeType":"YulFunctionCall","src":"34118:72:53"},"nativeSrc":"34118:72:53","nodeType":"YulExpressionStatement","src":"34118:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"34244:6:53","nodeType":"YulIdentifier","src":"34244:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"34257:9:53","nodeType":"YulIdentifier","src":"34257:9:53"},{"kind":"number","nativeSrc":"34268:2:53","nodeType":"YulLiteral","src":"34268:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34253:3:53","nodeType":"YulIdentifier","src":"34253:3:53"},"nativeSrc":"34253:18:53","nodeType":"YulFunctionCall","src":"34253:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"34200:43:53","nodeType":"YulIdentifier","src":"34200:43:53"},"nativeSrc":"34200:72:53","nodeType":"YulFunctionCall","src":"34200:72:53"},"nativeSrc":"34200:72:53","nodeType":"YulExpressionStatement","src":"34200:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34293:9:53","nodeType":"YulIdentifier","src":"34293:9:53"},{"kind":"number","nativeSrc":"34304:3:53","nodeType":"YulLiteral","src":"34304:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34289:3:53","nodeType":"YulIdentifier","src":"34289:3:53"},"nativeSrc":"34289:19:53","nodeType":"YulFunctionCall","src":"34289:19:53"},{"arguments":[{"name":"tail","nativeSrc":"34314:4:53","nodeType":"YulIdentifier","src":"34314:4:53"},{"name":"headStart","nativeSrc":"34320:9:53","nodeType":"YulIdentifier","src":"34320:9:53"}],"functionName":{"name":"sub","nativeSrc":"34310:3:53","nodeType":"YulIdentifier","src":"34310:3:53"},"nativeSrc":"34310:20:53","nodeType":"YulFunctionCall","src":"34310:20:53"}],"functionName":{"name":"mstore","nativeSrc":"34282:6:53","nodeType":"YulIdentifier","src":"34282:6:53"},"nativeSrc":"34282:49:53","nodeType":"YulFunctionCall","src":"34282:49:53"},"nativeSrc":"34282:49:53","nodeType":"YulExpressionStatement","src":"34282:49:53"},{"nativeSrc":"34340:84:53","nodeType":"YulAssignment","src":"34340:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"34410:6:53","nodeType":"YulIdentifier","src":"34410:6:53"},{"name":"tail","nativeSrc":"34419:4:53","nodeType":"YulIdentifier","src":"34419:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"34348:61:53","nodeType":"YulIdentifier","src":"34348:61:53"},"nativeSrc":"34348:76:53","nodeType":"YulFunctionCall","src":"34348:76:53"},"variableNames":[{"name":"tail","nativeSrc":"34340:4:53","nodeType":"YulIdentifier","src":"34340:4:53"}]}]},"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":"33680:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33848:9:53","nodeType":"YulTypedName","src":"33848:9:53","type":""},{"name":"value4","nativeSrc":"33860:6:53","nodeType":"YulTypedName","src":"33860:6:53","type":""},{"name":"value3","nativeSrc":"33868:6:53","nodeType":"YulTypedName","src":"33868:6:53","type":""},{"name":"value2","nativeSrc":"33876:6:53","nodeType":"YulTypedName","src":"33876:6:53","type":""},{"name":"value1","nativeSrc":"33884:6:53","nodeType":"YulTypedName","src":"33884:6:53","type":""},{"name":"value0","nativeSrc":"33892:6:53","nodeType":"YulTypedName","src":"33892:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33903:4:53","nodeType":"YulTypedName","src":"33903:4:53","type":""}],"src":"33680:751:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC1155_$1190_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC1155_$1190_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC1155_$1190__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IERC1155_$1190_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_Strategy_$16126(value) {\n if iszero(lt(value, 2)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_Strategy_$16126(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Strategy_$16126(value)\n }\n\n function convert_t_enum$_Strategy_$16126_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Strategy_$16126(value)\n }\n\n function abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Strategy_$16126_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_Strategy_$16126__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_Strategy_$16126_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\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, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_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 value6, value7 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\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_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_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_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\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, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_IERC1155_$1190(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC1155_$1190(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC1155_$1190(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC1155_$1190(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC1155_$1190(value)\n }\n\n function validator_revert_t_enum$_Strategy_$16126(value) {\n if iszero(lt(value, 2)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_Strategy_$16126(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Strategy_$16126(value)\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 // struct ERC1155Incentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$16140_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_IERC1155_$1190(add(headStart, offset), end))\n\n }\n\n {\n // strategy\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_enum$_Strategy_$16126(add(headStart, offset), end))\n\n }\n\n {\n // tokenId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // extraData\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$16140_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$16140_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\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_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_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_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_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_bytes_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_bytes_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_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.ERC1155Payload -> struct Budget.ERC1155Payload\n function abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x60)\n\n {\n // tokenId\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ERC1155Payload_$13494_memory_ptr__to_t_struct$_ERC1155Payload_$13494_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ERC1155Payload_$13494_memory_ptr_to_t_struct$_ERC1155Payload_$13494_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_assert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$13471(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$13471(value)\n }\n\n function convert_t_enum$_AssetType_$13471_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$13471(value)\n }\n\n function abi_encode_t_enum$_AssetType_$13471_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$13471_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$13471_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value0, tail)\n\n }\n\n // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function 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 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_address_t_address_t_uint256_t_rational_1_by_1_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_rational_1_by_1_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 shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(convert_t_contract$_IERC1155_$1190_to_t_address(value)))\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_contract$_IERC1155_$1190_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_contract$_IERC1155_$1190_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value4, pos)\n\n end := pos\n }\n\n // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_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}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212202ed8acb107de7b597b4d8e9d724512284925aed3800f1f109954572877ab5e3a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x134 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA8C62E76 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x428 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x4BC JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x32E JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x3A6 JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xFC JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0x609D3334 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x29E JUMPI PUSH2 0x134 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17D70F7C EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x19E JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1D2 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x159 SWAP2 SWAP1 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x195 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A6 PUSH2 0x577 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x5C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C9 SWAP2 SWAP1 PUSH2 0x1507 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH2 0x973 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x272 PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x288 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x167C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B2 PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DC PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x325 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x354 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34F SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x390 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3BA PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C7 SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F1 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD19 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x426 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x421 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x433 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x44E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x449 SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST PUSH2 0xD7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45B SWAP2 SWAP1 PUSH2 0x1443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x18F4 JUMP JUMPDEST PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x1886 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4BA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4B5 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xF90 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DD SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST PUSH2 0xFB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EF SWAP2 SWAP1 PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0xFD2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x580 PUSH2 0x104B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5F6 PUSH2 0x1055 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x628 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x61F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x64E JUMPI PUSH2 0x64D PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x69C JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71B SWAP3 SWAP2 SWAP1 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x736 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x75A SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD DUP2 LT ISZERO PUSH2 0x7B0 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x81C JUMPI PUSH2 0x81B PUSH2 0x1695 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84A SWAP2 SWAP1 PUSH2 0x1E90 JUMP JUMPDEST POP PUSH2 0x854 CALLER PUSH2 0x107E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x88B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x8A2 SWAP2 SWAP1 PUSH2 0x1BBD JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x8C2 JUMPI PUSH2 0x8C1 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x939 SWAP2 SWAP1 PUSH2 0x2003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x95B SWAP2 SWAP1 PUSH2 0x20D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH2 0x9B9 SWAP1 PUSH2 0x1CCC 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 0x9E5 SWAP1 PUSH2 0x1CCC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA30 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA07 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA30 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA13 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0xA49 PUSH0 PUSH2 0x118B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAAC PUSH2 0x1154 JUMP JUMPDEST PUSH0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xABF JUMPI PUSH2 0xABE PUSH2 0x1695 JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xAE1 JUMPI PUSH2 0xAE0 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xCED JUMPI PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAF6 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xB04 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B SWAP1 PUSH2 0x21D5 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC13 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xCDB SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xCF1 JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD2A SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH2 0xD38 DUP2 PUSH0 ADD MLOAD PUSH2 0x1251 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1154 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xD6F JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xD7C DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xD88 PUSH2 0x1154 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xD98 SWAP2 SWAP1 PUSH2 0x2161 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xDB3 SWAP2 SWAP1 PUSH2 0x1C3F JUMP JUMPDEST SWAP1 POP PUSH1 0x3 SLOAD DUP2 GT ISZERO PUSH2 0xE1D JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x23F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE14 SWAP3 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xE2E SWAP2 SWAP1 PUSH2 0x2445 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA0 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2478 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x4 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF4B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x163C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF98 PUSH2 0x1154 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xFAD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xFB6 DUP2 PUSH2 0x118B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1044 JUMPI POP PUSH2 0x1043 DUP3 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1086 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x10FE JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x10C0 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1151 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1189 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x1193 PUSH2 0x132B JUMP JUMPDEST ISZERO PUSH2 0x11F8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x124E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI POP PUSH1 0x3 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1324 JUMPI POP PUSH2 0x1323 DUP3 PUSH2 0x132F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13DD DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP2 EQ PUSH2 0x13E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13F8 DUP2 PUSH2 0x13D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1412 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1420 DUP5 DUP3 DUP6 ADD PUSH2 0x13EA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x143D DUP2 PUSH2 0x1429 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1456 PUSH0 DUP4 ADD DUP5 PUSH2 0x1434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1487 PUSH0 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14CF PUSH2 0x14CA PUSH2 0x14C5 DUP5 PUSH2 0x148D JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14E0 DUP3 PUSH2 0x14B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x14F1 DUP3 PUSH2 0x14D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1501 DUP2 PUSH2 0x14E7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x151A PUSH0 DUP4 ADD DUP5 PUSH2 0x14F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1541 JUMPI PUSH2 0x1540 PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x155E JUMPI PUSH2 0x155D PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x157A JUMPI PUSH2 0x1579 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1597 JUMPI PUSH2 0x1596 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15B4 JUMPI PUSH2 0x15B3 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x15C0 DUP6 DUP3 DUP7 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x160E DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1618 DUP2 DUP6 PUSH2 0x15D6 JUMP JUMPDEST SWAP4 POP PUSH2 0x1628 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1631 DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1654 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1666 DUP3 PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1676 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168F PUSH0 DUP4 ADD DUP5 PUSH2 0x166D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x16D3 JUMPI PUSH2 0x16D2 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x16E3 DUP3 PUSH2 0x16C2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x16F2 DUP3 PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1702 DUP2 PUSH2 0x16E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x171B PUSH0 DUP4 ADD DUP5 PUSH2 0x16F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x172A DUP2 PUSH2 0x165C JUMP JUMPDEST DUP2 EQ PUSH2 0x1734 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1745 DUP2 PUSH2 0x1721 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1760 JUMPI PUSH2 0x175F PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH2 0x177C PUSH2 0x1524 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1799 JUMPI PUSH2 0x1798 PUSH2 0x1528 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x17BC JUMPI PUSH2 0x17BB PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x17C9 DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x17DA DUP12 DUP3 DUP13 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17FB JUMPI PUSH2 0x17FA PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1807 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x182A JUMPI PUSH2 0x1829 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1836 DUP12 DUP3 DUP13 ADD PUSH2 0x174B JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1859 JUMPI PUSH2 0x1858 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1865 DUP12 DUP3 DUP13 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH2 0x1880 DUP2 PUSH2 0x13A9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1899 PUSH0 DUP4 ADD DUP5 PUSH2 0x1877 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18B4 JUMPI PUSH2 0x18B3 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18C1 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18D3 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP2 EQ PUSH2 0x18DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18EE DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x190E JUMPI PUSH2 0x190D PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x191B DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x192C DUP10 DUP3 DUP11 ADD PUSH2 0x1737 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x193D DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x194E DUP10 DUP3 DUP11 ADD PUSH2 0x18E0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x196F JUMPI PUSH2 0x196E PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x197B DUP10 DUP3 DUP11 ADD PUSH2 0x152C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x19C4 DUP3 PUSH2 0x15F4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x19E3 JUMPI PUSH2 0x19E2 PUSH2 0x198E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19F5 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A01 DUP3 DUP3 PUSH2 0x19BB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1A14 DUP3 PUSH2 0x165C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A24 DUP2 PUSH2 0x1A0A JUMP JUMPDEST DUP2 EQ PUSH2 0x1A2E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A3F DUP2 PUSH2 0x1A1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1A51 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A62 DUP2 PUSH2 0x1A45 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1A86 JUMPI PUSH2 0x1A85 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1A8F DUP3 PUSH2 0x15F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ABC PUSH2 0x1AB7 DUP5 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1AD8 JUMPI PUSH2 0x1AD7 PUSH2 0x1A68 JUMP JUMPDEST JUMPDEST PUSH2 0x1AE3 DUP5 DUP3 DUP6 PUSH2 0x1A9C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1AFF JUMPI PUSH2 0x1AFE PUSH2 0x1520 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B0F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1AAA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B2D JUMPI PUSH2 0x1B2C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x1B37 PUSH1 0xA0 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1B46 DUP5 DUP3 DUP6 ADD PUSH2 0x1A31 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1B59 DUP5 DUP3 DUP6 ADD PUSH2 0x1A54 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1B6D DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1B81 DUP5 DUP3 DUP6 ADD PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA5 JUMPI PUSH2 0x1BA4 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x1BB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BD2 JUMPI PUSH2 0x1BD1 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BEF JUMPI PUSH2 0x1BEE PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x1BFB DUP5 DUP3 DUP6 ADD PUSH2 0x1B18 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C17 PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C39 DUP2 PUSH2 0x18CA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C54 JUMPI PUSH2 0x1C53 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C61 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1C7D PUSH0 DUP4 ADD DUP7 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x1C97 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1465 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1CE3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1CF6 JUMPI PUSH2 0x1CF5 PUSH2 0x1C9F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1D58 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1D1D JUMP JUMPDEST PUSH2 0x1D62 DUP7 DUP4 PUSH2 0x1D1D 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 PUSH0 PUSH2 0x1D94 PUSH2 0x1D8F PUSH2 0x1D8A DUP5 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DAD DUP4 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x1DC1 PUSH2 0x1DB9 DUP3 PUSH2 0x1D9B JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1D29 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1DD5 PUSH2 0x1DC9 JUMP JUMPDEST PUSH2 0x1DE0 DUP2 DUP5 DUP5 PUSH2 0x1DA4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1E03 JUMPI PUSH2 0x1DF8 PUSH0 DUP3 PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DE6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1E48 JUMPI PUSH2 0x1E19 DUP2 PUSH2 0x1CFC JUMP JUMPDEST PUSH2 0x1E22 DUP5 PUSH2 0x1D0E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1E31 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1E45 PUSH2 0x1E3D DUP6 PUSH2 0x1D0E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1DE5 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E68 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1E4D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E80 DUP4 DUP4 PUSH2 0x1E59 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E99 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EB2 JUMPI PUSH2 0x1EB1 PUSH2 0x198E JUMP JUMPDEST JUMPDEST PUSH2 0x1EBC DUP3 SLOAD PUSH2 0x1CCC JUMP JUMPDEST PUSH2 0x1EC7 DUP3 DUP3 DUP6 PUSH2 0x1E07 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1EF8 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1EE6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1EF0 DUP6 DUP3 PUSH2 0x1E75 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1F57 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1F06 DUP7 PUSH2 0x1CFC JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1F2D 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 0x1F08 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1F4A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1F46 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1E59 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 0x1F68 DUP2 PUSH2 0x145C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F88 DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x1F92 DUP2 DUP6 PUSH2 0x1F6E JUMP JUMPDEST SWAP4 POP PUSH2 0x1FA2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH2 0x1FAB DUP2 PUSH2 0x15F4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1FCB PUSH0 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1FDE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1FF6 DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x201B DUP2 DUP5 PUSH2 0x1FB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2034 JUMPI PUSH2 0x2033 PUSH2 0x1695 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x2044 DUP3 PUSH2 0x2023 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2053 DUP3 PUSH2 0x2037 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2063 DUP2 PUSH2 0x2049 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2072 DUP2 PUSH2 0x165C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x208D PUSH0 DUP7 ADD DUP3 PUSH2 0x205A JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x20A0 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x20B3 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x20CB DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20F0 DUP2 DUP5 PUSH2 0x2078 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x210D JUMPI PUSH2 0x210C PUSH2 0x198A JUMP JUMPDEST JUMPDEST PUSH2 0x2117 PUSH1 0x40 PUSH2 0x19EC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2126 DUP5 DUP3 DUP6 ADD PUSH2 0x1737 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2149 JUMPI PUSH2 0x2148 PUSH2 0x1A06 JUMP JUMPDEST JUMPDEST PUSH2 0x2155 DUP5 DUP3 DUP6 ADD PUSH2 0x1AEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2176 JUMPI PUSH2 0x2175 PUSH2 0x13A1 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2193 JUMPI PUSH2 0x2192 PUSH2 0x13A5 JUMP JUMPDEST JUMPDEST PUSH2 0x219F DUP5 DUP3 DUP6 ADD PUSH2 0x20F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x21DF DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2211 JUMPI PUSH2 0x2210 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x223F PUSH2 0x223A PUSH2 0x2235 DUP5 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x14AC JUMP JUMPDEST PUSH2 0x145C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2225 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2268 PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2275 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2282 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x228F PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2246 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x22A1 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22C3 DUP3 PUSH2 0x22AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x22D4 DUP3 PUSH2 0x22B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22EC PUSH2 0x22E7 DUP3 PUSH2 0x14E7 JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2303 PUSH2 0x22FE DUP3 PUSH2 0x165C JUMP JUMPDEST PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2323 PUSH2 0x231E DUP3 PUSH2 0x145C JUMP JUMPDEST PUSH2 0x2309 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x233D DUP3 PUSH2 0x15CC JUMP JUMPDEST PUSH2 0x2347 DUP2 DUP6 PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP PUSH2 0x2357 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15E6 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x236E DUP3 DUP9 PUSH2 0x22DB JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x237E DUP3 DUP8 PUSH2 0x22F2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x238E DUP3 DUP7 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x239E DUP3 DUP6 PUSH2 0x2312 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x23AE DUP3 DUP5 PUSH2 0x2333 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x23D2 PUSH0 DUP7 ADD DUP3 PUSH2 0x2069 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x23EA DUP3 DUP3 PUSH2 0x1F7E JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x240F DUP2 DUP5 PUSH2 0x23BD JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x242A PUSH0 DUP4 ADD DUP6 PUSH2 0x166D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x243C DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x244F DUP3 PUSH2 0x145C JUMP JUMPDEST SWAP2 POP PUSH2 0x245A DUP4 PUSH2 0x145C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2472 JUMPI PUSH2 0x2471 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x248B PUSH0 DUP4 ADD DUP9 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x2498 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x166D JUMP JUMPDEST PUSH2 0x24A5 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x24B2 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1465 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x24C4 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xD8 0xAC 0xB1 SMOD 0xDE PUSH28 0x597B4D8E9D724512284925AED3800F1F109954572877AB5E3A64736F PUSH13 0x63430008190033000000000000 ","sourceMap":"603:6802:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6137:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1549:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1266:21:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2101:860;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4960:558;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;1642:22:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1467:20:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1356:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7161:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3162:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5899:202:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3946:761:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6825:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6137:224:42;6242:4;6280:34;6265:49;;;:11;:49;;;;:89;;;;6318:36;6342:11;6318:23;:36::i;:::-;6265:89;6258:96;;6137:224;;;:::o;1549:22::-;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1266:21:42:-;;;;;;;;;;;;;:::o;2101:860::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2181:24:42::1;2219:5;;2208:32;;;;;;;:::i;:::-;2181:59;;2341:13;2323:31:::0;::::1;;;;;;;:::i;:::-;;:5;:14;;;:31;;;;;;;;:::i;:::-;;::::0;2319:71:::1;;2363:27;;;;;;;;;;;;;;2319:71;2419:1;2404:5;:11;;;:16:::0;2400:63:::1;;2429:34;;;;;;;;;;;;;;2400:63;2537:17;2557:5;:11;;;:21;;;2587:4;2594:5;:13;;;2557:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2537:71;;2634:5;:11;;;2622:9;:23;2618:135;;;2705:5;:11;;;2719:9;2730:5;:11;;;2668:74;;;;;;;;;;;;;:::i;:::-;;;;;;;;2618:135;2771:5;:11;;;2763:5;;:19;;;;;;;;;;;;;;;;;;2803:5;:14;;;2792:8;;:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2837:5;:13;;;2827:7;:23;;;;2868:5;:11;;;2860:5;:19;;;;2901:5;:15;;;2889:9;:27;;;;;;:::i;:::-;;2926:28;2943:10;2926:16;:28::i;:::-;2171:790;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2101:860:42;;:::o;4960:558::-;5033:23;5068:24;5106:5;;5095:32;;;;;;;:::i;:::-;5068:59;;5168:333;;;;;;;;5213:24;5168:333;;;;;;;;:::i;:::-;;;;;;5270:5;:11;;;5168:333;;;;;;5316:4;5168:333;;;;;;5377:91;;;;;;;;5409:5;:13;;;5377:91;;;;5432:5;:11;;;5377:91;;;;5451:5;:15;;;5377:91;;;5345:141;;;;;;;;:::i;:::-;;;;;;;;;;;;;5168:333;;;5144:367;;;;;;;;:::i;:::-;;;;;;;;;;;;;5137:374;;;4960:558;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;1642:22:42:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1467:20:42:-;;;;:::o;1356:24::-;;;;;;;;;;;;;:::o;7161:242::-;7331:6;7360:36;;;7353:43;;7161:242;;;;;;;;;;:::o;3162:748::-;3236:4;12517:13:17;:11;:13::i;:::-;3344::42::1;3332:25;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:25;;;;;;;;:::i;:::-;;::::0;3328:553:::1;;3373:26;3413:5;;3402:33;;;;;;;:::i;:::-;3373:62;;3454:27;3467:6;:13;;;3454:12;:27::i;:::-;3449:55;;3490:14;;;;;;;;;;;;;;3449:55;3519:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;3566:4;3541:7:::0;:22:::1;3549:6;:13;;;3541:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3652:5;;;;;;;;;;;:22;;;3683:4;3690:6;:13;;;3705:7;;3714:1;3717:6;:11;;;3652:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3756:6;:13;;;3748:96;;;3788:5;;;;;;;;;;;3795:6;:13;;;3810:7;;3827:1;3831:6;:11;;;3771:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3748:96;;;;;;:::i;:::-;;;;;;;;3866:4;3859:11;;;;;3328:553;3898:5;3891:12;;12540:1:17;3162:748:42::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;5899:202:42:-;5972:4;5988:26;6028:5;;6017:33;;;;;;;:::i;:::-;5988:62;;6067:27;6080:6;:13;;;6067:12;:27::i;:::-;6060:34;;;5899:202;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;3946:761:42:-;4022:4;12517:13:17;:11;:13::i;:::-;4038:26:42::1;4078:5;;4067:33;;;;;;;:::i;:::-;4038:62;;4111:14;4140:6;:11;;;4129:34;;;;;;;;;;;;:::i;:::-;4110:53;;4263:5;;4254:6;:14;4250:81;;;4300:10;4323:6;4312:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;4277:54;;;;;;;;;;;;:::i;:::-;;;;;;;;4250:81;4350:6;4341:5;;:15;;;;;;;:::i;:::-;;;;;;;;4489:5;;;;;;;;;;;:22;;;4520:4;4527:6;:13;;;4542:7;;4551:6;4559;:11;;;4489:82;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4594:6;:13;;;4586:92;;;4626:5;;;;;;;;;;;4633:6;:13;;;4648:7;;4657:6;4665;:11;;;4609:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4586:92;;;;;;:::i;:::-;;;;;;;;4696:4;4689:11;;;;3946:761:::0;;;;:::o;6825:210::-;6968:6;6997:31;;;6990:38;;6825:210;;;;;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;2955:208:44:-;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;6567:133:42:-;6632:4;6656:7;:19;6664:10;6656:19;;;;;;;;;;;;;;;;;;;;;;;;;6655:20;:38;;;;;6688:5;;6679:6;;:14;6655:38;6648:45;;6567:133;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:126::-;1990:7;2030:42;2023:5;2019:54;2008:65;;1953:126;;;:::o;2085:60::-;2113:3;2134:5;2127:12;;2085:60;;;:::o;2151:142::-;2201:9;2234:53;2252:34;2261:24;2279:5;2261:24;:::i;:::-;2252:34;:::i;:::-;2234:53;:::i;:::-;2221:66;;2151:142;;;:::o;2299:126::-;2349:9;2382:37;2413:5;2382:37;:::i;:::-;2369:50;;2299:126;;;:::o;2431:143::-;2498:9;2531:37;2562:5;2531:37;:::i;:::-;2518:50;;2431:143;;;:::o;2580:165::-;2684:54;2732:5;2684:54;:::i;:::-;2679:3;2672:67;2580:165;;:::o;2751:256::-;2861:4;2899:2;2888:9;2884:18;2876:26;;2912:88;2997:1;2986:9;2982:17;2973:6;2912:88;:::i;:::-;2751:256;;;;:::o;3013:117::-;3122:1;3119;3112:12;3136:117;3245:1;3242;3235:12;3259:117;3368:1;3365;3358:12;3395:552;3452:8;3462:6;3512:3;3505:4;3497:6;3493:17;3489:27;3479:122;;3520:79;;:::i;:::-;3479:122;3633:6;3620:20;3610:30;;3663:18;3655:6;3652:30;3649:117;;;3685:79;;:::i;:::-;3649:117;3799:4;3791:6;3787:17;3775:29;;3853:3;3845:4;3837:6;3833:17;3823:8;3819:32;3816:41;3813:128;;;3860:79;;:::i;:::-;3813:128;3395:552;;;;;:::o;3953:527::-;4023:6;4031;4080:2;4068:9;4059:7;4055:23;4051:32;4048:119;;;4086:79;;:::i;:::-;4048:119;4234:1;4223:9;4219:17;4206:31;4264:18;4256:6;4253:30;4250:117;;;4286:79;;:::i;:::-;4250:117;4399:64;4455:7;4446:6;4435:9;4431:22;4399:64;:::i;:::-;4381:82;;;;4177:296;3953:527;;;;;:::o;4486:98::-;4537:6;4571:5;4565:12;4555:22;;4486:98;;;:::o;4590:168::-;4673:11;4707:6;4702:3;4695:19;4747:4;4742:3;4738:14;4723:29;;4590:168;;;;:::o;4764:139::-;4853:6;4848:3;4843;4837:23;4894:1;4885:6;4880:3;4876:16;4869:27;4764:139;;;:::o;4909:102::-;4950:6;5001:2;4997:7;4992:2;4985:5;4981:14;4977:28;4967:38;;4909:102;;;:::o;5017:373::-;5103:3;5131:38;5163:5;5131:38;:::i;:::-;5185:70;5248:6;5243:3;5185:70;:::i;:::-;5178:77;;5264:65;5322:6;5317:3;5310:4;5303:5;5299:16;5264:65;:::i;:::-;5354:29;5376:6;5354:29;:::i;:::-;5349:3;5345:39;5338:46;;5107:283;5017:373;;;;:::o;5396:309::-;5507:4;5545:2;5534:9;5530:18;5522:26;;5594:9;5588:4;5584:20;5580:1;5569:9;5565:17;5558:47;5622:76;5693:4;5684:6;5622:76;:::i;:::-;5614:84;;5396:309;;;;:::o;5711:96::-;5748:7;5777:24;5795:5;5777:24;:::i;:::-;5766:35;;5711:96;;;:::o;5813:118::-;5900:24;5918:5;5900:24;:::i;:::-;5895:3;5888:37;5813:118;;:::o;5937:222::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:71;6149:1;6138:9;6134:17;6125:6;6081:71;:::i;:::-;5937:222;;;;:::o;6165:180::-;6213:77;6210:1;6203:88;6310:4;6307:1;6300:15;6334:4;6331:1;6324:15;6351:119;6438:1;6431:5;6428:12;6418:46;;6444:18;;:::i;:::-;6418:46;6351:119;:::o;6476:139::-;6527:7;6556:5;6545:16;;6562:47;6603:5;6562:47;:::i;:::-;6476:139;;;:::o;6621:::-;6683:9;6716:38;6748:5;6716:38;:::i;:::-;6703:51;;6621:139;;;:::o;6766:155::-;6865:49;6908:5;6865:49;:::i;:::-;6860:3;6853:62;6766:155;;:::o;6927:246::-;7032:4;7070:2;7059:9;7055:18;7047:26;;7083:83;7163:1;7152:9;7148:17;7139:6;7083:83;:::i;:::-;6927:246;;;;:::o;7179:122::-;7252:24;7270:5;7252:24;:::i;:::-;7245:5;7242:35;7232:63;;7291:1;7288;7281:12;7232:63;7179:122;:::o;7307:139::-;7353:5;7391:6;7378:20;7369:29;;7407:33;7434:5;7407:33;:::i;:::-;7307:139;;;;:::o;7469:568::-;7542:8;7552:6;7602:3;7595:4;7587:6;7583:17;7579:27;7569:122;;7610:79;;:::i;:::-;7569:122;7723:6;7710:20;7700:30;;7753:18;7745:6;7742:30;7739:117;;;7775:79;;:::i;:::-;7739:117;7889:4;7881:6;7877:17;7865:29;;7943:3;7935:4;7927:6;7923:17;7913:8;7909:32;7906:41;7903:128;;;7950:79;;:::i;:::-;7903:128;7469:568;;;;;:::o;8043:1569::-;8203:6;8211;8219;8227;8235;8243;8251;8259;8308:3;8296:9;8287:7;8283:23;8279:33;8276:120;;;8315:79;;:::i;:::-;8276:120;8435:1;8460:53;8505:7;8496:6;8485:9;8481:22;8460:53;:::i;:::-;8450:63;;8406:117;8562:2;8588:53;8633:7;8624:6;8613:9;8609:22;8588:53;:::i;:::-;8578:63;;8533:118;8718:2;8707:9;8703:18;8690:32;8749:18;8741:6;8738:30;8735:117;;;8771:79;;:::i;:::-;8735:117;8884:80;8956:7;8947:6;8936:9;8932:22;8884:80;:::i;:::-;8866:98;;;;8661:313;9041:2;9030:9;9026:18;9013:32;9072:18;9064:6;9061:30;9058:117;;;9094:79;;:::i;:::-;9058:117;9207:80;9279:7;9270:6;9259:9;9255:22;9207:80;:::i;:::-;9189:98;;;;8984:313;9364:3;9353:9;9349:19;9336:33;9396:18;9388:6;9385:30;9382:117;;;9418:79;;:::i;:::-;9382:117;9531:64;9587:7;9578:6;9567:9;9563:22;9531:64;:::i;:::-;9513:82;;;;9307:298;8043:1569;;;;;;;;;;;:::o;9618:115::-;9703:23;9720:5;9703:23;:::i;:::-;9698:3;9691:36;9618:115;;:::o;9739:218::-;9830:4;9868:2;9857:9;9853:18;9845:26;;9881:69;9947:1;9936:9;9932:17;9923:6;9881:69;:::i;:::-;9739:218;;;;:::o;9963:329::-;10022:6;10071:2;10059:9;10050:7;10046:23;10042:32;10039:119;;;10077:79;;:::i;:::-;10039:119;10197:1;10222:53;10267:7;10258:6;10247:9;10243:22;10222:53;:::i;:::-;10212:63;;10168:117;9963:329;;;;:::o;10298:122::-;10371:24;10389:5;10371:24;:::i;:::-;10364:5;10361:35;10351:63;;10410:1;10407;10400:12;10351:63;10298:122;:::o;10426:139::-;10472:5;10510:6;10497:20;10488:29;;10526:33;10553:5;10526:33;:::i;:::-;10426:139;;;;:::o;10571:1109::-;10677:6;10685;10693;10701;10709;10717;10766:3;10754:9;10745:7;10741:23;10737:33;10734:120;;;10773:79;;:::i;:::-;10734:120;10893:1;10918:53;10963:7;10954:6;10943:9;10939:22;10918:53;:::i;:::-;10908:63;;10864:117;11020:2;11046:53;11091:7;11082:6;11071:9;11067:22;11046:53;:::i;:::-;11036:63;;10991:118;11148:2;11174:53;11219:7;11210:6;11199:9;11195:22;11174:53;:::i;:::-;11164:63;;11119:118;11276:2;11302:53;11347:7;11338:6;11327:9;11323:22;11302:53;:::i;:::-;11292:63;;11247:118;11432:3;11421:9;11417:19;11404:33;11464:18;11456:6;11453:30;11450:117;;;11486:79;;:::i;:::-;11450:117;11599:64;11655:7;11646:6;11635:9;11631:22;11599:64;:::i;:::-;11581:82;;;;11375:298;10571:1109;;;;;;;;:::o;11686:117::-;11795:1;11792;11785:12;11809:180;11857:77;11854:1;11847:88;11954:4;11951:1;11944:15;11978:4;11975:1;11968:15;11995:281;12078:27;12100:4;12078:27;:::i;:::-;12070:6;12066:40;12208:6;12196:10;12193:22;12172:18;12160:10;12157:34;12154:62;12151:88;;;12219:18;;:::i;:::-;12151:88;12259:10;12255:2;12248:22;12038:238;11995:281;;:::o;12282:129::-;12316:6;12343:20;;:::i;:::-;12333:30;;12372:33;12400:4;12392:6;12372:33;:::i;:::-;12282:129;;;:::o;12417:117::-;12526:1;12523;12516:12;12540:113;12594:7;12623:24;12641:5;12623:24;:::i;:::-;12612:35;;12540:113;;;:::o;12659:156::-;12749:41;12784:5;12749:41;:::i;:::-;12742:5;12739:52;12729:80;;12805:1;12802;12795:12;12729:80;12659:156;:::o;12821:173::-;12884:5;12922:6;12909:20;12900:29;;12938:50;12982:5;12938:50;:::i;:::-;12821:173;;;;:::o;13000:113::-;13087:1;13080:5;13077:12;13067:40;;13103:1;13100;13093:12;13067:40;13000:113;:::o;13119:167::-;13179:5;13217:6;13204:20;13195:29;;13233:47;13274:5;13233:47;:::i;:::-;13119:167;;;;:::o;13292:117::-;13401:1;13398;13391:12;13415:307;13476:4;13566:18;13558:6;13555:30;13552:56;;;13588:18;;:::i;:::-;13552:56;13626:29;13648:6;13626:29;:::i;:::-;13618:37;;13710:4;13704;13700:15;13692:23;;13415:307;;;:::o;13728:148::-;13826:6;13821:3;13816;13803:30;13867:1;13858:6;13853:3;13849:16;13842:27;13728:148;;;:::o;13882:423::-;13959:5;13984:65;14000:48;14041:6;14000:48;:::i;:::-;13984:65;:::i;:::-;13975:74;;14072:6;14065:5;14058:21;14110:4;14103:5;14099:16;14148:3;14139:6;14134:3;14130:16;14127:25;14124:112;;;14155:79;;:::i;:::-;14124:112;14245:54;14292:6;14287:3;14282;14245:54;:::i;:::-;13965:340;13882:423;;;;;:::o;14324:338::-;14379:5;14428:3;14421:4;14413:6;14409:17;14405:27;14395:122;;14436:79;;:::i;:::-;14395:122;14553:6;14540:20;14578:78;14652:3;14644:6;14637:4;14629:6;14625:17;14578:78;:::i;:::-;14569:87;;14385:277;14324:338;;;;:::o;14711:1277::-;14790:5;14834:4;14822:9;14817:3;14813:19;14809:30;14806:117;;;14842:79;;:::i;:::-;14806:117;14941:21;14957:4;14941:21;:::i;:::-;14932:30;;15022:1;15062:66;15124:3;15115:6;15104:9;15100:22;15062:66;:::i;:::-;15055:4;15048:5;15044:16;15037:92;14972:168;15203:2;15244:63;15303:3;15294:6;15283:9;15279:22;15244:63;:::i;:::-;15237:4;15230:5;15226:16;15219:89;15150:169;15381:2;15422:49;15467:3;15458:6;15447:9;15443:22;15422:49;:::i;:::-;15415:4;15408:5;15404:16;15397:75;15329:154;15543:2;15584:49;15629:3;15620:6;15609:9;15605:22;15584:49;:::i;:::-;15577:4;15570:5;15566:16;15559:75;15493:152;15737:3;15726:9;15722:19;15709:33;15769:18;15761:6;15758:30;15755:117;;;15791:79;;:::i;:::-;15755:117;15911:58;15965:3;15956:6;15945:9;15941:22;15911:58;:::i;:::-;15904:4;15897:5;15893:16;15886:84;15655:326;14711:1277;;;;:::o;15994:549::-;16083:6;16132:2;16120:9;16111:7;16107:23;16103:32;16100:119;;;16138:79;;:::i;:::-;16100:119;16286:1;16275:9;16271:17;16258:31;16316:18;16308:6;16305:30;16302:117;;;16338:79;;:::i;:::-;16302:117;16443:83;16518:7;16509:6;16498:9;16494:22;16443:83;:::i;:::-;16433:93;;16229:307;15994:549;;;;:::o;16549:332::-;16670:4;16708:2;16697:9;16693:18;16685:26;;16721:71;16789:1;16778:9;16774:17;16765:6;16721:71;:::i;:::-;16802:72;16870:2;16859:9;16855:18;16846:6;16802:72;:::i;:::-;16549:332;;;;;:::o;16887:143::-;16944:5;16975:6;16969:13;16960:22;;16991:33;17018:5;16991:33;:::i;:::-;16887:143;;;;:::o;17036:351::-;17106:6;17155:2;17143:9;17134:7;17130:23;17126:32;17123:119;;;17161:79;;:::i;:::-;17123:119;17281:1;17306:64;17362:7;17353:6;17342:9;17338:22;17306:64;:::i;:::-;17296:74;;17252:128;17036:351;;;;:::o;17393:442::-;17542:4;17580:2;17569:9;17565:18;17557:26;;17593:71;17661:1;17650:9;17646:17;17637:6;17593:71;:::i;:::-;17674:72;17742:2;17731:9;17727:18;17718:6;17674:72;:::i;:::-;17756;17824:2;17813:9;17809:18;17800:6;17756:72;:::i;:::-;17393:442;;;;;;:::o;17841:180::-;17889:77;17886:1;17879:88;17986:4;17983:1;17976:15;18010:4;18007:1;18000:15;18027:320;18071:6;18108:1;18102:4;18098:12;18088:22;;18155:1;18149:4;18145:12;18176:18;18166:81;;18232:4;18224:6;18220:17;18210:27;;18166:81;18294:2;18286:6;18283:14;18263:18;18260:38;18257:84;;18313:18;;:::i;:::-;18257:84;18078:269;18027:320;;;:::o;18353:140::-;18401:4;18424:3;18416:11;;18447:3;18444:1;18437:14;18481:4;18478:1;18468:18;18460:26;;18353:140;;;:::o;18499:93::-;18536:6;18583:2;18578;18571:5;18567:14;18563:23;18553:33;;18499:93;;;:::o;18598:107::-;18642:8;18692:5;18686:4;18682:16;18661:37;;18598:107;;;;:::o;18711:393::-;18780:6;18830:1;18818:10;18814:18;18853:97;18883:66;18872:9;18853:97;:::i;:::-;18971:39;19001:8;18990:9;18971:39;:::i;:::-;18959:51;;19043:4;19039:9;19032:5;19028:21;19019:30;;19092:4;19082:8;19078:19;19071:5;19068:30;19058:40;;18787:317;;18711:393;;;;;:::o;19110:142::-;19160:9;19193:53;19211:34;19220:24;19238:5;19220:24;:::i;:::-;19211:34;:::i;:::-;19193:53;:::i;:::-;19180:66;;19110:142;;;:::o;19258:75::-;19301:3;19322:5;19315:12;;19258:75;;;:::o;19339:269::-;19449:39;19480:7;19449:39;:::i;:::-;19510:91;19559:41;19583:16;19559:41;:::i;:::-;19551:6;19544:4;19538:11;19510:91;:::i;:::-;19504:4;19497:105;19415:193;19339:269;;;:::o;19614:73::-;19659:3;19614:73;:::o;19693:189::-;19770:32;;:::i;:::-;19811:65;19869:6;19861;19855:4;19811:65;:::i;:::-;19746:136;19693:189;;:::o;19888:186::-;19948:120;19965:3;19958:5;19955:14;19948:120;;;20019:39;20056:1;20049:5;20019:39;:::i;:::-;19992:1;19985:5;19981:13;19972:22;;19948:120;;;19888:186;;:::o;20080:541::-;20180:2;20175:3;20172:11;20169:445;;;20214:37;20245:5;20214:37;:::i;:::-;20297:29;20315:10;20297:29;:::i;:::-;20287:8;20283:44;20480:2;20468:10;20465:18;20462:49;;;20501:8;20486:23;;20462:49;20524:80;20580:22;20598:3;20580:22;:::i;:::-;20570:8;20566:37;20553:11;20524:80;:::i;:::-;20184:430;;20169:445;20080:541;;;:::o;20627:117::-;20681:8;20731:5;20725:4;20721:16;20700:37;;20627:117;;;;:::o;20750:169::-;20794:6;20827:51;20875:1;20871:6;20863:5;20860:1;20856:13;20827:51;:::i;:::-;20823:56;20908:4;20902;20898:15;20888:25;;20801:118;20750:169;;;;:::o;20924:295::-;21000:4;21146:29;21171:3;21165:4;21146:29;:::i;:::-;21138:37;;21208:3;21205:1;21201:11;21195:4;21192:21;21184:29;;20924:295;;;;:::o;21224:1390::-;21339:36;21371:3;21339:36;:::i;:::-;21440:18;21432:6;21429:30;21426:56;;;21462:18;;:::i;:::-;21426:56;21506:38;21538:4;21532:11;21506:38;:::i;:::-;21591:66;21650:6;21642;21636:4;21591:66;:::i;:::-;21684:1;21708:4;21695:17;;21740:2;21732:6;21729:14;21757:1;21752:617;;;;22413:1;22430:6;22427:77;;;22479:9;22474:3;22470:19;22464:26;22455:35;;22427:77;22530:67;22590:6;22583:5;22530:67;:::i;:::-;22524:4;22517:81;22386:222;21722:886;;21752:617;21804:4;21800:9;21792:6;21788:22;21838:36;21869:4;21838:36;:::i;:::-;21896:1;21910:208;21924:7;21921:1;21918:14;21910:208;;;22003:9;21998:3;21994:19;21988:26;21980:6;21973:42;22054:1;22046:6;22042:14;22032:24;;22101:2;22090:9;22086:18;22073:31;;21947:4;21944:1;21940:12;21935:17;;21910:208;;;22146:6;22137:7;22134:19;22131:179;;;22204:9;22199:3;22195:19;22189:26;22247:48;22289:4;22281:6;22277:17;22266:9;22247:48;:::i;:::-;22239:6;22232:64;22154:156;22131:179;22356:1;22352;22344:6;22340:14;22336:22;22330:4;22323:36;21759:610;;;21722:886;;21314:1300;;;21224:1390;;:::o;22620:108::-;22697:24;22715:5;22697:24;:::i;:::-;22692:3;22685:37;22620:108;;:::o;22734:158::-;22807:11;22841:6;22836:3;22829:19;22881:4;22876:3;22872:14;22857:29;;22734:158;;;;:::o;22898:353::-;22974:3;23002:38;23034:5;23002:38;:::i;:::-;23056:60;23109:6;23104:3;23056:60;:::i;:::-;23049:67;;23125:65;23183:6;23178:3;23171:4;23164:5;23160:16;23125:65;:::i;:::-;23215:29;23237:6;23215:29;:::i;:::-;23210:3;23206:39;23199:46;;22978:273;22898:353;;;;:::o;23325:799::-;23460:3;23496:4;23491:3;23487:14;23586:4;23579:5;23575:16;23569:23;23605:63;23662:4;23657:3;23653:14;23639:12;23605:63;:::i;:::-;23511:167;23762:4;23755:5;23751:16;23745:23;23781:63;23838:4;23833:3;23829:14;23815:12;23781:63;:::i;:::-;23688:166;23936:4;23929:5;23925:16;23919:23;23989:3;23983:4;23979:14;23972:4;23967:3;23963:14;23956:38;24015:71;24081:4;24067:12;24015:71;:::i;:::-;24007:79;;23864:233;24114:4;24107:11;;23465:659;23325:799;;;;:::o;24130:405::-;24289:4;24327:2;24316:9;24312:18;24304:26;;24376:9;24370:4;24366:20;24362:1;24351:9;24347:17;24340:47;24404:124;24523:4;24514:6;24404:124;:::i;:::-;24396:132;;24130:405;;;;:::o;24541:120::-;24629:1;24622:5;24619:12;24609:46;;24635:18;;:::i;:::-;24609:46;24541:120;:::o;24667:141::-;24719:7;24748:5;24737:16;;24754:48;24796:5;24754:48;:::i;:::-;24667:141;;;:::o;24814:::-;24877:9;24910:39;24943:5;24910:39;:::i;:::-;24897:52;;24814:141;;;:::o;24961:147::-;25051:50;25095:5;25051:50;:::i;:::-;25046:3;25039:63;24961:147;;:::o;25114:108::-;25191:24;25209:5;25191:24;:::i;:::-;25186:3;25179:37;25114:108;;:::o;25284:977::-;25407:3;25443:4;25438:3;25434:14;25535:4;25528:5;25524:16;25518:23;25554:76;25624:4;25619:3;25615:14;25601:12;25554:76;:::i;:::-;25458:182;25723:4;25716:5;25712:16;25706:23;25742:63;25799:4;25794:3;25790:14;25776:12;25742:63;:::i;:::-;25650:165;25899:4;25892:5;25888:16;25882:23;25918:63;25975:4;25970:3;25966:14;25952:12;25918:63;:::i;:::-;25825:166;26073:4;26066:5;26062:16;26056:23;26126:3;26120:4;26116:14;26109:4;26104:3;26100:14;26093:38;26152:71;26218:4;26204:12;26152:71;:::i;:::-;26144:79;;26001:233;26251:4;26244:11;;25412:849;25284:977;;;;:::o;26267:381::-;26414:4;26452:2;26441:9;26437:18;26429:26;;26501:9;26495:4;26491:20;26487:1;26476:9;26472:17;26465:47;26529:112;26636:4;26627:6;26529:112;:::i;:::-;26521:120;;26267:381;;;;:::o;26691:751::-;26771:5;26815:4;26803:9;26798:3;26794:19;26790:30;26787:117;;;26823:79;;:::i;:::-;26787:117;26922:21;26938:4;26922:21;:::i;:::-;26913:30;;27004:1;27044:49;27089:3;27080:6;27069:9;27065:22;27044:49;:::i;:::-;27037:4;27030:5;27026:16;27019:75;26953:152;27192:2;27181:9;27177:18;27164:32;27223:18;27215:6;27212:30;27209:117;;;27245:79;;:::i;:::-;27209:117;27365:58;27419:3;27410:6;27399:9;27395:22;27365:58;:::i;:::-;27358:4;27351:5;27347:16;27340:84;27115:320;26691:751;;;;:::o;27448:551::-;27538:6;27587:2;27575:9;27566:7;27562:23;27558:32;27555:119;;;27593:79;;:::i;:::-;27555:119;27741:1;27730:9;27726:17;27713:31;27771:18;27763:6;27760:30;27757:117;;;27793:79;;:::i;:::-;27757:117;27898:84;27974:7;27965:6;27954:9;27950:22;27898:84;:::i;:::-;27888:94;;27684:308;27448:551;;;;:::o;28005:180::-;28053:77;28050:1;28043:88;28150:4;28147:1;28140:15;28174:4;28171:1;28164:15;28191:233;28230:3;28253:24;28271:5;28253:24;:::i;:::-;28244:33;;28299:66;28292:5;28289:77;28286:103;;28369:18;;:::i;:::-;28286:103;28416:1;28409:5;28405:13;28398:20;;28191:233;;;:::o;28430:85::-;28475:7;28504:5;28493:16;;28430:85;;;:::o;28521:158::-;28579:9;28612:61;28630:42;28639:32;28665:5;28639:32;:::i;:::-;28630:42;:::i;:::-;28612:61;:::i;:::-;28599:74;;28521:158;;;:::o;28685:147::-;28780:45;28819:5;28780:45;:::i;:::-;28775:3;28768:58;28685:147;;:::o;28838:767::-;29069:4;29107:3;29096:9;29092:19;29084:27;;29121:71;29189:1;29178:9;29174:17;29165:6;29121:71;:::i;:::-;29202:72;29270:2;29259:9;29255:18;29246:6;29202:72;:::i;:::-;29284;29352:2;29341:9;29337:18;29328:6;29284:72;:::i;:::-;29366:80;29442:2;29431:9;29427:18;29418:6;29366:80;:::i;:::-;29494:9;29488:4;29484:20;29478:3;29467:9;29463:19;29456:49;29522:76;29593:4;29584:6;29522:76;:::i;:::-;29514:84;;28838:767;;;;;;;;:::o;29611:94::-;29644:8;29692:5;29688:2;29684:14;29663:35;;29611:94;;;:::o;29711:::-;29750:7;29779:20;29793:5;29779:20;:::i;:::-;29768:31;;29711:94;;;:::o;29811:100::-;29850:7;29879:26;29899:5;29879:26;:::i;:::-;29868:37;;29811:100;;;:::o;29917:204::-;30039:75;30059:54;30107:5;30059:54;:::i;:::-;30039:75;:::i;:::-;30034:3;30027:88;29917:204;;:::o;30127:157::-;30232:45;30252:24;30270:5;30252:24;:::i;:::-;30232:45;:::i;:::-;30227:3;30220:58;30127:157;;:::o;30290:79::-;30329:7;30358:5;30347:16;;30290:79;;;:::o;30375:157::-;30480:45;30500:24;30518:5;30500:24;:::i;:::-;30480:45;:::i;:::-;30475:3;30468:58;30375:157;;:::o;30538:147::-;30639:11;30676:3;30661:18;;30538:147;;;;:::o;30691:386::-;30795:3;30823:38;30855:5;30823:38;:::i;:::-;30877:88;30958:6;30953:3;30877:88;:::i;:::-;30870:95;;30974:65;31032:6;31027:3;31020:4;31013:5;31009:16;30974:65;:::i;:::-;31064:6;31059:3;31055:16;31048:23;;30799:278;30691:386;;;;:::o;31083:869::-;31342:3;31357:92;31445:3;31436:6;31357:92;:::i;:::-;31474:2;31469:3;31465:12;31458:19;;31487:75;31558:3;31549:6;31487:75;:::i;:::-;31587:2;31582:3;31578:12;31571:19;;31600:75;31671:3;31662:6;31600:75;:::i;:::-;31700:2;31695:3;31691:12;31684:19;;31713:75;31784:3;31775:6;31713:75;:::i;:::-;31813:2;31808:3;31804:12;31797:19;;31833:93;31922:3;31913:6;31833:93;:::i;:::-;31826:100;;31943:3;31936:10;;31083:869;;;;;;;;:::o;32028:618::-;32159:3;32195:4;32190:3;32186:14;32284:4;32277:5;32273:16;32267:23;32303:63;32360:4;32355:3;32351:14;32337:12;32303:63;:::i;:::-;32210:166;32458:4;32451:5;32447:16;32441:23;32511:3;32505:4;32501:14;32494:4;32489:3;32485:14;32478:38;32537:71;32603:4;32589:12;32537:71;:::i;:::-;32529:79;;32386:233;32636:4;32629:11;;32164:482;32028:618;;;;:::o;32652:397::-;32807:4;32845:2;32834:9;32830:18;32822:26;;32894:9;32888:4;32884:20;32880:1;32869:9;32865:17;32858:47;32922:120;33037:4;33028:6;32922:120;:::i;:::-;32914:128;;32652:397;;;;:::o;33055:419::-;33194:4;33232:2;33221:9;33217:18;33209:26;;33245:71;33313:1;33302:9;33298:17;33289:6;33245:71;:::i;:::-;33363:9;33357:4;33353:20;33348:2;33337:9;33333:18;33326:48;33391:76;33462:4;33453:6;33391:76;:::i;:::-;33383:84;;33055:419;;;;;:::o;33480:194::-;33520:4;33540:20;33558:1;33540:20;:::i;:::-;33535:25;;33574:20;33592:1;33574:20;:::i;:::-;33569:25;;33618:1;33615;33611:9;33603:17;;33642:1;33636:4;33633:11;33630:37;;;33647:18;;:::i;:::-;33630:37;33480:194;;;;:::o;33680:751::-;33903:4;33941:3;33930:9;33926:19;33918:27;;33955:71;34023:1;34012:9;34008:17;33999:6;33955:71;:::i;:::-;34036:72;34104:2;34093:9;34089:18;34080:6;34036:72;:::i;:::-;34118;34186:2;34175:9;34171:18;34162:6;34118:72;:::i;:::-;34200;34268:2;34257:9;34253:18;34244:6;34200:72;:::i;:::-;34320:9;34314:4;34310:20;34304:3;34293:9;34289:19;34282:49;34348:76;34419:4;34410:6;34348:76;:::i;:::-;34340:84;;33680:751;;;;;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","extraData()":"609d3334","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","tokenId()":"17d70f7c","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract IERC1155\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum ERC1155Incentive.Strategy\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization payload\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not check the token ID and will accept all batches\",\"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\":\"This contract does not check the token ID and will accept all tokens\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"budgetData\":\"The data payload to be passed to the Budget for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC1155Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC1155-compliant contract\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new ERC1155Incentive\"},\"extraData()\":{\"notice\":\"Extra data to be passed to the ERC1155 contract\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"tokenId()\":{\"notice\":\"The ERC1155 token ID for the incentive\"}},\"notice\":\"A simple ERC1155 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/ERC1155Incentive.sol\":\"ERC1155Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/ERC1155Incentive.sol\":{\"keccak256\":\"0xee77199d3a971faf8ca43bb17a3aee76bfaf455f365d810781d847fa61d99046\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f9594ab9faf0fed4c9a5a7ae3e53435c7b59d91de44b215dfc049519dcb7a60b\",\"dweb:/ipfs/QmUuoaHuztgk4aiAvhfw7UZ7Bm2JAppdMhRogfZLeg5xJn\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/ERC20Incentive.sol":{"ERC20Incentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"entry","type":"address"}],"name":"Entry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"drawRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"entries","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum ERC20Incentive.Strategy","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_16669":{"entryPoint":null,"id":16669,"parameterSlots":0,"returnSlots":0},"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6121be806101b45f395ff3fe608060405260043610610129575f3560e01c8063a4d66daf116100aa578063dcc59b6f1161006e578063dcc59b6f14610387578063e18e6508146103b1578063f04e283e146103ed578063f1c30ec014610409578063f2fde38b14610445578063fee81cf41461046157610129565b8063a4d66daf1461027f578063a8c62e76146102a9578063b30906d4146102d3578063c63ff8dd1461030f578063c884ef831461034b57610129565b8063439fab91116100f1578063439fab91146101dd5780634e7165a21461020557806354d1f13d14610241578063715018a61461024b5780638da5cb5b1461025557610129565b806301ffc9a71461012d5780632275aea914610169578063228cb7331461017f57806325692962146101a957806338d52e0f146101b3575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e91906116bb565b61049d565b6040516101609190611700565b60405180910390f35b348015610174575f80fd5b5061017d610516565b005b34801561018a575f80fd5b506101936106e3565b6040516101a09190611731565b60405180910390f35b6101b16106e9565b005b3480156101be575f80fd5b506101c761073a565b6040516101d49190611789565b60405180910390f35b3480156101e8575f80fd5b5061020360048036038101906101fe9190611803565b61075f565b005b348015610210575f80fd5b5061022b60048036038101906102269190611803565b6109f4565b60405161023891906118be565b60405180910390f35b610249610b12565b005b610253610b4b565b005b348015610260575f80fd5b50610269610b5e565b6040516102769190611789565b60405180910390f35b34801561028a575f80fd5b50610293610b86565b6040516102a09190611731565b60405180910390f35b3480156102b4575f80fd5b506102bd610b8c565b6040516102ca9190611951565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190611994565b610b9f565b6040516103069190611789565b60405180910390f35b34801561031a575f80fd5b5061033560048036038101906103309190611803565b610bda565b6040516103429190611700565b60405180910390f35b348015610356575f80fd5b50610371600480360381019061036c91906119e9565b610f38565b60405161037e9190611700565b60405180910390f35b348015610392575f80fd5b5061039b610f55565b6040516103a89190611731565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190611803565b610f5a565b6040516103e49190611700565b60405180910390f35b610407600480360381019061040291906119e9565b610f82565b005b348015610414575f80fd5b5061042f600480360381019061042a9190611803565b610fc0565b60405161043c9190611700565b60405180910390f35b61045f600480360381019061045a91906119e9565b61123b565b005b34801561046c575f80fd5b50610487600480360381019061048291906119e9565b611264565b6040516104949190611731565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050f575061050e8261127d565b5b9050919050565b61051e6112f6565b600280811115610531576105306118de565b5b600260149054906101000a900460ff166002811115610553576105526118de565b5b1461058a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446105a29190611a41565b81525090505f600580805490506105b88461132d565b6105c29190611aa1565b815481106105d3576105d2611ad1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061064b8160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003546040516020016106bb93929190611b63565b6040516020818303038152906040526040516106d791906118be565b60405180910390a25050565b60035481565b5f6106f2611385565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61076861138f565b9050805460038255801561079a5760018160011c14303b106107915763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107ab9190611cb7565b9050600160028111156107c1576107c06118de565b5b816020015160028111156107d8576107d76118de565b5b0361080f576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160400151148061082457505f8160600151145b1561085b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60028081111561086f5761086e6118de565b5b82602001516002811115610886576108856118de565b5b036108955781604001516108aa565b816060015182604001516108a99190611ce2565b5b90505f6108d930845f015173ffffffffffffffffffffffffffffffffffffffff166113b890919063ffffffff16565b90508181101561092757825f015181836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161091e93929190611d23565b60405180910390fd5b825f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260200151600260146101000a81548160ff02191690836002811115610993576109926118de565b5b0217905550826040015160038190555082606001516004819055506109b7336113eb565b50505080156109ef576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f8383810190610a069190611cb7565b90505f600280811115610a1c57610a1b6118de565b5b82602001516002811115610a3357610a326118de565b5b03610a42578160400151610a57565b81606001518260400151610a569190611ce2565b5b9050604051806080016040528060016002811115610a7857610a776118de565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610ad79190611d81565b604051602081830303815290604052815250604051602001610af99190611e97565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b536112f6565b610b5c5f6114c1565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600260149054906101000a900460ff1681565b60058181548110610bae575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610be36112f6565b5f8383810190610bf39190611fd0565b9050610c01815f0151611587565b610c37576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002811115610c4a57610c496118de565b5b600260149054906101000a900460ff166002811115610c6c57610c6b6118de565b5b03610dd3575f80815480929190610c8290612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610d2f815f015160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f0151600354604051602001610da593929190611b63565b604051602081830303815290604052604051610dc191906118be565b60405180910390a26001915050610f32565b600280811115610de657610de56118de565b5b600260149054906101000a900460ff166002811115610e0857610e076118de565b5b03610f2d575f80815480929190610e1e90612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506005815f0151908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015173ffffffffffffffffffffffffffffffffffffffff167ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f15360405160405180910390a26001915050610f32565b5f9150505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610f6b9190611fd0565b9050610f79815f0151611587565b91505092915050565b610f8a6112f6565b63389a75e1600c52805f526020600c208054421115610fb057636f5e88185f526004601cfd5b5f815550610fbd816114c1565b50565b5f610fc96112f6565b5f8383810190610fd99190611fd0565b90505f8160200151806020019051810190610ff49190612072565b9050600280811115611009576110086118de565b5b600260149054906101000a900460ff16600281111561102b5761102a6118de565b5b036110b0576003548114158061104157505f8054115b156110a457338260405160200161105891906120d7565b6040516020818303038152906040526040517f4139d81d00000000000000000000000000000000000000000000000000000000815260040161109b9291906120f7565b60405180910390fd5b5f600481905550611148565b5f600354826110bf9190611aa1565b146111225733826040516020016110d691906120d7565b6040516020818303038152906040526040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016111199291906120f7565b60405180910390fd5b600354816111309190612125565b60045f8282546111409190612155565b925050819055505b611197825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01518460405160200161120b93929190611b63565b60405160208183030381529060405260405161122791906118be565b60405180910390a260019250505092915050565b6112436112f6565b8060601b61125857637448fbae5f526004601cfd5b611261816114c1565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112ef57506112ee826115e8565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461132b576382b429005f526004601cfd5b565b5f602082209050808252919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661137c576390b8ec185f526004601cfd5b5f603452505050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113f3611651565b1561146b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561142d57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506114be565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6114c9611651565b1561152e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611584565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115e157506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61169a81611666565b81146116a4575f80fd5b50565b5f813590506116b581611691565b92915050565b5f602082840312156116d0576116cf61165e565b5b5f6116dd848285016116a7565b91505092915050565b5f8115159050919050565b6116fa816116e6565b82525050565b5f6020820190506117135f8301846116f1565b92915050565b5f819050919050565b61172b81611719565b82525050565b5f6020820190506117445f830184611722565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117738261174a565b9050919050565b61178381611769565b82525050565b5f60208201905061179c5f83018461177a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126117c3576117c26117a2565b5b8235905067ffffffffffffffff8111156117e0576117df6117a6565b5b6020830191508360018202830111156117fc576117fb6117aa565b5b9250929050565b5f80602083850312156118195761181861165e565b5b5f83013567ffffffffffffffff81111561183657611835611662565b5b611842858286016117ae565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118908261184e565b61189a8185611858565b93506118aa818560208601611868565b6118b381611876565b840191505092915050565b5f6020820190508181035f8301526118d68184611886565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061191c5761191b6118de565b5b50565b5f81905061192c8261190b565b919050565b5f61193b8261191f565b9050919050565b61194b81611931565b82525050565b5f6020820190506119645f830184611942565b92915050565b61197381611719565b811461197d575f80fd5b50565b5f8135905061198e8161196a565b92915050565b5f602082840312156119a9576119a861165e565b5b5f6119b684828501611980565b91505092915050565b6119c881611769565b81146119d2575f80fd5b50565b5f813590506119e3816119bf565b92915050565b5f602082840312156119fe576119fd61165e565b5b5f611a0b848285016119d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a4b82611719565b9150611a5683611719565b9250828201905080821115611a6e57611a6d611a14565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611aab82611719565b9150611ab683611719565b925082611ac657611ac5611a74565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160601b9050919050565b5f611b1482611afe565b9050919050565b5f611b2582611b0a565b9050919050565b611b3d611b3882611769565b611b1b565b82525050565b5f819050919050565b611b5d611b5882611719565b611b43565b82525050565b5f611b6e8286611b2c565b601482019150611b7e8285611b2c565b601482019150611b8e8284611b4c565b602082019150819050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611bd982611876565b810181811067ffffffffffffffff82111715611bf857611bf7611ba3565b5b80604052505050565b5f611c0a611655565b9050611c168282611bd0565b919050565b5f80fd5b60038110611c2b575f80fd5b50565b5f81359050611c3c81611c1f565b92915050565b5f60808284031215611c5757611c56611b9f565b5b611c616080611c01565b90505f611c70848285016119d5565b5f830152506020611c8384828501611c2e565b6020830152506040611c9784828501611980565b6040830152506060611cab84828501611980565b60608301525092915050565b5f60808284031215611ccc57611ccb61165e565b5b5f611cd984828501611c42565b91505092915050565b5f611cec82611719565b9150611cf783611719565b9250828202611d0581611719565b91508282048414831517611d1c57611d1b611a14565b5b5092915050565b5f606082019050611d365f83018661177a565b611d436020830185611722565b611d506040830184611722565b949350505050565b611d6181611719565b82525050565b602082015f820151611d7b5f850182611d58565b50505050565b5f602082019050611d945f830184611d67565b92915050565b60038110611dab57611daa6118de565b5b50565b5f819050611dbb82611d9a565b919050565b5f611dca82611dae565b9050919050565b611dda81611dc0565b82525050565b611de981611769565b82525050565b5f82825260208201905092915050565b5f611e098261184e565b611e138185611def565b9350611e23818560208601611868565b611e2c81611876565b840191505092915050565b5f608083015f830151611e4c5f860182611dd1565b506020830151611e5f6020860182611de0565b506040830151611e726040860182611de0565b5060608301518482036060860152611e8a8282611dff565b9150508091505092915050565b5f6020820190508181035f830152611eaf8184611e37565b905092915050565b5f80fd5b5f67ffffffffffffffff821115611ed557611ed4611ba3565b5b611ede82611876565b9050602081019050919050565b828183375f83830152505050565b5f611f0b611f0684611ebb565b611c01565b905082815260208101848484011115611f2757611f26611eb7565b5b611f32848285611eeb565b509392505050565b5f82601f830112611f4e57611f4d6117a2565b5b8135611f5e848260208601611ef9565b91505092915050565b5f60408284031215611f7c57611f7b611b9f565b5b611f866040611c01565b90505f611f95848285016119d5565b5f83015250602082013567ffffffffffffffff811115611fb857611fb7611c1b565b5b611fc484828501611f3a565b60208301525092915050565b5f60208284031215611fe557611fe461165e565b5b5f82013567ffffffffffffffff81111561200257612001611662565b5b61200e84828501611f67565b91505092915050565b5f61202182611719565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205357612052611a14565b5b600182019050919050565b5f8151905061206c8161196a565b92915050565b5f602082840312156120875761208661165e565b5b5f6120948482850161205e565b91505092915050565b5f604083015f8301516120b25f860182611de0565b50602083015184820360208601526120ca8282611dff565b9150508091505092915050565b5f6020820190508181035f8301526120ef818461209d565b905092915050565b5f60408201905061210a5f83018561177a565b818103602083015261211c8184611886565b90509392505050565b5f61212f82611719565b915061213a83611719565b92508261214a57612149611a74565b5b828204905092915050565b5f61215f82611719565b915061216a83611719565b925082820390508181111561218257612181611a14565b5b9291505056fea26469706673582212206b260b82ccfdd3dfc6734ad6c86b98c5513cc724565757ef54f08104f1af95bb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x21BE DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x445 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x461 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0xB30906D4 EQ PUSH2 0x2D3 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x34B JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x255 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x2275AEA9 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1B3 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C7 PUSH2 0x73A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x22B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x249 PUSH2 0xB12 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x253 PUSH2 0xB4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x293 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BD PUSH2 0xB8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CA SWAP2 SWAP1 PUSH2 0x1951 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x1994 JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x306 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x356 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xF55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xF5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x407 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x402 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x414 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x42F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42A SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x45F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45A SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x123B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x487 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x482 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x1264 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x494 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x50F JUMPI POP PUSH2 0x50E DUP3 PUSH2 0x127D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0x12F6 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH2 0x530 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x553 JUMPI PUSH2 0x552 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST EQ PUSH2 0x58A JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP PREVRANDAO PUSH2 0x5A2 SWAP2 SWAP1 PUSH2 0x1A41 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x5 DUP1 DUP1 SLOAD SWAP1 POP PUSH2 0x5B8 DUP5 PUSH2 0x132D JUMP JUMPDEST PUSH2 0x5C2 SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x5D3 JUMPI PUSH2 0x5D2 PUSH2 0x1AD1 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x64B DUP2 PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6D7 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0x1385 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x768 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x791 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7AB SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x80F JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x824 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x85B JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x86F JUMPI PUSH2 0x86E PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x895 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x8AA JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x8A9 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH0 PUSH2 0x8D9 ADDRESS DUP5 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x927 JUMPI DUP3 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x9B7 CALLER PUSH2 0x13EB JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x9EF JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA33 JUMPI PUSH2 0xA32 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA42 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0xA57 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA78 JUMPI PUSH2 0xA77 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD7 SWAP2 SWAP1 PUSH2 0x1D81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAF9 SWAP2 SWAP1 PUSH2 0x1E97 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 PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0xB53 PUSH2 0x12F6 JUMP JUMPDEST PUSH2 0xB5C PUSH0 PUSH2 0x14C1 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBAE JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0xBE3 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xC01 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST PUSH2 0xC37 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH2 0xC49 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC6C JUMPI PUSH2 0xC6B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xDD3 JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xC82 SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xD2F DUP2 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDC1 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xDE6 JUMPI PUSH2 0xDE5 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE08 JUMPI PUSH2 0xE07 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xF2D JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xE1E SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x5 DUP2 PUSH0 ADD MLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0ABE0F5C6F02112A9A4332E7B091BF49040FFDDEEDB73785A9B9A0A3CA7F153 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xF79 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF8A PUSH2 0x12F6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xFB0 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xFBD DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xFC9 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xFD9 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFF4 SWAP2 SWAP1 PUSH2 0x2072 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x1009 JUMPI PUSH2 0x1008 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10B0 JUMPI PUSH1 0x3 SLOAD DUP2 EQ ISZERO DUP1 PUSH2 0x1041 JUMPI POP PUSH0 DUP1 SLOAD GT JUMPDEST ISZERO PUSH2 0x10A4 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1058 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109B SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x1148 JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD DUP3 PUSH2 0x10BF SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST EQ PUSH2 0x1122 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10D6 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1119 SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD DUP2 PUSH2 0x1130 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1140 SWAP2 SWAP1 PUSH2 0x2155 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x1197 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x120B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1227 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1243 PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1258 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1261 DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x12EF JUMPI POP PUSH2 0x12EE DUP3 PUSH2 0x15E8 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x132B JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 KECCAK256 SWAP1 POP DUP1 DUP3 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x137C JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13F3 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x146B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x142D JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x14BE JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x152E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1584 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x15E1 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169A DUP2 PUSH2 0x1666 JUMP JUMPDEST DUP2 EQ PUSH2 0x16A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16B5 DUP2 PUSH2 0x1691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16D0 JUMPI PUSH2 0x16CF PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16DD DUP5 DUP3 DUP6 ADD PUSH2 0x16A7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16FA DUP2 PUSH2 0x16E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1713 PUSH0 DUP4 ADD DUP5 PUSH2 0x16F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x172B DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1744 PUSH0 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1773 DUP3 PUSH2 0x174A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1783 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x179C PUSH0 DUP4 ADD DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17E0 JUMPI PUSH2 0x17DF PUSH2 0x17A6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x17FC JUMPI PUSH2 0x17FB PUSH2 0x17AA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1819 JUMPI PUSH2 0x1818 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1836 JUMPI PUSH2 0x1835 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x1842 DUP6 DUP3 DUP7 ADD PUSH2 0x17AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1890 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x189A DUP2 DUP6 PUSH2 0x1858 JUMP JUMPDEST SWAP4 POP PUSH2 0x18AA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x18B3 DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x18D6 DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x191C JUMPI PUSH2 0x191B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x192C DUP3 PUSH2 0x190B JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x193B DUP3 PUSH2 0x191F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x194B DUP2 PUSH2 0x1931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1964 PUSH0 DUP4 ADD DUP5 PUSH2 0x1942 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1973 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP2 EQ PUSH2 0x197D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x198E DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19A9 JUMPI PUSH2 0x19A8 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x19C8 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP2 EQ PUSH2 0x19D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E3 DUP2 PUSH2 0x19BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A0B DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1A4B DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A56 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A6E JUMPI PUSH2 0x1A6D PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1AAB DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AB6 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1AC6 JUMPI PUSH2 0x1AC5 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B14 DUP3 PUSH2 0x1AFE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B25 DUP3 PUSH2 0x1B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B3D PUSH2 0x1B38 DUP3 PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x1B1B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5D PUSH2 0x1B58 DUP3 PUSH2 0x1719 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B6E DUP3 DUP7 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B7E DUP3 DUP6 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B8E DUP3 DUP5 PUSH2 0x1B4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1BD9 DUP3 PUSH2 0x1876 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1BF8 JUMPI PUSH2 0x1BF7 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0A PUSH2 0x1655 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C16 DUP3 DUP3 PUSH2 0x1BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1C2B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C3C DUP2 PUSH2 0x1C1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C57 JUMPI PUSH2 0x1C56 PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1C61 PUSH1 0x80 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C70 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1C83 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1C97 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1CAB DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCC JUMPI PUSH2 0x1CCB PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1CD9 DUP5 DUP3 DUP6 ADD PUSH2 0x1C42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1CEC DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CF7 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D05 DUP2 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D1C JUMPI PUSH2 0x1D1B PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1D36 PUSH0 DUP4 ADD DUP7 PUSH2 0x177A JUMP JUMPDEST PUSH2 0x1D43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1722 JUMP JUMPDEST PUSH2 0x1D50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1D61 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1D7B PUSH0 DUP6 ADD DUP3 PUSH2 0x1D58 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D94 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1DAB JUMPI PUSH2 0x1DAA PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1DBB DUP3 PUSH2 0x1D9A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1DCA DUP3 PUSH2 0x1DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DDA DUP2 PUSH2 0x1DC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DE9 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E09 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x1E13 DUP2 DUP6 PUSH2 0x1DEF JUMP JUMPDEST SWAP4 POP PUSH2 0x1E23 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x1E2C DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1E4C PUSH0 DUP7 ADD DUP3 PUSH2 0x1DD1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1E5F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1E72 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1E8A DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1EAF DUP2 DUP5 PUSH2 0x1E37 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH2 0x1ED4 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST PUSH2 0x1EDE DUP3 PUSH2 0x1876 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F0B PUSH2 0x1F06 DUP5 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x1EB7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 PUSH2 0x1EEB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F4E JUMPI PUSH2 0x1F4D PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F5E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1EF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7C JUMPI PUSH2 0x1F7B PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1F86 PUSH1 0x40 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F95 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FB8 JUMPI PUSH2 0x1FB7 PUSH2 0x1C1B JUMP JUMPDEST JUMPDEST PUSH2 0x1FC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1F3A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FE5 JUMPI PUSH2 0x1FE4 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x200E DUP5 DUP3 DUP6 ADD PUSH2 0x1F67 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2021 DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2053 JUMPI PUSH2 0x2052 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x206C DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2087 JUMPI PUSH2 0x2086 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2094 DUP5 DUP3 DUP6 ADD PUSH2 0x205E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x20B2 PUSH0 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x20CA DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20EF DUP2 DUP5 PUSH2 0x209D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x210A PUSH0 DUP4 ADD DUP6 PUSH2 0x177A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x211C DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x212F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x213A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x214A JUMPI PUSH2 0x2149 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x215F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x216A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x260B82CCFDD3DFC6734AD6C8 PUSH12 0x98C5513CC724565757EF54F0 DUP2 DIV CALL 0xAF SWAP6 0xBB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"448:7197:43:-:0;;;2159:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;2183:22:43;:20;;;:22;;:::i;:::-;448:7197;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;448:7197:43:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":4854,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":5713,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":5007,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":5099,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_17092":{"entryPoint":5511,"id":17092,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":4997,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":5313,"id":6316,"parameterSlots":1,"returnSlots":0},"@asset_16647":{"entryPoint":1850,"id":16647,"parameterSlots":0,"returnSlots":0},"@balanceOf_11267":{"entryPoint":5048,"id":11267,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2834,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_16882":{"entryPoint":3034,"id":16882,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":3896,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":3925,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3970,"id":6396,"parameterSlots":1,"returnSlots":0},"@drawRaffle_17151":{"entryPoint":1302,"id":17151,"parameterSlots":0,"returnSlots":0},"@entries_16661":{"entryPoint":2975,"id":16661,"parameterSlots":0,"returnSlots":0},"@initialize_16781":{"entryPoint":1887,"id":16781,"parameterSlots":2,"returnSlots":0},"@isClaimable_17074":{"entryPoint":3930,"id":17074,"parameterSlots":2,"returnSlots":1},"@limit_16657":{"entryPoint":2950,"id":16657,"parameterSlots":0,"returnSlots":0},"@next_10147":{"entryPoint":4909,"id":10147,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":2910,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":4708,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_17049":{"entryPoint":2548,"id":17049,"parameterSlots":2,"returnSlots":1},"@reclaim_16990":{"entryPoint":4032,"id":16990,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":2891,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1769,"id":6376,"parameterSlots":0,"returnSlots":0},"@reward_16654":{"entryPoint":1763,"id":16654,"parameterSlots":0,"returnSlots":0},"@safeTransfer_11219":{"entryPoint":4924,"id":11219,"parameterSlots":3,"returnSlots":0},"@strategy_16651":{"entryPoint":2956,"id":16651,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":1181,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":4733,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":5608,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":4667,"id":6347,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":7929,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6613,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":5799,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":6062,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":7994,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_Strategy_$16633":{"entryPoint":7214,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8039,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$16644_memory_ptr":{"entryPoint":7234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6528,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8286,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6633,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":5819,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":6147,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":8144,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$16644_memory_ptr":{"entryPoint":7351,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6548,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":8306,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":7648,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6010,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":6956,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5873,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":7679,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6278,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":7633,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack":{"entryPoint":6466,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack":{"entryPoint":8349,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack":{"entryPoint":7527,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack":{"entryPoint":7735,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":7512,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5922,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":6988,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":7011,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":6025,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8439,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7459,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5888,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6334,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_Strategy_$16633__to_t_uint8__fromStack_reversed":{"entryPoint":6481,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed":{"entryPoint":8407,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed":{"entryPoint":7553,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed":{"entryPoint":7831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5937,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":7169,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5717,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":7867,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":6222,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":7663,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":6232,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":6721,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":8485,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7394,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8533,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":5993,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5862,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5734,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$13471":{"entryPoint":7598,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_Strategy_$16633":{"entryPoint":6431,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5962,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5913,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$13471_to_t_uint8":{"entryPoint":7616,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_Strategy_$16633_to_t_uint8":{"entryPoint":6449,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":7915,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6248,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":7120,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":8215,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":6939,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":6922,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":6979,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":6817,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":6676,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":6772,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":6366,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6865,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7075,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":6054,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6050,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":7071,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":7195,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":6058,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":7863,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5730,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5726,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":6262,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":6910,"id":null,"parameterSlots":1,"returnSlots":1},"validator_assert_t_enum$_AssetType_$13471":{"entryPoint":7578,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_Strategy_$16633":{"entryPoint":6411,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6591,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5777,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_Strategy_$16633":{"entryPoint":7199,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6506,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:21966:53","nodeType":"YulBlock","src":"0:21966:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"1998:81:53","nodeType":"YulBlock","src":"1998:81:53","statements":[{"nativeSrc":"2008:65:53","nodeType":"YulAssignment","src":"2008:65:53","value":{"arguments":[{"name":"value","nativeSrc":"2023:5:53","nodeType":"YulIdentifier","src":"2023:5:53"},{"kind":"number","nativeSrc":"2030:42:53","nodeType":"YulLiteral","src":"2030:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2019:3:53","nodeType":"YulIdentifier","src":"2019:3:53"},"nativeSrc":"2019:54:53","nodeType":"YulFunctionCall","src":"2019:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2008:7:53","nodeType":"YulIdentifier","src":"2008:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1953:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1980:5:53","nodeType":"YulTypedName","src":"1980:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1990:7:53","nodeType":"YulTypedName","src":"1990:7:53","type":""}],"src":"1953:126:53"},{"body":{"nativeSrc":"2130:51:53","nodeType":"YulBlock","src":"2130:51:53","statements":[{"nativeSrc":"2140:35:53","nodeType":"YulAssignment","src":"2140:35:53","value":{"arguments":[{"name":"value","nativeSrc":"2169:5:53","nodeType":"YulIdentifier","src":"2169:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2151:17:53","nodeType":"YulIdentifier","src":"2151:17:53"},"nativeSrc":"2151:24:53","nodeType":"YulFunctionCall","src":"2151:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2140:7:53","nodeType":"YulIdentifier","src":"2140:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"2085:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2112:5:53","nodeType":"YulTypedName","src":"2112:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2122:7:53","nodeType":"YulTypedName","src":"2122:7:53","type":""}],"src":"2085:96:53"},{"body":{"nativeSrc":"2252:53:53","nodeType":"YulBlock","src":"2252:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2269:3:53","nodeType":"YulIdentifier","src":"2269:3:53"},{"arguments":[{"name":"value","nativeSrc":"2292:5:53","nodeType":"YulIdentifier","src":"2292:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2274:17:53","nodeType":"YulIdentifier","src":"2274:17:53"},"nativeSrc":"2274:24:53","nodeType":"YulFunctionCall","src":"2274:24:53"}],"functionName":{"name":"mstore","nativeSrc":"2262:6:53","nodeType":"YulIdentifier","src":"2262:6:53"},"nativeSrc":"2262:37:53","nodeType":"YulFunctionCall","src":"2262:37:53"},"nativeSrc":"2262:37:53","nodeType":"YulExpressionStatement","src":"2262:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2187:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2240:5:53","nodeType":"YulTypedName","src":"2240:5:53","type":""},{"name":"pos","nativeSrc":"2247:3:53","nodeType":"YulTypedName","src":"2247:3:53","type":""}],"src":"2187:118:53"},{"body":{"nativeSrc":"2409:124:53","nodeType":"YulBlock","src":"2409:124:53","statements":[{"nativeSrc":"2419:26:53","nodeType":"YulAssignment","src":"2419:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2431:9:53","nodeType":"YulIdentifier","src":"2431:9:53"},{"kind":"number","nativeSrc":"2442:2:53","nodeType":"YulLiteral","src":"2442:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2427:3:53","nodeType":"YulIdentifier","src":"2427:3:53"},"nativeSrc":"2427:18:53","nodeType":"YulFunctionCall","src":"2427:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2419:4:53","nodeType":"YulIdentifier","src":"2419:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2499:6:53","nodeType":"YulIdentifier","src":"2499:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2512:9:53","nodeType":"YulIdentifier","src":"2512:9:53"},{"kind":"number","nativeSrc":"2523:1:53","nodeType":"YulLiteral","src":"2523:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2508:3:53","nodeType":"YulIdentifier","src":"2508:3:53"},"nativeSrc":"2508:17:53","nodeType":"YulFunctionCall","src":"2508:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2455:43:53","nodeType":"YulIdentifier","src":"2455:43:53"},"nativeSrc":"2455:71:53","nodeType":"YulFunctionCall","src":"2455:71:53"},"nativeSrc":"2455:71:53","nodeType":"YulExpressionStatement","src":"2455:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2311:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2381:9:53","nodeType":"YulTypedName","src":"2381:9:53","type":""},{"name":"value0","nativeSrc":"2393:6:53","nodeType":"YulTypedName","src":"2393:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2404:4:53","nodeType":"YulTypedName","src":"2404:4:53","type":""}],"src":"2311:222:53"},{"body":{"nativeSrc":"2628:28:53","nodeType":"YulBlock","src":"2628:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2645:1:53","nodeType":"YulLiteral","src":"2645:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2648:1:53","nodeType":"YulLiteral","src":"2648:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2638:6:53","nodeType":"YulIdentifier","src":"2638:6:53"},"nativeSrc":"2638:12:53","nodeType":"YulFunctionCall","src":"2638:12:53"},"nativeSrc":"2638:12:53","nodeType":"YulExpressionStatement","src":"2638:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2539:117:53","nodeType":"YulFunctionDefinition","src":"2539:117:53"},{"body":{"nativeSrc":"2751:28:53","nodeType":"YulBlock","src":"2751:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2768:1:53","nodeType":"YulLiteral","src":"2768:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2771:1:53","nodeType":"YulLiteral","src":"2771:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2761:6:53","nodeType":"YulIdentifier","src":"2761:6:53"},"nativeSrc":"2761:12:53","nodeType":"YulFunctionCall","src":"2761:12:53"},"nativeSrc":"2761:12:53","nodeType":"YulExpressionStatement","src":"2761:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2662:117:53","nodeType":"YulFunctionDefinition","src":"2662:117:53"},{"body":{"nativeSrc":"2874:28:53","nodeType":"YulBlock","src":"2874:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2891:1:53","nodeType":"YulLiteral","src":"2891:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2894:1:53","nodeType":"YulLiteral","src":"2894:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2884:6:53","nodeType":"YulIdentifier","src":"2884:6:53"},"nativeSrc":"2884:12:53","nodeType":"YulFunctionCall","src":"2884:12:53"},"nativeSrc":"2884:12:53","nodeType":"YulExpressionStatement","src":"2884:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2785:117:53","nodeType":"YulFunctionDefinition","src":"2785:117:53"},{"body":{"nativeSrc":"2995:478:53","nodeType":"YulBlock","src":"2995:478:53","statements":[{"body":{"nativeSrc":"3044:83:53","nodeType":"YulBlock","src":"3044:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3046:77:53","nodeType":"YulIdentifier","src":"3046:77:53"},"nativeSrc":"3046:79:53","nodeType":"YulFunctionCall","src":"3046:79:53"},"nativeSrc":"3046:79:53","nodeType":"YulExpressionStatement","src":"3046:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3023:6:53","nodeType":"YulIdentifier","src":"3023:6:53"},{"kind":"number","nativeSrc":"3031:4:53","nodeType":"YulLiteral","src":"3031:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3019:3:53","nodeType":"YulIdentifier","src":"3019:3:53"},"nativeSrc":"3019:17:53","nodeType":"YulFunctionCall","src":"3019:17:53"},{"name":"end","nativeSrc":"3038:3:53","nodeType":"YulIdentifier","src":"3038:3:53"}],"functionName":{"name":"slt","nativeSrc":"3015:3:53","nodeType":"YulIdentifier","src":"3015:3:53"},"nativeSrc":"3015:27:53","nodeType":"YulFunctionCall","src":"3015:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3008:6:53","nodeType":"YulIdentifier","src":"3008:6:53"},"nativeSrc":"3008:35:53","nodeType":"YulFunctionCall","src":"3008:35:53"},"nativeSrc":"3005:122:53","nodeType":"YulIf","src":"3005:122:53"},{"nativeSrc":"3136:30:53","nodeType":"YulAssignment","src":"3136:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"3159:6:53","nodeType":"YulIdentifier","src":"3159:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:53","nodeType":"YulIdentifier","src":"3146:12:53"},"nativeSrc":"3146:20:53","nodeType":"YulFunctionCall","src":"3146:20:53"},"variableNames":[{"name":"length","nativeSrc":"3136:6:53","nodeType":"YulIdentifier","src":"3136:6:53"}]},{"body":{"nativeSrc":"3209:83:53","nodeType":"YulBlock","src":"3209:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3211:77:53","nodeType":"YulIdentifier","src":"3211:77:53"},"nativeSrc":"3211:79:53","nodeType":"YulFunctionCall","src":"3211:79:53"},"nativeSrc":"3211:79:53","nodeType":"YulExpressionStatement","src":"3211:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3181:6:53","nodeType":"YulIdentifier","src":"3181:6:53"},{"kind":"number","nativeSrc":"3189:18:53","nodeType":"YulLiteral","src":"3189:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3178:2:53","nodeType":"YulIdentifier","src":"3178:2:53"},"nativeSrc":"3178:30:53","nodeType":"YulFunctionCall","src":"3178:30:53"},"nativeSrc":"3175:117:53","nodeType":"YulIf","src":"3175:117:53"},{"nativeSrc":"3301:29:53","nodeType":"YulAssignment","src":"3301:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3317:6:53","nodeType":"YulIdentifier","src":"3317:6:53"},{"kind":"number","nativeSrc":"3325:4:53","nodeType":"YulLiteral","src":"3325:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3313:3:53","nodeType":"YulIdentifier","src":"3313:3:53"},"nativeSrc":"3313:17:53","nodeType":"YulFunctionCall","src":"3313:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"3301:8:53","nodeType":"YulIdentifier","src":"3301:8:53"}]},{"body":{"nativeSrc":"3384:83:53","nodeType":"YulBlock","src":"3384:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3386:77:53","nodeType":"YulIdentifier","src":"3386:77:53"},"nativeSrc":"3386:79:53","nodeType":"YulFunctionCall","src":"3386:79:53"},"nativeSrc":"3386:79:53","nodeType":"YulExpressionStatement","src":"3386:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3349:8:53","nodeType":"YulIdentifier","src":"3349:8:53"},{"arguments":[{"name":"length","nativeSrc":"3363:6:53","nodeType":"YulIdentifier","src":"3363:6:53"},{"kind":"number","nativeSrc":"3371:4:53","nodeType":"YulLiteral","src":"3371:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3359:3:53","nodeType":"YulIdentifier","src":"3359:3:53"},"nativeSrc":"3359:17:53","nodeType":"YulFunctionCall","src":"3359:17:53"}],"functionName":{"name":"add","nativeSrc":"3345:3:53","nodeType":"YulIdentifier","src":"3345:3:53"},"nativeSrc":"3345:32:53","nodeType":"YulFunctionCall","src":"3345:32:53"},{"name":"end","nativeSrc":"3379:3:53","nodeType":"YulIdentifier","src":"3379:3:53"}],"functionName":{"name":"gt","nativeSrc":"3342:2:53","nodeType":"YulIdentifier","src":"3342:2:53"},"nativeSrc":"3342:41:53","nodeType":"YulFunctionCall","src":"3342:41:53"},"nativeSrc":"3339:128:53","nodeType":"YulIf","src":"3339:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2921:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2962:6:53","nodeType":"YulTypedName","src":"2962:6:53","type":""},{"name":"end","nativeSrc":"2970:3:53","nodeType":"YulTypedName","src":"2970:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2978:8:53","nodeType":"YulTypedName","src":"2978:8:53","type":""},{"name":"length","nativeSrc":"2988:6:53","nodeType":"YulTypedName","src":"2988:6:53","type":""}],"src":"2921:552:53"},{"body":{"nativeSrc":"3564:442:53","nodeType":"YulBlock","src":"3564:442:53","statements":[{"body":{"nativeSrc":"3610:83:53","nodeType":"YulBlock","src":"3610:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3612:77:53","nodeType":"YulIdentifier","src":"3612:77:53"},"nativeSrc":"3612:79:53","nodeType":"YulFunctionCall","src":"3612:79:53"},"nativeSrc":"3612:79:53","nodeType":"YulExpressionStatement","src":"3612:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3585:7:53","nodeType":"YulIdentifier","src":"3585:7:53"},{"name":"headStart","nativeSrc":"3594:9:53","nodeType":"YulIdentifier","src":"3594:9:53"}],"functionName":{"name":"sub","nativeSrc":"3581:3:53","nodeType":"YulIdentifier","src":"3581:3:53"},"nativeSrc":"3581:23:53","nodeType":"YulFunctionCall","src":"3581:23:53"},{"kind":"number","nativeSrc":"3606:2:53","nodeType":"YulLiteral","src":"3606:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3577:3:53","nodeType":"YulIdentifier","src":"3577:3:53"},"nativeSrc":"3577:32:53","nodeType":"YulFunctionCall","src":"3577:32:53"},"nativeSrc":"3574:119:53","nodeType":"YulIf","src":"3574:119:53"},{"nativeSrc":"3703:296:53","nodeType":"YulBlock","src":"3703:296:53","statements":[{"nativeSrc":"3718:45:53","nodeType":"YulVariableDeclaration","src":"3718:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3749:9:53","nodeType":"YulIdentifier","src":"3749:9:53"},{"kind":"number","nativeSrc":"3760:1:53","nodeType":"YulLiteral","src":"3760:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3745:3:53","nodeType":"YulIdentifier","src":"3745:3:53"},"nativeSrc":"3745:17:53","nodeType":"YulFunctionCall","src":"3745:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3732:12:53","nodeType":"YulIdentifier","src":"3732:12:53"},"nativeSrc":"3732:31:53","nodeType":"YulFunctionCall","src":"3732:31:53"},"variables":[{"name":"offset","nativeSrc":"3722:6:53","nodeType":"YulTypedName","src":"3722:6:53","type":""}]},{"body":{"nativeSrc":"3810:83:53","nodeType":"YulBlock","src":"3810:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3812:77:53","nodeType":"YulIdentifier","src":"3812:77:53"},"nativeSrc":"3812:79:53","nodeType":"YulFunctionCall","src":"3812:79:53"},"nativeSrc":"3812:79:53","nodeType":"YulExpressionStatement","src":"3812:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3782:6:53","nodeType":"YulIdentifier","src":"3782:6:53"},{"kind":"number","nativeSrc":"3790:18:53","nodeType":"YulLiteral","src":"3790:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3779:2:53","nodeType":"YulIdentifier","src":"3779:2:53"},"nativeSrc":"3779:30:53","nodeType":"YulFunctionCall","src":"3779:30:53"},"nativeSrc":"3776:117:53","nodeType":"YulIf","src":"3776:117:53"},{"nativeSrc":"3907:82:53","nodeType":"YulAssignment","src":"3907:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3961:9:53","nodeType":"YulIdentifier","src":"3961:9:53"},{"name":"offset","nativeSrc":"3972:6:53","nodeType":"YulIdentifier","src":"3972:6:53"}],"functionName":{"name":"add","nativeSrc":"3957:3:53","nodeType":"YulIdentifier","src":"3957:3:53"},"nativeSrc":"3957:22:53","nodeType":"YulFunctionCall","src":"3957:22:53"},{"name":"dataEnd","nativeSrc":"3981:7:53","nodeType":"YulIdentifier","src":"3981:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3925:31:53","nodeType":"YulIdentifier","src":"3925:31:53"},"nativeSrc":"3925:64:53","nodeType":"YulFunctionCall","src":"3925:64:53"},"variableNames":[{"name":"value0","nativeSrc":"3907:6:53","nodeType":"YulIdentifier","src":"3907:6:53"},{"name":"value1","nativeSrc":"3915:6:53","nodeType":"YulIdentifier","src":"3915:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3479:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3526:9:53","nodeType":"YulTypedName","src":"3526:9:53","type":""},{"name":"dataEnd","nativeSrc":"3537:7:53","nodeType":"YulTypedName","src":"3537:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3549:6:53","nodeType":"YulTypedName","src":"3549:6:53","type":""},{"name":"value1","nativeSrc":"3557:6:53","nodeType":"YulTypedName","src":"3557:6:53","type":""}],"src":"3479:527:53"},{"body":{"nativeSrc":"4070:40:53","nodeType":"YulBlock","src":"4070:40:53","statements":[{"nativeSrc":"4081:22:53","nodeType":"YulAssignment","src":"4081:22:53","value":{"arguments":[{"name":"value","nativeSrc":"4097:5:53","nodeType":"YulIdentifier","src":"4097:5:53"}],"functionName":{"name":"mload","nativeSrc":"4091:5:53","nodeType":"YulIdentifier","src":"4091:5:53"},"nativeSrc":"4091:12:53","nodeType":"YulFunctionCall","src":"4091:12:53"},"variableNames":[{"name":"length","nativeSrc":"4081:6:53","nodeType":"YulIdentifier","src":"4081:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4012:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4053:5:53","nodeType":"YulTypedName","src":"4053:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4063:6:53","nodeType":"YulTypedName","src":"4063:6:53","type":""}],"src":"4012:98:53"},{"body":{"nativeSrc":"4211:73:53","nodeType":"YulBlock","src":"4211:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4228:3:53","nodeType":"YulIdentifier","src":"4228:3:53"},{"name":"length","nativeSrc":"4233:6:53","nodeType":"YulIdentifier","src":"4233:6:53"}],"functionName":{"name":"mstore","nativeSrc":"4221:6:53","nodeType":"YulIdentifier","src":"4221:6:53"},"nativeSrc":"4221:19:53","nodeType":"YulFunctionCall","src":"4221:19:53"},"nativeSrc":"4221:19:53","nodeType":"YulExpressionStatement","src":"4221:19:53"},{"nativeSrc":"4249:29:53","nodeType":"YulAssignment","src":"4249:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"4268:3:53","nodeType":"YulIdentifier","src":"4268:3:53"},{"kind":"number","nativeSrc":"4273:4:53","nodeType":"YulLiteral","src":"4273:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4264:3:53","nodeType":"YulIdentifier","src":"4264:3:53"},"nativeSrc":"4264:14:53","nodeType":"YulFunctionCall","src":"4264:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"4249:11:53","nodeType":"YulIdentifier","src":"4249:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4116:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4183:3:53","nodeType":"YulTypedName","src":"4183:3:53","type":""},{"name":"length","nativeSrc":"4188:6:53","nodeType":"YulTypedName","src":"4188:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4199:11:53","nodeType":"YulTypedName","src":"4199:11:53","type":""}],"src":"4116:168:53"},{"body":{"nativeSrc":"4352:77:53","nodeType":"YulBlock","src":"4352:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4369:3:53","nodeType":"YulIdentifier","src":"4369:3:53"},{"name":"src","nativeSrc":"4374:3:53","nodeType":"YulIdentifier","src":"4374:3:53"},{"name":"length","nativeSrc":"4379:6:53","nodeType":"YulIdentifier","src":"4379:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"4363:5:53","nodeType":"YulIdentifier","src":"4363:5:53"},"nativeSrc":"4363:23:53","nodeType":"YulFunctionCall","src":"4363:23:53"},"nativeSrc":"4363:23:53","nodeType":"YulExpressionStatement","src":"4363:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4406:3:53","nodeType":"YulIdentifier","src":"4406:3:53"},{"name":"length","nativeSrc":"4411:6:53","nodeType":"YulIdentifier","src":"4411:6:53"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:16:53","nodeType":"YulFunctionCall","src":"4402:16:53"},{"kind":"number","nativeSrc":"4420:1:53","nodeType":"YulLiteral","src":"4420:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4395:6:53","nodeType":"YulIdentifier","src":"4395:6:53"},"nativeSrc":"4395:27:53","nodeType":"YulFunctionCall","src":"4395:27:53"},"nativeSrc":"4395:27:53","nodeType":"YulExpressionStatement","src":"4395:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4290:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4334:3:53","nodeType":"YulTypedName","src":"4334:3:53","type":""},{"name":"dst","nativeSrc":"4339:3:53","nodeType":"YulTypedName","src":"4339:3:53","type":""},{"name":"length","nativeSrc":"4344:6:53","nodeType":"YulTypedName","src":"4344:6:53","type":""}],"src":"4290:139:53"},{"body":{"nativeSrc":"4483:54:53","nodeType":"YulBlock","src":"4483:54:53","statements":[{"nativeSrc":"4493:38:53","nodeType":"YulAssignment","src":"4493:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4511:5:53","nodeType":"YulIdentifier","src":"4511:5:53"},{"kind":"number","nativeSrc":"4518:2:53","nodeType":"YulLiteral","src":"4518:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4507:3:53","nodeType":"YulIdentifier","src":"4507:3:53"},"nativeSrc":"4507:14:53","nodeType":"YulFunctionCall","src":"4507:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4527:2:53","nodeType":"YulLiteral","src":"4527:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4523:3:53","nodeType":"YulIdentifier","src":"4523:3:53"},"nativeSrc":"4523:7:53","nodeType":"YulFunctionCall","src":"4523:7:53"}],"functionName":{"name":"and","nativeSrc":"4503:3:53","nodeType":"YulIdentifier","src":"4503:3:53"},"nativeSrc":"4503:28:53","nodeType":"YulFunctionCall","src":"4503:28:53"},"variableNames":[{"name":"result","nativeSrc":"4493:6:53","nodeType":"YulIdentifier","src":"4493:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4435:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4466:5:53","nodeType":"YulTypedName","src":"4466:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4476:6:53","nodeType":"YulTypedName","src":"4476:6:53","type":""}],"src":"4435:102:53"},{"body":{"nativeSrc":"4633:283:53","nodeType":"YulBlock","src":"4633:283:53","statements":[{"nativeSrc":"4643:52:53","nodeType":"YulVariableDeclaration","src":"4643:52:53","value":{"arguments":[{"name":"value","nativeSrc":"4689:5:53","nodeType":"YulIdentifier","src":"4689:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4657:31:53","nodeType":"YulIdentifier","src":"4657:31:53"},"nativeSrc":"4657:38:53","nodeType":"YulFunctionCall","src":"4657:38:53"},"variables":[{"name":"length","nativeSrc":"4647:6:53","nodeType":"YulTypedName","src":"4647:6:53","type":""}]},{"nativeSrc":"4704:77:53","nodeType":"YulAssignment","src":"4704:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"4769:3:53","nodeType":"YulIdentifier","src":"4769:3:53"},{"name":"length","nativeSrc":"4774:6:53","nodeType":"YulIdentifier","src":"4774:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4711:57:53","nodeType":"YulIdentifier","src":"4711:57:53"},"nativeSrc":"4711:70:53","nodeType":"YulFunctionCall","src":"4711:70:53"},"variableNames":[{"name":"pos","nativeSrc":"4704:3:53","nodeType":"YulIdentifier","src":"4704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4829:5:53","nodeType":"YulIdentifier","src":"4829:5:53"},{"kind":"number","nativeSrc":"4836:4:53","nodeType":"YulLiteral","src":"4836:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4825:3:53","nodeType":"YulIdentifier","src":"4825:3:53"},"nativeSrc":"4825:16:53","nodeType":"YulFunctionCall","src":"4825:16:53"},{"name":"pos","nativeSrc":"4843:3:53","nodeType":"YulIdentifier","src":"4843:3:53"},{"name":"length","nativeSrc":"4848:6:53","nodeType":"YulIdentifier","src":"4848:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4790:34:53","nodeType":"YulIdentifier","src":"4790:34:53"},"nativeSrc":"4790:65:53","nodeType":"YulFunctionCall","src":"4790:65:53"},"nativeSrc":"4790:65:53","nodeType":"YulExpressionStatement","src":"4790:65:53"},{"nativeSrc":"4864:46:53","nodeType":"YulAssignment","src":"4864:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4875:3:53","nodeType":"YulIdentifier","src":"4875:3:53"},{"arguments":[{"name":"length","nativeSrc":"4902:6:53","nodeType":"YulIdentifier","src":"4902:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4880:21:53","nodeType":"YulIdentifier","src":"4880:21:53"},"nativeSrc":"4880:29:53","nodeType":"YulFunctionCall","src":"4880:29:53"}],"functionName":{"name":"add","nativeSrc":"4871:3:53","nodeType":"YulIdentifier","src":"4871:3:53"},"nativeSrc":"4871:39:53","nodeType":"YulFunctionCall","src":"4871:39:53"},"variableNames":[{"name":"end","nativeSrc":"4864:3:53","nodeType":"YulIdentifier","src":"4864:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4543:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4614:5:53","nodeType":"YulTypedName","src":"4614:5:53","type":""},{"name":"pos","nativeSrc":"4621:3:53","nodeType":"YulTypedName","src":"4621:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4629:3:53","nodeType":"YulTypedName","src":"4629:3:53","type":""}],"src":"4543:373:53"},{"body":{"nativeSrc":"5038:193:53","nodeType":"YulBlock","src":"5038:193:53","statements":[{"nativeSrc":"5048:26:53","nodeType":"YulAssignment","src":"5048:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5060:9:53","nodeType":"YulIdentifier","src":"5060:9:53"},{"kind":"number","nativeSrc":"5071:2:53","nodeType":"YulLiteral","src":"5071:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5056:3:53","nodeType":"YulIdentifier","src":"5056:3:53"},"nativeSrc":"5056:18:53","nodeType":"YulFunctionCall","src":"5056:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5048:4:53","nodeType":"YulIdentifier","src":"5048:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5095:9:53","nodeType":"YulIdentifier","src":"5095:9:53"},{"kind":"number","nativeSrc":"5106:1:53","nodeType":"YulLiteral","src":"5106:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5091:3:53","nodeType":"YulIdentifier","src":"5091:3:53"},"nativeSrc":"5091:17:53","nodeType":"YulFunctionCall","src":"5091:17:53"},{"arguments":[{"name":"tail","nativeSrc":"5114:4:53","nodeType":"YulIdentifier","src":"5114:4:53"},{"name":"headStart","nativeSrc":"5120:9:53","nodeType":"YulIdentifier","src":"5120:9:53"}],"functionName":{"name":"sub","nativeSrc":"5110:3:53","nodeType":"YulIdentifier","src":"5110:3:53"},"nativeSrc":"5110:20:53","nodeType":"YulFunctionCall","src":"5110:20:53"}],"functionName":{"name":"mstore","nativeSrc":"5084:6:53","nodeType":"YulIdentifier","src":"5084:6:53"},"nativeSrc":"5084:47:53","nodeType":"YulFunctionCall","src":"5084:47:53"},"nativeSrc":"5084:47:53","nodeType":"YulExpressionStatement","src":"5084:47:53"},{"nativeSrc":"5140:84:53","nodeType":"YulAssignment","src":"5140:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"5210:6:53","nodeType":"YulIdentifier","src":"5210:6:53"},{"name":"tail","nativeSrc":"5219:4:53","nodeType":"YulIdentifier","src":"5219:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5148:61:53","nodeType":"YulIdentifier","src":"5148:61:53"},"nativeSrc":"5148:76:53","nodeType":"YulFunctionCall","src":"5148:76:53"},"variableNames":[{"name":"tail","nativeSrc":"5140:4:53","nodeType":"YulIdentifier","src":"5140:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4922:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5010:9:53","nodeType":"YulTypedName","src":"5010:9:53","type":""},{"name":"value0","nativeSrc":"5022:6:53","nodeType":"YulTypedName","src":"5022:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5033:4:53","nodeType":"YulTypedName","src":"5033:4:53","type":""}],"src":"4922:309:53"},{"body":{"nativeSrc":"5265:152:53","nodeType":"YulBlock","src":"5265:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5282:1:53","nodeType":"YulLiteral","src":"5282:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5285:77:53","nodeType":"YulLiteral","src":"5285:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5275:6:53","nodeType":"YulIdentifier","src":"5275:6:53"},"nativeSrc":"5275:88:53","nodeType":"YulFunctionCall","src":"5275:88:53"},"nativeSrc":"5275:88:53","nodeType":"YulExpressionStatement","src":"5275:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5379:1:53","nodeType":"YulLiteral","src":"5379:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"5382:4:53","nodeType":"YulLiteral","src":"5382:4:53","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"5372:6:53","nodeType":"YulIdentifier","src":"5372:6:53"},"nativeSrc":"5372:15:53","nodeType":"YulFunctionCall","src":"5372:15:53"},"nativeSrc":"5372:15:53","nodeType":"YulExpressionStatement","src":"5372:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5403:1:53","nodeType":"YulLiteral","src":"5403:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5406:4:53","nodeType":"YulLiteral","src":"5406:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5396:6:53","nodeType":"YulIdentifier","src":"5396:6:53"},"nativeSrc":"5396:15:53","nodeType":"YulFunctionCall","src":"5396:15:53"},"nativeSrc":"5396:15:53","nodeType":"YulExpressionStatement","src":"5396:15:53"}]},"name":"panic_error_0x21","nativeSrc":"5237:180:53","nodeType":"YulFunctionDefinition","src":"5237:180:53"},{"body":{"nativeSrc":"5480:62:53","nodeType":"YulBlock","src":"5480:62:53","statements":[{"body":{"nativeSrc":"5514:22:53","nodeType":"YulBlock","src":"5514:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"5516:16:53","nodeType":"YulIdentifier","src":"5516:16:53"},"nativeSrc":"5516:18:53","nodeType":"YulFunctionCall","src":"5516:18:53"},"nativeSrc":"5516:18:53","nodeType":"YulExpressionStatement","src":"5516:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5503:5:53","nodeType":"YulIdentifier","src":"5503:5:53"},{"kind":"number","nativeSrc":"5510:1:53","nodeType":"YulLiteral","src":"5510:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"5500:2:53","nodeType":"YulIdentifier","src":"5500:2:53"},"nativeSrc":"5500:12:53","nodeType":"YulFunctionCall","src":"5500:12:53"}],"functionName":{"name":"iszero","nativeSrc":"5493:6:53","nodeType":"YulIdentifier","src":"5493:6:53"},"nativeSrc":"5493:20:53","nodeType":"YulFunctionCall","src":"5493:20:53"},"nativeSrc":"5490:46:53","nodeType":"YulIf","src":"5490:46:53"}]},"name":"validator_assert_t_enum$_Strategy_$16633","nativeSrc":"5423:119:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5473:5:53","nodeType":"YulTypedName","src":"5473:5:53","type":""}],"src":"5423:119:53"},{"body":{"nativeSrc":"5607:80:53","nodeType":"YulBlock","src":"5607:80:53","statements":[{"nativeSrc":"5617:16:53","nodeType":"YulAssignment","src":"5617:16:53","value":{"name":"value","nativeSrc":"5628:5:53","nodeType":"YulIdentifier","src":"5628:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5617:7:53","nodeType":"YulIdentifier","src":"5617:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5675:5:53","nodeType":"YulIdentifier","src":"5675:5:53"}],"functionName":{"name":"validator_assert_t_enum$_Strategy_$16633","nativeSrc":"5634:40:53","nodeType":"YulIdentifier","src":"5634:40:53"},"nativeSrc":"5634:47:53","nodeType":"YulFunctionCall","src":"5634:47:53"},"nativeSrc":"5634:47:53","nodeType":"YulExpressionStatement","src":"5634:47:53"}]},"name":"cleanup_t_enum$_Strategy_$16633","nativeSrc":"5548:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5589:5:53","nodeType":"YulTypedName","src":"5589:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5599:7:53","nodeType":"YulTypedName","src":"5599:7:53","type":""}],"src":"5548:139:53"},{"body":{"nativeSrc":"5765:67:53","nodeType":"YulBlock","src":"5765:67:53","statements":[{"nativeSrc":"5775:51:53","nodeType":"YulAssignment","src":"5775:51:53","value":{"arguments":[{"name":"value","nativeSrc":"5820:5:53","nodeType":"YulIdentifier","src":"5820:5:53"}],"functionName":{"name":"cleanup_t_enum$_Strategy_$16633","nativeSrc":"5788:31:53","nodeType":"YulIdentifier","src":"5788:31:53"},"nativeSrc":"5788:38:53","nodeType":"YulFunctionCall","src":"5788:38:53"},"variableNames":[{"name":"converted","nativeSrc":"5775:9:53","nodeType":"YulIdentifier","src":"5775:9:53"}]}]},"name":"convert_t_enum$_Strategy_$16633_to_t_uint8","nativeSrc":"5693:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5745:5:53","nodeType":"YulTypedName","src":"5745:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5755:9:53","nodeType":"YulTypedName","src":"5755:9:53","type":""}],"src":"5693:139:53"},{"body":{"nativeSrc":"5915:78:53","nodeType":"YulBlock","src":"5915:78:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5932:3:53","nodeType":"YulIdentifier","src":"5932:3:53"},{"arguments":[{"name":"value","nativeSrc":"5980:5:53","nodeType":"YulIdentifier","src":"5980:5:53"}],"functionName":{"name":"convert_t_enum$_Strategy_$16633_to_t_uint8","nativeSrc":"5937:42:53","nodeType":"YulIdentifier","src":"5937:42:53"},"nativeSrc":"5937:49:53","nodeType":"YulFunctionCall","src":"5937:49:53"}],"functionName":{"name":"mstore","nativeSrc":"5925:6:53","nodeType":"YulIdentifier","src":"5925:6:53"},"nativeSrc":"5925:62:53","nodeType":"YulFunctionCall","src":"5925:62:53"},"nativeSrc":"5925:62:53","nodeType":"YulExpressionStatement","src":"5925:62:53"}]},"name":"abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack","nativeSrc":"5838:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5903:5:53","nodeType":"YulTypedName","src":"5903:5:53","type":""},{"name":"pos","nativeSrc":"5910:3:53","nodeType":"YulTypedName","src":"5910:3:53","type":""}],"src":"5838:155:53"},{"body":{"nativeSrc":"6109:136:53","nodeType":"YulBlock","src":"6109:136:53","statements":[{"nativeSrc":"6119:26:53","nodeType":"YulAssignment","src":"6119:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6131:9:53","nodeType":"YulIdentifier","src":"6131:9:53"},{"kind":"number","nativeSrc":"6142:2:53","nodeType":"YulLiteral","src":"6142:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6127:3:53","nodeType":"YulIdentifier","src":"6127:3:53"},"nativeSrc":"6127:18:53","nodeType":"YulFunctionCall","src":"6127:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6119:4:53","nodeType":"YulIdentifier","src":"6119:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6211:6:53","nodeType":"YulIdentifier","src":"6211:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6224:9:53","nodeType":"YulIdentifier","src":"6224:9:53"},{"kind":"number","nativeSrc":"6235:1:53","nodeType":"YulLiteral","src":"6235:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6220:3:53","nodeType":"YulIdentifier","src":"6220:3:53"},"nativeSrc":"6220:17:53","nodeType":"YulFunctionCall","src":"6220:17:53"}],"functionName":{"name":"abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack","nativeSrc":"6155:55:53","nodeType":"YulIdentifier","src":"6155:55:53"},"nativeSrc":"6155:83:53","nodeType":"YulFunctionCall","src":"6155:83:53"},"nativeSrc":"6155:83:53","nodeType":"YulExpressionStatement","src":"6155:83:53"}]},"name":"abi_encode_tuple_t_enum$_Strategy_$16633__to_t_uint8__fromStack_reversed","nativeSrc":"5999:246:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6081:9:53","nodeType":"YulTypedName","src":"6081:9:53","type":""},{"name":"value0","nativeSrc":"6093:6:53","nodeType":"YulTypedName","src":"6093:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6104:4:53","nodeType":"YulTypedName","src":"6104:4:53","type":""}],"src":"5999:246:53"},{"body":{"nativeSrc":"6294:79:53","nodeType":"YulBlock","src":"6294:79:53","statements":[{"body":{"nativeSrc":"6351:16:53","nodeType":"YulBlock","src":"6351:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6360:1:53","nodeType":"YulLiteral","src":"6360:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6363:1:53","nodeType":"YulLiteral","src":"6363:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6353:6:53","nodeType":"YulIdentifier","src":"6353:6:53"},"nativeSrc":"6353:12:53","nodeType":"YulFunctionCall","src":"6353:12:53"},"nativeSrc":"6353:12:53","nodeType":"YulExpressionStatement","src":"6353:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6317:5:53","nodeType":"YulIdentifier","src":"6317:5:53"},{"arguments":[{"name":"value","nativeSrc":"6342:5:53","nodeType":"YulIdentifier","src":"6342:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6324:17:53","nodeType":"YulIdentifier","src":"6324:17:53"},"nativeSrc":"6324:24:53","nodeType":"YulFunctionCall","src":"6324:24:53"}],"functionName":{"name":"eq","nativeSrc":"6314:2:53","nodeType":"YulIdentifier","src":"6314:2:53"},"nativeSrc":"6314:35:53","nodeType":"YulFunctionCall","src":"6314:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6307:6:53","nodeType":"YulIdentifier","src":"6307:6:53"},"nativeSrc":"6307:43:53","nodeType":"YulFunctionCall","src":"6307:43:53"},"nativeSrc":"6304:63:53","nodeType":"YulIf","src":"6304:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"6251:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6287:5:53","nodeType":"YulTypedName","src":"6287:5:53","type":""}],"src":"6251:122:53"},{"body":{"nativeSrc":"6431:87:53","nodeType":"YulBlock","src":"6431:87:53","statements":[{"nativeSrc":"6441:29:53","nodeType":"YulAssignment","src":"6441:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6463:6:53","nodeType":"YulIdentifier","src":"6463:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6450:12:53","nodeType":"YulIdentifier","src":"6450:12:53"},"nativeSrc":"6450:20:53","nodeType":"YulFunctionCall","src":"6450:20:53"},"variableNames":[{"name":"value","nativeSrc":"6441:5:53","nodeType":"YulIdentifier","src":"6441:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6506:5:53","nodeType":"YulIdentifier","src":"6506:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6479:26:53","nodeType":"YulIdentifier","src":"6479:26:53"},"nativeSrc":"6479:33:53","nodeType":"YulFunctionCall","src":"6479:33:53"},"nativeSrc":"6479:33:53","nodeType":"YulExpressionStatement","src":"6479:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"6379:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6409:6:53","nodeType":"YulTypedName","src":"6409:6:53","type":""},{"name":"end","nativeSrc":"6417:3:53","nodeType":"YulTypedName","src":"6417:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6425:5:53","nodeType":"YulTypedName","src":"6425:5:53","type":""}],"src":"6379:139:53"},{"body":{"nativeSrc":"6590:263:53","nodeType":"YulBlock","src":"6590:263:53","statements":[{"body":{"nativeSrc":"6636:83:53","nodeType":"YulBlock","src":"6636:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6638:77:53","nodeType":"YulIdentifier","src":"6638:77:53"},"nativeSrc":"6638:79:53","nodeType":"YulFunctionCall","src":"6638:79:53"},"nativeSrc":"6638:79:53","nodeType":"YulExpressionStatement","src":"6638:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6611:7:53","nodeType":"YulIdentifier","src":"6611:7:53"},{"name":"headStart","nativeSrc":"6620:9:53","nodeType":"YulIdentifier","src":"6620:9:53"}],"functionName":{"name":"sub","nativeSrc":"6607:3:53","nodeType":"YulIdentifier","src":"6607:3:53"},"nativeSrc":"6607:23:53","nodeType":"YulFunctionCall","src":"6607:23:53"},{"kind":"number","nativeSrc":"6632:2:53","nodeType":"YulLiteral","src":"6632:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6603:3:53","nodeType":"YulIdentifier","src":"6603:3:53"},"nativeSrc":"6603:32:53","nodeType":"YulFunctionCall","src":"6603:32:53"},"nativeSrc":"6600:119:53","nodeType":"YulIf","src":"6600:119:53"},{"nativeSrc":"6729:117:53","nodeType":"YulBlock","src":"6729:117:53","statements":[{"nativeSrc":"6744:15:53","nodeType":"YulVariableDeclaration","src":"6744:15:53","value":{"kind":"number","nativeSrc":"6758:1:53","nodeType":"YulLiteral","src":"6758:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6748:6:53","nodeType":"YulTypedName","src":"6748:6:53","type":""}]},{"nativeSrc":"6773:63:53","nodeType":"YulAssignment","src":"6773:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6808:9:53","nodeType":"YulIdentifier","src":"6808:9:53"},{"name":"offset","nativeSrc":"6819:6:53","nodeType":"YulIdentifier","src":"6819:6:53"}],"functionName":{"name":"add","nativeSrc":"6804:3:53","nodeType":"YulIdentifier","src":"6804:3:53"},"nativeSrc":"6804:22:53","nodeType":"YulFunctionCall","src":"6804:22:53"},{"name":"dataEnd","nativeSrc":"6828:7:53","nodeType":"YulIdentifier","src":"6828:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6783:20:53","nodeType":"YulIdentifier","src":"6783:20:53"},"nativeSrc":"6783:53:53","nodeType":"YulFunctionCall","src":"6783:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6773:6:53","nodeType":"YulIdentifier","src":"6773:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6524:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6560:9:53","nodeType":"YulTypedName","src":"6560:9:53","type":""},{"name":"dataEnd","nativeSrc":"6571:7:53","nodeType":"YulTypedName","src":"6571:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6583:6:53","nodeType":"YulTypedName","src":"6583:6:53","type":""}],"src":"6524:329:53"},{"body":{"nativeSrc":"6902:79:53","nodeType":"YulBlock","src":"6902:79:53","statements":[{"body":{"nativeSrc":"6959:16:53","nodeType":"YulBlock","src":"6959:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6968:1:53","nodeType":"YulLiteral","src":"6968:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6971:1:53","nodeType":"YulLiteral","src":"6971:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6961:6:53","nodeType":"YulIdentifier","src":"6961:6:53"},"nativeSrc":"6961:12:53","nodeType":"YulFunctionCall","src":"6961:12:53"},"nativeSrc":"6961:12:53","nodeType":"YulExpressionStatement","src":"6961:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6925:5:53","nodeType":"YulIdentifier","src":"6925:5:53"},{"arguments":[{"name":"value","nativeSrc":"6950:5:53","nodeType":"YulIdentifier","src":"6950:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6932:17:53","nodeType":"YulIdentifier","src":"6932:17:53"},"nativeSrc":"6932:24:53","nodeType":"YulFunctionCall","src":"6932:24:53"}],"functionName":{"name":"eq","nativeSrc":"6922:2:53","nodeType":"YulIdentifier","src":"6922:2:53"},"nativeSrc":"6922:35:53","nodeType":"YulFunctionCall","src":"6922:35:53"}],"functionName":{"name":"iszero","nativeSrc":"6915:6:53","nodeType":"YulIdentifier","src":"6915:6:53"},"nativeSrc":"6915:43:53","nodeType":"YulFunctionCall","src":"6915:43:53"},"nativeSrc":"6912:63:53","nodeType":"YulIf","src":"6912:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"6859:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6895:5:53","nodeType":"YulTypedName","src":"6895:5:53","type":""}],"src":"6859:122:53"},{"body":{"nativeSrc":"7039:87:53","nodeType":"YulBlock","src":"7039:87:53","statements":[{"nativeSrc":"7049:29:53","nodeType":"YulAssignment","src":"7049:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7071:6:53","nodeType":"YulIdentifier","src":"7071:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7058:12:53","nodeType":"YulIdentifier","src":"7058:12:53"},"nativeSrc":"7058:20:53","nodeType":"YulFunctionCall","src":"7058:20:53"},"variableNames":[{"name":"value","nativeSrc":"7049:5:53","nodeType":"YulIdentifier","src":"7049:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7114:5:53","nodeType":"YulIdentifier","src":"7114:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7087:26:53","nodeType":"YulIdentifier","src":"7087:26:53"},"nativeSrc":"7087:33:53","nodeType":"YulFunctionCall","src":"7087:33:53"},"nativeSrc":"7087:33:53","nodeType":"YulExpressionStatement","src":"7087:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"6987:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7017:6:53","nodeType":"YulTypedName","src":"7017:6:53","type":""},{"name":"end","nativeSrc":"7025:3:53","nodeType":"YulTypedName","src":"7025:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7033:5:53","nodeType":"YulTypedName","src":"7033:5:53","type":""}],"src":"6987:139:53"},{"body":{"nativeSrc":"7198:263:53","nodeType":"YulBlock","src":"7198:263:53","statements":[{"body":{"nativeSrc":"7244:83:53","nodeType":"YulBlock","src":"7244:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7246:77:53","nodeType":"YulIdentifier","src":"7246:77:53"},"nativeSrc":"7246:79:53","nodeType":"YulFunctionCall","src":"7246:79:53"},"nativeSrc":"7246:79:53","nodeType":"YulExpressionStatement","src":"7246:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7219:7:53","nodeType":"YulIdentifier","src":"7219:7:53"},{"name":"headStart","nativeSrc":"7228:9:53","nodeType":"YulIdentifier","src":"7228:9:53"}],"functionName":{"name":"sub","nativeSrc":"7215:3:53","nodeType":"YulIdentifier","src":"7215:3:53"},"nativeSrc":"7215:23:53","nodeType":"YulFunctionCall","src":"7215:23:53"},{"kind":"number","nativeSrc":"7240:2:53","nodeType":"YulLiteral","src":"7240:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7211:3:53","nodeType":"YulIdentifier","src":"7211:3:53"},"nativeSrc":"7211:32:53","nodeType":"YulFunctionCall","src":"7211:32:53"},"nativeSrc":"7208:119:53","nodeType":"YulIf","src":"7208:119:53"},{"nativeSrc":"7337:117:53","nodeType":"YulBlock","src":"7337:117:53","statements":[{"nativeSrc":"7352:15:53","nodeType":"YulVariableDeclaration","src":"7352:15:53","value":{"kind":"number","nativeSrc":"7366:1:53","nodeType":"YulLiteral","src":"7366:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7356:6:53","nodeType":"YulTypedName","src":"7356:6:53","type":""}]},{"nativeSrc":"7381:63:53","nodeType":"YulAssignment","src":"7381:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7416:9:53","nodeType":"YulIdentifier","src":"7416:9:53"},{"name":"offset","nativeSrc":"7427:6:53","nodeType":"YulIdentifier","src":"7427:6:53"}],"functionName":{"name":"add","nativeSrc":"7412:3:53","nodeType":"YulIdentifier","src":"7412:3:53"},"nativeSrc":"7412:22:53","nodeType":"YulFunctionCall","src":"7412:22:53"},{"name":"dataEnd","nativeSrc":"7436:7:53","nodeType":"YulIdentifier","src":"7436:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7391:20:53","nodeType":"YulIdentifier","src":"7391:20:53"},"nativeSrc":"7391:53:53","nodeType":"YulFunctionCall","src":"7391:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7381:6:53","nodeType":"YulIdentifier","src":"7381:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7132:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7168:9:53","nodeType":"YulTypedName","src":"7168:9:53","type":""},{"name":"dataEnd","nativeSrc":"7179:7:53","nodeType":"YulTypedName","src":"7179:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7191:6:53","nodeType":"YulTypedName","src":"7191:6:53","type":""}],"src":"7132:329:53"},{"body":{"nativeSrc":"7495:152:53","nodeType":"YulBlock","src":"7495:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7512:1:53","nodeType":"YulLiteral","src":"7512:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7515:77:53","nodeType":"YulLiteral","src":"7515:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7505:6:53","nodeType":"YulIdentifier","src":"7505:6:53"},"nativeSrc":"7505:88:53","nodeType":"YulFunctionCall","src":"7505:88:53"},"nativeSrc":"7505:88:53","nodeType":"YulExpressionStatement","src":"7505:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7609:1:53","nodeType":"YulLiteral","src":"7609:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7612:4:53","nodeType":"YulLiteral","src":"7612:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7602:6:53","nodeType":"YulIdentifier","src":"7602:6:53"},"nativeSrc":"7602:15:53","nodeType":"YulFunctionCall","src":"7602:15:53"},"nativeSrc":"7602:15:53","nodeType":"YulExpressionStatement","src":"7602:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7633:1:53","nodeType":"YulLiteral","src":"7633:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7636:4:53","nodeType":"YulLiteral","src":"7636:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7626:6:53","nodeType":"YulIdentifier","src":"7626:6:53"},"nativeSrc":"7626:15:53","nodeType":"YulFunctionCall","src":"7626:15:53"},"nativeSrc":"7626:15:53","nodeType":"YulExpressionStatement","src":"7626:15:53"}]},"name":"panic_error_0x11","nativeSrc":"7467:180:53","nodeType":"YulFunctionDefinition","src":"7467:180:53"},{"body":{"nativeSrc":"7697:147:53","nodeType":"YulBlock","src":"7697:147:53","statements":[{"nativeSrc":"7707:25:53","nodeType":"YulAssignment","src":"7707:25:53","value":{"arguments":[{"name":"x","nativeSrc":"7730:1:53","nodeType":"YulIdentifier","src":"7730:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7712:17:53","nodeType":"YulIdentifier","src":"7712:17:53"},"nativeSrc":"7712:20:53","nodeType":"YulFunctionCall","src":"7712:20:53"},"variableNames":[{"name":"x","nativeSrc":"7707:1:53","nodeType":"YulIdentifier","src":"7707:1:53"}]},{"nativeSrc":"7741:25:53","nodeType":"YulAssignment","src":"7741:25:53","value":{"arguments":[{"name":"y","nativeSrc":"7764:1:53","nodeType":"YulIdentifier","src":"7764:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7746:17:53","nodeType":"YulIdentifier","src":"7746:17:53"},"nativeSrc":"7746:20:53","nodeType":"YulFunctionCall","src":"7746:20:53"},"variableNames":[{"name":"y","nativeSrc":"7741:1:53","nodeType":"YulIdentifier","src":"7741:1:53"}]},{"nativeSrc":"7775:16:53","nodeType":"YulAssignment","src":"7775:16:53","value":{"arguments":[{"name":"x","nativeSrc":"7786:1:53","nodeType":"YulIdentifier","src":"7786:1:53"},{"name":"y","nativeSrc":"7789:1:53","nodeType":"YulIdentifier","src":"7789:1:53"}],"functionName":{"name":"add","nativeSrc":"7782:3:53","nodeType":"YulIdentifier","src":"7782:3:53"},"nativeSrc":"7782:9:53","nodeType":"YulFunctionCall","src":"7782:9:53"},"variableNames":[{"name":"sum","nativeSrc":"7775:3:53","nodeType":"YulIdentifier","src":"7775:3:53"}]},{"body":{"nativeSrc":"7815:22:53","nodeType":"YulBlock","src":"7815:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7817:16:53","nodeType":"YulIdentifier","src":"7817:16:53"},"nativeSrc":"7817:18:53","nodeType":"YulFunctionCall","src":"7817:18:53"},"nativeSrc":"7817:18:53","nodeType":"YulExpressionStatement","src":"7817:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7807:1:53","nodeType":"YulIdentifier","src":"7807:1:53"},{"name":"sum","nativeSrc":"7810:3:53","nodeType":"YulIdentifier","src":"7810:3:53"}],"functionName":{"name":"gt","nativeSrc":"7804:2:53","nodeType":"YulIdentifier","src":"7804:2:53"},"nativeSrc":"7804:10:53","nodeType":"YulFunctionCall","src":"7804:10:53"},"nativeSrc":"7801:36:53","nodeType":"YulIf","src":"7801:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"7653:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7684:1:53","nodeType":"YulTypedName","src":"7684:1:53","type":""},{"name":"y","nativeSrc":"7687:1:53","nodeType":"YulTypedName","src":"7687:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7693:3:53","nodeType":"YulTypedName","src":"7693:3:53","type":""}],"src":"7653:191:53"},{"body":{"nativeSrc":"7878:152:53","nodeType":"YulBlock","src":"7878:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7895:1:53","nodeType":"YulLiteral","src":"7895:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7898:77:53","nodeType":"YulLiteral","src":"7898:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7888:6:53","nodeType":"YulIdentifier","src":"7888:6:53"},"nativeSrc":"7888:88:53","nodeType":"YulFunctionCall","src":"7888:88:53"},"nativeSrc":"7888:88:53","nodeType":"YulExpressionStatement","src":"7888:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7992:1:53","nodeType":"YulLiteral","src":"7992:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7995:4:53","nodeType":"YulLiteral","src":"7995:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7985:6:53","nodeType":"YulIdentifier","src":"7985:6:53"},"nativeSrc":"7985:15:53","nodeType":"YulFunctionCall","src":"7985:15:53"},"nativeSrc":"7985:15:53","nodeType":"YulExpressionStatement","src":"7985:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8016:1:53","nodeType":"YulLiteral","src":"8016:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8019:4:53","nodeType":"YulLiteral","src":"8019:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8009:6:53","nodeType":"YulIdentifier","src":"8009:6:53"},"nativeSrc":"8009:15:53","nodeType":"YulFunctionCall","src":"8009:15:53"},"nativeSrc":"8009:15:53","nodeType":"YulExpressionStatement","src":"8009:15:53"}]},"name":"panic_error_0x12","nativeSrc":"7850:180:53","nodeType":"YulFunctionDefinition","src":"7850:180:53"},{"body":{"nativeSrc":"8070:142:53","nodeType":"YulBlock","src":"8070:142:53","statements":[{"nativeSrc":"8080:25:53","nodeType":"YulAssignment","src":"8080:25:53","value":{"arguments":[{"name":"x","nativeSrc":"8103:1:53","nodeType":"YulIdentifier","src":"8103:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8085:17:53","nodeType":"YulIdentifier","src":"8085:17:53"},"nativeSrc":"8085:20:53","nodeType":"YulFunctionCall","src":"8085:20:53"},"variableNames":[{"name":"x","nativeSrc":"8080:1:53","nodeType":"YulIdentifier","src":"8080:1:53"}]},{"nativeSrc":"8114:25:53","nodeType":"YulAssignment","src":"8114:25:53","value":{"arguments":[{"name":"y","nativeSrc":"8137:1:53","nodeType":"YulIdentifier","src":"8137:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8119:17:53","nodeType":"YulIdentifier","src":"8119:17:53"},"nativeSrc":"8119:20:53","nodeType":"YulFunctionCall","src":"8119:20:53"},"variableNames":[{"name":"y","nativeSrc":"8114:1:53","nodeType":"YulIdentifier","src":"8114:1:53"}]},{"body":{"nativeSrc":"8161:22:53","nodeType":"YulBlock","src":"8161:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8163:16:53","nodeType":"YulIdentifier","src":"8163:16:53"},"nativeSrc":"8163:18:53","nodeType":"YulFunctionCall","src":"8163:18:53"},"nativeSrc":"8163:18:53","nodeType":"YulExpressionStatement","src":"8163:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8158:1:53","nodeType":"YulIdentifier","src":"8158:1:53"}],"functionName":{"name":"iszero","nativeSrc":"8151:6:53","nodeType":"YulIdentifier","src":"8151:6:53"},"nativeSrc":"8151:9:53","nodeType":"YulFunctionCall","src":"8151:9:53"},"nativeSrc":"8148:35:53","nodeType":"YulIf","src":"8148:35:53"},{"nativeSrc":"8192:14:53","nodeType":"YulAssignment","src":"8192:14:53","value":{"arguments":[{"name":"x","nativeSrc":"8201:1:53","nodeType":"YulIdentifier","src":"8201:1:53"},{"name":"y","nativeSrc":"8204:1:53","nodeType":"YulIdentifier","src":"8204:1:53"}],"functionName":{"name":"mod","nativeSrc":"8197:3:53","nodeType":"YulIdentifier","src":"8197:3:53"},"nativeSrc":"8197:9:53","nodeType":"YulFunctionCall","src":"8197:9:53"},"variableNames":[{"name":"r","nativeSrc":"8192:1:53","nodeType":"YulIdentifier","src":"8192:1:53"}]}]},"name":"mod_t_uint256","nativeSrc":"8036:176:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8059:1:53","nodeType":"YulTypedName","src":"8059:1:53","type":""},{"name":"y","nativeSrc":"8062:1:53","nodeType":"YulTypedName","src":"8062:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8068:1:53","nodeType":"YulTypedName","src":"8068:1:53","type":""}],"src":"8036:176:53"},{"body":{"nativeSrc":"8246:152:53","nodeType":"YulBlock","src":"8246:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8263:1:53","nodeType":"YulLiteral","src":"8263:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8266:77:53","nodeType":"YulLiteral","src":"8266:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8256:6:53","nodeType":"YulIdentifier","src":"8256:6:53"},"nativeSrc":"8256:88:53","nodeType":"YulFunctionCall","src":"8256:88:53"},"nativeSrc":"8256:88:53","nodeType":"YulExpressionStatement","src":"8256:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8360:1:53","nodeType":"YulLiteral","src":"8360:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8363:4:53","nodeType":"YulLiteral","src":"8363:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8353:6:53","nodeType":"YulIdentifier","src":"8353:6:53"},"nativeSrc":"8353:15:53","nodeType":"YulFunctionCall","src":"8353:15:53"},"nativeSrc":"8353:15:53","nodeType":"YulExpressionStatement","src":"8353:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8384:1:53","nodeType":"YulLiteral","src":"8384:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8387:4:53","nodeType":"YulLiteral","src":"8387:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8377:6:53","nodeType":"YulIdentifier","src":"8377:6:53"},"nativeSrc":"8377:15:53","nodeType":"YulFunctionCall","src":"8377:15:53"},"nativeSrc":"8377:15:53","nodeType":"YulExpressionStatement","src":"8377:15:53"}]},"name":"panic_error_0x32","nativeSrc":"8218:180:53","nodeType":"YulFunctionDefinition","src":"8218:180:53"},{"body":{"nativeSrc":"8446:52:53","nodeType":"YulBlock","src":"8446:52:53","statements":[{"nativeSrc":"8456:35:53","nodeType":"YulAssignment","src":"8456:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"8481:2:53","nodeType":"YulLiteral","src":"8481:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"8485:5:53","nodeType":"YulIdentifier","src":"8485:5:53"}],"functionName":{"name":"shl","nativeSrc":"8477:3:53","nodeType":"YulIdentifier","src":"8477:3:53"},"nativeSrc":"8477:14:53","nodeType":"YulFunctionCall","src":"8477:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"8456:8:53","nodeType":"YulIdentifier","src":"8456:8:53"}]}]},"name":"shift_left_96","nativeSrc":"8404:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8427:5:53","nodeType":"YulTypedName","src":"8427:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8437:8:53","nodeType":"YulTypedName","src":"8437:8:53","type":""}],"src":"8404:94:53"},{"body":{"nativeSrc":"8551:47:53","nodeType":"YulBlock","src":"8551:47:53","statements":[{"nativeSrc":"8561:31:53","nodeType":"YulAssignment","src":"8561:31:53","value":{"arguments":[{"name":"value","nativeSrc":"8586:5:53","nodeType":"YulIdentifier","src":"8586:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"8572:13:53","nodeType":"YulIdentifier","src":"8572:13:53"},"nativeSrc":"8572:20:53","nodeType":"YulFunctionCall","src":"8572:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"8561:7:53","nodeType":"YulIdentifier","src":"8561:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"8504:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8533:5:53","nodeType":"YulTypedName","src":"8533:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8543:7:53","nodeType":"YulTypedName","src":"8543:7:53","type":""}],"src":"8504:94:53"},{"body":{"nativeSrc":"8651:53:53","nodeType":"YulBlock","src":"8651:53:53","statements":[{"nativeSrc":"8661:37:53","nodeType":"YulAssignment","src":"8661:37:53","value":{"arguments":[{"name":"value","nativeSrc":"8692:5:53","nodeType":"YulIdentifier","src":"8692:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"8672:19:53","nodeType":"YulIdentifier","src":"8672:19:53"},"nativeSrc":"8672:26:53","nodeType":"YulFunctionCall","src":"8672:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"8661:7:53","nodeType":"YulIdentifier","src":"8661:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"8604:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8633:5:53","nodeType":"YulTypedName","src":"8633:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8643:7:53","nodeType":"YulTypedName","src":"8643:7:53","type":""}],"src":"8604:100:53"},{"body":{"nativeSrc":"8793:74:53","nodeType":"YulBlock","src":"8793:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8810:3:53","nodeType":"YulIdentifier","src":"8810:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8853:5:53","nodeType":"YulIdentifier","src":"8853:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8835:17:53","nodeType":"YulIdentifier","src":"8835:17:53"},"nativeSrc":"8835:24:53","nodeType":"YulFunctionCall","src":"8835:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"8815:19:53","nodeType":"YulIdentifier","src":"8815:19:53"},"nativeSrc":"8815:45:53","nodeType":"YulFunctionCall","src":"8815:45:53"}],"functionName":{"name":"mstore","nativeSrc":"8803:6:53","nodeType":"YulIdentifier","src":"8803:6:53"},"nativeSrc":"8803:58:53","nodeType":"YulFunctionCall","src":"8803:58:53"},"nativeSrc":"8803:58:53","nodeType":"YulExpressionStatement","src":"8803:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"8710:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8781:5:53","nodeType":"YulTypedName","src":"8781:5:53","type":""},{"name":"pos","nativeSrc":"8788:3:53","nodeType":"YulTypedName","src":"8788:3:53","type":""}],"src":"8710:157:53"},{"body":{"nativeSrc":"8920:32:53","nodeType":"YulBlock","src":"8920:32:53","statements":[{"nativeSrc":"8930:16:53","nodeType":"YulAssignment","src":"8930:16:53","value":{"name":"value","nativeSrc":"8941:5:53","nodeType":"YulIdentifier","src":"8941:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"8930:7:53","nodeType":"YulIdentifier","src":"8930:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"8873:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8902:5:53","nodeType":"YulTypedName","src":"8902:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8912:7:53","nodeType":"YulTypedName","src":"8912:7:53","type":""}],"src":"8873:79:53"},{"body":{"nativeSrc":"9041:74:53","nodeType":"YulBlock","src":"9041:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9058:3:53","nodeType":"YulIdentifier","src":"9058:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9101:5:53","nodeType":"YulIdentifier","src":"9101:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9083:17:53","nodeType":"YulIdentifier","src":"9083:17:53"},"nativeSrc":"9083:24:53","nodeType":"YulFunctionCall","src":"9083:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"9063:19:53","nodeType":"YulIdentifier","src":"9063:19:53"},"nativeSrc":"9063:45:53","nodeType":"YulFunctionCall","src":"9063:45:53"}],"functionName":{"name":"mstore","nativeSrc":"9051:6:53","nodeType":"YulIdentifier","src":"9051:6:53"},"nativeSrc":"9051:58:53","nodeType":"YulFunctionCall","src":"9051:58:53"},"nativeSrc":"9051:58:53","nodeType":"YulExpressionStatement","src":"9051:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"8958:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9029:5:53","nodeType":"YulTypedName","src":"9029:5:53","type":""},{"name":"pos","nativeSrc":"9036:3:53","nodeType":"YulTypedName","src":"9036:3:53","type":""}],"src":"8958:157:53"},{"body":{"nativeSrc":"9293:366:53","nodeType":"YulBlock","src":"9293:366:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"9366:6:53","nodeType":"YulIdentifier","src":"9366:6:53"},{"name":"pos","nativeSrc":"9375:3:53","nodeType":"YulIdentifier","src":"9375:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"9304:61:53","nodeType":"YulIdentifier","src":"9304:61:53"},"nativeSrc":"9304:75:53","nodeType":"YulFunctionCall","src":"9304:75:53"},"nativeSrc":"9304:75:53","nodeType":"YulExpressionStatement","src":"9304:75:53"},{"nativeSrc":"9388:19:53","nodeType":"YulAssignment","src":"9388:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9399:3:53","nodeType":"YulIdentifier","src":"9399:3:53"},{"kind":"number","nativeSrc":"9404:2:53","nodeType":"YulLiteral","src":"9404:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"9395:3:53","nodeType":"YulIdentifier","src":"9395:3:53"},"nativeSrc":"9395:12:53","nodeType":"YulFunctionCall","src":"9395:12:53"},"variableNames":[{"name":"pos","nativeSrc":"9388:3:53","nodeType":"YulIdentifier","src":"9388:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9479:6:53","nodeType":"YulIdentifier","src":"9479:6:53"},{"name":"pos","nativeSrc":"9488:3:53","nodeType":"YulIdentifier","src":"9488:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"9417:61:53","nodeType":"YulIdentifier","src":"9417:61:53"},"nativeSrc":"9417:75:53","nodeType":"YulFunctionCall","src":"9417:75:53"},"nativeSrc":"9417:75:53","nodeType":"YulExpressionStatement","src":"9417:75:53"},{"nativeSrc":"9501:19:53","nodeType":"YulAssignment","src":"9501:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9512:3:53","nodeType":"YulIdentifier","src":"9512:3:53"},{"kind":"number","nativeSrc":"9517:2:53","nodeType":"YulLiteral","src":"9517:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"9508:3:53","nodeType":"YulIdentifier","src":"9508:3:53"},"nativeSrc":"9508:12:53","nodeType":"YulFunctionCall","src":"9508:12:53"},"variableNames":[{"name":"pos","nativeSrc":"9501:3:53","nodeType":"YulIdentifier","src":"9501:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"9592:6:53","nodeType":"YulIdentifier","src":"9592:6:53"},{"name":"pos","nativeSrc":"9601:3:53","nodeType":"YulIdentifier","src":"9601:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"9530:61:53","nodeType":"YulIdentifier","src":"9530:61:53"},"nativeSrc":"9530:75:53","nodeType":"YulFunctionCall","src":"9530:75:53"},"nativeSrc":"9530:75:53","nodeType":"YulExpressionStatement","src":"9530:75:53"},{"nativeSrc":"9614:19:53","nodeType":"YulAssignment","src":"9614:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9625:3:53","nodeType":"YulIdentifier","src":"9625:3:53"},{"kind":"number","nativeSrc":"9630:2:53","nodeType":"YulLiteral","src":"9630:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9621:3:53","nodeType":"YulIdentifier","src":"9621:3:53"},"nativeSrc":"9621:12:53","nodeType":"YulFunctionCall","src":"9621:12:53"},"variableNames":[{"name":"pos","nativeSrc":"9614:3:53","nodeType":"YulIdentifier","src":"9614:3:53"}]},{"nativeSrc":"9643:10:53","nodeType":"YulAssignment","src":"9643:10:53","value":{"name":"pos","nativeSrc":"9650:3:53","nodeType":"YulIdentifier","src":"9650:3:53"},"variableNames":[{"name":"end","nativeSrc":"9643:3:53","nodeType":"YulIdentifier","src":"9643:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"9121:538:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9256:3:53","nodeType":"YulTypedName","src":"9256:3:53","type":""},{"name":"value2","nativeSrc":"9262:6:53","nodeType":"YulTypedName","src":"9262:6:53","type":""},{"name":"value1","nativeSrc":"9270:6:53","nodeType":"YulTypedName","src":"9270:6:53","type":""},{"name":"value0","nativeSrc":"9278:6:53","nodeType":"YulTypedName","src":"9278:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9289:3:53","nodeType":"YulTypedName","src":"9289:3:53","type":""}],"src":"9121:538:53"},{"body":{"nativeSrc":"9754:28:53","nodeType":"YulBlock","src":"9754:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9771:1:53","nodeType":"YulLiteral","src":"9771:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9774:1:53","nodeType":"YulLiteral","src":"9774:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9764:6:53","nodeType":"YulIdentifier","src":"9764:6:53"},"nativeSrc":"9764:12:53","nodeType":"YulFunctionCall","src":"9764:12:53"},"nativeSrc":"9764:12:53","nodeType":"YulExpressionStatement","src":"9764:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9665:117:53","nodeType":"YulFunctionDefinition","src":"9665:117:53"},{"body":{"nativeSrc":"9816:152:53","nodeType":"YulBlock","src":"9816:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9833:1:53","nodeType":"YulLiteral","src":"9833:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9836:77:53","nodeType":"YulLiteral","src":"9836:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9826:6:53","nodeType":"YulIdentifier","src":"9826:6:53"},"nativeSrc":"9826:88:53","nodeType":"YulFunctionCall","src":"9826:88:53"},"nativeSrc":"9826:88:53","nodeType":"YulExpressionStatement","src":"9826:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9930:1:53","nodeType":"YulLiteral","src":"9930:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9933:4:53","nodeType":"YulLiteral","src":"9933:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9923:6:53","nodeType":"YulIdentifier","src":"9923:6:53"},"nativeSrc":"9923:15:53","nodeType":"YulFunctionCall","src":"9923:15:53"},"nativeSrc":"9923:15:53","nodeType":"YulExpressionStatement","src":"9923:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9954:1:53","nodeType":"YulLiteral","src":"9954:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9957:4:53","nodeType":"YulLiteral","src":"9957:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9947:6:53","nodeType":"YulIdentifier","src":"9947:6:53"},"nativeSrc":"9947:15:53","nodeType":"YulFunctionCall","src":"9947:15:53"},"nativeSrc":"9947:15:53","nodeType":"YulExpressionStatement","src":"9947:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9788:180:53","nodeType":"YulFunctionDefinition","src":"9788:180:53"},{"body":{"nativeSrc":"10017:238:53","nodeType":"YulBlock","src":"10017:238:53","statements":[{"nativeSrc":"10027:58:53","nodeType":"YulVariableDeclaration","src":"10027:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10049:6:53","nodeType":"YulIdentifier","src":"10049:6:53"},{"arguments":[{"name":"size","nativeSrc":"10079:4:53","nodeType":"YulIdentifier","src":"10079:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10057:21:53","nodeType":"YulIdentifier","src":"10057:21:53"},"nativeSrc":"10057:27:53","nodeType":"YulFunctionCall","src":"10057:27:53"}],"functionName":{"name":"add","nativeSrc":"10045:3:53","nodeType":"YulIdentifier","src":"10045:3:53"},"nativeSrc":"10045:40:53","nodeType":"YulFunctionCall","src":"10045:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10031:10:53","nodeType":"YulTypedName","src":"10031:10:53","type":""}]},{"body":{"nativeSrc":"10196:22:53","nodeType":"YulBlock","src":"10196:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10198:16:53","nodeType":"YulIdentifier","src":"10198:16:53"},"nativeSrc":"10198:18:53","nodeType":"YulFunctionCall","src":"10198:18:53"},"nativeSrc":"10198:18:53","nodeType":"YulExpressionStatement","src":"10198:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10139:10:53","nodeType":"YulIdentifier","src":"10139:10:53"},{"kind":"number","nativeSrc":"10151:18:53","nodeType":"YulLiteral","src":"10151:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10136:2:53","nodeType":"YulIdentifier","src":"10136:2:53"},"nativeSrc":"10136:34:53","nodeType":"YulFunctionCall","src":"10136:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10175:10:53","nodeType":"YulIdentifier","src":"10175:10:53"},{"name":"memPtr","nativeSrc":"10187:6:53","nodeType":"YulIdentifier","src":"10187:6:53"}],"functionName":{"name":"lt","nativeSrc":"10172:2:53","nodeType":"YulIdentifier","src":"10172:2:53"},"nativeSrc":"10172:22:53","nodeType":"YulFunctionCall","src":"10172:22:53"}],"functionName":{"name":"or","nativeSrc":"10133:2:53","nodeType":"YulIdentifier","src":"10133:2:53"},"nativeSrc":"10133:62:53","nodeType":"YulFunctionCall","src":"10133:62:53"},"nativeSrc":"10130:88:53","nodeType":"YulIf","src":"10130:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10234:2:53","nodeType":"YulLiteral","src":"10234:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10238:10:53","nodeType":"YulIdentifier","src":"10238:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10227:6:53","nodeType":"YulIdentifier","src":"10227:6:53"},"nativeSrc":"10227:22:53","nodeType":"YulFunctionCall","src":"10227:22:53"},"nativeSrc":"10227:22:53","nodeType":"YulExpressionStatement","src":"10227:22:53"}]},"name":"finalize_allocation","nativeSrc":"9974:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10003:6:53","nodeType":"YulTypedName","src":"10003:6:53","type":""},{"name":"size","nativeSrc":"10011:4:53","nodeType":"YulTypedName","src":"10011:4:53","type":""}],"src":"9974:281:53"},{"body":{"nativeSrc":"10302:88:53","nodeType":"YulBlock","src":"10302:88:53","statements":[{"nativeSrc":"10312:30:53","nodeType":"YulAssignment","src":"10312:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10322:18:53","nodeType":"YulIdentifier","src":"10322:18:53"},"nativeSrc":"10322:20:53","nodeType":"YulFunctionCall","src":"10322:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10312:6:53","nodeType":"YulIdentifier","src":"10312:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10371:6:53","nodeType":"YulIdentifier","src":"10371:6:53"},{"name":"size","nativeSrc":"10379:4:53","nodeType":"YulIdentifier","src":"10379:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10351:19:53","nodeType":"YulIdentifier","src":"10351:19:53"},"nativeSrc":"10351:33:53","nodeType":"YulFunctionCall","src":"10351:33:53"},"nativeSrc":"10351:33:53","nodeType":"YulExpressionStatement","src":"10351:33:53"}]},"name":"allocate_memory","nativeSrc":"10261:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10286:4:53","nodeType":"YulTypedName","src":"10286:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10295:6:53","nodeType":"YulTypedName","src":"10295:6:53","type":""}],"src":"10261:129:53"},{"body":{"nativeSrc":"10485:28:53","nodeType":"YulBlock","src":"10485:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10502:1:53","nodeType":"YulLiteral","src":"10502:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10505:1:53","nodeType":"YulLiteral","src":"10505:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10495:6:53","nodeType":"YulIdentifier","src":"10495:6:53"},"nativeSrc":"10495:12:53","nodeType":"YulFunctionCall","src":"10495:12:53"},"nativeSrc":"10495:12:53","nodeType":"YulExpressionStatement","src":"10495:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10396:117:53","nodeType":"YulFunctionDefinition","src":"10396:117:53"},{"body":{"nativeSrc":"10576:56:53","nodeType":"YulBlock","src":"10576:56:53","statements":[{"body":{"nativeSrc":"10610:16:53","nodeType":"YulBlock","src":"10610:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10619:1:53","nodeType":"YulLiteral","src":"10619:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10622:1:53","nodeType":"YulLiteral","src":"10622:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10612:6:53","nodeType":"YulIdentifier","src":"10612:6:53"},"nativeSrc":"10612:12:53","nodeType":"YulFunctionCall","src":"10612:12:53"},"nativeSrc":"10612:12:53","nodeType":"YulExpressionStatement","src":"10612:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10599:5:53","nodeType":"YulIdentifier","src":"10599:5:53"},{"kind":"number","nativeSrc":"10606:1:53","nodeType":"YulLiteral","src":"10606:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"10596:2:53","nodeType":"YulIdentifier","src":"10596:2:53"},"nativeSrc":"10596:12:53","nodeType":"YulFunctionCall","src":"10596:12:53"}],"functionName":{"name":"iszero","nativeSrc":"10589:6:53","nodeType":"YulIdentifier","src":"10589:6:53"},"nativeSrc":"10589:20:53","nodeType":"YulFunctionCall","src":"10589:20:53"},"nativeSrc":"10586:40:53","nodeType":"YulIf","src":"10586:40:53"}]},"name":"validator_revert_t_enum$_Strategy_$16633","nativeSrc":"10519:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10569:5:53","nodeType":"YulTypedName","src":"10569:5:53","type":""}],"src":"10519:113:53"},{"body":{"nativeSrc":"10704:101:53","nodeType":"YulBlock","src":"10704:101:53","statements":[{"nativeSrc":"10714:29:53","nodeType":"YulAssignment","src":"10714:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10736:6:53","nodeType":"YulIdentifier","src":"10736:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10723:12:53","nodeType":"YulIdentifier","src":"10723:12:53"},"nativeSrc":"10723:20:53","nodeType":"YulFunctionCall","src":"10723:20:53"},"variableNames":[{"name":"value","nativeSrc":"10714:5:53","nodeType":"YulIdentifier","src":"10714:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10793:5:53","nodeType":"YulIdentifier","src":"10793:5:53"}],"functionName":{"name":"validator_revert_t_enum$_Strategy_$16633","nativeSrc":"10752:40:53","nodeType":"YulIdentifier","src":"10752:40:53"},"nativeSrc":"10752:47:53","nodeType":"YulFunctionCall","src":"10752:47:53"},"nativeSrc":"10752:47:53","nodeType":"YulExpressionStatement","src":"10752:47:53"}]},"name":"abi_decode_t_enum$_Strategy_$16633","nativeSrc":"10638:167:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10682:6:53","nodeType":"YulTypedName","src":"10682:6:53","type":""},{"name":"end","nativeSrc":"10690:3:53","nodeType":"YulTypedName","src":"10690:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10698:5:53","nodeType":"YulTypedName","src":"10698:5:53","type":""}],"src":"10638:167:53"},{"body":{"nativeSrc":"10937:838:53","nodeType":"YulBlock","src":"10937:838:53","statements":[{"body":{"nativeSrc":"10981:83:53","nodeType":"YulBlock","src":"10981:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10983:77:53","nodeType":"YulIdentifier","src":"10983:77:53"},"nativeSrc":"10983:79:53","nodeType":"YulFunctionCall","src":"10983:79:53"},"nativeSrc":"10983:79:53","nodeType":"YulExpressionStatement","src":"10983:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"10958:3:53","nodeType":"YulIdentifier","src":"10958:3:53"},{"name":"headStart","nativeSrc":"10963:9:53","nodeType":"YulIdentifier","src":"10963:9:53"}],"functionName":{"name":"sub","nativeSrc":"10954:3:53","nodeType":"YulIdentifier","src":"10954:3:53"},"nativeSrc":"10954:19:53","nodeType":"YulFunctionCall","src":"10954:19:53"},{"kind":"number","nativeSrc":"10975:4:53","nodeType":"YulLiteral","src":"10975:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"10950:3:53","nodeType":"YulIdentifier","src":"10950:3:53"},"nativeSrc":"10950:30:53","nodeType":"YulFunctionCall","src":"10950:30:53"},"nativeSrc":"10947:117:53","nodeType":"YulIf","src":"10947:117:53"},{"nativeSrc":"11073:30:53","nodeType":"YulAssignment","src":"11073:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"11098:4:53","nodeType":"YulLiteral","src":"11098:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"11082:15:53","nodeType":"YulIdentifier","src":"11082:15:53"},"nativeSrc":"11082:21:53","nodeType":"YulFunctionCall","src":"11082:21:53"},"variableNames":[{"name":"value","nativeSrc":"11073:5:53","nodeType":"YulIdentifier","src":"11073:5:53"}]},{"nativeSrc":"11113:151:53","nodeType":"YulBlock","src":"11113:151:53","statements":[{"nativeSrc":"11149:15:53","nodeType":"YulVariableDeclaration","src":"11149:15:53","value":{"kind":"number","nativeSrc":"11163:1:53","nodeType":"YulLiteral","src":"11163:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11153:6:53","nodeType":"YulTypedName","src":"11153:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11189:5:53","nodeType":"YulIdentifier","src":"11189:5:53"},{"kind":"number","nativeSrc":"11196:4:53","nodeType":"YulLiteral","src":"11196:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11185:3:53","nodeType":"YulIdentifier","src":"11185:3:53"},"nativeSrc":"11185:16:53","nodeType":"YulFunctionCall","src":"11185:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11228:9:53","nodeType":"YulIdentifier","src":"11228:9:53"},{"name":"offset","nativeSrc":"11239:6:53","nodeType":"YulIdentifier","src":"11239:6:53"}],"functionName":{"name":"add","nativeSrc":"11224:3:53","nodeType":"YulIdentifier","src":"11224:3:53"},"nativeSrc":"11224:22:53","nodeType":"YulFunctionCall","src":"11224:22:53"},{"name":"end","nativeSrc":"11248:3:53","nodeType":"YulIdentifier","src":"11248:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11203:20:53","nodeType":"YulIdentifier","src":"11203:20:53"},"nativeSrc":"11203:49:53","nodeType":"YulFunctionCall","src":"11203:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11178:6:53","nodeType":"YulIdentifier","src":"11178:6:53"},"nativeSrc":"11178:75:53","nodeType":"YulFunctionCall","src":"11178:75:53"},"nativeSrc":"11178:75:53","nodeType":"YulExpressionStatement","src":"11178:75:53"}]},{"nativeSrc":"11274:169:53","nodeType":"YulBlock","src":"11274:169:53","statements":[{"nativeSrc":"11313:16:53","nodeType":"YulVariableDeclaration","src":"11313:16:53","value":{"kind":"number","nativeSrc":"11327:2:53","nodeType":"YulLiteral","src":"11327:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11317:6:53","nodeType":"YulTypedName","src":"11317:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11354:5:53","nodeType":"YulIdentifier","src":"11354:5:53"},{"kind":"number","nativeSrc":"11361:4:53","nodeType":"YulLiteral","src":"11361:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11350:3:53","nodeType":"YulIdentifier","src":"11350:3:53"},"nativeSrc":"11350:16:53","nodeType":"YulFunctionCall","src":"11350:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11407:9:53","nodeType":"YulIdentifier","src":"11407:9:53"},{"name":"offset","nativeSrc":"11418:6:53","nodeType":"YulIdentifier","src":"11418:6:53"}],"functionName":{"name":"add","nativeSrc":"11403:3:53","nodeType":"YulIdentifier","src":"11403:3:53"},"nativeSrc":"11403:22:53","nodeType":"YulFunctionCall","src":"11403:22:53"},{"name":"end","nativeSrc":"11427:3:53","nodeType":"YulIdentifier","src":"11427:3:53"}],"functionName":{"name":"abi_decode_t_enum$_Strategy_$16633","nativeSrc":"11368:34:53","nodeType":"YulIdentifier","src":"11368:34:53"},"nativeSrc":"11368:63:53","nodeType":"YulFunctionCall","src":"11368:63:53"}],"functionName":{"name":"mstore","nativeSrc":"11343:6:53","nodeType":"YulIdentifier","src":"11343:6:53"},"nativeSrc":"11343:89:53","nodeType":"YulFunctionCall","src":"11343:89:53"},"nativeSrc":"11343:89:53","nodeType":"YulExpressionStatement","src":"11343:89:53"}]},{"nativeSrc":"11453:153:53","nodeType":"YulBlock","src":"11453:153:53","statements":[{"nativeSrc":"11490:16:53","nodeType":"YulVariableDeclaration","src":"11490:16:53","value":{"kind":"number","nativeSrc":"11504:2:53","nodeType":"YulLiteral","src":"11504:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11494:6:53","nodeType":"YulTypedName","src":"11494:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11531:5:53","nodeType":"YulIdentifier","src":"11531:5:53"},{"kind":"number","nativeSrc":"11538:4:53","nodeType":"YulLiteral","src":"11538:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11527:3:53","nodeType":"YulIdentifier","src":"11527:3:53"},"nativeSrc":"11527:16:53","nodeType":"YulFunctionCall","src":"11527:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11570:9:53","nodeType":"YulIdentifier","src":"11570:9:53"},{"name":"offset","nativeSrc":"11581:6:53","nodeType":"YulIdentifier","src":"11581:6:53"}],"functionName":{"name":"add","nativeSrc":"11566:3:53","nodeType":"YulIdentifier","src":"11566:3:53"},"nativeSrc":"11566:22:53","nodeType":"YulFunctionCall","src":"11566:22:53"},{"name":"end","nativeSrc":"11590:3:53","nodeType":"YulIdentifier","src":"11590:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11545:20:53","nodeType":"YulIdentifier","src":"11545:20:53"},"nativeSrc":"11545:49:53","nodeType":"YulFunctionCall","src":"11545:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11520:6:53","nodeType":"YulIdentifier","src":"11520:6:53"},"nativeSrc":"11520:75:53","nodeType":"YulFunctionCall","src":"11520:75:53"},"nativeSrc":"11520:75:53","nodeType":"YulExpressionStatement","src":"11520:75:53"}]},{"nativeSrc":"11616:152:53","nodeType":"YulBlock","src":"11616:152:53","statements":[{"nativeSrc":"11652:16:53","nodeType":"YulVariableDeclaration","src":"11652:16:53","value":{"kind":"number","nativeSrc":"11666:2:53","nodeType":"YulLiteral","src":"11666:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11656:6:53","nodeType":"YulTypedName","src":"11656:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11693:5:53","nodeType":"YulIdentifier","src":"11693:5:53"},{"kind":"number","nativeSrc":"11700:4:53","nodeType":"YulLiteral","src":"11700:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11689:3:53","nodeType":"YulIdentifier","src":"11689:3:53"},"nativeSrc":"11689:16:53","nodeType":"YulFunctionCall","src":"11689:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11732:9:53","nodeType":"YulIdentifier","src":"11732:9:53"},{"name":"offset","nativeSrc":"11743:6:53","nodeType":"YulIdentifier","src":"11743:6:53"}],"functionName":{"name":"add","nativeSrc":"11728:3:53","nodeType":"YulIdentifier","src":"11728:3:53"},"nativeSrc":"11728:22:53","nodeType":"YulFunctionCall","src":"11728:22:53"},{"name":"end","nativeSrc":"11752:3:53","nodeType":"YulIdentifier","src":"11752:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11707:20:53","nodeType":"YulIdentifier","src":"11707:20:53"},"nativeSrc":"11707:49:53","nodeType":"YulFunctionCall","src":"11707:49:53"}],"functionName":{"name":"mstore","nativeSrc":"11682:6:53","nodeType":"YulIdentifier","src":"11682:6:53"},"nativeSrc":"11682:75:53","nodeType":"YulFunctionCall","src":"11682:75:53"},"nativeSrc":"11682:75:53","nodeType":"YulExpressionStatement","src":"11682:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$16644_memory_ptr","nativeSrc":"10852:923:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10912:9:53","nodeType":"YulTypedName","src":"10912:9:53","type":""},{"name":"end","nativeSrc":"10923:3:53","nodeType":"YulTypedName","src":"10923:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10931:5:53","nodeType":"YulTypedName","src":"10931:5:53","type":""}],"src":"10852:923:53"},{"body":{"nativeSrc":"11877:294:53","nodeType":"YulBlock","src":"11877:294:53","statements":[{"body":{"nativeSrc":"11924:83:53","nodeType":"YulBlock","src":"11924:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11926:77:53","nodeType":"YulIdentifier","src":"11926:77:53"},"nativeSrc":"11926:79:53","nodeType":"YulFunctionCall","src":"11926:79:53"},"nativeSrc":"11926:79:53","nodeType":"YulExpressionStatement","src":"11926:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11898:7:53","nodeType":"YulIdentifier","src":"11898:7:53"},{"name":"headStart","nativeSrc":"11907:9:53","nodeType":"YulIdentifier","src":"11907:9:53"}],"functionName":{"name":"sub","nativeSrc":"11894:3:53","nodeType":"YulIdentifier","src":"11894:3:53"},"nativeSrc":"11894:23:53","nodeType":"YulFunctionCall","src":"11894:23:53"},{"kind":"number","nativeSrc":"11919:3:53","nodeType":"YulLiteral","src":"11919:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11890:3:53","nodeType":"YulIdentifier","src":"11890:3:53"},"nativeSrc":"11890:33:53","nodeType":"YulFunctionCall","src":"11890:33:53"},"nativeSrc":"11887:120:53","nodeType":"YulIf","src":"11887:120:53"},{"nativeSrc":"12017:147:53","nodeType":"YulBlock","src":"12017:147:53","statements":[{"nativeSrc":"12032:15:53","nodeType":"YulVariableDeclaration","src":"12032:15:53","value":{"kind":"number","nativeSrc":"12046:1:53","nodeType":"YulLiteral","src":"12046:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12036:6:53","nodeType":"YulTypedName","src":"12036:6:53","type":""}]},{"nativeSrc":"12061:93:53","nodeType":"YulAssignment","src":"12061:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12126:9:53","nodeType":"YulIdentifier","src":"12126:9:53"},{"name":"offset","nativeSrc":"12137:6:53","nodeType":"YulIdentifier","src":"12137:6:53"}],"functionName":{"name":"add","nativeSrc":"12122:3:53","nodeType":"YulIdentifier","src":"12122:3:53"},"nativeSrc":"12122:22:53","nodeType":"YulFunctionCall","src":"12122:22:53"},{"name":"dataEnd","nativeSrc":"12146:7:53","nodeType":"YulIdentifier","src":"12146:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$16644_memory_ptr","nativeSrc":"12071:50:53","nodeType":"YulIdentifier","src":"12071:50:53"},"nativeSrc":"12071:83:53","nodeType":"YulFunctionCall","src":"12071:83:53"},"variableNames":[{"name":"value0","nativeSrc":"12061:6:53","nodeType":"YulIdentifier","src":"12061:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$16644_memory_ptr","nativeSrc":"11781:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11847:9:53","nodeType":"YulTypedName","src":"11847:9:53","type":""},{"name":"dataEnd","nativeSrc":"11858:7:53","nodeType":"YulTypedName","src":"11858:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11870:6:53","nodeType":"YulTypedName","src":"11870:6:53","type":""}],"src":"11781:390:53"},{"body":{"nativeSrc":"12225:362:53","nodeType":"YulBlock","src":"12225:362:53","statements":[{"nativeSrc":"12235:25:53","nodeType":"YulAssignment","src":"12235:25:53","value":{"arguments":[{"name":"x","nativeSrc":"12258:1:53","nodeType":"YulIdentifier","src":"12258:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12240:17:53","nodeType":"YulIdentifier","src":"12240:17:53"},"nativeSrc":"12240:20:53","nodeType":"YulFunctionCall","src":"12240:20:53"},"variableNames":[{"name":"x","nativeSrc":"12235:1:53","nodeType":"YulIdentifier","src":"12235:1:53"}]},{"nativeSrc":"12269:25:53","nodeType":"YulAssignment","src":"12269:25:53","value":{"arguments":[{"name":"y","nativeSrc":"12292:1:53","nodeType":"YulIdentifier","src":"12292:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12274:17:53","nodeType":"YulIdentifier","src":"12274:17:53"},"nativeSrc":"12274:20:53","nodeType":"YulFunctionCall","src":"12274:20:53"},"variableNames":[{"name":"y","nativeSrc":"12269:1:53","nodeType":"YulIdentifier","src":"12269:1:53"}]},{"nativeSrc":"12303:28:53","nodeType":"YulVariableDeclaration","src":"12303:28:53","value":{"arguments":[{"name":"x","nativeSrc":"12326:1:53","nodeType":"YulIdentifier","src":"12326:1:53"},{"name":"y","nativeSrc":"12329:1:53","nodeType":"YulIdentifier","src":"12329:1:53"}],"functionName":{"name":"mul","nativeSrc":"12322:3:53","nodeType":"YulIdentifier","src":"12322:3:53"},"nativeSrc":"12322:9:53","nodeType":"YulFunctionCall","src":"12322:9:53"},"variables":[{"name":"product_raw","nativeSrc":"12307:11:53","nodeType":"YulTypedName","src":"12307:11:53","type":""}]},{"nativeSrc":"12340:41:53","nodeType":"YulAssignment","src":"12340:41:53","value":{"arguments":[{"name":"product_raw","nativeSrc":"12369:11:53","nodeType":"YulIdentifier","src":"12369:11:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12351:17:53","nodeType":"YulIdentifier","src":"12351:17:53"},"nativeSrc":"12351:30:53","nodeType":"YulFunctionCall","src":"12351:30:53"},"variableNames":[{"name":"product","nativeSrc":"12340:7:53","nodeType":"YulIdentifier","src":"12340:7:53"}]},{"body":{"nativeSrc":"12558:22:53","nodeType":"YulBlock","src":"12558:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12560:16:53","nodeType":"YulIdentifier","src":"12560:16:53"},"nativeSrc":"12560:18:53","nodeType":"YulFunctionCall","src":"12560:18:53"},"nativeSrc":"12560:18:53","nodeType":"YulExpressionStatement","src":"12560:18:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12491:1:53","nodeType":"YulIdentifier","src":"12491:1:53"}],"functionName":{"name":"iszero","nativeSrc":"12484:6:53","nodeType":"YulIdentifier","src":"12484:6:53"},"nativeSrc":"12484:9:53","nodeType":"YulFunctionCall","src":"12484:9:53"},{"arguments":[{"name":"y","nativeSrc":"12514:1:53","nodeType":"YulIdentifier","src":"12514:1:53"},{"arguments":[{"name":"product","nativeSrc":"12521:7:53","nodeType":"YulIdentifier","src":"12521:7:53"},{"name":"x","nativeSrc":"12530:1:53","nodeType":"YulIdentifier","src":"12530:1:53"}],"functionName":{"name":"div","nativeSrc":"12517:3:53","nodeType":"YulIdentifier","src":"12517:3:53"},"nativeSrc":"12517:15:53","nodeType":"YulFunctionCall","src":"12517:15:53"}],"functionName":{"name":"eq","nativeSrc":"12511:2:53","nodeType":"YulIdentifier","src":"12511:2:53"},"nativeSrc":"12511:22:53","nodeType":"YulFunctionCall","src":"12511:22:53"}],"functionName":{"name":"or","nativeSrc":"12464:2:53","nodeType":"YulIdentifier","src":"12464:2:53"},"nativeSrc":"12464:83:53","nodeType":"YulFunctionCall","src":"12464:83:53"}],"functionName":{"name":"iszero","nativeSrc":"12444:6:53","nodeType":"YulIdentifier","src":"12444:6:53"},"nativeSrc":"12444:113:53","nodeType":"YulFunctionCall","src":"12444:113:53"},"nativeSrc":"12441:139:53","nodeType":"YulIf","src":"12441:139:53"}]},"name":"checked_mul_t_uint256","nativeSrc":"12177:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12208:1:53","nodeType":"YulTypedName","src":"12208:1:53","type":""},{"name":"y","nativeSrc":"12211:1:53","nodeType":"YulTypedName","src":"12211:1:53","type":""}],"returnVariables":[{"name":"product","nativeSrc":"12217:7:53","nodeType":"YulTypedName","src":"12217:7:53","type":""}],"src":"12177:410:53"},{"body":{"nativeSrc":"12747:288:53","nodeType":"YulBlock","src":"12747:288:53","statements":[{"nativeSrc":"12757:26:53","nodeType":"YulAssignment","src":"12757:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12769:9:53","nodeType":"YulIdentifier","src":"12769:9:53"},{"kind":"number","nativeSrc":"12780:2:53","nodeType":"YulLiteral","src":"12780:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12765:3:53","nodeType":"YulIdentifier","src":"12765:3:53"},"nativeSrc":"12765:18:53","nodeType":"YulFunctionCall","src":"12765:18:53"},"variableNames":[{"name":"tail","nativeSrc":"12757:4:53","nodeType":"YulIdentifier","src":"12757:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12837:6:53","nodeType":"YulIdentifier","src":"12837:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12850:9:53","nodeType":"YulIdentifier","src":"12850:9:53"},{"kind":"number","nativeSrc":"12861:1:53","nodeType":"YulLiteral","src":"12861:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12846:3:53","nodeType":"YulIdentifier","src":"12846:3:53"},"nativeSrc":"12846:17:53","nodeType":"YulFunctionCall","src":"12846:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12793:43:53","nodeType":"YulIdentifier","src":"12793:43:53"},"nativeSrc":"12793:71:53","nodeType":"YulFunctionCall","src":"12793:71:53"},"nativeSrc":"12793:71:53","nodeType":"YulExpressionStatement","src":"12793:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12918:6:53","nodeType":"YulIdentifier","src":"12918:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12931:9:53","nodeType":"YulIdentifier","src":"12931:9:53"},{"kind":"number","nativeSrc":"12942:2:53","nodeType":"YulLiteral","src":"12942:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12927:3:53","nodeType":"YulIdentifier","src":"12927:3:53"},"nativeSrc":"12927:18:53","nodeType":"YulFunctionCall","src":"12927:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12874:43:53","nodeType":"YulIdentifier","src":"12874:43:53"},"nativeSrc":"12874:72:53","nodeType":"YulFunctionCall","src":"12874:72:53"},"nativeSrc":"12874:72:53","nodeType":"YulExpressionStatement","src":"12874:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"13000:6:53","nodeType":"YulIdentifier","src":"13000:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13013:9:53","nodeType":"YulIdentifier","src":"13013:9:53"},{"kind":"number","nativeSrc":"13024:2:53","nodeType":"YulLiteral","src":"13024:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13009:3:53","nodeType":"YulIdentifier","src":"13009:3:53"},"nativeSrc":"13009:18:53","nodeType":"YulFunctionCall","src":"13009:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12956:43:53","nodeType":"YulIdentifier","src":"12956:43:53"},"nativeSrc":"12956:72:53","nodeType":"YulFunctionCall","src":"12956:72:53"},"nativeSrc":"12956:72:53","nodeType":"YulExpressionStatement","src":"12956:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12593:442:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12703:9:53","nodeType":"YulTypedName","src":"12703:9:53","type":""},{"name":"value2","nativeSrc":"12715:6:53","nodeType":"YulTypedName","src":"12715:6:53","type":""},{"name":"value1","nativeSrc":"12723:6:53","nodeType":"YulTypedName","src":"12723:6:53","type":""},{"name":"value0","nativeSrc":"12731:6:53","nodeType":"YulTypedName","src":"12731:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12742:4:53","nodeType":"YulTypedName","src":"12742:4:53","type":""}],"src":"12593:442:53"},{"body":{"nativeSrc":"13096:53:53","nodeType":"YulBlock","src":"13096:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13113:3:53","nodeType":"YulIdentifier","src":"13113:3:53"},{"arguments":[{"name":"value","nativeSrc":"13136:5:53","nodeType":"YulIdentifier","src":"13136:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13118:17:53","nodeType":"YulIdentifier","src":"13118:17:53"},"nativeSrc":"13118:24:53","nodeType":"YulFunctionCall","src":"13118:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13106:6:53","nodeType":"YulIdentifier","src":"13106:6:53"},"nativeSrc":"13106:37:53","nodeType":"YulFunctionCall","src":"13106:37:53"},"nativeSrc":"13106:37:53","nodeType":"YulExpressionStatement","src":"13106:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13041:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13084:5:53","nodeType":"YulTypedName","src":"13084:5:53","type":""},{"name":"pos","nativeSrc":"13091:3:53","nodeType":"YulTypedName","src":"13091:3:53","type":""}],"src":"13041:108:53"},{"body":{"nativeSrc":"13359:219:53","nodeType":"YulBlock","src":"13359:219:53","statements":[{"nativeSrc":"13369:26:53","nodeType":"YulVariableDeclaration","src":"13369:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"13385:3:53","nodeType":"YulIdentifier","src":"13385:3:53"},{"kind":"number","nativeSrc":"13390:4:53","nodeType":"YulLiteral","src":"13390:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13381:3:53","nodeType":"YulIdentifier","src":"13381:3:53"},"nativeSrc":"13381:14:53","nodeType":"YulFunctionCall","src":"13381:14:53"},"variables":[{"name":"tail","nativeSrc":"13373:4:53","nodeType":"YulTypedName","src":"13373:4:53","type":""}]},{"nativeSrc":"13405:166:53","nodeType":"YulBlock","src":"13405:166:53","statements":[{"nativeSrc":"13442:43:53","nodeType":"YulVariableDeclaration","src":"13442:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13472:5:53","nodeType":"YulIdentifier","src":"13472:5:53"},{"kind":"number","nativeSrc":"13479:4:53","nodeType":"YulLiteral","src":"13479:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13468:3:53","nodeType":"YulIdentifier","src":"13468:3:53"},"nativeSrc":"13468:16:53","nodeType":"YulFunctionCall","src":"13468:16:53"}],"functionName":{"name":"mload","nativeSrc":"13462:5:53","nodeType":"YulIdentifier","src":"13462:5:53"},"nativeSrc":"13462:23:53","nodeType":"YulFunctionCall","src":"13462:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"13446:12:53","nodeType":"YulTypedName","src":"13446:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13532:12:53","nodeType":"YulIdentifier","src":"13532:12:53"},{"arguments":[{"name":"pos","nativeSrc":"13550:3:53","nodeType":"YulIdentifier","src":"13550:3:53"},{"kind":"number","nativeSrc":"13555:4:53","nodeType":"YulLiteral","src":"13555:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13546:3:53","nodeType":"YulIdentifier","src":"13546:3:53"},"nativeSrc":"13546:14:53","nodeType":"YulFunctionCall","src":"13546:14:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13498:33:53","nodeType":"YulIdentifier","src":"13498:33:53"},"nativeSrc":"13498:63:53","nodeType":"YulFunctionCall","src":"13498:63:53"},"nativeSrc":"13498:63:53","nodeType":"YulExpressionStatement","src":"13498:63:53"}]}]},"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"13225:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13346:5:53","nodeType":"YulTypedName","src":"13346:5:53","type":""},{"name":"pos","nativeSrc":"13353:3:53","nodeType":"YulTypedName","src":"13353:3:53","type":""}],"src":"13225:353:53"},{"body":{"nativeSrc":"13750:192:53","nodeType":"YulBlock","src":"13750:192:53","statements":[{"nativeSrc":"13760:26:53","nodeType":"YulAssignment","src":"13760:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13772:9:53","nodeType":"YulIdentifier","src":"13772:9:53"},{"kind":"number","nativeSrc":"13783:2:53","nodeType":"YulLiteral","src":"13783:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13768:3:53","nodeType":"YulIdentifier","src":"13768:3:53"},"nativeSrc":"13768:18:53","nodeType":"YulFunctionCall","src":"13768:18:53"},"variableNames":[{"name":"tail","nativeSrc":"13760:4:53","nodeType":"YulIdentifier","src":"13760:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13908:6:53","nodeType":"YulIdentifier","src":"13908:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"13921:9:53","nodeType":"YulIdentifier","src":"13921:9:53"},{"kind":"number","nativeSrc":"13932:1:53","nodeType":"YulLiteral","src":"13932:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13917:3:53","nodeType":"YulIdentifier","src":"13917:3:53"},"nativeSrc":"13917:17:53","nodeType":"YulFunctionCall","src":"13917:17:53"}],"functionName":{"name":"abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack","nativeSrc":"13796:111:53","nodeType":"YulIdentifier","src":"13796:111:53"},"nativeSrc":"13796:139:53","nodeType":"YulFunctionCall","src":"13796:139:53"},"nativeSrc":"13796:139:53","nodeType":"YulExpressionStatement","src":"13796:139:53"}]},"name":"abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed","nativeSrc":"13584:358:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13722:9:53","nodeType":"YulTypedName","src":"13722:9:53","type":""},{"name":"value0","nativeSrc":"13734:6:53","nodeType":"YulTypedName","src":"13734:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13745:4:53","nodeType":"YulTypedName","src":"13745:4:53","type":""}],"src":"13584:358:53"},{"body":{"nativeSrc":"14006:62:53","nodeType":"YulBlock","src":"14006:62:53","statements":[{"body":{"nativeSrc":"14040:22:53","nodeType":"YulBlock","src":"14040:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"14042:16:53","nodeType":"YulIdentifier","src":"14042:16:53"},"nativeSrc":"14042:18:53","nodeType":"YulFunctionCall","src":"14042:18:53"},"nativeSrc":"14042:18:53","nodeType":"YulExpressionStatement","src":"14042:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14029:5:53","nodeType":"YulIdentifier","src":"14029:5:53"},{"kind":"number","nativeSrc":"14036:1:53","nodeType":"YulLiteral","src":"14036:1:53","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"14026:2:53","nodeType":"YulIdentifier","src":"14026:2:53"},"nativeSrc":"14026:12:53","nodeType":"YulFunctionCall","src":"14026:12:53"}],"functionName":{"name":"iszero","nativeSrc":"14019:6:53","nodeType":"YulIdentifier","src":"14019:6:53"},"nativeSrc":"14019:20:53","nodeType":"YulFunctionCall","src":"14019:20:53"},"nativeSrc":"14016:46:53","nodeType":"YulIf","src":"14016:46:53"}]},"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"13948:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13999:5:53","nodeType":"YulTypedName","src":"13999:5:53","type":""}],"src":"13948:120:53"},{"body":{"nativeSrc":"14134:81:53","nodeType":"YulBlock","src":"14134:81:53","statements":[{"nativeSrc":"14144:16:53","nodeType":"YulAssignment","src":"14144:16:53","value":{"name":"value","nativeSrc":"14155:5:53","nodeType":"YulIdentifier","src":"14155:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"14144:7:53","nodeType":"YulIdentifier","src":"14144:7:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14203:5:53","nodeType":"YulIdentifier","src":"14203:5:53"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$13471","nativeSrc":"14161:41:53","nodeType":"YulIdentifier","src":"14161:41:53"},"nativeSrc":"14161:48:53","nodeType":"YulFunctionCall","src":"14161:48:53"},"nativeSrc":"14161:48:53","nodeType":"YulExpressionStatement","src":"14161:48:53"}]},"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"14074:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14116:5:53","nodeType":"YulTypedName","src":"14116:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14126:7:53","nodeType":"YulTypedName","src":"14126:7:53","type":""}],"src":"14074:141:53"},{"body":{"nativeSrc":"14294:68:53","nodeType":"YulBlock","src":"14294:68:53","statements":[{"nativeSrc":"14304:52:53","nodeType":"YulAssignment","src":"14304:52:53","value":{"arguments":[{"name":"value","nativeSrc":"14350:5:53","nodeType":"YulIdentifier","src":"14350:5:53"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$13471","nativeSrc":"14317:32:53","nodeType":"YulIdentifier","src":"14317:32:53"},"nativeSrc":"14317:39:53","nodeType":"YulFunctionCall","src":"14317:39:53"},"variableNames":[{"name":"converted","nativeSrc":"14304:9:53","nodeType":"YulIdentifier","src":"14304:9:53"}]}]},"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"14221:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14274:5:53","nodeType":"YulTypedName","src":"14274:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"14284:9:53","nodeType":"YulTypedName","src":"14284:9:53","type":""}],"src":"14221:141:53"},{"body":{"nativeSrc":"14436:79:53","nodeType":"YulBlock","src":"14436:79:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14453:3:53","nodeType":"YulIdentifier","src":"14453:3:53"},{"arguments":[{"name":"value","nativeSrc":"14502:5:53","nodeType":"YulIdentifier","src":"14502:5:53"}],"functionName":{"name":"convert_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"14458:43:53","nodeType":"YulIdentifier","src":"14458:43:53"},"nativeSrc":"14458:50:53","nodeType":"YulFunctionCall","src":"14458:50:53"}],"functionName":{"name":"mstore","nativeSrc":"14446:6:53","nodeType":"YulIdentifier","src":"14446:6:53"},"nativeSrc":"14446:63:53","nodeType":"YulFunctionCall","src":"14446:63:53"},"nativeSrc":"14446:63:53","nodeType":"YulExpressionStatement","src":"14446:63:53"}]},"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"14368:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14424:5:53","nodeType":"YulTypedName","src":"14424:5:53","type":""},{"name":"pos","nativeSrc":"14431:3:53","nodeType":"YulTypedName","src":"14431:3:53","type":""}],"src":"14368:147:53"},{"body":{"nativeSrc":"14576:53:53","nodeType":"YulBlock","src":"14576:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14593:3:53","nodeType":"YulIdentifier","src":"14593:3:53"},{"arguments":[{"name":"value","nativeSrc":"14616:5:53","nodeType":"YulIdentifier","src":"14616:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"14598:17:53","nodeType":"YulIdentifier","src":"14598:17:53"},"nativeSrc":"14598:24:53","nodeType":"YulFunctionCall","src":"14598:24:53"}],"functionName":{"name":"mstore","nativeSrc":"14586:6:53","nodeType":"YulIdentifier","src":"14586:6:53"},"nativeSrc":"14586:37:53","nodeType":"YulFunctionCall","src":"14586:37:53"},"nativeSrc":"14586:37:53","nodeType":"YulExpressionStatement","src":"14586:37:53"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"14521:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14564:5:53","nodeType":"YulTypedName","src":"14564:5:53","type":""},{"name":"pos","nativeSrc":"14571:3:53","nodeType":"YulTypedName","src":"14571:3:53","type":""}],"src":"14521:108:53"},{"body":{"nativeSrc":"14720:73:53","nodeType":"YulBlock","src":"14720:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14737:3:53","nodeType":"YulIdentifier","src":"14737:3:53"},{"name":"length","nativeSrc":"14742:6:53","nodeType":"YulIdentifier","src":"14742:6:53"}],"functionName":{"name":"mstore","nativeSrc":"14730:6:53","nodeType":"YulIdentifier","src":"14730:6:53"},"nativeSrc":"14730:19:53","nodeType":"YulFunctionCall","src":"14730:19:53"},"nativeSrc":"14730:19:53","nodeType":"YulExpressionStatement","src":"14730:19:53"},{"nativeSrc":"14758:29:53","nodeType":"YulAssignment","src":"14758:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"14777:3:53","nodeType":"YulIdentifier","src":"14777:3:53"},{"kind":"number","nativeSrc":"14782:4:53","nodeType":"YulLiteral","src":"14782:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14773:3:53","nodeType":"YulIdentifier","src":"14773:3:53"},"nativeSrc":"14773:14:53","nodeType":"YulFunctionCall","src":"14773:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"14758:11:53","nodeType":"YulIdentifier","src":"14758:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"14635:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14692:3:53","nodeType":"YulTypedName","src":"14692:3:53","type":""},{"name":"length","nativeSrc":"14697:6:53","nodeType":"YulTypedName","src":"14697:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14708:11:53","nodeType":"YulTypedName","src":"14708:11:53","type":""}],"src":"14635:158:53"},{"body":{"nativeSrc":"14879:273:53","nodeType":"YulBlock","src":"14879:273:53","statements":[{"nativeSrc":"14889:52:53","nodeType":"YulVariableDeclaration","src":"14889:52:53","value":{"arguments":[{"name":"value","nativeSrc":"14935:5:53","nodeType":"YulIdentifier","src":"14935:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"14903:31:53","nodeType":"YulIdentifier","src":"14903:31:53"},"nativeSrc":"14903:38:53","nodeType":"YulFunctionCall","src":"14903:38:53"},"variables":[{"name":"length","nativeSrc":"14893:6:53","nodeType":"YulTypedName","src":"14893:6:53","type":""}]},{"nativeSrc":"14950:67:53","nodeType":"YulAssignment","src":"14950:67:53","value":{"arguments":[{"name":"pos","nativeSrc":"15005:3:53","nodeType":"YulIdentifier","src":"15005:3:53"},{"name":"length","nativeSrc":"15010:6:53","nodeType":"YulIdentifier","src":"15010:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"14957:47:53","nodeType":"YulIdentifier","src":"14957:47:53"},"nativeSrc":"14957:60:53","nodeType":"YulFunctionCall","src":"14957:60:53"},"variableNames":[{"name":"pos","nativeSrc":"14950:3:53","nodeType":"YulIdentifier","src":"14950:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15065:5:53","nodeType":"YulIdentifier","src":"15065:5:53"},{"kind":"number","nativeSrc":"15072:4:53","nodeType":"YulLiteral","src":"15072:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15061:3:53","nodeType":"YulIdentifier","src":"15061:3:53"},"nativeSrc":"15061:16:53","nodeType":"YulFunctionCall","src":"15061:16:53"},{"name":"pos","nativeSrc":"15079:3:53","nodeType":"YulIdentifier","src":"15079:3:53"},{"name":"length","nativeSrc":"15084:6:53","nodeType":"YulIdentifier","src":"15084:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15026:34:53","nodeType":"YulIdentifier","src":"15026:34:53"},"nativeSrc":"15026:65:53","nodeType":"YulFunctionCall","src":"15026:65:53"},"nativeSrc":"15026:65:53","nodeType":"YulExpressionStatement","src":"15026:65:53"},{"nativeSrc":"15100:46:53","nodeType":"YulAssignment","src":"15100:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"15111:3:53","nodeType":"YulIdentifier","src":"15111:3:53"},{"arguments":[{"name":"length","nativeSrc":"15138:6:53","nodeType":"YulIdentifier","src":"15138:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15116:21:53","nodeType":"YulIdentifier","src":"15116:21:53"},"nativeSrc":"15116:29:53","nodeType":"YulFunctionCall","src":"15116:29:53"}],"functionName":{"name":"add","nativeSrc":"15107:3:53","nodeType":"YulIdentifier","src":"15107:3:53"},"nativeSrc":"15107:39:53","nodeType":"YulFunctionCall","src":"15107:39:53"},"variableNames":[{"name":"end","nativeSrc":"15100:3:53","nodeType":"YulIdentifier","src":"15100:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"14799:353:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14860:5:53","nodeType":"YulTypedName","src":"14860:5:53","type":""},{"name":"pos","nativeSrc":"14867:3:53","nodeType":"YulTypedName","src":"14867:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14875:3:53","nodeType":"YulTypedName","src":"14875:3:53","type":""}],"src":"14799:353:53"},{"body":{"nativeSrc":"15342:849:53","nodeType":"YulBlock","src":"15342:849:53","statements":[{"nativeSrc":"15352:26:53","nodeType":"YulVariableDeclaration","src":"15352:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"15368:3:53","nodeType":"YulIdentifier","src":"15368:3:53"},{"kind":"number","nativeSrc":"15373:4:53","nodeType":"YulLiteral","src":"15373:4:53","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15364:3:53","nodeType":"YulIdentifier","src":"15364:3:53"},"nativeSrc":"15364:14:53","nodeType":"YulFunctionCall","src":"15364:14:53"},"variables":[{"name":"tail","nativeSrc":"15356:4:53","nodeType":"YulTypedName","src":"15356:4:53","type":""}]},{"nativeSrc":"15388:182:53","nodeType":"YulBlock","src":"15388:182:53","statements":[{"nativeSrc":"15428:43:53","nodeType":"YulVariableDeclaration","src":"15428:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15458:5:53","nodeType":"YulIdentifier","src":"15458:5:53"},{"kind":"number","nativeSrc":"15465:4:53","nodeType":"YulLiteral","src":"15465:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15454:3:53","nodeType":"YulIdentifier","src":"15454:3:53"},"nativeSrc":"15454:16:53","nodeType":"YulFunctionCall","src":"15454:16:53"}],"functionName":{"name":"mload","nativeSrc":"15448:5:53","nodeType":"YulIdentifier","src":"15448:5:53"},"nativeSrc":"15448:23:53","nodeType":"YulFunctionCall","src":"15448:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15432:12:53","nodeType":"YulTypedName","src":"15432:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"15531:12:53","nodeType":"YulIdentifier","src":"15531:12:53"},{"arguments":[{"name":"pos","nativeSrc":"15549:3:53","nodeType":"YulIdentifier","src":"15549:3:53"},{"kind":"number","nativeSrc":"15554:4:53","nodeType":"YulLiteral","src":"15554:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15545:3:53","nodeType":"YulIdentifier","src":"15545:3:53"},"nativeSrc":"15545:14:53","nodeType":"YulFunctionCall","src":"15545:14:53"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$13471_to_t_uint8","nativeSrc":"15484:46:53","nodeType":"YulIdentifier","src":"15484:46:53"},"nativeSrc":"15484:76:53","nodeType":"YulFunctionCall","src":"15484:76:53"},"nativeSrc":"15484:76:53","nodeType":"YulExpressionStatement","src":"15484:76:53"}]},{"nativeSrc":"15580:165:53","nodeType":"YulBlock","src":"15580:165:53","statements":[{"nativeSrc":"15616:43:53","nodeType":"YulVariableDeclaration","src":"15616:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15646:5:53","nodeType":"YulIdentifier","src":"15646:5:53"},{"kind":"number","nativeSrc":"15653:4:53","nodeType":"YulLiteral","src":"15653:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15642:3:53","nodeType":"YulIdentifier","src":"15642:3:53"},"nativeSrc":"15642:16:53","nodeType":"YulFunctionCall","src":"15642:16:53"}],"functionName":{"name":"mload","nativeSrc":"15636:5:53","nodeType":"YulIdentifier","src":"15636:5:53"},"nativeSrc":"15636:23:53","nodeType":"YulFunctionCall","src":"15636:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15620:12:53","nodeType":"YulTypedName","src":"15620:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"15706:12:53","nodeType":"YulIdentifier","src":"15706:12:53"},{"arguments":[{"name":"pos","nativeSrc":"15724:3:53","nodeType":"YulIdentifier","src":"15724:3:53"},{"kind":"number","nativeSrc":"15729:4:53","nodeType":"YulLiteral","src":"15729:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15720:3:53","nodeType":"YulIdentifier","src":"15720:3:53"},"nativeSrc":"15720:14:53","nodeType":"YulFunctionCall","src":"15720:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"15672:33:53","nodeType":"YulIdentifier","src":"15672:33:53"},"nativeSrc":"15672:63:53","nodeType":"YulFunctionCall","src":"15672:63:53"},"nativeSrc":"15672:63:53","nodeType":"YulExpressionStatement","src":"15672:63:53"}]},{"nativeSrc":"15755:166:53","nodeType":"YulBlock","src":"15755:166:53","statements":[{"nativeSrc":"15792:43:53","nodeType":"YulVariableDeclaration","src":"15792:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15822:5:53","nodeType":"YulIdentifier","src":"15822:5:53"},{"kind":"number","nativeSrc":"15829:4:53","nodeType":"YulLiteral","src":"15829:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15818:3:53","nodeType":"YulIdentifier","src":"15818:3:53"},"nativeSrc":"15818:16:53","nodeType":"YulFunctionCall","src":"15818:16:53"}],"functionName":{"name":"mload","nativeSrc":"15812:5:53","nodeType":"YulIdentifier","src":"15812:5:53"},"nativeSrc":"15812:23:53","nodeType":"YulFunctionCall","src":"15812:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15796:12:53","nodeType":"YulTypedName","src":"15796:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"15882:12:53","nodeType":"YulIdentifier","src":"15882:12:53"},{"arguments":[{"name":"pos","nativeSrc":"15900:3:53","nodeType":"YulIdentifier","src":"15900:3:53"},{"kind":"number","nativeSrc":"15905:4:53","nodeType":"YulLiteral","src":"15905:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15896:3:53","nodeType":"YulIdentifier","src":"15896:3:53"},"nativeSrc":"15896:14:53","nodeType":"YulFunctionCall","src":"15896:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"15848:33:53","nodeType":"YulIdentifier","src":"15848:33:53"},"nativeSrc":"15848:63:53","nodeType":"YulFunctionCall","src":"15848:63:53"},"nativeSrc":"15848:63:53","nodeType":"YulExpressionStatement","src":"15848:63:53"}]},{"nativeSrc":"15931:233:53","nodeType":"YulBlock","src":"15931:233:53","statements":[{"nativeSrc":"15966:43:53","nodeType":"YulVariableDeclaration","src":"15966:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15996:5:53","nodeType":"YulIdentifier","src":"15996:5:53"},{"kind":"number","nativeSrc":"16003:4:53","nodeType":"YulLiteral","src":"16003:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15992:3:53","nodeType":"YulIdentifier","src":"15992:3:53"},"nativeSrc":"15992:16:53","nodeType":"YulFunctionCall","src":"15992:16:53"}],"functionName":{"name":"mload","nativeSrc":"15986:5:53","nodeType":"YulIdentifier","src":"15986:5:53"},"nativeSrc":"15986:23:53","nodeType":"YulFunctionCall","src":"15986:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"15970:12:53","nodeType":"YulTypedName","src":"15970:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16034:3:53","nodeType":"YulIdentifier","src":"16034:3:53"},{"kind":"number","nativeSrc":"16039:4:53","nodeType":"YulLiteral","src":"16039:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16030:3:53","nodeType":"YulIdentifier","src":"16030:3:53"},"nativeSrc":"16030:14:53","nodeType":"YulFunctionCall","src":"16030:14:53"},{"arguments":[{"name":"tail","nativeSrc":"16050:4:53","nodeType":"YulIdentifier","src":"16050:4:53"},{"name":"pos","nativeSrc":"16056:3:53","nodeType":"YulIdentifier","src":"16056:3:53"}],"functionName":{"name":"sub","nativeSrc":"16046:3:53","nodeType":"YulIdentifier","src":"16046:3:53"},"nativeSrc":"16046:14:53","nodeType":"YulFunctionCall","src":"16046:14:53"}],"functionName":{"name":"mstore","nativeSrc":"16023:6:53","nodeType":"YulIdentifier","src":"16023:6:53"},"nativeSrc":"16023:38:53","nodeType":"YulFunctionCall","src":"16023:38:53"},"nativeSrc":"16023:38:53","nodeType":"YulExpressionStatement","src":"16023:38:53"},{"nativeSrc":"16074:79:53","nodeType":"YulAssignment","src":"16074:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"16134:12:53","nodeType":"YulIdentifier","src":"16134:12:53"},{"name":"tail","nativeSrc":"16148:4:53","nodeType":"YulIdentifier","src":"16148:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"16082:51:53","nodeType":"YulIdentifier","src":"16082:51:53"},"nativeSrc":"16082:71:53","nodeType":"YulFunctionCall","src":"16082:71:53"},"variableNames":[{"name":"tail","nativeSrc":"16074:4:53","nodeType":"YulIdentifier","src":"16074:4:53"}]}]},{"nativeSrc":"16174:11:53","nodeType":"YulAssignment","src":"16174:11:53","value":{"name":"tail","nativeSrc":"16181:4:53","nodeType":"YulIdentifier","src":"16181:4:53"},"variableNames":[{"name":"end","nativeSrc":"16174:3:53","nodeType":"YulIdentifier","src":"16174:3:53"}]}]},"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"15214:977:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15321:5:53","nodeType":"YulTypedName","src":"15321:5:53","type":""},{"name":"pos","nativeSrc":"15328:3:53","nodeType":"YulTypedName","src":"15328:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15337:3:53","nodeType":"YulTypedName","src":"15337:3:53","type":""}],"src":"15214:977:53"},{"body":{"nativeSrc":"16349:229:53","nodeType":"YulBlock","src":"16349:229:53","statements":[{"nativeSrc":"16359:26:53","nodeType":"YulAssignment","src":"16359:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16371:9:53","nodeType":"YulIdentifier","src":"16371:9:53"},{"kind":"number","nativeSrc":"16382:2:53","nodeType":"YulLiteral","src":"16382:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16367:3:53","nodeType":"YulIdentifier","src":"16367:3:53"},"nativeSrc":"16367:18:53","nodeType":"YulFunctionCall","src":"16367:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16359:4:53","nodeType":"YulIdentifier","src":"16359:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16406:9:53","nodeType":"YulIdentifier","src":"16406:9:53"},{"kind":"number","nativeSrc":"16417:1:53","nodeType":"YulLiteral","src":"16417:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16402:3:53","nodeType":"YulIdentifier","src":"16402:3:53"},"nativeSrc":"16402:17:53","nodeType":"YulFunctionCall","src":"16402:17:53"},{"arguments":[{"name":"tail","nativeSrc":"16425:4:53","nodeType":"YulIdentifier","src":"16425:4:53"},{"name":"headStart","nativeSrc":"16431:9:53","nodeType":"YulIdentifier","src":"16431:9:53"}],"functionName":{"name":"sub","nativeSrc":"16421:3:53","nodeType":"YulIdentifier","src":"16421:3:53"},"nativeSrc":"16421:20:53","nodeType":"YulFunctionCall","src":"16421:20:53"}],"functionName":{"name":"mstore","nativeSrc":"16395:6:53","nodeType":"YulIdentifier","src":"16395:6:53"},"nativeSrc":"16395:47:53","nodeType":"YulFunctionCall","src":"16395:47:53"},"nativeSrc":"16395:47:53","nodeType":"YulExpressionStatement","src":"16395:47:53"},{"nativeSrc":"16451:120:53","nodeType":"YulAssignment","src":"16451:120:53","value":{"arguments":[{"name":"value0","nativeSrc":"16557:6:53","nodeType":"YulIdentifier","src":"16557:6:53"},{"name":"tail","nativeSrc":"16566:4:53","nodeType":"YulIdentifier","src":"16566:4:53"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack","nativeSrc":"16459:97:53","nodeType":"YulIdentifier","src":"16459:97:53"},"nativeSrc":"16459:112:53","nodeType":"YulFunctionCall","src":"16459:112:53"},"variableNames":[{"name":"tail","nativeSrc":"16451:4:53","nodeType":"YulIdentifier","src":"16451:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed","nativeSrc":"16197:381:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16321:9:53","nodeType":"YulTypedName","src":"16321:9:53","type":""},{"name":"value0","nativeSrc":"16333:6:53","nodeType":"YulTypedName","src":"16333:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16344:4:53","nodeType":"YulTypedName","src":"16344:4:53","type":""}],"src":"16197:381:53"},{"body":{"nativeSrc":"16673:28:53","nodeType":"YulBlock","src":"16673:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16690:1:53","nodeType":"YulLiteral","src":"16690:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"16693:1:53","nodeType":"YulLiteral","src":"16693:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16683:6:53","nodeType":"YulIdentifier","src":"16683:6:53"},"nativeSrc":"16683:12:53","nodeType":"YulFunctionCall","src":"16683:12:53"},"nativeSrc":"16683:12:53","nodeType":"YulExpressionStatement","src":"16683:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"16584:117:53","nodeType":"YulFunctionDefinition","src":"16584:117:53"},{"body":{"nativeSrc":"16773:241:53","nodeType":"YulBlock","src":"16773:241:53","statements":[{"body":{"nativeSrc":"16878:22:53","nodeType":"YulBlock","src":"16878:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"16880:16:53","nodeType":"YulIdentifier","src":"16880:16:53"},"nativeSrc":"16880:18:53","nodeType":"YulFunctionCall","src":"16880:18:53"},"nativeSrc":"16880:18:53","nodeType":"YulExpressionStatement","src":"16880:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"16850:6:53","nodeType":"YulIdentifier","src":"16850:6:53"},{"kind":"number","nativeSrc":"16858:18:53","nodeType":"YulLiteral","src":"16858:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16847:2:53","nodeType":"YulIdentifier","src":"16847:2:53"},"nativeSrc":"16847:30:53","nodeType":"YulFunctionCall","src":"16847:30:53"},"nativeSrc":"16844:56:53","nodeType":"YulIf","src":"16844:56:53"},{"nativeSrc":"16910:37:53","nodeType":"YulAssignment","src":"16910:37:53","value":{"arguments":[{"name":"length","nativeSrc":"16940:6:53","nodeType":"YulIdentifier","src":"16940:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"16918:21:53","nodeType":"YulIdentifier","src":"16918:21:53"},"nativeSrc":"16918:29:53","nodeType":"YulFunctionCall","src":"16918:29:53"},"variableNames":[{"name":"size","nativeSrc":"16910:4:53","nodeType":"YulIdentifier","src":"16910:4:53"}]},{"nativeSrc":"16984:23:53","nodeType":"YulAssignment","src":"16984:23:53","value":{"arguments":[{"name":"size","nativeSrc":"16996:4:53","nodeType":"YulIdentifier","src":"16996:4:53"},{"kind":"number","nativeSrc":"17002:4:53","nodeType":"YulLiteral","src":"17002:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16992:3:53","nodeType":"YulIdentifier","src":"16992:3:53"},"nativeSrc":"16992:15:53","nodeType":"YulFunctionCall","src":"16992:15:53"},"variableNames":[{"name":"size","nativeSrc":"16984:4:53","nodeType":"YulIdentifier","src":"16984:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"16707:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"16757:6:53","nodeType":"YulTypedName","src":"16757:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"16768:4:53","nodeType":"YulTypedName","src":"16768:4:53","type":""}],"src":"16707:307:53"},{"body":{"nativeSrc":"17084:84:53","nodeType":"YulBlock","src":"17084:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"17108:3:53","nodeType":"YulIdentifier","src":"17108:3:53"},{"name":"src","nativeSrc":"17113:3:53","nodeType":"YulIdentifier","src":"17113:3:53"},{"name":"length","nativeSrc":"17118:6:53","nodeType":"YulIdentifier","src":"17118:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"17095:12:53","nodeType":"YulIdentifier","src":"17095:12:53"},"nativeSrc":"17095:30:53","nodeType":"YulFunctionCall","src":"17095:30:53"},"nativeSrc":"17095:30:53","nodeType":"YulExpressionStatement","src":"17095:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17145:3:53","nodeType":"YulIdentifier","src":"17145:3:53"},{"name":"length","nativeSrc":"17150:6:53","nodeType":"YulIdentifier","src":"17150:6:53"}],"functionName":{"name":"add","nativeSrc":"17141:3:53","nodeType":"YulIdentifier","src":"17141:3:53"},"nativeSrc":"17141:16:53","nodeType":"YulFunctionCall","src":"17141:16:53"},{"kind":"number","nativeSrc":"17159:1:53","nodeType":"YulLiteral","src":"17159:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17134:6:53","nodeType":"YulIdentifier","src":"17134:6:53"},"nativeSrc":"17134:27:53","nodeType":"YulFunctionCall","src":"17134:27:53"},"nativeSrc":"17134:27:53","nodeType":"YulExpressionStatement","src":"17134:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17020:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17066:3:53","nodeType":"YulTypedName","src":"17066:3:53","type":""},{"name":"dst","nativeSrc":"17071:3:53","nodeType":"YulTypedName","src":"17071:3:53","type":""},{"name":"length","nativeSrc":"17076:6:53","nodeType":"YulTypedName","src":"17076:6:53","type":""}],"src":"17020:148:53"},{"body":{"nativeSrc":"17257:340:53","nodeType":"YulBlock","src":"17257:340:53","statements":[{"nativeSrc":"17267:74:53","nodeType":"YulAssignment","src":"17267:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17333:6:53","nodeType":"YulIdentifier","src":"17333:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17292:40:53","nodeType":"YulIdentifier","src":"17292:40:53"},"nativeSrc":"17292:48:53","nodeType":"YulFunctionCall","src":"17292:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"17276:15:53","nodeType":"YulIdentifier","src":"17276:15:53"},"nativeSrc":"17276:65:53","nodeType":"YulFunctionCall","src":"17276:65:53"},"variableNames":[{"name":"array","nativeSrc":"17267:5:53","nodeType":"YulIdentifier","src":"17267:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"17357:5:53","nodeType":"YulIdentifier","src":"17357:5:53"},{"name":"length","nativeSrc":"17364:6:53","nodeType":"YulIdentifier","src":"17364:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17350:6:53","nodeType":"YulIdentifier","src":"17350:6:53"},"nativeSrc":"17350:21:53","nodeType":"YulFunctionCall","src":"17350:21:53"},"nativeSrc":"17350:21:53","nodeType":"YulExpressionStatement","src":"17350:21:53"},{"nativeSrc":"17380:27:53","nodeType":"YulVariableDeclaration","src":"17380:27:53","value":{"arguments":[{"name":"array","nativeSrc":"17395:5:53","nodeType":"YulIdentifier","src":"17395:5:53"},{"kind":"number","nativeSrc":"17402:4:53","nodeType":"YulLiteral","src":"17402:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17391:3:53","nodeType":"YulIdentifier","src":"17391:3:53"},"nativeSrc":"17391:16:53","nodeType":"YulFunctionCall","src":"17391:16:53"},"variables":[{"name":"dst","nativeSrc":"17384:3:53","nodeType":"YulTypedName","src":"17384:3:53","type":""}]},{"body":{"nativeSrc":"17445:83:53","nodeType":"YulBlock","src":"17445:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"17447:77:53","nodeType":"YulIdentifier","src":"17447:77:53"},"nativeSrc":"17447:79:53","nodeType":"YulFunctionCall","src":"17447:79:53"},"nativeSrc":"17447:79:53","nodeType":"YulExpressionStatement","src":"17447:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17426:3:53","nodeType":"YulIdentifier","src":"17426:3:53"},{"name":"length","nativeSrc":"17431:6:53","nodeType":"YulIdentifier","src":"17431:6:53"}],"functionName":{"name":"add","nativeSrc":"17422:3:53","nodeType":"YulIdentifier","src":"17422:3:53"},"nativeSrc":"17422:16:53","nodeType":"YulFunctionCall","src":"17422:16:53"},{"name":"end","nativeSrc":"17440:3:53","nodeType":"YulIdentifier","src":"17440:3:53"}],"functionName":{"name":"gt","nativeSrc":"17419:2:53","nodeType":"YulIdentifier","src":"17419:2:53"},"nativeSrc":"17419:25:53","nodeType":"YulFunctionCall","src":"17419:25:53"},"nativeSrc":"17416:112:53","nodeType":"YulIf","src":"17416:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"17574:3:53","nodeType":"YulIdentifier","src":"17574:3:53"},{"name":"dst","nativeSrc":"17579:3:53","nodeType":"YulIdentifier","src":"17579:3:53"},{"name":"length","nativeSrc":"17584:6:53","nodeType":"YulIdentifier","src":"17584:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17537:36:53","nodeType":"YulIdentifier","src":"17537:36:53"},"nativeSrc":"17537:54:53","nodeType":"YulFunctionCall","src":"17537:54:53"},"nativeSrc":"17537:54:53","nodeType":"YulExpressionStatement","src":"17537:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17174:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17230:3:53","nodeType":"YulTypedName","src":"17230:3:53","type":""},{"name":"length","nativeSrc":"17235:6:53","nodeType":"YulTypedName","src":"17235:6:53","type":""},{"name":"end","nativeSrc":"17243:3:53","nodeType":"YulTypedName","src":"17243:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17251:5:53","nodeType":"YulTypedName","src":"17251:5:53","type":""}],"src":"17174:423:53"},{"body":{"nativeSrc":"17677:277:53","nodeType":"YulBlock","src":"17677:277:53","statements":[{"body":{"nativeSrc":"17726:83:53","nodeType":"YulBlock","src":"17726:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"17728:77:53","nodeType":"YulIdentifier","src":"17728:77:53"},"nativeSrc":"17728:79:53","nodeType":"YulFunctionCall","src":"17728:79:53"},"nativeSrc":"17728:79:53","nodeType":"YulExpressionStatement","src":"17728:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"17705:6:53","nodeType":"YulIdentifier","src":"17705:6:53"},{"kind":"number","nativeSrc":"17713:4:53","nodeType":"YulLiteral","src":"17713:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"17701:3:53","nodeType":"YulIdentifier","src":"17701:3:53"},"nativeSrc":"17701:17:53","nodeType":"YulFunctionCall","src":"17701:17:53"},{"name":"end","nativeSrc":"17720:3:53","nodeType":"YulIdentifier","src":"17720:3:53"}],"functionName":{"name":"slt","nativeSrc":"17697:3:53","nodeType":"YulIdentifier","src":"17697:3:53"},"nativeSrc":"17697:27:53","nodeType":"YulFunctionCall","src":"17697:27:53"}],"functionName":{"name":"iszero","nativeSrc":"17690:6:53","nodeType":"YulIdentifier","src":"17690:6:53"},"nativeSrc":"17690:35:53","nodeType":"YulFunctionCall","src":"17690:35:53"},"nativeSrc":"17687:122:53","nodeType":"YulIf","src":"17687:122:53"},{"nativeSrc":"17818:34:53","nodeType":"YulVariableDeclaration","src":"17818:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"17845:6:53","nodeType":"YulIdentifier","src":"17845:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"17832:12:53","nodeType":"YulIdentifier","src":"17832:12:53"},"nativeSrc":"17832:20:53","nodeType":"YulFunctionCall","src":"17832:20:53"},"variables":[{"name":"length","nativeSrc":"17822:6:53","nodeType":"YulTypedName","src":"17822:6:53","type":""}]},{"nativeSrc":"17861:87:53","nodeType":"YulAssignment","src":"17861:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"17921:6:53","nodeType":"YulIdentifier","src":"17921:6:53"},{"kind":"number","nativeSrc":"17929:4:53","nodeType":"YulLiteral","src":"17929:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17917:3:53","nodeType":"YulIdentifier","src":"17917:3:53"},"nativeSrc":"17917:17:53","nodeType":"YulFunctionCall","src":"17917:17:53"},{"name":"length","nativeSrc":"17936:6:53","nodeType":"YulIdentifier","src":"17936:6:53"},{"name":"end","nativeSrc":"17944:3:53","nodeType":"YulIdentifier","src":"17944:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17870:46:53","nodeType":"YulIdentifier","src":"17870:46:53"},"nativeSrc":"17870:78:53","nodeType":"YulFunctionCall","src":"17870:78:53"},"variableNames":[{"name":"array","nativeSrc":"17861:5:53","nodeType":"YulIdentifier","src":"17861:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17616:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17655:6:53","nodeType":"YulTypedName","src":"17655:6:53","type":""},{"name":"end","nativeSrc":"17663:3:53","nodeType":"YulTypedName","src":"17663:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17671:5:53","nodeType":"YulTypedName","src":"17671:5:53","type":""}],"src":"17616:338:53"},{"body":{"nativeSrc":"18083:665:53","nodeType":"YulBlock","src":"18083:665:53","statements":[{"body":{"nativeSrc":"18127:83:53","nodeType":"YulBlock","src":"18127:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18129:77:53","nodeType":"YulIdentifier","src":"18129:77:53"},"nativeSrc":"18129:79:53","nodeType":"YulFunctionCall","src":"18129:79:53"},"nativeSrc":"18129:79:53","nodeType":"YulExpressionStatement","src":"18129:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18104:3:53","nodeType":"YulIdentifier","src":"18104:3:53"},{"name":"headStart","nativeSrc":"18109:9:53","nodeType":"YulIdentifier","src":"18109:9:53"}],"functionName":{"name":"sub","nativeSrc":"18100:3:53","nodeType":"YulIdentifier","src":"18100:3:53"},"nativeSrc":"18100:19:53","nodeType":"YulFunctionCall","src":"18100:19:53"},{"kind":"number","nativeSrc":"18121:4:53","nodeType":"YulLiteral","src":"18121:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"18096:3:53","nodeType":"YulIdentifier","src":"18096:3:53"},"nativeSrc":"18096:30:53","nodeType":"YulFunctionCall","src":"18096:30:53"},"nativeSrc":"18093:117:53","nodeType":"YulIf","src":"18093:117:53"},{"nativeSrc":"18219:30:53","nodeType":"YulAssignment","src":"18219:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"18244:4:53","nodeType":"YulLiteral","src":"18244:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"18228:15:53","nodeType":"YulIdentifier","src":"18228:15:53"},"nativeSrc":"18228:21:53","nodeType":"YulFunctionCall","src":"18228:21:53"},"variableNames":[{"name":"value","nativeSrc":"18219:5:53","nodeType":"YulIdentifier","src":"18219:5:53"}]},{"nativeSrc":"18259:152:53","nodeType":"YulBlock","src":"18259:152:53","statements":[{"nativeSrc":"18296:15:53","nodeType":"YulVariableDeclaration","src":"18296:15:53","value":{"kind":"number","nativeSrc":"18310:1:53","nodeType":"YulLiteral","src":"18310:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18300:6:53","nodeType":"YulTypedName","src":"18300:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18336:5:53","nodeType":"YulIdentifier","src":"18336:5:53"},{"kind":"number","nativeSrc":"18343:4:53","nodeType":"YulLiteral","src":"18343:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18332:3:53","nodeType":"YulIdentifier","src":"18332:3:53"},"nativeSrc":"18332:16:53","nodeType":"YulFunctionCall","src":"18332:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18375:9:53","nodeType":"YulIdentifier","src":"18375:9:53"},{"name":"offset","nativeSrc":"18386:6:53","nodeType":"YulIdentifier","src":"18386:6:53"}],"functionName":{"name":"add","nativeSrc":"18371:3:53","nodeType":"YulIdentifier","src":"18371:3:53"},"nativeSrc":"18371:22:53","nodeType":"YulFunctionCall","src":"18371:22:53"},{"name":"end","nativeSrc":"18395:3:53","nodeType":"YulIdentifier","src":"18395:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"18350:20:53","nodeType":"YulIdentifier","src":"18350:20:53"},"nativeSrc":"18350:49:53","nodeType":"YulFunctionCall","src":"18350:49:53"}],"functionName":{"name":"mstore","nativeSrc":"18325:6:53","nodeType":"YulIdentifier","src":"18325:6:53"},"nativeSrc":"18325:75:53","nodeType":"YulFunctionCall","src":"18325:75:53"},"nativeSrc":"18325:75:53","nodeType":"YulExpressionStatement","src":"18325:75:53"}]},{"nativeSrc":"18421:320:53","nodeType":"YulBlock","src":"18421:320:53","statements":[{"nativeSrc":"18456:46:53","nodeType":"YulVariableDeclaration","src":"18456:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18487:9:53","nodeType":"YulIdentifier","src":"18487:9:53"},{"kind":"number","nativeSrc":"18498:2:53","nodeType":"YulLiteral","src":"18498:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18483:3:53","nodeType":"YulIdentifier","src":"18483:3:53"},"nativeSrc":"18483:18:53","nodeType":"YulFunctionCall","src":"18483:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"18470:12:53","nodeType":"YulIdentifier","src":"18470:12:53"},"nativeSrc":"18470:32:53","nodeType":"YulFunctionCall","src":"18470:32:53"},"variables":[{"name":"offset","nativeSrc":"18460:6:53","nodeType":"YulTypedName","src":"18460:6:53","type":""}]},{"body":{"nativeSrc":"18549:83:53","nodeType":"YulBlock","src":"18549:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"18551:77:53","nodeType":"YulIdentifier","src":"18551:77:53"},"nativeSrc":"18551:79:53","nodeType":"YulFunctionCall","src":"18551:79:53"},"nativeSrc":"18551:79:53","nodeType":"YulExpressionStatement","src":"18551:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"18521:6:53","nodeType":"YulIdentifier","src":"18521:6:53"},{"kind":"number","nativeSrc":"18529:18:53","nodeType":"YulLiteral","src":"18529:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"18518:2:53","nodeType":"YulIdentifier","src":"18518:2:53"},"nativeSrc":"18518:30:53","nodeType":"YulFunctionCall","src":"18518:30:53"},"nativeSrc":"18515:117:53","nodeType":"YulIf","src":"18515:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18657:5:53","nodeType":"YulIdentifier","src":"18657:5:53"},{"kind":"number","nativeSrc":"18664:4:53","nodeType":"YulLiteral","src":"18664:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18653:3:53","nodeType":"YulIdentifier","src":"18653:3:53"},"nativeSrc":"18653:16:53","nodeType":"YulFunctionCall","src":"18653:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18705:9:53","nodeType":"YulIdentifier","src":"18705:9:53"},{"name":"offset","nativeSrc":"18716:6:53","nodeType":"YulIdentifier","src":"18716:6:53"}],"functionName":{"name":"add","nativeSrc":"18701:3:53","nodeType":"YulIdentifier","src":"18701:3:53"},"nativeSrc":"18701:22:53","nodeType":"YulFunctionCall","src":"18701:22:53"},{"name":"end","nativeSrc":"18725:3:53","nodeType":"YulIdentifier","src":"18725:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"18671:29:53","nodeType":"YulIdentifier","src":"18671:29:53"},"nativeSrc":"18671:58:53","nodeType":"YulFunctionCall","src":"18671:58:53"}],"functionName":{"name":"mstore","nativeSrc":"18646:6:53","nodeType":"YulIdentifier","src":"18646:6:53"},"nativeSrc":"18646:84:53","nodeType":"YulFunctionCall","src":"18646:84:53"},"nativeSrc":"18646:84:53","nodeType":"YulExpressionStatement","src":"18646:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"17997:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18058:9:53","nodeType":"YulTypedName","src":"18058:9:53","type":""},{"name":"end","nativeSrc":"18069:3:53","nodeType":"YulTypedName","src":"18069:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18077:5:53","nodeType":"YulTypedName","src":"18077:5:53","type":""}],"src":"17997:751:53"},{"body":{"nativeSrc":"18851:454:53","nodeType":"YulBlock","src":"18851:454:53","statements":[{"body":{"nativeSrc":"18897:83:53","nodeType":"YulBlock","src":"18897:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18899:77:53","nodeType":"YulIdentifier","src":"18899:77:53"},"nativeSrc":"18899:79:53","nodeType":"YulFunctionCall","src":"18899:79:53"},"nativeSrc":"18899:79:53","nodeType":"YulExpressionStatement","src":"18899:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18872:7:53","nodeType":"YulIdentifier","src":"18872:7:53"},{"name":"headStart","nativeSrc":"18881:9:53","nodeType":"YulIdentifier","src":"18881:9:53"}],"functionName":{"name":"sub","nativeSrc":"18868:3:53","nodeType":"YulIdentifier","src":"18868:3:53"},"nativeSrc":"18868:23:53","nodeType":"YulFunctionCall","src":"18868:23:53"},{"kind":"number","nativeSrc":"18893:2:53","nodeType":"YulLiteral","src":"18893:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18864:3:53","nodeType":"YulIdentifier","src":"18864:3:53"},"nativeSrc":"18864:32:53","nodeType":"YulFunctionCall","src":"18864:32:53"},"nativeSrc":"18861:119:53","nodeType":"YulIf","src":"18861:119:53"},{"nativeSrc":"18990:308:53","nodeType":"YulBlock","src":"18990:308:53","statements":[{"nativeSrc":"19005:45:53","nodeType":"YulVariableDeclaration","src":"19005:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19036:9:53","nodeType":"YulIdentifier","src":"19036:9:53"},{"kind":"number","nativeSrc":"19047:1:53","nodeType":"YulLiteral","src":"19047:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19032:3:53","nodeType":"YulIdentifier","src":"19032:3:53"},"nativeSrc":"19032:17:53","nodeType":"YulFunctionCall","src":"19032:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"19019:12:53","nodeType":"YulIdentifier","src":"19019:12:53"},"nativeSrc":"19019:31:53","nodeType":"YulFunctionCall","src":"19019:31:53"},"variables":[{"name":"offset","nativeSrc":"19009:6:53","nodeType":"YulTypedName","src":"19009:6:53","type":""}]},{"body":{"nativeSrc":"19097:83:53","nodeType":"YulBlock","src":"19097:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19099:77:53","nodeType":"YulIdentifier","src":"19099:77:53"},"nativeSrc":"19099:79:53","nodeType":"YulFunctionCall","src":"19099:79:53"},"nativeSrc":"19099:79:53","nodeType":"YulExpressionStatement","src":"19099:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19069:6:53","nodeType":"YulIdentifier","src":"19069:6:53"},{"kind":"number","nativeSrc":"19077:18:53","nodeType":"YulLiteral","src":"19077:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19066:2:53","nodeType":"YulIdentifier","src":"19066:2:53"},"nativeSrc":"19066:30:53","nodeType":"YulFunctionCall","src":"19066:30:53"},"nativeSrc":"19063:117:53","nodeType":"YulIf","src":"19063:117:53"},{"nativeSrc":"19194:94:53","nodeType":"YulAssignment","src":"19194:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19260:9:53","nodeType":"YulIdentifier","src":"19260:9:53"},{"name":"offset","nativeSrc":"19271:6:53","nodeType":"YulIdentifier","src":"19271:6:53"}],"functionName":{"name":"add","nativeSrc":"19256:3:53","nodeType":"YulIdentifier","src":"19256:3:53"},"nativeSrc":"19256:22:53","nodeType":"YulFunctionCall","src":"19256:22:53"},{"name":"dataEnd","nativeSrc":"19280:7:53","nodeType":"YulIdentifier","src":"19280:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"19204:51:53","nodeType":"YulIdentifier","src":"19204:51:53"},"nativeSrc":"19204:84:53","nodeType":"YulFunctionCall","src":"19204:84:53"},"variableNames":[{"name":"value0","nativeSrc":"19194:6:53","nodeType":"YulIdentifier","src":"19194:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"18754:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18821:9:53","nodeType":"YulTypedName","src":"18821:9:53","type":""},{"name":"dataEnd","nativeSrc":"18832:7:53","nodeType":"YulTypedName","src":"18832:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18844:6:53","nodeType":"YulTypedName","src":"18844:6:53","type":""}],"src":"18754:551:53"},{"body":{"nativeSrc":"19354:190:53","nodeType":"YulBlock","src":"19354:190:53","statements":[{"nativeSrc":"19364:33:53","nodeType":"YulAssignment","src":"19364:33:53","value":{"arguments":[{"name":"value","nativeSrc":"19391:5:53","nodeType":"YulIdentifier","src":"19391:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19373:17:53","nodeType":"YulIdentifier","src":"19373:17:53"},"nativeSrc":"19373:24:53","nodeType":"YulFunctionCall","src":"19373:24:53"},"variableNames":[{"name":"value","nativeSrc":"19364:5:53","nodeType":"YulIdentifier","src":"19364:5:53"}]},{"body":{"nativeSrc":"19487:22:53","nodeType":"YulBlock","src":"19487:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19489:16:53","nodeType":"YulIdentifier","src":"19489:16:53"},"nativeSrc":"19489:18:53","nodeType":"YulFunctionCall","src":"19489:18:53"},"nativeSrc":"19489:18:53","nodeType":"YulExpressionStatement","src":"19489:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"19412:5:53","nodeType":"YulIdentifier","src":"19412:5:53"},{"kind":"number","nativeSrc":"19419:66:53","nodeType":"YulLiteral","src":"19419:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"19409:2:53","nodeType":"YulIdentifier","src":"19409:2:53"},"nativeSrc":"19409:77:53","nodeType":"YulFunctionCall","src":"19409:77:53"},"nativeSrc":"19406:103:53","nodeType":"YulIf","src":"19406:103:53"},{"nativeSrc":"19518:20:53","nodeType":"YulAssignment","src":"19518:20:53","value":{"arguments":[{"name":"value","nativeSrc":"19529:5:53","nodeType":"YulIdentifier","src":"19529:5:53"},{"kind":"number","nativeSrc":"19536:1:53","nodeType":"YulLiteral","src":"19536:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19525:3:53","nodeType":"YulIdentifier","src":"19525:3:53"},"nativeSrc":"19525:13:53","nodeType":"YulFunctionCall","src":"19525:13:53"},"variableNames":[{"name":"ret","nativeSrc":"19518:3:53","nodeType":"YulIdentifier","src":"19518:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"19311:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19340:5:53","nodeType":"YulTypedName","src":"19340:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"19350:3:53","nodeType":"YulTypedName","src":"19350:3:53","type":""}],"src":"19311:233:53"},{"body":{"nativeSrc":"19613:80:53","nodeType":"YulBlock","src":"19613:80:53","statements":[{"nativeSrc":"19623:22:53","nodeType":"YulAssignment","src":"19623:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"19638:6:53","nodeType":"YulIdentifier","src":"19638:6:53"}],"functionName":{"name":"mload","nativeSrc":"19632:5:53","nodeType":"YulIdentifier","src":"19632:5:53"},"nativeSrc":"19632:13:53","nodeType":"YulFunctionCall","src":"19632:13:53"},"variableNames":[{"name":"value","nativeSrc":"19623:5:53","nodeType":"YulIdentifier","src":"19623:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19681:5:53","nodeType":"YulIdentifier","src":"19681:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"19654:26:53","nodeType":"YulIdentifier","src":"19654:26:53"},"nativeSrc":"19654:33:53","nodeType":"YulFunctionCall","src":"19654:33:53"},"nativeSrc":"19654:33:53","nodeType":"YulExpressionStatement","src":"19654:33:53"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19550:143:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19591:6:53","nodeType":"YulTypedName","src":"19591:6:53","type":""},{"name":"end","nativeSrc":"19599:3:53","nodeType":"YulTypedName","src":"19599:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19607:5:53","nodeType":"YulTypedName","src":"19607:5:53","type":""}],"src":"19550:143:53"},{"body":{"nativeSrc":"19776:274:53","nodeType":"YulBlock","src":"19776:274:53","statements":[{"body":{"nativeSrc":"19822:83:53","nodeType":"YulBlock","src":"19822:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19824:77:53","nodeType":"YulIdentifier","src":"19824:77:53"},"nativeSrc":"19824:79:53","nodeType":"YulFunctionCall","src":"19824:79:53"},"nativeSrc":"19824:79:53","nodeType":"YulExpressionStatement","src":"19824:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19797:7:53","nodeType":"YulIdentifier","src":"19797:7:53"},{"name":"headStart","nativeSrc":"19806:9:53","nodeType":"YulIdentifier","src":"19806:9:53"}],"functionName":{"name":"sub","nativeSrc":"19793:3:53","nodeType":"YulIdentifier","src":"19793:3:53"},"nativeSrc":"19793:23:53","nodeType":"YulFunctionCall","src":"19793:23:53"},{"kind":"number","nativeSrc":"19818:2:53","nodeType":"YulLiteral","src":"19818:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19789:3:53","nodeType":"YulIdentifier","src":"19789:3:53"},"nativeSrc":"19789:32:53","nodeType":"YulFunctionCall","src":"19789:32:53"},"nativeSrc":"19786:119:53","nodeType":"YulIf","src":"19786:119:53"},{"nativeSrc":"19915:128:53","nodeType":"YulBlock","src":"19915:128:53","statements":[{"nativeSrc":"19930:15:53","nodeType":"YulVariableDeclaration","src":"19930:15:53","value":{"kind":"number","nativeSrc":"19944:1:53","nodeType":"YulLiteral","src":"19944:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19934:6:53","nodeType":"YulTypedName","src":"19934:6:53","type":""}]},{"nativeSrc":"19959:74:53","nodeType":"YulAssignment","src":"19959:74:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20005:9:53","nodeType":"YulIdentifier","src":"20005:9:53"},{"name":"offset","nativeSrc":"20016:6:53","nodeType":"YulIdentifier","src":"20016:6:53"}],"functionName":{"name":"add","nativeSrc":"20001:3:53","nodeType":"YulIdentifier","src":"20001:3:53"},"nativeSrc":"20001:22:53","nodeType":"YulFunctionCall","src":"20001:22:53"},{"name":"dataEnd","nativeSrc":"20025:7:53","nodeType":"YulIdentifier","src":"20025:7:53"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19969:31:53","nodeType":"YulIdentifier","src":"19969:31:53"},"nativeSrc":"19969:64:53","nodeType":"YulFunctionCall","src":"19969:64:53"},"variableNames":[{"name":"value0","nativeSrc":"19959:6:53","nodeType":"YulIdentifier","src":"19959:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"19699:351:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19746:9:53","nodeType":"YulTypedName","src":"19746:9:53","type":""},{"name":"dataEnd","nativeSrc":"19757:7:53","nodeType":"YulTypedName","src":"19757:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19769:6:53","nodeType":"YulTypedName","src":"19769:6:53","type":""}],"src":"19699:351:53"},{"body":{"nativeSrc":"20262:482:53","nodeType":"YulBlock","src":"20262:482:53","statements":[{"nativeSrc":"20272:26:53","nodeType":"YulVariableDeclaration","src":"20272:26:53","value":{"arguments":[{"name":"pos","nativeSrc":"20288:3:53","nodeType":"YulIdentifier","src":"20288:3:53"},{"kind":"number","nativeSrc":"20293:4:53","nodeType":"YulLiteral","src":"20293:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20284:3:53","nodeType":"YulIdentifier","src":"20284:3:53"},"nativeSrc":"20284:14:53","nodeType":"YulFunctionCall","src":"20284:14:53"},"variables":[{"name":"tail","nativeSrc":"20276:4:53","nodeType":"YulTypedName","src":"20276:4:53","type":""}]},{"nativeSrc":"20308:166:53","nodeType":"YulBlock","src":"20308:166:53","statements":[{"nativeSrc":"20345:43:53","nodeType":"YulVariableDeclaration","src":"20345:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20375:5:53","nodeType":"YulIdentifier","src":"20375:5:53"},{"kind":"number","nativeSrc":"20382:4:53","nodeType":"YulLiteral","src":"20382:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20371:3:53","nodeType":"YulIdentifier","src":"20371:3:53"},"nativeSrc":"20371:16:53","nodeType":"YulFunctionCall","src":"20371:16:53"}],"functionName":{"name":"mload","nativeSrc":"20365:5:53","nodeType":"YulIdentifier","src":"20365:5:53"},"nativeSrc":"20365:23:53","nodeType":"YulFunctionCall","src":"20365:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"20349:12:53","nodeType":"YulTypedName","src":"20349:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"20435:12:53","nodeType":"YulIdentifier","src":"20435:12:53"},{"arguments":[{"name":"pos","nativeSrc":"20453:3:53","nodeType":"YulIdentifier","src":"20453:3:53"},{"kind":"number","nativeSrc":"20458:4:53","nodeType":"YulLiteral","src":"20458:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20449:3:53","nodeType":"YulIdentifier","src":"20449:3:53"},"nativeSrc":"20449:14:53","nodeType":"YulFunctionCall","src":"20449:14:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"20401:33:53","nodeType":"YulIdentifier","src":"20401:33:53"},"nativeSrc":"20401:63:53","nodeType":"YulFunctionCall","src":"20401:63:53"},"nativeSrc":"20401:63:53","nodeType":"YulExpressionStatement","src":"20401:63:53"}]},{"nativeSrc":"20484:233:53","nodeType":"YulBlock","src":"20484:233:53","statements":[{"nativeSrc":"20519:43:53","nodeType":"YulVariableDeclaration","src":"20519:43:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20549:5:53","nodeType":"YulIdentifier","src":"20549:5:53"},{"kind":"number","nativeSrc":"20556:4:53","nodeType":"YulLiteral","src":"20556:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20545:3:53","nodeType":"YulIdentifier","src":"20545:3:53"},"nativeSrc":"20545:16:53","nodeType":"YulFunctionCall","src":"20545:16:53"}],"functionName":{"name":"mload","nativeSrc":"20539:5:53","nodeType":"YulIdentifier","src":"20539:5:53"},"nativeSrc":"20539:23:53","nodeType":"YulFunctionCall","src":"20539:23:53"},"variables":[{"name":"memberValue0","nativeSrc":"20523:12:53","nodeType":"YulTypedName","src":"20523:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20587:3:53","nodeType":"YulIdentifier","src":"20587:3:53"},{"kind":"number","nativeSrc":"20592:4:53","nodeType":"YulLiteral","src":"20592:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20583:3:53","nodeType":"YulIdentifier","src":"20583:3:53"},"nativeSrc":"20583:14:53","nodeType":"YulFunctionCall","src":"20583:14:53"},{"arguments":[{"name":"tail","nativeSrc":"20603:4:53","nodeType":"YulIdentifier","src":"20603:4:53"},{"name":"pos","nativeSrc":"20609:3:53","nodeType":"YulIdentifier","src":"20609:3:53"}],"functionName":{"name":"sub","nativeSrc":"20599:3:53","nodeType":"YulIdentifier","src":"20599:3:53"},"nativeSrc":"20599:14:53","nodeType":"YulFunctionCall","src":"20599:14:53"}],"functionName":{"name":"mstore","nativeSrc":"20576:6:53","nodeType":"YulIdentifier","src":"20576:6:53"},"nativeSrc":"20576:38:53","nodeType":"YulFunctionCall","src":"20576:38:53"},"nativeSrc":"20576:38:53","nodeType":"YulExpressionStatement","src":"20576:38:53"},{"nativeSrc":"20627:79:53","nodeType":"YulAssignment","src":"20627:79:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"20687:12:53","nodeType":"YulIdentifier","src":"20687:12:53"},{"name":"tail","nativeSrc":"20701:4:53","nodeType":"YulIdentifier","src":"20701:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"20635:51:53","nodeType":"YulIdentifier","src":"20635:51:53"},"nativeSrc":"20635:71:53","nodeType":"YulFunctionCall","src":"20635:71:53"},"variableNames":[{"name":"tail","nativeSrc":"20627:4:53","nodeType":"YulIdentifier","src":"20627:4:53"}]}]},{"nativeSrc":"20727:11:53","nodeType":"YulAssignment","src":"20727:11:53","value":{"name":"tail","nativeSrc":"20734:4:53","nodeType":"YulIdentifier","src":"20734:4:53"},"variableNames":[{"name":"end","nativeSrc":"20727:3:53","nodeType":"YulIdentifier","src":"20727:3:53"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"20126:618:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20241:5:53","nodeType":"YulTypedName","src":"20241:5:53","type":""},{"name":"pos","nativeSrc":"20248:3:53","nodeType":"YulTypedName","src":"20248:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20257:3:53","nodeType":"YulTypedName","src":"20257:3:53","type":""}],"src":"20126:618:53"},{"body":{"nativeSrc":"20910:237:53","nodeType":"YulBlock","src":"20910:237:53","statements":[{"nativeSrc":"20920:26:53","nodeType":"YulAssignment","src":"20920:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"20932:9:53","nodeType":"YulIdentifier","src":"20932:9:53"},{"kind":"number","nativeSrc":"20943:2:53","nodeType":"YulLiteral","src":"20943:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20928:3:53","nodeType":"YulIdentifier","src":"20928:3:53"},"nativeSrc":"20928:18:53","nodeType":"YulFunctionCall","src":"20928:18:53"},"variableNames":[{"name":"tail","nativeSrc":"20920:4:53","nodeType":"YulIdentifier","src":"20920:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20967:9:53","nodeType":"YulIdentifier","src":"20967:9:53"},{"kind":"number","nativeSrc":"20978:1:53","nodeType":"YulLiteral","src":"20978:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20963:3:53","nodeType":"YulIdentifier","src":"20963:3:53"},"nativeSrc":"20963:17:53","nodeType":"YulFunctionCall","src":"20963:17:53"},{"arguments":[{"name":"tail","nativeSrc":"20986:4:53","nodeType":"YulIdentifier","src":"20986:4:53"},{"name":"headStart","nativeSrc":"20992:9:53","nodeType":"YulIdentifier","src":"20992:9:53"}],"functionName":{"name":"sub","nativeSrc":"20982:3:53","nodeType":"YulIdentifier","src":"20982:3:53"},"nativeSrc":"20982:20:53","nodeType":"YulFunctionCall","src":"20982:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20956:6:53","nodeType":"YulIdentifier","src":"20956:6:53"},"nativeSrc":"20956:47:53","nodeType":"YulFunctionCall","src":"20956:47:53"},"nativeSrc":"20956:47:53","nodeType":"YulExpressionStatement","src":"20956:47:53"},{"nativeSrc":"21012:128:53","nodeType":"YulAssignment","src":"21012:128:53","value":{"arguments":[{"name":"value0","nativeSrc":"21126:6:53","nodeType":"YulIdentifier","src":"21126:6:53"},{"name":"tail","nativeSrc":"21135:4:53","nodeType":"YulIdentifier","src":"21135:4:53"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack","nativeSrc":"21020:105:53","nodeType":"YulIdentifier","src":"21020:105:53"},"nativeSrc":"21020:120:53","nodeType":"YulFunctionCall","src":"21020:120:53"},"variableNames":[{"name":"tail","nativeSrc":"21012:4:53","nodeType":"YulIdentifier","src":"21012:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed","nativeSrc":"20750:397:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20882:9:53","nodeType":"YulTypedName","src":"20882:9:53","type":""},{"name":"value0","nativeSrc":"20894:6:53","nodeType":"YulTypedName","src":"20894:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20905:4:53","nodeType":"YulTypedName","src":"20905:4:53","type":""}],"src":"20750:397:53"},{"body":{"nativeSrc":"21297:275:53","nodeType":"YulBlock","src":"21297:275:53","statements":[{"nativeSrc":"21307:26:53","nodeType":"YulAssignment","src":"21307:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21319:9:53","nodeType":"YulIdentifier","src":"21319:9:53"},{"kind":"number","nativeSrc":"21330:2:53","nodeType":"YulLiteral","src":"21330:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21315:3:53","nodeType":"YulIdentifier","src":"21315:3:53"},"nativeSrc":"21315:18:53","nodeType":"YulFunctionCall","src":"21315:18:53"},"variableNames":[{"name":"tail","nativeSrc":"21307:4:53","nodeType":"YulIdentifier","src":"21307:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21387:6:53","nodeType":"YulIdentifier","src":"21387:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21400:9:53","nodeType":"YulIdentifier","src":"21400:9:53"},{"kind":"number","nativeSrc":"21411:1:53","nodeType":"YulLiteral","src":"21411:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21396:3:53","nodeType":"YulIdentifier","src":"21396:3:53"},"nativeSrc":"21396:17:53","nodeType":"YulFunctionCall","src":"21396:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21343:43:53","nodeType":"YulIdentifier","src":"21343:43:53"},"nativeSrc":"21343:71:53","nodeType":"YulFunctionCall","src":"21343:71:53"},"nativeSrc":"21343:71:53","nodeType":"YulExpressionStatement","src":"21343:71:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21435:9:53","nodeType":"YulIdentifier","src":"21435:9:53"},{"kind":"number","nativeSrc":"21446:2:53","nodeType":"YulLiteral","src":"21446:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21431:3:53","nodeType":"YulIdentifier","src":"21431:3:53"},"nativeSrc":"21431:18:53","nodeType":"YulFunctionCall","src":"21431:18:53"},{"arguments":[{"name":"tail","nativeSrc":"21455:4:53","nodeType":"YulIdentifier","src":"21455:4:53"},{"name":"headStart","nativeSrc":"21461:9:53","nodeType":"YulIdentifier","src":"21461:9:53"}],"functionName":{"name":"sub","nativeSrc":"21451:3:53","nodeType":"YulIdentifier","src":"21451:3:53"},"nativeSrc":"21451:20:53","nodeType":"YulFunctionCall","src":"21451:20:53"}],"functionName":{"name":"mstore","nativeSrc":"21424:6:53","nodeType":"YulIdentifier","src":"21424:6:53"},"nativeSrc":"21424:48:53","nodeType":"YulFunctionCall","src":"21424:48:53"},"nativeSrc":"21424:48:53","nodeType":"YulExpressionStatement","src":"21424:48:53"},{"nativeSrc":"21481:84:53","nodeType":"YulAssignment","src":"21481:84:53","value":{"arguments":[{"name":"value1","nativeSrc":"21551:6:53","nodeType":"YulIdentifier","src":"21551:6:53"},{"name":"tail","nativeSrc":"21560:4:53","nodeType":"YulIdentifier","src":"21560:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"21489:61:53","nodeType":"YulIdentifier","src":"21489:61:53"},"nativeSrc":"21489:76:53","nodeType":"YulFunctionCall","src":"21489:76:53"},"variableNames":[{"name":"tail","nativeSrc":"21481:4:53","nodeType":"YulIdentifier","src":"21481:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"21153:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21261:9:53","nodeType":"YulTypedName","src":"21261:9:53","type":""},{"name":"value1","nativeSrc":"21273:6:53","nodeType":"YulTypedName","src":"21273:6:53","type":""},{"name":"value0","nativeSrc":"21281:6:53","nodeType":"YulTypedName","src":"21281:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21292:4:53","nodeType":"YulTypedName","src":"21292:4:53","type":""}],"src":"21153:419:53"},{"body":{"nativeSrc":"21620:143:53","nodeType":"YulBlock","src":"21620:143:53","statements":[{"nativeSrc":"21630:25:53","nodeType":"YulAssignment","src":"21630:25:53","value":{"arguments":[{"name":"x","nativeSrc":"21653:1:53","nodeType":"YulIdentifier","src":"21653:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21635:17:53","nodeType":"YulIdentifier","src":"21635:17:53"},"nativeSrc":"21635:20:53","nodeType":"YulFunctionCall","src":"21635:20:53"},"variableNames":[{"name":"x","nativeSrc":"21630:1:53","nodeType":"YulIdentifier","src":"21630:1:53"}]},{"nativeSrc":"21664:25:53","nodeType":"YulAssignment","src":"21664:25:53","value":{"arguments":[{"name":"y","nativeSrc":"21687:1:53","nodeType":"YulIdentifier","src":"21687:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21669:17:53","nodeType":"YulIdentifier","src":"21669:17:53"},"nativeSrc":"21669:20:53","nodeType":"YulFunctionCall","src":"21669:20:53"},"variableNames":[{"name":"y","nativeSrc":"21664:1:53","nodeType":"YulIdentifier","src":"21664:1:53"}]},{"body":{"nativeSrc":"21711:22:53","nodeType":"YulBlock","src":"21711:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"21713:16:53","nodeType":"YulIdentifier","src":"21713:16:53"},"nativeSrc":"21713:18:53","nodeType":"YulFunctionCall","src":"21713:18:53"},"nativeSrc":"21713:18:53","nodeType":"YulExpressionStatement","src":"21713:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"21708:1:53","nodeType":"YulIdentifier","src":"21708:1:53"}],"functionName":{"name":"iszero","nativeSrc":"21701:6:53","nodeType":"YulIdentifier","src":"21701:6:53"},"nativeSrc":"21701:9:53","nodeType":"YulFunctionCall","src":"21701:9:53"},"nativeSrc":"21698:35:53","nodeType":"YulIf","src":"21698:35:53"},{"nativeSrc":"21743:14:53","nodeType":"YulAssignment","src":"21743:14:53","value":{"arguments":[{"name":"x","nativeSrc":"21752:1:53","nodeType":"YulIdentifier","src":"21752:1:53"},{"name":"y","nativeSrc":"21755:1:53","nodeType":"YulIdentifier","src":"21755:1:53"}],"functionName":{"name":"div","nativeSrc":"21748:3:53","nodeType":"YulIdentifier","src":"21748:3:53"},"nativeSrc":"21748:9:53","nodeType":"YulFunctionCall","src":"21748:9:53"},"variableNames":[{"name":"r","nativeSrc":"21743:1:53","nodeType":"YulIdentifier","src":"21743:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"21578:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21609:1:53","nodeType":"YulTypedName","src":"21609:1:53","type":""},{"name":"y","nativeSrc":"21612:1:53","nodeType":"YulTypedName","src":"21612:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"21618:1:53","nodeType":"YulTypedName","src":"21618:1:53","type":""}],"src":"21578:185:53"},{"body":{"nativeSrc":"21814:149:53","nodeType":"YulBlock","src":"21814:149:53","statements":[{"nativeSrc":"21824:25:53","nodeType":"YulAssignment","src":"21824:25:53","value":{"arguments":[{"name":"x","nativeSrc":"21847:1:53","nodeType":"YulIdentifier","src":"21847:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21829:17:53","nodeType":"YulIdentifier","src":"21829:17:53"},"nativeSrc":"21829:20:53","nodeType":"YulFunctionCall","src":"21829:20:53"},"variableNames":[{"name":"x","nativeSrc":"21824:1:53","nodeType":"YulIdentifier","src":"21824:1:53"}]},{"nativeSrc":"21858:25:53","nodeType":"YulAssignment","src":"21858:25:53","value":{"arguments":[{"name":"y","nativeSrc":"21881:1:53","nodeType":"YulIdentifier","src":"21881:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21863:17:53","nodeType":"YulIdentifier","src":"21863:17:53"},"nativeSrc":"21863:20:53","nodeType":"YulFunctionCall","src":"21863:20:53"},"variableNames":[{"name":"y","nativeSrc":"21858:1:53","nodeType":"YulIdentifier","src":"21858:1:53"}]},{"nativeSrc":"21892:17:53","nodeType":"YulAssignment","src":"21892:17:53","value":{"arguments":[{"name":"x","nativeSrc":"21904:1:53","nodeType":"YulIdentifier","src":"21904:1:53"},{"name":"y","nativeSrc":"21907:1:53","nodeType":"YulIdentifier","src":"21907:1:53"}],"functionName":{"name":"sub","nativeSrc":"21900:3:53","nodeType":"YulIdentifier","src":"21900:3:53"},"nativeSrc":"21900:9:53","nodeType":"YulFunctionCall","src":"21900:9:53"},"variableNames":[{"name":"diff","nativeSrc":"21892:4:53","nodeType":"YulIdentifier","src":"21892:4:53"}]},{"body":{"nativeSrc":"21934:22:53","nodeType":"YulBlock","src":"21934:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21936:16:53","nodeType":"YulIdentifier","src":"21936:16:53"},"nativeSrc":"21936:18:53","nodeType":"YulFunctionCall","src":"21936:18:53"},"nativeSrc":"21936:18:53","nodeType":"YulExpressionStatement","src":"21936:18:53"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21925:4:53","nodeType":"YulIdentifier","src":"21925:4:53"},{"name":"x","nativeSrc":"21931:1:53","nodeType":"YulIdentifier","src":"21931:1:53"}],"functionName":{"name":"gt","nativeSrc":"21922:2:53","nodeType":"YulIdentifier","src":"21922:2:53"},"nativeSrc":"21922:11:53","nodeType":"YulFunctionCall","src":"21922:11:53"},"nativeSrc":"21919:37:53","nodeType":"YulIf","src":"21919:37:53"}]},"name":"checked_sub_t_uint256","nativeSrc":"21769:194:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21800:1:53","nodeType":"YulTypedName","src":"21800:1:53","type":""},{"name":"y","nativeSrc":"21803:1:53","nodeType":"YulTypedName","src":"21803:1:53","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21809:4:53","nodeType":"YulTypedName","src":"21809:4:53","type":""}],"src":"21769:194:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_Strategy_$16633(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_Strategy_$16633(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Strategy_$16633(value)\n }\n\n function convert_t_enum$_Strategy_$16633_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Strategy_$16633(value)\n }\n\n function abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Strategy_$16633_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_Strategy_$16633__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_Strategy_$16633_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function mod_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_enum$_Strategy_$16633(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_Strategy_$16633(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Strategy_$16633(value)\n }\n\n // struct ERC20Incentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$16644_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // strategy\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_enum$_Strategy_$16633(add(headStart, offset), end))\n\n }\n\n {\n // reward\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$16644_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$16644_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct Budget.FungiblePayload -> struct Budget.FungiblePayload\n function abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x20)\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_FungiblePayload_$13486_memory_ptr__to_t_struct$_FungiblePayload_$13486_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_struct$_FungiblePayload_$13486_memory_ptr_to_t_struct$_FungiblePayload_$13486_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_assert_t_enum$_AssetType_$13471(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$13471(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$13471(value)\n }\n\n function convert_t_enum$_AssetType_$13471_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$13471(value)\n }\n\n function abi_encode_t_enum$_AssetType_$13471_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$13471_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(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(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$13471_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$13482_memory_ptr__to_t_struct$_Transfer_$13482_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$13482_memory_ptr_to_t_struct$_Transfer_$13482_memory_ptr_fromStack(value0, tail)\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function 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 // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr__to_t_struct$_ClaimPayload_$17186_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$17186_memory_ptr_to_t_struct$_ClaimPayload_$17186_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610129575f3560e01c8063a4d66daf116100aa578063dcc59b6f1161006e578063dcc59b6f14610387578063e18e6508146103b1578063f04e283e146103ed578063f1c30ec014610409578063f2fde38b14610445578063fee81cf41461046157610129565b8063a4d66daf1461027f578063a8c62e76146102a9578063b30906d4146102d3578063c63ff8dd1461030f578063c884ef831461034b57610129565b8063439fab91116100f1578063439fab91146101dd5780634e7165a21461020557806354d1f13d14610241578063715018a61461024b5780638da5cb5b1461025557610129565b806301ffc9a71461012d5780632275aea914610169578063228cb7331461017f57806325692962146101a957806338d52e0f146101b3575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e91906116bb565b61049d565b6040516101609190611700565b60405180910390f35b348015610174575f80fd5b5061017d610516565b005b34801561018a575f80fd5b506101936106e3565b6040516101a09190611731565b60405180910390f35b6101b16106e9565b005b3480156101be575f80fd5b506101c761073a565b6040516101d49190611789565b60405180910390f35b3480156101e8575f80fd5b5061020360048036038101906101fe9190611803565b61075f565b005b348015610210575f80fd5b5061022b60048036038101906102269190611803565b6109f4565b60405161023891906118be565b60405180910390f35b610249610b12565b005b610253610b4b565b005b348015610260575f80fd5b50610269610b5e565b6040516102769190611789565b60405180910390f35b34801561028a575f80fd5b50610293610b86565b6040516102a09190611731565b60405180910390f35b3480156102b4575f80fd5b506102bd610b8c565b6040516102ca9190611951565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190611994565b610b9f565b6040516103069190611789565b60405180910390f35b34801561031a575f80fd5b5061033560048036038101906103309190611803565b610bda565b6040516103429190611700565b60405180910390f35b348015610356575f80fd5b50610371600480360381019061036c91906119e9565b610f38565b60405161037e9190611700565b60405180910390f35b348015610392575f80fd5b5061039b610f55565b6040516103a89190611731565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190611803565b610f5a565b6040516103e49190611700565b60405180910390f35b610407600480360381019061040291906119e9565b610f82565b005b348015610414575f80fd5b5061042f600480360381019061042a9190611803565b610fc0565b60405161043c9190611700565b60405180910390f35b61045f600480360381019061045a91906119e9565b61123b565b005b34801561046c575f80fd5b50610487600480360381019061048291906119e9565b611264565b6040516104949190611731565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050f575061050e8261127d565b5b9050919050565b61051e6112f6565b600280811115610531576105306118de565b5b600260149054906101000a900460ff166002811115610553576105526118de565b5b1461058a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446105a29190611a41565b81525090505f600580805490506105b88461132d565b6105c29190611aa1565b815481106105d3576105d2611ad1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061064b8160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003546040516020016106bb93929190611b63565b6040516020818303038152906040526040516106d791906118be565b60405180910390a25050565b60035481565b5f6106f2611385565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61076861138f565b9050805460038255801561079a5760018160011c14303b106107915763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107ab9190611cb7565b9050600160028111156107c1576107c06118de565b5b816020015160028111156107d8576107d76118de565b5b0361080f576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160400151148061082457505f8160600151145b1561085b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60028081111561086f5761086e6118de565b5b82602001516002811115610886576108856118de565b5b036108955781604001516108aa565b816060015182604001516108a99190611ce2565b5b90505f6108d930845f015173ffffffffffffffffffffffffffffffffffffffff166113b890919063ffffffff16565b90508181101561092757825f015181836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161091e93929190611d23565b60405180910390fd5b825f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260200151600260146101000a81548160ff02191690836002811115610993576109926118de565b5b0217905550826040015160038190555082606001516004819055506109b7336113eb565b50505080156109ef576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f8383810190610a069190611cb7565b90505f600280811115610a1c57610a1b6118de565b5b82602001516002811115610a3357610a326118de565b5b03610a42578160400151610a57565b81606001518260400151610a569190611ce2565b5b9050604051806080016040528060016002811115610a7857610a776118de565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610ad79190611d81565b604051602081830303815290604052815250604051602001610af99190611e97565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b536112f6565b610b5c5f6114c1565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600260149054906101000a900460ff1681565b60058181548110610bae575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610be36112f6565b5f8383810190610bf39190611fd0565b9050610c01815f0151611587565b610c37576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002811115610c4a57610c496118de565b5b600260149054906101000a900460ff166002811115610c6c57610c6b6118de565b5b03610dd3575f80815480929190610c8290612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610d2f815f015160035460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f0151600354604051602001610da593929190611b63565b604051602081830303815290604052604051610dc191906118be565b60405180910390a26001915050610f32565b600280811115610de657610de56118de565b5b600260149054906101000a900460ff166002811115610e0857610e076118de565b5b03610f2d575f80815480929190610e1e90612017565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506005815f0151908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015173ffffffffffffffffffffffffffffffffffffffff167ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f15360405160405180910390a26001915050610f32565b5f9150505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610f6b9190611fd0565b9050610f79815f0151611587565b91505092915050565b610f8a6112f6565b63389a75e1600c52805f526020600c208054421115610fb057636f5e88185f526004601cfd5b5f815550610fbd816114c1565b50565b5f610fc96112f6565b5f8383810190610fd99190611fd0565b90505f8160200151806020019051810190610ff49190612072565b9050600280811115611009576110086118de565b5b600260149054906101000a900460ff16600281111561102b5761102a6118de565b5b036110b0576003548114158061104157505f8054115b156110a457338260405160200161105891906120d7565b6040516020818303038152906040526040517f4139d81d00000000000000000000000000000000000000000000000000000000815260040161109b9291906120f7565b60405180910390fd5b5f600481905550611148565b5f600354826110bf9190611aa1565b146111225733826040516020016110d691906120d7565b6040516020818303038152906040526040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016111199291906120f7565b60405180910390fd5b600354816111309190612125565b60045f8282546111409190612155565b925050819055505b611197825f01518260025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661133c9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01518460405160200161120b93929190611b63565b60405160208183030381529060405260405161122791906118be565b60405180910390a260019250505092915050565b6112436112f6565b8060601b61125857637448fbae5f526004601cfd5b611261816114c1565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112ef57506112ee826115e8565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461132b576382b429005f526004601cfd5b565b5f602082209050808252919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661137c576390b8ec185f526004601cfd5b5f603452505050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113f3611651565b1561146b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561142d57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506114be565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6114c9611651565b1561152e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611584565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115e157506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61169a81611666565b81146116a4575f80fd5b50565b5f813590506116b581611691565b92915050565b5f602082840312156116d0576116cf61165e565b5b5f6116dd848285016116a7565b91505092915050565b5f8115159050919050565b6116fa816116e6565b82525050565b5f6020820190506117135f8301846116f1565b92915050565b5f819050919050565b61172b81611719565b82525050565b5f6020820190506117445f830184611722565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117738261174a565b9050919050565b61178381611769565b82525050565b5f60208201905061179c5f83018461177a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126117c3576117c26117a2565b5b8235905067ffffffffffffffff8111156117e0576117df6117a6565b5b6020830191508360018202830111156117fc576117fb6117aa565b5b9250929050565b5f80602083850312156118195761181861165e565b5b5f83013567ffffffffffffffff81111561183657611835611662565b5b611842858286016117ae565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118908261184e565b61189a8185611858565b93506118aa818560208601611868565b6118b381611876565b840191505092915050565b5f6020820190508181035f8301526118d68184611886565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061191c5761191b6118de565b5b50565b5f81905061192c8261190b565b919050565b5f61193b8261191f565b9050919050565b61194b81611931565b82525050565b5f6020820190506119645f830184611942565b92915050565b61197381611719565b811461197d575f80fd5b50565b5f8135905061198e8161196a565b92915050565b5f602082840312156119a9576119a861165e565b5b5f6119b684828501611980565b91505092915050565b6119c881611769565b81146119d2575f80fd5b50565b5f813590506119e3816119bf565b92915050565b5f602082840312156119fe576119fd61165e565b5b5f611a0b848285016119d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a4b82611719565b9150611a5683611719565b9250828201905080821115611a6e57611a6d611a14565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611aab82611719565b9150611ab683611719565b925082611ac657611ac5611a74565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160601b9050919050565b5f611b1482611afe565b9050919050565b5f611b2582611b0a565b9050919050565b611b3d611b3882611769565b611b1b565b82525050565b5f819050919050565b611b5d611b5882611719565b611b43565b82525050565b5f611b6e8286611b2c565b601482019150611b7e8285611b2c565b601482019150611b8e8284611b4c565b602082019150819050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611bd982611876565b810181811067ffffffffffffffff82111715611bf857611bf7611ba3565b5b80604052505050565b5f611c0a611655565b9050611c168282611bd0565b919050565b5f80fd5b60038110611c2b575f80fd5b50565b5f81359050611c3c81611c1f565b92915050565b5f60808284031215611c5757611c56611b9f565b5b611c616080611c01565b90505f611c70848285016119d5565b5f830152506020611c8384828501611c2e565b6020830152506040611c9784828501611980565b6040830152506060611cab84828501611980565b60608301525092915050565b5f60808284031215611ccc57611ccb61165e565b5b5f611cd984828501611c42565b91505092915050565b5f611cec82611719565b9150611cf783611719565b9250828202611d0581611719565b91508282048414831517611d1c57611d1b611a14565b5b5092915050565b5f606082019050611d365f83018661177a565b611d436020830185611722565b611d506040830184611722565b949350505050565b611d6181611719565b82525050565b602082015f820151611d7b5f850182611d58565b50505050565b5f602082019050611d945f830184611d67565b92915050565b60038110611dab57611daa6118de565b5b50565b5f819050611dbb82611d9a565b919050565b5f611dca82611dae565b9050919050565b611dda81611dc0565b82525050565b611de981611769565b82525050565b5f82825260208201905092915050565b5f611e098261184e565b611e138185611def565b9350611e23818560208601611868565b611e2c81611876565b840191505092915050565b5f608083015f830151611e4c5f860182611dd1565b506020830151611e5f6020860182611de0565b506040830151611e726040860182611de0565b5060608301518482036060860152611e8a8282611dff565b9150508091505092915050565b5f6020820190508181035f830152611eaf8184611e37565b905092915050565b5f80fd5b5f67ffffffffffffffff821115611ed557611ed4611ba3565b5b611ede82611876565b9050602081019050919050565b828183375f83830152505050565b5f611f0b611f0684611ebb565b611c01565b905082815260208101848484011115611f2757611f26611eb7565b5b611f32848285611eeb565b509392505050565b5f82601f830112611f4e57611f4d6117a2565b5b8135611f5e848260208601611ef9565b91505092915050565b5f60408284031215611f7c57611f7b611b9f565b5b611f866040611c01565b90505f611f95848285016119d5565b5f83015250602082013567ffffffffffffffff811115611fb857611fb7611c1b565b5b611fc484828501611f3a565b60208301525092915050565b5f60208284031215611fe557611fe461165e565b5b5f82013567ffffffffffffffff81111561200257612001611662565b5b61200e84828501611f67565b91505092915050565b5f61202182611719565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205357612052611a14565b5b600182019050919050565b5f8151905061206c8161196a565b92915050565b5f602082840312156120875761208661165e565b5b5f6120948482850161205e565b91505092915050565b5f604083015f8301516120b25f860182611de0565b50602083015184820360208601526120ca8282611dff565b9150508091505092915050565b5f6020820190508181035f8301526120ef818461209d565b905092915050565b5f60408201905061210a5f83018561177a565b818103602083015261211c8184611886565b90509392505050565b5f61212f82611719565b915061213a83611719565b92508261214a57612149611a74565b5b828204905092915050565b5f61215f82611719565b915061216a83611719565b925082820390508181111561218257612181611a14565b5b9291505056fea26469706673582212206b260b82ccfdd3dfc6734ad6c86b98c5513cc724565757ef54f08104f1af95bb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x445 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x461 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0xB30906D4 EQ PUSH2 0x2D3 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x34B JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x255 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x2275AEA9 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1B3 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C7 PUSH2 0x73A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x22B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x249 PUSH2 0xB12 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x253 PUSH2 0xB4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x293 PUSH2 0xB86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BD PUSH2 0xB8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CA SWAP2 SWAP1 PUSH2 0x1951 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x1994 JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x306 SWAP2 SWAP1 PUSH2 0x1789 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x330 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x356 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36C SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xF55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xF5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x407 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x402 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0xF82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x414 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x42F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42A SWAP2 SWAP1 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x1700 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x45F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45A SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x123B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x487 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x482 SWAP2 SWAP1 PUSH2 0x19E9 JUMP JUMPDEST PUSH2 0x1264 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x494 SWAP2 SWAP1 PUSH2 0x1731 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x50F JUMPI POP PUSH2 0x50E DUP3 PUSH2 0x127D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0x12F6 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x531 JUMPI PUSH2 0x530 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x553 JUMPI PUSH2 0x552 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST EQ PUSH2 0x58A JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP PREVRANDAO PUSH2 0x5A2 SWAP2 SWAP1 PUSH2 0x1A41 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x5 DUP1 DUP1 SLOAD SWAP1 POP PUSH2 0x5B8 DUP5 PUSH2 0x132D JUMP JUMPDEST PUSH2 0x5C2 SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x5D3 JUMPI PUSH2 0x5D2 PUSH2 0x1AD1 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x64B DUP2 PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6BB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6D7 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0x1385 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x768 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x791 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x7AB SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI PUSH2 0x7D7 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x80F JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x824 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x85B JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x86F JUMPI PUSH2 0x86E PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x895 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x8AA JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x8A9 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH0 PUSH2 0x8D9 ADDRESS DUP5 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x927 JUMPI DUP3 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x9B7 CALLER PUSH2 0x13EB JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x9EF JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA06 SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA33 JUMPI PUSH2 0xA32 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xA42 JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0xA57 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x1CE2 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA78 JUMPI PUSH2 0xA77 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD7 SWAP2 SWAP1 PUSH2 0x1D81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAF9 SWAP2 SWAP1 PUSH2 0x1E97 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 PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0xB53 PUSH2 0x12F6 JUMP JUMPDEST PUSH2 0xB5C PUSH0 PUSH2 0x14C1 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBAE JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0xBE3 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xC01 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST PUSH2 0xC37 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH2 0xC49 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC6C JUMPI PUSH2 0xC6B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xDD3 JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xC82 SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xD2F DUP2 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDC1 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xDE6 JUMPI PUSH2 0xDE5 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE08 JUMPI PUSH2 0xE07 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0xF2D JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xE1E SWAP1 PUSH2 0x2017 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x5 DUP2 PUSH0 ADD MLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0ABE0F5C6F02112A9A4332E7B091BF49040FFDDEEDB73785A9B9A0A3CA7F153 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xF32 JUMP JUMPDEST PUSH0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH2 0xF79 DUP2 PUSH0 ADD MLOAD PUSH2 0x1587 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF8A PUSH2 0x12F6 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xFB0 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xFBD DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xFC9 PUSH2 0x12F6 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xFD9 SWAP2 SWAP1 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFF4 SWAP2 SWAP1 PUSH2 0x2072 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x1009 JUMPI PUSH2 0x1008 PUSH2 0x18DE JUMP JUMPDEST JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x102B JUMPI PUSH2 0x102A PUSH2 0x18DE JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10B0 JUMPI PUSH1 0x3 SLOAD DUP2 EQ ISZERO DUP1 PUSH2 0x1041 JUMPI POP PUSH0 DUP1 SLOAD GT JUMPDEST ISZERO PUSH2 0x10A4 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1058 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109B SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x1148 JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD DUP3 PUSH2 0x10BF SWAP2 SWAP1 PUSH2 0x1AA1 JUMP JUMPDEST EQ PUSH2 0x1122 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10D6 SWAP2 SWAP1 PUSH2 0x20D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1119 SWAP3 SWAP2 SWAP1 PUSH2 0x20F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD DUP2 PUSH2 0x1130 SWAP2 SWAP1 PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1140 SWAP2 SWAP1 PUSH2 0x2155 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x1197 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x133C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x120B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1227 SWAP2 SWAP1 PUSH2 0x18BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1243 PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1258 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1261 DUP2 PUSH2 0x14C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x12EF JUMPI POP PUSH2 0x12EE DUP3 PUSH2 0x15E8 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x132B JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 KECCAK256 SWAP1 POP DUP1 DUP3 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x137C JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13F3 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x146B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x142D JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x14BE JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x1651 JUMP JUMPDEST ISZERO PUSH2 0x152E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1584 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x15E1 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169A DUP2 PUSH2 0x1666 JUMP JUMPDEST DUP2 EQ PUSH2 0x16A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16B5 DUP2 PUSH2 0x1691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16D0 JUMPI PUSH2 0x16CF PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x16DD DUP5 DUP3 DUP6 ADD PUSH2 0x16A7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16FA DUP2 PUSH2 0x16E6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1713 PUSH0 DUP4 ADD DUP5 PUSH2 0x16F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x172B DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1744 PUSH0 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1773 DUP3 PUSH2 0x174A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1783 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x179C PUSH0 DUP4 ADD DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x17C3 JUMPI PUSH2 0x17C2 PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17E0 JUMPI PUSH2 0x17DF PUSH2 0x17A6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x17FC JUMPI PUSH2 0x17FB PUSH2 0x17AA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1819 JUMPI PUSH2 0x1818 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1836 JUMPI PUSH2 0x1835 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x1842 DUP6 DUP3 DUP7 ADD PUSH2 0x17AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1890 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x189A DUP2 DUP6 PUSH2 0x1858 JUMP JUMPDEST SWAP4 POP PUSH2 0x18AA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x18B3 DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x18D6 DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x191C JUMPI PUSH2 0x191B PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x192C DUP3 PUSH2 0x190B JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x193B DUP3 PUSH2 0x191F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x194B DUP2 PUSH2 0x1931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1964 PUSH0 DUP4 ADD DUP5 PUSH2 0x1942 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1973 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP2 EQ PUSH2 0x197D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x198E DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19A9 JUMPI PUSH2 0x19A8 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x19B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x19C8 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP2 EQ PUSH2 0x19D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E3 DUP2 PUSH2 0x19BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19FE JUMPI PUSH2 0x19FD PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A0B DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1A4B DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A56 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A6E JUMPI PUSH2 0x1A6D PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1AAB DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AB6 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1AC6 JUMPI PUSH2 0x1AC5 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B14 DUP3 PUSH2 0x1AFE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B25 DUP3 PUSH2 0x1B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B3D PUSH2 0x1B38 DUP3 PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x1B1B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5D PUSH2 0x1B58 DUP3 PUSH2 0x1719 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B6E DUP3 DUP7 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B7E DUP3 DUP6 PUSH2 0x1B2C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1B8E DUP3 DUP5 PUSH2 0x1B4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1BD9 DUP3 PUSH2 0x1876 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1BF8 JUMPI PUSH2 0x1BF7 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0A PUSH2 0x1655 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C16 DUP3 DUP3 PUSH2 0x1BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1C2B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C3C DUP2 PUSH2 0x1C1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C57 JUMPI PUSH2 0x1C56 PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1C61 PUSH1 0x80 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C70 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1C83 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1C97 DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1CAB DUP5 DUP3 DUP6 ADD PUSH2 0x1980 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCC JUMPI PUSH2 0x1CCB PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1CD9 DUP5 DUP3 DUP6 ADD PUSH2 0x1C42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1CEC DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CF7 DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D05 DUP2 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D1C JUMPI PUSH2 0x1D1B PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1D36 PUSH0 DUP4 ADD DUP7 PUSH2 0x177A JUMP JUMPDEST PUSH2 0x1D43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1722 JUMP JUMPDEST PUSH2 0x1D50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1722 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1D61 DUP2 PUSH2 0x1719 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1D7B PUSH0 DUP6 ADD DUP3 PUSH2 0x1D58 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D94 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1DAB JUMPI PUSH2 0x1DAA PUSH2 0x18DE JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1DBB DUP3 PUSH2 0x1D9A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1DCA DUP3 PUSH2 0x1DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DDA DUP2 PUSH2 0x1DC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DE9 DUP2 PUSH2 0x1769 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E09 DUP3 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x1E13 DUP2 DUP6 PUSH2 0x1DEF JUMP JUMPDEST SWAP4 POP PUSH2 0x1E23 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH2 0x1E2C DUP2 PUSH2 0x1876 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1E4C PUSH0 DUP7 ADD DUP3 PUSH2 0x1DD1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1E5F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1E72 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1E8A DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1EAF DUP2 DUP5 PUSH2 0x1E37 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1ED5 JUMPI PUSH2 0x1ED4 PUSH2 0x1BA3 JUMP JUMPDEST JUMPDEST PUSH2 0x1EDE DUP3 PUSH2 0x1876 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F0B PUSH2 0x1F06 DUP5 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x1EB7 JUMP JUMPDEST JUMPDEST PUSH2 0x1F32 DUP5 DUP3 DUP6 PUSH2 0x1EEB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F4E JUMPI PUSH2 0x1F4D PUSH2 0x17A2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F5E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1EF9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7C JUMPI PUSH2 0x1F7B PUSH2 0x1B9F JUMP JUMPDEST JUMPDEST PUSH2 0x1F86 PUSH1 0x40 PUSH2 0x1C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1F95 DUP5 DUP3 DUP6 ADD PUSH2 0x19D5 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FB8 JUMPI PUSH2 0x1FB7 PUSH2 0x1C1B JUMP JUMPDEST JUMPDEST PUSH2 0x1FC4 DUP5 DUP3 DUP6 ADD PUSH2 0x1F3A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FE5 JUMPI PUSH2 0x1FE4 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2002 JUMPI PUSH2 0x2001 PUSH2 0x1662 JUMP JUMPDEST JUMPDEST PUSH2 0x200E DUP5 DUP3 DUP6 ADD PUSH2 0x1F67 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2021 DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2053 JUMPI PUSH2 0x2052 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x206C DUP2 PUSH2 0x196A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2087 JUMPI PUSH2 0x2086 PUSH2 0x165E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2094 DUP5 DUP3 DUP6 ADD PUSH2 0x205E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x20B2 PUSH0 DUP7 ADD DUP3 PUSH2 0x1DE0 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x20CA DUP3 DUP3 PUSH2 0x1DFF JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x20EF DUP2 DUP5 PUSH2 0x209D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x210A PUSH0 DUP4 ADD DUP6 PUSH2 0x177A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x211C DUP2 DUP5 PUSH2 0x1886 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x212F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x213A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x214A JUMPI PUSH2 0x2149 PUSH2 0x1A74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x215F DUP3 PUSH2 0x1719 JUMP JUMPDEST SWAP2 POP PUSH2 0x216A DUP4 PUSH2 0x1719 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x1A14 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x260B82CCFDD3DFC6734AD6C8 PUSH12 0x98C5513CC724565757EF54F0 DUP2 DIV CALL 0xAF SWAP6 0xBB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"448:7197:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7214:429:43;;;;;;;;;;;;;:::i;:::-;;1680:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1504:20:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2413:936;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5607:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1775:20:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1593:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1888;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3550:756;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:202:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4342:994:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;7214:429:43:-;12517:13:17;:11;:13::i;:::-;7281:15:43::1;7269:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;;7265:65;;7305:25;;;;;;;;;;;;;;7265:65;7341:25;7369:57;;;;;;;;7409:15;7390:16;:34;;;;:::i;:::-;7369:57;;::::0;7341:85:::1;;7437:21;7461:7;7484::::0;:14:::1;;;;7469:12;:5;:10;:12::i;:::-;:29;;;;:::i;:::-;7461:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7437:62;;7510:41;7529:13;7544:6;;7510:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;7574:13;7566:70;;;7606:5;;;;;;;;;;;7613:13;7628:6;;7589:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7566:70;;;;;;:::i;:::-;;;;;;;;7255:388;;7214:429::o:0;1680:21::-;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1504:20:43:-;;;;;;;;;;;;;:::o;2413:936::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2493:24:43::1;2531:5;;2520:32;;;;;;;:::i;:::-;2493:59;;2653:13;2635:31;;;;;;;;:::i;:::-;;:5;:14;;;:31;;;;;;;;:::i;:::-;;::::0;2631:71:::1;;2675:27;;;;;;;;;;;;;;2631:71;2732:1;2716:5;:12;;;:17;:37;;;;2752:1;2737:5;:11;;;:16;2716:37;2712:84;;;2762:34;;;;;;;;;;;;;;2712:84;2870:22;2913:15;2895:33:::0;::::1;;;;;;;:::i;:::-;;:5;:14;;;:33;;;;;;;;:::i;:::-;;::::0;:77:::1;;2960:5;:12;;;2895:77;;;2946:5;:11;;;2931:5;:12;;;:26;;;;:::i;:::-;2895:77;2870:102;;2982:17;3002:36;3032:4;3002:5;:11;;;:21;;;;:36;;;;:::i;:::-;2982:56;;3064:14;3052:9;:26;3048:132;;;3130:5;:11;;;3143:9;3154:14;3101:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;3048:132;3198:5;:11;;;3190:5;;:19;;;;;;;;;;;;;;;;;;3230:5;:14;;;3219:8;;:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;3263:5;:12;;;3254:6;:21;;;;3293:5;:11;;;3285:5;:19;;;;3314:28;3331:10;3314:16;:28::i;:::-;2483:866;;;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2413:936:43;;:::o;5607:563::-;5680:23;5715:24;5753:5;;5742:32;;;;;;;:::i;:::-;5715:59;;5784:14;5819:15;5801:33;;;;;;;;:::i;:::-;;:5;:14;;;:33;;;;;;;;:::i;:::-;;;:77;;5866:5;:12;;;5801:77;;;5852:5;:11;;;5837:5;:12;;;:26;;;;:::i;:::-;5801:77;5784:94;;5920:233;;;;;;;;5965:22;5920:233;;;;;;;;:::i;:::-;;;;;;6012:5;:11;;;5920:233;;;;;;6057:4;5920:233;;;;;;6097:40;;;;;;;;6129:6;6097:40;;;6086:52;;;;;;;;:::i;:::-;;;;;;;;;;;;;5920:233;;;5896:267;;;;;;;;:::i;:::-;;;;;;;;;;;;;5889:274;;;;5607:563;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1775:20:43:-;;;;:::o;1593:24::-;;;;;;;;;;;;;:::o;1888:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3550:756::-;3624:4;12517:13:17;:11;:13::i;:::-;3640:26:43::1;3680:5;;3669:33;;;;;;;:::i;:::-;3640:62;;3717:27;3730:6;:13;;;3717:12;:27::i;:::-;3712:55;;3753:14;;;;;;;;;;;;;;3712:55;3794:13;3782:25;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:25;;;;;;;;:::i;:::-;;::::0;3778:499:::1;;3823:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;3870:4;3845:7:::0;:22:::1;3853:6;:13;;;3845:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3889:41;3908:6;:13;;;3923:6;;3889:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;3958:6;:13;;;3950:70;;;3990:5;;;;;;;;;;;3997:6;:13;;;4012:6;;3973:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3950:70;;;;;;:::i;:::-;;;;;;;;4041:4;4034:11;;;;;3778:499;4078:15;4066:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;::::0;4062:215:::1;;4109:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;4156:4;4131:7:::0;:22:::1;4139:6;:13;;;4131:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4174:7;4187:6;:13;;;4174:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4227:6;:13;;;4221:20;;;;;;;;;;;;4262:4;4255:11;;;;;4062:215;4294:5;4287:12;;;12540:1:17;3550:756:43::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;6551:202:43:-;6624:4;6640:26;6680:5;;6669:33;;;;;;;:::i;:::-;6640:62;;6719:27;6732:6;:13;;;6719:12;:27::i;:::-;6712:34;;;6551:202;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;4342:994:43:-;4418:4;12517:13:17;:11;:13::i;:::-;4434:26:43::1;4474:5;;4463:33;;;;;;;:::i;:::-;4434:62;;4507:14;4536:6;:11;;;4525:34;;;;;;;;;;;;:::i;:::-;4506:53;;4586:15;4574:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;::::0;4570:539:::1;;4737:6;;4727;:16;;:30;;;;4756:1;4747:6:::0;::::1;:10;4727:30;4723:97;;;4789:10;4812:6;4801:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;4766:54;;;;;;;;;;;;:::i;:::-;;;;;;;;4723:97;4842:1;4834:5;:9;;;;4570:539;;;4996:1;4986:6;;4977;:15;;;;:::i;:::-;:20;4973:87;;5029:10;5052:6;5041:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;5006:54;;;;;;;;;;;;:::i;:::-;;;;;;;;4973:87;5092:6;;5083;:15;;;;:::i;:::-;5074:5;;:24;;;;;;;:::i;:::-;;;;;;;;4570:539;5181:41;5200:6;:13;;;5215:6;5181:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;5245:6;:13;;;5237:70;;;5277:5;;;;;;;;;;;5284:6;:13;;;5299:6;5260:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5237:70;;;;;;:::i;:::-;;;;;;;;5325:4;5318:11;;;;4342:994:::0;;;;:::o;8348:349:17:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2955:756:23:-;3010:14;3657:4;3651;3641:21;3631:31;;3688:6;3682:4;3675:20;2955:756;;;:::o;13466:939:27:-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;19260:739:27:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;6959:133:43:-;7024:4;7048:7;:19;7056:10;7048:19;;;;;;;;;;;;;;;;;;;;;;;;;7047:20;:38;;;;;7080:5;;7071:6;;:14;7047:38;7040:45;;6959:133;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:126::-;1990:7;2030:42;2023:5;2019:54;2008:65;;1953:126;;;:::o;2085:96::-;2122:7;2151:24;2169:5;2151:24;:::i;:::-;2140:35;;2085:96;;;:::o;2187:118::-;2274:24;2292:5;2274:24;:::i;:::-;2269:3;2262:37;2187:118;;:::o;2311:222::-;2404:4;2442:2;2431:9;2427:18;2419:26;;2455:71;2523:1;2512:9;2508:17;2499:6;2455:71;:::i;:::-;2311:222;;;;:::o;2539:117::-;2648:1;2645;2638:12;2662:117;2771:1;2768;2761:12;2785:117;2894:1;2891;2884:12;2921:552;2978:8;2988:6;3038:3;3031:4;3023:6;3019:17;3015:27;3005:122;;3046:79;;:::i;:::-;3005:122;3159:6;3146:20;3136:30;;3189:18;3181:6;3178:30;3175:117;;;3211:79;;:::i;:::-;3175:117;3325:4;3317:6;3313:17;3301:29;;3379:3;3371:4;3363:6;3359:17;3349:8;3345:32;3342:41;3339:128;;;3386:79;;:::i;:::-;3339:128;2921:552;;;;;:::o;3479:527::-;3549:6;3557;3606:2;3594:9;3585:7;3581:23;3577:32;3574:119;;;3612:79;;:::i;:::-;3574:119;3760:1;3749:9;3745:17;3732:31;3790:18;3782:6;3779:30;3776:117;;;3812:79;;:::i;:::-;3776:117;3925:64;3981:7;3972:6;3961:9;3957:22;3925:64;:::i;:::-;3907:82;;;;3703:296;3479:527;;;;;:::o;4012:98::-;4063:6;4097:5;4091:12;4081:22;;4012:98;;;:::o;4116:168::-;4199:11;4233:6;4228:3;4221:19;4273:4;4268:3;4264:14;4249:29;;4116:168;;;;:::o;4290:139::-;4379:6;4374:3;4369;4363:23;4420:1;4411:6;4406:3;4402:16;4395:27;4290:139;;;:::o;4435:102::-;4476:6;4527:2;4523:7;4518:2;4511:5;4507:14;4503:28;4493:38;;4435:102;;;:::o;4543:373::-;4629:3;4657:38;4689:5;4657:38;:::i;:::-;4711:70;4774:6;4769:3;4711:70;:::i;:::-;4704:77;;4790:65;4848:6;4843:3;4836:4;4829:5;4825:16;4790:65;:::i;:::-;4880:29;4902:6;4880:29;:::i;:::-;4875:3;4871:39;4864:46;;4633:283;4543:373;;;;:::o;4922:309::-;5033:4;5071:2;5060:9;5056:18;5048:26;;5120:9;5114:4;5110:20;5106:1;5095:9;5091:17;5084:47;5148:76;5219:4;5210:6;5148:76;:::i;:::-;5140:84;;4922:309;;;;:::o;5237:180::-;5285:77;5282:1;5275:88;5382:4;5379:1;5372:15;5406:4;5403:1;5396:15;5423:119;5510:1;5503:5;5500:12;5490:46;;5516:18;;:::i;:::-;5490:46;5423:119;:::o;5548:139::-;5599:7;5628:5;5617:16;;5634:47;5675:5;5634:47;:::i;:::-;5548:139;;;:::o;5693:::-;5755:9;5788:38;5820:5;5788:38;:::i;:::-;5775:51;;5693:139;;;:::o;5838:155::-;5937:49;5980:5;5937:49;:::i;:::-;5932:3;5925:62;5838:155;;:::o;5999:246::-;6104:4;6142:2;6131:9;6127:18;6119:26;;6155:83;6235:1;6224:9;6220:17;6211:6;6155:83;:::i;:::-;5999:246;;;;:::o;6251:122::-;6324:24;6342:5;6324:24;:::i;:::-;6317:5;6314:35;6304:63;;6363:1;6360;6353:12;6304:63;6251:122;:::o;6379:139::-;6425:5;6463:6;6450:20;6441:29;;6479:33;6506:5;6479:33;:::i;:::-;6379:139;;;;:::o;6524:329::-;6583:6;6632:2;6620:9;6611:7;6607:23;6603:32;6600:119;;;6638:79;;:::i;:::-;6600:119;6758:1;6783:53;6828:7;6819:6;6808:9;6804:22;6783:53;:::i;:::-;6773:63;;6729:117;6524:329;;;;:::o;6859:122::-;6932:24;6950:5;6932:24;:::i;:::-;6925:5;6922:35;6912:63;;6971:1;6968;6961:12;6912:63;6859:122;:::o;6987:139::-;7033:5;7071:6;7058:20;7049:29;;7087:33;7114:5;7087:33;:::i;:::-;6987:139;;;;:::o;7132:329::-;7191:6;7240:2;7228:9;7219:7;7215:23;7211:32;7208:119;;;7246:79;;:::i;:::-;7208:119;7366:1;7391:53;7436:7;7427:6;7416:9;7412:22;7391:53;:::i;:::-;7381:63;;7337:117;7132:329;;;;:::o;7467:180::-;7515:77;7512:1;7505:88;7612:4;7609:1;7602:15;7636:4;7633:1;7626:15;7653:191;7693:3;7712:20;7730:1;7712:20;:::i;:::-;7707:25;;7746:20;7764:1;7746:20;:::i;:::-;7741:25;;7789:1;7786;7782:9;7775:16;;7810:3;7807:1;7804:10;7801:36;;;7817:18;;:::i;:::-;7801:36;7653:191;;;;:::o;7850:180::-;7898:77;7895:1;7888:88;7995:4;7992:1;7985:15;8019:4;8016:1;8009:15;8036:176;8068:1;8085:20;8103:1;8085:20;:::i;:::-;8080:25;;8119:20;8137:1;8119:20;:::i;:::-;8114:25;;8158:1;8148:35;;8163:18;;:::i;:::-;8148:35;8204:1;8201;8197:9;8192:14;;8036:176;;;;:::o;8218:180::-;8266:77;8263:1;8256:88;8363:4;8360:1;8353:15;8387:4;8384:1;8377:15;8404:94;8437:8;8485:5;8481:2;8477:14;8456:35;;8404:94;;;:::o;8504:::-;8543:7;8572:20;8586:5;8572:20;:::i;:::-;8561:31;;8504:94;;;:::o;8604:100::-;8643:7;8672:26;8692:5;8672:26;:::i;:::-;8661:37;;8604:100;;;:::o;8710:157::-;8815:45;8835:24;8853:5;8835:24;:::i;:::-;8815:45;:::i;:::-;8810:3;8803:58;8710:157;;:::o;8873:79::-;8912:7;8941:5;8930:16;;8873:79;;;:::o;8958:157::-;9063:45;9083:24;9101:5;9083:24;:::i;:::-;9063:45;:::i;:::-;9058:3;9051:58;8958:157;;:::o;9121:538::-;9289:3;9304:75;9375:3;9366:6;9304:75;:::i;:::-;9404:2;9399:3;9395:12;9388:19;;9417:75;9488:3;9479:6;9417:75;:::i;:::-;9517:2;9512:3;9508:12;9501:19;;9530:75;9601:3;9592:6;9530:75;:::i;:::-;9630:2;9625:3;9621:12;9614:19;;9650:3;9643:10;;9121:538;;;;;;:::o;9665:117::-;9774:1;9771;9764:12;9788:180;9836:77;9833:1;9826:88;9933:4;9930:1;9923:15;9957:4;9954:1;9947:15;9974:281;10057:27;10079:4;10057:27;:::i;:::-;10049:6;10045:40;10187:6;10175:10;10172:22;10151:18;10139:10;10136:34;10133:62;10130:88;;;10198:18;;:::i;:::-;10130:88;10238:10;10234:2;10227:22;10017:238;9974:281;;:::o;10261:129::-;10295:6;10322:20;;:::i;:::-;10312:30;;10351:33;10379:4;10371:6;10351:33;:::i;:::-;10261:129;;;:::o;10396:117::-;10505:1;10502;10495:12;10519:113;10606:1;10599:5;10596:12;10586:40;;10622:1;10619;10612:12;10586:40;10519:113;:::o;10638:167::-;10698:5;10736:6;10723:20;10714:29;;10752:47;10793:5;10752:47;:::i;:::-;10638:167;;;;:::o;10852:923::-;10931:5;10975:4;10963:9;10958:3;10954:19;10950:30;10947:117;;;10983:79;;:::i;:::-;10947:117;11082:21;11098:4;11082:21;:::i;:::-;11073:30;;11163:1;11203:49;11248:3;11239:6;11228:9;11224:22;11203:49;:::i;:::-;11196:4;11189:5;11185:16;11178:75;11113:151;11327:2;11368:63;11427:3;11418:6;11407:9;11403:22;11368:63;:::i;:::-;11361:4;11354:5;11350:16;11343:89;11274:169;11504:2;11545:49;11590:3;11581:6;11570:9;11566:22;11545:49;:::i;:::-;11538:4;11531:5;11527:16;11520:75;11453:153;11666:2;11707:49;11752:3;11743:6;11732:9;11728:22;11707:49;:::i;:::-;11700:4;11693:5;11689:16;11682:75;11616:152;10852:923;;;;:::o;11781:390::-;11870:6;11919:3;11907:9;11898:7;11894:23;11890:33;11887:120;;;11926:79;;:::i;:::-;11887:120;12046:1;12071:83;12146:7;12137:6;12126:9;12122:22;12071:83;:::i;:::-;12061:93;;12017:147;11781:390;;;;:::o;12177:410::-;12217:7;12240:20;12258:1;12240:20;:::i;:::-;12235:25;;12274:20;12292:1;12274:20;:::i;:::-;12269:25;;12329:1;12326;12322:9;12351:30;12369:11;12351:30;:::i;:::-;12340:41;;12530:1;12521:7;12517:15;12514:1;12511:22;12491:1;12484:9;12464:83;12441:139;;12560:18;;:::i;:::-;12441:139;12225:362;12177:410;;;;:::o;12593:442::-;12742:4;12780:2;12769:9;12765:18;12757:26;;12793:71;12861:1;12850:9;12846:17;12837:6;12793:71;:::i;:::-;12874:72;12942:2;12931:9;12927:18;12918:6;12874:72;:::i;:::-;12956;13024:2;13013:9;13009:18;13000:6;12956:72;:::i;:::-;12593:442;;;;;;:::o;13041:108::-;13118:24;13136:5;13118:24;:::i;:::-;13113:3;13106:37;13041:108;;:::o;13225:353::-;13390:4;13385:3;13381:14;13479:4;13472:5;13468:16;13462:23;13498:63;13555:4;13550:3;13546:14;13532:12;13498:63;:::i;:::-;13405:166;13359:219;13225:353;;:::o;13584:358::-;13745:4;13783:2;13772:9;13768:18;13760:26;;13796:139;13932:1;13921:9;13917:17;13908:6;13796:139;:::i;:::-;13584:358;;;;:::o;13948:120::-;14036:1;14029:5;14026:12;14016:46;;14042:18;;:::i;:::-;14016:46;13948:120;:::o;14074:141::-;14126:7;14155:5;14144:16;;14161:48;14203:5;14161:48;:::i;:::-;14074:141;;;:::o;14221:::-;14284:9;14317:39;14350:5;14317:39;:::i;:::-;14304:52;;14221:141;;;:::o;14368:147::-;14458:50;14502:5;14458:50;:::i;:::-;14453:3;14446:63;14368:147;;:::o;14521:108::-;14598:24;14616:5;14598:24;:::i;:::-;14593:3;14586:37;14521:108;;:::o;14635:158::-;14708:11;14742:6;14737:3;14730:19;14782:4;14777:3;14773:14;14758:29;;14635:158;;;;:::o;14799:353::-;14875:3;14903:38;14935:5;14903:38;:::i;:::-;14957:60;15010:6;15005:3;14957:60;:::i;:::-;14950:67;;15026:65;15084:6;15079:3;15072:4;15065:5;15061:16;15026:65;:::i;:::-;15116:29;15138:6;15116:29;:::i;:::-;15111:3;15107:39;15100:46;;14879:273;14799:353;;;;:::o;15214:977::-;15337:3;15373:4;15368:3;15364:14;15465:4;15458:5;15454:16;15448:23;15484:76;15554:4;15549:3;15545:14;15531:12;15484:76;:::i;:::-;15388:182;15653:4;15646:5;15642:16;15636:23;15672:63;15729:4;15724:3;15720:14;15706:12;15672:63;:::i;:::-;15580:165;15829:4;15822:5;15818:16;15812:23;15848:63;15905:4;15900:3;15896:14;15882:12;15848:63;:::i;:::-;15755:166;16003:4;15996:5;15992:16;15986:23;16056:3;16050:4;16046:14;16039:4;16034:3;16030:14;16023:38;16082:71;16148:4;16134:12;16082:71;:::i;:::-;16074:79;;15931:233;16181:4;16174:11;;15342:849;15214:977;;;;:::o;16197:381::-;16344:4;16382:2;16371:9;16367:18;16359:26;;16431:9;16425:4;16421:20;16417:1;16406:9;16402:17;16395:47;16459:112;16566:4;16557:6;16459:112;:::i;:::-;16451:120;;16197:381;;;;:::o;16584:117::-;16693:1;16690;16683:12;16707:307;16768:4;16858:18;16850:6;16847:30;16844:56;;;16880:18;;:::i;:::-;16844:56;16918:29;16940:6;16918:29;:::i;:::-;16910:37;;17002:4;16996;16992:15;16984:23;;16707:307;;;:::o;17020:148::-;17118:6;17113:3;17108;17095:30;17159:1;17150:6;17145:3;17141:16;17134:27;17020:148;;;:::o;17174:423::-;17251:5;17276:65;17292:48;17333:6;17292:48;:::i;:::-;17276:65;:::i;:::-;17267:74;;17364:6;17357:5;17350:21;17402:4;17395:5;17391:16;17440:3;17431:6;17426:3;17422:16;17419:25;17416:112;;;17447:79;;:::i;:::-;17416:112;17537:54;17584:6;17579:3;17574;17537:54;:::i;:::-;17257:340;17174:423;;;;;:::o;17616:338::-;17671:5;17720:3;17713:4;17705:6;17701:17;17697:27;17687:122;;17728:79;;:::i;:::-;17687:122;17845:6;17832:20;17870:78;17944:3;17936:6;17929:4;17921:6;17917:17;17870:78;:::i;:::-;17861:87;;17677:277;17616:338;;;;:::o;17997:751::-;18077:5;18121:4;18109:9;18104:3;18100:19;18096:30;18093:117;;;18129:79;;:::i;:::-;18093:117;18228:21;18244:4;18228:21;:::i;:::-;18219:30;;18310:1;18350:49;18395:3;18386:6;18375:9;18371:22;18350:49;:::i;:::-;18343:4;18336:5;18332:16;18325:75;18259:152;18498:2;18487:9;18483:18;18470:32;18529:18;18521:6;18518:30;18515:117;;;18551:79;;:::i;:::-;18515:117;18671:58;18725:3;18716:6;18705:9;18701:22;18671:58;:::i;:::-;18664:4;18657:5;18653:16;18646:84;18421:320;17997:751;;;;:::o;18754:551::-;18844:6;18893:2;18881:9;18872:7;18868:23;18864:32;18861:119;;;18899:79;;:::i;:::-;18861:119;19047:1;19036:9;19032:17;19019:31;19077:18;19069:6;19066:30;19063:117;;;19099:79;;:::i;:::-;19063:117;19204:84;19280:7;19271:6;19260:9;19256:22;19204:84;:::i;:::-;19194:94;;18990:308;18754:551;;;;:::o;19311:233::-;19350:3;19373:24;19391:5;19373:24;:::i;:::-;19364:33;;19419:66;19412:5;19409:77;19406:103;;19489:18;;:::i;:::-;19406:103;19536:1;19529:5;19525:13;19518:20;;19311:233;;;:::o;19550:143::-;19607:5;19638:6;19632:13;19623:22;;19654:33;19681:5;19654:33;:::i;:::-;19550:143;;;;:::o;19699:351::-;19769:6;19818:2;19806:9;19797:7;19793:23;19789:32;19786:119;;;19824:79;;:::i;:::-;19786:119;19944:1;19969:64;20025:7;20016:6;20005:9;20001:22;19969:64;:::i;:::-;19959:74;;19915:128;19699:351;;;;:::o;20126:618::-;20257:3;20293:4;20288:3;20284:14;20382:4;20375:5;20371:16;20365:23;20401:63;20458:4;20453:3;20449:14;20435:12;20401:63;:::i;:::-;20308:166;20556:4;20549:5;20545:16;20539:23;20609:3;20603:4;20599:14;20592:4;20587:3;20583:14;20576:38;20635:71;20701:4;20687:12;20635:71;:::i;:::-;20627:79;;20484:233;20734:4;20727:11;;20262:482;20126:618;;;;:::o;20750:397::-;20905:4;20943:2;20932:9;20928:18;20920:26;;20992:9;20986:4;20982:20;20978:1;20967:9;20963:17;20956:47;21020:120;21135:4;21126:6;21020:120;:::i;:::-;21012:128;;20750:397;;;;:::o;21153:419::-;21292:4;21330:2;21319:9;21315:18;21307:26;;21343:71;21411:1;21400:9;21396:17;21387:6;21343:71;:::i;:::-;21461:9;21455:4;21451:20;21446:2;21435:9;21431:18;21424:48;21489:76;21560:4;21551:6;21489:76;:::i;:::-;21481:84;;21153:419;;;;;:::o;21578:185::-;21618:1;21635:20;21653:1;21635:20;:::i;:::-;21630:25;;21669:20;21687:1;21669:20;:::i;:::-;21664:25;;21708:1;21698:35;;21713:18;;:::i;:::-;21698:35;21755:1;21752;21748:9;21743:14;;21578:185;;;;:::o;21769:194::-;21809:4;21829:20;21847:1;21829:20;:::i;:::-;21824:25;;21863:20;21881:1;21863:20;:::i;:::-;21858:25;;21907:1;21904;21900:9;21892:17;;21931:1;21925:4;21922:11;21919:37;;;21936:18;;:::i;:::-;21919:37;21769:194;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","drawRaffle()":"2275aea9","entries(uint256)":"b30906d4","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entry\",\"type\":\"address\"}],\"name\":\"Entry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"drawRaffle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"entries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum ERC20Incentive.Strategy\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"drawRaffle()\":{\"details\":\"Only valid when the strategy is set to `Strategy.RAFFLE`\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The {InitPayload} for the incentive\"},\"returns\":{\"budgetData\":\"The {Transfer} payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC20 Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"},\"Entry(address)\":{\"notice\":\"Emitted when an entry is added to the raffle\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC20-like token\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new ERC20Incentive\"},\"drawRaffle()\":{\"notice\":\"Draw a winner from the raffle\"},\"entries(uint256)\":{\"notice\":\"The set of addresses that have claimed a slot in the incentive raffle\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The limit (max claims, or max entries for raffles)\"},\"preflight(bytes)\":{\"notice\":\"Preflight the incentive to determine the required budget action\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple ERC20 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/ERC20Incentive.sol\":\"ERC20Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibPRNG.sol\":{\"keccak256\":\"0xdcb71f8dc72bb7384776154ca24d34c23e3c9bcf124bc75f0d2e379f9ebd021d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64e23b9ccfd1a5842268d36fe2798a13b063fe7821d0e952ea4758df5cc386f\",\"dweb:/ipfs/QmVTtkbUuEMi4gryE6NW2BGg5WGwRt1LX4KXNfH87BBZQk\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/ERC20Incentive.sol\":{\"keccak256\":\"0x87648999e2f823567683bfd1857c7498f5eedb461bcd783ca99faef2a3a8c1bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f32508ad32eb54bfccd04a30dee729b50d14f8041f5deac9d903931f09613831\",\"dweb:/ipfs/QmPpoyHzQAVX5FTXj99Qdx1N9Sstj1ZN4AgH5VZtpKKVgk\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/Incentive.sol":{"Incentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Initialize the contract and set the owner\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Incentive within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/Incentive.sol\":\"Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/incentives/PointsIncentive.sol":{"PointsIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"quantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"venue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17204":{"entryPoint":null,"id":17204,"parameterSlots":0,"returnSlots":0},"@_17301":{"entryPoint":null,"id":17301,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6115d4806101b45f395ff3fe608060405260043610610113575f3560e01c8063a4d66daf1161009f578063ea3d508a11610063578063ea3d508a1461035b578063f04e283e14610385578063f1c30ec0146103a1578063f2fde38b146103dd578063fee81cf4146103f957610113565b8063a4d66daf14610253578063c63ff8dd1461027d578063c884ef83146102b9578063dcc59b6f146102f5578063e18e65081461031f57610113565b80634e7165a2116100e65780634e7165a2146101af57806354d1f13d146101eb578063715018a6146101f55780638da5cb5b146101ff578063a270a7371461022957610113565b806301ffc9a71461011757806317fc45e214610153578063256929621461017d578063439fab9114610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610ec8565b610435565b60405161014a9190610f0d565b60405180910390f35b34801561015e575f80fd5b506101676104ae565b6040516101749190610f3e565b60405180910390f35b6101856104b4565b005b348015610192575f80fd5b506101ad60048036038101906101a89190610fb8565b610505565b005b3480156101ba575f80fd5b506101d560048036038101906101d09190610fb8565b61065d565b6040516101e29190611073565b60405180910390f35b6101f36106b4565b005b6101fd6106ed565b005b34801561020a575f80fd5b50610213610700565b60405161022091906110d2565b60405180910390f35b348015610234575f80fd5b5061023d610728565b60405161024a91906110d2565b60405180910390f35b34801561025e575f80fd5b5061026761074d565b6040516102749190610f3e565b60405180910390f35b348015610288575f80fd5b506102a3600480360381019061029e9190610fb8565b610753565b6040516102b09190610f0d565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190611115565b610a06565b6040516102ec9190610f0d565b60405180910390f35b348015610300575f80fd5b50610309610a23565b6040516103169190610f3e565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190610fb8565b610a28565b6040516103529190610f0d565b60405180910390f35b348015610366575f80fd5b5061036f610a50565b60405161037c919061114f565b60405180910390f35b61039f600480360381019061039a9190611115565b610a62565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190610fb8565b610aa0565b6040516103d49190610f0d565b60405180910390f35b6103f760048036038101906103f29190611115565b610ad3565b005b348015610404575f80fd5b5061041f600480360381019061041a9190611115565b610afc565b60405161042c9190610f3e565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104a757506104a682610b15565b5b9050919050565b60035481565b5f6104bd610b8e565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61050e610b98565b905080546003825580156105405760018160011c14303b106105375763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105519190611287565b90505f8160400151148061056857505f8160600151145b1561059f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015160055f6101000a81548163ffffffff021916908360e01c02179055508060400151600381905550806060015160048190555061062233610bc1565b508015610658576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156106795761067861116c565b5b6040519080825280601f01601f1916602001820160405280156106ab5781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6106f5610c97565b6106fe5f610cce565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b5f61075c610c97565b5f838381019061076c91906113cb565b905061077a815f0151610d94565b6107b0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906107c19061143f565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900460e01b835f015160035460405160240161087d929190611486565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108e791906114e7565b5f604051808303815f865af19150503d805f8114610920576040519150601f19603f3d011682016040523d82523d5f602084013e610925565b606091505b5050905080610960576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01516003546040516020016109d693929190611562565b6040516020818303038152906040526040516109f29190611073565b60405180910390a260019250505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610a3991906113cb565b9050610a47815f0151610d94565b91505092915050565b60055f9054906101000a900460e01b81565b610a6a610c97565b63389a75e1600c52805f526020600c208054421115610a9057636f5e88185f526004601cfd5b5f815550610a9d81610cce565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610adb610c97565b8060601b610af057637448fbae5f526004601cfd5b610af981610cce565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b875750610b8682610df5565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bc9610e5e565b15610c41577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c94565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ccc576382b429005f526004601cfd5b565b610cd6610e5e565b15610d3b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d91565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610dee57506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ea781610e73565b8114610eb1575f80fd5b50565b5f81359050610ec281610e9e565b92915050565b5f60208284031215610edd57610edc610e6b565b5b5f610eea84828501610eb4565b91505092915050565b5f8115159050919050565b610f0781610ef3565b82525050565b5f602082019050610f205f830184610efe565b92915050565b5f819050919050565b610f3881610f26565b82525050565b5f602082019050610f515f830184610f2f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f7857610f77610f57565b5b8235905067ffffffffffffffff811115610f9557610f94610f5b565b5b602083019150836001820283011115610fb157610fb0610f5f565b5b9250929050565b5f8060208385031215610fce57610fcd610e6b565b5b5f83013567ffffffffffffffff811115610feb57610fea610e6f565b5b610ff785828601610f63565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61104582611003565b61104f818561100d565b935061105f81856020860161101d565b6110688161102b565b840191505092915050565b5f6020820190508181035f83015261108b818461103b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110bc82611093565b9050919050565b6110cc816110b2565b82525050565b5f6020820190506110e55f8301846110c3565b92915050565b6110f4816110b2565b81146110fe575f80fd5b50565b5f8135905061110f816110eb565b92915050565b5f6020828403121561112a57611129610e6b565b5b5f61113784828501611101565b91505092915050565b61114981610e73565b82525050565b5f6020820190506111625f830184611140565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111a28261102b565b810181811067ffffffffffffffff821117156111c1576111c061116c565b5b80604052505050565b5f6111d3610e62565b90506111df8282611199565b919050565b5f80fd5b6111f181610f26565b81146111fb575f80fd5b50565b5f8135905061120c816111e8565b92915050565b5f6080828403121561122757611226611168565b5b61123160806111ca565b90505f61124084828501611101565b5f83015250602061125384828501610eb4565b6020830152506040611267848285016111fe565b604083015250606061127b848285016111fe565b60608301525092915050565b5f6080828403121561129c5761129b610e6b565b5b5f6112a984828501611212565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112d0576112cf61116c565b5b6112d98261102b565b9050602081019050919050565b828183375f83830152505050565b5f611306611301846112b6565b6111ca565b905082815260208101848484011115611322576113216112b2565b5b61132d8482856112e6565b509392505050565b5f82601f83011261134957611348610f57565b5b81356113598482602086016112f4565b91505092915050565b5f6040828403121561137757611376611168565b5b61138160406111ca565b90505f61139084828501611101565b5f83015250602082013567ffffffffffffffff8111156113b3576113b26111e4565b5b6113bf84828501611335565b60208301525092915050565b5f602082840312156113e0576113df610e6b565b5b5f82013567ffffffffffffffff8111156113fd576113fc610e6f565b5b61140984828501611362565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61144982610f26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361147b5761147a611412565b5b600182019050919050565b5f6040820190506114995f8301856110c3565b6114a66020830184610f2f565b9392505050565b5f81905092915050565b5f6114c182611003565b6114cb81856114ad565b93506114db81856020860161101d565b80840191505092915050565b5f6114f282846114b7565b915081905092915050565b5f8160601b9050919050565b5f611513826114fd565b9050919050565b5f61152482611509565b9050919050565b61153c611537826110b2565b61151a565b82525050565b5f819050919050565b61155c61155782610f26565b611542565b82525050565b5f61156d828661152b565b60148201915061157d828561152b565b60148201915061158d828461154b565b60208201915081905094935050505056fea264697066735822122044670bf79133237915832c922e2e0a39e868512253a569f3922fb3609fd6e1a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x15D4 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA3D508A GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3F9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2B9 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2F5 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x31F JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xA270A737 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x17FC45E2 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xEC8 JUMP JUMPDEST PUSH2 0x435 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x4B4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x505 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F3 PUSH2 0x6B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x6ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x728 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x267 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA06 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EC SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x309 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x316 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x345 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x36F PUSH2 0xA50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x114F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA62 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4A7 JUMPI POP PUSH2 0x4A6 DUP3 PUSH2 0xB15 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0xB8E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x50E PUSH2 0xB98 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x540 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x537 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x1287 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x568 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x5 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x622 CALLER PUSH2 0xBC1 JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x679 JUMPI PUSH2 0x678 PUSH2 0x116C 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 0x6AB 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x6F5 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0x6FE PUSH0 PUSH2 0xCCE JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x75C PUSH2 0xC97 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x76C SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0x77A DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x7C1 SWAP1 PUSH2 0x143F JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x87D SWAP3 SWAP2 SWAP1 PUSH2 0x1486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x14E7 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x920 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x925 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH32 0x360E42E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x9F2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA39 SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xA6A PUSH2 0xC97 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xA90 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xA9D DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xADB PUSH2 0xC97 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xAF0 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xAF9 DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB87 JUMPI POP PUSH2 0xB86 DUP3 PUSH2 0xDF5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBC9 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xC41 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xC03 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC94 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xCCC JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xCD6 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xD3B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xD91 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0xDEE JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA7 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xEB1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEC2 DUP2 PUSH2 0xE9E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEDD JUMPI PUSH2 0xEDC PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEEA DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF07 DUP2 PUSH2 0xEF3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF20 PUSH0 DUP4 ADD DUP5 PUSH2 0xEFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF38 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF51 PUSH0 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF78 JUMPI PUSH2 0xF77 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF95 JUMPI PUSH2 0xF94 PUSH2 0xF5B JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFB1 JUMPI PUSH2 0xFB0 PUSH2 0xF5F JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCE JUMPI PUSH2 0xFCD PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFEB JUMPI PUSH2 0xFEA PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0xFF7 DUP6 DUP3 DUP7 ADD PUSH2 0xF63 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1045 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x104F DUP2 DUP6 PUSH2 0x100D JUMP JUMPDEST SWAP4 POP PUSH2 0x105F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST PUSH2 0x1068 DUP2 PUSH2 0x102B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x108B DUP2 DUP5 PUSH2 0x103B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BC DUP3 PUSH2 0x1093 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10CC DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10E5 PUSH0 DUP4 ADD DUP5 PUSH2 0x10C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10F4 DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x10FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x110F DUP2 PUSH2 0x10EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x112A JUMPI PUSH2 0x1129 PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1137 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1149 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1162 PUSH0 DUP4 ADD DUP5 PUSH2 0x1140 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11A2 DUP3 PUSH2 0x102B JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11C1 JUMPI PUSH2 0x11C0 PUSH2 0x116C JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11D3 PUSH2 0xE62 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DF DUP3 DUP3 PUSH2 0x1199 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11F1 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP2 EQ PUSH2 0x11FB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x120C DUP2 PUSH2 0x11E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1227 JUMPI PUSH2 0x1226 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1231 PUSH1 0x80 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1240 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1253 DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1267 DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x127B DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x129C JUMPI PUSH2 0x129B PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12CF PUSH2 0x116C JUMP JUMPDEST JUMPDEST PUSH2 0x12D9 DUP3 PUSH2 0x102B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1306 PUSH2 0x1301 DUP5 PUSH2 0x12B6 JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1322 JUMPI PUSH2 0x1321 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST PUSH2 0x132D DUP5 DUP3 DUP6 PUSH2 0x12E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1359 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1377 JUMPI PUSH2 0x1376 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1381 PUSH1 0x40 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1390 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13B3 JUMPI PUSH2 0x13B2 PUSH2 0x11E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13BF DUP5 DUP3 DUP6 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13DF PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13FD JUMPI PUSH2 0x13FC PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0x1409 DUP5 DUP3 DUP6 ADD PUSH2 0x1362 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1449 DUP3 PUSH2 0xF26 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x147B JUMPI PUSH2 0x147A PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1499 PUSH0 DUP4 ADD DUP6 PUSH2 0x10C3 JUMP JUMPDEST PUSH2 0x14A6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14C1 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x14CB DUP2 DUP6 PUSH2 0x14AD JUMP JUMPDEST SWAP4 POP PUSH2 0x14DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14F2 DUP3 DUP5 PUSH2 0x14B7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1513 DUP3 PUSH2 0x14FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1524 DUP3 PUSH2 0x1509 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153C PUSH2 0x1537 DUP3 PUSH2 0x10B2 JUMP JUMPDEST PUSH2 0x151A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x155C PUSH2 0x1557 DUP3 PUSH2 0xF26 JUMP JUMPDEST PUSH2 0x1542 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x156D DUP3 DUP7 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x157D DUP3 DUP6 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x158D DUP3 DUP5 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO PUSH8 0xBF7913323791583 0x2C SWAP3 0x2E 0x2E EXP CODECOPY 0xE8 PUSH9 0x512253A569F3922FB3 PUSH1 0x9F 0xD6 0xE1 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"636:3613:45:-:0;;;1493:53;;;;;;;;;;1563:28:44;1580:10;1563:16;;;:28;;:::i;:::-;1517:22:45;:20;;;:22;;:::i;:::-;636:3613;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;636:3613:45:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":3223,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3678,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2968,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":3009,"id":6302,"parameterSlots":1,"returnSlots":0},"@_isClaimable_17508":{"entryPoint":3476,"id":17508,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6333":{"entryPoint":2958,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":3278,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1716,"id":6382,"parameterSlots":0,"returnSlots":0},"@claim_17435":{"entryPoint":1875,"id":17435,"parameterSlots":2,"returnSlots":1},"@claimed_17194":{"entryPoint":2566,"id":17194,"parameterSlots":0,"returnSlots":0},"@claims_17189":{"entryPoint":2595,"id":17189,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":2658,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_17361":{"entryPoint":1285,"id":17361,"parameterSlots":2,"returnSlots":0},"@isClaimable_17490":{"entryPoint":2600,"id":17490,"parameterSlots":2,"returnSlots":1},"@limit_17290":{"entryPoint":1869,"id":17290,"parameterSlots":0,"returnSlots":0},"@owner_6404":{"entryPoint":1792,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":2812,"id":6414,"parameterSlots":1,"returnSlots":1},"@preflight_17465":{"entryPoint":1629,"id":17465,"parameterSlots":2,"returnSlots":1},"@quantity_17287":{"entryPoint":1198,"id":17287,"parameterSlots":0,"returnSlots":0},"@reclaim_17450":{"entryPoint":2720,"id":17450,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1773,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":1204,"id":6376,"parameterSlots":0,"returnSlots":0},"@selector_17293":{"entryPoint":2640,"id":17293,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17259":{"entryPoint":1077,"id":17259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17719":{"entryPoint":2837,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":3573,"id":2844,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":2771,"id":6347,"parameterSlots":1,"returnSlots":0},"@venue_17284":{"entryPoint":1832,"id":17284,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4852,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4353,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3764,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3939,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4917,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":4962,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$17281_memory_ptr":{"entryPoint":4626,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4606,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4373,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3784,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4024,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr":{"entryPoint":5067,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$17281_memory_ptr":{"entryPoint":4743,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4291,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":5419,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3838,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4416,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5303,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3887,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":5451,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":5474,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5351,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4306,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":5254,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3853,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4431,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4211,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3902,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4554,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3682,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4790,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4099,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4109,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5293,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4274,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3827,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3699,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4243,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3878,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4838,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4125,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4505,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":5183,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":5402,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":5385,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":5442,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5138,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4460,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3931,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3927,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4456,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":4580,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3935,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4786,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3695,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3691,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4139,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":5373,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":4331,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3742,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4584,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14241:53","nodeType":"YulBlock","src":"0:14241:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1563:32:53","nodeType":"YulBlock","src":"1563:32:53","statements":[{"nativeSrc":"1573:16:53","nodeType":"YulAssignment","src":"1573:16:53","value":{"name":"value","nativeSrc":"1584:5:53","nodeType":"YulIdentifier","src":"1584:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:53","nodeType":"YulIdentifier","src":"1573:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:53","nodeType":"YulTypedName","src":"1545:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:53","nodeType":"YulTypedName","src":"1555:7:53","type":""}],"src":"1518:77:53"},{"body":{"nativeSrc":"1666:53:53","nodeType":"YulBlock","src":"1666:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:53","nodeType":"YulIdentifier","src":"1683:3:53"},{"arguments":[{"name":"value","nativeSrc":"1706:5:53","nodeType":"YulIdentifier","src":"1706:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:53","nodeType":"YulIdentifier","src":"1688:17:53"},"nativeSrc":"1688:24:53","nodeType":"YulFunctionCall","src":"1688:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:53","nodeType":"YulIdentifier","src":"1676:6:53"},"nativeSrc":"1676:37:53","nodeType":"YulFunctionCall","src":"1676:37:53"},"nativeSrc":"1676:37:53","nodeType":"YulExpressionStatement","src":"1676:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:53","nodeType":"YulTypedName","src":"1654:5:53","type":""},{"name":"pos","nativeSrc":"1661:3:53","nodeType":"YulTypedName","src":"1661:3:53","type":""}],"src":"1601:118:53"},{"body":{"nativeSrc":"1823:124:53","nodeType":"YulBlock","src":"1823:124:53","statements":[{"nativeSrc":"1833:26:53","nodeType":"YulAssignment","src":"1833:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:53","nodeType":"YulIdentifier","src":"1845:9:53"},{"kind":"number","nativeSrc":"1856:2:53","nodeType":"YulLiteral","src":"1856:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:53","nodeType":"YulIdentifier","src":"1841:3:53"},"nativeSrc":"1841:18:53","nodeType":"YulFunctionCall","src":"1841:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:53","nodeType":"YulIdentifier","src":"1833:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:53","nodeType":"YulIdentifier","src":"1913:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:53","nodeType":"YulIdentifier","src":"1926:9:53"},{"kind":"number","nativeSrc":"1937:1:53","nodeType":"YulLiteral","src":"1937:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"},"nativeSrc":"1922:17:53","nodeType":"YulFunctionCall","src":"1922:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:53","nodeType":"YulIdentifier","src":"1869:43:53"},"nativeSrc":"1869:71:53","nodeType":"YulFunctionCall","src":"1869:71:53"},"nativeSrc":"1869:71:53","nodeType":"YulExpressionStatement","src":"1869:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:53","nodeType":"YulTypedName","src":"1795:9:53","type":""},{"name":"value0","nativeSrc":"1807:6:53","nodeType":"YulTypedName","src":"1807:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:53","nodeType":"YulTypedName","src":"1818:4:53","type":""}],"src":"1725:222:53"},{"body":{"nativeSrc":"2042:28:53","nodeType":"YulBlock","src":"2042:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2059:1:53","nodeType":"YulLiteral","src":"2059:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2062:1:53","nodeType":"YulLiteral","src":"2062:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2052:6:53","nodeType":"YulIdentifier","src":"2052:6:53"},"nativeSrc":"2052:12:53","nodeType":"YulFunctionCall","src":"2052:12:53"},"nativeSrc":"2052:12:53","nodeType":"YulExpressionStatement","src":"2052:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1953:117:53","nodeType":"YulFunctionDefinition","src":"1953:117:53"},{"body":{"nativeSrc":"2165:28:53","nodeType":"YulBlock","src":"2165:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2182:1:53","nodeType":"YulLiteral","src":"2182:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2185:1:53","nodeType":"YulLiteral","src":"2185:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2175:6:53","nodeType":"YulIdentifier","src":"2175:6:53"},"nativeSrc":"2175:12:53","nodeType":"YulFunctionCall","src":"2175:12:53"},"nativeSrc":"2175:12:53","nodeType":"YulExpressionStatement","src":"2175:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2076:117:53","nodeType":"YulFunctionDefinition","src":"2076:117:53"},{"body":{"nativeSrc":"2288:28:53","nodeType":"YulBlock","src":"2288:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2305:1:53","nodeType":"YulLiteral","src":"2305:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2308:1:53","nodeType":"YulLiteral","src":"2308:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2298:6:53","nodeType":"YulIdentifier","src":"2298:6:53"},"nativeSrc":"2298:12:53","nodeType":"YulFunctionCall","src":"2298:12:53"},"nativeSrc":"2298:12:53","nodeType":"YulExpressionStatement","src":"2298:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2199:117:53","nodeType":"YulFunctionDefinition","src":"2199:117:53"},{"body":{"nativeSrc":"2409:478:53","nodeType":"YulBlock","src":"2409:478:53","statements":[{"body":{"nativeSrc":"2458:83:53","nodeType":"YulBlock","src":"2458:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2460:77:53","nodeType":"YulIdentifier","src":"2460:77:53"},"nativeSrc":"2460:79:53","nodeType":"YulFunctionCall","src":"2460:79:53"},"nativeSrc":"2460:79:53","nodeType":"YulExpressionStatement","src":"2460:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2437:6:53","nodeType":"YulIdentifier","src":"2437:6:53"},{"kind":"number","nativeSrc":"2445:4:53","nodeType":"YulLiteral","src":"2445:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2433:3:53","nodeType":"YulIdentifier","src":"2433:3:53"},"nativeSrc":"2433:17:53","nodeType":"YulFunctionCall","src":"2433:17:53"},{"name":"end","nativeSrc":"2452:3:53","nodeType":"YulIdentifier","src":"2452:3:53"}],"functionName":{"name":"slt","nativeSrc":"2429:3:53","nodeType":"YulIdentifier","src":"2429:3:53"},"nativeSrc":"2429:27:53","nodeType":"YulFunctionCall","src":"2429:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2422:6:53","nodeType":"YulIdentifier","src":"2422:6:53"},"nativeSrc":"2422:35:53","nodeType":"YulFunctionCall","src":"2422:35:53"},"nativeSrc":"2419:122:53","nodeType":"YulIf","src":"2419:122:53"},{"nativeSrc":"2550:30:53","nodeType":"YulAssignment","src":"2550:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2573:6:53","nodeType":"YulIdentifier","src":"2573:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2560:12:53","nodeType":"YulIdentifier","src":"2560:12:53"},"nativeSrc":"2560:20:53","nodeType":"YulFunctionCall","src":"2560:20:53"},"variableNames":[{"name":"length","nativeSrc":"2550:6:53","nodeType":"YulIdentifier","src":"2550:6:53"}]},{"body":{"nativeSrc":"2623:83:53","nodeType":"YulBlock","src":"2623:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2625:77:53","nodeType":"YulIdentifier","src":"2625:77:53"},"nativeSrc":"2625:79:53","nodeType":"YulFunctionCall","src":"2625:79:53"},"nativeSrc":"2625:79:53","nodeType":"YulExpressionStatement","src":"2625:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2595:6:53","nodeType":"YulIdentifier","src":"2595:6:53"},{"kind":"number","nativeSrc":"2603:18:53","nodeType":"YulLiteral","src":"2603:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2592:2:53","nodeType":"YulIdentifier","src":"2592:2:53"},"nativeSrc":"2592:30:53","nodeType":"YulFunctionCall","src":"2592:30:53"},"nativeSrc":"2589:117:53","nodeType":"YulIf","src":"2589:117:53"},{"nativeSrc":"2715:29:53","nodeType":"YulAssignment","src":"2715:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2731:6:53","nodeType":"YulIdentifier","src":"2731:6:53"},{"kind":"number","nativeSrc":"2739:4:53","nodeType":"YulLiteral","src":"2739:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2727:3:53","nodeType":"YulIdentifier","src":"2727:3:53"},"nativeSrc":"2727:17:53","nodeType":"YulFunctionCall","src":"2727:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2715:8:53","nodeType":"YulIdentifier","src":"2715:8:53"}]},{"body":{"nativeSrc":"2798:83:53","nodeType":"YulBlock","src":"2798:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2800:77:53","nodeType":"YulIdentifier","src":"2800:77:53"},"nativeSrc":"2800:79:53","nodeType":"YulFunctionCall","src":"2800:79:53"},"nativeSrc":"2800:79:53","nodeType":"YulExpressionStatement","src":"2800:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2763:8:53","nodeType":"YulIdentifier","src":"2763:8:53"},{"arguments":[{"name":"length","nativeSrc":"2777:6:53","nodeType":"YulIdentifier","src":"2777:6:53"},{"kind":"number","nativeSrc":"2785:4:53","nodeType":"YulLiteral","src":"2785:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2773:3:53","nodeType":"YulIdentifier","src":"2773:3:53"},"nativeSrc":"2773:17:53","nodeType":"YulFunctionCall","src":"2773:17:53"}],"functionName":{"name":"add","nativeSrc":"2759:3:53","nodeType":"YulIdentifier","src":"2759:3:53"},"nativeSrc":"2759:32:53","nodeType":"YulFunctionCall","src":"2759:32:53"},{"name":"end","nativeSrc":"2793:3:53","nodeType":"YulIdentifier","src":"2793:3:53"}],"functionName":{"name":"gt","nativeSrc":"2756:2:53","nodeType":"YulIdentifier","src":"2756:2:53"},"nativeSrc":"2756:41:53","nodeType":"YulFunctionCall","src":"2756:41:53"},"nativeSrc":"2753:128:53","nodeType":"YulIf","src":"2753:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2335:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2376:6:53","nodeType":"YulTypedName","src":"2376:6:53","type":""},{"name":"end","nativeSrc":"2384:3:53","nodeType":"YulTypedName","src":"2384:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2392:8:53","nodeType":"YulTypedName","src":"2392:8:53","type":""},{"name":"length","nativeSrc":"2402:6:53","nodeType":"YulTypedName","src":"2402:6:53","type":""}],"src":"2335:552:53"},{"body":{"nativeSrc":"2978:442:53","nodeType":"YulBlock","src":"2978:442:53","statements":[{"body":{"nativeSrc":"3024:83:53","nodeType":"YulBlock","src":"3024:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3026:77:53","nodeType":"YulIdentifier","src":"3026:77:53"},"nativeSrc":"3026:79:53","nodeType":"YulFunctionCall","src":"3026:79:53"},"nativeSrc":"3026:79:53","nodeType":"YulExpressionStatement","src":"3026:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2999:7:53","nodeType":"YulIdentifier","src":"2999:7:53"},{"name":"headStart","nativeSrc":"3008:9:53","nodeType":"YulIdentifier","src":"3008:9:53"}],"functionName":{"name":"sub","nativeSrc":"2995:3:53","nodeType":"YulIdentifier","src":"2995:3:53"},"nativeSrc":"2995:23:53","nodeType":"YulFunctionCall","src":"2995:23:53"},{"kind":"number","nativeSrc":"3020:2:53","nodeType":"YulLiteral","src":"3020:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2991:3:53","nodeType":"YulIdentifier","src":"2991:3:53"},"nativeSrc":"2991:32:53","nodeType":"YulFunctionCall","src":"2991:32:53"},"nativeSrc":"2988:119:53","nodeType":"YulIf","src":"2988:119:53"},{"nativeSrc":"3117:296:53","nodeType":"YulBlock","src":"3117:296:53","statements":[{"nativeSrc":"3132:45:53","nodeType":"YulVariableDeclaration","src":"3132:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3163:9:53","nodeType":"YulIdentifier","src":"3163:9:53"},{"kind":"number","nativeSrc":"3174:1:53","nodeType":"YulLiteral","src":"3174:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3159:3:53","nodeType":"YulIdentifier","src":"3159:3:53"},"nativeSrc":"3159:17:53","nodeType":"YulFunctionCall","src":"3159:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:53","nodeType":"YulIdentifier","src":"3146:12:53"},"nativeSrc":"3146:31:53","nodeType":"YulFunctionCall","src":"3146:31:53"},"variables":[{"name":"offset","nativeSrc":"3136:6:53","nodeType":"YulTypedName","src":"3136:6:53","type":""}]},{"body":{"nativeSrc":"3224:83:53","nodeType":"YulBlock","src":"3224:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3226:77:53","nodeType":"YulIdentifier","src":"3226:77:53"},"nativeSrc":"3226:79:53","nodeType":"YulFunctionCall","src":"3226:79:53"},"nativeSrc":"3226:79:53","nodeType":"YulExpressionStatement","src":"3226:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3196:6:53","nodeType":"YulIdentifier","src":"3196:6:53"},{"kind":"number","nativeSrc":"3204:18:53","nodeType":"YulLiteral","src":"3204:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3193:2:53","nodeType":"YulIdentifier","src":"3193:2:53"},"nativeSrc":"3193:30:53","nodeType":"YulFunctionCall","src":"3193:30:53"},"nativeSrc":"3190:117:53","nodeType":"YulIf","src":"3190:117:53"},{"nativeSrc":"3321:82:53","nodeType":"YulAssignment","src":"3321:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3375:9:53","nodeType":"YulIdentifier","src":"3375:9:53"},{"name":"offset","nativeSrc":"3386:6:53","nodeType":"YulIdentifier","src":"3386:6:53"}],"functionName":{"name":"add","nativeSrc":"3371:3:53","nodeType":"YulIdentifier","src":"3371:3:53"},"nativeSrc":"3371:22:53","nodeType":"YulFunctionCall","src":"3371:22:53"},{"name":"dataEnd","nativeSrc":"3395:7:53","nodeType":"YulIdentifier","src":"3395:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3339:31:53","nodeType":"YulIdentifier","src":"3339:31:53"},"nativeSrc":"3339:64:53","nodeType":"YulFunctionCall","src":"3339:64:53"},"variableNames":[{"name":"value0","nativeSrc":"3321:6:53","nodeType":"YulIdentifier","src":"3321:6:53"},{"name":"value1","nativeSrc":"3329:6:53","nodeType":"YulIdentifier","src":"3329:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2893:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulTypedName","src":"2940:9:53","type":""},{"name":"dataEnd","nativeSrc":"2951:7:53","nodeType":"YulTypedName","src":"2951:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2963:6:53","nodeType":"YulTypedName","src":"2963:6:53","type":""},{"name":"value1","nativeSrc":"2971:6:53","nodeType":"YulTypedName","src":"2971:6:53","type":""}],"src":"2893:527:53"},{"body":{"nativeSrc":"3484:40:53","nodeType":"YulBlock","src":"3484:40:53","statements":[{"nativeSrc":"3495:22:53","nodeType":"YulAssignment","src":"3495:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3511:5:53","nodeType":"YulIdentifier","src":"3511:5:53"}],"functionName":{"name":"mload","nativeSrc":"3505:5:53","nodeType":"YulIdentifier","src":"3505:5:53"},"nativeSrc":"3505:12:53","nodeType":"YulFunctionCall","src":"3505:12:53"},"variableNames":[{"name":"length","nativeSrc":"3495:6:53","nodeType":"YulIdentifier","src":"3495:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3426:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3467:5:53","nodeType":"YulTypedName","src":"3467:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3477:6:53","nodeType":"YulTypedName","src":"3477:6:53","type":""}],"src":"3426:98:53"},{"body":{"nativeSrc":"3625:73:53","nodeType":"YulBlock","src":"3625:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3642:3:53","nodeType":"YulIdentifier","src":"3642:3:53"},{"name":"length","nativeSrc":"3647:6:53","nodeType":"YulIdentifier","src":"3647:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3635:6:53","nodeType":"YulIdentifier","src":"3635:6:53"},"nativeSrc":"3635:19:53","nodeType":"YulFunctionCall","src":"3635:19:53"},"nativeSrc":"3635:19:53","nodeType":"YulExpressionStatement","src":"3635:19:53"},{"nativeSrc":"3663:29:53","nodeType":"YulAssignment","src":"3663:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3682:3:53","nodeType":"YulIdentifier","src":"3682:3:53"},{"kind":"number","nativeSrc":"3687:4:53","nodeType":"YulLiteral","src":"3687:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3678:3:53","nodeType":"YulIdentifier","src":"3678:3:53"},"nativeSrc":"3678:14:53","nodeType":"YulFunctionCall","src":"3678:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3663:11:53","nodeType":"YulIdentifier","src":"3663:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3530:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3597:3:53","nodeType":"YulTypedName","src":"3597:3:53","type":""},{"name":"length","nativeSrc":"3602:6:53","nodeType":"YulTypedName","src":"3602:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3613:11:53","nodeType":"YulTypedName","src":"3613:11:53","type":""}],"src":"3530:168:53"},{"body":{"nativeSrc":"3766:77:53","nodeType":"YulBlock","src":"3766:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3783:3:53","nodeType":"YulIdentifier","src":"3783:3:53"},{"name":"src","nativeSrc":"3788:3:53","nodeType":"YulIdentifier","src":"3788:3:53"},{"name":"length","nativeSrc":"3793:6:53","nodeType":"YulIdentifier","src":"3793:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3777:5:53","nodeType":"YulIdentifier","src":"3777:5:53"},"nativeSrc":"3777:23:53","nodeType":"YulFunctionCall","src":"3777:23:53"},"nativeSrc":"3777:23:53","nodeType":"YulExpressionStatement","src":"3777:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3820:3:53","nodeType":"YulIdentifier","src":"3820:3:53"},{"name":"length","nativeSrc":"3825:6:53","nodeType":"YulIdentifier","src":"3825:6:53"}],"functionName":{"name":"add","nativeSrc":"3816:3:53","nodeType":"YulIdentifier","src":"3816:3:53"},"nativeSrc":"3816:16:53","nodeType":"YulFunctionCall","src":"3816:16:53"},{"kind":"number","nativeSrc":"3834:1:53","nodeType":"YulLiteral","src":"3834:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3809:6:53","nodeType":"YulIdentifier","src":"3809:6:53"},"nativeSrc":"3809:27:53","nodeType":"YulFunctionCall","src":"3809:27:53"},"nativeSrc":"3809:27:53","nodeType":"YulExpressionStatement","src":"3809:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3704:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3748:3:53","nodeType":"YulTypedName","src":"3748:3:53","type":""},{"name":"dst","nativeSrc":"3753:3:53","nodeType":"YulTypedName","src":"3753:3:53","type":""},{"name":"length","nativeSrc":"3758:6:53","nodeType":"YulTypedName","src":"3758:6:53","type":""}],"src":"3704:139:53"},{"body":{"nativeSrc":"3897:54:53","nodeType":"YulBlock","src":"3897:54:53","statements":[{"nativeSrc":"3907:38:53","nodeType":"YulAssignment","src":"3907:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3925:5:53","nodeType":"YulIdentifier","src":"3925:5:53"},{"kind":"number","nativeSrc":"3932:2:53","nodeType":"YulLiteral","src":"3932:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3921:3:53","nodeType":"YulIdentifier","src":"3921:3:53"},"nativeSrc":"3921:14:53","nodeType":"YulFunctionCall","src":"3921:14:53"},{"arguments":[{"kind":"number","nativeSrc":"3941:2:53","nodeType":"YulLiteral","src":"3941:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3937:3:53","nodeType":"YulIdentifier","src":"3937:3:53"},"nativeSrc":"3937:7:53","nodeType":"YulFunctionCall","src":"3937:7:53"}],"functionName":{"name":"and","nativeSrc":"3917:3:53","nodeType":"YulIdentifier","src":"3917:3:53"},"nativeSrc":"3917:28:53","nodeType":"YulFunctionCall","src":"3917:28:53"},"variableNames":[{"name":"result","nativeSrc":"3907:6:53","nodeType":"YulIdentifier","src":"3907:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3849:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3880:5:53","nodeType":"YulTypedName","src":"3880:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3890:6:53","nodeType":"YulTypedName","src":"3890:6:53","type":""}],"src":"3849:102:53"},{"body":{"nativeSrc":"4047:283:53","nodeType":"YulBlock","src":"4047:283:53","statements":[{"nativeSrc":"4057:52:53","nodeType":"YulVariableDeclaration","src":"4057:52:53","value":{"arguments":[{"name":"value","nativeSrc":"4103:5:53","nodeType":"YulIdentifier","src":"4103:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4071:31:53","nodeType":"YulIdentifier","src":"4071:31:53"},"nativeSrc":"4071:38:53","nodeType":"YulFunctionCall","src":"4071:38:53"},"variables":[{"name":"length","nativeSrc":"4061:6:53","nodeType":"YulTypedName","src":"4061:6:53","type":""}]},{"nativeSrc":"4118:77:53","nodeType":"YulAssignment","src":"4118:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"4183:3:53","nodeType":"YulIdentifier","src":"4183:3:53"},{"name":"length","nativeSrc":"4188:6:53","nodeType":"YulIdentifier","src":"4188:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4125:57:53","nodeType":"YulIdentifier","src":"4125:57:53"},"nativeSrc":"4125:70:53","nodeType":"YulFunctionCall","src":"4125:70:53"},"variableNames":[{"name":"pos","nativeSrc":"4118:3:53","nodeType":"YulIdentifier","src":"4118:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4243:5:53","nodeType":"YulIdentifier","src":"4243:5:53"},{"kind":"number","nativeSrc":"4250:4:53","nodeType":"YulLiteral","src":"4250:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4239:3:53","nodeType":"YulIdentifier","src":"4239:3:53"},"nativeSrc":"4239:16:53","nodeType":"YulFunctionCall","src":"4239:16:53"},{"name":"pos","nativeSrc":"4257:3:53","nodeType":"YulIdentifier","src":"4257:3:53"},{"name":"length","nativeSrc":"4262:6:53","nodeType":"YulIdentifier","src":"4262:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4204:34:53","nodeType":"YulIdentifier","src":"4204:34:53"},"nativeSrc":"4204:65:53","nodeType":"YulFunctionCall","src":"4204:65:53"},"nativeSrc":"4204:65:53","nodeType":"YulExpressionStatement","src":"4204:65:53"},{"nativeSrc":"4278:46:53","nodeType":"YulAssignment","src":"4278:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4289:3:53","nodeType":"YulIdentifier","src":"4289:3:53"},{"arguments":[{"name":"length","nativeSrc":"4316:6:53","nodeType":"YulIdentifier","src":"4316:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4294:21:53","nodeType":"YulIdentifier","src":"4294:21:53"},"nativeSrc":"4294:29:53","nodeType":"YulFunctionCall","src":"4294:29:53"}],"functionName":{"name":"add","nativeSrc":"4285:3:53","nodeType":"YulIdentifier","src":"4285:3:53"},"nativeSrc":"4285:39:53","nodeType":"YulFunctionCall","src":"4285:39:53"},"variableNames":[{"name":"end","nativeSrc":"4278:3:53","nodeType":"YulIdentifier","src":"4278:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3957:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4028:5:53","nodeType":"YulTypedName","src":"4028:5:53","type":""},{"name":"pos","nativeSrc":"4035:3:53","nodeType":"YulTypedName","src":"4035:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4043:3:53","nodeType":"YulTypedName","src":"4043:3:53","type":""}],"src":"3957:373:53"},{"body":{"nativeSrc":"4452:193:53","nodeType":"YulBlock","src":"4452:193:53","statements":[{"nativeSrc":"4462:26:53","nodeType":"YulAssignment","src":"4462:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4474:9:53","nodeType":"YulIdentifier","src":"4474:9:53"},{"kind":"number","nativeSrc":"4485:2:53","nodeType":"YulLiteral","src":"4485:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4470:3:53","nodeType":"YulIdentifier","src":"4470:3:53"},"nativeSrc":"4470:18:53","nodeType":"YulFunctionCall","src":"4470:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4462:4:53","nodeType":"YulIdentifier","src":"4462:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4509:9:53","nodeType":"YulIdentifier","src":"4509:9:53"},{"kind":"number","nativeSrc":"4520:1:53","nodeType":"YulLiteral","src":"4520:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4505:3:53","nodeType":"YulIdentifier","src":"4505:3:53"},"nativeSrc":"4505:17:53","nodeType":"YulFunctionCall","src":"4505:17:53"},{"arguments":[{"name":"tail","nativeSrc":"4528:4:53","nodeType":"YulIdentifier","src":"4528:4:53"},{"name":"headStart","nativeSrc":"4534:9:53","nodeType":"YulIdentifier","src":"4534:9:53"}],"functionName":{"name":"sub","nativeSrc":"4524:3:53","nodeType":"YulIdentifier","src":"4524:3:53"},"nativeSrc":"4524:20:53","nodeType":"YulFunctionCall","src":"4524:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4498:6:53","nodeType":"YulIdentifier","src":"4498:6:53"},"nativeSrc":"4498:47:53","nodeType":"YulFunctionCall","src":"4498:47:53"},"nativeSrc":"4498:47:53","nodeType":"YulExpressionStatement","src":"4498:47:53"},{"nativeSrc":"4554:84:53","nodeType":"YulAssignment","src":"4554:84:53","value":{"arguments":[{"name":"value0","nativeSrc":"4624:6:53","nodeType":"YulIdentifier","src":"4624:6:53"},{"name":"tail","nativeSrc":"4633:4:53","nodeType":"YulIdentifier","src":"4633:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4562:61:53","nodeType":"YulIdentifier","src":"4562:61:53"},"nativeSrc":"4562:76:53","nodeType":"YulFunctionCall","src":"4562:76:53"},"variableNames":[{"name":"tail","nativeSrc":"4554:4:53","nodeType":"YulIdentifier","src":"4554:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4336:309:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4424:9:53","nodeType":"YulTypedName","src":"4424:9:53","type":""},{"name":"value0","nativeSrc":"4436:6:53","nodeType":"YulTypedName","src":"4436:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4447:4:53","nodeType":"YulTypedName","src":"4447:4:53","type":""}],"src":"4336:309:53"},{"body":{"nativeSrc":"4696:81:53","nodeType":"YulBlock","src":"4696:81:53","statements":[{"nativeSrc":"4706:65:53","nodeType":"YulAssignment","src":"4706:65:53","value":{"arguments":[{"name":"value","nativeSrc":"4721:5:53","nodeType":"YulIdentifier","src":"4721:5:53"},{"kind":"number","nativeSrc":"4728:42:53","nodeType":"YulLiteral","src":"4728:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4717:3:53","nodeType":"YulIdentifier","src":"4717:3:53"},"nativeSrc":"4717:54:53","nodeType":"YulFunctionCall","src":"4717:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4706:7:53","nodeType":"YulIdentifier","src":"4706:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4651:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4678:5:53","nodeType":"YulTypedName","src":"4678:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4688:7:53","nodeType":"YulTypedName","src":"4688:7:53","type":""}],"src":"4651:126:53"},{"body":{"nativeSrc":"4828:51:53","nodeType":"YulBlock","src":"4828:51:53","statements":[{"nativeSrc":"4838:35:53","nodeType":"YulAssignment","src":"4838:35:53","value":{"arguments":[{"name":"value","nativeSrc":"4867:5:53","nodeType":"YulIdentifier","src":"4867:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4849:17:53","nodeType":"YulIdentifier","src":"4849:17:53"},"nativeSrc":"4849:24:53","nodeType":"YulFunctionCall","src":"4849:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4838:7:53","nodeType":"YulIdentifier","src":"4838:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"4783:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4810:5:53","nodeType":"YulTypedName","src":"4810:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4820:7:53","nodeType":"YulTypedName","src":"4820:7:53","type":""}],"src":"4783:96:53"},{"body":{"nativeSrc":"4950:53:53","nodeType":"YulBlock","src":"4950:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4967:3:53","nodeType":"YulIdentifier","src":"4967:3:53"},{"arguments":[{"name":"value","nativeSrc":"4990:5:53","nodeType":"YulIdentifier","src":"4990:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4972:17:53","nodeType":"YulIdentifier","src":"4972:17:53"},"nativeSrc":"4972:24:53","nodeType":"YulFunctionCall","src":"4972:24:53"}],"functionName":{"name":"mstore","nativeSrc":"4960:6:53","nodeType":"YulIdentifier","src":"4960:6:53"},"nativeSrc":"4960:37:53","nodeType":"YulFunctionCall","src":"4960:37:53"},"nativeSrc":"4960:37:53","nodeType":"YulExpressionStatement","src":"4960:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4885:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4938:5:53","nodeType":"YulTypedName","src":"4938:5:53","type":""},{"name":"pos","nativeSrc":"4945:3:53","nodeType":"YulTypedName","src":"4945:3:53","type":""}],"src":"4885:118:53"},{"body":{"nativeSrc":"5107:124:53","nodeType":"YulBlock","src":"5107:124:53","statements":[{"nativeSrc":"5117:26:53","nodeType":"YulAssignment","src":"5117:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5129:9:53","nodeType":"YulIdentifier","src":"5129:9:53"},{"kind":"number","nativeSrc":"5140:2:53","nodeType":"YulLiteral","src":"5140:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5125:3:53","nodeType":"YulIdentifier","src":"5125:3:53"},"nativeSrc":"5125:18:53","nodeType":"YulFunctionCall","src":"5125:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5117:4:53","nodeType":"YulIdentifier","src":"5117:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5197:6:53","nodeType":"YulIdentifier","src":"5197:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5210:9:53","nodeType":"YulIdentifier","src":"5210:9:53"},{"kind":"number","nativeSrc":"5221:1:53","nodeType":"YulLiteral","src":"5221:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5206:3:53","nodeType":"YulIdentifier","src":"5206:3:53"},"nativeSrc":"5206:17:53","nodeType":"YulFunctionCall","src":"5206:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5153:43:53","nodeType":"YulIdentifier","src":"5153:43:53"},"nativeSrc":"5153:71:53","nodeType":"YulFunctionCall","src":"5153:71:53"},"nativeSrc":"5153:71:53","nodeType":"YulExpressionStatement","src":"5153:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5009:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5079:9:53","nodeType":"YulTypedName","src":"5079:9:53","type":""},{"name":"value0","nativeSrc":"5091:6:53","nodeType":"YulTypedName","src":"5091:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5102:4:53","nodeType":"YulTypedName","src":"5102:4:53","type":""}],"src":"5009:222:53"},{"body":{"nativeSrc":"5280:79:53","nodeType":"YulBlock","src":"5280:79:53","statements":[{"body":{"nativeSrc":"5337:16:53","nodeType":"YulBlock","src":"5337:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5346:1:53","nodeType":"YulLiteral","src":"5346:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5349:1:53","nodeType":"YulLiteral","src":"5349:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5339:6:53","nodeType":"YulIdentifier","src":"5339:6:53"},"nativeSrc":"5339:12:53","nodeType":"YulFunctionCall","src":"5339:12:53"},"nativeSrc":"5339:12:53","nodeType":"YulExpressionStatement","src":"5339:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5303:5:53","nodeType":"YulIdentifier","src":"5303:5:53"},{"arguments":[{"name":"value","nativeSrc":"5328:5:53","nodeType":"YulIdentifier","src":"5328:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5310:17:53","nodeType":"YulIdentifier","src":"5310:17:53"},"nativeSrc":"5310:24:53","nodeType":"YulFunctionCall","src":"5310:24:53"}],"functionName":{"name":"eq","nativeSrc":"5300:2:53","nodeType":"YulIdentifier","src":"5300:2:53"},"nativeSrc":"5300:35:53","nodeType":"YulFunctionCall","src":"5300:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5293:6:53","nodeType":"YulIdentifier","src":"5293:6:53"},"nativeSrc":"5293:43:53","nodeType":"YulFunctionCall","src":"5293:43:53"},"nativeSrc":"5290:63:53","nodeType":"YulIf","src":"5290:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5237:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5273:5:53","nodeType":"YulTypedName","src":"5273:5:53","type":""}],"src":"5237:122:53"},{"body":{"nativeSrc":"5417:87:53","nodeType":"YulBlock","src":"5417:87:53","statements":[{"nativeSrc":"5427:29:53","nodeType":"YulAssignment","src":"5427:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5449:6:53","nodeType":"YulIdentifier","src":"5449:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5436:12:53","nodeType":"YulIdentifier","src":"5436:12:53"},"nativeSrc":"5436:20:53","nodeType":"YulFunctionCall","src":"5436:20:53"},"variableNames":[{"name":"value","nativeSrc":"5427:5:53","nodeType":"YulIdentifier","src":"5427:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5492:5:53","nodeType":"YulIdentifier","src":"5492:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5465:26:53","nodeType":"YulIdentifier","src":"5465:26:53"},"nativeSrc":"5465:33:53","nodeType":"YulFunctionCall","src":"5465:33:53"},"nativeSrc":"5465:33:53","nodeType":"YulExpressionStatement","src":"5465:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5365:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5395:6:53","nodeType":"YulTypedName","src":"5395:6:53","type":""},{"name":"end","nativeSrc":"5403:3:53","nodeType":"YulTypedName","src":"5403:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5411:5:53","nodeType":"YulTypedName","src":"5411:5:53","type":""}],"src":"5365:139:53"},{"body":{"nativeSrc":"5576:263:53","nodeType":"YulBlock","src":"5576:263:53","statements":[{"body":{"nativeSrc":"5622:83:53","nodeType":"YulBlock","src":"5622:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5624:77:53","nodeType":"YulIdentifier","src":"5624:77:53"},"nativeSrc":"5624:79:53","nodeType":"YulFunctionCall","src":"5624:79:53"},"nativeSrc":"5624:79:53","nodeType":"YulExpressionStatement","src":"5624:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5597:7:53","nodeType":"YulIdentifier","src":"5597:7:53"},{"name":"headStart","nativeSrc":"5606:9:53","nodeType":"YulIdentifier","src":"5606:9:53"}],"functionName":{"name":"sub","nativeSrc":"5593:3:53","nodeType":"YulIdentifier","src":"5593:3:53"},"nativeSrc":"5593:23:53","nodeType":"YulFunctionCall","src":"5593:23:53"},{"kind":"number","nativeSrc":"5618:2:53","nodeType":"YulLiteral","src":"5618:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5589:3:53","nodeType":"YulIdentifier","src":"5589:3:53"},"nativeSrc":"5589:32:53","nodeType":"YulFunctionCall","src":"5589:32:53"},"nativeSrc":"5586:119:53","nodeType":"YulIf","src":"5586:119:53"},{"nativeSrc":"5715:117:53","nodeType":"YulBlock","src":"5715:117:53","statements":[{"nativeSrc":"5730:15:53","nodeType":"YulVariableDeclaration","src":"5730:15:53","value":{"kind":"number","nativeSrc":"5744:1:53","nodeType":"YulLiteral","src":"5744:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5734:6:53","nodeType":"YulTypedName","src":"5734:6:53","type":""}]},{"nativeSrc":"5759:63:53","nodeType":"YulAssignment","src":"5759:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5794:9:53","nodeType":"YulIdentifier","src":"5794:9:53"},{"name":"offset","nativeSrc":"5805:6:53","nodeType":"YulIdentifier","src":"5805:6:53"}],"functionName":{"name":"add","nativeSrc":"5790:3:53","nodeType":"YulIdentifier","src":"5790:3:53"},"nativeSrc":"5790:22:53","nodeType":"YulFunctionCall","src":"5790:22:53"},{"name":"dataEnd","nativeSrc":"5814:7:53","nodeType":"YulIdentifier","src":"5814:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5769:20:53","nodeType":"YulIdentifier","src":"5769:20:53"},"nativeSrc":"5769:53:53","nodeType":"YulFunctionCall","src":"5769:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5759:6:53","nodeType":"YulIdentifier","src":"5759:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5510:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5546:9:53","nodeType":"YulTypedName","src":"5546:9:53","type":""},{"name":"dataEnd","nativeSrc":"5557:7:53","nodeType":"YulTypedName","src":"5557:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5569:6:53","nodeType":"YulTypedName","src":"5569:6:53","type":""}],"src":"5510:329:53"},{"body":{"nativeSrc":"5908:52:53","nodeType":"YulBlock","src":"5908:52:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5925:3:53","nodeType":"YulIdentifier","src":"5925:3:53"},{"arguments":[{"name":"value","nativeSrc":"5947:5:53","nodeType":"YulIdentifier","src":"5947:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"5930:16:53","nodeType":"YulIdentifier","src":"5930:16:53"},"nativeSrc":"5930:23:53","nodeType":"YulFunctionCall","src":"5930:23:53"}],"functionName":{"name":"mstore","nativeSrc":"5918:6:53","nodeType":"YulIdentifier","src":"5918:6:53"},"nativeSrc":"5918:36:53","nodeType":"YulFunctionCall","src":"5918:36:53"},"nativeSrc":"5918:36:53","nodeType":"YulExpressionStatement","src":"5918:36:53"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"5845:115:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5896:5:53","nodeType":"YulTypedName","src":"5896:5:53","type":""},{"name":"pos","nativeSrc":"5903:3:53","nodeType":"YulTypedName","src":"5903:3:53","type":""}],"src":"5845:115:53"},{"body":{"nativeSrc":"6062:122:53","nodeType":"YulBlock","src":"6062:122:53","statements":[{"nativeSrc":"6072:26:53","nodeType":"YulAssignment","src":"6072:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6084:9:53","nodeType":"YulIdentifier","src":"6084:9:53"},{"kind":"number","nativeSrc":"6095:2:53","nodeType":"YulLiteral","src":"6095:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6080:3:53","nodeType":"YulIdentifier","src":"6080:3:53"},"nativeSrc":"6080:18:53","nodeType":"YulFunctionCall","src":"6080:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6072:4:53","nodeType":"YulIdentifier","src":"6072:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6150:6:53","nodeType":"YulIdentifier","src":"6150:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6163:9:53","nodeType":"YulIdentifier","src":"6163:9:53"},{"kind":"number","nativeSrc":"6174:1:53","nodeType":"YulLiteral","src":"6174:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6159:3:53","nodeType":"YulIdentifier","src":"6159:3:53"},"nativeSrc":"6159:17:53","nodeType":"YulFunctionCall","src":"6159:17:53"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"6108:41:53","nodeType":"YulIdentifier","src":"6108:41:53"},"nativeSrc":"6108:69:53","nodeType":"YulFunctionCall","src":"6108:69:53"},"nativeSrc":"6108:69:53","nodeType":"YulExpressionStatement","src":"6108:69:53"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"5966:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6034:9:53","nodeType":"YulTypedName","src":"6034:9:53","type":""},{"name":"value0","nativeSrc":"6046:6:53","nodeType":"YulTypedName","src":"6046:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6057:4:53","nodeType":"YulTypedName","src":"6057:4:53","type":""}],"src":"5966:218:53"},{"body":{"nativeSrc":"6279:28:53","nodeType":"YulBlock","src":"6279:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6296:1:53","nodeType":"YulLiteral","src":"6296:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6299:1:53","nodeType":"YulLiteral","src":"6299:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6289:6:53","nodeType":"YulIdentifier","src":"6289:6:53"},"nativeSrc":"6289:12:53","nodeType":"YulFunctionCall","src":"6289:12:53"},"nativeSrc":"6289:12:53","nodeType":"YulExpressionStatement","src":"6289:12:53"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"6190:117:53","nodeType":"YulFunctionDefinition","src":"6190:117:53"},{"body":{"nativeSrc":"6341:152:53","nodeType":"YulBlock","src":"6341:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6358:1:53","nodeType":"YulLiteral","src":"6358:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6361:77:53","nodeType":"YulLiteral","src":"6361:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6351:6:53","nodeType":"YulIdentifier","src":"6351:6:53"},"nativeSrc":"6351:88:53","nodeType":"YulFunctionCall","src":"6351:88:53"},"nativeSrc":"6351:88:53","nodeType":"YulExpressionStatement","src":"6351:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6455:1:53","nodeType":"YulLiteral","src":"6455:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6458:4:53","nodeType":"YulLiteral","src":"6458:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"6448:6:53","nodeType":"YulIdentifier","src":"6448:6:53"},"nativeSrc":"6448:15:53","nodeType":"YulFunctionCall","src":"6448:15:53"},"nativeSrc":"6448:15:53","nodeType":"YulExpressionStatement","src":"6448:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6479:1:53","nodeType":"YulLiteral","src":"6479:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6482:4:53","nodeType":"YulLiteral","src":"6482:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6472:6:53","nodeType":"YulIdentifier","src":"6472:6:53"},"nativeSrc":"6472:15:53","nodeType":"YulFunctionCall","src":"6472:15:53"},"nativeSrc":"6472:15:53","nodeType":"YulExpressionStatement","src":"6472:15:53"}]},"name":"panic_error_0x41","nativeSrc":"6313:180:53","nodeType":"YulFunctionDefinition","src":"6313:180:53"},{"body":{"nativeSrc":"6542:238:53","nodeType":"YulBlock","src":"6542:238:53","statements":[{"nativeSrc":"6552:58:53","nodeType":"YulVariableDeclaration","src":"6552:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"6574:6:53","nodeType":"YulIdentifier","src":"6574:6:53"},{"arguments":[{"name":"size","nativeSrc":"6604:4:53","nodeType":"YulIdentifier","src":"6604:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"6582:21:53","nodeType":"YulIdentifier","src":"6582:21:53"},"nativeSrc":"6582:27:53","nodeType":"YulFunctionCall","src":"6582:27:53"}],"functionName":{"name":"add","nativeSrc":"6570:3:53","nodeType":"YulIdentifier","src":"6570:3:53"},"nativeSrc":"6570:40:53","nodeType":"YulFunctionCall","src":"6570:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"6556:10:53","nodeType":"YulTypedName","src":"6556:10:53","type":""}]},{"body":{"nativeSrc":"6721:22:53","nodeType":"YulBlock","src":"6721:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6723:16:53","nodeType":"YulIdentifier","src":"6723:16:53"},"nativeSrc":"6723:18:53","nodeType":"YulFunctionCall","src":"6723:18:53"},"nativeSrc":"6723:18:53","nodeType":"YulExpressionStatement","src":"6723:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"6664:10:53","nodeType":"YulIdentifier","src":"6664:10:53"},{"kind":"number","nativeSrc":"6676:18:53","nodeType":"YulLiteral","src":"6676:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6661:2:53","nodeType":"YulIdentifier","src":"6661:2:53"},"nativeSrc":"6661:34:53","nodeType":"YulFunctionCall","src":"6661:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"6700:10:53","nodeType":"YulIdentifier","src":"6700:10:53"},{"name":"memPtr","nativeSrc":"6712:6:53","nodeType":"YulIdentifier","src":"6712:6:53"}],"functionName":{"name":"lt","nativeSrc":"6697:2:53","nodeType":"YulIdentifier","src":"6697:2:53"},"nativeSrc":"6697:22:53","nodeType":"YulFunctionCall","src":"6697:22:53"}],"functionName":{"name":"or","nativeSrc":"6658:2:53","nodeType":"YulIdentifier","src":"6658:2:53"},"nativeSrc":"6658:62:53","nodeType":"YulFunctionCall","src":"6658:62:53"},"nativeSrc":"6655:88:53","nodeType":"YulIf","src":"6655:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6759:2:53","nodeType":"YulLiteral","src":"6759:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"6763:10:53","nodeType":"YulIdentifier","src":"6763:10:53"}],"functionName":{"name":"mstore","nativeSrc":"6752:6:53","nodeType":"YulIdentifier","src":"6752:6:53"},"nativeSrc":"6752:22:53","nodeType":"YulFunctionCall","src":"6752:22:53"},"nativeSrc":"6752:22:53","nodeType":"YulExpressionStatement","src":"6752:22:53"}]},"name":"finalize_allocation","nativeSrc":"6499:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6528:6:53","nodeType":"YulTypedName","src":"6528:6:53","type":""},{"name":"size","nativeSrc":"6536:4:53","nodeType":"YulTypedName","src":"6536:4:53","type":""}],"src":"6499:281:53"},{"body":{"nativeSrc":"6827:88:53","nodeType":"YulBlock","src":"6827:88:53","statements":[{"nativeSrc":"6837:30:53","nodeType":"YulAssignment","src":"6837:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"6847:18:53","nodeType":"YulIdentifier","src":"6847:18:53"},"nativeSrc":"6847:20:53","nodeType":"YulFunctionCall","src":"6847:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"6837:6:53","nodeType":"YulIdentifier","src":"6837:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"6896:6:53","nodeType":"YulIdentifier","src":"6896:6:53"},{"name":"size","nativeSrc":"6904:4:53","nodeType":"YulIdentifier","src":"6904:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"6876:19:53","nodeType":"YulIdentifier","src":"6876:19:53"},"nativeSrc":"6876:33:53","nodeType":"YulFunctionCall","src":"6876:33:53"},"nativeSrc":"6876:33:53","nodeType":"YulExpressionStatement","src":"6876:33:53"}]},"name":"allocate_memory","nativeSrc":"6786:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6811:4:53","nodeType":"YulTypedName","src":"6811:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6820:6:53","nodeType":"YulTypedName","src":"6820:6:53","type":""}],"src":"6786:129:53"},{"body":{"nativeSrc":"7010:28:53","nodeType":"YulBlock","src":"7010:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7027:1:53","nodeType":"YulLiteral","src":"7027:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7030:1:53","nodeType":"YulLiteral","src":"7030:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7020:6:53","nodeType":"YulIdentifier","src":"7020:6:53"},"nativeSrc":"7020:12:53","nodeType":"YulFunctionCall","src":"7020:12:53"},"nativeSrc":"7020:12:53","nodeType":"YulExpressionStatement","src":"7020:12:53"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"6921:117:53","nodeType":"YulFunctionDefinition","src":"6921:117:53"},{"body":{"nativeSrc":"7087:79:53","nodeType":"YulBlock","src":"7087:79:53","statements":[{"body":{"nativeSrc":"7144:16:53","nodeType":"YulBlock","src":"7144:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7153:1:53","nodeType":"YulLiteral","src":"7153:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7156:1:53","nodeType":"YulLiteral","src":"7156:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7146:6:53","nodeType":"YulIdentifier","src":"7146:6:53"},"nativeSrc":"7146:12:53","nodeType":"YulFunctionCall","src":"7146:12:53"},"nativeSrc":"7146:12:53","nodeType":"YulExpressionStatement","src":"7146:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7110:5:53","nodeType":"YulIdentifier","src":"7110:5:53"},{"arguments":[{"name":"value","nativeSrc":"7135:5:53","nodeType":"YulIdentifier","src":"7135:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7117:17:53","nodeType":"YulIdentifier","src":"7117:17:53"},"nativeSrc":"7117:24:53","nodeType":"YulFunctionCall","src":"7117:24:53"}],"functionName":{"name":"eq","nativeSrc":"7107:2:53","nodeType":"YulIdentifier","src":"7107:2:53"},"nativeSrc":"7107:35:53","nodeType":"YulFunctionCall","src":"7107:35:53"}],"functionName":{"name":"iszero","nativeSrc":"7100:6:53","nodeType":"YulIdentifier","src":"7100:6:53"},"nativeSrc":"7100:43:53","nodeType":"YulFunctionCall","src":"7100:43:53"},"nativeSrc":"7097:63:53","nodeType":"YulIf","src":"7097:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"7044:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7080:5:53","nodeType":"YulTypedName","src":"7080:5:53","type":""}],"src":"7044:122:53"},{"body":{"nativeSrc":"7224:87:53","nodeType":"YulBlock","src":"7224:87:53","statements":[{"nativeSrc":"7234:29:53","nodeType":"YulAssignment","src":"7234:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7256:6:53","nodeType":"YulIdentifier","src":"7256:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7243:12:53","nodeType":"YulIdentifier","src":"7243:12:53"},"nativeSrc":"7243:20:53","nodeType":"YulFunctionCall","src":"7243:20:53"},"variableNames":[{"name":"value","nativeSrc":"7234:5:53","nodeType":"YulIdentifier","src":"7234:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7299:5:53","nodeType":"YulIdentifier","src":"7299:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7272:26:53","nodeType":"YulIdentifier","src":"7272:26:53"},"nativeSrc":"7272:33:53","nodeType":"YulFunctionCall","src":"7272:33:53"},"nativeSrc":"7272:33:53","nodeType":"YulExpressionStatement","src":"7272:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"7172:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7202:6:53","nodeType":"YulTypedName","src":"7202:6:53","type":""},{"name":"end","nativeSrc":"7210:3:53","nodeType":"YulTypedName","src":"7210:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7218:5:53","nodeType":"YulTypedName","src":"7218:5:53","type":""}],"src":"7172:139:53"},{"body":{"nativeSrc":"7444:825:53","nodeType":"YulBlock","src":"7444:825:53","statements":[{"body":{"nativeSrc":"7488:83:53","nodeType":"YulBlock","src":"7488:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7490:77:53","nodeType":"YulIdentifier","src":"7490:77:53"},"nativeSrc":"7490:79:53","nodeType":"YulFunctionCall","src":"7490:79:53"},"nativeSrc":"7490:79:53","nodeType":"YulExpressionStatement","src":"7490:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"7465:3:53","nodeType":"YulIdentifier","src":"7465:3:53"},{"name":"headStart","nativeSrc":"7470:9:53","nodeType":"YulIdentifier","src":"7470:9:53"}],"functionName":{"name":"sub","nativeSrc":"7461:3:53","nodeType":"YulIdentifier","src":"7461:3:53"},"nativeSrc":"7461:19:53","nodeType":"YulFunctionCall","src":"7461:19:53"},{"kind":"number","nativeSrc":"7482:4:53","nodeType":"YulLiteral","src":"7482:4:53","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"7457:3:53","nodeType":"YulIdentifier","src":"7457:3:53"},"nativeSrc":"7457:30:53","nodeType":"YulFunctionCall","src":"7457:30:53"},"nativeSrc":"7454:117:53","nodeType":"YulIf","src":"7454:117:53"},{"nativeSrc":"7580:30:53","nodeType":"YulAssignment","src":"7580:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"7605:4:53","nodeType":"YulLiteral","src":"7605:4:53","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"7589:15:53","nodeType":"YulIdentifier","src":"7589:15:53"},"nativeSrc":"7589:21:53","nodeType":"YulFunctionCall","src":"7589:21:53"},"variableNames":[{"name":"value","nativeSrc":"7580:5:53","nodeType":"YulIdentifier","src":"7580:5:53"}]},{"nativeSrc":"7620:151:53","nodeType":"YulBlock","src":"7620:151:53","statements":[{"nativeSrc":"7656:15:53","nodeType":"YulVariableDeclaration","src":"7656:15:53","value":{"kind":"number","nativeSrc":"7670:1:53","nodeType":"YulLiteral","src":"7670:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7660:6:53","nodeType":"YulTypedName","src":"7660:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7696:5:53","nodeType":"YulIdentifier","src":"7696:5:53"},{"kind":"number","nativeSrc":"7703:4:53","nodeType":"YulLiteral","src":"7703:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"7692:3:53","nodeType":"YulIdentifier","src":"7692:3:53"},"nativeSrc":"7692:16:53","nodeType":"YulFunctionCall","src":"7692:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7735:9:53","nodeType":"YulIdentifier","src":"7735:9:53"},{"name":"offset","nativeSrc":"7746:6:53","nodeType":"YulIdentifier","src":"7746:6:53"}],"functionName":{"name":"add","nativeSrc":"7731:3:53","nodeType":"YulIdentifier","src":"7731:3:53"},"nativeSrc":"7731:22:53","nodeType":"YulFunctionCall","src":"7731:22:53"},{"name":"end","nativeSrc":"7755:3:53","nodeType":"YulIdentifier","src":"7755:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7710:20:53","nodeType":"YulIdentifier","src":"7710:20:53"},"nativeSrc":"7710:49:53","nodeType":"YulFunctionCall","src":"7710:49:53"}],"functionName":{"name":"mstore","nativeSrc":"7685:6:53","nodeType":"YulIdentifier","src":"7685:6:53"},"nativeSrc":"7685:75:53","nodeType":"YulFunctionCall","src":"7685:75:53"},"nativeSrc":"7685:75:53","nodeType":"YulExpressionStatement","src":"7685:75:53"}]},{"nativeSrc":"7781:154:53","nodeType":"YulBlock","src":"7781:154:53","statements":[{"nativeSrc":"7820:16:53","nodeType":"YulVariableDeclaration","src":"7820:16:53","value":{"kind":"number","nativeSrc":"7834:2:53","nodeType":"YulLiteral","src":"7834:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7824:6:53","nodeType":"YulTypedName","src":"7824:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7861:5:53","nodeType":"YulIdentifier","src":"7861:5:53"},{"kind":"number","nativeSrc":"7868:4:53","nodeType":"YulLiteral","src":"7868:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7857:3:53","nodeType":"YulIdentifier","src":"7857:3:53"},"nativeSrc":"7857:16:53","nodeType":"YulFunctionCall","src":"7857:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7899:9:53","nodeType":"YulIdentifier","src":"7899:9:53"},{"name":"offset","nativeSrc":"7910:6:53","nodeType":"YulIdentifier","src":"7910:6:53"}],"functionName":{"name":"add","nativeSrc":"7895:3:53","nodeType":"YulIdentifier","src":"7895:3:53"},"nativeSrc":"7895:22:53","nodeType":"YulFunctionCall","src":"7895:22:53"},{"name":"end","nativeSrc":"7919:3:53","nodeType":"YulIdentifier","src":"7919:3:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"7875:19:53","nodeType":"YulIdentifier","src":"7875:19:53"},"nativeSrc":"7875:48:53","nodeType":"YulFunctionCall","src":"7875:48:53"}],"functionName":{"name":"mstore","nativeSrc":"7850:6:53","nodeType":"YulIdentifier","src":"7850:6:53"},"nativeSrc":"7850:74:53","nodeType":"YulFunctionCall","src":"7850:74:53"},"nativeSrc":"7850:74:53","nodeType":"YulExpressionStatement","src":"7850:74:53"}]},{"nativeSrc":"7945:155:53","nodeType":"YulBlock","src":"7945:155:53","statements":[{"nativeSrc":"7984:16:53","nodeType":"YulVariableDeclaration","src":"7984:16:53","value":{"kind":"number","nativeSrc":"7998:2:53","nodeType":"YulLiteral","src":"7998:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"7988:6:53","nodeType":"YulTypedName","src":"7988:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8025:5:53","nodeType":"YulIdentifier","src":"8025:5:53"},{"kind":"number","nativeSrc":"8032:4:53","nodeType":"YulLiteral","src":"8032:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8021:3:53","nodeType":"YulIdentifier","src":"8021:3:53"},"nativeSrc":"8021:16:53","nodeType":"YulFunctionCall","src":"8021:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8064:9:53","nodeType":"YulIdentifier","src":"8064:9:53"},{"name":"offset","nativeSrc":"8075:6:53","nodeType":"YulIdentifier","src":"8075:6:53"}],"functionName":{"name":"add","nativeSrc":"8060:3:53","nodeType":"YulIdentifier","src":"8060:3:53"},"nativeSrc":"8060:22:53","nodeType":"YulFunctionCall","src":"8060:22:53"},{"name":"end","nativeSrc":"8084:3:53","nodeType":"YulIdentifier","src":"8084:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8039:20:53","nodeType":"YulIdentifier","src":"8039:20:53"},"nativeSrc":"8039:49:53","nodeType":"YulFunctionCall","src":"8039:49:53"}],"functionName":{"name":"mstore","nativeSrc":"8014:6:53","nodeType":"YulIdentifier","src":"8014:6:53"},"nativeSrc":"8014:75:53","nodeType":"YulFunctionCall","src":"8014:75:53"},"nativeSrc":"8014:75:53","nodeType":"YulExpressionStatement","src":"8014:75:53"}]},{"nativeSrc":"8110:152:53","nodeType":"YulBlock","src":"8110:152:53","statements":[{"nativeSrc":"8146:16:53","nodeType":"YulVariableDeclaration","src":"8146:16:53","value":{"kind":"number","nativeSrc":"8160:2:53","nodeType":"YulLiteral","src":"8160:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"8150:6:53","nodeType":"YulTypedName","src":"8150:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8187:5:53","nodeType":"YulIdentifier","src":"8187:5:53"},{"kind":"number","nativeSrc":"8194:4:53","nodeType":"YulLiteral","src":"8194:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"8183:3:53","nodeType":"YulIdentifier","src":"8183:3:53"},"nativeSrc":"8183:16:53","nodeType":"YulFunctionCall","src":"8183:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8226:9:53","nodeType":"YulIdentifier","src":"8226:9:53"},{"name":"offset","nativeSrc":"8237:6:53","nodeType":"YulIdentifier","src":"8237:6:53"}],"functionName":{"name":"add","nativeSrc":"8222:3:53","nodeType":"YulIdentifier","src":"8222:3:53"},"nativeSrc":"8222:22:53","nodeType":"YulFunctionCall","src":"8222:22:53"},{"name":"end","nativeSrc":"8246:3:53","nodeType":"YulIdentifier","src":"8246:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8201:20:53","nodeType":"YulIdentifier","src":"8201:20:53"},"nativeSrc":"8201:49:53","nodeType":"YulFunctionCall","src":"8201:49:53"}],"functionName":{"name":"mstore","nativeSrc":"8176:6:53","nodeType":"YulIdentifier","src":"8176:6:53"},"nativeSrc":"8176:75:53","nodeType":"YulFunctionCall","src":"8176:75:53"},"nativeSrc":"8176:75:53","nodeType":"YulExpressionStatement","src":"8176:75:53"}]}]},"name":"abi_decode_t_struct$_InitPayload_$17281_memory_ptr","nativeSrc":"7359:910:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7419:9:53","nodeType":"YulTypedName","src":"7419:9:53","type":""},{"name":"end","nativeSrc":"7430:3:53","nodeType":"YulTypedName","src":"7430:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7438:5:53","nodeType":"YulTypedName","src":"7438:5:53","type":""}],"src":"7359:910:53"},{"body":{"nativeSrc":"8371:294:53","nodeType":"YulBlock","src":"8371:294:53","statements":[{"body":{"nativeSrc":"8418:83:53","nodeType":"YulBlock","src":"8418:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8420:77:53","nodeType":"YulIdentifier","src":"8420:77:53"},"nativeSrc":"8420:79:53","nodeType":"YulFunctionCall","src":"8420:79:53"},"nativeSrc":"8420:79:53","nodeType":"YulExpressionStatement","src":"8420:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8392:7:53","nodeType":"YulIdentifier","src":"8392:7:53"},{"name":"headStart","nativeSrc":"8401:9:53","nodeType":"YulIdentifier","src":"8401:9:53"}],"functionName":{"name":"sub","nativeSrc":"8388:3:53","nodeType":"YulIdentifier","src":"8388:3:53"},"nativeSrc":"8388:23:53","nodeType":"YulFunctionCall","src":"8388:23:53"},{"kind":"number","nativeSrc":"8413:3:53","nodeType":"YulLiteral","src":"8413:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"8384:3:53","nodeType":"YulIdentifier","src":"8384:3:53"},"nativeSrc":"8384:33:53","nodeType":"YulFunctionCall","src":"8384:33:53"},"nativeSrc":"8381:120:53","nodeType":"YulIf","src":"8381:120:53"},{"nativeSrc":"8511:147:53","nodeType":"YulBlock","src":"8511:147:53","statements":[{"nativeSrc":"8526:15:53","nodeType":"YulVariableDeclaration","src":"8526:15:53","value":{"kind":"number","nativeSrc":"8540:1:53","nodeType":"YulLiteral","src":"8540:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8530:6:53","nodeType":"YulTypedName","src":"8530:6:53","type":""}]},{"nativeSrc":"8555:93:53","nodeType":"YulAssignment","src":"8555:93:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8620:9:53","nodeType":"YulIdentifier","src":"8620:9:53"},{"name":"offset","nativeSrc":"8631:6:53","nodeType":"YulIdentifier","src":"8631:6:53"}],"functionName":{"name":"add","nativeSrc":"8616:3:53","nodeType":"YulIdentifier","src":"8616:3:53"},"nativeSrc":"8616:22:53","nodeType":"YulFunctionCall","src":"8616:22:53"},{"name":"dataEnd","nativeSrc":"8640:7:53","nodeType":"YulIdentifier","src":"8640:7:53"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$17281_memory_ptr","nativeSrc":"8565:50:53","nodeType":"YulIdentifier","src":"8565:50:53"},"nativeSrc":"8565:83:53","nodeType":"YulFunctionCall","src":"8565:83:53"},"variableNames":[{"name":"value0","nativeSrc":"8555:6:53","nodeType":"YulIdentifier","src":"8555:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$17281_memory_ptr","nativeSrc":"8275:390:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8341:9:53","nodeType":"YulTypedName","src":"8341:9:53","type":""},{"name":"dataEnd","nativeSrc":"8352:7:53","nodeType":"YulTypedName","src":"8352:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8364:6:53","nodeType":"YulTypedName","src":"8364:6:53","type":""}],"src":"8275:390:53"},{"body":{"nativeSrc":"8760:28:53","nodeType":"YulBlock","src":"8760:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8777:1:53","nodeType":"YulLiteral","src":"8777:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8780:1:53","nodeType":"YulLiteral","src":"8780:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8770:6:53","nodeType":"YulIdentifier","src":"8770:6:53"},"nativeSrc":"8770:12:53","nodeType":"YulFunctionCall","src":"8770:12:53"},"nativeSrc":"8770:12:53","nodeType":"YulExpressionStatement","src":"8770:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"8671:117:53","nodeType":"YulFunctionDefinition","src":"8671:117:53"},{"body":{"nativeSrc":"8860:241:53","nodeType":"YulBlock","src":"8860:241:53","statements":[{"body":{"nativeSrc":"8965:22:53","nodeType":"YulBlock","src":"8965:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8967:16:53","nodeType":"YulIdentifier","src":"8967:16:53"},"nativeSrc":"8967:18:53","nodeType":"YulFunctionCall","src":"8967:18:53"},"nativeSrc":"8967:18:53","nodeType":"YulExpressionStatement","src":"8967:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8937:6:53","nodeType":"YulIdentifier","src":"8937:6:53"},{"kind":"number","nativeSrc":"8945:18:53","nodeType":"YulLiteral","src":"8945:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8934:2:53","nodeType":"YulIdentifier","src":"8934:2:53"},"nativeSrc":"8934:30:53","nodeType":"YulFunctionCall","src":"8934:30:53"},"nativeSrc":"8931:56:53","nodeType":"YulIf","src":"8931:56:53"},{"nativeSrc":"8997:37:53","nodeType":"YulAssignment","src":"8997:37:53","value":{"arguments":[{"name":"length","nativeSrc":"9027:6:53","nodeType":"YulIdentifier","src":"9027:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9005:21:53","nodeType":"YulIdentifier","src":"9005:21:53"},"nativeSrc":"9005:29:53","nodeType":"YulFunctionCall","src":"9005:29:53"},"variableNames":[{"name":"size","nativeSrc":"8997:4:53","nodeType":"YulIdentifier","src":"8997:4:53"}]},{"nativeSrc":"9071:23:53","nodeType":"YulAssignment","src":"9071:23:53","value":{"arguments":[{"name":"size","nativeSrc":"9083:4:53","nodeType":"YulIdentifier","src":"9083:4:53"},{"kind":"number","nativeSrc":"9089:4:53","nodeType":"YulLiteral","src":"9089:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9079:3:53","nodeType":"YulIdentifier","src":"9079:3:53"},"nativeSrc":"9079:15:53","nodeType":"YulFunctionCall","src":"9079:15:53"},"variableNames":[{"name":"size","nativeSrc":"9071:4:53","nodeType":"YulIdentifier","src":"9071:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"8794:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"8844:6:53","nodeType":"YulTypedName","src":"8844:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"8855:4:53","nodeType":"YulTypedName","src":"8855:4:53","type":""}],"src":"8794:307:53"},{"body":{"nativeSrc":"9171:84:53","nodeType":"YulBlock","src":"9171:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"9195:3:53","nodeType":"YulIdentifier","src":"9195:3:53"},{"name":"src","nativeSrc":"9200:3:53","nodeType":"YulIdentifier","src":"9200:3:53"},{"name":"length","nativeSrc":"9205:6:53","nodeType":"YulIdentifier","src":"9205:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"9182:12:53","nodeType":"YulIdentifier","src":"9182:12:53"},"nativeSrc":"9182:30:53","nodeType":"YulFunctionCall","src":"9182:30:53"},"nativeSrc":"9182:30:53","nodeType":"YulExpressionStatement","src":"9182:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9232:3:53","nodeType":"YulIdentifier","src":"9232:3:53"},{"name":"length","nativeSrc":"9237:6:53","nodeType":"YulIdentifier","src":"9237:6:53"}],"functionName":{"name":"add","nativeSrc":"9228:3:53","nodeType":"YulIdentifier","src":"9228:3:53"},"nativeSrc":"9228:16:53","nodeType":"YulFunctionCall","src":"9228:16:53"},{"kind":"number","nativeSrc":"9246:1:53","nodeType":"YulLiteral","src":"9246:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9221:6:53","nodeType":"YulIdentifier","src":"9221:6:53"},"nativeSrc":"9221:27:53","nodeType":"YulFunctionCall","src":"9221:27:53"},"nativeSrc":"9221:27:53","nodeType":"YulExpressionStatement","src":"9221:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9107:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9153:3:53","nodeType":"YulTypedName","src":"9153:3:53","type":""},{"name":"dst","nativeSrc":"9158:3:53","nodeType":"YulTypedName","src":"9158:3:53","type":""},{"name":"length","nativeSrc":"9163:6:53","nodeType":"YulTypedName","src":"9163:6:53","type":""}],"src":"9107:148:53"},{"body":{"nativeSrc":"9344:340:53","nodeType":"YulBlock","src":"9344:340:53","statements":[{"nativeSrc":"9354:74:53","nodeType":"YulAssignment","src":"9354:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9420:6:53","nodeType":"YulIdentifier","src":"9420:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"9379:40:53","nodeType":"YulIdentifier","src":"9379:40:53"},"nativeSrc":"9379:48:53","nodeType":"YulFunctionCall","src":"9379:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"9363:15:53","nodeType":"YulIdentifier","src":"9363:15:53"},"nativeSrc":"9363:65:53","nodeType":"YulFunctionCall","src":"9363:65:53"},"variableNames":[{"name":"array","nativeSrc":"9354:5:53","nodeType":"YulIdentifier","src":"9354:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"9444:5:53","nodeType":"YulIdentifier","src":"9444:5:53"},{"name":"length","nativeSrc":"9451:6:53","nodeType":"YulIdentifier","src":"9451:6:53"}],"functionName":{"name":"mstore","nativeSrc":"9437:6:53","nodeType":"YulIdentifier","src":"9437:6:53"},"nativeSrc":"9437:21:53","nodeType":"YulFunctionCall","src":"9437:21:53"},"nativeSrc":"9437:21:53","nodeType":"YulExpressionStatement","src":"9437:21:53"},{"nativeSrc":"9467:27:53","nodeType":"YulVariableDeclaration","src":"9467:27:53","value":{"arguments":[{"name":"array","nativeSrc":"9482:5:53","nodeType":"YulIdentifier","src":"9482:5:53"},{"kind":"number","nativeSrc":"9489:4:53","nodeType":"YulLiteral","src":"9489:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9478:3:53","nodeType":"YulIdentifier","src":"9478:3:53"},"nativeSrc":"9478:16:53","nodeType":"YulFunctionCall","src":"9478:16:53"},"variables":[{"name":"dst","nativeSrc":"9471:3:53","nodeType":"YulTypedName","src":"9471:3:53","type":""}]},{"body":{"nativeSrc":"9532:83:53","nodeType":"YulBlock","src":"9532:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"9534:77:53","nodeType":"YulIdentifier","src":"9534:77:53"},"nativeSrc":"9534:79:53","nodeType":"YulFunctionCall","src":"9534:79:53"},"nativeSrc":"9534:79:53","nodeType":"YulExpressionStatement","src":"9534:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9513:3:53","nodeType":"YulIdentifier","src":"9513:3:53"},{"name":"length","nativeSrc":"9518:6:53","nodeType":"YulIdentifier","src":"9518:6:53"}],"functionName":{"name":"add","nativeSrc":"9509:3:53","nodeType":"YulIdentifier","src":"9509:3:53"},"nativeSrc":"9509:16:53","nodeType":"YulFunctionCall","src":"9509:16:53"},{"name":"end","nativeSrc":"9527:3:53","nodeType":"YulIdentifier","src":"9527:3:53"}],"functionName":{"name":"gt","nativeSrc":"9506:2:53","nodeType":"YulIdentifier","src":"9506:2:53"},"nativeSrc":"9506:25:53","nodeType":"YulFunctionCall","src":"9506:25:53"},"nativeSrc":"9503:112:53","nodeType":"YulIf","src":"9503:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"9661:3:53","nodeType":"YulIdentifier","src":"9661:3:53"},{"name":"dst","nativeSrc":"9666:3:53","nodeType":"YulIdentifier","src":"9666:3:53"},{"name":"length","nativeSrc":"9671:6:53","nodeType":"YulIdentifier","src":"9671:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9624:36:53","nodeType":"YulIdentifier","src":"9624:36:53"},"nativeSrc":"9624:54:53","nodeType":"YulFunctionCall","src":"9624:54:53"},"nativeSrc":"9624:54:53","nodeType":"YulExpressionStatement","src":"9624:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"9261:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9317:3:53","nodeType":"YulTypedName","src":"9317:3:53","type":""},{"name":"length","nativeSrc":"9322:6:53","nodeType":"YulTypedName","src":"9322:6:53","type":""},{"name":"end","nativeSrc":"9330:3:53","nodeType":"YulTypedName","src":"9330:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9338:5:53","nodeType":"YulTypedName","src":"9338:5:53","type":""}],"src":"9261:423:53"},{"body":{"nativeSrc":"9764:277:53","nodeType":"YulBlock","src":"9764:277:53","statements":[{"body":{"nativeSrc":"9813:83:53","nodeType":"YulBlock","src":"9813:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9815:77:53","nodeType":"YulIdentifier","src":"9815:77:53"},"nativeSrc":"9815:79:53","nodeType":"YulFunctionCall","src":"9815:79:53"},"nativeSrc":"9815:79:53","nodeType":"YulExpressionStatement","src":"9815:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9792:6:53","nodeType":"YulIdentifier","src":"9792:6:53"},{"kind":"number","nativeSrc":"9800:4:53","nodeType":"YulLiteral","src":"9800:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9788:3:53","nodeType":"YulIdentifier","src":"9788:3:53"},"nativeSrc":"9788:17:53","nodeType":"YulFunctionCall","src":"9788:17:53"},{"name":"end","nativeSrc":"9807:3:53","nodeType":"YulIdentifier","src":"9807:3:53"}],"functionName":{"name":"slt","nativeSrc":"9784:3:53","nodeType":"YulIdentifier","src":"9784:3:53"},"nativeSrc":"9784:27:53","nodeType":"YulFunctionCall","src":"9784:27:53"}],"functionName":{"name":"iszero","nativeSrc":"9777:6:53","nodeType":"YulIdentifier","src":"9777:6:53"},"nativeSrc":"9777:35:53","nodeType":"YulFunctionCall","src":"9777:35:53"},"nativeSrc":"9774:122:53","nodeType":"YulIf","src":"9774:122:53"},{"nativeSrc":"9905:34:53","nodeType":"YulVariableDeclaration","src":"9905:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"9932:6:53","nodeType":"YulIdentifier","src":"9932:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9919:12:53","nodeType":"YulIdentifier","src":"9919:12:53"},"nativeSrc":"9919:20:53","nodeType":"YulFunctionCall","src":"9919:20:53"},"variables":[{"name":"length","nativeSrc":"9909:6:53","nodeType":"YulTypedName","src":"9909:6:53","type":""}]},{"nativeSrc":"9948:87:53","nodeType":"YulAssignment","src":"9948:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10008:6:53","nodeType":"YulIdentifier","src":"10008:6:53"},{"kind":"number","nativeSrc":"10016:4:53","nodeType":"YulLiteral","src":"10016:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10004:3:53","nodeType":"YulIdentifier","src":"10004:3:53"},"nativeSrc":"10004:17:53","nodeType":"YulFunctionCall","src":"10004:17:53"},{"name":"length","nativeSrc":"10023:6:53","nodeType":"YulIdentifier","src":"10023:6:53"},{"name":"end","nativeSrc":"10031:3:53","nodeType":"YulIdentifier","src":"10031:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"9957:46:53","nodeType":"YulIdentifier","src":"9957:46:53"},"nativeSrc":"9957:78:53","nodeType":"YulFunctionCall","src":"9957:78:53"},"variableNames":[{"name":"array","nativeSrc":"9948:5:53","nodeType":"YulIdentifier","src":"9948:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"9703:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9742:6:53","nodeType":"YulTypedName","src":"9742:6:53","type":""},{"name":"end","nativeSrc":"9750:3:53","nodeType":"YulTypedName","src":"9750:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9758:5:53","nodeType":"YulTypedName","src":"9758:5:53","type":""}],"src":"9703:338:53"},{"body":{"nativeSrc":"10170:665:53","nodeType":"YulBlock","src":"10170:665:53","statements":[{"body":{"nativeSrc":"10214:83:53","nodeType":"YulBlock","src":"10214:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10216:77:53","nodeType":"YulIdentifier","src":"10216:77:53"},"nativeSrc":"10216:79:53","nodeType":"YulFunctionCall","src":"10216:79:53"},"nativeSrc":"10216:79:53","nodeType":"YulExpressionStatement","src":"10216:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"10191:3:53","nodeType":"YulIdentifier","src":"10191:3:53"},{"name":"headStart","nativeSrc":"10196:9:53","nodeType":"YulIdentifier","src":"10196:9:53"}],"functionName":{"name":"sub","nativeSrc":"10187:3:53","nodeType":"YulIdentifier","src":"10187:3:53"},"nativeSrc":"10187:19:53","nodeType":"YulFunctionCall","src":"10187:19:53"},{"kind":"number","nativeSrc":"10208:4:53","nodeType":"YulLiteral","src":"10208:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"10183:3:53","nodeType":"YulIdentifier","src":"10183:3:53"},"nativeSrc":"10183:30:53","nodeType":"YulFunctionCall","src":"10183:30:53"},"nativeSrc":"10180:117:53","nodeType":"YulIf","src":"10180:117:53"},{"nativeSrc":"10306:30:53","nodeType":"YulAssignment","src":"10306:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"10331:4:53","nodeType":"YulLiteral","src":"10331:4:53","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"10315:15:53","nodeType":"YulIdentifier","src":"10315:15:53"},"nativeSrc":"10315:21:53","nodeType":"YulFunctionCall","src":"10315:21:53"},"variableNames":[{"name":"value","nativeSrc":"10306:5:53","nodeType":"YulIdentifier","src":"10306:5:53"}]},{"nativeSrc":"10346:152:53","nodeType":"YulBlock","src":"10346:152:53","statements":[{"nativeSrc":"10383:15:53","nodeType":"YulVariableDeclaration","src":"10383:15:53","value":{"kind":"number","nativeSrc":"10397:1:53","nodeType":"YulLiteral","src":"10397:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10387:6:53","nodeType":"YulTypedName","src":"10387:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10423:5:53","nodeType":"YulIdentifier","src":"10423:5:53"},{"kind":"number","nativeSrc":"10430:4:53","nodeType":"YulLiteral","src":"10430:4:53","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"10419:3:53","nodeType":"YulIdentifier","src":"10419:3:53"},"nativeSrc":"10419:16:53","nodeType":"YulFunctionCall","src":"10419:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10462:9:53","nodeType":"YulIdentifier","src":"10462:9:53"},{"name":"offset","nativeSrc":"10473:6:53","nodeType":"YulIdentifier","src":"10473:6:53"}],"functionName":{"name":"add","nativeSrc":"10458:3:53","nodeType":"YulIdentifier","src":"10458:3:53"},"nativeSrc":"10458:22:53","nodeType":"YulFunctionCall","src":"10458:22:53"},{"name":"end","nativeSrc":"10482:3:53","nodeType":"YulIdentifier","src":"10482:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10437:20:53","nodeType":"YulIdentifier","src":"10437:20:53"},"nativeSrc":"10437:49:53","nodeType":"YulFunctionCall","src":"10437:49:53"}],"functionName":{"name":"mstore","nativeSrc":"10412:6:53","nodeType":"YulIdentifier","src":"10412:6:53"},"nativeSrc":"10412:75:53","nodeType":"YulFunctionCall","src":"10412:75:53"},"nativeSrc":"10412:75:53","nodeType":"YulExpressionStatement","src":"10412:75:53"}]},{"nativeSrc":"10508:320:53","nodeType":"YulBlock","src":"10508:320:53","statements":[{"nativeSrc":"10543:46:53","nodeType":"YulVariableDeclaration","src":"10543:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10574:9:53","nodeType":"YulIdentifier","src":"10574:9:53"},{"kind":"number","nativeSrc":"10585:2:53","nodeType":"YulLiteral","src":"10585:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10570:3:53","nodeType":"YulIdentifier","src":"10570:3:53"},"nativeSrc":"10570:18:53","nodeType":"YulFunctionCall","src":"10570:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"10557:12:53","nodeType":"YulIdentifier","src":"10557:12:53"},"nativeSrc":"10557:32:53","nodeType":"YulFunctionCall","src":"10557:32:53"},"variables":[{"name":"offset","nativeSrc":"10547:6:53","nodeType":"YulTypedName","src":"10547:6:53","type":""}]},{"body":{"nativeSrc":"10636:83:53","nodeType":"YulBlock","src":"10636:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10638:77:53","nodeType":"YulIdentifier","src":"10638:77:53"},"nativeSrc":"10638:79:53","nodeType":"YulFunctionCall","src":"10638:79:53"},"nativeSrc":"10638:79:53","nodeType":"YulExpressionStatement","src":"10638:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10608:6:53","nodeType":"YulIdentifier","src":"10608:6:53"},{"kind":"number","nativeSrc":"10616:18:53","nodeType":"YulLiteral","src":"10616:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10605:2:53","nodeType":"YulIdentifier","src":"10605:2:53"},"nativeSrc":"10605:30:53","nodeType":"YulFunctionCall","src":"10605:30:53"},"nativeSrc":"10602:117:53","nodeType":"YulIf","src":"10602:117:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10744:5:53","nodeType":"YulIdentifier","src":"10744:5:53"},{"kind":"number","nativeSrc":"10751:4:53","nodeType":"YulLiteral","src":"10751:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10740:3:53","nodeType":"YulIdentifier","src":"10740:3:53"},"nativeSrc":"10740:16:53","nodeType":"YulFunctionCall","src":"10740:16:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10792:9:53","nodeType":"YulIdentifier","src":"10792:9:53"},{"name":"offset","nativeSrc":"10803:6:53","nodeType":"YulIdentifier","src":"10803:6:53"}],"functionName":{"name":"add","nativeSrc":"10788:3:53","nodeType":"YulIdentifier","src":"10788:3:53"},"nativeSrc":"10788:22:53","nodeType":"YulFunctionCall","src":"10788:22:53"},{"name":"end","nativeSrc":"10812:3:53","nodeType":"YulIdentifier","src":"10812:3:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10758:29:53","nodeType":"YulIdentifier","src":"10758:29:53"},"nativeSrc":"10758:58:53","nodeType":"YulFunctionCall","src":"10758:58:53"}],"functionName":{"name":"mstore","nativeSrc":"10733:6:53","nodeType":"YulIdentifier","src":"10733:6:53"},"nativeSrc":"10733:84:53","nodeType":"YulFunctionCall","src":"10733:84:53"},"nativeSrc":"10733:84:53","nodeType":"YulExpressionStatement","src":"10733:84:53"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"10084:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10145:9:53","nodeType":"YulTypedName","src":"10145:9:53","type":""},{"name":"end","nativeSrc":"10156:3:53","nodeType":"YulTypedName","src":"10156:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10164:5:53","nodeType":"YulTypedName","src":"10164:5:53","type":""}],"src":"10084:751:53"},{"body":{"nativeSrc":"10938:454:53","nodeType":"YulBlock","src":"10938:454:53","statements":[{"body":{"nativeSrc":"10984:83:53","nodeType":"YulBlock","src":"10984:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10986:77:53","nodeType":"YulIdentifier","src":"10986:77:53"},"nativeSrc":"10986:79:53","nodeType":"YulFunctionCall","src":"10986:79:53"},"nativeSrc":"10986:79:53","nodeType":"YulExpressionStatement","src":"10986:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10959:7:53","nodeType":"YulIdentifier","src":"10959:7:53"},{"name":"headStart","nativeSrc":"10968:9:53","nodeType":"YulIdentifier","src":"10968:9:53"}],"functionName":{"name":"sub","nativeSrc":"10955:3:53","nodeType":"YulIdentifier","src":"10955:3:53"},"nativeSrc":"10955:23:53","nodeType":"YulFunctionCall","src":"10955:23:53"},{"kind":"number","nativeSrc":"10980:2:53","nodeType":"YulLiteral","src":"10980:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10951:3:53","nodeType":"YulIdentifier","src":"10951:3:53"},"nativeSrc":"10951:32:53","nodeType":"YulFunctionCall","src":"10951:32:53"},"nativeSrc":"10948:119:53","nodeType":"YulIf","src":"10948:119:53"},{"nativeSrc":"11077:308:53","nodeType":"YulBlock","src":"11077:308:53","statements":[{"nativeSrc":"11092:45:53","nodeType":"YulVariableDeclaration","src":"11092:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11123:9:53","nodeType":"YulIdentifier","src":"11123:9:53"},{"kind":"number","nativeSrc":"11134:1:53","nodeType":"YulLiteral","src":"11134:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11119:3:53","nodeType":"YulIdentifier","src":"11119:3:53"},"nativeSrc":"11119:17:53","nodeType":"YulFunctionCall","src":"11119:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"11106:12:53","nodeType":"YulIdentifier","src":"11106:12:53"},"nativeSrc":"11106:31:53","nodeType":"YulFunctionCall","src":"11106:31:53"},"variables":[{"name":"offset","nativeSrc":"11096:6:53","nodeType":"YulTypedName","src":"11096:6:53","type":""}]},{"body":{"nativeSrc":"11184:83:53","nodeType":"YulBlock","src":"11184:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11186:77:53","nodeType":"YulIdentifier","src":"11186:77:53"},"nativeSrc":"11186:79:53","nodeType":"YulFunctionCall","src":"11186:79:53"},"nativeSrc":"11186:79:53","nodeType":"YulExpressionStatement","src":"11186:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11156:6:53","nodeType":"YulIdentifier","src":"11156:6:53"},{"kind":"number","nativeSrc":"11164:18:53","nodeType":"YulLiteral","src":"11164:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11153:2:53","nodeType":"YulIdentifier","src":"11153:2:53"},"nativeSrc":"11153:30:53","nodeType":"YulFunctionCall","src":"11153:30:53"},"nativeSrc":"11150:117:53","nodeType":"YulIf","src":"11150:117:53"},{"nativeSrc":"11281:94:53","nodeType":"YulAssignment","src":"11281:94:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11347:9:53","nodeType":"YulIdentifier","src":"11347:9:53"},{"name":"offset","nativeSrc":"11358:6:53","nodeType":"YulIdentifier","src":"11358:6:53"}],"functionName":{"name":"add","nativeSrc":"11343:3:53","nodeType":"YulIdentifier","src":"11343:3:53"},"nativeSrc":"11343:22:53","nodeType":"YulFunctionCall","src":"11343:22:53"},{"name":"dataEnd","nativeSrc":"11367:7:53","nodeType":"YulIdentifier","src":"11367:7:53"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"11291:51:53","nodeType":"YulIdentifier","src":"11291:51:53"},"nativeSrc":"11291:84:53","nodeType":"YulFunctionCall","src":"11291:84:53"},"variableNames":[{"name":"value0","nativeSrc":"11281:6:53","nodeType":"YulIdentifier","src":"11281:6:53"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr","nativeSrc":"10841:551:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10908:9:53","nodeType":"YulTypedName","src":"10908:9:53","type":""},{"name":"dataEnd","nativeSrc":"10919:7:53","nodeType":"YulTypedName","src":"10919:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10931:6:53","nodeType":"YulTypedName","src":"10931:6:53","type":""}],"src":"10841:551:53"},{"body":{"nativeSrc":"11426:152:53","nodeType":"YulBlock","src":"11426:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11443:1:53","nodeType":"YulLiteral","src":"11443:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11446:77:53","nodeType":"YulLiteral","src":"11446:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11436:6:53","nodeType":"YulIdentifier","src":"11436:6:53"},"nativeSrc":"11436:88:53","nodeType":"YulFunctionCall","src":"11436:88:53"},"nativeSrc":"11436:88:53","nodeType":"YulExpressionStatement","src":"11436:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11540:1:53","nodeType":"YulLiteral","src":"11540:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11543:4:53","nodeType":"YulLiteral","src":"11543:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"11533:6:53","nodeType":"YulIdentifier","src":"11533:6:53"},"nativeSrc":"11533:15:53","nodeType":"YulFunctionCall","src":"11533:15:53"},"nativeSrc":"11533:15:53","nodeType":"YulExpressionStatement","src":"11533:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11564:1:53","nodeType":"YulLiteral","src":"11564:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11567:4:53","nodeType":"YulLiteral","src":"11567:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11557:6:53","nodeType":"YulIdentifier","src":"11557:6:53"},"nativeSrc":"11557:15:53","nodeType":"YulFunctionCall","src":"11557:15:53"},"nativeSrc":"11557:15:53","nodeType":"YulExpressionStatement","src":"11557:15:53"}]},"name":"panic_error_0x11","nativeSrc":"11398:180:53","nodeType":"YulFunctionDefinition","src":"11398:180:53"},{"body":{"nativeSrc":"11627:190:53","nodeType":"YulBlock","src":"11627:190:53","statements":[{"nativeSrc":"11637:33:53","nodeType":"YulAssignment","src":"11637:33:53","value":{"arguments":[{"name":"value","nativeSrc":"11664:5:53","nodeType":"YulIdentifier","src":"11664:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11646:17:53","nodeType":"YulIdentifier","src":"11646:17:53"},"nativeSrc":"11646:24:53","nodeType":"YulFunctionCall","src":"11646:24:53"},"variableNames":[{"name":"value","nativeSrc":"11637:5:53","nodeType":"YulIdentifier","src":"11637:5:53"}]},{"body":{"nativeSrc":"11760:22:53","nodeType":"YulBlock","src":"11760:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11762:16:53","nodeType":"YulIdentifier","src":"11762:16:53"},"nativeSrc":"11762:18:53","nodeType":"YulFunctionCall","src":"11762:18:53"},"nativeSrc":"11762:18:53","nodeType":"YulExpressionStatement","src":"11762:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"11685:5:53","nodeType":"YulIdentifier","src":"11685:5:53"},{"kind":"number","nativeSrc":"11692:66:53","nodeType":"YulLiteral","src":"11692:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"11682:2:53","nodeType":"YulIdentifier","src":"11682:2:53"},"nativeSrc":"11682:77:53","nodeType":"YulFunctionCall","src":"11682:77:53"},"nativeSrc":"11679:103:53","nodeType":"YulIf","src":"11679:103:53"},{"nativeSrc":"11791:20:53","nodeType":"YulAssignment","src":"11791:20:53","value":{"arguments":[{"name":"value","nativeSrc":"11802:5:53","nodeType":"YulIdentifier","src":"11802:5:53"},{"kind":"number","nativeSrc":"11809:1:53","nodeType":"YulLiteral","src":"11809:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11798:3:53","nodeType":"YulIdentifier","src":"11798:3:53"},"nativeSrc":"11798:13:53","nodeType":"YulFunctionCall","src":"11798:13:53"},"variableNames":[{"name":"ret","nativeSrc":"11791:3:53","nodeType":"YulIdentifier","src":"11791:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"11584:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11613:5:53","nodeType":"YulTypedName","src":"11613:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"11623:3:53","nodeType":"YulTypedName","src":"11623:3:53","type":""}],"src":"11584:233:53"},{"body":{"nativeSrc":"11949:206:53","nodeType":"YulBlock","src":"11949:206:53","statements":[{"nativeSrc":"11959:26:53","nodeType":"YulAssignment","src":"11959:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11971:9:53","nodeType":"YulIdentifier","src":"11971:9:53"},{"kind":"number","nativeSrc":"11982:2:53","nodeType":"YulLiteral","src":"11982:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11967:3:53","nodeType":"YulIdentifier","src":"11967:3:53"},"nativeSrc":"11967:18:53","nodeType":"YulFunctionCall","src":"11967:18:53"},"variableNames":[{"name":"tail","nativeSrc":"11959:4:53","nodeType":"YulIdentifier","src":"11959:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12039:6:53","nodeType":"YulIdentifier","src":"12039:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12052:9:53","nodeType":"YulIdentifier","src":"12052:9:53"},{"kind":"number","nativeSrc":"12063:1:53","nodeType":"YulLiteral","src":"12063:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12048:3:53","nodeType":"YulIdentifier","src":"12048:3:53"},"nativeSrc":"12048:17:53","nodeType":"YulFunctionCall","src":"12048:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11995:43:53","nodeType":"YulIdentifier","src":"11995:43:53"},"nativeSrc":"11995:71:53","nodeType":"YulFunctionCall","src":"11995:71:53"},"nativeSrc":"11995:71:53","nodeType":"YulExpressionStatement","src":"11995:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12120:6:53","nodeType":"YulIdentifier","src":"12120:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"12133:9:53","nodeType":"YulIdentifier","src":"12133:9:53"},{"kind":"number","nativeSrc":"12144:2:53","nodeType":"YulLiteral","src":"12144:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12129:3:53","nodeType":"YulIdentifier","src":"12129:3:53"},"nativeSrc":"12129:18:53","nodeType":"YulFunctionCall","src":"12129:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12076:43:53","nodeType":"YulIdentifier","src":"12076:43:53"},"nativeSrc":"12076:72:53","nodeType":"YulFunctionCall","src":"12076:72:53"},"nativeSrc":"12076:72:53","nodeType":"YulExpressionStatement","src":"12076:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"11823:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11913:9:53","nodeType":"YulTypedName","src":"11913:9:53","type":""},{"name":"value1","nativeSrc":"11925:6:53","nodeType":"YulTypedName","src":"11925:6:53","type":""},{"name":"value0","nativeSrc":"11933:6:53","nodeType":"YulTypedName","src":"11933:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11944:4:53","nodeType":"YulTypedName","src":"11944:4:53","type":""}],"src":"11823:332:53"},{"body":{"nativeSrc":"12274:34:53","nodeType":"YulBlock","src":"12274:34:53","statements":[{"nativeSrc":"12284:18:53","nodeType":"YulAssignment","src":"12284:18:53","value":{"name":"pos","nativeSrc":"12299:3:53","nodeType":"YulIdentifier","src":"12299:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"12284:11:53","nodeType":"YulIdentifier","src":"12284:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12161:147:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12246:3:53","nodeType":"YulTypedName","src":"12246:3:53","type":""},{"name":"length","nativeSrc":"12251:6:53","nodeType":"YulTypedName","src":"12251:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12262:11:53","nodeType":"YulTypedName","src":"12262:11:53","type":""}],"src":"12161:147:53"},{"body":{"nativeSrc":"12422:278:53","nodeType":"YulBlock","src":"12422:278:53","statements":[{"nativeSrc":"12432:52:53","nodeType":"YulVariableDeclaration","src":"12432:52:53","value":{"arguments":[{"name":"value","nativeSrc":"12478:5:53","nodeType":"YulIdentifier","src":"12478:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"12446:31:53","nodeType":"YulIdentifier","src":"12446:31:53"},"nativeSrc":"12446:38:53","nodeType":"YulFunctionCall","src":"12446:38:53"},"variables":[{"name":"length","nativeSrc":"12436:6:53","nodeType":"YulTypedName","src":"12436:6:53","type":""}]},{"nativeSrc":"12493:95:53","nodeType":"YulAssignment","src":"12493:95:53","value":{"arguments":[{"name":"pos","nativeSrc":"12576:3:53","nodeType":"YulIdentifier","src":"12576:3:53"},{"name":"length","nativeSrc":"12581:6:53","nodeType":"YulIdentifier","src":"12581:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12500:75:53","nodeType":"YulIdentifier","src":"12500:75:53"},"nativeSrc":"12500:88:53","nodeType":"YulFunctionCall","src":"12500:88:53"},"variableNames":[{"name":"pos","nativeSrc":"12493:3:53","nodeType":"YulIdentifier","src":"12493:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12636:5:53","nodeType":"YulIdentifier","src":"12636:5:53"},{"kind":"number","nativeSrc":"12643:4:53","nodeType":"YulLiteral","src":"12643:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12632:3:53","nodeType":"YulIdentifier","src":"12632:3:53"},"nativeSrc":"12632:16:53","nodeType":"YulFunctionCall","src":"12632:16:53"},{"name":"pos","nativeSrc":"12650:3:53","nodeType":"YulIdentifier","src":"12650:3:53"},{"name":"length","nativeSrc":"12655:6:53","nodeType":"YulIdentifier","src":"12655:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12597:34:53","nodeType":"YulIdentifier","src":"12597:34:53"},"nativeSrc":"12597:65:53","nodeType":"YulFunctionCall","src":"12597:65:53"},"nativeSrc":"12597:65:53","nodeType":"YulExpressionStatement","src":"12597:65:53"},{"nativeSrc":"12671:23:53","nodeType":"YulAssignment","src":"12671:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"12682:3:53","nodeType":"YulIdentifier","src":"12682:3:53"},{"name":"length","nativeSrc":"12687:6:53","nodeType":"YulIdentifier","src":"12687:6:53"}],"functionName":{"name":"add","nativeSrc":"12678:3:53","nodeType":"YulIdentifier","src":"12678:3:53"},"nativeSrc":"12678:16:53","nodeType":"YulFunctionCall","src":"12678:16:53"},"variableNames":[{"name":"end","nativeSrc":"12671:3:53","nodeType":"YulIdentifier","src":"12671:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12314:386:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12403:5:53","nodeType":"YulTypedName","src":"12403:5:53","type":""},{"name":"pos","nativeSrc":"12410:3:53","nodeType":"YulTypedName","src":"12410:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12418:3:53","nodeType":"YulTypedName","src":"12418:3:53","type":""}],"src":"12314:386:53"},{"body":{"nativeSrc":"12840:137:53","nodeType":"YulBlock","src":"12840:137:53","statements":[{"nativeSrc":"12851:100:53","nodeType":"YulAssignment","src":"12851:100:53","value":{"arguments":[{"name":"value0","nativeSrc":"12938:6:53","nodeType":"YulIdentifier","src":"12938:6:53"},{"name":"pos","nativeSrc":"12947:3:53","nodeType":"YulIdentifier","src":"12947:3:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12858:79:53","nodeType":"YulIdentifier","src":"12858:79:53"},"nativeSrc":"12858:93:53","nodeType":"YulFunctionCall","src":"12858:93:53"},"variableNames":[{"name":"pos","nativeSrc":"12851:3:53","nodeType":"YulIdentifier","src":"12851:3:53"}]},{"nativeSrc":"12961:10:53","nodeType":"YulAssignment","src":"12961:10:53","value":{"name":"pos","nativeSrc":"12968:3:53","nodeType":"YulIdentifier","src":"12968:3:53"},"variableNames":[{"name":"end","nativeSrc":"12961:3:53","nodeType":"YulIdentifier","src":"12961:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12706:271:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12819:3:53","nodeType":"YulTypedName","src":"12819:3:53","type":""},{"name":"value0","nativeSrc":"12825:6:53","nodeType":"YulTypedName","src":"12825:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12836:3:53","nodeType":"YulTypedName","src":"12836:3:53","type":""}],"src":"12706:271:53"},{"body":{"nativeSrc":"13025:52:53","nodeType":"YulBlock","src":"13025:52:53","statements":[{"nativeSrc":"13035:35:53","nodeType":"YulAssignment","src":"13035:35:53","value":{"arguments":[{"kind":"number","nativeSrc":"13060:2:53","nodeType":"YulLiteral","src":"13060:2:53","type":"","value":"96"},{"name":"value","nativeSrc":"13064:5:53","nodeType":"YulIdentifier","src":"13064:5:53"}],"functionName":{"name":"shl","nativeSrc":"13056:3:53","nodeType":"YulIdentifier","src":"13056:3:53"},"nativeSrc":"13056:14:53","nodeType":"YulFunctionCall","src":"13056:14:53"},"variableNames":[{"name":"newValue","nativeSrc":"13035:8:53","nodeType":"YulIdentifier","src":"13035:8:53"}]}]},"name":"shift_left_96","nativeSrc":"12983:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13006:5:53","nodeType":"YulTypedName","src":"13006:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"13016:8:53","nodeType":"YulTypedName","src":"13016:8:53","type":""}],"src":"12983:94:53"},{"body":{"nativeSrc":"13130:47:53","nodeType":"YulBlock","src":"13130:47:53","statements":[{"nativeSrc":"13140:31:53","nodeType":"YulAssignment","src":"13140:31:53","value":{"arguments":[{"name":"value","nativeSrc":"13165:5:53","nodeType":"YulIdentifier","src":"13165:5:53"}],"functionName":{"name":"shift_left_96","nativeSrc":"13151:13:53","nodeType":"YulIdentifier","src":"13151:13:53"},"nativeSrc":"13151:20:53","nodeType":"YulFunctionCall","src":"13151:20:53"},"variableNames":[{"name":"aligned","nativeSrc":"13140:7:53","nodeType":"YulIdentifier","src":"13140:7:53"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"13083:94:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13112:5:53","nodeType":"YulTypedName","src":"13112:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13122:7:53","nodeType":"YulTypedName","src":"13122:7:53","type":""}],"src":"13083:94:53"},{"body":{"nativeSrc":"13230:53:53","nodeType":"YulBlock","src":"13230:53:53","statements":[{"nativeSrc":"13240:37:53","nodeType":"YulAssignment","src":"13240:37:53","value":{"arguments":[{"name":"value","nativeSrc":"13271:5:53","nodeType":"YulIdentifier","src":"13271:5:53"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"13251:19:53","nodeType":"YulIdentifier","src":"13251:19:53"},"nativeSrc":"13251:26:53","nodeType":"YulFunctionCall","src":"13251:26:53"},"variableNames":[{"name":"aligned","nativeSrc":"13240:7:53","nodeType":"YulIdentifier","src":"13240:7:53"}]}]},"name":"leftAlign_t_address","nativeSrc":"13183:100:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13212:5:53","nodeType":"YulTypedName","src":"13212:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13222:7:53","nodeType":"YulTypedName","src":"13222:7:53","type":""}],"src":"13183:100:53"},{"body":{"nativeSrc":"13372:74:53","nodeType":"YulBlock","src":"13372:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13389:3:53","nodeType":"YulIdentifier","src":"13389:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13432:5:53","nodeType":"YulIdentifier","src":"13432:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"13414:17:53","nodeType":"YulIdentifier","src":"13414:17:53"},"nativeSrc":"13414:24:53","nodeType":"YulFunctionCall","src":"13414:24:53"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"13394:19:53","nodeType":"YulIdentifier","src":"13394:19:53"},"nativeSrc":"13394:45:53","nodeType":"YulFunctionCall","src":"13394:45:53"}],"functionName":{"name":"mstore","nativeSrc":"13382:6:53","nodeType":"YulIdentifier","src":"13382:6:53"},"nativeSrc":"13382:58:53","nodeType":"YulFunctionCall","src":"13382:58:53"},"nativeSrc":"13382:58:53","nodeType":"YulExpressionStatement","src":"13382:58:53"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13289:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13360:5:53","nodeType":"YulTypedName","src":"13360:5:53","type":""},{"name":"pos","nativeSrc":"13367:3:53","nodeType":"YulTypedName","src":"13367:3:53","type":""}],"src":"13289:157:53"},{"body":{"nativeSrc":"13499:32:53","nodeType":"YulBlock","src":"13499:32:53","statements":[{"nativeSrc":"13509:16:53","nodeType":"YulAssignment","src":"13509:16:53","value":{"name":"value","nativeSrc":"13520:5:53","nodeType":"YulIdentifier","src":"13520:5:53"},"variableNames":[{"name":"aligned","nativeSrc":"13509:7:53","nodeType":"YulIdentifier","src":"13509:7:53"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"13452:79:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13481:5:53","nodeType":"YulTypedName","src":"13481:5:53","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13491:7:53","nodeType":"YulTypedName","src":"13491:7:53","type":""}],"src":"13452:79:53"},{"body":{"nativeSrc":"13620:74:53","nodeType":"YulBlock","src":"13620:74:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13637:3:53","nodeType":"YulIdentifier","src":"13637:3:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13680:5:53","nodeType":"YulIdentifier","src":"13680:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13662:17:53","nodeType":"YulIdentifier","src":"13662:17:53"},"nativeSrc":"13662:24:53","nodeType":"YulFunctionCall","src":"13662:24:53"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"13642:19:53","nodeType":"YulIdentifier","src":"13642:19:53"},"nativeSrc":"13642:45:53","nodeType":"YulFunctionCall","src":"13642:45:53"}],"functionName":{"name":"mstore","nativeSrc":"13630:6:53","nodeType":"YulIdentifier","src":"13630:6:53"},"nativeSrc":"13630:58:53","nodeType":"YulFunctionCall","src":"13630:58:53"},"nativeSrc":"13630:58:53","nodeType":"YulExpressionStatement","src":"13630:58:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"13537:157:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13608:5:53","nodeType":"YulTypedName","src":"13608:5:53","type":""},{"name":"pos","nativeSrc":"13615:3:53","nodeType":"YulTypedName","src":"13615:3:53","type":""}],"src":"13537:157:53"},{"body":{"nativeSrc":"13872:366:53","nodeType":"YulBlock","src":"13872:366:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13945:6:53","nodeType":"YulIdentifier","src":"13945:6:53"},{"name":"pos","nativeSrc":"13954:3:53","nodeType":"YulIdentifier","src":"13954:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13883:61:53","nodeType":"YulIdentifier","src":"13883:61:53"},"nativeSrc":"13883:75:53","nodeType":"YulFunctionCall","src":"13883:75:53"},"nativeSrc":"13883:75:53","nodeType":"YulExpressionStatement","src":"13883:75:53"},{"nativeSrc":"13967:19:53","nodeType":"YulAssignment","src":"13967:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"13978:3:53","nodeType":"YulIdentifier","src":"13978:3:53"},{"kind":"number","nativeSrc":"13983:2:53","nodeType":"YulLiteral","src":"13983:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"13974:3:53","nodeType":"YulIdentifier","src":"13974:3:53"},"nativeSrc":"13974:12:53","nodeType":"YulFunctionCall","src":"13974:12:53"},"variableNames":[{"name":"pos","nativeSrc":"13967:3:53","nodeType":"YulIdentifier","src":"13967:3:53"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14058:6:53","nodeType":"YulIdentifier","src":"14058:6:53"},{"name":"pos","nativeSrc":"14067:3:53","nodeType":"YulIdentifier","src":"14067:3:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13996:61:53","nodeType":"YulIdentifier","src":"13996:61:53"},"nativeSrc":"13996:75:53","nodeType":"YulFunctionCall","src":"13996:75:53"},"nativeSrc":"13996:75:53","nodeType":"YulExpressionStatement","src":"13996:75:53"},{"nativeSrc":"14080:19:53","nodeType":"YulAssignment","src":"14080:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"14091:3:53","nodeType":"YulIdentifier","src":"14091:3:53"},{"kind":"number","nativeSrc":"14096:2:53","nodeType":"YulLiteral","src":"14096:2:53","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"14087:3:53","nodeType":"YulIdentifier","src":"14087:3:53"},"nativeSrc":"14087:12:53","nodeType":"YulFunctionCall","src":"14087:12:53"},"variableNames":[{"name":"pos","nativeSrc":"14080:3:53","nodeType":"YulIdentifier","src":"14080:3:53"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"14171:6:53","nodeType":"YulIdentifier","src":"14171:6:53"},{"name":"pos","nativeSrc":"14180:3:53","nodeType":"YulIdentifier","src":"14180:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"14109:61:53","nodeType":"YulIdentifier","src":"14109:61:53"},"nativeSrc":"14109:75:53","nodeType":"YulFunctionCall","src":"14109:75:53"},"nativeSrc":"14109:75:53","nodeType":"YulExpressionStatement","src":"14109:75:53"},{"nativeSrc":"14193:19:53","nodeType":"YulAssignment","src":"14193:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"14204:3:53","nodeType":"YulIdentifier","src":"14204:3:53"},{"kind":"number","nativeSrc":"14209:2:53","nodeType":"YulLiteral","src":"14209:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14200:3:53","nodeType":"YulIdentifier","src":"14200:3:53"},"nativeSrc":"14200:12:53","nodeType":"YulFunctionCall","src":"14200:12:53"},"variableNames":[{"name":"pos","nativeSrc":"14193:3:53","nodeType":"YulIdentifier","src":"14193:3:53"}]},{"nativeSrc":"14222:10:53","nodeType":"YulAssignment","src":"14222:10:53","value":{"name":"pos","nativeSrc":"14229:3:53","nodeType":"YulIdentifier","src":"14229:3:53"},"variableNames":[{"name":"end","nativeSrc":"14222:3:53","nodeType":"YulIdentifier","src":"14222:3:53"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"13700:538:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13835:3:53","nodeType":"YulTypedName","src":"13835:3:53","type":""},{"name":"value2","nativeSrc":"13841:6:53","nodeType":"YulTypedName","src":"13841:6:53","type":""},{"name":"value1","nativeSrc":"13849:6:53","nodeType":"YulTypedName","src":"13849:6:53","type":""},{"name":"value0","nativeSrc":"13857:6:53","nodeType":"YulTypedName","src":"13857:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13868:3:53","nodeType":"YulTypedName","src":"13868:3:53","type":""}],"src":"13700:538:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_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 revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct PointsIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$17281_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // venue\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // quantity\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$17281_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$17281_memory_ptr(add(headStart, offset), dataEnd)\n }\n\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 // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$17186_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$17186_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function 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_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 array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c8063a4d66daf1161009f578063ea3d508a11610063578063ea3d508a1461035b578063f04e283e14610385578063f1c30ec0146103a1578063f2fde38b146103dd578063fee81cf4146103f957610113565b8063a4d66daf14610253578063c63ff8dd1461027d578063c884ef83146102b9578063dcc59b6f146102f5578063e18e65081461031f57610113565b80634e7165a2116100e65780634e7165a2146101af57806354d1f13d146101eb578063715018a6146101f55780638da5cb5b146101ff578063a270a7371461022957610113565b806301ffc9a71461011757806317fc45e214610153578063256929621461017d578063439fab9114610187575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610ec8565b610435565b60405161014a9190610f0d565b60405180910390f35b34801561015e575f80fd5b506101676104ae565b6040516101749190610f3e565b60405180910390f35b6101856104b4565b005b348015610192575f80fd5b506101ad60048036038101906101a89190610fb8565b610505565b005b3480156101ba575f80fd5b506101d560048036038101906101d09190610fb8565b61065d565b6040516101e29190611073565b60405180910390f35b6101f36106b4565b005b6101fd6106ed565b005b34801561020a575f80fd5b50610213610700565b60405161022091906110d2565b60405180910390f35b348015610234575f80fd5b5061023d610728565b60405161024a91906110d2565b60405180910390f35b34801561025e575f80fd5b5061026761074d565b6040516102749190610f3e565b60405180910390f35b348015610288575f80fd5b506102a3600480360381019061029e9190610fb8565b610753565b6040516102b09190610f0d565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190611115565b610a06565b6040516102ec9190610f0d565b60405180910390f35b348015610300575f80fd5b50610309610a23565b6040516103169190610f3e565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190610fb8565b610a28565b6040516103529190610f0d565b60405180910390f35b348015610366575f80fd5b5061036f610a50565b60405161037c919061114f565b60405180910390f35b61039f600480360381019061039a9190611115565b610a62565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190610fb8565b610aa0565b6040516103d49190610f0d565b60405180910390f35b6103f760048036038101906103f29190611115565b610ad3565b005b348015610404575f80fd5b5061041f600480360381019061041a9190611115565b610afc565b60405161042c9190610f3e565b60405180910390f35b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104a757506104a682610b15565b5b9050919050565b60035481565b5f6104bd610b8e565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f61050e610b98565b905080546003825580156105405760018160011c14303b106105375763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105519190611287565b90505f8160400151148061056857505f8160600151145b1561059f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015160055f6101000a81548163ffffffff021916908360e01c02179055508060400151600381905550806060015160048190555061062233610bc1565b508015610658576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff8111156106795761067861116c565b5b6040519080825280601f01601f1916602001820160405280156106ab5781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6106f5610c97565b6106fe5f610cce565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b5f61075c610c97565b5f838381019061076c91906113cb565b905061077a815f0151610d94565b6107b0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f808154809291906107c19061143f565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900460e01b835f015160035460405160240161087d929190611486565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108e791906114e7565b5f604051808303815f865af19150503d805f8114610920576040519150601f19603f3d011682016040523d82523d5f602084013e610925565b606091505b5050905080610960576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01516003546040516020016109d693929190611562565b6040516020818303038152906040526040516109f29190611073565b60405180910390a260019250505092915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610a3991906113cb565b9050610a47815f0151610d94565b91505092915050565b60055f9054906101000a900460e01b81565b610a6a610c97565b63389a75e1600c52805f526020600c208054421115610a9057636f5e88185f526004601cfd5b5f815550610a9d81610cce565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610adb610c97565b8060601b610af057637448fbae5f526004601cfd5b610af981610cce565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b875750610b8682610df5565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bc9610e5e565b15610c41577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c94565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ccc576382b429005f526004601cfd5b565b610cd6610e5e565b15610d3b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d91565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610dee57506004545f54105b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ea781610e73565b8114610eb1575f80fd5b50565b5f81359050610ec281610e9e565b92915050565b5f60208284031215610edd57610edc610e6b565b5b5f610eea84828501610eb4565b91505092915050565b5f8115159050919050565b610f0781610ef3565b82525050565b5f602082019050610f205f830184610efe565b92915050565b5f819050919050565b610f3881610f26565b82525050565b5f602082019050610f515f830184610f2f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f7857610f77610f57565b5b8235905067ffffffffffffffff811115610f9557610f94610f5b565b5b602083019150836001820283011115610fb157610fb0610f5f565b5b9250929050565b5f8060208385031215610fce57610fcd610e6b565b5b5f83013567ffffffffffffffff811115610feb57610fea610e6f565b5b610ff785828601610f63565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61104582611003565b61104f818561100d565b935061105f81856020860161101d565b6110688161102b565b840191505092915050565b5f6020820190508181035f83015261108b818461103b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110bc82611093565b9050919050565b6110cc816110b2565b82525050565b5f6020820190506110e55f8301846110c3565b92915050565b6110f4816110b2565b81146110fe575f80fd5b50565b5f8135905061110f816110eb565b92915050565b5f6020828403121561112a57611129610e6b565b5b5f61113784828501611101565b91505092915050565b61114981610e73565b82525050565b5f6020820190506111625f830184611140565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111a28261102b565b810181811067ffffffffffffffff821117156111c1576111c061116c565b5b80604052505050565b5f6111d3610e62565b90506111df8282611199565b919050565b5f80fd5b6111f181610f26565b81146111fb575f80fd5b50565b5f8135905061120c816111e8565b92915050565b5f6080828403121561122757611226611168565b5b61123160806111ca565b90505f61124084828501611101565b5f83015250602061125384828501610eb4565b6020830152506040611267848285016111fe565b604083015250606061127b848285016111fe565b60608301525092915050565b5f6080828403121561129c5761129b610e6b565b5b5f6112a984828501611212565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156112d0576112cf61116c565b5b6112d98261102b565b9050602081019050919050565b828183375f83830152505050565b5f611306611301846112b6565b6111ca565b905082815260208101848484011115611322576113216112b2565b5b61132d8482856112e6565b509392505050565b5f82601f83011261134957611348610f57565b5b81356113598482602086016112f4565b91505092915050565b5f6040828403121561137757611376611168565b5b61138160406111ca565b90505f61139084828501611101565b5f83015250602082013567ffffffffffffffff8111156113b3576113b26111e4565b5b6113bf84828501611335565b60208301525092915050565b5f602082840312156113e0576113df610e6b565b5b5f82013567ffffffffffffffff8111156113fd576113fc610e6f565b5b61140984828501611362565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61144982610f26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361147b5761147a611412565b5b600182019050919050565b5f6040820190506114995f8301856110c3565b6114a66020830184610f2f565b9392505050565b5f81905092915050565b5f6114c182611003565b6114cb81856114ad565b93506114db81856020860161101d565b80840191505092915050565b5f6114f282846114b7565b915081905092915050565b5f8160601b9050919050565b5f611513826114fd565b9050919050565b5f61152482611509565b9050919050565b61153c611537826110b2565b61151a565b82525050565b5f819050919050565b61155c61155782610f26565b611542565b82525050565b5f61156d828661152b565b60148201915061157d828561152b565b60148201915061158d828461154b565b60208201915081905094935050505056fea264697066735822122044670bf79133237915832c922e2e0a39e868512253a569f3922fb3609fd6e1a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA4D66DAF GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA3D508A GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3F9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x2B9 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x2F5 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x31F JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x4E7165A2 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xA270A737 EQ PUSH2 0x229 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x17FC45E2 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x187 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xEC8 JUMP JUMPDEST PUSH2 0x435 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH2 0x4AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x174 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x4B4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x505 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F3 PUSH2 0x6B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x6ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x728 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x267 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA06 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EC SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x309 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x316 SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x345 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x340 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x36F PUSH2 0xA50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x114F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xA62 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x41A SWAP2 SWAP1 PUSH2 0x1115 JUMP JUMPDEST PUSH2 0xAFC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0xF3E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x8DBD4BFC00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4A7 JUMPI POP PUSH2 0x4A6 DUP3 PUSH2 0xB15 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0xB8E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x50E PUSH2 0xB98 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x540 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x537 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x1287 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x568 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x5 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x622 CALLER PUSH2 0xBC1 JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x679 JUMPI PUSH2 0x678 PUSH2 0x116C 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 0x6AB 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x6F5 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0x6FE PUSH0 PUSH2 0xCCE JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x75C PUSH2 0xC97 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x76C SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0x77A DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x7C1 SWAP1 PUSH2 0x143F JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP1 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP4 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x87D SWAP3 SWAP2 SWAP1 PUSH2 0x1486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x14E7 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x920 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x925 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH32 0x360E42E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x9F2 SWAP2 SWAP1 PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA39 SWAP2 SWAP1 PUSH2 0x13CB JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 DUP2 PUSH0 ADD MLOAD PUSH2 0xD94 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xA6A PUSH2 0xC97 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xA90 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xA9D DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xADB PUSH2 0xC97 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xAF0 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xAF9 DUP2 PUSH2 0xCCE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB87 JUMPI POP PUSH2 0xB86 DUP3 PUSH2 0xDF5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBC9 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xC41 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xC03 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC94 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xCCC JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xCD6 PUSH2 0xE5E JUMP JUMPDEST ISZERO PUSH2 0xD3B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xD91 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0xDEE JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA7 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xEB1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEC2 DUP2 PUSH2 0xE9E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEDD JUMPI PUSH2 0xEDC PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEEA DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF07 DUP2 PUSH2 0xEF3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF20 PUSH0 DUP4 ADD DUP5 PUSH2 0xEFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF38 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF51 PUSH0 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF78 JUMPI PUSH2 0xF77 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF95 JUMPI PUSH2 0xF94 PUSH2 0xF5B JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFB1 JUMPI PUSH2 0xFB0 PUSH2 0xF5F JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCE JUMPI PUSH2 0xFCD PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFEB JUMPI PUSH2 0xFEA PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0xFF7 DUP6 DUP3 DUP7 ADD PUSH2 0xF63 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1045 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x104F DUP2 DUP6 PUSH2 0x100D JUMP JUMPDEST SWAP4 POP PUSH2 0x105F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST PUSH2 0x1068 DUP2 PUSH2 0x102B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x108B DUP2 DUP5 PUSH2 0x103B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BC DUP3 PUSH2 0x1093 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10CC DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10E5 PUSH0 DUP4 ADD DUP5 PUSH2 0x10C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10F4 DUP2 PUSH2 0x10B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x10FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x110F DUP2 PUSH2 0x10EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x112A JUMPI PUSH2 0x1129 PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1137 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1149 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1162 PUSH0 DUP4 ADD DUP5 PUSH2 0x1140 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11A2 DUP3 PUSH2 0x102B JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11C1 JUMPI PUSH2 0x11C0 PUSH2 0x116C JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11D3 PUSH2 0xE62 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DF DUP3 DUP3 PUSH2 0x1199 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11F1 DUP2 PUSH2 0xF26 JUMP JUMPDEST DUP2 EQ PUSH2 0x11FB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x120C DUP2 PUSH2 0x11E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1227 JUMPI PUSH2 0x1226 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1231 PUSH1 0x80 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1240 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1253 DUP5 DUP3 DUP6 ADD PUSH2 0xEB4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1267 DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x127B DUP5 DUP3 DUP6 ADD PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x129C JUMPI PUSH2 0x129B PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12CF PUSH2 0x116C JUMP JUMPDEST JUMPDEST PUSH2 0x12D9 DUP3 PUSH2 0x102B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1306 PUSH2 0x1301 DUP5 PUSH2 0x12B6 JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1322 JUMPI PUSH2 0x1321 PUSH2 0x12B2 JUMP JUMPDEST JUMPDEST PUSH2 0x132D DUP5 DUP3 DUP6 PUSH2 0x12E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0xF57 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1359 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1377 JUMPI PUSH2 0x1376 PUSH2 0x1168 JUMP JUMPDEST JUMPDEST PUSH2 0x1381 PUSH1 0x40 PUSH2 0x11CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1390 DUP5 DUP3 DUP6 ADD PUSH2 0x1101 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13B3 JUMPI PUSH2 0x13B2 PUSH2 0x11E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13BF DUP5 DUP3 DUP6 ADD PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13DF PUSH2 0xE6B JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13FD JUMPI PUSH2 0x13FC PUSH2 0xE6F JUMP JUMPDEST JUMPDEST PUSH2 0x1409 DUP5 DUP3 DUP6 ADD PUSH2 0x1362 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1449 DUP3 PUSH2 0xF26 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x147B JUMPI PUSH2 0x147A PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1499 PUSH0 DUP4 ADD DUP6 PUSH2 0x10C3 JUMP JUMPDEST PUSH2 0x14A6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF2F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14C1 DUP3 PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x14CB DUP2 DUP6 PUSH2 0x14AD JUMP JUMPDEST SWAP4 POP PUSH2 0x14DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x101D JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14F2 DUP3 DUP5 PUSH2 0x14B7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1513 DUP3 PUSH2 0x14FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1524 DUP3 PUSH2 0x1509 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153C PUSH2 0x1537 DUP3 PUSH2 0x10B2 JUMP JUMPDEST PUSH2 0x151A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x155C PUSH2 0x1557 DUP3 PUSH2 0xF26 JUMP JUMPDEST PUSH2 0x1542 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x156D DUP3 DUP7 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x157D DUP3 DUP6 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x158D DUP3 DUP5 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO PUSH8 0xBF7913323791583 0x2C SWAP3 0x2E 0x2E EXP CODECOPY 0xE8 PUSH9 0x512253A569F3922FB3 PUSH1 0x9F 0xD6 0xE1 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"636:3613:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:208:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1008:23:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;1731:409:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3197:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;923:20:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1118;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2341:533;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1380:39:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3706:202:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1223:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2972:122:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:208:44;3051:4;3089:27;3074:42;;;:11;:42;;;;:82;;;;3120:36;3144:11;3120:23;:36::i;:::-;3074:82;3067:89;;2955:208;;;:::o;1008:23:45:-;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1731:409:45:-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1811:24:45::1;1849:5;;1838:32;;;;;;;:::i;:::-;1811:59;;1902:1;1884:5;:14;;;:19;:39;;;;1922:1;1907:5;:11;;;:16;1884:39;1880:86;;;1932:34;;;;;;;;;;;;;;1880:86;1985:5;:11;;;1977:5;;:19;;;;;;;;;;;;;;;;;;2017:5;:14;;;2006:8;;:25;;;;;;;;;;;;;;;;;;2052:5;:14;;;2041:8;:25;;;;2084:5;:11;;;2076:5;:19;;;;2105:28;2122:10;2105:16;:28::i;:::-;1801:339;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1731:409:45;;:::o;3197:128::-;3264:23;3316:1;3306:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3299:19;;3197:128;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;923:20:45:-;;;;;;;;;;;;;:::o;1118:::-;;;;:::o;2341:533::-;2415:4;12517:13:17;:11;:13::i;:::-;2431:26:45::1;2471:5;;2460:33;;;;;;;:::i;:::-;2431:62;;2508:27;2521:6;:13;;;2508:12;:27::i;:::-;2503:55;;2544:14;;;;;;;;;;;;;;2503:55;2569:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;2612:4;2587:7:::0;:22:::1;2595:6;:13;;;2587:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2628:12;2645:5;;;;;;;;;;;:10;;2679:8;;;;;;;;;;;2689:6;:13;;;2704:8;;2656:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2645:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2627:87;;;2729:7;2724:34;;2745:13;;;;;;;;;;;;;;2724:34;2782:6;:13;;;2774:72;;;2814:5;;;;;;;;;;;2821:6;:13;;;2836:8;;2797:48;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2774:72;;;;;;:::i;:::-;;;;;;;;2863:4;2856:11;;;;2341:533:::0;;;;:::o;1380:39:44:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;3706:202:45:-;3779:4;3795:26;3835:5;;3824:33;;;;;;;:::i;:::-;3795:62;;3874:27;3887:6;:13;;;3874:12;:27::i;:::-;3867:34;;;3706:202;;;;:::o;1223:22::-;;;;;;;;;;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2972:122:45:-;3037:4;3060:27;;;;;;;;;;;;;;8348:349:17;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;4114:133:45:-;4179:4;4203:7;:19;4211:10;4203:19;;;;;;;;;;;;;;;;;;;;;;;;;4202:20;:38;;;;;4235:5;;4226:6;;:14;4202:38;4195:45;;4114:133;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:117::-;2062:1;2059;2052:12;2076:117;2185:1;2182;2175:12;2199:117;2308:1;2305;2298:12;2335:552;2392:8;2402:6;2452:3;2445:4;2437:6;2433:17;2429:27;2419:122;;2460:79;;:::i;:::-;2419:122;2573:6;2560:20;2550:30;;2603:18;2595:6;2592:30;2589:117;;;2625:79;;:::i;:::-;2589:117;2739:4;2731:6;2727:17;2715:29;;2793:3;2785:4;2777:6;2773:17;2763:8;2759:32;2756:41;2753:128;;;2800:79;;:::i;:::-;2753:128;2335:552;;;;;:::o;2893:527::-;2963:6;2971;3020:2;3008:9;2999:7;2995:23;2991:32;2988:119;;;3026:79;;:::i;:::-;2988:119;3174:1;3163:9;3159:17;3146:31;3204:18;3196:6;3193:30;3190:117;;;3226:79;;:::i;:::-;3190:117;3339:64;3395:7;3386:6;3375:9;3371:22;3339:64;:::i;:::-;3321:82;;;;3117:296;2893:527;;;;;:::o;3426:98::-;3477:6;3511:5;3505:12;3495:22;;3426:98;;;:::o;3530:168::-;3613:11;3647:6;3642:3;3635:19;3687:4;3682:3;3678:14;3663:29;;3530:168;;;;:::o;3704:139::-;3793:6;3788:3;3783;3777:23;3834:1;3825:6;3820:3;3816:16;3809:27;3704:139;;;:::o;3849:102::-;3890:6;3941:2;3937:7;3932:2;3925:5;3921:14;3917:28;3907:38;;3849:102;;;:::o;3957:373::-;4043:3;4071:38;4103:5;4071:38;:::i;:::-;4125:70;4188:6;4183:3;4125:70;:::i;:::-;4118:77;;4204:65;4262:6;4257:3;4250:4;4243:5;4239:16;4204:65;:::i;:::-;4294:29;4316:6;4294:29;:::i;:::-;4289:3;4285:39;4278:46;;4047:283;3957:373;;;;:::o;4336:309::-;4447:4;4485:2;4474:9;4470:18;4462:26;;4534:9;4528:4;4524:20;4520:1;4509:9;4505:17;4498:47;4562:76;4633:4;4624:6;4562:76;:::i;:::-;4554:84;;4336:309;;;;:::o;4651:126::-;4688:7;4728:42;4721:5;4717:54;4706:65;;4651:126;;;:::o;4783:96::-;4820:7;4849:24;4867:5;4849:24;:::i;:::-;4838:35;;4783:96;;;:::o;4885:118::-;4972:24;4990:5;4972:24;:::i;:::-;4967:3;4960:37;4885:118;;:::o;5009:222::-;5102:4;5140:2;5129:9;5125:18;5117:26;;5153:71;5221:1;5210:9;5206:17;5197:6;5153:71;:::i;:::-;5009:222;;;;:::o;5237:122::-;5310:24;5328:5;5310:24;:::i;:::-;5303:5;5300:35;5290:63;;5349:1;5346;5339:12;5290:63;5237:122;:::o;5365:139::-;5411:5;5449:6;5436:20;5427:29;;5465:33;5492:5;5465:33;:::i;:::-;5365:139;;;;:::o;5510:329::-;5569:6;5618:2;5606:9;5597:7;5593:23;5589:32;5586:119;;;5624:79;;:::i;:::-;5586:119;5744:1;5769:53;5814:7;5805:6;5794:9;5790:22;5769:53;:::i;:::-;5759:63;;5715:117;5510:329;;;;:::o;5845:115::-;5930:23;5947:5;5930:23;:::i;:::-;5925:3;5918:36;5845:115;;:::o;5966:218::-;6057:4;6095:2;6084:9;6080:18;6072:26;;6108:69;6174:1;6163:9;6159:17;6150:6;6108:69;:::i;:::-;5966:218;;;;:::o;6190:117::-;6299:1;6296;6289:12;6313:180;6361:77;6358:1;6351:88;6458:4;6455:1;6448:15;6482:4;6479:1;6472:15;6499:281;6582:27;6604:4;6582:27;:::i;:::-;6574:6;6570:40;6712:6;6700:10;6697:22;6676:18;6664:10;6661:34;6658:62;6655:88;;;6723:18;;:::i;:::-;6655:88;6763:10;6759:2;6752:22;6542:238;6499:281;;:::o;6786:129::-;6820:6;6847:20;;:::i;:::-;6837:30;;6876:33;6904:4;6896:6;6876:33;:::i;:::-;6786:129;;;:::o;6921:117::-;7030:1;7027;7020:12;7044:122;7117:24;7135:5;7117:24;:::i;:::-;7110:5;7107:35;7097:63;;7156:1;7153;7146:12;7097:63;7044:122;:::o;7172:139::-;7218:5;7256:6;7243:20;7234:29;;7272:33;7299:5;7272:33;:::i;:::-;7172:139;;;;:::o;7359:910::-;7438:5;7482:4;7470:9;7465:3;7461:19;7457:30;7454:117;;;7490:79;;:::i;:::-;7454:117;7589:21;7605:4;7589:21;:::i;:::-;7580:30;;7670:1;7710:49;7755:3;7746:6;7735:9;7731:22;7710:49;:::i;:::-;7703:4;7696:5;7692:16;7685:75;7620:151;7834:2;7875:48;7919:3;7910:6;7899:9;7895:22;7875:48;:::i;:::-;7868:4;7861:5;7857:16;7850:74;7781:154;7998:2;8039:49;8084:3;8075:6;8064:9;8060:22;8039:49;:::i;:::-;8032:4;8025:5;8021:16;8014:75;7945:155;8160:2;8201:49;8246:3;8237:6;8226:9;8222:22;8201:49;:::i;:::-;8194:4;8187:5;8183:16;8176:75;8110:152;7359:910;;;;:::o;8275:390::-;8364:6;8413:3;8401:9;8392:7;8388:23;8384:33;8381:120;;;8420:79;;:::i;:::-;8381:120;8540:1;8565:83;8640:7;8631:6;8620:9;8616:22;8565:83;:::i;:::-;8555:93;;8511:147;8275:390;;;;:::o;8671:117::-;8780:1;8777;8770:12;8794:307;8855:4;8945:18;8937:6;8934:30;8931:56;;;8967:18;;:::i;:::-;8931:56;9005:29;9027:6;9005:29;:::i;:::-;8997:37;;9089:4;9083;9079:15;9071:23;;8794:307;;;:::o;9107:148::-;9205:6;9200:3;9195;9182:30;9246:1;9237:6;9232:3;9228:16;9221:27;9107:148;;;:::o;9261:423::-;9338:5;9363:65;9379:48;9420:6;9379:48;:::i;:::-;9363:65;:::i;:::-;9354:74;;9451:6;9444:5;9437:21;9489:4;9482:5;9478:16;9527:3;9518:6;9513:3;9509:16;9506:25;9503:112;;;9534:79;;:::i;:::-;9503:112;9624:54;9671:6;9666:3;9661;9624:54;:::i;:::-;9344:340;9261:423;;;;;:::o;9703:338::-;9758:5;9807:3;9800:4;9792:6;9788:17;9784:27;9774:122;;9815:79;;:::i;:::-;9774:122;9932:6;9919:20;9957:78;10031:3;10023:6;10016:4;10008:6;10004:17;9957:78;:::i;:::-;9948:87;;9764:277;9703:338;;;;:::o;10084:751::-;10164:5;10208:4;10196:9;10191:3;10187:19;10183:30;10180:117;;;10216:79;;:::i;:::-;10180:117;10315:21;10331:4;10315:21;:::i;:::-;10306:30;;10397:1;10437:49;10482:3;10473:6;10462:9;10458:22;10437:49;:::i;:::-;10430:4;10423:5;10419:16;10412:75;10346:152;10585:2;10574:9;10570:18;10557:32;10616:18;10608:6;10605:30;10602:117;;;10638:79;;:::i;:::-;10602:117;10758:58;10812:3;10803:6;10792:9;10788:22;10758:58;:::i;:::-;10751:4;10744:5;10740:16;10733:84;10508:320;10084:751;;;;:::o;10841:551::-;10931:6;10980:2;10968:9;10959:7;10955:23;10951:32;10948:119;;;10986:79;;:::i;:::-;10948:119;11134:1;11123:9;11119:17;11106:31;11164:18;11156:6;11153:30;11150:117;;;11186:79;;:::i;:::-;11150:117;11291:84;11367:7;11358:6;11347:9;11343:22;11291:84;:::i;:::-;11281:94;;11077:308;10841:551;;;;:::o;11398:180::-;11446:77;11443:1;11436:88;11543:4;11540:1;11533:15;11567:4;11564:1;11557:15;11584:233;11623:3;11646:24;11664:5;11646:24;:::i;:::-;11637:33;;11692:66;11685:5;11682:77;11679:103;;11762:18;;:::i;:::-;11679:103;11809:1;11802:5;11798:13;11791:20;;11584:233;;;:::o;11823:332::-;11944:4;11982:2;11971:9;11967:18;11959:26;;11995:71;12063:1;12052:9;12048:17;12039:6;11995:71;:::i;:::-;12076:72;12144:2;12133:9;12129:18;12120:6;12076:72;:::i;:::-;11823:332;;;;;:::o;12161:147::-;12262:11;12299:3;12284:18;;12161:147;;;;:::o;12314:386::-;12418:3;12446:38;12478:5;12446:38;:::i;:::-;12500:88;12581:6;12576:3;12500:88;:::i;:::-;12493:95;;12597:65;12655:6;12650:3;12643:4;12636:5;12632:16;12597:65;:::i;:::-;12687:6;12682:3;12678:16;12671:23;;12422:278;12314:386;;;;:::o;12706:271::-;12836:3;12858:93;12947:3;12938:6;12858:93;:::i;:::-;12851:100;;12968:3;12961:10;;12706:271;;;;:::o;12983:94::-;13016:8;13064:5;13060:2;13056:14;13035:35;;12983:94;;;:::o;13083:::-;13122:7;13151:20;13165:5;13151:20;:::i;:::-;13140:31;;13083:94;;;:::o;13183:100::-;13222:7;13251:26;13271:5;13251:26;:::i;:::-;13240:37;;13183:100;;;:::o;13289:157::-;13394:45;13414:24;13432:5;13414:24;:::i;:::-;13394:45;:::i;:::-;13389:3;13382:58;13289:157;;:::o;13452:79::-;13491:7;13520:5;13509:16;;13452:79;;;:::o;13537:157::-;13642:45;13662:24;13680:5;13662:24;:::i;:::-;13642:45;:::i;:::-;13637:3;13630:58;13537:157;;:::o;13700:538::-;13868:3;13883:75;13954:3;13945:6;13883:75;:::i;:::-;13983:2;13978:3;13974:12;13967:19;;13996:75;14067:3;14058:6;13996:75;:::i;:::-;14096:2;14091:3;14087:12;14080:19;;14109:75;14180:3;14171:6;14109:75;:::i;:::-;14209:2;14204:3;14200:12;14193:19;;14229:3;14222:10;;13700:538;;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","quantity()":"17fc45e2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","venue()":"a270a737"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quantity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"venue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not have already claimed the incentive; and - The maximum number of claims must not have been reached; and - This contract must be authorized to operate the points contract's issuance function\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed incentive parameters `(address points, uint256 quantity, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"budgetData\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Points Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new PointsIncentive\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"No token approvals are required for this incentive\"},\"quantity()\":{\"notice\":\"The quantity amount issued for each claim\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"selector()\":{\"notice\":\"The selector for the issuance function on the points contract\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"venue()\":{\"notice\":\"The address of the points contract\"}},\"notice\":\"A simple on-chain points incentive implementation that allows claiming of soulbound tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/PointsIncentive.sol\":\"PointsIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/incentives/PointsIncentive.sol\":{\"keccak256\":\"0x855fc567c7e53c28941f56e832836d20191b90a33823b6486a526294704b0021\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f7264eb62a7a3a0bbcbd6ce73c561ef04da6335b6062178efb8735bb403c75ed\",\"dweb:/ipfs/QmZnZ5Kg6mTvUThZ3rsFKHMQZNsGNUkqCKCvgRsHLR3BbR\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/shared/BoostError.sol":{"BoostError":{"abi":[{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"bytes4","name":"expectedInterface","type":"bytes4"},{"internalType":"address","name":"instance","type":"address"}],"name":"InvalidInstance","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Replayed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203a227a8cf7160fdc5e38b474be06acfea3185142e49dad6cb39fbcd8c3fc921f64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE 0x22 PUSH27 0x8CF7160FDC5E38B474BE06ACFEA3185142E49DAD6CB39FBCD8C3FC SWAP3 0x1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"301:1086:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203a227a8cf7160fdc5e38b474be06acfea3185142e49dad6cb39fbcd8c3fc921f64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE 0x22 PUSH27 0x8CF7160FDC5E38B474BE06ACFEA3185142E49DAD6CB39FBCD8C3FC SWAP3 0x1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"301:1086:46:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"expectedInterface\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"InvalidInstance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Replayed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"BoostError\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInstance(bytes4,address)\":[{\"notice\":\"Thrown when a non-conforming instance for a given type is encountered\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"Replayed(address,bytes32,bytes)\":[{\"notice\":\"Thrown when a previously used signature is replayed\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Standardized errors for the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/BoostError.sol\":\"BoostError\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]}},\"version\":1}"}},"contracts/shared/BoostLib.sol":{"BoostLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e27d8083a7d8974c7ad085df29284bd9369e7c0268f2844c220d20b82e00e65364736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PUSH30 0x8083A7D8974C7AD085DF29284BD9369E7C0268F2844C220D20B82E00E653 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"516:1288:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e27d8083a7d8974c7ad085df29284bd9369e7c0268f2844c220d20b82e00e65364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PUSH30 0x8083A7D8974C7AD085DF29284BD9369E7C0268F2844C220D20B82E00E653 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"516:1288:47:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/BoostLib.sol\":\"BoostLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0xdeb77431625a59540002b5fb055ff66ae2b242f35bc768d92148539b569430a6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://737bc5805067fbdc0c5830513a244ce4847bc18bff677d2f6cfbe32b51d3bc9c\",\"dweb:/ipfs/QmUEaZJTfzekumBoUB2ugifV77ZaWjJuYrtXUrkvPW7W9o\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0x13e8b03c0ae0448ee387dc30a0e3663f8b1f1ffa2cf2351bf32d687ad26b9cb4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99c3b306e8e9dbeda3759902f921a0effec8ad8cbb3133b3fc53caeae08c48d2\",\"dweb:/ipfs/QmQUmqzuo92SohBYKvQgSmUhdSvzr7KyqHZszU5dob6RmM\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0xd7eeb5a65153f832247c60961fdedcb89cdab4debef12e395e1c51f17a7bfb57\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c2088e277ce398c87c40bb9e13b8d7e3e16cbc294b19fb8cef115501bc140407\",\"dweb:/ipfs/QmR23hBkeWFAgEqBd4oDY1NgWnb6cJYxxYymRfTWZsyE9V\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x72eaa94510df1eb989d313532afb7122c0233686c15f7a6c62f6fad762e5eaa1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://592d7677269199ae30fae373bf10db1e641763e46dc374ce818e457f01333730\",\"dweb:/ipfs/QmNPpT4vGx6Z96Rb6GZe1sJGvYhLPuGtmfNJUvA6gHPqLa\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/shared/Cloneable.sol":{"Cloneable":{"abi":[{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"initialize(bytes)":"439fab91","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"title\":\"Cloneable\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A contract that can be cloned and initialized only once\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Cloneable.sol\":\"Cloneable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]}},\"version\":1}"}},"contracts/shared/Mocks.sol":{"MockERC1155":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","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":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17866":{"entryPoint":null,"id":17866,"parameterSlots":0,"returnSlots":0},"@_211":{"entryPoint":null,"id":211,"parameterSlots":1,"returnSlots":0},"@_setURI_828":{"entryPoint":91,"id":828,"parameterSlots":1,"returnSlots":0},"array_dataslot_t_string_storage":{"entryPoint":258,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":110,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":543,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":384,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":509,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":680,"id":null,"parameterSlots":2,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":276,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":210,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":653,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":393,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":625,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":165,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":120,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":435,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":291,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":613,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":485,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":303,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":444,"id":null,"parameterSlots":3,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":481,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:5231:53","nodeType":"YulBlock","src":"0:5231:53","statements":[{"body":{"nativeSrc":"66:40:53","nodeType":"YulBlock","src":"66:40:53","statements":[{"nativeSrc":"77:22:53","nodeType":"YulAssignment","src":"77:22:53","value":{"arguments":[{"name":"value","nativeSrc":"93:5:53","nodeType":"YulIdentifier","src":"93:5:53"}],"functionName":{"name":"mload","nativeSrc":"87:5:53","nodeType":"YulIdentifier","src":"87:5:53"},"nativeSrc":"87:12:53","nodeType":"YulFunctionCall","src":"87:12:53"},"variableNames":[{"name":"length","nativeSrc":"77:6:53","nodeType":"YulIdentifier","src":"77:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:53","nodeType":"YulTypedName","src":"49:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:53","nodeType":"YulTypedName","src":"59:6:53","type":""}],"src":"7:99:53"},{"body":{"nativeSrc":"140:152:53","nodeType":"YulBlock","src":"140:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"157:1:53","nodeType":"YulLiteral","src":"157:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"160:77:53","nodeType":"YulLiteral","src":"160:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"150:6:53","nodeType":"YulIdentifier","src":"150:6:53"},"nativeSrc":"150:88:53","nodeType":"YulFunctionCall","src":"150:88:53"},"nativeSrc":"150:88:53","nodeType":"YulExpressionStatement","src":"150:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254:1:53","nodeType":"YulLiteral","src":"254:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"257:4:53","nodeType":"YulLiteral","src":"257:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"247:6:53","nodeType":"YulIdentifier","src":"247:6:53"},"nativeSrc":"247:15:53","nodeType":"YulFunctionCall","src":"247:15:53"},"nativeSrc":"247:15:53","nodeType":"YulExpressionStatement","src":"247:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"278:1:53","nodeType":"YulLiteral","src":"278:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"281:4:53","nodeType":"YulLiteral","src":"281:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"271:6:53","nodeType":"YulIdentifier","src":"271:6:53"},"nativeSrc":"271:15:53","nodeType":"YulFunctionCall","src":"271:15:53"},"nativeSrc":"271:15:53","nodeType":"YulExpressionStatement","src":"271:15:53"}]},"name":"panic_error_0x41","nativeSrc":"112:180:53","nodeType":"YulFunctionDefinition","src":"112:180:53"},{"body":{"nativeSrc":"326:152:53","nodeType":"YulBlock","src":"326:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"343:1:53","nodeType":"YulLiteral","src":"343:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"346:77:53","nodeType":"YulLiteral","src":"346:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"336:6:53","nodeType":"YulIdentifier","src":"336:6:53"},"nativeSrc":"336:88:53","nodeType":"YulFunctionCall","src":"336:88:53"},"nativeSrc":"336:88:53","nodeType":"YulExpressionStatement","src":"336:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:53","nodeType":"YulLiteral","src":"440:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"443:4:53","nodeType":"YulLiteral","src":"443:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"433:6:53","nodeType":"YulIdentifier","src":"433:6:53"},"nativeSrc":"433:15:53","nodeType":"YulFunctionCall","src":"433:15:53"},"nativeSrc":"433:15:53","nodeType":"YulExpressionStatement","src":"433:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"464:1:53","nodeType":"YulLiteral","src":"464:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"467:4:53","nodeType":"YulLiteral","src":"467:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"457:6:53","nodeType":"YulIdentifier","src":"457:6:53"},"nativeSrc":"457:15:53","nodeType":"YulFunctionCall","src":"457:15:53"},"nativeSrc":"457:15:53","nodeType":"YulExpressionStatement","src":"457:15:53"}]},"name":"panic_error_0x22","nativeSrc":"298:180:53","nodeType":"YulFunctionDefinition","src":"298:180:53"},{"body":{"nativeSrc":"535:269:53","nodeType":"YulBlock","src":"535:269:53","statements":[{"nativeSrc":"545:22:53","nodeType":"YulAssignment","src":"545:22:53","value":{"arguments":[{"name":"data","nativeSrc":"559:4:53","nodeType":"YulIdentifier","src":"559:4:53"},{"kind":"number","nativeSrc":"565:1:53","nodeType":"YulLiteral","src":"565:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"555:3:53","nodeType":"YulIdentifier","src":"555:3:53"},"nativeSrc":"555:12:53","nodeType":"YulFunctionCall","src":"555:12:53"},"variableNames":[{"name":"length","nativeSrc":"545:6:53","nodeType":"YulIdentifier","src":"545:6:53"}]},{"nativeSrc":"576:38:53","nodeType":"YulVariableDeclaration","src":"576:38:53","value":{"arguments":[{"name":"data","nativeSrc":"606:4:53","nodeType":"YulIdentifier","src":"606:4:53"},{"kind":"number","nativeSrc":"612:1:53","nodeType":"YulLiteral","src":"612:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"602:3:53","nodeType":"YulIdentifier","src":"602:3:53"},"nativeSrc":"602:12:53","nodeType":"YulFunctionCall","src":"602:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"580:18:53","nodeType":"YulTypedName","src":"580:18:53","type":""}]},{"body":{"nativeSrc":"653:51:53","nodeType":"YulBlock","src":"653:51:53","statements":[{"nativeSrc":"667:27:53","nodeType":"YulAssignment","src":"667:27:53","value":{"arguments":[{"name":"length","nativeSrc":"681:6:53","nodeType":"YulIdentifier","src":"681:6:53"},{"kind":"number","nativeSrc":"689:4:53","nodeType":"YulLiteral","src":"689:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"677:3:53","nodeType":"YulIdentifier","src":"677:3:53"},"nativeSrc":"677:17:53","nodeType":"YulFunctionCall","src":"677:17:53"},"variableNames":[{"name":"length","nativeSrc":"667:6:53","nodeType":"YulIdentifier","src":"667:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"633:18:53","nodeType":"YulIdentifier","src":"633:18:53"}],"functionName":{"name":"iszero","nativeSrc":"626:6:53","nodeType":"YulIdentifier","src":"626:6:53"},"nativeSrc":"626:26:53","nodeType":"YulFunctionCall","src":"626:26:53"},"nativeSrc":"623:81:53","nodeType":"YulIf","src":"623:81:53"},{"body":{"nativeSrc":"756:42:53","nodeType":"YulBlock","src":"756:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"770:16:53","nodeType":"YulIdentifier","src":"770:16:53"},"nativeSrc":"770:18:53","nodeType":"YulFunctionCall","src":"770:18:53"},"nativeSrc":"770:18:53","nodeType":"YulExpressionStatement","src":"770:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"720:18:53","nodeType":"YulIdentifier","src":"720:18:53"},{"arguments":[{"name":"length","nativeSrc":"743:6:53","nodeType":"YulIdentifier","src":"743:6:53"},{"kind":"number","nativeSrc":"751:2:53","nodeType":"YulLiteral","src":"751:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"740:2:53","nodeType":"YulIdentifier","src":"740:2:53"},"nativeSrc":"740:14:53","nodeType":"YulFunctionCall","src":"740:14:53"}],"functionName":{"name":"eq","nativeSrc":"717:2:53","nodeType":"YulIdentifier","src":"717:2:53"},"nativeSrc":"717:38:53","nodeType":"YulFunctionCall","src":"717:38:53"},"nativeSrc":"714:84:53","nodeType":"YulIf","src":"714:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"484:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"519:4:53","nodeType":"YulTypedName","src":"519:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"528:6:53","nodeType":"YulTypedName","src":"528:6:53","type":""}],"src":"484:320:53"},{"body":{"nativeSrc":"864:87:53","nodeType":"YulBlock","src":"864:87:53","statements":[{"nativeSrc":"874:11:53","nodeType":"YulAssignment","src":"874:11:53","value":{"name":"ptr","nativeSrc":"882:3:53","nodeType":"YulIdentifier","src":"882:3:53"},"variableNames":[{"name":"data","nativeSrc":"874:4:53","nodeType":"YulIdentifier","src":"874:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"902:1:53","nodeType":"YulLiteral","src":"902:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"905:3:53","nodeType":"YulIdentifier","src":"905:3:53"}],"functionName":{"name":"mstore","nativeSrc":"895:6:53","nodeType":"YulIdentifier","src":"895:6:53"},"nativeSrc":"895:14:53","nodeType":"YulFunctionCall","src":"895:14:53"},"nativeSrc":"895:14:53","nodeType":"YulExpressionStatement","src":"895:14:53"},{"nativeSrc":"918:26:53","nodeType":"YulAssignment","src":"918:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"936:1:53","nodeType":"YulLiteral","src":"936:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"939:4:53","nodeType":"YulLiteral","src":"939:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"926:9:53","nodeType":"YulIdentifier","src":"926:9:53"},"nativeSrc":"926:18:53","nodeType":"YulFunctionCall","src":"926:18:53"},"variableNames":[{"name":"data","nativeSrc":"918:4:53","nodeType":"YulIdentifier","src":"918:4:53"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"810:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"851:3:53","nodeType":"YulTypedName","src":"851:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"859:4:53","nodeType":"YulTypedName","src":"859:4:53","type":""}],"src":"810:141:53"},{"body":{"nativeSrc":"1001:49:53","nodeType":"YulBlock","src":"1001:49:53","statements":[{"nativeSrc":"1011:33:53","nodeType":"YulAssignment","src":"1011:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1029:5:53","nodeType":"YulIdentifier","src":"1029:5:53"},{"kind":"number","nativeSrc":"1036:2:53","nodeType":"YulLiteral","src":"1036:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1025:3:53","nodeType":"YulIdentifier","src":"1025:3:53"},"nativeSrc":"1025:14:53","nodeType":"YulFunctionCall","src":"1025:14:53"},{"kind":"number","nativeSrc":"1041:2:53","nodeType":"YulLiteral","src":"1041:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"1021:3:53","nodeType":"YulIdentifier","src":"1021:3:53"},"nativeSrc":"1021:23:53","nodeType":"YulFunctionCall","src":"1021:23:53"},"variableNames":[{"name":"result","nativeSrc":"1011:6:53","nodeType":"YulIdentifier","src":"1011:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"957:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"984:5:53","nodeType":"YulTypedName","src":"984:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"994:6:53","nodeType":"YulTypedName","src":"994:6:53","type":""}],"src":"957:93:53"},{"body":{"nativeSrc":"1109:54:53","nodeType":"YulBlock","src":"1109:54:53","statements":[{"nativeSrc":"1119:37:53","nodeType":"YulAssignment","src":"1119:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"1144:4:53","nodeType":"YulIdentifier","src":"1144:4:53"},{"name":"value","nativeSrc":"1150:5:53","nodeType":"YulIdentifier","src":"1150:5:53"}],"functionName":{"name":"shl","nativeSrc":"1140:3:53","nodeType":"YulIdentifier","src":"1140:3:53"},"nativeSrc":"1140:16:53","nodeType":"YulFunctionCall","src":"1140:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"1119:8:53","nodeType":"YulIdentifier","src":"1119:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"1056:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"1084:4:53","nodeType":"YulTypedName","src":"1084:4:53","type":""},{"name":"value","nativeSrc":"1090:5:53","nodeType":"YulTypedName","src":"1090:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"1100:8:53","nodeType":"YulTypedName","src":"1100:8:53","type":""}],"src":"1056:107:53"},{"body":{"nativeSrc":"1245:317:53","nodeType":"YulBlock","src":"1245:317:53","statements":[{"nativeSrc":"1255:35:53","nodeType":"YulVariableDeclaration","src":"1255:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"1276:10:53","nodeType":"YulIdentifier","src":"1276:10:53"},{"kind":"number","nativeSrc":"1288:1:53","nodeType":"YulLiteral","src":"1288:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"1272:3:53","nodeType":"YulIdentifier","src":"1272:3:53"},"nativeSrc":"1272:18:53","nodeType":"YulFunctionCall","src":"1272:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"1259:9:53","nodeType":"YulTypedName","src":"1259:9:53","type":""}]},{"nativeSrc":"1299:109:53","nodeType":"YulVariableDeclaration","src":"1299:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"1330:9:53","nodeType":"YulIdentifier","src":"1330:9:53"},{"kind":"number","nativeSrc":"1341:66:53","nodeType":"YulLiteral","src":"1341:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"1311:18:53","nodeType":"YulIdentifier","src":"1311:18:53"},"nativeSrc":"1311:97:53","nodeType":"YulFunctionCall","src":"1311:97:53"},"variables":[{"name":"mask","nativeSrc":"1303:4:53","nodeType":"YulTypedName","src":"1303:4:53","type":""}]},{"nativeSrc":"1417:51:53","nodeType":"YulAssignment","src":"1417:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"1448:9:53","nodeType":"YulIdentifier","src":"1448:9:53"},{"name":"toInsert","nativeSrc":"1459:8:53","nodeType":"YulIdentifier","src":"1459:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"1429:18:53","nodeType":"YulIdentifier","src":"1429:18:53"},"nativeSrc":"1429:39:53","nodeType":"YulFunctionCall","src":"1429:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"1417:8:53","nodeType":"YulIdentifier","src":"1417:8:53"}]},{"nativeSrc":"1477:30:53","nodeType":"YulAssignment","src":"1477:30:53","value":{"arguments":[{"name":"value","nativeSrc":"1490:5:53","nodeType":"YulIdentifier","src":"1490:5:53"},{"arguments":[{"name":"mask","nativeSrc":"1501:4:53","nodeType":"YulIdentifier","src":"1501:4:53"}],"functionName":{"name":"not","nativeSrc":"1497:3:53","nodeType":"YulIdentifier","src":"1497:3:53"},"nativeSrc":"1497:9:53","nodeType":"YulFunctionCall","src":"1497:9:53"}],"functionName":{"name":"and","nativeSrc":"1486:3:53","nodeType":"YulIdentifier","src":"1486:3:53"},"nativeSrc":"1486:21:53","nodeType":"YulFunctionCall","src":"1486:21:53"},"variableNames":[{"name":"value","nativeSrc":"1477:5:53","nodeType":"YulIdentifier","src":"1477:5:53"}]},{"nativeSrc":"1516:40:53","nodeType":"YulAssignment","src":"1516:40:53","value":{"arguments":[{"name":"value","nativeSrc":"1529:5:53","nodeType":"YulIdentifier","src":"1529:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"1540:8:53","nodeType":"YulIdentifier","src":"1540:8:53"},{"name":"mask","nativeSrc":"1550:4:53","nodeType":"YulIdentifier","src":"1550:4:53"}],"functionName":{"name":"and","nativeSrc":"1536:3:53","nodeType":"YulIdentifier","src":"1536:3:53"},"nativeSrc":"1536:19:53","nodeType":"YulFunctionCall","src":"1536:19:53"}],"functionName":{"name":"or","nativeSrc":"1526:2:53","nodeType":"YulIdentifier","src":"1526:2:53"},"nativeSrc":"1526:30:53","nodeType":"YulFunctionCall","src":"1526:30:53"},"variableNames":[{"name":"result","nativeSrc":"1516:6:53","nodeType":"YulIdentifier","src":"1516:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"1169:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1206:5:53","nodeType":"YulTypedName","src":"1206:5:53","type":""},{"name":"shiftBytes","nativeSrc":"1213:10:53","nodeType":"YulTypedName","src":"1213:10:53","type":""},{"name":"toInsert","nativeSrc":"1225:8:53","nodeType":"YulTypedName","src":"1225:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1238:6:53","nodeType":"YulTypedName","src":"1238:6:53","type":""}],"src":"1169:393:53"},{"body":{"nativeSrc":"1613:32:53","nodeType":"YulBlock","src":"1613:32:53","statements":[{"nativeSrc":"1623:16:53","nodeType":"YulAssignment","src":"1623:16:53","value":{"name":"value","nativeSrc":"1634:5:53","nodeType":"YulIdentifier","src":"1634:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1623:7:53","nodeType":"YulIdentifier","src":"1623:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1568:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1595:5:53","nodeType":"YulTypedName","src":"1595:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1605:7:53","nodeType":"YulTypedName","src":"1605:7:53","type":""}],"src":"1568:77:53"},{"body":{"nativeSrc":"1683:28:53","nodeType":"YulBlock","src":"1683:28:53","statements":[{"nativeSrc":"1693:12:53","nodeType":"YulAssignment","src":"1693:12:53","value":{"name":"value","nativeSrc":"1700:5:53","nodeType":"YulIdentifier","src":"1700:5:53"},"variableNames":[{"name":"ret","nativeSrc":"1693:3:53","nodeType":"YulIdentifier","src":"1693:3:53"}]}]},"name":"identity","nativeSrc":"1651:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1669:5:53","nodeType":"YulTypedName","src":"1669:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1679:3:53","nodeType":"YulTypedName","src":"1679:3:53","type":""}],"src":"1651:60:53"},{"body":{"nativeSrc":"1777:82:53","nodeType":"YulBlock","src":"1777:82:53","statements":[{"nativeSrc":"1787:66:53","nodeType":"YulAssignment","src":"1787:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1845:5:53","nodeType":"YulIdentifier","src":"1845:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1827:17:53","nodeType":"YulIdentifier","src":"1827:17:53"},"nativeSrc":"1827:24:53","nodeType":"YulFunctionCall","src":"1827:24:53"}],"functionName":{"name":"identity","nativeSrc":"1818:8:53","nodeType":"YulIdentifier","src":"1818:8:53"},"nativeSrc":"1818:34:53","nodeType":"YulFunctionCall","src":"1818:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1800:17:53","nodeType":"YulIdentifier","src":"1800:17:53"},"nativeSrc":"1800:53:53","nodeType":"YulFunctionCall","src":"1800:53:53"},"variableNames":[{"name":"converted","nativeSrc":"1787:9:53","nodeType":"YulIdentifier","src":"1787:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"1717:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1757:5:53","nodeType":"YulTypedName","src":"1757:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1767:9:53","nodeType":"YulTypedName","src":"1767:9:53","type":""}],"src":"1717:142:53"},{"body":{"nativeSrc":"1912:28:53","nodeType":"YulBlock","src":"1912:28:53","statements":[{"nativeSrc":"1922:12:53","nodeType":"YulAssignment","src":"1922:12:53","value":{"name":"value","nativeSrc":"1929:5:53","nodeType":"YulIdentifier","src":"1929:5:53"},"variableNames":[{"name":"ret","nativeSrc":"1922:3:53","nodeType":"YulIdentifier","src":"1922:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"1865:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1898:5:53","nodeType":"YulTypedName","src":"1898:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1908:3:53","nodeType":"YulTypedName","src":"1908:3:53","type":""}],"src":"1865:75:53"},{"body":{"nativeSrc":"2022:193:53","nodeType":"YulBlock","src":"2022:193:53","statements":[{"nativeSrc":"2032:63:53","nodeType":"YulVariableDeclaration","src":"2032:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"2087:7:53","nodeType":"YulIdentifier","src":"2087:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"2056:30:53","nodeType":"YulIdentifier","src":"2056:30:53"},"nativeSrc":"2056:39:53","nodeType":"YulFunctionCall","src":"2056:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"2036:16:53","nodeType":"YulTypedName","src":"2036:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2111:4:53","nodeType":"YulIdentifier","src":"2111:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"2151:4:53","nodeType":"YulIdentifier","src":"2151:4:53"}],"functionName":{"name":"sload","nativeSrc":"2145:5:53","nodeType":"YulIdentifier","src":"2145:5:53"},"nativeSrc":"2145:11:53","nodeType":"YulFunctionCall","src":"2145:11:53"},{"name":"offset","nativeSrc":"2158:6:53","nodeType":"YulIdentifier","src":"2158:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"2190:16:53","nodeType":"YulIdentifier","src":"2190:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"2166:23:53","nodeType":"YulIdentifier","src":"2166:23:53"},"nativeSrc":"2166:41:53","nodeType":"YulFunctionCall","src":"2166:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"2117:27:53","nodeType":"YulIdentifier","src":"2117:27:53"},"nativeSrc":"2117:91:53","nodeType":"YulFunctionCall","src":"2117:91:53"}],"functionName":{"name":"sstore","nativeSrc":"2104:6:53","nodeType":"YulIdentifier","src":"2104:6:53"},"nativeSrc":"2104:105:53","nodeType":"YulFunctionCall","src":"2104:105:53"},"nativeSrc":"2104:105:53","nodeType":"YulExpressionStatement","src":"2104:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"1946:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"1999:4:53","nodeType":"YulTypedName","src":"1999:4:53","type":""},{"name":"offset","nativeSrc":"2005:6:53","nodeType":"YulTypedName","src":"2005:6:53","type":""},{"name":"value_0","nativeSrc":"2013:7:53","nodeType":"YulTypedName","src":"2013:7:53","type":""}],"src":"1946:269:53"},{"body":{"nativeSrc":"2270:24:53","nodeType":"YulBlock","src":"2270:24:53","statements":[{"nativeSrc":"2280:8:53","nodeType":"YulAssignment","src":"2280:8:53","value":{"kind":"number","nativeSrc":"2287:1:53","nodeType":"YulLiteral","src":"2287:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"2280:3:53","nodeType":"YulIdentifier","src":"2280:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"2221:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"2266:3:53","nodeType":"YulTypedName","src":"2266:3:53","type":""}],"src":"2221:73:53"},{"body":{"nativeSrc":"2353:136:53","nodeType":"YulBlock","src":"2353:136:53","statements":[{"nativeSrc":"2363:46:53","nodeType":"YulVariableDeclaration","src":"2363:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"2377:30:53","nodeType":"YulIdentifier","src":"2377:30:53"},"nativeSrc":"2377:32:53","nodeType":"YulFunctionCall","src":"2377:32:53"},"variables":[{"name":"zero_0","nativeSrc":"2367:6:53","nodeType":"YulTypedName","src":"2367:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2462:4:53","nodeType":"YulIdentifier","src":"2462:4:53"},{"name":"offset","nativeSrc":"2468:6:53","nodeType":"YulIdentifier","src":"2468:6:53"},{"name":"zero_0","nativeSrc":"2476:6:53","nodeType":"YulIdentifier","src":"2476:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"2418:43:53","nodeType":"YulIdentifier","src":"2418:43:53"},"nativeSrc":"2418:65:53","nodeType":"YulFunctionCall","src":"2418:65:53"},"nativeSrc":"2418:65:53","nodeType":"YulExpressionStatement","src":"2418:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"2300:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"2339:4:53","nodeType":"YulTypedName","src":"2339:4:53","type":""},{"name":"offset","nativeSrc":"2345:6:53","nodeType":"YulTypedName","src":"2345:6:53","type":""}],"src":"2300:189:53"},{"body":{"nativeSrc":"2545:136:53","nodeType":"YulBlock","src":"2545:136:53","statements":[{"body":{"nativeSrc":"2612:63:53","nodeType":"YulBlock","src":"2612:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2656:5:53","nodeType":"YulIdentifier","src":"2656:5:53"},{"kind":"number","nativeSrc":"2663:1:53","nodeType":"YulLiteral","src":"2663:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"2626:29:53","nodeType":"YulIdentifier","src":"2626:29:53"},"nativeSrc":"2626:39:53","nodeType":"YulFunctionCall","src":"2626:39:53"},"nativeSrc":"2626:39:53","nodeType":"YulExpressionStatement","src":"2626:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2565:5:53","nodeType":"YulIdentifier","src":"2565:5:53"},{"name":"end","nativeSrc":"2572:3:53","nodeType":"YulIdentifier","src":"2572:3:53"}],"functionName":{"name":"lt","nativeSrc":"2562:2:53","nodeType":"YulIdentifier","src":"2562:2:53"},"nativeSrc":"2562:14:53","nodeType":"YulFunctionCall","src":"2562:14:53"},"nativeSrc":"2555:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"2577:26:53","nodeType":"YulBlock","src":"2577:26:53","statements":[{"nativeSrc":"2579:22:53","nodeType":"YulAssignment","src":"2579:22:53","value":{"arguments":[{"name":"start","nativeSrc":"2592:5:53","nodeType":"YulIdentifier","src":"2592:5:53"},{"kind":"number","nativeSrc":"2599:1:53","nodeType":"YulLiteral","src":"2599:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2588:3:53","nodeType":"YulIdentifier","src":"2588:3:53"},"nativeSrc":"2588:13:53","nodeType":"YulFunctionCall","src":"2588:13:53"},"variableNames":[{"name":"start","nativeSrc":"2579:5:53","nodeType":"YulIdentifier","src":"2579:5:53"}]}]},"pre":{"nativeSrc":"2559:2:53","nodeType":"YulBlock","src":"2559:2:53","statements":[]},"src":"2555:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"2495:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"2533:5:53","nodeType":"YulTypedName","src":"2533:5:53","type":""},{"name":"end","nativeSrc":"2540:3:53","nodeType":"YulTypedName","src":"2540:3:53","type":""}],"src":"2495:186:53"},{"body":{"nativeSrc":"2766:464:53","nodeType":"YulBlock","src":"2766:464:53","statements":[{"body":{"nativeSrc":"2792:431:53","nodeType":"YulBlock","src":"2792:431:53","statements":[{"nativeSrc":"2806:54:53","nodeType":"YulVariableDeclaration","src":"2806:54:53","value":{"arguments":[{"name":"array","nativeSrc":"2854:5:53","nodeType":"YulIdentifier","src":"2854:5:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"2822:31:53","nodeType":"YulIdentifier","src":"2822:31:53"},"nativeSrc":"2822:38:53","nodeType":"YulFunctionCall","src":"2822:38:53"},"variables":[{"name":"dataArea","nativeSrc":"2810:8:53","nodeType":"YulTypedName","src":"2810:8:53","type":""}]},{"nativeSrc":"2873:63:53","nodeType":"YulVariableDeclaration","src":"2873:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"2896:8:53","nodeType":"YulIdentifier","src":"2896:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"2924:10:53","nodeType":"YulIdentifier","src":"2924:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"2906:17:53","nodeType":"YulIdentifier","src":"2906:17:53"},"nativeSrc":"2906:29:53","nodeType":"YulFunctionCall","src":"2906:29:53"}],"functionName":{"name":"add","nativeSrc":"2892:3:53","nodeType":"YulIdentifier","src":"2892:3:53"},"nativeSrc":"2892:44:53","nodeType":"YulFunctionCall","src":"2892:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"2877:11:53","nodeType":"YulTypedName","src":"2877:11:53","type":""}]},{"body":{"nativeSrc":"3093:27:53","nodeType":"YulBlock","src":"3093:27:53","statements":[{"nativeSrc":"3095:23:53","nodeType":"YulAssignment","src":"3095:23:53","value":{"name":"dataArea","nativeSrc":"3110:8:53","nodeType":"YulIdentifier","src":"3110:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"3095:11:53","nodeType":"YulIdentifier","src":"3095:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"3077:10:53","nodeType":"YulIdentifier","src":"3077:10:53"},{"kind":"number","nativeSrc":"3089:2:53","nodeType":"YulLiteral","src":"3089:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"3074:2:53","nodeType":"YulIdentifier","src":"3074:2:53"},"nativeSrc":"3074:18:53","nodeType":"YulFunctionCall","src":"3074:18:53"},"nativeSrc":"3071:49:53","nodeType":"YulIf","src":"3071:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"3162:11:53","nodeType":"YulIdentifier","src":"3162:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"3179:8:53","nodeType":"YulIdentifier","src":"3179:8:53"},{"arguments":[{"name":"len","nativeSrc":"3207:3:53","nodeType":"YulIdentifier","src":"3207:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"3189:17:53","nodeType":"YulIdentifier","src":"3189:17:53"},"nativeSrc":"3189:22:53","nodeType":"YulFunctionCall","src":"3189:22:53"}],"functionName":{"name":"add","nativeSrc":"3175:3:53","nodeType":"YulIdentifier","src":"3175:3:53"},"nativeSrc":"3175:37:53","nodeType":"YulFunctionCall","src":"3175:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"3133:28:53","nodeType":"YulIdentifier","src":"3133:28:53"},"nativeSrc":"3133:80:53","nodeType":"YulFunctionCall","src":"3133:80:53"},"nativeSrc":"3133:80:53","nodeType":"YulExpressionStatement","src":"3133:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2783:3:53","nodeType":"YulIdentifier","src":"2783:3:53"},{"kind":"number","nativeSrc":"2788:2:53","nodeType":"YulLiteral","src":"2788:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2780:2:53","nodeType":"YulIdentifier","src":"2780:2:53"},"nativeSrc":"2780:11:53","nodeType":"YulFunctionCall","src":"2780:11:53"},"nativeSrc":"2777:446:53","nodeType":"YulIf","src":"2777:446:53"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"2687:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2742:5:53","nodeType":"YulTypedName","src":"2742:5:53","type":""},{"name":"len","nativeSrc":"2749:3:53","nodeType":"YulTypedName","src":"2749:3:53","type":""},{"name":"startIndex","nativeSrc":"2754:10:53","nodeType":"YulTypedName","src":"2754:10:53","type":""}],"src":"2687:543:53"},{"body":{"nativeSrc":"3299:54:53","nodeType":"YulBlock","src":"3299:54:53","statements":[{"nativeSrc":"3309:37:53","nodeType":"YulAssignment","src":"3309:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"3334:4:53","nodeType":"YulIdentifier","src":"3334:4:53"},{"name":"value","nativeSrc":"3340:5:53","nodeType":"YulIdentifier","src":"3340:5:53"}],"functionName":{"name":"shr","nativeSrc":"3330:3:53","nodeType":"YulIdentifier","src":"3330:3:53"},"nativeSrc":"3330:16:53","nodeType":"YulFunctionCall","src":"3330:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"3309:8:53","nodeType":"YulIdentifier","src":"3309:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"3236:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"3274:4:53","nodeType":"YulTypedName","src":"3274:4:53","type":""},{"name":"value","nativeSrc":"3280:5:53","nodeType":"YulTypedName","src":"3280:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"3290:8:53","nodeType":"YulTypedName","src":"3290:8:53","type":""}],"src":"3236:117:53"},{"body":{"nativeSrc":"3410:118:53","nodeType":"YulBlock","src":"3410:118:53","statements":[{"nativeSrc":"3420:68:53","nodeType":"YulVariableDeclaration","src":"3420:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3469:1:53","nodeType":"YulLiteral","src":"3469:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"3472:5:53","nodeType":"YulIdentifier","src":"3472:5:53"}],"functionName":{"name":"mul","nativeSrc":"3465:3:53","nodeType":"YulIdentifier","src":"3465:3:53"},"nativeSrc":"3465:13:53","nodeType":"YulFunctionCall","src":"3465:13:53"},{"arguments":[{"kind":"number","nativeSrc":"3484:1:53","nodeType":"YulLiteral","src":"3484:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3480:3:53","nodeType":"YulIdentifier","src":"3480:3:53"},"nativeSrc":"3480:6:53","nodeType":"YulFunctionCall","src":"3480:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"3436:28:53","nodeType":"YulIdentifier","src":"3436:28:53"},"nativeSrc":"3436:51:53","nodeType":"YulFunctionCall","src":"3436:51:53"}],"functionName":{"name":"not","nativeSrc":"3432:3:53","nodeType":"YulIdentifier","src":"3432:3:53"},"nativeSrc":"3432:56:53","nodeType":"YulFunctionCall","src":"3432:56:53"},"variables":[{"name":"mask","nativeSrc":"3424:4:53","nodeType":"YulTypedName","src":"3424:4:53","type":""}]},{"nativeSrc":"3497:25:53","nodeType":"YulAssignment","src":"3497:25:53","value":{"arguments":[{"name":"data","nativeSrc":"3511:4:53","nodeType":"YulIdentifier","src":"3511:4:53"},{"name":"mask","nativeSrc":"3517:4:53","nodeType":"YulIdentifier","src":"3517:4:53"}],"functionName":{"name":"and","nativeSrc":"3507:3:53","nodeType":"YulIdentifier","src":"3507:3:53"},"nativeSrc":"3507:15:53","nodeType":"YulFunctionCall","src":"3507:15:53"},"variableNames":[{"name":"result","nativeSrc":"3497:6:53","nodeType":"YulIdentifier","src":"3497:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"3359:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3387:4:53","nodeType":"YulTypedName","src":"3387:4:53","type":""},{"name":"bytes","nativeSrc":"3393:5:53","nodeType":"YulTypedName","src":"3393:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3403:6:53","nodeType":"YulTypedName","src":"3403:6:53","type":""}],"src":"3359:169:53"},{"body":{"nativeSrc":"3614:214:53","nodeType":"YulBlock","src":"3614:214:53","statements":[{"nativeSrc":"3747:37:53","nodeType":"YulAssignment","src":"3747:37:53","value":{"arguments":[{"name":"data","nativeSrc":"3774:4:53","nodeType":"YulIdentifier","src":"3774:4:53"},{"name":"len","nativeSrc":"3780:3:53","nodeType":"YulIdentifier","src":"3780:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"3755:18:53","nodeType":"YulIdentifier","src":"3755:18:53"},"nativeSrc":"3755:29:53","nodeType":"YulFunctionCall","src":"3755:29:53"},"variableNames":[{"name":"data","nativeSrc":"3747:4:53","nodeType":"YulIdentifier","src":"3747:4:53"}]},{"nativeSrc":"3793:29:53","nodeType":"YulAssignment","src":"3793:29:53","value":{"arguments":[{"name":"data","nativeSrc":"3804:4:53","nodeType":"YulIdentifier","src":"3804:4:53"},{"arguments":[{"kind":"number","nativeSrc":"3814:1:53","nodeType":"YulLiteral","src":"3814:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"3817:3:53","nodeType":"YulIdentifier","src":"3817:3:53"}],"functionName":{"name":"mul","nativeSrc":"3810:3:53","nodeType":"YulIdentifier","src":"3810:3:53"},"nativeSrc":"3810:11:53","nodeType":"YulFunctionCall","src":"3810:11:53"}],"functionName":{"name":"or","nativeSrc":"3801:2:53","nodeType":"YulIdentifier","src":"3801:2:53"},"nativeSrc":"3801:21:53","nodeType":"YulFunctionCall","src":"3801:21:53"},"variableNames":[{"name":"used","nativeSrc":"3793:4:53","nodeType":"YulIdentifier","src":"3793:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3533:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3595:4:53","nodeType":"YulTypedName","src":"3595:4:53","type":""},{"name":"len","nativeSrc":"3601:3:53","nodeType":"YulTypedName","src":"3601:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"3609:4:53","nodeType":"YulTypedName","src":"3609:4:53","type":""}],"src":"3533:295:53"},{"body":{"nativeSrc":"3925:1303:53","nodeType":"YulBlock","src":"3925:1303:53","statements":[{"nativeSrc":"3936:51:53","nodeType":"YulVariableDeclaration","src":"3936:51:53","value":{"arguments":[{"name":"src","nativeSrc":"3983:3:53","nodeType":"YulIdentifier","src":"3983:3:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"3950:32:53","nodeType":"YulIdentifier","src":"3950:32:53"},"nativeSrc":"3950:37:53","nodeType":"YulFunctionCall","src":"3950:37:53"},"variables":[{"name":"newLen","nativeSrc":"3940:6:53","nodeType":"YulTypedName","src":"3940:6:53","type":""}]},{"body":{"nativeSrc":"4072:22:53","nodeType":"YulBlock","src":"4072:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4074:16:53","nodeType":"YulIdentifier","src":"4074:16:53"},"nativeSrc":"4074:18:53","nodeType":"YulFunctionCall","src":"4074:18:53"},"nativeSrc":"4074:18:53","nodeType":"YulExpressionStatement","src":"4074:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"4044:6:53","nodeType":"YulIdentifier","src":"4044:6:53"},{"kind":"number","nativeSrc":"4052:18:53","nodeType":"YulLiteral","src":"4052:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4041:2:53","nodeType":"YulIdentifier","src":"4041:2:53"},"nativeSrc":"4041:30:53","nodeType":"YulFunctionCall","src":"4041:30:53"},"nativeSrc":"4038:56:53","nodeType":"YulIf","src":"4038:56:53"},{"nativeSrc":"4104:52:53","nodeType":"YulVariableDeclaration","src":"4104:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"4150:4:53","nodeType":"YulIdentifier","src":"4150:4:53"}],"functionName":{"name":"sload","nativeSrc":"4144:5:53","nodeType":"YulIdentifier","src":"4144:5:53"},"nativeSrc":"4144:11:53","nodeType":"YulFunctionCall","src":"4144:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"4118:25:53","nodeType":"YulIdentifier","src":"4118:25:53"},"nativeSrc":"4118:38:53","nodeType":"YulFunctionCall","src":"4118:38:53"},"variables":[{"name":"oldLen","nativeSrc":"4108:6:53","nodeType":"YulTypedName","src":"4108:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4249:4:53","nodeType":"YulIdentifier","src":"4249:4:53"},{"name":"oldLen","nativeSrc":"4255:6:53","nodeType":"YulIdentifier","src":"4255:6:53"},{"name":"newLen","nativeSrc":"4263:6:53","nodeType":"YulIdentifier","src":"4263:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"4203:45:53","nodeType":"YulIdentifier","src":"4203:45:53"},"nativeSrc":"4203:67:53","nodeType":"YulFunctionCall","src":"4203:67:53"},"nativeSrc":"4203:67:53","nodeType":"YulExpressionStatement","src":"4203:67:53"},{"nativeSrc":"4280:18:53","nodeType":"YulVariableDeclaration","src":"4280:18:53","value":{"kind":"number","nativeSrc":"4297:1:53","nodeType":"YulLiteral","src":"4297:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"4284:9:53","nodeType":"YulTypedName","src":"4284:9:53","type":""}]},{"nativeSrc":"4308:17:53","nodeType":"YulAssignment","src":"4308:17:53","value":{"kind":"number","nativeSrc":"4321:4:53","nodeType":"YulLiteral","src":"4321:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"4308:9:53","nodeType":"YulIdentifier","src":"4308:9:53"}]},{"cases":[{"body":{"nativeSrc":"4372:611:53","nodeType":"YulBlock","src":"4372:611:53","statements":[{"nativeSrc":"4386:37:53","nodeType":"YulVariableDeclaration","src":"4386:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"4405:6:53","nodeType":"YulIdentifier","src":"4405:6:53"},{"arguments":[{"kind":"number","nativeSrc":"4417:4:53","nodeType":"YulLiteral","src":"4417:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"4413:3:53","nodeType":"YulIdentifier","src":"4413:3:53"},"nativeSrc":"4413:9:53","nodeType":"YulFunctionCall","src":"4413:9:53"}],"functionName":{"name":"and","nativeSrc":"4401:3:53","nodeType":"YulIdentifier","src":"4401:3:53"},"nativeSrc":"4401:22:53","nodeType":"YulFunctionCall","src":"4401:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"4390:7:53","nodeType":"YulTypedName","src":"4390:7:53","type":""}]},{"nativeSrc":"4437:51:53","nodeType":"YulVariableDeclaration","src":"4437:51:53","value":{"arguments":[{"name":"slot","nativeSrc":"4483:4:53","nodeType":"YulIdentifier","src":"4483:4:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"4451:31:53","nodeType":"YulIdentifier","src":"4451:31:53"},"nativeSrc":"4451:37:53","nodeType":"YulFunctionCall","src":"4451:37:53"},"variables":[{"name":"dstPtr","nativeSrc":"4441:6:53","nodeType":"YulTypedName","src":"4441:6:53","type":""}]},{"nativeSrc":"4501:10:53","nodeType":"YulVariableDeclaration","src":"4501:10:53","value":{"kind":"number","nativeSrc":"4510:1:53","nodeType":"YulLiteral","src":"4510:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4505:1:53","nodeType":"YulTypedName","src":"4505:1:53","type":""}]},{"body":{"nativeSrc":"4569:163:53","nodeType":"YulBlock","src":"4569:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4594:6:53","nodeType":"YulIdentifier","src":"4594:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4612:3:53","nodeType":"YulIdentifier","src":"4612:3:53"},{"name":"srcOffset","nativeSrc":"4617:9:53","nodeType":"YulIdentifier","src":"4617:9:53"}],"functionName":{"name":"add","nativeSrc":"4608:3:53","nodeType":"YulIdentifier","src":"4608:3:53"},"nativeSrc":"4608:19:53","nodeType":"YulFunctionCall","src":"4608:19:53"}],"functionName":{"name":"mload","nativeSrc":"4602:5:53","nodeType":"YulIdentifier","src":"4602:5:53"},"nativeSrc":"4602:26:53","nodeType":"YulFunctionCall","src":"4602:26:53"}],"functionName":{"name":"sstore","nativeSrc":"4587:6:53","nodeType":"YulIdentifier","src":"4587:6:53"},"nativeSrc":"4587:42:53","nodeType":"YulFunctionCall","src":"4587:42:53"},"nativeSrc":"4587:42:53","nodeType":"YulExpressionStatement","src":"4587:42:53"},{"nativeSrc":"4646:24:53","nodeType":"YulAssignment","src":"4646:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"4660:6:53","nodeType":"YulIdentifier","src":"4660:6:53"},{"kind":"number","nativeSrc":"4668:1:53","nodeType":"YulLiteral","src":"4668:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4656:3:53","nodeType":"YulIdentifier","src":"4656:3:53"},"nativeSrc":"4656:14:53","nodeType":"YulFunctionCall","src":"4656:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"4646:6:53","nodeType":"YulIdentifier","src":"4646:6:53"}]},{"nativeSrc":"4687:31:53","nodeType":"YulAssignment","src":"4687:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"4704:9:53","nodeType":"YulIdentifier","src":"4704:9:53"},{"kind":"number","nativeSrc":"4715:2:53","nodeType":"YulLiteral","src":"4715:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4700:3:53","nodeType":"YulIdentifier","src":"4700:3:53"},"nativeSrc":"4700:18:53","nodeType":"YulFunctionCall","src":"4700:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"4687:9:53","nodeType":"YulIdentifier","src":"4687:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4535:1:53","nodeType":"YulIdentifier","src":"4535:1:53"},{"name":"loopEnd","nativeSrc":"4538:7:53","nodeType":"YulIdentifier","src":"4538:7:53"}],"functionName":{"name":"lt","nativeSrc":"4532:2:53","nodeType":"YulIdentifier","src":"4532:2:53"},"nativeSrc":"4532:14:53","nodeType":"YulFunctionCall","src":"4532:14:53"},"nativeSrc":"4524:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"4547:21:53","nodeType":"YulBlock","src":"4547:21:53","statements":[{"nativeSrc":"4549:17:53","nodeType":"YulAssignment","src":"4549:17:53","value":{"arguments":[{"name":"i","nativeSrc":"4558:1:53","nodeType":"YulIdentifier","src":"4558:1:53"},{"kind":"number","nativeSrc":"4561:4:53","nodeType":"YulLiteral","src":"4561:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4554:3:53","nodeType":"YulIdentifier","src":"4554:3:53"},"nativeSrc":"4554:12:53","nodeType":"YulFunctionCall","src":"4554:12:53"},"variableNames":[{"name":"i","nativeSrc":"4549:1:53","nodeType":"YulIdentifier","src":"4549:1:53"}]}]},"pre":{"nativeSrc":"4528:3:53","nodeType":"YulBlock","src":"4528:3:53","statements":[]},"src":"4524:208:53"},{"body":{"nativeSrc":"4768:156:53","nodeType":"YulBlock","src":"4768:156:53","statements":[{"nativeSrc":"4786:43:53","nodeType":"YulVariableDeclaration","src":"4786:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4813:3:53","nodeType":"YulIdentifier","src":"4813:3:53"},{"name":"srcOffset","nativeSrc":"4818:9:53","nodeType":"YulIdentifier","src":"4818:9:53"}],"functionName":{"name":"add","nativeSrc":"4809:3:53","nodeType":"YulIdentifier","src":"4809:3:53"},"nativeSrc":"4809:19:53","nodeType":"YulFunctionCall","src":"4809:19:53"}],"functionName":{"name":"mload","nativeSrc":"4803:5:53","nodeType":"YulIdentifier","src":"4803:5:53"},"nativeSrc":"4803:26:53","nodeType":"YulFunctionCall","src":"4803:26:53"},"variables":[{"name":"lastValue","nativeSrc":"4790:9:53","nodeType":"YulTypedName","src":"4790:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4853:6:53","nodeType":"YulIdentifier","src":"4853:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"4880:9:53","nodeType":"YulIdentifier","src":"4880:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"4895:6:53","nodeType":"YulIdentifier","src":"4895:6:53"},{"kind":"number","nativeSrc":"4903:4:53","nodeType":"YulLiteral","src":"4903:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"4891:3:53","nodeType":"YulIdentifier","src":"4891:3:53"},"nativeSrc":"4891:17:53","nodeType":"YulFunctionCall","src":"4891:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"4861:18:53","nodeType":"YulIdentifier","src":"4861:18:53"},"nativeSrc":"4861:48:53","nodeType":"YulFunctionCall","src":"4861:48:53"}],"functionName":{"name":"sstore","nativeSrc":"4846:6:53","nodeType":"YulIdentifier","src":"4846:6:53"},"nativeSrc":"4846:64:53","nodeType":"YulFunctionCall","src":"4846:64:53"},"nativeSrc":"4846:64:53","nodeType":"YulExpressionStatement","src":"4846:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"4751:7:53","nodeType":"YulIdentifier","src":"4751:7:53"},{"name":"newLen","nativeSrc":"4760:6:53","nodeType":"YulIdentifier","src":"4760:6:53"}],"functionName":{"name":"lt","nativeSrc":"4748:2:53","nodeType":"YulIdentifier","src":"4748:2:53"},"nativeSrc":"4748:19:53","nodeType":"YulFunctionCall","src":"4748:19:53"},"nativeSrc":"4745:179:53","nodeType":"YulIf","src":"4745:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4944:4:53","nodeType":"YulIdentifier","src":"4944:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"4958:6:53","nodeType":"YulIdentifier","src":"4958:6:53"},{"kind":"number","nativeSrc":"4966:1:53","nodeType":"YulLiteral","src":"4966:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"4954:3:53","nodeType":"YulIdentifier","src":"4954:3:53"},"nativeSrc":"4954:14:53","nodeType":"YulFunctionCall","src":"4954:14:53"},{"kind":"number","nativeSrc":"4970:1:53","nodeType":"YulLiteral","src":"4970:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4950:3:53","nodeType":"YulIdentifier","src":"4950:3:53"},"nativeSrc":"4950:22:53","nodeType":"YulFunctionCall","src":"4950:22:53"}],"functionName":{"name":"sstore","nativeSrc":"4937:6:53","nodeType":"YulIdentifier","src":"4937:6:53"},"nativeSrc":"4937:36:53","nodeType":"YulFunctionCall","src":"4937:36:53"},"nativeSrc":"4937:36:53","nodeType":"YulExpressionStatement","src":"4937:36:53"}]},"nativeSrc":"4365:618:53","nodeType":"YulCase","src":"4365:618:53","value":{"kind":"number","nativeSrc":"4370:1:53","nodeType":"YulLiteral","src":"4370:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"5000:222:53","nodeType":"YulBlock","src":"5000:222:53","statements":[{"nativeSrc":"5014:14:53","nodeType":"YulVariableDeclaration","src":"5014:14:53","value":{"kind":"number","nativeSrc":"5027:1:53","nodeType":"YulLiteral","src":"5027:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5018:5:53","nodeType":"YulTypedName","src":"5018:5:53","type":""}]},{"body":{"nativeSrc":"5051:67:53","nodeType":"YulBlock","src":"5051:67:53","statements":[{"nativeSrc":"5069:35:53","nodeType":"YulAssignment","src":"5069:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5088:3:53","nodeType":"YulIdentifier","src":"5088:3:53"},{"name":"srcOffset","nativeSrc":"5093:9:53","nodeType":"YulIdentifier","src":"5093:9:53"}],"functionName":{"name":"add","nativeSrc":"5084:3:53","nodeType":"YulIdentifier","src":"5084:3:53"},"nativeSrc":"5084:19:53","nodeType":"YulFunctionCall","src":"5084:19:53"}],"functionName":{"name":"mload","nativeSrc":"5078:5:53","nodeType":"YulIdentifier","src":"5078:5:53"},"nativeSrc":"5078:26:53","nodeType":"YulFunctionCall","src":"5078:26:53"},"variableNames":[{"name":"value","nativeSrc":"5069:5:53","nodeType":"YulIdentifier","src":"5069:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"5044:6:53","nodeType":"YulIdentifier","src":"5044:6:53"},"nativeSrc":"5041:77:53","nodeType":"YulIf","src":"5041:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5138:4:53","nodeType":"YulIdentifier","src":"5138:4:53"},{"arguments":[{"name":"value","nativeSrc":"5197:5:53","nodeType":"YulIdentifier","src":"5197:5:53"},{"name":"newLen","nativeSrc":"5204:6:53","nodeType":"YulIdentifier","src":"5204:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"5144:52:53","nodeType":"YulIdentifier","src":"5144:52:53"},"nativeSrc":"5144:67:53","nodeType":"YulFunctionCall","src":"5144:67:53"}],"functionName":{"name":"sstore","nativeSrc":"5131:6:53","nodeType":"YulIdentifier","src":"5131:6:53"},"nativeSrc":"5131:81:53","nodeType":"YulFunctionCall","src":"5131:81:53"},"nativeSrc":"5131:81:53","nodeType":"YulExpressionStatement","src":"5131:81:53"}]},"nativeSrc":"4992:230:53","nodeType":"YulCase","src":"4992:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"4345:6:53","nodeType":"YulIdentifier","src":"4345:6:53"},{"kind":"number","nativeSrc":"4353:2:53","nodeType":"YulLiteral","src":"4353:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"4342:2:53","nodeType":"YulIdentifier","src":"4342:2:53"},"nativeSrc":"4342:14:53","nodeType":"YulFunctionCall","src":"4342:14:53"},"nativeSrc":"4335:887:53","nodeType":"YulSwitch","src":"4335:887:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"3833:1395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3914:4:53","nodeType":"YulTypedName","src":"3914:4:53","type":""},{"name":"src","nativeSrc":"3920:3:53","nodeType":"YulTypedName","src":"3920:3:53","type":""}],"src":"3833:1395:53"}]},"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":53,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b506040518060400160405280601e81526020017f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f7b69647d00008152506100558161005b60201b60201c565b50610377565b806002908161006a91906102a8565b5050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100e957607f821691505b6020821081036100fc576100fb6100a5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261015e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610123565b6101688683610123565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101ac6101a76101a284610180565b610189565b610180565b9050919050565b5f819050919050565b6101c583610192565b6101d96101d1826101b3565b84845461012f565b825550505050565b5f90565b6101ed6101e1565b6101f88184846101bc565b505050565b5b8181101561021b576102105f826101e5565b6001810190506101fe565b5050565b601f8211156102605761023181610102565b61023a84610114565b81016020851015610249578190505b61025d61025585610114565b8301826101fd565b50505b505050565b5f82821c905092915050565b5f6102805f1984600802610265565b1980831691505092915050565b5f6102988383610271565b9150826002028217905092915050565b6102b18261006e565b67ffffffffffffffff8111156102ca576102c9610078565b5b6102d482546100d2565b6102df82828561021f565b5f60209050601f831160018114610310575f84156102fe578287015190505b610308858261028d565b86555061036f565b601f19841661031e86610102565b5f5b8281101561034557848901518255600182019150602085019450602081019050610320565b86831015610362578489015161035e601f891682610271565b8355505b6001600288020188555050505b505050505050565b612025806103845f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f414610167578063a22cb46514610197578063e985e9c5146101b3578063f242432a146101e3578063f5298aca146101ff5761009b565b8062fdd58e1461009f57806301ffc9a7146100cf5780630e89341c146100ff578063156e29f61461012f5780632eb2c2d61461014b575b5f80fd5b6100b960048036038101906100b491906114a3565b61021b565b6040516100c691906114f0565b60405180910390f35b6100e960048036038101906100e4919061155e565b610270565b6040516100f691906115a3565b60405180910390f35b610119600480360381019061011491906115bc565b610351565b6040516101269190611657565b60405180910390f35b61014960048036038101906101449190611677565b6103e3565b005b610165600480360381019061016091906118b7565b610402565b005b610181600480360381019061017c9190611a42565b6104a9565b60405161018e9190611b6f565b60405180910390f35b6101b160048036038101906101ac9190611bb9565b6105b0565b005b6101cd60048036038101906101c89190611bf7565b6105c6565b6040516101da91906115a3565b60405180910390f35b6101fd60048036038101906101f89190611c35565b610654565b005b61021960048036038101906102149190611677565b6106fb565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061034a57506103498261070b565b5b9050919050565b60606002805461036090611cf5565b80601f016020809104026020016040519081016040528092919081815260200182805461038c90611cf5565b80156103d75780601f106103ae576101008083540402835291602001916103d7565b820191905f5260205f20905b8154815290600101906020018083116103ba57829003601f168201915b50505050509050919050565b6103fd83838360405180602001604052805f815250610774565b505050565b5f61040b610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610450575061044e86826105c6565b155b156104945780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161048b929190611d34565b60405180910390fd5b6104a18686868686610810565b505050505050565b606081518351146104f557815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016104ec929190611d5b565b60405180910390fd5b5f835167ffffffffffffffff811115610511576105106116cb565b5b60405190808252806020026020018201604052801561053f5781602001602082028036833780820191505090505b5090505f5b84518110156105a55761057b610563828761090490919063ffffffff16565b610576838761091790919063ffffffff16565b61021b565b82828151811061058e5761058d611d82565b5b602002602001018181525050806001019050610544565b508091505092915050565b6105c26105bb610809565b838361092a565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61065d610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156106a257506106a086826105c6565b155b156106e65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016106dd929190611d34565b60405180910390fd5b6106f38686868686610a93565b505050505050565b610706838383610b99565b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107e4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107db9190611daf565b60405180910390fd5b5f806107f08585610c3b565b915091506108015f87848487610c6b565b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610880575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108779190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036108f0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016108e79190611daf565b60405180910390fd5b6108fd8585858585610c6b565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361099a575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016109919190611daf565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a8691906115a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b03575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610afa9190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b73575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b6a9190611daf565b60405180910390fd5b5f80610b7f8585610c3b565b91509150610b908787848487610c6b565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c09575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c009190611daf565b60405180910390fd5b5f80610c158484610c3b565b91509150610c34855f848460405180602001604052805f815250610c6b565b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b610c7785858585610d17565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d10575f610cb3610809565b90506001845103610cff575f610cd25f8661091790919063ffffffff16565b90505f610ce85f8661091790919063ffffffff16565b9050610cf88389898585896110a7565b5050610d0e565b610d0d818787878787611256565b5b505b5050505050565b8051825114610d6157815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610d58929190611d5b565b60405180910390fd5b5f610d6a610809565b90505f5b8351811015610f66575f610d8b828661091790919063ffffffff16565b90505f610da1838661091790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610ec4575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610e679493929190611dc8565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610f5957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f519190611e38565b925050819055505b5050806001019050610d6e565b506001835103611021575f610f845f8561091790919063ffffffff16565b90505f610f9a5f8561091790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611012929190611d5b565b60405180910390a450506110a0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611097929190611e6b565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561124e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611107959493929190611ef2565b6020604051808303815f875af192505050801561114257506040513d601f19601f8201168201806040525081019061113f9190611f5e565b60015b6111c3573d805f8114611170576040519150601f19603f3d011682016040523d82523d5f602084013e611175565b606091505b505f8151036111bb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111b29190611daf565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124c57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112439190611daf565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156113fd578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112b6959493929190611f89565b6020604051808303815f875af19250505080156112f157506040513d601f19601f820116820180604052508101906112ee9190611f5e565b60015b611372573d805f811461131f576040519150601f19603f3d011682016040523d82523d5f602084013e611324565b606091505b505f81510361136a57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113619190611daf565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113fb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f29190611daf565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61143f82611416565b9050919050565b61144f81611435565b8114611459575f80fd5b50565b5f8135905061146a81611446565b92915050565b5f819050919050565b61148281611470565b811461148c575f80fd5b50565b5f8135905061149d81611479565b92915050565b5f80604083850312156114b9576114b861140e565b5b5f6114c68582860161145c565b92505060206114d78582860161148f565b9150509250929050565b6114ea81611470565b82525050565b5f6020820190506115035f8301846114e1565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61153d81611509565b8114611547575f80fd5b50565b5f8135905061155881611534565b92915050565b5f602082840312156115735761157261140e565b5b5f6115808482850161154a565b91505092915050565b5f8115159050919050565b61159d81611589565b82525050565b5f6020820190506115b65f830184611594565b92915050565b5f602082840312156115d1576115d061140e565b5b5f6115de8482850161148f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611629826115e7565b61163381856115f1565b9350611643818560208601611601565b61164c8161160f565b840191505092915050565b5f6020820190508181035f83015261166f818461161f565b905092915050565b5f805f6060848603121561168e5761168d61140e565b5b5f61169b8682870161145c565b93505060206116ac8682870161148f565b92505060406116bd8682870161148f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6117018261160f565b810181811067ffffffffffffffff821117156117205761171f6116cb565b5b80604052505050565b5f611732611405565b905061173e82826116f8565b919050565b5f67ffffffffffffffff82111561175d5761175c6116cb565b5b602082029050602081019050919050565b5f80fd5b5f61178461177f84611743565b611729565b905080838252602082019050602084028301858111156117a7576117a661176e565b5b835b818110156117d057806117bc888261148f565b8452602084019350506020810190506117a9565b5050509392505050565b5f82601f8301126117ee576117ed6116c7565b5b81356117fe848260208601611772565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611825576118246116cb565b5b61182e8261160f565b9050602081019050919050565b828183375f83830152505050565b5f61185b6118568461180b565b611729565b90508281526020810184848401111561187757611876611807565b5b61188284828561183b565b509392505050565b5f82601f83011261189e5761189d6116c7565b5b81356118ae848260208601611849565b91505092915050565b5f805f805f60a086880312156118d0576118cf61140e565b5b5f6118dd8882890161145c565b95505060206118ee8882890161145c565b945050604086013567ffffffffffffffff81111561190f5761190e611412565b5b61191b888289016117da565b935050606086013567ffffffffffffffff81111561193c5761193b611412565b5b611948888289016117da565b925050608086013567ffffffffffffffff81111561196957611968611412565b5b6119758882890161188a565b9150509295509295909350565b5f67ffffffffffffffff82111561199c5761199b6116cb565b5b602082029050602081019050919050565b5f6119bf6119ba84611982565b611729565b905080838252602082019050602084028301858111156119e2576119e161176e565b5b835b81811015611a0b57806119f7888261145c565b8452602084019350506020810190506119e4565b5050509392505050565b5f82601f830112611a2957611a286116c7565b5b8135611a398482602086016119ad565b91505092915050565b5f8060408385031215611a5857611a5761140e565b5b5f83013567ffffffffffffffff811115611a7557611a74611412565b5b611a8185828601611a15565b925050602083013567ffffffffffffffff811115611aa257611aa1611412565b5b611aae858286016117da565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611aea81611470565b82525050565b5f611afb8383611ae1565b60208301905092915050565b5f602082019050919050565b5f611b1d82611ab8565b611b278185611ac2565b9350611b3283611ad2565b805f5b83811015611b62578151611b498882611af0565b9750611b5483611b07565b925050600181019050611b35565b5085935050505092915050565b5f6020820190508181035f830152611b878184611b13565b905092915050565b611b9881611589565b8114611ba2575f80fd5b50565b5f81359050611bb381611b8f565b92915050565b5f8060408385031215611bcf57611bce61140e565b5b5f611bdc8582860161145c565b9250506020611bed85828601611ba5565b9150509250929050565b5f8060408385031215611c0d57611c0c61140e565b5b5f611c1a8582860161145c565b9250506020611c2b8582860161145c565b9150509250929050565b5f805f805f60a08688031215611c4e57611c4d61140e565b5b5f611c5b8882890161145c565b9550506020611c6c8882890161145c565b9450506040611c7d8882890161148f565b9350506060611c8e8882890161148f565b925050608086013567ffffffffffffffff811115611caf57611cae611412565b5b611cbb8882890161188a565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0c57607f821691505b602082108103611d1f57611d1e611cc8565b5b50919050565b611d2e81611435565b82525050565b5f604082019050611d475f830185611d25565b611d546020830184611d25565b9392505050565b5f604082019050611d6e5f8301856114e1565b611d7b60208301846114e1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082019050611dc25f830184611d25565b92915050565b5f608082019050611ddb5f830187611d25565b611de860208301866114e1565b611df560408301856114e1565b611e0260608301846114e1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e4282611470565b9150611e4d83611470565b9250828201905080821115611e6557611e64611e0b565b5b92915050565b5f6040820190508181035f830152611e838185611b13565b90508181036020830152611e978184611b13565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec482611ea0565b611ece8185611eaa565b9350611ede818560208601611601565b611ee78161160f565b840191505092915050565b5f60a082019050611f055f830188611d25565b611f126020830187611d25565b611f1f60408301866114e1565b611f2c60608301856114e1565b8181036080830152611f3e8184611eba565b90509695505050505050565b5f81519050611f5881611534565b92915050565b5f60208284031215611f7357611f7261140e565b5b5f611f8084828501611f4a565b91505092915050565b5f60a082019050611f9c5f830188611d25565b611fa96020830187611d25565b8181036040830152611fbb8186611b13565b90508181036060830152611fcf8185611b13565b90508181036080830152611fe38184611eba565b9050969550505050505056fea2646970667358221220e87db9d6338f9a6a136721a55bdc335876ac06f2dee3b3dac72665bca32a6b1f64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F7B69647D0000 DUP2 MSTORE POP PUSH2 0x55 DUP2 PUSH2 0x5B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x377 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x2A8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0xA5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x15E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x123 JUMP JUMPDEST PUSH2 0x168 DUP7 DUP4 PUSH2 0x123 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1AC PUSH2 0x1A7 PUSH2 0x1A2 DUP5 PUSH2 0x180 JUMP JUMPDEST PUSH2 0x189 JUMP JUMPDEST PUSH2 0x180 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C5 DUP4 PUSH2 0x192 JUMP JUMPDEST PUSH2 0x1D9 PUSH2 0x1D1 DUP3 PUSH2 0x1B3 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x12F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1ED PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1F8 DUP2 DUP5 DUP5 PUSH2 0x1BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x21B JUMPI PUSH2 0x210 PUSH0 DUP3 PUSH2 0x1E5 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1FE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x260 JUMPI PUSH2 0x231 DUP2 PUSH2 0x102 JUMP JUMPDEST PUSH2 0x23A DUP5 PUSH2 0x114 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x249 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x25D PUSH2 0x255 DUP6 PUSH2 0x114 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1FD JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x280 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x265 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x298 DUP4 DUP4 PUSH2 0x271 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B1 DUP3 PUSH2 0x6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CA JUMPI PUSH2 0x2C9 PUSH2 0x78 JUMP JUMPDEST JUMPDEST PUSH2 0x2D4 DUP3 SLOAD PUSH2 0xD2 JUMP JUMPDEST PUSH2 0x2DF DUP3 DUP3 DUP6 PUSH2 0x21F JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x310 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x2FE JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x308 DUP6 DUP3 PUSH2 0x28D JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x31E DUP7 PUSH2 0x102 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x345 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 0x320 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x362 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x35E PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x271 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 0x2025 DUP1 PUSH2 0x384 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x1FF JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x14B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x155E JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x149 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x144 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x181 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x1B6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x5B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0x5C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x33A JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x34A JUMPI POP PUSH2 0x349 DUP3 PUSH2 0x70B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x360 SWAP1 PUSH2 0x1CF5 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 0x38C SWAP1 PUSH2 0x1CF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3BA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x774 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x450 JUMPI POP PUSH2 0x44E DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x494 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A1 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x4F5 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x511 JUMPI PUSH2 0x510 PUSH2 0x16CB 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 0x53F 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 PUSH0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x5A5 JUMPI PUSH2 0x57B PUSH2 0x563 DUP3 DUP8 PUSH2 0x904 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x576 DUP4 DUP8 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0x1D82 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x544 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0x5BB PUSH2 0x809 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x92A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x65D PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x6A2 JUMPI POP PUSH2 0x6A0 DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x6E6 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6DD SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xA93 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x706 DUP4 DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7E4 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0x7F0 DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x801 PUSH0 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x880 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8F0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8FD DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 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 0xA86 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB03 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFA SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB73 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xB7F DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xB90 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC09 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xC15 DUP5 DUP5 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xC34 DUP6 PUSH0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0xC6B JUMP 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 PUSH2 0xC77 DUP6 DUP6 DUP6 DUP6 PUSH2 0xD17 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD10 JUMPI PUSH0 PUSH2 0xCB3 PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0xCFF JUMPI PUSH0 PUSH2 0xCD2 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xCE8 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0xCF8 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x10A7 JUMP JUMPDEST POP POP PUSH2 0xD0E JUMP JUMPDEST PUSH2 0xD0D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1256 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0xD61 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0xD6A PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xF66 JUMPI PUSH0 PUSH2 0xD8B DUP3 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDA1 DUP4 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEC4 JUMPI PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xE70 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE67 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF59 JUMPI DUP1 PUSH0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x1E38 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xD6E JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1021 JUMPI PUSH0 PUSH2 0xF84 PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xF9A PUSH0 DUP6 PUSH2 0x917 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 0x1012 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x10A0 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1097 SWAP3 SWAP2 SWAP1 PUSH2 0x1E6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x124E 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 0x1107 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1142 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 0x113F SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11C3 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1170 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x11BB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x124C JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x13FD 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 0x12B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12F1 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 0x12EE SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1372 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x131F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1324 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x136A JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1361 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x13FB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x143F DUP3 PUSH2 0x1416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x144F DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP2 EQ PUSH2 0x1459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x146A DUP2 PUSH2 0x1446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1482 DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP2 EQ PUSH2 0x148C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x149D DUP2 PUSH2 0x1479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14B9 JUMPI PUSH2 0x14B8 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x14C6 DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D7 DUP6 DUP3 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1503 PUSH0 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153D DUP2 PUSH2 0x1509 JUMP JUMPDEST DUP2 EQ PUSH2 0x1547 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1558 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1573 JUMPI PUSH2 0x1572 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1580 DUP5 DUP3 DUP6 ADD PUSH2 0x154A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x159D DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B6 PUSH0 DUP4 ADD DUP5 PUSH2 0x1594 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D1 JUMPI PUSH2 0x15D0 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DE DUP5 DUP3 DUP6 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1629 DUP3 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x1633 DUP2 DUP6 PUSH2 0x15F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1643 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x164C DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x166F DUP2 DUP5 PUSH2 0x161F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x168E JUMPI PUSH2 0x168D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169B DUP7 DUP3 DUP8 ADD PUSH2 0x145C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x16AC DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x16BD DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1701 DUP3 PUSH2 0x160F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1720 JUMPI PUSH2 0x171F PUSH2 0x16CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 PUSH2 0x1405 JUMP JUMPDEST SWAP1 POP PUSH2 0x173E DUP3 DUP3 PUSH2 0x16F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x175D JUMPI PUSH2 0x175C PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1784 PUSH2 0x177F DUP5 PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x1729 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 0x17A7 JUMPI PUSH2 0x17A6 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D0 JUMPI DUP1 PUSH2 0x17BC DUP9 DUP3 PUSH2 0x148F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17A9 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17FE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1772 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1825 JUMPI PUSH2 0x1824 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH2 0x182E DUP3 PUSH2 0x160F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x185B PUSH2 0x1856 DUP5 PUSH2 0x180B JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1877 JUMPI PUSH2 0x1876 PUSH2 0x1807 JUMP JUMPDEST JUMPDEST PUSH2 0x1882 DUP5 DUP3 DUP6 PUSH2 0x183B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x189E JUMPI PUSH2 0x189D PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x18AE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1849 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18D0 JUMPI PUSH2 0x18CF PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18DD DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x18EE DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x191B DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x193C JUMPI PUSH2 0x193B PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1948 DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1969 JUMPI PUSH2 0x1968 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1975 DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x199C JUMPI PUSH2 0x199B PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19BF PUSH2 0x19BA DUP5 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1729 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 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A0B JUMPI DUP1 PUSH2 0x19F7 DUP9 DUP3 PUSH2 0x145C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19E4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A29 JUMPI PUSH2 0x1A28 PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A39 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A58 JUMPI PUSH2 0x1A57 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A75 JUMPI PUSH2 0x1A74 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1A81 DUP6 DUP3 DUP7 ADD PUSH2 0x1A15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH2 0x1AA1 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1AAE DUP6 DUP3 DUP7 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AEA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AFB DUP4 DUP4 PUSH2 0x1AE1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B1D DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x1B27 DUP2 DUP6 PUSH2 0x1AC2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B32 DUP4 PUSH2 0x1AD2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B62 JUMPI DUP2 MLOAD PUSH2 0x1B49 DUP9 DUP3 PUSH2 0x1AF0 JUMP JUMPDEST SWAP8 POP PUSH2 0x1B54 DUP4 PUSH2 0x1B07 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1B35 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B87 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B98 DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BA2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB3 DUP2 PUSH2 0x1B8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BCF JUMPI PUSH2 0x1BCE PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1BDC DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1BED DUP6 DUP3 DUP7 ADD PUSH2 0x1BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0D JUMPI PUSH2 0x1C0C PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C1A DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C2B DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C4E JUMPI PUSH2 0x1C4D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C5B DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C6C DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1C7D DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1C8E DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1CAE PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1CBB DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1D0C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1D1F JUMPI PUSH2 0x1D1E PUSH2 0x1CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2E DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D47 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1D54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D6E PUSH0 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1D7B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DC2 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1DDB PUSH0 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1DE8 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1DF5 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1E02 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1E42 DUP3 PUSH2 0x1470 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E4D DUP4 PUSH2 0x1470 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1E65 JUMPI PUSH2 0x1E64 PUSH2 0x1E0B JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1E83 DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E97 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EC4 DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x1ECE DUP2 DUP6 PUSH2 0x1EAA JUMP JUMPDEST SWAP4 POP PUSH2 0x1EDE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x1EE7 DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F05 PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F12 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F1F PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1F2C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1F3E DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1F58 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F73 JUMPI PUSH2 0x1F72 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F80 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9C PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1FA9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1FBB DUP2 DUP7 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1FCF DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FE3 DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH30 0xB9D6338F9A6A136721A55BDC335876AC06F2DEE3B3DAC72665BCA32A6B1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"2054:316:49:-:0;;;2092:58;;;;;;;;;;1249:62:2;;;;;;;;;;;;;;;;;1291:13;1299:4;1291:7;;;:13;;:::i;:::-;1249:62;2054:316:49;;10290:86:2;10363:6;10356:4;:13;;;;;;:::i;:::-;;10290:86;:::o;7:99:53:-;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;2054:316:49:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_asSingletonArrays_1066":{"entryPoint":3131,"id":1066,"parameterSlots":2,"returnSlots":2},"@_burn_971":{"entryPoint":2969,"id":971,"parameterSlots":3,"returnSlots":0},"@_mint_880":{"entryPoint":1908,"id":880,"parameterSlots":4,"returnSlots":0},"@_msgSender_2302":{"entryPoint":2057,"id":2302,"parameterSlots":0,"returnSlots":1},"@_safeBatchTransferFrom_817":{"entryPoint":2064,"id":817,"parameterSlots":5,"returnSlots":0},"@_safeTransferFrom_762":{"entryPoint":2707,"id":762,"parameterSlots":5,"returnSlots":0},"@_setApprovalForAll_1050":{"entryPoint":2346,"id":1050,"parameterSlots":3,"returnSlots":0},"@_updateWithAcceptanceCheck_696":{"entryPoint":3179,"id":696,"parameterSlots":5,"returnSlots":0},"@_update_616":{"entryPoint":3351,"id":616,"parameterSlots":4,"returnSlots":0},"@balanceOfBatch_340":{"entryPoint":1193,"id":340,"parameterSlots":2,"returnSlots":1},"@balanceOf_270":{"entryPoint":539,"id":270,"parameterSlots":2,"returnSlots":1},"@burn_17899":{"entryPoint":1787,"id":17899,"parameterSlots":3,"returnSlots":0},"@checkOnERC1155BatchReceived_1401":{"entryPoint":4694,"id":1401,"parameterSlots":6,"returnSlots":0},"@checkOnERC1155Received_1327":{"entryPoint":4263,"id":1327,"parameterSlots":6,"returnSlots":0},"@isApprovedForAll_373":{"entryPoint":1478,"id":373,"parameterSlots":2,"returnSlots":1},"@mint_17883":{"entryPoint":995,"id":17883,"parameterSlots":3,"returnSlots":0},"@safeBatchTransferFrom_463":{"entryPoint":1026,"id":463,"parameterSlots":5,"returnSlots":0},"@safeTransferFrom_417":{"entryPoint":1620,"id":417,"parameterSlots":5,"returnSlots":0},"@setApprovalForAll_356":{"entryPoint":1456,"id":356,"parameterSlots":2,"returnSlots":0},"@supportsInterface_242":{"entryPoint":624,"id":242,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":1803,"id":2844,"parameterSlots":1,"returnSlots":1},"@unsafeMemoryAccess_2230":{"entryPoint":2308,"id":2230,"parameterSlots":2,"returnSlots":1},"@unsafeMemoryAccess_2256":{"entryPoint":2327,"id":2256,"parameterSlots":2,"returnSlots":1},"@uri_253":{"entryPoint":849,"id":253,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6573,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6002,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6217,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5212,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6677,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6106,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":7077,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":5450,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4_fromMemory":{"entryPoint":8010,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5263,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":7159,"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":6327,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr":{"entryPoint":7221,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bool":{"entryPoint":7097,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":5283,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":5751,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6722,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5470,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":8030,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_uint256_to_t_uint256":{"entryPoint":6896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7461,"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":6931,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5524,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":7866,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":5663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":6881,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5345,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":7476,"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":8073,"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":7922,"id":null,"parameterSlots":6,"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":7624,"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":7023,"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":7787,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5539,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5719,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5360,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7515,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":5929,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5125,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6530,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":5955,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6155,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6866,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6840,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":7840,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":5607,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6919,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":6850,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":7850,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":5617,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7736,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":5173,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5513,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5385,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5142,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5232,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6203,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5633,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":7413,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":5880,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":7691,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":7368,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7554,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5835,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":5831,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":5998,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6151,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5138,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5134,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":5647,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":5190,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7055,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5428,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5241,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:23542:53","nodeType":"YulBlock","src":"0:23542:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"379:81:53","nodeType":"YulBlock","src":"379:81:53","statements":[{"nativeSrc":"389:65:53","nodeType":"YulAssignment","src":"389:65:53","value":{"arguments":[{"name":"value","nativeSrc":"404:5:53","nodeType":"YulIdentifier","src":"404:5:53"},{"kind":"number","nativeSrc":"411:42:53","nodeType":"YulLiteral","src":"411:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:53","nodeType":"YulIdentifier","src":"400:3:53"},"nativeSrc":"400:54:53","nodeType":"YulFunctionCall","src":"400:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:53","nodeType":"YulIdentifier","src":"389:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:53","nodeType":"YulTypedName","src":"361:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:53","nodeType":"YulTypedName","src":"371:7:53","type":""}],"src":"334:126:53"},{"body":{"nativeSrc":"511:51:53","nodeType":"YulBlock","src":"511:51:53","statements":[{"nativeSrc":"521:35:53","nodeType":"YulAssignment","src":"521:35:53","value":{"arguments":[{"name":"value","nativeSrc":"550:5:53","nodeType":"YulIdentifier","src":"550:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:53","nodeType":"YulIdentifier","src":"532:17:53"},"nativeSrc":"532:24:53","nodeType":"YulFunctionCall","src":"532:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:53","nodeType":"YulIdentifier","src":"521:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:53","nodeType":"YulTypedName","src":"493:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:53","nodeType":"YulTypedName","src":"503:7:53","type":""}],"src":"466:96:53"},{"body":{"nativeSrc":"611:79:53","nodeType":"YulBlock","src":"611:79:53","statements":[{"body":{"nativeSrc":"668:16:53","nodeType":"YulBlock","src":"668:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:53","nodeType":"YulLiteral","src":"677:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:53","nodeType":"YulLiteral","src":"680:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:53","nodeType":"YulIdentifier","src":"670:6:53"},"nativeSrc":"670:12:53","nodeType":"YulFunctionCall","src":"670:12:53"},"nativeSrc":"670:12:53","nodeType":"YulExpressionStatement","src":"670:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:53","nodeType":"YulIdentifier","src":"634:5:53"},{"arguments":[{"name":"value","nativeSrc":"659:5:53","nodeType":"YulIdentifier","src":"659:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:53","nodeType":"YulIdentifier","src":"641:17:53"},"nativeSrc":"641:24:53","nodeType":"YulFunctionCall","src":"641:24:53"}],"functionName":{"name":"eq","nativeSrc":"631:2:53","nodeType":"YulIdentifier","src":"631:2:53"},"nativeSrc":"631:35:53","nodeType":"YulFunctionCall","src":"631:35:53"}],"functionName":{"name":"iszero","nativeSrc":"624:6:53","nodeType":"YulIdentifier","src":"624:6:53"},"nativeSrc":"624:43:53","nodeType":"YulFunctionCall","src":"624:43:53"},"nativeSrc":"621:63:53","nodeType":"YulIf","src":"621:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:53","nodeType":"YulTypedName","src":"604:5:53","type":""}],"src":"568:122:53"},{"body":{"nativeSrc":"748:87:53","nodeType":"YulBlock","src":"748:87:53","statements":[{"nativeSrc":"758:29:53","nodeType":"YulAssignment","src":"758:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:53","nodeType":"YulIdentifier","src":"780:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:53","nodeType":"YulIdentifier","src":"767:12:53"},"nativeSrc":"767:20:53","nodeType":"YulFunctionCall","src":"767:20:53"},"variableNames":[{"name":"value","nativeSrc":"758:5:53","nodeType":"YulIdentifier","src":"758:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:53","nodeType":"YulIdentifier","src":"823:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:53","nodeType":"YulIdentifier","src":"796:26:53"},"nativeSrc":"796:33:53","nodeType":"YulFunctionCall","src":"796:33:53"},"nativeSrc":"796:33:53","nodeType":"YulExpressionStatement","src":"796:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:53","nodeType":"YulTypedName","src":"726:6:53","type":""},{"name":"end","nativeSrc":"734:3:53","nodeType":"YulTypedName","src":"734:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:53","nodeType":"YulTypedName","src":"742:5:53","type":""}],"src":"696:139:53"},{"body":{"nativeSrc":"886:32:53","nodeType":"YulBlock","src":"886:32:53","statements":[{"nativeSrc":"896:16:53","nodeType":"YulAssignment","src":"896:16:53","value":{"name":"value","nativeSrc":"907:5:53","nodeType":"YulIdentifier","src":"907:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:53","nodeType":"YulIdentifier","src":"896:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:53","nodeType":"YulTypedName","src":"868:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:53","nodeType":"YulTypedName","src":"878:7:53","type":""}],"src":"841:77:53"},{"body":{"nativeSrc":"967:79:53","nodeType":"YulBlock","src":"967:79:53","statements":[{"body":{"nativeSrc":"1024:16:53","nodeType":"YulBlock","src":"1024:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:53","nodeType":"YulLiteral","src":"1033:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:53","nodeType":"YulLiteral","src":"1036:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:53","nodeType":"YulIdentifier","src":"1026:6:53"},"nativeSrc":"1026:12:53","nodeType":"YulFunctionCall","src":"1026:12:53"},"nativeSrc":"1026:12:53","nodeType":"YulExpressionStatement","src":"1026:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:53","nodeType":"YulIdentifier","src":"990:5:53"},{"arguments":[{"name":"value","nativeSrc":"1015:5:53","nodeType":"YulIdentifier","src":"1015:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:53","nodeType":"YulIdentifier","src":"997:17:53"},"nativeSrc":"997:24:53","nodeType":"YulFunctionCall","src":"997:24:53"}],"functionName":{"name":"eq","nativeSrc":"987:2:53","nodeType":"YulIdentifier","src":"987:2:53"},"nativeSrc":"987:35:53","nodeType":"YulFunctionCall","src":"987:35:53"}],"functionName":{"name":"iszero","nativeSrc":"980:6:53","nodeType":"YulIdentifier","src":"980:6:53"},"nativeSrc":"980:43:53","nodeType":"YulFunctionCall","src":"980:43:53"},"nativeSrc":"977:63:53","nodeType":"YulIf","src":"977:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:53","nodeType":"YulTypedName","src":"960:5:53","type":""}],"src":"924:122:53"},{"body":{"nativeSrc":"1104:87:53","nodeType":"YulBlock","src":"1104:87:53","statements":[{"nativeSrc":"1114:29:53","nodeType":"YulAssignment","src":"1114:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:53","nodeType":"YulIdentifier","src":"1136:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:53","nodeType":"YulIdentifier","src":"1123:12:53"},"nativeSrc":"1123:20:53","nodeType":"YulFunctionCall","src":"1123:20:53"},"variableNames":[{"name":"value","nativeSrc":"1114:5:53","nodeType":"YulIdentifier","src":"1114:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:53","nodeType":"YulIdentifier","src":"1179:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:53","nodeType":"YulIdentifier","src":"1152:26:53"},"nativeSrc":"1152:33:53","nodeType":"YulFunctionCall","src":"1152:33:53"},"nativeSrc":"1152:33:53","nodeType":"YulExpressionStatement","src":"1152:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:53","nodeType":"YulTypedName","src":"1082:6:53","type":""},{"name":"end","nativeSrc":"1090:3:53","nodeType":"YulTypedName","src":"1090:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:53","nodeType":"YulTypedName","src":"1098:5:53","type":""}],"src":"1052:139:53"},{"body":{"nativeSrc":"1280:391:53","nodeType":"YulBlock","src":"1280:391:53","statements":[{"body":{"nativeSrc":"1326:83:53","nodeType":"YulBlock","src":"1326:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1328:77:53","nodeType":"YulIdentifier","src":"1328:77:53"},"nativeSrc":"1328:79:53","nodeType":"YulFunctionCall","src":"1328:79:53"},"nativeSrc":"1328:79:53","nodeType":"YulExpressionStatement","src":"1328:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1301:7:53","nodeType":"YulIdentifier","src":"1301:7:53"},{"name":"headStart","nativeSrc":"1310:9:53","nodeType":"YulIdentifier","src":"1310:9:53"}],"functionName":{"name":"sub","nativeSrc":"1297:3:53","nodeType":"YulIdentifier","src":"1297:3:53"},"nativeSrc":"1297:23:53","nodeType":"YulFunctionCall","src":"1297:23:53"},{"kind":"number","nativeSrc":"1322:2:53","nodeType":"YulLiteral","src":"1322:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1293:3:53","nodeType":"YulIdentifier","src":"1293:3:53"},"nativeSrc":"1293:32:53","nodeType":"YulFunctionCall","src":"1293:32:53"},"nativeSrc":"1290:119:53","nodeType":"YulIf","src":"1290:119:53"},{"nativeSrc":"1419:117:53","nodeType":"YulBlock","src":"1419:117:53","statements":[{"nativeSrc":"1434:15:53","nodeType":"YulVariableDeclaration","src":"1434:15:53","value":{"kind":"number","nativeSrc":"1448:1:53","nodeType":"YulLiteral","src":"1448:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1438:6:53","nodeType":"YulTypedName","src":"1438:6:53","type":""}]},{"nativeSrc":"1463:63:53","nodeType":"YulAssignment","src":"1463:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1498:9:53","nodeType":"YulIdentifier","src":"1498:9:53"},{"name":"offset","nativeSrc":"1509:6:53","nodeType":"YulIdentifier","src":"1509:6:53"}],"functionName":{"name":"add","nativeSrc":"1494:3:53","nodeType":"YulIdentifier","src":"1494:3:53"},"nativeSrc":"1494:22:53","nodeType":"YulFunctionCall","src":"1494:22:53"},{"name":"dataEnd","nativeSrc":"1518:7:53","nodeType":"YulIdentifier","src":"1518:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1473:20:53","nodeType":"YulIdentifier","src":"1473:20:53"},"nativeSrc":"1473:53:53","nodeType":"YulFunctionCall","src":"1473:53:53"},"variableNames":[{"name":"value0","nativeSrc":"1463:6:53","nodeType":"YulIdentifier","src":"1463:6:53"}]}]},{"nativeSrc":"1546:118:53","nodeType":"YulBlock","src":"1546:118:53","statements":[{"nativeSrc":"1561:16:53","nodeType":"YulVariableDeclaration","src":"1561:16:53","value":{"kind":"number","nativeSrc":"1575:2:53","nodeType":"YulLiteral","src":"1575:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1565:6:53","nodeType":"YulTypedName","src":"1565:6:53","type":""}]},{"nativeSrc":"1591:63:53","nodeType":"YulAssignment","src":"1591:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:53","nodeType":"YulIdentifier","src":"1626:9:53"},{"name":"offset","nativeSrc":"1637:6:53","nodeType":"YulIdentifier","src":"1637:6:53"}],"functionName":{"name":"add","nativeSrc":"1622:3:53","nodeType":"YulIdentifier","src":"1622:3:53"},"nativeSrc":"1622:22:53","nodeType":"YulFunctionCall","src":"1622:22:53"},{"name":"dataEnd","nativeSrc":"1646:7:53","nodeType":"YulIdentifier","src":"1646:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1601:20:53","nodeType":"YulIdentifier","src":"1601:20:53"},"nativeSrc":"1601:53:53","nodeType":"YulFunctionCall","src":"1601:53:53"},"variableNames":[{"name":"value1","nativeSrc":"1591:6:53","nodeType":"YulIdentifier","src":"1591:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1197:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1242:9:53","nodeType":"YulTypedName","src":"1242:9:53","type":""},{"name":"dataEnd","nativeSrc":"1253:7:53","nodeType":"YulTypedName","src":"1253:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1265:6:53","nodeType":"YulTypedName","src":"1265:6:53","type":""},{"name":"value1","nativeSrc":"1273:6:53","nodeType":"YulTypedName","src":"1273:6:53","type":""}],"src":"1197:474:53"},{"body":{"nativeSrc":"1742:53:53","nodeType":"YulBlock","src":"1742:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1759:3:53","nodeType":"YulIdentifier","src":"1759:3:53"},{"arguments":[{"name":"value","nativeSrc":"1782:5:53","nodeType":"YulIdentifier","src":"1782:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1764:17:53","nodeType":"YulIdentifier","src":"1764:17:53"},"nativeSrc":"1764:24:53","nodeType":"YulFunctionCall","src":"1764:24:53"}],"functionName":{"name":"mstore","nativeSrc":"1752:6:53","nodeType":"YulIdentifier","src":"1752:6:53"},"nativeSrc":"1752:37:53","nodeType":"YulFunctionCall","src":"1752:37:53"},"nativeSrc":"1752:37:53","nodeType":"YulExpressionStatement","src":"1752:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1677:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1730:5:53","nodeType":"YulTypedName","src":"1730:5:53","type":""},{"name":"pos","nativeSrc":"1737:3:53","nodeType":"YulTypedName","src":"1737:3:53","type":""}],"src":"1677:118:53"},{"body":{"nativeSrc":"1899:124:53","nodeType":"YulBlock","src":"1899:124:53","statements":[{"nativeSrc":"1909:26:53","nodeType":"YulAssignment","src":"1909:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1921:9:53","nodeType":"YulIdentifier","src":"1921:9:53"},{"kind":"number","nativeSrc":"1932:2:53","nodeType":"YulLiteral","src":"1932:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1917:3:53","nodeType":"YulIdentifier","src":"1917:3:53"},"nativeSrc":"1917:18:53","nodeType":"YulFunctionCall","src":"1917:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1909:4:53","nodeType":"YulIdentifier","src":"1909:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1989:6:53","nodeType":"YulIdentifier","src":"1989:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"2002:9:53","nodeType":"YulIdentifier","src":"2002:9:53"},{"kind":"number","nativeSrc":"2013:1:53","nodeType":"YulLiteral","src":"2013:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1998:3:53","nodeType":"YulIdentifier","src":"1998:3:53"},"nativeSrc":"1998:17:53","nodeType":"YulFunctionCall","src":"1998:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1945:43:53","nodeType":"YulIdentifier","src":"1945:43:53"},"nativeSrc":"1945:71:53","nodeType":"YulFunctionCall","src":"1945:71:53"},"nativeSrc":"1945:71:53","nodeType":"YulExpressionStatement","src":"1945:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1801:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1871:9:53","nodeType":"YulTypedName","src":"1871:9:53","type":""},{"name":"value0","nativeSrc":"1883:6:53","nodeType":"YulTypedName","src":"1883:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1894:4:53","nodeType":"YulTypedName","src":"1894:4:53","type":""}],"src":"1801:222:53"},{"body":{"nativeSrc":"2073:105:53","nodeType":"YulBlock","src":"2073:105:53","statements":[{"nativeSrc":"2083:89:53","nodeType":"YulAssignment","src":"2083:89:53","value":{"arguments":[{"name":"value","nativeSrc":"2098:5:53","nodeType":"YulIdentifier","src":"2098:5:53"},{"kind":"number","nativeSrc":"2105:66:53","nodeType":"YulLiteral","src":"2105:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"2094:3:53","nodeType":"YulIdentifier","src":"2094:3:53"},"nativeSrc":"2094:78:53","nodeType":"YulFunctionCall","src":"2094:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2083:7:53","nodeType":"YulIdentifier","src":"2083:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"2029:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2055:5:53","nodeType":"YulTypedName","src":"2055:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2065:7:53","nodeType":"YulTypedName","src":"2065:7:53","type":""}],"src":"2029:149:53"},{"body":{"nativeSrc":"2226:78:53","nodeType":"YulBlock","src":"2226:78:53","statements":[{"body":{"nativeSrc":"2282:16:53","nodeType":"YulBlock","src":"2282:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2291:1:53","nodeType":"YulLiteral","src":"2291:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2294:1:53","nodeType":"YulLiteral","src":"2294:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2284:6:53","nodeType":"YulIdentifier","src":"2284:6:53"},"nativeSrc":"2284:12:53","nodeType":"YulFunctionCall","src":"2284:12:53"},"nativeSrc":"2284:12:53","nodeType":"YulExpressionStatement","src":"2284:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2249:5:53","nodeType":"YulIdentifier","src":"2249:5:53"},{"arguments":[{"name":"value","nativeSrc":"2273:5:53","nodeType":"YulIdentifier","src":"2273:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2256:16:53","nodeType":"YulIdentifier","src":"2256:16:53"},"nativeSrc":"2256:23:53","nodeType":"YulFunctionCall","src":"2256:23:53"}],"functionName":{"name":"eq","nativeSrc":"2246:2:53","nodeType":"YulIdentifier","src":"2246:2:53"},"nativeSrc":"2246:34:53","nodeType":"YulFunctionCall","src":"2246:34:53"}],"functionName":{"name":"iszero","nativeSrc":"2239:6:53","nodeType":"YulIdentifier","src":"2239:6:53"},"nativeSrc":"2239:42:53","nodeType":"YulFunctionCall","src":"2239:42:53"},"nativeSrc":"2236:62:53","nodeType":"YulIf","src":"2236:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"2184:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2219:5:53","nodeType":"YulTypedName","src":"2219:5:53","type":""}],"src":"2184:120:53"},{"body":{"nativeSrc":"2361:86:53","nodeType":"YulBlock","src":"2361:86:53","statements":[{"nativeSrc":"2371:29:53","nodeType":"YulAssignment","src":"2371:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2393:6:53","nodeType":"YulIdentifier","src":"2393:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2380:12:53","nodeType":"YulIdentifier","src":"2380:12:53"},"nativeSrc":"2380:20:53","nodeType":"YulFunctionCall","src":"2380:20:53"},"variableNames":[{"name":"value","nativeSrc":"2371:5:53","nodeType":"YulIdentifier","src":"2371:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2435:5:53","nodeType":"YulIdentifier","src":"2435:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"2409:25:53","nodeType":"YulIdentifier","src":"2409:25:53"},"nativeSrc":"2409:32:53","nodeType":"YulFunctionCall","src":"2409:32:53"},"nativeSrc":"2409:32:53","nodeType":"YulExpressionStatement","src":"2409:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"2310:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2339:6:53","nodeType":"YulTypedName","src":"2339:6:53","type":""},{"name":"end","nativeSrc":"2347:3:53","nodeType":"YulTypedName","src":"2347:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2355:5:53","nodeType":"YulTypedName","src":"2355:5:53","type":""}],"src":"2310:137:53"},{"body":{"nativeSrc":"2518:262:53","nodeType":"YulBlock","src":"2518:262:53","statements":[{"body":{"nativeSrc":"2564:83:53","nodeType":"YulBlock","src":"2564:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2566:77:53","nodeType":"YulIdentifier","src":"2566:77:53"},"nativeSrc":"2566:79:53","nodeType":"YulFunctionCall","src":"2566:79:53"},"nativeSrc":"2566:79:53","nodeType":"YulExpressionStatement","src":"2566:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2539:7:53","nodeType":"YulIdentifier","src":"2539:7:53"},{"name":"headStart","nativeSrc":"2548:9:53","nodeType":"YulIdentifier","src":"2548:9:53"}],"functionName":{"name":"sub","nativeSrc":"2535:3:53","nodeType":"YulIdentifier","src":"2535:3:53"},"nativeSrc":"2535:23:53","nodeType":"YulFunctionCall","src":"2535:23:53"},{"kind":"number","nativeSrc":"2560:2:53","nodeType":"YulLiteral","src":"2560:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2531:3:53","nodeType":"YulIdentifier","src":"2531:3:53"},"nativeSrc":"2531:32:53","nodeType":"YulFunctionCall","src":"2531:32:53"},"nativeSrc":"2528:119:53","nodeType":"YulIf","src":"2528:119:53"},{"nativeSrc":"2657:116:53","nodeType":"YulBlock","src":"2657:116:53","statements":[{"nativeSrc":"2672:15:53","nodeType":"YulVariableDeclaration","src":"2672:15:53","value":{"kind":"number","nativeSrc":"2686:1:53","nodeType":"YulLiteral","src":"2686:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2676:6:53","nodeType":"YulTypedName","src":"2676:6:53","type":""}]},{"nativeSrc":"2701:62:53","nodeType":"YulAssignment","src":"2701:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2735:9:53","nodeType":"YulIdentifier","src":"2735:9:53"},{"name":"offset","nativeSrc":"2746:6:53","nodeType":"YulIdentifier","src":"2746:6:53"}],"functionName":{"name":"add","nativeSrc":"2731:3:53","nodeType":"YulIdentifier","src":"2731:3:53"},"nativeSrc":"2731:22:53","nodeType":"YulFunctionCall","src":"2731:22:53"},{"name":"dataEnd","nativeSrc":"2755:7:53","nodeType":"YulIdentifier","src":"2755:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"2711:19:53","nodeType":"YulIdentifier","src":"2711:19:53"},"nativeSrc":"2711:52:53","nodeType":"YulFunctionCall","src":"2711:52:53"},"variableNames":[{"name":"value0","nativeSrc":"2701:6:53","nodeType":"YulIdentifier","src":"2701:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"2453:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2488:9:53","nodeType":"YulTypedName","src":"2488:9:53","type":""},{"name":"dataEnd","nativeSrc":"2499:7:53","nodeType":"YulTypedName","src":"2499:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2511:6:53","nodeType":"YulTypedName","src":"2511:6:53","type":""}],"src":"2453:327:53"},{"body":{"nativeSrc":"2828:48:53","nodeType":"YulBlock","src":"2828:48:53","statements":[{"nativeSrc":"2838:32:53","nodeType":"YulAssignment","src":"2838:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2863:5:53","nodeType":"YulIdentifier","src":"2863:5:53"}],"functionName":{"name":"iszero","nativeSrc":"2856:6:53","nodeType":"YulIdentifier","src":"2856:6:53"},"nativeSrc":"2856:13:53","nodeType":"YulFunctionCall","src":"2856:13:53"}],"functionName":{"name":"iszero","nativeSrc":"2849:6:53","nodeType":"YulIdentifier","src":"2849:6:53"},"nativeSrc":"2849:21:53","nodeType":"YulFunctionCall","src":"2849:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2838:7:53","nodeType":"YulIdentifier","src":"2838:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"2786:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2810:5:53","nodeType":"YulTypedName","src":"2810:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2820:7:53","nodeType":"YulTypedName","src":"2820:7:53","type":""}],"src":"2786:90:53"},{"body":{"nativeSrc":"2941:50:53","nodeType":"YulBlock","src":"2941:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2958:3:53","nodeType":"YulIdentifier","src":"2958:3:53"},{"arguments":[{"name":"value","nativeSrc":"2978:5:53","nodeType":"YulIdentifier","src":"2978:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2963:14:53","nodeType":"YulIdentifier","src":"2963:14:53"},"nativeSrc":"2963:21:53","nodeType":"YulFunctionCall","src":"2963:21:53"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:53","nodeType":"YulIdentifier","src":"2951:6:53"},"nativeSrc":"2951:34:53","nodeType":"YulFunctionCall","src":"2951:34:53"},"nativeSrc":"2951:34:53","nodeType":"YulExpressionStatement","src":"2951:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2882:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2929:5:53","nodeType":"YulTypedName","src":"2929:5:53","type":""},{"name":"pos","nativeSrc":"2936:3:53","nodeType":"YulTypedName","src":"2936:3:53","type":""}],"src":"2882:109:53"},{"body":{"nativeSrc":"3089:118:53","nodeType":"YulBlock","src":"3089:118:53","statements":[{"nativeSrc":"3099:26:53","nodeType":"YulAssignment","src":"3099:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3111:9:53","nodeType":"YulIdentifier","src":"3111:9:53"},{"kind":"number","nativeSrc":"3122:2:53","nodeType":"YulLiteral","src":"3122:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3107:3:53","nodeType":"YulIdentifier","src":"3107:3:53"},"nativeSrc":"3107:18:53","nodeType":"YulFunctionCall","src":"3107:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3099:4:53","nodeType":"YulIdentifier","src":"3099:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3173:6:53","nodeType":"YulIdentifier","src":"3173:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3186:9:53","nodeType":"YulIdentifier","src":"3186:9:53"},{"kind":"number","nativeSrc":"3197:1:53","nodeType":"YulLiteral","src":"3197:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3182:3:53","nodeType":"YulIdentifier","src":"3182:3:53"},"nativeSrc":"3182:17:53","nodeType":"YulFunctionCall","src":"3182:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3135:37:53","nodeType":"YulIdentifier","src":"3135:37:53"},"nativeSrc":"3135:65:53","nodeType":"YulFunctionCall","src":"3135:65:53"},"nativeSrc":"3135:65:53","nodeType":"YulExpressionStatement","src":"3135:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2997:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3061:9:53","nodeType":"YulTypedName","src":"3061:9:53","type":""},{"name":"value0","nativeSrc":"3073:6:53","nodeType":"YulTypedName","src":"3073:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3084:4:53","nodeType":"YulTypedName","src":"3084:4:53","type":""}],"src":"2997:210:53"},{"body":{"nativeSrc":"3279:263:53","nodeType":"YulBlock","src":"3279:263:53","statements":[{"body":{"nativeSrc":"3325:83:53","nodeType":"YulBlock","src":"3325:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3327:77:53","nodeType":"YulIdentifier","src":"3327:77:53"},"nativeSrc":"3327:79:53","nodeType":"YulFunctionCall","src":"3327:79:53"},"nativeSrc":"3327:79:53","nodeType":"YulExpressionStatement","src":"3327:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3300:7:53","nodeType":"YulIdentifier","src":"3300:7:53"},{"name":"headStart","nativeSrc":"3309:9:53","nodeType":"YulIdentifier","src":"3309:9:53"}],"functionName":{"name":"sub","nativeSrc":"3296:3:53","nodeType":"YulIdentifier","src":"3296:3:53"},"nativeSrc":"3296:23:53","nodeType":"YulFunctionCall","src":"3296:23:53"},{"kind":"number","nativeSrc":"3321:2:53","nodeType":"YulLiteral","src":"3321:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3292:3:53","nodeType":"YulIdentifier","src":"3292:3:53"},"nativeSrc":"3292:32:53","nodeType":"YulFunctionCall","src":"3292:32:53"},"nativeSrc":"3289:119:53","nodeType":"YulIf","src":"3289:119:53"},{"nativeSrc":"3418:117:53","nodeType":"YulBlock","src":"3418:117:53","statements":[{"nativeSrc":"3433:15:53","nodeType":"YulVariableDeclaration","src":"3433:15:53","value":{"kind":"number","nativeSrc":"3447:1:53","nodeType":"YulLiteral","src":"3447:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3437:6:53","nodeType":"YulTypedName","src":"3437:6:53","type":""}]},{"nativeSrc":"3462:63:53","nodeType":"YulAssignment","src":"3462:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3497:9:53","nodeType":"YulIdentifier","src":"3497:9:53"},{"name":"offset","nativeSrc":"3508:6:53","nodeType":"YulIdentifier","src":"3508:6:53"}],"functionName":{"name":"add","nativeSrc":"3493:3:53","nodeType":"YulIdentifier","src":"3493:3:53"},"nativeSrc":"3493:22:53","nodeType":"YulFunctionCall","src":"3493:22:53"},{"name":"dataEnd","nativeSrc":"3517:7:53","nodeType":"YulIdentifier","src":"3517:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3472:20:53","nodeType":"YulIdentifier","src":"3472:20:53"},"nativeSrc":"3472:53:53","nodeType":"YulFunctionCall","src":"3472:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3462:6:53","nodeType":"YulIdentifier","src":"3462:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3213:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3249:9:53","nodeType":"YulTypedName","src":"3249:9:53","type":""},{"name":"dataEnd","nativeSrc":"3260:7:53","nodeType":"YulTypedName","src":"3260:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3272:6:53","nodeType":"YulTypedName","src":"3272:6:53","type":""}],"src":"3213:329:53"},{"body":{"nativeSrc":"3607:40:53","nodeType":"YulBlock","src":"3607:40:53","statements":[{"nativeSrc":"3618:22:53","nodeType":"YulAssignment","src":"3618:22:53","value":{"arguments":[{"name":"value","nativeSrc":"3634:5:53","nodeType":"YulIdentifier","src":"3634:5:53"}],"functionName":{"name":"mload","nativeSrc":"3628:5:53","nodeType":"YulIdentifier","src":"3628:5:53"},"nativeSrc":"3628:12:53","nodeType":"YulFunctionCall","src":"3628:12:53"},"variableNames":[{"name":"length","nativeSrc":"3618:6:53","nodeType":"YulIdentifier","src":"3618:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3548:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3590:5:53","nodeType":"YulTypedName","src":"3590:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3600:6:53","nodeType":"YulTypedName","src":"3600:6:53","type":""}],"src":"3548:99:53"},{"body":{"nativeSrc":"3749:73:53","nodeType":"YulBlock","src":"3749:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3766:3:53","nodeType":"YulIdentifier","src":"3766:3:53"},{"name":"length","nativeSrc":"3771:6:53","nodeType":"YulIdentifier","src":"3771:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3759:6:53","nodeType":"YulIdentifier","src":"3759:6:53"},"nativeSrc":"3759:19:53","nodeType":"YulFunctionCall","src":"3759:19:53"},"nativeSrc":"3759:19:53","nodeType":"YulExpressionStatement","src":"3759:19:53"},{"nativeSrc":"3787:29:53","nodeType":"YulAssignment","src":"3787:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"3806:3:53","nodeType":"YulIdentifier","src":"3806:3:53"},{"kind":"number","nativeSrc":"3811:4:53","nodeType":"YulLiteral","src":"3811:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3802:3:53","nodeType":"YulIdentifier","src":"3802:3:53"},"nativeSrc":"3802:14:53","nodeType":"YulFunctionCall","src":"3802:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"3787:11:53","nodeType":"YulIdentifier","src":"3787:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3653:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3721:3:53","nodeType":"YulTypedName","src":"3721:3:53","type":""},{"name":"length","nativeSrc":"3726:6:53","nodeType":"YulTypedName","src":"3726:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3737:11:53","nodeType":"YulTypedName","src":"3737:11:53","type":""}],"src":"3653:169:53"},{"body":{"nativeSrc":"3890:77:53","nodeType":"YulBlock","src":"3890:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3907:3:53","nodeType":"YulIdentifier","src":"3907:3:53"},{"name":"src","nativeSrc":"3912:3:53","nodeType":"YulIdentifier","src":"3912:3:53"},{"name":"length","nativeSrc":"3917:6:53","nodeType":"YulIdentifier","src":"3917:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"3901:5:53","nodeType":"YulIdentifier","src":"3901:5:53"},"nativeSrc":"3901:23:53","nodeType":"YulFunctionCall","src":"3901:23:53"},"nativeSrc":"3901:23:53","nodeType":"YulExpressionStatement","src":"3901:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3944:3:53","nodeType":"YulIdentifier","src":"3944:3:53"},{"name":"length","nativeSrc":"3949:6:53","nodeType":"YulIdentifier","src":"3949:6:53"}],"functionName":{"name":"add","nativeSrc":"3940:3:53","nodeType":"YulIdentifier","src":"3940:3:53"},"nativeSrc":"3940:16:53","nodeType":"YulFunctionCall","src":"3940:16:53"},{"kind":"number","nativeSrc":"3958:1:53","nodeType":"YulLiteral","src":"3958:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3933:6:53","nodeType":"YulIdentifier","src":"3933:6:53"},"nativeSrc":"3933:27:53","nodeType":"YulFunctionCall","src":"3933:27:53"},"nativeSrc":"3933:27:53","nodeType":"YulExpressionStatement","src":"3933:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3828:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3872:3:53","nodeType":"YulTypedName","src":"3872:3:53","type":""},{"name":"dst","nativeSrc":"3877:3:53","nodeType":"YulTypedName","src":"3877:3:53","type":""},{"name":"length","nativeSrc":"3882:6:53","nodeType":"YulTypedName","src":"3882:6:53","type":""}],"src":"3828:139:53"},{"body":{"nativeSrc":"4021:54:53","nodeType":"YulBlock","src":"4021:54:53","statements":[{"nativeSrc":"4031:38:53","nodeType":"YulAssignment","src":"4031:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4049:5:53","nodeType":"YulIdentifier","src":"4049:5:53"},{"kind":"number","nativeSrc":"4056:2:53","nodeType":"YulLiteral","src":"4056:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4045:3:53","nodeType":"YulIdentifier","src":"4045:3:53"},"nativeSrc":"4045:14:53","nodeType":"YulFunctionCall","src":"4045:14:53"},{"arguments":[{"kind":"number","nativeSrc":"4065:2:53","nodeType":"YulLiteral","src":"4065:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4061:3:53","nodeType":"YulIdentifier","src":"4061:3:53"},"nativeSrc":"4061:7:53","nodeType":"YulFunctionCall","src":"4061:7:53"}],"functionName":{"name":"and","nativeSrc":"4041:3:53","nodeType":"YulIdentifier","src":"4041:3:53"},"nativeSrc":"4041:28:53","nodeType":"YulFunctionCall","src":"4041:28:53"},"variableNames":[{"name":"result","nativeSrc":"4031:6:53","nodeType":"YulIdentifier","src":"4031:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3973:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4004:5:53","nodeType":"YulTypedName","src":"4004:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4014:6:53","nodeType":"YulTypedName","src":"4014:6:53","type":""}],"src":"3973:102:53"},{"body":{"nativeSrc":"4173:285:53","nodeType":"YulBlock","src":"4173:285:53","statements":[{"nativeSrc":"4183:53:53","nodeType":"YulVariableDeclaration","src":"4183:53:53","value":{"arguments":[{"name":"value","nativeSrc":"4230:5:53","nodeType":"YulIdentifier","src":"4230:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"4197:32:53","nodeType":"YulIdentifier","src":"4197:32:53"},"nativeSrc":"4197:39:53","nodeType":"YulFunctionCall","src":"4197:39:53"},"variables":[{"name":"length","nativeSrc":"4187:6:53","nodeType":"YulTypedName","src":"4187:6:53","type":""}]},{"nativeSrc":"4245:78:53","nodeType":"YulAssignment","src":"4245:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"4311:3:53","nodeType":"YulIdentifier","src":"4311:3:53"},{"name":"length","nativeSrc":"4316:6:53","nodeType":"YulIdentifier","src":"4316:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4252:58:53","nodeType":"YulIdentifier","src":"4252:58:53"},"nativeSrc":"4252:71:53","nodeType":"YulFunctionCall","src":"4252:71:53"},"variableNames":[{"name":"pos","nativeSrc":"4245:3:53","nodeType":"YulIdentifier","src":"4245:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4371:5:53","nodeType":"YulIdentifier","src":"4371:5:53"},{"kind":"number","nativeSrc":"4378:4:53","nodeType":"YulLiteral","src":"4378:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4367:3:53","nodeType":"YulIdentifier","src":"4367:3:53"},"nativeSrc":"4367:16:53","nodeType":"YulFunctionCall","src":"4367:16:53"},{"name":"pos","nativeSrc":"4385:3:53","nodeType":"YulIdentifier","src":"4385:3:53"},{"name":"length","nativeSrc":"4390:6:53","nodeType":"YulIdentifier","src":"4390:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4332:34:53","nodeType":"YulIdentifier","src":"4332:34:53"},"nativeSrc":"4332:65:53","nodeType":"YulFunctionCall","src":"4332:65:53"},"nativeSrc":"4332:65:53","nodeType":"YulExpressionStatement","src":"4332:65:53"},{"nativeSrc":"4406:46:53","nodeType":"YulAssignment","src":"4406:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"4417:3:53","nodeType":"YulIdentifier","src":"4417:3:53"},{"arguments":[{"name":"length","nativeSrc":"4444:6:53","nodeType":"YulIdentifier","src":"4444:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4422:21:53","nodeType":"YulIdentifier","src":"4422:21:53"},"nativeSrc":"4422:29:53","nodeType":"YulFunctionCall","src":"4422:29:53"}],"functionName":{"name":"add","nativeSrc":"4413:3:53","nodeType":"YulIdentifier","src":"4413:3:53"},"nativeSrc":"4413:39:53","nodeType":"YulFunctionCall","src":"4413:39:53"},"variableNames":[{"name":"end","nativeSrc":"4406:3:53","nodeType":"YulIdentifier","src":"4406:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4081:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4154:5:53","nodeType":"YulTypedName","src":"4154:5:53","type":""},{"name":"pos","nativeSrc":"4161:3:53","nodeType":"YulTypedName","src":"4161:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4169:3:53","nodeType":"YulTypedName","src":"4169:3:53","type":""}],"src":"4081:377:53"},{"body":{"nativeSrc":"4582:195:53","nodeType":"YulBlock","src":"4582:195:53","statements":[{"nativeSrc":"4592:26:53","nodeType":"YulAssignment","src":"4592:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4604:9:53","nodeType":"YulIdentifier","src":"4604:9:53"},{"kind":"number","nativeSrc":"4615:2:53","nodeType":"YulLiteral","src":"4615:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4600:3:53","nodeType":"YulIdentifier","src":"4600:3:53"},"nativeSrc":"4600:18:53","nodeType":"YulFunctionCall","src":"4600:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4592:4:53","nodeType":"YulIdentifier","src":"4592:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4639:9:53","nodeType":"YulIdentifier","src":"4639:9:53"},{"kind":"number","nativeSrc":"4650:1:53","nodeType":"YulLiteral","src":"4650:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4635:3:53","nodeType":"YulIdentifier","src":"4635:3:53"},"nativeSrc":"4635:17:53","nodeType":"YulFunctionCall","src":"4635:17:53"},{"arguments":[{"name":"tail","nativeSrc":"4658:4:53","nodeType":"YulIdentifier","src":"4658:4:53"},{"name":"headStart","nativeSrc":"4664:9:53","nodeType":"YulIdentifier","src":"4664:9:53"}],"functionName":{"name":"sub","nativeSrc":"4654:3:53","nodeType":"YulIdentifier","src":"4654:3:53"},"nativeSrc":"4654:20:53","nodeType":"YulFunctionCall","src":"4654:20:53"}],"functionName":{"name":"mstore","nativeSrc":"4628:6:53","nodeType":"YulIdentifier","src":"4628:6:53"},"nativeSrc":"4628:47:53","nodeType":"YulFunctionCall","src":"4628:47:53"},"nativeSrc":"4628:47:53","nodeType":"YulExpressionStatement","src":"4628:47:53"},{"nativeSrc":"4684:86:53","nodeType":"YulAssignment","src":"4684:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"4756:6:53","nodeType":"YulIdentifier","src":"4756:6:53"},{"name":"tail","nativeSrc":"4765:4:53","nodeType":"YulIdentifier","src":"4765:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4692:63:53","nodeType":"YulIdentifier","src":"4692:63:53"},"nativeSrc":"4692:78:53","nodeType":"YulFunctionCall","src":"4692:78:53"},"variableNames":[{"name":"tail","nativeSrc":"4684:4:53","nodeType":"YulIdentifier","src":"4684:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4464:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4554:9:53","nodeType":"YulTypedName","src":"4554:9:53","type":""},{"name":"value0","nativeSrc":"4566:6:53","nodeType":"YulTypedName","src":"4566:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4577:4:53","nodeType":"YulTypedName","src":"4577:4:53","type":""}],"src":"4464:313:53"},{"body":{"nativeSrc":"4883:519:53","nodeType":"YulBlock","src":"4883:519:53","statements":[{"body":{"nativeSrc":"4929:83:53","nodeType":"YulBlock","src":"4929:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4931:77:53","nodeType":"YulIdentifier","src":"4931:77:53"},"nativeSrc":"4931:79:53","nodeType":"YulFunctionCall","src":"4931:79:53"},"nativeSrc":"4931:79:53","nodeType":"YulExpressionStatement","src":"4931:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4904:7:53","nodeType":"YulIdentifier","src":"4904:7:53"},{"name":"headStart","nativeSrc":"4913:9:53","nodeType":"YulIdentifier","src":"4913:9:53"}],"functionName":{"name":"sub","nativeSrc":"4900:3:53","nodeType":"YulIdentifier","src":"4900:3:53"},"nativeSrc":"4900:23:53","nodeType":"YulFunctionCall","src":"4900:23:53"},{"kind":"number","nativeSrc":"4925:2:53","nodeType":"YulLiteral","src":"4925:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4896:3:53","nodeType":"YulIdentifier","src":"4896:3:53"},"nativeSrc":"4896:32:53","nodeType":"YulFunctionCall","src":"4896:32:53"},"nativeSrc":"4893:119:53","nodeType":"YulIf","src":"4893:119:53"},{"nativeSrc":"5022:117:53","nodeType":"YulBlock","src":"5022:117:53","statements":[{"nativeSrc":"5037:15:53","nodeType":"YulVariableDeclaration","src":"5037:15:53","value":{"kind":"number","nativeSrc":"5051:1:53","nodeType":"YulLiteral","src":"5051:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5041:6:53","nodeType":"YulTypedName","src":"5041:6:53","type":""}]},{"nativeSrc":"5066:63:53","nodeType":"YulAssignment","src":"5066:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5101:9:53","nodeType":"YulIdentifier","src":"5101:9:53"},{"name":"offset","nativeSrc":"5112:6:53","nodeType":"YulIdentifier","src":"5112:6:53"}],"functionName":{"name":"add","nativeSrc":"5097:3:53","nodeType":"YulIdentifier","src":"5097:3:53"},"nativeSrc":"5097:22:53","nodeType":"YulFunctionCall","src":"5097:22:53"},{"name":"dataEnd","nativeSrc":"5121:7:53","nodeType":"YulIdentifier","src":"5121:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5076:20:53","nodeType":"YulIdentifier","src":"5076:20:53"},"nativeSrc":"5076:53:53","nodeType":"YulFunctionCall","src":"5076:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5066:6:53","nodeType":"YulIdentifier","src":"5066:6:53"}]}]},{"nativeSrc":"5149:118:53","nodeType":"YulBlock","src":"5149:118:53","statements":[{"nativeSrc":"5164:16:53","nodeType":"YulVariableDeclaration","src":"5164:16:53","value":{"kind":"number","nativeSrc":"5178:2:53","nodeType":"YulLiteral","src":"5178:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5168:6:53","nodeType":"YulTypedName","src":"5168:6:53","type":""}]},{"nativeSrc":"5194:63:53","nodeType":"YulAssignment","src":"5194:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5229:9:53","nodeType":"YulIdentifier","src":"5229:9:53"},{"name":"offset","nativeSrc":"5240:6:53","nodeType":"YulIdentifier","src":"5240:6:53"}],"functionName":{"name":"add","nativeSrc":"5225:3:53","nodeType":"YulIdentifier","src":"5225:3:53"},"nativeSrc":"5225:22:53","nodeType":"YulFunctionCall","src":"5225:22:53"},{"name":"dataEnd","nativeSrc":"5249:7:53","nodeType":"YulIdentifier","src":"5249:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5204:20:53","nodeType":"YulIdentifier","src":"5204:20:53"},"nativeSrc":"5204:53:53","nodeType":"YulFunctionCall","src":"5204:53:53"},"variableNames":[{"name":"value1","nativeSrc":"5194:6:53","nodeType":"YulIdentifier","src":"5194:6:53"}]}]},{"nativeSrc":"5277:118:53","nodeType":"YulBlock","src":"5277:118:53","statements":[{"nativeSrc":"5292:16:53","nodeType":"YulVariableDeclaration","src":"5292:16:53","value":{"kind":"number","nativeSrc":"5306:2:53","nodeType":"YulLiteral","src":"5306:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5296:6:53","nodeType":"YulTypedName","src":"5296:6:53","type":""}]},{"nativeSrc":"5322:63:53","nodeType":"YulAssignment","src":"5322:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5357:9:53","nodeType":"YulIdentifier","src":"5357:9:53"},{"name":"offset","nativeSrc":"5368:6:53","nodeType":"YulIdentifier","src":"5368:6:53"}],"functionName":{"name":"add","nativeSrc":"5353:3:53","nodeType":"YulIdentifier","src":"5353:3:53"},"nativeSrc":"5353:22:53","nodeType":"YulFunctionCall","src":"5353:22:53"},{"name":"dataEnd","nativeSrc":"5377:7:53","nodeType":"YulIdentifier","src":"5377:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5332:20:53","nodeType":"YulIdentifier","src":"5332:20:53"},"nativeSrc":"5332:53:53","nodeType":"YulFunctionCall","src":"5332:53:53"},"variableNames":[{"name":"value2","nativeSrc":"5322:6:53","nodeType":"YulIdentifier","src":"5322:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nativeSrc":"4783:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4837:9:53","nodeType":"YulTypedName","src":"4837:9:53","type":""},{"name":"dataEnd","nativeSrc":"4848:7:53","nodeType":"YulTypedName","src":"4848:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4860:6:53","nodeType":"YulTypedName","src":"4860:6:53","type":""},{"name":"value1","nativeSrc":"4868:6:53","nodeType":"YulTypedName","src":"4868:6:53","type":""},{"name":"value2","nativeSrc":"4876:6:53","nodeType":"YulTypedName","src":"4876:6:53","type":""}],"src":"4783:619:53"},{"body":{"nativeSrc":"5497:28:53","nodeType":"YulBlock","src":"5497:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5514:1:53","nodeType":"YulLiteral","src":"5514:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5517:1:53","nodeType":"YulLiteral","src":"5517:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5507:6:53","nodeType":"YulIdentifier","src":"5507:6:53"},"nativeSrc":"5507:12:53","nodeType":"YulFunctionCall","src":"5507:12:53"},"nativeSrc":"5507:12:53","nodeType":"YulExpressionStatement","src":"5507:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5408:117:53","nodeType":"YulFunctionDefinition","src":"5408:117:53"},{"body":{"nativeSrc":"5559:152:53","nodeType":"YulBlock","src":"5559:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5576:1:53","nodeType":"YulLiteral","src":"5576:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5579:77:53","nodeType":"YulLiteral","src":"5579:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5569:6:53","nodeType":"YulIdentifier","src":"5569:6:53"},"nativeSrc":"5569:88:53","nodeType":"YulFunctionCall","src":"5569:88:53"},"nativeSrc":"5569:88:53","nodeType":"YulExpressionStatement","src":"5569:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5673:1:53","nodeType":"YulLiteral","src":"5673:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"5676:4:53","nodeType":"YulLiteral","src":"5676:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5666:6:53","nodeType":"YulIdentifier","src":"5666:6:53"},"nativeSrc":"5666:15:53","nodeType":"YulFunctionCall","src":"5666:15:53"},"nativeSrc":"5666:15:53","nodeType":"YulExpressionStatement","src":"5666:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5697:1:53","nodeType":"YulLiteral","src":"5697:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5700:4:53","nodeType":"YulLiteral","src":"5700:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5690:6:53","nodeType":"YulIdentifier","src":"5690:6:53"},"nativeSrc":"5690:15:53","nodeType":"YulFunctionCall","src":"5690:15:53"},"nativeSrc":"5690:15:53","nodeType":"YulExpressionStatement","src":"5690:15:53"}]},"name":"panic_error_0x41","nativeSrc":"5531:180:53","nodeType":"YulFunctionDefinition","src":"5531:180:53"},{"body":{"nativeSrc":"5760:238:53","nodeType":"YulBlock","src":"5760:238:53","statements":[{"nativeSrc":"5770:58:53","nodeType":"YulVariableDeclaration","src":"5770:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"5792:6:53","nodeType":"YulIdentifier","src":"5792:6:53"},{"arguments":[{"name":"size","nativeSrc":"5822:4:53","nodeType":"YulIdentifier","src":"5822:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5800:21:53","nodeType":"YulIdentifier","src":"5800:21:53"},"nativeSrc":"5800:27:53","nodeType":"YulFunctionCall","src":"5800:27:53"}],"functionName":{"name":"add","nativeSrc":"5788:3:53","nodeType":"YulIdentifier","src":"5788:3:53"},"nativeSrc":"5788:40:53","nodeType":"YulFunctionCall","src":"5788:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"5774:10:53","nodeType":"YulTypedName","src":"5774:10:53","type":""}]},{"body":{"nativeSrc":"5939:22:53","nodeType":"YulBlock","src":"5939:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5941:16:53","nodeType":"YulIdentifier","src":"5941:16:53"},"nativeSrc":"5941:18:53","nodeType":"YulFunctionCall","src":"5941:18:53"},"nativeSrc":"5941:18:53","nodeType":"YulExpressionStatement","src":"5941:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5882:10:53","nodeType":"YulIdentifier","src":"5882:10:53"},{"kind":"number","nativeSrc":"5894:18:53","nodeType":"YulLiteral","src":"5894:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5879:2:53","nodeType":"YulIdentifier","src":"5879:2:53"},"nativeSrc":"5879:34:53","nodeType":"YulFunctionCall","src":"5879:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5918:10:53","nodeType":"YulIdentifier","src":"5918:10:53"},{"name":"memPtr","nativeSrc":"5930:6:53","nodeType":"YulIdentifier","src":"5930:6:53"}],"functionName":{"name":"lt","nativeSrc":"5915:2:53","nodeType":"YulIdentifier","src":"5915:2:53"},"nativeSrc":"5915:22:53","nodeType":"YulFunctionCall","src":"5915:22:53"}],"functionName":{"name":"or","nativeSrc":"5876:2:53","nodeType":"YulIdentifier","src":"5876:2:53"},"nativeSrc":"5876:62:53","nodeType":"YulFunctionCall","src":"5876:62:53"},"nativeSrc":"5873:88:53","nodeType":"YulIf","src":"5873:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5977:2:53","nodeType":"YulLiteral","src":"5977:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5981:10:53","nodeType":"YulIdentifier","src":"5981:10:53"}],"functionName":{"name":"mstore","nativeSrc":"5970:6:53","nodeType":"YulIdentifier","src":"5970:6:53"},"nativeSrc":"5970:22:53","nodeType":"YulFunctionCall","src":"5970:22:53"},"nativeSrc":"5970:22:53","nodeType":"YulExpressionStatement","src":"5970:22:53"}]},"name":"finalize_allocation","nativeSrc":"5717:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5746:6:53","nodeType":"YulTypedName","src":"5746:6:53","type":""},{"name":"size","nativeSrc":"5754:4:53","nodeType":"YulTypedName","src":"5754:4:53","type":""}],"src":"5717:281:53"},{"body":{"nativeSrc":"6045:88:53","nodeType":"YulBlock","src":"6045:88:53","statements":[{"nativeSrc":"6055:30:53","nodeType":"YulAssignment","src":"6055:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"6065:18:53","nodeType":"YulIdentifier","src":"6065:18:53"},"nativeSrc":"6065:20:53","nodeType":"YulFunctionCall","src":"6065:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"6055:6:53","nodeType":"YulIdentifier","src":"6055:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"6114:6:53","nodeType":"YulIdentifier","src":"6114:6:53"},{"name":"size","nativeSrc":"6122:4:53","nodeType":"YulIdentifier","src":"6122:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"6094:19:53","nodeType":"YulIdentifier","src":"6094:19:53"},"nativeSrc":"6094:33:53","nodeType":"YulFunctionCall","src":"6094:33:53"},"nativeSrc":"6094:33:53","nodeType":"YulExpressionStatement","src":"6094:33:53"}]},"name":"allocate_memory","nativeSrc":"6004:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6029:4:53","nodeType":"YulTypedName","src":"6029:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6038:6:53","nodeType":"YulTypedName","src":"6038:6:53","type":""}],"src":"6004:129:53"},{"body":{"nativeSrc":"6221:229:53","nodeType":"YulBlock","src":"6221:229:53","statements":[{"body":{"nativeSrc":"6326:22:53","nodeType":"YulBlock","src":"6326:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6328:16:53","nodeType":"YulIdentifier","src":"6328:16:53"},"nativeSrc":"6328:18:53","nodeType":"YulFunctionCall","src":"6328:18:53"},"nativeSrc":"6328:18:53","nodeType":"YulExpressionStatement","src":"6328:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6298:6:53","nodeType":"YulIdentifier","src":"6298:6:53"},{"kind":"number","nativeSrc":"6306:18:53","nodeType":"YulLiteral","src":"6306:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6295:2:53","nodeType":"YulIdentifier","src":"6295:2:53"},"nativeSrc":"6295:30:53","nodeType":"YulFunctionCall","src":"6295:30:53"},"nativeSrc":"6292:56:53","nodeType":"YulIf","src":"6292:56:53"},{"nativeSrc":"6358:25:53","nodeType":"YulAssignment","src":"6358:25:53","value":{"arguments":[{"name":"length","nativeSrc":"6370:6:53","nodeType":"YulIdentifier","src":"6370:6:53"},{"kind":"number","nativeSrc":"6378:4:53","nodeType":"YulLiteral","src":"6378:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6366:3:53","nodeType":"YulIdentifier","src":"6366:3:53"},"nativeSrc":"6366:17:53","nodeType":"YulFunctionCall","src":"6366:17:53"},"variableNames":[{"name":"size","nativeSrc":"6358:4:53","nodeType":"YulIdentifier","src":"6358:4:53"}]},{"nativeSrc":"6420:23:53","nodeType":"YulAssignment","src":"6420:23:53","value":{"arguments":[{"name":"size","nativeSrc":"6432:4:53","nodeType":"YulIdentifier","src":"6432:4:53"},{"kind":"number","nativeSrc":"6438:4:53","nodeType":"YulLiteral","src":"6438:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6428:3:53","nodeType":"YulIdentifier","src":"6428:3:53"},"nativeSrc":"6428:15:53","nodeType":"YulFunctionCall","src":"6428:15:53"},"variableNames":[{"name":"size","nativeSrc":"6420:4:53","nodeType":"YulIdentifier","src":"6420:4:53"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6139:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"6205:6:53","nodeType":"YulTypedName","src":"6205:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"6216:4:53","nodeType":"YulTypedName","src":"6216:4:53","type":""}],"src":"6139:311:53"},{"body":{"nativeSrc":"6545:28:53","nodeType":"YulBlock","src":"6545:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6562:1:53","nodeType":"YulLiteral","src":"6562:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6565:1:53","nodeType":"YulLiteral","src":"6565:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6555:6:53","nodeType":"YulIdentifier","src":"6555:6:53"},"nativeSrc":"6555:12:53","nodeType":"YulFunctionCall","src":"6555:12:53"},"nativeSrc":"6555:12:53","nodeType":"YulExpressionStatement","src":"6555:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6456:117:53","nodeType":"YulFunctionDefinition","src":"6456:117:53"},{"body":{"nativeSrc":"6698:608:53","nodeType":"YulBlock","src":"6698:608:53","statements":[{"nativeSrc":"6708:90:53","nodeType":"YulAssignment","src":"6708:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6790:6:53","nodeType":"YulIdentifier","src":"6790:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6733:56:53","nodeType":"YulIdentifier","src":"6733:56:53"},"nativeSrc":"6733:64:53","nodeType":"YulFunctionCall","src":"6733:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"6717:15:53","nodeType":"YulIdentifier","src":"6717:15:53"},"nativeSrc":"6717:81:53","nodeType":"YulFunctionCall","src":"6717:81:53"},"variableNames":[{"name":"array","nativeSrc":"6708:5:53","nodeType":"YulIdentifier","src":"6708:5:53"}]},{"nativeSrc":"6807:16:53","nodeType":"YulVariableDeclaration","src":"6807:16:53","value":{"name":"array","nativeSrc":"6818:5:53","nodeType":"YulIdentifier","src":"6818:5:53"},"variables":[{"name":"dst","nativeSrc":"6811:3:53","nodeType":"YulTypedName","src":"6811:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6840:5:53","nodeType":"YulIdentifier","src":"6840:5:53"},{"name":"length","nativeSrc":"6847:6:53","nodeType":"YulIdentifier","src":"6847:6:53"}],"functionName":{"name":"mstore","nativeSrc":"6833:6:53","nodeType":"YulIdentifier","src":"6833:6:53"},"nativeSrc":"6833:21:53","nodeType":"YulFunctionCall","src":"6833:21:53"},"nativeSrc":"6833:21:53","nodeType":"YulExpressionStatement","src":"6833:21:53"},{"nativeSrc":"6863:23:53","nodeType":"YulAssignment","src":"6863:23:53","value":{"arguments":[{"name":"array","nativeSrc":"6874:5:53","nodeType":"YulIdentifier","src":"6874:5:53"},{"kind":"number","nativeSrc":"6881:4:53","nodeType":"YulLiteral","src":"6881:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6870:3:53","nodeType":"YulIdentifier","src":"6870:3:53"},"nativeSrc":"6870:16:53","nodeType":"YulFunctionCall","src":"6870:16:53"},"variableNames":[{"name":"dst","nativeSrc":"6863:3:53","nodeType":"YulIdentifier","src":"6863:3:53"}]},{"nativeSrc":"6896:44:53","nodeType":"YulVariableDeclaration","src":"6896:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"6914:6:53","nodeType":"YulIdentifier","src":"6914:6:53"},{"arguments":[{"name":"length","nativeSrc":"6926:6:53","nodeType":"YulIdentifier","src":"6926:6:53"},{"kind":"number","nativeSrc":"6934:4:53","nodeType":"YulLiteral","src":"6934:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6922:3:53","nodeType":"YulIdentifier","src":"6922:3:53"},"nativeSrc":"6922:17:53","nodeType":"YulFunctionCall","src":"6922:17:53"}],"functionName":{"name":"add","nativeSrc":"6910:3:53","nodeType":"YulIdentifier","src":"6910:3:53"},"nativeSrc":"6910:30:53","nodeType":"YulFunctionCall","src":"6910:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"6900:6:53","nodeType":"YulTypedName","src":"6900:6:53","type":""}]},{"body":{"nativeSrc":"6968:103:53","nodeType":"YulBlock","src":"6968:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6982:77:53","nodeType":"YulIdentifier","src":"6982:77:53"},"nativeSrc":"6982:79:53","nodeType":"YulFunctionCall","src":"6982:79:53"},"nativeSrc":"6982:79:53","nodeType":"YulExpressionStatement","src":"6982:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"6955:6:53","nodeType":"YulIdentifier","src":"6955:6:53"},{"name":"end","nativeSrc":"6963:3:53","nodeType":"YulIdentifier","src":"6963:3:53"}],"functionName":{"name":"gt","nativeSrc":"6952:2:53","nodeType":"YulIdentifier","src":"6952:2:53"},"nativeSrc":"6952:15:53","nodeType":"YulFunctionCall","src":"6952:15:53"},"nativeSrc":"6949:122:53","nodeType":"YulIf","src":"6949:122:53"},{"body":{"nativeSrc":"7156:144:53","nodeType":"YulBlock","src":"7156:144:53","statements":[{"nativeSrc":"7171:21:53","nodeType":"YulVariableDeclaration","src":"7171:21:53","value":{"name":"src","nativeSrc":"7189:3:53","nodeType":"YulIdentifier","src":"7189:3:53"},"variables":[{"name":"elementPos","nativeSrc":"7175:10:53","nodeType":"YulTypedName","src":"7175:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"7213:3:53","nodeType":"YulIdentifier","src":"7213:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"7239:10:53","nodeType":"YulIdentifier","src":"7239:10:53"},{"name":"end","nativeSrc":"7251:3:53","nodeType":"YulIdentifier","src":"7251:3:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7218:20:53","nodeType":"YulIdentifier","src":"7218:20:53"},"nativeSrc":"7218:37:53","nodeType":"YulFunctionCall","src":"7218:37:53"}],"functionName":{"name":"mstore","nativeSrc":"7206:6:53","nodeType":"YulIdentifier","src":"7206:6:53"},"nativeSrc":"7206:50:53","nodeType":"YulFunctionCall","src":"7206:50:53"},"nativeSrc":"7206:50:53","nodeType":"YulExpressionStatement","src":"7206:50:53"},{"nativeSrc":"7269:21:53","nodeType":"YulAssignment","src":"7269:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"7280:3:53","nodeType":"YulIdentifier","src":"7280:3:53"},{"kind":"number","nativeSrc":"7285:4:53","nodeType":"YulLiteral","src":"7285:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7276:3:53","nodeType":"YulIdentifier","src":"7276:3:53"},"nativeSrc":"7276:14:53","nodeType":"YulFunctionCall","src":"7276:14:53"},"variableNames":[{"name":"dst","nativeSrc":"7269:3:53","nodeType":"YulIdentifier","src":"7269:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"7109:3:53","nodeType":"YulIdentifier","src":"7109:3:53"},{"name":"srcEnd","nativeSrc":"7114:6:53","nodeType":"YulIdentifier","src":"7114:6:53"}],"functionName":{"name":"lt","nativeSrc":"7106:2:53","nodeType":"YulIdentifier","src":"7106:2:53"},"nativeSrc":"7106:15:53","nodeType":"YulFunctionCall","src":"7106:15:53"},"nativeSrc":"7080:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"7122:25:53","nodeType":"YulBlock","src":"7122:25:53","statements":[{"nativeSrc":"7124:21:53","nodeType":"YulAssignment","src":"7124:21:53","value":{"arguments":[{"name":"src","nativeSrc":"7135:3:53","nodeType":"YulIdentifier","src":"7135:3:53"},{"kind":"number","nativeSrc":"7140:4:53","nodeType":"YulLiteral","src":"7140:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7131:3:53","nodeType":"YulIdentifier","src":"7131:3:53"},"nativeSrc":"7131:14:53","nodeType":"YulFunctionCall","src":"7131:14:53"},"variableNames":[{"name":"src","nativeSrc":"7124:3:53","nodeType":"YulIdentifier","src":"7124:3:53"}]}]},"pre":{"nativeSrc":"7084:21:53","nodeType":"YulBlock","src":"7084:21:53","statements":[{"nativeSrc":"7086:17:53","nodeType":"YulVariableDeclaration","src":"7086:17:53","value":{"name":"offset","nativeSrc":"7097:6:53","nodeType":"YulIdentifier","src":"7097:6:53"},"variables":[{"name":"src","nativeSrc":"7090:3:53","nodeType":"YulTypedName","src":"7090:3:53","type":""}]}]},"src":"7080:220:53"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6596:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6668:6:53","nodeType":"YulTypedName","src":"6668:6:53","type":""},{"name":"length","nativeSrc":"6676:6:53","nodeType":"YulTypedName","src":"6676:6:53","type":""},{"name":"end","nativeSrc":"6684:3:53","nodeType":"YulTypedName","src":"6684:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6692:5:53","nodeType":"YulTypedName","src":"6692:5:53","type":""}],"src":"6596:710:53"},{"body":{"nativeSrc":"7406:293:53","nodeType":"YulBlock","src":"7406:293:53","statements":[{"body":{"nativeSrc":"7455:83:53","nodeType":"YulBlock","src":"7455:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7457:77:53","nodeType":"YulIdentifier","src":"7457:77:53"},"nativeSrc":"7457:79:53","nodeType":"YulFunctionCall","src":"7457:79:53"},"nativeSrc":"7457:79:53","nodeType":"YulExpressionStatement","src":"7457:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7434:6:53","nodeType":"YulIdentifier","src":"7434:6:53"},{"kind":"number","nativeSrc":"7442:4:53","nodeType":"YulLiteral","src":"7442:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7430:3:53","nodeType":"YulIdentifier","src":"7430:3:53"},"nativeSrc":"7430:17:53","nodeType":"YulFunctionCall","src":"7430:17:53"},{"name":"end","nativeSrc":"7449:3:53","nodeType":"YulIdentifier","src":"7449:3:53"}],"functionName":{"name":"slt","nativeSrc":"7426:3:53","nodeType":"YulIdentifier","src":"7426:3:53"},"nativeSrc":"7426:27:53","nodeType":"YulFunctionCall","src":"7426:27:53"}],"functionName":{"name":"iszero","nativeSrc":"7419:6:53","nodeType":"YulIdentifier","src":"7419:6:53"},"nativeSrc":"7419:35:53","nodeType":"YulFunctionCall","src":"7419:35:53"},"nativeSrc":"7416:122:53","nodeType":"YulIf","src":"7416:122:53"},{"nativeSrc":"7547:34:53","nodeType":"YulVariableDeclaration","src":"7547:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"7574:6:53","nodeType":"YulIdentifier","src":"7574:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7561:12:53","nodeType":"YulIdentifier","src":"7561:12:53"},"nativeSrc":"7561:20:53","nodeType":"YulFunctionCall","src":"7561:20:53"},"variables":[{"name":"length","nativeSrc":"7551:6:53","nodeType":"YulTypedName","src":"7551:6:53","type":""}]},{"nativeSrc":"7590:103:53","nodeType":"YulAssignment","src":"7590:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7666:6:53","nodeType":"YulIdentifier","src":"7666:6:53"},{"kind":"number","nativeSrc":"7674:4:53","nodeType":"YulLiteral","src":"7674:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7662:3:53","nodeType":"YulIdentifier","src":"7662:3:53"},"nativeSrc":"7662:17:53","nodeType":"YulFunctionCall","src":"7662:17:53"},{"name":"length","nativeSrc":"7681:6:53","nodeType":"YulIdentifier","src":"7681:6:53"},{"name":"end","nativeSrc":"7689:3:53","nodeType":"YulIdentifier","src":"7689:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"7599:62:53","nodeType":"YulIdentifier","src":"7599:62:53"},"nativeSrc":"7599:94:53","nodeType":"YulFunctionCall","src":"7599:94:53"},"variableNames":[{"name":"array","nativeSrc":"7590:5:53","nodeType":"YulIdentifier","src":"7590:5:53"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"7329:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7384:6:53","nodeType":"YulTypedName","src":"7384:6:53","type":""},{"name":"end","nativeSrc":"7392:3:53","nodeType":"YulTypedName","src":"7392:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7400:5:53","nodeType":"YulTypedName","src":"7400:5:53","type":""}],"src":"7329:370:53"},{"body":{"nativeSrc":"7794:28:53","nodeType":"YulBlock","src":"7794:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7811:1:53","nodeType":"YulLiteral","src":"7811:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7814:1:53","nodeType":"YulLiteral","src":"7814:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7804:6:53","nodeType":"YulIdentifier","src":"7804:6:53"},"nativeSrc":"7804:12:53","nodeType":"YulFunctionCall","src":"7804:12:53"},"nativeSrc":"7804:12:53","nodeType":"YulExpressionStatement","src":"7804:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"7705:117:53","nodeType":"YulFunctionDefinition","src":"7705:117:53"},{"body":{"nativeSrc":"7894:241:53","nodeType":"YulBlock","src":"7894:241:53","statements":[{"body":{"nativeSrc":"7999:22:53","nodeType":"YulBlock","src":"7999:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8001:16:53","nodeType":"YulIdentifier","src":"8001:16:53"},"nativeSrc":"8001:18:53","nodeType":"YulFunctionCall","src":"8001:18:53"},"nativeSrc":"8001:18:53","nodeType":"YulExpressionStatement","src":"8001:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7971:6:53","nodeType":"YulIdentifier","src":"7971:6:53"},{"kind":"number","nativeSrc":"7979:18:53","nodeType":"YulLiteral","src":"7979:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7968:2:53","nodeType":"YulIdentifier","src":"7968:2:53"},"nativeSrc":"7968:30:53","nodeType":"YulFunctionCall","src":"7968:30:53"},"nativeSrc":"7965:56:53","nodeType":"YulIf","src":"7965:56:53"},{"nativeSrc":"8031:37:53","nodeType":"YulAssignment","src":"8031:37:53","value":{"arguments":[{"name":"length","nativeSrc":"8061:6:53","nodeType":"YulIdentifier","src":"8061:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8039:21:53","nodeType":"YulIdentifier","src":"8039:21:53"},"nativeSrc":"8039:29:53","nodeType":"YulFunctionCall","src":"8039:29:53"},"variableNames":[{"name":"size","nativeSrc":"8031:4:53","nodeType":"YulIdentifier","src":"8031:4:53"}]},{"nativeSrc":"8105:23:53","nodeType":"YulAssignment","src":"8105:23:53","value":{"arguments":[{"name":"size","nativeSrc":"8117:4:53","nodeType":"YulIdentifier","src":"8117:4:53"},{"kind":"number","nativeSrc":"8123:4:53","nodeType":"YulLiteral","src":"8123:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8113:3:53","nodeType":"YulIdentifier","src":"8113:3:53"},"nativeSrc":"8113:15:53","nodeType":"YulFunctionCall","src":"8113:15:53"},"variableNames":[{"name":"size","nativeSrc":"8105:4:53","nodeType":"YulIdentifier","src":"8105:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"7828:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"7878:6:53","nodeType":"YulTypedName","src":"7878:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"7889:4:53","nodeType":"YulTypedName","src":"7889:4:53","type":""}],"src":"7828:307:53"},{"body":{"nativeSrc":"8205:84:53","nodeType":"YulBlock","src":"8205:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"8229:3:53","nodeType":"YulIdentifier","src":"8229:3:53"},{"name":"src","nativeSrc":"8234:3:53","nodeType":"YulIdentifier","src":"8234:3:53"},{"name":"length","nativeSrc":"8239:6:53","nodeType":"YulIdentifier","src":"8239:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"8216:12:53","nodeType":"YulIdentifier","src":"8216:12:53"},"nativeSrc":"8216:30:53","nodeType":"YulFunctionCall","src":"8216:30:53"},"nativeSrc":"8216:30:53","nodeType":"YulExpressionStatement","src":"8216:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8266:3:53","nodeType":"YulIdentifier","src":"8266:3:53"},{"name":"length","nativeSrc":"8271:6:53","nodeType":"YulIdentifier","src":"8271:6:53"}],"functionName":{"name":"add","nativeSrc":"8262:3:53","nodeType":"YulIdentifier","src":"8262:3:53"},"nativeSrc":"8262:16:53","nodeType":"YulFunctionCall","src":"8262:16:53"},{"kind":"number","nativeSrc":"8280:1:53","nodeType":"YulLiteral","src":"8280:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8255:6:53","nodeType":"YulIdentifier","src":"8255:6:53"},"nativeSrc":"8255:27:53","nodeType":"YulFunctionCall","src":"8255:27:53"},"nativeSrc":"8255:27:53","nodeType":"YulExpressionStatement","src":"8255:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"8141:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8187:3:53","nodeType":"YulTypedName","src":"8187:3:53","type":""},{"name":"dst","nativeSrc":"8192:3:53","nodeType":"YulTypedName","src":"8192:3:53","type":""},{"name":"length","nativeSrc":"8197:6:53","nodeType":"YulTypedName","src":"8197:6:53","type":""}],"src":"8141:148:53"},{"body":{"nativeSrc":"8378:340:53","nodeType":"YulBlock","src":"8378:340:53","statements":[{"nativeSrc":"8388:74:53","nodeType":"YulAssignment","src":"8388:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"8454:6:53","nodeType":"YulIdentifier","src":"8454:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"8413:40:53","nodeType":"YulIdentifier","src":"8413:40:53"},"nativeSrc":"8413:48:53","nodeType":"YulFunctionCall","src":"8413:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"8397:15:53","nodeType":"YulIdentifier","src":"8397:15:53"},"nativeSrc":"8397:65:53","nodeType":"YulFunctionCall","src":"8397:65:53"},"variableNames":[{"name":"array","nativeSrc":"8388:5:53","nodeType":"YulIdentifier","src":"8388:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"8478:5:53","nodeType":"YulIdentifier","src":"8478:5:53"},{"name":"length","nativeSrc":"8485:6:53","nodeType":"YulIdentifier","src":"8485:6:53"}],"functionName":{"name":"mstore","nativeSrc":"8471:6:53","nodeType":"YulIdentifier","src":"8471:6:53"},"nativeSrc":"8471:21:53","nodeType":"YulFunctionCall","src":"8471:21:53"},"nativeSrc":"8471:21:53","nodeType":"YulExpressionStatement","src":"8471:21:53"},{"nativeSrc":"8501:27:53","nodeType":"YulVariableDeclaration","src":"8501:27:53","value":{"arguments":[{"name":"array","nativeSrc":"8516:5:53","nodeType":"YulIdentifier","src":"8516:5:53"},{"kind":"number","nativeSrc":"8523:4:53","nodeType":"YulLiteral","src":"8523:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8512:3:53","nodeType":"YulIdentifier","src":"8512:3:53"},"nativeSrc":"8512:16:53","nodeType":"YulFunctionCall","src":"8512:16:53"},"variables":[{"name":"dst","nativeSrc":"8505:3:53","nodeType":"YulTypedName","src":"8505:3:53","type":""}]},{"body":{"nativeSrc":"8566:83:53","nodeType":"YulBlock","src":"8566:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"8568:77:53","nodeType":"YulIdentifier","src":"8568:77:53"},"nativeSrc":"8568:79:53","nodeType":"YulFunctionCall","src":"8568:79:53"},"nativeSrc":"8568:79:53","nodeType":"YulExpressionStatement","src":"8568:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8547:3:53","nodeType":"YulIdentifier","src":"8547:3:53"},{"name":"length","nativeSrc":"8552:6:53","nodeType":"YulIdentifier","src":"8552:6:53"}],"functionName":{"name":"add","nativeSrc":"8543:3:53","nodeType":"YulIdentifier","src":"8543:3:53"},"nativeSrc":"8543:16:53","nodeType":"YulFunctionCall","src":"8543:16:53"},{"name":"end","nativeSrc":"8561:3:53","nodeType":"YulIdentifier","src":"8561:3:53"}],"functionName":{"name":"gt","nativeSrc":"8540:2:53","nodeType":"YulIdentifier","src":"8540:2:53"},"nativeSrc":"8540:25:53","nodeType":"YulFunctionCall","src":"8540:25:53"},"nativeSrc":"8537:112:53","nodeType":"YulIf","src":"8537:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"8695:3:53","nodeType":"YulIdentifier","src":"8695:3:53"},{"name":"dst","nativeSrc":"8700:3:53","nodeType":"YulIdentifier","src":"8700:3:53"},{"name":"length","nativeSrc":"8705:6:53","nodeType":"YulIdentifier","src":"8705:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"8658:36:53","nodeType":"YulIdentifier","src":"8658:36:53"},"nativeSrc":"8658:54:53","nodeType":"YulFunctionCall","src":"8658:54:53"},"nativeSrc":"8658:54:53","nodeType":"YulExpressionStatement","src":"8658:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"8295:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8351:3:53","nodeType":"YulTypedName","src":"8351:3:53","type":""},{"name":"length","nativeSrc":"8356:6:53","nodeType":"YulTypedName","src":"8356:6:53","type":""},{"name":"end","nativeSrc":"8364:3:53","nodeType":"YulTypedName","src":"8364:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8372:5:53","nodeType":"YulTypedName","src":"8372:5:53","type":""}],"src":"8295:423:53"},{"body":{"nativeSrc":"8798:277:53","nodeType":"YulBlock","src":"8798:277:53","statements":[{"body":{"nativeSrc":"8847:83:53","nodeType":"YulBlock","src":"8847:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"8849:77:53","nodeType":"YulIdentifier","src":"8849:77:53"},"nativeSrc":"8849:79:53","nodeType":"YulFunctionCall","src":"8849:79:53"},"nativeSrc":"8849:79:53","nodeType":"YulExpressionStatement","src":"8849:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8826:6:53","nodeType":"YulIdentifier","src":"8826:6:53"},{"kind":"number","nativeSrc":"8834:4:53","nodeType":"YulLiteral","src":"8834:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"8822:3:53","nodeType":"YulIdentifier","src":"8822:3:53"},"nativeSrc":"8822:17:53","nodeType":"YulFunctionCall","src":"8822:17:53"},{"name":"end","nativeSrc":"8841:3:53","nodeType":"YulIdentifier","src":"8841:3:53"}],"functionName":{"name":"slt","nativeSrc":"8818:3:53","nodeType":"YulIdentifier","src":"8818:3:53"},"nativeSrc":"8818:27:53","nodeType":"YulFunctionCall","src":"8818:27:53"}],"functionName":{"name":"iszero","nativeSrc":"8811:6:53","nodeType":"YulIdentifier","src":"8811:6:53"},"nativeSrc":"8811:35:53","nodeType":"YulFunctionCall","src":"8811:35:53"},"nativeSrc":"8808:122:53","nodeType":"YulIf","src":"8808:122:53"},{"nativeSrc":"8939:34:53","nodeType":"YulVariableDeclaration","src":"8939:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"8966:6:53","nodeType":"YulIdentifier","src":"8966:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"8953:12:53","nodeType":"YulIdentifier","src":"8953:12:53"},"nativeSrc":"8953:20:53","nodeType":"YulFunctionCall","src":"8953:20:53"},"variables":[{"name":"length","nativeSrc":"8943:6:53","nodeType":"YulTypedName","src":"8943:6:53","type":""}]},{"nativeSrc":"8982:87:53","nodeType":"YulAssignment","src":"8982:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9042:6:53","nodeType":"YulIdentifier","src":"9042:6:53"},{"kind":"number","nativeSrc":"9050:4:53","nodeType":"YulLiteral","src":"9050:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9038:3:53","nodeType":"YulIdentifier","src":"9038:3:53"},"nativeSrc":"9038:17:53","nodeType":"YulFunctionCall","src":"9038:17:53"},{"name":"length","nativeSrc":"9057:6:53","nodeType":"YulIdentifier","src":"9057:6:53"},{"name":"end","nativeSrc":"9065:3:53","nodeType":"YulIdentifier","src":"9065:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"8991:46:53","nodeType":"YulIdentifier","src":"8991:46:53"},"nativeSrc":"8991:78:53","nodeType":"YulFunctionCall","src":"8991:78:53"},"variableNames":[{"name":"array","nativeSrc":"8982:5:53","nodeType":"YulIdentifier","src":"8982:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"8737:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8776:6:53","nodeType":"YulTypedName","src":"8776:6:53","type":""},{"name":"end","nativeSrc":"8784:3:53","nodeType":"YulTypedName","src":"8784:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8792:5:53","nodeType":"YulTypedName","src":"8792:5:53","type":""}],"src":"8737:338:53"},{"body":{"nativeSrc":"9274:1316:53","nodeType":"YulBlock","src":"9274:1316:53","statements":[{"body":{"nativeSrc":"9321:83:53","nodeType":"YulBlock","src":"9321:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9323:77:53","nodeType":"YulIdentifier","src":"9323:77:53"},"nativeSrc":"9323:79:53","nodeType":"YulFunctionCall","src":"9323:79:53"},"nativeSrc":"9323:79:53","nodeType":"YulExpressionStatement","src":"9323:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9295:7:53","nodeType":"YulIdentifier","src":"9295:7:53"},{"name":"headStart","nativeSrc":"9304:9:53","nodeType":"YulIdentifier","src":"9304:9:53"}],"functionName":{"name":"sub","nativeSrc":"9291:3:53","nodeType":"YulIdentifier","src":"9291:3:53"},"nativeSrc":"9291:23:53","nodeType":"YulFunctionCall","src":"9291:23:53"},{"kind":"number","nativeSrc":"9316:3:53","nodeType":"YulLiteral","src":"9316:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"9287:3:53","nodeType":"YulIdentifier","src":"9287:3:53"},"nativeSrc":"9287:33:53","nodeType":"YulFunctionCall","src":"9287:33:53"},"nativeSrc":"9284:120:53","nodeType":"YulIf","src":"9284:120:53"},{"nativeSrc":"9414:117:53","nodeType":"YulBlock","src":"9414:117:53","statements":[{"nativeSrc":"9429:15:53","nodeType":"YulVariableDeclaration","src":"9429:15:53","value":{"kind":"number","nativeSrc":"9443:1:53","nodeType":"YulLiteral","src":"9443:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9433:6:53","nodeType":"YulTypedName","src":"9433:6:53","type":""}]},{"nativeSrc":"9458:63:53","nodeType":"YulAssignment","src":"9458:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9493:9:53","nodeType":"YulIdentifier","src":"9493:9:53"},{"name":"offset","nativeSrc":"9504:6:53","nodeType":"YulIdentifier","src":"9504:6:53"}],"functionName":{"name":"add","nativeSrc":"9489:3:53","nodeType":"YulIdentifier","src":"9489:3:53"},"nativeSrc":"9489:22:53","nodeType":"YulFunctionCall","src":"9489:22:53"},{"name":"dataEnd","nativeSrc":"9513:7:53","nodeType":"YulIdentifier","src":"9513:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9468:20:53","nodeType":"YulIdentifier","src":"9468:20:53"},"nativeSrc":"9468:53:53","nodeType":"YulFunctionCall","src":"9468:53:53"},"variableNames":[{"name":"value0","nativeSrc":"9458:6:53","nodeType":"YulIdentifier","src":"9458:6:53"}]}]},{"nativeSrc":"9541:118:53","nodeType":"YulBlock","src":"9541:118:53","statements":[{"nativeSrc":"9556:16:53","nodeType":"YulVariableDeclaration","src":"9556:16:53","value":{"kind":"number","nativeSrc":"9570:2:53","nodeType":"YulLiteral","src":"9570:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9560:6:53","nodeType":"YulTypedName","src":"9560:6:53","type":""}]},{"nativeSrc":"9586:63:53","nodeType":"YulAssignment","src":"9586:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9621:9:53","nodeType":"YulIdentifier","src":"9621:9:53"},{"name":"offset","nativeSrc":"9632:6:53","nodeType":"YulIdentifier","src":"9632:6:53"}],"functionName":{"name":"add","nativeSrc":"9617:3:53","nodeType":"YulIdentifier","src":"9617:3:53"},"nativeSrc":"9617:22:53","nodeType":"YulFunctionCall","src":"9617:22:53"},{"name":"dataEnd","nativeSrc":"9641:7:53","nodeType":"YulIdentifier","src":"9641:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9596:20:53","nodeType":"YulIdentifier","src":"9596:20:53"},"nativeSrc":"9596:53:53","nodeType":"YulFunctionCall","src":"9596:53:53"},"variableNames":[{"name":"value1","nativeSrc":"9586:6:53","nodeType":"YulIdentifier","src":"9586:6:53"}]}]},{"nativeSrc":"9669:303:53","nodeType":"YulBlock","src":"9669:303:53","statements":[{"nativeSrc":"9684:46:53","nodeType":"YulVariableDeclaration","src":"9684:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9715:9:53","nodeType":"YulIdentifier","src":"9715:9:53"},{"kind":"number","nativeSrc":"9726:2:53","nodeType":"YulLiteral","src":"9726:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9711:3:53","nodeType":"YulIdentifier","src":"9711:3:53"},"nativeSrc":"9711:18:53","nodeType":"YulFunctionCall","src":"9711:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9698:12:53","nodeType":"YulIdentifier","src":"9698:12:53"},"nativeSrc":"9698:32:53","nodeType":"YulFunctionCall","src":"9698:32:53"},"variables":[{"name":"offset","nativeSrc":"9688:6:53","nodeType":"YulTypedName","src":"9688:6:53","type":""}]},{"body":{"nativeSrc":"9777:83:53","nodeType":"YulBlock","src":"9777:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9779:77:53","nodeType":"YulIdentifier","src":"9779:77:53"},"nativeSrc":"9779:79:53","nodeType":"YulFunctionCall","src":"9779:79:53"},"nativeSrc":"9779:79:53","nodeType":"YulExpressionStatement","src":"9779:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9749:6:53","nodeType":"YulIdentifier","src":"9749:6:53"},{"kind":"number","nativeSrc":"9757:18:53","nodeType":"YulLiteral","src":"9757:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9746:2:53","nodeType":"YulIdentifier","src":"9746:2:53"},"nativeSrc":"9746:30:53","nodeType":"YulFunctionCall","src":"9746:30:53"},"nativeSrc":"9743:117:53","nodeType":"YulIf","src":"9743:117:53"},{"nativeSrc":"9874:88:53","nodeType":"YulAssignment","src":"9874:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9934:9:53","nodeType":"YulIdentifier","src":"9934:9:53"},{"name":"offset","nativeSrc":"9945:6:53","nodeType":"YulIdentifier","src":"9945:6:53"}],"functionName":{"name":"add","nativeSrc":"9930:3:53","nodeType":"YulIdentifier","src":"9930:3:53"},"nativeSrc":"9930:22:53","nodeType":"YulFunctionCall","src":"9930:22:53"},{"name":"dataEnd","nativeSrc":"9954:7:53","nodeType":"YulIdentifier","src":"9954:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"9884:45:53","nodeType":"YulIdentifier","src":"9884:45:53"},"nativeSrc":"9884:78:53","nodeType":"YulFunctionCall","src":"9884:78:53"},"variableNames":[{"name":"value2","nativeSrc":"9874:6:53","nodeType":"YulIdentifier","src":"9874:6:53"}]}]},{"nativeSrc":"9982:303:53","nodeType":"YulBlock","src":"9982:303:53","statements":[{"nativeSrc":"9997:46:53","nodeType":"YulVariableDeclaration","src":"9997:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10028:9:53","nodeType":"YulIdentifier","src":"10028:9:53"},{"kind":"number","nativeSrc":"10039:2:53","nodeType":"YulLiteral","src":"10039:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10024:3:53","nodeType":"YulIdentifier","src":"10024:3:53"},"nativeSrc":"10024:18:53","nodeType":"YulFunctionCall","src":"10024:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"10011:12:53","nodeType":"YulIdentifier","src":"10011:12:53"},"nativeSrc":"10011:32:53","nodeType":"YulFunctionCall","src":"10011:32:53"},"variables":[{"name":"offset","nativeSrc":"10001:6:53","nodeType":"YulTypedName","src":"10001:6:53","type":""}]},{"body":{"nativeSrc":"10090:83:53","nodeType":"YulBlock","src":"10090:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10092:77:53","nodeType":"YulIdentifier","src":"10092:77:53"},"nativeSrc":"10092:79:53","nodeType":"YulFunctionCall","src":"10092:79:53"},"nativeSrc":"10092:79:53","nodeType":"YulExpressionStatement","src":"10092:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10062:6:53","nodeType":"YulIdentifier","src":"10062:6:53"},{"kind":"number","nativeSrc":"10070:18:53","nodeType":"YulLiteral","src":"10070:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10059:2:53","nodeType":"YulIdentifier","src":"10059:2:53"},"nativeSrc":"10059:30:53","nodeType":"YulFunctionCall","src":"10059:30:53"},"nativeSrc":"10056:117:53","nodeType":"YulIf","src":"10056:117:53"},{"nativeSrc":"10187:88:53","nodeType":"YulAssignment","src":"10187:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10247:9:53","nodeType":"YulIdentifier","src":"10247:9:53"},{"name":"offset","nativeSrc":"10258:6:53","nodeType":"YulIdentifier","src":"10258:6:53"}],"functionName":{"name":"add","nativeSrc":"10243:3:53","nodeType":"YulIdentifier","src":"10243:3:53"},"nativeSrc":"10243:22:53","nodeType":"YulFunctionCall","src":"10243:22:53"},{"name":"dataEnd","nativeSrc":"10267:7:53","nodeType":"YulIdentifier","src":"10267:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"10197:45:53","nodeType":"YulIdentifier","src":"10197:45:53"},"nativeSrc":"10197:78:53","nodeType":"YulFunctionCall","src":"10197:78:53"},"variableNames":[{"name":"value3","nativeSrc":"10187:6:53","nodeType":"YulIdentifier","src":"10187:6:53"}]}]},{"nativeSrc":"10295:288:53","nodeType":"YulBlock","src":"10295:288:53","statements":[{"nativeSrc":"10310:47:53","nodeType":"YulVariableDeclaration","src":"10310:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10341:9:53","nodeType":"YulIdentifier","src":"10341:9:53"},{"kind":"number","nativeSrc":"10352:3:53","nodeType":"YulLiteral","src":"10352:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10337:3:53","nodeType":"YulIdentifier","src":"10337:3:53"},"nativeSrc":"10337:19:53","nodeType":"YulFunctionCall","src":"10337:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"10324:12:53","nodeType":"YulIdentifier","src":"10324:12:53"},"nativeSrc":"10324:33:53","nodeType":"YulFunctionCall","src":"10324:33:53"},"variables":[{"name":"offset","nativeSrc":"10314:6:53","nodeType":"YulTypedName","src":"10314:6:53","type":""}]},{"body":{"nativeSrc":"10404:83:53","nodeType":"YulBlock","src":"10404:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10406:77:53","nodeType":"YulIdentifier","src":"10406:77:53"},"nativeSrc":"10406:79:53","nodeType":"YulFunctionCall","src":"10406:79:53"},"nativeSrc":"10406:79:53","nodeType":"YulExpressionStatement","src":"10406:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10376:6:53","nodeType":"YulIdentifier","src":"10376:6:53"},{"kind":"number","nativeSrc":"10384:18:53","nodeType":"YulLiteral","src":"10384:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10373:2:53","nodeType":"YulIdentifier","src":"10373:2:53"},"nativeSrc":"10373:30:53","nodeType":"YulFunctionCall","src":"10373:30:53"},"nativeSrc":"10370:117:53","nodeType":"YulIf","src":"10370:117:53"},{"nativeSrc":"10501:72:53","nodeType":"YulAssignment","src":"10501:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10545:9:53","nodeType":"YulIdentifier","src":"10545:9:53"},{"name":"offset","nativeSrc":"10556:6:53","nodeType":"YulIdentifier","src":"10556:6:53"}],"functionName":{"name":"add","nativeSrc":"10541:3:53","nodeType":"YulIdentifier","src":"10541:3:53"},"nativeSrc":"10541:22:53","nodeType":"YulFunctionCall","src":"10541:22:53"},{"name":"dataEnd","nativeSrc":"10565:7:53","nodeType":"YulIdentifier","src":"10565:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10511:29:53","nodeType":"YulIdentifier","src":"10511:29:53"},"nativeSrc":"10511:62:53","nodeType":"YulFunctionCall","src":"10511:62:53"},"variableNames":[{"name":"value4","nativeSrc":"10501:6:53","nodeType":"YulIdentifier","src":"10501:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nativeSrc":"9081:1509:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9212:9:53","nodeType":"YulTypedName","src":"9212:9:53","type":""},{"name":"dataEnd","nativeSrc":"9223:7:53","nodeType":"YulTypedName","src":"9223:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9235:6:53","nodeType":"YulTypedName","src":"9235:6:53","type":""},{"name":"value1","nativeSrc":"9243:6:53","nodeType":"YulTypedName","src":"9243:6:53","type":""},{"name":"value2","nativeSrc":"9251:6:53","nodeType":"YulTypedName","src":"9251:6:53","type":""},{"name":"value3","nativeSrc":"9259:6:53","nodeType":"YulTypedName","src":"9259:6:53","type":""},{"name":"value4","nativeSrc":"9267:6:53","nodeType":"YulTypedName","src":"9267:6:53","type":""}],"src":"9081:1509:53"},{"body":{"nativeSrc":"10678:229:53","nodeType":"YulBlock","src":"10678:229:53","statements":[{"body":{"nativeSrc":"10783:22:53","nodeType":"YulBlock","src":"10783:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10785:16:53","nodeType":"YulIdentifier","src":"10785:16:53"},"nativeSrc":"10785:18:53","nodeType":"YulFunctionCall","src":"10785:18:53"},"nativeSrc":"10785:18:53","nodeType":"YulExpressionStatement","src":"10785:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10755:6:53","nodeType":"YulIdentifier","src":"10755:6:53"},{"kind":"number","nativeSrc":"10763:18:53","nodeType":"YulLiteral","src":"10763:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10752:2:53","nodeType":"YulIdentifier","src":"10752:2:53"},"nativeSrc":"10752:30:53","nodeType":"YulFunctionCall","src":"10752:30:53"},"nativeSrc":"10749:56:53","nodeType":"YulIf","src":"10749:56:53"},{"nativeSrc":"10815:25:53","nodeType":"YulAssignment","src":"10815:25:53","value":{"arguments":[{"name":"length","nativeSrc":"10827:6:53","nodeType":"YulIdentifier","src":"10827:6:53"},{"kind":"number","nativeSrc":"10835:4:53","nodeType":"YulLiteral","src":"10835:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10823:3:53","nodeType":"YulIdentifier","src":"10823:3:53"},"nativeSrc":"10823:17:53","nodeType":"YulFunctionCall","src":"10823:17:53"},"variableNames":[{"name":"size","nativeSrc":"10815:4:53","nodeType":"YulIdentifier","src":"10815:4:53"}]},{"nativeSrc":"10877:23:53","nodeType":"YulAssignment","src":"10877:23:53","value":{"arguments":[{"name":"size","nativeSrc":"10889:4:53","nodeType":"YulIdentifier","src":"10889:4:53"},{"kind":"number","nativeSrc":"10895:4:53","nodeType":"YulLiteral","src":"10895:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10885:3:53","nodeType":"YulIdentifier","src":"10885:3:53"},"nativeSrc":"10885:15:53","nodeType":"YulFunctionCall","src":"10885:15:53"},"variableNames":[{"name":"size","nativeSrc":"10877:4:53","nodeType":"YulIdentifier","src":"10877:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10596:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10662:6:53","nodeType":"YulTypedName","src":"10662:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10673:4:53","nodeType":"YulTypedName","src":"10673:4:53","type":""}],"src":"10596:311:53"},{"body":{"nativeSrc":"11032:608:53","nodeType":"YulBlock","src":"11032:608:53","statements":[{"nativeSrc":"11042:90:53","nodeType":"YulAssignment","src":"11042:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11124:6:53","nodeType":"YulIdentifier","src":"11124:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11067:56:53","nodeType":"YulIdentifier","src":"11067:56:53"},"nativeSrc":"11067:64:53","nodeType":"YulFunctionCall","src":"11067:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"11051:15:53","nodeType":"YulIdentifier","src":"11051:15:53"},"nativeSrc":"11051:81:53","nodeType":"YulFunctionCall","src":"11051:81:53"},"variableNames":[{"name":"array","nativeSrc":"11042:5:53","nodeType":"YulIdentifier","src":"11042:5:53"}]},{"nativeSrc":"11141:16:53","nodeType":"YulVariableDeclaration","src":"11141:16:53","value":{"name":"array","nativeSrc":"11152:5:53","nodeType":"YulIdentifier","src":"11152:5:53"},"variables":[{"name":"dst","nativeSrc":"11145:3:53","nodeType":"YulTypedName","src":"11145:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11174:5:53","nodeType":"YulIdentifier","src":"11174:5:53"},{"name":"length","nativeSrc":"11181:6:53","nodeType":"YulIdentifier","src":"11181:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11167:6:53","nodeType":"YulIdentifier","src":"11167:6:53"},"nativeSrc":"11167:21:53","nodeType":"YulFunctionCall","src":"11167:21:53"},"nativeSrc":"11167:21:53","nodeType":"YulExpressionStatement","src":"11167:21:53"},{"nativeSrc":"11197:23:53","nodeType":"YulAssignment","src":"11197:23:53","value":{"arguments":[{"name":"array","nativeSrc":"11208:5:53","nodeType":"YulIdentifier","src":"11208:5:53"},{"kind":"number","nativeSrc":"11215:4:53","nodeType":"YulLiteral","src":"11215:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11204:3:53","nodeType":"YulIdentifier","src":"11204:3:53"},"nativeSrc":"11204:16:53","nodeType":"YulFunctionCall","src":"11204:16:53"},"variableNames":[{"name":"dst","nativeSrc":"11197:3:53","nodeType":"YulIdentifier","src":"11197:3:53"}]},{"nativeSrc":"11230:44:53","nodeType":"YulVariableDeclaration","src":"11230:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"11248:6:53","nodeType":"YulIdentifier","src":"11248:6:53"},{"arguments":[{"name":"length","nativeSrc":"11260:6:53","nodeType":"YulIdentifier","src":"11260:6:53"},{"kind":"number","nativeSrc":"11268:4:53","nodeType":"YulLiteral","src":"11268:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11256:3:53","nodeType":"YulIdentifier","src":"11256:3:53"},"nativeSrc":"11256:17:53","nodeType":"YulFunctionCall","src":"11256:17:53"}],"functionName":{"name":"add","nativeSrc":"11244:3:53","nodeType":"YulIdentifier","src":"11244:3:53"},"nativeSrc":"11244:30:53","nodeType":"YulFunctionCall","src":"11244:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"11234:6:53","nodeType":"YulTypedName","src":"11234:6:53","type":""}]},{"body":{"nativeSrc":"11302:103:53","nodeType":"YulBlock","src":"11302:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11316:77:53","nodeType":"YulIdentifier","src":"11316:77:53"},"nativeSrc":"11316:79:53","nodeType":"YulFunctionCall","src":"11316:79:53"},"nativeSrc":"11316:79:53","nodeType":"YulExpressionStatement","src":"11316:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11289:6:53","nodeType":"YulIdentifier","src":"11289:6:53"},{"name":"end","nativeSrc":"11297:3:53","nodeType":"YulIdentifier","src":"11297:3:53"}],"functionName":{"name":"gt","nativeSrc":"11286:2:53","nodeType":"YulIdentifier","src":"11286:2:53"},"nativeSrc":"11286:15:53","nodeType":"YulFunctionCall","src":"11286:15:53"},"nativeSrc":"11283:122:53","nodeType":"YulIf","src":"11283:122:53"},{"body":{"nativeSrc":"11490:144:53","nodeType":"YulBlock","src":"11490:144:53","statements":[{"nativeSrc":"11505:21:53","nodeType":"YulVariableDeclaration","src":"11505:21:53","value":{"name":"src","nativeSrc":"11523:3:53","nodeType":"YulIdentifier","src":"11523:3:53"},"variables":[{"name":"elementPos","nativeSrc":"11509:10:53","nodeType":"YulTypedName","src":"11509:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11547:3:53","nodeType":"YulIdentifier","src":"11547:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"11573:10:53","nodeType":"YulIdentifier","src":"11573:10:53"},{"name":"end","nativeSrc":"11585:3:53","nodeType":"YulIdentifier","src":"11585:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11552:20:53","nodeType":"YulIdentifier","src":"11552:20:53"},"nativeSrc":"11552:37:53","nodeType":"YulFunctionCall","src":"11552:37:53"}],"functionName":{"name":"mstore","nativeSrc":"11540:6:53","nodeType":"YulIdentifier","src":"11540:6:53"},"nativeSrc":"11540:50:53","nodeType":"YulFunctionCall","src":"11540:50:53"},"nativeSrc":"11540:50:53","nodeType":"YulExpressionStatement","src":"11540:50:53"},{"nativeSrc":"11603:21:53","nodeType":"YulAssignment","src":"11603:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"11614:3:53","nodeType":"YulIdentifier","src":"11614:3:53"},{"kind":"number","nativeSrc":"11619:4:53","nodeType":"YulLiteral","src":"11619:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11610:3:53","nodeType":"YulIdentifier","src":"11610:3:53"},"nativeSrc":"11610:14:53","nodeType":"YulFunctionCall","src":"11610:14:53"},"variableNames":[{"name":"dst","nativeSrc":"11603:3:53","nodeType":"YulIdentifier","src":"11603:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11443:3:53","nodeType":"YulIdentifier","src":"11443:3:53"},{"name":"srcEnd","nativeSrc":"11448:6:53","nodeType":"YulIdentifier","src":"11448:6:53"}],"functionName":{"name":"lt","nativeSrc":"11440:2:53","nodeType":"YulIdentifier","src":"11440:2:53"},"nativeSrc":"11440:15:53","nodeType":"YulFunctionCall","src":"11440:15:53"},"nativeSrc":"11414:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"11456:25:53","nodeType":"YulBlock","src":"11456:25:53","statements":[{"nativeSrc":"11458:21:53","nodeType":"YulAssignment","src":"11458:21:53","value":{"arguments":[{"name":"src","nativeSrc":"11469:3:53","nodeType":"YulIdentifier","src":"11469:3:53"},{"kind":"number","nativeSrc":"11474:4:53","nodeType":"YulLiteral","src":"11474:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11465:3:53","nodeType":"YulIdentifier","src":"11465:3:53"},"nativeSrc":"11465:14:53","nodeType":"YulFunctionCall","src":"11465:14:53"},"variableNames":[{"name":"src","nativeSrc":"11458:3:53","nodeType":"YulIdentifier","src":"11458:3:53"}]}]},"pre":{"nativeSrc":"11418:21:53","nodeType":"YulBlock","src":"11418:21:53","statements":[{"nativeSrc":"11420:17:53","nodeType":"YulVariableDeclaration","src":"11420:17:53","value":{"name":"offset","nativeSrc":"11431:6:53","nodeType":"YulIdentifier","src":"11431:6:53"},"variables":[{"name":"src","nativeSrc":"11424:3:53","nodeType":"YulTypedName","src":"11424:3:53","type":""}]}]},"src":"11414:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10930:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11002:6:53","nodeType":"YulTypedName","src":"11002:6:53","type":""},{"name":"length","nativeSrc":"11010:6:53","nodeType":"YulTypedName","src":"11010:6:53","type":""},{"name":"end","nativeSrc":"11018:3:53","nodeType":"YulTypedName","src":"11018:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11026:5:53","nodeType":"YulTypedName","src":"11026:5:53","type":""}],"src":"10930:710:53"},{"body":{"nativeSrc":"11740:293:53","nodeType":"YulBlock","src":"11740:293:53","statements":[{"body":{"nativeSrc":"11789:83:53","nodeType":"YulBlock","src":"11789:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11791:77:53","nodeType":"YulIdentifier","src":"11791:77:53"},"nativeSrc":"11791:79:53","nodeType":"YulFunctionCall","src":"11791:79:53"},"nativeSrc":"11791:79:53","nodeType":"YulExpressionStatement","src":"11791:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11768:6:53","nodeType":"YulIdentifier","src":"11768:6:53"},{"kind":"number","nativeSrc":"11776:4:53","nodeType":"YulLiteral","src":"11776:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11764:3:53","nodeType":"YulIdentifier","src":"11764:3:53"},"nativeSrc":"11764:17:53","nodeType":"YulFunctionCall","src":"11764:17:53"},{"name":"end","nativeSrc":"11783:3:53","nodeType":"YulIdentifier","src":"11783:3:53"}],"functionName":{"name":"slt","nativeSrc":"11760:3:53","nodeType":"YulIdentifier","src":"11760:3:53"},"nativeSrc":"11760:27:53","nodeType":"YulFunctionCall","src":"11760:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11753:6:53","nodeType":"YulIdentifier","src":"11753:6:53"},"nativeSrc":"11753:35:53","nodeType":"YulFunctionCall","src":"11753:35:53"},"nativeSrc":"11750:122:53","nodeType":"YulIf","src":"11750:122:53"},{"nativeSrc":"11881:34:53","nodeType":"YulVariableDeclaration","src":"11881:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"11908:6:53","nodeType":"YulIdentifier","src":"11908:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"11895:12:53","nodeType":"YulIdentifier","src":"11895:12:53"},"nativeSrc":"11895:20:53","nodeType":"YulFunctionCall","src":"11895:20:53"},"variables":[{"name":"length","nativeSrc":"11885:6:53","nodeType":"YulTypedName","src":"11885:6:53","type":""}]},{"nativeSrc":"11924:103:53","nodeType":"YulAssignment","src":"11924:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12000:6:53","nodeType":"YulIdentifier","src":"12000:6:53"},{"kind":"number","nativeSrc":"12008:4:53","nodeType":"YulLiteral","src":"12008:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11996:3:53","nodeType":"YulIdentifier","src":"11996:3:53"},"nativeSrc":"11996:17:53","nodeType":"YulFunctionCall","src":"11996:17:53"},{"name":"length","nativeSrc":"12015:6:53","nodeType":"YulIdentifier","src":"12015:6:53"},{"name":"end","nativeSrc":"12023:3:53","nodeType":"YulIdentifier","src":"12023:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11933:62:53","nodeType":"YulIdentifier","src":"11933:62:53"},"nativeSrc":"11933:94:53","nodeType":"YulFunctionCall","src":"11933:94:53"},"variableNames":[{"name":"array","nativeSrc":"11924:5:53","nodeType":"YulIdentifier","src":"11924:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11663:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11718:6:53","nodeType":"YulTypedName","src":"11718:6:53","type":""},{"name":"end","nativeSrc":"11726:3:53","nodeType":"YulTypedName","src":"11726:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11734:5:53","nodeType":"YulTypedName","src":"11734:5:53","type":""}],"src":"11663:370:53"},{"body":{"nativeSrc":"12172:761:53","nodeType":"YulBlock","src":"12172:761:53","statements":[{"body":{"nativeSrc":"12218:83:53","nodeType":"YulBlock","src":"12218:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12220:77:53","nodeType":"YulIdentifier","src":"12220:77:53"},"nativeSrc":"12220:79:53","nodeType":"YulFunctionCall","src":"12220:79:53"},"nativeSrc":"12220:79:53","nodeType":"YulExpressionStatement","src":"12220:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12193:7:53","nodeType":"YulIdentifier","src":"12193:7:53"},{"name":"headStart","nativeSrc":"12202:9:53","nodeType":"YulIdentifier","src":"12202:9:53"}],"functionName":{"name":"sub","nativeSrc":"12189:3:53","nodeType":"YulIdentifier","src":"12189:3:53"},"nativeSrc":"12189:23:53","nodeType":"YulFunctionCall","src":"12189:23:53"},{"kind":"number","nativeSrc":"12214:2:53","nodeType":"YulLiteral","src":"12214:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12185:3:53","nodeType":"YulIdentifier","src":"12185:3:53"},"nativeSrc":"12185:32:53","nodeType":"YulFunctionCall","src":"12185:32:53"},"nativeSrc":"12182:119:53","nodeType":"YulIf","src":"12182:119:53"},{"nativeSrc":"12311:302:53","nodeType":"YulBlock","src":"12311:302:53","statements":[{"nativeSrc":"12326:45:53","nodeType":"YulVariableDeclaration","src":"12326:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12357:9:53","nodeType":"YulIdentifier","src":"12357:9:53"},{"kind":"number","nativeSrc":"12368:1:53","nodeType":"YulLiteral","src":"12368:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12353:3:53","nodeType":"YulIdentifier","src":"12353:3:53"},"nativeSrc":"12353:17:53","nodeType":"YulFunctionCall","src":"12353:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"12340:12:53","nodeType":"YulIdentifier","src":"12340:12:53"},"nativeSrc":"12340:31:53","nodeType":"YulFunctionCall","src":"12340:31:53"},"variables":[{"name":"offset","nativeSrc":"12330:6:53","nodeType":"YulTypedName","src":"12330:6:53","type":""}]},{"body":{"nativeSrc":"12418:83:53","nodeType":"YulBlock","src":"12418:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12420:77:53","nodeType":"YulIdentifier","src":"12420:77:53"},"nativeSrc":"12420:79:53","nodeType":"YulFunctionCall","src":"12420:79:53"},"nativeSrc":"12420:79:53","nodeType":"YulExpressionStatement","src":"12420:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12390:6:53","nodeType":"YulIdentifier","src":"12390:6:53"},{"kind":"number","nativeSrc":"12398:18:53","nodeType":"YulLiteral","src":"12398:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12387:2:53","nodeType":"YulIdentifier","src":"12387:2:53"},"nativeSrc":"12387:30:53","nodeType":"YulFunctionCall","src":"12387:30:53"},"nativeSrc":"12384:117:53","nodeType":"YulIf","src":"12384:117:53"},{"nativeSrc":"12515:88:53","nodeType":"YulAssignment","src":"12515:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12575:9:53","nodeType":"YulIdentifier","src":"12575:9:53"},{"name":"offset","nativeSrc":"12586:6:53","nodeType":"YulIdentifier","src":"12586:6:53"}],"functionName":{"name":"add","nativeSrc":"12571:3:53","nodeType":"YulIdentifier","src":"12571:3:53"},"nativeSrc":"12571:22:53","nodeType":"YulFunctionCall","src":"12571:22:53"},{"name":"dataEnd","nativeSrc":"12595:7:53","nodeType":"YulIdentifier","src":"12595:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12525:45:53","nodeType":"YulIdentifier","src":"12525:45:53"},"nativeSrc":"12525:78:53","nodeType":"YulFunctionCall","src":"12525:78:53"},"variableNames":[{"name":"value0","nativeSrc":"12515:6:53","nodeType":"YulIdentifier","src":"12515:6:53"}]}]},{"nativeSrc":"12623:303:53","nodeType":"YulBlock","src":"12623:303:53","statements":[{"nativeSrc":"12638:46:53","nodeType":"YulVariableDeclaration","src":"12638:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12669:9:53","nodeType":"YulIdentifier","src":"12669:9:53"},{"kind":"number","nativeSrc":"12680:2:53","nodeType":"YulLiteral","src":"12680:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12665:3:53","nodeType":"YulIdentifier","src":"12665:3:53"},"nativeSrc":"12665:18:53","nodeType":"YulFunctionCall","src":"12665:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12652:12:53","nodeType":"YulIdentifier","src":"12652:12:53"},"nativeSrc":"12652:32:53","nodeType":"YulFunctionCall","src":"12652:32:53"},"variables":[{"name":"offset","nativeSrc":"12642:6:53","nodeType":"YulTypedName","src":"12642:6:53","type":""}]},{"body":{"nativeSrc":"12731:83:53","nodeType":"YulBlock","src":"12731:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12733:77:53","nodeType":"YulIdentifier","src":"12733:77:53"},"nativeSrc":"12733:79:53","nodeType":"YulFunctionCall","src":"12733:79:53"},"nativeSrc":"12733:79:53","nodeType":"YulExpressionStatement","src":"12733:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12703:6:53","nodeType":"YulIdentifier","src":"12703:6:53"},{"kind":"number","nativeSrc":"12711:18:53","nodeType":"YulLiteral","src":"12711:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12700:2:53","nodeType":"YulIdentifier","src":"12700:2:53"},"nativeSrc":"12700:30:53","nodeType":"YulFunctionCall","src":"12700:30:53"},"nativeSrc":"12697:117:53","nodeType":"YulIf","src":"12697:117:53"},{"nativeSrc":"12828:88:53","nodeType":"YulAssignment","src":"12828:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12888:9:53","nodeType":"YulIdentifier","src":"12888:9:53"},{"name":"offset","nativeSrc":"12899:6:53","nodeType":"YulIdentifier","src":"12899:6:53"}],"functionName":{"name":"add","nativeSrc":"12884:3:53","nodeType":"YulIdentifier","src":"12884:3:53"},"nativeSrc":"12884:22:53","nodeType":"YulFunctionCall","src":"12884:22:53"},{"name":"dataEnd","nativeSrc":"12908:7:53","nodeType":"YulIdentifier","src":"12908:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12838:45:53","nodeType":"YulIdentifier","src":"12838:45:53"},"nativeSrc":"12838:78:53","nodeType":"YulFunctionCall","src":"12838:78:53"},"variableNames":[{"name":"value1","nativeSrc":"12828:6:53","nodeType":"YulIdentifier","src":"12828:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12039:894:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12134:9:53","nodeType":"YulTypedName","src":"12134:9:53","type":""},{"name":"dataEnd","nativeSrc":"12145:7:53","nodeType":"YulTypedName","src":"12145:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12157:6:53","nodeType":"YulTypedName","src":"12157:6:53","type":""},{"name":"value1","nativeSrc":"12165:6:53","nodeType":"YulTypedName","src":"12165:6:53","type":""}],"src":"12039:894:53"},{"body":{"nativeSrc":"13013:40:53","nodeType":"YulBlock","src":"13013:40:53","statements":[{"nativeSrc":"13024:22:53","nodeType":"YulAssignment","src":"13024:22:53","value":{"arguments":[{"name":"value","nativeSrc":"13040:5:53","nodeType":"YulIdentifier","src":"13040:5:53"}],"functionName":{"name":"mload","nativeSrc":"13034:5:53","nodeType":"YulIdentifier","src":"13034:5:53"},"nativeSrc":"13034:12:53","nodeType":"YulFunctionCall","src":"13034:12:53"},"variableNames":[{"name":"length","nativeSrc":"13024:6:53","nodeType":"YulIdentifier","src":"13024:6:53"}]}]},"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12939:114:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12996:5:53","nodeType":"YulTypedName","src":"12996:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13006:6:53","nodeType":"YulTypedName","src":"13006:6:53","type":""}],"src":"12939:114:53"},{"body":{"nativeSrc":"13170:73:53","nodeType":"YulBlock","src":"13170:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13187:3:53","nodeType":"YulIdentifier","src":"13187:3:53"},{"name":"length","nativeSrc":"13192:6:53","nodeType":"YulIdentifier","src":"13192:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13180:6:53","nodeType":"YulIdentifier","src":"13180:6:53"},"nativeSrc":"13180:19:53","nodeType":"YulFunctionCall","src":"13180:19:53"},"nativeSrc":"13180:19:53","nodeType":"YulExpressionStatement","src":"13180:19:53"},{"nativeSrc":"13208:29:53","nodeType":"YulAssignment","src":"13208:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"13227:3:53","nodeType":"YulIdentifier","src":"13227:3:53"},{"kind":"number","nativeSrc":"13232:4:53","nodeType":"YulLiteral","src":"13232:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13223:3:53","nodeType":"YulIdentifier","src":"13223:3:53"},"nativeSrc":"13223:14:53","nodeType":"YulFunctionCall","src":"13223:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"13208:11:53","nodeType":"YulIdentifier","src":"13208:11:53"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"13059:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13142:3:53","nodeType":"YulTypedName","src":"13142:3:53","type":""},{"name":"length","nativeSrc":"13147:6:53","nodeType":"YulTypedName","src":"13147:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13158:11:53","nodeType":"YulTypedName","src":"13158:11:53","type":""}],"src":"13059:184:53"},{"body":{"nativeSrc":"13321:60:53","nodeType":"YulBlock","src":"13321:60:53","statements":[{"nativeSrc":"13331:11:53","nodeType":"YulAssignment","src":"13331:11:53","value":{"name":"ptr","nativeSrc":"13339:3:53","nodeType":"YulIdentifier","src":"13339:3:53"},"variableNames":[{"name":"data","nativeSrc":"13331:4:53","nodeType":"YulIdentifier","src":"13331:4:53"}]},{"nativeSrc":"13352:22:53","nodeType":"YulAssignment","src":"13352:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13364:3:53","nodeType":"YulIdentifier","src":"13364:3:53"},{"kind":"number","nativeSrc":"13369:4:53","nodeType":"YulLiteral","src":"13369:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13360:3:53","nodeType":"YulIdentifier","src":"13360:3:53"},"nativeSrc":"13360:14:53","nodeType":"YulFunctionCall","src":"13360:14:53"},"variableNames":[{"name":"data","nativeSrc":"13352:4:53","nodeType":"YulIdentifier","src":"13352:4:53"}]}]},"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13249:132:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13308:3:53","nodeType":"YulTypedName","src":"13308:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"13316:4:53","nodeType":"YulTypedName","src":"13316:4:53","type":""}],"src":"13249:132:53"},{"body":{"nativeSrc":"13442:53:53","nodeType":"YulBlock","src":"13442:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13459:3:53","nodeType":"YulIdentifier","src":"13459:3:53"},{"arguments":[{"name":"value","nativeSrc":"13482:5:53","nodeType":"YulIdentifier","src":"13482:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13464:17:53","nodeType":"YulIdentifier","src":"13464:17:53"},"nativeSrc":"13464:24:53","nodeType":"YulFunctionCall","src":"13464:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13452:6:53","nodeType":"YulIdentifier","src":"13452:6:53"},"nativeSrc":"13452:37:53","nodeType":"YulFunctionCall","src":"13452:37:53"},"nativeSrc":"13452:37:53","nodeType":"YulExpressionStatement","src":"13452:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13387:108:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13430:5:53","nodeType":"YulTypedName","src":"13430:5:53","type":""},{"name":"pos","nativeSrc":"13437:3:53","nodeType":"YulTypedName","src":"13437:3:53","type":""}],"src":"13387:108:53"},{"body":{"nativeSrc":"13581:99:53","nodeType":"YulBlock","src":"13581:99:53","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13625:6:53","nodeType":"YulIdentifier","src":"13625:6:53"},{"name":"pos","nativeSrc":"13633:3:53","nodeType":"YulIdentifier","src":"13633:3:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13591:33:53","nodeType":"YulIdentifier","src":"13591:33:53"},"nativeSrc":"13591:46:53","nodeType":"YulFunctionCall","src":"13591:46:53"},"nativeSrc":"13591:46:53","nodeType":"YulExpressionStatement","src":"13591:46:53"},{"nativeSrc":"13646:28:53","nodeType":"YulAssignment","src":"13646:28:53","value":{"arguments":[{"name":"pos","nativeSrc":"13664:3:53","nodeType":"YulIdentifier","src":"13664:3:53"},{"kind":"number","nativeSrc":"13669:4:53","nodeType":"YulLiteral","src":"13669:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13660:3:53","nodeType":"YulIdentifier","src":"13660:3:53"},"nativeSrc":"13660:14:53","nodeType":"YulFunctionCall","src":"13660:14:53"},"variableNames":[{"name":"updatedPos","nativeSrc":"13646:10:53","nodeType":"YulIdentifier","src":"13646:10:53"}]}]},"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"13501:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"13554:6:53","nodeType":"YulTypedName","src":"13554:6:53","type":""},{"name":"pos","nativeSrc":"13562:3:53","nodeType":"YulTypedName","src":"13562:3:53","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"13570:10:53","nodeType":"YulTypedName","src":"13570:10:53","type":""}],"src":"13501:179:53"},{"body":{"nativeSrc":"13761:38:53","nodeType":"YulBlock","src":"13761:38:53","statements":[{"nativeSrc":"13771:22:53","nodeType":"YulAssignment","src":"13771:22:53","value":{"arguments":[{"name":"ptr","nativeSrc":"13783:3:53","nodeType":"YulIdentifier","src":"13783:3:53"},{"kind":"number","nativeSrc":"13788:4:53","nodeType":"YulLiteral","src":"13788:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13779:3:53","nodeType":"YulIdentifier","src":"13779:3:53"},"nativeSrc":"13779:14:53","nodeType":"YulFunctionCall","src":"13779:14:53"},"variableNames":[{"name":"next","nativeSrc":"13771:4:53","nodeType":"YulIdentifier","src":"13771:4:53"}]}]},"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13686:113:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13748:3:53","nodeType":"YulTypedName","src":"13748:3:53","type":""}],"returnVariables":[{"name":"next","nativeSrc":"13756:4:53","nodeType":"YulTypedName","src":"13756:4:53","type":""}],"src":"13686:113:53"},{"body":{"nativeSrc":"13959:608:53","nodeType":"YulBlock","src":"13959:608:53","statements":[{"nativeSrc":"13969:68:53","nodeType":"YulVariableDeclaration","src":"13969:68:53","value":{"arguments":[{"name":"value","nativeSrc":"14031:5:53","nodeType":"YulIdentifier","src":"14031:5:53"}],"functionName":{"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13983:47:53","nodeType":"YulIdentifier","src":"13983:47:53"},"nativeSrc":"13983:54:53","nodeType":"YulFunctionCall","src":"13983:54:53"},"variables":[{"name":"length","nativeSrc":"13973:6:53","nodeType":"YulTypedName","src":"13973:6:53","type":""}]},{"nativeSrc":"14046:93:53","nodeType":"YulAssignment","src":"14046:93:53","value":{"arguments":[{"name":"pos","nativeSrc":"14127:3:53","nodeType":"YulIdentifier","src":"14127:3:53"},{"name":"length","nativeSrc":"14132:6:53","nodeType":"YulIdentifier","src":"14132:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"14053:73:53","nodeType":"YulIdentifier","src":"14053:73:53"},"nativeSrc":"14053:86:53","nodeType":"YulFunctionCall","src":"14053:86:53"},"variableNames":[{"name":"pos","nativeSrc":"14046:3:53","nodeType":"YulIdentifier","src":"14046:3:53"}]},{"nativeSrc":"14148:71:53","nodeType":"YulVariableDeclaration","src":"14148:71:53","value":{"arguments":[{"name":"value","nativeSrc":"14213:5:53","nodeType":"YulIdentifier","src":"14213:5:53"}],"functionName":{"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"14163:49:53","nodeType":"YulIdentifier","src":"14163:49:53"},"nativeSrc":"14163:56:53","nodeType":"YulFunctionCall","src":"14163:56:53"},"variables":[{"name":"baseRef","nativeSrc":"14152:7:53","nodeType":"YulTypedName","src":"14152:7:53","type":""}]},{"nativeSrc":"14228:21:53","nodeType":"YulVariableDeclaration","src":"14228:21:53","value":{"name":"baseRef","nativeSrc":"14242:7:53","nodeType":"YulIdentifier","src":"14242:7:53"},"variables":[{"name":"srcPtr","nativeSrc":"14232:6:53","nodeType":"YulTypedName","src":"14232:6:53","type":""}]},{"body":{"nativeSrc":"14318:224:53","nodeType":"YulBlock","src":"14318:224:53","statements":[{"nativeSrc":"14332:34:53","nodeType":"YulVariableDeclaration","src":"14332:34:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14359:6:53","nodeType":"YulIdentifier","src":"14359:6:53"}],"functionName":{"name":"mload","nativeSrc":"14353:5:53","nodeType":"YulIdentifier","src":"14353:5:53"},"nativeSrc":"14353:13:53","nodeType":"YulFunctionCall","src":"14353:13:53"},"variables":[{"name":"elementValue0","nativeSrc":"14336:13:53","nodeType":"YulTypedName","src":"14336:13:53","type":""}]},{"nativeSrc":"14379:70:53","nodeType":"YulAssignment","src":"14379:70:53","value":{"arguments":[{"name":"elementValue0","nativeSrc":"14430:13:53","nodeType":"YulIdentifier","src":"14430:13:53"},{"name":"pos","nativeSrc":"14445:3:53","nodeType":"YulIdentifier","src":"14445:3:53"}],"functionName":{"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"14386:43:53","nodeType":"YulIdentifier","src":"14386:43:53"},"nativeSrc":"14386:63:53","nodeType":"YulFunctionCall","src":"14386:63:53"},"variableNames":[{"name":"pos","nativeSrc":"14379:3:53","nodeType":"YulIdentifier","src":"14379:3:53"}]},{"nativeSrc":"14462:70:53","nodeType":"YulAssignment","src":"14462:70:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14525:6:53","nodeType":"YulIdentifier","src":"14525:6:53"}],"functionName":{"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"14472:52:53","nodeType":"YulIdentifier","src":"14472:52:53"},"nativeSrc":"14472:60:53","nodeType":"YulFunctionCall","src":"14472:60:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"14462:6:53","nodeType":"YulIdentifier","src":"14462:6:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14280:1:53","nodeType":"YulIdentifier","src":"14280:1:53"},{"name":"length","nativeSrc":"14283:6:53","nodeType":"YulIdentifier","src":"14283:6:53"}],"functionName":{"name":"lt","nativeSrc":"14277:2:53","nodeType":"YulIdentifier","src":"14277:2:53"},"nativeSrc":"14277:13:53","nodeType":"YulFunctionCall","src":"14277:13:53"},"nativeSrc":"14258:284:53","nodeType":"YulForLoop","post":{"nativeSrc":"14291:18:53","nodeType":"YulBlock","src":"14291:18:53","statements":[{"nativeSrc":"14293:14:53","nodeType":"YulAssignment","src":"14293:14:53","value":{"arguments":[{"name":"i","nativeSrc":"14302:1:53","nodeType":"YulIdentifier","src":"14302:1:53"},{"kind":"number","nativeSrc":"14305:1:53","nodeType":"YulLiteral","src":"14305:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14298:3:53","nodeType":"YulIdentifier","src":"14298:3:53"},"nativeSrc":"14298:9:53","nodeType":"YulFunctionCall","src":"14298:9:53"},"variableNames":[{"name":"i","nativeSrc":"14293:1:53","nodeType":"YulIdentifier","src":"14293:1:53"}]}]},"pre":{"nativeSrc":"14262:14:53","nodeType":"YulBlock","src":"14262:14:53","statements":[{"nativeSrc":"14264:10:53","nodeType":"YulVariableDeclaration","src":"14264:10:53","value":{"kind":"number","nativeSrc":"14273:1:53","nodeType":"YulLiteral","src":"14273:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14268:1:53","nodeType":"YulTypedName","src":"14268:1:53","type":""}]}]},"src":"14258:284:53"},{"nativeSrc":"14551:10:53","nodeType":"YulAssignment","src":"14551:10:53","value":{"name":"pos","nativeSrc":"14558:3:53","nodeType":"YulIdentifier","src":"14558:3:53"},"variableNames":[{"name":"end","nativeSrc":"14551:3:53","nodeType":"YulIdentifier","src":"14551:3:53"}]}]},"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"13835:732:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13938:5:53","nodeType":"YulTypedName","src":"13938:5:53","type":""},{"name":"pos","nativeSrc":"13945:3:53","nodeType":"YulTypedName","src":"13945:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13954:3:53","nodeType":"YulTypedName","src":"13954:3:53","type":""}],"src":"13835:732:53"},{"body":{"nativeSrc":"14721:225:53","nodeType":"YulBlock","src":"14721:225:53","statements":[{"nativeSrc":"14731:26:53","nodeType":"YulAssignment","src":"14731:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14743:9:53","nodeType":"YulIdentifier","src":"14743:9:53"},{"kind":"number","nativeSrc":"14754:2:53","nodeType":"YulLiteral","src":"14754:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14739:3:53","nodeType":"YulIdentifier","src":"14739:3:53"},"nativeSrc":"14739:18:53","nodeType":"YulFunctionCall","src":"14739:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14731:4:53","nodeType":"YulIdentifier","src":"14731:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14778:9:53","nodeType":"YulIdentifier","src":"14778:9:53"},{"kind":"number","nativeSrc":"14789:1:53","nodeType":"YulLiteral","src":"14789:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14774:3:53","nodeType":"YulIdentifier","src":"14774:3:53"},"nativeSrc":"14774:17:53","nodeType":"YulFunctionCall","src":"14774:17:53"},{"arguments":[{"name":"tail","nativeSrc":"14797:4:53","nodeType":"YulIdentifier","src":"14797:4:53"},{"name":"headStart","nativeSrc":"14803:9:53","nodeType":"YulIdentifier","src":"14803:9:53"}],"functionName":{"name":"sub","nativeSrc":"14793:3:53","nodeType":"YulIdentifier","src":"14793:3:53"},"nativeSrc":"14793:20:53","nodeType":"YulFunctionCall","src":"14793:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14767:6:53","nodeType":"YulIdentifier","src":"14767:6:53"},"nativeSrc":"14767:47:53","nodeType":"YulFunctionCall","src":"14767:47:53"},"nativeSrc":"14767:47:53","nodeType":"YulExpressionStatement","src":"14767:47:53"},{"nativeSrc":"14823:116:53","nodeType":"YulAssignment","src":"14823:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"14925:6:53","nodeType":"YulIdentifier","src":"14925:6:53"},{"name":"tail","nativeSrc":"14934:4:53","nodeType":"YulIdentifier","src":"14934:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"14831:93:53","nodeType":"YulIdentifier","src":"14831:93:53"},"nativeSrc":"14831:108:53","nodeType":"YulFunctionCall","src":"14831:108:53"},"variableNames":[{"name":"tail","nativeSrc":"14823:4:53","nodeType":"YulIdentifier","src":"14823:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"14573:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14693:9:53","nodeType":"YulTypedName","src":"14693:9:53","type":""},{"name":"value0","nativeSrc":"14705:6:53","nodeType":"YulTypedName","src":"14705:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14716:4:53","nodeType":"YulTypedName","src":"14716:4:53","type":""}],"src":"14573:373:53"},{"body":{"nativeSrc":"14992:76:53","nodeType":"YulBlock","src":"14992:76:53","statements":[{"body":{"nativeSrc":"15046:16:53","nodeType":"YulBlock","src":"15046:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15055:1:53","nodeType":"YulLiteral","src":"15055:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15058:1:53","nodeType":"YulLiteral","src":"15058:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15048:6:53","nodeType":"YulIdentifier","src":"15048:6:53"},"nativeSrc":"15048:12:53","nodeType":"YulFunctionCall","src":"15048:12:53"},"nativeSrc":"15048:12:53","nodeType":"YulExpressionStatement","src":"15048:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15015:5:53","nodeType":"YulIdentifier","src":"15015:5:53"},{"arguments":[{"name":"value","nativeSrc":"15037:5:53","nodeType":"YulIdentifier","src":"15037:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"15022:14:53","nodeType":"YulIdentifier","src":"15022:14:53"},"nativeSrc":"15022:21:53","nodeType":"YulFunctionCall","src":"15022:21:53"}],"functionName":{"name":"eq","nativeSrc":"15012:2:53","nodeType":"YulIdentifier","src":"15012:2:53"},"nativeSrc":"15012:32:53","nodeType":"YulFunctionCall","src":"15012:32:53"}],"functionName":{"name":"iszero","nativeSrc":"15005:6:53","nodeType":"YulIdentifier","src":"15005:6:53"},"nativeSrc":"15005:40:53","nodeType":"YulFunctionCall","src":"15005:40:53"},"nativeSrc":"15002:60:53","nodeType":"YulIf","src":"15002:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"14952:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14985:5:53","nodeType":"YulTypedName","src":"14985:5:53","type":""}],"src":"14952:116:53"},{"body":{"nativeSrc":"15123:84:53","nodeType":"YulBlock","src":"15123:84:53","statements":[{"nativeSrc":"15133:29:53","nodeType":"YulAssignment","src":"15133:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"15155:6:53","nodeType":"YulIdentifier","src":"15155:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"15142:12:53","nodeType":"YulIdentifier","src":"15142:12:53"},"nativeSrc":"15142:20:53","nodeType":"YulFunctionCall","src":"15142:20:53"},"variableNames":[{"name":"value","nativeSrc":"15133:5:53","nodeType":"YulIdentifier","src":"15133:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15195:5:53","nodeType":"YulIdentifier","src":"15195:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"15171:23:53","nodeType":"YulIdentifier","src":"15171:23:53"},"nativeSrc":"15171:30:53","nodeType":"YulFunctionCall","src":"15171:30:53"},"nativeSrc":"15171:30:53","nodeType":"YulExpressionStatement","src":"15171:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"15074:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15101:6:53","nodeType":"YulTypedName","src":"15101:6:53","type":""},{"name":"end","nativeSrc":"15109:3:53","nodeType":"YulTypedName","src":"15109:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15117:5:53","nodeType":"YulTypedName","src":"15117:5:53","type":""}],"src":"15074:133:53"},{"body":{"nativeSrc":"15293:388:53","nodeType":"YulBlock","src":"15293:388:53","statements":[{"body":{"nativeSrc":"15339:83:53","nodeType":"YulBlock","src":"15339:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15341:77:53","nodeType":"YulIdentifier","src":"15341:77:53"},"nativeSrc":"15341:79:53","nodeType":"YulFunctionCall","src":"15341:79:53"},"nativeSrc":"15341:79:53","nodeType":"YulExpressionStatement","src":"15341:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15314:7:53","nodeType":"YulIdentifier","src":"15314:7:53"},{"name":"headStart","nativeSrc":"15323:9:53","nodeType":"YulIdentifier","src":"15323:9:53"}],"functionName":{"name":"sub","nativeSrc":"15310:3:53","nodeType":"YulIdentifier","src":"15310:3:53"},"nativeSrc":"15310:23:53","nodeType":"YulFunctionCall","src":"15310:23:53"},{"kind":"number","nativeSrc":"15335:2:53","nodeType":"YulLiteral","src":"15335:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15306:3:53","nodeType":"YulIdentifier","src":"15306:3:53"},"nativeSrc":"15306:32:53","nodeType":"YulFunctionCall","src":"15306:32:53"},"nativeSrc":"15303:119:53","nodeType":"YulIf","src":"15303:119:53"},{"nativeSrc":"15432:117:53","nodeType":"YulBlock","src":"15432:117:53","statements":[{"nativeSrc":"15447:15:53","nodeType":"YulVariableDeclaration","src":"15447:15:53","value":{"kind":"number","nativeSrc":"15461:1:53","nodeType":"YulLiteral","src":"15461:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15451:6:53","nodeType":"YulTypedName","src":"15451:6:53","type":""}]},{"nativeSrc":"15476:63:53","nodeType":"YulAssignment","src":"15476:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15511:9:53","nodeType":"YulIdentifier","src":"15511:9:53"},{"name":"offset","nativeSrc":"15522:6:53","nodeType":"YulIdentifier","src":"15522:6:53"}],"functionName":{"name":"add","nativeSrc":"15507:3:53","nodeType":"YulIdentifier","src":"15507:3:53"},"nativeSrc":"15507:22:53","nodeType":"YulFunctionCall","src":"15507:22:53"},{"name":"dataEnd","nativeSrc":"15531:7:53","nodeType":"YulIdentifier","src":"15531:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15486:20:53","nodeType":"YulIdentifier","src":"15486:20:53"},"nativeSrc":"15486:53:53","nodeType":"YulFunctionCall","src":"15486:53:53"},"variableNames":[{"name":"value0","nativeSrc":"15476:6:53","nodeType":"YulIdentifier","src":"15476:6:53"}]}]},{"nativeSrc":"15559:115:53","nodeType":"YulBlock","src":"15559:115:53","statements":[{"nativeSrc":"15574:16:53","nodeType":"YulVariableDeclaration","src":"15574:16:53","value":{"kind":"number","nativeSrc":"15588:2:53","nodeType":"YulLiteral","src":"15588:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15578:6:53","nodeType":"YulTypedName","src":"15578:6:53","type":""}]},{"nativeSrc":"15604:60:53","nodeType":"YulAssignment","src":"15604:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15636:9:53","nodeType":"YulIdentifier","src":"15636:9:53"},{"name":"offset","nativeSrc":"15647:6:53","nodeType":"YulIdentifier","src":"15647:6:53"}],"functionName":{"name":"add","nativeSrc":"15632:3:53","nodeType":"YulIdentifier","src":"15632:3:53"},"nativeSrc":"15632:22:53","nodeType":"YulFunctionCall","src":"15632:22:53"},{"name":"dataEnd","nativeSrc":"15656:7:53","nodeType":"YulIdentifier","src":"15656:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"15614:17:53","nodeType":"YulIdentifier","src":"15614:17:53"},"nativeSrc":"15614:50:53","nodeType":"YulFunctionCall","src":"15614:50:53"},"variableNames":[{"name":"value1","nativeSrc":"15604:6:53","nodeType":"YulIdentifier","src":"15604:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"15213:468:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15255:9:53","nodeType":"YulTypedName","src":"15255:9:53","type":""},{"name":"dataEnd","nativeSrc":"15266:7:53","nodeType":"YulTypedName","src":"15266:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15278:6:53","nodeType":"YulTypedName","src":"15278:6:53","type":""},{"name":"value1","nativeSrc":"15286:6:53","nodeType":"YulTypedName","src":"15286:6:53","type":""}],"src":"15213:468:53"},{"body":{"nativeSrc":"15770:391:53","nodeType":"YulBlock","src":"15770:391:53","statements":[{"body":{"nativeSrc":"15816:83:53","nodeType":"YulBlock","src":"15816:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15818:77:53","nodeType":"YulIdentifier","src":"15818:77:53"},"nativeSrc":"15818:79:53","nodeType":"YulFunctionCall","src":"15818:79:53"},"nativeSrc":"15818:79:53","nodeType":"YulExpressionStatement","src":"15818:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15791:7:53","nodeType":"YulIdentifier","src":"15791:7:53"},{"name":"headStart","nativeSrc":"15800:9:53","nodeType":"YulIdentifier","src":"15800:9:53"}],"functionName":{"name":"sub","nativeSrc":"15787:3:53","nodeType":"YulIdentifier","src":"15787:3:53"},"nativeSrc":"15787:23:53","nodeType":"YulFunctionCall","src":"15787:23:53"},{"kind":"number","nativeSrc":"15812:2:53","nodeType":"YulLiteral","src":"15812:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15783:3:53","nodeType":"YulIdentifier","src":"15783:3:53"},"nativeSrc":"15783:32:53","nodeType":"YulFunctionCall","src":"15783:32:53"},"nativeSrc":"15780:119:53","nodeType":"YulIf","src":"15780:119:53"},{"nativeSrc":"15909:117:53","nodeType":"YulBlock","src":"15909:117:53","statements":[{"nativeSrc":"15924:15:53","nodeType":"YulVariableDeclaration","src":"15924:15:53","value":{"kind":"number","nativeSrc":"15938:1:53","nodeType":"YulLiteral","src":"15938:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15928:6:53","nodeType":"YulTypedName","src":"15928:6:53","type":""}]},{"nativeSrc":"15953:63:53","nodeType":"YulAssignment","src":"15953:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15988:9:53","nodeType":"YulIdentifier","src":"15988:9:53"},{"name":"offset","nativeSrc":"15999:6:53","nodeType":"YulIdentifier","src":"15999:6:53"}],"functionName":{"name":"add","nativeSrc":"15984:3:53","nodeType":"YulIdentifier","src":"15984:3:53"},"nativeSrc":"15984:22:53","nodeType":"YulFunctionCall","src":"15984:22:53"},{"name":"dataEnd","nativeSrc":"16008:7:53","nodeType":"YulIdentifier","src":"16008:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15963:20:53","nodeType":"YulIdentifier","src":"15963:20:53"},"nativeSrc":"15963:53:53","nodeType":"YulFunctionCall","src":"15963:53:53"},"variableNames":[{"name":"value0","nativeSrc":"15953:6:53","nodeType":"YulIdentifier","src":"15953:6:53"}]}]},{"nativeSrc":"16036:118:53","nodeType":"YulBlock","src":"16036:118:53","statements":[{"nativeSrc":"16051:16:53","nodeType":"YulVariableDeclaration","src":"16051:16:53","value":{"kind":"number","nativeSrc":"16065:2:53","nodeType":"YulLiteral","src":"16065:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16055:6:53","nodeType":"YulTypedName","src":"16055:6:53","type":""}]},{"nativeSrc":"16081:63:53","nodeType":"YulAssignment","src":"16081:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16116:9:53","nodeType":"YulIdentifier","src":"16116:9:53"},{"name":"offset","nativeSrc":"16127:6:53","nodeType":"YulIdentifier","src":"16127:6:53"}],"functionName":{"name":"add","nativeSrc":"16112:3:53","nodeType":"YulIdentifier","src":"16112:3:53"},"nativeSrc":"16112:22:53","nodeType":"YulFunctionCall","src":"16112:22:53"},{"name":"dataEnd","nativeSrc":"16136:7:53","nodeType":"YulIdentifier","src":"16136:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16091:20:53","nodeType":"YulIdentifier","src":"16091:20:53"},"nativeSrc":"16091:53:53","nodeType":"YulFunctionCall","src":"16091:53:53"},"variableNames":[{"name":"value1","nativeSrc":"16081:6:53","nodeType":"YulIdentifier","src":"16081:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"15687:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15732:9:53","nodeType":"YulTypedName","src":"15732:9:53","type":""},{"name":"dataEnd","nativeSrc":"15743:7:53","nodeType":"YulTypedName","src":"15743:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15755:6:53","nodeType":"YulTypedName","src":"15755:6:53","type":""},{"name":"value1","nativeSrc":"15763:6:53","nodeType":"YulTypedName","src":"15763:6:53","type":""}],"src":"15687:474:53"},{"body":{"nativeSrc":"16310:946:53","nodeType":"YulBlock","src":"16310:946:53","statements":[{"body":{"nativeSrc":"16357:83:53","nodeType":"YulBlock","src":"16357:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16359:77:53","nodeType":"YulIdentifier","src":"16359:77:53"},"nativeSrc":"16359:79:53","nodeType":"YulFunctionCall","src":"16359:79:53"},"nativeSrc":"16359:79:53","nodeType":"YulExpressionStatement","src":"16359:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16331:7:53","nodeType":"YulIdentifier","src":"16331:7:53"},{"name":"headStart","nativeSrc":"16340:9:53","nodeType":"YulIdentifier","src":"16340:9:53"}],"functionName":{"name":"sub","nativeSrc":"16327:3:53","nodeType":"YulIdentifier","src":"16327:3:53"},"nativeSrc":"16327:23:53","nodeType":"YulFunctionCall","src":"16327:23:53"},{"kind":"number","nativeSrc":"16352:3:53","nodeType":"YulLiteral","src":"16352:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"16323:3:53","nodeType":"YulIdentifier","src":"16323:3:53"},"nativeSrc":"16323:33:53","nodeType":"YulFunctionCall","src":"16323:33:53"},"nativeSrc":"16320:120:53","nodeType":"YulIf","src":"16320:120:53"},{"nativeSrc":"16450:117:53","nodeType":"YulBlock","src":"16450:117:53","statements":[{"nativeSrc":"16465:15:53","nodeType":"YulVariableDeclaration","src":"16465:15:53","value":{"kind":"number","nativeSrc":"16479:1:53","nodeType":"YulLiteral","src":"16479:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16469:6:53","nodeType":"YulTypedName","src":"16469:6:53","type":""}]},{"nativeSrc":"16494:63:53","nodeType":"YulAssignment","src":"16494:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16529:9:53","nodeType":"YulIdentifier","src":"16529:9:53"},{"name":"offset","nativeSrc":"16540:6:53","nodeType":"YulIdentifier","src":"16540:6:53"}],"functionName":{"name":"add","nativeSrc":"16525:3:53","nodeType":"YulIdentifier","src":"16525:3:53"},"nativeSrc":"16525:22:53","nodeType":"YulFunctionCall","src":"16525:22:53"},{"name":"dataEnd","nativeSrc":"16549:7:53","nodeType":"YulIdentifier","src":"16549:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16504:20:53","nodeType":"YulIdentifier","src":"16504:20:53"},"nativeSrc":"16504:53:53","nodeType":"YulFunctionCall","src":"16504:53:53"},"variableNames":[{"name":"value0","nativeSrc":"16494:6:53","nodeType":"YulIdentifier","src":"16494:6:53"}]}]},{"nativeSrc":"16577:118:53","nodeType":"YulBlock","src":"16577:118:53","statements":[{"nativeSrc":"16592:16:53","nodeType":"YulVariableDeclaration","src":"16592:16:53","value":{"kind":"number","nativeSrc":"16606:2:53","nodeType":"YulLiteral","src":"16606:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16596:6:53","nodeType":"YulTypedName","src":"16596:6:53","type":""}]},{"nativeSrc":"16622:63:53","nodeType":"YulAssignment","src":"16622:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16657:9:53","nodeType":"YulIdentifier","src":"16657:9:53"},{"name":"offset","nativeSrc":"16668:6:53","nodeType":"YulIdentifier","src":"16668:6:53"}],"functionName":{"name":"add","nativeSrc":"16653:3:53","nodeType":"YulIdentifier","src":"16653:3:53"},"nativeSrc":"16653:22:53","nodeType":"YulFunctionCall","src":"16653:22:53"},{"name":"dataEnd","nativeSrc":"16677:7:53","nodeType":"YulIdentifier","src":"16677:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16632:20:53","nodeType":"YulIdentifier","src":"16632:20:53"},"nativeSrc":"16632:53:53","nodeType":"YulFunctionCall","src":"16632:53:53"},"variableNames":[{"name":"value1","nativeSrc":"16622:6:53","nodeType":"YulIdentifier","src":"16622:6:53"}]}]},{"nativeSrc":"16705:118:53","nodeType":"YulBlock","src":"16705:118:53","statements":[{"nativeSrc":"16720:16:53","nodeType":"YulVariableDeclaration","src":"16720:16:53","value":{"kind":"number","nativeSrc":"16734:2:53","nodeType":"YulLiteral","src":"16734:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16724:6:53","nodeType":"YulTypedName","src":"16724:6:53","type":""}]},{"nativeSrc":"16750:63:53","nodeType":"YulAssignment","src":"16750:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16785:9:53","nodeType":"YulIdentifier","src":"16785:9:53"},{"name":"offset","nativeSrc":"16796:6:53","nodeType":"YulIdentifier","src":"16796:6:53"}],"functionName":{"name":"add","nativeSrc":"16781:3:53","nodeType":"YulIdentifier","src":"16781:3:53"},"nativeSrc":"16781:22:53","nodeType":"YulFunctionCall","src":"16781:22:53"},{"name":"dataEnd","nativeSrc":"16805:7:53","nodeType":"YulIdentifier","src":"16805:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16760:20:53","nodeType":"YulIdentifier","src":"16760:20:53"},"nativeSrc":"16760:53:53","nodeType":"YulFunctionCall","src":"16760:53:53"},"variableNames":[{"name":"value2","nativeSrc":"16750:6:53","nodeType":"YulIdentifier","src":"16750:6:53"}]}]},{"nativeSrc":"16833:118:53","nodeType":"YulBlock","src":"16833:118:53","statements":[{"nativeSrc":"16848:16:53","nodeType":"YulVariableDeclaration","src":"16848:16:53","value":{"kind":"number","nativeSrc":"16862:2:53","nodeType":"YulLiteral","src":"16862:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"16852:6:53","nodeType":"YulTypedName","src":"16852:6:53","type":""}]},{"nativeSrc":"16878:63:53","nodeType":"YulAssignment","src":"16878:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16913:9:53","nodeType":"YulIdentifier","src":"16913:9:53"},{"name":"offset","nativeSrc":"16924:6:53","nodeType":"YulIdentifier","src":"16924:6:53"}],"functionName":{"name":"add","nativeSrc":"16909:3:53","nodeType":"YulIdentifier","src":"16909:3:53"},"nativeSrc":"16909:22:53","nodeType":"YulFunctionCall","src":"16909:22:53"},{"name":"dataEnd","nativeSrc":"16933:7:53","nodeType":"YulIdentifier","src":"16933:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16888:20:53","nodeType":"YulIdentifier","src":"16888:20:53"},"nativeSrc":"16888:53:53","nodeType":"YulFunctionCall","src":"16888:53:53"},"variableNames":[{"name":"value3","nativeSrc":"16878:6:53","nodeType":"YulIdentifier","src":"16878:6:53"}]}]},{"nativeSrc":"16961:288:53","nodeType":"YulBlock","src":"16961:288:53","statements":[{"nativeSrc":"16976:47:53","nodeType":"YulVariableDeclaration","src":"16976:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17007:9:53","nodeType":"YulIdentifier","src":"17007:9:53"},{"kind":"number","nativeSrc":"17018:3:53","nodeType":"YulLiteral","src":"17018:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17003:3:53","nodeType":"YulIdentifier","src":"17003:3:53"},"nativeSrc":"17003:19:53","nodeType":"YulFunctionCall","src":"17003:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"16990:12:53","nodeType":"YulIdentifier","src":"16990:12:53"},"nativeSrc":"16990:33:53","nodeType":"YulFunctionCall","src":"16990:33:53"},"variables":[{"name":"offset","nativeSrc":"16980:6:53","nodeType":"YulTypedName","src":"16980:6:53","type":""}]},{"body":{"nativeSrc":"17070:83:53","nodeType":"YulBlock","src":"17070:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17072:77:53","nodeType":"YulIdentifier","src":"17072:77:53"},"nativeSrc":"17072:79:53","nodeType":"YulFunctionCall","src":"17072:79:53"},"nativeSrc":"17072:79:53","nodeType":"YulExpressionStatement","src":"17072:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17042:6:53","nodeType":"YulIdentifier","src":"17042:6:53"},{"kind":"number","nativeSrc":"17050:18:53","nodeType":"YulLiteral","src":"17050:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17039:2:53","nodeType":"YulIdentifier","src":"17039:2:53"},"nativeSrc":"17039:30:53","nodeType":"YulFunctionCall","src":"17039:30:53"},"nativeSrc":"17036:117:53","nodeType":"YulIf","src":"17036:117:53"},{"nativeSrc":"17167:72:53","nodeType":"YulAssignment","src":"17167:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17211:9:53","nodeType":"YulIdentifier","src":"17211:9:53"},{"name":"offset","nativeSrc":"17222:6:53","nodeType":"YulIdentifier","src":"17222:6:53"}],"functionName":{"name":"add","nativeSrc":"17207:3:53","nodeType":"YulIdentifier","src":"17207:3:53"},"nativeSrc":"17207:22:53","nodeType":"YulFunctionCall","src":"17207:22:53"},{"name":"dataEnd","nativeSrc":"17231:7:53","nodeType":"YulIdentifier","src":"17231:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17177:29:53","nodeType":"YulIdentifier","src":"17177:29:53"},"nativeSrc":"17177:62:53","nodeType":"YulFunctionCall","src":"17177:62:53"},"variableNames":[{"name":"value4","nativeSrc":"17167:6:53","nodeType":"YulIdentifier","src":"17167:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nativeSrc":"16167:1089:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16248:9:53","nodeType":"YulTypedName","src":"16248:9:53","type":""},{"name":"dataEnd","nativeSrc":"16259:7:53","nodeType":"YulTypedName","src":"16259:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16271:6:53","nodeType":"YulTypedName","src":"16271:6:53","type":""},{"name":"value1","nativeSrc":"16279:6:53","nodeType":"YulTypedName","src":"16279:6:53","type":""},{"name":"value2","nativeSrc":"16287:6:53","nodeType":"YulTypedName","src":"16287:6:53","type":""},{"name":"value3","nativeSrc":"16295:6:53","nodeType":"YulTypedName","src":"16295:6:53","type":""},{"name":"value4","nativeSrc":"16303:6:53","nodeType":"YulTypedName","src":"16303:6:53","type":""}],"src":"16167:1089:53"},{"body":{"nativeSrc":"17290:152:53","nodeType":"YulBlock","src":"17290:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17307:1:53","nodeType":"YulLiteral","src":"17307:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17310:77:53","nodeType":"YulLiteral","src":"17310:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17300:6:53","nodeType":"YulIdentifier","src":"17300:6:53"},"nativeSrc":"17300:88:53","nodeType":"YulFunctionCall","src":"17300:88:53"},"nativeSrc":"17300:88:53","nodeType":"YulExpressionStatement","src":"17300:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17404:1:53","nodeType":"YulLiteral","src":"17404:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"17407:4:53","nodeType":"YulLiteral","src":"17407:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"17397:6:53","nodeType":"YulIdentifier","src":"17397:6:53"},"nativeSrc":"17397:15:53","nodeType":"YulFunctionCall","src":"17397:15:53"},"nativeSrc":"17397:15:53","nodeType":"YulExpressionStatement","src":"17397:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17428:1:53","nodeType":"YulLiteral","src":"17428:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17431:4:53","nodeType":"YulLiteral","src":"17431:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17421:6:53","nodeType":"YulIdentifier","src":"17421:6:53"},"nativeSrc":"17421:15:53","nodeType":"YulFunctionCall","src":"17421:15:53"},"nativeSrc":"17421:15:53","nodeType":"YulExpressionStatement","src":"17421:15:53"}]},"name":"panic_error_0x22","nativeSrc":"17262:180:53","nodeType":"YulFunctionDefinition","src":"17262:180:53"},{"body":{"nativeSrc":"17499:269:53","nodeType":"YulBlock","src":"17499:269:53","statements":[{"nativeSrc":"17509:22:53","nodeType":"YulAssignment","src":"17509:22:53","value":{"arguments":[{"name":"data","nativeSrc":"17523:4:53","nodeType":"YulIdentifier","src":"17523:4:53"},{"kind":"number","nativeSrc":"17529:1:53","nodeType":"YulLiteral","src":"17529:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"17519:3:53","nodeType":"YulIdentifier","src":"17519:3:53"},"nativeSrc":"17519:12:53","nodeType":"YulFunctionCall","src":"17519:12:53"},"variableNames":[{"name":"length","nativeSrc":"17509:6:53","nodeType":"YulIdentifier","src":"17509:6:53"}]},{"nativeSrc":"17540:38:53","nodeType":"YulVariableDeclaration","src":"17540:38:53","value":{"arguments":[{"name":"data","nativeSrc":"17570:4:53","nodeType":"YulIdentifier","src":"17570:4:53"},{"kind":"number","nativeSrc":"17576:1:53","nodeType":"YulLiteral","src":"17576:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"17566:3:53","nodeType":"YulIdentifier","src":"17566:3:53"},"nativeSrc":"17566:12:53","nodeType":"YulFunctionCall","src":"17566:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"17544:18:53","nodeType":"YulTypedName","src":"17544:18:53","type":""}]},{"body":{"nativeSrc":"17617:51:53","nodeType":"YulBlock","src":"17617:51:53","statements":[{"nativeSrc":"17631:27:53","nodeType":"YulAssignment","src":"17631:27:53","value":{"arguments":[{"name":"length","nativeSrc":"17645:6:53","nodeType":"YulIdentifier","src":"17645:6:53"},{"kind":"number","nativeSrc":"17653:4:53","nodeType":"YulLiteral","src":"17653:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"17641:3:53","nodeType":"YulIdentifier","src":"17641:3:53"},"nativeSrc":"17641:17:53","nodeType":"YulFunctionCall","src":"17641:17:53"},"variableNames":[{"name":"length","nativeSrc":"17631:6:53","nodeType":"YulIdentifier","src":"17631:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17597:18:53","nodeType":"YulIdentifier","src":"17597:18:53"}],"functionName":{"name":"iszero","nativeSrc":"17590:6:53","nodeType":"YulIdentifier","src":"17590:6:53"},"nativeSrc":"17590:26:53","nodeType":"YulFunctionCall","src":"17590:26:53"},"nativeSrc":"17587:81:53","nodeType":"YulIf","src":"17587:81:53"},{"body":{"nativeSrc":"17720:42:53","nodeType":"YulBlock","src":"17720:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"17734:16:53","nodeType":"YulIdentifier","src":"17734:16:53"},"nativeSrc":"17734:18:53","nodeType":"YulFunctionCall","src":"17734:18:53"},"nativeSrc":"17734:18:53","nodeType":"YulExpressionStatement","src":"17734:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17684:18:53","nodeType":"YulIdentifier","src":"17684:18:53"},{"arguments":[{"name":"length","nativeSrc":"17707:6:53","nodeType":"YulIdentifier","src":"17707:6:53"},{"kind":"number","nativeSrc":"17715:2:53","nodeType":"YulLiteral","src":"17715:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17704:2:53","nodeType":"YulIdentifier","src":"17704:2:53"},"nativeSrc":"17704:14:53","nodeType":"YulFunctionCall","src":"17704:14:53"}],"functionName":{"name":"eq","nativeSrc":"17681:2:53","nodeType":"YulIdentifier","src":"17681:2:53"},"nativeSrc":"17681:38:53","nodeType":"YulFunctionCall","src":"17681:38:53"},"nativeSrc":"17678:84:53","nodeType":"YulIf","src":"17678:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"17448:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"17483:4:53","nodeType":"YulTypedName","src":"17483:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"17492:6:53","nodeType":"YulTypedName","src":"17492:6:53","type":""}],"src":"17448:320:53"},{"body":{"nativeSrc":"17839:53:53","nodeType":"YulBlock","src":"17839:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17856:3:53","nodeType":"YulIdentifier","src":"17856:3:53"},{"arguments":[{"name":"value","nativeSrc":"17879:5:53","nodeType":"YulIdentifier","src":"17879:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"17861:17:53","nodeType":"YulIdentifier","src":"17861:17:53"},"nativeSrc":"17861:24:53","nodeType":"YulFunctionCall","src":"17861:24:53"}],"functionName":{"name":"mstore","nativeSrc":"17849:6:53","nodeType":"YulIdentifier","src":"17849:6:53"},"nativeSrc":"17849:37:53","nodeType":"YulFunctionCall","src":"17849:37:53"},"nativeSrc":"17849:37:53","nodeType":"YulExpressionStatement","src":"17849:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17774:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17827:5:53","nodeType":"YulTypedName","src":"17827:5:53","type":""},{"name":"pos","nativeSrc":"17834:3:53","nodeType":"YulTypedName","src":"17834:3:53","type":""}],"src":"17774:118:53"},{"body":{"nativeSrc":"18024:206:53","nodeType":"YulBlock","src":"18024:206:53","statements":[{"nativeSrc":"18034:26:53","nodeType":"YulAssignment","src":"18034:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18046:9:53","nodeType":"YulIdentifier","src":"18046:9:53"},{"kind":"number","nativeSrc":"18057:2:53","nodeType":"YulLiteral","src":"18057:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18042:3:53","nodeType":"YulIdentifier","src":"18042:3:53"},"nativeSrc":"18042:18:53","nodeType":"YulFunctionCall","src":"18042:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18034:4:53","nodeType":"YulIdentifier","src":"18034:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18114:6:53","nodeType":"YulIdentifier","src":"18114:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18127:9:53","nodeType":"YulIdentifier","src":"18127:9:53"},{"kind":"number","nativeSrc":"18138:1:53","nodeType":"YulLiteral","src":"18138:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18123:3:53","nodeType":"YulIdentifier","src":"18123:3:53"},"nativeSrc":"18123:17:53","nodeType":"YulFunctionCall","src":"18123:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18070:43:53","nodeType":"YulIdentifier","src":"18070:43:53"},"nativeSrc":"18070:71:53","nodeType":"YulFunctionCall","src":"18070:71:53"},"nativeSrc":"18070:71:53","nodeType":"YulExpressionStatement","src":"18070:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18195:6:53","nodeType":"YulIdentifier","src":"18195:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18208:9:53","nodeType":"YulIdentifier","src":"18208:9:53"},{"kind":"number","nativeSrc":"18219:2:53","nodeType":"YulLiteral","src":"18219:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18204:3:53","nodeType":"YulIdentifier","src":"18204:3:53"},"nativeSrc":"18204:18:53","nodeType":"YulFunctionCall","src":"18204:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18151:43:53","nodeType":"YulIdentifier","src":"18151:43:53"},"nativeSrc":"18151:72:53","nodeType":"YulFunctionCall","src":"18151:72:53"},"nativeSrc":"18151:72:53","nodeType":"YulExpressionStatement","src":"18151:72:53"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"17898:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17988:9:53","nodeType":"YulTypedName","src":"17988:9:53","type":""},{"name":"value1","nativeSrc":"18000:6:53","nodeType":"YulTypedName","src":"18000:6:53","type":""},{"name":"value0","nativeSrc":"18008:6:53","nodeType":"YulTypedName","src":"18008:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18019:4:53","nodeType":"YulTypedName","src":"18019:4:53","type":""}],"src":"17898:332:53"},{"body":{"nativeSrc":"18362:206:53","nodeType":"YulBlock","src":"18362:206:53","statements":[{"nativeSrc":"18372:26:53","nodeType":"YulAssignment","src":"18372:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18384:9:53","nodeType":"YulIdentifier","src":"18384:9:53"},{"kind":"number","nativeSrc":"18395:2:53","nodeType":"YulLiteral","src":"18395:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18380:3:53","nodeType":"YulIdentifier","src":"18380:3:53"},"nativeSrc":"18380:18:53","nodeType":"YulFunctionCall","src":"18380:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18372:4:53","nodeType":"YulIdentifier","src":"18372:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18452:6:53","nodeType":"YulIdentifier","src":"18452:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18465:9:53","nodeType":"YulIdentifier","src":"18465:9:53"},{"kind":"number","nativeSrc":"18476:1:53","nodeType":"YulLiteral","src":"18476:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18461:3:53","nodeType":"YulIdentifier","src":"18461:3:53"},"nativeSrc":"18461:17:53","nodeType":"YulFunctionCall","src":"18461:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"18408:43:53","nodeType":"YulIdentifier","src":"18408:43:53"},"nativeSrc":"18408:71:53","nodeType":"YulFunctionCall","src":"18408:71:53"},"nativeSrc":"18408:71:53","nodeType":"YulExpressionStatement","src":"18408:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18533:6:53","nodeType":"YulIdentifier","src":"18533:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18546:9:53","nodeType":"YulIdentifier","src":"18546:9:53"},{"kind":"number","nativeSrc":"18557:2:53","nodeType":"YulLiteral","src":"18557:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18542:3:53","nodeType":"YulIdentifier","src":"18542:3:53"},"nativeSrc":"18542:18:53","nodeType":"YulFunctionCall","src":"18542:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"18489:43:53","nodeType":"YulIdentifier","src":"18489:43:53"},"nativeSrc":"18489:72:53","nodeType":"YulFunctionCall","src":"18489:72:53"},"nativeSrc":"18489:72:53","nodeType":"YulExpressionStatement","src":"18489:72:53"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"18236:332:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18326:9:53","nodeType":"YulTypedName","src":"18326:9:53","type":""},{"name":"value1","nativeSrc":"18338:6:53","nodeType":"YulTypedName","src":"18338:6:53","type":""},{"name":"value0","nativeSrc":"18346:6:53","nodeType":"YulTypedName","src":"18346:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18357:4:53","nodeType":"YulTypedName","src":"18357:4:53","type":""}],"src":"18236:332:53"},{"body":{"nativeSrc":"18602:152:53","nodeType":"YulBlock","src":"18602:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18619:1:53","nodeType":"YulLiteral","src":"18619:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18622:77:53","nodeType":"YulLiteral","src":"18622:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18612:6:53","nodeType":"YulIdentifier","src":"18612:6:53"},"nativeSrc":"18612:88:53","nodeType":"YulFunctionCall","src":"18612:88:53"},"nativeSrc":"18612:88:53","nodeType":"YulExpressionStatement","src":"18612:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18716:1:53","nodeType":"YulLiteral","src":"18716:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"18719:4:53","nodeType":"YulLiteral","src":"18719:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"18709:6:53","nodeType":"YulIdentifier","src":"18709:6:53"},"nativeSrc":"18709:15:53","nodeType":"YulFunctionCall","src":"18709:15:53"},"nativeSrc":"18709:15:53","nodeType":"YulExpressionStatement","src":"18709:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18740:1:53","nodeType":"YulLiteral","src":"18740:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"18743:4:53","nodeType":"YulLiteral","src":"18743:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18733:6:53","nodeType":"YulIdentifier","src":"18733:6:53"},"nativeSrc":"18733:15:53","nodeType":"YulFunctionCall","src":"18733:15:53"},"nativeSrc":"18733:15:53","nodeType":"YulExpressionStatement","src":"18733:15:53"}]},"name":"panic_error_0x32","nativeSrc":"18574:180:53","nodeType":"YulFunctionDefinition","src":"18574:180:53"},{"body":{"nativeSrc":"18858:124:53","nodeType":"YulBlock","src":"18858:124:53","statements":[{"nativeSrc":"18868:26:53","nodeType":"YulAssignment","src":"18868:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"18880:9:53","nodeType":"YulIdentifier","src":"18880:9:53"},{"kind":"number","nativeSrc":"18891:2:53","nodeType":"YulLiteral","src":"18891:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18876:3:53","nodeType":"YulIdentifier","src":"18876:3:53"},"nativeSrc":"18876:18:53","nodeType":"YulFunctionCall","src":"18876:18:53"},"variableNames":[{"name":"tail","nativeSrc":"18868:4:53","nodeType":"YulIdentifier","src":"18868:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18948:6:53","nodeType":"YulIdentifier","src":"18948:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"18961:9:53","nodeType":"YulIdentifier","src":"18961:9:53"},{"kind":"number","nativeSrc":"18972:1:53","nodeType":"YulLiteral","src":"18972:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18957:3:53","nodeType":"YulIdentifier","src":"18957:3:53"},"nativeSrc":"18957:17:53","nodeType":"YulFunctionCall","src":"18957:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18904:43:53","nodeType":"YulIdentifier","src":"18904:43:53"},"nativeSrc":"18904:71:53","nodeType":"YulFunctionCall","src":"18904:71:53"},"nativeSrc":"18904:71:53","nodeType":"YulExpressionStatement","src":"18904:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"18760:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18830:9:53","nodeType":"YulTypedName","src":"18830:9:53","type":""},{"name":"value0","nativeSrc":"18842:6:53","nodeType":"YulTypedName","src":"18842:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18853:4:53","nodeType":"YulTypedName","src":"18853:4:53","type":""}],"src":"18760:222:53"},{"body":{"nativeSrc":"19170:371:53","nodeType":"YulBlock","src":"19170:371:53","statements":[{"nativeSrc":"19180:27:53","nodeType":"YulAssignment","src":"19180:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"19192:9:53","nodeType":"YulIdentifier","src":"19192:9:53"},{"kind":"number","nativeSrc":"19203:3:53","nodeType":"YulLiteral","src":"19203:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19188:3:53","nodeType":"YulIdentifier","src":"19188:3:53"},"nativeSrc":"19188:19:53","nodeType":"YulFunctionCall","src":"19188:19:53"},"variableNames":[{"name":"tail","nativeSrc":"19180:4:53","nodeType":"YulIdentifier","src":"19180:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19261:6:53","nodeType":"YulIdentifier","src":"19261:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19274:9:53","nodeType":"YulIdentifier","src":"19274:9:53"},{"kind":"number","nativeSrc":"19285:1:53","nodeType":"YulLiteral","src":"19285:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19270:3:53","nodeType":"YulIdentifier","src":"19270:3:53"},"nativeSrc":"19270:17:53","nodeType":"YulFunctionCall","src":"19270:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"19217:43:53","nodeType":"YulIdentifier","src":"19217:43:53"},"nativeSrc":"19217:71:53","nodeType":"YulFunctionCall","src":"19217:71:53"},"nativeSrc":"19217:71:53","nodeType":"YulExpressionStatement","src":"19217:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19342:6:53","nodeType":"YulIdentifier","src":"19342:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19355:9:53","nodeType":"YulIdentifier","src":"19355:9:53"},{"kind":"number","nativeSrc":"19366:2:53","nodeType":"YulLiteral","src":"19366:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19351:3:53","nodeType":"YulIdentifier","src":"19351:3:53"},"nativeSrc":"19351:18:53","nodeType":"YulFunctionCall","src":"19351:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19298:43:53","nodeType":"YulIdentifier","src":"19298:43:53"},"nativeSrc":"19298:72:53","nodeType":"YulFunctionCall","src":"19298:72:53"},"nativeSrc":"19298:72:53","nodeType":"YulExpressionStatement","src":"19298:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"19424:6:53","nodeType":"YulIdentifier","src":"19424:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19437:9:53","nodeType":"YulIdentifier","src":"19437:9:53"},{"kind":"number","nativeSrc":"19448:2:53","nodeType":"YulLiteral","src":"19448:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19433:3:53","nodeType":"YulIdentifier","src":"19433:3:53"},"nativeSrc":"19433:18:53","nodeType":"YulFunctionCall","src":"19433:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19380:43:53","nodeType":"YulIdentifier","src":"19380:43:53"},"nativeSrc":"19380:72:53","nodeType":"YulFunctionCall","src":"19380:72:53"},"nativeSrc":"19380:72:53","nodeType":"YulExpressionStatement","src":"19380:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"19506:6:53","nodeType":"YulIdentifier","src":"19506:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"19519:9:53","nodeType":"YulIdentifier","src":"19519:9:53"},{"kind":"number","nativeSrc":"19530:2:53","nodeType":"YulLiteral","src":"19530:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19515:3:53","nodeType":"YulIdentifier","src":"19515:3:53"},"nativeSrc":"19515:18:53","nodeType":"YulFunctionCall","src":"19515:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19462:43:53","nodeType":"YulIdentifier","src":"19462:43:53"},"nativeSrc":"19462:72:53","nodeType":"YulFunctionCall","src":"19462:72:53"},"nativeSrc":"19462:72:53","nodeType":"YulExpressionStatement","src":"19462:72:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"18988:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19118:9:53","nodeType":"YulTypedName","src":"19118:9:53","type":""},{"name":"value3","nativeSrc":"19130:6:53","nodeType":"YulTypedName","src":"19130:6:53","type":""},{"name":"value2","nativeSrc":"19138:6:53","nodeType":"YulTypedName","src":"19138:6:53","type":""},{"name":"value1","nativeSrc":"19146:6:53","nodeType":"YulTypedName","src":"19146:6:53","type":""},{"name":"value0","nativeSrc":"19154:6:53","nodeType":"YulTypedName","src":"19154:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19165:4:53","nodeType":"YulTypedName","src":"19165:4:53","type":""}],"src":"18988:553:53"},{"body":{"nativeSrc":"19575:152:53","nodeType":"YulBlock","src":"19575:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19592:1:53","nodeType":"YulLiteral","src":"19592:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19595:77:53","nodeType":"YulLiteral","src":"19595:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"19585:6:53","nodeType":"YulIdentifier","src":"19585:6:53"},"nativeSrc":"19585:88:53","nodeType":"YulFunctionCall","src":"19585:88:53"},"nativeSrc":"19585:88:53","nodeType":"YulExpressionStatement","src":"19585:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19689:1:53","nodeType":"YulLiteral","src":"19689:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"19692:4:53","nodeType":"YulLiteral","src":"19692:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"19682:6:53","nodeType":"YulIdentifier","src":"19682:6:53"},"nativeSrc":"19682:15:53","nodeType":"YulFunctionCall","src":"19682:15:53"},"nativeSrc":"19682:15:53","nodeType":"YulExpressionStatement","src":"19682:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19713:1:53","nodeType":"YulLiteral","src":"19713:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19716:4:53","nodeType":"YulLiteral","src":"19716:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19706:6:53","nodeType":"YulIdentifier","src":"19706:6:53"},"nativeSrc":"19706:15:53","nodeType":"YulFunctionCall","src":"19706:15:53"},"nativeSrc":"19706:15:53","nodeType":"YulExpressionStatement","src":"19706:15:53"}]},"name":"panic_error_0x11","nativeSrc":"19547:180:53","nodeType":"YulFunctionDefinition","src":"19547:180:53"},{"body":{"nativeSrc":"19777:147:53","nodeType":"YulBlock","src":"19777:147:53","statements":[{"nativeSrc":"19787:25:53","nodeType":"YulAssignment","src":"19787:25:53","value":{"arguments":[{"name":"x","nativeSrc":"19810:1:53","nodeType":"YulIdentifier","src":"19810:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19792:17:53","nodeType":"YulIdentifier","src":"19792:17:53"},"nativeSrc":"19792:20:53","nodeType":"YulFunctionCall","src":"19792:20:53"},"variableNames":[{"name":"x","nativeSrc":"19787:1:53","nodeType":"YulIdentifier","src":"19787:1:53"}]},{"nativeSrc":"19821:25:53","nodeType":"YulAssignment","src":"19821:25:53","value":{"arguments":[{"name":"y","nativeSrc":"19844:1:53","nodeType":"YulIdentifier","src":"19844:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19826:17:53","nodeType":"YulIdentifier","src":"19826:17:53"},"nativeSrc":"19826:20:53","nodeType":"YulFunctionCall","src":"19826:20:53"},"variableNames":[{"name":"y","nativeSrc":"19821:1:53","nodeType":"YulIdentifier","src":"19821:1:53"}]},{"nativeSrc":"19855:16:53","nodeType":"YulAssignment","src":"19855:16:53","value":{"arguments":[{"name":"x","nativeSrc":"19866:1:53","nodeType":"YulIdentifier","src":"19866:1:53"},{"name":"y","nativeSrc":"19869:1:53","nodeType":"YulIdentifier","src":"19869:1:53"}],"functionName":{"name":"add","nativeSrc":"19862:3:53","nodeType":"YulIdentifier","src":"19862:3:53"},"nativeSrc":"19862:9:53","nodeType":"YulFunctionCall","src":"19862:9:53"},"variableNames":[{"name":"sum","nativeSrc":"19855:3:53","nodeType":"YulIdentifier","src":"19855:3:53"}]},{"body":{"nativeSrc":"19895:22:53","nodeType":"YulBlock","src":"19895:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19897:16:53","nodeType":"YulIdentifier","src":"19897:16:53"},"nativeSrc":"19897:18:53","nodeType":"YulFunctionCall","src":"19897:18:53"},"nativeSrc":"19897:18:53","nodeType":"YulExpressionStatement","src":"19897:18:53"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"19887:1:53","nodeType":"YulIdentifier","src":"19887:1:53"},{"name":"sum","nativeSrc":"19890:3:53","nodeType":"YulIdentifier","src":"19890:3:53"}],"functionName":{"name":"gt","nativeSrc":"19884:2:53","nodeType":"YulIdentifier","src":"19884:2:53"},"nativeSrc":"19884:10:53","nodeType":"YulFunctionCall","src":"19884:10:53"},"nativeSrc":"19881:36:53","nodeType":"YulIf","src":"19881:36:53"}]},"name":"checked_add_t_uint256","nativeSrc":"19733:191:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"19764:1:53","nodeType":"YulTypedName","src":"19764:1:53","type":""},{"name":"y","nativeSrc":"19767:1:53","nodeType":"YulTypedName","src":"19767:1:53","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"19773:3:53","nodeType":"YulTypedName","src":"19773:3:53","type":""}],"src":"19733:191:53"},{"body":{"nativeSrc":"20156:408:53","nodeType":"YulBlock","src":"20156:408:53","statements":[{"nativeSrc":"20166:26:53","nodeType":"YulAssignment","src":"20166:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"20178:9:53","nodeType":"YulIdentifier","src":"20178:9:53"},{"kind":"number","nativeSrc":"20189:2:53","nodeType":"YulLiteral","src":"20189:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20174:3:53","nodeType":"YulIdentifier","src":"20174:3:53"},"nativeSrc":"20174:18:53","nodeType":"YulFunctionCall","src":"20174:18:53"},"variableNames":[{"name":"tail","nativeSrc":"20166:4:53","nodeType":"YulIdentifier","src":"20166:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20213:9:53","nodeType":"YulIdentifier","src":"20213:9:53"},{"kind":"number","nativeSrc":"20224:1:53","nodeType":"YulLiteral","src":"20224:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20209:3:53","nodeType":"YulIdentifier","src":"20209:3:53"},"nativeSrc":"20209:17:53","nodeType":"YulFunctionCall","src":"20209:17:53"},{"arguments":[{"name":"tail","nativeSrc":"20232:4:53","nodeType":"YulIdentifier","src":"20232:4:53"},{"name":"headStart","nativeSrc":"20238:9:53","nodeType":"YulIdentifier","src":"20238:9:53"}],"functionName":{"name":"sub","nativeSrc":"20228:3:53","nodeType":"YulIdentifier","src":"20228:3:53"},"nativeSrc":"20228:20:53","nodeType":"YulFunctionCall","src":"20228:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20202:6:53","nodeType":"YulIdentifier","src":"20202:6:53"},"nativeSrc":"20202:47:53","nodeType":"YulFunctionCall","src":"20202:47:53"},"nativeSrc":"20202:47:53","nodeType":"YulExpressionStatement","src":"20202:47:53"},{"nativeSrc":"20258:116:53","nodeType":"YulAssignment","src":"20258:116:53","value":{"arguments":[{"name":"value0","nativeSrc":"20360:6:53","nodeType":"YulIdentifier","src":"20360:6:53"},{"name":"tail","nativeSrc":"20369:4:53","nodeType":"YulIdentifier","src":"20369:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"20266:93:53","nodeType":"YulIdentifier","src":"20266:93:53"},"nativeSrc":"20266:108:53","nodeType":"YulFunctionCall","src":"20266:108:53"},"variableNames":[{"name":"tail","nativeSrc":"20258:4:53","nodeType":"YulIdentifier","src":"20258:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20395:9:53","nodeType":"YulIdentifier","src":"20395:9:53"},{"kind":"number","nativeSrc":"20406:2:53","nodeType":"YulLiteral","src":"20406:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20391:3:53","nodeType":"YulIdentifier","src":"20391:3:53"},"nativeSrc":"20391:18:53","nodeType":"YulFunctionCall","src":"20391:18:53"},{"arguments":[{"name":"tail","nativeSrc":"20415:4:53","nodeType":"YulIdentifier","src":"20415:4:53"},{"name":"headStart","nativeSrc":"20421:9:53","nodeType":"YulIdentifier","src":"20421:9:53"}],"functionName":{"name":"sub","nativeSrc":"20411:3:53","nodeType":"YulIdentifier","src":"20411:3:53"},"nativeSrc":"20411:20:53","nodeType":"YulFunctionCall","src":"20411:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20384:6:53","nodeType":"YulIdentifier","src":"20384:6:53"},"nativeSrc":"20384:48:53","nodeType":"YulFunctionCall","src":"20384:48:53"},"nativeSrc":"20384:48:53","nodeType":"YulExpressionStatement","src":"20384:48:53"},{"nativeSrc":"20441:116:53","nodeType":"YulAssignment","src":"20441:116:53","value":{"arguments":[{"name":"value1","nativeSrc":"20543:6:53","nodeType":"YulIdentifier","src":"20543:6:53"},{"name":"tail","nativeSrc":"20552:4:53","nodeType":"YulIdentifier","src":"20552:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"20449:93:53","nodeType":"YulIdentifier","src":"20449:93:53"},"nativeSrc":"20449:108:53","nodeType":"YulFunctionCall","src":"20449:108:53"},"variableNames":[{"name":"tail","nativeSrc":"20441:4:53","nodeType":"YulIdentifier","src":"20441:4:53"}]}]},"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":"19930:634:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20120:9:53","nodeType":"YulTypedName","src":"20120:9:53","type":""},{"name":"value1","nativeSrc":"20132:6:53","nodeType":"YulTypedName","src":"20132:6:53","type":""},{"name":"value0","nativeSrc":"20140:6:53","nodeType":"YulTypedName","src":"20140:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20151:4:53","nodeType":"YulTypedName","src":"20151:4:53","type":""}],"src":"19930:634:53"},{"body":{"nativeSrc":"20628:40:53","nodeType":"YulBlock","src":"20628:40:53","statements":[{"nativeSrc":"20639:22:53","nodeType":"YulAssignment","src":"20639:22:53","value":{"arguments":[{"name":"value","nativeSrc":"20655:5:53","nodeType":"YulIdentifier","src":"20655:5:53"}],"functionName":{"name":"mload","nativeSrc":"20649:5:53","nodeType":"YulIdentifier","src":"20649:5:53"},"nativeSrc":"20649:12:53","nodeType":"YulFunctionCall","src":"20649:12:53"},"variableNames":[{"name":"length","nativeSrc":"20639:6:53","nodeType":"YulIdentifier","src":"20639:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"20570:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20611:5:53","nodeType":"YulTypedName","src":"20611:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"20621:6:53","nodeType":"YulTypedName","src":"20621:6:53","type":""}],"src":"20570:98:53"},{"body":{"nativeSrc":"20769:73:53","nodeType":"YulBlock","src":"20769:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20786:3:53","nodeType":"YulIdentifier","src":"20786:3:53"},{"name":"length","nativeSrc":"20791:6:53","nodeType":"YulIdentifier","src":"20791:6:53"}],"functionName":{"name":"mstore","nativeSrc":"20779:6:53","nodeType":"YulIdentifier","src":"20779:6:53"},"nativeSrc":"20779:19:53","nodeType":"YulFunctionCall","src":"20779:19:53"},"nativeSrc":"20779:19:53","nodeType":"YulExpressionStatement","src":"20779:19:53"},{"nativeSrc":"20807:29:53","nodeType":"YulAssignment","src":"20807:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"20826:3:53","nodeType":"YulIdentifier","src":"20826:3:53"},{"kind":"number","nativeSrc":"20831:4:53","nodeType":"YulLiteral","src":"20831:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20822:3:53","nodeType":"YulIdentifier","src":"20822:3:53"},"nativeSrc":"20822:14:53","nodeType":"YulFunctionCall","src":"20822:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"20807:11:53","nodeType":"YulIdentifier","src":"20807:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"20674:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20741:3:53","nodeType":"YulTypedName","src":"20741:3:53","type":""},{"name":"length","nativeSrc":"20746:6:53","nodeType":"YulTypedName","src":"20746:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"20757:11:53","nodeType":"YulTypedName","src":"20757:11:53","type":""}],"src":"20674:168:53"},{"body":{"nativeSrc":"20938:283:53","nodeType":"YulBlock","src":"20938:283:53","statements":[{"nativeSrc":"20948:52:53","nodeType":"YulVariableDeclaration","src":"20948:52:53","value":{"arguments":[{"name":"value","nativeSrc":"20994:5:53","nodeType":"YulIdentifier","src":"20994:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"20962:31:53","nodeType":"YulIdentifier","src":"20962:31:53"},"nativeSrc":"20962:38:53","nodeType":"YulFunctionCall","src":"20962:38:53"},"variables":[{"name":"length","nativeSrc":"20952:6:53","nodeType":"YulTypedName","src":"20952:6:53","type":""}]},{"nativeSrc":"21009:77:53","nodeType":"YulAssignment","src":"21009:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"21074:3:53","nodeType":"YulIdentifier","src":"21074:3:53"},{"name":"length","nativeSrc":"21079:6:53","nodeType":"YulIdentifier","src":"21079:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"21016:57:53","nodeType":"YulIdentifier","src":"21016:57:53"},"nativeSrc":"21016:70:53","nodeType":"YulFunctionCall","src":"21016:70:53"},"variableNames":[{"name":"pos","nativeSrc":"21009:3:53","nodeType":"YulIdentifier","src":"21009:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21134:5:53","nodeType":"YulIdentifier","src":"21134:5:53"},{"kind":"number","nativeSrc":"21141:4:53","nodeType":"YulLiteral","src":"21141:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21130:3:53","nodeType":"YulIdentifier","src":"21130:3:53"},"nativeSrc":"21130:16:53","nodeType":"YulFunctionCall","src":"21130:16:53"},{"name":"pos","nativeSrc":"21148:3:53","nodeType":"YulIdentifier","src":"21148:3:53"},{"name":"length","nativeSrc":"21153:6:53","nodeType":"YulIdentifier","src":"21153:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"21095:34:53","nodeType":"YulIdentifier","src":"21095:34:53"},"nativeSrc":"21095:65:53","nodeType":"YulFunctionCall","src":"21095:65:53"},"nativeSrc":"21095:65:53","nodeType":"YulExpressionStatement","src":"21095:65:53"},{"nativeSrc":"21169:46:53","nodeType":"YulAssignment","src":"21169:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"21180:3:53","nodeType":"YulIdentifier","src":"21180:3:53"},{"arguments":[{"name":"length","nativeSrc":"21207:6:53","nodeType":"YulIdentifier","src":"21207:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"21185:21:53","nodeType":"YulIdentifier","src":"21185:21:53"},"nativeSrc":"21185:29:53","nodeType":"YulFunctionCall","src":"21185:29:53"}],"functionName":{"name":"add","nativeSrc":"21176:3:53","nodeType":"YulIdentifier","src":"21176:3:53"},"nativeSrc":"21176:39:53","nodeType":"YulFunctionCall","src":"21176:39:53"},"variableNames":[{"name":"end","nativeSrc":"21169:3:53","nodeType":"YulIdentifier","src":"21169:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"20848:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20919:5:53","nodeType":"YulTypedName","src":"20919:5:53","type":""},{"name":"pos","nativeSrc":"20926:3:53","nodeType":"YulTypedName","src":"20926:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20934:3:53","nodeType":"YulTypedName","src":"20934:3:53","type":""}],"src":"20848:373:53"},{"body":{"nativeSrc":"21455:523:53","nodeType":"YulBlock","src":"21455:523:53","statements":[{"nativeSrc":"21465:27:53","nodeType":"YulAssignment","src":"21465:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"21477:9:53","nodeType":"YulIdentifier","src":"21477:9:53"},{"kind":"number","nativeSrc":"21488:3:53","nodeType":"YulLiteral","src":"21488:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"21473:3:53","nodeType":"YulIdentifier","src":"21473:3:53"},"nativeSrc":"21473:19:53","nodeType":"YulFunctionCall","src":"21473:19:53"},"variableNames":[{"name":"tail","nativeSrc":"21465:4:53","nodeType":"YulIdentifier","src":"21465:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21546:6:53","nodeType":"YulIdentifier","src":"21546:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21559:9:53","nodeType":"YulIdentifier","src":"21559:9:53"},{"kind":"number","nativeSrc":"21570:1:53","nodeType":"YulLiteral","src":"21570:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21555:3:53","nodeType":"YulIdentifier","src":"21555:3:53"},"nativeSrc":"21555:17:53","nodeType":"YulFunctionCall","src":"21555:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21502:43:53","nodeType":"YulIdentifier","src":"21502:43:53"},"nativeSrc":"21502:71:53","nodeType":"YulFunctionCall","src":"21502:71:53"},"nativeSrc":"21502:71:53","nodeType":"YulExpressionStatement","src":"21502:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21627:6:53","nodeType":"YulIdentifier","src":"21627:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21640:9:53","nodeType":"YulIdentifier","src":"21640:9:53"},{"kind":"number","nativeSrc":"21651:2:53","nodeType":"YulLiteral","src":"21651:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21636:3:53","nodeType":"YulIdentifier","src":"21636:3:53"},"nativeSrc":"21636:18:53","nodeType":"YulFunctionCall","src":"21636:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21583:43:53","nodeType":"YulIdentifier","src":"21583:43:53"},"nativeSrc":"21583:72:53","nodeType":"YulFunctionCall","src":"21583:72:53"},"nativeSrc":"21583:72:53","nodeType":"YulExpressionStatement","src":"21583:72:53"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21709:6:53","nodeType":"YulIdentifier","src":"21709:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21722:9:53","nodeType":"YulIdentifier","src":"21722:9:53"},{"kind":"number","nativeSrc":"21733:2:53","nodeType":"YulLiteral","src":"21733:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21718:3:53","nodeType":"YulIdentifier","src":"21718:3:53"},"nativeSrc":"21718:18:53","nodeType":"YulFunctionCall","src":"21718:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21665:43:53","nodeType":"YulIdentifier","src":"21665:43:53"},"nativeSrc":"21665:72:53","nodeType":"YulFunctionCall","src":"21665:72:53"},"nativeSrc":"21665:72:53","nodeType":"YulExpressionStatement","src":"21665:72:53"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"21791:6:53","nodeType":"YulIdentifier","src":"21791:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"21804:9:53","nodeType":"YulIdentifier","src":"21804:9:53"},{"kind":"number","nativeSrc":"21815:2:53","nodeType":"YulLiteral","src":"21815:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21800:3:53","nodeType":"YulIdentifier","src":"21800:3:53"},"nativeSrc":"21800:18:53","nodeType":"YulFunctionCall","src":"21800:18:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21747:43:53","nodeType":"YulIdentifier","src":"21747:43:53"},"nativeSrc":"21747:72:53","nodeType":"YulFunctionCall","src":"21747:72:53"},"nativeSrc":"21747:72:53","nodeType":"YulExpressionStatement","src":"21747:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21840:9:53","nodeType":"YulIdentifier","src":"21840:9:53"},{"kind":"number","nativeSrc":"21851:3:53","nodeType":"YulLiteral","src":"21851:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21836:3:53","nodeType":"YulIdentifier","src":"21836:3:53"},"nativeSrc":"21836:19:53","nodeType":"YulFunctionCall","src":"21836:19:53"},{"arguments":[{"name":"tail","nativeSrc":"21861:4:53","nodeType":"YulIdentifier","src":"21861:4:53"},{"name":"headStart","nativeSrc":"21867:9:53","nodeType":"YulIdentifier","src":"21867:9:53"}],"functionName":{"name":"sub","nativeSrc":"21857:3:53","nodeType":"YulIdentifier","src":"21857:3:53"},"nativeSrc":"21857:20:53","nodeType":"YulFunctionCall","src":"21857:20:53"}],"functionName":{"name":"mstore","nativeSrc":"21829:6:53","nodeType":"YulIdentifier","src":"21829:6:53"},"nativeSrc":"21829:49:53","nodeType":"YulFunctionCall","src":"21829:49:53"},"nativeSrc":"21829:49:53","nodeType":"YulExpressionStatement","src":"21829:49:53"},{"nativeSrc":"21887:84:53","nodeType":"YulAssignment","src":"21887:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"21957:6:53","nodeType":"YulIdentifier","src":"21957:6:53"},{"name":"tail","nativeSrc":"21966:4:53","nodeType":"YulIdentifier","src":"21966:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"21895:61:53","nodeType":"YulIdentifier","src":"21895:61:53"},"nativeSrc":"21895:76:53","nodeType":"YulFunctionCall","src":"21895:76:53"},"variableNames":[{"name":"tail","nativeSrc":"21887:4:53","nodeType":"YulIdentifier","src":"21887:4:53"}]}]},"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":"21227:751:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21395:9:53","nodeType":"YulTypedName","src":"21395:9:53","type":""},{"name":"value4","nativeSrc":"21407:6:53","nodeType":"YulTypedName","src":"21407:6:53","type":""},{"name":"value3","nativeSrc":"21415:6:53","nodeType":"YulTypedName","src":"21415:6:53","type":""},{"name":"value2","nativeSrc":"21423:6:53","nodeType":"YulTypedName","src":"21423:6:53","type":""},{"name":"value1","nativeSrc":"21431:6:53","nodeType":"YulTypedName","src":"21431:6:53","type":""},{"name":"value0","nativeSrc":"21439:6:53","nodeType":"YulTypedName","src":"21439:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21450:4:53","nodeType":"YulTypedName","src":"21450:4:53","type":""}],"src":"21227:751:53"},{"body":{"nativeSrc":"22046:79:53","nodeType":"YulBlock","src":"22046:79:53","statements":[{"nativeSrc":"22056:22:53","nodeType":"YulAssignment","src":"22056:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"22071:6:53","nodeType":"YulIdentifier","src":"22071:6:53"}],"functionName":{"name":"mload","nativeSrc":"22065:5:53","nodeType":"YulIdentifier","src":"22065:5:53"},"nativeSrc":"22065:13:53","nodeType":"YulFunctionCall","src":"22065:13:53"},"variableNames":[{"name":"value","nativeSrc":"22056:5:53","nodeType":"YulIdentifier","src":"22056:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22113:5:53","nodeType":"YulIdentifier","src":"22113:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"22087:25:53","nodeType":"YulIdentifier","src":"22087:25:53"},"nativeSrc":"22087:32:53","nodeType":"YulFunctionCall","src":"22087:32:53"},"nativeSrc":"22087:32:53","nodeType":"YulExpressionStatement","src":"22087:32:53"}]},"name":"abi_decode_t_bytes4_fromMemory","nativeSrc":"21984:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22024:6:53","nodeType":"YulTypedName","src":"22024:6:53","type":""},{"name":"end","nativeSrc":"22032:3:53","nodeType":"YulTypedName","src":"22032:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22040:5:53","nodeType":"YulTypedName","src":"22040:5:53","type":""}],"src":"21984:141:53"},{"body":{"nativeSrc":"22207:273:53","nodeType":"YulBlock","src":"22207:273:53","statements":[{"body":{"nativeSrc":"22253:83:53","nodeType":"YulBlock","src":"22253:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"22255:77:53","nodeType":"YulIdentifier","src":"22255:77:53"},"nativeSrc":"22255:79:53","nodeType":"YulFunctionCall","src":"22255:79:53"},"nativeSrc":"22255:79:53","nodeType":"YulExpressionStatement","src":"22255:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22228:7:53","nodeType":"YulIdentifier","src":"22228:7:53"},{"name":"headStart","nativeSrc":"22237:9:53","nodeType":"YulIdentifier","src":"22237:9:53"}],"functionName":{"name":"sub","nativeSrc":"22224:3:53","nodeType":"YulIdentifier","src":"22224:3:53"},"nativeSrc":"22224:23:53","nodeType":"YulFunctionCall","src":"22224:23:53"},{"kind":"number","nativeSrc":"22249:2:53","nodeType":"YulLiteral","src":"22249:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22220:3:53","nodeType":"YulIdentifier","src":"22220:3:53"},"nativeSrc":"22220:32:53","nodeType":"YulFunctionCall","src":"22220:32:53"},"nativeSrc":"22217:119:53","nodeType":"YulIf","src":"22217:119:53"},{"nativeSrc":"22346:127:53","nodeType":"YulBlock","src":"22346:127:53","statements":[{"nativeSrc":"22361:15:53","nodeType":"YulVariableDeclaration","src":"22361:15:53","value":{"kind":"number","nativeSrc":"22375:1:53","nodeType":"YulLiteral","src":"22375:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"22365:6:53","nodeType":"YulTypedName","src":"22365:6:53","type":""}]},{"nativeSrc":"22390:73:53","nodeType":"YulAssignment","src":"22390:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22435:9:53","nodeType":"YulIdentifier","src":"22435:9:53"},{"name":"offset","nativeSrc":"22446:6:53","nodeType":"YulIdentifier","src":"22446:6:53"}],"functionName":{"name":"add","nativeSrc":"22431:3:53","nodeType":"YulIdentifier","src":"22431:3:53"},"nativeSrc":"22431:22:53","nodeType":"YulFunctionCall","src":"22431:22:53"},{"name":"dataEnd","nativeSrc":"22455:7:53","nodeType":"YulIdentifier","src":"22455:7:53"}],"functionName":{"name":"abi_decode_t_bytes4_fromMemory","nativeSrc":"22400:30:53","nodeType":"YulIdentifier","src":"22400:30:53"},"nativeSrc":"22400:63:53","nodeType":"YulFunctionCall","src":"22400:63:53"},"variableNames":[{"name":"value0","nativeSrc":"22390:6:53","nodeType":"YulIdentifier","src":"22390:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"22131:349:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22177:9:53","nodeType":"YulTypedName","src":"22177:9:53","type":""},{"name":"dataEnd","nativeSrc":"22188:7:53","nodeType":"YulTypedName","src":"22188:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22200:6:53","nodeType":"YulTypedName","src":"22200:6:53","type":""}],"src":"22131:349:53"},{"body":{"nativeSrc":"22814:725:53","nodeType":"YulBlock","src":"22814:725:53","statements":[{"nativeSrc":"22824:27:53","nodeType":"YulAssignment","src":"22824:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"22836:9:53","nodeType":"YulIdentifier","src":"22836:9:53"},{"kind":"number","nativeSrc":"22847:3:53","nodeType":"YulLiteral","src":"22847:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"22832:3:53","nodeType":"YulIdentifier","src":"22832:3:53"},"nativeSrc":"22832:19:53","nodeType":"YulFunctionCall","src":"22832:19:53"},"variableNames":[{"name":"tail","nativeSrc":"22824:4:53","nodeType":"YulIdentifier","src":"22824:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22905:6:53","nodeType":"YulIdentifier","src":"22905:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"22918:9:53","nodeType":"YulIdentifier","src":"22918:9:53"},{"kind":"number","nativeSrc":"22929:1:53","nodeType":"YulLiteral","src":"22929:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22914:3:53","nodeType":"YulIdentifier","src":"22914:3:53"},"nativeSrc":"22914:17:53","nodeType":"YulFunctionCall","src":"22914:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22861:43:53","nodeType":"YulIdentifier","src":"22861:43:53"},"nativeSrc":"22861:71:53","nodeType":"YulFunctionCall","src":"22861:71:53"},"nativeSrc":"22861:71:53","nodeType":"YulExpressionStatement","src":"22861:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"22986:6:53","nodeType":"YulIdentifier","src":"22986:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"22999:9:53","nodeType":"YulIdentifier","src":"22999:9:53"},{"kind":"number","nativeSrc":"23010:2:53","nodeType":"YulLiteral","src":"23010:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22995:3:53","nodeType":"YulIdentifier","src":"22995:3:53"},"nativeSrc":"22995:18:53","nodeType":"YulFunctionCall","src":"22995:18:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22942:43:53","nodeType":"YulIdentifier","src":"22942:43:53"},"nativeSrc":"22942:72:53","nodeType":"YulFunctionCall","src":"22942:72:53"},"nativeSrc":"22942:72:53","nodeType":"YulExpressionStatement","src":"22942:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23035:9:53","nodeType":"YulIdentifier","src":"23035:9:53"},{"kind":"number","nativeSrc":"23046:2:53","nodeType":"YulLiteral","src":"23046:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23031:3:53","nodeType":"YulIdentifier","src":"23031:3:53"},"nativeSrc":"23031:18:53","nodeType":"YulFunctionCall","src":"23031:18:53"},{"arguments":[{"name":"tail","nativeSrc":"23055:4:53","nodeType":"YulIdentifier","src":"23055:4:53"},{"name":"headStart","nativeSrc":"23061:9:53","nodeType":"YulIdentifier","src":"23061:9:53"}],"functionName":{"name":"sub","nativeSrc":"23051:3:53","nodeType":"YulIdentifier","src":"23051:3:53"},"nativeSrc":"23051:20:53","nodeType":"YulFunctionCall","src":"23051:20:53"}],"functionName":{"name":"mstore","nativeSrc":"23024:6:53","nodeType":"YulIdentifier","src":"23024:6:53"},"nativeSrc":"23024:48:53","nodeType":"YulFunctionCall","src":"23024:48:53"},"nativeSrc":"23024:48:53","nodeType":"YulExpressionStatement","src":"23024:48:53"},{"nativeSrc":"23081:116:53","nodeType":"YulAssignment","src":"23081:116:53","value":{"arguments":[{"name":"value2","nativeSrc":"23183:6:53","nodeType":"YulIdentifier","src":"23183:6:53"},{"name":"tail","nativeSrc":"23192:4:53","nodeType":"YulIdentifier","src":"23192:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"23089:93:53","nodeType":"YulIdentifier","src":"23089:93:53"},"nativeSrc":"23089:108:53","nodeType":"YulFunctionCall","src":"23089:108:53"},"variableNames":[{"name":"tail","nativeSrc":"23081:4:53","nodeType":"YulIdentifier","src":"23081:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23218:9:53","nodeType":"YulIdentifier","src":"23218:9:53"},{"kind":"number","nativeSrc":"23229:2:53","nodeType":"YulLiteral","src":"23229:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23214:3:53","nodeType":"YulIdentifier","src":"23214:3:53"},"nativeSrc":"23214:18:53","nodeType":"YulFunctionCall","src":"23214:18:53"},{"arguments":[{"name":"tail","nativeSrc":"23238:4:53","nodeType":"YulIdentifier","src":"23238:4:53"},{"name":"headStart","nativeSrc":"23244:9:53","nodeType":"YulIdentifier","src":"23244:9:53"}],"functionName":{"name":"sub","nativeSrc":"23234:3:53","nodeType":"YulIdentifier","src":"23234:3:53"},"nativeSrc":"23234:20:53","nodeType":"YulFunctionCall","src":"23234:20:53"}],"functionName":{"name":"mstore","nativeSrc":"23207:6:53","nodeType":"YulIdentifier","src":"23207:6:53"},"nativeSrc":"23207:48:53","nodeType":"YulFunctionCall","src":"23207:48:53"},"nativeSrc":"23207:48:53","nodeType":"YulExpressionStatement","src":"23207:48:53"},{"nativeSrc":"23264:116:53","nodeType":"YulAssignment","src":"23264:116:53","value":{"arguments":[{"name":"value3","nativeSrc":"23366:6:53","nodeType":"YulIdentifier","src":"23366:6:53"},{"name":"tail","nativeSrc":"23375:4:53","nodeType":"YulIdentifier","src":"23375:4:53"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"23272:93:53","nodeType":"YulIdentifier","src":"23272:93:53"},"nativeSrc":"23272:108:53","nodeType":"YulFunctionCall","src":"23272:108:53"},"variableNames":[{"name":"tail","nativeSrc":"23264:4:53","nodeType":"YulIdentifier","src":"23264:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23401:9:53","nodeType":"YulIdentifier","src":"23401:9:53"},{"kind":"number","nativeSrc":"23412:3:53","nodeType":"YulLiteral","src":"23412:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23397:3:53","nodeType":"YulIdentifier","src":"23397:3:53"},"nativeSrc":"23397:19:53","nodeType":"YulFunctionCall","src":"23397:19:53"},{"arguments":[{"name":"tail","nativeSrc":"23422:4:53","nodeType":"YulIdentifier","src":"23422:4:53"},{"name":"headStart","nativeSrc":"23428:9:53","nodeType":"YulIdentifier","src":"23428:9:53"}],"functionName":{"name":"sub","nativeSrc":"23418:3:53","nodeType":"YulIdentifier","src":"23418:3:53"},"nativeSrc":"23418:20:53","nodeType":"YulFunctionCall","src":"23418:20:53"}],"functionName":{"name":"mstore","nativeSrc":"23390:6:53","nodeType":"YulIdentifier","src":"23390:6:53"},"nativeSrc":"23390:49:53","nodeType":"YulFunctionCall","src":"23390:49:53"},"nativeSrc":"23390:49:53","nodeType":"YulExpressionStatement","src":"23390:49:53"},{"nativeSrc":"23448:84:53","nodeType":"YulAssignment","src":"23448:84:53","value":{"arguments":[{"name":"value4","nativeSrc":"23518:6:53","nodeType":"YulIdentifier","src":"23518:6:53"},{"name":"tail","nativeSrc":"23527:4:53","nodeType":"YulIdentifier","src":"23527:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"23456:61:53","nodeType":"YulIdentifier","src":"23456:61:53"},"nativeSrc":"23456:76:53","nodeType":"YulFunctionCall","src":"23456:76:53"},"variableNames":[{"name":"tail","nativeSrc":"23448:4:53","nodeType":"YulIdentifier","src":"23448:4:53"}]}]},"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":"22486:1053:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22754:9:53","nodeType":"YulTypedName","src":"22754:9:53","type":""},{"name":"value4","nativeSrc":"22766:6:53","nodeType":"YulTypedName","src":"22766:6:53","type":""},{"name":"value3","nativeSrc":"22774:6:53","nodeType":"YulTypedName","src":"22774:6:53","type":""},{"name":"value2","nativeSrc":"22782:6:53","nodeType":"YulTypedName","src":"22782:6:53","type":""},{"name":"value1","nativeSrc":"22790:6:53","nodeType":"YulTypedName","src":"22790:6:53","type":""},{"name":"value0","nativeSrc":"22798:6:53","nodeType":"YulTypedName","src":"22798:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22809:4:53","nodeType":"YulTypedName","src":"22809:4:53","type":""}],"src":"22486:1053:53"}]},"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 mcopy(dst, src, length)\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 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 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 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 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 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__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_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 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_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":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f414610167578063a22cb46514610197578063e985e9c5146101b3578063f242432a146101e3578063f5298aca146101ff5761009b565b8062fdd58e1461009f57806301ffc9a7146100cf5780630e89341c146100ff578063156e29f61461012f5780632eb2c2d61461014b575b5f80fd5b6100b960048036038101906100b491906114a3565b61021b565b6040516100c691906114f0565b60405180910390f35b6100e960048036038101906100e4919061155e565b610270565b6040516100f691906115a3565b60405180910390f35b610119600480360381019061011491906115bc565b610351565b6040516101269190611657565b60405180910390f35b61014960048036038101906101449190611677565b6103e3565b005b610165600480360381019061016091906118b7565b610402565b005b610181600480360381019061017c9190611a42565b6104a9565b60405161018e9190611b6f565b60405180910390f35b6101b160048036038101906101ac9190611bb9565b6105b0565b005b6101cd60048036038101906101c89190611bf7565b6105c6565b6040516101da91906115a3565b60405180910390f35b6101fd60048036038101906101f89190611c35565b610654565b005b61021960048036038101906102149190611677565b6106fb565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061034a57506103498261070b565b5b9050919050565b60606002805461036090611cf5565b80601f016020809104026020016040519081016040528092919081815260200182805461038c90611cf5565b80156103d75780601f106103ae576101008083540402835291602001916103d7565b820191905f5260205f20905b8154815290600101906020018083116103ba57829003601f168201915b50505050509050919050565b6103fd83838360405180602001604052805f815250610774565b505050565b5f61040b610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610450575061044e86826105c6565b155b156104945780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161048b929190611d34565b60405180910390fd5b6104a18686868686610810565b505050505050565b606081518351146104f557815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016104ec929190611d5b565b60405180910390fd5b5f835167ffffffffffffffff811115610511576105106116cb565b5b60405190808252806020026020018201604052801561053f5781602001602082028036833780820191505090505b5090505f5b84518110156105a55761057b610563828761090490919063ffffffff16565b610576838761091790919063ffffffff16565b61021b565b82828151811061058e5761058d611d82565b5b602002602001018181525050806001019050610544565b508091505092915050565b6105c26105bb610809565b838361092a565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61065d610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156106a257506106a086826105c6565b155b156106e65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016106dd929190611d34565b60405180910390fd5b6106f38686868686610a93565b505050505050565b610706838383610b99565b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107e4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107db9190611daf565b60405180910390fd5b5f806107f08585610c3b565b915091506108015f87848487610c6b565b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610880575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108779190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036108f0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016108e79190611daf565b60405180910390fd5b6108fd8585858585610c6b565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361099a575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016109919190611daf565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a8691906115a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b03575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610afa9190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b73575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b6a9190611daf565b60405180910390fd5b5f80610b7f8585610c3b565b91509150610b908787848487610c6b565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c09575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c009190611daf565b60405180910390fd5b5f80610c158484610c3b565b91509150610c34855f848460405180602001604052805f815250610c6b565b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b610c7785858585610d17565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d10575f610cb3610809565b90506001845103610cff575f610cd25f8661091790919063ffffffff16565b90505f610ce85f8661091790919063ffffffff16565b9050610cf88389898585896110a7565b5050610d0e565b610d0d818787878787611256565b5b505b5050505050565b8051825114610d6157815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610d58929190611d5b565b60405180910390fd5b5f610d6a610809565b90505f5b8351811015610f66575f610d8b828661091790919063ffffffff16565b90505f610da1838661091790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610ec4575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610e679493929190611dc8565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610f5957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f519190611e38565b925050819055505b5050806001019050610d6e565b506001835103611021575f610f845f8561091790919063ffffffff16565b90505f610f9a5f8561091790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611012929190611d5b565b60405180910390a450506110a0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611097929190611e6b565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561124e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611107959493929190611ef2565b6020604051808303815f875af192505050801561114257506040513d601f19601f8201168201806040525081019061113f9190611f5e565b60015b6111c3573d805f8114611170576040519150601f19603f3d011682016040523d82523d5f602084013e611175565b606091505b505f8151036111bb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111b29190611daf565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124c57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112439190611daf565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156113fd578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112b6959493929190611f89565b6020604051808303815f875af19250505080156112f157506040513d601f19601f820116820180604052508101906112ee9190611f5e565b60015b611372573d805f811461131f576040519150601f19603f3d011682016040523d82523d5f602084013e611324565b606091505b505f81510361136a57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113619190611daf565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113fb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f29190611daf565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61143f82611416565b9050919050565b61144f81611435565b8114611459575f80fd5b50565b5f8135905061146a81611446565b92915050565b5f819050919050565b61148281611470565b811461148c575f80fd5b50565b5f8135905061149d81611479565b92915050565b5f80604083850312156114b9576114b861140e565b5b5f6114c68582860161145c565b92505060206114d78582860161148f565b9150509250929050565b6114ea81611470565b82525050565b5f6020820190506115035f8301846114e1565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61153d81611509565b8114611547575f80fd5b50565b5f8135905061155881611534565b92915050565b5f602082840312156115735761157261140e565b5b5f6115808482850161154a565b91505092915050565b5f8115159050919050565b61159d81611589565b82525050565b5f6020820190506115b65f830184611594565b92915050565b5f602082840312156115d1576115d061140e565b5b5f6115de8482850161148f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611629826115e7565b61163381856115f1565b9350611643818560208601611601565b61164c8161160f565b840191505092915050565b5f6020820190508181035f83015261166f818461161f565b905092915050565b5f805f6060848603121561168e5761168d61140e565b5b5f61169b8682870161145c565b93505060206116ac8682870161148f565b92505060406116bd8682870161148f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6117018261160f565b810181811067ffffffffffffffff821117156117205761171f6116cb565b5b80604052505050565b5f611732611405565b905061173e82826116f8565b919050565b5f67ffffffffffffffff82111561175d5761175c6116cb565b5b602082029050602081019050919050565b5f80fd5b5f61178461177f84611743565b611729565b905080838252602082019050602084028301858111156117a7576117a661176e565b5b835b818110156117d057806117bc888261148f565b8452602084019350506020810190506117a9565b5050509392505050565b5f82601f8301126117ee576117ed6116c7565b5b81356117fe848260208601611772565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611825576118246116cb565b5b61182e8261160f565b9050602081019050919050565b828183375f83830152505050565b5f61185b6118568461180b565b611729565b90508281526020810184848401111561187757611876611807565b5b61188284828561183b565b509392505050565b5f82601f83011261189e5761189d6116c7565b5b81356118ae848260208601611849565b91505092915050565b5f805f805f60a086880312156118d0576118cf61140e565b5b5f6118dd8882890161145c565b95505060206118ee8882890161145c565b945050604086013567ffffffffffffffff81111561190f5761190e611412565b5b61191b888289016117da565b935050606086013567ffffffffffffffff81111561193c5761193b611412565b5b611948888289016117da565b925050608086013567ffffffffffffffff81111561196957611968611412565b5b6119758882890161188a565b9150509295509295909350565b5f67ffffffffffffffff82111561199c5761199b6116cb565b5b602082029050602081019050919050565b5f6119bf6119ba84611982565b611729565b905080838252602082019050602084028301858111156119e2576119e161176e565b5b835b81811015611a0b57806119f7888261145c565b8452602084019350506020810190506119e4565b5050509392505050565b5f82601f830112611a2957611a286116c7565b5b8135611a398482602086016119ad565b91505092915050565b5f8060408385031215611a5857611a5761140e565b5b5f83013567ffffffffffffffff811115611a7557611a74611412565b5b611a8185828601611a15565b925050602083013567ffffffffffffffff811115611aa257611aa1611412565b5b611aae858286016117da565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611aea81611470565b82525050565b5f611afb8383611ae1565b60208301905092915050565b5f602082019050919050565b5f611b1d82611ab8565b611b278185611ac2565b9350611b3283611ad2565b805f5b83811015611b62578151611b498882611af0565b9750611b5483611b07565b925050600181019050611b35565b5085935050505092915050565b5f6020820190508181035f830152611b878184611b13565b905092915050565b611b9881611589565b8114611ba2575f80fd5b50565b5f81359050611bb381611b8f565b92915050565b5f8060408385031215611bcf57611bce61140e565b5b5f611bdc8582860161145c565b9250506020611bed85828601611ba5565b9150509250929050565b5f8060408385031215611c0d57611c0c61140e565b5b5f611c1a8582860161145c565b9250506020611c2b8582860161145c565b9150509250929050565b5f805f805f60a08688031215611c4e57611c4d61140e565b5b5f611c5b8882890161145c565b9550506020611c6c8882890161145c565b9450506040611c7d8882890161148f565b9350506060611c8e8882890161148f565b925050608086013567ffffffffffffffff811115611caf57611cae611412565b5b611cbb8882890161188a565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0c57607f821691505b602082108103611d1f57611d1e611cc8565b5b50919050565b611d2e81611435565b82525050565b5f604082019050611d475f830185611d25565b611d546020830184611d25565b9392505050565b5f604082019050611d6e5f8301856114e1565b611d7b60208301846114e1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082019050611dc25f830184611d25565b92915050565b5f608082019050611ddb5f830187611d25565b611de860208301866114e1565b611df560408301856114e1565b611e0260608301846114e1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e4282611470565b9150611e4d83611470565b9250828201905080821115611e6557611e64611e0b565b5b92915050565b5f6040820190508181035f830152611e838185611b13565b90508181036020830152611e978184611b13565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec482611ea0565b611ece8185611eaa565b9350611ede818560208601611601565b611ee78161160f565b840191505092915050565b5f60a082019050611f055f830188611d25565b611f126020830187611d25565b611f1f60408301866114e1565b611f2c60608301856114e1565b8181036080830152611f3e8184611eba565b90509695505050505050565b5f81519050611f5881611534565b92915050565b5f60208284031215611f7357611f7261140e565b5b5f611f8084828501611f4a565b91505092915050565b5f60a082019050611f9c5f830188611d25565b611fa96020830187611d25565b8181036040830152611fbb8186611b13565b90508181036060830152611fcf8185611b13565b90508181036080830152611fe38184611eba565b9050969550505050505056fea2646970667358221220e87db9d6338f9a6a136721a55bdc335876ac06f2dee3b3dac72665bca32a6b1f64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x1FF JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x14B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x155E JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x149 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x144 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x181 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x1B6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x5B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0x5C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x33A JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x34A JUMPI POP PUSH2 0x349 DUP3 PUSH2 0x70B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x360 SWAP1 PUSH2 0x1CF5 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 0x38C SWAP1 PUSH2 0x1CF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3BA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x774 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x450 JUMPI POP PUSH2 0x44E DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x494 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A1 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x4F5 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x511 JUMPI PUSH2 0x510 PUSH2 0x16CB 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 0x53F 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 PUSH0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x5A5 JUMPI PUSH2 0x57B PUSH2 0x563 DUP3 DUP8 PUSH2 0x904 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x576 DUP4 DUP8 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0x1D82 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x544 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0x5BB PUSH2 0x809 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x92A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x65D PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x6A2 JUMPI POP PUSH2 0x6A0 DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x6E6 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6DD SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xA93 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x706 DUP4 DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7E4 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0x7F0 DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x801 PUSH0 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x880 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8F0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8FD DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 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 0xA86 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB03 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFA SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB73 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xB7F DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xB90 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC09 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xC15 DUP5 DUP5 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xC34 DUP6 PUSH0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0xC6B JUMP 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 PUSH2 0xC77 DUP6 DUP6 DUP6 DUP6 PUSH2 0xD17 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD10 JUMPI PUSH0 PUSH2 0xCB3 PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0xCFF JUMPI PUSH0 PUSH2 0xCD2 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xCE8 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0xCF8 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x10A7 JUMP JUMPDEST POP POP PUSH2 0xD0E JUMP JUMPDEST PUSH2 0xD0D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1256 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0xD61 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0xD6A PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xF66 JUMPI PUSH0 PUSH2 0xD8B DUP3 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDA1 DUP4 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEC4 JUMPI PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xE70 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE67 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF59 JUMPI DUP1 PUSH0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x1E38 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xD6E JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1021 JUMPI PUSH0 PUSH2 0xF84 PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xF9A PUSH0 DUP6 PUSH2 0x917 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 0x1012 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x10A0 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1097 SWAP3 SWAP2 SWAP1 PUSH2 0x1E6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x124E 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 0x1107 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1142 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 0x113F SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11C3 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1170 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x11BB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x124C JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x13FD 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 0x12B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12F1 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 0x12EE SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1372 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x131F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1324 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x136A JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1361 SWAP2 SWAP1 PUSH2 0x1DAF 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 0x13FB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x143F DUP3 PUSH2 0x1416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x144F DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP2 EQ PUSH2 0x1459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x146A DUP2 PUSH2 0x1446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1482 DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP2 EQ PUSH2 0x148C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x149D DUP2 PUSH2 0x1479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14B9 JUMPI PUSH2 0x14B8 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x14C6 DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D7 DUP6 DUP3 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1503 PUSH0 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153D DUP2 PUSH2 0x1509 JUMP JUMPDEST DUP2 EQ PUSH2 0x1547 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1558 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1573 JUMPI PUSH2 0x1572 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1580 DUP5 DUP3 DUP6 ADD PUSH2 0x154A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x159D DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B6 PUSH0 DUP4 ADD DUP5 PUSH2 0x1594 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D1 JUMPI PUSH2 0x15D0 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DE DUP5 DUP3 DUP6 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1629 DUP3 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x1633 DUP2 DUP6 PUSH2 0x15F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1643 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x164C DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x166F DUP2 DUP5 PUSH2 0x161F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x168E JUMPI PUSH2 0x168D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169B DUP7 DUP3 DUP8 ADD PUSH2 0x145C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x16AC DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x16BD DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1701 DUP3 PUSH2 0x160F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1720 JUMPI PUSH2 0x171F PUSH2 0x16CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 PUSH2 0x1405 JUMP JUMPDEST SWAP1 POP PUSH2 0x173E DUP3 DUP3 PUSH2 0x16F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x175D JUMPI PUSH2 0x175C PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1784 PUSH2 0x177F DUP5 PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x1729 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 0x17A7 JUMPI PUSH2 0x17A6 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D0 JUMPI DUP1 PUSH2 0x17BC DUP9 DUP3 PUSH2 0x148F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17A9 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17FE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1772 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1825 JUMPI PUSH2 0x1824 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH2 0x182E DUP3 PUSH2 0x160F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x185B PUSH2 0x1856 DUP5 PUSH2 0x180B JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1877 JUMPI PUSH2 0x1876 PUSH2 0x1807 JUMP JUMPDEST JUMPDEST PUSH2 0x1882 DUP5 DUP3 DUP6 PUSH2 0x183B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x189E JUMPI PUSH2 0x189D PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x18AE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1849 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18D0 JUMPI PUSH2 0x18CF PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18DD DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x18EE DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x191B DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x193C JUMPI PUSH2 0x193B PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1948 DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1969 JUMPI PUSH2 0x1968 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1975 DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x199C JUMPI PUSH2 0x199B PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19BF PUSH2 0x19BA DUP5 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1729 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 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A0B JUMPI DUP1 PUSH2 0x19F7 DUP9 DUP3 PUSH2 0x145C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19E4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A29 JUMPI PUSH2 0x1A28 PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A39 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A58 JUMPI PUSH2 0x1A57 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A75 JUMPI PUSH2 0x1A74 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1A81 DUP6 DUP3 DUP7 ADD PUSH2 0x1A15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH2 0x1AA1 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1AAE DUP6 DUP3 DUP7 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AEA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AFB DUP4 DUP4 PUSH2 0x1AE1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B1D DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x1B27 DUP2 DUP6 PUSH2 0x1AC2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B32 DUP4 PUSH2 0x1AD2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B62 JUMPI DUP2 MLOAD PUSH2 0x1B49 DUP9 DUP3 PUSH2 0x1AF0 JUMP JUMPDEST SWAP8 POP PUSH2 0x1B54 DUP4 PUSH2 0x1B07 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1B35 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B87 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B98 DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BA2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB3 DUP2 PUSH2 0x1B8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BCF JUMPI PUSH2 0x1BCE PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1BDC DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1BED DUP6 DUP3 DUP7 ADD PUSH2 0x1BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0D JUMPI PUSH2 0x1C0C PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C1A DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C2B DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C4E JUMPI PUSH2 0x1C4D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C5B DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C6C DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1C7D DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1C8E DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1CAE PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1CBB DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1D0C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1D1F JUMPI PUSH2 0x1D1E PUSH2 0x1CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2E DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D47 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1D54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D6E PUSH0 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1D7B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DC2 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1DDB PUSH0 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1DE8 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1DF5 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1E02 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1E42 DUP3 PUSH2 0x1470 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E4D DUP4 PUSH2 0x1470 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1E65 JUMPI PUSH2 0x1E64 PUSH2 0x1E0B JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1E83 DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E97 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EC4 DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x1ECE DUP2 DUP6 PUSH2 0x1EAA JUMP JUMPDEST SWAP4 POP PUSH2 0x1EDE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x1EE7 DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F05 PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F12 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F1F PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1F2C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1F3E DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1F58 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F73 JUMPI PUSH2 0x1F72 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F80 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9C PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1FA9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1FBB DUP2 DUP7 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1FCF DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FE3 DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE8 PUSH30 0xB9D6338F9A6A136721A55BDC335876AC06F2DEE3B3DAC72665BCA32A6B1F PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"2054:316:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:132:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1378:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2082:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2156::49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4012:429:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2534:552;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3154:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3365:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3589:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2265:103:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2245:132:2;2322:7;2348:9;:13;2358:2;2348:13;;;;;;;;;;;:22;2362:7;2348:22;;;;;;;;;;;;;;;;2341:29;;2245:132;;;;:::o;1378:305::-;1480:4;1530:26;1515:41;;;:11;:41;;;;:109;;;;1587:37;1572:52;;;:11;:52;;;;1515:109;:161;;;;1640:36;1664:11;1640:23;:36::i;:::-;1515:161;1496:180;;1378:305;;;:::o;2082:103::-;2142:13;2174:4;2167:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2082:103;;;:::o;2156::49:-;2227:25;2233:2;2237;2241:6;2227:25;;;;;;;;;;;;:5;:25::i;:::-;2156:103;;;:::o;4012:429:2:-;4206:14;4223:12;:10;:12::i;:::-;4206:29;;4257:6;4249:14;;:4;:14;;;;:49;;;;;4268:30;4285:4;4291:6;4268:16;:30::i;:::-;4267:31;4249:49;4245:129;;;4350:6;4358:4;4321:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4245:129;4383:51;4406:4;4412:2;4416:3;4421:6;4429:4;4383:22;:51::i;:::-;4196:245;4012:429;;;;;:::o;2534:552::-;2658:16;2709:3;:10;2690:8;:15;:29;2686:121;;2768:3;:10;2780:8;:15;2742:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2686:121;2817:30;2864:8;:15;2850:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2817:63;;2896:9;2891:158;2915:8;:15;2911:1;:19;2891:158;;;2970:68;2980:30;3008:1;2980:8;:27;;:30;;;;:::i;:::-;3012:25;3035:1;3012:3;:22;;:25;;;;:::i;:::-;2970:9;:68::i;:::-;2951:13;2965:1;2951:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2932:3;;;;;2891:158;;;;3066:13;3059:20;;;2534:552;;;;:::o;3154:144::-;3239:52;3258:12;:10;:12::i;:::-;3272:8;3282;3239:18;:52::i;:::-;3154:144;;:::o;3365:157::-;3455:4;3478:18;:27;3497:7;3478:27;;;;;;;;;;;;;;;:37;3506:8;3478:37;;;;;;;;;;;;;;;;;;;;;;;;;3471:44;;3365:157;;;;:::o;3589:351::-;3712:14;3729:12;:10;:12::i;:::-;3712:29;;3763:6;3755:14;;:4;:14;;;;:49;;;;;3774:30;3791:4;3797:6;3774:16;:30::i;:::-;3773:31;3755:49;3751:129;;;3856:6;3864:4;3827:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3751:129;3889:44;3907:4;3913:2;3917;3921:5;3928:4;3889:17;:44::i;:::-;3702:238;3589:351;;;;;:::o;2265:103:49:-;2338:23;2344:4;2350:2;2354:6;2338:5;:23::i;:::-;2265:103;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;10754:346:2:-;10864:1;10850:16;;:2;:16;;;10846:88;;10920:1;10889:34;;;;;;;;;;;:::i;:::-;;;;;;;;10846:88;10944:20;10966:23;10993:29;11012:2;11016:5;10993:18;:29::i;:::-;10943:79;;;;11032:61;11067:1;11071:2;11075:3;11080:6;11088:4;11032:26;:61::i;:::-;10836:264;;10754:346;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9023:445:2:-;9230:1;9216:16;;:2;:16;;;9212:88;;9286:1;9255:34;;;;;;;;;;;:::i;:::-;;;;;;;;9212:88;9329:1;9313:18;;:4;:18;;;9309:88;;9383:1;9354:32;;;;;;;;;;;:::i;:::-;;;;;;;;9309:88;9406:55;9433:4;9439:2;9443:3;9448:6;9456:4;9406:26;:55::i;:::-;9023:445;;;;;:::o;15964:197:7:-;16050:11;16138:4;16133:3;16129:14;16122:4;16117:3;16113:14;16109:35;16103:42;16096:49;;15964:197;;;;:::o;16762:::-;16848:11;16936:4;16931:3;16927:14;16920:4;16915:3;16911:14;16907:35;16901:42;16894:49;;16762:197;;;;:::o;13276:315:2:-;13403:1;13383:22;;:8;:22;;;13379:94;;13459:1;13428:34;;;;;;;;;;;:::i;:::-;;;;;;;;13379:94;13520:8;13482:18;:25;13501:5;13482:25;;;;;;;;;;;;;;;:35;13508:8;13482:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13565:8;13543:41;;13558:5;13543:41;;;13575:8;13543:41;;;;;;:::i;:::-;;;;;;;;13276:315;;;:::o;8159:463::-;8295:1;8281:16;;:2;:16;;;8277:88;;8351:1;8320:34;;;;;;;;;;;:::i;:::-;;;;;;;;8277:88;8394:1;8378:18;;:4;:18;;;8374:88;;8448:1;8419:32;;;;;;;;;;;:::i;:::-;;;;;;;;8374:88;8472:20;8494:23;8521:29;8540:2;8544:5;8521:18;:29::i;:::-;8471:79;;;;8560:55;8587:4;8593:2;8597:3;8602:6;8610:4;8560:26;:55::i;:::-;8267:355;;8159:463;;;;;:::o;12107:329::-;12202:1;12186:18;;:4;:18;;;12182:88;;12256:1;12227:32;;;;;;;;;;;:::i;:::-;;;;;;;;12182:88;12280:20;12302:23;12329:29;12348:2;12352:5;12329:18;:29::i;:::-;12279:79;;;;12368:61;12395:4;12409:1;12413:3;12418:6;12368:61;;;;;;;;;;;;:26;:61::i;:::-;12172:264;;12107:329;;;:::o;13707:849::-;13815:23;13840;14001:4;13995:11;13985:21;;14071:1;14063:6;14056:17;14209:8;14202:4;14194:6;14190:17;14183:35;14331:4;14323:6;14319:17;14309:27;;14364:1;14356:6;14349:17;14405:8;14398:4;14390:6;14386:17;14379:35;14534:4;14526:6;14522:17;14516:4;14509:31;13707:849;;;;;:::o;7002:700::-;7203:30;7211:4;7217:2;7221:3;7226:6;7203:7;:30::i;:::-;7261:1;7247:16;;:2;:16;;;7243:453;;7279:16;7298:12;:10;:12::i;:::-;7279:31;;7342:1;7328:3;:10;:15;7324:362;;7363:10;7376:25;7399:1;7376:3;:22;;:25;;;;:::i;:::-;7363:38;;7419:13;7435:28;7461:1;7435:6;:25;;:28;;;;:::i;:::-;7419:44;;7481:72;7517:8;7527:4;7533:2;7537;7541:5;7548:4;7481:35;:72::i;:::-;7345:223;;7324:362;;;7592:79;7633:8;7643:4;7649:2;7653:3;7658:6;7666:4;7592:40;:79::i;:::-;7324:362;7265:431;7243:453;7002:700;;;;;:::o;5142:1281::-;5277:6;:13;5263:3;:10;:27;5259:117;;5339:3;:10;5351:6;:13;5313:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5259:117;5386:16;5405:12;:10;:12::i;:::-;5386:31;;5433:9;5428:691;5452:3;:10;5448:1;:14;5428:691;;;5483:10;5496:25;5519:1;5496:3;:22;;:25;;;;:::i;:::-;5483:38;;5535:13;5551:28;5577:1;5551:6;:25;;:28;;;;:::i;:::-;5535:44;;5614:1;5598:18;;:4;:18;;;5594:420;;5636:19;5658:9;:13;5668:2;5658:13;;;;;;;;;;;:19;5672:4;5658:19;;;;;;;;;;;;;;;;5636:41;;5713:5;5699:11;:19;5695:129;;;5776:4;5782:11;5795:5;5802:2;5749:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5695:129;5976:5;5962:11;:19;5940:9;:13;5950:2;5940:13;;;;;;;;;;;:19;5954:4;5940:19;;;;;;;;;;;;;;;:41;;;;5618:396;5594:420;6046:1;6032:16;;:2;:16;;;6028:81;;6089:5;6068:9;:13;6078:2;6068:13;;;;;;;;;;;:17;6082:2;6068:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6028:81;5469:650;;5464:3;;;;;5428:691;;;;6147:1;6133:3;:10;:15;6129:288;;6164:10;6177:25;6200:1;6177:3;:22;;:25;;;;:::i;:::-;6164:38;;6216:13;6232:28;6258:1;6232:6;:25;;:28;;;;:::i;:::-;6216:44;;6310:2;6279:45;;6304:4;6279:45;;6294:8;6279:45;;;6314:2;6318:5;6279:45;;;;;;;:::i;:::-;;;;;;;;6150:185;;6129:288;;;6390:2;6360:46;;6384:4;6360:46;;6374:8;6360:46;;;6394:3;6399:6;6360:46;;;;;;;:::i;:::-;;;;;;;;6129:288;5249:1174;5142:1281;;;;:::o;884:998:6:-;1100:1;1083:2;:14;;;:18;1079:797;;;1138:2;1121:38;;;1160:8;1170:4;1176:2;1180:5;1187:4;1121:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1117:749;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:1;1491:6;:13;:18;1487:365;;1634:2;1596:41;;;;;;;;;;;:::i;:::-;;;;;;;;1487:365;1804:6;1798:13;1789:6;1785:2;1781:15;1774:38;1117:749;1253:43;;;1241:55;;;:8;:55;;;;1237:189;;1404:2;1366:41;;;;;;;;;;;:::i;:::-;;;;;;;;1237:189;1193:247;1079:797;884:998;;;;;;:::o;2433:1065::-;2674:1;2657:2;:14;;;:18;2653:839;;;2712:2;2695:43;;;2739:8;2749:4;2755:3;2760:6;2768:4;2695:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2691:791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:1;3107:6;:13;:18;3103:365;;3250:2;3212:41;;;;;;;;;;;:::i;:::-;;;;;;;;3103:365;3420:6;3414:13;3405:6;3401:2;3397:15;3390:38;2691:791;2864:48;;;2852:60;;;:8;:60;;;;2848:194;;3020:2;2982:41;;;;;;;;;;;:::i;:::-;;;;;;;;2848:194;2774:282;2653:839;2433:1065;;;;;;:::o;7:75:53:-;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:139::-;3917:6;3912:3;3907;3901:23;3958:1;3949:6;3944:3;3940:16;3933:27;3828:139;;;:::o;3973:102::-;4014:6;4065:2;4061:7;4056:2;4049:5;4045:14;4041:28;4031:38;;3973:102;;;:::o;4081:377::-;4169:3;4197:39;4230:5;4197:39;:::i;:::-;4252:71;4316:6;4311:3;4252:71;:::i;:::-;4245:78;;4332:65;4390:6;4385:3;4378:4;4371:5;4367:16;4332:65;:::i;:::-;4422:29;4444:6;4422:29;:::i;:::-;4417:3;4413:39;4406:46;;4173:285;4081:377;;;;:::o;4464:313::-;4577:4;4615:2;4604:9;4600:18;4592:26;;4664:9;4658:4;4654:20;4650:1;4639:9;4635:17;4628:47;4692:78;4765:4;4756:6;4692:78;:::i;:::-;4684:86;;4464:313;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:117::-;5517:1;5514;5507:12;5531:180;5579:77;5576:1;5569:88;5676:4;5673:1;5666:15;5700:4;5697:1;5690:15;5717:281;5800:27;5822:4;5800:27;:::i;:::-;5792:6;5788:40;5930:6;5918:10;5915:22;5894:18;5882:10;5879:34;5876:62;5873:88;;;5941:18;;:::i;:::-;5873:88;5981:10;5977:2;5970:22;5760:238;5717:281;;:::o;6004:129::-;6038:6;6065:20;;:::i;:::-;6055:30;;6094:33;6122:4;6114:6;6094:33;:::i;:::-;6004:129;;;:::o;6139:311::-;6216:4;6306:18;6298:6;6295:30;6292:56;;;6328:18;;:::i;:::-;6292:56;6378:4;6370:6;6366:17;6358:25;;6438:4;6432;6428:15;6420:23;;6139:311;;;:::o;6456:117::-;6565:1;6562;6555:12;6596:710;6692:5;6717:81;6733:64;6790:6;6733:64;:::i;:::-;6717:81;:::i;:::-;6708:90;;6818:5;6847:6;6840:5;6833:21;6881:4;6874:5;6870:16;6863:23;;6934:4;6926:6;6922:17;6914:6;6910:30;6963:3;6955:6;6952:15;6949:122;;;6982:79;;:::i;:::-;6949:122;7097:6;7080:220;7114:6;7109:3;7106:15;7080:220;;;7189:3;7218:37;7251:3;7239:10;7218:37;:::i;:::-;7213:3;7206:50;7285:4;7280:3;7276:14;7269:21;;7156:144;7140:4;7135:3;7131:14;7124:21;;7080:220;;;7084:21;6698:608;;6596:710;;;;;:::o;7329:370::-;7400:5;7449:3;7442:4;7434:6;7430:17;7426:27;7416:122;;7457:79;;:::i;:::-;7416:122;7574:6;7561:20;7599:94;7689:3;7681:6;7674:4;7666:6;7662:17;7599:94;:::i;:::-;7590:103;;7406:293;7329:370;;;;:::o;7705:117::-;7814:1;7811;7804:12;7828:307;7889:4;7979:18;7971:6;7968:30;7965:56;;;8001:18;;:::i;:::-;7965:56;8039:29;8061:6;8039:29;:::i;:::-;8031:37;;8123:4;8117;8113:15;8105:23;;7828:307;;;:::o;8141:148::-;8239:6;8234:3;8229;8216:30;8280:1;8271:6;8266:3;8262:16;8255:27;8141:148;;;:::o;8295:423::-;8372:5;8397:65;8413:48;8454:6;8413:48;:::i;:::-;8397:65;:::i;:::-;8388:74;;8485:6;8478:5;8471:21;8523:4;8516:5;8512:16;8561:3;8552:6;8547:3;8543:16;8540:25;8537:112;;;8568:79;;:::i;:::-;8537:112;8658:54;8705:6;8700:3;8695;8658:54;:::i;:::-;8378:340;8295:423;;;;;:::o;8737:338::-;8792:5;8841:3;8834:4;8826:6;8822:17;8818:27;8808:122;;8849:79;;:::i;:::-;8808:122;8966:6;8953:20;8991:78;9065:3;9057:6;9050:4;9042:6;9038:17;8991:78;:::i;:::-;8982:87;;8798:277;8737:338;;;;:::o;9081:1509::-;9235:6;9243;9251;9259;9267;9316:3;9304:9;9295:7;9291:23;9287:33;9284:120;;;9323:79;;:::i;:::-;9284:120;9443:1;9468:53;9513:7;9504:6;9493:9;9489:22;9468:53;:::i;:::-;9458:63;;9414:117;9570:2;9596:53;9641:7;9632:6;9621:9;9617:22;9596:53;:::i;:::-;9586:63;;9541:118;9726:2;9715:9;9711:18;9698:32;9757:18;9749:6;9746:30;9743:117;;;9779:79;;:::i;:::-;9743:117;9884:78;9954:7;9945:6;9934:9;9930:22;9884:78;:::i;:::-;9874:88;;9669:303;10039:2;10028:9;10024:18;10011:32;10070:18;10062:6;10059:30;10056:117;;;10092:79;;:::i;:::-;10056:117;10197:78;10267:7;10258:6;10247:9;10243:22;10197:78;:::i;:::-;10187:88;;9982:303;10352:3;10341:9;10337:19;10324:33;10384:18;10376:6;10373:30;10370:117;;;10406:79;;:::i;:::-;10370:117;10511:62;10565:7;10556:6;10545:9;10541:22;10511:62;:::i;:::-;10501:72;;10295:288;9081:1509;;;;;;;;:::o;10596:311::-;10673:4;10763:18;10755:6;10752:30;10749:56;;;10785:18;;:::i;:::-;10749:56;10835:4;10827:6;10823:17;10815:25;;10895:4;10889;10885:15;10877:23;;10596:311;;;:::o;10930:710::-;11026:5;11051:81;11067:64;11124:6;11067:64;:::i;:::-;11051:81;:::i;:::-;11042:90;;11152:5;11181:6;11174:5;11167:21;11215:4;11208:5;11204:16;11197:23;;11268:4;11260:6;11256:17;11248:6;11244:30;11297:3;11289:6;11286:15;11283:122;;;11316:79;;:::i;:::-;11283:122;11431:6;11414:220;11448:6;11443:3;11440:15;11414:220;;;11523:3;11552:37;11585:3;11573:10;11552:37;:::i;:::-;11547:3;11540:50;11619:4;11614:3;11610:14;11603:21;;11490:144;11474:4;11469:3;11465:14;11458:21;;11414:220;;;11418:21;11032:608;;10930:710;;;;;:::o;11663:370::-;11734:5;11783:3;11776:4;11768:6;11764:17;11760:27;11750:122;;11791:79;;:::i;:::-;11750:122;11908:6;11895:20;11933:94;12023:3;12015:6;12008:4;12000:6;11996:17;11933:94;:::i;:::-;11924:103;;11740:293;11663:370;;;;:::o;12039:894::-;12157:6;12165;12214:2;12202:9;12193:7;12189:23;12185:32;12182:119;;;12220:79;;:::i;:::-;12182:119;12368:1;12357:9;12353:17;12340:31;12398:18;12390:6;12387:30;12384:117;;;12420:79;;:::i;:::-;12384:117;12525:78;12595:7;12586:6;12575:9;12571:22;12525:78;:::i;:::-;12515:88;;12311:302;12680:2;12669:9;12665:18;12652:32;12711:18;12703:6;12700:30;12697:117;;;12733:79;;:::i;:::-;12697:117;12838:78;12908:7;12899:6;12888:9;12884:22;12838:78;:::i;:::-;12828:88;;12623:303;12039:894;;;;;:::o;12939:114::-;13006:6;13040:5;13034:12;13024:22;;12939:114;;;:::o;13059:184::-;13158:11;13192:6;13187:3;13180:19;13232:4;13227:3;13223:14;13208:29;;13059:184;;;;:::o;13249:132::-;13316:4;13339:3;13331:11;;13369:4;13364:3;13360:14;13352:22;;13249:132;;;:::o;13387:108::-;13464:24;13482:5;13464:24;:::i;:::-;13459:3;13452:37;13387:108;;:::o;13501:179::-;13570:10;13591:46;13633:3;13625:6;13591:46;:::i;:::-;13669:4;13664:3;13660:14;13646:28;;13501:179;;;;:::o;13686:113::-;13756:4;13788;13783:3;13779:14;13771:22;;13686:113;;;:::o;13835:732::-;13954:3;13983:54;14031:5;13983:54;:::i;:::-;14053:86;14132:6;14127:3;14053:86;:::i;:::-;14046:93;;14163:56;14213:5;14163:56;:::i;:::-;14242:7;14273:1;14258:284;14283:6;14280:1;14277:13;14258:284;;;14359:6;14353:13;14386:63;14445:3;14430:13;14386:63;:::i;:::-;14379:70;;14472:60;14525:6;14472:60;:::i;:::-;14462:70;;14318:224;14305:1;14302;14298:9;14293:14;;14258:284;;;14262:14;14558:3;14551:10;;13959:608;;;13835:732;;;;:::o;14573:373::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:108;14934:4;14925:6;14831:108;:::i;:::-;14823:116;;14573:373;;;;:::o;14952:116::-;15022:21;15037:5;15022:21;:::i;:::-;15015:5;15012:32;15002:60;;15058:1;15055;15048:12;15002:60;14952:116;:::o;15074:133::-;15117:5;15155:6;15142:20;15133:29;;15171:30;15195:5;15171:30;:::i;:::-;15074:133;;;;:::o;15213:468::-;15278:6;15286;15335:2;15323:9;15314:7;15310:23;15306:32;15303:119;;;15341:79;;:::i;:::-;15303:119;15461:1;15486:53;15531:7;15522:6;15511:9;15507:22;15486:53;:::i;:::-;15476:63;;15432:117;15588:2;15614:50;15656:7;15647:6;15636:9;15632:22;15614:50;:::i;:::-;15604:60;;15559:115;15213:468;;;;;:::o;15687:474::-;15755:6;15763;15812:2;15800:9;15791:7;15787:23;15783:32;15780:119;;;15818:79;;:::i;:::-;15780:119;15938:1;15963:53;16008:7;15999:6;15988:9;15984:22;15963:53;:::i;:::-;15953:63;;15909:117;16065:2;16091:53;16136:7;16127:6;16116:9;16112:22;16091:53;:::i;:::-;16081:63;;16036:118;15687:474;;;;;:::o;16167:1089::-;16271:6;16279;16287;16295;16303;16352:3;16340:9;16331:7;16327:23;16323:33;16320:120;;;16359:79;;:::i;:::-;16320:120;16479:1;16504:53;16549:7;16540:6;16529:9;16525:22;16504:53;:::i;:::-;16494:63;;16450:117;16606:2;16632:53;16677:7;16668:6;16657:9;16653:22;16632:53;:::i;:::-;16622:63;;16577:118;16734:2;16760:53;16805:7;16796:6;16785:9;16781:22;16760:53;:::i;:::-;16750:63;;16705:118;16862:2;16888:53;16933:7;16924:6;16913:9;16909:22;16888:53;:::i;:::-;16878:63;;16833:118;17018:3;17007:9;17003:19;16990:33;17050:18;17042:6;17039:30;17036:117;;;17072:79;;:::i;:::-;17036:117;17177:62;17231:7;17222:6;17211:9;17207:22;17177:62;:::i;:::-;17167:72;;16961:288;16167:1089;;;;;;;;:::o;17262:180::-;17310:77;17307:1;17300:88;17407:4;17404:1;17397:15;17431:4;17428:1;17421:15;17448:320;17492:6;17529:1;17523:4;17519:12;17509:22;;17576:1;17570:4;17566:12;17597:18;17587:81;;17653:4;17645:6;17641:17;17631:27;;17587:81;17715:2;17707:6;17704:14;17684:18;17681:38;17678:84;;17734:18;;:::i;:::-;17678:84;17499:269;17448:320;;;:::o;17774:118::-;17861:24;17879:5;17861:24;:::i;:::-;17856:3;17849:37;17774:118;;:::o;17898:332::-;18019:4;18057:2;18046:9;18042:18;18034:26;;18070:71;18138:1;18127:9;18123:17;18114:6;18070:71;:::i;:::-;18151:72;18219:2;18208:9;18204:18;18195:6;18151:72;:::i;:::-;17898:332;;;;;:::o;18236:::-;18357:4;18395:2;18384:9;18380:18;18372:26;;18408:71;18476:1;18465:9;18461:17;18452:6;18408:71;:::i;:::-;18489:72;18557:2;18546:9;18542:18;18533:6;18489:72;:::i;:::-;18236:332;;;;;:::o;18574:180::-;18622:77;18619:1;18612:88;18719:4;18716:1;18709:15;18743:4;18740:1;18733:15;18760:222;18853:4;18891:2;18880:9;18876:18;18868:26;;18904:71;18972:1;18961:9;18957:17;18948:6;18904:71;:::i;:::-;18760:222;;;;:::o;18988:553::-;19165:4;19203:3;19192:9;19188:19;19180:27;;19217:71;19285:1;19274:9;19270:17;19261:6;19217:71;:::i;:::-;19298:72;19366:2;19355:9;19351:18;19342:6;19298:72;:::i;:::-;19380;19448:2;19437:9;19433:18;19424:6;19380:72;:::i;:::-;19462;19530:2;19519:9;19515:18;19506:6;19462:72;:::i;:::-;18988:553;;;;;;;:::o;19547:180::-;19595:77;19592:1;19585:88;19692:4;19689:1;19682:15;19716:4;19713:1;19706:15;19733:191;19773:3;19792:20;19810:1;19792:20;:::i;:::-;19787:25;;19826:20;19844:1;19826:20;:::i;:::-;19821:25;;19869:1;19866;19862:9;19855:16;;19890:3;19887:1;19884:10;19881:36;;;19897:18;;:::i;:::-;19881:36;19733:191;;;;:::o;19930:634::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20238:9;20232:4;20228:20;20224:1;20213:9;20209:17;20202:47;20266:108;20369:4;20360:6;20266:108;:::i;:::-;20258:116;;20421:9;20415:4;20411:20;20406:2;20395:9;20391:18;20384:48;20449:108;20552:4;20543:6;20449:108;:::i;:::-;20441:116;;19930:634;;;;;:::o;20570:98::-;20621:6;20655:5;20649:12;20639:22;;20570:98;;;:::o;20674:168::-;20757:11;20791:6;20786:3;20779:19;20831:4;20826:3;20822:14;20807:29;;20674:168;;;;:::o;20848:373::-;20934:3;20962:38;20994:5;20962:38;:::i;:::-;21016:70;21079:6;21074:3;21016:70;:::i;:::-;21009:77;;21095:65;21153:6;21148:3;21141:4;21134:5;21130:16;21095:65;:::i;:::-;21185:29;21207:6;21185:29;:::i;:::-;21180:3;21176:39;21169:46;;20938:283;20848:373;;;;:::o;21227:751::-;21450:4;21488:3;21477:9;21473:19;21465:27;;21502:71;21570:1;21559:9;21555:17;21546:6;21502:71;:::i;:::-;21583:72;21651:2;21640:9;21636:18;21627:6;21583:72;:::i;:::-;21665;21733:2;21722:9;21718:18;21709:6;21665:72;:::i;:::-;21747;21815:2;21804:9;21800:18;21791:6;21747:72;:::i;:::-;21867:9;21861:4;21857:20;21851:3;21840:9;21836:19;21829:49;21895:76;21966:4;21957:6;21895:76;:::i;:::-;21887:84;;21227:751;;;;;;;;:::o;21984:141::-;22040:5;22071:6;22065:13;22056:22;;22087:32;22113:5;22087:32;:::i;:::-;21984:141;;;;:::o;22131:349::-;22200:6;22249:2;22237:9;22228:7;22224:23;22220:32;22217:119;;;22255:79;;:::i;:::-;22217:119;22375:1;22400:63;22455:7;22446:6;22435:9;22431:22;22400:63;:::i;:::-;22390:73;;22346:127;22131:349;;;;:::o;22486:1053::-;22809:4;22847:3;22836:9;22832:19;22824:27;;22861:71;22929:1;22918:9;22914:17;22905:6;22861:71;:::i;:::-;22942:72;23010:2;22999:9;22995:18;22986:6;22942:72;:::i;:::-;23061:9;23055:4;23051:20;23046:2;23035:9;23031:18;23024:48;23089:108;23192:4;23183:6;23089:108;:::i;:::-;23081:116;;23244:9;23238:4;23234:20;23229:2;23218:9;23214:18;23207:48;23272:108;23375:4;23366:6;23272:108;:::i;:::-;23264:116;;23428:9;23422:4;23418:20;23412:3;23401:9;23397:19;23390:49;23456:76;23527:4;23518:6;23456:76;:::i;:::-;23448:84;;22486:1053;;;;;;;;:::o"},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","burn(address,uint256,uint256)":"f5298aca","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,uint256)":"156e29f6","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"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\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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.\"},\"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 ERC]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"title\":\"MockERC1155\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC1155 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC1155\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"},"MockERC20":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintPayable","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50610e138061001c5f395ff3fe6080604052600436106100dc575f3560e01c806340c10f191161007e57806395d89b411161005857806395d89b41146102bc578063a9059cbb146102e6578063d505accf14610322578063dd62ed3e1461034a576100dc565b806340c10f191461021c57806370a08231146102445780637ecebe0014610280576100dc565b806318160ddd116100ba57806318160ddd1461016257806323b872dd1461018c578063313ce567146101c85780633644e515146101f2576100dc565b806306fdde03146100e0578063095ea7b31461010a57806317d304b014610146575b5f80fd5b3480156100eb575f80fd5b506100f4610386565b60405161010191906109bf565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190610a70565b6103c3565b60405161013d9190610ac8565b60405180910390f35b610160600480360381019061015b9190610a70565b610413565b005b34801561016d575f80fd5b50610176610470565b6040516101839190610af0565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad9190610b09565b610481565b6040516101bf9190610ac8565b60405180910390f35b3480156101d3575f80fd5b506101dc610552565b6040516101e99190610b74565b60405180910390f35b3480156101fd575f80fd5b5061020661055a565b6040516102139190610ba5565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d9190610a70565b6105ea565b005b34801561024f575f80fd5b5061026a60048036038101906102659190610bbe565b6105f8565b6040516102779190610af0565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190610bbe565b610611565b6040516102b39190610af0565b60405180910390f35b3480156102c7575f80fd5b506102d061062a565b6040516102dd91906109bf565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190610a70565b610667565b6040516103199190610ac8565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190610c3d565b6106f5565b005b348015610355575f80fd5b50610370600480360381019061036b9190610cda565b610891565b60405161037d9190610af0565b60405180910390f35b60606040518060400160405280600a81526020017f4d6f636b20455243323000000000000000000000000000000000000000000000815250905090565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b6064816104209190610d45565b341015610462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045990610dbf565b60405180910390fd5b61046c82826108af565b5050565b5f6805345cdf77eb68f44c54905090565b5f61048d848484610941565b8360601b33602052637f5e9f208117600c526034600c20805460018101156104ca57808511156104c4576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c208054808711156104f05763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050505050610547848484610946565b600190509392505050565b5f6012905090565b5f8061056461094b565b90505f801b810361058157610577610386565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6105f482826108af565b5050565b5f6387a211a2600c52815f526020600c20549050919050565b5f6338377508600c52815f526020600c20549050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b5f610673338484610941565b6387a211a2600c52335f526020600c2080548084111561069a5763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506106eb338484610946565b6001905092915050565b5f6106fe61094b565b90505f801b810361071b57610711610386565b8051906020012090505b8442111561073057631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d51146108385763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b6108ba5f8383610941565b6805345cdf77eb68f44c54818101818110156108dd5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505061093d5f8383610946565b5050565b505050565b505050565b5f90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109918261094f565b61099b8185610959565b93506109ab818560208601610969565b6109b481610977565b840191505092915050565b5f6020820190508181035f8301526109d78184610987565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a0c826109e3565b9050919050565b610a1c81610a02565b8114610a26575f80fd5b50565b5f81359050610a3781610a13565b92915050565b5f819050919050565b610a4f81610a3d565b8114610a59575f80fd5b50565b5f81359050610a6a81610a46565b92915050565b5f8060408385031215610a8657610a856109df565b5b5f610a9385828601610a29565b9250506020610aa485828601610a5c565b9150509250929050565b5f8115159050919050565b610ac281610aae565b82525050565b5f602082019050610adb5f830184610ab9565b92915050565b610aea81610a3d565b82525050565b5f602082019050610b035f830184610ae1565b92915050565b5f805f60608486031215610b2057610b1f6109df565b5b5f610b2d86828701610a29565b9350506020610b3e86828701610a29565b9250506040610b4f86828701610a5c565b9150509250925092565b5f60ff82169050919050565b610b6e81610b59565b82525050565b5f602082019050610b875f830184610b65565b92915050565b5f819050919050565b610b9f81610b8d565b82525050565b5f602082019050610bb85f830184610b96565b92915050565b5f60208284031215610bd357610bd26109df565b5b5f610be084828501610a29565b91505092915050565b610bf281610b59565b8114610bfc575f80fd5b50565b5f81359050610c0d81610be9565b92915050565b610c1c81610b8d565b8114610c26575f80fd5b50565b5f81359050610c3781610c13565b92915050565b5f805f805f805f60e0888a031215610c5857610c576109df565b5b5f610c658a828b01610a29565b9750506020610c768a828b01610a29565b9650506040610c878a828b01610a5c565b9550506060610c988a828b01610a5c565b9450506080610ca98a828b01610bff565b93505060a0610cba8a828b01610c29565b92505060c0610ccb8a828b01610c29565b91505092959891949750929550565b5f8060408385031215610cf057610cef6109df565b5b5f610cfd85828601610a29565b9250506020610d0e85828601610a29565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d4f82610a3d565b9150610d5a83610a3d565b925082610d6a57610d69610d18565b5b828204905092915050565b7f4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921000000005f82015250565b5f610da9601c83610959565b9150610db482610d75565b602082019050919050565b5f6020820190508181035f830152610dd681610d9d565b905091905056fea26469706673582212206dfa065afeadb670793b85c903684a7900b7a0f5a22e73698eccec3175ab4c7a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xE13 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDC JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x34A JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x280 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xBA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1F2 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x17D304B0 EQ PUSH2 0x146 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x115 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x197 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x611 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0x62A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x667 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x343 SWAP2 SWAP1 PUSH2 0xC3D JUMP JUMPDEST PUSH2 0x6F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH2 0x891 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243323000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x64 DUP2 PUSH2 0x420 SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST CALLVALUE LT ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x46C DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48D DUP5 DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x4CA JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x4C4 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x4F0 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x547 DUP5 DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x564 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x581 JUMPI PUSH2 0x577 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x5F4 DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x673 CALLER DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0x69A JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x6EB CALLER DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FE PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x71B JUMPI PUSH2 0x711 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0x730 JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0x838 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8BA PUSH0 DUP4 DUP4 PUSH2 0x941 JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x8DD JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x93D PUSH0 DUP4 DUP4 PUSH2 0x946 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x991 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH2 0x99B DUP2 DUP6 PUSH2 0x959 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x969 JUMP JUMPDEST PUSH2 0x9B4 DUP2 PUSH2 0x977 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9D7 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4F DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP2 EQ PUSH2 0xA59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA6A DUP2 PUSH2 0xA46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH2 0xA85 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA93 DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA4 DUP6 DUP3 DUP7 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC2 DUP2 PUSH2 0xAAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADB PUSH0 DUP4 ADD DUP5 PUSH2 0xAB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEA DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB03 PUSH0 DUP4 ADD DUP5 PUSH2 0xAE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH2 0xB1F PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB2D DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB3E DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB4F DUP7 DUP3 DUP8 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB87 PUSH0 DUP4 ADD DUP5 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB8 PUSH0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBD3 JUMPI PUSH2 0xBD2 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBE0 DUP5 DUP3 DUP6 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF2 DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP2 EQ PUSH2 0xBFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC0D DUP2 PUSH2 0xBE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP2 EQ PUSH2 0xC26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC37 DUP2 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC57 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC65 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0xC76 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0xC87 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0xC98 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0xCA9 DUP11 DUP3 DUP12 ADD PUSH2 0xBFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0xCBA DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0xCCB DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCEF PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCFD DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0E DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD4F DUP3 PUSH2 0xA3D JUMP JUMPDEST SWAP2 POP PUSH2 0xD5A DUP4 PUSH2 0xA3D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD6A JUMPI PUSH2 0xD69 PUSH2 0xD18 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6F636B45524332303A2067696D6D65206D6F7265206D6F6E65792100000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA9 PUSH1 0x1C DUP4 PUSH2 0x959 JUMP JUMPDEST SWAP2 POP PUSH2 0xDB4 DUP3 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDD6 DUP2 PUSH2 0xD9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xFA065AFEADB670793B85C903684A PUSH26 0xB7A0F5A22E73698ECCEC3175AB4C7A64736F6C634300081900 CALLER ","sourceMap":"1467:501:49:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_8242":{"entryPoint":1370,"id":8242,"parameterSlots":0,"returnSlots":1},"@_afterTokenTransfer_8368":{"entryPoint":2374,"id":8368,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_8357":{"entryPoint":2369,"id":8357,"parameterSlots":3,"returnSlots":0},"@_constantNameHash_8160":{"entryPoint":2379,"id":8160,"parameterSlots":0,"returnSlots":1},"@_mint_8270":{"entryPoint":2223,"id":8270,"parameterSlots":2,"returnSlots":0},"@allowance_8083":{"entryPoint":2193,"id":8083,"parameterSlots":2,"returnSlots":1},"@approve_8097":{"entryPoint":963,"id":8097,"parameterSlots":2,"returnSlots":1},"@balanceOf_8071":{"entryPoint":1528,"id":8071,"parameterSlots":1,"returnSlots":1},"@decimals_8053":{"entryPoint":1362,"id":8053,"parameterSlots":0,"returnSlots":1},"@mintPayable_17855":{"entryPoint":1043,"id":17855,"parameterSlots":2,"returnSlots":0},"@mint_17832":{"entryPoint":1514,"id":17832,"parameterSlots":2,"returnSlots":0},"@name_17810":{"entryPoint":902,"id":17810,"parameterSlots":0,"returnSlots":1},"@nonces_8170":{"entryPoint":1553,"id":8170,"parameterSlots":1,"returnSlots":1},"@permit_8212":{"entryPoint":1781,"id":8212,"parameterSlots":7,"returnSlots":0},"@symbol_17819":{"entryPoint":1578,"id":17819,"parameterSlots":0,"returnSlots":1},"@totalSupply_8061":{"entryPoint":1136,"id":8061,"parameterSlots":0,"returnSlots":1},"@transferFrom_8153":{"entryPoint":1153,"id":8153,"parameterSlots":3,"returnSlots":1},"@transfer_8125":{"entryPoint":1639,"id":8125,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2601,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3113,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8":{"entryPoint":3071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3006,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3290,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2825,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":3133,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2672,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2745,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2439,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack":{"entryPoint":3485,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2785,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":2917,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2760,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":2981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3519,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2800,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":2932,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2383,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2393,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":3397,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2562,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2734,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":2957,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2531,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2621,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":2905,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2409,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":3352,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2527,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2423,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417":{"entryPoint":3445,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2579,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3091,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2630,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":3049,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9280:53","nodeType":"YulBlock","src":"0:9280:53","statements":[{"body":{"nativeSrc":"66:40:53","nodeType":"YulBlock","src":"66:40:53","statements":[{"nativeSrc":"77:22:53","nodeType":"YulAssignment","src":"77:22:53","value":{"arguments":[{"name":"value","nativeSrc":"93:5:53","nodeType":"YulIdentifier","src":"93:5:53"}],"functionName":{"name":"mload","nativeSrc":"87:5:53","nodeType":"YulIdentifier","src":"87:5:53"},"nativeSrc":"87:12:53","nodeType":"YulFunctionCall","src":"87:12:53"},"variableNames":[{"name":"length","nativeSrc":"77:6:53","nodeType":"YulIdentifier","src":"77:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:53","nodeType":"YulTypedName","src":"49:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:53","nodeType":"YulTypedName","src":"59:6:53","type":""}],"src":"7:99:53"},{"body":{"nativeSrc":"208:73:53","nodeType":"YulBlock","src":"208:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:53","nodeType":"YulIdentifier","src":"225:3:53"},{"name":"length","nativeSrc":"230:6:53","nodeType":"YulIdentifier","src":"230:6:53"}],"functionName":{"name":"mstore","nativeSrc":"218:6:53","nodeType":"YulIdentifier","src":"218:6:53"},"nativeSrc":"218:19:53","nodeType":"YulFunctionCall","src":"218:19:53"},"nativeSrc":"218:19:53","nodeType":"YulExpressionStatement","src":"218:19:53"},{"nativeSrc":"246:29:53","nodeType":"YulAssignment","src":"246:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:53","nodeType":"YulIdentifier","src":"265:3:53"},{"kind":"number","nativeSrc":"270:4:53","nodeType":"YulLiteral","src":"270:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:53","nodeType":"YulIdentifier","src":"261:3:53"},"nativeSrc":"261:14:53","nodeType":"YulFunctionCall","src":"261:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:53","nodeType":"YulIdentifier","src":"246:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:53","nodeType":"YulTypedName","src":"180:3:53","type":""},{"name":"length","nativeSrc":"185:6:53","nodeType":"YulTypedName","src":"185:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:53","nodeType":"YulTypedName","src":"196:11:53","type":""}],"src":"112:169:53"},{"body":{"nativeSrc":"349:77:53","nodeType":"YulBlock","src":"349:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:53","nodeType":"YulIdentifier","src":"366:3:53"},{"name":"src","nativeSrc":"371:3:53","nodeType":"YulIdentifier","src":"371:3:53"},{"name":"length","nativeSrc":"376:6:53","nodeType":"YulIdentifier","src":"376:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:53","nodeType":"YulIdentifier","src":"360:5:53"},"nativeSrc":"360:23:53","nodeType":"YulFunctionCall","src":"360:23:53"},"nativeSrc":"360:23:53","nodeType":"YulExpressionStatement","src":"360:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:53","nodeType":"YulIdentifier","src":"403:3:53"},{"name":"length","nativeSrc":"408:6:53","nodeType":"YulIdentifier","src":"408:6:53"}],"functionName":{"name":"add","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:16:53","nodeType":"YulFunctionCall","src":"399:16:53"},{"kind":"number","nativeSrc":"417:1:53","nodeType":"YulLiteral","src":"417:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:53","nodeType":"YulIdentifier","src":"392:6:53"},"nativeSrc":"392:27:53","nodeType":"YulFunctionCall","src":"392:27:53"},"nativeSrc":"392:27:53","nodeType":"YulExpressionStatement","src":"392:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:53","nodeType":"YulTypedName","src":"331:3:53","type":""},{"name":"dst","nativeSrc":"336:3:53","nodeType":"YulTypedName","src":"336:3:53","type":""},{"name":"length","nativeSrc":"341:6:53","nodeType":"YulTypedName","src":"341:6:53","type":""}],"src":"287:139:53"},{"body":{"nativeSrc":"480:54:53","nodeType":"YulBlock","src":"480:54:53","statements":[{"nativeSrc":"490:38:53","nodeType":"YulAssignment","src":"490:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:53","nodeType":"YulIdentifier","src":"508:5:53"},{"kind":"number","nativeSrc":"515:2:53","nodeType":"YulLiteral","src":"515:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:53","nodeType":"YulIdentifier","src":"504:3:53"},"nativeSrc":"504:14:53","nodeType":"YulFunctionCall","src":"504:14:53"},{"arguments":[{"kind":"number","nativeSrc":"524:2:53","nodeType":"YulLiteral","src":"524:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:53","nodeType":"YulIdentifier","src":"520:3:53"},"nativeSrc":"520:7:53","nodeType":"YulFunctionCall","src":"520:7:53"}],"functionName":{"name":"and","nativeSrc":"500:3:53","nodeType":"YulIdentifier","src":"500:3:53"},"nativeSrc":"500:28:53","nodeType":"YulFunctionCall","src":"500:28:53"},"variableNames":[{"name":"result","nativeSrc":"490:6:53","nodeType":"YulIdentifier","src":"490:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:53","nodeType":"YulTypedName","src":"463:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:53","nodeType":"YulTypedName","src":"473:6:53","type":""}],"src":"432:102:53"},{"body":{"nativeSrc":"632:285:53","nodeType":"YulBlock","src":"632:285:53","statements":[{"nativeSrc":"642:53:53","nodeType":"YulVariableDeclaration","src":"642:53:53","value":{"arguments":[{"name":"value","nativeSrc":"689:5:53","nodeType":"YulIdentifier","src":"689:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:53","nodeType":"YulIdentifier","src":"656:32:53"},"nativeSrc":"656:39:53","nodeType":"YulFunctionCall","src":"656:39:53"},"variables":[{"name":"length","nativeSrc":"646:6:53","nodeType":"YulTypedName","src":"646:6:53","type":""}]},{"nativeSrc":"704:78:53","nodeType":"YulAssignment","src":"704:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:53","nodeType":"YulIdentifier","src":"770:3:53"},{"name":"length","nativeSrc":"775:6:53","nodeType":"YulIdentifier","src":"775:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:53","nodeType":"YulIdentifier","src":"711:58:53"},"nativeSrc":"711:71:53","nodeType":"YulFunctionCall","src":"711:71:53"},"variableNames":[{"name":"pos","nativeSrc":"704:3:53","nodeType":"YulIdentifier","src":"704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:53","nodeType":"YulIdentifier","src":"830:5:53"},{"kind":"number","nativeSrc":"837:4:53","nodeType":"YulLiteral","src":"837:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:53","nodeType":"YulIdentifier","src":"826:3:53"},"nativeSrc":"826:16:53","nodeType":"YulFunctionCall","src":"826:16:53"},{"name":"pos","nativeSrc":"844:3:53","nodeType":"YulIdentifier","src":"844:3:53"},{"name":"length","nativeSrc":"849:6:53","nodeType":"YulIdentifier","src":"849:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:53","nodeType":"YulIdentifier","src":"791:34:53"},"nativeSrc":"791:65:53","nodeType":"YulFunctionCall","src":"791:65:53"},"nativeSrc":"791:65:53","nodeType":"YulExpressionStatement","src":"791:65:53"},{"nativeSrc":"865:46:53","nodeType":"YulAssignment","src":"865:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:53","nodeType":"YulIdentifier","src":"876:3:53"},{"arguments":[{"name":"length","nativeSrc":"903:6:53","nodeType":"YulIdentifier","src":"903:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:53","nodeType":"YulIdentifier","src":"881:21:53"},"nativeSrc":"881:29:53","nodeType":"YulFunctionCall","src":"881:29:53"}],"functionName":{"name":"add","nativeSrc":"872:3:53","nodeType":"YulIdentifier","src":"872:3:53"},"nativeSrc":"872:39:53","nodeType":"YulFunctionCall","src":"872:39:53"},"variableNames":[{"name":"end","nativeSrc":"865:3:53","nodeType":"YulIdentifier","src":"865:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:53","nodeType":"YulTypedName","src":"613:5:53","type":""},{"name":"pos","nativeSrc":"620:3:53","nodeType":"YulTypedName","src":"620:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:53","nodeType":"YulTypedName","src":"628:3:53","type":""}],"src":"540:377:53"},{"body":{"nativeSrc":"1041:195:53","nodeType":"YulBlock","src":"1041:195:53","statements":[{"nativeSrc":"1051:26:53","nodeType":"YulAssignment","src":"1051:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:53","nodeType":"YulIdentifier","src":"1063:9:53"},{"kind":"number","nativeSrc":"1074:2:53","nodeType":"YulLiteral","src":"1074:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:53","nodeType":"YulIdentifier","src":"1059:3:53"},"nativeSrc":"1059:18:53","nodeType":"YulFunctionCall","src":"1059:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:53","nodeType":"YulIdentifier","src":"1051:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:53","nodeType":"YulIdentifier","src":"1098:9:53"},{"kind":"number","nativeSrc":"1109:1:53","nodeType":"YulLiteral","src":"1109:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:53","nodeType":"YulIdentifier","src":"1094:3:53"},"nativeSrc":"1094:17:53","nodeType":"YulFunctionCall","src":"1094:17:53"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:53","nodeType":"YulIdentifier","src":"1117:4:53"},{"name":"headStart","nativeSrc":"1123:9:53","nodeType":"YulIdentifier","src":"1123:9:53"}],"functionName":{"name":"sub","nativeSrc":"1113:3:53","nodeType":"YulIdentifier","src":"1113:3:53"},"nativeSrc":"1113:20:53","nodeType":"YulFunctionCall","src":"1113:20:53"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:53","nodeType":"YulIdentifier","src":"1087:6:53"},"nativeSrc":"1087:47:53","nodeType":"YulFunctionCall","src":"1087:47:53"},"nativeSrc":"1087:47:53","nodeType":"YulExpressionStatement","src":"1087:47:53"},{"nativeSrc":"1143:86:53","nodeType":"YulAssignment","src":"1143:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:53","nodeType":"YulIdentifier","src":"1215:6:53"},{"name":"tail","nativeSrc":"1224:4:53","nodeType":"YulIdentifier","src":"1224:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:53","nodeType":"YulIdentifier","src":"1151:63:53"},"nativeSrc":"1151:78:53","nodeType":"YulFunctionCall","src":"1151:78:53"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:53","nodeType":"YulIdentifier","src":"1143:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:53","nodeType":"YulTypedName","src":"1013:9:53","type":""},{"name":"value0","nativeSrc":"1025:6:53","nodeType":"YulTypedName","src":"1025:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:53","nodeType":"YulTypedName","src":"1036:4:53","type":""}],"src":"923:313:53"},{"body":{"nativeSrc":"1282:35:53","nodeType":"YulBlock","src":"1282:35:53","statements":[{"nativeSrc":"1292:19:53","nodeType":"YulAssignment","src":"1292:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:53","nodeType":"YulLiteral","src":"1308:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:53","nodeType":"YulIdentifier","src":"1302:5:53"},"nativeSrc":"1302:9:53","nodeType":"YulFunctionCall","src":"1302:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:53","nodeType":"YulIdentifier","src":"1292:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:53","nodeType":"YulTypedName","src":"1275:6:53","type":""}],"src":"1242:75:53"},{"body":{"nativeSrc":"1412:28:53","nodeType":"YulBlock","src":"1412:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:53","nodeType":"YulLiteral","src":"1429:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:53","nodeType":"YulLiteral","src":"1432:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:53","nodeType":"YulIdentifier","src":"1422:6:53"},"nativeSrc":"1422:12:53","nodeType":"YulFunctionCall","src":"1422:12:53"},"nativeSrc":"1422:12:53","nodeType":"YulExpressionStatement","src":"1422:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:53","nodeType":"YulFunctionDefinition","src":"1323:117:53"},{"body":{"nativeSrc":"1535:28:53","nodeType":"YulBlock","src":"1535:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:53","nodeType":"YulLiteral","src":"1552:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:53","nodeType":"YulLiteral","src":"1555:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:53","nodeType":"YulIdentifier","src":"1545:6:53"},"nativeSrc":"1545:12:53","nodeType":"YulFunctionCall","src":"1545:12:53"},"nativeSrc":"1545:12:53","nodeType":"YulExpressionStatement","src":"1545:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:53","nodeType":"YulFunctionDefinition","src":"1446:117:53"},{"body":{"nativeSrc":"1614:81:53","nodeType":"YulBlock","src":"1614:81:53","statements":[{"nativeSrc":"1624:65:53","nodeType":"YulAssignment","src":"1624:65:53","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:53","nodeType":"YulIdentifier","src":"1639:5:53"},{"kind":"number","nativeSrc":"1646:42:53","nodeType":"YulLiteral","src":"1646:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:53","nodeType":"YulIdentifier","src":"1635:3:53"},"nativeSrc":"1635:54:53","nodeType":"YulFunctionCall","src":"1635:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:53","nodeType":"YulIdentifier","src":"1624:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:53","nodeType":"YulTypedName","src":"1596:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:53","nodeType":"YulTypedName","src":"1606:7:53","type":""}],"src":"1569:126:53"},{"body":{"nativeSrc":"1746:51:53","nodeType":"YulBlock","src":"1746:51:53","statements":[{"nativeSrc":"1756:35:53","nodeType":"YulAssignment","src":"1756:35:53","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:53","nodeType":"YulIdentifier","src":"1785:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:53","nodeType":"YulIdentifier","src":"1767:17:53"},"nativeSrc":"1767:24:53","nodeType":"YulFunctionCall","src":"1767:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:53","nodeType":"YulIdentifier","src":"1756:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:53","nodeType":"YulTypedName","src":"1728:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:53","nodeType":"YulTypedName","src":"1738:7:53","type":""}],"src":"1701:96:53"},{"body":{"nativeSrc":"1846:79:53","nodeType":"YulBlock","src":"1846:79:53","statements":[{"body":{"nativeSrc":"1903:16:53","nodeType":"YulBlock","src":"1903:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:53","nodeType":"YulLiteral","src":"1912:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:53","nodeType":"YulLiteral","src":"1915:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:53","nodeType":"YulIdentifier","src":"1905:6:53"},"nativeSrc":"1905:12:53","nodeType":"YulFunctionCall","src":"1905:12:53"},"nativeSrc":"1905:12:53","nodeType":"YulExpressionStatement","src":"1905:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:53","nodeType":"YulIdentifier","src":"1869:5:53"},{"arguments":[{"name":"value","nativeSrc":"1894:5:53","nodeType":"YulIdentifier","src":"1894:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:53","nodeType":"YulIdentifier","src":"1876:17:53"},"nativeSrc":"1876:24:53","nodeType":"YulFunctionCall","src":"1876:24:53"}],"functionName":{"name":"eq","nativeSrc":"1866:2:53","nodeType":"YulIdentifier","src":"1866:2:53"},"nativeSrc":"1866:35:53","nodeType":"YulFunctionCall","src":"1866:35:53"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:53","nodeType":"YulIdentifier","src":"1859:6:53"},"nativeSrc":"1859:43:53","nodeType":"YulFunctionCall","src":"1859:43:53"},"nativeSrc":"1856:63:53","nodeType":"YulIf","src":"1856:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:53","nodeType":"YulTypedName","src":"1839:5:53","type":""}],"src":"1803:122:53"},{"body":{"nativeSrc":"1983:87:53","nodeType":"YulBlock","src":"1983:87:53","statements":[{"nativeSrc":"1993:29:53","nodeType":"YulAssignment","src":"1993:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:53","nodeType":"YulIdentifier","src":"2015:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:53","nodeType":"YulIdentifier","src":"2002:12:53"},"nativeSrc":"2002:20:53","nodeType":"YulFunctionCall","src":"2002:20:53"},"variableNames":[{"name":"value","nativeSrc":"1993:5:53","nodeType":"YulIdentifier","src":"1993:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:53","nodeType":"YulIdentifier","src":"2058:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:53","nodeType":"YulIdentifier","src":"2031:26:53"},"nativeSrc":"2031:33:53","nodeType":"YulFunctionCall","src":"2031:33:53"},"nativeSrc":"2031:33:53","nodeType":"YulExpressionStatement","src":"2031:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:53","nodeType":"YulTypedName","src":"1961:6:53","type":""},{"name":"end","nativeSrc":"1969:3:53","nodeType":"YulTypedName","src":"1969:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:53","nodeType":"YulTypedName","src":"1977:5:53","type":""}],"src":"1931:139:53"},{"body":{"nativeSrc":"2121:32:53","nodeType":"YulBlock","src":"2121:32:53","statements":[{"nativeSrc":"2131:16:53","nodeType":"YulAssignment","src":"2131:16:53","value":{"name":"value","nativeSrc":"2142:5:53","nodeType":"YulIdentifier","src":"2142:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:53","nodeType":"YulIdentifier","src":"2131:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:53","nodeType":"YulTypedName","src":"2103:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:53","nodeType":"YulTypedName","src":"2113:7:53","type":""}],"src":"2076:77:53"},{"body":{"nativeSrc":"2202:79:53","nodeType":"YulBlock","src":"2202:79:53","statements":[{"body":{"nativeSrc":"2259:16:53","nodeType":"YulBlock","src":"2259:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:53","nodeType":"YulLiteral","src":"2268:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:53","nodeType":"YulLiteral","src":"2271:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:53","nodeType":"YulIdentifier","src":"2261:6:53"},"nativeSrc":"2261:12:53","nodeType":"YulFunctionCall","src":"2261:12:53"},"nativeSrc":"2261:12:53","nodeType":"YulExpressionStatement","src":"2261:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:53","nodeType":"YulIdentifier","src":"2225:5:53"},{"arguments":[{"name":"value","nativeSrc":"2250:5:53","nodeType":"YulIdentifier","src":"2250:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:53","nodeType":"YulIdentifier","src":"2232:17:53"},"nativeSrc":"2232:24:53","nodeType":"YulFunctionCall","src":"2232:24:53"}],"functionName":{"name":"eq","nativeSrc":"2222:2:53","nodeType":"YulIdentifier","src":"2222:2:53"},"nativeSrc":"2222:35:53","nodeType":"YulFunctionCall","src":"2222:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:53","nodeType":"YulIdentifier","src":"2215:6:53"},"nativeSrc":"2215:43:53","nodeType":"YulFunctionCall","src":"2215:43:53"},"nativeSrc":"2212:63:53","nodeType":"YulIf","src":"2212:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:53","nodeType":"YulTypedName","src":"2195:5:53","type":""}],"src":"2159:122:53"},{"body":{"nativeSrc":"2339:87:53","nodeType":"YulBlock","src":"2339:87:53","statements":[{"nativeSrc":"2349:29:53","nodeType":"YulAssignment","src":"2349:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:53","nodeType":"YulIdentifier","src":"2371:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:53","nodeType":"YulIdentifier","src":"2358:12:53"},"nativeSrc":"2358:20:53","nodeType":"YulFunctionCall","src":"2358:20:53"},"variableNames":[{"name":"value","nativeSrc":"2349:5:53","nodeType":"YulIdentifier","src":"2349:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:53","nodeType":"YulIdentifier","src":"2414:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:53","nodeType":"YulIdentifier","src":"2387:26:53"},"nativeSrc":"2387:33:53","nodeType":"YulFunctionCall","src":"2387:33:53"},"nativeSrc":"2387:33:53","nodeType":"YulExpressionStatement","src":"2387:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:53","nodeType":"YulTypedName","src":"2317:6:53","type":""},{"name":"end","nativeSrc":"2325:3:53","nodeType":"YulTypedName","src":"2325:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:53","nodeType":"YulTypedName","src":"2333:5:53","type":""}],"src":"2287:139:53"},{"body":{"nativeSrc":"2515:391:53","nodeType":"YulBlock","src":"2515:391:53","statements":[{"body":{"nativeSrc":"2561:83:53","nodeType":"YulBlock","src":"2561:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:53","nodeType":"YulIdentifier","src":"2563:77:53"},"nativeSrc":"2563:79:53","nodeType":"YulFunctionCall","src":"2563:79:53"},"nativeSrc":"2563:79:53","nodeType":"YulExpressionStatement","src":"2563:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:53","nodeType":"YulIdentifier","src":"2536:7:53"},{"name":"headStart","nativeSrc":"2545:9:53","nodeType":"YulIdentifier","src":"2545:9:53"}],"functionName":{"name":"sub","nativeSrc":"2532:3:53","nodeType":"YulIdentifier","src":"2532:3:53"},"nativeSrc":"2532:23:53","nodeType":"YulFunctionCall","src":"2532:23:53"},{"kind":"number","nativeSrc":"2557:2:53","nodeType":"YulLiteral","src":"2557:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:53","nodeType":"YulIdentifier","src":"2528:3:53"},"nativeSrc":"2528:32:53","nodeType":"YulFunctionCall","src":"2528:32:53"},"nativeSrc":"2525:119:53","nodeType":"YulIf","src":"2525:119:53"},{"nativeSrc":"2654:117:53","nodeType":"YulBlock","src":"2654:117:53","statements":[{"nativeSrc":"2669:15:53","nodeType":"YulVariableDeclaration","src":"2669:15:53","value":{"kind":"number","nativeSrc":"2683:1:53","nodeType":"YulLiteral","src":"2683:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:53","nodeType":"YulTypedName","src":"2673:6:53","type":""}]},{"nativeSrc":"2698:63:53","nodeType":"YulAssignment","src":"2698:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:53","nodeType":"YulIdentifier","src":"2733:9:53"},{"name":"offset","nativeSrc":"2744:6:53","nodeType":"YulIdentifier","src":"2744:6:53"}],"functionName":{"name":"add","nativeSrc":"2729:3:53","nodeType":"YulIdentifier","src":"2729:3:53"},"nativeSrc":"2729:22:53","nodeType":"YulFunctionCall","src":"2729:22:53"},{"name":"dataEnd","nativeSrc":"2753:7:53","nodeType":"YulIdentifier","src":"2753:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:53","nodeType":"YulIdentifier","src":"2708:20:53"},"nativeSrc":"2708:53:53","nodeType":"YulFunctionCall","src":"2708:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:53","nodeType":"YulIdentifier","src":"2698:6:53"}]}]},{"nativeSrc":"2781:118:53","nodeType":"YulBlock","src":"2781:118:53","statements":[{"nativeSrc":"2796:16:53","nodeType":"YulVariableDeclaration","src":"2796:16:53","value":{"kind":"number","nativeSrc":"2810:2:53","nodeType":"YulLiteral","src":"2810:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:53","nodeType":"YulTypedName","src":"2800:6:53","type":""}]},{"nativeSrc":"2826:63:53","nodeType":"YulAssignment","src":"2826:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:53","nodeType":"YulIdentifier","src":"2861:9:53"},{"name":"offset","nativeSrc":"2872:6:53","nodeType":"YulIdentifier","src":"2872:6:53"}],"functionName":{"name":"add","nativeSrc":"2857:3:53","nodeType":"YulIdentifier","src":"2857:3:53"},"nativeSrc":"2857:22:53","nodeType":"YulFunctionCall","src":"2857:22:53"},{"name":"dataEnd","nativeSrc":"2881:7:53","nodeType":"YulIdentifier","src":"2881:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:53","nodeType":"YulIdentifier","src":"2836:20:53"},"nativeSrc":"2836:53:53","nodeType":"YulFunctionCall","src":"2836:53:53"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:53","nodeType":"YulIdentifier","src":"2826:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:53","nodeType":"YulTypedName","src":"2477:9:53","type":""},{"name":"dataEnd","nativeSrc":"2488:7:53","nodeType":"YulTypedName","src":"2488:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:53","nodeType":"YulTypedName","src":"2500:6:53","type":""},{"name":"value1","nativeSrc":"2508:6:53","nodeType":"YulTypedName","src":"2508:6:53","type":""}],"src":"2432:474:53"},{"body":{"nativeSrc":"2954:48:53","nodeType":"YulBlock","src":"2954:48:53","statements":[{"nativeSrc":"2964:32:53","nodeType":"YulAssignment","src":"2964:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:53","nodeType":"YulIdentifier","src":"2989:5:53"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:53","nodeType":"YulIdentifier","src":"2982:6:53"},"nativeSrc":"2982:13:53","nodeType":"YulFunctionCall","src":"2982:13:53"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:53","nodeType":"YulIdentifier","src":"2975:6:53"},"nativeSrc":"2975:21:53","nodeType":"YulFunctionCall","src":"2975:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:53","nodeType":"YulIdentifier","src":"2964:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:53","nodeType":"YulTypedName","src":"2936:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:53","nodeType":"YulTypedName","src":"2946:7:53","type":""}],"src":"2912:90:53"},{"body":{"nativeSrc":"3067:50:53","nodeType":"YulBlock","src":"3067:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:53","nodeType":"YulIdentifier","src":"3084:3:53"},{"arguments":[{"name":"value","nativeSrc":"3104:5:53","nodeType":"YulIdentifier","src":"3104:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:53","nodeType":"YulIdentifier","src":"3089:14:53"},"nativeSrc":"3089:21:53","nodeType":"YulFunctionCall","src":"3089:21:53"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:53","nodeType":"YulIdentifier","src":"3077:6:53"},"nativeSrc":"3077:34:53","nodeType":"YulFunctionCall","src":"3077:34:53"},"nativeSrc":"3077:34:53","nodeType":"YulExpressionStatement","src":"3077:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:53","nodeType":"YulTypedName","src":"3055:5:53","type":""},{"name":"pos","nativeSrc":"3062:3:53","nodeType":"YulTypedName","src":"3062:3:53","type":""}],"src":"3008:109:53"},{"body":{"nativeSrc":"3215:118:53","nodeType":"YulBlock","src":"3215:118:53","statements":[{"nativeSrc":"3225:26:53","nodeType":"YulAssignment","src":"3225:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:53","nodeType":"YulIdentifier","src":"3237:9:53"},{"kind":"number","nativeSrc":"3248:2:53","nodeType":"YulLiteral","src":"3248:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:53","nodeType":"YulIdentifier","src":"3233:3:53"},"nativeSrc":"3233:18:53","nodeType":"YulFunctionCall","src":"3233:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:53","nodeType":"YulIdentifier","src":"3225:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:53","nodeType":"YulIdentifier","src":"3299:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:53","nodeType":"YulIdentifier","src":"3312:9:53"},{"kind":"number","nativeSrc":"3323:1:53","nodeType":"YulLiteral","src":"3323:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:53","nodeType":"YulIdentifier","src":"3308:3:53"},"nativeSrc":"3308:17:53","nodeType":"YulFunctionCall","src":"3308:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:53","nodeType":"YulIdentifier","src":"3261:37:53"},"nativeSrc":"3261:65:53","nodeType":"YulFunctionCall","src":"3261:65:53"},"nativeSrc":"3261:65:53","nodeType":"YulExpressionStatement","src":"3261:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:53","nodeType":"YulTypedName","src":"3187:9:53","type":""},{"name":"value0","nativeSrc":"3199:6:53","nodeType":"YulTypedName","src":"3199:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:53","nodeType":"YulTypedName","src":"3210:4:53","type":""}],"src":"3123:210:53"},{"body":{"nativeSrc":"3404:53:53","nodeType":"YulBlock","src":"3404:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:53","nodeType":"YulIdentifier","src":"3421:3:53"},{"arguments":[{"name":"value","nativeSrc":"3444:5:53","nodeType":"YulIdentifier","src":"3444:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:53","nodeType":"YulIdentifier","src":"3426:17:53"},"nativeSrc":"3426:24:53","nodeType":"YulFunctionCall","src":"3426:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:53","nodeType":"YulIdentifier","src":"3414:6:53"},"nativeSrc":"3414:37:53","nodeType":"YulFunctionCall","src":"3414:37:53"},"nativeSrc":"3414:37:53","nodeType":"YulExpressionStatement","src":"3414:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:53","nodeType":"YulTypedName","src":"3392:5:53","type":""},{"name":"pos","nativeSrc":"3399:3:53","nodeType":"YulTypedName","src":"3399:3:53","type":""}],"src":"3339:118:53"},{"body":{"nativeSrc":"3561:124:53","nodeType":"YulBlock","src":"3561:124:53","statements":[{"nativeSrc":"3571:26:53","nodeType":"YulAssignment","src":"3571:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:53","nodeType":"YulIdentifier","src":"3583:9:53"},{"kind":"number","nativeSrc":"3594:2:53","nodeType":"YulLiteral","src":"3594:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:53","nodeType":"YulIdentifier","src":"3579:3:53"},"nativeSrc":"3579:18:53","nodeType":"YulFunctionCall","src":"3579:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:53","nodeType":"YulIdentifier","src":"3571:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:53","nodeType":"YulIdentifier","src":"3651:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:53","nodeType":"YulIdentifier","src":"3664:9:53"},{"kind":"number","nativeSrc":"3675:1:53","nodeType":"YulLiteral","src":"3675:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:53","nodeType":"YulIdentifier","src":"3660:3:53"},"nativeSrc":"3660:17:53","nodeType":"YulFunctionCall","src":"3660:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:53","nodeType":"YulIdentifier","src":"3607:43:53"},"nativeSrc":"3607:71:53","nodeType":"YulFunctionCall","src":"3607:71:53"},"nativeSrc":"3607:71:53","nodeType":"YulExpressionStatement","src":"3607:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:53","nodeType":"YulTypedName","src":"3533:9:53","type":""},{"name":"value0","nativeSrc":"3545:6:53","nodeType":"YulTypedName","src":"3545:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:53","nodeType":"YulTypedName","src":"3556:4:53","type":""}],"src":"3463:222:53"},{"body":{"nativeSrc":"3791:519:53","nodeType":"YulBlock","src":"3791:519:53","statements":[{"body":{"nativeSrc":"3837:83:53","nodeType":"YulBlock","src":"3837:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:53","nodeType":"YulIdentifier","src":"3839:77:53"},"nativeSrc":"3839:79:53","nodeType":"YulFunctionCall","src":"3839:79:53"},"nativeSrc":"3839:79:53","nodeType":"YulExpressionStatement","src":"3839:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:53","nodeType":"YulIdentifier","src":"3812:7:53"},{"name":"headStart","nativeSrc":"3821:9:53","nodeType":"YulIdentifier","src":"3821:9:53"}],"functionName":{"name":"sub","nativeSrc":"3808:3:53","nodeType":"YulIdentifier","src":"3808:3:53"},"nativeSrc":"3808:23:53","nodeType":"YulFunctionCall","src":"3808:23:53"},{"kind":"number","nativeSrc":"3833:2:53","nodeType":"YulLiteral","src":"3833:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:53","nodeType":"YulIdentifier","src":"3804:3:53"},"nativeSrc":"3804:32:53","nodeType":"YulFunctionCall","src":"3804:32:53"},"nativeSrc":"3801:119:53","nodeType":"YulIf","src":"3801:119:53"},{"nativeSrc":"3930:117:53","nodeType":"YulBlock","src":"3930:117:53","statements":[{"nativeSrc":"3945:15:53","nodeType":"YulVariableDeclaration","src":"3945:15:53","value":{"kind":"number","nativeSrc":"3959:1:53","nodeType":"YulLiteral","src":"3959:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:53","nodeType":"YulTypedName","src":"3949:6:53","type":""}]},{"nativeSrc":"3974:63:53","nodeType":"YulAssignment","src":"3974:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:53","nodeType":"YulIdentifier","src":"4009:9:53"},{"name":"offset","nativeSrc":"4020:6:53","nodeType":"YulIdentifier","src":"4020:6:53"}],"functionName":{"name":"add","nativeSrc":"4005:3:53","nodeType":"YulIdentifier","src":"4005:3:53"},"nativeSrc":"4005:22:53","nodeType":"YulFunctionCall","src":"4005:22:53"},{"name":"dataEnd","nativeSrc":"4029:7:53","nodeType":"YulIdentifier","src":"4029:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:53","nodeType":"YulIdentifier","src":"3984:20:53"},"nativeSrc":"3984:53:53","nodeType":"YulFunctionCall","src":"3984:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:53","nodeType":"YulIdentifier","src":"3974:6:53"}]}]},{"nativeSrc":"4057:118:53","nodeType":"YulBlock","src":"4057:118:53","statements":[{"nativeSrc":"4072:16:53","nodeType":"YulVariableDeclaration","src":"4072:16:53","value":{"kind":"number","nativeSrc":"4086:2:53","nodeType":"YulLiteral","src":"4086:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:53","nodeType":"YulTypedName","src":"4076:6:53","type":""}]},{"nativeSrc":"4102:63:53","nodeType":"YulAssignment","src":"4102:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:53","nodeType":"YulIdentifier","src":"4137:9:53"},{"name":"offset","nativeSrc":"4148:6:53","nodeType":"YulIdentifier","src":"4148:6:53"}],"functionName":{"name":"add","nativeSrc":"4133:3:53","nodeType":"YulIdentifier","src":"4133:3:53"},"nativeSrc":"4133:22:53","nodeType":"YulFunctionCall","src":"4133:22:53"},{"name":"dataEnd","nativeSrc":"4157:7:53","nodeType":"YulIdentifier","src":"4157:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:53","nodeType":"YulIdentifier","src":"4112:20:53"},"nativeSrc":"4112:53:53","nodeType":"YulFunctionCall","src":"4112:53:53"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:53","nodeType":"YulIdentifier","src":"4102:6:53"}]}]},{"nativeSrc":"4185:118:53","nodeType":"YulBlock","src":"4185:118:53","statements":[{"nativeSrc":"4200:16:53","nodeType":"YulVariableDeclaration","src":"4200:16:53","value":{"kind":"number","nativeSrc":"4214:2:53","nodeType":"YulLiteral","src":"4214:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:53","nodeType":"YulTypedName","src":"4204:6:53","type":""}]},{"nativeSrc":"4230:63:53","nodeType":"YulAssignment","src":"4230:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:53","nodeType":"YulIdentifier","src":"4265:9:53"},{"name":"offset","nativeSrc":"4276:6:53","nodeType":"YulIdentifier","src":"4276:6:53"}],"functionName":{"name":"add","nativeSrc":"4261:3:53","nodeType":"YulIdentifier","src":"4261:3:53"},"nativeSrc":"4261:22:53","nodeType":"YulFunctionCall","src":"4261:22:53"},{"name":"dataEnd","nativeSrc":"4285:7:53","nodeType":"YulIdentifier","src":"4285:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:53","nodeType":"YulIdentifier","src":"4240:20:53"},"nativeSrc":"4240:53:53","nodeType":"YulFunctionCall","src":"4240:53:53"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:53","nodeType":"YulIdentifier","src":"4230:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:53","nodeType":"YulTypedName","src":"3745:9:53","type":""},{"name":"dataEnd","nativeSrc":"3756:7:53","nodeType":"YulTypedName","src":"3756:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:53","nodeType":"YulTypedName","src":"3768:6:53","type":""},{"name":"value1","nativeSrc":"3776:6:53","nodeType":"YulTypedName","src":"3776:6:53","type":""},{"name":"value2","nativeSrc":"3784:6:53","nodeType":"YulTypedName","src":"3784:6:53","type":""}],"src":"3691:619:53"},{"body":{"nativeSrc":"4359:43:53","nodeType":"YulBlock","src":"4359:43:53","statements":[{"nativeSrc":"4369:27:53","nodeType":"YulAssignment","src":"4369:27:53","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:53","nodeType":"YulIdentifier","src":"4384:5:53"},{"kind":"number","nativeSrc":"4391:4:53","nodeType":"YulLiteral","src":"4391:4:53","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:53","nodeType":"YulIdentifier","src":"4380:3:53"},"nativeSrc":"4380:16:53","nodeType":"YulFunctionCall","src":"4380:16:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:53","nodeType":"YulIdentifier","src":"4369:7:53"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:53","nodeType":"YulTypedName","src":"4341:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:53","nodeType":"YulTypedName","src":"4351:7:53","type":""}],"src":"4316:86:53"},{"body":{"nativeSrc":"4469:51:53","nodeType":"YulBlock","src":"4469:51:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:53","nodeType":"YulIdentifier","src":"4486:3:53"},{"arguments":[{"name":"value","nativeSrc":"4507:5:53","nodeType":"YulIdentifier","src":"4507:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:53","nodeType":"YulIdentifier","src":"4491:15:53"},"nativeSrc":"4491:22:53","nodeType":"YulFunctionCall","src":"4491:22:53"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:53","nodeType":"YulIdentifier","src":"4479:6:53"},"nativeSrc":"4479:35:53","nodeType":"YulFunctionCall","src":"4479:35:53"},"nativeSrc":"4479:35:53","nodeType":"YulExpressionStatement","src":"4479:35:53"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:53","nodeType":"YulTypedName","src":"4457:5:53","type":""},{"name":"pos","nativeSrc":"4464:3:53","nodeType":"YulTypedName","src":"4464:3:53","type":""}],"src":"4408:112:53"},{"body":{"nativeSrc":"4620:120:53","nodeType":"YulBlock","src":"4620:120:53","statements":[{"nativeSrc":"4630:26:53","nodeType":"YulAssignment","src":"4630:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:53","nodeType":"YulIdentifier","src":"4642:9:53"},{"kind":"number","nativeSrc":"4653:2:53","nodeType":"YulLiteral","src":"4653:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:53","nodeType":"YulIdentifier","src":"4638:3:53"},"nativeSrc":"4638:18:53","nodeType":"YulFunctionCall","src":"4638:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:53","nodeType":"YulIdentifier","src":"4630:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:53","nodeType":"YulIdentifier","src":"4706:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:53","nodeType":"YulIdentifier","src":"4719:9:53"},{"kind":"number","nativeSrc":"4730:1:53","nodeType":"YulLiteral","src":"4730:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:53","nodeType":"YulIdentifier","src":"4715:3:53"},"nativeSrc":"4715:17:53","nodeType":"YulFunctionCall","src":"4715:17:53"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:53","nodeType":"YulIdentifier","src":"4666:39:53"},"nativeSrc":"4666:67:53","nodeType":"YulFunctionCall","src":"4666:67:53"},"nativeSrc":"4666:67:53","nodeType":"YulExpressionStatement","src":"4666:67:53"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:53","nodeType":"YulTypedName","src":"4592:9:53","type":""},{"name":"value0","nativeSrc":"4604:6:53","nodeType":"YulTypedName","src":"4604:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:53","nodeType":"YulTypedName","src":"4615:4:53","type":""}],"src":"4526:214:53"},{"body":{"nativeSrc":"4791:32:53","nodeType":"YulBlock","src":"4791:32:53","statements":[{"nativeSrc":"4801:16:53","nodeType":"YulAssignment","src":"4801:16:53","value":{"name":"value","nativeSrc":"4812:5:53","nodeType":"YulIdentifier","src":"4812:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"4801:7:53","nodeType":"YulIdentifier","src":"4801:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"4746:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4773:5:53","nodeType":"YulTypedName","src":"4773:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4783:7:53","nodeType":"YulTypedName","src":"4783:7:53","type":""}],"src":"4746:77:53"},{"body":{"nativeSrc":"4894:53:53","nodeType":"YulBlock","src":"4894:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4911:3:53","nodeType":"YulIdentifier","src":"4911:3:53"},{"arguments":[{"name":"value","nativeSrc":"4934:5:53","nodeType":"YulIdentifier","src":"4934:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"4916:17:53","nodeType":"YulIdentifier","src":"4916:17:53"},"nativeSrc":"4916:24:53","nodeType":"YulFunctionCall","src":"4916:24:53"}],"functionName":{"name":"mstore","nativeSrc":"4904:6:53","nodeType":"YulIdentifier","src":"4904:6:53"},"nativeSrc":"4904:37:53","nodeType":"YulFunctionCall","src":"4904:37:53"},"nativeSrc":"4904:37:53","nodeType":"YulExpressionStatement","src":"4904:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4829:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4882:5:53","nodeType":"YulTypedName","src":"4882:5:53","type":""},{"name":"pos","nativeSrc":"4889:3:53","nodeType":"YulTypedName","src":"4889:3:53","type":""}],"src":"4829:118:53"},{"body":{"nativeSrc":"5051:124:53","nodeType":"YulBlock","src":"5051:124:53","statements":[{"nativeSrc":"5061:26:53","nodeType":"YulAssignment","src":"5061:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5073:9:53","nodeType":"YulIdentifier","src":"5073:9:53"},{"kind":"number","nativeSrc":"5084:2:53","nodeType":"YulLiteral","src":"5084:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5069:3:53","nodeType":"YulIdentifier","src":"5069:3:53"},"nativeSrc":"5069:18:53","nodeType":"YulFunctionCall","src":"5069:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5061:4:53","nodeType":"YulIdentifier","src":"5061:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5141:6:53","nodeType":"YulIdentifier","src":"5141:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5154:9:53","nodeType":"YulIdentifier","src":"5154:9:53"},{"kind":"number","nativeSrc":"5165:1:53","nodeType":"YulLiteral","src":"5165:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5150:3:53","nodeType":"YulIdentifier","src":"5150:3:53"},"nativeSrc":"5150:17:53","nodeType":"YulFunctionCall","src":"5150:17:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"5097:43:53","nodeType":"YulIdentifier","src":"5097:43:53"},"nativeSrc":"5097:71:53","nodeType":"YulFunctionCall","src":"5097:71:53"},"nativeSrc":"5097:71:53","nodeType":"YulExpressionStatement","src":"5097:71:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"4953:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5023:9:53","nodeType":"YulTypedName","src":"5023:9:53","type":""},{"name":"value0","nativeSrc":"5035:6:53","nodeType":"YulTypedName","src":"5035:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5046:4:53","nodeType":"YulTypedName","src":"5046:4:53","type":""}],"src":"4953:222:53"},{"body":{"nativeSrc":"5247:263:53","nodeType":"YulBlock","src":"5247:263:53","statements":[{"body":{"nativeSrc":"5293:83:53","nodeType":"YulBlock","src":"5293:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5295:77:53","nodeType":"YulIdentifier","src":"5295:77:53"},"nativeSrc":"5295:79:53","nodeType":"YulFunctionCall","src":"5295:79:53"},"nativeSrc":"5295:79:53","nodeType":"YulExpressionStatement","src":"5295:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5268:7:53","nodeType":"YulIdentifier","src":"5268:7:53"},{"name":"headStart","nativeSrc":"5277:9:53","nodeType":"YulIdentifier","src":"5277:9:53"}],"functionName":{"name":"sub","nativeSrc":"5264:3:53","nodeType":"YulIdentifier","src":"5264:3:53"},"nativeSrc":"5264:23:53","nodeType":"YulFunctionCall","src":"5264:23:53"},{"kind":"number","nativeSrc":"5289:2:53","nodeType":"YulLiteral","src":"5289:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5260:3:53","nodeType":"YulIdentifier","src":"5260:3:53"},"nativeSrc":"5260:32:53","nodeType":"YulFunctionCall","src":"5260:32:53"},"nativeSrc":"5257:119:53","nodeType":"YulIf","src":"5257:119:53"},{"nativeSrc":"5386:117:53","nodeType":"YulBlock","src":"5386:117:53","statements":[{"nativeSrc":"5401:15:53","nodeType":"YulVariableDeclaration","src":"5401:15:53","value":{"kind":"number","nativeSrc":"5415:1:53","nodeType":"YulLiteral","src":"5415:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5405:6:53","nodeType":"YulTypedName","src":"5405:6:53","type":""}]},{"nativeSrc":"5430:63:53","nodeType":"YulAssignment","src":"5430:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5465:9:53","nodeType":"YulIdentifier","src":"5465:9:53"},{"name":"offset","nativeSrc":"5476:6:53","nodeType":"YulIdentifier","src":"5476:6:53"}],"functionName":{"name":"add","nativeSrc":"5461:3:53","nodeType":"YulIdentifier","src":"5461:3:53"},"nativeSrc":"5461:22:53","nodeType":"YulFunctionCall","src":"5461:22:53"},{"name":"dataEnd","nativeSrc":"5485:7:53","nodeType":"YulIdentifier","src":"5485:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5440:20:53","nodeType":"YulIdentifier","src":"5440:20:53"},"nativeSrc":"5440:53:53","nodeType":"YulFunctionCall","src":"5440:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5430:6:53","nodeType":"YulIdentifier","src":"5430:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5181:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5217:9:53","nodeType":"YulTypedName","src":"5217:9:53","type":""},{"name":"dataEnd","nativeSrc":"5228:7:53","nodeType":"YulTypedName","src":"5228:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5240:6:53","nodeType":"YulTypedName","src":"5240:6:53","type":""}],"src":"5181:329:53"},{"body":{"nativeSrc":"5557:77:53","nodeType":"YulBlock","src":"5557:77:53","statements":[{"body":{"nativeSrc":"5612:16:53","nodeType":"YulBlock","src":"5612:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5621:1:53","nodeType":"YulLiteral","src":"5621:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5624:1:53","nodeType":"YulLiteral","src":"5624:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5614:6:53","nodeType":"YulIdentifier","src":"5614:6:53"},"nativeSrc":"5614:12:53","nodeType":"YulFunctionCall","src":"5614:12:53"},"nativeSrc":"5614:12:53","nodeType":"YulExpressionStatement","src":"5614:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5580:5:53","nodeType":"YulIdentifier","src":"5580:5:53"},{"arguments":[{"name":"value","nativeSrc":"5603:5:53","nodeType":"YulIdentifier","src":"5603:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"5587:15:53","nodeType":"YulIdentifier","src":"5587:15:53"},"nativeSrc":"5587:22:53","nodeType":"YulFunctionCall","src":"5587:22:53"}],"functionName":{"name":"eq","nativeSrc":"5577:2:53","nodeType":"YulIdentifier","src":"5577:2:53"},"nativeSrc":"5577:33:53","nodeType":"YulFunctionCall","src":"5577:33:53"}],"functionName":{"name":"iszero","nativeSrc":"5570:6:53","nodeType":"YulIdentifier","src":"5570:6:53"},"nativeSrc":"5570:41:53","nodeType":"YulFunctionCall","src":"5570:41:53"},"nativeSrc":"5567:61:53","nodeType":"YulIf","src":"5567:61:53"}]},"name":"validator_revert_t_uint8","nativeSrc":"5516:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5550:5:53","nodeType":"YulTypedName","src":"5550:5:53","type":""}],"src":"5516:118:53"},{"body":{"nativeSrc":"5690:85:53","nodeType":"YulBlock","src":"5690:85:53","statements":[{"nativeSrc":"5700:29:53","nodeType":"YulAssignment","src":"5700:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5722:6:53","nodeType":"YulIdentifier","src":"5722:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5709:12:53","nodeType":"YulIdentifier","src":"5709:12:53"},"nativeSrc":"5709:20:53","nodeType":"YulFunctionCall","src":"5709:20:53"},"variableNames":[{"name":"value","nativeSrc":"5700:5:53","nodeType":"YulIdentifier","src":"5700:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5763:5:53","nodeType":"YulIdentifier","src":"5763:5:53"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"5738:24:53","nodeType":"YulIdentifier","src":"5738:24:53"},"nativeSrc":"5738:31:53","nodeType":"YulFunctionCall","src":"5738:31:53"},"nativeSrc":"5738:31:53","nodeType":"YulExpressionStatement","src":"5738:31:53"}]},"name":"abi_decode_t_uint8","nativeSrc":"5640:135:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5668:6:53","nodeType":"YulTypedName","src":"5668:6:53","type":""},{"name":"end","nativeSrc":"5676:3:53","nodeType":"YulTypedName","src":"5676:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5684:5:53","nodeType":"YulTypedName","src":"5684:5:53","type":""}],"src":"5640:135:53"},{"body":{"nativeSrc":"5824:79:53","nodeType":"YulBlock","src":"5824:79:53","statements":[{"body":{"nativeSrc":"5881:16:53","nodeType":"YulBlock","src":"5881:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5890:1:53","nodeType":"YulLiteral","src":"5890:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5893:1:53","nodeType":"YulLiteral","src":"5893:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5883:6:53","nodeType":"YulIdentifier","src":"5883:6:53"},"nativeSrc":"5883:12:53","nodeType":"YulFunctionCall","src":"5883:12:53"},"nativeSrc":"5883:12:53","nodeType":"YulExpressionStatement","src":"5883:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5847:5:53","nodeType":"YulIdentifier","src":"5847:5:53"},{"arguments":[{"name":"value","nativeSrc":"5872:5:53","nodeType":"YulIdentifier","src":"5872:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"5854:17:53","nodeType":"YulIdentifier","src":"5854:17:53"},"nativeSrc":"5854:24:53","nodeType":"YulFunctionCall","src":"5854:24:53"}],"functionName":{"name":"eq","nativeSrc":"5844:2:53","nodeType":"YulIdentifier","src":"5844:2:53"},"nativeSrc":"5844:35:53","nodeType":"YulFunctionCall","src":"5844:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5837:6:53","nodeType":"YulIdentifier","src":"5837:6:53"},"nativeSrc":"5837:43:53","nodeType":"YulFunctionCall","src":"5837:43:53"},"nativeSrc":"5834:63:53","nodeType":"YulIf","src":"5834:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"5781:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5817:5:53","nodeType":"YulTypedName","src":"5817:5:53","type":""}],"src":"5781:122:53"},{"body":{"nativeSrc":"5961:87:53","nodeType":"YulBlock","src":"5961:87:53","statements":[{"nativeSrc":"5971:29:53","nodeType":"YulAssignment","src":"5971:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5993:6:53","nodeType":"YulIdentifier","src":"5993:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5980:12:53","nodeType":"YulIdentifier","src":"5980:12:53"},"nativeSrc":"5980:20:53","nodeType":"YulFunctionCall","src":"5980:20:53"},"variableNames":[{"name":"value","nativeSrc":"5971:5:53","nodeType":"YulIdentifier","src":"5971:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6036:5:53","nodeType":"YulIdentifier","src":"6036:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"6009:26:53","nodeType":"YulIdentifier","src":"6009:26:53"},"nativeSrc":"6009:33:53","nodeType":"YulFunctionCall","src":"6009:33:53"},"nativeSrc":"6009:33:53","nodeType":"YulExpressionStatement","src":"6009:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"5909:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5939:6:53","nodeType":"YulTypedName","src":"5939:6:53","type":""},{"name":"end","nativeSrc":"5947:3:53","nodeType":"YulTypedName","src":"5947:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5955:5:53","nodeType":"YulTypedName","src":"5955:5:53","type":""}],"src":"5909:139:53"},{"body":{"nativeSrc":"6220:1033:53","nodeType":"YulBlock","src":"6220:1033:53","statements":[{"body":{"nativeSrc":"6267:83:53","nodeType":"YulBlock","src":"6267:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6269:77:53","nodeType":"YulIdentifier","src":"6269:77:53"},"nativeSrc":"6269:79:53","nodeType":"YulFunctionCall","src":"6269:79:53"},"nativeSrc":"6269:79:53","nodeType":"YulExpressionStatement","src":"6269:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6241:7:53","nodeType":"YulIdentifier","src":"6241:7:53"},{"name":"headStart","nativeSrc":"6250:9:53","nodeType":"YulIdentifier","src":"6250:9:53"}],"functionName":{"name":"sub","nativeSrc":"6237:3:53","nodeType":"YulIdentifier","src":"6237:3:53"},"nativeSrc":"6237:23:53","nodeType":"YulFunctionCall","src":"6237:23:53"},{"kind":"number","nativeSrc":"6262:3:53","nodeType":"YulLiteral","src":"6262:3:53","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"6233:3:53","nodeType":"YulIdentifier","src":"6233:3:53"},"nativeSrc":"6233:33:53","nodeType":"YulFunctionCall","src":"6233:33:53"},"nativeSrc":"6230:120:53","nodeType":"YulIf","src":"6230:120:53"},{"nativeSrc":"6360:117:53","nodeType":"YulBlock","src":"6360:117:53","statements":[{"nativeSrc":"6375:15:53","nodeType":"YulVariableDeclaration","src":"6375:15:53","value":{"kind":"number","nativeSrc":"6389:1:53","nodeType":"YulLiteral","src":"6389:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6379:6:53","nodeType":"YulTypedName","src":"6379:6:53","type":""}]},{"nativeSrc":"6404:63:53","nodeType":"YulAssignment","src":"6404:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6439:9:53","nodeType":"YulIdentifier","src":"6439:9:53"},{"name":"offset","nativeSrc":"6450:6:53","nodeType":"YulIdentifier","src":"6450:6:53"}],"functionName":{"name":"add","nativeSrc":"6435:3:53","nodeType":"YulIdentifier","src":"6435:3:53"},"nativeSrc":"6435:22:53","nodeType":"YulFunctionCall","src":"6435:22:53"},{"name":"dataEnd","nativeSrc":"6459:7:53","nodeType":"YulIdentifier","src":"6459:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6414:20:53","nodeType":"YulIdentifier","src":"6414:20:53"},"nativeSrc":"6414:53:53","nodeType":"YulFunctionCall","src":"6414:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6404:6:53","nodeType":"YulIdentifier","src":"6404:6:53"}]}]},{"nativeSrc":"6487:118:53","nodeType":"YulBlock","src":"6487:118:53","statements":[{"nativeSrc":"6502:16:53","nodeType":"YulVariableDeclaration","src":"6502:16:53","value":{"kind":"number","nativeSrc":"6516:2:53","nodeType":"YulLiteral","src":"6516:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6506:6:53","nodeType":"YulTypedName","src":"6506:6:53","type":""}]},{"nativeSrc":"6532:63:53","nodeType":"YulAssignment","src":"6532:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6567:9:53","nodeType":"YulIdentifier","src":"6567:9:53"},{"name":"offset","nativeSrc":"6578:6:53","nodeType":"YulIdentifier","src":"6578:6:53"}],"functionName":{"name":"add","nativeSrc":"6563:3:53","nodeType":"YulIdentifier","src":"6563:3:53"},"nativeSrc":"6563:22:53","nodeType":"YulFunctionCall","src":"6563:22:53"},{"name":"dataEnd","nativeSrc":"6587:7:53","nodeType":"YulIdentifier","src":"6587:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6542:20:53","nodeType":"YulIdentifier","src":"6542:20:53"},"nativeSrc":"6542:53:53","nodeType":"YulFunctionCall","src":"6542:53:53"},"variableNames":[{"name":"value1","nativeSrc":"6532:6:53","nodeType":"YulIdentifier","src":"6532:6:53"}]}]},{"nativeSrc":"6615:118:53","nodeType":"YulBlock","src":"6615:118:53","statements":[{"nativeSrc":"6630:16:53","nodeType":"YulVariableDeclaration","src":"6630:16:53","value":{"kind":"number","nativeSrc":"6644:2:53","nodeType":"YulLiteral","src":"6644:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"6634:6:53","nodeType":"YulTypedName","src":"6634:6:53","type":""}]},{"nativeSrc":"6660:63:53","nodeType":"YulAssignment","src":"6660:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6695:9:53","nodeType":"YulIdentifier","src":"6695:9:53"},{"name":"offset","nativeSrc":"6706:6:53","nodeType":"YulIdentifier","src":"6706:6:53"}],"functionName":{"name":"add","nativeSrc":"6691:3:53","nodeType":"YulIdentifier","src":"6691:3:53"},"nativeSrc":"6691:22:53","nodeType":"YulFunctionCall","src":"6691:22:53"},{"name":"dataEnd","nativeSrc":"6715:7:53","nodeType":"YulIdentifier","src":"6715:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6670:20:53","nodeType":"YulIdentifier","src":"6670:20:53"},"nativeSrc":"6670:53:53","nodeType":"YulFunctionCall","src":"6670:53:53"},"variableNames":[{"name":"value2","nativeSrc":"6660:6:53","nodeType":"YulIdentifier","src":"6660:6:53"}]}]},{"nativeSrc":"6743:118:53","nodeType":"YulBlock","src":"6743:118:53","statements":[{"nativeSrc":"6758:16:53","nodeType":"YulVariableDeclaration","src":"6758:16:53","value":{"kind":"number","nativeSrc":"6772:2:53","nodeType":"YulLiteral","src":"6772:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"6762:6:53","nodeType":"YulTypedName","src":"6762:6:53","type":""}]},{"nativeSrc":"6788:63:53","nodeType":"YulAssignment","src":"6788:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6823:9:53","nodeType":"YulIdentifier","src":"6823:9:53"},{"name":"offset","nativeSrc":"6834:6:53","nodeType":"YulIdentifier","src":"6834:6:53"}],"functionName":{"name":"add","nativeSrc":"6819:3:53","nodeType":"YulIdentifier","src":"6819:3:53"},"nativeSrc":"6819:22:53","nodeType":"YulFunctionCall","src":"6819:22:53"},{"name":"dataEnd","nativeSrc":"6843:7:53","nodeType":"YulIdentifier","src":"6843:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6798:20:53","nodeType":"YulIdentifier","src":"6798:20:53"},"nativeSrc":"6798:53:53","nodeType":"YulFunctionCall","src":"6798:53:53"},"variableNames":[{"name":"value3","nativeSrc":"6788:6:53","nodeType":"YulIdentifier","src":"6788:6:53"}]}]},{"nativeSrc":"6871:117:53","nodeType":"YulBlock","src":"6871:117:53","statements":[{"nativeSrc":"6886:17:53","nodeType":"YulVariableDeclaration","src":"6886:17:53","value":{"kind":"number","nativeSrc":"6900:3:53","nodeType":"YulLiteral","src":"6900:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"6890:6:53","nodeType":"YulTypedName","src":"6890:6:53","type":""}]},{"nativeSrc":"6917:61:53","nodeType":"YulAssignment","src":"6917:61:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6950:9:53","nodeType":"YulIdentifier","src":"6950:9:53"},{"name":"offset","nativeSrc":"6961:6:53","nodeType":"YulIdentifier","src":"6961:6:53"}],"functionName":{"name":"add","nativeSrc":"6946:3:53","nodeType":"YulIdentifier","src":"6946:3:53"},"nativeSrc":"6946:22:53","nodeType":"YulFunctionCall","src":"6946:22:53"},{"name":"dataEnd","nativeSrc":"6970:7:53","nodeType":"YulIdentifier","src":"6970:7:53"}],"functionName":{"name":"abi_decode_t_uint8","nativeSrc":"6927:18:53","nodeType":"YulIdentifier","src":"6927:18:53"},"nativeSrc":"6927:51:53","nodeType":"YulFunctionCall","src":"6927:51:53"},"variableNames":[{"name":"value4","nativeSrc":"6917:6:53","nodeType":"YulIdentifier","src":"6917:6:53"}]}]},{"nativeSrc":"6998:119:53","nodeType":"YulBlock","src":"6998:119:53","statements":[{"nativeSrc":"7013:17:53","nodeType":"YulVariableDeclaration","src":"7013:17:53","value":{"kind":"number","nativeSrc":"7027:3:53","nodeType":"YulLiteral","src":"7027:3:53","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"7017:6:53","nodeType":"YulTypedName","src":"7017:6:53","type":""}]},{"nativeSrc":"7044:63:53","nodeType":"YulAssignment","src":"7044:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7079:9:53","nodeType":"YulIdentifier","src":"7079:9:53"},{"name":"offset","nativeSrc":"7090:6:53","nodeType":"YulIdentifier","src":"7090:6:53"}],"functionName":{"name":"add","nativeSrc":"7075:3:53","nodeType":"YulIdentifier","src":"7075:3:53"},"nativeSrc":"7075:22:53","nodeType":"YulFunctionCall","src":"7075:22:53"},{"name":"dataEnd","nativeSrc":"7099:7:53","nodeType":"YulIdentifier","src":"7099:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7054:20:53","nodeType":"YulIdentifier","src":"7054:20:53"},"nativeSrc":"7054:53:53","nodeType":"YulFunctionCall","src":"7054:53:53"},"variableNames":[{"name":"value5","nativeSrc":"7044:6:53","nodeType":"YulIdentifier","src":"7044:6:53"}]}]},{"nativeSrc":"7127:119:53","nodeType":"YulBlock","src":"7127:119:53","statements":[{"nativeSrc":"7142:17:53","nodeType":"YulVariableDeclaration","src":"7142:17:53","value":{"kind":"number","nativeSrc":"7156:3:53","nodeType":"YulLiteral","src":"7156:3:53","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"7146:6:53","nodeType":"YulTypedName","src":"7146:6:53","type":""}]},{"nativeSrc":"7173:63:53","nodeType":"YulAssignment","src":"7173:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7208:9:53","nodeType":"YulIdentifier","src":"7208:9:53"},{"name":"offset","nativeSrc":"7219:6:53","nodeType":"YulIdentifier","src":"7219:6:53"}],"functionName":{"name":"add","nativeSrc":"7204:3:53","nodeType":"YulIdentifier","src":"7204:3:53"},"nativeSrc":"7204:22:53","nodeType":"YulFunctionCall","src":"7204:22:53"},{"name":"dataEnd","nativeSrc":"7228:7:53","nodeType":"YulIdentifier","src":"7228:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7183:20:53","nodeType":"YulIdentifier","src":"7183:20:53"},"nativeSrc":"7183:53:53","nodeType":"YulFunctionCall","src":"7183:53:53"},"variableNames":[{"name":"value6","nativeSrc":"7173:6:53","nodeType":"YulIdentifier","src":"7173:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nativeSrc":"6054:1199:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6142:9:53","nodeType":"YulTypedName","src":"6142:9:53","type":""},{"name":"dataEnd","nativeSrc":"6153:7:53","nodeType":"YulTypedName","src":"6153:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6165:6:53","nodeType":"YulTypedName","src":"6165:6:53","type":""},{"name":"value1","nativeSrc":"6173:6:53","nodeType":"YulTypedName","src":"6173:6:53","type":""},{"name":"value2","nativeSrc":"6181:6:53","nodeType":"YulTypedName","src":"6181:6:53","type":""},{"name":"value3","nativeSrc":"6189:6:53","nodeType":"YulTypedName","src":"6189:6:53","type":""},{"name":"value4","nativeSrc":"6197:6:53","nodeType":"YulTypedName","src":"6197:6:53","type":""},{"name":"value5","nativeSrc":"6205:6:53","nodeType":"YulTypedName","src":"6205:6:53","type":""},{"name":"value6","nativeSrc":"6213:6:53","nodeType":"YulTypedName","src":"6213:6:53","type":""}],"src":"6054:1199:53"},{"body":{"nativeSrc":"7342:391:53","nodeType":"YulBlock","src":"7342:391:53","statements":[{"body":{"nativeSrc":"7388:83:53","nodeType":"YulBlock","src":"7388:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7390:77:53","nodeType":"YulIdentifier","src":"7390:77:53"},"nativeSrc":"7390:79:53","nodeType":"YulFunctionCall","src":"7390:79:53"},"nativeSrc":"7390:79:53","nodeType":"YulExpressionStatement","src":"7390:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7363:7:53","nodeType":"YulIdentifier","src":"7363:7:53"},{"name":"headStart","nativeSrc":"7372:9:53","nodeType":"YulIdentifier","src":"7372:9:53"}],"functionName":{"name":"sub","nativeSrc":"7359:3:53","nodeType":"YulIdentifier","src":"7359:3:53"},"nativeSrc":"7359:23:53","nodeType":"YulFunctionCall","src":"7359:23:53"},{"kind":"number","nativeSrc":"7384:2:53","nodeType":"YulLiteral","src":"7384:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7355:3:53","nodeType":"YulIdentifier","src":"7355:3:53"},"nativeSrc":"7355:32:53","nodeType":"YulFunctionCall","src":"7355:32:53"},"nativeSrc":"7352:119:53","nodeType":"YulIf","src":"7352:119:53"},{"nativeSrc":"7481:117:53","nodeType":"YulBlock","src":"7481:117:53","statements":[{"nativeSrc":"7496:15:53","nodeType":"YulVariableDeclaration","src":"7496:15:53","value":{"kind":"number","nativeSrc":"7510:1:53","nodeType":"YulLiteral","src":"7510:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7500:6:53","nodeType":"YulTypedName","src":"7500:6:53","type":""}]},{"nativeSrc":"7525:63:53","nodeType":"YulAssignment","src":"7525:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7560:9:53","nodeType":"YulIdentifier","src":"7560:9:53"},{"name":"offset","nativeSrc":"7571:6:53","nodeType":"YulIdentifier","src":"7571:6:53"}],"functionName":{"name":"add","nativeSrc":"7556:3:53","nodeType":"YulIdentifier","src":"7556:3:53"},"nativeSrc":"7556:22:53","nodeType":"YulFunctionCall","src":"7556:22:53"},{"name":"dataEnd","nativeSrc":"7580:7:53","nodeType":"YulIdentifier","src":"7580:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7535:20:53","nodeType":"YulIdentifier","src":"7535:20:53"},"nativeSrc":"7535:53:53","nodeType":"YulFunctionCall","src":"7535:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7525:6:53","nodeType":"YulIdentifier","src":"7525:6:53"}]}]},{"nativeSrc":"7608:118:53","nodeType":"YulBlock","src":"7608:118:53","statements":[{"nativeSrc":"7623:16:53","nodeType":"YulVariableDeclaration","src":"7623:16:53","value":{"kind":"number","nativeSrc":"7637:2:53","nodeType":"YulLiteral","src":"7637:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7627:6:53","nodeType":"YulTypedName","src":"7627:6:53","type":""}]},{"nativeSrc":"7653:63:53","nodeType":"YulAssignment","src":"7653:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:53","nodeType":"YulIdentifier","src":"7688:9:53"},{"name":"offset","nativeSrc":"7699:6:53","nodeType":"YulIdentifier","src":"7699:6:53"}],"functionName":{"name":"add","nativeSrc":"7684:3:53","nodeType":"YulIdentifier","src":"7684:3:53"},"nativeSrc":"7684:22:53","nodeType":"YulFunctionCall","src":"7684:22:53"},{"name":"dataEnd","nativeSrc":"7708:7:53","nodeType":"YulIdentifier","src":"7708:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7663:20:53","nodeType":"YulIdentifier","src":"7663:20:53"},"nativeSrc":"7663:53:53","nodeType":"YulFunctionCall","src":"7663:53:53"},"variableNames":[{"name":"value1","nativeSrc":"7653:6:53","nodeType":"YulIdentifier","src":"7653:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"7259:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7304:9:53","nodeType":"YulTypedName","src":"7304:9:53","type":""},{"name":"dataEnd","nativeSrc":"7315:7:53","nodeType":"YulTypedName","src":"7315:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7327:6:53","nodeType":"YulTypedName","src":"7327:6:53","type":""},{"name":"value1","nativeSrc":"7335:6:53","nodeType":"YulTypedName","src":"7335:6:53","type":""}],"src":"7259:474:53"},{"body":{"nativeSrc":"7767:152:53","nodeType":"YulBlock","src":"7767:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7784:1:53","nodeType":"YulLiteral","src":"7784:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7787:77:53","nodeType":"YulLiteral","src":"7787:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7777:6:53","nodeType":"YulIdentifier","src":"7777:6:53"},"nativeSrc":"7777:88:53","nodeType":"YulFunctionCall","src":"7777:88:53"},"nativeSrc":"7777:88:53","nodeType":"YulExpressionStatement","src":"7777:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7881:1:53","nodeType":"YulLiteral","src":"7881:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7884:4:53","nodeType":"YulLiteral","src":"7884:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7874:6:53","nodeType":"YulIdentifier","src":"7874:6:53"},"nativeSrc":"7874:15:53","nodeType":"YulFunctionCall","src":"7874:15:53"},"nativeSrc":"7874:15:53","nodeType":"YulExpressionStatement","src":"7874:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7905:1:53","nodeType":"YulLiteral","src":"7905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7908:4:53","nodeType":"YulLiteral","src":"7908:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7898:6:53","nodeType":"YulIdentifier","src":"7898:6:53"},"nativeSrc":"7898:15:53","nodeType":"YulFunctionCall","src":"7898:15:53"},"nativeSrc":"7898:15:53","nodeType":"YulExpressionStatement","src":"7898:15:53"}]},"name":"panic_error_0x12","nativeSrc":"7739:180:53","nodeType":"YulFunctionDefinition","src":"7739:180:53"},{"body":{"nativeSrc":"7953:152:53","nodeType":"YulBlock","src":"7953:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7970:1:53","nodeType":"YulLiteral","src":"7970:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7973:77:53","nodeType":"YulLiteral","src":"7973:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7963:6:53","nodeType":"YulIdentifier","src":"7963:6:53"},"nativeSrc":"7963:88:53","nodeType":"YulFunctionCall","src":"7963:88:53"},"nativeSrc":"7963:88:53","nodeType":"YulExpressionStatement","src":"7963:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8067:1:53","nodeType":"YulLiteral","src":"8067:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"8070:4:53","nodeType":"YulLiteral","src":"8070:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8060:6:53","nodeType":"YulIdentifier","src":"8060:6:53"},"nativeSrc":"8060:15:53","nodeType":"YulFunctionCall","src":"8060:15:53"},"nativeSrc":"8060:15:53","nodeType":"YulExpressionStatement","src":"8060:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8091:1:53","nodeType":"YulLiteral","src":"8091:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8094:4:53","nodeType":"YulLiteral","src":"8094:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8084:6:53","nodeType":"YulIdentifier","src":"8084:6:53"},"nativeSrc":"8084:15:53","nodeType":"YulFunctionCall","src":"8084:15:53"},"nativeSrc":"8084:15:53","nodeType":"YulExpressionStatement","src":"8084:15:53"}]},"name":"panic_error_0x11","nativeSrc":"7925:180:53","nodeType":"YulFunctionDefinition","src":"7925:180:53"},{"body":{"nativeSrc":"8153:143:53","nodeType":"YulBlock","src":"8153:143:53","statements":[{"nativeSrc":"8163:25:53","nodeType":"YulAssignment","src":"8163:25:53","value":{"arguments":[{"name":"x","nativeSrc":"8186:1:53","nodeType":"YulIdentifier","src":"8186:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8168:17:53","nodeType":"YulIdentifier","src":"8168:17:53"},"nativeSrc":"8168:20:53","nodeType":"YulFunctionCall","src":"8168:20:53"},"variableNames":[{"name":"x","nativeSrc":"8163:1:53","nodeType":"YulIdentifier","src":"8163:1:53"}]},{"nativeSrc":"8197:25:53","nodeType":"YulAssignment","src":"8197:25:53","value":{"arguments":[{"name":"y","nativeSrc":"8220:1:53","nodeType":"YulIdentifier","src":"8220:1:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8202:17:53","nodeType":"YulIdentifier","src":"8202:17:53"},"nativeSrc":"8202:20:53","nodeType":"YulFunctionCall","src":"8202:20:53"},"variableNames":[{"name":"y","nativeSrc":"8197:1:53","nodeType":"YulIdentifier","src":"8197:1:53"}]},{"body":{"nativeSrc":"8244:22:53","nodeType":"YulBlock","src":"8244:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8246:16:53","nodeType":"YulIdentifier","src":"8246:16:53"},"nativeSrc":"8246:18:53","nodeType":"YulFunctionCall","src":"8246:18:53"},"nativeSrc":"8246:18:53","nodeType":"YulExpressionStatement","src":"8246:18:53"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8241:1:53","nodeType":"YulIdentifier","src":"8241:1:53"}],"functionName":{"name":"iszero","nativeSrc":"8234:6:53","nodeType":"YulIdentifier","src":"8234:6:53"},"nativeSrc":"8234:9:53","nodeType":"YulFunctionCall","src":"8234:9:53"},"nativeSrc":"8231:35:53","nodeType":"YulIf","src":"8231:35:53"},{"nativeSrc":"8276:14:53","nodeType":"YulAssignment","src":"8276:14:53","value":{"arguments":[{"name":"x","nativeSrc":"8285:1:53","nodeType":"YulIdentifier","src":"8285:1:53"},{"name":"y","nativeSrc":"8288:1:53","nodeType":"YulIdentifier","src":"8288:1:53"}],"functionName":{"name":"div","nativeSrc":"8281:3:53","nodeType":"YulIdentifier","src":"8281:3:53"},"nativeSrc":"8281:9:53","nodeType":"YulFunctionCall","src":"8281:9:53"},"variableNames":[{"name":"r","nativeSrc":"8276:1:53","nodeType":"YulIdentifier","src":"8276:1:53"}]}]},"name":"checked_div_t_uint256","nativeSrc":"8111:185:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8142:1:53","nodeType":"YulTypedName","src":"8142:1:53","type":""},{"name":"y","nativeSrc":"8145:1:53","nodeType":"YulTypedName","src":"8145:1:53","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8151:1:53","nodeType":"YulTypedName","src":"8151:1:53","type":""}],"src":"8111:185:53"},{"body":{"nativeSrc":"8408:72:53","nodeType":"YulBlock","src":"8408:72:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8430:6:53","nodeType":"YulIdentifier","src":"8430:6:53"},{"kind":"number","nativeSrc":"8438:1:53","nodeType":"YulLiteral","src":"8438:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8426:3:53","nodeType":"YulIdentifier","src":"8426:3:53"},"nativeSrc":"8426:14:53","nodeType":"YulFunctionCall","src":"8426:14:53"},{"hexValue":"4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921","kind":"string","nativeSrc":"8442:30:53","nodeType":"YulLiteral","src":"8442:30:53","type":"","value":"MockERC20: gimme more money!"}],"functionName":{"name":"mstore","nativeSrc":"8419:6:53","nodeType":"YulIdentifier","src":"8419:6:53"},"nativeSrc":"8419:54:53","nodeType":"YulFunctionCall","src":"8419:54:53"},"nativeSrc":"8419:54:53","nodeType":"YulExpressionStatement","src":"8419:54:53"}]},"name":"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","nativeSrc":"8302:178:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8400:6:53","nodeType":"YulTypedName","src":"8400:6:53","type":""}],"src":"8302:178:53"},{"body":{"nativeSrc":"8632:220:53","nodeType":"YulBlock","src":"8632:220:53","statements":[{"nativeSrc":"8642:74:53","nodeType":"YulAssignment","src":"8642:74:53","value":{"arguments":[{"name":"pos","nativeSrc":"8708:3:53","nodeType":"YulIdentifier","src":"8708:3:53"},{"kind":"number","nativeSrc":"8713:2:53","nodeType":"YulLiteral","src":"8713:2:53","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8649:58:53","nodeType":"YulIdentifier","src":"8649:58:53"},"nativeSrc":"8649:67:53","nodeType":"YulFunctionCall","src":"8649:67:53"},"variableNames":[{"name":"pos","nativeSrc":"8642:3:53","nodeType":"YulIdentifier","src":"8642:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8814:3:53","nodeType":"YulIdentifier","src":"8814:3:53"}],"functionName":{"name":"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","nativeSrc":"8725:88:53","nodeType":"YulIdentifier","src":"8725:88:53"},"nativeSrc":"8725:93:53","nodeType":"YulFunctionCall","src":"8725:93:53"},"nativeSrc":"8725:93:53","nodeType":"YulExpressionStatement","src":"8725:93:53"},{"nativeSrc":"8827:19:53","nodeType":"YulAssignment","src":"8827:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"8838:3:53","nodeType":"YulIdentifier","src":"8838:3:53"},{"kind":"number","nativeSrc":"8843:2:53","nodeType":"YulLiteral","src":"8843:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8834:3:53","nodeType":"YulIdentifier","src":"8834:3:53"},"nativeSrc":"8834:12:53","nodeType":"YulFunctionCall","src":"8834:12:53"},"variableNames":[{"name":"end","nativeSrc":"8827:3:53","nodeType":"YulIdentifier","src":"8827:3:53"}]}]},"name":"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack","nativeSrc":"8486:366:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8620:3:53","nodeType":"YulTypedName","src":"8620:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8628:3:53","nodeType":"YulTypedName","src":"8628:3:53","type":""}],"src":"8486:366:53"},{"body":{"nativeSrc":"9029:248:53","nodeType":"YulBlock","src":"9029:248:53","statements":[{"nativeSrc":"9039:26:53","nodeType":"YulAssignment","src":"9039:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9051:9:53","nodeType":"YulIdentifier","src":"9051:9:53"},{"kind":"number","nativeSrc":"9062:2:53","nodeType":"YulLiteral","src":"9062:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9047:3:53","nodeType":"YulIdentifier","src":"9047:3:53"},"nativeSrc":"9047:18:53","nodeType":"YulFunctionCall","src":"9047:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9039:4:53","nodeType":"YulIdentifier","src":"9039:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9086:9:53","nodeType":"YulIdentifier","src":"9086:9:53"},{"kind":"number","nativeSrc":"9097:1:53","nodeType":"YulLiteral","src":"9097:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9082:3:53","nodeType":"YulIdentifier","src":"9082:3:53"},"nativeSrc":"9082:17:53","nodeType":"YulFunctionCall","src":"9082:17:53"},{"arguments":[{"name":"tail","nativeSrc":"9105:4:53","nodeType":"YulIdentifier","src":"9105:4:53"},{"name":"headStart","nativeSrc":"9111:9:53","nodeType":"YulIdentifier","src":"9111:9:53"}],"functionName":{"name":"sub","nativeSrc":"9101:3:53","nodeType":"YulIdentifier","src":"9101:3:53"},"nativeSrc":"9101:20:53","nodeType":"YulFunctionCall","src":"9101:20:53"}],"functionName":{"name":"mstore","nativeSrc":"9075:6:53","nodeType":"YulIdentifier","src":"9075:6:53"},"nativeSrc":"9075:47:53","nodeType":"YulFunctionCall","src":"9075:47:53"},"nativeSrc":"9075:47:53","nodeType":"YulExpressionStatement","src":"9075:47:53"},{"nativeSrc":"9131:139:53","nodeType":"YulAssignment","src":"9131:139:53","value":{"arguments":[{"name":"tail","nativeSrc":"9265:4:53","nodeType":"YulIdentifier","src":"9265:4:53"}],"functionName":{"name":"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack","nativeSrc":"9139:124:53","nodeType":"YulIdentifier","src":"9139:124:53"},"nativeSrc":"9139:131:53","nodeType":"YulFunctionCall","src":"9139:131:53"},"variableNames":[{"name":"tail","nativeSrc":"9131:4:53","nodeType":"YulIdentifier","src":"9131:4:53"}]}]},"name":"abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8858:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9009:9:53","nodeType":"YulTypedName","src":"9009:9:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9024:4:53","nodeType":"YulTypedName","src":"9024:4:53","type":""}],"src":"8858:419:53"}]},"contents":"{\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 mcopy(dst, src, length)\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 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 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_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(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_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { 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 := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417(memPtr) {\n\n mstore(add(memPtr, 0), \"MockERC20: gimme more money!\")\n\n }\n\n function abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__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_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100dc575f3560e01c806340c10f191161007e57806395d89b411161005857806395d89b41146102bc578063a9059cbb146102e6578063d505accf14610322578063dd62ed3e1461034a576100dc565b806340c10f191461021c57806370a08231146102445780637ecebe0014610280576100dc565b806318160ddd116100ba57806318160ddd1461016257806323b872dd1461018c578063313ce567146101c85780633644e515146101f2576100dc565b806306fdde03146100e0578063095ea7b31461010a57806317d304b014610146575b5f80fd5b3480156100eb575f80fd5b506100f4610386565b60405161010191906109bf565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190610a70565b6103c3565b60405161013d9190610ac8565b60405180910390f35b610160600480360381019061015b9190610a70565b610413565b005b34801561016d575f80fd5b50610176610470565b6040516101839190610af0565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad9190610b09565b610481565b6040516101bf9190610ac8565b60405180910390f35b3480156101d3575f80fd5b506101dc610552565b6040516101e99190610b74565b60405180910390f35b3480156101fd575f80fd5b5061020661055a565b6040516102139190610ba5565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d9190610a70565b6105ea565b005b34801561024f575f80fd5b5061026a60048036038101906102659190610bbe565b6105f8565b6040516102779190610af0565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190610bbe565b610611565b6040516102b39190610af0565b60405180910390f35b3480156102c7575f80fd5b506102d061062a565b6040516102dd91906109bf565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190610a70565b610667565b6040516103199190610ac8565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190610c3d565b6106f5565b005b348015610355575f80fd5b50610370600480360381019061036b9190610cda565b610891565b60405161037d9190610af0565b60405180910390f35b60606040518060400160405280600a81526020017f4d6f636b20455243323000000000000000000000000000000000000000000000815250905090565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b6064816104209190610d45565b341015610462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045990610dbf565b60405180910390fd5b61046c82826108af565b5050565b5f6805345cdf77eb68f44c54905090565b5f61048d848484610941565b8360601b33602052637f5e9f208117600c526034600c20805460018101156104ca57808511156104c4576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c208054808711156104f05763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050505050610547848484610946565b600190509392505050565b5f6012905090565b5f8061056461094b565b90505f801b810361058157610577610386565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6105f482826108af565b5050565b5f6387a211a2600c52815f526020600c20549050919050565b5f6338377508600c52815f526020600c20549050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b5f610673338484610941565b6387a211a2600c52335f526020600c2080548084111561069a5763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506106eb338484610946565b6001905092915050565b5f6106fe61094b565b90505f801b810361071b57610711610386565b8051906020012090505b8442111561073057631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d51146108385763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b6108ba5f8383610941565b6805345cdf77eb68f44c54818101818110156108dd5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505061093d5f8383610946565b5050565b505050565b505050565b5f90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109918261094f565b61099b8185610959565b93506109ab818560208601610969565b6109b481610977565b840191505092915050565b5f6020820190508181035f8301526109d78184610987565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a0c826109e3565b9050919050565b610a1c81610a02565b8114610a26575f80fd5b50565b5f81359050610a3781610a13565b92915050565b5f819050919050565b610a4f81610a3d565b8114610a59575f80fd5b50565b5f81359050610a6a81610a46565b92915050565b5f8060408385031215610a8657610a856109df565b5b5f610a9385828601610a29565b9250506020610aa485828601610a5c565b9150509250929050565b5f8115159050919050565b610ac281610aae565b82525050565b5f602082019050610adb5f830184610ab9565b92915050565b610aea81610a3d565b82525050565b5f602082019050610b035f830184610ae1565b92915050565b5f805f60608486031215610b2057610b1f6109df565b5b5f610b2d86828701610a29565b9350506020610b3e86828701610a29565b9250506040610b4f86828701610a5c565b9150509250925092565b5f60ff82169050919050565b610b6e81610b59565b82525050565b5f602082019050610b875f830184610b65565b92915050565b5f819050919050565b610b9f81610b8d565b82525050565b5f602082019050610bb85f830184610b96565b92915050565b5f60208284031215610bd357610bd26109df565b5b5f610be084828501610a29565b91505092915050565b610bf281610b59565b8114610bfc575f80fd5b50565b5f81359050610c0d81610be9565b92915050565b610c1c81610b8d565b8114610c26575f80fd5b50565b5f81359050610c3781610c13565b92915050565b5f805f805f805f60e0888a031215610c5857610c576109df565b5b5f610c658a828b01610a29565b9750506020610c768a828b01610a29565b9650506040610c878a828b01610a5c565b9550506060610c988a828b01610a5c565b9450506080610ca98a828b01610bff565b93505060a0610cba8a828b01610c29565b92505060c0610ccb8a828b01610c29565b91505092959891949750929550565b5f8060408385031215610cf057610cef6109df565b5b5f610cfd85828601610a29565b9250506020610d0e85828601610a29565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d4f82610a3d565b9150610d5a83610a3d565b925082610d6a57610d69610d18565b5b828204905092915050565b7f4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921000000005f82015250565b5f610da9601c83610959565b9150610db482610d75565b602082019050919050565b5f6020820190508181035f830152610dd681610d9d565b905091905056fea26469706673582212206dfa065afeadb670793b85c903684a7900b7a0f5a22e73698eccec3175ab4c7a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDC JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x34A JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x280 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xBA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1F2 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x17D304B0 EQ PUSH2 0x146 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x115 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x197 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x611 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0x62A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x667 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x343 SWAP2 SWAP1 PUSH2 0xC3D JUMP JUMPDEST PUSH2 0x6F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH2 0x891 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243323000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x64 DUP2 PUSH2 0x420 SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST CALLVALUE LT ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x46C DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48D DUP5 DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x4CA JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x4C4 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x4F0 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x547 DUP5 DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x564 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x581 JUMPI PUSH2 0x577 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x5F4 DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x673 CALLER DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0x69A JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x6EB CALLER DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FE PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x71B JUMPI PUSH2 0x711 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0x730 JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0x838 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8BA PUSH0 DUP4 DUP4 PUSH2 0x941 JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x8DD JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x93D PUSH0 DUP4 DUP4 PUSH2 0x946 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x991 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH2 0x99B DUP2 DUP6 PUSH2 0x959 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x969 JUMP JUMPDEST PUSH2 0x9B4 DUP2 PUSH2 0x977 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9D7 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4F DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP2 EQ PUSH2 0xA59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA6A DUP2 PUSH2 0xA46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH2 0xA85 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA93 DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA4 DUP6 DUP3 DUP7 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC2 DUP2 PUSH2 0xAAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADB PUSH0 DUP4 ADD DUP5 PUSH2 0xAB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEA DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB03 PUSH0 DUP4 ADD DUP5 PUSH2 0xAE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH2 0xB1F PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB2D DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB3E DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB4F DUP7 DUP3 DUP8 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB87 PUSH0 DUP4 ADD DUP5 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB8 PUSH0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBD3 JUMPI PUSH2 0xBD2 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBE0 DUP5 DUP3 DUP6 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF2 DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP2 EQ PUSH2 0xBFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC0D DUP2 PUSH2 0xBE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP2 EQ PUSH2 0xC26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC37 DUP2 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC57 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC65 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0xC76 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0xC87 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0xC98 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0xCA9 DUP11 DUP3 DUP12 ADD PUSH2 0xBFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0xCBA DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0xCCB DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCEF PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCFD DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0E DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD4F DUP3 PUSH2 0xA3D JUMP JUMPDEST SWAP2 POP PUSH2 0xD5A DUP4 PUSH2 0xA3D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD6A JUMPI PUSH2 0xD69 PUSH2 0xD18 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6F636B45524332303A2067696D6D65206D6F7265206D6F6E65792100000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA9 PUSH1 0x1C DUP4 PUSH2 0x959 JUMP JUMPDEST SWAP2 POP PUSH2 0xDB4 DUP3 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDD6 DUP2 PUSH2 0xD9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xFA065AFEADB670793B85C903684A PUSH26 0xB7A0F5A22E73698ECCEC3175AB4C7A64736F6C634300081900 CALLER ","sourceMap":"1467:501:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1501:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7435:573:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1792:174:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6287:195:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9969:2191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:693;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1703:83:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6548:286:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12800:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1604:93:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8195:1406:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13324:3215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6929:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1501:97:49;1547:13;1572:19;;;;;;;;;;;;;;;;;;;1501:97;:::o;7435:573:19:-;7509:4;7668:7;7662:4;7655:21;7702:20;7696:4;7689:34;7749:8;7743:4;7736:22;7801:6;7794:4;7788;7778:21;7771:37;7876:6;7870:4;7863:20;7964:4;7958:11;7954:2;7950:20;7940:8;7913:25;7907:4;7901;7896:75;7997:4;7990:11;;7435:573;;;;:::o;1792:174:49:-;1896:3;1887:6;:12;;;;:::i;:::-;1874:9;:25;;1866:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1942:17;1948:2;1952:6;1942:5;:17::i;:::-;1792:174;;:::o;6287:195:19:-;6339:14;6447:18;6441:25;6431:35;;6287:195;:::o;9969:2191::-;10057:4;10073:38;10094:4;10100:2;10104:6;10073:20;:38::i;:::-;10208:4;10204:2;10200:13;10301:8;10295:4;10288:22;10346:20;10339:5;10336:31;10330:4;10323:45;10418:4;10412;10402:21;10460:13;10454:20;10572:1;10560:10;10556:18;10553:418;;;10688:10;10680:6;10677:22;10674:159;;;10735:10;10729:4;10722:24;10810:4;10804;10797:18;10674:159;10949:6;10937:10;10933:23;10918:13;10911:46;10553:418;11067:18;11060:5;11057:29;11051:4;11044:43;11139:4;11133;11123:21;11182:15;11176:22;11272:11;11264:6;11261:23;11258:146;;;11316:10;11310:4;11303:24;11385:4;11379;11372:18;11258:146;11513:6;11500:11;11496:24;11479:15;11472:49;11596:2;11590:4;11583:16;11649:4;11643;11633:21;11899:6;11883:13;11877:20;11873:33;11858:13;11851:56;11975:6;11969:4;11962:20;12069:4;12063:11;12059:2;12055:20;12047:5;12043:2;12039:14;12012:25;12006:4;12000;11995:81;10173:1913;;;;;;12095:37;12115:4;12121:2;12125:6;12095:19;:37::i;:::-;12149:4;12142:11;;9969:2191;;;;;:::o;5860:82::-;5909:5;5933:2;5926:9;;5860:82;:::o;16620:693::-;16677:14;16703:16;16722:19;:17;:19::i;:::-;16703:38;;16869:1;16861:10;;16849:8;:22;16845:63;;16900:6;:4;:6::i;:::-;16884:24;;;;;;16873:35;;16845:63;16999:4;16993:11;17060:16;17057:1;17050:27;17111:8;17104:4;17101:1;17097:12;17090:30;17154:13;17147:4;17144:1;17140:12;17133:35;17202:9;17195:4;17192:1;17188:12;17181:31;17246:9;17239:4;17236:1;17232:12;17225:31;17292:4;17289:1;17279:18;17269:28;;16970:337;;16620:693;:::o;1703:83:49:-;1762:17;1768:2;1772:6;1762:5;:17::i;:::-;1703:83;;:::o;6548:286:19:-;6611:14;6716:18;6710:4;6703:32;6761:5;6755:4;6748:19;6812:4;6806;6796:21;6790:28;6780:38;;6548:286;;;:::o;12800:340::-;12860:14;13023:17;13017:4;13010:31;13067:5;13061:4;13054:19;13118:4;13112;13102:21;13096:28;13086:38;;12800:340;;;:::o;1604:93:49:-;1652:13;1677;;;;;;;;;;;;;;;;;;;1604:93;:::o;8195:1406:19:-;8265:4;8281:44;8302:10;8314:2;8318:6;8281:20;:44::i;:::-;8474:18;8468:4;8461:32;8519:8;8513:4;8506:22;8580:4;8574;8564:21;8623:15;8617:22;8713:11;8705:6;8702:23;8699:146;;;8757:10;8751:4;8744:24;8826:4;8820;8813:18;8699:146;8954:6;8941:11;8937:24;8920:15;8913:49;9037:2;9031:4;9024:16;9090:4;9084;9074:21;9340:6;9324:13;9318:20;9314:33;9299:13;9292:56;9416:6;9410:4;9403:20;9504:4;9498:11;9494:2;9490:20;9480:8;9453:25;9447:4;9441;9436:75;8387:1134;;;9530:43;9550:10;9562:2;9566:6;9530:19;:43::i;:::-;9590:4;9583:11;;8195:1406;;;;:::o;13324:3215::-;13523:16;13542:19;:17;:19::i;:::-;13523:38;;13689:1;13681:10;;13669:8;:22;13665:63;;13720:6;:4;:6::i;:::-;13704:24;;;;;;13693:35;;13665:63;13896:8;13883:11;13880:25;13877:142;;;13937:10;13931:4;13924:24;14000:4;13994;13987:18;13877:142;14047:4;14041:11;14163:5;14159:2;14155:14;14151:2;14147:23;14138:32;;14210:7;14206:2;14202:16;14198:2;14194:25;14183:36;;14303:39;14297:4;14290:53;14369:5;14363:4;14356:19;14421:4;14415;14405:21;14463:9;14457:16;14541;14538:1;14531:27;14592:8;14585:4;14582:1;14578:12;14571:30;14635:13;14628:4;14625:1;14621:12;14614:35;14683:9;14676:4;14673:1;14669:12;14662:31;14727:9;14720:4;14717:1;14713:12;14706:31;14776:4;14773:1;14763:18;14757:4;14750:32;14845:16;14842:1;14835:27;14896:5;14889:4;14886:1;14882:12;14875:27;14936:7;14929:4;14926:1;14922:12;14915:29;14978:5;14971:4;14968:1;14964:12;14957:27;15018:10;15011:4;15008:1;15004:12;14997:32;15063:8;15056:4;15053:1;15049:12;15042:30;15111:4;15108:1;15098:18;15092:4;15085:32;15206:4;15200;15190:21;15184:4;15177:35;15248:1;15242:4;15238:12;15232:4;15225:26;15277:1;15271:4;15264:15;15305:1;15299:4;15292:15;15365:4;15359;15353;15350:1;15347;15340:5;15329:41;15786:5;15767:16;15761:23;15758:34;15748:159;;15825:10;15819:4;15812:24;15888:4;15882;15875:18;15748:159;16008:1;15996:10;15992:18;15981:9;15974:37;16222:7;16199:20;16194:3;16190:30;16187:43;16181:4;16174:57;16274:5;16267:4;16261;16251:21;16244:36;16394:7;16387:5;16360:25;16354:4;16347;16344:1;16340:12;16335:67;16428:1;16422:4;16415:15;16492:1;16486:4;16479:15;13790:2743;;;;;13324:3215;;;;;;;:::o;6929:375::-;7041:14;7150:7;7144:4;7137:21;7184:20;7178:4;7171:34;7231:5;7225:4;7218:19;7282:4;7276;7266:21;7260:28;7250:38;;6929:375;;;;:::o;17717:1172::-;17787:44;17816:1;17820:2;17824:6;17787:20;:44::i;:::-;17938:18;17932:25;18017:6;17998:17;17994:30;18114:17;18096:16;18093:39;18090:162;;;18164:10;18158:4;18151:24;18233:4;18227;18220:18;18090:162;18339:16;18319:18;18312:44;18442:18;18436:4;18429:32;18487:2;18481:4;18474:16;18540:4;18534;18524:21;18656:6;18640:13;18634:20;18630:33;18615:13;18608:56;18732:6;18726:4;18719:20;18813:4;18807:11;18803:2;18799:20;18796:1;18769:25;18763:4;18757;18752:68;17893:937;;;18839:43;18867:1;18871:2;18875:6;18839:19;:43::i;:::-;17717:1172;;:::o;24588:91::-;;;;:::o;24791:90::-;;;;:::o;12591:78::-;12651:14;12591:78;:::o;7:99:53:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:77::-;4783:7;4812:5;4801:16;;4746:77;;;:::o;4829:118::-;4916:24;4934:5;4916:24;:::i;:::-;4911:3;4904:37;4829:118;;:::o;4953:222::-;5046:4;5084:2;5073:9;5069:18;5061:26;;5097:71;5165:1;5154:9;5150:17;5141:6;5097:71;:::i;:::-;4953:222;;;;:::o;5181:329::-;5240:6;5289:2;5277:9;5268:7;5264:23;5260:32;5257:119;;;5295:79;;:::i;:::-;5257:119;5415:1;5440:53;5485:7;5476:6;5465:9;5461:22;5440:53;:::i;:::-;5430:63;;5386:117;5181:329;;;;:::o;5516:118::-;5587:22;5603:5;5587:22;:::i;:::-;5580:5;5577:33;5567:61;;5624:1;5621;5614:12;5567:61;5516:118;:::o;5640:135::-;5684:5;5722:6;5709:20;5700:29;;5738:31;5763:5;5738:31;:::i;:::-;5640:135;;;;:::o;5781:122::-;5854:24;5872:5;5854:24;:::i;:::-;5847:5;5844:35;5834:63;;5893:1;5890;5883:12;5834:63;5781:122;:::o;5909:139::-;5955:5;5993:6;5980:20;5971:29;;6009:33;6036:5;6009:33;:::i;:::-;5909:139;;;;:::o;6054:1199::-;6165:6;6173;6181;6189;6197;6205;6213;6262:3;6250:9;6241:7;6237:23;6233:33;6230:120;;;6269:79;;:::i;:::-;6230:120;6389:1;6414:53;6459:7;6450:6;6439:9;6435:22;6414:53;:::i;:::-;6404:63;;6360:117;6516:2;6542:53;6587:7;6578:6;6567:9;6563:22;6542:53;:::i;:::-;6532:63;;6487:118;6644:2;6670:53;6715:7;6706:6;6695:9;6691:22;6670:53;:::i;:::-;6660:63;;6615:118;6772:2;6798:53;6843:7;6834:6;6823:9;6819:22;6798:53;:::i;:::-;6788:63;;6743:118;6900:3;6927:51;6970:7;6961:6;6950:9;6946:22;6927:51;:::i;:::-;6917:61;;6871:117;7027:3;7054:53;7099:7;7090:6;7079:9;7075:22;7054:53;:::i;:::-;7044:63;;6998:119;7156:3;7183:53;7228:7;7219:6;7208:9;7204:22;7183:53;:::i;:::-;7173:63;;7127:119;6054:1199;;;;;;;;;;:::o;7259:474::-;7327:6;7335;7384:2;7372:9;7363:7;7359:23;7355:32;7352:119;;;7390:79;;:::i;:::-;7352:119;7510:1;7535:53;7580:7;7571:6;7560:9;7556:22;7535:53;:::i;:::-;7525:63;;7481:117;7637:2;7663:53;7708:7;7699:6;7688:9;7684:22;7663:53;:::i;:::-;7653:63;;7608:118;7259:474;;;;;:::o;7739:180::-;7787:77;7784:1;7777:88;7884:4;7881:1;7874:15;7908:4;7905:1;7898:15;8111:185;8151:1;8168:20;8186:1;8168:20;:::i;:::-;8163:25;;8202:20;8220:1;8202:20;:::i;:::-;8197:25;;8241:1;8231:35;;8246:18;;:::i;:::-;8231:35;8288:1;8285;8281:9;8276:14;;8111:185;;;;:::o;8302:178::-;8442:30;8438:1;8430:6;8426:14;8419:54;8302:178;:::o;8486:366::-;8628:3;8649:67;8713:2;8708:3;8649:67;:::i;:::-;8642:74;;8725:93;8814:3;8725:93;:::i;:::-;8843:2;8838:3;8834:12;8827:19;;8486:366;;;:::o;8858:419::-;9024:4;9062:2;9051:9;9047:18;9039:26;;9111:9;9105:4;9101:20;9097:1;9086:9;9082:17;9075:47;9139:131;9265:4;9139:131;:::i;:::-;9131:139;;8858:419;;;:::o"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","mintPayable(address,uint256)":"17d304b0","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mintPayable\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"title\":\"MockERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC20 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"},"MockERC721":{"abi":[{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TokenAlreadyExists","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"isApproved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405267016345785d8a0000600155348015601a575f80fd5b50611107806100285f395ff3fe6080604052600436106100f2575f3560e01c80636817c76c11610089578063a22cb46511610058578063a22cb465146102fe578063b88d4fde14610326578063c87b56dd14610342578063e985e9c51461037e576100f2565b80636817c76c146102525780636a6278421461027c57806370a082311461029857806395d89b41146102d4576100f2565b806318160ddd116100c557806318160ddd146101b457806323b872dd146101de57806342842e0e146101fa5780636352211e14610216576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610b16565b6103ba565b6040516101299190610b5b565b60405180910390f35b34801561013d575f80fd5b506101466103de565b6040516101539190610be4565b60405180910390f35b348015610167575f80fd5b50610182600480360381019061017d9190610c37565b61041b565b60405161018f9190610ca1565b60405180910390f35b6101b260048036038101906101ad9190610ce4565b61046e565b005b3480156101bf575f80fd5b506101c861047d565b6040516101d59190610d31565b60405180910390f35b6101f860048036038101906101f39190610d4a565b610482565b005b610214600480360381019061020f9190610d4a565b6105ac565b005b348015610221575f80fd5b5061023c60048036038101906102379190610c37565b6105e5565b6040516102499190610ca1565b60405180910390f35b34801561025d575f80fd5b50610266610608565b6040516102739190610d31565b60405180910390f35b61029660048036038101906102919190610d9a565b61060e565b005b3480156102a3575f80fd5b506102be60048036038101906102b99190610d9a565b610672565b6040516102cb9190610d31565b60405180910390f35b3480156102df575f80fd5b506102e86106bf565b6040516102f59190610be4565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f9190610def565b6106fc565b005b610340600480360381019061033b9190610e8e565b61074f565b005b34801561034d575f80fd5b5061036860048036038101906103639190610c37565b6107bf565b6040516103759190610be4565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f9190610f12565b6107f0565b6040516103b19190610b5b565b60405180910390f35b5f8160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b60606040518060400160405280600b81526020017f4d6f636b20455243373231000000000000000000000000000000000000000000815250905090565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b6104615763ceea21b65f526004601cfd5b8060010154915050919050565b610479338383610812565b5050565b5f5481565b61048d8383836108c2565b5f1960601c83811693508281169250815f52337f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f2082018201805480831686811481026104f05767ceea21b6a1148100811560021b526004601cfd5b865f5282600101548033148833141761051b576030600c205461051a57634b6e7f185f526004601cfd5b5b8015610528575f84600101555b5085871882188355601c600c206001815403815550855f52601c600c20600181540163ffffffff8116880261056c5767ea553b3401336cea881560021b526004601cfd5b80825550508486887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a4505050506105a78383836108c7565b505050565b6105b7838383610482565b6105c0826108cc565b156105e0576105df83838360405180602001604052805f8152506108d6565b5b505050565b5f6105ef82610960565b9050806106035763ceea21b65f526004601cfd5b919050565b60015481565b600154341015610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a90610f9a565b60405180910390fd5b61066f815f80815461066490610fe5565b91905081905561099e565b50565b5f8161068557638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b61075a858585610482565b610763846108cc565b156107b8576107b785858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506108d6565b5b5050505050565b60606107ca82610a6a565b6040516020016107da91906110b0565b6040516020818303038152906040529050919050565b5f81601c52670a5a2e7a00000000600852825f526030600c2054905092915050565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216806108685763ceea21b65f526004601cfd5b80861486151761088d57805f526030600c205461088c57634b6e7f185f526004601cfd5b5b8482600101558385827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a4505050505050565b505050565b505050565b5f813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a0840152801561091d578060c08401826020870160045afa505b60208360a48301601c86015f8a5af161093f573d1561093e573d5f843e3d83fd5b5b8160e01b8351146109575763d1a57ed65f526004601cfd5b50505050505050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f20820182015460601b60601c9050919050565b6109a95f83836108c2565b8160601b60601c9150805f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208101810180548060601b156109f95763c991cbb15f526004601cfd5b8381178255835f52601c600c20600181540163ffffffff81168602610a2d5767ea553b3401336cea861560021b526004601cfd5b808255505082845f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45050610a665f83836108c7565b5050565b60606080604051019050602081016040525f8152805f19835b600115610aa4578184019350600a81066030018453600a8104905080610a83575b50828203602084039350808452505050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610af581610ac1565b8114610aff575f80fd5b50565b5f81359050610b1081610aec565b92915050565b5f60208284031215610b2b57610b2a610ab9565b5b5f610b3884828501610b02565b91505092915050565b5f8115159050919050565b610b5581610b41565b82525050565b5f602082019050610b6e5f830184610b4c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610bb682610b74565b610bc08185610b7e565b9350610bd0818560208601610b8e565b610bd981610b9c565b840191505092915050565b5f6020820190508181035f830152610bfc8184610bac565b905092915050565b5f819050919050565b610c1681610c04565b8114610c20575f80fd5b50565b5f81359050610c3181610c0d565b92915050565b5f60208284031215610c4c57610c4b610ab9565b5b5f610c5984828501610c23565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8b82610c62565b9050919050565b610c9b81610c81565b82525050565b5f602082019050610cb45f830184610c92565b92915050565b610cc381610c81565b8114610ccd575f80fd5b50565b5f81359050610cde81610cba565b92915050565b5f8060408385031215610cfa57610cf9610ab9565b5b5f610d0785828601610cd0565b9250506020610d1885828601610c23565b9150509250929050565b610d2b81610c04565b82525050565b5f602082019050610d445f830184610d22565b92915050565b5f805f60608486031215610d6157610d60610ab9565b5b5f610d6e86828701610cd0565b9350506020610d7f86828701610cd0565b9250506040610d9086828701610c23565b9150509250925092565b5f60208284031215610daf57610dae610ab9565b5b5f610dbc84828501610cd0565b91505092915050565b610dce81610b41565b8114610dd8575f80fd5b50565b5f81359050610de981610dc5565b92915050565b5f8060408385031215610e0557610e04610ab9565b5b5f610e1285828601610cd0565b9250506020610e2385828601610ddb565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4e57610e4d610e2d565b5b8235905067ffffffffffffffff811115610e6b57610e6a610e31565b5b602083019150836001820283011115610e8757610e86610e35565b5b9250929050565b5f805f805f60808688031215610ea757610ea6610ab9565b5b5f610eb488828901610cd0565b9550506020610ec588828901610cd0565b9450506040610ed688828901610c23565b935050606086013567ffffffffffffffff811115610ef757610ef6610abd565b5b610f0388828901610e39565b92509250509295509295909350565b5f8060408385031215610f2857610f27610ab9565b5b5f610f3585828601610cd0565b9250506020610f4685828601610cd0565b9150509250929050565b7f4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e6579210000005f82015250565b5f610f84601d83610b7e565b9150610f8f82610f50565b602082019050919050565b5f6020820190508181035f830152610fb181610f78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fef82610c04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361102157611020610fb8565b5b600182019050919050565b5f81905092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f0000000000005f82015250565b5f61106a601a8361102c565b915061107582611036565b601a82019050919050565b5f61108a82610b74565b611094818561102c565b93506110a4818560208601610b8e565b80840191505092915050565b5f6110ba8261105e565b91506110c68284611080565b91508190509291505056fea26469706673582212206a79f5a0e467f48b674391deaeadba3209007079faabfaab6ff555ea1ad6b8d964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0x16345785D8A0000 PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x1A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1107 DUP1 PUSH2 0x28 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF2 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6817C76C GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37E JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x6817C76C EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2D4 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x216 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x198 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x117 SWAP2 SWAP1 PUSH2 0xB16 JUMP JUMPDEST PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x146 PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C8 PUSH2 0x47D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x237 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x296 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x291 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x60E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E8 PUSH2 0x6BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x340 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33B SWAP2 SWAP1 PUSH2 0xE8E JUMP JUMPDEST PUSH2 0x74F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHR PUSH4 0x5B5E139F DUP2 EQ PUSH4 0x80AC58CD DUP3 EQ PUSH4 0x1FFC9A7 DUP4 EQ OR OR SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243373231000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD PUSH1 0x60 SHL PUSH2 0x461 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x479 CALLER DUP4 DUP4 PUSH2 0x812 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x48D DUP4 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP4 DUP2 AND SWAP4 POP DUP3 DUP2 AND SWAP3 POP DUP2 PUSH0 MSTORE CALLER PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP1 DUP4 AND DUP7 DUP2 EQ DUP2 MUL PUSH2 0x4F0 JUMPI PUSH8 0xCEEA21B6A1148100 DUP2 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 PUSH0 MSTORE DUP3 PUSH1 0x1 ADD SLOAD DUP1 CALLER EQ DUP9 CALLER EQ OR PUSH2 0x51B JUMPI PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x51A JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x528 JUMPI PUSH0 DUP5 PUSH1 0x1 ADD SSTORE JUMPDEST POP DUP6 DUP8 XOR DUP3 XOR DUP4 SSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD SUB DUP2 SSTORE POP DUP6 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP9 MUL PUSH2 0x56C JUMPI PUSH8 0xEA553B3401336CEA DUP9 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP5 DUP7 DUP9 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP POP POP PUSH2 0x5A7 DUP4 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP4 DUP4 DUP4 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x5C0 DUP3 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5EF DUP3 PUSH2 0x960 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x603 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x66F DUP2 PUSH0 DUP1 DUP2 SLOAD PUSH2 0x664 SWAP1 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE PUSH2 0x99E JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x685 JUMPI PUSH4 0x8F4EB604 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE DUP2 PUSH0 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1C PUSH1 0xC KECCAK256 SLOAD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO SWAP1 POP DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x30 PUSH1 0xC KECCAK256 SSTORE DUP1 PUSH0 MSTORE DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR CALLER PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 PUSH0 LOG3 POP POP JUMP JUMPDEST PUSH2 0x75A DUP6 DUP6 DUP6 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x763 DUP5 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x7B8 JUMPI PUSH2 0x7B7 DUP6 DUP6 DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7CA DUP3 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7DA SWAP2 SWAP1 PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE DUP3 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP3 DUP2 AND SWAP3 POP DUP4 DUP2 AND SWAP4 POP DUP2 PUSH0 MSTORE DUP4 PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP3 AND DUP1 PUSH2 0x868 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP7 EQ DUP7 ISZERO OR PUSH2 0x88D JUMPI DUP1 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x88C JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP5 DUP3 PUSH1 0x1 ADD SSTORE DUP4 DUP6 DUP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH0 CODESIZE LOG4 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 EXTCODESIZE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x150B7A02 DUP1 DUP3 MSTORE CALLER PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x60 SHL PUSH1 0x60 SHR PUSH1 0x40 DUP4 ADD MSTORE DUP4 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0xA0 DUP5 ADD MSTORE DUP1 ISZERO PUSH2 0x91D JUMPI DUP1 PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x20 DUP8 ADD PUSH1 0x4 GAS STATICCALL POP JUMPDEST PUSH1 0x20 DUP4 PUSH1 0xA4 DUP4 ADD PUSH1 0x1C DUP7 ADD PUSH0 DUP11 GAS CALL PUSH2 0x93F JUMPI RETURNDATASIZE ISZERO PUSH2 0x93E JUMPI RETURNDATASIZE PUSH0 DUP5 RETURNDATACOPY RETURNDATASIZE DUP4 REVERT JUMPDEST JUMPDEST DUP2 PUSH1 0xE0 SHL DUP4 MLOAD EQ PUSH2 0x957 JUMPI PUSH4 0xD1A57ED6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD SLOAD PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9A9 PUSH0 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP1 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP2 ADD DUP2 ADD DUP1 SLOAD DUP1 PUSH1 0x60 SHL ISZERO PUSH2 0x9F9 JUMPI PUSH4 0xC991CBB1 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 OR DUP3 SSTORE DUP4 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP7 MUL PUSH2 0xA2D JUMPI PUSH8 0xEA553B3401336CEA DUP7 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP3 DUP5 PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP PUSH2 0xA66 PUSH0 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x80 PUSH1 0x40 MLOAD ADD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE PUSH0 DUP2 MSTORE DUP1 PUSH0 NOT DUP4 JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP5 ADD SWAP4 POP PUSH1 0xA DUP2 MOD PUSH1 0x30 ADD DUP5 MSTORE8 PUSH1 0xA DUP2 DIV SWAP1 POP DUP1 PUSH2 0xA83 JUMPI JUMPDEST POP DUP3 DUP3 SUB PUSH1 0x20 DUP5 SUB SWAP4 POP DUP1 DUP5 MSTORE POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF5 DUP2 PUSH2 0xAC1 JUMP JUMPDEST DUP2 EQ PUSH2 0xAFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB10 DUP2 PUSH2 0xAEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2B JUMPI PUSH2 0xB2A PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB38 DUP5 DUP3 DUP6 ADD PUSH2 0xB02 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6E PUSH0 DUP4 ADD DUP5 PUSH2 0xB4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBB6 DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0xBC0 DUP2 DUP6 PUSH2 0xB7E JUMP JUMPDEST SWAP4 POP PUSH2 0xBD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH2 0xBD9 DUP2 PUSH2 0xB9C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xBFC DUP2 DUP5 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC16 DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP2 EQ PUSH2 0xC20 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC31 DUP2 PUSH2 0xC0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC59 DUP5 DUP3 DUP6 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC8B DUP3 PUSH2 0xC62 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC9B DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH0 DUP4 ADD DUP5 PUSH2 0xC92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC3 DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP2 EQ PUSH2 0xCCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCDE DUP2 PUSH2 0xCBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF9 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD07 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD18 DUP6 DUP3 DUP7 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD44 PUSH0 DUP4 ADD DUP5 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD7F DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD90 DUP7 DUP3 DUP8 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAE PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDBC DUP5 DUP3 DUP6 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP2 EQ PUSH2 0xDD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDE9 DUP2 PUSH2 0xDC5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH2 0xE04 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE12 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE23 DUP6 DUP3 DUP7 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE4E JUMPI PUSH2 0xE4D PUSH2 0xE2D JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xE31 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE87 JUMPI PUSH2 0xE86 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEB4 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0xEC5 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xED6 DUP9 DUP3 DUP10 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEF7 JUMPI PUSH2 0xEF6 PUSH2 0xABD JUMP JUMPDEST JUMPDEST PUSH2 0xF03 DUP9 DUP3 DUP10 ADD PUSH2 0xE39 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF28 JUMPI PUSH2 0xF27 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF35 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF46 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6F636B4552433732313A2067696D6D65206D6F7265206D6F6E657921000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF84 PUSH1 0x1D DUP4 PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP PUSH2 0xF8F DUP3 PUSH2 0xF50 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFB1 DUP2 PUSH2 0xF78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xFEF DUP3 PUSH2 0xC04 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1021 JUMPI PUSH2 0x1020 PUSH2 0xFB8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x106A PUSH1 0x1A DUP4 PUSH2 0x102C JUMP JUMPDEST SWAP2 POP PUSH2 0x1075 DUP3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x1A DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108A DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0x1094 DUP2 DUP6 PUSH2 0x102C JUMP JUMPDEST SWAP4 POP PUSH2 0x10A4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10BA DUP3 PUSH2 0x105E JUMP JUMPDEST SWAP2 POP PUSH2 0x10C6 DUP3 DUP5 PUSH2 0x1080 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0x79F5A0E467F48B674391DE 0xAE 0xAD 0xBA ORIGIN MULMOD STOP PUSH17 0x79FAABFAAB6FF555EA1AD6B8D964736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"679:706:49:-:0;;;774:9;747:36;;679:706;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_9086":{"entryPoint":2247,"id":9086,"parameterSlots":3,"returnSlots":0},"@_approve_8899":{"entryPoint":2066,"id":8899,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9075":{"entryPoint":2242,"id":9075,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_9110":{"entryPoint":2262,"id":9110,"parameterSlots":4,"returnSlots":0},"@_hasCode_9096":{"entryPoint":2252,"id":9096,"parameterSlots":1,"returnSlots":1},"@_mint_8723":{"entryPoint":2462,"id":8723,"parameterSlots":2,"returnSlots":0},"@_ownerOf_8655":{"entryPoint":2400,"id":8655,"parameterSlots":1,"returnSlots":1},"@approve_8521":{"entryPoint":1134,"id":8521,"parameterSlots":2,"returnSlots":0},"@balanceOf_8495":{"entryPoint":1650,"id":8495,"parameterSlots":1,"returnSlots":1},"@getApproved_8505":{"entryPoint":1051,"id":8505,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_8533":{"entryPoint":2032,"id":8533,"parameterSlots":2,"returnSlots":1},"@mintPrice_17738":{"entryPoint":1544,"id":17738,"parameterSlots":0,"returnSlots":0},"@mint_17776":{"entryPoint":1550,"id":17776,"parameterSlots":1,"returnSlots":0},"@name_17747":{"entryPoint":990,"id":17747,"parameterSlots":0,"returnSlots":1},"@ownerOf_8485":{"entryPoint":1509,"id":8485,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_8595":{"entryPoint":1452,"id":8595,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_8625":{"entryPoint":1871,"id":8625,"parameterSlots":5,"returnSlots":0},"@setApprovalForAll_8543":{"entryPoint":1788,"id":8543,"parameterSlots":2,"returnSlots":0},"@supportsInterface_8635":{"entryPoint":954,"id":8635,"parameterSlots":1,"returnSlots":1},"@symbol_17756":{"entryPoint":1727,"id":17756,"parameterSlots":0,"returnSlots":1},"@toString_10334":{"entryPoint":2666,"id":10334,"parameterSlots":1,"returnSlots":1},"@tokenURI_17797":{"entryPoint":1983,"id":17797,"parameterSlots":1,"returnSlots":1},"@totalSupply_17735":{"entryPoint":1149,"id":17735,"parameterSlots":0,"returnSlots":0},"@transferFrom_8567":{"entryPoint":1154,"id":8567,"parameterSlots":3,"returnSlots":0},"abi_decode_t_address":{"entryPoint":3280,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":3547,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":2818,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3641,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":3107,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3858,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3402,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":3726,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3567,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3300,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":2838,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3127,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3218,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2892,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2988,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4224,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack":{"entryPoint":3960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4190,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3362,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4272,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3233,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2907,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3044,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3994,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3377,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2932,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2942,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4140,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3201,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2881,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":2753,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3170,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3076,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2958,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":4069,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4024,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3633,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3629,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3637,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":2749,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2745,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2972,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb":{"entryPoint":3920,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f":{"entryPoint":4150,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3258,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3525,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":2796,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3085,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12382:53","nodeType":"YulBlock","src":"0:12382:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1577:40:53","nodeType":"YulBlock","src":"1577:40:53","statements":[{"nativeSrc":"1588:22:53","nodeType":"YulAssignment","src":"1588:22:53","value":{"arguments":[{"name":"value","nativeSrc":"1604:5:53","nodeType":"YulIdentifier","src":"1604:5:53"}],"functionName":{"name":"mload","nativeSrc":"1598:5:53","nodeType":"YulIdentifier","src":"1598:5:53"},"nativeSrc":"1598:12:53","nodeType":"YulFunctionCall","src":"1598:12:53"},"variableNames":[{"name":"length","nativeSrc":"1588:6:53","nodeType":"YulIdentifier","src":"1588:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"1518:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1560:5:53","nodeType":"YulTypedName","src":"1560:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1570:6:53","nodeType":"YulTypedName","src":"1570:6:53","type":""}],"src":"1518:99:53"},{"body":{"nativeSrc":"1719:73:53","nodeType":"YulBlock","src":"1719:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1736:3:53","nodeType":"YulIdentifier","src":"1736:3:53"},{"name":"length","nativeSrc":"1741:6:53","nodeType":"YulIdentifier","src":"1741:6:53"}],"functionName":{"name":"mstore","nativeSrc":"1729:6:53","nodeType":"YulIdentifier","src":"1729:6:53"},"nativeSrc":"1729:19:53","nodeType":"YulFunctionCall","src":"1729:19:53"},"nativeSrc":"1729:19:53","nodeType":"YulExpressionStatement","src":"1729:19:53"},{"nativeSrc":"1757:29:53","nodeType":"YulAssignment","src":"1757:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"1776:3:53","nodeType":"YulIdentifier","src":"1776:3:53"},{"kind":"number","nativeSrc":"1781:4:53","nodeType":"YulLiteral","src":"1781:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1772:3:53","nodeType":"YulIdentifier","src":"1772:3:53"},"nativeSrc":"1772:14:53","nodeType":"YulFunctionCall","src":"1772:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"1757:11:53","nodeType":"YulIdentifier","src":"1757:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1623:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1691:3:53","nodeType":"YulTypedName","src":"1691:3:53","type":""},{"name":"length","nativeSrc":"1696:6:53","nodeType":"YulTypedName","src":"1696:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1707:11:53","nodeType":"YulTypedName","src":"1707:11:53","type":""}],"src":"1623:169:53"},{"body":{"nativeSrc":"1860:77:53","nodeType":"YulBlock","src":"1860:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1877:3:53","nodeType":"YulIdentifier","src":"1877:3:53"},{"name":"src","nativeSrc":"1882:3:53","nodeType":"YulIdentifier","src":"1882:3:53"},{"name":"length","nativeSrc":"1887:6:53","nodeType":"YulIdentifier","src":"1887:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"1871:5:53","nodeType":"YulIdentifier","src":"1871:5:53"},"nativeSrc":"1871:23:53","nodeType":"YulFunctionCall","src":"1871:23:53"},"nativeSrc":"1871:23:53","nodeType":"YulExpressionStatement","src":"1871:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1914:3:53","nodeType":"YulIdentifier","src":"1914:3:53"},{"name":"length","nativeSrc":"1919:6:53","nodeType":"YulIdentifier","src":"1919:6:53"}],"functionName":{"name":"add","nativeSrc":"1910:3:53","nodeType":"YulIdentifier","src":"1910:3:53"},"nativeSrc":"1910:16:53","nodeType":"YulFunctionCall","src":"1910:16:53"},{"kind":"number","nativeSrc":"1928:1:53","nodeType":"YulLiteral","src":"1928:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1903:6:53","nodeType":"YulIdentifier","src":"1903:6:53"},"nativeSrc":"1903:27:53","nodeType":"YulFunctionCall","src":"1903:27:53"},"nativeSrc":"1903:27:53","nodeType":"YulExpressionStatement","src":"1903:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1798:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1842:3:53","nodeType":"YulTypedName","src":"1842:3:53","type":""},{"name":"dst","nativeSrc":"1847:3:53","nodeType":"YulTypedName","src":"1847:3:53","type":""},{"name":"length","nativeSrc":"1852:6:53","nodeType":"YulTypedName","src":"1852:6:53","type":""}],"src":"1798:139:53"},{"body":{"nativeSrc":"1991:54:53","nodeType":"YulBlock","src":"1991:54:53","statements":[{"nativeSrc":"2001:38:53","nodeType":"YulAssignment","src":"2001:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2019:5:53","nodeType":"YulIdentifier","src":"2019:5:53"},{"kind":"number","nativeSrc":"2026:2:53","nodeType":"YulLiteral","src":"2026:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2015:3:53","nodeType":"YulIdentifier","src":"2015:3:53"},"nativeSrc":"2015:14:53","nodeType":"YulFunctionCall","src":"2015:14:53"},{"arguments":[{"kind":"number","nativeSrc":"2035:2:53","nodeType":"YulLiteral","src":"2035:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2031:3:53","nodeType":"YulIdentifier","src":"2031:3:53"},"nativeSrc":"2031:7:53","nodeType":"YulFunctionCall","src":"2031:7:53"}],"functionName":{"name":"and","nativeSrc":"2011:3:53","nodeType":"YulIdentifier","src":"2011:3:53"},"nativeSrc":"2011:28:53","nodeType":"YulFunctionCall","src":"2011:28:53"},"variableNames":[{"name":"result","nativeSrc":"2001:6:53","nodeType":"YulIdentifier","src":"2001:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1943:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1974:5:53","nodeType":"YulTypedName","src":"1974:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1984:6:53","nodeType":"YulTypedName","src":"1984:6:53","type":""}],"src":"1943:102:53"},{"body":{"nativeSrc":"2143:285:53","nodeType":"YulBlock","src":"2143:285:53","statements":[{"nativeSrc":"2153:53:53","nodeType":"YulVariableDeclaration","src":"2153:53:53","value":{"arguments":[{"name":"value","nativeSrc":"2200:5:53","nodeType":"YulIdentifier","src":"2200:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"2167:32:53","nodeType":"YulIdentifier","src":"2167:32:53"},"nativeSrc":"2167:39:53","nodeType":"YulFunctionCall","src":"2167:39:53"},"variables":[{"name":"length","nativeSrc":"2157:6:53","nodeType":"YulTypedName","src":"2157:6:53","type":""}]},{"nativeSrc":"2215:78:53","nodeType":"YulAssignment","src":"2215:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"2281:3:53","nodeType":"YulIdentifier","src":"2281:3:53"},{"name":"length","nativeSrc":"2286:6:53","nodeType":"YulIdentifier","src":"2286:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2222:58:53","nodeType":"YulIdentifier","src":"2222:58:53"},"nativeSrc":"2222:71:53","nodeType":"YulFunctionCall","src":"2222:71:53"},"variableNames":[{"name":"pos","nativeSrc":"2215:3:53","nodeType":"YulIdentifier","src":"2215:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2341:5:53","nodeType":"YulIdentifier","src":"2341:5:53"},{"kind":"number","nativeSrc":"2348:4:53","nodeType":"YulLiteral","src":"2348:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2337:3:53","nodeType":"YulIdentifier","src":"2337:3:53"},"nativeSrc":"2337:16:53","nodeType":"YulFunctionCall","src":"2337:16:53"},{"name":"pos","nativeSrc":"2355:3:53","nodeType":"YulIdentifier","src":"2355:3:53"},{"name":"length","nativeSrc":"2360:6:53","nodeType":"YulIdentifier","src":"2360:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2302:34:53","nodeType":"YulIdentifier","src":"2302:34:53"},"nativeSrc":"2302:65:53","nodeType":"YulFunctionCall","src":"2302:65:53"},"nativeSrc":"2302:65:53","nodeType":"YulExpressionStatement","src":"2302:65:53"},{"nativeSrc":"2376:46:53","nodeType":"YulAssignment","src":"2376:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"2387:3:53","nodeType":"YulIdentifier","src":"2387:3:53"},{"arguments":[{"name":"length","nativeSrc":"2414:6:53","nodeType":"YulIdentifier","src":"2414:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2392:21:53","nodeType":"YulIdentifier","src":"2392:21:53"},"nativeSrc":"2392:29:53","nodeType":"YulFunctionCall","src":"2392:29:53"}],"functionName":{"name":"add","nativeSrc":"2383:3:53","nodeType":"YulIdentifier","src":"2383:3:53"},"nativeSrc":"2383:39:53","nodeType":"YulFunctionCall","src":"2383:39:53"},"variableNames":[{"name":"end","nativeSrc":"2376:3:53","nodeType":"YulIdentifier","src":"2376:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"2051:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2124:5:53","nodeType":"YulTypedName","src":"2124:5:53","type":""},{"name":"pos","nativeSrc":"2131:3:53","nodeType":"YulTypedName","src":"2131:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2139:3:53","nodeType":"YulTypedName","src":"2139:3:53","type":""}],"src":"2051:377:53"},{"body":{"nativeSrc":"2552:195:53","nodeType":"YulBlock","src":"2552:195:53","statements":[{"nativeSrc":"2562:26:53","nodeType":"YulAssignment","src":"2562:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2574:9:53","nodeType":"YulIdentifier","src":"2574:9:53"},{"kind":"number","nativeSrc":"2585:2:53","nodeType":"YulLiteral","src":"2585:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2570:3:53","nodeType":"YulIdentifier","src":"2570:3:53"},"nativeSrc":"2570:18:53","nodeType":"YulFunctionCall","src":"2570:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2562:4:53","nodeType":"YulIdentifier","src":"2562:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2609:9:53","nodeType":"YulIdentifier","src":"2609:9:53"},{"kind":"number","nativeSrc":"2620:1:53","nodeType":"YulLiteral","src":"2620:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2605:3:53","nodeType":"YulIdentifier","src":"2605:3:53"},"nativeSrc":"2605:17:53","nodeType":"YulFunctionCall","src":"2605:17:53"},{"arguments":[{"name":"tail","nativeSrc":"2628:4:53","nodeType":"YulIdentifier","src":"2628:4:53"},{"name":"headStart","nativeSrc":"2634:9:53","nodeType":"YulIdentifier","src":"2634:9:53"}],"functionName":{"name":"sub","nativeSrc":"2624:3:53","nodeType":"YulIdentifier","src":"2624:3:53"},"nativeSrc":"2624:20:53","nodeType":"YulFunctionCall","src":"2624:20:53"}],"functionName":{"name":"mstore","nativeSrc":"2598:6:53","nodeType":"YulIdentifier","src":"2598:6:53"},"nativeSrc":"2598:47:53","nodeType":"YulFunctionCall","src":"2598:47:53"},"nativeSrc":"2598:47:53","nodeType":"YulExpressionStatement","src":"2598:47:53"},{"nativeSrc":"2654:86:53","nodeType":"YulAssignment","src":"2654:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"2726:6:53","nodeType":"YulIdentifier","src":"2726:6:53"},{"name":"tail","nativeSrc":"2735:4:53","nodeType":"YulIdentifier","src":"2735:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"2662:63:53","nodeType":"YulIdentifier","src":"2662:63:53"},"nativeSrc":"2662:78:53","nodeType":"YulFunctionCall","src":"2662:78:53"},"variableNames":[{"name":"tail","nativeSrc":"2654:4:53","nodeType":"YulIdentifier","src":"2654:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2434:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2524:9:53","nodeType":"YulTypedName","src":"2524:9:53","type":""},{"name":"value0","nativeSrc":"2536:6:53","nodeType":"YulTypedName","src":"2536:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2547:4:53","nodeType":"YulTypedName","src":"2547:4:53","type":""}],"src":"2434:313:53"},{"body":{"nativeSrc":"2798:32:53","nodeType":"YulBlock","src":"2798:32:53","statements":[{"nativeSrc":"2808:16:53","nodeType":"YulAssignment","src":"2808:16:53","value":{"name":"value","nativeSrc":"2819:5:53","nodeType":"YulIdentifier","src":"2819:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"2808:7:53","nodeType":"YulIdentifier","src":"2808:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2753:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2780:5:53","nodeType":"YulTypedName","src":"2780:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2790:7:53","nodeType":"YulTypedName","src":"2790:7:53","type":""}],"src":"2753:77:53"},{"body":{"nativeSrc":"2879:79:53","nodeType":"YulBlock","src":"2879:79:53","statements":[{"body":{"nativeSrc":"2936:16:53","nodeType":"YulBlock","src":"2936:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2945:1:53","nodeType":"YulLiteral","src":"2945:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2948:1:53","nodeType":"YulLiteral","src":"2948:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2938:6:53","nodeType":"YulIdentifier","src":"2938:6:53"},"nativeSrc":"2938:12:53","nodeType":"YulFunctionCall","src":"2938:12:53"},"nativeSrc":"2938:12:53","nodeType":"YulExpressionStatement","src":"2938:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2902:5:53","nodeType":"YulIdentifier","src":"2902:5:53"},{"arguments":[{"name":"value","nativeSrc":"2927:5:53","nodeType":"YulIdentifier","src":"2927:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2909:17:53","nodeType":"YulIdentifier","src":"2909:17:53"},"nativeSrc":"2909:24:53","nodeType":"YulFunctionCall","src":"2909:24:53"}],"functionName":{"name":"eq","nativeSrc":"2899:2:53","nodeType":"YulIdentifier","src":"2899:2:53"},"nativeSrc":"2899:35:53","nodeType":"YulFunctionCall","src":"2899:35:53"}],"functionName":{"name":"iszero","nativeSrc":"2892:6:53","nodeType":"YulIdentifier","src":"2892:6:53"},"nativeSrc":"2892:43:53","nodeType":"YulFunctionCall","src":"2892:43:53"},"nativeSrc":"2889:63:53","nodeType":"YulIf","src":"2889:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"2836:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2872:5:53","nodeType":"YulTypedName","src":"2872:5:53","type":""}],"src":"2836:122:53"},{"body":{"nativeSrc":"3016:87:53","nodeType":"YulBlock","src":"3016:87:53","statements":[{"nativeSrc":"3026:29:53","nodeType":"YulAssignment","src":"3026:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"3048:6:53","nodeType":"YulIdentifier","src":"3048:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3035:12:53","nodeType":"YulIdentifier","src":"3035:12:53"},"nativeSrc":"3035:20:53","nodeType":"YulFunctionCall","src":"3035:20:53"},"variableNames":[{"name":"value","nativeSrc":"3026:5:53","nodeType":"YulIdentifier","src":"3026:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3091:5:53","nodeType":"YulIdentifier","src":"3091:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3064:26:53","nodeType":"YulIdentifier","src":"3064:26:53"},"nativeSrc":"3064:33:53","nodeType":"YulFunctionCall","src":"3064:33:53"},"nativeSrc":"3064:33:53","nodeType":"YulExpressionStatement","src":"3064:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"2964:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2994:6:53","nodeType":"YulTypedName","src":"2994:6:53","type":""},{"name":"end","nativeSrc":"3002:3:53","nodeType":"YulTypedName","src":"3002:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3010:5:53","nodeType":"YulTypedName","src":"3010:5:53","type":""}],"src":"2964:139:53"},{"body":{"nativeSrc":"3175:263:53","nodeType":"YulBlock","src":"3175:263:53","statements":[{"body":{"nativeSrc":"3221:83:53","nodeType":"YulBlock","src":"3221:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3223:77:53","nodeType":"YulIdentifier","src":"3223:77:53"},"nativeSrc":"3223:79:53","nodeType":"YulFunctionCall","src":"3223:79:53"},"nativeSrc":"3223:79:53","nodeType":"YulExpressionStatement","src":"3223:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3196:7:53","nodeType":"YulIdentifier","src":"3196:7:53"},{"name":"headStart","nativeSrc":"3205:9:53","nodeType":"YulIdentifier","src":"3205:9:53"}],"functionName":{"name":"sub","nativeSrc":"3192:3:53","nodeType":"YulIdentifier","src":"3192:3:53"},"nativeSrc":"3192:23:53","nodeType":"YulFunctionCall","src":"3192:23:53"},{"kind":"number","nativeSrc":"3217:2:53","nodeType":"YulLiteral","src":"3217:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3188:3:53","nodeType":"YulIdentifier","src":"3188:3:53"},"nativeSrc":"3188:32:53","nodeType":"YulFunctionCall","src":"3188:32:53"},"nativeSrc":"3185:119:53","nodeType":"YulIf","src":"3185:119:53"},{"nativeSrc":"3314:117:53","nodeType":"YulBlock","src":"3314:117:53","statements":[{"nativeSrc":"3329:15:53","nodeType":"YulVariableDeclaration","src":"3329:15:53","value":{"kind":"number","nativeSrc":"3343:1:53","nodeType":"YulLiteral","src":"3343:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3333:6:53","nodeType":"YulTypedName","src":"3333:6:53","type":""}]},{"nativeSrc":"3358:63:53","nodeType":"YulAssignment","src":"3358:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3393:9:53","nodeType":"YulIdentifier","src":"3393:9:53"},{"name":"offset","nativeSrc":"3404:6:53","nodeType":"YulIdentifier","src":"3404:6:53"}],"functionName":{"name":"add","nativeSrc":"3389:3:53","nodeType":"YulIdentifier","src":"3389:3:53"},"nativeSrc":"3389:22:53","nodeType":"YulFunctionCall","src":"3389:22:53"},{"name":"dataEnd","nativeSrc":"3413:7:53","nodeType":"YulIdentifier","src":"3413:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3368:20:53","nodeType":"YulIdentifier","src":"3368:20:53"},"nativeSrc":"3368:53:53","nodeType":"YulFunctionCall","src":"3368:53:53"},"variableNames":[{"name":"value0","nativeSrc":"3358:6:53","nodeType":"YulIdentifier","src":"3358:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3109:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3145:9:53","nodeType":"YulTypedName","src":"3145:9:53","type":""},{"name":"dataEnd","nativeSrc":"3156:7:53","nodeType":"YulTypedName","src":"3156:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3168:6:53","nodeType":"YulTypedName","src":"3168:6:53","type":""}],"src":"3109:329:53"},{"body":{"nativeSrc":"3489:81:53","nodeType":"YulBlock","src":"3489:81:53","statements":[{"nativeSrc":"3499:65:53","nodeType":"YulAssignment","src":"3499:65:53","value":{"arguments":[{"name":"value","nativeSrc":"3514:5:53","nodeType":"YulIdentifier","src":"3514:5:53"},{"kind":"number","nativeSrc":"3521:42:53","nodeType":"YulLiteral","src":"3521:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3510:3:53","nodeType":"YulIdentifier","src":"3510:3:53"},"nativeSrc":"3510:54:53","nodeType":"YulFunctionCall","src":"3510:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3499:7:53","nodeType":"YulIdentifier","src":"3499:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3444:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3471:5:53","nodeType":"YulTypedName","src":"3471:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3481:7:53","nodeType":"YulTypedName","src":"3481:7:53","type":""}],"src":"3444:126:53"},{"body":{"nativeSrc":"3621:51:53","nodeType":"YulBlock","src":"3621:51:53","statements":[{"nativeSrc":"3631:35:53","nodeType":"YulAssignment","src":"3631:35:53","value":{"arguments":[{"name":"value","nativeSrc":"3660:5:53","nodeType":"YulIdentifier","src":"3660:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3642:17:53","nodeType":"YulIdentifier","src":"3642:17:53"},"nativeSrc":"3642:24:53","nodeType":"YulFunctionCall","src":"3642:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3631:7:53","nodeType":"YulIdentifier","src":"3631:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"3576:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3603:5:53","nodeType":"YulTypedName","src":"3603:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3613:7:53","nodeType":"YulTypedName","src":"3613:7:53","type":""}],"src":"3576:96:53"},{"body":{"nativeSrc":"3743:53:53","nodeType":"YulBlock","src":"3743:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3760:3:53","nodeType":"YulIdentifier","src":"3760:3:53"},{"arguments":[{"name":"value","nativeSrc":"3783:5:53","nodeType":"YulIdentifier","src":"3783:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3765:17:53","nodeType":"YulIdentifier","src":"3765:17:53"},"nativeSrc":"3765:24:53","nodeType":"YulFunctionCall","src":"3765:24:53"}],"functionName":{"name":"mstore","nativeSrc":"3753:6:53","nodeType":"YulIdentifier","src":"3753:6:53"},"nativeSrc":"3753:37:53","nodeType":"YulFunctionCall","src":"3753:37:53"},"nativeSrc":"3753:37:53","nodeType":"YulExpressionStatement","src":"3753:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3678:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3731:5:53","nodeType":"YulTypedName","src":"3731:5:53","type":""},{"name":"pos","nativeSrc":"3738:3:53","nodeType":"YulTypedName","src":"3738:3:53","type":""}],"src":"3678:118:53"},{"body":{"nativeSrc":"3900:124:53","nodeType":"YulBlock","src":"3900:124:53","statements":[{"nativeSrc":"3910:26:53","nodeType":"YulAssignment","src":"3910:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3922:9:53","nodeType":"YulIdentifier","src":"3922:9:53"},{"kind":"number","nativeSrc":"3933:2:53","nodeType":"YulLiteral","src":"3933:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3918:3:53","nodeType":"YulIdentifier","src":"3918:3:53"},"nativeSrc":"3918:18:53","nodeType":"YulFunctionCall","src":"3918:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3910:4:53","nodeType":"YulIdentifier","src":"3910:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3990:6:53","nodeType":"YulIdentifier","src":"3990:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"4003:9:53","nodeType":"YulIdentifier","src":"4003:9:53"},{"kind":"number","nativeSrc":"4014:1:53","nodeType":"YulLiteral","src":"4014:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3999:3:53","nodeType":"YulIdentifier","src":"3999:3:53"},"nativeSrc":"3999:17:53","nodeType":"YulFunctionCall","src":"3999:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3946:43:53","nodeType":"YulIdentifier","src":"3946:43:53"},"nativeSrc":"3946:71:53","nodeType":"YulFunctionCall","src":"3946:71:53"},"nativeSrc":"3946:71:53","nodeType":"YulExpressionStatement","src":"3946:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3802:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3872:9:53","nodeType":"YulTypedName","src":"3872:9:53","type":""},{"name":"value0","nativeSrc":"3884:6:53","nodeType":"YulTypedName","src":"3884:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3895:4:53","nodeType":"YulTypedName","src":"3895:4:53","type":""}],"src":"3802:222:53"},{"body":{"nativeSrc":"4073:79:53","nodeType":"YulBlock","src":"4073:79:53","statements":[{"body":{"nativeSrc":"4130:16:53","nodeType":"YulBlock","src":"4130:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4139:1:53","nodeType":"YulLiteral","src":"4139:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4142:1:53","nodeType":"YulLiteral","src":"4142:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4132:6:53","nodeType":"YulIdentifier","src":"4132:6:53"},"nativeSrc":"4132:12:53","nodeType":"YulFunctionCall","src":"4132:12:53"},"nativeSrc":"4132:12:53","nodeType":"YulExpressionStatement","src":"4132:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4096:5:53","nodeType":"YulIdentifier","src":"4096:5:53"},{"arguments":[{"name":"value","nativeSrc":"4121:5:53","nodeType":"YulIdentifier","src":"4121:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4103:17:53","nodeType":"YulIdentifier","src":"4103:17:53"},"nativeSrc":"4103:24:53","nodeType":"YulFunctionCall","src":"4103:24:53"}],"functionName":{"name":"eq","nativeSrc":"4093:2:53","nodeType":"YulIdentifier","src":"4093:2:53"},"nativeSrc":"4093:35:53","nodeType":"YulFunctionCall","src":"4093:35:53"}],"functionName":{"name":"iszero","nativeSrc":"4086:6:53","nodeType":"YulIdentifier","src":"4086:6:53"},"nativeSrc":"4086:43:53","nodeType":"YulFunctionCall","src":"4086:43:53"},"nativeSrc":"4083:63:53","nodeType":"YulIf","src":"4083:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"4030:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4066:5:53","nodeType":"YulTypedName","src":"4066:5:53","type":""}],"src":"4030:122:53"},{"body":{"nativeSrc":"4210:87:53","nodeType":"YulBlock","src":"4210:87:53","statements":[{"nativeSrc":"4220:29:53","nodeType":"YulAssignment","src":"4220:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4242:6:53","nodeType":"YulIdentifier","src":"4242:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4229:12:53","nodeType":"YulIdentifier","src":"4229:12:53"},"nativeSrc":"4229:20:53","nodeType":"YulFunctionCall","src":"4229:20:53"},"variableNames":[{"name":"value","nativeSrc":"4220:5:53","nodeType":"YulIdentifier","src":"4220:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4285:5:53","nodeType":"YulIdentifier","src":"4285:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4258:26:53","nodeType":"YulIdentifier","src":"4258:26:53"},"nativeSrc":"4258:33:53","nodeType":"YulFunctionCall","src":"4258:33:53"},"nativeSrc":"4258:33:53","nodeType":"YulExpressionStatement","src":"4258:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"4158:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4188:6:53","nodeType":"YulTypedName","src":"4188:6:53","type":""},{"name":"end","nativeSrc":"4196:3:53","nodeType":"YulTypedName","src":"4196:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4204:5:53","nodeType":"YulTypedName","src":"4204:5:53","type":""}],"src":"4158:139:53"},{"body":{"nativeSrc":"4386:391:53","nodeType":"YulBlock","src":"4386:391:53","statements":[{"body":{"nativeSrc":"4432:83:53","nodeType":"YulBlock","src":"4432:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4434:77:53","nodeType":"YulIdentifier","src":"4434:77:53"},"nativeSrc":"4434:79:53","nodeType":"YulFunctionCall","src":"4434:79:53"},"nativeSrc":"4434:79:53","nodeType":"YulExpressionStatement","src":"4434:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4407:7:53","nodeType":"YulIdentifier","src":"4407:7:53"},{"name":"headStart","nativeSrc":"4416:9:53","nodeType":"YulIdentifier","src":"4416:9:53"}],"functionName":{"name":"sub","nativeSrc":"4403:3:53","nodeType":"YulIdentifier","src":"4403:3:53"},"nativeSrc":"4403:23:53","nodeType":"YulFunctionCall","src":"4403:23:53"},{"kind":"number","nativeSrc":"4428:2:53","nodeType":"YulLiteral","src":"4428:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4399:3:53","nodeType":"YulIdentifier","src":"4399:3:53"},"nativeSrc":"4399:32:53","nodeType":"YulFunctionCall","src":"4399:32:53"},"nativeSrc":"4396:119:53","nodeType":"YulIf","src":"4396:119:53"},{"nativeSrc":"4525:117:53","nodeType":"YulBlock","src":"4525:117:53","statements":[{"nativeSrc":"4540:15:53","nodeType":"YulVariableDeclaration","src":"4540:15:53","value":{"kind":"number","nativeSrc":"4554:1:53","nodeType":"YulLiteral","src":"4554:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4544:6:53","nodeType":"YulTypedName","src":"4544:6:53","type":""}]},{"nativeSrc":"4569:63:53","nodeType":"YulAssignment","src":"4569:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4604:9:53","nodeType":"YulIdentifier","src":"4604:9:53"},{"name":"offset","nativeSrc":"4615:6:53","nodeType":"YulIdentifier","src":"4615:6:53"}],"functionName":{"name":"add","nativeSrc":"4600:3:53","nodeType":"YulIdentifier","src":"4600:3:53"},"nativeSrc":"4600:22:53","nodeType":"YulFunctionCall","src":"4600:22:53"},{"name":"dataEnd","nativeSrc":"4624:7:53","nodeType":"YulIdentifier","src":"4624:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4579:20:53","nodeType":"YulIdentifier","src":"4579:20:53"},"nativeSrc":"4579:53:53","nodeType":"YulFunctionCall","src":"4579:53:53"},"variableNames":[{"name":"value0","nativeSrc":"4569:6:53","nodeType":"YulIdentifier","src":"4569:6:53"}]}]},{"nativeSrc":"4652:118:53","nodeType":"YulBlock","src":"4652:118:53","statements":[{"nativeSrc":"4667:16:53","nodeType":"YulVariableDeclaration","src":"4667:16:53","value":{"kind":"number","nativeSrc":"4681:2:53","nodeType":"YulLiteral","src":"4681:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4671:6:53","nodeType":"YulTypedName","src":"4671:6:53","type":""}]},{"nativeSrc":"4697:63:53","nodeType":"YulAssignment","src":"4697:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4732:9:53","nodeType":"YulIdentifier","src":"4732:9:53"},{"name":"offset","nativeSrc":"4743:6:53","nodeType":"YulIdentifier","src":"4743:6:53"}],"functionName":{"name":"add","nativeSrc":"4728:3:53","nodeType":"YulIdentifier","src":"4728:3:53"},"nativeSrc":"4728:22:53","nodeType":"YulFunctionCall","src":"4728:22:53"},{"name":"dataEnd","nativeSrc":"4752:7:53","nodeType":"YulIdentifier","src":"4752:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4707:20:53","nodeType":"YulIdentifier","src":"4707:20:53"},"nativeSrc":"4707:53:53","nodeType":"YulFunctionCall","src":"4707:53:53"},"variableNames":[{"name":"value1","nativeSrc":"4697:6:53","nodeType":"YulIdentifier","src":"4697:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"4303:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4348:9:53","nodeType":"YulTypedName","src":"4348:9:53","type":""},{"name":"dataEnd","nativeSrc":"4359:7:53","nodeType":"YulTypedName","src":"4359:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4371:6:53","nodeType":"YulTypedName","src":"4371:6:53","type":""},{"name":"value1","nativeSrc":"4379:6:53","nodeType":"YulTypedName","src":"4379:6:53","type":""}],"src":"4303:474:53"},{"body":{"nativeSrc":"4848:53:53","nodeType":"YulBlock","src":"4848:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4865:3:53","nodeType":"YulIdentifier","src":"4865:3:53"},{"arguments":[{"name":"value","nativeSrc":"4888:5:53","nodeType":"YulIdentifier","src":"4888:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4870:17:53","nodeType":"YulIdentifier","src":"4870:17:53"},"nativeSrc":"4870:24:53","nodeType":"YulFunctionCall","src":"4870:24:53"}],"functionName":{"name":"mstore","nativeSrc":"4858:6:53","nodeType":"YulIdentifier","src":"4858:6:53"},"nativeSrc":"4858:37:53","nodeType":"YulFunctionCall","src":"4858:37:53"},"nativeSrc":"4858:37:53","nodeType":"YulExpressionStatement","src":"4858:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"4783:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4836:5:53","nodeType":"YulTypedName","src":"4836:5:53","type":""},{"name":"pos","nativeSrc":"4843:3:53","nodeType":"YulTypedName","src":"4843:3:53","type":""}],"src":"4783:118:53"},{"body":{"nativeSrc":"5005:124:53","nodeType":"YulBlock","src":"5005:124:53","statements":[{"nativeSrc":"5015:26:53","nodeType":"YulAssignment","src":"5015:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5027:9:53","nodeType":"YulIdentifier","src":"5027:9:53"},{"kind":"number","nativeSrc":"5038:2:53","nodeType":"YulLiteral","src":"5038:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5023:3:53","nodeType":"YulIdentifier","src":"5023:3:53"},"nativeSrc":"5023:18:53","nodeType":"YulFunctionCall","src":"5023:18:53"},"variableNames":[{"name":"tail","nativeSrc":"5015:4:53","nodeType":"YulIdentifier","src":"5015:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5095:6:53","nodeType":"YulIdentifier","src":"5095:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"5108:9:53","nodeType":"YulIdentifier","src":"5108:9:53"},{"kind":"number","nativeSrc":"5119:1:53","nodeType":"YulLiteral","src":"5119:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5104:3:53","nodeType":"YulIdentifier","src":"5104:3:53"},"nativeSrc":"5104:17:53","nodeType":"YulFunctionCall","src":"5104:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5051:43:53","nodeType":"YulIdentifier","src":"5051:43:53"},"nativeSrc":"5051:71:53","nodeType":"YulFunctionCall","src":"5051:71:53"},"nativeSrc":"5051:71:53","nodeType":"YulExpressionStatement","src":"5051:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4907:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4977:9:53","nodeType":"YulTypedName","src":"4977:9:53","type":""},{"name":"value0","nativeSrc":"4989:6:53","nodeType":"YulTypedName","src":"4989:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5000:4:53","nodeType":"YulTypedName","src":"5000:4:53","type":""}],"src":"4907:222:53"},{"body":{"nativeSrc":"5235:519:53","nodeType":"YulBlock","src":"5235:519:53","statements":[{"body":{"nativeSrc":"5281:83:53","nodeType":"YulBlock","src":"5281:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5283:77:53","nodeType":"YulIdentifier","src":"5283:77:53"},"nativeSrc":"5283:79:53","nodeType":"YulFunctionCall","src":"5283:79:53"},"nativeSrc":"5283:79:53","nodeType":"YulExpressionStatement","src":"5283:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5256:7:53","nodeType":"YulIdentifier","src":"5256:7:53"},{"name":"headStart","nativeSrc":"5265:9:53","nodeType":"YulIdentifier","src":"5265:9:53"}],"functionName":{"name":"sub","nativeSrc":"5252:3:53","nodeType":"YulIdentifier","src":"5252:3:53"},"nativeSrc":"5252:23:53","nodeType":"YulFunctionCall","src":"5252:23:53"},{"kind":"number","nativeSrc":"5277:2:53","nodeType":"YulLiteral","src":"5277:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5248:3:53","nodeType":"YulIdentifier","src":"5248:3:53"},"nativeSrc":"5248:32:53","nodeType":"YulFunctionCall","src":"5248:32:53"},"nativeSrc":"5245:119:53","nodeType":"YulIf","src":"5245:119:53"},{"nativeSrc":"5374:117:53","nodeType":"YulBlock","src":"5374:117:53","statements":[{"nativeSrc":"5389:15:53","nodeType":"YulVariableDeclaration","src":"5389:15:53","value":{"kind":"number","nativeSrc":"5403:1:53","nodeType":"YulLiteral","src":"5403:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5393:6:53","nodeType":"YulTypedName","src":"5393:6:53","type":""}]},{"nativeSrc":"5418:63:53","nodeType":"YulAssignment","src":"5418:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5453:9:53","nodeType":"YulIdentifier","src":"5453:9:53"},{"name":"offset","nativeSrc":"5464:6:53","nodeType":"YulIdentifier","src":"5464:6:53"}],"functionName":{"name":"add","nativeSrc":"5449:3:53","nodeType":"YulIdentifier","src":"5449:3:53"},"nativeSrc":"5449:22:53","nodeType":"YulFunctionCall","src":"5449:22:53"},{"name":"dataEnd","nativeSrc":"5473:7:53","nodeType":"YulIdentifier","src":"5473:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5428:20:53","nodeType":"YulIdentifier","src":"5428:20:53"},"nativeSrc":"5428:53:53","nodeType":"YulFunctionCall","src":"5428:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5418:6:53","nodeType":"YulIdentifier","src":"5418:6:53"}]}]},{"nativeSrc":"5501:118:53","nodeType":"YulBlock","src":"5501:118:53","statements":[{"nativeSrc":"5516:16:53","nodeType":"YulVariableDeclaration","src":"5516:16:53","value":{"kind":"number","nativeSrc":"5530:2:53","nodeType":"YulLiteral","src":"5530:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5520:6:53","nodeType":"YulTypedName","src":"5520:6:53","type":""}]},{"nativeSrc":"5546:63:53","nodeType":"YulAssignment","src":"5546:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5581:9:53","nodeType":"YulIdentifier","src":"5581:9:53"},{"name":"offset","nativeSrc":"5592:6:53","nodeType":"YulIdentifier","src":"5592:6:53"}],"functionName":{"name":"add","nativeSrc":"5577:3:53","nodeType":"YulIdentifier","src":"5577:3:53"},"nativeSrc":"5577:22:53","nodeType":"YulFunctionCall","src":"5577:22:53"},{"name":"dataEnd","nativeSrc":"5601:7:53","nodeType":"YulIdentifier","src":"5601:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5556:20:53","nodeType":"YulIdentifier","src":"5556:20:53"},"nativeSrc":"5556:53:53","nodeType":"YulFunctionCall","src":"5556:53:53"},"variableNames":[{"name":"value1","nativeSrc":"5546:6:53","nodeType":"YulIdentifier","src":"5546:6:53"}]}]},{"nativeSrc":"5629:118:53","nodeType":"YulBlock","src":"5629:118:53","statements":[{"nativeSrc":"5644:16:53","nodeType":"YulVariableDeclaration","src":"5644:16:53","value":{"kind":"number","nativeSrc":"5658:2:53","nodeType":"YulLiteral","src":"5658:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5648:6:53","nodeType":"YulTypedName","src":"5648:6:53","type":""}]},{"nativeSrc":"5674:63:53","nodeType":"YulAssignment","src":"5674:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5709:9:53","nodeType":"YulIdentifier","src":"5709:9:53"},{"name":"offset","nativeSrc":"5720:6:53","nodeType":"YulIdentifier","src":"5720:6:53"}],"functionName":{"name":"add","nativeSrc":"5705:3:53","nodeType":"YulIdentifier","src":"5705:3:53"},"nativeSrc":"5705:22:53","nodeType":"YulFunctionCall","src":"5705:22:53"},{"name":"dataEnd","nativeSrc":"5729:7:53","nodeType":"YulIdentifier","src":"5729:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5684:20:53","nodeType":"YulIdentifier","src":"5684:20:53"},"nativeSrc":"5684:53:53","nodeType":"YulFunctionCall","src":"5684:53:53"},"variableNames":[{"name":"value2","nativeSrc":"5674:6:53","nodeType":"YulIdentifier","src":"5674:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"5135:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5189:9:53","nodeType":"YulTypedName","src":"5189:9:53","type":""},{"name":"dataEnd","nativeSrc":"5200:7:53","nodeType":"YulTypedName","src":"5200:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5212:6:53","nodeType":"YulTypedName","src":"5212:6:53","type":""},{"name":"value1","nativeSrc":"5220:6:53","nodeType":"YulTypedName","src":"5220:6:53","type":""},{"name":"value2","nativeSrc":"5228:6:53","nodeType":"YulTypedName","src":"5228:6:53","type":""}],"src":"5135:619:53"},{"body":{"nativeSrc":"5826:263:53","nodeType":"YulBlock","src":"5826:263:53","statements":[{"body":{"nativeSrc":"5872:83:53","nodeType":"YulBlock","src":"5872:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5874:77:53","nodeType":"YulIdentifier","src":"5874:77:53"},"nativeSrc":"5874:79:53","nodeType":"YulFunctionCall","src":"5874:79:53"},"nativeSrc":"5874:79:53","nodeType":"YulExpressionStatement","src":"5874:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5847:7:53","nodeType":"YulIdentifier","src":"5847:7:53"},{"name":"headStart","nativeSrc":"5856:9:53","nodeType":"YulIdentifier","src":"5856:9:53"}],"functionName":{"name":"sub","nativeSrc":"5843:3:53","nodeType":"YulIdentifier","src":"5843:3:53"},"nativeSrc":"5843:23:53","nodeType":"YulFunctionCall","src":"5843:23:53"},{"kind":"number","nativeSrc":"5868:2:53","nodeType":"YulLiteral","src":"5868:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5839:3:53","nodeType":"YulIdentifier","src":"5839:3:53"},"nativeSrc":"5839:32:53","nodeType":"YulFunctionCall","src":"5839:32:53"},"nativeSrc":"5836:119:53","nodeType":"YulIf","src":"5836:119:53"},{"nativeSrc":"5965:117:53","nodeType":"YulBlock","src":"5965:117:53","statements":[{"nativeSrc":"5980:15:53","nodeType":"YulVariableDeclaration","src":"5980:15:53","value":{"kind":"number","nativeSrc":"5994:1:53","nodeType":"YulLiteral","src":"5994:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5984:6:53","nodeType":"YulTypedName","src":"5984:6:53","type":""}]},{"nativeSrc":"6009:63:53","nodeType":"YulAssignment","src":"6009:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6044:9:53","nodeType":"YulIdentifier","src":"6044:9:53"},{"name":"offset","nativeSrc":"6055:6:53","nodeType":"YulIdentifier","src":"6055:6:53"}],"functionName":{"name":"add","nativeSrc":"6040:3:53","nodeType":"YulIdentifier","src":"6040:3:53"},"nativeSrc":"6040:22:53","nodeType":"YulFunctionCall","src":"6040:22:53"},{"name":"dataEnd","nativeSrc":"6064:7:53","nodeType":"YulIdentifier","src":"6064:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6019:20:53","nodeType":"YulIdentifier","src":"6019:20:53"},"nativeSrc":"6019:53:53","nodeType":"YulFunctionCall","src":"6019:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6009:6:53","nodeType":"YulIdentifier","src":"6009:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5760:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5796:9:53","nodeType":"YulTypedName","src":"5796:9:53","type":""},{"name":"dataEnd","nativeSrc":"5807:7:53","nodeType":"YulTypedName","src":"5807:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5819:6:53","nodeType":"YulTypedName","src":"5819:6:53","type":""}],"src":"5760:329:53"},{"body":{"nativeSrc":"6135:76:53","nodeType":"YulBlock","src":"6135:76:53","statements":[{"body":{"nativeSrc":"6189:16:53","nodeType":"YulBlock","src":"6189:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6198:1:53","nodeType":"YulLiteral","src":"6198:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6201:1:53","nodeType":"YulLiteral","src":"6201:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6191:6:53","nodeType":"YulIdentifier","src":"6191:6:53"},"nativeSrc":"6191:12:53","nodeType":"YulFunctionCall","src":"6191:12:53"},"nativeSrc":"6191:12:53","nodeType":"YulExpressionStatement","src":"6191:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6158:5:53","nodeType":"YulIdentifier","src":"6158:5:53"},{"arguments":[{"name":"value","nativeSrc":"6180:5:53","nodeType":"YulIdentifier","src":"6180:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6165:14:53","nodeType":"YulIdentifier","src":"6165:14:53"},"nativeSrc":"6165:21:53","nodeType":"YulFunctionCall","src":"6165:21:53"}],"functionName":{"name":"eq","nativeSrc":"6155:2:53","nodeType":"YulIdentifier","src":"6155:2:53"},"nativeSrc":"6155:32:53","nodeType":"YulFunctionCall","src":"6155:32:53"}],"functionName":{"name":"iszero","nativeSrc":"6148:6:53","nodeType":"YulIdentifier","src":"6148:6:53"},"nativeSrc":"6148:40:53","nodeType":"YulFunctionCall","src":"6148:40:53"},"nativeSrc":"6145:60:53","nodeType":"YulIf","src":"6145:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"6095:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6128:5:53","nodeType":"YulTypedName","src":"6128:5:53","type":""}],"src":"6095:116:53"},{"body":{"nativeSrc":"6266:84:53","nodeType":"YulBlock","src":"6266:84:53","statements":[{"nativeSrc":"6276:29:53","nodeType":"YulAssignment","src":"6276:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6298:6:53","nodeType":"YulIdentifier","src":"6298:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6285:12:53","nodeType":"YulIdentifier","src":"6285:12:53"},"nativeSrc":"6285:20:53","nodeType":"YulFunctionCall","src":"6285:20:53"},"variableNames":[{"name":"value","nativeSrc":"6276:5:53","nodeType":"YulIdentifier","src":"6276:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6338:5:53","nodeType":"YulIdentifier","src":"6338:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"6314:23:53","nodeType":"YulIdentifier","src":"6314:23:53"},"nativeSrc":"6314:30:53","nodeType":"YulFunctionCall","src":"6314:30:53"},"nativeSrc":"6314:30:53","nodeType":"YulExpressionStatement","src":"6314:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"6217:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6244:6:53","nodeType":"YulTypedName","src":"6244:6:53","type":""},{"name":"end","nativeSrc":"6252:3:53","nodeType":"YulTypedName","src":"6252:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6260:5:53","nodeType":"YulTypedName","src":"6260:5:53","type":""}],"src":"6217:133:53"},{"body":{"nativeSrc":"6436:388:53","nodeType":"YulBlock","src":"6436:388:53","statements":[{"body":{"nativeSrc":"6482:83:53","nodeType":"YulBlock","src":"6482:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6484:77:53","nodeType":"YulIdentifier","src":"6484:77:53"},"nativeSrc":"6484:79:53","nodeType":"YulFunctionCall","src":"6484:79:53"},"nativeSrc":"6484:79:53","nodeType":"YulExpressionStatement","src":"6484:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6457:7:53","nodeType":"YulIdentifier","src":"6457:7:53"},{"name":"headStart","nativeSrc":"6466:9:53","nodeType":"YulIdentifier","src":"6466:9:53"}],"functionName":{"name":"sub","nativeSrc":"6453:3:53","nodeType":"YulIdentifier","src":"6453:3:53"},"nativeSrc":"6453:23:53","nodeType":"YulFunctionCall","src":"6453:23:53"},{"kind":"number","nativeSrc":"6478:2:53","nodeType":"YulLiteral","src":"6478:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6449:3:53","nodeType":"YulIdentifier","src":"6449:3:53"},"nativeSrc":"6449:32:53","nodeType":"YulFunctionCall","src":"6449:32:53"},"nativeSrc":"6446:119:53","nodeType":"YulIf","src":"6446:119:53"},{"nativeSrc":"6575:117:53","nodeType":"YulBlock","src":"6575:117:53","statements":[{"nativeSrc":"6590:15:53","nodeType":"YulVariableDeclaration","src":"6590:15:53","value":{"kind":"number","nativeSrc":"6604:1:53","nodeType":"YulLiteral","src":"6604:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6594:6:53","nodeType":"YulTypedName","src":"6594:6:53","type":""}]},{"nativeSrc":"6619:63:53","nodeType":"YulAssignment","src":"6619:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6654:9:53","nodeType":"YulIdentifier","src":"6654:9:53"},{"name":"offset","nativeSrc":"6665:6:53","nodeType":"YulIdentifier","src":"6665:6:53"}],"functionName":{"name":"add","nativeSrc":"6650:3:53","nodeType":"YulIdentifier","src":"6650:3:53"},"nativeSrc":"6650:22:53","nodeType":"YulFunctionCall","src":"6650:22:53"},{"name":"dataEnd","nativeSrc":"6674:7:53","nodeType":"YulIdentifier","src":"6674:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6629:20:53","nodeType":"YulIdentifier","src":"6629:20:53"},"nativeSrc":"6629:53:53","nodeType":"YulFunctionCall","src":"6629:53:53"},"variableNames":[{"name":"value0","nativeSrc":"6619:6:53","nodeType":"YulIdentifier","src":"6619:6:53"}]}]},{"nativeSrc":"6702:115:53","nodeType":"YulBlock","src":"6702:115:53","statements":[{"nativeSrc":"6717:16:53","nodeType":"YulVariableDeclaration","src":"6717:16:53","value":{"kind":"number","nativeSrc":"6731:2:53","nodeType":"YulLiteral","src":"6731:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6721:6:53","nodeType":"YulTypedName","src":"6721:6:53","type":""}]},{"nativeSrc":"6747:60:53","nodeType":"YulAssignment","src":"6747:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6779:9:53","nodeType":"YulIdentifier","src":"6779:9:53"},{"name":"offset","nativeSrc":"6790:6:53","nodeType":"YulIdentifier","src":"6790:6:53"}],"functionName":{"name":"add","nativeSrc":"6775:3:53","nodeType":"YulIdentifier","src":"6775:3:53"},"nativeSrc":"6775:22:53","nodeType":"YulFunctionCall","src":"6775:22:53"},{"name":"dataEnd","nativeSrc":"6799:7:53","nodeType":"YulIdentifier","src":"6799:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"6757:17:53","nodeType":"YulIdentifier","src":"6757:17:53"},"nativeSrc":"6757:50:53","nodeType":"YulFunctionCall","src":"6757:50:53"},"variableNames":[{"name":"value1","nativeSrc":"6747:6:53","nodeType":"YulIdentifier","src":"6747:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"6356:468:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6398:9:53","nodeType":"YulTypedName","src":"6398:9:53","type":""},{"name":"dataEnd","nativeSrc":"6409:7:53","nodeType":"YulTypedName","src":"6409:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6421:6:53","nodeType":"YulTypedName","src":"6421:6:53","type":""},{"name":"value1","nativeSrc":"6429:6:53","nodeType":"YulTypedName","src":"6429:6:53","type":""}],"src":"6356:468:53"},{"body":{"nativeSrc":"6919:28:53","nodeType":"YulBlock","src":"6919:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6936:1:53","nodeType":"YulLiteral","src":"6936:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6939:1:53","nodeType":"YulLiteral","src":"6939:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6929:6:53","nodeType":"YulIdentifier","src":"6929:6:53"},"nativeSrc":"6929:12:53","nodeType":"YulFunctionCall","src":"6929:12:53"},"nativeSrc":"6929:12:53","nodeType":"YulExpressionStatement","src":"6929:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6830:117:53","nodeType":"YulFunctionDefinition","src":"6830:117:53"},{"body":{"nativeSrc":"7042:28:53","nodeType":"YulBlock","src":"7042:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7059:1:53","nodeType":"YulLiteral","src":"7059:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7062:1:53","nodeType":"YulLiteral","src":"7062:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7052:6:53","nodeType":"YulIdentifier","src":"7052:6:53"},"nativeSrc":"7052:12:53","nodeType":"YulFunctionCall","src":"7052:12:53"},"nativeSrc":"7052:12:53","nodeType":"YulExpressionStatement","src":"7052:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6953:117:53","nodeType":"YulFunctionDefinition","src":"6953:117:53"},{"body":{"nativeSrc":"7165:28:53","nodeType":"YulBlock","src":"7165:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7182:1:53","nodeType":"YulLiteral","src":"7182:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7185:1:53","nodeType":"YulLiteral","src":"7185:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7175:6:53","nodeType":"YulIdentifier","src":"7175:6:53"},"nativeSrc":"7175:12:53","nodeType":"YulFunctionCall","src":"7175:12:53"},"nativeSrc":"7175:12:53","nodeType":"YulExpressionStatement","src":"7175:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7076:117:53","nodeType":"YulFunctionDefinition","src":"7076:117:53"},{"body":{"nativeSrc":"7286:478:53","nodeType":"YulBlock","src":"7286:478:53","statements":[{"body":{"nativeSrc":"7335:83:53","nodeType":"YulBlock","src":"7335:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7337:77:53","nodeType":"YulIdentifier","src":"7337:77:53"},"nativeSrc":"7337:79:53","nodeType":"YulFunctionCall","src":"7337:79:53"},"nativeSrc":"7337:79:53","nodeType":"YulExpressionStatement","src":"7337:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7314:6:53","nodeType":"YulIdentifier","src":"7314:6:53"},{"kind":"number","nativeSrc":"7322:4:53","nodeType":"YulLiteral","src":"7322:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7310:3:53","nodeType":"YulIdentifier","src":"7310:3:53"},"nativeSrc":"7310:17:53","nodeType":"YulFunctionCall","src":"7310:17:53"},{"name":"end","nativeSrc":"7329:3:53","nodeType":"YulIdentifier","src":"7329:3:53"}],"functionName":{"name":"slt","nativeSrc":"7306:3:53","nodeType":"YulIdentifier","src":"7306:3:53"},"nativeSrc":"7306:27:53","nodeType":"YulFunctionCall","src":"7306:27:53"}],"functionName":{"name":"iszero","nativeSrc":"7299:6:53","nodeType":"YulIdentifier","src":"7299:6:53"},"nativeSrc":"7299:35:53","nodeType":"YulFunctionCall","src":"7299:35:53"},"nativeSrc":"7296:122:53","nodeType":"YulIf","src":"7296:122:53"},{"nativeSrc":"7427:30:53","nodeType":"YulAssignment","src":"7427:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"7450:6:53","nodeType":"YulIdentifier","src":"7450:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7437:12:53","nodeType":"YulIdentifier","src":"7437:12:53"},"nativeSrc":"7437:20:53","nodeType":"YulFunctionCall","src":"7437:20:53"},"variableNames":[{"name":"length","nativeSrc":"7427:6:53","nodeType":"YulIdentifier","src":"7427:6:53"}]},{"body":{"nativeSrc":"7500:83:53","nodeType":"YulBlock","src":"7500:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7502:77:53","nodeType":"YulIdentifier","src":"7502:77:53"},"nativeSrc":"7502:79:53","nodeType":"YulFunctionCall","src":"7502:79:53"},"nativeSrc":"7502:79:53","nodeType":"YulExpressionStatement","src":"7502:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7472:6:53","nodeType":"YulIdentifier","src":"7472:6:53"},{"kind":"number","nativeSrc":"7480:18:53","nodeType":"YulLiteral","src":"7480:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7469:2:53","nodeType":"YulIdentifier","src":"7469:2:53"},"nativeSrc":"7469:30:53","nodeType":"YulFunctionCall","src":"7469:30:53"},"nativeSrc":"7466:117:53","nodeType":"YulIf","src":"7466:117:53"},{"nativeSrc":"7592:29:53","nodeType":"YulAssignment","src":"7592:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7608:6:53","nodeType":"YulIdentifier","src":"7608:6:53"},{"kind":"number","nativeSrc":"7616:4:53","nodeType":"YulLiteral","src":"7616:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7604:3:53","nodeType":"YulIdentifier","src":"7604:3:53"},"nativeSrc":"7604:17:53","nodeType":"YulFunctionCall","src":"7604:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"7592:8:53","nodeType":"YulIdentifier","src":"7592:8:53"}]},{"body":{"nativeSrc":"7675:83:53","nodeType":"YulBlock","src":"7675:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7677:77:53","nodeType":"YulIdentifier","src":"7677:77:53"},"nativeSrc":"7677:79:53","nodeType":"YulFunctionCall","src":"7677:79:53"},"nativeSrc":"7677:79:53","nodeType":"YulExpressionStatement","src":"7677:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7640:8:53","nodeType":"YulIdentifier","src":"7640:8:53"},{"arguments":[{"name":"length","nativeSrc":"7654:6:53","nodeType":"YulIdentifier","src":"7654:6:53"},{"kind":"number","nativeSrc":"7662:4:53","nodeType":"YulLiteral","src":"7662:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"7650:3:53","nodeType":"YulIdentifier","src":"7650:3:53"},"nativeSrc":"7650:17:53","nodeType":"YulFunctionCall","src":"7650:17:53"}],"functionName":{"name":"add","nativeSrc":"7636:3:53","nodeType":"YulIdentifier","src":"7636:3:53"},"nativeSrc":"7636:32:53","nodeType":"YulFunctionCall","src":"7636:32:53"},{"name":"end","nativeSrc":"7670:3:53","nodeType":"YulIdentifier","src":"7670:3:53"}],"functionName":{"name":"gt","nativeSrc":"7633:2:53","nodeType":"YulIdentifier","src":"7633:2:53"},"nativeSrc":"7633:41:53","nodeType":"YulFunctionCall","src":"7633:41:53"},"nativeSrc":"7630:128:53","nodeType":"YulIf","src":"7630:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7212:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7253:6:53","nodeType":"YulTypedName","src":"7253:6:53","type":""},{"name":"end","nativeSrc":"7261:3:53","nodeType":"YulTypedName","src":"7261:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7269:8:53","nodeType":"YulTypedName","src":"7269:8:53","type":""},{"name":"length","nativeSrc":"7279:6:53","nodeType":"YulTypedName","src":"7279:6:53","type":""}],"src":"7212:552:53"},{"body":{"nativeSrc":"7906:827:53","nodeType":"YulBlock","src":"7906:827:53","statements":[{"body":{"nativeSrc":"7953:83:53","nodeType":"YulBlock","src":"7953:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7955:77:53","nodeType":"YulIdentifier","src":"7955:77:53"},"nativeSrc":"7955:79:53","nodeType":"YulFunctionCall","src":"7955:79:53"},"nativeSrc":"7955:79:53","nodeType":"YulExpressionStatement","src":"7955:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7927:7:53","nodeType":"YulIdentifier","src":"7927:7:53"},{"name":"headStart","nativeSrc":"7936:9:53","nodeType":"YulIdentifier","src":"7936:9:53"}],"functionName":{"name":"sub","nativeSrc":"7923:3:53","nodeType":"YulIdentifier","src":"7923:3:53"},"nativeSrc":"7923:23:53","nodeType":"YulFunctionCall","src":"7923:23:53"},{"kind":"number","nativeSrc":"7948:3:53","nodeType":"YulLiteral","src":"7948:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"7919:3:53","nodeType":"YulIdentifier","src":"7919:3:53"},"nativeSrc":"7919:33:53","nodeType":"YulFunctionCall","src":"7919:33:53"},"nativeSrc":"7916:120:53","nodeType":"YulIf","src":"7916:120:53"},{"nativeSrc":"8046:117:53","nodeType":"YulBlock","src":"8046:117:53","statements":[{"nativeSrc":"8061:15:53","nodeType":"YulVariableDeclaration","src":"8061:15:53","value":{"kind":"number","nativeSrc":"8075:1:53","nodeType":"YulLiteral","src":"8075:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8065:6:53","nodeType":"YulTypedName","src":"8065:6:53","type":""}]},{"nativeSrc":"8090:63:53","nodeType":"YulAssignment","src":"8090:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8125:9:53","nodeType":"YulIdentifier","src":"8125:9:53"},{"name":"offset","nativeSrc":"8136:6:53","nodeType":"YulIdentifier","src":"8136:6:53"}],"functionName":{"name":"add","nativeSrc":"8121:3:53","nodeType":"YulIdentifier","src":"8121:3:53"},"nativeSrc":"8121:22:53","nodeType":"YulFunctionCall","src":"8121:22:53"},{"name":"dataEnd","nativeSrc":"8145:7:53","nodeType":"YulIdentifier","src":"8145:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8100:20:53","nodeType":"YulIdentifier","src":"8100:20:53"},"nativeSrc":"8100:53:53","nodeType":"YulFunctionCall","src":"8100:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8090:6:53","nodeType":"YulIdentifier","src":"8090:6:53"}]}]},{"nativeSrc":"8173:118:53","nodeType":"YulBlock","src":"8173:118:53","statements":[{"nativeSrc":"8188:16:53","nodeType":"YulVariableDeclaration","src":"8188:16:53","value":{"kind":"number","nativeSrc":"8202:2:53","nodeType":"YulLiteral","src":"8202:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8192:6:53","nodeType":"YulTypedName","src":"8192:6:53","type":""}]},{"nativeSrc":"8218:63:53","nodeType":"YulAssignment","src":"8218:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8253:9:53","nodeType":"YulIdentifier","src":"8253:9:53"},{"name":"offset","nativeSrc":"8264:6:53","nodeType":"YulIdentifier","src":"8264:6:53"}],"functionName":{"name":"add","nativeSrc":"8249:3:53","nodeType":"YulIdentifier","src":"8249:3:53"},"nativeSrc":"8249:22:53","nodeType":"YulFunctionCall","src":"8249:22:53"},{"name":"dataEnd","nativeSrc":"8273:7:53","nodeType":"YulIdentifier","src":"8273:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8228:20:53","nodeType":"YulIdentifier","src":"8228:20:53"},"nativeSrc":"8228:53:53","nodeType":"YulFunctionCall","src":"8228:53:53"},"variableNames":[{"name":"value1","nativeSrc":"8218:6:53","nodeType":"YulIdentifier","src":"8218:6:53"}]}]},{"nativeSrc":"8301:118:53","nodeType":"YulBlock","src":"8301:118:53","statements":[{"nativeSrc":"8316:16:53","nodeType":"YulVariableDeclaration","src":"8316:16:53","value":{"kind":"number","nativeSrc":"8330:2:53","nodeType":"YulLiteral","src":"8330:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8320:6:53","nodeType":"YulTypedName","src":"8320:6:53","type":""}]},{"nativeSrc":"8346:63:53","nodeType":"YulAssignment","src":"8346:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8381:9:53","nodeType":"YulIdentifier","src":"8381:9:53"},{"name":"offset","nativeSrc":"8392:6:53","nodeType":"YulIdentifier","src":"8392:6:53"}],"functionName":{"name":"add","nativeSrc":"8377:3:53","nodeType":"YulIdentifier","src":"8377:3:53"},"nativeSrc":"8377:22:53","nodeType":"YulFunctionCall","src":"8377:22:53"},{"name":"dataEnd","nativeSrc":"8401:7:53","nodeType":"YulIdentifier","src":"8401:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8356:20:53","nodeType":"YulIdentifier","src":"8356:20:53"},"nativeSrc":"8356:53:53","nodeType":"YulFunctionCall","src":"8356:53:53"},"variableNames":[{"name":"value2","nativeSrc":"8346:6:53","nodeType":"YulIdentifier","src":"8346:6:53"}]}]},{"nativeSrc":"8429:297:53","nodeType":"YulBlock","src":"8429:297:53","statements":[{"nativeSrc":"8444:46:53","nodeType":"YulVariableDeclaration","src":"8444:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8475:9:53","nodeType":"YulIdentifier","src":"8475:9:53"},{"kind":"number","nativeSrc":"8486:2:53","nodeType":"YulLiteral","src":"8486:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8471:3:53","nodeType":"YulIdentifier","src":"8471:3:53"},"nativeSrc":"8471:18:53","nodeType":"YulFunctionCall","src":"8471:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8458:12:53","nodeType":"YulIdentifier","src":"8458:12:53"},"nativeSrc":"8458:32:53","nodeType":"YulFunctionCall","src":"8458:32:53"},"variables":[{"name":"offset","nativeSrc":"8448:6:53","nodeType":"YulTypedName","src":"8448:6:53","type":""}]},{"body":{"nativeSrc":"8537:83:53","nodeType":"YulBlock","src":"8537:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8539:77:53","nodeType":"YulIdentifier","src":"8539:77:53"},"nativeSrc":"8539:79:53","nodeType":"YulFunctionCall","src":"8539:79:53"},"nativeSrc":"8539:79:53","nodeType":"YulExpressionStatement","src":"8539:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8509:6:53","nodeType":"YulIdentifier","src":"8509:6:53"},{"kind":"number","nativeSrc":"8517:18:53","nodeType":"YulLiteral","src":"8517:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8506:2:53","nodeType":"YulIdentifier","src":"8506:2:53"},"nativeSrc":"8506:30:53","nodeType":"YulFunctionCall","src":"8506:30:53"},"nativeSrc":"8503:117:53","nodeType":"YulIf","src":"8503:117:53"},{"nativeSrc":"8634:82:53","nodeType":"YulAssignment","src":"8634:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8688:9:53","nodeType":"YulIdentifier","src":"8688:9:53"},{"name":"offset","nativeSrc":"8699:6:53","nodeType":"YulIdentifier","src":"8699:6:53"}],"functionName":{"name":"add","nativeSrc":"8684:3:53","nodeType":"YulIdentifier","src":"8684:3:53"},"nativeSrc":"8684:22:53","nodeType":"YulFunctionCall","src":"8684:22:53"},{"name":"dataEnd","nativeSrc":"8708:7:53","nodeType":"YulIdentifier","src":"8708:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"8652:31:53","nodeType":"YulIdentifier","src":"8652:31:53"},"nativeSrc":"8652:64:53","nodeType":"YulFunctionCall","src":"8652:64:53"},"variableNames":[{"name":"value3","nativeSrc":"8634:6:53","nodeType":"YulIdentifier","src":"8634:6:53"},{"name":"value4","nativeSrc":"8642:6:53","nodeType":"YulIdentifier","src":"8642:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"7770:963:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7844:9:53","nodeType":"YulTypedName","src":"7844:9:53","type":""},{"name":"dataEnd","nativeSrc":"7855:7:53","nodeType":"YulTypedName","src":"7855:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7867:6:53","nodeType":"YulTypedName","src":"7867:6:53","type":""},{"name":"value1","nativeSrc":"7875:6:53","nodeType":"YulTypedName","src":"7875:6:53","type":""},{"name":"value2","nativeSrc":"7883:6:53","nodeType":"YulTypedName","src":"7883:6:53","type":""},{"name":"value3","nativeSrc":"7891:6:53","nodeType":"YulTypedName","src":"7891:6:53","type":""},{"name":"value4","nativeSrc":"7899:6:53","nodeType":"YulTypedName","src":"7899:6:53","type":""}],"src":"7770:963:53"},{"body":{"nativeSrc":"8822:391:53","nodeType":"YulBlock","src":"8822:391:53","statements":[{"body":{"nativeSrc":"8868:83:53","nodeType":"YulBlock","src":"8868:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8870:77:53","nodeType":"YulIdentifier","src":"8870:77:53"},"nativeSrc":"8870:79:53","nodeType":"YulFunctionCall","src":"8870:79:53"},"nativeSrc":"8870:79:53","nodeType":"YulExpressionStatement","src":"8870:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8843:7:53","nodeType":"YulIdentifier","src":"8843:7:53"},{"name":"headStart","nativeSrc":"8852:9:53","nodeType":"YulIdentifier","src":"8852:9:53"}],"functionName":{"name":"sub","nativeSrc":"8839:3:53","nodeType":"YulIdentifier","src":"8839:3:53"},"nativeSrc":"8839:23:53","nodeType":"YulFunctionCall","src":"8839:23:53"},{"kind":"number","nativeSrc":"8864:2:53","nodeType":"YulLiteral","src":"8864:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8835:3:53","nodeType":"YulIdentifier","src":"8835:3:53"},"nativeSrc":"8835:32:53","nodeType":"YulFunctionCall","src":"8835:32:53"},"nativeSrc":"8832:119:53","nodeType":"YulIf","src":"8832:119:53"},{"nativeSrc":"8961:117:53","nodeType":"YulBlock","src":"8961:117:53","statements":[{"nativeSrc":"8976:15:53","nodeType":"YulVariableDeclaration","src":"8976:15:53","value":{"kind":"number","nativeSrc":"8990:1:53","nodeType":"YulLiteral","src":"8990:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8980:6:53","nodeType":"YulTypedName","src":"8980:6:53","type":""}]},{"nativeSrc":"9005:63:53","nodeType":"YulAssignment","src":"9005:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9040:9:53","nodeType":"YulIdentifier","src":"9040:9:53"},{"name":"offset","nativeSrc":"9051:6:53","nodeType":"YulIdentifier","src":"9051:6:53"}],"functionName":{"name":"add","nativeSrc":"9036:3:53","nodeType":"YulIdentifier","src":"9036:3:53"},"nativeSrc":"9036:22:53","nodeType":"YulFunctionCall","src":"9036:22:53"},{"name":"dataEnd","nativeSrc":"9060:7:53","nodeType":"YulIdentifier","src":"9060:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9015:20:53","nodeType":"YulIdentifier","src":"9015:20:53"},"nativeSrc":"9015:53:53","nodeType":"YulFunctionCall","src":"9015:53:53"},"variableNames":[{"name":"value0","nativeSrc":"9005:6:53","nodeType":"YulIdentifier","src":"9005:6:53"}]}]},{"nativeSrc":"9088:118:53","nodeType":"YulBlock","src":"9088:118:53","statements":[{"nativeSrc":"9103:16:53","nodeType":"YulVariableDeclaration","src":"9103:16:53","value":{"kind":"number","nativeSrc":"9117:2:53","nodeType":"YulLiteral","src":"9117:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9107:6:53","nodeType":"YulTypedName","src":"9107:6:53","type":""}]},{"nativeSrc":"9133:63:53","nodeType":"YulAssignment","src":"9133:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9168:9:53","nodeType":"YulIdentifier","src":"9168:9:53"},{"name":"offset","nativeSrc":"9179:6:53","nodeType":"YulIdentifier","src":"9179:6:53"}],"functionName":{"name":"add","nativeSrc":"9164:3:53","nodeType":"YulIdentifier","src":"9164:3:53"},"nativeSrc":"9164:22:53","nodeType":"YulFunctionCall","src":"9164:22:53"},{"name":"dataEnd","nativeSrc":"9188:7:53","nodeType":"YulIdentifier","src":"9188:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9143:20:53","nodeType":"YulIdentifier","src":"9143:20:53"},"nativeSrc":"9143:53:53","nodeType":"YulFunctionCall","src":"9143:53:53"},"variableNames":[{"name":"value1","nativeSrc":"9133:6:53","nodeType":"YulIdentifier","src":"9133:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"8739:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8784:9:53","nodeType":"YulTypedName","src":"8784:9:53","type":""},{"name":"dataEnd","nativeSrc":"8795:7:53","nodeType":"YulTypedName","src":"8795:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8807:6:53","nodeType":"YulTypedName","src":"8807:6:53","type":""},{"name":"value1","nativeSrc":"8815:6:53","nodeType":"YulTypedName","src":"8815:6:53","type":""}],"src":"8739:474:53"},{"body":{"nativeSrc":"9325:73:53","nodeType":"YulBlock","src":"9325:73:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9347:6:53","nodeType":"YulIdentifier","src":"9347:6:53"},{"kind":"number","nativeSrc":"9355:1:53","nodeType":"YulLiteral","src":"9355:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9343:3:53","nodeType":"YulIdentifier","src":"9343:3:53"},"nativeSrc":"9343:14:53","nodeType":"YulFunctionCall","src":"9343:14:53"},{"hexValue":"4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e657921","kind":"string","nativeSrc":"9359:31:53","nodeType":"YulLiteral","src":"9359:31:53","type":"","value":"MockERC721: gimme more money!"}],"functionName":{"name":"mstore","nativeSrc":"9336:6:53","nodeType":"YulIdentifier","src":"9336:6:53"},"nativeSrc":"9336:55:53","nodeType":"YulFunctionCall","src":"9336:55:53"},"nativeSrc":"9336:55:53","nodeType":"YulExpressionStatement","src":"9336:55:53"}]},"name":"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","nativeSrc":"9219:179:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9317:6:53","nodeType":"YulTypedName","src":"9317:6:53","type":""}],"src":"9219:179:53"},{"body":{"nativeSrc":"9550:220:53","nodeType":"YulBlock","src":"9550:220:53","statements":[{"nativeSrc":"9560:74:53","nodeType":"YulAssignment","src":"9560:74:53","value":{"arguments":[{"name":"pos","nativeSrc":"9626:3:53","nodeType":"YulIdentifier","src":"9626:3:53"},{"kind":"number","nativeSrc":"9631:2:53","nodeType":"YulLiteral","src":"9631:2:53","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9567:58:53","nodeType":"YulIdentifier","src":"9567:58:53"},"nativeSrc":"9567:67:53","nodeType":"YulFunctionCall","src":"9567:67:53"},"variableNames":[{"name":"pos","nativeSrc":"9560:3:53","nodeType":"YulIdentifier","src":"9560:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9732:3:53","nodeType":"YulIdentifier","src":"9732:3:53"}],"functionName":{"name":"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","nativeSrc":"9643:88:53","nodeType":"YulIdentifier","src":"9643:88:53"},"nativeSrc":"9643:93:53","nodeType":"YulFunctionCall","src":"9643:93:53"},"nativeSrc":"9643:93:53","nodeType":"YulExpressionStatement","src":"9643:93:53"},{"nativeSrc":"9745:19:53","nodeType":"YulAssignment","src":"9745:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"9756:3:53","nodeType":"YulIdentifier","src":"9756:3:53"},{"kind":"number","nativeSrc":"9761:2:53","nodeType":"YulLiteral","src":"9761:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9752:3:53","nodeType":"YulIdentifier","src":"9752:3:53"},"nativeSrc":"9752:12:53","nodeType":"YulFunctionCall","src":"9752:12:53"},"variableNames":[{"name":"end","nativeSrc":"9745:3:53","nodeType":"YulIdentifier","src":"9745:3:53"}]}]},"name":"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack","nativeSrc":"9404:366:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9538:3:53","nodeType":"YulTypedName","src":"9538:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9546:3:53","nodeType":"YulTypedName","src":"9546:3:53","type":""}],"src":"9404:366:53"},{"body":{"nativeSrc":"9947:248:53","nodeType":"YulBlock","src":"9947:248:53","statements":[{"nativeSrc":"9957:26:53","nodeType":"YulAssignment","src":"9957:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9969:9:53","nodeType":"YulIdentifier","src":"9969:9:53"},{"kind":"number","nativeSrc":"9980:2:53","nodeType":"YulLiteral","src":"9980:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9965:3:53","nodeType":"YulIdentifier","src":"9965:3:53"},"nativeSrc":"9965:18:53","nodeType":"YulFunctionCall","src":"9965:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9957:4:53","nodeType":"YulIdentifier","src":"9957:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10004:9:53","nodeType":"YulIdentifier","src":"10004:9:53"},{"kind":"number","nativeSrc":"10015:1:53","nodeType":"YulLiteral","src":"10015:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10000:3:53","nodeType":"YulIdentifier","src":"10000:3:53"},"nativeSrc":"10000:17:53","nodeType":"YulFunctionCall","src":"10000:17:53"},{"arguments":[{"name":"tail","nativeSrc":"10023:4:53","nodeType":"YulIdentifier","src":"10023:4:53"},{"name":"headStart","nativeSrc":"10029:9:53","nodeType":"YulIdentifier","src":"10029:9:53"}],"functionName":{"name":"sub","nativeSrc":"10019:3:53","nodeType":"YulIdentifier","src":"10019:3:53"},"nativeSrc":"10019:20:53","nodeType":"YulFunctionCall","src":"10019:20:53"}],"functionName":{"name":"mstore","nativeSrc":"9993:6:53","nodeType":"YulIdentifier","src":"9993:6:53"},"nativeSrc":"9993:47:53","nodeType":"YulFunctionCall","src":"9993:47:53"},"nativeSrc":"9993:47:53","nodeType":"YulExpressionStatement","src":"9993:47:53"},{"nativeSrc":"10049:139:53","nodeType":"YulAssignment","src":"10049:139:53","value":{"arguments":[{"name":"tail","nativeSrc":"10183:4:53","nodeType":"YulIdentifier","src":"10183:4:53"}],"functionName":{"name":"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack","nativeSrc":"10057:124:53","nodeType":"YulIdentifier","src":"10057:124:53"},"nativeSrc":"10057:131:53","nodeType":"YulFunctionCall","src":"10057:131:53"},"variableNames":[{"name":"tail","nativeSrc":"10049:4:53","nodeType":"YulIdentifier","src":"10049:4:53"}]}]},"name":"abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9776:419:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9927:9:53","nodeType":"YulTypedName","src":"9927:9:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9942:4:53","nodeType":"YulTypedName","src":"9942:4:53","type":""}],"src":"9776:419:53"},{"body":{"nativeSrc":"10229:152:53","nodeType":"YulBlock","src":"10229:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10246:1:53","nodeType":"YulLiteral","src":"10246:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10249:77:53","nodeType":"YulLiteral","src":"10249:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10239:6:53","nodeType":"YulIdentifier","src":"10239:6:53"},"nativeSrc":"10239:88:53","nodeType":"YulFunctionCall","src":"10239:88:53"},"nativeSrc":"10239:88:53","nodeType":"YulExpressionStatement","src":"10239:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10343:1:53","nodeType":"YulLiteral","src":"10343:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"10346:4:53","nodeType":"YulLiteral","src":"10346:4:53","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"10336:6:53","nodeType":"YulIdentifier","src":"10336:6:53"},"nativeSrc":"10336:15:53","nodeType":"YulFunctionCall","src":"10336:15:53"},"nativeSrc":"10336:15:53","nodeType":"YulExpressionStatement","src":"10336:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10367:1:53","nodeType":"YulLiteral","src":"10367:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10370:4:53","nodeType":"YulLiteral","src":"10370:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10360:6:53","nodeType":"YulIdentifier","src":"10360:6:53"},"nativeSrc":"10360:15:53","nodeType":"YulFunctionCall","src":"10360:15:53"},"nativeSrc":"10360:15:53","nodeType":"YulExpressionStatement","src":"10360:15:53"}]},"name":"panic_error_0x11","nativeSrc":"10201:180:53","nodeType":"YulFunctionDefinition","src":"10201:180:53"},{"body":{"nativeSrc":"10430:190:53","nodeType":"YulBlock","src":"10430:190:53","statements":[{"nativeSrc":"10440:33:53","nodeType":"YulAssignment","src":"10440:33:53","value":{"arguments":[{"name":"value","nativeSrc":"10467:5:53","nodeType":"YulIdentifier","src":"10467:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10449:17:53","nodeType":"YulIdentifier","src":"10449:17:53"},"nativeSrc":"10449:24:53","nodeType":"YulFunctionCall","src":"10449:24:53"},"variableNames":[{"name":"value","nativeSrc":"10440:5:53","nodeType":"YulIdentifier","src":"10440:5:53"}]},{"body":{"nativeSrc":"10563:22:53","nodeType":"YulBlock","src":"10563:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10565:16:53","nodeType":"YulIdentifier","src":"10565:16:53"},"nativeSrc":"10565:18:53","nodeType":"YulFunctionCall","src":"10565:18:53"},"nativeSrc":"10565:18:53","nodeType":"YulExpressionStatement","src":"10565:18:53"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"10488:5:53","nodeType":"YulIdentifier","src":"10488:5:53"},{"kind":"number","nativeSrc":"10495:66:53","nodeType":"YulLiteral","src":"10495:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"10485:2:53","nodeType":"YulIdentifier","src":"10485:2:53"},"nativeSrc":"10485:77:53","nodeType":"YulFunctionCall","src":"10485:77:53"},"nativeSrc":"10482:103:53","nodeType":"YulIf","src":"10482:103:53"},{"nativeSrc":"10594:20:53","nodeType":"YulAssignment","src":"10594:20:53","value":{"arguments":[{"name":"value","nativeSrc":"10605:5:53","nodeType":"YulIdentifier","src":"10605:5:53"},{"kind":"number","nativeSrc":"10612:1:53","nodeType":"YulLiteral","src":"10612:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10601:3:53","nodeType":"YulIdentifier","src":"10601:3:53"},"nativeSrc":"10601:13:53","nodeType":"YulFunctionCall","src":"10601:13:53"},"variableNames":[{"name":"ret","nativeSrc":"10594:3:53","nodeType":"YulIdentifier","src":"10594:3:53"}]}]},"name":"increment_t_uint256","nativeSrc":"10387:233:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10416:5:53","nodeType":"YulTypedName","src":"10416:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"10426:3:53","nodeType":"YulTypedName","src":"10426:3:53","type":""}],"src":"10387:233:53"},{"body":{"nativeSrc":"10740:34:53","nodeType":"YulBlock","src":"10740:34:53","statements":[{"nativeSrc":"10750:18:53","nodeType":"YulAssignment","src":"10750:18:53","value":{"name":"pos","nativeSrc":"10765:3:53","nodeType":"YulIdentifier","src":"10765:3:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"10750:11:53","nodeType":"YulIdentifier","src":"10750:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"10626:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10712:3:53","nodeType":"YulTypedName","src":"10712:3:53","type":""},{"name":"length","nativeSrc":"10717:6:53","nodeType":"YulTypedName","src":"10717:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10728:11:53","nodeType":"YulTypedName","src":"10728:11:53","type":""}],"src":"10626:148:53"},{"body":{"nativeSrc":"10886:74:53","nodeType":"YulBlock","src":"10886:74:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10908:6:53","nodeType":"YulIdentifier","src":"10908:6:53"},{"kind":"number","nativeSrc":"10916:1:53","nodeType":"YulLiteral","src":"10916:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10904:3:53","nodeType":"YulIdentifier","src":"10904:3:53"},"nativeSrc":"10904:14:53","nodeType":"YulFunctionCall","src":"10904:14:53"},{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f","kind":"string","nativeSrc":"10920:28:53","nodeType":"YulLiteral","src":"10920:28:53","type":"","value":"https://example.com/token/"}],"functionName":{"name":"mstore","nativeSrc":"10897:6:53","nodeType":"YulIdentifier","src":"10897:6:53"},"nativeSrc":"10897:52:53","nodeType":"YulFunctionCall","src":"10897:52:53"},"nativeSrc":"10897:52:53","nodeType":"YulExpressionStatement","src":"10897:52:53"}]},"name":"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","nativeSrc":"10780:180:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10878:6:53","nodeType":"YulTypedName","src":"10878:6:53","type":""}],"src":"10780:180:53"},{"body":{"nativeSrc":"11134:254:53","nodeType":"YulBlock","src":"11134:254:53","statements":[{"nativeSrc":"11148:92:53","nodeType":"YulAssignment","src":"11148:92:53","value":{"arguments":[{"name":"pos","nativeSrc":"11232:3:53","nodeType":"YulIdentifier","src":"11232:3:53"},{"kind":"number","nativeSrc":"11237:2:53","nodeType":"YulLiteral","src":"11237:2:53","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11155:76:53","nodeType":"YulIdentifier","src":"11155:76:53"},"nativeSrc":"11155:85:53","nodeType":"YulFunctionCall","src":"11155:85:53"},"variableNames":[{"name":"pos","nativeSrc":"11148:3:53","nodeType":"YulIdentifier","src":"11148:3:53"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11342:3:53","nodeType":"YulIdentifier","src":"11342:3:53"}],"functionName":{"name":"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","nativeSrc":"11253:88:53","nodeType":"YulIdentifier","src":"11253:88:53"},"nativeSrc":"11253:93:53","nodeType":"YulFunctionCall","src":"11253:93:53"},"nativeSrc":"11253:93:53","nodeType":"YulExpressionStatement","src":"11253:93:53"},{"nativeSrc":"11359:19:53","nodeType":"YulAssignment","src":"11359:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"11370:3:53","nodeType":"YulIdentifier","src":"11370:3:53"},{"kind":"number","nativeSrc":"11375:2:53","nodeType":"YulLiteral","src":"11375:2:53","type":"","value":"26"}],"functionName":{"name":"add","nativeSrc":"11366:3:53","nodeType":"YulIdentifier","src":"11366:3:53"},"nativeSrc":"11366:12:53","nodeType":"YulFunctionCall","src":"11366:12:53"},"variableNames":[{"name":"end","nativeSrc":"11359:3:53","nodeType":"YulIdentifier","src":"11359:3:53"}]}]},"name":"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"10970:418:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11122:3:53","nodeType":"YulTypedName","src":"11122:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11130:3:53","nodeType":"YulTypedName","src":"11130:3:53","type":""}],"src":"10970:418:53"},{"body":{"nativeSrc":"11508:300:53","nodeType":"YulBlock","src":"11508:300:53","statements":[{"nativeSrc":"11522:53:53","nodeType":"YulVariableDeclaration","src":"11522:53:53","value":{"arguments":[{"name":"value","nativeSrc":"11569:5:53","nodeType":"YulIdentifier","src":"11569:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11536:32:53","nodeType":"YulIdentifier","src":"11536:32:53"},"nativeSrc":"11536:39:53","nodeType":"YulFunctionCall","src":"11536:39:53"},"variables":[{"name":"length","nativeSrc":"11526:6:53","nodeType":"YulTypedName","src":"11526:6:53","type":""}]},{"nativeSrc":"11588:96:53","nodeType":"YulAssignment","src":"11588:96:53","value":{"arguments":[{"name":"pos","nativeSrc":"11672:3:53","nodeType":"YulIdentifier","src":"11672:3:53"},{"name":"length","nativeSrc":"11677:6:53","nodeType":"YulIdentifier","src":"11677:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11595:76:53","nodeType":"YulIdentifier","src":"11595:76:53"},"nativeSrc":"11595:89:53","nodeType":"YulFunctionCall","src":"11595:89:53"},"variableNames":[{"name":"pos","nativeSrc":"11588:3:53","nodeType":"YulIdentifier","src":"11588:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11736:5:53","nodeType":"YulIdentifier","src":"11736:5:53"},{"kind":"number","nativeSrc":"11743:4:53","nodeType":"YulLiteral","src":"11743:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11732:3:53","nodeType":"YulIdentifier","src":"11732:3:53"},"nativeSrc":"11732:16:53","nodeType":"YulFunctionCall","src":"11732:16:53"},{"name":"pos","nativeSrc":"11750:3:53","nodeType":"YulIdentifier","src":"11750:3:53"},{"name":"length","nativeSrc":"11755:6:53","nodeType":"YulIdentifier","src":"11755:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11697:34:53","nodeType":"YulIdentifier","src":"11697:34:53"},"nativeSrc":"11697:65:53","nodeType":"YulFunctionCall","src":"11697:65:53"},"nativeSrc":"11697:65:53","nodeType":"YulExpressionStatement","src":"11697:65:53"},{"nativeSrc":"11775:23:53","nodeType":"YulAssignment","src":"11775:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"11786:3:53","nodeType":"YulIdentifier","src":"11786:3:53"},{"name":"length","nativeSrc":"11791:6:53","nodeType":"YulIdentifier","src":"11791:6:53"}],"functionName":{"name":"add","nativeSrc":"11782:3:53","nodeType":"YulIdentifier","src":"11782:3:53"},"nativeSrc":"11782:16:53","nodeType":"YulFunctionCall","src":"11782:16:53"},"variableNames":[{"name":"end","nativeSrc":"11775:3:53","nodeType":"YulIdentifier","src":"11775:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11398:410:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11489:5:53","nodeType":"YulTypedName","src":"11489:5:53","type":""},{"name":"pos","nativeSrc":"11496:3:53","nodeType":"YulTypedName","src":"11496:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11504:3:53","nodeType":"YulTypedName","src":"11504:3:53","type":""}],"src":"11398:410:53"},{"body":{"nativeSrc":"12055:320:53","nodeType":"YulBlock","src":"12055:320:53","statements":[{"nativeSrc":"12070:155:53","nodeType":"YulAssignment","src":"12070:155:53","value":{"arguments":[{"name":"pos","nativeSrc":"12221:3:53","nodeType":"YulIdentifier","src":"12221:3:53"}],"functionName":{"name":"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12077:142:53","nodeType":"YulIdentifier","src":"12077:142:53"},"nativeSrc":"12077:148:53","nodeType":"YulFunctionCall","src":"12077:148:53"},"variableNames":[{"name":"pos","nativeSrc":"12070:3:53","nodeType":"YulIdentifier","src":"12070:3:53"}]},{"nativeSrc":"12239:102:53","nodeType":"YulAssignment","src":"12239:102:53","value":{"arguments":[{"name":"value0","nativeSrc":"12328:6:53","nodeType":"YulIdentifier","src":"12328:6:53"},{"name":"pos","nativeSrc":"12337:3:53","nodeType":"YulIdentifier","src":"12337:3:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12246:81:53","nodeType":"YulIdentifier","src":"12246:81:53"},"nativeSrc":"12246:95:53","nodeType":"YulFunctionCall","src":"12246:95:53"},"variableNames":[{"name":"pos","nativeSrc":"12239:3:53","nodeType":"YulIdentifier","src":"12239:3:53"}]},{"nativeSrc":"12355:10:53","nodeType":"YulAssignment","src":"12355:10:53","value":{"name":"pos","nativeSrc":"12362:3:53","nodeType":"YulIdentifier","src":"12362:3:53"},"variableNames":[{"name":"end","nativeSrc":"12355:3:53","nodeType":"YulIdentifier","src":"12355:3:53"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"11818:557:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12034:3:53","nodeType":"YulTypedName","src":"12034:3:53","type":""},{"name":"value0","nativeSrc":"12040:6:53","nodeType":"YulTypedName","src":"12040:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12051:3:53","nodeType":"YulTypedName","src":"12051:3:53","type":""}],"src":"11818:557:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_bytes_calldata_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 store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb(memPtr) {\n\n mstore(add(memPtr, 0), \"MockERC721: gimme more money!\")\n\n }\n\n function abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__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_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f(memPtr) {\n\n mstore(add(memPtr, 0), \"https://example.com/token/\")\n\n }\n\n function abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 26)\n store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f(pos)\n end := add(pos, 26)\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_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_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(value0, pos)\n\n end := pos\n }\n\n }\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100f2575f3560e01c80636817c76c11610089578063a22cb46511610058578063a22cb465146102fe578063b88d4fde14610326578063c87b56dd14610342578063e985e9c51461037e576100f2565b80636817c76c146102525780636a6278421461027c57806370a082311461029857806395d89b41146102d4576100f2565b806318160ddd116100c557806318160ddd146101b457806323b872dd146101de57806342842e0e146101fa5780636352211e14610216576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610b16565b6103ba565b6040516101299190610b5b565b60405180910390f35b34801561013d575f80fd5b506101466103de565b6040516101539190610be4565b60405180910390f35b348015610167575f80fd5b50610182600480360381019061017d9190610c37565b61041b565b60405161018f9190610ca1565b60405180910390f35b6101b260048036038101906101ad9190610ce4565b61046e565b005b3480156101bf575f80fd5b506101c861047d565b6040516101d59190610d31565b60405180910390f35b6101f860048036038101906101f39190610d4a565b610482565b005b610214600480360381019061020f9190610d4a565b6105ac565b005b348015610221575f80fd5b5061023c60048036038101906102379190610c37565b6105e5565b6040516102499190610ca1565b60405180910390f35b34801561025d575f80fd5b50610266610608565b6040516102739190610d31565b60405180910390f35b61029660048036038101906102919190610d9a565b61060e565b005b3480156102a3575f80fd5b506102be60048036038101906102b99190610d9a565b610672565b6040516102cb9190610d31565b60405180910390f35b3480156102df575f80fd5b506102e86106bf565b6040516102f59190610be4565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f9190610def565b6106fc565b005b610340600480360381019061033b9190610e8e565b61074f565b005b34801561034d575f80fd5b5061036860048036038101906103639190610c37565b6107bf565b6040516103759190610be4565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f9190610f12565b6107f0565b6040516103b19190610b5b565b60405180910390f35b5f8160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b60606040518060400160405280600b81526020017f4d6f636b20455243373231000000000000000000000000000000000000000000815250905090565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b6104615763ceea21b65f526004601cfd5b8060010154915050919050565b610479338383610812565b5050565b5f5481565b61048d8383836108c2565b5f1960601c83811693508281169250815f52337f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f2082018201805480831686811481026104f05767ceea21b6a1148100811560021b526004601cfd5b865f5282600101548033148833141761051b576030600c205461051a57634b6e7f185f526004601cfd5b5b8015610528575f84600101555b5085871882188355601c600c206001815403815550855f52601c600c20600181540163ffffffff8116880261056c5767ea553b3401336cea881560021b526004601cfd5b80825550508486887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a4505050506105a78383836108c7565b505050565b6105b7838383610482565b6105c0826108cc565b156105e0576105df83838360405180602001604052805f8152506108d6565b5b505050565b5f6105ef82610960565b9050806106035763ceea21b65f526004601cfd5b919050565b60015481565b600154341015610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a90610f9a565b60405180910390fd5b61066f815f80815461066490610fe5565b91905081905561099e565b50565b5f8161068557638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b61075a858585610482565b610763846108cc565b156107b8576107b785858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506108d6565b5b5050505050565b60606107ca82610a6a565b6040516020016107da91906110b0565b6040516020818303038152906040529050919050565b5f81601c52670a5a2e7a00000000600852825f526030600c2054905092915050565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216806108685763ceea21b65f526004601cfd5b80861486151761088d57805f526030600c205461088c57634b6e7f185f526004601cfd5b5b8482600101558385827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a4505050505050565b505050565b505050565b5f813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a0840152801561091d578060c08401826020870160045afa505b60208360a48301601c86015f8a5af161093f573d1561093e573d5f843e3d83fd5b5b8160e01b8351146109575763d1a57ed65f526004601cfd5b50505050505050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f20820182015460601b60601c9050919050565b6109a95f83836108c2565b8160601b60601c9150805f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208101810180548060601b156109f95763c991cbb15f526004601cfd5b8381178255835f52601c600c20600181540163ffffffff81168602610a2d5767ea553b3401336cea861560021b526004601cfd5b808255505082845f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45050610a665f83836108c7565b5050565b60606080604051019050602081016040525f8152805f19835b600115610aa4578184019350600a81066030018453600a8104905080610a83575b50828203602084039350808452505050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610af581610ac1565b8114610aff575f80fd5b50565b5f81359050610b1081610aec565b92915050565b5f60208284031215610b2b57610b2a610ab9565b5b5f610b3884828501610b02565b91505092915050565b5f8115159050919050565b610b5581610b41565b82525050565b5f602082019050610b6e5f830184610b4c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610bb682610b74565b610bc08185610b7e565b9350610bd0818560208601610b8e565b610bd981610b9c565b840191505092915050565b5f6020820190508181035f830152610bfc8184610bac565b905092915050565b5f819050919050565b610c1681610c04565b8114610c20575f80fd5b50565b5f81359050610c3181610c0d565b92915050565b5f60208284031215610c4c57610c4b610ab9565b5b5f610c5984828501610c23565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8b82610c62565b9050919050565b610c9b81610c81565b82525050565b5f602082019050610cb45f830184610c92565b92915050565b610cc381610c81565b8114610ccd575f80fd5b50565b5f81359050610cde81610cba565b92915050565b5f8060408385031215610cfa57610cf9610ab9565b5b5f610d0785828601610cd0565b9250506020610d1885828601610c23565b9150509250929050565b610d2b81610c04565b82525050565b5f602082019050610d445f830184610d22565b92915050565b5f805f60608486031215610d6157610d60610ab9565b5b5f610d6e86828701610cd0565b9350506020610d7f86828701610cd0565b9250506040610d9086828701610c23565b9150509250925092565b5f60208284031215610daf57610dae610ab9565b5b5f610dbc84828501610cd0565b91505092915050565b610dce81610b41565b8114610dd8575f80fd5b50565b5f81359050610de981610dc5565b92915050565b5f8060408385031215610e0557610e04610ab9565b5b5f610e1285828601610cd0565b9250506020610e2385828601610ddb565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4e57610e4d610e2d565b5b8235905067ffffffffffffffff811115610e6b57610e6a610e31565b5b602083019150836001820283011115610e8757610e86610e35565b5b9250929050565b5f805f805f60808688031215610ea757610ea6610ab9565b5b5f610eb488828901610cd0565b9550506020610ec588828901610cd0565b9450506040610ed688828901610c23565b935050606086013567ffffffffffffffff811115610ef757610ef6610abd565b5b610f0388828901610e39565b92509250509295509295909350565b5f8060408385031215610f2857610f27610ab9565b5b5f610f3585828601610cd0565b9250506020610f4685828601610cd0565b9150509250929050565b7f4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e6579210000005f82015250565b5f610f84601d83610b7e565b9150610f8f82610f50565b602082019050919050565b5f6020820190508181035f830152610fb181610f78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fef82610c04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361102157611020610fb8565b5b600182019050919050565b5f81905092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f0000000000005f82015250565b5f61106a601a8361102c565b915061107582611036565b601a82019050919050565b5f61108a82610b74565b611094818561102c565b93506110a4818560208601610b8e565b80840191505092915050565b5f6110ba8261105e565b91506110c68284611080565b91508190509291505056fea26469706673582212206a79f5a0e467f48b674391deaeadba3209007079faabfaab6ff555ea1ad6b8d964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF2 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6817C76C GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37E JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x6817C76C EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2D4 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x216 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x198 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x117 SWAP2 SWAP1 PUSH2 0xB16 JUMP JUMPDEST PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x146 PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C8 PUSH2 0x47D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x237 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x296 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x291 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x60E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E8 PUSH2 0x6BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x340 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33B SWAP2 SWAP1 PUSH2 0xE8E JUMP JUMPDEST PUSH2 0x74F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHR PUSH4 0x5B5E139F DUP2 EQ PUSH4 0x80AC58CD DUP3 EQ PUSH4 0x1FFC9A7 DUP4 EQ OR OR SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243373231000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD PUSH1 0x60 SHL PUSH2 0x461 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x479 CALLER DUP4 DUP4 PUSH2 0x812 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x48D DUP4 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP4 DUP2 AND SWAP4 POP DUP3 DUP2 AND SWAP3 POP DUP2 PUSH0 MSTORE CALLER PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP1 DUP4 AND DUP7 DUP2 EQ DUP2 MUL PUSH2 0x4F0 JUMPI PUSH8 0xCEEA21B6A1148100 DUP2 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 PUSH0 MSTORE DUP3 PUSH1 0x1 ADD SLOAD DUP1 CALLER EQ DUP9 CALLER EQ OR PUSH2 0x51B JUMPI PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x51A JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x528 JUMPI PUSH0 DUP5 PUSH1 0x1 ADD SSTORE JUMPDEST POP DUP6 DUP8 XOR DUP3 XOR DUP4 SSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD SUB DUP2 SSTORE POP DUP6 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP9 MUL PUSH2 0x56C JUMPI PUSH8 0xEA553B3401336CEA DUP9 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP5 DUP7 DUP9 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP POP POP PUSH2 0x5A7 DUP4 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP4 DUP4 DUP4 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x5C0 DUP3 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5EF DUP3 PUSH2 0x960 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x603 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x66F DUP2 PUSH0 DUP1 DUP2 SLOAD PUSH2 0x664 SWAP1 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE PUSH2 0x99E JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x685 JUMPI PUSH4 0x8F4EB604 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE DUP2 PUSH0 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1C PUSH1 0xC KECCAK256 SLOAD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO SWAP1 POP DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x30 PUSH1 0xC KECCAK256 SSTORE DUP1 PUSH0 MSTORE DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR CALLER PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 PUSH0 LOG3 POP POP JUMP JUMPDEST PUSH2 0x75A DUP6 DUP6 DUP6 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x763 DUP5 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x7B8 JUMPI PUSH2 0x7B7 DUP6 DUP6 DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7CA DUP3 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7DA SWAP2 SWAP1 PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE DUP3 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP3 DUP2 AND SWAP3 POP DUP4 DUP2 AND SWAP4 POP DUP2 PUSH0 MSTORE DUP4 PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP3 AND DUP1 PUSH2 0x868 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP7 EQ DUP7 ISZERO OR PUSH2 0x88D JUMPI DUP1 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x88C JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP5 DUP3 PUSH1 0x1 ADD SSTORE DUP4 DUP6 DUP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH0 CODESIZE LOG4 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 EXTCODESIZE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x150B7A02 DUP1 DUP3 MSTORE CALLER PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x60 SHL PUSH1 0x60 SHR PUSH1 0x40 DUP4 ADD MSTORE DUP4 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0xA0 DUP5 ADD MSTORE DUP1 ISZERO PUSH2 0x91D JUMPI DUP1 PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x20 DUP8 ADD PUSH1 0x4 GAS STATICCALL POP JUMPDEST PUSH1 0x20 DUP4 PUSH1 0xA4 DUP4 ADD PUSH1 0x1C DUP7 ADD PUSH0 DUP11 GAS CALL PUSH2 0x93F JUMPI RETURNDATASIZE ISZERO PUSH2 0x93E JUMPI RETURNDATASIZE PUSH0 DUP5 RETURNDATACOPY RETURNDATASIZE DUP4 REVERT JUMPDEST JUMPDEST DUP2 PUSH1 0xE0 SHL DUP4 MLOAD EQ PUSH2 0x957 JUMPI PUSH4 0xD1A57ED6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD SLOAD PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9A9 PUSH0 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP1 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP2 ADD DUP2 ADD DUP1 SLOAD DUP1 PUSH1 0x60 SHL ISZERO PUSH2 0x9F9 JUMPI PUSH4 0xC991CBB1 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 OR DUP3 SSTORE DUP4 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP7 MUL PUSH2 0xA2D JUMPI PUSH8 0xEA553B3401336CEA DUP7 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP3 DUP5 PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP PUSH2 0xA66 PUSH0 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x80 PUSH1 0x40 MLOAD ADD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE PUSH0 DUP2 MSTORE DUP1 PUSH0 NOT DUP4 JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP5 ADD SWAP4 POP PUSH1 0xA DUP2 MOD PUSH1 0x30 ADD DUP5 MSTORE8 PUSH1 0xA DUP2 DIV SWAP1 POP DUP1 PUSH2 0xA83 JUMPI JUMPDEST POP DUP3 DUP3 SUB PUSH1 0x20 DUP5 SUB SWAP4 POP DUP1 DUP5 MSTORE POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF5 DUP2 PUSH2 0xAC1 JUMP JUMPDEST DUP2 EQ PUSH2 0xAFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB10 DUP2 PUSH2 0xAEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2B JUMPI PUSH2 0xB2A PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB38 DUP5 DUP3 DUP6 ADD PUSH2 0xB02 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6E PUSH0 DUP4 ADD DUP5 PUSH2 0xB4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBB6 DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0xBC0 DUP2 DUP6 PUSH2 0xB7E JUMP JUMPDEST SWAP4 POP PUSH2 0xBD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH2 0xBD9 DUP2 PUSH2 0xB9C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xBFC DUP2 DUP5 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC16 DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP2 EQ PUSH2 0xC20 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC31 DUP2 PUSH2 0xC0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC59 DUP5 DUP3 DUP6 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC8B DUP3 PUSH2 0xC62 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC9B DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH0 DUP4 ADD DUP5 PUSH2 0xC92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC3 DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP2 EQ PUSH2 0xCCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCDE DUP2 PUSH2 0xCBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF9 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD07 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD18 DUP6 DUP3 DUP7 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD44 PUSH0 DUP4 ADD DUP5 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD7F DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD90 DUP7 DUP3 DUP8 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAE PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDBC DUP5 DUP3 DUP6 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP2 EQ PUSH2 0xDD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDE9 DUP2 PUSH2 0xDC5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH2 0xE04 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE12 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE23 DUP6 DUP3 DUP7 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE4E JUMPI PUSH2 0xE4D PUSH2 0xE2D JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xE31 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE87 JUMPI PUSH2 0xE86 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEB4 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0xEC5 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xED6 DUP9 DUP3 DUP10 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEF7 JUMPI PUSH2 0xEF6 PUSH2 0xABD JUMP JUMPDEST JUMPDEST PUSH2 0xF03 DUP9 DUP3 DUP10 ADD PUSH2 0xE39 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF28 JUMPI PUSH2 0xF27 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF35 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF46 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6F636B4552433732313A2067696D6D65206D6F7265206D6F6E657921000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF84 PUSH1 0x1D DUP4 PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP PUSH2 0xF8F DUP3 PUSH2 0xF50 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFB1 DUP2 PUSH2 0xF78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xFEF DUP3 PUSH2 0xC04 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1021 JUMPI PUSH2 0x1020 PUSH2 0xFB8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x106A PUSH1 0x1A DUP4 PUSH2 0x102C JUMP JUMPDEST SWAP2 POP PUSH2 0x1075 DUP3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x1A DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108A DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0x1094 DUP2 DUP6 PUSH2 0x102C JUMP JUMPDEST SWAP4 POP PUSH2 0x10A4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10BA DUP3 PUSH2 0x105E JUMP JUMPDEST SWAP2 POP PUSH2 0x10C6 DUP3 DUP5 PUSH2 0x1080 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0x79F5A0E467F48B674391DE 0xAE 0xAD 0xBA ORIGIN MULMOD STOP PUSH17 0x79FAABFAAB6FF555EA1AD6B8D964736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"679:706:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14864:380:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;790:98:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8099:532:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8925:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;715:26:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10748:2886:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13705:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6957:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;747:36:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;993:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7433:533:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;894:93:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9667:726:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14406:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1198:185:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9135:392:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14864:380;14940:11;15047;15042:3;15038:21;15216:10;15213:1;15210:17;15196:10;15193:1;15190:17;15177:10;15174:1;15171:17;15168:40;15165:63;15155:73;;15015:223;14864:380;;;:::o;790:98:49:-;836:13;861:20;;;;;;;;;;;;;;;;;;;790:98;:::o;8099:532:20:-;8161:14;8266:2;8260:4;8253:16;8295:24;8289:4;8282:38;8386:4;8380;8370:21;8366:2;8362:30;8358:2;8354:39;8430:13;8424:20;8420:2;8416:29;8406:158;;8478:10;8472:4;8465:24;8545:4;8539;8532:18;8406:158;8600:13;8597:1;8593:21;8587:28;8577:38;;8239:386;8099:532;;;:::o;8925:119::-;9004:33;9013:10;9025:7;9034:2;9004:8;:33::i;:::-;8925:119;;:::o;715:26:49:-;;;;:::o;10748:2886:20:-;10841:34;10862:4;10868:2;10872;10841:20;:34::i;:::-;11025:1;11021:6;11017:2;11013:15;11069:4;11053:14;11049:25;11041:33;;11113:2;11097:14;11093:23;11087:29;;11182:2;11176:4;11169:16;11240:8;11214:24;11211:38;11205:4;11198:52;11316:4;11310;11300:21;11296:2;11292:30;11288:2;11284:39;11365:13;11359:20;11425:15;11409:14;11405:36;11567:4;11560:5;11557:15;11550:5;11546:27;11536:229;;11697:18;11688:5;11681:13;11678:1;11674:21;11667:49;11746:4;11740;11733:18;11536:229;11868:4;11862;11855:18;11926:13;11923:1;11919:21;11913:28;12076:15;12066:8;12063:29;12056:4;12046:8;12043:18;12040:53;12030:288;;12149:4;12143;12133:21;12127:28;12117:183;;12196:10;12190:4;12183:24;12273:4;12267;12260:18;12117:183;12030:288;12393:15;12390:55;;;12441:1;12425:13;12422:1;12418:21;12411:32;12390:55;11837:622;12567:2;12561:4;12557:13;12540:15;12536:35;12521:13;12514:58;12690:4;12684;12674:21;12764:1;12746:15;12740:22;12736:30;12719:15;12712:55;12633:148;12871:2;12865:4;12858:16;12928:4;12922;12912:21;13003:1;12987:13;12981:20;12977:28;13157:20;13136:19;13132:46;13128:2;13124:55;13114:270;;13308:18;13302:2;13295:10;13292:1;13288:18;13281:46;13361:4;13355;13348:18;13114:270;13423:19;13408:13;13401:42;12840:617;;13572:2;13568;13562:4;13535:25;13529:4;13517:10;13512:63;10937:2648;;;;13594:33;13614:4;13620:2;13624;13594:19;:33::i;:::-;10748:2886;;;:::o;13705:198::-;13802:26;13815:4;13821:2;13825;13802:12;:26::i;:::-;13842:12;13851:2;13842:8;:12::i;:::-;13838:58;;;13856:40;13879:4;13885:2;13889;13856:40;;;;;;;;;;;;:22;:40::i;:::-;13838:58;13705:198;;;:::o;6957:332::-;7015:14;7050:12;7059:2;7050:8;:12::i;:::-;7041:21;;7148:6;7138:135;;7187:10;7181:4;7174:24;7254:4;7248;7241:18;7138:135;6957:332;;;:::o;747:36:49:-;;;;:::o;993:199::-;1065:9;;1052;:22;;1044:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1161:24;1167:2;1173:11;;1171:13;;;;;:::i;:::-;;;;;;;1161:5;:24::i;:::-;993:199;:::o;7433:533:20:-;7496:14;7656:5;7646:143;;7694:10;7688:4;7681:24;7770:4;7764;7757:18;7646:143;7815:24;7809:4;7802:38;7866:5;7860:4;7853:19;7929:20;7921:4;7915;7905:21;7899:28;7895:55;7885:65;;7433:533;;;:::o;894:93:49:-;942:13;967;;;;;;;;;;;;;;;;;;;894:93;:::o;9667:726:20:-;9882:10;9875:18;9868:26;9854:40;;9991:8;9985:4;9978:22;10026:31;10020:4;10013:45;10084:8;10078:4;10071:22;10136:10;10129:4;10123;10113:21;10106:41;10221:10;10215:4;10208:24;10366:8;10362:2;10358:17;10354:2;10350:26;10340:8;10305:33;10299:4;10293;10288:89;9667:726;;:::o;14406:249::-;14552:26;14565:4;14571:2;14575;14552:12;:26::i;:::-;14592:12;14601:2;14592:8;:12::i;:::-;14588:60;;;14606:42;14629:4;14635:2;14639;14643:4;;14606:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:22;:42::i;:::-;14588:60;14406:249;;;;;:::o;1198:185:49:-;1266:13;1352:22;1371:2;1352:18;:22::i;:::-;1305:70;;;;;;;;:::i;:::-;;;;;;;;;;;;;1291:85;;1198:185;;;:::o;9135:392:20:-;9255:11;9361:8;9355:4;9348:22;9396:31;9390:4;9383:45;9454:5;9448:4;9441:19;9505:4;9499;9489:21;9483:28;9473:38;;9135:392;;;;:::o;29039:1442::-;29222:1;29218:6;29214:2;29210:15;29269:7;29253:14;29249:28;29238:39;;29316:2;29300:14;29296:23;29290:29;;29389:2;29383:4;29376:16;29447:2;29421:24;29418:32;29412:4;29405:46;29517:4;29511;29501:21;29497:2;29493:30;29489:2;29485:39;29576:13;29570:20;29554:14;29550:41;29665:5;29655:134;;29703:10;29697:4;29690:24;29770:4;29764;29757:18;29655:134;29972:5;29968:2;29965:13;29960:2;29953:10;29950:29;29940:280;;30012:5;30006:4;29999:19;30067:4;30061;30051:21;30045:28;30035:171;;30110:10;30104:4;30097:24;30183:4;30177;30170:18;30035:171;29940:280;30333:7;30317:13;30314:1;30310:21;30303:38;30462:2;30453:7;30446:5;30419:25;30413:4;30401:10;30396:69;29134:1341;;;29039:1442;;;:::o;37597:87::-;;;;:::o;37781:86::-;;;;:::o;38217:212::-;38268:11;38379:1;38367:14;38357:24;;38217:212;;;:::o;38588:1370::-;38825:4;38819:11;38875:10;38908:24;38905:1;38898:35;38967:8;38960:4;38957:1;38953:12;38946:30;39075:4;39071:2;39067:13;39063:2;39059:22;39052:4;39049:1;39045:12;39038:44;39116:2;39109:4;39106:1;39102:12;39095:24;39153:4;39146;39143:1;39139:12;39132:26;39186:4;39180:11;39225:1;39218:4;39215:1;39211:12;39204:23;39243:1;39240:71;;;39306:1;39299:4;39296:1;39292:12;39289:1;39282:4;39276;39272:15;39269:1;39262:5;39251:57;39247:62;39240:71;39427:4;39424:1;39417:4;39414:1;39410:12;39403:4;39400:1;39396:12;39393:1;39389:2;39382:5;39377:55;39367:313;;39455:16;39452:214;;;39583:16;39577:4;39574:1;39559:41;39631:16;39628:1;39621:27;39452:214;39367:313;39776:24;39771:3;39767:34;39763:1;39757:8;39754:48;39744:198;;39835:10;39829:4;39822:24;39923:4;39917;39910:18;39744:198;38759:1193;;;38588:1370;;;;:::o;16037:323::-;16098:14;16203:2;16197:4;16190:16;16232:24;16226:4;16219:38;16334:4;16328;16318:21;16314:2;16310:30;16306:2;16302:39;16296:46;16292:2;16288:55;16284:2;16280:64;16270:74;;16037:323;;;:::o;19609:1653::-;19675:40;19704:1;19708:2;19712;19675:20;:40::i;:::-;19853:2;19849;19845:11;19841:2;19837:20;19831:26;;19923:2;19917:4;19910:16;19952:24;19946:4;19939:38;20043:4;20037;20027:21;20023:2;20019:30;20015:2;20011:39;20092:13;20086:20;20181:15;20177:2;20173:24;20170:146;;;20229:10;20223:4;20216:24;20297:4;20291;20284:18;20170:146;20409:2;20392:15;20389:23;20374:13;20367:46;20508:2;20502:4;20495:16;20563:4;20557;20547:21;20634:1;20620:11;20614:18;20610:26;20786:20;20767:17;20763:44;20759:2;20755:53;20745:268;;20937:18;20931:2;20924:10;20921:1;20917:18;20910:46;20990:4;20984;20977:18;20745:268;21050:17;21037:11;21030:38;20477:605;;21194:2;21190;21187:1;21160:25;21154:4;21142:10;21137:60;19777:1430;;21216:39;21244:1;21248:2;21252;21216:19;:39::i;:::-;19609:1653;;:::o;1946:1641:24:-;2002:17;2447:4;2440;2434:11;2430:22;2423:29;;2546:4;2541:3;2537:14;2531:4;2524:28;2627:1;2622:3;2615:14;2728:3;2758:1;2754:6;2967:5;2949:402;2975:1;2949:402;;;3014:1;3009:3;3005:11;2998:18;;3200:2;3194:4;3190:13;3186:2;3182:22;3177:3;3169:36;3292:2;3286:4;3282:13;3274:21;;3322:4;2949:402;3312:25;2949:402;2953:21;3388:3;3383;3379:13;3501:4;3496:3;3492:14;3485:21;;3564:6;3559:3;3552:19;2083:1498;;;1946:1641;;;:::o;88:117:53:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:118::-;4870:24;4888:5;4870:24;:::i;:::-;4865:3;4858:37;4783:118;;:::o;4907:222::-;5000:4;5038:2;5027:9;5023:18;5015:26;;5051:71;5119:1;5108:9;5104:17;5095:6;5051:71;:::i;:::-;4907:222;;;;:::o;5135:619::-;5212:6;5220;5228;5277:2;5265:9;5256:7;5252:23;5248:32;5245:119;;;5283:79;;:::i;:::-;5245:119;5403:1;5428:53;5473:7;5464:6;5453:9;5449:22;5428:53;:::i;:::-;5418:63;;5374:117;5530:2;5556:53;5601:7;5592:6;5581:9;5577:22;5556:53;:::i;:::-;5546:63;;5501:118;5658:2;5684:53;5729:7;5720:6;5709:9;5705:22;5684:53;:::i;:::-;5674:63;;5629:118;5135:619;;;;;:::o;5760:329::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:119;;;5874:79;;:::i;:::-;5836:119;5994:1;6019:53;6064:7;6055:6;6044:9;6040:22;6019:53;:::i;:::-;6009:63;;5965:117;5760:329;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:117;7185:1;7182;7175:12;7212:552;7269:8;7279:6;7329:3;7322:4;7314:6;7310:17;7306:27;7296:122;;7337:79;;:::i;:::-;7296:122;7450:6;7437:20;7427:30;;7480:18;7472:6;7469:30;7466:117;;;7502:79;;:::i;:::-;7466:117;7616:4;7608:6;7604:17;7592:29;;7670:3;7662:4;7654:6;7650:17;7640:8;7636:32;7633:41;7630:128;;;7677:79;;:::i;:::-;7630:128;7212:552;;;;;:::o;7770:963::-;7867:6;7875;7883;7891;7899;7948:3;7936:9;7927:7;7923:23;7919:33;7916:120;;;7955:79;;:::i;:::-;7916:120;8075:1;8100:53;8145:7;8136:6;8125:9;8121:22;8100:53;:::i;:::-;8090:63;;8046:117;8202:2;8228:53;8273:7;8264:6;8253:9;8249:22;8228:53;:::i;:::-;8218:63;;8173:118;8330:2;8356:53;8401:7;8392:6;8381:9;8377:22;8356:53;:::i;:::-;8346:63;;8301:118;8486:2;8475:9;8471:18;8458:32;8517:18;8509:6;8506:30;8503:117;;;8539:79;;:::i;:::-;8503:117;8652:64;8708:7;8699:6;8688:9;8684:22;8652:64;:::i;:::-;8634:82;;;;8429:297;7770:963;;;;;;;;:::o;8739:474::-;8807:6;8815;8864:2;8852:9;8843:7;8839:23;8835:32;8832:119;;;8870:79;;:::i;:::-;8832:119;8990:1;9015:53;9060:7;9051:6;9040:9;9036:22;9015:53;:::i;:::-;9005:63;;8961:117;9117:2;9143:53;9188:7;9179:6;9168:9;9164:22;9143:53;:::i;:::-;9133:63;;9088:118;8739:474;;;;;:::o;9219:179::-;9359:31;9355:1;9347:6;9343:14;9336:55;9219:179;:::o;9404:366::-;9546:3;9567:67;9631:2;9626:3;9567:67;:::i;:::-;9560:74;;9643:93;9732:3;9643:93;:::i;:::-;9761:2;9756:3;9752:12;9745:19;;9404:366;;;:::o;9776:419::-;9942:4;9980:2;9969:9;9965:18;9957:26;;10029:9;10023:4;10019:20;10015:1;10004:9;10000:17;9993:47;10057:131;10183:4;10057:131;:::i;:::-;10049:139;;9776:419;;;:::o;10201:180::-;10249:77;10246:1;10239:88;10346:4;10343:1;10336:15;10370:4;10367:1;10360:15;10387:233;10426:3;10449:24;10467:5;10449:24;:::i;:::-;10440:33;;10495:66;10488:5;10485:77;10482:103;;10565:18;;:::i;:::-;10482:103;10612:1;10605:5;10601:13;10594:20;;10387:233;;;:::o;10626:148::-;10728:11;10765:3;10750:18;;10626:148;;;;:::o;10780:180::-;10920:28;10916:1;10908:6;10904:14;10897:52;10780:180;:::o;10970:418::-;11130:3;11155:85;11237:2;11232:3;11155:85;:::i;:::-;11148:92;;11253:93;11342:3;11253:93;:::i;:::-;11375:2;11370:3;11366:12;11359:19;;10970:418;;;:::o;11398:410::-;11504:3;11536:39;11569:5;11536:39;:::i;:::-;11595:89;11677:6;11672:3;11595:89;:::i;:::-;11588:96;;11697:65;11755:6;11750:3;11743:4;11736:5;11732:16;11697:65;:::i;:::-;11791:6;11786:3;11782:16;11775:23;;11508:300;11398:410;;;;:::o;11818:557::-;12051:3;12077:148;12221:3;12077:148;:::i;:::-;12070:155;;12246:95;12337:3;12328:6;12246:95;:::i;:::-;12239:102;;12362:3;12355:10;;11818:557;;;;:::o"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address)":"6a627842","mintPrice()":"6817c76c","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccountBalanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccountBalanceOverflow()\":[{\"details\":\"The recipient's balance has overflowed.\"}],\"BalanceQueryForZeroAddress()\":[{\"details\":\"Cannot query the balance for the zero address.\"}],\"NotOwnerNorApproved()\":[{\"details\":\"Only the token owner or an approved account can manage the token.\"}],\"TokenAlreadyExists()\":[{\"details\":\"The token already exists.\"}],\"TokenDoesNotExist()\":[{\"details\":\"The token does not exist.\"}],\"TransferFromIncorrectOwner()\":[{\"details\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"details\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"details\":\"Cannot mint or transfer to the zero address.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `account` to manage the `id` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when token `id` is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Sets `account` as the approved account to manage token `id`. Requirements: - Token `id` must exist. - The caller must be the owner of the token, or an approved operator for the token owner. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens owned by `owner`. Requirements: - `owner` must not be the zero address.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved to manage token `id`. Requirements: - Token `id` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns whether `operator` is approved to manage the tokens of `owner`.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of token `id`. Requirements: - Token `id` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, id, \\\"\\\")`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See: https://eips.ethereum.org/EIPS/eip-165 This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. Emits a {Transfer} event.\"}},\"title\":\"MockERC721\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC721 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"}},"contracts/tokens/Points.sol":{"Points":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NonTransferable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ISSUER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"minter_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"issue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50611b1b8061001c5f395ff3fe6080604052600436106101b6575f3560e01c806354d1f13d116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146105aa578063f04e283e146105e6578063f2fde38b14610602578063fee81cf41461061e576101b6565b806395d89b411461051c578063a9059cbb14610546578063d505accf14610582576101b6565b80637ecebe00116100c55780637ecebe001461046457806382aefa24146104a0578063867904b4146104ca5780638da5cb5b146104f2576101b6565b806354d1f13d1461041457806370a082311461041e578063715018a61461045a576101b6565b806323b872dd11610158578063313ce56711610132578063313ce567146103685780633644e515146103925780634a4ee7b1146103bc578063514e62fc146103d8576101b6565b806323b872dd146102e657806325692962146103225780632de948071461032c576101b6565b806318160ddd1161019457806318160ddd14610248578063183a4f6e146102725780631c10893f1461028e5780631cd64df4146102aa576101b6565b806306fdde03146101ba578063077f224a146101e4578063095ea7b31461020c575b5f80fd5b3480156101c5575f80fd5b506101ce61065a565b6040516101db91906112af565b60405180910390f35b3480156101ef575f80fd5b5061020a60048036038101906102059190611466565b6106e9565b005b348015610217575f80fd5b50610232600480360381019061022d9190611521565b610793565b60405161023f9190611579565b60405180910390f35b348015610253575f80fd5b5061025c6107e3565b60405161026991906115a1565b60405180910390f35b61028c600480360381019061028791906115ba565b6107f4565b005b6102a860048036038101906102a39190611521565b610801565b005b3480156102b5575f80fd5b506102d060048036038101906102cb9190611521565b610817565b6040516102dd9190611579565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906115e5565b61082d565b6040516103199190611579565b60405180910390f35b61032a6108fe565b005b348015610337575f80fd5b50610352600480360381019061034d9190611635565b61094f565b60405161035f91906115a1565b60405180910390f35b348015610373575f80fd5b5061037c610968565b604051610389919061167b565b60405180910390f35b34801561039d575f80fd5b506103a6610970565b6040516103b391906116ac565b60405180910390f35b6103d660048036038101906103d19190611521565b610a00565b005b3480156103e3575f80fd5b506103fe60048036038101906103f99190611521565b610a16565b60405161040b9190611579565b60405180910390f35b61041c610a2d565b005b348015610429575f80fd5b50610444600480360381019061043f9190611635565b610a66565b60405161045191906115a1565b60405180910390f35b610462610a7f565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611635565b610a92565b60405161049791906115a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610aab565b6040516104c191906115a1565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190611521565b610ab0565b005b3480156104fd575f80fd5b50610506610aca565b60405161051391906116d4565b60405180910390f35b348015610527575f80fd5b50610530610af2565b60405161053d91906112af565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190611521565b610b82565b6040516105799190611579565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190611741565b610c10565b005b3480156105b5575f80fd5b506105d060048036038101906105cb91906117de565b610dac565b6040516105dd91906115a1565b60405180910390f35b61060060048036038101906105fb9190611635565b610dca565b005b61061c60048036038101906106179190611635565b610e08565b005b348015610629575f80fd5b50610644600480360381019061063f9190611635565b610e31565b60405161065191906115a1565b60405180910390f35b60605f805461066890611849565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611849565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b5f6106f2610e4a565b905080546003825580156107245760018160011c14303b1061071b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061072e33610e73565b835f908161073c9190611a16565b50826001908161074c9190611a16565b50610758826002610f49565b801561078d576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b50505050565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b5f6805345cdf77eb68f44c54905090565b6107fe3382610f59565b50565b610809610f68565b6108138282610f49565b5050565b5f81826108238561094f565b1614905092915050565b5f610839848484610f9f565b8360601b33602052637f5e9f208117600c526034600c20805460018101156108765780851115610870576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c2080548087111561089c5763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050505050506108f3848484611043565b600190509392505050565b5f610907611048565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b5f6012905090565b5f8061097a611052565b90505f801b81036109975761098d61065a565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b610a08610f68565b610a128282610f59565b5050565b5f8082610a228561094f565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6387a211a2600c52815f526020600c20549050919050565b610a87610f68565b610a905f611056565b565b5f6338377508600c52815f526020600c20549050919050565b600281565b6002610abb8161111c565b610ac58383611151565b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b606060018054610b0190611849565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2d90611849565b8015610b785780601f10610b4f57610100808354040283529160200191610b78565b820191905f5260205f20905b815481529060010190602001808311610b5b57829003601f168201915b5050505050905090565b5f610b8e338484610f9f565b6387a211a2600c52335f526020600c20805480841115610bb55763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050610c06338484611043565b6001905092915050565b5f610c19611052565b90505f801b8103610c3657610c2c61065a565b8051906020012090505b84421115610c4b57631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d5114610d535763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b610dd2610f68565b63389a75e1600c52805f526020600c208054421115610df857636f5e88185f526004601cfd5b5f815550610e0581611056565b50565b610e10610f68565b8060601b610e2557637448fbae5f526004601cfd5b610e2e81611056565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111e3565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610f55828260016111e7565b5050565b610f6482825f6111e7565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f9d576382b429005f526004601cfd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561100757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561103e576040517f9cbe235700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b505050565b5f6202a300905090565b5f90565b61105e6111e3565b156110c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611119565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b638b78c6d81954331461114e57638b78c6d8600c52335f52806020600c20541661114d576382b429005f526004601cfd5b5b50565b61115c5f8383610f9f565b6805345cdf77eb68f44c548181018181101561117f5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506111df5f8383611043565b5050565b5f90565b638b78c6d8600c52825f526020600c2080548381178361120957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112818261123f565b61128b8185611249565b935061129b818560208601611259565b6112a481611267565b840191505092915050565b5f6020820190508181035f8301526112c78184611277565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61131e82611267565b810181811067ffffffffffffffff8211171561133d5761133c6112e8565b5b80604052505050565b5f61134f6112cf565b905061135b8282611315565b919050565b5f67ffffffffffffffff82111561137a576113796112e8565b5b61138382611267565b9050602081019050919050565b828183375f83830152505050565b5f6113b06113ab84611360565b611346565b9050828152602081018484840111156113cc576113cb6112e4565b5b6113d7848285611390565b509392505050565b5f82601f8301126113f3576113f26112e0565b5b813561140384826020860161139e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114358261140c565b9050919050565b6114458161142b565b811461144f575f80fd5b50565b5f813590506114608161143c565b92915050565b5f805f6060848603121561147d5761147c6112d8565b5b5f84013567ffffffffffffffff81111561149a576114996112dc565b5b6114a6868287016113df565b935050602084013567ffffffffffffffff8111156114c7576114c66112dc565b5b6114d3868287016113df565b92505060406114e486828701611452565b9150509250925092565b5f819050919050565b611500816114ee565b811461150a575f80fd5b50565b5f8135905061151b816114f7565b92915050565b5f8060408385031215611537576115366112d8565b5b5f61154485828601611452565b92505060206115558582860161150d565b9150509250929050565b5f8115159050919050565b6115738161155f565b82525050565b5f60208201905061158c5f83018461156a565b92915050565b61159b816114ee565b82525050565b5f6020820190506115b45f830184611592565b92915050565b5f602082840312156115cf576115ce6112d8565b5b5f6115dc8482850161150d565b91505092915050565b5f805f606084860312156115fc576115fb6112d8565b5b5f61160986828701611452565b935050602061161a86828701611452565b925050604061162b8682870161150d565b9150509250925092565b5f6020828403121561164a576116496112d8565b5b5f61165784828501611452565b91505092915050565b5f60ff82169050919050565b61167581611660565b82525050565b5f60208201905061168e5f83018461166c565b92915050565b5f819050919050565b6116a681611694565b82525050565b5f6020820190506116bf5f83018461169d565b92915050565b6116ce8161142b565b82525050565b5f6020820190506116e75f8301846116c5565b92915050565b6116f681611660565b8114611700575f80fd5b50565b5f81359050611711816116ed565b92915050565b61172081611694565b811461172a575f80fd5b50565b5f8135905061173b81611717565b92915050565b5f805f805f805f60e0888a03121561175c5761175b6112d8565b5b5f6117698a828b01611452565b975050602061177a8a828b01611452565b965050604061178b8a828b0161150d565b955050606061179c8a828b0161150d565b94505060806117ad8a828b01611703565b93505060a06117be8a828b0161172d565b92505060c06117cf8a828b0161172d565b91505092959891949750929550565b5f80604083850312156117f4576117f36112d8565b5b5f61180185828601611452565b925050602061181285828601611452565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061186057607f821691505b6020821081036118735761187261181c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261189a565b6118df868361189a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61191a611915611910846114ee565b6118f7565b6114ee565b9050919050565b5f819050919050565b61193383611900565b61194761193f82611921565b8484546118a6565b825550505050565b5f90565b61195b61194f565b61196681848461192a565b505050565b5b818110156119895761197e5f82611953565b60018101905061196c565b5050565b601f8211156119ce5761199f81611879565b6119a88461188b565b810160208510156119b7578190505b6119cb6119c38561188b565b83018261196b565b50505b505050565b5f82821c905092915050565b5f6119ee5f19846008026119d3565b1980831691505092915050565b5f611a0683836119df565b9150826002028217905092915050565b611a1f8261123f565b67ffffffffffffffff811115611a3857611a376112e8565b5b611a428254611849565b611a4d82828561198d565b5f60209050601f831160018114611a7e575f8415611a6c578287015190505b611a7685826119fb565b865550611add565b601f198416611a8c86611879565b5f5b82811015611ab357848901518255600182019150602085019450602081019050611a8e565b86831015611ad05784890151611acc601f8916826119df565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220058c997ad2d7b7ff6bf8e85fa7c09e225fbb4b0c690fc6dc2b59b30b7cb704d164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1B DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54D1F13D GT PUSH2 0xEB JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x61E JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x582 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x82AEFA24 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4F2 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x45A JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x158 JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x132 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x3D8 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x32C JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x194 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x2AA JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x20C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x793 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x7F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A3 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x15E5 JUMP JUMPDEST PUSH2 0x82D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x32A PUSH2 0x8FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x389 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x16AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D1 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH2 0xA2D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x462 PUSH2 0xA7F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B4 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x513 SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x530 PUSH2 0xAF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53D SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x551 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x567 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x579 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1741 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5CB SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DD SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x600 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x61C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE08 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x63F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x651 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 DUP1 SLOAD PUSH2 0x668 SWAP1 PUSH2 0x1849 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 0x694 SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6DF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x71B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x72E CALLER PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH0 SWAP1 DUP2 PUSH2 0x73C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP DUP3 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP PUSH2 0x758 DUP3 PUSH1 0x2 PUSH2 0xF49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FE CALLER DUP3 PUSH2 0xF59 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x809 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0x813 DUP3 DUP3 PUSH2 0xF49 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x823 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x839 DUP5 DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x876 JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x870 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x89C JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x8F3 DUP5 DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x907 PUSH2 0x1048 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x97A PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x997 JUMPI PUSH2 0x98D PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA12 DUP3 DUP3 PUSH2 0xF59 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0xA22 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA87 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA90 PUSH0 PUSH2 0x1056 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH2 0xABB DUP2 PUSH2 0x111C JUMP JUMPDEST PUSH2 0xAC5 DUP4 DUP4 PUSH2 0x1151 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xB01 SWAP1 PUSH2 0x1849 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 0xB2D SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB78 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB78 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB5B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB8E CALLER DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0xBB5 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0xC06 CALLER DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC19 PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0xC36 JUMPI PUSH2 0xC2C PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0xC4B JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0xD53 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDD2 PUSH2 0xF68 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDF8 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xE05 DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE10 PUSH2 0xF68 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE25 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xE2E DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xF55 DUP3 DUP3 PUSH1 0x1 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xF64 DUP3 DUP3 PUSH0 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF9D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x9CBE235700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x105E PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0x10C3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1119 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH4 0x8B78C6D8 NOT SLOAD CALLER EQ PUSH2 0x114E JUMPI PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x114D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x115C PUSH0 DUP4 DUP4 PUSH2 0xF9F JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x117F JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x11DF PUSH0 DUP4 DUP4 PUSH2 0x1043 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0x1209 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1281 DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x128B DUP2 DUP6 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP PUSH2 0x129B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1267 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH2 0x1267 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x133D JUMPI PUSH2 0x133C PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x134F PUSH2 0x12CF JUMP JUMPDEST SWAP1 POP PUSH2 0x135B DUP3 DUP3 PUSH2 0x1315 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x137A JUMPI PUSH2 0x1379 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1383 DUP3 PUSH2 0x1267 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13B0 PUSH2 0x13AB DUP5 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x1346 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x12E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13D7 DUP5 DUP3 DUP6 PUSH2 0x1390 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH2 0x13F2 PUSH2 0x12E0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1403 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x139E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1435 DUP3 PUSH2 0x140C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1445 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP2 EQ PUSH2 0x144F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1460 DUP2 PUSH2 0x143C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x147D JUMPI PUSH2 0x147C PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x149A JUMPI PUSH2 0x1499 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14A6 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x14E4 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1500 DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP2 EQ PUSH2 0x150A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x151B DUP2 PUSH2 0x14F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1537 JUMPI PUSH2 0x1536 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1544 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1555 DUP6 DUP3 DUP7 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1573 DUP2 PUSH2 0x155F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x158C PUSH0 DUP4 ADD DUP5 PUSH2 0x156A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15CF JUMPI PUSH2 0x15CE PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DC DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15FC JUMPI PUSH2 0x15FB PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1609 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x161A DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x162B DUP7 DUP3 DUP8 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164A JUMPI PUSH2 0x1649 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1657 DUP5 DUP3 DUP6 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1675 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168E PUSH0 DUP4 ADD DUP5 PUSH2 0x166C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A6 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16BF PUSH0 DUP4 ADD DUP5 PUSH2 0x169D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16CE DUP2 PUSH2 0x142B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16E7 PUSH0 DUP4 ADD DUP5 PUSH2 0x16C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16F6 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP2 EQ PUSH2 0x1700 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1711 DUP2 PUSH2 0x16ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1720 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP2 EQ PUSH2 0x172A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x173B DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x175C JUMPI PUSH2 0x175B PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1769 DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x177A DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x178B DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x179C DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x17AD DUP11 DUP3 DUP12 ADD PUSH2 0x1703 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x17BE DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x17CF DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F4 JUMPI PUSH2 0x17F3 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1801 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1812 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1860 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1873 JUMPI PUSH2 0x1872 PUSH2 0x181C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x18D5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x189A JUMP JUMPDEST PUSH2 0x18DF DUP7 DUP4 PUSH2 0x189A 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x191A PUSH2 0x1915 PUSH2 0x1910 DUP5 PUSH2 0x14EE JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x14EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1933 DUP4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x193F DUP3 PUSH2 0x1921 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x18A6 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x195B PUSH2 0x194F JUMP JUMPDEST PUSH2 0x1966 DUP2 DUP5 DUP5 PUSH2 0x192A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH2 0x197E PUSH0 DUP3 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x196C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x19CE JUMPI PUSH2 0x199F DUP2 PUSH2 0x1879 JUMP JUMPDEST PUSH2 0x19A8 DUP5 PUSH2 0x188B JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x19B7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x19CB PUSH2 0x19C3 DUP6 PUSH2 0x188B JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x196B JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19EE PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x19D3 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A06 DUP4 DUP4 PUSH2 0x19DF JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A1F DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A38 JUMPI PUSH2 0x1A37 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1A42 DUP3 SLOAD PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x1A4D DUP3 DUP3 DUP6 PUSH2 0x198D JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1A7E JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1A6C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1A76 DUP6 DUP3 PUSH2 0x19FB JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1ADD JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1A8C DUP7 PUSH2 0x1879 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AB3 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 0x1A8E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1AD0 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1ACC PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x19DF 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 INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV DUP13 SWAP10 PUSH27 0xD2D7B7FF6BF8E85FA7C09E225FBB4B0C690FC6DC2B59B30B7CB704 0xD1 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"394:1770:50:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_8242":{"entryPoint":2416,"id":8242,"parameterSlots":0,"returnSlots":1},"@ISSUER_ROLE_17925":{"entryPoint":2731,"id":17925,"parameterSlots":0,"returnSlots":0},"@_afterTokenTransfer_8368":{"entryPoint":4163,"id":8368,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_18025":{"entryPoint":3999,"id":18025,"parameterSlots":3,"returnSlots":0},"@_checkOwnerOrRoles_6513":{"entryPoint":4380,"id":6513,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6322":{"entryPoint":3944,"id":6322,"parameterSlots":0,"returnSlots":0},"@_constantNameHash_8160":{"entryPoint":4178,"id":8160,"parameterSlots":0,"returnSlots":1},"@_grantRoles_6482":{"entryPoint":3913,"id":6482,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":4579,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":3658,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":3699,"id":6302,"parameterSlots":1,"returnSlots":0},"@_mint_8270":{"entryPoint":4433,"id":8270,"parameterSlots":2,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":4168,"id":6333,"parameterSlots":0,"returnSlots":1},"@_removeRoles_6497":{"entryPoint":3929,"id":6497,"parameterSlots":2,"returnSlots":0},"@_setOwner_6316":{"entryPoint":4182,"id":6316,"parameterSlots":1,"returnSlots":0},"@_updateRoles_6467":{"entryPoint":4583,"id":6467,"parameterSlots":3,"returnSlots":0},"@allowance_8083":{"entryPoint":3500,"id":8083,"parameterSlots":2,"returnSlots":1},"@approve_8097":{"entryPoint":1939,"id":8097,"parameterSlots":2,"returnSlots":1},"@balanceOf_8071":{"entryPoint":2662,"id":8071,"parameterSlots":1,"returnSlots":1},"@cancelOwnershipHandover_6382":{"entryPoint":2605,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":3530,"id":6396,"parameterSlots":1,"returnSlots":0},"@decimals_8053":{"entryPoint":2408,"id":8053,"parameterSlots":0,"returnSlots":1},"@grantRoles_6559":{"entryPoint":2049,"id":6559,"parameterSlots":2,"returnSlots":0},"@hasAllRoles_6636":{"entryPoint":2071,"id":6636,"parameterSlots":2,"returnSlots":1},"@hasAnyRole_6617":{"entryPoint":2582,"id":6617,"parameterSlots":2,"returnSlots":1},"@initialize_17959":{"entryPoint":1769,"id":17959,"parameterSlots":3,"returnSlots":0},"@issue_17976":{"entryPoint":2736,"id":17976,"parameterSlots":2,"returnSlots":0},"@name_17986":{"entryPoint":1626,"id":17986,"parameterSlots":0,"returnSlots":1},"@nonces_8170":{"entryPoint":2706,"id":8170,"parameterSlots":1,"returnSlots":1},"@owner_6404":{"entryPoint":2762,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":3633,"id":6414,"parameterSlots":1,"returnSlots":1},"@permit_8212":{"entryPoint":3088,"id":8212,"parameterSlots":7,"returnSlots":0},"@renounceOwnership_6361":{"entryPoint":2687,"id":6361,"parameterSlots":0,"returnSlots":0},"@renounceRoles_6588":{"entryPoint":2036,"id":6588,"parameterSlots":1,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":2302,"id":6376,"parameterSlots":0,"returnSlots":0},"@revokeRoles_6575":{"entryPoint":2560,"id":6575,"parameterSlots":2,"returnSlots":0},"@rolesOf_6598":{"entryPoint":2383,"id":6598,"parameterSlots":1,"returnSlots":1},"@symbol_17996":{"entryPoint":2802,"id":17996,"parameterSlots":0,"returnSlots":1},"@totalSupply_8061":{"entryPoint":2019,"id":8061,"parameterSlots":0,"returnSlots":1},"@transferFrom_8153":{"entryPoint":2093,"id":8153,"parameterSlots":3,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":3592,"id":6347,"parameterSlots":1,"returnSlots":0},"@transfer_8125":{"entryPoint":2946,"id":8125,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":5022,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5202,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":5933,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":5087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8":{"entryPoint":5891,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5685,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":6110,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":5605,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":5953,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":5409,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address":{"entryPoint":5222,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":5562,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5829,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5482,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":5789,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4727,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5522,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":5740,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5844,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5497,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":5804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4783,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5537,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":5755,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4934,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":4815,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":4960,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":6265,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":4671,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":4681,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":6541,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":5163,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5471,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":5780,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5132,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5358,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":5728,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":6507,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":6400,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":6678,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5008,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4697,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":6283,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":6217,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":6651,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":4885,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":6391,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":6623,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":6172,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4840,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":6433,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4832,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4836,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":4828,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":4824,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4711,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":6298,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":6611,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":6483,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":6310,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":6442,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5180,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":5911,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5367,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":5869,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":6479,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:16374:53","nodeType":"YulBlock","src":"0:16374:53","statements":[{"body":{"nativeSrc":"66:40:53","nodeType":"YulBlock","src":"66:40:53","statements":[{"nativeSrc":"77:22:53","nodeType":"YulAssignment","src":"77:22:53","value":{"arguments":[{"name":"value","nativeSrc":"93:5:53","nodeType":"YulIdentifier","src":"93:5:53"}],"functionName":{"name":"mload","nativeSrc":"87:5:53","nodeType":"YulIdentifier","src":"87:5:53"},"nativeSrc":"87:12:53","nodeType":"YulFunctionCall","src":"87:12:53"},"variableNames":[{"name":"length","nativeSrc":"77:6:53","nodeType":"YulIdentifier","src":"77:6:53"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:53","nodeType":"YulTypedName","src":"49:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:53","nodeType":"YulTypedName","src":"59:6:53","type":""}],"src":"7:99:53"},{"body":{"nativeSrc":"208:73:53","nodeType":"YulBlock","src":"208:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:53","nodeType":"YulIdentifier","src":"225:3:53"},{"name":"length","nativeSrc":"230:6:53","nodeType":"YulIdentifier","src":"230:6:53"}],"functionName":{"name":"mstore","nativeSrc":"218:6:53","nodeType":"YulIdentifier","src":"218:6:53"},"nativeSrc":"218:19:53","nodeType":"YulFunctionCall","src":"218:19:53"},"nativeSrc":"218:19:53","nodeType":"YulExpressionStatement","src":"218:19:53"},{"nativeSrc":"246:29:53","nodeType":"YulAssignment","src":"246:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:53","nodeType":"YulIdentifier","src":"265:3:53"},{"kind":"number","nativeSrc":"270:4:53","nodeType":"YulLiteral","src":"270:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:53","nodeType":"YulIdentifier","src":"261:3:53"},"nativeSrc":"261:14:53","nodeType":"YulFunctionCall","src":"261:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:53","nodeType":"YulIdentifier","src":"246:11:53"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:53","nodeType":"YulTypedName","src":"180:3:53","type":""},{"name":"length","nativeSrc":"185:6:53","nodeType":"YulTypedName","src":"185:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:53","nodeType":"YulTypedName","src":"196:11:53","type":""}],"src":"112:169:53"},{"body":{"nativeSrc":"349:77:53","nodeType":"YulBlock","src":"349:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:53","nodeType":"YulIdentifier","src":"366:3:53"},{"name":"src","nativeSrc":"371:3:53","nodeType":"YulIdentifier","src":"371:3:53"},{"name":"length","nativeSrc":"376:6:53","nodeType":"YulIdentifier","src":"376:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:53","nodeType":"YulIdentifier","src":"360:5:53"},"nativeSrc":"360:23:53","nodeType":"YulFunctionCall","src":"360:23:53"},"nativeSrc":"360:23:53","nodeType":"YulExpressionStatement","src":"360:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:53","nodeType":"YulIdentifier","src":"403:3:53"},{"name":"length","nativeSrc":"408:6:53","nodeType":"YulIdentifier","src":"408:6:53"}],"functionName":{"name":"add","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:16:53","nodeType":"YulFunctionCall","src":"399:16:53"},{"kind":"number","nativeSrc":"417:1:53","nodeType":"YulLiteral","src":"417:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:53","nodeType":"YulIdentifier","src":"392:6:53"},"nativeSrc":"392:27:53","nodeType":"YulFunctionCall","src":"392:27:53"},"nativeSrc":"392:27:53","nodeType":"YulExpressionStatement","src":"392:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:53","nodeType":"YulTypedName","src":"331:3:53","type":""},{"name":"dst","nativeSrc":"336:3:53","nodeType":"YulTypedName","src":"336:3:53","type":""},{"name":"length","nativeSrc":"341:6:53","nodeType":"YulTypedName","src":"341:6:53","type":""}],"src":"287:139:53"},{"body":{"nativeSrc":"480:54:53","nodeType":"YulBlock","src":"480:54:53","statements":[{"nativeSrc":"490:38:53","nodeType":"YulAssignment","src":"490:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:53","nodeType":"YulIdentifier","src":"508:5:53"},{"kind":"number","nativeSrc":"515:2:53","nodeType":"YulLiteral","src":"515:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:53","nodeType":"YulIdentifier","src":"504:3:53"},"nativeSrc":"504:14:53","nodeType":"YulFunctionCall","src":"504:14:53"},{"arguments":[{"kind":"number","nativeSrc":"524:2:53","nodeType":"YulLiteral","src":"524:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:53","nodeType":"YulIdentifier","src":"520:3:53"},"nativeSrc":"520:7:53","nodeType":"YulFunctionCall","src":"520:7:53"}],"functionName":{"name":"and","nativeSrc":"500:3:53","nodeType":"YulIdentifier","src":"500:3:53"},"nativeSrc":"500:28:53","nodeType":"YulFunctionCall","src":"500:28:53"},"variableNames":[{"name":"result","nativeSrc":"490:6:53","nodeType":"YulIdentifier","src":"490:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:53","nodeType":"YulTypedName","src":"463:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:53","nodeType":"YulTypedName","src":"473:6:53","type":""}],"src":"432:102:53"},{"body":{"nativeSrc":"632:285:53","nodeType":"YulBlock","src":"632:285:53","statements":[{"nativeSrc":"642:53:53","nodeType":"YulVariableDeclaration","src":"642:53:53","value":{"arguments":[{"name":"value","nativeSrc":"689:5:53","nodeType":"YulIdentifier","src":"689:5:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:53","nodeType":"YulIdentifier","src":"656:32:53"},"nativeSrc":"656:39:53","nodeType":"YulFunctionCall","src":"656:39:53"},"variables":[{"name":"length","nativeSrc":"646:6:53","nodeType":"YulTypedName","src":"646:6:53","type":""}]},{"nativeSrc":"704:78:53","nodeType":"YulAssignment","src":"704:78:53","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:53","nodeType":"YulIdentifier","src":"770:3:53"},{"name":"length","nativeSrc":"775:6:53","nodeType":"YulIdentifier","src":"775:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:53","nodeType":"YulIdentifier","src":"711:58:53"},"nativeSrc":"711:71:53","nodeType":"YulFunctionCall","src":"711:71:53"},"variableNames":[{"name":"pos","nativeSrc":"704:3:53","nodeType":"YulIdentifier","src":"704:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:53","nodeType":"YulIdentifier","src":"830:5:53"},{"kind":"number","nativeSrc":"837:4:53","nodeType":"YulLiteral","src":"837:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:53","nodeType":"YulIdentifier","src":"826:3:53"},"nativeSrc":"826:16:53","nodeType":"YulFunctionCall","src":"826:16:53"},{"name":"pos","nativeSrc":"844:3:53","nodeType":"YulIdentifier","src":"844:3:53"},{"name":"length","nativeSrc":"849:6:53","nodeType":"YulIdentifier","src":"849:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:53","nodeType":"YulIdentifier","src":"791:34:53"},"nativeSrc":"791:65:53","nodeType":"YulFunctionCall","src":"791:65:53"},"nativeSrc":"791:65:53","nodeType":"YulExpressionStatement","src":"791:65:53"},{"nativeSrc":"865:46:53","nodeType":"YulAssignment","src":"865:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:53","nodeType":"YulIdentifier","src":"876:3:53"},{"arguments":[{"name":"length","nativeSrc":"903:6:53","nodeType":"YulIdentifier","src":"903:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:53","nodeType":"YulIdentifier","src":"881:21:53"},"nativeSrc":"881:29:53","nodeType":"YulFunctionCall","src":"881:29:53"}],"functionName":{"name":"add","nativeSrc":"872:3:53","nodeType":"YulIdentifier","src":"872:3:53"},"nativeSrc":"872:39:53","nodeType":"YulFunctionCall","src":"872:39:53"},"variableNames":[{"name":"end","nativeSrc":"865:3:53","nodeType":"YulIdentifier","src":"865:3:53"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:53","nodeType":"YulTypedName","src":"613:5:53","type":""},{"name":"pos","nativeSrc":"620:3:53","nodeType":"YulTypedName","src":"620:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:53","nodeType":"YulTypedName","src":"628:3:53","type":""}],"src":"540:377:53"},{"body":{"nativeSrc":"1041:195:53","nodeType":"YulBlock","src":"1041:195:53","statements":[{"nativeSrc":"1051:26:53","nodeType":"YulAssignment","src":"1051:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:53","nodeType":"YulIdentifier","src":"1063:9:53"},{"kind":"number","nativeSrc":"1074:2:53","nodeType":"YulLiteral","src":"1074:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:53","nodeType":"YulIdentifier","src":"1059:3:53"},"nativeSrc":"1059:18:53","nodeType":"YulFunctionCall","src":"1059:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:53","nodeType":"YulIdentifier","src":"1051:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:53","nodeType":"YulIdentifier","src":"1098:9:53"},{"kind":"number","nativeSrc":"1109:1:53","nodeType":"YulLiteral","src":"1109:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:53","nodeType":"YulIdentifier","src":"1094:3:53"},"nativeSrc":"1094:17:53","nodeType":"YulFunctionCall","src":"1094:17:53"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:53","nodeType":"YulIdentifier","src":"1117:4:53"},{"name":"headStart","nativeSrc":"1123:9:53","nodeType":"YulIdentifier","src":"1123:9:53"}],"functionName":{"name":"sub","nativeSrc":"1113:3:53","nodeType":"YulIdentifier","src":"1113:3:53"},"nativeSrc":"1113:20:53","nodeType":"YulFunctionCall","src":"1113:20:53"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:53","nodeType":"YulIdentifier","src":"1087:6:53"},"nativeSrc":"1087:47:53","nodeType":"YulFunctionCall","src":"1087:47:53"},"nativeSrc":"1087:47:53","nodeType":"YulExpressionStatement","src":"1087:47:53"},{"nativeSrc":"1143:86:53","nodeType":"YulAssignment","src":"1143:86:53","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:53","nodeType":"YulIdentifier","src":"1215:6:53"},{"name":"tail","nativeSrc":"1224:4:53","nodeType":"YulIdentifier","src":"1224:4:53"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:53","nodeType":"YulIdentifier","src":"1151:63:53"},"nativeSrc":"1151:78:53","nodeType":"YulFunctionCall","src":"1151:78:53"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:53","nodeType":"YulIdentifier","src":"1143:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:53","nodeType":"YulTypedName","src":"1013:9:53","type":""},{"name":"value0","nativeSrc":"1025:6:53","nodeType":"YulTypedName","src":"1025:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:53","nodeType":"YulTypedName","src":"1036:4:53","type":""}],"src":"923:313:53"},{"body":{"nativeSrc":"1282:35:53","nodeType":"YulBlock","src":"1282:35:53","statements":[{"nativeSrc":"1292:19:53","nodeType":"YulAssignment","src":"1292:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:53","nodeType":"YulLiteral","src":"1308:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:53","nodeType":"YulIdentifier","src":"1302:5:53"},"nativeSrc":"1302:9:53","nodeType":"YulFunctionCall","src":"1302:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:53","nodeType":"YulIdentifier","src":"1292:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:53","nodeType":"YulTypedName","src":"1275:6:53","type":""}],"src":"1242:75:53"},{"body":{"nativeSrc":"1412:28:53","nodeType":"YulBlock","src":"1412:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:53","nodeType":"YulLiteral","src":"1429:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:53","nodeType":"YulLiteral","src":"1432:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:53","nodeType":"YulIdentifier","src":"1422:6:53"},"nativeSrc":"1422:12:53","nodeType":"YulFunctionCall","src":"1422:12:53"},"nativeSrc":"1422:12:53","nodeType":"YulExpressionStatement","src":"1422:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:53","nodeType":"YulFunctionDefinition","src":"1323:117:53"},{"body":{"nativeSrc":"1535:28:53","nodeType":"YulBlock","src":"1535:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:53","nodeType":"YulLiteral","src":"1552:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:53","nodeType":"YulLiteral","src":"1555:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:53","nodeType":"YulIdentifier","src":"1545:6:53"},"nativeSrc":"1545:12:53","nodeType":"YulFunctionCall","src":"1545:12:53"},"nativeSrc":"1545:12:53","nodeType":"YulExpressionStatement","src":"1545:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:53","nodeType":"YulFunctionDefinition","src":"1446:117:53"},{"body":{"nativeSrc":"1658:28:53","nodeType":"YulBlock","src":"1658:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1675:1:53","nodeType":"YulLiteral","src":"1675:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1678:1:53","nodeType":"YulLiteral","src":"1678:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1668:6:53","nodeType":"YulIdentifier","src":"1668:6:53"},"nativeSrc":"1668:12:53","nodeType":"YulFunctionCall","src":"1668:12:53"},"nativeSrc":"1668:12:53","nodeType":"YulExpressionStatement","src":"1668:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1569:117:53","nodeType":"YulFunctionDefinition","src":"1569:117:53"},{"body":{"nativeSrc":"1781:28:53","nodeType":"YulBlock","src":"1781:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:53","nodeType":"YulLiteral","src":"1798:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1801:1:53","nodeType":"YulLiteral","src":"1801:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1791:6:53","nodeType":"YulIdentifier","src":"1791:6:53"},"nativeSrc":"1791:12:53","nodeType":"YulFunctionCall","src":"1791:12:53"},"nativeSrc":"1791:12:53","nodeType":"YulExpressionStatement","src":"1791:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1692:117:53","nodeType":"YulFunctionDefinition","src":"1692:117:53"},{"body":{"nativeSrc":"1843:152:53","nodeType":"YulBlock","src":"1843:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1860:1:53","nodeType":"YulLiteral","src":"1860:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1863:77:53","nodeType":"YulLiteral","src":"1863:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1853:6:53","nodeType":"YulIdentifier","src":"1853:6:53"},"nativeSrc":"1853:88:53","nodeType":"YulFunctionCall","src":"1853:88:53"},"nativeSrc":"1853:88:53","nodeType":"YulExpressionStatement","src":"1853:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1957:1:53","nodeType":"YulLiteral","src":"1957:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"1960:4:53","nodeType":"YulLiteral","src":"1960:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1950:6:53","nodeType":"YulIdentifier","src":"1950:6:53"},"nativeSrc":"1950:15:53","nodeType":"YulFunctionCall","src":"1950:15:53"},"nativeSrc":"1950:15:53","nodeType":"YulExpressionStatement","src":"1950:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1981:1:53","nodeType":"YulLiteral","src":"1981:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1984:4:53","nodeType":"YulLiteral","src":"1984:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1974:6:53","nodeType":"YulIdentifier","src":"1974:6:53"},"nativeSrc":"1974:15:53","nodeType":"YulFunctionCall","src":"1974:15:53"},"nativeSrc":"1974:15:53","nodeType":"YulExpressionStatement","src":"1974:15:53"}]},"name":"panic_error_0x41","nativeSrc":"1815:180:53","nodeType":"YulFunctionDefinition","src":"1815:180:53"},{"body":{"nativeSrc":"2044:238:53","nodeType":"YulBlock","src":"2044:238:53","statements":[{"nativeSrc":"2054:58:53","nodeType":"YulVariableDeclaration","src":"2054:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"2076:6:53","nodeType":"YulIdentifier","src":"2076:6:53"},{"arguments":[{"name":"size","nativeSrc":"2106:4:53","nodeType":"YulIdentifier","src":"2106:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2084:21:53","nodeType":"YulIdentifier","src":"2084:21:53"},"nativeSrc":"2084:27:53","nodeType":"YulFunctionCall","src":"2084:27:53"}],"functionName":{"name":"add","nativeSrc":"2072:3:53","nodeType":"YulIdentifier","src":"2072:3:53"},"nativeSrc":"2072:40:53","nodeType":"YulFunctionCall","src":"2072:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"2058:10:53","nodeType":"YulTypedName","src":"2058:10:53","type":""}]},{"body":{"nativeSrc":"2223:22:53","nodeType":"YulBlock","src":"2223:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2225:16:53","nodeType":"YulIdentifier","src":"2225:16:53"},"nativeSrc":"2225:18:53","nodeType":"YulFunctionCall","src":"2225:18:53"},"nativeSrc":"2225:18:53","nodeType":"YulExpressionStatement","src":"2225:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2166:10:53","nodeType":"YulIdentifier","src":"2166:10:53"},{"kind":"number","nativeSrc":"2178:18:53","nodeType":"YulLiteral","src":"2178:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2163:2:53","nodeType":"YulIdentifier","src":"2163:2:53"},"nativeSrc":"2163:34:53","nodeType":"YulFunctionCall","src":"2163:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2202:10:53","nodeType":"YulIdentifier","src":"2202:10:53"},{"name":"memPtr","nativeSrc":"2214:6:53","nodeType":"YulIdentifier","src":"2214:6:53"}],"functionName":{"name":"lt","nativeSrc":"2199:2:53","nodeType":"YulIdentifier","src":"2199:2:53"},"nativeSrc":"2199:22:53","nodeType":"YulFunctionCall","src":"2199:22:53"}],"functionName":{"name":"or","nativeSrc":"2160:2:53","nodeType":"YulIdentifier","src":"2160:2:53"},"nativeSrc":"2160:62:53","nodeType":"YulFunctionCall","src":"2160:62:53"},"nativeSrc":"2157:88:53","nodeType":"YulIf","src":"2157:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2261:2:53","nodeType":"YulLiteral","src":"2261:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2265:10:53","nodeType":"YulIdentifier","src":"2265:10:53"}],"functionName":{"name":"mstore","nativeSrc":"2254:6:53","nodeType":"YulIdentifier","src":"2254:6:53"},"nativeSrc":"2254:22:53","nodeType":"YulFunctionCall","src":"2254:22:53"},"nativeSrc":"2254:22:53","nodeType":"YulExpressionStatement","src":"2254:22:53"}]},"name":"finalize_allocation","nativeSrc":"2001:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2030:6:53","nodeType":"YulTypedName","src":"2030:6:53","type":""},{"name":"size","nativeSrc":"2038:4:53","nodeType":"YulTypedName","src":"2038:4:53","type":""}],"src":"2001:281:53"},{"body":{"nativeSrc":"2329:88:53","nodeType":"YulBlock","src":"2329:88:53","statements":[{"nativeSrc":"2339:30:53","nodeType":"YulAssignment","src":"2339:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2349:18:53","nodeType":"YulIdentifier","src":"2349:18:53"},"nativeSrc":"2349:20:53","nodeType":"YulFunctionCall","src":"2349:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"2339:6:53","nodeType":"YulIdentifier","src":"2339:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2398:6:53","nodeType":"YulIdentifier","src":"2398:6:53"},{"name":"size","nativeSrc":"2406:4:53","nodeType":"YulIdentifier","src":"2406:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2378:19:53","nodeType":"YulIdentifier","src":"2378:19:53"},"nativeSrc":"2378:33:53","nodeType":"YulFunctionCall","src":"2378:33:53"},"nativeSrc":"2378:33:53","nodeType":"YulExpressionStatement","src":"2378:33:53"}]},"name":"allocate_memory","nativeSrc":"2288:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2313:4:53","nodeType":"YulTypedName","src":"2313:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2322:6:53","nodeType":"YulTypedName","src":"2322:6:53","type":""}],"src":"2288:129:53"},{"body":{"nativeSrc":"2490:241:53","nodeType":"YulBlock","src":"2490:241:53","statements":[{"body":{"nativeSrc":"2595:22:53","nodeType":"YulBlock","src":"2595:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2597:16:53","nodeType":"YulIdentifier","src":"2597:16:53"},"nativeSrc":"2597:18:53","nodeType":"YulFunctionCall","src":"2597:18:53"},"nativeSrc":"2597:18:53","nodeType":"YulExpressionStatement","src":"2597:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2567:6:53","nodeType":"YulIdentifier","src":"2567:6:53"},{"kind":"number","nativeSrc":"2575:18:53","nodeType":"YulLiteral","src":"2575:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2564:2:53","nodeType":"YulIdentifier","src":"2564:2:53"},"nativeSrc":"2564:30:53","nodeType":"YulFunctionCall","src":"2564:30:53"},"nativeSrc":"2561:56:53","nodeType":"YulIf","src":"2561:56:53"},{"nativeSrc":"2627:37:53","nodeType":"YulAssignment","src":"2627:37:53","value":{"arguments":[{"name":"length","nativeSrc":"2657:6:53","nodeType":"YulIdentifier","src":"2657:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2635:21:53","nodeType":"YulIdentifier","src":"2635:21:53"},"nativeSrc":"2635:29:53","nodeType":"YulFunctionCall","src":"2635:29:53"},"variableNames":[{"name":"size","nativeSrc":"2627:4:53","nodeType":"YulIdentifier","src":"2627:4:53"}]},{"nativeSrc":"2701:23:53","nodeType":"YulAssignment","src":"2701:23:53","value":{"arguments":[{"name":"size","nativeSrc":"2713:4:53","nodeType":"YulIdentifier","src":"2713:4:53"},{"kind":"number","nativeSrc":"2719:4:53","nodeType":"YulLiteral","src":"2719:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2709:3:53","nodeType":"YulIdentifier","src":"2709:3:53"},"nativeSrc":"2709:15:53","nodeType":"YulFunctionCall","src":"2709:15:53"},"variableNames":[{"name":"size","nativeSrc":"2701:4:53","nodeType":"YulIdentifier","src":"2701:4:53"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"2423:308:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2474:6:53","nodeType":"YulTypedName","src":"2474:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2485:4:53","nodeType":"YulTypedName","src":"2485:4:53","type":""}],"src":"2423:308:53"},{"body":{"nativeSrc":"2801:84:53","nodeType":"YulBlock","src":"2801:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2825:3:53","nodeType":"YulIdentifier","src":"2825:3:53"},{"name":"src","nativeSrc":"2830:3:53","nodeType":"YulIdentifier","src":"2830:3:53"},{"name":"length","nativeSrc":"2835:6:53","nodeType":"YulIdentifier","src":"2835:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"2812:12:53","nodeType":"YulIdentifier","src":"2812:12:53"},"nativeSrc":"2812:30:53","nodeType":"YulFunctionCall","src":"2812:30:53"},"nativeSrc":"2812:30:53","nodeType":"YulExpressionStatement","src":"2812:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2862:3:53","nodeType":"YulIdentifier","src":"2862:3:53"},{"name":"length","nativeSrc":"2867:6:53","nodeType":"YulIdentifier","src":"2867:6:53"}],"functionName":{"name":"add","nativeSrc":"2858:3:53","nodeType":"YulIdentifier","src":"2858:3:53"},"nativeSrc":"2858:16:53","nodeType":"YulFunctionCall","src":"2858:16:53"},{"kind":"number","nativeSrc":"2876:1:53","nodeType":"YulLiteral","src":"2876:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2851:6:53","nodeType":"YulIdentifier","src":"2851:6:53"},"nativeSrc":"2851:27:53","nodeType":"YulFunctionCall","src":"2851:27:53"},"nativeSrc":"2851:27:53","nodeType":"YulExpressionStatement","src":"2851:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2737:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2783:3:53","nodeType":"YulTypedName","src":"2783:3:53","type":""},{"name":"dst","nativeSrc":"2788:3:53","nodeType":"YulTypedName","src":"2788:3:53","type":""},{"name":"length","nativeSrc":"2793:6:53","nodeType":"YulTypedName","src":"2793:6:53","type":""}],"src":"2737:148:53"},{"body":{"nativeSrc":"2975:341:53","nodeType":"YulBlock","src":"2975:341:53","statements":[{"nativeSrc":"2985:75:53","nodeType":"YulAssignment","src":"2985:75:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3052:6:53","nodeType":"YulIdentifier","src":"3052:6:53"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"3010:41:53","nodeType":"YulIdentifier","src":"3010:41:53"},"nativeSrc":"3010:49:53","nodeType":"YulFunctionCall","src":"3010:49:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"2994:15:53","nodeType":"YulIdentifier","src":"2994:15:53"},"nativeSrc":"2994:66:53","nodeType":"YulFunctionCall","src":"2994:66:53"},"variableNames":[{"name":"array","nativeSrc":"2985:5:53","nodeType":"YulIdentifier","src":"2985:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3076:5:53","nodeType":"YulIdentifier","src":"3076:5:53"},{"name":"length","nativeSrc":"3083:6:53","nodeType":"YulIdentifier","src":"3083:6:53"}],"functionName":{"name":"mstore","nativeSrc":"3069:6:53","nodeType":"YulIdentifier","src":"3069:6:53"},"nativeSrc":"3069:21:53","nodeType":"YulFunctionCall","src":"3069:21:53"},"nativeSrc":"3069:21:53","nodeType":"YulExpressionStatement","src":"3069:21:53"},{"nativeSrc":"3099:27:53","nodeType":"YulVariableDeclaration","src":"3099:27:53","value":{"arguments":[{"name":"array","nativeSrc":"3114:5:53","nodeType":"YulIdentifier","src":"3114:5:53"},{"kind":"number","nativeSrc":"3121:4:53","nodeType":"YulLiteral","src":"3121:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3110:3:53","nodeType":"YulIdentifier","src":"3110:3:53"},"nativeSrc":"3110:16:53","nodeType":"YulFunctionCall","src":"3110:16:53"},"variables":[{"name":"dst","nativeSrc":"3103:3:53","nodeType":"YulTypedName","src":"3103:3:53","type":""}]},{"body":{"nativeSrc":"3164:83:53","nodeType":"YulBlock","src":"3164:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3166:77:53","nodeType":"YulIdentifier","src":"3166:77:53"},"nativeSrc":"3166:79:53","nodeType":"YulFunctionCall","src":"3166:79:53"},"nativeSrc":"3166:79:53","nodeType":"YulExpressionStatement","src":"3166:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3145:3:53","nodeType":"YulIdentifier","src":"3145:3:53"},{"name":"length","nativeSrc":"3150:6:53","nodeType":"YulIdentifier","src":"3150:6:53"}],"functionName":{"name":"add","nativeSrc":"3141:3:53","nodeType":"YulIdentifier","src":"3141:3:53"},"nativeSrc":"3141:16:53","nodeType":"YulFunctionCall","src":"3141:16:53"},{"name":"end","nativeSrc":"3159:3:53","nodeType":"YulIdentifier","src":"3159:3:53"}],"functionName":{"name":"gt","nativeSrc":"3138:2:53","nodeType":"YulIdentifier","src":"3138:2:53"},"nativeSrc":"3138:25:53","nodeType":"YulFunctionCall","src":"3138:25:53"},"nativeSrc":"3135:112:53","nodeType":"YulIf","src":"3135:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3293:3:53","nodeType":"YulIdentifier","src":"3293:3:53"},{"name":"dst","nativeSrc":"3298:3:53","nodeType":"YulIdentifier","src":"3298:3:53"},{"name":"length","nativeSrc":"3303:6:53","nodeType":"YulIdentifier","src":"3303:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3256:36:53","nodeType":"YulIdentifier","src":"3256:36:53"},"nativeSrc":"3256:54:53","nodeType":"YulFunctionCall","src":"3256:54:53"},"nativeSrc":"3256:54:53","nodeType":"YulExpressionStatement","src":"3256:54:53"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"2891:425:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2948:3:53","nodeType":"YulTypedName","src":"2948:3:53","type":""},{"name":"length","nativeSrc":"2953:6:53","nodeType":"YulTypedName","src":"2953:6:53","type":""},{"name":"end","nativeSrc":"2961:3:53","nodeType":"YulTypedName","src":"2961:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2969:5:53","nodeType":"YulTypedName","src":"2969:5:53","type":""}],"src":"2891:425:53"},{"body":{"nativeSrc":"3398:278:53","nodeType":"YulBlock","src":"3398:278:53","statements":[{"body":{"nativeSrc":"3447:83:53","nodeType":"YulBlock","src":"3447:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3449:77:53","nodeType":"YulIdentifier","src":"3449:77:53"},"nativeSrc":"3449:79:53","nodeType":"YulFunctionCall","src":"3449:79:53"},"nativeSrc":"3449:79:53","nodeType":"YulExpressionStatement","src":"3449:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3426:6:53","nodeType":"YulIdentifier","src":"3426:6:53"},{"kind":"number","nativeSrc":"3434:4:53","nodeType":"YulLiteral","src":"3434:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3422:3:53","nodeType":"YulIdentifier","src":"3422:3:53"},"nativeSrc":"3422:17:53","nodeType":"YulFunctionCall","src":"3422:17:53"},{"name":"end","nativeSrc":"3441:3:53","nodeType":"YulIdentifier","src":"3441:3:53"}],"functionName":{"name":"slt","nativeSrc":"3418:3:53","nodeType":"YulIdentifier","src":"3418:3:53"},"nativeSrc":"3418:27:53","nodeType":"YulFunctionCall","src":"3418:27:53"}],"functionName":{"name":"iszero","nativeSrc":"3411:6:53","nodeType":"YulIdentifier","src":"3411:6:53"},"nativeSrc":"3411:35:53","nodeType":"YulFunctionCall","src":"3411:35:53"},"nativeSrc":"3408:122:53","nodeType":"YulIf","src":"3408:122:53"},{"nativeSrc":"3539:34:53","nodeType":"YulVariableDeclaration","src":"3539:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"3566:6:53","nodeType":"YulIdentifier","src":"3566:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"3553:12:53","nodeType":"YulIdentifier","src":"3553:12:53"},"nativeSrc":"3553:20:53","nodeType":"YulFunctionCall","src":"3553:20:53"},"variables":[{"name":"length","nativeSrc":"3543:6:53","nodeType":"YulTypedName","src":"3543:6:53","type":""}]},{"nativeSrc":"3582:88:53","nodeType":"YulAssignment","src":"3582:88:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3643:6:53","nodeType":"YulIdentifier","src":"3643:6:53"},{"kind":"number","nativeSrc":"3651:4:53","nodeType":"YulLiteral","src":"3651:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3639:3:53","nodeType":"YulIdentifier","src":"3639:3:53"},"nativeSrc":"3639:17:53","nodeType":"YulFunctionCall","src":"3639:17:53"},{"name":"length","nativeSrc":"3658:6:53","nodeType":"YulIdentifier","src":"3658:6:53"},{"name":"end","nativeSrc":"3666:3:53","nodeType":"YulIdentifier","src":"3666:3:53"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"3591:47:53","nodeType":"YulIdentifier","src":"3591:47:53"},"nativeSrc":"3591:79:53","nodeType":"YulFunctionCall","src":"3591:79:53"},"variableNames":[{"name":"array","nativeSrc":"3582:5:53","nodeType":"YulIdentifier","src":"3582:5:53"}]}]},"name":"abi_decode_t_string_memory_ptr","nativeSrc":"3336:340:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3376:6:53","nodeType":"YulTypedName","src":"3376:6:53","type":""},{"name":"end","nativeSrc":"3384:3:53","nodeType":"YulTypedName","src":"3384:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3392:5:53","nodeType":"YulTypedName","src":"3392:5:53","type":""}],"src":"3336:340:53"},{"body":{"nativeSrc":"3727:81:53","nodeType":"YulBlock","src":"3727:81:53","statements":[{"nativeSrc":"3737:65:53","nodeType":"YulAssignment","src":"3737:65:53","value":{"arguments":[{"name":"value","nativeSrc":"3752:5:53","nodeType":"YulIdentifier","src":"3752:5:53"},{"kind":"number","nativeSrc":"3759:42:53","nodeType":"YulLiteral","src":"3759:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3748:3:53","nodeType":"YulIdentifier","src":"3748:3:53"},"nativeSrc":"3748:54:53","nodeType":"YulFunctionCall","src":"3748:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3737:7:53","nodeType":"YulIdentifier","src":"3737:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3682:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3709:5:53","nodeType":"YulTypedName","src":"3709:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3719:7:53","nodeType":"YulTypedName","src":"3719:7:53","type":""}],"src":"3682:126:53"},{"body":{"nativeSrc":"3859:51:53","nodeType":"YulBlock","src":"3859:51:53","statements":[{"nativeSrc":"3869:35:53","nodeType":"YulAssignment","src":"3869:35:53","value":{"arguments":[{"name":"value","nativeSrc":"3898:5:53","nodeType":"YulIdentifier","src":"3898:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3880:17:53","nodeType":"YulIdentifier","src":"3880:17:53"},"nativeSrc":"3880:24:53","nodeType":"YulFunctionCall","src":"3880:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"3869:7:53","nodeType":"YulIdentifier","src":"3869:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"3814:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3841:5:53","nodeType":"YulTypedName","src":"3841:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3851:7:53","nodeType":"YulTypedName","src":"3851:7:53","type":""}],"src":"3814:96:53"},{"body":{"nativeSrc":"3959:79:53","nodeType":"YulBlock","src":"3959:79:53","statements":[{"body":{"nativeSrc":"4016:16:53","nodeType":"YulBlock","src":"4016:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4025:1:53","nodeType":"YulLiteral","src":"4025:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4028:1:53","nodeType":"YulLiteral","src":"4028:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4018:6:53","nodeType":"YulIdentifier","src":"4018:6:53"},"nativeSrc":"4018:12:53","nodeType":"YulFunctionCall","src":"4018:12:53"},"nativeSrc":"4018:12:53","nodeType":"YulExpressionStatement","src":"4018:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3982:5:53","nodeType":"YulIdentifier","src":"3982:5:53"},{"arguments":[{"name":"value","nativeSrc":"4007:5:53","nodeType":"YulIdentifier","src":"4007:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3989:17:53","nodeType":"YulIdentifier","src":"3989:17:53"},"nativeSrc":"3989:24:53","nodeType":"YulFunctionCall","src":"3989:24:53"}],"functionName":{"name":"eq","nativeSrc":"3979:2:53","nodeType":"YulIdentifier","src":"3979:2:53"},"nativeSrc":"3979:35:53","nodeType":"YulFunctionCall","src":"3979:35:53"}],"functionName":{"name":"iszero","nativeSrc":"3972:6:53","nodeType":"YulIdentifier","src":"3972:6:53"},"nativeSrc":"3972:43:53","nodeType":"YulFunctionCall","src":"3972:43:53"},"nativeSrc":"3969:63:53","nodeType":"YulIf","src":"3969:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"3916:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3952:5:53","nodeType":"YulTypedName","src":"3952:5:53","type":""}],"src":"3916:122:53"},{"body":{"nativeSrc":"4096:87:53","nodeType":"YulBlock","src":"4096:87:53","statements":[{"nativeSrc":"4106:29:53","nodeType":"YulAssignment","src":"4106:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4128:6:53","nodeType":"YulIdentifier","src":"4128:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4115:12:53","nodeType":"YulIdentifier","src":"4115:12:53"},"nativeSrc":"4115:20:53","nodeType":"YulFunctionCall","src":"4115:20:53"},"variableNames":[{"name":"value","nativeSrc":"4106:5:53","nodeType":"YulIdentifier","src":"4106:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4171:5:53","nodeType":"YulIdentifier","src":"4171:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4144:26:53","nodeType":"YulIdentifier","src":"4144:26:53"},"nativeSrc":"4144:33:53","nodeType":"YulFunctionCall","src":"4144:33:53"},"nativeSrc":"4144:33:53","nodeType":"YulExpressionStatement","src":"4144:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"4044:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4074:6:53","nodeType":"YulTypedName","src":"4074:6:53","type":""},{"name":"end","nativeSrc":"4082:3:53","nodeType":"YulTypedName","src":"4082:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4090:5:53","nodeType":"YulTypedName","src":"4090:5:53","type":""}],"src":"4044:139:53"},{"body":{"nativeSrc":"4309:859:53","nodeType":"YulBlock","src":"4309:859:53","statements":[{"body":{"nativeSrc":"4355:83:53","nodeType":"YulBlock","src":"4355:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4357:77:53","nodeType":"YulIdentifier","src":"4357:77:53"},"nativeSrc":"4357:79:53","nodeType":"YulFunctionCall","src":"4357:79:53"},"nativeSrc":"4357:79:53","nodeType":"YulExpressionStatement","src":"4357:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4330:7:53","nodeType":"YulIdentifier","src":"4330:7:53"},{"name":"headStart","nativeSrc":"4339:9:53","nodeType":"YulIdentifier","src":"4339:9:53"}],"functionName":{"name":"sub","nativeSrc":"4326:3:53","nodeType":"YulIdentifier","src":"4326:3:53"},"nativeSrc":"4326:23:53","nodeType":"YulFunctionCall","src":"4326:23:53"},{"kind":"number","nativeSrc":"4351:2:53","nodeType":"YulLiteral","src":"4351:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4322:3:53","nodeType":"YulIdentifier","src":"4322:3:53"},"nativeSrc":"4322:32:53","nodeType":"YulFunctionCall","src":"4322:32:53"},"nativeSrc":"4319:119:53","nodeType":"YulIf","src":"4319:119:53"},{"nativeSrc":"4448:287:53","nodeType":"YulBlock","src":"4448:287:53","statements":[{"nativeSrc":"4463:45:53","nodeType":"YulVariableDeclaration","src":"4463:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4494:9:53","nodeType":"YulIdentifier","src":"4494:9:53"},{"kind":"number","nativeSrc":"4505:1:53","nodeType":"YulLiteral","src":"4505:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4490:3:53","nodeType":"YulIdentifier","src":"4490:3:53"},"nativeSrc":"4490:17:53","nodeType":"YulFunctionCall","src":"4490:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4477:12:53","nodeType":"YulIdentifier","src":"4477:12:53"},"nativeSrc":"4477:31:53","nodeType":"YulFunctionCall","src":"4477:31:53"},"variables":[{"name":"offset","nativeSrc":"4467:6:53","nodeType":"YulTypedName","src":"4467:6:53","type":""}]},{"body":{"nativeSrc":"4555:83:53","nodeType":"YulBlock","src":"4555:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4557:77:53","nodeType":"YulIdentifier","src":"4557:77:53"},"nativeSrc":"4557:79:53","nodeType":"YulFunctionCall","src":"4557:79:53"},"nativeSrc":"4557:79:53","nodeType":"YulExpressionStatement","src":"4557:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4527:6:53","nodeType":"YulIdentifier","src":"4527:6:53"},{"kind":"number","nativeSrc":"4535:18:53","nodeType":"YulLiteral","src":"4535:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4524:2:53","nodeType":"YulIdentifier","src":"4524:2:53"},"nativeSrc":"4524:30:53","nodeType":"YulFunctionCall","src":"4524:30:53"},"nativeSrc":"4521:117:53","nodeType":"YulIf","src":"4521:117:53"},{"nativeSrc":"4652:73:53","nodeType":"YulAssignment","src":"4652:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4697:9:53","nodeType":"YulIdentifier","src":"4697:9:53"},{"name":"offset","nativeSrc":"4708:6:53","nodeType":"YulIdentifier","src":"4708:6:53"}],"functionName":{"name":"add","nativeSrc":"4693:3:53","nodeType":"YulIdentifier","src":"4693:3:53"},"nativeSrc":"4693:22:53","nodeType":"YulFunctionCall","src":"4693:22:53"},{"name":"dataEnd","nativeSrc":"4717:7:53","nodeType":"YulIdentifier","src":"4717:7:53"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4662:30:53","nodeType":"YulIdentifier","src":"4662:30:53"},"nativeSrc":"4662:63:53","nodeType":"YulFunctionCall","src":"4662:63:53"},"variableNames":[{"name":"value0","nativeSrc":"4652:6:53","nodeType":"YulIdentifier","src":"4652:6:53"}]}]},{"nativeSrc":"4745:288:53","nodeType":"YulBlock","src":"4745:288:53","statements":[{"nativeSrc":"4760:46:53","nodeType":"YulVariableDeclaration","src":"4760:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4791:9:53","nodeType":"YulIdentifier","src":"4791:9:53"},{"kind":"number","nativeSrc":"4802:2:53","nodeType":"YulLiteral","src":"4802:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4787:3:53","nodeType":"YulIdentifier","src":"4787:3:53"},"nativeSrc":"4787:18:53","nodeType":"YulFunctionCall","src":"4787:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"4774:12:53","nodeType":"YulIdentifier","src":"4774:12:53"},"nativeSrc":"4774:32:53","nodeType":"YulFunctionCall","src":"4774:32:53"},"variables":[{"name":"offset","nativeSrc":"4764:6:53","nodeType":"YulTypedName","src":"4764:6:53","type":""}]},{"body":{"nativeSrc":"4853:83:53","nodeType":"YulBlock","src":"4853:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4855:77:53","nodeType":"YulIdentifier","src":"4855:77:53"},"nativeSrc":"4855:79:53","nodeType":"YulFunctionCall","src":"4855:79:53"},"nativeSrc":"4855:79:53","nodeType":"YulExpressionStatement","src":"4855:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4825:6:53","nodeType":"YulIdentifier","src":"4825:6:53"},{"kind":"number","nativeSrc":"4833:18:53","nodeType":"YulLiteral","src":"4833:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4822:2:53","nodeType":"YulIdentifier","src":"4822:2:53"},"nativeSrc":"4822:30:53","nodeType":"YulFunctionCall","src":"4822:30:53"},"nativeSrc":"4819:117:53","nodeType":"YulIf","src":"4819:117:53"},{"nativeSrc":"4950:73:53","nodeType":"YulAssignment","src":"4950:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4995:9:53","nodeType":"YulIdentifier","src":"4995:9:53"},{"name":"offset","nativeSrc":"5006:6:53","nodeType":"YulIdentifier","src":"5006:6:53"}],"functionName":{"name":"add","nativeSrc":"4991:3:53","nodeType":"YulIdentifier","src":"4991:3:53"},"nativeSrc":"4991:22:53","nodeType":"YulFunctionCall","src":"4991:22:53"},{"name":"dataEnd","nativeSrc":"5015:7:53","nodeType":"YulIdentifier","src":"5015:7:53"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4960:30:53","nodeType":"YulIdentifier","src":"4960:30:53"},"nativeSrc":"4960:63:53","nodeType":"YulFunctionCall","src":"4960:63:53"},"variableNames":[{"name":"value1","nativeSrc":"4950:6:53","nodeType":"YulIdentifier","src":"4950:6:53"}]}]},{"nativeSrc":"5043:118:53","nodeType":"YulBlock","src":"5043:118:53","statements":[{"nativeSrc":"5058:16:53","nodeType":"YulVariableDeclaration","src":"5058:16:53","value":{"kind":"number","nativeSrc":"5072:2:53","nodeType":"YulLiteral","src":"5072:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5062:6:53","nodeType":"YulTypedName","src":"5062:6:53","type":""}]},{"nativeSrc":"5088:63:53","nodeType":"YulAssignment","src":"5088:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5123:9:53","nodeType":"YulIdentifier","src":"5123:9:53"},{"name":"offset","nativeSrc":"5134:6:53","nodeType":"YulIdentifier","src":"5134:6:53"}],"functionName":{"name":"add","nativeSrc":"5119:3:53","nodeType":"YulIdentifier","src":"5119:3:53"},"nativeSrc":"5119:22:53","nodeType":"YulFunctionCall","src":"5119:22:53"},{"name":"dataEnd","nativeSrc":"5143:7:53","nodeType":"YulIdentifier","src":"5143:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5098:20:53","nodeType":"YulIdentifier","src":"5098:20:53"},"nativeSrc":"5098:53:53","nodeType":"YulFunctionCall","src":"5098:53:53"},"variableNames":[{"name":"value2","nativeSrc":"5088:6:53","nodeType":"YulIdentifier","src":"5088:6:53"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address","nativeSrc":"4189:979:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4263:9:53","nodeType":"YulTypedName","src":"4263:9:53","type":""},{"name":"dataEnd","nativeSrc":"4274:7:53","nodeType":"YulTypedName","src":"4274:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4286:6:53","nodeType":"YulTypedName","src":"4286:6:53","type":""},{"name":"value1","nativeSrc":"4294:6:53","nodeType":"YulTypedName","src":"4294:6:53","type":""},{"name":"value2","nativeSrc":"4302:6:53","nodeType":"YulTypedName","src":"4302:6:53","type":""}],"src":"4189:979:53"},{"body":{"nativeSrc":"5219:32:53","nodeType":"YulBlock","src":"5219:32:53","statements":[{"nativeSrc":"5229:16:53","nodeType":"YulAssignment","src":"5229:16:53","value":{"name":"value","nativeSrc":"5240:5:53","nodeType":"YulIdentifier","src":"5240:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5229:7:53","nodeType":"YulIdentifier","src":"5229:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5174:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5201:5:53","nodeType":"YulTypedName","src":"5201:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5211:7:53","nodeType":"YulTypedName","src":"5211:7:53","type":""}],"src":"5174:77:53"},{"body":{"nativeSrc":"5300:79:53","nodeType":"YulBlock","src":"5300:79:53","statements":[{"body":{"nativeSrc":"5357:16:53","nodeType":"YulBlock","src":"5357:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5366:1:53","nodeType":"YulLiteral","src":"5366:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5369:1:53","nodeType":"YulLiteral","src":"5369:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5359:6:53","nodeType":"YulIdentifier","src":"5359:6:53"},"nativeSrc":"5359:12:53","nodeType":"YulFunctionCall","src":"5359:12:53"},"nativeSrc":"5359:12:53","nodeType":"YulExpressionStatement","src":"5359:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5323:5:53","nodeType":"YulIdentifier","src":"5323:5:53"},{"arguments":[{"name":"value","nativeSrc":"5348:5:53","nodeType":"YulIdentifier","src":"5348:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5330:17:53","nodeType":"YulIdentifier","src":"5330:17:53"},"nativeSrc":"5330:24:53","nodeType":"YulFunctionCall","src":"5330:24:53"}],"functionName":{"name":"eq","nativeSrc":"5320:2:53","nodeType":"YulIdentifier","src":"5320:2:53"},"nativeSrc":"5320:35:53","nodeType":"YulFunctionCall","src":"5320:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5313:6:53","nodeType":"YulIdentifier","src":"5313:6:53"},"nativeSrc":"5313:43:53","nodeType":"YulFunctionCall","src":"5313:43:53"},"nativeSrc":"5310:63:53","nodeType":"YulIf","src":"5310:63:53"}]},"name":"validator_revert_t_uint256","nativeSrc":"5257:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5293:5:53","nodeType":"YulTypedName","src":"5293:5:53","type":""}],"src":"5257:122:53"},{"body":{"nativeSrc":"5437:87:53","nodeType":"YulBlock","src":"5437:87:53","statements":[{"nativeSrc":"5447:29:53","nodeType":"YulAssignment","src":"5447:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5469:6:53","nodeType":"YulIdentifier","src":"5469:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5456:12:53","nodeType":"YulIdentifier","src":"5456:12:53"},"nativeSrc":"5456:20:53","nodeType":"YulFunctionCall","src":"5456:20:53"},"variableNames":[{"name":"value","nativeSrc":"5447:5:53","nodeType":"YulIdentifier","src":"5447:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5512:5:53","nodeType":"YulIdentifier","src":"5512:5:53"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"5485:26:53","nodeType":"YulIdentifier","src":"5485:26:53"},"nativeSrc":"5485:33:53","nodeType":"YulFunctionCall","src":"5485:33:53"},"nativeSrc":"5485:33:53","nodeType":"YulExpressionStatement","src":"5485:33:53"}]},"name":"abi_decode_t_uint256","nativeSrc":"5385:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5415:6:53","nodeType":"YulTypedName","src":"5415:6:53","type":""},{"name":"end","nativeSrc":"5423:3:53","nodeType":"YulTypedName","src":"5423:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5431:5:53","nodeType":"YulTypedName","src":"5431:5:53","type":""}],"src":"5385:139:53"},{"body":{"nativeSrc":"5613:391:53","nodeType":"YulBlock","src":"5613:391:53","statements":[{"body":{"nativeSrc":"5659:83:53","nodeType":"YulBlock","src":"5659:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5661:77:53","nodeType":"YulIdentifier","src":"5661:77:53"},"nativeSrc":"5661:79:53","nodeType":"YulFunctionCall","src":"5661:79:53"},"nativeSrc":"5661:79:53","nodeType":"YulExpressionStatement","src":"5661:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5634:7:53","nodeType":"YulIdentifier","src":"5634:7:53"},{"name":"headStart","nativeSrc":"5643:9:53","nodeType":"YulIdentifier","src":"5643:9:53"}],"functionName":{"name":"sub","nativeSrc":"5630:3:53","nodeType":"YulIdentifier","src":"5630:3:53"},"nativeSrc":"5630:23:53","nodeType":"YulFunctionCall","src":"5630:23:53"},{"kind":"number","nativeSrc":"5655:2:53","nodeType":"YulLiteral","src":"5655:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5626:3:53","nodeType":"YulIdentifier","src":"5626:3:53"},"nativeSrc":"5626:32:53","nodeType":"YulFunctionCall","src":"5626:32:53"},"nativeSrc":"5623:119:53","nodeType":"YulIf","src":"5623:119:53"},{"nativeSrc":"5752:117:53","nodeType":"YulBlock","src":"5752:117:53","statements":[{"nativeSrc":"5767:15:53","nodeType":"YulVariableDeclaration","src":"5767:15:53","value":{"kind":"number","nativeSrc":"5781:1:53","nodeType":"YulLiteral","src":"5781:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5771:6:53","nodeType":"YulTypedName","src":"5771:6:53","type":""}]},{"nativeSrc":"5796:63:53","nodeType":"YulAssignment","src":"5796:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5831:9:53","nodeType":"YulIdentifier","src":"5831:9:53"},{"name":"offset","nativeSrc":"5842:6:53","nodeType":"YulIdentifier","src":"5842:6:53"}],"functionName":{"name":"add","nativeSrc":"5827:3:53","nodeType":"YulIdentifier","src":"5827:3:53"},"nativeSrc":"5827:22:53","nodeType":"YulFunctionCall","src":"5827:22:53"},{"name":"dataEnd","nativeSrc":"5851:7:53","nodeType":"YulIdentifier","src":"5851:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5806:20:53","nodeType":"YulIdentifier","src":"5806:20:53"},"nativeSrc":"5806:53:53","nodeType":"YulFunctionCall","src":"5806:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5796:6:53","nodeType":"YulIdentifier","src":"5796:6:53"}]}]},{"nativeSrc":"5879:118:53","nodeType":"YulBlock","src":"5879:118:53","statements":[{"nativeSrc":"5894:16:53","nodeType":"YulVariableDeclaration","src":"5894:16:53","value":{"kind":"number","nativeSrc":"5908:2:53","nodeType":"YulLiteral","src":"5908:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5898:6:53","nodeType":"YulTypedName","src":"5898:6:53","type":""}]},{"nativeSrc":"5924:63:53","nodeType":"YulAssignment","src":"5924:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5959:9:53","nodeType":"YulIdentifier","src":"5959:9:53"},{"name":"offset","nativeSrc":"5970:6:53","nodeType":"YulIdentifier","src":"5970:6:53"}],"functionName":{"name":"add","nativeSrc":"5955:3:53","nodeType":"YulIdentifier","src":"5955:3:53"},"nativeSrc":"5955:22:53","nodeType":"YulFunctionCall","src":"5955:22:53"},{"name":"dataEnd","nativeSrc":"5979:7:53","nodeType":"YulIdentifier","src":"5979:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5934:20:53","nodeType":"YulIdentifier","src":"5934:20:53"},"nativeSrc":"5934:53:53","nodeType":"YulFunctionCall","src":"5934:53:53"},"variableNames":[{"name":"value1","nativeSrc":"5924:6:53","nodeType":"YulIdentifier","src":"5924:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"5530:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5575:9:53","nodeType":"YulTypedName","src":"5575:9:53","type":""},{"name":"dataEnd","nativeSrc":"5586:7:53","nodeType":"YulTypedName","src":"5586:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5598:6:53","nodeType":"YulTypedName","src":"5598:6:53","type":""},{"name":"value1","nativeSrc":"5606:6:53","nodeType":"YulTypedName","src":"5606:6:53","type":""}],"src":"5530:474:53"},{"body":{"nativeSrc":"6052:48:53","nodeType":"YulBlock","src":"6052:48:53","statements":[{"nativeSrc":"6062:32:53","nodeType":"YulAssignment","src":"6062:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6087:5:53","nodeType":"YulIdentifier","src":"6087:5:53"}],"functionName":{"name":"iszero","nativeSrc":"6080:6:53","nodeType":"YulIdentifier","src":"6080:6:53"},"nativeSrc":"6080:13:53","nodeType":"YulFunctionCall","src":"6080:13:53"}],"functionName":{"name":"iszero","nativeSrc":"6073:6:53","nodeType":"YulIdentifier","src":"6073:6:53"},"nativeSrc":"6073:21:53","nodeType":"YulFunctionCall","src":"6073:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"6062:7:53","nodeType":"YulIdentifier","src":"6062:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"6010:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6034:5:53","nodeType":"YulTypedName","src":"6034:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6044:7:53","nodeType":"YulTypedName","src":"6044:7:53","type":""}],"src":"6010:90:53"},{"body":{"nativeSrc":"6165:50:53","nodeType":"YulBlock","src":"6165:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6182:3:53","nodeType":"YulIdentifier","src":"6182:3:53"},{"arguments":[{"name":"value","nativeSrc":"6202:5:53","nodeType":"YulIdentifier","src":"6202:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6187:14:53","nodeType":"YulIdentifier","src":"6187:14:53"},"nativeSrc":"6187:21:53","nodeType":"YulFunctionCall","src":"6187:21:53"}],"functionName":{"name":"mstore","nativeSrc":"6175:6:53","nodeType":"YulIdentifier","src":"6175:6:53"},"nativeSrc":"6175:34:53","nodeType":"YulFunctionCall","src":"6175:34:53"},"nativeSrc":"6175:34:53","nodeType":"YulExpressionStatement","src":"6175:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"6106:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6153:5:53","nodeType":"YulTypedName","src":"6153:5:53","type":""},{"name":"pos","nativeSrc":"6160:3:53","nodeType":"YulTypedName","src":"6160:3:53","type":""}],"src":"6106:109:53"},{"body":{"nativeSrc":"6313:118:53","nodeType":"YulBlock","src":"6313:118:53","statements":[{"nativeSrc":"6323:26:53","nodeType":"YulAssignment","src":"6323:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6335:9:53","nodeType":"YulIdentifier","src":"6335:9:53"},{"kind":"number","nativeSrc":"6346:2:53","nodeType":"YulLiteral","src":"6346:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6331:3:53","nodeType":"YulIdentifier","src":"6331:3:53"},"nativeSrc":"6331:18:53","nodeType":"YulFunctionCall","src":"6331:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6323:4:53","nodeType":"YulIdentifier","src":"6323:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6397:6:53","nodeType":"YulIdentifier","src":"6397:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6410:9:53","nodeType":"YulIdentifier","src":"6410:9:53"},{"kind":"number","nativeSrc":"6421:1:53","nodeType":"YulLiteral","src":"6421:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6406:3:53","nodeType":"YulIdentifier","src":"6406:3:53"},"nativeSrc":"6406:17:53","nodeType":"YulFunctionCall","src":"6406:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"6359:37:53","nodeType":"YulIdentifier","src":"6359:37:53"},"nativeSrc":"6359:65:53","nodeType":"YulFunctionCall","src":"6359:65:53"},"nativeSrc":"6359:65:53","nodeType":"YulExpressionStatement","src":"6359:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"6221:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6285:9:53","nodeType":"YulTypedName","src":"6285:9:53","type":""},{"name":"value0","nativeSrc":"6297:6:53","nodeType":"YulTypedName","src":"6297:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6308:4:53","nodeType":"YulTypedName","src":"6308:4:53","type":""}],"src":"6221:210:53"},{"body":{"nativeSrc":"6502:53:53","nodeType":"YulBlock","src":"6502:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6519:3:53","nodeType":"YulIdentifier","src":"6519:3:53"},{"arguments":[{"name":"value","nativeSrc":"6542:5:53","nodeType":"YulIdentifier","src":"6542:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6524:17:53","nodeType":"YulIdentifier","src":"6524:17:53"},"nativeSrc":"6524:24:53","nodeType":"YulFunctionCall","src":"6524:24:53"}],"functionName":{"name":"mstore","nativeSrc":"6512:6:53","nodeType":"YulIdentifier","src":"6512:6:53"},"nativeSrc":"6512:37:53","nodeType":"YulFunctionCall","src":"6512:37:53"},"nativeSrc":"6512:37:53","nodeType":"YulExpressionStatement","src":"6512:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6437:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6490:5:53","nodeType":"YulTypedName","src":"6490:5:53","type":""},{"name":"pos","nativeSrc":"6497:3:53","nodeType":"YulTypedName","src":"6497:3:53","type":""}],"src":"6437:118:53"},{"body":{"nativeSrc":"6659:124:53","nodeType":"YulBlock","src":"6659:124:53","statements":[{"nativeSrc":"6669:26:53","nodeType":"YulAssignment","src":"6669:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6681:9:53","nodeType":"YulIdentifier","src":"6681:9:53"},{"kind":"number","nativeSrc":"6692:2:53","nodeType":"YulLiteral","src":"6692:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6677:3:53","nodeType":"YulIdentifier","src":"6677:3:53"},"nativeSrc":"6677:18:53","nodeType":"YulFunctionCall","src":"6677:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6669:4:53","nodeType":"YulIdentifier","src":"6669:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6749:6:53","nodeType":"YulIdentifier","src":"6749:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6762:9:53","nodeType":"YulIdentifier","src":"6762:9:53"},{"kind":"number","nativeSrc":"6773:1:53","nodeType":"YulLiteral","src":"6773:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6758:3:53","nodeType":"YulIdentifier","src":"6758:3:53"},"nativeSrc":"6758:17:53","nodeType":"YulFunctionCall","src":"6758:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6705:43:53","nodeType":"YulIdentifier","src":"6705:43:53"},"nativeSrc":"6705:71:53","nodeType":"YulFunctionCall","src":"6705:71:53"},"nativeSrc":"6705:71:53","nodeType":"YulExpressionStatement","src":"6705:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6561:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6631:9:53","nodeType":"YulTypedName","src":"6631:9:53","type":""},{"name":"value0","nativeSrc":"6643:6:53","nodeType":"YulTypedName","src":"6643:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6654:4:53","nodeType":"YulTypedName","src":"6654:4:53","type":""}],"src":"6561:222:53"},{"body":{"nativeSrc":"6855:263:53","nodeType":"YulBlock","src":"6855:263:53","statements":[{"body":{"nativeSrc":"6901:83:53","nodeType":"YulBlock","src":"6901:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6903:77:53","nodeType":"YulIdentifier","src":"6903:77:53"},"nativeSrc":"6903:79:53","nodeType":"YulFunctionCall","src":"6903:79:53"},"nativeSrc":"6903:79:53","nodeType":"YulExpressionStatement","src":"6903:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6876:7:53","nodeType":"YulIdentifier","src":"6876:7:53"},{"name":"headStart","nativeSrc":"6885:9:53","nodeType":"YulIdentifier","src":"6885:9:53"}],"functionName":{"name":"sub","nativeSrc":"6872:3:53","nodeType":"YulIdentifier","src":"6872:3:53"},"nativeSrc":"6872:23:53","nodeType":"YulFunctionCall","src":"6872:23:53"},{"kind":"number","nativeSrc":"6897:2:53","nodeType":"YulLiteral","src":"6897:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6868:3:53","nodeType":"YulIdentifier","src":"6868:3:53"},"nativeSrc":"6868:32:53","nodeType":"YulFunctionCall","src":"6868:32:53"},"nativeSrc":"6865:119:53","nodeType":"YulIf","src":"6865:119:53"},{"nativeSrc":"6994:117:53","nodeType":"YulBlock","src":"6994:117:53","statements":[{"nativeSrc":"7009:15:53","nodeType":"YulVariableDeclaration","src":"7009:15:53","value":{"kind":"number","nativeSrc":"7023:1:53","nodeType":"YulLiteral","src":"7023:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7013:6:53","nodeType":"YulTypedName","src":"7013:6:53","type":""}]},{"nativeSrc":"7038:63:53","nodeType":"YulAssignment","src":"7038:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7073:9:53","nodeType":"YulIdentifier","src":"7073:9:53"},{"name":"offset","nativeSrc":"7084:6:53","nodeType":"YulIdentifier","src":"7084:6:53"}],"functionName":{"name":"add","nativeSrc":"7069:3:53","nodeType":"YulIdentifier","src":"7069:3:53"},"nativeSrc":"7069:22:53","nodeType":"YulFunctionCall","src":"7069:22:53"},{"name":"dataEnd","nativeSrc":"7093:7:53","nodeType":"YulIdentifier","src":"7093:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7048:20:53","nodeType":"YulIdentifier","src":"7048:20:53"},"nativeSrc":"7048:53:53","nodeType":"YulFunctionCall","src":"7048:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7038:6:53","nodeType":"YulIdentifier","src":"7038:6:53"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6789:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6825:9:53","nodeType":"YulTypedName","src":"6825:9:53","type":""},{"name":"dataEnd","nativeSrc":"6836:7:53","nodeType":"YulTypedName","src":"6836:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6848:6:53","nodeType":"YulTypedName","src":"6848:6:53","type":""}],"src":"6789:329:53"},{"body":{"nativeSrc":"7224:519:53","nodeType":"YulBlock","src":"7224:519:53","statements":[{"body":{"nativeSrc":"7270:83:53","nodeType":"YulBlock","src":"7270:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7272:77:53","nodeType":"YulIdentifier","src":"7272:77:53"},"nativeSrc":"7272:79:53","nodeType":"YulFunctionCall","src":"7272:79:53"},"nativeSrc":"7272:79:53","nodeType":"YulExpressionStatement","src":"7272:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7245:7:53","nodeType":"YulIdentifier","src":"7245:7:53"},{"name":"headStart","nativeSrc":"7254:9:53","nodeType":"YulIdentifier","src":"7254:9:53"}],"functionName":{"name":"sub","nativeSrc":"7241:3:53","nodeType":"YulIdentifier","src":"7241:3:53"},"nativeSrc":"7241:23:53","nodeType":"YulFunctionCall","src":"7241:23:53"},{"kind":"number","nativeSrc":"7266:2:53","nodeType":"YulLiteral","src":"7266:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7237:3:53","nodeType":"YulIdentifier","src":"7237:3:53"},"nativeSrc":"7237:32:53","nodeType":"YulFunctionCall","src":"7237:32:53"},"nativeSrc":"7234:119:53","nodeType":"YulIf","src":"7234:119:53"},{"nativeSrc":"7363:117:53","nodeType":"YulBlock","src":"7363:117:53","statements":[{"nativeSrc":"7378:15:53","nodeType":"YulVariableDeclaration","src":"7378:15:53","value":{"kind":"number","nativeSrc":"7392:1:53","nodeType":"YulLiteral","src":"7392:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7382:6:53","nodeType":"YulTypedName","src":"7382:6:53","type":""}]},{"nativeSrc":"7407:63:53","nodeType":"YulAssignment","src":"7407:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7442:9:53","nodeType":"YulIdentifier","src":"7442:9:53"},{"name":"offset","nativeSrc":"7453:6:53","nodeType":"YulIdentifier","src":"7453:6:53"}],"functionName":{"name":"add","nativeSrc":"7438:3:53","nodeType":"YulIdentifier","src":"7438:3:53"},"nativeSrc":"7438:22:53","nodeType":"YulFunctionCall","src":"7438:22:53"},{"name":"dataEnd","nativeSrc":"7462:7:53","nodeType":"YulIdentifier","src":"7462:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7417:20:53","nodeType":"YulIdentifier","src":"7417:20:53"},"nativeSrc":"7417:53:53","nodeType":"YulFunctionCall","src":"7417:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7407:6:53","nodeType":"YulIdentifier","src":"7407:6:53"}]}]},{"nativeSrc":"7490:118:53","nodeType":"YulBlock","src":"7490:118:53","statements":[{"nativeSrc":"7505:16:53","nodeType":"YulVariableDeclaration","src":"7505:16:53","value":{"kind":"number","nativeSrc":"7519:2:53","nodeType":"YulLiteral","src":"7519:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7509:6:53","nodeType":"YulTypedName","src":"7509:6:53","type":""}]},{"nativeSrc":"7535:63:53","nodeType":"YulAssignment","src":"7535:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7570:9:53","nodeType":"YulIdentifier","src":"7570:9:53"},{"name":"offset","nativeSrc":"7581:6:53","nodeType":"YulIdentifier","src":"7581:6:53"}],"functionName":{"name":"add","nativeSrc":"7566:3:53","nodeType":"YulIdentifier","src":"7566:3:53"},"nativeSrc":"7566:22:53","nodeType":"YulFunctionCall","src":"7566:22:53"},{"name":"dataEnd","nativeSrc":"7590:7:53","nodeType":"YulIdentifier","src":"7590:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7545:20:53","nodeType":"YulIdentifier","src":"7545:20:53"},"nativeSrc":"7545:53:53","nodeType":"YulFunctionCall","src":"7545:53:53"},"variableNames":[{"name":"value1","nativeSrc":"7535:6:53","nodeType":"YulIdentifier","src":"7535:6:53"}]}]},{"nativeSrc":"7618:118:53","nodeType":"YulBlock","src":"7618:118:53","statements":[{"nativeSrc":"7633:16:53","nodeType":"YulVariableDeclaration","src":"7633:16:53","value":{"kind":"number","nativeSrc":"7647:2:53","nodeType":"YulLiteral","src":"7647:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"7637:6:53","nodeType":"YulTypedName","src":"7637:6:53","type":""}]},{"nativeSrc":"7663:63:53","nodeType":"YulAssignment","src":"7663:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7698:9:53","nodeType":"YulIdentifier","src":"7698:9:53"},{"name":"offset","nativeSrc":"7709:6:53","nodeType":"YulIdentifier","src":"7709:6:53"}],"functionName":{"name":"add","nativeSrc":"7694:3:53","nodeType":"YulIdentifier","src":"7694:3:53"},"nativeSrc":"7694:22:53","nodeType":"YulFunctionCall","src":"7694:22:53"},{"name":"dataEnd","nativeSrc":"7718:7:53","nodeType":"YulIdentifier","src":"7718:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7673:20:53","nodeType":"YulIdentifier","src":"7673:20:53"},"nativeSrc":"7673:53:53","nodeType":"YulFunctionCall","src":"7673:53:53"},"variableNames":[{"name":"value2","nativeSrc":"7663:6:53","nodeType":"YulIdentifier","src":"7663:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"7124:619:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7178:9:53","nodeType":"YulTypedName","src":"7178:9:53","type":""},{"name":"dataEnd","nativeSrc":"7189:7:53","nodeType":"YulTypedName","src":"7189:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7201:6:53","nodeType":"YulTypedName","src":"7201:6:53","type":""},{"name":"value1","nativeSrc":"7209:6:53","nodeType":"YulTypedName","src":"7209:6:53","type":""},{"name":"value2","nativeSrc":"7217:6:53","nodeType":"YulTypedName","src":"7217:6:53","type":""}],"src":"7124:619:53"},{"body":{"nativeSrc":"7815:263:53","nodeType":"YulBlock","src":"7815:263:53","statements":[{"body":{"nativeSrc":"7861:83:53","nodeType":"YulBlock","src":"7861:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7863:77:53","nodeType":"YulIdentifier","src":"7863:77:53"},"nativeSrc":"7863:79:53","nodeType":"YulFunctionCall","src":"7863:79:53"},"nativeSrc":"7863:79:53","nodeType":"YulExpressionStatement","src":"7863:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7836:7:53","nodeType":"YulIdentifier","src":"7836:7:53"},{"name":"headStart","nativeSrc":"7845:9:53","nodeType":"YulIdentifier","src":"7845:9:53"}],"functionName":{"name":"sub","nativeSrc":"7832:3:53","nodeType":"YulIdentifier","src":"7832:3:53"},"nativeSrc":"7832:23:53","nodeType":"YulFunctionCall","src":"7832:23:53"},{"kind":"number","nativeSrc":"7857:2:53","nodeType":"YulLiteral","src":"7857:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7828:3:53","nodeType":"YulIdentifier","src":"7828:3:53"},"nativeSrc":"7828:32:53","nodeType":"YulFunctionCall","src":"7828:32:53"},"nativeSrc":"7825:119:53","nodeType":"YulIf","src":"7825:119:53"},{"nativeSrc":"7954:117:53","nodeType":"YulBlock","src":"7954:117:53","statements":[{"nativeSrc":"7969:15:53","nodeType":"YulVariableDeclaration","src":"7969:15:53","value":{"kind":"number","nativeSrc":"7983:1:53","nodeType":"YulLiteral","src":"7983:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7973:6:53","nodeType":"YulTypedName","src":"7973:6:53","type":""}]},{"nativeSrc":"7998:63:53","nodeType":"YulAssignment","src":"7998:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8033:9:53","nodeType":"YulIdentifier","src":"8033:9:53"},{"name":"offset","nativeSrc":"8044:6:53","nodeType":"YulIdentifier","src":"8044:6:53"}],"functionName":{"name":"add","nativeSrc":"8029:3:53","nodeType":"YulIdentifier","src":"8029:3:53"},"nativeSrc":"8029:22:53","nodeType":"YulFunctionCall","src":"8029:22:53"},{"name":"dataEnd","nativeSrc":"8053:7:53","nodeType":"YulIdentifier","src":"8053:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8008:20:53","nodeType":"YulIdentifier","src":"8008:20:53"},"nativeSrc":"8008:53:53","nodeType":"YulFunctionCall","src":"8008:53:53"},"variableNames":[{"name":"value0","nativeSrc":"7998:6:53","nodeType":"YulIdentifier","src":"7998:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7749:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7785:9:53","nodeType":"YulTypedName","src":"7785:9:53","type":""},{"name":"dataEnd","nativeSrc":"7796:7:53","nodeType":"YulTypedName","src":"7796:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7808:6:53","nodeType":"YulTypedName","src":"7808:6:53","type":""}],"src":"7749:329:53"},{"body":{"nativeSrc":"8127:43:53","nodeType":"YulBlock","src":"8127:43:53","statements":[{"nativeSrc":"8137:27:53","nodeType":"YulAssignment","src":"8137:27:53","value":{"arguments":[{"name":"value","nativeSrc":"8152:5:53","nodeType":"YulIdentifier","src":"8152:5:53"},{"kind":"number","nativeSrc":"8159:4:53","nodeType":"YulLiteral","src":"8159:4:53","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"8148:3:53","nodeType":"YulIdentifier","src":"8148:3:53"},"nativeSrc":"8148:16:53","nodeType":"YulFunctionCall","src":"8148:16:53"},"variableNames":[{"name":"cleaned","nativeSrc":"8137:7:53","nodeType":"YulIdentifier","src":"8137:7:53"}]}]},"name":"cleanup_t_uint8","nativeSrc":"8084:86:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8109:5:53","nodeType":"YulTypedName","src":"8109:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8119:7:53","nodeType":"YulTypedName","src":"8119:7:53","type":""}],"src":"8084:86:53"},{"body":{"nativeSrc":"8237:51:53","nodeType":"YulBlock","src":"8237:51:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8254:3:53","nodeType":"YulIdentifier","src":"8254:3:53"},{"arguments":[{"name":"value","nativeSrc":"8275:5:53","nodeType":"YulIdentifier","src":"8275:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"8259:15:53","nodeType":"YulIdentifier","src":"8259:15:53"},"nativeSrc":"8259:22:53","nodeType":"YulFunctionCall","src":"8259:22:53"}],"functionName":{"name":"mstore","nativeSrc":"8247:6:53","nodeType":"YulIdentifier","src":"8247:6:53"},"nativeSrc":"8247:35:53","nodeType":"YulFunctionCall","src":"8247:35:53"},"nativeSrc":"8247:35:53","nodeType":"YulExpressionStatement","src":"8247:35:53"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"8176:112:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8225:5:53","nodeType":"YulTypedName","src":"8225:5:53","type":""},{"name":"pos","nativeSrc":"8232:3:53","nodeType":"YulTypedName","src":"8232:3:53","type":""}],"src":"8176:112:53"},{"body":{"nativeSrc":"8388:120:53","nodeType":"YulBlock","src":"8388:120:53","statements":[{"nativeSrc":"8398:26:53","nodeType":"YulAssignment","src":"8398:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8410:9:53","nodeType":"YulIdentifier","src":"8410:9:53"},{"kind":"number","nativeSrc":"8421:2:53","nodeType":"YulLiteral","src":"8421:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8406:3:53","nodeType":"YulIdentifier","src":"8406:3:53"},"nativeSrc":"8406:18:53","nodeType":"YulFunctionCall","src":"8406:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8398:4:53","nodeType":"YulIdentifier","src":"8398:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8474:6:53","nodeType":"YulIdentifier","src":"8474:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8487:9:53","nodeType":"YulIdentifier","src":"8487:9:53"},{"kind":"number","nativeSrc":"8498:1:53","nodeType":"YulLiteral","src":"8498:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8483:3:53","nodeType":"YulIdentifier","src":"8483:3:53"},"nativeSrc":"8483:17:53","nodeType":"YulFunctionCall","src":"8483:17:53"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"8434:39:53","nodeType":"YulIdentifier","src":"8434:39:53"},"nativeSrc":"8434:67:53","nodeType":"YulFunctionCall","src":"8434:67:53"},"nativeSrc":"8434:67:53","nodeType":"YulExpressionStatement","src":"8434:67:53"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"8294:214:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8360:9:53","nodeType":"YulTypedName","src":"8360:9:53","type":""},{"name":"value0","nativeSrc":"8372:6:53","nodeType":"YulTypedName","src":"8372:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8383:4:53","nodeType":"YulTypedName","src":"8383:4:53","type":""}],"src":"8294:214:53"},{"body":{"nativeSrc":"8559:32:53","nodeType":"YulBlock","src":"8559:32:53","statements":[{"nativeSrc":"8569:16:53","nodeType":"YulAssignment","src":"8569:16:53","value":{"name":"value","nativeSrc":"8580:5:53","nodeType":"YulIdentifier","src":"8580:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"8569:7:53","nodeType":"YulIdentifier","src":"8569:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"8514:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8541:5:53","nodeType":"YulTypedName","src":"8541:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8551:7:53","nodeType":"YulTypedName","src":"8551:7:53","type":""}],"src":"8514:77:53"},{"body":{"nativeSrc":"8662:53:53","nodeType":"YulBlock","src":"8662:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8679:3:53","nodeType":"YulIdentifier","src":"8679:3:53"},{"arguments":[{"name":"value","nativeSrc":"8702:5:53","nodeType":"YulIdentifier","src":"8702:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"8684:17:53","nodeType":"YulIdentifier","src":"8684:17:53"},"nativeSrc":"8684:24:53","nodeType":"YulFunctionCall","src":"8684:24:53"}],"functionName":{"name":"mstore","nativeSrc":"8672:6:53","nodeType":"YulIdentifier","src":"8672:6:53"},"nativeSrc":"8672:37:53","nodeType":"YulFunctionCall","src":"8672:37:53"},"nativeSrc":"8672:37:53","nodeType":"YulExpressionStatement","src":"8672:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8597:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8650:5:53","nodeType":"YulTypedName","src":"8650:5:53","type":""},{"name":"pos","nativeSrc":"8657:3:53","nodeType":"YulTypedName","src":"8657:3:53","type":""}],"src":"8597:118:53"},{"body":{"nativeSrc":"8819:124:53","nodeType":"YulBlock","src":"8819:124:53","statements":[{"nativeSrc":"8829:26:53","nodeType":"YulAssignment","src":"8829:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8841:9:53","nodeType":"YulIdentifier","src":"8841:9:53"},{"kind":"number","nativeSrc":"8852:2:53","nodeType":"YulLiteral","src":"8852:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8837:3:53","nodeType":"YulIdentifier","src":"8837:3:53"},"nativeSrc":"8837:18:53","nodeType":"YulFunctionCall","src":"8837:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8829:4:53","nodeType":"YulIdentifier","src":"8829:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8909:6:53","nodeType":"YulIdentifier","src":"8909:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"8922:9:53","nodeType":"YulIdentifier","src":"8922:9:53"},{"kind":"number","nativeSrc":"8933:1:53","nodeType":"YulLiteral","src":"8933:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8918:3:53","nodeType":"YulIdentifier","src":"8918:3:53"},"nativeSrc":"8918:17:53","nodeType":"YulFunctionCall","src":"8918:17:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8865:43:53","nodeType":"YulIdentifier","src":"8865:43:53"},"nativeSrc":"8865:71:53","nodeType":"YulFunctionCall","src":"8865:71:53"},"nativeSrc":"8865:71:53","nodeType":"YulExpressionStatement","src":"8865:71:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"8721:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8791:9:53","nodeType":"YulTypedName","src":"8791:9:53","type":""},{"name":"value0","nativeSrc":"8803:6:53","nodeType":"YulTypedName","src":"8803:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8814:4:53","nodeType":"YulTypedName","src":"8814:4:53","type":""}],"src":"8721:222:53"},{"body":{"nativeSrc":"9014:53:53","nodeType":"YulBlock","src":"9014:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9031:3:53","nodeType":"YulIdentifier","src":"9031:3:53"},{"arguments":[{"name":"value","nativeSrc":"9054:5:53","nodeType":"YulIdentifier","src":"9054:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"9036:17:53","nodeType":"YulIdentifier","src":"9036:17:53"},"nativeSrc":"9036:24:53","nodeType":"YulFunctionCall","src":"9036:24:53"}],"functionName":{"name":"mstore","nativeSrc":"9024:6:53","nodeType":"YulIdentifier","src":"9024:6:53"},"nativeSrc":"9024:37:53","nodeType":"YulFunctionCall","src":"9024:37:53"},"nativeSrc":"9024:37:53","nodeType":"YulExpressionStatement","src":"9024:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8949:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9002:5:53","nodeType":"YulTypedName","src":"9002:5:53","type":""},{"name":"pos","nativeSrc":"9009:3:53","nodeType":"YulTypedName","src":"9009:3:53","type":""}],"src":"8949:118:53"},{"body":{"nativeSrc":"9171:124:53","nodeType":"YulBlock","src":"9171:124:53","statements":[{"nativeSrc":"9181:26:53","nodeType":"YulAssignment","src":"9181:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9193:9:53","nodeType":"YulIdentifier","src":"9193:9:53"},{"kind":"number","nativeSrc":"9204:2:53","nodeType":"YulLiteral","src":"9204:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9189:3:53","nodeType":"YulIdentifier","src":"9189:3:53"},"nativeSrc":"9189:18:53","nodeType":"YulFunctionCall","src":"9189:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9181:4:53","nodeType":"YulIdentifier","src":"9181:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9261:6:53","nodeType":"YulIdentifier","src":"9261:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"9274:9:53","nodeType":"YulIdentifier","src":"9274:9:53"},{"kind":"number","nativeSrc":"9285:1:53","nodeType":"YulLiteral","src":"9285:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9270:3:53","nodeType":"YulIdentifier","src":"9270:3:53"},"nativeSrc":"9270:17:53","nodeType":"YulFunctionCall","src":"9270:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9217:43:53","nodeType":"YulIdentifier","src":"9217:43:53"},"nativeSrc":"9217:71:53","nodeType":"YulFunctionCall","src":"9217:71:53"},"nativeSrc":"9217:71:53","nodeType":"YulExpressionStatement","src":"9217:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"9073:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9143:9:53","nodeType":"YulTypedName","src":"9143:9:53","type":""},{"name":"value0","nativeSrc":"9155:6:53","nodeType":"YulTypedName","src":"9155:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9166:4:53","nodeType":"YulTypedName","src":"9166:4:53","type":""}],"src":"9073:222:53"},{"body":{"nativeSrc":"9342:77:53","nodeType":"YulBlock","src":"9342:77:53","statements":[{"body":{"nativeSrc":"9397:16:53","nodeType":"YulBlock","src":"9397:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9406:1:53","nodeType":"YulLiteral","src":"9406:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9409:1:53","nodeType":"YulLiteral","src":"9409:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9399:6:53","nodeType":"YulIdentifier","src":"9399:6:53"},"nativeSrc":"9399:12:53","nodeType":"YulFunctionCall","src":"9399:12:53"},"nativeSrc":"9399:12:53","nodeType":"YulExpressionStatement","src":"9399:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9365:5:53","nodeType":"YulIdentifier","src":"9365:5:53"},{"arguments":[{"name":"value","nativeSrc":"9388:5:53","nodeType":"YulIdentifier","src":"9388:5:53"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"9372:15:53","nodeType":"YulIdentifier","src":"9372:15:53"},"nativeSrc":"9372:22:53","nodeType":"YulFunctionCall","src":"9372:22:53"}],"functionName":{"name":"eq","nativeSrc":"9362:2:53","nodeType":"YulIdentifier","src":"9362:2:53"},"nativeSrc":"9362:33:53","nodeType":"YulFunctionCall","src":"9362:33:53"}],"functionName":{"name":"iszero","nativeSrc":"9355:6:53","nodeType":"YulIdentifier","src":"9355:6:53"},"nativeSrc":"9355:41:53","nodeType":"YulFunctionCall","src":"9355:41:53"},"nativeSrc":"9352:61:53","nodeType":"YulIf","src":"9352:61:53"}]},"name":"validator_revert_t_uint8","nativeSrc":"9301:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9335:5:53","nodeType":"YulTypedName","src":"9335:5:53","type":""}],"src":"9301:118:53"},{"body":{"nativeSrc":"9475:85:53","nodeType":"YulBlock","src":"9475:85:53","statements":[{"nativeSrc":"9485:29:53","nodeType":"YulAssignment","src":"9485:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9507:6:53","nodeType":"YulIdentifier","src":"9507:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9494:12:53","nodeType":"YulIdentifier","src":"9494:12:53"},"nativeSrc":"9494:20:53","nodeType":"YulFunctionCall","src":"9494:20:53"},"variableNames":[{"name":"value","nativeSrc":"9485:5:53","nodeType":"YulIdentifier","src":"9485:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9548:5:53","nodeType":"YulIdentifier","src":"9548:5:53"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"9523:24:53","nodeType":"YulIdentifier","src":"9523:24:53"},"nativeSrc":"9523:31:53","nodeType":"YulFunctionCall","src":"9523:31:53"},"nativeSrc":"9523:31:53","nodeType":"YulExpressionStatement","src":"9523:31:53"}]},"name":"abi_decode_t_uint8","nativeSrc":"9425:135:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9453:6:53","nodeType":"YulTypedName","src":"9453:6:53","type":""},{"name":"end","nativeSrc":"9461:3:53","nodeType":"YulTypedName","src":"9461:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9469:5:53","nodeType":"YulTypedName","src":"9469:5:53","type":""}],"src":"9425:135:53"},{"body":{"nativeSrc":"9609:79:53","nodeType":"YulBlock","src":"9609:79:53","statements":[{"body":{"nativeSrc":"9666:16:53","nodeType":"YulBlock","src":"9666:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9675:1:53","nodeType":"YulLiteral","src":"9675:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9678:1:53","nodeType":"YulLiteral","src":"9678:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9668:6:53","nodeType":"YulIdentifier","src":"9668:6:53"},"nativeSrc":"9668:12:53","nodeType":"YulFunctionCall","src":"9668:12:53"},"nativeSrc":"9668:12:53","nodeType":"YulExpressionStatement","src":"9668:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9632:5:53","nodeType":"YulIdentifier","src":"9632:5:53"},{"arguments":[{"name":"value","nativeSrc":"9657:5:53","nodeType":"YulIdentifier","src":"9657:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"9639:17:53","nodeType":"YulIdentifier","src":"9639:17:53"},"nativeSrc":"9639:24:53","nodeType":"YulFunctionCall","src":"9639:24:53"}],"functionName":{"name":"eq","nativeSrc":"9629:2:53","nodeType":"YulIdentifier","src":"9629:2:53"},"nativeSrc":"9629:35:53","nodeType":"YulFunctionCall","src":"9629:35:53"}],"functionName":{"name":"iszero","nativeSrc":"9622:6:53","nodeType":"YulIdentifier","src":"9622:6:53"},"nativeSrc":"9622:43:53","nodeType":"YulFunctionCall","src":"9622:43:53"},"nativeSrc":"9619:63:53","nodeType":"YulIf","src":"9619:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"9566:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9602:5:53","nodeType":"YulTypedName","src":"9602:5:53","type":""}],"src":"9566:122:53"},{"body":{"nativeSrc":"9746:87:53","nodeType":"YulBlock","src":"9746:87:53","statements":[{"nativeSrc":"9756:29:53","nodeType":"YulAssignment","src":"9756:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"9778:6:53","nodeType":"YulIdentifier","src":"9778:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9765:12:53","nodeType":"YulIdentifier","src":"9765:12:53"},"nativeSrc":"9765:20:53","nodeType":"YulFunctionCall","src":"9765:20:53"},"variableNames":[{"name":"value","nativeSrc":"9756:5:53","nodeType":"YulIdentifier","src":"9756:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9821:5:53","nodeType":"YulIdentifier","src":"9821:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"9794:26:53","nodeType":"YulIdentifier","src":"9794:26:53"},"nativeSrc":"9794:33:53","nodeType":"YulFunctionCall","src":"9794:33:53"},"nativeSrc":"9794:33:53","nodeType":"YulExpressionStatement","src":"9794:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"9694:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9724:6:53","nodeType":"YulTypedName","src":"9724:6:53","type":""},{"name":"end","nativeSrc":"9732:3:53","nodeType":"YulTypedName","src":"9732:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9740:5:53","nodeType":"YulTypedName","src":"9740:5:53","type":""}],"src":"9694:139:53"},{"body":{"nativeSrc":"10005:1033:53","nodeType":"YulBlock","src":"10005:1033:53","statements":[{"body":{"nativeSrc":"10052:83:53","nodeType":"YulBlock","src":"10052:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10054:77:53","nodeType":"YulIdentifier","src":"10054:77:53"},"nativeSrc":"10054:79:53","nodeType":"YulFunctionCall","src":"10054:79:53"},"nativeSrc":"10054:79:53","nodeType":"YulExpressionStatement","src":"10054:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10026:7:53","nodeType":"YulIdentifier","src":"10026:7:53"},{"name":"headStart","nativeSrc":"10035:9:53","nodeType":"YulIdentifier","src":"10035:9:53"}],"functionName":{"name":"sub","nativeSrc":"10022:3:53","nodeType":"YulIdentifier","src":"10022:3:53"},"nativeSrc":"10022:23:53","nodeType":"YulFunctionCall","src":"10022:23:53"},{"kind":"number","nativeSrc":"10047:3:53","nodeType":"YulLiteral","src":"10047:3:53","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"10018:3:53","nodeType":"YulIdentifier","src":"10018:3:53"},"nativeSrc":"10018:33:53","nodeType":"YulFunctionCall","src":"10018:33:53"},"nativeSrc":"10015:120:53","nodeType":"YulIf","src":"10015:120:53"},{"nativeSrc":"10145:117:53","nodeType":"YulBlock","src":"10145:117:53","statements":[{"nativeSrc":"10160:15:53","nodeType":"YulVariableDeclaration","src":"10160:15:53","value":{"kind":"number","nativeSrc":"10174:1:53","nodeType":"YulLiteral","src":"10174:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10164:6:53","nodeType":"YulTypedName","src":"10164:6:53","type":""}]},{"nativeSrc":"10189:63:53","nodeType":"YulAssignment","src":"10189:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10224:9:53","nodeType":"YulIdentifier","src":"10224:9:53"},{"name":"offset","nativeSrc":"10235:6:53","nodeType":"YulIdentifier","src":"10235:6:53"}],"functionName":{"name":"add","nativeSrc":"10220:3:53","nodeType":"YulIdentifier","src":"10220:3:53"},"nativeSrc":"10220:22:53","nodeType":"YulFunctionCall","src":"10220:22:53"},{"name":"dataEnd","nativeSrc":"10244:7:53","nodeType":"YulIdentifier","src":"10244:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10199:20:53","nodeType":"YulIdentifier","src":"10199:20:53"},"nativeSrc":"10199:53:53","nodeType":"YulFunctionCall","src":"10199:53:53"},"variableNames":[{"name":"value0","nativeSrc":"10189:6:53","nodeType":"YulIdentifier","src":"10189:6:53"}]}]},{"nativeSrc":"10272:118:53","nodeType":"YulBlock","src":"10272:118:53","statements":[{"nativeSrc":"10287:16:53","nodeType":"YulVariableDeclaration","src":"10287:16:53","value":{"kind":"number","nativeSrc":"10301:2:53","nodeType":"YulLiteral","src":"10301:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"10291:6:53","nodeType":"YulTypedName","src":"10291:6:53","type":""}]},{"nativeSrc":"10317:63:53","nodeType":"YulAssignment","src":"10317:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10352:9:53","nodeType":"YulIdentifier","src":"10352:9:53"},{"name":"offset","nativeSrc":"10363:6:53","nodeType":"YulIdentifier","src":"10363:6:53"}],"functionName":{"name":"add","nativeSrc":"10348:3:53","nodeType":"YulIdentifier","src":"10348:3:53"},"nativeSrc":"10348:22:53","nodeType":"YulFunctionCall","src":"10348:22:53"},{"name":"dataEnd","nativeSrc":"10372:7:53","nodeType":"YulIdentifier","src":"10372:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10327:20:53","nodeType":"YulIdentifier","src":"10327:20:53"},"nativeSrc":"10327:53:53","nodeType":"YulFunctionCall","src":"10327:53:53"},"variableNames":[{"name":"value1","nativeSrc":"10317:6:53","nodeType":"YulIdentifier","src":"10317:6:53"}]}]},{"nativeSrc":"10400:118:53","nodeType":"YulBlock","src":"10400:118:53","statements":[{"nativeSrc":"10415:16:53","nodeType":"YulVariableDeclaration","src":"10415:16:53","value":{"kind":"number","nativeSrc":"10429:2:53","nodeType":"YulLiteral","src":"10429:2:53","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"10419:6:53","nodeType":"YulTypedName","src":"10419:6:53","type":""}]},{"nativeSrc":"10445:63:53","nodeType":"YulAssignment","src":"10445:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10480:9:53","nodeType":"YulIdentifier","src":"10480:9:53"},{"name":"offset","nativeSrc":"10491:6:53","nodeType":"YulIdentifier","src":"10491:6:53"}],"functionName":{"name":"add","nativeSrc":"10476:3:53","nodeType":"YulIdentifier","src":"10476:3:53"},"nativeSrc":"10476:22:53","nodeType":"YulFunctionCall","src":"10476:22:53"},{"name":"dataEnd","nativeSrc":"10500:7:53","nodeType":"YulIdentifier","src":"10500:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10455:20:53","nodeType":"YulIdentifier","src":"10455:20:53"},"nativeSrc":"10455:53:53","nodeType":"YulFunctionCall","src":"10455:53:53"},"variableNames":[{"name":"value2","nativeSrc":"10445:6:53","nodeType":"YulIdentifier","src":"10445:6:53"}]}]},{"nativeSrc":"10528:118:53","nodeType":"YulBlock","src":"10528:118:53","statements":[{"nativeSrc":"10543:16:53","nodeType":"YulVariableDeclaration","src":"10543:16:53","value":{"kind":"number","nativeSrc":"10557:2:53","nodeType":"YulLiteral","src":"10557:2:53","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"10547:6:53","nodeType":"YulTypedName","src":"10547:6:53","type":""}]},{"nativeSrc":"10573:63:53","nodeType":"YulAssignment","src":"10573:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10608:9:53","nodeType":"YulIdentifier","src":"10608:9:53"},{"name":"offset","nativeSrc":"10619:6:53","nodeType":"YulIdentifier","src":"10619:6:53"}],"functionName":{"name":"add","nativeSrc":"10604:3:53","nodeType":"YulIdentifier","src":"10604:3:53"},"nativeSrc":"10604:22:53","nodeType":"YulFunctionCall","src":"10604:22:53"},{"name":"dataEnd","nativeSrc":"10628:7:53","nodeType":"YulIdentifier","src":"10628:7:53"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10583:20:53","nodeType":"YulIdentifier","src":"10583:20:53"},"nativeSrc":"10583:53:53","nodeType":"YulFunctionCall","src":"10583:53:53"},"variableNames":[{"name":"value3","nativeSrc":"10573:6:53","nodeType":"YulIdentifier","src":"10573:6:53"}]}]},{"nativeSrc":"10656:117:53","nodeType":"YulBlock","src":"10656:117:53","statements":[{"nativeSrc":"10671:17:53","nodeType":"YulVariableDeclaration","src":"10671:17:53","value":{"kind":"number","nativeSrc":"10685:3:53","nodeType":"YulLiteral","src":"10685:3:53","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"10675:6:53","nodeType":"YulTypedName","src":"10675:6:53","type":""}]},{"nativeSrc":"10702:61:53","nodeType":"YulAssignment","src":"10702:61:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10735:9:53","nodeType":"YulIdentifier","src":"10735:9:53"},{"name":"offset","nativeSrc":"10746:6:53","nodeType":"YulIdentifier","src":"10746:6:53"}],"functionName":{"name":"add","nativeSrc":"10731:3:53","nodeType":"YulIdentifier","src":"10731:3:53"},"nativeSrc":"10731:22:53","nodeType":"YulFunctionCall","src":"10731:22:53"},{"name":"dataEnd","nativeSrc":"10755:7:53","nodeType":"YulIdentifier","src":"10755:7:53"}],"functionName":{"name":"abi_decode_t_uint8","nativeSrc":"10712:18:53","nodeType":"YulIdentifier","src":"10712:18:53"},"nativeSrc":"10712:51:53","nodeType":"YulFunctionCall","src":"10712:51:53"},"variableNames":[{"name":"value4","nativeSrc":"10702:6:53","nodeType":"YulIdentifier","src":"10702:6:53"}]}]},{"nativeSrc":"10783:119:53","nodeType":"YulBlock","src":"10783:119:53","statements":[{"nativeSrc":"10798:17:53","nodeType":"YulVariableDeclaration","src":"10798:17:53","value":{"kind":"number","nativeSrc":"10812:3:53","nodeType":"YulLiteral","src":"10812:3:53","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"10802:6:53","nodeType":"YulTypedName","src":"10802:6:53","type":""}]},{"nativeSrc":"10829:63:53","nodeType":"YulAssignment","src":"10829:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10864:9:53","nodeType":"YulIdentifier","src":"10864:9:53"},{"name":"offset","nativeSrc":"10875:6:53","nodeType":"YulIdentifier","src":"10875:6:53"}],"functionName":{"name":"add","nativeSrc":"10860:3:53","nodeType":"YulIdentifier","src":"10860:3:53"},"nativeSrc":"10860:22:53","nodeType":"YulFunctionCall","src":"10860:22:53"},{"name":"dataEnd","nativeSrc":"10884:7:53","nodeType":"YulIdentifier","src":"10884:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"10839:20:53","nodeType":"YulIdentifier","src":"10839:20:53"},"nativeSrc":"10839:53:53","nodeType":"YulFunctionCall","src":"10839:53:53"},"variableNames":[{"name":"value5","nativeSrc":"10829:6:53","nodeType":"YulIdentifier","src":"10829:6:53"}]}]},{"nativeSrc":"10912:119:53","nodeType":"YulBlock","src":"10912:119:53","statements":[{"nativeSrc":"10927:17:53","nodeType":"YulVariableDeclaration","src":"10927:17:53","value":{"kind":"number","nativeSrc":"10941:3:53","nodeType":"YulLiteral","src":"10941:3:53","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"10931:6:53","nodeType":"YulTypedName","src":"10931:6:53","type":""}]},{"nativeSrc":"10958:63:53","nodeType":"YulAssignment","src":"10958:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10993:9:53","nodeType":"YulIdentifier","src":"10993:9:53"},{"name":"offset","nativeSrc":"11004:6:53","nodeType":"YulIdentifier","src":"11004:6:53"}],"functionName":{"name":"add","nativeSrc":"10989:3:53","nodeType":"YulIdentifier","src":"10989:3:53"},"nativeSrc":"10989:22:53","nodeType":"YulFunctionCall","src":"10989:22:53"},{"name":"dataEnd","nativeSrc":"11013:7:53","nodeType":"YulIdentifier","src":"11013:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"10968:20:53","nodeType":"YulIdentifier","src":"10968:20:53"},"nativeSrc":"10968:53:53","nodeType":"YulFunctionCall","src":"10968:53:53"},"variableNames":[{"name":"value6","nativeSrc":"10958:6:53","nodeType":"YulIdentifier","src":"10958:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nativeSrc":"9839:1199:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9927:9:53","nodeType":"YulTypedName","src":"9927:9:53","type":""},{"name":"dataEnd","nativeSrc":"9938:7:53","nodeType":"YulTypedName","src":"9938:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9950:6:53","nodeType":"YulTypedName","src":"9950:6:53","type":""},{"name":"value1","nativeSrc":"9958:6:53","nodeType":"YulTypedName","src":"9958:6:53","type":""},{"name":"value2","nativeSrc":"9966:6:53","nodeType":"YulTypedName","src":"9966:6:53","type":""},{"name":"value3","nativeSrc":"9974:6:53","nodeType":"YulTypedName","src":"9974:6:53","type":""},{"name":"value4","nativeSrc":"9982:6:53","nodeType":"YulTypedName","src":"9982:6:53","type":""},{"name":"value5","nativeSrc":"9990:6:53","nodeType":"YulTypedName","src":"9990:6:53","type":""},{"name":"value6","nativeSrc":"9998:6:53","nodeType":"YulTypedName","src":"9998:6:53","type":""}],"src":"9839:1199:53"},{"body":{"nativeSrc":"11127:391:53","nodeType":"YulBlock","src":"11127:391:53","statements":[{"body":{"nativeSrc":"11173:83:53","nodeType":"YulBlock","src":"11173:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11175:77:53","nodeType":"YulIdentifier","src":"11175:77:53"},"nativeSrc":"11175:79:53","nodeType":"YulFunctionCall","src":"11175:79:53"},"nativeSrc":"11175:79:53","nodeType":"YulExpressionStatement","src":"11175:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11148:7:53","nodeType":"YulIdentifier","src":"11148:7:53"},{"name":"headStart","nativeSrc":"11157:9:53","nodeType":"YulIdentifier","src":"11157:9:53"}],"functionName":{"name":"sub","nativeSrc":"11144:3:53","nodeType":"YulIdentifier","src":"11144:3:53"},"nativeSrc":"11144:23:53","nodeType":"YulFunctionCall","src":"11144:23:53"},{"kind":"number","nativeSrc":"11169:2:53","nodeType":"YulLiteral","src":"11169:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11140:3:53","nodeType":"YulIdentifier","src":"11140:3:53"},"nativeSrc":"11140:32:53","nodeType":"YulFunctionCall","src":"11140:32:53"},"nativeSrc":"11137:119:53","nodeType":"YulIf","src":"11137:119:53"},{"nativeSrc":"11266:117:53","nodeType":"YulBlock","src":"11266:117:53","statements":[{"nativeSrc":"11281:15:53","nodeType":"YulVariableDeclaration","src":"11281:15:53","value":{"kind":"number","nativeSrc":"11295:1:53","nodeType":"YulLiteral","src":"11295:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11285:6:53","nodeType":"YulTypedName","src":"11285:6:53","type":""}]},{"nativeSrc":"11310:63:53","nodeType":"YulAssignment","src":"11310:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11345:9:53","nodeType":"YulIdentifier","src":"11345:9:53"},{"name":"offset","nativeSrc":"11356:6:53","nodeType":"YulIdentifier","src":"11356:6:53"}],"functionName":{"name":"add","nativeSrc":"11341:3:53","nodeType":"YulIdentifier","src":"11341:3:53"},"nativeSrc":"11341:22:53","nodeType":"YulFunctionCall","src":"11341:22:53"},{"name":"dataEnd","nativeSrc":"11365:7:53","nodeType":"YulIdentifier","src":"11365:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11320:20:53","nodeType":"YulIdentifier","src":"11320:20:53"},"nativeSrc":"11320:53:53","nodeType":"YulFunctionCall","src":"11320:53:53"},"variableNames":[{"name":"value0","nativeSrc":"11310:6:53","nodeType":"YulIdentifier","src":"11310:6:53"}]}]},{"nativeSrc":"11393:118:53","nodeType":"YulBlock","src":"11393:118:53","statements":[{"nativeSrc":"11408:16:53","nodeType":"YulVariableDeclaration","src":"11408:16:53","value":{"kind":"number","nativeSrc":"11422:2:53","nodeType":"YulLiteral","src":"11422:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11412:6:53","nodeType":"YulTypedName","src":"11412:6:53","type":""}]},{"nativeSrc":"11438:63:53","nodeType":"YulAssignment","src":"11438:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11473:9:53","nodeType":"YulIdentifier","src":"11473:9:53"},{"name":"offset","nativeSrc":"11484:6:53","nodeType":"YulIdentifier","src":"11484:6:53"}],"functionName":{"name":"add","nativeSrc":"11469:3:53","nodeType":"YulIdentifier","src":"11469:3:53"},"nativeSrc":"11469:22:53","nodeType":"YulFunctionCall","src":"11469:22:53"},{"name":"dataEnd","nativeSrc":"11493:7:53","nodeType":"YulIdentifier","src":"11493:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11448:20:53","nodeType":"YulIdentifier","src":"11448:20:53"},"nativeSrc":"11448:53:53","nodeType":"YulFunctionCall","src":"11448:53:53"},"variableNames":[{"name":"value1","nativeSrc":"11438:6:53","nodeType":"YulIdentifier","src":"11438:6:53"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"11044:474:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11089:9:53","nodeType":"YulTypedName","src":"11089:9:53","type":""},{"name":"dataEnd","nativeSrc":"11100:7:53","nodeType":"YulTypedName","src":"11100:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11112:6:53","nodeType":"YulTypedName","src":"11112:6:53","type":""},{"name":"value1","nativeSrc":"11120:6:53","nodeType":"YulTypedName","src":"11120:6:53","type":""}],"src":"11044:474:53"},{"body":{"nativeSrc":"11552:152:53","nodeType":"YulBlock","src":"11552:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11569:1:53","nodeType":"YulLiteral","src":"11569:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11572:77:53","nodeType":"YulLiteral","src":"11572:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11562:6:53","nodeType":"YulIdentifier","src":"11562:6:53"},"nativeSrc":"11562:88:53","nodeType":"YulFunctionCall","src":"11562:88:53"},"nativeSrc":"11562:88:53","nodeType":"YulExpressionStatement","src":"11562:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11666:1:53","nodeType":"YulLiteral","src":"11666:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"11669:4:53","nodeType":"YulLiteral","src":"11669:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11659:6:53","nodeType":"YulIdentifier","src":"11659:6:53"},"nativeSrc":"11659:15:53","nodeType":"YulFunctionCall","src":"11659:15:53"},"nativeSrc":"11659:15:53","nodeType":"YulExpressionStatement","src":"11659:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11690:1:53","nodeType":"YulLiteral","src":"11690:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11693:4:53","nodeType":"YulLiteral","src":"11693:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11683:6:53","nodeType":"YulIdentifier","src":"11683:6:53"},"nativeSrc":"11683:15:53","nodeType":"YulFunctionCall","src":"11683:15:53"},"nativeSrc":"11683:15:53","nodeType":"YulExpressionStatement","src":"11683:15:53"}]},"name":"panic_error_0x22","nativeSrc":"11524:180:53","nodeType":"YulFunctionDefinition","src":"11524:180:53"},{"body":{"nativeSrc":"11761:269:53","nodeType":"YulBlock","src":"11761:269:53","statements":[{"nativeSrc":"11771:22:53","nodeType":"YulAssignment","src":"11771:22:53","value":{"arguments":[{"name":"data","nativeSrc":"11785:4:53","nodeType":"YulIdentifier","src":"11785:4:53"},{"kind":"number","nativeSrc":"11791:1:53","nodeType":"YulLiteral","src":"11791:1:53","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"11781:3:53","nodeType":"YulIdentifier","src":"11781:3:53"},"nativeSrc":"11781:12:53","nodeType":"YulFunctionCall","src":"11781:12:53"},"variableNames":[{"name":"length","nativeSrc":"11771:6:53","nodeType":"YulIdentifier","src":"11771:6:53"}]},{"nativeSrc":"11802:38:53","nodeType":"YulVariableDeclaration","src":"11802:38:53","value":{"arguments":[{"name":"data","nativeSrc":"11832:4:53","nodeType":"YulIdentifier","src":"11832:4:53"},{"kind":"number","nativeSrc":"11838:1:53","nodeType":"YulLiteral","src":"11838:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"11828:3:53","nodeType":"YulIdentifier","src":"11828:3:53"},"nativeSrc":"11828:12:53","nodeType":"YulFunctionCall","src":"11828:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"11806:18:53","nodeType":"YulTypedName","src":"11806:18:53","type":""}]},{"body":{"nativeSrc":"11879:51:53","nodeType":"YulBlock","src":"11879:51:53","statements":[{"nativeSrc":"11893:27:53","nodeType":"YulAssignment","src":"11893:27:53","value":{"arguments":[{"name":"length","nativeSrc":"11907:6:53","nodeType":"YulIdentifier","src":"11907:6:53"},{"kind":"number","nativeSrc":"11915:4:53","nodeType":"YulLiteral","src":"11915:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11903:3:53","nodeType":"YulIdentifier","src":"11903:3:53"},"nativeSrc":"11903:17:53","nodeType":"YulFunctionCall","src":"11903:17:53"},"variableNames":[{"name":"length","nativeSrc":"11893:6:53","nodeType":"YulIdentifier","src":"11893:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11859:18:53","nodeType":"YulIdentifier","src":"11859:18:53"}],"functionName":{"name":"iszero","nativeSrc":"11852:6:53","nodeType":"YulIdentifier","src":"11852:6:53"},"nativeSrc":"11852:26:53","nodeType":"YulFunctionCall","src":"11852:26:53"},"nativeSrc":"11849:81:53","nodeType":"YulIf","src":"11849:81:53"},{"body":{"nativeSrc":"11982:42:53","nodeType":"YulBlock","src":"11982:42:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"11996:16:53","nodeType":"YulIdentifier","src":"11996:16:53"},"nativeSrc":"11996:18:53","nodeType":"YulFunctionCall","src":"11996:18:53"},"nativeSrc":"11996:18:53","nodeType":"YulExpressionStatement","src":"11996:18:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11946:18:53","nodeType":"YulIdentifier","src":"11946:18:53"},{"arguments":[{"name":"length","nativeSrc":"11969:6:53","nodeType":"YulIdentifier","src":"11969:6:53"},{"kind":"number","nativeSrc":"11977:2:53","nodeType":"YulLiteral","src":"11977:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"11966:2:53","nodeType":"YulIdentifier","src":"11966:2:53"},"nativeSrc":"11966:14:53","nodeType":"YulFunctionCall","src":"11966:14:53"}],"functionName":{"name":"eq","nativeSrc":"11943:2:53","nodeType":"YulIdentifier","src":"11943:2:53"},"nativeSrc":"11943:38:53","nodeType":"YulFunctionCall","src":"11943:38:53"},"nativeSrc":"11940:84:53","nodeType":"YulIf","src":"11940:84:53"}]},"name":"extract_byte_array_length","nativeSrc":"11710:320:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"11745:4:53","nodeType":"YulTypedName","src":"11745:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11754:6:53","nodeType":"YulTypedName","src":"11754:6:53","type":""}],"src":"11710:320:53"},{"body":{"nativeSrc":"12090:87:53","nodeType":"YulBlock","src":"12090:87:53","statements":[{"nativeSrc":"12100:11:53","nodeType":"YulAssignment","src":"12100:11:53","value":{"name":"ptr","nativeSrc":"12108:3:53","nodeType":"YulIdentifier","src":"12108:3:53"},"variableNames":[{"name":"data","nativeSrc":"12100:4:53","nodeType":"YulIdentifier","src":"12100:4:53"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12128:1:53","nodeType":"YulLiteral","src":"12128:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"12131:3:53","nodeType":"YulIdentifier","src":"12131:3:53"}],"functionName":{"name":"mstore","nativeSrc":"12121:6:53","nodeType":"YulIdentifier","src":"12121:6:53"},"nativeSrc":"12121:14:53","nodeType":"YulFunctionCall","src":"12121:14:53"},"nativeSrc":"12121:14:53","nodeType":"YulExpressionStatement","src":"12121:14:53"},{"nativeSrc":"12144:26:53","nodeType":"YulAssignment","src":"12144:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"12162:1:53","nodeType":"YulLiteral","src":"12162:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12165:4:53","nodeType":"YulLiteral","src":"12165:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"12152:9:53","nodeType":"YulIdentifier","src":"12152:9:53"},"nativeSrc":"12152:18:53","nodeType":"YulFunctionCall","src":"12152:18:53"},"variableNames":[{"name":"data","nativeSrc":"12144:4:53","nodeType":"YulIdentifier","src":"12144:4:53"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"12036:141:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"12077:3:53","nodeType":"YulTypedName","src":"12077:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"12085:4:53","nodeType":"YulTypedName","src":"12085:4:53","type":""}],"src":"12036:141:53"},{"body":{"nativeSrc":"12227:49:53","nodeType":"YulBlock","src":"12227:49:53","statements":[{"nativeSrc":"12237:33:53","nodeType":"YulAssignment","src":"12237:33:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12255:5:53","nodeType":"YulIdentifier","src":"12255:5:53"},{"kind":"number","nativeSrc":"12262:2:53","nodeType":"YulLiteral","src":"12262:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"12251:3:53","nodeType":"YulIdentifier","src":"12251:3:53"},"nativeSrc":"12251:14:53","nodeType":"YulFunctionCall","src":"12251:14:53"},{"kind":"number","nativeSrc":"12267:2:53","nodeType":"YulLiteral","src":"12267:2:53","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"12247:3:53","nodeType":"YulIdentifier","src":"12247:3:53"},"nativeSrc":"12247:23:53","nodeType":"YulFunctionCall","src":"12247:23:53"},"variableNames":[{"name":"result","nativeSrc":"12237:6:53","nodeType":"YulIdentifier","src":"12237:6:53"}]}]},"name":"divide_by_32_ceil","nativeSrc":"12183:93:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12210:5:53","nodeType":"YulTypedName","src":"12210:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12220:6:53","nodeType":"YulTypedName","src":"12220:6:53","type":""}],"src":"12183:93:53"},{"body":{"nativeSrc":"12335:54:53","nodeType":"YulBlock","src":"12335:54:53","statements":[{"nativeSrc":"12345:37:53","nodeType":"YulAssignment","src":"12345:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"12370:4:53","nodeType":"YulIdentifier","src":"12370:4:53"},{"name":"value","nativeSrc":"12376:5:53","nodeType":"YulIdentifier","src":"12376:5:53"}],"functionName":{"name":"shl","nativeSrc":"12366:3:53","nodeType":"YulIdentifier","src":"12366:3:53"},"nativeSrc":"12366:16:53","nodeType":"YulFunctionCall","src":"12366:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"12345:8:53","nodeType":"YulIdentifier","src":"12345:8:53"}]}]},"name":"shift_left_dynamic","nativeSrc":"12282:107:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"12310:4:53","nodeType":"YulTypedName","src":"12310:4:53","type":""},{"name":"value","nativeSrc":"12316:5:53","nodeType":"YulTypedName","src":"12316:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"12326:8:53","nodeType":"YulTypedName","src":"12326:8:53","type":""}],"src":"12282:107:53"},{"body":{"nativeSrc":"12471:317:53","nodeType":"YulBlock","src":"12471:317:53","statements":[{"nativeSrc":"12481:35:53","nodeType":"YulVariableDeclaration","src":"12481:35:53","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"12502:10:53","nodeType":"YulIdentifier","src":"12502:10:53"},{"kind":"number","nativeSrc":"12514:1:53","nodeType":"YulLiteral","src":"12514:1:53","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"12498:3:53","nodeType":"YulIdentifier","src":"12498:3:53"},"nativeSrc":"12498:18:53","nodeType":"YulFunctionCall","src":"12498:18:53"},"variables":[{"name":"shiftBits","nativeSrc":"12485:9:53","nodeType":"YulTypedName","src":"12485:9:53","type":""}]},{"nativeSrc":"12525:109:53","nodeType":"YulVariableDeclaration","src":"12525:109:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"12556:9:53","nodeType":"YulIdentifier","src":"12556:9:53"},{"kind":"number","nativeSrc":"12567:66:53","nodeType":"YulLiteral","src":"12567:66:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"12537:18:53","nodeType":"YulIdentifier","src":"12537:18:53"},"nativeSrc":"12537:97:53","nodeType":"YulFunctionCall","src":"12537:97:53"},"variables":[{"name":"mask","nativeSrc":"12529:4:53","nodeType":"YulTypedName","src":"12529:4:53","type":""}]},{"nativeSrc":"12643:51:53","nodeType":"YulAssignment","src":"12643:51:53","value":{"arguments":[{"name":"shiftBits","nativeSrc":"12674:9:53","nodeType":"YulIdentifier","src":"12674:9:53"},{"name":"toInsert","nativeSrc":"12685:8:53","nodeType":"YulIdentifier","src":"12685:8:53"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"12655:18:53","nodeType":"YulIdentifier","src":"12655:18:53"},"nativeSrc":"12655:39:53","nodeType":"YulFunctionCall","src":"12655:39:53"},"variableNames":[{"name":"toInsert","nativeSrc":"12643:8:53","nodeType":"YulIdentifier","src":"12643:8:53"}]},{"nativeSrc":"12703:30:53","nodeType":"YulAssignment","src":"12703:30:53","value":{"arguments":[{"name":"value","nativeSrc":"12716:5:53","nodeType":"YulIdentifier","src":"12716:5:53"},{"arguments":[{"name":"mask","nativeSrc":"12727:4:53","nodeType":"YulIdentifier","src":"12727:4:53"}],"functionName":{"name":"not","nativeSrc":"12723:3:53","nodeType":"YulIdentifier","src":"12723:3:53"},"nativeSrc":"12723:9:53","nodeType":"YulFunctionCall","src":"12723:9:53"}],"functionName":{"name":"and","nativeSrc":"12712:3:53","nodeType":"YulIdentifier","src":"12712:3:53"},"nativeSrc":"12712:21:53","nodeType":"YulFunctionCall","src":"12712:21:53"},"variableNames":[{"name":"value","nativeSrc":"12703:5:53","nodeType":"YulIdentifier","src":"12703:5:53"}]},{"nativeSrc":"12742:40:53","nodeType":"YulAssignment","src":"12742:40:53","value":{"arguments":[{"name":"value","nativeSrc":"12755:5:53","nodeType":"YulIdentifier","src":"12755:5:53"},{"arguments":[{"name":"toInsert","nativeSrc":"12766:8:53","nodeType":"YulIdentifier","src":"12766:8:53"},{"name":"mask","nativeSrc":"12776:4:53","nodeType":"YulIdentifier","src":"12776:4:53"}],"functionName":{"name":"and","nativeSrc":"12762:3:53","nodeType":"YulIdentifier","src":"12762:3:53"},"nativeSrc":"12762:19:53","nodeType":"YulFunctionCall","src":"12762:19:53"}],"functionName":{"name":"or","nativeSrc":"12752:2:53","nodeType":"YulIdentifier","src":"12752:2:53"},"nativeSrc":"12752:30:53","nodeType":"YulFunctionCall","src":"12752:30:53"},"variableNames":[{"name":"result","nativeSrc":"12742:6:53","nodeType":"YulIdentifier","src":"12742:6:53"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"12395:393:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12432:5:53","nodeType":"YulTypedName","src":"12432:5:53","type":""},{"name":"shiftBytes","nativeSrc":"12439:10:53","nodeType":"YulTypedName","src":"12439:10:53","type":""},{"name":"toInsert","nativeSrc":"12451:8:53","nodeType":"YulTypedName","src":"12451:8:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12464:6:53","nodeType":"YulTypedName","src":"12464:6:53","type":""}],"src":"12395:393:53"},{"body":{"nativeSrc":"12826:28:53","nodeType":"YulBlock","src":"12826:28:53","statements":[{"nativeSrc":"12836:12:53","nodeType":"YulAssignment","src":"12836:12:53","value":{"name":"value","nativeSrc":"12843:5:53","nodeType":"YulIdentifier","src":"12843:5:53"},"variableNames":[{"name":"ret","nativeSrc":"12836:3:53","nodeType":"YulIdentifier","src":"12836:3:53"}]}]},"name":"identity","nativeSrc":"12794:60:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12812:5:53","nodeType":"YulTypedName","src":"12812:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"12822:3:53","nodeType":"YulTypedName","src":"12822:3:53","type":""}],"src":"12794:60:53"},{"body":{"nativeSrc":"12920:82:53","nodeType":"YulBlock","src":"12920:82:53","statements":[{"nativeSrc":"12930:66:53","nodeType":"YulAssignment","src":"12930:66:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12988:5:53","nodeType":"YulIdentifier","src":"12988:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12970:17:53","nodeType":"YulIdentifier","src":"12970:17:53"},"nativeSrc":"12970:24:53","nodeType":"YulFunctionCall","src":"12970:24:53"}],"functionName":{"name":"identity","nativeSrc":"12961:8:53","nodeType":"YulIdentifier","src":"12961:8:53"},"nativeSrc":"12961:34:53","nodeType":"YulFunctionCall","src":"12961:34:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12943:17:53","nodeType":"YulIdentifier","src":"12943:17:53"},"nativeSrc":"12943:53:53","nodeType":"YulFunctionCall","src":"12943:53:53"},"variableNames":[{"name":"converted","nativeSrc":"12930:9:53","nodeType":"YulIdentifier","src":"12930:9:53"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"12860:142:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12900:5:53","nodeType":"YulTypedName","src":"12900:5:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12910:9:53","nodeType":"YulTypedName","src":"12910:9:53","type":""}],"src":"12860:142:53"},{"body":{"nativeSrc":"13055:28:53","nodeType":"YulBlock","src":"13055:28:53","statements":[{"nativeSrc":"13065:12:53","nodeType":"YulAssignment","src":"13065:12:53","value":{"name":"value","nativeSrc":"13072:5:53","nodeType":"YulIdentifier","src":"13072:5:53"},"variableNames":[{"name":"ret","nativeSrc":"13065:3:53","nodeType":"YulIdentifier","src":"13065:3:53"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"13008:75:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13041:5:53","nodeType":"YulTypedName","src":"13041:5:53","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"13051:3:53","nodeType":"YulTypedName","src":"13051:3:53","type":""}],"src":"13008:75:53"},{"body":{"nativeSrc":"13165:193:53","nodeType":"YulBlock","src":"13165:193:53","statements":[{"nativeSrc":"13175:63:53","nodeType":"YulVariableDeclaration","src":"13175:63:53","value":{"arguments":[{"name":"value_0","nativeSrc":"13230:7:53","nodeType":"YulIdentifier","src":"13230:7:53"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"13199:30:53","nodeType":"YulIdentifier","src":"13199:30:53"},"nativeSrc":"13199:39:53","nodeType":"YulFunctionCall","src":"13199:39:53"},"variables":[{"name":"convertedValue_0","nativeSrc":"13179:16:53","nodeType":"YulTypedName","src":"13179:16:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"13254:4:53","nodeType":"YulIdentifier","src":"13254:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"13294:4:53","nodeType":"YulIdentifier","src":"13294:4:53"}],"functionName":{"name":"sload","nativeSrc":"13288:5:53","nodeType":"YulIdentifier","src":"13288:5:53"},"nativeSrc":"13288:11:53","nodeType":"YulFunctionCall","src":"13288:11:53"},{"name":"offset","nativeSrc":"13301:6:53","nodeType":"YulIdentifier","src":"13301:6:53"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"13333:16:53","nodeType":"YulIdentifier","src":"13333:16:53"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"13309:23:53","nodeType":"YulIdentifier","src":"13309:23:53"},"nativeSrc":"13309:41:53","nodeType":"YulFunctionCall","src":"13309:41:53"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"13260:27:53","nodeType":"YulIdentifier","src":"13260:27:53"},"nativeSrc":"13260:91:53","nodeType":"YulFunctionCall","src":"13260:91:53"}],"functionName":{"name":"sstore","nativeSrc":"13247:6:53","nodeType":"YulIdentifier","src":"13247:6:53"},"nativeSrc":"13247:105:53","nodeType":"YulFunctionCall","src":"13247:105:53"},"nativeSrc":"13247:105:53","nodeType":"YulExpressionStatement","src":"13247:105:53"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"13089:269:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"13142:4:53","nodeType":"YulTypedName","src":"13142:4:53","type":""},{"name":"offset","nativeSrc":"13148:6:53","nodeType":"YulTypedName","src":"13148:6:53","type":""},{"name":"value_0","nativeSrc":"13156:7:53","nodeType":"YulTypedName","src":"13156:7:53","type":""}],"src":"13089:269:53"},{"body":{"nativeSrc":"13413:24:53","nodeType":"YulBlock","src":"13413:24:53","statements":[{"nativeSrc":"13423:8:53","nodeType":"YulAssignment","src":"13423:8:53","value":{"kind":"number","nativeSrc":"13430:1:53","nodeType":"YulLiteral","src":"13430:1:53","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"13423:3:53","nodeType":"YulIdentifier","src":"13423:3:53"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"13364:73:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"13409:3:53","nodeType":"YulTypedName","src":"13409:3:53","type":""}],"src":"13364:73:53"},{"body":{"nativeSrc":"13496:136:53","nodeType":"YulBlock","src":"13496:136:53","statements":[{"nativeSrc":"13506:46:53","nodeType":"YulVariableDeclaration","src":"13506:46:53","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"13520:30:53","nodeType":"YulIdentifier","src":"13520:30:53"},"nativeSrc":"13520:32:53","nodeType":"YulFunctionCall","src":"13520:32:53"},"variables":[{"name":"zero_0","nativeSrc":"13510:6:53","nodeType":"YulTypedName","src":"13510:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"13605:4:53","nodeType":"YulIdentifier","src":"13605:4:53"},{"name":"offset","nativeSrc":"13611:6:53","nodeType":"YulIdentifier","src":"13611:6:53"},{"name":"zero_0","nativeSrc":"13619:6:53","nodeType":"YulIdentifier","src":"13619:6:53"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"13561:43:53","nodeType":"YulIdentifier","src":"13561:43:53"},"nativeSrc":"13561:65:53","nodeType":"YulFunctionCall","src":"13561:65:53"},"nativeSrc":"13561:65:53","nodeType":"YulExpressionStatement","src":"13561:65:53"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"13443:189:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"13482:4:53","nodeType":"YulTypedName","src":"13482:4:53","type":""},{"name":"offset","nativeSrc":"13488:6:53","nodeType":"YulTypedName","src":"13488:6:53","type":""}],"src":"13443:189:53"},{"body":{"nativeSrc":"13688:136:53","nodeType":"YulBlock","src":"13688:136:53","statements":[{"body":{"nativeSrc":"13755:63:53","nodeType":"YulBlock","src":"13755:63:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"13799:5:53","nodeType":"YulIdentifier","src":"13799:5:53"},{"kind":"number","nativeSrc":"13806:1:53","nodeType":"YulLiteral","src":"13806:1:53","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"13769:29:53","nodeType":"YulIdentifier","src":"13769:29:53"},"nativeSrc":"13769:39:53","nodeType":"YulFunctionCall","src":"13769:39:53"},"nativeSrc":"13769:39:53","nodeType":"YulExpressionStatement","src":"13769:39:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"13708:5:53","nodeType":"YulIdentifier","src":"13708:5:53"},{"name":"end","nativeSrc":"13715:3:53","nodeType":"YulIdentifier","src":"13715:3:53"}],"functionName":{"name":"lt","nativeSrc":"13705:2:53","nodeType":"YulIdentifier","src":"13705:2:53"},"nativeSrc":"13705:14:53","nodeType":"YulFunctionCall","src":"13705:14:53"},"nativeSrc":"13698:120:53","nodeType":"YulForLoop","post":{"nativeSrc":"13720:26:53","nodeType":"YulBlock","src":"13720:26:53","statements":[{"nativeSrc":"13722:22:53","nodeType":"YulAssignment","src":"13722:22:53","value":{"arguments":[{"name":"start","nativeSrc":"13735:5:53","nodeType":"YulIdentifier","src":"13735:5:53"},{"kind":"number","nativeSrc":"13742:1:53","nodeType":"YulLiteral","src":"13742:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"13731:3:53","nodeType":"YulIdentifier","src":"13731:3:53"},"nativeSrc":"13731:13:53","nodeType":"YulFunctionCall","src":"13731:13:53"},"variableNames":[{"name":"start","nativeSrc":"13722:5:53","nodeType":"YulIdentifier","src":"13722:5:53"}]}]},"pre":{"nativeSrc":"13702:2:53","nodeType":"YulBlock","src":"13702:2:53","statements":[]},"src":"13698:120:53"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"13638:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"13676:5:53","nodeType":"YulTypedName","src":"13676:5:53","type":""},{"name":"end","nativeSrc":"13683:3:53","nodeType":"YulTypedName","src":"13683:3:53","type":""}],"src":"13638:186:53"},{"body":{"nativeSrc":"13909:464:53","nodeType":"YulBlock","src":"13909:464:53","statements":[{"body":{"nativeSrc":"13935:431:53","nodeType":"YulBlock","src":"13935:431:53","statements":[{"nativeSrc":"13949:54:53","nodeType":"YulVariableDeclaration","src":"13949:54:53","value":{"arguments":[{"name":"array","nativeSrc":"13997:5:53","nodeType":"YulIdentifier","src":"13997:5:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"13965:31:53","nodeType":"YulIdentifier","src":"13965:31:53"},"nativeSrc":"13965:38:53","nodeType":"YulFunctionCall","src":"13965:38:53"},"variables":[{"name":"dataArea","nativeSrc":"13953:8:53","nodeType":"YulTypedName","src":"13953:8:53","type":""}]},{"nativeSrc":"14016:63:53","nodeType":"YulVariableDeclaration","src":"14016:63:53","value":{"arguments":[{"name":"dataArea","nativeSrc":"14039:8:53","nodeType":"YulIdentifier","src":"14039:8:53"},{"arguments":[{"name":"startIndex","nativeSrc":"14067:10:53","nodeType":"YulIdentifier","src":"14067:10:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"14049:17:53","nodeType":"YulIdentifier","src":"14049:17:53"},"nativeSrc":"14049:29:53","nodeType":"YulFunctionCall","src":"14049:29:53"}],"functionName":{"name":"add","nativeSrc":"14035:3:53","nodeType":"YulIdentifier","src":"14035:3:53"},"nativeSrc":"14035:44:53","nodeType":"YulFunctionCall","src":"14035:44:53"},"variables":[{"name":"deleteStart","nativeSrc":"14020:11:53","nodeType":"YulTypedName","src":"14020:11:53","type":""}]},{"body":{"nativeSrc":"14236:27:53","nodeType":"YulBlock","src":"14236:27:53","statements":[{"nativeSrc":"14238:23:53","nodeType":"YulAssignment","src":"14238:23:53","value":{"name":"dataArea","nativeSrc":"14253:8:53","nodeType":"YulIdentifier","src":"14253:8:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"14238:11:53","nodeType":"YulIdentifier","src":"14238:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"14220:10:53","nodeType":"YulIdentifier","src":"14220:10:53"},{"kind":"number","nativeSrc":"14232:2:53","nodeType":"YulLiteral","src":"14232:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"14217:2:53","nodeType":"YulIdentifier","src":"14217:2:53"},"nativeSrc":"14217:18:53","nodeType":"YulFunctionCall","src":"14217:18:53"},"nativeSrc":"14214:49:53","nodeType":"YulIf","src":"14214:49:53"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"14305:11:53","nodeType":"YulIdentifier","src":"14305:11:53"},{"arguments":[{"name":"dataArea","nativeSrc":"14322:8:53","nodeType":"YulIdentifier","src":"14322:8:53"},{"arguments":[{"name":"len","nativeSrc":"14350:3:53","nodeType":"YulIdentifier","src":"14350:3:53"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"14332:17:53","nodeType":"YulIdentifier","src":"14332:17:53"},"nativeSrc":"14332:22:53","nodeType":"YulFunctionCall","src":"14332:22:53"}],"functionName":{"name":"add","nativeSrc":"14318:3:53","nodeType":"YulIdentifier","src":"14318:3:53"},"nativeSrc":"14318:37:53","nodeType":"YulFunctionCall","src":"14318:37:53"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"14276:28:53","nodeType":"YulIdentifier","src":"14276:28:53"},"nativeSrc":"14276:80:53","nodeType":"YulFunctionCall","src":"14276:80:53"},"nativeSrc":"14276:80:53","nodeType":"YulExpressionStatement","src":"14276:80:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"13926:3:53","nodeType":"YulIdentifier","src":"13926:3:53"},{"kind":"number","nativeSrc":"13931:2:53","nodeType":"YulLiteral","src":"13931:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"13923:2:53","nodeType":"YulIdentifier","src":"13923:2:53"},"nativeSrc":"13923:11:53","nodeType":"YulFunctionCall","src":"13923:11:53"},"nativeSrc":"13920:446:53","nodeType":"YulIf","src":"13920:446:53"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"13830:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"13885:5:53","nodeType":"YulTypedName","src":"13885:5:53","type":""},{"name":"len","nativeSrc":"13892:3:53","nodeType":"YulTypedName","src":"13892:3:53","type":""},{"name":"startIndex","nativeSrc":"13897:10:53","nodeType":"YulTypedName","src":"13897:10:53","type":""}],"src":"13830:543:53"},{"body":{"nativeSrc":"14442:54:53","nodeType":"YulBlock","src":"14442:54:53","statements":[{"nativeSrc":"14452:37:53","nodeType":"YulAssignment","src":"14452:37:53","value":{"arguments":[{"name":"bits","nativeSrc":"14477:4:53","nodeType":"YulIdentifier","src":"14477:4:53"},{"name":"value","nativeSrc":"14483:5:53","nodeType":"YulIdentifier","src":"14483:5:53"}],"functionName":{"name":"shr","nativeSrc":"14473:3:53","nodeType":"YulIdentifier","src":"14473:3:53"},"nativeSrc":"14473:16:53","nodeType":"YulFunctionCall","src":"14473:16:53"},"variableNames":[{"name":"newValue","nativeSrc":"14452:8:53","nodeType":"YulIdentifier","src":"14452:8:53"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"14379:117:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"14417:4:53","nodeType":"YulTypedName","src":"14417:4:53","type":""},{"name":"value","nativeSrc":"14423:5:53","nodeType":"YulTypedName","src":"14423:5:53","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"14433:8:53","nodeType":"YulTypedName","src":"14433:8:53","type":""}],"src":"14379:117:53"},{"body":{"nativeSrc":"14553:118:53","nodeType":"YulBlock","src":"14553:118:53","statements":[{"nativeSrc":"14563:68:53","nodeType":"YulVariableDeclaration","src":"14563:68:53","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14612:1:53","nodeType":"YulLiteral","src":"14612:1:53","type":"","value":"8"},{"name":"bytes","nativeSrc":"14615:5:53","nodeType":"YulIdentifier","src":"14615:5:53"}],"functionName":{"name":"mul","nativeSrc":"14608:3:53","nodeType":"YulIdentifier","src":"14608:3:53"},"nativeSrc":"14608:13:53","nodeType":"YulFunctionCall","src":"14608:13:53"},{"arguments":[{"kind":"number","nativeSrc":"14627:1:53","nodeType":"YulLiteral","src":"14627:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"14623:3:53","nodeType":"YulIdentifier","src":"14623:3:53"},"nativeSrc":"14623:6:53","nodeType":"YulFunctionCall","src":"14623:6:53"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"14579:28:53","nodeType":"YulIdentifier","src":"14579:28:53"},"nativeSrc":"14579:51:53","nodeType":"YulFunctionCall","src":"14579:51:53"}],"functionName":{"name":"not","nativeSrc":"14575:3:53","nodeType":"YulIdentifier","src":"14575:3:53"},"nativeSrc":"14575:56:53","nodeType":"YulFunctionCall","src":"14575:56:53"},"variables":[{"name":"mask","nativeSrc":"14567:4:53","nodeType":"YulTypedName","src":"14567:4:53","type":""}]},{"nativeSrc":"14640:25:53","nodeType":"YulAssignment","src":"14640:25:53","value":{"arguments":[{"name":"data","nativeSrc":"14654:4:53","nodeType":"YulIdentifier","src":"14654:4:53"},{"name":"mask","nativeSrc":"14660:4:53","nodeType":"YulIdentifier","src":"14660:4:53"}],"functionName":{"name":"and","nativeSrc":"14650:3:53","nodeType":"YulIdentifier","src":"14650:3:53"},"nativeSrc":"14650:15:53","nodeType":"YulFunctionCall","src":"14650:15:53"},"variableNames":[{"name":"result","nativeSrc":"14640:6:53","nodeType":"YulIdentifier","src":"14640:6:53"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"14502:169:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14530:4:53","nodeType":"YulTypedName","src":"14530:4:53","type":""},{"name":"bytes","nativeSrc":"14536:5:53","nodeType":"YulTypedName","src":"14536:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"14546:6:53","nodeType":"YulTypedName","src":"14546:6:53","type":""}],"src":"14502:169:53"},{"body":{"nativeSrc":"14757:214:53","nodeType":"YulBlock","src":"14757:214:53","statements":[{"nativeSrc":"14890:37:53","nodeType":"YulAssignment","src":"14890:37:53","value":{"arguments":[{"name":"data","nativeSrc":"14917:4:53","nodeType":"YulIdentifier","src":"14917:4:53"},{"name":"len","nativeSrc":"14923:3:53","nodeType":"YulIdentifier","src":"14923:3:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"14898:18:53","nodeType":"YulIdentifier","src":"14898:18:53"},"nativeSrc":"14898:29:53","nodeType":"YulFunctionCall","src":"14898:29:53"},"variableNames":[{"name":"data","nativeSrc":"14890:4:53","nodeType":"YulIdentifier","src":"14890:4:53"}]},{"nativeSrc":"14936:29:53","nodeType":"YulAssignment","src":"14936:29:53","value":{"arguments":[{"name":"data","nativeSrc":"14947:4:53","nodeType":"YulIdentifier","src":"14947:4:53"},{"arguments":[{"kind":"number","nativeSrc":"14957:1:53","nodeType":"YulLiteral","src":"14957:1:53","type":"","value":"2"},{"name":"len","nativeSrc":"14960:3:53","nodeType":"YulIdentifier","src":"14960:3:53"}],"functionName":{"name":"mul","nativeSrc":"14953:3:53","nodeType":"YulIdentifier","src":"14953:3:53"},"nativeSrc":"14953:11:53","nodeType":"YulFunctionCall","src":"14953:11:53"}],"functionName":{"name":"or","nativeSrc":"14944:2:53","nodeType":"YulIdentifier","src":"14944:2:53"},"nativeSrc":"14944:21:53","nodeType":"YulFunctionCall","src":"14944:21:53"},"variableNames":[{"name":"used","nativeSrc":"14936:4:53","nodeType":"YulIdentifier","src":"14936:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"14676:295:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14738:4:53","nodeType":"YulTypedName","src":"14738:4:53","type":""},{"name":"len","nativeSrc":"14744:3:53","nodeType":"YulTypedName","src":"14744:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"14752:4:53","nodeType":"YulTypedName","src":"14752:4:53","type":""}],"src":"14676:295:53"},{"body":{"nativeSrc":"15068:1303:53","nodeType":"YulBlock","src":"15068:1303:53","statements":[{"nativeSrc":"15079:51:53","nodeType":"YulVariableDeclaration","src":"15079:51:53","value":{"arguments":[{"name":"src","nativeSrc":"15126:3:53","nodeType":"YulIdentifier","src":"15126:3:53"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"15093:32:53","nodeType":"YulIdentifier","src":"15093:32:53"},"nativeSrc":"15093:37:53","nodeType":"YulFunctionCall","src":"15093:37:53"},"variables":[{"name":"newLen","nativeSrc":"15083:6:53","nodeType":"YulTypedName","src":"15083:6:53","type":""}]},{"body":{"nativeSrc":"15215:22:53","nodeType":"YulBlock","src":"15215:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"15217:16:53","nodeType":"YulIdentifier","src":"15217:16:53"},"nativeSrc":"15217:18:53","nodeType":"YulFunctionCall","src":"15217:18:53"},"nativeSrc":"15217:18:53","nodeType":"YulExpressionStatement","src":"15217:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"15187:6:53","nodeType":"YulIdentifier","src":"15187:6:53"},{"kind":"number","nativeSrc":"15195:18:53","nodeType":"YulLiteral","src":"15195:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15184:2:53","nodeType":"YulIdentifier","src":"15184:2:53"},"nativeSrc":"15184:30:53","nodeType":"YulFunctionCall","src":"15184:30:53"},"nativeSrc":"15181:56:53","nodeType":"YulIf","src":"15181:56:53"},{"nativeSrc":"15247:52:53","nodeType":"YulVariableDeclaration","src":"15247:52:53","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"15293:4:53","nodeType":"YulIdentifier","src":"15293:4:53"}],"functionName":{"name":"sload","nativeSrc":"15287:5:53","nodeType":"YulIdentifier","src":"15287:5:53"},"nativeSrc":"15287:11:53","nodeType":"YulFunctionCall","src":"15287:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"15261:25:53","nodeType":"YulIdentifier","src":"15261:25:53"},"nativeSrc":"15261:38:53","nodeType":"YulFunctionCall","src":"15261:38:53"},"variables":[{"name":"oldLen","nativeSrc":"15251:6:53","nodeType":"YulTypedName","src":"15251:6:53","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"15392:4:53","nodeType":"YulIdentifier","src":"15392:4:53"},{"name":"oldLen","nativeSrc":"15398:6:53","nodeType":"YulIdentifier","src":"15398:6:53"},{"name":"newLen","nativeSrc":"15406:6:53","nodeType":"YulIdentifier","src":"15406:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"15346:45:53","nodeType":"YulIdentifier","src":"15346:45:53"},"nativeSrc":"15346:67:53","nodeType":"YulFunctionCall","src":"15346:67:53"},"nativeSrc":"15346:67:53","nodeType":"YulExpressionStatement","src":"15346:67:53"},{"nativeSrc":"15423:18:53","nodeType":"YulVariableDeclaration","src":"15423:18:53","value":{"kind":"number","nativeSrc":"15440:1:53","nodeType":"YulLiteral","src":"15440:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"15427:9:53","nodeType":"YulTypedName","src":"15427:9:53","type":""}]},{"nativeSrc":"15451:17:53","nodeType":"YulAssignment","src":"15451:17:53","value":{"kind":"number","nativeSrc":"15464:4:53","nodeType":"YulLiteral","src":"15464:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"15451:9:53","nodeType":"YulIdentifier","src":"15451:9:53"}]},{"cases":[{"body":{"nativeSrc":"15515:611:53","nodeType":"YulBlock","src":"15515:611:53","statements":[{"nativeSrc":"15529:37:53","nodeType":"YulVariableDeclaration","src":"15529:37:53","value":{"arguments":[{"name":"newLen","nativeSrc":"15548:6:53","nodeType":"YulIdentifier","src":"15548:6:53"},{"arguments":[{"kind":"number","nativeSrc":"15560:4:53","nodeType":"YulLiteral","src":"15560:4:53","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"15556:3:53","nodeType":"YulIdentifier","src":"15556:3:53"},"nativeSrc":"15556:9:53","nodeType":"YulFunctionCall","src":"15556:9:53"}],"functionName":{"name":"and","nativeSrc":"15544:3:53","nodeType":"YulIdentifier","src":"15544:3:53"},"nativeSrc":"15544:22:53","nodeType":"YulFunctionCall","src":"15544:22:53"},"variables":[{"name":"loopEnd","nativeSrc":"15533:7:53","nodeType":"YulTypedName","src":"15533:7:53","type":""}]},{"nativeSrc":"15580:51:53","nodeType":"YulVariableDeclaration","src":"15580:51:53","value":{"arguments":[{"name":"slot","nativeSrc":"15626:4:53","nodeType":"YulIdentifier","src":"15626:4:53"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"15594:31:53","nodeType":"YulIdentifier","src":"15594:31:53"},"nativeSrc":"15594:37:53","nodeType":"YulFunctionCall","src":"15594:37:53"},"variables":[{"name":"dstPtr","nativeSrc":"15584:6:53","nodeType":"YulTypedName","src":"15584:6:53","type":""}]},{"nativeSrc":"15644:10:53","nodeType":"YulVariableDeclaration","src":"15644:10:53","value":{"kind":"number","nativeSrc":"15653:1:53","nodeType":"YulLiteral","src":"15653:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15648:1:53","nodeType":"YulTypedName","src":"15648:1:53","type":""}]},{"body":{"nativeSrc":"15712:163:53","nodeType":"YulBlock","src":"15712:163:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"15737:6:53","nodeType":"YulIdentifier","src":"15737:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15755:3:53","nodeType":"YulIdentifier","src":"15755:3:53"},{"name":"srcOffset","nativeSrc":"15760:9:53","nodeType":"YulIdentifier","src":"15760:9:53"}],"functionName":{"name":"add","nativeSrc":"15751:3:53","nodeType":"YulIdentifier","src":"15751:3:53"},"nativeSrc":"15751:19:53","nodeType":"YulFunctionCall","src":"15751:19:53"}],"functionName":{"name":"mload","nativeSrc":"15745:5:53","nodeType":"YulIdentifier","src":"15745:5:53"},"nativeSrc":"15745:26:53","nodeType":"YulFunctionCall","src":"15745:26:53"}],"functionName":{"name":"sstore","nativeSrc":"15730:6:53","nodeType":"YulIdentifier","src":"15730:6:53"},"nativeSrc":"15730:42:53","nodeType":"YulFunctionCall","src":"15730:42:53"},"nativeSrc":"15730:42:53","nodeType":"YulExpressionStatement","src":"15730:42:53"},{"nativeSrc":"15789:24:53","nodeType":"YulAssignment","src":"15789:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"15803:6:53","nodeType":"YulIdentifier","src":"15803:6:53"},{"kind":"number","nativeSrc":"15811:1:53","nodeType":"YulLiteral","src":"15811:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15799:3:53","nodeType":"YulIdentifier","src":"15799:3:53"},"nativeSrc":"15799:14:53","nodeType":"YulFunctionCall","src":"15799:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"15789:6:53","nodeType":"YulIdentifier","src":"15789:6:53"}]},{"nativeSrc":"15830:31:53","nodeType":"YulAssignment","src":"15830:31:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"15847:9:53","nodeType":"YulIdentifier","src":"15847:9:53"},{"kind":"number","nativeSrc":"15858:2:53","nodeType":"YulLiteral","src":"15858:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15843:3:53","nodeType":"YulIdentifier","src":"15843:3:53"},"nativeSrc":"15843:18:53","nodeType":"YulFunctionCall","src":"15843:18:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"15830:9:53","nodeType":"YulIdentifier","src":"15830:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15678:1:53","nodeType":"YulIdentifier","src":"15678:1:53"},{"name":"loopEnd","nativeSrc":"15681:7:53","nodeType":"YulIdentifier","src":"15681:7:53"}],"functionName":{"name":"lt","nativeSrc":"15675:2:53","nodeType":"YulIdentifier","src":"15675:2:53"},"nativeSrc":"15675:14:53","nodeType":"YulFunctionCall","src":"15675:14:53"},"nativeSrc":"15667:208:53","nodeType":"YulForLoop","post":{"nativeSrc":"15690:21:53","nodeType":"YulBlock","src":"15690:21:53","statements":[{"nativeSrc":"15692:17:53","nodeType":"YulAssignment","src":"15692:17:53","value":{"arguments":[{"name":"i","nativeSrc":"15701:1:53","nodeType":"YulIdentifier","src":"15701:1:53"},{"kind":"number","nativeSrc":"15704:4:53","nodeType":"YulLiteral","src":"15704:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15697:3:53","nodeType":"YulIdentifier","src":"15697:3:53"},"nativeSrc":"15697:12:53","nodeType":"YulFunctionCall","src":"15697:12:53"},"variableNames":[{"name":"i","nativeSrc":"15692:1:53","nodeType":"YulIdentifier","src":"15692:1:53"}]}]},"pre":{"nativeSrc":"15671:3:53","nodeType":"YulBlock","src":"15671:3:53","statements":[]},"src":"15667:208:53"},{"body":{"nativeSrc":"15911:156:53","nodeType":"YulBlock","src":"15911:156:53","statements":[{"nativeSrc":"15929:43:53","nodeType":"YulVariableDeclaration","src":"15929:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15956:3:53","nodeType":"YulIdentifier","src":"15956:3:53"},{"name":"srcOffset","nativeSrc":"15961:9:53","nodeType":"YulIdentifier","src":"15961:9:53"}],"functionName":{"name":"add","nativeSrc":"15952:3:53","nodeType":"YulIdentifier","src":"15952:3:53"},"nativeSrc":"15952:19:53","nodeType":"YulFunctionCall","src":"15952:19:53"}],"functionName":{"name":"mload","nativeSrc":"15946:5:53","nodeType":"YulIdentifier","src":"15946:5:53"},"nativeSrc":"15946:26:53","nodeType":"YulFunctionCall","src":"15946:26:53"},"variables":[{"name":"lastValue","nativeSrc":"15933:9:53","nodeType":"YulTypedName","src":"15933:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"15996:6:53","nodeType":"YulIdentifier","src":"15996:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"16023:9:53","nodeType":"YulIdentifier","src":"16023:9:53"},{"arguments":[{"name":"newLen","nativeSrc":"16038:6:53","nodeType":"YulIdentifier","src":"16038:6:53"},{"kind":"number","nativeSrc":"16046:4:53","nodeType":"YulLiteral","src":"16046:4:53","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"16034:3:53","nodeType":"YulIdentifier","src":"16034:3:53"},"nativeSrc":"16034:17:53","nodeType":"YulFunctionCall","src":"16034:17:53"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"16004:18:53","nodeType":"YulIdentifier","src":"16004:18:53"},"nativeSrc":"16004:48:53","nodeType":"YulFunctionCall","src":"16004:48:53"}],"functionName":{"name":"sstore","nativeSrc":"15989:6:53","nodeType":"YulIdentifier","src":"15989:6:53"},"nativeSrc":"15989:64:53","nodeType":"YulFunctionCall","src":"15989:64:53"},"nativeSrc":"15989:64:53","nodeType":"YulExpressionStatement","src":"15989:64:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"15894:7:53","nodeType":"YulIdentifier","src":"15894:7:53"},{"name":"newLen","nativeSrc":"15903:6:53","nodeType":"YulIdentifier","src":"15903:6:53"}],"functionName":{"name":"lt","nativeSrc":"15891:2:53","nodeType":"YulIdentifier","src":"15891:2:53"},"nativeSrc":"15891:19:53","nodeType":"YulFunctionCall","src":"15891:19:53"},"nativeSrc":"15888:179:53","nodeType":"YulIf","src":"15888:179:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16087:4:53","nodeType":"YulIdentifier","src":"16087:4:53"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"16101:6:53","nodeType":"YulIdentifier","src":"16101:6:53"},{"kind":"number","nativeSrc":"16109:1:53","nodeType":"YulLiteral","src":"16109:1:53","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"16097:3:53","nodeType":"YulIdentifier","src":"16097:3:53"},"nativeSrc":"16097:14:53","nodeType":"YulFunctionCall","src":"16097:14:53"},{"kind":"number","nativeSrc":"16113:1:53","nodeType":"YulLiteral","src":"16113:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16093:3:53","nodeType":"YulIdentifier","src":"16093:3:53"},"nativeSrc":"16093:22:53","nodeType":"YulFunctionCall","src":"16093:22:53"}],"functionName":{"name":"sstore","nativeSrc":"16080:6:53","nodeType":"YulIdentifier","src":"16080:6:53"},"nativeSrc":"16080:36:53","nodeType":"YulFunctionCall","src":"16080:36:53"},"nativeSrc":"16080:36:53","nodeType":"YulExpressionStatement","src":"16080:36:53"}]},"nativeSrc":"15508:618:53","nodeType":"YulCase","src":"15508:618:53","value":{"kind":"number","nativeSrc":"15513:1:53","nodeType":"YulLiteral","src":"15513:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"16143:222:53","nodeType":"YulBlock","src":"16143:222:53","statements":[{"nativeSrc":"16157:14:53","nodeType":"YulVariableDeclaration","src":"16157:14:53","value":{"kind":"number","nativeSrc":"16170:1:53","nodeType":"YulLiteral","src":"16170:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"16161:5:53","nodeType":"YulTypedName","src":"16161:5:53","type":""}]},{"body":{"nativeSrc":"16194:67:53","nodeType":"YulBlock","src":"16194:67:53","statements":[{"nativeSrc":"16212:35:53","nodeType":"YulAssignment","src":"16212:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"16231:3:53","nodeType":"YulIdentifier","src":"16231:3:53"},{"name":"srcOffset","nativeSrc":"16236:9:53","nodeType":"YulIdentifier","src":"16236:9:53"}],"functionName":{"name":"add","nativeSrc":"16227:3:53","nodeType":"YulIdentifier","src":"16227:3:53"},"nativeSrc":"16227:19:53","nodeType":"YulFunctionCall","src":"16227:19:53"}],"functionName":{"name":"mload","nativeSrc":"16221:5:53","nodeType":"YulIdentifier","src":"16221:5:53"},"nativeSrc":"16221:26:53","nodeType":"YulFunctionCall","src":"16221:26:53"},"variableNames":[{"name":"value","nativeSrc":"16212:5:53","nodeType":"YulIdentifier","src":"16212:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"16187:6:53","nodeType":"YulIdentifier","src":"16187:6:53"},"nativeSrc":"16184:77:53","nodeType":"YulIf","src":"16184:77:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16281:4:53","nodeType":"YulIdentifier","src":"16281:4:53"},{"arguments":[{"name":"value","nativeSrc":"16340:5:53","nodeType":"YulIdentifier","src":"16340:5:53"},{"name":"newLen","nativeSrc":"16347:6:53","nodeType":"YulIdentifier","src":"16347:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"16287:52:53","nodeType":"YulIdentifier","src":"16287:52:53"},"nativeSrc":"16287:67:53","nodeType":"YulFunctionCall","src":"16287:67:53"}],"functionName":{"name":"sstore","nativeSrc":"16274:6:53","nodeType":"YulIdentifier","src":"16274:6:53"},"nativeSrc":"16274:81:53","nodeType":"YulFunctionCall","src":"16274:81:53"},"nativeSrc":"16274:81:53","nodeType":"YulExpressionStatement","src":"16274:81:53"}]},"nativeSrc":"16135:230:53","nodeType":"YulCase","src":"16135:230:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"15488:6:53","nodeType":"YulIdentifier","src":"15488:6:53"},{"kind":"number","nativeSrc":"15496:2:53","nodeType":"YulLiteral","src":"15496:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"15485:2:53","nodeType":"YulIdentifier","src":"15485:2:53"},"nativeSrc":"15485:14:53","nodeType":"YulFunctionCall","src":"15485:14:53"},"nativeSrc":"15478:887:53","nodeType":"YulSwitch","src":"15478:887:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"14976:1395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"15057:4:53","nodeType":"YulTypedName","src":"15057:4:53","type":""},{"name":"src","nativeSrc":"15063:3:53","nodeType":"YulTypedName","src":"15063:3:53","type":""}],"src":"14976:1395:53"}]},"contents":"{\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 mcopy(dst, src, length)\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 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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_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_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 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_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_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 abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(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_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { 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 := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101b6575f3560e01c806354d1f13d116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146105aa578063f04e283e146105e6578063f2fde38b14610602578063fee81cf41461061e576101b6565b806395d89b411461051c578063a9059cbb14610546578063d505accf14610582576101b6565b80637ecebe00116100c55780637ecebe001461046457806382aefa24146104a0578063867904b4146104ca5780638da5cb5b146104f2576101b6565b806354d1f13d1461041457806370a082311461041e578063715018a61461045a576101b6565b806323b872dd11610158578063313ce56711610132578063313ce567146103685780633644e515146103925780634a4ee7b1146103bc578063514e62fc146103d8576101b6565b806323b872dd146102e657806325692962146103225780632de948071461032c576101b6565b806318160ddd1161019457806318160ddd14610248578063183a4f6e146102725780631c10893f1461028e5780631cd64df4146102aa576101b6565b806306fdde03146101ba578063077f224a146101e4578063095ea7b31461020c575b5f80fd5b3480156101c5575f80fd5b506101ce61065a565b6040516101db91906112af565b60405180910390f35b3480156101ef575f80fd5b5061020a60048036038101906102059190611466565b6106e9565b005b348015610217575f80fd5b50610232600480360381019061022d9190611521565b610793565b60405161023f9190611579565b60405180910390f35b348015610253575f80fd5b5061025c6107e3565b60405161026991906115a1565b60405180910390f35b61028c600480360381019061028791906115ba565b6107f4565b005b6102a860048036038101906102a39190611521565b610801565b005b3480156102b5575f80fd5b506102d060048036038101906102cb9190611521565b610817565b6040516102dd9190611579565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906115e5565b61082d565b6040516103199190611579565b60405180910390f35b61032a6108fe565b005b348015610337575f80fd5b50610352600480360381019061034d9190611635565b61094f565b60405161035f91906115a1565b60405180910390f35b348015610373575f80fd5b5061037c610968565b604051610389919061167b565b60405180910390f35b34801561039d575f80fd5b506103a6610970565b6040516103b391906116ac565b60405180910390f35b6103d660048036038101906103d19190611521565b610a00565b005b3480156103e3575f80fd5b506103fe60048036038101906103f99190611521565b610a16565b60405161040b9190611579565b60405180910390f35b61041c610a2d565b005b348015610429575f80fd5b50610444600480360381019061043f9190611635565b610a66565b60405161045191906115a1565b60405180910390f35b610462610a7f565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611635565b610a92565b60405161049791906115a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610aab565b6040516104c191906115a1565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190611521565b610ab0565b005b3480156104fd575f80fd5b50610506610aca565b60405161051391906116d4565b60405180910390f35b348015610527575f80fd5b50610530610af2565b60405161053d91906112af565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190611521565b610b82565b6040516105799190611579565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190611741565b610c10565b005b3480156105b5575f80fd5b506105d060048036038101906105cb91906117de565b610dac565b6040516105dd91906115a1565b60405180910390f35b61060060048036038101906105fb9190611635565b610dca565b005b61061c60048036038101906106179190611635565b610e08565b005b348015610629575f80fd5b50610644600480360381019061063f9190611635565b610e31565b60405161065191906115a1565b60405180910390f35b60605f805461066890611849565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611849565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b5f6106f2610e4a565b905080546003825580156107245760018160011c14303b1061071b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061072e33610e73565b835f908161073c9190611a16565b50826001908161074c9190611a16565b50610758826002610f49565b801561078d576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b50505050565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b5f6805345cdf77eb68f44c54905090565b6107fe3382610f59565b50565b610809610f68565b6108138282610f49565b5050565b5f81826108238561094f565b1614905092915050565b5f610839848484610f9f565b8360601b33602052637f5e9f208117600c526034600c20805460018101156108765780851115610870576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c2080548087111561089c5763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050505050506108f3848484611043565b600190509392505050565b5f610907611048565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b5f6012905090565b5f8061097a611052565b90505f801b81036109975761098d61065a565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b610a08610f68565b610a128282610f59565b5050565b5f8082610a228561094f565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6387a211a2600c52815f526020600c20549050919050565b610a87610f68565b610a905f611056565b565b5f6338377508600c52815f526020600c20549050919050565b600281565b6002610abb8161111c565b610ac58383611151565b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b606060018054610b0190611849565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2d90611849565b8015610b785780601f10610b4f57610100808354040283529160200191610b78565b820191905f5260205f20905b815481529060010190602001808311610b5b57829003601f168201915b5050505050905090565b5f610b8e338484610f9f565b6387a211a2600c52335f526020600c20805480841115610bb55763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050610c06338484611043565b6001905092915050565b5f610c19611052565b90505f801b8103610c3657610c2c61065a565b8051906020012090505b84421115610c4b57631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d5114610d535763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b610dd2610f68565b63389a75e1600c52805f526020600c208054421115610df857636f5e88185f526004601cfd5b5f815550610e0581611056565b50565b610e10610f68565b8060601b610e2557637448fbae5f526004601cfd5b610e2e81611056565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111e3565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610f55828260016111e7565b5050565b610f6482825f6111e7565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f9d576382b429005f526004601cfd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561100757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561103e576040517f9cbe235700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b505050565b5f6202a300905090565b5f90565b61105e6111e3565b156110c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611119565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b638b78c6d81954331461114e57638b78c6d8600c52335f52806020600c20541661114d576382b429005f526004601cfd5b5b50565b61115c5f8383610f9f565b6805345cdf77eb68f44c548181018181101561117f5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506111df5f8383611043565b5050565b5f90565b638b78c6d8600c52825f526020600c2080548381178361120957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112818261123f565b61128b8185611249565b935061129b818560208601611259565b6112a481611267565b840191505092915050565b5f6020820190508181035f8301526112c78184611277565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61131e82611267565b810181811067ffffffffffffffff8211171561133d5761133c6112e8565b5b80604052505050565b5f61134f6112cf565b905061135b8282611315565b919050565b5f67ffffffffffffffff82111561137a576113796112e8565b5b61138382611267565b9050602081019050919050565b828183375f83830152505050565b5f6113b06113ab84611360565b611346565b9050828152602081018484840111156113cc576113cb6112e4565b5b6113d7848285611390565b509392505050565b5f82601f8301126113f3576113f26112e0565b5b813561140384826020860161139e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114358261140c565b9050919050565b6114458161142b565b811461144f575f80fd5b50565b5f813590506114608161143c565b92915050565b5f805f6060848603121561147d5761147c6112d8565b5b5f84013567ffffffffffffffff81111561149a576114996112dc565b5b6114a6868287016113df565b935050602084013567ffffffffffffffff8111156114c7576114c66112dc565b5b6114d3868287016113df565b92505060406114e486828701611452565b9150509250925092565b5f819050919050565b611500816114ee565b811461150a575f80fd5b50565b5f8135905061151b816114f7565b92915050565b5f8060408385031215611537576115366112d8565b5b5f61154485828601611452565b92505060206115558582860161150d565b9150509250929050565b5f8115159050919050565b6115738161155f565b82525050565b5f60208201905061158c5f83018461156a565b92915050565b61159b816114ee565b82525050565b5f6020820190506115b45f830184611592565b92915050565b5f602082840312156115cf576115ce6112d8565b5b5f6115dc8482850161150d565b91505092915050565b5f805f606084860312156115fc576115fb6112d8565b5b5f61160986828701611452565b935050602061161a86828701611452565b925050604061162b8682870161150d565b9150509250925092565b5f6020828403121561164a576116496112d8565b5b5f61165784828501611452565b91505092915050565b5f60ff82169050919050565b61167581611660565b82525050565b5f60208201905061168e5f83018461166c565b92915050565b5f819050919050565b6116a681611694565b82525050565b5f6020820190506116bf5f83018461169d565b92915050565b6116ce8161142b565b82525050565b5f6020820190506116e75f8301846116c5565b92915050565b6116f681611660565b8114611700575f80fd5b50565b5f81359050611711816116ed565b92915050565b61172081611694565b811461172a575f80fd5b50565b5f8135905061173b81611717565b92915050565b5f805f805f805f60e0888a03121561175c5761175b6112d8565b5b5f6117698a828b01611452565b975050602061177a8a828b01611452565b965050604061178b8a828b0161150d565b955050606061179c8a828b0161150d565b94505060806117ad8a828b01611703565b93505060a06117be8a828b0161172d565b92505060c06117cf8a828b0161172d565b91505092959891949750929550565b5f80604083850312156117f4576117f36112d8565b5b5f61180185828601611452565b925050602061181285828601611452565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061186057607f821691505b6020821081036118735761187261181c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261189a565b6118df868361189a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61191a611915611910846114ee565b6118f7565b6114ee565b9050919050565b5f819050919050565b61193383611900565b61194761193f82611921565b8484546118a6565b825550505050565b5f90565b61195b61194f565b61196681848461192a565b505050565b5b818110156119895761197e5f82611953565b60018101905061196c565b5050565b601f8211156119ce5761199f81611879565b6119a88461188b565b810160208510156119b7578190505b6119cb6119c38561188b565b83018261196b565b50505b505050565b5f82821c905092915050565b5f6119ee5f19846008026119d3565b1980831691505092915050565b5f611a0683836119df565b9150826002028217905092915050565b611a1f8261123f565b67ffffffffffffffff811115611a3857611a376112e8565b5b611a428254611849565b611a4d82828561198d565b5f60209050601f831160018114611a7e575f8415611a6c578287015190505b611a7685826119fb565b865550611add565b601f198416611a8c86611879565b5f5b82811015611ab357848901518255600182019150602085019450602081019050611a8e565b86831015611ad05784890151611acc601f8916826119df565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220058c997ad2d7b7ff6bf8e85fa7c09e225fbb4b0c690fc6dc2b59b30b7cb704d164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54D1F13D GT PUSH2 0xEB JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x61E JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x582 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x82AEFA24 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4F2 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x45A JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x158 JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x132 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x3D8 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x32C JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x194 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x2AA JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x20C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x793 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x7F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A3 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x15E5 JUMP JUMPDEST PUSH2 0x82D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x32A PUSH2 0x8FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x389 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x16AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D1 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH2 0xA2D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x462 PUSH2 0xA7F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B4 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x513 SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x530 PUSH2 0xAF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53D SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x551 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x567 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x579 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1741 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5CB SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DD SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x600 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x61C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE08 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x63F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x651 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 DUP1 SLOAD PUSH2 0x668 SWAP1 PUSH2 0x1849 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 0x694 SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6DF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x71B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x72E CALLER PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH0 SWAP1 DUP2 PUSH2 0x73C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP DUP3 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP PUSH2 0x758 DUP3 PUSH1 0x2 PUSH2 0xF49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FE CALLER DUP3 PUSH2 0xF59 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x809 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0x813 DUP3 DUP3 PUSH2 0xF49 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x823 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x839 DUP5 DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x876 JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x870 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x89C JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x8F3 DUP5 DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x907 PUSH2 0x1048 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x97A PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x997 JUMPI PUSH2 0x98D PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA12 DUP3 DUP3 PUSH2 0xF59 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0xA22 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA87 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA90 PUSH0 PUSH2 0x1056 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH2 0xABB DUP2 PUSH2 0x111C JUMP JUMPDEST PUSH2 0xAC5 DUP4 DUP4 PUSH2 0x1151 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xB01 SWAP1 PUSH2 0x1849 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 0xB2D SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB78 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB78 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB5B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB8E CALLER DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0xBB5 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0xC06 CALLER DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC19 PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0xC36 JUMPI PUSH2 0xC2C PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0xC4B JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0xD53 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDD2 PUSH2 0xF68 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDF8 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xE05 DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE10 PUSH2 0xF68 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE25 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xE2E DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xF55 DUP3 DUP3 PUSH1 0x1 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xF64 DUP3 DUP3 PUSH0 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF9D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x9CBE235700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x105E PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0x10C3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1119 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH4 0x8B78C6D8 NOT SLOAD CALLER EQ PUSH2 0x114E JUMPI PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x114D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x115C PUSH0 DUP4 DUP4 PUSH2 0xF9F JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x117F JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x11DF PUSH0 DUP4 DUP4 PUSH2 0x1043 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0x1209 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1281 DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x128B DUP2 DUP6 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP PUSH2 0x129B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1267 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH2 0x1267 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x133D JUMPI PUSH2 0x133C PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x134F PUSH2 0x12CF JUMP JUMPDEST SWAP1 POP PUSH2 0x135B DUP3 DUP3 PUSH2 0x1315 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x137A JUMPI PUSH2 0x1379 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1383 DUP3 PUSH2 0x1267 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13B0 PUSH2 0x13AB DUP5 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x1346 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x12E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13D7 DUP5 DUP3 DUP6 PUSH2 0x1390 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH2 0x13F2 PUSH2 0x12E0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1403 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x139E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1435 DUP3 PUSH2 0x140C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1445 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP2 EQ PUSH2 0x144F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1460 DUP2 PUSH2 0x143C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x147D JUMPI PUSH2 0x147C PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x149A JUMPI PUSH2 0x1499 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14A6 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x14E4 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1500 DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP2 EQ PUSH2 0x150A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x151B DUP2 PUSH2 0x14F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1537 JUMPI PUSH2 0x1536 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1544 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1555 DUP6 DUP3 DUP7 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1573 DUP2 PUSH2 0x155F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x158C PUSH0 DUP4 ADD DUP5 PUSH2 0x156A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15CF JUMPI PUSH2 0x15CE PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DC DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15FC JUMPI PUSH2 0x15FB PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1609 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x161A DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x162B DUP7 DUP3 DUP8 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164A JUMPI PUSH2 0x1649 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1657 DUP5 DUP3 DUP6 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1675 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168E PUSH0 DUP4 ADD DUP5 PUSH2 0x166C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A6 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16BF PUSH0 DUP4 ADD DUP5 PUSH2 0x169D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16CE DUP2 PUSH2 0x142B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16E7 PUSH0 DUP4 ADD DUP5 PUSH2 0x16C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16F6 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP2 EQ PUSH2 0x1700 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1711 DUP2 PUSH2 0x16ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1720 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP2 EQ PUSH2 0x172A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x173B DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x175C JUMPI PUSH2 0x175B PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1769 DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x177A DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x178B DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x179C DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x17AD DUP11 DUP3 DUP12 ADD PUSH2 0x1703 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x17BE DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x17CF DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F4 JUMPI PUSH2 0x17F3 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1801 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1812 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1860 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1873 JUMPI PUSH2 0x1872 PUSH2 0x181C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x18D5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x189A JUMP JUMPDEST PUSH2 0x18DF DUP7 DUP4 PUSH2 0x189A 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 PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x191A PUSH2 0x1915 PUSH2 0x1910 DUP5 PUSH2 0x14EE JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x14EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1933 DUP4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x193F DUP3 PUSH2 0x1921 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x18A6 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x195B PUSH2 0x194F JUMP JUMPDEST PUSH2 0x1966 DUP2 DUP5 DUP5 PUSH2 0x192A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH2 0x197E PUSH0 DUP3 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x196C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x19CE JUMPI PUSH2 0x199F DUP2 PUSH2 0x1879 JUMP JUMPDEST PUSH2 0x19A8 DUP5 PUSH2 0x188B JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x19B7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x19CB PUSH2 0x19C3 DUP6 PUSH2 0x188B JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x196B JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19EE PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x19D3 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A06 DUP4 DUP4 PUSH2 0x19DF JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A1F DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A38 JUMPI PUSH2 0x1A37 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1A42 DUP3 SLOAD PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x1A4D DUP3 DUP3 DUP6 PUSH2 0x198D JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1A7E JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1A6C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1A76 DUP6 DUP3 PUSH2 0x19FB JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1ADD JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1A8C DUP7 PUSH2 0x1879 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AB3 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 0x1A8E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1AD0 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1ACC PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x19DF 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 INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV DUP13 SWAP10 PUSH27 0xD2D7B7FF6BF8E85FA7C09E225FBB4B0C690FC6DC2B59B30B7CB704 0xD1 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"394:1770:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;898:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7435:573:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6287:195;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:109:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9588:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11178:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9969:2191:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;10567:353:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:82:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:693;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9856:125:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10982:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:17;;;:::i;:::-;;6548:286:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:17;;;:::i;:::-;;12800:340:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;553:44:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1314:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1670:102:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8195:1406:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13324:3215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6929:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1500:98:50;1554:13;1586:5;1579:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:98;:::o;898:242::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1010:28:50::1;1027:10;1010:16;:28::i;:::-;1057:5;1049;:13;;;;;;:::i;:::-;;1082:7;1072;:17;;;;;;:::i;:::-;;1100:33;1112:7;591:6;1100:11;:33::i;:::-;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;898:242:50;;;:::o;7435:573:19:-;7509:4;7668:7;7662:4;7655:21;7702:20;7696:4;7689:34;7749:8;7743:4;7736:22;7801:6;7794:4;7788;7778:21;7771:37;7876:6;7870:4;7863:20;7964:4;7958:11;7954:2;7950:20;7940:8;7913:25;7907:4;7901;7896:75;7997:4;7990:11;;7435:573;;;;:::o;6287:195::-;6339:14;6447:18;6441:25;6431:35;;6287:195;:::o;10127:109:18:-;10198:31;10211:10;10223:5;10198:12;:31::i;:::-;10127:109;:::o;9588:123::-;12517:13:17;:11;:13::i;:::-;9680:24:18::1;9692:4;9698:5;9680:11;:24::i;:::-;9588:123:::0;;:::o;11178:139::-;11257:4;11305:5;11296;11280:13;11288:4;11280:7;:13::i;:::-;:21;:30;11273:37;;11178:139;;;;:::o;9969:2191:19:-;10057:4;10073:38;10094:4;10100:2;10104:6;10073:20;:38::i;:::-;10208:4;10204:2;10200:13;10301:8;10295:4;10288:22;10346:20;10339:5;10336:31;10330:4;10323:45;10418:4;10412;10402:21;10460:13;10454:20;10572:1;10560:10;10556:18;10553:418;;;10688:10;10680:6;10677:22;10674:159;;;10735:10;10729:4;10722:24;10810:4;10804;10797:18;10674:159;10949:6;10937:10;10933:23;10918:13;10911:46;10553:418;11067:18;11060:5;11057:29;11051:4;11044:43;11139:4;11133;11123:21;11182:15;11176:22;11272:11;11264:6;11261:23;11258:146;;;11316:10;11310:4;11303:24;11385:4;11379;11372:18;11258:146;11513:6;11500:11;11496:24;11479:15;11472:49;11596:2;11590:4;11583:16;11649:4;11643;11633:21;11899:6;11883:13;11877:20;11873:33;11858:13;11851:56;11975:6;11969:4;11962:20;12069:4;12063:11;12059:2;12055:20;12047:5;12043:2;12039:14;12012:25;12006:4;12000;11995:81;10173:1913;;;;;;12095:37;12115:4;12121:2;12125:6;12095:19;:37::i;:::-;12149:4;12142:11;;9969:2191;;;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;10567:353:18:-;10627:13;10769:15;10763:4;10756:29;10811:4;10805;10798:18;10898:4;10892;10882:21;10876:28;10867:37;;10567:353;;;:::o;5860:82:19:-;5909:5;5933:2;5926:9;;5860:82;:::o;16620:693::-;16677:14;16703:16;16722:19;:17;:19::i;:::-;16703:38;;16869:1;16861:10;;16849:8;:22;16845:63;;16900:6;:4;:6::i;:::-;16884:24;;;;;;16873:35;;16845:63;16999:4;16993:11;17060:16;17057:1;17050:27;17111:8;17104:4;17101:1;17097:12;17090:30;17154:13;17147:4;17144:1;17140:12;17133:35;17202:9;17195:4;17192:1;17188:12;17181:31;17246:9;17239:4;17236:1;17232:12;17225:31;17292:4;17289:1;17279:18;17269:28;;16970:337;;16620:693;:::o;9856:125:18:-;12517:13:17;:11;:13::i;:::-;9949:25:18::1;9962:4;9968:5;9949:12;:25::i;:::-;9856:125:::0;;:::o;10982:134::-;11060:4;11108:1;11099:5;11083:13;11091:4;11083:7;:13::i;:::-;:21;:26;;11076:33;;10982:134;;;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;6548:286:19:-;6611:14;6716:18;6710:4;6703:32;6761:5;6755:4;6748:19;6812:4;6806;6796:21;6790:28;6780:38;;6548:286;;;:::o;8762:100:17:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;12800:340:19:-;12860:14;13023:17;13017:4;13010:31;13067:5;13061:4;13054:19;13118:4;13112;13102:21;13096:28;13086:38;;12800:340;;;:::o;553:44:50:-;591:6;553:44;:::o;1314:116::-;591:6;11991:25:18;12010:5;11991:18;:25::i;:::-;1406:17:50::1;1412:2;1416:6;1406:5;:17::i;:::-;1314:116:::0;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1670:102:50:-;1726:13;1758:7;1751:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1670:102;:::o;8195:1406:19:-;8265:4;8281:44;8302:10;8314:2;8318:6;8281:20;:44::i;:::-;8474:18;8468:4;8461:32;8519:8;8513:4;8506:22;8580:4;8574;8564:21;8623:15;8617:22;8713:11;8705:6;8702:23;8699:146;;;8757:10;8751:4;8744:24;8826:4;8820;8813:18;8699:146;8954:6;8941:11;8937:24;8920:15;8913:49;9037:2;9031:4;9024:16;9090:4;9084;9074:21;9340:6;9324:13;9318:20;9314:33;9299:13;9292:56;9416:6;9410:4;9403:20;9504:4;9498:11;9494:2;9490:20;9480:8;9453:25;9447:4;9441;9436:75;8387:1134;;;9530:43;9550:10;9562:2;9566:6;9530:19;:43::i;:::-;9590:4;9583:11;;8195:1406;;;;:::o;13324:3215::-;13523:16;13542:19;:17;:19::i;:::-;13523:38;;13689:1;13681:10;;13669:8;:22;13665:63;;13720:6;:4;:6::i;:::-;13704:24;;;;;;13693:35;;13665:63;13896:8;13883:11;13880:25;13877:142;;;13937:10;13931:4;13924:24;14000:4;13994;13987:18;13877:142;14047:4;14041:11;14163:5;14159:2;14155:14;14151:2;14147:23;14138:32;;14210:7;14206:2;14202:16;14198:2;14194:25;14183:36;;14303:39;14297:4;14290:53;14369:5;14363:4;14356:19;14421:4;14415;14405:21;14463:9;14457:16;14541;14538:1;14531:27;14592:8;14585:4;14582:1;14578:12;14571:30;14635:13;14628:4;14625:1;14621:12;14614:35;14683:9;14676:4;14673:1;14669:12;14662:31;14727:9;14720:4;14717:1;14713:12;14706:31;14776:4;14773:1;14763:18;14757:4;14750:32;14845:16;14842:1;14835:27;14896:5;14889:4;14886:1;14882:12;14875:27;14936:7;14929:4;14926:1;14922:12;14915:29;14978:5;14971:4;14968:1;14964:12;14957:27;15018:10;15011:4;15008:1;15004:12;14997:32;15063:8;15056:4;15053:1;15049:12;15042:30;15111:4;15108:1;15098:18;15092:4;15085:32;15206:4;15200;15190:21;15184:4;15177:35;15248:1;15242:4;15238:12;15232:4;15225:26;15277:1;15271:4;15264:15;15305:1;15299:4;15292:15;15365:4;15359;15353;15350:1;15347;15340:5;15329:41;15786:5;15767:16;15761:23;15758:34;15748:159;;15825:10;15819:4;15812:24;15888:4;15882;15875:18;15748:159;16008:1;15996:10;15992:18;15981:9;15974:37;16222:7;16199:20;16194:3;16190:30;16187:43;16181:4;16174:57;16274:5;16267:4;16261;16251:21;16244:36;16394:7;16387:5;16360:25;16354:4;16347;16344:1;16340:12;16335:67;16428:1;16422:4;16415:15;16492:1;16486:4;16479:15;13790:2743;;;;;13324:3215;;;;;;;:::o;6929:375::-;7041:14;7150:7;7144:4;7137:21;7184:20;7178:4;7171:34;7231:5;7225:4;7218:19;7282:4;7276;7266:21;7260:28;7250:38;;6929:375;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4053:115:18:-;4130:31;4143:4;4149:5;4156:4;4130:12;:31::i;:::-;4053:115;;:::o;4304:117::-;4382:32;4395:4;4401:5;4408;4382:12;:32::i;:::-;4304:117;;:::o;7292:355:17:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;1986:176:50:-;2107:1;2091:18;;:4;:18;;;;:38;;;;;2127:1;2113:16;;:2;:16;;;;2091:38;2087:68;;;2138:17;;;;;;;;;;;;;;2087:68;1986:176;;;:::o;24791:90:19:-;;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;12591:78:19:-;12651:14;12591:78;:::o;6145:1089:17:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;5219:802:18:-;5517:15;5513:20;5507:27;5497:8;5494:41;5484:521;;5610:15;5604:4;5597:29;5656:8;5650:4;5643:22;5859:5;5851:4;5845;5835:21;5829:28;5825:40;5815:176;;5902:10;5896:4;5889:24;5968:4;5962;5955:18;5815:176;5484:521;5219:802;:::o;17717:1172:19:-;17787:44;17816:1;17820:2;17824:6;17787:20;:44::i;:::-;17938:18;17932:25;18017:6;17998:17;17994:30;18114:17;18096:16;18093:39;18090:162;;;18164:10;18158:4;18151:24;18233:4;18227;18220:18;18090:162;18339:16;18319:18;18312:44;18442:18;18436:4;18429:32;18487:2;18481:4;18474:16;18540:4;18534;18524:21;18656:6;18640:13;18634:20;18630:33;18615:13;18608:56;18732:6;18726:4;18719:20;18813:4;18807:11;18803:2;18799:20;18796:1;18769:25;18763:4;18757;18752:68;17893:937;;;18839:43;18867:1;18871:2;18875:6;18839:19;:43::i;:::-;17717:1172;;:::o;4348:78:17:-;4412:10;4348:78;:::o;2952:967:18:-;3118:15;3112:4;3105:29;3160:4;3154;3147:18;3210:4;3204;3194:21;3288:8;3282:15;3395:5;3386:7;3383:18;3639:2;3629:62;;3682:5;3673:7;3669:19;3660:7;3656:33;3645:44;;3629:62;3763:7;3753:8;3746:25;3895:7;3887:4;3881:11;3877:2;3873:20;3841:30;3838:1;3835;3830:73;3091:822;;;2952:967;;;:::o;7:99:53:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:117;1678:1;1675;1668:12;1692:117;1801:1;1798;1791:12;1815:180;1863:77;1860:1;1853:88;1960:4;1957:1;1950:15;1984:4;1981:1;1974:15;2001:281;2084:27;2106:4;2084:27;:::i;:::-;2076:6;2072:40;2214:6;2202:10;2199:22;2178:18;2166:10;2163:34;2160:62;2157:88;;;2225:18;;:::i;:::-;2157:88;2265:10;2261:2;2254:22;2044:238;2001:281;;:::o;2288:129::-;2322:6;2349:20;;:::i;:::-;2339:30;;2378:33;2406:4;2398:6;2378:33;:::i;:::-;2288:129;;;:::o;2423:308::-;2485:4;2575:18;2567:6;2564:30;2561:56;;;2597:18;;:::i;:::-;2561:56;2635:29;2657:6;2635:29;:::i;:::-;2627:37;;2719:4;2713;2709:15;2701:23;;2423:308;;;:::o;2737:148::-;2835:6;2830:3;2825;2812:30;2876:1;2867:6;2862:3;2858:16;2851:27;2737:148;;;:::o;2891:425::-;2969:5;2994:66;3010:49;3052:6;3010:49;:::i;:::-;2994:66;:::i;:::-;2985:75;;3083:6;3076:5;3069:21;3121:4;3114:5;3110:16;3159:3;3150:6;3145:3;3141:16;3138:25;3135:112;;;3166:79;;:::i;:::-;3135:112;3256:54;3303:6;3298:3;3293;3256:54;:::i;:::-;2975:341;2891:425;;;;;:::o;3336:340::-;3392:5;3441:3;3434:4;3426:6;3422:17;3418:27;3408:122;;3449:79;;:::i;:::-;3408:122;3566:6;3553:20;3591:79;3666:3;3658:6;3651:4;3643:6;3639:17;3591:79;:::i;:::-;3582:88;;3398:278;3336:340;;;;:::o;3682:126::-;3719:7;3759:42;3752:5;3748:54;3737:65;;3682:126;;;:::o;3814:96::-;3851:7;3880:24;3898:5;3880:24;:::i;:::-;3869:35;;3814:96;;;:::o;3916:122::-;3989:24;4007:5;3989:24;:::i;:::-;3982:5;3979:35;3969:63;;4028:1;4025;4018:12;3969:63;3916:122;:::o;4044:139::-;4090:5;4128:6;4115:20;4106:29;;4144:33;4171:5;4144:33;:::i;:::-;4044:139;;;;:::o;4189:979::-;4286:6;4294;4302;4351:2;4339:9;4330:7;4326:23;4322:32;4319:119;;;4357:79;;:::i;:::-;4319:119;4505:1;4494:9;4490:17;4477:31;4535:18;4527:6;4524:30;4521:117;;;4557:79;;:::i;:::-;4521:117;4662:63;4717:7;4708:6;4697:9;4693:22;4662:63;:::i;:::-;4652:73;;4448:287;4802:2;4791:9;4787:18;4774:32;4833:18;4825:6;4822:30;4819:117;;;4855:79;;:::i;:::-;4819:117;4960:63;5015:7;5006:6;4995:9;4991:22;4960:63;:::i;:::-;4950:73;;4745:288;5072:2;5098:53;5143:7;5134:6;5123:9;5119:22;5098:53;:::i;:::-;5088:63;;5043:118;4189:979;;;;;:::o;5174:77::-;5211:7;5240:5;5229:16;;5174:77;;;:::o;5257:122::-;5330:24;5348:5;5330:24;:::i;:::-;5323:5;5320:35;5310:63;;5369:1;5366;5359:12;5310:63;5257:122;:::o;5385:139::-;5431:5;5469:6;5456:20;5447:29;;5485:33;5512:5;5485:33;:::i;:::-;5385:139;;;;:::o;5530:474::-;5598:6;5606;5655:2;5643:9;5634:7;5630:23;5626:32;5623:119;;;5661:79;;:::i;:::-;5623:119;5781:1;5806:53;5851:7;5842:6;5831:9;5827:22;5806:53;:::i;:::-;5796:63;;5752:117;5908:2;5934:53;5979:7;5970:6;5959:9;5955:22;5934:53;:::i;:::-;5924:63;;5879:118;5530:474;;;;;:::o;6010:90::-;6044:7;6087:5;6080:13;6073:21;6062:32;;6010:90;;;:::o;6106:109::-;6187:21;6202:5;6187:21;:::i;:::-;6182:3;6175:34;6106:109;;:::o;6221:210::-;6308:4;6346:2;6335:9;6331:18;6323:26;;6359:65;6421:1;6410:9;6406:17;6397:6;6359:65;:::i;:::-;6221:210;;;;:::o;6437:118::-;6524:24;6542:5;6524:24;:::i;:::-;6519:3;6512:37;6437:118;;:::o;6561:222::-;6654:4;6692:2;6681:9;6677:18;6669:26;;6705:71;6773:1;6762:9;6758:17;6749:6;6705:71;:::i;:::-;6561:222;;;;:::o;6789:329::-;6848:6;6897:2;6885:9;6876:7;6872:23;6868:32;6865:119;;;6903:79;;:::i;:::-;6865:119;7023:1;7048:53;7093:7;7084:6;7073:9;7069:22;7048:53;:::i;:::-;7038:63;;6994:117;6789:329;;;;:::o;7124:619::-;7201:6;7209;7217;7266:2;7254:9;7245:7;7241:23;7237:32;7234:119;;;7272:79;;:::i;:::-;7234:119;7392:1;7417:53;7462:7;7453:6;7442:9;7438:22;7417:53;:::i;:::-;7407:63;;7363:117;7519:2;7545:53;7590:7;7581:6;7570:9;7566:22;7545:53;:::i;:::-;7535:63;;7490:118;7647:2;7673:53;7718:7;7709:6;7698:9;7694:22;7673:53;:::i;:::-;7663:63;;7618:118;7124:619;;;;;:::o;7749:329::-;7808:6;7857:2;7845:9;7836:7;7832:23;7828:32;7825:119;;;7863:79;;:::i;:::-;7825:119;7983:1;8008:53;8053:7;8044:6;8033:9;8029:22;8008:53;:::i;:::-;7998:63;;7954:117;7749:329;;;;:::o;8084:86::-;8119:7;8159:4;8152:5;8148:16;8137:27;;8084:86;;;:::o;8176:112::-;8259:22;8275:5;8259:22;:::i;:::-;8254:3;8247:35;8176:112;;:::o;8294:214::-;8383:4;8421:2;8410:9;8406:18;8398:26;;8434:67;8498:1;8487:9;8483:17;8474:6;8434:67;:::i;:::-;8294:214;;;;:::o;8514:77::-;8551:7;8580:5;8569:16;;8514:77;;;:::o;8597:118::-;8684:24;8702:5;8684:24;:::i;:::-;8679:3;8672:37;8597:118;;:::o;8721:222::-;8814:4;8852:2;8841:9;8837:18;8829:26;;8865:71;8933:1;8922:9;8918:17;8909:6;8865:71;:::i;:::-;8721:222;;;;:::o;8949:118::-;9036:24;9054:5;9036:24;:::i;:::-;9031:3;9024:37;8949:118;;:::o;9073:222::-;9166:4;9204:2;9193:9;9189:18;9181:26;;9217:71;9285:1;9274:9;9270:17;9261:6;9217:71;:::i;:::-;9073:222;;;;:::o;9301:118::-;9372:22;9388:5;9372:22;:::i;:::-;9365:5;9362:33;9352:61;;9409:1;9406;9399:12;9352:61;9301:118;:::o;9425:135::-;9469:5;9507:6;9494:20;9485:29;;9523:31;9548:5;9523:31;:::i;:::-;9425:135;;;;:::o;9566:122::-;9639:24;9657:5;9639:24;:::i;:::-;9632:5;9629:35;9619:63;;9678:1;9675;9668:12;9619:63;9566:122;:::o;9694:139::-;9740:5;9778:6;9765:20;9756:29;;9794:33;9821:5;9794:33;:::i;:::-;9694:139;;;;:::o;9839:1199::-;9950:6;9958;9966;9974;9982;9990;9998;10047:3;10035:9;10026:7;10022:23;10018:33;10015:120;;;10054:79;;:::i;:::-;10015:120;10174:1;10199:53;10244:7;10235:6;10224:9;10220:22;10199:53;:::i;:::-;10189:63;;10145:117;10301:2;10327:53;10372:7;10363:6;10352:9;10348:22;10327:53;:::i;:::-;10317:63;;10272:118;10429:2;10455:53;10500:7;10491:6;10480:9;10476:22;10455:53;:::i;:::-;10445:63;;10400:118;10557:2;10583:53;10628:7;10619:6;10608:9;10604:22;10583:53;:::i;:::-;10573:63;;10528:118;10685:3;10712:51;10755:7;10746:6;10735:9;10731:22;10712:51;:::i;:::-;10702:61;;10656:117;10812:3;10839:53;10884:7;10875:6;10864:9;10860:22;10839:53;:::i;:::-;10829:63;;10783:119;10941:3;10968:53;11013:7;11004:6;10993:9;10989:22;10968:53;:::i;:::-;10958:63;;10912:119;9839:1199;;;;;;;;;;:::o;11044:474::-;11112:6;11120;11169:2;11157:9;11148:7;11144:23;11140:32;11137:119;;;11175:79;;:::i;:::-;11137:119;11295:1;11320:53;11365:7;11356:6;11345:9;11341:22;11320:53;:::i;:::-;11310:63;;11266:117;11422:2;11448:53;11493:7;11484:6;11473:9;11469:22;11448:53;:::i;:::-;11438:63;;11393:118;11044:474;;;;;:::o;11524:180::-;11572:77;11569:1;11562:88;11669:4;11666:1;11659:15;11693:4;11690:1;11683:15;11710:320;11754:6;11791:1;11785:4;11781:12;11771:22;;11838:1;11832:4;11828:12;11859:18;11849:81;;11915:4;11907:6;11903:17;11893:27;;11849:81;11977:2;11969:6;11966:14;11946:18;11943:38;11940:84;;11996:18;;:::i;:::-;11940:84;11761:269;11710:320;;;:::o;12036:141::-;12085:4;12108:3;12100:11;;12131:3;12128:1;12121:14;12165:4;12162:1;12152:18;12144:26;;12036:141;;;:::o;12183:93::-;12220:6;12267:2;12262;12255:5;12251:14;12247:23;12237:33;;12183:93;;;:::o;12282:107::-;12326:8;12376:5;12370:4;12366:16;12345:37;;12282:107;;;;:::o;12395:393::-;12464:6;12514:1;12502:10;12498:18;12537:97;12567:66;12556:9;12537:97;:::i;:::-;12655:39;12685:8;12674:9;12655:39;:::i;:::-;12643:51;;12727:4;12723:9;12716:5;12712:21;12703:30;;12776:4;12766:8;12762:19;12755:5;12752:30;12742:40;;12471:317;;12395:393;;;;;:::o;12794:60::-;12822:3;12843:5;12836:12;;12794:60;;;:::o;12860:142::-;12910:9;12943:53;12961:34;12970:24;12988:5;12970:24;:::i;:::-;12961:34;:::i;:::-;12943:53;:::i;:::-;12930:66;;12860:142;;;:::o;13008:75::-;13051:3;13072:5;13065:12;;13008:75;;;:::o;13089:269::-;13199:39;13230:7;13199:39;:::i;:::-;13260:91;13309:41;13333:16;13309:41;:::i;:::-;13301:6;13294:4;13288:11;13260:91;:::i;:::-;13254:4;13247:105;13165:193;13089:269;;;:::o;13364:73::-;13409:3;13364:73;:::o;13443:189::-;13520:32;;:::i;:::-;13561:65;13619:6;13611;13605:4;13561:65;:::i;:::-;13496:136;13443:189;;:::o;13638:186::-;13698:120;13715:3;13708:5;13705:14;13698:120;;;13769:39;13806:1;13799:5;13769:39;:::i;:::-;13742:1;13735:5;13731:13;13722:22;;13698:120;;;13638:186;;:::o;13830:543::-;13931:2;13926:3;13923:11;13920:446;;;13965:38;13997:5;13965:38;:::i;:::-;14049:29;14067:10;14049:29;:::i;:::-;14039:8;14035:44;14232:2;14220:10;14217:18;14214:49;;;14253:8;14238:23;;14214:49;14276:80;14332:22;14350:3;14332:22;:::i;:::-;14322:8;14318:37;14305:11;14276:80;:::i;:::-;13935:431;;13920:446;13830:543;;;:::o;14379:117::-;14433:8;14483:5;14477:4;14473:16;14452:37;;14379:117;;;;:::o;14502:169::-;14546:6;14579:51;14627:1;14623:6;14615:5;14612:1;14608:13;14579:51;:::i;:::-;14575:56;14660:4;14654;14650:15;14640:25;;14553:118;14502:169;;;;:::o;14676:295::-;14752:4;14898:29;14923:3;14917:4;14898:29;:::i;:::-;14890:37;;14960:3;14957:1;14953:11;14947:4;14944:21;14936:29;;14676:295;;;;:::o;14976:1395::-;15093:37;15126:3;15093:37;:::i;:::-;15195:18;15187:6;15184:30;15181:56;;;15217:18;;:::i;:::-;15181:56;15261:38;15293:4;15287:11;15261:38;:::i;:::-;15346:67;15406:6;15398;15392:4;15346:67;:::i;:::-;15440:1;15464:4;15451:17;;15496:2;15488:6;15485:14;15513:1;15508:618;;;;16170:1;16187:6;16184:77;;;16236:9;16231:3;16227:19;16221:26;16212:35;;16184:77;16287:67;16347:6;16340:5;16287:67;:::i;:::-;16281:4;16274:81;16143:222;15478:887;;15508:618;15560:4;15556:9;15548:6;15544:22;15594:37;15626:4;15594:37;:::i;:::-;15653:1;15667:208;15681:7;15678:1;15675:14;15667:208;;;15760:9;15755:3;15751:19;15745:26;15737:6;15730:42;15811:1;15803:6;15799:14;15789:24;;15858:2;15847:9;15843:18;15830:31;;15704:4;15701:1;15697:12;15692:17;;15667:208;;;15903:6;15894:7;15891:19;15888:179;;;15961:9;15956:3;15952:19;15946:26;16004:48;16046:4;16038:6;16034:17;16023:9;16004:48;:::i;:::-;15996:6;15989:64;15911:156;15888:179;16113:1;16109;16101:6;16097:14;16093:22;16087:4;16080:36;15515:611;;;15478:887;;15068:1303;;;14976:1395;;:::o"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","ISSUER_ROLE()":"82aefa24","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","decimals()":"313ce567","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","initialize(string,string,address)":"077f224a","issue(address,uint256)":"867904b4","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ISSUER_ROLE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"initialize(string,string,address)\":{\"params\":{\"minter_\":\"The initial holder of the minter role\",\"name_\":\"The name of the token\",\"symbol_\":\"The symbol of the token\"}},\"issue(address,uint256)\":{\"params\":{\"amount\":\"The amount of points to issue\",\"to\":\"The address to assign the points to\"}},\"name()\":{\"details\":\"Returns the name of the token.\",\"returns\":{\"_0\":\"The name of the token\"}},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\",\"returns\":{\"_0\":\"The symbol of the token\"}},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Points\",\"version\":1},\"userdoc\":{\"errors\":{\"NonTransferable()\":[{\"notice\":\"Thrown when an attempt is made to transfer points\"}]},\"kind\":\"user\",\"methods\":{\"ISSUER_ROLE()\":{\"notice\":\"The role for issuing points\"},\"initialize(string,string,address)\":{\"notice\":\"Initialize the Points contract\"},\"issue(address,uint256)\":{\"notice\":\"Issue `amount` points and assign them to `to`\"}},\"notice\":\"A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/tokens/Points.sol\":\"Points\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/tokens/Points.sol\":{\"keccak256\":\"0xcc98ecdde8946dc7233d8c5177b387f72b5ec8c401faebd3db23e95822c08895\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fdbae50eda5684f34bbcc248a7877c23ac4eadc91349ed09ad368ba0ac9dcdf\",\"dweb:/ipfs/QmZbqpDEdW2d9r2fPzF8fdT42Vi6GJpRFdNv47qoB6U5F8\"]}},\"version\":1}"}},"contracts/validators/SignerValidator.sol":{"SignerValidator":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Replayed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"signers_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_18060":{"entryPoint":null,"id":18060,"parameterSlots":0,"returnSlots":0},"@_18250":{"entryPoint":null,"id":18250,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9198":{"entryPoint":270,"id":9198,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":378,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":382,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":50,"id":6302,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6113f3806101b45f395ff3fe6080604052600436106100a6575f3560e01c8063736c0d5b11610063578063736c0d5b146101545780638da5cb5b14610190578063c16e50ef146101ba578063f04e283e146101f6578063f2fde38b14610212578063fee81cf41461022e576100a6565b806301ffc9a7146100aa57806325692962146100e65780634359d28a146100f0578063439fab911461011857806354d1f13d14610140578063715018a61461014a575b5f80fd5b3480156100b5575f80fd5b506100d060048036038101906100cb9190610c67565b61026a565b6040516100dd9190610cac565b60405180910390f35b6100ee6102e3565b005b3480156100fb575f80fd5b5061011660048036038101906101119190610d7b565b610334565b005b348015610123575f80fd5b5061013e60048036038101906101399190610e4e565b61043d565b005b610148610570565b005b6101526105a9565b005b34801561015f575f80fd5b5061017a60048036038101906101759190610ef3565b6105bc565b6040516101879190610cac565b60405180910390f35b34801561019b575f80fd5b506101a46105d8565b6040516101b19190610f2d565b60405180910390f35b3480156101c5575f80fd5b506101e060048036038101906101db9190610e4e565b610600565b6040516101ed9190610cac565b60405180910390f35b610210600480360381019061020b9190610ef3565b610762565b005b61022c60048036038101906102279190610ef3565b6107a0565b005b348015610239575f80fd5b50610254600480360381019061024f9190610ef3565b6107c9565b6040516102619190610f5e565b60405180910390f35b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102dc57506102db826107e2565b5b9050919050565b5f6102ec61085b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61033c610865565b81819050848490501461037b576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156104365782828281811061039b5761039a610f77565b5b90506020020160208101906103b09190610fce565b5f808787858181106103c5576103c4610f77565b5b90506020020160208101906103da9190610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061037d565b5050505050565b5f61044661089c565b905080546003825580156104785760018160011c14303b1061046f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104899190611141565b90506104ae815f815181106104a1576104a0610f77565b5b60200260200101516108c5565b5f5b81518110156105345760015f808484815181106104d0576104cf610f77565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104b0565b5050801561056b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105b1610865565b6105ba5f61099b565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f80858581019061061391906112a6565b9250925092505f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610698576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015f8381526020019081526020015f205f9054906101000a900460ff16156106fc578282826040517fcde6ac870000000000000000000000000000000000000000000000000000000081526004016106f393929190611381565b60405180910390fd5b6001805f8481526020019081526020015f205f6101000a81548160ff02191690831515021790555061075761073083610a61565b828573ffffffffffffffffffffffffffffffffffffffff16610a919092919063ffffffff16565b935050505092915050565b61076a610865565b63389a75e1600c52805f526020600c20805442111561079057636f5e88185f526004601cfd5b5f81555061079d8161099b565b50565b6107a8610865565b8060601b6107bd57637448fbae5f526004601cfd5b6107c68161099b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610854575061085382610b94565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461089a576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108cd610bfd565b15610945577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561090757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610998565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6109a3610bfd565b15610a08577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610a5e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f816020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c6004209050919050565b5f8360601b60601c93508315610b8d57604051835f5260208301516040526040835103610afe576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610afb57600193505f60605282604052505050610b8d565b50505b6041835103610b445760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610b4257600192505f606052816040525050610b8d565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4681610c12565b8114610c50575f80fd5b50565b5f81359050610c6181610c3d565b92915050565b5f60208284031215610c7c57610c7b610c0a565b5b5f610c8984828501610c53565b91505092915050565b5f8115159050919050565b610ca681610c92565b82525050565b5f602082019050610cbf5f830184610c9d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610ce657610ce5610cc5565b5b8235905067ffffffffffffffff811115610d0357610d02610cc9565b5b602083019150836020820283011115610d1f57610d1e610ccd565b5b9250929050565b5f8083601f840112610d3b57610d3a610cc5565b5b8235905067ffffffffffffffff811115610d5857610d57610cc9565b5b602083019150836020820283011115610d7457610d73610ccd565b5b9250929050565b5f805f8060408587031215610d9357610d92610c0a565b5b5f85013567ffffffffffffffff811115610db057610daf610c0e565b5b610dbc87828801610cd1565b9450945050602085013567ffffffffffffffff811115610ddf57610dde610c0e565b5b610deb87828801610d26565b925092505092959194509250565b5f8083601f840112610e0e57610e0d610cc5565b5b8235905067ffffffffffffffff811115610e2b57610e2a610cc9565b5b602083019150836001820283011115610e4757610e46610ccd565b5b9250929050565b5f8060208385031215610e6457610e63610c0a565b5b5f83013567ffffffffffffffff811115610e8157610e80610c0e565b5b610e8d85828601610df9565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ec282610e99565b9050919050565b610ed281610eb8565b8114610edc575f80fd5b50565b5f81359050610eed81610ec9565b92915050565b5f60208284031215610f0857610f07610c0a565b5b5f610f1584828501610edf565b91505092915050565b610f2781610eb8565b82525050565b5f602082019050610f405f830184610f1e565b92915050565b5f819050919050565b610f5881610f46565b82525050565b5f602082019050610f715f830184610f4f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610fad81610c92565b8114610fb7575f80fd5b50565b5f81359050610fc881610fa4565b92915050565b5f60208284031215610fe357610fe2610c0a565b5b5f610ff084828501610fba565b91505092915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61103f82610ff9565b810181811067ffffffffffffffff8211171561105e5761105d611009565b5b80604052505050565b5f611070610c01565b905061107c8282611036565b919050565b5f67ffffffffffffffff82111561109b5761109a611009565b5b602082029050602081019050919050565b5f6110be6110b984611081565b611067565b905080838252602082019050602084028301858111156110e1576110e0610ccd565b5b835b8181101561110a57806110f68882610edf565b8452602084019350506020810190506110e3565b5050509392505050565b5f82601f83011261112857611127610cc5565b5b81356111388482602086016110ac565b91505092915050565b5f6020828403121561115657611155610c0a565b5b5f82013567ffffffffffffffff81111561117357611172610c0e565b5b61117f84828501611114565b91505092915050565b5f61119282610e99565b9050919050565b6111a281611188565b81146111ac575f80fd5b50565b5f813590506111bd81611199565b92915050565b5f819050919050565b6111d5816111c3565b81146111df575f80fd5b50565b5f813590506111f0816111cc565b92915050565b5f80fd5b5f67ffffffffffffffff82111561121457611213611009565b5b61121d82610ff9565b9050602081019050919050565b828183375f83830152505050565b5f61124a611245846111fa565b611067565b905082815260208101848484011115611266576112656111f6565b5b61127184828561122a565b509392505050565b5f82601f83011261128d5761128c610cc5565b5b813561129d848260208601611238565b91505092915050565b5f805f606084860312156112bd576112bc610c0a565b5b5f6112ca868287016111af565b93505060206112db868287016111e2565b925050604084013567ffffffffffffffff8111156112fc576112fb610c0e565b5b61130886828701611279565b9150509250925092565b61131b816111c3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61135382611321565b61135d818561132b565b935061136d81856020860161133b565b61137681610ff9565b840191505092915050565b5f6060820190506113945f830186610f1e565b6113a16020830185611312565b81810360408301526113b38184611349565b905094935050505056fea2646970667358221220fb96b8bbaa716ab5834801787dcb38454cf3f296d0e18168b53e83467fc8812c64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x13F3 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x736C0D5B GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x22E JUMPI PUSH2 0xA6 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEE PUSH2 0x2E3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x123 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x43D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x148 PUSH2 0x570 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x152 PUSH2 0x5A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A4 PUSH2 0x5D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0xF2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x600 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x210 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20B SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x762 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x22C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x227 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7A0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24F SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2DC JUMPI POP PUSH2 0x2DB DUP3 PUSH2 0x7E2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2EC PUSH2 0x85B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x33C PUSH2 0x865 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x436 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x39B JUMPI PUSH2 0x39A PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0xFCE JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x3C5 JUMPI PUSH2 0x3C4 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x446 PUSH2 0x89C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x478 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x46F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x489 SWAP2 SWAP1 PUSH2 0x1141 JUMP JUMPDEST SWAP1 POP PUSH2 0x4AE DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x4A1 JUMPI PUSH2 0x4A0 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8C5 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x534 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x4D0 JUMPI PUSH2 0x4CF PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x4B0 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x56B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x5B1 PUSH2 0x865 JUMP JUMPDEST PUSH2 0x5BA PUSH0 PUSH2 0x99B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 DUP6 DUP6 DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x698 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6FC JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xCDE6AC8700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1381 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x757 PUSH2 0x730 DUP4 PUSH2 0xA61 JUMP JUMPDEST DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA91 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x76A PUSH2 0x865 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x790 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x79D DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7A8 PUSH2 0x865 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7BD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7C6 DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x854 JUMPI POP PUSH2 0x853 DUP3 PUSH2 0xB94 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x89A JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8CD PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0x945 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x907 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x998 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A3 PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0xA08 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xA5E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH28 0x19457468657265756D205369676E6564204D6573736167653A0A3332 PUSH0 MSTORE PUSH1 0x3C PUSH1 0x4 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP4 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP4 POP DUP4 ISZERO PUSH2 0xB8D JUMPI PUSH1 0x40 MLOAD DUP4 PUSH0 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MSTORE PUSH1 0x40 DUP4 MLOAD SUB PUSH2 0xAFE JUMPI PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x1B DUP2 PUSH1 0xFF SHR ADD PUSH1 0x20 MSTORE DUP1 PUSH1 0x1 SHL PUSH1 0x1 SHR PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP8 XOR RETURNDATASIZE ISZERO OR PUSH2 0xAFB JUMPI PUSH1 0x1 SWAP4 POP PUSH0 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE POP POP POP PUSH2 0xB8D JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x41 DUP4 MLOAD SUB PUSH2 0xB44 JUMPI PUSH1 0x60 DUP4 ADD MLOAD PUSH0 BYTE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP7 XOR RETURNDATASIZE ISZERO OR PUSH2 0xB42 JUMPI PUSH1 0x1 SWAP3 POP PUSH0 PUSH1 0x60 MSTORE DUP2 PUSH1 0x40 MSTORE POP POP PUSH2 0xB8D JUMP JUMPDEST POP JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP1 DUP3 MSTORE DUP5 PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD PUSH1 0x40 DUP2 MSTORE DUP5 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x44 DUP6 ADD DUP3 DUP9 PUSH1 0x4 GAS STATICCALL POP PUSH1 0x20 DUP3 PUSH1 0x44 RETURNDATASIZE ADD DUP7 DUP12 GAS STATICCALL DUP4 DUP4 MLOAD EQ AND SWAP5 POP POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xC12 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC61 DUP2 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7C JUMPI PUSH2 0xC7B PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC89 DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA6 DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCBF PUSH0 DUP4 ADD DUP5 PUSH2 0xC9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xCE6 JUMPI PUSH2 0xCE5 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD03 JUMPI PUSH2 0xD02 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD1F JUMPI PUSH2 0xD1E PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD57 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD74 JUMPI PUSH2 0xD73 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDB0 JUMPI PUSH2 0xDAF PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDBC DUP8 DUP3 DUP9 ADD PUSH2 0xCD1 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDDF JUMPI PUSH2 0xDDE PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDEB DUP8 DUP3 DUP9 ADD PUSH2 0xD26 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE0E JUMPI PUSH2 0xE0D PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2B JUMPI PUSH2 0xE2A PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE47 JUMPI PUSH2 0xE46 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE64 JUMPI PUSH2 0xE63 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xE8D DUP6 DUP3 DUP7 ADD PUSH2 0xDF9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xEC2 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xED2 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0xEDC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEED DUP2 PUSH2 0xEC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF15 DUP5 DUP3 DUP6 ADD PUSH2 0xEDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF27 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF40 PUSH0 DUP4 ADD DUP5 PUSH2 0xF1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF58 DUP2 PUSH2 0xF46 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF71 PUSH0 DUP4 ADD DUP5 PUSH2 0xF4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFAD DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP2 EQ PUSH2 0xFB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFC8 DUP2 PUSH2 0xFA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE3 JUMPI PUSH2 0xFE2 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFF0 DUP5 DUP3 DUP6 ADD PUSH2 0xFBA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x103F DUP3 PUSH2 0xFF9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x105E JUMPI PUSH2 0x105D PUSH2 0x1009 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1070 PUSH2 0xC01 JUMP JUMPDEST SWAP1 POP PUSH2 0x107C DUP3 DUP3 PUSH2 0x1036 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x109B JUMPI PUSH2 0x109A PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BE PUSH2 0x10B9 DUP5 PUSH2 0x1081 JUMP JUMPDEST PUSH2 0x1067 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 0x10E1 JUMPI PUSH2 0x10E0 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x110A JUMPI DUP1 PUSH2 0x10F6 DUP9 DUP3 PUSH2 0xEDF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x10E3 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1128 JUMPI PUSH2 0x1127 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1138 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x10AC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1156 JUMPI PUSH2 0x1155 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1173 JUMPI PUSH2 0x1172 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x117F DUP5 DUP3 DUP6 ADD PUSH2 0x1114 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1192 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11A2 DUP2 PUSH2 0x1188 JUMP JUMPDEST DUP2 EQ PUSH2 0x11AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11BD DUP2 PUSH2 0x1199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP2 EQ PUSH2 0x11DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11F0 DUP2 PUSH2 0x11CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1214 JUMPI PUSH2 0x1213 PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH2 0x121D DUP3 PUSH2 0xFF9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x124A PUSH2 0x1245 DUP5 PUSH2 0x11FA JUMP JUMPDEST PUSH2 0x1067 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1266 JUMPI PUSH2 0x1265 PUSH2 0x11F6 JUMP JUMPDEST JUMPDEST PUSH2 0x1271 DUP5 DUP3 DUP6 PUSH2 0x122A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x128D JUMPI PUSH2 0x128C PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x129D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1238 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x12BD JUMPI PUSH2 0x12BC PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CA DUP7 DUP3 DUP8 ADD PUSH2 0x11AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x12DB DUP7 DUP3 DUP8 ADD PUSH2 0x11E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12FC JUMPI PUSH2 0x12FB PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x1308 DUP7 DUP3 DUP8 ADD PUSH2 0x1279 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x131B DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1353 DUP3 PUSH2 0x1321 JUMP JUMPDEST PUSH2 0x135D DUP2 DUP6 PUSH2 0x132B JUMP JUMPDEST SWAP4 POP PUSH2 0x136D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x133B JUMP JUMPDEST PUSH2 0x1376 DUP2 PUSH2 0xFF9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1394 PUSH0 DUP4 ADD DUP7 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x13A1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1312 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13B3 DUP2 DUP5 PUSH2 0x1349 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SWAP7 0xB8 0xBB 0xAA PUSH18 0x6AB5834801787DCB38454CF3F296D0E18168 0xB5 RETURNDATACOPY DUP4 CHAINID PUSH32 0xC8812C64736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"515:2634:51:-:0;;;1038:53;;;;;;;;;;703:28:52;720:10;703:16;;;:28;;:::i;:::-;1062:22:51;:20;;;:22;;:::i;:::-;515:2634;;4883:1190:17;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:21:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:17:-;4412:10;4348:78;:::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;515:2634:51:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6322":{"entryPoint":2149,"id":6322,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6288":{"entryPoint":3069,"id":6288,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9142":{"entryPoint":2204,"id":9142,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6302":{"entryPoint":2245,"id":6302,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6333":{"entryPoint":2139,"id":6333,"parameterSlots":0,"returnSlots":1},"@_setOwner_6316":{"entryPoint":2459,"id":6316,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6382":{"entryPoint":1392,"id":6382,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6396":{"entryPoint":1890,"id":6396,"parameterSlots":1,"returnSlots":0},"@initialize_18111":{"entryPoint":1085,"id":18111,"parameterSlots":2,"returnSlots":0},"@isValidSignatureNow_11389":{"entryPoint":2705,"id":11389,"parameterSlots":3,"returnSlots":1},"@owner_6404":{"entryPoint":1496,"id":6404,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6414":{"entryPoint":1993,"id":6414,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6361":{"entryPoint":1449,"id":6361,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6376":{"entryPoint":739,"id":6376,"parameterSlots":0,"returnSlots":0},"@setAuthorized_18223":{"entryPoint":820,"id":18223,"parameterSlots":4,"returnSlots":0},"@signers_18047":{"entryPoint":1468,"id":18047,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17719":{"entryPoint":2018,"id":17719,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18281":{"entryPoint":618,"id":18281,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2844":{"entryPoint":2964,"id":2844,"parameterSlots":1,"returnSlots":1},"@toEthSignedMessageHash_11509":{"entryPoint":2657,"id":11509,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6347":{"entryPoint":1952,"id":6347,"parameterSlots":1,"returnSlots":0},"@validate_18176":{"entryPoint":1536,"id":18176,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4268,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4664,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3807,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4527,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":3281,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4372,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3366,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":4026,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":4578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3577,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4729,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3827,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr":{"entryPoint":4774,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3451,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4417,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool":{"entryPoint":4046,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3175,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3662,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3870,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3229,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":4882,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4937,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3919,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4993,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3244,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3934,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4199,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3073,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4225,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4602,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4897,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4907,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3768,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4488,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3218,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":4547,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3090,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3737,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3910,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4650,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4923,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4150,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":3959,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4105,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3273,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3269,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3277,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4598,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3086,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3082,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4089,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3785,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4505,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4004,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":4556,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3133,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14634:53","nodeType":"YulBlock","src":"0:14634:53","statements":[{"body":{"nativeSrc":"47:35:53","nodeType":"YulBlock","src":"47:35:53","statements":[{"nativeSrc":"57:19:53","nodeType":"YulAssignment","src":"57:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:53","nodeType":"YulLiteral","src":"73:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:53","nodeType":"YulIdentifier","src":"67:5:53"},"nativeSrc":"67:9:53","nodeType":"YulFunctionCall","src":"67:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:53","nodeType":"YulIdentifier","src":"57:6:53"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:53","nodeType":"YulTypedName","src":"40:6:53","type":""}],"src":"7:75:53"},{"body":{"nativeSrc":"177:28:53","nodeType":"YulBlock","src":"177:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:53","nodeType":"YulLiteral","src":"194:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:53","nodeType":"YulLiteral","src":"197:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:53","nodeType":"YulIdentifier","src":"187:6:53"},"nativeSrc":"187:12:53","nodeType":"YulFunctionCall","src":"187:12:53"},"nativeSrc":"187:12:53","nodeType":"YulExpressionStatement","src":"187:12:53"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:53","nodeType":"YulFunctionDefinition","src":"88:117:53"},{"body":{"nativeSrc":"300:28:53","nodeType":"YulBlock","src":"300:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:53","nodeType":"YulLiteral","src":"317:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:53","nodeType":"YulLiteral","src":"320:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:53","nodeType":"YulIdentifier","src":"310:6:53"},"nativeSrc":"310:12:53","nodeType":"YulFunctionCall","src":"310:12:53"},"nativeSrc":"310:12:53","nodeType":"YulExpressionStatement","src":"310:12:53"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:53","nodeType":"YulFunctionDefinition","src":"211:117:53"},{"body":{"nativeSrc":"378:105:53","nodeType":"YulBlock","src":"378:105:53","statements":[{"nativeSrc":"388:89:53","nodeType":"YulAssignment","src":"388:89:53","value":{"arguments":[{"name":"value","nativeSrc":"403:5:53","nodeType":"YulIdentifier","src":"403:5:53"},{"kind":"number","nativeSrc":"410:66:53","nodeType":"YulLiteral","src":"410:66:53","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:53","nodeType":"YulIdentifier","src":"399:3:53"},"nativeSrc":"399:78:53","nodeType":"YulFunctionCall","src":"399:78:53"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:53","nodeType":"YulIdentifier","src":"388:7:53"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:53","nodeType":"YulTypedName","src":"360:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:53","nodeType":"YulTypedName","src":"370:7:53","type":""}],"src":"334:149:53"},{"body":{"nativeSrc":"531:78:53","nodeType":"YulBlock","src":"531:78:53","statements":[{"body":{"nativeSrc":"587:16:53","nodeType":"YulBlock","src":"587:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:53","nodeType":"YulLiteral","src":"596:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:53","nodeType":"YulLiteral","src":"599:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:53","nodeType":"YulIdentifier","src":"589:6:53"},"nativeSrc":"589:12:53","nodeType":"YulFunctionCall","src":"589:12:53"},"nativeSrc":"589:12:53","nodeType":"YulExpressionStatement","src":"589:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:53","nodeType":"YulIdentifier","src":"554:5:53"},{"arguments":[{"name":"value","nativeSrc":"578:5:53","nodeType":"YulIdentifier","src":"578:5:53"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:53","nodeType":"YulIdentifier","src":"561:16:53"},"nativeSrc":"561:23:53","nodeType":"YulFunctionCall","src":"561:23:53"}],"functionName":{"name":"eq","nativeSrc":"551:2:53","nodeType":"YulIdentifier","src":"551:2:53"},"nativeSrc":"551:34:53","nodeType":"YulFunctionCall","src":"551:34:53"}],"functionName":{"name":"iszero","nativeSrc":"544:6:53","nodeType":"YulIdentifier","src":"544:6:53"},"nativeSrc":"544:42:53","nodeType":"YulFunctionCall","src":"544:42:53"},"nativeSrc":"541:62:53","nodeType":"YulIf","src":"541:62:53"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:53","nodeType":"YulTypedName","src":"524:5:53","type":""}],"src":"489:120:53"},{"body":{"nativeSrc":"666:86:53","nodeType":"YulBlock","src":"666:86:53","statements":[{"nativeSrc":"676:29:53","nodeType":"YulAssignment","src":"676:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:53","nodeType":"YulIdentifier","src":"698:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:53","nodeType":"YulIdentifier","src":"685:12:53"},"nativeSrc":"685:20:53","nodeType":"YulFunctionCall","src":"685:20:53"},"variableNames":[{"name":"value","nativeSrc":"676:5:53","nodeType":"YulIdentifier","src":"676:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:53","nodeType":"YulIdentifier","src":"740:5:53"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:53","nodeType":"YulIdentifier","src":"714:25:53"},"nativeSrc":"714:32:53","nodeType":"YulFunctionCall","src":"714:32:53"},"nativeSrc":"714:32:53","nodeType":"YulExpressionStatement","src":"714:32:53"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:53","nodeType":"YulTypedName","src":"644:6:53","type":""},{"name":"end","nativeSrc":"652:3:53","nodeType":"YulTypedName","src":"652:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:53","nodeType":"YulTypedName","src":"660:5:53","type":""}],"src":"615:137:53"},{"body":{"nativeSrc":"823:262:53","nodeType":"YulBlock","src":"823:262:53","statements":[{"body":{"nativeSrc":"869:83:53","nodeType":"YulBlock","src":"869:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:53","nodeType":"YulIdentifier","src":"871:77:53"},"nativeSrc":"871:79:53","nodeType":"YulFunctionCall","src":"871:79:53"},"nativeSrc":"871:79:53","nodeType":"YulExpressionStatement","src":"871:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:53","nodeType":"YulIdentifier","src":"844:7:53"},{"name":"headStart","nativeSrc":"853:9:53","nodeType":"YulIdentifier","src":"853:9:53"}],"functionName":{"name":"sub","nativeSrc":"840:3:53","nodeType":"YulIdentifier","src":"840:3:53"},"nativeSrc":"840:23:53","nodeType":"YulFunctionCall","src":"840:23:53"},{"kind":"number","nativeSrc":"865:2:53","nodeType":"YulLiteral","src":"865:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:53","nodeType":"YulIdentifier","src":"836:3:53"},"nativeSrc":"836:32:53","nodeType":"YulFunctionCall","src":"836:32:53"},"nativeSrc":"833:119:53","nodeType":"YulIf","src":"833:119:53"},{"nativeSrc":"962:116:53","nodeType":"YulBlock","src":"962:116:53","statements":[{"nativeSrc":"977:15:53","nodeType":"YulVariableDeclaration","src":"977:15:53","value":{"kind":"number","nativeSrc":"991:1:53","nodeType":"YulLiteral","src":"991:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:53","nodeType":"YulTypedName","src":"981:6:53","type":""}]},{"nativeSrc":"1006:62:53","nodeType":"YulAssignment","src":"1006:62:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:53","nodeType":"YulIdentifier","src":"1040:9:53"},{"name":"offset","nativeSrc":"1051:6:53","nodeType":"YulIdentifier","src":"1051:6:53"}],"functionName":{"name":"add","nativeSrc":"1036:3:53","nodeType":"YulIdentifier","src":"1036:3:53"},"nativeSrc":"1036:22:53","nodeType":"YulFunctionCall","src":"1036:22:53"},{"name":"dataEnd","nativeSrc":"1060:7:53","nodeType":"YulIdentifier","src":"1060:7:53"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:53","nodeType":"YulIdentifier","src":"1016:19:53"},"nativeSrc":"1016:52:53","nodeType":"YulFunctionCall","src":"1016:52:53"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:53","nodeType":"YulIdentifier","src":"1006:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:53","nodeType":"YulTypedName","src":"793:9:53","type":""},{"name":"dataEnd","nativeSrc":"804:7:53","nodeType":"YulTypedName","src":"804:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:53","nodeType":"YulTypedName","src":"816:6:53","type":""}],"src":"758:327:53"},{"body":{"nativeSrc":"1133:48:53","nodeType":"YulBlock","src":"1133:48:53","statements":[{"nativeSrc":"1143:32:53","nodeType":"YulAssignment","src":"1143:32:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:53","nodeType":"YulIdentifier","src":"1168:5:53"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:53","nodeType":"YulIdentifier","src":"1161:6:53"},"nativeSrc":"1161:13:53","nodeType":"YulFunctionCall","src":"1161:13:53"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:53","nodeType":"YulIdentifier","src":"1154:6:53"},"nativeSrc":"1154:21:53","nodeType":"YulFunctionCall","src":"1154:21:53"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:53","nodeType":"YulIdentifier","src":"1143:7:53"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:53","nodeType":"YulTypedName","src":"1115:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:53","nodeType":"YulTypedName","src":"1125:7:53","type":""}],"src":"1091:90:53"},{"body":{"nativeSrc":"1246:50:53","nodeType":"YulBlock","src":"1246:50:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:53","nodeType":"YulIdentifier","src":"1263:3:53"},{"arguments":[{"name":"value","nativeSrc":"1283:5:53","nodeType":"YulIdentifier","src":"1283:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:53","nodeType":"YulIdentifier","src":"1268:14:53"},"nativeSrc":"1268:21:53","nodeType":"YulFunctionCall","src":"1268:21:53"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:53","nodeType":"YulIdentifier","src":"1256:6:53"},"nativeSrc":"1256:34:53","nodeType":"YulFunctionCall","src":"1256:34:53"},"nativeSrc":"1256:34:53","nodeType":"YulExpressionStatement","src":"1256:34:53"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:53","nodeType":"YulTypedName","src":"1234:5:53","type":""},{"name":"pos","nativeSrc":"1241:3:53","nodeType":"YulTypedName","src":"1241:3:53","type":""}],"src":"1187:109:53"},{"body":{"nativeSrc":"1394:118:53","nodeType":"YulBlock","src":"1394:118:53","statements":[{"nativeSrc":"1404:26:53","nodeType":"YulAssignment","src":"1404:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:53","nodeType":"YulIdentifier","src":"1416:9:53"},{"kind":"number","nativeSrc":"1427:2:53","nodeType":"YulLiteral","src":"1427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:53","nodeType":"YulIdentifier","src":"1412:3:53"},"nativeSrc":"1412:18:53","nodeType":"YulFunctionCall","src":"1412:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:53","nodeType":"YulIdentifier","src":"1404:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:53","nodeType":"YulIdentifier","src":"1478:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:53","nodeType":"YulIdentifier","src":"1491:9:53"},{"kind":"number","nativeSrc":"1502:1:53","nodeType":"YulLiteral","src":"1502:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:53","nodeType":"YulIdentifier","src":"1487:3:53"},"nativeSrc":"1487:17:53","nodeType":"YulFunctionCall","src":"1487:17:53"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:53","nodeType":"YulIdentifier","src":"1440:37:53"},"nativeSrc":"1440:65:53","nodeType":"YulFunctionCall","src":"1440:65:53"},"nativeSrc":"1440:65:53","nodeType":"YulExpressionStatement","src":"1440:65:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:53","nodeType":"YulTypedName","src":"1366:9:53","type":""},{"name":"value0","nativeSrc":"1378:6:53","nodeType":"YulTypedName","src":"1378:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:53","nodeType":"YulTypedName","src":"1389:4:53","type":""}],"src":"1302:210:53"},{"body":{"nativeSrc":"1607:28:53","nodeType":"YulBlock","src":"1607:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:53","nodeType":"YulLiteral","src":"1624:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:53","nodeType":"YulLiteral","src":"1627:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:53","nodeType":"YulIdentifier","src":"1617:6:53"},"nativeSrc":"1617:12:53","nodeType":"YulFunctionCall","src":"1617:12:53"},"nativeSrc":"1617:12:53","nodeType":"YulExpressionStatement","src":"1617:12:53"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:53","nodeType":"YulFunctionDefinition","src":"1518:117:53"},{"body":{"nativeSrc":"1730:28:53","nodeType":"YulBlock","src":"1730:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:53","nodeType":"YulLiteral","src":"1747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:53","nodeType":"YulLiteral","src":"1750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:53","nodeType":"YulIdentifier","src":"1740:6:53"},"nativeSrc":"1740:12:53","nodeType":"YulFunctionCall","src":"1740:12:53"},"nativeSrc":"1740:12:53","nodeType":"YulExpressionStatement","src":"1740:12:53"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:53","nodeType":"YulFunctionDefinition","src":"1641:117:53"},{"body":{"nativeSrc":"1853:28:53","nodeType":"YulBlock","src":"1853:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:53","nodeType":"YulLiteral","src":"1870:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:53","nodeType":"YulLiteral","src":"1873:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:53","nodeType":"YulIdentifier","src":"1863:6:53"},"nativeSrc":"1863:12:53","nodeType":"YulFunctionCall","src":"1863:12:53"},"nativeSrc":"1863:12:53","nodeType":"YulExpressionStatement","src":"1863:12:53"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:53","nodeType":"YulFunctionDefinition","src":"1764:117:53"},{"body":{"nativeSrc":"1994:478:53","nodeType":"YulBlock","src":"1994:478:53","statements":[{"body":{"nativeSrc":"2043:83:53","nodeType":"YulBlock","src":"2043:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2045:77:53","nodeType":"YulIdentifier","src":"2045:77:53"},"nativeSrc":"2045:79:53","nodeType":"YulFunctionCall","src":"2045:79:53"},"nativeSrc":"2045:79:53","nodeType":"YulExpressionStatement","src":"2045:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2022:6:53","nodeType":"YulIdentifier","src":"2022:6:53"},{"kind":"number","nativeSrc":"2030:4:53","nodeType":"YulLiteral","src":"2030:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2018:3:53","nodeType":"YulIdentifier","src":"2018:3:53"},"nativeSrc":"2018:17:53","nodeType":"YulFunctionCall","src":"2018:17:53"},{"name":"end","nativeSrc":"2037:3:53","nodeType":"YulIdentifier","src":"2037:3:53"}],"functionName":{"name":"slt","nativeSrc":"2014:3:53","nodeType":"YulIdentifier","src":"2014:3:53"},"nativeSrc":"2014:27:53","nodeType":"YulFunctionCall","src":"2014:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2007:6:53","nodeType":"YulIdentifier","src":"2007:6:53"},"nativeSrc":"2007:35:53","nodeType":"YulFunctionCall","src":"2007:35:53"},"nativeSrc":"2004:122:53","nodeType":"YulIf","src":"2004:122:53"},{"nativeSrc":"2135:30:53","nodeType":"YulAssignment","src":"2135:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2158:6:53","nodeType":"YulIdentifier","src":"2158:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2145:12:53","nodeType":"YulIdentifier","src":"2145:12:53"},"nativeSrc":"2145:20:53","nodeType":"YulFunctionCall","src":"2145:20:53"},"variableNames":[{"name":"length","nativeSrc":"2135:6:53","nodeType":"YulIdentifier","src":"2135:6:53"}]},{"body":{"nativeSrc":"2208:83:53","nodeType":"YulBlock","src":"2208:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2210:77:53","nodeType":"YulIdentifier","src":"2210:77:53"},"nativeSrc":"2210:79:53","nodeType":"YulFunctionCall","src":"2210:79:53"},"nativeSrc":"2210:79:53","nodeType":"YulExpressionStatement","src":"2210:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2180:6:53","nodeType":"YulIdentifier","src":"2180:6:53"},{"kind":"number","nativeSrc":"2188:18:53","nodeType":"YulLiteral","src":"2188:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2177:2:53","nodeType":"YulIdentifier","src":"2177:2:53"},"nativeSrc":"2177:30:53","nodeType":"YulFunctionCall","src":"2177:30:53"},"nativeSrc":"2174:117:53","nodeType":"YulIf","src":"2174:117:53"},{"nativeSrc":"2300:29:53","nodeType":"YulAssignment","src":"2300:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2316:6:53","nodeType":"YulIdentifier","src":"2316:6:53"},{"kind":"number","nativeSrc":"2324:4:53","nodeType":"YulLiteral","src":"2324:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2312:3:53","nodeType":"YulIdentifier","src":"2312:3:53"},"nativeSrc":"2312:17:53","nodeType":"YulFunctionCall","src":"2312:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2300:8:53","nodeType":"YulIdentifier","src":"2300:8:53"}]},{"body":{"nativeSrc":"2383:83:53","nodeType":"YulBlock","src":"2383:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2385:77:53","nodeType":"YulIdentifier","src":"2385:77:53"},"nativeSrc":"2385:79:53","nodeType":"YulFunctionCall","src":"2385:79:53"},"nativeSrc":"2385:79:53","nodeType":"YulExpressionStatement","src":"2385:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2348:8:53","nodeType":"YulIdentifier","src":"2348:8:53"},{"arguments":[{"name":"length","nativeSrc":"2362:6:53","nodeType":"YulIdentifier","src":"2362:6:53"},{"kind":"number","nativeSrc":"2370:4:53","nodeType":"YulLiteral","src":"2370:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2358:3:53","nodeType":"YulIdentifier","src":"2358:3:53"},"nativeSrc":"2358:17:53","nodeType":"YulFunctionCall","src":"2358:17:53"}],"functionName":{"name":"add","nativeSrc":"2344:3:53","nodeType":"YulIdentifier","src":"2344:3:53"},"nativeSrc":"2344:32:53","nodeType":"YulFunctionCall","src":"2344:32:53"},{"name":"end","nativeSrc":"2378:3:53","nodeType":"YulIdentifier","src":"2378:3:53"}],"functionName":{"name":"gt","nativeSrc":"2341:2:53","nodeType":"YulIdentifier","src":"2341:2:53"},"nativeSrc":"2341:41:53","nodeType":"YulFunctionCall","src":"2341:41:53"},"nativeSrc":"2338:128:53","nodeType":"YulIf","src":"2338:128:53"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"1904:568:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:53","nodeType":"YulTypedName","src":"1961:6:53","type":""},{"name":"end","nativeSrc":"1969:3:53","nodeType":"YulTypedName","src":"1969:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1977:8:53","nodeType":"YulTypedName","src":"1977:8:53","type":""},{"name":"length","nativeSrc":"1987:6:53","nodeType":"YulTypedName","src":"1987:6:53","type":""}],"src":"1904:568:53"},{"body":{"nativeSrc":"2579:478:53","nodeType":"YulBlock","src":"2579:478:53","statements":[{"body":{"nativeSrc":"2628:83:53","nodeType":"YulBlock","src":"2628:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2630:77:53","nodeType":"YulIdentifier","src":"2630:77:53"},"nativeSrc":"2630:79:53","nodeType":"YulFunctionCall","src":"2630:79:53"},"nativeSrc":"2630:79:53","nodeType":"YulExpressionStatement","src":"2630:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2607:6:53","nodeType":"YulIdentifier","src":"2607:6:53"},{"kind":"number","nativeSrc":"2615:4:53","nodeType":"YulLiteral","src":"2615:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2603:3:53","nodeType":"YulIdentifier","src":"2603:3:53"},"nativeSrc":"2603:17:53","nodeType":"YulFunctionCall","src":"2603:17:53"},{"name":"end","nativeSrc":"2622:3:53","nodeType":"YulIdentifier","src":"2622:3:53"}],"functionName":{"name":"slt","nativeSrc":"2599:3:53","nodeType":"YulIdentifier","src":"2599:3:53"},"nativeSrc":"2599:27:53","nodeType":"YulFunctionCall","src":"2599:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2592:6:53","nodeType":"YulIdentifier","src":"2592:6:53"},"nativeSrc":"2592:35:53","nodeType":"YulFunctionCall","src":"2592:35:53"},"nativeSrc":"2589:122:53","nodeType":"YulIf","src":"2589:122:53"},{"nativeSrc":"2720:30:53","nodeType":"YulAssignment","src":"2720:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2743:6:53","nodeType":"YulIdentifier","src":"2743:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2730:12:53","nodeType":"YulIdentifier","src":"2730:12:53"},"nativeSrc":"2730:20:53","nodeType":"YulFunctionCall","src":"2730:20:53"},"variableNames":[{"name":"length","nativeSrc":"2720:6:53","nodeType":"YulIdentifier","src":"2720:6:53"}]},{"body":{"nativeSrc":"2793:83:53","nodeType":"YulBlock","src":"2793:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2795:77:53","nodeType":"YulIdentifier","src":"2795:77:53"},"nativeSrc":"2795:79:53","nodeType":"YulFunctionCall","src":"2795:79:53"},"nativeSrc":"2795:79:53","nodeType":"YulExpressionStatement","src":"2795:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2765:6:53","nodeType":"YulIdentifier","src":"2765:6:53"},{"kind":"number","nativeSrc":"2773:18:53","nodeType":"YulLiteral","src":"2773:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2762:2:53","nodeType":"YulIdentifier","src":"2762:2:53"},"nativeSrc":"2762:30:53","nodeType":"YulFunctionCall","src":"2762:30:53"},"nativeSrc":"2759:117:53","nodeType":"YulIf","src":"2759:117:53"},{"nativeSrc":"2885:29:53","nodeType":"YulAssignment","src":"2885:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2901:6:53","nodeType":"YulIdentifier","src":"2901:6:53"},{"kind":"number","nativeSrc":"2909:4:53","nodeType":"YulLiteral","src":"2909:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2897:3:53","nodeType":"YulIdentifier","src":"2897:3:53"},"nativeSrc":"2897:17:53","nodeType":"YulFunctionCall","src":"2897:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2885:8:53","nodeType":"YulIdentifier","src":"2885:8:53"}]},{"body":{"nativeSrc":"2968:83:53","nodeType":"YulBlock","src":"2968:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2970:77:53","nodeType":"YulIdentifier","src":"2970:77:53"},"nativeSrc":"2970:79:53","nodeType":"YulFunctionCall","src":"2970:79:53"},"nativeSrc":"2970:79:53","nodeType":"YulExpressionStatement","src":"2970:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2933:8:53","nodeType":"YulIdentifier","src":"2933:8:53"},{"arguments":[{"name":"length","nativeSrc":"2947:6:53","nodeType":"YulIdentifier","src":"2947:6:53"},{"kind":"number","nativeSrc":"2955:4:53","nodeType":"YulLiteral","src":"2955:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2943:3:53","nodeType":"YulIdentifier","src":"2943:3:53"},"nativeSrc":"2943:17:53","nodeType":"YulFunctionCall","src":"2943:17:53"}],"functionName":{"name":"add","nativeSrc":"2929:3:53","nodeType":"YulIdentifier","src":"2929:3:53"},"nativeSrc":"2929:32:53","nodeType":"YulFunctionCall","src":"2929:32:53"},{"name":"end","nativeSrc":"2963:3:53","nodeType":"YulIdentifier","src":"2963:3:53"}],"functionName":{"name":"gt","nativeSrc":"2926:2:53","nodeType":"YulIdentifier","src":"2926:2:53"},"nativeSrc":"2926:41:53","nodeType":"YulFunctionCall","src":"2926:41:53"},"nativeSrc":"2923:128:53","nodeType":"YulIf","src":"2923:128:53"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"2492:565:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2546:6:53","nodeType":"YulTypedName","src":"2546:6:53","type":""},{"name":"end","nativeSrc":"2554:3:53","nodeType":"YulTypedName","src":"2554:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2562:8:53","nodeType":"YulTypedName","src":"2562:8:53","type":""},{"name":"length","nativeSrc":"2572:6:53","nodeType":"YulTypedName","src":"2572:6:53","type":""}],"src":"2492:565:53"},{"body":{"nativeSrc":"3213:778:53","nodeType":"YulBlock","src":"3213:778:53","statements":[{"body":{"nativeSrc":"3259:83:53","nodeType":"YulBlock","src":"3259:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3261:77:53","nodeType":"YulIdentifier","src":"3261:77:53"},"nativeSrc":"3261:79:53","nodeType":"YulFunctionCall","src":"3261:79:53"},"nativeSrc":"3261:79:53","nodeType":"YulExpressionStatement","src":"3261:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3234:7:53","nodeType":"YulIdentifier","src":"3234:7:53"},{"name":"headStart","nativeSrc":"3243:9:53","nodeType":"YulIdentifier","src":"3243:9:53"}],"functionName":{"name":"sub","nativeSrc":"3230:3:53","nodeType":"YulIdentifier","src":"3230:3:53"},"nativeSrc":"3230:23:53","nodeType":"YulFunctionCall","src":"3230:23:53"},{"kind":"number","nativeSrc":"3255:2:53","nodeType":"YulLiteral","src":"3255:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3226:3:53","nodeType":"YulIdentifier","src":"3226:3:53"},"nativeSrc":"3226:32:53","nodeType":"YulFunctionCall","src":"3226:32:53"},"nativeSrc":"3223:119:53","nodeType":"YulIf","src":"3223:119:53"},{"nativeSrc":"3352:312:53","nodeType":"YulBlock","src":"3352:312:53","statements":[{"nativeSrc":"3367:45:53","nodeType":"YulVariableDeclaration","src":"3367:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3398:9:53","nodeType":"YulIdentifier","src":"3398:9:53"},{"kind":"number","nativeSrc":"3409:1:53","nodeType":"YulLiteral","src":"3409:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3394:3:53","nodeType":"YulIdentifier","src":"3394:3:53"},"nativeSrc":"3394:17:53","nodeType":"YulFunctionCall","src":"3394:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"3381:12:53","nodeType":"YulIdentifier","src":"3381:12:53"},"nativeSrc":"3381:31:53","nodeType":"YulFunctionCall","src":"3381:31:53"},"variables":[{"name":"offset","nativeSrc":"3371:6:53","nodeType":"YulTypedName","src":"3371:6:53","type":""}]},{"body":{"nativeSrc":"3459:83:53","nodeType":"YulBlock","src":"3459:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3461:77:53","nodeType":"YulIdentifier","src":"3461:77:53"},"nativeSrc":"3461:79:53","nodeType":"YulFunctionCall","src":"3461:79:53"},"nativeSrc":"3461:79:53","nodeType":"YulExpressionStatement","src":"3461:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3431:6:53","nodeType":"YulIdentifier","src":"3431:6:53"},{"kind":"number","nativeSrc":"3439:18:53","nodeType":"YulLiteral","src":"3439:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3428:2:53","nodeType":"YulIdentifier","src":"3428:2:53"},"nativeSrc":"3428:30:53","nodeType":"YulFunctionCall","src":"3428:30:53"},"nativeSrc":"3425:117:53","nodeType":"YulIf","src":"3425:117:53"},{"nativeSrc":"3556:98:53","nodeType":"YulAssignment","src":"3556:98:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3626:9:53","nodeType":"YulIdentifier","src":"3626:9:53"},{"name":"offset","nativeSrc":"3637:6:53","nodeType":"YulIdentifier","src":"3637:6:53"}],"functionName":{"name":"add","nativeSrc":"3622:3:53","nodeType":"YulIdentifier","src":"3622:3:53"},"nativeSrc":"3622:22:53","nodeType":"YulFunctionCall","src":"3622:22:53"},{"name":"dataEnd","nativeSrc":"3646:7:53","nodeType":"YulIdentifier","src":"3646:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3574:47:53","nodeType":"YulIdentifier","src":"3574:47:53"},"nativeSrc":"3574:80:53","nodeType":"YulFunctionCall","src":"3574:80:53"},"variableNames":[{"name":"value0","nativeSrc":"3556:6:53","nodeType":"YulIdentifier","src":"3556:6:53"},{"name":"value1","nativeSrc":"3564:6:53","nodeType":"YulIdentifier","src":"3564:6:53"}]}]},{"nativeSrc":"3674:310:53","nodeType":"YulBlock","src":"3674:310:53","statements":[{"nativeSrc":"3689:46:53","nodeType":"YulVariableDeclaration","src":"3689:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3720:9:53","nodeType":"YulIdentifier","src":"3720:9:53"},{"kind":"number","nativeSrc":"3731:2:53","nodeType":"YulLiteral","src":"3731:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3716:3:53","nodeType":"YulIdentifier","src":"3716:3:53"},"nativeSrc":"3716:18:53","nodeType":"YulFunctionCall","src":"3716:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"3703:12:53","nodeType":"YulIdentifier","src":"3703:12:53"},"nativeSrc":"3703:32:53","nodeType":"YulFunctionCall","src":"3703:32:53"},"variables":[{"name":"offset","nativeSrc":"3693:6:53","nodeType":"YulTypedName","src":"3693:6:53","type":""}]},{"body":{"nativeSrc":"3782:83:53","nodeType":"YulBlock","src":"3782:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3784:77:53","nodeType":"YulIdentifier","src":"3784:77:53"},"nativeSrc":"3784:79:53","nodeType":"YulFunctionCall","src":"3784:79:53"},"nativeSrc":"3784:79:53","nodeType":"YulExpressionStatement","src":"3784:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3754:6:53","nodeType":"YulIdentifier","src":"3754:6:53"},{"kind":"number","nativeSrc":"3762:18:53","nodeType":"YulLiteral","src":"3762:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3751:2:53","nodeType":"YulIdentifier","src":"3751:2:53"},"nativeSrc":"3751:30:53","nodeType":"YulFunctionCall","src":"3751:30:53"},"nativeSrc":"3748:117:53","nodeType":"YulIf","src":"3748:117:53"},{"nativeSrc":"3879:95:53","nodeType":"YulAssignment","src":"3879:95:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3946:9:53","nodeType":"YulIdentifier","src":"3946:9:53"},{"name":"offset","nativeSrc":"3957:6:53","nodeType":"YulIdentifier","src":"3957:6:53"}],"functionName":{"name":"add","nativeSrc":"3942:3:53","nodeType":"YulIdentifier","src":"3942:3:53"},"nativeSrc":"3942:22:53","nodeType":"YulFunctionCall","src":"3942:22:53"},{"name":"dataEnd","nativeSrc":"3966:7:53","nodeType":"YulIdentifier","src":"3966:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3897:44:53","nodeType":"YulIdentifier","src":"3897:44:53"},"nativeSrc":"3897:77:53","nodeType":"YulFunctionCall","src":"3897:77:53"},"variableNames":[{"name":"value2","nativeSrc":"3879:6:53","nodeType":"YulIdentifier","src":"3879:6:53"},{"name":"value3","nativeSrc":"3887:6:53","nodeType":"YulIdentifier","src":"3887:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3063:928:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3159:9:53","nodeType":"YulTypedName","src":"3159:9:53","type":""},{"name":"dataEnd","nativeSrc":"3170:7:53","nodeType":"YulTypedName","src":"3170:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3182:6:53","nodeType":"YulTypedName","src":"3182:6:53","type":""},{"name":"value1","nativeSrc":"3190:6:53","nodeType":"YulTypedName","src":"3190:6:53","type":""},{"name":"value2","nativeSrc":"3198:6:53","nodeType":"YulTypedName","src":"3198:6:53","type":""},{"name":"value3","nativeSrc":"3206:6:53","nodeType":"YulTypedName","src":"3206:6:53","type":""}],"src":"3063:928:53"},{"body":{"nativeSrc":"4084:478:53","nodeType":"YulBlock","src":"4084:478:53","statements":[{"body":{"nativeSrc":"4133:83:53","nodeType":"YulBlock","src":"4133:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4135:77:53","nodeType":"YulIdentifier","src":"4135:77:53"},"nativeSrc":"4135:79:53","nodeType":"YulFunctionCall","src":"4135:79:53"},"nativeSrc":"4135:79:53","nodeType":"YulExpressionStatement","src":"4135:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4112:6:53","nodeType":"YulIdentifier","src":"4112:6:53"},{"kind":"number","nativeSrc":"4120:4:53","nodeType":"YulLiteral","src":"4120:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4108:3:53","nodeType":"YulIdentifier","src":"4108:3:53"},"nativeSrc":"4108:17:53","nodeType":"YulFunctionCall","src":"4108:17:53"},{"name":"end","nativeSrc":"4127:3:53","nodeType":"YulIdentifier","src":"4127:3:53"}],"functionName":{"name":"slt","nativeSrc":"4104:3:53","nodeType":"YulIdentifier","src":"4104:3:53"},"nativeSrc":"4104:27:53","nodeType":"YulFunctionCall","src":"4104:27:53"}],"functionName":{"name":"iszero","nativeSrc":"4097:6:53","nodeType":"YulIdentifier","src":"4097:6:53"},"nativeSrc":"4097:35:53","nodeType":"YulFunctionCall","src":"4097:35:53"},"nativeSrc":"4094:122:53","nodeType":"YulIf","src":"4094:122:53"},{"nativeSrc":"4225:30:53","nodeType":"YulAssignment","src":"4225:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"4248:6:53","nodeType":"YulIdentifier","src":"4248:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"4235:12:53","nodeType":"YulIdentifier","src":"4235:12:53"},"nativeSrc":"4235:20:53","nodeType":"YulFunctionCall","src":"4235:20:53"},"variableNames":[{"name":"length","nativeSrc":"4225:6:53","nodeType":"YulIdentifier","src":"4225:6:53"}]},{"body":{"nativeSrc":"4298:83:53","nodeType":"YulBlock","src":"4298:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4300:77:53","nodeType":"YulIdentifier","src":"4300:77:53"},"nativeSrc":"4300:79:53","nodeType":"YulFunctionCall","src":"4300:79:53"},"nativeSrc":"4300:79:53","nodeType":"YulExpressionStatement","src":"4300:79:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4270:6:53","nodeType":"YulIdentifier","src":"4270:6:53"},{"kind":"number","nativeSrc":"4278:18:53","nodeType":"YulLiteral","src":"4278:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4267:2:53","nodeType":"YulIdentifier","src":"4267:2:53"},"nativeSrc":"4267:30:53","nodeType":"YulFunctionCall","src":"4267:30:53"},"nativeSrc":"4264:117:53","nodeType":"YulIf","src":"4264:117:53"},{"nativeSrc":"4390:29:53","nodeType":"YulAssignment","src":"4390:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"4406:6:53","nodeType":"YulIdentifier","src":"4406:6:53"},{"kind":"number","nativeSrc":"4414:4:53","nodeType":"YulLiteral","src":"4414:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4402:3:53","nodeType":"YulIdentifier","src":"4402:3:53"},"nativeSrc":"4402:17:53","nodeType":"YulFunctionCall","src":"4402:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"4390:8:53","nodeType":"YulIdentifier","src":"4390:8:53"}]},{"body":{"nativeSrc":"4473:83:53","nodeType":"YulBlock","src":"4473:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4475:77:53","nodeType":"YulIdentifier","src":"4475:77:53"},"nativeSrc":"4475:79:53","nodeType":"YulFunctionCall","src":"4475:79:53"},"nativeSrc":"4475:79:53","nodeType":"YulExpressionStatement","src":"4475:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4438:8:53","nodeType":"YulIdentifier","src":"4438:8:53"},{"arguments":[{"name":"length","nativeSrc":"4452:6:53","nodeType":"YulIdentifier","src":"4452:6:53"},{"kind":"number","nativeSrc":"4460:4:53","nodeType":"YulLiteral","src":"4460:4:53","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"4448:3:53","nodeType":"YulIdentifier","src":"4448:3:53"},"nativeSrc":"4448:17:53","nodeType":"YulFunctionCall","src":"4448:17:53"}],"functionName":{"name":"add","nativeSrc":"4434:3:53","nodeType":"YulIdentifier","src":"4434:3:53"},"nativeSrc":"4434:32:53","nodeType":"YulFunctionCall","src":"4434:32:53"},{"name":"end","nativeSrc":"4468:3:53","nodeType":"YulIdentifier","src":"4468:3:53"}],"functionName":{"name":"gt","nativeSrc":"4431:2:53","nodeType":"YulIdentifier","src":"4431:2:53"},"nativeSrc":"4431:41:53","nodeType":"YulFunctionCall","src":"4431:41:53"},"nativeSrc":"4428:128:53","nodeType":"YulIf","src":"4428:128:53"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4010:552:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4051:6:53","nodeType":"YulTypedName","src":"4051:6:53","type":""},{"name":"end","nativeSrc":"4059:3:53","nodeType":"YulTypedName","src":"4059:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4067:8:53","nodeType":"YulTypedName","src":"4067:8:53","type":""},{"name":"length","nativeSrc":"4077:6:53","nodeType":"YulTypedName","src":"4077:6:53","type":""}],"src":"4010:552:53"},{"body":{"nativeSrc":"4653:442:53","nodeType":"YulBlock","src":"4653:442:53","statements":[{"body":{"nativeSrc":"4699:83:53","nodeType":"YulBlock","src":"4699:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4701:77:53","nodeType":"YulIdentifier","src":"4701:77:53"},"nativeSrc":"4701:79:53","nodeType":"YulFunctionCall","src":"4701:79:53"},"nativeSrc":"4701:79:53","nodeType":"YulExpressionStatement","src":"4701:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4674:7:53","nodeType":"YulIdentifier","src":"4674:7:53"},{"name":"headStart","nativeSrc":"4683:9:53","nodeType":"YulIdentifier","src":"4683:9:53"}],"functionName":{"name":"sub","nativeSrc":"4670:3:53","nodeType":"YulIdentifier","src":"4670:3:53"},"nativeSrc":"4670:23:53","nodeType":"YulFunctionCall","src":"4670:23:53"},{"kind":"number","nativeSrc":"4695:2:53","nodeType":"YulLiteral","src":"4695:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4666:3:53","nodeType":"YulIdentifier","src":"4666:3:53"},"nativeSrc":"4666:32:53","nodeType":"YulFunctionCall","src":"4666:32:53"},"nativeSrc":"4663:119:53","nodeType":"YulIf","src":"4663:119:53"},{"nativeSrc":"4792:296:53","nodeType":"YulBlock","src":"4792:296:53","statements":[{"nativeSrc":"4807:45:53","nodeType":"YulVariableDeclaration","src":"4807:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4838:9:53","nodeType":"YulIdentifier","src":"4838:9:53"},{"kind":"number","nativeSrc":"4849:1:53","nodeType":"YulLiteral","src":"4849:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4834:3:53","nodeType":"YulIdentifier","src":"4834:3:53"},"nativeSrc":"4834:17:53","nodeType":"YulFunctionCall","src":"4834:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"4821:12:53","nodeType":"YulIdentifier","src":"4821:12:53"},"nativeSrc":"4821:31:53","nodeType":"YulFunctionCall","src":"4821:31:53"},"variables":[{"name":"offset","nativeSrc":"4811:6:53","nodeType":"YulTypedName","src":"4811:6:53","type":""}]},{"body":{"nativeSrc":"4899:83:53","nodeType":"YulBlock","src":"4899:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4901:77:53","nodeType":"YulIdentifier","src":"4901:77:53"},"nativeSrc":"4901:79:53","nodeType":"YulFunctionCall","src":"4901:79:53"},"nativeSrc":"4901:79:53","nodeType":"YulExpressionStatement","src":"4901:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4871:6:53","nodeType":"YulIdentifier","src":"4871:6:53"},{"kind":"number","nativeSrc":"4879:18:53","nodeType":"YulLiteral","src":"4879:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4868:2:53","nodeType":"YulIdentifier","src":"4868:2:53"},"nativeSrc":"4868:30:53","nodeType":"YulFunctionCall","src":"4868:30:53"},"nativeSrc":"4865:117:53","nodeType":"YulIf","src":"4865:117:53"},{"nativeSrc":"4996:82:53","nodeType":"YulAssignment","src":"4996:82:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5050:9:53","nodeType":"YulIdentifier","src":"5050:9:53"},{"name":"offset","nativeSrc":"5061:6:53","nodeType":"YulIdentifier","src":"5061:6:53"}],"functionName":{"name":"add","nativeSrc":"5046:3:53","nodeType":"YulIdentifier","src":"5046:3:53"},"nativeSrc":"5046:22:53","nodeType":"YulFunctionCall","src":"5046:22:53"},{"name":"dataEnd","nativeSrc":"5070:7:53","nodeType":"YulIdentifier","src":"5070:7:53"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5014:31:53","nodeType":"YulIdentifier","src":"5014:31:53"},"nativeSrc":"5014:64:53","nodeType":"YulFunctionCall","src":"5014:64:53"},"variableNames":[{"name":"value0","nativeSrc":"4996:6:53","nodeType":"YulIdentifier","src":"4996:6:53"},{"name":"value1","nativeSrc":"5004:6:53","nodeType":"YulIdentifier","src":"5004:6:53"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"4568:527:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4615:9:53","nodeType":"YulTypedName","src":"4615:9:53","type":""},{"name":"dataEnd","nativeSrc":"4626:7:53","nodeType":"YulTypedName","src":"4626:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4638:6:53","nodeType":"YulTypedName","src":"4638:6:53","type":""},{"name":"value1","nativeSrc":"4646:6:53","nodeType":"YulTypedName","src":"4646:6:53","type":""}],"src":"4568:527:53"},{"body":{"nativeSrc":"5146:81:53","nodeType":"YulBlock","src":"5146:81:53","statements":[{"nativeSrc":"5156:65:53","nodeType":"YulAssignment","src":"5156:65:53","value":{"arguments":[{"name":"value","nativeSrc":"5171:5:53","nodeType":"YulIdentifier","src":"5171:5:53"},{"kind":"number","nativeSrc":"5178:42:53","nodeType":"YulLiteral","src":"5178:42:53","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5167:3:53","nodeType":"YulIdentifier","src":"5167:3:53"},"nativeSrc":"5167:54:53","nodeType":"YulFunctionCall","src":"5167:54:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5156:7:53","nodeType":"YulIdentifier","src":"5156:7:53"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5101:126:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5128:5:53","nodeType":"YulTypedName","src":"5128:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5138:7:53","nodeType":"YulTypedName","src":"5138:7:53","type":""}],"src":"5101:126:53"},{"body":{"nativeSrc":"5278:51:53","nodeType":"YulBlock","src":"5278:51:53","statements":[{"nativeSrc":"5288:35:53","nodeType":"YulAssignment","src":"5288:35:53","value":{"arguments":[{"name":"value","nativeSrc":"5317:5:53","nodeType":"YulIdentifier","src":"5317:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5299:17:53","nodeType":"YulIdentifier","src":"5299:17:53"},"nativeSrc":"5299:24:53","nodeType":"YulFunctionCall","src":"5299:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"5288:7:53","nodeType":"YulIdentifier","src":"5288:7:53"}]}]},"name":"cleanup_t_address","nativeSrc":"5233:96:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5260:5:53","nodeType":"YulTypedName","src":"5260:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5270:7:53","nodeType":"YulTypedName","src":"5270:7:53","type":""}],"src":"5233:96:53"},{"body":{"nativeSrc":"5378:79:53","nodeType":"YulBlock","src":"5378:79:53","statements":[{"body":{"nativeSrc":"5435:16:53","nodeType":"YulBlock","src":"5435:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5444:1:53","nodeType":"YulLiteral","src":"5444:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5447:1:53","nodeType":"YulLiteral","src":"5447:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5437:6:53","nodeType":"YulIdentifier","src":"5437:6:53"},"nativeSrc":"5437:12:53","nodeType":"YulFunctionCall","src":"5437:12:53"},"nativeSrc":"5437:12:53","nodeType":"YulExpressionStatement","src":"5437:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5401:5:53","nodeType":"YulIdentifier","src":"5401:5:53"},{"arguments":[{"name":"value","nativeSrc":"5426:5:53","nodeType":"YulIdentifier","src":"5426:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5408:17:53","nodeType":"YulIdentifier","src":"5408:17:53"},"nativeSrc":"5408:24:53","nodeType":"YulFunctionCall","src":"5408:24:53"}],"functionName":{"name":"eq","nativeSrc":"5398:2:53","nodeType":"YulIdentifier","src":"5398:2:53"},"nativeSrc":"5398:35:53","nodeType":"YulFunctionCall","src":"5398:35:53"}],"functionName":{"name":"iszero","nativeSrc":"5391:6:53","nodeType":"YulIdentifier","src":"5391:6:53"},"nativeSrc":"5391:43:53","nodeType":"YulFunctionCall","src":"5391:43:53"},"nativeSrc":"5388:63:53","nodeType":"YulIf","src":"5388:63:53"}]},"name":"validator_revert_t_address","nativeSrc":"5335:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5371:5:53","nodeType":"YulTypedName","src":"5371:5:53","type":""}],"src":"5335:122:53"},{"body":{"nativeSrc":"5515:87:53","nodeType":"YulBlock","src":"5515:87:53","statements":[{"nativeSrc":"5525:29:53","nodeType":"YulAssignment","src":"5525:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"5547:6:53","nodeType":"YulIdentifier","src":"5547:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"5534:12:53","nodeType":"YulIdentifier","src":"5534:12:53"},"nativeSrc":"5534:20:53","nodeType":"YulFunctionCall","src":"5534:20:53"},"variableNames":[{"name":"value","nativeSrc":"5525:5:53","nodeType":"YulIdentifier","src":"5525:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5590:5:53","nodeType":"YulIdentifier","src":"5590:5:53"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5563:26:53","nodeType":"YulIdentifier","src":"5563:26:53"},"nativeSrc":"5563:33:53","nodeType":"YulFunctionCall","src":"5563:33:53"},"nativeSrc":"5563:33:53","nodeType":"YulExpressionStatement","src":"5563:33:53"}]},"name":"abi_decode_t_address","nativeSrc":"5463:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5493:6:53","nodeType":"YulTypedName","src":"5493:6:53","type":""},{"name":"end","nativeSrc":"5501:3:53","nodeType":"YulTypedName","src":"5501:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5509:5:53","nodeType":"YulTypedName","src":"5509:5:53","type":""}],"src":"5463:139:53"},{"body":{"nativeSrc":"5674:263:53","nodeType":"YulBlock","src":"5674:263:53","statements":[{"body":{"nativeSrc":"5720:83:53","nodeType":"YulBlock","src":"5720:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5722:77:53","nodeType":"YulIdentifier","src":"5722:77:53"},"nativeSrc":"5722:79:53","nodeType":"YulFunctionCall","src":"5722:79:53"},"nativeSrc":"5722:79:53","nodeType":"YulExpressionStatement","src":"5722:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5695:7:53","nodeType":"YulIdentifier","src":"5695:7:53"},{"name":"headStart","nativeSrc":"5704:9:53","nodeType":"YulIdentifier","src":"5704:9:53"}],"functionName":{"name":"sub","nativeSrc":"5691:3:53","nodeType":"YulIdentifier","src":"5691:3:53"},"nativeSrc":"5691:23:53","nodeType":"YulFunctionCall","src":"5691:23:53"},{"kind":"number","nativeSrc":"5716:2:53","nodeType":"YulLiteral","src":"5716:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5687:3:53","nodeType":"YulIdentifier","src":"5687:3:53"},"nativeSrc":"5687:32:53","nodeType":"YulFunctionCall","src":"5687:32:53"},"nativeSrc":"5684:119:53","nodeType":"YulIf","src":"5684:119:53"},{"nativeSrc":"5813:117:53","nodeType":"YulBlock","src":"5813:117:53","statements":[{"nativeSrc":"5828:15:53","nodeType":"YulVariableDeclaration","src":"5828:15:53","value":{"kind":"number","nativeSrc":"5842:1:53","nodeType":"YulLiteral","src":"5842:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5832:6:53","nodeType":"YulTypedName","src":"5832:6:53","type":""}]},{"nativeSrc":"5857:63:53","nodeType":"YulAssignment","src":"5857:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5892:9:53","nodeType":"YulIdentifier","src":"5892:9:53"},{"name":"offset","nativeSrc":"5903:6:53","nodeType":"YulIdentifier","src":"5903:6:53"}],"functionName":{"name":"add","nativeSrc":"5888:3:53","nodeType":"YulIdentifier","src":"5888:3:53"},"nativeSrc":"5888:22:53","nodeType":"YulFunctionCall","src":"5888:22:53"},{"name":"dataEnd","nativeSrc":"5912:7:53","nodeType":"YulIdentifier","src":"5912:7:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5867:20:53","nodeType":"YulIdentifier","src":"5867:20:53"},"nativeSrc":"5867:53:53","nodeType":"YulFunctionCall","src":"5867:53:53"},"variableNames":[{"name":"value0","nativeSrc":"5857:6:53","nodeType":"YulIdentifier","src":"5857:6:53"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5608:329:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5644:9:53","nodeType":"YulTypedName","src":"5644:9:53","type":""},{"name":"dataEnd","nativeSrc":"5655:7:53","nodeType":"YulTypedName","src":"5655:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5667:6:53","nodeType":"YulTypedName","src":"5667:6:53","type":""}],"src":"5608:329:53"},{"body":{"nativeSrc":"6008:53:53","nodeType":"YulBlock","src":"6008:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6025:3:53","nodeType":"YulIdentifier","src":"6025:3:53"},{"arguments":[{"name":"value","nativeSrc":"6048:5:53","nodeType":"YulIdentifier","src":"6048:5:53"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6030:17:53","nodeType":"YulIdentifier","src":"6030:17:53"},"nativeSrc":"6030:24:53","nodeType":"YulFunctionCall","src":"6030:24:53"}],"functionName":{"name":"mstore","nativeSrc":"6018:6:53","nodeType":"YulIdentifier","src":"6018:6:53"},"nativeSrc":"6018:37:53","nodeType":"YulFunctionCall","src":"6018:37:53"},"nativeSrc":"6018:37:53","nodeType":"YulExpressionStatement","src":"6018:37:53"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5943:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5996:5:53","nodeType":"YulTypedName","src":"5996:5:53","type":""},{"name":"pos","nativeSrc":"6003:3:53","nodeType":"YulTypedName","src":"6003:3:53","type":""}],"src":"5943:118:53"},{"body":{"nativeSrc":"6165:124:53","nodeType":"YulBlock","src":"6165:124:53","statements":[{"nativeSrc":"6175:26:53","nodeType":"YulAssignment","src":"6175:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6187:9:53","nodeType":"YulIdentifier","src":"6187:9:53"},{"kind":"number","nativeSrc":"6198:2:53","nodeType":"YulLiteral","src":"6198:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6183:3:53","nodeType":"YulIdentifier","src":"6183:3:53"},"nativeSrc":"6183:18:53","nodeType":"YulFunctionCall","src":"6183:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6175:4:53","nodeType":"YulIdentifier","src":"6175:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6255:6:53","nodeType":"YulIdentifier","src":"6255:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6268:9:53","nodeType":"YulIdentifier","src":"6268:9:53"},{"kind":"number","nativeSrc":"6279:1:53","nodeType":"YulLiteral","src":"6279:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6264:3:53","nodeType":"YulIdentifier","src":"6264:3:53"},"nativeSrc":"6264:17:53","nodeType":"YulFunctionCall","src":"6264:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6211:43:53","nodeType":"YulIdentifier","src":"6211:43:53"},"nativeSrc":"6211:71:53","nodeType":"YulFunctionCall","src":"6211:71:53"},"nativeSrc":"6211:71:53","nodeType":"YulExpressionStatement","src":"6211:71:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6067:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6137:9:53","nodeType":"YulTypedName","src":"6137:9:53","type":""},{"name":"value0","nativeSrc":"6149:6:53","nodeType":"YulTypedName","src":"6149:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6160:4:53","nodeType":"YulTypedName","src":"6160:4:53","type":""}],"src":"6067:222:53"},{"body":{"nativeSrc":"6340:32:53","nodeType":"YulBlock","src":"6340:32:53","statements":[{"nativeSrc":"6350:16:53","nodeType":"YulAssignment","src":"6350:16:53","value":{"name":"value","nativeSrc":"6361:5:53","nodeType":"YulIdentifier","src":"6361:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"6350:7:53","nodeType":"YulIdentifier","src":"6350:7:53"}]}]},"name":"cleanup_t_uint256","nativeSrc":"6295:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6322:5:53","nodeType":"YulTypedName","src":"6322:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6332:7:53","nodeType":"YulTypedName","src":"6332:7:53","type":""}],"src":"6295:77:53"},{"body":{"nativeSrc":"6443:53:53","nodeType":"YulBlock","src":"6443:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6460:3:53","nodeType":"YulIdentifier","src":"6460:3:53"},{"arguments":[{"name":"value","nativeSrc":"6483:5:53","nodeType":"YulIdentifier","src":"6483:5:53"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6465:17:53","nodeType":"YulIdentifier","src":"6465:17:53"},"nativeSrc":"6465:24:53","nodeType":"YulFunctionCall","src":"6465:24:53"}],"functionName":{"name":"mstore","nativeSrc":"6453:6:53","nodeType":"YulIdentifier","src":"6453:6:53"},"nativeSrc":"6453:37:53","nodeType":"YulFunctionCall","src":"6453:37:53"},"nativeSrc":"6453:37:53","nodeType":"YulExpressionStatement","src":"6453:37:53"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6378:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6431:5:53","nodeType":"YulTypedName","src":"6431:5:53","type":""},{"name":"pos","nativeSrc":"6438:3:53","nodeType":"YulTypedName","src":"6438:3:53","type":""}],"src":"6378:118:53"},{"body":{"nativeSrc":"6600:124:53","nodeType":"YulBlock","src":"6600:124:53","statements":[{"nativeSrc":"6610:26:53","nodeType":"YulAssignment","src":"6610:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6622:9:53","nodeType":"YulIdentifier","src":"6622:9:53"},{"kind":"number","nativeSrc":"6633:2:53","nodeType":"YulLiteral","src":"6633:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6618:3:53","nodeType":"YulIdentifier","src":"6618:3:53"},"nativeSrc":"6618:18:53","nodeType":"YulFunctionCall","src":"6618:18:53"},"variableNames":[{"name":"tail","nativeSrc":"6610:4:53","nodeType":"YulIdentifier","src":"6610:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6690:6:53","nodeType":"YulIdentifier","src":"6690:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"6703:9:53","nodeType":"YulIdentifier","src":"6703:9:53"},{"kind":"number","nativeSrc":"6714:1:53","nodeType":"YulLiteral","src":"6714:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6699:3:53","nodeType":"YulIdentifier","src":"6699:3:53"},"nativeSrc":"6699:17:53","nodeType":"YulFunctionCall","src":"6699:17:53"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6646:43:53","nodeType":"YulIdentifier","src":"6646:43:53"},"nativeSrc":"6646:71:53","nodeType":"YulFunctionCall","src":"6646:71:53"},"nativeSrc":"6646:71:53","nodeType":"YulExpressionStatement","src":"6646:71:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6502:222:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6572:9:53","nodeType":"YulTypedName","src":"6572:9:53","type":""},{"name":"value0","nativeSrc":"6584:6:53","nodeType":"YulTypedName","src":"6584:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6595:4:53","nodeType":"YulTypedName","src":"6595:4:53","type":""}],"src":"6502:222:53"},{"body":{"nativeSrc":"6758:152:53","nodeType":"YulBlock","src":"6758:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6775:1:53","nodeType":"YulLiteral","src":"6775:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6778:77:53","nodeType":"YulLiteral","src":"6778:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6768:6:53","nodeType":"YulIdentifier","src":"6768:6:53"},"nativeSrc":"6768:88:53","nodeType":"YulFunctionCall","src":"6768:88:53"},"nativeSrc":"6768:88:53","nodeType":"YulExpressionStatement","src":"6768:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6872:1:53","nodeType":"YulLiteral","src":"6872:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"6875:4:53","nodeType":"YulLiteral","src":"6875:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"6865:6:53","nodeType":"YulIdentifier","src":"6865:6:53"},"nativeSrc":"6865:15:53","nodeType":"YulFunctionCall","src":"6865:15:53"},"nativeSrc":"6865:15:53","nodeType":"YulExpressionStatement","src":"6865:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6896:1:53","nodeType":"YulLiteral","src":"6896:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6899:4:53","nodeType":"YulLiteral","src":"6899:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6889:6:53","nodeType":"YulIdentifier","src":"6889:6:53"},"nativeSrc":"6889:15:53","nodeType":"YulFunctionCall","src":"6889:15:53"},"nativeSrc":"6889:15:53","nodeType":"YulExpressionStatement","src":"6889:15:53"}]},"name":"panic_error_0x32","nativeSrc":"6730:180:53","nodeType":"YulFunctionDefinition","src":"6730:180:53"},{"body":{"nativeSrc":"6956:76:53","nodeType":"YulBlock","src":"6956:76:53","statements":[{"body":{"nativeSrc":"7010:16:53","nodeType":"YulBlock","src":"7010:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7019:1:53","nodeType":"YulLiteral","src":"7019:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7022:1:53","nodeType":"YulLiteral","src":"7022:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7012:6:53","nodeType":"YulIdentifier","src":"7012:6:53"},"nativeSrc":"7012:12:53","nodeType":"YulFunctionCall","src":"7012:12:53"},"nativeSrc":"7012:12:53","nodeType":"YulExpressionStatement","src":"7012:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6979:5:53","nodeType":"YulIdentifier","src":"6979:5:53"},{"arguments":[{"name":"value","nativeSrc":"7001:5:53","nodeType":"YulIdentifier","src":"7001:5:53"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6986:14:53","nodeType":"YulIdentifier","src":"6986:14:53"},"nativeSrc":"6986:21:53","nodeType":"YulFunctionCall","src":"6986:21:53"}],"functionName":{"name":"eq","nativeSrc":"6976:2:53","nodeType":"YulIdentifier","src":"6976:2:53"},"nativeSrc":"6976:32:53","nodeType":"YulFunctionCall","src":"6976:32:53"}],"functionName":{"name":"iszero","nativeSrc":"6969:6:53","nodeType":"YulIdentifier","src":"6969:6:53"},"nativeSrc":"6969:40:53","nodeType":"YulFunctionCall","src":"6969:40:53"},"nativeSrc":"6966:60:53","nodeType":"YulIf","src":"6966:60:53"}]},"name":"validator_revert_t_bool","nativeSrc":"6916:116:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6949:5:53","nodeType":"YulTypedName","src":"6949:5:53","type":""}],"src":"6916:116:53"},{"body":{"nativeSrc":"7087:84:53","nodeType":"YulBlock","src":"7087:84:53","statements":[{"nativeSrc":"7097:29:53","nodeType":"YulAssignment","src":"7097:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"7119:6:53","nodeType":"YulIdentifier","src":"7119:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"7106:12:53","nodeType":"YulIdentifier","src":"7106:12:53"},"nativeSrc":"7106:20:53","nodeType":"YulFunctionCall","src":"7106:20:53"},"variableNames":[{"name":"value","nativeSrc":"7097:5:53","nodeType":"YulIdentifier","src":"7097:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7159:5:53","nodeType":"YulIdentifier","src":"7159:5:53"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"7135:23:53","nodeType":"YulIdentifier","src":"7135:23:53"},"nativeSrc":"7135:30:53","nodeType":"YulFunctionCall","src":"7135:30:53"},"nativeSrc":"7135:30:53","nodeType":"YulExpressionStatement","src":"7135:30:53"}]},"name":"abi_decode_t_bool","nativeSrc":"7038:133:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7065:6:53","nodeType":"YulTypedName","src":"7065:6:53","type":""},{"name":"end","nativeSrc":"7073:3:53","nodeType":"YulTypedName","src":"7073:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7081:5:53","nodeType":"YulTypedName","src":"7081:5:53","type":""}],"src":"7038:133:53"},{"body":{"nativeSrc":"7240:260:53","nodeType":"YulBlock","src":"7240:260:53","statements":[{"body":{"nativeSrc":"7286:83:53","nodeType":"YulBlock","src":"7286:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7288:77:53","nodeType":"YulIdentifier","src":"7288:77:53"},"nativeSrc":"7288:79:53","nodeType":"YulFunctionCall","src":"7288:79:53"},"nativeSrc":"7288:79:53","nodeType":"YulExpressionStatement","src":"7288:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7261:7:53","nodeType":"YulIdentifier","src":"7261:7:53"},{"name":"headStart","nativeSrc":"7270:9:53","nodeType":"YulIdentifier","src":"7270:9:53"}],"functionName":{"name":"sub","nativeSrc":"7257:3:53","nodeType":"YulIdentifier","src":"7257:3:53"},"nativeSrc":"7257:23:53","nodeType":"YulFunctionCall","src":"7257:23:53"},{"kind":"number","nativeSrc":"7282:2:53","nodeType":"YulLiteral","src":"7282:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7253:3:53","nodeType":"YulIdentifier","src":"7253:3:53"},"nativeSrc":"7253:32:53","nodeType":"YulFunctionCall","src":"7253:32:53"},"nativeSrc":"7250:119:53","nodeType":"YulIf","src":"7250:119:53"},{"nativeSrc":"7379:114:53","nodeType":"YulBlock","src":"7379:114:53","statements":[{"nativeSrc":"7394:15:53","nodeType":"YulVariableDeclaration","src":"7394:15:53","value":{"kind":"number","nativeSrc":"7408:1:53","nodeType":"YulLiteral","src":"7408:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7398:6:53","nodeType":"YulTypedName","src":"7398:6:53","type":""}]},{"nativeSrc":"7423:60:53","nodeType":"YulAssignment","src":"7423:60:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7455:9:53","nodeType":"YulIdentifier","src":"7455:9:53"},{"name":"offset","nativeSrc":"7466:6:53","nodeType":"YulIdentifier","src":"7466:6:53"}],"functionName":{"name":"add","nativeSrc":"7451:3:53","nodeType":"YulIdentifier","src":"7451:3:53"},"nativeSrc":"7451:22:53","nodeType":"YulFunctionCall","src":"7451:22:53"},{"name":"dataEnd","nativeSrc":"7475:7:53","nodeType":"YulIdentifier","src":"7475:7:53"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"7433:17:53","nodeType":"YulIdentifier","src":"7433:17:53"},"nativeSrc":"7433:50:53","nodeType":"YulFunctionCall","src":"7433:50:53"},"variableNames":[{"name":"value0","nativeSrc":"7423:6:53","nodeType":"YulIdentifier","src":"7423:6:53"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"7177:323:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7210:9:53","nodeType":"YulTypedName","src":"7210:9:53","type":""},{"name":"dataEnd","nativeSrc":"7221:7:53","nodeType":"YulTypedName","src":"7221:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7233:6:53","nodeType":"YulTypedName","src":"7233:6:53","type":""}],"src":"7177:323:53"},{"body":{"nativeSrc":"7554:54:53","nodeType":"YulBlock","src":"7554:54:53","statements":[{"nativeSrc":"7564:38:53","nodeType":"YulAssignment","src":"7564:38:53","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7582:5:53","nodeType":"YulIdentifier","src":"7582:5:53"},{"kind":"number","nativeSrc":"7589:2:53","nodeType":"YulLiteral","src":"7589:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7578:3:53","nodeType":"YulIdentifier","src":"7578:3:53"},"nativeSrc":"7578:14:53","nodeType":"YulFunctionCall","src":"7578:14:53"},{"arguments":[{"kind":"number","nativeSrc":"7598:2:53","nodeType":"YulLiteral","src":"7598:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7594:3:53","nodeType":"YulIdentifier","src":"7594:3:53"},"nativeSrc":"7594:7:53","nodeType":"YulFunctionCall","src":"7594:7:53"}],"functionName":{"name":"and","nativeSrc":"7574:3:53","nodeType":"YulIdentifier","src":"7574:3:53"},"nativeSrc":"7574:28:53","nodeType":"YulFunctionCall","src":"7574:28:53"},"variableNames":[{"name":"result","nativeSrc":"7564:6:53","nodeType":"YulIdentifier","src":"7564:6:53"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7506:102:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7537:5:53","nodeType":"YulTypedName","src":"7537:5:53","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7547:6:53","nodeType":"YulTypedName","src":"7547:6:53","type":""}],"src":"7506:102:53"},{"body":{"nativeSrc":"7642:152:53","nodeType":"YulBlock","src":"7642:152:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7659:1:53","nodeType":"YulLiteral","src":"7659:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7662:77:53","nodeType":"YulLiteral","src":"7662:77:53","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7652:6:53","nodeType":"YulIdentifier","src":"7652:6:53"},"nativeSrc":"7652:88:53","nodeType":"YulFunctionCall","src":"7652:88:53"},"nativeSrc":"7652:88:53","nodeType":"YulExpressionStatement","src":"7652:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7756:1:53","nodeType":"YulLiteral","src":"7756:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"7759:4:53","nodeType":"YulLiteral","src":"7759:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7749:6:53","nodeType":"YulIdentifier","src":"7749:6:53"},"nativeSrc":"7749:15:53","nodeType":"YulFunctionCall","src":"7749:15:53"},"nativeSrc":"7749:15:53","nodeType":"YulExpressionStatement","src":"7749:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7780:1:53","nodeType":"YulLiteral","src":"7780:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7783:4:53","nodeType":"YulLiteral","src":"7783:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7773:6:53","nodeType":"YulIdentifier","src":"7773:6:53"},"nativeSrc":"7773:15:53","nodeType":"YulFunctionCall","src":"7773:15:53"},"nativeSrc":"7773:15:53","nodeType":"YulExpressionStatement","src":"7773:15:53"}]},"name":"panic_error_0x41","nativeSrc":"7614:180:53","nodeType":"YulFunctionDefinition","src":"7614:180:53"},{"body":{"nativeSrc":"7843:238:53","nodeType":"YulBlock","src":"7843:238:53","statements":[{"nativeSrc":"7853:58:53","nodeType":"YulVariableDeclaration","src":"7853:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"7875:6:53","nodeType":"YulIdentifier","src":"7875:6:53"},{"arguments":[{"name":"size","nativeSrc":"7905:4:53","nodeType":"YulIdentifier","src":"7905:4:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7883:21:53","nodeType":"YulIdentifier","src":"7883:21:53"},"nativeSrc":"7883:27:53","nodeType":"YulFunctionCall","src":"7883:27:53"}],"functionName":{"name":"add","nativeSrc":"7871:3:53","nodeType":"YulIdentifier","src":"7871:3:53"},"nativeSrc":"7871:40:53","nodeType":"YulFunctionCall","src":"7871:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"7857:10:53","nodeType":"YulTypedName","src":"7857:10:53","type":""}]},{"body":{"nativeSrc":"8022:22:53","nodeType":"YulBlock","src":"8022:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8024:16:53","nodeType":"YulIdentifier","src":"8024:16:53"},"nativeSrc":"8024:18:53","nodeType":"YulFunctionCall","src":"8024:18:53"},"nativeSrc":"8024:18:53","nodeType":"YulExpressionStatement","src":"8024:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"7965:10:53","nodeType":"YulIdentifier","src":"7965:10:53"},{"kind":"number","nativeSrc":"7977:18:53","nodeType":"YulLiteral","src":"7977:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7962:2:53","nodeType":"YulIdentifier","src":"7962:2:53"},"nativeSrc":"7962:34:53","nodeType":"YulFunctionCall","src":"7962:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8001:10:53","nodeType":"YulIdentifier","src":"8001:10:53"},{"name":"memPtr","nativeSrc":"8013:6:53","nodeType":"YulIdentifier","src":"8013:6:53"}],"functionName":{"name":"lt","nativeSrc":"7998:2:53","nodeType":"YulIdentifier","src":"7998:2:53"},"nativeSrc":"7998:22:53","nodeType":"YulFunctionCall","src":"7998:22:53"}],"functionName":{"name":"or","nativeSrc":"7959:2:53","nodeType":"YulIdentifier","src":"7959:2:53"},"nativeSrc":"7959:62:53","nodeType":"YulFunctionCall","src":"7959:62:53"},"nativeSrc":"7956:88:53","nodeType":"YulIf","src":"7956:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8060:2:53","nodeType":"YulLiteral","src":"8060:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8064:10:53","nodeType":"YulIdentifier","src":"8064:10:53"}],"functionName":{"name":"mstore","nativeSrc":"8053:6:53","nodeType":"YulIdentifier","src":"8053:6:53"},"nativeSrc":"8053:22:53","nodeType":"YulFunctionCall","src":"8053:22:53"},"nativeSrc":"8053:22:53","nodeType":"YulExpressionStatement","src":"8053:22:53"}]},"name":"finalize_allocation","nativeSrc":"7800:281:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7829:6:53","nodeType":"YulTypedName","src":"7829:6:53","type":""},{"name":"size","nativeSrc":"7837:4:53","nodeType":"YulTypedName","src":"7837:4:53","type":""}],"src":"7800:281:53"},{"body":{"nativeSrc":"8128:88:53","nodeType":"YulBlock","src":"8128:88:53","statements":[{"nativeSrc":"8138:30:53","nodeType":"YulAssignment","src":"8138:30:53","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8148:18:53","nodeType":"YulIdentifier","src":"8148:18:53"},"nativeSrc":"8148:20:53","nodeType":"YulFunctionCall","src":"8148:20:53"},"variableNames":[{"name":"memPtr","nativeSrc":"8138:6:53","nodeType":"YulIdentifier","src":"8138:6:53"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8197:6:53","nodeType":"YulIdentifier","src":"8197:6:53"},{"name":"size","nativeSrc":"8205:4:53","nodeType":"YulIdentifier","src":"8205:4:53"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8177:19:53","nodeType":"YulIdentifier","src":"8177:19:53"},"nativeSrc":"8177:33:53","nodeType":"YulFunctionCall","src":"8177:33:53"},"nativeSrc":"8177:33:53","nodeType":"YulExpressionStatement","src":"8177:33:53"}]},"name":"allocate_memory","nativeSrc":"8087:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8112:4:53","nodeType":"YulTypedName","src":"8112:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8121:6:53","nodeType":"YulTypedName","src":"8121:6:53","type":""}],"src":"8087:129:53"},{"body":{"nativeSrc":"8304:229:53","nodeType":"YulBlock","src":"8304:229:53","statements":[{"body":{"nativeSrc":"8409:22:53","nodeType":"YulBlock","src":"8409:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8411:16:53","nodeType":"YulIdentifier","src":"8411:16:53"},"nativeSrc":"8411:18:53","nodeType":"YulFunctionCall","src":"8411:18:53"},"nativeSrc":"8411:18:53","nodeType":"YulExpressionStatement","src":"8411:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8381:6:53","nodeType":"YulIdentifier","src":"8381:6:53"},{"kind":"number","nativeSrc":"8389:18:53","nodeType":"YulLiteral","src":"8389:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8378:2:53","nodeType":"YulIdentifier","src":"8378:2:53"},"nativeSrc":"8378:30:53","nodeType":"YulFunctionCall","src":"8378:30:53"},"nativeSrc":"8375:56:53","nodeType":"YulIf","src":"8375:56:53"},{"nativeSrc":"8441:25:53","nodeType":"YulAssignment","src":"8441:25:53","value":{"arguments":[{"name":"length","nativeSrc":"8453:6:53","nodeType":"YulIdentifier","src":"8453:6:53"},{"kind":"number","nativeSrc":"8461:4:53","nodeType":"YulLiteral","src":"8461:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"8449:3:53","nodeType":"YulIdentifier","src":"8449:3:53"},"nativeSrc":"8449:17:53","nodeType":"YulFunctionCall","src":"8449:17:53"},"variableNames":[{"name":"size","nativeSrc":"8441:4:53","nodeType":"YulIdentifier","src":"8441:4:53"}]},{"nativeSrc":"8503:23:53","nodeType":"YulAssignment","src":"8503:23:53","value":{"arguments":[{"name":"size","nativeSrc":"8515:4:53","nodeType":"YulIdentifier","src":"8515:4:53"},{"kind":"number","nativeSrc":"8521:4:53","nodeType":"YulLiteral","src":"8521:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8511:3:53","nodeType":"YulIdentifier","src":"8511:3:53"},"nativeSrc":"8511:15:53","nodeType":"YulFunctionCall","src":"8511:15:53"},"variableNames":[{"name":"size","nativeSrc":"8503:4:53","nodeType":"YulIdentifier","src":"8503:4:53"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8222:311:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"8288:6:53","nodeType":"YulTypedName","src":"8288:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"8299:4:53","nodeType":"YulTypedName","src":"8299:4:53","type":""}],"src":"8222:311:53"},{"body":{"nativeSrc":"8658:608:53","nodeType":"YulBlock","src":"8658:608:53","statements":[{"nativeSrc":"8668:90:53","nodeType":"YulAssignment","src":"8668:90:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"8750:6:53","nodeType":"YulIdentifier","src":"8750:6:53"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8693:56:53","nodeType":"YulIdentifier","src":"8693:56:53"},"nativeSrc":"8693:64:53","nodeType":"YulFunctionCall","src":"8693:64:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"8677:15:53","nodeType":"YulIdentifier","src":"8677:15:53"},"nativeSrc":"8677:81:53","nodeType":"YulFunctionCall","src":"8677:81:53"},"variableNames":[{"name":"array","nativeSrc":"8668:5:53","nodeType":"YulIdentifier","src":"8668:5:53"}]},{"nativeSrc":"8767:16:53","nodeType":"YulVariableDeclaration","src":"8767:16:53","value":{"name":"array","nativeSrc":"8778:5:53","nodeType":"YulIdentifier","src":"8778:5:53"},"variables":[{"name":"dst","nativeSrc":"8771:3:53","nodeType":"YulTypedName","src":"8771:3:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"8800:5:53","nodeType":"YulIdentifier","src":"8800:5:53"},{"name":"length","nativeSrc":"8807:6:53","nodeType":"YulIdentifier","src":"8807:6:53"}],"functionName":{"name":"mstore","nativeSrc":"8793:6:53","nodeType":"YulIdentifier","src":"8793:6:53"},"nativeSrc":"8793:21:53","nodeType":"YulFunctionCall","src":"8793:21:53"},"nativeSrc":"8793:21:53","nodeType":"YulExpressionStatement","src":"8793:21:53"},{"nativeSrc":"8823:23:53","nodeType":"YulAssignment","src":"8823:23:53","value":{"arguments":[{"name":"array","nativeSrc":"8834:5:53","nodeType":"YulIdentifier","src":"8834:5:53"},{"kind":"number","nativeSrc":"8841:4:53","nodeType":"YulLiteral","src":"8841:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8830:3:53","nodeType":"YulIdentifier","src":"8830:3:53"},"nativeSrc":"8830:16:53","nodeType":"YulFunctionCall","src":"8830:16:53"},"variableNames":[{"name":"dst","nativeSrc":"8823:3:53","nodeType":"YulIdentifier","src":"8823:3:53"}]},{"nativeSrc":"8856:44:53","nodeType":"YulVariableDeclaration","src":"8856:44:53","value":{"arguments":[{"name":"offset","nativeSrc":"8874:6:53","nodeType":"YulIdentifier","src":"8874:6:53"},{"arguments":[{"name":"length","nativeSrc":"8886:6:53","nodeType":"YulIdentifier","src":"8886:6:53"},{"kind":"number","nativeSrc":"8894:4:53","nodeType":"YulLiteral","src":"8894:4:53","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"8882:3:53","nodeType":"YulIdentifier","src":"8882:3:53"},"nativeSrc":"8882:17:53","nodeType":"YulFunctionCall","src":"8882:17:53"}],"functionName":{"name":"add","nativeSrc":"8870:3:53","nodeType":"YulIdentifier","src":"8870:3:53"},"nativeSrc":"8870:30:53","nodeType":"YulFunctionCall","src":"8870:30:53"},"variables":[{"name":"srcEnd","nativeSrc":"8860:6:53","nodeType":"YulTypedName","src":"8860:6:53","type":""}]},{"body":{"nativeSrc":"8928:103:53","nodeType":"YulBlock","src":"8928:103:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"8942:77:53","nodeType":"YulIdentifier","src":"8942:77:53"},"nativeSrc":"8942:79:53","nodeType":"YulFunctionCall","src":"8942:79:53"},"nativeSrc":"8942:79:53","nodeType":"YulExpressionStatement","src":"8942:79:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"8915:6:53","nodeType":"YulIdentifier","src":"8915:6:53"},{"name":"end","nativeSrc":"8923:3:53","nodeType":"YulIdentifier","src":"8923:3:53"}],"functionName":{"name":"gt","nativeSrc":"8912:2:53","nodeType":"YulIdentifier","src":"8912:2:53"},"nativeSrc":"8912:15:53","nodeType":"YulFunctionCall","src":"8912:15:53"},"nativeSrc":"8909:122:53","nodeType":"YulIf","src":"8909:122:53"},{"body":{"nativeSrc":"9116:144:53","nodeType":"YulBlock","src":"9116:144:53","statements":[{"nativeSrc":"9131:21:53","nodeType":"YulVariableDeclaration","src":"9131:21:53","value":{"name":"src","nativeSrc":"9149:3:53","nodeType":"YulIdentifier","src":"9149:3:53"},"variables":[{"name":"elementPos","nativeSrc":"9135:10:53","nodeType":"YulTypedName","src":"9135:10:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"9173:3:53","nodeType":"YulIdentifier","src":"9173:3:53"},{"arguments":[{"name":"elementPos","nativeSrc":"9199:10:53","nodeType":"YulIdentifier","src":"9199:10:53"},{"name":"end","nativeSrc":"9211:3:53","nodeType":"YulIdentifier","src":"9211:3:53"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9178:20:53","nodeType":"YulIdentifier","src":"9178:20:53"},"nativeSrc":"9178:37:53","nodeType":"YulFunctionCall","src":"9178:37:53"}],"functionName":{"name":"mstore","nativeSrc":"9166:6:53","nodeType":"YulIdentifier","src":"9166:6:53"},"nativeSrc":"9166:50:53","nodeType":"YulFunctionCall","src":"9166:50:53"},"nativeSrc":"9166:50:53","nodeType":"YulExpressionStatement","src":"9166:50:53"},{"nativeSrc":"9229:21:53","nodeType":"YulAssignment","src":"9229:21:53","value":{"arguments":[{"name":"dst","nativeSrc":"9240:3:53","nodeType":"YulIdentifier","src":"9240:3:53"},{"kind":"number","nativeSrc":"9245:4:53","nodeType":"YulLiteral","src":"9245:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9236:3:53","nodeType":"YulIdentifier","src":"9236:3:53"},"nativeSrc":"9236:14:53","nodeType":"YulFunctionCall","src":"9236:14:53"},"variableNames":[{"name":"dst","nativeSrc":"9229:3:53","nodeType":"YulIdentifier","src":"9229:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"9069:3:53","nodeType":"YulIdentifier","src":"9069:3:53"},{"name":"srcEnd","nativeSrc":"9074:6:53","nodeType":"YulIdentifier","src":"9074:6:53"}],"functionName":{"name":"lt","nativeSrc":"9066:2:53","nodeType":"YulIdentifier","src":"9066:2:53"},"nativeSrc":"9066:15:53","nodeType":"YulFunctionCall","src":"9066:15:53"},"nativeSrc":"9040:220:53","nodeType":"YulForLoop","post":{"nativeSrc":"9082:25:53","nodeType":"YulBlock","src":"9082:25:53","statements":[{"nativeSrc":"9084:21:53","nodeType":"YulAssignment","src":"9084:21:53","value":{"arguments":[{"name":"src","nativeSrc":"9095:3:53","nodeType":"YulIdentifier","src":"9095:3:53"},{"kind":"number","nativeSrc":"9100:4:53","nodeType":"YulLiteral","src":"9100:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9091:3:53","nodeType":"YulIdentifier","src":"9091:3:53"},"nativeSrc":"9091:14:53","nodeType":"YulFunctionCall","src":"9091:14:53"},"variableNames":[{"name":"src","nativeSrc":"9084:3:53","nodeType":"YulIdentifier","src":"9084:3:53"}]}]},"pre":{"nativeSrc":"9044:21:53","nodeType":"YulBlock","src":"9044:21:53","statements":[{"nativeSrc":"9046:17:53","nodeType":"YulVariableDeclaration","src":"9046:17:53","value":{"name":"offset","nativeSrc":"9057:6:53","nodeType":"YulIdentifier","src":"9057:6:53"},"variables":[{"name":"src","nativeSrc":"9050:3:53","nodeType":"YulTypedName","src":"9050:3:53","type":""}]}]},"src":"9040:220:53"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8556:710:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8628:6:53","nodeType":"YulTypedName","src":"8628:6:53","type":""},{"name":"length","nativeSrc":"8636:6:53","nodeType":"YulTypedName","src":"8636:6:53","type":""},{"name":"end","nativeSrc":"8644:3:53","nodeType":"YulTypedName","src":"8644:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8652:5:53","nodeType":"YulTypedName","src":"8652:5:53","type":""}],"src":"8556:710:53"},{"body":{"nativeSrc":"9366:293:53","nodeType":"YulBlock","src":"9366:293:53","statements":[{"body":{"nativeSrc":"9415:83:53","nodeType":"YulBlock","src":"9415:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9417:77:53","nodeType":"YulIdentifier","src":"9417:77:53"},"nativeSrc":"9417:79:53","nodeType":"YulFunctionCall","src":"9417:79:53"},"nativeSrc":"9417:79:53","nodeType":"YulExpressionStatement","src":"9417:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9394:6:53","nodeType":"YulIdentifier","src":"9394:6:53"},{"kind":"number","nativeSrc":"9402:4:53","nodeType":"YulLiteral","src":"9402:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9390:3:53","nodeType":"YulIdentifier","src":"9390:3:53"},"nativeSrc":"9390:17:53","nodeType":"YulFunctionCall","src":"9390:17:53"},{"name":"end","nativeSrc":"9409:3:53","nodeType":"YulIdentifier","src":"9409:3:53"}],"functionName":{"name":"slt","nativeSrc":"9386:3:53","nodeType":"YulIdentifier","src":"9386:3:53"},"nativeSrc":"9386:27:53","nodeType":"YulFunctionCall","src":"9386:27:53"}],"functionName":{"name":"iszero","nativeSrc":"9379:6:53","nodeType":"YulIdentifier","src":"9379:6:53"},"nativeSrc":"9379:35:53","nodeType":"YulFunctionCall","src":"9379:35:53"},"nativeSrc":"9376:122:53","nodeType":"YulIf","src":"9376:122:53"},{"nativeSrc":"9507:34:53","nodeType":"YulVariableDeclaration","src":"9507:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"9534:6:53","nodeType":"YulIdentifier","src":"9534:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"9521:12:53","nodeType":"YulIdentifier","src":"9521:12:53"},"nativeSrc":"9521:20:53","nodeType":"YulFunctionCall","src":"9521:20:53"},"variables":[{"name":"length","nativeSrc":"9511:6:53","nodeType":"YulTypedName","src":"9511:6:53","type":""}]},{"nativeSrc":"9550:103:53","nodeType":"YulAssignment","src":"9550:103:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9626:6:53","nodeType":"YulIdentifier","src":"9626:6:53"},{"kind":"number","nativeSrc":"9634:4:53","nodeType":"YulLiteral","src":"9634:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9622:3:53","nodeType":"YulIdentifier","src":"9622:3:53"},"nativeSrc":"9622:17:53","nodeType":"YulFunctionCall","src":"9622:17:53"},{"name":"length","nativeSrc":"9641:6:53","nodeType":"YulIdentifier","src":"9641:6:53"},{"name":"end","nativeSrc":"9649:3:53","nodeType":"YulIdentifier","src":"9649:3:53"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9559:62:53","nodeType":"YulIdentifier","src":"9559:62:53"},"nativeSrc":"9559:94:53","nodeType":"YulFunctionCall","src":"9559:94:53"},"variableNames":[{"name":"array","nativeSrc":"9550:5:53","nodeType":"YulIdentifier","src":"9550:5:53"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9289:370:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9344:6:53","nodeType":"YulTypedName","src":"9344:6:53","type":""},{"name":"end","nativeSrc":"9352:3:53","nodeType":"YulTypedName","src":"9352:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9360:5:53","nodeType":"YulTypedName","src":"9360:5:53","type":""}],"src":"9289:370:53"},{"body":{"nativeSrc":"9756:448:53","nodeType":"YulBlock","src":"9756:448:53","statements":[{"body":{"nativeSrc":"9802:83:53","nodeType":"YulBlock","src":"9802:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9804:77:53","nodeType":"YulIdentifier","src":"9804:77:53"},"nativeSrc":"9804:79:53","nodeType":"YulFunctionCall","src":"9804:79:53"},"nativeSrc":"9804:79:53","nodeType":"YulExpressionStatement","src":"9804:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9777:7:53","nodeType":"YulIdentifier","src":"9777:7:53"},{"name":"headStart","nativeSrc":"9786:9:53","nodeType":"YulIdentifier","src":"9786:9:53"}],"functionName":{"name":"sub","nativeSrc":"9773:3:53","nodeType":"YulIdentifier","src":"9773:3:53"},"nativeSrc":"9773:23:53","nodeType":"YulFunctionCall","src":"9773:23:53"},{"kind":"number","nativeSrc":"9798:2:53","nodeType":"YulLiteral","src":"9798:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9769:3:53","nodeType":"YulIdentifier","src":"9769:3:53"},"nativeSrc":"9769:32:53","nodeType":"YulFunctionCall","src":"9769:32:53"},"nativeSrc":"9766:119:53","nodeType":"YulIf","src":"9766:119:53"},{"nativeSrc":"9895:302:53","nodeType":"YulBlock","src":"9895:302:53","statements":[{"nativeSrc":"9910:45:53","nodeType":"YulVariableDeclaration","src":"9910:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9941:9:53","nodeType":"YulIdentifier","src":"9941:9:53"},{"kind":"number","nativeSrc":"9952:1:53","nodeType":"YulLiteral","src":"9952:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9937:3:53","nodeType":"YulIdentifier","src":"9937:3:53"},"nativeSrc":"9937:17:53","nodeType":"YulFunctionCall","src":"9937:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"9924:12:53","nodeType":"YulIdentifier","src":"9924:12:53"},"nativeSrc":"9924:31:53","nodeType":"YulFunctionCall","src":"9924:31:53"},"variables":[{"name":"offset","nativeSrc":"9914:6:53","nodeType":"YulTypedName","src":"9914:6:53","type":""}]},{"body":{"nativeSrc":"10002:83:53","nodeType":"YulBlock","src":"10002:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10004:77:53","nodeType":"YulIdentifier","src":"10004:77:53"},"nativeSrc":"10004:79:53","nodeType":"YulFunctionCall","src":"10004:79:53"},"nativeSrc":"10004:79:53","nodeType":"YulExpressionStatement","src":"10004:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9974:6:53","nodeType":"YulIdentifier","src":"9974:6:53"},{"kind":"number","nativeSrc":"9982:18:53","nodeType":"YulLiteral","src":"9982:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9971:2:53","nodeType":"YulIdentifier","src":"9971:2:53"},"nativeSrc":"9971:30:53","nodeType":"YulFunctionCall","src":"9971:30:53"},"nativeSrc":"9968:117:53","nodeType":"YulIf","src":"9968:117:53"},{"nativeSrc":"10099:88:53","nodeType":"YulAssignment","src":"10099:88:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10159:9:53","nodeType":"YulIdentifier","src":"10159:9:53"},{"name":"offset","nativeSrc":"10170:6:53","nodeType":"YulIdentifier","src":"10170:6:53"}],"functionName":{"name":"add","nativeSrc":"10155:3:53","nodeType":"YulIdentifier","src":"10155:3:53"},"nativeSrc":"10155:22:53","nodeType":"YulFunctionCall","src":"10155:22:53"},{"name":"dataEnd","nativeSrc":"10179:7:53","nodeType":"YulIdentifier","src":"10179:7:53"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10109:45:53","nodeType":"YulIdentifier","src":"10109:45:53"},"nativeSrc":"10109:78:53","nodeType":"YulFunctionCall","src":"10109:78:53"},"variableNames":[{"name":"value0","nativeSrc":"10099:6:53","nodeType":"YulIdentifier","src":"10099:6:53"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9665:539:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9726:9:53","nodeType":"YulTypedName","src":"9726:9:53","type":""},{"name":"dataEnd","nativeSrc":"9737:7:53","nodeType":"YulTypedName","src":"9737:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9749:6:53","nodeType":"YulTypedName","src":"9749:6:53","type":""}],"src":"9665:539:53"},{"body":{"nativeSrc":"10263:51:53","nodeType":"YulBlock","src":"10263:51:53","statements":[{"nativeSrc":"10273:35:53","nodeType":"YulAssignment","src":"10273:35:53","value":{"arguments":[{"name":"value","nativeSrc":"10302:5:53","nodeType":"YulIdentifier","src":"10302:5:53"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"10284:17:53","nodeType":"YulIdentifier","src":"10284:17:53"},"nativeSrc":"10284:24:53","nodeType":"YulFunctionCall","src":"10284:24:53"},"variableNames":[{"name":"cleaned","nativeSrc":"10273:7:53","nodeType":"YulIdentifier","src":"10273:7:53"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"10210:104:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10245:5:53","nodeType":"YulTypedName","src":"10245:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10255:7:53","nodeType":"YulTypedName","src":"10255:7:53","type":""}],"src":"10210:104:53"},{"body":{"nativeSrc":"10371:87:53","nodeType":"YulBlock","src":"10371:87:53","statements":[{"body":{"nativeSrc":"10436:16:53","nodeType":"YulBlock","src":"10436:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10445:1:53","nodeType":"YulLiteral","src":"10445:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10448:1:53","nodeType":"YulLiteral","src":"10448:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10438:6:53","nodeType":"YulIdentifier","src":"10438:6:53"},"nativeSrc":"10438:12:53","nodeType":"YulFunctionCall","src":"10438:12:53"},"nativeSrc":"10438:12:53","nodeType":"YulExpressionStatement","src":"10438:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10394:5:53","nodeType":"YulIdentifier","src":"10394:5:53"},{"arguments":[{"name":"value","nativeSrc":"10427:5:53","nodeType":"YulIdentifier","src":"10427:5:53"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"10401:25:53","nodeType":"YulIdentifier","src":"10401:25:53"},"nativeSrc":"10401:32:53","nodeType":"YulFunctionCall","src":"10401:32:53"}],"functionName":{"name":"eq","nativeSrc":"10391:2:53","nodeType":"YulIdentifier","src":"10391:2:53"},"nativeSrc":"10391:43:53","nodeType":"YulFunctionCall","src":"10391:43:53"}],"functionName":{"name":"iszero","nativeSrc":"10384:6:53","nodeType":"YulIdentifier","src":"10384:6:53"},"nativeSrc":"10384:51:53","nodeType":"YulFunctionCall","src":"10384:51:53"},"nativeSrc":"10381:71:53","nodeType":"YulIf","src":"10381:71:53"}]},"name":"validator_revert_t_address_payable","nativeSrc":"10320:138:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10364:5:53","nodeType":"YulTypedName","src":"10364:5:53","type":""}],"src":"10320:138:53"},{"body":{"nativeSrc":"10524:95:53","nodeType":"YulBlock","src":"10524:95:53","statements":[{"nativeSrc":"10534:29:53","nodeType":"YulAssignment","src":"10534:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10556:6:53","nodeType":"YulIdentifier","src":"10556:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10543:12:53","nodeType":"YulIdentifier","src":"10543:12:53"},"nativeSrc":"10543:20:53","nodeType":"YulFunctionCall","src":"10543:20:53"},"variableNames":[{"name":"value","nativeSrc":"10534:5:53","nodeType":"YulIdentifier","src":"10534:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10607:5:53","nodeType":"YulIdentifier","src":"10607:5:53"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"10572:34:53","nodeType":"YulIdentifier","src":"10572:34:53"},"nativeSrc":"10572:41:53","nodeType":"YulFunctionCall","src":"10572:41:53"},"nativeSrc":"10572:41:53","nodeType":"YulExpressionStatement","src":"10572:41:53"}]},"name":"abi_decode_t_address_payable","nativeSrc":"10464:155:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10502:6:53","nodeType":"YulTypedName","src":"10502:6:53","type":""},{"name":"end","nativeSrc":"10510:3:53","nodeType":"YulTypedName","src":"10510:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10518:5:53","nodeType":"YulTypedName","src":"10518:5:53","type":""}],"src":"10464:155:53"},{"body":{"nativeSrc":"10670:32:53","nodeType":"YulBlock","src":"10670:32:53","statements":[{"nativeSrc":"10680:16:53","nodeType":"YulAssignment","src":"10680:16:53","value":{"name":"value","nativeSrc":"10691:5:53","nodeType":"YulIdentifier","src":"10691:5:53"},"variableNames":[{"name":"cleaned","nativeSrc":"10680:7:53","nodeType":"YulIdentifier","src":"10680:7:53"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"10625:77:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10652:5:53","nodeType":"YulTypedName","src":"10652:5:53","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10662:7:53","nodeType":"YulTypedName","src":"10662:7:53","type":""}],"src":"10625:77:53"},{"body":{"nativeSrc":"10751:79:53","nodeType":"YulBlock","src":"10751:79:53","statements":[{"body":{"nativeSrc":"10808:16:53","nodeType":"YulBlock","src":"10808:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10817:1:53","nodeType":"YulLiteral","src":"10817:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10820:1:53","nodeType":"YulLiteral","src":"10820:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10810:6:53","nodeType":"YulIdentifier","src":"10810:6:53"},"nativeSrc":"10810:12:53","nodeType":"YulFunctionCall","src":"10810:12:53"},"nativeSrc":"10810:12:53","nodeType":"YulExpressionStatement","src":"10810:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10774:5:53","nodeType":"YulIdentifier","src":"10774:5:53"},{"arguments":[{"name":"value","nativeSrc":"10799:5:53","nodeType":"YulIdentifier","src":"10799:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"10781:17:53","nodeType":"YulIdentifier","src":"10781:17:53"},"nativeSrc":"10781:24:53","nodeType":"YulFunctionCall","src":"10781:24:53"}],"functionName":{"name":"eq","nativeSrc":"10771:2:53","nodeType":"YulIdentifier","src":"10771:2:53"},"nativeSrc":"10771:35:53","nodeType":"YulFunctionCall","src":"10771:35:53"}],"functionName":{"name":"iszero","nativeSrc":"10764:6:53","nodeType":"YulIdentifier","src":"10764:6:53"},"nativeSrc":"10764:43:53","nodeType":"YulFunctionCall","src":"10764:43:53"},"nativeSrc":"10761:63:53","nodeType":"YulIf","src":"10761:63:53"}]},"name":"validator_revert_t_bytes32","nativeSrc":"10708:122:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10744:5:53","nodeType":"YulTypedName","src":"10744:5:53","type":""}],"src":"10708:122:53"},{"body":{"nativeSrc":"10888:87:53","nodeType":"YulBlock","src":"10888:87:53","statements":[{"nativeSrc":"10898:29:53","nodeType":"YulAssignment","src":"10898:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"10920:6:53","nodeType":"YulIdentifier","src":"10920:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10907:12:53","nodeType":"YulIdentifier","src":"10907:12:53"},"nativeSrc":"10907:20:53","nodeType":"YulFunctionCall","src":"10907:20:53"},"variableNames":[{"name":"value","nativeSrc":"10898:5:53","nodeType":"YulIdentifier","src":"10898:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10963:5:53","nodeType":"YulIdentifier","src":"10963:5:53"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"10936:26:53","nodeType":"YulIdentifier","src":"10936:26:53"},"nativeSrc":"10936:33:53","nodeType":"YulFunctionCall","src":"10936:33:53"},"nativeSrc":"10936:33:53","nodeType":"YulExpressionStatement","src":"10936:33:53"}]},"name":"abi_decode_t_bytes32","nativeSrc":"10836:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10866:6:53","nodeType":"YulTypedName","src":"10866:6:53","type":""},{"name":"end","nativeSrc":"10874:3:53","nodeType":"YulTypedName","src":"10874:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10882:5:53","nodeType":"YulTypedName","src":"10882:5:53","type":""}],"src":"10836:139:53"},{"body":{"nativeSrc":"11070:28:53","nodeType":"YulBlock","src":"11070:28:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11087:1:53","nodeType":"YulLiteral","src":"11087:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11090:1:53","nodeType":"YulLiteral","src":"11090:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11080:6:53","nodeType":"YulIdentifier","src":"11080:6:53"},"nativeSrc":"11080:12:53","nodeType":"YulFunctionCall","src":"11080:12:53"},"nativeSrc":"11080:12:53","nodeType":"YulExpressionStatement","src":"11080:12:53"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10981:117:53","nodeType":"YulFunctionDefinition","src":"10981:117:53"},{"body":{"nativeSrc":"11170:241:53","nodeType":"YulBlock","src":"11170:241:53","statements":[{"body":{"nativeSrc":"11275:22:53","nodeType":"YulBlock","src":"11275:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11277:16:53","nodeType":"YulIdentifier","src":"11277:16:53"},"nativeSrc":"11277:18:53","nodeType":"YulFunctionCall","src":"11277:18:53"},"nativeSrc":"11277:18:53","nodeType":"YulExpressionStatement","src":"11277:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"11247:6:53","nodeType":"YulIdentifier","src":"11247:6:53"},{"kind":"number","nativeSrc":"11255:18:53","nodeType":"YulLiteral","src":"11255:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11244:2:53","nodeType":"YulIdentifier","src":"11244:2:53"},"nativeSrc":"11244:30:53","nodeType":"YulFunctionCall","src":"11244:30:53"},"nativeSrc":"11241:56:53","nodeType":"YulIf","src":"11241:56:53"},{"nativeSrc":"11307:37:53","nodeType":"YulAssignment","src":"11307:37:53","value":{"arguments":[{"name":"length","nativeSrc":"11337:6:53","nodeType":"YulIdentifier","src":"11337:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11315:21:53","nodeType":"YulIdentifier","src":"11315:21:53"},"nativeSrc":"11315:29:53","nodeType":"YulFunctionCall","src":"11315:29:53"},"variableNames":[{"name":"size","nativeSrc":"11307:4:53","nodeType":"YulIdentifier","src":"11307:4:53"}]},{"nativeSrc":"11381:23:53","nodeType":"YulAssignment","src":"11381:23:53","value":{"arguments":[{"name":"size","nativeSrc":"11393:4:53","nodeType":"YulIdentifier","src":"11393:4:53"},{"kind":"number","nativeSrc":"11399:4:53","nodeType":"YulLiteral","src":"11399:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11389:3:53","nodeType":"YulIdentifier","src":"11389:3:53"},"nativeSrc":"11389:15:53","nodeType":"YulFunctionCall","src":"11389:15:53"},"variableNames":[{"name":"size","nativeSrc":"11381:4:53","nodeType":"YulIdentifier","src":"11381:4:53"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11104:307:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"11154:6:53","nodeType":"YulTypedName","src":"11154:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"11165:4:53","nodeType":"YulTypedName","src":"11165:4:53","type":""}],"src":"11104:307:53"},{"body":{"nativeSrc":"11481:84:53","nodeType":"YulBlock","src":"11481:84:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11505:3:53","nodeType":"YulIdentifier","src":"11505:3:53"},{"name":"src","nativeSrc":"11510:3:53","nodeType":"YulIdentifier","src":"11510:3:53"},{"name":"length","nativeSrc":"11515:6:53","nodeType":"YulIdentifier","src":"11515:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"11492:12:53","nodeType":"YulIdentifier","src":"11492:12:53"},"nativeSrc":"11492:30:53","nodeType":"YulFunctionCall","src":"11492:30:53"},"nativeSrc":"11492:30:53","nodeType":"YulExpressionStatement","src":"11492:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11542:3:53","nodeType":"YulIdentifier","src":"11542:3:53"},{"name":"length","nativeSrc":"11547:6:53","nodeType":"YulIdentifier","src":"11547:6:53"}],"functionName":{"name":"add","nativeSrc":"11538:3:53","nodeType":"YulIdentifier","src":"11538:3:53"},"nativeSrc":"11538:16:53","nodeType":"YulFunctionCall","src":"11538:16:53"},{"kind":"number","nativeSrc":"11556:1:53","nodeType":"YulLiteral","src":"11556:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11531:6:53","nodeType":"YulIdentifier","src":"11531:6:53"},"nativeSrc":"11531:27:53","nodeType":"YulFunctionCall","src":"11531:27:53"},"nativeSrc":"11531:27:53","nodeType":"YulExpressionStatement","src":"11531:27:53"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11417:148:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11463:3:53","nodeType":"YulTypedName","src":"11463:3:53","type":""},{"name":"dst","nativeSrc":"11468:3:53","nodeType":"YulTypedName","src":"11468:3:53","type":""},{"name":"length","nativeSrc":"11473:6:53","nodeType":"YulTypedName","src":"11473:6:53","type":""}],"src":"11417:148:53"},{"body":{"nativeSrc":"11654:340:53","nodeType":"YulBlock","src":"11654:340:53","statements":[{"nativeSrc":"11664:74:53","nodeType":"YulAssignment","src":"11664:74:53","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11730:6:53","nodeType":"YulIdentifier","src":"11730:6:53"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11689:40:53","nodeType":"YulIdentifier","src":"11689:40:53"},"nativeSrc":"11689:48:53","nodeType":"YulFunctionCall","src":"11689:48:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"11673:15:53","nodeType":"YulIdentifier","src":"11673:15:53"},"nativeSrc":"11673:65:53","nodeType":"YulFunctionCall","src":"11673:65:53"},"variableNames":[{"name":"array","nativeSrc":"11664:5:53","nodeType":"YulIdentifier","src":"11664:5:53"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11754:5:53","nodeType":"YulIdentifier","src":"11754:5:53"},{"name":"length","nativeSrc":"11761:6:53","nodeType":"YulIdentifier","src":"11761:6:53"}],"functionName":{"name":"mstore","nativeSrc":"11747:6:53","nodeType":"YulIdentifier","src":"11747:6:53"},"nativeSrc":"11747:21:53","nodeType":"YulFunctionCall","src":"11747:21:53"},"nativeSrc":"11747:21:53","nodeType":"YulExpressionStatement","src":"11747:21:53"},{"nativeSrc":"11777:27:53","nodeType":"YulVariableDeclaration","src":"11777:27:53","value":{"arguments":[{"name":"array","nativeSrc":"11792:5:53","nodeType":"YulIdentifier","src":"11792:5:53"},{"kind":"number","nativeSrc":"11799:4:53","nodeType":"YulLiteral","src":"11799:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11788:3:53","nodeType":"YulIdentifier","src":"11788:3:53"},"nativeSrc":"11788:16:53","nodeType":"YulFunctionCall","src":"11788:16:53"},"variables":[{"name":"dst","nativeSrc":"11781:3:53","nodeType":"YulTypedName","src":"11781:3:53","type":""}]},{"body":{"nativeSrc":"11842:83:53","nodeType":"YulBlock","src":"11842:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"11844:77:53","nodeType":"YulIdentifier","src":"11844:77:53"},"nativeSrc":"11844:79:53","nodeType":"YulFunctionCall","src":"11844:79:53"},"nativeSrc":"11844:79:53","nodeType":"YulExpressionStatement","src":"11844:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11823:3:53","nodeType":"YulIdentifier","src":"11823:3:53"},{"name":"length","nativeSrc":"11828:6:53","nodeType":"YulIdentifier","src":"11828:6:53"}],"functionName":{"name":"add","nativeSrc":"11819:3:53","nodeType":"YulIdentifier","src":"11819:3:53"},"nativeSrc":"11819:16:53","nodeType":"YulFunctionCall","src":"11819:16:53"},{"name":"end","nativeSrc":"11837:3:53","nodeType":"YulIdentifier","src":"11837:3:53"}],"functionName":{"name":"gt","nativeSrc":"11816:2:53","nodeType":"YulIdentifier","src":"11816:2:53"},"nativeSrc":"11816:25:53","nodeType":"YulFunctionCall","src":"11816:25:53"},"nativeSrc":"11813:112:53","nodeType":"YulIf","src":"11813:112:53"},{"expression":{"arguments":[{"name":"src","nativeSrc":"11971:3:53","nodeType":"YulIdentifier","src":"11971:3:53"},{"name":"dst","nativeSrc":"11976:3:53","nodeType":"YulIdentifier","src":"11976:3:53"},{"name":"length","nativeSrc":"11981:6:53","nodeType":"YulIdentifier","src":"11981:6:53"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11934:36:53","nodeType":"YulIdentifier","src":"11934:36:53"},"nativeSrc":"11934:54:53","nodeType":"YulFunctionCall","src":"11934:54:53"},"nativeSrc":"11934:54:53","nodeType":"YulExpressionStatement","src":"11934:54:53"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"11571:423:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11627:3:53","nodeType":"YulTypedName","src":"11627:3:53","type":""},{"name":"length","nativeSrc":"11632:6:53","nodeType":"YulTypedName","src":"11632:6:53","type":""},{"name":"end","nativeSrc":"11640:3:53","nodeType":"YulTypedName","src":"11640:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11648:5:53","nodeType":"YulTypedName","src":"11648:5:53","type":""}],"src":"11571:423:53"},{"body":{"nativeSrc":"12074:277:53","nodeType":"YulBlock","src":"12074:277:53","statements":[{"body":{"nativeSrc":"12123:83:53","nodeType":"YulBlock","src":"12123:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"12125:77:53","nodeType":"YulIdentifier","src":"12125:77:53"},"nativeSrc":"12125:79:53","nodeType":"YulFunctionCall","src":"12125:79:53"},"nativeSrc":"12125:79:53","nodeType":"YulExpressionStatement","src":"12125:79:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12102:6:53","nodeType":"YulIdentifier","src":"12102:6:53"},{"kind":"number","nativeSrc":"12110:4:53","nodeType":"YulLiteral","src":"12110:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12098:3:53","nodeType":"YulIdentifier","src":"12098:3:53"},"nativeSrc":"12098:17:53","nodeType":"YulFunctionCall","src":"12098:17:53"},{"name":"end","nativeSrc":"12117:3:53","nodeType":"YulIdentifier","src":"12117:3:53"}],"functionName":{"name":"slt","nativeSrc":"12094:3:53","nodeType":"YulIdentifier","src":"12094:3:53"},"nativeSrc":"12094:27:53","nodeType":"YulFunctionCall","src":"12094:27:53"}],"functionName":{"name":"iszero","nativeSrc":"12087:6:53","nodeType":"YulIdentifier","src":"12087:6:53"},"nativeSrc":"12087:35:53","nodeType":"YulFunctionCall","src":"12087:35:53"},"nativeSrc":"12084:122:53","nodeType":"YulIf","src":"12084:122:53"},{"nativeSrc":"12215:34:53","nodeType":"YulVariableDeclaration","src":"12215:34:53","value":{"arguments":[{"name":"offset","nativeSrc":"12242:6:53","nodeType":"YulIdentifier","src":"12242:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12229:12:53","nodeType":"YulIdentifier","src":"12229:12:53"},"nativeSrc":"12229:20:53","nodeType":"YulFunctionCall","src":"12229:20:53"},"variables":[{"name":"length","nativeSrc":"12219:6:53","nodeType":"YulTypedName","src":"12219:6:53","type":""}]},{"nativeSrc":"12258:87:53","nodeType":"YulAssignment","src":"12258:87:53","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12318:6:53","nodeType":"YulIdentifier","src":"12318:6:53"},{"kind":"number","nativeSrc":"12326:4:53","nodeType":"YulLiteral","src":"12326:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12314:3:53","nodeType":"YulIdentifier","src":"12314:3:53"},"nativeSrc":"12314:17:53","nodeType":"YulFunctionCall","src":"12314:17:53"},{"name":"length","nativeSrc":"12333:6:53","nodeType":"YulIdentifier","src":"12333:6:53"},{"name":"end","nativeSrc":"12341:3:53","nodeType":"YulIdentifier","src":"12341:3:53"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"12267:46:53","nodeType":"YulIdentifier","src":"12267:46:53"},"nativeSrc":"12267:78:53","nodeType":"YulFunctionCall","src":"12267:78:53"},"variableNames":[{"name":"array","nativeSrc":"12258:5:53","nodeType":"YulIdentifier","src":"12258:5:53"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"12013:338:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12052:6:53","nodeType":"YulTypedName","src":"12052:6:53","type":""},{"name":"end","nativeSrc":"12060:3:53","nodeType":"YulTypedName","src":"12060:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"12068:5:53","nodeType":"YulTypedName","src":"12068:5:53","type":""}],"src":"12013:338:53"},{"body":{"nativeSrc":"12474:696:53","nodeType":"YulBlock","src":"12474:696:53","statements":[{"body":{"nativeSrc":"12520:83:53","nodeType":"YulBlock","src":"12520:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12522:77:53","nodeType":"YulIdentifier","src":"12522:77:53"},"nativeSrc":"12522:79:53","nodeType":"YulFunctionCall","src":"12522:79:53"},"nativeSrc":"12522:79:53","nodeType":"YulExpressionStatement","src":"12522:79:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12495:7:53","nodeType":"YulIdentifier","src":"12495:7:53"},{"name":"headStart","nativeSrc":"12504:9:53","nodeType":"YulIdentifier","src":"12504:9:53"}],"functionName":{"name":"sub","nativeSrc":"12491:3:53","nodeType":"YulIdentifier","src":"12491:3:53"},"nativeSrc":"12491:23:53","nodeType":"YulFunctionCall","src":"12491:23:53"},{"kind":"number","nativeSrc":"12516:2:53","nodeType":"YulLiteral","src":"12516:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"12487:3:53","nodeType":"YulIdentifier","src":"12487:3:53"},"nativeSrc":"12487:32:53","nodeType":"YulFunctionCall","src":"12487:32:53"},"nativeSrc":"12484:119:53","nodeType":"YulIf","src":"12484:119:53"},{"nativeSrc":"12613:125:53","nodeType":"YulBlock","src":"12613:125:53","statements":[{"nativeSrc":"12628:15:53","nodeType":"YulVariableDeclaration","src":"12628:15:53","value":{"kind":"number","nativeSrc":"12642:1:53","nodeType":"YulLiteral","src":"12642:1:53","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12632:6:53","nodeType":"YulTypedName","src":"12632:6:53","type":""}]},{"nativeSrc":"12657:71:53","nodeType":"YulAssignment","src":"12657:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12700:9:53","nodeType":"YulIdentifier","src":"12700:9:53"},{"name":"offset","nativeSrc":"12711:6:53","nodeType":"YulIdentifier","src":"12711:6:53"}],"functionName":{"name":"add","nativeSrc":"12696:3:53","nodeType":"YulIdentifier","src":"12696:3:53"},"nativeSrc":"12696:22:53","nodeType":"YulFunctionCall","src":"12696:22:53"},{"name":"dataEnd","nativeSrc":"12720:7:53","nodeType":"YulIdentifier","src":"12720:7:53"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12667:28:53","nodeType":"YulIdentifier","src":"12667:28:53"},"nativeSrc":"12667:61:53","nodeType":"YulFunctionCall","src":"12667:61:53"},"variableNames":[{"name":"value0","nativeSrc":"12657:6:53","nodeType":"YulIdentifier","src":"12657:6:53"}]}]},{"nativeSrc":"12748:118:53","nodeType":"YulBlock","src":"12748:118:53","statements":[{"nativeSrc":"12763:16:53","nodeType":"YulVariableDeclaration","src":"12763:16:53","value":{"kind":"number","nativeSrc":"12777:2:53","nodeType":"YulLiteral","src":"12777:2:53","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"12767:6:53","nodeType":"YulTypedName","src":"12767:6:53","type":""}]},{"nativeSrc":"12793:63:53","nodeType":"YulAssignment","src":"12793:63:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12828:9:53","nodeType":"YulIdentifier","src":"12828:9:53"},{"name":"offset","nativeSrc":"12839:6:53","nodeType":"YulIdentifier","src":"12839:6:53"}],"functionName":{"name":"add","nativeSrc":"12824:3:53","nodeType":"YulIdentifier","src":"12824:3:53"},"nativeSrc":"12824:22:53","nodeType":"YulFunctionCall","src":"12824:22:53"},{"name":"dataEnd","nativeSrc":"12848:7:53","nodeType":"YulIdentifier","src":"12848:7:53"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"12803:20:53","nodeType":"YulIdentifier","src":"12803:20:53"},"nativeSrc":"12803:53:53","nodeType":"YulFunctionCall","src":"12803:53:53"},"variableNames":[{"name":"value1","nativeSrc":"12793:6:53","nodeType":"YulIdentifier","src":"12793:6:53"}]}]},{"nativeSrc":"12876:287:53","nodeType":"YulBlock","src":"12876:287:53","statements":[{"nativeSrc":"12891:46:53","nodeType":"YulVariableDeclaration","src":"12891:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12922:9:53","nodeType":"YulIdentifier","src":"12922:9:53"},{"kind":"number","nativeSrc":"12933:2:53","nodeType":"YulLiteral","src":"12933:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12918:3:53","nodeType":"YulIdentifier","src":"12918:3:53"},"nativeSrc":"12918:18:53","nodeType":"YulFunctionCall","src":"12918:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"12905:12:53","nodeType":"YulIdentifier","src":"12905:12:53"},"nativeSrc":"12905:32:53","nodeType":"YulFunctionCall","src":"12905:32:53"},"variables":[{"name":"offset","nativeSrc":"12895:6:53","nodeType":"YulTypedName","src":"12895:6:53","type":""}]},{"body":{"nativeSrc":"12984:83:53","nodeType":"YulBlock","src":"12984:83:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12986:77:53","nodeType":"YulIdentifier","src":"12986:77:53"},"nativeSrc":"12986:79:53","nodeType":"YulFunctionCall","src":"12986:79:53"},"nativeSrc":"12986:79:53","nodeType":"YulExpressionStatement","src":"12986:79:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12956:6:53","nodeType":"YulIdentifier","src":"12956:6:53"},{"kind":"number","nativeSrc":"12964:18:53","nodeType":"YulLiteral","src":"12964:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12953:2:53","nodeType":"YulIdentifier","src":"12953:2:53"},"nativeSrc":"12953:30:53","nodeType":"YulFunctionCall","src":"12953:30:53"},"nativeSrc":"12950:117:53","nodeType":"YulIf","src":"12950:117:53"},{"nativeSrc":"13081:72:53","nodeType":"YulAssignment","src":"13081:72:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13125:9:53","nodeType":"YulIdentifier","src":"13125:9:53"},{"name":"offset","nativeSrc":"13136:6:53","nodeType":"YulIdentifier","src":"13136:6:53"}],"functionName":{"name":"add","nativeSrc":"13121:3:53","nodeType":"YulIdentifier","src":"13121:3:53"},"nativeSrc":"13121:22:53","nodeType":"YulFunctionCall","src":"13121:22:53"},{"name":"dataEnd","nativeSrc":"13145:7:53","nodeType":"YulIdentifier","src":"13145:7:53"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"13091:29:53","nodeType":"YulIdentifier","src":"13091:29:53"},"nativeSrc":"13091:62:53","nodeType":"YulFunctionCall","src":"13091:62:53"},"variableNames":[{"name":"value2","nativeSrc":"13081:6:53","nodeType":"YulIdentifier","src":"13081:6:53"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr","nativeSrc":"12357:813:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12428:9:53","nodeType":"YulTypedName","src":"12428:9:53","type":""},{"name":"dataEnd","nativeSrc":"12439:7:53","nodeType":"YulTypedName","src":"12439:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12451:6:53","nodeType":"YulTypedName","src":"12451:6:53","type":""},{"name":"value1","nativeSrc":"12459:6:53","nodeType":"YulTypedName","src":"12459:6:53","type":""},{"name":"value2","nativeSrc":"12467:6:53","nodeType":"YulTypedName","src":"12467:6:53","type":""}],"src":"12357:813:53"},{"body":{"nativeSrc":"13241:53:53","nodeType":"YulBlock","src":"13241:53:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13258:3:53","nodeType":"YulIdentifier","src":"13258:3:53"},{"arguments":[{"name":"value","nativeSrc":"13281:5:53","nodeType":"YulIdentifier","src":"13281:5:53"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"13263:17:53","nodeType":"YulIdentifier","src":"13263:17:53"},"nativeSrc":"13263:24:53","nodeType":"YulFunctionCall","src":"13263:24:53"}],"functionName":{"name":"mstore","nativeSrc":"13251:6:53","nodeType":"YulIdentifier","src":"13251:6:53"},"nativeSrc":"13251:37:53","nodeType":"YulFunctionCall","src":"13251:37:53"},"nativeSrc":"13251:37:53","nodeType":"YulExpressionStatement","src":"13251:37:53"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"13176:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13229:5:53","nodeType":"YulTypedName","src":"13229:5:53","type":""},{"name":"pos","nativeSrc":"13236:3:53","nodeType":"YulTypedName","src":"13236:3:53","type":""}],"src":"13176:118:53"},{"body":{"nativeSrc":"13358:40:53","nodeType":"YulBlock","src":"13358:40:53","statements":[{"nativeSrc":"13369:22:53","nodeType":"YulAssignment","src":"13369:22:53","value":{"arguments":[{"name":"value","nativeSrc":"13385:5:53","nodeType":"YulIdentifier","src":"13385:5:53"}],"functionName":{"name":"mload","nativeSrc":"13379:5:53","nodeType":"YulIdentifier","src":"13379:5:53"},"nativeSrc":"13379:12:53","nodeType":"YulFunctionCall","src":"13379:12:53"},"variableNames":[{"name":"length","nativeSrc":"13369:6:53","nodeType":"YulIdentifier","src":"13369:6:53"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13300:98:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13341:5:53","nodeType":"YulTypedName","src":"13341:5:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13351:6:53","nodeType":"YulTypedName","src":"13351:6:53","type":""}],"src":"13300:98:53"},{"body":{"nativeSrc":"13499:73:53","nodeType":"YulBlock","src":"13499:73:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13516:3:53","nodeType":"YulIdentifier","src":"13516:3:53"},{"name":"length","nativeSrc":"13521:6:53","nodeType":"YulIdentifier","src":"13521:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13509:6:53","nodeType":"YulIdentifier","src":"13509:6:53"},"nativeSrc":"13509:19:53","nodeType":"YulFunctionCall","src":"13509:19:53"},"nativeSrc":"13509:19:53","nodeType":"YulExpressionStatement","src":"13509:19:53"},{"nativeSrc":"13537:29:53","nodeType":"YulAssignment","src":"13537:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"13556:3:53","nodeType":"YulIdentifier","src":"13556:3:53"},{"kind":"number","nativeSrc":"13561:4:53","nodeType":"YulLiteral","src":"13561:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13552:3:53","nodeType":"YulIdentifier","src":"13552:3:53"},"nativeSrc":"13552:14:53","nodeType":"YulFunctionCall","src":"13552:14:53"},"variableNames":[{"name":"updated_pos","nativeSrc":"13537:11:53","nodeType":"YulIdentifier","src":"13537:11:53"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13404:168:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13471:3:53","nodeType":"YulTypedName","src":"13471:3:53","type":""},{"name":"length","nativeSrc":"13476:6:53","nodeType":"YulTypedName","src":"13476:6:53","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13487:11:53","nodeType":"YulTypedName","src":"13487:11:53","type":""}],"src":"13404:168:53"},{"body":{"nativeSrc":"13640:77:53","nodeType":"YulBlock","src":"13640:77:53","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13657:3:53","nodeType":"YulIdentifier","src":"13657:3:53"},{"name":"src","nativeSrc":"13662:3:53","nodeType":"YulIdentifier","src":"13662:3:53"},{"name":"length","nativeSrc":"13667:6:53","nodeType":"YulIdentifier","src":"13667:6:53"}],"functionName":{"name":"mcopy","nativeSrc":"13651:5:53","nodeType":"YulIdentifier","src":"13651:5:53"},"nativeSrc":"13651:23:53","nodeType":"YulFunctionCall","src":"13651:23:53"},"nativeSrc":"13651:23:53","nodeType":"YulExpressionStatement","src":"13651:23:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13694:3:53","nodeType":"YulIdentifier","src":"13694:3:53"},{"name":"length","nativeSrc":"13699:6:53","nodeType":"YulIdentifier","src":"13699:6:53"}],"functionName":{"name":"add","nativeSrc":"13690:3:53","nodeType":"YulIdentifier","src":"13690:3:53"},"nativeSrc":"13690:16:53","nodeType":"YulFunctionCall","src":"13690:16:53"},{"kind":"number","nativeSrc":"13708:1:53","nodeType":"YulLiteral","src":"13708:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13683:6:53","nodeType":"YulIdentifier","src":"13683:6:53"},"nativeSrc":"13683:27:53","nodeType":"YulFunctionCall","src":"13683:27:53"},"nativeSrc":"13683:27:53","nodeType":"YulExpressionStatement","src":"13683:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13578:139:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13622:3:53","nodeType":"YulTypedName","src":"13622:3:53","type":""},{"name":"dst","nativeSrc":"13627:3:53","nodeType":"YulTypedName","src":"13627:3:53","type":""},{"name":"length","nativeSrc":"13632:6:53","nodeType":"YulTypedName","src":"13632:6:53","type":""}],"src":"13578:139:53"},{"body":{"nativeSrc":"13813:283:53","nodeType":"YulBlock","src":"13813:283:53","statements":[{"nativeSrc":"13823:52:53","nodeType":"YulVariableDeclaration","src":"13823:52:53","value":{"arguments":[{"name":"value","nativeSrc":"13869:5:53","nodeType":"YulIdentifier","src":"13869:5:53"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13837:31:53","nodeType":"YulIdentifier","src":"13837:31:53"},"nativeSrc":"13837:38:53","nodeType":"YulFunctionCall","src":"13837:38:53"},"variables":[{"name":"length","nativeSrc":"13827:6:53","nodeType":"YulTypedName","src":"13827:6:53","type":""}]},{"nativeSrc":"13884:77:53","nodeType":"YulAssignment","src":"13884:77:53","value":{"arguments":[{"name":"pos","nativeSrc":"13949:3:53","nodeType":"YulIdentifier","src":"13949:3:53"},{"name":"length","nativeSrc":"13954:6:53","nodeType":"YulIdentifier","src":"13954:6:53"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13891:57:53","nodeType":"YulIdentifier","src":"13891:57:53"},"nativeSrc":"13891:70:53","nodeType":"YulFunctionCall","src":"13891:70:53"},"variableNames":[{"name":"pos","nativeSrc":"13884:3:53","nodeType":"YulIdentifier","src":"13884:3:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14009:5:53","nodeType":"YulIdentifier","src":"14009:5:53"},{"kind":"number","nativeSrc":"14016:4:53","nodeType":"YulLiteral","src":"14016:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14005:3:53","nodeType":"YulIdentifier","src":"14005:3:53"},"nativeSrc":"14005:16:53","nodeType":"YulFunctionCall","src":"14005:16:53"},{"name":"pos","nativeSrc":"14023:3:53","nodeType":"YulIdentifier","src":"14023:3:53"},{"name":"length","nativeSrc":"14028:6:53","nodeType":"YulIdentifier","src":"14028:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13970:34:53","nodeType":"YulIdentifier","src":"13970:34:53"},"nativeSrc":"13970:65:53","nodeType":"YulFunctionCall","src":"13970:65:53"},"nativeSrc":"13970:65:53","nodeType":"YulExpressionStatement","src":"13970:65:53"},{"nativeSrc":"14044:46:53","nodeType":"YulAssignment","src":"14044:46:53","value":{"arguments":[{"name":"pos","nativeSrc":"14055:3:53","nodeType":"YulIdentifier","src":"14055:3:53"},{"arguments":[{"name":"length","nativeSrc":"14082:6:53","nodeType":"YulIdentifier","src":"14082:6:53"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"14060:21:53","nodeType":"YulIdentifier","src":"14060:21:53"},"nativeSrc":"14060:29:53","nodeType":"YulFunctionCall","src":"14060:29:53"}],"functionName":{"name":"add","nativeSrc":"14051:3:53","nodeType":"YulIdentifier","src":"14051:3:53"},"nativeSrc":"14051:39:53","nodeType":"YulFunctionCall","src":"14051:39:53"},"variableNames":[{"name":"end","nativeSrc":"14044:3:53","nodeType":"YulIdentifier","src":"14044:3:53"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"13723:373:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13794:5:53","nodeType":"YulTypedName","src":"13794:5:53","type":""},{"name":"pos","nativeSrc":"13801:3:53","nodeType":"YulTypedName","src":"13801:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13809:3:53","nodeType":"YulTypedName","src":"13809:3:53","type":""}],"src":"13723:373:53"},{"body":{"nativeSrc":"14274:357:53","nodeType":"YulBlock","src":"14274:357:53","statements":[{"nativeSrc":"14284:26:53","nodeType":"YulAssignment","src":"14284:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14296:9:53","nodeType":"YulIdentifier","src":"14296:9:53"},{"kind":"number","nativeSrc":"14307:2:53","nodeType":"YulLiteral","src":"14307:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14292:3:53","nodeType":"YulIdentifier","src":"14292:3:53"},"nativeSrc":"14292:18:53","nodeType":"YulFunctionCall","src":"14292:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14284:4:53","nodeType":"YulIdentifier","src":"14284:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14364:6:53","nodeType":"YulIdentifier","src":"14364:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"14377:9:53","nodeType":"YulIdentifier","src":"14377:9:53"},{"kind":"number","nativeSrc":"14388:1:53","nodeType":"YulLiteral","src":"14388:1:53","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14373:3:53","nodeType":"YulIdentifier","src":"14373:3:53"},"nativeSrc":"14373:17:53","nodeType":"YulFunctionCall","src":"14373:17:53"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14320:43:53","nodeType":"YulIdentifier","src":"14320:43:53"},"nativeSrc":"14320:71:53","nodeType":"YulFunctionCall","src":"14320:71:53"},"nativeSrc":"14320:71:53","nodeType":"YulExpressionStatement","src":"14320:71:53"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14445:6:53","nodeType":"YulIdentifier","src":"14445:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"14458:9:53","nodeType":"YulIdentifier","src":"14458:9:53"},{"kind":"number","nativeSrc":"14469:2:53","nodeType":"YulLiteral","src":"14469:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14454:3:53","nodeType":"YulIdentifier","src":"14454:3:53"},"nativeSrc":"14454:18:53","nodeType":"YulFunctionCall","src":"14454:18:53"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"14401:43:53","nodeType":"YulIdentifier","src":"14401:43:53"},"nativeSrc":"14401:72:53","nodeType":"YulFunctionCall","src":"14401:72:53"},"nativeSrc":"14401:72:53","nodeType":"YulExpressionStatement","src":"14401:72:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14494:9:53","nodeType":"YulIdentifier","src":"14494:9:53"},{"kind":"number","nativeSrc":"14505:2:53","nodeType":"YulLiteral","src":"14505:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14490:3:53","nodeType":"YulIdentifier","src":"14490:3:53"},"nativeSrc":"14490:18:53","nodeType":"YulFunctionCall","src":"14490:18:53"},{"arguments":[{"name":"tail","nativeSrc":"14514:4:53","nodeType":"YulIdentifier","src":"14514:4:53"},{"name":"headStart","nativeSrc":"14520:9:53","nodeType":"YulIdentifier","src":"14520:9:53"}],"functionName":{"name":"sub","nativeSrc":"14510:3:53","nodeType":"YulIdentifier","src":"14510:3:53"},"nativeSrc":"14510:20:53","nodeType":"YulFunctionCall","src":"14510:20:53"}],"functionName":{"name":"mstore","nativeSrc":"14483:6:53","nodeType":"YulIdentifier","src":"14483:6:53"},"nativeSrc":"14483:48:53","nodeType":"YulFunctionCall","src":"14483:48:53"},"nativeSrc":"14483:48:53","nodeType":"YulExpressionStatement","src":"14483:48:53"},{"nativeSrc":"14540:84:53","nodeType":"YulAssignment","src":"14540:84:53","value":{"arguments":[{"name":"value2","nativeSrc":"14610:6:53","nodeType":"YulIdentifier","src":"14610:6:53"},{"name":"tail","nativeSrc":"14619:4:53","nodeType":"YulIdentifier","src":"14619:4:53"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"14548:61:53","nodeType":"YulIdentifier","src":"14548:61:53"},"nativeSrc":"14548:76:53","nodeType":"YulFunctionCall","src":"14548:76:53"},"variableNames":[{"name":"tail","nativeSrc":"14540:4:53","nodeType":"YulIdentifier","src":"14540:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"14102:529:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14230:9:53","nodeType":"YulTypedName","src":"14230:9:53","type":""},{"name":"value2","nativeSrc":"14242:6:53","nodeType":"YulTypedName","src":"14242:6:53","type":""},{"name":"value1","nativeSrc":"14250:6:53","nodeType":"YulTypedName","src":"14250:6:53","type":""},{"name":"value0","nativeSrc":"14258:6:53","nodeType":"YulTypedName","src":"14258:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14269:4:53","nodeType":"YulTypedName","src":"14269:4:53","type":""}],"src":"14102:529:53"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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 panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_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_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_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function 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 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_address_payablet_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\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_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n }\n\n}\n","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100a6575f3560e01c8063736c0d5b11610063578063736c0d5b146101545780638da5cb5b14610190578063c16e50ef146101ba578063f04e283e146101f6578063f2fde38b14610212578063fee81cf41461022e576100a6565b806301ffc9a7146100aa57806325692962146100e65780634359d28a146100f0578063439fab911461011857806354d1f13d14610140578063715018a61461014a575b5f80fd5b3480156100b5575f80fd5b506100d060048036038101906100cb9190610c67565b61026a565b6040516100dd9190610cac565b60405180910390f35b6100ee6102e3565b005b3480156100fb575f80fd5b5061011660048036038101906101119190610d7b565b610334565b005b348015610123575f80fd5b5061013e60048036038101906101399190610e4e565b61043d565b005b610148610570565b005b6101526105a9565b005b34801561015f575f80fd5b5061017a60048036038101906101759190610ef3565b6105bc565b6040516101879190610cac565b60405180910390f35b34801561019b575f80fd5b506101a46105d8565b6040516101b19190610f2d565b60405180910390f35b3480156101c5575f80fd5b506101e060048036038101906101db9190610e4e565b610600565b6040516101ed9190610cac565b60405180910390f35b610210600480360381019061020b9190610ef3565b610762565b005b61022c60048036038101906102279190610ef3565b6107a0565b005b348015610239575f80fd5b50610254600480360381019061024f9190610ef3565b6107c9565b6040516102619190610f5e565b60405180910390f35b5f7fc0919948000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102dc57506102db826107e2565b5b9050919050565b5f6102ec61085b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61033c610865565b81819050848490501461037b576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156104365782828281811061039b5761039a610f77565b5b90506020020160208101906103b09190610fce565b5f808787858181106103c5576103c4610f77565b5b90506020020160208101906103da9190610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061037d565b5050505050565b5f61044661089c565b905080546003825580156104785760018160011c14303b1061046f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104899190611141565b90506104ae815f815181106104a1576104a0610f77565b5b60200260200101516108c5565b5f5b81518110156105345760015f808484815181106104d0576104cf610f77565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104b0565b5050801561056b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105b1610865565b6105ba5f61099b565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f80858581019061061391906112a6565b9250925092505f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610698576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015f8381526020019081526020015f205f9054906101000a900460ff16156106fc578282826040517fcde6ac870000000000000000000000000000000000000000000000000000000081526004016106f393929190611381565b60405180910390fd5b6001805f8481526020019081526020015f205f6101000a81548160ff02191690831515021790555061075761073083610a61565b828573ffffffffffffffffffffffffffffffffffffffff16610a919092919063ffffffff16565b935050505092915050565b61076a610865565b63389a75e1600c52805f526020600c20805442111561079057636f5e88185f526004601cfd5b5f81555061079d8161099b565b50565b6107a8610865565b8060601b6107bd57637448fbae5f526004601cfd5b6107c68161099b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610854575061085382610b94565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461089a576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6108cd610bfd565b15610945577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561090757630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610998565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6109a3610bfd565b15610a08577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610a5e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f816020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c6004209050919050565b5f8360601b60601c93508315610b8d57604051835f5260208301516040526040835103610afe576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610afb57600193505f60605282604052505050610b8d565b50505b6041835103610b445760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610b4257600192505f606052816040525050610b8d565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f90565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4681610c12565b8114610c50575f80fd5b50565b5f81359050610c6181610c3d565b92915050565b5f60208284031215610c7c57610c7b610c0a565b5b5f610c8984828501610c53565b91505092915050565b5f8115159050919050565b610ca681610c92565b82525050565b5f602082019050610cbf5f830184610c9d565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610ce657610ce5610cc5565b5b8235905067ffffffffffffffff811115610d0357610d02610cc9565b5b602083019150836020820283011115610d1f57610d1e610ccd565b5b9250929050565b5f8083601f840112610d3b57610d3a610cc5565b5b8235905067ffffffffffffffff811115610d5857610d57610cc9565b5b602083019150836020820283011115610d7457610d73610ccd565b5b9250929050565b5f805f8060408587031215610d9357610d92610c0a565b5b5f85013567ffffffffffffffff811115610db057610daf610c0e565b5b610dbc87828801610cd1565b9450945050602085013567ffffffffffffffff811115610ddf57610dde610c0e565b5b610deb87828801610d26565b925092505092959194509250565b5f8083601f840112610e0e57610e0d610cc5565b5b8235905067ffffffffffffffff811115610e2b57610e2a610cc9565b5b602083019150836001820283011115610e4757610e46610ccd565b5b9250929050565b5f8060208385031215610e6457610e63610c0a565b5b5f83013567ffffffffffffffff811115610e8157610e80610c0e565b5b610e8d85828601610df9565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ec282610e99565b9050919050565b610ed281610eb8565b8114610edc575f80fd5b50565b5f81359050610eed81610ec9565b92915050565b5f60208284031215610f0857610f07610c0a565b5b5f610f1584828501610edf565b91505092915050565b610f2781610eb8565b82525050565b5f602082019050610f405f830184610f1e565b92915050565b5f819050919050565b610f5881610f46565b82525050565b5f602082019050610f715f830184610f4f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610fad81610c92565b8114610fb7575f80fd5b50565b5f81359050610fc881610fa4565b92915050565b5f60208284031215610fe357610fe2610c0a565b5b5f610ff084828501610fba565b91505092915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61103f82610ff9565b810181811067ffffffffffffffff8211171561105e5761105d611009565b5b80604052505050565b5f611070610c01565b905061107c8282611036565b919050565b5f67ffffffffffffffff82111561109b5761109a611009565b5b602082029050602081019050919050565b5f6110be6110b984611081565b611067565b905080838252602082019050602084028301858111156110e1576110e0610ccd565b5b835b8181101561110a57806110f68882610edf565b8452602084019350506020810190506110e3565b5050509392505050565b5f82601f83011261112857611127610cc5565b5b81356111388482602086016110ac565b91505092915050565b5f6020828403121561115657611155610c0a565b5b5f82013567ffffffffffffffff81111561117357611172610c0e565b5b61117f84828501611114565b91505092915050565b5f61119282610e99565b9050919050565b6111a281611188565b81146111ac575f80fd5b50565b5f813590506111bd81611199565b92915050565b5f819050919050565b6111d5816111c3565b81146111df575f80fd5b50565b5f813590506111f0816111cc565b92915050565b5f80fd5b5f67ffffffffffffffff82111561121457611213611009565b5b61121d82610ff9565b9050602081019050919050565b828183375f83830152505050565b5f61124a611245846111fa565b611067565b905082815260208101848484011115611266576112656111f6565b5b61127184828561122a565b509392505050565b5f82601f83011261128d5761128c610cc5565b5b813561129d848260208601611238565b91505092915050565b5f805f606084860312156112bd576112bc610c0a565b5b5f6112ca868287016111af565b93505060206112db868287016111e2565b925050604084013567ffffffffffffffff8111156112fc576112fb610c0e565b5b61130886828701611279565b9150509250925092565b61131b816111c3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61135382611321565b61135d818561132b565b935061136d81856020860161133b565b61137681610ff9565b840191505092915050565b5f6060820190506113945f830186610f1e565b6113a16020830185611312565b81810360408301526113b38184611349565b905094935050505056fea2646970667358221220fb96b8bbaa716ab5834801787dcb38454cf3f296d0e18168b53e83467fc8812c64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x736C0D5B GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x22E JUMPI PUSH2 0xA6 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEE PUSH2 0x2E3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x123 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x43D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x148 PUSH2 0x570 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x152 PUSH2 0x5A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A4 PUSH2 0x5D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0xF2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x600 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x210 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20B SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x762 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x22C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x227 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7A0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x254 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24F SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH2 0x7C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xC091994800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2DC JUMPI POP PUSH2 0x2DB DUP3 PUSH2 0x7E2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2EC PUSH2 0x85B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x33C PUSH2 0x865 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x436 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x39B JUMPI PUSH2 0x39A PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0xFCE JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x3C5 JUMPI PUSH2 0x3C4 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x446 PUSH2 0x89C JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x478 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x46F JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x489 SWAP2 SWAP1 PUSH2 0x1141 JUMP JUMPDEST SWAP1 POP PUSH2 0x4AE DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x4A1 JUMPI PUSH2 0x4A0 PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8C5 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x534 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x4D0 JUMPI PUSH2 0x4CF PUSH2 0xF77 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x4B0 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x56B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x5B1 PUSH2 0x865 JUMP JUMPDEST PUSH2 0x5BA PUSH0 PUSH2 0x99B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 DUP6 DUP6 DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x698 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6FC JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xCDE6AC8700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1381 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x757 PUSH2 0x730 DUP4 PUSH2 0xA61 JUMP JUMPDEST DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA91 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x76A PUSH2 0x865 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x790 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x79D DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7A8 PUSH2 0x865 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x7BD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x7C6 DUP2 PUSH2 0x99B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x4260623600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x854 JUMPI POP PUSH2 0x853 DUP3 PUSH2 0xB94 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x89A JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8CD PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0x945 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x907 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x998 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A3 PUSH2 0xBFD JUMP JUMPDEST ISZERO PUSH2 0xA08 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xA5E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH28 0x19457468657265756D205369676E6564204D6573736167653A0A3332 PUSH0 MSTORE PUSH1 0x3C PUSH1 0x4 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP4 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP4 POP DUP4 ISZERO PUSH2 0xB8D JUMPI PUSH1 0x40 MLOAD DUP4 PUSH0 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MSTORE PUSH1 0x40 DUP4 MLOAD SUB PUSH2 0xAFE JUMPI PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x1B DUP2 PUSH1 0xFF SHR ADD PUSH1 0x20 MSTORE DUP1 PUSH1 0x1 SHL PUSH1 0x1 SHR PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP8 XOR RETURNDATASIZE ISZERO OR PUSH2 0xAFB JUMPI PUSH1 0x1 SWAP4 POP PUSH0 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE POP POP POP PUSH2 0xB8D JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x41 DUP4 MLOAD SUB PUSH2 0xB44 JUMPI PUSH1 0x60 DUP4 ADD MLOAD PUSH0 BYTE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP7 XOR RETURNDATASIZE ISZERO OR PUSH2 0xB42 JUMPI PUSH1 0x1 SWAP3 POP PUSH0 PUSH1 0x60 MSTORE DUP2 PUSH1 0x40 MSTORE POP POP PUSH2 0xB8D JUMP JUMPDEST POP JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP1 DUP3 MSTORE DUP5 PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD PUSH1 0x40 DUP2 MSTORE DUP5 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x44 DUP6 ADD DUP3 DUP9 PUSH1 0x4 GAS STATICCALL POP PUSH1 0x20 DUP3 PUSH1 0x44 RETURNDATASIZE ADD DUP7 DUP12 GAS STATICCALL DUP4 DUP4 MLOAD EQ AND SWAP5 POP POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xC12 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC61 DUP2 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7C JUMPI PUSH2 0xC7B PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC89 DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA6 DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCBF PUSH0 DUP4 ADD DUP5 PUSH2 0xC9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xCE6 JUMPI PUSH2 0xCE5 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD03 JUMPI PUSH2 0xD02 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD1F JUMPI PUSH2 0xD1E PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD57 PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xD74 JUMPI PUSH2 0xD73 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD93 JUMPI PUSH2 0xD92 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDB0 JUMPI PUSH2 0xDAF PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDBC DUP8 DUP3 DUP9 ADD PUSH2 0xCD1 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDDF JUMPI PUSH2 0xDDE PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xDEB DUP8 DUP3 DUP9 ADD PUSH2 0xD26 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE0E JUMPI PUSH2 0xE0D PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2B JUMPI PUSH2 0xE2A PUSH2 0xCC9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE47 JUMPI PUSH2 0xE46 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE64 JUMPI PUSH2 0xE63 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0xE8D DUP6 DUP3 DUP7 ADD PUSH2 0xDF9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xEC2 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xED2 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP2 EQ PUSH2 0xEDC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEED DUP2 PUSH2 0xEC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF15 DUP5 DUP3 DUP6 ADD PUSH2 0xEDF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF27 DUP2 PUSH2 0xEB8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF40 PUSH0 DUP4 ADD DUP5 PUSH2 0xF1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF58 DUP2 PUSH2 0xF46 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF71 PUSH0 DUP4 ADD DUP5 PUSH2 0xF4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFAD DUP2 PUSH2 0xC92 JUMP JUMPDEST DUP2 EQ PUSH2 0xFB7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFC8 DUP2 PUSH2 0xFA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE3 JUMPI PUSH2 0xFE2 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFF0 DUP5 DUP3 DUP6 ADD PUSH2 0xFBA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x103F DUP3 PUSH2 0xFF9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x105E JUMPI PUSH2 0x105D PUSH2 0x1009 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1070 PUSH2 0xC01 JUMP JUMPDEST SWAP1 POP PUSH2 0x107C DUP3 DUP3 PUSH2 0x1036 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x109B JUMPI PUSH2 0x109A PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10BE PUSH2 0x10B9 DUP5 PUSH2 0x1081 JUMP JUMPDEST PUSH2 0x1067 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 0x10E1 JUMPI PUSH2 0x10E0 PUSH2 0xCCD JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x110A JUMPI DUP1 PUSH2 0x10F6 DUP9 DUP3 PUSH2 0xEDF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x10E3 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1128 JUMPI PUSH2 0x1127 PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1138 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x10AC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1156 JUMPI PUSH2 0x1155 PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1173 JUMPI PUSH2 0x1172 PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x117F DUP5 DUP3 DUP6 ADD PUSH2 0x1114 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1192 DUP3 PUSH2 0xE99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11A2 DUP2 PUSH2 0x1188 JUMP JUMPDEST DUP2 EQ PUSH2 0x11AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11BD DUP2 PUSH2 0x1199 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP2 EQ PUSH2 0x11DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11F0 DUP2 PUSH2 0x11CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1214 JUMPI PUSH2 0x1213 PUSH2 0x1009 JUMP JUMPDEST JUMPDEST PUSH2 0x121D DUP3 PUSH2 0xFF9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x124A PUSH2 0x1245 DUP5 PUSH2 0x11FA JUMP JUMPDEST PUSH2 0x1067 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1266 JUMPI PUSH2 0x1265 PUSH2 0x11F6 JUMP JUMPDEST JUMPDEST PUSH2 0x1271 DUP5 DUP3 DUP6 PUSH2 0x122A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x128D JUMPI PUSH2 0x128C PUSH2 0xCC5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x129D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1238 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x12BD JUMPI PUSH2 0x12BC PUSH2 0xC0A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12CA DUP7 DUP3 DUP8 ADD PUSH2 0x11AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x12DB DUP7 DUP3 DUP8 ADD PUSH2 0x11E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12FC JUMPI PUSH2 0x12FB PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH2 0x1308 DUP7 DUP3 DUP8 ADD PUSH2 0x1279 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x131B DUP2 PUSH2 0x11C3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1353 DUP3 PUSH2 0x1321 JUMP JUMPDEST PUSH2 0x135D DUP2 DUP6 PUSH2 0x132B JUMP JUMPDEST SWAP4 POP PUSH2 0x136D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x133B JUMP JUMPDEST PUSH2 0x1376 DUP2 PUSH2 0xFF9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1394 PUSH0 DUP4 ADD DUP7 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x13A1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1312 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13B3 DUP2 DUP5 PUSH2 0x1349 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SWAP7 0xB8 0xBB 0xAA PUSH18 0x6AB5834801787DCB38454CF3F296D0E18168 0xB5 RETURNDATACOPY DUP4 CHAINID PUSH32 0xC8812C64736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"515:2634:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:208:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:17;;;:::i;:::-;;2835:312:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1321:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:17;;;:::i;:::-;;8762:100;;;:::i;:::-;;646:39:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2073:584:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1512:208:52;1608:4;1646:27;1631:42;;;:11;:42;;;;:82;;;;1677:36;1701:11;1677:23;:36::i;:::-;1631:82;1624:89;;1512:208;;;:::o;9021:617:17:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;2835:312:51:-;12517:13:17;:11;:13::i;:::-;2968:11:51::1;;:18;;2949:8;;:15;;:37;2945:77;;2995:27;;;;;;;;;;;;;;2945:77;3038:9;3033:108;3057:8;;:15;;3053:1;:19;3033:108;;;3116:11;;3128:1;3116:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3093:7;:20:::0;3101:8:::1;;3110:1;3101:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3093:20;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;3074:3;;;;;;;3033:108;;;;2835:312:::0;;;;:::o;1321:301::-;3122:9:21;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1410:25:51::1;1450:5;;1439:30;;;;;;;:::i;:::-;1409:60;;1479:29;1496:8;1505:1;1496:11;;;;;;;;:::i;:::-;;;;;;;;1479:16;:29::i;:::-;1523:9;1518:98;1542:8;:15;1538:1;:19;1518:98;;;1601:4;1578:7;:20:::0;1586:8:::1;1595:1;1586:11;;;;;;;;:::i;:::-;;;;;;;;1578:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1559:3;;;;;;;1518:98;;;;1399:223;3918:1:21::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1321:301:51;;:::o;9720:456:17:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;646:39:51:-;;;;;;;;;;;;;;;;;;;;;;:::o;11408:182:17:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;2073:584:51:-;2140:4;2157:15;2174:13;2189:23;2227:5;;2216:44;;;;;;;:::i;:::-;2156:104;;;;;;2276:7;:16;2284:7;2276:16;;;;;;;;;;;;;;;;;;;;;;;;;2271:55;;2301:25;;;;;;;;;;;;;;2271:55;2340:5;:12;2346:5;2340:12;;;;;;;;;;;;;;;;;;;;;2336:72;;;2381:7;2390:5;2397:10;2361:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;2336:72;2486:4;2471:5;:12;2477:5;2471:12;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2560:90;2588:49;2631:5;2588:42;:49::i;:::-;2639:10;2560:7;:27;;;;:90;;;;;:::i;:::-;2553:97;;;;;2073:584;;;;:::o;10363:708:17:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1829:197:48:-;1914:4;1952:27;1937:42;;;:11;:42;;;;:82;;;;1983:36;2007:11;1983:23;:36::i;:::-;1937:82;1930:89;;1829:197;;;:::o;7878:110:17:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:21:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:17:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;24226:409:28:-;24295:14;24400:4;24394;24387:18;24474:50;24468:4;24461:64;24577:4;24571;24561:21;24551:31;;24226:409;;;:::o;1980:4154::-;2110:12;2311:6;2307:2;2303:15;2299:2;2295:24;2285:34;;2322:6;2279:3839;;;2365:4;2359:11;2400:4;2394;2387:18;2456:4;2445:9;2441:20;2435:27;2429:4;2422:41;2512:2;2500:9;2494:16;2491:24;2488:1077;;2569:4;2558:9;2554:20;2548:27;2627:2;2622;2617:3;2613:12;2609:21;2603:4;2596:35;2687:2;2684:1;2680:10;2677:1;2673:18;2667:4;2660:32;3089:4;3035;2983;2930;2872:1;2794:5;2754:384;3309:1;3303:8;3295:6;3291:21;3272:16;3265:24;3262:51;3252:295;;3352:1;3341:12;;3391:1;3385:4;3378:15;3457:1;3451:4;3444:15;3520:5;;;;;3252:295;2516:1049;;2488:1077;3606:2;3594:9;3588:16;3585:24;3582:1043;;3674:4;3663:9;3659:20;3653:27;3650:1;3645:36;3639:4;3632:50;3745:4;3734:9;3730:20;3724:27;3718:4;3711:41;4149:4;4095;4043;3990;3932:1;3854:5;3814:384;4369:1;4363:8;4355:6;4351:21;4332:16;4325:24;4322:51;4312:295;;4412:1;4401:12;;4451:1;4445:4;4438:15;4517:1;4511:4;4504:15;4580:5;;;;4312:295;3610:1015;3582:1043;4655:1;4649:4;4642:15;4713:1;4707:4;4700:15;4787:10;4782:3;4778:20;4825:1;4822;4815:12;4924:4;4917;4914:1;4910:12;4903:26;4962:4;4959:1;4955:12;4994:4;4991:1;4984:15;5137:9;5131:16;5125:4;5121:27;5218:1;5211:4;5208:1;5204:12;5201:1;5190:9;5187:1;5180:5;5169:51;5165:56;6004:4;5952:1;5888:4;5870:16;5866:27;5806:1;5749:6;5700:5;5664:400;5428:1;5424;5418:8;5415:15;5296:786;5285:797;;6099:5;;;;2279:3839;1980:4154;;;;;:::o;763:146:12:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;4348:78:17:-;4412:10;4348:78;:::o;7:75:53:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1904:568;1977:8;1987:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:122;;2045:79;;:::i;:::-;2004:122;2158:6;2145:20;2135:30;;2188:18;2180:6;2177:30;2174:117;;;2210:79;;:::i;:::-;2174:117;2324:4;2316:6;2312:17;2300:29;;2378:3;2370:4;2362:6;2358:17;2348:8;2344:32;2341:41;2338:128;;;2385:79;;:::i;:::-;2338:128;1904:568;;;;;:::o;2492:565::-;2562:8;2572:6;2622:3;2615:4;2607:6;2603:17;2599:27;2589:122;;2630:79;;:::i;:::-;2589:122;2743:6;2730:20;2720:30;;2773:18;2765:6;2762:30;2759:117;;;2795:79;;:::i;:::-;2759:117;2909:4;2901:6;2897:17;2885:29;;2963:3;2955:4;2947:6;2943:17;2933:8;2929:32;2926:41;2923:128;;;2970:79;;:::i;:::-;2923:128;2492:565;;;;;:::o;3063:928::-;3182:6;3190;3198;3206;3255:2;3243:9;3234:7;3230:23;3226:32;3223:119;;;3261:79;;:::i;:::-;3223:119;3409:1;3398:9;3394:17;3381:31;3439:18;3431:6;3428:30;3425:117;;;3461:79;;:::i;:::-;3425:117;3574:80;3646:7;3637:6;3626:9;3622:22;3574:80;:::i;:::-;3556:98;;;;3352:312;3731:2;3720:9;3716:18;3703:32;3762:18;3754:6;3751:30;3748:117;;;3784:79;;:::i;:::-;3748:117;3897:77;3966:7;3957:6;3946:9;3942:22;3897:77;:::i;:::-;3879:95;;;;3674:310;3063:928;;;;;;;:::o;4010:552::-;4067:8;4077:6;4127:3;4120:4;4112:6;4108:17;4104:27;4094:122;;4135:79;;:::i;:::-;4094:122;4248:6;4235:20;4225:30;;4278:18;4270:6;4267:30;4264:117;;;4300:79;;:::i;:::-;4264:117;4414:4;4406:6;4402:17;4390:29;;4468:3;4460:4;4452:6;4448:17;4438:8;4434:32;4431:41;4428:128;;;4475:79;;:::i;:::-;4428:128;4010:552;;;;;:::o;4568:527::-;4638:6;4646;4695:2;4683:9;4674:7;4670:23;4666:32;4663:119;;;4701:79;;:::i;:::-;4663:119;4849:1;4838:9;4834:17;4821:31;4879:18;4871:6;4868:30;4865:117;;;4901:79;;:::i;:::-;4865:117;5014:64;5070:7;5061:6;5050:9;5046:22;5014:64;:::i;:::-;4996:82;;;;4792:296;4568:527;;;;;:::o;5101:126::-;5138:7;5178:42;5171:5;5167:54;5156:65;;5101:126;;;:::o;5233:96::-;5270:7;5299:24;5317:5;5299:24;:::i;:::-;5288:35;;5233:96;;;:::o;5335:122::-;5408:24;5426:5;5408:24;:::i;:::-;5401:5;5398:35;5388:63;;5447:1;5444;5437:12;5388:63;5335:122;:::o;5463:139::-;5509:5;5547:6;5534:20;5525:29;;5563:33;5590:5;5563:33;:::i;:::-;5463:139;;;;:::o;5608:329::-;5667:6;5716:2;5704:9;5695:7;5691:23;5687:32;5684:119;;;5722:79;;:::i;:::-;5684:119;5842:1;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5813:117;5608:329;;;;:::o;5943:118::-;6030:24;6048:5;6030:24;:::i;:::-;6025:3;6018:37;5943:118;;:::o;6067:222::-;6160:4;6198:2;6187:9;6183:18;6175:26;;6211:71;6279:1;6268:9;6264:17;6255:6;6211:71;:::i;:::-;6067:222;;;;:::o;6295:77::-;6332:7;6361:5;6350:16;;6295:77;;;:::o;6378:118::-;6465:24;6483:5;6465:24;:::i;:::-;6460:3;6453:37;6378:118;;:::o;6502:222::-;6595:4;6633:2;6622:9;6618:18;6610:26;;6646:71;6714:1;6703:9;6699:17;6690:6;6646:71;:::i;:::-;6502:222;;;;:::o;6730:180::-;6778:77;6775:1;6768:88;6875:4;6872:1;6865:15;6899:4;6896:1;6889:15;6916:116;6986:21;7001:5;6986:21;:::i;:::-;6979:5;6976:32;6966:60;;7022:1;7019;7012:12;6966:60;6916:116;:::o;7038:133::-;7081:5;7119:6;7106:20;7097:29;;7135:30;7159:5;7135:30;:::i;:::-;7038:133;;;;:::o;7177:323::-;7233:6;7282:2;7270:9;7261:7;7257:23;7253:32;7250:119;;;7288:79;;:::i;:::-;7250:119;7408:1;7433:50;7475:7;7466:6;7455:9;7451:22;7433:50;:::i;:::-;7423:60;;7379:114;7177:323;;;;:::o;7506:102::-;7547:6;7598:2;7594:7;7589:2;7582:5;7578:14;7574:28;7564:38;;7506:102;;;:::o;7614:180::-;7662:77;7659:1;7652:88;7759:4;7756:1;7749:15;7783:4;7780:1;7773:15;7800:281;7883:27;7905:4;7883:27;:::i;:::-;7875:6;7871:40;8013:6;8001:10;7998:22;7977:18;7965:10;7962:34;7959:62;7956:88;;;8024:18;;:::i;:::-;7956:88;8064:10;8060:2;8053:22;7843:238;7800:281;;:::o;8087:129::-;8121:6;8148:20;;:::i;:::-;8138:30;;8177:33;8205:4;8197:6;8177:33;:::i;:::-;8087:129;;;:::o;8222:311::-;8299:4;8389:18;8381:6;8378:30;8375:56;;;8411:18;;:::i;:::-;8375:56;8461:4;8453:6;8449:17;8441:25;;8521:4;8515;8511:15;8503:23;;8222:311;;;:::o;8556:710::-;8652:5;8677:81;8693:64;8750:6;8693:64;:::i;:::-;8677:81;:::i;:::-;8668:90;;8778:5;8807:6;8800:5;8793:21;8841:4;8834:5;8830:16;8823:23;;8894:4;8886:6;8882:17;8874:6;8870:30;8923:3;8915:6;8912:15;8909:122;;;8942:79;;:::i;:::-;8909:122;9057:6;9040:220;9074:6;9069:3;9066:15;9040:220;;;9149:3;9178:37;9211:3;9199:10;9178:37;:::i;:::-;9173:3;9166:50;9245:4;9240:3;9236:14;9229:21;;9116:144;9100:4;9095:3;9091:14;9084:21;;9040:220;;;9044:21;8658:608;;8556:710;;;;;:::o;9289:370::-;9360:5;9409:3;9402:4;9394:6;9390:17;9386:27;9376:122;;9417:79;;:::i;:::-;9376:122;9534:6;9521:20;9559:94;9649:3;9641:6;9634:4;9626:6;9622:17;9559:94;:::i;:::-;9550:103;;9366:293;9289:370;;;;:::o;9665:539::-;9749:6;9798:2;9786:9;9777:7;9773:23;9769:32;9766:119;;;9804:79;;:::i;:::-;9766:119;9952:1;9941:9;9937:17;9924:31;9982:18;9974:6;9971:30;9968:117;;;10004:79;;:::i;:::-;9968:117;10109:78;10179:7;10170:6;10159:9;10155:22;10109:78;:::i;:::-;10099:88;;9895:302;9665:539;;;;:::o;10210:104::-;10255:7;10284:24;10302:5;10284:24;:::i;:::-;10273:35;;10210:104;;;:::o;10320:138::-;10401:32;10427:5;10401:32;:::i;:::-;10394:5;10391:43;10381:71;;10448:1;10445;10438:12;10381:71;10320:138;:::o;10464:155::-;10518:5;10556:6;10543:20;10534:29;;10572:41;10607:5;10572:41;:::i;:::-;10464:155;;;;:::o;10625:77::-;10662:7;10691:5;10680:16;;10625:77;;;:::o;10708:122::-;10781:24;10799:5;10781:24;:::i;:::-;10774:5;10771:35;10761:63;;10820:1;10817;10810:12;10761:63;10708:122;:::o;10836:139::-;10882:5;10920:6;10907:20;10898:29;;10936:33;10963:5;10936:33;:::i;:::-;10836:139;;;;:::o;10981:117::-;11090:1;11087;11080:12;11104:307;11165:4;11255:18;11247:6;11244:30;11241:56;;;11277:18;;:::i;:::-;11241:56;11315:29;11337:6;11315:29;:::i;:::-;11307:37;;11399:4;11393;11389:15;11381:23;;11104:307;;;:::o;11417:148::-;11515:6;11510:3;11505;11492:30;11556:1;11547:6;11542:3;11538:16;11531:27;11417:148;;;:::o;11571:423::-;11648:5;11673:65;11689:48;11730:6;11689:48;:::i;:::-;11673:65;:::i;:::-;11664:74;;11761:6;11754:5;11747:21;11799:4;11792:5;11788:16;11837:3;11828:6;11823:3;11819:16;11816:25;11813:112;;;11844:79;;:::i;:::-;11813:112;11934:54;11981:6;11976:3;11971;11934:54;:::i;:::-;11654:340;11571:423;;;;;:::o;12013:338::-;12068:5;12117:3;12110:4;12102:6;12098:17;12094:27;12084:122;;12125:79;;:::i;:::-;12084:122;12242:6;12229:20;12267:78;12341:3;12333:6;12326:4;12318:6;12314:17;12267:78;:::i;:::-;12258:87;;12074:277;12013:338;;;;:::o;12357:813::-;12451:6;12459;12467;12516:2;12504:9;12495:7;12491:23;12487:32;12484:119;;;12522:79;;:::i;:::-;12484:119;12642:1;12667:61;12720:7;12711:6;12700:9;12696:22;12667:61;:::i;:::-;12657:71;;12613:125;12777:2;12803:53;12848:7;12839:6;12828:9;12824:22;12803:53;:::i;:::-;12793:63;;12748:118;12933:2;12922:9;12918:18;12905:32;12964:18;12956:6;12953:30;12950:117;;;12986:79;;:::i;:::-;12950:117;13091:62;13145:7;13136:6;13125:9;13121:22;13091:62;:::i;:::-;13081:72;;12876:287;12357:813;;;;;:::o;13176:118::-;13263:24;13281:5;13263:24;:::i;:::-;13258:3;13251:37;13176:118;;:::o;13300:98::-;13351:6;13385:5;13379:12;13369:22;;13300:98;;;:::o;13404:168::-;13487:11;13521:6;13516:3;13509:19;13561:4;13556:3;13552:14;13537:29;;13404:168;;;;:::o;13578:139::-;13667:6;13662:3;13657;13651:23;13708:1;13699:6;13694:3;13690:16;13683:27;13578:139;;;:::o;13723:373::-;13809:3;13837:38;13869:5;13837:38;:::i;:::-;13891:70;13954:6;13949:3;13891:70;:::i;:::-;13884:77;;13970:65;14028:6;14023:3;14016:4;14009:5;14005:16;13970:65;:::i;:::-;14060:29;14082:6;14060:29;:::i;:::-;14055:3;14051:39;14044:46;;13813:283;13723:373;;;;:::o;14102:529::-;14269:4;14307:2;14296:9;14292:18;14284:26;;14320:71;14388:1;14377:9;14373:17;14364:6;14320:71;:::i;:::-;14401:72;14469:2;14458:9;14454:18;14445:6;14401:72;:::i;:::-;14520:9;14514:4;14510:20;14505:2;14494:9;14490:18;14483:48;14548:76;14619:4;14610:6;14548:76;:::i;:::-;14540:84;;14102:529;;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","signers(address)":"736c0d5b","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Replayed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signers_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"initialize(bytes)\":{\"details\":\"The first address in the list will be the initial owner of the contract\",\"params\":{\"data_\":\"The compressed list of authorized signers\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"params\":{\"authorized_\":\"The authorized status of each signer\",\"signers_\":\"The list of signers to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer\",\"params\":{\"data_\":\"The data payload for the validation check\"},\"returns\":{\"_0\":\"True if the action has been validated based on the data payload\"}}},\"stateVariables\":{\"_used\":{\"details\":\"The set of used hashes (for replay protection)\"},\"signers\":{\"details\":\"The set of authorized signers\"}},\"title\":\"Signer Validator\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"Replayed(address,bytes32,bytes)\":[{\"notice\":\"Thrown when a previously used signature is replayed\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Construct a new SignerValidator\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the list of authorized signers\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of a signer\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"}},\"notice\":\"A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/validators/SignerValidator.sol\":\"SignerValidator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0a7e89ffa57127a2e75931be926a11094b6ee2955632a5dce0228f3d8e98eb02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca02052cca6c00d760253f74519e6d7460dfaaf4efb3c004bf9c811ad7791d40\",\"dweb:/ipfs/QmSfzCXbsALfzo6Joqte5oyJxi7h27VqhDmcMJhmNGX2GJ\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x7a7acc59723ed291f24d9a2ed019109c8be69f32701f35f8a61dc7fff6652379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bab15a03dfca0567d7472933ee4e776fc21f9dfb6c4dbc06934fa75eceeff5e\",\"dweb:/ipfs/QmPUuKsRwpZXz15DpsoJMMPN9DtZiRvMfwjqJScxkppNsP\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/SignerValidator.sol\":{\"keccak256\":\"0x19605be169cad5f7cc28b25f09b315d34d92b4827513627f18d60bcac951bd96\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://86d86d3f538a1ada4f7ba65b74cb95bc9b40feb8a7ec3c4903fa4306d872b816\",\"dweb:/ipfs/QmaTwJT7v6KTipx2VxQdWK8dENbeqLroEN5qdy958qv7kB\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}},"contracts/validators/Validator.sol":{"Validator":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specificFor example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}\",\"params\":{\"data_\":\"The compressed {ValidatePayload} to be validated\"},\"returns\":{\"_0\":\"True if the action has been validated based on the data payload\"}}},\"title\":\"Boost Validator\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initialize the contract and set the owner\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"validate(bytes)\":{\"notice\":\"Validate that a given user has completed an acction successfully\"}},\"notice\":\"Abstract contract for a generic Validator within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/validators/Validator.sol\":\"Validator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0x7035f26096ce77bf675be488a19b7da063adea80b058ae1df7d79974c815220e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b4d6c3b0b45ef9b04a2a5fa0364ef1caa17ed6f3ebffc3ec0d13863f886d46c\",\"dweb:/ipfs/QmTuhKrxZUFKUpu4bHYB5nAvYyxK9gEsggcCdDkxjRUWoJ\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x51cc7a391fab677004568756f1eafde85b720eda443684d5baa8153851c117bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://93db135e6f76a12653e282148bf08e66173f86660acc727871d4904c34993dcd\",\"dweb:/ipfs/Qma9XWiyDdymuZHCvduvVDMsTU2dzh6rgXZQGMofS2JRtv\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/packages/evm/artifacts/contracts/BoostCore.sol/BoostCore.dbg.json b/packages/evm/artifacts/contracts/BoostCore.sol/BoostCore.dbg.json index 0d1f4213..331fdcd8 100644 --- a/packages/evm/artifacts/contracts/BoostCore.sol/BoostCore.dbg.json +++ b/packages/evm/artifacts/contracts/BoostCore.sol/BoostCore.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/BoostRegistry.sol/BoostRegistry.dbg.json b/packages/evm/artifacts/contracts/BoostRegistry.sol/BoostRegistry.dbg.json index 0d1f4213..331fdcd8 100644 --- a/packages/evm/artifacts/contracts/BoostRegistry.sol/BoostRegistry.dbg.json +++ b/packages/evm/artifacts/contracts/BoostRegistry.sol/BoostRegistry.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/actions/Action.sol/Action.dbg.json b/packages/evm/artifacts/contracts/actions/Action.sol/Action.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/actions/Action.sol/Action.dbg.json +++ b/packages/evm/artifacts/contracts/actions/Action.sol/Action.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/actions/ContractAction.sol/ContractAction.dbg.json b/packages/evm/artifacts/contracts/actions/ContractAction.sol/ContractAction.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/actions/ContractAction.sol/ContractAction.dbg.json +++ b/packages/evm/artifacts/contracts/actions/ContractAction.sol/ContractAction.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/actions/ERC721MintAction.sol/ERC721MintAction.dbg.json b/packages/evm/artifacts/contracts/actions/ERC721MintAction.sol/ERC721MintAction.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/actions/ERC721MintAction.sol/ERC721MintAction.dbg.json +++ b/packages/evm/artifacts/contracts/actions/ERC721MintAction.sol/ERC721MintAction.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/allowlists/AllowList.sol/AllowList.dbg.json b/packages/evm/artifacts/contracts/allowlists/AllowList.sol/AllowList.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/allowlists/AllowList.sol/AllowList.dbg.json +++ b/packages/evm/artifacts/contracts/allowlists/AllowList.sol/AllowList.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.dbg.json b/packages/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.dbg.json +++ b/packages/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.dbg.json b/packages/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.dbg.json +++ b/packages/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/budgets/Budget.sol/Budget.dbg.json b/packages/evm/artifacts/contracts/budgets/Budget.sol/Budget.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/budgets/Budget.sol/Budget.dbg.json +++ b/packages/evm/artifacts/contracts/budgets/Budget.sol/Budget.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/budgets/SimpleBudget.sol/SimpleBudget.dbg.json b/packages/evm/artifacts/contracts/budgets/SimpleBudget.sol/SimpleBudget.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/budgets/SimpleBudget.sol/SimpleBudget.dbg.json +++ b/packages/evm/artifacts/contracts/budgets/SimpleBudget.sol/SimpleBudget.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/budgets/VestingBudget.sol/VestingBudget.dbg.json b/packages/evm/artifacts/contracts/budgets/VestingBudget.sol/VestingBudget.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/budgets/VestingBudget.sol/VestingBudget.dbg.json +++ b/packages/evm/artifacts/contracts/budgets/VestingBudget.sol/VestingBudget.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/incentives/AllowListIncentive.sol/AllowListIncentive.dbg.json b/packages/evm/artifacts/contracts/incentives/AllowListIncentive.sol/AllowListIncentive.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/incentives/AllowListIncentive.sol/AllowListIncentive.dbg.json +++ b/packages/evm/artifacts/contracts/incentives/AllowListIncentive.sol/AllowListIncentive.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/incentives/CGDAIncentive.sol/CGDAIncentive.dbg.json b/packages/evm/artifacts/contracts/incentives/CGDAIncentive.sol/CGDAIncentive.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/incentives/CGDAIncentive.sol/CGDAIncentive.dbg.json +++ b/packages/evm/artifacts/contracts/incentives/CGDAIncentive.sol/CGDAIncentive.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.d.ts b/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.d.ts index 28279d05..5cfbe35f 100644 --- a/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.d.ts +++ b/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.d.ts @@ -564,8 +564,8 @@ export interface ERC1155Incentive$Type { "type": "function" } ], - "bytecode": "0x608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612506806101b45f395ff3fe608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212207ab1fe59a979b1152938e5ee797a972d121475f35cd2658624bf862c8dcca8b564736f6c63430008190033", - "deployedBytecode": "0x608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212207ab1fe59a979b1152938e5ee797a972d121475f35cd2658624bf862c8dcca8b564736f6c63430008190033", + "bytecode": "0x608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612506806101b45f395ff3fe608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212202ed8acb107de7b597b4d8e9d724512284925aed3800f1f109954572877ab5e3a64736f6c63430008190033", + "deployedBytecode": "0x608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212202ed8acb107de7b597b4d8e9d724512284925aed3800f1f109954572877ab5e3a64736f6c63430008190033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.dbg.json b/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.dbg.json +++ b/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.json b/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.json index afe65688..c501622e 100644 --- a/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.json +++ b/packages/evm/artifacts/contracts/incentives/ERC1155Incentive.sol/ERC1155Incentive.json @@ -555,8 +555,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612506806101b45f395ff3fe608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212207ab1fe59a979b1152938e5ee797a972d121475f35cd2658624bf862c8dcca8b564736f6c63430008190033", - "deployedBytecode": "0x608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212207ab1fe59a979b1152938e5ee797a972d121475f35cd2658624bf862c8dcca8b564736f6c63430008190033", + "bytecode": "0x608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612506806101b45f395ff3fe608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212202ed8acb107de7b597b4d8e9d724512284925aed3800f1f109954572877ab5e3a64736f6c63430008190033", + "deployedBytecode": "0x608060405260043610610134575f3560e01c8063a8c62e76116100aa578063e18e65081161006e578063e18e6508146103d0578063f04e283e1461040c578063f1c30ec014610428578063f23a6e6114610464578063f2fde38b146104a0578063fee81cf4146104bc57610134565b8063a8c62e76146102c8578063bc197c81146102f2578063c63ff8dd1461032e578063c884ef831461036a578063dcc59b6f146103a657610134565b80634e7165a2116100fc5780634e7165a2146101fa57806354d1f13d14610236578063609d333414610240578063715018a61461026a5780638da5cb5b14610274578063a4d66daf1461029e57610134565b806301ffc9a71461013857806317d70f7c14610174578063256929621461019e57806338d52e0f146101a8578063439fab91146101d2575b5f80fd5b348015610143575f80fd5b5061015e600480360381019061015991906113fe565b6104f8565b60405161016b9190611443565b60405180910390f35b34801561017f575f80fd5b50610188610571565b6040516101959190611474565b60405180910390f35b6101a6610577565b005b3480156101b3575f80fd5b506101bc6105c8565b6040516101c99190611507565b60405180910390f35b3480156101dd575f80fd5b506101f860048036038101906101f39190611581565b6105ed565b005b348015610205575f80fd5b50610220600480360381019061021b9190611581565b610890565b60405161022d919061163c565b60405180910390f35b61023e610973565b005b34801561024b575f80fd5b506102546109ac565b604051610261919061163c565b60405180910390f35b610272610a38565b005b34801561027f575f80fd5b50610288610a4b565b604051610295919061167c565b60405180910390f35b3480156102a9575f80fd5b506102b2610a73565b6040516102bf9190611474565b60405180910390f35b3480156102d3575f80fd5b506102dc610a79565b6040516102e99190611708565b60405180910390f35b3480156102fd575f80fd5b50610318600480360381019061031391906117a0565b610a8c565b6040516103259190611886565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f9190611581565b610aa3565b6040516103619190611443565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b919061189f565b610cf7565b60405161039d9190611443565b60405180910390f35b3480156103b1575f80fd5b506103ba610d14565b6040516103c79190611474565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190611581565b610d19565b6040516104039190611443565b60405180910390f35b6104266004803603810190610421919061189f565b610d41565b005b348015610433575f80fd5b5061044e60048036038101906104499190611581565b610d7f565b60405161045b9190611443565b60405180910390f35b34801561046f575f80fd5b5061048a600480360381019061048591906118f4565b610f7b565b6040516104979190611886565b60405180910390f35b6104ba60048036038101906104b5919061189f565b610f90565b005b3480156104c7575f80fd5b506104e260048036038101906104dd919061189f565b610fb9565b6040516104ef9190611474565b60405180910390f35b5f7f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a575061056982610fd2565b5b9050919050565b60045481565b5f61058061104b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6105f6611055565b905080546003825580156106285760018160011c14303b1061061f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106399190611bbd565b905060018081111561064e5761064d611695565b5b8160200151600181111561066557610664611695565b5b0361069c576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151036106d9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b815260040161071b929190611c04565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611c3f565b905081606001518110156107b057815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107a793929190611c6a565b60405180910390fd5b815f015160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600260146101000a81548160ff0219169083600181111561081c5761081b611695565b5b02179055508160400151600481905550816060015160038190555081608001516005908161084a9190611e90565b506108543361107e565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a29190611bbd565b905060405180608001604052806002808111156108c2576108c1611695565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060600160405280846040015181526020018460600151815260200184608001518152506040516020016109399190612003565b60405160208183030381529060405281525060405160200161095b91906120d8565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b600580546109b990611ccc565b80601f01602080910402602001604051908101604052809291908181526020018280546109e590611ccc565b8015610a305780601f10610a0757610100808354040283529160200191610a30565b820191905f5260205f20905b815481529060010190602001808311610a1357829003601f168201915b505050505081565b610a40611154565b610a495f61118b565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035481565b600260149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610aac611154565b5f6001811115610abf57610abe611695565b5b600260149054906101000a900460ff166001811115610ae157610ae0611695565b5b03610ced575f8383810190610af69190612161565b9050610b04815f0151611251565b610b3a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610b4b906121d5565b91905055506001805f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600454600186602001516040518663ffffffff1660e01b8152600401610c13959493929190612255565b5f604051808303815f87803b158015610c2a575f80fd5b505af1158015610c3c573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160045460018660200151604051602001610cbf959493929190612363565b604051602081830303815290604052604051610cdb919061163c565b60405180910390a26001915050610cf1565b5f90505b92915050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610d2a9190612161565b9050610d38815f0151611251565b91505092915050565b610d49611154565b63389a75e1600c52805f526020600c208054421115610d6f57636f5e88185f526004601cfd5b5f815550610d7c8161118b565b50565b5f610d88611154565b5f8383810190610d989190612161565b90505f8160200151806020019051810190610db39190611c3f565b9050600354811115610e1d573382604051602001610dd191906123f7565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610e14929190612417565b60405180910390fd5b8060035f828254610e2e9190612445565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516004548587602001516040518663ffffffff1660e01b8152600401610ea0959493929190612478565b5f604051808303815f87803b158015610eb7575f80fd5b505af1158015610ec9573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600454858760200151604051602001610f4b959493929190612363565b604051602081830303815290604052604051610f67919061163c565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b610f98611154565b8060601b610fad57637448fbae5f526004601cfd5b610fb68161118b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8dbd4bfc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110445750611043826112b2565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61108661132b565b156110fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156110c057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611151565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611189576382b429005f526004601cfd5b565b61119361132b565b156111f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061124e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112ab57506003545f54105b9050919050565b5f7f42606236000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061132457506113238261132f565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113dd816113a9565b81146113e7575f80fd5b50565b5f813590506113f8816113d4565b92915050565b5f60208284031215611413576114126113a1565b5b5f611420848285016113ea565b91505092915050565b5f8115159050919050565b61143d81611429565b82525050565b5f6020820190506114565f830184611434565b92915050565b5f819050919050565b61146e8161145c565b82525050565b5f6020820190506114875f830184611465565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6114cf6114ca6114c58461148d565b6114ac565b61148d565b9050919050565b5f6114e0826114b5565b9050919050565b5f6114f1826114d6565b9050919050565b611501816114e7565b82525050565b5f60208201905061151a5f8301846114f8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261154157611540611520565b5b8235905067ffffffffffffffff81111561155e5761155d611524565b5b60208301915083600182028301111561157a57611579611528565b5b9250929050565b5f8060208385031215611597576115966113a1565b5b5f83013567ffffffffffffffff8111156115b4576115b36113a5565b5b6115c08582860161152c565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61160e826115cc565b61161881856115d6565b93506116288185602086016115e6565b611631816115f4565b840191505092915050565b5f6020820190508181035f8301526116548184611604565b905092915050565b5f6116668261148d565b9050919050565b6116768161165c565b82525050565b5f60208201905061168f5f83018461166d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106116d3576116d2611695565b5b50565b5f8190506116e3826116c2565b919050565b5f6116f2826116d6565b9050919050565b611702816116e8565b82525050565b5f60208201905061171b5f8301846116f9565b92915050565b61172a8161165c565b8114611734575f80fd5b50565b5f8135905061174581611721565b92915050565b5f8083601f8401126117605761175f611520565b5b8235905067ffffffffffffffff81111561177d5761177c611524565b5b60208301915083602082028301111561179957611798611528565b5b9250929050565b5f805f805f805f8060a0898b0312156117bc576117bb6113a1565b5b5f6117c98b828c01611737565b98505060206117da8b828c01611737565b975050604089013567ffffffffffffffff8111156117fb576117fa6113a5565b5b6118078b828c0161174b565b9650965050606089013567ffffffffffffffff81111561182a576118296113a5565b5b6118368b828c0161174b565b9450945050608089013567ffffffffffffffff811115611859576118586113a5565b5b6118658b828c0161152c565b92509250509295985092959890939650565b611880816113a9565b82525050565b5f6020820190506118995f830184611877565b92915050565b5f602082840312156118b4576118b36113a1565b5b5f6118c184828501611737565b91505092915050565b6118d38161145c565b81146118dd575f80fd5b50565b5f813590506118ee816118ca565b92915050565b5f805f805f8060a0878903121561190e5761190d6113a1565b5b5f61191b89828a01611737565b965050602061192c89828a01611737565b955050604061193d89828a016118e0565b945050606061194e89828a016118e0565b935050608087013567ffffffffffffffff81111561196f5761196e6113a5565b5b61197b89828a0161152c565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119c4826115f4565b810181811067ffffffffffffffff821117156119e3576119e261198e565b5b80604052505050565b5f6119f5611398565b9050611a0182826119bb565b919050565b5f80fd5b5f611a148261165c565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b60028110611a51575f80fd5b50565b5f81359050611a6281611a45565b92915050565b5f80fd5b5f67ffffffffffffffff821115611a8657611a8561198e565b5b611a8f826115f4565b9050602081019050919050565b828183375f83830152505050565b5f611abc611ab784611a6c565b6119ec565b905082815260208101848484011115611ad857611ad7611a68565b5b611ae3848285611a9c565b509392505050565b5f82601f830112611aff57611afe611520565b5b8135611b0f848260208601611aaa565b91505092915050565b5f60a08284031215611b2d57611b2c61198a565b5b611b3760a06119ec565b90505f611b4684828501611a31565b5f830152506020611b5984828501611a54565b6020830152506040611b6d848285016118e0565b6040830152506060611b81848285016118e0565b606083015250608082013567ffffffffffffffff811115611ba557611ba4611a06565b5b611bb184828501611aeb565b60808301525092915050565b5f60208284031215611bd257611bd16113a1565b5b5f82013567ffffffffffffffff811115611bef57611bee6113a5565b5b611bfb84828501611b18565b91505092915050565b5f604082019050611c175f83018561166d565b611c246020830184611465565b9392505050565b5f81519050611c39816118ca565b92915050565b5f60208284031215611c5457611c536113a1565b5b5f611c6184828501611c2b565b91505092915050565b5f606082019050611c7d5f83018661166d565b611c8a6020830185611465565b611c976040830184611465565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce357607f821691505b602082108103611cf657611cf5611c9f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611d1d565b611d628683611d1d565b95508019841693508086168417925050509392505050565b5f611d94611d8f611d8a8461145c565b6114ac565b61145c565b9050919050565b5f819050919050565b611dad83611d7a565b611dc1611db982611d9b565b848454611d29565b825550505050565b5f90565b611dd5611dc9565b611de0818484611da4565b505050565b5b81811015611e0357611df85f82611dcd565b600181019050611de6565b5050565b601f821115611e4857611e1981611cfc565b611e2284611d0e565b81016020851015611e31578190505b611e45611e3d85611d0e565b830182611de5565b50505b505050565b5f82821c905092915050565b5f611e685f1984600802611e4d565b1980831691505092915050565b5f611e808383611e59565b9150826002028217905092915050565b611e99826115cc565b67ffffffffffffffff811115611eb257611eb161198e565b5b611ebc8254611ccc565b611ec7828285611e07565b5f60209050601f831160018114611ef8575f8415611ee6578287015190505b611ef08582611e75565b865550611f57565b601f198416611f0686611cfc565b5f5b82811015611f2d57848901518255600182019150602085019450602081019050611f08565b86831015611f4a5784890151611f46601f891682611e59565b8355505b6001600288020188555050505b505050505050565b611f688161145c565b82525050565b5f82825260208201905092915050565b5f611f88826115cc565b611f928185611f6e565b9350611fa28185602086016115e6565b611fab816115f4565b840191505092915050565b5f606083015f830151611fcb5f860182611f5f565b506020830151611fde6020860182611f5f565b5060408301518482036040860152611ff68282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261201b8184611fb6565b905092915050565b6003811061203457612033611695565b5b50565b5f81905061204482612023565b919050565b5f61205382612037565b9050919050565b61206381612049565b82525050565b6120728161165c565b82525050565b5f608083015f83015161208d5f86018261205a565b5060208301516120a06020860182612069565b5060408301516120b36040860182612069565b50606083015184820360608601526120cb8282611f7e565b9150508091505092915050565b5f6020820190508181035f8301526120f08184612078565b905092915050565b5f6040828403121561210d5761210c61198a565b5b61211760406119ec565b90505f61212684828501611737565b5f83015250602082013567ffffffffffffffff81111561214957612148611a06565b5b61215584828501611aeb565b60208301525092915050565b5f60208284031215612176576121756113a1565b5b5f82013567ffffffffffffffff811115612193576121926113a5565b5b61219f848285016120f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121df8261145c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612211576122106121a8565b5b600182019050919050565b5f819050919050565b5f61223f61223a6122358461221c565b6114ac565b61145c565b9050919050565b61224f81612225565b82525050565b5f60a0820190506122685f83018861166d565b612275602083018761166d565b6122826040830186611465565b61228f6060830185612246565b81810360808301526122a18184611604565b90509695505050505050565b5f8160601b9050919050565b5f6122c3826122ad565b9050919050565b5f6122d4826122b9565b9050919050565b6122ec6122e7826114e7565b6122ca565b82525050565b6123036122fe8261165c565b6122ca565b82525050565b5f819050919050565b61232361231e8261145c565b612309565b82525050565b5f81905092915050565b5f61233d826115cc565b6123478185612329565b93506123578185602086016115e6565b80840191505092915050565b5f61236e82886122db565b60148201915061237e82876122f2565b60148201915061238e8286612312565b60208201915061239e8285612312565b6020820191506123ae8284612333565b91508190509695505050505050565b5f604083015f8301516123d25f860182612069565b50602083015184820360208601526123ea8282611f7e565b9150508091505092915050565b5f6020820190508181035f83015261240f81846123bd565b905092915050565b5f60408201905061242a5f83018561166d565b818103602083015261243c8184611604565b90509392505050565b5f61244f8261145c565b915061245a8361145c565b9250828203905081811115612472576124716121a8565b5b92915050565b5f60a08201905061248b5f83018861166d565b612498602083018761166d565b6124a56040830186611465565b6124b26060830185611465565b81810360808301526124c48184611604565b9050969550505050505056fea26469706673582212202ed8acb107de7b597b4d8e9d724512284925aed3800f1f109954572877ab5e3a64736f6c63430008190033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/packages/evm/artifacts/contracts/incentives/ERC20Incentive.sol/ERC20Incentive.dbg.json b/packages/evm/artifacts/contracts/incentives/ERC20Incentive.sol/ERC20Incentive.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/incentives/ERC20Incentive.sol/ERC20Incentive.dbg.json +++ b/packages/evm/artifacts/contracts/incentives/ERC20Incentive.sol/ERC20Incentive.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/incentives/Incentive.sol/Incentive.dbg.json b/packages/evm/artifacts/contracts/incentives/Incentive.sol/Incentive.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/incentives/Incentive.sol/Incentive.dbg.json +++ b/packages/evm/artifacts/contracts/incentives/Incentive.sol/Incentive.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/incentives/PointsIncentive.sol/PointsIncentive.dbg.json b/packages/evm/artifacts/contracts/incentives/PointsIncentive.sol/PointsIncentive.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/incentives/PointsIncentive.sol/PointsIncentive.dbg.json +++ b/packages/evm/artifacts/contracts/incentives/PointsIncentive.sol/PointsIncentive.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/shared/BoostError.sol/BoostError.dbg.json b/packages/evm/artifacts/contracts/shared/BoostError.sol/BoostError.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/shared/BoostError.sol/BoostError.dbg.json +++ b/packages/evm/artifacts/contracts/shared/BoostError.sol/BoostError.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/shared/BoostLib.sol/BoostLib.dbg.json b/packages/evm/artifacts/contracts/shared/BoostLib.sol/BoostLib.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/shared/BoostLib.sol/BoostLib.dbg.json +++ b/packages/evm/artifacts/contracts/shared/BoostLib.sol/BoostLib.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/shared/Cloneable.sol/Cloneable.dbg.json b/packages/evm/artifacts/contracts/shared/Cloneable.sol/Cloneable.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/shared/Cloneable.sol/Cloneable.dbg.json +++ b/packages/evm/artifacts/contracts/shared/Cloneable.sol/Cloneable.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC1155.dbg.json b/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC1155.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC1155.dbg.json +++ b/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC1155.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC20.dbg.json b/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC20.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC20.dbg.json +++ b/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC20.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC721.dbg.json b/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC721.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC721.dbg.json +++ b/packages/evm/artifacts/contracts/shared/Mocks.sol/MockERC721.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/tokens/Points.sol/Points.dbg.json b/packages/evm/artifacts/contracts/tokens/Points.sol/Points.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/tokens/Points.sol/Points.dbg.json +++ b/packages/evm/artifacts/contracts/tokens/Points.sol/Points.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/validators/SignerValidator.sol/SignerValidator.dbg.json b/packages/evm/artifacts/contracts/validators/SignerValidator.sol/SignerValidator.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/validators/SignerValidator.sol/SignerValidator.dbg.json +++ b/packages/evm/artifacts/contracts/validators/SignerValidator.sol/SignerValidator.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/artifacts/contracts/validators/Validator.sol/Validator.dbg.json b/packages/evm/artifacts/contracts/validators/Validator.sol/Validator.dbg.json index 4a4e0121..49a352bb 100644 --- a/packages/evm/artifacts/contracts/validators/Validator.sol/Validator.dbg.json +++ b/packages/evm/artifacts/contracts/validators/Validator.sol/Validator.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/77c946d6b220784dccfddb6cde255b9d.json" + "buildInfo": "../../../build-info/0ab469e910ae3035995ca09344e77bdd.json" } diff --git a/packages/evm/package.json b/packages/evm/package.json index 8c602d80..7cf35dca 100644 --- a/packages/evm/package.json +++ b/packages/evm/package.json @@ -12,9 +12,7 @@ "require": "./dist/generated.cjs", "import": "./artifacts/generated.ts", "node": "./dist/generated.js", - "types": "./dist/generated.d.ts", - "production": "./dist/generated.js", - "development": "./artifacts/generated.ts" + "types": "./dist/generated.d.ts" } }, "publishConfig": { @@ -22,6 +20,7 @@ ".": { "require": "./dist/generated.cjs", "import": "./dist/generated.js", + "node": "./dist/generated.js", "types": "./dist/generated.d.ts" } } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 68eca944..45810c9f 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -11,9 +11,7 @@ "require": "./dist/index.cjs", "import": "./src/index.ts", "node": "./dist/index.js", - "types": "./dist/index.d.ts", - "production": "./dist/index.js", - "development": "./src/index.ts" + "types": "./dist/index.d.ts" } }, "publishConfig": { @@ -21,6 +19,7 @@ ".": { "require": "./dist/index.cjs", "import": "./dist/index.js", + "node": "./dist/index.js", "types": "./dist/index.d.ts" } } diff --git a/tsconfig.json b/tsconfig.json index 93fa835d..d452ba26 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,6 @@ "strict": true, "target": "es2022", "noImplicitOverride": true, - "customConditions": ["development"], "paths": { "@boostxyz/evm": ["./packages/evm/artifacts/generated.ts"] }